[SCM] Packaging for mathgl branch, master, updated. debian/1.10.2.1-3-19-gb05aae0

Dimitrios Eftaxiopoulos eftaxi12 at otenet.gr
Sun Nov 14 08:28:25 UTC 2010


The following commit has been merged in the master branch:
commit 4a392b7dd277726e3c84ca1aaeb5fef9ae0073fe
Author: Dimitrios Eftaxiopoulos <eftaxi12 at otenet.gr>
Date:   Thu Nov 11 23:50:41 2010 +0200

    Try to fix lintian errors and warnings

diff --git a/.pc/.quilt_patches b/.pc/.quilt_patches
deleted file mode 100644
index 6857a8d..0000000
--- a/.pc/.quilt_patches
+++ /dev/null
@@ -1 +0,0 @@
-debian/patches
diff --git a/.pc/.quilt_series b/.pc/.quilt_series
deleted file mode 100644
index c206706..0000000
--- a/.pc/.quilt_series
+++ /dev/null
@@ -1 +0,0 @@
-series
diff --git a/.pc/.version b/.pc/.version
deleted file mode 100644
index 0cfbf08..0000000
--- a/.pc/.version
+++ /dev/null
@@ -1 +0,0 @@
-2
diff --git a/.pc/applied-patches b/.pc/applied-patches
deleted file mode 100644
index ea22712..0000000
--- a/.pc/applied-patches
+++ /dev/null
@@ -1 +0,0 @@
-debian-changes-1.11-1
diff --git a/.pc/debian-changes-1.11-1/Makefile.in b/.pc/debian-changes-1.11-1/Makefile.in
deleted file mode 100644
index 9aec9a4..0000000
--- a/.pc/debian-changes-1.11-1/Makefile.in
+++ /dev/null
@@ -1,799 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
- at USE_DOCS_TRUE@am__append_1 = texinfo
-#doctargets += install-html install-pdf
- at USE_DOCS_TRUE@am__append_2 = install-html
-subdir = .
-DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(top_srcdir)/configure \
-	$(top_srcdir)/include/mgl/config.h.in AUTHORS COPYING \
-	ChangeLog INSTALL NEWS TODO config/config.guess \
-	config/config.sub config/depcomp config/install-sh \
-	config/ltmain.sh config/missing config/py-compile \
-	config/texinfo.tex
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno config.status.lineno
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/include/mgl/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-SOURCES =
-DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
-  distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
-	distdir dist dist-all distcheck
-ETAGS = etags
-CTAGS = ctags
-DIST_SUBDIRS = mgl lang widgets utils examples include texinfo
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-am__remove_distdir = \
-  { test ! -d "$(distdir)" \
-    || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
-         && rm -fr "$(distdir)"; }; }
-am__relativize = \
-  dir0=`pwd`; \
-  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
-  sed_rest='s,^[^/]*/*,,'; \
-  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
-  sed_butlast='s,/*[^/]*$$,,'; \
-  while test -n "$$dir1"; do \
-    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
-    if test "$$first" != "."; then \
-      if test "$$first" = ".."; then \
-        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
-        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
-      else \
-        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
-        if test "$$first2" = "$$first"; then \
-          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
-        else \
-          dir2="../$$dir2"; \
-        fi; \
-        dir0="$$dir0"/"$$first"; \
-      fi; \
-    fi; \
-    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
-  done; \
-  reldir="$$dir2"
-DIST_ARCHIVES = $(distdir).tar.gz
-GZIP_ENV = --best
-distuninstallcheck_listfiles = find . -type f -print
-distcleancheck_listfiles = find . -type f -print
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_CXXFLAGS = @AM_CXXFLAGS@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-FLTK_FLAGS = @FLTK_FLAGS@
-FLTK_LIBS = @FLTK_LIBS@
-GIF_FLAGS = @GIF_FLAGS@
-GIF_LIBS = @GIF_LIBS@
-GLUT_FLAGS = @GLUT_FLAGS@
-GLUT_LIBS = @GLUT_LIBS@
-GL_LIBS = @GL_LIBS@
-GREP = @GREP@
-GSL_FLAGS = @GSL_FLAGS@
-GSL_LIBS = @GSL_LIBS@
-HAVE_SWIG = @HAVE_SWIG@
-HDF4_FLAGS = @HDF4_FLAGS@
-HDF4_LIBS = @HDF4_LIBS@
-HDF5_FLAGS = @HDF5_FLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-JPEG_FLAGS = @JPEG_FLAGS@
-JPEG_LIBS = @JPEG_LIBS@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MGL_AGE = @MGL_AGE@
-MGL_CURRENT = @MGL_CURRENT@
-MGL_RELEASE = @MGL_RELEASE@
-MGL_REVISION = @MGL_REVISION@
-MKDIR_P = @MKDIR_P@
-MOC = @MOC@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OCTAVE = @OCTAVE@
-OCTAVE_ARCH = @OCTAVE_ARCH@
-OCTAVE_INCFLAGS = @OCTAVE_INCFLAGS@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PNG_LIBS = @PNG_LIBS@
-PTHREAD_FLAGS = @PTHREAD_FLAGS@
-PTHREAD_LIBS = @PTHREAD_LIBS@
-PYTHON = @PYTHON@
-PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
-PYTHON_HEADERS = @PYTHON_HEADERS@
-PYTHON_PLATFORM = @PYTHON_PLATFORM@
-PYTHON_PREFIX = @PYTHON_PREFIX@
-PYTHON_VERSION = @PYTHON_VERSION@
-QMAKE = @QMAKE@
-QT_CFLAGS = @QT_CFLAGS@
-QT_CPPFLAGS = @QT_CPPFLAGS@
-QT_CXXFLAGS = @QT_CXXFLAGS@
-QT_DEFINES = @QT_DEFINES@
-QT_INCPATH = @QT_INCPATH@
-QT_LDFLAGS = @QT_LDFLAGS@
-QT_LFLAGS = @QT_LFLAGS@
-QT_LIBS = @QT_LIBS@
-QT_PATH = @QT_PATH@
-QT_VERSION = @QT_VERSION@
-QT_VERSION_MAJOR = @QT_VERSION_MAJOR@
-RANLIB = @RANLIB@
-RCC = @RCC@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TMPDIR = @TMPDIR@
-UIC = @UIC@
-VERSION = @VERSION@
-WX_FLAGS = @WX_FLAGS@
-WX_LIBS = @WX_LIBS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-pkgpyexecdir = @pkgpyexecdir@
-pkgpythondir = @pkgpythondir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-pyexecdir = @pyexecdir@
-pythondir = @pythondir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-ACLOCAL_AMFLAGS = -I config
-SUBDIRS = mgl lang widgets utils examples include $(am__append_1)
-doctargets = $(am__append_2)
-mgldest = $(DESTDIR)$(datadir)/$(PACKAGE)/fonts
-all: all-recursive
-
-.SUFFIXES:
-am--refresh:
-	@:
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
-	      $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
-		&& exit 0; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    echo ' $(SHELL) ./config.status'; \
-	    $(SHELL) ./config.status;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	$(SHELL) ./config.status --recheck
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	$(am__cd) $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-$(am__aclocal_m4_deps):
-
-include/mgl/config.h: include/mgl/stamp-h1
-	@if test ! -f $@; then \
-	  rm -f include/mgl/stamp-h1; \
-	  $(MAKE) $(AM_MAKEFLAGS) include/mgl/stamp-h1; \
-	else :; fi
-
-include/mgl/stamp-h1: $(top_srcdir)/include/mgl/config.h.in $(top_builddir)/config.status
-	@rm -f include/mgl/stamp-h1
-	cd $(top_builddir) && $(SHELL) ./config.status include/mgl/config.h
-$(top_srcdir)/include/mgl/config.h.in:  $(am__configure_deps) 
-	($(am__cd) $(top_srcdir) && $(AUTOHEADER))
-	rm -f include/mgl/stamp-h1
-	touch $@
-
-distclean-hdr:
-	-rm -f include/mgl/config.h include/mgl/stamp-h1
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-
-distclean-libtool:
-	-rm -f libtool config.lt
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    dot_seen=yes; \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done; \
-	if test "$$dot_seen" = "no"; then \
-	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
-	fi; test -z "$$fail"
-
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	set x; \
-	here=`pwd`; \
-	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
-	  include_option=--etags-include; \
-	  empty_fix=.; \
-	else \
-	  include_option=--include; \
-	  empty_fix=; \
-	fi; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    test ! -f $$subdir/TAGS || \
-	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
-	  fi; \
-	done; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	$(am__remove_distdir)
-	test -d "$(distdir)" || mkdir "$(distdir)"
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    test -d "$(distdir)/$$subdir" \
-	    || $(MKDIR_P) "$(distdir)/$$subdir" \
-	    || exit 1; \
-	  fi; \
-	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
-	    $(am__relativize); \
-	    new_distdir=$$reldir; \
-	    dir1=$$subdir; dir2="$(top_distdir)"; \
-	    $(am__relativize); \
-	    new_top_distdir=$$reldir; \
-	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
-	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
-	    ($(am__cd) $$subdir && \
-	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$$new_top_distdir" \
-	        distdir="$$new_distdir" \
-		am__remove_distdir=: \
-		am__skip_length_check=: \
-		am__skip_mode_fix=: \
-	        distdir) \
-	      || exit 1; \
-	  fi; \
-	done
-	-test -n "$(am__skip_mode_fix)" \
-	|| find "$(distdir)" -type d ! -perm -755 \
-		-exec chmod u+rwx,go+rx {} \; -o \
-	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
-	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
-	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
-	|| chmod -R a+r "$(distdir)"
-dist-gzip: distdir
-	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-	$(am__remove_distdir)
-
-dist-bzip2: distdir
-	tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
-	$(am__remove_distdir)
-
-dist-lzma: distdir
-	tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
-	$(am__remove_distdir)
-
-dist-xz: distdir
-	tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
-	$(am__remove_distdir)
-
-dist-tarZ: distdir
-	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
-	$(am__remove_distdir)
-
-dist-shar: distdir
-	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
-	$(am__remove_distdir)
-
-dist-zip: distdir
-	-rm -f $(distdir).zip
-	zip -rq $(distdir).zip $(distdir)
-	$(am__remove_distdir)
-
-dist dist-all: distdir
-	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-	$(am__remove_distdir)
-
-# This target untars the dist file and tries a VPATH configuration.  Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
-	case '$(DIST_ARCHIVES)' in \
-	*.tar.gz*) \
-	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
-	*.tar.bz2*) \
-	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
-	*.tar.lzma*) \
-	  lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
-	*.tar.xz*) \
-	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\
-	*.tar.Z*) \
-	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
-	*.shar.gz*) \
-	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
-	*.zip*) \
-	  unzip $(distdir).zip ;;\
-	esac
-	chmod -R a-w $(distdir); chmod a+w $(distdir)
-	mkdir $(distdir)/_build
-	mkdir $(distdir)/_inst
-	chmod a-w $(distdir)
-	test -d $(distdir)/_build || exit 0; \
-	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
-	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
-	  && am__cwd=`pwd` \
-	  && $(am__cd) $(distdir)/_build \
-	  && ../configure --srcdir=.. --prefix="$$dc_install_base" \
-	    $(DISTCHECK_CONFIGURE_FLAGS) \
-	  && $(MAKE) $(AM_MAKEFLAGS) \
-	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
-	  && $(MAKE) $(AM_MAKEFLAGS) check \
-	  && $(MAKE) $(AM_MAKEFLAGS) install \
-	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
-	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
-	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
-	        distuninstallcheck \
-	  && chmod -R a-w "$$dc_install_base" \
-	  && ({ \
-	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
-	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
-	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
-	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
-	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
-	      } || { rm -rf "$$dc_destdir"; exit 1; }) \
-	  && rm -rf "$$dc_destdir" \
-	  && $(MAKE) $(AM_MAKEFLAGS) dist \
-	  && rm -rf $(DIST_ARCHIVES) \
-	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
-	  && cd "$$am__cwd" \
-	  || exit 1
-	$(am__remove_distdir)
-	@(echo "$(distdir) archives ready for distribution: "; \
-	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
-	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
-distuninstallcheck:
-	@$(am__cd) '$(distuninstallcheck_dir)' \
-	&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
-	   || { echo "ERROR: files left after uninstall:" ; \
-	        if test -n "$(DESTDIR)"; then \
-	          echo "  (check DESTDIR support)"; \
-	        fi ; \
-	        $(distuninstallcheck_listfiles) ; \
-	        exit 1; } >&2
-distcleancheck: distclean
-	@if test '$(srcdir)' = . ; then \
-	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
-	  exit 1 ; \
-	fi
-	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
-	  || { echo "ERROR: files left in build directory after distclean:" ; \
-	       $(distcleancheck_listfiles) ; \
-	       exit 1; } >&2
-check-am: all-am
-check: check-recursive
-all-am: Makefile all-local
-installdirs: installdirs-recursive
-installdirs-am:
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-recursive
-
-clean-am: clean-generic clean-libtool clean-local mostlyclean-am
-
-distclean: distclean-recursive
-	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-hdr \
-	distclean-libtool distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-html-am:
-
-info: info-recursive
-
-info-am:
-
-install-data-am: install-data-local
-
-install-dvi: install-dvi-recursive
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-recursive
-
-install-html-am:
-
-install-info: install-info-recursive
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-recursive
-
-install-pdf-am:
-
-install-ps: install-ps-recursive
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
-	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-	-rm -rf $(top_srcdir)/autom4te.cache
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am: uninstall-local
-
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am all-local am--refresh check check-am clean \
-	clean-generic clean-libtool clean-local ctags ctags-recursive \
-	dist dist-all dist-bzip2 dist-gzip dist-lzma dist-shar \
-	dist-tarZ dist-xz dist-zip distcheck distclean \
-	distclean-generic distclean-hdr distclean-libtool \
-	distclean-tags distcleancheck distdir distuninstallcheck dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-data-local install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	installdirs-am maintainer-clean maintainer-clean-generic \
-	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
-	ps ps-am tags tags-recursive uninstall uninstall-am \
-	uninstall-local
-
-
-install-data-local: $(doctargets)
-	mkdir -p $(mgldest)
-	cp -r $(top_srcdir)/fonts/*.vfm $(mgldest)
-
-uninstall-local:
-	rm -rf $(mgldest)
-
-clean-local:
-	find . -name '*~' -print0 | xargs -0 rm -f
-
-#all-local: html pdf
-all-local: html
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/.pc/debian-changes-1.11-1/aclocal.m4 b/.pc/debian-changes-1.11-1/aclocal.m4
deleted file mode 100644
index 846920e..0000000
--- a/.pc/debian-changes-1.11-1/aclocal.m4
+++ /dev/null
@@ -1,9123 +0,0 @@
-# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-m4_ifndef([AC_AUTOCONF_VERSION],
-  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],,
-[m4_warning([this file was generated for autoconf 2.67.
-You have another version of autoconf.  It may work, but is not guaranteed to.
-If you have problems, you may need to regenerate the build system entirely.
-To do so, use the procedure documented by the package, typically `autoreconf'.])])
-
-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-#
-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008 Free Software Foundation, Inc.
-#   Written by Gordon Matzigkeit, 1996
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-m4_define([_LT_COPYING], [dnl
-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008 Free Software Foundation, Inc.
-#   Written by Gordon Matzigkeit, 1996
-#
-#   This file is part of GNU Libtool.
-#
-# GNU Libtool 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.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool 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 GNU Libtool; see the file COPYING.  If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-])
-
-# serial 56 LT_INIT
-
-
-# LT_PREREQ(VERSION)
-# ------------------
-# Complain and exit if this libtool version is less that VERSION.
-m4_defun([LT_PREREQ],
-[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
-       [m4_default([$3],
-		   [m4_fatal([Libtool version $1 or higher is required],
-		             63)])],
-       [$2])])
-
-
-# _LT_CHECK_BUILDDIR
-# ------------------
-# Complain if the absolute build directory name contains unusual characters
-m4_defun([_LT_CHECK_BUILDDIR],
-[case `pwd` in
-  *\ * | *\	*)
-    AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
-esac
-])
-
-
-# LT_INIT([OPTIONS])
-# ------------------
-AC_DEFUN([LT_INIT],
-[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
-AC_BEFORE([$0], [LT_LANG])dnl
-AC_BEFORE([$0], [LT_OUTPUT])dnl
-AC_BEFORE([$0], [LTDL_INIT])dnl
-m4_require([_LT_CHECK_BUILDDIR])dnl
-
-dnl Autoconf doesn't catch unexpanded LT_ macros by default:
-m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
-m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
-dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
-dnl unless we require an AC_DEFUNed macro:
-AC_REQUIRE([LTOPTIONS_VERSION])dnl
-AC_REQUIRE([LTSUGAR_VERSION])dnl
-AC_REQUIRE([LTVERSION_VERSION])dnl
-AC_REQUIRE([LTOBSOLETE_VERSION])dnl
-m4_require([_LT_PROG_LTMAIN])dnl
-
-dnl Parse OPTIONS
-_LT_SET_OPTIONS([$0], [$1])
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)dnl
-
-_LT_SETUP
-
-# Only expand once:
-m4_define([LT_INIT])
-])# LT_INIT
-
-# Old names:
-AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
-AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
-dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
-
-
-# _LT_CC_BASENAME(CC)
-# -------------------
-# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
-m4_defun([_LT_CC_BASENAME],
-[for cc_temp in $1""; do
-  case $cc_temp in
-    compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
-    distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
-])
-
-
-# _LT_FILEUTILS_DEFAULTS
-# ----------------------
-# It is okay to use these file commands and assume they have been set
-# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
-m4_defun([_LT_FILEUTILS_DEFAULTS],
-[: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-])# _LT_FILEUTILS_DEFAULTS
-
-
-# _LT_SETUP
-# ---------
-m4_defun([_LT_SETUP],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-_LT_DECL([], [host_alias], [0], [The host system])dnl
-_LT_DECL([], [host], [0])dnl
-_LT_DECL([], [host_os], [0])dnl
-dnl
-_LT_DECL([], [build_alias], [0], [The build system])dnl
-_LT_DECL([], [build], [0])dnl
-_LT_DECL([], [build_os], [0])dnl
-dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([LT_PATH_LD])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-dnl
-AC_REQUIRE([AC_PROG_LN_S])dnl
-test -z "$LN_S" && LN_S="ln -s"
-_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
-dnl
-AC_REQUIRE([LT_CMD_MAX_LEN])dnl
-_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
-_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
-dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-m4_require([_LT_CMD_RELOAD])dnl
-m4_require([_LT_CHECK_MAGIC_METHOD])dnl
-m4_require([_LT_CMD_OLD_ARCHIVE])dnl
-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-
-_LT_CONFIG_LIBTOOL_INIT([
-# See if we are running on zsh, and set the options which allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
-   setopt NO_GLOB_SUBST
-fi
-])
-if test -n "${ZSH_VERSION+set}" ; then
-   setopt NO_GLOB_SUBST
-fi
-
-_LT_CHECK_OBJDIR
-
-m4_require([_LT_TAG_COMPILER])dnl
-_LT_PROG_ECHO_BACKSLASH
-
-case $host_os in
-aix3*)
-  # AIX sometimes has problems with the GCC collect2 program.  For some
-  # reason, if we set the COLLECT_NAMES environment variable, the problems
-  # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
-    COLLECT_NAMES=
-    export COLLECT_NAMES
-  fi
-  ;;
-esac
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([["`\\]]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-_LT_CC_BASENAME([$compiler])
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
-  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    _LT_PATH_MAGIC
-  fi
-  ;;
-esac
-
-# Use C for the default configuration in the libtool script
-LT_SUPPORTED_TAG([CC])
-_LT_LANG_C_CONFIG
-_LT_LANG_DEFAULT_CONFIG
-_LT_CONFIG_COMMANDS
-])# _LT_SETUP
-
-
-# _LT_PROG_LTMAIN
-# ---------------
-# Note that this code is called both from `configure', and `config.status'
-# now that we use AC_CONFIG_COMMANDS to generate libtool.  Notably,
-# `config.status' has no value for ac_aux_dir unless we are using Automake,
-# so we pass a copy along to make sure it has a sensible value anyway.
-m4_defun([_LT_PROG_LTMAIN],
-[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
-_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
-ltmain="$ac_aux_dir/ltmain.sh"
-])# _LT_PROG_LTMAIN
-
-
-
-# So that we can recreate a full libtool script including additional
-# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
-# in macros and then make a single call at the end using the `libtool'
-# label.
-
-
-# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
-# ----------------------------------------
-# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-m4_define([_LT_CONFIG_LIBTOOL_INIT],
-[m4_ifval([$1],
-          [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
-                     [$1
-])])])
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_INIT])
-
-
-# _LT_CONFIG_LIBTOOL([COMMANDS])
-# ------------------------------
-# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-m4_define([_LT_CONFIG_LIBTOOL],
-[m4_ifval([$1],
-          [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
-                     [$1
-])])])
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
-
-
-# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
-# -----------------------------------------------------
-m4_defun([_LT_CONFIG_SAVE_COMMANDS],
-[_LT_CONFIG_LIBTOOL([$1])
-_LT_CONFIG_LIBTOOL_INIT([$2])
-])
-
-
-# _LT_FORMAT_COMMENT([COMMENT])
-# -----------------------------
-# Add leading comment marks to the start of each line, and a trailing
-# full-stop to the whole comment if one is not present already.
-m4_define([_LT_FORMAT_COMMENT],
-[m4_ifval([$1], [
-m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
-              [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
-)])
-
-
-
-
-
-# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
-# -------------------------------------------------------------------
-# CONFIGNAME is the name given to the value in the libtool script.
-# VARNAME is the (base) name used in the configure script.
-# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
-# VARNAME.  Any other value will be used directly.
-m4_define([_LT_DECL],
-[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
-    [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
-	[m4_ifval([$1], [$1], [$2])])
-    lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
-    m4_ifval([$4],
-	[lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
-    lt_dict_add_subkey([lt_decl_dict], [$2],
-	[tagged?], [m4_ifval([$5], [yes], [no])])])
-])
-
-
-# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
-# --------------------------------------------------------
-m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
-
-
-# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
-# ------------------------------------------------
-m4_define([lt_decl_tag_varnames],
-[_lt_decl_filter([tagged?], [yes], $@)])
-
-
-# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
-# ---------------------------------------------------------
-m4_define([_lt_decl_filter],
-[m4_case([$#],
-  [0], [m4_fatal([$0: too few arguments: $#])],
-  [1], [m4_fatal([$0: too few arguments: $#: $1])],
-  [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
-  [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
-  [lt_dict_filter([lt_decl_dict], $@)])[]dnl
-])
-
-
-# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
-# --------------------------------------------------
-m4_define([lt_decl_quote_varnames],
-[_lt_decl_filter([value], [1], $@)])
-
-
-# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
-# ---------------------------------------------------
-m4_define([lt_decl_dquote_varnames],
-[_lt_decl_filter([value], [2], $@)])
-
-
-# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
-# ---------------------------------------------------
-m4_define([lt_decl_varnames_tagged],
-[m4_assert([$# <= 2])dnl
-_$0(m4_quote(m4_default([$1], [[, ]])),
-    m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
-    m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
-m4_define([_lt_decl_varnames_tagged],
-[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
-
-
-# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
-# ------------------------------------------------
-m4_define([lt_decl_all_varnames],
-[_$0(m4_quote(m4_default([$1], [[, ]])),
-     m4_if([$2], [],
-	   m4_quote(lt_decl_varnames),
-	m4_quote(m4_shift($@))))[]dnl
-])
-m4_define([_lt_decl_all_varnames],
-[lt_join($@, lt_decl_varnames_tagged([$1],
-			lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
-])
-
-
-# _LT_CONFIG_STATUS_DECLARE([VARNAME])
-# ------------------------------------
-# Quote a variable value, and forward it to `config.status' so that its
-# declaration there will have the same value as in `configure'.  VARNAME
-# must have a single quote delimited value for this to work.
-m4_define([_LT_CONFIG_STATUS_DECLARE],
-[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`'])
-
-
-# _LT_CONFIG_STATUS_DECLARATIONS
-# ------------------------------
-# We delimit libtool config variables with single quotes, so when
-# we write them to config.status, we have to be sure to quote all
-# embedded single quotes properly.  In configure, this macro expands
-# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
-#
-#    <var>='`$ECHO "X$<var>" | $Xsed -e "$delay_single_quote_subst"`'
-m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
-[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
-    [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
-
-
-# _LT_LIBTOOL_TAGS
-# ----------------
-# Output comment and list of tags supported by the script
-m4_defun([_LT_LIBTOOL_TAGS],
-[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
-available_tags="_LT_TAGS"dnl
-])
-
-
-# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
-# -----------------------------------
-# Extract the dictionary values for VARNAME (optionally with TAG) and
-# expand to a commented shell variable setting:
-#
-#    # Some comment about what VAR is for.
-#    visible_name=$lt_internal_name
-m4_define([_LT_LIBTOOL_DECLARE],
-[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
-					   [description])))[]dnl
-m4_pushdef([_libtool_name],
-    m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
-m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
-    [0], [_libtool_name=[$]$1],
-    [1], [_libtool_name=$lt_[]$1],
-    [2], [_libtool_name=$lt_[]$1],
-    [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
-m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
-])
-
-
-# _LT_LIBTOOL_CONFIG_VARS
-# -----------------------
-# Produce commented declarations of non-tagged libtool config variables
-# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
-# script.  Tagged libtool config variables (even for the LIBTOOL CONFIG
-# section) are produced by _LT_LIBTOOL_TAG_VARS.
-m4_defun([_LT_LIBTOOL_CONFIG_VARS],
-[m4_foreach([_lt_var],
-    m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
-    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
-
-
-# _LT_LIBTOOL_TAG_VARS(TAG)
-# -------------------------
-m4_define([_LT_LIBTOOL_TAG_VARS],
-[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
-    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
-
-
-# _LT_TAGVAR(VARNAME, [TAGNAME])
-# ------------------------------
-m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
-
-
-# _LT_CONFIG_COMMANDS
-# -------------------
-# Send accumulated output to $CONFIG_STATUS.  Thanks to the lists of
-# variables for single and double quote escaping we saved from calls
-# to _LT_DECL, we can put quote escaped variables declarations
-# into `config.status', and then the shell code to quote escape them in
-# for loops in `config.status'.  Finally, any additional code accumulated
-# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
-m4_defun([_LT_CONFIG_COMMANDS],
-[AC_PROVIDE_IFELSE([LT_OUTPUT],
-	dnl If the libtool generation code has been placed in $CONFIG_LT,
-	dnl instead of duplicating it all over again into config.status,
-	dnl then we will have config.status run $CONFIG_LT later, so it
-	dnl needs to know what name is stored there:
-        [AC_CONFIG_COMMANDS([libtool],
-            [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
-    dnl If the libtool generation code is destined for config.status,
-    dnl expand the accumulated commands and init code now:
-    [AC_CONFIG_COMMANDS([libtool],
-        [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
-])#_LT_CONFIG_COMMANDS
-
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
-[
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-_LT_CONFIG_STATUS_DECLARATIONS
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# Quote evaled strings.
-for var in lt_decl_all_varnames([[ \
-]], lt_decl_quote_varnames); do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
-    *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
-      ;;
-    *)
-      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-      ;;
-    esac
-done
-
-# Double-quote double-evaled strings.
-for var in lt_decl_all_varnames([[ \
-]], lt_decl_dquote_varnames); do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
-    *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
-      ;;
-    *)
-      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-      ;;
-    esac
-done
-
-# Fix-up fallback echo if it was mangled by the above quoting rules.
-case \$lt_ECHO in
-*'\\\[$]0 --fallback-echo"')dnl "
-  lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\`
-  ;;
-esac
-
-_LT_OUTPUT_LIBTOOL_INIT
-])
-
-
-# LT_OUTPUT
-# ---------
-# This macro allows early generation of the libtool script (before
-# AC_OUTPUT is called), incase it is used in configure for compilation
-# tests.
-AC_DEFUN([LT_OUTPUT],
-[: ${CONFIG_LT=./config.lt}
-AC_MSG_NOTICE([creating $CONFIG_LT])
-cat >"$CONFIG_LT" <<_LTEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate a libtool stub with the current configuration.
-
-lt_cl_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_LTEOF
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-AS_SHELL_SANITIZE
-_AS_PREPARE
-
-exec AS_MESSAGE_FD>&1
-exec AS_MESSAGE_LOG_FD>>config.log
-{
-  echo
-  AS_BOX([Running $as_me.])
-} >&AS_MESSAGE_LOG_FD
-
-lt_cl_help="\
-\`$as_me' creates a local libtool stub from the current configuration,
-for use in further configure time tests before the real libtool is
-generated.
-
-Usage: $[0] [[OPTIONS]]
-
-  -h, --help      print this help, then exit
-  -V, --version   print version number, then exit
-  -q, --quiet     do not print progress messages
-  -d, --debug     don't remove temporary files
-
-Report bugs to <bug-libtool at gnu.org>."
-
-lt_cl_version="\
-m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
-m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
-configured by $[0], generated by m4_PACKAGE_STRING.
-
-Copyright (C) 2008 Free Software Foundation, Inc.
-This config.lt script is free software; the Free Software Foundation
-gives unlimited permision to copy, distribute and modify it."
-
-while test $[#] != 0
-do
-  case $[1] in
-    --version | --v* | -V )
-      echo "$lt_cl_version"; exit 0 ;;
-    --help | --h* | -h )
-      echo "$lt_cl_help"; exit 0 ;;
-    --debug | --d* | -d )
-      debug=: ;;
-    --quiet | --q* | --silent | --s* | -q )
-      lt_cl_silent=: ;;
-
-    -*) AC_MSG_ERROR([unrecognized option: $[1]
-Try \`$[0] --help' for more information.]) ;;
-
-    *) AC_MSG_ERROR([unrecognized argument: $[1]
-Try \`$[0] --help' for more information.]) ;;
-  esac
-  shift
-done
-
-if $lt_cl_silent; then
-  exec AS_MESSAGE_FD>/dev/null
-fi
-_LTEOF
-
-cat >>"$CONFIG_LT" <<_LTEOF
-_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
-_LTEOF
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-AC_MSG_NOTICE([creating $ofile])
-_LT_OUTPUT_LIBTOOL_COMMANDS
-AS_EXIT(0)
-_LTEOF
-chmod +x "$CONFIG_LT"
-
-# configure is writing to config.log, but config.lt does its own redirection,
-# appending to config.log, which fails on DOS, as config.log is still kept
-# open by configure.  Here we exec the FD to /dev/null, effectively closing
-# config.log, so it can be properly (re)opened and appended to by config.lt.
-if test "$no_create" != yes; then
-  lt_cl_success=:
-  test "$silent" = yes &&
-    lt_config_lt_args="$lt_config_lt_args --quiet"
-  exec AS_MESSAGE_LOG_FD>/dev/null
-  $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
-  exec AS_MESSAGE_LOG_FD>>config.log
-  $lt_cl_success || AS_EXIT(1)
-fi
-])# LT_OUTPUT
-
-
-# _LT_CONFIG(TAG)
-# ---------------
-# If TAG is the built-in tag, create an initial libtool script with a
-# default configuration from the untagged config vars.  Otherwise add code
-# to config.status for appending the configuration named by TAG from the
-# matching tagged config vars.
-m4_defun([_LT_CONFIG],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-_LT_CONFIG_SAVE_COMMANDS([
-  m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
-  m4_if(_LT_TAG, [C], [
-    # See if we are running on zsh, and set the options which allow our
-    # commands through without removal of \ escapes.
-    if test -n "${ZSH_VERSION+set}" ; then
-      setopt NO_GLOB_SUBST
-    fi
-
-    cfgfile="${ofile}T"
-    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
-    $RM "$cfgfile"
-
-    cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-_LT_COPYING
-_LT_LIBTOOL_TAGS
-
-# ### BEGIN LIBTOOL CONFIG
-_LT_LIBTOOL_CONFIG_VARS
-_LT_LIBTOOL_TAG_VARS
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
-  case $host_os in
-  aix3*)
-    cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program.  For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
-  COLLECT_NAMES=
-  export COLLECT_NAMES
-fi
-_LT_EOF
-    ;;
-  esac
-
-  _LT_PROG_LTMAIN
-
-  # We use sed instead of cat because bash on DJGPP gets confused if
-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-  # text mode, it properly converts lines to CR/LF.  This bash problem
-  # is reportedly fixed, but why not run on old versions too?
-  sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  _LT_PROG_XSI_SHELLFNS
-
-  sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  mv -f "$cfgfile" "$ofile" ||
-    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
-  chmod +x "$ofile"
-],
-[cat <<_LT_EOF >> "$ofile"
-
-dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
-dnl in a comment (ie after a #).
-# ### BEGIN LIBTOOL TAG CONFIG: $1
-_LT_LIBTOOL_TAG_VARS(_LT_TAG)
-# ### END LIBTOOL TAG CONFIG: $1
-_LT_EOF
-])dnl /m4_if
-],
-[m4_if([$1], [], [
-    PACKAGE='$PACKAGE'
-    VERSION='$VERSION'
-    TIMESTAMP='$TIMESTAMP'
-    RM='$RM'
-    ofile='$ofile'], [])
-])dnl /_LT_CONFIG_SAVE_COMMANDS
-])# _LT_CONFIG
-
-
-# LT_SUPPORTED_TAG(TAG)
-# ---------------------
-# Trace this macro to discover what tags are supported by the libtool
-# --tag option, using:
-#    autoconf --trace 'LT_SUPPORTED_TAG:$1'
-AC_DEFUN([LT_SUPPORTED_TAG], [])
-
-
-# C support is built-in for now
-m4_define([_LT_LANG_C_enabled], [])
-m4_define([_LT_TAGS], [])
-
-
-# LT_LANG(LANG)
-# -------------
-# Enable libtool support for the given language if not already enabled.
-AC_DEFUN([LT_LANG],
-[AC_BEFORE([$0], [LT_OUTPUT])dnl
-m4_case([$1],
-  [C],			[_LT_LANG(C)],
-  [C++],		[_LT_LANG(CXX)],
-  [Java],		[_LT_LANG(GCJ)],
-  [Fortran 77],		[_LT_LANG(F77)],
-  [Fortran],		[_LT_LANG(FC)],
-  [Windows Resource],	[_LT_LANG(RC)],
-  [m4_ifdef([_LT_LANG_]$1[_CONFIG],
-    [_LT_LANG($1)],
-    [m4_fatal([$0: unsupported language: "$1"])])])dnl
-])# LT_LANG
-
-
-# _LT_LANG(LANGNAME)
-# ------------------
-m4_defun([_LT_LANG],
-[m4_ifdef([_LT_LANG_]$1[_enabled], [],
-  [LT_SUPPORTED_TAG([$1])dnl
-  m4_append([_LT_TAGS], [$1 ])dnl
-  m4_define([_LT_LANG_]$1[_enabled], [])dnl
-  _LT_LANG_$1_CONFIG($1)])dnl
-])# _LT_LANG
-
-
-# _LT_LANG_DEFAULT_CONFIG
-# -----------------------
-m4_defun([_LT_LANG_DEFAULT_CONFIG],
-[AC_PROVIDE_IFELSE([AC_PROG_CXX],
-  [LT_LANG(CXX)],
-  [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
-
-AC_PROVIDE_IFELSE([AC_PROG_F77],
-  [LT_LANG(F77)],
-  [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
-
-AC_PROVIDE_IFELSE([AC_PROG_FC],
-  [LT_LANG(FC)],
-  [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
-
-dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
-dnl pulling things in needlessly.
-AC_PROVIDE_IFELSE([AC_PROG_GCJ],
-  [LT_LANG(GCJ)],
-  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
-    [LT_LANG(GCJ)],
-    [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
-      [LT_LANG(GCJ)],
-      [m4_ifdef([AC_PROG_GCJ],
-	[m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
-       m4_ifdef([A][M_PROG_GCJ],
-	[m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
-       m4_ifdef([LT_PROG_GCJ],
-	[m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
-
-AC_PROVIDE_IFELSE([LT_PROG_RC],
-  [LT_LANG(RC)],
-  [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
-])# _LT_LANG_DEFAULT_CONFIG
-
-# Obsolete macros:
-AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
-AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
-AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
-AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
-dnl AC_DEFUN([AC_LIBTOOL_F77], [])
-dnl AC_DEFUN([AC_LIBTOOL_FC], [])
-dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
-
-
-# _LT_TAG_COMPILER
-# ----------------
-m4_defun([_LT_TAG_COMPILER],
-[AC_REQUIRE([AC_PROG_CC])dnl
-
-_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
-_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
-_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
-_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-])# _LT_TAG_COMPILER
-
-
-# _LT_COMPILER_BOILERPLATE
-# ------------------------
-# Check for compiler boilerplate output or warnings with
-# the simple compiler test code.
-m4_defun([_LT_COMPILER_BOILERPLATE],
-[m4_require([_LT_DECL_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-])# _LT_COMPILER_BOILERPLATE
-
-
-# _LT_LINKER_BOILERPLATE
-# ----------------------
-# Check for linker boilerplate output or warnings with
-# the simple link test code.
-m4_defun([_LT_LINKER_BOILERPLATE],
-[m4_require([_LT_DECL_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-])# _LT_LINKER_BOILERPLATE
-
-# _LT_REQUIRED_DARWIN_CHECKS
-# -------------------------
-m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
-  case $host_os in
-    rhapsody* | darwin*)
-    AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
-    AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
-    AC_CHECK_TOOL([LIPO], [lipo], [:])
-    AC_CHECK_TOOL([OTOOL], [otool], [:])
-    AC_CHECK_TOOL([OTOOL64], [otool64], [:])
-    _LT_DECL([], [DSYMUTIL], [1],
-      [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
-    _LT_DECL([], [NMEDIT], [1],
-      [Tool to change global to local symbols on Mac OS X])
-    _LT_DECL([], [LIPO], [1],
-      [Tool to manipulate fat objects and archives on Mac OS X])
-    _LT_DECL([], [OTOOL], [1],
-      [ldd/readelf like tool for Mach-O binaries on Mac OS X])
-    _LT_DECL([], [OTOOL64], [1],
-      [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
-
-    AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
-      [lt_cv_apple_cc_single_mod=no
-      if test -z "${LT_MULTI_MODULE}"; then
-	# By default we will add the -single_module flag. You can override
-	# by either setting the environment variable LT_MULTI_MODULE
-	# non-empty at configure time, or by adding -multi_module to the
-	# link flags.
-	rm -rf libconftest.dylib*
-	echo "int foo(void){return 1;}" > conftest.c
-	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
-	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
-	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
-        _lt_result=$?
-	if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
-	  lt_cv_apple_cc_single_mod=yes
-	else
-	  cat conftest.err >&AS_MESSAGE_LOG_FD
-	fi
-	rm -rf libconftest.dylib*
-	rm -f conftest.*
-      fi])
-    AC_CACHE_CHECK([for -exported_symbols_list linker flag],
-      [lt_cv_ld_exported_symbols_list],
-      [lt_cv_ld_exported_symbols_list=no
-      save_LDFLAGS=$LDFLAGS
-      echo "_main" > conftest.sym
-      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
-      AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
-	[lt_cv_ld_exported_symbols_list=yes],
-	[lt_cv_ld_exported_symbols_list=no])
-	LDFLAGS="$save_LDFLAGS"
-    ])
-    case $host_os in
-    rhapsody* | darwin1.[[012]])
-      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
-    darwin1.*)
-      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
-    darwin*) # darwin 5.x on
-      # if running on 10.5 or later, the deployment target defaults
-      # to the OS version, if on x86, and 10.4, the deployment
-      # target defaults to 10.4. Don't you love it?
-      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
-	10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-	10.[[012]]*)
-	  _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
-	10.*)
-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-      esac
-    ;;
-  esac
-    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
-      _lt_dar_single_mod='$single_module'
-    fi
-    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
-      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
-    else
-      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    fi
-    if test "$DSYMUTIL" != ":"; then
-      _lt_dsymutil='~$DSYMUTIL $lib || :'
-    else
-      _lt_dsymutil=
-    fi
-    ;;
-  esac
-])
-
-
-# _LT_DARWIN_LINKER_FEATURES
-# --------------------------
-# Checks for linker and compiler features on darwin
-m4_defun([_LT_DARWIN_LINKER_FEATURES],
-[
-  m4_require([_LT_REQUIRED_DARWIN_CHECKS])
-  _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-  _LT_TAGVAR(hardcode_direct, $1)=no
-  _LT_TAGVAR(hardcode_automatic, $1)=yes
-  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  _LT_TAGVAR(whole_archive_flag_spec, $1)=''
-  _LT_TAGVAR(link_all_deplibs, $1)=yes
-  _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
-  case $cc_basename in
-     ifort*) _lt_dar_can_shared=yes ;;
-     *) _lt_dar_can_shared=$GCC ;;
-  esac
-  if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=echo
-    _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
-    _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
-    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
-    _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
-    m4_if([$1], [CXX],
-[   if test "$lt_cv_apple_cc_single_mod" != "yes"; then
-      _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
-      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
-    fi
-],[])
-  else
-  _LT_TAGVAR(ld_shlibs, $1)=no
-  fi
-])
-
-# _LT_SYS_MODULE_PATH_AIX
-# -----------------------
-# Links a minimal program and checks the executable
-# for the system default hardcoded library path. In most cases,
-# this is /usr/lib:/lib, but when the MPI compilers are used
-# the location of the communication and MPI libs are included too.
-# If we don't find anything, use the default library path according
-# to the aix ld manual.
-m4_defun([_LT_SYS_MODULE_PATH_AIX],
-[m4_require([_LT_DECL_SED])dnl
-AC_LINK_IFELSE(AC_LANG_PROGRAM,[
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-	/^0/ {
-	    s/^0  *\(.*\)$/\1/
-	    p
-	}
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi],[])
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-])# _LT_SYS_MODULE_PATH_AIX
-
-
-# _LT_SHELL_INIT(ARG)
-# -------------------
-m4_define([_LT_SHELL_INIT],
-[ifdef([AC_DIVERSION_NOTICE],
-	     [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
-	 [AC_DIVERT_PUSH(NOTICE)])
-$1
-AC_DIVERT_POP
-])# _LT_SHELL_INIT
-
-
-# _LT_PROG_ECHO_BACKSLASH
-# -----------------------
-# Add some code to the start of the generated configure script which
-# will find an echo command which doesn't interpret backslashes.
-m4_defun([_LT_PROG_ECHO_BACKSLASH],
-[_LT_SHELL_INIT([
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-case X$lt_ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
-  ;;
-esac
-
-ECHO=${lt_ECHO-echo}
-if test "X[$]1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X[$]1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
-  # Yippee, $ECHO works!
-  :
-else
-  # Restart under the correct shell.
-  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
-fi
-
-if test "X[$]1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<_LT_EOF
-[$]*
-_LT_EOF
-  exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test -z "$lt_ECHO"; then
-  if test "X${echo_test_string+set}" != Xset; then
-    # find a string as large as possible, as long as the shell can cope with it
-    for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
-      # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-      if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
-	 { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
-      then
-        break
-      fi
-    done
-  fi
-
-  if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-     echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-     test "X$echo_testing_string" = "X$echo_test_string"; then
-    :
-  else
-    # The Solaris, AIX, and Digital Unix default echo programs unquote
-    # backslashes.  This makes it impossible to quote backslashes using
-    #   echo "$something" | sed 's/\\/\\\\/g'
-    #
-    # So, first we look for a working echo in the user's PATH.
-
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for dir in $PATH /usr/ucb; do
-      IFS="$lt_save_ifs"
-      if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-         test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        ECHO="$dir/echo"
-        break
-      fi
-    done
-    IFS="$lt_save_ifs"
-
-    if test "X$ECHO" = Xecho; then
-      # We didn't find a better echo, so look for alternatives.
-      if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        # This shell has a builtin print -r that does the trick.
-        ECHO='print -r'
-      elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
-	   test "X$CONFIG_SHELL" != X/bin/ksh; then
-        # If we have ksh, try running configure again with it.
-        ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-        export ORIGINAL_CONFIG_SHELL
-        CONFIG_SHELL=/bin/ksh
-        export CONFIG_SHELL
-        exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
-      else
-        # Try using printf.
-        ECHO='printf %s\n'
-        if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-	   echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-	   test "X$echo_testing_string" = "X$echo_test_string"; then
-	  # Cool, printf works
-	  :
-        elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-	     test "X$echo_testing_string" = 'X\t' &&
-	     echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	     test "X$echo_testing_string" = "X$echo_test_string"; then
-	  CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-	  export CONFIG_SHELL
-	  SHELL="$CONFIG_SHELL"
-	  export SHELL
-	  ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
-        elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-	     test "X$echo_testing_string" = 'X\t' &&
-	     echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	     test "X$echo_testing_string" = "X$echo_test_string"; then
-	  ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
-        else
-	  # maybe with a smaller string...
-	  prev=:
-
-	  for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
-	    if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
-	    then
-	      break
-	    fi
-	    prev="$cmd"
-	  done
-
-	  if test "$prev" != 'sed 50q "[$]0"'; then
-	    echo_test_string=`eval $prev`
-	    export echo_test_string
-	    exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
-	  else
-	    # Oops.  We lost completely, so just stick with echo.
-	    ECHO=echo
-	  fi
-        fi
-      fi
-    fi
-  fi
-fi
-
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-lt_ECHO=$ECHO
-if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
-   lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
-fi
-
-AC_SUBST(lt_ECHO)
-])
-_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
-_LT_DECL([], [ECHO], [1],
-    [An echo program that does not interpret backslashes])
-])# _LT_PROG_ECHO_BACKSLASH
-
-
-# _LT_ENABLE_LOCK
-# ---------------
-m4_defun([_LT_ENABLE_LOCK],
-[AC_ARG_ENABLE([libtool-lock],
-  [AS_HELP_STRING([--disable-libtool-lock],
-    [avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.$ac_objext` in
-      *ELF-32*)
-	HPUX_IA64_MODE="32"
-	;;
-      *ELF-64*)
-	HPUX_IA64_MODE="64"
-	;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-*-*-irix6*)
-  # Find out which ABI we are using.
-  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    if test "$lt_cv_prog_gnu_ld" = yes; then
-      case `/usr/bin/file conftest.$ac_objext` in
-	*32-bit*)
-	  LD="${LD-ld} -melf32bsmip"
-	  ;;
-	*N32*)
-	  LD="${LD-ld} -melf32bmipn32"
-	  ;;
-	*64-bit*)
-	  LD="${LD-ld} -melf64bmip"
-	;;
-      esac
-    else
-      case `/usr/bin/file conftest.$ac_objext` in
-	*32-bit*)
-	  LD="${LD-ld} -32"
-	  ;;
-	*N32*)
-	  LD="${LD-ld} -n32"
-	  ;;
-	*64-bit*)
-	  LD="${LD-ld} -64"
-	  ;;
-      esac
-    fi
-  fi
-  rm -rf conftest*
-  ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.o` in
-      *32-bit*)
-	case $host in
-	  x86_64-*kfreebsd*-gnu)
-	    LD="${LD-ld} -m elf_i386_fbsd"
-	    ;;
-	  x86_64-*linux*)
-	    LD="${LD-ld} -m elf_i386"
-	    ;;
-	  ppc64-*linux*|powerpc64-*linux*)
-	    LD="${LD-ld} -m elf32ppclinux"
-	    ;;
-	  s390x-*linux*)
-	    LD="${LD-ld} -m elf_s390"
-	    ;;
-	  sparc64-*linux*)
-	    LD="${LD-ld} -m elf32_sparc"
-	    ;;
-	esac
-	;;
-      *64-bit*)
-	case $host in
-	  x86_64-*kfreebsd*-gnu)
-	    LD="${LD-ld} -m elf_x86_64_fbsd"
-	    ;;
-	  x86_64-*linux*)
-	    LD="${LD-ld} -m elf_x86_64"
-	    ;;
-	  ppc*-*linux*|powerpc*-*linux*)
-	    LD="${LD-ld} -m elf64ppc"
-	    ;;
-	  s390*-*linux*|s390*-*tpf*)
-	    LD="${LD-ld} -m elf64_s390"
-	    ;;
-	  sparc*-*linux*)
-	    LD="${LD-ld} -m elf64_sparc"
-	    ;;
-	esac
-	;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-*-*-sco3.2v5*)
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -belf"
-  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
-    [AC_LANG_PUSH(C)
-     AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
-     AC_LANG_POP])
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-sparc*-*solaris*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.o` in
-    *64-bit*)
-      case $lt_cv_prog_gnu_ld in
-      yes*) LD="${LD-ld} -m elf64_sparc" ;;
-      *)
-	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
-	  LD="${LD-ld} -64"
-	fi
-	;;
-      esac
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-esac
-
-need_locks="$enable_libtool_lock"
-])# _LT_ENABLE_LOCK
-
-
-# _LT_CMD_OLD_ARCHIVE
-# -------------------
-m4_defun([_LT_CMD_OLD_ARCHIVE],
-[AC_CHECK_TOOL(AR, ar, false)
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-_LT_DECL([], [AR], [1], [The archiver])
-_LT_DECL([], [AR_FLAGS], [1])
-
-AC_CHECK_TOOL(STRIP, strip, :)
-test -z "$STRIP" && STRIP=:
-_LT_DECL([], [STRIP], [1], [A symbol stripping program])
-
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-test -z "$RANLIB" && RANLIB=:
-_LT_DECL([], [RANLIB], [1],
-    [Commands used to install an old-style archive])
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
-  case $host_os in
-  openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
-    ;;
-  *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
-    ;;
-  esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-fi
-_LT_DECL([], [old_postinstall_cmds], [2])
-_LT_DECL([], [old_postuninstall_cmds], [2])
-_LT_TAGDECL([], [old_archive_cmds], [2],
-    [Commands used to build an old-style archive])
-])# _LT_CMD_OLD_ARCHIVE
-
-
-# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([_LT_COMPILER_OPTION],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
-  [$2=no
-   m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$3"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       $2=yes
-     fi
-   fi
-   $RM conftest*
-])
-
-if test x"[$]$2" = xyes; then
-    m4_if([$5], , :, [$5])
-else
-    m4_if([$6], , :, [$6])
-fi
-])# _LT_COMPILER_OPTION
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
-
-
-# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-#                  [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------
-# Check whether the given linker option works
-AC_DEFUN([_LT_LINKER_OPTION],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
-  [$2=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $3"
-   echo "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The linker can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&AS_MESSAGE_LOG_FD
-       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
-       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
-         $2=yes
-       fi
-     else
-       $2=yes
-     fi
-   fi
-   $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
-])
-
-if test x"[$]$2" = xyes; then
-    m4_if([$4], , :, [$4])
-else
-    m4_if([$5], , :, [$5])
-fi
-])# _LT_LINKER_OPTION
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
-
-
-# LT_CMD_MAX_LEN
-#---------------
-AC_DEFUN([LT_CMD_MAX_LEN],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-# find the maximum length of command line arguments
-AC_MSG_CHECKING([the maximum length of command line arguments])
-AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
-  i=0
-  teststring="ABCD"
-
-  case $build_os in
-  msdosdjgpp*)
-    # On DJGPP, this test can blow up pretty badly due to problems in libc
-    # (any single argument exceeding 2000 bytes causes a buffer overrun
-    # during glob expansion).  Even if it were fixed, the result of this
-    # check would be larger than it should be.
-    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
-    ;;
-
-  gnu*)
-    # Under GNU Hurd, this test is not required because there is
-    # no limit to the length of command line arguments.
-    # Libtool will interpret -1 as no limit whatsoever
-    lt_cv_sys_max_cmd_len=-1;
-    ;;
-
-  cygwin* | mingw* | cegcc*)
-    # On Win9x/ME, this test blows up -- it succeeds, but takes
-    # about 5 minutes as the teststring grows exponentially.
-    # Worse, since 9x/ME are not pre-emptively multitasking,
-    # you end up with a "frozen" computer, even though with patience
-    # the test eventually succeeds (with a max line length of 256k).
-    # Instead, let's just punt: use the minimum linelength reported by
-    # all of the supported platforms: 8192 (on NT/2K/XP).
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  amigaos*)
-    # On AmigaOS with pdksh, this test takes hours, literally.
-    # So we just punt and use a minimum line length of 8192.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
-    # This has been around since 386BSD, at least.  Likely further.
-    if test -x /sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
-    elif test -x /usr/sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
-    else
-      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
-    fi
-    # And add a safety zone
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    ;;
-
-  interix*)
-    # We know the value 262144 and hardcode it with a safety zone (like BSD)
-    lt_cv_sys_max_cmd_len=196608
-    ;;
-
-  osf*)
-    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
-    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
-    # nice to cause kernel panics so lets avoid the loop below.
-    # First set a reasonable default.
-    lt_cv_sys_max_cmd_len=16384
-    #
-    if test -x /sbin/sysconfig; then
-      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
-        *1*) lt_cv_sys_max_cmd_len=-1 ;;
-      esac
-    fi
-    ;;
-  sco3.2v5*)
-    lt_cv_sys_max_cmd_len=102400
-    ;;
-  sysv5* | sco5v6* | sysv4.2uw2*)
-    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
-    if test -n "$kargmax"; then
-      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[	 ]]//'`
-    else
-      lt_cv_sys_max_cmd_len=32768
-    fi
-    ;;
-  *)
-    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
-    if test -n "$lt_cv_sys_max_cmd_len"; then
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    else
-      # Make teststring a little bigger before we do anything with it.
-      # a 1K string should be a reasonable start.
-      for i in 1 2 3 4 5 6 7 8 ; do
-        teststring=$teststring$teststring
-      done
-      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
-      # If test is not a shell built-in, we'll probably end up computing a
-      # maximum length that is only half of the actual maximum length, but
-      # we can't tell.
-      while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
-	         = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
-	      test $i != 17 # 1/2 MB should be enough
-      do
-        i=`expr $i + 1`
-        teststring=$teststring$teststring
-      done
-      # Only check the string length outside the loop.
-      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
-      teststring=
-      # Add a significant safety factor because C++ compilers can tack on
-      # massive amounts of additional arguments before passing them to the
-      # linker.  It appears as though 1/2 is a usable value.
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
-    fi
-    ;;
-  esac
-])
-if test -n $lt_cv_sys_max_cmd_len ; then
-  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
-else
-  AC_MSG_RESULT(none)
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-_LT_DECL([], [max_cmd_len], [0],
-    [What is the maximum length of a command?])
-])# LT_CMD_MAX_LEN
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
-
-
-# _LT_HEADER_DLFCN
-# ----------------
-m4_defun([_LT_HEADER_DLFCN],
-[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
-])# _LT_HEADER_DLFCN
-
-
-# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
-#                      ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
-# ----------------------------------------------------------------
-m4_defun([_LT_TRY_DLOPEN_SELF],
-[m4_require([_LT_HEADER_DLFCN])dnl
-if test "$cross_compiling" = yes; then :
-  [$4]
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<_LT_EOF
-[#line __oline__ "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-  else
-    puts (dlerror ());
-
-  return status;
-}]
-_LT_EOF
-  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) $1 ;;
-      x$lt_dlneed_uscore) $2 ;;
-      x$lt_dlunknown|x*) $3 ;;
-    esac
-  else :
-    # compilation failed
-    $3
-  fi
-fi
-rm -fr conftest*
-])# _LT_TRY_DLOPEN_SELF
-
-
-# LT_SYS_DLOPEN_SELF
-# ------------------
-AC_DEFUN([LT_SYS_DLOPEN_SELF],
-[m4_require([_LT_HEADER_DLFCN])dnl
-if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32* | cegcc*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-    ;;
-
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-    ;;
-
-  darwin*)
-  # if libdl is installed we need to link against it
-    AC_CHECK_LIB([dl], [dlopen],
-		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ])
-    ;;
-
-  *)
-    AC_CHECK_FUNC([shl_load],
-	  [lt_cv_dlopen="shl_load"],
-      [AC_CHECK_LIB([dld], [shl_load],
-	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
-	[AC_CHECK_FUNC([dlopen],
-	      [lt_cv_dlopen="dlopen"],
-	  [AC_CHECK_LIB([dl], [dlopen],
-		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
-	    [AC_CHECK_LIB([svld], [dlopen],
-		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
-	      [AC_CHECK_LIB([dld], [dld_link],
-		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
-	      ])
-	    ])
-	  ])
-	])
-      ])
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    AC_CACHE_CHECK([whether a program can dlopen itself],
-	  lt_cv_dlopen_self, [dnl
-	  _LT_TRY_DLOPEN_SELF(
-	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
-	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
-    ])
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
-      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
-	  lt_cv_dlopen_self_static, [dnl
-	  _LT_TRY_DLOPEN_SELF(
-	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
-	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
-      ])
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-_LT_DECL([dlopen_support], [enable_dlopen], [0],
-	 [Whether dlopen is supported])
-_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
-	 [Whether dlopen of programs is supported])
-_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
-	 [Whether dlopen of statically linked programs is supported])
-])# LT_SYS_DLOPEN_SELF
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
-
-
-# _LT_COMPILER_C_O([TAGNAME])
-# ---------------------------
-# Check to see if options -c and -o are simultaneously supported by compiler.
-# This macro does not hard code the compiler like AC_PROG_CC_C_O.
-m4_defun([_LT_COMPILER_C_O],
-[m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
-  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
-  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-     fi
-   fi
-   chmod u+w . 2>&AS_MESSAGE_LOG_FD
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-])
-_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
-	[Does compiler simultaneously support -c and -o options?])
-])# _LT_COMPILER_C_O
-
-
-# _LT_COMPILER_FILE_LOCKS([TAGNAME])
-# ----------------------------------
-# Check to see if we can do hard links to lock some files if needed
-m4_defun([_LT_COMPILER_FILE_LOCKS],
-[m4_require([_LT_ENABLE_LOCK])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-_LT_COMPILER_C_O([$1])
-
-hard_links="nottested"
-if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  AC_MSG_CHECKING([if we can lock with hard links])
-  hard_links=yes
-  $RM conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  AC_MSG_RESULT([$hard_links])
-  if test "$hard_links" = no; then
-    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
-])# _LT_COMPILER_FILE_LOCKS
-
-
-# _LT_CHECK_OBJDIR
-# ----------------
-m4_defun([_LT_CHECK_OBJDIR],
-[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
-[rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
-  lt_cv_objdir=.libs
-else
-  # MS-DOS does not allow filenames that begin with a dot.
-  lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null])
-objdir=$lt_cv_objdir
-_LT_DECL([], [objdir], [0],
-         [The name of the directory that contains temporary libtool files])dnl
-m4_pattern_allow([LT_OBJDIR])dnl
-AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/",
-  [Define to the sub-directory in which libtool stores uninstalled libraries.])
-])# _LT_CHECK_OBJDIR
-
-
-# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
-# --------------------------------------
-# Check hardcoding attributes.
-m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
-[AC_MSG_CHECKING([how to hardcode library paths into programs])
-_LT_TAGVAR(hardcode_action, $1)=
-if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
-   test -n "$_LT_TAGVAR(runpath_var, $1)" ||
-   test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
-
-  # We can hardcode non-existent directories.
-  if test "$_LT_TAGVAR(hardcode_direct, $1)" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
-     test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then
-    # Linking always hardcodes the temporary library directory.
-    _LT_TAGVAR(hardcode_action, $1)=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    _LT_TAGVAR(hardcode_action, $1)=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  _LT_TAGVAR(hardcode_action, $1)=unsupported
-fi
-AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
-
-if test "$_LT_TAGVAR(hardcode_action, $1)" = relink ||
-   test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-_LT_TAGDECL([], [hardcode_action], [0],
-    [How to hardcode a shared library path into an executable])
-])# _LT_LINKER_HARDCODE_LIBPATH
-
-
-# _LT_CMD_STRIPLIB
-# ----------------
-m4_defun([_LT_CMD_STRIPLIB],
-[m4_require([_LT_DECL_EGREP])
-striplib=
-old_striplib=
-AC_MSG_CHECKING([whether stripping libraries is possible])
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  AC_MSG_RESULT([yes])
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-  darwin*)
-    if test -n "$STRIP" ; then
-      striplib="$STRIP -x"
-      old_striplib="$STRIP -S"
-      AC_MSG_RESULT([yes])
-    else
-      AC_MSG_RESULT([no])
-    fi
-    ;;
-  *)
-    AC_MSG_RESULT([no])
-    ;;
-  esac
-fi
-_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
-_LT_DECL([], [striplib], [1])
-])# _LT_CMD_STRIPLIB
-
-
-# _LT_SYS_DYNAMIC_LINKER([TAG])
-# -----------------------------
-# PORTME Fill in your ld.so characteristics
-m4_defun([_LT_SYS_DYNAMIC_LINKER],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_OBJDUMP])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_MSG_CHECKING([dynamic linker characteristics])
-m4_if([$1],
-	[], [
-if test "$GCC" = yes; then
-  case $host_os in
-    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
-    *) lt_awk_arg="/^libraries:/" ;;
-  esac
-  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
-  # Ok, now we have the path, separated by spaces, we can step through it
-  # and add multilib dir if necessary.
-  lt_tmp_lt_search_path_spec=
-  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
-  for lt_sys_path in $lt_search_path_spec; do
-    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
-      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
-    else
-      test -d "$lt_sys_path" && \
-	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
-    fi
-  done
-  lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
-BEGIN {RS=" "; FS="/|\n";} {
-  lt_foo="";
-  lt_count=0;
-  for (lt_i = NF; lt_i > 0; lt_i--) {
-    if ($lt_i != "" && $lt_i != ".") {
-      if ($lt_i == "..") {
-        lt_count++;
-      } else {
-        if (lt_count == 0) {
-          lt_foo="/" $lt_i lt_foo;
-        } else {
-          lt_count--;
-        }
-      }
-    }
-  }
-  if (lt_foo != "") { lt_freq[[lt_foo]]++; }
-  if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
-}'`
-  sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi])
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix[[4-9]]*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[[01]] | aix4.[[01]].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  case $host_cpu in
-  powerpc)
-    # Since July 2007 AmigaOS4 officially supports .so libraries.
-    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    ;;
-  m68k)
-    library_names_spec='$libname.ixlibrary $libname.a'
-    # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-    ;;
-  esac
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[[45]]*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname~
-      chmod a+x \$dldir/$dlname~
-      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
-        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
-      fi'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw* | cegcc*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-m4_if([$1], [],[
-  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-freebsd* | dragonfly*)
-  # DragonFly does not have aout.  When/if they implement a new
-  # versioning mechanism, adjust this.
-  if test -x /usr/bin/objformat; then
-    objformat=`/usr/bin/objformat`
-  else
-    case $host_os in
-    freebsd[[123]]*) objformat=aout ;;
-    *) objformat=elf ;;
-    esac
-  fi
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[[01]]* | freebsdelf3.[[01]]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
-  freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  *) # from 4.6 on, and DragonFly
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case $host_cpu in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  hppa*64*)
-    shrext_cmds='.sl'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-interix[[3-9]]*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # Some binutils ld are patched to set DT_RUNPATH
-  save_LDFLAGS=$LDFLAGS
-  save_libdir=$libdir
-  eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
-       LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
-  AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
-    [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
-       [shlibpath_overrides_runpath=yes])])
-  LDFLAGS=$save_LDFLAGS
-  libdir=$save_libdir
-
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-netbsdelf*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='NetBSD ld.elf_so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-*nto* | *qnx*)
-  version_type=qnx
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='ldqnx.so'
-  ;;
-
-openbsd*)
-  version_type=sunos
-  sys_lib_dlsearch_path_spec="/usr/lib"
-  need_lib_prefix=no
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
-    *)				need_version=no  ;;
-  esac
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[[89]] | openbsd2.[[89]].*)
-	shlibpath_overrides_runpath=no
-	;;
-      *)
-	shlibpath_overrides_runpath=yes
-	;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-rdos*)
-  dynamic_linker=no
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  version_type=freebsd-elf
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  if test "$with_gnu_ld" = yes; then
-    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
-  else
-    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
-    case $host_os in
-      sco3.2v5*)
-        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
-	;;
-    esac
-  fi
-  sys_lib_dlsearch_path_spec='/usr/lib'
-  ;;
-
-tpf*)
-  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-AC_MSG_RESULT([$dynamic_linker])
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-_LT_DECL([], [variables_saved_for_relink], [1],
-    [Variables whose values should be saved in libtool wrapper scripts and
-    restored at link time])
-_LT_DECL([], [need_lib_prefix], [0],
-    [Do we need the "lib" prefix for modules?])
-_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
-_LT_DECL([], [version_type], [0], [Library versioning type])
-_LT_DECL([], [runpath_var], [0],  [Shared library runtime path variable])
-_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
-_LT_DECL([], [shlibpath_overrides_runpath], [0],
-    [Is shlibpath searched before the hard-coded library search path?])
-_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
-_LT_DECL([], [library_names_spec], [1],
-    [[List of archive names.  First name is the real one, the rest are links.
-    The last name is the one that the linker finds with -lNAME]])
-_LT_DECL([], [soname_spec], [1],
-    [[The coded name of the library, if different from the real name]])
-_LT_DECL([], [postinstall_cmds], [2],
-    [Command to use after installation of a shared archive])
-_LT_DECL([], [postuninstall_cmds], [2],
-    [Command to use after uninstallation of a shared archive])
-_LT_DECL([], [finish_cmds], [2],
-    [Commands used to finish a libtool library installation in a directory])
-_LT_DECL([], [finish_eval], [1],
-    [[As "finish_cmds", except a single script fragment to be evaled but
-    not shown]])
-_LT_DECL([], [hardcode_into_libs], [0],
-    [Whether we should hardcode library paths into libraries])
-_LT_DECL([], [sys_lib_search_path_spec], [2],
-    [Compile-time system search path for libraries])
-_LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
-    [Run-time system search path for libraries])
-])# _LT_SYS_DYNAMIC_LINKER
-
-
-# _LT_PATH_TOOL_PREFIX(TOOL)
-# --------------------------
-# find a file program which can recognize shared library
-AC_DEFUN([_LT_PATH_TOOL_PREFIX],
-[m4_require([_LT_DECL_EGREP])dnl
-AC_MSG_CHECKING([for $1])
-AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
-[case $MAGIC_CMD in
-[[\\/*] |  ?:[\\/]*])
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-dnl $ac_dummy forces splitting on constant user-supplied paths.
-dnl POSIX.2 word splitting is done only on the output of word expansions,
-dnl not every word.  This closes a longstanding sh security hole.
-  ac_dummy="m4_if([$2], , $PATH, [$2])"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$1; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
-      if test -n "$file_magic_test_file"; then
-	case $deplibs_check_method in
-	"file_magic "*)
-	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-	    $EGREP "$file_magic_regex" > /dev/null; then
-	    :
-	  else
-	    cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool at gnu.org
-
-_LT_EOF
-	  fi ;;
-	esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac])
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  AC_MSG_RESULT($MAGIC_CMD)
-else
-  AC_MSG_RESULT(no)
-fi
-_LT_DECL([], [MAGIC_CMD], [0],
-	 [Used to examine libraries when file_magic_cmd begins with "file"])dnl
-])# _LT_PATH_TOOL_PREFIX
-
-# Old name:
-AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
-
-
-# _LT_PATH_MAGIC
-# --------------
-# find a file program which can recognize a shared library
-m4_defun([_LT_PATH_MAGIC],
-[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
-if test -z "$lt_cv_path_MAGIC_CMD"; then
-  if test -n "$ac_tool_prefix"; then
-    _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
-  else
-    MAGIC_CMD=:
-  fi
-fi
-])# _LT_PATH_MAGIC
-
-
-# LT_PATH_LD
-# ----------
-# find the pathname to the GNU or non-GNU linker
-AC_DEFUN([LT_PATH_LD],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-
-AC_ARG_WITH([gnu-ld],
-    [AS_HELP_STRING([--with-gnu-ld],
-	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
-    [test "$withval" = no || with_gnu_ld=yes],
-    [with_gnu_ld=no])dnl
-
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  AC_MSG_CHECKING([for ld used by $CC])
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [[\\/]]* | ?:[[\\/]]*)
-      re_direlt='/[[^/]][[^/]]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
-      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  AC_MSG_CHECKING([for GNU ld])
-else
-  AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(lt_cv_path_LD,
-[if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some variants of GNU ld only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-	test "$with_gnu_ld" != no && break
-	;;
-      *)
-	test "$with_gnu_ld" != yes && break
-	;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  AC_MSG_RESULT($LD)
-else
-  AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-_LT_PATH_LD_GNU
-AC_SUBST([LD])
-
-_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
-])# LT_PATH_LD
-
-# Old names:
-AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
-AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_PROG_LD], [])
-dnl AC_DEFUN([AC_PROG_LD], [])
-
-
-# _LT_PATH_LD_GNU
-#- --------------
-m4_defun([_LT_PATH_LD_GNU],
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac])
-with_gnu_ld=$lt_cv_prog_gnu_ld
-])# _LT_PATH_LD_GNU
-
-
-# _LT_CMD_RELOAD
-# --------------
-# find reload flag for linker
-#   -- PORTME Some linkers may need a different reload flag.
-m4_defun([_LT_CMD_RELOAD],
-[AC_CACHE_CHECK([for $LD option to reload object files],
-  lt_cv_ld_reload_flag,
-  [lt_cv_ld_reload_flag='-r'])
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
-  darwin*)
-    if test "$GCC" = yes; then
-      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-    else
-      reload_cmds='$LD$reload_flag -o $output$reload_objs'
-    fi
-    ;;
-esac
-_LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl
-_LT_DECL([], [reload_cmds], [2])dnl
-])# _LT_CMD_RELOAD
-
-
-# _LT_CHECK_MAGIC_METHOD
-# ----------------------
-# how to check for library dependencies
-#  -- PORTME fill in with the dynamic library characteristics
-m4_defun([_LT_CHECK_MAGIC_METHOD],
-[m4_require([_LT_DECL_EGREP])
-m4_require([_LT_DECL_OBJDUMP])
-AC_CACHE_CHECK([how to recognize dependent libraries],
-lt_cv_deplibs_check_method,
-[lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[[4-9]]*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-bsdi[[45]]*)
-  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  lt_cv_file_magic_test_file=/shlib/libc.so
-  ;;
-
-cygwin*)
-  # func_win32_libid is a shell function defined in ltmain.sh
-  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-  lt_cv_file_magic_cmd='func_win32_libid'
-  ;;
-
-mingw* | pw32*)
-  # Base MSYS/MinGW do not provide the 'file' command needed by
-  # func_win32_libid shell function, so use a weaker test based on 'objdump',
-  # unless we find 'file', for example because we are cross-compiling.
-  if ( file / ) >/dev/null 2>&1; then
-    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-    lt_cv_file_magic_cmd='func_win32_libid'
-  else
-    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
-    lt_cv_file_magic_cmd='$OBJDUMP -f'
-  fi
-  ;;
-
-cegcc)
-  # use the weaker test based on 'objdump'. See mingw*.
-  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
-  lt_cv_file_magic_cmd='$OBJDUMP -f'
-  ;;
-
-darwin* | rhapsody*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-freebsd* | dragonfly*)
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
-    case $host_cpu in
-    i*86 )
-      # Not sure whether the presence of OpenBSD here was a mistake.
-      # Let's accept both of them until this is cleared up.
-      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
-      lt_cv_file_magic_cmd=/usr/bin/file
-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-      ;;
-    esac
-  else
-    lt_cv_deplibs_check_method=pass_all
-  fi
-  ;;
-
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-hpux10.20* | hpux11*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  case $host_cpu in
-  ia64*)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
-    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
-    ;;
-  hppa*64*)
-    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
-    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
-    ;;
-  *)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
-    lt_cv_file_magic_test_file=/usr/lib/libc.sl
-    ;;
-  esac
-  ;;
-
-interix[[3-9]]*)
-  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
-  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $LD in
-  *-32|*"-32 ") libmagic=32-bit;;
-  *-n32|*"-n32 ") libmagic=N32;;
-  *-64|*"-64 ") libmagic=64-bit;;
-  *) libmagic=never-match;;
-  esac
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-# This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-netbsd* | netbsdelf*-gnu)
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
-  fi
-  ;;
-
-newos6*)
-  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=/usr/lib/libnls.so
-  ;;
-
-*nto* | *qnx*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-openbsd*)
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
-  fi
-  ;;
-
-osf3* | osf4* | osf5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-rdos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-solaris*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv4 | sysv4.3*)
-  case $host_vendor in
-  motorola)
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
-    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
-    ;;
-  ncr)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  sequent)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
-    ;;
-  sni)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
-    lt_cv_file_magic_test_file=/lib/libc.so
-    ;;
-  siemens)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  pc)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  esac
-  ;;
-
-tpf*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-esac
-])
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-_LT_DECL([], [deplibs_check_method], [1],
-    [Method to check whether dependent libraries are shared objects])
-_LT_DECL([], [file_magic_cmd], [1],
-    [Command to use when deplibs_check_method == "file_magic"])
-])# _LT_CHECK_MAGIC_METHOD
-
-
-# LT_PATH_NM
-# ----------
-# find the pathname to a BSD- or MS-compatible name lister
-AC_DEFUN([LT_PATH_NM],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
-[if test -n "$NM"; then
-  # Let the user override the test.
-  lt_cv_path_NM="$NM"
-else
-  lt_nm_to_check="${ac_tool_prefix}nm"
-  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
-    lt_nm_to_check="$lt_nm_to_check nm"
-  fi
-  for lt_tmp_nm in $lt_nm_to_check; do
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
-      IFS="$lt_save_ifs"
-      test -z "$ac_dir" && ac_dir=.
-      tmp_nm="$ac_dir/$lt_tmp_nm"
-      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
-	# Check to see if the nm accepts a BSD-compat flag.
-	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
-	#   nm: unknown option "B" ignored
-	# Tru64's nm complains that /dev/null is an invalid object file
-	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-	*/dev/null* | *'Invalid file or object type'*)
-	  lt_cv_path_NM="$tmp_nm -B"
-	  break
-	  ;;
-	*)
-	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-	  */dev/null*)
-	    lt_cv_path_NM="$tmp_nm -p"
-	    break
-	    ;;
-	  *)
-	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-	    continue # so that we can try to find one that supports BSD flags
-	    ;;
-	  esac
-	  ;;
-	esac
-      fi
-    done
-    IFS="$lt_save_ifs"
-  done
-  : ${lt_cv_path_NM=no}
-fi])
-if test "$lt_cv_path_NM" != "no"; then
-  NM="$lt_cv_path_NM"
-else
-  # Didn't find any BSD compatible name lister, look for dumpbin.
-  AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :)
-  AC_SUBST([DUMPBIN])
-  if test "$DUMPBIN" != ":"; then
-    NM="$DUMPBIN"
-  fi
-fi
-test -z "$NM" && NM=nm
-AC_SUBST([NM])
-_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
-
-AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
-  [lt_cv_nm_interface="BSD nm"
-  echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
-  (eval "$ac_compile" 2>conftest.err)
-  cat conftest.err >&AS_MESSAGE_LOG_FD
-  (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
-  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
-  cat conftest.err >&AS_MESSAGE_LOG_FD
-  (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD)
-  cat conftest.out >&AS_MESSAGE_LOG_FD
-  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
-    lt_cv_nm_interface="MS dumpbin"
-  fi
-  rm -f conftest*])
-])# LT_PATH_NM
-
-# Old names:
-AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
-AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_PROG_NM], [])
-dnl AC_DEFUN([AC_PROG_NM], [])
-
-
-# LT_LIB_M
-# --------
-# check for math library
-AC_DEFUN([LT_LIB_M],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case $host in
-*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
-  # These system don't have libm, or don't need it
-  ;;
-*-ncr-sysv4.3*)
-  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
-  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
-  ;;
-*)
-  AC_CHECK_LIB(m, cos, LIBM="-lm")
-  ;;
-esac
-AC_SUBST([LIBM])
-])# LT_LIB_M
-
-# Old name:
-AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_CHECK_LIBM], [])
-
-
-# _LT_COMPILER_NO_RTTI([TAGNAME])
-# -------------------------------
-m4_defun([_LT_COMPILER_NO_RTTI],
-[m4_require([_LT_TAG_COMPILER])dnl
-
-_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-
-if test "$GCC" = yes; then
-  _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
-
-  _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
-    lt_cv_prog_compiler_rtti_exceptions,
-    [-fno-rtti -fno-exceptions], [],
-    [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
-fi
-_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
-	[Compiler flag to turn off builtin functions])
-])# _LT_COMPILER_NO_RTTI
-
-
-# _LT_CMD_GLOBAL_SYMBOLS
-# ----------------------
-m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-AC_REQUIRE([LT_PATH_LD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-AC_MSG_CHECKING([command to parse $NM output from $compiler object])
-AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
-[
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[[BCDEGRST]]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
-
-# Define system-specific variables.
-case $host_os in
-aix*)
-  symcode='[[BCDT]]'
-  ;;
-cygwin* | mingw* | pw32* | cegcc*)
-  symcode='[[ABCDGISTW]]'
-  ;;
-hpux*)
-  if test "$host_cpu" = ia64; then
-    symcode='[[ABCDEGRST]]'
-  fi
-  ;;
-irix* | nonstopux*)
-  symcode='[[BCDEGRST]]'
-  ;;
-osf*)
-  symcode='[[BCDEGQRST]]'
-  ;;
-solaris*)
-  symcode='[[BDRT]]'
-  ;;
-sco3.2v5*)
-  symcode='[[DT]]'
-  ;;
-sysv4.2uw2*)
-  symcode='[[DT]]'
-  ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
-  symcode='[[ABDT]]'
-  ;;
-sysv4)
-  symcode='[[DFNSTU]]'
-  ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
-  symcode='[[ABCDGIRSTW]]' ;;
-esac
-
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
-  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-  ;;
-esac
-
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
-
-  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
-  symxfrm="\\1 $ac_symprfx\\2 \\2"
-
-  # Write the raw and C identifiers.
-  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-    # Fake it for dumpbin and say T for any non-static function
-    # and D for any global variable.
-    # Also find C++ and __fastcall symbols from MSVC++,
-    # which start with @ or ?.
-    lt_cv_sys_global_symbol_pipe="$AWK ['"\
-"     {last_section=section; section=\$ 3};"\
-"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-"     \$ 0!~/External *\|/{next};"\
-"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-"     {if(hide[section]) next};"\
-"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
-"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
-"     ' prfx=^$ac_symprfx]"
-  else
-    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[	 ]]\($symcode$symcode*\)[[	 ]][[	 ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
-  fi
-
-  # Check to see that the pipe works correctly.
-  pipe_works=no
-
-  rm -f conftest*
-  cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
-
-  if AC_TRY_EVAL(ac_compile); then
-    # Now try to grab the symbols.
-    nlist=conftest.nm
-    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
-      # Try sorting and uniquifying the output.
-      if sort "$nlist" | uniq > "$nlist"T; then
-	mv -f "$nlist"T "$nlist"
-      else
-	rm -f "$nlist"T
-      fi
-
-      # Make sure that we snagged all the symbols we need.
-      if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
-	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
-	  cat <<_LT_EOF > conftest.$ac_ext
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_LT_EOF
-	  # Now generate the symbol file.
-	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-
-	  cat <<_LT_EOF >> conftest.$ac_ext
-
-/* The mapping between symbol names and symbols.  */
-const struct {
-  const char *name;
-  void       *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[[]] =
-{
-  { "@PROGRAM@", (void *) 0 },
-_LT_EOF
-	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
-	  cat <<\_LT_EOF >> conftest.$ac_ext
-  {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
-  return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
-	  # Now try linking the two files.
-	  mv conftest.$ac_objext conftstm.$ac_objext
-	  lt_save_LIBS="$LIBS"
-	  lt_save_CFLAGS="$CFLAGS"
-	  LIBS="conftstm.$ac_objext"
-	  CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
-	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
-	    pipe_works=yes
-	  fi
-	  LIBS="$lt_save_LIBS"
-	  CFLAGS="$lt_save_CFLAGS"
-	else
-	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
-	fi
-      else
-	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
-      fi
-    else
-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
-    fi
-  else
-    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
-    cat conftest.$ac_ext >&5
-  fi
-  rm -rf conftest* conftst*
-
-  # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
-    break
-  else
-    lt_cv_sys_global_symbol_pipe=
-  fi
-done
-])
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
-  lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  AC_MSG_RESULT(failed)
-else
-  AC_MSG_RESULT(ok)
-fi
-
-_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
-    [Take the output of nm and produce a listing of raw symbols and C names])
-_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
-    [Transform the output of nm in a proper C declaration])
-_LT_DECL([global_symbol_to_c_name_address],
-    [lt_cv_sys_global_symbol_to_c_name_address], [1],
-    [Transform the output of nm in a C name address pair])
-_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
-    [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
-    [Transform the output of nm in a C name address pair when lib prefix is needed])
-]) # _LT_CMD_GLOBAL_SYMBOLS
-
-
-# _LT_COMPILER_PIC([TAGNAME])
-# ---------------------------
-m4_defun([_LT_COMPILER_PIC],
-[m4_require([_LT_TAG_COMPILER])dnl
-_LT_TAGVAR(lt_prog_compiler_wl, $1)=
-_LT_TAGVAR(lt_prog_compiler_pic, $1)=
-_LT_TAGVAR(lt_prog_compiler_static, $1)=
-
-AC_MSG_CHECKING([for $compiler option to produce PIC])
-m4_if([$1], [CXX], [
-  # C++ specific cases for pic, static, wl, etc.
-  if test "$GXX" = yes; then
-    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
-    case $host_os in
-    aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-        ;;
-      m68k)
-            # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
-            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
-        ;;
-      esac
-      ;;
-
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-    mingw* | cygwin* | os2* | pw32* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      # Although the cygwin gcc ignores -fPIC, still need this for old-style
-      # (--disable-auto-import) libraries
-      m4_if([$1], [GCJ], [],
-	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-      ;;
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-      ;;
-    *djgpp*)
-      # DJGPP does not support shared libraries at all
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)=
-      ;;
-    interix[[3-9]]*)
-      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-      # Instead, we relocate shared libraries at runtime.
-      ;;
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-      fi
-      ;;
-    hpux*)
-      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
-      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
-      # sets the default TLS model and affects inlining.
-      case $host_cpu in
-      hppa*64*)
-	;;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	;;
-      esac
-      ;;
-    *qnx* | *nto*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
-      ;;
-    *)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      ;;
-    esac
-  else
-    case $host_os in
-      aix[[4-9]]*)
-	# All AIX code is PIC.
-	if test "$host_cpu" = ia64; then
-	  # AIX 5 now supports IA64 processor
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	else
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
-	fi
-	;;
-      chorus*)
-	case $cc_basename in
-	cxch68*)
-	  # Green Hills C++ Compiler
-	  # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
-	  ;;
-	esac
-	;;
-      dgux*)
-	case $cc_basename in
-	  ec++*)
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    ;;
-	  ghcx*)
-	    # Green Hills C++ Compiler
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      freebsd* | dragonfly*)
-	# FreeBSD uses GNU C++
-	;;
-      hpux9* | hpux10* | hpux11*)
-	case $cc_basename in
-	  CC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-	    if test "$host_cpu" != ia64; then
-	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	    fi
-	    ;;
-	  aCC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-	    case $host_cpu in
-	    hppa*64*|ia64*)
-	      # +Z the default
-	      ;;
-	    *)
-	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	      ;;
-	    esac
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      interix*)
-	# This is c89, which is MS Visual C++ (no shared libs)
-	# Anyone wants to do a port?
-	;;
-      irix5* | irix6* | nonstopux*)
-	case $cc_basename in
-	  CC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    # CC pic flag -KPIC is the default.
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
-	case $cc_basename in
-	  KCC*)
-	    # KAI C++ Compiler
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	    ;;
-	  ecpc* )
-	    # old Intel C++ for x86_64 which still supported -KPIC.
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-	    ;;
-	  icpc* )
-	    # Intel C++, used to be incompatible with GCC.
-	    # ICC 10 doesn't accept -KPIC any more.
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-	    ;;
-	  pgCC* | pgcpp*)
-	    # Portland Group C++ compiler
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    ;;
-	  cxx*)
-	    # Compaq C++
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    ;;
-	  xlc* | xlC*)
-	    # IBM XL 8.0 on PPC
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
-	    ;;
-	  *)
-	    case `$CC -V 2>&1 | sed 5q` in
-	    *Sun\ C*)
-	      # Sun C++ 5.9
-	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-	      ;;
-	    esac
-	    ;;
-	esac
-	;;
-      lynxos*)
-	;;
-      m88k*)
-	;;
-      mvs*)
-	case $cc_basename in
-	  cxx*)
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      netbsd* | netbsdelf*-gnu)
-	;;
-      *qnx* | *nto*)
-        # QNX uses GNU C++, but need to define -shared option too, otherwise
-        # it will coredump.
-        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
-        ;;
-      osf3* | osf4* | osf5*)
-	case $cc_basename in
-	  KCC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
-	    ;;
-	  RCC*)
-	    # Rational C++ 2.4.1
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  cxx*)
-	    # Digital/Compaq C++
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      psos*)
-	;;
-      solaris*)
-	case $cc_basename in
-	  CC*)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-	    ;;
-	  gcx*)
-	    # Green Hills C++ Compiler
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sunos4*)
-	case $cc_basename in
-	  CC*)
-	    # Sun C++ 4.x
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    ;;
-	  lcc*)
-	    # Lucid
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-	case $cc_basename in
-	  CC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    ;;
-	esac
-	;;
-      tandem*)
-	case $cc_basename in
-	  NCC*)
-	    # NonStop-UX NCC 3.20
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      vxworks*)
-	;;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-	;;
-    esac
-  fi
-],
-[
-  if test "$GCC" = yes; then
-    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-        ;;
-      m68k)
-            # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
-            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
-        ;;
-      esac
-      ;;
-
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | cygwin* | pw32* | os2* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      # Although the cygwin gcc ignores -fPIC, still need this for old-style
-      # (--disable-auto-import) libraries
-      m4_if([$1], [GCJ], [],
-	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-      ;;
-
-    hpux*)
-      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
-      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
-      # sets the default TLS model and affects inlining.
-      case $host_cpu in
-      hppa*64*)
-	# +Z the default
-	;;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	;;
-      esac
-      ;;
-
-    interix[[3-9]]*)
-      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-      # Instead, we relocate shared libraries at runtime.
-      ;;
-
-    msdosdjgpp*)
-      # Just because we use GCC doesn't mean we suddenly get shared libraries
-      # on systems that don't support them.
-      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      enable_shared=no
-      ;;
-
-    *nto* | *qnx*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-      fi
-      ;;
-
-    *)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      else
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-
-    mingw* | cygwin* | pw32* | os2* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      m4_if([$1], [GCJ], [],
-	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case $host_cpu in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # PIC (with -KPIC) is the default.
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    linux* | k*bsd*-gnu | kopensolaris*-gnu)
-      case $cc_basename in
-      # old Intel for x86_64 which still supported -KPIC.
-      ecc*)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-        ;;
-      # icc used to be incompatible with GCC.
-      # ICC 10 doesn't accept -KPIC any more.
-      icc* | ifort*)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-        ;;
-      # Lahey Fortran 8.1.
-      lf95*)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
-	;;
-      pgcc* | pgf77* | pgf90* | pgf95*)
-        # Portland Group compilers (*not* the Pentium gcc compiler,
-	# which looks to be a dead project)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-        ;;
-      ccc*)
-        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-        # All Alpha code is PIC.
-        _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-        ;;
-      xl*)
-	# IBM XL C 8.0/Fortran 10.1 on PPC
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
-	;;
-      *)
-	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ C*)
-	  # Sun C 5.9
-	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	  ;;
-	*Sun\ F*)
-	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
-	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
-	  ;;
-	esac
-	;;
-      esac
-      ;;
-
-    newsos6)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    *nto* | *qnx*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
-      ;;
-
-    osf3* | osf4* | osf5*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # All OSF/1 code is PIC.
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    rdos*)
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    solaris*)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      case $cc_basename in
-      f77* | f90* | f95*)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
-      esac
-      ;;
-
-    sunos4*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    unicos*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      ;;
-
-    uts4*)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    *)
-      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      ;;
-    esac
-  fi
-])
-case $host_os in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
-    ;;
-  *)
-    _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t at m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
-    ;;
-esac
-AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
-_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
-	[How to pass a linker flag through the compiler])
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
-  _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
-    [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
-    [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t at m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
-    [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
-     "" | " "*) ;;
-     *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
-     esac],
-    [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
-     _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
-fi
-_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
-	[Additional compiler flags for building library objects])
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
-_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
-  _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
-  $lt_tmp_static_flag,
-  [],
-  [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
-_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
-	[Compiler flag to prevent dynamic linking])
-])# _LT_COMPILER_PIC
-
-
-# _LT_LINKER_SHLIBS([TAGNAME])
-# ----------------------------
-# See if the linker supports building shared libraries.
-m4_defun([_LT_LINKER_SHLIBS],
-[AC_REQUIRE([LT_PATH_LD])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-m4_if([$1], [CXX], [
-  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  case $host_os in
-  aix[[4-9]]*)
-    # If we're using GNU nm, then we don't want the "-C" option.
-    # -C means demangle to AIX nm, but means don't demangle with GNU nm
-    if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-    else
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-    fi
-    ;;
-  pw32*)
-    _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
-  ;;
-  cygwin* | mingw* | cegcc*)
-    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  linux* | k*bsd*-gnu)
-    _LT_TAGVAR(link_all_deplibs, $1)=no
-  ;;
-  *)
-    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  esac
-  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
-], [
-  runpath_var=
-  _LT_TAGVAR(allow_undefined_flag, $1)=
-  _LT_TAGVAR(always_export_symbols, $1)=no
-  _LT_TAGVAR(archive_cmds, $1)=
-  _LT_TAGVAR(archive_expsym_cmds, $1)=
-  _LT_TAGVAR(compiler_needs_object, $1)=no
-  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-  _LT_TAGVAR(export_dynamic_flag_spec, $1)=
-  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  _LT_TAGVAR(hardcode_automatic, $1)=no
-  _LT_TAGVAR(hardcode_direct, $1)=no
-  _LT_TAGVAR(hardcode_direct_absolute, $1)=no
-  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-  _LT_TAGVAR(hardcode_libdir_separator, $1)=
-  _LT_TAGVAR(hardcode_minus_L, $1)=no
-  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  _LT_TAGVAR(inherit_rpath, $1)=no
-  _LT_TAGVAR(link_all_deplibs, $1)=unknown
-  _LT_TAGVAR(module_cmds, $1)=
-  _LT_TAGVAR(module_expsym_cmds, $1)=
-  _LT_TAGVAR(old_archive_from_new_cmds, $1)=
-  _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
-  _LT_TAGVAR(thread_safe_flag_spec, $1)=
-  _LT_TAGVAR(whole_archive_flag_spec, $1)=
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  _LT_TAGVAR(include_expsyms, $1)=
-  # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
-  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  # Exclude shared library initialization/finalization symbols.
-dnl Note also adjust exclude_expsyms for C++ above.
-  extract_expsyms_cmds=
-
-  case $host_os in
-  cygwin* | mingw* | pw32* | cegcc*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  interix*)
-    # we just hope/assume this is gcc and not c89 (= MSVC++)
-    with_gnu_ld=yes
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  linux* | k*bsd*-gnu)
-    _LT_TAGVAR(link_all_deplibs, $1)=no
-    ;;
-  esac
-
-  _LT_TAGVAR(ld_shlibs, $1)=yes
-  if test "$with_gnu_ld" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # Set some defaults for GNU ld with shared library support. These
-    # are reset later if shared libraries are not supported. Putting them
-    # here allows them to be overridden if necessary.
-    runpath_var=LD_RUN_PATH
-    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-    # ancient GNU ld didn't support --whole-archive et. al.
-    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
-      _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-    else
-      _LT_TAGVAR(whole_archive_flag_spec, $1)=
-    fi
-    supports_anon_versioning=no
-    case `$LD -v 2>&1` in
-      *GNU\ gold*) supports_anon_versioning=yes ;;
-      *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
-      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
-      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
-      *\ 2.11.*) ;; # other 2.11 versions
-      *) supports_anon_versioning=yes ;;
-    esac
-
-    # See if GNU ld supports shared libraries.
-    case $host_os in
-    aix[[3-9]]*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-_LT_EOF
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-            _LT_TAGVAR(archive_expsym_cmds, $1)=''
-        ;;
-      m68k)
-            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-            _LT_TAGVAR(hardcode_minus_L, $1)=yes
-        ;;
-      esac
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	_LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32* | cegcc*)
-      # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-      # as there is no search path for DLLs.
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_TAGVAR(always_export_symbols, $1)=no
-      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
-
-      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	# If the export-symbols file already is a .def file (1st line
-	# is EXPORTS), use it as is; otherwise, prepend...
-	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	  cp $export_symbols $output_objdir/$soname.def;
-	else
-	  echo EXPORTS > $output_objdir/$soname.def;
-	  cat $export_symbols >> $output_objdir/$soname.def;
-	fi~
-	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    interix[[3-9]]*)
-      _LT_TAGVAR(hardcode_direct, $1)=no
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-      # Instead, shared libraries are loaded at an image base (0x10000000 by
-      # default) and relocated if they conflict, which is a slow very memory
-      # consuming and fragmenting process.  To avoid this, we pick a random,
-      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      ;;
-
-    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
-      tmp_diet=no
-      if test "$host_os" = linux-dietlibc; then
-	case $cc_basename in
-	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
-	esac
-      fi
-      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
-	 && test "$tmp_diet" = no
-      then
-	tmp_addflag=
-	tmp_sharedflag='-shared'
-	case $cc_basename,$host_cpu in
-        pgcc*)				# Portland Group C compiler
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag'
-	  ;;
-	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag -Mnomain' ;;
-	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
-	  tmp_addflag=' -i_dynamic' ;;
-	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
-	  tmp_addflag=' -i_dynamic -nofor_main' ;;
-	ifc* | ifort*)			# Intel Fortran compiler
-	  tmp_addflag=' -nofor_main' ;;
-	lf95*)				# Lahey Fortran 8.1
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)=
-	  tmp_sharedflag='--shared' ;;
-	xl[[cC]]*)			# IBM XL C 8.0 on PPC (deal with xlf below)
-	  tmp_sharedflag='-qmkshrobj'
-	  tmp_addflag= ;;
-	esac
-	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ C*)			# Sun C 5.9
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
-	  _LT_TAGVAR(compiler_needs_object, $1)=yes
-	  tmp_sharedflag='-G' ;;
-	*Sun\ F*)			# Sun Fortran 8.3
-	  tmp_sharedflag='-G' ;;
-	esac
-	_LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
-        if test "x$supports_anon_versioning" = xyes; then
-          _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-	    cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-	    echo "local: *; };" >> $output_objdir/$libname.ver~
-	    $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-        fi
-
-	case $cc_basename in
-	xlf*)
-	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-	  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
-	  if test "x$supports_anon_versioning" = xyes; then
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-	      echo "local: *; };" >> $output_objdir/$libname.ver~
-	      $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
-	  fi
-	  ;;
-	esac
-      else
-        _LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    netbsd* | netbsdelf*-gnu)
-      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-	wlarc=
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris*)
-      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
-      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
-      case `$LD -v 2>&1` in
-        *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
-	;;
-	*)
-	  # For security reasons, it is highly recommended that you always
-	  # use absolute paths for naming shared libraries, and exclude the
-	  # DT_RUNPATH tag from executables and libraries.  But doing so
-	  # requires that you compile everything twice, which is a pain.
-	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-	  else
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	  fi
-	;;
-      esac
-      ;;
-
-    sunos4*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-    esac
-
-    if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
-      runpath_var=
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)=
-      _LT_TAGVAR(whole_archive_flag_spec, $1)=
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_TAGVAR(always_export_symbols, $1)=yes
-      _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
-	# Neither direct hardcoding nor static linking is supported with a
-	# broken collect2.
-	_LT_TAGVAR(hardcode_direct, $1)=unsupported
-      fi
-      ;;
-
-    aix[[4-9]]*)
-      if test "$host_cpu" = ia64; then
-	# On IA64, the linker does run time linking by default, so we don't
-	# have to do anything special.
-	aix_use_runtimelinking=no
-	exp_sym_flag='-Bexport'
-	no_entry_flag=""
-      else
-	# If we're using GNU nm, then we don't want the "-C" option.
-	# -C means demangle to AIX nm, but means don't demangle with GNU nm
-	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-	else
-	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-	fi
-	aix_use_runtimelinking=no
-
-	# Test if we are trying to use run time linking or normal
-	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
-	# need to do runtime linking.
-	case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
-	  for ld_flag in $LDFLAGS; do
-	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-	    aix_use_runtimelinking=yes
-	    break
-	  fi
-	  done
-	  ;;
-	esac
-
-	exp_sym_flag='-bexport'
-	no_entry_flag='-bnoentry'
-      fi
-
-      # When large executables or shared objects are built, AIX ld can
-      # have problems creating the table of contents.  If linking a library
-      # or program results in "error TOC overflow" add -mminimal-toc to
-      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-      _LT_TAGVAR(archive_cmds, $1)=''
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
-
-      if test "$GCC" = yes; then
-	case $host_os in aix4.[[012]]|aix4.[[012]].*)
-	# We only want to do this on AIX 4.2 and lower, the check
-	# below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" &&
-	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
-	  then
-	  # We have reworked collect2
-	  :
-	  else
-	  # We have old collect2
-	  _LT_TAGVAR(hardcode_direct, $1)=unsupported
-	  # It fails to find uninstalled libraries when the uninstalled
-	  # path is not listed in the libpath.  Setting hardcode_minus_L
-	  # to unsupported forces relinking
-	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-	  _LT_TAGVAR(hardcode_libdir_separator, $1)=
-	  fi
-	  ;;
-	esac
-	shared_flag='-shared'
-	if test "$aix_use_runtimelinking" = yes; then
-	  shared_flag="$shared_flag "'${wl}-G'
-	fi
-	_LT_TAGVAR(link_all_deplibs, $1)=no
-      else
-	# not using gcc
-	if test "$host_cpu" = ia64; then
-	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	# chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-	else
-	  if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag='${wl}-G'
-	  else
-	    shared_flag='${wl}-bM:SRE'
-	  fi
-	fi
-      fi
-
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      _LT_TAGVAR(always_export_symbols, $1)=yes
-      if test "$aix_use_runtimelinking" = yes; then
-	# Warning - without using the other runtime loading flags (-brtl),
-	# -berok will link without error, but may produce a broken library.
-	_LT_TAGVAR(allow_undefined_flag, $1)='-berok'
-        # Determine the default libpath from the value encoded in an
-        # empty executable.
-        _LT_SYS_MODULE_PATH_AIX
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-      else
-	if test "$host_cpu" = ia64; then
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
-	  _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
-	else
-	 # Determine the default libpath from the value encoded in an
-	 # empty executable.
-	 _LT_SYS_MODULE_PATH_AIX
-	 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-	  # Warning - without using the other run time loading flags,
-	  # -berok will link without error, but may produce a broken library.
-	  _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-	  _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	  # Exported symbols can be pulled into shared objects from archives
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
-	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-	  # This is similar to how AIX traditionally builds its shared libraries.
-	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-	fi
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-            _LT_TAGVAR(archive_expsym_cmds, $1)=''
-        ;;
-      m68k)
-            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-            _LT_TAGVAR(hardcode_minus_L, $1)=yes
-        ;;
-      esac
-      ;;
-
-    bsdi[[45]]*)
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32* | cegcc*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-      # FIXME: Should let the user specify the lib program.
-      _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
-      _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
-      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      ;;
-
-    darwin* | rhapsody*)
-      _LT_DARWIN_LINKER_FEATURES($1)
-      ;;
-
-    dgux*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    freebsd1*)
-      _LT_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | dragonfly*)
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      fi
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-      ;;
-
-    hpux10*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      if test "$with_gnu_ld" = no; then
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
-	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
-	_LT_TAGVAR(hardcode_direct, $1)=yes
-	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-	# hardcode_minus_L: Not really in the search PATH,
-	# but as the default location of the library.
-	_LT_TAGVAR(hardcode_minus_L, $1)=yes
-      fi
-      ;;
-
-    hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	case $host_cpu in
-	hppa*64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      else
-	case $host_cpu in
-	hppa*64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      fi
-      if test "$with_gnu_ld" = no; then
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	case $host_cpu in
-	hppa*64*|ia64*)
-	  _LT_TAGVAR(hardcode_direct, $1)=no
-	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	  ;;
-	*)
-	  _LT_TAGVAR(hardcode_direct, $1)=yes
-	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
-	  ;;
-	esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	# Try to use the -exported_symbol ld option, if it does not
-	# work, assume that -exports_file does not work either and
-	# implicitly export all symbols.
-        save_LDFLAGS="$LDFLAGS"
-        LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-        AC_LINK_IFELSE(int foo(void) {},
-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-        )
-        LDFLAGS="$save_LDFLAGS"
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
-      fi
-      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_TAGVAR(inherit_rpath, $1)=yes
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    netbsd* | netbsdelf*-gnu)
-      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    newsos6)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *nto* | *qnx*)
-      ;;
-
-    openbsd*)
-      if test -f /usr/libexec/ld.so; then
-	_LT_TAGVAR(hardcode_direct, $1)=yes
-	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-	else
-	  case $host_os in
-	   openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
-	     _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-	     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	     ;;
-	   *)
-	     _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	     ;;
-	  esac
-	fi
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    os2*)
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      ;;
-
-    osf4* | osf5*)	# as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      else
-	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
-
-	# Both c and cxx compiler support -rpath directly
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-      fi
-      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      ;;
-
-    solaris*)
-      _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
-      if test "$GCC" = yes; then
-	wlarc='${wl}'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-      else
-	case `$CC -V 2>&1` in
-	*"Compilers 5.0"*)
-	  wlarc=''
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
-	  ;;
-	*)
-	  wlarc='${wl}'
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-	  ;;
-	esac
-      fi
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      case $host_os in
-      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-      *)
-	# The compiler driver will combine and reorder linker options,
-	# but understands `-z linker_flag'.  GCC discards it without `$wl',
-	# but is careful enough not to reorder.
-	# Supported since Solaris 2.6 (maybe 2.5.1?)
-	if test "$GCC" = yes; then
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-	else
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
-	fi
-	;;
-      esac
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    sunos4*)
-      if test "x$host_vendor" = xsequent; then
-	# Use $CC to link under sequent, because it throws in some extra .o
-	# files that make .init and .fini sections work.
-	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-	sni)
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
-	;;
-	siemens)
-	  ## LD is ld it makes a PLAMLIB
-	  ## CC just makes a GrossModule.
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
-	  _LT_TAGVAR(hardcode_direct, $1)=no
-        ;;
-	motorola)
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
-	;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv4.3*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	runpath_var=LD_RUN_PATH
-	hardcode_runpath_var=yes
-	_LT_TAGVAR(ld_shlibs, $1)=yes
-      fi
-      ;;
-
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
-      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    sysv5* | sco3.2v5* | sco5v6*)
-      # Note: We can NOT use -z defs as we might desire, because we do not
-      # link with -lc, and that would cause any symbols used from libc to
-      # always be unresolved, which means just about no library would
-      # ever link correctly.  If we're not using GNU ld we use -z text
-      # though, which does catch some bad symbols but isn't as heavy-handed
-      # as -z defs.
-      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-      _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
-      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    uts4*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *)
-      _LT_TAGVAR(ld_shlibs, $1)=no
-      ;;
-    esac
-
-    if test x$host_vendor = xsni; then
-      case $host in
-      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym'
-	;;
-      esac
-    fi
-  fi
-])
-AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
-test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
-
-_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
-_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
-_LT_DECL([], [extract_expsyms_cmds], [2],
-    [The commands to extract the exported symbol list from a shared archive])
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
-x|xyes)
-  # Assume -lc should be added
-  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $_LT_TAGVAR(archive_cmds, $1) in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      AC_MSG_CHECKING([whether -lc should be explicitly linked in])
-      $RM conftest*
-      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
-	pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
-        _LT_TAGVAR(allow_undefined_flag, $1)=
-        if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
-        then
-	  _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-        else
-	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-        fi
-        _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $RM conftest*
-      AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)])
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
-    [Whether or not to add -lc for building shared libraries])
-_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
-    [enable_shared_with_static_runtimes], [0],
-    [Whether or not to disallow shared libs when runtime libs are static])
-_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
-    [Compiler flag to allow reflexive dlopens])
-_LT_TAGDECL([], [whole_archive_flag_spec], [1],
-    [Compiler flag to generate shared objects directly from archives])
-_LT_TAGDECL([], [compiler_needs_object], [1],
-    [Whether the compiler copes with passing no objects directly])
-_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
-    [Create an old-style archive from a shared archive])
-_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
-    [Create a temporary old-style archive to link instead of a shared archive])
-_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
-_LT_TAGDECL([], [archive_expsym_cmds], [2])
-_LT_TAGDECL([], [module_cmds], [2],
-    [Commands used to build a loadable module if different from building
-    a shared archive.])
-_LT_TAGDECL([], [module_expsym_cmds], [2])
-_LT_TAGDECL([], [with_gnu_ld], [1],
-    [Whether we are building with GNU ld or not])
-_LT_TAGDECL([], [allow_undefined_flag], [1],
-    [Flag that allows shared libraries with undefined symbols to be built])
-_LT_TAGDECL([], [no_undefined_flag], [1],
-    [Flag that enforces no undefined symbols])
-_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
-    [Flag to hardcode $libdir into a binary during linking.
-    This must work even if $libdir does not exist])
-_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1],
-    [[If ld is used when linking, flag to hardcode $libdir into a binary
-    during linking.  This must work even if $libdir does not exist]])
-_LT_TAGDECL([], [hardcode_libdir_separator], [1],
-    [Whether we need a single "-rpath" flag with a separated argument])
-_LT_TAGDECL([], [hardcode_direct], [0],
-    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
-    DIR into the resulting binary])
-_LT_TAGDECL([], [hardcode_direct_absolute], [0],
-    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
-    DIR into the resulting binary and the resulting library dependency is
-    "absolute", i.e impossible to change by setting ${shlibpath_var} if the
-    library is relocated])
-_LT_TAGDECL([], [hardcode_minus_L], [0],
-    [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-    into the resulting binary])
-_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
-    [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-    into the resulting binary])
-_LT_TAGDECL([], [hardcode_automatic], [0],
-    [Set to "yes" if building a shared library automatically hardcodes DIR
-    into the library and all subsequent libraries and executables linked
-    against it])
-_LT_TAGDECL([], [inherit_rpath], [0],
-    [Set to yes if linker adds runtime paths of dependent libraries
-    to runtime path list])
-_LT_TAGDECL([], [link_all_deplibs], [0],
-    [Whether libtool must link a program against all its dependency libraries])
-_LT_TAGDECL([], [fix_srcfile_path], [1],
-    [Fix the shell variable $srcfile for the compiler])
-_LT_TAGDECL([], [always_export_symbols], [0],
-    [Set to "yes" if exported symbols are required])
-_LT_TAGDECL([], [export_symbols_cmds], [2],
-    [The commands to list exported symbols])
-_LT_TAGDECL([], [exclude_expsyms], [1],
-    [Symbols that should not be listed in the preloaded symbols])
-_LT_TAGDECL([], [include_expsyms], [1],
-    [Symbols that must always be exported])
-_LT_TAGDECL([], [prelink_cmds], [2],
-    [Commands necessary for linking programs (against libraries) with templates])
-_LT_TAGDECL([], [file_list_spec], [1],
-    [Specify filename containing input files])
-dnl FIXME: Not yet implemented
-dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
-dnl    [Compiler flag to generate thread safe objects])
-])# _LT_LINKER_SHLIBS
-
-
-# _LT_LANG_C_CONFIG([TAG])
-# ------------------------
-# Ensure that the configuration variables for a C compiler are suitably
-# defined.  These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_C_CONFIG],
-[m4_require([_LT_DECL_EGREP])dnl
-lt_save_CC="$CC"
-AC_LANG_PUSH(C)
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-_LT_TAG_COMPILER
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-if test -n "$compiler"; then
-  _LT_COMPILER_NO_RTTI($1)
-  _LT_COMPILER_PIC($1)
-  _LT_COMPILER_C_O($1)
-  _LT_COMPILER_FILE_LOCKS($1)
-  _LT_LINKER_SHLIBS($1)
-  _LT_SYS_DYNAMIC_LINKER($1)
-  _LT_LINKER_HARDCODE_LIBPATH($1)
-  LT_SYS_DLOPEN_SELF
-  _LT_CMD_STRIPLIB
-
-  # Report which library types will actually be built
-  AC_MSG_CHECKING([if libtool supports shared libraries])
-  AC_MSG_RESULT([$can_build_shared])
-
-  AC_MSG_CHECKING([whether to build shared libraries])
-  test "$can_build_shared" = "no" && enable_shared=no
-
-  # On AIX, shared libraries and static libraries use the same namespace, and
-  # are all built from PIC.
-  case $host_os in
-  aix3*)
-    test "$enable_shared" = yes && enable_static=no
-    if test -n "$RANLIB"; then
-      archive_cmds="$archive_cmds~\$RANLIB \$lib"
-      postinstall_cmds='$RANLIB $lib'
-    fi
-    ;;
-
-  aix[[4-9]]*)
-    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-      test "$enable_shared" = yes && enable_static=no
-    fi
-    ;;
-  esac
-  AC_MSG_RESULT([$enable_shared])
-
-  AC_MSG_CHECKING([whether to build static libraries])
-  # Make sure either enable_shared or enable_static is yes.
-  test "$enable_shared" = yes || enable_static=yes
-  AC_MSG_RESULT([$enable_static])
-
-  _LT_CONFIG($1)
-fi
-AC_LANG_POP
-CC="$lt_save_CC"
-])# _LT_LANG_C_CONFIG
-
-
-# _LT_PROG_CXX
-# ------------
-# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++
-# compiler, we have our own version here.
-m4_defun([_LT_PROG_CXX],
-[
-pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes])
-AC_PROG_CXX
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
-    (test "X$CXX" != "Xg++"))) ; then
-  AC_PROG_CXXCPP
-else
-  _lt_caught_CXX_error=yes
-fi
-popdef([AC_MSG_ERROR])
-])# _LT_PROG_CXX
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([_LT_PROG_CXX], [])
-
-
-# _LT_LANG_CXX_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a C++ compiler are suitably
-# defined.  These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_CXX_CONFIG],
-[AC_REQUIRE([_LT_PROG_CXX])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
-
-AC_LANG_PUSH(C++)
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(compiler_needs_object, $1)=no
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for C++ test sources.
-ac_ext=cpp
-
-# Object file extension for compiled C++ test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the CXX compiler isn't working.  Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_caught_CXX_error" != yes; then
-  # Code to be used in simple compile tests
-  lt_simple_compile_test_code="int some_variable = 0;"
-
-  # Code to be used in simple link tests
-  lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
-
-  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-  _LT_TAG_COMPILER
-
-  # save warnings/boilerplate of simple test code
-  _LT_COMPILER_BOILERPLATE
-  _LT_LINKER_BOILERPLATE
-
-  # Allow CC to be a program name with arguments.
-  lt_save_CC=$CC
-  lt_save_LD=$LD
-  lt_save_GCC=$GCC
-  GCC=$GXX
-  lt_save_with_gnu_ld=$with_gnu_ld
-  lt_save_path_LD=$lt_cv_path_LD
-  if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
-    lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
-  else
-    $as_unset lt_cv_prog_gnu_ld
-  fi
-  if test -n "${lt_cv_path_LDCXX+set}"; then
-    lt_cv_path_LD=$lt_cv_path_LDCXX
-  else
-    $as_unset lt_cv_path_LD
-  fi
-  test -z "${LDCXX+set}" || LD=$LDCXX
-  CC=${CXX-"c++"}
-  compiler=$CC
-  _LT_TAGVAR(compiler, $1)=$CC
-  _LT_CC_BASENAME([$compiler])
-
-  if test -n "$compiler"; then
-    # We don't want -fno-exception when compiling C++ code, so set the
-    # no_builtin_flag separately
-    if test "$GXX" = yes; then
-      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
-    else
-      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-    fi
-
-    if test "$GXX" = yes; then
-      # Set up default GNU C++ configuration
-
-      LT_PATH_LD
-
-      # Check if GNU C++ uses GNU ld as the underlying linker, since the
-      # archiving commands below assume that GNU ld is being used.
-      if test "$with_gnu_ld" = yes; then
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
-        # If archive_cmds runs LD, not CC, wlarc should be empty
-        # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
-        #     investigate it a little bit more. (MM)
-        wlarc='${wl}'
-
-        # ancient GNU ld didn't support --whole-archive et. al.
-        if eval "`$CC -print-prog-name=ld` --help 2>&1" |
-	  $GREP 'no-whole-archive' > /dev/null; then
-          _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-        else
-          _LT_TAGVAR(whole_archive_flag_spec, $1)=
-        fi
-      else
-        with_gnu_ld=no
-        wlarc=
-
-        # A generic and very simple default shared library creation
-        # command for GNU C++ for the case where it uses the native
-        # linker, instead of GNU ld.  If possible, this setting should
-        # overridden to take advantage of the native linker features on
-        # the platform it is being used on.
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-      fi
-
-      # Commands to make compiler produce verbose output that lists
-      # what "hidden" libraries, object files and flags are used when
-      # linking a shared library.
-      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
-
-    else
-      GXX=no
-      with_gnu_ld=no
-      wlarc=
-    fi
-
-    # PORTME: fill in a description of your system's C++ link characteristics
-    AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-    _LT_TAGVAR(ld_shlibs, $1)=yes
-    case $host_os in
-      aix3*)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-      aix[[4-9]]*)
-        if test "$host_cpu" = ia64; then
-          # On IA64, the linker does run time linking by default, so we don't
-          # have to do anything special.
-          aix_use_runtimelinking=no
-          exp_sym_flag='-Bexport'
-          no_entry_flag=""
-        else
-          aix_use_runtimelinking=no
-
-          # Test if we are trying to use run time linking or normal
-          # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-          # need to do runtime linking.
-          case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
-	    for ld_flag in $LDFLAGS; do
-	      case $ld_flag in
-	      *-brtl*)
-	        aix_use_runtimelinking=yes
-	        break
-	        ;;
-	      esac
-	    done
-	    ;;
-          esac
-
-          exp_sym_flag='-bexport'
-          no_entry_flag='-bnoentry'
-        fi
-
-        # When large executables or shared objects are built, AIX ld can
-        # have problems creating the table of contents.  If linking a library
-        # or program results in "error TOC overflow" add -mminimal-toc to
-        # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-        # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-        _LT_TAGVAR(archive_cmds, $1)=''
-        _LT_TAGVAR(hardcode_direct, $1)=yes
-        _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-        _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
-        _LT_TAGVAR(link_all_deplibs, $1)=yes
-        _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
-
-        if test "$GXX" = yes; then
-          case $host_os in aix4.[[012]]|aix4.[[012]].*)
-          # We only want to do this on AIX 4.2 and lower, the check
-          # below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" &&
-	     strings "$collect2name" | $GREP resolve_lib_name >/dev/null
-	  then
-	    # We have reworked collect2
-	    :
-	  else
-	    # We have old collect2
-	    _LT_TAGVAR(hardcode_direct, $1)=unsupported
-	    # It fails to find uninstalled libraries when the uninstalled
-	    # path is not listed in the libpath.  Setting hardcode_minus_L
-	    # to unsupported forces relinking
-	    _LT_TAGVAR(hardcode_minus_L, $1)=yes
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-	    _LT_TAGVAR(hardcode_libdir_separator, $1)=
-	  fi
-          esac
-          shared_flag='-shared'
-	  if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag="$shared_flag "'${wl}-G'
-	  fi
-        else
-          # not using gcc
-          if test "$host_cpu" = ia64; then
-	  # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	  # chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-          else
-	    if test "$aix_use_runtimelinking" = yes; then
-	      shared_flag='${wl}-G'
-	    else
-	      shared_flag='${wl}-bM:SRE'
-	    fi
-          fi
-        fi
-
-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
-        # It seems that -bexpall does not export symbols beginning with
-        # underscore (_), so it is better to generate a list of symbols to
-	# export.
-        _LT_TAGVAR(always_export_symbols, $1)=yes
-        if test "$aix_use_runtimelinking" = yes; then
-          # Warning - without using the other runtime loading flags (-brtl),
-          # -berok will link without error, but may produce a broken library.
-          _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
-          # Determine the default libpath from the value encoded in an empty
-          # executable.
-          _LT_SYS_MODULE_PATH_AIX
-          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-
-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-        else
-          if test "$host_cpu" = ia64; then
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
-	    _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
-          else
-	    # Determine the default libpath from the value encoded in an
-	    # empty executable.
-	    _LT_SYS_MODULE_PATH_AIX
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-	    # Warning - without using the other run time loading flags,
-	    # -berok will link without error, but may produce a broken library.
-	    _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-	    _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	    # Exported symbols can be pulled into shared objects from archives
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
-	    _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-	    # This is similar to how AIX traditionally builds its shared
-	    # libraries.
-	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-          fi
-        fi
-        ;;
-
-      beos*)
-	if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	  # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
-	  # support --undefined.  This deserves some investigation.  FIXME
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	else
-	  _LT_TAGVAR(ld_shlibs, $1)=no
-	fi
-	;;
-
-      chorus*)
-        case $cc_basename in
-          *)
-	  # FIXME: insert proper C++ library support
-	  _LT_TAGVAR(ld_shlibs, $1)=no
-	  ;;
-        esac
-        ;;
-
-      cygwin* | mingw* | pw32* | cegcc*)
-        # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-        # as there is no search path for DLLs.
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-        _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-        _LT_TAGVAR(always_export_symbols, $1)=no
-        _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-
-        if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-          # If the export-symbols file already is a .def file (1st line
-          # is EXPORTS), use it as is; otherwise, prepend...
-          _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	    cp $export_symbols $output_objdir/$soname.def;
-          else
-	    echo EXPORTS > $output_objdir/$soname.def;
-	    cat $export_symbols >> $output_objdir/$soname.def;
-          fi~
-          $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-        else
-          _LT_TAGVAR(ld_shlibs, $1)=no
-        fi
-        ;;
-      darwin* | rhapsody*)
-        _LT_DARWIN_LINKER_FEATURES($1)
-	;;
-
-      dgux*)
-        case $cc_basename in
-          ec++*)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          ghcx*)
-	    # Green Hills C++ Compiler
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-        esac
-        ;;
-
-      freebsd[[12]]*)
-        # C++ shared libraries reported to be fairly broken before
-	# switch to ELF
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-
-      freebsd-elf*)
-        _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-        ;;
-
-      freebsd* | dragonfly*)
-        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
-        # conventions
-        _LT_TAGVAR(ld_shlibs, $1)=yes
-        ;;
-
-      gnu*)
-        ;;
-
-      hpux9*)
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-        _LT_TAGVAR(hardcode_direct, $1)=yes
-        _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-				             # but as the default
-				             # location of the library.
-
-        case $cc_basename in
-          CC*)
-            # FIXME: insert proper C++ library support
-            _LT_TAGVAR(ld_shlibs, $1)=no
-            ;;
-          aCC*)
-            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-            # Commands to make compiler produce verbose output that lists
-            # what "hidden" libraries, object files and flags are used when
-            # linking a shared library.
-            #
-            # There doesn't appear to be a way to prevent this compiler from
-            # explicitly linking system object files so we need to strip them
-            # from the output so that they don't get included in the library
-            # dependencies.
-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
-            ;;
-          *)
-            if test "$GXX" = yes; then
-              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-            else
-              # FIXME: insert proper C++ library support
-              _LT_TAGVAR(ld_shlibs, $1)=no
-            fi
-            ;;
-        esac
-        ;;
-
-      hpux10*|hpux11*)
-        if test $with_gnu_ld = no; then
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	  _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-          case $host_cpu in
-            hppa*64*|ia64*)
-              ;;
-            *)
-	      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-              ;;
-          esac
-        fi
-        case $host_cpu in
-          hppa*64*|ia64*)
-            _LT_TAGVAR(hardcode_direct, $1)=no
-            _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-            ;;
-          *)
-            _LT_TAGVAR(hardcode_direct, $1)=yes
-            _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-            _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-					         # but as the default
-					         # location of the library.
-            ;;
-        esac
-
-        case $cc_basename in
-          CC*)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          aCC*)
-	    case $host_cpu in
-	      hppa*64*)
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	      ia64*)
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	      *)
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	    esac
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
-	    ;;
-          *)
-	    if test "$GXX" = yes; then
-	      if test $with_gnu_ld = no; then
-	        case $host_cpu in
-	          hppa*64*)
-	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	          ia64*)
-	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	          *)
-	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	        esac
-	      fi
-	    else
-	      # FIXME: insert proper C++ library support
-	      _LT_TAGVAR(ld_shlibs, $1)=no
-	    fi
-	    ;;
-        esac
-        ;;
-
-      interix[[3-9]]*)
-	_LT_TAGVAR(hardcode_direct, $1)=no
-	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-	# Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-	# Instead, shared libraries are loaded at an image base (0x10000000 by
-	# default) and relocated if they conflict, which is a slow very memory
-	# consuming and fragmenting process.  To avoid this, we pick a random,
-	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-	;;
-      irix5* | irix6*)
-        case $cc_basename in
-          CC*)
-	    # SGI C++
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
-	    # necessary to make sure instantiated templates are included
-	    # in the archive.
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
-	    ;;
-          *)
-	    if test "$GXX" = yes; then
-	      if test "$with_gnu_ld" = no; then
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	      else
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib'
-	      fi
-	    fi
-	    _LT_TAGVAR(link_all_deplibs, $1)=yes
-	    ;;
-        esac
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-        _LT_TAGVAR(inherit_rpath, $1)=yes
-        ;;
-
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
-        case $cc_basename in
-          KCC*)
-	    # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	    # KCC will only create a shared library if the output file
-	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
-	    # to its proper name (with version) after linking.
-	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
-
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -Bstatic", where "CC" is the KAI C++ compiler.
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
-	    ;;
-	  icpc* | ecpc* )
-	    # Intel C++
-	    with_gnu_ld=yes
-	    # version 8.0 and above of icpc choke on multiply defined symbols
-	    # if we add $predep_objects and $postdep_objects, however 7.1 and
-	    # earlier do not add the objects themselves.
-	    case `$CC -V 2>&1` in
-	      *"Version 7."*)
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-		;;
-	      *)  # Version 8.0 or newer
-	        tmp_idyn=
-	        case $host_cpu in
-		  ia64*) tmp_idyn=' -i_dynamic';;
-		esac
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-		;;
-	    esac
-	    _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	    ;;
-          pgCC* | pgcpp*)
-            # Portland Group C++ compiler
-	    case `$CC -V` in
-	    *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*)
-	      _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
-		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
-	      _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
-		$RANLIB $oldlib'
-	      _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-	      _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
-	      ;;
-	    *) # Version 6 will use weak symbols
-	      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
-	      ;;
-	    esac
-
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
-            ;;
-	  cxx*)
-	    # Compaq C++
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
-	    runpath_var=LD_RUN_PATH
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
-	    ;;
-	  xl*)
-	    # IBM XL 8.0 on PPC, with GNU ld
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    if test "x$supports_anon_versioning" = xyes; then
-	      _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-		cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-		echo "local: *; };" >> $output_objdir/$libname.ver~
-		$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-	    fi
-	    ;;
-	  *)
-	    case `$CC -V 2>&1 | sed 5q` in
-	    *Sun\ C*)
-	      # Sun C++ 5.9
-	      _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-	      _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
-	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
-	      _LT_TAGVAR(compiler_needs_object, $1)=yes
-
-	      # Not sure whether something based on
-	      # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
-	      # would be better.
-	      output_verbose_link_cmd='echo'
-
-	      # Archives containing C++ object files must be created using
-	      # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	      # necessary to make sure instantiated templates are included
-	      # in the archive.
-	      _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
-	      ;;
-	    esac
-	    ;;
-	esac
-	;;
-
-      lynxos*)
-        # FIXME: insert proper C++ library support
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	;;
-
-      m88k*)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-	;;
-
-      mvs*)
-        case $cc_basename in
-          cxx*)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-	  *)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-	esac
-	;;
-
-      netbsd*)
-        if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
-	  wlarc=
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	  _LT_TAGVAR(hardcode_direct, $1)=yes
-	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	fi
-	# Workaround some broken pre-1.5 toolchains
-	output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
-	;;
-
-      *nto* | *qnx*)
-        _LT_TAGVAR(ld_shlibs, $1)=yes
-	;;
-
-      openbsd2*)
-        # C++ shared libraries are fairly broken
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	;;
-
-      openbsd*)
-	if test -f /usr/libexec/ld.so; then
-	  _LT_TAGVAR(hardcode_direct, $1)=yes
-	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-	  fi
-	  output_verbose_link_cmd=echo
-	else
-	  _LT_TAGVAR(ld_shlibs, $1)=no
-	fi
-	;;
-
-      osf3* | osf4* | osf5*)
-        case $cc_basename in
-          KCC*)
-	    # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	    # KCC will only create a shared library if the output file
-	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
-	    # to its proper name (with version) after linking.
-	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	    # Archives containing C++ object files must be created using
-	    # the KAI C++ compiler.
-	    case $host in
-	      osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
-	      *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
-	    esac
-	    ;;
-          RCC*)
-	    # Rational C++ 2.4.1
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          cxx*)
-	    case $host in
-	      osf3*)
-	        _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-		;;
-	      *)
-	        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-	        _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
-	          echo "-hidden">> $lib.exp~
-	          $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~
-	          $RM $lib.exp'
-	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-		;;
-	    esac
-
-	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
-	    ;;
-	  *)
-	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	      _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	      case $host in
-	        osf3*)
-	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-		  ;;
-	        *)
-	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-		  ;;
-	      esac
-
-	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	      # Commands to make compiler produce verbose output that lists
-	      # what "hidden" libraries, object files and flags are used when
-	      # linking a shared library.
-	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
-
-	    else
-	      # FIXME: insert proper C++ library support
-	      _LT_TAGVAR(ld_shlibs, $1)=no
-	    fi
-	    ;;
-        esac
-        ;;
-
-      psos*)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-
-      sunos4*)
-        case $cc_basename in
-          CC*)
-	    # Sun C++ 4.x
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          lcc*)
-	    # Lucid
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-        esac
-        ;;
-
-      solaris*)
-        case $cc_basename in
-          CC*)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-            _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
-	    _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	      $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	    _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	    case $host_os in
-	      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-	      *)
-		# The compiler driver will combine and reorder linker options,
-		# but understands `-z linker_flag'.
-	        # Supported since Solaris 2.6 (maybe 2.5.1?)
-		_LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
-	        ;;
-	    esac
-	    _LT_TAGVAR(link_all_deplibs, $1)=yes
-
-	    output_verbose_link_cmd='echo'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	    # necessary to make sure instantiated templates are included
-	    # in the archive.
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
-	    ;;
-          gcx*)
-	    # Green Hills C++ Compiler
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
-	    # The C++ compiler must be used to create the archive.
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
-	    ;;
-          *)
-	    # GNU C++ compiler with Solaris linker
-	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	      _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
-	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-		  $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	        # Commands to make compiler produce verbose output that lists
-	        # what "hidden" libraries, object files and flags are used when
-	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
-	      else
-	        # g++ 2.7 appears to require `-G' NOT `-shared' on this
-	        # platform.
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-		  $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	        # Commands to make compiler produce verbose output that lists
-	        # what "hidden" libraries, object files and flags are used when
-	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
-	      fi
-
-	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
-	      case $host_os in
-		solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-		*)
-		  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-		  ;;
-	      esac
-	    fi
-	    ;;
-        esac
-        ;;
-
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
-      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      runpath_var='LD_RUN_PATH'
-
-      case $cc_basename in
-        CC*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-      esac
-      ;;
-
-      sysv5* | sco3.2v5* | sco5v6*)
-	# Note: We can NOT use -z defs as we might desire, because we do not
-	# link with -lc, and that would cause any symbols used from libc to
-	# always be unresolved, which means just about no library would
-	# ever link correctly.  If we're not using GNU ld we use -z text
-	# though, which does catch some bad symbols but isn't as heavy-handed
-	# as -z defs.
-	_LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-	_LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
-	_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
-	_LT_TAGVAR(hardcode_libdir_separator, $1)=':'
-	_LT_TAGVAR(link_all_deplibs, $1)=yes
-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
-	runpath_var='LD_RUN_PATH'
-
-	case $cc_basename in
-          CC*)
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    ;;
-	  *)
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    ;;
-	esac
-      ;;
-
-      tandem*)
-        case $cc_basename in
-          NCC*)
-	    # NonStop-UX NCC 3.20
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-        esac
-        ;;
-
-      vxworks*)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-
-      *)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-    esac
-
-    AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
-    test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-    _LT_TAGVAR(GCC, $1)="$GXX"
-    _LT_TAGVAR(LD, $1)="$LD"
-
-    ## CAVEAT EMPTOR:
-    ## There is no encapsulation within the following macros, do not change
-    ## the running order or otherwise move them around unless you know exactly
-    ## what you are doing...
-    _LT_SYS_HIDDEN_LIBDEPS($1)
-    _LT_COMPILER_PIC($1)
-    _LT_COMPILER_C_O($1)
-    _LT_COMPILER_FILE_LOCKS($1)
-    _LT_LINKER_SHLIBS($1)
-    _LT_SYS_DYNAMIC_LINKER($1)
-    _LT_LINKER_HARDCODE_LIBPATH($1)
-
-    _LT_CONFIG($1)
-  fi # test -n "$compiler"
-
-  CC=$lt_save_CC
-  LDCXX=$LD
-  LD=$lt_save_LD
-  GCC=$lt_save_GCC
-  with_gnu_ld=$lt_save_with_gnu_ld
-  lt_cv_path_LDCXX=$lt_cv_path_LD
-  lt_cv_path_LD=$lt_save_path_LD
-  lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
-  lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-fi # test "$_lt_caught_CXX_error" != yes
-
-AC_LANG_POP
-])# _LT_LANG_CXX_CONFIG
-
-
-# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
-# ---------------------------------
-# Figure out "hidden" library dependencies from verbose
-# compiler output when linking a shared library.
-# Parse the compiler output and extract the necessary
-# objects, libraries and library flags.
-m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-# Dependencies to place before and after the object being linked:
-_LT_TAGVAR(predep_objects, $1)=
-_LT_TAGVAR(postdep_objects, $1)=
-_LT_TAGVAR(predeps, $1)=
-_LT_TAGVAR(postdeps, $1)=
-_LT_TAGVAR(compiler_lib_search_path, $1)=
-
-dnl we can't use the lt_simple_compile_test_code here,
-dnl because it contains code intended for an executable,
-dnl not a library.  It's possible we should let each
-dnl tag define a new lt_????_link_test_code variable,
-dnl but it's only used here...
-m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
-int a;
-void foo (void) { a = 0; }
-_LT_EOF
-], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
-class Foo
-{
-public:
-  Foo (void) { a = 0; }
-private:
-  int a;
-};
-_LT_EOF
-], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
-      subroutine foo
-      implicit none
-      integer*4 a
-      a=0
-      return
-      end
-_LT_EOF
-], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
-      subroutine foo
-      implicit none
-      integer a
-      a=0
-      return
-      end
-_LT_EOF
-], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
-public class foo {
-  private int a;
-  public void bar (void) {
-    a = 0;
-  }
-};
-_LT_EOF
-])
-dnl Parse the compiler output and extract the necessary
-dnl objects, libraries and library flags.
-if AC_TRY_EVAL(ac_compile); then
-  # Parse the compiler output and extract the necessary
-  # objects, libraries and library flags.
-
-  # Sentinel used to keep track of whether or not we are before
-  # the conftest object file.
-  pre_test_object_deps_done=no
-
-  for p in `eval "$output_verbose_link_cmd"`; do
-    case $p in
-
-    -L* | -R* | -l*)
-       # Some compilers place space between "-{L,R}" and the path.
-       # Remove the space.
-       if test $p = "-L" ||
-          test $p = "-R"; then
-	 prev=$p
-	 continue
-       else
-	 prev=
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-	 case $p in
-	 -L* | -R*)
-	   # Internal compiler library paths should come after those
-	   # provided the user.  The postdeps already come after the
-	   # user supplied libs so there is no need to process them.
-	   if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
-	     _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
-	   else
-	     _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
-	   fi
-	   ;;
-	 # The "-l" case would never come before the object being
-	 # linked, so don't bother handling this case.
-	 esac
-       else
-	 if test -z "$_LT_TAGVAR(postdeps, $1)"; then
-	   _LT_TAGVAR(postdeps, $1)="${prev}${p}"
-	 else
-	   _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
-	 fi
-       fi
-       ;;
-
-    *.$objext)
-       # This assumes that the test object file only shows up
-       # once in the compiler output.
-       if test "$p" = "conftest.$objext"; then
-	 pre_test_object_deps_done=yes
-	 continue
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-	 if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
-	   _LT_TAGVAR(predep_objects, $1)="$p"
-	 else
-	   _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
-	 fi
-       else
-	 if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
-	   _LT_TAGVAR(postdep_objects, $1)="$p"
-	 else
-	   _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
-	 fi
-       fi
-       ;;
-
-    *) ;; # Ignore the rest.
-
-    esac
-  done
-
-  # Clean up.
-  rm -f a.out a.exe
-else
-  echo "libtool.m4: error: problem compiling $1 test program"
-fi
-
-$RM -f confest.$objext
-
-# PORTME: override above test on systems where it is broken
-m4_if([$1], [CXX],
-[case $host_os in
-interix[[3-9]]*)
-  # Interix 3.5 installs completely hosed .la files for C++, so rather than
-  # hack all around it, let's just trust "g++" to DTRT.
-  _LT_TAGVAR(predep_objects,$1)=
-  _LT_TAGVAR(postdep_objects,$1)=
-  _LT_TAGVAR(postdeps,$1)=
-  ;;
-
-linux*)
-  case `$CC -V 2>&1 | sed 5q` in
-  *Sun\ C*)
-    # Sun C++ 5.9
-
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    if test "$solaris_use_stlport4" != yes; then
-      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-
-solaris*)
-  case $cc_basename in
-  CC*)
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    # Adding this requires a known-good setup of shared libraries for
-    # Sun compiler versions before 5.6, else PIC objects from an old
-    # archive will be linked into the output, leading to subtle bugs.
-    if test "$solaris_use_stlport4" != yes; then
-      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-esac
-])
-
-case " $_LT_TAGVAR(postdeps, $1) " in
-*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
-esac
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=
-if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
-fi
-_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
-    [The directories searched by this compiler when creating a shared library])
-_LT_TAGDECL([], [predep_objects], [1],
-    [Dependencies to place before and after the objects being linked to
-    create a shared library])
-_LT_TAGDECL([], [postdep_objects], [1])
-_LT_TAGDECL([], [predeps], [1])
-_LT_TAGDECL([], [postdeps], [1])
-_LT_TAGDECL([], [compiler_lib_search_path], [1],
-    [The library search path used internally by the compiler when linking
-    a shared library])
-])# _LT_SYS_HIDDEN_LIBDEPS
-
-
-# _LT_PROG_F77
-# ------------
-# Since AC_PROG_F77 is broken, in that it returns the empty string
-# if there is no fortran compiler, we have our own version here.
-m4_defun([_LT_PROG_F77],
-[
-pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes])
-AC_PROG_F77
-if test -z "$F77" || test "X$F77" = "Xno"; then
-  _lt_disable_F77=yes
-fi
-popdef([AC_MSG_ERROR])
-])# _LT_PROG_F77
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([_LT_PROG_F77], [])
-
-
-# _LT_LANG_F77_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a Fortran 77 compiler are
-# suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_F77_CONFIG],
-[AC_REQUIRE([_LT_PROG_F77])dnl
-AC_LANG_PUSH(Fortran 77)
-
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the F77 compiler isn't working.  Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_F77" != yes; then
-  # Code to be used in simple compile tests
-  lt_simple_compile_test_code="\
-      subroutine t
-      return
-      end
-"
-
-  # Code to be used in simple link tests
-  lt_simple_link_test_code="\
-      program t
-      end
-"
-
-  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-  _LT_TAG_COMPILER
-
-  # save warnings/boilerplate of simple test code
-  _LT_COMPILER_BOILERPLATE
-  _LT_LINKER_BOILERPLATE
-
-  # Allow CC to be a program name with arguments.
-  lt_save_CC="$CC"
-  lt_save_GCC=$GCC
-  CC=${F77-"f77"}
-  compiler=$CC
-  _LT_TAGVAR(compiler, $1)=$CC
-  _LT_CC_BASENAME([$compiler])
-  GCC=$G77
-  if test -n "$compiler"; then
-    AC_MSG_CHECKING([if libtool supports shared libraries])
-    AC_MSG_RESULT([$can_build_shared])
-
-    AC_MSG_CHECKING([whether to build shared libraries])
-    test "$can_build_shared" = "no" && enable_shared=no
-
-    # On AIX, shared libraries and static libraries use the same namespace, and
-    # are all built from PIC.
-    case $host_os in
-      aix3*)
-        test "$enable_shared" = yes && enable_static=no
-        if test -n "$RANLIB"; then
-          archive_cmds="$archive_cmds~\$RANLIB \$lib"
-          postinstall_cmds='$RANLIB $lib'
-        fi
-        ;;
-      aix[[4-9]]*)
-	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-	  test "$enable_shared" = yes && enable_static=no
-	fi
-        ;;
-    esac
-    AC_MSG_RESULT([$enable_shared])
-
-    AC_MSG_CHECKING([whether to build static libraries])
-    # Make sure either enable_shared or enable_static is yes.
-    test "$enable_shared" = yes || enable_static=yes
-    AC_MSG_RESULT([$enable_static])
-
-    _LT_TAGVAR(GCC, $1)="$G77"
-    _LT_TAGVAR(LD, $1)="$LD"
-
-    ## CAVEAT EMPTOR:
-    ## There is no encapsulation within the following macros, do not change
-    ## the running order or otherwise move them around unless you know exactly
-    ## what you are doing...
-    _LT_COMPILER_PIC($1)
-    _LT_COMPILER_C_O($1)
-    _LT_COMPILER_FILE_LOCKS($1)
-    _LT_LINKER_SHLIBS($1)
-    _LT_SYS_DYNAMIC_LINKER($1)
-    _LT_LINKER_HARDCODE_LIBPATH($1)
-
-    _LT_CONFIG($1)
-  fi # test -n "$compiler"
-
-  GCC=$lt_save_GCC
-  CC="$lt_save_CC"
-fi # test "$_lt_disable_F77" != yes
-
-AC_LANG_POP
-])# _LT_LANG_F77_CONFIG
-
-
-# _LT_PROG_FC
-# -----------
-# Since AC_PROG_FC is broken, in that it returns the empty string
-# if there is no fortran compiler, we have our own version here.
-m4_defun([_LT_PROG_FC],
-[
-pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes])
-AC_PROG_FC
-if test -z "$FC" || test "X$FC" = "Xno"; then
-  _lt_disable_FC=yes
-fi
-popdef([AC_MSG_ERROR])
-])# _LT_PROG_FC
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([_LT_PROG_FC], [])
-
-
-# _LT_LANG_FC_CONFIG([TAG])
-# -------------------------
-# Ensure that the configuration variables for a Fortran compiler are
-# suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_FC_CONFIG],
-[AC_REQUIRE([_LT_PROG_FC])dnl
-AC_LANG_PUSH(Fortran)
-
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for fc test sources.
-ac_ext=${ac_fc_srcext-f}
-
-# Object file extension for compiled fc test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the FC compiler isn't working.  Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_FC" != yes; then
-  # Code to be used in simple compile tests
-  lt_simple_compile_test_code="\
-      subroutine t
-      return
-      end
-"
-
-  # Code to be used in simple link tests
-  lt_simple_link_test_code="\
-      program t
-      end
-"
-
-  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-  _LT_TAG_COMPILER
-
-  # save warnings/boilerplate of simple test code
-  _LT_COMPILER_BOILERPLATE
-  _LT_LINKER_BOILERPLATE
-
-  # Allow CC to be a program name with arguments.
-  lt_save_CC="$CC"
-  lt_save_GCC=$GCC
-  CC=${FC-"f95"}
-  compiler=$CC
-  GCC=$ac_cv_fc_compiler_gnu
-
-  _LT_TAGVAR(compiler, $1)=$CC
-  _LT_CC_BASENAME([$compiler])
-
-  if test -n "$compiler"; then
-    AC_MSG_CHECKING([if libtool supports shared libraries])
-    AC_MSG_RESULT([$can_build_shared])
-
-    AC_MSG_CHECKING([whether to build shared libraries])
-    test "$can_build_shared" = "no" && enable_shared=no
-
-    # On AIX, shared libraries and static libraries use the same namespace, and
-    # are all built from PIC.
-    case $host_os in
-      aix3*)
-        test "$enable_shared" = yes && enable_static=no
-        if test -n "$RANLIB"; then
-          archive_cmds="$archive_cmds~\$RANLIB \$lib"
-          postinstall_cmds='$RANLIB $lib'
-        fi
-        ;;
-      aix[[4-9]]*)
-	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-	  test "$enable_shared" = yes && enable_static=no
-	fi
-        ;;
-    esac
-    AC_MSG_RESULT([$enable_shared])
-
-    AC_MSG_CHECKING([whether to build static libraries])
-    # Make sure either enable_shared or enable_static is yes.
-    test "$enable_shared" = yes || enable_static=yes
-    AC_MSG_RESULT([$enable_static])
-
-    _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu"
-    _LT_TAGVAR(LD, $1)="$LD"
-
-    ## CAVEAT EMPTOR:
-    ## There is no encapsulation within the following macros, do not change
-    ## the running order or otherwise move them around unless you know exactly
-    ## what you are doing...
-    _LT_SYS_HIDDEN_LIBDEPS($1)
-    _LT_COMPILER_PIC($1)
-    _LT_COMPILER_C_O($1)
-    _LT_COMPILER_FILE_LOCKS($1)
-    _LT_LINKER_SHLIBS($1)
-    _LT_SYS_DYNAMIC_LINKER($1)
-    _LT_LINKER_HARDCODE_LIBPATH($1)
-
-    _LT_CONFIG($1)
-  fi # test -n "$compiler"
-
-  GCC=$lt_save_GCC
-  CC="$lt_save_CC"
-fi # test "$_lt_disable_FC" != yes
-
-AC_LANG_POP
-])# _LT_LANG_FC_CONFIG
-
-
-# _LT_LANG_GCJ_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for the GNU Java Compiler compiler
-# are suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_GCJ_CONFIG],
-[AC_REQUIRE([LT_PROG_GCJ])dnl
-AC_LANG_SAVE
-
-# Source file extension for Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-lt_save_GCC=$GCC
-GCC=yes
-CC=${GCJ-"gcj"}
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)="$LD"
-_LT_CC_BASENAME([$compiler])
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-
-if test -n "$compiler"; then
-  _LT_COMPILER_NO_RTTI($1)
-  _LT_COMPILER_PIC($1)
-  _LT_COMPILER_C_O($1)
-  _LT_COMPILER_FILE_LOCKS($1)
-  _LT_LINKER_SHLIBS($1)
-  _LT_LINKER_HARDCODE_LIBPATH($1)
-
-  _LT_CONFIG($1)
-fi
-
-AC_LANG_RESTORE
-
-GCC=$lt_save_GCC
-CC="$lt_save_CC"
-])# _LT_LANG_GCJ_CONFIG
-
-
-# _LT_LANG_RC_CONFIG([TAG])
-# -------------------------
-# Ensure that the configuration variables for the Windows resource compiler
-# are suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_RC_CONFIG],
-[AC_REQUIRE([LT_PROG_RC])dnl
-AC_LANG_SAVE
-
-# Source file extension for RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="$lt_simple_compile_test_code"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-lt_save_GCC=$GCC
-GCC=
-CC=${RC-"windres"}
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_CC_BASENAME([$compiler])
-_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-
-if test -n "$compiler"; then
-  :
-  _LT_CONFIG($1)
-fi
-
-GCC=$lt_save_GCC
-AC_LANG_RESTORE
-CC="$lt_save_CC"
-])# _LT_LANG_RC_CONFIG
-
-
-# LT_PROG_GCJ
-# -----------
-AC_DEFUN([LT_PROG_GCJ],
-[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
-  [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
-    [AC_CHECK_TOOL(GCJ, gcj,)
-      test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
-      AC_SUBST(GCJFLAGS)])])[]dnl
-])
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
-
-
-# LT_PROG_RC
-# ----------
-AC_DEFUN([LT_PROG_RC],
-[AC_CHECK_TOOL(RC, windres,)
-])
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_RC], [])
-
-
-# _LT_DECL_EGREP
-# --------------
-# If we don't have a new enough Autoconf to choose the best grep
-# available, choose the one first in the user's PATH.
-m4_defun([_LT_DECL_EGREP],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_REQUIRE([AC_PROG_FGREP])dnl
-test -z "$GREP" && GREP=grep
-_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
-_LT_DECL([], [EGREP], [1], [An ERE matcher])
-_LT_DECL([], [FGREP], [1], [A literal string matcher])
-dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
-AC_SUBST([GREP])
-])
-
-
-# _LT_DECL_OBJDUMP
-# --------------
-# If we don't have a new enough Autoconf to choose the best objdump
-# available, choose the one first in the user's PATH.
-m4_defun([_LT_DECL_OBJDUMP],
-[AC_CHECK_TOOL(OBJDUMP, objdump, false)
-test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
-AC_SUBST([OBJDUMP])
-])
-
-
-# _LT_DECL_SED
-# ------------
-# Check for a fully-functional sed program, that truncates
-# as few characters as possible.  Prefer GNU sed if found.
-m4_defun([_LT_DECL_SED],
-[AC_PROG_SED
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
-_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
-    [Sed that helps us avoid accidentally triggering echo(1) options like -n])
-])# _LT_DECL_SED
-
-m4_ifndef([AC_PROG_SED], [
-# NOTE: This macro has been submitted for inclusion into   #
-#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
-#  a released version of Autoconf we should remove this    #
-#  macro and use it instead.                               #
-
-m4_defun([AC_PROG_SED],
-[AC_MSG_CHECKING([for a sed that does not truncate output])
-AC_CACHE_VAL(lt_cv_path_SED,
-[# Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for lt_ac_prog in sed gsed; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
-        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
-      fi
-    done
-  done
-done
-IFS=$as_save_IFS
-lt_ac_max=0
-lt_ac_count=0
-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
-# along with /bin/sed that truncates output.
-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
-  test ! -f $lt_ac_sed && continue
-  cat /dev/null > conftest.in
-  lt_ac_count=0
-  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
-  # Check for GNU sed and select it if it is found.
-  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
-    lt_cv_path_SED=$lt_ac_sed
-    break
-  fi
-  while true; do
-    cat conftest.in conftest.in >conftest.tmp
-    mv conftest.tmp conftest.in
-    cp conftest.in conftest.nl
-    echo >>conftest.nl
-    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
-    cmp -s conftest.out conftest.nl || break
-    # 10000 chars as input seems more than enough
-    test $lt_ac_count -gt 10 && break
-    lt_ac_count=`expr $lt_ac_count + 1`
-    if test $lt_ac_count -gt $lt_ac_max; then
-      lt_ac_max=$lt_ac_count
-      lt_cv_path_SED=$lt_ac_sed
-    fi
-  done
-done
-])
-SED=$lt_cv_path_SED
-AC_SUBST([SED])
-AC_MSG_RESULT([$SED])
-])#AC_PROG_SED
-])#m4_ifndef
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_SED], [])
-
-
-# _LT_CHECK_SHELL_FEATURES
-# ------------------------
-# Find out whether the shell is Bourne or XSI compatible,
-# or has some other useful features.
-m4_defun([_LT_CHECK_SHELL_FEATURES],
-[AC_MSG_CHECKING([whether the shell understands some XSI constructs])
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,, \
-    && eval 'test $(( 1 + 1 )) -eq 2 \
-    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
-  && xsi_shell=yes
-AC_MSG_RESULT([$xsi_shell])
-_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
-
-AC_MSG_CHECKING([whether the shell understands "+="])
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \
-    >/dev/null 2>&1 \
-  && lt_shell_append=yes
-AC_MSG_RESULT([$lt_shell_append])
-_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  lt_unset=unset
-else
-  lt_unset=false
-fi
-_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
-
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
-    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
-  lt_SP2NL='tr \040 \012'
-  lt_NL2SP='tr \015\012 \040\040'
-  ;;
- *) # EBCDIC based system
-  lt_SP2NL='tr \100 \n'
-  lt_NL2SP='tr \r\n \100\100'
-  ;;
-esac
-_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
-_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
-])# _LT_CHECK_SHELL_FEATURES
-
-
-# _LT_PROG_XSI_SHELLFNS
-# ---------------------
-# Bourne and XSI compatible variants of some useful shell functions.
-m4_defun([_LT_PROG_XSI_SHELLFNS],
-[case $xsi_shell in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result="${1##*/}"
-}
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-#   dirname:  Compute the dirname of FILE.  If nonempty,
-#             add APPEND to the result, otherwise set result
-#             to NONDIR_REPLACEMENT.
-#             value returned in "$func_dirname_result"
-#   basename: Compute filename of FILE.
-#             value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-  func_basename_result="${1##*/}"
-}
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-func_stripname ()
-{
-  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
-  # positional parameters, so assign one to ordinary parameter first.
-  func_stripname_result=${3}
-  func_stripname_result=${func_stripname_result#"${1}"}
-  func_stripname_result=${func_stripname_result%"${2}"}
-}
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=${1%%=*}
-  func_opt_split_arg=${1#*=}
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  case ${1} in
-    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
-    *)    func_lo2o_result=${1} ;;
-  esac
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=${1%.*}.lo
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=$(( $[*] ))
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=${#1}
-}
-
-_LT_EOF
-    ;;
-  *) # Bourne compatible functions.
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  # Extract subdirectory from the argument.
-  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
-  if test "X$func_dirname_result" = "X${1}"; then
-    func_dirname_result="${3}"
-  else
-    func_dirname_result="$func_dirname_result${2}"
-  fi
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
-}
-
-dnl func_dirname_and_basename
-dnl A portable version of this function is already defined in general.m4sh
-dnl so there is no need for it here.
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
-  case ${2} in
-    .*) func_stripname_result=`$ECHO "X${3}" \
-           | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
-    *)  func_stripname_result=`$ECHO "X${3}" \
-           | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
-  esac
-}
-
-# sed scripts:
-my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q'
-my_sed_long_arg='1s/^-[[^=]]*=//'
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
-  func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'`
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=`expr "$[@]"`
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len`
-}
-
-_LT_EOF
-esac
-
-case $lt_shell_append in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$[1]+=\$[2]"
-}
-_LT_EOF
-    ;;
-  *)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$[1]=\$$[1]\$[2]"
-}
-
-_LT_EOF
-    ;;
-  esac
-])
-
-# Helper functions for option handling.                    -*- Autoconf -*-
-#
-#   Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
-#   Written by Gary V. Vaughan, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 6 ltoptions.m4
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
-
-
-# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
-# ------------------------------------------
-m4_define([_LT_MANGLE_OPTION],
-[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
-
-
-# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
-# ---------------------------------------
-# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
-# matching handler defined, dispatch to it.  Other OPTION-NAMEs are
-# saved as a flag.
-m4_define([_LT_SET_OPTION],
-[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
-m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
-        _LT_MANGLE_DEFUN([$1], [$2]),
-    [m4_warning([Unknown $1 option `$2'])])[]dnl
-])
-
-
-# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
-# ------------------------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-m4_define([_LT_IF_OPTION],
-[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
-
-
-# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
-# -------------------------------------------------------
-# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
-# are set.
-m4_define([_LT_UNLESS_OPTIONS],
-[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
-	    [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
-		      [m4_define([$0_found])])])[]dnl
-m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
-])[]dnl
-])
-
-
-# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
-# ----------------------------------------
-# OPTION-LIST is a space-separated list of Libtool options associated
-# with MACRO-NAME.  If any OPTION has a matching handler declared with
-# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
-# the unknown option and exit.
-m4_defun([_LT_SET_OPTIONS],
-[# Set options
-m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
-    [_LT_SET_OPTION([$1], _LT_Option)])
-
-m4_if([$1],[LT_INIT],[
-  dnl
-  dnl Simply set some default values (i.e off) if boolean options were not
-  dnl specified:
-  _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
-  ])
-  _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
-  ])
-  dnl
-  dnl If no reference was made to various pairs of opposing options, then
-  dnl we run the default mode handler for the pair.  For example, if neither
-  dnl `shared' nor `disable-shared' was passed, we enable building of shared
-  dnl archives by default:
-  _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
-  _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
-  _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
-  _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
-  		   [_LT_ENABLE_FAST_INSTALL])
-  ])
-])# _LT_SET_OPTIONS
-
-
-
-# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
-# -----------------------------------------
-m4_define([_LT_MANGLE_DEFUN],
-[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
-
-
-# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
-# -----------------------------------------------
-m4_define([LT_OPTION_DEFINE],
-[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
-])# LT_OPTION_DEFINE
-
-
-# dlopen
-# ------
-LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
-])
-
-AU_DEFUN([AC_LIBTOOL_DLOPEN],
-[_LT_SET_OPTION([LT_INIT], [dlopen])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `dlopen' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
-
-
-# win32-dll
-# ---------
-# Declare package support for building win32 dll's.
-LT_OPTION_DEFINE([LT_INIT], [win32-dll],
-[enable_win32_dll=yes
-
-case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
-  AC_CHECK_TOOL(AS, as, false)
-  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-  AC_CHECK_TOOL(OBJDUMP, objdump, false)
-  ;;
-esac
-
-test -z "$AS" && AS=as
-_LT_DECL([], [AS],      [0], [Assembler program])dnl
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl
-])# win32-dll
-
-AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-_LT_SET_OPTION([LT_INIT], [win32-dll])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `win32-dll' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
-
-
-# _LT_ENABLE_SHARED([DEFAULT])
-# ----------------------------
-# implement the --enable-shared flag, and supports the `shared' and
-# `disable-shared' LT_INIT options.
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_SHARED],
-[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([shared],
-    [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
-	[build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_shared=yes ;;
-    no) enable_shared=no ;;
-    *)
-      enable_shared=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_shared=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
-
-    _LT_DECL([build_libtool_libs], [enable_shared], [0],
-	[Whether or not to build shared libraries])
-])# _LT_ENABLE_SHARED
-
-LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
-
-# Old names:
-AC_DEFUN([AC_ENABLE_SHARED],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
-])
-
-AC_DEFUN([AC_DISABLE_SHARED],
-[_LT_SET_OPTION([LT_INIT], [disable-shared])
-])
-
-AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
-AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_ENABLE_SHARED], [])
-dnl AC_DEFUN([AM_DISABLE_SHARED], [])
-
-
-
-# _LT_ENABLE_STATIC([DEFAULT])
-# ----------------------------
-# implement the --enable-static flag, and support the `static' and
-# `disable-static' LT_INIT options.
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_STATIC],
-[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([static],
-    [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
-	[build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_static=yes ;;
-    no) enable_static=no ;;
-    *)
-     enable_static=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_static=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
-
-    _LT_DECL([build_old_libs], [enable_static], [0],
-	[Whether or not to build static libraries])
-])# _LT_ENABLE_STATIC
-
-LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
-
-# Old names:
-AC_DEFUN([AC_ENABLE_STATIC],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
-])
-
-AC_DEFUN([AC_DISABLE_STATIC],
-[_LT_SET_OPTION([LT_INIT], [disable-static])
-])
-
-AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
-AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_ENABLE_STATIC], [])
-dnl AC_DEFUN([AM_DISABLE_STATIC], [])
-
-
-
-# _LT_ENABLE_FAST_INSTALL([DEFAULT])
-# ----------------------------------
-# implement the --enable-fast-install flag, and support the `fast-install'
-# and `disable-fast-install' LT_INIT options.
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_FAST_INSTALL],
-[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([fast-install],
-    [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
-    [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_fast_install=yes ;;
-    no) enable_fast_install=no ;;
-    *)
-      enable_fast_install=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_fast_install=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
-
-_LT_DECL([fast_install], [enable_fast_install], [0],
-	 [Whether or not to optimize for fast installation])dnl
-])# _LT_ENABLE_FAST_INSTALL
-
-LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
-
-# Old names:
-AU_DEFUN([AC_ENABLE_FAST_INSTALL],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `fast-install' option into LT_INIT's first parameter.])
-])
-
-AU_DEFUN([AC_DISABLE_FAST_INSTALL],
-[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `disable-fast-install' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
-dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
-
-
-# _LT_WITH_PIC([MODE])
-# --------------------
-# implement the --with-pic flag, and support the `pic-only' and `no-pic'
-# LT_INIT options.
-# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
-m4_define([_LT_WITH_PIC],
-[AC_ARG_WITH([pic],
-    [AS_HELP_STRING([--with-pic],
-	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
-    [pic_mode="$withval"],
-    [pic_mode=default])
-
-test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
-
-_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
-])# _LT_WITH_PIC
-
-LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
-LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
-
-# Old name:
-AU_DEFUN([AC_LIBTOOL_PICMODE],
-[_LT_SET_OPTION([LT_INIT], [pic-only])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `pic-only' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
-
-
-m4_define([_LTDL_MODE], [])
-LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
-		 [m4_define([_LTDL_MODE], [nonrecursive])])
-LT_OPTION_DEFINE([LTDL_INIT], [recursive],
-		 [m4_define([_LTDL_MODE], [recursive])])
-LT_OPTION_DEFINE([LTDL_INIT], [subproject],
-		 [m4_define([_LTDL_MODE], [subproject])])
-
-m4_define([_LTDL_TYPE], [])
-LT_OPTION_DEFINE([LTDL_INIT], [installable],
-		 [m4_define([_LTDL_TYPE], [installable])])
-LT_OPTION_DEFINE([LTDL_INIT], [convenience],
-		 [m4_define([_LTDL_TYPE], [convenience])])
-
-# ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
-#
-# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
-# Written by Gary V. Vaughan, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 6 ltsugar.m4
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
-
-
-# lt_join(SEP, ARG1, [ARG2...])
-# -----------------------------
-# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
-# associated separator.
-# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
-# versions in m4sugar had bugs.
-m4_define([lt_join],
-[m4_if([$#], [1], [],
-       [$#], [2], [[$2]],
-       [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
-m4_define([_lt_join],
-[m4_if([$#$2], [2], [],
-       [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
-
-
-# lt_car(LIST)
-# lt_cdr(LIST)
-# ------------
-# Manipulate m4 lists.
-# These macros are necessary as long as will still need to support
-# Autoconf-2.59 which quotes differently.
-m4_define([lt_car], [[$1]])
-m4_define([lt_cdr],
-[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
-       [$#], 1, [],
-       [m4_dquote(m4_shift($@))])])
-m4_define([lt_unquote], $1)
-
-
-# lt_append(MACRO-NAME, STRING, [SEPARATOR])
-# ------------------------------------------
-# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
-# Note that neither SEPARATOR nor STRING are expanded; they are appended
-# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
-# No SEPARATOR is output if MACRO-NAME was previously undefined (different
-# than defined and empty).
-#
-# This macro is needed until we can rely on Autoconf 2.62, since earlier
-# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
-m4_define([lt_append],
-[m4_define([$1],
-	   m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
-
-
-
-# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
-# ----------------------------------------------------------
-# Produce a SEP delimited list of all paired combinations of elements of
-# PREFIX-LIST with SUFFIX1 through SUFFIXn.  Each element of the list
-# has the form PREFIXmINFIXSUFFIXn.
-# Needed until we can rely on m4_combine added in Autoconf 2.62.
-m4_define([lt_combine],
-[m4_if(m4_eval([$# > 3]), [1],
-       [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
-[[m4_foreach([_Lt_prefix], [$2],
-	     [m4_foreach([_Lt_suffix],
-		]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
-	[_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
-
-
-# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
-# -----------------------------------------------------------------------
-# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
-# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
-m4_define([lt_if_append_uniq],
-[m4_ifdef([$1],
-	  [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
-		 [lt_append([$1], [$2], [$3])$4],
-		 [$5])],
-	  [lt_append([$1], [$2], [$3])$4])])
-
-
-# lt_dict_add(DICT, KEY, VALUE)
-# -----------------------------
-m4_define([lt_dict_add],
-[m4_define([$1($2)], [$3])])
-
-
-# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
-# --------------------------------------------
-m4_define([lt_dict_add_subkey],
-[m4_define([$1($2:$3)], [$4])])
-
-
-# lt_dict_fetch(DICT, KEY, [SUBKEY])
-# ----------------------------------
-m4_define([lt_dict_fetch],
-[m4_ifval([$3],
-	m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
-    m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
-
-
-# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
-# -----------------------------------------------------------------
-m4_define([lt_if_dict_fetch],
-[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
-	[$5],
-    [$6])])
-
-
-# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
-# --------------------------------------------------------------
-m4_define([lt_dict_filter],
-[m4_if([$5], [], [],
-  [lt_join(m4_quote(m4_default([$4], [[, ]])),
-           lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
-		      [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
-])
-
-# ltversion.m4 -- version numbers			-*- Autoconf -*-
-#
-#   Copyright (C) 2004 Free Software Foundation, Inc.
-#   Written by Scott James Remnant, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# Generated from ltversion.in.
-
-# serial 3017 ltversion.m4
-# This file is part of GNU Libtool
-
-m4_define([LT_PACKAGE_VERSION], [2.2.6b])
-m4_define([LT_PACKAGE_REVISION], [1.3017])
-
-AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.2.6b'
-macro_revision='1.3017'
-_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
-_LT_DECL(, macro_revision, 0)
-])
-
-# lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
-#
-#   Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
-#   Written by Scott James Remnant, 2004.
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 4 lt~obsolete.m4
-
-# These exist entirely to fool aclocal when bootstrapping libtool.
-#
-# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
-# which have later been changed to m4_define as they aren't part of the
-# exported API, or moved to Autoconf or Automake where they belong.
-#
-# The trouble is, aclocal is a bit thick.  It'll see the old AC_DEFUN
-# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
-# using a macro with the same name in our local m4/libtool.m4 it'll
-# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
-# and doesn't know about Autoconf macros at all.)
-#
-# So we provide this file, which has a silly filename so it's always
-# included after everything else.  This provides aclocal with the
-# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
-# because those macros already exist, or will be overwritten later.
-# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. 
-#
-# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
-# Yes, that means every name once taken will need to remain here until
-# we give up compatibility with versions before 1.7, at which point
-# we need to keep only those names which we still refer to.
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
-
-m4_ifndef([AC_LIBTOOL_LINKER_OPTION],	[AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
-m4_ifndef([AC_PROG_EGREP],		[AC_DEFUN([AC_PROG_EGREP])])
-m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_AC_SHELL_INIT],		[AC_DEFUN([_LT_AC_SHELL_INIT])])
-m4_ifndef([_LT_AC_SYS_LIBPATH_AIX],	[AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
-m4_ifndef([_LT_PROG_LTMAIN],		[AC_DEFUN([_LT_PROG_LTMAIN])])
-m4_ifndef([_LT_AC_TAGVAR],		[AC_DEFUN([_LT_AC_TAGVAR])])
-m4_ifndef([AC_LTDL_ENABLE_INSTALL],	[AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
-m4_ifndef([AC_LTDL_PREOPEN],		[AC_DEFUN([AC_LTDL_PREOPEN])])
-m4_ifndef([_LT_AC_SYS_COMPILER],	[AC_DEFUN([_LT_AC_SYS_COMPILER])])
-m4_ifndef([_LT_AC_LOCK],		[AC_DEFUN([_LT_AC_LOCK])])
-m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE],	[AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
-m4_ifndef([_LT_AC_TRY_DLOPEN_SELF],	[AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
-m4_ifndef([AC_LIBTOOL_PROG_CC_C_O],	[AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
-m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
-m4_ifndef([AC_LIBTOOL_OBJDIR],		[AC_DEFUN([AC_LIBTOOL_OBJDIR])])
-m4_ifndef([AC_LTDL_OBJDIR],		[AC_DEFUN([AC_LTDL_OBJDIR])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
-m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP],	[AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
-m4_ifndef([AC_PATH_MAGIC],		[AC_DEFUN([AC_PATH_MAGIC])])
-m4_ifndef([AC_PROG_LD_GNU],		[AC_DEFUN([AC_PROG_LD_GNU])])
-m4_ifndef([AC_PROG_LD_RELOAD_FLAG],	[AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
-m4_ifndef([AC_DEPLIBS_CHECK_METHOD],	[AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
-m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS],	[AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
-m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP],	[AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
-m4_ifndef([LT_AC_PROG_EGREP],		[AC_DEFUN([LT_AC_PROG_EGREP])])
-m4_ifndef([LT_AC_PROG_SED],		[AC_DEFUN([LT_AC_PROG_SED])])
-m4_ifndef([_LT_CC_BASENAME],		[AC_DEFUN([_LT_CC_BASENAME])])
-m4_ifndef([_LT_COMPILER_BOILERPLATE],	[AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
-m4_ifndef([_LT_LINKER_BOILERPLATE],	[AC_DEFUN([_LT_LINKER_BOILERPLATE])])
-m4_ifndef([_AC_PROG_LIBTOOL],		[AC_DEFUN([_AC_PROG_LIBTOOL])])
-m4_ifndef([AC_LIBTOOL_SETUP],		[AC_DEFUN([AC_LIBTOOL_SETUP])])
-m4_ifndef([_LT_AC_CHECK_DLFCN],		[AC_DEFUN([_LT_AC_CHECK_DLFCN])])
-m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER],	[AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
-m4_ifndef([_LT_AC_TAGCONFIG],		[AC_DEFUN([_LT_AC_TAGCONFIG])])
-m4_ifndef([AC_DISABLE_FAST_INSTALL],	[AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
-m4_ifndef([_LT_AC_LANG_CXX],		[AC_DEFUN([_LT_AC_LANG_CXX])])
-m4_ifndef([_LT_AC_LANG_F77],		[AC_DEFUN([_LT_AC_LANG_F77])])
-m4_ifndef([_LT_AC_LANG_GCJ],		[AC_DEFUN([_LT_AC_LANG_GCJ])])
-m4_ifndef([AC_LIBTOOL_RC],		[AC_DEFUN([AC_LIBTOOL_RC])])
-m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
-m4_ifndef([_LT_AC_LANG_C_CONFIG],	[AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
-m4_ifndef([_LT_AC_LANG_CXX_CONFIG],	[AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
-m4_ifndef([_LT_AC_LANG_F77_CONFIG],	[AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
-m4_ifndef([_LT_AC_LANG_GCJ_CONFIG],	[AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
-m4_ifndef([_LT_AC_LANG_RC_CONFIG],	[AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
-m4_ifndef([AC_LIBTOOL_CONFIG],		[AC_DEFUN([AC_LIBTOOL_CONFIG])])
-m4_ifndef([_LT_AC_FILE_LTDLL_C],	[AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
-
-# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_AUTOMAKE_VERSION(VERSION)
-# ----------------------------
-# Automake X.Y traces this macro to ensure aclocal.m4 has been
-# generated from the m4 files accompanying Automake X.Y.
-# (This private macro should not be called outside this file.)
-AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.11'
-dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
-dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.11.1], [],
-      [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
-])
-
-# _AM_AUTOCONF_VERSION(VERSION)
-# -----------------------------
-# aclocal traces this macro to find the Autoconf version.
-# This is a private macro too.  Using m4_define simplifies
-# the logic in aclocal, which can simply ignore this definition.
-m4_define([_AM_AUTOCONF_VERSION], [])
-
-# AM_SET_CURRENT_AUTOMAKE_VERSION
-# -------------------------------
-# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
-# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
-AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11.1])dnl
-m4_ifndef([AC_AUTOCONF_VERSION],
-  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
-
-# AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
-
-# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
-# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
-#
-# Of course, Automake must honor this variable whenever it calls a
-# tool from the auxiliary directory.  The problem is that $srcdir (and
-# therefore $ac_aux_dir as well) can be either absolute or relative,
-# depending on how configure is run.  This is pretty annoying, since
-# it makes $ac_aux_dir quite unusable in subdirectories: in the top
-# source directory, any form will work fine, but in subdirectories a
-# relative path needs to be adjusted first.
-#
-# $ac_aux_dir/missing
-#    fails when called from a subdirectory if $ac_aux_dir is relative
-# $top_srcdir/$ac_aux_dir/missing
-#    fails if $ac_aux_dir is absolute,
-#    fails when called from a subdirectory in a VPATH build with
-#          a relative $ac_aux_dir
-#
-# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
-# are both prefixed by $srcdir.  In an in-source build this is usually
-# harmless because $srcdir is `.', but things will broke when you
-# start a VPATH build or use an absolute $srcdir.
-#
-# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
-# iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
-#   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
-# and then we would define $MISSING as
-#   MISSING="\${SHELL} $am_aux_dir/missing"
-# This will work as long as MISSING is not called from configure, because
-# unfortunately $(top_srcdir) has no meaning in configure.
-# However there are other variables, like CC, which are often used in
-# configure, and could therefore not use this "fixed" $ac_aux_dir.
-#
-# Another solution, used here, is to always expand $ac_aux_dir to an
-# absolute PATH.  The drawback is that using absolute paths prevent a
-# configured tree to be moved without reconfiguration.
-
-AC_DEFUN([AM_AUX_DIR_EXPAND],
-[dnl Rely on autoconf to set up CDPATH properly.
-AC_PREREQ([2.50])dnl
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-])
-
-# AM_CONDITIONAL                                            -*- Autoconf -*-
-
-# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 9
-
-# AM_CONDITIONAL(NAME, SHELL-CONDITION)
-# -------------------------------------
-# Define a conditional.
-AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ(2.52)dnl
- ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
-	[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
-AC_SUBST([$1_TRUE])dnl
-AC_SUBST([$1_FALSE])dnl
-_AM_SUBST_NOTMAKE([$1_TRUE])dnl
-_AM_SUBST_NOTMAKE([$1_FALSE])dnl
-m4_define([_AM_COND_VALUE_$1], [$2])dnl
-if $2; then
-  $1_TRUE=
-  $1_FALSE='#'
-else
-  $1_TRUE='#'
-  $1_FALSE=
-fi
-AC_CONFIG_COMMANDS_PRE(
-[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
-  AC_MSG_ERROR([[conditional "$1" was never defined.
-Usually this means the macro was only invoked conditionally.]])
-fi])])
-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 10
-
-# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
-# written in clear, in which case automake, when reading aclocal.m4,
-# will think it sees a *use*, and therefore will trigger all it's
-# C support machinery.  Also note that it means that autoscan, seeing
-# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
-
-
-# _AM_DEPENDENCIES(NAME)
-# ----------------------
-# See how the compiler implements dependency checking.
-# NAME is "CC", "CXX", "GCJ", or "OBJC".
-# We try a few techniques and use that to set a single cache variable.
-#
-# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
-# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
-# dependency, and given that the user is not expected to run this macro,
-# just rely on AC_PROG_CC.
-AC_DEFUN([_AM_DEPENDENCIES],
-[AC_REQUIRE([AM_SET_DEPDIR])dnl
-AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
-AC_REQUIRE([AM_MAKE_INCLUDE])dnl
-AC_REQUIRE([AM_DEP_TRACK])dnl
-
-ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
-       [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
-       [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
-       [$1], UPC,  [depcc="$UPC"  am_compiler_list=],
-       [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
-                   [depcc="$$1"   am_compiler_list=])
-
-AC_CACHE_CHECK([dependency style of $depcc],
-               [am_cv_$1_dependencies_compiler_type],
-[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
-  # We make a subdir and do the tests there.  Otherwise we can end up
-  # making bogus files that we don't know about and never remove.  For
-  # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
-  mkdir conftest.dir
-  # Copy depcomp to subdir because otherwise we won't find it if we're
-  # using a relative directory.
-  cp "$am_depcomp" conftest.dir
-  cd conftest.dir
-  # We will build objects and dependencies in a subdirectory because
-  # it helps to detect inapplicable dependency modes.  For instance
-  # both Tru64's cc and ICC support -MD to output dependencies as a
-  # side effect of compilation, but ICC will put the dependencies in
-  # the current directory while Tru64 will put them in the object
-  # directory.
-  mkdir sub
-
-  am_cv_$1_dependencies_compiler_type=none
-  if test "$am_compiler_list" = ""; then
-     am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
-  fi
-  am__universal=false
-  m4_case([$1], [CC],
-    [case " $depcc " in #(
-     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-     esac],
-    [CXX],
-    [case " $depcc " in #(
-     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-     esac])
-
-  for depmode in $am_compiler_list; do
-    # Setup a source with many dependencies, because some compilers
-    # like to wrap large dependency lists on column 80 (with \), and
-    # we should not choose a depcomp mode which is confused by this.
-    #
-    # We need to recreate these files for each test, as the compiler may
-    # overwrite some of them when testing with obscure command lines.
-    # This happens at least with the AIX C compiler.
-    : > sub/conftest.c
-    for i in 1 2 3 4 5 6; do
-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
-    done
-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
-    am__obj=sub/conftest.${OBJEXT-o}
-    am__minus_obj="-o $am__obj"
-    case $depmode in
-    gcc)
-      # This depmode causes a compiler race in universal mode.
-      test "$am__universal" = false || continue
-      ;;
-    nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
-      if test "x$enable_dependency_tracking" = xyes; then
-	continue
-      else
-	break
-      fi
-      ;;
-    msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
-      # not run yet.  These depmodes are late enough in the game, and
-      # so weak that their functioning should not be impacted.
-      am__obj=conftest.${OBJEXT-o}
-      am__minus_obj=
-      ;;
-    none) break ;;
-    esac
-    if depmode=$depmode \
-       source=sub/conftest.c object=$am__obj \
-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
-         >/dev/null 2>conftest.err &&
-       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-      # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-        am_cv_$1_dependencies_compiler_type=$depmode
-        break
-      fi
-    fi
-  done
-
-  cd ..
-  rm -rf conftest.dir
-else
-  am_cv_$1_dependencies_compiler_type=none
-fi
-])
-AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
-AM_CONDITIONAL([am__fastdep$1], [
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
-])
-
-
-# AM_SET_DEPDIR
-# -------------
-# Choose a directory name for dependency files.
-# This macro is AC_REQUIREd in _AM_DEPENDENCIES
-AC_DEFUN([AM_SET_DEPDIR],
-[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
-])
-
-
-# AM_DEP_TRACK
-# ------------
-AC_DEFUN([AM_DEP_TRACK],
-[AC_ARG_ENABLE(dependency-tracking,
-[  --disable-dependency-tracking  speeds up one-time build
-  --enable-dependency-tracking   do not reject slow dependency extractors])
-if test "x$enable_dependency_tracking" != xno; then
-  am_depcomp="$ac_aux_dir/depcomp"
-  AMDEPBACKSLASH='\'
-fi
-AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
-AC_SUBST([AMDEPBACKSLASH])dnl
-_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
-])
-
-# Generate code to set up dependency tracking.              -*- Autoconf -*-
-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-#serial 5
-
-# _AM_OUTPUT_DEPENDENCY_COMMANDS
-# ------------------------------
-AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
-[{
-  # Autoconf 2.62 quotes --file arguments for eval, but not when files
-  # are listed without --file.  Let's play safe and only enable the eval
-  # if we detect the quoting.
-  case $CONFIG_FILES in
-  *\'*) eval set x "$CONFIG_FILES" ;;
-  *)   set x $CONFIG_FILES ;;
-  esac
-  shift
-  for mf
-  do
-    # Strip MF so we end up with the name of the file.
-    mf=`echo "$mf" | sed -e 's/:.*$//'`
-    # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named `Makefile.in', but
-    # some people rename them; so instead we look at the file content.
-    # Grep'ing the first line is not enough: some people post-process
-    # each Makefile.in and add a new line on top of each file to say so.
-    # Grep'ing the whole file is not good either: AIX grep has a line
-    # limit of 2048, but all sed's we know have understand at least 4000.
-    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
-      dirpart=`AS_DIRNAME("$mf")`
-    else
-      continue
-    fi
-    # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running `make'.
-    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
-    test -z "$DEPDIR" && continue
-    am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
-    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # When using ansi2knr, U may be empty or an underscore; expand it
-    U=`sed -n 's/^U = //p' < "$mf"`
-    # Find all dependency output files, they are included files with
-    # $(DEPDIR) in their names.  We invoke sed twice because it is the
-    # simplest approach to changing $(DEPDIR) to its actual value in the
-    # expansion.
-    for file in `sed -n "
-      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
-      # Make sure the directory exists.
-      test -f "$dirpart/$file" && continue
-      fdir=`AS_DIRNAME(["$file"])`
-      AS_MKDIR_P([$dirpart/$fdir])
-      # echo "creating $dirpart/$file"
-      echo '# dummy' > "$dirpart/$file"
-    done
-  done
-}
-])# _AM_OUTPUT_DEPENDENCY_COMMANDS
-
-
-# AM_OUTPUT_DEPENDENCY_COMMANDS
-# -----------------------------
-# This macro should only be invoked once -- use via AC_REQUIRE.
-#
-# This code is only required when automatic dependency tracking
-# is enabled.  FIXME.  This creates each `.P' file that we will
-# need in order to bootstrap the dependency handling code.
-AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
-[AC_CONFIG_COMMANDS([depfiles],
-     [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
-     [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
-])
-
-# Do all the work for Automake.                             -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 16
-
-# This macro actually does too much.  Some checks are only needed if
-# your package does certain things.  But this isn't really a big deal.
-
-# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
-# AM_INIT_AUTOMAKE([OPTIONS])
-# -----------------------------------------------
-# The call with PACKAGE and VERSION arguments is the old style
-# call (pre autoconf-2.50), which is being phased out.  PACKAGE
-# and VERSION should now be passed to AC_INIT and removed from
-# the call to AM_INIT_AUTOMAKE.
-# We support both call styles for the transition.  After
-# the next Automake release, Autoconf can make the AC_INIT
-# arguments mandatory, and then we can depend on a new Autoconf
-# release and drop the old call support.
-AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.62])dnl
-dnl Autoconf wants to disallow AM_ names.  We explicitly allow
-dnl the ones we care about.
-m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
-AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
-AC_REQUIRE([AC_PROG_INSTALL])dnl
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
-  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
-  # is not polluted with repeated "-I."
-  AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
-  # test to see if srcdir already configured
-  if test -f $srcdir/config.status; then
-    AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
-  fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
-  if (cygpath --version) >/dev/null 2>/dev/null; then
-    CYGPATH_W='cygpath -w'
-  else
-    CYGPATH_W=echo
-  fi
-fi
-AC_SUBST([CYGPATH_W])
-
-# Define the identity of the package.
-dnl Distinguish between old-style and new-style calls.
-m4_ifval([$2],
-[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
- AC_SUBST([PACKAGE], [$1])dnl
- AC_SUBST([VERSION], [$2])],
-[_AM_SET_OPTIONS([$1])dnl
-dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
-m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
-  [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
-
-_AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
-
-# Some tools Automake needs.
-AC_REQUIRE([AM_SANITY_CHECK])dnl
-AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
-AM_MISSING_PROG(AUTOCONF, autoconf)
-AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
-AM_MISSING_PROG(AUTOHEADER, autoheader)
-AM_MISSING_PROG(MAKEINFO, makeinfo)
-AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
-AC_REQUIRE([AM_PROG_MKDIR_P])dnl
-# We need awk for the "check" target.  The system "awk" is bad on
-# some platforms.
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
-	      [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
-			     [_AM_PROG_TAR([v7])])])
-_AM_IF_OPTION([no-dependencies],,
-[AC_PROVIDE_IFELSE([AC_PROG_CC],
-		  [_AM_DEPENDENCIES(CC)],
-		  [define([AC_PROG_CC],
-			  defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_CXX],
-		  [_AM_DEPENDENCIES(CXX)],
-		  [define([AC_PROG_CXX],
-			  defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_OBJC],
-		  [_AM_DEPENDENCIES(OBJC)],
-		  [define([AC_PROG_OBJC],
-			  defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
-])
-_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
-dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
-dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This macro
-dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
-AC_CONFIG_COMMANDS_PRE(dnl
-[m4_provide_if([_AM_COMPILER_EXEEXT],
-  [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
-])
-
-dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
-dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
-dnl mangled by Autoconf and run in a shell conditional statement.
-m4_define([_AC_COMPILER_EXEEXT],
-m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
-
-
-# When config.status generates a header, we must update the stamp-h file.
-# This file resides in the same directory as the config header
-# that is generated.  The stamp files are numbered to have different names.
-
-# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
-# loop where config.status creates the headers, so we can generate
-# our stamp files there.
-AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
-[# Compute $1's index in $config_headers.
-_am_arg=$1
-_am_stamp_count=1
-for _am_header in $config_headers :; do
-  case $_am_header in
-    $_am_arg | $_am_arg:* )
-      break ;;
-    * )
-      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
-  esac
-done
-echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-
-# Copyright (C) 2001, 2003, 2005, 2008  Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_SH
-# ------------------
-# Define $install_sh.
-AC_DEFUN([AM_PROG_INSTALL_SH],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-if test x"${install_sh}" != xset; then
-  case $am_aux_dir in
-  *\ * | *\	*)
-    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
-  *)
-    install_sh="\${SHELL} $am_aux_dir/install-sh"
-  esac
-fi
-AC_SUBST(install_sh)])
-
-# Copyright (C) 2003, 2005  Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 2
-
-# Check whether the underlying file-system supports filenames
-# with a leading dot.  For instance MS-DOS doesn't.
-AC_DEFUN([AM_SET_LEADING_DOT],
-[rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
-  am__leading_dot=.
-else
-  am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-AC_SUBST([am__leading_dot])])
-
-# Check to see how 'make' treats includes.	            -*- Autoconf -*-
-
-# Copyright (C) 2001, 2002, 2003, 2005, 2009  Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 4
-
-# AM_MAKE_INCLUDE()
-# -----------------
-# Check to see how make treats includes.
-AC_DEFUN([AM_MAKE_INCLUDE],
-[am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
-	@echo this is the am__doit target
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-AC_MSG_CHECKING([for style of include used by $am_make])
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
-  am__include=include
-  am__quote=
-  _am_result=GNU
-  ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
-   echo '.include "confinc"' > confmf
-   case `$am_make -s -f confmf 2> /dev/null` in #(
-   *the\ am__doit\ target*)
-     am__include=.include
-     am__quote="\""
-     _am_result=BSD
-     ;;
-   esac
-fi
-AC_SUBST([am__include])
-AC_SUBST([am__quote])
-AC_MSG_RESULT([$_am_result])
-rm -f confinc confmf
-])
-
-# Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
-
-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 6
-
-# AM_MISSING_PROG(NAME, PROGRAM)
-# ------------------------------
-AC_DEFUN([AM_MISSING_PROG],
-[AC_REQUIRE([AM_MISSING_HAS_RUN])
-$1=${$1-"${am_missing_run}$2"}
-AC_SUBST($1)])
-
-
-# AM_MISSING_HAS_RUN
-# ------------------
-# Define MISSING if not defined so far and test if it supports --run.
-# If it does, set am_missing_run to use it, otherwise, to nothing.
-AC_DEFUN([AM_MISSING_HAS_RUN],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([missing])dnl
-if test x"${MISSING+set}" != xset; then
-  case $am_aux_dir in
-  *\ * | *\	*)
-    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
-  *)
-    MISSING="\${SHELL} $am_aux_dir/missing" ;;
-  esac
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
-  am_missing_run="$MISSING --run "
-else
-  am_missing_run=
-  AC_MSG_WARN([`missing' script is too old or missing])
-fi
-])
-
-# Copyright (C) 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_MKDIR_P
-# ---------------
-# Check for `mkdir -p'.
-AC_DEFUN([AM_PROG_MKDIR_P],
-[AC_PREREQ([2.60])dnl
-AC_REQUIRE([AC_PROG_MKDIR_P])dnl
-dnl Automake 1.8 to 1.9.6 used to define mkdir_p.  We now use MKDIR_P,
-dnl while keeping a definition of mkdir_p for backward compatibility.
-dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
-dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
-dnl Makefile.ins that do not define MKDIR_P, so we do our own
-dnl adjustment using top_builddir (which is defined more often than
-dnl MKDIR_P).
-AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
-case $mkdir_p in
-  [[\\/$]]* | ?:[[\\/]]*) ;;
-  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-])
-
-# Helper functions for option handling.                     -*- Autoconf -*-
-
-# Copyright (C) 2001, 2002, 2003, 2005, 2008  Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 4
-
-# _AM_MANGLE_OPTION(NAME)
-# -----------------------
-AC_DEFUN([_AM_MANGLE_OPTION],
-[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
-
-# _AM_SET_OPTION(NAME)
-# ------------------------------
-# Set option NAME.  Presently that only means defining a flag for this option.
-AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
-
-# _AM_SET_OPTIONS(OPTIONS)
-# ----------------------------------
-# OPTIONS is a space-separated list of Automake options.
-AC_DEFUN([_AM_SET_OPTIONS],
-[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
-
-# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
-# -------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-AC_DEFUN([_AM_IF_OPTION],
-[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2009
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
-# ---------------------------------------------------------------------------
-# Adds support for distributing Python modules and packages.  To
-# install modules, copy them to $(pythondir), using the python_PYTHON
-# automake variable.  To install a package with the same name as the
-# automake package, install to $(pkgpythondir), or use the
-# pkgpython_PYTHON automake variable.
-#
-# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as
-# locations to install python extension modules (shared libraries).
-# Another macro is required to find the appropriate flags to compile
-# extension modules.
-#
-# If your package is configured with a different prefix to python,
-# users will have to add the install directory to the PYTHONPATH
-# environment variable, or create a .pth file (see the python
-# documentation for details).
-#
-# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will
-# cause an error if the version of python installed on the system
-# doesn't meet the requirement.  MINIMUM-VERSION should consist of
-# numbers and dots only.
-AC_DEFUN([AM_PATH_PYTHON],
- [
-  dnl Find a Python interpreter.  Python versions prior to 2.0 are not
-  dnl supported. (2.0 was released on October 16, 2000).
-  m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
-                    [python python2 python3 python3.0 python2.5 python2.4 python2.3 python2.2 dnl
-python2.1 python2.0])
-
-  m4_if([$1],[],[
-    dnl No version check is needed.
-    # Find any Python interpreter.
-    if test -z "$PYTHON"; then
-      AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :)
-    fi
-    am_display_PYTHON=python
-  ], [
-    dnl A version check is needed.
-    if test -n "$PYTHON"; then
-      # If the user set $PYTHON, use it and don't search something else.
-      AC_MSG_CHECKING([whether $PYTHON version >= $1])
-      AM_PYTHON_CHECK_VERSION([$PYTHON], [$1],
-			      [AC_MSG_RESULT(yes)],
-			      [AC_MSG_ERROR(too old)])
-      am_display_PYTHON=$PYTHON
-    else
-      # Otherwise, try each interpreter until we find one that satisfies
-      # VERSION.
-      AC_CACHE_CHECK([for a Python interpreter with version >= $1],
-	[am_cv_pathless_PYTHON],[
-	for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do
-	  test "$am_cv_pathless_PYTHON" = none && break
-	  AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break])
-	done])
-      # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
-      if test "$am_cv_pathless_PYTHON" = none; then
-	PYTHON=:
-      else
-        AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON])
-      fi
-      am_display_PYTHON=$am_cv_pathless_PYTHON
-    fi
-  ])
-
-  if test "$PYTHON" = :; then
-  dnl Run any user-specified action, or abort.
-    m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
-  else
-
-  dnl Query Python for its version number.  Getting [:3] seems to be
-  dnl the best way to do this; it's what "site.py" does in the standard
-  dnl library.
-
-  AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
-    [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`])
-  AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
-
-  dnl Use the values of $prefix and $exec_prefix for the corresponding
-  dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX.  These are made
-  dnl distinct variables so they can be overridden if need be.  However,
-  dnl general consensus is that you shouldn't need this ability.
-
-  AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
-  AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
-
-  dnl At times (like when building shared libraries) you may want
-  dnl to know which OS platform Python thinks this is.
-
-  AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
-    [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`])
-  AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
-
-
-  dnl Set up 4 directories:
-
-  dnl pythondir -- where to install python scripts.  This is the
-  dnl   site-packages directory, not the python standard library
-  dnl   directory like in previous automake betas.  This behavior
-  dnl   is more consistent with lispdir.m4 for example.
-  dnl Query distutils for this directory.  distutils does not exist in
-  dnl Python 1.5, so we fall back to the hardcoded directory if it
-  dnl doesn't work.
-  AC_CACHE_CHECK([for $am_display_PYTHON script directory],
-    [am_cv_python_pythondir],
-    [if test "x$prefix" = xNONE
-     then
-       am_py_prefix=$ac_default_prefix
-     else
-       am_py_prefix=$prefix
-     fi
-     am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null ||
-     echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
-     case $am_cv_python_pythondir in
-     $am_py_prefix*)
-       am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
-       am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
-       ;;
-     *)
-       case $am_py_prefix in
-         /usr|/System*) ;;
-         *)
-	  am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
-	  ;;
-       esac
-       ;;
-     esac
-    ])
-  AC_SUBST([pythondir], [$am_cv_python_pythondir])
-
-  dnl pkgpythondir -- $PACKAGE directory under pythondir.  Was
-  dnl   PYTHON_SITE_PACKAGE in previous betas, but this naming is
-  dnl   more consistent with the rest of automake.
-
-  AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
-
-  dnl pyexecdir -- directory for installing python extension modules
-  dnl   (shared libraries)
-  dnl Query distutils for this directory.  distutils does not exist in
-  dnl Python 1.5, so we fall back to the hardcoded directory if it
-  dnl doesn't work.
-  AC_CACHE_CHECK([for $am_display_PYTHON extension module directory],
-    [am_cv_python_pyexecdir],
-    [if test "x$exec_prefix" = xNONE
-     then
-       am_py_exec_prefix=$am_py_prefix
-     else
-       am_py_exec_prefix=$exec_prefix
-     fi
-     am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null ||
-     echo "$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
-     case $am_cv_python_pyexecdir in
-     $am_py_exec_prefix*)
-       am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
-       am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
-       ;;
-     *)
-       case $am_py_exec_prefix in
-         /usr|/System*) ;;
-         *)
-	   am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
-	   ;;
-       esac
-       ;;
-     esac
-    ])
-  AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
-
-  dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
-
-  AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
-
-  dnl Run any user-specified action.
-  $2
-  fi
-
-])
-
-
-# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
-# ---------------------------------------------------------------------------
-# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION.
-# Run ACTION-IF-FALSE otherwise.
-# This test uses sys.hexversion instead of the string equivalent (first
-# word of sys.version), in order to cope with versions such as 2.2c1.
-# This supports Python 2.0 or higher. (2.0 was released on October 16, 2000).
-AC_DEFUN([AM_PYTHON_CHECK_VERSION],
- [prog="import sys
-# split strings by '.' and convert to numeric.  Append some zeros
-# because we need at least 4 digits for the hex conversion.
-# map returns an iterator in Python 3.0 and a list in 2.x
-minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]]
-minverhex = 0
-# xrange is not present in Python 3.0 and range returns an iterator
-for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]]
-sys.exit(sys.hexversion < minverhex)"
-  AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
-
-# Check to make sure that the build environment is sane.    -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 5
-
-# AM_SANITY_CHECK
-# ---------------
-AC_DEFUN([AM_SANITY_CHECK],
-[AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftest.file
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name.  Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
-  *[[\\\"\#\$\&\'\`$am_lf]]*)
-    AC_MSG_ERROR([unsafe absolute working directory name]);;
-esac
-case $srcdir in
-  *[[\\\"\#\$\&\'\`$am_lf\ \	]]*)
-    AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
-esac
-
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments.  Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
-   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-   if test "$[*]" = "X"; then
-      # -L didn't work.
-      set X `ls -t "$srcdir/configure" conftest.file`
-   fi
-   rm -f conftest.file
-   if test "$[*]" != "X $srcdir/configure conftest.file" \
-      && test "$[*]" != "X conftest.file $srcdir/configure"; then
-
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
-alias in your environment])
-   fi
-
-   test "$[2]" = conftest.file
-   )
-then
-   # Ok.
-   :
-else
-   AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-AC_MSG_RESULT(yes)])
-
-# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_STRIP
-# ---------------------
-# One issue with vendor `install' (even GNU) is that you can't
-# specify the program used to strip binaries.  This is especially
-# annoying in cross-compiling environments, where the build's strip
-# is unlikely to handle the host's binaries.
-# Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in `make install-strip', and initialize
-# STRIPPROG with the value of the STRIP variable (set by the user).
-AC_DEFUN([AM_PROG_INSTALL_STRIP],
-[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'.  However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
-if test "$cross_compiling" != no; then
-  AC_CHECK_TOOL([STRIP], [strip], :)
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-AC_SUBST([INSTALL_STRIP_PROGRAM])])
-
-# Copyright (C) 2006, 2008  Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 2
-
-# _AM_SUBST_NOTMAKE(VARIABLE)
-# ---------------------------
-# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
-# This macro is traced by Automake.
-AC_DEFUN([_AM_SUBST_NOTMAKE])
-
-# AM_SUBST_NOTMAKE(VARIABLE)
-# ---------------------------
-# Public sister of _AM_SUBST_NOTMAKE.
-AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
-
-# Check how to create a tarball.                            -*- Autoconf -*-
-
-# Copyright (C) 2004, 2005  Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 2
-
-# _AM_PROG_TAR(FORMAT)
-# --------------------
-# Check how to create a tarball in format FORMAT.
-# FORMAT should be one of `v7', `ustar', or `pax'.
-#
-# Substitute a variable $(am__tar) that is a command
-# writing to stdout a FORMAT-tarball containing the directory
-# $tardir.
-#     tardir=directory && $(am__tar) > result.tar
-#
-# Substitute a variable $(am__untar) that extract such
-# a tarball read from stdin.
-#     $(am__untar) < result.tar
-AC_DEFUN([_AM_PROG_TAR],
-[# Always define AMTAR for backward compatibility.
-AM_MISSING_PROG([AMTAR], [tar])
-m4_if([$1], [v7],
-     [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
-     [m4_case([$1], [ustar],, [pax],,
-              [m4_fatal([Unknown tar format])])
-AC_MSG_CHECKING([how to create a $1 tar archive])
-# Loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-_am_tools=${am_cv_prog_tar_$1-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of `-'.
-for _am_tool in $_am_tools
-do
-  case $_am_tool in
-  gnutar)
-    for _am_tar in tar gnutar gtar;
-    do
-      AM_RUN_LOG([$_am_tar --version]) && break
-    done
-    am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
-    am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
-    am__untar="$_am_tar -xf -"
-    ;;
-  plaintar)
-    # Must skip GNU tar: if it does not support --format= it doesn't create
-    # ustar tarball either.
-    (tar --version) >/dev/null 2>&1 && continue
-    am__tar='tar chf - "$$tardir"'
-    am__tar_='tar chf - "$tardir"'
-    am__untar='tar xf -'
-    ;;
-  pax)
-    am__tar='pax -L -x $1 -w "$$tardir"'
-    am__tar_='pax -L -x $1 -w "$tardir"'
-    am__untar='pax -r'
-    ;;
-  cpio)
-    am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
-    am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
-    am__untar='cpio -i -H $1 -d'
-    ;;
-  none)
-    am__tar=false
-    am__tar_=false
-    am__untar=false
-    ;;
-  esac
-
-  # If the value was cached, stop now.  We just wanted to have am__tar
-  # and am__untar set.
-  test -n "${am_cv_prog_tar_$1}" && break
-
-  # tar/untar a dummy directory, and stop if the command works
-  rm -rf conftest.dir
-  mkdir conftest.dir
-  echo GrepMe > conftest.dir/file
-  AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
-  rm -rf conftest.dir
-  if test -s conftest.tar; then
-    AM_RUN_LOG([$am__untar <conftest.tar])
-    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
-  fi
-done
-rm -rf conftest.dir
-
-AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
-AC_MSG_RESULT([$am_cv_prog_tar_$1])])
-AC_SUBST([am__tar])
-AC_SUBST([am__untar])
-]) # _AM_PROG_TAR
-
-m4_include([config/autotroll.m4])
diff --git a/.pc/debian-changes-1.11-1/configure b/.pc/debian-changes-1.11-1/configure
deleted file mode 100755
index 8245fcd..0000000
--- a/.pc/debian-changes-1.11-1/configure
+++ /dev/null
@@ -1,19660 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.67 for mathgl 1.10.
-#
-# Report bugs to <mathgl.abalakin at gmail.com>.
-#
-#
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-# Foundation, Inc.
-#
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  PATH_SEPARATOR=:
-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
-    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
-      PATH_SEPARATOR=';'
-  }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-case $0 in #((
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-  done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test "x$CONFIG_SHELL" = x; then
-  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '\${1+\"\$@\"}'='\"\$@\"'
-  setopt NO_GLOB_SUBST
-else
-  case \`(set -o) 2>/dev/null\` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-"
-  as_required="as_fn_return () { (exit \$1); }
-as_fn_success () { as_fn_return 0; }
-as_fn_failure () { as_fn_return 1; }
-as_fn_ret_success () { return 0; }
-as_fn_ret_failure () { return 1; }
-
-exitcode=0
-as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
-
-else
-  exitcode=1; echo positional parameters were not saved.
-fi
-test x\$exitcode = x0 || exit 1"
-  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
-  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
-  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
-  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1"
-  if (eval "$as_required") 2>/dev/null; then :
-  as_have_required=yes
-else
-  as_have_required=no
-fi
-  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
-
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  as_found=:
-  case $as_dir in #(
-	 /*)
-	   for as_base in sh bash ksh sh5; do
-	     # Try only shells that exist, to save several forks.
-	     as_shell=$as_dir/$as_base
-	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
-  CONFIG_SHELL=$as_shell as_have_required=yes
-		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
-  break 2
-fi
-fi
-	   done;;
-       esac
-  as_found=false
-done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
-	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
-  CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
-IFS=$as_save_IFS
-
-
-      if test "x$CONFIG_SHELL" != x; then :
-  # We cannot yet assume a decent shell, so we have to provide a
-	# neutralization value for shells without unset; and this also
-	# works around shells that cannot unset nonexistent variables.
-	BASH_ENV=/dev/null
-	ENV=/dev/null
-	(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-	export CONFIG_SHELL
-	exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
-fi
-
-    if test x$as_have_required = xno; then :
-  $as_echo "$0: This script requires a shell more modern than all"
-  $as_echo "$0: the shells that I found on your system."
-  if test x${ZSH_VERSION+set} = xset ; then
-    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
-    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
-  else
-    $as_echo "$0: Please tell bug-autoconf at gnu.org and
-$0: mathgl.abalakin at gmail.com about your system, including
-$0: any error possibly output before this message. Then
-$0: install a modern shell, or manually run the script
-$0: under such a shell if you do have one."
-  fi
-  exit 1
-fi
-fi
-fi
-SHELL=${CONFIG_SHELL-/bin/sh}
-export SHELL
-# Unset more variables known to interfere with behavior of common tools.
-CLICOLOR_FORCE= GREP_OPTIONS=
-unset CLICOLOR_FORCE GREP_OPTIONS
-
-## --------------------- ##
-## M4sh Shell Functions. ##
-## --------------------- ##
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
-  { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
-  return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
-  set +e
-  as_fn_set_status $1
-  exit $1
-} # as_fn_exit
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || eval $as_mkdir_p || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
-  eval 'as_fn_append ()
-  {
-    eval $1+=\$2
-  }'
-else
-  as_fn_append ()
-  {
-    eval $1=\$$1\$2
-  }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
-  eval 'as_fn_arith ()
-  {
-    as_val=$(( $* ))
-  }'
-else
-  as_fn_arith ()
-  {
-    as_val=`expr "$@" || test $? -eq 1`
-  }
-fi # as_fn_arith
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
-  as_status=$1; test $as_status -eq 0 && as_status=1
-  if test "$4"; then
-    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
-  fi
-  $as_echo "$as_me: error: $2" >&2
-  as_fn_exit $as_status
-} # as_fn_error
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
-  as_lineno_1=$LINENO as_lineno_1a=$LINENO
-  as_lineno_2=$LINENO as_lineno_2a=$LINENO
-  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
-  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
-  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
-  case `echo 'xy\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  xy)  ECHO_C='\c';;
-  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
-       ECHO_T='	';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
-  if ln -s conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s='ln -s'
-    # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
-  elif ln conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s=ln
-  else
-    as_ln_s='cp -p'
-  fi
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p='mkdir -p "$as_dir"'
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-	test -d "$1/.";
-      else
-	case $1 in #(
-	-*)set "./$1";;
-	esac;
-	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
-	???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-case X$lt_ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','`
-  ;;
-esac
-
-ECHO=${lt_ECHO-echo}
-if test "X$1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X$1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
-  # Yippee, $ECHO works!
-  :
-else
-  # Restart under the correct shell.
-  exec $SHELL "$0" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<_LT_EOF
-$*
-_LT_EOF
-  exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test -z "$lt_ECHO"; then
-  if test "X${echo_test_string+set}" != Xset; then
-    # find a string as large as possible, as long as the shell can cope with it
-    for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
-      # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-      if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
-	 { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
-      then
-        break
-      fi
-    done
-  fi
-
-  if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-     echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-     test "X$echo_testing_string" = "X$echo_test_string"; then
-    :
-  else
-    # The Solaris, AIX, and Digital Unix default echo programs unquote
-    # backslashes.  This makes it impossible to quote backslashes using
-    #   echo "$something" | sed 's/\\/\\\\/g'
-    #
-    # So, first we look for a working echo in the user's PATH.
-
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for dir in $PATH /usr/ucb; do
-      IFS="$lt_save_ifs"
-      if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-         test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        ECHO="$dir/echo"
-        break
-      fi
-    done
-    IFS="$lt_save_ifs"
-
-    if test "X$ECHO" = Xecho; then
-      # We didn't find a better echo, so look for alternatives.
-      if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        # This shell has a builtin print -r that does the trick.
-        ECHO='print -r'
-      elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
-	   test "X$CONFIG_SHELL" != X/bin/ksh; then
-        # If we have ksh, try running configure again with it.
-        ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-        export ORIGINAL_CONFIG_SHELL
-        CONFIG_SHELL=/bin/ksh
-        export CONFIG_SHELL
-        exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
-      else
-        # Try using printf.
-        ECHO='printf %s\n'
-        if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-	   echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-	   test "X$echo_testing_string" = "X$echo_test_string"; then
-	  # Cool, printf works
-	  :
-        elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
-	     test "X$echo_testing_string" = 'X\t' &&
-	     echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	     test "X$echo_testing_string" = "X$echo_test_string"; then
-	  CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-	  export CONFIG_SHELL
-	  SHELL="$CONFIG_SHELL"
-	  export SHELL
-	  ECHO="$CONFIG_SHELL $0 --fallback-echo"
-        elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
-	     test "X$echo_testing_string" = 'X\t' &&
-	     echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	     test "X$echo_testing_string" = "X$echo_test_string"; then
-	  ECHO="$CONFIG_SHELL $0 --fallback-echo"
-        else
-	  # maybe with a smaller string...
-	  prev=:
-
-	  for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
-	    if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
-	    then
-	      break
-	    fi
-	    prev="$cmd"
-	  done
-
-	  if test "$prev" != 'sed 50q "$0"'; then
-	    echo_test_string=`eval $prev`
-	    export echo_test_string
-	    exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
-	  else
-	    # Oops.  We lost completely, so just stick with echo.
-	    ECHO=echo
-	  fi
-        fi
-      fi
-    fi
-  fi
-fi
-
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-lt_ECHO=$ECHO
-if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
-   lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
-fi
-
-
-
-as_awk_strverscmp='
-  # Use only awk features that work with 7th edition Unix awk (1978).
-  # My, what an old awk you have, Mr. Solaris!
-  END {
-    while (length(v1) && length(v2)) {
-      # Set d1 to be the next thing to compare from v1, and likewise for d2.
-      # Normally this is a single character, but if v1 and v2 contain digits,
-      # compare them as integers and fractions as strverscmp does.
-      if (v1 ~ /^[0-9]/ && v2 ~ /^[0-9]/) {
-	# Split v1 and v2 into their leading digit string components d1 and d2,
-	# and advance v1 and v2 past the leading digit strings.
-	for (len1 = 1; substr(v1, len1 + 1) ~ /^[0-9]/; len1++) continue
-	for (len2 = 1; substr(v2, len2 + 1) ~ /^[0-9]/; len2++) continue
-	d1 = substr(v1, 1, len1); v1 = substr(v1, len1 + 1)
-	d2 = substr(v2, 1, len2); v2 = substr(v2, len2 + 1)
-	if (d1 ~ /^0/) {
-	  if (d2 ~ /^0/) {
-	    # Compare two fractions.
-	    while (d1 ~ /^0/ && d2 ~ /^0/) {
-	      d1 = substr(d1, 2); len1--
-	      d2 = substr(d2, 2); len2--
-	    }
-	    if (len1 != len2 && ! (len1 && len2 && substr(d1, 1, 1) == substr(d2, 1, 1))) {
-	      # The two components differ in length, and the common prefix
-	      # contains only leading zeros.  Consider the longer to be less.
-	      d1 = -len1
-	      d2 = -len2
-	    } else {
-	      # Otherwise, compare as strings.
-	      d1 = "x" d1
-	      d2 = "x" d2
-	    }
-	  } else {
-	    # A fraction is less than an integer.
-	    exit 1
-	  }
-	} else {
-	  if (d2 ~ /^0/) {
-	    # An integer is greater than a fraction.
-	    exit 2
-	  } else {
-	    # Compare two integers.
-	    d1 += 0
-	    d2 += 0
-	  }
-	}
-      } else {
-	# The normal case, without worrying about digits.
-	d1 = substr(v1, 1, 1); v1 = substr(v1, 2)
-	d2 = substr(v2, 1, 1); v2 = substr(v2, 2)
-      }
-      if (d1 < d2) exit 1
-      if (d1 > d2) exit 2
-    }
-    # Beware Solaris /usr/xgp4/bin/awk (at least through Solaris 10),
-    # which mishandles some comparisons of empty strings to integers.
-    if (length(v2)) exit 1
-    if (length(v1)) exit 2
-  }
-'
-
-test -n "$DJDIR" || exec 7<&0 </dev/null
-exec 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIBOBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-
-# Identity of this package.
-PACKAGE_NAME='mathgl'
-PACKAGE_TARNAME='mathgl'
-PACKAGE_VERSION='1.10'
-PACKAGE_STRING='mathgl 1.10'
-PACKAGE_BUGREPORT='mathgl.abalakin at gmail.com'
-PACKAGE_URL=''
-
-ac_unique_file="mgl"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-#  include <stdlib.h>
-# endif
-#endif
-#ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-#  include <memory.h>
-# endif
-# include <string.h>
-#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_subst_vars='am__EXEEXT_FALSE
-am__EXEEXT_TRUE
-LTLIBOBJS
-LIBOBJS
-AM_CXXFLAGS
-USE_DOCS_FALSE
-USE_DOCS_TRUE
-USE_TESTIO_FALSE
-USE_TESTIO_TRUE
-USE_OCTAVE_FALSE
-USE_OCTAVE_TRUE
-OCTAVE_INCFLAGS
-OCTAVE_ARCH
-OCTAVE
-USE_PYTHON_FALSE
-USE_PYTHON_TRUE
-pkgpyexecdir
-pyexecdir
-pkgpythondir
-pythondir
-PYTHON_PLATFORM
-PYTHON_EXEC_PREFIX
-PYTHON_PREFIX
-PYTHON_VERSION
-PYTHON
-HAVE_SWIG
-PYTHON_HEADERS
-USE_QT_FALSE
-USE_QT_TRUE
-QT_VERSION
-QT_LIBS
-QT_LDFLAGS
-QT_LFLAGS
-QT_CPPFLAGS
-QT_INCPATH
-QT_CXXFLAGS
-QT_CFLAGS
-QT_DEFINES
-QT_VERSION_MAJOR
-TMPDIR
-QT_PATH
-RCC
-UIC
-MOC
-QMAKE
-USE_WX_FALSE
-USE_WX_TRUE
-WX_LIBS
-WX_FLAGS
-USE_FLTK_FALSE
-USE_FLTK_TRUE
-FLTK_LIBS
-FLTK_FLAGS
-USE_JPEG_FALSE
-USE_JPEG_TRUE
-JPEG_LIBS
-JPEG_FLAGS
-PNG_LIBS
-USE_GIF_FALSE
-USE_GIF_TRUE
-GIF_LIBS
-GIF_FLAGS
-USE_HDF4_FALSE
-USE_HDF4_TRUE
-HDF4_LIBS
-HDF4_FLAGS
-USE_HDF5_FALSE
-USE_HDF5_TRUE
-HDF5_LIBS
-HDF5_FLAGS
-USE_GLUT_FALSE
-USE_GLUT_TRUE
-GLUT_FLAGS
-GLUT_LIBS
-GL_LIBS
-USE_GSL_FALSE
-USE_GSL_TRUE
-GSL_LIBS
-GSL_FLAGS
-USE_PTHREAD_FALSE
-USE_PTHREAD_TRUE
-PTHREAD_LIBS
-PTHREAD_FLAGS
-CXXCPP
-CPP
-OTOOL64
-OTOOL
-LIPO
-NMEDIT
-DSYMUTIL
-lt_ECHO
-RANLIB
-AR
-LN_S
-NM
-ac_ct_DUMPBIN
-DUMPBIN
-LD
-FGREP
-EGREP
-GREP
-SED
-LIBTOOL
-OBJDUMP
-DLLTOOL
-AS
-host_os
-host_vendor
-host_cpu
-host
-build_os
-build_vendor
-build_cpu
-build
-am__fastdepCXX_FALSE
-am__fastdepCXX_TRUE
-CXXDEPMODE
-ac_ct_CXX
-CXXFLAGS
-CXX
-am__fastdepCC_FALSE
-am__fastdepCC_TRUE
-CCDEPMODE
-AMDEPBACKSLASH
-AMDEP_FALSE
-AMDEP_TRUE
-am__quote
-am__include
-DEPDIR
-OBJEXT
-EXEEXT
-ac_ct_CC
-CPPFLAGS
-LDFLAGS
-CFLAGS
-CC
-am__untar
-am__tar
-AMTAR
-am__leading_dot
-SET_MAKE
-AWK
-mkdir_p
-MKDIR_P
-INSTALL_STRIP_PROGRAM
-STRIP
-install_sh
-MAKEINFO
-AUTOHEADER
-AUTOMAKE
-AUTOCONF
-ACLOCAL
-VERSION
-PACKAGE
-CYGPATH_W
-am__isrc
-INSTALL_DATA
-INSTALL_SCRIPT
-INSTALL_PROGRAM
-MGL_AGE
-MGL_REVISION
-MGL_CURRENT
-MGL_RELEASE
-target_alias
-host_alias
-build_alias
-LIBS
-ECHO_T
-ECHO_N
-ECHO_C
-DEFS
-mandir
-localedir
-libdir
-psdir
-pdfdir
-dvidir
-htmldir
-infodir
-docdir
-oldincludedir
-includedir
-localstatedir
-sharedstatedir
-sysconfdir
-datadir
-datarootdir
-libexecdir
-sbindir
-bindir
-program_transform_name
-prefix
-exec_prefix
-PACKAGE_URL
-PACKAGE_BUGREPORT
-PACKAGE_STRING
-PACKAGE_VERSION
-PACKAGE_TARNAME
-PACKAGE_NAME
-PATH_SEPARATOR
-SHELL'
-ac_subst_files=''
-ac_user_opts='
-enable_option_checking
-enable_dependency_tracking
-enable_shared
-enable_static
-with_pic
-enable_fast_install
-with_gnu_ld
-enable_libtool_lock
-enable_double
-enable_all
-enable_langall
-enable_pthread
-enable_gsl
-enable_glut
-enable_hdf5
-enable_hdf5_18
-enable_hdf4
-enable_gif
-enable_jpeg
-enable_fltk
-enable_wx
-enable_qt
-with_qt
-enable_python
-enable_octave
-enable_testio
-enable_docs
-'
-      ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-CXX
-CXXFLAGS
-CCC
-CPP
-CXXCPP
-TMPDIR'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-ac_unrecognized_opts=
-ac_unrecognized_sep=
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
-  # If the previous option needs an argument, assign it.
-  if test -n "$ac_prev"; then
-    eval $ac_prev=\$ac_option
-    ac_prev=
-    continue
-  fi
-
-  case $ac_option in
-  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
-  *=)   ac_optarg= ;;
-  *)    ac_optarg=yes ;;
-  esac
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case $ac_dashdash$ac_option in
-  --)
-    ac_dashdash=yes ;;
-
-  -bindir | --bindir | --bindi | --bind | --bin | --bi)
-    ac_prev=bindir ;;
-  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-    bindir=$ac_optarg ;;
-
-  -build | --build | --buil | --bui | --bu)
-    ac_prev=build_alias ;;
-  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-    build_alias=$ac_optarg ;;
-
-  -cache-file | --cache-file | --cache-fil | --cache-fi \
-  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
-    ac_prev=cache_file ;;
-  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
-  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
-    cache_file=$ac_optarg ;;
-
-  --config-cache | -C)
-    cache_file=config.cache ;;
-
-  -datadir | --datadir | --datadi | --datad)
-    ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=*)
-    datadir=$ac_optarg ;;
-
-  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
-  | --dataroo | --dataro | --datar)
-    ac_prev=datarootdir ;;
-  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
-  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
-    datarootdir=$ac_optarg ;;
-
-  -disable-* | --disable-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"enable_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval enable_$ac_useropt=no ;;
-
-  -docdir | --docdir | --docdi | --doc | --do)
-    ac_prev=docdir ;;
-  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
-    docdir=$ac_optarg ;;
-
-  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
-    ac_prev=dvidir ;;
-  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
-    dvidir=$ac_optarg ;;
-
-  -enable-* | --enable-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"enable_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval enable_$ac_useropt=\$ac_optarg ;;
-
-  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
-  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
-  | --exec | --exe | --ex)
-    ac_prev=exec_prefix ;;
-  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
-  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
-  | --exec=* | --exe=* | --ex=*)
-    exec_prefix=$ac_optarg ;;
-
-  -gas | --gas | --ga | --g)
-    # Obsolete; use --with-gas.
-    with_gas=yes ;;
-
-  -help | --help | --hel | --he | -h)
-    ac_init_help=long ;;
-  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
-    ac_init_help=recursive ;;
-  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
-    ac_init_help=short ;;
-
-  -host | --host | --hos | --ho)
-    ac_prev=host_alias ;;
-  -host=* | --host=* | --hos=* | --ho=*)
-    host_alias=$ac_optarg ;;
-
-  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
-    ac_prev=htmldir ;;
-  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
-  | --ht=*)
-    htmldir=$ac_optarg ;;
-
-  -includedir | --includedir | --includedi | --included | --include \
-  | --includ | --inclu | --incl | --inc)
-    ac_prev=includedir ;;
-  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
-  | --includ=* | --inclu=* | --incl=* | --inc=*)
-    includedir=$ac_optarg ;;
-
-  -infodir | --infodir | --infodi | --infod | --info | --inf)
-    ac_prev=infodir ;;
-  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-    infodir=$ac_optarg ;;
-
-  -libdir | --libdir | --libdi | --libd)
-    ac_prev=libdir ;;
-  -libdir=* | --libdir=* | --libdi=* | --libd=*)
-    libdir=$ac_optarg ;;
-
-  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
-  | --libexe | --libex | --libe)
-    ac_prev=libexecdir ;;
-  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
-  | --libexe=* | --libex=* | --libe=*)
-    libexecdir=$ac_optarg ;;
-
-  -localedir | --localedir | --localedi | --localed | --locale)
-    ac_prev=localedir ;;
-  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
-    localedir=$ac_optarg ;;
-
-  -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst | --locals)
-    ac_prev=localstatedir ;;
-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
-    localstatedir=$ac_optarg ;;
-
-  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
-    ac_prev=mandir ;;
-  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-    mandir=$ac_optarg ;;
-
-  -nfp | --nfp | --nf)
-    # Obsolete; use --without-fp.
-    with_fp=no ;;
-
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c | -n)
-    no_create=yes ;;
-
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
-    no_recursion=yes ;;
-
-  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
-  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
-  | --oldin | --oldi | --old | --ol | --o)
-    ac_prev=oldincludedir ;;
-  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
-  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
-  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-    oldincludedir=$ac_optarg ;;
-
-  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
-    ac_prev=prefix ;;
-  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-    prefix=$ac_optarg ;;
-
-  -program-prefix | --program-prefix | --program-prefi | --program-pref \
-  | --program-pre | --program-pr | --program-p)
-    ac_prev=program_prefix ;;
-  -program-prefix=* | --program-prefix=* | --program-prefi=* \
-  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-    program_prefix=$ac_optarg ;;
-
-  -program-suffix | --program-suffix | --program-suffi | --program-suff \
-  | --program-suf | --program-su | --program-s)
-    ac_prev=program_suffix ;;
-  -program-suffix=* | --program-suffix=* | --program-suffi=* \
-  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-    program_suffix=$ac_optarg ;;
-
-  -program-transform-name | --program-transform-name \
-  | --program-transform-nam | --program-transform-na \
-  | --program-transform-n | --program-transform- \
-  | --program-transform | --program-transfor \
-  | --program-transfo | --program-transf \
-  | --program-trans | --program-tran \
-  | --progr-tra | --program-tr | --program-t)
-    ac_prev=program_transform_name ;;
-  -program-transform-name=* | --program-transform-name=* \
-  | --program-transform-nam=* | --program-transform-na=* \
-  | --program-transform-n=* | --program-transform-=* \
-  | --program-transform=* | --program-transfor=* \
-  | --program-transfo=* | --program-transf=* \
-  | --program-trans=* | --program-tran=* \
-  | --progr-tra=* | --program-tr=* | --program-t=*)
-    program_transform_name=$ac_optarg ;;
-
-  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
-    ac_prev=pdfdir ;;
-  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
-    pdfdir=$ac_optarg ;;
-
-  -psdir | --psdir | --psdi | --psd | --ps)
-    ac_prev=psdir ;;
-  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
-    psdir=$ac_optarg ;;
-
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil)
-    silent=yes ;;
-
-  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
-    ac_prev=sbindir ;;
-  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
-  | --sbi=* | --sb=*)
-    sbindir=$ac_optarg ;;
-
-  -sharedstatedir | --sharedstatedir | --sharedstatedi \
-  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
-  | --sharedst | --shareds | --shared | --share | --shar \
-  | --sha | --sh)
-    ac_prev=sharedstatedir ;;
-  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
-  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
-  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
-  | --sha=* | --sh=*)
-    sharedstatedir=$ac_optarg ;;
-
-  -site | --site | --sit)
-    ac_prev=site ;;
-  -site=* | --site=* | --sit=*)
-    site=$ac_optarg ;;
-
-  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
-    ac_prev=srcdir ;;
-  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-    srcdir=$ac_optarg ;;
-
-  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
-  | --syscon | --sysco | --sysc | --sys | --sy)
-    ac_prev=sysconfdir ;;
-  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
-  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-    sysconfdir=$ac_optarg ;;
-
-  -target | --target | --targe | --targ | --tar | --ta | --t)
-    ac_prev=target_alias ;;
-  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-    target_alias=$ac_optarg ;;
-
-  -v | -verbose | --verbose | --verbos | --verbo | --verb)
-    verbose=yes ;;
-
-  -version | --version | --versio | --versi | --vers | -V)
-    ac_init_version=: ;;
-
-  -with-* | --with-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"with_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval with_$ac_useropt=\$ac_optarg ;;
-
-  -without-* | --without-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"with_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval with_$ac_useropt=no ;;
-
-  --x)
-    # Obsolete; use --with-x.
-    with_x=yes ;;
-
-  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
-  | --x-incl | --x-inc | --x-in | --x-i)
-    ac_prev=x_includes ;;
-  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
-  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
-    x_includes=$ac_optarg ;;
-
-  -x-libraries | --x-libraries | --x-librarie | --x-librari \
-  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
-    ac_prev=x_libraries ;;
-  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
-  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-    x_libraries=$ac_optarg ;;
-
-  -*) as_fn_error $? "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information"
-    ;;
-
-  *=*)
-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-    # Reject names that are not valid shell variable names.
-    case $ac_envvar in #(
-      '' | [0-9]* | *[!_$as_cr_alnum]* )
-      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
-    esac
-    eval $ac_envvar=\$ac_optarg
-    export $ac_envvar ;;
-
-  *)
-    # FIXME: should be removed in autoconf 3.0.
-    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
-    ;;
-
-  esac
-done
-
-if test -n "$ac_prev"; then
-  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  as_fn_error $? "missing argument to $ac_option"
-fi
-
-if test -n "$ac_unrecognized_opts"; then
-  case $enable_option_checking in
-    no) ;;
-    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
-    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
-  esac
-fi
-
-# Check all directory arguments for consistency.
-for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
-		datadir sysconfdir sharedstatedir localstatedir includedir \
-		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir
-do
-  eval ac_val=\$$ac_var
-  # Remove trailing slashes.
-  case $ac_val in
-    */ )
-      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
-      eval $ac_var=\$ac_val;;
-  esac
-  # Be sure to have absolute directory names.
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* )  continue;;
-    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
-  esac
-  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
-  if test "x$build_alias" = x; then
-    cross_compiling=maybe
-    $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
-    If a cross compiler is detected then cross compile mode will be used" >&2
-  elif test "x$build_alias" != "x$host_alias"; then
-    cross_compiling=yes
-  fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
-  as_fn_error $? "working directory cannot be determined"
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-  as_fn_error $? "pwd does not report name of working directory"
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
-  ac_srcdir_defaulted=yes
-  # Try the directory containing this script, then the parent directory.
-  ac_confdir=`$as_dirname -- "$as_myself" ||
-$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_myself" : 'X\(//\)[^/]' \| \
-	 X"$as_myself" : 'X\(//\)$' \| \
-	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-  srcdir=$ac_confdir
-  if test ! -r "$srcdir/$ac_unique_file"; then
-    srcdir=..
-  fi
-else
-  ac_srcdir_defaulted=no
-fi
-if test ! -r "$srcdir/$ac_unique_file"; then
-  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
-  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
-	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
-	pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
-  srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
-  eval ac_env_${ac_var}_set=\${${ac_var}+set}
-  eval ac_env_${ac_var}_value=\$${ac_var}
-  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
-  eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
-  # 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.
-  cat <<_ACEOF
-\`configure' configures mathgl 1.10 to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE.  See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
-  -h, --help              display this help and exit
-      --help=short        display options specific to this package
-      --help=recursive    display the short help of all the included packages
-  -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking ...' messages
-      --cache-file=FILE   cache test results in FILE [disabled]
-  -C, --config-cache      alias for \`--cache-file=config.cache'
-  -n, --no-create         do not create output files
-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
-
-Installation directories:
-  --prefix=PREFIX         install architecture-independent files in PREFIX
-                          [$ac_default_prefix]
-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-                          [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
-  --bindir=DIR            user executables [EPREFIX/bin]
-  --sbindir=DIR           system admin executables [EPREFIX/sbin]
-  --libexecdir=DIR        program executables [EPREFIX/libexec]
-  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
-  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
-  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
-  --libdir=DIR            object code libraries [EPREFIX/lib]
-  --includedir=DIR        C header files [PREFIX/include]
-  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
-  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
-  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
-  --infodir=DIR           info documentation [DATAROOTDIR/info]
-  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
-  --mandir=DIR            man documentation [DATAROOTDIR/man]
-  --docdir=DIR            documentation root [DATAROOTDIR/doc/mathgl]
-  --htmldir=DIR           html documentation [DOCDIR]
-  --dvidir=DIR            dvi documentation [DOCDIR]
-  --pdfdir=DIR            pdf documentation [DOCDIR]
-  --psdir=DIR             ps documentation [DOCDIR]
-_ACEOF
-
-  cat <<\_ACEOF
-
-Program names:
-  --program-prefix=PREFIX            prepend PREFIX to installed program names
-  --program-suffix=SUFFIX            append SUFFIX to installed program names
-  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
-
-System types:
-  --build=BUILD     configure for building on BUILD [guessed]
-  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-  case $ac_init_help in
-     short | recursive ) echo "Configuration of mathgl 1.10:";;
-   esac
-  cat <<\_ACEOF
-
-Optional Features:
-  --disable-option-checking  ignore unrecognized --enable/--with options
-  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --disable-dependency-tracking  speeds up one-time build
-  --enable-dependency-tracking   do not reject slow dependency extractors
-  --enable-shared[=PKGS]  build shared libraries [default=yes]
-  --enable-static[=PKGS]  build static libraries [default=yes]
-  --enable-fast-install[=PKGS]
-                          optimize for fast installation [default=yes]
-  --disable-libtool-lock  avoid locking (might break parallel builds)
-  --enable-double    Turn on double precision in MathGL library
-  --enable-all    Turn on all features
-  --enable-langall    Turn on all language interfaces
-  --enable-pthread    Turn on pthread support in MathGL library
-  --enable-gsl    Turn on gsl functions
-  --enable-glut    Turn on glut
-  --enable-hdf5    Turn on hdf5
-  --enable-hdf5_18    Turn on hdf5 version 1.8
-  --enable-hdf4    Turn on hdf4
-  --enable-gif    Turn on gif
-  --enable-jpeg    Turn on jpeg
-  --enable-fltk    Turn on fltk
-  --enable-wx    Turn on wxWidget
-  --enable-qt    Turn on Qt
-  --enable-python    Turn on interface to python
-  --enable-octave    Turn on interface to octave
-  --enable-testio    Turn on testio
-  --enable-docs    Turn on documentation building
-
-Optional Packages:
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-pic              try to use only PIC/non-PIC objects [default=use
-                          both]
-  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
-  --with-qt               Path to Qt [Look in PATH and /usr/local/Trolltech]
-
-Some influential environment variables:
-  CC          C compiler command
-  CFLAGS      C compiler flags
-  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
-              nonstandard directory <lib dir>
-  LIBS        libraries to pass to the linker, e.g. -l<library>
-  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
-              you have headers in a nonstandard directory <include dir>
-  CXX         C++ compiler command
-  CXXFLAGS    C++ compiler flags
-  CPP         C preprocessor
-  CXXCPP      C++ preprocessor
-  TMPDIR      A temporary directory with write access [/tmp]
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to <mathgl.abalakin at gmail.com>.
-_ACEOF
-ac_status=$?
-fi
-
-if test "$ac_init_help" = "recursive"; then
-  # If there are subdirs, report their specific --help.
-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d "$ac_dir" ||
-      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
-      continue
-    ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
-  case $ac_top_builddir_sub in
-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-  esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
-  .)  # We are building in place.
-    ac_srcdir=.
-    ac_top_srcdir=$ac_top_builddir_sub
-    ac_abs_top_srcdir=$ac_pwd ;;
-  [\\/]* | ?:[\\/]* )  # Absolute name.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir
-    ac_abs_top_srcdir=$srcdir ;;
-  *) # Relative name.
-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_build_prefix$srcdir
-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-    cd "$ac_dir" || { ac_status=$?; continue; }
-    # Check for guested configure.
-    if test -f "$ac_srcdir/configure.gnu"; then
-      echo &&
-      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
-    elif test -f "$ac_srcdir/configure"; then
-      echo &&
-      $SHELL "$ac_srcdir/configure" --help=recursive
-    else
-      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-    fi || ac_status=$?
-    cd "$ac_pwd" || { ac_status=$?; break; }
-  done
-fi
-
-test -n "$ac_init_help" && exit $ac_status
-if $ac_init_version; then
-  cat <<\_ACEOF
-mathgl configure 1.10
-generated by GNU Autoconf 2.67
-
-Copyright (C) 2010 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
-  exit
-fi
-
-## ------------------------ ##
-## Autoconf initialization. ##
-## ------------------------ ##
-
-# ac_fn_c_try_compile LINENO
-# --------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext
-  if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_compile
-
-# ac_fn_cxx_try_compile LINENO
-# ----------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext
-  if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-  as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_compile
-
-# ac_fn_c_try_link LINENO
-# -----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_link ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext conftest$ac_exeext
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
-  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
-  # interfere with the next link command; also delete a directory that is
-  # left behind by Apple's compiler.  We do this before executing the actions.
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_link
-
-# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists and can be compiled using the include files in
-# INCLUDES, setting the cache variable VAR accordingly.
-ac_fn_c_check_header_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$3=yes"
-else
-  eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-
-} # ac_fn_c_check_header_compile
-
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } > conftest.i && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-    ac_retval=1
-fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_cpp
-
-# ac_fn_c_try_run LINENO
-# ----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_c_try_run ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-       $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_retval=$ac_status
-fi
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_run
-
-# ac_fn_c_check_func LINENO FUNC VAR
-# ----------------------------------
-# Tests whether FUNC exists, setting the cache variable VAR accordingly
-ac_fn_c_check_func ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $2 innocuous_$2
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $2 (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $2
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $2 ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$2 || defined __stub___$2
-choke me
-#endif
-
-int
-main ()
-{
-return $2 ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$3=yes"
-else
-  eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-
-} # ac_fn_c_check_func
-
-# ac_fn_cxx_try_cpp LINENO
-# ------------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_cpp ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } > conftest.i && {
-	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-    ac_retval=1
-fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-  as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_cpp
-
-# ac_fn_cxx_try_link LINENO
-# -------------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_link ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext conftest$ac_exeext
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
-  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
-  # interfere with the next link command; also delete a directory that is
-  # left behind by Apple's compiler.  We do this before executing the actions.
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-  as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_link
-
-# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists, giving a warning if it cannot be compiled using
-# the include files in INCLUDES and setting the cache variable VAR
-# accordingly.
-ac_fn_c_check_header_mongrel ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if eval "test \"\${$3+set}\"" = set; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
-  $as_echo_n "(cached) " >&6
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
-$as_echo_n "checking $2 usability... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_header_compiler=yes
-else
-  ac_header_compiler=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
-$as_echo_n "checking $2 presence... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <$2>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  ac_header_preproc=yes
-else
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
-  yes:no: )
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( $as_echo "## ---------------------------------------- ##
-## Report this to mathgl.abalakin at gmail.com ##
-## ---------------------------------------- ##"
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  eval "$3=\$ac_header_compiler"
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-
-} # ac_fn_c_check_header_mongrel
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by mathgl $as_me 1.10, which was
-generated by GNU Autoconf 2.67.  Invocation command line was
-
-  $ $0 $@
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
-
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    $as_echo "PATH: $as_dir"
-  done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
-  for ac_arg
-  do
-    case $ac_arg in
-    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-    | -silent | --silent | --silen | --sile | --sil)
-      continue ;;
-    *\'*)
-      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    case $ac_pass in
-    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
-    2)
-      as_fn_append ac_configure_args1 " '$ac_arg'"
-      if test $ac_must_keep_next = true; then
-	ac_must_keep_next=false # Got value, back to normal.
-      else
-	case $ac_arg in
-	  *=* | --config-cache | -C | -disable-* | --disable-* \
-	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
-	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
-	  | -with-* | --with-* | -without-* | --without-* | --x)
-	    case "$ac_configure_args0 " in
-	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
-	    esac
-	    ;;
-	  -* ) ac_must_keep_next=true ;;
-	esac
-      fi
-      as_fn_append ac_configure_args " '$ac_arg'"
-      ;;
-    esac
-  done
-done
-{ ac_configure_args0=; unset ac_configure_args0;}
-{ ac_configure_args1=; unset ac_configure_args1;}
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log.  We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
-  # Save into config.log some information that might help in debugging.
-  {
-    echo
-
-    $as_echo "## ---------------- ##
-## Cache variables. ##
-## ---------------- ##"
-    echo
-    # The following way of writing the cache mishandles newlines in values,
-(
-  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) { eval $ac_var=; unset $ac_var;} ;;
-      esac ;;
-    esac
-  done
-  (set) 2>&1 |
-    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      sed -n \
-	"s/'\''/'\''\\\\'\'''\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
-      ;; #(
-    *)
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-)
-    echo
-
-    $as_echo "## ----------------- ##
-## Output variables. ##
-## ----------------- ##"
-    echo
-    for ac_var in $ac_subst_vars
-    do
-      eval ac_val=\$$ac_var
-      case $ac_val in
-      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-      esac
-      $as_echo "$ac_var='\''$ac_val'\''"
-    done | sort
-    echo
-
-    if test -n "$ac_subst_files"; then
-      $as_echo "## ------------------- ##
-## File substitutions. ##
-## ------------------- ##"
-      echo
-      for ac_var in $ac_subst_files
-      do
-	eval ac_val=\$$ac_var
-	case $ac_val in
-	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-	esac
-	$as_echo "$ac_var='\''$ac_val'\''"
-      done | sort
-      echo
-    fi
-
-    if test -s confdefs.h; then
-      $as_echo "## ----------- ##
-## confdefs.h. ##
-## ----------- ##"
-      echo
-      cat confdefs.h
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      $as_echo "$as_me: caught signal $ac_signal"
-    $as_echo "$as_me: exit $exit_status"
-  } >&5
-  rm -f core *.core core.conftest.* &&
-    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
-    exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-$as_echo "/* confdefs.h */" > confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
-if test -n "$CONFIG_SITE"; then
-  # We do not want a PATH search for config.site.
-  case $CONFIG_SITE in #((
-    -*)  ac_site_file1=./$CONFIG_SITE;;
-    */*) ac_site_file1=$CONFIG_SITE;;
-    *)   ac_site_file1=./$CONFIG_SITE;;
-  esac
-elif test "x$prefix" != xNONE; then
-  ac_site_file1=$prefix/share/config.site
-  ac_site_file2=$prefix/etc/config.site
-else
-  ac_site_file1=$ac_default_prefix/share/config.site
-  ac_site_file2=$ac_default_prefix/etc/config.site
-fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
-do
-  test "x$ac_site_file" = xNONE && continue
-  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file" \
-      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5 ; }
-  fi
-done
-
-if test -r "$cache_file"; then
-  # Some versions of bash will fail to source /dev/null (special files
-  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
-  if test /dev/null != "$cache_file" && test -f "$cache_file"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . "$cache_file";;
-      *)                      . "./$cache_file";;
-    esac
-  fi
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
-  >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
-  eval ac_old_set=\$ac_cv_env_${ac_var}_set
-  eval ac_new_set=\$ac_env_${ac_var}_set
-  eval ac_old_val=\$ac_cv_env_${ac_var}_value
-  eval ac_new_val=\$ac_env_${ac_var}_value
-  case $ac_old_set,$ac_new_set in
-    set,)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-	# differences in whitespace do not lead to failure.
-	ac_old_val_w=`echo x $ac_old_val`
-	ac_new_val_w=`echo x $ac_new_val`
-	if test "$ac_old_val_w" != "$ac_new_val_w"; then
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-	  ac_cache_corrupted=:
-	else
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
-	  eval $ac_var=\$ac_old_val
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
-$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
-$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
-fi
-## -------------------- ##
-## Main body of script. ##
-## -------------------- ##
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-MGL_RELEASE=1.10
-
-
-
-ac_aux_dir=
-for ac_dir in config "$srcdir"/config; do
-  if test -f "$ac_dir/install-sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f "$ac_dir/install.sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f "$ac_dir/shtool"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  as_fn_error $? "cannot find install-sh, install.sh, or shtool in config \"$srcdir\"/config" "$LINENO" 5
-fi
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
-
-
-
-ac_config_headers="$ac_config_headers include/mgl/config.h"
-
-
-#MGL_RELEASE=1.4
-#AC_SUBST(MGL_RELEASE)
-
-# LT Version numbers, remember to change them just *before* a release.
-#   (Interfaces removed:    CURRENT++, AGE=0, REVISION=0)
-#   (Interfaces added:      CURRENT++, AGE++, REVISION=0)
-#   (No interfaces changed:                   REVISION++)
-MGL_CURRENT=5
-MGL_REVISION=0
-MGL_AGE=0
-
-
-
-
-am__api_version='1.11'
-
-# Find a good install program.  We prefer a C program (faster),
-# so one script is as good as another.  But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in #((
-  ./ | .// | /[cC]/* | \
-  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
-  /usr/ucb/* ) ;;
-  *)
-    # OSF1 and SCO ODT 3.0 have their own names for install.
-    # Don't use installbsd from OSF since it installs stuff as root
-    # by default.
-    for ac_prog in ginstall scoinst install; do
-      for ac_exec_ext in '' $ac_executable_extensions; do
-	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
-	  if test $ac_prog = install &&
-	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-	    # AIX install.  It has an incompatible calling convention.
-	    :
-	  elif test $ac_prog = install &&
-	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-	    # program-specific install script used by HP pwplus--don't use.
-	    :
-	  else
-	    rm -rf conftest.one conftest.two conftest.dir
-	    echo one > conftest.one
-	    echo two > conftest.two
-	    mkdir conftest.dir
-	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
-	      test -s conftest.one && test -s conftest.two &&
-	      test -s conftest.dir/conftest.one &&
-	      test -s conftest.dir/conftest.two
-	    then
-	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-	      break 3
-	    fi
-	  fi
-	fi
-      done
-    done
-    ;;
-esac
-
-  done
-IFS=$as_save_IFS
-
-rm -rf conftest.one conftest.two conftest.dir
-
-fi
-  if test "${ac_cv_path_install+set}" = set; then
-    INSTALL=$ac_cv_path_install
-  else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for INSTALL within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    INSTALL=$ac_install_sh
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
-$as_echo_n "checking whether build environment is sane... " >&6; }
-# Just in case
-sleep 1
-echo timestamp > conftest.file
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name.  Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
-  *[\\\"\#\$\&\'\`$am_lf]*)
-    as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;;
-esac
-case $srcdir in
-  *[\\\"\#\$\&\'\`$am_lf\ \	]*)
-    as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;;
-esac
-
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments.  Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
-   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-   if test "$*" = "X"; then
-      # -L didn't work.
-      set X `ls -t "$srcdir/configure" conftest.file`
-   fi
-   rm -f conftest.file
-   if test "$*" != "X $srcdir/configure conftest.file" \
-      && test "$*" != "X conftest.file $srcdir/configure"; then
-
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
-alias in your environment" "$LINENO" 5
-   fi
-
-   test "$2" = conftest.file
-   )
-then
-   # Ok.
-   :
-else
-   as_fn_error $? "newly created file is older than distributed files!
-Check your system clock" "$LINENO" 5
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-test "$program_prefix" != NONE &&
-  program_transform_name="s&^&$program_prefix&;$program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
-  program_transform_name="s&\$&$program_suffix&;$program_transform_name"
-# Double any \ or $.
-# By default was `s,x,x', remove it if useless.
-ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
-program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
-
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-
-if test x"${MISSING+set}" != xset; then
-  case $am_aux_dir in
-  *\ * | *\	*)
-    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
-  *)
-    MISSING="\${SHELL} $am_aux_dir/missing" ;;
-  esac
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
-  am_missing_run="$MISSING --run "
-else
-  am_missing_run=
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
-fi
-
-if test x"${install_sh}" != xset; then
-  case $am_aux_dir in
-  *\ * | *\	*)
-    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
-  *)
-    install_sh="\${SHELL} $am_aux_dir/install-sh"
-  esac
-fi
-
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'.  However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-if test "$cross_compiling" != no; then
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$STRIP"; then
-  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
-  ac_ct_STRIP=$STRIP
-  # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_STRIP"; then
-  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_STRIP="strip"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_STRIP" = x; then
-    STRIP=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    STRIP=$ac_ct_STRIP
-  fi
-else
-  STRIP="$ac_cv_prog_STRIP"
-fi
-
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
-$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
-if test -z "$MKDIR_P"; then
-  if test "${ac_cv_path_mkdir+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in mkdir gmkdir; do
-	 for ac_exec_ext in '' $ac_executable_extensions; do
-	   { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
-	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
-	     'mkdir (GNU coreutils) '* | \
-	     'mkdir (coreutils) '* | \
-	     'mkdir (fileutils) '4.1*)
-	       ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
-	       break 3;;
-	   esac
-	 done
-       done
-  done
-IFS=$as_save_IFS
-
-fi
-
-  test -d ./--version && rmdir ./--version
-  if test "${ac_cv_path_mkdir+set}" = set; then
-    MKDIR_P="$ac_cv_path_mkdir -p"
-  else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for MKDIR_P within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    MKDIR_P="$ac_install_sh -d"
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
-$as_echo "$MKDIR_P" >&6; }
-
-mkdir_p="$MKDIR_P"
-case $mkdir_p in
-  [\\/$]* | ?:[\\/]*) ;;
-  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-
-for ac_prog in gawk mawk nawk awk
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AWK+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$AWK"; then
-  ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_AWK="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$AWK" && break
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
-	@echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
-  *@@@%%%=?*=@@@%%%*)
-    eval ac_cv_prog_make_${ac_make}_set=yes;;
-  *)
-    eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-  SET_MAKE=
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-  SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
-  am__leading_dot=.
-else
-  am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
-  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
-  # is not polluted with repeated "-I."
-  am__isrc=' -I$(srcdir)'
-  # test to see if srcdir already configured
-  if test -f $srcdir/config.status; then
-    as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
-  fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
-  if (cygpath --version) >/dev/null 2>/dev/null; then
-    CYGPATH_W='cygpath -w'
-  else
-    CYGPATH_W=echo
-  fi
-fi
-
-
-# Define the identity of the package.
- PACKAGE='mathgl'
- VERSION='1.10'
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE "$PACKAGE"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define VERSION "$VERSION"
-_ACEOF
-
-# Some tools Automake needs.
-
-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
-
-
-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
-
-
-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
-
-
-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
-
-
-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-
-# We need awk for the "check" target.  The system "awk" is bad on
-# some platforms.
-# Always define AMTAR for backward compatibility.
-
-AMTAR=${AMTAR-"${am_missing_run}tar"}
-
-am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
-
-
-
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CC="gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-else
-  CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
-          if test -n "$ac_tool_prefix"; then
-    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="${ac_tool_prefix}cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  fi
-fi
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-       ac_prog_rejected=yes
-       continue
-     fi
-    ac_cv_prog_CC="cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $# != 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
-  fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl.exe
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$CC" && break
-  done
-fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in cl.exe
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CC="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CC" && break
-done
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5 ; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
-
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-
-# The possible output files:
-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
-
-ac_rmfiles=
-for ac_file in $ac_files
-do
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
-    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
-  esac
-done
-rm -f $ac_rmfiles
-
-if { { ac_try="$ac_link_default"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link_default") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
-  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile.  We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
-	;;
-    [ab].out )
-	# We found the default executable, but exeext='' is most
-	# certainly right.
-	break;;
-    *.* )
-	if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
-	then :; else
-	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	fi
-	# We set ac_cv_exeext here because the later test for it is not
-	# safe: cross compilers may not add the suffix if given an `-o'
-	# argument, so we may need to know it at that point already.
-	# Even if this section looks crufty: it has the advantage of
-	# actually working.
-	break;;
-    * )
-	break;;
-  esac
-done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
-
-else
-  ac_file=''
-fi
-if test -z "$ac_file"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5 ; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
-ac_exeext=$ac_cv_exeext
-
-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
-if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
-  # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	  break;;
-    * ) break;;
-  esac
-done
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5 ; }
-fi
-rm -f conftest conftest$ac_cv_exeext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-FILE *f = fopen ("conftest.out", "w");
- return ferror (f) || fclose (f) != 0;
-
-  ;
-  return 0;
-}
-_ACEOF
-ac_clean_files="$ac_clean_files conftest.out"
-# Check that the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
-if test "$cross_compiling" != yes; then
-  { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-  if { ac_try='./conftest$ac_cv_exeext'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then
-    cross_compiling=no
-  else
-    if test "$cross_compiling" = maybe; then
-	cross_compiling=yes
-    else
-	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5 ; }
-    fi
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
-
-rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if test "${ac_cv_objext+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
-  for ac_file in conftest.o conftest.obj conftest.*; do
-  test -f "$ac_file" || continue;
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
-    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
-       break;;
-  esac
-done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5 ; }
-fi
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
-else
-  ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GCC=yes
-else
-  GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_c_werror_flag=$ac_c_werror_flag
-   ac_c_werror_flag=yes
-   ac_cv_prog_cc_g=no
-   CFLAGS="-g"
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_g=yes
-else
-  CFLAGS=""
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
-  ac_c_werror_flag=$ac_save_c_werror_flag
-	 CFLAGS="-g"
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not '\xHH' hex character constants.
-   These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std is added to get
-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-   array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std.  */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
-   inside strings and character constants.  */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
-  test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
-  x)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
-  xno)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
-  *)
-    CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-DEPDIR="${am__leading_dot}deps"
-
-ac_config_commands="$ac_config_commands depfiles"
-
-
-am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
-	@echo this is the am__doit target
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
-$as_echo_n "checking for style of include used by $am_make... " >&6; }
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
-  am__include=include
-  am__quote=
-  _am_result=GNU
-  ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
-   echo '.include "confinc"' > confmf
-   case `$am_make -s -f confmf 2> /dev/null` in #(
-   *the\ am__doit\ target*)
-     am__include=.include
-     am__quote="\""
-     _am_result=BSD
-     ;;
-   esac
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
-$as_echo "$_am_result" >&6; }
-rm -f confinc confmf
-
-# Check whether --enable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then :
-  enableval=$enable_dependency_tracking;
-fi
-
-if test "x$enable_dependency_tracking" != xno; then
-  am_depcomp="$ac_aux_dir/depcomp"
-  AMDEPBACKSLASH='\'
-fi
- if test "x$enable_dependency_tracking" != xno; then
-  AMDEP_TRUE=
-  AMDEP_FALSE='#'
-else
-  AMDEP_TRUE='#'
-  AMDEP_FALSE=
-fi
-
-
-
-depcc="$CC"   am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
-  # We make a subdir and do the tests there.  Otherwise we can end up
-  # making bogus files that we don't know about and never remove.  For
-  # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
-  mkdir conftest.dir
-  # Copy depcomp to subdir because otherwise we won't find it if we're
-  # using a relative directory.
-  cp "$am_depcomp" conftest.dir
-  cd conftest.dir
-  # We will build objects and dependencies in a subdirectory because
-  # it helps to detect inapplicable dependency modes.  For instance
-  # both Tru64's cc and ICC support -MD to output dependencies as a
-  # side effect of compilation, but ICC will put the dependencies in
-  # the current directory while Tru64 will put them in the object
-  # directory.
-  mkdir sub
-
-  am_cv_CC_dependencies_compiler_type=none
-  if test "$am_compiler_list" = ""; then
-     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
-  fi
-  am__universal=false
-  case " $depcc " in #(
-     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-     esac
-
-  for depmode in $am_compiler_list; do
-    # Setup a source with many dependencies, because some compilers
-    # like to wrap large dependency lists on column 80 (with \), and
-    # we should not choose a depcomp mode which is confused by this.
-    #
-    # We need to recreate these files for each test, as the compiler may
-    # overwrite some of them when testing with obscure command lines.
-    # This happens at least with the AIX C compiler.
-    : > sub/conftest.c
-    for i in 1 2 3 4 5 6; do
-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
-    done
-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
-    am__obj=sub/conftest.${OBJEXT-o}
-    am__minus_obj="-o $am__obj"
-    case $depmode in
-    gcc)
-      # This depmode causes a compiler race in universal mode.
-      test "$am__universal" = false || continue
-      ;;
-    nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
-      if test "x$enable_dependency_tracking" = xyes; then
-	continue
-      else
-	break
-      fi
-      ;;
-    msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
-      # not run yet.  These depmodes are late enough in the game, and
-      # so weak that their functioning should not be impacted.
-      am__obj=conftest.${OBJEXT-o}
-      am__minus_obj=
-      ;;
-    none) break ;;
-    esac
-    if depmode=$depmode \
-       source=sub/conftest.c object=$am__obj \
-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
-         >/dev/null 2>conftest.err &&
-       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-      # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-        am_cv_CC_dependencies_compiler_type=$depmode
-        break
-      fi
-    fi
-  done
-
-  cd ..
-  rm -rf conftest.dir
-else
-  am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
- if
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
-  am__fastdepCC_TRUE=
-  am__fastdepCC_FALSE='#'
-else
-  am__fastdepCC_TRUE='#'
-  am__fastdepCC_FALSE=
-fi
-
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-if test -z "$CXX"; then
-  if test -n "$CCC"; then
-    CXX=$CCC
-  else
-    if test -n "$ac_tool_prefix"; then
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CXX+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CXX"; then
-  ac_cv_prog_CXX="$CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CXX=$ac_cv_prog_CXX
-if test -n "$CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
-$as_echo "$CXX" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$CXX" && break
-  done
-fi
-if test -z "$CXX"; then
-  ac_ct_CXX=$CXX
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CXX"; then
-  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CXX="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
-if test -n "$ac_ct_CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
-$as_echo "$ac_ct_CXX" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CXX" && break
-done
-
-  if test "x$ac_ct_CXX" = x; then
-    CXX="g++"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CXX=$ac_ct_CXX
-  fi
-fi
-
-  fi
-fi
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
-$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
-if test "${ac_cv_cxx_compiler_gnu+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
-else
-  ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
-$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GXX=yes
-else
-  GXX=
-fi
-ac_test_CXXFLAGS=${CXXFLAGS+set}
-ac_save_CXXFLAGS=$CXXFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
-$as_echo_n "checking whether $CXX accepts -g... " >&6; }
-if test "${ac_cv_prog_cxx_g+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_cxx_werror_flag=$ac_cxx_werror_flag
-   ac_cxx_werror_flag=yes
-   ac_cv_prog_cxx_g=no
-   CXXFLAGS="-g"
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-else
-  CXXFLAGS=""
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-
-else
-  ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-	 CXXFLAGS="-g"
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
-$as_echo "$ac_cv_prog_cxx_g" >&6; }
-if test "$ac_test_CXXFLAGS" = set; then
-  CXXFLAGS=$ac_save_CXXFLAGS
-elif test $ac_cv_prog_cxx_g = yes; then
-  if test "$GXX" = yes; then
-    CXXFLAGS="-g -O2"
-  else
-    CXXFLAGS="-g"
-  fi
-else
-  if test "$GXX" = yes; then
-    CXXFLAGS="-O2"
-  else
-    CXXFLAGS=
-  fi
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-depcc="$CXX"  am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
-  # We make a subdir and do the tests there.  Otherwise we can end up
-  # making bogus files that we don't know about and never remove.  For
-  # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
-  mkdir conftest.dir
-  # Copy depcomp to subdir because otherwise we won't find it if we're
-  # using a relative directory.
-  cp "$am_depcomp" conftest.dir
-  cd conftest.dir
-  # We will build objects and dependencies in a subdirectory because
-  # it helps to detect inapplicable dependency modes.  For instance
-  # both Tru64's cc and ICC support -MD to output dependencies as a
-  # side effect of compilation, but ICC will put the dependencies in
-  # the current directory while Tru64 will put them in the object
-  # directory.
-  mkdir sub
-
-  am_cv_CXX_dependencies_compiler_type=none
-  if test "$am_compiler_list" = ""; then
-     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
-  fi
-  am__universal=false
-  case " $depcc " in #(
-     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-     esac
-
-  for depmode in $am_compiler_list; do
-    # Setup a source with many dependencies, because some compilers
-    # like to wrap large dependency lists on column 80 (with \), and
-    # we should not choose a depcomp mode which is confused by this.
-    #
-    # We need to recreate these files for each test, as the compiler may
-    # overwrite some of them when testing with obscure command lines.
-    # This happens at least with the AIX C compiler.
-    : > sub/conftest.c
-    for i in 1 2 3 4 5 6; do
-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
-    done
-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
-    am__obj=sub/conftest.${OBJEXT-o}
-    am__minus_obj="-o $am__obj"
-    case $depmode in
-    gcc)
-      # This depmode causes a compiler race in universal mode.
-      test "$am__universal" = false || continue
-      ;;
-    nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
-      if test "x$enable_dependency_tracking" = xyes; then
-	continue
-      else
-	break
-      fi
-      ;;
-    msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
-      # not run yet.  These depmodes are late enough in the game, and
-      # so weak that their functioning should not be impacted.
-      am__obj=conftest.${OBJEXT-o}
-      am__minus_obj=
-      ;;
-    none) break ;;
-    esac
-    if depmode=$depmode \
-       source=sub/conftest.c object=$am__obj \
-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
-         >/dev/null 2>conftest.err &&
-       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-      # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-        am_cv_CXX_dependencies_compiler_type=$depmode
-        break
-      fi
-    fi
-  done
-
-  cd ..
-  rm -rf conftest.dir
-else
-  am_cv_CXX_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
-CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
-
- if
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
-  am__fastdepCXX_TRUE=
-  am__fastdepCXX_FALSE='#'
-else
-  am__fastdepCXX_TRUE='#'
-  am__fastdepCXX_FALSE=
-fi
-
-
-
-
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if test "${ac_cv_build+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
-  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
-  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if test "${ac_cv_host+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "x$host_alias" = x; then
-  ac_cv_host=$ac_cv_build
-else
-  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
-
-enable_win32_dll=yes
-
-case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
-set dummy ${ac_tool_prefix}as; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$AS"; then
-  ac_cv_prog_AS="$AS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_AS="${ac_tool_prefix}as"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-AS=$ac_cv_prog_AS
-if test -n "$AS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
-$as_echo "$AS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_AS"; then
-  ac_ct_AS=$AS
-  # Extract the first word of "as", so it can be a program name with args.
-set dummy as; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_AS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_AS"; then
-  ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_AS="as"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_AS=$ac_cv_prog_ac_ct_AS
-if test -n "$ac_ct_AS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5
-$as_echo "$ac_ct_AS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_AS" = x; then
-    AS="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    AS=$ac_ct_AS
-  fi
-else
-  AS="$ac_cv_prog_AS"
-fi
-
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DLLTOOL+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$DLLTOOL"; then
-  ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-DLLTOOL=$ac_cv_prog_DLLTOOL
-if test -n "$DLLTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
-$as_echo "$DLLTOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DLLTOOL"; then
-  ac_ct_DLLTOOL=$DLLTOOL
-  # Extract the first word of "dlltool", so it can be a program name with args.
-set dummy dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_DLLTOOL"; then
-  ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_DLLTOOL="dlltool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
-if test -n "$ac_ct_DLLTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
-$as_echo "$ac_ct_DLLTOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_DLLTOOL" = x; then
-    DLLTOOL="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    DLLTOOL=$ac_ct_DLLTOOL
-  fi
-else
-  DLLTOOL="$ac_cv_prog_DLLTOOL"
-fi
-
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
-set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$OBJDUMP"; then
-  ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-OBJDUMP=$ac_cv_prog_OBJDUMP
-if test -n "$OBJDUMP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-$as_echo "$OBJDUMP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OBJDUMP"; then
-  ac_ct_OBJDUMP=$OBJDUMP
-  # Extract the first word of "objdump", so it can be a program name with args.
-set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_OBJDUMP"; then
-  ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_OBJDUMP="objdump"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
-if test -n "$ac_ct_OBJDUMP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-$as_echo "$ac_ct_OBJDUMP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_OBJDUMP" = x; then
-    OBJDUMP="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    OBJDUMP=$ac_ct_OBJDUMP
-  fi
-else
-  OBJDUMP="$ac_cv_prog_OBJDUMP"
-fi
-
-  ;;
-esac
-
-test -z "$AS" && AS=as
-
-
-
-
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-
-
-
-
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-
-
-
-
-
-
-
-enable_dlopen=yes
-
-
-
-case `pwd` in
-  *\ * | *\	*)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
-$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
-esac
-
-
-
-macro_version='2.2.6b'
-macro_revision='1.3017'
-
-
-
-
-
-
-
-
-
-
-
-
-
-ltmain="$ac_aux_dir/ltmain.sh"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
-$as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if test "${ac_cv_path_SED+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
-     for ac_i in 1 2 3 4 5 6 7; do
-       ac_script="$ac_script$as_nl$ac_script"
-     done
-     echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
-     { ac_script=; unset ac_script;}
-     if test -z "$SED"; then
-  ac_path_SED_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in sed gsed; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
-# Check for GNU ac_path_SED and select it if it is found.
-  # Check for GNU $ac_path_SED
-case `"$ac_path_SED" --version 2>&1` in
-*GNU*)
-  ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo '' >> "conftest.nl"
-    "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_SED_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_SED="$ac_path_SED"
-      ac_path_SED_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_SED_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_SED"; then
-    as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
-  fi
-else
-  ac_cv_path_SED=$SED
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
-$as_echo "$ac_cv_path_SED" >&6; }
- SED="$ac_cv_path_SED"
-  rm -f conftest.sed
-
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if test "${ac_cv_path_GREP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$GREP"; then
-  ac_path_GREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in grep ggrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
-# Check for GNU ac_path_GREP and select it if it is found.
-  # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'GREP' >> "conftest.nl"
-    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_GREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_GREP="$ac_path_GREP"
-      ac_path_GREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_GREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_GREP"; then
-    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
-else
-  ac_cv_path_GREP=$GREP
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
-   then ac_cv_path_EGREP="$GREP -E"
-   else
-     if test -z "$EGREP"; then
-  ac_path_EGREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in egrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
-  # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'EGREP' >> "conftest.nl"
-    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_EGREP="$ac_path_EGREP"
-      ac_path_EGREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_EGREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_EGREP"; then
-    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
-else
-  ac_cv_path_EGREP=$EGREP
-fi
-
-   fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
-$as_echo_n "checking for fgrep... " >&6; }
-if test "${ac_cv_path_FGREP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
-   then ac_cv_path_FGREP="$GREP -F"
-   else
-     if test -z "$FGREP"; then
-  ac_path_FGREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in fgrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
-# Check for GNU ac_path_FGREP and select it if it is found.
-  # Check for GNU $ac_path_FGREP
-case `"$ac_path_FGREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'FGREP' >> "conftest.nl"
-    "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_FGREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_FGREP="$ac_path_FGREP"
-      ac_path_FGREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_FGREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_FGREP"; then
-    as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
-else
-  ac_cv_path_FGREP=$FGREP
-fi
-
-   fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
-$as_echo "$ac_cv_path_FGREP" >&6; }
- FGREP="$ac_cv_path_FGREP"
-
-
-test -z "$GREP" && GREP=grep
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
-  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else
-  with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [\\/]* | ?:[\\/]*)
-      re_direlt='/[^/][^/]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
-      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
-fi
-if test "${lt_cv_path_LD+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some variants of GNU ld only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-	test "$with_gnu_ld" != no && break
-	;;
-      *)
-	test "$with_gnu_ld" != yes && break
-	;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if test "${lt_cv_prog_gnu_ld+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-$as_echo "$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
-$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if test "${lt_cv_path_NM+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$NM"; then
-  # Let the user override the test.
-  lt_cv_path_NM="$NM"
-else
-  lt_nm_to_check="${ac_tool_prefix}nm"
-  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
-    lt_nm_to_check="$lt_nm_to_check nm"
-  fi
-  for lt_tmp_nm in $lt_nm_to_check; do
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
-      IFS="$lt_save_ifs"
-      test -z "$ac_dir" && ac_dir=.
-      tmp_nm="$ac_dir/$lt_tmp_nm"
-      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
-	# Check to see if the nm accepts a BSD-compat flag.
-	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
-	#   nm: unknown option "B" ignored
-	# Tru64's nm complains that /dev/null is an invalid object file
-	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-	*/dev/null* | *'Invalid file or object type'*)
-	  lt_cv_path_NM="$tmp_nm -B"
-	  break
-	  ;;
-	*)
-	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-	  */dev/null*)
-	    lt_cv_path_NM="$tmp_nm -p"
-	    break
-	    ;;
-	  *)
-	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-	    continue # so that we can try to find one that supports BSD flags
-	    ;;
-	  esac
-	  ;;
-	esac
-      fi
-    done
-    IFS="$lt_save_ifs"
-  done
-  : ${lt_cv_path_NM=no}
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
-$as_echo "$lt_cv_path_NM" >&6; }
-if test "$lt_cv_path_NM" != "no"; then
-  NM="$lt_cv_path_NM"
-else
-  # Didn't find any BSD compatible name lister, look for dumpbin.
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in "dumpbin -symbols" "link -dump -symbols"
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DUMPBIN+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$DUMPBIN"; then
-  ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-DUMPBIN=$ac_cv_prog_DUMPBIN
-if test -n "$DUMPBIN"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
-$as_echo "$DUMPBIN" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$DUMPBIN" && break
-  done
-fi
-if test -z "$DUMPBIN"; then
-  ac_ct_DUMPBIN=$DUMPBIN
-  for ac_prog in "dumpbin -symbols" "link -dump -symbols"
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_DUMPBIN"; then
-  ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
-if test -n "$ac_ct_DUMPBIN"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
-$as_echo "$ac_ct_DUMPBIN" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_DUMPBIN" && break
-done
-
-  if test "x$ac_ct_DUMPBIN" = x; then
-    DUMPBIN=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    DUMPBIN=$ac_ct_DUMPBIN
-  fi
-fi
-
-
-  if test "$DUMPBIN" != ":"; then
-    NM="$DUMPBIN"
-  fi
-fi
-test -z "$NM" && NM=nm
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
-$as_echo_n "checking the name lister ($NM) interface... " >&6; }
-if test "${lt_cv_nm_interface+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_nm_interface="BSD nm"
-  echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:5506: $ac_compile\"" >&5)
-  (eval "$ac_compile" 2>conftest.err)
-  cat conftest.err >&5
-  (eval echo "\"\$as_me:5509: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
-  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
-  cat conftest.err >&5
-  (eval echo "\"\$as_me:5512: output\"" >&5)
-  cat conftest.out >&5
-  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
-    lt_cv_nm_interface="MS dumpbin"
-  fi
-  rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
-$as_echo "$lt_cv_nm_interface" >&6; }
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-$as_echo_n "checking whether ln -s works... " >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-$as_echo "no, using $LN_S" >&6; }
-fi
-
-# find the maximum length of command line arguments
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
-$as_echo_n "checking the maximum length of command line arguments... " >&6; }
-if test "${lt_cv_sys_max_cmd_len+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-    i=0
-  teststring="ABCD"
-
-  case $build_os in
-  msdosdjgpp*)
-    # On DJGPP, this test can blow up pretty badly due to problems in libc
-    # (any single argument exceeding 2000 bytes causes a buffer overrun
-    # during glob expansion).  Even if it were fixed, the result of this
-    # check would be larger than it should be.
-    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
-    ;;
-
-  gnu*)
-    # Under GNU Hurd, this test is not required because there is
-    # no limit to the length of command line arguments.
-    # Libtool will interpret -1 as no limit whatsoever
-    lt_cv_sys_max_cmd_len=-1;
-    ;;
-
-  cygwin* | mingw* | cegcc*)
-    # On Win9x/ME, this test blows up -- it succeeds, but takes
-    # about 5 minutes as the teststring grows exponentially.
-    # Worse, since 9x/ME are not pre-emptively multitasking,
-    # you end up with a "frozen" computer, even though with patience
-    # the test eventually succeeds (with a max line length of 256k).
-    # Instead, let's just punt: use the minimum linelength reported by
-    # all of the supported platforms: 8192 (on NT/2K/XP).
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  amigaos*)
-    # On AmigaOS with pdksh, this test takes hours, literally.
-    # So we just punt and use a minimum line length of 8192.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
-    # This has been around since 386BSD, at least.  Likely further.
-    if test -x /sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
-    elif test -x /usr/sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
-    else
-      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
-    fi
-    # And add a safety zone
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    ;;
-
-  interix*)
-    # We know the value 262144 and hardcode it with a safety zone (like BSD)
-    lt_cv_sys_max_cmd_len=196608
-    ;;
-
-  osf*)
-    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
-    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
-    # nice to cause kernel panics so lets avoid the loop below.
-    # First set a reasonable default.
-    lt_cv_sys_max_cmd_len=16384
-    #
-    if test -x /sbin/sysconfig; then
-      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
-        *1*) lt_cv_sys_max_cmd_len=-1 ;;
-      esac
-    fi
-    ;;
-  sco3.2v5*)
-    lt_cv_sys_max_cmd_len=102400
-    ;;
-  sysv5* | sco5v6* | sysv4.2uw2*)
-    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
-    if test -n "$kargmax"; then
-      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[	 ]//'`
-    else
-      lt_cv_sys_max_cmd_len=32768
-    fi
-    ;;
-  *)
-    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
-    if test -n "$lt_cv_sys_max_cmd_len"; then
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    else
-      # Make teststring a little bigger before we do anything with it.
-      # a 1K string should be a reasonable start.
-      for i in 1 2 3 4 5 6 7 8 ; do
-        teststring=$teststring$teststring
-      done
-      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
-      # If test is not a shell built-in, we'll probably end up computing a
-      # maximum length that is only half of the actual maximum length, but
-      # we can't tell.
-      while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
-	         = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
-	      test $i != 17 # 1/2 MB should be enough
-      do
-        i=`expr $i + 1`
-        teststring=$teststring$teststring
-      done
-      # Only check the string length outside the loop.
-      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
-      teststring=
-      # Add a significant safety factor because C++ compilers can tack on
-      # massive amounts of additional arguments before passing them to the
-      # linker.  It appears as though 1/2 is a usable value.
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
-    fi
-    ;;
-  esac
-
-fi
-
-if test -n $lt_cv_sys_max_cmd_len ; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
-$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
-$as_echo "none" >&6; }
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-
-
-
-
-
-: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
-$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,, \
-    && eval 'test $(( 1 + 1 )) -eq 2 \
-    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
-  && xsi_shell=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
-$as_echo "$xsi_shell" >&6; }
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
-$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
-    >/dev/null 2>&1 \
-  && lt_shell_append=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
-$as_echo "$lt_shell_append" >&6; }
-
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  lt_unset=unset
-else
-  lt_unset=false
-fi
-
-
-
-
-
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
-    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
-  lt_SP2NL='tr \040 \012'
-  lt_NL2SP='tr \015\012 \040\040'
-  ;;
- *) # EBCDIC based system
-  lt_SP2NL='tr \100 \n'
-  lt_NL2SP='tr \r\n \100\100'
-  ;;
-esac
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
-$as_echo_n "checking for $LD option to reload object files... " >&6; }
-if test "${lt_cv_ld_reload_flag+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_ld_reload_flag='-r'
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
-$as_echo "$lt_cv_ld_reload_flag" >&6; }
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
-  darwin*)
-    if test "$GCC" = yes; then
-      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-    else
-      reload_cmds='$LD$reload_flag -o $output$reload_objs'
-    fi
-    ;;
-esac
-
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
-set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$OBJDUMP"; then
-  ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-OBJDUMP=$ac_cv_prog_OBJDUMP
-if test -n "$OBJDUMP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-$as_echo "$OBJDUMP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OBJDUMP"; then
-  ac_ct_OBJDUMP=$OBJDUMP
-  # Extract the first word of "objdump", so it can be a program name with args.
-set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_OBJDUMP"; then
-  ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_OBJDUMP="objdump"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
-if test -n "$ac_ct_OBJDUMP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-$as_echo "$ac_ct_OBJDUMP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_OBJDUMP" = x; then
-    OBJDUMP="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    OBJDUMP=$ac_ct_OBJDUMP
-  fi
-else
-  OBJDUMP="$ac_cv_prog_OBJDUMP"
-fi
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
-$as_echo_n "checking how to recognize dependent libraries... " >&6; }
-if test "${lt_cv_deplibs_check_method+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[4-9]*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-bsdi[45]*)
-  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  lt_cv_file_magic_test_file=/shlib/libc.so
-  ;;
-
-cygwin*)
-  # func_win32_libid is a shell function defined in ltmain.sh
-  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-  lt_cv_file_magic_cmd='func_win32_libid'
-  ;;
-
-mingw* | pw32*)
-  # Base MSYS/MinGW do not provide the 'file' command needed by
-  # func_win32_libid shell function, so use a weaker test based on 'objdump',
-  # unless we find 'file', for example because we are cross-compiling.
-  if ( file / ) >/dev/null 2>&1; then
-    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-    lt_cv_file_magic_cmd='func_win32_libid'
-  else
-    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
-    lt_cv_file_magic_cmd='$OBJDUMP -f'
-  fi
-  ;;
-
-cegcc)
-  # use the weaker test based on 'objdump'. See mingw*.
-  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
-  lt_cv_file_magic_cmd='$OBJDUMP -f'
-  ;;
-
-darwin* | rhapsody*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-freebsd* | dragonfly*)
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
-    case $host_cpu in
-    i*86 )
-      # Not sure whether the presence of OpenBSD here was a mistake.
-      # Let's accept both of them until this is cleared up.
-      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
-      lt_cv_file_magic_cmd=/usr/bin/file
-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-      ;;
-    esac
-  else
-    lt_cv_deplibs_check_method=pass_all
-  fi
-  ;;
-
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-hpux10.20* | hpux11*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  case $host_cpu in
-  ia64*)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
-    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
-    ;;
-  hppa*64*)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'
-    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
-    ;;
-  *)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
-    lt_cv_file_magic_test_file=/usr/lib/libc.sl
-    ;;
-  esac
-  ;;
-
-interix[3-9]*)
-  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
-  lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $LD in
-  *-32|*"-32 ") libmagic=32-bit;;
-  *-n32|*"-n32 ") libmagic=N32;;
-  *-64|*"-64 ") libmagic=64-bit;;
-  *) libmagic=never-match;;
-  esac
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-# This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-netbsd* | netbsdelf*-gnu)
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
-  fi
-  ;;
-
-newos6*)
-  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=/usr/lib/libnls.so
-  ;;
-
-*nto* | *qnx*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-openbsd*)
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
-  fi
-  ;;
-
-osf3* | osf4* | osf5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-rdos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-solaris*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv4 | sysv4.3*)
-  case $host_vendor in
-  motorola)
-    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
-    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
-    ;;
-  ncr)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  sequent)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
-    ;;
-  sni)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
-    lt_cv_file_magic_test_file=/lib/libc.so
-    ;;
-  siemens)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  pc)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  esac
-  ;;
-
-tpf*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-esac
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
-$as_echo "$lt_cv_deplibs_check_method" >&6; }
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-
-
-
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AR+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$AR"; then
-  ac_cv_prog_AR="$AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_AR="${ac_tool_prefix}ar"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_AR"; then
-  ac_ct_AR=$AR
-  # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_AR"; then
-  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_AR="ar"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-$as_echo "$ac_ct_AR" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_AR" = x; then
-    AR="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    AR=$ac_ct_AR
-  fi
-else
-  AR="$ac_cv_prog_AR"
-fi
-
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-
-
-
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$STRIP"; then
-  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
-  ac_ct_STRIP=$STRIP
-  # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_STRIP"; then
-  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_STRIP="strip"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_STRIP" = x; then
-    STRIP=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    STRIP=$ac_ct_STRIP
-  fi
-else
-  STRIP="$ac_cv_prog_STRIP"
-fi
-
-test -z "$STRIP" && STRIP=:
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
-  ac_ct_RANLIB=$RANLIB
-  # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_RANLIB"; then
-  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_RANLIB="ranlib"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_RANLIB" = x; then
-    RANLIB=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    RANLIB=$ac_ct_RANLIB
-  fi
-else
-  RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-test -z "$RANLIB" && RANLIB=:
-
-
-
-
-
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
-  case $host_os in
-  openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
-    ;;
-  *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
-    ;;
-  esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
-$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
-if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[BCDEGRST]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
-
-# Define system-specific variables.
-case $host_os in
-aix*)
-  symcode='[BCDT]'
-  ;;
-cygwin* | mingw* | pw32* | cegcc*)
-  symcode='[ABCDGISTW]'
-  ;;
-hpux*)
-  if test "$host_cpu" = ia64; then
-    symcode='[ABCDEGRST]'
-  fi
-  ;;
-irix* | nonstopux*)
-  symcode='[BCDEGRST]'
-  ;;
-osf*)
-  symcode='[BCDEGQRST]'
-  ;;
-solaris*)
-  symcode='[BDRT]'
-  ;;
-sco3.2v5*)
-  symcode='[DT]'
-  ;;
-sysv4.2uw2*)
-  symcode='[DT]'
-  ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
-  symcode='[ABDT]'
-  ;;
-sysv4)
-  symcode='[DFNSTU]'
-  ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
-  symcode='[ABCDGIRSTW]' ;;
-esac
-
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
-  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-  ;;
-esac
-
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
-
-  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
-  symxfrm="\\1 $ac_symprfx\\2 \\2"
-
-  # Write the raw and C identifiers.
-  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-    # Fake it for dumpbin and say T for any non-static function
-    # and D for any global variable.
-    # Also find C++ and __fastcall symbols from MSVC++,
-    # which start with @ or ?.
-    lt_cv_sys_global_symbol_pipe="$AWK '"\
-"     {last_section=section; section=\$ 3};"\
-"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-"     \$ 0!~/External *\|/{next};"\
-"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-"     {if(hide[section]) next};"\
-"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
-"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
-"     ' prfx=^$ac_symprfx"
-  else
-    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[	 ]\($symcode$symcode*\)[	 ][	 ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
-  fi
-
-  # Check to see that the pipe works correctly.
-  pipe_works=no
-
-  rm -f conftest*
-  cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
-
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    # Now try to grab the symbols.
-    nlist=conftest.nm
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5
-  (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s "$nlist"; then
-      # Try sorting and uniquifying the output.
-      if sort "$nlist" | uniq > "$nlist"T; then
-	mv -f "$nlist"T "$nlist"
-      else
-	rm -f "$nlist"T
-      fi
-
-      # Make sure that we snagged all the symbols we need.
-      if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
-	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
-	  cat <<_LT_EOF > conftest.$ac_ext
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_LT_EOF
-	  # Now generate the symbol file.
-	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-
-	  cat <<_LT_EOF >> conftest.$ac_ext
-
-/* The mapping between symbol names and symbols.  */
-const struct {
-  const char *name;
-  void       *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[] =
-{
-  { "@PROGRAM@", (void *) 0 },
-_LT_EOF
-	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
-	  cat <<\_LT_EOF >> conftest.$ac_ext
-  {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
-  return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
-	  # Now try linking the two files.
-	  mv conftest.$ac_objext conftstm.$ac_objext
-	  lt_save_LIBS="$LIBS"
-	  lt_save_CFLAGS="$CFLAGS"
-	  LIBS="conftstm.$ac_objext"
-	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
-	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest${ac_exeext}; then
-	    pipe_works=yes
-	  fi
-	  LIBS="$lt_save_LIBS"
-	  CFLAGS="$lt_save_CFLAGS"
-	else
-	  echo "cannot find nm_test_func in $nlist" >&5
-	fi
-      else
-	echo "cannot find nm_test_var in $nlist" >&5
-      fi
-    else
-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
-    fi
-  else
-    echo "$progname: failed program was:" >&5
-    cat conftest.$ac_ext >&5
-  fi
-  rm -rf conftest* conftst*
-
-  # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
-    break
-  else
-    lt_cv_sys_global_symbol_pipe=
-  fi
-done
-
-fi
-
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
-  lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then :
-  enableval=$enable_libtool_lock;
-fi
-
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    case `/usr/bin/file conftest.$ac_objext` in
-      *ELF-32*)
-	HPUX_IA64_MODE="32"
-	;;
-      *ELF-64*)
-	HPUX_IA64_MODE="64"
-	;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-*-*-irix6*)
-  # Find out which ABI we are using.
-  echo '#line 6715 "configure"' > conftest.$ac_ext
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    if test "$lt_cv_prog_gnu_ld" = yes; then
-      case `/usr/bin/file conftest.$ac_objext` in
-	*32-bit*)
-	  LD="${LD-ld} -melf32bsmip"
-	  ;;
-	*N32*)
-	  LD="${LD-ld} -melf32bmipn32"
-	  ;;
-	*64-bit*)
-	  LD="${LD-ld} -melf64bmip"
-	;;
-      esac
-    else
-      case `/usr/bin/file conftest.$ac_objext` in
-	*32-bit*)
-	  LD="${LD-ld} -32"
-	  ;;
-	*N32*)
-	  LD="${LD-ld} -n32"
-	  ;;
-	*64-bit*)
-	  LD="${LD-ld} -64"
-	  ;;
-      esac
-    fi
-  fi
-  rm -rf conftest*
-  ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    case `/usr/bin/file conftest.o` in
-      *32-bit*)
-	case $host in
-	  x86_64-*kfreebsd*-gnu)
-	    LD="${LD-ld} -m elf_i386_fbsd"
-	    ;;
-	  x86_64-*linux*)
-	    LD="${LD-ld} -m elf_i386"
-	    ;;
-	  ppc64-*linux*|powerpc64-*linux*)
-	    LD="${LD-ld} -m elf32ppclinux"
-	    ;;
-	  s390x-*linux*)
-	    LD="${LD-ld} -m elf_s390"
-	    ;;
-	  sparc64-*linux*)
-	    LD="${LD-ld} -m elf32_sparc"
-	    ;;
-	esac
-	;;
-      *64-bit*)
-	case $host in
-	  x86_64-*kfreebsd*-gnu)
-	    LD="${LD-ld} -m elf_x86_64_fbsd"
-	    ;;
-	  x86_64-*linux*)
-	    LD="${LD-ld} -m elf_x86_64"
-	    ;;
-	  ppc*-*linux*|powerpc*-*linux*)
-	    LD="${LD-ld} -m elf64ppc"
-	    ;;
-	  s390*-*linux*|s390*-*tpf*)
-	    LD="${LD-ld} -m elf64_s390"
-	    ;;
-	  sparc*-*linux*)
-	    LD="${LD-ld} -m elf64_sparc"
-	    ;;
-	esac
-	;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-*-*-sco3.2v5*)
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -belf"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
-$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
-if test "${lt_cv_cc_needs_belf+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  lt_cv_cc_needs_belf=yes
-else
-  lt_cv_cc_needs_belf=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
-$as_echo "$lt_cv_cc_needs_belf" >&6; }
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-sparc*-*solaris*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    case `/usr/bin/file conftest.o` in
-    *64-bit*)
-      case $lt_cv_prog_gnu_ld in
-      yes*) LD="${LD-ld} -m elf64_sparc" ;;
-      *)
-	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
-	  LD="${LD-ld} -64"
-	fi
-	;;
-      esac
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-esac
-
-need_locks="$enable_libtool_lock"
-
-
-  case $host_os in
-    rhapsody* | darwin*)
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DSYMUTIL+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$DSYMUTIL"; then
-  ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-DSYMUTIL=$ac_cv_prog_DSYMUTIL
-if test -n "$DSYMUTIL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
-$as_echo "$DSYMUTIL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DSYMUTIL"; then
-  ac_ct_DSYMUTIL=$DSYMUTIL
-  # Extract the first word of "dsymutil", so it can be a program name with args.
-set dummy dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_DSYMUTIL"; then
-  ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
-if test -n "$ac_ct_DSYMUTIL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
-$as_echo "$ac_ct_DSYMUTIL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_DSYMUTIL" = x; then
-    DSYMUTIL=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    DSYMUTIL=$ac_ct_DSYMUTIL
-  fi
-else
-  DSYMUTIL="$ac_cv_prog_DSYMUTIL"
-fi
-
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
-set dummy ${ac_tool_prefix}nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_NMEDIT+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$NMEDIT"; then
-  ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-NMEDIT=$ac_cv_prog_NMEDIT
-if test -n "$NMEDIT"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
-$as_echo "$NMEDIT" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_NMEDIT"; then
-  ac_ct_NMEDIT=$NMEDIT
-  # Extract the first word of "nmedit", so it can be a program name with args.
-set dummy nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_NMEDIT"; then
-  ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_NMEDIT="nmedit"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
-if test -n "$ac_ct_NMEDIT"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
-$as_echo "$ac_ct_NMEDIT" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_NMEDIT" = x; then
-    NMEDIT=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    NMEDIT=$ac_ct_NMEDIT
-  fi
-else
-  NMEDIT="$ac_cv_prog_NMEDIT"
-fi
-
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
-set dummy ${ac_tool_prefix}lipo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_LIPO+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$LIPO"; then
-  ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-LIPO=$ac_cv_prog_LIPO
-if test -n "$LIPO"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
-$as_echo "$LIPO" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_LIPO"; then
-  ac_ct_LIPO=$LIPO
-  # Extract the first word of "lipo", so it can be a program name with args.
-set dummy lipo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_LIPO"; then
-  ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_LIPO="lipo"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
-if test -n "$ac_ct_LIPO"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
-$as_echo "$ac_ct_LIPO" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_LIPO" = x; then
-    LIPO=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    LIPO=$ac_ct_LIPO
-  fi
-else
-  LIPO="$ac_cv_prog_LIPO"
-fi
-
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OTOOL+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$OTOOL"; then
-  ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-OTOOL=$ac_cv_prog_OTOOL
-if test -n "$OTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
-$as_echo "$OTOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OTOOL"; then
-  ac_ct_OTOOL=$OTOOL
-  # Extract the first word of "otool", so it can be a program name with args.
-set dummy otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_OTOOL"; then
-  ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_OTOOL="otool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
-if test -n "$ac_ct_OTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
-$as_echo "$ac_ct_OTOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_OTOOL" = x; then
-    OTOOL=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    OTOOL=$ac_ct_OTOOL
-  fi
-else
-  OTOOL="$ac_cv_prog_OTOOL"
-fi
-
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OTOOL64+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$OTOOL64"; then
-  ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-OTOOL64=$ac_cv_prog_OTOOL64
-if test -n "$OTOOL64"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
-$as_echo "$OTOOL64" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OTOOL64"; then
-  ac_ct_OTOOL64=$OTOOL64
-  # Extract the first word of "otool64", so it can be a program name with args.
-set dummy otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_OTOOL64"; then
-  ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_OTOOL64="otool64"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
-if test -n "$ac_ct_OTOOL64"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
-$as_echo "$ac_ct_OTOOL64" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_OTOOL64" = x; then
-    OTOOL64=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    OTOOL64=$ac_ct_OTOOL64
-  fi
-else
-  OTOOL64="$ac_cv_prog_OTOOL64"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
-$as_echo_n "checking for -single_module linker flag... " >&6; }
-if test "${lt_cv_apple_cc_single_mod+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_apple_cc_single_mod=no
-      if test -z "${LT_MULTI_MODULE}"; then
-	# By default we will add the -single_module flag. You can override
-	# by either setting the environment variable LT_MULTI_MODULE
-	# non-empty at configure time, or by adding -multi_module to the
-	# link flags.
-	rm -rf libconftest.dylib*
-	echo "int foo(void){return 1;}" > conftest.c
-	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&5
-	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
-	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
-        _lt_result=$?
-	if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
-	  lt_cv_apple_cc_single_mod=yes
-	else
-	  cat conftest.err >&5
-	fi
-	rm -rf libconftest.dylib*
-	rm -f conftest.*
-      fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
-$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
-$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
-if test "${lt_cv_ld_exported_symbols_list+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_ld_exported_symbols_list=no
-      save_LDFLAGS=$LDFLAGS
-      echo "_main" > conftest.sym
-      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  lt_cv_ld_exported_symbols_list=yes
-else
-  lt_cv_ld_exported_symbols_list=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
-$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
-    case $host_os in
-    rhapsody* | darwin1.[012])
-      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
-    darwin1.*)
-      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
-    darwin*) # darwin 5.x on
-      # if running on 10.5 or later, the deployment target defaults
-      # to the OS version, if on x86, and 10.4, the deployment
-      # target defaults to 10.4. Don't you love it?
-      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
-	10.0,*86*-darwin8*|10.0,*-darwin[91]*)
-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-	10.[012]*)
-	  _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
-	10.*)
-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-      esac
-    ;;
-  esac
-    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
-      _lt_dar_single_mod='$single_module'
-    fi
-    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
-      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
-    else
-      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    fi
-    if test "$DSYMUTIL" != ":"; then
-      _lt_dsymutil='~$DSYMUTIL $lib || :'
-    else
-      _lt_dsymutil=
-    fi
-    ;;
-  esac
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-      # Double quotes because CPP needs to be expanded
-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-  break
-fi
-
-    done
-    ac_cv_prog_CPP=$CPP
-
-fi
-  CPP=$ac_cv_prog_CPP
-else
-  ac_cv_prog_CPP=$CPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5 ; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_header_stdc=yes
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-		   (('a' <= (c) && (c) <= 'i') \
-		     || ('j' <= (c) && (c) <= 'r') \
-		     || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-	|| toupper (i) != TOUPPER (i))
-      return 2;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-		  inttypes.h stdint.h unistd.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-for ac_header in dlfcn.h
-do :
-  ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_dlfcn_h" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DLFCN_H 1
-_ACEOF
-
-fi
-
-done
-
-
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-if test -z "$CXX"; then
-  if test -n "$CCC"; then
-    CXX=$CCC
-  else
-    if test -n "$ac_tool_prefix"; then
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CXX+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CXX"; then
-  ac_cv_prog_CXX="$CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CXX=$ac_cv_prog_CXX
-if test -n "$CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
-$as_echo "$CXX" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$CXX" && break
-  done
-fi
-if test -z "$CXX"; then
-  ac_ct_CXX=$CXX
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CXX"; then
-  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CXX="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
-if test -n "$ac_ct_CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
-$as_echo "$ac_ct_CXX" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CXX" && break
-done
-
-  if test "x$ac_ct_CXX" = x; then
-    CXX="g++"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CXX=$ac_ct_CXX
-  fi
-fi
-
-  fi
-fi
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
-$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
-if test "${ac_cv_cxx_compiler_gnu+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
-else
-  ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
-$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GXX=yes
-else
-  GXX=
-fi
-ac_test_CXXFLAGS=${CXXFLAGS+set}
-ac_save_CXXFLAGS=$CXXFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
-$as_echo_n "checking whether $CXX accepts -g... " >&6; }
-if test "${ac_cv_prog_cxx_g+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_cxx_werror_flag=$ac_cxx_werror_flag
-   ac_cxx_werror_flag=yes
-   ac_cv_prog_cxx_g=no
-   CXXFLAGS="-g"
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-else
-  CXXFLAGS=""
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-
-else
-  ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-	 CXXFLAGS="-g"
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
-$as_echo "$ac_cv_prog_cxx_g" >&6; }
-if test "$ac_test_CXXFLAGS" = set; then
-  CXXFLAGS=$ac_save_CXXFLAGS
-elif test $ac_cv_prog_cxx_g = yes; then
-  if test "$GXX" = yes; then
-    CXXFLAGS="-g -O2"
-  else
-    CXXFLAGS="-g"
-  fi
-else
-  if test "$GXX" = yes; then
-    CXXFLAGS="-O2"
-  else
-    CXXFLAGS=
-  fi
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-depcc="$CXX"  am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
-  # We make a subdir and do the tests there.  Otherwise we can end up
-  # making bogus files that we don't know about and never remove.  For
-  # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
-  mkdir conftest.dir
-  # Copy depcomp to subdir because otherwise we won't find it if we're
-  # using a relative directory.
-  cp "$am_depcomp" conftest.dir
-  cd conftest.dir
-  # We will build objects and dependencies in a subdirectory because
-  # it helps to detect inapplicable dependency modes.  For instance
-  # both Tru64's cc and ICC support -MD to output dependencies as a
-  # side effect of compilation, but ICC will put the dependencies in
-  # the current directory while Tru64 will put them in the object
-  # directory.
-  mkdir sub
-
-  am_cv_CXX_dependencies_compiler_type=none
-  if test "$am_compiler_list" = ""; then
-     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
-  fi
-  am__universal=false
-  case " $depcc " in #(
-     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-     esac
-
-  for depmode in $am_compiler_list; do
-    # Setup a source with many dependencies, because some compilers
-    # like to wrap large dependency lists on column 80 (with \), and
-    # we should not choose a depcomp mode which is confused by this.
-    #
-    # We need to recreate these files for each test, as the compiler may
-    # overwrite some of them when testing with obscure command lines.
-    # This happens at least with the AIX C compiler.
-    : > sub/conftest.c
-    for i in 1 2 3 4 5 6; do
-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
-    done
-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
-    am__obj=sub/conftest.${OBJEXT-o}
-    am__minus_obj="-o $am__obj"
-    case $depmode in
-    gcc)
-      # This depmode causes a compiler race in universal mode.
-      test "$am__universal" = false || continue
-      ;;
-    nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
-      if test "x$enable_dependency_tracking" = xyes; then
-	continue
-      else
-	break
-      fi
-      ;;
-    msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
-      # not run yet.  These depmodes are late enough in the game, and
-      # so weak that their functioning should not be impacted.
-      am__obj=conftest.${OBJEXT-o}
-      am__minus_obj=
-      ;;
-    none) break ;;
-    esac
-    if depmode=$depmode \
-       source=sub/conftest.c object=$am__obj \
-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
-         >/dev/null 2>conftest.err &&
-       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-      # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-        am_cv_CXX_dependencies_compiler_type=$depmode
-        break
-      fi
-    fi
-  done
-
-  cd ..
-  rm -rf conftest.dir
-else
-  am_cv_CXX_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
-CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
-
- if
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
-  am__fastdepCXX_TRUE=
-  am__fastdepCXX_FALSE='#'
-else
-  am__fastdepCXX_TRUE='#'
-  am__fastdepCXX_FALSE=
-fi
-
-
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
-    (test "X$CXX" != "Xg++"))) ; then
-  ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
-$as_echo_n "checking how to run the C++ preprocessor... " >&6; }
-if test -z "$CXXCPP"; then
-  if test "${ac_cv_prog_CXXCPP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-      # Double quotes because CXXCPP needs to be expanded
-    for CXXCPP in "$CXX -E" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-  break
-fi
-
-    done
-    ac_cv_prog_CXXCPP=$CXXCPP
-
-fi
-  CXXCPP=$ac_cv_prog_CXXCPP
-else
-  ac_cv_prog_CXXCPP=$CXXCPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
-$as_echo "$CXXCPP" >&6; }
-ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-_lt_caught_CXX_error=yes; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-else
-  _lt_caught_CXX_error=yes
-fi
-
-
-
-
-
-# Set options
-
-
-
-
-
-            # Check whether --enable-shared was given.
-if test "${enable_shared+set}" = set; then :
-  enableval=$enable_shared; p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_shared=yes ;;
-    no) enable_shared=no ;;
-    *)
-      enable_shared=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_shared=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac
-else
-  enable_shared=yes
-fi
-
-
-
-
-
-
-
-
-
-  # Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then :
-  enableval=$enable_static; p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_static=yes ;;
-    no) enable_static=no ;;
-    *)
-     enable_static=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_static=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac
-else
-  enable_static=yes
-fi
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-pic was given.
-if test "${with_pic+set}" = set; then :
-  withval=$with_pic; pic_mode="$withval"
-else
-  pic_mode=default
-fi
-
-
-test -z "$pic_mode" && pic_mode=default
-
-
-
-
-
-
-
-  # Check whether --enable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then :
-  enableval=$enable_fast_install; p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_fast_install=yes ;;
-    no) enable_fast_install=no ;;
-    *)
-      enable_fast_install=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_fast_install=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac
-else
-  enable_fast_install=yes
-fi
-
-
-
-
-
-
-
-
-
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-test -z "$LN_S" && LN_S="ln -s"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-if test -n "${ZSH_VERSION+set}" ; then
-   setopt NO_GLOB_SUBST
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
-$as_echo_n "checking for objdir... " >&6; }
-if test "${lt_cv_objdir+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
-  lt_cv_objdir=.libs
-else
-  # MS-DOS does not allow filenames that begin with a dot.
-  lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
-$as_echo "$lt_cv_objdir" >&6; }
-objdir=$lt_cv_objdir
-
-
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define LT_OBJDIR "$lt_cv_objdir/"
-_ACEOF
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-case $host_os in
-aix3*)
-  # AIX sometimes has problems with the GCC collect2 program.  For some
-  # reason, if we set the COLLECT_NAMES environment variable, the problems
-  # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
-    COLLECT_NAMES=
-    export COLLECT_NAMES
-  fi
-  ;;
-esac
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-for cc_temp in $compiler""; do
-  case $cc_temp in
-    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
-    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
-
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
-  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
-$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $MAGIC_CMD in
-[\\/*] |  ?:[\\/]*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/${ac_tool_prefix}file; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
-      if test -n "$file_magic_test_file"; then
-	case $deplibs_check_method in
-	"file_magic "*)
-	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-	    $EGREP "$file_magic_regex" > /dev/null; then
-	    :
-	  else
-	    cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool at gnu.org
-
-_LT_EOF
-	  fi ;;
-	esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-
-
-if test -z "$lt_cv_path_MAGIC_CMD"; then
-  if test -n "$ac_tool_prefix"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
-$as_echo_n "checking for file... " >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $MAGIC_CMD in
-[\\/*] |  ?:[\\/]*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/file; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/file"
-      if test -n "$file_magic_test_file"; then
-	case $deplibs_check_method in
-	"file_magic "*)
-	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-	    $EGREP "$file_magic_regex" > /dev/null; then
-	    :
-	  else
-	    cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool at gnu.org
-
-_LT_EOF
-	  fi ;;
-	esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  else
-    MAGIC_CMD=:
-  fi
-fi
-
-  fi
-  ;;
-esac
-
-# Use C for the default configuration in the libtool script
-
-lt_save_CC="$CC"
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-objext=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-
-
-if test -n "$compiler"; then
-
-lt_prog_compiler_no_builtin_flag=
-
-if test "$GCC" = yes; then
-  lt_prog_compiler_no_builtin_flag=' -fno-builtin'
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_rtti_exceptions=no
-   ac_outfile=conftest.$ac_objext
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="-fno-rtti -fno-exceptions"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8763: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:8767: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_rtti_exceptions=yes
-     fi
-   fi
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
-
-if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
-    lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
-else
-    :
-fi
-
-fi
-
-
-
-
-
-
-  lt_prog_compiler_wl=
-lt_prog_compiler_pic=
-lt_prog_compiler_static=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-
-  if test "$GCC" = yes; then
-    lt_prog_compiler_wl='-Wl,'
-    lt_prog_compiler_static='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	lt_prog_compiler_static='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            lt_prog_compiler_pic='-fPIC'
-        ;;
-      m68k)
-            # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
-            lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
-        ;;
-      esac
-      ;;
-
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | cygwin* | pw32* | os2* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      # Although the cygwin gcc ignores -fPIC, still need this for old-style
-      # (--disable-auto-import) libraries
-      lt_prog_compiler_pic='-DDLL_EXPORT'
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      lt_prog_compiler_pic='-fno-common'
-      ;;
-
-    hpux*)
-      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
-      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
-      # sets the default TLS model and affects inlining.
-      case $host_cpu in
-      hppa*64*)
-	# +Z the default
-	;;
-      *)
-	lt_prog_compiler_pic='-fPIC'
-	;;
-      esac
-      ;;
-
-    interix[3-9]*)
-      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-      # Instead, we relocate shared libraries at runtime.
-      ;;
-
-    msdosdjgpp*)
-      # Just because we use GCC doesn't mean we suddenly get shared libraries
-      # on systems that don't support them.
-      lt_prog_compiler_can_build_shared=no
-      enable_shared=no
-      ;;
-
-    *nto* | *qnx*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      lt_prog_compiler_pic='-fPIC -shared'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	lt_prog_compiler_pic=-Kconform_pic
-      fi
-      ;;
-
-    *)
-      lt_prog_compiler_pic='-fPIC'
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      lt_prog_compiler_wl='-Wl,'
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	lt_prog_compiler_static='-Bstatic'
-      else
-	lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-
-    mingw* | cygwin* | pw32* | os2* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic='-DDLL_EXPORT'
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      lt_prog_compiler_wl='-Wl,'
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case $host_cpu in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	lt_prog_compiler_pic='+Z'
-	;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      lt_prog_compiler_static='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      lt_prog_compiler_wl='-Wl,'
-      # PIC (with -KPIC) is the default.
-      lt_prog_compiler_static='-non_shared'
-      ;;
-
-    linux* | k*bsd*-gnu | kopensolaris*-gnu)
-      case $cc_basename in
-      # old Intel for x86_64 which still supported -KPIC.
-      ecc*)
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='-KPIC'
-	lt_prog_compiler_static='-static'
-        ;;
-      # icc used to be incompatible with GCC.
-      # ICC 10 doesn't accept -KPIC any more.
-      icc* | ifort*)
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='-fPIC'
-	lt_prog_compiler_static='-static'
-        ;;
-      # Lahey Fortran 8.1.
-      lf95*)
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='--shared'
-	lt_prog_compiler_static='--static'
-	;;
-      pgcc* | pgf77* | pgf90* | pgf95*)
-        # Portland Group compilers (*not* the Pentium gcc compiler,
-	# which looks to be a dead project)
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='-fpic'
-	lt_prog_compiler_static='-Bstatic'
-        ;;
-      ccc*)
-        lt_prog_compiler_wl='-Wl,'
-        # All Alpha code is PIC.
-        lt_prog_compiler_static='-non_shared'
-        ;;
-      xl*)
-	# IBM XL C 8.0/Fortran 10.1 on PPC
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='-qpic'
-	lt_prog_compiler_static='-qstaticlink'
-	;;
-      *)
-	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ C*)
-	  # Sun C 5.9
-	  lt_prog_compiler_pic='-KPIC'
-	  lt_prog_compiler_static='-Bstatic'
-	  lt_prog_compiler_wl='-Wl,'
-	  ;;
-	*Sun\ F*)
-	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
-	  lt_prog_compiler_pic='-KPIC'
-	  lt_prog_compiler_static='-Bstatic'
-	  lt_prog_compiler_wl=''
-	  ;;
-	esac
-	;;
-      esac
-      ;;
-
-    newsos6)
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    *nto* | *qnx*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      lt_prog_compiler_pic='-fPIC -shared'
-      ;;
-
-    osf3* | osf4* | osf5*)
-      lt_prog_compiler_wl='-Wl,'
-      # All OSF/1 code is PIC.
-      lt_prog_compiler_static='-non_shared'
-      ;;
-
-    rdos*)
-      lt_prog_compiler_static='-non_shared'
-      ;;
-
-    solaris*)
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      case $cc_basename in
-      f77* | f90* | f95*)
-	lt_prog_compiler_wl='-Qoption ld ';;
-      *)
-	lt_prog_compiler_wl='-Wl,';;
-      esac
-      ;;
-
-    sunos4*)
-      lt_prog_compiler_wl='-Qoption ld '
-      lt_prog_compiler_pic='-PIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3*)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-	lt_prog_compiler_pic='-Kconform_pic'
-	lt_prog_compiler_static='-Bstatic'
-      fi
-      ;;
-
-    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    unicos*)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_can_build_shared=no
-      ;;
-
-    uts4*)
-      lt_prog_compiler_pic='-pic'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    *)
-      lt_prog_compiler_can_build_shared=no
-      ;;
-    esac
-  fi
-
-case $host_os in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    lt_prog_compiler_pic=
-    ;;
-  *)
-    lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
-    ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
-$as_echo "$lt_prog_compiler_pic" >&6; }
-
-
-
-
-
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if test "${lt_cv_prog_compiler_pic_works+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_pic_works=no
-   ac_outfile=conftest.$ac_objext
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9102: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:9106: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_pic_works=yes
-     fi
-   fi
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
-$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
-
-if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
-    case $lt_prog_compiler_pic in
-     "" | " "*) ;;
-     *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
-     esac
-else
-    lt_prog_compiler_pic=
-     lt_prog_compiler_can_build_shared=no
-fi
-
-fi
-
-
-
-
-
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if test "${lt_cv_prog_compiler_static_works+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_static_works=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
-   echo "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The linker can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&5
-       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
-       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_cv_prog_compiler_static_works=yes
-       fi
-     else
-       lt_cv_prog_compiler_static_works=yes
-     fi
-   fi
-   $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
-$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
-
-if test x"$lt_cv_prog_compiler_static_works" = xyes; then
-    :
-else
-    lt_prog_compiler_static=
-fi
-
-
-
-
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_c_o=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9207: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:9211: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_c_o=yes
-     fi
-   fi
-   chmod u+w . 2>&5
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
-
-
-
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_c_o=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9262: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:9266: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_c_o=yes
-     fi
-   fi
-   chmod u+w . 2>&5
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
-
-
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-$as_echo_n "checking if we can lock with hard links... " >&6; }
-  hard_links=yes
-  $RM conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-$as_echo "$hard_links" >&6; }
-  if test "$hard_links" = no; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-
-
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-
-  runpath_var=
-  allow_undefined_flag=
-  always_export_symbols=no
-  archive_cmds=
-  archive_expsym_cmds=
-  compiler_needs_object=no
-  enable_shared_with_static_runtimes=no
-  export_dynamic_flag_spec=
-  export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  hardcode_automatic=no
-  hardcode_direct=no
-  hardcode_direct_absolute=no
-  hardcode_libdir_flag_spec=
-  hardcode_libdir_flag_spec_ld=
-  hardcode_libdir_separator=
-  hardcode_minus_L=no
-  hardcode_shlibpath_var=unsupported
-  inherit_rpath=no
-  link_all_deplibs=unknown
-  module_cmds=
-  module_expsym_cmds=
-  old_archive_from_new_cmds=
-  old_archive_from_expsyms_cmds=
-  thread_safe_flag_spec=
-  whole_archive_flag_spec=
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  include_expsyms=
-  # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
-  exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  # Exclude shared library initialization/finalization symbols.
-  extract_expsyms_cmds=
-
-  case $host_os in
-  cygwin* | mingw* | pw32* | cegcc*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  interix*)
-    # we just hope/assume this is gcc and not c89 (= MSVC++)
-    with_gnu_ld=yes
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  linux* | k*bsd*-gnu)
-    link_all_deplibs=no
-    ;;
-  esac
-
-  ld_shlibs=yes
-  if test "$with_gnu_ld" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # Set some defaults for GNU ld with shared library support. These
-    # are reset later if shared libraries are not supported. Putting them
-    # here allows them to be overridden if necessary.
-    runpath_var=LD_RUN_PATH
-    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-    export_dynamic_flag_spec='${wl}--export-dynamic'
-    # ancient GNU ld didn't support --whole-archive et. al.
-    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
-      whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-    else
-      whole_archive_flag_spec=
-    fi
-    supports_anon_versioning=no
-    case `$LD -v 2>&1` in
-      *GNU\ gold*) supports_anon_versioning=yes ;;
-      *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
-      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
-      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
-      *\ 2.11.*) ;; # other 2.11 versions
-      *) supports_anon_versioning=yes ;;
-    esac
-
-    # See if GNU ld supports shared libraries.
-    case $host_os in
-    aix[3-9]*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-	ld_shlibs=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-_LT_EOF
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-            archive_expsym_cmds=''
-        ;;
-      m68k)
-            archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-            hardcode_libdir_flag_spec='-L$libdir'
-            hardcode_minus_L=yes
-        ;;
-      esac
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	allow_undefined_flag=unsupported
-	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32* | cegcc*)
-      # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
-      # as there is no search path for DLLs.
-      hardcode_libdir_flag_spec='-L$libdir'
-      allow_undefined_flag=unsupported
-      always_export_symbols=no
-      enable_shared_with_static_runtimes=yes
-      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
-
-      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	# If the export-symbols file already is a .def file (1st line
-	# is EXPORTS), use it as is; otherwise, prepend...
-	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	  cp $export_symbols $output_objdir/$soname.def;
-	else
-	  echo EXPORTS > $output_objdir/$soname.def;
-	  cat $export_symbols >> $output_objdir/$soname.def;
-	fi~
-	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    interix[3-9]*)
-      hardcode_direct=no
-      hardcode_shlibpath_var=no
-      hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-      export_dynamic_flag_spec='${wl}-E'
-      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-      # Instead, shared libraries are loaded at an image base (0x10000000 by
-      # default) and relocated if they conflict, which is a slow very memory
-      # consuming and fragmenting process.  To avoid this, we pick a random,
-      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-      archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      ;;
-
-    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
-      tmp_diet=no
-      if test "$host_os" = linux-dietlibc; then
-	case $cc_basename in
-	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
-	esac
-      fi
-      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
-	 && test "$tmp_diet" = no
-      then
-	tmp_addflag=
-	tmp_sharedflag='-shared'
-	case $cc_basename,$host_cpu in
-        pgcc*)				# Portland Group C compiler
-	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag'
-	  ;;
-	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
-	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag -Mnomain' ;;
-	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
-	  tmp_addflag=' -i_dynamic' ;;
-	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
-	  tmp_addflag=' -i_dynamic -nofor_main' ;;
-	ifc* | ifort*)			# Intel Fortran compiler
-	  tmp_addflag=' -nofor_main' ;;
-	lf95*)				# Lahey Fortran 8.1
-	  whole_archive_flag_spec=
-	  tmp_sharedflag='--shared' ;;
-	xl[cC]*)			# IBM XL C 8.0 on PPC (deal with xlf below)
-	  tmp_sharedflag='-qmkshrobj'
-	  tmp_addflag= ;;
-	esac
-	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ C*)			# Sun C 5.9
-	  whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
-	  compiler_needs_object=yes
-	  tmp_sharedflag='-G' ;;
-	*Sun\ F*)			# Sun Fortran 8.3
-	  tmp_sharedflag='-G' ;;
-	esac
-	archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
-        if test "x$supports_anon_versioning" = xyes; then
-          archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
-	    cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-	    echo "local: *; };" >> $output_objdir/$libname.ver~
-	    $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-        fi
-
-	case $cc_basename in
-	xlf*)
-	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
-	  whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
-	  hardcode_libdir_flag_spec=
-	  hardcode_libdir_flag_spec_ld='-rpath $libdir'
-	  archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
-	  if test "x$supports_anon_versioning" = xyes; then
-	    archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
-	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-	      echo "local: *; };" >> $output_objdir/$libname.ver~
-	      $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
-	  fi
-	  ;;
-	esac
-      else
-        ld_shlibs=no
-      fi
-      ;;
-
-    netbsd* | netbsdelf*-gnu)
-      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-	wlarc=
-      else
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris*)
-      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
-	ld_shlibs=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
-      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
-      case `$LD -v 2>&1` in
-        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
-	ld_shlibs=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
-	;;
-	*)
-	  # For security reasons, it is highly recommended that you always
-	  # use absolute paths for naming shared libraries, and exclude the
-	  # DT_RUNPATH tag from executables and libraries.  But doing so
-	  # requires that you compile everything twice, which is a pain.
-	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-	    archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-	  else
-	    ld_shlibs=no
-	  fi
-	;;
-      esac
-      ;;
-
-    sunos4*)
-      archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    *)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-    esac
-
-    if test "$ld_shlibs" = no; then
-      runpath_var=
-      hardcode_libdir_flag_spec=
-      export_dynamic_flag_spec=
-      whole_archive_flag_spec=
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      allow_undefined_flag=unsupported
-      always_export_symbols=yes
-      archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      hardcode_minus_L=yes
-      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
-	# Neither direct hardcoding nor static linking is supported with a
-	# broken collect2.
-	hardcode_direct=unsupported
-      fi
-      ;;
-
-    aix[4-9]*)
-      if test "$host_cpu" = ia64; then
-	# On IA64, the linker does run time linking by default, so we don't
-	# have to do anything special.
-	aix_use_runtimelinking=no
-	exp_sym_flag='-Bexport'
-	no_entry_flag=""
-      else
-	# If we're using GNU nm, then we don't want the "-C" option.
-	# -C means demangle to AIX nm, but means don't demangle with GNU nm
-	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-	  export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-	else
-	  export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-	fi
-	aix_use_runtimelinking=no
-
-	# Test if we are trying to use run time linking or normal
-	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
-	# need to do runtime linking.
-	case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
-	  for ld_flag in $LDFLAGS; do
-	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-	    aix_use_runtimelinking=yes
-	    break
-	  fi
-	  done
-	  ;;
-	esac
-
-	exp_sym_flag='-bexport'
-	no_entry_flag='-bnoentry'
-      fi
-
-      # When large executables or shared objects are built, AIX ld can
-      # have problems creating the table of contents.  If linking a library
-      # or program results in "error TOC overflow" add -mminimal-toc to
-      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-      archive_cmds=''
-      hardcode_direct=yes
-      hardcode_direct_absolute=yes
-      hardcode_libdir_separator=':'
-      link_all_deplibs=yes
-      file_list_spec='${wl}-f,'
-
-      if test "$GCC" = yes; then
-	case $host_os in aix4.[012]|aix4.[012].*)
-	# We only want to do this on AIX 4.2 and lower, the check
-	# below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" &&
-	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
-	  then
-	  # We have reworked collect2
-	  :
-	  else
-	  # We have old collect2
-	  hardcode_direct=unsupported
-	  # It fails to find uninstalled libraries when the uninstalled
-	  # path is not listed in the libpath.  Setting hardcode_minus_L
-	  # to unsupported forces relinking
-	  hardcode_minus_L=yes
-	  hardcode_libdir_flag_spec='-L$libdir'
-	  hardcode_libdir_separator=
-	  fi
-	  ;;
-	esac
-	shared_flag='-shared'
-	if test "$aix_use_runtimelinking" = yes; then
-	  shared_flag="$shared_flag "'${wl}-G'
-	fi
-	link_all_deplibs=no
-      else
-	# not using gcc
-	if test "$host_cpu" = ia64; then
-	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	# chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-	else
-	  if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag='${wl}-G'
-	  else
-	    shared_flag='${wl}-bM:SRE'
-	  fi
-	fi
-      fi
-
-      export_dynamic_flag_spec='${wl}-bexpall'
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      always_export_symbols=yes
-      if test "$aix_use_runtimelinking" = yes; then
-	# Warning - without using the other runtime loading flags (-brtl),
-	# -berok will link without error, but may produce a broken library.
-	allow_undefined_flag='-berok'
-        # Determine the default libpath from the value encoded in an
-        # empty executable.
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-	/^0/ {
-	    s/^0  *\(.*\)$/\1/
-	    p
-	}
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-      else
-	if test "$host_cpu" = ia64; then
-	  hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
-	  allow_undefined_flag="-z nodefs"
-	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
-	else
-	 # Determine the default libpath from the value encoded in an
-	 # empty executable.
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-	/^0/ {
-	    s/^0  *\(.*\)$/\1/
-	    p
-	}
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-	 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-	  # Warning - without using the other run time loading flags,
-	  # -berok will link without error, but may produce a broken library.
-	  no_undefined_flag=' ${wl}-bernotok'
-	  allow_undefined_flag=' ${wl}-berok'
-	  # Exported symbols can be pulled into shared objects from archives
-	  whole_archive_flag_spec='$convenience'
-	  archive_cmds_need_lc=yes
-	  # This is similar to how AIX traditionally builds its shared libraries.
-	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-	fi
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-            archive_expsym_cmds=''
-        ;;
-      m68k)
-            archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-            hardcode_libdir_flag_spec='-L$libdir'
-            hardcode_minus_L=yes
-        ;;
-      esac
-      ;;
-
-    bsdi[45]*)
-      export_dynamic_flag_spec=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32* | cegcc*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      hardcode_libdir_flag_spec=' '
-      allow_undefined_flag=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      old_archive_from_new_cmds='true'
-      # FIXME: Should let the user specify the lib program.
-      old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
-      enable_shared_with_static_runtimes=yes
-      ;;
-
-    darwin* | rhapsody*)
-
-
-  archive_cmds_need_lc=no
-  hardcode_direct=no
-  hardcode_automatic=yes
-  hardcode_shlibpath_var=unsupported
-  whole_archive_flag_spec=''
-  link_all_deplibs=yes
-  allow_undefined_flag="$_lt_dar_allow_undefined"
-  case $cc_basename in
-     ifort*) _lt_dar_can_shared=yes ;;
-     *) _lt_dar_can_shared=$GCC ;;
-  esac
-  if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=echo
-    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
-    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
-    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
-    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
-
-  else
-  ld_shlibs=no
-  fi
-
-      ;;
-
-    dgux*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_shlibpath_var=no
-      ;;
-
-    freebsd1*)
-      ld_shlibs=no
-      ;;
-
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
-      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct=yes
-      hardcode_minus_L=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | dragonfly*)
-      archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-	archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-	archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      fi
-      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-      hardcode_libdir_separator=:
-      hardcode_direct=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      hardcode_minus_L=yes
-      export_dynamic_flag_spec='${wl}-E'
-      ;;
-
-    hpux10*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      if test "$with_gnu_ld" = no; then
-	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-	hardcode_libdir_flag_spec_ld='+b $libdir'
-	hardcode_libdir_separator=:
-	hardcode_direct=yes
-	hardcode_direct_absolute=yes
-	export_dynamic_flag_spec='${wl}-E'
-	# hardcode_minus_L: Not really in the search PATH,
-	# but as the default location of the library.
-	hardcode_minus_L=yes
-      fi
-      ;;
-
-    hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	case $host_cpu in
-	hppa*64*)
-	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      else
-	case $host_cpu in
-	hppa*64*)
-	  archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      fi
-      if test "$with_gnu_ld" = no; then
-	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-	hardcode_libdir_separator=:
-
-	case $host_cpu in
-	hppa*64*|ia64*)
-	  hardcode_direct=no
-	  hardcode_shlibpath_var=no
-	  ;;
-	*)
-	  hardcode_direct=yes
-	  hardcode_direct_absolute=yes
-	  export_dynamic_flag_spec='${wl}-E'
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  hardcode_minus_L=yes
-	  ;;
-	esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	# Try to use the -exported_symbol ld option, if it does not
-	# work, assume that -exports_file does not work either and
-	# implicitly export all symbols.
-        save_LDFLAGS="$LDFLAGS"
-        LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-int foo(void) {}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-        LDFLAGS="$save_LDFLAGS"
-      else
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
-      fi
-      archive_cmds_need_lc='no'
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      inherit_rpath=yes
-      link_all_deplibs=yes
-      ;;
-
-    netbsd* | netbsdelf*-gnu)
-      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-	archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    newsos6)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct=yes
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      hardcode_shlibpath_var=no
-      ;;
-
-    *nto* | *qnx*)
-      ;;
-
-    openbsd*)
-      if test -f /usr/libexec/ld.so; then
-	hardcode_direct=yes
-	hardcode_shlibpath_var=no
-	hardcode_direct_absolute=yes
-	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	  archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	  archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-	  hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-	  export_dynamic_flag_spec='${wl}-E'
-	else
-	  case $host_os in
-	   openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-	     archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-	     hardcode_libdir_flag_spec='-R$libdir'
-	     ;;
-	   *)
-	     archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	     hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-	     ;;
-	  esac
-	fi
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    os2*)
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_minus_L=yes
-      allow_undefined_flag=unsupported
-      archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	allow_undefined_flag=' -expect_unresolved \*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      archive_cmds_need_lc='no'
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      ;;
-
-    osf4* | osf5*)	# as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      else
-	allow_undefined_flag=' -expect_unresolved \*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-	archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
-
-	# Both c and cxx compiler support -rpath directly
-	hardcode_libdir_flag_spec='-rpath $libdir'
-      fi
-      archive_cmds_need_lc='no'
-      hardcode_libdir_separator=:
-      ;;
-
-    solaris*)
-      no_undefined_flag=' -z defs'
-      if test "$GCC" = yes; then
-	wlarc='${wl}'
-	archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-      else
-	case `$CC -V 2>&1` in
-	*"Compilers 5.0"*)
-	  wlarc=''
-	  archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
-	  ;;
-	*)
-	  wlarc='${wl}'
-	  archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
-	  archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-	  ;;
-	esac
-      fi
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_shlibpath_var=no
-      case $host_os in
-      solaris2.[0-5] | solaris2.[0-5].*) ;;
-      *)
-	# The compiler driver will combine and reorder linker options,
-	# but understands `-z linker_flag'.  GCC discards it without `$wl',
-	# but is careful enough not to reorder.
-	# Supported since Solaris 2.6 (maybe 2.5.1?)
-	if test "$GCC" = yes; then
-	  whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-	else
-	  whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
-	fi
-	;;
-      esac
-      link_all_deplibs=yes
-      ;;
-
-    sunos4*)
-      if test "x$host_vendor" = xsequent; then
-	# Use $CC to link under sequent, because it throws in some extra .o
-	# files that make .init and .fini sections work.
-	archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_direct=yes
-      hardcode_minus_L=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-	sni)
-	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  hardcode_direct=yes # is this really true???
-	;;
-	siemens)
-	  ## LD is ld it makes a PLAMLIB
-	  ## CC just makes a GrossModule.
-	  archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-	  reload_cmds='$CC -r -o $output$reload_objs'
-	  hardcode_direct=no
-        ;;
-	motorola)
-	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  hardcode_direct=no #Motorola manual says yes, but my tests say they lie
-	;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var=no
-      ;;
-
-    sysv4.3*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var=no
-      export_dynamic_flag_spec='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	hardcode_shlibpath_var=no
-	runpath_var=LD_RUN_PATH
-	hardcode_runpath_var=yes
-	ld_shlibs=yes
-      fi
-      ;;
-
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
-      no_undefined_flag='${wl}-z,text'
-      archive_cmds_need_lc=no
-      hardcode_shlibpath_var=no
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-	archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    sysv5* | sco3.2v5* | sco5v6*)
-      # Note: We can NOT use -z defs as we might desire, because we do not
-      # link with -lc, and that would cause any symbols used from libc to
-      # always be unresolved, which means just about no library would
-      # ever link correctly.  If we're not using GNU ld we use -z text
-      # though, which does catch some bad symbols but isn't as heavy-handed
-      # as -z defs.
-      no_undefined_flag='${wl}-z,text'
-      allow_undefined_flag='${wl}-z,nodefs'
-      archive_cmds_need_lc=no
-      hardcode_shlibpath_var=no
-      hardcode_libdir_flag_spec='${wl}-R,$libdir'
-      hardcode_libdir_separator=':'
-      link_all_deplibs=yes
-      export_dynamic_flag_spec='${wl}-Bexport'
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-	archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    uts4*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_shlibpath_var=no
-      ;;
-
-    *)
-      ld_shlibs=no
-      ;;
-    esac
-
-    if test x$host_vendor = xsni; then
-      case $host in
-      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-	export_dynamic_flag_spec='${wl}-Blargedynsym'
-	;;
-      esac
-    fi
-  fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
-$as_echo "$ld_shlibs" >&6; }
-test "$ld_shlibs" = no && can_build_shared=no
-
-with_gnu_ld=$with_gnu_ld
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc" in
-x|xyes)
-  # Assume -lc should be added
-  archive_cmds_need_lc=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $archive_cmds in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-      $RM conftest*
-      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$lt_prog_compiler_wl
-	pic_flag=$lt_prog_compiler_pic
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$allow_undefined_flag
-        allow_undefined_flag=
-        if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
-  (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-        then
-	  archive_cmds_need_lc=no
-        else
-	  archive_cmds_need_lc=yes
-        fi
-        allow_undefined_flag=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $RM conftest*
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5
-$as_echo "$archive_cmds_need_lc" >&6; }
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-$as_echo_n "checking dynamic linker characteristics... " >&6; }
-
-if test "$GCC" = yes; then
-  case $host_os in
-    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
-    *) lt_awk_arg="/^libraries:/" ;;
-  esac
-  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
-  # Ok, now we have the path, separated by spaces, we can step through it
-  # and add multilib dir if necessary.
-  lt_tmp_lt_search_path_spec=
-  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
-  for lt_sys_path in $lt_search_path_spec; do
-    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
-      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
-    else
-      test -d "$lt_sys_path" && \
-	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
-    fi
-  done
-  lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
-BEGIN {RS=" "; FS="/|\n";} {
-  lt_foo="";
-  lt_count=0;
-  for (lt_i = NF; lt_i > 0; lt_i--) {
-    if ($lt_i != "" && $lt_i != ".") {
-      if ($lt_i == "..") {
-        lt_count++;
-      } else {
-        if (lt_count == 0) {
-          lt_foo="/" $lt_i lt_foo;
-        } else {
-          lt_count--;
-        }
-      }
-    }
-  }
-  if (lt_foo != "") { lt_freq[lt_foo]++; }
-  if (lt_freq[lt_foo] == 1) { print lt_foo; }
-}'`
-  sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix[4-9]*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  case $host_cpu in
-  powerpc)
-    # Since July 2007 AmigaOS4 officially supports .so libraries.
-    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    ;;
-  m68k)
-    library_names_spec='$libname.ixlibrary $libname.a'
-    # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-    ;;
-  esac
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[45]*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname~
-      chmod a+x \$dldir/$dlname~
-      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
-        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
-      fi'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw* | cegcc*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-
-  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-freebsd* | dragonfly*)
-  # DragonFly does not have aout.  When/if they implement a new
-  # versioning mechanism, adjust this.
-  if test -x /usr/bin/objformat; then
-    objformat=`/usr/bin/objformat`
-  else
-    case $host_os in
-    freebsd[123]*) objformat=aout ;;
-    *) objformat=elf ;;
-    esac
-  fi
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[01]* | freebsdelf3.[01]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
-  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  *) # from 4.6 on, and DragonFly
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case $host_cpu in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  hppa*64*)
-    shrext_cmds='.sl'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-interix[3-9]*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # Some binutils ld are patched to set DT_RUNPATH
-  save_LDFLAGS=$LDFLAGS
-  save_libdir=$libdir
-  eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
-       LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
-  shlibpath_overrides_runpath=yes
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-  LDFLAGS=$save_LDFLAGS
-  libdir=$save_libdir
-
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-netbsdelf*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='NetBSD ld.elf_so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-*nto* | *qnx*)
-  version_type=qnx
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='ldqnx.so'
-  ;;
-
-openbsd*)
-  version_type=sunos
-  sys_lib_dlsearch_path_spec="/usr/lib"
-  need_lib_prefix=no
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
-    *)				need_version=no  ;;
-  esac
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-	shlibpath_overrides_runpath=no
-	;;
-      *)
-	shlibpath_overrides_runpath=yes
-	;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-rdos*)
-  dynamic_linker=no
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  version_type=freebsd-elf
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  if test "$with_gnu_ld" = yes; then
-    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
-  else
-    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
-    case $host_os in
-      sco3.2v5*)
-        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
-	;;
-    esac
-  fi
-  sys_lib_dlsearch_path_spec='/usr/lib'
-  ;;
-
-tpf*)
-  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
-hardcode_action=
-if test -n "$hardcode_libdir_flag_spec" ||
-   test -n "$runpath_var" ||
-   test "X$hardcode_automatic" = "Xyes" ; then
-
-  # We can hardcode non-existent directories.
-  if test "$hardcode_direct" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
-     test "$hardcode_minus_L" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action=unsupported
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
-$as_echo "$hardcode_action" >&6; }
-
-if test "$hardcode_action" = relink ||
-   test "$inherit_rpath" = yes; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-
-
-
-
-
-  if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32* | cegcc*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-    ;;
-
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-    ;;
-
-  darwin*)
-  # if libdl is installed we need to link against it
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dl_dlopen=yes
-else
-  ac_cv_lib_dl_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-
-fi
-
-    ;;
-
-  *)
-    ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
-if test "x$ac_cv_func_shl_load" = x""yes; then :
-  lt_cv_dlopen="shl_load"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
-$as_echo_n "checking for shl_load in -ldld... " >&6; }
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-int
-main ()
-{
-return shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dld_shl_load=yes
-else
-  ac_cv_lib_dld_shl_load=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
-$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
-if test "x$ac_cv_lib_dld_shl_load" = x""yes; then :
-  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
-else
-  ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
-if test "x$ac_cv_func_dlopen" = x""yes; then :
-  lt_cv_dlopen="dlopen"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dl_dlopen=yes
-else
-  ac_cv_lib_dl_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
-$as_echo_n "checking for dlopen in -lsvld... " >&6; }
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_svld_dlopen=yes
-else
-  ac_cv_lib_svld_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
-$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
-if test "x$ac_cv_lib_svld_dlopen" = x""yes; then :
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
-$as_echo_n "checking for dld_link in -ldld... " >&6; }
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dld_link ();
-int
-main ()
-{
-return dld_link ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dld_dld_link=yes
-else
-  ac_cv_lib_dld_dld_link=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
-$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
-if test "x$ac_cv_lib_dld_dld_link" = x""yes; then :
-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
-$as_echo_n "checking whether a program can dlopen itself... " >&6; }
-if test "${lt_cv_dlopen_self+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  	  if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<_LT_EOF
-#line 11646 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-  else
-    puts (dlerror ());
-
-  return status;
-}
-_LT_EOF
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) >&5 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self=no
-  fi
-fi
-rm -fr conftest*
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
-$as_echo "$lt_cv_dlopen_self" >&6; }
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
-$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
-if test "${lt_cv_dlopen_self_static+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  	  if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self_static=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<_LT_EOF
-#line 11742 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-  else
-    puts (dlerror ());
-
-  return status;
-}
-_LT_EOF
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) >&5 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self_static=no
-  fi
-fi
-rm -fr conftest*
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
-$as_echo "$lt_cv_dlopen_self_static" >&6; }
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-striplib=
-old_striplib=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
-$as_echo_n "checking whether stripping libraries is possible... " >&6; }
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-  darwin*)
-    if test -n "$STRIP" ; then
-      striplib="$STRIP -x"
-      old_striplib="$STRIP -S"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-    else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-    fi
-    ;;
-  *)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-    ;;
-  esac
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-  # Report which library types will actually be built
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
-$as_echo_n "checking if libtool supports shared libraries... " >&6; }
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
-$as_echo "$can_build_shared" >&6; }
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
-$as_echo_n "checking whether to build shared libraries... " >&6; }
-  test "$can_build_shared" = "no" && enable_shared=no
-
-  # On AIX, shared libraries and static libraries use the same namespace, and
-  # are all built from PIC.
-  case $host_os in
-  aix3*)
-    test "$enable_shared" = yes && enable_static=no
-    if test -n "$RANLIB"; then
-      archive_cmds="$archive_cmds~\$RANLIB \$lib"
-      postinstall_cmds='$RANLIB $lib'
-    fi
-    ;;
-
-  aix[4-9]*)
-    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-      test "$enable_shared" = yes && enable_static=no
-    fi
-    ;;
-  esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
-$as_echo "$enable_shared" >&6; }
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
-$as_echo_n "checking whether to build static libraries... " >&6; }
-  # Make sure either enable_shared or enable_static is yes.
-  test "$enable_shared" = yes || enable_static=yes
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
-$as_echo "$enable_static" >&6; }
-
-
-
-
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC="$lt_save_CC"
-
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-archive_cmds_need_lc_CXX=no
-allow_undefined_flag_CXX=
-always_export_symbols_CXX=no
-archive_expsym_cmds_CXX=
-compiler_needs_object_CXX=no
-export_dynamic_flag_spec_CXX=
-hardcode_direct_CXX=no
-hardcode_direct_absolute_CXX=no
-hardcode_libdir_flag_spec_CXX=
-hardcode_libdir_flag_spec_ld_CXX=
-hardcode_libdir_separator_CXX=
-hardcode_minus_L_CXX=no
-hardcode_shlibpath_var_CXX=unsupported
-hardcode_automatic_CXX=no
-inherit_rpath_CXX=no
-module_cmds_CXX=
-module_expsym_cmds_CXX=
-link_all_deplibs_CXX=unknown
-old_archive_cmds_CXX=$old_archive_cmds
-no_undefined_flag_CXX=
-whole_archive_flag_spec_CXX=
-enable_shared_with_static_runtimes_CXX=no
-
-# Source file extension for C++ test sources.
-ac_ext=cpp
-
-# Object file extension for compiled C++ test sources.
-objext=o
-objext_CXX=$objext
-
-# No sense in running all these tests if we already determined that
-# the CXX compiler isn't working.  Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_caught_CXX_error" != yes; then
-  # Code to be used in simple compile tests
-  lt_simple_compile_test_code="int some_variable = 0;"
-
-  # Code to be used in simple link tests
-  lt_simple_link_test_code='int main(int, char *[]) { return(0); }'
-
-  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-  # save warnings/boilerplate of simple test code
-  ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-
-  ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-
-
-  # Allow CC to be a program name with arguments.
-  lt_save_CC=$CC
-  lt_save_LD=$LD
-  lt_save_GCC=$GCC
-  GCC=$GXX
-  lt_save_with_gnu_ld=$with_gnu_ld
-  lt_save_path_LD=$lt_cv_path_LD
-  if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
-    lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
-  else
-    $as_unset lt_cv_prog_gnu_ld
-  fi
-  if test -n "${lt_cv_path_LDCXX+set}"; then
-    lt_cv_path_LD=$lt_cv_path_LDCXX
-  else
-    $as_unset lt_cv_path_LD
-  fi
-  test -z "${LDCXX+set}" || LD=$LDCXX
-  CC=${CXX-"c++"}
-  compiler=$CC
-  compiler_CXX=$CC
-  for cc_temp in $compiler""; do
-  case $cc_temp in
-    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
-    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
-
-
-  if test -n "$compiler"; then
-    # We don't want -fno-exception when compiling C++ code, so set the
-    # no_builtin_flag separately
-    if test "$GXX" = yes; then
-      lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
-    else
-      lt_prog_compiler_no_builtin_flag_CXX=
-    fi
-
-    if test "$GXX" = yes; then
-      # Set up default GNU C++ configuration
-
-
-
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
-  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else
-  with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [\\/]* | ?:[\\/]*)
-      re_direlt='/[^/][^/]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
-      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
-fi
-if test "${lt_cv_path_LD+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some variants of GNU ld only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-	test "$with_gnu_ld" != no && break
-	;;
-      *)
-	test "$with_gnu_ld" != yes && break
-	;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if test "${lt_cv_prog_gnu_ld+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-$as_echo "$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-
-
-
-
-
-      # Check if GNU C++ uses GNU ld as the underlying linker, since the
-      # archiving commands below assume that GNU ld is being used.
-      if test "$with_gnu_ld" = yes; then
-        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
-        hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-        export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-
-        # If archive_cmds runs LD, not CC, wlarc should be empty
-        # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
-        #     investigate it a little bit more. (MM)
-        wlarc='${wl}'
-
-        # ancient GNU ld didn't support --whole-archive et. al.
-        if eval "`$CC -print-prog-name=ld` --help 2>&1" |
-	  $GREP 'no-whole-archive' > /dev/null; then
-          whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-        else
-          whole_archive_flag_spec_CXX=
-        fi
-      else
-        with_gnu_ld=no
-        wlarc=
-
-        # A generic and very simple default shared library creation
-        # command for GNU C++ for the case where it uses the native
-        # linker, instead of GNU ld.  If possible, this setting should
-        # overridden to take advantage of the native linker features on
-        # the platform it is being used on.
-        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-      fi
-
-      # Commands to make compiler produce verbose output that lists
-      # what "hidden" libraries, object files and flags are used when
-      # linking a shared library.
-      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
-
-    else
-      GXX=no
-      with_gnu_ld=no
-      wlarc=
-    fi
-
-    # PORTME: fill in a description of your system's C++ link characteristics
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-    ld_shlibs_CXX=yes
-    case $host_os in
-      aix3*)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-        ;;
-      aix[4-9]*)
-        if test "$host_cpu" = ia64; then
-          # On IA64, the linker does run time linking by default, so we don't
-          # have to do anything special.
-          aix_use_runtimelinking=no
-          exp_sym_flag='-Bexport'
-          no_entry_flag=""
-        else
-          aix_use_runtimelinking=no
-
-          # Test if we are trying to use run time linking or normal
-          # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-          # need to do runtime linking.
-          case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
-	    for ld_flag in $LDFLAGS; do
-	      case $ld_flag in
-	      *-brtl*)
-	        aix_use_runtimelinking=yes
-	        break
-	        ;;
-	      esac
-	    done
-	    ;;
-          esac
-
-          exp_sym_flag='-bexport'
-          no_entry_flag='-bnoentry'
-        fi
-
-        # When large executables or shared objects are built, AIX ld can
-        # have problems creating the table of contents.  If linking a library
-        # or program results in "error TOC overflow" add -mminimal-toc to
-        # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-        # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-        archive_cmds_CXX=''
-        hardcode_direct_CXX=yes
-        hardcode_direct_absolute_CXX=yes
-        hardcode_libdir_separator_CXX=':'
-        link_all_deplibs_CXX=yes
-        file_list_spec_CXX='${wl}-f,'
-
-        if test "$GXX" = yes; then
-          case $host_os in aix4.[012]|aix4.[012].*)
-          # We only want to do this on AIX 4.2 and lower, the check
-          # below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" &&
-	     strings "$collect2name" | $GREP resolve_lib_name >/dev/null
-	  then
-	    # We have reworked collect2
-	    :
-	  else
-	    # We have old collect2
-	    hardcode_direct_CXX=unsupported
-	    # It fails to find uninstalled libraries when the uninstalled
-	    # path is not listed in the libpath.  Setting hardcode_minus_L
-	    # to unsupported forces relinking
-	    hardcode_minus_L_CXX=yes
-	    hardcode_libdir_flag_spec_CXX='-L$libdir'
-	    hardcode_libdir_separator_CXX=
-	  fi
-          esac
-          shared_flag='-shared'
-	  if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag="$shared_flag "'${wl}-G'
-	  fi
-        else
-          # not using gcc
-          if test "$host_cpu" = ia64; then
-	  # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	  # chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-          else
-	    if test "$aix_use_runtimelinking" = yes; then
-	      shared_flag='${wl}-G'
-	    else
-	      shared_flag='${wl}-bM:SRE'
-	    fi
-          fi
-        fi
-
-        export_dynamic_flag_spec_CXX='${wl}-bexpall'
-        # It seems that -bexpall does not export symbols beginning with
-        # underscore (_), so it is better to generate a list of symbols to
-	# export.
-        always_export_symbols_CXX=yes
-        if test "$aix_use_runtimelinking" = yes; then
-          # Warning - without using the other runtime loading flags (-brtl),
-          # -berok will link without error, but may produce a broken library.
-          allow_undefined_flag_CXX='-berok'
-          # Determine the default libpath from the value encoded in an empty
-          # executable.
-          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-	/^0/ {
-	    s/^0  *\(.*\)$/\1/
-	    p
-	}
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-          hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
-
-          archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-        else
-          if test "$host_cpu" = ia64; then
-	    hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
-	    allow_undefined_flag_CXX="-z nodefs"
-	    archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
-          else
-	    # Determine the default libpath from the value encoded in an
-	    # empty executable.
-	    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-	/^0/ {
-	    s/^0  *\(.*\)$/\1/
-	    p
-	}
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-	    hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
-	    # Warning - without using the other run time loading flags,
-	    # -berok will link without error, but may produce a broken library.
-	    no_undefined_flag_CXX=' ${wl}-bernotok'
-	    allow_undefined_flag_CXX=' ${wl}-berok'
-	    # Exported symbols can be pulled into shared objects from archives
-	    whole_archive_flag_spec_CXX='$convenience'
-	    archive_cmds_need_lc_CXX=yes
-	    # This is similar to how AIX traditionally builds its shared
-	    # libraries.
-	    archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-          fi
-        fi
-        ;;
-
-      beos*)
-	if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	  allow_undefined_flag_CXX=unsupported
-	  # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
-	  # support --undefined.  This deserves some investigation.  FIXME
-	  archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	else
-	  ld_shlibs_CXX=no
-	fi
-	;;
-
-      chorus*)
-        case $cc_basename in
-          *)
-	  # FIXME: insert proper C++ library support
-	  ld_shlibs_CXX=no
-	  ;;
-        esac
-        ;;
-
-      cygwin* | mingw* | pw32* | cegcc*)
-        # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
-        # as there is no search path for DLLs.
-        hardcode_libdir_flag_spec_CXX='-L$libdir'
-        allow_undefined_flag_CXX=unsupported
-        always_export_symbols_CXX=no
-        enable_shared_with_static_runtimes_CXX=yes
-
-        if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-          archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-          # If the export-symbols file already is a .def file (1st line
-          # is EXPORTS), use it as is; otherwise, prepend...
-          archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	    cp $export_symbols $output_objdir/$soname.def;
-          else
-	    echo EXPORTS > $output_objdir/$soname.def;
-	    cat $export_symbols >> $output_objdir/$soname.def;
-          fi~
-          $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-        else
-          ld_shlibs_CXX=no
-        fi
-        ;;
-      darwin* | rhapsody*)
-
-
-  archive_cmds_need_lc_CXX=no
-  hardcode_direct_CXX=no
-  hardcode_automatic_CXX=yes
-  hardcode_shlibpath_var_CXX=unsupported
-  whole_archive_flag_spec_CXX=''
-  link_all_deplibs_CXX=yes
-  allow_undefined_flag_CXX="$_lt_dar_allow_undefined"
-  case $cc_basename in
-     ifort*) _lt_dar_can_shared=yes ;;
-     *) _lt_dar_can_shared=$GCC ;;
-  esac
-  if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=echo
-    archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
-    module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
-    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
-    module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
-       if test "$lt_cv_apple_cc_single_mod" != "yes"; then
-      archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
-      archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
-    fi
-
-  else
-  ld_shlibs_CXX=no
-  fi
-
-	;;
-
-      dgux*)
-        case $cc_basename in
-          ec++*)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          ghcx*)
-	    # Green Hills C++ Compiler
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-        esac
-        ;;
-
-      freebsd[12]*)
-        # C++ shared libraries reported to be fairly broken before
-	# switch to ELF
-        ld_shlibs_CXX=no
-        ;;
-
-      freebsd-elf*)
-        archive_cmds_need_lc_CXX=no
-        ;;
-
-      freebsd* | dragonfly*)
-        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
-        # conventions
-        ld_shlibs_CXX=yes
-        ;;
-
-      gnu*)
-        ;;
-
-      hpux9*)
-        hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
-        hardcode_libdir_separator_CXX=:
-        export_dynamic_flag_spec_CXX='${wl}-E'
-        hardcode_direct_CXX=yes
-        hardcode_minus_L_CXX=yes # Not in the search PATH,
-				             # but as the default
-				             # location of the library.
-
-        case $cc_basename in
-          CC*)
-            # FIXME: insert proper C++ library support
-            ld_shlibs_CXX=no
-            ;;
-          aCC*)
-            archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-            # Commands to make compiler produce verbose output that lists
-            # what "hidden" libraries, object files and flags are used when
-            # linking a shared library.
-            #
-            # There doesn't appear to be a way to prevent this compiler from
-            # explicitly linking system object files so we need to strip them
-            # from the output so that they don't get included in the library
-            # dependencies.
-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
-            ;;
-          *)
-            if test "$GXX" = yes; then
-              archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-            else
-              # FIXME: insert proper C++ library support
-              ld_shlibs_CXX=no
-            fi
-            ;;
-        esac
-        ;;
-
-      hpux10*|hpux11*)
-        if test $with_gnu_ld = no; then
-	  hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
-	  hardcode_libdir_separator_CXX=:
-
-          case $host_cpu in
-            hppa*64*|ia64*)
-              ;;
-            *)
-	      export_dynamic_flag_spec_CXX='${wl}-E'
-              ;;
-          esac
-        fi
-        case $host_cpu in
-          hppa*64*|ia64*)
-            hardcode_direct_CXX=no
-            hardcode_shlibpath_var_CXX=no
-            ;;
-          *)
-            hardcode_direct_CXX=yes
-            hardcode_direct_absolute_CXX=yes
-            hardcode_minus_L_CXX=yes # Not in the search PATH,
-					         # but as the default
-					         # location of the library.
-            ;;
-        esac
-
-        case $cc_basename in
-          CC*)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          aCC*)
-	    case $host_cpu in
-	      hppa*64*)
-	        archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	      ia64*)
-	        archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	      *)
-	        archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	    esac
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
-	    ;;
-          *)
-	    if test "$GXX" = yes; then
-	      if test $with_gnu_ld = no; then
-	        case $host_cpu in
-	          hppa*64*)
-	            archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	          ia64*)
-	            archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	          *)
-	            archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	        esac
-	      fi
-	    else
-	      # FIXME: insert proper C++ library support
-	      ld_shlibs_CXX=no
-	    fi
-	    ;;
-        esac
-        ;;
-
-      interix[3-9]*)
-	hardcode_direct_CXX=no
-	hardcode_shlibpath_var_CXX=no
-	hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	export_dynamic_flag_spec_CXX='${wl}-E'
-	# Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-	# Instead, shared libraries are loaded at an image base (0x10000000 by
-	# default) and relocated if they conflict, which is a slow very memory
-	# consuming and fragmenting process.  To avoid this, we pick a random,
-	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-	archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-	archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-	;;
-      irix5* | irix6*)
-        case $cc_basename in
-          CC*)
-	    # SGI C++
-	    archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
-	    # necessary to make sure instantiated templates are included
-	    # in the archive.
-	    old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
-	    ;;
-          *)
-	    if test "$GXX" = yes; then
-	      if test "$with_gnu_ld" = no; then
-	        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	      else
-	        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib'
-	      fi
-	    fi
-	    link_all_deplibs_CXX=yes
-	    ;;
-        esac
-        hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-        hardcode_libdir_separator_CXX=:
-        inherit_rpath_CXX=yes
-        ;;
-
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
-        case $cc_basename in
-          KCC*)
-	    # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	    # KCC will only create a shared library if the output file
-	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
-	    # to its proper name (with version) after linking.
-	    archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-	    archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
-
-	    hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -Bstatic", where "CC" is the KAI C++ compiler.
-	    old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
-	    ;;
-	  icpc* | ecpc* )
-	    # Intel C++
-	    with_gnu_ld=yes
-	    # version 8.0 and above of icpc choke on multiply defined symbols
-	    # if we add $predep_objects and $postdep_objects, however 7.1 and
-	    # earlier do not add the objects themselves.
-	    case `$CC -V 2>&1` in
-	      *"Version 7."*)
-	        archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-		archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-		;;
-	      *)  # Version 8.0 or newer
-	        tmp_idyn=
-	        case $host_cpu in
-		  ia64*) tmp_idyn=' -i_dynamic';;
-		esac
-	        archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-		archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-		;;
-	    esac
-	    archive_cmds_need_lc_CXX=no
-	    hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-	    whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	    ;;
-          pgCC* | pgcpp*)
-            # Portland Group C++ compiler
-	    case `$CC -V` in
-	    *pgCC\ [1-5]* | *pgcpp\ [1-5]*)
-	      prelink_cmds_CXX='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
-		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
-	      old_archive_cmds_CXX='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
-		$RANLIB $oldlib'
-	      archive_cmds_CXX='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-	      archive_expsym_cmds_CXX='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
-	      ;;
-	    *) # Version 6 will use weak symbols
-	      archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-	      archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
-	      ;;
-	    esac
-
-	    hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
-	    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-	    whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
-            ;;
-	  cxx*)
-	    # Compaq C++
-	    archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
-	    runpath_var=LD_RUN_PATH
-	    hardcode_libdir_flag_spec_CXX='-rpath $libdir'
-	    hardcode_libdir_separator_CXX=:
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
-	    ;;
-	  xl*)
-	    # IBM XL 8.0 on PPC, with GNU ld
-	    hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-	    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-	    archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    if test "x$supports_anon_versioning" = xyes; then
-	      archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~
-		cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-		echo "local: *; };" >> $output_objdir/$libname.ver~
-		$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-	    fi
-	    ;;
-	  *)
-	    case `$CC -V 2>&1 | sed 5q` in
-	    *Sun\ C*)
-	      # Sun C++ 5.9
-	      no_undefined_flag_CXX=' -zdefs'
-	      archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	      archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
-	      hardcode_libdir_flag_spec_CXX='-R$libdir'
-	      whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
-	      compiler_needs_object_CXX=yes
-
-	      # Not sure whether something based on
-	      # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
-	      # would be better.
-	      output_verbose_link_cmd='echo'
-
-	      # Archives containing C++ object files must be created using
-	      # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	      # necessary to make sure instantiated templates are included
-	      # in the archive.
-	      old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
-	      ;;
-	    esac
-	    ;;
-	esac
-	;;
-
-      lynxos*)
-        # FIXME: insert proper C++ library support
-	ld_shlibs_CXX=no
-	;;
-
-      m88k*)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-	;;
-
-      mvs*)
-        case $cc_basename in
-          cxx*)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-	  *)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-	esac
-	;;
-
-      netbsd*)
-        if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	  archive_cmds_CXX='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
-	  wlarc=
-	  hardcode_libdir_flag_spec_CXX='-R$libdir'
-	  hardcode_direct_CXX=yes
-	  hardcode_shlibpath_var_CXX=no
-	fi
-	# Workaround some broken pre-1.5 toolchains
-	output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
-	;;
-
-      *nto* | *qnx*)
-        ld_shlibs_CXX=yes
-	;;
-
-      openbsd2*)
-        # C++ shared libraries are fairly broken
-	ld_shlibs_CXX=no
-	;;
-
-      openbsd*)
-	if test -f /usr/libexec/ld.so; then
-	  hardcode_direct_CXX=yes
-	  hardcode_shlibpath_var_CXX=no
-	  hardcode_direct_absolute_CXX=yes
-	  archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-	  hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	    archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
-	    export_dynamic_flag_spec_CXX='${wl}-E'
-	    whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-	  fi
-	  output_verbose_link_cmd=echo
-	else
-	  ld_shlibs_CXX=no
-	fi
-	;;
-
-      osf3* | osf4* | osf5*)
-        case $cc_basename in
-          KCC*)
-	    # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	    # KCC will only create a shared library if the output file
-	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
-	    # to its proper name (with version) after linking.
-	    archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-	    hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	    hardcode_libdir_separator_CXX=:
-
-	    # Archives containing C++ object files must be created using
-	    # the KAI C++ compiler.
-	    case $host in
-	      osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;;
-	      *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;;
-	    esac
-	    ;;
-          RCC*)
-	    # Rational C++ 2.4.1
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          cxx*)
-	    case $host in
-	      osf3*)
-	        allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
-	        archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-	        hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-		;;
-	      *)
-	        allow_undefined_flag_CXX=' -expect_unresolved \*'
-	        archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-	        archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
-	          echo "-hidden">> $lib.exp~
-	          $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~
-	          $RM $lib.exp'
-	        hardcode_libdir_flag_spec_CXX='-rpath $libdir'
-		;;
-	    esac
-
-	    hardcode_libdir_separator_CXX=:
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
-	    ;;
-	  *)
-	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	      allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
-	      case $host in
-	        osf3*)
-	          archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-		  ;;
-	        *)
-	          archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-		  ;;
-	      esac
-
-	      hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-	      hardcode_libdir_separator_CXX=:
-
-	      # Commands to make compiler produce verbose output that lists
-	      # what "hidden" libraries, object files and flags are used when
-	      # linking a shared library.
-	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
-
-	    else
-	      # FIXME: insert proper C++ library support
-	      ld_shlibs_CXX=no
-	    fi
-	    ;;
-        esac
-        ;;
-
-      psos*)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-        ;;
-
-      sunos4*)
-        case $cc_basename in
-          CC*)
-	    # Sun C++ 4.x
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          lcc*)
-	    # Lucid
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-        esac
-        ;;
-
-      solaris*)
-        case $cc_basename in
-          CC*)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-            archive_cmds_need_lc_CXX=yes
-	    no_undefined_flag_CXX=' -zdefs'
-	    archive_cmds_CXX='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	    archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	      $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	    hardcode_libdir_flag_spec_CXX='-R$libdir'
-	    hardcode_shlibpath_var_CXX=no
-	    case $host_os in
-	      solaris2.[0-5] | solaris2.[0-5].*) ;;
-	      *)
-		# The compiler driver will combine and reorder linker options,
-		# but understands `-z linker_flag'.
-	        # Supported since Solaris 2.6 (maybe 2.5.1?)
-		whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract'
-	        ;;
-	    esac
-	    link_all_deplibs_CXX=yes
-
-	    output_verbose_link_cmd='echo'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	    # necessary to make sure instantiated templates are included
-	    # in the archive.
-	    old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
-	    ;;
-          gcx*)
-	    # Green Hills C++ Compiler
-	    archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
-	    # The C++ compiler must be used to create the archive.
-	    old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
-	    ;;
-          *)
-	    # GNU C++ compiler with Solaris linker
-	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	      no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
-	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-	        archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	        archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-		  $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	        # Commands to make compiler produce verbose output that lists
-	        # what "hidden" libraries, object files and flags are used when
-	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
-	      else
-	        # g++ 2.7 appears to require `-G' NOT `-shared' on this
-	        # platform.
-	        archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	        archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-		  $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	        # Commands to make compiler produce verbose output that lists
-	        # what "hidden" libraries, object files and flags are used when
-	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
-	      fi
-
-	      hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
-	      case $host_os in
-		solaris2.[0-5] | solaris2.[0-5].*) ;;
-		*)
-		  whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-		  ;;
-	      esac
-	    fi
-	    ;;
-        esac
-        ;;
-
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
-      no_undefined_flag_CXX='${wl}-z,text'
-      archive_cmds_need_lc_CXX=no
-      hardcode_shlibpath_var_CXX=no
-      runpath_var='LD_RUN_PATH'
-
-      case $cc_basename in
-        CC*)
-	  archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-      esac
-      ;;
-
-      sysv5* | sco3.2v5* | sco5v6*)
-	# Note: We can NOT use -z defs as we might desire, because we do not
-	# link with -lc, and that would cause any symbols used from libc to
-	# always be unresolved, which means just about no library would
-	# ever link correctly.  If we're not using GNU ld we use -z text
-	# though, which does catch some bad symbols but isn't as heavy-handed
-	# as -z defs.
-	no_undefined_flag_CXX='${wl}-z,text'
-	allow_undefined_flag_CXX='${wl}-z,nodefs'
-	archive_cmds_need_lc_CXX=no
-	hardcode_shlibpath_var_CXX=no
-	hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir'
-	hardcode_libdir_separator_CXX=':'
-	link_all_deplibs_CXX=yes
-	export_dynamic_flag_spec_CXX='${wl}-Bexport'
-	runpath_var='LD_RUN_PATH'
-
-	case $cc_basename in
-          CC*)
-	    archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    ;;
-	  *)
-	    archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    ;;
-	esac
-      ;;
-
-      tandem*)
-        case $cc_basename in
-          NCC*)
-	    # NonStop-UX NCC 3.20
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-        esac
-        ;;
-
-      vxworks*)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-        ;;
-
-      *)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-        ;;
-    esac
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
-$as_echo "$ld_shlibs_CXX" >&6; }
-    test "$ld_shlibs_CXX" = no && can_build_shared=no
-
-    GCC_CXX="$GXX"
-    LD_CXX="$LD"
-
-    ## CAVEAT EMPTOR:
-    ## There is no encapsulation within the following macros, do not change
-    ## the running order or otherwise move them around unless you know exactly
-    ## what you are doing...
-    # Dependencies to place before and after the object being linked:
-predep_objects_CXX=
-postdep_objects_CXX=
-predeps_CXX=
-postdeps_CXX=
-compiler_lib_search_path_CXX=
-
-cat > conftest.$ac_ext <<_LT_EOF
-class Foo
-{
-public:
-  Foo (void) { a = 0; }
-private:
-  int a;
-};
-_LT_EOF
-
-if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  # Parse the compiler output and extract the necessary
-  # objects, libraries and library flags.
-
-  # Sentinel used to keep track of whether or not we are before
-  # the conftest object file.
-  pre_test_object_deps_done=no
-
-  for p in `eval "$output_verbose_link_cmd"`; do
-    case $p in
-
-    -L* | -R* | -l*)
-       # Some compilers place space between "-{L,R}" and the path.
-       # Remove the space.
-       if test $p = "-L" ||
-          test $p = "-R"; then
-	 prev=$p
-	 continue
-       else
-	 prev=
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-	 case $p in
-	 -L* | -R*)
-	   # Internal compiler library paths should come after those
-	   # provided the user.  The postdeps already come after the
-	   # user supplied libs so there is no need to process them.
-	   if test -z "$compiler_lib_search_path_CXX"; then
-	     compiler_lib_search_path_CXX="${prev}${p}"
-	   else
-	     compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}"
-	   fi
-	   ;;
-	 # The "-l" case would never come before the object being
-	 # linked, so don't bother handling this case.
-	 esac
-       else
-	 if test -z "$postdeps_CXX"; then
-	   postdeps_CXX="${prev}${p}"
-	 else
-	   postdeps_CXX="${postdeps_CXX} ${prev}${p}"
-	 fi
-       fi
-       ;;
-
-    *.$objext)
-       # This assumes that the test object file only shows up
-       # once in the compiler output.
-       if test "$p" = "conftest.$objext"; then
-	 pre_test_object_deps_done=yes
-	 continue
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-	 if test -z "$predep_objects_CXX"; then
-	   predep_objects_CXX="$p"
-	 else
-	   predep_objects_CXX="$predep_objects_CXX $p"
-	 fi
-       else
-	 if test -z "$postdep_objects_CXX"; then
-	   postdep_objects_CXX="$p"
-	 else
-	   postdep_objects_CXX="$postdep_objects_CXX $p"
-	 fi
-       fi
-       ;;
-
-    *) ;; # Ignore the rest.
-
-    esac
-  done
-
-  # Clean up.
-  rm -f a.out a.exe
-else
-  echo "libtool.m4: error: problem compiling CXX test program"
-fi
-
-$RM -f confest.$objext
-
-# PORTME: override above test on systems where it is broken
-case $host_os in
-interix[3-9]*)
-  # Interix 3.5 installs completely hosed .la files for C++, so rather than
-  # hack all around it, let's just trust "g++" to DTRT.
-  predep_objects_CXX=
-  postdep_objects_CXX=
-  postdeps_CXX=
-  ;;
-
-linux*)
-  case `$CC -V 2>&1 | sed 5q` in
-  *Sun\ C*)
-    # Sun C++ 5.9
-
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    if test "$solaris_use_stlport4" != yes; then
-      postdeps_CXX='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-
-solaris*)
-  case $cc_basename in
-  CC*)
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    # Adding this requires a known-good setup of shared libraries for
-    # Sun compiler versions before 5.6, else PIC objects from an old
-    # archive will be linked into the output, leading to subtle bugs.
-    if test "$solaris_use_stlport4" != yes; then
-      postdeps_CXX='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-esac
-
-
-case " $postdeps_CXX " in
-*" -lc "*) archive_cmds_need_lc_CXX=no ;;
-esac
- compiler_lib_search_dirs_CXX=
-if test -n "${compiler_lib_search_path_CXX}"; then
- compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-    lt_prog_compiler_wl_CXX=
-lt_prog_compiler_pic_CXX=
-lt_prog_compiler_static_CXX=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-
-  # C++ specific cases for pic, static, wl, etc.
-  if test "$GXX" = yes; then
-    lt_prog_compiler_wl_CXX='-Wl,'
-    lt_prog_compiler_static_CXX='-static'
-
-    case $host_os in
-    aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	lt_prog_compiler_static_CXX='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            lt_prog_compiler_pic_CXX='-fPIC'
-        ;;
-      m68k)
-            # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
-            lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
-        ;;
-      esac
-      ;;
-
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-    mingw* | cygwin* | os2* | pw32* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      # Although the cygwin gcc ignores -fPIC, still need this for old-style
-      # (--disable-auto-import) libraries
-      lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
-      ;;
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      lt_prog_compiler_pic_CXX='-fno-common'
-      ;;
-    *djgpp*)
-      # DJGPP does not support shared libraries at all
-      lt_prog_compiler_pic_CXX=
-      ;;
-    interix[3-9]*)
-      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-      # Instead, we relocate shared libraries at runtime.
-      ;;
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	lt_prog_compiler_pic_CXX=-Kconform_pic
-      fi
-      ;;
-    hpux*)
-      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
-      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
-      # sets the default TLS model and affects inlining.
-      case $host_cpu in
-      hppa*64*)
-	;;
-      *)
-	lt_prog_compiler_pic_CXX='-fPIC'
-	;;
-      esac
-      ;;
-    *qnx* | *nto*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      lt_prog_compiler_pic_CXX='-fPIC -shared'
-      ;;
-    *)
-      lt_prog_compiler_pic_CXX='-fPIC'
-      ;;
-    esac
-  else
-    case $host_os in
-      aix[4-9]*)
-	# All AIX code is PIC.
-	if test "$host_cpu" = ia64; then
-	  # AIX 5 now supports IA64 processor
-	  lt_prog_compiler_static_CXX='-Bstatic'
-	else
-	  lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'
-	fi
-	;;
-      chorus*)
-	case $cc_basename in
-	cxch68*)
-	  # Green Hills C++ Compiler
-	  # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
-	  ;;
-	esac
-	;;
-      dgux*)
-	case $cc_basename in
-	  ec++*)
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    ;;
-	  ghcx*)
-	    # Green Hills C++ Compiler
-	    lt_prog_compiler_pic_CXX='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      freebsd* | dragonfly*)
-	# FreeBSD uses GNU C++
-	;;
-      hpux9* | hpux10* | hpux11*)
-	case $cc_basename in
-	  CC*)
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
-	    if test "$host_cpu" != ia64; then
-	      lt_prog_compiler_pic_CXX='+Z'
-	    fi
-	    ;;
-	  aCC*)
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
-	    case $host_cpu in
-	    hppa*64*|ia64*)
-	      # +Z the default
-	      ;;
-	    *)
-	      lt_prog_compiler_pic_CXX='+Z'
-	      ;;
-	    esac
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      interix*)
-	# This is c89, which is MS Visual C++ (no shared libs)
-	# Anyone wants to do a port?
-	;;
-      irix5* | irix6* | nonstopux*)
-	case $cc_basename in
-	  CC*)
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_static_CXX='-non_shared'
-	    # CC pic flag -KPIC is the default.
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
-	case $cc_basename in
-	  KCC*)
-	    # KAI C++ Compiler
-	    lt_prog_compiler_wl_CXX='--backend -Wl,'
-	    lt_prog_compiler_pic_CXX='-fPIC'
-	    ;;
-	  ecpc* )
-	    # old Intel C++ for x86_64 which still supported -KPIC.
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    lt_prog_compiler_static_CXX='-static'
-	    ;;
-	  icpc* )
-	    # Intel C++, used to be incompatible with GCC.
-	    # ICC 10 doesn't accept -KPIC any more.
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-fPIC'
-	    lt_prog_compiler_static_CXX='-static'
-	    ;;
-	  pgCC* | pgcpp*)
-	    # Portland Group C++ compiler
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-fpic'
-	    lt_prog_compiler_static_CXX='-Bstatic'
-	    ;;
-	  cxx*)
-	    # Compaq C++
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    lt_prog_compiler_pic_CXX=
-	    lt_prog_compiler_static_CXX='-non_shared'
-	    ;;
-	  xlc* | xlC*)
-	    # IBM XL 8.0 on PPC
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-qpic'
-	    lt_prog_compiler_static_CXX='-qstaticlink'
-	    ;;
-	  *)
-	    case `$CC -V 2>&1 | sed 5q` in
-	    *Sun\ C*)
-	      # Sun C++ 5.9
-	      lt_prog_compiler_pic_CXX='-KPIC'
-	      lt_prog_compiler_static_CXX='-Bstatic'
-	      lt_prog_compiler_wl_CXX='-Qoption ld '
-	      ;;
-	    esac
-	    ;;
-	esac
-	;;
-      lynxos*)
-	;;
-      m88k*)
-	;;
-      mvs*)
-	case $cc_basename in
-	  cxx*)
-	    lt_prog_compiler_pic_CXX='-W c,exportall'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      netbsd* | netbsdelf*-gnu)
-	;;
-      *qnx* | *nto*)
-        # QNX uses GNU C++, but need to define -shared option too, otherwise
-        # it will coredump.
-        lt_prog_compiler_pic_CXX='-fPIC -shared'
-        ;;
-      osf3* | osf4* | osf5*)
-	case $cc_basename in
-	  KCC*)
-	    lt_prog_compiler_wl_CXX='--backend -Wl,'
-	    ;;
-	  RCC*)
-	    # Rational C++ 2.4.1
-	    lt_prog_compiler_pic_CXX='-pic'
-	    ;;
-	  cxx*)
-	    # Digital/Compaq C++
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    lt_prog_compiler_pic_CXX=
-	    lt_prog_compiler_static_CXX='-non_shared'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      psos*)
-	;;
-      solaris*)
-	case $cc_basename in
-	  CC*)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    lt_prog_compiler_static_CXX='-Bstatic'
-	    lt_prog_compiler_wl_CXX='-Qoption ld '
-	    ;;
-	  gcx*)
-	    # Green Hills C++ Compiler
-	    lt_prog_compiler_pic_CXX='-PIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sunos4*)
-	case $cc_basename in
-	  CC*)
-	    # Sun C++ 4.x
-	    lt_prog_compiler_pic_CXX='-pic'
-	    lt_prog_compiler_static_CXX='-Bstatic'
-	    ;;
-	  lcc*)
-	    # Lucid
-	    lt_prog_compiler_pic_CXX='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-	case $cc_basename in
-	  CC*)
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    lt_prog_compiler_static_CXX='-Bstatic'
-	    ;;
-	esac
-	;;
-      tandem*)
-	case $cc_basename in
-	  NCC*)
-	    # NonStop-UX NCC 3.20
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      vxworks*)
-	;;
-      *)
-	lt_prog_compiler_can_build_shared_CXX=no
-	;;
-    esac
-  fi
-
-case $host_os in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    lt_prog_compiler_pic_CXX=
-    ;;
-  *)
-    lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
-    ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5
-$as_echo "$lt_prog_compiler_pic_CXX" >&6; }
-
-
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic_CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
-$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; }
-if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_pic_works_CXX=no
-   ac_outfile=conftest.$ac_objext
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13698: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:13702: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_pic_works_CXX=yes
-     fi
-   fi
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; }
-
-if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then
-    case $lt_prog_compiler_pic_CXX in
-     "" | " "*) ;;
-     *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
-     esac
-else
-    lt_prog_compiler_pic_CXX=
-     lt_prog_compiler_can_build_shared_CXX=no
-fi
-
-fi
-
-
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_static_works_CXX=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
-   echo "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The linker can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&5
-       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
-       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_cv_prog_compiler_static_works_CXX=yes
-       fi
-     else
-       lt_cv_prog_compiler_static_works_CXX=yes
-     fi
-   fi
-   $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; }
-
-if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then
-    :
-else
-    lt_prog_compiler_static_CXX=
-fi
-
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_c_o_CXX=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13797: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:13801: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_c_o_CXX=yes
-     fi
-   fi
-   chmod u+w . 2>&5
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_c_o_CXX=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13849: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:13853: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_c_o_CXX=yes
-     fi
-   fi
-   chmod u+w . 2>&5
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
-
-
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-$as_echo_n "checking if we can lock with hard links... " >&6; }
-  hard_links=yes
-  $RM conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-$as_echo "$hard_links" >&6; }
-  if test "$hard_links" = no; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-
-  export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  case $host_os in
-  aix[4-9]*)
-    # If we're using GNU nm, then we don't want the "-C" option.
-    # -C means demangle to AIX nm, but means don't demangle with GNU nm
-    if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-      export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-    else
-      export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-    fi
-    ;;
-  pw32*)
-    export_symbols_cmds_CXX="$ltdll_cmds"
-  ;;
-  cygwin* | mingw* | cegcc*)
-    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  linux* | k*bsd*-gnu)
-    link_all_deplibs_CXX=no
-  ;;
-  *)
-    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  esac
-  exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
-$as_echo "$ld_shlibs_CXX" >&6; }
-test "$ld_shlibs_CXX" = no && can_build_shared=no
-
-with_gnu_ld_CXX=$with_gnu_ld
-
-
-
-
-
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc_CXX" in
-x|xyes)
-  # Assume -lc should be added
-  archive_cmds_need_lc_CXX=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $archive_cmds_CXX in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-      $RM conftest*
-      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$lt_prog_compiler_wl_CXX
-	pic_flag=$lt_prog_compiler_pic_CXX
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
-        allow_undefined_flag_CXX=
-        if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
-  (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-        then
-	  archive_cmds_need_lc_CXX=no
-        else
-	  archive_cmds_need_lc_CXX=yes
-        fi
-        allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $RM conftest*
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_CXX" >&5
-$as_echo "$archive_cmds_need_lc_CXX" >&6; }
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-$as_echo_n "checking dynamic linker characteristics... " >&6; }
-
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix[4-9]*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  case $host_cpu in
-  powerpc)
-    # Since July 2007 AmigaOS4 officially supports .so libraries.
-    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    ;;
-  m68k)
-    library_names_spec='$libname.ixlibrary $libname.a'
-    # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-    ;;
-  esac
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[45]*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname~
-      chmod a+x \$dldir/$dlname~
-      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
-        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
-      fi'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw* | cegcc*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-freebsd* | dragonfly*)
-  # DragonFly does not have aout.  When/if they implement a new
-  # versioning mechanism, adjust this.
-  if test -x /usr/bin/objformat; then
-    objformat=`/usr/bin/objformat`
-  else
-    case $host_os in
-    freebsd[123]*) objformat=aout ;;
-    *) objformat=elf ;;
-    esac
-  fi
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[01]* | freebsdelf3.[01]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
-  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  *) # from 4.6 on, and DragonFly
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case $host_cpu in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  hppa*64*)
-    shrext_cmds='.sl'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-interix[3-9]*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # Some binutils ld are patched to set DT_RUNPATH
-  save_LDFLAGS=$LDFLAGS
-  save_libdir=$libdir
-  eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
-       LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
-  shlibpath_overrides_runpath=yes
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-  LDFLAGS=$save_LDFLAGS
-  libdir=$save_libdir
-
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-netbsdelf*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='NetBSD ld.elf_so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-*nto* | *qnx*)
-  version_type=qnx
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='ldqnx.so'
-  ;;
-
-openbsd*)
-  version_type=sunos
-  sys_lib_dlsearch_path_spec="/usr/lib"
-  need_lib_prefix=no
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
-    *)				need_version=no  ;;
-  esac
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-	shlibpath_overrides_runpath=no
-	;;
-      *)
-	shlibpath_overrides_runpath=yes
-	;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-rdos*)
-  dynamic_linker=no
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  version_type=freebsd-elf
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  if test "$with_gnu_ld" = yes; then
-    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
-  else
-    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
-    case $host_os in
-      sco3.2v5*)
-        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
-	;;
-    esac
-  fi
-  sys_lib_dlsearch_path_spec='/usr/lib'
-  ;;
-
-tpf*)
-  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
-hardcode_action_CXX=
-if test -n "$hardcode_libdir_flag_spec_CXX" ||
-   test -n "$runpath_var_CXX" ||
-   test "X$hardcode_automatic_CXX" = "Xyes" ; then
-
-  # We can hardcode non-existent directories.
-  if test "$hardcode_direct_CXX" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no &&
-     test "$hardcode_minus_L_CXX" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action_CXX=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action_CXX=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action_CXX=unsupported
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5
-$as_echo "$hardcode_action_CXX" >&6; }
-
-if test "$hardcode_action_CXX" = relink ||
-   test "$inherit_rpath_CXX" = yes; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-
-
-
-
-
-
-  fi # test -n "$compiler"
-
-  CC=$lt_save_CC
-  LDCXX=$LD
-  LD=$lt_save_LD
-  GCC=$lt_save_GCC
-  with_gnu_ld=$lt_save_with_gnu_ld
-  lt_cv_path_LDCXX=$lt_cv_path_LD
-  lt_cv_path_LD=$lt_save_path_LD
-  lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
-  lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-fi # test "$_lt_caught_CXX_error" != yes
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-
-
-
-
-
-
-
-
-
-        ac_config_commands="$ac_config_commands libtool"
-
-
-
-
-# Only expand once:
-
-
-
-# Check whether --enable-double was given.
-if test "${enable_double+set}" = set; then :
-  enableval=$enable_double; case "${enableval}" in
-  yes) double=true ;;
-  no)  double=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-double" "$LINENO" 5  ;;
-esac
-else
-  double=false
-fi
-
-
-if (test x$double = xtrue) ;then
-
-$as_echo "#define MGL_USE_DOUBLE 1" >>confdefs.h
-
-else
-
-$as_echo "#define MGL_USE_DOUBLE 0" >>confdefs.h
-
-fi
-
-# Check whether --enable-all was given.
-if test "${enable_all+set}" = set; then :
-  enableval=$enable_all; case "${enableval}" in
-  yes) all=true ;;
-  no)  all=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-all" "$LINENO" 5  ;;
-esac
-else
-  all=false
-fi
-
-
-# Check whether --enable-langall was given.
-if test "${enable_langall+set}" = set; then :
-  enableval=$enable_langall; case "${enableval}" in
-  yes) langall=true ;;
-  no)  langall=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-langall" "$LINENO" 5  ;;
-esac
-else
-  langall=false
-fi
-
-
-# Check whether --enable-pthread was given.
-if test "${enable_pthread+set}" = set; then :
-  enableval=$enable_pthread; case "${enableval}" in
-  yes) pthread=true ;;
-  no)  pthread=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-pthread" "$LINENO" 5  ;;
-esac
-else
-  pthread=true
-fi
-
-ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default"
-if test "x$ac_cv_header_pthread_h" = x""yes; then :
-  (test x$all = xtrue || test x$pthread = xtrue) && PTHREAD_FLAGS=-DHAVE_PTHREAD
-else
-  (test x$all = xtrue || test x$pthread = xtrue) && echo "Please install posix threads headers" && exit
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lpthread" >&5
-$as_echo_n "checking for main in -lpthread... " >&6; }
-if test "${ac_cv_lib_pthread_main+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpthread  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_pthread_main=yes
-else
-  ac_cv_lib_pthread_main=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_main" >&5
-$as_echo "$ac_cv_lib_pthread_main" >&6; }
-if test "x$ac_cv_lib_pthread_main" = x""yes; then :
-  (test x$all = xtrue || test x$pthread = xtrue) && PTHREAD_LIBS=-lpthread
-else
-  (test x$all = xtrue || test x$pthread = xtrue) && echo "Please install posix threads library" && exit
-fi
-
- if test x$pthread = xtrue; then
-  USE_PTHREAD_TRUE=
-  USE_PTHREAD_FALSE='#'
-else
-  USE_PTHREAD_TRUE='#'
-  USE_PTHREAD_FALSE=
-fi
-
-
-# Check whether --enable-gsl was given.
-if test "${enable_gsl+set}" = set; then :
-  enableval=$enable_gsl; case "${enableval}" in
-  yes) gsl=true ;;
-  no)  gsl=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-gsl" "$LINENO" 5  ;;
-esac
-else
-  gsl=true
-fi
-
-
-if (test x$all = xtrue || test x$gsl = xtrue) ;then
-    GSL_PROG=gsl-config
-    # Extract the first word of "$GSL_PROG", so it can be a program name with args.
-set dummy $GSL_PROG; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_GSL_FLAGS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$GSL_FLAGS"; then
-  ac_cv_prog_GSL_FLAGS="$GSL_FLAGS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_GSL_FLAGS="`$GSL_PROG --cflags`"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-GSL_FLAGS=$ac_cv_prog_GSL_FLAGS
-if test -n "$GSL_FLAGS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GSL_FLAGS" >&5
-$as_echo "$GSL_FLAGS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    # Extract the first word of "$GSL_PROG", so it can be a program name with args.
-set dummy $GSL_PROG; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_GSL_LIBS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$GSL_LIBS"; then
-  ac_cv_prog_GSL_LIBS="$GSL_LIBS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_GSL_LIBS="`$GSL_PROG --libs`"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-GSL_LIBS=$ac_cv_prog_GSL_LIBS
-if test -n "$GSL_LIBS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GSL_LIBS" >&5
-$as_echo "$GSL_LIBS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    if test "$GSL_LIBS" ;then
-	test_gsl=true
-    else
-	echo "Please install gsl headers and libraries and make sure that \
-	path to $GSL_PROG exist in your PATH"
-	exit
-    fi
-else
-    GSL_FLAGS=-DNO_GSL
-
-fi
- if test x$test_gsl = xtrue; then
-  USE_GSL_TRUE=
-  USE_GSL_FALSE='#'
-else
-  USE_GSL_TRUE='#'
-  USE_GSL_FALSE=
-fi
-
-
-# Check whether --enable-glut was given.
-if test "${enable_glut+set}" = set; then :
-  enableval=$enable_glut; case "${enableval}" in
-  yes) glut=true ;;
-  no)  glut=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-glut" "$LINENO" 5  ;;
-esac
-else
-  glut=false
-fi
-
-
-case "${host}" in
-  *darwin*)
-	GL_LIBS="-framework OpenGL"
-
-	if (test x$all = xtrue || test x$glut = xtrue) ;then
-	    GLUT_LIBS="-framework GLUT -framework OpenGL"
-
-	fi
-       ;;
-
-  *w32*)
-	GL_LIBS=opengl32
-	ac_fn_c_check_header_mongrel "$LINENO" "GL/gl.h" "ac_cv_header_GL_gl_h" "$ac_includes_default"
-if test "x$ac_cv_header_GL_gl_h" = x""yes; then :
-
-else
-  echo "Please install OpenGL headers (GL/gl.h)"; exit
-fi
-
-
-	as_ac_Lib=`$as_echo "ac_cv_lib_${GL_LIBS}''_main" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -l${GL_LIBS}" >&5
-$as_echo_n "checking for main in -l${GL_LIBS}... " >&6; }
-if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-l${GL_LIBS}  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$as_ac_Lib=yes"
-else
-  eval "$as_ac_Lib=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-eval ac_res=\$$as_ac_Lib
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
-  GL_LIBS=-l${GL_LIBS}
-else
-  echo "Please install OpenGL library (lib${GL_LIBS}.a)"; exit
-fi
-
-	GLUT_LIBS=glut32
-	ac_fn_c_check_header_mongrel "$LINENO" "GL/glut.h" "ac_cv_header_GL_glut_h" "$ac_includes_default"
-if test "x$ac_cv_header_GL_glut_h" = x""yes; then :
-  (test x$all = xtrue || test x$glut = xtrue) && GLUT_FLAGS=-DHAVE_GLUT
-else
-  (test x$all = xtrue || test x$glut = xtrue) && (echo "Please install FreeGLUT headers (GL/glut.h)" && exit)
-fi
-
-
-	as_ac_Lib=`$as_echo "ac_cv_lib_${GLUT_LIBS}''_main" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -l${GLUT_LIBS}" >&5
-$as_echo_n "checking for main in -l${GLUT_LIBS}... " >&6; }
-if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-l${GLUT_LIBS}  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$as_ac_Lib=yes"
-else
-  eval "$as_ac_Lib=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-eval ac_res=\$$as_ac_Lib
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
-  (test x$all = xtrue || test x$glut = xtrue) && GLUT_LIBS=-l${GLUT_LIBS}
-else
-  (test x$all = xtrue || test x$glut = xtrue) && echo "Please install FreeGLUT library (lib${GLUT_LIBS}.a)" && exit
-fi
-
-       ;;
-
-       *)
-	GL_LIBS=GL
-	ac_fn_c_check_header_mongrel "$LINENO" "GL/gl.h" "ac_cv_header_GL_gl_h" "$ac_includes_default"
-if test "x$ac_cv_header_GL_gl_h" = x""yes; then :
-
-else
-  echo "Please install OpenGL headers (GL/gl.h)"; exit
-fi
-
-
-	as_ac_Lib=`$as_echo "ac_cv_lib_${GL_LIBS}''_main" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -l${GL_LIBS}" >&5
-$as_echo_n "checking for main in -l${GL_LIBS}... " >&6; }
-if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-l${GL_LIBS}  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$as_ac_Lib=yes"
-else
-  eval "$as_ac_Lib=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-eval ac_res=\$$as_ac_Lib
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
-  GL_LIBS=-l${GL_LIBS}
-else
-  echo "Please install OpenGL library (lib${GL_LIBS}.a)"; exit
-fi
-
-	GLUT_LIBS=glut
-	ac_fn_c_check_header_mongrel "$LINENO" "GL/glut.h" "ac_cv_header_GL_glut_h" "$ac_includes_default"
-if test "x$ac_cv_header_GL_glut_h" = x""yes; then :
-  (test x$all = xtrue || test x$glut = xtrue) && GLUT_FLAGS=-DHAVE_GLUT
-else
-  (test x$all = xtrue || test x$glut = xtrue) && (echo "Please install FreeGLUT headers (GL/glut.h)" && exit)
-fi
-
-
-	as_ac_Lib=`$as_echo "ac_cv_lib_${GLUT_LIBS}''_main" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -l${GLUT_LIBS}" >&5
-$as_echo_n "checking for main in -l${GLUT_LIBS}... " >&6; }
-if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-l${GLUT_LIBS}  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$as_ac_Lib=yes"
-else
-  eval "$as_ac_Lib=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-eval ac_res=\$$as_ac_Lib
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
-  (test x$all = xtrue || test x$glut = xtrue) && GLUT_LIBS=-l${GLUT_LIBS}
-else
-  (test x$all = xtrue || test x$glut = xtrue) && echo "Please install FreeGLUT library (lib${GLUT_LIBS}.a)" && exit
-fi
-
-       ;;
-
-esac
- if (test x$all = xtrue || test x$glut = xtrue); then
-  USE_GLUT_TRUE=
-  USE_GLUT_FALSE='#'
-else
-  USE_GLUT_TRUE='#'
-  USE_GLUT_FALSE=
-fi
-
-
-case "${host}" in
-  *linux*)
-       ADDON_FLAGS=-DNO_COLOR_ARRAY
-       ;;
-
-       *)
-       ;;
-esac
-
-# Check whether --enable-hdf5 was given.
-if test "${enable_hdf5+set}" = set; then :
-  enableval=$enable_hdf5; case "${enableval}" in
-  yes) hdf5=true ;;
-  no)  hdf5=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-hdf5" "$LINENO" 5  ;;
-esac
-else
-  hdf5=false
-fi
-
-# Check whether --enable-hdf5_18 was given.
-if test "${enable_hdf5_18+set}" = set; then :
-  enableval=$enable_hdf5_18; case "${enableval}" in
-  yes) hdf5_18=true ;;
-  no)  hdf5_18=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-hdf5_18" "$LINENO" 5  ;;
-esac
-else
-  hdf5_18=false
-fi
-
-#AC_CHECK_HEADER(hdf5.h,[(test x$all = xtrue || test x$hdf5 = xtrue || test x$hdf5_18 = xtrue) && HDF5_FLAGS=-DHAVE_HDF5 AC_SUBST(HDF5_FLAGS)],
-ac_fn_c_check_header_mongrel "$LINENO" "hdf5.h" "ac_cv_header_hdf5_h" "$ac_includes_default"
-if test "x$ac_cv_header_hdf5_h" = x""yes; then :
-  (test x$all = xtrue || test x$hdf5 = xtrue || test x$hdf5_18 = xtrue) && HDF5_FLAGS=-DHAVE_HDF5
-else
-  (test x$all = xtrue || test x$hdf5 = xtrue || test x$hdf5_18 = xtrue) && echo "Please install hdf5 headers" && exit
-fi
-
-
-if ((test x$all = xtrue || test x$hdf5 = xtrue) && test x$hdf5_18 = xfalse) ;then
-    HDF5_FLAGS="$HDF5_FLAGS -DH5_USE_16_API"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lhdf5" >&5
-$as_echo_n "checking for main in -lhdf5... " >&6; }
-if test "${ac_cv_lib_hdf5_main+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lhdf5  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_hdf5_main=yes
-else
-  ac_cv_lib_hdf5_main=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_hdf5_main" >&5
-$as_echo "$ac_cv_lib_hdf5_main" >&6; }
-if test "x$ac_cv_lib_hdf5_main" = x""yes; then :
-  (test x$all = xtrue || test x$hdf5 = xtrue || test x$hdf5_18 = xtrue) && HDF5_LIBS=-lhdf5
-else
-  (test x$all = xtrue || test x$hdf5 = xtrue || test x$hdf5_18 = xtrue) && echo "Please install hdf5 library" && exit
-fi
-
- if (test x$all = xtrue || test x$hdf5 = xtrue || test x$hdf5_18 = xtrue); then
-  USE_HDF5_TRUE=
-  USE_HDF5_FALSE='#'
-else
-  USE_HDF5_TRUE='#'
-  USE_HDF5_FALSE=
-fi
-
-
-
-# Check whether --enable-hdf4 was given.
-if test "${enable_hdf4+set}" = set; then :
-  enableval=$enable_hdf4; case "${enableval}" in
-  yes) hdf4=true ;;
-  no)  hdf4=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-hdf4" "$LINENO" 5  ;;
-esac
-else
-  hdf4=false
-fi
-
-ac_fn_c_check_header_mongrel "$LINENO" "hdf/mfhdf.h" "ac_cv_header_hdf_mfhdf_h" "$ac_includes_default"
-if test "x$ac_cv_header_hdf_mfhdf_h" = x""yes; then :
-  (test x$all = xtrue || test x$hdf4 = xtrue) && HDF4_FLAGS=-DHAVE_HDF4
-else
-  (test x$all = xtrue || test x$hdf4 = xtrue) && echo "Please install hdf4 headers" && exit
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ldf" >&5
-$as_echo_n "checking for main in -ldf... " >&6; }
-if test "${ac_cv_lib_df_main+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldf  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_df_main=yes
-else
-  ac_cv_lib_df_main=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_df_main" >&5
-$as_echo "$ac_cv_lib_df_main" >&6; }
-if test "x$ac_cv_lib_df_main" = x""yes; then :
-  (test x$all = xtrue || test x$hdf4 = xtrue) && HDF4_LIBS="-lmfhdf -ldf"
-else
-  (test x$all = xtrue || test x$hdf4 = xtrue) && echo "Please install hdf4 library" && exit
-fi
-
- if (test x$all = xtrue || test x$hdf4 = xtrue); then
-  USE_HDF4_TRUE=
-  USE_HDF4_FALSE='#'
-else
-  USE_HDF4_TRUE='#'
-  USE_HDF4_FALSE=
-fi
-
-
-# Check whether --enable-gif was given.
-if test "${enable_gif+set}" = set; then :
-  enableval=$enable_gif; case "${enableval}" in
-  yes) gif=true ;;
-  no)  gif=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-gif" "$LINENO" 5  ;;
-esac
-else
-  gif=false
-fi
-
-ac_fn_c_check_header_mongrel "$LINENO" "gif_lib.h" "ac_cv_header_gif_lib_h" "$ac_includes_default"
-if test "x$ac_cv_header_gif_lib_h" = x""yes; then :
-  (test x$all = xtrue || test x$gif = xtrue) && GIF_FLAGS=-DHAVE_GIF
-else
-  (test x$all = xtrue || test x$gif = xtrue) && echo "Please install gif headers" && exit
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lgif" >&5
-$as_echo_n "checking for main in -lgif... " >&6; }
-if test "${ac_cv_lib_gif_main+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lgif  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_gif_main=yes
-else
-  ac_cv_lib_gif_main=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gif_main" >&5
-$as_echo "$ac_cv_lib_gif_main" >&6; }
-if test "x$ac_cv_lib_gif_main" = x""yes; then :
-  (test x$all = xtrue || test x$gif = xtrue) && GIF_LIBS=-lgif
-else
-  (test x$all = xtrue || test x$gif = xtrue) && echo "Please install gif library" && exit
-fi
-
- if (test x$all = xtrue || test x$gif = xtrue); then
-  USE_GIF_TRUE=
-  USE_GIF_FALSE='#'
-else
-  USE_GIF_TRUE='#'
-  USE_GIF_FALSE=
-fi
-
-
-ac_fn_c_check_header_mongrel "$LINENO" "png.h" "ac_cv_header_png_h" "$ac_includes_default"
-if test "x$ac_cv_header_png_h" = x""yes; then :
-
-else
-  echo "Please install png headers" && exit
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lpng" >&5
-$as_echo_n "checking for main in -lpng... " >&6; }
-if test "${ac_cv_lib_png_main+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpng  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_png_main=yes
-else
-  ac_cv_lib_png_main=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_png_main" >&5
-$as_echo "$ac_cv_lib_png_main" >&6; }
-if test "x$ac_cv_lib_png_main" = x""yes; then :
-  PNG_LIBS=-lpng
-else
-  echo "Please install png library" && exit
-fi
-
-
-# Check whether --enable-jpeg was given.
-if test "${enable_jpeg+set}" = set; then :
-  enableval=$enable_jpeg; case "${enableval}" in
-  yes) jpeg=true ;;
-  no)  jpeg=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-jpeg" "$LINENO" 5  ;;
-esac
-else
-  jpeg=false
-fi
-
-ac_fn_c_check_header_mongrel "$LINENO" "jpeglib.h" "ac_cv_header_jpeglib_h" "$ac_includes_default"
-if test "x$ac_cv_header_jpeglib_h" = x""yes; then :
-  (test x$all = xtrue || test x$jpeg = xtrue) && JPEG_FLAGS=-DHAVE_JPEG
-else
-  (test x$all = xtrue || test x$jpeg = xtrue) && echo "Please install jpeg headers" && exit
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ljpeg" >&5
-$as_echo_n "checking for main in -ljpeg... " >&6; }
-if test "${ac_cv_lib_jpeg_main+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ljpeg  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_jpeg_main=yes
-else
-  ac_cv_lib_jpeg_main=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_main" >&5
-$as_echo "$ac_cv_lib_jpeg_main" >&6; }
-if test "x$ac_cv_lib_jpeg_main" = x""yes; then :
-  (test x$all = xtrue || test x$jpeg = xtrue) && JPEG_LIBS=-ljpeg
-else
-  (test x$all = xtrue || test x$jpeg = xtrue) && echo "Please install jpeg library" && exit
-fi
-
- if (test x$all = xtrue || test x$jpeg = xtrue); then
-  USE_JPEG_TRUE=
-  USE_JPEG_FALSE='#'
-else
-  USE_JPEG_TRUE='#'
-  USE_JPEG_FALSE=
-fi
-
-
-# Check whether --enable-fltk was given.
-if test "${enable_fltk+set}" = set; then :
-  enableval=$enable_fltk; case "${enableval}" in
-  yes) fltk=true ;;
-  no)  fltk=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-fltk" "$LINENO" 5  ;;
-esac
-else
-  fltk=false
-fi
-
-if (test x$all = xtrue || test x$fltk = xtrue) ;then
-    FLTK_PROG=fltk-config
-    # Extract the first word of "$FLTK_PROG", so it can be a program name with args.
-set dummy $FLTK_PROG; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_FLTK_FLAGS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$FLTK_FLAGS"; then
-  ac_cv_prog_FLTK_FLAGS="$FLTK_FLAGS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_FLTK_FLAGS="`$FLTK_PROG --cxxflags`"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-FLTK_FLAGS=$ac_cv_prog_FLTK_FLAGS
-if test -n "$FLTK_FLAGS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FLTK_FLAGS" >&5
-$as_echo "$FLTK_FLAGS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    # Extract the first word of "$FLTK_PROG", so it can be a program name with args.
-set dummy $FLTK_PROG; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_FLTK_LIBS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$FLTK_LIBS"; then
-  ac_cv_prog_FLTK_LIBS="$FLTK_LIBS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_FLTK_LIBS="`$FLTK_PROG --ldflags`"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-FLTK_LIBS=$ac_cv_prog_FLTK_LIBS
-if test -n "$FLTK_LIBS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FLTK_LIBS" >&5
-$as_echo "$FLTK_LIBS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    if test "$FLTK_FLAGS" && test "$FLTK_LIBS" ;then
-	test_fltk=true
-    else
-	echo "Please install FLTK headers and libraries and make sure that \
-	            path to $FLTK_PROG exist in your PATH"
-	exit
-    fi
-fi
- if test x$test_fltk = xtrue; then
-  USE_FLTK_TRUE=
-  USE_FLTK_FALSE='#'
-else
-  USE_FLTK_TRUE='#'
-  USE_FLTK_FALSE=
-fi
-
-
-# Check whether --enable-wx was given.
-if test "${enable_wx+set}" = set; then :
-  enableval=$enable_wx; case "${enableval}" in
-  yes) wx=true ;;
-  no)  wx=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-wx" "$LINENO" 5  ;;
-esac
-else
-  wx=false
-fi
-
-if (test x$all = xtrue || test x$wx = xtrue) ;then
-#if (test x$wx = xtrue) ;then
-    WX_PROG=wx-config
-    # Extract the first word of "$WX_PROG", so it can be a program name with args.
-set dummy $WX_PROG; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_WX_FLAGS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$WX_FLAGS"; then
-  ac_cv_prog_WX_FLAGS="$WX_FLAGS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_WX_FLAGS="`$WX_PROG --cflags`"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-WX_FLAGS=$ac_cv_prog_WX_FLAGS
-if test -n "$WX_FLAGS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WX_FLAGS" >&5
-$as_echo "$WX_FLAGS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    # Extract the first word of "$WX_PROG", so it can be a program name with args.
-set dummy $WX_PROG; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_WX_LIBS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$WX_LIBS"; then
-  ac_cv_prog_WX_LIBS="$WX_LIBS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_WX_LIBS="`$WX_PROG --libs`"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-WX_LIBS=$ac_cv_prog_WX_LIBS
-if test -n "$WX_LIBS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WX_LIBS" >&5
-$as_echo "$WX_LIBS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    if test "$WX_FLAGS" && test "$WX_LIBS" ;then
-	test_wx=true
-    else
-	echo "Please install wxwidget headers and libraries and make sure that \
-	            path to $WX_PROG exist in your PATH"
-	exit
-    fi
-fi
- if test x$test_wx = xtrue; then
-  USE_WX_TRUE=
-  USE_WX_FALSE='#'
-else
-  USE_WX_TRUE='#'
-  USE_WX_FALSE=
-fi
-
-
-# Check whether --enable-qt was given.
-if test "${enable_qt+set}" = set; then :
-  enableval=$enable_qt; case "${enableval}" in
-  yes) qt=true ;;
-  no)  qt=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-qt" "$LINENO" 5  ;;
-esac
-else
-  qt=false
-fi
-
-if (test x$all = xtrue || test x$qt = xtrue) ;then
-
-
-
-
-  test x"$TROLL" != x && echo 'ViM rox emacs.'
-
-
-# Check whether --with-qt was given.
-if test "${with_qt+set}" = set; then :
-  withval=$with_qt; QT_PATH=$withval
-else
-  QT_PATH=
-fi
-
-
-  # Find Qt.
-  if test -d /usr/local/Trolltech; then
-    # Try to find the latest version.
-    tmp_qt_paths=`echo /usr/local/Trolltech/*/bin | tr ' ' '\n' | sort -nr \
-                                              | xargs | sed 's/  */:/g'`
-  fi
-
-  # Find qmake.
-  for ac_prog in qmake-qt4${EXEEXT}
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_QMAKE+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $QMAKE in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_QMAKE="$QMAKE" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$QT_DIR:$QT_PATH:$PATH:$tmp_qt_paths"
-for as_dir in $as_dummy
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_QMAKE="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-QMAKE=$ac_cv_path_QMAKE
-if test -n "$QMAKE"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $QMAKE" >&5
-$as_echo "$QMAKE" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$QMAKE" && break
-done
-test -n "$QMAKE" || QMAKE="missing"
-
-  if test x"$QMAKE" = xmissing; then
-    for ac_prog in qmake${EXEEXT}
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_QMAKE+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $QMAKE in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_QMAKE="$QMAKE" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$QT_DIR:$QT_PATH:$PATH:$tmp_qt_paths"
-for as_dir in $as_dummy
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_QMAKE="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-QMAKE=$ac_cv_path_QMAKE
-if test -n "$QMAKE"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $QMAKE" >&5
-$as_echo "$QMAKE" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$QMAKE" && break
-done
-test -n "$QMAKE" || QMAKE="missing"
-
-    if test x"$QMAKE" = xmissing; then
-      as_fn_error $? "Cannot find qmake in your PATH. Try using --with-qt." "$LINENO" 5
-    fi
-  fi
-
-  # Find moc (Meta Object Compiler).
-  for ac_prog in moc-qt4${EXEEXT}
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MOC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $MOC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_MOC="$MOC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$QT_PATH:$PATH:$tmp_qt_paths"
-for as_dir in $as_dummy
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_MOC="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-MOC=$ac_cv_path_MOC
-if test -n "$MOC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MOC" >&5
-$as_echo "$MOC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$MOC" && break
-done
-test -n "$MOC" || MOC="missing"
-
-  if test x"$MOC" = xmissing; then
-    for ac_prog in moc${EXEEXT}
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MOC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $MOC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_MOC="$MOC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$QT_PATH:$PATH:$tmp_qt_paths"
-for as_dir in $as_dummy
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_MOC="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-MOC=$ac_cv_path_MOC
-if test -n "$MOC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MOC" >&5
-$as_echo "$MOC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$MOC" && break
-done
-test -n "$MOC" || MOC="missing"
-
-    if test x"$MOC" = xmissing; then
-      as_fn_error $? "Cannot find moc (Meta Object Compiler) in your PATH. Try using --with-qt." "$LINENO" 5
-    fi
-  fi
-
-  # Find uic (User Interface Compiler).
-  for ac_prog in uic-qt4${EXEEXT}
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_UIC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $UIC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_UIC="$UIC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$QT_PATH:$PATH:$tmp_qt_paths"
-for as_dir in $as_dummy
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_UIC="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-UIC=$ac_cv_path_UIC
-if test -n "$UIC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $UIC" >&5
-$as_echo "$UIC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$UIC" && break
-done
-test -n "$UIC" || UIC="missing"
-
-  if test x"$UIC" = xmissing; then
-    for ac_prog in uic${EXEEXT}
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_UIC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $UIC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_UIC="$UIC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$QT_PATH:$PATH:$tmp_qt_paths"
-for as_dir in $as_dummy
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_UIC="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-UIC=$ac_cv_path_UIC
-if test -n "$UIC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $UIC" >&5
-$as_echo "$UIC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$UIC" && break
-done
-test -n "$UIC" || UIC="missing"
-
-    if test x"$UIC" = xmissing; then
-      as_fn_error $? "Cannot find uic (User Interface Compiler) in your PATH. Try using --with-qt." "$LINENO" 5
-    fi
-  fi
-
-  # Find rcc (Qt Resource Compiler).
-  for ac_prog in rcc-qt4${EXEEXT}
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_RCC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $RCC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_RCC="$RCC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$QT_PATH:$PATH:$tmp_qt_paths"
-for as_dir in $as_dummy
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_RCC="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-RCC=$ac_cv_path_RCC
-if test -n "$RCC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RCC" >&5
-$as_echo "$RCC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$RCC" && break
-done
-test -n "$RCC" || RCC="false"
-
-  if test x"$RCC" = xfalse; then
-    for ac_prog in rcc${EXEEXT}
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_RCC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $RCC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_RCC="$RCC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$QT_PATH:$PATH:$tmp_qt_paths"
-for as_dir in $as_dummy
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_RCC="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-RCC=$ac_cv_path_RCC
-if test -n "$RCC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RCC" >&5
-$as_echo "$RCC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$RCC" && break
-done
-test -n "$RCC" || RCC="false"
-
-    if test x"$RCC" = xfalse; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find rcc (Qt Resource Compiler) in your PATH. Try using --with-qt." >&5
-$as_echo "$as_me: WARNING: Cannot find rcc (Qt Resource Compiler) in your PATH. Try using --with-qt." >&2;}
-    fi
-  fi
-
-  # If we don't know the path to Qt, guess it from the path to qmake.
-  if test x"$QT_PATH" = x; then
-    QT_PATH=`dirname "$QMAKE"`
-  fi
-  if test x"$QT_PATH" = x; then
-    as_fn_error $? "Cannot find the path to your Qt install. Use --with-qt." "$LINENO" 5
-  fi
-
-
-  # Get ready to build a test-app with Qt.
-
-  # Look for a writable temporary directory.
-
-  if test x"$TMPDIR" = x || test ! -d "$TMPDIR" || test ! -w "$TMPDIR"; then
-    echo "$as_me:$LINENO: no TMPDIR or bad TMPDIR ($TMPDIR)" \
-      >&5
-    for i in /tmp /var/tmp; do
-      if test -d "$i" && test -w "$i"; then
-        TMPDIR=$i
-        export TMPDIR
-        echo "$as_me:$LINENO: setting TMPDIR=$TMPDIR" >&5
-        break
-      fi
-    done
-  fi
-
-  # Kludge!!  QMake has a very strange behavior.  For instance, if you
-  # install Qt under your $HOME and run QMake somewhere else under your
-  # $HOME, it will try to be clever and produce Makefiles with relative
-  # include paths.  In order to avoid this, we will test QMake from a
-  # temporary directory (usually /tmp).  Note that this problem was only
-  # observed with Qt 4.
-  my_configure_pwd=`pwd`
-  my_tmpdir="$TMPDIR/conftest$$.dir"
-  test -d "$my_tmpdir" || mkdir "$my_tmpdir"
-  if test -w "$my_tmpdir" && cd "$my_tmpdir"
-  then
-    :
-  else
-    as_fn_error $? "Cannot cd to or write in $my_tmpdir" "$LINENO" 5
-  fi
-  cat >conftest.h <<_ASEOF
-#include <QObject>
-
-class Foo: public QObject
-{
-  Q_OBJECT;
-public:
-  Foo();
-  ~Foo() {}
-public slots:
-  void setValue(int value);
-signals:
-  void valueChanged(int newValue);
-private:
-  int value_;
-};
-_ASEOF
-
-  cat >conftest.cpp <<_ASEOF
-#include "conftest.h"
-Foo::Foo()
-  : value_ (42)
-{
-  connect(this, SIGNAL(valueChanged(int)), this, SLOT(setValue(int)));
-}
-
-void Foo::setValue(int value)
-{
-  value_ = value;
-}
-
-int main()
-{
-  Foo f;
-}
-_ASEOF
-  if $QMAKE -project; then :; else
-    as_fn_error $? "Calling $QMAKE -project failed." "$LINENO" 5
-  fi
-
-  # Find the .pro file generated by qmake.
-  pro_file='conftest.dir.pro'
-  test -f $pro_file || pro_file=`echo *.pro`
-  if test -f "$pro_file"; then :; else
-    as_fn_error $? "Can't find the .pro file generated by Qmake." "$LINENO" 5
-  fi
-
-
-
-
-
-
-
-  echo "$as_me:$LINENO: Invoking $QMAKE on $pro_file" >&5
-  sed 's/^/| /' "$pro_file" >&5
-
-  if $QMAKE; then :; else
-    as_fn_error $? "Calling $QMAKE failed." "$LINENO" 5
-  fi
-  # Try to compile a simple Qt app.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can build a simple Qt app" >&5
-$as_echo_n "checking whether we can build a simple Qt app... " >&6; }
-if test "${at_cv_qt_build+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  at_cv_qt_build=ko
-  : ${MAKE=make}
-
-  if $MAKE >&5 2>&1; then
-    at_cv_qt_build='ok, looks like Qt 4'
-  else
-    echo "$as_me:$LINENO: Build failed, trying to #include <qobject.h> \
-instead" >&5
-    sed 's/<QObject>/<qobject.h>/' conftest.h > tmp.h && mv tmp.h conftest.h
-    if $MAKE >&5 2>&1; then
-      at_cv_qt_build='ok, looks like Qt 3'
-    else
-      # Sometimes (such as on Debian) build will fail because Qt hasn't been
-      # installed in debug mode and qmake tries (by default) to build apps in
-      # debug mode => Try again in release mode.
-      echo "$as_me:$LINENO: Build failed, trying to enforce release mode" \
-            >&5
-
-       # Tweak the value of CONFIG in the .pro file for +release.
-
-  qt_conf=''
-  for at_mod in +release; do
-    at_mod=`echo "$at_mod" | sed 's/^-//; tough
-                                  s/^+//; beef
-                                  :ough
-                                  s/^/CONFIG -= /;n
-                                  :eef
-                                  s/^/CONFIG += /'`
-    qt_conf="$qt_conf
-$at_mod"
-  done
-  echo "$qt_conf" | sed 1d >>"$pro_file"
-
-
-      sed 's/<qobject.h>/<QObject>/' conftest.h > tmp.h && mv tmp.h conftest.h
-      if $MAKE >&5 2>&1; then
-        at_cv_qt_build='ok, looks like Qt 4, release mode forced'
-      else
-        echo "$as_me:$LINENO: Build failed, trying to #include <qobject.h> \
-instead" >&5
-        sed 's/<QObject>/<qobject.h>/' conftest.h > tmp.h && mv tmp.h conftest.h
-        if $MAKE >&5 2>&1; then
-          at_cv_qt_build='ok, looks like Qt 3, release mode forced'
-        else
-          at_cv_qt_build=ko
-          echo "$as_me:$LINENO: failed program was:" >&5
-          sed 's/^/| /' conftest.h >&5
-          echo "$as_me:$LINENO: failed program was:" >&5
-          sed 's/^/| /' conftest.cpp >&5
-        fi # if make with Qt3-style #include and release mode forced.
-      fi # if make with Qt4-style #include and release mode forced.
-    fi # if make with Qt3-style #include.
-  fi # if make with Qt4-style #include.
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_cv_qt_build" >&5
-$as_echo "$at_cv_qt_build" >&6; }
-  if test x"$at_cv_qt_build" = xko; then
-    as_fn_error $? "Cannot build a test Qt program" "$LINENO" 5
-  fi
-  QT_VERSION_MAJOR=`echo "$at_cv_qt_build" | sed 's/^^0-9*//'`
-
-
-  # This sed filter is applied after an expression of the form: /^FOO.*=/!d;
-  # It starts by removing the beginning of the line, removing references to
-  # SUBLIBS, removing unnecessary whitespaces at the beginning, and prefixes
-  # all variable uses by QT_.
-  qt_sed_filter='s///;
-                 s/$(SUBLIBS)//g;
-                 s/^ *//;
-                 s/\$(\([A-Z_][A-Z_]*\))/$(QT_\1)/g'
-
-  # Find the Makefile (qmake happens to generate a fake Makefile which invokes
-  # a Makefile.Debug or Makefile.Release). We we have both, we'll pick the
-  # Makefile.Release. The reason is that the main difference is that release
-  # uses -Os and debug -g. We can override -Os by passing another -O but we
-  # usually don't override -g.
-  if test -f Makefile.Release; then
-    at_mfile='Makefile.Release'
-  else
-    at_mfile='Makefile'
-  fi
-  if test -f $at_mfile; then :; else
-    cd "$my_configure_pwd"
-    as_fn_error $? "Cannot find the Makefile generated by qmake." "$LINENO" 5
-  fi
-
-  # Find the DEFINES of Qt (should have been named CPPFLAGS).
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the DEFINES to use with Qt" >&5
-$as_echo_n "checking for the DEFINES to use with Qt... " >&6; }
-if test "${at_cv_env_QT_DEFINES+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  at_cv_env_QT_DEFINES=`sed "/^DEFINES[ ]*=/!d;$qt_sed_filter" $at_mfile`
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_cv_env_QT_DEFINES" >&5
-$as_echo "$at_cv_env_QT_DEFINES" >&6; }
-  QT_DEFINES=$at_cv_env_QT_DEFINES
-
-
-  # Find the CFLAGS of Qt (We can use Qt in C?!)
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the CFLAGS to use with Qt" >&5
-$as_echo_n "checking for the CFLAGS to use with Qt... " >&6; }
-if test "${at_cv_env_QT_CFLAGS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  at_cv_env_QT_CFLAGS=`sed "/^CFLAGS[ ]*=/!d;$qt_sed_filter" $at_mfile`
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_cv_env_QT_CFLAGS" >&5
-$as_echo "$at_cv_env_QT_CFLAGS" >&6; }
-  QT_CFLAGS=$at_cv_env_QT_CFLAGS
-
-
-  # Find the CXXFLAGS of Qt.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the CXXFLAGS to use with Qt" >&5
-$as_echo_n "checking for the CXXFLAGS to use with Qt... " >&6; }
-if test "${at_cv_env_QT_CXXFLAGS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  at_cv_env_QT_CXXFLAGS=`sed "/^CXXFLAGS[ ]*=/!d;$qt_sed_filter" $at_mfile`
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_cv_env_QT_CXXFLAGS" >&5
-$as_echo "$at_cv_env_QT_CXXFLAGS" >&6; }
-  QT_CXXFLAGS=$at_cv_env_QT_CXXFLAGS
-
-
-  # Find the INCPATH of Qt.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the INCPATH to use with Qt" >&5
-$as_echo_n "checking for the INCPATH to use with Qt... " >&6; }
-if test "${at_cv_env_QT_INCPATH+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  at_cv_env_QT_INCPATH=`sed "/^INCPATH[ ]*=/!d;$qt_sed_filter" $at_mfile`
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_cv_env_QT_INCPATH" >&5
-$as_echo "$at_cv_env_QT_INCPATH" >&6; }
-  QT_INCPATH=$at_cv_env_QT_INCPATH
-
-
-  QT_CPPFLAGS="$at_cv_env_QT_DEFINES $at_cv_env_QT_INCPATH"
-
-
-  # Find the LFLAGS of Qt (Should have been named LDFLAGS)
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the LDFLAGS to use with Qt" >&5
-$as_echo_n "checking for the LDFLAGS to use with Qt... " >&6; }
-if test "${at_cv_env_QT_LDFLAGS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  at_cv_env_QT_LDFLAGS=`sed "/^LDFLAGS[ ]*=/!d;$qt_sed_filter" $at_mfile`
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_cv_env_QT_LDFLAGS" >&5
-$as_echo "$at_cv_env_QT_LDFLAGS" >&6; }
-  QT_LFLAGS=$at_cv_env_QT_LDFLAGS
-
-  QT_LDFLAGS=$at_cv_env_QT_LDFLAGS
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether host operating system is Darwin" >&5
-$as_echo_n "checking whether host operating system is Darwin... " >&6; }
-  at_darwin="no"
-  case $host_os in
-    darwin*)
-      at_darwin="yes"
-      ;;
-  esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_darwin" >&5
-$as_echo "$at_darwin" >&6; }
-
-  # Find the LIBS of Qt.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the LIBS to use with Qt" >&5
-$as_echo_n "checking for the LIBS to use with Qt... " >&6; }
-if test "${at_cv_env_QT_LIBS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  at_cv_env_QT_LIBS=`sed "/^LIBS[ ]*=/!d;$qt_sed_filter" $at_mfile`
-   if test x$at_darwin = xyes; then
-     # Fix QT_LIBS: as of today Libtool (GNU Libtool 1.5.23a) doesn't handle
-     # -F properly. The "bug" has been fixed on 22 October 2006
-     # by Peter O'Gorman but we provide backward compatibility here.
-     at_cv_env_QT_LIBS=`echo "$at_cv_env_QT_LIBS" \
-                             | sed 's/^-F/-Wl,-F/;s/ -F/ -Wl,-F/g'`
-   fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_cv_env_QT_LIBS" >&5
-$as_echo "$at_cv_env_QT_LIBS" >&6; }
-  QT_LIBS=$at_cv_env_QT_LIBS
-
-
-  cd "$my_configure_pwd" || echo 'WTF!'
-  rm -rf "$my_tmpdir"
-
-
-  if test x"$QMAKE" = x; then
-    as_fn_error $? "\$QMAKE is empty. \
-Did you invoke AT_WITH_QT before AT_REQUIRE_QT_VERSION?" "$LINENO" 5
-  fi
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Qt's version" >&5
-$as_echo_n "checking for Qt's version... " >&6; }
-if test "${at_cv_QT_VERSION+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  echo "$as_me:$LINENO: Running $QMAKE --version:" >&5
-  $QMAKE --version >&5 2>&1
-  qmake_version_sed='/^.*\([0-9]\.[0-9]\.[0-9]\).*$/!d;s//\1/'
-  at_cv_QT_VERSION=`$QMAKE --version 2>&1 | sed "$qmake_version_sed"`
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_cv_QT_VERSION" >&5
-$as_echo "$at_cv_QT_VERSION" >&6; }
-  if test x"$at_cv_QT_VERSION" = x; then
-    as_fn_error $? "Cannot detect Qt's version." "$LINENO" 5
-  fi
-  QT_VERSION=$at_cv_QT_VERSION
-
-  as_arg_v1=$QT_VERSION
-as_arg_v2=4.3
-awk "$as_awk_strverscmp" v1="$as_arg_v1" v2="$as_arg_v2" /dev/null
-case $? in #(
-  1) :
-    as_fn_error $? "This package requires Qt 4.3 or above." "$LINENO" 5  ;; #(
-  0) :
-     ;; #(
-  2) :
-     ;; #(
-  *) :
-     ;;
-esac
-
-    test_qt=true
-fi
- if test x$test_qt = xtrue; then
-  USE_QT_TRUE=
-  USE_QT_FALSE='#'
-else
-  USE_QT_TRUE='#'
-  USE_QT_FALSE=
-fi
-
-
-# Check whether --enable-python was given.
-if test "${enable_python+set}" = set; then :
-  enableval=$enable_python; case "${enableval}" in
-  yes) python=true ;;
-  no)  python=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-python" "$LINENO" 5  ;;
-esac
-else
-  python=false
-fi
-
-if (test x$langall = xtrue || test x$python = xtrue) ;then
-    # Extract the first word of "python-config", so it can be a program name with args.
-set dummy python-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_PYTHON_HEADERS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$PYTHON_HEADERS"; then
-  ac_cv_prog_PYTHON_HEADERS="$PYTHON_HEADERS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_PYTHON_HEADERS="`python-config --cflags`"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-PYTHON_HEADERS=$ac_cv_prog_PYTHON_HEADERS
-if test -n "$PYTHON_HEADERS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_HEADERS" >&5
-$as_echo "$PYTHON_HEADERS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    # Extract the first word of "swig$EXEEXT", so it can be a program name with args.
-set dummy swig$EXEEXT; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_HAVE_SWIG+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$HAVE_SWIG"; then
-  ac_cv_prog_HAVE_SWIG="$HAVE_SWIG" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_HAVE_SWIG="true"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-HAVE_SWIG=$ac_cv_prog_HAVE_SWIG
-if test -n "$HAVE_SWIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_SWIG" >&5
-$as_echo "$HAVE_SWIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    if (test "$PYTHON_HEADERS" && test "$HAVE_SWIG") ;then
-	test_python=true
-
-
-
-
-        # Find any Python interpreter.
-    if test -z "$PYTHON"; then
-      for ac_prog in python python2 python3 python3.0 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PYTHON+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $PYTHON in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-PYTHON=$ac_cv_path_PYTHON
-if test -n "$PYTHON"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
-$as_echo "$PYTHON" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$PYTHON" && break
-done
-test -n "$PYTHON" || PYTHON=":"
-
-    fi
-    am_display_PYTHON=python
-
-
-  if test "$PYTHON" = :; then
-      as_fn_error $? "no suitable Python interpreter found" "$LINENO" 5
-  else
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5
-$as_echo_n "checking for $am_display_PYTHON version... " >&6; }
-if test "${am_cv_python_version+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"`
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5
-$as_echo "$am_cv_python_version" >&6; }
-  PYTHON_VERSION=$am_cv_python_version
-
-
-
-  PYTHON_PREFIX='${prefix}'
-
-  PYTHON_EXEC_PREFIX='${exec_prefix}'
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5
-$as_echo_n "checking for $am_display_PYTHON platform... " >&6; }
-if test "${am_cv_python_platform+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5
-$as_echo "$am_cv_python_platform" >&6; }
-  PYTHON_PLATFORM=$am_cv_python_platform
-
-
-
-
-                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5
-$as_echo_n "checking for $am_display_PYTHON script directory... " >&6; }
-if test "${am_cv_python_pythondir+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "x$prefix" = xNONE
-     then
-       am_py_prefix=$ac_default_prefix
-     else
-       am_py_prefix=$prefix
-     fi
-     am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null ||
-     echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
-     case $am_cv_python_pythondir in
-     $am_py_prefix*)
-       am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
-       am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
-       ;;
-     *)
-       case $am_py_prefix in
-         /usr|/System*) ;;
-         *)
-	  am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
-	  ;;
-       esac
-       ;;
-     esac
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5
-$as_echo "$am_cv_python_pythondir" >&6; }
-  pythondir=$am_cv_python_pythondir
-
-
-
-  pkgpythondir=\${pythondir}/$PACKAGE
-
-
-            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5
-$as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; }
-if test "${am_cv_python_pyexecdir+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "x$exec_prefix" = xNONE
-     then
-       am_py_exec_prefix=$am_py_prefix
-     else
-       am_py_exec_prefix=$exec_prefix
-     fi
-     am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null ||
-     echo "$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
-     case $am_cv_python_pyexecdir in
-     $am_py_exec_prefix*)
-       am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
-       am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
-       ;;
-     *)
-       case $am_py_exec_prefix in
-         /usr|/System*) ;;
-         *)
-	   am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
-	   ;;
-       esac
-       ;;
-     esac
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5
-$as_echo "$am_cv_python_pyexecdir" >&6; }
-  pyexecdir=$am_cv_python_pyexecdir
-
-
-
-  pkgpyexecdir=\${pyexecdir}/$PACKAGE
-
-
-
-  fi
-
-
-    else
-	echo Please install python-dev and swig packages
-	exit
-    fi
-fi
- if test x$test_python = xtrue ; then
-  USE_PYTHON_TRUE=
-  USE_PYTHON_FALSE='#'
-else
-  USE_PYTHON_TRUE='#'
-  USE_PYTHON_FALSE=
-fi
-
-
-# Check whether --enable-octave was given.
-if test "${enable_octave+set}" = set; then :
-  enableval=$enable_octave; case "${enableval}" in
-  yes) octave=true ;;
-  no)  octave=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-octave" "$LINENO" 5  ;;
-esac
-else
-  octave=false
-fi
-
-if (test x$langall = xtrue || test x$octave = xtrue) ;then
-    # Extract the first word of "octave-config", so it can be a program name with args.
-set dummy octave-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OCTAVE+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$OCTAVE"; then
-  ac_cv_prog_OCTAVE="$OCTAVE" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_OCTAVE="octave-config"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-OCTAVE=$ac_cv_prog_OCTAVE
-if test -n "$OCTAVE"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OCTAVE" >&5
-$as_echo "$OCTAVE" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# find Octave arch
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Octave arch" >&5
-$as_echo_n "checking for Octave arch... " >&6; }
-    OCTAVE_ARCH=`$OCTAVE -p CANONICAL_HOST_TYPE`-`$OCTAVE -p API_VERSION`
-    OCTAVE_INCFLAGS="-I`$OCTAVE -p OCTINCLUDEDIR`"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OCTAVE_ARCH" >&5
-$as_echo "$OCTAVE_ARCH" >&6; }
-    OCTAVE_ARCH=$OCTAVE_ARCH
-
-    OCTAVE_INCFLAGS=$OCTAVE_INCFLAGS
-
-    test_octave=true
-fi
- if test x$test_octave = xtrue ; then
-  USE_OCTAVE_TRUE=
-  USE_OCTAVE_FALSE='#'
-else
-  USE_OCTAVE_TRUE='#'
-  USE_OCTAVE_FALSE=
-fi
-
-
-# Check whether --enable-testio was given.
-if test "${enable_testio+set}" = set; then :
-  enableval=$enable_testio; case "${enableval}" in
-  yes) testio=true ;;
-  no)  testio=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-testio" "$LINENO" 5  ;;
-esac
-else
-  testio=false
-fi
-
- if test x$testio = xtrue ; then
-  USE_TESTIO_TRUE=
-  USE_TESTIO_FALSE='#'
-else
-  USE_TESTIO_TRUE='#'
-  USE_TESTIO_FALSE=
-fi
-
-
-# Check whether --enable-docs was given.
-if test "${enable_docs+set}" = set; then :
-  enableval=$enable_docs; case "${enableval}" in
-  yes) docs=true ;;
-  no)  docs=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-docs" "$LINENO" 5  ;;
-esac
-else
-  docs=false
-fi
-
-if (test x$docs = xtrue || test x$all = xtrue) ;then
-	ac_config_files="$ac_config_files texinfo/Makefile texinfo/png/Makefile"
-
-fi
- if (test x$docs = xtrue || test x$all = xtrue) ; then
-  USE_DOCS_TRUE=
-  USE_DOCS_FALSE='#'
-else
-  USE_DOCS_TRUE='#'
-  USE_DOCS_FALSE=
-fi
-
-
-AM_CXXFLAGS="-Wall $GSL_FLAGS"
-
-
-ac_config_files="$ac_config_files Makefile mgl/Makefile examples/Makefile include/Makefile lang/Makefile utils/Makefile widgets/Makefile"
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
-  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) { eval $ac_var=; unset $ac_var;} ;;
-      esac ;;
-    esac
-  done
-
-  (set) 2>&1 |
-    case $as_nl`(ac_space=' '; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      # `set' does not quote correctly, so add quotes: double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \.
-      sed -n \
-	"s/'/'\\\\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;; #(
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-) |
-  sed '
-     /^ac_cv_env_/b end
-     t clear
-     :clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
-  if test -w "$cache_file"; then
-    test "x$cache_file" != "x/dev/null" &&
-      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
-    cat confcache >$cache_file
-  else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
-  fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-U=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-  # 1. Remove the extension, and $U if already installed.
-  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
-  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
-  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
-  #    will be set to the directory where LIBOBJS objects are built.
-  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
-  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
- if test -n "$EXEEXT"; then
-  am__EXEEXT_TRUE=
-  am__EXEEXT_FALSE='#'
-else
-  am__EXEEXT_TRUE='#'
-  am__EXEEXT_FALSE=
-fi
-
-if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
-  as_fn_error $? "conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
-  as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
-  as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
-  as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${USE_PTHREAD_TRUE}" && test -z "${USE_PTHREAD_FALSE}"; then
-  as_fn_error $? "conditional \"USE_PTHREAD\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${USE_GSL_TRUE}" && test -z "${USE_GSL_FALSE}"; then
-  as_fn_error $? "conditional \"USE_GSL\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${USE_GLUT_TRUE}" && test -z "${USE_GLUT_FALSE}"; then
-  as_fn_error $? "conditional \"USE_GLUT\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${USE_HDF5_TRUE}" && test -z "${USE_HDF5_FALSE}"; then
-  as_fn_error $? "conditional \"USE_HDF5\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${USE_HDF4_TRUE}" && test -z "${USE_HDF4_FALSE}"; then
-  as_fn_error $? "conditional \"USE_HDF4\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${USE_GIF_TRUE}" && test -z "${USE_GIF_FALSE}"; then
-  as_fn_error $? "conditional \"USE_GIF\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${USE_JPEG_TRUE}" && test -z "${USE_JPEG_FALSE}"; then
-  as_fn_error $? "conditional \"USE_JPEG\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${USE_FLTK_TRUE}" && test -z "${USE_FLTK_FALSE}"; then
-  as_fn_error $? "conditional \"USE_FLTK\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${USE_WX_TRUE}" && test -z "${USE_WX_FALSE}"; then
-  as_fn_error $? "conditional \"USE_WX\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${USE_QT_TRUE}" && test -z "${USE_QT_FALSE}"; then
-  as_fn_error $? "conditional \"USE_QT\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${USE_PYTHON_TRUE}" && test -z "${USE_PYTHON_FALSE}"; then
-  as_fn_error $? "conditional \"USE_PYTHON\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${USE_OCTAVE_TRUE}" && test -z "${USE_OCTAVE_FALSE}"; then
-  as_fn_error $? "conditional \"USE_OCTAVE\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${USE_TESTIO_TRUE}" && test -z "${USE_TESTIO_FALSE}"; then
-  as_fn_error $? "conditional \"USE_TESTIO\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${USE_DOCS_TRUE}" && test -z "${USE_DOCS_FALSE}"; then
-  as_fn_error $? "conditional \"USE_DOCS\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-
-: ${CONFIG_STATUS=./config.status}
-ac_write_fail=0
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-as_write_fail=0
-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  PATH_SEPARATOR=:
-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
-    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
-      PATH_SEPARATOR=';'
-  }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-case $0 in #((
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-  done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
-  as_status=$1; test $as_status -eq 0 && as_status=1
-  if test "$4"; then
-    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
-  fi
-  $as_echo "$as_me: error: $2" >&2
-  as_fn_exit $as_status
-} # as_fn_error
-
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
-  return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
-  set +e
-  as_fn_set_status $1
-  exit $1
-} # as_fn_exit
-
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
-  { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
-  eval 'as_fn_append ()
-  {
-    eval $1+=\$2
-  }'
-else
-  as_fn_append ()
-  {
-    eval $1=\$$1\$2
-  }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
-  eval 'as_fn_arith ()
-  {
-    as_val=$(( $* ))
-  }'
-else
-  as_fn_arith ()
-  {
-    as_val=`expr "$@" || test $? -eq 1`
-  }
-fi # as_fn_arith
-
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
-  case `echo 'xy\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  xy)  ECHO_C='\c';;
-  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
-       ECHO_T='	';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
-  if ln -s conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s='ln -s'
-    # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
-  elif ln conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s=ln
-  else
-    as_ln_s='cp -p'
-  fi
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || eval $as_mkdir_p || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p='mkdir -p "$as_dir"'
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-	test -d "$1/.";
-      else
-	case $1 in #(
-	-*)set "./$1";;
-	esac;
-	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
-	???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-## ----------------------------------- ##
-## Main body of $CONFIG_STATUS script. ##
-## ----------------------------------- ##
-_ASEOF
-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# Save the log message, to keep $0 and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by mathgl $as_me 1.10, which was
-generated by GNU Autoconf 2.67.  Invocation command line was
-
-  CONFIG_FILES    = $CONFIG_FILES
-  CONFIG_HEADERS  = $CONFIG_HEADERS
-  CONFIG_LINKS    = $CONFIG_LINKS
-  CONFIG_COMMANDS = $CONFIG_COMMANDS
-  $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-case $ac_config_files in *"
-"*) set x $ac_config_files; shift; ac_config_files=$*;;
-esac
-
-case $ac_config_headers in *"
-"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
-esac
-
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_headers="$ac_config_headers"
-config_commands="$ac_config_commands"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-ac_cs_usage="\
-\`$as_me' instantiates files and other configuration actions
-from templates according to the current configuration.  Unless the files
-and actions are specified as TAGs, all are instantiated by default.
-
-Usage: $0 [OPTION]... [TAG]...
-
-  -h, --help       print this help, then exit
-  -V, --version    print version number and configuration settings, then exit
-      --config     print configuration, then exit
-  -q, --quiet, --silent
-                   do not print progress messages
-  -d, --debug      don't remove temporary files
-      --recheck    update $as_me by reconfiguring in the same conditions
-      --file=FILE[:TEMPLATE]
-                   instantiate the configuration file FILE
-      --header=FILE[:TEMPLATE]
-                   instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration commands:
-$config_commands
-
-Report bugs to <mathgl.abalakin at gmail.com>."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
-ac_cs_version="\\
-mathgl config.status 1.10
-configured by $0, generated by GNU Autoconf 2.67,
-  with options \\"\$ac_cs_config\\"
-
-Copyright (C) 2010 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-INSTALL='$INSTALL'
-MKDIR_P='$MKDIR_P'
-AWK='$AWK'
-test -n "\$AWK" || AWK=awk
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# The default lists apply if the user does not specify any file.
-ac_need_defaults=:
-while test $# != 0
-do
-  case $1 in
-  --*=?*)
-    ac_option=`expr "X$1" : 'X\([^=]*\)='`
-    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
-    ac_shift=:
-    ;;
-  --*=)
-    ac_option=`expr "X$1" : 'X\([^=]*\)='`
-    ac_optarg=
-    ac_shift=:
-    ;;
-  *)
-    ac_option=$1
-    ac_optarg=$2
-    ac_shift=shift
-    ;;
-  esac
-
-  case $ac_option in
-  # Handling of the options.
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    ac_cs_recheck=: ;;
-  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
-    $as_echo "$ac_cs_version"; exit ;;
-  --config | --confi | --conf | --con | --co | --c )
-    $as_echo "$ac_cs_config"; exit ;;
-  --debug | --debu | --deb | --de | --d | -d )
-    debug=: ;;
-  --file | --fil | --fi | --f )
-    $ac_shift
-    case $ac_optarg in
-    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    '') as_fn_error $? "missing file argument" ;;
-    esac
-    as_fn_append CONFIG_FILES " '$ac_optarg'"
-    ac_need_defaults=false;;
-  --header | --heade | --head | --hea )
-    $ac_shift
-    case $ac_optarg in
-    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
-    ac_need_defaults=false;;
-  --he | --h)
-    # Conflict between --help and --header
-    as_fn_error $? "ambiguous option: \`$1'
-Try \`$0 --help' for more information.";;
-  --help | --hel | -h )
-    $as_echo "$ac_cs_usage"; exit ;;
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
-    ac_cs_silent=: ;;
-
-  # This is an error.
-  -*) as_fn_error $? "unrecognized option: \`$1'
-Try \`$0 --help' for more information." ;;
-
-  *) as_fn_append ac_config_targets " $1"
-     ac_need_defaults=false ;;
-
-  esac
-  shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
-  exec 6>/dev/null
-  ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-if \$ac_cs_recheck; then
-  set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-  shift
-  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
-  CONFIG_SHELL='$SHELL'
-  export CONFIG_SHELL
-  exec "\$@"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-  $as_echo "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-#
-# INIT-COMMANDS
-#
-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
-
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-AS='`$ECHO "X$AS" | $Xsed -e "$delay_single_quote_subst"`'
-DLLTOOL='`$ECHO "X$DLLTOOL" | $Xsed -e "$delay_single_quote_subst"`'
-OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`'
-macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`'
-macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`'
-enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`'
-enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`'
-pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`'
-enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`'
-host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`'
-host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`'
-host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`'
-build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`'
-build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`'
-build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`'
-SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`'
-Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`'
-GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`'
-EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`'
-FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`'
-LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`'
-NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`'
-LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`'
-max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`'
-ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`'
-exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`'
-lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`'
-lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`'
-lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`'
-reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`'
-reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`'
-file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`'
-AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`'
-AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`'
-STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`'
-RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`'
-old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`'
-CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`'
-compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`'
-GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
-objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`'
-SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`'
-ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`'
-MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`'
-need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`'
-DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`'
-NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`'
-LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`'
-OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`'
-OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`'
-libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`'
-shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`'
-export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
-whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`'
-allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
-no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`'
-inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`'
-link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`'
-fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`'
-always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`'
-export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
-include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
-prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`'
-variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`'
-need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
-need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`'
-version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`'
-runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`'
-shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
-shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`'
-libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`'
-library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`'
-soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`'
-postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`'
-sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
-sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`'
-enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`'
-enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`'
-enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`'
-old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`'
-striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_lib_search_dirs='`$ECHO "X$compiler_lib_search_dirs" | $Xsed -e "$delay_single_quote_subst"`'
-predep_objects='`$ECHO "X$predep_objects" | $Xsed -e "$delay_single_quote_subst"`'
-postdep_objects='`$ECHO "X$postdep_objects" | $Xsed -e "$delay_single_quote_subst"`'
-predeps='`$ECHO "X$predeps" | $Xsed -e "$delay_single_quote_subst"`'
-postdeps='`$ECHO "X$postdeps" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_lib_search_path='`$ECHO "X$compiler_lib_search_path" | $Xsed -e "$delay_single_quote_subst"`'
-LD_CXX='`$ECHO "X$LD_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_cmds_CXX='`$ECHO "X$old_archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_CXX='`$ECHO "X$compiler_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-GCC_CXX='`$ECHO "X$GCC_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "X$lt_prog_compiler_no_builtin_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_wl_CXX='`$ECHO "X$lt_prog_compiler_wl_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_pic_CXX='`$ECHO "X$lt_prog_compiler_pic_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_static_CXX='`$ECHO "X$lt_prog_compiler_static_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o_CXX='`$ECHO "X$lt_cv_prog_compiler_c_o_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds_need_lc_CXX='`$ECHO "X$archive_cmds_need_lc_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes_CXX='`$ECHO "X$enable_shared_with_static_runtimes_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-export_dynamic_flag_spec_CXX='`$ECHO "X$export_dynamic_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-whole_archive_flag_spec_CXX='`$ECHO "X$whole_archive_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_needs_object_CXX='`$ECHO "X$compiler_needs_object_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_new_cmds_CXX='`$ECHO "X$old_archive_from_new_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds_CXX='`$ECHO "X$old_archive_from_expsyms_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds_CXX='`$ECHO "X$archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-archive_expsym_cmds_CXX='`$ECHO "X$archive_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-module_cmds_CXX='`$ECHO "X$module_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-module_expsym_cmds_CXX='`$ECHO "X$module_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-with_gnu_ld_CXX='`$ECHO "X$with_gnu_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-allow_undefined_flag_CXX='`$ECHO "X$allow_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-no_undefined_flag_CXX='`$ECHO "X$no_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_CXX='`$ECHO "X$hardcode_libdir_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_ld_CXX='`$ECHO "X$hardcode_libdir_flag_spec_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_separator_CXX='`$ECHO "X$hardcode_libdir_separator_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct_CXX='`$ECHO "X$hardcode_direct_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct_absolute_CXX='`$ECHO "X$hardcode_direct_absolute_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_minus_L_CXX='`$ECHO "X$hardcode_minus_L_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_shlibpath_var_CXX='`$ECHO "X$hardcode_shlibpath_var_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_automatic_CXX='`$ECHO "X$hardcode_automatic_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-inherit_rpath_CXX='`$ECHO "X$inherit_rpath_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-link_all_deplibs_CXX='`$ECHO "X$link_all_deplibs_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-fix_srcfile_path_CXX='`$ECHO "X$fix_srcfile_path_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-always_export_symbols_CXX='`$ECHO "X$always_export_symbols_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-export_symbols_cmds_CXX='`$ECHO "X$export_symbols_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-exclude_expsyms_CXX='`$ECHO "X$exclude_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-include_expsyms_CXX='`$ECHO "X$include_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-prelink_cmds_CXX='`$ECHO "X$prelink_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-file_list_spec_CXX='`$ECHO "X$file_list_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_action_CXX='`$ECHO "X$hardcode_action_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_lib_search_dirs_CXX='`$ECHO "X$compiler_lib_search_dirs_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-predep_objects_CXX='`$ECHO "X$predep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-postdep_objects_CXX='`$ECHO "X$postdep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-predeps_CXX='`$ECHO "X$predeps_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-postdeps_CXX='`$ECHO "X$postdeps_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_lib_search_path_CXX='`$ECHO "X$compiler_lib_search_path_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# Quote evaled strings.
-for var in SED \
-GREP \
-EGREP \
-FGREP \
-LD \
-NM \
-LN_S \
-lt_SP2NL \
-lt_NL2SP \
-reload_flag \
-deplibs_check_method \
-file_magic_cmd \
-AR \
-AR_FLAGS \
-STRIP \
-RANLIB \
-CC \
-CFLAGS \
-compiler \
-lt_cv_sys_global_symbol_pipe \
-lt_cv_sys_global_symbol_to_cdecl \
-lt_cv_sys_global_symbol_to_c_name_address \
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
-SHELL \
-ECHO \
-lt_prog_compiler_no_builtin_flag \
-lt_prog_compiler_wl \
-lt_prog_compiler_pic \
-lt_prog_compiler_static \
-lt_cv_prog_compiler_c_o \
-need_locks \
-DSYMUTIL \
-NMEDIT \
-LIPO \
-OTOOL \
-OTOOL64 \
-shrext_cmds \
-export_dynamic_flag_spec \
-whole_archive_flag_spec \
-compiler_needs_object \
-with_gnu_ld \
-allow_undefined_flag \
-no_undefined_flag \
-hardcode_libdir_flag_spec \
-hardcode_libdir_flag_spec_ld \
-hardcode_libdir_separator \
-fix_srcfile_path \
-exclude_expsyms \
-include_expsyms \
-file_list_spec \
-variables_saved_for_relink \
-libname_spec \
-library_names_spec \
-soname_spec \
-finish_eval \
-old_striplib \
-striplib \
-compiler_lib_search_dirs \
-predep_objects \
-postdep_objects \
-predeps \
-postdeps \
-compiler_lib_search_path \
-LD_CXX \
-compiler_CXX \
-lt_prog_compiler_no_builtin_flag_CXX \
-lt_prog_compiler_wl_CXX \
-lt_prog_compiler_pic_CXX \
-lt_prog_compiler_static_CXX \
-lt_cv_prog_compiler_c_o_CXX \
-export_dynamic_flag_spec_CXX \
-whole_archive_flag_spec_CXX \
-compiler_needs_object_CXX \
-with_gnu_ld_CXX \
-allow_undefined_flag_CXX \
-no_undefined_flag_CXX \
-hardcode_libdir_flag_spec_CXX \
-hardcode_libdir_flag_spec_ld_CXX \
-hardcode_libdir_separator_CXX \
-fix_srcfile_path_CXX \
-exclude_expsyms_CXX \
-include_expsyms_CXX \
-file_list_spec_CXX \
-compiler_lib_search_dirs_CXX \
-predep_objects_CXX \
-postdep_objects_CXX \
-predeps_CXX \
-postdeps_CXX \
-compiler_lib_search_path_CXX; do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
-    *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
-      ;;
-    *)
-      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-      ;;
-    esac
-done
-
-# Double-quote double-evaled strings.
-for var in reload_cmds \
-old_postinstall_cmds \
-old_postuninstall_cmds \
-old_archive_cmds \
-extract_expsyms_cmds \
-old_archive_from_new_cmds \
-old_archive_from_expsyms_cmds \
-archive_cmds \
-archive_expsym_cmds \
-module_cmds \
-module_expsym_cmds \
-export_symbols_cmds \
-prelink_cmds \
-postinstall_cmds \
-postuninstall_cmds \
-finish_cmds \
-sys_lib_search_path_spec \
-sys_lib_dlsearch_path_spec \
-old_archive_cmds_CXX \
-old_archive_from_new_cmds_CXX \
-old_archive_from_expsyms_cmds_CXX \
-archive_cmds_CXX \
-archive_expsym_cmds_CXX \
-module_cmds_CXX \
-module_expsym_cmds_CXX \
-export_symbols_cmds_CXX \
-prelink_cmds_CXX; do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
-    *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
-      ;;
-    *)
-      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-      ;;
-    esac
-done
-
-# Fix-up fallback echo if it was mangled by the above quoting rules.
-case \$lt_ECHO in
-*'\\\$0 --fallback-echo"')  lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\`
-  ;;
-esac
-
-ac_aux_dir='$ac_aux_dir'
-xsi_shell='$xsi_shell'
-lt_shell_append='$lt_shell_append'
-
-# See if we are running on zsh, and set the options which allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
-   setopt NO_GLOB_SUBST
-fi
-
-
-    PACKAGE='$PACKAGE'
-    VERSION='$VERSION'
-    TIMESTAMP='$TIMESTAMP'
-    RM='$RM'
-    ofile='$ofile'
-
-
-
-
-
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
-  case $ac_config_target in
-    "include/mgl/config.h") CONFIG_HEADERS="$CONFIG_HEADERS include/mgl/config.h" ;;
-    "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
-    "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
-    "texinfo/Makefile") CONFIG_FILES="$CONFIG_FILES texinfo/Makefile" ;;
-    "texinfo/png/Makefile") CONFIG_FILES="$CONFIG_FILES texinfo/png/Makefile" ;;
-    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-    "mgl/Makefile") CONFIG_FILES="$CONFIG_FILES mgl/Makefile" ;;
-    "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;;
-    "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
-    "lang/Makefile") CONFIG_FILES="$CONFIG_FILES lang/Makefile" ;;
-    "utils/Makefile") CONFIG_FILES="$CONFIG_FILES utils/Makefile" ;;
-    "widgets/Makefile") CONFIG_FILES="$CONFIG_FILES widgets/Makefile" ;;
-
-  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
-  esac
-done
-
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used.  Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
-  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience.  Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
-  tmp=
-  trap 'exit_status=$?
-  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
-' 0
-  trap 'as_fn_exit 1' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
-  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
-}  ||
-{
-  tmp=./conf$$-$RANDOM
-  (umask 077 && mkdir "$tmp")
-} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
-
-# Set up the scripts for CONFIG_FILES section.
-# No need to generate them if there are no CONFIG_FILES.
-# This happens for instance with `./config.status config.h'.
-if test -n "$CONFIG_FILES"; then
-
-
-ac_cr=`echo X | tr X '\015'`
-# On cygwin, bash can eat \r inside `` if the user requested igncr.
-# But we know of no other shell where ac_cr would be empty at this
-# point, so we can use a bashism as a fallback.
-if test "x$ac_cr" = x; then
-  eval ac_cr=\$\'\\r\'
-fi
-ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
-if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
-  ac_cs_awk_cr='\\r'
-else
-  ac_cs_awk_cr=$ac_cr
-fi
-
-echo 'BEGIN {' >"$tmp/subs1.awk" &&
-_ACEOF
-
-
-{
-  echo "cat >conf$$subs.awk <<_ACEOF" &&
-  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
-  echo "_ACEOF"
-} >conf$$subs.sh ||
-  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
-  . ./conf$$subs.sh ||
-    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-
-  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
-  if test $ac_delim_n = $ac_delim_num; then
-    break
-  elif $ac_last_try; then
-    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-  else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
-rm -f conf$$subs.sh
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
-_ACEOF
-sed -n '
-h
-s/^/S["/; s/!.*/"]=/
-p
-g
-s/^[^!]*!//
-:repl
-t repl
-s/'"$ac_delim"'$//
-t delim
-:nl
-h
-s/\(.\{148\}\)..*/\1/
-t more1
-s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
-p
-n
-b repl
-:more1
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t nl
-:delim
-h
-s/\(.\{148\}\)..*/\1/
-t more2
-s/["\\]/\\&/g; s/^/"/; s/$/"/
-p
-b
-:more2
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t delim
-' <conf$$subs.awk | sed '
-/^[^""]/{
-  N
-  s/\n//
-}
-' >>$CONFIG_STATUS || ac_write_fail=1
-rm -f conf$$subs.awk
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACAWK
-cat >>"\$tmp/subs1.awk" <<_ACAWK &&
-  for (key in S) S_is_set[key] = 1
-  FS = ""
-
-}
-{
-  line = $ 0
-  nfields = split(line, field, "@")
-  substed = 0
-  len = length(field[1])
-  for (i = 2; i < nfields; i++) {
-    key = field[i]
-    keylen = length(key)
-    if (S_is_set[key]) {
-      value = S[key]
-      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
-      len += length(value) + length(field[++i])
-      substed = 1
-    } else
-      len += 1 + keylen
-  }
-
-  print line
-}
-
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
-  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
-else
-  cat
-fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
-  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
-_ACEOF
-
-# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
-# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[	 ]*VPATH[	 ]*=[	 ]*/{
-h
-s///
-s/^/:/
-s/[	 ]*$/:/
-s/:\$(srcdir):/:/g
-s/:\${srcdir}:/:/g
-s/:@srcdir@:/:/g
-s/^:*//
-s/:*$//
-x
-s/\(=[	 ]*\).*/\1/
-G
-s/\n//
-s/^[^=]*=[	 ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-fi # test -n "$CONFIG_FILES"
-
-# Set up the scripts for CONFIG_HEADERS section.
-# No need to generate them if there are no CONFIG_HEADERS.
-# This happens for instance with `./config.status Makefile'.
-if test -n "$CONFIG_HEADERS"; then
-cat >"$tmp/defines.awk" <<\_ACAWK ||
-BEGIN {
-_ACEOF
-
-# Transform confdefs.h into an awk script `defines.awk', embedded as
-# here-document in config.status, that substitutes the proper values into
-# config.h.in to produce config.h.
-
-# Create a delimiter string that does not exist in confdefs.h, to ease
-# handling of long lines.
-ac_delim='%!_!# '
-for ac_last_try in false false :; do
-  ac_t=`sed -n "/$ac_delim/p" confdefs.h`
-  if test -z "$ac_t"; then
-    break
-  elif $ac_last_try; then
-    as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
-  else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
-
-# For the awk script, D is an array of macro values keyed by name,
-# likewise P contains macro parameters if any.  Preserve backslash
-# newline sequences.
-
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-sed -n '
-s/.\{148\}/&'"$ac_delim"'/g
-t rset
-:rset
-s/^[	 ]*#[	 ]*define[	 ][	 ]*/ /
-t def
-d
-:def
-s/\\$//
-t bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3"/p
-s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2"/p
-d
-:bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3\\\\\\n"\\/p
-t cont
-s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
-t cont
-d
-:cont
-n
-s/.\{148\}/&'"$ac_delim"'/g
-t clear
-:clear
-s/\\$//
-t bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/"/p
-d
-:bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
-b cont
-' <confdefs.h | sed '
-s/'"$ac_delim"'/"\\\
-"/g' >>$CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-  for (key in D) D_is_set[key] = 1
-  FS = ""
-}
-/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
-  line = \$ 0
-  split(line, arg, " ")
-  if (arg[1] == "#") {
-    defundef = arg[2]
-    mac1 = arg[3]
-  } else {
-    defundef = substr(arg[1], 2)
-    mac1 = arg[2]
-  }
-  split(mac1, mac2, "(") #)
-  macro = mac2[1]
-  prefix = substr(line, 1, index(line, defundef) - 1)
-  if (D_is_set[macro]) {
-    # Preserve the white space surrounding the "#".
-    print prefix "define", macro P[macro] D[macro]
-    next
-  } else {
-    # Replace #undef with comments.  This is necessary, for example,
-    # in the case of _POSIX_SOURCE, which is predefined and required
-    # on some systems where configure will not decide to define it.
-    if (defundef == "undef") {
-      print "/*", prefix defundef, macro, "*/"
-      next
-    }
-  }
-}
-{ print }
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-  as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
-fi # test -n "$CONFIG_HEADERS"
-
-
-eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS"
-shift
-for ac_tag
-do
-  case $ac_tag in
-  :[FHLC]) ac_mode=$ac_tag; continue;;
-  esac
-  case $ac_mode$ac_tag in
-  :[FHL]*:*);;
-  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;;
-  :[FH]-) ac_tag=-:-;;
-  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
-  esac
-  ac_save_IFS=$IFS
-  IFS=:
-  set x $ac_tag
-  IFS=$ac_save_IFS
-  shift
-  ac_file=$1
-  shift
-
-  case $ac_mode in
-  :L) ac_source=$1;;
-  :[FH])
-    ac_file_inputs=
-    for ac_f
-    do
-      case $ac_f in
-      -) ac_f="$tmp/stdin";;
-      *) # Look for the file first in the build tree, then in the source tree
-	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
-	 # because $ac_f cannot contain `:'.
-	 test -f "$ac_f" ||
-	   case $ac_f in
-	   [\\/$]*) false;;
-	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
-	   esac ||
-	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;;
-      esac
-      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
-      as_fn_append ac_file_inputs " '$ac_f'"
-    done
-
-    # Let's still pretend it is `configure' which instantiates (i.e., don't
-    # use $as_me), people would be surprised to read:
-    #    /* config.h.  Generated by config.status.  */
-    configure_input='Generated from '`
-	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
-	`' by configure.'
-    if test x"$ac_file" != x-; then
-      configure_input="$ac_file.  $configure_input"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
-    fi
-    # Neutralize special characters interpreted by sed in replacement strings.
-    case $configure_input in #(
-    *\&* | *\|* | *\\* )
-       ac_sed_conf_input=`$as_echo "$configure_input" |
-       sed 's/[\\\\&|]/\\\\&/g'`;; #(
-    *) ac_sed_conf_input=$configure_input;;
-    esac
-
-    case $ac_tag in
-    *:-:* | *:-) cat >"$tmp/stdin" \
-      || as_fn_error $? "could not create $ac_file" "$LINENO" 5  ;;
-    esac
-    ;;
-  esac
-
-  ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_file" : 'X\(//\)[^/]' \| \
-	 X"$ac_file" : 'X\(//\)$' \| \
-	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-  as_dir="$ac_dir"; as_fn_mkdir_p
-  ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
-  case $ac_top_builddir_sub in
-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-  esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
-  .)  # We are building in place.
-    ac_srcdir=.
-    ac_top_srcdir=$ac_top_builddir_sub
-    ac_abs_top_srcdir=$ac_pwd ;;
-  [\\/]* | ?:[\\/]* )  # Absolute name.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir
-    ac_abs_top_srcdir=$srcdir ;;
-  *) # Relative name.
-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_build_prefix$srcdir
-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
-  case $ac_mode in
-  :F)
-  #
-  # CONFIG_FILE
-  #
-
-  case $INSTALL in
-  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
-  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
-  esac
-  ac_MKDIR_P=$MKDIR_P
-  case $MKDIR_P in
-  [\\/$]* | ?:[\\/]* ) ;;
-  */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
-  esac
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-ac_sed_dataroot='
-/datarootdir/ {
-  p
-  q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p'
-case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-  ac_datarootdir_hack='
-  s&@datadir@&$datadir&g
-  s&@docdir@&$docdir&g
-  s&@infodir@&$infodir&g
-  s&@localedir@&$localedir&g
-  s&@mandir@&$mandir&g
-  s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
-_ACEOF
-
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_sed_extra="$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s|@configure_input@|$ac_sed_conf_input|;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@top_build_prefix@&$ac_top_build_prefix&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-s&@INSTALL@&$ac_INSTALL&;t t
-s&@MKDIR_P@&$ac_MKDIR_P&;t t
-$ac_datarootdir_hack
-"
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
-  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
-  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
-  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined" >&2;}
-
-  rm -f "$tmp/stdin"
-  case $ac_file in
-  -) cat "$tmp/out" && rm -f "$tmp/out";;
-  *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
-  esac \
-  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- ;;
-  :H)
-  #
-  # CONFIG_HEADER
-  #
-  if test x"$ac_file" != x-; then
-    {
-      $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
-    } >"$tmp/config.h" \
-      || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-    if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-$as_echo "$as_me: $ac_file is unchanged" >&6;}
-    else
-      rm -f "$ac_file"
-      mv "$tmp/config.h" "$ac_file" \
-	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
-    fi
-  else
-    $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
-      || as_fn_error $? "could not create -" "$LINENO" 5
-  fi
-# Compute "$ac_file"'s index in $config_headers.
-_am_arg="$ac_file"
-_am_stamp_count=1
-for _am_header in $config_headers :; do
-  case $_am_header in
-    $_am_arg | $_am_arg:* )
-      break ;;
-    * )
-      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
-  esac
-done
-echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
-$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$_am_arg" : 'X\(//\)[^/]' \| \
-	 X"$_am_arg" : 'X\(//\)$' \| \
-	 X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$_am_arg" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`/stamp-h$_am_stamp_count
- ;;
-
-  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
-$as_echo "$as_me: executing $ac_file commands" >&6;}
- ;;
-  esac
-
-
-  case $ac_file$ac_mode in
-    "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
-  # Autoconf 2.62 quotes --file arguments for eval, but not when files
-  # are listed without --file.  Let's play safe and only enable the eval
-  # if we detect the quoting.
-  case $CONFIG_FILES in
-  *\'*) eval set x "$CONFIG_FILES" ;;
-  *)   set x $CONFIG_FILES ;;
-  esac
-  shift
-  for mf
-  do
-    # Strip MF so we end up with the name of the file.
-    mf=`echo "$mf" | sed -e 's/:.*$//'`
-    # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named `Makefile.in', but
-    # some people rename them; so instead we look at the file content.
-    # Grep'ing the first line is not enough: some people post-process
-    # each Makefile.in and add a new line on top of each file to say so.
-    # Grep'ing the whole file is not good either: AIX grep has a line
-    # limit of 2048, but all sed's we know have understand at least 4000.
-    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
-      dirpart=`$as_dirname -- "$mf" ||
-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$mf" : 'X\(//\)[^/]' \| \
-	 X"$mf" : 'X\(//\)$' \| \
-	 X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$mf" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-    else
-      continue
-    fi
-    # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running `make'.
-    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
-    test -z "$DEPDIR" && continue
-    am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
-    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # When using ansi2knr, U may be empty or an underscore; expand it
-    U=`sed -n 's/^U = //p' < "$mf"`
-    # Find all dependency output files, they are included files with
-    # $(DEPDIR) in their names.  We invoke sed twice because it is the
-    # simplest approach to changing $(DEPDIR) to its actual value in the
-    # expansion.
-    for file in `sed -n "
-      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
-      # Make sure the directory exists.
-      test -f "$dirpart/$file" && continue
-      fdir=`$as_dirname -- "$file" ||
-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$file" : 'X\(//\)[^/]' \| \
-	 X"$file" : 'X\(//\)$' \| \
-	 X"$file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      as_dir=$dirpart/$fdir; as_fn_mkdir_p
-      # echo "creating $dirpart/$file"
-      echo '# dummy' > "$dirpart/$file"
-    done
-  done
-}
- ;;
-    "libtool":C)
-
-    # See if we are running on zsh, and set the options which allow our
-    # commands through without removal of \ escapes.
-    if test -n "${ZSH_VERSION+set}" ; then
-      setopt NO_GLOB_SUBST
-    fi
-
-    cfgfile="${ofile}T"
-    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
-    $RM "$cfgfile"
-
-    cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008 Free Software Foundation, Inc.
-#   Written by Gordon Matzigkeit, 1996
-#
-#   This file is part of GNU Libtool.
-#
-# GNU Libtool 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.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool 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 GNU Libtool; see the file COPYING.  If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-
-# The names of the tagged configurations supported by this script.
-available_tags="CXX "
-
-# ### BEGIN LIBTOOL CONFIG
-
-# Assembler program.
-AS=$AS
-
-# DLL creation program.
-DLLTOOL=$DLLTOOL
-
-# Object dumper program.
-OBJDUMP=$OBJDUMP
-
-# Which release of libtool.m4 was used?
-macro_version=$macro_version
-macro_revision=$macro_revision
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# What type of objects to build.
-pic_mode=$pic_mode
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
-
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# A sed program that does not truncate output.
-SED=$lt_SED
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="\$SED -e 1s/^X//"
-
-# A grep program that handles long lines.
-GREP=$lt_GREP
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# A literal string matcher.
-FGREP=$lt_FGREP
-
-# A BSD- or MS-compatible name lister.
-NM=$lt_NM
-
-# Whether we need soft or hard links.
-LN_S=$lt_LN_S
-
-# What is the maximum length of a command?
-max_cmd_len=$max_cmd_len
-
-# Object file suffix (normally "o").
-objext=$ac_objext
-
-# Executable file suffix (normally "").
-exeext=$exeext
-
-# whether the shell understands "unset".
-lt_unset=$lt_unset
-
-# turn spaces into newlines.
-SP2NL=$lt_lt_SP2NL
-
-# turn newlines into spaces.
-NL2SP=$lt_lt_NL2SP
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == "file_magic".
-file_magic_cmd=$lt_file_magic_cmd
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A symbol stripping program.
-STRIP=$lt_STRIP
-
-# Commands used to install an old-style archive.
-RANLIB=$lt_RANLIB
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# A C compiler.
-LTCC=$lt_CC
-
-# LTCC compiler flags.
-LTCFLAGS=$lt_CFLAGS
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration.
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair.
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# Transform the output of nm in a C name address pair when lib prefix is needed.
-global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# An echo program that does not interpret backslashes.
-ECHO=$lt_ECHO
-
-# Used to examine libraries when file_magic_cmd begins with "file".
-MAGIC_CMD=$MAGIC_CMD
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
-DSYMUTIL=$lt_DSYMUTIL
-
-# Tool to change global to local symbols on Mac OS X.
-NMEDIT=$lt_NMEDIT
-
-# Tool to manipulate fat objects and archives on Mac OS X.
-LIPO=$lt_LIPO
-
-# ldd/readelf like tool for Mach-O binaries on Mac OS X.
-OTOOL=$lt_OTOOL
-
-# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
-OTOOL64=$lt_OTOOL64
-
-# Old archive suffix (normally "a").
-libext=$libext
-
-# Shared library suffix (normally ".so").
-shrext_cmds=$lt_shrext_cmds
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at link time.
-variables_saved_for_relink=$lt_variables_saved_for_relink
-
-# Do we need the "lib" prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Library versioning type.
-version_type=$version_type
-
-# Shared library runtime path variable.
-runpath_var=$runpath_var
-
-# Shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Command to use after installation of a shared archive.
-postinstall_cmds=$lt_postinstall_cmds
-
-# Command to use after uninstallation of a shared archive.
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# As "finish_cmds", except a single script fragment to be evaled but
-# not shown.
-finish_eval=$lt_finish_eval
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Compile-time system search path for libraries.
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries.
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-
-# The linker used to build libraries.
-LD=$lt_LD
-
-# Commands used to build an old-style archive.
-old_archive_cmds=$lt_old_archive_cmds
-
-# A language specific compiler.
-CC=$lt_compiler
-
-# Is the compiler the GNU compiler?
-with_gcc=$GCC
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc
-
-# Whether or not to disallow shared libs when runtime libs are static.
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec
-
-# Whether the compiler copes with passing no objects directly.
-compiler_needs_object=$lt_compiler_needs_object
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
-
-# Commands used to build a shared archive.
-archive_cmds=$lt_archive_cmds
-archive_expsym_cmds=$lt_archive_expsym_cmds
-
-# Commands used to build a loadable module if different from building
-# a shared archive.
-module_cmds=$lt_module_cmds
-module_expsym_cmds=$lt_module_expsym_cmds
-
-# Whether we are building with GNU ld or not.
-with_gnu_ld=$lt_with_gnu_ld
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag
-
-# Flag that enforces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
-
-# If ld is used when linking, flag to hardcode \$libdir into a binary
-# during linking.  This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
-
-# Whether we need a single "-rpath" flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary.
-hardcode_direct=$hardcode_direct
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
-# library is relocated.
-hardcode_direct_absolute=$hardcode_direct_absolute
-
-# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-# into the resulting binary.
-hardcode_minus_L=$hardcode_minus_L
-
-# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-# into the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var
-
-# Set to "yes" if building a shared library automatically hardcodes DIR
-# into the library and all subsequent libraries and executables linked
-# against it.
-hardcode_automatic=$hardcode_automatic
-
-# Set to yes if linker adds runtime paths of dependent libraries
-# to runtime path list.
-inherit_rpath=$inherit_rpath
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path=$lt_fix_srcfile_path
-
-# Set to "yes" if exported symbols are required.
-always_export_symbols=$always_export_symbols
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms
-
-# Commands necessary for linking programs (against libraries) with templates.
-prelink_cmds=$lt_prelink_cmds
-
-# Specify filename containing input files.
-file_list_spec=$lt_file_list_spec
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action
-
-# The directories searched by this compiler when creating a shared library.
-compiler_lib_search_dirs=$lt_compiler_lib_search_dirs
-
-# Dependencies to place before and after the objects being linked to
-# create a shared library.
-predep_objects=$lt_predep_objects
-postdep_objects=$lt_postdep_objects
-predeps=$lt_predeps
-postdeps=$lt_postdeps
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path
-
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
-  case $host_os in
-  aix3*)
-    cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program.  For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
-  COLLECT_NAMES=
-  export COLLECT_NAMES
-fi
-_LT_EOF
-    ;;
-  esac
-
-
-ltmain="$ac_aux_dir/ltmain.sh"
-
-
-  # We use sed instead of cat because bash on DJGPP gets confused if
-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-  # text mode, it properly converts lines to CR/LF.  This bash problem
-  # is reportedly fixed, but why not run on old versions too?
-  sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  case $xsi_shell in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result="${1##*/}"
-}
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-#   dirname:  Compute the dirname of FILE.  If nonempty,
-#             add APPEND to the result, otherwise set result
-#             to NONDIR_REPLACEMENT.
-#             value returned in "$func_dirname_result"
-#   basename: Compute filename of FILE.
-#             value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-  func_basename_result="${1##*/}"
-}
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-func_stripname ()
-{
-  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
-  # positional parameters, so assign one to ordinary parameter first.
-  func_stripname_result=${3}
-  func_stripname_result=${func_stripname_result#"${1}"}
-  func_stripname_result=${func_stripname_result%"${2}"}
-}
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=${1%%=*}
-  func_opt_split_arg=${1#*=}
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  case ${1} in
-    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
-    *)    func_lo2o_result=${1} ;;
-  esac
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=${1%.*}.lo
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=$(( $* ))
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=${#1}
-}
-
-_LT_EOF
-    ;;
-  *) # Bourne compatible functions.
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  # Extract subdirectory from the argument.
-  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
-  if test "X$func_dirname_result" = "X${1}"; then
-    func_dirname_result="${3}"
-  else
-    func_dirname_result="$func_dirname_result${2}"
-  fi
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
-}
-
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
-  case ${2} in
-    .*) func_stripname_result=`$ECHO "X${3}" \
-           | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
-    *)  func_stripname_result=`$ECHO "X${3}" \
-           | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
-  esac
-}
-
-# sed scripts:
-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
-my_sed_long_arg='1s/^-[^=]*=//'
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
-  func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'`
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=`expr "$@"`
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
-}
-
-_LT_EOF
-esac
-
-case $lt_shell_append in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$1+=\$2"
-}
-_LT_EOF
-    ;;
-  *)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$1=\$$1\$2"
-}
-
-_LT_EOF
-    ;;
-  esac
-
-
-  sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  mv -f "$cfgfile" "$ofile" ||
-    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
-  chmod +x "$ofile"
-
-
-    cat <<_LT_EOF >> "$ofile"
-
-# ### BEGIN LIBTOOL TAG CONFIG: CXX
-
-# The linker used to build libraries.
-LD=$lt_LD_CXX
-
-# Commands used to build an old-style archive.
-old_archive_cmds=$lt_old_archive_cmds_CXX
-
-# A language specific compiler.
-CC=$lt_compiler_CXX
-
-# Is the compiler the GNU compiler?
-with_gcc=$GCC_CXX
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_CXX
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_CXX
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_CXX
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_CXX
-
-# Whether or not to disallow shared libs when runtime libs are static.
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
-
-# Whether the compiler copes with passing no objects directly.
-compiler_needs_object=$lt_compiler_needs_object_CXX
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
-
-# Commands used to build a shared archive.
-archive_cmds=$lt_archive_cmds_CXX
-archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
-
-# Commands used to build a loadable module if different from building
-# a shared archive.
-module_cmds=$lt_module_cmds_CXX
-module_expsym_cmds=$lt_module_expsym_cmds_CXX
-
-# Whether we are building with GNU ld or not.
-with_gnu_ld=$lt_with_gnu_ld_CXX
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_CXX
-
-# Flag that enforces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_CXX
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
-
-# If ld is used when linking, flag to hardcode \$libdir into a binary
-# during linking.  This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX
-
-# Whether we need a single "-rpath" flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary.
-hardcode_direct=$hardcode_direct_CXX
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
-# library is relocated.
-hardcode_direct_absolute=$hardcode_direct_absolute_CXX
-
-# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-# into the resulting binary.
-hardcode_minus_L=$hardcode_minus_L_CXX
-
-# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-# into the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
-
-# Set to "yes" if building a shared library automatically hardcodes DIR
-# into the library and all subsequent libraries and executables linked
-# against it.
-hardcode_automatic=$hardcode_automatic_CXX
-
-# Set to yes if linker adds runtime paths of dependent libraries
-# to runtime path list.
-inherit_rpath=$inherit_rpath_CXX
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_CXX
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path=$lt_fix_srcfile_path_CXX
-
-# Set to "yes" if exported symbols are required.
-always_export_symbols=$always_export_symbols_CXX
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_CXX
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_CXX
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_CXX
-
-# Commands necessary for linking programs (against libraries) with templates.
-prelink_cmds=$lt_prelink_cmds_CXX
-
-# Specify filename containing input files.
-file_list_spec=$lt_file_list_spec_CXX
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_CXX
-
-# The directories searched by this compiler when creating a shared library.
-compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX
-
-# Dependencies to place before and after the objects being linked to
-# create a shared library.
-predep_objects=$lt_predep_objects_CXX
-postdep_objects=$lt_postdep_objects_CXX
-predeps=$lt_predeps_CXX
-postdeps=$lt_postdeps_CXX
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
-
-# ### END LIBTOOL TAG CONFIG: CXX
-_LT_EOF
-
- ;;
-
-  esac
-done # for ac_tag
-
-
-as_fn_exit 0
-_ACEOF
-ac_clean_files=$ac_clean_files_save
-
-test $ac_write_fail = 0 ||
-  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded.  So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status.  When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
-  ac_cs_success=:
-  ac_config_status_args=
-  test "$silent" = yes &&
-    ac_config_status_args="$ac_config_status_args --quiet"
-  exec 5>/dev/null
-  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
-  exec 5>>config.log
-  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
-  # would make configure fail if this is the last instruction.
-  $ac_cs_success || as_fn_exit 1
-fi
-if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
-fi
-
-
diff --git a/.pc/debian-changes-1.11-1/examples/Makefile.in b/.pc/debian-changes-1.11-1/examples/Makefile.in
deleted file mode 100644
index 0979b41..0000000
--- a/.pc/debian-changes-1.11-1/examples/Makefile.in
+++ /dev/null
@@ -1,920 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-# Makerules.
-# This file is part of AutoTroll.
-# Copyright (C) 2006  Benoit Sigoure.
-#
-# AutoTroll 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.
-#
-# This program 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 this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-# USA.
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-check_PROGRAMS = $(am__EXEEXT_5)
-bin_PROGRAMS = mgl_example$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) \
-	$(am__EXEEXT_3) $(am__EXEEXT_4)
- at USE_FLTK_TRUE@am__append_1 = mgl_fltk_example
- at USE_FLTK_TRUE@am__append_2 = test
- at USE_GLUT_TRUE@am__append_3 = mgl_glut_example
- at USE_WX_TRUE@am__append_4 = mgl_wx_example
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/config/autotroll.mk
- at USE_QT_TRUE@am__append_5 = mgl_qt_example
-subdir = examples
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/include/mgl/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
- at USE_FLTK_TRUE@am__EXEEXT_1 = mgl_fltk_example$(EXEEXT)
- at USE_GLUT_TRUE@am__EXEEXT_2 = mgl_glut_example$(EXEEXT)
- at USE_WX_TRUE@am__EXEEXT_3 = mgl_wx_example$(EXEEXT)
- at USE_QT_TRUE@am__EXEEXT_4 = mgl_qt_example$(EXEEXT)
-am__installdirs = "$(DESTDIR)$(bindir)"
- at USE_FLTK_TRUE@am__EXEEXT_5 = test$(EXEEXT)
-PROGRAMS = $(bin_PROGRAMS)
-am_mgl_example_OBJECTS = wnd_samples.$(OBJEXT) full_test.$(OBJEXT)
-mgl_example_OBJECTS = $(am_mgl_example_OBJECTS)
-mgl_example_DEPENDENCIES = $(top_builddir)/mgl/libmgl.la
-am__mgl_fltk_example_SOURCES_DIST = wnd_samples.cpp fltk_example.cpp
- at USE_FLTK_TRUE@am_mgl_fltk_example_OBJECTS =  \
- at USE_FLTK_TRUE@	mgl_fltk_example-wnd_samples.$(OBJEXT) \
- at USE_FLTK_TRUE@	mgl_fltk_example-fltk_example.$(OBJEXT)
-mgl_fltk_example_OBJECTS = $(am_mgl_fltk_example_OBJECTS)
-am__DEPENDENCIES_1 =
- at USE_FLTK_TRUE@mgl_fltk_example_DEPENDENCIES = $(am__DEPENDENCIES_1) \
- at USE_FLTK_TRUE@	$(top_builddir)/widgets/libmgl-fltk.la \
- at USE_FLTK_TRUE@	$(top_builddir)/mgl/libmgl.la
-mgl_fltk_example_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CXXLD) \
-	$(mgl_fltk_example_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
-am__mgl_glut_example_SOURCES_DIST = wnd_samples.cpp glut_example.cpp
- at USE_GLUT_TRUE@am_mgl_glut_example_OBJECTS = wnd_samples.$(OBJEXT) \
- at USE_GLUT_TRUE@	glut_example.$(OBJEXT)
-mgl_glut_example_OBJECTS = $(am_mgl_glut_example_OBJECTS)
- at USE_GLUT_TRUE@mgl_glut_example_DEPENDENCIES =  \
- at USE_GLUT_TRUE@	$(top_builddir)/widgets/libmgl-glut.la \
- at USE_GLUT_TRUE@	$(top_builddir)/mgl/libmgl.la
-am__mgl_qt_example_SOURCES_DIST = wnd_samples.cpp \
-	$(top_builddir)/include/mgl/mgl_qt.moc.cpp \
-	$(top_srcdir)/include/mgl/mgl_qt.h qt_example.cpp
- at USE_QT_TRUE@am_mgl_qt_example_OBJECTS =  \
- at USE_QT_TRUE@	mgl_qt_example-wnd_samples.$(OBJEXT) \
- at USE_QT_TRUE@	mgl_qt_example-mgl_qt.moc.$(OBJEXT) \
- at USE_QT_TRUE@	mgl_qt_example-qt_example.$(OBJEXT)
-mgl_qt_example_OBJECTS = $(am_mgl_qt_example_OBJECTS)
- at USE_QT_TRUE@mgl_qt_example_DEPENDENCIES = $(am__DEPENDENCIES_1) \
- at USE_QT_TRUE@	$(top_builddir)/widgets/libmgl-qt.la \
- at USE_QT_TRUE@	$(top_builddir)/mgl/libmgl.la
-mgl_qt_example_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CXXLD) \
-	$(mgl_qt_example_CXXFLAGS) $(CXXFLAGS) \
-	$(mgl_qt_example_LDFLAGS) $(LDFLAGS) -o $@
-am__mgl_wx_example_SOURCES_DIST = wnd_samples.cpp wx_example.cpp
- at USE_WX_TRUE@am_mgl_wx_example_OBJECTS =  \
- at USE_WX_TRUE@	mgl_wx_example-wnd_samples.$(OBJEXT) \
- at USE_WX_TRUE@	mgl_wx_example-wx_example.$(OBJEXT)
-mgl_wx_example_OBJECTS = $(am_mgl_wx_example_OBJECTS)
- at USE_WX_TRUE@mgl_wx_example_DEPENDENCIES = $(am__DEPENDENCIES_1) \
- at USE_WX_TRUE@	$(top_builddir)/widgets/libmgl-wx.la \
- at USE_WX_TRUE@	$(top_builddir)/mgl/libmgl.la
-mgl_wx_example_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CXXLD) \
-	$(mgl_wx_example_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
-am__test_SOURCES_DIST = wnd_samples.cpp main.cpp
- at USE_FLTK_TRUE@am_test_OBJECTS = test-wnd_samples.$(OBJEXT) \
- at USE_FLTK_TRUE@	test-main.$(OBJEXT)
-test_OBJECTS = $(am_test_OBJECTS)
- at USE_FLTK_TRUE@test_DEPENDENCIES = $(am__DEPENDENCIES_1) \
- at USE_FLTK_TRUE@	$(top_builddir)/widgets/libmgl-fltk.la \
- at USE_FLTK_TRUE@	$(top_builddir)/mgl/libmgl.la
-test_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CXXLD) $(test_CXXFLAGS) $(CXXFLAGS) \
-	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)/include/mgl
-depcomp = $(SHELL) $(top_srcdir)/config/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-CXXLD = $(CXX)
-CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
-SOURCES = $(mgl_example_SOURCES) $(mgl_fltk_example_SOURCES) \
-	$(mgl_glut_example_SOURCES) $(mgl_qt_example_SOURCES) \
-	$(mgl_wx_example_SOURCES) $(test_SOURCES)
-DIST_SOURCES = $(mgl_example_SOURCES) \
-	$(am__mgl_fltk_example_SOURCES_DIST) \
-	$(am__mgl_glut_example_SOURCES_DIST) \
-	$(am__mgl_qt_example_SOURCES_DIST) \
-	$(am__mgl_wx_example_SOURCES_DIST) $(am__test_SOURCES_DIST)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_CXXFLAGS = @AM_CXXFLAGS@ -I$(top_srcdir)/include \
-	-I$(top_builddir)/include
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-FLTK_FLAGS = @FLTK_FLAGS@
-FLTK_LIBS = @FLTK_LIBS@
-GIF_FLAGS = @GIF_FLAGS@
-GIF_LIBS = @GIF_LIBS@
-GLUT_FLAGS = @GLUT_FLAGS@
-GLUT_LIBS = @GLUT_LIBS@
-GL_LIBS = @GL_LIBS@
-GREP = @GREP@
-GSL_FLAGS = @GSL_FLAGS@
-GSL_LIBS = @GSL_LIBS@
-HAVE_SWIG = @HAVE_SWIG@
-HDF4_FLAGS = @HDF4_FLAGS@
-HDF4_LIBS = @HDF4_LIBS@
-HDF5_FLAGS = @HDF5_FLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-JPEG_FLAGS = @JPEG_FLAGS@
-JPEG_LIBS = @JPEG_LIBS@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MGL_AGE = @MGL_AGE@
-MGL_CURRENT = @MGL_CURRENT@
-MGL_RELEASE = @MGL_RELEASE@
-MGL_REVISION = @MGL_REVISION@
-MKDIR_P = @MKDIR_P@
-MOC = @MOC@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OCTAVE = @OCTAVE@
-OCTAVE_ARCH = @OCTAVE_ARCH@
-OCTAVE_INCFLAGS = @OCTAVE_INCFLAGS@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PNG_LIBS = @PNG_LIBS@
-PTHREAD_FLAGS = @PTHREAD_FLAGS@
-PTHREAD_LIBS = @PTHREAD_LIBS@
-PYTHON = @PYTHON@
-PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
-PYTHON_HEADERS = @PYTHON_HEADERS@
-PYTHON_PLATFORM = @PYTHON_PLATFORM@
-PYTHON_PREFIX = @PYTHON_PREFIX@
-PYTHON_VERSION = @PYTHON_VERSION@
-QMAKE = @QMAKE@
-QT_CFLAGS = @QT_CFLAGS@
-QT_CPPFLAGS = @QT_CPPFLAGS@
-QT_CXXFLAGS = @QT_CXXFLAGS@
-QT_DEFINES = @QT_DEFINES@
-QT_INCPATH = @QT_INCPATH@
-QT_LDFLAGS = @QT_LDFLAGS@
-QT_LFLAGS = @QT_LFLAGS@
-QT_LIBS = @QT_LIBS@
-QT_PATH = @QT_PATH@
-QT_VERSION = @QT_VERSION@
-QT_VERSION_MAJOR = @QT_VERSION_MAJOR@
-RANLIB = @RANLIB@
-RCC = @RCC@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TMPDIR = @TMPDIR@
-UIC = @UIC@
-VERSION = @VERSION@
-WX_FLAGS = @WX_FLAGS@
-WX_LIBS = @WX_LIBS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-pkgpyexecdir = @pkgpyexecdir@
-pkgpythondir = @pkgpythondir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-pyexecdir = @pyexecdir@
-pythondir = @pythondir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-mgl_example_SOURCES = wnd_samples.cpp full_test.cpp
-mgl_example_LDADD = $(top_builddir)/mgl/libmgl.la
- at USE_FLTK_TRUE@mgl_fltk_example_SOURCES = wnd_samples.cpp fltk_example.cpp
- at USE_FLTK_TRUE@mgl_fltk_example_LDADD = $(FLTK_LIBS) $(top_builddir)/widgets/libmgl-fltk.la $(top_builddir)/mgl/libmgl.la
- at USE_FLTK_TRUE@mgl_fltk_example_CXXFLAGS = $(FLTK_FLAGS) $(AM_CXXFLAGS)
- at USE_FLTK_TRUE@test_SOURCES = wnd_samples.cpp main.cpp
- at USE_FLTK_TRUE@test_LDADD = $(FLTK_LIBS) $(top_builddir)/widgets/libmgl-fltk.la $(top_builddir)/mgl/libmgl.la
- at USE_FLTK_TRUE@test_CXXFLAGS = $(FLTK_FLAGS) $(AM_CXXFLAGS)
- at USE_GLUT_TRUE@mgl_glut_example_SOURCES = wnd_samples.cpp glut_example.cpp
- at USE_GLUT_TRUE@mgl_glut_example_LDADD = $(top_builddir)/widgets/libmgl-glut.la $(top_builddir)/mgl/libmgl.la
- at USE_WX_TRUE@mgl_wx_example_LDADD = $(WX_LIBS) $(top_builddir)/widgets/libmgl-wx.la $(top_builddir)/mgl/libmgl.la
- at USE_WX_TRUE@mgl_wx_example_CXXFLAGS = $(WX_FLAGS) $(AM_CXXFLAGS)
- at USE_WX_TRUE@mgl_wx_example_SOURCES = wnd_samples.cpp wx_example.cpp
-
-# See autotroll.m4 :)
- at USE_QT_TRUE@SUFFIXES = .moc.cpp .moc.cc .moc.cxx .moc.C .h .hh \
- at USE_QT_TRUE@           .ui .ui.h .ui.hh \
- at USE_QT_TRUE@           .qrc .qrc.cpp .qrc.cc .qrc.cxx .qrc.C
-
- at USE_QT_TRUE@DISTCLEANFILES = $(BUILT_SOURCES)
- at USE_QT_TRUE@ACLOCAL_AMFLAGS = -I $(top_srcdir)/config/
- at USE_QT_TRUE@mgl_qt_example_SOURCES = wnd_samples.cpp $(top_builddir)/include/mgl/mgl_qt.moc.cpp $(top_srcdir)/include/mgl/mgl_qt.h qt_example.cpp
- at USE_QT_TRUE@mgl_qt_example_LDADD = $(QT_LIBS) $(top_builddir)/widgets/libmgl-qt.la $(top_builddir)/mgl/libmgl.la
- at USE_QT_TRUE@mgl_qt_example_LDFLAGS = $(QT_LDFLAGS)
- at USE_QT_TRUE@mgl_qt_example_CPPFLAGS = $(QT_CPPFLAGS) $(AM_CPPFLAGS)
- at USE_QT_TRUE@mgl_qt_example_CXXFLAGS = $(QT_CXXFLAGS) $(AM_CXXFLAGS)
- at USE_QT_TRUE@BUILT_SOURCES = $(top_builddir)/include/mgl/mgl_qt.moc.cpp
- at USE_QT_TRUE@CLEANFILES = $(BUILT_SOURCES)
-all: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) all-am
-
-.SUFFIXES:
-.SUFFIXES: .moc.cpp .moc.cc .moc.cxx .moc.C .h .hh .ui .ui.h .ui.hh .qrc .qrc.cpp .qrc.cc .qrc.cxx .qrc.C .cpp .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/config/autotroll.mk $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu examples/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-binPROGRAMS: $(bin_PROGRAMS)
-	@$(NORMAL_INSTALL)
-	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
-	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
-	for p in $$list; do echo "$$p $$p"; done | \
-	sed 's/$(EXEEXT)$$//' | \
-	while read p p1; do if test -f $$p || test -f $$p1; \
-	  then echo "$$p"; echo "$$p"; else :; fi; \
-	done | \
-	sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
-	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
-	sed 'N;N;N;s,\n, ,g' | \
-	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
-	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
-	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
-	    else { print "f", $$3 "/" $$4, $$1; } } \
-	  END { for (d in files) print "f", d, files[d] }' | \
-	while read type dir files; do \
-	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
-	    test -z "$$files" || { \
-	    echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
-	    $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
-	    } \
-	; done
-
-uninstall-binPROGRAMS:
-	@$(NORMAL_UNINSTALL)
-	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
-	files=`for p in $$list; do echo "$$p"; done | \
-	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-	      -e 's/$$/$(EXEEXT)/' `; \
-	test -n "$$list" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(bindir)" && rm -f $$files
-
-clean-binPROGRAMS:
-	@list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
-	echo " rm -f" $$list; \
-	rm -f $$list || exit $$?; \
-	test -n "$(EXEEXT)" || exit 0; \
-	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
-	echo " rm -f" $$list; \
-	rm -f $$list
-
-clean-checkPROGRAMS:
-	@list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
-	echo " rm -f" $$list; \
-	rm -f $$list || exit $$?; \
-	test -n "$(EXEEXT)" || exit 0; \
-	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
-	echo " rm -f" $$list; \
-	rm -f $$list
-mgl_example$(EXEEXT): $(mgl_example_OBJECTS) $(mgl_example_DEPENDENCIES) 
-	@rm -f mgl_example$(EXEEXT)
-	$(CXXLINK) $(mgl_example_OBJECTS) $(mgl_example_LDADD) $(LIBS)
-mgl_fltk_example$(EXEEXT): $(mgl_fltk_example_OBJECTS) $(mgl_fltk_example_DEPENDENCIES) 
-	@rm -f mgl_fltk_example$(EXEEXT)
-	$(mgl_fltk_example_LINK) $(mgl_fltk_example_OBJECTS) $(mgl_fltk_example_LDADD) $(LIBS)
-mgl_glut_example$(EXEEXT): $(mgl_glut_example_OBJECTS) $(mgl_glut_example_DEPENDENCIES) 
-	@rm -f mgl_glut_example$(EXEEXT)
-	$(CXXLINK) $(mgl_glut_example_OBJECTS) $(mgl_glut_example_LDADD) $(LIBS)
-mgl_qt_example$(EXEEXT): $(mgl_qt_example_OBJECTS) $(mgl_qt_example_DEPENDENCIES) 
-	@rm -f mgl_qt_example$(EXEEXT)
-	$(mgl_qt_example_LINK) $(mgl_qt_example_OBJECTS) $(mgl_qt_example_LDADD) $(LIBS)
-mgl_wx_example$(EXEEXT): $(mgl_wx_example_OBJECTS) $(mgl_wx_example_DEPENDENCIES) 
-	@rm -f mgl_wx_example$(EXEEXT)
-	$(mgl_wx_example_LINK) $(mgl_wx_example_OBJECTS) $(mgl_wx_example_LDADD) $(LIBS)
-test$(EXEEXT): $(test_OBJECTS) $(test_DEPENDENCIES) 
-	@rm -f test$(EXEEXT)
-	$(test_LINK) $(test_OBJECTS) $(test_LDADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/full_test.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/glut_example.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mgl_fltk_example-fltk_example.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mgl_fltk_example-wnd_samples.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mgl_qt_example-mgl_qt.moc.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mgl_qt_example-qt_example.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mgl_qt_example-wnd_samples.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mgl_wx_example-wnd_samples.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mgl_wx_example-wx_example.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/test-main.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/test-wnd_samples.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/wnd_samples.Po at am__quote@
-
-.cpp.o:
- at am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
- at am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cpp.lo:
- at am__fastdepCXX_TRUE@	$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LTCXXCOMPILE) -c -o $@ $<
-
-mgl_fltk_example-wnd_samples.o: wnd_samples.cpp
- at am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_fltk_example_CXXFLAGS) $(CXXFLAGS) -MT mgl_fltk_example-wnd_samples.o -MD -MP -MF $(DEPDIR)/mgl_fltk_example-wnd_samples.Tpo -c -o mgl_fltk_example-wnd_samples.o `test -f 'wnd_samples.cpp' || echo '$(srcdir)/'`wnd_samples.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/mgl_fltk_example-wnd_samples.Tpo $(DEPDIR)/mgl_fltk_example-wnd_samples.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='wnd_samples.cpp' object='mgl_fltk_example-wnd_samples.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_fltk_example_CXXFLAGS) $(CXXFLAGS) -c -o mgl_fltk_example-wnd_samples.o `test -f 'wnd_samples.cpp' || echo '$(srcdir)/'`wnd_samples.cpp
-
-mgl_fltk_example-wnd_samples.obj: wnd_samples.cpp
- at am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_fltk_example_CXXFLAGS) $(CXXFLAGS) -MT mgl_fltk_example-wnd_samples.obj -MD -MP -MF $(DEPDIR)/mgl_fltk_example-wnd_samples.Tpo -c -o mgl_fltk_example-wnd_samples.obj `if test -f 'wnd_samples.cpp'; then $(CYGPATH_W) 'wnd_samples.cpp'; else $(CYGPATH_W) '$(srcdir)/wnd_samples.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/mgl_fltk_example-wnd_samples.Tpo $(DEPDIR)/mgl_fltk_example-wnd_samples.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='wnd_samples.cpp' object='mgl_fltk_example-wnd_samples.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_fltk_example_CXXFLAGS) $(CXXFLAGS) -c -o mgl_fltk_example-wnd_samples.obj `if test -f 'wnd_samples.cpp'; then $(CYGPATH_W) 'wnd_samples.cpp'; else $(CYGPATH_W) '$(srcdir)/wnd_samples.cpp'; fi`
-
-mgl_fltk_example-fltk_example.o: fltk_example.cpp
- at am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_fltk_example_CXXFLAGS) $(CXXFLAGS) -MT mgl_fltk_example-fltk_example.o -MD -MP -MF $(DEPDIR)/mgl_fltk_example-fltk_example.Tpo -c -o mgl_fltk_example-fltk_example.o `test -f 'fltk_example.cpp' || echo '$(srcdir)/'`fltk_example.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/mgl_fltk_example-fltk_example.Tpo $(DEPDIR)/mgl_fltk_example-fltk_example.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='fltk_example.cpp' object='mgl_fltk_example-fltk_example.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_fltk_example_CXXFLAGS) $(CXXFLAGS) -c -o mgl_fltk_example-fltk_example.o `test -f 'fltk_example.cpp' || echo '$(srcdir)/'`fltk_example.cpp
-
-mgl_fltk_example-fltk_example.obj: fltk_example.cpp
- at am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_fltk_example_CXXFLAGS) $(CXXFLAGS) -MT mgl_fltk_example-fltk_example.obj -MD -MP -MF $(DEPDIR)/mgl_fltk_example-fltk_example.Tpo -c -o mgl_fltk_example-fltk_example.obj `if test -f 'fltk_example.cpp'; then $(CYGPATH_W) 'fltk_example.cpp'; else $(CYGPATH_W) '$(srcdir)/fltk_example.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/mgl_fltk_example-fltk_example.Tpo $(DEPDIR)/mgl_fltk_example-fltk_example.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='fltk_example.cpp' object='mgl_fltk_example-fltk_example.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_fltk_example_CXXFLAGS) $(CXXFLAGS) -c -o mgl_fltk_example-fltk_example.obj `if test -f 'fltk_example.cpp'; then $(CYGPATH_W) 'fltk_example.cpp'; else $(CYGPATH_W) '$(srcdir)/fltk_example.cpp'; fi`
-
-mgl_qt_example-wnd_samples.o: wnd_samples.cpp
- at am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mgl_qt_example_CPPFLAGS) $(CPPFLAGS) $(mgl_qt_example_CXXFLAGS) $(CXXFLAGS) -MT mgl_qt_example-wnd_samples.o -MD -MP -MF $(DEPDIR)/mgl_qt_example-wnd_samples.Tpo -c -o mgl_qt_example-wnd_samples.o `test -f 'wnd_samples.cpp' || echo '$(srcdir)/'`wnd_samples.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/mgl_qt_example-wnd_samples.Tpo $(DEPDIR)/mgl_qt_example-wnd_samples.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='wnd_samples.cpp' object='mgl_qt_example-wnd_samples.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mgl_qt_example_CPPFLAGS) $(CPPFLAGS) $(mgl_qt_example_CXXFLAGS) $(CXXFLAGS) -c -o mgl_qt_example-wnd_samples.o `test -f 'wnd_samples.cpp' || echo '$(srcdir)/'`wnd_samples.cpp
-
-mgl_qt_example-wnd_samples.obj: wnd_samples.cpp
- at am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mgl_qt_example_CPPFLAGS) $(CPPFLAGS) $(mgl_qt_example_CXXFLAGS) $(CXXFLAGS) -MT mgl_qt_example-wnd_samples.obj -MD -MP -MF $(DEPDIR)/mgl_qt_example-wnd_samples.Tpo -c -o mgl_qt_example-wnd_samples.obj `if test -f 'wnd_samples.cpp'; then $(CYGPATH_W) 'wnd_samples.cpp'; else $(CYGPATH_W) '$(srcdir)/wnd_samples.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/mgl_qt_example-wnd_samples.Tpo $(DEPDIR)/mgl_qt_example-wnd_samples.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='wnd_samples.cpp' object='mgl_qt_example-wnd_samples.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mgl_qt_example_CPPFLAGS) $(CPPFLAGS) $(mgl_qt_example_CXXFLAGS) $(CXXFLAGS) -c -o mgl_qt_example-wnd_samples.obj `if test -f 'wnd_samples.cpp'; then $(CYGPATH_W) 'wnd_samples.cpp'; else $(CYGPATH_W) '$(srcdir)/wnd_samples.cpp'; fi`
-
-mgl_qt_example-mgl_qt.moc.o: $(top_builddir)/include/mgl/mgl_qt.moc.cpp
- at am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mgl_qt_example_CPPFLAGS) $(CPPFLAGS) $(mgl_qt_example_CXXFLAGS) $(CXXFLAGS) -MT mgl_qt_example-mgl_qt.moc.o -MD -MP -MF $(DEPDIR)/mgl_qt_example-mgl_qt.moc.Tpo -c -o mgl_qt_example-mgl_qt.moc.o `test -f '$(top_builddir)/include/mgl/mgl_qt.moc.cpp' || echo '$(srcdir)/'`$(top_builddir)/include/mgl/mgl_qt.moc.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/mgl_qt_example-mgl_qt.moc.Tpo $(DEPDIR)/mgl_qt_example-mgl_qt.moc.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(top_builddir)/include/mgl/mgl_qt.moc.cpp' object='mgl_qt_example-mgl_qt.moc.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mgl_qt_example_CPPFLAGS) $(CPPFLAGS) $(mgl_qt_example_CXXFLAGS) $(CXXFLAGS) -c -o mgl_qt_example-mgl_qt.moc.o `test -f '$(top_builddir)/include/mgl/mgl_qt.moc.cpp' || echo '$(srcdir)/'`$(top_builddir)/include/mgl/mgl_qt.moc.cpp
-
-mgl_qt_example-mgl_qt.moc.obj: $(top_builddir)/include/mgl/mgl_qt.moc.cpp
- at am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mgl_qt_example_CPPFLAGS) $(CPPFLAGS) $(mgl_qt_example_CXXFLAGS) $(CXXFLAGS) -MT mgl_qt_example-mgl_qt.moc.obj -MD -MP -MF $(DEPDIR)/mgl_qt_example-mgl_qt.moc.Tpo -c -o mgl_qt_example-mgl_qt.moc.obj `if test -f '$(top_builddir)/include/mgl/mgl_qt.moc.cpp'; then $(CYGPATH_W) '$(top_builddir)/include/mgl/mgl_qt.moc.cpp'; else $(CYGPATH_W) '$(srcdir)/$(top_builddir)/include/mgl/mgl_qt.moc.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/mgl_qt_example-mgl_qt.moc.Tpo $(DEPDIR)/mgl_qt_example-mgl_qt.moc.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(top_builddir)/include/mgl/mgl_qt.moc.cpp' object='mgl_qt_example-mgl_qt.moc.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mgl_qt_example_CPPFLAGS) $(CPPFLAGS) $(mgl_qt_example_CXXFLAGS) $(CXXFLAGS) -c -o mgl_qt_example-mgl_qt.moc.obj `if test -f '$(top_builddir)/include/mgl/mgl_qt.moc.cpp'; then $(CYGPATH_W) '$(top_builddir)/include/mgl/mgl_qt.moc.cpp'; else $(CYGPATH_W) '$(srcdir)/$(top_builddir)/include/mgl/mgl_qt.moc.cpp'; fi`
-
-mgl_qt_example-qt_example.o: qt_example.cpp
- at am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mgl_qt_example_CPPFLAGS) $(CPPFLAGS) $(mgl_qt_example_CXXFLAGS) $(CXXFLAGS) -MT mgl_qt_example-qt_example.o -MD -MP -MF $(DEPDIR)/mgl_qt_example-qt_example.Tpo -c -o mgl_qt_example-qt_example.o `test -f 'qt_example.cpp' || echo '$(srcdir)/'`qt_example.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/mgl_qt_example-qt_example.Tpo $(DEPDIR)/mgl_qt_example-qt_example.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='qt_example.cpp' object='mgl_qt_example-qt_example.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mgl_qt_example_CPPFLAGS) $(CPPFLAGS) $(mgl_qt_example_CXXFLAGS) $(CXXFLAGS) -c -o mgl_qt_example-qt_example.o `test -f 'qt_example.cpp' || echo '$(srcdir)/'`qt_example.cpp
-
-mgl_qt_example-qt_example.obj: qt_example.cpp
- at am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mgl_qt_example_CPPFLAGS) $(CPPFLAGS) $(mgl_qt_example_CXXFLAGS) $(CXXFLAGS) -MT mgl_qt_example-qt_example.obj -MD -MP -MF $(DEPDIR)/mgl_qt_example-qt_example.Tpo -c -o mgl_qt_example-qt_example.obj `if test -f 'qt_example.cpp'; then $(CYGPATH_W) 'qt_example.cpp'; else $(CYGPATH_W) '$(srcdir)/qt_example.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/mgl_qt_example-qt_example.Tpo $(DEPDIR)/mgl_qt_example-qt_example.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='qt_example.cpp' object='mgl_qt_example-qt_example.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mgl_qt_example_CPPFLAGS) $(CPPFLAGS) $(mgl_qt_example_CXXFLAGS) $(CXXFLAGS) -c -o mgl_qt_example-qt_example.obj `if test -f 'qt_example.cpp'; then $(CYGPATH_W) 'qt_example.cpp'; else $(CYGPATH_W) '$(srcdir)/qt_example.cpp'; fi`
-
-mgl_wx_example-wnd_samples.o: wnd_samples.cpp
- at am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_wx_example_CXXFLAGS) $(CXXFLAGS) -MT mgl_wx_example-wnd_samples.o -MD -MP -MF $(DEPDIR)/mgl_wx_example-wnd_samples.Tpo -c -o mgl_wx_example-wnd_samples.o `test -f 'wnd_samples.cpp' || echo '$(srcdir)/'`wnd_samples.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/mgl_wx_example-wnd_samples.Tpo $(DEPDIR)/mgl_wx_example-wnd_samples.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='wnd_samples.cpp' object='mgl_wx_example-wnd_samples.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_wx_example_CXXFLAGS) $(CXXFLAGS) -c -o mgl_wx_example-wnd_samples.o `test -f 'wnd_samples.cpp' || echo '$(srcdir)/'`wnd_samples.cpp
-
-mgl_wx_example-wnd_samples.obj: wnd_samples.cpp
- at am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_wx_example_CXXFLAGS) $(CXXFLAGS) -MT mgl_wx_example-wnd_samples.obj -MD -MP -MF $(DEPDIR)/mgl_wx_example-wnd_samples.Tpo -c -o mgl_wx_example-wnd_samples.obj `if test -f 'wnd_samples.cpp'; then $(CYGPATH_W) 'wnd_samples.cpp'; else $(CYGPATH_W) '$(srcdir)/wnd_samples.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/mgl_wx_example-wnd_samples.Tpo $(DEPDIR)/mgl_wx_example-wnd_samples.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='wnd_samples.cpp' object='mgl_wx_example-wnd_samples.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_wx_example_CXXFLAGS) $(CXXFLAGS) -c -o mgl_wx_example-wnd_samples.obj `if test -f 'wnd_samples.cpp'; then $(CYGPATH_W) 'wnd_samples.cpp'; else $(CYGPATH_W) '$(srcdir)/wnd_samples.cpp'; fi`
-
-mgl_wx_example-wx_example.o: wx_example.cpp
- at am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_wx_example_CXXFLAGS) $(CXXFLAGS) -MT mgl_wx_example-wx_example.o -MD -MP -MF $(DEPDIR)/mgl_wx_example-wx_example.Tpo -c -o mgl_wx_example-wx_example.o `test -f 'wx_example.cpp' || echo '$(srcdir)/'`wx_example.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/mgl_wx_example-wx_example.Tpo $(DEPDIR)/mgl_wx_example-wx_example.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='wx_example.cpp' object='mgl_wx_example-wx_example.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_wx_example_CXXFLAGS) $(CXXFLAGS) -c -o mgl_wx_example-wx_example.o `test -f 'wx_example.cpp' || echo '$(srcdir)/'`wx_example.cpp
-
-mgl_wx_example-wx_example.obj: wx_example.cpp
- at am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_wx_example_CXXFLAGS) $(CXXFLAGS) -MT mgl_wx_example-wx_example.obj -MD -MP -MF $(DEPDIR)/mgl_wx_example-wx_example.Tpo -c -o mgl_wx_example-wx_example.obj `if test -f 'wx_example.cpp'; then $(CYGPATH_W) 'wx_example.cpp'; else $(CYGPATH_W) '$(srcdir)/wx_example.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/mgl_wx_example-wx_example.Tpo $(DEPDIR)/mgl_wx_example-wx_example.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='wx_example.cpp' object='mgl_wx_example-wx_example.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_wx_example_CXXFLAGS) $(CXXFLAGS) -c -o mgl_wx_example-wx_example.obj `if test -f 'wx_example.cpp'; then $(CYGPATH_W) 'wx_example.cpp'; else $(CYGPATH_W) '$(srcdir)/wx_example.cpp'; fi`
-
-test-wnd_samples.o: wnd_samples.cpp
- at am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CXXFLAGS) $(CXXFLAGS) -MT test-wnd_samples.o -MD -MP -MF $(DEPDIR)/test-wnd_samples.Tpo -c -o test-wnd_samples.o `test -f 'wnd_samples.cpp' || echo '$(srcdir)/'`wnd_samples.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/test-wnd_samples.Tpo $(DEPDIR)/test-wnd_samples.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='wnd_samples.cpp' object='test-wnd_samples.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CXXFLAGS) $(CXXFLAGS) -c -o test-wnd_samples.o `test -f 'wnd_samples.cpp' || echo '$(srcdir)/'`wnd_samples.cpp
-
-test-wnd_samples.obj: wnd_samples.cpp
- at am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CXXFLAGS) $(CXXFLAGS) -MT test-wnd_samples.obj -MD -MP -MF $(DEPDIR)/test-wnd_samples.Tpo -c -o test-wnd_samples.obj `if test -f 'wnd_samples.cpp'; then $(CYGPATH_W) 'wnd_samples.cpp'; else $(CYGPATH_W) '$(srcdir)/wnd_samples.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/test-wnd_samples.Tpo $(DEPDIR)/test-wnd_samples.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='wnd_samples.cpp' object='test-wnd_samples.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CXXFLAGS) $(CXXFLAGS) -c -o test-wnd_samples.obj `if test -f 'wnd_samples.cpp'; then $(CYGPATH_W) 'wnd_samples.cpp'; else $(CYGPATH_W) '$(srcdir)/wnd_samples.cpp'; fi`
-
-test-main.o: main.cpp
- at am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CXXFLAGS) $(CXXFLAGS) -MT test-main.o -MD -MP -MF $(DEPDIR)/test-main.Tpo -c -o test-main.o `test -f 'main.cpp' || echo '$(srcdir)/'`main.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/test-main.Tpo $(DEPDIR)/test-main.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='main.cpp' object='test-main.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CXXFLAGS) $(CXXFLAGS) -c -o test-main.o `test -f 'main.cpp' || echo '$(srcdir)/'`main.cpp
-
-test-main.obj: main.cpp
- at am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CXXFLAGS) $(CXXFLAGS) -MT test-main.obj -MD -MP -MF $(DEPDIR)/test-main.Tpo -c -o test-main.obj `if test -f 'main.cpp'; then $(CYGPATH_W) 'main.cpp'; else $(CYGPATH_W) '$(srcdir)/main.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/test-main.Tpo $(DEPDIR)/test-main.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='main.cpp' object='test-main.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CXXFLAGS) $(CXXFLAGS) -c -o test-main.obj `if test -f 'main.cpp'; then $(CYGPATH_W) 'main.cpp'; else $(CYGPATH_W) '$(srcdir)/main.cpp'; fi`
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	set x; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-	$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
-check: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) check-am
-all-am: Makefile $(PROGRAMS)
-installdirs:
-	for dir in "$(DESTDIR)$(bindir)"; do \
-	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-	done
-install: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-	-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-checkPROGRAMS clean-generic \
-	clean-libtool mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-binPROGRAMS
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS
-
-.MAKE: all check check-am install install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
-	clean-checkPROGRAMS clean-generic clean-libtool ctags \
-	distclean distclean-compile distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-binPROGRAMS \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-binPROGRAMS
-
-
- at USE_QT_TRUE@ # ------------- #
- at USE_QT_TRUE@ # DOCUMENTATION #
- at USE_QT_TRUE@ # ------------- #
-
-# --- #
-# MOC #
-# --- #
-
- at USE_QT_TRUE@.hh.moc.cpp:
- at USE_QT_TRUE@	$(MOC) $(QT_CPPFLAGS) $< -o $@
- at USE_QT_TRUE@.h.moc.cpp:
- at USE_QT_TRUE@	$(MOC) $(QT_CPPFLAGS) $< -o $@
-
- at USE_QT_TRUE@.hh.moc.cc:
- at USE_QT_TRUE@	$(MOC) $(QT_CPPFLAGS) $< -o $@
- at USE_QT_TRUE@.h.moc.cc:
- at USE_QT_TRUE@	$(MOC) $(QT_CPPFLAGS) $< -o $@
-
- at USE_QT_TRUE@.hh.moc.cxx:
- at USE_QT_TRUE@	$(MOC) $(QT_CPPFLAGS) $< -o $@
- at USE_QT_TRUE@.h.moc.cxx:
- at USE_QT_TRUE@	$(MOC) $(QT_CPPFLAGS) $< -o $@
-
- at USE_QT_TRUE@.hh.moc.C:
- at USE_QT_TRUE@	$(MOC) $(QT_CPPFLAGS) $< -o $@
- at USE_QT_TRUE@.h.moc.C:
- at USE_QT_TRUE@	$(MOC) $(QT_CPPFLAGS) $< -o $@
-
-# --- #
-# UIC #
-# --- #
-
- at USE_QT_TRUE@.ui.ui.hh:
- at USE_QT_TRUE@	$(UIC) $< -o $@
-
- at USE_QT_TRUE@.ui.ui.h:
- at USE_QT_TRUE@	$(UIC) $< -o $@
-
-# --- #
-# RCC #
-# --- #
-
- at USE_QT_TRUE@.qrc.qrc.cpp:
- at USE_QT_TRUE@	$(RCC) -name `echo "$<" | sed 's/\.qrc$$//'` $< -o $@
-
- at USE_QT_TRUE@.qrc.qrc.cc:
- at USE_QT_TRUE@	$(RCC) -name `echo "$<" | sed 's/\.qrc$$//'` $< -o $@
-
- at USE_QT_TRUE@.qrc.qrc.cxx:
- at USE_QT_TRUE@	$(RCC) -name `echo "$<" | sed 's/\.qrc$$//'` $< -o $@
-
- at USE_QT_TRUE@.qrc.qrc.C:
- at USE_QT_TRUE@	$(RCC) -name `echo "$<" | sed 's/\.qrc$$//'` $< -o $@
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/.pc/debian-changes-1.11-1/include/Makefile.in b/.pc/debian-changes-1.11-1/include/Makefile.in
deleted file mode 100644
index 8c7d802..0000000
--- a/.pc/debian-changes-1.11-1/include/Makefile.in
+++ /dev/null
@@ -1,528 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = include
-DIST_COMMON = $(am__nobase_include_HEADERS_DIST) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/include/mgl/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-SOURCES =
-DIST_SOURCES =
-am__nobase_include_HEADERS_DIST = mgl/mgl_fltk.h mgl/mgl_glut.h \
-	mgl/mgl_wx.h mgl/mgl_qt.h mgl/mgl_ab.h mgl/mgl_data.h \
-	mgl/mgl_eval.h mgl/mgl_gl.h mgl/mgl.h mgl/mgl_parse.h \
-	mgl/mgl_c.h mgl/mgl_eps.h mgl/mgl_f.h mgl/mgl_font.h \
-	mgl/mgl_idtf.h mgl/mgl_zb.h mgl/mgl_addon.h mgl/mgl_evalc.h \
-	mgl/mgl_define.h mgl/config.h mgl/mgl_pas.pas mgl/mgl_w.h \
-	mgl/gsl.fs mgl/mathgl.fs mgl/mglplot.fs mgl/vectors.fs
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__installdirs = "$(DESTDIR)$(includedir)"
-HEADERS = $(nobase_include_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_CXXFLAGS = @AM_CXXFLAGS@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-FLTK_FLAGS = @FLTK_FLAGS@
-FLTK_LIBS = @FLTK_LIBS@
-GIF_FLAGS = @GIF_FLAGS@
-GIF_LIBS = @GIF_LIBS@
-GLUT_FLAGS = @GLUT_FLAGS@
-GLUT_LIBS = @GLUT_LIBS@
-GL_LIBS = @GL_LIBS@
-GREP = @GREP@
-GSL_FLAGS = @GSL_FLAGS@
-GSL_LIBS = @GSL_LIBS@
-HAVE_SWIG = @HAVE_SWIG@
-HDF4_FLAGS = @HDF4_FLAGS@
-HDF4_LIBS = @HDF4_LIBS@
-HDF5_FLAGS = @HDF5_FLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-JPEG_FLAGS = @JPEG_FLAGS@
-JPEG_LIBS = @JPEG_LIBS@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MGL_AGE = @MGL_AGE@
-MGL_CURRENT = @MGL_CURRENT@
-MGL_RELEASE = @MGL_RELEASE@
-MGL_REVISION = @MGL_REVISION@
-MKDIR_P = @MKDIR_P@
-MOC = @MOC@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OCTAVE = @OCTAVE@
-OCTAVE_ARCH = @OCTAVE_ARCH@
-OCTAVE_INCFLAGS = @OCTAVE_INCFLAGS@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PNG_LIBS = @PNG_LIBS@
-PTHREAD_FLAGS = @PTHREAD_FLAGS@
-PTHREAD_LIBS = @PTHREAD_LIBS@
-PYTHON = @PYTHON@
-PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
-PYTHON_HEADERS = @PYTHON_HEADERS@
-PYTHON_PLATFORM = @PYTHON_PLATFORM@
-PYTHON_PREFIX = @PYTHON_PREFIX@
-PYTHON_VERSION = @PYTHON_VERSION@
-QMAKE = @QMAKE@
-QT_CFLAGS = @QT_CFLAGS@
-QT_CPPFLAGS = @QT_CPPFLAGS@
-QT_CXXFLAGS = @QT_CXXFLAGS@
-QT_DEFINES = @QT_DEFINES@
-QT_INCPATH = @QT_INCPATH@
-QT_LDFLAGS = @QT_LDFLAGS@
-QT_LFLAGS = @QT_LFLAGS@
-QT_LIBS = @QT_LIBS@
-QT_PATH = @QT_PATH@
-QT_VERSION = @QT_VERSION@
-QT_VERSION_MAJOR = @QT_VERSION_MAJOR@
-RANLIB = @RANLIB@
-RCC = @RCC@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TMPDIR = @TMPDIR@
-UIC = @UIC@
-VERSION = @VERSION@
-WX_FLAGS = @WX_FLAGS@
-WX_LIBS = @WX_LIBS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-pkgpyexecdir = @pkgpyexecdir@
-pkgpythondir = @pkgpythondir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-pyexecdir = @pyexecdir@
-pythondir = @pythondir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
- at USE_FLTK_TRUE@FLTK_INC = mgl/mgl_fltk.h
- at USE_GLUT_TRUE@GLUT_INC = mgl/mgl_glut.h
- at USE_WX_TRUE@WX_INC = mgl/mgl_wx.h
- at USE_QT_TRUE@QT_INC = mgl/mgl_qt.h
-nobase_include_HEADERS = $(FLTK_INC) $(GLUT_INC) $(WX_INC) $(QT_INC) \
-mgl/mgl_ab.h  mgl/mgl_data.h  mgl/mgl_eval.h  mgl/mgl_gl.h    mgl/mgl.h       mgl/mgl_parse.h \
-mgl/mgl_c.h   mgl/mgl_eps.h   mgl/mgl_f.h     mgl/mgl_font.h  mgl/mgl_idtf.h  mgl/mgl_zb.h \
-mgl/mgl_addon.h mgl/mgl_evalc.h mgl/mgl_define.h mgl/config.h mgl/mgl_pas.pas \
-mgl/mgl_w.h   mgl/gsl.fs  mgl/mathgl.fs  mgl/mglplot.fs  mgl/vectors.fs
-
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu include/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-install-nobase_includeHEADERS: $(nobase_include_HEADERS)
-	@$(NORMAL_INSTALL)
-	test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
-	@list='$(nobase_include_HEADERS)'; test -n "$(includedir)" || list=; \
-	$(am__nobase_list) | while read dir files; do \
-	  xfiles=; for file in $$files; do \
-	    if test -f "$$file"; then xfiles="$$xfiles $$file"; \
-	    else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \
-	  test -z "$$xfiles" || { \
-	    test "x$$dir" = x. || { \
-	      echo "$(MKDIR_P) '$(DESTDIR)$(includedir)/$$dir'"; \
-	      $(MKDIR_P) "$(DESTDIR)$(includedir)/$$dir"; }; \
-	    echo " $(INSTALL_HEADER) $$xfiles '$(DESTDIR)$(includedir)/$$dir'"; \
-	    $(INSTALL_HEADER) $$xfiles "$(DESTDIR)$(includedir)/$$dir" || exit $$?; }; \
-	done
-
-uninstall-nobase_includeHEADERS:
-	@$(NORMAL_UNINSTALL)
-	@list='$(nobase_include_HEADERS)'; test -n "$(includedir)" || list=; \
-	$(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(includedir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(includedir)" && rm -f $$files
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	set x; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-am
-all-am: Makefile $(HEADERS)
-installdirs:
-	for dir in "$(DESTDIR)$(includedir)"; do \
-	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-	done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-nobase_includeHEADERS
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-nobase_includeHEADERS
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool ctags distclean distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-nobase_includeHEADERS \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-nobase_includeHEADERS
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/.pc/debian-changes-1.11-1/lang/Makefile.in b/.pc/debian-changes-1.11-1/lang/Makefile.in
deleted file mode 100644
index af61832..0000000
--- a/.pc/debian-changes-1.11-1/lang/Makefile.in
+++ /dev/null
@@ -1,695 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
- at USE_PYTHON_TRUE@am__append_1 = mgl_python.cpp mathgl.py
- at USE_PYTHON_TRUE@am__append_2 = mathgl.py mgl_python.cpp
-#mathgl.py: $(top_srcdir)/lang/mgl.i $(top_srcdir)/include/mgl/mgl_c.h $(top_srcdir)/include/mgl/mgl_w.h
-#	swig -python -c++ -I$(top_srcdir)/include -o mgl_python.cpp $(top_srcdir)/lang/mgl.i
- at USE_OCTAVE_TRUE@am__append_3 = mgl_octave.cpp mathgl.oct mathgl.tar.gz
-subdir = lang
-DIST_COMMON = $(am__dist_octave_DATA_DIST) $(am__python_PYTHON_DIST) \
-	$(srcdir)/Makefile.am $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/include/mgl/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__installdirs = "$(DESTDIR)$(pyexecdir)" "$(DESTDIR)$(pythondir)" \
-	"$(DESTDIR)$(octavedir)"
-LTLIBRARIES = $(pyexec_LTLIBRARIES)
- at USE_PYTHON_TRUE@_mathgl_la_DEPENDENCIES =  \
- at USE_PYTHON_TRUE@	$(top_builddir)/mgl/libmgl.la
-am___mathgl_la_SOURCES_DIST = mgl_python.cpp
- at USE_PYTHON_TRUE@am__mathgl_la_OBJECTS = _mathgl_la-mgl_python.lo
-_mathgl_la_OBJECTS = $(am__mathgl_la_OBJECTS)
-_mathgl_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(_mathgl_la_CXXFLAGS) \
-	$(CXXFLAGS) $(_mathgl_la_LDFLAGS) $(LDFLAGS) -o $@
- at USE_PYTHON_TRUE@am__mathgl_la_rpath = -rpath $(pyexecdir)
-DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)/include/mgl
-depcomp = $(SHELL) $(top_srcdir)/config/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-CXXLD = $(CXX)
-CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
-SOURCES = $(_mathgl_la_SOURCES)
-DIST_SOURCES = $(am___mathgl_la_SOURCES_DIST)
-am__python_PYTHON_DIST = mathgl.py
-py_compile = $(top_srcdir)/config/py-compile
-am__dist_octave_DATA_DIST = mathgl.tar.gz
-DATA = $(dist_octave_DATA)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_CXXFLAGS = @AM_CXXFLAGS@ -I$(top_srcdir)/include \
-	-I$(top_builddir)/include
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-FLTK_FLAGS = @FLTK_FLAGS@
-FLTK_LIBS = @FLTK_LIBS@
-GIF_FLAGS = @GIF_FLAGS@
-GIF_LIBS = @GIF_LIBS@
-GLUT_FLAGS = @GLUT_FLAGS@
-GLUT_LIBS = @GLUT_LIBS@
-GL_LIBS = @GL_LIBS@
-GREP = @GREP@
-GSL_FLAGS = @GSL_FLAGS@
-GSL_LIBS = @GSL_LIBS@
-HAVE_SWIG = @HAVE_SWIG@
-HDF4_FLAGS = @HDF4_FLAGS@
-HDF4_LIBS = @HDF4_LIBS@
-HDF5_FLAGS = @HDF5_FLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-JPEG_FLAGS = @JPEG_FLAGS@
-JPEG_LIBS = @JPEG_LIBS@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MGL_AGE = @MGL_AGE@
-MGL_CURRENT = @MGL_CURRENT@
-MGL_RELEASE = @MGL_RELEASE@
-MGL_REVISION = @MGL_REVISION@
-MKDIR_P = @MKDIR_P@
-MOC = @MOC@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OCTAVE = @OCTAVE@
-OCTAVE_ARCH = @OCTAVE_ARCH@
-OCTAVE_INCFLAGS = @OCTAVE_INCFLAGS@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PNG_LIBS = @PNG_LIBS@
-PTHREAD_FLAGS = @PTHREAD_FLAGS@
-PTHREAD_LIBS = @PTHREAD_LIBS@
-PYTHON = @PYTHON@
-PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
-PYTHON_HEADERS = @PYTHON_HEADERS@
-PYTHON_PLATFORM = @PYTHON_PLATFORM@
-PYTHON_PREFIX = @PYTHON_PREFIX@
-PYTHON_VERSION = @PYTHON_VERSION@
-QMAKE = @QMAKE@
-QT_CFLAGS = @QT_CFLAGS@
-QT_CPPFLAGS = @QT_CPPFLAGS@
-QT_CXXFLAGS = @QT_CXXFLAGS@
-QT_DEFINES = @QT_DEFINES@
-QT_INCPATH = @QT_INCPATH@
-QT_LDFLAGS = @QT_LDFLAGS@
-QT_LFLAGS = @QT_LFLAGS@
-QT_LIBS = @QT_LIBS@
-QT_PATH = @QT_PATH@
-QT_VERSION = @QT_VERSION@
-QT_VERSION_MAJOR = @QT_VERSION_MAJOR@
-RANLIB = @RANLIB@
-RCC = @RCC@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TMPDIR = @TMPDIR@
-UIC = @UIC@
-VERSION = @VERSION@
-WX_FLAGS = @WX_FLAGS@
-WX_LIBS = @WX_LIBS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-pkgpyexecdir = @pkgpyexecdir@
-pkgpythondir = @pkgpythondir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-pyexecdir = @pyexecdir@
-pythondir = @pythondir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-CLEANFILES = $(am__append_1) $(am__append_3)
-BUILT_SOURCES = $(am__append_2)
- at USE_PYTHON_TRUE@python_PYTHON = mathgl.py
- at USE_PYTHON_TRUE@pyexec_LTLIBRARIES = _mathgl.la
- at USE_PYTHON_TRUE@_mathgl_la_SOURCES = mgl_python.cpp
- at USE_PYTHON_TRUE@_mathgl_la_CXXFLAGS = $(PYTHON_HEADERS) $(AM_CXXFLAGS)
- at USE_PYTHON_TRUE@_mathgl_la_LIBADD = $(top_builddir)/mgl/libmgl.la
-#_mathgl_la_LIBADD = $(top_builddir)/widgets/libmgl-qt.la
- at USE_PYTHON_TRUE@_mathgl_la_LDFLAGS = -avoid-version -module
- at USE_OCTAVE_TRUE@PKG_NAME = mathgl
- at USE_OCTAVE_TRUE@PKG_OCT_FILES = mathgl.oct
- at USE_OCTAVE_TRUE@PKG_OTHER_FILES = $(top_srcdir)/COPYING $(srcdir)/DESCRIPTION $(srcdir)/INDEX $(srcdir)/PKG_ADD_template
- at USE_OCTAVE_TRUE@octavedir = $(pkgdatadir)/octave
- at USE_OCTAVE_TRUE@dist_octave_DATA = mathgl.tar.gz
- at USE_OCTAVE_TRUE@MY_MKOCTFILE = $(CXX) -O0 -g -shared $(OCTAVE_INCFLAGS)
-all: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) all-am
-
-.SUFFIXES:
-.SUFFIXES: .cpp .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lang/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu lang/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-pyexecLTLIBRARIES: $(pyexec_LTLIBRARIES)
-	@$(NORMAL_INSTALL)
-	test -z "$(pyexecdir)" || $(MKDIR_P) "$(DESTDIR)$(pyexecdir)"
-	@list='$(pyexec_LTLIBRARIES)'; test -n "$(pyexecdir)" || list=; \
-	list2=; for p in $$list; do \
-	  if test -f $$p; then \
-	    list2="$$list2 $$p"; \
-	  else :; fi; \
-	done; \
-	test -z "$$list2" || { \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pyexecdir)'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pyexecdir)"; \
-	}
-
-uninstall-pyexecLTLIBRARIES:
-	@$(NORMAL_UNINSTALL)
-	@list='$(pyexec_LTLIBRARIES)'; test -n "$(pyexecdir)" || list=; \
-	for p in $$list; do \
-	  $(am__strip_dir) \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pyexecdir)/$$f'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pyexecdir)/$$f"; \
-	done
-
-clean-pyexecLTLIBRARIES:
-	-test -z "$(pyexec_LTLIBRARIES)" || rm -f $(pyexec_LTLIBRARIES)
-	@list='$(pyexec_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
-_mathgl.la: $(_mathgl_la_OBJECTS) $(_mathgl_la_DEPENDENCIES) 
-	$(_mathgl_la_LINK) $(am__mathgl_la_rpath) $(_mathgl_la_OBJECTS) $(_mathgl_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/_mathgl_la-mgl_python.Plo at am__quote@
-
-.cpp.o:
- at am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
- at am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cpp.lo:
- at am__fastdepCXX_TRUE@	$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LTCXXCOMPILE) -c -o $@ $<
-
-_mathgl_la-mgl_python.lo: mgl_python.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(_mathgl_la_CXXFLAGS) $(CXXFLAGS) -MT _mathgl_la-mgl_python.lo -MD -MP -MF $(DEPDIR)/_mathgl_la-mgl_python.Tpo -c -o _mathgl_la-mgl_python.lo `test -f 'mgl_python.cpp' || echo '$(srcdir)/'`mgl_python.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/_mathgl_la-mgl_python.Tpo $(DEPDIR)/_mathgl_la-mgl_python.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_python.cpp' object='_mathgl_la-mgl_python.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(_mathgl_la_CXXFLAGS) $(CXXFLAGS) -c -o _mathgl_la-mgl_python.lo `test -f 'mgl_python.cpp' || echo '$(srcdir)/'`mgl_python.cpp
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-install-pythonPYTHON: $(python_PYTHON)
-	@$(NORMAL_INSTALL)
-	test -z "$(pythondir)" || $(MKDIR_P) "$(DESTDIR)$(pythondir)"
-	@list='$(python_PYTHON)'; dlist=; list2=; test -n "$(pythondir)" || list=; \
-	for p in $$list; do \
-	  if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \
-	  if test -f $$b$$p; then \
-	    $(am__strip_dir) \
-	    dlist="$$dlist $$f"; \
-	    list2="$$list2 $$b$$p"; \
-	  else :; fi; \
-	done; \
-	for file in $$list2; do echo $$file; done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pythondir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(pythondir)" || exit $$?; \
-	done || exit $$?; \
-	if test -n "$$dlist"; then \
-	  if test -z "$(DESTDIR)"; then \
-	    PYTHON=$(PYTHON) $(py_compile) --basedir "$(pythondir)" $$dlist; \
-	  else \
-	    PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(pythondir)" $$dlist; \
-	  fi; \
-	else :; fi
-
-uninstall-pythonPYTHON:
-	@$(NORMAL_UNINSTALL)
-	@list='$(python_PYTHON)'; test -n "$(pythondir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	filesc=`echo "$$files" | sed 's|$$|c|'`; \
-	fileso=`echo "$$files" | sed 's|$$|o|'`; \
-	echo " ( cd '$(DESTDIR)$(pythondir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(pythondir)" && rm -f $$files || exit $$?; \
-	echo " ( cd '$(DESTDIR)$(pythondir)' && rm -f" $$filesc ")"; \
-	cd "$(DESTDIR)$(pythondir)" && rm -f $$filesc || exit $$?; \
-	echo " ( cd '$(DESTDIR)$(pythondir)' && rm -f" $$fileso ")"; \
-	cd "$(DESTDIR)$(pythondir)" && rm -f $$fileso
-install-dist_octaveDATA: $(dist_octave_DATA)
-	@$(NORMAL_INSTALL)
-	test -z "$(octavedir)" || $(MKDIR_P) "$(DESTDIR)$(octavedir)"
-	@list='$(dist_octave_DATA)'; test -n "$(octavedir)" || list=; \
-	for p in $$list; do \
-	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(octavedir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(octavedir)" || exit $$?; \
-	done
-
-uninstall-dist_octaveDATA:
-	@$(NORMAL_UNINSTALL)
-	@list='$(dist_octave_DATA)'; test -n "$(octavedir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(octavedir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(octavedir)" && rm -f $$files
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	set x; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) check-am
-all-am: Makefile $(LTLIBRARIES) $(DATA)
-installdirs:
-	for dir in "$(DESTDIR)$(pyexecdir)" "$(DESTDIR)$(pythondir)" "$(DESTDIR)$(octavedir)"; do \
-	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-	done
-install: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-clean: clean-am
-
-clean-am: clean-generic clean-libtool clean-pyexecLTLIBRARIES \
-	mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-dist_octaveDATA install-pythonPYTHON
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-pyexecLTLIBRARIES
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-dist_octaveDATA uninstall-pyexecLTLIBRARIES \
-	uninstall-pythonPYTHON
-
-.MAKE: all check install install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pyexecLTLIBRARIES ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am \
-	install-dist_octaveDATA install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am \
-	install-pyexecLTLIBRARIES install-pythonPYTHON install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-dist_octaveDATA \
-	uninstall-pyexecLTLIBRARIES uninstall-pythonPYTHON
-
-
- at USE_PYTHON_TRUE@mgl_python.cpp mathgl.py: $(srcdir)/mgl.i $(top_srcdir)/include/mgl/mgl_c.h $(top_srcdir)/include/mgl/mgl_w.h
- at USE_PYTHON_TRUE@	swig -python -c++ -I$(top_srcdir)/include -I$(top_builddir)/include -o mgl_python.cpp $(srcdir)/mgl.i
- at USE_OCTAVE_TRUE@mathgl.tar.gz: $(PKG_OCT_FILES) $(PKG_OTHER_FILES)
- at USE_OCTAVE_TRUE@	mkdir -p $(PKG_NAME)
- at USE_OCTAVE_TRUE@	mkdir -p $(PKG_NAME)/inst/$(OCTAVE_ARCH)
- at USE_OCTAVE_TRUE@	cp -rf $(PKG_OTHER_FILES) $(PKG_NAME)
- at USE_OCTAVE_TRUE@	mv $(PKG_NAME)/PKG_ADD_template $(PKG_NAME)/PKG_ADD
- at USE_OCTAVE_TRUE@	cp -rf $(PKG_OCT_FILES) $(PKG_NAME)/inst/$(OCTAVE_ARCH)
- at USE_OCTAVE_TRUE@	tar cpzvf $@ $(PKG_NAME)
- at USE_OCTAVE_TRUE@	rm -rf $(PKG_NAME)
-
- at USE_OCTAVE_TRUE@mgl_octave.cpp: $(srcdir)/mgl.i $(top_srcdir)/include/mgl/mgl_c.h $(top_srcdir)/include/mgl/mgl_w.h
- at USE_OCTAVE_TRUE@	swig -octave -c++ -I$(top_srcdir)/include -I$(top_builddir)/include -o mgl_octave.cpp $(srcdir)/mgl.i
- at USE_OCTAVE_TRUE@mathgl.oct: mgl_octave.cpp
- at USE_OCTAVE_TRUE@	$(MY_MKOCTFILE) -o $@ $^ -fPIC -I$(top_srcdir)/include -I$(top_builddir)/include -L$(top_builddir)/mgl/.libs/ -lmgl
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/.pc/debian-changes-1.11-1/mgl/Makefile.in b/.pc/debian-changes-1.11-1/mgl/Makefile.in
deleted file mode 100644
index 899e46b..0000000
--- a/.pc/debian-changes-1.11-1/mgl/Makefile.in
+++ /dev/null
@@ -1,905 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
- at USE_QT_TRUE@am__append_1 = -DWITH_QT
- at USE_WX_TRUE@am__append_2 = -DWITH_WX
- at USE_FLTK_TRUE@am__append_3 = -DWITH_FLTK
- at USE_GLUT_TRUE@am__append_4 = -DWITH_GLUT
- at USE_PTHREAD_TRUE@am__append_5 = $(PTHREAD_LIBS)
- at USE_GSL_TRUE@am__append_6 = $(GSL_LIBS)
- at USE_HDF4_TRUE@am__append_7 = $(HDF4_LIBS)
- at USE_HDF5_TRUE@am__append_8 = $(HDF5_LIBS)
- at USE_GIF_TRUE@am__append_9 = $(GIF_LIBS)
- at USE_JPEG_TRUE@am__append_10 = $(JPEG_LIBS)
-subdir = mgl
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/include/mgl/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__installdirs = "$(DESTDIR)$(libdir)"
-LTLIBRARIES = $(lib_LTLIBRARIES)
-am__DEPENDENCIES_1 =
- at USE_PTHREAD_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
- at USE_GSL_TRUE@am__DEPENDENCIES_3 = $(am__DEPENDENCIES_1)
- at USE_HDF4_TRUE@am__DEPENDENCIES_4 = $(am__DEPENDENCIES_1)
- at USE_HDF5_TRUE@am__DEPENDENCIES_5 = $(am__DEPENDENCIES_1)
- at USE_GIF_TRUE@am__DEPENDENCIES_6 = $(am__DEPENDENCIES_1)
- at USE_JPEG_TRUE@am__DEPENDENCIES_7 = $(am__DEPENDENCIES_1)
-libmgl_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3) \
-	$(am__DEPENDENCIES_4) $(am__DEPENDENCIES_5) \
-	$(am__DEPENDENCIES_6) $(am__DEPENDENCIES_7)
-am_libmgl_la_OBJECTS = libmgl_la-mgl_data_cf.lo libmgl_la-mgl_axis.lo \
-	libmgl_la-mgl_data_png.lo libmgl_la-mgl_zb2.lo \
-	libmgl_la-mgl_c.lo libmgl_la-mgl_eps.lo libmgl_la-mgl_font.lo \
-	libmgl_la-mgl_zb.lo libmgl_la-mgl_combi.lo \
-	libmgl_la-mgl_eval.lo libmgl_la-mgl_gl.lo \
-	libmgl_la-mgl_def_font.lo libmgl_la-mgl_1d.lo \
-	libmgl_la-mgl_cont.lo libmgl_la-mgl_exec.lo \
-	libmgl_la-mgl_tex_table.lo libmgl_la-mgl_2d.lo \
-	libmgl_la-mgl_crust.lo libmgl_la-mgl_export.lo \
-	libmgl_la-mgl_main.lo libmgl_la-mgl_3d.lo \
-	libmgl_la-mgl_data.lo libmgl_la-mgl_f.lo libmgl_la-mgl_idtf.lo \
-	libmgl_la-mgl_ab.lo libmgl_la-mgl_data_io.lo \
-	libmgl_la-mgl_flow.lo libmgl_la-mgl_vect.lo \
-	libmgl_la-mgl_parse.lo libmgl_la-mgl_fit.lo \
-	libmgl_la-mgl_pde.lo libmgl_la-mgl_evalc.lo \
-	libmgl_la-mgl_addon.lo libmgl_la-mgl_evalp.lo
-libmgl_la_OBJECTS = $(am_libmgl_la_OBJECTS)
-libmgl_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(libmgl_la_CXXFLAGS) \
-	$(CXXFLAGS) $(libmgl_la_LDFLAGS) $(LDFLAGS) -o $@
-DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)/include/mgl
-depcomp = $(SHELL) $(top_srcdir)/config/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-CXXLD = $(CXX)
-CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
-SOURCES = $(libmgl_la_SOURCES)
-DIST_SOURCES = $(libmgl_la_SOURCES)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_CXXFLAGS = @AM_CXXFLAGS@ -I$(top_srcdir)/include \
-	-I$(top_builddir)/include
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-FLTK_FLAGS = @FLTK_FLAGS@
-FLTK_LIBS = @FLTK_LIBS@
-GIF_FLAGS = @GIF_FLAGS@
-GIF_LIBS = @GIF_LIBS@
-GLUT_FLAGS = @GLUT_FLAGS@
-GLUT_LIBS = @GLUT_LIBS@
-GL_LIBS = @GL_LIBS@
-GREP = @GREP@
-GSL_FLAGS = @GSL_FLAGS@
-GSL_LIBS = @GSL_LIBS@
-HAVE_SWIG = @HAVE_SWIG@
-HDF4_FLAGS = @HDF4_FLAGS@
-HDF4_LIBS = @HDF4_LIBS@
-HDF5_FLAGS = @HDF5_FLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-JPEG_FLAGS = @JPEG_FLAGS@
-JPEG_LIBS = @JPEG_LIBS@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MGL_AGE = @MGL_AGE@
-MGL_CURRENT = @MGL_CURRENT@
-MGL_RELEASE = @MGL_RELEASE@
-MGL_REVISION = @MGL_REVISION@
-MKDIR_P = @MKDIR_P@
-MOC = @MOC@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OCTAVE = @OCTAVE@
-OCTAVE_ARCH = @OCTAVE_ARCH@
-OCTAVE_INCFLAGS = @OCTAVE_INCFLAGS@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PNG_LIBS = @PNG_LIBS@
-PTHREAD_FLAGS = @PTHREAD_FLAGS@
-PTHREAD_LIBS = @PTHREAD_LIBS@
-PYTHON = @PYTHON@
-PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
-PYTHON_HEADERS = @PYTHON_HEADERS@
-PYTHON_PLATFORM = @PYTHON_PLATFORM@
-PYTHON_PREFIX = @PYTHON_PREFIX@
-PYTHON_VERSION = @PYTHON_VERSION@
-QMAKE = @QMAKE@
-QT_CFLAGS = @QT_CFLAGS@
-QT_CPPFLAGS = @QT_CPPFLAGS@
-QT_CXXFLAGS = @QT_CXXFLAGS@
-QT_DEFINES = @QT_DEFINES@
-QT_INCPATH = @QT_INCPATH@
-QT_LDFLAGS = @QT_LDFLAGS@
-QT_LFLAGS = @QT_LFLAGS@
-QT_LIBS = @QT_LIBS@
-QT_PATH = @QT_PATH@
-QT_VERSION = @QT_VERSION@
-QT_VERSION_MAJOR = @QT_VERSION_MAJOR@
-RANLIB = @RANLIB@
-RCC = @RCC@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TMPDIR = @TMPDIR@
-UIC = @UIC@
-VERSION = @VERSION@
-WX_FLAGS = @WX_FLAGS@
-WX_LIBS = @WX_LIBS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-pkgpyexecdir = @pkgpyexecdir@
-pkgpythondir = @pkgpythondir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-pyexecdir = @pyexecdir@
-pythondir = @pythondir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-lib_LTLIBRARIES = libmgl.la
-WIDGETS = $(am__append_1) $(am__append_2) $(am__append_3) \
-	$(am__append_4)
-libmgl_la_LIBADD = $(PNG_LIBS) $(GL_LIBS) $(LOPENMP) $(am__append_5) \
-	$(am__append_6) $(am__append_7) $(am__append_8) \
-	$(am__append_9) $(am__append_10)
-libmgl_la_LDFLAGS = -no-undefined -version-info $(MGL_CURRENT):$(MGL_REVISION):$(MGL_AGE)
-libmgl_la_CXXFLAGS = $(WIDGETS) -DMGL_FONT_PATH=\"$(datadir)/$(PACKAGE)/fonts/\" \
-    -DMOD_LIB_DIR=\"$(libdir)/mgl/\" $(HDF5_FLAGS) $(HDF4_FLAGS) $(GIF_FLAGS) $(JPEG_FLAGS) \
-    $(TIFF_FLAGS) $(PNG_FLAGS) $(FLTK_FLAGS) $(ADDON_FLAGS) $(AM_CXXFLAGS) \
-    $(PTHREAD_FLAGS)
-
-libmgl_la_SOURCES = \
-mgl_data_cf.cpp	   mgl_axis.cpp     mgl_data_png.cpp  mgl_zb2.cpp \
-mgl_c.cpp          mgl_eps.cpp      mgl_font.cpp      mgl_zb.cpp \
-mgl_combi.cpp      mgl_eval.cpp     mgl_gl.cpp        mgl_def_font.cpp\
-mgl_1d.cpp         mgl_cont.cpp     mgl_exec.cpp      mgl_tex_table.cpp\
-mgl_2d.cpp         mgl_crust.cpp    mgl_export.cpp    mgl_main.cpp  \
-mgl_3d.cpp         mgl_data.cpp     mgl_f.cpp         mgl_idtf.cpp \
-mgl_ab.cpp         mgl_data_io.cpp  mgl_flow.cpp      mgl_vect.cpp \
-mgl_parse.cpp      mgl_fit.cpp      mgl_pde.cpp       mgl_evalc.cpp \
-mgl_addon.cpp      mgl_evalp.cpp
-
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .cpp .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mgl/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu mgl/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-libLTLIBRARIES: $(lib_LTLIBRARIES)
-	@$(NORMAL_INSTALL)
-	test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
-	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
-	list2=; for p in $$list; do \
-	  if test -f $$p; then \
-	    list2="$$list2 $$p"; \
-	  else :; fi; \
-	done; \
-	test -z "$$list2" || { \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
-	}
-
-uninstall-libLTLIBRARIES:
-	@$(NORMAL_UNINSTALL)
-	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
-	for p in $$list; do \
-	  $(am__strip_dir) \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
-	done
-
-clean-libLTLIBRARIES:
-	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
-libmgl.la: $(libmgl_la_OBJECTS) $(libmgl_la_DEPENDENCIES) 
-	$(libmgl_la_LINK) -rpath $(libdir) $(libmgl_la_OBJECTS) $(libmgl_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_1d.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_2d.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_3d.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_ab.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_addon.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_axis.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_c.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_combi.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_cont.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_crust.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_data.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_data_cf.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_data_io.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_data_png.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_def_font.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_eps.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_eval.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_evalc.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_evalp.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_exec.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_export.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_f.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_fit.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_flow.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_font.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_gl.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_idtf.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_main.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_parse.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_pde.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_tex_table.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_vect.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_zb.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_la-mgl_zb2.Plo at am__quote@
-
-.cpp.o:
- at am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
- at am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cpp.lo:
- at am__fastdepCXX_TRUE@	$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LTCXXCOMPILE) -c -o $@ $<
-
-libmgl_la-mgl_data_cf.lo: mgl_data_cf.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_data_cf.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_data_cf.Tpo -c -o libmgl_la-mgl_data_cf.lo `test -f 'mgl_data_cf.cpp' || echo '$(srcdir)/'`mgl_data_cf.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_data_cf.Tpo $(DEPDIR)/libmgl_la-mgl_data_cf.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_data_cf.cpp' object='libmgl_la-mgl_data_cf.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_data_cf.lo `test -f 'mgl_data_cf.cpp' || echo '$(srcdir)/'`mgl_data_cf.cpp
-
-libmgl_la-mgl_axis.lo: mgl_axis.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_axis.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_axis.Tpo -c -o libmgl_la-mgl_axis.lo `test -f 'mgl_axis.cpp' || echo '$(srcdir)/'`mgl_axis.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_axis.Tpo $(DEPDIR)/libmgl_la-mgl_axis.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_axis.cpp' object='libmgl_la-mgl_axis.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_axis.lo `test -f 'mgl_axis.cpp' || echo '$(srcdir)/'`mgl_axis.cpp
-
-libmgl_la-mgl_data_png.lo: mgl_data_png.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_data_png.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_data_png.Tpo -c -o libmgl_la-mgl_data_png.lo `test -f 'mgl_data_png.cpp' || echo '$(srcdir)/'`mgl_data_png.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_data_png.Tpo $(DEPDIR)/libmgl_la-mgl_data_png.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_data_png.cpp' object='libmgl_la-mgl_data_png.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_data_png.lo `test -f 'mgl_data_png.cpp' || echo '$(srcdir)/'`mgl_data_png.cpp
-
-libmgl_la-mgl_zb2.lo: mgl_zb2.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_zb2.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_zb2.Tpo -c -o libmgl_la-mgl_zb2.lo `test -f 'mgl_zb2.cpp' || echo '$(srcdir)/'`mgl_zb2.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_zb2.Tpo $(DEPDIR)/libmgl_la-mgl_zb2.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_zb2.cpp' object='libmgl_la-mgl_zb2.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_zb2.lo `test -f 'mgl_zb2.cpp' || echo '$(srcdir)/'`mgl_zb2.cpp
-
-libmgl_la-mgl_c.lo: mgl_c.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_c.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_c.Tpo -c -o libmgl_la-mgl_c.lo `test -f 'mgl_c.cpp' || echo '$(srcdir)/'`mgl_c.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_c.Tpo $(DEPDIR)/libmgl_la-mgl_c.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_c.cpp' object='libmgl_la-mgl_c.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_c.lo `test -f 'mgl_c.cpp' || echo '$(srcdir)/'`mgl_c.cpp
-
-libmgl_la-mgl_eps.lo: mgl_eps.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_eps.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_eps.Tpo -c -o libmgl_la-mgl_eps.lo `test -f 'mgl_eps.cpp' || echo '$(srcdir)/'`mgl_eps.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_eps.Tpo $(DEPDIR)/libmgl_la-mgl_eps.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_eps.cpp' object='libmgl_la-mgl_eps.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_eps.lo `test -f 'mgl_eps.cpp' || echo '$(srcdir)/'`mgl_eps.cpp
-
-libmgl_la-mgl_font.lo: mgl_font.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_font.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_font.Tpo -c -o libmgl_la-mgl_font.lo `test -f 'mgl_font.cpp' || echo '$(srcdir)/'`mgl_font.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_font.Tpo $(DEPDIR)/libmgl_la-mgl_font.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_font.cpp' object='libmgl_la-mgl_font.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_font.lo `test -f 'mgl_font.cpp' || echo '$(srcdir)/'`mgl_font.cpp
-
-libmgl_la-mgl_zb.lo: mgl_zb.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_zb.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_zb.Tpo -c -o libmgl_la-mgl_zb.lo `test -f 'mgl_zb.cpp' || echo '$(srcdir)/'`mgl_zb.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_zb.Tpo $(DEPDIR)/libmgl_la-mgl_zb.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_zb.cpp' object='libmgl_la-mgl_zb.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_zb.lo `test -f 'mgl_zb.cpp' || echo '$(srcdir)/'`mgl_zb.cpp
-
-libmgl_la-mgl_combi.lo: mgl_combi.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_combi.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_combi.Tpo -c -o libmgl_la-mgl_combi.lo `test -f 'mgl_combi.cpp' || echo '$(srcdir)/'`mgl_combi.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_combi.Tpo $(DEPDIR)/libmgl_la-mgl_combi.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_combi.cpp' object='libmgl_la-mgl_combi.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_combi.lo `test -f 'mgl_combi.cpp' || echo '$(srcdir)/'`mgl_combi.cpp
-
-libmgl_la-mgl_eval.lo: mgl_eval.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_eval.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_eval.Tpo -c -o libmgl_la-mgl_eval.lo `test -f 'mgl_eval.cpp' || echo '$(srcdir)/'`mgl_eval.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_eval.Tpo $(DEPDIR)/libmgl_la-mgl_eval.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_eval.cpp' object='libmgl_la-mgl_eval.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_eval.lo `test -f 'mgl_eval.cpp' || echo '$(srcdir)/'`mgl_eval.cpp
-
-libmgl_la-mgl_gl.lo: mgl_gl.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_gl.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_gl.Tpo -c -o libmgl_la-mgl_gl.lo `test -f 'mgl_gl.cpp' || echo '$(srcdir)/'`mgl_gl.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_gl.Tpo $(DEPDIR)/libmgl_la-mgl_gl.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_gl.cpp' object='libmgl_la-mgl_gl.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_gl.lo `test -f 'mgl_gl.cpp' || echo '$(srcdir)/'`mgl_gl.cpp
-
-libmgl_la-mgl_def_font.lo: mgl_def_font.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_def_font.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_def_font.Tpo -c -o libmgl_la-mgl_def_font.lo `test -f 'mgl_def_font.cpp' || echo '$(srcdir)/'`mgl_def_font.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_def_font.Tpo $(DEPDIR)/libmgl_la-mgl_def_font.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_def_font.cpp' object='libmgl_la-mgl_def_font.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_def_font.lo `test -f 'mgl_def_font.cpp' || echo '$(srcdir)/'`mgl_def_font.cpp
-
-libmgl_la-mgl_1d.lo: mgl_1d.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_1d.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_1d.Tpo -c -o libmgl_la-mgl_1d.lo `test -f 'mgl_1d.cpp' || echo '$(srcdir)/'`mgl_1d.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_1d.Tpo $(DEPDIR)/libmgl_la-mgl_1d.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_1d.cpp' object='libmgl_la-mgl_1d.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_1d.lo `test -f 'mgl_1d.cpp' || echo '$(srcdir)/'`mgl_1d.cpp
-
-libmgl_la-mgl_cont.lo: mgl_cont.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_cont.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_cont.Tpo -c -o libmgl_la-mgl_cont.lo `test -f 'mgl_cont.cpp' || echo '$(srcdir)/'`mgl_cont.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_cont.Tpo $(DEPDIR)/libmgl_la-mgl_cont.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_cont.cpp' object='libmgl_la-mgl_cont.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_cont.lo `test -f 'mgl_cont.cpp' || echo '$(srcdir)/'`mgl_cont.cpp
-
-libmgl_la-mgl_exec.lo: mgl_exec.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_exec.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_exec.Tpo -c -o libmgl_la-mgl_exec.lo `test -f 'mgl_exec.cpp' || echo '$(srcdir)/'`mgl_exec.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_exec.Tpo $(DEPDIR)/libmgl_la-mgl_exec.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_exec.cpp' object='libmgl_la-mgl_exec.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_exec.lo `test -f 'mgl_exec.cpp' || echo '$(srcdir)/'`mgl_exec.cpp
-
-libmgl_la-mgl_tex_table.lo: mgl_tex_table.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_tex_table.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_tex_table.Tpo -c -o libmgl_la-mgl_tex_table.lo `test -f 'mgl_tex_table.cpp' || echo '$(srcdir)/'`mgl_tex_table.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_tex_table.Tpo $(DEPDIR)/libmgl_la-mgl_tex_table.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_tex_table.cpp' object='libmgl_la-mgl_tex_table.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_tex_table.lo `test -f 'mgl_tex_table.cpp' || echo '$(srcdir)/'`mgl_tex_table.cpp
-
-libmgl_la-mgl_2d.lo: mgl_2d.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_2d.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_2d.Tpo -c -o libmgl_la-mgl_2d.lo `test -f 'mgl_2d.cpp' || echo '$(srcdir)/'`mgl_2d.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_2d.Tpo $(DEPDIR)/libmgl_la-mgl_2d.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_2d.cpp' object='libmgl_la-mgl_2d.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_2d.lo `test -f 'mgl_2d.cpp' || echo '$(srcdir)/'`mgl_2d.cpp
-
-libmgl_la-mgl_crust.lo: mgl_crust.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_crust.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_crust.Tpo -c -o libmgl_la-mgl_crust.lo `test -f 'mgl_crust.cpp' || echo '$(srcdir)/'`mgl_crust.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_crust.Tpo $(DEPDIR)/libmgl_la-mgl_crust.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_crust.cpp' object='libmgl_la-mgl_crust.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_crust.lo `test -f 'mgl_crust.cpp' || echo '$(srcdir)/'`mgl_crust.cpp
-
-libmgl_la-mgl_export.lo: mgl_export.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_export.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_export.Tpo -c -o libmgl_la-mgl_export.lo `test -f 'mgl_export.cpp' || echo '$(srcdir)/'`mgl_export.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_export.Tpo $(DEPDIR)/libmgl_la-mgl_export.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_export.cpp' object='libmgl_la-mgl_export.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_export.lo `test -f 'mgl_export.cpp' || echo '$(srcdir)/'`mgl_export.cpp
-
-libmgl_la-mgl_main.lo: mgl_main.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_main.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_main.Tpo -c -o libmgl_la-mgl_main.lo `test -f 'mgl_main.cpp' || echo '$(srcdir)/'`mgl_main.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_main.Tpo $(DEPDIR)/libmgl_la-mgl_main.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_main.cpp' object='libmgl_la-mgl_main.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_main.lo `test -f 'mgl_main.cpp' || echo '$(srcdir)/'`mgl_main.cpp
-
-libmgl_la-mgl_3d.lo: mgl_3d.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_3d.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_3d.Tpo -c -o libmgl_la-mgl_3d.lo `test -f 'mgl_3d.cpp' || echo '$(srcdir)/'`mgl_3d.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_3d.Tpo $(DEPDIR)/libmgl_la-mgl_3d.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_3d.cpp' object='libmgl_la-mgl_3d.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_3d.lo `test -f 'mgl_3d.cpp' || echo '$(srcdir)/'`mgl_3d.cpp
-
-libmgl_la-mgl_data.lo: mgl_data.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_data.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_data.Tpo -c -o libmgl_la-mgl_data.lo `test -f 'mgl_data.cpp' || echo '$(srcdir)/'`mgl_data.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_data.Tpo $(DEPDIR)/libmgl_la-mgl_data.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_data.cpp' object='libmgl_la-mgl_data.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_data.lo `test -f 'mgl_data.cpp' || echo '$(srcdir)/'`mgl_data.cpp
-
-libmgl_la-mgl_f.lo: mgl_f.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_f.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_f.Tpo -c -o libmgl_la-mgl_f.lo `test -f 'mgl_f.cpp' || echo '$(srcdir)/'`mgl_f.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_f.Tpo $(DEPDIR)/libmgl_la-mgl_f.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_f.cpp' object='libmgl_la-mgl_f.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_f.lo `test -f 'mgl_f.cpp' || echo '$(srcdir)/'`mgl_f.cpp
-
-libmgl_la-mgl_idtf.lo: mgl_idtf.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_idtf.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_idtf.Tpo -c -o libmgl_la-mgl_idtf.lo `test -f 'mgl_idtf.cpp' || echo '$(srcdir)/'`mgl_idtf.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_idtf.Tpo $(DEPDIR)/libmgl_la-mgl_idtf.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_idtf.cpp' object='libmgl_la-mgl_idtf.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_idtf.lo `test -f 'mgl_idtf.cpp' || echo '$(srcdir)/'`mgl_idtf.cpp
-
-libmgl_la-mgl_ab.lo: mgl_ab.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_ab.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_ab.Tpo -c -o libmgl_la-mgl_ab.lo `test -f 'mgl_ab.cpp' || echo '$(srcdir)/'`mgl_ab.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_ab.Tpo $(DEPDIR)/libmgl_la-mgl_ab.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_ab.cpp' object='libmgl_la-mgl_ab.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_ab.lo `test -f 'mgl_ab.cpp' || echo '$(srcdir)/'`mgl_ab.cpp
-
-libmgl_la-mgl_data_io.lo: mgl_data_io.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_data_io.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_data_io.Tpo -c -o libmgl_la-mgl_data_io.lo `test -f 'mgl_data_io.cpp' || echo '$(srcdir)/'`mgl_data_io.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_data_io.Tpo $(DEPDIR)/libmgl_la-mgl_data_io.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_data_io.cpp' object='libmgl_la-mgl_data_io.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_data_io.lo `test -f 'mgl_data_io.cpp' || echo '$(srcdir)/'`mgl_data_io.cpp
-
-libmgl_la-mgl_flow.lo: mgl_flow.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_flow.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_flow.Tpo -c -o libmgl_la-mgl_flow.lo `test -f 'mgl_flow.cpp' || echo '$(srcdir)/'`mgl_flow.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_flow.Tpo $(DEPDIR)/libmgl_la-mgl_flow.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_flow.cpp' object='libmgl_la-mgl_flow.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_flow.lo `test -f 'mgl_flow.cpp' || echo '$(srcdir)/'`mgl_flow.cpp
-
-libmgl_la-mgl_vect.lo: mgl_vect.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_vect.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_vect.Tpo -c -o libmgl_la-mgl_vect.lo `test -f 'mgl_vect.cpp' || echo '$(srcdir)/'`mgl_vect.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_vect.Tpo $(DEPDIR)/libmgl_la-mgl_vect.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_vect.cpp' object='libmgl_la-mgl_vect.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_vect.lo `test -f 'mgl_vect.cpp' || echo '$(srcdir)/'`mgl_vect.cpp
-
-libmgl_la-mgl_parse.lo: mgl_parse.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_parse.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_parse.Tpo -c -o libmgl_la-mgl_parse.lo `test -f 'mgl_parse.cpp' || echo '$(srcdir)/'`mgl_parse.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_parse.Tpo $(DEPDIR)/libmgl_la-mgl_parse.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_parse.cpp' object='libmgl_la-mgl_parse.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_parse.lo `test -f 'mgl_parse.cpp' || echo '$(srcdir)/'`mgl_parse.cpp
-
-libmgl_la-mgl_fit.lo: mgl_fit.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_fit.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_fit.Tpo -c -o libmgl_la-mgl_fit.lo `test -f 'mgl_fit.cpp' || echo '$(srcdir)/'`mgl_fit.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_fit.Tpo $(DEPDIR)/libmgl_la-mgl_fit.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_fit.cpp' object='libmgl_la-mgl_fit.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_fit.lo `test -f 'mgl_fit.cpp' || echo '$(srcdir)/'`mgl_fit.cpp
-
-libmgl_la-mgl_pde.lo: mgl_pde.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_pde.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_pde.Tpo -c -o libmgl_la-mgl_pde.lo `test -f 'mgl_pde.cpp' || echo '$(srcdir)/'`mgl_pde.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_pde.Tpo $(DEPDIR)/libmgl_la-mgl_pde.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_pde.cpp' object='libmgl_la-mgl_pde.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_pde.lo `test -f 'mgl_pde.cpp' || echo '$(srcdir)/'`mgl_pde.cpp
-
-libmgl_la-mgl_evalc.lo: mgl_evalc.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_evalc.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_evalc.Tpo -c -o libmgl_la-mgl_evalc.lo `test -f 'mgl_evalc.cpp' || echo '$(srcdir)/'`mgl_evalc.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_evalc.Tpo $(DEPDIR)/libmgl_la-mgl_evalc.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_evalc.cpp' object='libmgl_la-mgl_evalc.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_evalc.lo `test -f 'mgl_evalc.cpp' || echo '$(srcdir)/'`mgl_evalc.cpp
-
-libmgl_la-mgl_addon.lo: mgl_addon.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_addon.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_addon.Tpo -c -o libmgl_la-mgl_addon.lo `test -f 'mgl_addon.cpp' || echo '$(srcdir)/'`mgl_addon.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_addon.Tpo $(DEPDIR)/libmgl_la-mgl_addon.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_addon.cpp' object='libmgl_la-mgl_addon.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_addon.lo `test -f 'mgl_addon.cpp' || echo '$(srcdir)/'`mgl_addon.cpp
-
-libmgl_la-mgl_evalp.lo: mgl_evalp.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_evalp.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_evalp.Tpo -c -o libmgl_la-mgl_evalp.lo `test -f 'mgl_evalp.cpp' || echo '$(srcdir)/'`mgl_evalp.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_la-mgl_evalp.Tpo $(DEPDIR)/libmgl_la-mgl_evalp.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_evalp.cpp' object='libmgl_la-mgl_evalp.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_evalp.lo `test -f 'mgl_evalp.cpp' || echo '$(srcdir)/'`mgl_evalp.cpp
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	set x; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES)
-installdirs:
-	for dir in "$(DESTDIR)$(libdir)"; do \
-	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-	done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
-	mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-libLTLIBRARIES
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-libLTLIBRARIES
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libLTLIBRARIES clean-libtool ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am \
-	install-libLTLIBRARIES install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-libLTLIBRARIES
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/.pc/debian-changes-1.11-1/texinfo/Makefile.in b/.pc/debian-changes-1.11-1/texinfo/Makefile.in
deleted file mode 100644
index da79aba..0000000
--- a/.pc/debian-changes-1.11-1/texinfo/Makefile.in
+++ /dev/null
@@ -1,1054 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = texinfo
-DIST_COMMON = $(mathgl_en_TEXINFOS) $(mathgl_ru_TEXINFOS) \
-	$(mgl_en_TEXINFOS) $(mgl_ru_TEXINFOS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/include/mgl/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-SOURCES =
-DIST_SOURCES =
-INFO_DEPS = mathgl_en.info mathgl_ru.info mgl_en.info mgl_ru.info
-TEXINFO_TEX = $(top_srcdir)/config/texinfo.tex
-am__TEXINFO_TEX_DIR = $(top_srcdir)/config
-DVIS = mathgl_en.dvi mathgl_ru.dvi mgl_en.dvi mgl_ru.dvi
-PDFS = mathgl_en.pdf mathgl_ru.pdf mgl_en.pdf mgl_ru.pdf
-PSS = mathgl_en.ps mathgl_ru.ps mgl_en.ps mgl_ru.ps
-HTMLS = mathgl_en.html mathgl_ru.html mgl_en.html mgl_ru.html
-TEXINFOS = mathgl_en.texi mathgl_ru.texi mgl_en.texi mgl_ru.texi
-TEXI2DVI = texi2dvi
-DVIPS = dvips
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
-am__installdirs = "$(DESTDIR)$(infodir)"
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
-  distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
-	distdir
-ETAGS = etags
-CTAGS = ctags
-DIST_SUBDIRS = $(SUBDIRS)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-am__relativize = \
-  dir0=`pwd`; \
-  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
-  sed_rest='s,^[^/]*/*,,'; \
-  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
-  sed_butlast='s,/*[^/]*$$,,'; \
-  while test -n "$$dir1"; do \
-    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
-    if test "$$first" != "."; then \
-      if test "$$first" = ".."; then \
-        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
-        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
-      else \
-        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
-        if test "$$first2" = "$$first"; then \
-          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
-        else \
-          dir2="../$$dir2"; \
-        fi; \
-        dir0="$$dir0"/"$$first"; \
-      fi; \
-    fi; \
-    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
-  done; \
-  reldir="$$dir2"
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_CXXFLAGS = @AM_CXXFLAGS@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-FLTK_FLAGS = @FLTK_FLAGS@
-FLTK_LIBS = @FLTK_LIBS@
-GIF_FLAGS = @GIF_FLAGS@
-GIF_LIBS = @GIF_LIBS@
-GLUT_FLAGS = @GLUT_FLAGS@
-GLUT_LIBS = @GLUT_LIBS@
-GL_LIBS = @GL_LIBS@
-GREP = @GREP@
-GSL_FLAGS = @GSL_FLAGS@
-GSL_LIBS = @GSL_LIBS@
-HAVE_SWIG = @HAVE_SWIG@
-HDF4_FLAGS = @HDF4_FLAGS@
-HDF4_LIBS = @HDF4_LIBS@
-HDF5_FLAGS = @HDF5_FLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-JPEG_FLAGS = @JPEG_FLAGS@
-JPEG_LIBS = @JPEG_LIBS@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MGL_AGE = @MGL_AGE@
-MGL_CURRENT = @MGL_CURRENT@
-MGL_RELEASE = @MGL_RELEASE@
-MGL_REVISION = @MGL_REVISION@
-MKDIR_P = @MKDIR_P@
-MOC = @MOC@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OCTAVE = @OCTAVE@
-OCTAVE_ARCH = @OCTAVE_ARCH@
-OCTAVE_INCFLAGS = @OCTAVE_INCFLAGS@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PNG_LIBS = @PNG_LIBS@
-PTHREAD_FLAGS = @PTHREAD_FLAGS@
-PTHREAD_LIBS = @PTHREAD_LIBS@
-PYTHON = @PYTHON@
-PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
-PYTHON_HEADERS = @PYTHON_HEADERS@
-PYTHON_PLATFORM = @PYTHON_PLATFORM@
-PYTHON_PREFIX = @PYTHON_PREFIX@
-PYTHON_VERSION = @PYTHON_VERSION@
-QMAKE = @QMAKE@
-QT_CFLAGS = @QT_CFLAGS@
-QT_CPPFLAGS = @QT_CPPFLAGS@
-QT_CXXFLAGS = @QT_CXXFLAGS@
-QT_DEFINES = @QT_DEFINES@
-QT_INCPATH = @QT_INCPATH@
-QT_LDFLAGS = @QT_LDFLAGS@
-QT_LFLAGS = @QT_LFLAGS@
-QT_LIBS = @QT_LIBS@
-QT_PATH = @QT_PATH@
-QT_VERSION = @QT_VERSION@
-QT_VERSION_MAJOR = @QT_VERSION_MAJOR@
-RANLIB = @RANLIB@
-RCC = @RCC@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TMPDIR = @TMPDIR@
-UIC = @UIC@
-VERSION = @VERSION@
-WX_FLAGS = @WX_FLAGS@
-WX_LIBS = @WX_LIBS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-pkgpyexecdir = @pkgpyexecdir@
-pkgpythondir = @pkgpythondir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-pyexecdir = @pyexecdir@
-pythondir = @pythondir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-SUBDIRS = png .
-CLEANFILES = mathgl_en.info mathgl_en.info-1 mathgl_en.info-2 mathgl_en.info-3 mgl_en.info \
-mathgl_ru.info mathgl_ru.info-1 mathgl_ru.info-2 mathgl_ru.info-3 mathgl_ru.info-4 mgl_ru.info
-
-MAKEINFOHTML = texi2html
-TEXI2PDF = texi2pdf
-AM_MAKEINFOHTMLFLAGS = --split=chapter
-AM_MAKEINFOFLAGS = --no-validate
-info_TEXINFOS = mathgl_en.texi mathgl_ru.texi mgl_en.texi mgl_ru.texi
-mathgl_en_TEXINFOS = \
-overview_en.texi example_en.texi core_en.texi class_en.texi widget_en.texi \
-data_en.texi other_en.texi mgl_cmd_en.texi samples_en.texi appendix_en.texi fdl.texi
-
-mathgl_ru_TEXINFOS = \
-overview_ru.texi example_ru.texi core_ru.texi class_ru.texi widget_ru.texi \
-data_ru.texi other_ru.texi mgl_cmd_ru.texi samples_ru.texi appendix_ru.texi fdl.texi
-
-mgl_en_TEXINFOS = \
-mgl_cmd_en.texi samples_en.texi ex_mgl_en.texi concept_en.texi fdl.texi
-
-mgl_ru_TEXINFOS = \
-mgl_cmd_ru.texi samples_ru.texi ex_mgl_ru.texi concept_ru.texi fdl.texi
-
-all: all-recursive
-
-.SUFFIXES:
-.SUFFIXES: .dvi .ps
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu texinfo/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu texinfo/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-
-mathgl_en.info: mathgl_en.texi $(mathgl_en_TEXINFOS)
-	restore=: && backupdir="$(am__leading_dot)am$$$$" && \
-	rm -rf $$backupdir && mkdir $$backupdir && \
-	if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
-	  for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
-	    if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
-	  done; \
-	else :; fi && \
-	if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
-	 -o $@ `test -f 'mathgl_en.texi' || echo '$(srcdir)/'`mathgl_en.texi; \
-	then \
-	  rc=0; \
-	else \
-	  rc=$$?; \
-	  $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
-	fi; \
-	rm -rf $$backupdir; exit $$rc
-
-mathgl_en.dvi: mathgl_en.texi $(mathgl_en_TEXINFOS) 
-	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
-	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
-	$(TEXI2DVI) -o $@ `test -f 'mathgl_en.texi' || echo '$(srcdir)/'`mathgl_en.texi
-
-mathgl_en.pdf: mathgl_en.texi $(mathgl_en_TEXINFOS) 
-	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
-	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
-	$(TEXI2PDF) -o $@ `test -f 'mathgl_en.texi' || echo '$(srcdir)/'`mathgl_en.texi
-
-mathgl_en.html: mathgl_en.texi $(mathgl_en_TEXINFOS) 
-	rm -rf $(@:.html=.htp)
-	if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
-	 -o $(@:.html=.htp) `test -f 'mathgl_en.texi' || echo '$(srcdir)/'`mathgl_en.texi; \
-	then \
-	  rm -rf $@; \
-	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
-	    mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \
-	else \
-	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
-	    rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \
-	  exit 1; \
-	fi
-
-mathgl_ru.info: mathgl_ru.texi $(mathgl_ru_TEXINFOS)
-	restore=: && backupdir="$(am__leading_dot)am$$$$" && \
-	rm -rf $$backupdir && mkdir $$backupdir && \
-	if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
-	  for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
-	    if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
-	  done; \
-	else :; fi && \
-	if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
-	 -o $@ `test -f 'mathgl_ru.texi' || echo '$(srcdir)/'`mathgl_ru.texi; \
-	then \
-	  rc=0; \
-	else \
-	  rc=$$?; \
-	  $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
-	fi; \
-	rm -rf $$backupdir; exit $$rc
-
-mathgl_ru.dvi: mathgl_ru.texi $(mathgl_ru_TEXINFOS) 
-	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
-	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
-	$(TEXI2DVI) -o $@ `test -f 'mathgl_ru.texi' || echo '$(srcdir)/'`mathgl_ru.texi
-
-mathgl_ru.pdf: mathgl_ru.texi $(mathgl_ru_TEXINFOS) 
-	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
-	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
-	$(TEXI2PDF) -o $@ `test -f 'mathgl_ru.texi' || echo '$(srcdir)/'`mathgl_ru.texi
-
-mathgl_ru.html: mathgl_ru.texi $(mathgl_ru_TEXINFOS) 
-	rm -rf $(@:.html=.htp)
-	if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
-	 -o $(@:.html=.htp) `test -f 'mathgl_ru.texi' || echo '$(srcdir)/'`mathgl_ru.texi; \
-	then \
-	  rm -rf $@; \
-	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
-	    mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \
-	else \
-	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
-	    rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \
-	  exit 1; \
-	fi
-
-mgl_en.info: mgl_en.texi $(mgl_en_TEXINFOS)
-	restore=: && backupdir="$(am__leading_dot)am$$$$" && \
-	rm -rf $$backupdir && mkdir $$backupdir && \
-	if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
-	  for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
-	    if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
-	  done; \
-	else :; fi && \
-	if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
-	 -o $@ `test -f 'mgl_en.texi' || echo '$(srcdir)/'`mgl_en.texi; \
-	then \
-	  rc=0; \
-	else \
-	  rc=$$?; \
-	  $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
-	fi; \
-	rm -rf $$backupdir; exit $$rc
-
-mgl_en.dvi: mgl_en.texi $(mgl_en_TEXINFOS) 
-	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
-	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
-	$(TEXI2DVI) -o $@ `test -f 'mgl_en.texi' || echo '$(srcdir)/'`mgl_en.texi
-
-mgl_en.pdf: mgl_en.texi $(mgl_en_TEXINFOS) 
-	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
-	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
-	$(TEXI2PDF) -o $@ `test -f 'mgl_en.texi' || echo '$(srcdir)/'`mgl_en.texi
-
-mgl_en.html: mgl_en.texi $(mgl_en_TEXINFOS) 
-	rm -rf $(@:.html=.htp)
-	if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
-	 -o $(@:.html=.htp) `test -f 'mgl_en.texi' || echo '$(srcdir)/'`mgl_en.texi; \
-	then \
-	  rm -rf $@; \
-	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
-	    mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \
-	else \
-	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
-	    rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \
-	  exit 1; \
-	fi
-
-mgl_ru.info: mgl_ru.texi $(mgl_ru_TEXINFOS)
-	restore=: && backupdir="$(am__leading_dot)am$$$$" && \
-	rm -rf $$backupdir && mkdir $$backupdir && \
-	if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
-	  for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
-	    if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
-	  done; \
-	else :; fi && \
-	if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
-	 -o $@ `test -f 'mgl_ru.texi' || echo '$(srcdir)/'`mgl_ru.texi; \
-	then \
-	  rc=0; \
-	else \
-	  rc=$$?; \
-	  $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
-	fi; \
-	rm -rf $$backupdir; exit $$rc
-
-mgl_ru.dvi: mgl_ru.texi $(mgl_ru_TEXINFOS) 
-	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
-	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
-	$(TEXI2DVI) -o $@ `test -f 'mgl_ru.texi' || echo '$(srcdir)/'`mgl_ru.texi
-
-mgl_ru.pdf: mgl_ru.texi $(mgl_ru_TEXINFOS) 
-	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
-	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
-	$(TEXI2PDF) -o $@ `test -f 'mgl_ru.texi' || echo '$(srcdir)/'`mgl_ru.texi
-
-mgl_ru.html: mgl_ru.texi $(mgl_ru_TEXINFOS) 
-	rm -rf $(@:.html=.htp)
-	if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
-	 -o $(@:.html=.htp) `test -f 'mgl_ru.texi' || echo '$(srcdir)/'`mgl_ru.texi; \
-	then \
-	  rm -rf $@; \
-	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
-	    mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \
-	else \
-	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
-	    rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \
-	  exit 1; \
-	fi
-.dvi.ps:
-	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
-	$(DVIPS) -o $@ $<
-
-uninstall-dvi-am:
-	@$(NORMAL_UNINSTALL)
-	@list='$(DVIS)'; test -n "$(dvidir)" || list=; \
-	for p in $$list; do \
-	  $(am__strip_dir) \
-	  echo " rm -f '$(DESTDIR)$(dvidir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(dvidir)/$$f"; \
-	done
-
-uninstall-html-am:
-	@$(NORMAL_UNINSTALL)
-	@list='$(HTMLS)'; test -n "$(htmldir)" || list=; \
-	for p in $$list; do \
-	  $(am__strip_dir) \
-	  echo " rm -rf '$(DESTDIR)$(htmldir)/$$f'"; \
-	  rm -rf "$(DESTDIR)$(htmldir)/$$f"; \
-	done
-
-uninstall-info-am:
-	@$(PRE_UNINSTALL)
-	@if test -d '$(DESTDIR)$(infodir)' && \
-	    (install-info --version && \
-	     install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
-	  list='$(INFO_DEPS)'; \
-	  for file in $$list; do \
-	    relfile=`echo "$$file" | sed 's|^.*/||'`; \
-	    echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \
-	    if install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \
-	    then :; else test ! -f "$(DESTDIR)$(infodir)/$$relfile" || exit 1; fi; \
-	  done; \
-	else :; fi
-	@$(NORMAL_UNINSTALL)
-	@list='$(INFO_DEPS)'; \
-	for file in $$list; do \
-	  relfile=`echo "$$file" | sed 's|^.*/||'`; \
-	  relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \
-	  (if test -d "$(DESTDIR)$(infodir)" && cd "$(DESTDIR)$(infodir)"; then \
-	     echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \
-	     rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \
-	   else :; fi); \
-	done
-
-uninstall-pdf-am:
-	@$(NORMAL_UNINSTALL)
-	@list='$(PDFS)'; test -n "$(pdfdir)" || list=; \
-	for p in $$list; do \
-	  $(am__strip_dir) \
-	  echo " rm -f '$(DESTDIR)$(pdfdir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(pdfdir)/$$f"; \
-	done
-
-uninstall-ps-am:
-	@$(NORMAL_UNINSTALL)
-	@list='$(PSS)'; test -n "$(psdir)" || list=; \
-	for p in $$list; do \
-	  $(am__strip_dir) \
-	  echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(psdir)/$$f"; \
-	done
-
-dist-info: $(INFO_DEPS)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
-	list='$(INFO_DEPS)'; \
-	for base in $$list; do \
-	  case $$base in \
-	    $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \
-	  esac; \
-	  if test -f $$base; then d=.; else d=$(srcdir); fi; \
-	  base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \
-	  for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \
-	    if test -f $$file; then \
-	      relfile=`expr "$$file" : "$$d/\(.*\)"`; \
-	      test -f "$(distdir)/$$relfile" || \
-		cp -p $$file "$(distdir)/$$relfile"; \
-	    else :; fi; \
-	  done; \
-	done
-
-mostlyclean-aminfo:
-	-rm -rf mathgl_en.aux mathgl_en.cp mathgl_en.cps mathgl_en.fn mathgl_en.fns \
-	  mathgl_en.ky mathgl_en.kys mathgl_en.log mathgl_en.pg \
-	  mathgl_en.tmp mathgl_en.toc mathgl_en.tp mathgl_en.tps \
-	  mathgl_en.vr mathgl_en.vrs mathgl_ru.aux mathgl_ru.cp \
-	  mathgl_ru.cps mathgl_ru.fn mathgl_ru.fns mathgl_ru.ky \
-	  mathgl_ru.kys mathgl_ru.log mathgl_ru.pg mathgl_ru.tmp \
-	  mathgl_ru.toc mathgl_ru.tp mathgl_ru.tps mathgl_ru.vr \
-	  mathgl_ru.vrs mgl_en.aux mgl_en.cp mgl_en.cps mgl_en.fn \
-	  mgl_en.fns mgl_en.ky mgl_en.kys mgl_en.log mgl_en.pg \
-	  mgl_en.tmp mgl_en.toc mgl_en.tp mgl_en.tps mgl_en.vr \
-	  mgl_en.vrs mgl_ru.aux mgl_ru.cp mgl_ru.cps mgl_ru.fn \
-	  mgl_ru.fns mgl_ru.ky mgl_ru.kys mgl_ru.log mgl_ru.pg \
-	  mgl_ru.tmp mgl_ru.toc mgl_ru.tp mgl_ru.tps mgl_ru.vr \
-	  mgl_ru.vrs
-
-clean-aminfo:
-	-test -z "mathgl_en.dvi mathgl_en.pdf mathgl_en.ps mathgl_en.html mathgl_ru.dvi \
-	  mathgl_ru.pdf mathgl_ru.ps mathgl_ru.html mgl_en.dvi \
-	  mgl_en.pdf mgl_en.ps mgl_en.html mgl_ru.dvi mgl_ru.pdf \
-	  mgl_ru.ps mgl_ru.html" \
-	|| rm -rf mathgl_en.dvi mathgl_en.pdf mathgl_en.ps mathgl_en.html mathgl_ru.dvi \
-	  mathgl_ru.pdf mathgl_ru.ps mathgl_ru.html mgl_en.dvi \
-	  mgl_en.pdf mgl_en.ps mgl_en.html mgl_ru.dvi mgl_ru.pdf \
-	  mgl_ru.ps mgl_ru.html
-
-maintainer-clean-aminfo:
-	@list='$(INFO_DEPS)'; for i in $$list; do \
-	  i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \
-	  echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \
-	  rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \
-	done
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    dot_seen=yes; \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done; \
-	if test "$$dot_seen" = "no"; then \
-	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
-	fi; test -z "$$fail"
-
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	set x; \
-	here=`pwd`; \
-	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
-	  include_option=--etags-include; \
-	  empty_fix=.; \
-	else \
-	  include_option=--include; \
-	  empty_fix=; \
-	fi; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    test ! -f $$subdir/TAGS || \
-	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
-	  fi; \
-	done; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    test -d "$(distdir)/$$subdir" \
-	    || $(MKDIR_P) "$(distdir)/$$subdir" \
-	    || exit 1; \
-	  fi; \
-	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
-	    $(am__relativize); \
-	    new_distdir=$$reldir; \
-	    dir1=$$subdir; dir2="$(top_distdir)"; \
-	    $(am__relativize); \
-	    new_top_distdir=$$reldir; \
-	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
-	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
-	    ($(am__cd) $$subdir && \
-	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$$new_top_distdir" \
-	        distdir="$$new_distdir" \
-		am__remove_distdir=: \
-		am__skip_length_check=: \
-		am__skip_mode_fix=: \
-	        distdir) \
-	      || exit 1; \
-	  fi; \
-	done
-	$(MAKE) $(AM_MAKEFLAGS) \
-	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
-	  dist-info
-check-am: all-am
-check: check-recursive
-all-am: Makefile $(INFO_DEPS) all-local
-installdirs: installdirs-recursive
-installdirs-am:
-	for dir in "$(DESTDIR)$(infodir)"; do \
-	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-	done
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-recursive
-
-clean-am: clean-aminfo clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-recursive
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am: $(DVIS)
-
-html: html-recursive
-
-html-am: $(HTMLS)
-
-info: info-recursive
-
-info-am: $(INFO_DEPS)
-
-install-data-am: install-data-local install-info-am
-
-install-dvi: install-dvi-recursive
-
-install-dvi-am: $(DVIS)
-	@$(NORMAL_INSTALL)
-	test -z "$(dvidir)" || $(MKDIR_P) "$(DESTDIR)$(dvidir)"
-	@list='$(DVIS)'; test -n "$(dvidir)" || list=; \
-	for p in $$list; do \
-	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dvidir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(dvidir)" || exit $$?; \
-	done
-install-exec-am:
-
-install-html: install-html-recursive
-
-install-html-am: $(HTMLS)
-	@$(NORMAL_INSTALL)
-	test -z "$(htmldir)" || $(MKDIR_P) "$(DESTDIR)$(htmldir)"
-	@list='$(HTMLS)'; list2=; test -n "$(htmldir)" || list=; \
-	for p in $$list; do \
-	  if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  $(am__strip_dir) \
-	  if test -d "$$d$$p"; then \
-	    echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \
-	    $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
-	    echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
-	    $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \
-	  else \
-	    list2="$$list2 $$d$$p"; \
-	  fi; \
-	done; \
-	test -z "$$list2" || { echo "$$list2" | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldir)" || exit $$?; \
-	done; }
-install-info: install-info-recursive
-
-install-info-am: $(INFO_DEPS)
-	@$(NORMAL_INSTALL)
-	test -z "$(infodir)" || $(MKDIR_P) "$(DESTDIR)$(infodir)"
-	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
-	list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
-	for file in $$list; do \
-	  case $$file in \
-	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
-	  esac; \
-	  if test -f $$file; then d=.; else d=$(srcdir); fi; \
-	  file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \
-	  for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \
-	               $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \
-	    if test -f $$ifile; then \
-	      echo "$$ifile"; \
-	    else : ; fi; \
-	  done; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done
-	@$(POST_INSTALL)
-	@if (install-info --version && \
-	     install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
-	  list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
-	  for file in $$list; do \
-	    relfile=`echo "$$file" | sed 's|^.*/||'`; \
-	    echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\
-	    install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\
-	  done; \
-	else : ; fi
-install-man:
-
-install-pdf: install-pdf-recursive
-
-install-pdf-am: $(PDFS)
-	@$(NORMAL_INSTALL)
-	test -z "$(pdfdir)" || $(MKDIR_P) "$(DESTDIR)$(pdfdir)"
-	@list='$(PDFS)'; test -n "$(pdfdir)" || list=; \
-	for p in $$list; do \
-	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pdfdir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(pdfdir)" || exit $$?; done
-install-ps: install-ps-recursive
-
-install-ps-am: $(PSS)
-	@$(NORMAL_INSTALL)
-	test -z "$(psdir)" || $(MKDIR_P) "$(DESTDIR)$(psdir)"
-	@list='$(PSS)'; test -n "$(psdir)" || list=; \
-	for p in $$list; do \
-	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(psdir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(psdir)" || exit $$?; done
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-aminfo \
-	maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-aminfo mostlyclean-generic \
-	mostlyclean-libtool
-
-pdf: pdf-recursive
-
-pdf-am: $(PDFS)
-
-ps: ps-recursive
-
-ps-am: $(PSS)
-
-uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \
-	uninstall-local uninstall-pdf-am uninstall-ps-am
-
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am all-local check check-am clean clean-aminfo \
-	clean-generic clean-libtool ctags ctags-recursive dist-info \
-	distclean distclean-generic distclean-libtool distclean-tags \
-	distdir dvi dvi-am html html-am info info-am install \
-	install-am install-data install-data-am install-data-local \
-	install-dvi install-dvi-am install-exec install-exec-am \
-	install-html install-html-am install-info install-info-am \
-	install-man install-pdf install-pdf-am install-ps \
-	install-ps-am install-strip installcheck installcheck-am \
-	installdirs installdirs-am maintainer-clean \
-	maintainer-clean-aminfo maintainer-clean-generic mostlyclean \
-	mostlyclean-aminfo mostlyclean-generic mostlyclean-libtool pdf \
-	pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
-	uninstall-dvi-am uninstall-html-am uninstall-info-am \
-	uninstall-local uninstall-pdf-am uninstall-ps-am
-
-
-#mglpng=$(DESTDIR)$(docdir)/png_static
-
-#install-data-local: install-html install-pdf
-install-data-local: 
-#	mkdir -p $(mglpng)
-#	cp -r $(top_srcdir)/texinfo/png_static/*.png $(mglpng)
-uninstall-local:
-#	rm -rf $(mglpng)
-
-#all-local: html pdf
-all-local: html
-	./filter.py
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/.pc/debian-changes-1.11-1/texinfo/png/Makefile.in b/.pc/debian-changes-1.11-1/texinfo/png/Makefile.in
deleted file mode 100644
index 07439f3..0000000
--- a/.pc/debian-changes-1.11-1/texinfo/png/Makefile.in
+++ /dev/null
@@ -1,468 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = texinfo/png
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/include/mgl/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-SOURCES =
-DIST_SOURCES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__installdirs = "$(DESTDIR)$(pngdir)"
-DATA = $(png_DATA)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_CXXFLAGS = @AM_CXXFLAGS@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-FLTK_FLAGS = @FLTK_FLAGS@
-FLTK_LIBS = @FLTK_LIBS@
-GIF_FLAGS = @GIF_FLAGS@
-GIF_LIBS = @GIF_LIBS@
-GLUT_FLAGS = @GLUT_FLAGS@
-GLUT_LIBS = @GLUT_LIBS@
-GL_LIBS = @GL_LIBS@
-GREP = @GREP@
-GSL_FLAGS = @GSL_FLAGS@
-GSL_LIBS = @GSL_LIBS@
-HAVE_SWIG = @HAVE_SWIG@
-HDF4_FLAGS = @HDF4_FLAGS@
-HDF4_LIBS = @HDF4_LIBS@
-HDF5_FLAGS = @HDF5_FLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-JPEG_FLAGS = @JPEG_FLAGS@
-JPEG_LIBS = @JPEG_LIBS@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MGL_AGE = @MGL_AGE@
-MGL_CURRENT = @MGL_CURRENT@
-MGL_RELEASE = @MGL_RELEASE@
-MGL_REVISION = @MGL_REVISION@
-MKDIR_P = @MKDIR_P@
-MOC = @MOC@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OCTAVE = @OCTAVE@
-OCTAVE_ARCH = @OCTAVE_ARCH@
-OCTAVE_INCFLAGS = @OCTAVE_INCFLAGS@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PNG_LIBS = @PNG_LIBS@
-PTHREAD_FLAGS = @PTHREAD_FLAGS@
-PTHREAD_LIBS = @PTHREAD_LIBS@
-PYTHON = @PYTHON@
-PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
-PYTHON_HEADERS = @PYTHON_HEADERS@
-PYTHON_PLATFORM = @PYTHON_PLATFORM@
-PYTHON_PREFIX = @PYTHON_PREFIX@
-PYTHON_VERSION = @PYTHON_VERSION@
-QMAKE = @QMAKE@
-QT_CFLAGS = @QT_CFLAGS@
-QT_CPPFLAGS = @QT_CPPFLAGS@
-QT_CXXFLAGS = @QT_CXXFLAGS@
-QT_DEFINES = @QT_DEFINES@
-QT_INCPATH = @QT_INCPATH@
-QT_LDFLAGS = @QT_LDFLAGS@
-QT_LFLAGS = @QT_LFLAGS@
-QT_LIBS = @QT_LIBS@
-QT_PATH = @QT_PATH@
-QT_VERSION = @QT_VERSION@
-QT_VERSION_MAJOR = @QT_VERSION_MAJOR@
-RANLIB = @RANLIB@
-RCC = @RCC@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TMPDIR = @TMPDIR@
-UIC = @UIC@
-VERSION = @VERSION@
-WX_FLAGS = @WX_FLAGS@
-WX_LIBS = @WX_LIBS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-pkgpyexecdir = @pkgpyexecdir@
-pkgpythondir = @pkgpythondir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-pyexecdir = @pyexecdir@
-pythondir = @pythondir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-pngdir = $(docdir)/png
-images = ${shell $(top_builddir)/examples/mgl_example -list}
-png_images = ${images:=.png}
-png_DATA = $(png_images)
-CLEANFILES = $(png_images)
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu texinfo/png/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu texinfo/png/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-install-pngDATA: $(png_DATA)
-	@$(NORMAL_INSTALL)
-	test -z "$(pngdir)" || $(MKDIR_P) "$(DESTDIR)$(pngdir)"
-	@list='$(png_DATA)'; test -n "$(pngdir)" || list=; \
-	for p in $$list; do \
-	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pngdir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(pngdir)" || exit $$?; \
-	done
-
-uninstall-pngDATA:
-	@$(NORMAL_UNINSTALL)
-	@list='$(png_DATA)'; test -n "$(pngdir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(pngdir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(pngdir)" && rm -f $$files
-tags: TAGS
-TAGS:
-
-ctags: CTAGS
-CTAGS:
-
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-am
-all-am: Makefile $(DATA)
-installdirs:
-	for dir in "$(DESTDIR)$(pngdir)"; do \
-	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-	done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-pngDATA
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-pngDATA
-
-.MAKE: install-am install-strip
-
-.PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-pngDATA install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	uninstall uninstall-am uninstall-pngDATA
-
-
-$(png_images): hotdogs.pts # $(top_builddir)/examples/mgl_example
-	$(top_builddir)/examples/mgl_example -kind=${@:.png=}
-	touch $(srcdir)/../mathgl.texi
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/.pc/debian-changes-1.11-1/utils/Makefile.in b/.pc/debian-changes-1.11-1/utils/Makefile.in
deleted file mode 100644
index 8057592..0000000
--- a/.pc/debian-changes-1.11-1/utils/Makefile.in
+++ /dev/null
@@ -1,660 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-bin_PROGRAMS = mgl2png$(EXEEXT) mgl2eps$(EXEEXT) mgl2svg$(EXEEXT) \
-	mgl2cpp$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2)
- at USE_FLTK_TRUE@am__append_1 = mglview
- at USE_GIF_TRUE@am__append_2 = mgl2gif
-subdir = utils
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/include/mgl/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
- at USE_FLTK_TRUE@am__EXEEXT_1 = mglview$(EXEEXT)
- at USE_GIF_TRUE@am__EXEEXT_2 = mgl2gif$(EXEEXT)
-am__installdirs = "$(DESTDIR)$(bindir)"
-PROGRAMS = $(bin_PROGRAMS)
-am_mgl2cpp_OBJECTS = mgl2cpp.$(OBJEXT)
-mgl2cpp_OBJECTS = $(am_mgl2cpp_OBJECTS)
-mgl2cpp_DEPENDENCIES = $(top_builddir)/mgl/libmgl.la
-am_mgl2eps_OBJECTS = mgl2eps.$(OBJEXT)
-mgl2eps_OBJECTS = $(am_mgl2eps_OBJECTS)
-mgl2eps_DEPENDENCIES = $(top_builddir)/mgl/libmgl.la
-am__mgl2gif_SOURCES_DIST = mgl2gif.cpp
- at USE_GIF_TRUE@am_mgl2gif_OBJECTS = mgl2gif-mgl2gif.$(OBJEXT)
-mgl2gif_OBJECTS = $(am_mgl2gif_OBJECTS)
- at USE_GIF_TRUE@mgl2gif_DEPENDENCIES = $(top_builddir)/mgl/libmgl.la
-mgl2gif_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CXXLD) $(mgl2gif_CXXFLAGS) $(CXXFLAGS) \
-	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-am_mgl2png_OBJECTS = mgl2png.$(OBJEXT)
-mgl2png_OBJECTS = $(am_mgl2png_OBJECTS)
-mgl2png_DEPENDENCIES = $(top_builddir)/mgl/libmgl.la
-am_mgl2svg_OBJECTS = mgl2svg.$(OBJEXT)
-mgl2svg_OBJECTS = $(am_mgl2svg_OBJECTS)
-mgl2svg_DEPENDENCIES = $(top_builddir)/mgl/libmgl.la
-am__mglview_SOURCES_DIST = mglview.cpp
- at USE_FLTK_TRUE@am_mglview_OBJECTS = mglview-mglview.$(OBJEXT)
-mglview_OBJECTS = $(am_mglview_OBJECTS)
- at USE_FLTK_TRUE@mglview_DEPENDENCIES =  \
- at USE_FLTK_TRUE@	$(top_builddir)/widgets/libmgl-fltk.la \
- at USE_FLTK_TRUE@	$(top_builddir)/mgl/libmgl.la
-mglview_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CXXLD) $(mglview_CXXFLAGS) $(CXXFLAGS) \
-	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)/include/mgl
-depcomp = $(SHELL) $(top_srcdir)/config/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-CXXLD = $(CXX)
-CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
-SOURCES = $(mgl2cpp_SOURCES) $(mgl2eps_SOURCES) $(mgl2gif_SOURCES) \
-	$(mgl2png_SOURCES) $(mgl2svg_SOURCES) $(mglview_SOURCES)
-DIST_SOURCES = $(mgl2cpp_SOURCES) $(mgl2eps_SOURCES) \
-	$(am__mgl2gif_SOURCES_DIST) $(mgl2png_SOURCES) \
-	$(mgl2svg_SOURCES) $(am__mglview_SOURCES_DIST)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_CXXFLAGS = @AM_CXXFLAGS@ -I$(top_srcdir)/include \
-	-I$(top_builddir)/include
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-FLTK_FLAGS = @FLTK_FLAGS@
-FLTK_LIBS = @FLTK_LIBS@
-GIF_FLAGS = @GIF_FLAGS@
-GIF_LIBS = @GIF_LIBS@
-GLUT_FLAGS = @GLUT_FLAGS@
-GLUT_LIBS = @GLUT_LIBS@
-GL_LIBS = @GL_LIBS@
-GREP = @GREP@
-GSL_FLAGS = @GSL_FLAGS@
-GSL_LIBS = @GSL_LIBS@
-HAVE_SWIG = @HAVE_SWIG@
-HDF4_FLAGS = @HDF4_FLAGS@
-HDF4_LIBS = @HDF4_LIBS@
-HDF5_FLAGS = @HDF5_FLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-JPEG_FLAGS = @JPEG_FLAGS@
-JPEG_LIBS = @JPEG_LIBS@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MGL_AGE = @MGL_AGE@
-MGL_CURRENT = @MGL_CURRENT@
-MGL_RELEASE = @MGL_RELEASE@
-MGL_REVISION = @MGL_REVISION@
-MKDIR_P = @MKDIR_P@
-MOC = @MOC@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OCTAVE = @OCTAVE@
-OCTAVE_ARCH = @OCTAVE_ARCH@
-OCTAVE_INCFLAGS = @OCTAVE_INCFLAGS@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PNG_LIBS = @PNG_LIBS@
-PTHREAD_FLAGS = @PTHREAD_FLAGS@
-PTHREAD_LIBS = @PTHREAD_LIBS@
-PYTHON = @PYTHON@
-PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
-PYTHON_HEADERS = @PYTHON_HEADERS@
-PYTHON_PLATFORM = @PYTHON_PLATFORM@
-PYTHON_PREFIX = @PYTHON_PREFIX@
-PYTHON_VERSION = @PYTHON_VERSION@
-QMAKE = @QMAKE@
-QT_CFLAGS = @QT_CFLAGS@
-QT_CPPFLAGS = @QT_CPPFLAGS@
-QT_CXXFLAGS = @QT_CXXFLAGS@
-QT_DEFINES = @QT_DEFINES@
-QT_INCPATH = @QT_INCPATH@
-QT_LDFLAGS = @QT_LDFLAGS@
-QT_LFLAGS = @QT_LFLAGS@
-QT_LIBS = @QT_LIBS@
-QT_PATH = @QT_PATH@
-QT_VERSION = @QT_VERSION@
-QT_VERSION_MAJOR = @QT_VERSION_MAJOR@
-RANLIB = @RANLIB@
-RCC = @RCC@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TMPDIR = @TMPDIR@
-UIC = @UIC@
-VERSION = @VERSION@
-WX_FLAGS = @WX_FLAGS@
-WX_LIBS = @WX_LIBS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-pkgpyexecdir = @pkgpyexecdir@
-pkgpythondir = @pkgpythondir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-pyexecdir = @pyexecdir@
-pythondir = @pythondir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-mgl2png_SOURCES = mgl2png.cpp
-mgl2png_LDADD = $(top_builddir)/mgl/libmgl.la
-mgl2cpp_SOURCES = mgl2cpp.cpp
-mgl2cpp_LDADD = $(top_builddir)/mgl/libmgl.la
-mgl2eps_SOURCES = mgl2eps.cpp
-mgl2eps_LDADD = $(top_builddir)/mgl/libmgl.la
-mgl2svg_SOURCES = mgl2svg.cpp
-mgl2svg_LDADD = $(top_builddir)/mgl/libmgl.la
- at USE_FLTK_TRUE@mglview_SOURCES = mglview.cpp
- at USE_FLTK_TRUE@mglview_LDADD = $(top_builddir)/widgets/libmgl-fltk.la $(top_builddir)/mgl/libmgl.la 
- at USE_FLTK_TRUE@mglview_CXXFLAGS = $(FLTK_FLAGS) $(AM_CXXFLAGS)
- at USE_GIF_TRUE@mgl2gif_SOURCES = mgl2gif.cpp
- at USE_GIF_TRUE@mgl2gif_LDADD = $(top_builddir)/mgl/libmgl.la
- at USE_GIF_TRUE@mgl2gif_CXXFLAGS = $(GIF_FLAGS) $(AM_CXXFLAGS)
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .cpp .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu utils/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu utils/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-binPROGRAMS: $(bin_PROGRAMS)
-	@$(NORMAL_INSTALL)
-	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
-	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
-	for p in $$list; do echo "$$p $$p"; done | \
-	sed 's/$(EXEEXT)$$//' | \
-	while read p p1; do if test -f $$p || test -f $$p1; \
-	  then echo "$$p"; echo "$$p"; else :; fi; \
-	done | \
-	sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
-	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
-	sed 'N;N;N;s,\n, ,g' | \
-	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
-	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
-	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
-	    else { print "f", $$3 "/" $$4, $$1; } } \
-	  END { for (d in files) print "f", d, files[d] }' | \
-	while read type dir files; do \
-	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
-	    test -z "$$files" || { \
-	    echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
-	    $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
-	    } \
-	; done
-
-uninstall-binPROGRAMS:
-	@$(NORMAL_UNINSTALL)
-	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
-	files=`for p in $$list; do echo "$$p"; done | \
-	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-	      -e 's/$$/$(EXEEXT)/' `; \
-	test -n "$$list" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(bindir)" && rm -f $$files
-
-clean-binPROGRAMS:
-	@list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
-	echo " rm -f" $$list; \
-	rm -f $$list || exit $$?; \
-	test -n "$(EXEEXT)" || exit 0; \
-	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
-	echo " rm -f" $$list; \
-	rm -f $$list
-mgl2cpp$(EXEEXT): $(mgl2cpp_OBJECTS) $(mgl2cpp_DEPENDENCIES) 
-	@rm -f mgl2cpp$(EXEEXT)
-	$(CXXLINK) $(mgl2cpp_OBJECTS) $(mgl2cpp_LDADD) $(LIBS)
-mgl2eps$(EXEEXT): $(mgl2eps_OBJECTS) $(mgl2eps_DEPENDENCIES) 
-	@rm -f mgl2eps$(EXEEXT)
-	$(CXXLINK) $(mgl2eps_OBJECTS) $(mgl2eps_LDADD) $(LIBS)
-mgl2gif$(EXEEXT): $(mgl2gif_OBJECTS) $(mgl2gif_DEPENDENCIES) 
-	@rm -f mgl2gif$(EXEEXT)
-	$(mgl2gif_LINK) $(mgl2gif_OBJECTS) $(mgl2gif_LDADD) $(LIBS)
-mgl2png$(EXEEXT): $(mgl2png_OBJECTS) $(mgl2png_DEPENDENCIES) 
-	@rm -f mgl2png$(EXEEXT)
-	$(CXXLINK) $(mgl2png_OBJECTS) $(mgl2png_LDADD) $(LIBS)
-mgl2svg$(EXEEXT): $(mgl2svg_OBJECTS) $(mgl2svg_DEPENDENCIES) 
-	@rm -f mgl2svg$(EXEEXT)
-	$(CXXLINK) $(mgl2svg_OBJECTS) $(mgl2svg_LDADD) $(LIBS)
-mglview$(EXEEXT): $(mglview_OBJECTS) $(mglview_DEPENDENCIES) 
-	@rm -f mglview$(EXEEXT)
-	$(mglview_LINK) $(mglview_OBJECTS) $(mglview_LDADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mgl2cpp.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mgl2eps.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mgl2gif-mgl2gif.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mgl2png.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mgl2svg.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mglview-mglview.Po at am__quote@
-
-.cpp.o:
- at am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
- at am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cpp.lo:
- at am__fastdepCXX_TRUE@	$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LTCXXCOMPILE) -c -o $@ $<
-
-mgl2gif-mgl2gif.o: mgl2gif.cpp
- at am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl2gif_CXXFLAGS) $(CXXFLAGS) -MT mgl2gif-mgl2gif.o -MD -MP -MF $(DEPDIR)/mgl2gif-mgl2gif.Tpo -c -o mgl2gif-mgl2gif.o `test -f 'mgl2gif.cpp' || echo '$(srcdir)/'`mgl2gif.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/mgl2gif-mgl2gif.Tpo $(DEPDIR)/mgl2gif-mgl2gif.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl2gif.cpp' object='mgl2gif-mgl2gif.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl2gif_CXXFLAGS) $(CXXFLAGS) -c -o mgl2gif-mgl2gif.o `test -f 'mgl2gif.cpp' || echo '$(srcdir)/'`mgl2gif.cpp
-
-mgl2gif-mgl2gif.obj: mgl2gif.cpp
- at am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl2gif_CXXFLAGS) $(CXXFLAGS) -MT mgl2gif-mgl2gif.obj -MD -MP -MF $(DEPDIR)/mgl2gif-mgl2gif.Tpo -c -o mgl2gif-mgl2gif.obj `if test -f 'mgl2gif.cpp'; then $(CYGPATH_W) 'mgl2gif.cpp'; else $(CYGPATH_W) '$(srcdir)/mgl2gif.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/mgl2gif-mgl2gif.Tpo $(DEPDIR)/mgl2gif-mgl2gif.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl2gif.cpp' object='mgl2gif-mgl2gif.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl2gif_CXXFLAGS) $(CXXFLAGS) -c -o mgl2gif-mgl2gif.obj `if test -f 'mgl2gif.cpp'; then $(CYGPATH_W) 'mgl2gif.cpp'; else $(CYGPATH_W) '$(srcdir)/mgl2gif.cpp'; fi`
-
-mglview-mglview.o: mglview.cpp
- at am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mglview_CXXFLAGS) $(CXXFLAGS) -MT mglview-mglview.o -MD -MP -MF $(DEPDIR)/mglview-mglview.Tpo -c -o mglview-mglview.o `test -f 'mglview.cpp' || echo '$(srcdir)/'`mglview.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/mglview-mglview.Tpo $(DEPDIR)/mglview-mglview.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mglview.cpp' object='mglview-mglview.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mglview_CXXFLAGS) $(CXXFLAGS) -c -o mglview-mglview.o `test -f 'mglview.cpp' || echo '$(srcdir)/'`mglview.cpp
-
-mglview-mglview.obj: mglview.cpp
- at am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mglview_CXXFLAGS) $(CXXFLAGS) -MT mglview-mglview.obj -MD -MP -MF $(DEPDIR)/mglview-mglview.Tpo -c -o mglview-mglview.obj `if test -f 'mglview.cpp'; then $(CYGPATH_W) 'mglview.cpp'; else $(CYGPATH_W) '$(srcdir)/mglview.cpp'; fi`
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/mglview-mglview.Tpo $(DEPDIR)/mglview-mglview.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mglview.cpp' object='mglview-mglview.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mglview_CXXFLAGS) $(CXXFLAGS) -c -o mglview-mglview.obj `if test -f 'mglview.cpp'; then $(CYGPATH_W) 'mglview.cpp'; else $(CYGPATH_W) '$(srcdir)/mglview.cpp'; fi`
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	set x; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-am
-all-am: Makefile $(PROGRAMS)
-installdirs:
-	for dir in "$(DESTDIR)$(bindir)"; do \
-	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-	done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-binPROGRAMS
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
-	clean-generic clean-libtool ctags distclean distclean-compile \
-	distclean-generic distclean-libtool distclean-tags distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-binPROGRAMS install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags uninstall uninstall-am \
-	uninstall-binPROGRAMS
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/.pc/debian-changes-1.11-1/widgets/Makefile.in b/.pc/debian-changes-1.11-1/widgets/Makefile.in
deleted file mode 100644
index 250f511..0000000
--- a/.pc/debian-changes-1.11-1/widgets/Makefile.in
+++ /dev/null
@@ -1,784 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-# Makerules.
-# This file is part of AutoTroll.
-# Copyright (C) 2006  Benoit Sigoure.
-#
-# AutoTroll 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.
-#
-# This program 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 this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-# USA.
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
- at USE_FLTK_TRUE@am__append_1 = libmgl-fltk.la
- at USE_GLUT_TRUE@am__append_2 = libmgl-glut.la
- at USE_WX_TRUE@am__append_3 = libmgl-wx.la
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/config/autotroll.mk
- at USE_QT_TRUE@am__append_4 = libmgl-qt.la
-subdir = widgets
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/include/mgl/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__installdirs = "$(DESTDIR)$(libdir)"
-LTLIBRARIES = $(lib_LTLIBRARIES)
-am__DEPENDENCIES_1 =
- at USE_FLTK_TRUE@libmgl_fltk_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
- at USE_FLTK_TRUE@	$(top_builddir)/mgl/libmgl.la
-am__libmgl_fltk_la_SOURCES_DIST = mgl_fltk.cpp
- at USE_FLTK_TRUE@am_libmgl_fltk_la_OBJECTS = libmgl_fltk_la-mgl_fltk.lo
-libmgl_fltk_la_OBJECTS = $(am_libmgl_fltk_la_OBJECTS)
-libmgl_fltk_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CXXLD) \
-	$(libmgl_fltk_la_CXXFLAGS) $(CXXFLAGS) \
-	$(libmgl_fltk_la_LDFLAGS) $(LDFLAGS) -o $@
- at USE_FLTK_TRUE@am_libmgl_fltk_la_rpath = -rpath $(libdir)
- at USE_GLUT_TRUE@libmgl_glut_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
- at USE_GLUT_TRUE@	$(am__DEPENDENCIES_1) \
- at USE_GLUT_TRUE@	$(top_builddir)/mgl/libmgl.la
-am__libmgl_glut_la_SOURCES_DIST = mgl_glut.cpp
- at USE_GLUT_TRUE@am_libmgl_glut_la_OBJECTS = libmgl_glut_la-mgl_glut.lo
-libmgl_glut_la_OBJECTS = $(am_libmgl_glut_la_OBJECTS)
-libmgl_glut_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CXXLD) \
-	$(libmgl_glut_la_CXXFLAGS) $(CXXFLAGS) \
-	$(libmgl_glut_la_LDFLAGS) $(LDFLAGS) -o $@
- at USE_GLUT_TRUE@am_libmgl_glut_la_rpath = -rpath $(libdir)
- at USE_QT_TRUE@libmgl_qt_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
- at USE_QT_TRUE@	$(top_builddir)/mgl/libmgl.la
-am__libmgl_qt_la_SOURCES_DIST =  \
-	$(top_builddir)/include/mgl/mgl_qt.moc.cpp mgl_qt.cpp \
-	$(top_srcdir)/include/mgl/mgl_qt.h
- at USE_QT_TRUE@am_libmgl_qt_la_OBJECTS = libmgl_qt_la-mgl_qt.moc.lo \
- at USE_QT_TRUE@	libmgl_qt_la-mgl_qt.lo
-libmgl_qt_la_OBJECTS = $(am_libmgl_qt_la_OBJECTS)
-libmgl_qt_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(libmgl_qt_la_CXXFLAGS) \
-	$(CXXFLAGS) $(libmgl_qt_la_LDFLAGS) $(LDFLAGS) -o $@
- at USE_QT_TRUE@am_libmgl_qt_la_rpath = -rpath $(libdir)
- at USE_WX_TRUE@libmgl_wx_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
- at USE_WX_TRUE@	$(top_builddir)/mgl/libmgl.la
-am__libmgl_wx_la_SOURCES_DIST = mgl_wx.cpp
- at USE_WX_TRUE@am_libmgl_wx_la_OBJECTS = libmgl_wx_la-mgl_wx.lo
-libmgl_wx_la_OBJECTS = $(am_libmgl_wx_la_OBJECTS)
-libmgl_wx_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(libmgl_wx_la_CXXFLAGS) \
-	$(CXXFLAGS) $(libmgl_wx_la_LDFLAGS) $(LDFLAGS) -o $@
- at USE_WX_TRUE@am_libmgl_wx_la_rpath = -rpath $(libdir)
-DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)/include/mgl
-depcomp = $(SHELL) $(top_srcdir)/config/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-CXXLD = $(CXX)
-CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
-SOURCES = $(libmgl_fltk_la_SOURCES) $(libmgl_glut_la_SOURCES) \
-	$(libmgl_qt_la_SOURCES) $(libmgl_wx_la_SOURCES)
-DIST_SOURCES = $(am__libmgl_fltk_la_SOURCES_DIST) \
-	$(am__libmgl_glut_la_SOURCES_DIST) \
-	$(am__libmgl_qt_la_SOURCES_DIST) \
-	$(am__libmgl_wx_la_SOURCES_DIST)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_CXXFLAGS = @AM_CXXFLAGS@ -I$(top_srcdir)/include \
-	-I$(top_builddir)/include
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-FLTK_FLAGS = @FLTK_FLAGS@
-FLTK_LIBS = @FLTK_LIBS@
-GIF_FLAGS = @GIF_FLAGS@
-GIF_LIBS = @GIF_LIBS@
-GLUT_FLAGS = @GLUT_FLAGS@
-GLUT_LIBS = @GLUT_LIBS@
-GL_LIBS = @GL_LIBS@
-GREP = @GREP@
-GSL_FLAGS = @GSL_FLAGS@
-GSL_LIBS = @GSL_LIBS@
-HAVE_SWIG = @HAVE_SWIG@
-HDF4_FLAGS = @HDF4_FLAGS@
-HDF4_LIBS = @HDF4_LIBS@
-HDF5_FLAGS = @HDF5_FLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-JPEG_FLAGS = @JPEG_FLAGS@
-JPEG_LIBS = @JPEG_LIBS@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MGL_AGE = @MGL_AGE@
-MGL_CURRENT = @MGL_CURRENT@
-MGL_RELEASE = @MGL_RELEASE@
-MGL_REVISION = @MGL_REVISION@
-MKDIR_P = @MKDIR_P@
-MOC = @MOC@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OCTAVE = @OCTAVE@
-OCTAVE_ARCH = @OCTAVE_ARCH@
-OCTAVE_INCFLAGS = @OCTAVE_INCFLAGS@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PNG_LIBS = @PNG_LIBS@
-PTHREAD_FLAGS = @PTHREAD_FLAGS@
-PTHREAD_LIBS = @PTHREAD_LIBS@
-PYTHON = @PYTHON@
-PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
-PYTHON_HEADERS = @PYTHON_HEADERS@
-PYTHON_PLATFORM = @PYTHON_PLATFORM@
-PYTHON_PREFIX = @PYTHON_PREFIX@
-PYTHON_VERSION = @PYTHON_VERSION@
-QMAKE = @QMAKE@
-QT_CFLAGS = @QT_CFLAGS@
-QT_CPPFLAGS = @QT_CPPFLAGS@
-QT_CXXFLAGS = @QT_CXXFLAGS@
-QT_DEFINES = @QT_DEFINES@
-QT_INCPATH = @QT_INCPATH@
-QT_LDFLAGS = @QT_LDFLAGS@
-QT_LFLAGS = @QT_LFLAGS@
-QT_LIBS = @QT_LIBS@
-QT_PATH = @QT_PATH@
-QT_VERSION = @QT_VERSION@
-QT_VERSION_MAJOR = @QT_VERSION_MAJOR@
-RANLIB = @RANLIB@
-RCC = @RCC@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TMPDIR = @TMPDIR@
-UIC = @UIC@
-VERSION = @VERSION@
-WX_FLAGS = @WX_FLAGS@
-WX_LIBS = @WX_LIBS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-pkgpyexecdir = @pkgpyexecdir@
-pkgpythondir = @pkgpythondir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-pyexecdir = @pyexecdir@
-pythondir = @pythondir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-lib_LTLIBRARIES = $(am__append_1) $(am__append_2) $(am__append_3) \
-	$(am__append_4)
- at USE_FLTK_TRUE@libmgl_fltk_la_LDFLAGS = -no-undefined -version-info $(MGL_CURRENT):$(MGL_REVISION):$(MGL_AGE)
- at USE_FLTK_TRUE@libmgl_fltk_la_LIBADD = $(FLTK_LIBS) $(top_builddir)/mgl/libmgl.la
- at USE_FLTK_TRUE@libmgl_fltk_la_CXXFLAGS = $(FLTK_FLAGS) $(AM_CXXFLAGS)
- at USE_FLTK_TRUE@libmgl_fltk_la_SOURCES = mgl_fltk.cpp
- at USE_GLUT_TRUE@libmgl_glut_la_LDFLAGS = -no-undefined -version-info $(MGL_CURRENT):$(MGL_REVISION):$(MGL_AGE)
- at USE_GLUT_TRUE@libmgl_glut_la_LIBADD = $(GLUT_LIBS) $(GL_LIBS) $(top_builddir)/mgl/libmgl.la
- at USE_GLUT_TRUE@libmgl_glut_la_CXXFLAGS = $(GLUT_FLAGS) $(AM_CXXFLAGS)
- at USE_GLUT_TRUE@libmgl_glut_la_SOURCES = mgl_glut.cpp
- at USE_WX_TRUE@libmgl_wx_la_LDFLAGS = -no-undefined -version-info $(MGL_CURRENT):$(MGL_REVISION):$(MGL_AGE)
- at USE_WX_TRUE@libmgl_wx_la_LIBADD = $(WX_LIBS) $(top_builddir)/mgl/libmgl.la
- at USE_WX_TRUE@libmgl_wx_la_CXXFLAGS = $(WX_FLAGS) $(AM_CXXFLAGS)
- at USE_WX_TRUE@libmgl_wx_la_SOURCES = mgl_wx.cpp
-
-# See autotroll.m4 :)
- at USE_QT_TRUE@SUFFIXES = .moc.cpp .moc.cc .moc.cxx .moc.C .h .hh \
- at USE_QT_TRUE@           .ui .ui.h .ui.hh \
- at USE_QT_TRUE@           .qrc .qrc.cpp .qrc.cc .qrc.cxx .qrc.C
-
- at USE_QT_TRUE@DISTCLEANFILES = $(BUILT_SOURCES)
- at USE_QT_TRUE@ACLOCAL_AMFLAGS = -I $(top_srcdir)/config/
- at USE_QT_TRUE@libmgl_qt_la_LDFLAGS = $(QT_LDFLAGS) $(LDFLAGS) -no-undefined -version-info $(MGL_CURRENT):$(MGL_REVISION):$(MGL_AGE)
- at USE_QT_TRUE@libmgl_qt_la_LIBADD = $(QT_LIBS) $(top_builddir)/mgl/libmgl.la
- at USE_QT_TRUE@libmgl_qt_la_CPPFLAGS = $(QT_CPPFLAGS) $(AM_CPPFLAGS)
- at USE_QT_TRUE@libmgl_qt_la_CXXFLAGS = $(QT_CXXFLAGS) $(AM_CXXFLAGS)
- at USE_QT_TRUE@libmgl_qt_la_SOURCES = $(top_builddir)/include/mgl/mgl_qt.moc.cpp mgl_qt.cpp $(top_srcdir)/include/mgl/mgl_qt.h
- at USE_QT_TRUE@BUILT_SOURCES = $(top_builddir)/include/mgl/mgl_qt.moc.cpp
- at USE_QT_TRUE@CLEANFILES = $(BUILT_SOURCES)
-all: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) all-am
-
-.SUFFIXES:
-.SUFFIXES: .moc.cpp .moc.cc .moc.cxx .moc.C .h .hh .ui .ui.h .ui.hh .qrc .qrc.cpp .qrc.cc .qrc.cxx .qrc.C .cpp .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/config/autotroll.mk $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu widgets/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu widgets/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-libLTLIBRARIES: $(lib_LTLIBRARIES)
-	@$(NORMAL_INSTALL)
-	test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
-	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
-	list2=; for p in $$list; do \
-	  if test -f $$p; then \
-	    list2="$$list2 $$p"; \
-	  else :; fi; \
-	done; \
-	test -z "$$list2" || { \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
-	}
-
-uninstall-libLTLIBRARIES:
-	@$(NORMAL_UNINSTALL)
-	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
-	for p in $$list; do \
-	  $(am__strip_dir) \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
-	done
-
-clean-libLTLIBRARIES:
-	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
-libmgl-fltk.la: $(libmgl_fltk_la_OBJECTS) $(libmgl_fltk_la_DEPENDENCIES) 
-	$(libmgl_fltk_la_LINK) $(am_libmgl_fltk_la_rpath) $(libmgl_fltk_la_OBJECTS) $(libmgl_fltk_la_LIBADD) $(LIBS)
-libmgl-glut.la: $(libmgl_glut_la_OBJECTS) $(libmgl_glut_la_DEPENDENCIES) 
-	$(libmgl_glut_la_LINK) $(am_libmgl_glut_la_rpath) $(libmgl_glut_la_OBJECTS) $(libmgl_glut_la_LIBADD) $(LIBS)
-libmgl-qt.la: $(libmgl_qt_la_OBJECTS) $(libmgl_qt_la_DEPENDENCIES) 
-	$(libmgl_qt_la_LINK) $(am_libmgl_qt_la_rpath) $(libmgl_qt_la_OBJECTS) $(libmgl_qt_la_LIBADD) $(LIBS)
-libmgl-wx.la: $(libmgl_wx_la_OBJECTS) $(libmgl_wx_la_DEPENDENCIES) 
-	$(libmgl_wx_la_LINK) $(am_libmgl_wx_la_rpath) $(libmgl_wx_la_OBJECTS) $(libmgl_wx_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_fltk_la-mgl_fltk.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_glut_la-mgl_glut.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_qt_la-mgl_qt.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_qt_la-mgl_qt.moc.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmgl_wx_la-mgl_wx.Plo at am__quote@
-
-.cpp.o:
- at am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
- at am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cpp.lo:
- at am__fastdepCXX_TRUE@	$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LTCXXCOMPILE) -c -o $@ $<
-
-libmgl_fltk_la-mgl_fltk.lo: mgl_fltk.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_fltk_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_fltk_la-mgl_fltk.lo -MD -MP -MF $(DEPDIR)/libmgl_fltk_la-mgl_fltk.Tpo -c -o libmgl_fltk_la-mgl_fltk.lo `test -f 'mgl_fltk.cpp' || echo '$(srcdir)/'`mgl_fltk.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_fltk_la-mgl_fltk.Tpo $(DEPDIR)/libmgl_fltk_la-mgl_fltk.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_fltk.cpp' object='libmgl_fltk_la-mgl_fltk.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_fltk_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_fltk_la-mgl_fltk.lo `test -f 'mgl_fltk.cpp' || echo '$(srcdir)/'`mgl_fltk.cpp
-
-libmgl_glut_la-mgl_glut.lo: mgl_glut.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_glut_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_glut_la-mgl_glut.lo -MD -MP -MF $(DEPDIR)/libmgl_glut_la-mgl_glut.Tpo -c -o libmgl_glut_la-mgl_glut.lo `test -f 'mgl_glut.cpp' || echo '$(srcdir)/'`mgl_glut.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_glut_la-mgl_glut.Tpo $(DEPDIR)/libmgl_glut_la-mgl_glut.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_glut.cpp' object='libmgl_glut_la-mgl_glut.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_glut_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_glut_la-mgl_glut.lo `test -f 'mgl_glut.cpp' || echo '$(srcdir)/'`mgl_glut.cpp
-
-libmgl_qt_la-mgl_qt.moc.lo: $(top_builddir)/include/mgl/mgl_qt.moc.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmgl_qt_la_CPPFLAGS) $(CPPFLAGS) $(libmgl_qt_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_qt_la-mgl_qt.moc.lo -MD -MP -MF $(DEPDIR)/libmgl_qt_la-mgl_qt.moc.Tpo -c -o libmgl_qt_la-mgl_qt.moc.lo `test -f '$(top_builddir)/include/mgl/mgl_qt.moc.cpp' || echo '$(srcdir)/'`$(top_builddir)/include/mgl/mgl_qt.moc.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_qt_la-mgl_qt.moc.Tpo $(DEPDIR)/libmgl_qt_la-mgl_qt.moc.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(top_builddir)/include/mgl/mgl_qt.moc.cpp' object='libmgl_qt_la-mgl_qt.moc.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmgl_qt_la_CPPFLAGS) $(CPPFLAGS) $(libmgl_qt_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_qt_la-mgl_qt.moc.lo `test -f '$(top_builddir)/include/mgl/mgl_qt.moc.cpp' || echo '$(srcdir)/'`$(top_builddir)/include/mgl/mgl_qt.moc.cpp
-
-libmgl_qt_la-mgl_qt.lo: mgl_qt.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmgl_qt_la_CPPFLAGS) $(CPPFLAGS) $(libmgl_qt_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_qt_la-mgl_qt.lo -MD -MP -MF $(DEPDIR)/libmgl_qt_la-mgl_qt.Tpo -c -o libmgl_qt_la-mgl_qt.lo `test -f 'mgl_qt.cpp' || echo '$(srcdir)/'`mgl_qt.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_qt_la-mgl_qt.Tpo $(DEPDIR)/libmgl_qt_la-mgl_qt.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_qt.cpp' object='libmgl_qt_la-mgl_qt.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmgl_qt_la_CPPFLAGS) $(CPPFLAGS) $(libmgl_qt_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_qt_la-mgl_qt.lo `test -f 'mgl_qt.cpp' || echo '$(srcdir)/'`mgl_qt.cpp
-
-libmgl_wx_la-mgl_wx.lo: mgl_wx.cpp
- at am__fastdepCXX_TRUE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_wx_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_wx_la-mgl_wx.lo -MD -MP -MF $(DEPDIR)/libmgl_wx_la-mgl_wx.Tpo -c -o libmgl_wx_la-mgl_wx.lo `test -f 'mgl_wx.cpp' || echo '$(srcdir)/'`mgl_wx.cpp
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/libmgl_wx_la-mgl_wx.Tpo $(DEPDIR)/libmgl_wx_la-mgl_wx.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='mgl_wx.cpp' object='libmgl_wx_la-mgl_wx.lo' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_wx_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_wx_la-mgl_wx.lo `test -f 'mgl_wx.cpp' || echo '$(srcdir)/'`mgl_wx.cpp
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	set x; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) check-am
-all-am: Makefile $(LTLIBRARIES)
-installdirs:
-	for dir in "$(DESTDIR)$(libdir)"; do \
-	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-	done
-install: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-	-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-clean: clean-am
-
-clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
-	mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-libLTLIBRARIES
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-libLTLIBRARIES
-
-.MAKE: all check install install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libLTLIBRARIES clean-libtool ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am \
-	install-libLTLIBRARIES install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-libLTLIBRARIES
-
-
- at USE_QT_TRUE@ # ------------- #
- at USE_QT_TRUE@ # DOCUMENTATION #
- at USE_QT_TRUE@ # ------------- #
-
-# --- #
-# MOC #
-# --- #
-
- at USE_QT_TRUE@.hh.moc.cpp:
- at USE_QT_TRUE@	$(MOC) $(QT_CPPFLAGS) $< -o $@
- at USE_QT_TRUE@.h.moc.cpp:
- at USE_QT_TRUE@	$(MOC) $(QT_CPPFLAGS) $< -o $@
-
- at USE_QT_TRUE@.hh.moc.cc:
- at USE_QT_TRUE@	$(MOC) $(QT_CPPFLAGS) $< -o $@
- at USE_QT_TRUE@.h.moc.cc:
- at USE_QT_TRUE@	$(MOC) $(QT_CPPFLAGS) $< -o $@
-
- at USE_QT_TRUE@.hh.moc.cxx:
- at USE_QT_TRUE@	$(MOC) $(QT_CPPFLAGS) $< -o $@
- at USE_QT_TRUE@.h.moc.cxx:
- at USE_QT_TRUE@	$(MOC) $(QT_CPPFLAGS) $< -o $@
-
- at USE_QT_TRUE@.hh.moc.C:
- at USE_QT_TRUE@	$(MOC) $(QT_CPPFLAGS) $< -o $@
- at USE_QT_TRUE@.h.moc.C:
- at USE_QT_TRUE@	$(MOC) $(QT_CPPFLAGS) $< -o $@
-
-# --- #
-# UIC #
-# --- #
-
- at USE_QT_TRUE@.ui.ui.hh:
- at USE_QT_TRUE@	$(UIC) $< -o $@
-
- at USE_QT_TRUE@.ui.ui.h:
- at USE_QT_TRUE@	$(UIC) $< -o $@
-
-# --- #
-# RCC #
-# --- #
-
- at USE_QT_TRUE@.qrc.qrc.cpp:
- at USE_QT_TRUE@	$(RCC) -name `echo "$<" | sed 's/\.qrc$$//'` $< -o $@
-
- at USE_QT_TRUE@.qrc.qrc.cc:
- at USE_QT_TRUE@	$(RCC) -name `echo "$<" | sed 's/\.qrc$$//'` $< -o $@
-
- at USE_QT_TRUE@.qrc.qrc.cxx:
- at USE_QT_TRUE@	$(RCC) -name `echo "$<" | sed 's/\.qrc$$//'` $< -o $@
-
- at USE_QT_TRUE@.qrc.qrc.C:
- at USE_QT_TRUE@	$(RCC) -name `echo "$<" | sed 's/\.qrc$$//'` $< -o $@
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..064d8e8
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,803 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.  Generated from Makefile.in by configure.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+pkgdatadir = $(datadir)/mathgl
+pkgincludedir = $(includedir)/mathgl
+pkglibdir = $(libdir)/mathgl
+pkglibexecdir = $(libexecdir)/mathgl
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-pc-linux-gnu
+host_triplet = x86_64-pc-linux-gnu
+am__append_1 = texinfo
+#doctargets += install-html install-pdf
+am__append_2 = install-html
+subdir = .
+DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in $(top_srcdir)/configure \
+	$(top_srcdir)/include/mgl/config.h.in AUTHORS COPYING \
+	ChangeLog INSTALL NEWS TODO config/config.guess \
+	config/config.sub config/depcomp config/install-sh \
+	config/ltmain.sh config/missing config/py-compile \
+	config/texinfo.tex
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
+	$(top_srcdir)/config/libtool.m4 \
+	$(top_srcdir)/config/ltoptions.m4 \
+	$(top_srcdir)/config/ltsugar.m4 \
+	$(top_srcdir)/config/ltversion.m4 \
+	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/include/mgl/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+	html-recursive info-recursive install-data-recursive \
+	install-dvi-recursive install-exec-recursive \
+	install-html-recursive install-info-recursive \
+	install-pdf-recursive install-ps-recursive install-recursive \
+	installcheck-recursive installdirs-recursive pdf-recursive \
+	ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
+  distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+	distdir dist dist-all distcheck
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = mgl lang widgets utils examples include texinfo
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+  { test ! -d "$(distdir)" \
+    || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+         && rm -fr "$(distdir)"; }; }
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
+DIST_ARCHIVES = $(distdir).tar.gz
+GZIP_ENV = --best
+distuninstallcheck_listfiles = find . -type f -print
+distcleancheck_listfiles = find . -type f -print
+ACLOCAL = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run aclocal-1.11
+AMTAR = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run tar
+AM_CXXFLAGS = -Wall -I/usr/include
+AR = ar
+AS = as
+AUTOCONF = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run automake-1.11
+AWK = gawk
+CC = x86_64-linux-gnu-gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -Wall -g -O2
+CPP = x86_64-linux-gnu-gcc -E
+CPPFLAGS = 
+CXX = x86_64-linux-gnu-g++
+CXXCPP = x86_64-linux-gnu-g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DLLTOOL = dlltool
+DSYMUTIL = 
+DUMPBIN = 
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /bin/grep -E
+EXEEXT = 
+FGREP = /bin/grep -F
+FLTK_FLAGS = -I/usr/include/freetype2 -g -O2 -D_THREAD_SAFE -D_REENTRANT
+FLTK_LIBS = -lfltk
+GIF_FLAGS = -DHAVE_GIF
+GIF_LIBS = -lgif
+GLUT_FLAGS = -DHAVE_GLUT
+GLUT_LIBS = -lglut
+GL_LIBS = -lGL
+GREP = /bin/grep
+GSL_FLAGS = -I/usr/include
+GSL_LIBS = -L/usr/lib -lgsl -lgslcblas -lm
+HAVE_SWIG = true
+HDF4_FLAGS = -DHAVE_HDF4
+HDF4_LIBS = -lmfhdf -ldf
+HDF5_FLAGS = -DHAVE_HDF5 -DH5_USE_16_API
+HDF5_LIBS = -lhdf5
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+JPEG_FLAGS = -DHAVE_JPEG
+JPEG_LIBS = -ljpeg
+LD = /usr/bin/ld -m elf_x86_64
+LDFLAGS = 
+LIBOBJS = 
+LIBS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIPO = 
+LN_S = ln -s
+LTLIBOBJS = 
+MAKEINFO = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run makeinfo
+MGL_AGE = 0
+MGL_CURRENT = 5
+MGL_RELEASE = 1.10
+MGL_REVISION = 0
+MKDIR_P = /bin/mkdir -p
+MOC = /usr/bin/moc-qt4
+NM = /usr/bin/nm -B
+NMEDIT = 
+OBJDUMP = objdump
+OBJEXT = o
+OCTAVE = octave-config
+OCTAVE_ARCH = x86_64-pc-linux-gnu-api-v37
+OCTAVE_INCFLAGS = -I/usr/include/octave-3.2.4
+OTOOL = 
+OTOOL64 = 
+PACKAGE = mathgl
+PACKAGE_BUGREPORT = mathgl.abalakin at gmail.com
+PACKAGE_NAME = mathgl
+PACKAGE_STRING = mathgl 1.10
+PACKAGE_TARNAME = mathgl
+PACKAGE_URL = 
+PACKAGE_VERSION = 1.10
+PATH_SEPARATOR = :
+PNG_LIBS = -lpng
+PTHREAD_FLAGS = -DHAVE_PTHREAD
+PTHREAD_LIBS = -lpthread
+PYTHON = /usr/bin/python
+PYTHON_EXEC_PREFIX = ${exec_prefix}
+PYTHON_HEADERS = -I/usr/include/python2.6 -I/usr/include/python2.6 -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes
+PYTHON_PLATFORM = linux2
+PYTHON_PREFIX = ${prefix}
+PYTHON_VERSION = 2.6
+QMAKE = /usr/bin/qmake-qt4
+QT_CFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(QT_DEFINES)
+QT_CPPFLAGS = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I.
+QT_CXXFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(QT_DEFINES)
+QT_DEFINES = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
+QT_INCPATH = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I.
+QT_LDFLAGS = 
+QT_LFLAGS = 
+QT_LIBS = -L/usr/lib -lQtGui -lQtCore -lpthread 
+QT_PATH = /usr/bin
+QT_VERSION = 4.6.3
+QT_VERSION_MAJOR = ok, looks like Qt 4
+RANLIB = ranlib
+RCC = /usr/bin/rcc
+SED = /bin/sed
+SET_MAKE = 
+SHELL = /bin/bash
+STRIP = strip
+TMPDIR = /tmp
+UIC = /usr/bin/uic-qt4
+VERSION = 1.10
+WX_FLAGS = -I/usr/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread
+WX_LIBS = -pthread   -lwx_gtk2u_richtext-2.8 -lwx_gtk2u_aui-2.8 -lwx_gtk2u_xrc-2.8 -lwx_gtk2u_qa-2.8 -lwx_gtk2u_html-2.8 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8 
+abs_builddir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11
+abs_srcdir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11
+abs_top_builddir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11
+abs_top_srcdir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11
+ac_ct_CC = 
+ac_ct_CXX = 
+ac_ct_DUMPBIN = 
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-pc-linux-gnu
+build_alias = x86_64-linux-gnu
+build_cpu = x86_64
+build_os = linux-gnu
+build_vendor = pc
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+host = x86_64-pc-linux-gnu
+host_alias = x86_64-linux-gnu
+host_cpu = x86_64
+host_os = linux-gnu
+host_vendor = pc
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${prefix}/share/info
+install_sh = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+lt_ECHO = echo
+mandir = ${prefix}/share/man
+mkdir_p = /bin/mkdir -p
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+pkgpyexecdir = ${pyexecdir}/mathgl
+pkgpythondir = ${pythondir}/mathgl
+prefix = /usr
+program_transform_name = s,x,x,
+psdir = ${docdir}
+pyexecdir = ${exec_prefix}/lib/python2.6/dist-packages
+pythondir = ${prefix}/lib/python2.6/dist-packages
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target_alias = 
+top_build_prefix = 
+top_builddir = .
+top_srcdir = .
+ACLOCAL_AMFLAGS = -I config
+SUBDIRS = mgl lang widgets utils examples include $(am__append_1)
+doctargets = $(am__append_2)
+mgldest = $(DESTDIR)$(datadir)/$(PACKAGE)/fonts
+all: all-recursive
+
+.SUFFIXES:
+am--refresh:
+	@:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
+	      $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    echo ' $(SHELL) ./config.status'; \
+	    $(SHELL) ./config.status;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	$(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	$(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+
+include/mgl/config.h: include/mgl/stamp-h1
+	@if test ! -f $@; then \
+	  rm -f include/mgl/stamp-h1; \
+	  $(MAKE) $(AM_MAKEFLAGS) include/mgl/stamp-h1; \
+	else :; fi
+
+include/mgl/stamp-h1: $(top_srcdir)/include/mgl/config.h.in $(top_builddir)/config.status
+	@rm -f include/mgl/stamp-h1
+	cd $(top_builddir) && $(SHELL) ./config.status include/mgl/config.h
+$(top_srcdir)/include/mgl/config.h.in:  $(am__configure_deps) 
+	($(am__cd) $(top_srcdir) && $(AUTOHEADER))
+	rm -f include/mgl/stamp-h1
+	touch $@
+
+distclean-hdr:
+	-rm -f include/mgl/config.h include/mgl/stamp-h1
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool config.lt
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+	@fail= failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+	fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+	@fail= failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	rev=''; for subdir in $$list; do \
+	  if test "$$subdir" = "."; then :; else \
+	    rev="$$subdir $$rev"; \
+	  fi; \
+	done; \
+	rev="$$rev ."; \
+	target=`echo $@ | sed s/-recursive//`; \
+	for subdir in $$rev; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done && test -z "$$fail"
+tags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	done
+ctags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	set x; \
+	here=`pwd`; \
+	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+	  include_option=--etags-include; \
+	  empty_fix=.; \
+	else \
+	  include_option=--include; \
+	  empty_fix=; \
+	fi; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test ! -f $$subdir/TAGS || \
+	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+	  fi; \
+	done; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	$(am__remove_distdir)
+	test -d "$(distdir)" || mkdir "$(distdir)"
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test -d "$(distdir)/$$subdir" \
+	    || $(MKDIR_P) "$(distdir)/$$subdir" \
+	    || exit 1; \
+	  fi; \
+	done
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+	    $(am__relativize); \
+	    new_distdir=$$reldir; \
+	    dir1=$$subdir; dir2="$(top_distdir)"; \
+	    $(am__relativize); \
+	    new_top_distdir=$$reldir; \
+	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+	    ($(am__cd) $$subdir && \
+	      $(MAKE) $(AM_MAKEFLAGS) \
+	        top_distdir="$$new_top_distdir" \
+	        distdir="$$new_distdir" \
+		am__remove_distdir=: \
+		am__skip_length_check=: \
+		am__skip_mode_fix=: \
+	        distdir) \
+	      || exit 1; \
+	  fi; \
+	done
+	-test -n "$(am__skip_mode_fix)" \
+	|| find "$(distdir)" -type d ! -perm -755 \
+		-exec chmod u+rwx,go+rx {} \; -o \
+	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
+	|| chmod -R a+r "$(distdir)"
+dist-gzip: distdir
+	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+	$(am__remove_distdir)
+
+dist-bzip2: distdir
+	tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+	$(am__remove_distdir)
+
+dist-lzma: distdir
+	tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
+	$(am__remove_distdir)
+
+dist-xz: distdir
+	tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
+	$(am__remove_distdir)
+
+dist-tarZ: distdir
+	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+	$(am__remove_distdir)
+
+dist-shar: distdir
+	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+	$(am__remove_distdir)
+
+dist-zip: distdir
+	-rm -f $(distdir).zip
+	zip -rq $(distdir).zip $(distdir)
+	$(am__remove_distdir)
+
+dist dist-all: distdir
+	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+	$(am__remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration.  Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+	case '$(DIST_ARCHIVES)' in \
+	*.tar.gz*) \
+	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
+	*.tar.bz2*) \
+	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
+	*.tar.lzma*) \
+	  lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
+	*.tar.xz*) \
+	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\
+	*.tar.Z*) \
+	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+	*.shar.gz*) \
+	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
+	*.zip*) \
+	  unzip $(distdir).zip ;;\
+	esac
+	chmod -R a-w $(distdir); chmod a+w $(distdir)
+	mkdir $(distdir)/_build
+	mkdir $(distdir)/_inst
+	chmod a-w $(distdir)
+	test -d $(distdir)/_build || exit 0; \
+	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+	  && am__cwd=`pwd` \
+	  && $(am__cd) $(distdir)/_build \
+	  && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+	    $(DISTCHECK_CONFIGURE_FLAGS) \
+	  && $(MAKE) $(AM_MAKEFLAGS) \
+	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
+	  && $(MAKE) $(AM_MAKEFLAGS) check \
+	  && $(MAKE) $(AM_MAKEFLAGS) install \
+	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+	        distuninstallcheck \
+	  && chmod -R a-w "$$dc_install_base" \
+	  && ({ \
+	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+	      } || { rm -rf "$$dc_destdir"; exit 1; }) \
+	  && rm -rf "$$dc_destdir" \
+	  && $(MAKE) $(AM_MAKEFLAGS) dist \
+	  && rm -rf $(DIST_ARCHIVES) \
+	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
+	  && cd "$$am__cwd" \
+	  || exit 1
+	$(am__remove_distdir)
+	@(echo "$(distdir) archives ready for distribution: "; \
+	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
+distuninstallcheck:
+	@$(am__cd) '$(distuninstallcheck_dir)' \
+	&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+	   || { echo "ERROR: files left after uninstall:" ; \
+	        if test -n "$(DESTDIR)"; then \
+	          echo "  (check DESTDIR support)"; \
+	        fi ; \
+	        $(distuninstallcheck_listfiles) ; \
+	        exit 1; } >&2
+distcleancheck: distclean
+	@if test '$(srcdir)' = . ; then \
+	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+	  exit 1 ; \
+	fi
+	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+	  || { echo "ERROR: files left in build directory after distclean:" ; \
+	       $(distcleancheck_listfiles) ; \
+	       exit 1; } >&2
+check-am: all-am
+check: check-recursive
+all-am: Makefile all-local
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool clean-local mostlyclean-am
+
+distclean: distclean-recursive
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-hdr \
+	distclean-libtool distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-data-local
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -rf $(top_srcdir)/autom4te.cache
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-local
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+	install-am install-strip tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+	all all-am all-local am--refresh check check-am clean \
+	clean-generic clean-libtool clean-local ctags ctags-recursive \
+	dist dist-all dist-bzip2 dist-gzip dist-lzma dist-shar \
+	dist-tarZ dist-xz dist-zip distcheck distclean \
+	distclean-generic distclean-hdr distclean-libtool \
+	distclean-tags distcleancheck distdir distuninstallcheck dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-data-local install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags tags-recursive uninstall uninstall-am \
+	uninstall-local
+
+
+install-data-local: $(doctargets)
+	mkdir -p $(mgldest)
+	cp -r $(top_srcdir)/fonts/*.vfm $(mgldest)
+
+uninstall-local:
+	rm -rf $(mgldest)
+
+clean-local:
+	find . -name '*~' -print0 | xargs -0 rm -f
+
+#all-local: html pdf
+all-local: html
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/Makefile.in b/Makefile.in
index 59db7cd..9aec9a4 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -46,11 +46,7 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
 	config/texinfo.tex
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
-	$(top_srcdir)/config/libtool.m4 \
-	$(top_srcdir)/config/ltoptions.m4 \
-	$(top_srcdir)/config/ltsugar.m4 \
-	$(top_srcdir)/config/ltversion.m4 \
-	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
diff --git a/aclocal.m4 b/aclocal.m4
index 77ec6db..846920e 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -19,6 +19,7972 @@ You have another version of autoconf.  It may work, but is not guaranteed to.
 If you have problems, you may need to regenerate the build system entirely.
 To do so, use the procedure documented by the package, typically `autoreconf'.])])
 
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+#
+#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#   Written by Gordon Matzigkeit, 1996
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+m4_define([_LT_COPYING], [dnl
+#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#   Written by Gordon Matzigkeit, 1996
+#
+#   This file is part of GNU Libtool.
+#
+# GNU Libtool 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.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool 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 GNU Libtool; see the file COPYING.  If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
+# obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+])
+
+# serial 56 LT_INIT
+
+
+# LT_PREREQ(VERSION)
+# ------------------
+# Complain and exit if this libtool version is less that VERSION.
+m4_defun([LT_PREREQ],
+[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
+       [m4_default([$3],
+		   [m4_fatal([Libtool version $1 or higher is required],
+		             63)])],
+       [$2])])
+
+
+# _LT_CHECK_BUILDDIR
+# ------------------
+# Complain if the absolute build directory name contains unusual characters
+m4_defun([_LT_CHECK_BUILDDIR],
+[case `pwd` in
+  *\ * | *\	*)
+    AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
+esac
+])
+
+
+# LT_INIT([OPTIONS])
+# ------------------
+AC_DEFUN([LT_INIT],
+[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
+AC_BEFORE([$0], [LT_LANG])dnl
+AC_BEFORE([$0], [LT_OUTPUT])dnl
+AC_BEFORE([$0], [LTDL_INIT])dnl
+m4_require([_LT_CHECK_BUILDDIR])dnl
+
+dnl Autoconf doesn't catch unexpanded LT_ macros by default:
+m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
+m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
+dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
+dnl unless we require an AC_DEFUNed macro:
+AC_REQUIRE([LTOPTIONS_VERSION])dnl
+AC_REQUIRE([LTSUGAR_VERSION])dnl
+AC_REQUIRE([LTVERSION_VERSION])dnl
+AC_REQUIRE([LTOBSOLETE_VERSION])dnl
+m4_require([_LT_PROG_LTMAIN])dnl
+
+dnl Parse OPTIONS
+_LT_SET_OPTIONS([$0], [$1])
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ltmain"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+_LT_SETUP
+
+# Only expand once:
+m4_define([LT_INIT])
+])# LT_INIT
+
+# Old names:
+AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
+AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
+dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
+
+
+# _LT_CC_BASENAME(CC)
+# -------------------
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+m4_defun([_LT_CC_BASENAME],
+[for cc_temp in $1""; do
+  case $cc_temp in
+    compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
+    distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+])
+
+
+# _LT_FILEUTILS_DEFAULTS
+# ----------------------
+# It is okay to use these file commands and assume they have been set
+# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
+m4_defun([_LT_FILEUTILS_DEFAULTS],
+[: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+])# _LT_FILEUTILS_DEFAULTS
+
+
+# _LT_SETUP
+# ---------
+m4_defun([_LT_SETUP],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+_LT_DECL([], [host_alias], [0], [The host system])dnl
+_LT_DECL([], [host], [0])dnl
+_LT_DECL([], [host_os], [0])dnl
+dnl
+_LT_DECL([], [build_alias], [0], [The build system])dnl
+_LT_DECL([], [build], [0])dnl
+_LT_DECL([], [build_os], [0])dnl
+dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([LT_PATH_LD])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+dnl
+AC_REQUIRE([AC_PROG_LN_S])dnl
+test -z "$LN_S" && LN_S="ln -s"
+_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
+dnl
+AC_REQUIRE([LT_CMD_MAX_LEN])dnl
+_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
+_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
+dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_CMD_RELOAD])dnl
+m4_require([_LT_CHECK_MAGIC_METHOD])dnl
+m4_require([_LT_CMD_OLD_ARCHIVE])dnl
+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+
+_LT_CONFIG_LIBTOOL_INIT([
+# See if we are running on zsh, and set the options which allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}" ; then
+   setopt NO_GLOB_SUBST
+fi
+])
+if test -n "${ZSH_VERSION+set}" ; then
+   setopt NO_GLOB_SUBST
+fi
+
+_LT_CHECK_OBJDIR
+
+m4_require([_LT_TAG_COMPILER])dnl
+_LT_PROG_ECHO_BACKSLASH
+
+case $host_os in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "X${COLLECT_NAMES+set}" != Xset; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([["`\\]]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+_LT_CC_BASENAME([$compiler])
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+    _LT_PATH_MAGIC
+  fi
+  ;;
+esac
+
+# Use C for the default configuration in the libtool script
+LT_SUPPORTED_TAG([CC])
+_LT_LANG_C_CONFIG
+_LT_LANG_DEFAULT_CONFIG
+_LT_CONFIG_COMMANDS
+])# _LT_SETUP
+
+
+# _LT_PROG_LTMAIN
+# ---------------
+# Note that this code is called both from `configure', and `config.status'
+# now that we use AC_CONFIG_COMMANDS to generate libtool.  Notably,
+# `config.status' has no value for ac_aux_dir unless we are using Automake,
+# so we pass a copy along to make sure it has a sensible value anyway.
+m4_defun([_LT_PROG_LTMAIN],
+[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
+_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
+ltmain="$ac_aux_dir/ltmain.sh"
+])# _LT_PROG_LTMAIN
+
+
+
+# So that we can recreate a full libtool script including additional
+# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
+# in macros and then make a single call at the end using the `libtool'
+# label.
+
+
+# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
+# ----------------------------------------
+# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+m4_define([_LT_CONFIG_LIBTOOL_INIT],
+[m4_ifval([$1],
+          [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
+                     [$1
+])])])
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_INIT])
+
+
+# _LT_CONFIG_LIBTOOL([COMMANDS])
+# ------------------------------
+# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+m4_define([_LT_CONFIG_LIBTOOL],
+[m4_ifval([$1],
+          [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
+                     [$1
+])])])
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
+
+
+# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
+# -----------------------------------------------------
+m4_defun([_LT_CONFIG_SAVE_COMMANDS],
+[_LT_CONFIG_LIBTOOL([$1])
+_LT_CONFIG_LIBTOOL_INIT([$2])
+])
+
+
+# _LT_FORMAT_COMMENT([COMMENT])
+# -----------------------------
+# Add leading comment marks to the start of each line, and a trailing
+# full-stop to the whole comment if one is not present already.
+m4_define([_LT_FORMAT_COMMENT],
+[m4_ifval([$1], [
+m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
+              [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
+)])
+
+
+
+
+
+# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
+# -------------------------------------------------------------------
+# CONFIGNAME is the name given to the value in the libtool script.
+# VARNAME is the (base) name used in the configure script.
+# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
+# VARNAME.  Any other value will be used directly.
+m4_define([_LT_DECL],
+[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
+    [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
+	[m4_ifval([$1], [$1], [$2])])
+    lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
+    m4_ifval([$4],
+	[lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
+    lt_dict_add_subkey([lt_decl_dict], [$2],
+	[tagged?], [m4_ifval([$5], [yes], [no])])])
+])
+
+
+# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
+# --------------------------------------------------------
+m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
+
+
+# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+m4_define([lt_decl_tag_varnames],
+[_lt_decl_filter([tagged?], [yes], $@)])
+
+
+# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
+# ---------------------------------------------------------
+m4_define([_lt_decl_filter],
+[m4_case([$#],
+  [0], [m4_fatal([$0: too few arguments: $#])],
+  [1], [m4_fatal([$0: too few arguments: $#: $1])],
+  [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
+  [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
+  [lt_dict_filter([lt_decl_dict], $@)])[]dnl
+])
+
+
+# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
+# --------------------------------------------------
+m4_define([lt_decl_quote_varnames],
+[_lt_decl_filter([value], [1], $@)])
+
+
+# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+m4_define([lt_decl_dquote_varnames],
+[_lt_decl_filter([value], [2], $@)])
+
+
+# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+m4_define([lt_decl_varnames_tagged],
+[m4_assert([$# <= 2])dnl
+_$0(m4_quote(m4_default([$1], [[, ]])),
+    m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
+    m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
+m4_define([_lt_decl_varnames_tagged],
+[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
+
+
+# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+m4_define([lt_decl_all_varnames],
+[_$0(m4_quote(m4_default([$1], [[, ]])),
+     m4_if([$2], [],
+	   m4_quote(lt_decl_varnames),
+	m4_quote(m4_shift($@))))[]dnl
+])
+m4_define([_lt_decl_all_varnames],
+[lt_join($@, lt_decl_varnames_tagged([$1],
+			lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
+])
+
+
+# _LT_CONFIG_STATUS_DECLARE([VARNAME])
+# ------------------------------------
+# Quote a variable value, and forward it to `config.status' so that its
+# declaration there will have the same value as in `configure'.  VARNAME
+# must have a single quote delimited value for this to work.
+m4_define([_LT_CONFIG_STATUS_DECLARE],
+[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`'])
+
+
+# _LT_CONFIG_STATUS_DECLARATIONS
+# ------------------------------
+# We delimit libtool config variables with single quotes, so when
+# we write them to config.status, we have to be sure to quote all
+# embedded single quotes properly.  In configure, this macro expands
+# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
+#
+#    <var>='`$ECHO "X$<var>" | $Xsed -e "$delay_single_quote_subst"`'
+m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
+[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
+    [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
+
+
+# _LT_LIBTOOL_TAGS
+# ----------------
+# Output comment and list of tags supported by the script
+m4_defun([_LT_LIBTOOL_TAGS],
+[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
+available_tags="_LT_TAGS"dnl
+])
+
+
+# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
+# -----------------------------------
+# Extract the dictionary values for VARNAME (optionally with TAG) and
+# expand to a commented shell variable setting:
+#
+#    # Some comment about what VAR is for.
+#    visible_name=$lt_internal_name
+m4_define([_LT_LIBTOOL_DECLARE],
+[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
+					   [description])))[]dnl
+m4_pushdef([_libtool_name],
+    m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
+m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
+    [0], [_libtool_name=[$]$1],
+    [1], [_libtool_name=$lt_[]$1],
+    [2], [_libtool_name=$lt_[]$1],
+    [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
+m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
+])
+
+
+# _LT_LIBTOOL_CONFIG_VARS
+# -----------------------
+# Produce commented declarations of non-tagged libtool config variables
+# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
+# script.  Tagged libtool config variables (even for the LIBTOOL CONFIG
+# section) are produced by _LT_LIBTOOL_TAG_VARS.
+m4_defun([_LT_LIBTOOL_CONFIG_VARS],
+[m4_foreach([_lt_var],
+    m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
+    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
+
+
+# _LT_LIBTOOL_TAG_VARS(TAG)
+# -------------------------
+m4_define([_LT_LIBTOOL_TAG_VARS],
+[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
+    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
+
+
+# _LT_TAGVAR(VARNAME, [TAGNAME])
+# ------------------------------
+m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
+
+
+# _LT_CONFIG_COMMANDS
+# -------------------
+# Send accumulated output to $CONFIG_STATUS.  Thanks to the lists of
+# variables for single and double quote escaping we saved from calls
+# to _LT_DECL, we can put quote escaped variables declarations
+# into `config.status', and then the shell code to quote escape them in
+# for loops in `config.status'.  Finally, any additional code accumulated
+# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
+m4_defun([_LT_CONFIG_COMMANDS],
+[AC_PROVIDE_IFELSE([LT_OUTPUT],
+	dnl If the libtool generation code has been placed in $CONFIG_LT,
+	dnl instead of duplicating it all over again into config.status,
+	dnl then we will have config.status run $CONFIG_LT later, so it
+	dnl needs to know what name is stored there:
+        [AC_CONFIG_COMMANDS([libtool],
+            [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
+    dnl If the libtool generation code is destined for config.status,
+    dnl expand the accumulated commands and init code now:
+    [AC_CONFIG_COMMANDS([libtool],
+        [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
+])#_LT_CONFIG_COMMANDS
+
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
+[
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+_LT_CONFIG_STATUS_DECLARATIONS
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# Quote evaled strings.
+for var in lt_decl_all_varnames([[ \
+]], lt_decl_quote_varnames); do
+    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    *[[\\\\\\\`\\"\\\$]]*)
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      ;;
+    *)
+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+      ;;
+    esac
+done
+
+# Double-quote double-evaled strings.
+for var in lt_decl_all_varnames([[ \
+]], lt_decl_dquote_varnames); do
+    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    *[[\\\\\\\`\\"\\\$]]*)
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      ;;
+    *)
+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+      ;;
+    esac
+done
+
+# Fix-up fallback echo if it was mangled by the above quoting rules.
+case \$lt_ECHO in
+*'\\\[$]0 --fallback-echo"')dnl "
+  lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\`
+  ;;
+esac
+
+_LT_OUTPUT_LIBTOOL_INIT
+])
+
+
+# LT_OUTPUT
+# ---------
+# This macro allows early generation of the libtool script (before
+# AC_OUTPUT is called), incase it is used in configure for compilation
+# tests.
+AC_DEFUN([LT_OUTPUT],
+[: ${CONFIG_LT=./config.lt}
+AC_MSG_NOTICE([creating $CONFIG_LT])
+cat >"$CONFIG_LT" <<_LTEOF
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate a libtool stub with the current configuration.
+
+lt_cl_silent=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_LTEOF
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+AS_SHELL_SANITIZE
+_AS_PREPARE
+
+exec AS_MESSAGE_FD>&1
+exec AS_MESSAGE_LOG_FD>>config.log
+{
+  echo
+  AS_BOX([Running $as_me.])
+} >&AS_MESSAGE_LOG_FD
+
+lt_cl_help="\
+\`$as_me' creates a local libtool stub from the current configuration,
+for use in further configure time tests before the real libtool is
+generated.
+
+Usage: $[0] [[OPTIONS]]
+
+  -h, --help      print this help, then exit
+  -V, --version   print version number, then exit
+  -q, --quiet     do not print progress messages
+  -d, --debug     don't remove temporary files
+
+Report bugs to <bug-libtool at gnu.org>."
+
+lt_cl_version="\
+m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
+m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
+configured by $[0], generated by m4_PACKAGE_STRING.
+
+Copyright (C) 2008 Free Software Foundation, Inc.
+This config.lt script is free software; the Free Software Foundation
+gives unlimited permision to copy, distribute and modify it."
+
+while test $[#] != 0
+do
+  case $[1] in
+    --version | --v* | -V )
+      echo "$lt_cl_version"; exit 0 ;;
+    --help | --h* | -h )
+      echo "$lt_cl_help"; exit 0 ;;
+    --debug | --d* | -d )
+      debug=: ;;
+    --quiet | --q* | --silent | --s* | -q )
+      lt_cl_silent=: ;;
+
+    -*) AC_MSG_ERROR([unrecognized option: $[1]
+Try \`$[0] --help' for more information.]) ;;
+
+    *) AC_MSG_ERROR([unrecognized argument: $[1]
+Try \`$[0] --help' for more information.]) ;;
+  esac
+  shift
+done
+
+if $lt_cl_silent; then
+  exec AS_MESSAGE_FD>/dev/null
+fi
+_LTEOF
+
+cat >>"$CONFIG_LT" <<_LTEOF
+_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
+_LTEOF
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+AC_MSG_NOTICE([creating $ofile])
+_LT_OUTPUT_LIBTOOL_COMMANDS
+AS_EXIT(0)
+_LTEOF
+chmod +x "$CONFIG_LT"
+
+# configure is writing to config.log, but config.lt does its own redirection,
+# appending to config.log, which fails on DOS, as config.log is still kept
+# open by configure.  Here we exec the FD to /dev/null, effectively closing
+# config.log, so it can be properly (re)opened and appended to by config.lt.
+if test "$no_create" != yes; then
+  lt_cl_success=:
+  test "$silent" = yes &&
+    lt_config_lt_args="$lt_config_lt_args --quiet"
+  exec AS_MESSAGE_LOG_FD>/dev/null
+  $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
+  exec AS_MESSAGE_LOG_FD>>config.log
+  $lt_cl_success || AS_EXIT(1)
+fi
+])# LT_OUTPUT
+
+
+# _LT_CONFIG(TAG)
+# ---------------
+# If TAG is the built-in tag, create an initial libtool script with a
+# default configuration from the untagged config vars.  Otherwise add code
+# to config.status for appending the configuration named by TAG from the
+# matching tagged config vars.
+m4_defun([_LT_CONFIG],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+_LT_CONFIG_SAVE_COMMANDS([
+  m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
+  m4_if(_LT_TAG, [C], [
+    # See if we are running on zsh, and set the options which allow our
+    # commands through without removal of \ escapes.
+    if test -n "${ZSH_VERSION+set}" ; then
+      setopt NO_GLOB_SUBST
+    fi
+
+    cfgfile="${ofile}T"
+    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+    $RM "$cfgfile"
+
+    cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+
+# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+_LT_COPYING
+_LT_LIBTOOL_TAGS
+
+# ### BEGIN LIBTOOL CONFIG
+_LT_LIBTOOL_CONFIG_VARS
+_LT_LIBTOOL_TAG_VARS
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+  case $host_os in
+  aix3*)
+    cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program.  For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+  COLLECT_NAMES=
+  export COLLECT_NAMES
+fi
+_LT_EOF
+    ;;
+  esac
+
+  _LT_PROG_LTMAIN
+
+  # We use sed instead of cat because bash on DJGPP gets confused if
+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+  # text mode, it properly converts lines to CR/LF.  This bash problem
+  # is reportedly fixed, but why not run on old versions too?
+  sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
+    || (rm -f "$cfgfile"; exit 1)
+
+  _LT_PROG_XSI_SHELLFNS
+
+  sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
+    || (rm -f "$cfgfile"; exit 1)
+
+  mv -f "$cfgfile" "$ofile" ||
+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+  chmod +x "$ofile"
+],
+[cat <<_LT_EOF >> "$ofile"
+
+dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
+dnl in a comment (ie after a #).
+# ### BEGIN LIBTOOL TAG CONFIG: $1
+_LT_LIBTOOL_TAG_VARS(_LT_TAG)
+# ### END LIBTOOL TAG CONFIG: $1
+_LT_EOF
+])dnl /m4_if
+],
+[m4_if([$1], [], [
+    PACKAGE='$PACKAGE'
+    VERSION='$VERSION'
+    TIMESTAMP='$TIMESTAMP'
+    RM='$RM'
+    ofile='$ofile'], [])
+])dnl /_LT_CONFIG_SAVE_COMMANDS
+])# _LT_CONFIG
+
+
+# LT_SUPPORTED_TAG(TAG)
+# ---------------------
+# Trace this macro to discover what tags are supported by the libtool
+# --tag option, using:
+#    autoconf --trace 'LT_SUPPORTED_TAG:$1'
+AC_DEFUN([LT_SUPPORTED_TAG], [])
+
+
+# C support is built-in for now
+m4_define([_LT_LANG_C_enabled], [])
+m4_define([_LT_TAGS], [])
+
+
+# LT_LANG(LANG)
+# -------------
+# Enable libtool support for the given language if not already enabled.
+AC_DEFUN([LT_LANG],
+[AC_BEFORE([$0], [LT_OUTPUT])dnl
+m4_case([$1],
+  [C],			[_LT_LANG(C)],
+  [C++],		[_LT_LANG(CXX)],
+  [Java],		[_LT_LANG(GCJ)],
+  [Fortran 77],		[_LT_LANG(F77)],
+  [Fortran],		[_LT_LANG(FC)],
+  [Windows Resource],	[_LT_LANG(RC)],
+  [m4_ifdef([_LT_LANG_]$1[_CONFIG],
+    [_LT_LANG($1)],
+    [m4_fatal([$0: unsupported language: "$1"])])])dnl
+])# LT_LANG
+
+
+# _LT_LANG(LANGNAME)
+# ------------------
+m4_defun([_LT_LANG],
+[m4_ifdef([_LT_LANG_]$1[_enabled], [],
+  [LT_SUPPORTED_TAG([$1])dnl
+  m4_append([_LT_TAGS], [$1 ])dnl
+  m4_define([_LT_LANG_]$1[_enabled], [])dnl
+  _LT_LANG_$1_CONFIG($1)])dnl
+])# _LT_LANG
+
+
+# _LT_LANG_DEFAULT_CONFIG
+# -----------------------
+m4_defun([_LT_LANG_DEFAULT_CONFIG],
+[AC_PROVIDE_IFELSE([AC_PROG_CXX],
+  [LT_LANG(CXX)],
+  [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
+
+AC_PROVIDE_IFELSE([AC_PROG_F77],
+  [LT_LANG(F77)],
+  [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
+
+AC_PROVIDE_IFELSE([AC_PROG_FC],
+  [LT_LANG(FC)],
+  [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
+
+dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
+dnl pulling things in needlessly.
+AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+  [LT_LANG(GCJ)],
+  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+    [LT_LANG(GCJ)],
+    [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
+      [LT_LANG(GCJ)],
+      [m4_ifdef([AC_PROG_GCJ],
+	[m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
+       m4_ifdef([A][M_PROG_GCJ],
+	[m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
+       m4_ifdef([LT_PROG_GCJ],
+	[m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
+
+AC_PROVIDE_IFELSE([LT_PROG_RC],
+  [LT_LANG(RC)],
+  [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
+])# _LT_LANG_DEFAULT_CONFIG
+
+# Obsolete macros:
+AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
+AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
+AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
+AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
+dnl AC_DEFUN([AC_LIBTOOL_F77], [])
+dnl AC_DEFUN([AC_LIBTOOL_FC], [])
+dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
+
+
+# _LT_TAG_COMPILER
+# ----------------
+m4_defun([_LT_TAG_COMPILER],
+[AC_REQUIRE([AC_PROG_CC])dnl
+
+_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
+_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
+_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
+_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+])# _LT_TAG_COMPILER
+
+
+# _LT_COMPILER_BOILERPLATE
+# ------------------------
+# Check for compiler boilerplate output or warnings with
+# the simple compiler test code.
+m4_defun([_LT_COMPILER_BOILERPLATE],
+[m4_require([_LT_DECL_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+])# _LT_COMPILER_BOILERPLATE
+
+
+# _LT_LINKER_BOILERPLATE
+# ----------------------
+# Check for linker boilerplate output or warnings with
+# the simple link test code.
+m4_defun([_LT_LINKER_BOILERPLATE],
+[m4_require([_LT_DECL_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+])# _LT_LINKER_BOILERPLATE
+
+# _LT_REQUIRED_DARWIN_CHECKS
+# -------------------------
+m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
+  case $host_os in
+    rhapsody* | darwin*)
+    AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
+    AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
+    AC_CHECK_TOOL([LIPO], [lipo], [:])
+    AC_CHECK_TOOL([OTOOL], [otool], [:])
+    AC_CHECK_TOOL([OTOOL64], [otool64], [:])
+    _LT_DECL([], [DSYMUTIL], [1],
+      [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
+    _LT_DECL([], [NMEDIT], [1],
+      [Tool to change global to local symbols on Mac OS X])
+    _LT_DECL([], [LIPO], [1],
+      [Tool to manipulate fat objects and archives on Mac OS X])
+    _LT_DECL([], [OTOOL], [1],
+      [ldd/readelf like tool for Mach-O binaries on Mac OS X])
+    _LT_DECL([], [OTOOL64], [1],
+      [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
+
+    AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
+      [lt_cv_apple_cc_single_mod=no
+      if test -z "${LT_MULTI_MODULE}"; then
+	# By default we will add the -single_module flag. You can override
+	# by either setting the environment variable LT_MULTI_MODULE
+	# non-empty at configure time, or by adding -multi_module to the
+	# link flags.
+	rm -rf libconftest.dylib*
+	echo "int foo(void){return 1;}" > conftest.c
+	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
+	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+        _lt_result=$?
+	if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+	  lt_cv_apple_cc_single_mod=yes
+	else
+	  cat conftest.err >&AS_MESSAGE_LOG_FD
+	fi
+	rm -rf libconftest.dylib*
+	rm -f conftest.*
+      fi])
+    AC_CACHE_CHECK([for -exported_symbols_list linker flag],
+      [lt_cv_ld_exported_symbols_list],
+      [lt_cv_ld_exported_symbols_list=no
+      save_LDFLAGS=$LDFLAGS
+      echo "_main" > conftest.sym
+      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+      AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+	[lt_cv_ld_exported_symbols_list=yes],
+	[lt_cv_ld_exported_symbols_list=no])
+	LDFLAGS="$save_LDFLAGS"
+    ])
+    case $host_os in
+    rhapsody* | darwin1.[[012]])
+      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+    darwin1.*)
+      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+    darwin*) # darwin 5.x on
+      # if running on 10.5 or later, the deployment target defaults
+      # to the OS version, if on x86, and 10.4, the deployment
+      # target defaults to 10.4. Don't you love it?
+      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+	10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
+	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+	10.[[012]]*)
+	  _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+	10.*)
+	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+      esac
+    ;;
+  esac
+    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+      _lt_dar_single_mod='$single_module'
+    fi
+    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+    else
+      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    fi
+    if test "$DSYMUTIL" != ":"; then
+      _lt_dsymutil='~$DSYMUTIL $lib || :'
+    else
+      _lt_dsymutil=
+    fi
+    ;;
+  esac
+])
+
+
+# _LT_DARWIN_LINKER_FEATURES
+# --------------------------
+# Checks for linker and compiler features on darwin
+m4_defun([_LT_DARWIN_LINKER_FEATURES],
+[
+  m4_require([_LT_REQUIRED_DARWIN_CHECKS])
+  _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+  _LT_TAGVAR(hardcode_direct, $1)=no
+  _LT_TAGVAR(hardcode_automatic, $1)=yes
+  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+  _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+  _LT_TAGVAR(link_all_deplibs, $1)=yes
+  _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
+  case $cc_basename in
+     ifort*) _lt_dar_can_shared=yes ;;
+     *) _lt_dar_can_shared=$GCC ;;
+  esac
+  if test "$_lt_dar_can_shared" = "yes"; then
+    output_verbose_link_cmd=echo
+    _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+    _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+    _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+    m4_if([$1], [CXX],
+[   if test "$lt_cv_apple_cc_single_mod" != "yes"; then
+      _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
+      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
+    fi
+],[])
+  else
+  _LT_TAGVAR(ld_shlibs, $1)=no
+  fi
+])
+
+# _LT_SYS_MODULE_PATH_AIX
+# -----------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+m4_defun([_LT_SYS_MODULE_PATH_AIX],
+[m4_require([_LT_DECL_SED])dnl
+AC_LINK_IFELSE(AC_LANG_PROGRAM,[
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi],[])
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+])# _LT_SYS_MODULE_PATH_AIX
+
+
+# _LT_SHELL_INIT(ARG)
+# -------------------
+m4_define([_LT_SHELL_INIT],
+[ifdef([AC_DIVERSION_NOTICE],
+	     [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
+	 [AC_DIVERT_PUSH(NOTICE)])
+$1
+AC_DIVERT_POP
+])# _LT_SHELL_INIT
+
+
+# _LT_PROG_ECHO_BACKSLASH
+# -----------------------
+# Add some code to the start of the generated configure script which
+# will find an echo command which doesn't interpret backslashes.
+m4_defun([_LT_PROG_ECHO_BACKSLASH],
+[_LT_SHELL_INIT([
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$lt_ECHO in
+X*--fallback-echo)
+  # Remove one level of quotation (which was required for Make).
+  ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
+  ;;
+esac
+
+ECHO=${lt_ECHO-echo}
+if test "X[$]1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X[$]1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
+  # Yippee, $ECHO works!
+  :
+else
+  # Restart under the correct shell.
+  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
+fi
+
+if test "X[$]1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<_LT_EOF
+[$]*
+_LT_EOF
+  exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test -z "$lt_ECHO"; then
+  if test "X${echo_test_string+set}" != Xset; then
+    # find a string as large as possible, as long as the shell can cope with it
+    for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
+      # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+      if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
+	 { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
+      then
+        break
+      fi
+    done
+  fi
+
+  if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
+     echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
+     test "X$echo_testing_string" = "X$echo_test_string"; then
+    :
+  else
+    # The Solaris, AIX, and Digital Unix default echo programs unquote
+    # backslashes.  This makes it impossible to quote backslashes using
+    #   echo "$something" | sed 's/\\/\\\\/g'
+    #
+    # So, first we look for a working echo in the user's PATH.
+
+    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    for dir in $PATH /usr/ucb; do
+      IFS="$lt_save_ifs"
+      if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+         test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+         echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+         test "X$echo_testing_string" = "X$echo_test_string"; then
+        ECHO="$dir/echo"
+        break
+      fi
+    done
+    IFS="$lt_save_ifs"
+
+    if test "X$ECHO" = Xecho; then
+      # We didn't find a better echo, so look for alternatives.
+      if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
+         echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
+         test "X$echo_testing_string" = "X$echo_test_string"; then
+        # This shell has a builtin print -r that does the trick.
+        ECHO='print -r'
+      elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
+	   test "X$CONFIG_SHELL" != X/bin/ksh; then
+        # If we have ksh, try running configure again with it.
+        ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+        export ORIGINAL_CONFIG_SHELL
+        CONFIG_SHELL=/bin/ksh
+        export CONFIG_SHELL
+        exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
+      else
+        # Try using printf.
+        ECHO='printf %s\n'
+        if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
+	   echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	  # Cool, printf works
+	  :
+        elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+	     test "X$echo_testing_string" = 'X\t' &&
+	     echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	     test "X$echo_testing_string" = "X$echo_test_string"; then
+	  CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+	  export CONFIG_SHELL
+	  SHELL="$CONFIG_SHELL"
+	  export SHELL
+	  ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
+        elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+	     test "X$echo_testing_string" = 'X\t' &&
+	     echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	     test "X$echo_testing_string" = "X$echo_test_string"; then
+	  ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
+        else
+	  # maybe with a smaller string...
+	  prev=:
+
+	  for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
+	    if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
+	    then
+	      break
+	    fi
+	    prev="$cmd"
+	  done
+
+	  if test "$prev" != 'sed 50q "[$]0"'; then
+	    echo_test_string=`eval $prev`
+	    export echo_test_string
+	    exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
+	  else
+	    # Oops.  We lost completely, so just stick with echo.
+	    ECHO=echo
+	  fi
+        fi
+      fi
+    fi
+  fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+lt_ECHO=$ECHO
+if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
+   lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
+fi
+
+AC_SUBST(lt_ECHO)
+])
+_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
+_LT_DECL([], [ECHO], [1],
+    [An echo program that does not interpret backslashes])
+])# _LT_PROG_ECHO_BACKSLASH
+
+
+# _LT_ENABLE_LOCK
+# ---------------
+m4_defun([_LT_ENABLE_LOCK],
+[AC_ARG_ENABLE([libtool-lock],
+  [AS_HELP_STRING([--disable-libtool-lock],
+    [avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.$ac_objext` in
+      *ELF-32*)
+	HPUX_IA64_MODE="32"
+	;;
+      *ELF-64*)
+	HPUX_IA64_MODE="64"
+	;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+*-*-irix6*)
+  # Find out which ABI we are using.
+  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    if test "$lt_cv_prog_gnu_ld" = yes; then
+      case `/usr/bin/file conftest.$ac_objext` in
+	*32-bit*)
+	  LD="${LD-ld} -melf32bsmip"
+	  ;;
+	*N32*)
+	  LD="${LD-ld} -melf32bmipn32"
+	  ;;
+	*64-bit*)
+	  LD="${LD-ld} -melf64bmip"
+	;;
+      esac
+    else
+      case `/usr/bin/file conftest.$ac_objext` in
+	*32-bit*)
+	  LD="${LD-ld} -32"
+	  ;;
+	*N32*)
+	  LD="${LD-ld} -n32"
+	  ;;
+	*64-bit*)
+	  LD="${LD-ld} -64"
+	  ;;
+      esac
+    fi
+  fi
+  rm -rf conftest*
+  ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+      *32-bit*)
+	case $host in
+	  x86_64-*kfreebsd*-gnu)
+	    LD="${LD-ld} -m elf_i386_fbsd"
+	    ;;
+	  x86_64-*linux*)
+	    LD="${LD-ld} -m elf_i386"
+	    ;;
+	  ppc64-*linux*|powerpc64-*linux*)
+	    LD="${LD-ld} -m elf32ppclinux"
+	    ;;
+	  s390x-*linux*)
+	    LD="${LD-ld} -m elf_s390"
+	    ;;
+	  sparc64-*linux*)
+	    LD="${LD-ld} -m elf32_sparc"
+	    ;;
+	esac
+	;;
+      *64-bit*)
+	case $host in
+	  x86_64-*kfreebsd*-gnu)
+	    LD="${LD-ld} -m elf_x86_64_fbsd"
+	    ;;
+	  x86_64-*linux*)
+	    LD="${LD-ld} -m elf_x86_64"
+	    ;;
+	  ppc*-*linux*|powerpc*-*linux*)
+	    LD="${LD-ld} -m elf64ppc"
+	    ;;
+	  s390*-*linux*|s390*-*tpf*)
+	    LD="${LD-ld} -m elf64_s390"
+	    ;;
+	  sparc*-*linux*)
+	    LD="${LD-ld} -m elf64_sparc"
+	    ;;
+	esac
+	;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -belf"
+  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+    [AC_LANG_PUSH(C)
+     AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+     AC_LANG_POP])
+  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS="$SAVE_CFLAGS"
+  fi
+  ;;
+sparc*-*solaris*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+    *64-bit*)
+      case $lt_cv_prog_gnu_ld in
+      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      *)
+	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+	  LD="${LD-ld} -64"
+	fi
+	;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+esac
+
+need_locks="$enable_libtool_lock"
+])# _LT_ENABLE_LOCK
+
+
+# _LT_CMD_OLD_ARCHIVE
+# -------------------
+m4_defun([_LT_CMD_OLD_ARCHIVE],
+[AC_CHECK_TOOL(AR, ar, false)
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+_LT_DECL([], [AR], [1], [The archiver])
+_LT_DECL([], [AR_FLAGS], [1])
+
+AC_CHECK_TOOL(STRIP, strip, :)
+test -z "$STRIP" && STRIP=:
+_LT_DECL([], [STRIP], [1], [A symbol stripping program])
+
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+test -z "$RANLIB" && RANLIB=:
+_LT_DECL([], [RANLIB], [1],
+    [Commands used to install an old-style archive])
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+  case $host_os in
+  openbsd*)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    ;;
+  *)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    ;;
+  esac
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+_LT_DECL([], [old_postinstall_cmds], [2])
+_LT_DECL([], [old_postuninstall_cmds], [2])
+_LT_TAGDECL([], [old_archive_cmds], [2],
+    [Commands used to build an old-style archive])
+])# _LT_CMD_OLD_ARCHIVE
+
+
+# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([_LT_COMPILER_OPTION],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$3"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       $2=yes
+     fi
+   fi
+   $RM conftest*
+])
+
+if test x"[$]$2" = xyes; then
+    m4_if([$5], , :, [$5])
+else
+    m4_if([$6], , :, [$6])
+fi
+])# _LT_COMPILER_OPTION
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
+
+
+# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#                  [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------
+# Check whether the given linker option works
+AC_DEFUN([_LT_LINKER_OPTION],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $3"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&AS_MESSAGE_LOG_FD
+       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         $2=yes
+       fi
+     else
+       $2=yes
+     fi
+   fi
+   $RM -r conftest*
+   LDFLAGS="$save_LDFLAGS"
+])
+
+if test x"[$]$2" = xyes; then
+    m4_if([$4], , :, [$4])
+else
+    m4_if([$5], , :, [$5])
+fi
+])# _LT_LINKER_OPTION
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
+
+
+# LT_CMD_MAX_LEN
+#---------------
+AC_DEFUN([LT_CMD_MAX_LEN],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+  i=0
+  teststring="ABCD"
+
+  case $build_os in
+  msdosdjgpp*)
+    # On DJGPP, this test can blow up pretty badly due to problems in libc
+    # (any single argument exceeding 2000 bytes causes a buffer overrun
+    # during glob expansion).  Even if it were fixed, the result of this
+    # check would be larger than it should be.
+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+    ;;
+
+  gnu*)
+    # Under GNU Hurd, this test is not required because there is
+    # no limit to the length of command line arguments.
+    # Libtool will interpret -1 as no limit whatsoever
+    lt_cv_sys_max_cmd_len=-1;
+    ;;
+
+  cygwin* | mingw* | cegcc*)
+    # On Win9x/ME, this test blows up -- it succeeds, but takes
+    # about 5 minutes as the teststring grows exponentially.
+    # Worse, since 9x/ME are not pre-emptively multitasking,
+    # you end up with a "frozen" computer, even though with patience
+    # the test eventually succeeds (with a max line length of 256k).
+    # Instead, let's just punt: use the minimum linelength reported by
+    # all of the supported platforms: 8192 (on NT/2K/XP).
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  amigaos*)
+    # On AmigaOS with pdksh, this test takes hours, literally.
+    # So we just punt and use a minimum line length of 8192.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+    # This has been around since 386BSD, at least.  Likely further.
+    if test -x /sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+    elif test -x /usr/sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+    else
+      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
+    fi
+    # And add a safety zone
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    ;;
+
+  interix*)
+    # We know the value 262144 and hardcode it with a safety zone (like BSD)
+    lt_cv_sys_max_cmd_len=196608
+    ;;
+
+  osf*)
+    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+    # nice to cause kernel panics so lets avoid the loop below.
+    # First set a reasonable default.
+    lt_cv_sys_max_cmd_len=16384
+    #
+    if test -x /sbin/sysconfig; then
+      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+        *1*) lt_cv_sys_max_cmd_len=-1 ;;
+      esac
+    fi
+    ;;
+  sco3.2v5*)
+    lt_cv_sys_max_cmd_len=102400
+    ;;
+  sysv5* | sco5v6* | sysv4.2uw2*)
+    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+    if test -n "$kargmax"; then
+      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[	 ]]//'`
+    else
+      lt_cv_sys_max_cmd_len=32768
+    fi
+    ;;
+  *)
+    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+    if test -n "$lt_cv_sys_max_cmd_len"; then
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    else
+      # Make teststring a little bigger before we do anything with it.
+      # a 1K string should be a reasonable start.
+      for i in 1 2 3 4 5 6 7 8 ; do
+        teststring=$teststring$teststring
+      done
+      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+      # If test is not a shell built-in, we'll probably end up computing a
+      # maximum length that is only half of the actual maximum length, but
+      # we can't tell.
+      while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
+	         = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
+	      test $i != 17 # 1/2 MB should be enough
+      do
+        i=`expr $i + 1`
+        teststring=$teststring$teststring
+      done
+      # Only check the string length outside the loop.
+      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+      teststring=
+      # Add a significant safety factor because C++ compilers can tack on
+      # massive amounts of additional arguments before passing them to the
+      # linker.  It appears as though 1/2 is a usable value.
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    fi
+    ;;
+  esac
+])
+if test -n $lt_cv_sys_max_cmd_len ; then
+  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+else
+  AC_MSG_RESULT(none)
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+_LT_DECL([], [max_cmd_len], [0],
+    [What is the maximum length of a command?])
+])# LT_CMD_MAX_LEN
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
+
+
+# _LT_HEADER_DLFCN
+# ----------------
+m4_defun([_LT_HEADER_DLFCN],
+[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
+])# _LT_HEADER_DLFCN
+
+
+# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+#                      ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ----------------------------------------------------------------
+m4_defun([_LT_TRY_DLOPEN_SELF],
+[m4_require([_LT_HEADER_DLFCN])dnl
+if test "$cross_compiling" = yes; then :
+  [$4]
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<_LT_EOF
+[#line __oline__ "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+  else
+    puts (dlerror ());
+
+  return status;
+}]
+_LT_EOF
+  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) $1 ;;
+      x$lt_dlneed_uscore) $2 ;;
+      x$lt_dlunknown|x*) $3 ;;
+    esac
+  else :
+    # compilation failed
+    $3
+  fi
+fi
+rm -fr conftest*
+])# _LT_TRY_DLOPEN_SELF
+
+
+# LT_SYS_DLOPEN_SELF
+# ------------------
+AC_DEFUN([LT_SYS_DLOPEN_SELF],
+[m4_require([_LT_HEADER_DLFCN])dnl
+if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32* | cegcc*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+    ;;
+
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+    ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ])
+    ;;
+
+  *)
+    AC_CHECK_FUNC([shl_load],
+	  [lt_cv_dlopen="shl_load"],
+      [AC_CHECK_LIB([dld], [shl_load],
+	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
+	[AC_CHECK_FUNC([dlopen],
+	      [lt_cv_dlopen="dlopen"],
+	  [AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+	    [AC_CHECK_LIB([svld], [dlopen],
+		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+	      [AC_CHECK_LIB([dld], [dld_link],
+		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
+	      ])
+	    ])
+	  ])
+	])
+      ])
+    ;;
+  esac
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS="$LDFLAGS"
+    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    AC_CACHE_CHECK([whether a program can dlopen itself],
+	  lt_cv_dlopen_self, [dnl
+	  _LT_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+    ])
+
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+	  lt_cv_dlopen_self_static, [dnl
+	  _LT_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
+      ])
+    fi
+
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+_LT_DECL([dlopen_support], [enable_dlopen], [0],
+	 [Whether dlopen is supported])
+_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
+	 [Whether dlopen of programs is supported])
+_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
+	 [Whether dlopen of statically linked programs is supported])
+])# LT_SYS_DLOPEN_SELF
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
+
+
+# _LT_COMPILER_C_O([TAGNAME])
+# ---------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler.
+# This macro does not hard code the compiler like AC_PROG_CC_C_O.
+m4_defun([_LT_COMPILER_C_O],
+[m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+   $RM -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+     fi
+   fi
+   chmod u+w . 2>&AS_MESSAGE_LOG_FD
+   $RM conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+   $RM out/* && rmdir out
+   cd ..
+   $RM -r conftest
+   $RM conftest*
+])
+_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
+	[Does compiler simultaneously support -c and -o options?])
+])# _LT_COMPILER_C_O
+
+
+# _LT_COMPILER_FILE_LOCKS([TAGNAME])
+# ----------------------------------
+# Check to see if we can do hard links to lock some files if needed
+m4_defun([_LT_COMPILER_FILE_LOCKS],
+[m4_require([_LT_ENABLE_LOCK])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+_LT_COMPILER_C_O([$1])
+
+hard_links="nottested"
+if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  AC_MSG_CHECKING([if we can lock with hard links])
+  hard_links=yes
+  $RM conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  AC_MSG_RESULT([$hard_links])
+  if test "$hard_links" = no; then
+    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
+])# _LT_COMPILER_FILE_LOCKS
+
+
+# _LT_CHECK_OBJDIR
+# ----------------
+m4_defun([_LT_CHECK_OBJDIR],
+[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+[rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  lt_cv_objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null])
+objdir=$lt_cv_objdir
+_LT_DECL([], [objdir], [0],
+         [The name of the directory that contains temporary libtool files])dnl
+m4_pattern_allow([LT_OBJDIR])dnl
+AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/",
+  [Define to the sub-directory in which libtool stores uninstalled libraries.])
+])# _LT_CHECK_OBJDIR
+
+
+# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
+# --------------------------------------
+# Check hardcoding attributes.
+m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
+[AC_MSG_CHECKING([how to hardcode library paths into programs])
+_LT_TAGVAR(hardcode_action, $1)=
+if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
+   test -n "$_LT_TAGVAR(runpath_var, $1)" ||
+   test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
+
+  # We can hardcode non-existent directories.
+  if test "$_LT_TAGVAR(hardcode_direct, $1)" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
+     test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then
+    # Linking always hardcodes the temporary library directory.
+    _LT_TAGVAR(hardcode_action, $1)=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    _LT_TAGVAR(hardcode_action, $1)=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  _LT_TAGVAR(hardcode_action, $1)=unsupported
+fi
+AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
+
+if test "$_LT_TAGVAR(hardcode_action, $1)" = relink ||
+   test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+_LT_TAGDECL([], [hardcode_action], [0],
+    [How to hardcode a shared library path into an executable])
+])# _LT_LINKER_HARDCODE_LIBPATH
+
+
+# _LT_CMD_STRIPLIB
+# ----------------
+m4_defun([_LT_CMD_STRIPLIB],
+[m4_require([_LT_DECL_EGREP])
+striplib=
+old_striplib=
+AC_MSG_CHECKING([whether stripping libraries is possible])
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  AC_MSG_RESULT([yes])
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+  darwin*)
+    if test -n "$STRIP" ; then
+      striplib="$STRIP -x"
+      old_striplib="$STRIP -S"
+      AC_MSG_RESULT([yes])
+    else
+      AC_MSG_RESULT([no])
+    fi
+    ;;
+  *)
+    AC_MSG_RESULT([no])
+    ;;
+  esac
+fi
+_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
+_LT_DECL([], [striplib], [1])
+])# _LT_CMD_STRIPLIB
+
+
+# _LT_SYS_DYNAMIC_LINKER([TAG])
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+m4_defun([_LT_SYS_DYNAMIC_LINKER],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_OBJDUMP])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_MSG_CHECKING([dynamic linker characteristics])
+m4_if([$1],
+	[], [
+if test "$GCC" = yes; then
+  case $host_os in
+    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+    *) lt_awk_arg="/^libraries:/" ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+  if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
+  else
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+  fi
+  # Ok, now we have the path, separated by spaces, we can step through it
+  # and add multilib dir if necessary.
+  lt_tmp_lt_search_path_spec=
+  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  for lt_sys_path in $lt_search_path_spec; do
+    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+    else
+      test -d "$lt_sys_path" && \
+	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+    fi
+  done
+  lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
+BEGIN {RS=" "; FS="/|\n";} {
+  lt_foo="";
+  lt_count=0;
+  for (lt_i = NF; lt_i > 0; lt_i--) {
+    if ($lt_i != "" && $lt_i != ".") {
+      if ($lt_i == "..") {
+        lt_count++;
+      } else {
+        if (lt_count == 0) {
+          lt_foo="/" $lt_i lt_foo;
+        } else {
+          lt_count--;
+        }
+      }
+    }
+  }
+  if (lt_foo != "") { lt_freq[[lt_foo]]++; }
+  if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
+}'`
+  sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi])
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix[[4-9]]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[[01]] | aix4.[[01]].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  case $host_cpu in
+  powerpc)
+    # Since July 2007 AmigaOS4 officially supports .so libraries.
+    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    ;;
+  m68k)
+    library_names_spec='$libname.ixlibrary $libname.a'
+    # Create ${libname}_ixlibrary.a entries in /sys/libs.
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    ;;
+  esac
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[[45]]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname~
+      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+      fi'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw* | cegcc*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+m4_if([$1], [],[
+  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[[123]]*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[[01]]* | freebsdelf3.[[01]]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
+  freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  *) # from 4.6 on, and DragonFly
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  hppa*64*)
+    shrext_cmds='.sl'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+interix[[3-9]]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # Some binutils ld are patched to set DT_RUNPATH
+  save_LDFLAGS=$LDFLAGS
+  save_libdir=$libdir
+  eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
+       LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
+  AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+    [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
+       [shlibpath_overrides_runpath=yes])])
+  LDFLAGS=$save_LDFLAGS
+  libdir=$save_libdir
+
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+netbsdelf*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='NetBSD ld.elf_so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+*nto* | *qnx*)
+  version_type=qnx
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='ldqnx.so'
+  ;;
+
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
+    *)				need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[[89]] | openbsd2.[[89]].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+rdos*)
+  dynamic_linker=no
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+tpf*)
+  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+AC_MSG_RESULT([$dynamic_linker])
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+fi
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+fi
+
+_LT_DECL([], [variables_saved_for_relink], [1],
+    [Variables whose values should be saved in libtool wrapper scripts and
+    restored at link time])
+_LT_DECL([], [need_lib_prefix], [0],
+    [Do we need the "lib" prefix for modules?])
+_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
+_LT_DECL([], [version_type], [0], [Library versioning type])
+_LT_DECL([], [runpath_var], [0],  [Shared library runtime path variable])
+_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
+_LT_DECL([], [shlibpath_overrides_runpath], [0],
+    [Is shlibpath searched before the hard-coded library search path?])
+_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
+_LT_DECL([], [library_names_spec], [1],
+    [[List of archive names.  First name is the real one, the rest are links.
+    The last name is the one that the linker finds with -lNAME]])
+_LT_DECL([], [soname_spec], [1],
+    [[The coded name of the library, if different from the real name]])
+_LT_DECL([], [postinstall_cmds], [2],
+    [Command to use after installation of a shared archive])
+_LT_DECL([], [postuninstall_cmds], [2],
+    [Command to use after uninstallation of a shared archive])
+_LT_DECL([], [finish_cmds], [2],
+    [Commands used to finish a libtool library installation in a directory])
+_LT_DECL([], [finish_eval], [1],
+    [[As "finish_cmds", except a single script fragment to be evaled but
+    not shown]])
+_LT_DECL([], [hardcode_into_libs], [0],
+    [Whether we should hardcode library paths into libraries])
+_LT_DECL([], [sys_lib_search_path_spec], [2],
+    [Compile-time system search path for libraries])
+_LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
+    [Run-time system search path for libraries])
+])# _LT_SYS_DYNAMIC_LINKER
+
+
+# _LT_PATH_TOOL_PREFIX(TOOL)
+# --------------------------
+# find a file program which can recognize shared library
+AC_DEFUN([_LT_PATH_TOOL_PREFIX],
+[m4_require([_LT_DECL_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] |  ?:[\\/]*])
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word.  This closes a longstanding sh security hole.
+  ac_dummy="m4_if([$2], , $PATH, [$2])"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$1; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool at gnu.org
+
+_LT_EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac])
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  AC_MSG_RESULT($MAGIC_CMD)
+else
+  AC_MSG_RESULT(no)
+fi
+_LT_DECL([], [MAGIC_CMD], [0],
+	 [Used to examine libraries when file_magic_cmd begins with "file"])dnl
+])# _LT_PATH_TOOL_PREFIX
+
+# Old name:
+AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
+
+
+# _LT_PATH_MAGIC
+# --------------
+# find a file program which can recognize a shared library
+m4_defun([_LT_PATH_MAGIC],
+[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+  if test -n "$ac_tool_prefix"; then
+    _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+  else
+    MAGIC_CMD=:
+  fi
+fi
+])# _LT_PATH_MAGIC
+
+
+# LT_PATH_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+AC_DEFUN([LT_PATH_LD],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+
+AC_ARG_WITH([gnu-ld],
+    [AS_HELP_STRING([--with-gnu-ld],
+	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
+    [test "$withval" = no || with_gnu_ld=yes],
+    [with_gnu_ld=no])dnl
+
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  AC_MSG_CHECKING([for ld used by $CC])
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [[\\/]]* | ?:[[\\/]]*)
+      re_direlt='/[[^/]][[^/]]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  AC_MSG_CHECKING([for GNU ld])
+else
+  AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some variants of GNU ld only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break
+	;;
+      *)
+	test "$with_gnu_ld" != yes && break
+	;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  AC_MSG_RESULT($LD)
+else
+  AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+_LT_PATH_LD_GNU
+AC_SUBST([LD])
+
+_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
+])# LT_PATH_LD
+
+# Old names:
+AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
+AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_PROG_LD], [])
+dnl AC_DEFUN([AC_PROG_LD], [])
+
+
+# _LT_PATH_LD_GNU
+#- --------------
+m4_defun([_LT_PATH_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])# _LT_PATH_LD_GNU
+
+
+# _LT_CMD_RELOAD
+# --------------
+# find reload flag for linker
+#   -- PORTME Some linkers may need a different reload flag.
+m4_defun([_LT_CMD_RELOAD],
+[AC_CACHE_CHECK([for $LD option to reload object files],
+  lt_cv_ld_reload_flag,
+  [lt_cv_ld_reload_flag='-r'])
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+  darwin*)
+    if test "$GCC" = yes; then
+      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+    else
+      reload_cmds='$LD$reload_flag -o $output$reload_objs'
+    fi
+    ;;
+esac
+_LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl
+_LT_DECL([], [reload_cmds], [2])dnl
+])# _LT_CMD_RELOAD
+
+
+# _LT_CHECK_MAGIC_METHOD
+# ----------------------
+# how to check for library dependencies
+#  -- PORTME fill in with the dynamic library characteristics
+m4_defun([_LT_CHECK_MAGIC_METHOD],
+[m4_require([_LT_DECL_EGREP])
+m4_require([_LT_DECL_OBJDUMP])
+AC_CACHE_CHECK([how to recognize dependent libraries],
+lt_cv_deplibs_check_method,
+[lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[[4-9]]*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+beos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+bsdi[[45]]*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  ;;
+
+cygwin*)
+  # func_win32_libid is a shell function defined in ltmain.sh
+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+  lt_cv_file_magic_cmd='func_win32_libid'
+  ;;
+
+mingw* | pw32*)
+  # Base MSYS/MinGW do not provide the 'file' command needed by
+  # func_win32_libid shell function, so use a weaker test based on 'objdump',
+  # unless we find 'file', for example because we are cross-compiling.
+  if ( file / ) >/dev/null 2>&1; then
+    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+    lt_cv_file_magic_cmd='func_win32_libid'
+  else
+    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+    lt_cv_file_magic_cmd='$OBJDUMP -f'
+  fi
+  ;;
+
+cegcc)
+  # use the weaker test based on 'objdump'. See mingw*.
+  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+  lt_cv_file_magic_cmd='$OBJDUMP -f'
+  ;;
+
+darwin* | rhapsody*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+freebsd* | dragonfly*)
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+    case $host_cpu in
+    i*86 )
+      # Not sure whether the presence of OpenBSD here was a mistake.
+      # Let's accept both of them until this is cleared up.
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
+      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+      ;;
+    esac
+  else
+    lt_cv_deplibs_check_method=pass_all
+  fi
+  ;;
+
+gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+hpux10.20* | hpux11*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  case $host_cpu in
+  ia64*)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+    ;;
+  hppa*64*)
+    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
+
+interix[[3-9]]*)
+  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $LD in
+  *-32|*"-32 ") libmagic=32-bit;;
+  *-n32|*"-n32 ") libmagic=N32;;
+  *-64|*"-64 ") libmagic=64-bit;;
+  *) libmagic=never-match;;
+  esac
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+netbsd* | netbsdelf*-gnu)
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+  fi
+  ;;
+
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
+
+*nto* | *qnx*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+openbsd*)
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  fi
+  ;;
+
+osf3* | osf4* | osf5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+rdos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv4 | sysv4.3*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  pc)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+tpf*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
+])
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+_LT_DECL([], [deplibs_check_method], [1],
+    [Method to check whether dependent libraries are shared objects])
+_LT_DECL([], [file_magic_cmd], [1],
+    [Command to use when deplibs_check_method == "file_magic"])
+])# _LT_CHECK_MAGIC_METHOD
+
+
+# LT_PATH_NM
+# ----------
+# find the pathname to a BSD- or MS-compatible name lister
+AC_DEFUN([LT_PATH_NM],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
+[if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM="$NM"
+else
+  lt_nm_to_check="${ac_tool_prefix}nm"
+  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+    lt_nm_to_check="$lt_nm_to_check nm"
+  fi
+  for lt_tmp_nm in $lt_nm_to_check; do
+    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+      IFS="$lt_save_ifs"
+      test -z "$ac_dir" && ac_dir=.
+      tmp_nm="$ac_dir/$lt_tmp_nm"
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+	# Check to see if the nm accepts a BSD-compat flag.
+	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
+	#   nm: unknown option "B" ignored
+	# Tru64's nm complains that /dev/null is an invalid object file
+	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+	*/dev/null* | *'Invalid file or object type'*)
+	  lt_cv_path_NM="$tmp_nm -B"
+	  break
+	  ;;
+	*)
+	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+	  */dev/null*)
+	    lt_cv_path_NM="$tmp_nm -p"
+	    break
+	    ;;
+	  *)
+	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+	    continue # so that we can try to find one that supports BSD flags
+	    ;;
+	  esac
+	  ;;
+	esac
+      fi
+    done
+    IFS="$lt_save_ifs"
+  done
+  : ${lt_cv_path_NM=no}
+fi])
+if test "$lt_cv_path_NM" != "no"; then
+  NM="$lt_cv_path_NM"
+else
+  # Didn't find any BSD compatible name lister, look for dumpbin.
+  AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :)
+  AC_SUBST([DUMPBIN])
+  if test "$DUMPBIN" != ":"; then
+    NM="$DUMPBIN"
+  fi
+fi
+test -z "$NM" && NM=nm
+AC_SUBST([NM])
+_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
+
+AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
+  [lt_cv_nm_interface="BSD nm"
+  echo "int some_variable = 0;" > conftest.$ac_ext
+  (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
+  (eval "$ac_compile" 2>conftest.err)
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
+  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD)
+  cat conftest.out >&AS_MESSAGE_LOG_FD
+  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+    lt_cv_nm_interface="MS dumpbin"
+  fi
+  rm -f conftest*])
+])# LT_PATH_NM
+
+# Old names:
+AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
+AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_PROG_NM], [])
+dnl AC_DEFUN([AC_PROG_NM], [])
+
+
+# LT_LIB_M
+# --------
+# check for math library
+AC_DEFUN([LT_LIB_M],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+  # These system don't have libm, or don't need it
+  ;;
+*-ncr-sysv4.3*)
+  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+  ;;
+*)
+  AC_CHECK_LIB(m, cos, LIBM="-lm")
+  ;;
+esac
+AC_SUBST([LIBM])
+])# LT_LIB_M
+
+# Old name:
+AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_CHECK_LIBM], [])
+
+
+# _LT_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------
+m4_defun([_LT_COMPILER_NO_RTTI],
+[m4_require([_LT_TAG_COMPILER])dnl
+
+_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+
+if test "$GCC" = yes; then
+  _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+
+  _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
+    lt_cv_prog_compiler_rtti_exceptions,
+    [-fno-rtti -fno-exceptions], [],
+    [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
+fi
+_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
+	[Compiler flag to turn off builtin functions])
+])# _LT_COMPILER_NO_RTTI
+
+
+# _LT_CMD_GLOBAL_SYMBOLS
+# ----------------------
+m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+AC_REQUIRE([LT_PATH_LD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+AC_MSG_CHECKING([command to parse $NM output from $compiler object])
+AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
+[
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[[BCDEGRST]]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+  symcode='[[BCDT]]'
+  ;;
+cygwin* | mingw* | pw32* | cegcc*)
+  symcode='[[ABCDGISTW]]'
+  ;;
+hpux*)
+  if test "$host_cpu" = ia64; then
+    symcode='[[ABCDEGRST]]'
+  fi
+  ;;
+irix* | nonstopux*)
+  symcode='[[BCDEGRST]]'
+  ;;
+osf*)
+  symcode='[[BCDEGQRST]]'
+  ;;
+solaris*)
+  symcode='[[BDRT]]'
+  ;;
+sco3.2v5*)
+  symcode='[[DT]]'
+  ;;
+sysv4.2uw2*)
+  symcode='[[DT]]'
+  ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+  symcode='[[ABDT]]'
+  ;;
+sysv4)
+  symcode='[[DFNSTU]]'
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+  symcode='[[ABCDGIRSTW]]' ;;
+esac
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+  ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+  symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+  # Write the raw and C identifiers.
+  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+    # Fake it for dumpbin and say T for any non-static function
+    # and D for any global variable.
+    # Also find C++ and __fastcall symbols from MSVC++,
+    # which start with @ or ?.
+    lt_cv_sys_global_symbol_pipe="$AWK ['"\
+"     {last_section=section; section=\$ 3};"\
+"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+"     \$ 0!~/External *\|/{next};"\
+"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+"     {if(hide[section]) next};"\
+"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
+"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
+"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
+"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
+"     ' prfx=^$ac_symprfx]"
+  else
+    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[	 ]]\($symcode$symcode*\)[[	 ]][[	 ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+  fi
+
+  # Check to see that the pipe works correctly.
+  pipe_works=no
+
+  rm -f conftest*
+  cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+  if AC_TRY_EVAL(ac_compile); then
+    # Now try to grab the symbols.
+    nlist=conftest.nm
+    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
+      # Try sorting and uniquifying the output.
+      if sort "$nlist" | uniq > "$nlist"T; then
+	mv -f "$nlist"T "$nlist"
+      else
+	rm -f "$nlist"T
+      fi
+
+      # Make sure that we snagged all the symbols we need.
+      if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+	  cat <<_LT_EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+	  # Now generate the symbol file.
+	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+	  cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols.  */
+const struct {
+  const char *name;
+  void       *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[[]] =
+{
+  { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+	  cat <<\_LT_EOF >> conftest.$ac_ext
+  {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+	  # Now try linking the two files.
+	  mv conftest.$ac_objext conftstm.$ac_objext
+	  lt_save_LIBS="$LIBS"
+	  lt_save_CFLAGS="$CFLAGS"
+	  LIBS="conftstm.$ac_objext"
+	  CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
+	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
+	    pipe_works=yes
+	  fi
+	  LIBS="$lt_save_LIBS"
+	  CFLAGS="$lt_save_CFLAGS"
+	else
+	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+	fi
+      else
+	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
+      fi
+    else
+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+    fi
+  else
+    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
+    cat conftest.$ac_ext >&5
+  fi
+  rm -rf conftest* conftst*
+
+  # Do not use the global_symbol_pipe unless it works.
+  if test "$pipe_works" = yes; then
+    break
+  else
+    lt_cv_sys_global_symbol_pipe=
+  fi
+done
+])
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+  lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+  AC_MSG_RESULT(failed)
+else
+  AC_MSG_RESULT(ok)
+fi
+
+_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
+    [Take the output of nm and produce a listing of raw symbols and C names])
+_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
+    [Transform the output of nm in a proper C declaration])
+_LT_DECL([global_symbol_to_c_name_address],
+    [lt_cv_sys_global_symbol_to_c_name_address], [1],
+    [Transform the output of nm in a C name address pair])
+_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
+    [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
+    [Transform the output of nm in a C name address pair when lib prefix is needed])
+]) # _LT_CMD_GLOBAL_SYMBOLS
+
+
+# _LT_COMPILER_PIC([TAGNAME])
+# ---------------------------
+m4_defun([_LT_COMPILER_PIC],
+[m4_require([_LT_TAG_COMPILER])dnl
+_LT_TAGVAR(lt_prog_compiler_wl, $1)=
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+_LT_TAGVAR(lt_prog_compiler_static, $1)=
+
+AC_MSG_CHECKING([for $compiler option to produce PIC])
+m4_if([$1], [CXX], [
+  # C++ specific cases for pic, static, wl, etc.
+  if test "$GXX" = yes; then
+    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+    aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+        ;;
+      m68k)
+            # FIXME: we need at least 68020 code to build shared libraries, but
+            # adding the `-m68020' flag to GCC prevents building anything better,
+            # like `-m68040'.
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+        ;;
+      esac
+      ;;
+
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+    mingw* | cygwin* | os2* | pw32* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      m4_if([$1], [GCJ], [],
+	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      ;;
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+    *djgpp*)
+      # DJGPP does not support shared libraries at all
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+      ;;
+    interix[[3-9]]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+    hpux*)
+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
+      # sets the default TLS model and affects inlining.
+      case $host_cpu in
+      hppa*64*)
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+    *qnx* | *nto*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+    *)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    case $host_os in
+      aix[[4-9]]*)
+	# All AIX code is PIC.
+	if test "$host_cpu" = ia64; then
+	  # AIX 5 now supports IA64 processor
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	else
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+	fi
+	;;
+      chorus*)
+	case $cc_basename in
+	cxch68*)
+	  # Green Hills C++ Compiler
+	  # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+	  ;;
+	esac
+	;;
+      dgux*)
+	case $cc_basename in
+	  ec++*)
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  ghcx*)
+	    # Green Hills C++ Compiler
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      freebsd* | dragonfly*)
+	# FreeBSD uses GNU C++
+	;;
+      hpux9* | hpux10* | hpux11*)
+	case $cc_basename in
+	  CC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+	    if test "$host_cpu" != ia64; then
+	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	    fi
+	    ;;
+	  aCC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+	    case $host_cpu in
+	    hppa*64*|ia64*)
+	      # +Z the default
+	      ;;
+	    *)
+	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	      ;;
+	    esac
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      interix*)
+	# This is c89, which is MS Visual C++ (no shared libs)
+	# Anyone wants to do a port?
+	;;
+      irix5* | irix6* | nonstopux*)
+	case $cc_basename in
+	  CC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    # CC pic flag -KPIC is the default.
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+	case $cc_basename in
+	  KCC*)
+	    # KAI C++ Compiler
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	    ;;
+	  ecpc* )
+	    # old Intel C++ for x86_64 which still supported -KPIC.
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	    ;;
+	  icpc* )
+	    # Intel C++, used to be incompatible with GCC.
+	    # ICC 10 doesn't accept -KPIC any more.
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	    ;;
+	  pgCC* | pgcpp*)
+	    # Portland Group C++ compiler
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	  cxx*)
+	    # Compaq C++
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  xlc* | xlC*)
+	    # IBM XL 8.0 on PPC
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+	    ;;
+	  *)
+	    case `$CC -V 2>&1 | sed 5q` in
+	    *Sun\ C*)
+	      # Sun C++ 5.9
+	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	      ;;
+	    esac
+	    ;;
+	esac
+	;;
+      lynxos*)
+	;;
+      m88k*)
+	;;
+      mvs*)
+	case $cc_basename in
+	  cxx*)
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      netbsd* | netbsdelf*-gnu)
+	;;
+      *qnx* | *nto*)
+        # QNX uses GNU C++, but need to define -shared option too, otherwise
+        # it will coredump.
+        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+        ;;
+      osf3* | osf4* | osf5*)
+	case $cc_basename in
+	  KCC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    ;;
+	  RCC*)
+	    # Rational C++ 2.4.1
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  cxx*)
+	    # Digital/Compaq C++
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      psos*)
+	;;
+      solaris*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	    ;;
+	  gcx*)
+	    # Green Hills C++ Compiler
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sunos4*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.x
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	  lcc*)
+	    # Lucid
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+	case $cc_basename in
+	  CC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	esac
+	;;
+      tandem*)
+	case $cc_basename in
+	  NCC*)
+	    # NonStop-UX NCC 3.20
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      vxworks*)
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+	;;
+    esac
+  fi
+],
+[
+  if test "$GCC" = yes; then
+    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+        ;;
+      m68k)
+            # FIXME: we need at least 68020 code to build shared libraries, but
+            # adding the `-m68020' flag to GCC prevents building anything better,
+            # like `-m68040'.
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+        ;;
+      esac
+      ;;
+
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      m4_if([$1], [GCJ], [],
+	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+
+    hpux*)
+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
+      # sets the default TLS model and affects inlining.
+      case $host_cpu in
+      hppa*64*)
+	# +Z the default
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+
+    interix[[3-9]]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      enable_shared=no
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+
+    *)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      else
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      m4_if([$1], [GCJ], [],
+	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC (with -KPIC) is the default.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      case $cc_basename in
+      # old Intel for x86_64 which still supported -KPIC.
+      ecc*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      # icc used to be incompatible with GCC.
+      # ICC 10 doesn't accept -KPIC any more.
+      icc* | ifort*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      # Lahey Fortran 8.1.
+      lf95*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
+	;;
+      pgcc* | pgf77* | pgf90* | pgf95*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+	# which looks to be a dead project)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+        ;;
+      ccc*)
+        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+        # All Alpha code is PIC.
+        _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+        ;;
+      xl*)
+	# IBM XL C 8.0/Fortran 10.1 on PPC
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+	;;
+      *)
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)
+	  # Sun C 5.9
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	  ;;
+	*Sun\ F*)
+	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
+	  ;;
+	esac
+	;;
+      esac
+      ;;
+
+    newsos6)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+
+    osf3* | osf4* | osf5*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # All OSF/1 code is PIC.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    rdos*)
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    solaris*)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    unicos*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+
+    uts4*)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    *)
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+    esac
+  fi
+])
+case $host_os in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+    ;;
+  *)
+    _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t at m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
+    ;;
+esac
+AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
+_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
+	[How to pass a linker flag through the compiler])
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+  _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
+    [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
+    [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t at m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
+    [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
+     "" | " "*) ;;
+     *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
+     esac],
+    [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+     _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
+fi
+_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
+	[Additional compiler flags for building library objects])
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
+_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
+  _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
+  $lt_tmp_static_flag,
+  [],
+  [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
+_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
+	[Compiler flag to prevent dynamic linking])
+])# _LT_COMPILER_PIC
+
+
+# _LT_LINKER_SHLIBS([TAGNAME])
+# ----------------------------
+# See if the linker supports building shared libraries.
+m4_defun([_LT_LINKER_SHLIBS],
+[AC_REQUIRE([LT_PATH_LD])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+m4_if([$1], [CXX], [
+  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  case $host_os in
+  aix[[4-9]]*)
+    # If we're using GNU nm, then we don't want the "-C" option.
+    # -C means demangle to AIX nm, but means don't demangle with GNU nm
+    if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+    else
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+    fi
+    ;;
+  pw32*)
+    _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
+  ;;
+  cygwin* | mingw* | cegcc*)
+    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  linux* | k*bsd*-gnu)
+    _LT_TAGVAR(link_all_deplibs, $1)=no
+  ;;
+  *)
+    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  esac
+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+], [
+  runpath_var=
+  _LT_TAGVAR(allow_undefined_flag, $1)=
+  _LT_TAGVAR(always_export_symbols, $1)=no
+  _LT_TAGVAR(archive_cmds, $1)=
+  _LT_TAGVAR(archive_expsym_cmds, $1)=
+  _LT_TAGVAR(compiler_needs_object, $1)=no
+  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+  _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  _LT_TAGVAR(hardcode_automatic, $1)=no
+  _LT_TAGVAR(hardcode_direct, $1)=no
+  _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+  _LT_TAGVAR(hardcode_libdir_separator, $1)=
+  _LT_TAGVAR(hardcode_minus_L, $1)=no
+  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+  _LT_TAGVAR(inherit_rpath, $1)=no
+  _LT_TAGVAR(link_all_deplibs, $1)=unknown
+  _LT_TAGVAR(module_cmds, $1)=
+  _LT_TAGVAR(module_expsym_cmds, $1)=
+  _LT_TAGVAR(old_archive_from_new_cmds, $1)=
+  _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
+  _LT_TAGVAR(thread_safe_flag_spec, $1)=
+  _LT_TAGVAR(whole_archive_flag_spec, $1)=
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  _LT_TAGVAR(include_expsyms, $1)=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  # Exclude shared library initialization/finalization symbols.
+dnl Note also adjust exclude_expsyms for C++ above.
+  extract_expsyms_cmds=
+
+  case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  linux* | k*bsd*-gnu)
+    _LT_TAGVAR(link_all_deplibs, $1)=no
+    ;;
+  esac
+
+  _LT_TAGVAR(ld_shlibs, $1)=yes
+  if test "$with_gnu_ld" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+      _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    else
+      _LT_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v 2>&1` in
+      *GNU\ gold*) supports_anon_versioning=yes ;;
+      *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix[[3-9]]*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+_LT_EOF
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            _LT_TAGVAR(archive_expsym_cmds, $1)=''
+        ;;
+      m68k)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes
+        ;;
+      esac
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	_LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+      # as there is no search path for DLLs.
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_TAGVAR(always_export_symbols, $1)=no
+      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    interix[[3-9]]*)
+      _LT_TAGVAR(hardcode_direct, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+      tmp_diet=no
+      if test "$host_os" = linux-dietlibc; then
+	case $cc_basename in
+	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
+	esac
+      fi
+      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+	 && test "$tmp_diet" = no
+      then
+	tmp_addflag=
+	tmp_sharedflag='-shared'
+	case $cc_basename,$host_cpu in
+        pgcc*)				# Portland Group C compiler
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag'
+	  ;;
+	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag -Mnomain' ;;
+	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
+	  tmp_addflag=' -i_dynamic' ;;
+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+	ifc* | ifort*)			# Intel Fortran compiler
+	  tmp_addflag=' -nofor_main' ;;
+	lf95*)				# Lahey Fortran 8.1
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)=
+	  tmp_sharedflag='--shared' ;;
+	xl[[cC]]*)			# IBM XL C 8.0 on PPC (deal with xlf below)
+	  tmp_sharedflag='-qmkshrobj'
+	  tmp_addflag= ;;
+	esac
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)			# Sun C 5.9
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	  _LT_TAGVAR(compiler_needs_object, $1)=yes
+	  tmp_sharedflag='-G' ;;
+	*Sun\ F*)			# Sun Fortran 8.3
+	  tmp_sharedflag='-G' ;;
+	esac
+	_LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+        if test "x$supports_anon_versioning" = xyes; then
+          _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+	    cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+	    echo "local: *; };" >> $output_objdir/$libname.ver~
+	    $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+        fi
+
+	case $cc_basename in
+	xlf*)
+	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+	  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
+	  if test "x$supports_anon_versioning" = xyes; then
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+	      echo "local: *; };" >> $output_objdir/$libname.ver~
+	      $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+	  fi
+	  ;;
+	esac
+      else
+        _LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    netbsd* | netbsdelf*-gnu)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris*)
+      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+	;;
+	*)
+	  # For security reasons, it is highly recommended that you always
+	  # use absolute paths for naming shared libraries, and exclude the
+	  # DT_RUNPATH tag from executables and libraries.  But doing so
+	  # requires that you compile everything twice, which is a pain.
+	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	  else
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	  fi
+	;;
+      esac
+      ;;
+
+    sunos4*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+    esac
+
+    if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
+      runpath_var=
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+      _LT_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_TAGVAR(always_export_symbols, $1)=yes
+      _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	_LT_TAGVAR(hardcode_direct, $1)=unsupported
+      fi
+      ;;
+
+    aix[[4-9]]*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+	else
+	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+	fi
+	aix_use_runtimelinking=no
+
+	# Test if we are trying to use run time linking or normal
+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+	# need to do runtime linking.
+	case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+	  for ld_flag in $LDFLAGS; do
+	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+	    aix_use_runtimelinking=yes
+	    break
+	  fi
+	  done
+	  ;;
+	esac
+
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      _LT_TAGVAR(archive_cmds, $1)=''
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.[[012]]|aix4.[[012]].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" &&
+	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+	  then
+	  # We have reworked collect2
+	  :
+	  else
+	  # We have old collect2
+	  _LT_TAGVAR(hardcode_direct, $1)=unsupported
+	  # It fails to find uninstalled libraries when the uninstalled
+	  # path is not listed in the libpath.  Setting hardcode_minus_L
+	  # to unsupported forces relinking
+	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	  _LT_TAGVAR(hardcode_libdir_separator, $1)=
+	  fi
+	  ;;
+	esac
+	shared_flag='-shared'
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag="$shared_flag "'${wl}-G'
+	fi
+	_LT_TAGVAR(link_all_deplibs, $1)=no
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+	  if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='${wl}-G'
+	  else
+	    shared_flag='${wl}-bM:SRE'
+	  fi
+	fi
+      fi
+
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      _LT_TAGVAR(always_export_symbols, $1)=yes
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	_LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+        # Determine the default libpath from the value encoded in an
+        # empty executable.
+        _LT_SYS_MODULE_PATH_AIX
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+      else
+	if test "$host_cpu" = ia64; then
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+	  _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an
+	 # empty executable.
+	 _LT_SYS_MODULE_PATH_AIX
+	 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+	  _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+	  # Exported symbols can be pulled into shared objects from archives
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+	  # This is similar to how AIX traditionally builds its shared libraries.
+	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            _LT_TAGVAR(archive_expsym_cmds, $1)=''
+        ;;
+      m68k)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes
+        ;;
+      esac
+      ;;
+
+    bsdi[[45]]*)
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext_cmds=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+      # FIXME: Should let the user specify the lib program.
+      _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
+      _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
+      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      ;;
+
+    darwin* | rhapsody*)
+      _LT_DARWIN_LINKER_FEATURES($1)
+      ;;
+
+    dgux*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    freebsd1*)
+      _LT_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | dragonfly*)
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      ;;
+
+    hpux10*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test "$with_gnu_ld" = no; then
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
+	_LT_TAGVAR(hardcode_direct, $1)=yes
+	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	# hardcode_minus_L: Not really in the search PATH,
+	# but as the default location of the library.
+	_LT_TAGVAR(hardcode_minus_L, $1)=yes
+      fi
+      ;;
+
+    hpux11*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	case $host_cpu in
+	hppa*64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case $host_cpu in
+	hppa*64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	case $host_cpu in
+	hppa*64*|ia64*)
+	  _LT_TAGVAR(hardcode_direct, $1)=no
+	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	  ;;
+	*)
+	  _LT_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	# Try to use the -exported_symbol ld option, if it does not
+	# work, assume that -exports_file does not work either and
+	# implicitly export all symbols.
+        save_LDFLAGS="$LDFLAGS"
+        LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+        AC_LINK_IFELSE(int foo(void) {},
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+        )
+        LDFLAGS="$save_LDFLAGS"
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(inherit_rpath, $1)=yes
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    netbsd* | netbsdelf*-gnu)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    newsos6)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *nto* | *qnx*)
+      ;;
+
+    openbsd*)
+      if test -f /usr/libexec/ld.so; then
+	_LT_TAGVAR(hardcode_direct, $1)=yes
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	else
+	  case $host_os in
+	   openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
+	     _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	     ;;
+	   *)
+	     _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	     ;;
+	  esac
+	fi
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    os2*)
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      else
+	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    solaris*)
+      _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
+      if test "$GCC" = yes; then
+	wlarc='${wl}'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+      else
+	case `$CC -V 2>&1` in
+	*"Compilers 5.0"*)
+	  wlarc=''
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	  $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+	  ;;
+	*)
+	  wlarc='${wl}'
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	  $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+	  ;;
+	esac
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      case $host_os in
+      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+      *)
+	# The compiler driver will combine and reorder linker options,
+	# but understands `-z linker_flag'.  GCC discards it without `$wl',
+	# but is careful enough not to reorder.
+	# Supported since Solaris 2.6 (maybe 2.5.1?)
+	if test "$GCC" = yes; then
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+	else
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+	fi
+	;;
+      esac
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
+	  _LT_TAGVAR(hardcode_direct, $1)=no
+        ;;
+	motorola)
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4.3*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	_LT_TAGVAR(ld_shlibs, $1)=yes
+      fi
+      ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We can NOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    uts4*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      _LT_TAGVAR(ld_shlibs, $1)=no
+      ;;
+    esac
+
+    if test x$host_vendor = xsni; then
+      case $host in
+      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym'
+	;;
+      esac
+    fi
+  fi
+])
+AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
+
+_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
+_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
+_LT_DECL([], [extract_expsyms_cmds], [2],
+    [The commands to extract the exported symbol list from a shared archive])
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
+x|xyes)
+  # Assume -lc should be added
+  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $_LT_TAGVAR(archive_cmds, $1) in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      AC_MSG_CHECKING([whether -lc should be explicitly linked in])
+      $RM conftest*
+      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+      if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
+	pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
+        _LT_TAGVAR(allow_undefined_flag, $1)=
+        if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
+        then
+	  _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+        else
+	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+        fi
+        _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $RM conftest*
+      AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)])
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
+    [Whether or not to add -lc for building shared libraries])
+_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
+    [enable_shared_with_static_runtimes], [0],
+    [Whether or not to disallow shared libs when runtime libs are static])
+_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
+    [Compiler flag to allow reflexive dlopens])
+_LT_TAGDECL([], [whole_archive_flag_spec], [1],
+    [Compiler flag to generate shared objects directly from archives])
+_LT_TAGDECL([], [compiler_needs_object], [1],
+    [Whether the compiler copes with passing no objects directly])
+_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
+    [Create an old-style archive from a shared archive])
+_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
+    [Create a temporary old-style archive to link instead of a shared archive])
+_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
+_LT_TAGDECL([], [archive_expsym_cmds], [2])
+_LT_TAGDECL([], [module_cmds], [2],
+    [Commands used to build a loadable module if different from building
+    a shared archive.])
+_LT_TAGDECL([], [module_expsym_cmds], [2])
+_LT_TAGDECL([], [with_gnu_ld], [1],
+    [Whether we are building with GNU ld or not])
+_LT_TAGDECL([], [allow_undefined_flag], [1],
+    [Flag that allows shared libraries with undefined symbols to be built])
+_LT_TAGDECL([], [no_undefined_flag], [1],
+    [Flag that enforces no undefined symbols])
+_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
+    [Flag to hardcode $libdir into a binary during linking.
+    This must work even if $libdir does not exist])
+_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1],
+    [[If ld is used when linking, flag to hardcode $libdir into a binary
+    during linking.  This must work even if $libdir does not exist]])
+_LT_TAGDECL([], [hardcode_libdir_separator], [1],
+    [Whether we need a single "-rpath" flag with a separated argument])
+_LT_TAGDECL([], [hardcode_direct], [0],
+    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+    DIR into the resulting binary])
+_LT_TAGDECL([], [hardcode_direct_absolute], [0],
+    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+    DIR into the resulting binary and the resulting library dependency is
+    "absolute", i.e impossible to change by setting ${shlibpath_var} if the
+    library is relocated])
+_LT_TAGDECL([], [hardcode_minus_L], [0],
+    [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+    into the resulting binary])
+_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
+    [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+    into the resulting binary])
+_LT_TAGDECL([], [hardcode_automatic], [0],
+    [Set to "yes" if building a shared library automatically hardcodes DIR
+    into the library and all subsequent libraries and executables linked
+    against it])
+_LT_TAGDECL([], [inherit_rpath], [0],
+    [Set to yes if linker adds runtime paths of dependent libraries
+    to runtime path list])
+_LT_TAGDECL([], [link_all_deplibs], [0],
+    [Whether libtool must link a program against all its dependency libraries])
+_LT_TAGDECL([], [fix_srcfile_path], [1],
+    [Fix the shell variable $srcfile for the compiler])
+_LT_TAGDECL([], [always_export_symbols], [0],
+    [Set to "yes" if exported symbols are required])
+_LT_TAGDECL([], [export_symbols_cmds], [2],
+    [The commands to list exported symbols])
+_LT_TAGDECL([], [exclude_expsyms], [1],
+    [Symbols that should not be listed in the preloaded symbols])
+_LT_TAGDECL([], [include_expsyms], [1],
+    [Symbols that must always be exported])
+_LT_TAGDECL([], [prelink_cmds], [2],
+    [Commands necessary for linking programs (against libraries) with templates])
+_LT_TAGDECL([], [file_list_spec], [1],
+    [Specify filename containing input files])
+dnl FIXME: Not yet implemented
+dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
+dnl    [Compiler flag to generate thread safe objects])
+])# _LT_LINKER_SHLIBS
+
+
+# _LT_LANG_C_CONFIG([TAG])
+# ------------------------
+# Ensure that the configuration variables for a C compiler are suitably
+# defined.  These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_C_CONFIG],
+[m4_require([_LT_DECL_EGREP])dnl
+lt_save_CC="$CC"
+AC_LANG_PUSH(C)
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+_LT_TAG_COMPILER
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_SYS_DYNAMIC_LINKER($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+  LT_SYS_DLOPEN_SELF
+  _LT_CMD_STRIPLIB
+
+  # Report which library types will actually be built
+  AC_MSG_CHECKING([if libtool supports shared libraries])
+  AC_MSG_RESULT([$can_build_shared])
+
+  AC_MSG_CHECKING([whether to build shared libraries])
+  test "$can_build_shared" = "no" && enable_shared=no
+
+  # On AIX, shared libraries and static libraries use the same namespace, and
+  # are all built from PIC.
+  case $host_os in
+  aix3*)
+    test "$enable_shared" = yes && enable_static=no
+    if test -n "$RANLIB"; then
+      archive_cmds="$archive_cmds~\$RANLIB \$lib"
+      postinstall_cmds='$RANLIB $lib'
+    fi
+    ;;
+
+  aix[[4-9]]*)
+    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+      test "$enable_shared" = yes && enable_static=no
+    fi
+    ;;
+  esac
+  AC_MSG_RESULT([$enable_shared])
+
+  AC_MSG_CHECKING([whether to build static libraries])
+  # Make sure either enable_shared or enable_static is yes.
+  test "$enable_shared" = yes || enable_static=yes
+  AC_MSG_RESULT([$enable_static])
+
+  _LT_CONFIG($1)
+fi
+AC_LANG_POP
+CC="$lt_save_CC"
+])# _LT_LANG_C_CONFIG
+
+
+# _LT_PROG_CXX
+# ------------
+# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++
+# compiler, we have our own version here.
+m4_defun([_LT_PROG_CXX],
+[
+pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes])
+AC_PROG_CXX
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+    (test "X$CXX" != "Xg++"))) ; then
+  AC_PROG_CXXCPP
+else
+  _lt_caught_CXX_error=yes
+fi
+popdef([AC_MSG_ERROR])
+])# _LT_PROG_CXX
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([_LT_PROG_CXX], [])
+
+
+# _LT_LANG_CXX_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a C++ compiler are suitably
+# defined.  These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_CXX_CONFIG],
+[AC_REQUIRE([_LT_PROG_CXX])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+
+AC_LANG_PUSH(C++)
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(compiler_needs_object, $1)=no
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the CXX compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_caught_CXX_error" != yes; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="int some_variable = 0;"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC=$CC
+  lt_save_LD=$LD
+  lt_save_GCC=$GCC
+  GCC=$GXX
+  lt_save_with_gnu_ld=$with_gnu_ld
+  lt_save_path_LD=$lt_cv_path_LD
+  if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+    lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+  else
+    $as_unset lt_cv_prog_gnu_ld
+  fi
+  if test -n "${lt_cv_path_LDCXX+set}"; then
+    lt_cv_path_LD=$lt_cv_path_LDCXX
+  else
+    $as_unset lt_cv_path_LD
+  fi
+  test -z "${LDCXX+set}" || LD=$LDCXX
+  CC=${CXX-"c++"}
+  compiler=$CC
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+
+  if test -n "$compiler"; then
+    # We don't want -fno-exception when compiling C++ code, so set the
+    # no_builtin_flag separately
+    if test "$GXX" = yes; then
+      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+    else
+      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+    fi
+
+    if test "$GXX" = yes; then
+      # Set up default GNU C++ configuration
+
+      LT_PATH_LD
+
+      # Check if GNU C++ uses GNU ld as the underlying linker, since the
+      # archiving commands below assume that GNU ld is being used.
+      if test "$with_gnu_ld" = yes; then
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+        # If archive_cmds runs LD, not CC, wlarc should be empty
+        # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+        #     investigate it a little bit more. (MM)
+        wlarc='${wl}'
+
+        # ancient GNU ld didn't support --whole-archive et. al.
+        if eval "`$CC -print-prog-name=ld` --help 2>&1" |
+	  $GREP 'no-whole-archive' > /dev/null; then
+          _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+        else
+          _LT_TAGVAR(whole_archive_flag_spec, $1)=
+        fi
+      else
+        with_gnu_ld=no
+        wlarc=
+
+        # A generic and very simple default shared library creation
+        # command for GNU C++ for the case where it uses the native
+        # linker, instead of GNU ld.  If possible, this setting should
+        # overridden to take advantage of the native linker features on
+        # the platform it is being used on.
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+      fi
+
+      # Commands to make compiler produce verbose output that lists
+      # what "hidden" libraries, object files and flags are used when
+      # linking a shared library.
+      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+
+    else
+      GXX=no
+      with_gnu_ld=no
+      wlarc=
+    fi
+
+    # PORTME: fill in a description of your system's C++ link characteristics
+    AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+    _LT_TAGVAR(ld_shlibs, $1)=yes
+    case $host_os in
+      aix3*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+      aix[[4-9]]*)
+        if test "$host_cpu" = ia64; then
+          # On IA64, the linker does run time linking by default, so we don't
+          # have to do anything special.
+          aix_use_runtimelinking=no
+          exp_sym_flag='-Bexport'
+          no_entry_flag=""
+        else
+          aix_use_runtimelinking=no
+
+          # Test if we are trying to use run time linking or normal
+          # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+          # need to do runtime linking.
+          case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+	    for ld_flag in $LDFLAGS; do
+	      case $ld_flag in
+	      *-brtl*)
+	        aix_use_runtimelinking=yes
+	        break
+	        ;;
+	      esac
+	    done
+	    ;;
+          esac
+
+          exp_sym_flag='-bexport'
+          no_entry_flag='-bnoentry'
+        fi
+
+        # When large executables or shared objects are built, AIX ld can
+        # have problems creating the table of contents.  If linking a library
+        # or program results in "error TOC overflow" add -mminimal-toc to
+        # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+        # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+        _LT_TAGVAR(archive_cmds, $1)=''
+        _LT_TAGVAR(hardcode_direct, $1)=yes
+        _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+        _LT_TAGVAR(link_all_deplibs, $1)=yes
+        _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
+
+        if test "$GXX" = yes; then
+          case $host_os in aix4.[[012]]|aix4.[[012]].*)
+          # We only want to do this on AIX 4.2 and lower, the check
+          # below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" &&
+	     strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+	  then
+	    # We have reworked collect2
+	    :
+	  else
+	    # We have old collect2
+	    _LT_TAGVAR(hardcode_direct, $1)=unsupported
+	    # It fails to find uninstalled libraries when the uninstalled
+	    # path is not listed in the libpath.  Setting hardcode_minus_L
+	    # to unsupported forces relinking
+	    _LT_TAGVAR(hardcode_minus_L, $1)=yes
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=
+	  fi
+          esac
+          shared_flag='-shared'
+	  if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag="$shared_flag "'${wl}-G'
+	  fi
+        else
+          # not using gcc
+          if test "$host_cpu" = ia64; then
+	  # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	  # chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+          else
+	    if test "$aix_use_runtimelinking" = yes; then
+	      shared_flag='${wl}-G'
+	    else
+	      shared_flag='${wl}-bM:SRE'
+	    fi
+          fi
+        fi
+
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
+        # It seems that -bexpall does not export symbols beginning with
+        # underscore (_), so it is better to generate a list of symbols to
+	# export.
+        _LT_TAGVAR(always_export_symbols, $1)=yes
+        if test "$aix_use_runtimelinking" = yes; then
+          # Warning - without using the other runtime loading flags (-brtl),
+          # -berok will link without error, but may produce a broken library.
+          _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+          # Determine the default libpath from the value encoded in an empty
+          # executable.
+          _LT_SYS_MODULE_PATH_AIX
+          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+        else
+          if test "$host_cpu" = ia64; then
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+	    _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+          else
+	    # Determine the default libpath from the value encoded in an
+	    # empty executable.
+	    _LT_SYS_MODULE_PATH_AIX
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	    # Warning - without using the other run time loading flags,
+	    # -berok will link without error, but may produce a broken library.
+	    _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+	    _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+	    # Exported symbols can be pulled into shared objects from archives
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	    _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+	    # This is similar to how AIX traditionally builds its shared
+	    # libraries.
+	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+          fi
+        fi
+        ;;
+
+      beos*)
+	if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	  # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+	  # support --undefined.  This deserves some investigation.  FIXME
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	else
+	  _LT_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+
+      chorus*)
+        case $cc_basename in
+          *)
+	  # FIXME: insert proper C++ library support
+	  _LT_TAGVAR(ld_shlibs, $1)=no
+	  ;;
+        esac
+        ;;
+
+      cygwin* | mingw* | pw32* | cegcc*)
+        # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+        # as there is no search path for DLLs.
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+        _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+        _LT_TAGVAR(always_export_symbols, $1)=no
+        _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+        if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+          # If the export-symbols file already is a .def file (1st line
+          # is EXPORTS), use it as is; otherwise, prepend...
+          _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	    cp $export_symbols $output_objdir/$soname.def;
+          else
+	    echo EXPORTS > $output_objdir/$soname.def;
+	    cat $export_symbols >> $output_objdir/$soname.def;
+          fi~
+          $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+        else
+          _LT_TAGVAR(ld_shlibs, $1)=no
+        fi
+        ;;
+      darwin* | rhapsody*)
+        _LT_DARWIN_LINKER_FEATURES($1)
+	;;
+
+      dgux*)
+        case $cc_basename in
+          ec++*)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          ghcx*)
+	    # Green Hills C++ Compiler
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+        esac
+        ;;
+
+      freebsd[[12]]*)
+        # C++ shared libraries reported to be fairly broken before
+	# switch to ELF
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      freebsd-elf*)
+        _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+        ;;
+
+      freebsd* | dragonfly*)
+        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+        # conventions
+        _LT_TAGVAR(ld_shlibs, $1)=yes
+        ;;
+
+      gnu*)
+        ;;
+
+      hpux9*)
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+        _LT_TAGVAR(hardcode_direct, $1)=yes
+        _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+				             # but as the default
+				             # location of the library.
+
+        case $cc_basename in
+          CC*)
+            # FIXME: insert proper C++ library support
+            _LT_TAGVAR(ld_shlibs, $1)=no
+            ;;
+          aCC*)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+            # Commands to make compiler produce verbose output that lists
+            # what "hidden" libraries, object files and flags are used when
+            # linking a shared library.
+            #
+            # There doesn't appear to be a way to prevent this compiler from
+            # explicitly linking system object files so we need to strip them
+            # from the output so that they don't get included in the library
+            # dependencies.
+            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+            ;;
+          *)
+            if test "$GXX" = yes; then
+              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+            else
+              # FIXME: insert proper C++ library support
+              _LT_TAGVAR(ld_shlibs, $1)=no
+            fi
+            ;;
+        esac
+        ;;
+
+      hpux10*|hpux11*)
+        if test $with_gnu_ld = no; then
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	  _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+          case $host_cpu in
+            hppa*64*|ia64*)
+              ;;
+            *)
+	      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+              ;;
+          esac
+        fi
+        case $host_cpu in
+          hppa*64*|ia64*)
+            _LT_TAGVAR(hardcode_direct, $1)=no
+            _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+            ;;
+          *)
+            _LT_TAGVAR(hardcode_direct, $1)=yes
+            _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+					         # but as the default
+					         # location of the library.
+            ;;
+        esac
+
+        case $cc_basename in
+          CC*)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          aCC*)
+	    case $host_cpu in
+	      hppa*64*)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        ;;
+	      ia64*)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        ;;
+	      *)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        ;;
+	    esac
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+	    ;;
+          *)
+	    if test "$GXX" = yes; then
+	      if test $with_gnu_ld = no; then
+	        case $host_cpu in
+	          hppa*64*)
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            ;;
+	          ia64*)
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            ;;
+	          *)
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            ;;
+	        esac
+	      fi
+	    else
+	      # FIXME: insert proper C++ library support
+	      _LT_TAGVAR(ld_shlibs, $1)=no
+	    fi
+	    ;;
+        esac
+        ;;
+
+      interix[[3-9]]*)
+	_LT_TAGVAR(hardcode_direct, $1)=no
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	# Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+	# Instead, shared libraries are loaded at an image base (0x10000000 by
+	# default) and relocated if they conflict, which is a slow very memory
+	# consuming and fragmenting process.  To avoid this, we pick a random,
+	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+	;;
+      irix5* | irix6*)
+        case $cc_basename in
+          CC*)
+	    # SGI C++
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+
+	    # Archives containing C++ object files must be created using
+	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
+	    # necessary to make sure instantiated templates are included
+	    # in the archive.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+	    ;;
+          *)
+	    if test "$GXX" = yes; then
+	      if test "$with_gnu_ld" = no; then
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	      else
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib'
+	      fi
+	    fi
+	    _LT_TAGVAR(link_all_deplibs, $1)=yes
+	    ;;
+        esac
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+        _LT_TAGVAR(inherit_rpath, $1)=yes
+        ;;
+
+      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+        case $cc_basename in
+          KCC*)
+	    # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	    # KCC will only create a shared library if the output file
+	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
+	    # to its proper name (with version) after linking.
+	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+	    # Archives containing C++ object files must be created using
+	    # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+	    ;;
+	  icpc* | ecpc* )
+	    # Intel C++
+	    with_gnu_ld=yes
+	    # version 8.0 and above of icpc choke on multiply defined symbols
+	    # if we add $predep_objects and $postdep_objects, however 7.1 and
+	    # earlier do not add the objects themselves.
+	    case `$CC -V 2>&1` in
+	      *"Version 7."*)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+		;;
+	      *)  # Version 8.0 or newer
+	        tmp_idyn=
+	        case $host_cpu in
+		  ia64*) tmp_idyn=' -i_dynamic';;
+		esac
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+		;;
+	    esac
+	    _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	    ;;
+          pgCC* | pgcpp*)
+            # Portland Group C++ compiler
+	    case `$CC -V` in
+	    *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*)
+	      _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
+		rm -rf $tpldir~
+		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
+	      _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
+		rm -rf $tpldir~
+		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
+		$RANLIB $oldlib'
+	      _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
+		rm -rf $tpldir~
+		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
+		rm -rf $tpldir~
+		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+	      ;;
+	    *) # Version 6 will use weak symbols
+	      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+	      ;;
+	    esac
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+            ;;
+	  cxx*)
+	    # Compaq C++
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+	    runpath_var=LD_RUN_PATH
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+	    ;;
+	  xl*)
+	    # IBM XL 8.0 on PPC, with GNU ld
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	    if test "x$supports_anon_versioning" = xyes; then
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+		cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+		echo "local: *; };" >> $output_objdir/$libname.ver~
+		$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+	    fi
+	    ;;
+	  *)
+	    case `$CC -V 2>&1 | sed 5q` in
+	    *Sun\ C*)
+	      # Sun C++ 5.9
+	      _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+	      _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	      _LT_TAGVAR(compiler_needs_object, $1)=yes
+
+	      # Not sure whether something based on
+	      # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+	      # would be better.
+	      output_verbose_link_cmd='echo'
+
+	      # Archives containing C++ object files must be created using
+	      # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	      # necessary to make sure instantiated templates are included
+	      # in the archive.
+	      _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+	      ;;
+	    esac
+	    ;;
+	esac
+	;;
+
+      lynxos*)
+        # FIXME: insert proper C++ library support
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	;;
+
+      m88k*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+	;;
+
+      mvs*)
+        case $cc_basename in
+          cxx*)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+	  *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+	esac
+	;;
+
+      netbsd*)
+        if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+	  wlarc=
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	  _LT_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	fi
+	# Workaround some broken pre-1.5 toolchains
+	output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+	;;
+
+      *nto* | *qnx*)
+        _LT_TAGVAR(ld_shlibs, $1)=yes
+	;;
+
+      openbsd2*)
+        # C++ shared libraries are fairly broken
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	;;
+
+      openbsd*)
+	if test -f /usr/libexec/ld.so; then
+	  _LT_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+	  fi
+	  output_verbose_link_cmd=echo
+	else
+	  _LT_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+
+      osf3* | osf4* | osf5*)
+        case $cc_basename in
+          KCC*)
+	    # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	    # KCC will only create a shared library if the output file
+	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
+	    # to its proper name (with version) after linking.
+	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	    # Archives containing C++ object files must be created using
+	    # the KAI C++ compiler.
+	    case $host in
+	      osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
+	      *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
+	    esac
+	    ;;
+          RCC*)
+	    # Rational C++ 2.4.1
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          cxx*)
+	    case $host in
+	      osf3*)
+	        _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+		;;
+	      *)
+	        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	        _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+	          echo "-hidden">> $lib.exp~
+	          $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~
+	          $RM $lib.exp'
+	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+		;;
+	    esac
+
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+	    ;;
+	  *)
+	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	      _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	      case $host in
+	        osf3*)
+	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+		  ;;
+	        *)
+	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+		  ;;
+	      esac
+
+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	      # Commands to make compiler produce verbose output that lists
+	      # what "hidden" libraries, object files and flags are used when
+	      # linking a shared library.
+	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+
+	    else
+	      # FIXME: insert proper C++ library support
+	      _LT_TAGVAR(ld_shlibs, $1)=no
+	    fi
+	    ;;
+        esac
+        ;;
+
+      psos*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      sunos4*)
+        case $cc_basename in
+          CC*)
+	    # Sun C++ 4.x
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          lcc*)
+	    # Lucid
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+        esac
+        ;;
+
+      solaris*)
+        case $cc_basename in
+          CC*)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+            _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
+	    _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+	      $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	    _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	    case $host_os in
+	      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+	      *)
+		# The compiler driver will combine and reorder linker options,
+		# but understands `-z linker_flag'.
+	        # Supported since Solaris 2.6 (maybe 2.5.1?)
+		_LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+	        ;;
+	    esac
+	    _LT_TAGVAR(link_all_deplibs, $1)=yes
+
+	    output_verbose_link_cmd='echo'
+
+	    # Archives containing C++ object files must be created using
+	    # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	    # necessary to make sure instantiated templates are included
+	    # in the archive.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+	    ;;
+          gcx*)
+	    # Green Hills C++ Compiler
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+
+	    # The C++ compiler must be used to create the archive.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+	    ;;
+          *)
+	    # GNU C++ compiler with Solaris linker
+	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	      _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
+	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+		  $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+	        # Commands to make compiler produce verbose output that lists
+	        # what "hidden" libraries, object files and flags are used when
+	        # linking a shared library.
+	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+	      else
+	        # g++ 2.7 appears to require `-G' NOT `-shared' on this
+	        # platform.
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+		  $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+	        # Commands to make compiler produce verbose output that lists
+	        # what "hidden" libraries, object files and flags are used when
+	        # linking a shared library.
+	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+	      fi
+
+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
+	      case $host_os in
+		solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+		*)
+		  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+		  ;;
+	      esac
+	    fi
+	    ;;
+        esac
+        ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      runpath_var='LD_RUN_PATH'
+
+      case $cc_basename in
+        CC*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+      esac
+      ;;
+
+      sysv5* | sco3.2v5* | sco5v6*)
+	# Note: We can NOT use -z defs as we might desire, because we do not
+	# link with -lc, and that would cause any symbols used from libc to
+	# always be unresolved, which means just about no library would
+	# ever link correctly.  If we're not using GNU ld we use -z text
+	# though, which does catch some bad symbols but isn't as heavy-handed
+	# as -z defs.
+	_LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+	_LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+	_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
+	_LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+	_LT_TAGVAR(link_all_deplibs, $1)=yes
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+	runpath_var='LD_RUN_PATH'
+
+	case $cc_basename in
+          CC*)
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    ;;
+	  *)
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    ;;
+	esac
+      ;;
+
+      tandem*)
+        case $cc_basename in
+          NCC*)
+	    # NonStop-UX NCC 3.20
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+        esac
+        ;;
+
+      vxworks*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      *)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+    esac
+
+    AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+    test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+    _LT_TAGVAR(GCC, $1)="$GXX"
+    _LT_TAGVAR(LD, $1)="$LD"
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_SYS_HIDDEN_LIBDEPS($1)
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  CC=$lt_save_CC
+  LDCXX=$LD
+  LD=$lt_save_LD
+  GCC=$lt_save_GCC
+  with_gnu_ld=$lt_save_with_gnu_ld
+  lt_cv_path_LDCXX=$lt_cv_path_LD
+  lt_cv_path_LD=$lt_save_path_LD
+  lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+  lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+fi # test "$_lt_caught_CXX_error" != yes
+
+AC_LANG_POP
+])# _LT_LANG_CXX_CONFIG
+
+
+# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
+# ---------------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+# Dependencies to place before and after the object being linked:
+_LT_TAGVAR(predep_objects, $1)=
+_LT_TAGVAR(postdep_objects, $1)=
+_LT_TAGVAR(predeps, $1)=
+_LT_TAGVAR(postdeps, $1)=
+_LT_TAGVAR(compiler_lib_search_path, $1)=
+
+dnl we can't use the lt_simple_compile_test_code here,
+dnl because it contains code intended for an executable,
+dnl not a library.  It's possible we should let each
+dnl tag define a new lt_????_link_test_code variable,
+dnl but it's only used here...
+m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
+int a;
+void foo (void) { a = 0; }
+_LT_EOF
+], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
+class Foo
+{
+public:
+  Foo (void) { a = 0; }
+private:
+  int a;
+};
+_LT_EOF
+], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
+      subroutine foo
+      implicit none
+      integer*4 a
+      a=0
+      return
+      end
+_LT_EOF
+], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
+      subroutine foo
+      implicit none
+      integer a
+      a=0
+      return
+      end
+_LT_EOF
+], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
+public class foo {
+  private int a;
+  public void bar (void) {
+    a = 0;
+  }
+};
+_LT_EOF
+])
+dnl Parse the compiler output and extract the necessary
+dnl objects, libraries and library flags.
+if AC_TRY_EVAL(ac_compile); then
+  # Parse the compiler output and extract the necessary
+  # objects, libraries and library flags.
+
+  # Sentinel used to keep track of whether or not we are before
+  # the conftest object file.
+  pre_test_object_deps_done=no
+
+  for p in `eval "$output_verbose_link_cmd"`; do
+    case $p in
+
+    -L* | -R* | -l*)
+       # Some compilers place space between "-{L,R}" and the path.
+       # Remove the space.
+       if test $p = "-L" ||
+          test $p = "-R"; then
+	 prev=$p
+	 continue
+       else
+	 prev=
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 case $p in
+	 -L* | -R*)
+	   # Internal compiler library paths should come after those
+	   # provided the user.  The postdeps already come after the
+	   # user supplied libs so there is no need to process them.
+	   if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
+	     _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
+	   else
+	     _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
+	   fi
+	   ;;
+	 # The "-l" case would never come before the object being
+	 # linked, so don't bother handling this case.
+	 esac
+       else
+	 if test -z "$_LT_TAGVAR(postdeps, $1)"; then
+	   _LT_TAGVAR(postdeps, $1)="${prev}${p}"
+	 else
+	   _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
+	 fi
+       fi
+       ;;
+
+    *.$objext)
+       # This assumes that the test object file only shows up
+       # once in the compiler output.
+       if test "$p" = "conftest.$objext"; then
+	 pre_test_object_deps_done=yes
+	 continue
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
+	   _LT_TAGVAR(predep_objects, $1)="$p"
+	 else
+	   _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
+	 fi
+       else
+	 if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
+	   _LT_TAGVAR(postdep_objects, $1)="$p"
+	 else
+	   _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
+	 fi
+       fi
+       ;;
+
+    *) ;; # Ignore the rest.
+
+    esac
+  done
+
+  # Clean up.
+  rm -f a.out a.exe
+else
+  echo "libtool.m4: error: problem compiling $1 test program"
+fi
+
+$RM -f confest.$objext
+
+# PORTME: override above test on systems where it is broken
+m4_if([$1], [CXX],
+[case $host_os in
+interix[[3-9]]*)
+  # Interix 3.5 installs completely hosed .la files for C++, so rather than
+  # hack all around it, let's just trust "g++" to DTRT.
+  _LT_TAGVAR(predep_objects,$1)=
+  _LT_TAGVAR(postdep_objects,$1)=
+  _LT_TAGVAR(postdeps,$1)=
+  ;;
+
+linux*)
+  case `$CC -V 2>&1 | sed 5q` in
+  *Sun\ C*)
+    # Sun C++ 5.9
+
+    # The more standards-conforming stlport4 library is
+    # incompatible with the Cstd library. Avoid specifying
+    # it if it's in CXXFLAGS. Ignore libCrun as
+    # -library=stlport4 depends on it.
+    case " $CXX $CXXFLAGS " in
+    *" -library=stlport4 "*)
+      solaris_use_stlport4=yes
+      ;;
+    esac
+
+    if test "$solaris_use_stlport4" != yes; then
+      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
+    fi
+    ;;
+  esac
+  ;;
+
+solaris*)
+  case $cc_basename in
+  CC*)
+    # The more standards-conforming stlport4 library is
+    # incompatible with the Cstd library. Avoid specifying
+    # it if it's in CXXFLAGS. Ignore libCrun as
+    # -library=stlport4 depends on it.
+    case " $CXX $CXXFLAGS " in
+    *" -library=stlport4 "*)
+      solaris_use_stlport4=yes
+      ;;
+    esac
+
+    # Adding this requires a known-good setup of shared libraries for
+    # Sun compiler versions before 5.6, else PIC objects from an old
+    # archive will be linked into the output, leading to subtle bugs.
+    if test "$solaris_use_stlport4" != yes; then
+      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
+    fi
+    ;;
+  esac
+  ;;
+esac
+])
+
+case " $_LT_TAGVAR(postdeps, $1) " in
+*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
+esac
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=
+if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+fi
+_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
+    [The directories searched by this compiler when creating a shared library])
+_LT_TAGDECL([], [predep_objects], [1],
+    [Dependencies to place before and after the objects being linked to
+    create a shared library])
+_LT_TAGDECL([], [postdep_objects], [1])
+_LT_TAGDECL([], [predeps], [1])
+_LT_TAGDECL([], [postdeps], [1])
+_LT_TAGDECL([], [compiler_lib_search_path], [1],
+    [The library search path used internally by the compiler when linking
+    a shared library])
+])# _LT_SYS_HIDDEN_LIBDEPS
+
+
+# _LT_PROG_F77
+# ------------
+# Since AC_PROG_F77 is broken, in that it returns the empty string
+# if there is no fortran compiler, we have our own version here.
+m4_defun([_LT_PROG_F77],
+[
+pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes])
+AC_PROG_F77
+if test -z "$F77" || test "X$F77" = "Xno"; then
+  _lt_disable_F77=yes
+fi
+popdef([AC_MSG_ERROR])
+])# _LT_PROG_F77
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([_LT_PROG_F77], [])
+
+
+# _LT_LANG_F77_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a Fortran 77 compiler are
+# suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_F77_CONFIG],
+[AC_REQUIRE([_LT_PROG_F77])dnl
+AC_LANG_PUSH(Fortran 77)
+
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the F77 compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_disable_F77" != yes; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="\
+      subroutine t
+      return
+      end
+"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code="\
+      program t
+      end
+"
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC="$CC"
+  lt_save_GCC=$GCC
+  CC=${F77-"f77"}
+  compiler=$CC
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+  GCC=$G77
+  if test -n "$compiler"; then
+    AC_MSG_CHECKING([if libtool supports shared libraries])
+    AC_MSG_RESULT([$can_build_shared])
+
+    AC_MSG_CHECKING([whether to build shared libraries])
+    test "$can_build_shared" = "no" && enable_shared=no
+
+    # On AIX, shared libraries and static libraries use the same namespace, and
+    # are all built from PIC.
+    case $host_os in
+      aix3*)
+        test "$enable_shared" = yes && enable_static=no
+        if test -n "$RANLIB"; then
+          archive_cmds="$archive_cmds~\$RANLIB \$lib"
+          postinstall_cmds='$RANLIB $lib'
+        fi
+        ;;
+      aix[[4-9]]*)
+	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+	  test "$enable_shared" = yes && enable_static=no
+	fi
+        ;;
+    esac
+    AC_MSG_RESULT([$enable_shared])
+
+    AC_MSG_CHECKING([whether to build static libraries])
+    # Make sure either enable_shared or enable_static is yes.
+    test "$enable_shared" = yes || enable_static=yes
+    AC_MSG_RESULT([$enable_static])
+
+    _LT_TAGVAR(GCC, $1)="$G77"
+    _LT_TAGVAR(LD, $1)="$LD"
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  GCC=$lt_save_GCC
+  CC="$lt_save_CC"
+fi # test "$_lt_disable_F77" != yes
+
+AC_LANG_POP
+])# _LT_LANG_F77_CONFIG
+
+
+# _LT_PROG_FC
+# -----------
+# Since AC_PROG_FC is broken, in that it returns the empty string
+# if there is no fortran compiler, we have our own version here.
+m4_defun([_LT_PROG_FC],
+[
+pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes])
+AC_PROG_FC
+if test -z "$FC" || test "X$FC" = "Xno"; then
+  _lt_disable_FC=yes
+fi
+popdef([AC_MSG_ERROR])
+])# _LT_PROG_FC
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([_LT_PROG_FC], [])
+
+
+# _LT_LANG_FC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for a Fortran compiler are
+# suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_FC_CONFIG],
+[AC_REQUIRE([_LT_PROG_FC])dnl
+AC_LANG_PUSH(Fortran)
+
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for fc test sources.
+ac_ext=${ac_fc_srcext-f}
+
+# Object file extension for compiled fc test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the FC compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_disable_FC" != yes; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="\
+      subroutine t
+      return
+      end
+"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code="\
+      program t
+      end
+"
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC="$CC"
+  lt_save_GCC=$GCC
+  CC=${FC-"f95"}
+  compiler=$CC
+  GCC=$ac_cv_fc_compiler_gnu
+
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+
+  if test -n "$compiler"; then
+    AC_MSG_CHECKING([if libtool supports shared libraries])
+    AC_MSG_RESULT([$can_build_shared])
+
+    AC_MSG_CHECKING([whether to build shared libraries])
+    test "$can_build_shared" = "no" && enable_shared=no
+
+    # On AIX, shared libraries and static libraries use the same namespace, and
+    # are all built from PIC.
+    case $host_os in
+      aix3*)
+        test "$enable_shared" = yes && enable_static=no
+        if test -n "$RANLIB"; then
+          archive_cmds="$archive_cmds~\$RANLIB \$lib"
+          postinstall_cmds='$RANLIB $lib'
+        fi
+        ;;
+      aix[[4-9]]*)
+	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+	  test "$enable_shared" = yes && enable_static=no
+	fi
+        ;;
+    esac
+    AC_MSG_RESULT([$enable_shared])
+
+    AC_MSG_CHECKING([whether to build static libraries])
+    # Make sure either enable_shared or enable_static is yes.
+    test "$enable_shared" = yes || enable_static=yes
+    AC_MSG_RESULT([$enable_static])
+
+    _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu"
+    _LT_TAGVAR(LD, $1)="$LD"
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_SYS_HIDDEN_LIBDEPS($1)
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  GCC=$lt_save_GCC
+  CC="$lt_save_CC"
+fi # test "$_lt_disable_FC" != yes
+
+AC_LANG_POP
+])# _LT_LANG_FC_CONFIG
+
+
+# _LT_LANG_GCJ_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Java Compiler compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_GCJ_CONFIG],
+[AC_REQUIRE([LT_PROG_GCJ])dnl
+AC_LANG_SAVE
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+lt_save_GCC=$GCC
+GCC=yes
+CC=${GCJ-"gcj"}
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)="$LD"
+_LT_CC_BASENAME([$compiler])
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+
+  _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC="$lt_save_CC"
+])# _LT_LANG_GCJ_CONFIG
+
+
+# _LT_LANG_RC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for the Windows resource compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_RC_CONFIG],
+[AC_REQUIRE([LT_PROG_RC])dnl
+AC_LANG_SAVE
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="$lt_simple_compile_test_code"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+lt_save_GCC=$GCC
+GCC=
+CC=${RC-"windres"}
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+
+if test -n "$compiler"; then
+  :
+  _LT_CONFIG($1)
+fi
+
+GCC=$lt_save_GCC
+AC_LANG_RESTORE
+CC="$lt_save_CC"
+])# _LT_LANG_RC_CONFIG
+
+
+# LT_PROG_GCJ
+# -----------
+AC_DEFUN([LT_PROG_GCJ],
+[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
+  [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
+    [AC_CHECK_TOOL(GCJ, gcj,)
+      test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
+      AC_SUBST(GCJFLAGS)])])[]dnl
+])
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
+
+
+# LT_PROG_RC
+# ----------
+AC_DEFUN([LT_PROG_RC],
+[AC_CHECK_TOOL(RC, windres,)
+])
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_RC], [])
+
+
+# _LT_DECL_EGREP
+# --------------
+# If we don't have a new enough Autoconf to choose the best grep
+# available, choose the one first in the user's PATH.
+m4_defun([_LT_DECL_EGREP],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_REQUIRE([AC_PROG_FGREP])dnl
+test -z "$GREP" && GREP=grep
+_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
+_LT_DECL([], [EGREP], [1], [An ERE matcher])
+_LT_DECL([], [FGREP], [1], [A literal string matcher])
+dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
+AC_SUBST([GREP])
+])
+
+
+# _LT_DECL_OBJDUMP
+# --------------
+# If we don't have a new enough Autoconf to choose the best objdump
+# available, choose the one first in the user's PATH.
+m4_defun([_LT_DECL_OBJDUMP],
+[AC_CHECK_TOOL(OBJDUMP, objdump, false)
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
+AC_SUBST([OBJDUMP])
+])
+
+
+# _LT_DECL_SED
+# ------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible.  Prefer GNU sed if found.
+m4_defun([_LT_DECL_SED],
+[AC_PROG_SED
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
+_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
+    [Sed that helps us avoid accidentally triggering echo(1) options like -n])
+])# _LT_DECL_SED
+
+m4_ifndef([AC_PROG_SED], [
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+
+m4_defun([AC_PROG_SED],
+[AC_MSG_CHECKING([for a sed that does not truncate output])
+AC_CACHE_VAL(lt_cv_path_SED,
+[# Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for lt_ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+      fi
+    done
+  done
+done
+IFS=$as_save_IFS
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+  test ! -f $lt_ac_sed && continue
+  cat /dev/null > conftest.in
+  lt_ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+  # Check for GNU sed and select it if it is found.
+  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+    lt_cv_path_SED=$lt_ac_sed
+    break
+  fi
+  while true; do
+    cat conftest.in conftest.in >conftest.tmp
+    mv conftest.tmp conftest.in
+    cp conftest.in conftest.nl
+    echo >>conftest.nl
+    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+    cmp -s conftest.out conftest.nl || break
+    # 10000 chars as input seems more than enough
+    test $lt_ac_count -gt 10 && break
+    lt_ac_count=`expr $lt_ac_count + 1`
+    if test $lt_ac_count -gt $lt_ac_max; then
+      lt_ac_max=$lt_ac_count
+      lt_cv_path_SED=$lt_ac_sed
+    fi
+  done
+done
+])
+SED=$lt_cv_path_SED
+AC_SUBST([SED])
+AC_MSG_RESULT([$SED])
+])#AC_PROG_SED
+])#m4_ifndef
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_SED], [])
+
+
+# _LT_CHECK_SHELL_FEATURES
+# ------------------------
+# Find out whether the shell is Bourne or XSI compatible,
+# or has some other useful features.
+m4_defun([_LT_CHECK_SHELL_FEATURES],
+[AC_MSG_CHECKING([whether the shell understands some XSI constructs])
+# Try some XSI features
+xsi_shell=no
+( _lt_dummy="a/b/c"
+  test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
+      = c,a/b,, \
+    && eval 'test $(( 1 + 1 )) -eq 2 \
+    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+  && xsi_shell=yes
+AC_MSG_RESULT([$xsi_shell])
+_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
+
+AC_MSG_CHECKING([whether the shell understands "+="])
+lt_shell_append=no
+( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \
+    >/dev/null 2>&1 \
+  && lt_shell_append=yes
+AC_MSG_RESULT([$lt_shell_append])
+_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
+
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  lt_unset=unset
+else
+  lt_unset=false
+fi
+_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+  lt_SP2NL='tr \040 \012'
+  lt_NL2SP='tr \015\012 \040\040'
+  ;;
+ *) # EBCDIC based system
+  lt_SP2NL='tr \100 \n'
+  lt_NL2SP='tr \r\n \100\100'
+  ;;
+esac
+_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
+_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
+])# _LT_CHECK_SHELL_FEATURES
+
+
+# _LT_PROG_XSI_SHELLFNS
+# ---------------------
+# Bourne and XSI compatible variants of some useful shell functions.
+m4_defun([_LT_PROG_XSI_SHELLFNS],
+[case $xsi_shell in
+  yes)
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+  case ${1} in
+    */*) func_dirname_result="${1%/*}${2}" ;;
+    *  ) func_dirname_result="${3}" ;;
+  esac
+}
+
+# func_basename file
+func_basename ()
+{
+  func_basename_result="${1##*/}"
+}
+
+# func_dirname_and_basename file append nondir_replacement
+# perform func_basename and func_dirname in a single function
+# call:
+#   dirname:  Compute the dirname of FILE.  If nonempty,
+#             add APPEND to the result, otherwise set result
+#             to NONDIR_REPLACEMENT.
+#             value returned in "$func_dirname_result"
+#   basename: Compute filename of FILE.
+#             value retuned in "$func_basename_result"
+# Implementation must be kept synchronized with func_dirname
+# and func_basename. For efficiency, we do not delegate to
+# those functions but instead duplicate the functionality here.
+func_dirname_and_basename ()
+{
+  case ${1} in
+    */*) func_dirname_result="${1%/*}${2}" ;;
+    *  ) func_dirname_result="${3}" ;;
+  esac
+  func_basename_result="${1##*/}"
+}
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+func_stripname ()
+{
+  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+  # positional parameters, so assign one to ordinary parameter first.
+  func_stripname_result=${3}
+  func_stripname_result=${func_stripname_result#"${1}"}
+  func_stripname_result=${func_stripname_result%"${2}"}
+}
+
+# func_opt_split
+func_opt_split ()
+{
+  func_opt_split_opt=${1%%=*}
+  func_opt_split_arg=${1#*=}
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+  case ${1} in
+    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+    *)    func_lo2o_result=${1} ;;
+  esac
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+  func_xform_result=${1%.*}.lo
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+  func_arith_result=$(( $[*] ))
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+  func_len_result=${#1}
+}
+
+_LT_EOF
+    ;;
+  *) # Bourne compatible functions.
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+  # Extract subdirectory from the argument.
+  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
+  if test "X$func_dirname_result" = "X${1}"; then
+    func_dirname_result="${3}"
+  else
+    func_dirname_result="$func_dirname_result${2}"
+  fi
+}
+
+# func_basename file
+func_basename ()
+{
+  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
+}
+
+dnl func_dirname_and_basename
+dnl A portable version of this function is already defined in general.m4sh
+dnl so there is no need for it here.
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+# func_strip_suffix prefix name
+func_stripname ()
+{
+  case ${2} in
+    .*) func_stripname_result=`$ECHO "X${3}" \
+           | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
+    *)  func_stripname_result=`$ECHO "X${3}" \
+           | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
+  esac
+}
+
+# sed scripts:
+my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q'
+my_sed_long_arg='1s/^-[[^=]]*=//'
+
+# func_opt_split
+func_opt_split ()
+{
+  func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
+  func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+  func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+  func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'`
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+  func_arith_result=`expr "$[@]"`
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+  func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len`
+}
+
+_LT_EOF
+esac
+
+case $lt_shell_append in
+  yes)
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+  eval "$[1]+=\$[2]"
+}
+_LT_EOF
+    ;;
+  *)
+    cat << \_LT_EOF >> "$cfgfile"
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+  eval "$[1]=\$$[1]\$[2]"
+}
+
+_LT_EOF
+    ;;
+  esac
+])
+
+# Helper functions for option handling.                    -*- Autoconf -*-
+#
+#   Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+#   Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 6 ltoptions.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
+
+
+# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
+# ------------------------------------------
+m4_define([_LT_MANGLE_OPTION],
+[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
+
+
+# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
+# ---------------------------------------
+# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
+# matching handler defined, dispatch to it.  Other OPTION-NAMEs are
+# saved as a flag.
+m4_define([_LT_SET_OPTION],
+[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
+m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
+        _LT_MANGLE_DEFUN([$1], [$2]),
+    [m4_warning([Unknown $1 option `$2'])])[]dnl
+])
+
+
+# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
+# ------------------------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+m4_define([_LT_IF_OPTION],
+[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
+
+
+# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
+# -------------------------------------------------------
+# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
+# are set.
+m4_define([_LT_UNLESS_OPTIONS],
+[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+	    [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
+		      [m4_define([$0_found])])])[]dnl
+m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
+])[]dnl
+])
+
+
+# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
+# ----------------------------------------
+# OPTION-LIST is a space-separated list of Libtool options associated
+# with MACRO-NAME.  If any OPTION has a matching handler declared with
+# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
+# the unknown option and exit.
+m4_defun([_LT_SET_OPTIONS],
+[# Set options
+m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+    [_LT_SET_OPTION([$1], _LT_Option)])
+
+m4_if([$1],[LT_INIT],[
+  dnl
+  dnl Simply set some default values (i.e off) if boolean options were not
+  dnl specified:
+  _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
+  ])
+  _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
+  ])
+  dnl
+  dnl If no reference was made to various pairs of opposing options, then
+  dnl we run the default mode handler for the pair.  For example, if neither
+  dnl `shared' nor `disable-shared' was passed, we enable building of shared
+  dnl archives by default:
+  _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
+  _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
+  _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
+  _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
+  		   [_LT_ENABLE_FAST_INSTALL])
+  ])
+])# _LT_SET_OPTIONS
+
+
+
+# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
+# -----------------------------------------
+m4_define([_LT_MANGLE_DEFUN],
+[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
+
+
+# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
+# -----------------------------------------------
+m4_define([LT_OPTION_DEFINE],
+[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
+])# LT_OPTION_DEFINE
+
+
+# dlopen
+# ------
+LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
+])
+
+AU_DEFUN([AC_LIBTOOL_DLOPEN],
+[_LT_SET_OPTION([LT_INIT], [dlopen])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `dlopen' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
+
+
+# win32-dll
+# ---------
+# Declare package support for building win32 dll's.
+LT_OPTION_DEFINE([LT_INIT], [win32-dll],
+[enable_win32_dll=yes
+
+case $host in
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
+  AC_CHECK_TOOL(AS, as, false)
+  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+  AC_CHECK_TOOL(OBJDUMP, objdump, false)
+  ;;
+esac
+
+test -z "$AS" && AS=as
+_LT_DECL([], [AS],      [0], [Assembler program])dnl
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl
+])# win32-dll
+
+AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+_LT_SET_OPTION([LT_INIT], [win32-dll])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `win32-dll' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
+
+
+# _LT_ENABLE_SHARED([DEFAULT])
+# ----------------------------
+# implement the --enable-shared flag, and supports the `shared' and
+# `disable-shared' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_SHARED],
+[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([shared],
+    [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+	[build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_shared=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
+
+    _LT_DECL([build_libtool_libs], [enable_shared], [0],
+	[Whether or not to build shared libraries])
+])# _LT_ENABLE_SHARED
+
+LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
+])
+
+AC_DEFUN([AC_DISABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], [disable-shared])
+])
+
+AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_SHARED], [])
+dnl AC_DEFUN([AM_DISABLE_SHARED], [])
+
+
+
+# _LT_ENABLE_STATIC([DEFAULT])
+# ----------------------------
+# implement the --enable-static flag, and support the `static' and
+# `disable-static' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_STATIC],
+[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([static],
+    [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+	[build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_static=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
+
+    _LT_DECL([build_old_libs], [enable_static], [0],
+	[Whether or not to build static libraries])
+])# _LT_ENABLE_STATIC
+
+LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
+])
+
+AC_DEFUN([AC_DISABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], [disable-static])
+])
+
+AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_STATIC], [])
+dnl AC_DEFUN([AM_DISABLE_STATIC], [])
+
+
+
+# _LT_ENABLE_FAST_INSTALL([DEFAULT])
+# ----------------------------------
+# implement the --enable-fast-install flag, and support the `fast-install'
+# and `disable-fast-install' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_FAST_INSTALL],
+[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([fast-install],
+    [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+    [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_fast_install=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
+
+_LT_DECL([fast_install], [enable_fast_install], [0],
+	 [Whether or not to optimize for fast installation])dnl
+])# _LT_ENABLE_FAST_INSTALL
+
+LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
+
+# Old names:
+AU_DEFUN([AC_ENABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `fast-install' option into LT_INIT's first parameter.])
+])
+
+AU_DEFUN([AC_DISABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `disable-fast-install' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
+dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
+
+
+# _LT_WITH_PIC([MODE])
+# --------------------
+# implement the --with-pic flag, and support the `pic-only' and `no-pic'
+# LT_INIT options.
+# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
+m4_define([_LT_WITH_PIC],
+[AC_ARG_WITH([pic],
+    [AS_HELP_STRING([--with-pic],
+	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+    [pic_mode="$withval"],
+    [pic_mode=default])
+
+test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
+
+_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
+])# _LT_WITH_PIC
+
+LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
+
+# Old name:
+AU_DEFUN([AC_LIBTOOL_PICMODE],
+[_LT_SET_OPTION([LT_INIT], [pic-only])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `pic-only' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
+
+
+m4_define([_LTDL_MODE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
+		 [m4_define([_LTDL_MODE], [nonrecursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [recursive],
+		 [m4_define([_LTDL_MODE], [recursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [subproject],
+		 [m4_define([_LTDL_MODE], [subproject])])
+
+m4_define([_LTDL_TYPE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [installable],
+		 [m4_define([_LTDL_TYPE], [installable])])
+LT_OPTION_DEFINE([LTDL_INIT], [convenience],
+		 [m4_define([_LTDL_TYPE], [convenience])])
+
+# ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
+#
+# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+# Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 6 ltsugar.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
+
+
+# lt_join(SEP, ARG1, [ARG2...])
+# -----------------------------
+# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
+# associated separator.
+# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
+# versions in m4sugar had bugs.
+m4_define([lt_join],
+[m4_if([$#], [1], [],
+       [$#], [2], [[$2]],
+       [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
+m4_define([_lt_join],
+[m4_if([$#$2], [2], [],
+       [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
+
+
+# lt_car(LIST)
+# lt_cdr(LIST)
+# ------------
+# Manipulate m4 lists.
+# These macros are necessary as long as will still need to support
+# Autoconf-2.59 which quotes differently.
+m4_define([lt_car], [[$1]])
+m4_define([lt_cdr],
+[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
+       [$#], 1, [],
+       [m4_dquote(m4_shift($@))])])
+m4_define([lt_unquote], $1)
+
+
+# lt_append(MACRO-NAME, STRING, [SEPARATOR])
+# ------------------------------------------
+# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
+# Note that neither SEPARATOR nor STRING are expanded; they are appended
+# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
+# No SEPARATOR is output if MACRO-NAME was previously undefined (different
+# than defined and empty).
+#
+# This macro is needed until we can rely on Autoconf 2.62, since earlier
+# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
+m4_define([lt_append],
+[m4_define([$1],
+	   m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
+
+
+
+# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
+# ----------------------------------------------------------
+# Produce a SEP delimited list of all paired combinations of elements of
+# PREFIX-LIST with SUFFIX1 through SUFFIXn.  Each element of the list
+# has the form PREFIXmINFIXSUFFIXn.
+# Needed until we can rely on m4_combine added in Autoconf 2.62.
+m4_define([lt_combine],
+[m4_if(m4_eval([$# > 3]), [1],
+       [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
+[[m4_foreach([_Lt_prefix], [$2],
+	     [m4_foreach([_Lt_suffix],
+		]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
+	[_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
+
+
+# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
+# -----------------------------------------------------------------------
+# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
+# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
+m4_define([lt_if_append_uniq],
+[m4_ifdef([$1],
+	  [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
+		 [lt_append([$1], [$2], [$3])$4],
+		 [$5])],
+	  [lt_append([$1], [$2], [$3])$4])])
+
+
+# lt_dict_add(DICT, KEY, VALUE)
+# -----------------------------
+m4_define([lt_dict_add],
+[m4_define([$1($2)], [$3])])
+
+
+# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
+# --------------------------------------------
+m4_define([lt_dict_add_subkey],
+[m4_define([$1($2:$3)], [$4])])
+
+
+# lt_dict_fetch(DICT, KEY, [SUBKEY])
+# ----------------------------------
+m4_define([lt_dict_fetch],
+[m4_ifval([$3],
+	m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
+    m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
+
+
+# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
+# -----------------------------------------------------------------
+m4_define([lt_if_dict_fetch],
+[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
+	[$5],
+    [$6])])
+
+
+# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
+# --------------------------------------------------------------
+m4_define([lt_dict_filter],
+[m4_if([$5], [], [],
+  [lt_join(m4_quote(m4_default([$4], [[, ]])),
+           lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
+		      [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
+])
+
+# ltversion.m4 -- version numbers			-*- Autoconf -*-
+#
+#   Copyright (C) 2004 Free Software Foundation, Inc.
+#   Written by Scott James Remnant, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# Generated from ltversion.in.
+
+# serial 3017 ltversion.m4
+# This file is part of GNU Libtool
+
+m4_define([LT_PACKAGE_VERSION], [2.2.6b])
+m4_define([LT_PACKAGE_REVISION], [1.3017])
+
+AC_DEFUN([LTVERSION_VERSION],
+[macro_version='2.2.6b'
+macro_revision='1.3017'
+_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
+_LT_DECL(, macro_revision, 0)
+])
+
+# lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
+#
+#   Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
+#   Written by Scott James Remnant, 2004.
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 4 lt~obsolete.m4
+
+# These exist entirely to fool aclocal when bootstrapping libtool.
+#
+# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
+# which have later been changed to m4_define as they aren't part of the
+# exported API, or moved to Autoconf or Automake where they belong.
+#
+# The trouble is, aclocal is a bit thick.  It'll see the old AC_DEFUN
+# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
+# using a macro with the same name in our local m4/libtool.m4 it'll
+# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
+# and doesn't know about Autoconf macros at all.)
+#
+# So we provide this file, which has a silly filename so it's always
+# included after everything else.  This provides aclocal with the
+# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
+# because those macros already exist, or will be overwritten later.
+# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. 
+#
+# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
+# Yes, that means every name once taken will need to remain here until
+# we give up compatibility with versions before 1.7, at which point
+# we need to keep only those names which we still refer to.
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
+
+m4_ifndef([AC_LIBTOOL_LINKER_OPTION],	[AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
+m4_ifndef([AC_PROG_EGREP],		[AC_DEFUN([AC_PROG_EGREP])])
+m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_AC_SHELL_INIT],		[AC_DEFUN([_LT_AC_SHELL_INIT])])
+m4_ifndef([_LT_AC_SYS_LIBPATH_AIX],	[AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
+m4_ifndef([_LT_PROG_LTMAIN],		[AC_DEFUN([_LT_PROG_LTMAIN])])
+m4_ifndef([_LT_AC_TAGVAR],		[AC_DEFUN([_LT_AC_TAGVAR])])
+m4_ifndef([AC_LTDL_ENABLE_INSTALL],	[AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
+m4_ifndef([AC_LTDL_PREOPEN],		[AC_DEFUN([AC_LTDL_PREOPEN])])
+m4_ifndef([_LT_AC_SYS_COMPILER],	[AC_DEFUN([_LT_AC_SYS_COMPILER])])
+m4_ifndef([_LT_AC_LOCK],		[AC_DEFUN([_LT_AC_LOCK])])
+m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE],	[AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
+m4_ifndef([_LT_AC_TRY_DLOPEN_SELF],	[AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
+m4_ifndef([AC_LIBTOOL_PROG_CC_C_O],	[AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
+m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
+m4_ifndef([AC_LIBTOOL_OBJDIR],		[AC_DEFUN([AC_LIBTOOL_OBJDIR])])
+m4_ifndef([AC_LTDL_OBJDIR],		[AC_DEFUN([AC_LTDL_OBJDIR])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
+m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP],	[AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
+m4_ifndef([AC_PATH_MAGIC],		[AC_DEFUN([AC_PATH_MAGIC])])
+m4_ifndef([AC_PROG_LD_GNU],		[AC_DEFUN([AC_PROG_LD_GNU])])
+m4_ifndef([AC_PROG_LD_RELOAD_FLAG],	[AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
+m4_ifndef([AC_DEPLIBS_CHECK_METHOD],	[AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
+m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS],	[AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
+m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP],	[AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
+m4_ifndef([LT_AC_PROG_EGREP],		[AC_DEFUN([LT_AC_PROG_EGREP])])
+m4_ifndef([LT_AC_PROG_SED],		[AC_DEFUN([LT_AC_PROG_SED])])
+m4_ifndef([_LT_CC_BASENAME],		[AC_DEFUN([_LT_CC_BASENAME])])
+m4_ifndef([_LT_COMPILER_BOILERPLATE],	[AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
+m4_ifndef([_LT_LINKER_BOILERPLATE],	[AC_DEFUN([_LT_LINKER_BOILERPLATE])])
+m4_ifndef([_AC_PROG_LIBTOOL],		[AC_DEFUN([_AC_PROG_LIBTOOL])])
+m4_ifndef([AC_LIBTOOL_SETUP],		[AC_DEFUN([AC_LIBTOOL_SETUP])])
+m4_ifndef([_LT_AC_CHECK_DLFCN],		[AC_DEFUN([_LT_AC_CHECK_DLFCN])])
+m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER],	[AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
+m4_ifndef([_LT_AC_TAGCONFIG],		[AC_DEFUN([_LT_AC_TAGCONFIG])])
+m4_ifndef([AC_DISABLE_FAST_INSTALL],	[AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
+m4_ifndef([_LT_AC_LANG_CXX],		[AC_DEFUN([_LT_AC_LANG_CXX])])
+m4_ifndef([_LT_AC_LANG_F77],		[AC_DEFUN([_LT_AC_LANG_F77])])
+m4_ifndef([_LT_AC_LANG_GCJ],		[AC_DEFUN([_LT_AC_LANG_GCJ])])
+m4_ifndef([AC_LIBTOOL_RC],		[AC_DEFUN([AC_LIBTOOL_RC])])
+m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
+m4_ifndef([_LT_AC_LANG_C_CONFIG],	[AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
+m4_ifndef([_LT_AC_LANG_CXX_CONFIG],	[AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
+m4_ifndef([_LT_AC_LANG_F77_CONFIG],	[AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
+m4_ifndef([_LT_AC_LANG_GCJ_CONFIG],	[AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
+m4_ifndef([_LT_AC_LANG_RC_CONFIG],	[AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
+m4_ifndef([AC_LIBTOOL_CONFIG],		[AC_DEFUN([AC_LIBTOOL_CONFIG])])
+m4_ifndef([_LT_AC_FILE_LTDLL_C],	[AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
+
 # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
@@ -1155,8 +9121,3 @@ AC_SUBST([am__untar])
 ]) # _AM_PROG_TAR
 
 m4_include([config/autotroll.m4])
-m4_include([config/libtool.m4])
-m4_include([config/ltoptions.m4])
-m4_include([config/ltsugar.m4])
-m4_include([config/ltversion.m4])
-m4_include([config/lt~obsolete.m4])
diff --git a/autom4te.cache/output.0 b/autom4te.cache/output.0
deleted file mode 100644
index 26594eb..0000000
--- a/autom4te.cache/output.0
+++ /dev/null
@@ -1,19664 +0,0 @@
-@%:@! /bin/sh
-@%:@ Guess values for system-dependent variables and create Makefiles.
-@%:@ Generated by GNU Autoconf 2.67 for mathgl 1.10.
-@%:@
-@%:@ Report bugs to <mathgl.abalakin at gmail.com>.
-@%:@ 
-@%:@ 
-@%:@ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-@%:@ 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-@%:@ Foundation, Inc.
-@%:@ 
-@%:@ 
-@%:@ This configure script is free software; the Free Software Foundation
-@%:@ gives unlimited permission to copy, distribute and modify it.
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in @%:@(
-  *posix*) :
-    set -o posix ;; @%:@(
-  *) :
-     ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in @%:@(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  PATH_SEPARATOR=:
-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
-    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
-      PATH_SEPARATOR=';'
-  }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-case $0 in @%:@((
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-  done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test "x$CONFIG_SHELL" = x; then
-  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '\${1+\"\$@\"}'='\"\$@\"'
-  setopt NO_GLOB_SUBST
-else
-  case \`(set -o) 2>/dev/null\` in @%:@(
-  *posix*) :
-    set -o posix ;; @%:@(
-  *) :
-     ;;
-esac
-fi
-"
-  as_required="as_fn_return () { (exit \$1); }
-as_fn_success () { as_fn_return 0; }
-as_fn_failure () { as_fn_return 1; }
-as_fn_ret_success () { return 0; }
-as_fn_ret_failure () { return 1; }
-
-exitcode=0
-as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
-  
-else
-  exitcode=1; echo positional parameters were not saved.
-fi
-test x\$exitcode = x0 || exit 1"
-  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
-  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
-  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
-  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1"
-  if (eval "$as_required") 2>/dev/null; then :
-  as_have_required=yes
-else
-  as_have_required=no
-fi
-  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
-  
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  as_found=:
-  case $as_dir in @%:@(
-	 /*)
-	   for as_base in sh bash ksh sh5; do
-	     # Try only shells that exist, to save several forks.
-	     as_shell=$as_dir/$as_base
-	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
-  CONFIG_SHELL=$as_shell as_have_required=yes
-		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
-  break 2
-fi
-fi
-	   done;;
-       esac
-  as_found=false
-done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
-	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
-  CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
-IFS=$as_save_IFS
-
-
-      if test "x$CONFIG_SHELL" != x; then :
-  # We cannot yet assume a decent shell, so we have to provide a
-	# neutralization value for shells without unset; and this also
-	# works around shells that cannot unset nonexistent variables.
-	BASH_ENV=/dev/null
-	ENV=/dev/null
-	(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-	export CONFIG_SHELL
-	exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
-fi
-
-    if test x$as_have_required = xno; then :
-  $as_echo "$0: This script requires a shell more modern than all"
-  $as_echo "$0: the shells that I found on your system."
-  if test x${ZSH_VERSION+set} = xset ; then
-    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
-    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
-  else
-    $as_echo "$0: Please tell bug-autoconf at gnu.org and
-$0: mathgl.abalakin at gmail.com about your system, including
-$0: any error possibly output before this message. Then
-$0: install a modern shell, or manually run the script
-$0: under such a shell if you do have one."
-  fi
-  exit 1
-fi
-fi
-fi
-SHELL=${CONFIG_SHELL-/bin/sh}
-export SHELL
-# Unset more variables known to interfere with behavior of common tools.
-CLICOLOR_FORCE= GREP_OPTIONS=
-unset CLICOLOR_FORCE GREP_OPTIONS
-
-## --------------------- ##
-## M4sh Shell Functions. ##
-## --------------------- ##
-@%:@ as_fn_unset VAR
-@%:@ ---------------
-@%:@ Portably unset VAR.
-as_fn_unset ()
-{
-  { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-@%:@ as_fn_set_status STATUS
-@%:@ -----------------------
-@%:@ Set @S|@? to STATUS, without forking.
-as_fn_set_status ()
-{
-  return $1
-} @%:@ as_fn_set_status
-
-@%:@ as_fn_exit STATUS
-@%:@ -----------------
-@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
-  set +e
-  as_fn_set_status $1
-  exit $1
-} @%:@ as_fn_exit
-
-@%:@ as_fn_mkdir_p
-@%:@ -------------
-@%:@ Create "@S|@as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || eval $as_mkdir_p || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} @%:@ as_fn_mkdir_p
-@%:@ as_fn_append VAR VALUE
-@%:@ ----------------------
-@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take
-@%:@ advantage of any shell optimizations that allow amortized linear growth over
-@%:@ repeated appends, instead of the typical quadratic growth present in naive
-@%:@ implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
-  eval 'as_fn_append ()
-  {
-    eval $1+=\$2
-  }'
-else
-  as_fn_append ()
-  {
-    eval $1=\$$1\$2
-  }
-fi # as_fn_append
-
-@%:@ as_fn_arith ARG...
-@%:@ ------------------
-@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the
-@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments
-@%:@ must be portable across @S|@(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
-  eval 'as_fn_arith ()
-  {
-    as_val=$(( $* ))
-  }'
-else
-  as_fn_arith ()
-  {
-    as_val=`expr "$@" || test $? -eq 1`
-  }
-fi # as_fn_arith
-
-
-@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD]
-@%:@ ----------------------------------------
-@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-@%:@ script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
-  as_status=$1; test $as_status -eq 0 && as_status=1
-  if test "$4"; then
-    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
-  fi
-  $as_echo "$as_me: error: $2" >&2
-  as_fn_exit $as_status
-} @%:@ as_fn_error
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
-  as_lineno_1=$LINENO as_lineno_1a=$LINENO
-  as_lineno_2=$LINENO as_lineno_2a=$LINENO
-  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
-  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
-  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in @%:@(((((
--n*)
-  case `echo 'xy\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  xy)  ECHO_C='\c';;
-  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
-       ECHO_T='	';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
-  if ln -s conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s='ln -s'
-    # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
-  elif ln conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s=ln
-  else
-    as_ln_s='cp -p'
-  fi
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p='mkdir -p "$as_dir"'
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-	test -d "$1/.";
-      else
-	case $1 in @%:@(
-	-*)set "./$1";;
-	esac;
-	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@((
-	???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-case X$lt_ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','`
-  ;;
-esac
-
-ECHO=${lt_ECHO-echo}
-if test "X$1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X$1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
-  # Yippee, $ECHO works!
-  :
-else
-  # Restart under the correct shell.
-  exec $SHELL "$0" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<_LT_EOF
-$*
-_LT_EOF
-  exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test -z "$lt_ECHO"; then
-  if test "X${echo_test_string+set}" != Xset; then
-    # find a string as large as possible, as long as the shell can cope with it
-    for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
-      # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-      if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
-	 { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
-      then
-        break
-      fi
-    done
-  fi
-
-  if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-     echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-     test "X$echo_testing_string" = "X$echo_test_string"; then
-    :
-  else
-    # The Solaris, AIX, and Digital Unix default echo programs unquote
-    # backslashes.  This makes it impossible to quote backslashes using
-    #   echo "$something" | sed 's/\\/\\\\/g'
-    #
-    # So, first we look for a working echo in the user's PATH.
-
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for dir in $PATH /usr/ucb; do
-      IFS="$lt_save_ifs"
-      if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-         test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        ECHO="$dir/echo"
-        break
-      fi
-    done
-    IFS="$lt_save_ifs"
-
-    if test "X$ECHO" = Xecho; then
-      # We didn't find a better echo, so look for alternatives.
-      if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        # This shell has a builtin print -r that does the trick.
-        ECHO='print -r'
-      elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
-	   test "X$CONFIG_SHELL" != X/bin/ksh; then
-        # If we have ksh, try running configure again with it.
-        ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-        export ORIGINAL_CONFIG_SHELL
-        CONFIG_SHELL=/bin/ksh
-        export CONFIG_SHELL
-        exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
-      else
-        # Try using printf.
-        ECHO='printf %s\n'
-        if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-	   echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-	   test "X$echo_testing_string" = "X$echo_test_string"; then
-	  # Cool, printf works
-	  :
-        elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
-	     test "X$echo_testing_string" = 'X\t' &&
-	     echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	     test "X$echo_testing_string" = "X$echo_test_string"; then
-	  CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-	  export CONFIG_SHELL
-	  SHELL="$CONFIG_SHELL"
-	  export SHELL
-	  ECHO="$CONFIG_SHELL $0 --fallback-echo"
-        elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
-	     test "X$echo_testing_string" = 'X\t' &&
-	     echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	     test "X$echo_testing_string" = "X$echo_test_string"; then
-	  ECHO="$CONFIG_SHELL $0 --fallback-echo"
-        else
-	  # maybe with a smaller string...
-	  prev=:
-
-	  for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
-	    if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
-	    then
-	      break
-	    fi
-	    prev="$cmd"
-	  done
-
-	  if test "$prev" != 'sed 50q "$0"'; then
-	    echo_test_string=`eval $prev`
-	    export echo_test_string
-	    exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
-	  else
-	    # Oops.  We lost completely, so just stick with echo.
-	    ECHO=echo
-	  fi
-        fi
-      fi
-    fi
-  fi
-fi
-
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-lt_ECHO=$ECHO
-if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
-   lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
-fi
-
-
-
-as_awk_strverscmp='
-  # Use only awk features that work with 7th edition Unix awk (1978).
-  # My, what an old awk you have, Mr. Solaris!
-  END {
-    while (length(v1) && length(v2)) {
-      # Set d1 to be the next thing to compare from v1, and likewise for d2.
-      # Normally this is a single character, but if v1 and v2 contain digits,
-      # compare them as integers and fractions as strverscmp does.
-      if (v1 ~ /^[0-9]/ && v2 ~ /^[0-9]/) {
-	# Split v1 and v2 into their leading digit string components d1 and d2,
-	# and advance v1 and v2 past the leading digit strings.
-	for (len1 = 1; substr(v1, len1 + 1) ~ /^[0-9]/; len1++) continue
-	for (len2 = 1; substr(v2, len2 + 1) ~ /^[0-9]/; len2++) continue
-	d1 = substr(v1, 1, len1); v1 = substr(v1, len1 + 1)
-	d2 = substr(v2, 1, len2); v2 = substr(v2, len2 + 1)
-	if (d1 ~ /^0/) {
-	  if (d2 ~ /^0/) {
-	    # Compare two fractions.
-	    while (d1 ~ /^0/ && d2 ~ /^0/) {
-	      d1 = substr(d1, 2); len1--
-	      d2 = substr(d2, 2); len2--
-	    }
-	    if (len1 != len2 && ! (len1 && len2 && substr(d1, 1, 1) == substr(d2, 1, 1))) {
-	      # The two components differ in length, and the common prefix
-	      # contains only leading zeros.  Consider the longer to be less.
-	      d1 = -len1
-	      d2 = -len2
-	    } else {
-	      # Otherwise, compare as strings.
-	      d1 = "x" d1
-	      d2 = "x" d2
-	    }
-	  } else {
-	    # A fraction is less than an integer.
-	    exit 1
-	  }
-	} else {
-	  if (d2 ~ /^0/) {
-	    # An integer is greater than a fraction.
-	    exit 2
-	  } else {
-	    # Compare two integers.
-	    d1 += 0
-	    d2 += 0
-	  }
-	}
-      } else {
-	# The normal case, without worrying about digits.
-	d1 = substr(v1, 1, 1); v1 = substr(v1, 2)
-	d2 = substr(v2, 1, 1); v2 = substr(v2, 2)
-      }
-      if (d1 < d2) exit 1
-      if (d1 > d2) exit 2
-    }
-    # Beware Solaris /usr/xgp4/bin/awk (at least through Solaris 10),
-    # which mishandles some comparisons of empty strings to integers.
-    if (length(v2)) exit 1
-    if (length(v1)) exit 2
-  }
-'
-
-test -n "$DJDIR" || exec 7<&0 </dev/null
-exec 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIB@&t at OBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-
-# Identity of this package.
-PACKAGE_NAME='mathgl'
-PACKAGE_TARNAME='mathgl'
-PACKAGE_VERSION='1.10'
-PACKAGE_STRING='mathgl 1.10'
-PACKAGE_BUGREPORT='mathgl.abalakin at gmail.com'
-PACKAGE_URL=''
-
-ac_unique_file="mgl"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-#  include <stdlib.h>
-# endif
-#endif
-#ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-#  include <memory.h>
-# endif
-# include <string.h>
-#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_subst_vars='am__EXEEXT_FALSE
-am__EXEEXT_TRUE
-LTLIBOBJS
-LIB@&t at OBJS
-AM_CXXFLAGS
-USE_DOCS_FALSE
-USE_DOCS_TRUE
-USE_TESTIO_FALSE
-USE_TESTIO_TRUE
-USE_OCTAVE_FALSE
-USE_OCTAVE_TRUE
-OCTAVE_INCFLAGS
-OCTAVE_ARCH
-OCTAVE
-USE_PYTHON_FALSE
-USE_PYTHON_TRUE
-pkgpyexecdir
-pyexecdir
-pkgpythondir
-pythondir
-PYTHON_PLATFORM
-PYTHON_EXEC_PREFIX
-PYTHON_PREFIX
-PYTHON_VERSION
-PYTHON
-HAVE_SWIG
-PYTHON_HEADERS
-USE_QT_FALSE
-USE_QT_TRUE
-QT_VERSION
-QT_LIBS
-QT_LDFLAGS
-QT_LFLAGS
-QT_CPPFLAGS
-QT_INCPATH
-QT_CXXFLAGS
-QT_CFLAGS
-QT_DEFINES
-QT_VERSION_MAJOR
-TMPDIR
-QT_PATH
-RCC
-UIC
-MOC
-QMAKE
-USE_WX_FALSE
-USE_WX_TRUE
-WX_LIBS
-WX_FLAGS
-USE_FLTK_FALSE
-USE_FLTK_TRUE
-FLTK_LIBS
-FLTK_FLAGS
-USE_JPEG_FALSE
-USE_JPEG_TRUE
-JPEG_LIBS
-JPEG_FLAGS
-PNG_LIBS
-USE_GIF_FALSE
-USE_GIF_TRUE
-GIF_LIBS
-GIF_FLAGS
-USE_HDF4_FALSE
-USE_HDF4_TRUE
-HDF4_LIBS
-HDF4_FLAGS
-USE_HDF5_FALSE
-USE_HDF5_TRUE
-HDF5_LIBS
-HDF5_FLAGS
-USE_GLUT_FALSE
-USE_GLUT_TRUE
-GLUT_FLAGS
-GLUT_LIBS
-GL_LIBS
-USE_GSL_FALSE
-USE_GSL_TRUE
-GSL_LIBS
-GSL_FLAGS
-USE_PTHREAD_FALSE
-USE_PTHREAD_TRUE
-PTHREAD_LIBS
-PTHREAD_FLAGS
-CXXCPP
-CPP
-OTOOL64
-OTOOL
-LIPO
-NMEDIT
-DSYMUTIL
-lt_ECHO
-RANLIB
-AR
-LN_S
-NM
-ac_ct_DUMPBIN
-DUMPBIN
-LD
-FGREP
-EGREP
-GREP
-SED
-LIBTOOL
-OBJDUMP
-DLLTOOL
-AS
-host_os
-host_vendor
-host_cpu
-host
-build_os
-build_vendor
-build_cpu
-build
-am__fastdepCXX_FALSE
-am__fastdepCXX_TRUE
-CXXDEPMODE
-ac_ct_CXX
-CXXFLAGS
-CXX
-am__fastdepCC_FALSE
-am__fastdepCC_TRUE
-CCDEPMODE
-AMDEPBACKSLASH
-AMDEP_FALSE
-AMDEP_TRUE
-am__quote
-am__include
-DEPDIR
-OBJEXT
-EXEEXT
-ac_ct_CC
-CPPFLAGS
-LDFLAGS
-CFLAGS
-CC
-am__untar
-am__tar
-AMTAR
-am__leading_dot
-SET_MAKE
-AWK
-mkdir_p
-MKDIR_P
-INSTALL_STRIP_PROGRAM
-STRIP
-install_sh
-MAKEINFO
-AUTOHEADER
-AUTOMAKE
-AUTOCONF
-ACLOCAL
-VERSION
-PACKAGE
-CYGPATH_W
-am__isrc
-INSTALL_DATA
-INSTALL_SCRIPT
-INSTALL_PROGRAM
-MGL_AGE
-MGL_REVISION
-MGL_CURRENT
-MGL_RELEASE
-target_alias
-host_alias
-build_alias
-LIBS
-ECHO_T
-ECHO_N
-ECHO_C
-DEFS
-mandir
-localedir
-libdir
-psdir
-pdfdir
-dvidir
-htmldir
-infodir
-docdir
-oldincludedir
-includedir
-localstatedir
-sharedstatedir
-sysconfdir
-datadir
-datarootdir
-libexecdir
-sbindir
-bindir
-program_transform_name
-prefix
-exec_prefix
-PACKAGE_URL
-PACKAGE_BUGREPORT
-PACKAGE_STRING
-PACKAGE_VERSION
-PACKAGE_TARNAME
-PACKAGE_NAME
-PATH_SEPARATOR
-SHELL'
-ac_subst_files=''
-ac_user_opts='
-enable_option_checking
-enable_dependency_tracking
-enable_shared
-enable_static
-with_pic
-enable_fast_install
-with_gnu_ld
-enable_libtool_lock
-enable_double
-enable_all
-enable_langall
-enable_pthread
-enable_gsl
-enable_glut
-enable_hdf5
-enable_hdf5_18
-enable_hdf4
-enable_gif
-enable_jpeg
-enable_fltk
-enable_wx
-enable_qt
-with_qt
-enable_python
-enable_octave
-enable_testio
-enable_docs
-'
-      ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-CXX
-CXXFLAGS
-CCC
-CPP
-CXXCPP
-TMPDIR'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-ac_unrecognized_opts=
-ac_unrecognized_sep=
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
-  # If the previous option needs an argument, assign it.
-  if test -n "$ac_prev"; then
-    eval $ac_prev=\$ac_option
-    ac_prev=
-    continue
-  fi
-
-  case $ac_option in
-  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
-  *=)   ac_optarg= ;;
-  *)    ac_optarg=yes ;;
-  esac
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case $ac_dashdash$ac_option in
-  --)
-    ac_dashdash=yes ;;
-
-  -bindir | --bindir | --bindi | --bind | --bin | --bi)
-    ac_prev=bindir ;;
-  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-    bindir=$ac_optarg ;;
-
-  -build | --build | --buil | --bui | --bu)
-    ac_prev=build_alias ;;
-  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-    build_alias=$ac_optarg ;;
-
-  -cache-file | --cache-file | --cache-fil | --cache-fi \
-  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
-    ac_prev=cache_file ;;
-  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
-  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
-    cache_file=$ac_optarg ;;
-
-  --config-cache | -C)
-    cache_file=config.cache ;;
-
-  -datadir | --datadir | --datadi | --datad)
-    ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=*)
-    datadir=$ac_optarg ;;
-
-  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
-  | --dataroo | --dataro | --datar)
-    ac_prev=datarootdir ;;
-  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
-  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
-    datarootdir=$ac_optarg ;;
-
-  -disable-* | --disable-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"enable_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval enable_$ac_useropt=no ;;
-
-  -docdir | --docdir | --docdi | --doc | --do)
-    ac_prev=docdir ;;
-  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
-    docdir=$ac_optarg ;;
-
-  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
-    ac_prev=dvidir ;;
-  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
-    dvidir=$ac_optarg ;;
-
-  -enable-* | --enable-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"enable_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval enable_$ac_useropt=\$ac_optarg ;;
-
-  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
-  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
-  | --exec | --exe | --ex)
-    ac_prev=exec_prefix ;;
-  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
-  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
-  | --exec=* | --exe=* | --ex=*)
-    exec_prefix=$ac_optarg ;;
-
-  -gas | --gas | --ga | --g)
-    # Obsolete; use --with-gas.
-    with_gas=yes ;;
-
-  -help | --help | --hel | --he | -h)
-    ac_init_help=long ;;
-  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
-    ac_init_help=recursive ;;
-  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
-    ac_init_help=short ;;
-
-  -host | --host | --hos | --ho)
-    ac_prev=host_alias ;;
-  -host=* | --host=* | --hos=* | --ho=*)
-    host_alias=$ac_optarg ;;
-
-  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
-    ac_prev=htmldir ;;
-  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
-  | --ht=*)
-    htmldir=$ac_optarg ;;
-
-  -includedir | --includedir | --includedi | --included | --include \
-  | --includ | --inclu | --incl | --inc)
-    ac_prev=includedir ;;
-  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
-  | --includ=* | --inclu=* | --incl=* | --inc=*)
-    includedir=$ac_optarg ;;
-
-  -infodir | --infodir | --infodi | --infod | --info | --inf)
-    ac_prev=infodir ;;
-  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-    infodir=$ac_optarg ;;
-
-  -libdir | --libdir | --libdi | --libd)
-    ac_prev=libdir ;;
-  -libdir=* | --libdir=* | --libdi=* | --libd=*)
-    libdir=$ac_optarg ;;
-
-  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
-  | --libexe | --libex | --libe)
-    ac_prev=libexecdir ;;
-  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
-  | --libexe=* | --libex=* | --libe=*)
-    libexecdir=$ac_optarg ;;
-
-  -localedir | --localedir | --localedi | --localed | --locale)
-    ac_prev=localedir ;;
-  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
-    localedir=$ac_optarg ;;
-
-  -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst | --locals)
-    ac_prev=localstatedir ;;
-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
-    localstatedir=$ac_optarg ;;
-
-  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
-    ac_prev=mandir ;;
-  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-    mandir=$ac_optarg ;;
-
-  -nfp | --nfp | --nf)
-    # Obsolete; use --without-fp.
-    with_fp=no ;;
-
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c | -n)
-    no_create=yes ;;
-
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
-    no_recursion=yes ;;
-
-  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
-  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
-  | --oldin | --oldi | --old | --ol | --o)
-    ac_prev=oldincludedir ;;
-  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
-  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
-  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-    oldincludedir=$ac_optarg ;;
-
-  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
-    ac_prev=prefix ;;
-  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-    prefix=$ac_optarg ;;
-
-  -program-prefix | --program-prefix | --program-prefi | --program-pref \
-  | --program-pre | --program-pr | --program-p)
-    ac_prev=program_prefix ;;
-  -program-prefix=* | --program-prefix=* | --program-prefi=* \
-  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-    program_prefix=$ac_optarg ;;
-
-  -program-suffix | --program-suffix | --program-suffi | --program-suff \
-  | --program-suf | --program-su | --program-s)
-    ac_prev=program_suffix ;;
-  -program-suffix=* | --program-suffix=* | --program-suffi=* \
-  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-    program_suffix=$ac_optarg ;;
-
-  -program-transform-name | --program-transform-name \
-  | --program-transform-nam | --program-transform-na \
-  | --program-transform-n | --program-transform- \
-  | --program-transform | --program-transfor \
-  | --program-transfo | --program-transf \
-  | --program-trans | --program-tran \
-  | --progr-tra | --program-tr | --program-t)
-    ac_prev=program_transform_name ;;
-  -program-transform-name=* | --program-transform-name=* \
-  | --program-transform-nam=* | --program-transform-na=* \
-  | --program-transform-n=* | --program-transform-=* \
-  | --program-transform=* | --program-transfor=* \
-  | --program-transfo=* | --program-transf=* \
-  | --program-trans=* | --program-tran=* \
-  | --progr-tra=* | --program-tr=* | --program-t=*)
-    program_transform_name=$ac_optarg ;;
-
-  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
-    ac_prev=pdfdir ;;
-  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
-    pdfdir=$ac_optarg ;;
-
-  -psdir | --psdir | --psdi | --psd | --ps)
-    ac_prev=psdir ;;
-  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
-    psdir=$ac_optarg ;;
-
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil)
-    silent=yes ;;
-
-  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
-    ac_prev=sbindir ;;
-  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
-  | --sbi=* | --sb=*)
-    sbindir=$ac_optarg ;;
-
-  -sharedstatedir | --sharedstatedir | --sharedstatedi \
-  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
-  | --sharedst | --shareds | --shared | --share | --shar \
-  | --sha | --sh)
-    ac_prev=sharedstatedir ;;
-  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
-  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
-  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
-  | --sha=* | --sh=*)
-    sharedstatedir=$ac_optarg ;;
-
-  -site | --site | --sit)
-    ac_prev=site ;;
-  -site=* | --site=* | --sit=*)
-    site=$ac_optarg ;;
-
-  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
-    ac_prev=srcdir ;;
-  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-    srcdir=$ac_optarg ;;
-
-  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
-  | --syscon | --sysco | --sysc | --sys | --sy)
-    ac_prev=sysconfdir ;;
-  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
-  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-    sysconfdir=$ac_optarg ;;
-
-  -target | --target | --targe | --targ | --tar | --ta | --t)
-    ac_prev=target_alias ;;
-  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-    target_alias=$ac_optarg ;;
-
-  -v | -verbose | --verbose | --verbos | --verbo | --verb)
-    verbose=yes ;;
-
-  -version | --version | --versio | --versi | --vers | -V)
-    ac_init_version=: ;;
-
-  -with-* | --with-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"with_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval with_$ac_useropt=\$ac_optarg ;;
-
-  -without-* | --without-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"with_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval with_$ac_useropt=no ;;
-
-  --x)
-    # Obsolete; use --with-x.
-    with_x=yes ;;
-
-  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
-  | --x-incl | --x-inc | --x-in | --x-i)
-    ac_prev=x_includes ;;
-  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
-  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
-    x_includes=$ac_optarg ;;
-
-  -x-libraries | --x-libraries | --x-librarie | --x-librari \
-  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
-    ac_prev=x_libraries ;;
-  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
-  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-    x_libraries=$ac_optarg ;;
-
-  -*) as_fn_error $? "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information"
-    ;;
-
-  *=*)
-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-    # Reject names that are not valid shell variable names.
-    case $ac_envvar in #(
-      '' | [0-9]* | *[!_$as_cr_alnum]* )
-      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
-    esac
-    eval $ac_envvar=\$ac_optarg
-    export $ac_envvar ;;
-
-  *)
-    # FIXME: should be removed in autoconf 3.0.
-    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
-    ;;
-
-  esac
-done
-
-if test -n "$ac_prev"; then
-  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  as_fn_error $? "missing argument to $ac_option"
-fi
-
-if test -n "$ac_unrecognized_opts"; then
-  case $enable_option_checking in
-    no) ;;
-    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
-    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
-  esac
-fi
-
-# Check all directory arguments for consistency.
-for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
-		datadir sysconfdir sharedstatedir localstatedir includedir \
-		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir
-do
-  eval ac_val=\$$ac_var
-  # Remove trailing slashes.
-  case $ac_val in
-    */ )
-      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
-      eval $ac_var=\$ac_val;;
-  esac
-  # Be sure to have absolute directory names.
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* )  continue;;
-    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
-  esac
-  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
-  if test "x$build_alias" = x; then
-    cross_compiling=maybe
-    $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
-    If a cross compiler is detected then cross compile mode will be used" >&2
-  elif test "x$build_alias" != "x$host_alias"; then
-    cross_compiling=yes
-  fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
-  as_fn_error $? "working directory cannot be determined"
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-  as_fn_error $? "pwd does not report name of working directory"
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
-  ac_srcdir_defaulted=yes
-  # Try the directory containing this script, then the parent directory.
-  ac_confdir=`$as_dirname -- "$as_myself" ||
-$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_myself" : 'X\(//\)[^/]' \| \
-	 X"$as_myself" : 'X\(//\)$' \| \
-	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-  srcdir=$ac_confdir
-  if test ! -r "$srcdir/$ac_unique_file"; then
-    srcdir=..
-  fi
-else
-  ac_srcdir_defaulted=no
-fi
-if test ! -r "$srcdir/$ac_unique_file"; then
-  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
-  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
-	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
-	pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
-  srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
-  eval ac_env_${ac_var}_set=\${${ac_var}+set}
-  eval ac_env_${ac_var}_value=\$${ac_var}
-  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
-  eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
-  # 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.
-  cat <<_ACEOF
-\`configure' configures mathgl 1.10 to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE.  See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
-  -h, --help              display this help and exit
-      --help=short        display options specific to this package
-      --help=recursive    display the short help of all the included packages
-  -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking ...' messages
-      --cache-file=FILE   cache test results in FILE [disabled]
-  -C, --config-cache      alias for \`--cache-file=config.cache'
-  -n, --no-create         do not create output files
-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
-
-Installation directories:
-  --prefix=PREFIX         install architecture-independent files in PREFIX
-                          @<:@@S|@ac_default_prefix@:>@
-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-                          @<:@PREFIX@:>@
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
-  --bindir=DIR            user executables [EPREFIX/bin]
-  --sbindir=DIR           system admin executables [EPREFIX/sbin]
-  --libexecdir=DIR        program executables [EPREFIX/libexec]
-  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
-  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
-  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
-  --libdir=DIR            object code libraries [EPREFIX/lib]
-  --includedir=DIR        C header files [PREFIX/include]
-  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
-  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
-  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
-  --infodir=DIR           info documentation [DATAROOTDIR/info]
-  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
-  --mandir=DIR            man documentation [DATAROOTDIR/man]
-  --docdir=DIR            documentation root @<:@DATAROOTDIR/doc/mathgl@:>@
-  --htmldir=DIR           html documentation [DOCDIR]
-  --dvidir=DIR            dvi documentation [DOCDIR]
-  --pdfdir=DIR            pdf documentation [DOCDIR]
-  --psdir=DIR             ps documentation [DOCDIR]
-_ACEOF
-
-  cat <<\_ACEOF
-
-Program names:
-  --program-prefix=PREFIX            prepend PREFIX to installed program names
-  --program-suffix=SUFFIX            append SUFFIX to installed program names
-  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
-
-System types:
-  --build=BUILD     configure for building on BUILD [guessed]
-  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-  case $ac_init_help in
-     short | recursive ) echo "Configuration of mathgl 1.10:";;
-   esac
-  cat <<\_ACEOF
-
-Optional Features:
-  --disable-option-checking  ignore unrecognized --enable/--with options
-  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --disable-dependency-tracking  speeds up one-time build
-  --enable-dependency-tracking   do not reject slow dependency extractors
-  --enable-shared@<:@=PKGS@:>@  build shared libraries @<:@default=yes@:>@
-  --enable-static@<:@=PKGS@:>@  build static libraries @<:@default=yes@:>@
-  --enable-fast-install@<:@=PKGS@:>@ 
-                          optimize for fast installation @<:@default=yes@:>@
-  --disable-libtool-lock  avoid locking (might break parallel builds)
-  --enable-double    Turn on double precision in MathGL library
-  --enable-all    Turn on all features
-  --enable-langall    Turn on all language interfaces
-  --enable-pthread    Turn on pthread support in MathGL library
-  --enable-gsl    Turn on gsl functions
-  --enable-glut    Turn on glut
-  --enable-hdf5    Turn on hdf5
-  --enable-hdf5_18    Turn on hdf5 version 1.8
-  --enable-hdf4    Turn on hdf4
-  --enable-gif    Turn on gif
-  --enable-jpeg    Turn on jpeg
-  --enable-fltk    Turn on fltk
-  --enable-wx    Turn on wxWidget
-  --enable-qt    Turn on Qt
-  --enable-python    Turn on interface to python
-  --enable-octave    Turn on interface to octave
-  --enable-testio    Turn on testio
-  --enable-docs    Turn on documentation building
-
-Optional Packages:
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-pic              try to use only PIC/non-PIC objects @<:@default=use
-                          both@:>@
-  --with-gnu-ld           assume the C compiler uses GNU ld @<:@default=no@:>@
-  --with-qt               Path to Qt @<:@Look in PATH and /usr/local/Trolltech@:>@
-
-Some influential environment variables:
-  CC          C compiler command
-  CFLAGS      C compiler flags
-  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
-              nonstandard directory <lib dir>
-  LIBS        libraries to pass to the linker, e.g. -l<library>
-  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
-              you have headers in a nonstandard directory <include dir>
-  CXX         C++ compiler command
-  CXXFLAGS    C++ compiler flags
-  CPP         C preprocessor
-  CXXCPP      C++ preprocessor
-  TMPDIR      A temporary directory with write access @<:@/tmp@:>@
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to <mathgl.abalakin at gmail.com>.
-_ACEOF
-ac_status=$?
-fi
-
-if test "$ac_init_help" = "recursive"; then
-  # If there are subdirs, report their specific --help.
-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d "$ac_dir" ||
-      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
-      continue
-    ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
-  case $ac_top_builddir_sub in
-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-  esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
-  .)  # We are building in place.
-    ac_srcdir=.
-    ac_top_srcdir=$ac_top_builddir_sub
-    ac_abs_top_srcdir=$ac_pwd ;;
-  [\\/]* | ?:[\\/]* )  # Absolute name.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir
-    ac_abs_top_srcdir=$srcdir ;;
-  *) # Relative name.
-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_build_prefix$srcdir
-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-    cd "$ac_dir" || { ac_status=$?; continue; }
-    # Check for guested configure.
-    if test -f "$ac_srcdir/configure.gnu"; then
-      echo &&
-      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
-    elif test -f "$ac_srcdir/configure"; then
-      echo &&
-      $SHELL "$ac_srcdir/configure" --help=recursive
-    else
-      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-    fi || ac_status=$?
-    cd "$ac_pwd" || { ac_status=$?; break; }
-  done
-fi
-
-test -n "$ac_init_help" && exit $ac_status
-if $ac_init_version; then
-  cat <<\_ACEOF
-mathgl configure 1.10
-generated by GNU Autoconf 2.67
-
-Copyright (C) 2010 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
-  exit
-fi
-
-## ------------------------ ##
-## Autoconf initialization. ##
-## ------------------------ ##
-
-@%:@ ac_fn_c_try_compile LINENO
-@%:@ --------------------------
-@%:@ Try to compile conftest. at S|@ac_ext, and return whether this succeeded.
-ac_fn_c_try_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext
-  if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-  as_fn_set_status $ac_retval
-
-} @%:@ ac_fn_c_try_compile
-
-@%:@ ac_fn_cxx_try_compile LINENO
-@%:@ ----------------------------
-@%:@ Try to compile conftest. at S|@ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext
-  if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-  as_fn_set_status $ac_retval
-
-} @%:@ ac_fn_cxx_try_compile
-
-@%:@ ac_fn_c_try_link LINENO
-@%:@ -----------------------
-@%:@ Try to link conftest. at S|@ac_ext, and return whether this succeeded.
-ac_fn_c_try_link ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext conftest$ac_exeext
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
-  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
-  # interfere with the next link command; also delete a directory that is
-  # left behind by Apple's compiler.  We do this before executing the actions.
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-  as_fn_set_status $ac_retval
-
-} @%:@ ac_fn_c_try_link
-
-@%:@ ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
-@%:@ -------------------------------------------------------
-@%:@ Tests whether HEADER exists and can be compiled using the include files in
-@%:@ INCLUDES, setting the cache variable VAR accordingly.
-ac_fn_c_check_header_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-@%:@include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$3=yes"
-else
-  eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-
-} @%:@ ac_fn_c_check_header_compile
-
-@%:@ ac_fn_c_try_cpp LINENO
-@%:@ ----------------------
-@%:@ Try to preprocess conftest. at S|@ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } > conftest.i && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-    ac_retval=1
-fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-  as_fn_set_status $ac_retval
-
-} @%:@ ac_fn_c_try_cpp
-
-@%:@ ac_fn_c_try_run LINENO
-@%:@ ----------------------
-@%:@ Try to link conftest. at S|@ac_ext, and return whether this succeeded. Assumes
-@%:@ that executables *can* be run.
-ac_fn_c_try_run ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-       $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_retval=$ac_status
-fi
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-  as_fn_set_status $ac_retval
-
-} @%:@ ac_fn_c_try_run
-
-@%:@ ac_fn_c_check_func LINENO FUNC VAR
-@%:@ ----------------------------------
-@%:@ Tests whether FUNC exists, setting the cache variable VAR accordingly
-ac_fn_c_check_func ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $2 innocuous_$2
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $2 (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $2
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $2 ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$2 || defined __stub___$2
-choke me
-#endif
-
-int
-main ()
-{
-return $2 ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$3=yes"
-else
-  eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-
-} @%:@ ac_fn_c_check_func
-
-@%:@ ac_fn_cxx_try_cpp LINENO
-@%:@ ------------------------
-@%:@ Try to preprocess conftest. at S|@ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_cpp ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } > conftest.i && {
-	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-    ac_retval=1
-fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-  as_fn_set_status $ac_retval
-
-} @%:@ ac_fn_cxx_try_cpp
-
-@%:@ ac_fn_cxx_try_link LINENO
-@%:@ -------------------------
-@%:@ Try to link conftest. at S|@ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_link ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext conftest$ac_exeext
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
-  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
-  # interfere with the next link command; also delete a directory that is
-  # left behind by Apple's compiler.  We do this before executing the actions.
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-  as_fn_set_status $ac_retval
-
-} @%:@ ac_fn_cxx_try_link
-
-@%:@ ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
-@%:@ -------------------------------------------------------
-@%:@ Tests whether HEADER exists, giving a warning if it cannot be compiled using
-@%:@ the include files in INCLUDES and setting the cache variable VAR
-@%:@ accordingly.
-ac_fn_c_check_header_mongrel ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if eval "test \"\${$3+set}\"" = set; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
-  $as_echo_n "(cached) " >&6
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
-$as_echo_n "checking $2 usability... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-@%:@include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_header_compiler=yes
-else
-  ac_header_compiler=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
-$as_echo_n "checking $2 presence... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-@%:@include <$2>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  ac_header_preproc=yes
-else
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
-  yes:no: )
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( $as_echo "## ---------------------------------------- ##
-## Report this to mathgl.abalakin at gmail.com ##
-## ---------------------------------------- ##"
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  eval "$3=\$ac_header_compiler"
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-
-} @%:@ ac_fn_c_check_header_mongrel
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by mathgl $as_me 1.10, which was
-generated by GNU Autoconf 2.67.  Invocation command line was
-
-  $ $0 $@
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
-
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    $as_echo "PATH: $as_dir"
-  done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
-  for ac_arg
-  do
-    case $ac_arg in
-    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-    | -silent | --silent | --silen | --sile | --sil)
-      continue ;;
-    *\'*)
-      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    case $ac_pass in
-    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
-    2)
-      as_fn_append ac_configure_args1 " '$ac_arg'"
-      if test $ac_must_keep_next = true; then
-	ac_must_keep_next=false # Got value, back to normal.
-      else
-	case $ac_arg in
-	  *=* | --config-cache | -C | -disable-* | --disable-* \
-	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
-	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
-	  | -with-* | --with-* | -without-* | --without-* | --x)
-	    case "$ac_configure_args0 " in
-	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
-	    esac
-	    ;;
-	  -* ) ac_must_keep_next=true ;;
-	esac
-      fi
-      as_fn_append ac_configure_args " '$ac_arg'"
-      ;;
-    esac
-  done
-done
-{ ac_configure_args0=; unset ac_configure_args0;}
-{ ac_configure_args1=; unset ac_configure_args1;}
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log.  We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
-  # Save into config.log some information that might help in debugging.
-  {
-    echo
-
-    $as_echo "## ---------------- ##
-## Cache variables. ##
-## ---------------- ##"
-    echo
-    # The following way of writing the cache mishandles newlines in values,
-(
-  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) { eval $ac_var=; unset $ac_var;} ;;
-      esac ;;
-    esac
-  done
-  (set) 2>&1 |
-    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      sed -n \
-	"s/'\''/'\''\\\\'\'''\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
-      ;; #(
-    *)
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-)
-    echo
-
-    $as_echo "## ----------------- ##
-## Output variables. ##
-## ----------------- ##"
-    echo
-    for ac_var in $ac_subst_vars
-    do
-      eval ac_val=\$$ac_var
-      case $ac_val in
-      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-      esac
-      $as_echo "$ac_var='\''$ac_val'\''"
-    done | sort
-    echo
-
-    if test -n "$ac_subst_files"; then
-      $as_echo "## ------------------- ##
-## File substitutions. ##
-## ------------------- ##"
-      echo
-      for ac_var in $ac_subst_files
-      do
-	eval ac_val=\$$ac_var
-	case $ac_val in
-	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-	esac
-	$as_echo "$ac_var='\''$ac_val'\''"
-      done | sort
-      echo
-    fi
-
-    if test -s confdefs.h; then
-      $as_echo "## ----------- ##
-## confdefs.h. ##
-## ----------- ##"
-      echo
-      cat confdefs.h
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      $as_echo "$as_me: caught signal $ac_signal"
-    $as_echo "$as_me: exit $exit_status"
-  } >&5
-  rm -f core *.core core.conftest.* &&
-    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
-    exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-$as_echo "/* confdefs.h */" > confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-@%:@define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-@%:@define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-@%:@define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-@%:@define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
-if test -n "$CONFIG_SITE"; then
-  # We do not want a PATH search for config.site.
-  case $CONFIG_SITE in @%:@((
-    -*)  ac_site_file1=./$CONFIG_SITE;;
-    */*) ac_site_file1=$CONFIG_SITE;;
-    *)   ac_site_file1=./$CONFIG_SITE;;
-  esac
-elif test "x$prefix" != xNONE; then
-  ac_site_file1=$prefix/share/config.site
-  ac_site_file2=$prefix/etc/config.site
-else
-  ac_site_file1=$ac_default_prefix/share/config.site
-  ac_site_file2=$ac_default_prefix/etc/config.site
-fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
-do
-  test "x$ac_site_file" = xNONE && continue
-  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file" \
-      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5 ; }
-  fi
-done
-
-if test -r "$cache_file"; then
-  # Some versions of bash will fail to source /dev/null (special files
-  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
-  if test /dev/null != "$cache_file" && test -f "$cache_file"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . "$cache_file";;
-      *)                      . "./$cache_file";;
-    esac
-  fi
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
-  >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
-  eval ac_old_set=\$ac_cv_env_${ac_var}_set
-  eval ac_new_set=\$ac_env_${ac_var}_set
-  eval ac_old_val=\$ac_cv_env_${ac_var}_value
-  eval ac_new_val=\$ac_env_${ac_var}_value
-  case $ac_old_set,$ac_new_set in
-    set,)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-	# differences in whitespace do not lead to failure.
-	ac_old_val_w=`echo x $ac_old_val`
-	ac_new_val_w=`echo x $ac_new_val`
-	if test "$ac_old_val_w" != "$ac_new_val_w"; then
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-	  ac_cache_corrupted=:
-	else
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
-	  eval $ac_var=\$ac_old_val
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
-$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
-$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 
-fi
-## -------------------- ##
-## Main body of script. ##
-## -------------------- ##
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-MGL_RELEASE=1.10
-
-
-
-ac_aux_dir=
-for ac_dir in config "$srcdir"/config; do
-  if test -f "$ac_dir/install-sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f "$ac_dir/install.sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f "$ac_dir/shtool"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  as_fn_error $? "cannot find install-sh, install.sh, or shtool in config \"$srcdir\"/config" "$LINENO" 5 
-fi
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
-
-
-
-ac_config_headers="$ac_config_headers include/mgl/config.h"
-
-
-#MGL_RELEASE=1.4
-#AC_SUBST(MGL_RELEASE)
-
-# LT Version numbers, remember to change them just *before* a release.
-#   (Interfaces removed:    CURRENT++, AGE=0, REVISION=0)
-#   (Interfaces added:      CURRENT++, AGE++, REVISION=0)
-#   (No interfaces changed:                   REVISION++)
-MGL_CURRENT=5
-MGL_REVISION=0
-MGL_AGE=0
-
-
-
-
-am__api_version='1.11'
-
-# Find a good install program.  We prefer a C program (faster),
-# so one script is as good as another.  But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in @%:@((
-  ./ | .// | /[cC]/* | \
-  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
-  /usr/ucb/* ) ;;
-  *)
-    # OSF1 and SCO ODT 3.0 have their own names for install.
-    # Don't use installbsd from OSF since it installs stuff as root
-    # by default.
-    for ac_prog in ginstall scoinst install; do
-      for ac_exec_ext in '' $ac_executable_extensions; do
-	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
-	  if test $ac_prog = install &&
-	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-	    # AIX install.  It has an incompatible calling convention.
-	    :
-	  elif test $ac_prog = install &&
-	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-	    # program-specific install script used by HP pwplus--don't use.
-	    :
-	  else
-	    rm -rf conftest.one conftest.two conftest.dir
-	    echo one > conftest.one
-	    echo two > conftest.two
-	    mkdir conftest.dir
-	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
-	      test -s conftest.one && test -s conftest.two &&
-	      test -s conftest.dir/conftest.one &&
-	      test -s conftest.dir/conftest.two
-	    then
-	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-	      break 3
-	    fi
-	  fi
-	fi
-      done
-    done
-    ;;
-esac
-
-  done
-IFS=$as_save_IFS
-
-rm -rf conftest.one conftest.two conftest.dir
-
-fi
-  if test "${ac_cv_path_install+set}" = set; then
-    INSTALL=$ac_cv_path_install
-  else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for INSTALL within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    INSTALL=$ac_install_sh
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
-$as_echo_n "checking whether build environment is sane... " >&6; }
-# Just in case
-sleep 1
-echo timestamp > conftest.file
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name.  Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
-  *[\\\"\#\$\&\'\`$am_lf]*)
-    as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;;
-esac
-case $srcdir in
-  *[\\\"\#\$\&\'\`$am_lf\ \	]*)
-    as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;;
-esac
-
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments.  Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
-   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-   if test "$*" = "X"; then
-      # -L didn't work.
-      set X `ls -t "$srcdir/configure" conftest.file`
-   fi
-   rm -f conftest.file
-   if test "$*" != "X $srcdir/configure conftest.file" \
-      && test "$*" != "X conftest.file $srcdir/configure"; then
-
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
-alias in your environment" "$LINENO" 5 
-   fi
-
-   test "$2" = conftest.file
-   )
-then
-   # Ok.
-   :
-else
-   as_fn_error $? "newly created file is older than distributed files!
-Check your system clock" "$LINENO" 5 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-test "$program_prefix" != NONE &&
-  program_transform_name="s&^&$program_prefix&;$program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
-  program_transform_name="s&\$&$program_suffix&;$program_transform_name"
-# Double any \ or $.
-# By default was `s,x,x', remove it if useless.
-ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
-program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
-
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-
-if test x"${MISSING+set}" != xset; then
-  case $am_aux_dir in
-  *\ * | *\	*)
-    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
-  *)
-    MISSING="\${SHELL} $am_aux_dir/missing" ;;
-  esac
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
-  am_missing_run="$MISSING --run "
-else
-  am_missing_run=
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
-fi
-
-if test x"${install_sh}" != xset; then
-  case $am_aux_dir in
-  *\ * | *\	*)
-    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
-  *)
-    install_sh="\${SHELL} $am_aux_dir/install-sh"
-  esac
-fi
-
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'.  However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-if test "$cross_compiling" != no; then
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$STRIP"; then
-  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
-  ac_ct_STRIP=$STRIP
-  # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_STRIP"; then
-  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_STRIP="strip"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_STRIP" = x; then
-    STRIP=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    STRIP=$ac_ct_STRIP
-  fi
-else
-  STRIP="$ac_cv_prog_STRIP"
-fi
-
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
-$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
-if test -z "$MKDIR_P"; then
-  if test "${ac_cv_path_mkdir+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in mkdir gmkdir; do
-	 for ac_exec_ext in '' $ac_executable_extensions; do
-	   { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
-	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
-	     'mkdir (GNU coreutils) '* | \
-	     'mkdir (coreutils) '* | \
-	     'mkdir (fileutils) '4.1*)
-	       ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
-	       break 3;;
-	   esac
-	 done
-       done
-  done
-IFS=$as_save_IFS
-
-fi
-
-  test -d ./--version && rmdir ./--version
-  if test "${ac_cv_path_mkdir+set}" = set; then
-    MKDIR_P="$ac_cv_path_mkdir -p"
-  else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for MKDIR_P within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    MKDIR_P="$ac_install_sh -d"
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
-$as_echo "$MKDIR_P" >&6; }
-
-mkdir_p="$MKDIR_P"
-case $mkdir_p in
-  [\\/$]* | ?:[\\/]*) ;;
-  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-
-for ac_prog in gawk mawk nawk awk
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AWK+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$AWK"; then
-  ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_AWK="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$AWK" && break
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
-	@echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
-  *@@@%%%=?*=@@@%%%*)
-    eval ac_cv_prog_make_${ac_make}_set=yes;;
-  *)
-    eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-  SET_MAKE=
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-  SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
-  am__leading_dot=.
-else
-  am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
-  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
-  # is not polluted with repeated "-I."
-  am__isrc=' -I$(srcdir)'
-  # test to see if srcdir already configured
-  if test -f $srcdir/config.status; then
-    as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 
-  fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
-  if (cygpath --version) >/dev/null 2>/dev/null; then
-    CYGPATH_W='cygpath -w'
-  else
-    CYGPATH_W=echo
-  fi
-fi
-
-
-# Define the identity of the package.
- PACKAGE='mathgl'
- VERSION='1.10'
-
-
-cat >>confdefs.h <<_ACEOF
-@%:@define PACKAGE "$PACKAGE"
-_ACEOF
-
- 
-cat >>confdefs.h <<_ACEOF
-@%:@define VERSION "$VERSION"
-_ACEOF
-
-# Some tools Automake needs.
-
-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
-
-
-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
-
-
-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
-
-
-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
-
-
-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-
-# We need awk for the "check" target.  The system "awk" is bad on
-# some platforms.
-# Always define AMTAR for backward compatibility.
-
-AMTAR=${AMTAR-"${am_missing_run}tar"}
-
-am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
-
-
-
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CC="gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-else
-  CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
-          if test -n "$ac_tool_prefix"; then
-    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="${ac_tool_prefix}cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  fi
-fi
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-       ac_prog_rejected=yes
-       continue
-     fi
-    ac_cv_prog_CC="cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $@%:@ != 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
-  fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl.exe
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$CC" && break
-  done
-fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in cl.exe
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CC="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CC" && break
-done
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5 ; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
-
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-
-# The possible output files:
-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
-
-ac_rmfiles=
-for ac_file in $ac_files
-do
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
-    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
-  esac
-done
-rm -f $ac_rmfiles
-
-if { { ac_try="$ac_link_default"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link_default") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
-  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile.  We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
-	;;
-    [ab].out )
-	# We found the default executable, but exeext='' is most
-	# certainly right.
-	break;;
-    *.* )
-	if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
-	then :; else
-	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	fi
-	# We set ac_cv_exeext here because the later test for it is not
-	# safe: cross compilers may not add the suffix if given an `-o'
-	# argument, so we may need to know it at that point already.
-	# Even if this section looks crufty: it has the advantage of
-	# actually working.
-	break;;
-    * )
-	break;;
-  esac
-done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
-
-else
-  ac_file=''
-fi
-if test -z "$ac_file"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5 ; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
-ac_exeext=$ac_cv_exeext
-
-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
-if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
-  # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	  break;;
-    * ) break;;
-  esac
-done
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5 ; }
-fi
-rm -f conftest conftest$ac_cv_exeext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-@%:@include <stdio.h>
-int
-main ()
-{
-FILE *f = fopen ("conftest.out", "w");
- return ferror (f) || fclose (f) != 0;
-
-  ;
-  return 0;
-}
-_ACEOF
-ac_clean_files="$ac_clean_files conftest.out"
-# Check that the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
-if test "$cross_compiling" != yes; then
-  { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-  if { ac_try='./conftest$ac_cv_exeext'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then
-    cross_compiling=no
-  else
-    if test "$cross_compiling" = maybe; then
-	cross_compiling=yes
-    else
-	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5 ; }
-    fi
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
-
-rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if test "${ac_cv_objext+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
-  for ac_file in conftest.o conftest.obj conftest.*; do
-  test -f "$ac_file" || continue;
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
-    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
-       break;;
-  esac
-done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5 ; }
-fi
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
-else
-  ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GCC=yes
-else
-  GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_c_werror_flag=$ac_c_werror_flag
-   ac_c_werror_flag=yes
-   ac_cv_prog_cc_g=no
-   CFLAGS="-g"
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_g=yes
-else
-  CFLAGS=""
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  
-else
-  ac_c_werror_flag=$ac_save_c_werror_flag
-	 CFLAGS="-g"
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not '\xHH' hex character constants.
-   These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std is added to get
-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-   array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std.  */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
-   inside strings and character constants.  */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
-  test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
-  x)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
-  xno)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
-  *)
-    CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-  
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-DEPDIR="${am__leading_dot}deps"
-
-ac_config_commands="$ac_config_commands depfiles"
-
-
-am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
-	@echo this is the am__doit target
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
-$as_echo_n "checking for style of include used by $am_make... " >&6; }
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
-  am__include=include
-  am__quote=
-  _am_result=GNU
-  ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
-   echo '.include "confinc"' > confmf
-   case `$am_make -s -f confmf 2> /dev/null` in #(
-   *the\ am__doit\ target*)
-     am__include=.include
-     am__quote="\""
-     _am_result=BSD
-     ;;
-   esac
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
-$as_echo "$_am_result" >&6; }
-rm -f confinc confmf
-
-@%:@ Check whether --enable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then :
-  enableval=$enable_dependency_tracking; 
-fi
-
-if test "x$enable_dependency_tracking" != xno; then
-  am_depcomp="$ac_aux_dir/depcomp"
-  AMDEPBACKSLASH='\'
-fi
- if test "x$enable_dependency_tracking" != xno; then
-  AMDEP_TRUE=
-  AMDEP_FALSE='#'
-else
-  AMDEP_TRUE='#'
-  AMDEP_FALSE=
-fi
-
-
-
-depcc="$CC"   am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
-  # We make a subdir and do the tests there.  Otherwise we can end up
-  # making bogus files that we don't know about and never remove.  For
-  # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
-  mkdir conftest.dir
-  # Copy depcomp to subdir because otherwise we won't find it if we're
-  # using a relative directory.
-  cp "$am_depcomp" conftest.dir
-  cd conftest.dir
-  # We will build objects and dependencies in a subdirectory because
-  # it helps to detect inapplicable dependency modes.  For instance
-  # both Tru64's cc and ICC support -MD to output dependencies as a
-  # side effect of compilation, but ICC will put the dependencies in
-  # the current directory while Tru64 will put them in the object
-  # directory.
-  mkdir sub
-
-  am_cv_CC_dependencies_compiler_type=none
-  if test "$am_compiler_list" = ""; then
-     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
-  fi
-  am__universal=false
-  case " $depcc " in #(
-     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-     esac
-
-  for depmode in $am_compiler_list; do
-    # Setup a source with many dependencies, because some compilers
-    # like to wrap large dependency lists on column 80 (with \), and
-    # we should not choose a depcomp mode which is confused by this.
-    #
-    # We need to recreate these files for each test, as the compiler may
-    # overwrite some of them when testing with obscure command lines.
-    # This happens at least with the AIX C compiler.
-    : > sub/conftest.c
-    for i in 1 2 3 4 5 6; do
-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
-    done
-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
-    am__obj=sub/conftest.${OBJEXT-o}
-    am__minus_obj="-o $am__obj"
-    case $depmode in
-    gcc)
-      # This depmode causes a compiler race in universal mode.
-      test "$am__universal" = false || continue
-      ;;
-    nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
-      if test "x$enable_dependency_tracking" = xyes; then
-	continue
-      else
-	break
-      fi
-      ;;
-    msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
-      # not run yet.  These depmodes are late enough in the game, and
-      # so weak that their functioning should not be impacted.
-      am__obj=conftest.${OBJEXT-o}
-      am__minus_obj=
-      ;;
-    none) break ;;
-    esac
-    if depmode=$depmode \
-       source=sub/conftest.c object=$am__obj \
-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
-         >/dev/null 2>conftest.err &&
-       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-      # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-        am_cv_CC_dependencies_compiler_type=$depmode
-        break
-      fi
-    fi
-  done
-
-  cd ..
-  rm -rf conftest.dir
-else
-  am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
- if 
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
-  am__fastdepCC_TRUE=
-  am__fastdepCC_FALSE='#'
-else
-  am__fastdepCC_TRUE='#'
-  am__fastdepCC_FALSE=
-fi
-
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-if test -z "$CXX"; then
-  if test -n "$CCC"; then
-    CXX=$CCC
-  else
-    if test -n "$ac_tool_prefix"; then
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CXX+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CXX"; then
-  ac_cv_prog_CXX="$CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CXX=$ac_cv_prog_CXX
-if test -n "$CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
-$as_echo "$CXX" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$CXX" && break
-  done
-fi
-if test -z "$CXX"; then
-  ac_ct_CXX=$CXX
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CXX"; then
-  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CXX="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
-if test -n "$ac_ct_CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
-$as_echo "$ac_ct_CXX" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CXX" && break
-done
-
-  if test "x$ac_ct_CXX" = x; then
-    CXX="g++"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CXX=$ac_ct_CXX
-  fi
-fi
-
-  fi
-fi
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
-$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
-if test "${ac_cv_cxx_compiler_gnu+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
-else
-  ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
-$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GXX=yes
-else
-  GXX=
-fi
-ac_test_CXXFLAGS=${CXXFLAGS+set}
-ac_save_CXXFLAGS=$CXXFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
-$as_echo_n "checking whether $CXX accepts -g... " >&6; }
-if test "${ac_cv_prog_cxx_g+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_cxx_werror_flag=$ac_cxx_werror_flag
-   ac_cxx_werror_flag=yes
-   ac_cv_prog_cxx_g=no
-   CXXFLAGS="-g"
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-else
-  CXXFLAGS=""
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  
-else
-  ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-	 CXXFLAGS="-g"
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
-$as_echo "$ac_cv_prog_cxx_g" >&6; }
-if test "$ac_test_CXXFLAGS" = set; then
-  CXXFLAGS=$ac_save_CXXFLAGS
-elif test $ac_cv_prog_cxx_g = yes; then
-  if test "$GXX" = yes; then
-    CXXFLAGS="-g -O2"
-  else
-    CXXFLAGS="-g"
-  fi
-else
-  if test "$GXX" = yes; then
-    CXXFLAGS="-O2"
-  else
-    CXXFLAGS=
-  fi
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-depcc="$CXX"  am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
-  # We make a subdir and do the tests there.  Otherwise we can end up
-  # making bogus files that we don't know about and never remove.  For
-  # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
-  mkdir conftest.dir
-  # Copy depcomp to subdir because otherwise we won't find it if we're
-  # using a relative directory.
-  cp "$am_depcomp" conftest.dir
-  cd conftest.dir
-  # We will build objects and dependencies in a subdirectory because
-  # it helps to detect inapplicable dependency modes.  For instance
-  # both Tru64's cc and ICC support -MD to output dependencies as a
-  # side effect of compilation, but ICC will put the dependencies in
-  # the current directory while Tru64 will put them in the object
-  # directory.
-  mkdir sub
-
-  am_cv_CXX_dependencies_compiler_type=none
-  if test "$am_compiler_list" = ""; then
-     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
-  fi
-  am__universal=false
-  case " $depcc " in #(
-     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-     esac
-
-  for depmode in $am_compiler_list; do
-    # Setup a source with many dependencies, because some compilers
-    # like to wrap large dependency lists on column 80 (with \), and
-    # we should not choose a depcomp mode which is confused by this.
-    #
-    # We need to recreate these files for each test, as the compiler may
-    # overwrite some of them when testing with obscure command lines.
-    # This happens at least with the AIX C compiler.
-    : > sub/conftest.c
-    for i in 1 2 3 4 5 6; do
-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
-    done
-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
-    am__obj=sub/conftest.${OBJEXT-o}
-    am__minus_obj="-o $am__obj"
-    case $depmode in
-    gcc)
-      # This depmode causes a compiler race in universal mode.
-      test "$am__universal" = false || continue
-      ;;
-    nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
-      if test "x$enable_dependency_tracking" = xyes; then
-	continue
-      else
-	break
-      fi
-      ;;
-    msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
-      # not run yet.  These depmodes are late enough in the game, and
-      # so weak that their functioning should not be impacted.
-      am__obj=conftest.${OBJEXT-o}
-      am__minus_obj=
-      ;;
-    none) break ;;
-    esac
-    if depmode=$depmode \
-       source=sub/conftest.c object=$am__obj \
-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
-         >/dev/null 2>conftest.err &&
-       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-      # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-        am_cv_CXX_dependencies_compiler_type=$depmode
-        break
-      fi
-    fi
-  done
-
-  cd ..
-  rm -rf conftest.dir
-else
-  am_cv_CXX_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
-CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
-
- if 
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
-  am__fastdepCXX_TRUE=
-  am__fastdepCXX_FALSE='#'
-else
-  am__fastdepCXX_TRUE='#'
-  am__fastdepCXX_FALSE=
-fi
-
-
-
-
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if test "${ac_cv_build+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
-  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
-  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if test "${ac_cv_host+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "x$host_alias" = x; then
-  ac_cv_host=$ac_cv_build
-else
-  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
-
-enable_win32_dll=yes
-
-case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
-set dummy ${ac_tool_prefix}as; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$AS"; then
-  ac_cv_prog_AS="$AS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_AS="${ac_tool_prefix}as"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-AS=$ac_cv_prog_AS
-if test -n "$AS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
-$as_echo "$AS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_AS"; then
-  ac_ct_AS=$AS
-  # Extract the first word of "as", so it can be a program name with args.
-set dummy as; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_AS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_AS"; then
-  ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_AS="as"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_AS=$ac_cv_prog_ac_ct_AS
-if test -n "$ac_ct_AS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5
-$as_echo "$ac_ct_AS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_AS" = x; then
-    AS="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    AS=$ac_ct_AS
-  fi
-else
-  AS="$ac_cv_prog_AS"
-fi
-
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DLLTOOL+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$DLLTOOL"; then
-  ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-DLLTOOL=$ac_cv_prog_DLLTOOL
-if test -n "$DLLTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
-$as_echo "$DLLTOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DLLTOOL"; then
-  ac_ct_DLLTOOL=$DLLTOOL
-  # Extract the first word of "dlltool", so it can be a program name with args.
-set dummy dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_DLLTOOL"; then
-  ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_DLLTOOL="dlltool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
-if test -n "$ac_ct_DLLTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
-$as_echo "$ac_ct_DLLTOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_DLLTOOL" = x; then
-    DLLTOOL="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    DLLTOOL=$ac_ct_DLLTOOL
-  fi
-else
-  DLLTOOL="$ac_cv_prog_DLLTOOL"
-fi
-
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
-set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$OBJDUMP"; then
-  ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-OBJDUMP=$ac_cv_prog_OBJDUMP
-if test -n "$OBJDUMP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-$as_echo "$OBJDUMP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OBJDUMP"; then
-  ac_ct_OBJDUMP=$OBJDUMP
-  # Extract the first word of "objdump", so it can be a program name with args.
-set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_OBJDUMP"; then
-  ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_OBJDUMP="objdump"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
-if test -n "$ac_ct_OBJDUMP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-$as_echo "$ac_ct_OBJDUMP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_OBJDUMP" = x; then
-    OBJDUMP="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    OBJDUMP=$ac_ct_OBJDUMP
-  fi
-else
-  OBJDUMP="$ac_cv_prog_OBJDUMP"
-fi
-
-  ;;
-esac
-
-test -z "$AS" && AS=as
-
-    
-    
-    
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-
-    
-    
-    
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-
-    
-    
-    
-
-
-
-enable_dlopen=yes
-
-
-
-case `pwd` in
-  *\ * | *\	*)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
-$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
-esac
-
-
-
-macro_version='2.2.6b'
-macro_revision='1.3017'
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-
-
-ltmain="$ac_aux_dir/ltmain.sh"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
-$as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if test "${ac_cv_path_SED+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
-     for ac_i in 1 2 3 4 5 6 7; do
-       ac_script="$ac_script$as_nl$ac_script"
-     done
-     echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
-     { ac_script=; unset ac_script;}
-     if test -z "$SED"; then
-  ac_path_SED_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in sed gsed; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
-# Check for GNU ac_path_SED and select it if it is found.
-  # Check for GNU $ac_path_SED
-case `"$ac_path_SED" --version 2>&1` in
-*GNU*)
-  ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo '' >> "conftest.nl"
-    "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_SED_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_SED="$ac_path_SED"
-      ac_path_SED_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_SED_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_SED"; then
-    as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 
-  fi
-else
-  ac_cv_path_SED=$SED
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
-$as_echo "$ac_cv_path_SED" >&6; }
- SED="$ac_cv_path_SED"
-  rm -f conftest.sed
-
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if test "${ac_cv_path_GREP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$GREP"; then
-  ac_path_GREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in grep ggrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
-# Check for GNU ac_path_GREP and select it if it is found.
-  # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'GREP' >> "conftest.nl"
-    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_GREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_GREP="$ac_path_GREP"
-      ac_path_GREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_GREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_GREP"; then
-    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 
-  fi
-else
-  ac_cv_path_GREP=$GREP
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
- 
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
-   then ac_cv_path_EGREP="$GREP -E"
-   else
-     if test -z "$EGREP"; then
-  ac_path_EGREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in egrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
-  # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'EGREP' >> "conftest.nl"
-    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_EGREP="$ac_path_EGREP"
-      ac_path_EGREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_EGREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_EGREP"; then
-    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 
-  fi
-else
-  ac_cv_path_EGREP=$EGREP
-fi
-
-   fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
- 
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
-$as_echo_n "checking for fgrep... " >&6; }
-if test "${ac_cv_path_FGREP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
-   then ac_cv_path_FGREP="$GREP -F"
-   else
-     if test -z "$FGREP"; then
-  ac_path_FGREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in fgrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
-# Check for GNU ac_path_FGREP and select it if it is found.
-  # Check for GNU $ac_path_FGREP
-case `"$ac_path_FGREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'FGREP' >> "conftest.nl"
-    "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_FGREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_FGREP="$ac_path_FGREP"
-      ac_path_FGREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_FGREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_FGREP"; then
-    as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 
-  fi
-else
-  ac_cv_path_FGREP=$FGREP
-fi
-
-   fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
-$as_echo "$ac_cv_path_FGREP" >&6; }
- FGREP="$ac_cv_path_FGREP"
- 
-
-test -z "$GREP" && GREP=grep
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-
-
-
-@%:@ Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
-  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else
-  with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [\\/]* | ?:[\\/]*)
-      re_direlt='/[^/][^/]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
-      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
-fi
-if test "${lt_cv_path_LD+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some variants of GNU ld only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-	test "$with_gnu_ld" != no && break
-	;;
-      *)
-	test "$with_gnu_ld" != yes && break
-	;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if test "${lt_cv_prog_gnu_ld+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-$as_echo "$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-
-
-    
-    
-    
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
-$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if test "${lt_cv_path_NM+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$NM"; then
-  # Let the user override the test.
-  lt_cv_path_NM="$NM"
-else
-  lt_nm_to_check="${ac_tool_prefix}nm"
-  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
-    lt_nm_to_check="$lt_nm_to_check nm"
-  fi
-  for lt_tmp_nm in $lt_nm_to_check; do
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
-      IFS="$lt_save_ifs"
-      test -z "$ac_dir" && ac_dir=.
-      tmp_nm="$ac_dir/$lt_tmp_nm"
-      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
-	# Check to see if the nm accepts a BSD-compat flag.
-	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
-	#   nm: unknown option "B" ignored
-	# Tru64's nm complains that /dev/null is an invalid object file
-	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-	*/dev/null* | *'Invalid file or object type'*)
-	  lt_cv_path_NM="$tmp_nm -B"
-	  break
-	  ;;
-	*)
-	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-	  */dev/null*)
-	    lt_cv_path_NM="$tmp_nm -p"
-	    break
-	    ;;
-	  *)
-	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-	    continue # so that we can try to find one that supports BSD flags
-	    ;;
-	  esac
-	  ;;
-	esac
-      fi
-    done
-    IFS="$lt_save_ifs"
-  done
-  : ${lt_cv_path_NM=no}
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
-$as_echo "$lt_cv_path_NM" >&6; }
-if test "$lt_cv_path_NM" != "no"; then
-  NM="$lt_cv_path_NM"
-else
-  # Didn't find any BSD compatible name lister, look for dumpbin.
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in "dumpbin -symbols" "link -dump -symbols"
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DUMPBIN+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$DUMPBIN"; then
-  ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-DUMPBIN=$ac_cv_prog_DUMPBIN
-if test -n "$DUMPBIN"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
-$as_echo "$DUMPBIN" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$DUMPBIN" && break
-  done
-fi
-if test -z "$DUMPBIN"; then
-  ac_ct_DUMPBIN=$DUMPBIN
-  for ac_prog in "dumpbin -symbols" "link -dump -symbols"
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_DUMPBIN"; then
-  ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
-if test -n "$ac_ct_DUMPBIN"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
-$as_echo "$ac_ct_DUMPBIN" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_DUMPBIN" && break
-done
-
-  if test "x$ac_ct_DUMPBIN" = x; then
-    DUMPBIN=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    DUMPBIN=$ac_ct_DUMPBIN
-  fi
-fi
-
-  
-  if test "$DUMPBIN" != ":"; then
-    NM="$DUMPBIN"
-  fi
-fi
-test -z "$NM" && NM=nm
-
-
-    
-    
-    
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
-$as_echo_n "checking the name lister ($NM) interface... " >&6; }
-if test "${lt_cv_nm_interface+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_nm_interface="BSD nm"
-  echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&5)
-  (eval "$ac_compile" 2>conftest.err)
-  cat conftest.err >&5
-  (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
-  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
-  cat conftest.err >&5
-  (eval echo "\"\$as_me:__oline__: output\"" >&5)
-  cat conftest.out >&5
-  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
-    lt_cv_nm_interface="MS dumpbin"
-  fi
-  rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
-$as_echo "$lt_cv_nm_interface" >&6; }
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-$as_echo_n "checking whether ln -s works... " >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-$as_echo "no, using $LN_S" >&6; }
-fi
-
-# find the maximum length of command line arguments
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
-$as_echo_n "checking the maximum length of command line arguments... " >&6; }
-if test "${lt_cv_sys_max_cmd_len+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-    i=0
-  teststring="ABCD"
-
-  case $build_os in
-  msdosdjgpp*)
-    # On DJGPP, this test can blow up pretty badly due to problems in libc
-    # (any single argument exceeding 2000 bytes causes a buffer overrun
-    # during glob expansion).  Even if it were fixed, the result of this
-    # check would be larger than it should be.
-    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
-    ;;
-
-  gnu*)
-    # Under GNU Hurd, this test is not required because there is
-    # no limit to the length of command line arguments.
-    # Libtool will interpret -1 as no limit whatsoever
-    lt_cv_sys_max_cmd_len=-1;
-    ;;
-
-  cygwin* | mingw* | cegcc*)
-    # On Win9x/ME, this test blows up -- it succeeds, but takes
-    # about 5 minutes as the teststring grows exponentially.
-    # Worse, since 9x/ME are not pre-emptively multitasking,
-    # you end up with a "frozen" computer, even though with patience
-    # the test eventually succeeds (with a max line length of 256k).
-    # Instead, let's just punt: use the minimum linelength reported by
-    # all of the supported platforms: 8192 (on NT/2K/XP).
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  amigaos*)
-    # On AmigaOS with pdksh, this test takes hours, literally.
-    # So we just punt and use a minimum line length of 8192.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
-    # This has been around since 386BSD, at least.  Likely further.
-    if test -x /sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
-    elif test -x /usr/sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
-    else
-      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
-    fi
-    # And add a safety zone
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    ;;
-
-  interix*)
-    # We know the value 262144 and hardcode it with a safety zone (like BSD)
-    lt_cv_sys_max_cmd_len=196608
-    ;;
-
-  osf*)
-    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
-    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
-    # nice to cause kernel panics so lets avoid the loop below.
-    # First set a reasonable default.
-    lt_cv_sys_max_cmd_len=16384
-    #
-    if test -x /sbin/sysconfig; then
-      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
-        *1*) lt_cv_sys_max_cmd_len=-1 ;;
-      esac
-    fi
-    ;;
-  sco3.2v5*)
-    lt_cv_sys_max_cmd_len=102400
-    ;;
-  sysv5* | sco5v6* | sysv4.2uw2*)
-    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
-    if test -n "$kargmax"; then
-      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[	 ]//'`
-    else
-      lt_cv_sys_max_cmd_len=32768
-    fi
-    ;;
-  *)
-    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
-    if test -n "$lt_cv_sys_max_cmd_len"; then
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    else
-      # Make teststring a little bigger before we do anything with it.
-      # a 1K string should be a reasonable start.
-      for i in 1 2 3 4 5 6 7 8 ; do
-        teststring=$teststring$teststring
-      done
-      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
-      # If test is not a shell built-in, we'll probably end up computing a
-      # maximum length that is only half of the actual maximum length, but
-      # we can't tell.
-      while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
-	         = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
-	      test $i != 17 # 1/2 MB should be enough
-      do
-        i=`expr $i + 1`
-        teststring=$teststring$teststring
-      done
-      # Only check the string length outside the loop.
-      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
-      teststring=
-      # Add a significant safety factor because C++ compilers can tack on
-      # massive amounts of additional arguments before passing them to the
-      # linker.  It appears as though 1/2 is a usable value.
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
-    fi
-    ;;
-  esac
-
-fi
-
-if test -n $lt_cv_sys_max_cmd_len ; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
-$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
-$as_echo "none" >&6; }
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-    
-    
-    
-
-
-: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
-$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,, \
-    && eval 'test $(( 1 + 1 )) -eq 2 \
-    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
-  && xsi_shell=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
-$as_echo "$xsi_shell" >&6; }
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
-$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
-    >/dev/null 2>&1 \
-  && lt_shell_append=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
-$as_echo "$lt_shell_append" >&6; }
-
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  lt_unset=unset
-else
-  lt_unset=false
-fi
-
-    
-    
-    
-
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
-    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
-  lt_SP2NL='tr \040 \012'
-  lt_NL2SP='tr \015\012 \040\040'
-  ;;
- *) # EBCDIC based system
-  lt_SP2NL='tr \100 \n'
-  lt_NL2SP='tr \r\n \100\100'
-  ;;
-esac
-
-    
-    
-    
-
-    
-    
-    
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
-$as_echo_n "checking for $LD option to reload object files... " >&6; }
-if test "${lt_cv_ld_reload_flag+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_ld_reload_flag='-r'
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
-$as_echo "$lt_cv_ld_reload_flag" >&6; }
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
-  darwin*)
-    if test "$GCC" = yes; then
-      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-    else
-      reload_cmds='$LD$reload_flag -o $output$reload_objs'
-    fi
-    ;;
-esac
-
-    
-    
-    
-
-    
-    
-    
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
-set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$OBJDUMP"; then
-  ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-OBJDUMP=$ac_cv_prog_OBJDUMP
-if test -n "$OBJDUMP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-$as_echo "$OBJDUMP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OBJDUMP"; then
-  ac_ct_OBJDUMP=$OBJDUMP
-  # Extract the first word of "objdump", so it can be a program name with args.
-set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_OBJDUMP"; then
-  ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_OBJDUMP="objdump"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
-if test -n "$ac_ct_OBJDUMP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-$as_echo "$ac_ct_OBJDUMP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_OBJDUMP" = x; then
-    OBJDUMP="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    OBJDUMP=$ac_ct_OBJDUMP
-  fi
-else
-  OBJDUMP="$ac_cv_prog_OBJDUMP"
-fi
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
-$as_echo_n "checking how to recognize dependent libraries... " >&6; }
-if test "${lt_cv_deplibs_check_method+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[4-9]*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-bsdi[45]*)
-  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  lt_cv_file_magic_test_file=/shlib/libc.so
-  ;;
-
-cygwin*)
-  # func_win32_libid is a shell function defined in ltmain.sh
-  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-  lt_cv_file_magic_cmd='func_win32_libid'
-  ;;
-
-mingw* | pw32*)
-  # Base MSYS/MinGW do not provide the 'file' command needed by
-  # func_win32_libid shell function, so use a weaker test based on 'objdump',
-  # unless we find 'file', for example because we are cross-compiling.
-  if ( file / ) >/dev/null 2>&1; then
-    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-    lt_cv_file_magic_cmd='func_win32_libid'
-  else
-    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
-    lt_cv_file_magic_cmd='$OBJDUMP -f'
-  fi
-  ;;
-
-cegcc)
-  # use the weaker test based on 'objdump'. See mingw*.
-  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
-  lt_cv_file_magic_cmd='$OBJDUMP -f'
-  ;;
-
-darwin* | rhapsody*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-freebsd* | dragonfly*)
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
-    case $host_cpu in
-    i*86 )
-      # Not sure whether the presence of OpenBSD here was a mistake.
-      # Let's accept both of them until this is cleared up.
-      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
-      lt_cv_file_magic_cmd=/usr/bin/file
-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-      ;;
-    esac
-  else
-    lt_cv_deplibs_check_method=pass_all
-  fi
-  ;;
-
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-hpux10.20* | hpux11*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  case $host_cpu in
-  ia64*)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
-    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
-    ;;
-  hppa*64*)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'
-    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
-    ;;
-  *)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
-    lt_cv_file_magic_test_file=/usr/lib/libc.sl
-    ;;
-  esac
-  ;;
-
-interix[3-9]*)
-  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
-  lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $LD in
-  *-32|*"-32 ") libmagic=32-bit;;
-  *-n32|*"-n32 ") libmagic=N32;;
-  *-64|*"-64 ") libmagic=64-bit;;
-  *) libmagic=never-match;;
-  esac
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-# This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-netbsd* | netbsdelf*-gnu)
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
-  fi
-  ;;
-
-newos6*)
-  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=/usr/lib/libnls.so
-  ;;
-
-*nto* | *qnx*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-openbsd*)
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
-  fi
-  ;;
-
-osf3* | osf4* | osf5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-rdos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-solaris*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv4 | sysv4.3*)
-  case $host_vendor in
-  motorola)
-    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
-    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
-    ;;
-  ncr)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  sequent)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
-    ;;
-  sni)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
-    lt_cv_file_magic_test_file=/lib/libc.so
-    ;;
-  siemens)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  pc)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  esac
-  ;;
-
-tpf*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-esac
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
-$as_echo "$lt_cv_deplibs_check_method" >&6; }
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AR+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$AR"; then
-  ac_cv_prog_AR="$AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_AR="${ac_tool_prefix}ar"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_AR"; then
-  ac_ct_AR=$AR
-  # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_AR"; then
-  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_AR="ar"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-$as_echo "$ac_ct_AR" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_AR" = x; then
-    AR="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    AR=$ac_ct_AR
-  fi
-else
-  AR="$ac_cv_prog_AR"
-fi
-
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$STRIP"; then
-  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
-  ac_ct_STRIP=$STRIP
-  # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_STRIP"; then
-  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_STRIP="strip"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_STRIP" = x; then
-    STRIP=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    STRIP=$ac_ct_STRIP
-  fi
-else
-  STRIP="$ac_cv_prog_STRIP"
-fi
-
-test -z "$STRIP" && STRIP=:
-
-    
-    
-    
-
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
-  ac_ct_RANLIB=$RANLIB
-  # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_RANLIB"; then
-  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_RANLIB="ranlib"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_RANLIB" = x; then
-    RANLIB=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    RANLIB=$ac_ct_RANLIB
-  fi
-else
-  RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-test -z "$RANLIB" && RANLIB=:
-
-    
-    
-    
-
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
-  case $host_os in
-  openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
-    ;;
-  *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
-    ;;
-  esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-fi
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-
-
-    
-    
-    
-
-    
-    
-    
-
-    
-    
-    
-
-    
-    
-    
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
-$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
-if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[BCDEGRST]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
-
-# Define system-specific variables.
-case $host_os in
-aix*)
-  symcode='[BCDT]'
-  ;;
-cygwin* | mingw* | pw32* | cegcc*)
-  symcode='[ABCDGISTW]'
-  ;;
-hpux*)
-  if test "$host_cpu" = ia64; then
-    symcode='[ABCDEGRST]'
-  fi
-  ;;
-irix* | nonstopux*)
-  symcode='[BCDEGRST]'
-  ;;
-osf*)
-  symcode='[BCDEGQRST]'
-  ;;
-solaris*)
-  symcode='[BDRT]'
-  ;;
-sco3.2v5*)
-  symcode='[DT]'
-  ;;
-sysv4.2uw2*)
-  symcode='[DT]'
-  ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
-  symcode='[ABDT]'
-  ;;
-sysv4)
-  symcode='[DFNSTU]'
-  ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
-  symcode='[ABCDGIRSTW]' ;;
-esac
-
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
-  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-  ;;
-esac
-
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
-
-  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
-  symxfrm="\\1 $ac_symprfx\\2 \\2"
-
-  # Write the raw and C identifiers.
-  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-    # Fake it for dumpbin and say T for any non-static function
-    # and D for any global variable.
-    # Also find C++ and __fastcall symbols from MSVC++,
-    # which start with @ or ?.
-    lt_cv_sys_global_symbol_pipe="$AWK '"\
-"     {last_section=section; section=\$ 3};"\
-"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-"     \$ 0!~/External *\|/{next};"\
-"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-"     {if(hide[section]) next};"\
-"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
-"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
-"     ' prfx=^$ac_symprfx"
-  else
-    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[	 ]\($symcode$symcode*\)[	 ][	 ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
-  fi
-
-  # Check to see that the pipe works correctly.
-  pipe_works=no
-
-  rm -f conftest*
-  cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
-
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    # Now try to grab the symbols.
-    nlist=conftest.nm
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5
-  (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s "$nlist"; then
-      # Try sorting and uniquifying the output.
-      if sort "$nlist" | uniq > "$nlist"T; then
-	mv -f "$nlist"T "$nlist"
-      else
-	rm -f "$nlist"T
-      fi
-
-      # Make sure that we snagged all the symbols we need.
-      if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
-	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
-	  cat <<_LT_EOF > conftest.$ac_ext
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_LT_EOF
-	  # Now generate the symbol file.
-	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-
-	  cat <<_LT_EOF >> conftest.$ac_ext
-
-/* The mapping between symbol names and symbols.  */
-const struct {
-  const char *name;
-  void       *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[] =
-{
-  { "@PROGRAM@", (void *) 0 },
-_LT_EOF
-	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
-	  cat <<\_LT_EOF >> conftest.$ac_ext
-  {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
-  return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
-	  # Now try linking the two files.
-	  mv conftest.$ac_objext conftstm.$ac_objext
-	  lt_save_LIBS="$LIBS"
-	  lt_save_CFLAGS="$CFLAGS"
-	  LIBS="conftstm.$ac_objext"
-	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
-	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest${ac_exeext}; then
-	    pipe_works=yes
-	  fi
-	  LIBS="$lt_save_LIBS"
-	  CFLAGS="$lt_save_CFLAGS"
-	else
-	  echo "cannot find nm_test_func in $nlist" >&5
-	fi
-      else
-	echo "cannot find nm_test_var in $nlist" >&5
-      fi
-    else
-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
-    fi
-  else
-    echo "$progname: failed program was:" >&5
-    cat conftest.$ac_ext >&5
-  fi
-  rm -rf conftest* conftst*
-
-  # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
-    break
-  else
-    lt_cv_sys_global_symbol_pipe=
-  fi
-done
-
-fi
-
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
-  lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
-fi
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-
-@%:@ Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then :
-  enableval=$enable_libtool_lock; 
-fi
-
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    case `/usr/bin/file conftest.$ac_objext` in
-      *ELF-32*)
-	HPUX_IA64_MODE="32"
-	;;
-      *ELF-64*)
-	HPUX_IA64_MODE="64"
-	;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-*-*-irix6*)
-  # Find out which ABI we are using.
-  echo '#line __oline__ "configure"' > conftest.$ac_ext
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    if test "$lt_cv_prog_gnu_ld" = yes; then
-      case `/usr/bin/file conftest.$ac_objext` in
-	*32-bit*)
-	  LD="${LD-ld} -melf32bsmip"
-	  ;;
-	*N32*)
-	  LD="${LD-ld} -melf32bmipn32"
-	  ;;
-	*64-bit*)
-	  LD="${LD-ld} -melf64bmip"
-	;;
-      esac
-    else
-      case `/usr/bin/file conftest.$ac_objext` in
-	*32-bit*)
-	  LD="${LD-ld} -32"
-	  ;;
-	*N32*)
-	  LD="${LD-ld} -n32"
-	  ;;
-	*64-bit*)
-	  LD="${LD-ld} -64"
-	  ;;
-      esac
-    fi
-  fi
-  rm -rf conftest*
-  ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    case `/usr/bin/file conftest.o` in
-      *32-bit*)
-	case $host in
-	  x86_64-*kfreebsd*-gnu)
-	    LD="${LD-ld} -m elf_i386_fbsd"
-	    ;;
-	  x86_64-*linux*)
-	    LD="${LD-ld} -m elf_i386"
-	    ;;
-	  ppc64-*linux*|powerpc64-*linux*)
-	    LD="${LD-ld} -m elf32ppclinux"
-	    ;;
-	  s390x-*linux*)
-	    LD="${LD-ld} -m elf_s390"
-	    ;;
-	  sparc64-*linux*)
-	    LD="${LD-ld} -m elf32_sparc"
-	    ;;
-	esac
-	;;
-      *64-bit*)
-	case $host in
-	  x86_64-*kfreebsd*-gnu)
-	    LD="${LD-ld} -m elf_x86_64_fbsd"
-	    ;;
-	  x86_64-*linux*)
-	    LD="${LD-ld} -m elf_x86_64"
-	    ;;
-	  ppc*-*linux*|powerpc*-*linux*)
-	    LD="${LD-ld} -m elf64ppc"
-	    ;;
-	  s390*-*linux*|s390*-*tpf*)
-	    LD="${LD-ld} -m elf64_s390"
-	    ;;
-	  sparc*-*linux*)
-	    LD="${LD-ld} -m elf64_sparc"
-	    ;;
-	esac
-	;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-*-*-sco3.2v5*)
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -belf"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
-$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
-if test "${lt_cv_cc_needs_belf+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  lt_cv_cc_needs_belf=yes
-else
-  lt_cv_cc_needs_belf=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
-$as_echo "$lt_cv_cc_needs_belf" >&6; }
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-sparc*-*solaris*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    case `/usr/bin/file conftest.o` in
-    *64-bit*)
-      case $lt_cv_prog_gnu_ld in
-      yes*) LD="${LD-ld} -m elf64_sparc" ;;
-      *)
-	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
-	  LD="${LD-ld} -64"
-	fi
-	;;
-      esac
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-esac
-
-need_locks="$enable_libtool_lock"
-
-
-  case $host_os in
-    rhapsody* | darwin*)
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DSYMUTIL+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$DSYMUTIL"; then
-  ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-DSYMUTIL=$ac_cv_prog_DSYMUTIL
-if test -n "$DSYMUTIL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
-$as_echo "$DSYMUTIL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DSYMUTIL"; then
-  ac_ct_DSYMUTIL=$DSYMUTIL
-  # Extract the first word of "dsymutil", so it can be a program name with args.
-set dummy dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_DSYMUTIL"; then
-  ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
-if test -n "$ac_ct_DSYMUTIL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
-$as_echo "$ac_ct_DSYMUTIL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_DSYMUTIL" = x; then
-    DSYMUTIL=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    DSYMUTIL=$ac_ct_DSYMUTIL
-  fi
-else
-  DSYMUTIL="$ac_cv_prog_DSYMUTIL"
-fi
-
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
-set dummy ${ac_tool_prefix}nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_NMEDIT+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$NMEDIT"; then
-  ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-NMEDIT=$ac_cv_prog_NMEDIT
-if test -n "$NMEDIT"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
-$as_echo "$NMEDIT" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_NMEDIT"; then
-  ac_ct_NMEDIT=$NMEDIT
-  # Extract the first word of "nmedit", so it can be a program name with args.
-set dummy nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_NMEDIT"; then
-  ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_NMEDIT="nmedit"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
-if test -n "$ac_ct_NMEDIT"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
-$as_echo "$ac_ct_NMEDIT" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_NMEDIT" = x; then
-    NMEDIT=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    NMEDIT=$ac_ct_NMEDIT
-  fi
-else
-  NMEDIT="$ac_cv_prog_NMEDIT"
-fi
-
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
-set dummy ${ac_tool_prefix}lipo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_LIPO+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$LIPO"; then
-  ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-LIPO=$ac_cv_prog_LIPO
-if test -n "$LIPO"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
-$as_echo "$LIPO" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_LIPO"; then
-  ac_ct_LIPO=$LIPO
-  # Extract the first word of "lipo", so it can be a program name with args.
-set dummy lipo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_LIPO"; then
-  ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_LIPO="lipo"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
-if test -n "$ac_ct_LIPO"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
-$as_echo "$ac_ct_LIPO" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_LIPO" = x; then
-    LIPO=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    LIPO=$ac_ct_LIPO
-  fi
-else
-  LIPO="$ac_cv_prog_LIPO"
-fi
-
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OTOOL+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$OTOOL"; then
-  ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-OTOOL=$ac_cv_prog_OTOOL
-if test -n "$OTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
-$as_echo "$OTOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OTOOL"; then
-  ac_ct_OTOOL=$OTOOL
-  # Extract the first word of "otool", so it can be a program name with args.
-set dummy otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_OTOOL"; then
-  ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_OTOOL="otool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
-if test -n "$ac_ct_OTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
-$as_echo "$ac_ct_OTOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_OTOOL" = x; then
-    OTOOL=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    OTOOL=$ac_ct_OTOOL
-  fi
-else
-  OTOOL="$ac_cv_prog_OTOOL"
-fi
-
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OTOOL64+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$OTOOL64"; then
-  ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-OTOOL64=$ac_cv_prog_OTOOL64
-if test -n "$OTOOL64"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
-$as_echo "$OTOOL64" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OTOOL64"; then
-  ac_ct_OTOOL64=$OTOOL64
-  # Extract the first word of "otool64", so it can be a program name with args.
-set dummy otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_OTOOL64"; then
-  ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_OTOOL64="otool64"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
-if test -n "$ac_ct_OTOOL64"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
-$as_echo "$ac_ct_OTOOL64" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_OTOOL64" = x; then
-    OTOOL64=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    OTOOL64=$ac_ct_OTOOL64
-  fi
-else
-  OTOOL64="$ac_cv_prog_OTOOL64"
-fi
-
-    
-    
-    
-    
-
-    
-    
-    
-    
-
-    
-    
-    
-    
-
-    
-    
-    
-    
-
-    
-    
-    
-    
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
-$as_echo_n "checking for -single_module linker flag... " >&6; }
-if test "${lt_cv_apple_cc_single_mod+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_apple_cc_single_mod=no
-      if test -z "${LT_MULTI_MODULE}"; then
-	# By default we will add the -single_module flag. You can override
-	# by either setting the environment variable LT_MULTI_MODULE
-	# non-empty at configure time, or by adding -multi_module to the
-	# link flags.
-	rm -rf libconftest.dylib*
-	echo "int foo(void){return 1;}" > conftest.c
-	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&5
-	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
-	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
-        _lt_result=$?
-	if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
-	  lt_cv_apple_cc_single_mod=yes
-	else
-	  cat conftest.err >&5
-	fi
-	rm -rf libconftest.dylib*
-	rm -f conftest.*
-      fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
-$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
-$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
-if test "${lt_cv_ld_exported_symbols_list+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_ld_exported_symbols_list=no
-      save_LDFLAGS=$LDFLAGS
-      echo "_main" > conftest.sym
-      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  lt_cv_ld_exported_symbols_list=yes
-else
-  lt_cv_ld_exported_symbols_list=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	LDFLAGS="$save_LDFLAGS"
-    
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
-$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
-    case $host_os in
-    rhapsody* | darwin1.[012])
-      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
-    darwin1.*)
-      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
-    darwin*) # darwin 5.x on
-      # if running on 10.5 or later, the deployment target defaults
-      # to the OS version, if on x86, and 10.4, the deployment
-      # target defaults to 10.4. Don't you love it?
-      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
-	10.0,*86*-darwin8*|10.0,*-darwin[91]*)
-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-	10.[012]*)
-	  _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
-	10.*)
-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-      esac
-    ;;
-  esac
-    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
-      _lt_dar_single_mod='$single_module'
-    fi
-    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
-      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
-    else
-      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    fi
-    if test "$DSYMUTIL" != ":"; then
-      _lt_dsymutil='~$DSYMUTIL $lib || :'
-    else
-      _lt_dsymutil=
-    fi
-    ;;
-  esac
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-      # Double quotes because CPP needs to be expanded
-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-@%:@ifdef __STDC__
-@%:@ include <limits.h>
-@%:@else
-@%:@ include <assert.h>
-@%:@endif
-		     Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-@%:@include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-  break
-fi
-
-    done
-    ac_cv_prog_CPP=$CPP
-  
-fi
-  CPP=$ac_cv_prog_CPP
-else
-  ac_cv_prog_CPP=$CPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-@%:@ifdef __STDC__
-@%:@ include <limits.h>
-@%:@else
-@%:@ include <assert.h>
-@%:@endif
-		     Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-@%:@include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-  
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5 ; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_header_stdc=yes
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then :
-  
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then :
-  
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-		   (('a' <= (c) && (c) <= 'i') \
-		     || ('j' <= (c) && (c) <= 'r') \
-		     || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-	|| toupper (i) != TOUPPER (i))
-      return 2;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-  
-$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-		  inttypes.h stdint.h unistd.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
- 
-fi
-
-done
-
-
-for ac_header in dlfcn.h
-do :
-  ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_dlfcn_h" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-@%:@define HAVE_DLFCN_H 1
-_ACEOF
- 
-fi
-
-done
-
-
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-if test -z "$CXX"; then
-  if test -n "$CCC"; then
-    CXX=$CCC
-  else
-    if test -n "$ac_tool_prefix"; then
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CXX+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CXX"; then
-  ac_cv_prog_CXX="$CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CXX=$ac_cv_prog_CXX
-if test -n "$CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
-$as_echo "$CXX" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$CXX" && break
-  done
-fi
-if test -z "$CXX"; then
-  ac_ct_CXX=$CXX
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CXX"; then
-  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CXX="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
-if test -n "$ac_ct_CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
-$as_echo "$ac_ct_CXX" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CXX" && break
-done
-
-  if test "x$ac_ct_CXX" = x; then
-    CXX="g++"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CXX=$ac_ct_CXX
-  fi
-fi
-
-  fi
-fi
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
-$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
-if test "${ac_cv_cxx_compiler_gnu+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
-else
-  ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
-$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GXX=yes
-else
-  GXX=
-fi
-ac_test_CXXFLAGS=${CXXFLAGS+set}
-ac_save_CXXFLAGS=$CXXFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
-$as_echo_n "checking whether $CXX accepts -g... " >&6; }
-if test "${ac_cv_prog_cxx_g+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_cxx_werror_flag=$ac_cxx_werror_flag
-   ac_cxx_werror_flag=yes
-   ac_cv_prog_cxx_g=no
-   CXXFLAGS="-g"
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-else
-  CXXFLAGS=""
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  
-else
-  ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-	 CXXFLAGS="-g"
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
-$as_echo "$ac_cv_prog_cxx_g" >&6; }
-if test "$ac_test_CXXFLAGS" = set; then
-  CXXFLAGS=$ac_save_CXXFLAGS
-elif test $ac_cv_prog_cxx_g = yes; then
-  if test "$GXX" = yes; then
-    CXXFLAGS="-g -O2"
-  else
-    CXXFLAGS="-g"
-  fi
-else
-  if test "$GXX" = yes; then
-    CXXFLAGS="-O2"
-  else
-    CXXFLAGS=
-  fi
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-depcc="$CXX"  am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
-  # We make a subdir and do the tests there.  Otherwise we can end up
-  # making bogus files that we don't know about and never remove.  For
-  # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
-  mkdir conftest.dir
-  # Copy depcomp to subdir because otherwise we won't find it if we're
-  # using a relative directory.
-  cp "$am_depcomp" conftest.dir
-  cd conftest.dir
-  # We will build objects and dependencies in a subdirectory because
-  # it helps to detect inapplicable dependency modes.  For instance
-  # both Tru64's cc and ICC support -MD to output dependencies as a
-  # side effect of compilation, but ICC will put the dependencies in
-  # the current directory while Tru64 will put them in the object
-  # directory.
-  mkdir sub
-
-  am_cv_CXX_dependencies_compiler_type=none
-  if test "$am_compiler_list" = ""; then
-     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
-  fi
-  am__universal=false
-  case " $depcc " in #(
-     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-     esac
-
-  for depmode in $am_compiler_list; do
-    # Setup a source with many dependencies, because some compilers
-    # like to wrap large dependency lists on column 80 (with \), and
-    # we should not choose a depcomp mode which is confused by this.
-    #
-    # We need to recreate these files for each test, as the compiler may
-    # overwrite some of them when testing with obscure command lines.
-    # This happens at least with the AIX C compiler.
-    : > sub/conftest.c
-    for i in 1 2 3 4 5 6; do
-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
-    done
-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
-    am__obj=sub/conftest.${OBJEXT-o}
-    am__minus_obj="-o $am__obj"
-    case $depmode in
-    gcc)
-      # This depmode causes a compiler race in universal mode.
-      test "$am__universal" = false || continue
-      ;;
-    nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
-      if test "x$enable_dependency_tracking" = xyes; then
-	continue
-      else
-	break
-      fi
-      ;;
-    msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
-      # not run yet.  These depmodes are late enough in the game, and
-      # so weak that their functioning should not be impacted.
-      am__obj=conftest.${OBJEXT-o}
-      am__minus_obj=
-      ;;
-    none) break ;;
-    esac
-    if depmode=$depmode \
-       source=sub/conftest.c object=$am__obj \
-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
-         >/dev/null 2>conftest.err &&
-       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-      # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-        am_cv_CXX_dependencies_compiler_type=$depmode
-        break
-      fi
-    fi
-  done
-
-  cd ..
-  rm -rf conftest.dir
-else
-  am_cv_CXX_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
-CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
-
- if 
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
-  am__fastdepCXX_TRUE=
-  am__fastdepCXX_FALSE='#'
-else
-  am__fastdepCXX_TRUE='#'
-  am__fastdepCXX_FALSE=
-fi
-
-
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
-    (test "X$CXX" != "Xg++"))) ; then
-  ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
-$as_echo_n "checking how to run the C++ preprocessor... " >&6; }
-if test -z "$CXXCPP"; then
-  if test "${ac_cv_prog_CXXCPP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-      # Double quotes because CXXCPP needs to be expanded
-    for CXXCPP in "$CXX -E" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-@%:@ifdef __STDC__
-@%:@ include <limits.h>
-@%:@else
-@%:@ include <assert.h>
-@%:@endif
-		     Syntax error
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-  
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-@%:@include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-  break
-fi
-
-    done
-    ac_cv_prog_CXXCPP=$CXXCPP
-  
-fi
-  CXXCPP=$ac_cv_prog_CXXCPP
-else
-  ac_cv_prog_CXXCPP=$CXXCPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
-$as_echo "$CXXCPP" >&6; }
-ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-@%:@ifdef __STDC__
-@%:@ include <limits.h>
-@%:@else
-@%:@ include <assert.h>
-@%:@endif
-		     Syntax error
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-  
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-@%:@include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-  
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-_lt_caught_CXX_error=yes; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-else
-  _lt_caught_CXX_error=yes
-fi
-
-
-
-
-
-# Set options
-
-
-
-        
-  
-            @%:@ Check whether --enable-shared was given.
-if test "${enable_shared+set}" = set; then :
-  enableval=$enable_shared; p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_shared=yes ;;
-    no) enable_shared=no ;;
-    *)
-      enable_shared=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_shared=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac
-else
-  enable_shared=yes
-fi
-
-
-    
-    
-    
-    
-
-
-
-  @%:@ Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then :
-  enableval=$enable_static; p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_static=yes ;;
-    no) enable_static=no ;;
-    *)
-     enable_static=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_static=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac
-else
-  enable_static=yes
-fi
-
-
-    
-    
-    
-    
-
-
-
-  
-@%:@ Check whether --with-pic was given.
-if test "${with_pic+set}" = set; then :
-  withval=$with_pic; pic_mode="$withval"
-else
-  pic_mode=default
-fi
-
-
-test -z "$pic_mode" && pic_mode=default
-
-
-    
-    
-    
-
-
-  @%:@ Check whether --enable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then :
-  enableval=$enable_fast_install; p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_fast_install=yes ;;
-    no) enable_fast_install=no ;;
-    *)
-      enable_fast_install=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_fast_install=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac
-else
-  enable_fast_install=yes
-fi
-
-
-
-    
-    
-    
-
-
-  
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-
-    
-    
-    
-
-    
-    
-    
-
-    
-    
-    
-
-    
-    
-    
-
-    
-    
-    
-
-    
-    
-    
-test -z "$LN_S" && LN_S="ln -s"
-
-    
-    
-    
-
-    
-    
-    
-
-    
-    
-    
-
-
-if test -n "${ZSH_VERSION+set}" ; then
-   setopt NO_GLOB_SUBST
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
-$as_echo_n "checking for objdir... " >&6; }
-if test "${lt_cv_objdir+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
-  lt_cv_objdir=.libs
-else
-  # MS-DOS does not allow filenames that begin with a dot.
-  lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
-$as_echo "$lt_cv_objdir" >&6; }
-objdir=$lt_cv_objdir
-
-    
-    
-    
-
-cat >>confdefs.h <<_ACEOF
-@%:@define LT_OBJDIR "$lt_cv_objdir/"
-_ACEOF
-
-
-
-
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-
-case $host_os in
-aix3*)
-  # AIX sometimes has problems with the GCC collect2 program.  For some
-  # reason, if we set the COLLECT_NAMES environment variable, the problems
-  # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
-    COLLECT_NAMES=
-    export COLLECT_NAMES
-  fi
-  ;;
-esac
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-for cc_temp in $compiler""; do
-  case $cc_temp in
-    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
-    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
-
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
-  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
-$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $MAGIC_CMD in
-[\\/*] |  ?:[\\/]*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/${ac_tool_prefix}file; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
-      if test -n "$file_magic_test_file"; then
-	case $deplibs_check_method in
-	"file_magic "*)
-	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-	    $EGREP "$file_magic_regex" > /dev/null; then
-	    :
-	  else
-	    cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool at gnu.org
-
-_LT_EOF
-	  fi ;;
-	esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-    
-    
-    
-
-if test -z "$lt_cv_path_MAGIC_CMD"; then
-  if test -n "$ac_tool_prefix"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
-$as_echo_n "checking for file... " >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $MAGIC_CMD in
-[\\/*] |  ?:[\\/]*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/file; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/file"
-      if test -n "$file_magic_test_file"; then
-	case $deplibs_check_method in
-	"file_magic "*)
-	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-	    $EGREP "$file_magic_regex" > /dev/null; then
-	    :
-	  else
-	    cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool at gnu.org
-
-_LT_EOF
-	  fi ;;
-	esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  else
-    MAGIC_CMD=:
-  fi
-fi
-
-  fi
-  ;;
-esac
-
-# Use C for the default configuration in the libtool script
-
-lt_save_CC="$CC"
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-objext=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
-  
-lt_prog_compiler_no_builtin_flag=
-
-if test "$GCC" = yes; then
-  lt_prog_compiler_no_builtin_flag=' -fno-builtin'
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_rtti_exceptions=no
-   ac_outfile=conftest.$ac_objext
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="-fno-rtti -fno-exceptions"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:__oline__: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_rtti_exceptions=yes
-     fi
-   fi
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
-
-if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
-    lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
-else
-    :
-fi
-
-fi
-
-    
-    
-    
-
-
-  lt_prog_compiler_wl=
-lt_prog_compiler_pic=
-lt_prog_compiler_static=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-
-  if test "$GCC" = yes; then
-    lt_prog_compiler_wl='-Wl,'
-    lt_prog_compiler_static='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	lt_prog_compiler_static='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            lt_prog_compiler_pic='-fPIC'
-        ;;
-      m68k)
-            # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
-            lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
-        ;;
-      esac
-      ;;
-
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | cygwin* | pw32* | os2* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      # Although the cygwin gcc ignores -fPIC, still need this for old-style
-      # (--disable-auto-import) libraries
-      lt_prog_compiler_pic='-DDLL_EXPORT'
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      lt_prog_compiler_pic='-fno-common'
-      ;;
-
-    hpux*)
-      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
-      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
-      # sets the default TLS model and affects inlining.
-      case $host_cpu in
-      hppa*64*)
-	# +Z the default
-	;;
-      *)
-	lt_prog_compiler_pic='-fPIC'
-	;;
-      esac
-      ;;
-
-    interix[3-9]*)
-      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-      # Instead, we relocate shared libraries at runtime.
-      ;;
-
-    msdosdjgpp*)
-      # Just because we use GCC doesn't mean we suddenly get shared libraries
-      # on systems that don't support them.
-      lt_prog_compiler_can_build_shared=no
-      enable_shared=no
-      ;;
-
-    *nto* | *qnx*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      lt_prog_compiler_pic='-fPIC -shared'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	lt_prog_compiler_pic=-Kconform_pic
-      fi
-      ;;
-
-    *)
-      lt_prog_compiler_pic='-fPIC'
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      lt_prog_compiler_wl='-Wl,'
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	lt_prog_compiler_static='-Bstatic'
-      else
-	lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-
-    mingw* | cygwin* | pw32* | os2* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic='-DDLL_EXPORT'
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      lt_prog_compiler_wl='-Wl,'
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case $host_cpu in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	lt_prog_compiler_pic='+Z'
-	;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      lt_prog_compiler_static='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      lt_prog_compiler_wl='-Wl,'
-      # PIC (with -KPIC) is the default.
-      lt_prog_compiler_static='-non_shared'
-      ;;
-
-    linux* | k*bsd*-gnu | kopensolaris*-gnu)
-      case $cc_basename in
-      # old Intel for x86_64 which still supported -KPIC.
-      ecc*)
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='-KPIC'
-	lt_prog_compiler_static='-static'
-        ;;
-      # icc used to be incompatible with GCC.
-      # ICC 10 doesn't accept -KPIC any more.
-      icc* | ifort*)
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='-fPIC'
-	lt_prog_compiler_static='-static'
-        ;;
-      # Lahey Fortran 8.1.
-      lf95*)
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='--shared'
-	lt_prog_compiler_static='--static'
-	;;
-      pgcc* | pgf77* | pgf90* | pgf95*)
-        # Portland Group compilers (*not* the Pentium gcc compiler,
-	# which looks to be a dead project)
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='-fpic'
-	lt_prog_compiler_static='-Bstatic'
-        ;;
-      ccc*)
-        lt_prog_compiler_wl='-Wl,'
-        # All Alpha code is PIC.
-        lt_prog_compiler_static='-non_shared'
-        ;;
-      xl*)
-	# IBM XL C 8.0/Fortran 10.1 on PPC
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='-qpic'
-	lt_prog_compiler_static='-qstaticlink'
-	;;
-      *)
-	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ C*)
-	  # Sun C 5.9
-	  lt_prog_compiler_pic='-KPIC'
-	  lt_prog_compiler_static='-Bstatic'
-	  lt_prog_compiler_wl='-Wl,'
-	  ;;
-	*Sun\ F*)
-	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
-	  lt_prog_compiler_pic='-KPIC'
-	  lt_prog_compiler_static='-Bstatic'
-	  lt_prog_compiler_wl=''
-	  ;;
-	esac
-	;;
-      esac
-      ;;
-
-    newsos6)
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    *nto* | *qnx*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      lt_prog_compiler_pic='-fPIC -shared'
-      ;;
-
-    osf3* | osf4* | osf5*)
-      lt_prog_compiler_wl='-Wl,'
-      # All OSF/1 code is PIC.
-      lt_prog_compiler_static='-non_shared'
-      ;;
-
-    rdos*)
-      lt_prog_compiler_static='-non_shared'
-      ;;
-
-    solaris*)
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      case $cc_basename in
-      f77* | f90* | f95*)
-	lt_prog_compiler_wl='-Qoption ld ';;
-      *)
-	lt_prog_compiler_wl='-Wl,';;
-      esac
-      ;;
-
-    sunos4*)
-      lt_prog_compiler_wl='-Qoption ld '
-      lt_prog_compiler_pic='-PIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3*)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-	lt_prog_compiler_pic='-Kconform_pic'
-	lt_prog_compiler_static='-Bstatic'
-      fi
-      ;;
-
-    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    unicos*)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_can_build_shared=no
-      ;;
-
-    uts4*)
-      lt_prog_compiler_pic='-pic'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    *)
-      lt_prog_compiler_can_build_shared=no
-      ;;
-    esac
-  fi
-
-case $host_os in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    lt_prog_compiler_pic=
-    ;;
-  *)
-    lt_prog_compiler_pic="$lt_prog_compiler_pic@&t@ -DPIC"
-    ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
-$as_echo "$lt_prog_compiler_pic" >&6; }
-
-    
-    
-    
-
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if test "${lt_cv_prog_compiler_pic_works+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_pic_works=no
-   ac_outfile=conftest.$ac_objext
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic@&t@ -DPIC"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:__oline__: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_pic_works=yes
-     fi
-   fi
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
-$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
-
-if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
-    case $lt_prog_compiler_pic in
-     "" | " "*) ;;
-     *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
-     esac
-else
-    lt_prog_compiler_pic=
-     lt_prog_compiler_can_build_shared=no
-fi
-
-fi
-
-    
-    
-    
-
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if test "${lt_cv_prog_compiler_static_works+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_static_works=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
-   echo "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The linker can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&5
-       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
-       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_cv_prog_compiler_static_works=yes
-       fi
-     else
-       lt_cv_prog_compiler_static_works=yes
-     fi
-   fi
-   $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
-$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
-
-if test x"$lt_cv_prog_compiler_static_works" = xyes; then
-    :
-else
-    lt_prog_compiler_static=
-fi
-
-
-    
-    
-    
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_c_o=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:__oline__: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_c_o=yes
-     fi
-   fi
-   chmod u+w . 2>&5
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
-
-    
-    
-    
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_c_o=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:__oline__: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_c_o=yes
-     fi
-   fi
-   chmod u+w . 2>&5
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
-
-
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-$as_echo_n "checking if we can lock with hard links... " >&6; }
-  hard_links=yes
-  $RM conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-$as_echo "$hard_links" >&6; }
-  if test "$hard_links" = no; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-    
-    
-    
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-
-  runpath_var=
-  allow_undefined_flag=
-  always_export_symbols=no
-  archive_cmds=
-  archive_expsym_cmds=
-  compiler_needs_object=no
-  enable_shared_with_static_runtimes=no
-  export_dynamic_flag_spec=
-  export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  hardcode_automatic=no
-  hardcode_direct=no
-  hardcode_direct_absolute=no
-  hardcode_libdir_flag_spec=
-  hardcode_libdir_flag_spec_ld=
-  hardcode_libdir_separator=
-  hardcode_minus_L=no
-  hardcode_shlibpath_var=unsupported
-  inherit_rpath=no
-  link_all_deplibs=unknown
-  module_cmds=
-  module_expsym_cmds=
-  old_archive_from_new_cmds=
-  old_archive_from_expsyms_cmds=
-  thread_safe_flag_spec=
-  whole_archive_flag_spec=
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  include_expsyms=
-  # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
-  exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  # Exclude shared library initialization/finalization symbols.
-  extract_expsyms_cmds=
-
-  case $host_os in
-  cygwin* | mingw* | pw32* | cegcc*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  interix*)
-    # we just hope/assume this is gcc and not c89 (= MSVC++)
-    with_gnu_ld=yes
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  linux* | k*bsd*-gnu)
-    link_all_deplibs=no
-    ;;
-  esac
-
-  ld_shlibs=yes
-  if test "$with_gnu_ld" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # Set some defaults for GNU ld with shared library support. These
-    # are reset later if shared libraries are not supported. Putting them
-    # here allows them to be overridden if necessary.
-    runpath_var=LD_RUN_PATH
-    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-    export_dynamic_flag_spec='${wl}--export-dynamic'
-    # ancient GNU ld didn't support --whole-archive et. al.
-    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
-      whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-    else
-      whole_archive_flag_spec=
-    fi
-    supports_anon_versioning=no
-    case `$LD -v 2>&1` in
-      *GNU\ gold*) supports_anon_versioning=yes ;;
-      *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
-      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
-      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
-      *\ 2.11.*) ;; # other 2.11 versions
-      *) supports_anon_versioning=yes ;;
-    esac
-
-    # See if GNU ld supports shared libraries.
-    case $host_os in
-    aix[3-9]*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-	ld_shlibs=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-_LT_EOF
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-            archive_expsym_cmds=''
-        ;;
-      m68k)
-            archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-            hardcode_libdir_flag_spec='-L$libdir'
-            hardcode_minus_L=yes
-        ;;
-      esac
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	allow_undefined_flag=unsupported
-	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32* | cegcc*)
-      # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
-      # as there is no search path for DLLs.
-      hardcode_libdir_flag_spec='-L$libdir'
-      allow_undefined_flag=unsupported
-      always_export_symbols=no
-      enable_shared_with_static_runtimes=yes
-      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
-
-      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	# If the export-symbols file already is a .def file (1st line
-	# is EXPORTS), use it as is; otherwise, prepend...
-	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	  cp $export_symbols $output_objdir/$soname.def;
-	else
-	  echo EXPORTS > $output_objdir/$soname.def;
-	  cat $export_symbols >> $output_objdir/$soname.def;
-	fi~
-	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    interix[3-9]*)
-      hardcode_direct=no
-      hardcode_shlibpath_var=no
-      hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-      export_dynamic_flag_spec='${wl}-E'
-      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-      # Instead, shared libraries are loaded at an image base (0x10000000 by
-      # default) and relocated if they conflict, which is a slow very memory
-      # consuming and fragmenting process.  To avoid this, we pick a random,
-      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-      archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      ;;
-
-    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
-      tmp_diet=no
-      if test "$host_os" = linux-dietlibc; then
-	case $cc_basename in
-	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
-	esac
-      fi
-      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
-	 && test "$tmp_diet" = no
-      then
-	tmp_addflag=
-	tmp_sharedflag='-shared'
-	case $cc_basename,$host_cpu in
-        pgcc*)				# Portland Group C compiler
-	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag'
-	  ;;
-	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
-	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag -Mnomain' ;;
-	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
-	  tmp_addflag=' -i_dynamic' ;;
-	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
-	  tmp_addflag=' -i_dynamic -nofor_main' ;;
-	ifc* | ifort*)			# Intel Fortran compiler
-	  tmp_addflag=' -nofor_main' ;;
-	lf95*)				# Lahey Fortran 8.1
-	  whole_archive_flag_spec=
-	  tmp_sharedflag='--shared' ;;
-	xl[cC]*)			# IBM XL C 8.0 on PPC (deal with xlf below)
-	  tmp_sharedflag='-qmkshrobj'
-	  tmp_addflag= ;;
-	esac
-	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ C*)			# Sun C 5.9
-	  whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
-	  compiler_needs_object=yes
-	  tmp_sharedflag='-G' ;;
-	*Sun\ F*)			# Sun Fortran 8.3
-	  tmp_sharedflag='-G' ;;
-	esac
-	archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
-        if test "x$supports_anon_versioning" = xyes; then
-          archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
-	    cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-	    echo "local: *; };" >> $output_objdir/$libname.ver~
-	    $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-        fi
-
-	case $cc_basename in
-	xlf*)
-	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
-	  whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
-	  hardcode_libdir_flag_spec=
-	  hardcode_libdir_flag_spec_ld='-rpath $libdir'
-	  archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
-	  if test "x$supports_anon_versioning" = xyes; then
-	    archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
-	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-	      echo "local: *; };" >> $output_objdir/$libname.ver~
-	      $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
-	  fi
-	  ;;
-	esac
-      else
-        ld_shlibs=no
-      fi
-      ;;
-
-    netbsd* | netbsdelf*-gnu)
-      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-	wlarc=
-      else
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris*)
-      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
-	ld_shlibs=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
-      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
-      case `$LD -v 2>&1` in
-        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
-	ld_shlibs=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
-	;;
-	*)
-	  # For security reasons, it is highly recommended that you always
-	  # use absolute paths for naming shared libraries, and exclude the
-	  # DT_RUNPATH tag from executables and libraries.  But doing so
-	  # requires that you compile everything twice, which is a pain.
-	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-	    archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-	  else
-	    ld_shlibs=no
-	  fi
-	;;
-      esac
-      ;;
-
-    sunos4*)
-      archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    *)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-    esac
-
-    if test "$ld_shlibs" = no; then
-      runpath_var=
-      hardcode_libdir_flag_spec=
-      export_dynamic_flag_spec=
-      whole_archive_flag_spec=
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      allow_undefined_flag=unsupported
-      always_export_symbols=yes
-      archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      hardcode_minus_L=yes
-      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
-	# Neither direct hardcoding nor static linking is supported with a
-	# broken collect2.
-	hardcode_direct=unsupported
-      fi
-      ;;
-
-    aix[4-9]*)
-      if test "$host_cpu" = ia64; then
-	# On IA64, the linker does run time linking by default, so we don't
-	# have to do anything special.
-	aix_use_runtimelinking=no
-	exp_sym_flag='-Bexport'
-	no_entry_flag=""
-      else
-	# If we're using GNU nm, then we don't want the "-C" option.
-	# -C means demangle to AIX nm, but means don't demangle with GNU nm
-	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-	  export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-	else
-	  export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-	fi
-	aix_use_runtimelinking=no
-
-	# Test if we are trying to use run time linking or normal
-	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
-	# need to do runtime linking.
-	case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
-	  for ld_flag in $LDFLAGS; do
-	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-	    aix_use_runtimelinking=yes
-	    break
-	  fi
-	  done
-	  ;;
-	esac
-
-	exp_sym_flag='-bexport'
-	no_entry_flag='-bnoentry'
-      fi
-
-      # When large executables or shared objects are built, AIX ld can
-      # have problems creating the table of contents.  If linking a library
-      # or program results in "error TOC overflow" add -mminimal-toc to
-      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-      archive_cmds=''
-      hardcode_direct=yes
-      hardcode_direct_absolute=yes
-      hardcode_libdir_separator=':'
-      link_all_deplibs=yes
-      file_list_spec='${wl}-f,'
-
-      if test "$GCC" = yes; then
-	case $host_os in aix4.[012]|aix4.[012].*)
-	# We only want to do this on AIX 4.2 and lower, the check
-	# below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" &&
-	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
-	  then
-	  # We have reworked collect2
-	  :
-	  else
-	  # We have old collect2
-	  hardcode_direct=unsupported
-	  # It fails to find uninstalled libraries when the uninstalled
-	  # path is not listed in the libpath.  Setting hardcode_minus_L
-	  # to unsupported forces relinking
-	  hardcode_minus_L=yes
-	  hardcode_libdir_flag_spec='-L$libdir'
-	  hardcode_libdir_separator=
-	  fi
-	  ;;
-	esac
-	shared_flag='-shared'
-	if test "$aix_use_runtimelinking" = yes; then
-	  shared_flag="$shared_flag "'${wl}-G'
-	fi
-	link_all_deplibs=no
-      else
-	# not using gcc
-	if test "$host_cpu" = ia64; then
-	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	# chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-	else
-	  if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag='${wl}-G'
-	  else
-	    shared_flag='${wl}-bM:SRE'
-	  fi
-	fi
-      fi
-
-      export_dynamic_flag_spec='${wl}-bexpall'
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      always_export_symbols=yes
-      if test "$aix_use_runtimelinking" = yes; then
-	# Warning - without using the other runtime loading flags (-brtl),
-	# -berok will link without error, but may produce a broken library.
-	allow_undefined_flag='-berok'
-        # Determine the default libpath from the value encoded in an
-        # empty executable.
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-	/^0/ {
-	    s/^0  *\(.*\)$/\1/
-	    p
-	}
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-      else
-	if test "$host_cpu" = ia64; then
-	  hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
-	  allow_undefined_flag="-z nodefs"
-	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
-	else
-	 # Determine the default libpath from the value encoded in an
-	 # empty executable.
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-	/^0/ {
-	    s/^0  *\(.*\)$/\1/
-	    p
-	}
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-	 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-	  # Warning - without using the other run time loading flags,
-	  # -berok will link without error, but may produce a broken library.
-	  no_undefined_flag=' ${wl}-bernotok'
-	  allow_undefined_flag=' ${wl}-berok'
-	  # Exported symbols can be pulled into shared objects from archives
-	  whole_archive_flag_spec='$convenience'
-	  archive_cmds_need_lc=yes
-	  # This is similar to how AIX traditionally builds its shared libraries.
-	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-	fi
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-            archive_expsym_cmds=''
-        ;;
-      m68k)
-            archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-            hardcode_libdir_flag_spec='-L$libdir'
-            hardcode_minus_L=yes
-        ;;
-      esac
-      ;;
-
-    bsdi[45]*)
-      export_dynamic_flag_spec=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32* | cegcc*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      hardcode_libdir_flag_spec=' '
-      allow_undefined_flag=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      old_archive_from_new_cmds='true'
-      # FIXME: Should let the user specify the lib program.
-      old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
-      enable_shared_with_static_runtimes=yes
-      ;;
-
-    darwin* | rhapsody*)
-      
-  
-  archive_cmds_need_lc=no
-  hardcode_direct=no
-  hardcode_automatic=yes
-  hardcode_shlibpath_var=unsupported
-  whole_archive_flag_spec=''
-  link_all_deplibs=yes
-  allow_undefined_flag="$_lt_dar_allow_undefined"
-  case $cc_basename in
-     ifort*) _lt_dar_can_shared=yes ;;
-     *) _lt_dar_can_shared=$GCC ;;
-  esac
-  if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=echo
-    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
-    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
-    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
-    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
-    
-  else
-  ld_shlibs=no
-  fi
-
-      ;;
-
-    dgux*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_shlibpath_var=no
-      ;;
-
-    freebsd1*)
-      ld_shlibs=no
-      ;;
-
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
-      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct=yes
-      hardcode_minus_L=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | dragonfly*)
-      archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-	archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-	archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      fi
-      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-      hardcode_libdir_separator=:
-      hardcode_direct=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      hardcode_minus_L=yes
-      export_dynamic_flag_spec='${wl}-E'
-      ;;
-
-    hpux10*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      if test "$with_gnu_ld" = no; then
-	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-	hardcode_libdir_flag_spec_ld='+b $libdir'
-	hardcode_libdir_separator=:
-	hardcode_direct=yes
-	hardcode_direct_absolute=yes
-	export_dynamic_flag_spec='${wl}-E'
-	# hardcode_minus_L: Not really in the search PATH,
-	# but as the default location of the library.
-	hardcode_minus_L=yes
-      fi
-      ;;
-
-    hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	case $host_cpu in
-	hppa*64*)
-	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      else
-	case $host_cpu in
-	hppa*64*)
-	  archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      fi
-      if test "$with_gnu_ld" = no; then
-	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-	hardcode_libdir_separator=:
-
-	case $host_cpu in
-	hppa*64*|ia64*)
-	  hardcode_direct=no
-	  hardcode_shlibpath_var=no
-	  ;;
-	*)
-	  hardcode_direct=yes
-	  hardcode_direct_absolute=yes
-	  export_dynamic_flag_spec='${wl}-E'
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  hardcode_minus_L=yes
-	  ;;
-	esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	# Try to use the -exported_symbol ld option, if it does not
-	# work, assume that -exports_file does not work either and
-	# implicitly export all symbols.
-        save_LDFLAGS="$LDFLAGS"
-        LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-int foo(void) {}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-        
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-        LDFLAGS="$save_LDFLAGS"
-      else
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
-      fi
-      archive_cmds_need_lc='no'
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      inherit_rpath=yes
-      link_all_deplibs=yes
-      ;;
-
-    netbsd* | netbsdelf*-gnu)
-      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-	archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    newsos6)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct=yes
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      hardcode_shlibpath_var=no
-      ;;
-
-    *nto* | *qnx*)
-      ;;
-
-    openbsd*)
-      if test -f /usr/libexec/ld.so; then
-	hardcode_direct=yes
-	hardcode_shlibpath_var=no
-	hardcode_direct_absolute=yes
-	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	  archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	  archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-	  hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-	  export_dynamic_flag_spec='${wl}-E'
-	else
-	  case $host_os in
-	   openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-	     archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-	     hardcode_libdir_flag_spec='-R$libdir'
-	     ;;
-	   *)
-	     archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	     hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-	     ;;
-	  esac
-	fi
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    os2*)
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_minus_L=yes
-      allow_undefined_flag=unsupported
-      archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	allow_undefined_flag=' -expect_unresolved \*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      archive_cmds_need_lc='no'
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      ;;
-
-    osf4* | osf5*)	# as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      else
-	allow_undefined_flag=' -expect_unresolved \*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-	archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
-
-	# Both c and cxx compiler support -rpath directly
-	hardcode_libdir_flag_spec='-rpath $libdir'
-      fi
-      archive_cmds_need_lc='no'
-      hardcode_libdir_separator=:
-      ;;
-
-    solaris*)
-      no_undefined_flag=' -z defs'
-      if test "$GCC" = yes; then
-	wlarc='${wl}'
-	archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-      else
-	case `$CC -V 2>&1` in
-	*"Compilers 5.0"*)
-	  wlarc=''
-	  archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
-	  ;;
-	*)
-	  wlarc='${wl}'
-	  archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
-	  archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-	  ;;
-	esac
-      fi
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_shlibpath_var=no
-      case $host_os in
-      solaris2.[0-5] | solaris2.[0-5].*) ;;
-      *)
-	# The compiler driver will combine and reorder linker options,
-	# but understands `-z linker_flag'.  GCC discards it without `$wl',
-	# but is careful enough not to reorder.
-	# Supported since Solaris 2.6 (maybe 2.5.1?)
-	if test "$GCC" = yes; then
-	  whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-	else
-	  whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
-	fi
-	;;
-      esac
-      link_all_deplibs=yes
-      ;;
-
-    sunos4*)
-      if test "x$host_vendor" = xsequent; then
-	# Use $CC to link under sequent, because it throws in some extra .o
-	# files that make .init and .fini sections work.
-	archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_direct=yes
-      hardcode_minus_L=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-	sni)
-	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  hardcode_direct=yes # is this really true???
-	;;
-	siemens)
-	  ## LD is ld it makes a PLAMLIB
-	  ## CC just makes a GrossModule.
-	  archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-	  reload_cmds='$CC -r -o $output$reload_objs'
-	  hardcode_direct=no
-        ;;
-	motorola)
-	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  hardcode_direct=no #Motorola manual says yes, but my tests say they lie
-	;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var=no
-      ;;
-
-    sysv4.3*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var=no
-      export_dynamic_flag_spec='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	hardcode_shlibpath_var=no
-	runpath_var=LD_RUN_PATH
-	hardcode_runpath_var=yes
-	ld_shlibs=yes
-      fi
-      ;;
-
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
-      no_undefined_flag='${wl}-z,text'
-      archive_cmds_need_lc=no
-      hardcode_shlibpath_var=no
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-	archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    sysv5* | sco3.2v5* | sco5v6*)
-      # Note: We can NOT use -z defs as we might desire, because we do not
-      # link with -lc, and that would cause any symbols used from libc to
-      # always be unresolved, which means just about no library would
-      # ever link correctly.  If we're not using GNU ld we use -z text
-      # though, which does catch some bad symbols but isn't as heavy-handed
-      # as -z defs.
-      no_undefined_flag='${wl}-z,text'
-      allow_undefined_flag='${wl}-z,nodefs'
-      archive_cmds_need_lc=no
-      hardcode_shlibpath_var=no
-      hardcode_libdir_flag_spec='${wl}-R,$libdir'
-      hardcode_libdir_separator=':'
-      link_all_deplibs=yes
-      export_dynamic_flag_spec='${wl}-Bexport'
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-	archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    uts4*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_shlibpath_var=no
-      ;;
-
-    *)
-      ld_shlibs=no
-      ;;
-    esac
-
-    if test x$host_vendor = xsni; then
-      case $host in
-      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-	export_dynamic_flag_spec='${wl}-Blargedynsym'
-	;;
-      esac
-    fi
-  fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
-$as_echo "$ld_shlibs" >&6; }
-test "$ld_shlibs" = no && can_build_shared=no
-
-with_gnu_ld=$with_gnu_ld
-
-
-    
-    
-    
-
-    
-    
-    
-
-    
-    
-    
-
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc" in
-x|xyes)
-  # Assume -lc should be added
-  archive_cmds_need_lc=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $archive_cmds in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-      $RM conftest*
-      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$lt_prog_compiler_wl
-	pic_flag=$lt_prog_compiler_pic
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$allow_undefined_flag
-        allow_undefined_flag=
-        if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
-  (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-        then
-	  archive_cmds_need_lc=no
-        else
-	  archive_cmds_need_lc=yes
-        fi
-        allow_undefined_flag=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $RM conftest*
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5
-$as_echo "$archive_cmds_need_lc" >&6; }
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-$as_echo_n "checking dynamic linker characteristics... " >&6; }
-
-if test "$GCC" = yes; then
-  case $host_os in
-    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
-    *) lt_awk_arg="/^libraries:/" ;;
-  esac
-  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
-  # Ok, now we have the path, separated by spaces, we can step through it
-  # and add multilib dir if necessary.
-  lt_tmp_lt_search_path_spec=
-  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
-  for lt_sys_path in $lt_search_path_spec; do
-    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
-      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
-    else
-      test -d "$lt_sys_path" && \
-	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
-    fi
-  done
-  lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
-BEGIN {RS=" "; FS="/|\n";} {
-  lt_foo="";
-  lt_count=0;
-  for (lt_i = NF; lt_i > 0; lt_i--) {
-    if ($lt_i != "" && $lt_i != ".") {
-      if ($lt_i == "..") {
-        lt_count++;
-      } else {
-        if (lt_count == 0) {
-          lt_foo="/" $lt_i lt_foo;
-        } else {
-          lt_count--;
-        }
-      }
-    }
-  }
-  if (lt_foo != "") { lt_freq[lt_foo]++; }
-  if (lt_freq[lt_foo] == 1) { print lt_foo; }
-}'`
-  sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix[4-9]*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  case $host_cpu in
-  powerpc)
-    # Since July 2007 AmigaOS4 officially supports .so libraries.
-    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    ;;
-  m68k)
-    library_names_spec='$libname.ixlibrary $libname.a'
-    # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-    ;;
-  esac
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[45]*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname~
-      chmod a+x \$dldir/$dlname~
-      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
-        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
-      fi'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw* | cegcc*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-
-  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-freebsd* | dragonfly*)
-  # DragonFly does not have aout.  When/if they implement a new
-  # versioning mechanism, adjust this.
-  if test -x /usr/bin/objformat; then
-    objformat=`/usr/bin/objformat`
-  else
-    case $host_os in
-    freebsd[123]*) objformat=aout ;;
-    *) objformat=elf ;;
-    esac
-  fi
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[01]* | freebsdelf3.[01]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
-  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  *) # from 4.6 on, and DragonFly
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case $host_cpu in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  hppa*64*)
-    shrext_cmds='.sl'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-interix[3-9]*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # Some binutils ld are patched to set DT_RUNPATH
-  save_LDFLAGS=$LDFLAGS
-  save_libdir=$libdir
-  eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
-       LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
-  shlibpath_overrides_runpath=yes
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-  LDFLAGS=$save_LDFLAGS
-  libdir=$save_libdir
-
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-netbsdelf*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='NetBSD ld.elf_so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-*nto* | *qnx*)
-  version_type=qnx
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='ldqnx.so'
-  ;;
-
-openbsd*)
-  version_type=sunos
-  sys_lib_dlsearch_path_spec="/usr/lib"
-  need_lib_prefix=no
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
-    *)				need_version=no  ;;
-  esac
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-	shlibpath_overrides_runpath=no
-	;;
-      *)
-	shlibpath_overrides_runpath=yes
-	;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-rdos*)
-  dynamic_linker=no
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  version_type=freebsd-elf
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  if test "$with_gnu_ld" = yes; then
-    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
-  else
-    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
-    case $host_os in
-      sco3.2v5*)
-        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
-	;;
-    esac
-  fi
-  sys_lib_dlsearch_path_spec='/usr/lib'
-  ;;
-
-tpf*)
-  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
-hardcode_action=
-if test -n "$hardcode_libdir_flag_spec" ||
-   test -n "$runpath_var" ||
-   test "X$hardcode_automatic" = "Xyes" ; then
-
-  # We can hardcode non-existent directories.
-  if test "$hardcode_direct" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
-     test "$hardcode_minus_L" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action=unsupported
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
-$as_echo "$hardcode_action" >&6; }
-
-if test "$hardcode_action" = relink ||
-   test "$inherit_rpath" = yes; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-    
-    
-    
-
-
-  if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32* | cegcc*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-    ;;
-
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-    ;;
-
-  darwin*)
-  # if libdl is installed we need to link against it
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dl_dlopen=yes
-else
-  ac_cv_lib_dl_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-  
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    
-fi
-
-    ;;
-
-  *)
-    ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
-if test "x$ac_cv_func_shl_load" = x""yes; then :
-  lt_cv_dlopen="shl_load"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
-$as_echo_n "checking for shl_load in -ldld... " >&6; }
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-int
-main ()
-{
-return shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dld_shl_load=yes
-else
-  ac_cv_lib_dld_shl_load=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
-$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
-if test "x$ac_cv_lib_dld_shl_load" = x""yes; then :
-  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
-else
-  ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
-if test "x$ac_cv_func_dlopen" = x""yes; then :
-  lt_cv_dlopen="dlopen"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dl_dlopen=yes
-else
-  ac_cv_lib_dl_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
-$as_echo_n "checking for dlopen in -lsvld... " >&6; }
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_svld_dlopen=yes
-else
-  ac_cv_lib_svld_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
-$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
-if test "x$ac_cv_lib_svld_dlopen" = x""yes; then :
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
-$as_echo_n "checking for dld_link in -ldld... " >&6; }
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dld_link ();
-int
-main ()
-{
-return dld_link ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dld_dld_link=yes
-else
-  ac_cv_lib_dld_dld_link=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
-$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
-if test "x$ac_cv_lib_dld_dld_link" = x""yes; then :
-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
-fi
-
-	      
-fi
-
-	    
-fi
-
-	  
-fi
-
-	
-fi
-
-      
-fi
-
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
-$as_echo_n "checking whether a program can dlopen itself... " >&6; }
-if test "${lt_cv_dlopen_self+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  	  if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<_LT_EOF
-#line __oline__ "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-  else
-    puts (dlerror ());
-
-  return status;
-}
-_LT_EOF
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) >&5 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self=no
-  fi
-fi
-rm -fr conftest*
-
-    
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
-$as_echo "$lt_cv_dlopen_self" >&6; }
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
-$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
-if test "${lt_cv_dlopen_self_static+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  	  if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self_static=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<_LT_EOF
-#line __oline__ "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-  else
-    puts (dlerror ());
-
-  return status;
-}
-_LT_EOF
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) >&5 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self_static=no
-  fi
-fi
-rm -fr conftest*
-
-      
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
-$as_echo "$lt_cv_dlopen_self_static" >&6; }
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-  
-striplib=
-old_striplib=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
-$as_echo_n "checking whether stripping libraries is possible... " >&6; }
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-  darwin*)
-    if test -n "$STRIP" ; then
-      striplib="$STRIP -x"
-      old_striplib="$STRIP -S"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-    else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-    fi
-    ;;
-  *)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-    ;;
-  esac
-fi
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-
-  # Report which library types will actually be built
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
-$as_echo_n "checking if libtool supports shared libraries... " >&6; }
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
-$as_echo "$can_build_shared" >&6; }
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
-$as_echo_n "checking whether to build shared libraries... " >&6; }
-  test "$can_build_shared" = "no" && enable_shared=no
-
-  # On AIX, shared libraries and static libraries use the same namespace, and
-  # are all built from PIC.
-  case $host_os in
-  aix3*)
-    test "$enable_shared" = yes && enable_static=no
-    if test -n "$RANLIB"; then
-      archive_cmds="$archive_cmds~\$RANLIB \$lib"
-      postinstall_cmds='$RANLIB $lib'
-    fi
-    ;;
-
-  aix[4-9]*)
-    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-      test "$enable_shared" = yes && enable_static=no
-    fi
-    ;;
-  esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
-$as_echo "$enable_shared" >&6; }
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
-$as_echo_n "checking whether to build static libraries... " >&6; }
-  # Make sure either enable_shared or enable_static is yes.
-  test "$enable_shared" = yes || enable_static=yes
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
-$as_echo "$enable_static" >&6; }
-
-  
-
-
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC="$lt_save_CC"
-
-      
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-archive_cmds_need_lc_CXX=no
-allow_undefined_flag_CXX=
-always_export_symbols_CXX=no
-archive_expsym_cmds_CXX=
-compiler_needs_object_CXX=no
-export_dynamic_flag_spec_CXX=
-hardcode_direct_CXX=no
-hardcode_direct_absolute_CXX=no
-hardcode_libdir_flag_spec_CXX=
-hardcode_libdir_flag_spec_ld_CXX=
-hardcode_libdir_separator_CXX=
-hardcode_minus_L_CXX=no
-hardcode_shlibpath_var_CXX=unsupported
-hardcode_automatic_CXX=no
-inherit_rpath_CXX=no
-module_cmds_CXX=
-module_expsym_cmds_CXX=
-link_all_deplibs_CXX=unknown
-old_archive_cmds_CXX=$old_archive_cmds
-no_undefined_flag_CXX=
-whole_archive_flag_spec_CXX=
-enable_shared_with_static_runtimes_CXX=no
-
-# Source file extension for C++ test sources.
-ac_ext=cpp
-
-# Object file extension for compiled C++ test sources.
-objext=o
-objext_CXX=$objext
-
-# No sense in running all these tests if we already determined that
-# the CXX compiler isn't working.  Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_caught_CXX_error" != yes; then
-  # Code to be used in simple compile tests
-  lt_simple_compile_test_code="int some_variable = 0;"
-
-  # Code to be used in simple link tests
-  lt_simple_link_test_code='int main(int, char *[]) { return(0); }'
-
-  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-  
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-  # save warnings/boilerplate of simple test code
-  ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-
-  ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-
-
-  # Allow CC to be a program name with arguments.
-  lt_save_CC=$CC
-  lt_save_LD=$LD
-  lt_save_GCC=$GCC
-  GCC=$GXX
-  lt_save_with_gnu_ld=$with_gnu_ld
-  lt_save_path_LD=$lt_cv_path_LD
-  if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
-    lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
-  else
-    $as_unset lt_cv_prog_gnu_ld
-  fi
-  if test -n "${lt_cv_path_LDCXX+set}"; then
-    lt_cv_path_LD=$lt_cv_path_LDCXX
-  else
-    $as_unset lt_cv_path_LD
-  fi
-  test -z "${LDCXX+set}" || LD=$LDCXX
-  CC=${CXX-"c++"}
-  compiler=$CC
-  compiler_CXX=$CC
-  for cc_temp in $compiler""; do
-  case $cc_temp in
-    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
-    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
-
-
-  if test -n "$compiler"; then
-    # We don't want -fno-exception when compiling C++ code, so set the
-    # no_builtin_flag separately
-    if test "$GXX" = yes; then
-      lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
-    else
-      lt_prog_compiler_no_builtin_flag_CXX=
-    fi
-
-    if test "$GXX" = yes; then
-      # Set up default GNU C++ configuration
-
-      
-
-@%:@ Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
-  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else
-  with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [\\/]* | ?:[\\/]*)
-      re_direlt='/[^/][^/]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
-      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
-fi
-if test "${lt_cv_path_LD+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some variants of GNU ld only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-	test "$with_gnu_ld" != no && break
-	;;
-      *)
-	test "$with_gnu_ld" != yes && break
-	;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if test "${lt_cv_prog_gnu_ld+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-$as_echo "$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-
-
-
-
-
-      # Check if GNU C++ uses GNU ld as the underlying linker, since the
-      # archiving commands below assume that GNU ld is being used.
-      if test "$with_gnu_ld" = yes; then
-        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
-        hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-        export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-
-        # If archive_cmds runs LD, not CC, wlarc should be empty
-        # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
-        #     investigate it a little bit more. (MM)
-        wlarc='${wl}'
-
-        # ancient GNU ld didn't support --whole-archive et. al.
-        if eval "`$CC -print-prog-name=ld` --help 2>&1" |
-	  $GREP 'no-whole-archive' > /dev/null; then
-          whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-        else
-          whole_archive_flag_spec_CXX=
-        fi
-      else
-        with_gnu_ld=no
-        wlarc=
-
-        # A generic and very simple default shared library creation
-        # command for GNU C++ for the case where it uses the native
-        # linker, instead of GNU ld.  If possible, this setting should
-        # overridden to take advantage of the native linker features on
-        # the platform it is being used on.
-        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-      fi
-
-      # Commands to make compiler produce verbose output that lists
-      # what "hidden" libraries, object files and flags are used when
-      # linking a shared library.
-      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
-
-    else
-      GXX=no
-      with_gnu_ld=no
-      wlarc=
-    fi
-
-    # PORTME: fill in a description of your system's C++ link characteristics
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-    ld_shlibs_CXX=yes
-    case $host_os in
-      aix3*)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-        ;;
-      aix[4-9]*)
-        if test "$host_cpu" = ia64; then
-          # On IA64, the linker does run time linking by default, so we don't
-          # have to do anything special.
-          aix_use_runtimelinking=no
-          exp_sym_flag='-Bexport'
-          no_entry_flag=""
-        else
-          aix_use_runtimelinking=no
-
-          # Test if we are trying to use run time linking or normal
-          # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-          # need to do runtime linking.
-          case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
-	    for ld_flag in $LDFLAGS; do
-	      case $ld_flag in
-	      *-brtl*)
-	        aix_use_runtimelinking=yes
-	        break
-	        ;;
-	      esac
-	    done
-	    ;;
-          esac
-
-          exp_sym_flag='-bexport'
-          no_entry_flag='-bnoentry'
-        fi
-
-        # When large executables or shared objects are built, AIX ld can
-        # have problems creating the table of contents.  If linking a library
-        # or program results in "error TOC overflow" add -mminimal-toc to
-        # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-        # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-        archive_cmds_CXX=''
-        hardcode_direct_CXX=yes
-        hardcode_direct_absolute_CXX=yes
-        hardcode_libdir_separator_CXX=':'
-        link_all_deplibs_CXX=yes
-        file_list_spec_CXX='${wl}-f,'
-
-        if test "$GXX" = yes; then
-          case $host_os in aix4.[012]|aix4.[012].*)
-          # We only want to do this on AIX 4.2 and lower, the check
-          # below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" &&
-	     strings "$collect2name" | $GREP resolve_lib_name >/dev/null
-	  then
-	    # We have reworked collect2
-	    :
-	  else
-	    # We have old collect2
-	    hardcode_direct_CXX=unsupported
-	    # It fails to find uninstalled libraries when the uninstalled
-	    # path is not listed in the libpath.  Setting hardcode_minus_L
-	    # to unsupported forces relinking
-	    hardcode_minus_L_CXX=yes
-	    hardcode_libdir_flag_spec_CXX='-L$libdir'
-	    hardcode_libdir_separator_CXX=
-	  fi
-          esac
-          shared_flag='-shared'
-	  if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag="$shared_flag "'${wl}-G'
-	  fi
-        else
-          # not using gcc
-          if test "$host_cpu" = ia64; then
-	  # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	  # chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-          else
-	    if test "$aix_use_runtimelinking" = yes; then
-	      shared_flag='${wl}-G'
-	    else
-	      shared_flag='${wl}-bM:SRE'
-	    fi
-          fi
-        fi
-
-        export_dynamic_flag_spec_CXX='${wl}-bexpall'
-        # It seems that -bexpall does not export symbols beginning with
-        # underscore (_), so it is better to generate a list of symbols to
-	# export.
-        always_export_symbols_CXX=yes
-        if test "$aix_use_runtimelinking" = yes; then
-          # Warning - without using the other runtime loading flags (-brtl),
-          # -berok will link without error, but may produce a broken library.
-          allow_undefined_flag_CXX='-berok'
-          # Determine the default libpath from the value encoded in an empty
-          # executable.
-          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-	/^0/ {
-	    s/^0  *\(.*\)$/\1/
-	    p
-	}
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-          hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
-
-          archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-        else
-          if test "$host_cpu" = ia64; then
-	    hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
-	    allow_undefined_flag_CXX="-z nodefs"
-	    archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
-          else
-	    # Determine the default libpath from the value encoded in an
-	    # empty executable.
-	    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-	/^0/ {
-	    s/^0  *\(.*\)$/\1/
-	    p
-	}
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-	    hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
-	    # Warning - without using the other run time loading flags,
-	    # -berok will link without error, but may produce a broken library.
-	    no_undefined_flag_CXX=' ${wl}-bernotok'
-	    allow_undefined_flag_CXX=' ${wl}-berok'
-	    # Exported symbols can be pulled into shared objects from archives
-	    whole_archive_flag_spec_CXX='$convenience'
-	    archive_cmds_need_lc_CXX=yes
-	    # This is similar to how AIX traditionally builds its shared
-	    # libraries.
-	    archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-          fi
-        fi
-        ;;
-
-      beos*)
-	if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	  allow_undefined_flag_CXX=unsupported
-	  # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
-	  # support --undefined.  This deserves some investigation.  FIXME
-	  archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	else
-	  ld_shlibs_CXX=no
-	fi
-	;;
-
-      chorus*)
-        case $cc_basename in
-          *)
-	  # FIXME: insert proper C++ library support
-	  ld_shlibs_CXX=no
-	  ;;
-        esac
-        ;;
-
-      cygwin* | mingw* | pw32* | cegcc*)
-        # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
-        # as there is no search path for DLLs.
-        hardcode_libdir_flag_spec_CXX='-L$libdir'
-        allow_undefined_flag_CXX=unsupported
-        always_export_symbols_CXX=no
-        enable_shared_with_static_runtimes_CXX=yes
-
-        if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-          archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-          # If the export-symbols file already is a .def file (1st line
-          # is EXPORTS), use it as is; otherwise, prepend...
-          archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	    cp $export_symbols $output_objdir/$soname.def;
-          else
-	    echo EXPORTS > $output_objdir/$soname.def;
-	    cat $export_symbols >> $output_objdir/$soname.def;
-          fi~
-          $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-        else
-          ld_shlibs_CXX=no
-        fi
-        ;;
-      darwin* | rhapsody*)
-        
-  
-  archive_cmds_need_lc_CXX=no
-  hardcode_direct_CXX=no
-  hardcode_automatic_CXX=yes
-  hardcode_shlibpath_var_CXX=unsupported
-  whole_archive_flag_spec_CXX=''
-  link_all_deplibs_CXX=yes
-  allow_undefined_flag_CXX="$_lt_dar_allow_undefined"
-  case $cc_basename in
-     ifort*) _lt_dar_can_shared=yes ;;
-     *) _lt_dar_can_shared=$GCC ;;
-  esac
-  if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=echo
-    archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
-    module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
-    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
-    module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
-       if test "$lt_cv_apple_cc_single_mod" != "yes"; then
-      archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
-      archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
-    fi
-
-  else
-  ld_shlibs_CXX=no
-  fi
-
-	;;
-
-      dgux*)
-        case $cc_basename in
-          ec++*)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          ghcx*)
-	    # Green Hills C++ Compiler
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-        esac
-        ;;
-
-      freebsd[12]*)
-        # C++ shared libraries reported to be fairly broken before
-	# switch to ELF
-        ld_shlibs_CXX=no
-        ;;
-
-      freebsd-elf*)
-        archive_cmds_need_lc_CXX=no
-        ;;
-
-      freebsd* | dragonfly*)
-        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
-        # conventions
-        ld_shlibs_CXX=yes
-        ;;
-
-      gnu*)
-        ;;
-
-      hpux9*)
-        hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
-        hardcode_libdir_separator_CXX=:
-        export_dynamic_flag_spec_CXX='${wl}-E'
-        hardcode_direct_CXX=yes
-        hardcode_minus_L_CXX=yes # Not in the search PATH,
-				             # but as the default
-				             # location of the library.
-
-        case $cc_basename in
-          CC*)
-            # FIXME: insert proper C++ library support
-            ld_shlibs_CXX=no
-            ;;
-          aCC*)
-            archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-            # Commands to make compiler produce verbose output that lists
-            # what "hidden" libraries, object files and flags are used when
-            # linking a shared library.
-            #
-            # There doesn't appear to be a way to prevent this compiler from
-            # explicitly linking system object files so we need to strip them
-            # from the output so that they don't get included in the library
-            # dependencies.
-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
-            ;;
-          *)
-            if test "$GXX" = yes; then
-              archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-            else
-              # FIXME: insert proper C++ library support
-              ld_shlibs_CXX=no
-            fi
-            ;;
-        esac
-        ;;
-
-      hpux10*|hpux11*)
-        if test $with_gnu_ld = no; then
-	  hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
-	  hardcode_libdir_separator_CXX=:
-
-          case $host_cpu in
-            hppa*64*|ia64*)
-              ;;
-            *)
-	      export_dynamic_flag_spec_CXX='${wl}-E'
-              ;;
-          esac
-        fi
-        case $host_cpu in
-          hppa*64*|ia64*)
-            hardcode_direct_CXX=no
-            hardcode_shlibpath_var_CXX=no
-            ;;
-          *)
-            hardcode_direct_CXX=yes
-            hardcode_direct_absolute_CXX=yes
-            hardcode_minus_L_CXX=yes # Not in the search PATH,
-					         # but as the default
-					         # location of the library.
-            ;;
-        esac
-
-        case $cc_basename in
-          CC*)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          aCC*)
-	    case $host_cpu in
-	      hppa*64*)
-	        archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	      ia64*)
-	        archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	      *)
-	        archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	    esac
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
-	    ;;
-          *)
-	    if test "$GXX" = yes; then
-	      if test $with_gnu_ld = no; then
-	        case $host_cpu in
-	          hppa*64*)
-	            archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	          ia64*)
-	            archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	          *)
-	            archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	        esac
-	      fi
-	    else
-	      # FIXME: insert proper C++ library support
-	      ld_shlibs_CXX=no
-	    fi
-	    ;;
-        esac
-        ;;
-
-      interix[3-9]*)
-	hardcode_direct_CXX=no
-	hardcode_shlibpath_var_CXX=no
-	hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	export_dynamic_flag_spec_CXX='${wl}-E'
-	# Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-	# Instead, shared libraries are loaded at an image base (0x10000000 by
-	# default) and relocated if they conflict, which is a slow very memory
-	# consuming and fragmenting process.  To avoid this, we pick a random,
-	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-	archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-	archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-	;;
-      irix5* | irix6*)
-        case $cc_basename in
-          CC*)
-	    # SGI C++
-	    archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
-	    # necessary to make sure instantiated templates are included
-	    # in the archive.
-	    old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
-	    ;;
-          *)
-	    if test "$GXX" = yes; then
-	      if test "$with_gnu_ld" = no; then
-	        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	      else
-	        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib'
-	      fi
-	    fi
-	    link_all_deplibs_CXX=yes
-	    ;;
-        esac
-        hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-        hardcode_libdir_separator_CXX=:
-        inherit_rpath_CXX=yes
-        ;;
-
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
-        case $cc_basename in
-          KCC*)
-	    # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	    # KCC will only create a shared library if the output file
-	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
-	    # to its proper name (with version) after linking.
-	    archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-	    archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
-
-	    hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -Bstatic", where "CC" is the KAI C++ compiler.
-	    old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
-	    ;;
-	  icpc* | ecpc* )
-	    # Intel C++
-	    with_gnu_ld=yes
-	    # version 8.0 and above of icpc choke on multiply defined symbols
-	    # if we add $predep_objects and $postdep_objects, however 7.1 and
-	    # earlier do not add the objects themselves.
-	    case `$CC -V 2>&1` in
-	      *"Version 7."*)
-	        archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-		archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-		;;
-	      *)  # Version 8.0 or newer
-	        tmp_idyn=
-	        case $host_cpu in
-		  ia64*) tmp_idyn=' -i_dynamic';;
-		esac
-	        archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-		archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-		;;
-	    esac
-	    archive_cmds_need_lc_CXX=no
-	    hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-	    whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	    ;;
-          pgCC* | pgcpp*)
-            # Portland Group C++ compiler
-	    case `$CC -V` in
-	    *pgCC\ [1-5]* | *pgcpp\ [1-5]*)
-	      prelink_cmds_CXX='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
-		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
-	      old_archive_cmds_CXX='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
-		$RANLIB $oldlib'
-	      archive_cmds_CXX='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-	      archive_expsym_cmds_CXX='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
-	      ;;
-	    *) # Version 6 will use weak symbols
-	      archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-	      archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
-	      ;;
-	    esac
-
-	    hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
-	    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-	    whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
-            ;;
-	  cxx*)
-	    # Compaq C++
-	    archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
-	    runpath_var=LD_RUN_PATH
-	    hardcode_libdir_flag_spec_CXX='-rpath $libdir'
-	    hardcode_libdir_separator_CXX=:
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
-	    ;;
-	  xl*)
-	    # IBM XL 8.0 on PPC, with GNU ld
-	    hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-	    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-	    archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    if test "x$supports_anon_versioning" = xyes; then
-	      archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~
-		cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-		echo "local: *; };" >> $output_objdir/$libname.ver~
-		$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-	    fi
-	    ;;
-	  *)
-	    case `$CC -V 2>&1 | sed 5q` in
-	    *Sun\ C*)
-	      # Sun C++ 5.9
-	      no_undefined_flag_CXX=' -zdefs'
-	      archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	      archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
-	      hardcode_libdir_flag_spec_CXX='-R$libdir'
-	      whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
-	      compiler_needs_object_CXX=yes
-
-	      # Not sure whether something based on
-	      # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
-	      # would be better.
-	      output_verbose_link_cmd='echo'
-
-	      # Archives containing C++ object files must be created using
-	      # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	      # necessary to make sure instantiated templates are included
-	      # in the archive.
-	      old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
-	      ;;
-	    esac
-	    ;;
-	esac
-	;;
-
-      lynxos*)
-        # FIXME: insert proper C++ library support
-	ld_shlibs_CXX=no
-	;;
-
-      m88k*)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-	;;
-
-      mvs*)
-        case $cc_basename in
-          cxx*)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-	  *)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-	esac
-	;;
-
-      netbsd*)
-        if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	  archive_cmds_CXX='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
-	  wlarc=
-	  hardcode_libdir_flag_spec_CXX='-R$libdir'
-	  hardcode_direct_CXX=yes
-	  hardcode_shlibpath_var_CXX=no
-	fi
-	# Workaround some broken pre-1.5 toolchains
-	output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
-	;;
-
-      *nto* | *qnx*)
-        ld_shlibs_CXX=yes
-	;;
-
-      openbsd2*)
-        # C++ shared libraries are fairly broken
-	ld_shlibs_CXX=no
-	;;
-
-      openbsd*)
-	if test -f /usr/libexec/ld.so; then
-	  hardcode_direct_CXX=yes
-	  hardcode_shlibpath_var_CXX=no
-	  hardcode_direct_absolute_CXX=yes
-	  archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-	  hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	    archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
-	    export_dynamic_flag_spec_CXX='${wl}-E'
-	    whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-	  fi
-	  output_verbose_link_cmd=echo
-	else
-	  ld_shlibs_CXX=no
-	fi
-	;;
-
-      osf3* | osf4* | osf5*)
-        case $cc_basename in
-          KCC*)
-	    # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	    # KCC will only create a shared library if the output file
-	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
-	    # to its proper name (with version) after linking.
-	    archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-	    hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	    hardcode_libdir_separator_CXX=:
-
-	    # Archives containing C++ object files must be created using
-	    # the KAI C++ compiler.
-	    case $host in
-	      osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;;
-	      *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;;
-	    esac
-	    ;;
-          RCC*)
-	    # Rational C++ 2.4.1
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          cxx*)
-	    case $host in
-	      osf3*)
-	        allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
-	        archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-	        hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-		;;
-	      *)
-	        allow_undefined_flag_CXX=' -expect_unresolved \*'
-	        archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-	        archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
-	          echo "-hidden">> $lib.exp~
-	          $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~
-	          $RM $lib.exp'
-	        hardcode_libdir_flag_spec_CXX='-rpath $libdir'
-		;;
-	    esac
-
-	    hardcode_libdir_separator_CXX=:
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
-	    ;;
-	  *)
-	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	      allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
-	      case $host in
-	        osf3*)
-	          archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-		  ;;
-	        *)
-	          archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-		  ;;
-	      esac
-
-	      hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-	      hardcode_libdir_separator_CXX=:
-
-	      # Commands to make compiler produce verbose output that lists
-	      # what "hidden" libraries, object files and flags are used when
-	      # linking a shared library.
-	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
-
-	    else
-	      # FIXME: insert proper C++ library support
-	      ld_shlibs_CXX=no
-	    fi
-	    ;;
-        esac
-        ;;
-
-      psos*)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-        ;;
-
-      sunos4*)
-        case $cc_basename in
-          CC*)
-	    # Sun C++ 4.x
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          lcc*)
-	    # Lucid
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-        esac
-        ;;
-
-      solaris*)
-        case $cc_basename in
-          CC*)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-            archive_cmds_need_lc_CXX=yes
-	    no_undefined_flag_CXX=' -zdefs'
-	    archive_cmds_CXX='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	    archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	      $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	    hardcode_libdir_flag_spec_CXX='-R$libdir'
-	    hardcode_shlibpath_var_CXX=no
-	    case $host_os in
-	      solaris2.[0-5] | solaris2.[0-5].*) ;;
-	      *)
-		# The compiler driver will combine and reorder linker options,
-		# but understands `-z linker_flag'.
-	        # Supported since Solaris 2.6 (maybe 2.5.1?)
-		whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract'
-	        ;;
-	    esac
-	    link_all_deplibs_CXX=yes
-
-	    output_verbose_link_cmd='echo'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	    # necessary to make sure instantiated templates are included
-	    # in the archive.
-	    old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
-	    ;;
-          gcx*)
-	    # Green Hills C++ Compiler
-	    archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
-	    # The C++ compiler must be used to create the archive.
-	    old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
-	    ;;
-          *)
-	    # GNU C++ compiler with Solaris linker
-	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	      no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
-	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-	        archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	        archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-		  $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	        # Commands to make compiler produce verbose output that lists
-	        # what "hidden" libraries, object files and flags are used when
-	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
-	      else
-	        # g++ 2.7 appears to require `-G' NOT `-shared' on this
-	        # platform.
-	        archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	        archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-		  $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	        # Commands to make compiler produce verbose output that lists
-	        # what "hidden" libraries, object files and flags are used when
-	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
-	      fi
-
-	      hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
-	      case $host_os in
-		solaris2.[0-5] | solaris2.[0-5].*) ;;
-		*)
-		  whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-		  ;;
-	      esac
-	    fi
-	    ;;
-        esac
-        ;;
-
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
-      no_undefined_flag_CXX='${wl}-z,text'
-      archive_cmds_need_lc_CXX=no
-      hardcode_shlibpath_var_CXX=no
-      runpath_var='LD_RUN_PATH'
-
-      case $cc_basename in
-        CC*)
-	  archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-      esac
-      ;;
-
-      sysv5* | sco3.2v5* | sco5v6*)
-	# Note: We can NOT use -z defs as we might desire, because we do not
-	# link with -lc, and that would cause any symbols used from libc to
-	# always be unresolved, which means just about no library would
-	# ever link correctly.  If we're not using GNU ld we use -z text
-	# though, which does catch some bad symbols but isn't as heavy-handed
-	# as -z defs.
-	no_undefined_flag_CXX='${wl}-z,text'
-	allow_undefined_flag_CXX='${wl}-z,nodefs'
-	archive_cmds_need_lc_CXX=no
-	hardcode_shlibpath_var_CXX=no
-	hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir'
-	hardcode_libdir_separator_CXX=':'
-	link_all_deplibs_CXX=yes
-	export_dynamic_flag_spec_CXX='${wl}-Bexport'
-	runpath_var='LD_RUN_PATH'
-
-	case $cc_basename in
-          CC*)
-	    archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    ;;
-	  *)
-	    archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    ;;
-	esac
-      ;;
-
-      tandem*)
-        case $cc_basename in
-          NCC*)
-	    # NonStop-UX NCC 3.20
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-        esac
-        ;;
-
-      vxworks*)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-        ;;
-
-      *)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-        ;;
-    esac
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
-$as_echo "$ld_shlibs_CXX" >&6; }
-    test "$ld_shlibs_CXX" = no && can_build_shared=no
-
-    GCC_CXX="$GXX"
-    LD_CXX="$LD"
-
-    ## CAVEAT EMPTOR:
-    ## There is no encapsulation within the following macros, do not change
-    ## the running order or otherwise move them around unless you know exactly
-    ## what you are doing...
-    # Dependencies to place before and after the object being linked:
-predep_objects_CXX=
-postdep_objects_CXX=
-predeps_CXX=
-postdeps_CXX=
-compiler_lib_search_path_CXX=
-
-cat > conftest.$ac_ext <<_LT_EOF
-class Foo
-{
-public:
-  Foo (void) { a = 0; }
-private:
-  int a;
-};
-_LT_EOF
-
-if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  # Parse the compiler output and extract the necessary
-  # objects, libraries and library flags.
-
-  # Sentinel used to keep track of whether or not we are before
-  # the conftest object file.
-  pre_test_object_deps_done=no
-
-  for p in `eval "$output_verbose_link_cmd"`; do
-    case $p in
-
-    -L* | -R* | -l*)
-       # Some compilers place space between "-{L,R}" and the path.
-       # Remove the space.
-       if test $p = "-L" ||
-          test $p = "-R"; then
-	 prev=$p
-	 continue
-       else
-	 prev=
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-	 case $p in
-	 -L* | -R*)
-	   # Internal compiler library paths should come after those
-	   # provided the user.  The postdeps already come after the
-	   # user supplied libs so there is no need to process them.
-	   if test -z "$compiler_lib_search_path_CXX"; then
-	     compiler_lib_search_path_CXX="${prev}${p}"
-	   else
-	     compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}"
-	   fi
-	   ;;
-	 # The "-l" case would never come before the object being
-	 # linked, so don't bother handling this case.
-	 esac
-       else
-	 if test -z "$postdeps_CXX"; then
-	   postdeps_CXX="${prev}${p}"
-	 else
-	   postdeps_CXX="${postdeps_CXX} ${prev}${p}"
-	 fi
-       fi
-       ;;
-
-    *.$objext)
-       # This assumes that the test object file only shows up
-       # once in the compiler output.
-       if test "$p" = "conftest.$objext"; then
-	 pre_test_object_deps_done=yes
-	 continue
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-	 if test -z "$predep_objects_CXX"; then
-	   predep_objects_CXX="$p"
-	 else
-	   predep_objects_CXX="$predep_objects_CXX $p"
-	 fi
-       else
-	 if test -z "$postdep_objects_CXX"; then
-	   postdep_objects_CXX="$p"
-	 else
-	   postdep_objects_CXX="$postdep_objects_CXX $p"
-	 fi
-       fi
-       ;;
-
-    *) ;; # Ignore the rest.
-
-    esac
-  done
-
-  # Clean up.
-  rm -f a.out a.exe
-else
-  echo "libtool.m4: error: problem compiling CXX test program"
-fi
-
-$RM -f confest.$objext
-
-# PORTME: override above test on systems where it is broken
-case $host_os in
-interix[3-9]*)
-  # Interix 3.5 installs completely hosed .la files for C++, so rather than
-  # hack all around it, let's just trust "g++" to DTRT.
-  predep_objects_CXX=
-  postdep_objects_CXX=
-  postdeps_CXX=
-  ;;
-
-linux*)
-  case `$CC -V 2>&1 | sed 5q` in
-  *Sun\ C*)
-    # Sun C++ 5.9
-
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    if test "$solaris_use_stlport4" != yes; then
-      postdeps_CXX='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-
-solaris*)
-  case $cc_basename in
-  CC*)
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    # Adding this requires a known-good setup of shared libraries for
-    # Sun compiler versions before 5.6, else PIC objects from an old
-    # archive will be linked into the output, leading to subtle bugs.
-    if test "$solaris_use_stlport4" != yes; then
-      postdeps_CXX='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-esac
-
-
-case " $postdeps_CXX " in
-*" -lc "*) archive_cmds_need_lc_CXX=no ;;
-esac
- compiler_lib_search_dirs_CXX=
-if test -n "${compiler_lib_search_path_CXX}"; then
- compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
-fi
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    lt_prog_compiler_wl_CXX=
-lt_prog_compiler_pic_CXX=
-lt_prog_compiler_static_CXX=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-
-  # C++ specific cases for pic, static, wl, etc.
-  if test "$GXX" = yes; then
-    lt_prog_compiler_wl_CXX='-Wl,'
-    lt_prog_compiler_static_CXX='-static'
-
-    case $host_os in
-    aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	lt_prog_compiler_static_CXX='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            lt_prog_compiler_pic_CXX='-fPIC'
-        ;;
-      m68k)
-            # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
-            lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
-        ;;
-      esac
-      ;;
-
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-    mingw* | cygwin* | os2* | pw32* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      # Although the cygwin gcc ignores -fPIC, still need this for old-style
-      # (--disable-auto-import) libraries
-      lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
-      ;;
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      lt_prog_compiler_pic_CXX='-fno-common'
-      ;;
-    *djgpp*)
-      # DJGPP does not support shared libraries at all
-      lt_prog_compiler_pic_CXX=
-      ;;
-    interix[3-9]*)
-      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-      # Instead, we relocate shared libraries at runtime.
-      ;;
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	lt_prog_compiler_pic_CXX=-Kconform_pic
-      fi
-      ;;
-    hpux*)
-      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
-      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
-      # sets the default TLS model and affects inlining.
-      case $host_cpu in
-      hppa*64*)
-	;;
-      *)
-	lt_prog_compiler_pic_CXX='-fPIC'
-	;;
-      esac
-      ;;
-    *qnx* | *nto*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      lt_prog_compiler_pic_CXX='-fPIC -shared'
-      ;;
-    *)
-      lt_prog_compiler_pic_CXX='-fPIC'
-      ;;
-    esac
-  else
-    case $host_os in
-      aix[4-9]*)
-	# All AIX code is PIC.
-	if test "$host_cpu" = ia64; then
-	  # AIX 5 now supports IA64 processor
-	  lt_prog_compiler_static_CXX='-Bstatic'
-	else
-	  lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'
-	fi
-	;;
-      chorus*)
-	case $cc_basename in
-	cxch68*)
-	  # Green Hills C++ Compiler
-	  # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
-	  ;;
-	esac
-	;;
-      dgux*)
-	case $cc_basename in
-	  ec++*)
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    ;;
-	  ghcx*)
-	    # Green Hills C++ Compiler
-	    lt_prog_compiler_pic_CXX='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      freebsd* | dragonfly*)
-	# FreeBSD uses GNU C++
-	;;
-      hpux9* | hpux10* | hpux11*)
-	case $cc_basename in
-	  CC*)
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
-	    if test "$host_cpu" != ia64; then
-	      lt_prog_compiler_pic_CXX='+Z'
-	    fi
-	    ;;
-	  aCC*)
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
-	    case $host_cpu in
-	    hppa*64*|ia64*)
-	      # +Z the default
-	      ;;
-	    *)
-	      lt_prog_compiler_pic_CXX='+Z'
-	      ;;
-	    esac
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      interix*)
-	# This is c89, which is MS Visual C++ (no shared libs)
-	# Anyone wants to do a port?
-	;;
-      irix5* | irix6* | nonstopux*)
-	case $cc_basename in
-	  CC*)
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_static_CXX='-non_shared'
-	    # CC pic flag -KPIC is the default.
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
-	case $cc_basename in
-	  KCC*)
-	    # KAI C++ Compiler
-	    lt_prog_compiler_wl_CXX='--backend -Wl,'
-	    lt_prog_compiler_pic_CXX='-fPIC'
-	    ;;
-	  ecpc* )
-	    # old Intel C++ for x86_64 which still supported -KPIC.
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    lt_prog_compiler_static_CXX='-static'
-	    ;;
-	  icpc* )
-	    # Intel C++, used to be incompatible with GCC.
-	    # ICC 10 doesn't accept -KPIC any more.
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-fPIC'
-	    lt_prog_compiler_static_CXX='-static'
-	    ;;
-	  pgCC* | pgcpp*)
-	    # Portland Group C++ compiler
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-fpic'
-	    lt_prog_compiler_static_CXX='-Bstatic'
-	    ;;
-	  cxx*)
-	    # Compaq C++
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    lt_prog_compiler_pic_CXX=
-	    lt_prog_compiler_static_CXX='-non_shared'
-	    ;;
-	  xlc* | xlC*)
-	    # IBM XL 8.0 on PPC
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-qpic'
-	    lt_prog_compiler_static_CXX='-qstaticlink'
-	    ;;
-	  *)
-	    case `$CC -V 2>&1 | sed 5q` in
-	    *Sun\ C*)
-	      # Sun C++ 5.9
-	      lt_prog_compiler_pic_CXX='-KPIC'
-	      lt_prog_compiler_static_CXX='-Bstatic'
-	      lt_prog_compiler_wl_CXX='-Qoption ld '
-	      ;;
-	    esac
-	    ;;
-	esac
-	;;
-      lynxos*)
-	;;
-      m88k*)
-	;;
-      mvs*)
-	case $cc_basename in
-	  cxx*)
-	    lt_prog_compiler_pic_CXX='-W c,exportall'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      netbsd* | netbsdelf*-gnu)
-	;;
-      *qnx* | *nto*)
-        # QNX uses GNU C++, but need to define -shared option too, otherwise
-        # it will coredump.
-        lt_prog_compiler_pic_CXX='-fPIC -shared'
-        ;;
-      osf3* | osf4* | osf5*)
-	case $cc_basename in
-	  KCC*)
-	    lt_prog_compiler_wl_CXX='--backend -Wl,'
-	    ;;
-	  RCC*)
-	    # Rational C++ 2.4.1
-	    lt_prog_compiler_pic_CXX='-pic'
-	    ;;
-	  cxx*)
-	    # Digital/Compaq C++
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    lt_prog_compiler_pic_CXX=
-	    lt_prog_compiler_static_CXX='-non_shared'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      psos*)
-	;;
-      solaris*)
-	case $cc_basename in
-	  CC*)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    lt_prog_compiler_static_CXX='-Bstatic'
-	    lt_prog_compiler_wl_CXX='-Qoption ld '
-	    ;;
-	  gcx*)
-	    # Green Hills C++ Compiler
-	    lt_prog_compiler_pic_CXX='-PIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sunos4*)
-	case $cc_basename in
-	  CC*)
-	    # Sun C++ 4.x
-	    lt_prog_compiler_pic_CXX='-pic'
-	    lt_prog_compiler_static_CXX='-Bstatic'
-	    ;;
-	  lcc*)
-	    # Lucid
-	    lt_prog_compiler_pic_CXX='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-	case $cc_basename in
-	  CC*)
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    lt_prog_compiler_static_CXX='-Bstatic'
-	    ;;
-	esac
-	;;
-      tandem*)
-	case $cc_basename in
-	  NCC*)
-	    # NonStop-UX NCC 3.20
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      vxworks*)
-	;;
-      *)
-	lt_prog_compiler_can_build_shared_CXX=no
-	;;
-    esac
-  fi
-
-case $host_os in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    lt_prog_compiler_pic_CXX=
-    ;;
-  *)
-    lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX@&t@ -DPIC"
-    ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5
-$as_echo "$lt_prog_compiler_pic_CXX" >&6; }
-
-
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic_CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
-$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; }
-if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_pic_works_CXX=no
-   ac_outfile=conftest.$ac_objext
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic_CXX@&t@ -DPIC"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:__oline__: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_pic_works_CXX=yes
-     fi
-   fi
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; }
-
-if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then
-    case $lt_prog_compiler_pic_CXX in
-     "" | " "*) ;;
-     *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
-     esac
-else
-    lt_prog_compiler_pic_CXX=
-     lt_prog_compiler_can_build_shared_CXX=no
-fi
-
-fi
-
-
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_static_works_CXX=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
-   echo "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The linker can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&5
-       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
-       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_cv_prog_compiler_static_works_CXX=yes
-       fi
-     else
-       lt_cv_prog_compiler_static_works_CXX=yes
-     fi
-   fi
-   $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; }
-
-if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then
-    :
-else
-    lt_prog_compiler_static_CXX=
-fi
-
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_c_o_CXX=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:__oline__: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_c_o_CXX=yes
-     fi
-   fi
-   chmod u+w . 2>&5
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_c_o_CXX=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:__oline__: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_c_o_CXX=yes
-     fi
-   fi
-   chmod u+w . 2>&5
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
-
-
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-$as_echo_n "checking if we can lock with hard links... " >&6; }
-  hard_links=yes
-  $RM conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-$as_echo "$hard_links" >&6; }
-  if test "$hard_links" = no; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-
-  export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  case $host_os in
-  aix[4-9]*)
-    # If we're using GNU nm, then we don't want the "-C" option.
-    # -C means demangle to AIX nm, but means don't demangle with GNU nm
-    if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-      export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-    else
-      export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-    fi
-    ;;
-  pw32*)
-    export_symbols_cmds_CXX="$ltdll_cmds"
-  ;;
-  cygwin* | mingw* | cegcc*)
-    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  linux* | k*bsd*-gnu)
-    link_all_deplibs_CXX=no
-  ;;
-  *)
-    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  esac
-  exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
-$as_echo "$ld_shlibs_CXX" >&6; }
-test "$ld_shlibs_CXX" = no && can_build_shared=no
-
-with_gnu_ld_CXX=$with_gnu_ld
-
-
-
-
-
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc_CXX" in
-x|xyes)
-  # Assume -lc should be added
-  archive_cmds_need_lc_CXX=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $archive_cmds_CXX in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-      $RM conftest*
-      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$lt_prog_compiler_wl_CXX
-	pic_flag=$lt_prog_compiler_pic_CXX
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
-        allow_undefined_flag_CXX=
-        if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
-  (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-        then
-	  archive_cmds_need_lc_CXX=no
-        else
-	  archive_cmds_need_lc_CXX=yes
-        fi
-        allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $RM conftest*
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_CXX" >&5
-$as_echo "$archive_cmds_need_lc_CXX" >&6; }
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-$as_echo_n "checking dynamic linker characteristics... " >&6; }
-
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix[4-9]*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  case $host_cpu in
-  powerpc)
-    # Since July 2007 AmigaOS4 officially supports .so libraries.
-    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    ;;
-  m68k)
-    library_names_spec='$libname.ixlibrary $libname.a'
-    # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-    ;;
-  esac
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[45]*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname~
-      chmod a+x \$dldir/$dlname~
-      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
-        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
-      fi'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw* | cegcc*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-freebsd* | dragonfly*)
-  # DragonFly does not have aout.  When/if they implement a new
-  # versioning mechanism, adjust this.
-  if test -x /usr/bin/objformat; then
-    objformat=`/usr/bin/objformat`
-  else
-    case $host_os in
-    freebsd[123]*) objformat=aout ;;
-    *) objformat=elf ;;
-    esac
-  fi
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[01]* | freebsdelf3.[01]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
-  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  *) # from 4.6 on, and DragonFly
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case $host_cpu in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  hppa*64*)
-    shrext_cmds='.sl'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-interix[3-9]*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # Some binutils ld are patched to set DT_RUNPATH
-  save_LDFLAGS=$LDFLAGS
-  save_libdir=$libdir
-  eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
-       LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
-  shlibpath_overrides_runpath=yes
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-  LDFLAGS=$save_LDFLAGS
-  libdir=$save_libdir
-
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-netbsdelf*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='NetBSD ld.elf_so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-*nto* | *qnx*)
-  version_type=qnx
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='ldqnx.so'
-  ;;
-
-openbsd*)
-  version_type=sunos
-  sys_lib_dlsearch_path_spec="/usr/lib"
-  need_lib_prefix=no
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
-    *)				need_version=no  ;;
-  esac
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-	shlibpath_overrides_runpath=no
-	;;
-      *)
-	shlibpath_overrides_runpath=yes
-	;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-rdos*)
-  dynamic_linker=no
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  version_type=freebsd-elf
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  if test "$with_gnu_ld" = yes; then
-    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
-  else
-    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
-    case $host_os in
-      sco3.2v5*)
-        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
-	;;
-    esac
-  fi
-  sys_lib_dlsearch_path_spec='/usr/lib'
-  ;;
-
-tpf*)
-  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
-hardcode_action_CXX=
-if test -n "$hardcode_libdir_flag_spec_CXX" ||
-   test -n "$runpath_var_CXX" ||
-   test "X$hardcode_automatic_CXX" = "Xyes" ; then
-
-  # We can hardcode non-existent directories.
-  if test "$hardcode_direct_CXX" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no &&
-     test "$hardcode_minus_L_CXX" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action_CXX=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action_CXX=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action_CXX=unsupported
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5
-$as_echo "$hardcode_action_CXX" >&6; }
-
-if test "$hardcode_action_CXX" = relink ||
-   test "$inherit_rpath_CXX" = yes; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-
-
-
-    
-
-
-  fi # test -n "$compiler"
-
-  CC=$lt_save_CC
-  LDCXX=$LD
-  LD=$lt_save_LD
-  GCC=$lt_save_GCC
-  with_gnu_ld=$lt_save_with_gnu_ld
-  lt_cv_path_LDCXX=$lt_cv_path_LD
-  lt_cv_path_LD=$lt_save_path_LD
-  lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
-  lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-fi # test "$_lt_caught_CXX_error" != yes
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-
-
-
-
-       
-       
-
-
-
-        ac_config_commands="$ac_config_commands libtool"
-
-
-
-
-# Only expand once:
-
-
-
-@%:@ Check whether --enable-double was given.
-if test "${enable_double+set}" = set; then :
-  enableval=$enable_double; case "${enableval}" in
-  yes) double=true ;;
-  no)  double=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-double" "$LINENO" 5  ;;
-esac
-else
-  double=false
-fi
-
-
-if (test x$double = xtrue) ;then
-    
-$as_echo "@%:@define MGL_USE_DOUBLE 1" >>confdefs.h
-
-else
-    
-$as_echo "@%:@define MGL_USE_DOUBLE 0" >>confdefs.h
-
-fi
-
-@%:@ Check whether --enable-all was given.
-if test "${enable_all+set}" = set; then :
-  enableval=$enable_all; case "${enableval}" in
-  yes) all=true ;;
-  no)  all=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-all" "$LINENO" 5  ;;
-esac
-else
-  all=false
-fi
-
-
-@%:@ Check whether --enable-langall was given.
-if test "${enable_langall+set}" = set; then :
-  enableval=$enable_langall; case "${enableval}" in
-  yes) langall=true ;;
-  no)  langall=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-langall" "$LINENO" 5  ;;
-esac
-else
-  langall=false
-fi
-
-
-@%:@ Check whether --enable-pthread was given.
-if test "${enable_pthread+set}" = set; then :
-  enableval=$enable_pthread; case "${enableval}" in
-  yes) pthread=true ;;
-  no)  pthread=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-pthread" "$LINENO" 5  ;;
-esac
-else
-  pthread=true
-fi
-
-ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default"
-if test "x$ac_cv_header_pthread_h" = x""yes; then :
-  (test x$all = xtrue || test x$pthread = xtrue) && PTHREAD_FLAGS=-DHAVE_PTHREAD 
-else
-  (test x$all = xtrue || test x$pthread = xtrue) && echo "Please install posix threads headers" && exit
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lpthread" >&5
-$as_echo_n "checking for main in -lpthread... " >&6; }
-if test "${ac_cv_lib_pthread_main+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpthread  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_pthread_main=yes
-else
-  ac_cv_lib_pthread_main=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_main" >&5
-$as_echo "$ac_cv_lib_pthread_main" >&6; }
-if test "x$ac_cv_lib_pthread_main" = x""yes; then :
-  (test x$all = xtrue || test x$pthread = xtrue) && PTHREAD_LIBS=-lpthread 
-else
-  (test x$all = xtrue || test x$pthread = xtrue) && echo "Please install posix threads library" && exit
-fi
-
- if test x$pthread = xtrue; then
-  USE_PTHREAD_TRUE=
-  USE_PTHREAD_FALSE='#'
-else
-  USE_PTHREAD_TRUE='#'
-  USE_PTHREAD_FALSE=
-fi
-
-
-@%:@ Check whether --enable-gsl was given.
-if test "${enable_gsl+set}" = set; then :
-  enableval=$enable_gsl; case "${enableval}" in
-  yes) gsl=true ;;
-  no)  gsl=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-gsl" "$LINENO" 5  ;;
-esac
-else
-  gsl=true
-fi
-
-
-if (test x$all = xtrue || test x$gsl = xtrue) ;then
-    GSL_PROG=gsl-config
-    # Extract the first word of "$GSL_PROG", so it can be a program name with args.
-set dummy $GSL_PROG; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_GSL_FLAGS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$GSL_FLAGS"; then
-  ac_cv_prog_GSL_FLAGS="$GSL_FLAGS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_GSL_FLAGS="`$GSL_PROG --cflags`"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-GSL_FLAGS=$ac_cv_prog_GSL_FLAGS
-if test -n "$GSL_FLAGS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GSL_FLAGS" >&5
-$as_echo "$GSL_FLAGS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    # Extract the first word of "$GSL_PROG", so it can be a program name with args.
-set dummy $GSL_PROG; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_GSL_LIBS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$GSL_LIBS"; then
-  ac_cv_prog_GSL_LIBS="$GSL_LIBS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_GSL_LIBS="`$GSL_PROG --libs`"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-GSL_LIBS=$ac_cv_prog_GSL_LIBS
-if test -n "$GSL_LIBS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GSL_LIBS" >&5
-$as_echo "$GSL_LIBS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    if test "$GSL_LIBS" ;then
-	test_gsl=true
-    else
-	echo "Please install gsl headers and libraries and make sure that \
-	path to $GSL_PROG exist in your PATH"
-	exit
-    fi
-else
-    GSL_FLAGS=-DNO_GSL
-    
-fi
- if test x$test_gsl = xtrue; then
-  USE_GSL_TRUE=
-  USE_GSL_FALSE='#'
-else
-  USE_GSL_TRUE='#'
-  USE_GSL_FALSE=
-fi
-
-
-@%:@ Check whether --enable-glut was given.
-if test "${enable_glut+set}" = set; then :
-  enableval=$enable_glut; case "${enableval}" in
-  yes) glut=true ;;
-  no)  glut=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-glut" "$LINENO" 5  ;;
-esac
-else
-  glut=false
-fi
-
-
-case "${host}" in
-  *darwin*)
-	GL_LIBS="-framework OpenGL"
-	
-	if (test x$all = xtrue || test x$glut = xtrue) ;then
-	    GLUT_LIBS="-framework GLUT -framework OpenGL"
-	    
-	fi
-       ;;
-
-  *w32*)
-	GL_LIBS=opengl32
-	ac_fn_c_check_header_mongrel "$LINENO" "GL/gl.h" "ac_cv_header_GL_gl_h" "$ac_includes_default"
-if test "x$ac_cv_header_GL_gl_h" = x""yes; then :
-  
-else
-  echo "Please install OpenGL headers (GL/gl.h)"; exit
-fi
-
-
-	as_ac_Lib=`$as_echo "ac_cv_lib_${GL_LIBS}''_main" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -l${GL_LIBS}" >&5
-$as_echo_n "checking for main in -l${GL_LIBS}... " >&6; }
-if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-l${GL_LIBS}  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$as_ac_Lib=yes"
-else
-  eval "$as_ac_Lib=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-eval ac_res=\$$as_ac_Lib
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
-  GL_LIBS=-l${GL_LIBS} 
-else
-  echo "Please install OpenGL library (lib${GL_LIBS}.a)"; exit
-fi
-
-	GLUT_LIBS=glut32
-	ac_fn_c_check_header_mongrel "$LINENO" "GL/glut.h" "ac_cv_header_GL_glut_h" "$ac_includes_default"
-if test "x$ac_cv_header_GL_glut_h" = x""yes; then :
-  (test x$all = xtrue || test x$glut = xtrue) && GLUT_FLAGS=-DHAVE_GLUT 
-else
-  (test x$all = xtrue || test x$glut = xtrue) && (echo "Please install FreeGLUT headers (GL/glut.h)" && exit)
-fi
-
-
-	as_ac_Lib=`$as_echo "ac_cv_lib_${GLUT_LIBS}''_main" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -l${GLUT_LIBS}" >&5
-$as_echo_n "checking for main in -l${GLUT_LIBS}... " >&6; }
-if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-l${GLUT_LIBS}  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$as_ac_Lib=yes"
-else
-  eval "$as_ac_Lib=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-eval ac_res=\$$as_ac_Lib
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
-  (test x$all = xtrue || test x$glut = xtrue) && GLUT_LIBS=-l${GLUT_LIBS} 
-else
-  (test x$all = xtrue || test x$glut = xtrue) && echo "Please install FreeGLUT library (lib${GLUT_LIBS}.a)" && exit
-fi
-
-       ;;
-
-       *)
-	GL_LIBS=GL
-	ac_fn_c_check_header_mongrel "$LINENO" "GL/gl.h" "ac_cv_header_GL_gl_h" "$ac_includes_default"
-if test "x$ac_cv_header_GL_gl_h" = x""yes; then :
-  
-else
-  echo "Please install OpenGL headers (GL/gl.h)"; exit
-fi
-
-
-	as_ac_Lib=`$as_echo "ac_cv_lib_${GL_LIBS}''_main" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -l${GL_LIBS}" >&5
-$as_echo_n "checking for main in -l${GL_LIBS}... " >&6; }
-if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-l${GL_LIBS}  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$as_ac_Lib=yes"
-else
-  eval "$as_ac_Lib=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-eval ac_res=\$$as_ac_Lib
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
-  GL_LIBS=-l${GL_LIBS} 
-else
-  echo "Please install OpenGL library (lib${GL_LIBS}.a)"; exit
-fi
-
-	GLUT_LIBS=glut
-	ac_fn_c_check_header_mongrel "$LINENO" "GL/glut.h" "ac_cv_header_GL_glut_h" "$ac_includes_default"
-if test "x$ac_cv_header_GL_glut_h" = x""yes; then :
-  (test x$all = xtrue || test x$glut = xtrue) && GLUT_FLAGS=-DHAVE_GLUT 
-else
-  (test x$all = xtrue || test x$glut = xtrue) && (echo "Please install FreeGLUT headers (GL/glut.h)" && exit)
-fi
-
-
-	as_ac_Lib=`$as_echo "ac_cv_lib_${GLUT_LIBS}''_main" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -l${GLUT_LIBS}" >&5
-$as_echo_n "checking for main in -l${GLUT_LIBS}... " >&6; }
-if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-l${GLUT_LIBS}  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$as_ac_Lib=yes"
-else
-  eval "$as_ac_Lib=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-eval ac_res=\$$as_ac_Lib
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
-  (test x$all = xtrue || test x$glut = xtrue) && GLUT_LIBS=-l${GLUT_LIBS} 
-else
-  (test x$all = xtrue || test x$glut = xtrue) && echo "Please install FreeGLUT library (lib${GLUT_LIBS}.a)" && exit
-fi
-
-       ;;
-
-esac
- if (test x$all = xtrue || test x$glut = xtrue); then
-  USE_GLUT_TRUE=
-  USE_GLUT_FALSE='#'
-else
-  USE_GLUT_TRUE='#'
-  USE_GLUT_FALSE=
-fi
-
-
-case "${host}" in
-  *linux*)
-       ADDON_FLAGS=-DNO_COLOR_ARRAY
-       ;;
-
-       *)
-       ;;
-esac
-
-@%:@ Check whether --enable-hdf5 was given.
-if test "${enable_hdf5+set}" = set; then :
-  enableval=$enable_hdf5; case "${enableval}" in
-  yes) hdf5=true ;;
-  no)  hdf5=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-hdf5" "$LINENO" 5  ;;
-esac
-else
-  hdf5=false
-fi
-
-@%:@ Check whether --enable-hdf5_18 was given.
-if test "${enable_hdf5_18+set}" = set; then :
-  enableval=$enable_hdf5_18; case "${enableval}" in
-  yes) hdf5_18=true ;;
-  no)  hdf5_18=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-hdf5_18" "$LINENO" 5  ;;
-esac
-else
-  hdf5_18=false
-fi
-
-#AC_CHECK_HEADER(hdf5.h,[(test x$all = xtrue || test x$hdf5 = xtrue || test x$hdf5_18 = xtrue) && HDF5_FLAGS=-DHAVE_HDF5 AC_SUBST(HDF5_FLAGS)],
-ac_fn_c_check_header_mongrel "$LINENO" "hdf5.h" "ac_cv_header_hdf5_h" "$ac_includes_default"
-if test "x$ac_cv_header_hdf5_h" = x""yes; then :
-  (test x$all = xtrue || test x$hdf5 = xtrue || test x$hdf5_18 = xtrue) && HDF5_FLAGS=-DHAVE_HDF5 
-else
-  (test x$all = xtrue || test x$hdf5 = xtrue || test x$hdf5_18 = xtrue) && echo "Please install hdf5 headers" && exit
-fi
-
-
-if ((test x$all = xtrue || test x$hdf5 = xtrue) && test x$hdf5_18 = xfalse) ;then
-    HDF5_FLAGS="$HDF5_FLAGS -DH5_USE_16_API"
-    
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lhdf5" >&5
-$as_echo_n "checking for main in -lhdf5... " >&6; }
-if test "${ac_cv_lib_hdf5_main+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lhdf5  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_hdf5_main=yes
-else
-  ac_cv_lib_hdf5_main=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_hdf5_main" >&5
-$as_echo "$ac_cv_lib_hdf5_main" >&6; }
-if test "x$ac_cv_lib_hdf5_main" = x""yes; then :
-  (test x$all = xtrue || test x$hdf5 = xtrue || test x$hdf5_18 = xtrue) && HDF5_LIBS=-lhdf5 
-else
-  (test x$all = xtrue || test x$hdf5 = xtrue || test x$hdf5_18 = xtrue) && echo "Please install hdf5 library" && exit
-fi
-
- if (test x$all = xtrue || test x$hdf5 = xtrue || test x$hdf5_18 = xtrue); then
-  USE_HDF5_TRUE=
-  USE_HDF5_FALSE='#'
-else
-  USE_HDF5_TRUE='#'
-  USE_HDF5_FALSE=
-fi
-
-
-
-@%:@ Check whether --enable-hdf4 was given.
-if test "${enable_hdf4+set}" = set; then :
-  enableval=$enable_hdf4; case "${enableval}" in
-  yes) hdf4=true ;;
-  no)  hdf4=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-hdf4" "$LINENO" 5  ;;
-esac
-else
-  hdf4=false
-fi
-
-ac_fn_c_check_header_mongrel "$LINENO" "hdf/mfhdf.h" "ac_cv_header_hdf_mfhdf_h" "$ac_includes_default"
-if test "x$ac_cv_header_hdf_mfhdf_h" = x""yes; then :
-  (test x$all = xtrue || test x$hdf4 = xtrue) && HDF4_FLAGS=-DHAVE_HDF4 
-else
-  (test x$all = xtrue || test x$hdf4 = xtrue) && echo "Please install hdf4 headers" && exit
-fi
-
-
-    
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ldf" >&5
-$as_echo_n "checking for main in -ldf... " >&6; }
-if test "${ac_cv_lib_df_main+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldf  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_df_main=yes
-else
-  ac_cv_lib_df_main=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_df_main" >&5
-$as_echo "$ac_cv_lib_df_main" >&6; }
-if test "x$ac_cv_lib_df_main" = x""yes; then :
-  (test x$all = xtrue || test x$hdf4 = xtrue) && HDF4_LIBS="-lmfhdf -ldf" 
-else
-  (test x$all = xtrue || test x$hdf4 = xtrue) && echo "Please install hdf4 library" && exit
-fi
-
- if (test x$all = xtrue || test x$hdf4 = xtrue); then
-  USE_HDF4_TRUE=
-  USE_HDF4_FALSE='#'
-else
-  USE_HDF4_TRUE='#'
-  USE_HDF4_FALSE=
-fi
-
-
-@%:@ Check whether --enable-gif was given.
-if test "${enable_gif+set}" = set; then :
-  enableval=$enable_gif; case "${enableval}" in
-  yes) gif=true ;;
-  no)  gif=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-gif" "$LINENO" 5  ;;
-esac
-else
-  gif=false
-fi
-
-ac_fn_c_check_header_mongrel "$LINENO" "gif_lib.h" "ac_cv_header_gif_lib_h" "$ac_includes_default"
-if test "x$ac_cv_header_gif_lib_h" = x""yes; then :
-  (test x$all = xtrue || test x$gif = xtrue) && GIF_FLAGS=-DHAVE_GIF 
-else
-  (test x$all = xtrue || test x$gif = xtrue) && echo "Please install gif headers" && exit
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lgif" >&5
-$as_echo_n "checking for main in -lgif... " >&6; }
-if test "${ac_cv_lib_gif_main+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lgif  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_gif_main=yes
-else
-  ac_cv_lib_gif_main=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gif_main" >&5
-$as_echo "$ac_cv_lib_gif_main" >&6; }
-if test "x$ac_cv_lib_gif_main" = x""yes; then :
-  (test x$all = xtrue || test x$gif = xtrue) && GIF_LIBS=-lgif 
-else
-  (test x$all = xtrue || test x$gif = xtrue) && echo "Please install gif library" && exit
-fi
-
- if (test x$all = xtrue || test x$gif = xtrue); then
-  USE_GIF_TRUE=
-  USE_GIF_FALSE='#'
-else
-  USE_GIF_TRUE='#'
-  USE_GIF_FALSE=
-fi
-
-
-ac_fn_c_check_header_mongrel "$LINENO" "png.h" "ac_cv_header_png_h" "$ac_includes_default"
-if test "x$ac_cv_header_png_h" = x""yes; then :
-  
-else
-  echo "Please install png headers" && exit
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lpng" >&5
-$as_echo_n "checking for main in -lpng... " >&6; }
-if test "${ac_cv_lib_png_main+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpng  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_png_main=yes
-else
-  ac_cv_lib_png_main=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_png_main" >&5
-$as_echo "$ac_cv_lib_png_main" >&6; }
-if test "x$ac_cv_lib_png_main" = x""yes; then :
-  PNG_LIBS=-lpng 
-else
-  echo "Please install png library" && exit
-fi
-
-
-@%:@ Check whether --enable-jpeg was given.
-if test "${enable_jpeg+set}" = set; then :
-  enableval=$enable_jpeg; case "${enableval}" in
-  yes) jpeg=true ;;
-  no)  jpeg=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-jpeg" "$LINENO" 5  ;;
-esac
-else
-  jpeg=false
-fi
-
-ac_fn_c_check_header_mongrel "$LINENO" "jpeglib.h" "ac_cv_header_jpeglib_h" "$ac_includes_default"
-if test "x$ac_cv_header_jpeglib_h" = x""yes; then :
-  (test x$all = xtrue || test x$jpeg = xtrue) && JPEG_FLAGS=-DHAVE_JPEG 
-else
-  (test x$all = xtrue || test x$jpeg = xtrue) && echo "Please install jpeg headers" && exit
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ljpeg" >&5
-$as_echo_n "checking for main in -ljpeg... " >&6; }
-if test "${ac_cv_lib_jpeg_main+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ljpeg  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_jpeg_main=yes
-else
-  ac_cv_lib_jpeg_main=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_main" >&5
-$as_echo "$ac_cv_lib_jpeg_main" >&6; }
-if test "x$ac_cv_lib_jpeg_main" = x""yes; then :
-  (test x$all = xtrue || test x$jpeg = xtrue) && JPEG_LIBS=-ljpeg 
-else
-  (test x$all = xtrue || test x$jpeg = xtrue) && echo "Please install jpeg library" && exit
-fi
-
- if (test x$all = xtrue || test x$jpeg = xtrue); then
-  USE_JPEG_TRUE=
-  USE_JPEG_FALSE='#'
-else
-  USE_JPEG_TRUE='#'
-  USE_JPEG_FALSE=
-fi
-
-
-@%:@ Check whether --enable-fltk was given.
-if test "${enable_fltk+set}" = set; then :
-  enableval=$enable_fltk; case "${enableval}" in
-  yes) fltk=true ;;
-  no)  fltk=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-fltk" "$LINENO" 5  ;;
-esac
-else
-  fltk=false
-fi
-
-if (test x$all = xtrue || test x$fltk = xtrue) ;then
-    FLTK_PROG=fltk-config
-    # Extract the first word of "$FLTK_PROG", so it can be a program name with args.
-set dummy $FLTK_PROG; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_FLTK_FLAGS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$FLTK_FLAGS"; then
-  ac_cv_prog_FLTK_FLAGS="$FLTK_FLAGS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_FLTK_FLAGS="`$FLTK_PROG --cxxflags`"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-FLTK_FLAGS=$ac_cv_prog_FLTK_FLAGS
-if test -n "$FLTK_FLAGS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FLTK_FLAGS" >&5
-$as_echo "$FLTK_FLAGS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    # Extract the first word of "$FLTK_PROG", so it can be a program name with args.
-set dummy $FLTK_PROG; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_FLTK_LIBS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$FLTK_LIBS"; then
-  ac_cv_prog_FLTK_LIBS="$FLTK_LIBS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_FLTK_LIBS="`$FLTK_PROG --ldflags`"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-FLTK_LIBS=$ac_cv_prog_FLTK_LIBS
-if test -n "$FLTK_LIBS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FLTK_LIBS" >&5
-$as_echo "$FLTK_LIBS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    if test "$FLTK_FLAGS" && test "$FLTK_LIBS" ;then
-	test_fltk=true
-    else
-	echo "Please install FLTK headers and libraries and make sure that \
-	            path to $FLTK_PROG exist in your PATH"
-	exit
-    fi 
-fi
- if test x$test_fltk = xtrue; then
-  USE_FLTK_TRUE=
-  USE_FLTK_FALSE='#'
-else
-  USE_FLTK_TRUE='#'
-  USE_FLTK_FALSE=
-fi
-
-
-@%:@ Check whether --enable-wx was given.
-if test "${enable_wx+set}" = set; then :
-  enableval=$enable_wx; case "${enableval}" in
-  yes) wx=true ;;
-  no)  wx=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-wx" "$LINENO" 5  ;;
-esac
-else
-  wx=false
-fi
-
-if (test x$all = xtrue || test x$wx = xtrue) ;then
-#if (test x$wx = xtrue) ;then
-    WX_PROG=wx-config
-    # Extract the first word of "$WX_PROG", so it can be a program name with args.
-set dummy $WX_PROG; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_WX_FLAGS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$WX_FLAGS"; then
-  ac_cv_prog_WX_FLAGS="$WX_FLAGS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_WX_FLAGS="`$WX_PROG --cflags`"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-WX_FLAGS=$ac_cv_prog_WX_FLAGS
-if test -n "$WX_FLAGS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WX_FLAGS" >&5
-$as_echo "$WX_FLAGS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    # Extract the first word of "$WX_PROG", so it can be a program name with args.
-set dummy $WX_PROG; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_WX_LIBS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$WX_LIBS"; then
-  ac_cv_prog_WX_LIBS="$WX_LIBS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_WX_LIBS="`$WX_PROG --libs`"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-WX_LIBS=$ac_cv_prog_WX_LIBS
-if test -n "$WX_LIBS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WX_LIBS" >&5
-$as_echo "$WX_LIBS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    if test "$WX_FLAGS" && test "$WX_LIBS" ;then
-	test_wx=true
-    else
-	echo "Please install wxwidget headers and libraries and make sure that \
-	            path to $WX_PROG exist in your PATH"
-	exit
-    fi 
-fi
- if test x$test_wx = xtrue; then
-  USE_WX_TRUE=
-  USE_WX_FALSE='#'
-else
-  USE_WX_TRUE='#'
-  USE_WX_FALSE=
-fi
-
-
-@%:@ Check whether --enable-qt was given.
-if test "${enable_qt+set}" = set; then :
-  enableval=$enable_qt; case "${enableval}" in
-  yes) qt=true ;;
-  no)  qt=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-qt" "$LINENO" 5  ;;
-esac
-else
-  qt=false
-fi
-
-if (test x$all = xtrue || test x$qt = xtrue) ;then
-     
-  
-  
-
-  test x"$TROLL" != x && echo 'ViM rox emacs.'
-
-  
-@%:@ Check whether --with-qt was given.
-if test "${with_qt+set}" = set; then :
-  withval=$with_qt; QT_PATH=$withval
-else
-  QT_PATH=
-fi
-
-
-  # Find Qt.
-  if test -d /usr/local/Trolltech; then
-    # Try to find the latest version.
-    tmp_qt_paths=`echo /usr/local/Trolltech/*/bin | tr ' ' '\n' | sort -nr \
-                                              | xargs | sed 's/  */:/g'`
-  fi
-
-  # Find qmake.
-  for ac_prog in qmake-qt4${EXEEXT}
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_QMAKE+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $QMAKE in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_QMAKE="$QMAKE" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$QT_DIR:$QT_PATH:$PATH:$tmp_qt_paths"
-for as_dir in $as_dummy
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_QMAKE="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-QMAKE=$ac_cv_path_QMAKE
-if test -n "$QMAKE"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $QMAKE" >&5
-$as_echo "$QMAKE" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$QMAKE" && break
-done
-test -n "$QMAKE" || QMAKE="missing"
-
-  if test x"$QMAKE" = xmissing; then
-    for ac_prog in qmake${EXEEXT}
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_QMAKE+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $QMAKE in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_QMAKE="$QMAKE" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$QT_DIR:$QT_PATH:$PATH:$tmp_qt_paths"
-for as_dir in $as_dummy
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_QMAKE="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-QMAKE=$ac_cv_path_QMAKE
-if test -n "$QMAKE"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $QMAKE" >&5
-$as_echo "$QMAKE" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$QMAKE" && break
-done
-test -n "$QMAKE" || QMAKE="missing"
-
-    if test x"$QMAKE" = xmissing; then
-      as_fn_error $? "Cannot find qmake in your PATH. Try using --with-qt." "$LINENO" 5 
-    fi
-  fi
-
-  # Find moc (Meta Object Compiler).
-  for ac_prog in moc-qt4${EXEEXT}
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MOC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $MOC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_MOC="$MOC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$QT_PATH:$PATH:$tmp_qt_paths"
-for as_dir in $as_dummy
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_MOC="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-MOC=$ac_cv_path_MOC
-if test -n "$MOC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MOC" >&5
-$as_echo "$MOC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$MOC" && break
-done
-test -n "$MOC" || MOC="missing"
-
-  if test x"$MOC" = xmissing; then
-    for ac_prog in moc${EXEEXT}
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MOC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $MOC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_MOC="$MOC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$QT_PATH:$PATH:$tmp_qt_paths"
-for as_dir in $as_dummy
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_MOC="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-MOC=$ac_cv_path_MOC
-if test -n "$MOC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MOC" >&5
-$as_echo "$MOC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$MOC" && break
-done
-test -n "$MOC" || MOC="missing"
-
-    if test x"$MOC" = xmissing; then
-      as_fn_error $? "Cannot find moc (Meta Object Compiler) in your PATH. Try using --with-qt." "$LINENO" 5 
-    fi
-  fi
-
-  # Find uic (User Interface Compiler).
-  for ac_prog in uic-qt4${EXEEXT}
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_UIC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $UIC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_UIC="$UIC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$QT_PATH:$PATH:$tmp_qt_paths"
-for as_dir in $as_dummy
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_UIC="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-UIC=$ac_cv_path_UIC
-if test -n "$UIC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $UIC" >&5
-$as_echo "$UIC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$UIC" && break
-done
-test -n "$UIC" || UIC="missing"
-
-  if test x"$UIC" = xmissing; then
-    for ac_prog in uic${EXEEXT}
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_UIC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $UIC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_UIC="$UIC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$QT_PATH:$PATH:$tmp_qt_paths"
-for as_dir in $as_dummy
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_UIC="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-UIC=$ac_cv_path_UIC
-if test -n "$UIC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $UIC" >&5
-$as_echo "$UIC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$UIC" && break
-done
-test -n "$UIC" || UIC="missing"
-
-    if test x"$UIC" = xmissing; then
-      as_fn_error $? "Cannot find uic (User Interface Compiler) in your PATH. Try using --with-qt." "$LINENO" 5 
-    fi
-  fi
-
-  # Find rcc (Qt Resource Compiler).
-  for ac_prog in rcc-qt4${EXEEXT}
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_RCC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $RCC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_RCC="$RCC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$QT_PATH:$PATH:$tmp_qt_paths"
-for as_dir in $as_dummy
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_RCC="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-RCC=$ac_cv_path_RCC
-if test -n "$RCC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RCC" >&5
-$as_echo "$RCC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$RCC" && break
-done
-test -n "$RCC" || RCC="false"
-
-  if test x"$RCC" = xfalse; then
-    for ac_prog in rcc${EXEEXT}
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_RCC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $RCC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_RCC="$RCC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$QT_PATH:$PATH:$tmp_qt_paths"
-for as_dir in $as_dummy
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_RCC="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-RCC=$ac_cv_path_RCC
-if test -n "$RCC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RCC" >&5
-$as_echo "$RCC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$RCC" && break
-done
-test -n "$RCC" || RCC="false"
-
-    if test x"$RCC" = xfalse; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find rcc (Qt Resource Compiler) in your PATH. Try using --with-qt." >&5
-$as_echo "$as_me: WARNING: Cannot find rcc (Qt Resource Compiler) in your PATH. Try using --with-qt." >&2;}
-    fi
-  fi
-
-  # If we don't know the path to Qt, guess it from the path to qmake.
-  if test x"$QT_PATH" = x; then
-    QT_PATH=`dirname "$QMAKE"`
-  fi
-  if test x"$QT_PATH" = x; then
-    as_fn_error $? "Cannot find the path to your Qt install. Use --with-qt." "$LINENO" 5 
-  fi
-  
-
-  # Get ready to build a test-app with Qt.
-
-  # Look for a writable temporary directory.
-  
-  if test x"$TMPDIR" = x || test ! -d "$TMPDIR" || test ! -w "$TMPDIR"; then
-    echo "$as_me:$LINENO: no TMPDIR or bad TMPDIR ($TMPDIR)" \
-      >&5
-    for i in /tmp /var/tmp; do
-      if test -d "$i" && test -w "$i"; then
-        TMPDIR=$i
-        export TMPDIR
-        echo "$as_me:$LINENO: setting TMPDIR=$TMPDIR" >&5
-        break
-      fi
-    done
-  fi
-
-  # Kludge!!  QMake has a very strange behavior.  For instance, if you
-  # install Qt under your $HOME and run QMake somewhere else under your
-  # $HOME, it will try to be clever and produce Makefiles with relative
-  # include paths.  In order to avoid this, we will test QMake from a
-  # temporary directory (usually /tmp).  Note that this problem was only
-  # observed with Qt 4.
-  my_configure_pwd=`pwd`
-  my_tmpdir="$TMPDIR/conftest$$.dir"
-  test -d "$my_tmpdir" || mkdir "$my_tmpdir"
-  if test -w "$my_tmpdir" && cd "$my_tmpdir"
-  then
-    :
-  else
-    as_fn_error $? "Cannot cd to or write in $my_tmpdir" "$LINENO" 5 
-  fi
-  cat >conftest.h <<_ASEOF
-#include <QObject>
-
-class Foo: public QObject
-{
-  Q_OBJECT;
-public:
-  Foo();
-  ~Foo() {}
-public slots:
-  void setValue(int value);
-signals:
-  void valueChanged(int newValue);
-private:
-  int value_;
-};
-_ASEOF
-
-  cat >conftest.cpp <<_ASEOF
-#include "conftest.h"
-Foo::Foo()
-  : value_ (42)
-{
-  connect(this, SIGNAL(valueChanged(int)), this, SLOT(setValue(int)));
-}
-
-void Foo::setValue(int value)
-{
-  value_ = value;
-}
-
-int main()
-{
-  Foo f;
-}
-_ASEOF
-  if $QMAKE -project; then :; else
-    as_fn_error $? "Calling $QMAKE -project failed." "$LINENO" 5 
-  fi
-
-  # Find the .pro file generated by qmake.
-  pro_file='conftest.dir.pro'
-  test -f $pro_file || pro_file=`echo *.pro`
-  if test -f "$pro_file"; then :; else
-    as_fn_error $? "Can't find the .pro file generated by Qmake." "$LINENO" 5 
-  fi
-
-
-
-
-
-
-
-  echo "$as_me:$LINENO: Invoking $QMAKE on $pro_file" >&5
-  sed 's/^/| /' "$pro_file" >&5
-
-  if $QMAKE; then :; else
-    as_fn_error $? "Calling $QMAKE failed." "$LINENO" 5 
-  fi
-  # Try to compile a simple Qt app.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can build a simple Qt app" >&5
-$as_echo_n "checking whether we can build a simple Qt app... " >&6; }
-if test "${at_cv_qt_build+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  at_cv_qt_build=ko
-  : ${MAKE=make}
-
-  if $MAKE >&5 2>&1; then
-    at_cv_qt_build='ok, looks like Qt 4'
-  else
-    echo "$as_me:$LINENO: Build failed, trying to #include <qobject.h> \
-instead" >&5
-    sed 's/<QObject>/<qobject.h>/' conftest.h > tmp.h && mv tmp.h conftest.h
-    if $MAKE >&5 2>&1; then
-      at_cv_qt_build='ok, looks like Qt 3'
-    else
-      # Sometimes (such as on Debian) build will fail because Qt hasn't been
-      # installed in debug mode and qmake tries (by default) to build apps in
-      # debug mode => Try again in release mode.
-      echo "$as_me:$LINENO: Build failed, trying to enforce release mode" \
-            >&5
-
-       # Tweak the value of CONFIG in the .pro file for +release.
-
-  qt_conf=''
-  for at_mod in +release; do
-    at_mod=`echo "$at_mod" | sed 's/^-//; tough
-                                  s/^+//; beef
-                                  :ough
-                                  s/^/CONFIG -= /;n
-                                  :eef
-                                  s/^/CONFIG += /'`
-    qt_conf="$qt_conf
-$at_mod"
-  done
-  echo "$qt_conf" | sed 1d >>"$pro_file"
-
-
-      sed 's/<qobject.h>/<QObject>/' conftest.h > tmp.h && mv tmp.h conftest.h
-      if $MAKE >&5 2>&1; then
-        at_cv_qt_build='ok, looks like Qt 4, release mode forced'
-      else
-        echo "$as_me:$LINENO: Build failed, trying to #include <qobject.h> \
-instead" >&5
-        sed 's/<QObject>/<qobject.h>/' conftest.h > tmp.h && mv tmp.h conftest.h
-        if $MAKE >&5 2>&1; then
-          at_cv_qt_build='ok, looks like Qt 3, release mode forced'
-        else
-          at_cv_qt_build=ko
-          echo "$as_me:$LINENO: failed program was:" >&5
-          sed 's/^/| /' conftest.h >&5
-          echo "$as_me:$LINENO: failed program was:" >&5
-          sed 's/^/| /' conftest.cpp >&5
-        fi # if make with Qt3-style #include and release mode forced.
-      fi # if make with Qt4-style #include and release mode forced.
-    fi # if make with Qt3-style #include.
-  fi # if make with Qt4-style #include.
-  
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_cv_qt_build" >&5
-$as_echo "$at_cv_qt_build" >&6; }
-  if test x"$at_cv_qt_build" = xko; then
-    as_fn_error $? "Cannot build a test Qt program" "$LINENO" 5 
-  fi
-  QT_VERSION_MAJOR=`echo "$at_cv_qt_build" | sed 's/^^0-9*//'`
-  
-
-  # This sed filter is applied after an expression of the form: /^FOO.*=/!d;
-  # It starts by removing the beginning of the line, removing references to
-  # SUBLIBS, removing unnecessary whitespaces at the beginning, and prefixes
-  # all variable uses by QT_.
-  qt_sed_filter='s///;
-                 s/$(SUBLIBS)//g;
-                 s/^ *//;
-                 s/\$(\(@<:@A-Z_@:>@@<:@A-Z_@:>@*\))/$(QT_\1)/g'
-
-  # Find the Makefile (qmake happens to generate a fake Makefile which invokes
-  # a Makefile.Debug or Makefile.Release). We we have both, we'll pick the
-  # Makefile.Release. The reason is that the main difference is that release
-  # uses -Os and debug -g. We can override -Os by passing another -O but we
-  # usually don't override -g.
-  if test -f Makefile.Release; then
-    at_mfile='Makefile.Release'
-  else
-    at_mfile='Makefile'
-  fi
-  if test -f $at_mfile; then :; else
-    cd "$my_configure_pwd"
-    as_fn_error $? "Cannot find the Makefile generated by qmake." "$LINENO" 5 
-  fi
-
-  # Find the DEFINES of Qt (should have been named CPPFLAGS).
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the DEFINES to use with Qt" >&5
-$as_echo_n "checking for the DEFINES to use with Qt... " >&6; }
-if test "${at_cv_env_QT_DEFINES+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  at_cv_env_QT_DEFINES=`sed "/^DEFINES@<:@ @:>@*=/!d;$qt_sed_filter" $at_mfile`
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_cv_env_QT_DEFINES" >&5
-$as_echo "$at_cv_env_QT_DEFINES" >&6; }
-  QT_DEFINES=$at_cv_env_QT_DEFINES
-
-
-  # Find the CFLAGS of Qt (We can use Qt in C?!)
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the CFLAGS to use with Qt" >&5
-$as_echo_n "checking for the CFLAGS to use with Qt... " >&6; }
-if test "${at_cv_env_QT_CFLAGS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  at_cv_env_QT_CFLAGS=`sed "/^CFLAGS@<:@ @:>@*=/!d;$qt_sed_filter" $at_mfile`
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_cv_env_QT_CFLAGS" >&5
-$as_echo "$at_cv_env_QT_CFLAGS" >&6; }
-  QT_CFLAGS=$at_cv_env_QT_CFLAGS
-
-
-  # Find the CXXFLAGS of Qt.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the CXXFLAGS to use with Qt" >&5
-$as_echo_n "checking for the CXXFLAGS to use with Qt... " >&6; }
-if test "${at_cv_env_QT_CXXFLAGS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  at_cv_env_QT_CXXFLAGS=`sed "/^CXXFLAGS@<:@ @:>@*=/!d;$qt_sed_filter" $at_mfile`
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_cv_env_QT_CXXFLAGS" >&5
-$as_echo "$at_cv_env_QT_CXXFLAGS" >&6; }
-  QT_CXXFLAGS=$at_cv_env_QT_CXXFLAGS
-
-
-  # Find the INCPATH of Qt.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the INCPATH to use with Qt" >&5
-$as_echo_n "checking for the INCPATH to use with Qt... " >&6; }
-if test "${at_cv_env_QT_INCPATH+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  at_cv_env_QT_INCPATH=`sed "/^INCPATH@<:@ @:>@*=/!d;$qt_sed_filter" $at_mfile`
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_cv_env_QT_INCPATH" >&5
-$as_echo "$at_cv_env_QT_INCPATH" >&6; }
-  QT_INCPATH=$at_cv_env_QT_INCPATH
-
-
-  QT_CPPFLAGS="$at_cv_env_QT_DEFINES $at_cv_env_QT_INCPATH"
-
-
-  # Find the LFLAGS of Qt (Should have been named LDFLAGS)
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the LDFLAGS to use with Qt" >&5
-$as_echo_n "checking for the LDFLAGS to use with Qt... " >&6; }
-if test "${at_cv_env_QT_LDFLAGS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  at_cv_env_QT_LDFLAGS=`sed "/^LDFLAGS@<:@ @:>@*=/!d;$qt_sed_filter" $at_mfile`
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_cv_env_QT_LDFLAGS" >&5
-$as_echo "$at_cv_env_QT_LDFLAGS" >&6; }
-  QT_LFLAGS=$at_cv_env_QT_LDFLAGS
-
-  QT_LDFLAGS=$at_cv_env_QT_LDFLAGS
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether host operating system is Darwin" >&5
-$as_echo_n "checking whether host operating system is Darwin... " >&6; }
-  at_darwin="no"
-  case $host_os in
-    darwin*)
-      at_darwin="yes"
-      ;;
-  esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_darwin" >&5
-$as_echo "$at_darwin" >&6; }
-
-  # Find the LIBS of Qt.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the LIBS to use with Qt" >&5
-$as_echo_n "checking for the LIBS to use with Qt... " >&6; }
-if test "${at_cv_env_QT_LIBS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  at_cv_env_QT_LIBS=`sed "/^LIBS@<:@ @:>@*=/!d;$qt_sed_filter" $at_mfile`
-   if test x$at_darwin = xyes; then
-     # Fix QT_LIBS: as of today Libtool (GNU Libtool 1.5.23a) doesn't handle
-     # -F properly. The "bug" has been fixed on 22 October 2006
-     # by Peter O'Gorman but we provide backward compatibility here.
-     at_cv_env_QT_LIBS=`echo "$at_cv_env_QT_LIBS" \
-                             | sed 's/^-F/-Wl,-F/;s/ -F/ -Wl,-F/g'`
-   fi
-  
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_cv_env_QT_LIBS" >&5
-$as_echo "$at_cv_env_QT_LIBS" >&6; }
-  QT_LIBS=$at_cv_env_QT_LIBS
-
-
-  cd "$my_configure_pwd" || echo 'WTF!'
-  rm -rf "$my_tmpdir"
-
-     
-  if test x"$QMAKE" = x; then
-    as_fn_error $? "\$QMAKE is empty. \
-Did you invoke AT@&t at _WITH_QT before AT@&t at _REQUIRE_QT_VERSION?" "$LINENO" 5 
-  fi
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Qt's version" >&5
-$as_echo_n "checking for Qt's version... " >&6; }
-if test "${at_cv_QT_VERSION+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  echo "$as_me:$LINENO: Running $QMAKE --version:" >&5
-  $QMAKE --version >&5 2>&1
-  qmake_version_sed='/^.*\([0-9]\.[0-9]\.[0-9]\).*$/!d;s//\1/'
-  at_cv_QT_VERSION=`$QMAKE --version 2>&1 | sed "$qmake_version_sed"`
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_cv_QT_VERSION" >&5
-$as_echo "$at_cv_QT_VERSION" >&6; }
-  if test x"$at_cv_QT_VERSION" = x; then
-    as_fn_error $? "Cannot detect Qt's version." "$LINENO" 5 
-  fi
-  QT_VERSION=$at_cv_QT_VERSION
-
-  as_arg_v1=$QT_VERSION
-as_arg_v2=4.3
-awk "$as_awk_strverscmp" v1="$as_arg_v1" v2="$as_arg_v2" /dev/null
-case $? in @%:@(
-  1) :
-    as_fn_error $? "This package requires Qt 4.3 or above." "$LINENO" 5  ;; @%:@(
-  0) :
-     ;; @%:@(
-  2) :
-     ;; @%:@(
-  *) :
-     ;;
-esac
-
-    test_qt=true
-fi
- if test x$test_qt = xtrue; then
-  USE_QT_TRUE=
-  USE_QT_FALSE='#'
-else
-  USE_QT_TRUE='#'
-  USE_QT_FALSE=
-fi
-
-
-@%:@ Check whether --enable-python was given.
-if test "${enable_python+set}" = set; then :
-  enableval=$enable_python; case "${enableval}" in
-  yes) python=true ;;
-  no)  python=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-python" "$LINENO" 5  ;;
-esac
-else
-  python=false
-fi
-
-if (test x$langall = xtrue || test x$python = xtrue) ;then
-    # Extract the first word of "python-config", so it can be a program name with args.
-set dummy python-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_PYTHON_HEADERS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$PYTHON_HEADERS"; then
-  ac_cv_prog_PYTHON_HEADERS="$PYTHON_HEADERS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_PYTHON_HEADERS="`python-config --cflags`"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-PYTHON_HEADERS=$ac_cv_prog_PYTHON_HEADERS
-if test -n "$PYTHON_HEADERS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_HEADERS" >&5
-$as_echo "$PYTHON_HEADERS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    # Extract the first word of "swig$EXEEXT", so it can be a program name with args.
-set dummy swig$EXEEXT; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_HAVE_SWIG+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$HAVE_SWIG"; then
-  ac_cv_prog_HAVE_SWIG="$HAVE_SWIG" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_HAVE_SWIG="true"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-HAVE_SWIG=$ac_cv_prog_HAVE_SWIG
-if test -n "$HAVE_SWIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_SWIG" >&5
-$as_echo "$HAVE_SWIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    if (test "$PYTHON_HEADERS" && test "$HAVE_SWIG") ;then
-	test_python=true
-	
-      
-
-  
-        # Find any Python interpreter.
-    if test -z "$PYTHON"; then
-      for ac_prog in python python2 python3 python3.0 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PYTHON+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $PYTHON in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-PYTHON=$ac_cv_path_PYTHON
-if test -n "$PYTHON"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
-$as_echo "$PYTHON" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$PYTHON" && break
-done
-test -n "$PYTHON" || PYTHON=":"
-
-    fi
-    am_display_PYTHON=python
-  
-
-  if test "$PYTHON" = :; then
-      as_fn_error $? "no suitable Python interpreter found" "$LINENO" 5 
-  else
-
-      
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5
-$as_echo_n "checking for $am_display_PYTHON version... " >&6; }
-if test "${am_cv_python_version+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"`
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5
-$as_echo "$am_cv_python_version" >&6; }
-  PYTHON_VERSION=$am_cv_python_version
-
-
-        
-  PYTHON_PREFIX='${prefix}'
-
-  PYTHON_EXEC_PREFIX='${exec_prefix}'
-
-
-    
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5
-$as_echo_n "checking for $am_display_PYTHON platform... " >&6; }
-if test "${am_cv_python_platform+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5
-$as_echo "$am_cv_python_platform" >&6; }
-  PYTHON_PLATFORM=$am_cv_python_platform
-
-
-
-  
-                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5
-$as_echo_n "checking for $am_display_PYTHON script directory... " >&6; }
-if test "${am_cv_python_pythondir+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "x$prefix" = xNONE
-     then
-       am_py_prefix=$ac_default_prefix
-     else
-       am_py_prefix=$prefix
-     fi
-     am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null ||
-     echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
-     case $am_cv_python_pythondir in
-     $am_py_prefix*)
-       am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
-       am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
-       ;;
-     *)
-       case $am_py_prefix in
-         /usr|/System*) ;;
-         *)
-	  am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
-	  ;;
-       esac
-       ;;
-     esac
-    
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5
-$as_echo "$am_cv_python_pythondir" >&6; }
-  pythondir=$am_cv_python_pythondir
-
-
-      
-  pkgpythondir=\${pythondir}/$PACKAGE
-
-
-            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5
-$as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; }
-if test "${am_cv_python_pyexecdir+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "x$exec_prefix" = xNONE
-     then
-       am_py_exec_prefix=$am_py_prefix
-     else
-       am_py_exec_prefix=$exec_prefix
-     fi
-     am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null ||
-     echo "$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
-     case $am_cv_python_pyexecdir in
-     $am_py_exec_prefix*)
-       am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
-       am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
-       ;;
-     *)
-       case $am_py_exec_prefix in
-         /usr|/System*) ;;
-         *)
-	   am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
-	   ;;
-       esac
-       ;;
-     esac
-    
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5
-$as_echo "$am_cv_python_pyexecdir" >&6; }
-  pyexecdir=$am_cv_python_pyexecdir
-
-
-  
-  pkgpyexecdir=\${pyexecdir}/$PACKAGE
-
-
-    
-  fi
-
-
-    else
-	echo Please install python-dev and swig packages
-	exit
-    fi 
-fi
- if test x$test_python = xtrue ; then
-  USE_PYTHON_TRUE=
-  USE_PYTHON_FALSE='#'
-else
-  USE_PYTHON_TRUE='#'
-  USE_PYTHON_FALSE=
-fi
-
-
-@%:@ Check whether --enable-octave was given.
-if test "${enable_octave+set}" = set; then :
-  enableval=$enable_octave; case "${enableval}" in
-  yes) octave=true ;;
-  no)  octave=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-octave" "$LINENO" 5  ;;
-esac
-else
-  octave=false
-fi
-
-if (test x$langall = xtrue || test x$octave = xtrue) ;then
-    # Extract the first word of "octave-config", so it can be a program name with args.
-set dummy octave-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OCTAVE+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$OCTAVE"; then
-  ac_cv_prog_OCTAVE="$OCTAVE" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_OCTAVE="octave-config"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-OCTAVE=$ac_cv_prog_OCTAVE
-if test -n "$OCTAVE"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OCTAVE" >&5
-$as_echo "$OCTAVE" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# find Octave arch
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Octave arch" >&5
-$as_echo_n "checking for Octave arch... " >&6; }
-    OCTAVE_ARCH=`$OCTAVE -p CANONICAL_HOST_TYPE`-`$OCTAVE -p API_VERSION`
-    OCTAVE_INCFLAGS="-I`$OCTAVE -p OCTINCLUDEDIR`"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OCTAVE_ARCH" >&5
-$as_echo "$OCTAVE_ARCH" >&6; }
-    OCTAVE_ARCH=$OCTAVE_ARCH
-
-    OCTAVE_INCFLAGS=$OCTAVE_INCFLAGS
-
-    test_octave=true
-fi
- if test x$test_octave = xtrue ; then
-  USE_OCTAVE_TRUE=
-  USE_OCTAVE_FALSE='#'
-else
-  USE_OCTAVE_TRUE='#'
-  USE_OCTAVE_FALSE=
-fi
-
-
-@%:@ Check whether --enable-testio was given.
-if test "${enable_testio+set}" = set; then :
-  enableval=$enable_testio; case "${enableval}" in
-  yes) testio=true ;;
-  no)  testio=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-testio" "$LINENO" 5  ;;
-esac
-else
-  testio=false
-fi
-
- if test x$testio = xtrue ; then
-  USE_TESTIO_TRUE=
-  USE_TESTIO_FALSE='#'
-else
-  USE_TESTIO_TRUE='#'
-  USE_TESTIO_FALSE=
-fi
-
-
-@%:@ Check whether --enable-docs was given.
-if test "${enable_docs+set}" = set; then :
-  enableval=$enable_docs; case "${enableval}" in
-  yes) docs=true ;;
-  no)  docs=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-docs" "$LINENO" 5  ;;
-esac
-else
-  docs=false
-fi
-
-if (test x$docs = xtrue || test x$all = xtrue) ;then
-	ac_config_files="$ac_config_files texinfo/Makefile texinfo/png/Makefile"
-
-fi
- if (test x$docs = xtrue || test x$all = xtrue) ; then
-  USE_DOCS_TRUE=
-  USE_DOCS_FALSE='#'
-else
-  USE_DOCS_TRUE='#'
-  USE_DOCS_FALSE=
-fi
-
-
-AM_CXXFLAGS="-Wall $GSL_FLAGS"
-
-
-ac_config_files="$ac_config_files Makefile mgl/Makefile examples/Makefile include/Makefile lang/Makefile utils/Makefile widgets/Makefile"
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
-  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) { eval $ac_var=; unset $ac_var;} ;;
-      esac ;;
-    esac
-  done
-
-  (set) 2>&1 |
-    case $as_nl`(ac_space=' '; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      # `set' does not quote correctly, so add quotes: double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \.
-      sed -n \
-	"s/'/'\\\\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;; #(
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-) |
-  sed '
-     /^ac_cv_env_/b end
-     t clear
-     :clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
-  if test -w "$cache_file"; then
-    test "x$cache_file" != "x/dev/null" &&
-      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
-    cat confcache >$cache_file
-  else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
-  fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-U=
-for ac_i in : $LIB@&t at OBJS; do test "x$ac_i" = x: && continue
-  # 1. Remove the extension, and $U if already installed.
-  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
-  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
-  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
-  #    will be set to the directory where LIBOBJS objects are built.
-  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
-  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIB@&t at OBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
- if test -n "$EXEEXT"; then
-  am__EXEEXT_TRUE=
-  am__EXEEXT_FALSE='#'
-else
-  am__EXEEXT_TRUE='#'
-  am__EXEEXT_FALSE=
-fi
-
-if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
-  as_fn_error $? "conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
-  as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
-  as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
-  as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${USE_PTHREAD_TRUE}" && test -z "${USE_PTHREAD_FALSE}"; then
-  as_fn_error $? "conditional \"USE_PTHREAD\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${USE_GSL_TRUE}" && test -z "${USE_GSL_FALSE}"; then
-  as_fn_error $? "conditional \"USE_GSL\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${USE_GLUT_TRUE}" && test -z "${USE_GLUT_FALSE}"; then
-  as_fn_error $? "conditional \"USE_GLUT\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${USE_HDF5_TRUE}" && test -z "${USE_HDF5_FALSE}"; then
-  as_fn_error $? "conditional \"USE_HDF5\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${USE_HDF4_TRUE}" && test -z "${USE_HDF4_FALSE}"; then
-  as_fn_error $? "conditional \"USE_HDF4\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${USE_GIF_TRUE}" && test -z "${USE_GIF_FALSE}"; then
-  as_fn_error $? "conditional \"USE_GIF\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${USE_JPEG_TRUE}" && test -z "${USE_JPEG_FALSE}"; then
-  as_fn_error $? "conditional \"USE_JPEG\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${USE_FLTK_TRUE}" && test -z "${USE_FLTK_FALSE}"; then
-  as_fn_error $? "conditional \"USE_FLTK\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${USE_WX_TRUE}" && test -z "${USE_WX_FALSE}"; then
-  as_fn_error $? "conditional \"USE_WX\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${USE_QT_TRUE}" && test -z "${USE_QT_FALSE}"; then
-  as_fn_error $? "conditional \"USE_QT\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${USE_PYTHON_TRUE}" && test -z "${USE_PYTHON_FALSE}"; then
-  as_fn_error $? "conditional \"USE_PYTHON\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${USE_OCTAVE_TRUE}" && test -z "${USE_OCTAVE_FALSE}"; then
-  as_fn_error $? "conditional \"USE_OCTAVE\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${USE_TESTIO_TRUE}" && test -z "${USE_TESTIO_FALSE}"; then
-  as_fn_error $? "conditional \"USE_TESTIO\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${USE_DOCS_TRUE}" && test -z "${USE_DOCS_FALSE}"; then
-  as_fn_error $? "conditional \"USE_DOCS\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-
-: ${CONFIG_STATUS=./config.status}
-ac_write_fail=0
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-as_write_fail=0
-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in @%:@(
-  *posix*) :
-    set -o posix ;; @%:@(
-  *) :
-     ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in @%:@(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  PATH_SEPARATOR=:
-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
-    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
-      PATH_SEPARATOR=';'
-  }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-case $0 in @%:@((
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-  done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-
-@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD]
-@%:@ ----------------------------------------
-@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-@%:@ script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
-  as_status=$1; test $as_status -eq 0 && as_status=1
-  if test "$4"; then
-    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
-  fi
-  $as_echo "$as_me: error: $2" >&2
-  as_fn_exit $as_status
-} @%:@ as_fn_error
-
-
-@%:@ as_fn_set_status STATUS
-@%:@ -----------------------
-@%:@ Set @S|@? to STATUS, without forking.
-as_fn_set_status ()
-{
-  return $1
-} @%:@ as_fn_set_status
-
-@%:@ as_fn_exit STATUS
-@%:@ -----------------
-@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
-  set +e
-  as_fn_set_status $1
-  exit $1
-} @%:@ as_fn_exit
-
-@%:@ as_fn_unset VAR
-@%:@ ---------------
-@%:@ Portably unset VAR.
-as_fn_unset ()
-{
-  { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-@%:@ as_fn_append VAR VALUE
-@%:@ ----------------------
-@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take
-@%:@ advantage of any shell optimizations that allow amortized linear growth over
-@%:@ repeated appends, instead of the typical quadratic growth present in naive
-@%:@ implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
-  eval 'as_fn_append ()
-  {
-    eval $1+=\$2
-  }'
-else
-  as_fn_append ()
-  {
-    eval $1=\$$1\$2
-  }
-fi # as_fn_append
-
-@%:@ as_fn_arith ARG...
-@%:@ ------------------
-@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the
-@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments
-@%:@ must be portable across @S|@(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
-  eval 'as_fn_arith ()
-  {
-    as_val=$(( $* ))
-  }'
-else
-  as_fn_arith ()
-  {
-    as_val=`expr "$@" || test $? -eq 1`
-  }
-fi # as_fn_arith
-
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in @%:@(((((
--n*)
-  case `echo 'xy\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  xy)  ECHO_C='\c';;
-  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
-       ECHO_T='	';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
-  if ln -s conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s='ln -s'
-    # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
-  elif ln conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s=ln
-  else
-    as_ln_s='cp -p'
-  fi
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-
-@%:@ as_fn_mkdir_p
-@%:@ -------------
-@%:@ Create "@S|@as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || eval $as_mkdir_p || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} @%:@ as_fn_mkdir_p
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p='mkdir -p "$as_dir"'
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-	test -d "$1/.";
-      else
-	case $1 in @%:@(
-	-*)set "./$1";;
-	esac;
-	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@((
-	???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-## ----------------------------------- ##
-## Main body of $CONFIG_STATUS script. ##
-## ----------------------------------- ##
-_ASEOF
-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# Save the log message, to keep $0 and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by mathgl $as_me 1.10, which was
-generated by GNU Autoconf 2.67.  Invocation command line was
-
-  CONFIG_FILES    = $CONFIG_FILES
-  CONFIG_HEADERS  = $CONFIG_HEADERS
-  CONFIG_LINKS    = $CONFIG_LINKS
-  CONFIG_COMMANDS = $CONFIG_COMMANDS
-  $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-case $ac_config_files in *"
-"*) set x $ac_config_files; shift; ac_config_files=$*;;
-esac
-
-case $ac_config_headers in *"
-"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
-esac
-
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_headers="$ac_config_headers"
-config_commands="$ac_config_commands"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-ac_cs_usage="\
-\`$as_me' instantiates files and other configuration actions
-from templates according to the current configuration.  Unless the files
-and actions are specified as TAGs, all are instantiated by default.
-
-Usage: $0 [OPTION]... [TAG]...
-
-  -h, --help       print this help, then exit
-  -V, --version    print version number and configuration settings, then exit
-      --config     print configuration, then exit
-  -q, --quiet, --silent
-                   do not print progress messages
-  -d, --debug      don't remove temporary files
-      --recheck    update $as_me by reconfiguring in the same conditions
-      --file=FILE[:TEMPLATE] 
-                   instantiate the configuration file FILE
-      --header=FILE[:TEMPLATE] 
-                   instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration commands:
-$config_commands
-
-Report bugs to <mathgl.abalakin at gmail.com>."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
-ac_cs_version="\\
-mathgl config.status 1.10
-configured by $0, generated by GNU Autoconf 2.67,
-  with options \\"\$ac_cs_config\\"
-
-Copyright (C) 2010 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-INSTALL='$INSTALL'
-MKDIR_P='$MKDIR_P'
-AWK='$AWK'
-test -n "\$AWK" || AWK=awk
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# The default lists apply if the user does not specify any file.
-ac_need_defaults=:
-while test $# != 0
-do
-  case $1 in
-  --*=?*)
-    ac_option=`expr "X$1" : 'X\([^=]*\)='`
-    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
-    ac_shift=:
-    ;;
-  --*=)
-    ac_option=`expr "X$1" : 'X\([^=]*\)='`
-    ac_optarg=
-    ac_shift=:
-    ;;
-  *)
-    ac_option=$1
-    ac_optarg=$2
-    ac_shift=shift
-    ;;
-  esac
-
-  case $ac_option in
-  # Handling of the options.
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    ac_cs_recheck=: ;;
-  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
-    $as_echo "$ac_cs_version"; exit ;;
-  --config | --confi | --conf | --con | --co | --c )
-    $as_echo "$ac_cs_config"; exit ;;
-  --debug | --debu | --deb | --de | --d | -d )
-    debug=: ;;
-  --file | --fil | --fi | --f )
-    $ac_shift
-    case $ac_optarg in
-    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    '') as_fn_error $? "missing file argument" ;;
-    esac
-    as_fn_append CONFIG_FILES " '$ac_optarg'"
-    ac_need_defaults=false;;
-  --header | --heade | --head | --hea )
-    $ac_shift
-    case $ac_optarg in
-    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
-    ac_need_defaults=false;;
-  --he | --h)
-    # Conflict between --help and --header
-    as_fn_error $? "ambiguous option: \`$1'
-Try \`$0 --help' for more information.";;
-  --help | --hel | -h )
-    $as_echo "$ac_cs_usage"; exit ;;
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
-    ac_cs_silent=: ;;
-
-  # This is an error.
-  -*) as_fn_error $? "unrecognized option: \`$1'
-Try \`$0 --help' for more information." ;;
-
-  *) as_fn_append ac_config_targets " $1"
-     ac_need_defaults=false ;;
-
-  esac
-  shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
-  exec 6>/dev/null
-  ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-if \$ac_cs_recheck; then
-  set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-  shift
-  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
-  CONFIG_SHELL='$SHELL'
-  export CONFIG_SHELL
-  exec "\$@"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX
-@%:@@%:@ Running $as_me. @%:@@%:@
-_ASBOX
-  $as_echo "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-#
-# INIT-COMMANDS
-#
-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
-
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-AS='`$ECHO "X$AS" | $Xsed -e "$delay_single_quote_subst"`'
-DLLTOOL='`$ECHO "X$DLLTOOL" | $Xsed -e "$delay_single_quote_subst"`'
-OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`'
-macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`'
-macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`'
-enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`'
-enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`'
-pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`'
-enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`'
-host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`'
-host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`'
-host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`'
-build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`'
-build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`'
-build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`'
-SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`'
-Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`'
-GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`'
-EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`'
-FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`'
-LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`'
-NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`'
-LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`'
-max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`'
-ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`'
-exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`'
-lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`'
-lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`'
-lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`'
-reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`'
-reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`'
-file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`'
-AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`'
-AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`'
-STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`'
-RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`'
-old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`'
-CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`'
-compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`'
-GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
-objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`'
-SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`'
-ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`'
-MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`'
-need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`'
-DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`'
-NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`'
-LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`'
-OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`'
-OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`'
-libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`'
-shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`'
-export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
-whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`'
-allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
-no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`'
-inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`'
-link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`'
-fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`'
-always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`'
-export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
-include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
-prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`'
-variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`'
-need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
-need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`'
-version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`'
-runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`'
-shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
-shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`'
-libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`'
-library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`'
-soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`'
-postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`'
-sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
-sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`'
-enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`'
-enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`'
-enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`'
-old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`'
-striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_lib_search_dirs='`$ECHO "X$compiler_lib_search_dirs" | $Xsed -e "$delay_single_quote_subst"`'
-predep_objects='`$ECHO "X$predep_objects" | $Xsed -e "$delay_single_quote_subst"`'
-postdep_objects='`$ECHO "X$postdep_objects" | $Xsed -e "$delay_single_quote_subst"`'
-predeps='`$ECHO "X$predeps" | $Xsed -e "$delay_single_quote_subst"`'
-postdeps='`$ECHO "X$postdeps" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_lib_search_path='`$ECHO "X$compiler_lib_search_path" | $Xsed -e "$delay_single_quote_subst"`'
-LD_CXX='`$ECHO "X$LD_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_cmds_CXX='`$ECHO "X$old_archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_CXX='`$ECHO "X$compiler_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-GCC_CXX='`$ECHO "X$GCC_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "X$lt_prog_compiler_no_builtin_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_wl_CXX='`$ECHO "X$lt_prog_compiler_wl_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_pic_CXX='`$ECHO "X$lt_prog_compiler_pic_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_static_CXX='`$ECHO "X$lt_prog_compiler_static_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o_CXX='`$ECHO "X$lt_cv_prog_compiler_c_o_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds_need_lc_CXX='`$ECHO "X$archive_cmds_need_lc_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes_CXX='`$ECHO "X$enable_shared_with_static_runtimes_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-export_dynamic_flag_spec_CXX='`$ECHO "X$export_dynamic_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-whole_archive_flag_spec_CXX='`$ECHO "X$whole_archive_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_needs_object_CXX='`$ECHO "X$compiler_needs_object_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_new_cmds_CXX='`$ECHO "X$old_archive_from_new_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds_CXX='`$ECHO "X$old_archive_from_expsyms_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds_CXX='`$ECHO "X$archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-archive_expsym_cmds_CXX='`$ECHO "X$archive_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-module_cmds_CXX='`$ECHO "X$module_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-module_expsym_cmds_CXX='`$ECHO "X$module_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-with_gnu_ld_CXX='`$ECHO "X$with_gnu_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-allow_undefined_flag_CXX='`$ECHO "X$allow_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-no_undefined_flag_CXX='`$ECHO "X$no_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_CXX='`$ECHO "X$hardcode_libdir_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_ld_CXX='`$ECHO "X$hardcode_libdir_flag_spec_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_separator_CXX='`$ECHO "X$hardcode_libdir_separator_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct_CXX='`$ECHO "X$hardcode_direct_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct_absolute_CXX='`$ECHO "X$hardcode_direct_absolute_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_minus_L_CXX='`$ECHO "X$hardcode_minus_L_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_shlibpath_var_CXX='`$ECHO "X$hardcode_shlibpath_var_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_automatic_CXX='`$ECHO "X$hardcode_automatic_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-inherit_rpath_CXX='`$ECHO "X$inherit_rpath_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-link_all_deplibs_CXX='`$ECHO "X$link_all_deplibs_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-fix_srcfile_path_CXX='`$ECHO "X$fix_srcfile_path_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-always_export_symbols_CXX='`$ECHO "X$always_export_symbols_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-export_symbols_cmds_CXX='`$ECHO "X$export_symbols_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-exclude_expsyms_CXX='`$ECHO "X$exclude_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-include_expsyms_CXX='`$ECHO "X$include_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-prelink_cmds_CXX='`$ECHO "X$prelink_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-file_list_spec_CXX='`$ECHO "X$file_list_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_action_CXX='`$ECHO "X$hardcode_action_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_lib_search_dirs_CXX='`$ECHO "X$compiler_lib_search_dirs_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-predep_objects_CXX='`$ECHO "X$predep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-postdep_objects_CXX='`$ECHO "X$postdep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-predeps_CXX='`$ECHO "X$predeps_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-postdeps_CXX='`$ECHO "X$postdeps_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_lib_search_path_CXX='`$ECHO "X$compiler_lib_search_path_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# Quote evaled strings.
-for var in SED \
-GREP \
-EGREP \
-FGREP \
-LD \
-NM \
-LN_S \
-lt_SP2NL \
-lt_NL2SP \
-reload_flag \
-deplibs_check_method \
-file_magic_cmd \
-AR \
-AR_FLAGS \
-STRIP \
-RANLIB \
-CC \
-CFLAGS \
-compiler \
-lt_cv_sys_global_symbol_pipe \
-lt_cv_sys_global_symbol_to_cdecl \
-lt_cv_sys_global_symbol_to_c_name_address \
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
-SHELL \
-ECHO \
-lt_prog_compiler_no_builtin_flag \
-lt_prog_compiler_wl \
-lt_prog_compiler_pic \
-lt_prog_compiler_static \
-lt_cv_prog_compiler_c_o \
-need_locks \
-DSYMUTIL \
-NMEDIT \
-LIPO \
-OTOOL \
-OTOOL64 \
-shrext_cmds \
-export_dynamic_flag_spec \
-whole_archive_flag_spec \
-compiler_needs_object \
-with_gnu_ld \
-allow_undefined_flag \
-no_undefined_flag \
-hardcode_libdir_flag_spec \
-hardcode_libdir_flag_spec_ld \
-hardcode_libdir_separator \
-fix_srcfile_path \
-exclude_expsyms \
-include_expsyms \
-file_list_spec \
-variables_saved_for_relink \
-libname_spec \
-library_names_spec \
-soname_spec \
-finish_eval \
-old_striplib \
-striplib \
-compiler_lib_search_dirs \
-predep_objects \
-postdep_objects \
-predeps \
-postdeps \
-compiler_lib_search_path \
-LD_CXX \
-compiler_CXX \
-lt_prog_compiler_no_builtin_flag_CXX \
-lt_prog_compiler_wl_CXX \
-lt_prog_compiler_pic_CXX \
-lt_prog_compiler_static_CXX \
-lt_cv_prog_compiler_c_o_CXX \
-export_dynamic_flag_spec_CXX \
-whole_archive_flag_spec_CXX \
-compiler_needs_object_CXX \
-with_gnu_ld_CXX \
-allow_undefined_flag_CXX \
-no_undefined_flag_CXX \
-hardcode_libdir_flag_spec_CXX \
-hardcode_libdir_flag_spec_ld_CXX \
-hardcode_libdir_separator_CXX \
-fix_srcfile_path_CXX \
-exclude_expsyms_CXX \
-include_expsyms_CXX \
-file_list_spec_CXX \
-compiler_lib_search_dirs_CXX \
-predep_objects_CXX \
-postdep_objects_CXX \
-predeps_CXX \
-postdeps_CXX \
-compiler_lib_search_path_CXX; do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
-    *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
-      ;;
-    *)
-      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-      ;;
-    esac
-done
-
-# Double-quote double-evaled strings.
-for var in reload_cmds \
-old_postinstall_cmds \
-old_postuninstall_cmds \
-old_archive_cmds \
-extract_expsyms_cmds \
-old_archive_from_new_cmds \
-old_archive_from_expsyms_cmds \
-archive_cmds \
-archive_expsym_cmds \
-module_cmds \
-module_expsym_cmds \
-export_symbols_cmds \
-prelink_cmds \
-postinstall_cmds \
-postuninstall_cmds \
-finish_cmds \
-sys_lib_search_path_spec \
-sys_lib_dlsearch_path_spec \
-old_archive_cmds_CXX \
-old_archive_from_new_cmds_CXX \
-old_archive_from_expsyms_cmds_CXX \
-archive_cmds_CXX \
-archive_expsym_cmds_CXX \
-module_cmds_CXX \
-module_expsym_cmds_CXX \
-export_symbols_cmds_CXX \
-prelink_cmds_CXX; do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
-    *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
-      ;;
-    *)
-      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-      ;;
-    esac
-done
-
-# Fix-up fallback echo if it was mangled by the above quoting rules.
-case \$lt_ECHO in
-*'\\\$0 --fallback-echo"')  lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\`
-  ;;
-esac
-
-ac_aux_dir='$ac_aux_dir'
-xsi_shell='$xsi_shell'
-lt_shell_append='$lt_shell_append'
-
-# See if we are running on zsh, and set the options which allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
-   setopt NO_GLOB_SUBST
-fi
-
-
-    PACKAGE='$PACKAGE'
-    VERSION='$VERSION'
-    TIMESTAMP='$TIMESTAMP'
-    RM='$RM'
-    ofile='$ofile'
-
-
-
-
-
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
-  case $ac_config_target in
-    "include/mgl/config.h") CONFIG_HEADERS="$CONFIG_HEADERS include/mgl/config.h" ;;
-    "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
-    "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
-    "texinfo/Makefile") CONFIG_FILES="$CONFIG_FILES texinfo/Makefile" ;;
-    "texinfo/png/Makefile") CONFIG_FILES="$CONFIG_FILES texinfo/png/Makefile" ;;
-    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-    "mgl/Makefile") CONFIG_FILES="$CONFIG_FILES mgl/Makefile" ;;
-    "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;;
-    "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
-    "lang/Makefile") CONFIG_FILES="$CONFIG_FILES lang/Makefile" ;;
-    "utils/Makefile") CONFIG_FILES="$CONFIG_FILES utils/Makefile" ;;
-    "widgets/Makefile") CONFIG_FILES="$CONFIG_FILES widgets/Makefile" ;;
-
-  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
-  esac
-done
-
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used.  Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
-  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience.  Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
-  tmp=
-  trap 'exit_status=$?
-  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
-' 0
-  trap 'as_fn_exit 1' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
-  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
-}  ||
-{
-  tmp=./conf$$-$RANDOM
-  (umask 077 && mkdir "$tmp")
-} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 
-
-# Set up the scripts for CONFIG_FILES section.
-# No need to generate them if there are no CONFIG_FILES.
-# This happens for instance with `./config.status config.h'.
-if test -n "$CONFIG_FILES"; then
-
-
-ac_cr=`echo X | tr X '\015'`
-# On cygwin, bash can eat \r inside `` if the user requested igncr.
-# But we know of no other shell where ac_cr would be empty at this
-# point, so we can use a bashism as a fallback.
-if test "x$ac_cr" = x; then
-  eval ac_cr=\$\'\\r\'
-fi
-ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
-if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
-  ac_cs_awk_cr='\\r'
-else
-  ac_cs_awk_cr=$ac_cr
-fi
-
-echo 'BEGIN {' >"$tmp/subs1.awk" &&
-_ACEOF
-
-
-{
-  echo "cat >conf$$subs.awk <<_ACEOF" &&
-  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
-  echo "_ACEOF"
-} >conf$$subs.sh ||
-  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
-  . ./conf$$subs.sh ||
-    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 
-
-  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
-  if test $ac_delim_n = $ac_delim_num; then
-    break
-  elif $ac_last_try; then
-    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 
-  else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
-rm -f conf$$subs.sh
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
-_ACEOF
-sed -n '
-h
-s/^/S["/; s/!.*/"]=/
-p
-g
-s/^[^!]*!//
-:repl
-t repl
-s/'"$ac_delim"'$//
-t delim
-:nl
-h
-s/\(.\{148\}\)..*/\1/
-t more1
-s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
-p
-n
-b repl
-:more1
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t nl
-:delim
-h
-s/\(.\{148\}\)..*/\1/
-t more2
-s/["\\]/\\&/g; s/^/"/; s/$/"/
-p
-b
-:more2
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t delim
-' <conf$$subs.awk | sed '
-/^[^""]/{
-  N
-  s/\n//
-}
-' >>$CONFIG_STATUS || ac_write_fail=1
-rm -f conf$$subs.awk
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACAWK
-cat >>"\$tmp/subs1.awk" <<_ACAWK &&
-  for (key in S) S_is_set[key] = 1
-  FS = ""
-
-}
-{
-  line = $ 0
-  nfields = split(line, field, "@")
-  substed = 0
-  len = length(field[1])
-  for (i = 2; i < nfields; i++) {
-    key = field[i]
-    keylen = length(key)
-    if (S_is_set[key]) {
-      value = S[key]
-      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
-      len += length(value) + length(field[++i])
-      substed = 1
-    } else
-      len += 1 + keylen
-  }
-
-  print line
-}
-
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
-  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
-else
-  cat
-fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
-  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 
-_ACEOF
-
-# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
-# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[	 ]*VPATH[	 ]*=[	 ]*/{
-h
-s///
-s/^/:/
-s/[	 ]*$/:/
-s/:\$(srcdir):/:/g
-s/:\${srcdir}:/:/g
-s/:@srcdir@:/:/g
-s/^:*//
-s/:*$//
-x
-s/\(=[	 ]*\).*/\1/
-G
-s/\n//
-s/^[^=]*=[	 ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-fi # test -n "$CONFIG_FILES"
-
-# Set up the scripts for CONFIG_HEADERS section.
-# No need to generate them if there are no CONFIG_HEADERS.
-# This happens for instance with `./config.status Makefile'.
-if test -n "$CONFIG_HEADERS"; then
-cat >"$tmp/defines.awk" <<\_ACAWK ||
-BEGIN {
-_ACEOF
-
-# Transform confdefs.h into an awk script `defines.awk', embedded as
-# here-document in config.status, that substitutes the proper values into
-# config.h.in to produce config.h.
-
-# Create a delimiter string that does not exist in confdefs.h, to ease
-# handling of long lines.
-ac_delim='%!_!# '
-for ac_last_try in false false :; do
-  ac_t=`sed -n "/$ac_delim/p" confdefs.h`
-  if test -z "$ac_t"; then
-    break
-  elif $ac_last_try; then
-    as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 
-  else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
-
-# For the awk script, D is an array of macro values keyed by name,
-# likewise P contains macro parameters if any.  Preserve backslash
-# newline sequences.
-
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-sed -n '
-s/.\{148\}/&'"$ac_delim"'/g
-t rset
-:rset
-s/^[	 ]*#[	 ]*define[	 ][	 ]*/ /
-t def
-d
-:def
-s/\\$//
-t bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3"/p
-s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2"/p
-d
-:bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3\\\\\\n"\\/p
-t cont
-s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
-t cont
-d
-:cont
-n
-s/.\{148\}/&'"$ac_delim"'/g
-t clear
-:clear
-s/\\$//
-t bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/"/p
-d
-:bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
-b cont
-' <confdefs.h | sed '
-s/'"$ac_delim"'/"\\\
-"/g' >>$CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-  for (key in D) D_is_set[key] = 1
-  FS = ""
-}
-/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
-  line = \$ 0
-  split(line, arg, " ")
-  if (arg[1] == "#") {
-    defundef = arg[2]
-    mac1 = arg[3]
-  } else {
-    defundef = substr(arg[1], 2)
-    mac1 = arg[2]
-  }
-  split(mac1, mac2, "(") #)
-  macro = mac2[1]
-  prefix = substr(line, 1, index(line, defundef) - 1)
-  if (D_is_set[macro]) {
-    # Preserve the white space surrounding the "#".
-    print prefix "define", macro P[macro] D[macro]
-    next
-  } else {
-    # Replace #undef with comments.  This is necessary, for example,
-    # in the case of _POSIX_SOURCE, which is predefined and required
-    # on some systems where configure will not decide to define it.
-    if (defundef == "undef") {
-      print "/*", prefix defundef, macro, "*/"
-      next
-    }
-  }
-}
-{ print }
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-  as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 
-fi # test -n "$CONFIG_HEADERS"
-
-
-eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS"
-shift
-for ac_tag
-do
-  case $ac_tag in
-  :[FHLC]) ac_mode=$ac_tag; continue;;
-  esac
-  case $ac_mode$ac_tag in
-  :[FHL]*:*);;
-  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;;
-  :[FH]-) ac_tag=-:-;;
-  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
-  esac
-  ac_save_IFS=$IFS
-  IFS=:
-  set x $ac_tag
-  IFS=$ac_save_IFS
-  shift
-  ac_file=$1
-  shift
-
-  case $ac_mode in
-  :L) ac_source=$1;;
-  :[FH])
-    ac_file_inputs=
-    for ac_f
-    do
-      case $ac_f in
-      -) ac_f="$tmp/stdin";;
-      *) # Look for the file first in the build tree, then in the source tree
-	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
-	 # because $ac_f cannot contain `:'.
-	 test -f "$ac_f" ||
-	   case $ac_f in
-	   [\\/$]*) false;;
-	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
-	   esac ||
-	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;;
-      esac
-      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
-      as_fn_append ac_file_inputs " '$ac_f'"
-    done
-
-    # Let's still pretend it is `configure' which instantiates (i.e., don't
-    # use $as_me), people would be surprised to read:
-    #    /* config.h.  Generated by config.status.  */
-    configure_input='Generated from '`
-	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
-	`' by configure.'
-    if test x"$ac_file" != x-; then
-      configure_input="$ac_file.  $configure_input"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
-    fi
-    # Neutralize special characters interpreted by sed in replacement strings.
-    case $configure_input in #(
-    *\&* | *\|* | *\\* )
-       ac_sed_conf_input=`$as_echo "$configure_input" |
-       sed 's/[\\\\&|]/\\\\&/g'`;; #(
-    *) ac_sed_conf_input=$configure_input;;
-    esac
-
-    case $ac_tag in
-    *:-:* | *:-) cat >"$tmp/stdin" \
-      || as_fn_error $? "could not create $ac_file" "$LINENO" 5  ;;
-    esac
-    ;;
-  esac
-
-  ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_file" : 'X\(//\)[^/]' \| \
-	 X"$ac_file" : 'X\(//\)$' \| \
-	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-  as_dir="$ac_dir"; as_fn_mkdir_p
-  ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
-  case $ac_top_builddir_sub in
-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-  esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
-  .)  # We are building in place.
-    ac_srcdir=.
-    ac_top_srcdir=$ac_top_builddir_sub
-    ac_abs_top_srcdir=$ac_pwd ;;
-  [\\/]* | ?:[\\/]* )  # Absolute name.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir
-    ac_abs_top_srcdir=$srcdir ;;
-  *) # Relative name.
-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_build_prefix$srcdir
-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
-  case $ac_mode in
-  :F)
-  #
-  # CONFIG_FILE
-  #
-
-  case $INSTALL in
-  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
-  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
-  esac
-  ac_MKDIR_P=$MKDIR_P
-  case $MKDIR_P in
-  [\\/$]* | ?:[\\/]* ) ;;
-  */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
-  esac
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-ac_sed_dataroot='
-/datarootdir/ {
-  p
-  q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p'
-case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-  ac_datarootdir_hack='
-  s&@datadir@&$datadir&g
-  s&@docdir@&$docdir&g
-  s&@infodir@&$infodir&g
-  s&@localedir@&$localedir&g
-  s&@mandir@&$mandir&g
-  s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
-_ACEOF
-
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_sed_extra="$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s|@configure_input@|$ac_sed_conf_input|;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@top_build_prefix@&$ac_top_build_prefix&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-s&@INSTALL@&$ac_INSTALL&;t t
-s&@MKDIR_P@&$ac_MKDIR_P&;t t
-$ac_datarootdir_hack
-"
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
-  || as_fn_error $? "could not create $ac_file" "$LINENO" 5 
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
-  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
-  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined" >&2;}
-
-  rm -f "$tmp/stdin"
-  case $ac_file in
-  -) cat "$tmp/out" && rm -f "$tmp/out";;
-  *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
-  esac \
-  || as_fn_error $? "could not create $ac_file" "$LINENO" 5 
- ;;
-  :H)
-  #
-  # CONFIG_HEADER
-  #
-  if test x"$ac_file" != x-; then
-    {
-      $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
-    } >"$tmp/config.h" \
-      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 
-    if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-$as_echo "$as_me: $ac_file is unchanged" >&6;}
-    else
-      rm -f "$ac_file"
-      mv "$tmp/config.h" "$ac_file" \
-	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5 
-    fi
-  else
-    $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
-      || as_fn_error $? "could not create -" "$LINENO" 5 
-  fi
-# Compute "$ac_file"'s index in $config_headers.
-_am_arg="$ac_file"
-_am_stamp_count=1
-for _am_header in $config_headers :; do
-  case $_am_header in
-    $_am_arg | $_am_arg:* )
-      break ;;
-    * )
-      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
-  esac
-done
-echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
-$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$_am_arg" : 'X\(//\)[^/]' \| \
-	 X"$_am_arg" : 'X\(//\)$' \| \
-	 X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$_am_arg" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`/stamp-h$_am_stamp_count
- ;;
-  
-  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
-$as_echo "$as_me: executing $ac_file commands" >&6;}
- ;;
-  esac
-
-
-  case $ac_file$ac_mode in
-    "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
-  # Autoconf 2.62 quotes --file arguments for eval, but not when files
-  # are listed without --file.  Let's play safe and only enable the eval
-  # if we detect the quoting.
-  case $CONFIG_FILES in
-  *\'*) eval set x "$CONFIG_FILES" ;;
-  *)   set x $CONFIG_FILES ;;
-  esac
-  shift
-  for mf
-  do
-    # Strip MF so we end up with the name of the file.
-    mf=`echo "$mf" | sed -e 's/:.*$//'`
-    # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named `Makefile.in', but
-    # some people rename them; so instead we look at the file content.
-    # Grep'ing the first line is not enough: some people post-process
-    # each Makefile.in and add a new line on top of each file to say so.
-    # Grep'ing the whole file is not good either: AIX grep has a line
-    # limit of 2048, but all sed's we know have understand at least 4000.
-    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
-      dirpart=`$as_dirname -- "$mf" ||
-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$mf" : 'X\(//\)[^/]' \| \
-	 X"$mf" : 'X\(//\)$' \| \
-	 X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$mf" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-    else
-      continue
-    fi
-    # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running `make'.
-    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
-    test -z "$DEPDIR" && continue
-    am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
-    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # When using ansi2knr, U may be empty or an underscore; expand it
-    U=`sed -n 's/^U = //p' < "$mf"`
-    # Find all dependency output files, they are included files with
-    # $(DEPDIR) in their names.  We invoke sed twice because it is the
-    # simplest approach to changing $(DEPDIR) to its actual value in the
-    # expansion.
-    for file in `sed -n "
-      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
-      # Make sure the directory exists.
-      test -f "$dirpart/$file" && continue
-      fdir=`$as_dirname -- "$file" ||
-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$file" : 'X\(//\)[^/]' \| \
-	 X"$file" : 'X\(//\)$' \| \
-	 X"$file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      as_dir=$dirpart/$fdir; as_fn_mkdir_p
-      # echo "creating $dirpart/$file"
-      echo '# dummy' > "$dirpart/$file"
-    done
-  done
-}
- ;;
-    "libtool":C) 
-    
-    # See if we are running on zsh, and set the options which allow our
-    # commands through without removal of \ escapes.
-    if test -n "${ZSH_VERSION+set}" ; then
-      setopt NO_GLOB_SUBST
-    fi
-
-    cfgfile="${ofile}T"
-    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
-    $RM "$cfgfile"
-
-    cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008 Free Software Foundation, Inc.
-#   Written by Gordon Matzigkeit, 1996
-#
-#   This file is part of GNU Libtool.
-#
-# GNU Libtool 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.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool 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 GNU Libtool; see the file COPYING.  If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-
-# The names of the tagged configurations supported by this script.
-available_tags="CXX "
-
-# ### BEGIN LIBTOOL CONFIG
-
-# Assembler program.
-AS=$AS
-
-# DLL creation program.
-DLLTOOL=$DLLTOOL
-
-# Object dumper program.
-OBJDUMP=$OBJDUMP
-
-# Which release of libtool.m4 was used?
-macro_version=$macro_version
-macro_revision=$macro_revision
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# What type of objects to build.
-pic_mode=$pic_mode
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
-
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# A sed program that does not truncate output.
-SED=$lt_SED
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="\$SED -e 1s/^X//"
-
-# A grep program that handles long lines.
-GREP=$lt_GREP
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# A literal string matcher.
-FGREP=$lt_FGREP
-
-# A BSD- or MS-compatible name lister.
-NM=$lt_NM
-
-# Whether we need soft or hard links.
-LN_S=$lt_LN_S
-
-# What is the maximum length of a command?
-max_cmd_len=$max_cmd_len
-
-# Object file suffix (normally "o").
-objext=$ac_objext
-
-# Executable file suffix (normally "").
-exeext=$exeext
-
-# whether the shell understands "unset".
-lt_unset=$lt_unset
-
-# turn spaces into newlines.
-SP2NL=$lt_lt_SP2NL
-
-# turn newlines into spaces.
-NL2SP=$lt_lt_NL2SP
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == "file_magic".
-file_magic_cmd=$lt_file_magic_cmd
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A symbol stripping program.
-STRIP=$lt_STRIP
-
-# Commands used to install an old-style archive.
-RANLIB=$lt_RANLIB
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# A C compiler.
-LTCC=$lt_CC
-
-# LTCC compiler flags.
-LTCFLAGS=$lt_CFLAGS
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration.
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair.
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# Transform the output of nm in a C name address pair when lib prefix is needed.
-global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# An echo program that does not interpret backslashes.
-ECHO=$lt_ECHO
-
-# Used to examine libraries when file_magic_cmd begins with "file".
-MAGIC_CMD=$MAGIC_CMD
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
-DSYMUTIL=$lt_DSYMUTIL
-
-# Tool to change global to local symbols on Mac OS X.
-NMEDIT=$lt_NMEDIT
-
-# Tool to manipulate fat objects and archives on Mac OS X.
-LIPO=$lt_LIPO
-
-# ldd/readelf like tool for Mach-O binaries on Mac OS X.
-OTOOL=$lt_OTOOL
-
-# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
-OTOOL64=$lt_OTOOL64
-
-# Old archive suffix (normally "a").
-libext=$libext
-
-# Shared library suffix (normally ".so").
-shrext_cmds=$lt_shrext_cmds
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at link time.
-variables_saved_for_relink=$lt_variables_saved_for_relink
-
-# Do we need the "lib" prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Library versioning type.
-version_type=$version_type
-
-# Shared library runtime path variable.
-runpath_var=$runpath_var
-
-# Shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Command to use after installation of a shared archive.
-postinstall_cmds=$lt_postinstall_cmds
-
-# Command to use after uninstallation of a shared archive.
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# As "finish_cmds", except a single script fragment to be evaled but
-# not shown.
-finish_eval=$lt_finish_eval
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Compile-time system search path for libraries.
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries.
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-
-# The linker used to build libraries.
-LD=$lt_LD
-
-# Commands used to build an old-style archive.
-old_archive_cmds=$lt_old_archive_cmds
-
-# A language specific compiler.
-CC=$lt_compiler
-
-# Is the compiler the GNU compiler?
-with_gcc=$GCC
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc
-
-# Whether or not to disallow shared libs when runtime libs are static.
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec
-
-# Whether the compiler copes with passing no objects directly.
-compiler_needs_object=$lt_compiler_needs_object
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
-
-# Commands used to build a shared archive.
-archive_cmds=$lt_archive_cmds
-archive_expsym_cmds=$lt_archive_expsym_cmds
-
-# Commands used to build a loadable module if different from building
-# a shared archive.
-module_cmds=$lt_module_cmds
-module_expsym_cmds=$lt_module_expsym_cmds
-
-# Whether we are building with GNU ld or not.
-with_gnu_ld=$lt_with_gnu_ld
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag
-
-# Flag that enforces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
-
-# If ld is used when linking, flag to hardcode \$libdir into a binary
-# during linking.  This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
-
-# Whether we need a single "-rpath" flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary.
-hardcode_direct=$hardcode_direct
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
-# library is relocated.
-hardcode_direct_absolute=$hardcode_direct_absolute
-
-# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-# into the resulting binary.
-hardcode_minus_L=$hardcode_minus_L
-
-# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-# into the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var
-
-# Set to "yes" if building a shared library automatically hardcodes DIR
-# into the library and all subsequent libraries and executables linked
-# against it.
-hardcode_automatic=$hardcode_automatic
-
-# Set to yes if linker adds runtime paths of dependent libraries
-# to runtime path list.
-inherit_rpath=$inherit_rpath
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path=$lt_fix_srcfile_path
-
-# Set to "yes" if exported symbols are required.
-always_export_symbols=$always_export_symbols
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms
-
-# Commands necessary for linking programs (against libraries) with templates.
-prelink_cmds=$lt_prelink_cmds
-
-# Specify filename containing input files.
-file_list_spec=$lt_file_list_spec
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action
-
-# The directories searched by this compiler when creating a shared library.
-compiler_lib_search_dirs=$lt_compiler_lib_search_dirs
-
-# Dependencies to place before and after the objects being linked to
-# create a shared library.
-predep_objects=$lt_predep_objects
-postdep_objects=$lt_postdep_objects
-predeps=$lt_predeps
-postdeps=$lt_postdeps
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path
-
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
-  case $host_os in
-  aix3*)
-    cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program.  For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
-  COLLECT_NAMES=
-  export COLLECT_NAMES
-fi
-_LT_EOF
-    ;;
-  esac
-
-  
-ltmain="$ac_aux_dir/ltmain.sh"
-
-
-  # We use sed instead of cat because bash on DJGPP gets confused if
-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-  # text mode, it properly converts lines to CR/LF.  This bash problem
-  # is reportedly fixed, but why not run on old versions too?
-  sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  case $xsi_shell in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result="${1##*/}"
-}
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-#   dirname:  Compute the dirname of FILE.  If nonempty,
-#             add APPEND to the result, otherwise set result
-#             to NONDIR_REPLACEMENT.
-#             value returned in "$func_dirname_result"
-#   basename: Compute filename of FILE.
-#             value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-  func_basename_result="${1##*/}"
-}
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-func_stripname ()
-{
-  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
-  # positional parameters, so assign one to ordinary parameter first.
-  func_stripname_result=${3}
-  func_stripname_result=${func_stripname_result#"${1}"}
-  func_stripname_result=${func_stripname_result%"${2}"}
-}
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=${1%%=*}
-  func_opt_split_arg=${1#*=}
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  case ${1} in
-    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
-    *)    func_lo2o_result=${1} ;;
-  esac
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=${1%.*}.lo
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=$(( $* ))
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=${#1}
-}
-
-_LT_EOF
-    ;;
-  *) # Bourne compatible functions.
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  # Extract subdirectory from the argument.
-  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
-  if test "X$func_dirname_result" = "X${1}"; then
-    func_dirname_result="${3}"
-  else
-    func_dirname_result="$func_dirname_result${2}"
-  fi
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
-}
-
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
-  case ${2} in
-    .*) func_stripname_result=`$ECHO "X${3}" \
-           | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
-    *)  func_stripname_result=`$ECHO "X${3}" \
-           | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
-  esac
-}
-
-# sed scripts:
-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
-my_sed_long_arg='1s/^-[^=]*=//'
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
-  func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'`
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=`expr "$@"`
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
-}
-
-_LT_EOF
-esac
-
-case $lt_shell_append in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$1+=\$2"
-}
-_LT_EOF
-    ;;
-  *)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$1=\$$1\$2"
-}
-
-_LT_EOF
-    ;;
-  esac
-
-
-  sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  mv -f "$cfgfile" "$ofile" ||
-    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
-  chmod +x "$ofile"
-
-
-    cat <<_LT_EOF >> "$ofile"
-
-# ### BEGIN LIBTOOL TAG CONFIG: CXX
-
-# The linker used to build libraries.
-LD=$lt_LD_CXX
-
-# Commands used to build an old-style archive.
-old_archive_cmds=$lt_old_archive_cmds_CXX
-
-# A language specific compiler.
-CC=$lt_compiler_CXX
-
-# Is the compiler the GNU compiler?
-with_gcc=$GCC_CXX
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_CXX
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_CXX
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_CXX
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_CXX
-
-# Whether or not to disallow shared libs when runtime libs are static.
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
-
-# Whether the compiler copes with passing no objects directly.
-compiler_needs_object=$lt_compiler_needs_object_CXX
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
-
-# Commands used to build a shared archive.
-archive_cmds=$lt_archive_cmds_CXX
-archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
-
-# Commands used to build a loadable module if different from building
-# a shared archive.
-module_cmds=$lt_module_cmds_CXX
-module_expsym_cmds=$lt_module_expsym_cmds_CXX
-
-# Whether we are building with GNU ld or not.
-with_gnu_ld=$lt_with_gnu_ld_CXX
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_CXX
-
-# Flag that enforces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_CXX
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
-
-# If ld is used when linking, flag to hardcode \$libdir into a binary
-# during linking.  This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX
-
-# Whether we need a single "-rpath" flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary.
-hardcode_direct=$hardcode_direct_CXX
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
-# library is relocated.
-hardcode_direct_absolute=$hardcode_direct_absolute_CXX
-
-# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-# into the resulting binary.
-hardcode_minus_L=$hardcode_minus_L_CXX
-
-# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-# into the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
-
-# Set to "yes" if building a shared library automatically hardcodes DIR
-# into the library and all subsequent libraries and executables linked
-# against it.
-hardcode_automatic=$hardcode_automatic_CXX
-
-# Set to yes if linker adds runtime paths of dependent libraries
-# to runtime path list.
-inherit_rpath=$inherit_rpath_CXX
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_CXX
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path=$lt_fix_srcfile_path_CXX
-
-# Set to "yes" if exported symbols are required.
-always_export_symbols=$always_export_symbols_CXX
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_CXX
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_CXX
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_CXX
-
-# Commands necessary for linking programs (against libraries) with templates.
-prelink_cmds=$lt_prelink_cmds_CXX
-
-# Specify filename containing input files.
-file_list_spec=$lt_file_list_spec_CXX
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_CXX
-
-# The directories searched by this compiler when creating a shared library.
-compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX
-
-# Dependencies to place before and after the objects being linked to
-# create a shared library.
-predep_objects=$lt_predep_objects_CXX
-postdep_objects=$lt_postdep_objects_CXX
-predeps=$lt_predeps_CXX
-postdeps=$lt_postdeps_CXX
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
-
-# ### END LIBTOOL TAG CONFIG: CXX
-_LT_EOF
-
- ;;
-
-  esac
-done # for ac_tag
-
-
-as_fn_exit 0
-_ACEOF
-ac_clean_files=$ac_clean_files_save
-
-test $ac_write_fail = 0 ||
-  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded.  So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status.  When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
-  ac_cs_success=:
-  ac_config_status_args=
-  test "$silent" = yes &&
-    ac_config_status_args="$ac_config_status_args --quiet"
-  exec 5>/dev/null
-  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
-  exec 5>>config.log
-  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
-  # would make configure fail if this is the last instruction.
-  $ac_cs_success || as_fn_exit 1
-fi
-if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
-fi
-
-
diff --git a/autom4te.cache/output.1 b/autom4te.cache/output.1
deleted file mode 100644
index 26594eb..0000000
--- a/autom4te.cache/output.1
+++ /dev/null
@@ -1,19664 +0,0 @@
-@%:@! /bin/sh
-@%:@ Guess values for system-dependent variables and create Makefiles.
-@%:@ Generated by GNU Autoconf 2.67 for mathgl 1.10.
-@%:@
-@%:@ Report bugs to <mathgl.abalakin at gmail.com>.
-@%:@ 
-@%:@ 
-@%:@ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-@%:@ 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-@%:@ Foundation, Inc.
-@%:@ 
-@%:@ 
-@%:@ This configure script is free software; the Free Software Foundation
-@%:@ gives unlimited permission to copy, distribute and modify it.
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in @%:@(
-  *posix*) :
-    set -o posix ;; @%:@(
-  *) :
-     ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in @%:@(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  PATH_SEPARATOR=:
-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
-    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
-      PATH_SEPARATOR=';'
-  }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-case $0 in @%:@((
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-  done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test "x$CONFIG_SHELL" = x; then
-  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '\${1+\"\$@\"}'='\"\$@\"'
-  setopt NO_GLOB_SUBST
-else
-  case \`(set -o) 2>/dev/null\` in @%:@(
-  *posix*) :
-    set -o posix ;; @%:@(
-  *) :
-     ;;
-esac
-fi
-"
-  as_required="as_fn_return () { (exit \$1); }
-as_fn_success () { as_fn_return 0; }
-as_fn_failure () { as_fn_return 1; }
-as_fn_ret_success () { return 0; }
-as_fn_ret_failure () { return 1; }
-
-exitcode=0
-as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
-  
-else
-  exitcode=1; echo positional parameters were not saved.
-fi
-test x\$exitcode = x0 || exit 1"
-  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
-  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
-  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
-  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1"
-  if (eval "$as_required") 2>/dev/null; then :
-  as_have_required=yes
-else
-  as_have_required=no
-fi
-  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
-  
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  as_found=:
-  case $as_dir in @%:@(
-	 /*)
-	   for as_base in sh bash ksh sh5; do
-	     # Try only shells that exist, to save several forks.
-	     as_shell=$as_dir/$as_base
-	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
-  CONFIG_SHELL=$as_shell as_have_required=yes
-		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
-  break 2
-fi
-fi
-	   done;;
-       esac
-  as_found=false
-done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
-	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
-  CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
-IFS=$as_save_IFS
-
-
-      if test "x$CONFIG_SHELL" != x; then :
-  # We cannot yet assume a decent shell, so we have to provide a
-	# neutralization value for shells without unset; and this also
-	# works around shells that cannot unset nonexistent variables.
-	BASH_ENV=/dev/null
-	ENV=/dev/null
-	(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-	export CONFIG_SHELL
-	exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
-fi
-
-    if test x$as_have_required = xno; then :
-  $as_echo "$0: This script requires a shell more modern than all"
-  $as_echo "$0: the shells that I found on your system."
-  if test x${ZSH_VERSION+set} = xset ; then
-    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
-    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
-  else
-    $as_echo "$0: Please tell bug-autoconf at gnu.org and
-$0: mathgl.abalakin at gmail.com about your system, including
-$0: any error possibly output before this message. Then
-$0: install a modern shell, or manually run the script
-$0: under such a shell if you do have one."
-  fi
-  exit 1
-fi
-fi
-fi
-SHELL=${CONFIG_SHELL-/bin/sh}
-export SHELL
-# Unset more variables known to interfere with behavior of common tools.
-CLICOLOR_FORCE= GREP_OPTIONS=
-unset CLICOLOR_FORCE GREP_OPTIONS
-
-## --------------------- ##
-## M4sh Shell Functions. ##
-## --------------------- ##
-@%:@ as_fn_unset VAR
-@%:@ ---------------
-@%:@ Portably unset VAR.
-as_fn_unset ()
-{
-  { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-@%:@ as_fn_set_status STATUS
-@%:@ -----------------------
-@%:@ Set @S|@? to STATUS, without forking.
-as_fn_set_status ()
-{
-  return $1
-} @%:@ as_fn_set_status
-
-@%:@ as_fn_exit STATUS
-@%:@ -----------------
-@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
-  set +e
-  as_fn_set_status $1
-  exit $1
-} @%:@ as_fn_exit
-
-@%:@ as_fn_mkdir_p
-@%:@ -------------
-@%:@ Create "@S|@as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || eval $as_mkdir_p || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} @%:@ as_fn_mkdir_p
-@%:@ as_fn_append VAR VALUE
-@%:@ ----------------------
-@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take
-@%:@ advantage of any shell optimizations that allow amortized linear growth over
-@%:@ repeated appends, instead of the typical quadratic growth present in naive
-@%:@ implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
-  eval 'as_fn_append ()
-  {
-    eval $1+=\$2
-  }'
-else
-  as_fn_append ()
-  {
-    eval $1=\$$1\$2
-  }
-fi # as_fn_append
-
-@%:@ as_fn_arith ARG...
-@%:@ ------------------
-@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the
-@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments
-@%:@ must be portable across @S|@(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
-  eval 'as_fn_arith ()
-  {
-    as_val=$(( $* ))
-  }'
-else
-  as_fn_arith ()
-  {
-    as_val=`expr "$@" || test $? -eq 1`
-  }
-fi # as_fn_arith
-
-
-@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD]
-@%:@ ----------------------------------------
-@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-@%:@ script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
-  as_status=$1; test $as_status -eq 0 && as_status=1
-  if test "$4"; then
-    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
-  fi
-  $as_echo "$as_me: error: $2" >&2
-  as_fn_exit $as_status
-} @%:@ as_fn_error
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
-  as_lineno_1=$LINENO as_lineno_1a=$LINENO
-  as_lineno_2=$LINENO as_lineno_2a=$LINENO
-  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
-  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
-  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in @%:@(((((
--n*)
-  case `echo 'xy\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  xy)  ECHO_C='\c';;
-  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
-       ECHO_T='	';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
-  if ln -s conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s='ln -s'
-    # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
-  elif ln conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s=ln
-  else
-    as_ln_s='cp -p'
-  fi
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p='mkdir -p "$as_dir"'
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-	test -d "$1/.";
-      else
-	case $1 in @%:@(
-	-*)set "./$1";;
-	esac;
-	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@((
-	???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-case X$lt_ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','`
-  ;;
-esac
-
-ECHO=${lt_ECHO-echo}
-if test "X$1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X$1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
-  # Yippee, $ECHO works!
-  :
-else
-  # Restart under the correct shell.
-  exec $SHELL "$0" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<_LT_EOF
-$*
-_LT_EOF
-  exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test -z "$lt_ECHO"; then
-  if test "X${echo_test_string+set}" != Xset; then
-    # find a string as large as possible, as long as the shell can cope with it
-    for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
-      # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-      if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
-	 { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
-      then
-        break
-      fi
-    done
-  fi
-
-  if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-     echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-     test "X$echo_testing_string" = "X$echo_test_string"; then
-    :
-  else
-    # The Solaris, AIX, and Digital Unix default echo programs unquote
-    # backslashes.  This makes it impossible to quote backslashes using
-    #   echo "$something" | sed 's/\\/\\\\/g'
-    #
-    # So, first we look for a working echo in the user's PATH.
-
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for dir in $PATH /usr/ucb; do
-      IFS="$lt_save_ifs"
-      if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-         test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        ECHO="$dir/echo"
-        break
-      fi
-    done
-    IFS="$lt_save_ifs"
-
-    if test "X$ECHO" = Xecho; then
-      # We didn't find a better echo, so look for alternatives.
-      if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        # This shell has a builtin print -r that does the trick.
-        ECHO='print -r'
-      elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
-	   test "X$CONFIG_SHELL" != X/bin/ksh; then
-        # If we have ksh, try running configure again with it.
-        ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-        export ORIGINAL_CONFIG_SHELL
-        CONFIG_SHELL=/bin/ksh
-        export CONFIG_SHELL
-        exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
-      else
-        # Try using printf.
-        ECHO='printf %s\n'
-        if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-	   echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-	   test "X$echo_testing_string" = "X$echo_test_string"; then
-	  # Cool, printf works
-	  :
-        elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
-	     test "X$echo_testing_string" = 'X\t' &&
-	     echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	     test "X$echo_testing_string" = "X$echo_test_string"; then
-	  CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-	  export CONFIG_SHELL
-	  SHELL="$CONFIG_SHELL"
-	  export SHELL
-	  ECHO="$CONFIG_SHELL $0 --fallback-echo"
-        elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
-	     test "X$echo_testing_string" = 'X\t' &&
-	     echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	     test "X$echo_testing_string" = "X$echo_test_string"; then
-	  ECHO="$CONFIG_SHELL $0 --fallback-echo"
-        else
-	  # maybe with a smaller string...
-	  prev=:
-
-	  for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
-	    if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
-	    then
-	      break
-	    fi
-	    prev="$cmd"
-	  done
-
-	  if test "$prev" != 'sed 50q "$0"'; then
-	    echo_test_string=`eval $prev`
-	    export echo_test_string
-	    exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
-	  else
-	    # Oops.  We lost completely, so just stick with echo.
-	    ECHO=echo
-	  fi
-        fi
-      fi
-    fi
-  fi
-fi
-
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-lt_ECHO=$ECHO
-if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
-   lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
-fi
-
-
-
-as_awk_strverscmp='
-  # Use only awk features that work with 7th edition Unix awk (1978).
-  # My, what an old awk you have, Mr. Solaris!
-  END {
-    while (length(v1) && length(v2)) {
-      # Set d1 to be the next thing to compare from v1, and likewise for d2.
-      # Normally this is a single character, but if v1 and v2 contain digits,
-      # compare them as integers and fractions as strverscmp does.
-      if (v1 ~ /^[0-9]/ && v2 ~ /^[0-9]/) {
-	# Split v1 and v2 into their leading digit string components d1 and d2,
-	# and advance v1 and v2 past the leading digit strings.
-	for (len1 = 1; substr(v1, len1 + 1) ~ /^[0-9]/; len1++) continue
-	for (len2 = 1; substr(v2, len2 + 1) ~ /^[0-9]/; len2++) continue
-	d1 = substr(v1, 1, len1); v1 = substr(v1, len1 + 1)
-	d2 = substr(v2, 1, len2); v2 = substr(v2, len2 + 1)
-	if (d1 ~ /^0/) {
-	  if (d2 ~ /^0/) {
-	    # Compare two fractions.
-	    while (d1 ~ /^0/ && d2 ~ /^0/) {
-	      d1 = substr(d1, 2); len1--
-	      d2 = substr(d2, 2); len2--
-	    }
-	    if (len1 != len2 && ! (len1 && len2 && substr(d1, 1, 1) == substr(d2, 1, 1))) {
-	      # The two components differ in length, and the common prefix
-	      # contains only leading zeros.  Consider the longer to be less.
-	      d1 = -len1
-	      d2 = -len2
-	    } else {
-	      # Otherwise, compare as strings.
-	      d1 = "x" d1
-	      d2 = "x" d2
-	    }
-	  } else {
-	    # A fraction is less than an integer.
-	    exit 1
-	  }
-	} else {
-	  if (d2 ~ /^0/) {
-	    # An integer is greater than a fraction.
-	    exit 2
-	  } else {
-	    # Compare two integers.
-	    d1 += 0
-	    d2 += 0
-	  }
-	}
-      } else {
-	# The normal case, without worrying about digits.
-	d1 = substr(v1, 1, 1); v1 = substr(v1, 2)
-	d2 = substr(v2, 1, 1); v2 = substr(v2, 2)
-      }
-      if (d1 < d2) exit 1
-      if (d1 > d2) exit 2
-    }
-    # Beware Solaris /usr/xgp4/bin/awk (at least through Solaris 10),
-    # which mishandles some comparisons of empty strings to integers.
-    if (length(v2)) exit 1
-    if (length(v1)) exit 2
-  }
-'
-
-test -n "$DJDIR" || exec 7<&0 </dev/null
-exec 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIB@&t at OBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-
-# Identity of this package.
-PACKAGE_NAME='mathgl'
-PACKAGE_TARNAME='mathgl'
-PACKAGE_VERSION='1.10'
-PACKAGE_STRING='mathgl 1.10'
-PACKAGE_BUGREPORT='mathgl.abalakin at gmail.com'
-PACKAGE_URL=''
-
-ac_unique_file="mgl"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-#  include <stdlib.h>
-# endif
-#endif
-#ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-#  include <memory.h>
-# endif
-# include <string.h>
-#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_subst_vars='am__EXEEXT_FALSE
-am__EXEEXT_TRUE
-LTLIBOBJS
-LIB@&t at OBJS
-AM_CXXFLAGS
-USE_DOCS_FALSE
-USE_DOCS_TRUE
-USE_TESTIO_FALSE
-USE_TESTIO_TRUE
-USE_OCTAVE_FALSE
-USE_OCTAVE_TRUE
-OCTAVE_INCFLAGS
-OCTAVE_ARCH
-OCTAVE
-USE_PYTHON_FALSE
-USE_PYTHON_TRUE
-pkgpyexecdir
-pyexecdir
-pkgpythondir
-pythondir
-PYTHON_PLATFORM
-PYTHON_EXEC_PREFIX
-PYTHON_PREFIX
-PYTHON_VERSION
-PYTHON
-HAVE_SWIG
-PYTHON_HEADERS
-USE_QT_FALSE
-USE_QT_TRUE
-QT_VERSION
-QT_LIBS
-QT_LDFLAGS
-QT_LFLAGS
-QT_CPPFLAGS
-QT_INCPATH
-QT_CXXFLAGS
-QT_CFLAGS
-QT_DEFINES
-QT_VERSION_MAJOR
-TMPDIR
-QT_PATH
-RCC
-UIC
-MOC
-QMAKE
-USE_WX_FALSE
-USE_WX_TRUE
-WX_LIBS
-WX_FLAGS
-USE_FLTK_FALSE
-USE_FLTK_TRUE
-FLTK_LIBS
-FLTK_FLAGS
-USE_JPEG_FALSE
-USE_JPEG_TRUE
-JPEG_LIBS
-JPEG_FLAGS
-PNG_LIBS
-USE_GIF_FALSE
-USE_GIF_TRUE
-GIF_LIBS
-GIF_FLAGS
-USE_HDF4_FALSE
-USE_HDF4_TRUE
-HDF4_LIBS
-HDF4_FLAGS
-USE_HDF5_FALSE
-USE_HDF5_TRUE
-HDF5_LIBS
-HDF5_FLAGS
-USE_GLUT_FALSE
-USE_GLUT_TRUE
-GLUT_FLAGS
-GLUT_LIBS
-GL_LIBS
-USE_GSL_FALSE
-USE_GSL_TRUE
-GSL_LIBS
-GSL_FLAGS
-USE_PTHREAD_FALSE
-USE_PTHREAD_TRUE
-PTHREAD_LIBS
-PTHREAD_FLAGS
-CXXCPP
-CPP
-OTOOL64
-OTOOL
-LIPO
-NMEDIT
-DSYMUTIL
-lt_ECHO
-RANLIB
-AR
-LN_S
-NM
-ac_ct_DUMPBIN
-DUMPBIN
-LD
-FGREP
-EGREP
-GREP
-SED
-LIBTOOL
-OBJDUMP
-DLLTOOL
-AS
-host_os
-host_vendor
-host_cpu
-host
-build_os
-build_vendor
-build_cpu
-build
-am__fastdepCXX_FALSE
-am__fastdepCXX_TRUE
-CXXDEPMODE
-ac_ct_CXX
-CXXFLAGS
-CXX
-am__fastdepCC_FALSE
-am__fastdepCC_TRUE
-CCDEPMODE
-AMDEPBACKSLASH
-AMDEP_FALSE
-AMDEP_TRUE
-am__quote
-am__include
-DEPDIR
-OBJEXT
-EXEEXT
-ac_ct_CC
-CPPFLAGS
-LDFLAGS
-CFLAGS
-CC
-am__untar
-am__tar
-AMTAR
-am__leading_dot
-SET_MAKE
-AWK
-mkdir_p
-MKDIR_P
-INSTALL_STRIP_PROGRAM
-STRIP
-install_sh
-MAKEINFO
-AUTOHEADER
-AUTOMAKE
-AUTOCONF
-ACLOCAL
-VERSION
-PACKAGE
-CYGPATH_W
-am__isrc
-INSTALL_DATA
-INSTALL_SCRIPT
-INSTALL_PROGRAM
-MGL_AGE
-MGL_REVISION
-MGL_CURRENT
-MGL_RELEASE
-target_alias
-host_alias
-build_alias
-LIBS
-ECHO_T
-ECHO_N
-ECHO_C
-DEFS
-mandir
-localedir
-libdir
-psdir
-pdfdir
-dvidir
-htmldir
-infodir
-docdir
-oldincludedir
-includedir
-localstatedir
-sharedstatedir
-sysconfdir
-datadir
-datarootdir
-libexecdir
-sbindir
-bindir
-program_transform_name
-prefix
-exec_prefix
-PACKAGE_URL
-PACKAGE_BUGREPORT
-PACKAGE_STRING
-PACKAGE_VERSION
-PACKAGE_TARNAME
-PACKAGE_NAME
-PATH_SEPARATOR
-SHELL'
-ac_subst_files=''
-ac_user_opts='
-enable_option_checking
-enable_dependency_tracking
-enable_shared
-enable_static
-with_pic
-enable_fast_install
-with_gnu_ld
-enable_libtool_lock
-enable_double
-enable_all
-enable_langall
-enable_pthread
-enable_gsl
-enable_glut
-enable_hdf5
-enable_hdf5_18
-enable_hdf4
-enable_gif
-enable_jpeg
-enable_fltk
-enable_wx
-enable_qt
-with_qt
-enable_python
-enable_octave
-enable_testio
-enable_docs
-'
-      ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-CXX
-CXXFLAGS
-CCC
-CPP
-CXXCPP
-TMPDIR'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-ac_unrecognized_opts=
-ac_unrecognized_sep=
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
-  # If the previous option needs an argument, assign it.
-  if test -n "$ac_prev"; then
-    eval $ac_prev=\$ac_option
-    ac_prev=
-    continue
-  fi
-
-  case $ac_option in
-  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
-  *=)   ac_optarg= ;;
-  *)    ac_optarg=yes ;;
-  esac
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case $ac_dashdash$ac_option in
-  --)
-    ac_dashdash=yes ;;
-
-  -bindir | --bindir | --bindi | --bind | --bin | --bi)
-    ac_prev=bindir ;;
-  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-    bindir=$ac_optarg ;;
-
-  -build | --build | --buil | --bui | --bu)
-    ac_prev=build_alias ;;
-  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-    build_alias=$ac_optarg ;;
-
-  -cache-file | --cache-file | --cache-fil | --cache-fi \
-  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
-    ac_prev=cache_file ;;
-  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
-  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
-    cache_file=$ac_optarg ;;
-
-  --config-cache | -C)
-    cache_file=config.cache ;;
-
-  -datadir | --datadir | --datadi | --datad)
-    ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=*)
-    datadir=$ac_optarg ;;
-
-  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
-  | --dataroo | --dataro | --datar)
-    ac_prev=datarootdir ;;
-  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
-  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
-    datarootdir=$ac_optarg ;;
-
-  -disable-* | --disable-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"enable_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval enable_$ac_useropt=no ;;
-
-  -docdir | --docdir | --docdi | --doc | --do)
-    ac_prev=docdir ;;
-  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
-    docdir=$ac_optarg ;;
-
-  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
-    ac_prev=dvidir ;;
-  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
-    dvidir=$ac_optarg ;;
-
-  -enable-* | --enable-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"enable_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval enable_$ac_useropt=\$ac_optarg ;;
-
-  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
-  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
-  | --exec | --exe | --ex)
-    ac_prev=exec_prefix ;;
-  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
-  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
-  | --exec=* | --exe=* | --ex=*)
-    exec_prefix=$ac_optarg ;;
-
-  -gas | --gas | --ga | --g)
-    # Obsolete; use --with-gas.
-    with_gas=yes ;;
-
-  -help | --help | --hel | --he | -h)
-    ac_init_help=long ;;
-  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
-    ac_init_help=recursive ;;
-  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
-    ac_init_help=short ;;
-
-  -host | --host | --hos | --ho)
-    ac_prev=host_alias ;;
-  -host=* | --host=* | --hos=* | --ho=*)
-    host_alias=$ac_optarg ;;
-
-  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
-    ac_prev=htmldir ;;
-  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
-  | --ht=*)
-    htmldir=$ac_optarg ;;
-
-  -includedir | --includedir | --includedi | --included | --include \
-  | --includ | --inclu | --incl | --inc)
-    ac_prev=includedir ;;
-  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
-  | --includ=* | --inclu=* | --incl=* | --inc=*)
-    includedir=$ac_optarg ;;
-
-  -infodir | --infodir | --infodi | --infod | --info | --inf)
-    ac_prev=infodir ;;
-  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-    infodir=$ac_optarg ;;
-
-  -libdir | --libdir | --libdi | --libd)
-    ac_prev=libdir ;;
-  -libdir=* | --libdir=* | --libdi=* | --libd=*)
-    libdir=$ac_optarg ;;
-
-  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
-  | --libexe | --libex | --libe)
-    ac_prev=libexecdir ;;
-  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
-  | --libexe=* | --libex=* | --libe=*)
-    libexecdir=$ac_optarg ;;
-
-  -localedir | --localedir | --localedi | --localed | --locale)
-    ac_prev=localedir ;;
-  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
-    localedir=$ac_optarg ;;
-
-  -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst | --locals)
-    ac_prev=localstatedir ;;
-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
-    localstatedir=$ac_optarg ;;
-
-  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
-    ac_prev=mandir ;;
-  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-    mandir=$ac_optarg ;;
-
-  -nfp | --nfp | --nf)
-    # Obsolete; use --without-fp.
-    with_fp=no ;;
-
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c | -n)
-    no_create=yes ;;
-
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
-    no_recursion=yes ;;
-
-  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
-  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
-  | --oldin | --oldi | --old | --ol | --o)
-    ac_prev=oldincludedir ;;
-  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
-  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
-  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-    oldincludedir=$ac_optarg ;;
-
-  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
-    ac_prev=prefix ;;
-  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-    prefix=$ac_optarg ;;
-
-  -program-prefix | --program-prefix | --program-prefi | --program-pref \
-  | --program-pre | --program-pr | --program-p)
-    ac_prev=program_prefix ;;
-  -program-prefix=* | --program-prefix=* | --program-prefi=* \
-  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-    program_prefix=$ac_optarg ;;
-
-  -program-suffix | --program-suffix | --program-suffi | --program-suff \
-  | --program-suf | --program-su | --program-s)
-    ac_prev=program_suffix ;;
-  -program-suffix=* | --program-suffix=* | --program-suffi=* \
-  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-    program_suffix=$ac_optarg ;;
-
-  -program-transform-name | --program-transform-name \
-  | --program-transform-nam | --program-transform-na \
-  | --program-transform-n | --program-transform- \
-  | --program-transform | --program-transfor \
-  | --program-transfo | --program-transf \
-  | --program-trans | --program-tran \
-  | --progr-tra | --program-tr | --program-t)
-    ac_prev=program_transform_name ;;
-  -program-transform-name=* | --program-transform-name=* \
-  | --program-transform-nam=* | --program-transform-na=* \
-  | --program-transform-n=* | --program-transform-=* \
-  | --program-transform=* | --program-transfor=* \
-  | --program-transfo=* | --program-transf=* \
-  | --program-trans=* | --program-tran=* \
-  | --progr-tra=* | --program-tr=* | --program-t=*)
-    program_transform_name=$ac_optarg ;;
-
-  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
-    ac_prev=pdfdir ;;
-  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
-    pdfdir=$ac_optarg ;;
-
-  -psdir | --psdir | --psdi | --psd | --ps)
-    ac_prev=psdir ;;
-  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
-    psdir=$ac_optarg ;;
-
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil)
-    silent=yes ;;
-
-  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
-    ac_prev=sbindir ;;
-  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
-  | --sbi=* | --sb=*)
-    sbindir=$ac_optarg ;;
-
-  -sharedstatedir | --sharedstatedir | --sharedstatedi \
-  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
-  | --sharedst | --shareds | --shared | --share | --shar \
-  | --sha | --sh)
-    ac_prev=sharedstatedir ;;
-  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
-  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
-  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
-  | --sha=* | --sh=*)
-    sharedstatedir=$ac_optarg ;;
-
-  -site | --site | --sit)
-    ac_prev=site ;;
-  -site=* | --site=* | --sit=*)
-    site=$ac_optarg ;;
-
-  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
-    ac_prev=srcdir ;;
-  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-    srcdir=$ac_optarg ;;
-
-  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
-  | --syscon | --sysco | --sysc | --sys | --sy)
-    ac_prev=sysconfdir ;;
-  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
-  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-    sysconfdir=$ac_optarg ;;
-
-  -target | --target | --targe | --targ | --tar | --ta | --t)
-    ac_prev=target_alias ;;
-  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-    target_alias=$ac_optarg ;;
-
-  -v | -verbose | --verbose | --verbos | --verbo | --verb)
-    verbose=yes ;;
-
-  -version | --version | --versio | --versi | --vers | -V)
-    ac_init_version=: ;;
-
-  -with-* | --with-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"with_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval with_$ac_useropt=\$ac_optarg ;;
-
-  -without-* | --without-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"with_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval with_$ac_useropt=no ;;
-
-  --x)
-    # Obsolete; use --with-x.
-    with_x=yes ;;
-
-  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
-  | --x-incl | --x-inc | --x-in | --x-i)
-    ac_prev=x_includes ;;
-  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
-  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
-    x_includes=$ac_optarg ;;
-
-  -x-libraries | --x-libraries | --x-librarie | --x-librari \
-  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
-    ac_prev=x_libraries ;;
-  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
-  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-    x_libraries=$ac_optarg ;;
-
-  -*) as_fn_error $? "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information"
-    ;;
-
-  *=*)
-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-    # Reject names that are not valid shell variable names.
-    case $ac_envvar in #(
-      '' | [0-9]* | *[!_$as_cr_alnum]* )
-      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
-    esac
-    eval $ac_envvar=\$ac_optarg
-    export $ac_envvar ;;
-
-  *)
-    # FIXME: should be removed in autoconf 3.0.
-    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
-    ;;
-
-  esac
-done
-
-if test -n "$ac_prev"; then
-  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  as_fn_error $? "missing argument to $ac_option"
-fi
-
-if test -n "$ac_unrecognized_opts"; then
-  case $enable_option_checking in
-    no) ;;
-    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
-    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
-  esac
-fi
-
-# Check all directory arguments for consistency.
-for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
-		datadir sysconfdir sharedstatedir localstatedir includedir \
-		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir
-do
-  eval ac_val=\$$ac_var
-  # Remove trailing slashes.
-  case $ac_val in
-    */ )
-      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
-      eval $ac_var=\$ac_val;;
-  esac
-  # Be sure to have absolute directory names.
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* )  continue;;
-    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
-  esac
-  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
-  if test "x$build_alias" = x; then
-    cross_compiling=maybe
-    $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
-    If a cross compiler is detected then cross compile mode will be used" >&2
-  elif test "x$build_alias" != "x$host_alias"; then
-    cross_compiling=yes
-  fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
-  as_fn_error $? "working directory cannot be determined"
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-  as_fn_error $? "pwd does not report name of working directory"
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
-  ac_srcdir_defaulted=yes
-  # Try the directory containing this script, then the parent directory.
-  ac_confdir=`$as_dirname -- "$as_myself" ||
-$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_myself" : 'X\(//\)[^/]' \| \
-	 X"$as_myself" : 'X\(//\)$' \| \
-	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-  srcdir=$ac_confdir
-  if test ! -r "$srcdir/$ac_unique_file"; then
-    srcdir=..
-  fi
-else
-  ac_srcdir_defaulted=no
-fi
-if test ! -r "$srcdir/$ac_unique_file"; then
-  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
-  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
-	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
-	pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
-  srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
-  eval ac_env_${ac_var}_set=\${${ac_var}+set}
-  eval ac_env_${ac_var}_value=\$${ac_var}
-  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
-  eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
-  # 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.
-  cat <<_ACEOF
-\`configure' configures mathgl 1.10 to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE.  See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
-  -h, --help              display this help and exit
-      --help=short        display options specific to this package
-      --help=recursive    display the short help of all the included packages
-  -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking ...' messages
-      --cache-file=FILE   cache test results in FILE [disabled]
-  -C, --config-cache      alias for \`--cache-file=config.cache'
-  -n, --no-create         do not create output files
-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
-
-Installation directories:
-  --prefix=PREFIX         install architecture-independent files in PREFIX
-                          @<:@@S|@ac_default_prefix@:>@
-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-                          @<:@PREFIX@:>@
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
-  --bindir=DIR            user executables [EPREFIX/bin]
-  --sbindir=DIR           system admin executables [EPREFIX/sbin]
-  --libexecdir=DIR        program executables [EPREFIX/libexec]
-  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
-  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
-  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
-  --libdir=DIR            object code libraries [EPREFIX/lib]
-  --includedir=DIR        C header files [PREFIX/include]
-  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
-  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
-  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
-  --infodir=DIR           info documentation [DATAROOTDIR/info]
-  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
-  --mandir=DIR            man documentation [DATAROOTDIR/man]
-  --docdir=DIR            documentation root @<:@DATAROOTDIR/doc/mathgl@:>@
-  --htmldir=DIR           html documentation [DOCDIR]
-  --dvidir=DIR            dvi documentation [DOCDIR]
-  --pdfdir=DIR            pdf documentation [DOCDIR]
-  --psdir=DIR             ps documentation [DOCDIR]
-_ACEOF
-
-  cat <<\_ACEOF
-
-Program names:
-  --program-prefix=PREFIX            prepend PREFIX to installed program names
-  --program-suffix=SUFFIX            append SUFFIX to installed program names
-  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
-
-System types:
-  --build=BUILD     configure for building on BUILD [guessed]
-  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-  case $ac_init_help in
-     short | recursive ) echo "Configuration of mathgl 1.10:";;
-   esac
-  cat <<\_ACEOF
-
-Optional Features:
-  --disable-option-checking  ignore unrecognized --enable/--with options
-  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --disable-dependency-tracking  speeds up one-time build
-  --enable-dependency-tracking   do not reject slow dependency extractors
-  --enable-shared@<:@=PKGS@:>@  build shared libraries @<:@default=yes@:>@
-  --enable-static@<:@=PKGS@:>@  build static libraries @<:@default=yes@:>@
-  --enable-fast-install@<:@=PKGS@:>@ 
-                          optimize for fast installation @<:@default=yes@:>@
-  --disable-libtool-lock  avoid locking (might break parallel builds)
-  --enable-double    Turn on double precision in MathGL library
-  --enable-all    Turn on all features
-  --enable-langall    Turn on all language interfaces
-  --enable-pthread    Turn on pthread support in MathGL library
-  --enable-gsl    Turn on gsl functions
-  --enable-glut    Turn on glut
-  --enable-hdf5    Turn on hdf5
-  --enable-hdf5_18    Turn on hdf5 version 1.8
-  --enable-hdf4    Turn on hdf4
-  --enable-gif    Turn on gif
-  --enable-jpeg    Turn on jpeg
-  --enable-fltk    Turn on fltk
-  --enable-wx    Turn on wxWidget
-  --enable-qt    Turn on Qt
-  --enable-python    Turn on interface to python
-  --enable-octave    Turn on interface to octave
-  --enable-testio    Turn on testio
-  --enable-docs    Turn on documentation building
-
-Optional Packages:
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-pic              try to use only PIC/non-PIC objects @<:@default=use
-                          both@:>@
-  --with-gnu-ld           assume the C compiler uses GNU ld @<:@default=no@:>@
-  --with-qt               Path to Qt @<:@Look in PATH and /usr/local/Trolltech@:>@
-
-Some influential environment variables:
-  CC          C compiler command
-  CFLAGS      C compiler flags
-  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
-              nonstandard directory <lib dir>
-  LIBS        libraries to pass to the linker, e.g. -l<library>
-  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
-              you have headers in a nonstandard directory <include dir>
-  CXX         C++ compiler command
-  CXXFLAGS    C++ compiler flags
-  CPP         C preprocessor
-  CXXCPP      C++ preprocessor
-  TMPDIR      A temporary directory with write access @<:@/tmp@:>@
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to <mathgl.abalakin at gmail.com>.
-_ACEOF
-ac_status=$?
-fi
-
-if test "$ac_init_help" = "recursive"; then
-  # If there are subdirs, report their specific --help.
-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d "$ac_dir" ||
-      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
-      continue
-    ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
-  case $ac_top_builddir_sub in
-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-  esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
-  .)  # We are building in place.
-    ac_srcdir=.
-    ac_top_srcdir=$ac_top_builddir_sub
-    ac_abs_top_srcdir=$ac_pwd ;;
-  [\\/]* | ?:[\\/]* )  # Absolute name.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir
-    ac_abs_top_srcdir=$srcdir ;;
-  *) # Relative name.
-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_build_prefix$srcdir
-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-    cd "$ac_dir" || { ac_status=$?; continue; }
-    # Check for guested configure.
-    if test -f "$ac_srcdir/configure.gnu"; then
-      echo &&
-      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
-    elif test -f "$ac_srcdir/configure"; then
-      echo &&
-      $SHELL "$ac_srcdir/configure" --help=recursive
-    else
-      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-    fi || ac_status=$?
-    cd "$ac_pwd" || { ac_status=$?; break; }
-  done
-fi
-
-test -n "$ac_init_help" && exit $ac_status
-if $ac_init_version; then
-  cat <<\_ACEOF
-mathgl configure 1.10
-generated by GNU Autoconf 2.67
-
-Copyright (C) 2010 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
-  exit
-fi
-
-## ------------------------ ##
-## Autoconf initialization. ##
-## ------------------------ ##
-
-@%:@ ac_fn_c_try_compile LINENO
-@%:@ --------------------------
-@%:@ Try to compile conftest. at S|@ac_ext, and return whether this succeeded.
-ac_fn_c_try_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext
-  if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-  as_fn_set_status $ac_retval
-
-} @%:@ ac_fn_c_try_compile
-
-@%:@ ac_fn_cxx_try_compile LINENO
-@%:@ ----------------------------
-@%:@ Try to compile conftest. at S|@ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext
-  if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-  as_fn_set_status $ac_retval
-
-} @%:@ ac_fn_cxx_try_compile
-
-@%:@ ac_fn_c_try_link LINENO
-@%:@ -----------------------
-@%:@ Try to link conftest. at S|@ac_ext, and return whether this succeeded.
-ac_fn_c_try_link ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext conftest$ac_exeext
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
-  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
-  # interfere with the next link command; also delete a directory that is
-  # left behind by Apple's compiler.  We do this before executing the actions.
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-  as_fn_set_status $ac_retval
-
-} @%:@ ac_fn_c_try_link
-
-@%:@ ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
-@%:@ -------------------------------------------------------
-@%:@ Tests whether HEADER exists and can be compiled using the include files in
-@%:@ INCLUDES, setting the cache variable VAR accordingly.
-ac_fn_c_check_header_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-@%:@include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$3=yes"
-else
-  eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-
-} @%:@ ac_fn_c_check_header_compile
-
-@%:@ ac_fn_c_try_cpp LINENO
-@%:@ ----------------------
-@%:@ Try to preprocess conftest. at S|@ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } > conftest.i && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-    ac_retval=1
-fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-  as_fn_set_status $ac_retval
-
-} @%:@ ac_fn_c_try_cpp
-
-@%:@ ac_fn_c_try_run LINENO
-@%:@ ----------------------
-@%:@ Try to link conftest. at S|@ac_ext, and return whether this succeeded. Assumes
-@%:@ that executables *can* be run.
-ac_fn_c_try_run ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-       $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_retval=$ac_status
-fi
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-  as_fn_set_status $ac_retval
-
-} @%:@ ac_fn_c_try_run
-
-@%:@ ac_fn_c_check_func LINENO FUNC VAR
-@%:@ ----------------------------------
-@%:@ Tests whether FUNC exists, setting the cache variable VAR accordingly
-ac_fn_c_check_func ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $2 innocuous_$2
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $2 (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $2
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $2 ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$2 || defined __stub___$2
-choke me
-#endif
-
-int
-main ()
-{
-return $2 ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$3=yes"
-else
-  eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-
-} @%:@ ac_fn_c_check_func
-
-@%:@ ac_fn_cxx_try_cpp LINENO
-@%:@ ------------------------
-@%:@ Try to preprocess conftest. at S|@ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_cpp ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } > conftest.i && {
-	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-    ac_retval=1
-fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-  as_fn_set_status $ac_retval
-
-} @%:@ ac_fn_cxx_try_cpp
-
-@%:@ ac_fn_cxx_try_link LINENO
-@%:@ -------------------------
-@%:@ Try to link conftest. at S|@ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_link ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext conftest$ac_exeext
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
-  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
-  # interfere with the next link command; also delete a directory that is
-  # left behind by Apple's compiler.  We do this before executing the actions.
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-  as_fn_set_status $ac_retval
-
-} @%:@ ac_fn_cxx_try_link
-
-@%:@ ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
-@%:@ -------------------------------------------------------
-@%:@ Tests whether HEADER exists, giving a warning if it cannot be compiled using
-@%:@ the include files in INCLUDES and setting the cache variable VAR
-@%:@ accordingly.
-ac_fn_c_check_header_mongrel ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if eval "test \"\${$3+set}\"" = set; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
-  $as_echo_n "(cached) " >&6
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
-$as_echo_n "checking $2 usability... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-@%:@include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_header_compiler=yes
-else
-  ac_header_compiler=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
-$as_echo_n "checking $2 presence... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-@%:@include <$2>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  ac_header_preproc=yes
-else
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
-  yes:no: )
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( $as_echo "## ---------------------------------------- ##
-## Report this to mathgl.abalakin at gmail.com ##
-## ---------------------------------------- ##"
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  eval "$3=\$ac_header_compiler"
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-
-} @%:@ ac_fn_c_check_header_mongrel
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by mathgl $as_me 1.10, which was
-generated by GNU Autoconf 2.67.  Invocation command line was
-
-  $ $0 $@
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
-
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    $as_echo "PATH: $as_dir"
-  done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
-  for ac_arg
-  do
-    case $ac_arg in
-    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-    | -silent | --silent | --silen | --sile | --sil)
-      continue ;;
-    *\'*)
-      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    case $ac_pass in
-    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
-    2)
-      as_fn_append ac_configure_args1 " '$ac_arg'"
-      if test $ac_must_keep_next = true; then
-	ac_must_keep_next=false # Got value, back to normal.
-      else
-	case $ac_arg in
-	  *=* | --config-cache | -C | -disable-* | --disable-* \
-	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
-	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
-	  | -with-* | --with-* | -without-* | --without-* | --x)
-	    case "$ac_configure_args0 " in
-	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
-	    esac
-	    ;;
-	  -* ) ac_must_keep_next=true ;;
-	esac
-      fi
-      as_fn_append ac_configure_args " '$ac_arg'"
-      ;;
-    esac
-  done
-done
-{ ac_configure_args0=; unset ac_configure_args0;}
-{ ac_configure_args1=; unset ac_configure_args1;}
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log.  We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
-  # Save into config.log some information that might help in debugging.
-  {
-    echo
-
-    $as_echo "## ---------------- ##
-## Cache variables. ##
-## ---------------- ##"
-    echo
-    # The following way of writing the cache mishandles newlines in values,
-(
-  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) { eval $ac_var=; unset $ac_var;} ;;
-      esac ;;
-    esac
-  done
-  (set) 2>&1 |
-    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      sed -n \
-	"s/'\''/'\''\\\\'\'''\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
-      ;; #(
-    *)
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-)
-    echo
-
-    $as_echo "## ----------------- ##
-## Output variables. ##
-## ----------------- ##"
-    echo
-    for ac_var in $ac_subst_vars
-    do
-      eval ac_val=\$$ac_var
-      case $ac_val in
-      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-      esac
-      $as_echo "$ac_var='\''$ac_val'\''"
-    done | sort
-    echo
-
-    if test -n "$ac_subst_files"; then
-      $as_echo "## ------------------- ##
-## File substitutions. ##
-## ------------------- ##"
-      echo
-      for ac_var in $ac_subst_files
-      do
-	eval ac_val=\$$ac_var
-	case $ac_val in
-	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-	esac
-	$as_echo "$ac_var='\''$ac_val'\''"
-      done | sort
-      echo
-    fi
-
-    if test -s confdefs.h; then
-      $as_echo "## ----------- ##
-## confdefs.h. ##
-## ----------- ##"
-      echo
-      cat confdefs.h
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      $as_echo "$as_me: caught signal $ac_signal"
-    $as_echo "$as_me: exit $exit_status"
-  } >&5
-  rm -f core *.core core.conftest.* &&
-    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
-    exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-$as_echo "/* confdefs.h */" > confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-@%:@define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-@%:@define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-@%:@define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-@%:@define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
-if test -n "$CONFIG_SITE"; then
-  # We do not want a PATH search for config.site.
-  case $CONFIG_SITE in @%:@((
-    -*)  ac_site_file1=./$CONFIG_SITE;;
-    */*) ac_site_file1=$CONFIG_SITE;;
-    *)   ac_site_file1=./$CONFIG_SITE;;
-  esac
-elif test "x$prefix" != xNONE; then
-  ac_site_file1=$prefix/share/config.site
-  ac_site_file2=$prefix/etc/config.site
-else
-  ac_site_file1=$ac_default_prefix/share/config.site
-  ac_site_file2=$ac_default_prefix/etc/config.site
-fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
-do
-  test "x$ac_site_file" = xNONE && continue
-  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file" \
-      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5 ; }
-  fi
-done
-
-if test -r "$cache_file"; then
-  # Some versions of bash will fail to source /dev/null (special files
-  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
-  if test /dev/null != "$cache_file" && test -f "$cache_file"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . "$cache_file";;
-      *)                      . "./$cache_file";;
-    esac
-  fi
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
-  >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
-  eval ac_old_set=\$ac_cv_env_${ac_var}_set
-  eval ac_new_set=\$ac_env_${ac_var}_set
-  eval ac_old_val=\$ac_cv_env_${ac_var}_value
-  eval ac_new_val=\$ac_env_${ac_var}_value
-  case $ac_old_set,$ac_new_set in
-    set,)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-	# differences in whitespace do not lead to failure.
-	ac_old_val_w=`echo x $ac_old_val`
-	ac_new_val_w=`echo x $ac_new_val`
-	if test "$ac_old_val_w" != "$ac_new_val_w"; then
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-	  ac_cache_corrupted=:
-	else
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
-	  eval $ac_var=\$ac_old_val
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
-$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
-$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 
-fi
-## -------------------- ##
-## Main body of script. ##
-## -------------------- ##
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-MGL_RELEASE=1.10
-
-
-
-ac_aux_dir=
-for ac_dir in config "$srcdir"/config; do
-  if test -f "$ac_dir/install-sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f "$ac_dir/install.sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f "$ac_dir/shtool"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  as_fn_error $? "cannot find install-sh, install.sh, or shtool in config \"$srcdir\"/config" "$LINENO" 5 
-fi
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
-
-
-
-ac_config_headers="$ac_config_headers include/mgl/config.h"
-
-
-#MGL_RELEASE=1.4
-#AC_SUBST(MGL_RELEASE)
-
-# LT Version numbers, remember to change them just *before* a release.
-#   (Interfaces removed:    CURRENT++, AGE=0, REVISION=0)
-#   (Interfaces added:      CURRENT++, AGE++, REVISION=0)
-#   (No interfaces changed:                   REVISION++)
-MGL_CURRENT=5
-MGL_REVISION=0
-MGL_AGE=0
-
-
-
-
-am__api_version='1.11'
-
-# Find a good install program.  We prefer a C program (faster),
-# so one script is as good as another.  But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in @%:@((
-  ./ | .// | /[cC]/* | \
-  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
-  /usr/ucb/* ) ;;
-  *)
-    # OSF1 and SCO ODT 3.0 have their own names for install.
-    # Don't use installbsd from OSF since it installs stuff as root
-    # by default.
-    for ac_prog in ginstall scoinst install; do
-      for ac_exec_ext in '' $ac_executable_extensions; do
-	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
-	  if test $ac_prog = install &&
-	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-	    # AIX install.  It has an incompatible calling convention.
-	    :
-	  elif test $ac_prog = install &&
-	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-	    # program-specific install script used by HP pwplus--don't use.
-	    :
-	  else
-	    rm -rf conftest.one conftest.two conftest.dir
-	    echo one > conftest.one
-	    echo two > conftest.two
-	    mkdir conftest.dir
-	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
-	      test -s conftest.one && test -s conftest.two &&
-	      test -s conftest.dir/conftest.one &&
-	      test -s conftest.dir/conftest.two
-	    then
-	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-	      break 3
-	    fi
-	  fi
-	fi
-      done
-    done
-    ;;
-esac
-
-  done
-IFS=$as_save_IFS
-
-rm -rf conftest.one conftest.two conftest.dir
-
-fi
-  if test "${ac_cv_path_install+set}" = set; then
-    INSTALL=$ac_cv_path_install
-  else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for INSTALL within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    INSTALL=$ac_install_sh
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
-$as_echo_n "checking whether build environment is sane... " >&6; }
-# Just in case
-sleep 1
-echo timestamp > conftest.file
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name.  Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
-  *[\\\"\#\$\&\'\`$am_lf]*)
-    as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;;
-esac
-case $srcdir in
-  *[\\\"\#\$\&\'\`$am_lf\ \	]*)
-    as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;;
-esac
-
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments.  Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
-   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-   if test "$*" = "X"; then
-      # -L didn't work.
-      set X `ls -t "$srcdir/configure" conftest.file`
-   fi
-   rm -f conftest.file
-   if test "$*" != "X $srcdir/configure conftest.file" \
-      && test "$*" != "X conftest.file $srcdir/configure"; then
-
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
-alias in your environment" "$LINENO" 5 
-   fi
-
-   test "$2" = conftest.file
-   )
-then
-   # Ok.
-   :
-else
-   as_fn_error $? "newly created file is older than distributed files!
-Check your system clock" "$LINENO" 5 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-test "$program_prefix" != NONE &&
-  program_transform_name="s&^&$program_prefix&;$program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
-  program_transform_name="s&\$&$program_suffix&;$program_transform_name"
-# Double any \ or $.
-# By default was `s,x,x', remove it if useless.
-ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
-program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
-
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-
-if test x"${MISSING+set}" != xset; then
-  case $am_aux_dir in
-  *\ * | *\	*)
-    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
-  *)
-    MISSING="\${SHELL} $am_aux_dir/missing" ;;
-  esac
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
-  am_missing_run="$MISSING --run "
-else
-  am_missing_run=
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
-fi
-
-if test x"${install_sh}" != xset; then
-  case $am_aux_dir in
-  *\ * | *\	*)
-    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
-  *)
-    install_sh="\${SHELL} $am_aux_dir/install-sh"
-  esac
-fi
-
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'.  However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-if test "$cross_compiling" != no; then
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$STRIP"; then
-  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
-  ac_ct_STRIP=$STRIP
-  # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_STRIP"; then
-  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_STRIP="strip"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_STRIP" = x; then
-    STRIP=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    STRIP=$ac_ct_STRIP
-  fi
-else
-  STRIP="$ac_cv_prog_STRIP"
-fi
-
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
-$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
-if test -z "$MKDIR_P"; then
-  if test "${ac_cv_path_mkdir+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in mkdir gmkdir; do
-	 for ac_exec_ext in '' $ac_executable_extensions; do
-	   { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
-	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
-	     'mkdir (GNU coreutils) '* | \
-	     'mkdir (coreutils) '* | \
-	     'mkdir (fileutils) '4.1*)
-	       ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
-	       break 3;;
-	   esac
-	 done
-       done
-  done
-IFS=$as_save_IFS
-
-fi
-
-  test -d ./--version && rmdir ./--version
-  if test "${ac_cv_path_mkdir+set}" = set; then
-    MKDIR_P="$ac_cv_path_mkdir -p"
-  else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for MKDIR_P within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    MKDIR_P="$ac_install_sh -d"
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
-$as_echo "$MKDIR_P" >&6; }
-
-mkdir_p="$MKDIR_P"
-case $mkdir_p in
-  [\\/$]* | ?:[\\/]*) ;;
-  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-
-for ac_prog in gawk mawk nawk awk
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AWK+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$AWK"; then
-  ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_AWK="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$AWK" && break
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
-	@echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
-  *@@@%%%=?*=@@@%%%*)
-    eval ac_cv_prog_make_${ac_make}_set=yes;;
-  *)
-    eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-  SET_MAKE=
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-  SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
-  am__leading_dot=.
-else
-  am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
-  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
-  # is not polluted with repeated "-I."
-  am__isrc=' -I$(srcdir)'
-  # test to see if srcdir already configured
-  if test -f $srcdir/config.status; then
-    as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 
-  fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
-  if (cygpath --version) >/dev/null 2>/dev/null; then
-    CYGPATH_W='cygpath -w'
-  else
-    CYGPATH_W=echo
-  fi
-fi
-
-
-# Define the identity of the package.
- PACKAGE='mathgl'
- VERSION='1.10'
-
-
-cat >>confdefs.h <<_ACEOF
-@%:@define PACKAGE "$PACKAGE"
-_ACEOF
-
- 
-cat >>confdefs.h <<_ACEOF
-@%:@define VERSION "$VERSION"
-_ACEOF
-
-# Some tools Automake needs.
-
-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
-
-
-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
-
-
-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
-
-
-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
-
-
-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-
-# We need awk for the "check" target.  The system "awk" is bad on
-# some platforms.
-# Always define AMTAR for backward compatibility.
-
-AMTAR=${AMTAR-"${am_missing_run}tar"}
-
-am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
-
-
-
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CC="gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-else
-  CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
-          if test -n "$ac_tool_prefix"; then
-    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="${ac_tool_prefix}cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  fi
-fi
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-       ac_prog_rejected=yes
-       continue
-     fi
-    ac_cv_prog_CC="cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $@%:@ != 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
-  fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl.exe
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$CC" && break
-  done
-fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in cl.exe
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CC="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CC" && break
-done
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5 ; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
-
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-
-# The possible output files:
-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
-
-ac_rmfiles=
-for ac_file in $ac_files
-do
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
-    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
-  esac
-done
-rm -f $ac_rmfiles
-
-if { { ac_try="$ac_link_default"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link_default") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
-  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile.  We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
-	;;
-    [ab].out )
-	# We found the default executable, but exeext='' is most
-	# certainly right.
-	break;;
-    *.* )
-	if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
-	then :; else
-	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	fi
-	# We set ac_cv_exeext here because the later test for it is not
-	# safe: cross compilers may not add the suffix if given an `-o'
-	# argument, so we may need to know it at that point already.
-	# Even if this section looks crufty: it has the advantage of
-	# actually working.
-	break;;
-    * )
-	break;;
-  esac
-done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
-
-else
-  ac_file=''
-fi
-if test -z "$ac_file"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5 ; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
-ac_exeext=$ac_cv_exeext
-
-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
-if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
-  # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	  break;;
-    * ) break;;
-  esac
-done
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5 ; }
-fi
-rm -f conftest conftest$ac_cv_exeext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-@%:@include <stdio.h>
-int
-main ()
-{
-FILE *f = fopen ("conftest.out", "w");
- return ferror (f) || fclose (f) != 0;
-
-  ;
-  return 0;
-}
-_ACEOF
-ac_clean_files="$ac_clean_files conftest.out"
-# Check that the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
-if test "$cross_compiling" != yes; then
-  { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-  if { ac_try='./conftest$ac_cv_exeext'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then
-    cross_compiling=no
-  else
-    if test "$cross_compiling" = maybe; then
-	cross_compiling=yes
-    else
-	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5 ; }
-    fi
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
-
-rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if test "${ac_cv_objext+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
-  for ac_file in conftest.o conftest.obj conftest.*; do
-  test -f "$ac_file" || continue;
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
-    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
-       break;;
-  esac
-done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5 ; }
-fi
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
-else
-  ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GCC=yes
-else
-  GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_c_werror_flag=$ac_c_werror_flag
-   ac_c_werror_flag=yes
-   ac_cv_prog_cc_g=no
-   CFLAGS="-g"
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_g=yes
-else
-  CFLAGS=""
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  
-else
-  ac_c_werror_flag=$ac_save_c_werror_flag
-	 CFLAGS="-g"
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not '\xHH' hex character constants.
-   These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std is added to get
-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-   array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std.  */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
-   inside strings and character constants.  */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
-  test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
-  x)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
-  xno)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
-  *)
-    CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-  
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-DEPDIR="${am__leading_dot}deps"
-
-ac_config_commands="$ac_config_commands depfiles"
-
-
-am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
-	@echo this is the am__doit target
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
-$as_echo_n "checking for style of include used by $am_make... " >&6; }
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
-  am__include=include
-  am__quote=
-  _am_result=GNU
-  ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
-   echo '.include "confinc"' > confmf
-   case `$am_make -s -f confmf 2> /dev/null` in #(
-   *the\ am__doit\ target*)
-     am__include=.include
-     am__quote="\""
-     _am_result=BSD
-     ;;
-   esac
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
-$as_echo "$_am_result" >&6; }
-rm -f confinc confmf
-
-@%:@ Check whether --enable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then :
-  enableval=$enable_dependency_tracking; 
-fi
-
-if test "x$enable_dependency_tracking" != xno; then
-  am_depcomp="$ac_aux_dir/depcomp"
-  AMDEPBACKSLASH='\'
-fi
- if test "x$enable_dependency_tracking" != xno; then
-  AMDEP_TRUE=
-  AMDEP_FALSE='#'
-else
-  AMDEP_TRUE='#'
-  AMDEP_FALSE=
-fi
-
-
-
-depcc="$CC"   am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
-  # We make a subdir and do the tests there.  Otherwise we can end up
-  # making bogus files that we don't know about and never remove.  For
-  # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
-  mkdir conftest.dir
-  # Copy depcomp to subdir because otherwise we won't find it if we're
-  # using a relative directory.
-  cp "$am_depcomp" conftest.dir
-  cd conftest.dir
-  # We will build objects and dependencies in a subdirectory because
-  # it helps to detect inapplicable dependency modes.  For instance
-  # both Tru64's cc and ICC support -MD to output dependencies as a
-  # side effect of compilation, but ICC will put the dependencies in
-  # the current directory while Tru64 will put them in the object
-  # directory.
-  mkdir sub
-
-  am_cv_CC_dependencies_compiler_type=none
-  if test "$am_compiler_list" = ""; then
-     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
-  fi
-  am__universal=false
-  case " $depcc " in #(
-     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-     esac
-
-  for depmode in $am_compiler_list; do
-    # Setup a source with many dependencies, because some compilers
-    # like to wrap large dependency lists on column 80 (with \), and
-    # we should not choose a depcomp mode which is confused by this.
-    #
-    # We need to recreate these files for each test, as the compiler may
-    # overwrite some of them when testing with obscure command lines.
-    # This happens at least with the AIX C compiler.
-    : > sub/conftest.c
-    for i in 1 2 3 4 5 6; do
-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
-    done
-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
-    am__obj=sub/conftest.${OBJEXT-o}
-    am__minus_obj="-o $am__obj"
-    case $depmode in
-    gcc)
-      # This depmode causes a compiler race in universal mode.
-      test "$am__universal" = false || continue
-      ;;
-    nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
-      if test "x$enable_dependency_tracking" = xyes; then
-	continue
-      else
-	break
-      fi
-      ;;
-    msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
-      # not run yet.  These depmodes are late enough in the game, and
-      # so weak that their functioning should not be impacted.
-      am__obj=conftest.${OBJEXT-o}
-      am__minus_obj=
-      ;;
-    none) break ;;
-    esac
-    if depmode=$depmode \
-       source=sub/conftest.c object=$am__obj \
-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
-         >/dev/null 2>conftest.err &&
-       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-      # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-        am_cv_CC_dependencies_compiler_type=$depmode
-        break
-      fi
-    fi
-  done
-
-  cd ..
-  rm -rf conftest.dir
-else
-  am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
- if 
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
-  am__fastdepCC_TRUE=
-  am__fastdepCC_FALSE='#'
-else
-  am__fastdepCC_TRUE='#'
-  am__fastdepCC_FALSE=
-fi
-
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-if test -z "$CXX"; then
-  if test -n "$CCC"; then
-    CXX=$CCC
-  else
-    if test -n "$ac_tool_prefix"; then
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CXX+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CXX"; then
-  ac_cv_prog_CXX="$CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CXX=$ac_cv_prog_CXX
-if test -n "$CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
-$as_echo "$CXX" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$CXX" && break
-  done
-fi
-if test -z "$CXX"; then
-  ac_ct_CXX=$CXX
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CXX"; then
-  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CXX="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
-if test -n "$ac_ct_CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
-$as_echo "$ac_ct_CXX" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CXX" && break
-done
-
-  if test "x$ac_ct_CXX" = x; then
-    CXX="g++"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CXX=$ac_ct_CXX
-  fi
-fi
-
-  fi
-fi
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
-$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
-if test "${ac_cv_cxx_compiler_gnu+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
-else
-  ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
-$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GXX=yes
-else
-  GXX=
-fi
-ac_test_CXXFLAGS=${CXXFLAGS+set}
-ac_save_CXXFLAGS=$CXXFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
-$as_echo_n "checking whether $CXX accepts -g... " >&6; }
-if test "${ac_cv_prog_cxx_g+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_cxx_werror_flag=$ac_cxx_werror_flag
-   ac_cxx_werror_flag=yes
-   ac_cv_prog_cxx_g=no
-   CXXFLAGS="-g"
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-else
-  CXXFLAGS=""
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  
-else
-  ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-	 CXXFLAGS="-g"
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
-$as_echo "$ac_cv_prog_cxx_g" >&6; }
-if test "$ac_test_CXXFLAGS" = set; then
-  CXXFLAGS=$ac_save_CXXFLAGS
-elif test $ac_cv_prog_cxx_g = yes; then
-  if test "$GXX" = yes; then
-    CXXFLAGS="-g -O2"
-  else
-    CXXFLAGS="-g"
-  fi
-else
-  if test "$GXX" = yes; then
-    CXXFLAGS="-O2"
-  else
-    CXXFLAGS=
-  fi
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-depcc="$CXX"  am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
-  # We make a subdir and do the tests there.  Otherwise we can end up
-  # making bogus files that we don't know about and never remove.  For
-  # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
-  mkdir conftest.dir
-  # Copy depcomp to subdir because otherwise we won't find it if we're
-  # using a relative directory.
-  cp "$am_depcomp" conftest.dir
-  cd conftest.dir
-  # We will build objects and dependencies in a subdirectory because
-  # it helps to detect inapplicable dependency modes.  For instance
-  # both Tru64's cc and ICC support -MD to output dependencies as a
-  # side effect of compilation, but ICC will put the dependencies in
-  # the current directory while Tru64 will put them in the object
-  # directory.
-  mkdir sub
-
-  am_cv_CXX_dependencies_compiler_type=none
-  if test "$am_compiler_list" = ""; then
-     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
-  fi
-  am__universal=false
-  case " $depcc " in #(
-     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-     esac
-
-  for depmode in $am_compiler_list; do
-    # Setup a source with many dependencies, because some compilers
-    # like to wrap large dependency lists on column 80 (with \), and
-    # we should not choose a depcomp mode which is confused by this.
-    #
-    # We need to recreate these files for each test, as the compiler may
-    # overwrite some of them when testing with obscure command lines.
-    # This happens at least with the AIX C compiler.
-    : > sub/conftest.c
-    for i in 1 2 3 4 5 6; do
-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
-    done
-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
-    am__obj=sub/conftest.${OBJEXT-o}
-    am__minus_obj="-o $am__obj"
-    case $depmode in
-    gcc)
-      # This depmode causes a compiler race in universal mode.
-      test "$am__universal" = false || continue
-      ;;
-    nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
-      if test "x$enable_dependency_tracking" = xyes; then
-	continue
-      else
-	break
-      fi
-      ;;
-    msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
-      # not run yet.  These depmodes are late enough in the game, and
-      # so weak that their functioning should not be impacted.
-      am__obj=conftest.${OBJEXT-o}
-      am__minus_obj=
-      ;;
-    none) break ;;
-    esac
-    if depmode=$depmode \
-       source=sub/conftest.c object=$am__obj \
-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
-         >/dev/null 2>conftest.err &&
-       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-      # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-        am_cv_CXX_dependencies_compiler_type=$depmode
-        break
-      fi
-    fi
-  done
-
-  cd ..
-  rm -rf conftest.dir
-else
-  am_cv_CXX_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
-CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
-
- if 
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
-  am__fastdepCXX_TRUE=
-  am__fastdepCXX_FALSE='#'
-else
-  am__fastdepCXX_TRUE='#'
-  am__fastdepCXX_FALSE=
-fi
-
-
-
-
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if test "${ac_cv_build+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
-  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
-  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if test "${ac_cv_host+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "x$host_alias" = x; then
-  ac_cv_host=$ac_cv_build
-else
-  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
-
-enable_win32_dll=yes
-
-case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
-set dummy ${ac_tool_prefix}as; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$AS"; then
-  ac_cv_prog_AS="$AS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_AS="${ac_tool_prefix}as"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-AS=$ac_cv_prog_AS
-if test -n "$AS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
-$as_echo "$AS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_AS"; then
-  ac_ct_AS=$AS
-  # Extract the first word of "as", so it can be a program name with args.
-set dummy as; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_AS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_AS"; then
-  ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_AS="as"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_AS=$ac_cv_prog_ac_ct_AS
-if test -n "$ac_ct_AS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5
-$as_echo "$ac_ct_AS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_AS" = x; then
-    AS="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    AS=$ac_ct_AS
-  fi
-else
-  AS="$ac_cv_prog_AS"
-fi
-
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DLLTOOL+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$DLLTOOL"; then
-  ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-DLLTOOL=$ac_cv_prog_DLLTOOL
-if test -n "$DLLTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
-$as_echo "$DLLTOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DLLTOOL"; then
-  ac_ct_DLLTOOL=$DLLTOOL
-  # Extract the first word of "dlltool", so it can be a program name with args.
-set dummy dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_DLLTOOL"; then
-  ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_DLLTOOL="dlltool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
-if test -n "$ac_ct_DLLTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
-$as_echo "$ac_ct_DLLTOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_DLLTOOL" = x; then
-    DLLTOOL="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    DLLTOOL=$ac_ct_DLLTOOL
-  fi
-else
-  DLLTOOL="$ac_cv_prog_DLLTOOL"
-fi
-
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
-set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$OBJDUMP"; then
-  ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-OBJDUMP=$ac_cv_prog_OBJDUMP
-if test -n "$OBJDUMP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-$as_echo "$OBJDUMP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OBJDUMP"; then
-  ac_ct_OBJDUMP=$OBJDUMP
-  # Extract the first word of "objdump", so it can be a program name with args.
-set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_OBJDUMP"; then
-  ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_OBJDUMP="objdump"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
-if test -n "$ac_ct_OBJDUMP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-$as_echo "$ac_ct_OBJDUMP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_OBJDUMP" = x; then
-    OBJDUMP="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    OBJDUMP=$ac_ct_OBJDUMP
-  fi
-else
-  OBJDUMP="$ac_cv_prog_OBJDUMP"
-fi
-
-  ;;
-esac
-
-test -z "$AS" && AS=as
-
-    
-    
-    
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-
-    
-    
-    
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-
-    
-    
-    
-
-
-
-enable_dlopen=yes
-
-
-
-case `pwd` in
-  *\ * | *\	*)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
-$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
-esac
-
-
-
-macro_version='2.2.6b'
-macro_revision='1.3017'
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-
-
-ltmain="$ac_aux_dir/ltmain.sh"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
-$as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if test "${ac_cv_path_SED+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
-     for ac_i in 1 2 3 4 5 6 7; do
-       ac_script="$ac_script$as_nl$ac_script"
-     done
-     echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
-     { ac_script=; unset ac_script;}
-     if test -z "$SED"; then
-  ac_path_SED_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in sed gsed; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
-# Check for GNU ac_path_SED and select it if it is found.
-  # Check for GNU $ac_path_SED
-case `"$ac_path_SED" --version 2>&1` in
-*GNU*)
-  ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo '' >> "conftest.nl"
-    "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_SED_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_SED="$ac_path_SED"
-      ac_path_SED_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_SED_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_SED"; then
-    as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 
-  fi
-else
-  ac_cv_path_SED=$SED
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
-$as_echo "$ac_cv_path_SED" >&6; }
- SED="$ac_cv_path_SED"
-  rm -f conftest.sed
-
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if test "${ac_cv_path_GREP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$GREP"; then
-  ac_path_GREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in grep ggrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
-# Check for GNU ac_path_GREP and select it if it is found.
-  # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'GREP' >> "conftest.nl"
-    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_GREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_GREP="$ac_path_GREP"
-      ac_path_GREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_GREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_GREP"; then
-    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 
-  fi
-else
-  ac_cv_path_GREP=$GREP
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
- 
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
-   then ac_cv_path_EGREP="$GREP -E"
-   else
-     if test -z "$EGREP"; then
-  ac_path_EGREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in egrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
-  # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'EGREP' >> "conftest.nl"
-    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_EGREP="$ac_path_EGREP"
-      ac_path_EGREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_EGREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_EGREP"; then
-    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 
-  fi
-else
-  ac_cv_path_EGREP=$EGREP
-fi
-
-   fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
- 
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
-$as_echo_n "checking for fgrep... " >&6; }
-if test "${ac_cv_path_FGREP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
-   then ac_cv_path_FGREP="$GREP -F"
-   else
-     if test -z "$FGREP"; then
-  ac_path_FGREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in fgrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
-# Check for GNU ac_path_FGREP and select it if it is found.
-  # Check for GNU $ac_path_FGREP
-case `"$ac_path_FGREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'FGREP' >> "conftest.nl"
-    "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_FGREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_FGREP="$ac_path_FGREP"
-      ac_path_FGREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_FGREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_FGREP"; then
-    as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 
-  fi
-else
-  ac_cv_path_FGREP=$FGREP
-fi
-
-   fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
-$as_echo "$ac_cv_path_FGREP" >&6; }
- FGREP="$ac_cv_path_FGREP"
- 
-
-test -z "$GREP" && GREP=grep
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-
-
-
-@%:@ Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
-  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else
-  with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [\\/]* | ?:[\\/]*)
-      re_direlt='/[^/][^/]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
-      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
-fi
-if test "${lt_cv_path_LD+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some variants of GNU ld only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-	test "$with_gnu_ld" != no && break
-	;;
-      *)
-	test "$with_gnu_ld" != yes && break
-	;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if test "${lt_cv_prog_gnu_ld+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-$as_echo "$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-
-
-    
-    
-    
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
-$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if test "${lt_cv_path_NM+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$NM"; then
-  # Let the user override the test.
-  lt_cv_path_NM="$NM"
-else
-  lt_nm_to_check="${ac_tool_prefix}nm"
-  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
-    lt_nm_to_check="$lt_nm_to_check nm"
-  fi
-  for lt_tmp_nm in $lt_nm_to_check; do
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
-      IFS="$lt_save_ifs"
-      test -z "$ac_dir" && ac_dir=.
-      tmp_nm="$ac_dir/$lt_tmp_nm"
-      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
-	# Check to see if the nm accepts a BSD-compat flag.
-	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
-	#   nm: unknown option "B" ignored
-	# Tru64's nm complains that /dev/null is an invalid object file
-	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-	*/dev/null* | *'Invalid file or object type'*)
-	  lt_cv_path_NM="$tmp_nm -B"
-	  break
-	  ;;
-	*)
-	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-	  */dev/null*)
-	    lt_cv_path_NM="$tmp_nm -p"
-	    break
-	    ;;
-	  *)
-	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-	    continue # so that we can try to find one that supports BSD flags
-	    ;;
-	  esac
-	  ;;
-	esac
-      fi
-    done
-    IFS="$lt_save_ifs"
-  done
-  : ${lt_cv_path_NM=no}
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
-$as_echo "$lt_cv_path_NM" >&6; }
-if test "$lt_cv_path_NM" != "no"; then
-  NM="$lt_cv_path_NM"
-else
-  # Didn't find any BSD compatible name lister, look for dumpbin.
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in "dumpbin -symbols" "link -dump -symbols"
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DUMPBIN+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$DUMPBIN"; then
-  ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-DUMPBIN=$ac_cv_prog_DUMPBIN
-if test -n "$DUMPBIN"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
-$as_echo "$DUMPBIN" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$DUMPBIN" && break
-  done
-fi
-if test -z "$DUMPBIN"; then
-  ac_ct_DUMPBIN=$DUMPBIN
-  for ac_prog in "dumpbin -symbols" "link -dump -symbols"
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_DUMPBIN"; then
-  ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
-if test -n "$ac_ct_DUMPBIN"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
-$as_echo "$ac_ct_DUMPBIN" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_DUMPBIN" && break
-done
-
-  if test "x$ac_ct_DUMPBIN" = x; then
-    DUMPBIN=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    DUMPBIN=$ac_ct_DUMPBIN
-  fi
-fi
-
-  
-  if test "$DUMPBIN" != ":"; then
-    NM="$DUMPBIN"
-  fi
-fi
-test -z "$NM" && NM=nm
-
-
-    
-    
-    
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
-$as_echo_n "checking the name lister ($NM) interface... " >&6; }
-if test "${lt_cv_nm_interface+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_nm_interface="BSD nm"
-  echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&5)
-  (eval "$ac_compile" 2>conftest.err)
-  cat conftest.err >&5
-  (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
-  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
-  cat conftest.err >&5
-  (eval echo "\"\$as_me:__oline__: output\"" >&5)
-  cat conftest.out >&5
-  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
-    lt_cv_nm_interface="MS dumpbin"
-  fi
-  rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
-$as_echo "$lt_cv_nm_interface" >&6; }
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-$as_echo_n "checking whether ln -s works... " >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-$as_echo "no, using $LN_S" >&6; }
-fi
-
-# find the maximum length of command line arguments
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
-$as_echo_n "checking the maximum length of command line arguments... " >&6; }
-if test "${lt_cv_sys_max_cmd_len+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-    i=0
-  teststring="ABCD"
-
-  case $build_os in
-  msdosdjgpp*)
-    # On DJGPP, this test can blow up pretty badly due to problems in libc
-    # (any single argument exceeding 2000 bytes causes a buffer overrun
-    # during glob expansion).  Even if it were fixed, the result of this
-    # check would be larger than it should be.
-    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
-    ;;
-
-  gnu*)
-    # Under GNU Hurd, this test is not required because there is
-    # no limit to the length of command line arguments.
-    # Libtool will interpret -1 as no limit whatsoever
-    lt_cv_sys_max_cmd_len=-1;
-    ;;
-
-  cygwin* | mingw* | cegcc*)
-    # On Win9x/ME, this test blows up -- it succeeds, but takes
-    # about 5 minutes as the teststring grows exponentially.
-    # Worse, since 9x/ME are not pre-emptively multitasking,
-    # you end up with a "frozen" computer, even though with patience
-    # the test eventually succeeds (with a max line length of 256k).
-    # Instead, let's just punt: use the minimum linelength reported by
-    # all of the supported platforms: 8192 (on NT/2K/XP).
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  amigaos*)
-    # On AmigaOS with pdksh, this test takes hours, literally.
-    # So we just punt and use a minimum line length of 8192.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
-    # This has been around since 386BSD, at least.  Likely further.
-    if test -x /sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
-    elif test -x /usr/sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
-    else
-      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
-    fi
-    # And add a safety zone
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    ;;
-
-  interix*)
-    # We know the value 262144 and hardcode it with a safety zone (like BSD)
-    lt_cv_sys_max_cmd_len=196608
-    ;;
-
-  osf*)
-    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
-    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
-    # nice to cause kernel panics so lets avoid the loop below.
-    # First set a reasonable default.
-    lt_cv_sys_max_cmd_len=16384
-    #
-    if test -x /sbin/sysconfig; then
-      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
-        *1*) lt_cv_sys_max_cmd_len=-1 ;;
-      esac
-    fi
-    ;;
-  sco3.2v5*)
-    lt_cv_sys_max_cmd_len=102400
-    ;;
-  sysv5* | sco5v6* | sysv4.2uw2*)
-    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
-    if test -n "$kargmax"; then
-      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[	 ]//'`
-    else
-      lt_cv_sys_max_cmd_len=32768
-    fi
-    ;;
-  *)
-    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
-    if test -n "$lt_cv_sys_max_cmd_len"; then
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    else
-      # Make teststring a little bigger before we do anything with it.
-      # a 1K string should be a reasonable start.
-      for i in 1 2 3 4 5 6 7 8 ; do
-        teststring=$teststring$teststring
-      done
-      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
-      # If test is not a shell built-in, we'll probably end up computing a
-      # maximum length that is only half of the actual maximum length, but
-      # we can't tell.
-      while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
-	         = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
-	      test $i != 17 # 1/2 MB should be enough
-      do
-        i=`expr $i + 1`
-        teststring=$teststring$teststring
-      done
-      # Only check the string length outside the loop.
-      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
-      teststring=
-      # Add a significant safety factor because C++ compilers can tack on
-      # massive amounts of additional arguments before passing them to the
-      # linker.  It appears as though 1/2 is a usable value.
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
-    fi
-    ;;
-  esac
-
-fi
-
-if test -n $lt_cv_sys_max_cmd_len ; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
-$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
-$as_echo "none" >&6; }
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-    
-    
-    
-
-
-: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
-$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,, \
-    && eval 'test $(( 1 + 1 )) -eq 2 \
-    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
-  && xsi_shell=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
-$as_echo "$xsi_shell" >&6; }
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
-$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
-    >/dev/null 2>&1 \
-  && lt_shell_append=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
-$as_echo "$lt_shell_append" >&6; }
-
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  lt_unset=unset
-else
-  lt_unset=false
-fi
-
-    
-    
-    
-
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
-    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
-  lt_SP2NL='tr \040 \012'
-  lt_NL2SP='tr \015\012 \040\040'
-  ;;
- *) # EBCDIC based system
-  lt_SP2NL='tr \100 \n'
-  lt_NL2SP='tr \r\n \100\100'
-  ;;
-esac
-
-    
-    
-    
-
-    
-    
-    
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
-$as_echo_n "checking for $LD option to reload object files... " >&6; }
-if test "${lt_cv_ld_reload_flag+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_ld_reload_flag='-r'
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
-$as_echo "$lt_cv_ld_reload_flag" >&6; }
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
-  darwin*)
-    if test "$GCC" = yes; then
-      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-    else
-      reload_cmds='$LD$reload_flag -o $output$reload_objs'
-    fi
-    ;;
-esac
-
-    
-    
-    
-
-    
-    
-    
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
-set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$OBJDUMP"; then
-  ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-OBJDUMP=$ac_cv_prog_OBJDUMP
-if test -n "$OBJDUMP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-$as_echo "$OBJDUMP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OBJDUMP"; then
-  ac_ct_OBJDUMP=$OBJDUMP
-  # Extract the first word of "objdump", so it can be a program name with args.
-set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_OBJDUMP"; then
-  ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_OBJDUMP="objdump"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
-if test -n "$ac_ct_OBJDUMP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-$as_echo "$ac_ct_OBJDUMP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_OBJDUMP" = x; then
-    OBJDUMP="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    OBJDUMP=$ac_ct_OBJDUMP
-  fi
-else
-  OBJDUMP="$ac_cv_prog_OBJDUMP"
-fi
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
-$as_echo_n "checking how to recognize dependent libraries... " >&6; }
-if test "${lt_cv_deplibs_check_method+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[4-9]*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-bsdi[45]*)
-  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  lt_cv_file_magic_test_file=/shlib/libc.so
-  ;;
-
-cygwin*)
-  # func_win32_libid is a shell function defined in ltmain.sh
-  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-  lt_cv_file_magic_cmd='func_win32_libid'
-  ;;
-
-mingw* | pw32*)
-  # Base MSYS/MinGW do not provide the 'file' command needed by
-  # func_win32_libid shell function, so use a weaker test based on 'objdump',
-  # unless we find 'file', for example because we are cross-compiling.
-  if ( file / ) >/dev/null 2>&1; then
-    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-    lt_cv_file_magic_cmd='func_win32_libid'
-  else
-    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
-    lt_cv_file_magic_cmd='$OBJDUMP -f'
-  fi
-  ;;
-
-cegcc)
-  # use the weaker test based on 'objdump'. See mingw*.
-  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
-  lt_cv_file_magic_cmd='$OBJDUMP -f'
-  ;;
-
-darwin* | rhapsody*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-freebsd* | dragonfly*)
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
-    case $host_cpu in
-    i*86 )
-      # Not sure whether the presence of OpenBSD here was a mistake.
-      # Let's accept both of them until this is cleared up.
-      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
-      lt_cv_file_magic_cmd=/usr/bin/file
-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-      ;;
-    esac
-  else
-    lt_cv_deplibs_check_method=pass_all
-  fi
-  ;;
-
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-hpux10.20* | hpux11*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  case $host_cpu in
-  ia64*)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
-    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
-    ;;
-  hppa*64*)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'
-    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
-    ;;
-  *)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
-    lt_cv_file_magic_test_file=/usr/lib/libc.sl
-    ;;
-  esac
-  ;;
-
-interix[3-9]*)
-  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
-  lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $LD in
-  *-32|*"-32 ") libmagic=32-bit;;
-  *-n32|*"-n32 ") libmagic=N32;;
-  *-64|*"-64 ") libmagic=64-bit;;
-  *) libmagic=never-match;;
-  esac
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-# This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-netbsd* | netbsdelf*-gnu)
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
-  fi
-  ;;
-
-newos6*)
-  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=/usr/lib/libnls.so
-  ;;
-
-*nto* | *qnx*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-openbsd*)
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
-  fi
-  ;;
-
-osf3* | osf4* | osf5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-rdos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-solaris*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv4 | sysv4.3*)
-  case $host_vendor in
-  motorola)
-    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
-    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
-    ;;
-  ncr)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  sequent)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
-    ;;
-  sni)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
-    lt_cv_file_magic_test_file=/lib/libc.so
-    ;;
-  siemens)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  pc)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  esac
-  ;;
-
-tpf*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-esac
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
-$as_echo "$lt_cv_deplibs_check_method" >&6; }
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AR+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$AR"; then
-  ac_cv_prog_AR="$AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_AR="${ac_tool_prefix}ar"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_AR"; then
-  ac_ct_AR=$AR
-  # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_AR"; then
-  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_AR="ar"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-$as_echo "$ac_ct_AR" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_AR" = x; then
-    AR="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    AR=$ac_ct_AR
-  fi
-else
-  AR="$ac_cv_prog_AR"
-fi
-
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$STRIP"; then
-  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
-  ac_ct_STRIP=$STRIP
-  # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_STRIP"; then
-  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_STRIP="strip"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_STRIP" = x; then
-    STRIP=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    STRIP=$ac_ct_STRIP
-  fi
-else
-  STRIP="$ac_cv_prog_STRIP"
-fi
-
-test -z "$STRIP" && STRIP=:
-
-    
-    
-    
-
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
-  ac_ct_RANLIB=$RANLIB
-  # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_RANLIB"; then
-  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_RANLIB="ranlib"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_RANLIB" = x; then
-    RANLIB=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    RANLIB=$ac_ct_RANLIB
-  fi
-else
-  RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-test -z "$RANLIB" && RANLIB=:
-
-    
-    
-    
-
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
-  case $host_os in
-  openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
-    ;;
-  *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
-    ;;
-  esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-fi
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-
-
-    
-    
-    
-
-    
-    
-    
-
-    
-    
-    
-
-    
-    
-    
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
-$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
-if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[BCDEGRST]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
-
-# Define system-specific variables.
-case $host_os in
-aix*)
-  symcode='[BCDT]'
-  ;;
-cygwin* | mingw* | pw32* | cegcc*)
-  symcode='[ABCDGISTW]'
-  ;;
-hpux*)
-  if test "$host_cpu" = ia64; then
-    symcode='[ABCDEGRST]'
-  fi
-  ;;
-irix* | nonstopux*)
-  symcode='[BCDEGRST]'
-  ;;
-osf*)
-  symcode='[BCDEGQRST]'
-  ;;
-solaris*)
-  symcode='[BDRT]'
-  ;;
-sco3.2v5*)
-  symcode='[DT]'
-  ;;
-sysv4.2uw2*)
-  symcode='[DT]'
-  ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
-  symcode='[ABDT]'
-  ;;
-sysv4)
-  symcode='[DFNSTU]'
-  ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
-  symcode='[ABCDGIRSTW]' ;;
-esac
-
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
-  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-  ;;
-esac
-
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
-
-  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
-  symxfrm="\\1 $ac_symprfx\\2 \\2"
-
-  # Write the raw and C identifiers.
-  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-    # Fake it for dumpbin and say T for any non-static function
-    # and D for any global variable.
-    # Also find C++ and __fastcall symbols from MSVC++,
-    # which start with @ or ?.
-    lt_cv_sys_global_symbol_pipe="$AWK '"\
-"     {last_section=section; section=\$ 3};"\
-"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-"     \$ 0!~/External *\|/{next};"\
-"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-"     {if(hide[section]) next};"\
-"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
-"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
-"     ' prfx=^$ac_symprfx"
-  else
-    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[	 ]\($symcode$symcode*\)[	 ][	 ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
-  fi
-
-  # Check to see that the pipe works correctly.
-  pipe_works=no
-
-  rm -f conftest*
-  cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
-
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    # Now try to grab the symbols.
-    nlist=conftest.nm
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5
-  (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s "$nlist"; then
-      # Try sorting and uniquifying the output.
-      if sort "$nlist" | uniq > "$nlist"T; then
-	mv -f "$nlist"T "$nlist"
-      else
-	rm -f "$nlist"T
-      fi
-
-      # Make sure that we snagged all the symbols we need.
-      if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
-	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
-	  cat <<_LT_EOF > conftest.$ac_ext
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_LT_EOF
-	  # Now generate the symbol file.
-	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-
-	  cat <<_LT_EOF >> conftest.$ac_ext
-
-/* The mapping between symbol names and symbols.  */
-const struct {
-  const char *name;
-  void       *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[] =
-{
-  { "@PROGRAM@", (void *) 0 },
-_LT_EOF
-	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
-	  cat <<\_LT_EOF >> conftest.$ac_ext
-  {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
-  return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
-	  # Now try linking the two files.
-	  mv conftest.$ac_objext conftstm.$ac_objext
-	  lt_save_LIBS="$LIBS"
-	  lt_save_CFLAGS="$CFLAGS"
-	  LIBS="conftstm.$ac_objext"
-	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
-	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest${ac_exeext}; then
-	    pipe_works=yes
-	  fi
-	  LIBS="$lt_save_LIBS"
-	  CFLAGS="$lt_save_CFLAGS"
-	else
-	  echo "cannot find nm_test_func in $nlist" >&5
-	fi
-      else
-	echo "cannot find nm_test_var in $nlist" >&5
-      fi
-    else
-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
-    fi
-  else
-    echo "$progname: failed program was:" >&5
-    cat conftest.$ac_ext >&5
-  fi
-  rm -rf conftest* conftst*
-
-  # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
-    break
-  else
-    lt_cv_sys_global_symbol_pipe=
-  fi
-done
-
-fi
-
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
-  lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
-fi
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-
-@%:@ Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then :
-  enableval=$enable_libtool_lock; 
-fi
-
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    case `/usr/bin/file conftest.$ac_objext` in
-      *ELF-32*)
-	HPUX_IA64_MODE="32"
-	;;
-      *ELF-64*)
-	HPUX_IA64_MODE="64"
-	;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-*-*-irix6*)
-  # Find out which ABI we are using.
-  echo '#line __oline__ "configure"' > conftest.$ac_ext
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    if test "$lt_cv_prog_gnu_ld" = yes; then
-      case `/usr/bin/file conftest.$ac_objext` in
-	*32-bit*)
-	  LD="${LD-ld} -melf32bsmip"
-	  ;;
-	*N32*)
-	  LD="${LD-ld} -melf32bmipn32"
-	  ;;
-	*64-bit*)
-	  LD="${LD-ld} -melf64bmip"
-	;;
-      esac
-    else
-      case `/usr/bin/file conftest.$ac_objext` in
-	*32-bit*)
-	  LD="${LD-ld} -32"
-	  ;;
-	*N32*)
-	  LD="${LD-ld} -n32"
-	  ;;
-	*64-bit*)
-	  LD="${LD-ld} -64"
-	  ;;
-      esac
-    fi
-  fi
-  rm -rf conftest*
-  ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    case `/usr/bin/file conftest.o` in
-      *32-bit*)
-	case $host in
-	  x86_64-*kfreebsd*-gnu)
-	    LD="${LD-ld} -m elf_i386_fbsd"
-	    ;;
-	  x86_64-*linux*)
-	    LD="${LD-ld} -m elf_i386"
-	    ;;
-	  ppc64-*linux*|powerpc64-*linux*)
-	    LD="${LD-ld} -m elf32ppclinux"
-	    ;;
-	  s390x-*linux*)
-	    LD="${LD-ld} -m elf_s390"
-	    ;;
-	  sparc64-*linux*)
-	    LD="${LD-ld} -m elf32_sparc"
-	    ;;
-	esac
-	;;
-      *64-bit*)
-	case $host in
-	  x86_64-*kfreebsd*-gnu)
-	    LD="${LD-ld} -m elf_x86_64_fbsd"
-	    ;;
-	  x86_64-*linux*)
-	    LD="${LD-ld} -m elf_x86_64"
-	    ;;
-	  ppc*-*linux*|powerpc*-*linux*)
-	    LD="${LD-ld} -m elf64ppc"
-	    ;;
-	  s390*-*linux*|s390*-*tpf*)
-	    LD="${LD-ld} -m elf64_s390"
-	    ;;
-	  sparc*-*linux*)
-	    LD="${LD-ld} -m elf64_sparc"
-	    ;;
-	esac
-	;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-*-*-sco3.2v5*)
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -belf"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
-$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
-if test "${lt_cv_cc_needs_belf+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  lt_cv_cc_needs_belf=yes
-else
-  lt_cv_cc_needs_belf=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
-$as_echo "$lt_cv_cc_needs_belf" >&6; }
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-sparc*-*solaris*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    case `/usr/bin/file conftest.o` in
-    *64-bit*)
-      case $lt_cv_prog_gnu_ld in
-      yes*) LD="${LD-ld} -m elf64_sparc" ;;
-      *)
-	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
-	  LD="${LD-ld} -64"
-	fi
-	;;
-      esac
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-esac
-
-need_locks="$enable_libtool_lock"
-
-
-  case $host_os in
-    rhapsody* | darwin*)
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DSYMUTIL+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$DSYMUTIL"; then
-  ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-DSYMUTIL=$ac_cv_prog_DSYMUTIL
-if test -n "$DSYMUTIL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
-$as_echo "$DSYMUTIL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DSYMUTIL"; then
-  ac_ct_DSYMUTIL=$DSYMUTIL
-  # Extract the first word of "dsymutil", so it can be a program name with args.
-set dummy dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_DSYMUTIL"; then
-  ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
-if test -n "$ac_ct_DSYMUTIL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
-$as_echo "$ac_ct_DSYMUTIL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_DSYMUTIL" = x; then
-    DSYMUTIL=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    DSYMUTIL=$ac_ct_DSYMUTIL
-  fi
-else
-  DSYMUTIL="$ac_cv_prog_DSYMUTIL"
-fi
-
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
-set dummy ${ac_tool_prefix}nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_NMEDIT+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$NMEDIT"; then
-  ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-NMEDIT=$ac_cv_prog_NMEDIT
-if test -n "$NMEDIT"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
-$as_echo "$NMEDIT" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_NMEDIT"; then
-  ac_ct_NMEDIT=$NMEDIT
-  # Extract the first word of "nmedit", so it can be a program name with args.
-set dummy nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_NMEDIT"; then
-  ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_NMEDIT="nmedit"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
-if test -n "$ac_ct_NMEDIT"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
-$as_echo "$ac_ct_NMEDIT" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_NMEDIT" = x; then
-    NMEDIT=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    NMEDIT=$ac_ct_NMEDIT
-  fi
-else
-  NMEDIT="$ac_cv_prog_NMEDIT"
-fi
-
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
-set dummy ${ac_tool_prefix}lipo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_LIPO+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$LIPO"; then
-  ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-LIPO=$ac_cv_prog_LIPO
-if test -n "$LIPO"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
-$as_echo "$LIPO" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_LIPO"; then
-  ac_ct_LIPO=$LIPO
-  # Extract the first word of "lipo", so it can be a program name with args.
-set dummy lipo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_LIPO"; then
-  ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_LIPO="lipo"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
-if test -n "$ac_ct_LIPO"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
-$as_echo "$ac_ct_LIPO" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_LIPO" = x; then
-    LIPO=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    LIPO=$ac_ct_LIPO
-  fi
-else
-  LIPO="$ac_cv_prog_LIPO"
-fi
-
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OTOOL+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$OTOOL"; then
-  ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-OTOOL=$ac_cv_prog_OTOOL
-if test -n "$OTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
-$as_echo "$OTOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OTOOL"; then
-  ac_ct_OTOOL=$OTOOL
-  # Extract the first word of "otool", so it can be a program name with args.
-set dummy otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_OTOOL"; then
-  ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_OTOOL="otool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
-if test -n "$ac_ct_OTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
-$as_echo "$ac_ct_OTOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_OTOOL" = x; then
-    OTOOL=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    OTOOL=$ac_ct_OTOOL
-  fi
-else
-  OTOOL="$ac_cv_prog_OTOOL"
-fi
-
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OTOOL64+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$OTOOL64"; then
-  ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-OTOOL64=$ac_cv_prog_OTOOL64
-if test -n "$OTOOL64"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
-$as_echo "$OTOOL64" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OTOOL64"; then
-  ac_ct_OTOOL64=$OTOOL64
-  # Extract the first word of "otool64", so it can be a program name with args.
-set dummy otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_OTOOL64"; then
-  ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_OTOOL64="otool64"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
-if test -n "$ac_ct_OTOOL64"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
-$as_echo "$ac_ct_OTOOL64" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_OTOOL64" = x; then
-    OTOOL64=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    OTOOL64=$ac_ct_OTOOL64
-  fi
-else
-  OTOOL64="$ac_cv_prog_OTOOL64"
-fi
-
-    
-    
-    
-    
-
-    
-    
-    
-    
-
-    
-    
-    
-    
-
-    
-    
-    
-    
-
-    
-    
-    
-    
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
-$as_echo_n "checking for -single_module linker flag... " >&6; }
-if test "${lt_cv_apple_cc_single_mod+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_apple_cc_single_mod=no
-      if test -z "${LT_MULTI_MODULE}"; then
-	# By default we will add the -single_module flag. You can override
-	# by either setting the environment variable LT_MULTI_MODULE
-	# non-empty at configure time, or by adding -multi_module to the
-	# link flags.
-	rm -rf libconftest.dylib*
-	echo "int foo(void){return 1;}" > conftest.c
-	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&5
-	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
-	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
-        _lt_result=$?
-	if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
-	  lt_cv_apple_cc_single_mod=yes
-	else
-	  cat conftest.err >&5
-	fi
-	rm -rf libconftest.dylib*
-	rm -f conftest.*
-      fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
-$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
-$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
-if test "${lt_cv_ld_exported_symbols_list+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_ld_exported_symbols_list=no
-      save_LDFLAGS=$LDFLAGS
-      echo "_main" > conftest.sym
-      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  lt_cv_ld_exported_symbols_list=yes
-else
-  lt_cv_ld_exported_symbols_list=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	LDFLAGS="$save_LDFLAGS"
-    
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
-$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
-    case $host_os in
-    rhapsody* | darwin1.[012])
-      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
-    darwin1.*)
-      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
-    darwin*) # darwin 5.x on
-      # if running on 10.5 or later, the deployment target defaults
-      # to the OS version, if on x86, and 10.4, the deployment
-      # target defaults to 10.4. Don't you love it?
-      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
-	10.0,*86*-darwin8*|10.0,*-darwin[91]*)
-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-	10.[012]*)
-	  _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
-	10.*)
-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-      esac
-    ;;
-  esac
-    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
-      _lt_dar_single_mod='$single_module'
-    fi
-    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
-      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
-    else
-      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    fi
-    if test "$DSYMUTIL" != ":"; then
-      _lt_dsymutil='~$DSYMUTIL $lib || :'
-    else
-      _lt_dsymutil=
-    fi
-    ;;
-  esac
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-      # Double quotes because CPP needs to be expanded
-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-@%:@ifdef __STDC__
-@%:@ include <limits.h>
-@%:@else
-@%:@ include <assert.h>
-@%:@endif
-		     Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-@%:@include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-  break
-fi
-
-    done
-    ac_cv_prog_CPP=$CPP
-  
-fi
-  CPP=$ac_cv_prog_CPP
-else
-  ac_cv_prog_CPP=$CPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-@%:@ifdef __STDC__
-@%:@ include <limits.h>
-@%:@else
-@%:@ include <assert.h>
-@%:@endif
-		     Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-@%:@include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-  
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5 ; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_header_stdc=yes
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then :
-  
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then :
-  
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-		   (('a' <= (c) && (c) <= 'i') \
-		     || ('j' <= (c) && (c) <= 'r') \
-		     || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-	|| toupper (i) != TOUPPER (i))
-      return 2;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-  
-$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-		  inttypes.h stdint.h unistd.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
- 
-fi
-
-done
-
-
-for ac_header in dlfcn.h
-do :
-  ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_dlfcn_h" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-@%:@define HAVE_DLFCN_H 1
-_ACEOF
- 
-fi
-
-done
-
-
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-if test -z "$CXX"; then
-  if test -n "$CCC"; then
-    CXX=$CCC
-  else
-    if test -n "$ac_tool_prefix"; then
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CXX+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CXX"; then
-  ac_cv_prog_CXX="$CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CXX=$ac_cv_prog_CXX
-if test -n "$CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
-$as_echo "$CXX" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$CXX" && break
-  done
-fi
-if test -z "$CXX"; then
-  ac_ct_CXX=$CXX
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CXX"; then
-  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CXX="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
-if test -n "$ac_ct_CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
-$as_echo "$ac_ct_CXX" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CXX" && break
-done
-
-  if test "x$ac_ct_CXX" = x; then
-    CXX="g++"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CXX=$ac_ct_CXX
-  fi
-fi
-
-  fi
-fi
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
-$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
-if test "${ac_cv_cxx_compiler_gnu+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
-else
-  ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
-$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GXX=yes
-else
-  GXX=
-fi
-ac_test_CXXFLAGS=${CXXFLAGS+set}
-ac_save_CXXFLAGS=$CXXFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
-$as_echo_n "checking whether $CXX accepts -g... " >&6; }
-if test "${ac_cv_prog_cxx_g+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_cxx_werror_flag=$ac_cxx_werror_flag
-   ac_cxx_werror_flag=yes
-   ac_cv_prog_cxx_g=no
-   CXXFLAGS="-g"
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-else
-  CXXFLAGS=""
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  
-else
-  ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-	 CXXFLAGS="-g"
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
-$as_echo "$ac_cv_prog_cxx_g" >&6; }
-if test "$ac_test_CXXFLAGS" = set; then
-  CXXFLAGS=$ac_save_CXXFLAGS
-elif test $ac_cv_prog_cxx_g = yes; then
-  if test "$GXX" = yes; then
-    CXXFLAGS="-g -O2"
-  else
-    CXXFLAGS="-g"
-  fi
-else
-  if test "$GXX" = yes; then
-    CXXFLAGS="-O2"
-  else
-    CXXFLAGS=
-  fi
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-depcc="$CXX"  am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
-  # We make a subdir and do the tests there.  Otherwise we can end up
-  # making bogus files that we don't know about and never remove.  For
-  # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
-  mkdir conftest.dir
-  # Copy depcomp to subdir because otherwise we won't find it if we're
-  # using a relative directory.
-  cp "$am_depcomp" conftest.dir
-  cd conftest.dir
-  # We will build objects and dependencies in a subdirectory because
-  # it helps to detect inapplicable dependency modes.  For instance
-  # both Tru64's cc and ICC support -MD to output dependencies as a
-  # side effect of compilation, but ICC will put the dependencies in
-  # the current directory while Tru64 will put them in the object
-  # directory.
-  mkdir sub
-
-  am_cv_CXX_dependencies_compiler_type=none
-  if test "$am_compiler_list" = ""; then
-     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
-  fi
-  am__universal=false
-  case " $depcc " in #(
-     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-     esac
-
-  for depmode in $am_compiler_list; do
-    # Setup a source with many dependencies, because some compilers
-    # like to wrap large dependency lists on column 80 (with \), and
-    # we should not choose a depcomp mode which is confused by this.
-    #
-    # We need to recreate these files for each test, as the compiler may
-    # overwrite some of them when testing with obscure command lines.
-    # This happens at least with the AIX C compiler.
-    : > sub/conftest.c
-    for i in 1 2 3 4 5 6; do
-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
-    done
-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
-    am__obj=sub/conftest.${OBJEXT-o}
-    am__minus_obj="-o $am__obj"
-    case $depmode in
-    gcc)
-      # This depmode causes a compiler race in universal mode.
-      test "$am__universal" = false || continue
-      ;;
-    nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
-      if test "x$enable_dependency_tracking" = xyes; then
-	continue
-      else
-	break
-      fi
-      ;;
-    msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
-      # not run yet.  These depmodes are late enough in the game, and
-      # so weak that their functioning should not be impacted.
-      am__obj=conftest.${OBJEXT-o}
-      am__minus_obj=
-      ;;
-    none) break ;;
-    esac
-    if depmode=$depmode \
-       source=sub/conftest.c object=$am__obj \
-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
-         >/dev/null 2>conftest.err &&
-       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-      # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-        am_cv_CXX_dependencies_compiler_type=$depmode
-        break
-      fi
-    fi
-  done
-
-  cd ..
-  rm -rf conftest.dir
-else
-  am_cv_CXX_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
-CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
-
- if 
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
-  am__fastdepCXX_TRUE=
-  am__fastdepCXX_FALSE='#'
-else
-  am__fastdepCXX_TRUE='#'
-  am__fastdepCXX_FALSE=
-fi
-
-
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
-    (test "X$CXX" != "Xg++"))) ; then
-  ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
-$as_echo_n "checking how to run the C++ preprocessor... " >&6; }
-if test -z "$CXXCPP"; then
-  if test "${ac_cv_prog_CXXCPP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-      # Double quotes because CXXCPP needs to be expanded
-    for CXXCPP in "$CXX -E" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-@%:@ifdef __STDC__
-@%:@ include <limits.h>
-@%:@else
-@%:@ include <assert.h>
-@%:@endif
-		     Syntax error
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-  
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-@%:@include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-  break
-fi
-
-    done
-    ac_cv_prog_CXXCPP=$CXXCPP
-  
-fi
-  CXXCPP=$ac_cv_prog_CXXCPP
-else
-  ac_cv_prog_CXXCPP=$CXXCPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
-$as_echo "$CXXCPP" >&6; }
-ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-@%:@ifdef __STDC__
-@%:@ include <limits.h>
-@%:@else
-@%:@ include <assert.h>
-@%:@endif
-		     Syntax error
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-  
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-@%:@include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-  
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-_lt_caught_CXX_error=yes; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-else
-  _lt_caught_CXX_error=yes
-fi
-
-
-
-
-
-# Set options
-
-
-
-        
-  
-            @%:@ Check whether --enable-shared was given.
-if test "${enable_shared+set}" = set; then :
-  enableval=$enable_shared; p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_shared=yes ;;
-    no) enable_shared=no ;;
-    *)
-      enable_shared=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_shared=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac
-else
-  enable_shared=yes
-fi
-
-
-    
-    
-    
-    
-
-
-
-  @%:@ Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then :
-  enableval=$enable_static; p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_static=yes ;;
-    no) enable_static=no ;;
-    *)
-     enable_static=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_static=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac
-else
-  enable_static=yes
-fi
-
-
-    
-    
-    
-    
-
-
-
-  
-@%:@ Check whether --with-pic was given.
-if test "${with_pic+set}" = set; then :
-  withval=$with_pic; pic_mode="$withval"
-else
-  pic_mode=default
-fi
-
-
-test -z "$pic_mode" && pic_mode=default
-
-
-    
-    
-    
-
-
-  @%:@ Check whether --enable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then :
-  enableval=$enable_fast_install; p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_fast_install=yes ;;
-    no) enable_fast_install=no ;;
-    *)
-      enable_fast_install=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_fast_install=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac
-else
-  enable_fast_install=yes
-fi
-
-
-
-    
-    
-    
-
-
-  
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-
-    
-    
-    
-
-    
-    
-    
-
-    
-    
-    
-
-    
-    
-    
-
-    
-    
-    
-
-    
-    
-    
-test -z "$LN_S" && LN_S="ln -s"
-
-    
-    
-    
-
-    
-    
-    
-
-    
-    
-    
-
-
-if test -n "${ZSH_VERSION+set}" ; then
-   setopt NO_GLOB_SUBST
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
-$as_echo_n "checking for objdir... " >&6; }
-if test "${lt_cv_objdir+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
-  lt_cv_objdir=.libs
-else
-  # MS-DOS does not allow filenames that begin with a dot.
-  lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
-$as_echo "$lt_cv_objdir" >&6; }
-objdir=$lt_cv_objdir
-
-    
-    
-    
-
-cat >>confdefs.h <<_ACEOF
-@%:@define LT_OBJDIR "$lt_cv_objdir/"
-_ACEOF
-
-
-
-
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-
-case $host_os in
-aix3*)
-  # AIX sometimes has problems with the GCC collect2 program.  For some
-  # reason, if we set the COLLECT_NAMES environment variable, the problems
-  # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
-    COLLECT_NAMES=
-    export COLLECT_NAMES
-  fi
-  ;;
-esac
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-for cc_temp in $compiler""; do
-  case $cc_temp in
-    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
-    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
-
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
-  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
-$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $MAGIC_CMD in
-[\\/*] |  ?:[\\/]*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/${ac_tool_prefix}file; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
-      if test -n "$file_magic_test_file"; then
-	case $deplibs_check_method in
-	"file_magic "*)
-	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-	    $EGREP "$file_magic_regex" > /dev/null; then
-	    :
-	  else
-	    cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool at gnu.org
-
-_LT_EOF
-	  fi ;;
-	esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-    
-    
-    
-
-if test -z "$lt_cv_path_MAGIC_CMD"; then
-  if test -n "$ac_tool_prefix"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
-$as_echo_n "checking for file... " >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $MAGIC_CMD in
-[\\/*] |  ?:[\\/]*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/file; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/file"
-      if test -n "$file_magic_test_file"; then
-	case $deplibs_check_method in
-	"file_magic "*)
-	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-	    $EGREP "$file_magic_regex" > /dev/null; then
-	    :
-	  else
-	    cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool at gnu.org
-
-_LT_EOF
-	  fi ;;
-	esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  else
-    MAGIC_CMD=:
-  fi
-fi
-
-  fi
-  ;;
-esac
-
-# Use C for the default configuration in the libtool script
-
-lt_save_CC="$CC"
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-objext=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
-  
-lt_prog_compiler_no_builtin_flag=
-
-if test "$GCC" = yes; then
-  lt_prog_compiler_no_builtin_flag=' -fno-builtin'
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_rtti_exceptions=no
-   ac_outfile=conftest.$ac_objext
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="-fno-rtti -fno-exceptions"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:__oline__: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_rtti_exceptions=yes
-     fi
-   fi
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
-
-if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
-    lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
-else
-    :
-fi
-
-fi
-
-    
-    
-    
-
-
-  lt_prog_compiler_wl=
-lt_prog_compiler_pic=
-lt_prog_compiler_static=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-
-  if test "$GCC" = yes; then
-    lt_prog_compiler_wl='-Wl,'
-    lt_prog_compiler_static='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	lt_prog_compiler_static='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            lt_prog_compiler_pic='-fPIC'
-        ;;
-      m68k)
-            # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
-            lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
-        ;;
-      esac
-      ;;
-
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | cygwin* | pw32* | os2* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      # Although the cygwin gcc ignores -fPIC, still need this for old-style
-      # (--disable-auto-import) libraries
-      lt_prog_compiler_pic='-DDLL_EXPORT'
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      lt_prog_compiler_pic='-fno-common'
-      ;;
-
-    hpux*)
-      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
-      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
-      # sets the default TLS model and affects inlining.
-      case $host_cpu in
-      hppa*64*)
-	# +Z the default
-	;;
-      *)
-	lt_prog_compiler_pic='-fPIC'
-	;;
-      esac
-      ;;
-
-    interix[3-9]*)
-      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-      # Instead, we relocate shared libraries at runtime.
-      ;;
-
-    msdosdjgpp*)
-      # Just because we use GCC doesn't mean we suddenly get shared libraries
-      # on systems that don't support them.
-      lt_prog_compiler_can_build_shared=no
-      enable_shared=no
-      ;;
-
-    *nto* | *qnx*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      lt_prog_compiler_pic='-fPIC -shared'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	lt_prog_compiler_pic=-Kconform_pic
-      fi
-      ;;
-
-    *)
-      lt_prog_compiler_pic='-fPIC'
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      lt_prog_compiler_wl='-Wl,'
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	lt_prog_compiler_static='-Bstatic'
-      else
-	lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-
-    mingw* | cygwin* | pw32* | os2* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic='-DDLL_EXPORT'
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      lt_prog_compiler_wl='-Wl,'
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case $host_cpu in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	lt_prog_compiler_pic='+Z'
-	;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      lt_prog_compiler_static='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      lt_prog_compiler_wl='-Wl,'
-      # PIC (with -KPIC) is the default.
-      lt_prog_compiler_static='-non_shared'
-      ;;
-
-    linux* | k*bsd*-gnu | kopensolaris*-gnu)
-      case $cc_basename in
-      # old Intel for x86_64 which still supported -KPIC.
-      ecc*)
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='-KPIC'
-	lt_prog_compiler_static='-static'
-        ;;
-      # icc used to be incompatible with GCC.
-      # ICC 10 doesn't accept -KPIC any more.
-      icc* | ifort*)
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='-fPIC'
-	lt_prog_compiler_static='-static'
-        ;;
-      # Lahey Fortran 8.1.
-      lf95*)
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='--shared'
-	lt_prog_compiler_static='--static'
-	;;
-      pgcc* | pgf77* | pgf90* | pgf95*)
-        # Portland Group compilers (*not* the Pentium gcc compiler,
-	# which looks to be a dead project)
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='-fpic'
-	lt_prog_compiler_static='-Bstatic'
-        ;;
-      ccc*)
-        lt_prog_compiler_wl='-Wl,'
-        # All Alpha code is PIC.
-        lt_prog_compiler_static='-non_shared'
-        ;;
-      xl*)
-	# IBM XL C 8.0/Fortran 10.1 on PPC
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='-qpic'
-	lt_prog_compiler_static='-qstaticlink'
-	;;
-      *)
-	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ C*)
-	  # Sun C 5.9
-	  lt_prog_compiler_pic='-KPIC'
-	  lt_prog_compiler_static='-Bstatic'
-	  lt_prog_compiler_wl='-Wl,'
-	  ;;
-	*Sun\ F*)
-	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
-	  lt_prog_compiler_pic='-KPIC'
-	  lt_prog_compiler_static='-Bstatic'
-	  lt_prog_compiler_wl=''
-	  ;;
-	esac
-	;;
-      esac
-      ;;
-
-    newsos6)
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    *nto* | *qnx*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      lt_prog_compiler_pic='-fPIC -shared'
-      ;;
-
-    osf3* | osf4* | osf5*)
-      lt_prog_compiler_wl='-Wl,'
-      # All OSF/1 code is PIC.
-      lt_prog_compiler_static='-non_shared'
-      ;;
-
-    rdos*)
-      lt_prog_compiler_static='-non_shared'
-      ;;
-
-    solaris*)
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      case $cc_basename in
-      f77* | f90* | f95*)
-	lt_prog_compiler_wl='-Qoption ld ';;
-      *)
-	lt_prog_compiler_wl='-Wl,';;
-      esac
-      ;;
-
-    sunos4*)
-      lt_prog_compiler_wl='-Qoption ld '
-      lt_prog_compiler_pic='-PIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3*)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-	lt_prog_compiler_pic='-Kconform_pic'
-	lt_prog_compiler_static='-Bstatic'
-      fi
-      ;;
-
-    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    unicos*)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_can_build_shared=no
-      ;;
-
-    uts4*)
-      lt_prog_compiler_pic='-pic'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    *)
-      lt_prog_compiler_can_build_shared=no
-      ;;
-    esac
-  fi
-
-case $host_os in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    lt_prog_compiler_pic=
-    ;;
-  *)
-    lt_prog_compiler_pic="$lt_prog_compiler_pic@&t@ -DPIC"
-    ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
-$as_echo "$lt_prog_compiler_pic" >&6; }
-
-    
-    
-    
-
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if test "${lt_cv_prog_compiler_pic_works+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_pic_works=no
-   ac_outfile=conftest.$ac_objext
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic@&t@ -DPIC"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:__oline__: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_pic_works=yes
-     fi
-   fi
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
-$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
-
-if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
-    case $lt_prog_compiler_pic in
-     "" | " "*) ;;
-     *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
-     esac
-else
-    lt_prog_compiler_pic=
-     lt_prog_compiler_can_build_shared=no
-fi
-
-fi
-
-    
-    
-    
-
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if test "${lt_cv_prog_compiler_static_works+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_static_works=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
-   echo "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The linker can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&5
-       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
-       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_cv_prog_compiler_static_works=yes
-       fi
-     else
-       lt_cv_prog_compiler_static_works=yes
-     fi
-   fi
-   $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
-$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
-
-if test x"$lt_cv_prog_compiler_static_works" = xyes; then
-    :
-else
-    lt_prog_compiler_static=
-fi
-
-
-    
-    
-    
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_c_o=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:__oline__: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_c_o=yes
-     fi
-   fi
-   chmod u+w . 2>&5
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
-
-    
-    
-    
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_c_o=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:__oline__: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_c_o=yes
-     fi
-   fi
-   chmod u+w . 2>&5
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
-
-
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-$as_echo_n "checking if we can lock with hard links... " >&6; }
-  hard_links=yes
-  $RM conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-$as_echo "$hard_links" >&6; }
-  if test "$hard_links" = no; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-    
-    
-    
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-
-  runpath_var=
-  allow_undefined_flag=
-  always_export_symbols=no
-  archive_cmds=
-  archive_expsym_cmds=
-  compiler_needs_object=no
-  enable_shared_with_static_runtimes=no
-  export_dynamic_flag_spec=
-  export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  hardcode_automatic=no
-  hardcode_direct=no
-  hardcode_direct_absolute=no
-  hardcode_libdir_flag_spec=
-  hardcode_libdir_flag_spec_ld=
-  hardcode_libdir_separator=
-  hardcode_minus_L=no
-  hardcode_shlibpath_var=unsupported
-  inherit_rpath=no
-  link_all_deplibs=unknown
-  module_cmds=
-  module_expsym_cmds=
-  old_archive_from_new_cmds=
-  old_archive_from_expsyms_cmds=
-  thread_safe_flag_spec=
-  whole_archive_flag_spec=
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  include_expsyms=
-  # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
-  exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  # Exclude shared library initialization/finalization symbols.
-  extract_expsyms_cmds=
-
-  case $host_os in
-  cygwin* | mingw* | pw32* | cegcc*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  interix*)
-    # we just hope/assume this is gcc and not c89 (= MSVC++)
-    with_gnu_ld=yes
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  linux* | k*bsd*-gnu)
-    link_all_deplibs=no
-    ;;
-  esac
-
-  ld_shlibs=yes
-  if test "$with_gnu_ld" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # Set some defaults for GNU ld with shared library support. These
-    # are reset later if shared libraries are not supported. Putting them
-    # here allows them to be overridden if necessary.
-    runpath_var=LD_RUN_PATH
-    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-    export_dynamic_flag_spec='${wl}--export-dynamic'
-    # ancient GNU ld didn't support --whole-archive et. al.
-    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
-      whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-    else
-      whole_archive_flag_spec=
-    fi
-    supports_anon_versioning=no
-    case `$LD -v 2>&1` in
-      *GNU\ gold*) supports_anon_versioning=yes ;;
-      *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
-      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
-      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
-      *\ 2.11.*) ;; # other 2.11 versions
-      *) supports_anon_versioning=yes ;;
-    esac
-
-    # See if GNU ld supports shared libraries.
-    case $host_os in
-    aix[3-9]*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-	ld_shlibs=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-_LT_EOF
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-            archive_expsym_cmds=''
-        ;;
-      m68k)
-            archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-            hardcode_libdir_flag_spec='-L$libdir'
-            hardcode_minus_L=yes
-        ;;
-      esac
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	allow_undefined_flag=unsupported
-	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32* | cegcc*)
-      # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
-      # as there is no search path for DLLs.
-      hardcode_libdir_flag_spec='-L$libdir'
-      allow_undefined_flag=unsupported
-      always_export_symbols=no
-      enable_shared_with_static_runtimes=yes
-      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
-
-      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	# If the export-symbols file already is a .def file (1st line
-	# is EXPORTS), use it as is; otherwise, prepend...
-	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	  cp $export_symbols $output_objdir/$soname.def;
-	else
-	  echo EXPORTS > $output_objdir/$soname.def;
-	  cat $export_symbols >> $output_objdir/$soname.def;
-	fi~
-	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    interix[3-9]*)
-      hardcode_direct=no
-      hardcode_shlibpath_var=no
-      hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-      export_dynamic_flag_spec='${wl}-E'
-      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-      # Instead, shared libraries are loaded at an image base (0x10000000 by
-      # default) and relocated if they conflict, which is a slow very memory
-      # consuming and fragmenting process.  To avoid this, we pick a random,
-      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-      archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      ;;
-
-    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
-      tmp_diet=no
-      if test "$host_os" = linux-dietlibc; then
-	case $cc_basename in
-	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
-	esac
-      fi
-      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
-	 && test "$tmp_diet" = no
-      then
-	tmp_addflag=
-	tmp_sharedflag='-shared'
-	case $cc_basename,$host_cpu in
-        pgcc*)				# Portland Group C compiler
-	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag'
-	  ;;
-	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
-	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag -Mnomain' ;;
-	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
-	  tmp_addflag=' -i_dynamic' ;;
-	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
-	  tmp_addflag=' -i_dynamic -nofor_main' ;;
-	ifc* | ifort*)			# Intel Fortran compiler
-	  tmp_addflag=' -nofor_main' ;;
-	lf95*)				# Lahey Fortran 8.1
-	  whole_archive_flag_spec=
-	  tmp_sharedflag='--shared' ;;
-	xl[cC]*)			# IBM XL C 8.0 on PPC (deal with xlf below)
-	  tmp_sharedflag='-qmkshrobj'
-	  tmp_addflag= ;;
-	esac
-	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ C*)			# Sun C 5.9
-	  whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
-	  compiler_needs_object=yes
-	  tmp_sharedflag='-G' ;;
-	*Sun\ F*)			# Sun Fortran 8.3
-	  tmp_sharedflag='-G' ;;
-	esac
-	archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
-        if test "x$supports_anon_versioning" = xyes; then
-          archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
-	    cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-	    echo "local: *; };" >> $output_objdir/$libname.ver~
-	    $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-        fi
-
-	case $cc_basename in
-	xlf*)
-	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
-	  whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
-	  hardcode_libdir_flag_spec=
-	  hardcode_libdir_flag_spec_ld='-rpath $libdir'
-	  archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
-	  if test "x$supports_anon_versioning" = xyes; then
-	    archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
-	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-	      echo "local: *; };" >> $output_objdir/$libname.ver~
-	      $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
-	  fi
-	  ;;
-	esac
-      else
-        ld_shlibs=no
-      fi
-      ;;
-
-    netbsd* | netbsdelf*-gnu)
-      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-	wlarc=
-      else
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris*)
-      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
-	ld_shlibs=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
-      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
-      case `$LD -v 2>&1` in
-        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
-	ld_shlibs=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
-	;;
-	*)
-	  # For security reasons, it is highly recommended that you always
-	  # use absolute paths for naming shared libraries, and exclude the
-	  # DT_RUNPATH tag from executables and libraries.  But doing so
-	  # requires that you compile everything twice, which is a pain.
-	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-	    archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-	  else
-	    ld_shlibs=no
-	  fi
-	;;
-      esac
-      ;;
-
-    sunos4*)
-      archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    *)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-    esac
-
-    if test "$ld_shlibs" = no; then
-      runpath_var=
-      hardcode_libdir_flag_spec=
-      export_dynamic_flag_spec=
-      whole_archive_flag_spec=
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      allow_undefined_flag=unsupported
-      always_export_symbols=yes
-      archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      hardcode_minus_L=yes
-      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
-	# Neither direct hardcoding nor static linking is supported with a
-	# broken collect2.
-	hardcode_direct=unsupported
-      fi
-      ;;
-
-    aix[4-9]*)
-      if test "$host_cpu" = ia64; then
-	# On IA64, the linker does run time linking by default, so we don't
-	# have to do anything special.
-	aix_use_runtimelinking=no
-	exp_sym_flag='-Bexport'
-	no_entry_flag=""
-      else
-	# If we're using GNU nm, then we don't want the "-C" option.
-	# -C means demangle to AIX nm, but means don't demangle with GNU nm
-	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-	  export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-	else
-	  export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-	fi
-	aix_use_runtimelinking=no
-
-	# Test if we are trying to use run time linking or normal
-	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
-	# need to do runtime linking.
-	case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
-	  for ld_flag in $LDFLAGS; do
-	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-	    aix_use_runtimelinking=yes
-	    break
-	  fi
-	  done
-	  ;;
-	esac
-
-	exp_sym_flag='-bexport'
-	no_entry_flag='-bnoentry'
-      fi
-
-      # When large executables or shared objects are built, AIX ld can
-      # have problems creating the table of contents.  If linking a library
-      # or program results in "error TOC overflow" add -mminimal-toc to
-      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-      archive_cmds=''
-      hardcode_direct=yes
-      hardcode_direct_absolute=yes
-      hardcode_libdir_separator=':'
-      link_all_deplibs=yes
-      file_list_spec='${wl}-f,'
-
-      if test "$GCC" = yes; then
-	case $host_os in aix4.[012]|aix4.[012].*)
-	# We only want to do this on AIX 4.2 and lower, the check
-	# below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" &&
-	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
-	  then
-	  # We have reworked collect2
-	  :
-	  else
-	  # We have old collect2
-	  hardcode_direct=unsupported
-	  # It fails to find uninstalled libraries when the uninstalled
-	  # path is not listed in the libpath.  Setting hardcode_minus_L
-	  # to unsupported forces relinking
-	  hardcode_minus_L=yes
-	  hardcode_libdir_flag_spec='-L$libdir'
-	  hardcode_libdir_separator=
-	  fi
-	  ;;
-	esac
-	shared_flag='-shared'
-	if test "$aix_use_runtimelinking" = yes; then
-	  shared_flag="$shared_flag "'${wl}-G'
-	fi
-	link_all_deplibs=no
-      else
-	# not using gcc
-	if test "$host_cpu" = ia64; then
-	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	# chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-	else
-	  if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag='${wl}-G'
-	  else
-	    shared_flag='${wl}-bM:SRE'
-	  fi
-	fi
-      fi
-
-      export_dynamic_flag_spec='${wl}-bexpall'
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      always_export_symbols=yes
-      if test "$aix_use_runtimelinking" = yes; then
-	# Warning - without using the other runtime loading flags (-brtl),
-	# -berok will link without error, but may produce a broken library.
-	allow_undefined_flag='-berok'
-        # Determine the default libpath from the value encoded in an
-        # empty executable.
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-	/^0/ {
-	    s/^0  *\(.*\)$/\1/
-	    p
-	}
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-      else
-	if test "$host_cpu" = ia64; then
-	  hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
-	  allow_undefined_flag="-z nodefs"
-	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
-	else
-	 # Determine the default libpath from the value encoded in an
-	 # empty executable.
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-	/^0/ {
-	    s/^0  *\(.*\)$/\1/
-	    p
-	}
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-	 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-	  # Warning - without using the other run time loading flags,
-	  # -berok will link without error, but may produce a broken library.
-	  no_undefined_flag=' ${wl}-bernotok'
-	  allow_undefined_flag=' ${wl}-berok'
-	  # Exported symbols can be pulled into shared objects from archives
-	  whole_archive_flag_spec='$convenience'
-	  archive_cmds_need_lc=yes
-	  # This is similar to how AIX traditionally builds its shared libraries.
-	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-	fi
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-            archive_expsym_cmds=''
-        ;;
-      m68k)
-            archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-            hardcode_libdir_flag_spec='-L$libdir'
-            hardcode_minus_L=yes
-        ;;
-      esac
-      ;;
-
-    bsdi[45]*)
-      export_dynamic_flag_spec=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32* | cegcc*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      hardcode_libdir_flag_spec=' '
-      allow_undefined_flag=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      old_archive_from_new_cmds='true'
-      # FIXME: Should let the user specify the lib program.
-      old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
-      enable_shared_with_static_runtimes=yes
-      ;;
-
-    darwin* | rhapsody*)
-      
-  
-  archive_cmds_need_lc=no
-  hardcode_direct=no
-  hardcode_automatic=yes
-  hardcode_shlibpath_var=unsupported
-  whole_archive_flag_spec=''
-  link_all_deplibs=yes
-  allow_undefined_flag="$_lt_dar_allow_undefined"
-  case $cc_basename in
-     ifort*) _lt_dar_can_shared=yes ;;
-     *) _lt_dar_can_shared=$GCC ;;
-  esac
-  if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=echo
-    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
-    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
-    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
-    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
-    
-  else
-  ld_shlibs=no
-  fi
-
-      ;;
-
-    dgux*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_shlibpath_var=no
-      ;;
-
-    freebsd1*)
-      ld_shlibs=no
-      ;;
-
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
-      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct=yes
-      hardcode_minus_L=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | dragonfly*)
-      archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-	archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-	archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      fi
-      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-      hardcode_libdir_separator=:
-      hardcode_direct=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      hardcode_minus_L=yes
-      export_dynamic_flag_spec='${wl}-E'
-      ;;
-
-    hpux10*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      if test "$with_gnu_ld" = no; then
-	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-	hardcode_libdir_flag_spec_ld='+b $libdir'
-	hardcode_libdir_separator=:
-	hardcode_direct=yes
-	hardcode_direct_absolute=yes
-	export_dynamic_flag_spec='${wl}-E'
-	# hardcode_minus_L: Not really in the search PATH,
-	# but as the default location of the library.
-	hardcode_minus_L=yes
-      fi
-      ;;
-
-    hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	case $host_cpu in
-	hppa*64*)
-	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      else
-	case $host_cpu in
-	hppa*64*)
-	  archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      fi
-      if test "$with_gnu_ld" = no; then
-	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-	hardcode_libdir_separator=:
-
-	case $host_cpu in
-	hppa*64*|ia64*)
-	  hardcode_direct=no
-	  hardcode_shlibpath_var=no
-	  ;;
-	*)
-	  hardcode_direct=yes
-	  hardcode_direct_absolute=yes
-	  export_dynamic_flag_spec='${wl}-E'
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  hardcode_minus_L=yes
-	  ;;
-	esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	# Try to use the -exported_symbol ld option, if it does not
-	# work, assume that -exports_file does not work either and
-	# implicitly export all symbols.
-        save_LDFLAGS="$LDFLAGS"
-        LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-int foo(void) {}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-        
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-        LDFLAGS="$save_LDFLAGS"
-      else
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
-      fi
-      archive_cmds_need_lc='no'
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      inherit_rpath=yes
-      link_all_deplibs=yes
-      ;;
-
-    netbsd* | netbsdelf*-gnu)
-      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-	archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    newsos6)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct=yes
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      hardcode_shlibpath_var=no
-      ;;
-
-    *nto* | *qnx*)
-      ;;
-
-    openbsd*)
-      if test -f /usr/libexec/ld.so; then
-	hardcode_direct=yes
-	hardcode_shlibpath_var=no
-	hardcode_direct_absolute=yes
-	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	  archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	  archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-	  hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-	  export_dynamic_flag_spec='${wl}-E'
-	else
-	  case $host_os in
-	   openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-	     archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-	     hardcode_libdir_flag_spec='-R$libdir'
-	     ;;
-	   *)
-	     archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	     hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-	     ;;
-	  esac
-	fi
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    os2*)
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_minus_L=yes
-      allow_undefined_flag=unsupported
-      archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	allow_undefined_flag=' -expect_unresolved \*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      archive_cmds_need_lc='no'
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      ;;
-
-    osf4* | osf5*)	# as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      else
-	allow_undefined_flag=' -expect_unresolved \*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-	archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
-
-	# Both c and cxx compiler support -rpath directly
-	hardcode_libdir_flag_spec='-rpath $libdir'
-      fi
-      archive_cmds_need_lc='no'
-      hardcode_libdir_separator=:
-      ;;
-
-    solaris*)
-      no_undefined_flag=' -z defs'
-      if test "$GCC" = yes; then
-	wlarc='${wl}'
-	archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-      else
-	case `$CC -V 2>&1` in
-	*"Compilers 5.0"*)
-	  wlarc=''
-	  archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
-	  ;;
-	*)
-	  wlarc='${wl}'
-	  archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
-	  archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-	  ;;
-	esac
-      fi
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_shlibpath_var=no
-      case $host_os in
-      solaris2.[0-5] | solaris2.[0-5].*) ;;
-      *)
-	# The compiler driver will combine and reorder linker options,
-	# but understands `-z linker_flag'.  GCC discards it without `$wl',
-	# but is careful enough not to reorder.
-	# Supported since Solaris 2.6 (maybe 2.5.1?)
-	if test "$GCC" = yes; then
-	  whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-	else
-	  whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
-	fi
-	;;
-      esac
-      link_all_deplibs=yes
-      ;;
-
-    sunos4*)
-      if test "x$host_vendor" = xsequent; then
-	# Use $CC to link under sequent, because it throws in some extra .o
-	# files that make .init and .fini sections work.
-	archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_direct=yes
-      hardcode_minus_L=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-	sni)
-	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  hardcode_direct=yes # is this really true???
-	;;
-	siemens)
-	  ## LD is ld it makes a PLAMLIB
-	  ## CC just makes a GrossModule.
-	  archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-	  reload_cmds='$CC -r -o $output$reload_objs'
-	  hardcode_direct=no
-        ;;
-	motorola)
-	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  hardcode_direct=no #Motorola manual says yes, but my tests say they lie
-	;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var=no
-      ;;
-
-    sysv4.3*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var=no
-      export_dynamic_flag_spec='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	hardcode_shlibpath_var=no
-	runpath_var=LD_RUN_PATH
-	hardcode_runpath_var=yes
-	ld_shlibs=yes
-      fi
-      ;;
-
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
-      no_undefined_flag='${wl}-z,text'
-      archive_cmds_need_lc=no
-      hardcode_shlibpath_var=no
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-	archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    sysv5* | sco3.2v5* | sco5v6*)
-      # Note: We can NOT use -z defs as we might desire, because we do not
-      # link with -lc, and that would cause any symbols used from libc to
-      # always be unresolved, which means just about no library would
-      # ever link correctly.  If we're not using GNU ld we use -z text
-      # though, which does catch some bad symbols but isn't as heavy-handed
-      # as -z defs.
-      no_undefined_flag='${wl}-z,text'
-      allow_undefined_flag='${wl}-z,nodefs'
-      archive_cmds_need_lc=no
-      hardcode_shlibpath_var=no
-      hardcode_libdir_flag_spec='${wl}-R,$libdir'
-      hardcode_libdir_separator=':'
-      link_all_deplibs=yes
-      export_dynamic_flag_spec='${wl}-Bexport'
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-	archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    uts4*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_shlibpath_var=no
-      ;;
-
-    *)
-      ld_shlibs=no
-      ;;
-    esac
-
-    if test x$host_vendor = xsni; then
-      case $host in
-      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-	export_dynamic_flag_spec='${wl}-Blargedynsym'
-	;;
-      esac
-    fi
-  fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
-$as_echo "$ld_shlibs" >&6; }
-test "$ld_shlibs" = no && can_build_shared=no
-
-with_gnu_ld=$with_gnu_ld
-
-
-    
-    
-    
-
-    
-    
-    
-
-    
-    
-    
-
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc" in
-x|xyes)
-  # Assume -lc should be added
-  archive_cmds_need_lc=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $archive_cmds in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-      $RM conftest*
-      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$lt_prog_compiler_wl
-	pic_flag=$lt_prog_compiler_pic
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$allow_undefined_flag
-        allow_undefined_flag=
-        if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
-  (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-        then
-	  archive_cmds_need_lc=no
-        else
-	  archive_cmds_need_lc=yes
-        fi
-        allow_undefined_flag=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $RM conftest*
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5
-$as_echo "$archive_cmds_need_lc" >&6; }
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-$as_echo_n "checking dynamic linker characteristics... " >&6; }
-
-if test "$GCC" = yes; then
-  case $host_os in
-    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
-    *) lt_awk_arg="/^libraries:/" ;;
-  esac
-  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
-  # Ok, now we have the path, separated by spaces, we can step through it
-  # and add multilib dir if necessary.
-  lt_tmp_lt_search_path_spec=
-  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
-  for lt_sys_path in $lt_search_path_spec; do
-    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
-      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
-    else
-      test -d "$lt_sys_path" && \
-	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
-    fi
-  done
-  lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
-BEGIN {RS=" "; FS="/|\n";} {
-  lt_foo="";
-  lt_count=0;
-  for (lt_i = NF; lt_i > 0; lt_i--) {
-    if ($lt_i != "" && $lt_i != ".") {
-      if ($lt_i == "..") {
-        lt_count++;
-      } else {
-        if (lt_count == 0) {
-          lt_foo="/" $lt_i lt_foo;
-        } else {
-          lt_count--;
-        }
-      }
-    }
-  }
-  if (lt_foo != "") { lt_freq[lt_foo]++; }
-  if (lt_freq[lt_foo] == 1) { print lt_foo; }
-}'`
-  sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix[4-9]*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  case $host_cpu in
-  powerpc)
-    # Since July 2007 AmigaOS4 officially supports .so libraries.
-    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    ;;
-  m68k)
-    library_names_spec='$libname.ixlibrary $libname.a'
-    # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-    ;;
-  esac
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[45]*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname~
-      chmod a+x \$dldir/$dlname~
-      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
-        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
-      fi'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw* | cegcc*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-
-  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-freebsd* | dragonfly*)
-  # DragonFly does not have aout.  When/if they implement a new
-  # versioning mechanism, adjust this.
-  if test -x /usr/bin/objformat; then
-    objformat=`/usr/bin/objformat`
-  else
-    case $host_os in
-    freebsd[123]*) objformat=aout ;;
-    *) objformat=elf ;;
-    esac
-  fi
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[01]* | freebsdelf3.[01]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
-  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  *) # from 4.6 on, and DragonFly
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case $host_cpu in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  hppa*64*)
-    shrext_cmds='.sl'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-interix[3-9]*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # Some binutils ld are patched to set DT_RUNPATH
-  save_LDFLAGS=$LDFLAGS
-  save_libdir=$libdir
-  eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
-       LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
-  shlibpath_overrides_runpath=yes
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-  LDFLAGS=$save_LDFLAGS
-  libdir=$save_libdir
-
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-netbsdelf*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='NetBSD ld.elf_so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-*nto* | *qnx*)
-  version_type=qnx
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='ldqnx.so'
-  ;;
-
-openbsd*)
-  version_type=sunos
-  sys_lib_dlsearch_path_spec="/usr/lib"
-  need_lib_prefix=no
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
-    *)				need_version=no  ;;
-  esac
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-	shlibpath_overrides_runpath=no
-	;;
-      *)
-	shlibpath_overrides_runpath=yes
-	;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-rdos*)
-  dynamic_linker=no
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  version_type=freebsd-elf
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  if test "$with_gnu_ld" = yes; then
-    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
-  else
-    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
-    case $host_os in
-      sco3.2v5*)
-        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
-	;;
-    esac
-  fi
-  sys_lib_dlsearch_path_spec='/usr/lib'
-  ;;
-
-tpf*)
-  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
-hardcode_action=
-if test -n "$hardcode_libdir_flag_spec" ||
-   test -n "$runpath_var" ||
-   test "X$hardcode_automatic" = "Xyes" ; then
-
-  # We can hardcode non-existent directories.
-  if test "$hardcode_direct" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
-     test "$hardcode_minus_L" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action=unsupported
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
-$as_echo "$hardcode_action" >&6; }
-
-if test "$hardcode_action" = relink ||
-   test "$inherit_rpath" = yes; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-    
-    
-    
-
-
-  if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32* | cegcc*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-    ;;
-
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-    ;;
-
-  darwin*)
-  # if libdl is installed we need to link against it
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dl_dlopen=yes
-else
-  ac_cv_lib_dl_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-  
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    
-fi
-
-    ;;
-
-  *)
-    ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
-if test "x$ac_cv_func_shl_load" = x""yes; then :
-  lt_cv_dlopen="shl_load"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
-$as_echo_n "checking for shl_load in -ldld... " >&6; }
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-int
-main ()
-{
-return shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dld_shl_load=yes
-else
-  ac_cv_lib_dld_shl_load=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
-$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
-if test "x$ac_cv_lib_dld_shl_load" = x""yes; then :
-  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
-else
-  ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
-if test "x$ac_cv_func_dlopen" = x""yes; then :
-  lt_cv_dlopen="dlopen"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dl_dlopen=yes
-else
-  ac_cv_lib_dl_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
-$as_echo_n "checking for dlopen in -lsvld... " >&6; }
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_svld_dlopen=yes
-else
-  ac_cv_lib_svld_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
-$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
-if test "x$ac_cv_lib_svld_dlopen" = x""yes; then :
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
-$as_echo_n "checking for dld_link in -ldld... " >&6; }
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dld_link ();
-int
-main ()
-{
-return dld_link ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dld_dld_link=yes
-else
-  ac_cv_lib_dld_dld_link=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
-$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
-if test "x$ac_cv_lib_dld_dld_link" = x""yes; then :
-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
-fi
-
-	      
-fi
-
-	    
-fi
-
-	  
-fi
-
-	
-fi
-
-      
-fi
-
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
-$as_echo_n "checking whether a program can dlopen itself... " >&6; }
-if test "${lt_cv_dlopen_self+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  	  if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<_LT_EOF
-#line __oline__ "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-  else
-    puts (dlerror ());
-
-  return status;
-}
-_LT_EOF
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) >&5 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self=no
-  fi
-fi
-rm -fr conftest*
-
-    
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
-$as_echo "$lt_cv_dlopen_self" >&6; }
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
-$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
-if test "${lt_cv_dlopen_self_static+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  	  if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self_static=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<_LT_EOF
-#line __oline__ "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-  else
-    puts (dlerror ());
-
-  return status;
-}
-_LT_EOF
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) >&5 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self_static=no
-  fi
-fi
-rm -fr conftest*
-
-      
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
-$as_echo "$lt_cv_dlopen_self_static" >&6; }
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-  
-striplib=
-old_striplib=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
-$as_echo_n "checking whether stripping libraries is possible... " >&6; }
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-  darwin*)
-    if test -n "$STRIP" ; then
-      striplib="$STRIP -x"
-      old_striplib="$STRIP -S"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-    else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-    fi
-    ;;
-  *)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-    ;;
-  esac
-fi
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-
-  # Report which library types will actually be built
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
-$as_echo_n "checking if libtool supports shared libraries... " >&6; }
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
-$as_echo "$can_build_shared" >&6; }
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
-$as_echo_n "checking whether to build shared libraries... " >&6; }
-  test "$can_build_shared" = "no" && enable_shared=no
-
-  # On AIX, shared libraries and static libraries use the same namespace, and
-  # are all built from PIC.
-  case $host_os in
-  aix3*)
-    test "$enable_shared" = yes && enable_static=no
-    if test -n "$RANLIB"; then
-      archive_cmds="$archive_cmds~\$RANLIB \$lib"
-      postinstall_cmds='$RANLIB $lib'
-    fi
-    ;;
-
-  aix[4-9]*)
-    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-      test "$enable_shared" = yes && enable_static=no
-    fi
-    ;;
-  esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
-$as_echo "$enable_shared" >&6; }
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
-$as_echo_n "checking whether to build static libraries... " >&6; }
-  # Make sure either enable_shared or enable_static is yes.
-  test "$enable_shared" = yes || enable_static=yes
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
-$as_echo "$enable_static" >&6; }
-
-  
-
-
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC="$lt_save_CC"
-
-      
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-archive_cmds_need_lc_CXX=no
-allow_undefined_flag_CXX=
-always_export_symbols_CXX=no
-archive_expsym_cmds_CXX=
-compiler_needs_object_CXX=no
-export_dynamic_flag_spec_CXX=
-hardcode_direct_CXX=no
-hardcode_direct_absolute_CXX=no
-hardcode_libdir_flag_spec_CXX=
-hardcode_libdir_flag_spec_ld_CXX=
-hardcode_libdir_separator_CXX=
-hardcode_minus_L_CXX=no
-hardcode_shlibpath_var_CXX=unsupported
-hardcode_automatic_CXX=no
-inherit_rpath_CXX=no
-module_cmds_CXX=
-module_expsym_cmds_CXX=
-link_all_deplibs_CXX=unknown
-old_archive_cmds_CXX=$old_archive_cmds
-no_undefined_flag_CXX=
-whole_archive_flag_spec_CXX=
-enable_shared_with_static_runtimes_CXX=no
-
-# Source file extension for C++ test sources.
-ac_ext=cpp
-
-# Object file extension for compiled C++ test sources.
-objext=o
-objext_CXX=$objext
-
-# No sense in running all these tests if we already determined that
-# the CXX compiler isn't working.  Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_caught_CXX_error" != yes; then
-  # Code to be used in simple compile tests
-  lt_simple_compile_test_code="int some_variable = 0;"
-
-  # Code to be used in simple link tests
-  lt_simple_link_test_code='int main(int, char *[]) { return(0); }'
-
-  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-  
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-  # save warnings/boilerplate of simple test code
-  ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-
-  ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-
-
-  # Allow CC to be a program name with arguments.
-  lt_save_CC=$CC
-  lt_save_LD=$LD
-  lt_save_GCC=$GCC
-  GCC=$GXX
-  lt_save_with_gnu_ld=$with_gnu_ld
-  lt_save_path_LD=$lt_cv_path_LD
-  if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
-    lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
-  else
-    $as_unset lt_cv_prog_gnu_ld
-  fi
-  if test -n "${lt_cv_path_LDCXX+set}"; then
-    lt_cv_path_LD=$lt_cv_path_LDCXX
-  else
-    $as_unset lt_cv_path_LD
-  fi
-  test -z "${LDCXX+set}" || LD=$LDCXX
-  CC=${CXX-"c++"}
-  compiler=$CC
-  compiler_CXX=$CC
-  for cc_temp in $compiler""; do
-  case $cc_temp in
-    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
-    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
-
-
-  if test -n "$compiler"; then
-    # We don't want -fno-exception when compiling C++ code, so set the
-    # no_builtin_flag separately
-    if test "$GXX" = yes; then
-      lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
-    else
-      lt_prog_compiler_no_builtin_flag_CXX=
-    fi
-
-    if test "$GXX" = yes; then
-      # Set up default GNU C++ configuration
-
-      
-
-@%:@ Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
-  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else
-  with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [\\/]* | ?:[\\/]*)
-      re_direlt='/[^/][^/]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
-      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
-fi
-if test "${lt_cv_path_LD+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some variants of GNU ld only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-	test "$with_gnu_ld" != no && break
-	;;
-      *)
-	test "$with_gnu_ld" != yes && break
-	;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if test "${lt_cv_prog_gnu_ld+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-$as_echo "$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-
-
-
-
-
-      # Check if GNU C++ uses GNU ld as the underlying linker, since the
-      # archiving commands below assume that GNU ld is being used.
-      if test "$with_gnu_ld" = yes; then
-        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
-        hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-        export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-
-        # If archive_cmds runs LD, not CC, wlarc should be empty
-        # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
-        #     investigate it a little bit more. (MM)
-        wlarc='${wl}'
-
-        # ancient GNU ld didn't support --whole-archive et. al.
-        if eval "`$CC -print-prog-name=ld` --help 2>&1" |
-	  $GREP 'no-whole-archive' > /dev/null; then
-          whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-        else
-          whole_archive_flag_spec_CXX=
-        fi
-      else
-        with_gnu_ld=no
-        wlarc=
-
-        # A generic and very simple default shared library creation
-        # command for GNU C++ for the case where it uses the native
-        # linker, instead of GNU ld.  If possible, this setting should
-        # overridden to take advantage of the native linker features on
-        # the platform it is being used on.
-        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-      fi
-
-      # Commands to make compiler produce verbose output that lists
-      # what "hidden" libraries, object files and flags are used when
-      # linking a shared library.
-      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
-
-    else
-      GXX=no
-      with_gnu_ld=no
-      wlarc=
-    fi
-
-    # PORTME: fill in a description of your system's C++ link characteristics
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-    ld_shlibs_CXX=yes
-    case $host_os in
-      aix3*)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-        ;;
-      aix[4-9]*)
-        if test "$host_cpu" = ia64; then
-          # On IA64, the linker does run time linking by default, so we don't
-          # have to do anything special.
-          aix_use_runtimelinking=no
-          exp_sym_flag='-Bexport'
-          no_entry_flag=""
-        else
-          aix_use_runtimelinking=no
-
-          # Test if we are trying to use run time linking or normal
-          # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-          # need to do runtime linking.
-          case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
-	    for ld_flag in $LDFLAGS; do
-	      case $ld_flag in
-	      *-brtl*)
-	        aix_use_runtimelinking=yes
-	        break
-	        ;;
-	      esac
-	    done
-	    ;;
-          esac
-
-          exp_sym_flag='-bexport'
-          no_entry_flag='-bnoentry'
-        fi
-
-        # When large executables or shared objects are built, AIX ld can
-        # have problems creating the table of contents.  If linking a library
-        # or program results in "error TOC overflow" add -mminimal-toc to
-        # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-        # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-        archive_cmds_CXX=''
-        hardcode_direct_CXX=yes
-        hardcode_direct_absolute_CXX=yes
-        hardcode_libdir_separator_CXX=':'
-        link_all_deplibs_CXX=yes
-        file_list_spec_CXX='${wl}-f,'
-
-        if test "$GXX" = yes; then
-          case $host_os in aix4.[012]|aix4.[012].*)
-          # We only want to do this on AIX 4.2 and lower, the check
-          # below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" &&
-	     strings "$collect2name" | $GREP resolve_lib_name >/dev/null
-	  then
-	    # We have reworked collect2
-	    :
-	  else
-	    # We have old collect2
-	    hardcode_direct_CXX=unsupported
-	    # It fails to find uninstalled libraries when the uninstalled
-	    # path is not listed in the libpath.  Setting hardcode_minus_L
-	    # to unsupported forces relinking
-	    hardcode_minus_L_CXX=yes
-	    hardcode_libdir_flag_spec_CXX='-L$libdir'
-	    hardcode_libdir_separator_CXX=
-	  fi
-          esac
-          shared_flag='-shared'
-	  if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag="$shared_flag "'${wl}-G'
-	  fi
-        else
-          # not using gcc
-          if test "$host_cpu" = ia64; then
-	  # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	  # chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-          else
-	    if test "$aix_use_runtimelinking" = yes; then
-	      shared_flag='${wl}-G'
-	    else
-	      shared_flag='${wl}-bM:SRE'
-	    fi
-          fi
-        fi
-
-        export_dynamic_flag_spec_CXX='${wl}-bexpall'
-        # It seems that -bexpall does not export symbols beginning with
-        # underscore (_), so it is better to generate a list of symbols to
-	# export.
-        always_export_symbols_CXX=yes
-        if test "$aix_use_runtimelinking" = yes; then
-          # Warning - without using the other runtime loading flags (-brtl),
-          # -berok will link without error, but may produce a broken library.
-          allow_undefined_flag_CXX='-berok'
-          # Determine the default libpath from the value encoded in an empty
-          # executable.
-          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-	/^0/ {
-	    s/^0  *\(.*\)$/\1/
-	    p
-	}
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-          hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
-
-          archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-        else
-          if test "$host_cpu" = ia64; then
-	    hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
-	    allow_undefined_flag_CXX="-z nodefs"
-	    archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
-          else
-	    # Determine the default libpath from the value encoded in an
-	    # empty executable.
-	    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-	/^0/ {
-	    s/^0  *\(.*\)$/\1/
-	    p
-	}
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-	    hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
-	    # Warning - without using the other run time loading flags,
-	    # -berok will link without error, but may produce a broken library.
-	    no_undefined_flag_CXX=' ${wl}-bernotok'
-	    allow_undefined_flag_CXX=' ${wl}-berok'
-	    # Exported symbols can be pulled into shared objects from archives
-	    whole_archive_flag_spec_CXX='$convenience'
-	    archive_cmds_need_lc_CXX=yes
-	    # This is similar to how AIX traditionally builds its shared
-	    # libraries.
-	    archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-          fi
-        fi
-        ;;
-
-      beos*)
-	if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	  allow_undefined_flag_CXX=unsupported
-	  # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
-	  # support --undefined.  This deserves some investigation.  FIXME
-	  archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	else
-	  ld_shlibs_CXX=no
-	fi
-	;;
-
-      chorus*)
-        case $cc_basename in
-          *)
-	  # FIXME: insert proper C++ library support
-	  ld_shlibs_CXX=no
-	  ;;
-        esac
-        ;;
-
-      cygwin* | mingw* | pw32* | cegcc*)
-        # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
-        # as there is no search path for DLLs.
-        hardcode_libdir_flag_spec_CXX='-L$libdir'
-        allow_undefined_flag_CXX=unsupported
-        always_export_symbols_CXX=no
-        enable_shared_with_static_runtimes_CXX=yes
-
-        if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-          archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-          # If the export-symbols file already is a .def file (1st line
-          # is EXPORTS), use it as is; otherwise, prepend...
-          archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	    cp $export_symbols $output_objdir/$soname.def;
-          else
-	    echo EXPORTS > $output_objdir/$soname.def;
-	    cat $export_symbols >> $output_objdir/$soname.def;
-          fi~
-          $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-        else
-          ld_shlibs_CXX=no
-        fi
-        ;;
-      darwin* | rhapsody*)
-        
-  
-  archive_cmds_need_lc_CXX=no
-  hardcode_direct_CXX=no
-  hardcode_automatic_CXX=yes
-  hardcode_shlibpath_var_CXX=unsupported
-  whole_archive_flag_spec_CXX=''
-  link_all_deplibs_CXX=yes
-  allow_undefined_flag_CXX="$_lt_dar_allow_undefined"
-  case $cc_basename in
-     ifort*) _lt_dar_can_shared=yes ;;
-     *) _lt_dar_can_shared=$GCC ;;
-  esac
-  if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=echo
-    archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
-    module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
-    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
-    module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
-       if test "$lt_cv_apple_cc_single_mod" != "yes"; then
-      archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
-      archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
-    fi
-
-  else
-  ld_shlibs_CXX=no
-  fi
-
-	;;
-
-      dgux*)
-        case $cc_basename in
-          ec++*)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          ghcx*)
-	    # Green Hills C++ Compiler
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-        esac
-        ;;
-
-      freebsd[12]*)
-        # C++ shared libraries reported to be fairly broken before
-	# switch to ELF
-        ld_shlibs_CXX=no
-        ;;
-
-      freebsd-elf*)
-        archive_cmds_need_lc_CXX=no
-        ;;
-
-      freebsd* | dragonfly*)
-        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
-        # conventions
-        ld_shlibs_CXX=yes
-        ;;
-
-      gnu*)
-        ;;
-
-      hpux9*)
-        hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
-        hardcode_libdir_separator_CXX=:
-        export_dynamic_flag_spec_CXX='${wl}-E'
-        hardcode_direct_CXX=yes
-        hardcode_minus_L_CXX=yes # Not in the search PATH,
-				             # but as the default
-				             # location of the library.
-
-        case $cc_basename in
-          CC*)
-            # FIXME: insert proper C++ library support
-            ld_shlibs_CXX=no
-            ;;
-          aCC*)
-            archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-            # Commands to make compiler produce verbose output that lists
-            # what "hidden" libraries, object files and flags are used when
-            # linking a shared library.
-            #
-            # There doesn't appear to be a way to prevent this compiler from
-            # explicitly linking system object files so we need to strip them
-            # from the output so that they don't get included in the library
-            # dependencies.
-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
-            ;;
-          *)
-            if test "$GXX" = yes; then
-              archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-            else
-              # FIXME: insert proper C++ library support
-              ld_shlibs_CXX=no
-            fi
-            ;;
-        esac
-        ;;
-
-      hpux10*|hpux11*)
-        if test $with_gnu_ld = no; then
-	  hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
-	  hardcode_libdir_separator_CXX=:
-
-          case $host_cpu in
-            hppa*64*|ia64*)
-              ;;
-            *)
-	      export_dynamic_flag_spec_CXX='${wl}-E'
-              ;;
-          esac
-        fi
-        case $host_cpu in
-          hppa*64*|ia64*)
-            hardcode_direct_CXX=no
-            hardcode_shlibpath_var_CXX=no
-            ;;
-          *)
-            hardcode_direct_CXX=yes
-            hardcode_direct_absolute_CXX=yes
-            hardcode_minus_L_CXX=yes # Not in the search PATH,
-					         # but as the default
-					         # location of the library.
-            ;;
-        esac
-
-        case $cc_basename in
-          CC*)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          aCC*)
-	    case $host_cpu in
-	      hppa*64*)
-	        archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	      ia64*)
-	        archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	      *)
-	        archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	    esac
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
-	    ;;
-          *)
-	    if test "$GXX" = yes; then
-	      if test $with_gnu_ld = no; then
-	        case $host_cpu in
-	          hppa*64*)
-	            archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	          ia64*)
-	            archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	          *)
-	            archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	        esac
-	      fi
-	    else
-	      # FIXME: insert proper C++ library support
-	      ld_shlibs_CXX=no
-	    fi
-	    ;;
-        esac
-        ;;
-
-      interix[3-9]*)
-	hardcode_direct_CXX=no
-	hardcode_shlibpath_var_CXX=no
-	hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	export_dynamic_flag_spec_CXX='${wl}-E'
-	# Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-	# Instead, shared libraries are loaded at an image base (0x10000000 by
-	# default) and relocated if they conflict, which is a slow very memory
-	# consuming and fragmenting process.  To avoid this, we pick a random,
-	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-	archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-	archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-	;;
-      irix5* | irix6*)
-        case $cc_basename in
-          CC*)
-	    # SGI C++
-	    archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
-	    # necessary to make sure instantiated templates are included
-	    # in the archive.
-	    old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
-	    ;;
-          *)
-	    if test "$GXX" = yes; then
-	      if test "$with_gnu_ld" = no; then
-	        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	      else
-	        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib'
-	      fi
-	    fi
-	    link_all_deplibs_CXX=yes
-	    ;;
-        esac
-        hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-        hardcode_libdir_separator_CXX=:
-        inherit_rpath_CXX=yes
-        ;;
-
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
-        case $cc_basename in
-          KCC*)
-	    # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	    # KCC will only create a shared library if the output file
-	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
-	    # to its proper name (with version) after linking.
-	    archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-	    archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
-
-	    hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -Bstatic", where "CC" is the KAI C++ compiler.
-	    old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
-	    ;;
-	  icpc* | ecpc* )
-	    # Intel C++
-	    with_gnu_ld=yes
-	    # version 8.0 and above of icpc choke on multiply defined symbols
-	    # if we add $predep_objects and $postdep_objects, however 7.1 and
-	    # earlier do not add the objects themselves.
-	    case `$CC -V 2>&1` in
-	      *"Version 7."*)
-	        archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-		archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-		;;
-	      *)  # Version 8.0 or newer
-	        tmp_idyn=
-	        case $host_cpu in
-		  ia64*) tmp_idyn=' -i_dynamic';;
-		esac
-	        archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-		archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-		;;
-	    esac
-	    archive_cmds_need_lc_CXX=no
-	    hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-	    whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	    ;;
-          pgCC* | pgcpp*)
-            # Portland Group C++ compiler
-	    case `$CC -V` in
-	    *pgCC\ [1-5]* | *pgcpp\ [1-5]*)
-	      prelink_cmds_CXX='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
-		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
-	      old_archive_cmds_CXX='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
-		$RANLIB $oldlib'
-	      archive_cmds_CXX='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-	      archive_expsym_cmds_CXX='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
-	      ;;
-	    *) # Version 6 will use weak symbols
-	      archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-	      archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
-	      ;;
-	    esac
-
-	    hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
-	    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-	    whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
-            ;;
-	  cxx*)
-	    # Compaq C++
-	    archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
-	    runpath_var=LD_RUN_PATH
-	    hardcode_libdir_flag_spec_CXX='-rpath $libdir'
-	    hardcode_libdir_separator_CXX=:
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
-	    ;;
-	  xl*)
-	    # IBM XL 8.0 on PPC, with GNU ld
-	    hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-	    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-	    archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    if test "x$supports_anon_versioning" = xyes; then
-	      archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~
-		cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-		echo "local: *; };" >> $output_objdir/$libname.ver~
-		$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-	    fi
-	    ;;
-	  *)
-	    case `$CC -V 2>&1 | sed 5q` in
-	    *Sun\ C*)
-	      # Sun C++ 5.9
-	      no_undefined_flag_CXX=' -zdefs'
-	      archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	      archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
-	      hardcode_libdir_flag_spec_CXX='-R$libdir'
-	      whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
-	      compiler_needs_object_CXX=yes
-
-	      # Not sure whether something based on
-	      # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
-	      # would be better.
-	      output_verbose_link_cmd='echo'
-
-	      # Archives containing C++ object files must be created using
-	      # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	      # necessary to make sure instantiated templates are included
-	      # in the archive.
-	      old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
-	      ;;
-	    esac
-	    ;;
-	esac
-	;;
-
-      lynxos*)
-        # FIXME: insert proper C++ library support
-	ld_shlibs_CXX=no
-	;;
-
-      m88k*)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-	;;
-
-      mvs*)
-        case $cc_basename in
-          cxx*)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-	  *)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-	esac
-	;;
-
-      netbsd*)
-        if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	  archive_cmds_CXX='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
-	  wlarc=
-	  hardcode_libdir_flag_spec_CXX='-R$libdir'
-	  hardcode_direct_CXX=yes
-	  hardcode_shlibpath_var_CXX=no
-	fi
-	# Workaround some broken pre-1.5 toolchains
-	output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
-	;;
-
-      *nto* | *qnx*)
-        ld_shlibs_CXX=yes
-	;;
-
-      openbsd2*)
-        # C++ shared libraries are fairly broken
-	ld_shlibs_CXX=no
-	;;
-
-      openbsd*)
-	if test -f /usr/libexec/ld.so; then
-	  hardcode_direct_CXX=yes
-	  hardcode_shlibpath_var_CXX=no
-	  hardcode_direct_absolute_CXX=yes
-	  archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-	  hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	    archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
-	    export_dynamic_flag_spec_CXX='${wl}-E'
-	    whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-	  fi
-	  output_verbose_link_cmd=echo
-	else
-	  ld_shlibs_CXX=no
-	fi
-	;;
-
-      osf3* | osf4* | osf5*)
-        case $cc_basename in
-          KCC*)
-	    # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	    # KCC will only create a shared library if the output file
-	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
-	    # to its proper name (with version) after linking.
-	    archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-	    hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	    hardcode_libdir_separator_CXX=:
-
-	    # Archives containing C++ object files must be created using
-	    # the KAI C++ compiler.
-	    case $host in
-	      osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;;
-	      *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;;
-	    esac
-	    ;;
-          RCC*)
-	    # Rational C++ 2.4.1
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          cxx*)
-	    case $host in
-	      osf3*)
-	        allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
-	        archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-	        hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-		;;
-	      *)
-	        allow_undefined_flag_CXX=' -expect_unresolved \*'
-	        archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-	        archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
-	          echo "-hidden">> $lib.exp~
-	          $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~
-	          $RM $lib.exp'
-	        hardcode_libdir_flag_spec_CXX='-rpath $libdir'
-		;;
-	    esac
-
-	    hardcode_libdir_separator_CXX=:
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
-	    ;;
-	  *)
-	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	      allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
-	      case $host in
-	        osf3*)
-	          archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-		  ;;
-	        *)
-	          archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-		  ;;
-	      esac
-
-	      hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-	      hardcode_libdir_separator_CXX=:
-
-	      # Commands to make compiler produce verbose output that lists
-	      # what "hidden" libraries, object files and flags are used when
-	      # linking a shared library.
-	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
-
-	    else
-	      # FIXME: insert proper C++ library support
-	      ld_shlibs_CXX=no
-	    fi
-	    ;;
-        esac
-        ;;
-
-      psos*)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-        ;;
-
-      sunos4*)
-        case $cc_basename in
-          CC*)
-	    # Sun C++ 4.x
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          lcc*)
-	    # Lucid
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-        esac
-        ;;
-
-      solaris*)
-        case $cc_basename in
-          CC*)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-            archive_cmds_need_lc_CXX=yes
-	    no_undefined_flag_CXX=' -zdefs'
-	    archive_cmds_CXX='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	    archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	      $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	    hardcode_libdir_flag_spec_CXX='-R$libdir'
-	    hardcode_shlibpath_var_CXX=no
-	    case $host_os in
-	      solaris2.[0-5] | solaris2.[0-5].*) ;;
-	      *)
-		# The compiler driver will combine and reorder linker options,
-		# but understands `-z linker_flag'.
-	        # Supported since Solaris 2.6 (maybe 2.5.1?)
-		whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract'
-	        ;;
-	    esac
-	    link_all_deplibs_CXX=yes
-
-	    output_verbose_link_cmd='echo'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	    # necessary to make sure instantiated templates are included
-	    # in the archive.
-	    old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
-	    ;;
-          gcx*)
-	    # Green Hills C++ Compiler
-	    archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
-	    # The C++ compiler must be used to create the archive.
-	    old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
-	    ;;
-          *)
-	    # GNU C++ compiler with Solaris linker
-	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	      no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
-	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-	        archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	        archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-		  $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	        # Commands to make compiler produce verbose output that lists
-	        # what "hidden" libraries, object files and flags are used when
-	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
-	      else
-	        # g++ 2.7 appears to require `-G' NOT `-shared' on this
-	        # platform.
-	        archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	        archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-		  $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	        # Commands to make compiler produce verbose output that lists
-	        # what "hidden" libraries, object files and flags are used when
-	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
-	      fi
-
-	      hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
-	      case $host_os in
-		solaris2.[0-5] | solaris2.[0-5].*) ;;
-		*)
-		  whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-		  ;;
-	      esac
-	    fi
-	    ;;
-        esac
-        ;;
-
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
-      no_undefined_flag_CXX='${wl}-z,text'
-      archive_cmds_need_lc_CXX=no
-      hardcode_shlibpath_var_CXX=no
-      runpath_var='LD_RUN_PATH'
-
-      case $cc_basename in
-        CC*)
-	  archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-      esac
-      ;;
-
-      sysv5* | sco3.2v5* | sco5v6*)
-	# Note: We can NOT use -z defs as we might desire, because we do not
-	# link with -lc, and that would cause any symbols used from libc to
-	# always be unresolved, which means just about no library would
-	# ever link correctly.  If we're not using GNU ld we use -z text
-	# though, which does catch some bad symbols but isn't as heavy-handed
-	# as -z defs.
-	no_undefined_flag_CXX='${wl}-z,text'
-	allow_undefined_flag_CXX='${wl}-z,nodefs'
-	archive_cmds_need_lc_CXX=no
-	hardcode_shlibpath_var_CXX=no
-	hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir'
-	hardcode_libdir_separator_CXX=':'
-	link_all_deplibs_CXX=yes
-	export_dynamic_flag_spec_CXX='${wl}-Bexport'
-	runpath_var='LD_RUN_PATH'
-
-	case $cc_basename in
-          CC*)
-	    archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    ;;
-	  *)
-	    archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    ;;
-	esac
-      ;;
-
-      tandem*)
-        case $cc_basename in
-          NCC*)
-	    # NonStop-UX NCC 3.20
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-        esac
-        ;;
-
-      vxworks*)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-        ;;
-
-      *)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-        ;;
-    esac
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
-$as_echo "$ld_shlibs_CXX" >&6; }
-    test "$ld_shlibs_CXX" = no && can_build_shared=no
-
-    GCC_CXX="$GXX"
-    LD_CXX="$LD"
-
-    ## CAVEAT EMPTOR:
-    ## There is no encapsulation within the following macros, do not change
-    ## the running order or otherwise move them around unless you know exactly
-    ## what you are doing...
-    # Dependencies to place before and after the object being linked:
-predep_objects_CXX=
-postdep_objects_CXX=
-predeps_CXX=
-postdeps_CXX=
-compiler_lib_search_path_CXX=
-
-cat > conftest.$ac_ext <<_LT_EOF
-class Foo
-{
-public:
-  Foo (void) { a = 0; }
-private:
-  int a;
-};
-_LT_EOF
-
-if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  # Parse the compiler output and extract the necessary
-  # objects, libraries and library flags.
-
-  # Sentinel used to keep track of whether or not we are before
-  # the conftest object file.
-  pre_test_object_deps_done=no
-
-  for p in `eval "$output_verbose_link_cmd"`; do
-    case $p in
-
-    -L* | -R* | -l*)
-       # Some compilers place space between "-{L,R}" and the path.
-       # Remove the space.
-       if test $p = "-L" ||
-          test $p = "-R"; then
-	 prev=$p
-	 continue
-       else
-	 prev=
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-	 case $p in
-	 -L* | -R*)
-	   # Internal compiler library paths should come after those
-	   # provided the user.  The postdeps already come after the
-	   # user supplied libs so there is no need to process them.
-	   if test -z "$compiler_lib_search_path_CXX"; then
-	     compiler_lib_search_path_CXX="${prev}${p}"
-	   else
-	     compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}"
-	   fi
-	   ;;
-	 # The "-l" case would never come before the object being
-	 # linked, so don't bother handling this case.
-	 esac
-       else
-	 if test -z "$postdeps_CXX"; then
-	   postdeps_CXX="${prev}${p}"
-	 else
-	   postdeps_CXX="${postdeps_CXX} ${prev}${p}"
-	 fi
-       fi
-       ;;
-
-    *.$objext)
-       # This assumes that the test object file only shows up
-       # once in the compiler output.
-       if test "$p" = "conftest.$objext"; then
-	 pre_test_object_deps_done=yes
-	 continue
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-	 if test -z "$predep_objects_CXX"; then
-	   predep_objects_CXX="$p"
-	 else
-	   predep_objects_CXX="$predep_objects_CXX $p"
-	 fi
-       else
-	 if test -z "$postdep_objects_CXX"; then
-	   postdep_objects_CXX="$p"
-	 else
-	   postdep_objects_CXX="$postdep_objects_CXX $p"
-	 fi
-       fi
-       ;;
-
-    *) ;; # Ignore the rest.
-
-    esac
-  done
-
-  # Clean up.
-  rm -f a.out a.exe
-else
-  echo "libtool.m4: error: problem compiling CXX test program"
-fi
-
-$RM -f confest.$objext
-
-# PORTME: override above test on systems where it is broken
-case $host_os in
-interix[3-9]*)
-  # Interix 3.5 installs completely hosed .la files for C++, so rather than
-  # hack all around it, let's just trust "g++" to DTRT.
-  predep_objects_CXX=
-  postdep_objects_CXX=
-  postdeps_CXX=
-  ;;
-
-linux*)
-  case `$CC -V 2>&1 | sed 5q` in
-  *Sun\ C*)
-    # Sun C++ 5.9
-
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    if test "$solaris_use_stlport4" != yes; then
-      postdeps_CXX='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-
-solaris*)
-  case $cc_basename in
-  CC*)
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    # Adding this requires a known-good setup of shared libraries for
-    # Sun compiler versions before 5.6, else PIC objects from an old
-    # archive will be linked into the output, leading to subtle bugs.
-    if test "$solaris_use_stlport4" != yes; then
-      postdeps_CXX='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-esac
-
-
-case " $postdeps_CXX " in
-*" -lc "*) archive_cmds_need_lc_CXX=no ;;
-esac
- compiler_lib_search_dirs_CXX=
-if test -n "${compiler_lib_search_path_CXX}"; then
- compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
-fi
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    
-    
-    
-
-
-    lt_prog_compiler_wl_CXX=
-lt_prog_compiler_pic_CXX=
-lt_prog_compiler_static_CXX=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-
-  # C++ specific cases for pic, static, wl, etc.
-  if test "$GXX" = yes; then
-    lt_prog_compiler_wl_CXX='-Wl,'
-    lt_prog_compiler_static_CXX='-static'
-
-    case $host_os in
-    aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	lt_prog_compiler_static_CXX='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            lt_prog_compiler_pic_CXX='-fPIC'
-        ;;
-      m68k)
-            # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
-            lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
-        ;;
-      esac
-      ;;
-
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-    mingw* | cygwin* | os2* | pw32* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      # Although the cygwin gcc ignores -fPIC, still need this for old-style
-      # (--disable-auto-import) libraries
-      lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
-      ;;
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      lt_prog_compiler_pic_CXX='-fno-common'
-      ;;
-    *djgpp*)
-      # DJGPP does not support shared libraries at all
-      lt_prog_compiler_pic_CXX=
-      ;;
-    interix[3-9]*)
-      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-      # Instead, we relocate shared libraries at runtime.
-      ;;
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	lt_prog_compiler_pic_CXX=-Kconform_pic
-      fi
-      ;;
-    hpux*)
-      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
-      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
-      # sets the default TLS model and affects inlining.
-      case $host_cpu in
-      hppa*64*)
-	;;
-      *)
-	lt_prog_compiler_pic_CXX='-fPIC'
-	;;
-      esac
-      ;;
-    *qnx* | *nto*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      lt_prog_compiler_pic_CXX='-fPIC -shared'
-      ;;
-    *)
-      lt_prog_compiler_pic_CXX='-fPIC'
-      ;;
-    esac
-  else
-    case $host_os in
-      aix[4-9]*)
-	# All AIX code is PIC.
-	if test "$host_cpu" = ia64; then
-	  # AIX 5 now supports IA64 processor
-	  lt_prog_compiler_static_CXX='-Bstatic'
-	else
-	  lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'
-	fi
-	;;
-      chorus*)
-	case $cc_basename in
-	cxch68*)
-	  # Green Hills C++ Compiler
-	  # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
-	  ;;
-	esac
-	;;
-      dgux*)
-	case $cc_basename in
-	  ec++*)
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    ;;
-	  ghcx*)
-	    # Green Hills C++ Compiler
-	    lt_prog_compiler_pic_CXX='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      freebsd* | dragonfly*)
-	# FreeBSD uses GNU C++
-	;;
-      hpux9* | hpux10* | hpux11*)
-	case $cc_basename in
-	  CC*)
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
-	    if test "$host_cpu" != ia64; then
-	      lt_prog_compiler_pic_CXX='+Z'
-	    fi
-	    ;;
-	  aCC*)
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
-	    case $host_cpu in
-	    hppa*64*|ia64*)
-	      # +Z the default
-	      ;;
-	    *)
-	      lt_prog_compiler_pic_CXX='+Z'
-	      ;;
-	    esac
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      interix*)
-	# This is c89, which is MS Visual C++ (no shared libs)
-	# Anyone wants to do a port?
-	;;
-      irix5* | irix6* | nonstopux*)
-	case $cc_basename in
-	  CC*)
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_static_CXX='-non_shared'
-	    # CC pic flag -KPIC is the default.
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
-	case $cc_basename in
-	  KCC*)
-	    # KAI C++ Compiler
-	    lt_prog_compiler_wl_CXX='--backend -Wl,'
-	    lt_prog_compiler_pic_CXX='-fPIC'
-	    ;;
-	  ecpc* )
-	    # old Intel C++ for x86_64 which still supported -KPIC.
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    lt_prog_compiler_static_CXX='-static'
-	    ;;
-	  icpc* )
-	    # Intel C++, used to be incompatible with GCC.
-	    # ICC 10 doesn't accept -KPIC any more.
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-fPIC'
-	    lt_prog_compiler_static_CXX='-static'
-	    ;;
-	  pgCC* | pgcpp*)
-	    # Portland Group C++ compiler
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-fpic'
-	    lt_prog_compiler_static_CXX='-Bstatic'
-	    ;;
-	  cxx*)
-	    # Compaq C++
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    lt_prog_compiler_pic_CXX=
-	    lt_prog_compiler_static_CXX='-non_shared'
-	    ;;
-	  xlc* | xlC*)
-	    # IBM XL 8.0 on PPC
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-qpic'
-	    lt_prog_compiler_static_CXX='-qstaticlink'
-	    ;;
-	  *)
-	    case `$CC -V 2>&1 | sed 5q` in
-	    *Sun\ C*)
-	      # Sun C++ 5.9
-	      lt_prog_compiler_pic_CXX='-KPIC'
-	      lt_prog_compiler_static_CXX='-Bstatic'
-	      lt_prog_compiler_wl_CXX='-Qoption ld '
-	      ;;
-	    esac
-	    ;;
-	esac
-	;;
-      lynxos*)
-	;;
-      m88k*)
-	;;
-      mvs*)
-	case $cc_basename in
-	  cxx*)
-	    lt_prog_compiler_pic_CXX='-W c,exportall'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      netbsd* | netbsdelf*-gnu)
-	;;
-      *qnx* | *nto*)
-        # QNX uses GNU C++, but need to define -shared option too, otherwise
-        # it will coredump.
-        lt_prog_compiler_pic_CXX='-fPIC -shared'
-        ;;
-      osf3* | osf4* | osf5*)
-	case $cc_basename in
-	  KCC*)
-	    lt_prog_compiler_wl_CXX='--backend -Wl,'
-	    ;;
-	  RCC*)
-	    # Rational C++ 2.4.1
-	    lt_prog_compiler_pic_CXX='-pic'
-	    ;;
-	  cxx*)
-	    # Digital/Compaq C++
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    lt_prog_compiler_pic_CXX=
-	    lt_prog_compiler_static_CXX='-non_shared'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      psos*)
-	;;
-      solaris*)
-	case $cc_basename in
-	  CC*)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    lt_prog_compiler_static_CXX='-Bstatic'
-	    lt_prog_compiler_wl_CXX='-Qoption ld '
-	    ;;
-	  gcx*)
-	    # Green Hills C++ Compiler
-	    lt_prog_compiler_pic_CXX='-PIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sunos4*)
-	case $cc_basename in
-	  CC*)
-	    # Sun C++ 4.x
-	    lt_prog_compiler_pic_CXX='-pic'
-	    lt_prog_compiler_static_CXX='-Bstatic'
-	    ;;
-	  lcc*)
-	    # Lucid
-	    lt_prog_compiler_pic_CXX='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-	case $cc_basename in
-	  CC*)
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    lt_prog_compiler_static_CXX='-Bstatic'
-	    ;;
-	esac
-	;;
-      tandem*)
-	case $cc_basename in
-	  NCC*)
-	    # NonStop-UX NCC 3.20
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      vxworks*)
-	;;
-      *)
-	lt_prog_compiler_can_build_shared_CXX=no
-	;;
-    esac
-  fi
-
-case $host_os in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    lt_prog_compiler_pic_CXX=
-    ;;
-  *)
-    lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX@&t@ -DPIC"
-    ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5
-$as_echo "$lt_prog_compiler_pic_CXX" >&6; }
-
-
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic_CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
-$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; }
-if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_pic_works_CXX=no
-   ac_outfile=conftest.$ac_objext
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic_CXX@&t@ -DPIC"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:__oline__: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_pic_works_CXX=yes
-     fi
-   fi
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; }
-
-if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then
-    case $lt_prog_compiler_pic_CXX in
-     "" | " "*) ;;
-     *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
-     esac
-else
-    lt_prog_compiler_pic_CXX=
-     lt_prog_compiler_can_build_shared_CXX=no
-fi
-
-fi
-
-
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_static_works_CXX=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
-   echo "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The linker can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&5
-       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
-       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_cv_prog_compiler_static_works_CXX=yes
-       fi
-     else
-       lt_cv_prog_compiler_static_works_CXX=yes
-     fi
-   fi
-   $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; }
-
-if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then
-    :
-else
-    lt_prog_compiler_static_CXX=
-fi
-
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_c_o_CXX=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:__oline__: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_c_o_CXX=yes
-     fi
-   fi
-   chmod u+w . 2>&5
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_c_o_CXX=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:__oline__: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_c_o_CXX=yes
-     fi
-   fi
-   chmod u+w . 2>&5
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
-
-
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-$as_echo_n "checking if we can lock with hard links... " >&6; }
-  hard_links=yes
-  $RM conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-$as_echo "$hard_links" >&6; }
-  if test "$hard_links" = no; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-
-  export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  case $host_os in
-  aix[4-9]*)
-    # If we're using GNU nm, then we don't want the "-C" option.
-    # -C means demangle to AIX nm, but means don't demangle with GNU nm
-    if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-      export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-    else
-      export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-    fi
-    ;;
-  pw32*)
-    export_symbols_cmds_CXX="$ltdll_cmds"
-  ;;
-  cygwin* | mingw* | cegcc*)
-    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  linux* | k*bsd*-gnu)
-    link_all_deplibs_CXX=no
-  ;;
-  *)
-    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  esac
-  exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
-$as_echo "$ld_shlibs_CXX" >&6; }
-test "$ld_shlibs_CXX" = no && can_build_shared=no
-
-with_gnu_ld_CXX=$with_gnu_ld
-
-
-
-
-
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc_CXX" in
-x|xyes)
-  # Assume -lc should be added
-  archive_cmds_need_lc_CXX=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $archive_cmds_CXX in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-      $RM conftest*
-      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$lt_prog_compiler_wl_CXX
-	pic_flag=$lt_prog_compiler_pic_CXX
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
-        allow_undefined_flag_CXX=
-        if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
-  (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-        then
-	  archive_cmds_need_lc_CXX=no
-        else
-	  archive_cmds_need_lc_CXX=yes
-        fi
-        allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $RM conftest*
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_CXX" >&5
-$as_echo "$archive_cmds_need_lc_CXX" >&6; }
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-$as_echo_n "checking dynamic linker characteristics... " >&6; }
-
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix[4-9]*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  case $host_cpu in
-  powerpc)
-    # Since July 2007 AmigaOS4 officially supports .so libraries.
-    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    ;;
-  m68k)
-    library_names_spec='$libname.ixlibrary $libname.a'
-    # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-    ;;
-  esac
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[45]*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname~
-      chmod a+x \$dldir/$dlname~
-      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
-        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
-      fi'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw* | cegcc*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-freebsd* | dragonfly*)
-  # DragonFly does not have aout.  When/if they implement a new
-  # versioning mechanism, adjust this.
-  if test -x /usr/bin/objformat; then
-    objformat=`/usr/bin/objformat`
-  else
-    case $host_os in
-    freebsd[123]*) objformat=aout ;;
-    *) objformat=elf ;;
-    esac
-  fi
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[01]* | freebsdelf3.[01]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
-  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  *) # from 4.6 on, and DragonFly
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case $host_cpu in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  hppa*64*)
-    shrext_cmds='.sl'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-interix[3-9]*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # Some binutils ld are patched to set DT_RUNPATH
-  save_LDFLAGS=$LDFLAGS
-  save_libdir=$libdir
-  eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
-       LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
-  shlibpath_overrides_runpath=yes
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-  LDFLAGS=$save_LDFLAGS
-  libdir=$save_libdir
-
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-netbsdelf*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='NetBSD ld.elf_so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-*nto* | *qnx*)
-  version_type=qnx
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='ldqnx.so'
-  ;;
-
-openbsd*)
-  version_type=sunos
-  sys_lib_dlsearch_path_spec="/usr/lib"
-  need_lib_prefix=no
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
-    *)				need_version=no  ;;
-  esac
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-	shlibpath_overrides_runpath=no
-	;;
-      *)
-	shlibpath_overrides_runpath=yes
-	;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-rdos*)
-  dynamic_linker=no
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  version_type=freebsd-elf
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  if test "$with_gnu_ld" = yes; then
-    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
-  else
-    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
-    case $host_os in
-      sco3.2v5*)
-        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
-	;;
-    esac
-  fi
-  sys_lib_dlsearch_path_spec='/usr/lib'
-  ;;
-
-tpf*)
-  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
-hardcode_action_CXX=
-if test -n "$hardcode_libdir_flag_spec_CXX" ||
-   test -n "$runpath_var_CXX" ||
-   test "X$hardcode_automatic_CXX" = "Xyes" ; then
-
-  # We can hardcode non-existent directories.
-  if test "$hardcode_direct_CXX" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no &&
-     test "$hardcode_minus_L_CXX" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action_CXX=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action_CXX=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action_CXX=unsupported
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5
-$as_echo "$hardcode_action_CXX" >&6; }
-
-if test "$hardcode_action_CXX" = relink ||
-   test "$inherit_rpath_CXX" = yes; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-
-
-
-    
-
-
-  fi # test -n "$compiler"
-
-  CC=$lt_save_CC
-  LDCXX=$LD
-  LD=$lt_save_LD
-  GCC=$lt_save_GCC
-  with_gnu_ld=$lt_save_with_gnu_ld
-  lt_cv_path_LDCXX=$lt_cv_path_LD
-  lt_cv_path_LD=$lt_save_path_LD
-  lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
-  lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-fi # test "$_lt_caught_CXX_error" != yes
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-
-
-
-
-       
-       
-
-
-
-        ac_config_commands="$ac_config_commands libtool"
-
-
-
-
-# Only expand once:
-
-
-
-@%:@ Check whether --enable-double was given.
-if test "${enable_double+set}" = set; then :
-  enableval=$enable_double; case "${enableval}" in
-  yes) double=true ;;
-  no)  double=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-double" "$LINENO" 5  ;;
-esac
-else
-  double=false
-fi
-
-
-if (test x$double = xtrue) ;then
-    
-$as_echo "@%:@define MGL_USE_DOUBLE 1" >>confdefs.h
-
-else
-    
-$as_echo "@%:@define MGL_USE_DOUBLE 0" >>confdefs.h
-
-fi
-
-@%:@ Check whether --enable-all was given.
-if test "${enable_all+set}" = set; then :
-  enableval=$enable_all; case "${enableval}" in
-  yes) all=true ;;
-  no)  all=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-all" "$LINENO" 5  ;;
-esac
-else
-  all=false
-fi
-
-
-@%:@ Check whether --enable-langall was given.
-if test "${enable_langall+set}" = set; then :
-  enableval=$enable_langall; case "${enableval}" in
-  yes) langall=true ;;
-  no)  langall=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-langall" "$LINENO" 5  ;;
-esac
-else
-  langall=false
-fi
-
-
-@%:@ Check whether --enable-pthread was given.
-if test "${enable_pthread+set}" = set; then :
-  enableval=$enable_pthread; case "${enableval}" in
-  yes) pthread=true ;;
-  no)  pthread=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-pthread" "$LINENO" 5  ;;
-esac
-else
-  pthread=true
-fi
-
-ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default"
-if test "x$ac_cv_header_pthread_h" = x""yes; then :
-  (test x$all = xtrue || test x$pthread = xtrue) && PTHREAD_FLAGS=-DHAVE_PTHREAD 
-else
-  (test x$all = xtrue || test x$pthread = xtrue) && echo "Please install posix threads headers" && exit
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lpthread" >&5
-$as_echo_n "checking for main in -lpthread... " >&6; }
-if test "${ac_cv_lib_pthread_main+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpthread  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_pthread_main=yes
-else
-  ac_cv_lib_pthread_main=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_main" >&5
-$as_echo "$ac_cv_lib_pthread_main" >&6; }
-if test "x$ac_cv_lib_pthread_main" = x""yes; then :
-  (test x$all = xtrue || test x$pthread = xtrue) && PTHREAD_LIBS=-lpthread 
-else
-  (test x$all = xtrue || test x$pthread = xtrue) && echo "Please install posix threads library" && exit
-fi
-
- if test x$pthread = xtrue; then
-  USE_PTHREAD_TRUE=
-  USE_PTHREAD_FALSE='#'
-else
-  USE_PTHREAD_TRUE='#'
-  USE_PTHREAD_FALSE=
-fi
-
-
-@%:@ Check whether --enable-gsl was given.
-if test "${enable_gsl+set}" = set; then :
-  enableval=$enable_gsl; case "${enableval}" in
-  yes) gsl=true ;;
-  no)  gsl=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-gsl" "$LINENO" 5  ;;
-esac
-else
-  gsl=true
-fi
-
-
-if (test x$all = xtrue || test x$gsl = xtrue) ;then
-    GSL_PROG=gsl-config
-    # Extract the first word of "$GSL_PROG", so it can be a program name with args.
-set dummy $GSL_PROG; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_GSL_FLAGS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$GSL_FLAGS"; then
-  ac_cv_prog_GSL_FLAGS="$GSL_FLAGS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_GSL_FLAGS="`$GSL_PROG --cflags`"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-GSL_FLAGS=$ac_cv_prog_GSL_FLAGS
-if test -n "$GSL_FLAGS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GSL_FLAGS" >&5
-$as_echo "$GSL_FLAGS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    # Extract the first word of "$GSL_PROG", so it can be a program name with args.
-set dummy $GSL_PROG; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_GSL_LIBS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$GSL_LIBS"; then
-  ac_cv_prog_GSL_LIBS="$GSL_LIBS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_GSL_LIBS="`$GSL_PROG --libs`"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-GSL_LIBS=$ac_cv_prog_GSL_LIBS
-if test -n "$GSL_LIBS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GSL_LIBS" >&5
-$as_echo "$GSL_LIBS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    if test "$GSL_LIBS" ;then
-	test_gsl=true
-    else
-	echo "Please install gsl headers and libraries and make sure that \
-	path to $GSL_PROG exist in your PATH"
-	exit
-    fi
-else
-    GSL_FLAGS=-DNO_GSL
-    
-fi
- if test x$test_gsl = xtrue; then
-  USE_GSL_TRUE=
-  USE_GSL_FALSE='#'
-else
-  USE_GSL_TRUE='#'
-  USE_GSL_FALSE=
-fi
-
-
-@%:@ Check whether --enable-glut was given.
-if test "${enable_glut+set}" = set; then :
-  enableval=$enable_glut; case "${enableval}" in
-  yes) glut=true ;;
-  no)  glut=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-glut" "$LINENO" 5  ;;
-esac
-else
-  glut=false
-fi
-
-
-case "${host}" in
-  *darwin*)
-	GL_LIBS="-framework OpenGL"
-	
-	if (test x$all = xtrue || test x$glut = xtrue) ;then
-	    GLUT_LIBS="-framework GLUT -framework OpenGL"
-	    
-	fi
-       ;;
-
-  *w32*)
-	GL_LIBS=opengl32
-	ac_fn_c_check_header_mongrel "$LINENO" "GL/gl.h" "ac_cv_header_GL_gl_h" "$ac_includes_default"
-if test "x$ac_cv_header_GL_gl_h" = x""yes; then :
-  
-else
-  echo "Please install OpenGL headers (GL/gl.h)"; exit
-fi
-
-
-	as_ac_Lib=`$as_echo "ac_cv_lib_${GL_LIBS}''_main" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -l${GL_LIBS}" >&5
-$as_echo_n "checking for main in -l${GL_LIBS}... " >&6; }
-if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-l${GL_LIBS}  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$as_ac_Lib=yes"
-else
-  eval "$as_ac_Lib=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-eval ac_res=\$$as_ac_Lib
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
-  GL_LIBS=-l${GL_LIBS} 
-else
-  echo "Please install OpenGL library (lib${GL_LIBS}.a)"; exit
-fi
-
-	GLUT_LIBS=glut32
-	ac_fn_c_check_header_mongrel "$LINENO" "GL/glut.h" "ac_cv_header_GL_glut_h" "$ac_includes_default"
-if test "x$ac_cv_header_GL_glut_h" = x""yes; then :
-  (test x$all = xtrue || test x$glut = xtrue) && GLUT_FLAGS=-DHAVE_GLUT 
-else
-  (test x$all = xtrue || test x$glut = xtrue) && (echo "Please install FreeGLUT headers (GL/glut.h)" && exit)
-fi
-
-
-	as_ac_Lib=`$as_echo "ac_cv_lib_${GLUT_LIBS}''_main" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -l${GLUT_LIBS}" >&5
-$as_echo_n "checking for main in -l${GLUT_LIBS}... " >&6; }
-if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-l${GLUT_LIBS}  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$as_ac_Lib=yes"
-else
-  eval "$as_ac_Lib=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-eval ac_res=\$$as_ac_Lib
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
-  (test x$all = xtrue || test x$glut = xtrue) && GLUT_LIBS=-l${GLUT_LIBS} 
-else
-  (test x$all = xtrue || test x$glut = xtrue) && echo "Please install FreeGLUT library (lib${GLUT_LIBS}.a)" && exit
-fi
-
-       ;;
-
-       *)
-	GL_LIBS=GL
-	ac_fn_c_check_header_mongrel "$LINENO" "GL/gl.h" "ac_cv_header_GL_gl_h" "$ac_includes_default"
-if test "x$ac_cv_header_GL_gl_h" = x""yes; then :
-  
-else
-  echo "Please install OpenGL headers (GL/gl.h)"; exit
-fi
-
-
-	as_ac_Lib=`$as_echo "ac_cv_lib_${GL_LIBS}''_main" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -l${GL_LIBS}" >&5
-$as_echo_n "checking for main in -l${GL_LIBS}... " >&6; }
-if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-l${GL_LIBS}  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$as_ac_Lib=yes"
-else
-  eval "$as_ac_Lib=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-eval ac_res=\$$as_ac_Lib
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
-  GL_LIBS=-l${GL_LIBS} 
-else
-  echo "Please install OpenGL library (lib${GL_LIBS}.a)"; exit
-fi
-
-	GLUT_LIBS=glut
-	ac_fn_c_check_header_mongrel "$LINENO" "GL/glut.h" "ac_cv_header_GL_glut_h" "$ac_includes_default"
-if test "x$ac_cv_header_GL_glut_h" = x""yes; then :
-  (test x$all = xtrue || test x$glut = xtrue) && GLUT_FLAGS=-DHAVE_GLUT 
-else
-  (test x$all = xtrue || test x$glut = xtrue) && (echo "Please install FreeGLUT headers (GL/glut.h)" && exit)
-fi
-
-
-	as_ac_Lib=`$as_echo "ac_cv_lib_${GLUT_LIBS}''_main" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -l${GLUT_LIBS}" >&5
-$as_echo_n "checking for main in -l${GLUT_LIBS}... " >&6; }
-if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-l${GLUT_LIBS}  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$as_ac_Lib=yes"
-else
-  eval "$as_ac_Lib=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-eval ac_res=\$$as_ac_Lib
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
-  (test x$all = xtrue || test x$glut = xtrue) && GLUT_LIBS=-l${GLUT_LIBS} 
-else
-  (test x$all = xtrue || test x$glut = xtrue) && echo "Please install FreeGLUT library (lib${GLUT_LIBS}.a)" && exit
-fi
-
-       ;;
-
-esac
- if (test x$all = xtrue || test x$glut = xtrue); then
-  USE_GLUT_TRUE=
-  USE_GLUT_FALSE='#'
-else
-  USE_GLUT_TRUE='#'
-  USE_GLUT_FALSE=
-fi
-
-
-case "${host}" in
-  *linux*)
-       ADDON_FLAGS=-DNO_COLOR_ARRAY
-       ;;
-
-       *)
-       ;;
-esac
-
-@%:@ Check whether --enable-hdf5 was given.
-if test "${enable_hdf5+set}" = set; then :
-  enableval=$enable_hdf5; case "${enableval}" in
-  yes) hdf5=true ;;
-  no)  hdf5=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-hdf5" "$LINENO" 5  ;;
-esac
-else
-  hdf5=false
-fi
-
-@%:@ Check whether --enable-hdf5_18 was given.
-if test "${enable_hdf5_18+set}" = set; then :
-  enableval=$enable_hdf5_18; case "${enableval}" in
-  yes) hdf5_18=true ;;
-  no)  hdf5_18=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-hdf5_18" "$LINENO" 5  ;;
-esac
-else
-  hdf5_18=false
-fi
-
-#AC_CHECK_HEADER(hdf5.h,[(test x$all = xtrue || test x$hdf5 = xtrue || test x$hdf5_18 = xtrue) && HDF5_FLAGS=-DHAVE_HDF5 AC_SUBST(HDF5_FLAGS)],
-ac_fn_c_check_header_mongrel "$LINENO" "hdf5.h" "ac_cv_header_hdf5_h" "$ac_includes_default"
-if test "x$ac_cv_header_hdf5_h" = x""yes; then :
-  (test x$all = xtrue || test x$hdf5 = xtrue || test x$hdf5_18 = xtrue) && HDF5_FLAGS=-DHAVE_HDF5 
-else
-  (test x$all = xtrue || test x$hdf5 = xtrue || test x$hdf5_18 = xtrue) && echo "Please install hdf5 headers" && exit
-fi
-
-
-if ((test x$all = xtrue || test x$hdf5 = xtrue) && test x$hdf5_18 = xfalse) ;then
-    HDF5_FLAGS="$HDF5_FLAGS -DH5_USE_16_API"
-    
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lhdf5" >&5
-$as_echo_n "checking for main in -lhdf5... " >&6; }
-if test "${ac_cv_lib_hdf5_main+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lhdf5  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_hdf5_main=yes
-else
-  ac_cv_lib_hdf5_main=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_hdf5_main" >&5
-$as_echo "$ac_cv_lib_hdf5_main" >&6; }
-if test "x$ac_cv_lib_hdf5_main" = x""yes; then :
-  (test x$all = xtrue || test x$hdf5 = xtrue || test x$hdf5_18 = xtrue) && HDF5_LIBS=-lhdf5 
-else
-  (test x$all = xtrue || test x$hdf5 = xtrue || test x$hdf5_18 = xtrue) && echo "Please install hdf5 library" && exit
-fi
-
- if (test x$all = xtrue || test x$hdf5 = xtrue || test x$hdf5_18 = xtrue); then
-  USE_HDF5_TRUE=
-  USE_HDF5_FALSE='#'
-else
-  USE_HDF5_TRUE='#'
-  USE_HDF5_FALSE=
-fi
-
-
-
-@%:@ Check whether --enable-hdf4 was given.
-if test "${enable_hdf4+set}" = set; then :
-  enableval=$enable_hdf4; case "${enableval}" in
-  yes) hdf4=true ;;
-  no)  hdf4=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-hdf4" "$LINENO" 5  ;;
-esac
-else
-  hdf4=false
-fi
-
-ac_fn_c_check_header_mongrel "$LINENO" "hdf/mfhdf.h" "ac_cv_header_hdf_mfhdf_h" "$ac_includes_default"
-if test "x$ac_cv_header_hdf_mfhdf_h" = x""yes; then :
-  (test x$all = xtrue || test x$hdf4 = xtrue) && HDF4_FLAGS=-DHAVE_HDF4 
-else
-  (test x$all = xtrue || test x$hdf4 = xtrue) && echo "Please install hdf4 headers" && exit
-fi
-
-
-    
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ldf" >&5
-$as_echo_n "checking for main in -ldf... " >&6; }
-if test "${ac_cv_lib_df_main+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldf  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_df_main=yes
-else
-  ac_cv_lib_df_main=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_df_main" >&5
-$as_echo "$ac_cv_lib_df_main" >&6; }
-if test "x$ac_cv_lib_df_main" = x""yes; then :
-  (test x$all = xtrue || test x$hdf4 = xtrue) && HDF4_LIBS="-lmfhdf -ldf" 
-else
-  (test x$all = xtrue || test x$hdf4 = xtrue) && echo "Please install hdf4 library" && exit
-fi
-
- if (test x$all = xtrue || test x$hdf4 = xtrue); then
-  USE_HDF4_TRUE=
-  USE_HDF4_FALSE='#'
-else
-  USE_HDF4_TRUE='#'
-  USE_HDF4_FALSE=
-fi
-
-
-@%:@ Check whether --enable-gif was given.
-if test "${enable_gif+set}" = set; then :
-  enableval=$enable_gif; case "${enableval}" in
-  yes) gif=true ;;
-  no)  gif=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-gif" "$LINENO" 5  ;;
-esac
-else
-  gif=false
-fi
-
-ac_fn_c_check_header_mongrel "$LINENO" "gif_lib.h" "ac_cv_header_gif_lib_h" "$ac_includes_default"
-if test "x$ac_cv_header_gif_lib_h" = x""yes; then :
-  (test x$all = xtrue || test x$gif = xtrue) && GIF_FLAGS=-DHAVE_GIF 
-else
-  (test x$all = xtrue || test x$gif = xtrue) && echo "Please install gif headers" && exit
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lgif" >&5
-$as_echo_n "checking for main in -lgif... " >&6; }
-if test "${ac_cv_lib_gif_main+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lgif  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_gif_main=yes
-else
-  ac_cv_lib_gif_main=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gif_main" >&5
-$as_echo "$ac_cv_lib_gif_main" >&6; }
-if test "x$ac_cv_lib_gif_main" = x""yes; then :
-  (test x$all = xtrue || test x$gif = xtrue) && GIF_LIBS=-lgif 
-else
-  (test x$all = xtrue || test x$gif = xtrue) && echo "Please install gif library" && exit
-fi
-
- if (test x$all = xtrue || test x$gif = xtrue); then
-  USE_GIF_TRUE=
-  USE_GIF_FALSE='#'
-else
-  USE_GIF_TRUE='#'
-  USE_GIF_FALSE=
-fi
-
-
-ac_fn_c_check_header_mongrel "$LINENO" "png.h" "ac_cv_header_png_h" "$ac_includes_default"
-if test "x$ac_cv_header_png_h" = x""yes; then :
-  
-else
-  echo "Please install png headers" && exit
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lpng" >&5
-$as_echo_n "checking for main in -lpng... " >&6; }
-if test "${ac_cv_lib_png_main+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpng  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_png_main=yes
-else
-  ac_cv_lib_png_main=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_png_main" >&5
-$as_echo "$ac_cv_lib_png_main" >&6; }
-if test "x$ac_cv_lib_png_main" = x""yes; then :
-  PNG_LIBS=-lpng 
-else
-  echo "Please install png library" && exit
-fi
-
-
-@%:@ Check whether --enable-jpeg was given.
-if test "${enable_jpeg+set}" = set; then :
-  enableval=$enable_jpeg; case "${enableval}" in
-  yes) jpeg=true ;;
-  no)  jpeg=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-jpeg" "$LINENO" 5  ;;
-esac
-else
-  jpeg=false
-fi
-
-ac_fn_c_check_header_mongrel "$LINENO" "jpeglib.h" "ac_cv_header_jpeglib_h" "$ac_includes_default"
-if test "x$ac_cv_header_jpeglib_h" = x""yes; then :
-  (test x$all = xtrue || test x$jpeg = xtrue) && JPEG_FLAGS=-DHAVE_JPEG 
-else
-  (test x$all = xtrue || test x$jpeg = xtrue) && echo "Please install jpeg headers" && exit
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ljpeg" >&5
-$as_echo_n "checking for main in -ljpeg... " >&6; }
-if test "${ac_cv_lib_jpeg_main+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ljpeg  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_jpeg_main=yes
-else
-  ac_cv_lib_jpeg_main=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_main" >&5
-$as_echo "$ac_cv_lib_jpeg_main" >&6; }
-if test "x$ac_cv_lib_jpeg_main" = x""yes; then :
-  (test x$all = xtrue || test x$jpeg = xtrue) && JPEG_LIBS=-ljpeg 
-else
-  (test x$all = xtrue || test x$jpeg = xtrue) && echo "Please install jpeg library" && exit
-fi
-
- if (test x$all = xtrue || test x$jpeg = xtrue); then
-  USE_JPEG_TRUE=
-  USE_JPEG_FALSE='#'
-else
-  USE_JPEG_TRUE='#'
-  USE_JPEG_FALSE=
-fi
-
-
-@%:@ Check whether --enable-fltk was given.
-if test "${enable_fltk+set}" = set; then :
-  enableval=$enable_fltk; case "${enableval}" in
-  yes) fltk=true ;;
-  no)  fltk=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-fltk" "$LINENO" 5  ;;
-esac
-else
-  fltk=false
-fi
-
-if (test x$all = xtrue || test x$fltk = xtrue) ;then
-    FLTK_PROG=fltk-config
-    # Extract the first word of "$FLTK_PROG", so it can be a program name with args.
-set dummy $FLTK_PROG; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_FLTK_FLAGS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$FLTK_FLAGS"; then
-  ac_cv_prog_FLTK_FLAGS="$FLTK_FLAGS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_FLTK_FLAGS="`$FLTK_PROG --cxxflags`"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-FLTK_FLAGS=$ac_cv_prog_FLTK_FLAGS
-if test -n "$FLTK_FLAGS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FLTK_FLAGS" >&5
-$as_echo "$FLTK_FLAGS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    # Extract the first word of "$FLTK_PROG", so it can be a program name with args.
-set dummy $FLTK_PROG; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_FLTK_LIBS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$FLTK_LIBS"; then
-  ac_cv_prog_FLTK_LIBS="$FLTK_LIBS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_FLTK_LIBS="`$FLTK_PROG --ldflags`"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-FLTK_LIBS=$ac_cv_prog_FLTK_LIBS
-if test -n "$FLTK_LIBS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FLTK_LIBS" >&5
-$as_echo "$FLTK_LIBS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    if test "$FLTK_FLAGS" && test "$FLTK_LIBS" ;then
-	test_fltk=true
-    else
-	echo "Please install FLTK headers and libraries and make sure that \
-	            path to $FLTK_PROG exist in your PATH"
-	exit
-    fi 
-fi
- if test x$test_fltk = xtrue; then
-  USE_FLTK_TRUE=
-  USE_FLTK_FALSE='#'
-else
-  USE_FLTK_TRUE='#'
-  USE_FLTK_FALSE=
-fi
-
-
-@%:@ Check whether --enable-wx was given.
-if test "${enable_wx+set}" = set; then :
-  enableval=$enable_wx; case "${enableval}" in
-  yes) wx=true ;;
-  no)  wx=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-wx" "$LINENO" 5  ;;
-esac
-else
-  wx=false
-fi
-
-if (test x$all = xtrue || test x$wx = xtrue) ;then
-#if (test x$wx = xtrue) ;then
-    WX_PROG=wx-config
-    # Extract the first word of "$WX_PROG", so it can be a program name with args.
-set dummy $WX_PROG; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_WX_FLAGS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$WX_FLAGS"; then
-  ac_cv_prog_WX_FLAGS="$WX_FLAGS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_WX_FLAGS="`$WX_PROG --cflags`"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-WX_FLAGS=$ac_cv_prog_WX_FLAGS
-if test -n "$WX_FLAGS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WX_FLAGS" >&5
-$as_echo "$WX_FLAGS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    # Extract the first word of "$WX_PROG", so it can be a program name with args.
-set dummy $WX_PROG; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_WX_LIBS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$WX_LIBS"; then
-  ac_cv_prog_WX_LIBS="$WX_LIBS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_WX_LIBS="`$WX_PROG --libs`"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-WX_LIBS=$ac_cv_prog_WX_LIBS
-if test -n "$WX_LIBS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WX_LIBS" >&5
-$as_echo "$WX_LIBS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    if test "$WX_FLAGS" && test "$WX_LIBS" ;then
-	test_wx=true
-    else
-	echo "Please install wxwidget headers and libraries and make sure that \
-	            path to $WX_PROG exist in your PATH"
-	exit
-    fi 
-fi
- if test x$test_wx = xtrue; then
-  USE_WX_TRUE=
-  USE_WX_FALSE='#'
-else
-  USE_WX_TRUE='#'
-  USE_WX_FALSE=
-fi
-
-
-@%:@ Check whether --enable-qt was given.
-if test "${enable_qt+set}" = set; then :
-  enableval=$enable_qt; case "${enableval}" in
-  yes) qt=true ;;
-  no)  qt=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-qt" "$LINENO" 5  ;;
-esac
-else
-  qt=false
-fi
-
-if (test x$all = xtrue || test x$qt = xtrue) ;then
-     
-  
-  
-
-  test x"$TROLL" != x && echo 'ViM rox emacs.'
-
-  
-@%:@ Check whether --with-qt was given.
-if test "${with_qt+set}" = set; then :
-  withval=$with_qt; QT_PATH=$withval
-else
-  QT_PATH=
-fi
-
-
-  # Find Qt.
-  if test -d /usr/local/Trolltech; then
-    # Try to find the latest version.
-    tmp_qt_paths=`echo /usr/local/Trolltech/*/bin | tr ' ' '\n' | sort -nr \
-                                              | xargs | sed 's/  */:/g'`
-  fi
-
-  # Find qmake.
-  for ac_prog in qmake-qt4${EXEEXT}
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_QMAKE+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $QMAKE in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_QMAKE="$QMAKE" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$QT_DIR:$QT_PATH:$PATH:$tmp_qt_paths"
-for as_dir in $as_dummy
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_QMAKE="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-QMAKE=$ac_cv_path_QMAKE
-if test -n "$QMAKE"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $QMAKE" >&5
-$as_echo "$QMAKE" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$QMAKE" && break
-done
-test -n "$QMAKE" || QMAKE="missing"
-
-  if test x"$QMAKE" = xmissing; then
-    for ac_prog in qmake${EXEEXT}
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_QMAKE+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $QMAKE in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_QMAKE="$QMAKE" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$QT_DIR:$QT_PATH:$PATH:$tmp_qt_paths"
-for as_dir in $as_dummy
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_QMAKE="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-QMAKE=$ac_cv_path_QMAKE
-if test -n "$QMAKE"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $QMAKE" >&5
-$as_echo "$QMAKE" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$QMAKE" && break
-done
-test -n "$QMAKE" || QMAKE="missing"
-
-    if test x"$QMAKE" = xmissing; then
-      as_fn_error $? "Cannot find qmake in your PATH. Try using --with-qt." "$LINENO" 5 
-    fi
-  fi
-
-  # Find moc (Meta Object Compiler).
-  for ac_prog in moc-qt4${EXEEXT}
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MOC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $MOC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_MOC="$MOC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$QT_PATH:$PATH:$tmp_qt_paths"
-for as_dir in $as_dummy
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_MOC="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-MOC=$ac_cv_path_MOC
-if test -n "$MOC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MOC" >&5
-$as_echo "$MOC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$MOC" && break
-done
-test -n "$MOC" || MOC="missing"
-
-  if test x"$MOC" = xmissing; then
-    for ac_prog in moc${EXEEXT}
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MOC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $MOC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_MOC="$MOC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$QT_PATH:$PATH:$tmp_qt_paths"
-for as_dir in $as_dummy
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_MOC="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-MOC=$ac_cv_path_MOC
-if test -n "$MOC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MOC" >&5
-$as_echo "$MOC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$MOC" && break
-done
-test -n "$MOC" || MOC="missing"
-
-    if test x"$MOC" = xmissing; then
-      as_fn_error $? "Cannot find moc (Meta Object Compiler) in your PATH. Try using --with-qt." "$LINENO" 5 
-    fi
-  fi
-
-  # Find uic (User Interface Compiler).
-  for ac_prog in uic-qt4${EXEEXT}
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_UIC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $UIC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_UIC="$UIC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$QT_PATH:$PATH:$tmp_qt_paths"
-for as_dir in $as_dummy
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_UIC="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-UIC=$ac_cv_path_UIC
-if test -n "$UIC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $UIC" >&5
-$as_echo "$UIC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$UIC" && break
-done
-test -n "$UIC" || UIC="missing"
-
-  if test x"$UIC" = xmissing; then
-    for ac_prog in uic${EXEEXT}
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_UIC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $UIC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_UIC="$UIC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$QT_PATH:$PATH:$tmp_qt_paths"
-for as_dir in $as_dummy
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_UIC="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-UIC=$ac_cv_path_UIC
-if test -n "$UIC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $UIC" >&5
-$as_echo "$UIC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$UIC" && break
-done
-test -n "$UIC" || UIC="missing"
-
-    if test x"$UIC" = xmissing; then
-      as_fn_error $? "Cannot find uic (User Interface Compiler) in your PATH. Try using --with-qt." "$LINENO" 5 
-    fi
-  fi
-
-  # Find rcc (Qt Resource Compiler).
-  for ac_prog in rcc-qt4${EXEEXT}
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_RCC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $RCC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_RCC="$RCC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$QT_PATH:$PATH:$tmp_qt_paths"
-for as_dir in $as_dummy
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_RCC="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-RCC=$ac_cv_path_RCC
-if test -n "$RCC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RCC" >&5
-$as_echo "$RCC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$RCC" && break
-done
-test -n "$RCC" || RCC="false"
-
-  if test x"$RCC" = xfalse; then
-    for ac_prog in rcc${EXEEXT}
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_RCC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $RCC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_RCC="$RCC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$QT_PATH:$PATH:$tmp_qt_paths"
-for as_dir in $as_dummy
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_RCC="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-RCC=$ac_cv_path_RCC
-if test -n "$RCC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RCC" >&5
-$as_echo "$RCC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$RCC" && break
-done
-test -n "$RCC" || RCC="false"
-
-    if test x"$RCC" = xfalse; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find rcc (Qt Resource Compiler) in your PATH. Try using --with-qt." >&5
-$as_echo "$as_me: WARNING: Cannot find rcc (Qt Resource Compiler) in your PATH. Try using --with-qt." >&2;}
-    fi
-  fi
-
-  # If we don't know the path to Qt, guess it from the path to qmake.
-  if test x"$QT_PATH" = x; then
-    QT_PATH=`dirname "$QMAKE"`
-  fi
-  if test x"$QT_PATH" = x; then
-    as_fn_error $? "Cannot find the path to your Qt install. Use --with-qt." "$LINENO" 5 
-  fi
-  
-
-  # Get ready to build a test-app with Qt.
-
-  # Look for a writable temporary directory.
-  
-  if test x"$TMPDIR" = x || test ! -d "$TMPDIR" || test ! -w "$TMPDIR"; then
-    echo "$as_me:$LINENO: no TMPDIR or bad TMPDIR ($TMPDIR)" \
-      >&5
-    for i in /tmp /var/tmp; do
-      if test -d "$i" && test -w "$i"; then
-        TMPDIR=$i
-        export TMPDIR
-        echo "$as_me:$LINENO: setting TMPDIR=$TMPDIR" >&5
-        break
-      fi
-    done
-  fi
-
-  # Kludge!!  QMake has a very strange behavior.  For instance, if you
-  # install Qt under your $HOME and run QMake somewhere else under your
-  # $HOME, it will try to be clever and produce Makefiles with relative
-  # include paths.  In order to avoid this, we will test QMake from a
-  # temporary directory (usually /tmp).  Note that this problem was only
-  # observed with Qt 4.
-  my_configure_pwd=`pwd`
-  my_tmpdir="$TMPDIR/conftest$$.dir"
-  test -d "$my_tmpdir" || mkdir "$my_tmpdir"
-  if test -w "$my_tmpdir" && cd "$my_tmpdir"
-  then
-    :
-  else
-    as_fn_error $? "Cannot cd to or write in $my_tmpdir" "$LINENO" 5 
-  fi
-  cat >conftest.h <<_ASEOF
-#include <QObject>
-
-class Foo: public QObject
-{
-  Q_OBJECT;
-public:
-  Foo();
-  ~Foo() {}
-public slots:
-  void setValue(int value);
-signals:
-  void valueChanged(int newValue);
-private:
-  int value_;
-};
-_ASEOF
-
-  cat >conftest.cpp <<_ASEOF
-#include "conftest.h"
-Foo::Foo()
-  : value_ (42)
-{
-  connect(this, SIGNAL(valueChanged(int)), this, SLOT(setValue(int)));
-}
-
-void Foo::setValue(int value)
-{
-  value_ = value;
-}
-
-int main()
-{
-  Foo f;
-}
-_ASEOF
-  if $QMAKE -project; then :; else
-    as_fn_error $? "Calling $QMAKE -project failed." "$LINENO" 5 
-  fi
-
-  # Find the .pro file generated by qmake.
-  pro_file='conftest.dir.pro'
-  test -f $pro_file || pro_file=`echo *.pro`
-  if test -f "$pro_file"; then :; else
-    as_fn_error $? "Can't find the .pro file generated by Qmake." "$LINENO" 5 
-  fi
-
-
-
-
-
-
-
-  echo "$as_me:$LINENO: Invoking $QMAKE on $pro_file" >&5
-  sed 's/^/| /' "$pro_file" >&5
-
-  if $QMAKE; then :; else
-    as_fn_error $? "Calling $QMAKE failed." "$LINENO" 5 
-  fi
-  # Try to compile a simple Qt app.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can build a simple Qt app" >&5
-$as_echo_n "checking whether we can build a simple Qt app... " >&6; }
-if test "${at_cv_qt_build+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  at_cv_qt_build=ko
-  : ${MAKE=make}
-
-  if $MAKE >&5 2>&1; then
-    at_cv_qt_build='ok, looks like Qt 4'
-  else
-    echo "$as_me:$LINENO: Build failed, trying to #include <qobject.h> \
-instead" >&5
-    sed 's/<QObject>/<qobject.h>/' conftest.h > tmp.h && mv tmp.h conftest.h
-    if $MAKE >&5 2>&1; then
-      at_cv_qt_build='ok, looks like Qt 3'
-    else
-      # Sometimes (such as on Debian) build will fail because Qt hasn't been
-      # installed in debug mode and qmake tries (by default) to build apps in
-      # debug mode => Try again in release mode.
-      echo "$as_me:$LINENO: Build failed, trying to enforce release mode" \
-            >&5
-
-       # Tweak the value of CONFIG in the .pro file for +release.
-
-  qt_conf=''
-  for at_mod in +release; do
-    at_mod=`echo "$at_mod" | sed 's/^-//; tough
-                                  s/^+//; beef
-                                  :ough
-                                  s/^/CONFIG -= /;n
-                                  :eef
-                                  s/^/CONFIG += /'`
-    qt_conf="$qt_conf
-$at_mod"
-  done
-  echo "$qt_conf" | sed 1d >>"$pro_file"
-
-
-      sed 's/<qobject.h>/<QObject>/' conftest.h > tmp.h && mv tmp.h conftest.h
-      if $MAKE >&5 2>&1; then
-        at_cv_qt_build='ok, looks like Qt 4, release mode forced'
-      else
-        echo "$as_me:$LINENO: Build failed, trying to #include <qobject.h> \
-instead" >&5
-        sed 's/<QObject>/<qobject.h>/' conftest.h > tmp.h && mv tmp.h conftest.h
-        if $MAKE >&5 2>&1; then
-          at_cv_qt_build='ok, looks like Qt 3, release mode forced'
-        else
-          at_cv_qt_build=ko
-          echo "$as_me:$LINENO: failed program was:" >&5
-          sed 's/^/| /' conftest.h >&5
-          echo "$as_me:$LINENO: failed program was:" >&5
-          sed 's/^/| /' conftest.cpp >&5
-        fi # if make with Qt3-style #include and release mode forced.
-      fi # if make with Qt4-style #include and release mode forced.
-    fi # if make with Qt3-style #include.
-  fi # if make with Qt4-style #include.
-  
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_cv_qt_build" >&5
-$as_echo "$at_cv_qt_build" >&6; }
-  if test x"$at_cv_qt_build" = xko; then
-    as_fn_error $? "Cannot build a test Qt program" "$LINENO" 5 
-  fi
-  QT_VERSION_MAJOR=`echo "$at_cv_qt_build" | sed 's/^^0-9*//'`
-  
-
-  # This sed filter is applied after an expression of the form: /^FOO.*=/!d;
-  # It starts by removing the beginning of the line, removing references to
-  # SUBLIBS, removing unnecessary whitespaces at the beginning, and prefixes
-  # all variable uses by QT_.
-  qt_sed_filter='s///;
-                 s/$(SUBLIBS)//g;
-                 s/^ *//;
-                 s/\$(\(@<:@A-Z_@:>@@<:@A-Z_@:>@*\))/$(QT_\1)/g'
-
-  # Find the Makefile (qmake happens to generate a fake Makefile which invokes
-  # a Makefile.Debug or Makefile.Release). We we have both, we'll pick the
-  # Makefile.Release. The reason is that the main difference is that release
-  # uses -Os and debug -g. We can override -Os by passing another -O but we
-  # usually don't override -g.
-  if test -f Makefile.Release; then
-    at_mfile='Makefile.Release'
-  else
-    at_mfile='Makefile'
-  fi
-  if test -f $at_mfile; then :; else
-    cd "$my_configure_pwd"
-    as_fn_error $? "Cannot find the Makefile generated by qmake." "$LINENO" 5 
-  fi
-
-  # Find the DEFINES of Qt (should have been named CPPFLAGS).
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the DEFINES to use with Qt" >&5
-$as_echo_n "checking for the DEFINES to use with Qt... " >&6; }
-if test "${at_cv_env_QT_DEFINES+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  at_cv_env_QT_DEFINES=`sed "/^DEFINES@<:@ @:>@*=/!d;$qt_sed_filter" $at_mfile`
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_cv_env_QT_DEFINES" >&5
-$as_echo "$at_cv_env_QT_DEFINES" >&6; }
-  QT_DEFINES=$at_cv_env_QT_DEFINES
-
-
-  # Find the CFLAGS of Qt (We can use Qt in C?!)
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the CFLAGS to use with Qt" >&5
-$as_echo_n "checking for the CFLAGS to use with Qt... " >&6; }
-if test "${at_cv_env_QT_CFLAGS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  at_cv_env_QT_CFLAGS=`sed "/^CFLAGS@<:@ @:>@*=/!d;$qt_sed_filter" $at_mfile`
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_cv_env_QT_CFLAGS" >&5
-$as_echo "$at_cv_env_QT_CFLAGS" >&6; }
-  QT_CFLAGS=$at_cv_env_QT_CFLAGS
-
-
-  # Find the CXXFLAGS of Qt.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the CXXFLAGS to use with Qt" >&5
-$as_echo_n "checking for the CXXFLAGS to use with Qt... " >&6; }
-if test "${at_cv_env_QT_CXXFLAGS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  at_cv_env_QT_CXXFLAGS=`sed "/^CXXFLAGS@<:@ @:>@*=/!d;$qt_sed_filter" $at_mfile`
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_cv_env_QT_CXXFLAGS" >&5
-$as_echo "$at_cv_env_QT_CXXFLAGS" >&6; }
-  QT_CXXFLAGS=$at_cv_env_QT_CXXFLAGS
-
-
-  # Find the INCPATH of Qt.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the INCPATH to use with Qt" >&5
-$as_echo_n "checking for the INCPATH to use with Qt... " >&6; }
-if test "${at_cv_env_QT_INCPATH+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  at_cv_env_QT_INCPATH=`sed "/^INCPATH@<:@ @:>@*=/!d;$qt_sed_filter" $at_mfile`
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_cv_env_QT_INCPATH" >&5
-$as_echo "$at_cv_env_QT_INCPATH" >&6; }
-  QT_INCPATH=$at_cv_env_QT_INCPATH
-
-
-  QT_CPPFLAGS="$at_cv_env_QT_DEFINES $at_cv_env_QT_INCPATH"
-
-
-  # Find the LFLAGS of Qt (Should have been named LDFLAGS)
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the LDFLAGS to use with Qt" >&5
-$as_echo_n "checking for the LDFLAGS to use with Qt... " >&6; }
-if test "${at_cv_env_QT_LDFLAGS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  at_cv_env_QT_LDFLAGS=`sed "/^LDFLAGS@<:@ @:>@*=/!d;$qt_sed_filter" $at_mfile`
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_cv_env_QT_LDFLAGS" >&5
-$as_echo "$at_cv_env_QT_LDFLAGS" >&6; }
-  QT_LFLAGS=$at_cv_env_QT_LDFLAGS
-
-  QT_LDFLAGS=$at_cv_env_QT_LDFLAGS
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether host operating system is Darwin" >&5
-$as_echo_n "checking whether host operating system is Darwin... " >&6; }
-  at_darwin="no"
-  case $host_os in
-    darwin*)
-      at_darwin="yes"
-      ;;
-  esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_darwin" >&5
-$as_echo "$at_darwin" >&6; }
-
-  # Find the LIBS of Qt.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the LIBS to use with Qt" >&5
-$as_echo_n "checking for the LIBS to use with Qt... " >&6; }
-if test "${at_cv_env_QT_LIBS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  at_cv_env_QT_LIBS=`sed "/^LIBS@<:@ @:>@*=/!d;$qt_sed_filter" $at_mfile`
-   if test x$at_darwin = xyes; then
-     # Fix QT_LIBS: as of today Libtool (GNU Libtool 1.5.23a) doesn't handle
-     # -F properly. The "bug" has been fixed on 22 October 2006
-     # by Peter O'Gorman but we provide backward compatibility here.
-     at_cv_env_QT_LIBS=`echo "$at_cv_env_QT_LIBS" \
-                             | sed 's/^-F/-Wl,-F/;s/ -F/ -Wl,-F/g'`
-   fi
-  
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_cv_env_QT_LIBS" >&5
-$as_echo "$at_cv_env_QT_LIBS" >&6; }
-  QT_LIBS=$at_cv_env_QT_LIBS
-
-
-  cd "$my_configure_pwd" || echo 'WTF!'
-  rm -rf "$my_tmpdir"
-
-     
-  if test x"$QMAKE" = x; then
-    as_fn_error $? "\$QMAKE is empty. \
-Did you invoke AT@&t at _WITH_QT before AT@&t at _REQUIRE_QT_VERSION?" "$LINENO" 5 
-  fi
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Qt's version" >&5
-$as_echo_n "checking for Qt's version... " >&6; }
-if test "${at_cv_QT_VERSION+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  echo "$as_me:$LINENO: Running $QMAKE --version:" >&5
-  $QMAKE --version >&5 2>&1
-  qmake_version_sed='/^.*\([0-9]\.[0-9]\.[0-9]\).*$/!d;s//\1/'
-  at_cv_QT_VERSION=`$QMAKE --version 2>&1 | sed "$qmake_version_sed"`
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $at_cv_QT_VERSION" >&5
-$as_echo "$at_cv_QT_VERSION" >&6; }
-  if test x"$at_cv_QT_VERSION" = x; then
-    as_fn_error $? "Cannot detect Qt's version." "$LINENO" 5 
-  fi
-  QT_VERSION=$at_cv_QT_VERSION
-
-  as_arg_v1=$QT_VERSION
-as_arg_v2=4.3
-awk "$as_awk_strverscmp" v1="$as_arg_v1" v2="$as_arg_v2" /dev/null
-case $? in @%:@(
-  1) :
-    as_fn_error $? "This package requires Qt 4.3 or above." "$LINENO" 5  ;; @%:@(
-  0) :
-     ;; @%:@(
-  2) :
-     ;; @%:@(
-  *) :
-     ;;
-esac
-
-    test_qt=true
-fi
- if test x$test_qt = xtrue; then
-  USE_QT_TRUE=
-  USE_QT_FALSE='#'
-else
-  USE_QT_TRUE='#'
-  USE_QT_FALSE=
-fi
-
-
-@%:@ Check whether --enable-python was given.
-if test "${enable_python+set}" = set; then :
-  enableval=$enable_python; case "${enableval}" in
-  yes) python=true ;;
-  no)  python=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-python" "$LINENO" 5  ;;
-esac
-else
-  python=false
-fi
-
-if (test x$langall = xtrue || test x$python = xtrue) ;then
-    # Extract the first word of "python-config", so it can be a program name with args.
-set dummy python-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_PYTHON_HEADERS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$PYTHON_HEADERS"; then
-  ac_cv_prog_PYTHON_HEADERS="$PYTHON_HEADERS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_PYTHON_HEADERS="`python-config --cflags`"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-PYTHON_HEADERS=$ac_cv_prog_PYTHON_HEADERS
-if test -n "$PYTHON_HEADERS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_HEADERS" >&5
-$as_echo "$PYTHON_HEADERS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    # Extract the first word of "swig$EXEEXT", so it can be a program name with args.
-set dummy swig$EXEEXT; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_HAVE_SWIG+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$HAVE_SWIG"; then
-  ac_cv_prog_HAVE_SWIG="$HAVE_SWIG" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_HAVE_SWIG="true"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-HAVE_SWIG=$ac_cv_prog_HAVE_SWIG
-if test -n "$HAVE_SWIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_SWIG" >&5
-$as_echo "$HAVE_SWIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    if (test "$PYTHON_HEADERS" && test "$HAVE_SWIG") ;then
-	test_python=true
-	
-      
-
-  
-        # Find any Python interpreter.
-    if test -z "$PYTHON"; then
-      for ac_prog in python python2 python3 python3.0 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PYTHON+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $PYTHON in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-PYTHON=$ac_cv_path_PYTHON
-if test -n "$PYTHON"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
-$as_echo "$PYTHON" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$PYTHON" && break
-done
-test -n "$PYTHON" || PYTHON=":"
-
-    fi
-    am_display_PYTHON=python
-  
-
-  if test "$PYTHON" = :; then
-      as_fn_error $? "no suitable Python interpreter found" "$LINENO" 5 
-  else
-
-      
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5
-$as_echo_n "checking for $am_display_PYTHON version... " >&6; }
-if test "${am_cv_python_version+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"`
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5
-$as_echo "$am_cv_python_version" >&6; }
-  PYTHON_VERSION=$am_cv_python_version
-
-
-        
-  PYTHON_PREFIX='${prefix}'
-
-  PYTHON_EXEC_PREFIX='${exec_prefix}'
-
-
-    
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5
-$as_echo_n "checking for $am_display_PYTHON platform... " >&6; }
-if test "${am_cv_python_platform+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5
-$as_echo "$am_cv_python_platform" >&6; }
-  PYTHON_PLATFORM=$am_cv_python_platform
-
-
-
-  
-                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5
-$as_echo_n "checking for $am_display_PYTHON script directory... " >&6; }
-if test "${am_cv_python_pythondir+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "x$prefix" = xNONE
-     then
-       am_py_prefix=$ac_default_prefix
-     else
-       am_py_prefix=$prefix
-     fi
-     am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null ||
-     echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
-     case $am_cv_python_pythondir in
-     $am_py_prefix*)
-       am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
-       am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
-       ;;
-     *)
-       case $am_py_prefix in
-         /usr|/System*) ;;
-         *)
-	  am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
-	  ;;
-       esac
-       ;;
-     esac
-    
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5
-$as_echo "$am_cv_python_pythondir" >&6; }
-  pythondir=$am_cv_python_pythondir
-
-
-      
-  pkgpythondir=\${pythondir}/$PACKAGE
-
-
-            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5
-$as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; }
-if test "${am_cv_python_pyexecdir+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "x$exec_prefix" = xNONE
-     then
-       am_py_exec_prefix=$am_py_prefix
-     else
-       am_py_exec_prefix=$exec_prefix
-     fi
-     am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null ||
-     echo "$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
-     case $am_cv_python_pyexecdir in
-     $am_py_exec_prefix*)
-       am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
-       am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
-       ;;
-     *)
-       case $am_py_exec_prefix in
-         /usr|/System*) ;;
-         *)
-	   am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
-	   ;;
-       esac
-       ;;
-     esac
-    
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5
-$as_echo "$am_cv_python_pyexecdir" >&6; }
-  pyexecdir=$am_cv_python_pyexecdir
-
-
-  
-  pkgpyexecdir=\${pyexecdir}/$PACKAGE
-
-
-    
-  fi
-
-
-    else
-	echo Please install python-dev and swig packages
-	exit
-    fi 
-fi
- if test x$test_python = xtrue ; then
-  USE_PYTHON_TRUE=
-  USE_PYTHON_FALSE='#'
-else
-  USE_PYTHON_TRUE='#'
-  USE_PYTHON_FALSE=
-fi
-
-
-@%:@ Check whether --enable-octave was given.
-if test "${enable_octave+set}" = set; then :
-  enableval=$enable_octave; case "${enableval}" in
-  yes) octave=true ;;
-  no)  octave=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-octave" "$LINENO" 5  ;;
-esac
-else
-  octave=false
-fi
-
-if (test x$langall = xtrue || test x$octave = xtrue) ;then
-    # Extract the first word of "octave-config", so it can be a program name with args.
-set dummy octave-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OCTAVE+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$OCTAVE"; then
-  ac_cv_prog_OCTAVE="$OCTAVE" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_OCTAVE="octave-config"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-OCTAVE=$ac_cv_prog_OCTAVE
-if test -n "$OCTAVE"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OCTAVE" >&5
-$as_echo "$OCTAVE" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# find Octave arch
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Octave arch" >&5
-$as_echo_n "checking for Octave arch... " >&6; }
-    OCTAVE_ARCH=`$OCTAVE -p CANONICAL_HOST_TYPE`-`$OCTAVE -p API_VERSION`
-    OCTAVE_INCFLAGS="-I`$OCTAVE -p OCTINCLUDEDIR`"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OCTAVE_ARCH" >&5
-$as_echo "$OCTAVE_ARCH" >&6; }
-    OCTAVE_ARCH=$OCTAVE_ARCH
-
-    OCTAVE_INCFLAGS=$OCTAVE_INCFLAGS
-
-    test_octave=true
-fi
- if test x$test_octave = xtrue ; then
-  USE_OCTAVE_TRUE=
-  USE_OCTAVE_FALSE='#'
-else
-  USE_OCTAVE_TRUE='#'
-  USE_OCTAVE_FALSE=
-fi
-
-
-@%:@ Check whether --enable-testio was given.
-if test "${enable_testio+set}" = set; then :
-  enableval=$enable_testio; case "${enableval}" in
-  yes) testio=true ;;
-  no)  testio=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-testio" "$LINENO" 5  ;;
-esac
-else
-  testio=false
-fi
-
- if test x$testio = xtrue ; then
-  USE_TESTIO_TRUE=
-  USE_TESTIO_FALSE='#'
-else
-  USE_TESTIO_TRUE='#'
-  USE_TESTIO_FALSE=
-fi
-
-
-@%:@ Check whether --enable-docs was given.
-if test "${enable_docs+set}" = set; then :
-  enableval=$enable_docs; case "${enableval}" in
-  yes) docs=true ;;
-  no)  docs=false ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-docs" "$LINENO" 5  ;;
-esac
-else
-  docs=false
-fi
-
-if (test x$docs = xtrue || test x$all = xtrue) ;then
-	ac_config_files="$ac_config_files texinfo/Makefile texinfo/png/Makefile"
-
-fi
- if (test x$docs = xtrue || test x$all = xtrue) ; then
-  USE_DOCS_TRUE=
-  USE_DOCS_FALSE='#'
-else
-  USE_DOCS_TRUE='#'
-  USE_DOCS_FALSE=
-fi
-
-
-AM_CXXFLAGS="-Wall $GSL_FLAGS"
-
-
-ac_config_files="$ac_config_files Makefile mgl/Makefile examples/Makefile include/Makefile lang/Makefile utils/Makefile widgets/Makefile"
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
-  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) { eval $ac_var=; unset $ac_var;} ;;
-      esac ;;
-    esac
-  done
-
-  (set) 2>&1 |
-    case $as_nl`(ac_space=' '; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      # `set' does not quote correctly, so add quotes: double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \.
-      sed -n \
-	"s/'/'\\\\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;; #(
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-) |
-  sed '
-     /^ac_cv_env_/b end
-     t clear
-     :clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
-  if test -w "$cache_file"; then
-    test "x$cache_file" != "x/dev/null" &&
-      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
-    cat confcache >$cache_file
-  else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
-  fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-U=
-for ac_i in : $LIB@&t at OBJS; do test "x$ac_i" = x: && continue
-  # 1. Remove the extension, and $U if already installed.
-  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
-  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
-  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
-  #    will be set to the directory where LIBOBJS objects are built.
-  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
-  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIB@&t at OBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
- if test -n "$EXEEXT"; then
-  am__EXEEXT_TRUE=
-  am__EXEEXT_FALSE='#'
-else
-  am__EXEEXT_TRUE='#'
-  am__EXEEXT_FALSE=
-fi
-
-if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
-  as_fn_error $? "conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
-  as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
-  as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
-  as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${USE_PTHREAD_TRUE}" && test -z "${USE_PTHREAD_FALSE}"; then
-  as_fn_error $? "conditional \"USE_PTHREAD\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${USE_GSL_TRUE}" && test -z "${USE_GSL_FALSE}"; then
-  as_fn_error $? "conditional \"USE_GSL\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${USE_GLUT_TRUE}" && test -z "${USE_GLUT_FALSE}"; then
-  as_fn_error $? "conditional \"USE_GLUT\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${USE_HDF5_TRUE}" && test -z "${USE_HDF5_FALSE}"; then
-  as_fn_error $? "conditional \"USE_HDF5\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${USE_HDF4_TRUE}" && test -z "${USE_HDF4_FALSE}"; then
-  as_fn_error $? "conditional \"USE_HDF4\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${USE_GIF_TRUE}" && test -z "${USE_GIF_FALSE}"; then
-  as_fn_error $? "conditional \"USE_GIF\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${USE_JPEG_TRUE}" && test -z "${USE_JPEG_FALSE}"; then
-  as_fn_error $? "conditional \"USE_JPEG\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${USE_FLTK_TRUE}" && test -z "${USE_FLTK_FALSE}"; then
-  as_fn_error $? "conditional \"USE_FLTK\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${USE_WX_TRUE}" && test -z "${USE_WX_FALSE}"; then
-  as_fn_error $? "conditional \"USE_WX\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${USE_QT_TRUE}" && test -z "${USE_QT_FALSE}"; then
-  as_fn_error $? "conditional \"USE_QT\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${USE_PYTHON_TRUE}" && test -z "${USE_PYTHON_FALSE}"; then
-  as_fn_error $? "conditional \"USE_PYTHON\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${USE_OCTAVE_TRUE}" && test -z "${USE_OCTAVE_FALSE}"; then
-  as_fn_error $? "conditional \"USE_OCTAVE\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${USE_TESTIO_TRUE}" && test -z "${USE_TESTIO_FALSE}"; then
-  as_fn_error $? "conditional \"USE_TESTIO\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-if test -z "${USE_DOCS_TRUE}" && test -z "${USE_DOCS_FALSE}"; then
-  as_fn_error $? "conditional \"USE_DOCS\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5 
-fi
-
-: ${CONFIG_STATUS=./config.status}
-ac_write_fail=0
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-as_write_fail=0
-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in @%:@(
-  *posix*) :
-    set -o posix ;; @%:@(
-  *) :
-     ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in @%:@(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  PATH_SEPARATOR=:
-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
-    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
-      PATH_SEPARATOR=';'
-  }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-case $0 in @%:@((
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-  done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-
-@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD]
-@%:@ ----------------------------------------
-@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-@%:@ script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
-  as_status=$1; test $as_status -eq 0 && as_status=1
-  if test "$4"; then
-    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
-  fi
-  $as_echo "$as_me: error: $2" >&2
-  as_fn_exit $as_status
-} @%:@ as_fn_error
-
-
-@%:@ as_fn_set_status STATUS
-@%:@ -----------------------
-@%:@ Set @S|@? to STATUS, without forking.
-as_fn_set_status ()
-{
-  return $1
-} @%:@ as_fn_set_status
-
-@%:@ as_fn_exit STATUS
-@%:@ -----------------
-@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
-  set +e
-  as_fn_set_status $1
-  exit $1
-} @%:@ as_fn_exit
-
-@%:@ as_fn_unset VAR
-@%:@ ---------------
-@%:@ Portably unset VAR.
-as_fn_unset ()
-{
-  { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-@%:@ as_fn_append VAR VALUE
-@%:@ ----------------------
-@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take
-@%:@ advantage of any shell optimizations that allow amortized linear growth over
-@%:@ repeated appends, instead of the typical quadratic growth present in naive
-@%:@ implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
-  eval 'as_fn_append ()
-  {
-    eval $1+=\$2
-  }'
-else
-  as_fn_append ()
-  {
-    eval $1=\$$1\$2
-  }
-fi # as_fn_append
-
-@%:@ as_fn_arith ARG...
-@%:@ ------------------
-@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the
-@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments
-@%:@ must be portable across @S|@(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
-  eval 'as_fn_arith ()
-  {
-    as_val=$(( $* ))
-  }'
-else
-  as_fn_arith ()
-  {
-    as_val=`expr "$@" || test $? -eq 1`
-  }
-fi # as_fn_arith
-
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in @%:@(((((
--n*)
-  case `echo 'xy\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  xy)  ECHO_C='\c';;
-  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
-       ECHO_T='	';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
-  if ln -s conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s='ln -s'
-    # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
-  elif ln conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s=ln
-  else
-    as_ln_s='cp -p'
-  fi
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-
-@%:@ as_fn_mkdir_p
-@%:@ -------------
-@%:@ Create "@S|@as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || eval $as_mkdir_p || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} @%:@ as_fn_mkdir_p
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p='mkdir -p "$as_dir"'
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-	test -d "$1/.";
-      else
-	case $1 in @%:@(
-	-*)set "./$1";;
-	esac;
-	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@((
-	???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-## ----------------------------------- ##
-## Main body of $CONFIG_STATUS script. ##
-## ----------------------------------- ##
-_ASEOF
-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# Save the log message, to keep $0 and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by mathgl $as_me 1.10, which was
-generated by GNU Autoconf 2.67.  Invocation command line was
-
-  CONFIG_FILES    = $CONFIG_FILES
-  CONFIG_HEADERS  = $CONFIG_HEADERS
-  CONFIG_LINKS    = $CONFIG_LINKS
-  CONFIG_COMMANDS = $CONFIG_COMMANDS
-  $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-case $ac_config_files in *"
-"*) set x $ac_config_files; shift; ac_config_files=$*;;
-esac
-
-case $ac_config_headers in *"
-"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
-esac
-
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_headers="$ac_config_headers"
-config_commands="$ac_config_commands"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-ac_cs_usage="\
-\`$as_me' instantiates files and other configuration actions
-from templates according to the current configuration.  Unless the files
-and actions are specified as TAGs, all are instantiated by default.
-
-Usage: $0 [OPTION]... [TAG]...
-
-  -h, --help       print this help, then exit
-  -V, --version    print version number and configuration settings, then exit
-      --config     print configuration, then exit
-  -q, --quiet, --silent
-                   do not print progress messages
-  -d, --debug      don't remove temporary files
-      --recheck    update $as_me by reconfiguring in the same conditions
-      --file=FILE[:TEMPLATE] 
-                   instantiate the configuration file FILE
-      --header=FILE[:TEMPLATE] 
-                   instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration commands:
-$config_commands
-
-Report bugs to <mathgl.abalakin at gmail.com>."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
-ac_cs_version="\\
-mathgl config.status 1.10
-configured by $0, generated by GNU Autoconf 2.67,
-  with options \\"\$ac_cs_config\\"
-
-Copyright (C) 2010 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-INSTALL='$INSTALL'
-MKDIR_P='$MKDIR_P'
-AWK='$AWK'
-test -n "\$AWK" || AWK=awk
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# The default lists apply if the user does not specify any file.
-ac_need_defaults=:
-while test $# != 0
-do
-  case $1 in
-  --*=?*)
-    ac_option=`expr "X$1" : 'X\([^=]*\)='`
-    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
-    ac_shift=:
-    ;;
-  --*=)
-    ac_option=`expr "X$1" : 'X\([^=]*\)='`
-    ac_optarg=
-    ac_shift=:
-    ;;
-  *)
-    ac_option=$1
-    ac_optarg=$2
-    ac_shift=shift
-    ;;
-  esac
-
-  case $ac_option in
-  # Handling of the options.
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    ac_cs_recheck=: ;;
-  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
-    $as_echo "$ac_cs_version"; exit ;;
-  --config | --confi | --conf | --con | --co | --c )
-    $as_echo "$ac_cs_config"; exit ;;
-  --debug | --debu | --deb | --de | --d | -d )
-    debug=: ;;
-  --file | --fil | --fi | --f )
-    $ac_shift
-    case $ac_optarg in
-    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    '') as_fn_error $? "missing file argument" ;;
-    esac
-    as_fn_append CONFIG_FILES " '$ac_optarg'"
-    ac_need_defaults=false;;
-  --header | --heade | --head | --hea )
-    $ac_shift
-    case $ac_optarg in
-    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
-    ac_need_defaults=false;;
-  --he | --h)
-    # Conflict between --help and --header
-    as_fn_error $? "ambiguous option: \`$1'
-Try \`$0 --help' for more information.";;
-  --help | --hel | -h )
-    $as_echo "$ac_cs_usage"; exit ;;
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
-    ac_cs_silent=: ;;
-
-  # This is an error.
-  -*) as_fn_error $? "unrecognized option: \`$1'
-Try \`$0 --help' for more information." ;;
-
-  *) as_fn_append ac_config_targets " $1"
-     ac_need_defaults=false ;;
-
-  esac
-  shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
-  exec 6>/dev/null
-  ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-if \$ac_cs_recheck; then
-  set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-  shift
-  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
-  CONFIG_SHELL='$SHELL'
-  export CONFIG_SHELL
-  exec "\$@"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX
-@%:@@%:@ Running $as_me. @%:@@%:@
-_ASBOX
-  $as_echo "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-#
-# INIT-COMMANDS
-#
-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
-
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-AS='`$ECHO "X$AS" | $Xsed -e "$delay_single_quote_subst"`'
-DLLTOOL='`$ECHO "X$DLLTOOL" | $Xsed -e "$delay_single_quote_subst"`'
-OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`'
-macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`'
-macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`'
-enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`'
-enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`'
-pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`'
-enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`'
-host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`'
-host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`'
-host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`'
-build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`'
-build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`'
-build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`'
-SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`'
-Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`'
-GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`'
-EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`'
-FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`'
-LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`'
-NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`'
-LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`'
-max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`'
-ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`'
-exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`'
-lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`'
-lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`'
-lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`'
-reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`'
-reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`'
-file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`'
-AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`'
-AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`'
-STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`'
-RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`'
-old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`'
-CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`'
-compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`'
-GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
-objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`'
-SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`'
-ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`'
-MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`'
-need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`'
-DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`'
-NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`'
-LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`'
-OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`'
-OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`'
-libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`'
-shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`'
-export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
-whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`'
-allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
-no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`'
-inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`'
-link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`'
-fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`'
-always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`'
-export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
-include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
-prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`'
-variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`'
-need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
-need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`'
-version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`'
-runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`'
-shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
-shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`'
-libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`'
-library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`'
-soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`'
-postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`'
-sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
-sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`'
-enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`'
-enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`'
-enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`'
-old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`'
-striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_lib_search_dirs='`$ECHO "X$compiler_lib_search_dirs" | $Xsed -e "$delay_single_quote_subst"`'
-predep_objects='`$ECHO "X$predep_objects" | $Xsed -e "$delay_single_quote_subst"`'
-postdep_objects='`$ECHO "X$postdep_objects" | $Xsed -e "$delay_single_quote_subst"`'
-predeps='`$ECHO "X$predeps" | $Xsed -e "$delay_single_quote_subst"`'
-postdeps='`$ECHO "X$postdeps" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_lib_search_path='`$ECHO "X$compiler_lib_search_path" | $Xsed -e "$delay_single_quote_subst"`'
-LD_CXX='`$ECHO "X$LD_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_cmds_CXX='`$ECHO "X$old_archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_CXX='`$ECHO "X$compiler_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-GCC_CXX='`$ECHO "X$GCC_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "X$lt_prog_compiler_no_builtin_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_wl_CXX='`$ECHO "X$lt_prog_compiler_wl_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_pic_CXX='`$ECHO "X$lt_prog_compiler_pic_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_static_CXX='`$ECHO "X$lt_prog_compiler_static_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o_CXX='`$ECHO "X$lt_cv_prog_compiler_c_o_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds_need_lc_CXX='`$ECHO "X$archive_cmds_need_lc_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes_CXX='`$ECHO "X$enable_shared_with_static_runtimes_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-export_dynamic_flag_spec_CXX='`$ECHO "X$export_dynamic_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-whole_archive_flag_spec_CXX='`$ECHO "X$whole_archive_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_needs_object_CXX='`$ECHO "X$compiler_needs_object_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_new_cmds_CXX='`$ECHO "X$old_archive_from_new_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds_CXX='`$ECHO "X$old_archive_from_expsyms_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds_CXX='`$ECHO "X$archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-archive_expsym_cmds_CXX='`$ECHO "X$archive_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-module_cmds_CXX='`$ECHO "X$module_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-module_expsym_cmds_CXX='`$ECHO "X$module_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-with_gnu_ld_CXX='`$ECHO "X$with_gnu_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-allow_undefined_flag_CXX='`$ECHO "X$allow_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-no_undefined_flag_CXX='`$ECHO "X$no_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_CXX='`$ECHO "X$hardcode_libdir_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_ld_CXX='`$ECHO "X$hardcode_libdir_flag_spec_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_separator_CXX='`$ECHO "X$hardcode_libdir_separator_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct_CXX='`$ECHO "X$hardcode_direct_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct_absolute_CXX='`$ECHO "X$hardcode_direct_absolute_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_minus_L_CXX='`$ECHO "X$hardcode_minus_L_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_shlibpath_var_CXX='`$ECHO "X$hardcode_shlibpath_var_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_automatic_CXX='`$ECHO "X$hardcode_automatic_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-inherit_rpath_CXX='`$ECHO "X$inherit_rpath_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-link_all_deplibs_CXX='`$ECHO "X$link_all_deplibs_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-fix_srcfile_path_CXX='`$ECHO "X$fix_srcfile_path_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-always_export_symbols_CXX='`$ECHO "X$always_export_symbols_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-export_symbols_cmds_CXX='`$ECHO "X$export_symbols_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-exclude_expsyms_CXX='`$ECHO "X$exclude_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-include_expsyms_CXX='`$ECHO "X$include_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-prelink_cmds_CXX='`$ECHO "X$prelink_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-file_list_spec_CXX='`$ECHO "X$file_list_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_action_CXX='`$ECHO "X$hardcode_action_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_lib_search_dirs_CXX='`$ECHO "X$compiler_lib_search_dirs_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-predep_objects_CXX='`$ECHO "X$predep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-postdep_objects_CXX='`$ECHO "X$postdep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-predeps_CXX='`$ECHO "X$predeps_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-postdeps_CXX='`$ECHO "X$postdeps_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_lib_search_path_CXX='`$ECHO "X$compiler_lib_search_path_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# Quote evaled strings.
-for var in SED \
-GREP \
-EGREP \
-FGREP \
-LD \
-NM \
-LN_S \
-lt_SP2NL \
-lt_NL2SP \
-reload_flag \
-deplibs_check_method \
-file_magic_cmd \
-AR \
-AR_FLAGS \
-STRIP \
-RANLIB \
-CC \
-CFLAGS \
-compiler \
-lt_cv_sys_global_symbol_pipe \
-lt_cv_sys_global_symbol_to_cdecl \
-lt_cv_sys_global_symbol_to_c_name_address \
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
-SHELL \
-ECHO \
-lt_prog_compiler_no_builtin_flag \
-lt_prog_compiler_wl \
-lt_prog_compiler_pic \
-lt_prog_compiler_static \
-lt_cv_prog_compiler_c_o \
-need_locks \
-DSYMUTIL \
-NMEDIT \
-LIPO \
-OTOOL \
-OTOOL64 \
-shrext_cmds \
-export_dynamic_flag_spec \
-whole_archive_flag_spec \
-compiler_needs_object \
-with_gnu_ld \
-allow_undefined_flag \
-no_undefined_flag \
-hardcode_libdir_flag_spec \
-hardcode_libdir_flag_spec_ld \
-hardcode_libdir_separator \
-fix_srcfile_path \
-exclude_expsyms \
-include_expsyms \
-file_list_spec \
-variables_saved_for_relink \
-libname_spec \
-library_names_spec \
-soname_spec \
-finish_eval \
-old_striplib \
-striplib \
-compiler_lib_search_dirs \
-predep_objects \
-postdep_objects \
-predeps \
-postdeps \
-compiler_lib_search_path \
-LD_CXX \
-compiler_CXX \
-lt_prog_compiler_no_builtin_flag_CXX \
-lt_prog_compiler_wl_CXX \
-lt_prog_compiler_pic_CXX \
-lt_prog_compiler_static_CXX \
-lt_cv_prog_compiler_c_o_CXX \
-export_dynamic_flag_spec_CXX \
-whole_archive_flag_spec_CXX \
-compiler_needs_object_CXX \
-with_gnu_ld_CXX \
-allow_undefined_flag_CXX \
-no_undefined_flag_CXX \
-hardcode_libdir_flag_spec_CXX \
-hardcode_libdir_flag_spec_ld_CXX \
-hardcode_libdir_separator_CXX \
-fix_srcfile_path_CXX \
-exclude_expsyms_CXX \
-include_expsyms_CXX \
-file_list_spec_CXX \
-compiler_lib_search_dirs_CXX \
-predep_objects_CXX \
-postdep_objects_CXX \
-predeps_CXX \
-postdeps_CXX \
-compiler_lib_search_path_CXX; do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
-    *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
-      ;;
-    *)
-      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-      ;;
-    esac
-done
-
-# Double-quote double-evaled strings.
-for var in reload_cmds \
-old_postinstall_cmds \
-old_postuninstall_cmds \
-old_archive_cmds \
-extract_expsyms_cmds \
-old_archive_from_new_cmds \
-old_archive_from_expsyms_cmds \
-archive_cmds \
-archive_expsym_cmds \
-module_cmds \
-module_expsym_cmds \
-export_symbols_cmds \
-prelink_cmds \
-postinstall_cmds \
-postuninstall_cmds \
-finish_cmds \
-sys_lib_search_path_spec \
-sys_lib_dlsearch_path_spec \
-old_archive_cmds_CXX \
-old_archive_from_new_cmds_CXX \
-old_archive_from_expsyms_cmds_CXX \
-archive_cmds_CXX \
-archive_expsym_cmds_CXX \
-module_cmds_CXX \
-module_expsym_cmds_CXX \
-export_symbols_cmds_CXX \
-prelink_cmds_CXX; do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
-    *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
-      ;;
-    *)
-      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-      ;;
-    esac
-done
-
-# Fix-up fallback echo if it was mangled by the above quoting rules.
-case \$lt_ECHO in
-*'\\\$0 --fallback-echo"')  lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\`
-  ;;
-esac
-
-ac_aux_dir='$ac_aux_dir'
-xsi_shell='$xsi_shell'
-lt_shell_append='$lt_shell_append'
-
-# See if we are running on zsh, and set the options which allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
-   setopt NO_GLOB_SUBST
-fi
-
-
-    PACKAGE='$PACKAGE'
-    VERSION='$VERSION'
-    TIMESTAMP='$TIMESTAMP'
-    RM='$RM'
-    ofile='$ofile'
-
-
-
-
-
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
-  case $ac_config_target in
-    "include/mgl/config.h") CONFIG_HEADERS="$CONFIG_HEADERS include/mgl/config.h" ;;
-    "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
-    "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
-    "texinfo/Makefile") CONFIG_FILES="$CONFIG_FILES texinfo/Makefile" ;;
-    "texinfo/png/Makefile") CONFIG_FILES="$CONFIG_FILES texinfo/png/Makefile" ;;
-    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-    "mgl/Makefile") CONFIG_FILES="$CONFIG_FILES mgl/Makefile" ;;
-    "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;;
-    "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
-    "lang/Makefile") CONFIG_FILES="$CONFIG_FILES lang/Makefile" ;;
-    "utils/Makefile") CONFIG_FILES="$CONFIG_FILES utils/Makefile" ;;
-    "widgets/Makefile") CONFIG_FILES="$CONFIG_FILES widgets/Makefile" ;;
-
-  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
-  esac
-done
-
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used.  Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
-  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience.  Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
-  tmp=
-  trap 'exit_status=$?
-  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
-' 0
-  trap 'as_fn_exit 1' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
-  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
-}  ||
-{
-  tmp=./conf$$-$RANDOM
-  (umask 077 && mkdir "$tmp")
-} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 
-
-# Set up the scripts for CONFIG_FILES section.
-# No need to generate them if there are no CONFIG_FILES.
-# This happens for instance with `./config.status config.h'.
-if test -n "$CONFIG_FILES"; then
-
-
-ac_cr=`echo X | tr X '\015'`
-# On cygwin, bash can eat \r inside `` if the user requested igncr.
-# But we know of no other shell where ac_cr would be empty at this
-# point, so we can use a bashism as a fallback.
-if test "x$ac_cr" = x; then
-  eval ac_cr=\$\'\\r\'
-fi
-ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
-if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
-  ac_cs_awk_cr='\\r'
-else
-  ac_cs_awk_cr=$ac_cr
-fi
-
-echo 'BEGIN {' >"$tmp/subs1.awk" &&
-_ACEOF
-
-
-{
-  echo "cat >conf$$subs.awk <<_ACEOF" &&
-  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
-  echo "_ACEOF"
-} >conf$$subs.sh ||
-  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
-  . ./conf$$subs.sh ||
-    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 
-
-  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
-  if test $ac_delim_n = $ac_delim_num; then
-    break
-  elif $ac_last_try; then
-    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 
-  else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
-rm -f conf$$subs.sh
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
-_ACEOF
-sed -n '
-h
-s/^/S["/; s/!.*/"]=/
-p
-g
-s/^[^!]*!//
-:repl
-t repl
-s/'"$ac_delim"'$//
-t delim
-:nl
-h
-s/\(.\{148\}\)..*/\1/
-t more1
-s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
-p
-n
-b repl
-:more1
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t nl
-:delim
-h
-s/\(.\{148\}\)..*/\1/
-t more2
-s/["\\]/\\&/g; s/^/"/; s/$/"/
-p
-b
-:more2
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t delim
-' <conf$$subs.awk | sed '
-/^[^""]/{
-  N
-  s/\n//
-}
-' >>$CONFIG_STATUS || ac_write_fail=1
-rm -f conf$$subs.awk
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACAWK
-cat >>"\$tmp/subs1.awk" <<_ACAWK &&
-  for (key in S) S_is_set[key] = 1
-  FS = ""
-
-}
-{
-  line = $ 0
-  nfields = split(line, field, "@")
-  substed = 0
-  len = length(field[1])
-  for (i = 2; i < nfields; i++) {
-    key = field[i]
-    keylen = length(key)
-    if (S_is_set[key]) {
-      value = S[key]
-      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
-      len += length(value) + length(field[++i])
-      substed = 1
-    } else
-      len += 1 + keylen
-  }
-
-  print line
-}
-
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
-  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
-else
-  cat
-fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
-  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 
-_ACEOF
-
-# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
-# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[	 ]*VPATH[	 ]*=[	 ]*/{
-h
-s///
-s/^/:/
-s/[	 ]*$/:/
-s/:\$(srcdir):/:/g
-s/:\${srcdir}:/:/g
-s/:@srcdir@:/:/g
-s/^:*//
-s/:*$//
-x
-s/\(=[	 ]*\).*/\1/
-G
-s/\n//
-s/^[^=]*=[	 ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-fi # test -n "$CONFIG_FILES"
-
-# Set up the scripts for CONFIG_HEADERS section.
-# No need to generate them if there are no CONFIG_HEADERS.
-# This happens for instance with `./config.status Makefile'.
-if test -n "$CONFIG_HEADERS"; then
-cat >"$tmp/defines.awk" <<\_ACAWK ||
-BEGIN {
-_ACEOF
-
-# Transform confdefs.h into an awk script `defines.awk', embedded as
-# here-document in config.status, that substitutes the proper values into
-# config.h.in to produce config.h.
-
-# Create a delimiter string that does not exist in confdefs.h, to ease
-# handling of long lines.
-ac_delim='%!_!# '
-for ac_last_try in false false :; do
-  ac_t=`sed -n "/$ac_delim/p" confdefs.h`
-  if test -z "$ac_t"; then
-    break
-  elif $ac_last_try; then
-    as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 
-  else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
-
-# For the awk script, D is an array of macro values keyed by name,
-# likewise P contains macro parameters if any.  Preserve backslash
-# newline sequences.
-
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-sed -n '
-s/.\{148\}/&'"$ac_delim"'/g
-t rset
-:rset
-s/^[	 ]*#[	 ]*define[	 ][	 ]*/ /
-t def
-d
-:def
-s/\\$//
-t bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3"/p
-s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2"/p
-d
-:bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3\\\\\\n"\\/p
-t cont
-s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
-t cont
-d
-:cont
-n
-s/.\{148\}/&'"$ac_delim"'/g
-t clear
-:clear
-s/\\$//
-t bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/"/p
-d
-:bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
-b cont
-' <confdefs.h | sed '
-s/'"$ac_delim"'/"\\\
-"/g' >>$CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-  for (key in D) D_is_set[key] = 1
-  FS = ""
-}
-/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
-  line = \$ 0
-  split(line, arg, " ")
-  if (arg[1] == "#") {
-    defundef = arg[2]
-    mac1 = arg[3]
-  } else {
-    defundef = substr(arg[1], 2)
-    mac1 = arg[2]
-  }
-  split(mac1, mac2, "(") #)
-  macro = mac2[1]
-  prefix = substr(line, 1, index(line, defundef) - 1)
-  if (D_is_set[macro]) {
-    # Preserve the white space surrounding the "#".
-    print prefix "define", macro P[macro] D[macro]
-    next
-  } else {
-    # Replace #undef with comments.  This is necessary, for example,
-    # in the case of _POSIX_SOURCE, which is predefined and required
-    # on some systems where configure will not decide to define it.
-    if (defundef == "undef") {
-      print "/*", prefix defundef, macro, "*/"
-      next
-    }
-  }
-}
-{ print }
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-  as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 
-fi # test -n "$CONFIG_HEADERS"
-
-
-eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS"
-shift
-for ac_tag
-do
-  case $ac_tag in
-  :[FHLC]) ac_mode=$ac_tag; continue;;
-  esac
-  case $ac_mode$ac_tag in
-  :[FHL]*:*);;
-  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;;
-  :[FH]-) ac_tag=-:-;;
-  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
-  esac
-  ac_save_IFS=$IFS
-  IFS=:
-  set x $ac_tag
-  IFS=$ac_save_IFS
-  shift
-  ac_file=$1
-  shift
-
-  case $ac_mode in
-  :L) ac_source=$1;;
-  :[FH])
-    ac_file_inputs=
-    for ac_f
-    do
-      case $ac_f in
-      -) ac_f="$tmp/stdin";;
-      *) # Look for the file first in the build tree, then in the source tree
-	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
-	 # because $ac_f cannot contain `:'.
-	 test -f "$ac_f" ||
-	   case $ac_f in
-	   [\\/$]*) false;;
-	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
-	   esac ||
-	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;;
-      esac
-      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
-      as_fn_append ac_file_inputs " '$ac_f'"
-    done
-
-    # Let's still pretend it is `configure' which instantiates (i.e., don't
-    # use $as_me), people would be surprised to read:
-    #    /* config.h.  Generated by config.status.  */
-    configure_input='Generated from '`
-	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
-	`' by configure.'
-    if test x"$ac_file" != x-; then
-      configure_input="$ac_file.  $configure_input"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
-    fi
-    # Neutralize special characters interpreted by sed in replacement strings.
-    case $configure_input in #(
-    *\&* | *\|* | *\\* )
-       ac_sed_conf_input=`$as_echo "$configure_input" |
-       sed 's/[\\\\&|]/\\\\&/g'`;; #(
-    *) ac_sed_conf_input=$configure_input;;
-    esac
-
-    case $ac_tag in
-    *:-:* | *:-) cat >"$tmp/stdin" \
-      || as_fn_error $? "could not create $ac_file" "$LINENO" 5  ;;
-    esac
-    ;;
-  esac
-
-  ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_file" : 'X\(//\)[^/]' \| \
-	 X"$ac_file" : 'X\(//\)$' \| \
-	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-  as_dir="$ac_dir"; as_fn_mkdir_p
-  ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
-  case $ac_top_builddir_sub in
-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-  esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
-  .)  # We are building in place.
-    ac_srcdir=.
-    ac_top_srcdir=$ac_top_builddir_sub
-    ac_abs_top_srcdir=$ac_pwd ;;
-  [\\/]* | ?:[\\/]* )  # Absolute name.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir
-    ac_abs_top_srcdir=$srcdir ;;
-  *) # Relative name.
-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_build_prefix$srcdir
-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
-  case $ac_mode in
-  :F)
-  #
-  # CONFIG_FILE
-  #
-
-  case $INSTALL in
-  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
-  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
-  esac
-  ac_MKDIR_P=$MKDIR_P
-  case $MKDIR_P in
-  [\\/$]* | ?:[\\/]* ) ;;
-  */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
-  esac
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-ac_sed_dataroot='
-/datarootdir/ {
-  p
-  q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p'
-case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-  ac_datarootdir_hack='
-  s&@datadir@&$datadir&g
-  s&@docdir@&$docdir&g
-  s&@infodir@&$infodir&g
-  s&@localedir@&$localedir&g
-  s&@mandir@&$mandir&g
-  s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
-_ACEOF
-
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_sed_extra="$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s|@configure_input@|$ac_sed_conf_input|;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@top_build_prefix@&$ac_top_build_prefix&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-s&@INSTALL@&$ac_INSTALL&;t t
-s&@MKDIR_P@&$ac_MKDIR_P&;t t
-$ac_datarootdir_hack
-"
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
-  || as_fn_error $? "could not create $ac_file" "$LINENO" 5 
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
-  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
-  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined" >&2;}
-
-  rm -f "$tmp/stdin"
-  case $ac_file in
-  -) cat "$tmp/out" && rm -f "$tmp/out";;
-  *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
-  esac \
-  || as_fn_error $? "could not create $ac_file" "$LINENO" 5 
- ;;
-  :H)
-  #
-  # CONFIG_HEADER
-  #
-  if test x"$ac_file" != x-; then
-    {
-      $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
-    } >"$tmp/config.h" \
-      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 
-    if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-$as_echo "$as_me: $ac_file is unchanged" >&6;}
-    else
-      rm -f "$ac_file"
-      mv "$tmp/config.h" "$ac_file" \
-	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5 
-    fi
-  else
-    $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
-      || as_fn_error $? "could not create -" "$LINENO" 5 
-  fi
-# Compute "$ac_file"'s index in $config_headers.
-_am_arg="$ac_file"
-_am_stamp_count=1
-for _am_header in $config_headers :; do
-  case $_am_header in
-    $_am_arg | $_am_arg:* )
-      break ;;
-    * )
-      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
-  esac
-done
-echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
-$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$_am_arg" : 'X\(//\)[^/]' \| \
-	 X"$_am_arg" : 'X\(//\)$' \| \
-	 X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$_am_arg" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`/stamp-h$_am_stamp_count
- ;;
-  
-  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
-$as_echo "$as_me: executing $ac_file commands" >&6;}
- ;;
-  esac
-
-
-  case $ac_file$ac_mode in
-    "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
-  # Autoconf 2.62 quotes --file arguments for eval, but not when files
-  # are listed without --file.  Let's play safe and only enable the eval
-  # if we detect the quoting.
-  case $CONFIG_FILES in
-  *\'*) eval set x "$CONFIG_FILES" ;;
-  *)   set x $CONFIG_FILES ;;
-  esac
-  shift
-  for mf
-  do
-    # Strip MF so we end up with the name of the file.
-    mf=`echo "$mf" | sed -e 's/:.*$//'`
-    # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named `Makefile.in', but
-    # some people rename them; so instead we look at the file content.
-    # Grep'ing the first line is not enough: some people post-process
-    # each Makefile.in and add a new line on top of each file to say so.
-    # Grep'ing the whole file is not good either: AIX grep has a line
-    # limit of 2048, but all sed's we know have understand at least 4000.
-    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
-      dirpart=`$as_dirname -- "$mf" ||
-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$mf" : 'X\(//\)[^/]' \| \
-	 X"$mf" : 'X\(//\)$' \| \
-	 X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$mf" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-    else
-      continue
-    fi
-    # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running `make'.
-    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
-    test -z "$DEPDIR" && continue
-    am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
-    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # When using ansi2knr, U may be empty or an underscore; expand it
-    U=`sed -n 's/^U = //p' < "$mf"`
-    # Find all dependency output files, they are included files with
-    # $(DEPDIR) in their names.  We invoke sed twice because it is the
-    # simplest approach to changing $(DEPDIR) to its actual value in the
-    # expansion.
-    for file in `sed -n "
-      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
-      # Make sure the directory exists.
-      test -f "$dirpart/$file" && continue
-      fdir=`$as_dirname -- "$file" ||
-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$file" : 'X\(//\)[^/]' \| \
-	 X"$file" : 'X\(//\)$' \| \
-	 X"$file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      as_dir=$dirpart/$fdir; as_fn_mkdir_p
-      # echo "creating $dirpart/$file"
-      echo '# dummy' > "$dirpart/$file"
-    done
-  done
-}
- ;;
-    "libtool":C) 
-    
-    # See if we are running on zsh, and set the options which allow our
-    # commands through without removal of \ escapes.
-    if test -n "${ZSH_VERSION+set}" ; then
-      setopt NO_GLOB_SUBST
-    fi
-
-    cfgfile="${ofile}T"
-    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
-    $RM "$cfgfile"
-
-    cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008 Free Software Foundation, Inc.
-#   Written by Gordon Matzigkeit, 1996
-#
-#   This file is part of GNU Libtool.
-#
-# GNU Libtool 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.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool 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 GNU Libtool; see the file COPYING.  If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-
-# The names of the tagged configurations supported by this script.
-available_tags="CXX "
-
-# ### BEGIN LIBTOOL CONFIG
-
-# Assembler program.
-AS=$AS
-
-# DLL creation program.
-DLLTOOL=$DLLTOOL
-
-# Object dumper program.
-OBJDUMP=$OBJDUMP
-
-# Which release of libtool.m4 was used?
-macro_version=$macro_version
-macro_revision=$macro_revision
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# What type of objects to build.
-pic_mode=$pic_mode
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
-
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# A sed program that does not truncate output.
-SED=$lt_SED
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="\$SED -e 1s/^X//"
-
-# A grep program that handles long lines.
-GREP=$lt_GREP
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# A literal string matcher.
-FGREP=$lt_FGREP
-
-# A BSD- or MS-compatible name lister.
-NM=$lt_NM
-
-# Whether we need soft or hard links.
-LN_S=$lt_LN_S
-
-# What is the maximum length of a command?
-max_cmd_len=$max_cmd_len
-
-# Object file suffix (normally "o").
-objext=$ac_objext
-
-# Executable file suffix (normally "").
-exeext=$exeext
-
-# whether the shell understands "unset".
-lt_unset=$lt_unset
-
-# turn spaces into newlines.
-SP2NL=$lt_lt_SP2NL
-
-# turn newlines into spaces.
-NL2SP=$lt_lt_NL2SP
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == "file_magic".
-file_magic_cmd=$lt_file_magic_cmd
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A symbol stripping program.
-STRIP=$lt_STRIP
-
-# Commands used to install an old-style archive.
-RANLIB=$lt_RANLIB
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# A C compiler.
-LTCC=$lt_CC
-
-# LTCC compiler flags.
-LTCFLAGS=$lt_CFLAGS
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration.
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair.
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# Transform the output of nm in a C name address pair when lib prefix is needed.
-global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# An echo program that does not interpret backslashes.
-ECHO=$lt_ECHO
-
-# Used to examine libraries when file_magic_cmd begins with "file".
-MAGIC_CMD=$MAGIC_CMD
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
-DSYMUTIL=$lt_DSYMUTIL
-
-# Tool to change global to local symbols on Mac OS X.
-NMEDIT=$lt_NMEDIT
-
-# Tool to manipulate fat objects and archives on Mac OS X.
-LIPO=$lt_LIPO
-
-# ldd/readelf like tool for Mach-O binaries on Mac OS X.
-OTOOL=$lt_OTOOL
-
-# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
-OTOOL64=$lt_OTOOL64
-
-# Old archive suffix (normally "a").
-libext=$libext
-
-# Shared library suffix (normally ".so").
-shrext_cmds=$lt_shrext_cmds
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at link time.
-variables_saved_for_relink=$lt_variables_saved_for_relink
-
-# Do we need the "lib" prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Library versioning type.
-version_type=$version_type
-
-# Shared library runtime path variable.
-runpath_var=$runpath_var
-
-# Shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Command to use after installation of a shared archive.
-postinstall_cmds=$lt_postinstall_cmds
-
-# Command to use after uninstallation of a shared archive.
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# As "finish_cmds", except a single script fragment to be evaled but
-# not shown.
-finish_eval=$lt_finish_eval
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Compile-time system search path for libraries.
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries.
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-
-# The linker used to build libraries.
-LD=$lt_LD
-
-# Commands used to build an old-style archive.
-old_archive_cmds=$lt_old_archive_cmds
-
-# A language specific compiler.
-CC=$lt_compiler
-
-# Is the compiler the GNU compiler?
-with_gcc=$GCC
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc
-
-# Whether or not to disallow shared libs when runtime libs are static.
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec
-
-# Whether the compiler copes with passing no objects directly.
-compiler_needs_object=$lt_compiler_needs_object
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
-
-# Commands used to build a shared archive.
-archive_cmds=$lt_archive_cmds
-archive_expsym_cmds=$lt_archive_expsym_cmds
-
-# Commands used to build a loadable module if different from building
-# a shared archive.
-module_cmds=$lt_module_cmds
-module_expsym_cmds=$lt_module_expsym_cmds
-
-# Whether we are building with GNU ld or not.
-with_gnu_ld=$lt_with_gnu_ld
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag
-
-# Flag that enforces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
-
-# If ld is used when linking, flag to hardcode \$libdir into a binary
-# during linking.  This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
-
-# Whether we need a single "-rpath" flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary.
-hardcode_direct=$hardcode_direct
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
-# library is relocated.
-hardcode_direct_absolute=$hardcode_direct_absolute
-
-# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-# into the resulting binary.
-hardcode_minus_L=$hardcode_minus_L
-
-# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-# into the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var
-
-# Set to "yes" if building a shared library automatically hardcodes DIR
-# into the library and all subsequent libraries and executables linked
-# against it.
-hardcode_automatic=$hardcode_automatic
-
-# Set to yes if linker adds runtime paths of dependent libraries
-# to runtime path list.
-inherit_rpath=$inherit_rpath
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path=$lt_fix_srcfile_path
-
-# Set to "yes" if exported symbols are required.
-always_export_symbols=$always_export_symbols
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms
-
-# Commands necessary for linking programs (against libraries) with templates.
-prelink_cmds=$lt_prelink_cmds
-
-# Specify filename containing input files.
-file_list_spec=$lt_file_list_spec
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action
-
-# The directories searched by this compiler when creating a shared library.
-compiler_lib_search_dirs=$lt_compiler_lib_search_dirs
-
-# Dependencies to place before and after the objects being linked to
-# create a shared library.
-predep_objects=$lt_predep_objects
-postdep_objects=$lt_postdep_objects
-predeps=$lt_predeps
-postdeps=$lt_postdeps
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path
-
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
-  case $host_os in
-  aix3*)
-    cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program.  For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
-  COLLECT_NAMES=
-  export COLLECT_NAMES
-fi
-_LT_EOF
-    ;;
-  esac
-
-  
-ltmain="$ac_aux_dir/ltmain.sh"
-
-
-  # We use sed instead of cat because bash on DJGPP gets confused if
-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-  # text mode, it properly converts lines to CR/LF.  This bash problem
-  # is reportedly fixed, but why not run on old versions too?
-  sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  case $xsi_shell in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result="${1##*/}"
-}
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-#   dirname:  Compute the dirname of FILE.  If nonempty,
-#             add APPEND to the result, otherwise set result
-#             to NONDIR_REPLACEMENT.
-#             value returned in "$func_dirname_result"
-#   basename: Compute filename of FILE.
-#             value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-  func_basename_result="${1##*/}"
-}
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-func_stripname ()
-{
-  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
-  # positional parameters, so assign one to ordinary parameter first.
-  func_stripname_result=${3}
-  func_stripname_result=${func_stripname_result#"${1}"}
-  func_stripname_result=${func_stripname_result%"${2}"}
-}
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=${1%%=*}
-  func_opt_split_arg=${1#*=}
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  case ${1} in
-    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
-    *)    func_lo2o_result=${1} ;;
-  esac
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=${1%.*}.lo
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=$(( $* ))
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=${#1}
-}
-
-_LT_EOF
-    ;;
-  *) # Bourne compatible functions.
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  # Extract subdirectory from the argument.
-  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
-  if test "X$func_dirname_result" = "X${1}"; then
-    func_dirname_result="${3}"
-  else
-    func_dirname_result="$func_dirname_result${2}"
-  fi
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
-}
-
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
-  case ${2} in
-    .*) func_stripname_result=`$ECHO "X${3}" \
-           | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
-    *)  func_stripname_result=`$ECHO "X${3}" \
-           | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
-  esac
-}
-
-# sed scripts:
-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
-my_sed_long_arg='1s/^-[^=]*=//'
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
-  func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'`
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=`expr "$@"`
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
-}
-
-_LT_EOF
-esac
-
-case $lt_shell_append in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$1+=\$2"
-}
-_LT_EOF
-    ;;
-  *)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$1=\$$1\$2"
-}
-
-_LT_EOF
-    ;;
-  esac
-
-
-  sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  mv -f "$cfgfile" "$ofile" ||
-    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
-  chmod +x "$ofile"
-
-
-    cat <<_LT_EOF >> "$ofile"
-
-# ### BEGIN LIBTOOL TAG CONFIG: CXX
-
-# The linker used to build libraries.
-LD=$lt_LD_CXX
-
-# Commands used to build an old-style archive.
-old_archive_cmds=$lt_old_archive_cmds_CXX
-
-# A language specific compiler.
-CC=$lt_compiler_CXX
-
-# Is the compiler the GNU compiler?
-with_gcc=$GCC_CXX
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_CXX
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_CXX
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_CXX
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_CXX
-
-# Whether or not to disallow shared libs when runtime libs are static.
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
-
-# Whether the compiler copes with passing no objects directly.
-compiler_needs_object=$lt_compiler_needs_object_CXX
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
-
-# Commands used to build a shared archive.
-archive_cmds=$lt_archive_cmds_CXX
-archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
-
-# Commands used to build a loadable module if different from building
-# a shared archive.
-module_cmds=$lt_module_cmds_CXX
-module_expsym_cmds=$lt_module_expsym_cmds_CXX
-
-# Whether we are building with GNU ld or not.
-with_gnu_ld=$lt_with_gnu_ld_CXX
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_CXX
-
-# Flag that enforces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_CXX
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
-
-# If ld is used when linking, flag to hardcode \$libdir into a binary
-# during linking.  This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX
-
-# Whether we need a single "-rpath" flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary.
-hardcode_direct=$hardcode_direct_CXX
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
-# library is relocated.
-hardcode_direct_absolute=$hardcode_direct_absolute_CXX
-
-# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-# into the resulting binary.
-hardcode_minus_L=$hardcode_minus_L_CXX
-
-# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-# into the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
-
-# Set to "yes" if building a shared library automatically hardcodes DIR
-# into the library and all subsequent libraries and executables linked
-# against it.
-hardcode_automatic=$hardcode_automatic_CXX
-
-# Set to yes if linker adds runtime paths of dependent libraries
-# to runtime path list.
-inherit_rpath=$inherit_rpath_CXX
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_CXX
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path=$lt_fix_srcfile_path_CXX
-
-# Set to "yes" if exported symbols are required.
-always_export_symbols=$always_export_symbols_CXX
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_CXX
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_CXX
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_CXX
-
-# Commands necessary for linking programs (against libraries) with templates.
-prelink_cmds=$lt_prelink_cmds_CXX
-
-# Specify filename containing input files.
-file_list_spec=$lt_file_list_spec_CXX
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_CXX
-
-# The directories searched by this compiler when creating a shared library.
-compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX
-
-# Dependencies to place before and after the objects being linked to
-# create a shared library.
-predep_objects=$lt_predep_objects_CXX
-postdep_objects=$lt_postdep_objects_CXX
-predeps=$lt_predeps_CXX
-postdeps=$lt_postdeps_CXX
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
-
-# ### END LIBTOOL TAG CONFIG: CXX
-_LT_EOF
-
- ;;
-
-  esac
-done # for ac_tag
-
-
-as_fn_exit 0
-_ACEOF
-ac_clean_files=$ac_clean_files_save
-
-test $ac_write_fail = 0 ||
-  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded.  So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status.  When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
-  ac_cs_success=:
-  ac_config_status_args=
-  test "$silent" = yes &&
-    ac_config_status_args="$ac_config_status_args --quiet"
-  exec 5>/dev/null
-  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
-  exec 5>>config.log
-  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
-  # would make configure fail if this is the last instruction.
-  $ac_cs_success || as_fn_exit 1
-fi
-if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
-fi
-
-
diff --git a/autom4te.cache/requests b/autom4te.cache/requests
deleted file mode 100644
index b8df06f..0000000
--- a/autom4te.cache/requests
+++ /dev/null
@@ -1,279 +0,0 @@
-# This file was generated by Autom4te Tue Aug  3 21:06:07 PDT 2010.
-# It contains the lists of macros which have been traced.
-# It can be safely removed.
-
- at request = (
-             bless( [
-                      '0',
-                      1,
-                      [
-                        '/usr/share/autoconf'
-                      ],
-                      [
-                        '/usr/share/autoconf/autoconf/autoconf.m4f',
-                        '/usr/share/aclocal/argz.m4',
-                        '/usr/share/aclocal/ltdl.m4',
-                        '/usr/share/aclocal-1.11/amversion.m4',
-                        '/usr/share/aclocal-1.11/auxdir.m4',
-                        '/usr/share/aclocal-1.11/cond.m4',
-                        '/usr/share/aclocal-1.11/depend.m4',
-                        '/usr/share/aclocal-1.11/depout.m4',
-                        '/usr/share/aclocal-1.11/init.m4',
-                        '/usr/share/aclocal-1.11/install-sh.m4',
-                        '/usr/share/aclocal-1.11/lead-dot.m4',
-                        '/usr/share/aclocal-1.11/make.m4',
-                        '/usr/share/aclocal-1.11/missing.m4',
-                        '/usr/share/aclocal-1.11/mkdirp.m4',
-                        '/usr/share/aclocal-1.11/options.m4',
-                        '/usr/share/aclocal-1.11/python.m4',
-                        '/usr/share/aclocal-1.11/runlog.m4',
-                        '/usr/share/aclocal-1.11/sanity.m4',
-                        '/usr/share/aclocal-1.11/silent.m4',
-                        '/usr/share/aclocal-1.11/strip.m4',
-                        '/usr/share/aclocal-1.11/substnot.m4',
-                        '/usr/share/aclocal-1.11/tar.m4',
-                        'config/autotroll.m4',
-                        'config/libtool.m4',
-                        'config/ltoptions.m4',
-                        'config/ltsugar.m4',
-                        'config/ltversion.m4',
-                        'config/lt~obsolete.m4',
-                        'configure.ac'
-                      ],
-                      {
-                        'AM_ENABLE_STATIC' => 1,
-                        'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
-                        '_LT_AC_SHELL_INIT' => 1,
-                        'AC_DEFUN' => 1,
-                        '_LT_AC_LANG_CXX_CONFIG' => 1,
-                        'AC_PROG_LIBTOOL' => 1,
-                        'AM_PROG_MKDIR_P' => 1,
-                        'AM_PYTHON_CHECK_VERSION' => 1,
-                        'AM_AUTOMAKE_VERSION' => 1,
-                        'AM_SUBST_NOTMAKE' => 1,
-                        'AM_MISSING_PROG' => 1,
-                        'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
-                        '_LT_AC_LANG_C_CONFIG' => 1,
-                        'AM_PROG_INSTALL_STRIP' => 1,
-                        '_m4_warn' => 1,
-                        'AC_LIBTOOL_OBJDIR' => 1,
-                        'gl_FUNC_ARGZ' => 1,
-                        'LTOBSOLETE_VERSION' => 1,
-                        'AM_SANITY_CHECK' => 1,
-                        'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
-                        'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
-                        'LT_LIB_M' => 1,
-                        '_LT_AC_CHECK_DLFCN' => 1,
-                        'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
-                        'LTSUGAR_VERSION' => 1,
-                        '_LT_PROG_LTMAIN' => 1,
-                        'LT_SYS_SYMBOL_USCORE' => 1,
-                        '_AM_PROG_TAR' => 1,
-                        'AC_LIBTOOL_GCJ' => 1,
-                        'LT_SYS_DLOPEN_DEPLIBS' => 1,
-                        'LT_FUNC_DLSYM_USCORE' => 1,
-                        '_LT_AC_LANG_F77' => 1,
-                        'AC_LIBTOOL_CONFIG' => 1,
-                        'AC_LTDL_DLLIB' => 1,
-                        '_AM_SUBST_NOTMAKE' => 1,
-                        '_AM_AUTOCONF_VERSION' => 1,
-                        'AM_DISABLE_SHARED' => 1,
-                        '_LTDL_SETUP' => 1,
-                        'AM_PROG_LIBTOOL' => 1,
-                        '_LT_AC_LANG_CXX' => 1,
-                        'AM_PROG_LD' => 1,
-                        '_LT_AC_FILE_LTDLL_C' => 1,
-                        'AC_LIB_LTDL' => 1,
-                        'AU_DEFUN' => 1,
-                        'AC_PROG_NM' => 1,
-                        'AC_LIBTOOL_DLOPEN' => 1,
-                        'AC_PROG_LD' => 1,
-                        'AC_ENABLE_FAST_INSTALL' => 1,
-                        'AC_PROG_LD_GNU' => 1,
-                        'AC_LIBTOOL_FC' => 1,
-                        'LTDL_CONVENIENCE' => 1,
-                        '_AM_SET_OPTION' => 1,
-                        'AC_LTDL_PREOPEN' => 1,
-                        '_LT_LINKER_BOILERPLATE' => 1,
-                        'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
-                        'AC_LIBTOOL_PROG_CC_C_O' => 1,
-                        'gl_PREREQ_ARGZ' => 1,
-                        'LT_SUPPORTED_TAG' => 1,
-                        'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
-                        'LT_PROG_RC' => 1,
-                        'LT_SYS_MODULE_EXT' => 1,
-                        'AC_DEFUN_ONCE' => 1,
-                        'AT_WITH_QT' => 1,
-                        '_LT_AC_LANG_GCJ' => 1,
-                        'AC_LTDL_OBJDIR' => 1,
-                        '_LT_PATH_TOOL_PREFIX' => 1,
-                        'AC_LIBTOOL_RC' => 1,
-                        'AC_DISABLE_FAST_INSTALL' => 1,
-                        '_LT_AC_PROG_ECHO_BACKSLASH' => 1,
-                        'AM_SILENT_RULES' => 1,
-                        'AT_REQUIRE_QT_VERSION' => 1,
-                        'include' => 1,
-                        '_LT_AC_TRY_DLOPEN_SELF' => 1,
-                        '_LT_AC_SYS_LIBPATH_AIX' => 1,
-                        'LT_AC_PROG_SED' => 1,
-                        'AM_ENABLE_SHARED' => 1,
-                        'LTDL_INSTALLABLE' => 1,
-                        '_LT_AC_LANG_GCJ_CONFIG' => 1,
-                        'AC_ENABLE_SHARED' => 1,
-                        'AC_ENABLE_STATIC' => 1,
-                        'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
-                        '_LT_AC_TAGVAR' => 1,
-                        'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
-                        'AM_CONDITIONAL' => 1,
-                        '_AT_TWEAK_PRO_FILE' => 1,
-                        'LT_LIB_DLLOAD' => 1,
-                        'LTDL_INIT' => 1,
-                        'LTVERSION_VERSION' => 1,
-                        'm4_include' => 1,
-                        'AM_PROG_INSTALL_SH' => 1,
-                        'AC_PROG_EGREP' => 1,
-                        'AM_PATH_PYTHON' => 1,
-                        'AC_PATH_MAGIC' => 1,
-                        '_AC_AM_CONFIG_HEADER_HOOK' => 1,
-                        'AC_LTDL_SYSSEARCHPATH' => 1,
-                        'AM_MAKE_INCLUDE' => 1,
-                        '_LT_AC_TAGCONFIG' => 1,
-                        'LT_CMD_MAX_LEN' => 1,
-                        'm4_pattern_forbid' => 1,
-                        '_LT_LINKER_OPTION' => 1,
-                        'AC_LIBTOOL_COMPILER_OPTION' => 1,
-                        'AC_DISABLE_SHARED' => 1,
-                        '_LT_COMPILER_BOILERPLATE' => 1,
-                        'AC_LIBTOOL_WIN32_DLL' => 1,
-                        'AC_LIBTOOL_SETUP' => 1,
-                        'AC_PROG_LD_RELOAD_FLAG' => 1,
-                        'AC_LTDL_DLSYM_USCORE' => 1,
-                        'AM_MISSING_HAS_RUN' => 1,
-                        'LT_LANG' => 1,
-                        'LT_SYS_DLSEARCH_PATH' => 1,
-                        'LT_CONFIG_LTDL_DIR' => 1,
-                        'AC_LIBTOOL_DLOPEN_SELF' => 1,
-                        'LT_OUTPUT' => 1,
-                        'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
-                        'AC_WITH_LTDL' => 1,
-                        'AC_LIBTOOL_LINKER_OPTION' => 1,
-                        'LT_AC_PROG_RC' => 1,
-                        'AC_LIBTOOL_CXX' => 1,
-                        'LT_INIT' => 1,
-                        'LT_AC_PROG_GCJ' => 1,
-                        'LT_SYS_DLOPEN_SELF' => 1,
-                        'AM_DISABLE_STATIC' => 1,
-                        'AM_DEP_TRACK' => 1,
-                        '_AC_PROG_LIBTOOL' => 1,
-                        '_AM_IF_OPTION' => 1,
-                        'AC_PATH_TOOL_PREFIX' => 1,
-                        'm4_pattern_allow' => 1,
-                        'AC_LIBTOOL_F77' => 1,
-                        'AM_SET_LEADING_DOT' => 1,
-                        'LT_AC_PROG_EGREP' => 1,
-                        '_AM_DEPENDENCIES' => 1,
-                        'AC_LIBTOOL_LANG_C_CONFIG' => 1,
-                        'LTOPTIONS_VERSION' => 1,
-                        '_LT_AC_SYS_COMPILER' => 1,
-                        'AM_PROG_NM' => 1,
-                        'AC_LIBLTDL_CONVENIENCE' => 1,
-                        'AC_DEPLIBS_CHECK_METHOD' => 1,
-                        'AC_LIBLTDL_INSTALLABLE' => 1,
-                        'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
-                        'AC_LTDL_ENABLE_INSTALL' => 1,
-                        'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
-                        'LT_PROG_GCJ' => 1,
-                        'AM_INIT_AUTOMAKE' => 1,
-                        'AC_DISABLE_STATIC' => 1,
-                        'LT_PATH_NM' => 1,
-                        'AC_LTDL_SHLIBEXT' => 1,
-                        '_LT_AC_LOCK' => 1,
-                        '_LT_AC_LANG_RC_CONFIG' => 1,
-                        'LT_SYS_MODULE_PATH' => 1,
-                        'LT_WITH_LTDL' => 1,
-                        'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
-                        'AC_LTDL_SHLIBPATH' => 1,
-                        'AM_AUX_DIR_EXPAND' => 1,
-                        'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
-                        '_LT_AC_LANG_F77_CONFIG' => 1,
-                        '_LT_COMPILER_OPTION' => 1,
-                        '_AM_SET_OPTIONS' => 1,
-                        'AM_RUN_LOG' => 1,
-                        '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
-                        'AC_LIBTOOL_PICMODE' => 1,
-                        'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
-                        'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
-                        'AC_CHECK_LIBM' => 1,
-                        'LT_PATH_LD' => 1,
-                        'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
-                        '_AM_MANGLE_OPTION' => 1,
-                        'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
-                        'AC_LTDL_SYMBOL_USCORE' => 1,
-                        'AM_SET_DEPDIR' => 1,
-                        '_LT_CC_BASENAME' => 1,
-                        '_LT_LIBOBJ' => 1
-                      }
-                    ], 'Autom4te::Request' ),
-             bless( [
-                      '1',
-                      1,
-                      [
-                        '/usr/share/autoconf'
-                      ],
-                      [
-                        '/usr/share/autoconf/autoconf/autoconf.m4f',
-                        'aclocal.m4',
-                        'configure.ac'
-                      ],
-                      {
-                        'AM_PROG_F77_C_O' => 1,
-                        '_LT_AC_TAGCONFIG' => 1,
-                        'AC_INIT' => 1,
-                        'm4_pattern_forbid' => 1,
-                        'AC_CANONICAL_TARGET' => 1,
-                        '_AM_COND_IF' => 1,
-                        'AC_CONFIG_LIBOBJ_DIR' => 1,
-                        'AC_SUBST' => 1,
-                        'AC_CANONICAL_HOST' => 1,
-                        'AC_FC_SRCEXT' => 1,
-                        'AC_PROG_LIBTOOL' => 1,
-                        'AM_INIT_AUTOMAKE' => 1,
-                        'AC_CONFIG_SUBDIRS' => 1,
-                        'AM_AUTOMAKE_VERSION' => 1,
-                        'LT_CONFIG_LTDL_DIR' => 1,
-                        'AC_CONFIG_LINKS' => 1,
-                        'AC_REQUIRE_AUX_FILE' => 1,
-                        'LT_SUPPORTED_TAG' => 1,
-                        'm4_sinclude' => 1,
-                        'AM_MAINTAINER_MODE' => 1,
-                        'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
-                        '_m4_warn' => 1,
-                        'AM_PROG_CXX_C_O' => 1,
-                        '_AM_COND_ENDIF' => 1,
-                        'AM_ENABLE_MULTILIB' => 1,
-                        'AM_SILENT_RULES' => 1,
-                        'AC_CONFIG_FILES' => 1,
-                        'LT_INIT' => 1,
-                        'include' => 1,
-                        'AM_GNU_GETTEXT' => 1,
-                        'AC_LIBSOURCE' => 1,
-                        'AC_CANONICAL_BUILD' => 1,
-                        'AM_PROG_FC_C_O' => 1,
-                        'AC_FC_FREEFORM' => 1,
-                        'AH_OUTPUT' => 1,
-                        'AC_CONFIG_AUX_DIR' => 1,
-                        '_AM_SUBST_NOTMAKE' => 1,
-                        'AM_PROG_CC_C_O' => 1,
-                        'm4_pattern_allow' => 1,
-                        'sinclude' => 1,
-                        'AM_CONDITIONAL' => 1,
-                        'AC_CANONICAL_SYSTEM' => 1,
-                        'AC_CONFIG_HEADERS' => 1,
-                        'AC_DEFINE_TRACE_LITERAL' => 1,
-                        'm4_include' => 1,
-                        '_AM_COND_ELSE' => 1,
-                        'AC_SUBST_TRACE' => 1
-                      }
-                    ], 'Autom4te::Request' )
-           );
-
diff --git a/autom4te.cache/traces.0 b/autom4te.cache/traces.0
deleted file mode 100644
index ce4ad95..0000000
--- a/autom4te.cache/traces.0
+++ /dev/null
@@ -1,3006 +0,0 @@
-m4trace:/usr/share/aclocal/argz.m4:12: -1- AC_DEFUN([gl_FUNC_ARGZ], [gl_PREREQ_ARGZ
-
-AC_CHECK_HEADERS([argz.h], [], [], [AC_INCLUDES_DEFAULT])
-
-AC_CHECK_TYPES([error_t],
-  [],
-  [AC_DEFINE([error_t], [int],
-   [Define to a type to use for `error_t' if it is not otherwise available.])
-   AC_DEFINE([__error_t_defined], [1], [Define so that glibc/gnulib argp.h
-    does not typedef error_t.])],
-  [#if defined(HAVE_ARGZ_H)
-#  include <argz.h>
-#endif])
-
-ARGZ_H=
-AC_CHECK_FUNCS([argz_add argz_append argz_count argz_create_sep argz_insert \
-	argz_next argz_stringify], [], [ARGZ_H=argz.h; AC_LIBOBJ([argz])])
-
-dnl if have system argz functions, allow forced use of
-dnl libltdl-supplied implementation (and default to do so
-dnl on "known bad" systems). Could use a runtime check, but
-dnl (a) detecting malloc issues is notoriously unreliable
-dnl (b) only known system that declares argz functions,
-dnl     provides them, yet they are broken, is cygwin
-dnl     releases prior to 16-Mar-2007 (1.5.24 and earlier)
-dnl So, it's more straightforward simply to special case
-dnl this for known bad systems.
-AS_IF([test -z "$ARGZ_H"],
-    [AC_CACHE_CHECK(
-        [if argz actually works],
-        [lt_cv_sys_argz_works],
-        [[case $host_os in #(
-	 *cygwin*)
-	   lt_cv_sys_argz_works=no
-	   if test "$cross_compiling" != no; then
-	     lt_cv_sys_argz_works="guessing no"
-	   else
-	     lt_sed_extract_leading_digits='s/^\([0-9\.]*\).*/\1/'
-	     save_IFS=$IFS
-	     IFS=-.
-	     set x `uname -r | sed -e "$lt_sed_extract_leading_digits"`
-	     IFS=$save_IFS
-	     lt_os_major=${2-0}
-	     lt_os_minor=${3-0}
-	     lt_os_micro=${4-0}
-	     if test "$lt_os_major" -gt 1 \
-		|| { test "$lt_os_major" -eq 1 \
-		  && { test "$lt_os_minor" -gt 5 \
-		    || { test "$lt_os_minor" -eq 5 \
-		      && test "$lt_os_micro" -gt 24; }; }; }; then
-	       lt_cv_sys_argz_works=yes
-	     fi
-	   fi
-	   ;; #(
-	 *) lt_cv_sys_argz_works=yes ;;
-	 esac]])
-     AS_IF([test $lt_cv_sys_argz_works = yes],
-        [AC_DEFINE([HAVE_WORKING_ARGZ], 1,
-                   [This value is set to 1 to indicate that the system argz facility works])],
-        [ARGZ_H=argz.h
-        AC_LIBOBJ([argz])])])
-
-AC_SUBST([ARGZ_H])
-])
-m4trace:/usr/share/aclocal/argz.m4:79: -1- AC_DEFUN([gl_PREREQ_ARGZ], [:])
-m4trace:/usr/share/aclocal/ltdl.m4:16: -1- AC_DEFUN([LT_CONFIG_LTDL_DIR], [AC_BEFORE([$0], [LTDL_INIT])
-_$0($*)
-])
-m4trace:/usr/share/aclocal/ltdl.m4:68: -1- AC_DEFUN([LTDL_CONVENIENCE], [AC_BEFORE([$0], [LTDL_INIT])dnl
-dnl Although the argument is deprecated and no longer documented,
-dnl LTDL_CONVENIENCE used to take a DIRECTORY orgument, if we have one
-dnl here make sure it is the same as any other declaration of libltdl's
-dnl location!  This also ensures lt_ltdl_dir is set when configure.ac is
-dnl not yet using an explicit LT_CONFIG_LTDL_DIR.
-m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl
-_$0()
-])
-m4trace:/usr/share/aclocal/ltdl.m4:81: -1- AU_DEFUN([AC_LIBLTDL_CONVENIENCE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])])
-_LTDL_CONVENIENCE])
-m4trace:/usr/share/aclocal/ltdl.m4:81: -1- AC_DEFUN([AC_LIBLTDL_CONVENIENCE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBLTDL_CONVENIENCE' is obsolete.
-You should run autoupdate.])dnl
-_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])])
-_LTDL_CONVENIENCE])
-m4trace:/usr/share/aclocal/ltdl.m4:124: -1- AC_DEFUN([LTDL_INSTALLABLE], [AC_BEFORE([$0], [LTDL_INIT])dnl
-dnl Although the argument is deprecated and no longer documented,
-dnl LTDL_INSTALLABLE used to take a DIRECTORY orgument, if we have one
-dnl here make sure it is the same as any other declaration of libltdl's
-dnl location!  This also ensures lt_ltdl_dir is set when configure.ac is
-dnl not yet using an explicit LT_CONFIG_LTDL_DIR.
-m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl
-_$0()
-])
-m4trace:/usr/share/aclocal/ltdl.m4:137: -1- AU_DEFUN([AC_LIBLTDL_INSTALLABLE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])])
-_LTDL_INSTALLABLE])
-m4trace:/usr/share/aclocal/ltdl.m4:137: -1- AC_DEFUN([AC_LIBLTDL_INSTALLABLE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBLTDL_INSTALLABLE' is obsolete.
-You should run autoupdate.])dnl
-_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])])
-_LTDL_INSTALLABLE])
-m4trace:/usr/share/aclocal/ltdl.m4:213: -1- AC_DEFUN([_LT_LIBOBJ], [
-  m4_pattern_allow([^_LT_LIBOBJS$])
-  _LT_LIBOBJS="$_LT_LIBOBJS $1.$ac_objext"
-])
-m4trace:/usr/share/aclocal/ltdl.m4:226: -1- AC_DEFUN([LTDL_INIT], [dnl Parse OPTIONS
-_LT_SET_OPTIONS([$0], [$1])
-
-dnl We need to keep our own list of libobjs separate from our parent project,
-dnl and the easiest way to do that is redefine the AC_LIBOBJs macro while
-dnl we look for our own LIBOBJs.
-m4_pushdef([AC_LIBOBJ], m4_defn([_LT_LIBOBJ]))
-m4_pushdef([AC_LIBSOURCES])
-
-dnl If not otherwise defined, default to the 1.5.x compatible subproject mode:
-m4_if(_LTDL_MODE, [],
-        [m4_define([_LTDL_MODE], m4_default([$2], [subproject]))
-        m4_if([-1], [m4_bregexp(_LTDL_MODE, [\(subproject\|\(non\)?recursive\)])],
-                [m4_fatal([unknown libltdl mode: ]_LTDL_MODE)])])
-
-AC_ARG_WITH([included_ltdl],
-    [AS_HELP_STRING([--with-included-ltdl],
-                    [use the GNU ltdl sources included here])])
-
-if test "x$with_included_ltdl" != xyes; then
-  # We are not being forced to use the included libltdl sources, so
-  # decide whether there is a useful installed version we can use.
-  AC_CHECK_HEADER([ltdl.h],
-      [AC_CHECK_DECL([lt_dlinterface_register],
-	   [AC_CHECK_LIB([ltdl], [lt_dladvise_preload],
-	       [with_included_ltdl=no],
-	       [with_included_ltdl=yes])],
-	   [with_included_ltdl=yes],
-	   [AC_INCLUDES_DEFAULT
-	    #include <ltdl.h>])],
-      [with_included_ltdl=yes],
-      [AC_INCLUDES_DEFAULT]
-  )
-fi
-
-dnl If neither LT_CONFIG_LTDL_DIR, LTDL_CONVENIENCE nor LTDL_INSTALLABLE
-dnl was called yet, then for old times' sake, we assume libltdl is in an
-dnl eponymous directory:
-AC_PROVIDE_IFELSE([LT_CONFIG_LTDL_DIR], [], [_LT_CONFIG_LTDL_DIR([libltdl])])
-
-AC_ARG_WITH([ltdl_include],
-    [AS_HELP_STRING([--with-ltdl-include=DIR],
-                    [use the ltdl headers installed in DIR])])
-
-if test -n "$with_ltdl_include"; then
-  if test -f "$with_ltdl_include/ltdl.h"; then :
-  else
-    AC_MSG_ERROR([invalid ltdl include directory: `$with_ltdl_include'])
-  fi
-else
-  with_ltdl_include=no
-fi
-
-AC_ARG_WITH([ltdl_lib],
-    [AS_HELP_STRING([--with-ltdl-lib=DIR],
-                    [use the libltdl.la installed in DIR])])
-
-if test -n "$with_ltdl_lib"; then
-  if test -f "$with_ltdl_lib/libltdl.la"; then :
-  else
-    AC_MSG_ERROR([invalid ltdl library directory: `$with_ltdl_lib'])
-  fi
-else
-  with_ltdl_lib=no
-fi
-
-case ,$with_included_ltdl,$with_ltdl_include,$with_ltdl_lib, in
-  ,yes,no,no,)
-	m4_case(m4_default(_LTDL_TYPE, [convenience]),
-	    [convenience], [_LTDL_CONVENIENCE],
-	    [installable], [_LTDL_INSTALLABLE],
-	  [m4_fatal([unknown libltdl build type: ]_LTDL_TYPE)])
-	;;
-  ,no,no,no,)
-	# If the included ltdl is not to be used, then use the
-	# preinstalled libltdl we found.
-	AC_DEFINE([HAVE_LTDL], [1],
-	  [Define this if a modern libltdl is already installed])
-	LIBLTDL=-lltdl
-	LTDLDEPS=
-	LTDLINCL=
-	;;
-  ,no*,no,*)
-	AC_MSG_ERROR([`--with-ltdl-include' and `--with-ltdl-lib' options must be used together])
-	;;
-  *)	with_included_ltdl=no
-	LIBLTDL="-L$with_ltdl_lib -lltdl"
-	LTDLDEPS=
-	LTDLINCL="-I$with_ltdl_include"
-	;;
-esac
-INCLTDL="$LTDLINCL"
-
-# Report our decision...
-AC_MSG_CHECKING([where to find libltdl headers])
-AC_MSG_RESULT([$LTDLINCL])
-AC_MSG_CHECKING([where to find libltdl library])
-AC_MSG_RESULT([$LIBLTDL])
-
-_LTDL_SETUP
-
-dnl restore autoconf definition.
-m4_popdef([AC_LIBOBJ])
-m4_popdef([AC_LIBSOURCES])
-
-AC_CONFIG_COMMANDS_PRE([
-    _ltdl_libobjs=
-    _ltdl_ltlibobjs=
-    if test -n "$_LT_LIBOBJS"; then
-      # Remove the extension.
-      _lt_sed_drop_objext='s/\.o$//;s/\.obj$//'
-      for i in `for i in $_LT_LIBOBJS; do echo "$i"; done | sed "$_lt_sed_drop_objext" | sort -u`; do
-        _ltdl_libobjs="$_ltdl_libobjs $lt_libobj_prefix$i.$ac_objext"
-        _ltdl_ltlibobjs="$_ltdl_ltlibobjs $lt_libobj_prefix$i.lo"
-      done
-    fi
-    AC_SUBST([ltdl_LIBOBJS], [$_ltdl_libobjs])
-    AC_SUBST([ltdl_LTLIBOBJS], [$_ltdl_ltlibobjs])
-])
-
-# Only expand once:
-m4_define([LTDL_INIT])
-])
-m4trace:/usr/share/aclocal/ltdl.m4:352: -1- AU_DEFUN([AC_LIB_LTDL], [LTDL_INIT($@)])
-m4trace:/usr/share/aclocal/ltdl.m4:352: -1- AC_DEFUN([AC_LIB_LTDL], [AC_DIAGNOSE([obsolete], [The macro `AC_LIB_LTDL' is obsolete.
-You should run autoupdate.])dnl
-LTDL_INIT($@)])
-m4trace:/usr/share/aclocal/ltdl.m4:353: -1- AU_DEFUN([AC_WITH_LTDL], [LTDL_INIT($@)])
-m4trace:/usr/share/aclocal/ltdl.m4:353: -1- AC_DEFUN([AC_WITH_LTDL], [AC_DIAGNOSE([obsolete], [The macro `AC_WITH_LTDL' is obsolete.
-You should run autoupdate.])dnl
-LTDL_INIT($@)])
-m4trace:/usr/share/aclocal/ltdl.m4:354: -1- AU_DEFUN([LT_WITH_LTDL], [LTDL_INIT($@)])
-m4trace:/usr/share/aclocal/ltdl.m4:354: -1- AC_DEFUN([LT_WITH_LTDL], [AC_DIAGNOSE([obsolete], [The macro `LT_WITH_LTDL' is obsolete.
-You should run autoupdate.])dnl
-LTDL_INIT($@)])
-m4trace:/usr/share/aclocal/ltdl.m4:367: -1- AC_DEFUN([_LTDL_SETUP], [AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([LT_SYS_MODULE_EXT])dnl
-AC_REQUIRE([LT_SYS_MODULE_PATH])dnl
-AC_REQUIRE([LT_SYS_DLSEARCH_PATH])dnl
-AC_REQUIRE([LT_LIB_DLLOAD])dnl
-AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl
-AC_REQUIRE([LT_FUNC_DLSYM_USCORE])dnl
-AC_REQUIRE([LT_SYS_DLOPEN_DEPLIBS])dnl
-AC_REQUIRE([gl_FUNC_ARGZ])dnl
-
-m4_require([_LT_CHECK_OBJDIR])dnl
-m4_require([_LT_HEADER_DLFCN])dnl
-m4_require([_LT_CHECK_DLPREOPEN])dnl
-m4_require([_LT_DECL_SED])dnl
-
-dnl Don't require this, or it will be expanded earlier than the code
-dnl that sets the variables it relies on:
-_LT_ENABLE_INSTALL
-
-dnl _LTDL_MODE specific code must be called at least once:
-_LTDL_MODE_DISPATCH
-
-# In order that ltdl.c can compile, find out the first AC_CONFIG_HEADERS
-# the user used.  This is so that ltdl.h can pick up the parent projects
-# config.h file, The first file in AC_CONFIG_HEADERS must contain the
-# definitions required by ltdl.c.
-# FIXME: Remove use of undocumented AC_LIST_HEADERS (2.59 compatibility).
-AC_CONFIG_COMMANDS_PRE([dnl
-m4_pattern_allow([^LT_CONFIG_H$])dnl
-m4_ifset([AH_HEADER],
-    [LT_CONFIG_H=AH_HEADER],
-    [m4_ifset([AC_LIST_HEADERS],
-	    [LT_CONFIG_H=`echo "AC_LIST_HEADERS" | $SED 's,^[[      ]]*,,;s,[[ :]].*$,,'`],
-	[])])])
-AC_SUBST([LT_CONFIG_H])
-
-AC_CHECK_HEADERS([unistd.h dl.h sys/dl.h dld.h mach-o/dyld.h dirent.h],
-	[], [], [AC_INCLUDES_DEFAULT])
-
-AC_CHECK_FUNCS([closedir opendir readdir], [], [AC_LIBOBJ([lt__dirent])])
-AC_CHECK_FUNCS([strlcat strlcpy], [], [AC_LIBOBJ([lt__strl])])
-
-AC_DEFINE_UNQUOTED([LT_LIBEXT],["$libext"],[The archive extension])
-
-name=ltdl
-LTDLOPEN=`eval "\\$ECHO \"$libname_spec\""`
-AC_SUBST([LTDLOPEN])
-])
-m4trace:/usr/share/aclocal/ltdl.m4:437: -1- AC_DEFUN([LT_SYS_DLOPEN_DEPLIBS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_CACHE_CHECK([whether deplibs are loaded by dlopen],
-  [lt_cv_sys_dlopen_deplibs],
-  [# PORTME does your system automatically load deplibs for dlopen?
-  # or its logical equivalent (e.g. shl_load for HP-UX < 11)
-  # For now, we just catch OSes we know something about -- in the
-  # future, we'll try test this programmatically.
-  lt_cv_sys_dlopen_deplibs=unknown
-  case $host_os in
-  aix3*|aix4.1.*|aix4.2.*)
-    # Unknown whether this is true for these versions of AIX, but
-    # we want this `case' here to explicitly catch those versions.
-    lt_cv_sys_dlopen_deplibs=unknown
-    ;;
-  aix[[4-9]]*)
-    lt_cv_sys_dlopen_deplibs=yes
-    ;;
-  amigaos*)
-    case $host_cpu in
-    powerpc)
-      lt_cv_sys_dlopen_deplibs=no
-      ;;
-    esac
-    ;;
-  darwin*)
-    # Assuming the user has installed a libdl from somewhere, this is true
-    # If you are looking for one http://www.opendarwin.org/projects/dlcompat
-    lt_cv_sys_dlopen_deplibs=yes
-    ;;
-  freebsd* | dragonfly*)
-    lt_cv_sys_dlopen_deplibs=yes
-    ;;
-  gnu* | linux* | k*bsd*-gnu | kopensolaris*-gnu)
-    # GNU and its variants, using gnu ld.so (Glibc)
-    lt_cv_sys_dlopen_deplibs=yes
-    ;;
-  hpux10*|hpux11*)
-    lt_cv_sys_dlopen_deplibs=yes
-    ;;
-  interix*)
-    lt_cv_sys_dlopen_deplibs=yes
-    ;;
-  irix[[12345]]*|irix6.[[01]]*)
-    # Catch all versions of IRIX before 6.2, and indicate that we don't
-    # know how it worked for any of those versions.
-    lt_cv_sys_dlopen_deplibs=unknown
-    ;;
-  irix*)
-    # The case above catches anything before 6.2, and it's known that
-    # at 6.2 and later dlopen does load deplibs.
-    lt_cv_sys_dlopen_deplibs=yes
-    ;;
-  netbsd* | netbsdelf*-gnu)
-    lt_cv_sys_dlopen_deplibs=yes
-    ;;
-  openbsd*)
-    lt_cv_sys_dlopen_deplibs=yes
-    ;;
-  osf[[1234]]*)
-    # dlopen did load deplibs (at least at 4.x), but until the 5.x series,
-    # it did *not* use an RPATH in a shared library to find objects the
-    # library depends on, so we explicitly say `no'.
-    lt_cv_sys_dlopen_deplibs=no
-    ;;
-  osf5.0|osf5.0a|osf5.1)
-    # dlopen *does* load deplibs and with the right loader patch applied
-    # it even uses RPATH in a shared library to search for shared objects
-    # that the library depends on, but there's no easy way to know if that
-    # patch is installed.  Since this is the case, all we can really
-    # say is unknown -- it depends on the patch being installed.  If
-    # it is, this changes to `yes'.  Without it, it would be `no'.
-    lt_cv_sys_dlopen_deplibs=unknown
-    ;;
-  osf*)
-    # the two cases above should catch all versions of osf <= 5.1.  Read
-    # the comments above for what we know about them.
-    # At > 5.1, deplibs are loaded *and* any RPATH in a shared library
-    # is used to find them so we can finally say `yes'.
-    lt_cv_sys_dlopen_deplibs=yes
-    ;;
-  qnx*)
-    lt_cv_sys_dlopen_deplibs=yes
-    ;;
-  solaris*)
-    lt_cv_sys_dlopen_deplibs=yes
-    ;;
-  sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-    libltdl_cv_sys_dlopen_deplibs=yes
-    ;;
-  esac
-  ])
-if test "$lt_cv_sys_dlopen_deplibs" != yes; then
- AC_DEFINE([LTDL_DLOPEN_DEPLIBS], [1],
-    [Define if the OS needs help to load dependent libraries for dlopen().])
-fi
-])
-m4trace:/usr/share/aclocal/ltdl.m4:536: -1- AU_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS], [m4_if($#, 0, [LT_SYS_DLOPEN_DEPLIBS], [LT_SYS_DLOPEN_DEPLIBS($@)])])
-m4trace:/usr/share/aclocal/ltdl.m4:536: -1- AC_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYS_DLOPEN_DEPLIBS' is obsolete.
-You should run autoupdate.])dnl
-m4_if($#, 0, [LT_SYS_DLOPEN_DEPLIBS], [LT_SYS_DLOPEN_DEPLIBS($@)])])
-m4trace:/usr/share/aclocal/ltdl.m4:543: -1- AC_DEFUN([LT_SYS_MODULE_EXT], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl
-AC_CACHE_CHECK([which extension is used for runtime loadable modules],
-  [libltdl_cv_shlibext],
-[
-module=yes
-eval libltdl_cv_shlibext=$shrext_cmds
-  ])
-if test -n "$libltdl_cv_shlibext"; then
-  m4_pattern_allow([LT_MODULE_EXT])dnl
-  AC_DEFINE_UNQUOTED([LT_MODULE_EXT], ["$libltdl_cv_shlibext"],
-    [Define to the extension used for runtime loadable modules, say, ".so".])
-fi
-])
-m4trace:/usr/share/aclocal/ltdl.m4:559: -1- AU_DEFUN([AC_LTDL_SHLIBEXT], [m4_if($#, 0, [LT_SYS_MODULE_EXT], [LT_SYS_MODULE_EXT($@)])])
-m4trace:/usr/share/aclocal/ltdl.m4:559: -1- AC_DEFUN([AC_LTDL_SHLIBEXT], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SHLIBEXT' is obsolete.
-You should run autoupdate.])dnl
-m4_if($#, 0, [LT_SYS_MODULE_EXT], [LT_SYS_MODULE_EXT($@)])])
-m4trace:/usr/share/aclocal/ltdl.m4:566: -1- AC_DEFUN([LT_SYS_MODULE_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl
-AC_CACHE_CHECK([which variable specifies run-time module search path],
-  [lt_cv_module_path_var], [lt_cv_module_path_var="$shlibpath_var"])
-if test -n "$lt_cv_module_path_var"; then
-  m4_pattern_allow([LT_MODULE_PATH_VAR])dnl
-  AC_DEFINE_UNQUOTED([LT_MODULE_PATH_VAR], ["$lt_cv_module_path_var"],
-    [Define to the name of the environment variable that determines the run-time module search path.])
-fi
-])
-m4trace:/usr/share/aclocal/ltdl.m4:578: -1- AU_DEFUN([AC_LTDL_SHLIBPATH], [m4_if($#, 0, [LT_SYS_MODULE_PATH], [LT_SYS_MODULE_PATH($@)])])
-m4trace:/usr/share/aclocal/ltdl.m4:578: -1- AC_DEFUN([AC_LTDL_SHLIBPATH], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SHLIBPATH' is obsolete.
-You should run autoupdate.])dnl
-m4_if($#, 0, [LT_SYS_MODULE_PATH], [LT_SYS_MODULE_PATH($@)])])
-m4trace:/usr/share/aclocal/ltdl.m4:585: -1- AC_DEFUN([LT_SYS_DLSEARCH_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl
-AC_CACHE_CHECK([for the default library search path],
-  [lt_cv_sys_dlsearch_path],
-  [lt_cv_sys_dlsearch_path="$sys_lib_dlsearch_path_spec"])
-if test -n "$lt_cv_sys_dlsearch_path"; then
-  sys_dlsearch_path=
-  for dir in $lt_cv_sys_dlsearch_path; do
-    if test -z "$sys_dlsearch_path"; then
-      sys_dlsearch_path="$dir"
-    else
-      sys_dlsearch_path="$sys_dlsearch_path$PATH_SEPARATOR$dir"
-    fi
-  done
-  m4_pattern_allow([LT_DLSEARCH_PATH])dnl
-  AC_DEFINE_UNQUOTED([LT_DLSEARCH_PATH], ["$sys_dlsearch_path"],
-    [Define to the system default library search path.])
-fi
-])
-m4trace:/usr/share/aclocal/ltdl.m4:606: -1- AU_DEFUN([AC_LTDL_SYSSEARCHPATH], [m4_if($#, 0, [LT_SYS_DLSEARCH_PATH], [LT_SYS_DLSEARCH_PATH($@)])])
-m4trace:/usr/share/aclocal/ltdl.m4:606: -1- AC_DEFUN([AC_LTDL_SYSSEARCHPATH], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYSSEARCHPATH' is obsolete.
-You should run autoupdate.])dnl
-m4_if($#, 0, [LT_SYS_DLSEARCH_PATH], [LT_SYS_DLSEARCH_PATH($@)])])
-m4trace:/usr/share/aclocal/ltdl.m4:632: -1- AC_DEFUN([LT_LIB_DLLOAD], [m4_pattern_allow([^LT_DLLOADERS$])
-LT_DLLOADERS=
-AC_SUBST([LT_DLLOADERS])
-
-AC_LANG_PUSH([C])
-
-LIBADD_DLOPEN=
-AC_SEARCH_LIBS([dlopen], [dl],
-	[AC_DEFINE([HAVE_LIBDL], [1],
-		   [Define if you have the libdl library or equivalent.])
-	if test "$ac_cv_search_dlopen" != "none required" ; then
-	  LIBADD_DLOPEN="-ldl"
-	fi
-	libltdl_cv_lib_dl_dlopen="yes"
-	LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"],
-    [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#if HAVE_DLFCN_H
-#  include <dlfcn.h>
-#endif
-    ]], [[dlopen(0, 0);]])],
-	    [AC_DEFINE([HAVE_LIBDL], [1],
-		       [Define if you have the libdl library or equivalent.])
-	    libltdl_cv_func_dlopen="yes"
-	    LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"],
-	[AC_CHECK_LIB([svld], [dlopen],
-		[AC_DEFINE([HAVE_LIBDL], [1],
-			 [Define if you have the libdl library or equivalent.])
-	        LIBADD_DLOPEN="-lsvld" libltdl_cv_func_dlopen="yes"
-		LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"])])])
-if test x"$libltdl_cv_func_dlopen" = xyes || test x"$libltdl_cv_lib_dl_dlopen" = xyes
-then
-  lt_save_LIBS="$LIBS"
-  LIBS="$LIBS $LIBADD_DLOPEN"
-  AC_CHECK_FUNCS([dlerror])
-  LIBS="$lt_save_LIBS"
-fi
-AC_SUBST([LIBADD_DLOPEN])
-
-LIBADD_SHL_LOAD=
-AC_CHECK_FUNC([shl_load],
-	[AC_DEFINE([HAVE_SHL_LOAD], [1],
-		   [Define if you have the shl_load function.])
-	LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la"],
-    [AC_CHECK_LIB([dld], [shl_load],
-	    [AC_DEFINE([HAVE_SHL_LOAD], [1],
-		       [Define if you have the shl_load function.])
-	    LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la"
-	    LIBADD_SHL_LOAD="-ldld"])])
-AC_SUBST([LIBADD_SHL_LOAD])
-
-case $host_os in
-darwin[[1567]].*)
-# We only want this for pre-Mac OS X 10.4.
-  AC_CHECK_FUNC([_dyld_func_lookup],
-	[AC_DEFINE([HAVE_DYLD], [1],
-		   [Define if you have the _dyld_func_lookup function.])
-	LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dyld.la"])
-  ;;
-beos*)
-  LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}load_add_on.la"
-  ;;
-cygwin* | mingw* | os2* | pw32*)
-  AC_CHECK_DECLS([cygwin_conv_path], [], [], [[#include <sys/cygwin.h>]])
-  LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}loadlibrary.la"
-  ;;
-esac
-
-AC_CHECK_LIB([dld], [dld_link],
-	[AC_DEFINE([HAVE_DLD], [1],
-		   [Define if you have the GNU dld library.])
-		LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dld_link.la"])
-AC_SUBST([LIBADD_DLD_LINK])
-
-m4_pattern_allow([^LT_DLPREOPEN$])
-LT_DLPREOPEN=
-if test -n "$LT_DLLOADERS"
-then
-  for lt_loader in $LT_DLLOADERS; do
-    LT_DLPREOPEN="$LT_DLPREOPEN-dlpreopen $lt_loader "
-  done
-  AC_DEFINE([HAVE_LIBDLLOADER], [1],
-            [Define if libdlloader will be built on this platform])
-fi
-AC_SUBST([LT_DLPREOPEN])
-
-dnl This isn't used anymore, but set it for backwards compatibility
-LIBADD_DL="$LIBADD_DLOPEN $LIBADD_SHL_LOAD"
-AC_SUBST([LIBADD_DL])
-
-AC_LANG_POP
-])
-m4trace:/usr/share/aclocal/ltdl.m4:725: -1- AU_DEFUN([AC_LTDL_DLLIB], [m4_if($#, 0, [LT_LIB_DLLOAD], [LT_LIB_DLLOAD($@)])])
-m4trace:/usr/share/aclocal/ltdl.m4:725: -1- AC_DEFUN([AC_LTDL_DLLIB], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_DLLIB' is obsolete.
-You should run autoupdate.])dnl
-m4_if($#, 0, [LT_LIB_DLLOAD], [LT_LIB_DLLOAD($@)])])
-m4trace:/usr/share/aclocal/ltdl.m4:733: -1- AC_DEFUN([LT_SYS_SYMBOL_USCORE], [m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-AC_CACHE_CHECK([for _ prefix in compiled symbols],
-  [lt_cv_sys_symbol_underscore],
-  [lt_cv_sys_symbol_underscore=no
-  cat > conftest.$ac_ext <<_LT_EOF
-void nm_test_func(){}
-int main(){nm_test_func;return 0;}
-_LT_EOF
-  if AC_TRY_EVAL(ac_compile); then
-    # Now try to grab the symbols.
-    ac_nlist=conftest.nm
-    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then
-      # See whether the symbols have a leading underscore.
-      if grep '^. _nm_test_func' "$ac_nlist" >/dev/null; then
-        lt_cv_sys_symbol_underscore=yes
-      else
-        if grep '^. nm_test_func ' "$ac_nlist" >/dev/null; then
-	  :
-        else
-	  echo "configure: cannot find nm_test_func in $ac_nlist" >&AS_MESSAGE_LOG_FD
-        fi
-      fi
-    else
-      echo "configure: cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
-    fi
-  else
-    echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
-    cat conftest.c >&AS_MESSAGE_LOG_FD
-  fi
-  rm -rf conftest*
-  ])
-  sys_symbol_underscore=$lt_cv_sys_symbol_underscore
-  AC_SUBST([sys_symbol_underscore])
-])
-m4trace:/usr/share/aclocal/ltdl.m4:770: -1- AU_DEFUN([AC_LTDL_SYMBOL_USCORE], [m4_if($#, 0, [LT_SYS_SYMBOL_USCORE], [LT_SYS_SYMBOL_USCORE($@)])])
-m4trace:/usr/share/aclocal/ltdl.m4:770: -1- AC_DEFUN([AC_LTDL_SYMBOL_USCORE], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYMBOL_USCORE' is obsolete.
-You should run autoupdate.])dnl
-m4_if($#, 0, [LT_SYS_SYMBOL_USCORE], [LT_SYS_SYMBOL_USCORE($@)])])
-m4trace:/usr/share/aclocal/ltdl.m4:777: -1- AC_DEFUN([LT_FUNC_DLSYM_USCORE], [AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl
-if test x"$lt_cv_sys_symbol_underscore" = xyes; then
-  if test x"$libltdl_cv_func_dlopen" = xyes ||
-     test x"$libltdl_cv_lib_dl_dlopen" = xyes ; then
-	AC_CACHE_CHECK([whether we have to add an underscore for dlsym],
-	  [libltdl_cv_need_uscore],
-	  [libltdl_cv_need_uscore=unknown
-          save_LIBS="$LIBS"
-          LIBS="$LIBS $LIBADD_DLOPEN"
-	  _LT_TRY_DLOPEN_SELF(
-	    [libltdl_cv_need_uscore=no], [libltdl_cv_need_uscore=yes],
-	    [],				 [libltdl_cv_need_uscore=cross])
-	  LIBS="$save_LIBS"
-	])
-  fi
-fi
-
-if test x"$libltdl_cv_need_uscore" = xyes; then
-  AC_DEFINE([NEED_USCORE], [1],
-    [Define if dlsym() requires a leading underscore in symbol names.])
-fi
-])
-m4trace:/usr/share/aclocal/ltdl.m4:802: -1- AU_DEFUN([AC_LTDL_DLSYM_USCORE], [m4_if($#, 0, [LT_FUNC_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE($@)])])
-m4trace:/usr/share/aclocal/ltdl.m4:802: -1- AC_DEFUN([AC_LTDL_DLSYM_USCORE], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_DLSYM_USCORE' is obsolete.
-You should run autoupdate.])dnl
-m4_if($#, 0, [LT_FUNC_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE($@)])])
-m4trace:/usr/share/aclocal-1.11/amversion.m4:14: -1- AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11'
-dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
-dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.11.1], [],
-      [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
-])
-m4trace:/usr/share/aclocal-1.11/amversion.m4:33: -1- AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.1])dnl
-m4_ifndef([AC_AUTOCONF_VERSION],
-  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
-m4trace:/usr/share/aclocal-1.11/auxdir.m4:47: -1- AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly.
-AC_PREREQ([2.50])dnl
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-])
-m4trace:/usr/share/aclocal-1.11/cond.m4:15: -1- AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl
- ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
-	[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
-AC_SUBST([$1_TRUE])dnl
-AC_SUBST([$1_FALSE])dnl
-_AM_SUBST_NOTMAKE([$1_TRUE])dnl
-_AM_SUBST_NOTMAKE([$1_FALSE])dnl
-m4_define([_AM_COND_VALUE_$1], [$2])dnl
-if $2; then
-  $1_TRUE=
-  $1_FALSE='#'
-else
-  $1_TRUE='#'
-  $1_FALSE=
-fi
-AC_CONFIG_COMMANDS_PRE(
-[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
-  AC_MSG_ERROR([[conditional "$1" was never defined.
-Usually this means the macro was only invoked conditionally.]])
-fi])])
-m4trace:/usr/share/aclocal-1.11/depend.m4:28: -1- AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl
-AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
-AC_REQUIRE([AM_MAKE_INCLUDE])dnl
-AC_REQUIRE([AM_DEP_TRACK])dnl
-
-ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
-       [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
-       [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
-       [$1], UPC,  [depcc="$UPC"  am_compiler_list=],
-       [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
-                   [depcc="$$1"   am_compiler_list=])
-
-AC_CACHE_CHECK([dependency style of $depcc],
-               [am_cv_$1_dependencies_compiler_type],
-[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
-  # We make a subdir and do the tests there.  Otherwise we can end up
-  # making bogus files that we don't know about and never remove.  For
-  # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
-  mkdir conftest.dir
-  # Copy depcomp to subdir because otherwise we won't find it if we're
-  # using a relative directory.
-  cp "$am_depcomp" conftest.dir
-  cd conftest.dir
-  # We will build objects and dependencies in a subdirectory because
-  # it helps to detect inapplicable dependency modes.  For instance
-  # both Tru64's cc and ICC support -MD to output dependencies as a
-  # side effect of compilation, but ICC will put the dependencies in
-  # the current directory while Tru64 will put them in the object
-  # directory.
-  mkdir sub
-
-  am_cv_$1_dependencies_compiler_type=none
-  if test "$am_compiler_list" = ""; then
-     am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
-  fi
-  am__universal=false
-  m4_case([$1], [CC],
-    [case " $depcc " in #(
-     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-     esac],
-    [CXX],
-    [case " $depcc " in #(
-     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-     esac])
-
-  for depmode in $am_compiler_list; do
-    # Setup a source with many dependencies, because some compilers
-    # like to wrap large dependency lists on column 80 (with \), and
-    # we should not choose a depcomp mode which is confused by this.
-    #
-    # We need to recreate these files for each test, as the compiler may
-    # overwrite some of them when testing with obscure command lines.
-    # This happens at least with the AIX C compiler.
-    : > sub/conftest.c
-    for i in 1 2 3 4 5 6; do
-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
-    done
-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
-    am__obj=sub/conftest.${OBJEXT-o}
-    am__minus_obj="-o $am__obj"
-    case $depmode in
-    gcc)
-      # This depmode causes a compiler race in universal mode.
-      test "$am__universal" = false || continue
-      ;;
-    nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
-      if test "x$enable_dependency_tracking" = xyes; then
-	continue
-      else
-	break
-      fi
-      ;;
-    msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
-      # not run yet.  These depmodes are late enough in the game, and
-      # so weak that their functioning should not be impacted.
-      am__obj=conftest.${OBJEXT-o}
-      am__minus_obj=
-      ;;
-    none) break ;;
-    esac
-    if depmode=$depmode \
-       source=sub/conftest.c object=$am__obj \
-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
-         >/dev/null 2>conftest.err &&
-       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-      # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-        am_cv_$1_dependencies_compiler_type=$depmode
-        break
-      fi
-    fi
-  done
-
-  cd ..
-  rm -rf conftest.dir
-else
-  am_cv_$1_dependencies_compiler_type=none
-fi
-])
-AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
-AM_CONDITIONAL([am__fastdep$1], [
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
-])
-m4trace:/usr/share/aclocal-1.11/depend.m4:163: -1- AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
-])
-m4trace:/usr/share/aclocal-1.11/depend.m4:171: -1- AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking,
-[  --disable-dependency-tracking  speeds up one-time build
-  --enable-dependency-tracking   do not reject slow dependency extractors])
-if test "x$enable_dependency_tracking" != xno; then
-  am_depcomp="$ac_aux_dir/depcomp"
-  AMDEPBACKSLASH='\'
-fi
-AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
-AC_SUBST([AMDEPBACKSLASH])dnl
-_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
-])
-m4trace:/usr/share/aclocal-1.11/depout.m4:14: -1- AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{
-  # Autoconf 2.62 quotes --file arguments for eval, but not when files
-  # are listed without --file.  Let's play safe and only enable the eval
-  # if we detect the quoting.
-  case $CONFIG_FILES in
-  *\'*) eval set x "$CONFIG_FILES" ;;
-  *)   set x $CONFIG_FILES ;;
-  esac
-  shift
-  for mf
-  do
-    # Strip MF so we end up with the name of the file.
-    mf=`echo "$mf" | sed -e 's/:.*$//'`
-    # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named `Makefile.in', but
-    # some people rename them; so instead we look at the file content.
-    # Grep'ing the first line is not enough: some people post-process
-    # each Makefile.in and add a new line on top of each file to say so.
-    # Grep'ing the whole file is not good either: AIX grep has a line
-    # limit of 2048, but all sed's we know have understand at least 4000.
-    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
-      dirpart=`AS_DIRNAME("$mf")`
-    else
-      continue
-    fi
-    # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running `make'.
-    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
-    test -z "$DEPDIR" && continue
-    am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
-    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # When using ansi2knr, U may be empty or an underscore; expand it
-    U=`sed -n 's/^U = //p' < "$mf"`
-    # Find all dependency output files, they are included files with
-    # $(DEPDIR) in their names.  We invoke sed twice because it is the
-    # simplest approach to changing $(DEPDIR) to its actual value in the
-    # expansion.
-    for file in `sed -n "
-      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
-      # Make sure the directory exists.
-      test -f "$dirpart/$file" && continue
-      fdir=`AS_DIRNAME(["$file"])`
-      AS_MKDIR_P([$dirpart/$fdir])
-      # echo "creating $dirpart/$file"
-      echo '# dummy' > "$dirpart/$file"
-    done
-  done
-}
-])
-m4trace:/usr/share/aclocal-1.11/depout.m4:75: -1- AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles],
-     [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
-     [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
-])
-m4trace:/usr/share/aclocal-1.11/init.m4:26: -1- AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl
-dnl Autoconf wants to disallow AM_ names.  We explicitly allow
-dnl the ones we care about.
-m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
-AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
-AC_REQUIRE([AC_PROG_INSTALL])dnl
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
-  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
-  # is not polluted with repeated "-I."
-  AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
-  # test to see if srcdir already configured
-  if test -f $srcdir/config.status; then
-    AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
-  fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
-  if (cygpath --version) >/dev/null 2>/dev/null; then
-    CYGPATH_W='cygpath -w'
-  else
-    CYGPATH_W=echo
-  fi
-fi
-AC_SUBST([CYGPATH_W])
-
-# Define the identity of the package.
-dnl Distinguish between old-style and new-style calls.
-m4_ifval([$2],
-[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
- AC_SUBST([PACKAGE], [$1])dnl
- AC_SUBST([VERSION], [$2])],
-[_AM_SET_OPTIONS([$1])dnl
-dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
-m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
-  [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
-
-_AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
-
-# Some tools Automake needs.
-AC_REQUIRE([AM_SANITY_CHECK])dnl
-AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
-AM_MISSING_PROG(AUTOCONF, autoconf)
-AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
-AM_MISSING_PROG(AUTOHEADER, autoheader)
-AM_MISSING_PROG(MAKEINFO, makeinfo)
-AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
-AC_REQUIRE([AM_PROG_MKDIR_P])dnl
-# We need awk for the "check" target.  The system "awk" is bad on
-# some platforms.
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
-	      [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
-			     [_AM_PROG_TAR([v7])])])
-_AM_IF_OPTION([no-dependencies],,
-[AC_PROVIDE_IFELSE([AC_PROG_CC],
-		  [_AM_DEPENDENCIES(CC)],
-		  [define([AC_PROG_CC],
-			  defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_CXX],
-		  [_AM_DEPENDENCIES(CXX)],
-		  [define([AC_PROG_CXX],
-			  defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_OBJC],
-		  [_AM_DEPENDENCIES(OBJC)],
-		  [define([AC_PROG_OBJC],
-			  defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
-])
-_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
-dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
-dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This macro
-dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
-AC_CONFIG_COMMANDS_PRE(dnl
-[m4_provide_if([_AM_COMPILER_EXEEXT],
-  [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
-])
-m4trace:/usr/share/aclocal-1.11/init.m4:126: -1- AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers.
-_am_arg=$1
-_am_stamp_count=1
-for _am_header in $config_headers :; do
-  case $_am_header in
-    $_am_arg | $_am_arg:* )
-      break ;;
-    * )
-      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
-  esac
-done
-echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-m4trace:/usr/share/aclocal-1.11/install-sh.m4:11: -1- AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-if test x"${install_sh}" != xset; then
-  case $am_aux_dir in
-  *\ * | *\	*)
-    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
-  *)
-    install_sh="\${SHELL} $am_aux_dir/install-sh"
-  esac
-fi
-AC_SUBST(install_sh)])
-m4trace:/usr/share/aclocal-1.11/lead-dot.m4:12: -1- AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
-  am__leading_dot=.
-else
-  am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-AC_SUBST([am__leading_dot])])
-m4trace:/usr/share/aclocal-1.11/make.m4:14: -1- AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
-	@echo this is the am__doit target
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-AC_MSG_CHECKING([for style of include used by $am_make])
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
-  am__include=include
-  am__quote=
-  _am_result=GNU
-  ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
-   echo '.include "confinc"' > confmf
-   case `$am_make -s -f confmf 2> /dev/null` in #(
-   *the\ am__doit\ target*)
-     am__include=.include
-     am__quote="\""
-     _am_result=BSD
-     ;;
-   esac
-fi
-AC_SUBST([am__include])
-AC_SUBST([am__quote])
-AC_MSG_RESULT([$_am_result])
-rm -f confinc confmf
-])
-m4trace:/usr/share/aclocal-1.11/missing.m4:14: -1- AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN])
-$1=${$1-"${am_missing_run}$2"}
-AC_SUBST($1)])
-m4trace:/usr/share/aclocal-1.11/missing.m4:24: -1- AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([missing])dnl
-if test x"${MISSING+set}" != xset; then
-  case $am_aux_dir in
-  *\ * | *\	*)
-    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
-  *)
-    MISSING="\${SHELL} $am_aux_dir/missing" ;;
-  esac
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
-  am_missing_run="$MISSING --run "
-else
-  am_missing_run=
-  AC_MSG_WARN([`missing' script is too old or missing])
-fi
-])
-m4trace:/usr/share/aclocal-1.11/mkdirp.m4:11: -1- AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl
-AC_REQUIRE([AC_PROG_MKDIR_P])dnl
-dnl Automake 1.8 to 1.9.6 used to define mkdir_p.  We now use MKDIR_P,
-dnl while keeping a definition of mkdir_p for backward compatibility.
-dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
-dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
-dnl Makefile.ins that do not define MKDIR_P, so we do our own
-dnl adjustment using top_builddir (which is defined more often than
-dnl MKDIR_P).
-AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
-case $mkdir_p in
-  [[\\/$]]* | ?:[[\\/]]*) ;;
-  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-])
-m4trace:/usr/share/aclocal-1.11/options.m4:13: -1- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
-m4trace:/usr/share/aclocal-1.11/options.m4:19: -1- AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)])
-m4trace:/usr/share/aclocal-1.11/options.m4:25: -1- AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
-m4trace:/usr/share/aclocal-1.11/options.m4:31: -1- AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-m4trace:/usr/share/aclocal-1.11/python.m4:35: -1- AC_DEFUN([AM_PATH_PYTHON], [
-  dnl Find a Python interpreter.  Python versions prior to 2.0 are not
-  dnl supported. (2.0 was released on October 16, 2000).
-  m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
-                    [python python2 python3 python3.0 python2.5 python2.4 python2.3 python2.2 dnl
-python2.1 python2.0])
-
-  m4_if([$1],[],[
-    dnl No version check is needed.
-    # Find any Python interpreter.
-    if test -z "$PYTHON"; then
-      AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :)
-    fi
-    am_display_PYTHON=python
-  ], [
-    dnl A version check is needed.
-    if test -n "$PYTHON"; then
-      # If the user set $PYTHON, use it and don't search something else.
-      AC_MSG_CHECKING([whether $PYTHON version >= $1])
-      AM_PYTHON_CHECK_VERSION([$PYTHON], [$1],
-			      [AC_MSG_RESULT(yes)],
-			      [AC_MSG_ERROR(too old)])
-      am_display_PYTHON=$PYTHON
-    else
-      # Otherwise, try each interpreter until we find one that satisfies
-      # VERSION.
-      AC_CACHE_CHECK([for a Python interpreter with version >= $1],
-	[am_cv_pathless_PYTHON],[
-	for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do
-	  test "$am_cv_pathless_PYTHON" = none && break
-	  AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break])
-	done])
-      # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
-      if test "$am_cv_pathless_PYTHON" = none; then
-	PYTHON=:
-      else
-        AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON])
-      fi
-      am_display_PYTHON=$am_cv_pathless_PYTHON
-    fi
-  ])
-
-  if test "$PYTHON" = :; then
-  dnl Run any user-specified action, or abort.
-    m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
-  else
-
-  dnl Query Python for its version number.  Getting [:3] seems to be
-  dnl the best way to do this; it's what "site.py" does in the standard
-  dnl library.
-
-  AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
-    [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`])
-  AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
-
-  dnl Use the values of $prefix and $exec_prefix for the corresponding
-  dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX.  These are made
-  dnl distinct variables so they can be overridden if need be.  However,
-  dnl general consensus is that you shouldn't need this ability.
-
-  AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
-  AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
-
-  dnl At times (like when building shared libraries) you may want
-  dnl to know which OS platform Python thinks this is.
-
-  AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
-    [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`])
-  AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
-
-
-  dnl Set up 4 directories:
-
-  dnl pythondir -- where to install python scripts.  This is the
-  dnl   site-packages directory, not the python standard library
-  dnl   directory like in previous automake betas.  This behavior
-  dnl   is more consistent with lispdir.m4 for example.
-  dnl Query distutils for this directory.  distutils does not exist in
-  dnl Python 1.5, so we fall back to the hardcoded directory if it
-  dnl doesn't work.
-  AC_CACHE_CHECK([for $am_display_PYTHON script directory],
-    [am_cv_python_pythondir],
-    [if test "x$prefix" = xNONE
-     then
-       am_py_prefix=$ac_default_prefix
-     else
-       am_py_prefix=$prefix
-     fi
-     am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null ||
-     echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
-     case $am_cv_python_pythondir in
-     $am_py_prefix*)
-       am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
-       am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
-       ;;
-     *)
-       case $am_py_prefix in
-         /usr|/System*) ;;
-         *)
-	  am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
-	  ;;
-       esac
-       ;;
-     esac
-    ])
-  AC_SUBST([pythondir], [$am_cv_python_pythondir])
-
-  dnl pkgpythondir -- $PACKAGE directory under pythondir.  Was
-  dnl   PYTHON_SITE_PACKAGE in previous betas, but this naming is
-  dnl   more consistent with the rest of automake.
-
-  AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
-
-  dnl pyexecdir -- directory for installing python extension modules
-  dnl   (shared libraries)
-  dnl Query distutils for this directory.  distutils does not exist in
-  dnl Python 1.5, so we fall back to the hardcoded directory if it
-  dnl doesn't work.
-  AC_CACHE_CHECK([for $am_display_PYTHON extension module directory],
-    [am_cv_python_pyexecdir],
-    [if test "x$exec_prefix" = xNONE
-     then
-       am_py_exec_prefix=$am_py_prefix
-     else
-       am_py_exec_prefix=$exec_prefix
-     fi
-     am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null ||
-     echo "$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
-     case $am_cv_python_pyexecdir in
-     $am_py_exec_prefix*)
-       am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
-       am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
-       ;;
-     *)
-       case $am_py_exec_prefix in
-         /usr|/System*) ;;
-         *)
-	   am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
-	   ;;
-       esac
-       ;;
-     esac
-    ])
-  AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
-
-  dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
-
-  AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
-
-  dnl Run any user-specified action.
-  $2
-  fi
-
-])
-m4trace:/usr/share/aclocal-1.11/python.m4:199: -1- AC_DEFUN([AM_PYTHON_CHECK_VERSION], [prog="import sys
-# split strings by '.' and convert to numeric.  Append some zeros
-# because we need at least 4 digits for the hex conversion.
-# map returns an iterator in Python 3.0 and a list in 2.x
-minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]]
-minverhex = 0
-# xrange is not present in Python 3.0 and range returns an iterator
-for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]]
-sys.exit(sys.hexversion < minverhex)"
-  AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
-m4trace:/usr/share/aclocal-1.11/runlog.m4:12: -1- AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
-   ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
-   ac_status=$?
-   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   (exit $ac_status); }])
-m4trace:/usr/share/aclocal-1.11/sanity.m4:14: -1- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftest.file
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name.  Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
-  *[[\\\"\#\$\&\'\`$am_lf]]*)
-    AC_MSG_ERROR([unsafe absolute working directory name]);;
-esac
-case $srcdir in
-  *[[\\\"\#\$\&\'\`$am_lf\ \	]]*)
-    AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
-esac
-
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments.  Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
-   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-   if test "$[*]" = "X"; then
-      # -L didn't work.
-      set X `ls -t "$srcdir/configure" conftest.file`
-   fi
-   rm -f conftest.file
-   if test "$[*]" != "X $srcdir/configure conftest.file" \
-      && test "$[*]" != "X conftest.file $srcdir/configure"; then
-
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
-alias in your environment])
-   fi
-
-   test "$[2]" = conftest.file
-   )
-then
-   # Ok.
-   :
-else
-   AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-AC_MSG_RESULT(yes)])
-m4trace:/usr/share/aclocal-1.11/silent.m4:14: -1- AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules],
-[  --enable-silent-rules          less verbose build output (undo: `make V=1')
-  --disable-silent-rules         verbose build output (undo: `make V=0')])
-case $enable_silent_rules in
-yes) AM_DEFAULT_VERBOSITY=0;;
-no)  AM_DEFAULT_VERBOSITY=1;;
-*)   AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
-esac
-AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
-AM_BACKSLASH='\'
-AC_SUBST([AM_BACKSLASH])dnl
-_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
-])
-m4trace:/usr/share/aclocal-1.11/strip.m4:17: -1- AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'.  However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
-if test "$cross_compiling" != no; then
-  AC_CHECK_TOOL([STRIP], [strip], :)
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-AC_SUBST([INSTALL_STRIP_PROGRAM])])
-m4trace:/usr/share/aclocal-1.11/substnot.m4:14: -1- AC_DEFUN([_AM_SUBST_NOTMAKE])
-m4trace:/usr/share/aclocal-1.11/substnot.m4:19: -1- AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
-m4trace:/usr/share/aclocal-1.11/tar.m4:24: -1- AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility.
-AM_MISSING_PROG([AMTAR], [tar])
-m4_if([$1], [v7],
-     [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
-     [m4_case([$1], [ustar],, [pax],,
-              [m4_fatal([Unknown tar format])])
-AC_MSG_CHECKING([how to create a $1 tar archive])
-# Loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-_am_tools=${am_cv_prog_tar_$1-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of `-'.
-for _am_tool in $_am_tools
-do
-  case $_am_tool in
-  gnutar)
-    for _am_tar in tar gnutar gtar;
-    do
-      AM_RUN_LOG([$_am_tar --version]) && break
-    done
-    am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
-    am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
-    am__untar="$_am_tar -xf -"
-    ;;
-  plaintar)
-    # Must skip GNU tar: if it does not support --format= it doesn't create
-    # ustar tarball either.
-    (tar --version) >/dev/null 2>&1 && continue
-    am__tar='tar chf - "$$tardir"'
-    am__tar_='tar chf - "$tardir"'
-    am__untar='tar xf -'
-    ;;
-  pax)
-    am__tar='pax -L -x $1 -w "$$tardir"'
-    am__tar_='pax -L -x $1 -w "$tardir"'
-    am__untar='pax -r'
-    ;;
-  cpio)
-    am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
-    am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
-    am__untar='cpio -i -H $1 -d'
-    ;;
-  none)
-    am__tar=false
-    am__tar_=false
-    am__untar=false
-    ;;
-  esac
-
-  # If the value was cached, stop now.  We just wanted to have am__tar
-  # and am__untar set.
-  test -n "${am_cv_prog_tar_$1}" && break
-
-  # tar/untar a dummy directory, and stop if the command works
-  rm -rf conftest.dir
-  mkdir conftest.dir
-  echo GrepMe > conftest.dir/file
-  AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
-  rm -rf conftest.dir
-  if test -s conftest.tar; then
-    AM_RUN_LOG([$am__untar <conftest.tar])
-    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
-  fi
-done
-rm -rf conftest.dir
-
-AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
-AC_MSG_RESULT([$am_cv_prog_tar_$1])])
-AC_SUBST([am__tar])
-AC_SUBST([am__untar])
-])
-m4trace:config/autotroll.m4:70: -1- m4_pattern_forbid([^AT_])
-m4trace:config/autotroll.m4:71: -1- m4_pattern_forbid([^_AT_])
-m4trace:config/autotroll.m4:97: -1- AC_DEFUN([AT_WITH_QT], [ AC_REQUIRE([AC_CANONICAL_HOST])
-  AC_REQUIRE([AC_CANONICAL_BUILD])
-  AC_REQUIRE([AC_PROG_CXX])
-
-  test x"$TROLL" != x && echo 'ViM rox emacs.'
-
-dnl Memo: AC_ARG_WITH(package, help-string, [if-given], [if-not-given])
-  AC_ARG_WITH([qt],
-              [AS_HELP_STRING([--with-qt],
-                 [Path to Qt @<:@Look in PATH and /usr/local/Trolltech@:>@])],
-              [QT_PATH=$withval], [QT_PATH=])
-
-  # Find Qt.
-  if test -d /usr/local/Trolltech; then
-    # Try to find the latest version.
-    tmp_qt_paths=`echo /usr/local/Trolltech/*/bin | tr ' ' '\n' | sort -nr \
-                                              | xargs | sed 's/  */:/g'`
-  fi
-
-  # Find qmake.
-  AC_PATH_PROGS([QMAKE], [qmake-qt4${EXEEXT}], [missing], [$QT_DIR:$QT_PATH:$PATH:$tmp_qt_paths])
-  if test x"$QMAKE" = xmissing; then
-    AC_PATH_PROGS([QMAKE], [qmake${EXEEXT}], [missing], [$QT_DIR:$QT_PATH:$PATH:$tmp_qt_paths])
-    if test x"$QMAKE" = xmissing; then
-      AC_MSG_ERROR([Cannot find qmake in your PATH. Try using --with-qt.])
-    fi
-  fi
-
-  # Find moc (Meta Object Compiler).
-  AC_PATH_PROGS([MOC], [moc-qt4${EXEEXT}], [missing], [$QT_PATH:$PATH:$tmp_qt_paths])
-  if test x"$MOC" = xmissing; then
-    AC_PATH_PROGS([MOC], [moc${EXEEXT}], [missing], [$QT_PATH:$PATH:$tmp_qt_paths])
-    if test x"$MOC" = xmissing; then
-      AC_MSG_ERROR([Cannot find moc (Meta Object Compiler) in your PATH. Try using --with-qt.])
-    fi
-  fi
-
-  # Find uic (User Interface Compiler).
-  AC_PATH_PROGS([UIC], [uic-qt4${EXEEXT}], [missing], [$QT_PATH:$PATH:$tmp_qt_paths])
-  if test x"$UIC" = xmissing; then
-    AC_PATH_PROGS([UIC], [uic${EXEEXT}], [missing], [$QT_PATH:$PATH:$tmp_qt_paths])
-    if test x"$UIC" = xmissing; then
-      AC_MSG_ERROR([Cannot find uic (User Interface Compiler) in your PATH. Try using --with-qt.])
-    fi
-  fi
-
-  # Find rcc (Qt Resource Compiler).
-  AC_PATH_PROGS([RCC], [rcc-qt4${EXEEXT}], [false], [$QT_PATH:$PATH:$tmp_qt_paths])
-  if test x"$RCC" = xfalse; then
-    AC_PATH_PROGS([RCC], [rcc${EXEEXT}], [false], [$QT_PATH:$PATH:$tmp_qt_paths])
-    if test x"$RCC" = xfalse; then
-      AC_MSG_WARN([Cannot find rcc (Qt Resource Compiler) in your PATH. Try using --with-qt.])
-    fi
-  fi
-
-  # If we don't know the path to Qt, guess it from the path to qmake.
-  if test x"$QT_PATH" = x; then
-    QT_PATH=`dirname "$QMAKE"`
-  fi
-  if test x"$QT_PATH" = x; then
-    AC_MSG_ERROR([Cannot find the path to your Qt install. Use --with-qt.])
-  fi
-  AC_SUBST([QT_PATH])
-
-  # Get ready to build a test-app with Qt.
-
-  # Look for a writable temporary directory.
-  AC_ARG_VAR([TMPDIR], [A temporary directory with write access @<:@/tmp@:>@])
-  if test x"$TMPDIR" = x || test ! -d "$TMPDIR" || test ! -w "$TMPDIR"; then
-    echo "$as_me:$LINENO: no TMPDIR or bad TMPDIR ($TMPDIR)" \
-      >&AS_MESSAGE_LOG_FD
-    for i in /tmp /var/tmp; do
-      if test -d "$i" && test -w "$i"; then
-        TMPDIR=$i
-        export TMPDIR
-        echo "$as_me:$LINENO: setting TMPDIR=$TMPDIR" >&AS_MESSAGE_LOG_FD
-        break
-      fi
-    done
-  fi
-
-  # Kludge!!  QMake has a very strange behavior.  For instance, if you
-  # install Qt under your $HOME and run QMake somewhere else under your
-  # $HOME, it will try to be clever and produce Makefiles with relative
-  # include paths.  In order to avoid this, we will test QMake from a
-  # temporary directory (usually /tmp).  Note that this problem was only
-  # observed with Qt 4.
-  my_configure_pwd=`pwd`
-  my_tmpdir="$TMPDIR/conftest$$.dir"
-  test -d "$my_tmpdir" || mkdir "$my_tmpdir"
-  if test -w "$my_tmpdir" && cd "$my_tmpdir"
-  then
-    :
-  else
-    AC_MSG_ERROR([Cannot cd to or write in $my_tmpdir])
-  fi
-  cat >conftest.h <<_ASEOF
-#include <QObject>
-
-class Foo: public QObject
-{
-  Q_OBJECT;
-public:
-  Foo();
-  ~Foo() {}
-public slots:
-  void setValue(int value);
-signals:
-  void valueChanged(int newValue);
-private:
-  int value_;
-};
-_ASEOF
-
-  cat >conftest.cpp <<_ASEOF
-#include "conftest.h"
-Foo::Foo()
-  : value_ (42)
-{
-  connect(this, SIGNAL(valueChanged(int)), this, SLOT(setValue(int)));
-}
-
-void Foo::setValue(int value)
-{
-  value_ = value;
-}
-
-int main()
-{
-  Foo f;
-}
-_ASEOF
-  if $QMAKE -project; then :; else
-    AC_MSG_ERROR([Calling $QMAKE -project failed.])
-  fi
-
-  # Find the .pro file generated by qmake.
-  pro_file='conftest.dir.pro'
-  test -f $pro_file || pro_file=`echo *.pro`
-  if test -f "$pro_file"; then :; else
-    AC_MSG_ERROR([Can't find the .pro file generated by Qmake.])
-  fi
-
-dnl Tweak the value of QT in the .pro if have been the 1st arg.
-m4_ifval([$1], [_AT_TWEAK_PRO_FILE([QT], [$1])])
-
-dnl Tweak the value of CONFIG in the .pro if have been given a 2nd arg.
-m4_ifval([$2], [_AT_TWEAK_PRO_FILE([CONFIG], [$2])])
-
-m4_ifval([$3],
-[ # Add the extra-settings the user wants to set in the .pro
-  echo "$3" >>"$pro_file"
-])
-
-  echo "$as_me:$LINENO: Invoking $QMAKE on $pro_file" >&AS_MESSAGE_LOG_FD
-  sed 's/^/| /' "$pro_file" >&AS_MESSAGE_LOG_FD
-
-  if $QMAKE; then :; else
-    AC_MSG_ERROR([Calling $QMAKE failed.])
-  fi
-  # Try to compile a simple Qt app.
-  AC_CACHE_CHECK([whether we can build a simple Qt app], [at_cv_qt_build],
-  [at_cv_qt_build=ko
-  : ${MAKE=make}
-
-  if $MAKE >&AS_MESSAGE_LOG_FD 2>&1; then
-    at_cv_qt_build='ok, looks like Qt 4'
-  else
-    echo "$as_me:$LINENO: Build failed, trying to #include <qobject.h> \
-instead" >&AS_MESSAGE_LOG_FD
-    sed 's/<QObject>/<qobject.h>/' conftest.h > tmp.h && mv tmp.h conftest.h
-    if $MAKE >&AS_MESSAGE_LOG_FD 2>&1; then
-      at_cv_qt_build='ok, looks like Qt 3'
-    else
-      # Sometimes (such as on Debian) build will fail because Qt hasn't been
-      # installed in debug mode and qmake tries (by default) to build apps in
-      # debug mode => Try again in release mode.
-      echo "$as_me:$LINENO: Build failed, trying to enforce release mode" \
-            >&AS_MESSAGE_LOG_FD
-
-      _AT_TWEAK_PRO_FILE([CONFIG], [+release])
-
-      sed 's/<qobject.h>/<QObject>/' conftest.h > tmp.h && mv tmp.h conftest.h
-      if $MAKE >&AS_MESSAGE_LOG_FD 2>&1; then
-        at_cv_qt_build='ok, looks like Qt 4, release mode forced'
-      else
-        echo "$as_me:$LINENO: Build failed, trying to #include <qobject.h> \
-instead" >&AS_MESSAGE_LOG_FD
-        sed 's/<QObject>/<qobject.h>/' conftest.h > tmp.h && mv tmp.h conftest.h
-        if $MAKE >&AS_MESSAGE_LOG_FD 2>&1; then
-          at_cv_qt_build='ok, looks like Qt 3, release mode forced'
-        else
-          at_cv_qt_build=ko
-          echo "$as_me:$LINENO: failed program was:" >&AS_MESSAGE_LOG_FD
-          sed 's/^/| /' conftest.h >&AS_MESSAGE_LOG_FD
-          echo "$as_me:$LINENO: failed program was:" >&AS_MESSAGE_LOG_FD
-          sed 's/^/| /' conftest.cpp >&AS_MESSAGE_LOG_FD
-        fi # if make with Qt3-style #include and release mode forced.
-      fi # if make with Qt4-style #include and release mode forced.
-    fi # if make with Qt3-style #include.
-  fi # if make with Qt4-style #include.
-  ])dnl end: AC_CACHE_CHECK(at_cv_qt_build)
-
-  if test x"$at_cv_qt_build" = xko; then
-    AC_MSG_ERROR([Cannot build a test Qt program])
-  fi
-  QT_VERSION_MAJOR=`echo "$at_cv_qt_build" | sed 's/^[^0-9]*//'`
-  AC_SUBST([QT_VERSION_MAJOR])
-
-  # This sed filter is applied after an expression of the form: /^FOO.*=/!d;
-  # It starts by removing the beginning of the line, removing references to
-  # SUBLIBS, removing unnecessary whitespaces at the beginning, and prefixes
-  # all variable uses by QT_.
-  qt_sed_filter='s///;
-                 s/$(SUBLIBS)//g;
-                 s/^ *//;
-                 s/\$(\(@<:@A-Z_@:>@@<:@A-Z_@:>@*\))/$(QT_\1)/g'
-
-  # Find the Makefile (qmake happens to generate a fake Makefile which invokes
-  # a Makefile.Debug or Makefile.Release). We we have both, we'll pick the
-  # Makefile.Release. The reason is that the main difference is that release
-  # uses -Os and debug -g. We can override -Os by passing another -O but we
-  # usually don't override -g.
-  if test -f Makefile.Release; then
-    at_mfile='Makefile.Release'
-  else
-    at_mfile='Makefile'
-  fi
-  if test -f $at_mfile; then :; else
-    cd "$my_configure_pwd"
-    AC_MSG_ERROR([Cannot find the Makefile generated by qmake.])
-  fi
-
-  # Find the DEFINES of Qt (should have been named CPPFLAGS).
-  AC_CACHE_CHECK([for the DEFINES to use with Qt], [at_cv_env_QT_DEFINES],
-  [at_cv_env_QT_DEFINES=`sed "/^DEFINES@<:@ @:>@*=/!d;$qt_sed_filter" $at_mfile`])
-  AC_SUBST([QT_DEFINES], [$at_cv_env_QT_DEFINES])
-
-  # Find the CFLAGS of Qt (We can use Qt in C?!)
-  AC_CACHE_CHECK([for the CFLAGS to use with Qt], [at_cv_env_QT_CFLAGS],
-  [at_cv_env_QT_CFLAGS=`sed "/^CFLAGS@<:@ @:>@*=/!d;$qt_sed_filter" $at_mfile`])
-  AC_SUBST([QT_CFLAGS], [$at_cv_env_QT_CFLAGS])
-
-  # Find the CXXFLAGS of Qt.
-  AC_CACHE_CHECK([for the CXXFLAGS to use with Qt], [at_cv_env_QT_CXXFLAGS],
-  [at_cv_env_QT_CXXFLAGS=`sed "/^CXXFLAGS@<:@ @:>@*=/!d;$qt_sed_filter" $at_mfile`])
-  AC_SUBST([QT_CXXFLAGS], [$at_cv_env_QT_CXXFLAGS])
-
-  # Find the INCPATH of Qt.
-  AC_CACHE_CHECK([for the INCPATH to use with Qt], [at_cv_env_QT_INCPATH],
-  [at_cv_env_QT_INCPATH=`sed "/^INCPATH@<:@ @:>@*=/!d;$qt_sed_filter" $at_mfile`])
-  AC_SUBST([QT_INCPATH], [$at_cv_env_QT_INCPATH])
-
-  AC_SUBST([QT_CPPFLAGS], ["$at_cv_env_QT_DEFINES $at_cv_env_QT_INCPATH"])
-
-  # Find the LFLAGS of Qt (Should have been named LDFLAGS)
-  AC_CACHE_CHECK([for the LDFLAGS to use with Qt], [at_cv_env_QT_LDFLAGS],
-  [at_cv_env_QT_LDFLAGS=`sed "/^LDFLAGS@<:@ @:>@*=/!d;$qt_sed_filter" $at_mfile`])
-  AC_SUBST([QT_LFLAGS], [$at_cv_env_QT_LDFLAGS])
-  AC_SUBST([QT_LDFLAGS], [$at_cv_env_QT_LDFLAGS])
-
-  AC_MSG_CHECKING([whether host operating system is Darwin])
-  at_darwin="no"
-  case $host_os in
-    darwin*)
-      at_darwin="yes"
-      ;;
-  esac
-  AC_MSG_RESULT([$at_darwin])
-
-  # Find the LIBS of Qt.
-  AC_CACHE_CHECK([for the LIBS to use with Qt], [at_cv_env_QT_LIBS],
-  [at_cv_env_QT_LIBS=`sed "/^LIBS@<:@ @:>@*=/!d;$qt_sed_filter" $at_mfile`
-   if test x$at_darwin = xyes; then
-     # Fix QT_LIBS: as of today Libtool (GNU Libtool 1.5.23a) doesn't handle
-     # -F properly. The "bug" has been fixed on 22 October 2006
-     # by Peter O'Gorman but we provide backward compatibility here.
-     at_cv_env_QT_LIBS=`echo "$at_cv_env_QT_LIBS" \
-                             | sed 's/^-F/-Wl,-F/;s/ -F/ -Wl,-F/g'`
-   fi
-  ])
-  AC_SUBST([QT_LIBS], [$at_cv_env_QT_LIBS])
-
-  cd "$my_configure_pwd" || echo 'WTF!'
-  rm -rf "$my_tmpdir"
-])
-m4trace:config/autotroll.m4:389: -1- AC_DEFUN([AT_REQUIRE_QT_VERSION], [ AC_PREREQ([2.60])
-  if test x"$QMAKE" = x; then
-    AC_MSG_ERROR([\$QMAKE is empty. \
-Did you invoke AT@&t at _WITH_QT before AT@&t at _REQUIRE_QT_VERSION?])
-  fi
-  AC_CACHE_CHECK([for Qt's version], [at_cv_QT_VERSION],
-  [echo "$as_me:$LINENO: Running $QMAKE --version:" >&AS_MESSAGE_LOG_FD
-  $QMAKE --version >&AS_MESSAGE_LOG_FD 2>&1
-  qmake_version_sed=['/^.*\([0-9]\.[0-9]\.[0-9]\).*$/!d;s//\1/']
-  at_cv_QT_VERSION=`$QMAKE --version 2>&1 | sed "$qmake_version_sed"`])
-  if test x"$at_cv_QT_VERSION" = x; then
-    AC_MSG_ERROR([Cannot detect Qt's version.])
-  fi
-  AC_SUBST([QT_VERSION], [$at_cv_QT_VERSION])
-  AS_VERSION_COMPARE([$QT_VERSION], [$1],
-    [AC_MSG_ERROR([This package requires Qt $1 or above.])])
-])
-m4trace:config/autotroll.m4:416: -1- AC_DEFUN([_AT_TWEAK_PRO_FILE], [ # Tweak the value of $1 in the .pro file for $2.
-
-  qt_conf=''
-  for at_mod in $2; do
-    at_mod=`echo "$at_mod" | sed 's/^-//; tough
-                                  s/^+//; beef
-                                  :ough
-                                  s/^/$1 -= /;n
-                                  :eef
-                                  s/^/$1 += /'`
-    qt_conf="$qt_conf
-$at_mod"
-  done
-  echo "$qt_conf" | sed 1d >>"$pro_file"
-])
-m4trace:config/libtool.m4:67: -1- AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
-AC_BEFORE([$0], [LT_LANG])dnl
-AC_BEFORE([$0], [LT_OUTPUT])dnl
-AC_BEFORE([$0], [LTDL_INIT])dnl
-m4_require([_LT_CHECK_BUILDDIR])dnl
-
-dnl Autoconf doesn't catch unexpanded LT_ macros by default:
-m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
-m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
-dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
-dnl unless we require an AC_DEFUNed macro:
-AC_REQUIRE([LTOPTIONS_VERSION])dnl
-AC_REQUIRE([LTSUGAR_VERSION])dnl
-AC_REQUIRE([LTVERSION_VERSION])dnl
-AC_REQUIRE([LTOBSOLETE_VERSION])dnl
-m4_require([_LT_PROG_LTMAIN])dnl
-
-dnl Parse OPTIONS
-_LT_SET_OPTIONS([$0], [$1])
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)dnl
-
-_LT_SETUP
-
-# Only expand once:
-m4_define([LT_INIT])
-])
-m4trace:config/libtool.m4:102: -1- AU_DEFUN([AC_PROG_LIBTOOL], [m4_if($#, 0, [LT_INIT], [LT_INIT($@)])])
-m4trace:config/libtool.m4:102: -1- AC_DEFUN([AC_PROG_LIBTOOL], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_LIBTOOL' is obsolete.
-You should run autoupdate.])dnl
-m4_if($#, 0, [LT_INIT], [LT_INIT($@)])])
-m4trace:config/libtool.m4:103: -1- AU_DEFUN([AM_PROG_LIBTOOL], [m4_if($#, 0, [LT_INIT], [LT_INIT($@)])])
-m4trace:config/libtool.m4:103: -1- AC_DEFUN([AM_PROG_LIBTOOL], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_LIBTOOL' is obsolete.
-You should run autoupdate.])dnl
-m4_if($#, 0, [LT_INIT], [LT_INIT($@)])])
-m4trace:config/libtool.m4:562: -1- AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt}
-AC_MSG_NOTICE([creating $CONFIG_LT])
-cat >"$CONFIG_LT" <<_LTEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate a libtool stub with the current configuration.
-
-lt_cl_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_LTEOF
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-AS_SHELL_SANITIZE
-_AS_PREPARE
-
-exec AS_MESSAGE_FD>&1
-exec AS_MESSAGE_LOG_FD>>config.log
-{
-  echo
-  AS_BOX([Running $as_me.])
-} >&AS_MESSAGE_LOG_FD
-
-lt_cl_help="\
-\`$as_me' creates a local libtool stub from the current configuration,
-for use in further configure time tests before the real libtool is
-generated.
-
-Usage: $[0] [[OPTIONS]]
-
-  -h, --help      print this help, then exit
-  -V, --version   print version number, then exit
-  -q, --quiet     do not print progress messages
-  -d, --debug     don't remove temporary files
-
-Report bugs to <bug-libtool at gnu.org>."
-
-lt_cl_version="\
-m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
-m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
-configured by $[0], generated by m4_PACKAGE_STRING.
-
-Copyright (C) 2008 Free Software Foundation, Inc.
-This config.lt script is free software; the Free Software Foundation
-gives unlimited permision to copy, distribute and modify it."
-
-while test $[#] != 0
-do
-  case $[1] in
-    --version | --v* | -V )
-      echo "$lt_cl_version"; exit 0 ;;
-    --help | --h* | -h )
-      echo "$lt_cl_help"; exit 0 ;;
-    --debug | --d* | -d )
-      debug=: ;;
-    --quiet | --q* | --silent | --s* | -q )
-      lt_cl_silent=: ;;
-
-    -*) AC_MSG_ERROR([unrecognized option: $[1]
-Try \`$[0] --help' for more information.]) ;;
-
-    *) AC_MSG_ERROR([unrecognized argument: $[1]
-Try \`$[0] --help' for more information.]) ;;
-  esac
-  shift
-done
-
-if $lt_cl_silent; then
-  exec AS_MESSAGE_FD>/dev/null
-fi
-_LTEOF
-
-cat >>"$CONFIG_LT" <<_LTEOF
-_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
-_LTEOF
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-AC_MSG_NOTICE([creating $ofile])
-_LT_OUTPUT_LIBTOOL_COMMANDS
-AS_EXIT(0)
-_LTEOF
-chmod +x "$CONFIG_LT"
-
-# configure is writing to config.log, but config.lt does its own redirection,
-# appending to config.log, which fails on DOS, as config.log is still kept
-# open by configure.  Here we exec the FD to /dev/null, effectively closing
-# config.log, so it can be properly (re)opened and appended to by config.lt.
-if test "$no_create" != yes; then
-  lt_cl_success=:
-  test "$silent" = yes &&
-    lt_config_lt_args="$lt_config_lt_args --quiet"
-  exec AS_MESSAGE_LOG_FD>/dev/null
-  $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
-  exec AS_MESSAGE_LOG_FD>>config.log
-  $lt_cl_success || AS_EXIT(1)
-fi
-])
-m4trace:config/libtool.m4:757: -1- AC_DEFUN([LT_SUPPORTED_TAG], [])
-m4trace:config/libtool.m4:768: -1- AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl
-m4_case([$1],
-  [C],			[_LT_LANG(C)],
-  [C++],		[_LT_LANG(CXX)],
-  [Java],		[_LT_LANG(GCJ)],
-  [Fortran 77],		[_LT_LANG(F77)],
-  [Fortran],		[_LT_LANG(FC)],
-  [Windows Resource],	[_LT_LANG(RC)],
-  [m4_ifdef([_LT_LANG_]$1[_CONFIG],
-    [_LT_LANG($1)],
-    [m4_fatal([$0: unsupported language: "$1"])])])dnl
-])
-m4trace:config/libtool.m4:830: -1- AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
-m4trace:config/libtool.m4:830: -1- AC_DEFUN([AC_LIBTOOL_CXX], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_CXX' is obsolete.
-You should run autoupdate.])dnl
-LT_LANG(C++)])
-m4trace:config/libtool.m4:831: -1- AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
-m4trace:config/libtool.m4:831: -1- AC_DEFUN([AC_LIBTOOL_F77], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_F77' is obsolete.
-You should run autoupdate.])dnl
-LT_LANG(Fortran 77)])
-m4trace:config/libtool.m4:832: -1- AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
-m4trace:config/libtool.m4:832: -1- AC_DEFUN([AC_LIBTOOL_FC], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_FC' is obsolete.
-You should run autoupdate.])dnl
-LT_LANG(Fortran)])
-m4trace:config/libtool.m4:833: -1- AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
-m4trace:config/libtool.m4:833: -1- AC_DEFUN([AC_LIBTOOL_GCJ], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_GCJ' is obsolete.
-You should run autoupdate.])dnl
-LT_LANG(Java)])
-m4trace:config/libtool.m4:1402: -1- AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
-  [$2=no
-   m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$3"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       $2=yes
-     fi
-   fi
-   $RM conftest*
-])
-
-if test x"[$]$2" = xyes; then
-    m4_if([$5], , :, [$5])
-else
-    m4_if([$6], , :, [$6])
-fi
-])
-m4trace:config/libtool.m4:1444: -1- AU_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [m4_if($#, 0, [_LT_COMPILER_OPTION], [_LT_COMPILER_OPTION($@)])])
-m4trace:config/libtool.m4:1444: -1- AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_COMPILER_OPTION' is obsolete.
-You should run autoupdate.])dnl
-m4_if($#, 0, [_LT_COMPILER_OPTION], [_LT_COMPILER_OPTION($@)])])
-m4trace:config/libtool.m4:1453: -1- AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
-  [$2=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $3"
-   echo "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The linker can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&AS_MESSAGE_LOG_FD
-       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
-       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
-         $2=yes
-       fi
-     else
-       $2=yes
-     fi
-   fi
-   $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
-])
-
-if test x"[$]$2" = xyes; then
-    m4_if([$4], , :, [$4])
-else
-    m4_if([$5], , :, [$5])
-fi
-])
-m4trace:config/libtool.m4:1488: -1- AU_DEFUN([AC_LIBTOOL_LINKER_OPTION], [m4_if($#, 0, [_LT_LINKER_OPTION], [_LT_LINKER_OPTION($@)])])
-m4trace:config/libtool.m4:1488: -1- AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_LINKER_OPTION' is obsolete.
-You should run autoupdate.])dnl
-m4_if($#, 0, [_LT_LINKER_OPTION], [_LT_LINKER_OPTION($@)])])
-m4trace:config/libtool.m4:1495: -1- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl
-# find the maximum length of command line arguments
-AC_MSG_CHECKING([the maximum length of command line arguments])
-AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
-  i=0
-  teststring="ABCD"
-
-  case $build_os in
-  msdosdjgpp*)
-    # On DJGPP, this test can blow up pretty badly due to problems in libc
-    # (any single argument exceeding 2000 bytes causes a buffer overrun
-    # during glob expansion).  Even if it were fixed, the result of this
-    # check would be larger than it should be.
-    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
-    ;;
-
-  gnu*)
-    # Under GNU Hurd, this test is not required because there is
-    # no limit to the length of command line arguments.
-    # Libtool will interpret -1 as no limit whatsoever
-    lt_cv_sys_max_cmd_len=-1;
-    ;;
-
-  cygwin* | mingw* | cegcc*)
-    # On Win9x/ME, this test blows up -- it succeeds, but takes
-    # about 5 minutes as the teststring grows exponentially.
-    # Worse, since 9x/ME are not pre-emptively multitasking,
-    # you end up with a "frozen" computer, even though with patience
-    # the test eventually succeeds (with a max line length of 256k).
-    # Instead, let's just punt: use the minimum linelength reported by
-    # all of the supported platforms: 8192 (on NT/2K/XP).
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  amigaos*)
-    # On AmigaOS with pdksh, this test takes hours, literally.
-    # So we just punt and use a minimum line length of 8192.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
-    # This has been around since 386BSD, at least.  Likely further.
-    if test -x /sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
-    elif test -x /usr/sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
-    else
-      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
-    fi
-    # And add a safety zone
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    ;;
-
-  interix*)
-    # We know the value 262144 and hardcode it with a safety zone (like BSD)
-    lt_cv_sys_max_cmd_len=196608
-    ;;
-
-  osf*)
-    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
-    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
-    # nice to cause kernel panics so lets avoid the loop below.
-    # First set a reasonable default.
-    lt_cv_sys_max_cmd_len=16384
-    #
-    if test -x /sbin/sysconfig; then
-      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
-        *1*) lt_cv_sys_max_cmd_len=-1 ;;
-      esac
-    fi
-    ;;
-  sco3.2v5*)
-    lt_cv_sys_max_cmd_len=102400
-    ;;
-  sysv5* | sco5v6* | sysv4.2uw2*)
-    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
-    if test -n "$kargmax"; then
-      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[	 ]]//'`
-    else
-      lt_cv_sys_max_cmd_len=32768
-    fi
-    ;;
-  *)
-    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
-    if test -n "$lt_cv_sys_max_cmd_len"; then
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    else
-      # Make teststring a little bigger before we do anything with it.
-      # a 1K string should be a reasonable start.
-      for i in 1 2 3 4 5 6 7 8 ; do
-        teststring=$teststring$teststring
-      done
-      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
-      # If test is not a shell built-in, we'll probably end up computing a
-      # maximum length that is only half of the actual maximum length, but
-      # we can't tell.
-      while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
-	         = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
-	      test $i != 17 # 1/2 MB should be enough
-      do
-        i=`expr $i + 1`
-        teststring=$teststring$teststring
-      done
-      # Only check the string length outside the loop.
-      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
-      teststring=
-      # Add a significant safety factor because C++ compilers can tack on
-      # massive amounts of additional arguments before passing them to the
-      # linker.  It appears as though 1/2 is a usable value.
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
-    fi
-    ;;
-  esac
-])
-if test -n $lt_cv_sys_max_cmd_len ; then
-  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
-else
-  AC_MSG_RESULT(none)
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-_LT_DECL([], [max_cmd_len], [0],
-    [What is the maximum length of a command?])
-])
-m4trace:config/libtool.m4:1623: -1- AU_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [m4_if($#, 0, [LT_CMD_MAX_LEN], [LT_CMD_MAX_LEN($@)])])
-m4trace:config/libtool.m4:1623: -1- AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_SYS_MAX_CMD_LEN' is obsolete.
-You should run autoupdate.])dnl
-m4_if($#, 0, [LT_CMD_MAX_LEN], [LT_CMD_MAX_LEN($@)])])
-m4trace:config/libtool.m4:1724: -1- AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl
-if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32* | cegcc*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-    ;;
-
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-    ;;
-
-  darwin*)
-  # if libdl is installed we need to link against it
-    AC_CHECK_LIB([dl], [dlopen],
-		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ])
-    ;;
-
-  *)
-    AC_CHECK_FUNC([shl_load],
-	  [lt_cv_dlopen="shl_load"],
-      [AC_CHECK_LIB([dld], [shl_load],
-	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
-	[AC_CHECK_FUNC([dlopen],
-	      [lt_cv_dlopen="dlopen"],
-	  [AC_CHECK_LIB([dl], [dlopen],
-		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
-	    [AC_CHECK_LIB([svld], [dlopen],
-		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
-	      [AC_CHECK_LIB([dld], [dld_link],
-		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
-	      ])
-	    ])
-	  ])
-	])
-      ])
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    AC_CACHE_CHECK([whether a program can dlopen itself],
-	  lt_cv_dlopen_self, [dnl
-	  _LT_TRY_DLOPEN_SELF(
-	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
-	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
-    ])
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
-      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
-	  lt_cv_dlopen_self_static, [dnl
-	  _LT_TRY_DLOPEN_SELF(
-	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
-	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
-      ])
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-_LT_DECL([dlopen_support], [enable_dlopen], [0],
-	 [Whether dlopen is supported])
-_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
-	 [Whether dlopen of programs is supported])
-_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
-	 [Whether dlopen of statically linked programs is supported])
-])
-m4trace:config/libtool.m4:1841: -1- AU_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [m4_if($#, 0, [LT_SYS_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF($@)])])
-m4trace:config/libtool.m4:1841: -1- AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_DLOPEN_SELF' is obsolete.
-You should run autoupdate.])dnl
-m4_if($#, 0, [LT_SYS_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF($@)])])
-m4trace:config/libtool.m4:2741: -1- AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl
-AC_MSG_CHECKING([for $1])
-AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
-[case $MAGIC_CMD in
-[[\\/*] |  ?:[\\/]*])
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-dnl $ac_dummy forces splitting on constant user-supplied paths.
-dnl POSIX.2 word splitting is done only on the output of word expansions,
-dnl not every word.  This closes a longstanding sh security hole.
-  ac_dummy="m4_if([$2], , $PATH, [$2])"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$1; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
-      if test -n "$file_magic_test_file"; then
-	case $deplibs_check_method in
-	"file_magic "*)
-	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-	    $EGREP "$file_magic_regex" > /dev/null; then
-	    :
-	  else
-	    cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool at gnu.org
-
-_LT_EOF
-	  fi ;;
-	esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac])
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  AC_MSG_RESULT($MAGIC_CMD)
-else
-  AC_MSG_RESULT(no)
-fi
-_LT_DECL([], [MAGIC_CMD], [0],
-	 [Used to examine libraries when file_magic_cmd begins with "file"])dnl
-])
-m4trace:config/libtool.m4:2803: -1- AU_DEFUN([AC_PATH_TOOL_PREFIX], [m4_if($#, 0, [_LT_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX($@)])])
-m4trace:config/libtool.m4:2803: -1- AC_DEFUN([AC_PATH_TOOL_PREFIX], [AC_DIAGNOSE([obsolete], [The macro `AC_PATH_TOOL_PREFIX' is obsolete.
-You should run autoupdate.])dnl
-m4_if($#, 0, [_LT_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX($@)])])
-m4trace:config/libtool.m4:2826: -1- AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-
-AC_ARG_WITH([gnu-ld],
-    [AS_HELP_STRING([--with-gnu-ld],
-	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
-    [test "$withval" = no || with_gnu_ld=yes],
-    [with_gnu_ld=no])dnl
-
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  AC_MSG_CHECKING([for ld used by $CC])
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [[\\/]]* | ?:[[\\/]]*)
-      re_direlt='/[[^/]][[^/]]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
-      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  AC_MSG_CHECKING([for GNU ld])
-else
-  AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(lt_cv_path_LD,
-[if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some variants of GNU ld only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-	test "$with_gnu_ld" != no && break
-	;;
-      *)
-	test "$with_gnu_ld" != yes && break
-	;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  AC_MSG_RESULT($LD)
-else
-  AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-_LT_PATH_LD_GNU
-AC_SUBST([LD])
-
-_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
-])
-m4trace:config/libtool.m4:2914: -1- AU_DEFUN([AM_PROG_LD], [m4_if($#, 0, [LT_PATH_LD], [LT_PATH_LD($@)])])
-m4trace:config/libtool.m4:2914: -1- AC_DEFUN([AM_PROG_LD], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_LD' is obsolete.
-You should run autoupdate.])dnl
-m4_if($#, 0, [LT_PATH_LD], [LT_PATH_LD($@)])])
-m4trace:config/libtool.m4:2915: -1- AU_DEFUN([AC_PROG_LD], [m4_if($#, 0, [LT_PATH_LD], [LT_PATH_LD($@)])])
-m4trace:config/libtool.m4:2915: -1- AC_DEFUN([AC_PROG_LD], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_LD' is obsolete.
-You should run autoupdate.])dnl
-m4_if($#, 0, [LT_PATH_LD], [LT_PATH_LD($@)])])
-m4trace:config/libtool.m4:3179: -1- AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl
-AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
-[if test -n "$NM"; then
-  # Let the user override the test.
-  lt_cv_path_NM="$NM"
-else
-  lt_nm_to_check="${ac_tool_prefix}nm"
-  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
-    lt_nm_to_check="$lt_nm_to_check nm"
-  fi
-  for lt_tmp_nm in $lt_nm_to_check; do
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
-      IFS="$lt_save_ifs"
-      test -z "$ac_dir" && ac_dir=.
-      tmp_nm="$ac_dir/$lt_tmp_nm"
-      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
-	# Check to see if the nm accepts a BSD-compat flag.
-	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
-	#   nm: unknown option "B" ignored
-	# Tru64's nm complains that /dev/null is an invalid object file
-	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-	*/dev/null* | *'Invalid file or object type'*)
-	  lt_cv_path_NM="$tmp_nm -B"
-	  break
-	  ;;
-	*)
-	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-	  */dev/null*)
-	    lt_cv_path_NM="$tmp_nm -p"
-	    break
-	    ;;
-	  *)
-	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-	    continue # so that we can try to find one that supports BSD flags
-	    ;;
-	  esac
-	  ;;
-	esac
-      fi
-    done
-    IFS="$lt_save_ifs"
-  done
-  : ${lt_cv_path_NM=no}
-fi])
-if test "$lt_cv_path_NM" != "no"; then
-  NM="$lt_cv_path_NM"
-else
-  # Didn't find any BSD compatible name lister, look for dumpbin.
-  AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :)
-  AC_SUBST([DUMPBIN])
-  if test "$DUMPBIN" != ":"; then
-    NM="$DUMPBIN"
-  fi
-fi
-test -z "$NM" && NM=nm
-AC_SUBST([NM])
-_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
-
-AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
-  [lt_cv_nm_interface="BSD nm"
-  echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
-  (eval "$ac_compile" 2>conftest.err)
-  cat conftest.err >&AS_MESSAGE_LOG_FD
-  (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
-  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
-  cat conftest.err >&AS_MESSAGE_LOG_FD
-  (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD)
-  cat conftest.out >&AS_MESSAGE_LOG_FD
-  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
-    lt_cv_nm_interface="MS dumpbin"
-  fi
-  rm -f conftest*])
-])
-m4trace:config/libtool.m4:3257: -1- AU_DEFUN([AM_PROG_NM], [m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])])
-m4trace:config/libtool.m4:3257: -1- AC_DEFUN([AM_PROG_NM], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_NM' is obsolete.
-You should run autoupdate.])dnl
-m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])])
-m4trace:config/libtool.m4:3258: -1- AU_DEFUN([AC_PROG_NM], [m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])])
-m4trace:config/libtool.m4:3258: -1- AC_DEFUN([AC_PROG_NM], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_NM' is obsolete.
-You should run autoupdate.])dnl
-m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])])
-m4trace:config/libtool.m4:3267: -1- AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case $host in
-*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
-  # These system don't have libm, or don't need it
-  ;;
-*-ncr-sysv4.3*)
-  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
-  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
-  ;;
-*)
-  AC_CHECK_LIB(m, cos, LIBM="-lm")
-  ;;
-esac
-AC_SUBST([LIBM])
-])
-m4trace:config/libtool.m4:3286: -1- AU_DEFUN([AC_CHECK_LIBM], [m4_if($#, 0, [LT_LIB_M], [LT_LIB_M($@)])])
-m4trace:config/libtool.m4:3286: -1- AC_DEFUN([AC_CHECK_LIBM], [AC_DIAGNOSE([obsolete], [The macro `AC_CHECK_LIBM' is obsolete.
-You should run autoupdate.])dnl
-m4_if($#, 0, [LT_LIB_M], [LT_LIB_M($@)])])
-m4trace:config/libtool.m4:6987: -1- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
-  [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
-    [AC_CHECK_TOOL(GCJ, gcj,)
-      test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
-      AC_SUBST(GCJFLAGS)])])[]dnl
-])
-m4trace:config/libtool.m4:6996: -1- AU_DEFUN([LT_AC_PROG_GCJ], [m4_if($#, 0, [LT_PROG_GCJ], [LT_PROG_GCJ($@)])])
-m4trace:config/libtool.m4:6996: -1- AC_DEFUN([LT_AC_PROG_GCJ], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_GCJ' is obsolete.
-You should run autoupdate.])dnl
-m4_if($#, 0, [LT_PROG_GCJ], [LT_PROG_GCJ($@)])])
-m4trace:config/libtool.m4:7003: -1- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,)
-])
-m4trace:config/libtool.m4:7008: -1- AU_DEFUN([LT_AC_PROG_RC], [m4_if($#, 0, [LT_PROG_RC], [LT_PROG_RC($@)])])
-m4trace:config/libtool.m4:7008: -1- AC_DEFUN([LT_AC_PROG_RC], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_RC' is obsolete.
-You should run autoupdate.])dnl
-m4_if($#, 0, [LT_PROG_RC], [LT_PROG_RC($@)])])
-m4trace:config/libtool.m4:7119: -1- AU_DEFUN([LT_AC_PROG_SED], [m4_if($#, 0, [AC_PROG_SED], [AC_PROG_SED($@)])])
-m4trace:config/libtool.m4:7119: -1- AC_DEFUN([LT_AC_PROG_SED], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_SED' is obsolete.
-You should run autoupdate.])dnl
-m4_if($#, 0, [AC_PROG_SED], [AC_PROG_SED($@)])])
-m4trace:config/ltoptions.m4:13: -1- AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
-m4trace:config/ltoptions.m4:110: -1- AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `dlopen' option into LT_INIT's first parameter.])
-])
-m4trace:config/ltoptions.m4:110: -1- AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_DLOPEN' is obsolete.
-You should run autoupdate.])dnl
-_LT_SET_OPTION([LT_INIT], [dlopen])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `dlopen' option into LT_INIT's first parameter.])
-])
-m4trace:config/ltoptions.m4:145: -1- AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl
-_LT_SET_OPTION([LT_INIT], [win32-dll])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `win32-dll' option into LT_INIT's first parameter.])
-])
-m4trace:config/ltoptions.m4:145: -1- AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_WIN32_DLL' is obsolete.
-You should run autoupdate.])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-_LT_SET_OPTION([LT_INIT], [win32-dll])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `win32-dll' option into LT_INIT's first parameter.])
-])
-m4trace:config/ltoptions.m4:194: -1- AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
-])
-m4trace:config/ltoptions.m4:198: -1- AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared])
-])
-m4trace:config/ltoptions.m4:202: -1- AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
-m4trace:config/ltoptions.m4:202: -1- AC_DEFUN([AM_ENABLE_SHARED], [AC_DIAGNOSE([obsolete], [The macro `AM_ENABLE_SHARED' is obsolete.
-You should run autoupdate.])dnl
-AC_ENABLE_SHARED($@)])
-m4trace:config/ltoptions.m4:203: -1- AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
-m4trace:config/ltoptions.m4:203: -1- AC_DEFUN([AM_DISABLE_SHARED], [AC_DIAGNOSE([obsolete], [The macro `AM_DISABLE_SHARED' is obsolete.
-You should run autoupdate.])dnl
-AC_DISABLE_SHARED($@)])
-m4trace:config/ltoptions.m4:248: -1- AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
-])
-m4trace:config/ltoptions.m4:252: -1- AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static])
-])
-m4trace:config/ltoptions.m4:256: -1- AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
-m4trace:config/ltoptions.m4:256: -1- AC_DEFUN([AM_ENABLE_STATIC], [AC_DIAGNOSE([obsolete], [The macro `AM_ENABLE_STATIC' is obsolete.
-You should run autoupdate.])dnl
-AC_ENABLE_STATIC($@)])
-m4trace:config/ltoptions.m4:257: -1- AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
-m4trace:config/ltoptions.m4:257: -1- AC_DEFUN([AM_DISABLE_STATIC], [AC_DIAGNOSE([obsolete], [The macro `AM_DISABLE_STATIC' is obsolete.
-You should run autoupdate.])dnl
-AC_DISABLE_STATIC($@)])
-m4trace:config/ltoptions.m4:302: -1- AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `fast-install' option into LT_INIT's first parameter.])
-])
-m4trace:config/ltoptions.m4:302: -1- AC_DEFUN([AC_ENABLE_FAST_INSTALL], [AC_DIAGNOSE([obsolete], [The macro `AC_ENABLE_FAST_INSTALL' is obsolete.
-You should run autoupdate.])dnl
-_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `fast-install' option into LT_INIT's first parameter.])
-])
-m4trace:config/ltoptions.m4:309: -1- AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `disable-fast-install' option into LT_INIT's first parameter.])
-])
-m4trace:config/ltoptions.m4:309: -1- AC_DEFUN([AC_DISABLE_FAST_INSTALL], [AC_DIAGNOSE([obsolete], [The macro `AC_DISABLE_FAST_INSTALL' is obsolete.
-You should run autoupdate.])dnl
-_LT_SET_OPTION([LT_INIT], [disable-fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `disable-fast-install' option into LT_INIT's first parameter.])
-])
-m4trace:config/ltoptions.m4:342: -1- AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `pic-only' option into LT_INIT's first parameter.])
-])
-m4trace:config/ltoptions.m4:342: -1- AC_DEFUN([AC_LIBTOOL_PICMODE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_PICMODE' is obsolete.
-You should run autoupdate.])dnl
-_LT_SET_OPTION([LT_INIT], [pic-only])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `pic-only' option into LT_INIT's first parameter.])
-])
-m4trace:config/ltsugar.m4:13: -1- AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
-m4trace:config/ltversion.m4:18: -1- AC_DEFUN([LTVERSION_VERSION], [macro_version='2.2.6b'
-macro_revision='1.3017'
-_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
-_LT_DECL(, macro_revision, 0)
-])
-m4trace:config/lt~obsolete.m4:36: -1- AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
-m4trace:config/lt~obsolete.m4:40: -1- AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])
-m4trace:config/lt~obsolete.m4:41: -1- AC_DEFUN([_LT_AC_SHELL_INIT])
-m4trace:config/lt~obsolete.m4:42: -1- AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])
-m4trace:config/lt~obsolete.m4:44: -1- AC_DEFUN([_LT_AC_TAGVAR])
-m4trace:config/lt~obsolete.m4:45: -1- AC_DEFUN([AC_LTDL_ENABLE_INSTALL])
-m4trace:config/lt~obsolete.m4:46: -1- AC_DEFUN([AC_LTDL_PREOPEN])
-m4trace:config/lt~obsolete.m4:47: -1- AC_DEFUN([_LT_AC_SYS_COMPILER])
-m4trace:config/lt~obsolete.m4:48: -1- AC_DEFUN([_LT_AC_LOCK])
-m4trace:config/lt~obsolete.m4:49: -1- AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])
-m4trace:config/lt~obsolete.m4:50: -1- AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])
-m4trace:config/lt~obsolete.m4:51: -1- AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])
-m4trace:config/lt~obsolete.m4:52: -1- AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])
-m4trace:config/lt~obsolete.m4:53: -1- AC_DEFUN([AC_LIBTOOL_OBJDIR])
-m4trace:config/lt~obsolete.m4:54: -1- AC_DEFUN([AC_LTDL_OBJDIR])
-m4trace:config/lt~obsolete.m4:55: -1- AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])
-m4trace:config/lt~obsolete.m4:56: -1- AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])
-m4trace:config/lt~obsolete.m4:57: -1- AC_DEFUN([AC_PATH_MAGIC])
-m4trace:config/lt~obsolete.m4:58: -1- AC_DEFUN([AC_PROG_LD_GNU])
-m4trace:config/lt~obsolete.m4:59: -1- AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])
-m4trace:config/lt~obsolete.m4:60: -1- AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])
-m4trace:config/lt~obsolete.m4:61: -1- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])
-m4trace:config/lt~obsolete.m4:62: -1- AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])
-m4trace:config/lt~obsolete.m4:63: -1- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])
-m4trace:config/lt~obsolete.m4:64: -1- AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])
-m4trace:config/lt~obsolete.m4:65: -1- AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])
-m4trace:config/lt~obsolete.m4:66: -1- AC_DEFUN([LT_AC_PROG_EGREP])
-m4trace:config/lt~obsolete.m4:71: -1- AC_DEFUN([_AC_PROG_LIBTOOL])
-m4trace:config/lt~obsolete.m4:72: -1- AC_DEFUN([AC_LIBTOOL_SETUP])
-m4trace:config/lt~obsolete.m4:73: -1- AC_DEFUN([_LT_AC_CHECK_DLFCN])
-m4trace:config/lt~obsolete.m4:74: -1- AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])
-m4trace:config/lt~obsolete.m4:75: -1- AC_DEFUN([_LT_AC_TAGCONFIG])
-m4trace:config/lt~obsolete.m4:77: -1- AC_DEFUN([_LT_AC_LANG_CXX])
-m4trace:config/lt~obsolete.m4:78: -1- AC_DEFUN([_LT_AC_LANG_F77])
-m4trace:config/lt~obsolete.m4:79: -1- AC_DEFUN([_LT_AC_LANG_GCJ])
-m4trace:config/lt~obsolete.m4:80: -1- AC_DEFUN([AC_LIBTOOL_RC])
-m4trace:config/lt~obsolete.m4:81: -1- AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])
-m4trace:config/lt~obsolete.m4:82: -1- AC_DEFUN([_LT_AC_LANG_C_CONFIG])
-m4trace:config/lt~obsolete.m4:83: -1- AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])
-m4trace:config/lt~obsolete.m4:84: -1- AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])
-m4trace:config/lt~obsolete.m4:85: -1- AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])
-m4trace:config/lt~obsolete.m4:86: -1- AC_DEFUN([_LT_AC_LANG_F77_CONFIG])
-m4trace:config/lt~obsolete.m4:87: -1- AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])
-m4trace:config/lt~obsolete.m4:88: -1- AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])
-m4trace:config/lt~obsolete.m4:89: -1- AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])
-m4trace:config/lt~obsolete.m4:90: -1- AC_DEFUN([_LT_AC_LANG_RC_CONFIG])
-m4trace:config/lt~obsolete.m4:91: -1- AC_DEFUN([AC_LIBTOOL_CONFIG])
-m4trace:config/lt~obsolete.m4:92: -1- AC_DEFUN([_LT_AC_FILE_LTDLL_C])
-m4trace:configure.ac:1: -1- m4_pattern_forbid([^_?A[CHUM]_])
-m4trace:configure.ac:1: -1- m4_pattern_forbid([_AC_])
-m4trace:configure.ac:1: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^AS_FLAGS$])
-m4trace:configure.ac:1: -1- m4_pattern_forbid([^_?m4_])
-m4trace:configure.ac:1: -1- m4_pattern_forbid([^dnl$])
-m4trace:configure.ac:1: -1- m4_pattern_forbid([^_?AS_])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^SHELL$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^PATH_SEPARATOR$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_NAME$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_VERSION$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_STRING$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_URL$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^exec_prefix$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^prefix$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^program_transform_name$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^bindir$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^sbindir$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^libexecdir$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^datarootdir$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^datadir$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^sysconfdir$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^sharedstatedir$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^localstatedir$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^includedir$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^oldincludedir$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^docdir$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^infodir$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^htmldir$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^dvidir$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^pdfdir$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^psdir$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^libdir$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^localedir$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^mandir$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_NAME$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_VERSION$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_STRING$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_URL$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^DEFS$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^ECHO_C$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^ECHO_N$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^ECHO_T$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^LIBS$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^build_alias$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^host_alias$])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^target_alias$])
-m4trace:configure.ac:4: -1- m4_pattern_allow([^MGL_RELEASE$])
-m4trace:configure.ac:21: -1- m4_pattern_allow([^MGL_CURRENT$])
-m4trace:configure.ac:22: -1- m4_pattern_allow([^MGL_REVISION$])
-m4trace:configure.ac:23: -1- m4_pattern_allow([^MGL_AGE$])
-m4trace:configure.ac:25: -1- AM_INIT_AUTOMAKE
-m4trace:configure.ac:25: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$])
-m4trace:configure.ac:25: -1- AM_SET_CURRENT_AUTOMAKE_VERSION
-m4trace:configure.ac:25: -1- AM_AUTOMAKE_VERSION([1.11.1])
-m4trace:configure.ac:25: -1- _AM_AUTOCONF_VERSION([2.67])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^INSTALL_PROGRAM$])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^INSTALL_SCRIPT$])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^INSTALL_DATA$])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^am__isrc$])
-m4trace:configure.ac:25: -1- _AM_SUBST_NOTMAKE([am__isrc])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^CYGPATH_W$])
-m4trace:configure.ac:25: -1- _AM_SET_OPTIONS([])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE$])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^VERSION$])
-m4trace:configure.ac:25: -1- _AM_IF_OPTION([no-define], [], [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])
-m4trace:configure.ac:25: -2- _AM_MANGLE_OPTION([no-define])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE$])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^VERSION$])
-m4trace:configure.ac:25: -1- AM_SANITY_CHECK
-m4trace:configure.ac:25: -1- AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
-m4trace:configure.ac:25: -1- AM_MISSING_HAS_RUN
-m4trace:configure.ac:25: -1- AM_AUX_DIR_EXPAND
-m4trace:configure.ac:25: -1- m4_pattern_allow([^ACLOCAL$])
-m4trace:configure.ac:25: -1- AM_MISSING_PROG([AUTOCONF], [autoconf])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^AUTOCONF$])
-m4trace:configure.ac:25: -1- AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^AUTOMAKE$])
-m4trace:configure.ac:25: -1- AM_MISSING_PROG([AUTOHEADER], [autoheader])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^AUTOHEADER$])
-m4trace:configure.ac:25: -1- AM_MISSING_PROG([MAKEINFO], [makeinfo])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^MAKEINFO$])
-m4trace:configure.ac:25: -1- AM_PROG_INSTALL_SH
-m4trace:configure.ac:25: -1- m4_pattern_allow([^install_sh$])
-m4trace:configure.ac:25: -1- AM_PROG_INSTALL_STRIP
-m4trace:configure.ac:25: -1- m4_pattern_allow([^STRIP$])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$])
-m4trace:configure.ac:25: -1- AM_PROG_MKDIR_P
-m4trace:configure.ac:25: -1- m4_pattern_allow([^MKDIR_P$])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^mkdir_p$])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^AWK$])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^SET_MAKE$])
-m4trace:configure.ac:25: -1- AM_SET_LEADING_DOT
-m4trace:configure.ac:25: -1- m4_pattern_allow([^am__leading_dot$])
-m4trace:configure.ac:25: -1- _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
-			     [_AM_PROG_TAR([v7])])])
-m4trace:configure.ac:25: -2- _AM_MANGLE_OPTION([tar-ustar])
-m4trace:configure.ac:25: -1- _AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])
-m4trace:configure.ac:25: -2- _AM_MANGLE_OPTION([tar-pax])
-m4trace:configure.ac:25: -1- _AM_PROG_TAR([v7])
-m4trace:configure.ac:25: -1- AM_MISSING_PROG([AMTAR], [tar])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^AMTAR$])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^am__tar$])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^am__untar$])
-m4trace:configure.ac:25: -1- _AM_IF_OPTION([no-dependencies], [], [AC_PROVIDE_IFELSE([AC_PROG_CC],
-		  [_AM_DEPENDENCIES(CC)],
-		  [define([AC_PROG_CC],
-			  defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_CXX],
-		  [_AM_DEPENDENCIES(CXX)],
-		  [define([AC_PROG_CXX],
-			  defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_OBJC],
-		  [_AM_DEPENDENCIES(OBJC)],
-		  [define([AC_PROG_OBJC],
-			  defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
-])
-m4trace:configure.ac:25: -2- _AM_MANGLE_OPTION([no-dependencies])
-m4trace:configure.ac:25: -1- _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])
-m4trace:configure.ac:25: -2- _AM_MANGLE_OPTION([silent-rules])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^CC$])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^CFLAGS$])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^LDFLAGS$])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^LIBS$])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^CPPFLAGS$])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^CC$])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^CC$])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^CC$])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^CC$])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^ac_ct_CC$])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^EXEEXT$])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^OBJEXT$])
-m4trace:configure.ac:27: -1- _AM_DEPENDENCIES([CC])
-m4trace:configure.ac:27: -1- AM_SET_DEPDIR
-m4trace:configure.ac:27: -1- m4_pattern_allow([^DEPDIR$])
-m4trace:configure.ac:27: -1- AM_OUTPUT_DEPENDENCY_COMMANDS
-m4trace:configure.ac:27: -1- AM_MAKE_INCLUDE
-m4trace:configure.ac:27: -1- m4_pattern_allow([^am__include$])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^am__quote$])
-m4trace:configure.ac:27: -1- AM_DEP_TRACK
-m4trace:configure.ac:27: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^AMDEP_TRUE$])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^AMDEP_FALSE$])
-m4trace:configure.ac:27: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE])
-m4trace:configure.ac:27: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^AMDEPBACKSLASH$])
-m4trace:configure.ac:27: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^CCDEPMODE$])
-m4trace:configure.ac:27: -1- AM_CONDITIONAL([am__fastdepCC], [
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CC_dependencies_compiler_type" = gcc3])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^am__fastdepCC_TRUE$])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^am__fastdepCC_FALSE$])
-m4trace:configure.ac:27: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE])
-m4trace:configure.ac:27: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE])
-m4trace:configure.ac:28: -1- m4_pattern_allow([^CXX$])
-m4trace:configure.ac:28: -1- m4_pattern_allow([^CXXFLAGS$])
-m4trace:configure.ac:28: -1- m4_pattern_allow([^LDFLAGS$])
-m4trace:configure.ac:28: -1- m4_pattern_allow([^LIBS$])
-m4trace:configure.ac:28: -1- m4_pattern_allow([^CPPFLAGS$])
-m4trace:configure.ac:28: -1- m4_pattern_allow([^CXX$])
-m4trace:configure.ac:28: -1- m4_pattern_allow([^ac_ct_CXX$])
-m4trace:configure.ac:28: -1- _AM_DEPENDENCIES([CXX])
-m4trace:configure.ac:28: -1- m4_pattern_allow([^CXXDEPMODE$])
-m4trace:configure.ac:28: -1- AM_CONDITIONAL([am__fastdepCXX], [
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CXX_dependencies_compiler_type" = gcc3])
-m4trace:configure.ac:28: -1- m4_pattern_allow([^am__fastdepCXX_TRUE$])
-m4trace:configure.ac:28: -1- m4_pattern_allow([^am__fastdepCXX_FALSE$])
-m4trace:configure.ac:28: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_TRUE])
-m4trace:configure.ac:28: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_FALSE])
-m4trace:configure.ac:31: -1- AC_LIBTOOL_WIN32_DLL
-m4trace:configure.ac:31: -1- _m4_warn([obsolete], [The macro `AC_LIBTOOL_WIN32_DLL' is obsolete.
-You should run autoupdate.], [config/ltoptions.m4:145: AC_LIBTOOL_WIN32_DLL is expanded from...
-configure.ac:31: the top level])
-m4trace:configure.ac:31: -1- m4_pattern_allow([^build$])
-m4trace:configure.ac:31: -1- m4_pattern_allow([^build_cpu$])
-m4trace:configure.ac:31: -1- m4_pattern_allow([^build_vendor$])
-m4trace:configure.ac:31: -1- m4_pattern_allow([^build_os$])
-m4trace:configure.ac:31: -1- m4_pattern_allow([^host$])
-m4trace:configure.ac:31: -1- m4_pattern_allow([^host_cpu$])
-m4trace:configure.ac:31: -1- m4_pattern_allow([^host_vendor$])
-m4trace:configure.ac:31: -1- m4_pattern_allow([^host_os$])
-m4trace:configure.ac:31: -1- m4_pattern_allow([^AS$])
-m4trace:configure.ac:31: -1- m4_pattern_allow([^DLLTOOL$])
-m4trace:configure.ac:31: -1- m4_pattern_allow([^OBJDUMP$])
-m4trace:configure.ac:31: -1- _m4_warn([obsolete], [AC_LIBTOOL_WIN32_DLL: Remove this warning and the call to _LT_SET_OPTION when you
-put the `win32-dll' option into LT_INIT's first parameter.], [config/ltoptions.m4:145: AC_LIBTOOL_WIN32_DLL is expanded from...
-configure.ac:31: the top level])
-m4trace:configure.ac:32: -1- AC_LIBTOOL_DLOPEN
-m4trace:configure.ac:32: -1- _m4_warn([obsolete], [The macro `AC_LIBTOOL_DLOPEN' is obsolete.
-You should run autoupdate.], [config/ltoptions.m4:110: AC_LIBTOOL_DLOPEN is expanded from...
-configure.ac:32: the top level])
-m4trace:configure.ac:32: -1- _m4_warn([obsolete], [AC_LIBTOOL_DLOPEN: Remove this warning and the call to _LT_SET_OPTION when you
-put the `dlopen' option into LT_INIT's first parameter.], [config/ltoptions.m4:110: AC_LIBTOOL_DLOPEN is expanded from...
-configure.ac:32: the top level])
-m4trace:configure.ac:33: -1- AC_PROG_LIBTOOL
-m4trace:configure.ac:33: -1- _m4_warn([obsolete], [The macro `AC_PROG_LIBTOOL' is obsolete.
-You should run autoupdate.], [config/libtool.m4:102: AC_PROG_LIBTOOL is expanded from...
-configure.ac:33: the top level])
-m4trace:configure.ac:33: -1- LT_INIT
-m4trace:configure.ac:33: -1- m4_pattern_forbid([^_?LT_[A-Z_]+$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])
-m4trace:configure.ac:33: -1- LTOPTIONS_VERSION
-m4trace:configure.ac:33: -1- LTSUGAR_VERSION
-m4trace:configure.ac:33: -1- LTVERSION_VERSION
-m4trace:configure.ac:33: -1- LTOBSOLETE_VERSION
-m4trace:configure.ac:33: -1- _LT_PROG_LTMAIN
-m4trace:configure.ac:33: -1- m4_pattern_allow([^LIBTOOL$])
-m4trace:configure.ac:33: -1- LT_PATH_LD
-m4trace:configure.ac:33: -1- m4_pattern_allow([^SED$])
-m4trace:configure.ac:33: -1- AC_PROG_EGREP
-m4trace:configure.ac:33: -1- m4_pattern_allow([^GREP$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^EGREP$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^FGREP$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^GREP$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^LD$])
-m4trace:configure.ac:33: -1- LT_PATH_NM
-m4trace:configure.ac:33: -1- m4_pattern_allow([^DUMPBIN$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^ac_ct_DUMPBIN$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^DUMPBIN$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^NM$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^LN_S$])
-m4trace:configure.ac:33: -1- LT_CMD_MAX_LEN
-m4trace:configure.ac:33: -1- m4_pattern_allow([^OBJDUMP$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^OBJDUMP$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^AR$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^STRIP$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^RANLIB$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([LT_OBJDIR])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^LT_OBJDIR$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^lt_ECHO$])
-m4trace:configure.ac:33: -1- _LT_CC_BASENAME([$compiler])
-m4trace:configure.ac:33: -1- _LT_PATH_TOOL_PREFIX([${ac_tool_prefix}file], [/usr/bin$PATH_SEPARATOR$PATH])
-m4trace:configure.ac:33: -1- _LT_PATH_TOOL_PREFIX([file], [/usr/bin$PATH_SEPARATOR$PATH])
-m4trace:configure.ac:33: -1- LT_SUPPORTED_TAG([CC])
-m4trace:configure.ac:33: -1- _LT_COMPILER_BOILERPLATE
-m4trace:configure.ac:33: -1- _LT_LINKER_BOILERPLATE
-m4trace:configure.ac:33: -1- _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], [lt_cv_prog_compiler_rtti_exceptions], [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, )="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, ) -fno-rtti -fno-exceptions"])
-m4trace:configure.ac:33: -1- _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, ) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, )], [$_LT_TAGVAR(lt_prog_compiler_pic, )@&t at m4_if([],[],[ -DPIC],[m4_if([],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, ) in
-     "" | " "*) ;;
-     *) _LT_TAGVAR(lt_prog_compiler_pic, )=" $_LT_TAGVAR(lt_prog_compiler_pic, )" ;;
-     esac], [_LT_TAGVAR(lt_prog_compiler_pic, )=
-     _LT_TAGVAR(lt_prog_compiler_can_build_shared, )=no])
-m4trace:configure.ac:33: -1- _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], [lt_cv_prog_compiler_static_works], [$lt_tmp_static_flag], [], [_LT_TAGVAR(lt_prog_compiler_static, )=])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^DSYMUTIL$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^NMEDIT$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^LIPO$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^OTOOL$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^OTOOL64$])
-m4trace:configure.ac:33: -1- LT_SYS_DLOPEN_SELF
-m4trace:configure.ac:33: -1- m4_pattern_allow([^CPP$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^CPPFLAGS$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^CPP$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^STDC_HEADERS$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^HAVE_DLFCN_H$])
-m4trace:configure.ac:33: -1- LT_LANG([CXX])
-m4trace:configure.ac:33: -1- LT_SUPPORTED_TAG([CXX])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^CXX$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^CXXFLAGS$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^LDFLAGS$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^LIBS$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^CPPFLAGS$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^CXX$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^ac_ct_CXX$])
-m4trace:configure.ac:33: -1- _AM_DEPENDENCIES([CXX])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^CXXDEPMODE$])
-m4trace:configure.ac:33: -1- AM_CONDITIONAL([am__fastdepCXX], [
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CXX_dependencies_compiler_type" = gcc3])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^am__fastdepCXX_TRUE$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^am__fastdepCXX_FALSE$])
-m4trace:configure.ac:33: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_TRUE])
-m4trace:configure.ac:33: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_FALSE])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^CXXCPP$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^CPPFLAGS$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^CXXCPP$])
-m4trace:configure.ac:33: -1- _LT_COMPILER_BOILERPLATE
-m4trace:configure.ac:33: -1- _LT_LINKER_BOILERPLATE
-m4trace:configure.ac:33: -1- _LT_CC_BASENAME([$compiler])
-m4trace:configure.ac:33: -1- LT_PATH_LD
-m4trace:configure.ac:33: -1- m4_pattern_allow([^LD$])
-m4trace:configure.ac:33: -1- _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, CXX) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, CXX)], [$_LT_TAGVAR(lt_prog_compiler_pic, CXX)@&t at m4_if([CXX],[],[ -DPIC],[m4_if([CXX],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, CXX) in
-     "" | " "*) ;;
-     *) _LT_TAGVAR(lt_prog_compiler_pic, CXX)=" $_LT_TAGVAR(lt_prog_compiler_pic, CXX)" ;;
-     esac], [_LT_TAGVAR(lt_prog_compiler_pic, CXX)=
-     _LT_TAGVAR(lt_prog_compiler_can_build_shared, CXX)=no])
-m4trace:configure.ac:33: -1- _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], [lt_cv_prog_compiler_static_works_CXX], [$lt_tmp_static_flag], [], [_LT_TAGVAR(lt_prog_compiler_static, CXX)=])
-m4trace:configure.ac:44: -1- m4_pattern_allow([^MGL_USE_DOUBLE$])
-m4trace:configure.ac:46: -1- m4_pattern_allow([^MGL_USE_DOUBLE$])
-m4trace:configure.ac:72: -1- m4_pattern_allow([^PTHREAD_FLAGS$])
-m4trace:configure.ac:75: -1- m4_pattern_allow([^PTHREAD_LIBS$])
-m4trace:configure.ac:77: -1- AM_CONDITIONAL([USE_PTHREAD], [test x$pthread = xtrue])
-m4trace:configure.ac:77: -1- m4_pattern_allow([^USE_PTHREAD_TRUE$])
-m4trace:configure.ac:77: -1- m4_pattern_allow([^USE_PTHREAD_FALSE$])
-m4trace:configure.ac:77: -1- _AM_SUBST_NOTMAKE([USE_PTHREAD_TRUE])
-m4trace:configure.ac:77: -1- _AM_SUBST_NOTMAKE([USE_PTHREAD_FALSE])
-m4trace:configure.ac:89: -1- m4_pattern_allow([^GSL_FLAGS$])
-m4trace:configure.ac:90: -1- m4_pattern_allow([^GSL_LIBS$])
-m4trace:configure.ac:100: -1- m4_pattern_allow([^GSL_FLAGS$])
-m4trace:configure.ac:102: -1- AM_CONDITIONAL([USE_GSL], [test x$test_gsl = xtrue])
-m4trace:configure.ac:102: -1- m4_pattern_allow([^USE_GSL_TRUE$])
-m4trace:configure.ac:102: -1- m4_pattern_allow([^USE_GSL_FALSE$])
-m4trace:configure.ac:102: -1- _AM_SUBST_NOTMAKE([USE_GSL_TRUE])
-m4trace:configure.ac:102: -1- _AM_SUBST_NOTMAKE([USE_GSL_FALSE])
-m4trace:configure.ac:115: -1- m4_pattern_allow([^GL_LIBS$])
-m4trace:configure.ac:118: -1- m4_pattern_allow([^GLUT_LIBS$])
-m4trace:configure.ac:125: -1- m4_pattern_allow([^GL_LIBS$])
-m4trace:configure.ac:128: -1- m4_pattern_allow([^GLUT_FLAGS$])
-m4trace:configure.ac:130: -1- m4_pattern_allow([^GLUT_LIBS$])
-m4trace:configure.ac:137: -1- m4_pattern_allow([^GL_LIBS$])
-m4trace:configure.ac:140: -1- m4_pattern_allow([^GLUT_FLAGS$])
-m4trace:configure.ac:142: -1- m4_pattern_allow([^GLUT_LIBS$])
-m4trace:configure.ac:147: -1- AM_CONDITIONAL([USE_GLUT], [(test x$all = xtrue || test x$glut = xtrue)])
-m4trace:configure.ac:147: -1- m4_pattern_allow([^USE_GLUT_TRUE$])
-m4trace:configure.ac:147: -1- m4_pattern_allow([^USE_GLUT_FALSE$])
-m4trace:configure.ac:147: -1- _AM_SUBST_NOTMAKE([USE_GLUT_TRUE])
-m4trace:configure.ac:147: -1- _AM_SUBST_NOTMAKE([USE_GLUT_FALSE])
-m4trace:configure.ac:177: -1- m4_pattern_allow([^HDF5_FLAGS$])
-m4trace:configure.ac:179: -1- m4_pattern_allow([^HDF5_LIBS$])
-m4trace:configure.ac:181: -1- AM_CONDITIONAL([USE_HDF5], [(test x$all = xtrue || test x$hdf5 = xtrue || test x$hdf5_18 = xtrue)])
-m4trace:configure.ac:181: -1- m4_pattern_allow([^USE_HDF5_TRUE$])
-m4trace:configure.ac:181: -1- m4_pattern_allow([^USE_HDF5_FALSE$])
-m4trace:configure.ac:181: -1- _AM_SUBST_NOTMAKE([USE_HDF5_TRUE])
-m4trace:configure.ac:181: -1- _AM_SUBST_NOTMAKE([USE_HDF5_FALSE])
-m4trace:configure.ac:193: -1- m4_pattern_allow([^HDF4_FLAGS$])
-m4trace:configure.ac:194: -1- m4_pattern_allow([^HDF4_LIBS$])
-m4trace:configure.ac:196: -1- AM_CONDITIONAL([USE_HDF4], [(test x$all = xtrue || test x$hdf4 = xtrue)])
-m4trace:configure.ac:196: -1- m4_pattern_allow([^USE_HDF4_TRUE$])
-m4trace:configure.ac:196: -1- m4_pattern_allow([^USE_HDF4_FALSE$])
-m4trace:configure.ac:196: -1- _AM_SUBST_NOTMAKE([USE_HDF4_TRUE])
-m4trace:configure.ac:196: -1- _AM_SUBST_NOTMAKE([USE_HDF4_FALSE])
-m4trace:configure.ac:205: -1- m4_pattern_allow([^GIF_FLAGS$])
-m4trace:configure.ac:208: -1- m4_pattern_allow([^GIF_LIBS$])
-m4trace:configure.ac:210: -1- AM_CONDITIONAL([USE_GIF], [(test x$all = xtrue || test x$gif = xtrue)])
-m4trace:configure.ac:210: -1- m4_pattern_allow([^USE_GIF_TRUE$])
-m4trace:configure.ac:210: -1- m4_pattern_allow([^USE_GIF_FALSE$])
-m4trace:configure.ac:210: -1- _AM_SUBST_NOTMAKE([USE_GIF_TRUE])
-m4trace:configure.ac:210: -1- _AM_SUBST_NOTMAKE([USE_GIF_FALSE])
-m4trace:configure.ac:214: -1- m4_pattern_allow([^PNG_LIBS$])
-m4trace:configure.ac:224: -1- m4_pattern_allow([^JPEG_FLAGS$])
-m4trace:configure.ac:227: -1- m4_pattern_allow([^JPEG_LIBS$])
-m4trace:configure.ac:229: -1- AM_CONDITIONAL([USE_JPEG], [(test x$all = xtrue || test x$jpeg = xtrue)])
-m4trace:configure.ac:229: -1- m4_pattern_allow([^USE_JPEG_TRUE$])
-m4trace:configure.ac:229: -1- m4_pattern_allow([^USE_JPEG_FALSE$])
-m4trace:configure.ac:229: -1- _AM_SUBST_NOTMAKE([USE_JPEG_TRUE])
-m4trace:configure.ac:229: -1- _AM_SUBST_NOTMAKE([USE_JPEG_FALSE])
-m4trace:configure.ac:240: -1- m4_pattern_allow([^FLTK_FLAGS$])
-m4trace:configure.ac:241: -1- m4_pattern_allow([^FLTK_LIBS$])
-m4trace:configure.ac:250: -1- AM_CONDITIONAL([USE_FLTK], [test x$test_fltk = xtrue])
-m4trace:configure.ac:250: -1- m4_pattern_allow([^USE_FLTK_TRUE$])
-m4trace:configure.ac:250: -1- m4_pattern_allow([^USE_FLTK_FALSE$])
-m4trace:configure.ac:250: -1- _AM_SUBST_NOTMAKE([USE_FLTK_TRUE])
-m4trace:configure.ac:250: -1- _AM_SUBST_NOTMAKE([USE_FLTK_FALSE])
-m4trace:configure.ac:262: -1- m4_pattern_allow([^WX_FLAGS$])
-m4trace:configure.ac:263: -1- m4_pattern_allow([^WX_LIBS$])
-m4trace:configure.ac:272: -1- AM_CONDITIONAL([USE_WX], [test x$test_wx = xtrue])
-m4trace:configure.ac:272: -1- m4_pattern_allow([^USE_WX_TRUE$])
-m4trace:configure.ac:272: -1- m4_pattern_allow([^USE_WX_FALSE$])
-m4trace:configure.ac:272: -1- _AM_SUBST_NOTMAKE([USE_WX_TRUE])
-m4trace:configure.ac:272: -1- _AM_SUBST_NOTMAKE([USE_WX_FALSE])
-m4trace:configure.ac:282: -1- AT_WITH_QT
-m4trace:configure.ac:282: -1- m4_pattern_allow([^QMAKE$])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^QMAKE$])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^MOC$])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^MOC$])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^UIC$])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^UIC$])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^RCC$])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^RCC$])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^QT_PATH$])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^TMPDIR$])
-m4trace:configure.ac:282: -1- _AT_TWEAK_PRO_FILE([CONFIG], [+release])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^QT_VERSION_MAJOR$])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^QT_DEFINES$])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^QT_CFLAGS$])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^QT_CXXFLAGS$])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^QT_INCPATH$])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^QT_CPPFLAGS$])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^QT_LFLAGS$])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^QT_LDFLAGS$])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^QT_LIBS$])
-m4trace:configure.ac:283: -1- AT_REQUIRE_QT_VERSION([4.3])
-m4trace:configure.ac:283: -1- m4_pattern_allow([^QT_VERSION$])
-m4trace:configure.ac:286: -1- AM_CONDITIONAL([USE_QT], [test x$test_qt = xtrue])
-m4trace:configure.ac:286: -1- m4_pattern_allow([^USE_QT_TRUE$])
-m4trace:configure.ac:286: -1- m4_pattern_allow([^USE_QT_FALSE$])
-m4trace:configure.ac:286: -1- _AM_SUBST_NOTMAKE([USE_QT_TRUE])
-m4trace:configure.ac:286: -1- _AM_SUBST_NOTMAKE([USE_QT_FALSE])
-m4trace:configure.ac:296: -1- m4_pattern_allow([^PYTHON_HEADERS$])
-m4trace:configure.ac:297: -1- m4_pattern_allow([^HAVE_SWIG$])
-m4trace:configure.ac:300: -1- AM_PATH_PYTHON([])
-m4trace:configure.ac:300: -1- m4_pattern_allow([^PYTHON$])
-m4trace:configure.ac:300: -1- m4_pattern_allow([^PYTHON_VERSION$])
-m4trace:configure.ac:300: -1- m4_pattern_allow([^PYTHON_PREFIX$])
-m4trace:configure.ac:300: -1- m4_pattern_allow([^PYTHON_EXEC_PREFIX$])
-m4trace:configure.ac:300: -1- m4_pattern_allow([^PYTHON_PLATFORM$])
-m4trace:configure.ac:300: -1- m4_pattern_allow([^pythondir$])
-m4trace:configure.ac:300: -1- m4_pattern_allow([^pkgpythondir$])
-m4trace:configure.ac:300: -1- m4_pattern_allow([^pyexecdir$])
-m4trace:configure.ac:300: -1- m4_pattern_allow([^pkgpyexecdir$])
-m4trace:configure.ac:306: -1- AM_CONDITIONAL([USE_PYTHON], [test x$test_python = xtrue ])
-m4trace:configure.ac:306: -1- m4_pattern_allow([^USE_PYTHON_TRUE$])
-m4trace:configure.ac:306: -1- m4_pattern_allow([^USE_PYTHON_FALSE$])
-m4trace:configure.ac:306: -1- _AM_SUBST_NOTMAKE([USE_PYTHON_TRUE])
-m4trace:configure.ac:306: -1- _AM_SUBST_NOTMAKE([USE_PYTHON_FALSE])
-m4trace:configure.ac:316: -1- m4_pattern_allow([^OCTAVE$])
-m4trace:configure.ac:322: -1- m4_pattern_allow([^OCTAVE_ARCH$])
-m4trace:configure.ac:323: -1- m4_pattern_allow([^OCTAVE_INCFLAGS$])
-m4trace:configure.ac:326: -1- AM_CONDITIONAL([USE_OCTAVE], [test x$test_octave = xtrue ])
-m4trace:configure.ac:326: -1- m4_pattern_allow([^USE_OCTAVE_TRUE$])
-m4trace:configure.ac:326: -1- m4_pattern_allow([^USE_OCTAVE_FALSE$])
-m4trace:configure.ac:326: -1- _AM_SUBST_NOTMAKE([USE_OCTAVE_TRUE])
-m4trace:configure.ac:326: -1- _AM_SUBST_NOTMAKE([USE_OCTAVE_FALSE])
-m4trace:configure.ac:335: -1- AM_CONDITIONAL([USE_TESTIO], [test x$testio = xtrue ])
-m4trace:configure.ac:335: -1- m4_pattern_allow([^USE_TESTIO_TRUE$])
-m4trace:configure.ac:335: -1- m4_pattern_allow([^USE_TESTIO_FALSE$])
-m4trace:configure.ac:335: -1- _AM_SUBST_NOTMAKE([USE_TESTIO_TRUE])
-m4trace:configure.ac:335: -1- _AM_SUBST_NOTMAKE([USE_TESTIO_FALSE])
-m4trace:configure.ac:347: -1- AM_CONDITIONAL([USE_DOCS], [(test x$docs = xtrue || test x$all = xtrue) ])
-m4trace:configure.ac:347: -1- m4_pattern_allow([^USE_DOCS_TRUE$])
-m4trace:configure.ac:347: -1- m4_pattern_allow([^USE_DOCS_FALSE$])
-m4trace:configure.ac:347: -1- _AM_SUBST_NOTMAKE([USE_DOCS_TRUE])
-m4trace:configure.ac:347: -1- _AM_SUBST_NOTMAKE([USE_DOCS_FALSE])
-m4trace:configure.ac:350: -1- m4_pattern_allow([^AM_CXXFLAGS$])
-m4trace:configure.ac:361: -1- m4_pattern_allow([^LIB@&t at OBJS$])
-m4trace:configure.ac:361: -1- m4_pattern_allow([^LTLIBOBJS$])
-m4trace:configure.ac:361: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])
-m4trace:configure.ac:361: -1- m4_pattern_allow([^am__EXEEXT_TRUE$])
-m4trace:configure.ac:361: -1- m4_pattern_allow([^am__EXEEXT_FALSE$])
-m4trace:configure.ac:361: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE])
-m4trace:configure.ac:361: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE])
-m4trace:configure.ac:361: -1- _AC_AM_CONFIG_HEADER_HOOK(["$ac_file"])
-m4trace:configure.ac:361: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS
-m4trace:configure.ac:361: -1- _LT_PROG_LTMAIN
diff --git a/autom4te.cache/traces.1 b/autom4te.cache/traces.1
deleted file mode 100644
index 0f93fd8..0000000
--- a/autom4te.cache/traces.1
+++ /dev/null
@@ -1,931 +0,0 @@
-m4trace:aclocal.m4:1157: -1- m4_include([config/autotroll.m4])
-m4trace:config/autotroll.m4:70: -1- m4_pattern_forbid([^AT_])
-m4trace:config/autotroll.m4:71: -1- m4_pattern_forbid([^_AT_])
-m4trace:aclocal.m4:1158: -1- m4_include([config/libtool.m4])
-m4trace:aclocal.m4:1159: -1- m4_include([config/ltoptions.m4])
-m4trace:aclocal.m4:1160: -1- m4_include([config/ltsugar.m4])
-m4trace:aclocal.m4:1161: -1- m4_include([config/ltversion.m4])
-m4trace:aclocal.m4:1162: -1- m4_include([config/lt~obsolete.m4])
-m4trace:configure.ac:1: -1- AC_INIT([mathgl], [1.10], [mathgl.abalakin at gmail.com])
-m4trace:configure.ac:1: -1- m4_pattern_forbid([^_?A[CHUM]_])
-m4trace:configure.ac:1: -1- m4_pattern_forbid([_AC_])
-m4trace:configure.ac:1: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^AS_FLAGS$])
-m4trace:configure.ac:1: -1- m4_pattern_forbid([^_?m4_])
-m4trace:configure.ac:1: -1- m4_pattern_forbid([^dnl$])
-m4trace:configure.ac:1: -1- m4_pattern_forbid([^_?AS_])
-m4trace:configure.ac:1: -1- AC_SUBST([SHELL])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([SHELL])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^SHELL$])
-m4trace:configure.ac:1: -1- AC_SUBST([PATH_SEPARATOR])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([PATH_SEPARATOR])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^PATH_SEPARATOR$])
-m4trace:configure.ac:1: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME],      ['AC_PACKAGE_NAME'])])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([PACKAGE_NAME])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_NAME$])
-m4trace:configure.ac:1: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME],   ['AC_PACKAGE_TARNAME'])])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([PACKAGE_TARNAME])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
-m4trace:configure.ac:1: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION],   ['AC_PACKAGE_VERSION'])])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([PACKAGE_VERSION])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_VERSION$])
-m4trace:configure.ac:1: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING],    ['AC_PACKAGE_STRING'])])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([PACKAGE_STRING])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_STRING$])
-m4trace:configure.ac:1: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([PACKAGE_BUGREPORT])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
-m4trace:configure.ac:1: -1- AC_SUBST([PACKAGE_URL], [m4_ifdef([AC_PACKAGE_URL],       ['AC_PACKAGE_URL'])])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([PACKAGE_URL])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_URL$])
-m4trace:configure.ac:1: -1- AC_SUBST([exec_prefix], [NONE])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([exec_prefix])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^exec_prefix$])
-m4trace:configure.ac:1: -1- AC_SUBST([prefix], [NONE])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([prefix])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^prefix$])
-m4trace:configure.ac:1: -1- AC_SUBST([program_transform_name], [s,x,x,])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([program_transform_name])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^program_transform_name$])
-m4trace:configure.ac:1: -1- AC_SUBST([bindir], ['${exec_prefix}/bin'])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([bindir])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^bindir$])
-m4trace:configure.ac:1: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin'])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([sbindir])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^sbindir$])
-m4trace:configure.ac:1: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec'])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([libexecdir])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^libexecdir$])
-m4trace:configure.ac:1: -1- AC_SUBST([datarootdir], ['${prefix}/share'])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([datarootdir])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^datarootdir$])
-m4trace:configure.ac:1: -1- AC_SUBST([datadir], ['${datarootdir}'])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([datadir])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^datadir$])
-m4trace:configure.ac:1: -1- AC_SUBST([sysconfdir], ['${prefix}/etc'])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([sysconfdir])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^sysconfdir$])
-m4trace:configure.ac:1: -1- AC_SUBST([sharedstatedir], ['${prefix}/com'])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([sharedstatedir])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^sharedstatedir$])
-m4trace:configure.ac:1: -1- AC_SUBST([localstatedir], ['${prefix}/var'])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([localstatedir])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^localstatedir$])
-m4trace:configure.ac:1: -1- AC_SUBST([includedir], ['${prefix}/include'])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([includedir])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^includedir$])
-m4trace:configure.ac:1: -1- AC_SUBST([oldincludedir], ['/usr/include'])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([oldincludedir])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^oldincludedir$])
-m4trace:configure.ac:1: -1- AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME],
-				     ['${datarootdir}/doc/${PACKAGE_TARNAME}'],
-				     ['${datarootdir}/doc/${PACKAGE}'])])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([docdir])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^docdir$])
-m4trace:configure.ac:1: -1- AC_SUBST([infodir], ['${datarootdir}/info'])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([infodir])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^infodir$])
-m4trace:configure.ac:1: -1- AC_SUBST([htmldir], ['${docdir}'])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([htmldir])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^htmldir$])
-m4trace:configure.ac:1: -1- AC_SUBST([dvidir], ['${docdir}'])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([dvidir])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^dvidir$])
-m4trace:configure.ac:1: -1- AC_SUBST([pdfdir], ['${docdir}'])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([pdfdir])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^pdfdir$])
-m4trace:configure.ac:1: -1- AC_SUBST([psdir], ['${docdir}'])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([psdir])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^psdir$])
-m4trace:configure.ac:1: -1- AC_SUBST([libdir], ['${exec_prefix}/lib'])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([libdir])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^libdir$])
-m4trace:configure.ac:1: -1- AC_SUBST([localedir], ['${datarootdir}/locale'])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([localedir])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^localedir$])
-m4trace:configure.ac:1: -1- AC_SUBST([mandir], ['${datarootdir}/man'])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([mandir])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^mandir$])
-m4trace:configure.ac:1: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_NAME$])
-m4trace:configure.ac:1: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */
-@%:@undef PACKAGE_NAME])
-m4trace:configure.ac:1: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
-m4trace:configure.ac:1: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */
-@%:@undef PACKAGE_TARNAME])
-m4trace:configure.ac:1: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_VERSION$])
-m4trace:configure.ac:1: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */
-@%:@undef PACKAGE_VERSION])
-m4trace:configure.ac:1: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_STRING$])
-m4trace:configure.ac:1: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */
-@%:@undef PACKAGE_STRING])
-m4trace:configure.ac:1: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
-m4trace:configure.ac:1: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */
-@%:@undef PACKAGE_BUGREPORT])
-m4trace:configure.ac:1: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_URL])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_URL$])
-m4trace:configure.ac:1: -1- AH_OUTPUT([PACKAGE_URL], [/* Define to the home page for this package. */
-@%:@undef PACKAGE_URL])
-m4trace:configure.ac:1: -1- AC_SUBST([DEFS])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([DEFS])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^DEFS$])
-m4trace:configure.ac:1: -1- AC_SUBST([ECHO_C])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([ECHO_C])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^ECHO_C$])
-m4trace:configure.ac:1: -1- AC_SUBST([ECHO_N])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([ECHO_N])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^ECHO_N$])
-m4trace:configure.ac:1: -1- AC_SUBST([ECHO_T])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([ECHO_T])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^ECHO_T$])
-m4trace:configure.ac:1: -1- AC_SUBST([LIBS])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([LIBS])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^LIBS$])
-m4trace:configure.ac:1: -1- AC_SUBST([build_alias])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([build_alias])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^build_alias$])
-m4trace:configure.ac:1: -1- AC_SUBST([host_alias])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([host_alias])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^host_alias$])
-m4trace:configure.ac:1: -1- AC_SUBST([target_alias])
-m4trace:configure.ac:1: -1- AC_SUBST_TRACE([target_alias])
-m4trace:configure.ac:1: -1- m4_pattern_allow([^target_alias$])
-m4trace:configure.ac:4: -1- AC_SUBST([MGL_RELEASE])
-m4trace:configure.ac:4: -1- AC_SUBST_TRACE([MGL_RELEASE])
-m4trace:configure.ac:4: -1- m4_pattern_allow([^MGL_RELEASE$])
-m4trace:configure.ac:7: -1- AC_CONFIG_AUX_DIR([config])
-m4trace:configure.ac:9: -1- AC_CONFIG_HEADERS([include/mgl/config.h])
-m4trace:configure.ac:21: -1- AC_SUBST([MGL_CURRENT])
-m4trace:configure.ac:21: -1- AC_SUBST_TRACE([MGL_CURRENT])
-m4trace:configure.ac:21: -1- m4_pattern_allow([^MGL_CURRENT$])
-m4trace:configure.ac:22: -1- AC_SUBST([MGL_REVISION])
-m4trace:configure.ac:22: -1- AC_SUBST_TRACE([MGL_REVISION])
-m4trace:configure.ac:22: -1- m4_pattern_allow([^MGL_REVISION$])
-m4trace:configure.ac:23: -1- AC_SUBST([MGL_AGE])
-m4trace:configure.ac:23: -1- AC_SUBST_TRACE([MGL_AGE])
-m4trace:configure.ac:23: -1- m4_pattern_allow([^MGL_AGE$])
-m4trace:configure.ac:25: -1- AM_INIT_AUTOMAKE
-m4trace:configure.ac:25: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$])
-m4trace:configure.ac:25: -1- AM_AUTOMAKE_VERSION([1.11.1])
-m4trace:configure.ac:25: -1- AC_REQUIRE_AUX_FILE([install-sh])
-m4trace:configure.ac:25: -1- AC_SUBST([INSTALL_PROGRAM])
-m4trace:configure.ac:25: -1- AC_SUBST_TRACE([INSTALL_PROGRAM])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^INSTALL_PROGRAM$])
-m4trace:configure.ac:25: -1- AC_SUBST([INSTALL_SCRIPT])
-m4trace:configure.ac:25: -1- AC_SUBST_TRACE([INSTALL_SCRIPT])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^INSTALL_SCRIPT$])
-m4trace:configure.ac:25: -1- AC_SUBST([INSTALL_DATA])
-m4trace:configure.ac:25: -1- AC_SUBST_TRACE([INSTALL_DATA])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^INSTALL_DATA$])
-m4trace:configure.ac:25: -1- AC_SUBST([am__isrc], [' -I$(srcdir)'])
-m4trace:configure.ac:25: -1- AC_SUBST_TRACE([am__isrc])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^am__isrc$])
-m4trace:configure.ac:25: -1- _AM_SUBST_NOTMAKE([am__isrc])
-m4trace:configure.ac:25: -1- AC_SUBST([CYGPATH_W])
-m4trace:configure.ac:25: -1- AC_SUBST_TRACE([CYGPATH_W])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^CYGPATH_W$])
-m4trace:configure.ac:25: -1- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])
-m4trace:configure.ac:25: -1- AC_SUBST_TRACE([PACKAGE])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE$])
-m4trace:configure.ac:25: -1- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])
-m4trace:configure.ac:25: -1- AC_SUBST_TRACE([VERSION])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^VERSION$])
-m4trace:configure.ac:25: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE$])
-m4trace:configure.ac:25: -1- AH_OUTPUT([PACKAGE], [/* Name of package */
-@%:@undef PACKAGE])
-m4trace:configure.ac:25: -1- AC_DEFINE_TRACE_LITERAL([VERSION])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^VERSION$])
-m4trace:configure.ac:25: -1- AH_OUTPUT([VERSION], [/* Version number of package */
-@%:@undef VERSION])
-m4trace:configure.ac:25: -1- AC_REQUIRE_AUX_FILE([missing])
-m4trace:configure.ac:25: -1- AC_SUBST([ACLOCAL])
-m4trace:configure.ac:25: -1- AC_SUBST_TRACE([ACLOCAL])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^ACLOCAL$])
-m4trace:configure.ac:25: -1- AC_SUBST([AUTOCONF])
-m4trace:configure.ac:25: -1- AC_SUBST_TRACE([AUTOCONF])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^AUTOCONF$])
-m4trace:configure.ac:25: -1- AC_SUBST([AUTOMAKE])
-m4trace:configure.ac:25: -1- AC_SUBST_TRACE([AUTOMAKE])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^AUTOMAKE$])
-m4trace:configure.ac:25: -1- AC_SUBST([AUTOHEADER])
-m4trace:configure.ac:25: -1- AC_SUBST_TRACE([AUTOHEADER])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^AUTOHEADER$])
-m4trace:configure.ac:25: -1- AC_SUBST([MAKEINFO])
-m4trace:configure.ac:25: -1- AC_SUBST_TRACE([MAKEINFO])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^MAKEINFO$])
-m4trace:configure.ac:25: -1- AC_SUBST([install_sh])
-m4trace:configure.ac:25: -1- AC_SUBST_TRACE([install_sh])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^install_sh$])
-m4trace:configure.ac:25: -1- AC_SUBST([STRIP])
-m4trace:configure.ac:25: -1- AC_SUBST_TRACE([STRIP])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^STRIP$])
-m4trace:configure.ac:25: -1- AC_SUBST([INSTALL_STRIP_PROGRAM])
-m4trace:configure.ac:25: -1- AC_SUBST_TRACE([INSTALL_STRIP_PROGRAM])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$])
-m4trace:configure.ac:25: -1- AC_REQUIRE_AUX_FILE([install-sh])
-m4trace:configure.ac:25: -1- AC_SUBST([MKDIR_P])
-m4trace:configure.ac:25: -1- AC_SUBST_TRACE([MKDIR_P])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^MKDIR_P$])
-m4trace:configure.ac:25: -1- AC_SUBST([mkdir_p], ["$MKDIR_P"])
-m4trace:configure.ac:25: -1- AC_SUBST_TRACE([mkdir_p])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^mkdir_p$])
-m4trace:configure.ac:25: -1- AC_SUBST([AWK])
-m4trace:configure.ac:25: -1- AC_SUBST_TRACE([AWK])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^AWK$])
-m4trace:configure.ac:25: -1- AC_SUBST([SET_MAKE])
-m4trace:configure.ac:25: -1- AC_SUBST_TRACE([SET_MAKE])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^SET_MAKE$])
-m4trace:configure.ac:25: -1- AC_SUBST([am__leading_dot])
-m4trace:configure.ac:25: -1- AC_SUBST_TRACE([am__leading_dot])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^am__leading_dot$])
-m4trace:configure.ac:25: -1- AC_SUBST([AMTAR])
-m4trace:configure.ac:25: -1- AC_SUBST_TRACE([AMTAR])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^AMTAR$])
-m4trace:configure.ac:25: -1- AC_SUBST([am__tar])
-m4trace:configure.ac:25: -1- AC_SUBST_TRACE([am__tar])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^am__tar$])
-m4trace:configure.ac:25: -1- AC_SUBST([am__untar])
-m4trace:configure.ac:25: -1- AC_SUBST_TRACE([am__untar])
-m4trace:configure.ac:25: -1- m4_pattern_allow([^am__untar$])
-m4trace:configure.ac:27: -1- AC_SUBST([CC])
-m4trace:configure.ac:27: -1- AC_SUBST_TRACE([CC])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^CC$])
-m4trace:configure.ac:27: -1- AC_SUBST([CFLAGS])
-m4trace:configure.ac:27: -1- AC_SUBST_TRACE([CFLAGS])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^CFLAGS$])
-m4trace:configure.ac:27: -1- AC_SUBST([LDFLAGS])
-m4trace:configure.ac:27: -1- AC_SUBST_TRACE([LDFLAGS])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^LDFLAGS$])
-m4trace:configure.ac:27: -1- AC_SUBST([LIBS])
-m4trace:configure.ac:27: -1- AC_SUBST_TRACE([LIBS])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^LIBS$])
-m4trace:configure.ac:27: -1- AC_SUBST([CPPFLAGS])
-m4trace:configure.ac:27: -1- AC_SUBST_TRACE([CPPFLAGS])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^CPPFLAGS$])
-m4trace:configure.ac:27: -1- AC_SUBST([CC])
-m4trace:configure.ac:27: -1- AC_SUBST_TRACE([CC])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^CC$])
-m4trace:configure.ac:27: -1- AC_SUBST([CC])
-m4trace:configure.ac:27: -1- AC_SUBST_TRACE([CC])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^CC$])
-m4trace:configure.ac:27: -1- AC_SUBST([CC])
-m4trace:configure.ac:27: -1- AC_SUBST_TRACE([CC])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^CC$])
-m4trace:configure.ac:27: -1- AC_SUBST([CC])
-m4trace:configure.ac:27: -1- AC_SUBST_TRACE([CC])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^CC$])
-m4trace:configure.ac:27: -1- AC_SUBST([ac_ct_CC])
-m4trace:configure.ac:27: -1- AC_SUBST_TRACE([ac_ct_CC])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^ac_ct_CC$])
-m4trace:configure.ac:27: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext])
-m4trace:configure.ac:27: -1- AC_SUBST_TRACE([EXEEXT])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^EXEEXT$])
-m4trace:configure.ac:27: -1- AC_SUBST([OBJEXT], [$ac_cv_objext])
-m4trace:configure.ac:27: -1- AC_SUBST_TRACE([OBJEXT])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^OBJEXT$])
-m4trace:configure.ac:27: -1- AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])
-m4trace:configure.ac:27: -1- AC_SUBST_TRACE([DEPDIR])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^DEPDIR$])
-m4trace:configure.ac:27: -1- AC_SUBST([am__include])
-m4trace:configure.ac:27: -1- AC_SUBST_TRACE([am__include])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^am__include$])
-m4trace:configure.ac:27: -1- AC_SUBST([am__quote])
-m4trace:configure.ac:27: -1- AC_SUBST_TRACE([am__quote])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^am__quote$])
-m4trace:configure.ac:27: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
-m4trace:configure.ac:27: -1- AC_SUBST([AMDEP_TRUE])
-m4trace:configure.ac:27: -1- AC_SUBST_TRACE([AMDEP_TRUE])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^AMDEP_TRUE$])
-m4trace:configure.ac:27: -1- AC_SUBST([AMDEP_FALSE])
-m4trace:configure.ac:27: -1- AC_SUBST_TRACE([AMDEP_FALSE])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^AMDEP_FALSE$])
-m4trace:configure.ac:27: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE])
-m4trace:configure.ac:27: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE])
-m4trace:configure.ac:27: -1- AC_SUBST([AMDEPBACKSLASH])
-m4trace:configure.ac:27: -1- AC_SUBST_TRACE([AMDEPBACKSLASH])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^AMDEPBACKSLASH$])
-m4trace:configure.ac:27: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])
-m4trace:configure.ac:27: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type])
-m4trace:configure.ac:27: -1- AC_SUBST_TRACE([CCDEPMODE])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^CCDEPMODE$])
-m4trace:configure.ac:27: -1- AM_CONDITIONAL([am__fastdepCC], [
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CC_dependencies_compiler_type" = gcc3])
-m4trace:configure.ac:27: -1- AC_SUBST([am__fastdepCC_TRUE])
-m4trace:configure.ac:27: -1- AC_SUBST_TRACE([am__fastdepCC_TRUE])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^am__fastdepCC_TRUE$])
-m4trace:configure.ac:27: -1- AC_SUBST([am__fastdepCC_FALSE])
-m4trace:configure.ac:27: -1- AC_SUBST_TRACE([am__fastdepCC_FALSE])
-m4trace:configure.ac:27: -1- m4_pattern_allow([^am__fastdepCC_FALSE$])
-m4trace:configure.ac:27: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE])
-m4trace:configure.ac:27: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE])
-m4trace:configure.ac:28: -1- AC_SUBST([CXX])
-m4trace:configure.ac:28: -1- AC_SUBST_TRACE([CXX])
-m4trace:configure.ac:28: -1- m4_pattern_allow([^CXX$])
-m4trace:configure.ac:28: -1- AC_SUBST([CXXFLAGS])
-m4trace:configure.ac:28: -1- AC_SUBST_TRACE([CXXFLAGS])
-m4trace:configure.ac:28: -1- m4_pattern_allow([^CXXFLAGS$])
-m4trace:configure.ac:28: -1- AC_SUBST([LDFLAGS])
-m4trace:configure.ac:28: -1- AC_SUBST_TRACE([LDFLAGS])
-m4trace:configure.ac:28: -1- m4_pattern_allow([^LDFLAGS$])
-m4trace:configure.ac:28: -1- AC_SUBST([LIBS])
-m4trace:configure.ac:28: -1- AC_SUBST_TRACE([LIBS])
-m4trace:configure.ac:28: -1- m4_pattern_allow([^LIBS$])
-m4trace:configure.ac:28: -1- AC_SUBST([CPPFLAGS])
-m4trace:configure.ac:28: -1- AC_SUBST_TRACE([CPPFLAGS])
-m4trace:configure.ac:28: -1- m4_pattern_allow([^CPPFLAGS$])
-m4trace:configure.ac:28: -1- AC_SUBST([CXX])
-m4trace:configure.ac:28: -1- AC_SUBST_TRACE([CXX])
-m4trace:configure.ac:28: -1- m4_pattern_allow([^CXX$])
-m4trace:configure.ac:28: -1- AC_SUBST([ac_ct_CXX])
-m4trace:configure.ac:28: -1- AC_SUBST_TRACE([ac_ct_CXX])
-m4trace:configure.ac:28: -1- m4_pattern_allow([^ac_ct_CXX$])
-m4trace:configure.ac:28: -1- AC_SUBST([CXXDEPMODE], [depmode=$am_cv_CXX_dependencies_compiler_type])
-m4trace:configure.ac:28: -1- AC_SUBST_TRACE([CXXDEPMODE])
-m4trace:configure.ac:28: -1- m4_pattern_allow([^CXXDEPMODE$])
-m4trace:configure.ac:28: -1- AM_CONDITIONAL([am__fastdepCXX], [
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CXX_dependencies_compiler_type" = gcc3])
-m4trace:configure.ac:28: -1- AC_SUBST([am__fastdepCXX_TRUE])
-m4trace:configure.ac:28: -1- AC_SUBST_TRACE([am__fastdepCXX_TRUE])
-m4trace:configure.ac:28: -1- m4_pattern_allow([^am__fastdepCXX_TRUE$])
-m4trace:configure.ac:28: -1- AC_SUBST([am__fastdepCXX_FALSE])
-m4trace:configure.ac:28: -1- AC_SUBST_TRACE([am__fastdepCXX_FALSE])
-m4trace:configure.ac:28: -1- m4_pattern_allow([^am__fastdepCXX_FALSE$])
-m4trace:configure.ac:28: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_TRUE])
-m4trace:configure.ac:28: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_FALSE])
-m4trace:configure.ac:31: -1- _m4_warn([obsolete], [The macro `AC_LIBTOOL_WIN32_DLL' is obsolete.
-You should run autoupdate.], [config/ltoptions.m4:145: AC_LIBTOOL_WIN32_DLL is expanded from...
-configure.ac:31: the top level])
-m4trace:configure.ac:31: -1- AC_CANONICAL_HOST
-m4trace:configure.ac:31: -1- AC_CANONICAL_BUILD
-m4trace:configure.ac:31: -1- AC_REQUIRE_AUX_FILE([config.sub])
-m4trace:configure.ac:31: -1- AC_REQUIRE_AUX_FILE([config.guess])
-m4trace:configure.ac:31: -1- AC_SUBST([build], [$ac_cv_build])
-m4trace:configure.ac:31: -1- AC_SUBST_TRACE([build])
-m4trace:configure.ac:31: -1- m4_pattern_allow([^build$])
-m4trace:configure.ac:31: -1- AC_SUBST([build_cpu], [$[1]])
-m4trace:configure.ac:31: -1- AC_SUBST_TRACE([build_cpu])
-m4trace:configure.ac:31: -1- m4_pattern_allow([^build_cpu$])
-m4trace:configure.ac:31: -1- AC_SUBST([build_vendor], [$[2]])
-m4trace:configure.ac:31: -1- AC_SUBST_TRACE([build_vendor])
-m4trace:configure.ac:31: -1- m4_pattern_allow([^build_vendor$])
-m4trace:configure.ac:31: -1- AC_SUBST([build_os])
-m4trace:configure.ac:31: -1- AC_SUBST_TRACE([build_os])
-m4trace:configure.ac:31: -1- m4_pattern_allow([^build_os$])
-m4trace:configure.ac:31: -1- AC_SUBST([host], [$ac_cv_host])
-m4trace:configure.ac:31: -1- AC_SUBST_TRACE([host])
-m4trace:configure.ac:31: -1- m4_pattern_allow([^host$])
-m4trace:configure.ac:31: -1- AC_SUBST([host_cpu], [$[1]])
-m4trace:configure.ac:31: -1- AC_SUBST_TRACE([host_cpu])
-m4trace:configure.ac:31: -1- m4_pattern_allow([^host_cpu$])
-m4trace:configure.ac:31: -1- AC_SUBST([host_vendor], [$[2]])
-m4trace:configure.ac:31: -1- AC_SUBST_TRACE([host_vendor])
-m4trace:configure.ac:31: -1- m4_pattern_allow([^host_vendor$])
-m4trace:configure.ac:31: -1- AC_SUBST([host_os])
-m4trace:configure.ac:31: -1- AC_SUBST_TRACE([host_os])
-m4trace:configure.ac:31: -1- m4_pattern_allow([^host_os$])
-m4trace:configure.ac:31: -1- AC_SUBST([AS])
-m4trace:configure.ac:31: -1- AC_SUBST_TRACE([AS])
-m4trace:configure.ac:31: -1- m4_pattern_allow([^AS$])
-m4trace:configure.ac:31: -1- AC_SUBST([DLLTOOL])
-m4trace:configure.ac:31: -1- AC_SUBST_TRACE([DLLTOOL])
-m4trace:configure.ac:31: -1- m4_pattern_allow([^DLLTOOL$])
-m4trace:configure.ac:31: -1- AC_SUBST([OBJDUMP])
-m4trace:configure.ac:31: -1- AC_SUBST_TRACE([OBJDUMP])
-m4trace:configure.ac:31: -1- m4_pattern_allow([^OBJDUMP$])
-m4trace:configure.ac:31: -1- _m4_warn([obsolete], [AC_LIBTOOL_WIN32_DLL: Remove this warning and the call to _LT_SET_OPTION when you
-put the `win32-dll' option into LT_INIT's first parameter.], [config/ltoptions.m4:145: AC_LIBTOOL_WIN32_DLL is expanded from...
-configure.ac:31: the top level])
-m4trace:configure.ac:32: -1- _m4_warn([obsolete], [The macro `AC_LIBTOOL_DLOPEN' is obsolete.
-You should run autoupdate.], [config/ltoptions.m4:110: AC_LIBTOOL_DLOPEN is expanded from...
-configure.ac:32: the top level])
-m4trace:configure.ac:32: -1- _m4_warn([obsolete], [AC_LIBTOOL_DLOPEN: Remove this warning and the call to _LT_SET_OPTION when you
-put the `dlopen' option into LT_INIT's first parameter.], [config/ltoptions.m4:110: AC_LIBTOOL_DLOPEN is expanded from...
-configure.ac:32: the top level])
-m4trace:configure.ac:33: -1- AC_PROG_LIBTOOL
-m4trace:configure.ac:33: -1- _m4_warn([obsolete], [The macro `AC_PROG_LIBTOOL' is obsolete.
-You should run autoupdate.], [config/libtool.m4:102: AC_PROG_LIBTOOL is expanded from...
-configure.ac:33: the top level])
-m4trace:configure.ac:33: -1- LT_INIT
-m4trace:configure.ac:33: -1- m4_pattern_forbid([^_?LT_[A-Z_]+$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])
-m4trace:configure.ac:33: -1- AC_REQUIRE_AUX_FILE([ltmain.sh])
-m4trace:configure.ac:33: -1- AC_SUBST([LIBTOOL])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([LIBTOOL])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^LIBTOOL$])
-m4trace:configure.ac:33: -1- AC_SUBST([SED])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([SED])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^SED$])
-m4trace:configure.ac:33: -1- AC_SUBST([GREP])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([GREP])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^GREP$])
-m4trace:configure.ac:33: -1- AC_SUBST([EGREP])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([EGREP])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^EGREP$])
-m4trace:configure.ac:33: -1- AC_SUBST([FGREP])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([FGREP])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^FGREP$])
-m4trace:configure.ac:33: -1- AC_SUBST([GREP])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([GREP])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^GREP$])
-m4trace:configure.ac:33: -1- AC_SUBST([LD])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([LD])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^LD$])
-m4trace:configure.ac:33: -1- AC_SUBST([DUMPBIN])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([DUMPBIN])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^DUMPBIN$])
-m4trace:configure.ac:33: -1- AC_SUBST([ac_ct_DUMPBIN])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([ac_ct_DUMPBIN])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^ac_ct_DUMPBIN$])
-m4trace:configure.ac:33: -1- AC_SUBST([DUMPBIN])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([DUMPBIN])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^DUMPBIN$])
-m4trace:configure.ac:33: -1- AC_SUBST([NM])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([NM])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^NM$])
-m4trace:configure.ac:33: -1- AC_SUBST([LN_S], [$as_ln_s])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([LN_S])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^LN_S$])
-m4trace:configure.ac:33: -1- AC_SUBST([OBJDUMP])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([OBJDUMP])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^OBJDUMP$])
-m4trace:configure.ac:33: -1- AC_SUBST([OBJDUMP])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([OBJDUMP])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^OBJDUMP$])
-m4trace:configure.ac:33: -1- AC_SUBST([AR])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([AR])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^AR$])
-m4trace:configure.ac:33: -1- AC_SUBST([STRIP])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([STRIP])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^STRIP$])
-m4trace:configure.ac:33: -1- AC_SUBST([RANLIB])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([RANLIB])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^RANLIB$])
-m4trace:configure.ac:33: -1- m4_pattern_allow([LT_OBJDIR])
-m4trace:configure.ac:33: -1- AC_DEFINE_TRACE_LITERAL([LT_OBJDIR])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^LT_OBJDIR$])
-m4trace:configure.ac:33: -1- AH_OUTPUT([LT_OBJDIR], [/* Define to the sub-directory in which libtool stores uninstalled libraries.
-   */
-@%:@undef LT_OBJDIR])
-m4trace:configure.ac:33: -1- AC_SUBST([lt_ECHO])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([lt_ECHO])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^lt_ECHO$])
-m4trace:configure.ac:33: -1- LT_SUPPORTED_TAG([CC])
-m4trace:configure.ac:33: -1- AC_SUBST([DSYMUTIL])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([DSYMUTIL])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^DSYMUTIL$])
-m4trace:configure.ac:33: -1- AC_SUBST([NMEDIT])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([NMEDIT])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^NMEDIT$])
-m4trace:configure.ac:33: -1- AC_SUBST([LIPO])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([LIPO])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^LIPO$])
-m4trace:configure.ac:33: -1- AC_SUBST([OTOOL])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([OTOOL])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^OTOOL$])
-m4trace:configure.ac:33: -1- AC_SUBST([OTOOL64])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([OTOOL64])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^OTOOL64$])
-m4trace:configure.ac:33: -1- AH_OUTPUT([HAVE_DLFCN_H], [/* Define to 1 if you have the <dlfcn.h> header file. */
-@%:@undef HAVE_DLFCN_H])
-m4trace:configure.ac:33: -1- AC_SUBST([CPP])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([CPP])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^CPP$])
-m4trace:configure.ac:33: -1- AC_SUBST([CPPFLAGS])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([CPPFLAGS])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^CPPFLAGS$])
-m4trace:configure.ac:33: -1- AC_SUBST([CPP])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([CPP])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^CPP$])
-m4trace:configure.ac:33: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^STDC_HEADERS$])
-m4trace:configure.ac:33: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */
-@%:@undef STDC_HEADERS])
-m4trace:configure.ac:33: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the <sys/types.h> header file. */
-@%:@undef HAVE_SYS_TYPES_H])
-m4trace:configure.ac:33: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */
-@%:@undef HAVE_SYS_STAT_H])
-m4trace:configure.ac:33: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
-@%:@undef HAVE_STDLIB_H])
-m4trace:configure.ac:33: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
-@%:@undef HAVE_STRING_H])
-m4trace:configure.ac:33: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the <memory.h> header file. */
-@%:@undef HAVE_MEMORY_H])
-m4trace:configure.ac:33: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */
-@%:@undef HAVE_STRINGS_H])
-m4trace:configure.ac:33: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
-@%:@undef HAVE_INTTYPES_H])
-m4trace:configure.ac:33: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
-@%:@undef HAVE_STDINT_H])
-m4trace:configure.ac:33: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
-@%:@undef HAVE_UNISTD_H])
-m4trace:configure.ac:33: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DLFCN_H])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^HAVE_DLFCN_H$])
-m4trace:configure.ac:33: -1- LT_SUPPORTED_TAG([CXX])
-m4trace:configure.ac:33: -1- AC_SUBST([CXX])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([CXX])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^CXX$])
-m4trace:configure.ac:33: -1- AC_SUBST([CXXFLAGS])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([CXXFLAGS])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^CXXFLAGS$])
-m4trace:configure.ac:33: -1- AC_SUBST([LDFLAGS])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([LDFLAGS])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^LDFLAGS$])
-m4trace:configure.ac:33: -1- AC_SUBST([LIBS])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([LIBS])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^LIBS$])
-m4trace:configure.ac:33: -1- AC_SUBST([CPPFLAGS])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([CPPFLAGS])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^CPPFLAGS$])
-m4trace:configure.ac:33: -1- AC_SUBST([CXX])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([CXX])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^CXX$])
-m4trace:configure.ac:33: -1- AC_SUBST([ac_ct_CXX])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([ac_ct_CXX])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^ac_ct_CXX$])
-m4trace:configure.ac:33: -1- AC_SUBST([CXXDEPMODE], [depmode=$am_cv_CXX_dependencies_compiler_type])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([CXXDEPMODE])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^CXXDEPMODE$])
-m4trace:configure.ac:33: -1- AM_CONDITIONAL([am__fastdepCXX], [
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CXX_dependencies_compiler_type" = gcc3])
-m4trace:configure.ac:33: -1- AC_SUBST([am__fastdepCXX_TRUE])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([am__fastdepCXX_TRUE])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^am__fastdepCXX_TRUE$])
-m4trace:configure.ac:33: -1- AC_SUBST([am__fastdepCXX_FALSE])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([am__fastdepCXX_FALSE])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^am__fastdepCXX_FALSE$])
-m4trace:configure.ac:33: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_TRUE])
-m4trace:configure.ac:33: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_FALSE])
-m4trace:configure.ac:33: -1- AC_SUBST([CXXCPP])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([CXXCPP])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^CXXCPP$])
-m4trace:configure.ac:33: -1- AC_SUBST([CPPFLAGS])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([CPPFLAGS])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^CPPFLAGS$])
-m4trace:configure.ac:33: -1- AC_SUBST([CXXCPP])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([CXXCPP])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^CXXCPP$])
-m4trace:configure.ac:33: -1- AC_SUBST([LD])
-m4trace:configure.ac:33: -1- AC_SUBST_TRACE([LD])
-m4trace:configure.ac:33: -1- m4_pattern_allow([^LD$])
-m4trace:configure.ac:44: -1- AC_DEFINE_TRACE_LITERAL([MGL_USE_DOUBLE])
-m4trace:configure.ac:44: -1- m4_pattern_allow([^MGL_USE_DOUBLE$])
-m4trace:configure.ac:44: -1- AH_OUTPUT([MGL_USE_DOUBLE], [/* This define enables double precision in MathGL */
-@%:@undef MGL_USE_DOUBLE])
-m4trace:configure.ac:46: -1- AC_DEFINE_TRACE_LITERAL([MGL_USE_DOUBLE])
-m4trace:configure.ac:46: -1- m4_pattern_allow([^MGL_USE_DOUBLE$])
-m4trace:configure.ac:46: -1- AH_OUTPUT([MGL_USE_DOUBLE], [/* This define enables double precision in MathGL */
-@%:@undef MGL_USE_DOUBLE])
-m4trace:configure.ac:72: -1- AC_SUBST([PTHREAD_FLAGS])
-m4trace:configure.ac:72: -1- AC_SUBST_TRACE([PTHREAD_FLAGS])
-m4trace:configure.ac:72: -1- m4_pattern_allow([^PTHREAD_FLAGS$])
-m4trace:configure.ac:75: -1- AC_SUBST([PTHREAD_LIBS])
-m4trace:configure.ac:75: -1- AC_SUBST_TRACE([PTHREAD_LIBS])
-m4trace:configure.ac:75: -1- m4_pattern_allow([^PTHREAD_LIBS$])
-m4trace:configure.ac:77: -1- AM_CONDITIONAL([USE_PTHREAD], [test x$pthread = xtrue])
-m4trace:configure.ac:77: -1- AC_SUBST([USE_PTHREAD_TRUE])
-m4trace:configure.ac:77: -1- AC_SUBST_TRACE([USE_PTHREAD_TRUE])
-m4trace:configure.ac:77: -1- m4_pattern_allow([^USE_PTHREAD_TRUE$])
-m4trace:configure.ac:77: -1- AC_SUBST([USE_PTHREAD_FALSE])
-m4trace:configure.ac:77: -1- AC_SUBST_TRACE([USE_PTHREAD_FALSE])
-m4trace:configure.ac:77: -1- m4_pattern_allow([^USE_PTHREAD_FALSE$])
-m4trace:configure.ac:77: -1- _AM_SUBST_NOTMAKE([USE_PTHREAD_TRUE])
-m4trace:configure.ac:77: -1- _AM_SUBST_NOTMAKE([USE_PTHREAD_FALSE])
-m4trace:configure.ac:89: -1- AC_SUBST([GSL_FLAGS])
-m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GSL_FLAGS])
-m4trace:configure.ac:89: -1- m4_pattern_allow([^GSL_FLAGS$])
-m4trace:configure.ac:90: -1- AC_SUBST([GSL_LIBS])
-m4trace:configure.ac:90: -1- AC_SUBST_TRACE([GSL_LIBS])
-m4trace:configure.ac:90: -1- m4_pattern_allow([^GSL_LIBS$])
-m4trace:configure.ac:100: -1- AC_SUBST([GSL_FLAGS])
-m4trace:configure.ac:100: -1- AC_SUBST_TRACE([GSL_FLAGS])
-m4trace:configure.ac:100: -1- m4_pattern_allow([^GSL_FLAGS$])
-m4trace:configure.ac:102: -1- AM_CONDITIONAL([USE_GSL], [test x$test_gsl = xtrue])
-m4trace:configure.ac:102: -1- AC_SUBST([USE_GSL_TRUE])
-m4trace:configure.ac:102: -1- AC_SUBST_TRACE([USE_GSL_TRUE])
-m4trace:configure.ac:102: -1- m4_pattern_allow([^USE_GSL_TRUE$])
-m4trace:configure.ac:102: -1- AC_SUBST([USE_GSL_FALSE])
-m4trace:configure.ac:102: -1- AC_SUBST_TRACE([USE_GSL_FALSE])
-m4trace:configure.ac:102: -1- m4_pattern_allow([^USE_GSL_FALSE$])
-m4trace:configure.ac:102: -1- _AM_SUBST_NOTMAKE([USE_GSL_TRUE])
-m4trace:configure.ac:102: -1- _AM_SUBST_NOTMAKE([USE_GSL_FALSE])
-m4trace:configure.ac:115: -1- AC_SUBST([GL_LIBS])
-m4trace:configure.ac:115: -1- AC_SUBST_TRACE([GL_LIBS])
-m4trace:configure.ac:115: -1- m4_pattern_allow([^GL_LIBS$])
-m4trace:configure.ac:118: -1- AC_SUBST([GLUT_LIBS])
-m4trace:configure.ac:118: -1- AC_SUBST_TRACE([GLUT_LIBS])
-m4trace:configure.ac:118: -1- m4_pattern_allow([^GLUT_LIBS$])
-m4trace:configure.ac:125: -1- AC_SUBST([GL_LIBS])
-m4trace:configure.ac:125: -1- AC_SUBST_TRACE([GL_LIBS])
-m4trace:configure.ac:125: -1- m4_pattern_allow([^GL_LIBS$])
-m4trace:configure.ac:128: -1- AC_SUBST([GLUT_FLAGS])
-m4trace:configure.ac:128: -1- AC_SUBST_TRACE([GLUT_FLAGS])
-m4trace:configure.ac:128: -1- m4_pattern_allow([^GLUT_FLAGS$])
-m4trace:configure.ac:130: -1- AC_SUBST([GLUT_LIBS])
-m4trace:configure.ac:130: -1- AC_SUBST_TRACE([GLUT_LIBS])
-m4trace:configure.ac:130: -1- m4_pattern_allow([^GLUT_LIBS$])
-m4trace:configure.ac:137: -1- AC_SUBST([GL_LIBS])
-m4trace:configure.ac:137: -1- AC_SUBST_TRACE([GL_LIBS])
-m4trace:configure.ac:137: -1- m4_pattern_allow([^GL_LIBS$])
-m4trace:configure.ac:140: -1- AC_SUBST([GLUT_FLAGS])
-m4trace:configure.ac:140: -1- AC_SUBST_TRACE([GLUT_FLAGS])
-m4trace:configure.ac:140: -1- m4_pattern_allow([^GLUT_FLAGS$])
-m4trace:configure.ac:142: -1- AC_SUBST([GLUT_LIBS])
-m4trace:configure.ac:142: -1- AC_SUBST_TRACE([GLUT_LIBS])
-m4trace:configure.ac:142: -1- m4_pattern_allow([^GLUT_LIBS$])
-m4trace:configure.ac:147: -1- AM_CONDITIONAL([USE_GLUT], [(test x$all = xtrue || test x$glut = xtrue)])
-m4trace:configure.ac:147: -1- AC_SUBST([USE_GLUT_TRUE])
-m4trace:configure.ac:147: -1- AC_SUBST_TRACE([USE_GLUT_TRUE])
-m4trace:configure.ac:147: -1- m4_pattern_allow([^USE_GLUT_TRUE$])
-m4trace:configure.ac:147: -1- AC_SUBST([USE_GLUT_FALSE])
-m4trace:configure.ac:147: -1- AC_SUBST_TRACE([USE_GLUT_FALSE])
-m4trace:configure.ac:147: -1- m4_pattern_allow([^USE_GLUT_FALSE$])
-m4trace:configure.ac:147: -1- _AM_SUBST_NOTMAKE([USE_GLUT_TRUE])
-m4trace:configure.ac:147: -1- _AM_SUBST_NOTMAKE([USE_GLUT_FALSE])
-m4trace:configure.ac:177: -1- AC_SUBST([HDF5_FLAGS])
-m4trace:configure.ac:177: -1- AC_SUBST_TRACE([HDF5_FLAGS])
-m4trace:configure.ac:177: -1- m4_pattern_allow([^HDF5_FLAGS$])
-m4trace:configure.ac:179: -1- AC_SUBST([HDF5_LIBS])
-m4trace:configure.ac:179: -1- AC_SUBST_TRACE([HDF5_LIBS])
-m4trace:configure.ac:179: -1- m4_pattern_allow([^HDF5_LIBS$])
-m4trace:configure.ac:181: -1- AM_CONDITIONAL([USE_HDF5], [(test x$all = xtrue || test x$hdf5 = xtrue || test x$hdf5_18 = xtrue)])
-m4trace:configure.ac:181: -1- AC_SUBST([USE_HDF5_TRUE])
-m4trace:configure.ac:181: -1- AC_SUBST_TRACE([USE_HDF5_TRUE])
-m4trace:configure.ac:181: -1- m4_pattern_allow([^USE_HDF5_TRUE$])
-m4trace:configure.ac:181: -1- AC_SUBST([USE_HDF5_FALSE])
-m4trace:configure.ac:181: -1- AC_SUBST_TRACE([USE_HDF5_FALSE])
-m4trace:configure.ac:181: -1- m4_pattern_allow([^USE_HDF5_FALSE$])
-m4trace:configure.ac:181: -1- _AM_SUBST_NOTMAKE([USE_HDF5_TRUE])
-m4trace:configure.ac:181: -1- _AM_SUBST_NOTMAKE([USE_HDF5_FALSE])
-m4trace:configure.ac:193: -1- AC_SUBST([HDF4_FLAGS])
-m4trace:configure.ac:193: -1- AC_SUBST_TRACE([HDF4_FLAGS])
-m4trace:configure.ac:193: -1- m4_pattern_allow([^HDF4_FLAGS$])
-m4trace:configure.ac:194: -1- AC_SUBST([HDF4_LIBS])
-m4trace:configure.ac:194: -1- AC_SUBST_TRACE([HDF4_LIBS])
-m4trace:configure.ac:194: -1- m4_pattern_allow([^HDF4_LIBS$])
-m4trace:configure.ac:196: -1- AM_CONDITIONAL([USE_HDF4], [(test x$all = xtrue || test x$hdf4 = xtrue)])
-m4trace:configure.ac:196: -1- AC_SUBST([USE_HDF4_TRUE])
-m4trace:configure.ac:196: -1- AC_SUBST_TRACE([USE_HDF4_TRUE])
-m4trace:configure.ac:196: -1- m4_pattern_allow([^USE_HDF4_TRUE$])
-m4trace:configure.ac:196: -1- AC_SUBST([USE_HDF4_FALSE])
-m4trace:configure.ac:196: -1- AC_SUBST_TRACE([USE_HDF4_FALSE])
-m4trace:configure.ac:196: -1- m4_pattern_allow([^USE_HDF4_FALSE$])
-m4trace:configure.ac:196: -1- _AM_SUBST_NOTMAKE([USE_HDF4_TRUE])
-m4trace:configure.ac:196: -1- _AM_SUBST_NOTMAKE([USE_HDF4_FALSE])
-m4trace:configure.ac:205: -1- AC_SUBST([GIF_FLAGS])
-m4trace:configure.ac:205: -1- AC_SUBST_TRACE([GIF_FLAGS])
-m4trace:configure.ac:205: -1- m4_pattern_allow([^GIF_FLAGS$])
-m4trace:configure.ac:208: -1- AC_SUBST([GIF_LIBS])
-m4trace:configure.ac:208: -1- AC_SUBST_TRACE([GIF_LIBS])
-m4trace:configure.ac:208: -1- m4_pattern_allow([^GIF_LIBS$])
-m4trace:configure.ac:210: -1- AM_CONDITIONAL([USE_GIF], [(test x$all = xtrue || test x$gif = xtrue)])
-m4trace:configure.ac:210: -1- AC_SUBST([USE_GIF_TRUE])
-m4trace:configure.ac:210: -1- AC_SUBST_TRACE([USE_GIF_TRUE])
-m4trace:configure.ac:210: -1- m4_pattern_allow([^USE_GIF_TRUE$])
-m4trace:configure.ac:210: -1- AC_SUBST([USE_GIF_FALSE])
-m4trace:configure.ac:210: -1- AC_SUBST_TRACE([USE_GIF_FALSE])
-m4trace:configure.ac:210: -1- m4_pattern_allow([^USE_GIF_FALSE$])
-m4trace:configure.ac:210: -1- _AM_SUBST_NOTMAKE([USE_GIF_TRUE])
-m4trace:configure.ac:210: -1- _AM_SUBST_NOTMAKE([USE_GIF_FALSE])
-m4trace:configure.ac:214: -1- AC_SUBST([PNG_LIBS])
-m4trace:configure.ac:214: -1- AC_SUBST_TRACE([PNG_LIBS])
-m4trace:configure.ac:214: -1- m4_pattern_allow([^PNG_LIBS$])
-m4trace:configure.ac:224: -1- AC_SUBST([JPEG_FLAGS])
-m4trace:configure.ac:224: -1- AC_SUBST_TRACE([JPEG_FLAGS])
-m4trace:configure.ac:224: -1- m4_pattern_allow([^JPEG_FLAGS$])
-m4trace:configure.ac:227: -1- AC_SUBST([JPEG_LIBS])
-m4trace:configure.ac:227: -1- AC_SUBST_TRACE([JPEG_LIBS])
-m4trace:configure.ac:227: -1- m4_pattern_allow([^JPEG_LIBS$])
-m4trace:configure.ac:229: -1- AM_CONDITIONAL([USE_JPEG], [(test x$all = xtrue || test x$jpeg = xtrue)])
-m4trace:configure.ac:229: -1- AC_SUBST([USE_JPEG_TRUE])
-m4trace:configure.ac:229: -1- AC_SUBST_TRACE([USE_JPEG_TRUE])
-m4trace:configure.ac:229: -1- m4_pattern_allow([^USE_JPEG_TRUE$])
-m4trace:configure.ac:229: -1- AC_SUBST([USE_JPEG_FALSE])
-m4trace:configure.ac:229: -1- AC_SUBST_TRACE([USE_JPEG_FALSE])
-m4trace:configure.ac:229: -1- m4_pattern_allow([^USE_JPEG_FALSE$])
-m4trace:configure.ac:229: -1- _AM_SUBST_NOTMAKE([USE_JPEG_TRUE])
-m4trace:configure.ac:229: -1- _AM_SUBST_NOTMAKE([USE_JPEG_FALSE])
-m4trace:configure.ac:240: -1- AC_SUBST([FLTK_FLAGS])
-m4trace:configure.ac:240: -1- AC_SUBST_TRACE([FLTK_FLAGS])
-m4trace:configure.ac:240: -1- m4_pattern_allow([^FLTK_FLAGS$])
-m4trace:configure.ac:241: -1- AC_SUBST([FLTK_LIBS])
-m4trace:configure.ac:241: -1- AC_SUBST_TRACE([FLTK_LIBS])
-m4trace:configure.ac:241: -1- m4_pattern_allow([^FLTK_LIBS$])
-m4trace:configure.ac:250: -1- AM_CONDITIONAL([USE_FLTK], [test x$test_fltk = xtrue])
-m4trace:configure.ac:250: -1- AC_SUBST([USE_FLTK_TRUE])
-m4trace:configure.ac:250: -1- AC_SUBST_TRACE([USE_FLTK_TRUE])
-m4trace:configure.ac:250: -1- m4_pattern_allow([^USE_FLTK_TRUE$])
-m4trace:configure.ac:250: -1- AC_SUBST([USE_FLTK_FALSE])
-m4trace:configure.ac:250: -1- AC_SUBST_TRACE([USE_FLTK_FALSE])
-m4trace:configure.ac:250: -1- m4_pattern_allow([^USE_FLTK_FALSE$])
-m4trace:configure.ac:250: -1- _AM_SUBST_NOTMAKE([USE_FLTK_TRUE])
-m4trace:configure.ac:250: -1- _AM_SUBST_NOTMAKE([USE_FLTK_FALSE])
-m4trace:configure.ac:262: -1- AC_SUBST([WX_FLAGS])
-m4trace:configure.ac:262: -1- AC_SUBST_TRACE([WX_FLAGS])
-m4trace:configure.ac:262: -1- m4_pattern_allow([^WX_FLAGS$])
-m4trace:configure.ac:263: -1- AC_SUBST([WX_LIBS])
-m4trace:configure.ac:263: -1- AC_SUBST_TRACE([WX_LIBS])
-m4trace:configure.ac:263: -1- m4_pattern_allow([^WX_LIBS$])
-m4trace:configure.ac:272: -1- AM_CONDITIONAL([USE_WX], [test x$test_wx = xtrue])
-m4trace:configure.ac:272: -1- AC_SUBST([USE_WX_TRUE])
-m4trace:configure.ac:272: -1- AC_SUBST_TRACE([USE_WX_TRUE])
-m4trace:configure.ac:272: -1- m4_pattern_allow([^USE_WX_TRUE$])
-m4trace:configure.ac:272: -1- AC_SUBST([USE_WX_FALSE])
-m4trace:configure.ac:272: -1- AC_SUBST_TRACE([USE_WX_FALSE])
-m4trace:configure.ac:272: -1- m4_pattern_allow([^USE_WX_FALSE$])
-m4trace:configure.ac:272: -1- _AM_SUBST_NOTMAKE([USE_WX_TRUE])
-m4trace:configure.ac:272: -1- _AM_SUBST_NOTMAKE([USE_WX_FALSE])
-m4trace:configure.ac:282: -1- AC_SUBST([QMAKE])
-m4trace:configure.ac:282: -1- AC_SUBST_TRACE([QMAKE])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^QMAKE$])
-m4trace:configure.ac:282: -1- AC_SUBST([QMAKE])
-m4trace:configure.ac:282: -1- AC_SUBST_TRACE([QMAKE])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^QMAKE$])
-m4trace:configure.ac:282: -1- AC_SUBST([MOC])
-m4trace:configure.ac:282: -1- AC_SUBST_TRACE([MOC])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^MOC$])
-m4trace:configure.ac:282: -1- AC_SUBST([MOC])
-m4trace:configure.ac:282: -1- AC_SUBST_TRACE([MOC])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^MOC$])
-m4trace:configure.ac:282: -1- AC_SUBST([UIC])
-m4trace:configure.ac:282: -1- AC_SUBST_TRACE([UIC])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^UIC$])
-m4trace:configure.ac:282: -1- AC_SUBST([UIC])
-m4trace:configure.ac:282: -1- AC_SUBST_TRACE([UIC])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^UIC$])
-m4trace:configure.ac:282: -1- AC_SUBST([RCC])
-m4trace:configure.ac:282: -1- AC_SUBST_TRACE([RCC])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^RCC$])
-m4trace:configure.ac:282: -1- AC_SUBST([RCC])
-m4trace:configure.ac:282: -1- AC_SUBST_TRACE([RCC])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^RCC$])
-m4trace:configure.ac:282: -1- AC_SUBST([QT_PATH])
-m4trace:configure.ac:282: -1- AC_SUBST_TRACE([QT_PATH])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^QT_PATH$])
-m4trace:configure.ac:282: -1- AC_SUBST([TMPDIR])
-m4trace:configure.ac:282: -1- AC_SUBST_TRACE([TMPDIR])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^TMPDIR$])
-m4trace:configure.ac:282: -1- AC_SUBST([QT_VERSION_MAJOR])
-m4trace:configure.ac:282: -1- AC_SUBST_TRACE([QT_VERSION_MAJOR])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^QT_VERSION_MAJOR$])
-m4trace:configure.ac:282: -1- AC_SUBST([QT_DEFINES], [$at_cv_env_QT_DEFINES])
-m4trace:configure.ac:282: -1- AC_SUBST_TRACE([QT_DEFINES])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^QT_DEFINES$])
-m4trace:configure.ac:282: -1- AC_SUBST([QT_CFLAGS], [$at_cv_env_QT_CFLAGS])
-m4trace:configure.ac:282: -1- AC_SUBST_TRACE([QT_CFLAGS])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^QT_CFLAGS$])
-m4trace:configure.ac:282: -1- AC_SUBST([QT_CXXFLAGS], [$at_cv_env_QT_CXXFLAGS])
-m4trace:configure.ac:282: -1- AC_SUBST_TRACE([QT_CXXFLAGS])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^QT_CXXFLAGS$])
-m4trace:configure.ac:282: -1- AC_SUBST([QT_INCPATH], [$at_cv_env_QT_INCPATH])
-m4trace:configure.ac:282: -1- AC_SUBST_TRACE([QT_INCPATH])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^QT_INCPATH$])
-m4trace:configure.ac:282: -1- AC_SUBST([QT_CPPFLAGS], ["$at_cv_env_QT_DEFINES $at_cv_env_QT_INCPATH"])
-m4trace:configure.ac:282: -1- AC_SUBST_TRACE([QT_CPPFLAGS])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^QT_CPPFLAGS$])
-m4trace:configure.ac:282: -1- AC_SUBST([QT_LFLAGS], [$at_cv_env_QT_LDFLAGS])
-m4trace:configure.ac:282: -1- AC_SUBST_TRACE([QT_LFLAGS])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^QT_LFLAGS$])
-m4trace:configure.ac:282: -1- AC_SUBST([QT_LDFLAGS], [$at_cv_env_QT_LDFLAGS])
-m4trace:configure.ac:282: -1- AC_SUBST_TRACE([QT_LDFLAGS])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^QT_LDFLAGS$])
-m4trace:configure.ac:282: -1- AC_SUBST([QT_LIBS], [$at_cv_env_QT_LIBS])
-m4trace:configure.ac:282: -1- AC_SUBST_TRACE([QT_LIBS])
-m4trace:configure.ac:282: -1- m4_pattern_allow([^QT_LIBS$])
-m4trace:configure.ac:283: -1- AC_SUBST([QT_VERSION], [$at_cv_QT_VERSION])
-m4trace:configure.ac:283: -1- AC_SUBST_TRACE([QT_VERSION])
-m4trace:configure.ac:283: -1- m4_pattern_allow([^QT_VERSION$])
-m4trace:configure.ac:286: -1- AM_CONDITIONAL([USE_QT], [test x$test_qt = xtrue])
-m4trace:configure.ac:286: -1- AC_SUBST([USE_QT_TRUE])
-m4trace:configure.ac:286: -1- AC_SUBST_TRACE([USE_QT_TRUE])
-m4trace:configure.ac:286: -1- m4_pattern_allow([^USE_QT_TRUE$])
-m4trace:configure.ac:286: -1- AC_SUBST([USE_QT_FALSE])
-m4trace:configure.ac:286: -1- AC_SUBST_TRACE([USE_QT_FALSE])
-m4trace:configure.ac:286: -1- m4_pattern_allow([^USE_QT_FALSE$])
-m4trace:configure.ac:286: -1- _AM_SUBST_NOTMAKE([USE_QT_TRUE])
-m4trace:configure.ac:286: -1- _AM_SUBST_NOTMAKE([USE_QT_FALSE])
-m4trace:configure.ac:296: -1- AC_SUBST([PYTHON_HEADERS])
-m4trace:configure.ac:296: -1- AC_SUBST_TRACE([PYTHON_HEADERS])
-m4trace:configure.ac:296: -1- m4_pattern_allow([^PYTHON_HEADERS$])
-m4trace:configure.ac:297: -1- AC_SUBST([HAVE_SWIG])
-m4trace:configure.ac:297: -1- AC_SUBST_TRACE([HAVE_SWIG])
-m4trace:configure.ac:297: -1- m4_pattern_allow([^HAVE_SWIG$])
-m4trace:configure.ac:300: -1- AC_SUBST([PYTHON])
-m4trace:configure.ac:300: -1- AC_SUBST_TRACE([PYTHON])
-m4trace:configure.ac:300: -1- m4_pattern_allow([^PYTHON$])
-m4trace:configure.ac:300: -1- AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
-m4trace:configure.ac:300: -1- AC_SUBST_TRACE([PYTHON_VERSION])
-m4trace:configure.ac:300: -1- m4_pattern_allow([^PYTHON_VERSION$])
-m4trace:configure.ac:300: -1- AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
-m4trace:configure.ac:300: -1- AC_SUBST_TRACE([PYTHON_PREFIX])
-m4trace:configure.ac:300: -1- m4_pattern_allow([^PYTHON_PREFIX$])
-m4trace:configure.ac:300: -1- AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
-m4trace:configure.ac:300: -1- AC_SUBST_TRACE([PYTHON_EXEC_PREFIX])
-m4trace:configure.ac:300: -1- m4_pattern_allow([^PYTHON_EXEC_PREFIX$])
-m4trace:configure.ac:300: -1- AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
-m4trace:configure.ac:300: -1- AC_SUBST_TRACE([PYTHON_PLATFORM])
-m4trace:configure.ac:300: -1- m4_pattern_allow([^PYTHON_PLATFORM$])
-m4trace:configure.ac:300: -1- AC_SUBST([pythondir], [$am_cv_python_pythondir])
-m4trace:configure.ac:300: -1- AC_SUBST_TRACE([pythondir])
-m4trace:configure.ac:300: -1- m4_pattern_allow([^pythondir$])
-m4trace:configure.ac:300: -1- AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
-m4trace:configure.ac:300: -1- AC_SUBST_TRACE([pkgpythondir])
-m4trace:configure.ac:300: -1- m4_pattern_allow([^pkgpythondir$])
-m4trace:configure.ac:300: -1- AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
-m4trace:configure.ac:300: -1- AC_SUBST_TRACE([pyexecdir])
-m4trace:configure.ac:300: -1- m4_pattern_allow([^pyexecdir$])
-m4trace:configure.ac:300: -1- AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
-m4trace:configure.ac:300: -1- AC_SUBST_TRACE([pkgpyexecdir])
-m4trace:configure.ac:300: -1- m4_pattern_allow([^pkgpyexecdir$])
-m4trace:configure.ac:306: -1- AM_CONDITIONAL([USE_PYTHON], [test x$test_python = xtrue ])
-m4trace:configure.ac:306: -1- AC_SUBST([USE_PYTHON_TRUE])
-m4trace:configure.ac:306: -1- AC_SUBST_TRACE([USE_PYTHON_TRUE])
-m4trace:configure.ac:306: -1- m4_pattern_allow([^USE_PYTHON_TRUE$])
-m4trace:configure.ac:306: -1- AC_SUBST([USE_PYTHON_FALSE])
-m4trace:configure.ac:306: -1- AC_SUBST_TRACE([USE_PYTHON_FALSE])
-m4trace:configure.ac:306: -1- m4_pattern_allow([^USE_PYTHON_FALSE$])
-m4trace:configure.ac:306: -1- _AM_SUBST_NOTMAKE([USE_PYTHON_TRUE])
-m4trace:configure.ac:306: -1- _AM_SUBST_NOTMAKE([USE_PYTHON_FALSE])
-m4trace:configure.ac:316: -1- AC_SUBST([OCTAVE])
-m4trace:configure.ac:316: -1- AC_SUBST_TRACE([OCTAVE])
-m4trace:configure.ac:316: -1- m4_pattern_allow([^OCTAVE$])
-m4trace:configure.ac:322: -1- AC_SUBST([OCTAVE_ARCH], [$OCTAVE_ARCH])
-m4trace:configure.ac:322: -1- AC_SUBST_TRACE([OCTAVE_ARCH])
-m4trace:configure.ac:322: -1- m4_pattern_allow([^OCTAVE_ARCH$])
-m4trace:configure.ac:323: -1- AC_SUBST([OCTAVE_INCFLAGS], [$OCTAVE_INCFLAGS])
-m4trace:configure.ac:323: -1- AC_SUBST_TRACE([OCTAVE_INCFLAGS])
-m4trace:configure.ac:323: -1- m4_pattern_allow([^OCTAVE_INCFLAGS$])
-m4trace:configure.ac:326: -1- AM_CONDITIONAL([USE_OCTAVE], [test x$test_octave = xtrue ])
-m4trace:configure.ac:326: -1- AC_SUBST([USE_OCTAVE_TRUE])
-m4trace:configure.ac:326: -1- AC_SUBST_TRACE([USE_OCTAVE_TRUE])
-m4trace:configure.ac:326: -1- m4_pattern_allow([^USE_OCTAVE_TRUE$])
-m4trace:configure.ac:326: -1- AC_SUBST([USE_OCTAVE_FALSE])
-m4trace:configure.ac:326: -1- AC_SUBST_TRACE([USE_OCTAVE_FALSE])
-m4trace:configure.ac:326: -1- m4_pattern_allow([^USE_OCTAVE_FALSE$])
-m4trace:configure.ac:326: -1- _AM_SUBST_NOTMAKE([USE_OCTAVE_TRUE])
-m4trace:configure.ac:326: -1- _AM_SUBST_NOTMAKE([USE_OCTAVE_FALSE])
-m4trace:configure.ac:335: -1- AM_CONDITIONAL([USE_TESTIO], [test x$testio = xtrue ])
-m4trace:configure.ac:335: -1- AC_SUBST([USE_TESTIO_TRUE])
-m4trace:configure.ac:335: -1- AC_SUBST_TRACE([USE_TESTIO_TRUE])
-m4trace:configure.ac:335: -1- m4_pattern_allow([^USE_TESTIO_TRUE$])
-m4trace:configure.ac:335: -1- AC_SUBST([USE_TESTIO_FALSE])
-m4trace:configure.ac:335: -1- AC_SUBST_TRACE([USE_TESTIO_FALSE])
-m4trace:configure.ac:335: -1- m4_pattern_allow([^USE_TESTIO_FALSE$])
-m4trace:configure.ac:335: -1- _AM_SUBST_NOTMAKE([USE_TESTIO_TRUE])
-m4trace:configure.ac:335: -1- _AM_SUBST_NOTMAKE([USE_TESTIO_FALSE])
-m4trace:configure.ac:345: -1- AC_CONFIG_FILES([texinfo/Makefile texinfo/png/Makefile])
-m4trace:configure.ac:347: -1- AM_CONDITIONAL([USE_DOCS], [(test x$docs = xtrue || test x$all = xtrue) ])
-m4trace:configure.ac:347: -1- AC_SUBST([USE_DOCS_TRUE])
-m4trace:configure.ac:347: -1- AC_SUBST_TRACE([USE_DOCS_TRUE])
-m4trace:configure.ac:347: -1- m4_pattern_allow([^USE_DOCS_TRUE$])
-m4trace:configure.ac:347: -1- AC_SUBST([USE_DOCS_FALSE])
-m4trace:configure.ac:347: -1- AC_SUBST_TRACE([USE_DOCS_FALSE])
-m4trace:configure.ac:347: -1- m4_pattern_allow([^USE_DOCS_FALSE$])
-m4trace:configure.ac:347: -1- _AM_SUBST_NOTMAKE([USE_DOCS_TRUE])
-m4trace:configure.ac:347: -1- _AM_SUBST_NOTMAKE([USE_DOCS_FALSE])
-m4trace:configure.ac:350: -1- AC_SUBST([AM_CXXFLAGS])
-m4trace:configure.ac:350: -1- AC_SUBST_TRACE([AM_CXXFLAGS])
-m4trace:configure.ac:350: -1- m4_pattern_allow([^AM_CXXFLAGS$])
-m4trace:configure.ac:352: -1- AC_CONFIG_FILES([
-Makefile
-mgl/Makefile
-examples/Makefile
-include/Makefile
-lang/Makefile
-utils/Makefile
-widgets/Makefile
-])
-m4trace:configure.ac:361: -1- AC_SUBST([LIB@&t at OBJS], [$ac_libobjs])
-m4trace:configure.ac:361: -1- AC_SUBST_TRACE([LIB@&t at OBJS])
-m4trace:configure.ac:361: -1- m4_pattern_allow([^LIB@&t at OBJS$])
-m4trace:configure.ac:361: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
-m4trace:configure.ac:361: -1- AC_SUBST_TRACE([LTLIBOBJS])
-m4trace:configure.ac:361: -1- m4_pattern_allow([^LTLIBOBJS$])
-m4trace:configure.ac:361: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])
-m4trace:configure.ac:361: -1- AC_SUBST([am__EXEEXT_TRUE])
-m4trace:configure.ac:361: -1- AC_SUBST_TRACE([am__EXEEXT_TRUE])
-m4trace:configure.ac:361: -1- m4_pattern_allow([^am__EXEEXT_TRUE$])
-m4trace:configure.ac:361: -1- AC_SUBST([am__EXEEXT_FALSE])
-m4trace:configure.ac:361: -1- AC_SUBST_TRACE([am__EXEEXT_FALSE])
-m4trace:configure.ac:361: -1- m4_pattern_allow([^am__EXEEXT_FALSE$])
-m4trace:configure.ac:361: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE])
-m4trace:configure.ac:361: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE])
-m4trace:configure.ac:361: -1- AC_SUBST_TRACE([top_builddir])
-m4trace:configure.ac:361: -1- AC_SUBST_TRACE([top_build_prefix])
-m4trace:configure.ac:361: -1- AC_SUBST_TRACE([srcdir])
-m4trace:configure.ac:361: -1- AC_SUBST_TRACE([abs_srcdir])
-m4trace:configure.ac:361: -1- AC_SUBST_TRACE([top_srcdir])
-m4trace:configure.ac:361: -1- AC_SUBST_TRACE([abs_top_srcdir])
-m4trace:configure.ac:361: -1- AC_SUBST_TRACE([builddir])
-m4trace:configure.ac:361: -1- AC_SUBST_TRACE([abs_builddir])
-m4trace:configure.ac:361: -1- AC_SUBST_TRACE([abs_top_builddir])
-m4trace:configure.ac:361: -1- AC_SUBST_TRACE([INSTALL])
-m4trace:configure.ac:361: -1- AC_SUBST_TRACE([MKDIR_P])
-m4trace:configure.ac:361: -1- AC_REQUIRE_AUX_FILE([ltmain.sh])
diff --git a/config.log b/config.log
deleted file mode 100644
index 215fece..0000000
--- a/config.log
+++ /dev/null
@@ -1,1157 +0,0 @@
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by mathgl configure 1.10, which was
-generated by GNU Autoconf 2.67.  Invocation command line was
-
-  $ ./configure --prefix=/usr --mandir=${prefix}/share/man --infodir=${prefix}/share/info --host=x86_64-linux-gnu --build=x86_64-linux-gnu --enable-all --enable-octave --enable-python
-
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = filippos
-uname -m = x86_64
-uname -r = 2.6.36-trunk-amd64
-uname -s = Linux
-uname -v = #1 SMP Wed Oct 27 14:28:29 UTC 2010
-
-/usr/bin/uname -p = unknown
-/bin/uname -X     = unknown
-
-/bin/arch              = unknown
-/usr/bin/arch -k       = unknown
-/usr/convex/getsysinfo = unknown
-/usr/bin/hostinfo      = unknown
-/bin/machine           = unknown
-/usr/bin/oslevel       = unknown
-/bin/universe          = unknown
-
-PATH: /usr/sbin
-PATH: /usr/bin
-PATH: /sbin
-PATH: /bin
-PATH: /usr/bin/X11
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-configure:2691: checking for a BSD-compatible install
-configure:2759: result: /usr/bin/install -c
-configure:2770: checking whether build environment is sane
-configure:2820: result: yes
-configure:2961: checking for a thread-safe mkdir -p
-configure:3000: result: /bin/mkdir -p
-configure:3013: checking for gawk
-configure:3029: found /usr/bin/gawk
-configure:3040: result: gawk
-configure:3051: checking whether make sets $(MAKE)
-configure:3073: result: yes
-configure:3162: checking for x86_64-linux-gnu-gcc
-configure:3178: found /usr/bin/x86_64-linux-gnu-gcc
-configure:3189: result: x86_64-linux-gnu-gcc
-configure:3458: checking for C compiler version
-configure:3467: x86_64-linux-gnu-gcc --version >&5
-x86_64-linux-gnu-gcc (Debian 4.4.5-6) 4.4.5
-Copyright (C) 2010 Free Software Foundation, Inc.
-This is free software; see the source for copying conditions.  There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-configure:3478: $? = 0
-configure:3467: x86_64-linux-gnu-gcc -v >&5
-Using built-in specs.
-Target: x86_64-linux-gnu
-Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.5-6' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.4 --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
-Thread model: posix
-gcc version 4.4.5 (Debian 4.4.5-6) 
-configure:3478: $? = 0
-configure:3467: x86_64-linux-gnu-gcc -V >&5
-x86_64-linux-gnu-gcc: '-V' option must have argument
-configure:3478: $? = 1
-configure:3467: x86_64-linux-gnu-gcc -qversion >&5
-x86_64-linux-gnu-gcc: unrecognized option '-qversion'
-x86_64-linux-gnu-gcc: no input files
-configure:3478: $? = 1
-configure:3498: checking whether the C compiler works
-configure:3520: x86_64-linux-gnu-gcc -Wall -g -O2   conftest.c  >&5
-configure:3524: $? = 0
-configure:3572: result: yes
-configure:3575: checking for C compiler default output file name
-configure:3577: result: a.out
-configure:3583: checking for suffix of executables
-configure:3590: x86_64-linux-gnu-gcc -o conftest -Wall -g -O2   conftest.c  >&5
-configure:3594: $? = 0
-configure:3616: result: 
-configure:3638: checking whether we are cross compiling
-configure:3646: x86_64-linux-gnu-gcc -o conftest -Wall -g -O2   conftest.c  >&5
-configure:3650: $? = 0
-configure:3657: ./conftest
-configure:3661: $? = 0
-configure:3676: result: no
-configure:3681: checking for suffix of object files
-configure:3703: x86_64-linux-gnu-gcc -c -Wall -g -O2  conftest.c >&5
-configure:3707: $? = 0
-configure:3728: result: o
-configure:3732: checking whether we are using the GNU C compiler
-configure:3751: x86_64-linux-gnu-gcc -c -Wall -g -O2  conftest.c >&5
-configure:3751: $? = 0
-configure:3760: result: yes
-configure:3769: checking whether x86_64-linux-gnu-gcc accepts -g
-configure:3789: x86_64-linux-gnu-gcc -c -g  conftest.c >&5
-configure:3789: $? = 0
-configure:3830: result: yes
-configure:3847: checking for x86_64-linux-gnu-gcc option to accept ISO C89
-configure:3911: x86_64-linux-gnu-gcc  -c -Wall -g -O2  conftest.c >&5
-configure:3911: $? = 0
-configure:3924: result: none needed
-configure:3955: checking for style of include used by make
-configure:3983: result: GNU
-configure:4008: checking dependency style of x86_64-linux-gnu-gcc
-configure:4118: result: gcc3
-configure:4147: checking for x86_64-linux-gnu-g++
-configure:4163: found /usr/bin/x86_64-linux-gnu-g++
-configure:4174: result: x86_64-linux-gnu-g++
-configure:4245: checking for C++ compiler version
-configure:4254: x86_64-linux-gnu-g++ --version >&5
-x86_64-linux-gnu-g++ (Debian 4.4.5-6) 4.4.5
-Copyright (C) 2010 Free Software Foundation, Inc.
-This is free software; see the source for copying conditions.  There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-configure:4265: $? = 0
-configure:4254: x86_64-linux-gnu-g++ -v >&5
-Using built-in specs.
-Target: x86_64-linux-gnu
-Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.5-6' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.4 --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
-Thread model: posix
-gcc version 4.4.5 (Debian 4.4.5-6) 
-configure:4265: $? = 0
-configure:4254: x86_64-linux-gnu-g++ -V >&5
-x86_64-linux-gnu-g++: '-V' option must have argument
-configure:4265: $? = 1
-configure:4254: x86_64-linux-gnu-g++ -qversion >&5
-x86_64-linux-gnu-g++: unrecognized option '-qversion'
-x86_64-linux-gnu-g++: no input files
-configure:4265: $? = 1
-configure:4269: checking whether we are using the GNU C++ compiler
-configure:4288: x86_64-linux-gnu-g++ -c -g -O2  conftest.cpp >&5
-configure:4288: $? = 0
-configure:4297: result: yes
-configure:4306: checking whether x86_64-linux-gnu-g++ accepts -g
-configure:4326: x86_64-linux-gnu-g++ -c -g  conftest.cpp >&5
-configure:4326: $? = 0
-configure:4367: result: yes
-configure:4392: checking dependency style of x86_64-linux-gnu-g++
-configure:4502: result: gcc3
-configure:4523: checking build system type
-configure:4537: result: x86_64-pc-linux-gnu
-configure:4557: checking host system type
-configure:4570: result: x86_64-pc-linux-gnu
-configure:4922: checking for a sed that does not truncate output
-configure:4986: result: /bin/sed
-configure:5004: checking for grep that handles long lines and -e
-configure:5062: result: /bin/grep
-configure:5067: checking for egrep
-configure:5129: result: /bin/grep -E
-configure:5134: checking for fgrep
-configure:5196: result: /bin/grep -F
-configure:5231: checking for ld used by x86_64-linux-gnu-gcc
-configure:5298: result: /usr/bin/ld
-configure:5305: checking if the linker (/usr/bin/ld) is GNU ld
-configure:5320: result: yes
-configure:5332: checking for BSD- or MS-compatible name lister (nm)
-configure:5381: result: /usr/bin/nm -B
-configure:5499: checking the name lister (/usr/bin/nm -B) interface
-configure:5506: x86_64-linux-gnu-gcc -c -Wall -g -O2  conftest.c >&5
-configure:5509: /usr/bin/nm -B "conftest.o"
-configure:5512: output
-0000000000000000 B some_variable
-configure:5519: result: BSD nm
-configure:5522: checking whether ln -s works
-configure:5526: result: yes
-configure:5534: checking the maximum length of command line arguments
-configure:5654: result: 3458764513820540925
-configure:5671: checking whether the shell understands some XSI constructs
-configure:5681: result: yes
-configure:5685: checking whether the shell understands "+="
-configure:5691: result: yes
-configure:5726: checking for /usr/bin/ld option to reload object files
-configure:5733: result: -r
-configure:5762: checking for x86_64-linux-gnu-objdump
-configure:5789: result: objdump
-configure:5858: checking how to recognize dependent libraries
-configure:6054: result: pass_all
-configure:6074: checking for x86_64-linux-gnu-ar
-configure:6104: result: no
-configure:6114: checking for ar
-configure:6130: found /usr/bin/ar
-configure:6141: result: ar
-configure:6179: checking for x86_64-linux-gnu-strip
-configure:6209: result: no
-configure:6219: checking for strip
-configure:6235: found /usr/bin/strip
-configure:6246: result: strip
-configure:6278: checking for x86_64-linux-gnu-ranlib
-configure:6308: result: no
-configure:6318: checking for ranlib
-configure:6334: found /usr/bin/ranlib
-configure:6345: result: ranlib
-configure:6435: checking command to parse /usr/bin/nm -B output from x86_64-linux-gnu-gcc object
-configure:6553: x86_64-linux-gnu-gcc -c -Wall -g -O2  conftest.c >&5
-configure:6556: $? = 0
-configure:6560: /usr/bin/nm -B conftest.o \| sed -n -e 's/^.*[	 ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[	 ][	 ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' \> conftest.nm
-configure:6563: $? = 0
-configure:6617: x86_64-linux-gnu-gcc -o conftest -Wall -g -O2   conftest.c conftstm.o >&5
-configure:6620: $? = 0
-configure:6658: result: ok
-configure:6754: x86_64-linux-gnu-gcc -c -Wall -g -O2  conftest.c >&5
-configure:6757: $? = 0
-configure:7467: checking how to run the C preprocessor
-configure:7498: x86_64-linux-gnu-gcc -E  conftest.c
-configure:7498: $? = 0
-configure:7512: x86_64-linux-gnu-gcc -E  conftest.c
-conftest.c:11:28: error: ac_nonexistent.h: No such file or directory
-configure:7512: $? = 1
-configure: failed program was:
-| /* confdefs.h */
-| #define PACKAGE_NAME "mathgl"
-| #define PACKAGE_TARNAME "mathgl"
-| #define PACKAGE_VERSION "1.10"
-| #define PACKAGE_STRING "mathgl 1.10"
-| #define PACKAGE_BUGREPORT "mathgl.abalakin at gmail.com"
-| #define PACKAGE_URL ""
-| #define PACKAGE "mathgl"
-| #define VERSION "1.10"
-| /* end confdefs.h.  */
-| #include <ac_nonexistent.h>
-configure:7537: result: x86_64-linux-gnu-gcc -E
-configure:7557: x86_64-linux-gnu-gcc -E  conftest.c
-configure:7557: $? = 0
-configure:7571: x86_64-linux-gnu-gcc -E  conftest.c
-conftest.c:11:28: error: ac_nonexistent.h: No such file or directory
-configure:7571: $? = 1
-configure: failed program was:
-| /* confdefs.h */
-| #define PACKAGE_NAME "mathgl"
-| #define PACKAGE_TARNAME "mathgl"
-| #define PACKAGE_VERSION "1.10"
-| #define PACKAGE_STRING "mathgl 1.10"
-| #define PACKAGE_BUGREPORT "mathgl.abalakin at gmail.com"
-| #define PACKAGE_URL ""
-| #define PACKAGE "mathgl"
-| #define VERSION "1.10"
-| /* end confdefs.h.  */
-| #include <ac_nonexistent.h>
-configure:7600: checking for ANSI C header files
-configure:7620: x86_64-linux-gnu-gcc -c -Wall -g -O2  conftest.c >&5
-configure:7620: $? = 0
-configure:7693: x86_64-linux-gnu-gcc -o conftest -Wall -g -O2   conftest.c  >&5
-configure:7693: $? = 0
-configure:7693: ./conftest
-configure:7693: $? = 0
-configure:7704: result: yes
-configure:7717: checking for sys/types.h
-configure:7717: x86_64-linux-gnu-gcc -c -Wall -g -O2  conftest.c >&5
-configure:7717: $? = 0
-configure:7717: result: yes
-configure:7717: checking for sys/stat.h
-configure:7717: x86_64-linux-gnu-gcc -c -Wall -g -O2  conftest.c >&5
-configure:7717: $? = 0
-configure:7717: result: yes
-configure:7717: checking for stdlib.h
-configure:7717: x86_64-linux-gnu-gcc -c -Wall -g -O2  conftest.c >&5
-configure:7717: $? = 0
-configure:7717: result: yes
-configure:7717: checking for string.h
-configure:7717: x86_64-linux-gnu-gcc -c -Wall -g -O2  conftest.c >&5
-configure:7717: $? = 0
-configure:7717: result: yes
-configure:7717: checking for memory.h
-configure:7717: x86_64-linux-gnu-gcc -c -Wall -g -O2  conftest.c >&5
-configure:7717: $? = 0
-configure:7717: result: yes
-configure:7717: checking for strings.h
-configure:7717: x86_64-linux-gnu-gcc -c -Wall -g -O2  conftest.c >&5
-configure:7717: $? = 0
-configure:7717: result: yes
-configure:7717: checking for inttypes.h
-configure:7717: x86_64-linux-gnu-gcc -c -Wall -g -O2  conftest.c >&5
-configure:7717: $? = 0
-configure:7717: result: yes
-configure:7717: checking for stdint.h
-configure:7717: x86_64-linux-gnu-gcc -c -Wall -g -O2  conftest.c >&5
-configure:7717: $? = 0
-configure:7717: result: yes
-configure:7717: checking for unistd.h
-configure:7717: x86_64-linux-gnu-gcc -c -Wall -g -O2  conftest.c >&5
-configure:7717: $? = 0
-configure:7717: result: yes
-configure:7731: checking for dlfcn.h
-configure:7731: x86_64-linux-gnu-gcc -c -Wall -g -O2  conftest.c >&5
-configure:7731: $? = 0
-configure:7731: result: yes
-configure:7856: checking for C++ compiler version
-configure:7865: x86_64-linux-gnu-g++ --version >&5
-x86_64-linux-gnu-g++ (Debian 4.4.5-6) 4.4.5
-Copyright (C) 2010 Free Software Foundation, Inc.
-This is free software; see the source for copying conditions.  There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-configure:7876: $? = 0
-configure:7865: x86_64-linux-gnu-g++ -v >&5
-Using built-in specs.
-Target: x86_64-linux-gnu
-Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.5-6' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.4 --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
-Thread model: posix
-gcc version 4.4.5 (Debian 4.4.5-6) 
-configure:7876: $? = 0
-configure:7865: x86_64-linux-gnu-g++ -V >&5
-x86_64-linux-gnu-g++: '-V' option must have argument
-configure:7876: $? = 1
-configure:7865: x86_64-linux-gnu-g++ -qversion >&5
-x86_64-linux-gnu-g++: unrecognized option '-qversion'
-x86_64-linux-gnu-g++: no input files
-configure:7876: $? = 1
-configure:7880: checking whether we are using the GNU C++ compiler
-configure:7908: result: yes
-configure:7917: checking whether x86_64-linux-gnu-g++ accepts -g
-configure:7978: result: yes
-configure:8003: checking dependency style of x86_64-linux-gnu-g++
-configure:8113: result: gcc3
-configure:8136: checking how to run the C++ preprocessor
-configure:8163: x86_64-linux-gnu-g++ -E  conftest.cpp
-configure:8163: $? = 0
-configure:8177: x86_64-linux-gnu-g++ -E  conftest.cpp
-conftest.cpp:22:28: error: ac_nonexistent.h: No such file or directory
-configure:8177: $? = 1
-configure: failed program was:
-| /* confdefs.h */
-| #define PACKAGE_NAME "mathgl"
-| #define PACKAGE_TARNAME "mathgl"
-| #define PACKAGE_VERSION "1.10"
-| #define PACKAGE_STRING "mathgl 1.10"
-| #define PACKAGE_BUGREPORT "mathgl.abalakin at gmail.com"
-| #define PACKAGE_URL ""
-| #define PACKAGE "mathgl"
-| #define VERSION "1.10"
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_DLFCN_H 1
-| /* end confdefs.h.  */
-| #include <ac_nonexistent.h>
-configure:8202: result: x86_64-linux-gnu-g++ -E
-configure:8222: x86_64-linux-gnu-g++ -E  conftest.cpp
-configure:8222: $? = 0
-configure:8236: x86_64-linux-gnu-g++ -E  conftest.cpp
-conftest.cpp:22:28: error: ac_nonexistent.h: No such file or directory
-configure:8236: $? = 1
-configure: failed program was:
-| /* confdefs.h */
-| #define PACKAGE_NAME "mathgl"
-| #define PACKAGE_TARNAME "mathgl"
-| #define PACKAGE_VERSION "1.10"
-| #define PACKAGE_STRING "mathgl 1.10"
-| #define PACKAGE_BUGREPORT "mathgl.abalakin at gmail.com"
-| #define PACKAGE_URL ""
-| #define PACKAGE "mathgl"
-| #define VERSION "1.10"
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_DLFCN_H 1
-| /* end confdefs.h.  */
-| #include <ac_nonexistent.h>
-configure:8438: checking for objdir
-configure:8453: result: .libs
-configure:8749: checking if x86_64-linux-gnu-gcc supports -fno-rtti -fno-exceptions
-configure:8767: x86_64-linux-gnu-gcc -c -Wall -g -O2  -fno-rtti -fno-exceptions conftest.c >&5
-cc1: warning: command line option "-fno-rtti" is valid for C++/ObjC++ but not for C
-configure:8771: $? = 0
-configure:8784: result: no
-configure:8804: checking for x86_64-linux-gnu-gcc option to produce PIC
-configure:9076: result: -fPIC -DPIC
-configure:9088: checking if x86_64-linux-gnu-gcc PIC flag -fPIC -DPIC works
-configure:9106: x86_64-linux-gnu-gcc -c -Wall -g -O2  -fPIC -DPIC -DPIC conftest.c >&5
-configure:9110: $? = 0
-configure:9123: result: yes
-configure:9147: checking if x86_64-linux-gnu-gcc static flag -static works
-configure:9175: result: yes
-configure:9190: checking if x86_64-linux-gnu-gcc supports -c -o file.o
-configure:9211: x86_64-linux-gnu-gcc -c -Wall -g -O2  -o out/conftest2.o conftest.c >&5
-configure:9215: $? = 0
-configure:9237: result: yes
-configure:9245: checking if x86_64-linux-gnu-gcc supports -c -o file.o
-configure:9292: result: yes
-configure:9325: checking whether the x86_64-linux-gnu-gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries
-configure:10316: result: yes
-configure:10353: checking whether -lc should be explicitly linked in
-configure:10358: x86_64-linux-gnu-gcc -c -Wall -g -O2  conftest.c >&5
-configure:10361: $? = 0
-configure:10376: x86_64-linux-gnu-gcc -shared conftest.o  -v -Wl,-soname -Wl,conftest -o conftest 2\>\&1 \| /bin/grep  -lc  \>/dev/null 2\>\&1
-configure:10379: $? = 0
-configure:10391: result: no
-configure:10555: checking dynamic linker characteristics
-configure:10988: x86_64-linux-gnu-gcc -o conftest -Wall -g -O2   -Wl,-rpath -Wl,/foo conftest.c  >&5
-configure:10988: $? = 0
-configure:11218: result: GNU/Linux ld.so
-configure:11320: checking how to hardcode library paths into programs
-configure:11345: result: immediate
-configure:11439: checking for shl_load
-configure:11439: x86_64-linux-gnu-gcc -o conftest -Wall -g -O2   conftest.c  >&5
-/tmp/ccaVQKce.o: In function `main':
-/home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/conftest.c:57: undefined reference to `shl_load'
-collect2: ld returned 1 exit status
-configure:11439: $? = 1
-configure: failed program was:
-| /* confdefs.h */
-| #define PACKAGE_NAME "mathgl"
-| #define PACKAGE_TARNAME "mathgl"
-| #define PACKAGE_VERSION "1.10"
-| #define PACKAGE_STRING "mathgl 1.10"
-| #define PACKAGE_BUGREPORT "mathgl.abalakin at gmail.com"
-| #define PACKAGE_URL ""
-| #define PACKAGE "mathgl"
-| #define VERSION "1.10"
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_DLFCN_H 1
-| #define LT_OBJDIR ".libs/"
-| /* end confdefs.h.  */
-| /* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
-|    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-| #define shl_load innocuous_shl_load
-| 
-| /* System header to define __stub macros and hopefully few prototypes,
-|     which can conflict with char shl_load (); below.
-|     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-|     <limits.h> exists even on freestanding compilers.  */
-| 
-| #ifdef __STDC__
-| # include <limits.h>
-| #else
-| # include <assert.h>
-| #endif
-| 
-| #undef shl_load
-| 
-| /* Override any GCC internal prototype to avoid an error.
-|    Use char because int might match the return type of a GCC
-|    builtin and then its argument prototype would still apply.  */
-| #ifdef __cplusplus
-| extern "C"
-| #endif
-| char shl_load ();
-| /* The GNU C library defines this for functions which it implements
-|     to always fail with ENOSYS.  Some functions are actually named
-|     something starting with __ and the normal name is an alias.  */
-| #if defined __stub_shl_load || defined __stub___shl_load
-| choke me
-| #endif
-| 
-| int
-| main ()
-| {
-| return shl_load ();
-|   ;
-|   return 0;
-| }
-configure:11439: result: no
-configure:11443: checking for shl_load in -ldld
-configure:11468: x86_64-linux-gnu-gcc -o conftest -Wall -g -O2   conftest.c -ldld   >&5
-/usr/bin/ld: cannot find -ldld
-collect2: ld returned 1 exit status
-configure:11468: $? = 1
-configure: failed program was:
-| /* confdefs.h */
-| #define PACKAGE_NAME "mathgl"
-| #define PACKAGE_TARNAME "mathgl"
-| #define PACKAGE_VERSION "1.10"
-| #define PACKAGE_STRING "mathgl 1.10"
-| #define PACKAGE_BUGREPORT "mathgl.abalakin at gmail.com"
-| #define PACKAGE_URL ""
-| #define PACKAGE "mathgl"
-| #define VERSION "1.10"
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_DLFCN_H 1
-| #define LT_OBJDIR ".libs/"
-| /* end confdefs.h.  */
-| 
-| /* Override any GCC internal prototype to avoid an error.
-|    Use char because int might match the return type of a GCC
-|    builtin and then its argument prototype would still apply.  */
-| #ifdef __cplusplus
-| extern "C"
-| #endif
-| char shl_load ();
-| int
-| main ()
-| {
-| return shl_load ();
-|   ;
-|   return 0;
-| }
-configure:11477: result: no
-configure:11482: checking for dlopen
-configure:11482: x86_64-linux-gnu-gcc -o conftest -Wall -g -O2   conftest.c  >&5
-/tmp/cch6278l.o: In function `main':
-/home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/conftest.c:57: undefined reference to `dlopen'
-collect2: ld returned 1 exit status
-configure:11482: $? = 1
-configure: failed program was:
-| /* confdefs.h */
-| #define PACKAGE_NAME "mathgl"
-| #define PACKAGE_TARNAME "mathgl"
-| #define PACKAGE_VERSION "1.10"
-| #define PACKAGE_STRING "mathgl 1.10"
-| #define PACKAGE_BUGREPORT "mathgl.abalakin at gmail.com"
-| #define PACKAGE_URL ""
-| #define PACKAGE "mathgl"
-| #define VERSION "1.10"
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_DLFCN_H 1
-| #define LT_OBJDIR ".libs/"
-| /* end confdefs.h.  */
-| /* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
-|    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-| #define dlopen innocuous_dlopen
-| 
-| /* System header to define __stub macros and hopefully few prototypes,
-|     which can conflict with char dlopen (); below.
-|     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-|     <limits.h> exists even on freestanding compilers.  */
-| 
-| #ifdef __STDC__
-| # include <limits.h>
-| #else
-| # include <assert.h>
-| #endif
-| 
-| #undef dlopen
-| 
-| /* Override any GCC internal prototype to avoid an error.
-|    Use char because int might match the return type of a GCC
-|    builtin and then its argument prototype would still apply.  */
-| #ifdef __cplusplus
-| extern "C"
-| #endif
-| char dlopen ();
-| /* The GNU C library defines this for functions which it implements
-|     to always fail with ENOSYS.  Some functions are actually named
-|     something starting with __ and the normal name is an alias.  */
-| #if defined __stub_dlopen || defined __stub___dlopen
-| choke me
-| #endif
-| 
-| int
-| main ()
-| {
-| return dlopen ();
-|   ;
-|   return 0;
-| }
-configure:11482: result: no
-configure:11486: checking for dlopen in -ldl
-configure:11511: x86_64-linux-gnu-gcc -o conftest -Wall -g -O2   conftest.c -ldl   >&5
-configure:11511: $? = 0
-configure:11520: result: yes
-configure:11639: checking whether a program can dlopen itself
-configure:11709: x86_64-linux-gnu-gcc -o conftest -Wall -g -O2  -DHAVE_DLFCN_H  -Wl,--export-dynamic conftest.c -ldl  >&5
-configure: In function 'fnord':
-configure:11690: warning: unused variable 'i'
-configure:11712: $? = 0
-configure:11730: result: yes
-configure:11735: checking whether a statically linked program can dlopen itself
-configure:11805: x86_64-linux-gnu-gcc -o conftest -Wall -g -O2  -DHAVE_DLFCN_H  -Wl,--export-dynamic -static conftest.c -ldl  >&5
-configure: In function 'fnord':
-configure:11786: warning: unused variable 'i'
-/tmp/ccUd54vw.o: In function `main':
-/home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/configure:11789: warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
-/usr/bin/ld: dynamic STT_GNU_IFUNC symbol `strcmp' with pointer equality in `/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib/libc.a(strcmp.o)' can not be used when making an executable; recompile with -fPIE and relink with -pie
-collect2: ld returned 1 exit status
-configure:11808: $? = 1
-configure:11826: result: no
-configure:11865: checking whether stripping libraries is possible
-configure:11870: result: yes
-configure:11905: checking if libtool supports shared libraries
-configure:11907: result: yes
-configure:11910: checking whether to build shared libraries
-configure:11931: result: yes
-configure:11934: checking whether to build static libraries
-configure:11938: result: yes
-configure:12088: checking for ld used by x86_64-linux-gnu-g++
-configure:12155: result: /usr/bin/ld -m elf_x86_64
-configure:12162: checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld
-configure:12177: result: yes
-configure:12232: checking whether the x86_64-linux-gnu-g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries
-configure:13145: result: yes
-configure:13173: x86_64-linux-gnu-g++ -c -g -O2  conftest.cpp >&5
-configure:13176: $? = 0
-configure:13358: checking for x86_64-linux-gnu-g++ option to produce PIC
-configure:13675: result: -fPIC -DPIC
-configure:13684: checking if x86_64-linux-gnu-g++ PIC flag -fPIC -DPIC works
-configure:13702: x86_64-linux-gnu-g++ -c -g -O2  -fPIC -DPIC -DPIC conftest.cpp >&5
-configure:13706: $? = 0
-configure:13719: result: yes
-configure:13740: checking if x86_64-linux-gnu-g++ static flag -static works
-configure:13768: result: yes
-configure:13780: checking if x86_64-linux-gnu-g++ supports -c -o file.o
-configure:13801: x86_64-linux-gnu-g++ -c -g -O2  -o out/conftest2.o conftest.cpp >&5
-configure:13805: $? = 0
-configure:13827: result: yes
-configure:13832: checking if x86_64-linux-gnu-g++ supports -c -o file.o
-configure:13879: result: yes
-configure:13909: checking whether the x86_64-linux-gnu-g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries
-configure:13938: result: yes
-configure:14075: checking dynamic linker characteristics
-configure:14456: x86_64-linux-gnu-g++ -o conftest -g -O2   -Wl,-rpath -Wl,/foo conftest.cpp  >&5
-configure:14456: $? = 0
-configure:14686: result: GNU/Linux ld.so
-configure:14737: checking how to hardcode library paths into programs
-configure:14762: result: immediate
-configure:14878: checking pthread.h usability
-configure:14878: x86_64-linux-gnu-gcc -c -Wall -g -O2  conftest.c >&5
-configure:14878: $? = 0
-configure:14878: result: yes
-configure:14878: checking pthread.h presence
-configure:14878: x86_64-linux-gnu-gcc -E  conftest.c
-configure:14878: $? = 0
-configure:14878: result: yes
-configure:14878: checking for pthread.h
-configure:14878: result: yes
-configure:14887: checking for main in -lpthread
-configure:14906: x86_64-linux-gnu-gcc -o conftest -Wall -g -O2   conftest.c -lpthread   >&5
-configure:14906: $? = 0
-configure:14915: result: yes
-configure:14948: checking for gsl-config
-configure:14964: found /usr/bin/gsl-config
-configure:14975: result: -I/usr/include
-configure:14985: checking for gsl-config
-configure:15001: found /usr/bin/gsl-config
-configure:15012: result: -L/usr/lib -lgsl -lgslcblas -lm
-configure:15161: checking GL/gl.h usability
-configure:15161: x86_64-linux-gnu-gcc -c -Wall -g -O2  conftest.c >&5
-configure:15161: $? = 0
-configure:15161: result: yes
-configure:15161: checking GL/gl.h presence
-configure:15161: x86_64-linux-gnu-gcc -E  conftest.c
-configure:15161: $? = 0
-configure:15161: result: yes
-configure:15161: checking for GL/gl.h
-configure:15161: result: yes
-configure:15170: checking for main in -lGL
-configure:15189: x86_64-linux-gnu-gcc -o conftest -Wall -g -O2   conftest.c -lGL   >&5
-configure:15189: $? = 0
-configure:15199: result: yes
-configure:15208: checking GL/glut.h usability
-configure:15208: x86_64-linux-gnu-gcc -c -Wall -g -O2  conftest.c >&5
-configure:15208: $? = 0
-configure:15208: result: yes
-configure:15208: checking GL/glut.h presence
-configure:15208: x86_64-linux-gnu-gcc -E  conftest.c
-configure:15208: $? = 0
-configure:15208: result: yes
-configure:15208: checking for GL/glut.h
-configure:15208: result: yes
-configure:15217: checking for main in -lglut
-configure:15236: x86_64-linux-gnu-gcc -o conftest -Wall -g -O2   conftest.c -lglut   >&5
-configure:15236: $? = 0
-configure:15246: result: yes
-configure:15298: checking hdf5.h usability
-configure:15298: x86_64-linux-gnu-gcc -c -Wall -g -O2  conftest.c >&5
-configure:15298: $? = 0
-configure:15298: result: yes
-configure:15298: checking hdf5.h presence
-configure:15298: x86_64-linux-gnu-gcc -E  conftest.c
-configure:15298: $? = 0
-configure:15298: result: yes
-configure:15298: checking for hdf5.h
-configure:15298: result: yes
-configure:15310: checking for main in -lhdf5
-configure:15329: x86_64-linux-gnu-gcc -o conftest -Wall -g -O2   conftest.c -lhdf5   >&5
-configure:15329: $? = 0
-configure:15338: result: yes
-configure:15367: checking hdf/mfhdf.h usability
-configure:15367: x86_64-linux-gnu-gcc -c -Wall -g -O2  conftest.c >&5
-conftest.c:57:23: error: hdf/mfhdf.h: No such file or directory
-configure:15367: $? = 1
-configure: failed program was:
-| /* confdefs.h */
-| #define PACKAGE_NAME "mathgl"
-| #define PACKAGE_TARNAME "mathgl"
-| #define PACKAGE_VERSION "1.10"
-| #define PACKAGE_STRING "mathgl 1.10"
-| #define PACKAGE_BUGREPORT "mathgl.abalakin at gmail.com"
-| #define PACKAGE_URL ""
-| #define PACKAGE "mathgl"
-| #define VERSION "1.10"
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_DLFCN_H 1
-| #define LT_OBJDIR ".libs/"
-| #define MGL_USE_DOUBLE 0
-| /* end confdefs.h.  */
-| #include <stdio.h>
-| #ifdef HAVE_SYS_TYPES_H
-| # include <sys/types.h>
-| #endif
-| #ifdef HAVE_SYS_STAT_H
-| # include <sys/stat.h>
-| #endif
-| #ifdef STDC_HEADERS
-| # include <stdlib.h>
-| # include <stddef.h>
-| #else
-| # ifdef HAVE_STDLIB_H
-| #  include <stdlib.h>
-| # endif
-| #endif
-| #ifdef HAVE_STRING_H
-| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-| #  include <memory.h>
-| # endif
-| # include <string.h>
-| #endif
-| #ifdef HAVE_STRINGS_H
-| # include <strings.h>
-| #endif
-| #ifdef HAVE_INTTYPES_H
-| # include <inttypes.h>
-| #endif
-| #ifdef HAVE_STDINT_H
-| # include <stdint.h>
-| #endif
-| #ifdef HAVE_UNISTD_H
-| # include <unistd.h>
-| #endif
-| #include <hdf/mfhdf.h>
-configure:15367: result: no
-configure:15367: checking hdf/mfhdf.h presence
-configure:15367: x86_64-linux-gnu-gcc -E  conftest.c
-conftest.c:24:23: error: hdf/mfhdf.h: No such file or directory
-configure:15367: $? = 1
-configure: failed program was:
-| /* confdefs.h */
-| #define PACKAGE_NAME "mathgl"
-| #define PACKAGE_TARNAME "mathgl"
-| #define PACKAGE_VERSION "1.10"
-| #define PACKAGE_STRING "mathgl 1.10"
-| #define PACKAGE_BUGREPORT "mathgl.abalakin at gmail.com"
-| #define PACKAGE_URL ""
-| #define PACKAGE "mathgl"
-| #define VERSION "1.10"
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_DLFCN_H 1
-| #define LT_OBJDIR ".libs/"
-| #define MGL_USE_DOUBLE 0
-| /* end confdefs.h.  */
-| #include <hdf/mfhdf.h>
-configure:15367: result: no
-configure:15367: checking for hdf/mfhdf.h
-configure:15367: result: no
-
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-
-ac_cv_build=x86_64-pc-linux-gnu
-ac_cv_c_compiler_gnu=yes
-ac_cv_cxx_compiler_gnu=yes
-ac_cv_env_CCC_set=
-ac_cv_env_CCC_value=
-ac_cv_env_CC_set=
-ac_cv_env_CC_value=
-ac_cv_env_CFLAGS_set=set
-ac_cv_env_CFLAGS_value='-Wall -g -O2'
-ac_cv_env_CPPFLAGS_set=set
-ac_cv_env_CPPFLAGS_value=
-ac_cv_env_CPP_set=
-ac_cv_env_CPP_value=
-ac_cv_env_CXXCPP_set=
-ac_cv_env_CXXCPP_value=
-ac_cv_env_CXXFLAGS_set=set
-ac_cv_env_CXXFLAGS_value='-g -O2'
-ac_cv_env_CXX_set=
-ac_cv_env_CXX_value=
-ac_cv_env_LDFLAGS_set=set
-ac_cv_env_LDFLAGS_value=
-ac_cv_env_LIBS_set=
-ac_cv_env_LIBS_value=
-ac_cv_env_TMPDIR_set=
-ac_cv_env_TMPDIR_value=
-ac_cv_env_build_alias_set=set
-ac_cv_env_build_alias_value=x86_64-linux-gnu
-ac_cv_env_host_alias_set=set
-ac_cv_env_host_alias_value=x86_64-linux-gnu
-ac_cv_env_target_alias_set=
-ac_cv_env_target_alias_value=
-ac_cv_func_dlopen=no
-ac_cv_func_shl_load=no
-ac_cv_header_GL_gl_h=yes
-ac_cv_header_GL_glut_h=yes
-ac_cv_header_dlfcn_h=yes
-ac_cv_header_hdf5_h=yes
-ac_cv_header_hdf_mfhdf_h=no
-ac_cv_header_inttypes_h=yes
-ac_cv_header_memory_h=yes
-ac_cv_header_pthread_h=yes
-ac_cv_header_stdc=yes
-ac_cv_header_stdint_h=yes
-ac_cv_header_stdlib_h=yes
-ac_cv_header_string_h=yes
-ac_cv_header_strings_h=yes
-ac_cv_header_sys_stat_h=yes
-ac_cv_header_sys_types_h=yes
-ac_cv_header_unistd_h=yes
-ac_cv_host=x86_64-pc-linux-gnu
-ac_cv_lib_GL___main=yes
-ac_cv_lib_dl_dlopen=yes
-ac_cv_lib_dld_shl_load=no
-ac_cv_lib_glut___main=yes
-ac_cv_lib_hdf5_main=yes
-ac_cv_lib_pthread_main=yes
-ac_cv_objext=o
-ac_cv_path_EGREP='/bin/grep -E'
-ac_cv_path_FGREP='/bin/grep -F'
-ac_cv_path_GREP=/bin/grep
-ac_cv_path_SED=/bin/sed
-ac_cv_path_install='/usr/bin/install -c'
-ac_cv_path_mkdir=/bin/mkdir
-ac_cv_prog_AWK=gawk
-ac_cv_prog_CC=x86_64-linux-gnu-gcc
-ac_cv_prog_CPP='x86_64-linux-gnu-gcc -E'
-ac_cv_prog_CXX=x86_64-linux-gnu-g++
-ac_cv_prog_CXXCPP='x86_64-linux-gnu-g++ -E'
-ac_cv_prog_GSL_FLAGS=-I/usr/include
-ac_cv_prog_GSL_LIBS='-L/usr/lib -lgsl -lgslcblas -lm'
-ac_cv_prog_OBJDUMP=objdump
-ac_cv_prog_ac_ct_AR=ar
-ac_cv_prog_ac_ct_RANLIB=ranlib
-ac_cv_prog_ac_ct_STRIP=strip
-ac_cv_prog_cc_c89=
-ac_cv_prog_cc_g=yes
-ac_cv_prog_cxx_g=yes
-ac_cv_prog_make_make_set=yes
-am_cv_CC_dependencies_compiler_type=gcc3
-am_cv_CXX_dependencies_compiler_type=gcc3
-lt_cv_deplibs_check_method=pass_all
-lt_cv_dlopen=dlopen
-lt_cv_dlopen_libs=-ldl
-lt_cv_dlopen_self=yes
-lt_cv_dlopen_self_static=no
-lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_ld_reload_flag=-r
-lt_cv_nm_interface='BSD nm'
-lt_cv_objdir=.libs
-lt_cv_path_LD=/usr/bin/ld
-lt_cv_path_LDCXX='/usr/bin/ld -m elf_x86_64'
-lt_cv_path_NM='/usr/bin/nm -B'
-lt_cv_prog_compiler_c_o=yes
-lt_cv_prog_compiler_c_o_CXX=yes
-lt_cv_prog_compiler_pic_works=yes
-lt_cv_prog_compiler_pic_works_CXX=yes
-lt_cv_prog_compiler_rtti_exceptions=no
-lt_cv_prog_compiler_static_works=yes
-lt_cv_prog_compiler_static_works_CXX=yes
-lt_cv_prog_gnu_ld=yes
-lt_cv_prog_gnu_ldcxx=yes
-lt_cv_sys_global_symbol_pipe='sed -n -e '\''s/^.*[	 ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[	 ][	 ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p'\'''
-lt_cv_sys_global_symbol_to_c_name_address='sed -n -e '\''s/^: \([^ ]*\) $/  {\"\1\", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW]* \([^ ]*\) \([^ ]*\)$/  {"\2", (void *) \&\2},/p'\'''
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='sed -n -e '\''s/^: \([^ ]*\) $/  {\"\1\", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW]* \([^ ]*\) \(lib[^ ]*\)$/  {"\2", (void *) \&\2},/p'\'' -e '\''s/^[ABCDGIRSTW]* \([^ ]*\) \([^ ]*\)$/  {"lib\2", (void *) \&\2},/p'\'''
-lt_cv_sys_global_symbol_to_cdecl='sed -n -e '\''s/^T .* \(.*\)$/extern int \1();/p'\'' -e '\''s/^[ABCDGIRSTW]* .* \(.*\)$/extern char \1;/p'\'''
-lt_cv_sys_max_cmd_len=3458764513820540925
-
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-
-ACLOCAL='${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run aclocal-1.11'
-AMDEPBACKSLASH='\'
-AMDEP_FALSE='#'
-AMDEP_TRUE=''
-AMTAR='${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run tar'
-AM_CXXFLAGS=''
-AR='ar'
-AS='as'
-AUTOCONF='${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run autoconf'
-AUTOHEADER='${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run autoheader'
-AUTOMAKE='${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run automake-1.11'
-AWK='gawk'
-CC='x86_64-linux-gnu-gcc'
-CCDEPMODE='depmode=gcc3'
-CFLAGS='-Wall -g -O2'
-CPP='x86_64-linux-gnu-gcc -E'
-CPPFLAGS=''
-CXX='x86_64-linux-gnu-g++'
-CXXCPP='x86_64-linux-gnu-g++ -E'
-CXXDEPMODE='depmode=gcc3'
-CXXFLAGS='-g -O2'
-CYGPATH_W='echo'
-DEFS=''
-DEPDIR='.deps'
-DLLTOOL='dlltool'
-DSYMUTIL=''
-DUMPBIN=''
-ECHO_C=''
-ECHO_N='-n'
-ECHO_T=''
-EGREP='/bin/grep -E'
-EXEEXT=''
-FGREP='/bin/grep -F'
-FLTK_FLAGS=''
-FLTK_LIBS=''
-GIF_FLAGS=''
-GIF_LIBS=''
-GLUT_FLAGS='-DHAVE_GLUT'
-GLUT_LIBS='-lglut'
-GL_LIBS='-lGL'
-GREP='/bin/grep'
-GSL_FLAGS='-I/usr/include'
-GSL_LIBS='-L/usr/lib -lgsl -lgslcblas -lm'
-HAVE_SWIG=''
-HDF4_FLAGS=''
-HDF4_LIBS=''
-HDF5_FLAGS='-DHAVE_HDF5 -DH5_USE_16_API'
-HDF5_LIBS='-lhdf5'
-INSTALL_DATA='${INSTALL} -m 644'
-INSTALL_PROGRAM='${INSTALL}'
-INSTALL_SCRIPT='${INSTALL}'
-INSTALL_STRIP_PROGRAM='$(install_sh) -c -s'
-JPEG_FLAGS=''
-JPEG_LIBS=''
-LD='/usr/bin/ld -m elf_x86_64'
-LDFLAGS=''
-LIBOBJS=''
-LIBS=''
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-LIPO=''
-LN_S='ln -s'
-LTLIBOBJS=''
-MAKEINFO='${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run makeinfo'
-MGL_AGE='0'
-MGL_CURRENT='5'
-MGL_RELEASE='1.10'
-MGL_REVISION='0'
-MKDIR_P='/bin/mkdir -p'
-MOC=''
-NM='/usr/bin/nm -B'
-NMEDIT=''
-OBJDUMP='objdump'
-OBJEXT='o'
-OCTAVE=''
-OCTAVE_ARCH=''
-OCTAVE_INCFLAGS=''
-OTOOL64=''
-OTOOL=''
-PACKAGE='mathgl'
-PACKAGE_BUGREPORT='mathgl.abalakin at gmail.com'
-PACKAGE_NAME='mathgl'
-PACKAGE_STRING='mathgl 1.10'
-PACKAGE_TARNAME='mathgl'
-PACKAGE_URL=''
-PACKAGE_VERSION='1.10'
-PATH_SEPARATOR=':'
-PNG_LIBS=''
-PTHREAD_FLAGS='-DHAVE_PTHREAD'
-PTHREAD_LIBS='-lpthread'
-PYTHON=''
-PYTHON_EXEC_PREFIX=''
-PYTHON_HEADERS=''
-PYTHON_PLATFORM=''
-PYTHON_PREFIX=''
-PYTHON_VERSION=''
-QMAKE=''
-QT_CFLAGS=''
-QT_CPPFLAGS=''
-QT_CXXFLAGS=''
-QT_DEFINES=''
-QT_INCPATH=''
-QT_LDFLAGS=''
-QT_LFLAGS=''
-QT_LIBS=''
-QT_PATH=''
-QT_VERSION=''
-QT_VERSION_MAJOR=''
-RANLIB='ranlib'
-RCC=''
-SED='/bin/sed'
-SET_MAKE=''
-SHELL='/bin/bash'
-STRIP='strip'
-TMPDIR=''
-UIC=''
-USE_DOCS_FALSE=''
-USE_DOCS_TRUE=''
-USE_FLTK_FALSE=''
-USE_FLTK_TRUE=''
-USE_GIF_FALSE=''
-USE_GIF_TRUE=''
-USE_GLUT_FALSE='#'
-USE_GLUT_TRUE=''
-USE_GSL_FALSE='#'
-USE_GSL_TRUE=''
-USE_HDF4_FALSE=''
-USE_HDF4_TRUE=''
-USE_HDF5_FALSE='#'
-USE_HDF5_TRUE=''
-USE_JPEG_FALSE=''
-USE_JPEG_TRUE=''
-USE_OCTAVE_FALSE=''
-USE_OCTAVE_TRUE=''
-USE_PTHREAD_FALSE='#'
-USE_PTHREAD_TRUE=''
-USE_PYTHON_FALSE=''
-USE_PYTHON_TRUE=''
-USE_QT_FALSE=''
-USE_QT_TRUE=''
-USE_TESTIO_FALSE=''
-USE_TESTIO_TRUE=''
-USE_WX_FALSE=''
-USE_WX_TRUE=''
-VERSION='1.10'
-WX_FLAGS=''
-WX_LIBS=''
-ac_ct_CC=''
-ac_ct_CXX=''
-ac_ct_DUMPBIN=''
-am__EXEEXT_FALSE=''
-am__EXEEXT_TRUE=''
-am__fastdepCC_FALSE='#'
-am__fastdepCC_TRUE=''
-am__fastdepCXX_FALSE='#'
-am__fastdepCXX_TRUE=''
-am__include='include'
-am__isrc=''
-am__leading_dot='.'
-am__quote=''
-am__tar='${AMTAR} chof - "$$tardir"'
-am__untar='${AMTAR} xf -'
-bindir='${exec_prefix}/bin'
-build='x86_64-pc-linux-gnu'
-build_alias='x86_64-linux-gnu'
-build_cpu='x86_64'
-build_os='linux-gnu'
-build_vendor='pc'
-datadir='${datarootdir}'
-datarootdir='${prefix}/share'
-docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-dvidir='${docdir}'
-exec_prefix='NONE'
-host='x86_64-pc-linux-gnu'
-host_alias='x86_64-linux-gnu'
-host_cpu='x86_64'
-host_os='linux-gnu'
-host_vendor='pc'
-htmldir='${docdir}'
-includedir='${prefix}/include'
-infodir='${prefix}/share/info'
-install_sh='${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/install-sh'
-libdir='${exec_prefix}/lib'
-libexecdir='${exec_prefix}/libexec'
-localedir='${datarootdir}/locale'
-localstatedir='${prefix}/var'
-lt_ECHO='echo'
-mandir='${prefix}/share/man'
-mkdir_p='/bin/mkdir -p'
-oldincludedir='/usr/include'
-pdfdir='${docdir}'
-pkgpyexecdir=''
-pkgpythondir=''
-prefix='/usr'
-program_transform_name='s,x,x,'
-psdir='${docdir}'
-pyexecdir=''
-pythondir=''
-sbindir='${exec_prefix}/sbin'
-sharedstatedir='${prefix}/com'
-sysconfdir='${prefix}/etc'
-target_alias=''
-
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-
-/* confdefs.h */
-#define PACKAGE_NAME "mathgl"
-#define PACKAGE_TARNAME "mathgl"
-#define PACKAGE_VERSION "1.10"
-#define PACKAGE_STRING "mathgl 1.10"
-#define PACKAGE_BUGREPORT "mathgl.abalakin at gmail.com"
-#define PACKAGE_URL ""
-#define PACKAGE "mathgl"
-#define VERSION "1.10"
-#define STDC_HEADERS 1
-#define HAVE_SYS_TYPES_H 1
-#define HAVE_SYS_STAT_H 1
-#define HAVE_STDLIB_H 1
-#define HAVE_STRING_H 1
-#define HAVE_MEMORY_H 1
-#define HAVE_STRINGS_H 1
-#define HAVE_INTTYPES_H 1
-#define HAVE_STDINT_H 1
-#define HAVE_UNISTD_H 1
-#define HAVE_DLFCN_H 1
-#define LT_OBJDIR ".libs/"
-#define MGL_USE_DOUBLE 0
-
-configure: exit 0
diff --git a/configure b/configure
index 96ab6cf..8245fcd 100755
--- a/configure
+++ b/configure
@@ -8735,10 +8735,6 @@ _lt_linker_boilerplate=`cat conftest.err`
 $RM -r conftest*
 
 
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
 if test -n "$compiler"; then
 
 lt_prog_compiler_no_builtin_flag=
@@ -8764,11 +8760,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8767: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8763: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:8771: \$? = $ac_status" >&5
+   echo "$as_me:8767: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -9103,11 +9099,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9106: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9102: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:9110: \$? = $ac_status" >&5
+   echo "$as_me:9106: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -9208,11 +9204,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9211: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9207: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:9215: \$? = $ac_status" >&5
+   echo "$as_me:9211: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -9263,11 +9259,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9266: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9262: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:9270: \$? = $ac_status" >&5
+   echo "$as_me:9266: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -11647,7 +11643,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11650 "configure"
+#line 11646 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11743,7 +11739,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11746 "configure"
+#line 11742 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -13699,11 +13695,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13702: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13698: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:13706: \$? = $ac_status" >&5
+   echo "$as_me:13702: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -13798,11 +13794,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13801: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13797: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:13805: \$? = $ac_status" >&5
+   echo "$as_me:13801: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -13850,11 +13846,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13853: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13849: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:13857: \$? = $ac_status" >&5
+   echo "$as_me:13853: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
diff --git a/configure-stamp b/configure-stamp
deleted file mode 100644
index e69de29..0000000
diff --git a/debian/control b/debian/control
index 18f735d..9b8bda7 100644
--- a/debian/control
+++ b/debian/control
@@ -9,7 +9,7 @@ Build-Depends: debhelper (>= 7), libltdl-dev, libgsl0-dev, freeglut3-dev,
  libjpeg-dev, libtiff-dev, libfltk-dev, libqt4-dev, libwxgtk2.8-dev, swig, 
  texinfo, texi2html, texlive, texlive-generic-recommended, octave3.2-headers,
  libgif-dev, autoconf, automake, quilt, python, python-dev, python-numpy,
- imagemagick
+ libhdf4-dev
 Standards-Version: 3.9.1
 Homepage: http://mathgl.sourceforge.net/index.html
 Vcs-Git: git://git.debian.org/debian-science/packages/mathgl.git
diff --git a/debian/files b/debian/files
new file mode 100644
index 0000000..fb97f91
--- /dev/null
+++ b/debian/files
@@ -0,0 +1,10 @@
+mathgl_1.11-1_amd64.deb libs optional
+mathgl-doc_1.11-1_all.deb doc optional
+libmgl5_1.11-1_amd64.deb libs optional
+libmgl-data_1.11-1_all.deb misc optional
+libmgl-dev_1.11-1_amd64.deb libdevel optional
+libmgl-fltk5_1.11-1_amd64.deb libs optional
+libmgl-qt5_1.11-1_amd64.deb libs optional
+libmgl-wx5_1.11-1_amd64.deb libs optional
+libmgl-glut5_1.11-1_amd64.deb libs optional
+python-mathgl_1.11-1_amd64.deb python optional
diff --git a/debian/folder/mathgl-doc b/debian/folder/mathgl-doc
index 832ae01..bf06cd2 100644
--- a/debian/folder/mathgl-doc
+++ b/debian/folder/mathgl-doc
@@ -10,9 +10,6 @@ Format: HTML
 Index: /usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en.html
 Files: /usr/share/doc/mathgl-doc/en/mathgl_en.html/*.html
 
-Format: PDF
-Files: /usr/share/doc/mathgl-doc/mathgl_en.pdf.gz
-
 Format: Info
 Index: /usr/share/info/mathgl_en.info.gz
 Files: /usr/share/info/mathgl_en.info*.gz
\ No newline at end of file
diff --git a/debian/folder/mathgl-doc~ b/debian/folder/mathgl-doc~
new file mode 100644
index 0000000..3580d47
--- /dev/null
+++ b/debian/folder/mathgl-doc~
@@ -0,0 +1,18 @@
+Document: mathgl-doc
+Title: Debian mathgl Manual
+Author: Alexey Balakin
+Abstract: This manual describes the usage
+ of mathgl for the production of high 
+ quality plots.
+Section: Science/Data Analysis
+
+Format: HTML
+Index: /usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en.html
+Files: /usr/share/doc/mathgl-doc/en/mathgl_en.html/*.html
+
+# Format: PDF
+#Files: /usr/share/doc/mathgl-doc/mathgl_en.pdf.gz
+
+Format: Info
+Index: /usr/share/info/mathgl_en.info.gz
+Files: /usr/share/info/mathgl_en.info*.gz
\ No newline at end of file
diff --git a/debian/libmgl-data.debhelper.log b/debian/libmgl-data.debhelper.log
new file mode 100644
index 0000000..1174084
--- /dev/null
+++ b/debian/libmgl-data.debhelper.log
@@ -0,0 +1,15 @@
+dh_prep
+dh_installchangelogs
+dh_installdocs
+dh_install
+dh_link
+dh_strip
+dh_compress
+dh_fixperms
+dh_makeshlibs
+dh_installdeb
+dh_installman
+dh_shlibdeps
+dh_gencontrol
+dh_md5sums
+dh_builddeb
diff --git a/debian/libmgl-data.substvars b/debian/libmgl-data.substvars
new file mode 100644
index 0000000..abd3ebe
--- /dev/null
+++ b/debian/libmgl-data.substvars
@@ -0,0 +1 @@
+misc:Depends=
diff --git a/debian/libmgl-data/DEBIAN/control b/debian/libmgl-data/DEBIAN/control
new file mode 100644
index 0000000..f1203e8
--- /dev/null
+++ b/debian/libmgl-data/DEBIAN/control
@@ -0,0 +1,17 @@
+Package: libmgl-data
+Source: mathgl
+Version: 1.11-1
+Architecture: all
+Maintainer: Debian Science Maintainers <debian-science-maintainers at lists.alioth.debian.org>
+Installed-Size: 3964
+Section: misc
+Priority: optional
+Homepage: http://mathgl.sourceforge.net/index.html
+Description: library for scientific graphs. (data files)
+ A free cross-platform library of fast C++ routines for plotting data in up
+ to 3 dimensions. It can export plots to bitmaps and vector EPS, SVG, IDTF
+ files. There are simple window interfaces based on GLUT, FLTK and/or Qt.
+ MathGL can also be used in the console. There are interfaces to a set of
+ languages, such as, C, Fortran, Pascal, Forth, Python, Octave.
+ .
+ This package contains the MathGL data files.
diff --git a/debian/libmgl-data/DEBIAN/md5sums b/debian/libmgl-data/DEBIAN/md5sums
new file mode 100644
index 0000000..0087929
--- /dev/null
+++ b/debian/libmgl-data/DEBIAN/md5sums
@@ -0,0 +1,8 @@
+1c92e8b7f012e099103c470392856dbc  usr/share/doc/libmgl-data/changelog.Debian.gz
+a280771232296099803f36a37509d1ca  usr/share/doc/libmgl-data/changelog.gz
+3a712fb4482d591b961d2f1791b6aa63  usr/share/doc/libmgl-data/copyright
+23c412fea5add69d2be62ce4b3b056e1  usr/share/mathgl/fonts/STIX.vfm
+e811bae6fd5a9e4346e7798990fe9ea3  usr/share/mathgl/fonts/STIX_b.vfm
+9f0a2593fa5042e94364f11f6f816224  usr/share/mathgl/fonts/STIX_bi.vfm
+7482076b453a592616553d724c8faef5  usr/share/mathgl/fonts/STIX_i.vfm
+7d00e58ed9b80f7fa05f7ef95c9ac897  usr/share/mathgl/octave/mathgl.tar.gz
diff --git a/debian/libmgl-data/usr/share/doc/libmgl-data/changelog.Debian.gz b/debian/libmgl-data/usr/share/doc/libmgl-data/changelog.Debian.gz
new file mode 100644
index 0000000..b8480bb
Binary files /dev/null and b/debian/libmgl-data/usr/share/doc/libmgl-data/changelog.Debian.gz differ
diff --git a/debian/libmgl-data/usr/share/doc/libmgl-data/changelog.gz b/debian/libmgl-data/usr/share/doc/libmgl-data/changelog.gz
new file mode 100644
index 0000000..be3de85
Binary files /dev/null and b/debian/libmgl-data/usr/share/doc/libmgl-data/changelog.gz differ
diff --git a/debian/copyright b/debian/libmgl-data/usr/share/doc/libmgl-data/copyright
similarity index 100%
copy from debian/copyright
copy to debian/libmgl-data/usr/share/doc/libmgl-data/copyright
diff --git a/debian/libmgl-data/usr/share/mathgl/octave/mathgl.tar.gz b/debian/libmgl-data/usr/share/mathgl/octave/mathgl.tar.gz
new file mode 100644
index 0000000..9698e14
Binary files /dev/null and b/debian/libmgl-data/usr/share/mathgl/octave/mathgl.tar.gz differ
diff --git a/debian/libmgl-dev.debhelper.log b/debian/libmgl-dev.debhelper.log
new file mode 100644
index 0000000..1174084
--- /dev/null
+++ b/debian/libmgl-dev.debhelper.log
@@ -0,0 +1,15 @@
+dh_prep
+dh_installchangelogs
+dh_installdocs
+dh_install
+dh_link
+dh_strip
+dh_compress
+dh_fixperms
+dh_makeshlibs
+dh_installdeb
+dh_installman
+dh_shlibdeps
+dh_gencontrol
+dh_md5sums
+dh_builddeb
diff --git a/debian/libmgl-dev.substvars b/debian/libmgl-dev.substvars
new file mode 100644
index 0000000..abd3ebe
--- /dev/null
+++ b/debian/libmgl-dev.substvars
@@ -0,0 +1 @@
+misc:Depends=
diff --git a/debian/libmgl-dev/DEBIAN/control b/debian/libmgl-dev/DEBIAN/control
new file mode 100644
index 0000000..bea1350
--- /dev/null
+++ b/debian/libmgl-dev/DEBIAN/control
@@ -0,0 +1,18 @@
+Package: libmgl-dev
+Source: mathgl
+Version: 1.11-1
+Architecture: amd64
+Maintainer: Debian Science Maintainers <debian-science-maintainers at lists.alioth.debian.org>
+Installed-Size: 3792
+Depends: libmgl5 (= 1.11-1), libgsl0-dev, libgl1-mesa-dev | libgl-dev, libpng-dev
+Section: libdevel
+Priority: optional
+Homepage: http://mathgl.sourceforge.net/index.html
+Description: library for scientific graphs. (development files)
+ A free cross-platform library of fast C++ routines for plotting data in up
+ to 3 dimensions. It can export plots to bitmaps and vector EPS, SVG, IDTF
+ files. There are simple window interfaces based on GLUT, FLTK and/or Qt.
+ MathGL can also be used in the console. There are interfaces to a set of
+ languages, such as, C, Fortran, Pascal, Forth, Python, Octave.
+ .
+ This package contains the development files.
diff --git a/debian/libmgl-dev/DEBIAN/md5sums b/debian/libmgl-dev/DEBIAN/md5sums
new file mode 100644
index 0000000..4f3bfd8
--- /dev/null
+++ b/debian/libmgl-dev/DEBIAN/md5sums
@@ -0,0 +1,39 @@
+540a78070292b476d085291f1d110991  usr/include/mgl/config.h
+c0dc8fe28e710800c30dfa8ef4a05363  usr/include/mgl/gsl.fs
+4e4ab03d40fb7e121645606641de7bd8  usr/include/mgl/mathgl.fs
+ec4cfa02863a2dd4ec6731f24e5f20f4  usr/include/mgl/mgl.h
+d3ac22fd1244b0d2a08aa666ac76a856  usr/include/mgl/mgl_ab.h
+880bb8165f11508a3264002abe4e7586  usr/include/mgl/mgl_addon.h
+27eaafc82519aab666df6f702eb1a672  usr/include/mgl/mgl_c.h
+6b8752a5367319a8e507e499db40b9c6  usr/include/mgl/mgl_data.h
+7c16cd2168ab5743be92e7c94a8992bb  usr/include/mgl/mgl_define.h
+205f009ca8ace04f751a770c676ea563  usr/include/mgl/mgl_eps.h
+4206213c2f6fd1f9fd75ae02a4db32b9  usr/include/mgl/mgl_eval.h
+4d7ff7cc78711392a12091cbbf3aa783  usr/include/mgl/mgl_evalc.h
+5ebdbc826d7918744a4626a27a0872f7  usr/include/mgl/mgl_f.h
+fbb5d70763c3ebf9bb174b3926a7c0d0  usr/include/mgl/mgl_fltk.h
+bf04391c7f02c53e713b4cc49b2bcd9d  usr/include/mgl/mgl_font.h
+a42170087a6ecf59f673ec6db8989fa1  usr/include/mgl/mgl_gl.h
+f11eae811a0ba16742036f2481624d9f  usr/include/mgl/mgl_glut.h
+bcb3e9c62ad0d21f089b4a60a67fbfbe  usr/include/mgl/mgl_idtf.h
+e05d1eb2b2754eb1a647ce91b831ba34  usr/include/mgl/mgl_parse.h
+d5ea5814a85cad836b4f80f8778d1e1e  usr/include/mgl/mgl_pas.pas
+090ca94ca5ee0d71e4e7e1e1e4623cb6  usr/include/mgl/mgl_qt.h
+b6a1715dcc563b271a14e9fc17aedba3  usr/include/mgl/mgl_w.h
+81f920d87d40a523a61e0565d55fa496  usr/include/mgl/mgl_wx.h
+3c83bc40297fb5880b7b8ed44bc84cca  usr/include/mgl/mgl_zb.h
+0fb87cb204faefb3a1b49f55bb82ac0c  usr/include/mgl/mglplot.fs
+e6a5948e2675149a2419d101d0640d8f  usr/include/mgl/vectors.fs
+7d46d9d5ec21c4318ee68f175c79de64  usr/lib/libmgl-fltk.a
+3687a9fb4d5206b420238ec04dcac7b6  usr/lib/libmgl-fltk.la
+6add27bf92a3dcffabcedf606dfb2f93  usr/lib/libmgl-glut.a
+044c3c3fd84807acbea411e03f1bdf09  usr/lib/libmgl-glut.la
+1c435a5900e0c95897cefd498afe2e3c  usr/lib/libmgl-qt.a
+e30de447065f6879077b4e81d12477ab  usr/lib/libmgl-qt.la
+918993fde77e9efd406aa5ca8009fc74  usr/lib/libmgl-wx.a
+5afb6a072421f75584590a188c626705  usr/lib/libmgl-wx.la
+fa0d63b4beacc6a90c658e428864e5e6  usr/lib/libmgl.a
+3313a757c7b726805e1890429f6da110  usr/lib/libmgl.la
+1c92e8b7f012e099103c470392856dbc  usr/share/doc/libmgl-dev/changelog.Debian.gz
+a280771232296099803f36a37509d1ca  usr/share/doc/libmgl-dev/changelog.gz
+3a712fb4482d591b961d2f1791b6aa63  usr/share/doc/libmgl-dev/copyright
diff --git a/debian/libmgl-dev/usr/include/mgl/config.h b/debian/libmgl-dev/usr/include/mgl/config.h
new file mode 100644
index 0000000..170e463
--- /dev/null
+++ b/debian/libmgl-dev/usr/include/mgl/config.h
@@ -0,0 +1,66 @@
+/* include/mgl/config.h.  Generated from config.h.in by configure.  */
+/* include/mgl/config.h.in.  Generated from configure.ac by autoheader.  */
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+   */
+#define LT_OBJDIR ".libs/"
+
+/* This define enables double precision in MathGL */
+#define MGL_USE_DOUBLE 0
+
+/* Name of package */
+#define PACKAGE "mathgl"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "mathgl.abalakin at gmail.com"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "mathgl"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "mathgl 1.10"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "mathgl"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "1.10"
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Version number of package */
+#define VERSION "1.10"
diff --git a/include/mgl/gsl.fs b/debian/libmgl-dev/usr/include/mgl/gsl.fs
similarity index 100%
copy from include/mgl/gsl.fs
copy to debian/libmgl-dev/usr/include/mgl/gsl.fs
diff --git a/include/mgl/mathgl.fs b/debian/libmgl-dev/usr/include/mgl/mathgl.fs
similarity index 100%
copy from include/mgl/mathgl.fs
copy to debian/libmgl-dev/usr/include/mgl/mathgl.fs
diff --git a/include/mgl/mgl.h b/debian/libmgl-dev/usr/include/mgl/mgl.h
similarity index 100%
copy from include/mgl/mgl.h
copy to debian/libmgl-dev/usr/include/mgl/mgl.h
diff --git a/include/mgl/mgl_ab.h b/debian/libmgl-dev/usr/include/mgl/mgl_ab.h
similarity index 100%
copy from include/mgl/mgl_ab.h
copy to debian/libmgl-dev/usr/include/mgl/mgl_ab.h
diff --git a/include/mgl/mgl_addon.h b/debian/libmgl-dev/usr/include/mgl/mgl_addon.h
similarity index 100%
copy from include/mgl/mgl_addon.h
copy to debian/libmgl-dev/usr/include/mgl/mgl_addon.h
diff --git a/include/mgl/mgl_c.h b/debian/libmgl-dev/usr/include/mgl/mgl_c.h
similarity index 100%
copy from include/mgl/mgl_c.h
copy to debian/libmgl-dev/usr/include/mgl/mgl_c.h
diff --git a/include/mgl/mgl_data.h b/debian/libmgl-dev/usr/include/mgl/mgl_data.h
similarity index 100%
copy from include/mgl/mgl_data.h
copy to debian/libmgl-dev/usr/include/mgl/mgl_data.h
diff --git a/include/mgl/mgl_define.h b/debian/libmgl-dev/usr/include/mgl/mgl_define.h
similarity index 100%
copy from include/mgl/mgl_define.h
copy to debian/libmgl-dev/usr/include/mgl/mgl_define.h
diff --git a/include/mgl/mgl_eps.h b/debian/libmgl-dev/usr/include/mgl/mgl_eps.h
similarity index 100%
copy from include/mgl/mgl_eps.h
copy to debian/libmgl-dev/usr/include/mgl/mgl_eps.h
diff --git a/include/mgl/mgl_eval.h b/debian/libmgl-dev/usr/include/mgl/mgl_eval.h
similarity index 100%
copy from include/mgl/mgl_eval.h
copy to debian/libmgl-dev/usr/include/mgl/mgl_eval.h
diff --git a/include/mgl/mgl_evalc.h b/debian/libmgl-dev/usr/include/mgl/mgl_evalc.h
similarity index 100%
copy from include/mgl/mgl_evalc.h
copy to debian/libmgl-dev/usr/include/mgl/mgl_evalc.h
diff --git a/include/mgl/mgl_f.h b/debian/libmgl-dev/usr/include/mgl/mgl_f.h
similarity index 100%
copy from include/mgl/mgl_f.h
copy to debian/libmgl-dev/usr/include/mgl/mgl_f.h
diff --git a/include/mgl/mgl_fltk.h b/debian/libmgl-dev/usr/include/mgl/mgl_fltk.h
similarity index 100%
copy from include/mgl/mgl_fltk.h
copy to debian/libmgl-dev/usr/include/mgl/mgl_fltk.h
diff --git a/include/mgl/mgl_font.h b/debian/libmgl-dev/usr/include/mgl/mgl_font.h
similarity index 100%
copy from include/mgl/mgl_font.h
copy to debian/libmgl-dev/usr/include/mgl/mgl_font.h
diff --git a/include/mgl/mgl_gl.h b/debian/libmgl-dev/usr/include/mgl/mgl_gl.h
similarity index 100%
copy from include/mgl/mgl_gl.h
copy to debian/libmgl-dev/usr/include/mgl/mgl_gl.h
diff --git a/include/mgl/mgl_glut.h b/debian/libmgl-dev/usr/include/mgl/mgl_glut.h
similarity index 100%
copy from include/mgl/mgl_glut.h
copy to debian/libmgl-dev/usr/include/mgl/mgl_glut.h
diff --git a/include/mgl/mgl_idtf.h b/debian/libmgl-dev/usr/include/mgl/mgl_idtf.h
similarity index 100%
copy from include/mgl/mgl_idtf.h
copy to debian/libmgl-dev/usr/include/mgl/mgl_idtf.h
diff --git a/include/mgl/mgl_parse.h b/debian/libmgl-dev/usr/include/mgl/mgl_parse.h
similarity index 100%
copy from include/mgl/mgl_parse.h
copy to debian/libmgl-dev/usr/include/mgl/mgl_parse.h
diff --git a/include/mgl/mgl_pas.pas b/debian/libmgl-dev/usr/include/mgl/mgl_pas.pas
similarity index 100%
copy from include/mgl/mgl_pas.pas
copy to debian/libmgl-dev/usr/include/mgl/mgl_pas.pas
diff --git a/include/mgl/mgl_qt.h b/debian/libmgl-dev/usr/include/mgl/mgl_qt.h
similarity index 100%
copy from include/mgl/mgl_qt.h
copy to debian/libmgl-dev/usr/include/mgl/mgl_qt.h
diff --git a/include/mgl/mgl_w.h b/debian/libmgl-dev/usr/include/mgl/mgl_w.h
similarity index 100%
copy from include/mgl/mgl_w.h
copy to debian/libmgl-dev/usr/include/mgl/mgl_w.h
diff --git a/include/mgl/mgl_wx.h b/debian/libmgl-dev/usr/include/mgl/mgl_wx.h
similarity index 100%
copy from include/mgl/mgl_wx.h
copy to debian/libmgl-dev/usr/include/mgl/mgl_wx.h
diff --git a/include/mgl/mgl_zb.h b/debian/libmgl-dev/usr/include/mgl/mgl_zb.h
similarity index 100%
copy from include/mgl/mgl_zb.h
copy to debian/libmgl-dev/usr/include/mgl/mgl_zb.h
diff --git a/include/mgl/mglplot.fs b/debian/libmgl-dev/usr/include/mgl/mglplot.fs
similarity index 100%
copy from include/mgl/mglplot.fs
copy to debian/libmgl-dev/usr/include/mgl/mglplot.fs
diff --git a/include/mgl/vectors.fs b/debian/libmgl-dev/usr/include/mgl/vectors.fs
similarity index 100%
copy from include/mgl/vectors.fs
copy to debian/libmgl-dev/usr/include/mgl/vectors.fs
diff --git a/debian/libmgl-dev/usr/lib/libmgl-fltk.a b/debian/libmgl-dev/usr/lib/libmgl-fltk.a
new file mode 100644
index 0000000..7e9e43a
Binary files /dev/null and b/debian/libmgl-dev/usr/lib/libmgl-fltk.a differ
diff --git a/debian/libmgl-dev/usr/lib/libmgl-fltk.la b/debian/libmgl-dev/usr/lib/libmgl-fltk.la
new file mode 100644
index 0000000..c165b8f
--- /dev/null
+++ b/debian/libmgl-dev/usr/lib/libmgl-fltk.la
@@ -0,0 +1,41 @@
+# libmgl-fltk.la - a libtool library file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libmgl-fltk.so.5'
+
+# Names of this library.
+library_names='libmgl-fltk.so.5.0.0 libmgl-fltk.so.5 libmgl-fltk.so'
+
+# The name of the static archive.
+old_library='libmgl-fltk.a'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -R/tmp/buildd/libhdf4-4.2r4/HDF4/mfhdf/libsrc/.libs -R/tmp/buildd/libhdf4-4.2r4/HDF4/hdf/src/.libs -lfltk /usr/lib/libmgl.la -lpng -lGL -L/usr/lib -lgsl -lgslcblas /usr/lib/libmfhdf.la /usr/lib/libdf.la /usr/lib/libhdf5.la -lpthread -lz /usr/lib/libgif.la /usr/lib/libjpeg.la'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libmgl-fltk.
+current=5
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=yes
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/lib'
diff --git a/debian/libmgl-dev/usr/lib/libmgl-fltk.so b/debian/libmgl-dev/usr/lib/libmgl-fltk.so
new file mode 120000
index 0000000..59ab499
--- /dev/null
+++ b/debian/libmgl-dev/usr/lib/libmgl-fltk.so
@@ -0,0 +1 @@
+libmgl-fltk.so.5.0.0
\ No newline at end of file
diff --git a/debian/libmgl-dev/usr/lib/libmgl-glut.a b/debian/libmgl-dev/usr/lib/libmgl-glut.a
new file mode 100644
index 0000000..fddfe36
Binary files /dev/null and b/debian/libmgl-dev/usr/lib/libmgl-glut.a differ
diff --git a/debian/libmgl-dev/usr/lib/libmgl-glut.la b/debian/libmgl-dev/usr/lib/libmgl-glut.la
new file mode 100644
index 0000000..f2b0f7b
--- /dev/null
+++ b/debian/libmgl-dev/usr/lib/libmgl-glut.la
@@ -0,0 +1,41 @@
+# libmgl-glut.la - a libtool library file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libmgl-glut.so.5'
+
+# Names of this library.
+library_names='libmgl-glut.so.5.0.0 libmgl-glut.so.5 libmgl-glut.so'
+
+# The name of the static archive.
+old_library='libmgl-glut.a'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -R/tmp/buildd/libhdf4-4.2r4/HDF4/mfhdf/libsrc/.libs -R/tmp/buildd/libhdf4-4.2r4/HDF4/hdf/src/.libs -lglut /usr/lib/libmgl.la -lpng -lGL -L/usr/lib -lgsl -lgslcblas /usr/lib/libmfhdf.la /usr/lib/libdf.la /usr/lib/libhdf5.la -lpthread -lz /usr/lib/libgif.la /usr/lib/libjpeg.la'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libmgl-glut.
+current=5
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=yes
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/lib'
diff --git a/debian/libmgl-dev/usr/lib/libmgl-glut.so b/debian/libmgl-dev/usr/lib/libmgl-glut.so
new file mode 120000
index 0000000..c2e4f34
--- /dev/null
+++ b/debian/libmgl-dev/usr/lib/libmgl-glut.so
@@ -0,0 +1 @@
+libmgl-glut.so.5.0.0
\ No newline at end of file
diff --git a/debian/libmgl-dev/usr/lib/libmgl-qt.a b/debian/libmgl-dev/usr/lib/libmgl-qt.a
new file mode 100644
index 0000000..c64140e
Binary files /dev/null and b/debian/libmgl-dev/usr/lib/libmgl-qt.a differ
diff --git a/debian/libmgl-dev/usr/lib/libmgl-qt.la b/debian/libmgl-dev/usr/lib/libmgl-qt.la
new file mode 100644
index 0000000..7befe30
--- /dev/null
+++ b/debian/libmgl-dev/usr/lib/libmgl-qt.la
@@ -0,0 +1,41 @@
+# libmgl-qt.la - a libtool library file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libmgl-qt.so.5'
+
+# Names of this library.
+library_names='libmgl-qt.so.5.0.0 libmgl-qt.so.5 libmgl-qt.so'
+
+# The name of the static archive.
+old_library='libmgl-qt.a'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -R/tmp/buildd/libhdf4-4.2r4/HDF4/mfhdf/libsrc/.libs -R/tmp/buildd/libhdf4-4.2r4/HDF4/hdf/src/.libs -L/usr/lib -lQtGui -lQtCore /usr/lib/libmgl.la -lpng -lGL -lgsl -lgslcblas /usr/lib/libmfhdf.la /usr/lib/libdf.la /usr/lib/libhdf5.la -lpthread -lz /usr/lib/libgif.la /usr/lib/libjpeg.la'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libmgl-qt.
+current=5
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=yes
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/lib'
diff --git a/debian/libmgl-dev/usr/lib/libmgl-qt.so b/debian/libmgl-dev/usr/lib/libmgl-qt.so
new file mode 120000
index 0000000..68651a8
--- /dev/null
+++ b/debian/libmgl-dev/usr/lib/libmgl-qt.so
@@ -0,0 +1 @@
+libmgl-qt.so.5.0.0
\ No newline at end of file
diff --git a/debian/libmgl-dev/usr/lib/libmgl-wx.a b/debian/libmgl-dev/usr/lib/libmgl-wx.a
new file mode 100644
index 0000000..6204728
Binary files /dev/null and b/debian/libmgl-dev/usr/lib/libmgl-wx.a differ
diff --git a/debian/libmgl-dev/usr/lib/libmgl-wx.la b/debian/libmgl-dev/usr/lib/libmgl-wx.la
new file mode 100644
index 0000000..45119fa
--- /dev/null
+++ b/debian/libmgl-dev/usr/lib/libmgl-wx.la
@@ -0,0 +1,41 @@
+# libmgl-wx.la - a libtool library file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libmgl-wx.so.5'
+
+# Names of this library.
+library_names='libmgl-wx.so.5.0.0 libmgl-wx.so.5 libmgl-wx.so'
+
+# The name of the static archive.
+old_library='libmgl-wx.a'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=' -pthread'
+
+# Libraries that this one depends upon.
+dependency_libs=' -R/tmp/buildd/libhdf4-4.2r4/HDF4/mfhdf/libsrc/.libs -R/tmp/buildd/libhdf4-4.2r4/HDF4/hdf/src/.libs -lwx_gtk2u_richtext-2.8 -lwx_gtk2u_aui-2.8 -lwx_gtk2u_xrc-2.8 -lwx_gtk2u_qa-2.8 -lwx_gtk2u_html-2.8 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8 /usr/lib/libmgl.la -lpng -lGL -L/usr/lib -lgsl -lgslcblas /usr/lib/libmfhdf.la /usr/lib/libdf.la /usr/lib/libhdf5.la -lpthread -lz /usr/lib/libgif.la /usr/lib/libjpeg.la'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libmgl-wx.
+current=5
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=yes
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/lib'
diff --git a/debian/libmgl-dev/usr/lib/libmgl-wx.so b/debian/libmgl-dev/usr/lib/libmgl-wx.so
new file mode 120000
index 0000000..37b70a5
--- /dev/null
+++ b/debian/libmgl-dev/usr/lib/libmgl-wx.so
@@ -0,0 +1 @@
+libmgl-wx.so.5.0.0
\ No newline at end of file
diff --git a/debian/libmgl-dev/usr/lib/libmgl.a b/debian/libmgl-dev/usr/lib/libmgl.a
new file mode 100644
index 0000000..c54aa85
Binary files /dev/null and b/debian/libmgl-dev/usr/lib/libmgl.a differ
diff --git a/debian/libmgl-dev/usr/lib/libmgl.la b/debian/libmgl-dev/usr/lib/libmgl.la
new file mode 100644
index 0000000..c03aae9
--- /dev/null
+++ b/debian/libmgl-dev/usr/lib/libmgl.la
@@ -0,0 +1,41 @@
+# libmgl.la - a libtool library file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libmgl.so.5'
+
+# Names of this library.
+library_names='libmgl.so.5.0.0 libmgl.so.5 libmgl.so'
+
+# The name of the static archive.
+old_library='libmgl.a'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -R/tmp/buildd/libhdf4-4.2r4/HDF4/mfhdf/libsrc/.libs -R/tmp/buildd/libhdf4-4.2r4/HDF4/hdf/src/.libs -lpng -lGL -L/usr/lib -lgsl -lgslcblas /usr/lib/libmfhdf.la /usr/lib/libdf.la /usr/lib/libhdf5.la -lpthread -lz /usr/lib/libgif.la /usr/lib/libjpeg.la'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libmgl.
+current=5
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=yes
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/lib'
diff --git a/debian/libmgl-dev/usr/lib/libmgl.so b/debian/libmgl-dev/usr/lib/libmgl.so
new file mode 120000
index 0000000..3b755b8
--- /dev/null
+++ b/debian/libmgl-dev/usr/lib/libmgl.so
@@ -0,0 +1 @@
+libmgl.so.5.0.0
\ No newline at end of file
diff --git a/debian/libmgl-dev/usr/share/doc/libmgl-dev/changelog.Debian.gz b/debian/libmgl-dev/usr/share/doc/libmgl-dev/changelog.Debian.gz
new file mode 100644
index 0000000..b8480bb
Binary files /dev/null and b/debian/libmgl-dev/usr/share/doc/libmgl-dev/changelog.Debian.gz differ
diff --git a/debian/libmgl-dev/usr/share/doc/libmgl-dev/changelog.gz b/debian/libmgl-dev/usr/share/doc/libmgl-dev/changelog.gz
new file mode 100644
index 0000000..be3de85
Binary files /dev/null and b/debian/libmgl-dev/usr/share/doc/libmgl-dev/changelog.gz differ
diff --git a/debian/copyright b/debian/libmgl-dev/usr/share/doc/libmgl-dev/copyright
similarity index 100%
copy from debian/copyright
copy to debian/libmgl-dev/usr/share/doc/libmgl-dev/copyright
diff --git a/debian/libmgl-fltk5.debhelper.log b/debian/libmgl-fltk5.debhelper.log
new file mode 100644
index 0000000..1174084
--- /dev/null
+++ b/debian/libmgl-fltk5.debhelper.log
@@ -0,0 +1,15 @@
+dh_prep
+dh_installchangelogs
+dh_installdocs
+dh_install
+dh_link
+dh_strip
+dh_compress
+dh_fixperms
+dh_makeshlibs
+dh_installdeb
+dh_installman
+dh_shlibdeps
+dh_gencontrol
+dh_md5sums
+dh_builddeb
diff --git a/debian/libmgl-fltk5.postinst.debhelper b/debian/libmgl-fltk5.postinst.debhelper
new file mode 100644
index 0000000..3d89d3e
--- /dev/null
+++ b/debian/libmgl-fltk5.postinst.debhelper
@@ -0,0 +1,5 @@
+# Automatically added by dh_makeshlibs
+if [ "$1" = "configure" ]; then
+	ldconfig
+fi
+# End automatically added section
diff --git a/debian/libmgl-fltk5.postrm.debhelper b/debian/libmgl-fltk5.postrm.debhelper
new file mode 100644
index 0000000..7f44047
--- /dev/null
+++ b/debian/libmgl-fltk5.postrm.debhelper
@@ -0,0 +1,5 @@
+# Automatically added by dh_makeshlibs
+if [ "$1" = "remove" ]; then
+	ldconfig
+fi
+# End automatically added section
diff --git a/debian/libmgl-fltk5.substvars b/debian/libmgl-fltk5.substvars
new file mode 100644
index 0000000..567be3f
--- /dev/null
+++ b/debian/libmgl-fltk5.substvars
@@ -0,0 +1,2 @@
+shlibs:Depends=libc6 (>= 2.2.5), libfltk1.1 (>= 1.1.7), libgcc1 (>= 1:4.1.1), libmgl5 (>= 1.11), libstdc++6 (>= 4.1.1)
+misc:Depends=
diff --git a/debian/libmgl-fltk5.symbols b/debian/libmgl-fltk5.symbols
index 21ba178..50c1c88 100644
--- a/debian/libmgl-fltk5.symbols
+++ b/debian/libmgl-fltk5.symbols
@@ -1,84 +1,84 @@
 libmgl-fltk.so.5 libmgl-fltk5 #MINVER#
- _Z10mgl_fl_tmpPv at Base 1.10.2.1
- _Z11oncemore_cbP9Fl_WidgetPv at Base 1.10.2.1
- _Z13export_bps_cbP9Fl_WidgetPv at Base 1.10.2.1
- _Z13export_eps_cbP9Fl_WidgetPv at Base 1.10.2.1
- _Z13export_png_cbP9Fl_WidgetPv at Base 1.10.2.1
- _Z13export_svg_cbP9Fl_WidgetPv at Base 1.10.2.1
- _Z14export_jpeg_cbP9Fl_WidgetPv at Base 1.10.2.1
- _Z14export_pngn_cbP9Fl_WidgetPv at Base 1.10.2.1
- _Z5no_cbP9Fl_WidgetPv at Base 1.10.2.1
- _Z5sd_cbP9Fl_WidgetPv at Base 1.10.2.1
- _Z5sl_cbP9Fl_WidgetPv at Base 1.10.2.1
- _Z5so_cbP9Fl_WidgetPv at Base 1.10.2.1
- _Z5sr_cbP9Fl_WidgetPv at Base 1.10.2.1
- _Z5su_cbP9Fl_WidgetPv at Base 1.10.2.1
- _Z5sz_cbP9Fl_WidgetPv at Base 1.10.2.1
- _Z7draw_cbP9Fl_WidgetPv at Base 1.10.2.1
- _Z7norm_cbP9Fl_WidgetPv at Base 1.10.2.1
- _Z7quit_cbP9Fl_WidgetPv at Base 1.10.2.1
- _Z7time_cbPv at Base 1.10.2.1
- _Z7zoom_cbP9Fl_WidgetPv at Base 1.10.2.1
- _Z8alpha_cbP9Fl_WidgetPv at Base 1.10.2.1
- _Z8light_cbP9Fl_WidgetPv at Base 1.10.2.1
- _Z8mglFlRunv at Base 1.10.2.1
- _Z8snext_cbP9Fl_WidgetPv at Base 1.10.2.1
- _Z8sprev_cbP9Fl_WidgetPv at Base 1.10.2.1
- _Z8sshow_cbP9Fl_WidgetPv at Base 1.10.2.1
- _Z9adjust_cbP9Fl_WidgetPv at Base 1.10.2.1
- _Z9rotate_cbP9Fl_WidgetPv at Base 1.10.2.1
- _ZN10mglGraphAB8GetRatioEv at Base 1.10.2.1
- _ZN12mglGraphFLTK10ToggleZoomEv at Base 1.10.2.1
- _ZN12mglGraphFLTK11ToggleAlphaEv at Base 1.10.2.1
- _ZN12mglGraphFLTK11ToggleLightEv at Base 1.10.2.1
- _ZN12mglGraphFLTK12ToggleRotateEv at Base 1.10.2.1
- _ZN12mglGraphFLTK3ClfE8mglColor at Base 1.10.2.1
- _ZN12mglGraphFLTK6AdjustEv at Base 1.10.2.1
- _ZN12mglGraphFLTK6ReLoadEb at Base 1.10.2.1
- _ZN12mglGraphFLTK6UpdateEv at Base 1.10.2.1
- _ZN12mglGraphFLTK6WindowEiPPcPFiP8mglGraphPvEPKcS4_PFviS4_Eb at Base 1.10.2.1
- _ZN12mglGraphFLTK7GetBitsEv at Base 1.10.2.1
- _ZN12mglGraphFLTK7SetSizeEii at Base 1.10.2.1
- _ZN12mglGraphFLTK8EndFrameEv at Base 1.10.2.1
- _ZN12mglGraphFLTK8ToggleNoEv at Base 1.10.2.1
- _ZN12mglGraphFLTK9AnimationEv at Base 1.10.2.1
- _ZN12mglGraphFLTK9NextFrameEv at Base 1.10.2.1
- _ZN12mglGraphFLTK9PrevFrameEv at Base 1.10.2.1
- _ZN12mglGraphFLTKC1Ev at Base 1.10.2.1
- _ZN12mglGraphFLTKC2Ev at Base 1.10.2.1
- _ZN12mglGraphFLTKD0Ev at Base 1.10.2.1
- _ZN12mglGraphFLTKD1Ev at Base 1.10.2.1
- _ZN12mglGraphFLTKD2Ev at Base 1.10.2.1
- _ZN9Fl_MathGL4drawEv at Base 1.10.2.1
- _ZN9Fl_MathGL6handleEi at Base 1.10.2.1
- _ZN9Fl_MathGL6resizeEiiii at Base 1.10.2.1
- _ZN9Fl_MathGL6updateEP8mglGraph at Base 1.10.2.1
- _ZN9Fl_MathGLC1EiiiiPc at Base 1.10.2.1
- _ZN9Fl_MathGLC2EiiiiPc at Base 1.10.2.1
- _ZN9Fl_MathGLD0Ev at Base 1.10.2.1
- _ZN9Fl_MathGLD1Ev at Base 1.10.2.1
- _ZN9Fl_MathGLD2Ev at Base 1.10.2.1
- _ZN9Fl_PixmapC1EPKPKc at Base 1.10.2.1
- _ZTI12mglGraphFLTK at Base 1.10.2.1
- _ZTI9Fl_MathGL at Base 1.10.2.1
- _ZTS12mglGraphFLTK at Base 1.10.2.1
- _ZTS9Fl_MathGL at Base 1.10.2.1
- _ZTV12mglGraphFLTK at Base 1.10.2.1
- _ZTV9Fl_MathGL at Base 1.10.2.1
- menuitems at Base 1.10.2.1
- mgl_create_graph_fltk at Base 1.10.2.1
- mgl_create_graph_fltk_ at Base 1.10.2.1
- mgl_create_graph_fltk_dr at Base 1.10.2.1
- mgl_fltk_run at Base 1.10.2.1
- mgl_fltk_run_ at Base 1.10.2.1
- pop_graph at Base 1.10.2.1
- xpm_a1 at Base 1.10.2.1
- xpm_a2 at Base 1.10.2.1
- xpm_l1 at Base 1.10.2.1
- xpm_l2 at Base 1.10.2.1
- xpm_r1 at Base 1.10.2.1
- xpm_r2 at Base 1.10.2.1
- xpm_s1 at Base 1.10.2.1
- xpm_s2 at Base 1.10.2.1
- xpm_z1 at Base 1.10.2.1
- xpm_z2 at Base 1.10.2.1
\ No newline at end of file
+ _Z10mgl_fl_tmpPv at Base 1.11
+ _Z11oncemore_cbP9Fl_WidgetPv at Base 1.11
+ _Z13export_bps_cbP9Fl_WidgetPv at Base 1.11
+ _Z13export_eps_cbP9Fl_WidgetPv at Base 1.11
+ _Z13export_png_cbP9Fl_WidgetPv at Base 1.11
+ _Z13export_svg_cbP9Fl_WidgetPv at Base 1.11
+ _Z14export_jpeg_cbP9Fl_WidgetPv at Base 1.11
+ _Z14export_pngn_cbP9Fl_WidgetPv at Base 1.11
+ _Z5no_cbP9Fl_WidgetPv at Base 1.11
+ _Z5sd_cbP9Fl_WidgetPv at Base 1.11
+ _Z5sl_cbP9Fl_WidgetPv at Base 1.11
+ _Z5so_cbP9Fl_WidgetPv at Base 1.11
+ _Z5sr_cbP9Fl_WidgetPv at Base 1.11
+ _Z5su_cbP9Fl_WidgetPv at Base 1.11
+ _Z5sz_cbP9Fl_WidgetPv at Base 1.11
+ _Z7draw_cbP9Fl_WidgetPv at Base 1.11
+ _Z7norm_cbP9Fl_WidgetPv at Base 1.11
+ _Z7quit_cbP9Fl_WidgetPv at Base 1.11
+ _Z7time_cbPv at Base 1.11
+ _Z7zoom_cbP9Fl_WidgetPv at Base 1.11
+ _Z8alpha_cbP9Fl_WidgetPv at Base 1.11
+ _Z8light_cbP9Fl_WidgetPv at Base 1.11
+ _Z8mglFlRunv at Base 1.11
+ _Z8snext_cbP9Fl_WidgetPv at Base 1.11
+ _Z8sprev_cbP9Fl_WidgetPv at Base 1.11
+ _Z8sshow_cbP9Fl_WidgetPv at Base 1.11
+ _Z9adjust_cbP9Fl_WidgetPv at Base 1.11
+ _Z9rotate_cbP9Fl_WidgetPv at Base 1.11
+ _ZN10mglGraphAB8GetRatioEv at Base 1.11
+ _ZN12mglGraphFLTK10ToggleZoomEv at Base 1.11
+ _ZN12mglGraphFLTK11ToggleAlphaEv at Base 1.11
+ _ZN12mglGraphFLTK11ToggleLightEv at Base 1.11
+ _ZN12mglGraphFLTK12ToggleRotateEv at Base 1.11
+ _ZN12mglGraphFLTK3ClfE8mglColor at Base 1.11
+ _ZN12mglGraphFLTK6AdjustEv at Base 1.11
+ _ZN12mglGraphFLTK6ReLoadEb at Base 1.11
+ _ZN12mglGraphFLTK6UpdateEv at Base 1.11
+ _ZN12mglGraphFLTK6WindowEiPPcPFiP8mglGraphPvEPKcS4_PFviS4_Eb at Base 1.11
+ _ZN12mglGraphFLTK7GetBitsEv at Base 1.11
+ _ZN12mglGraphFLTK7SetSizeEii at Base 1.11
+ _ZN12mglGraphFLTK8EndFrameEv at Base 1.11
+ _ZN12mglGraphFLTK8ToggleNoEv at Base 1.11
+ _ZN12mglGraphFLTK9AnimationEv at Base 1.11
+ _ZN12mglGraphFLTK9NextFrameEv at Base 1.11
+ _ZN12mglGraphFLTK9PrevFrameEv at Base 1.11
+ _ZN12mglGraphFLTKC1Ev at Base 1.11
+ _ZN12mglGraphFLTKC2Ev at Base 1.11
+ _ZN12mglGraphFLTKD0Ev at Base 1.11
+ _ZN12mglGraphFLTKD1Ev at Base 1.11
+ _ZN12mglGraphFLTKD2Ev at Base 1.11
+ _ZN9Fl_MathGL4drawEv at Base 1.11
+ _ZN9Fl_MathGL6handleEi at Base 1.11
+ _ZN9Fl_MathGL6resizeEiiii at Base 1.11
+ _ZN9Fl_MathGL6updateEP8mglGraph at Base 1.11
+ _ZN9Fl_MathGLC1EiiiiPc at Base 1.11
+ _ZN9Fl_MathGLC2EiiiiPc at Base 1.11
+ _ZN9Fl_MathGLD0Ev at Base 1.11
+ _ZN9Fl_MathGLD1Ev at Base 1.11
+ _ZN9Fl_MathGLD2Ev at Base 1.11
+ _ZN9Fl_PixmapC1EPKPKc at Base 1.11
+ _ZTI12mglGraphFLTK at Base 1.11
+ _ZTI9Fl_MathGL at Base 1.11
+ _ZTS12mglGraphFLTK at Base 1.11
+ _ZTS9Fl_MathGL at Base 1.11
+ _ZTV12mglGraphFLTK at Base 1.11
+ _ZTV9Fl_MathGL at Base 1.11
+ menuitems at Base 1.11
+ mgl_create_graph_fltk at Base 1.11
+ mgl_create_graph_fltk_ at Base 1.11
+ mgl_create_graph_fltk_dr at Base 1.11
+ mgl_fltk_run at Base 1.11
+ mgl_fltk_run_ at Base 1.11
+ pop_graph at Base 1.11
+ xpm_a1 at Base 1.11
+ xpm_a2 at Base 1.11
+ xpm_l1 at Base 1.11
+ xpm_l2 at Base 1.11
+ xpm_r1 at Base 1.11
+ xpm_r2 at Base 1.11
+ xpm_s1 at Base 1.11
+ xpm_s2 at Base 1.11
+ xpm_z1 at Base 1.11
+ xpm_z2 at Base 1.11
\ No newline at end of file
diff --git a/debian/libmgl-fltk5/DEBIAN/control b/debian/libmgl-fltk5/DEBIAN/control
new file mode 100644
index 0000000..2366bb8
--- /dev/null
+++ b/debian/libmgl-fltk5/DEBIAN/control
@@ -0,0 +1,18 @@
+Package: libmgl-fltk5
+Source: mathgl
+Version: 1.11-1
+Architecture: amd64
+Maintainer: Debian Science Maintainers <debian-science-maintainers at lists.alioth.debian.org>
+Installed-Size: 136
+Depends: libc6 (>= 2.2.5), libfltk1.1 (>= 1.1.7), libgcc1 (>= 1:4.1.1), libmgl5 (= 1.11-1), libstdc++6 (>= 4.1.1)
+Section: libs
+Priority: optional
+Homepage: http://mathgl.sourceforge.net/index.html
+Description: library for scientific graphs. (FLTK runtime library)
+ A free cross-platform library of fast C++ routines for plotting data in up
+ to 3 dimensions. It can export plots to bitmaps and vector EPS, SVG, IDTF
+ files. There are simple window interfaces based on GLUT, FLTK and/or Qt.
+ MathGL can also be used in the console. There are interfaces to a set of
+ languages, such as, C, Fortran, Pascal, Forth, Python, Octave.
+ .
+ This package contains the FLTK frontend.
diff --git a/debian/libmgl-fltk5/DEBIAN/md5sums b/debian/libmgl-fltk5/DEBIAN/md5sums
new file mode 100644
index 0000000..6e877c8
--- /dev/null
+++ b/debian/libmgl-fltk5/DEBIAN/md5sums
@@ -0,0 +1,4 @@
+a9075d051e407ba3317f9a5baf1843e4  usr/lib/libmgl-fltk.so.5.0.0
+1c92e8b7f012e099103c470392856dbc  usr/share/doc/libmgl-fltk5/changelog.Debian.gz
+a280771232296099803f36a37509d1ca  usr/share/doc/libmgl-fltk5/changelog.gz
+3a712fb4482d591b961d2f1791b6aa63  usr/share/doc/libmgl-fltk5/copyright
diff --git a/debian/libmgl-fltk5/DEBIAN/postinst b/debian/libmgl-fltk5/DEBIAN/postinst
new file mode 100755
index 0000000..379f1fa
--- /dev/null
+++ b/debian/libmgl-fltk5/DEBIAN/postinst
@@ -0,0 +1,7 @@
+#!/bin/sh
+set -e
+# Automatically added by dh_makeshlibs
+if [ "$1" = "configure" ]; then
+	ldconfig
+fi
+# End automatically added section
diff --git a/debian/libmgl-fltk5/DEBIAN/postrm b/debian/libmgl-fltk5/DEBIAN/postrm
new file mode 100755
index 0000000..3e73d38
--- /dev/null
+++ b/debian/libmgl-fltk5/DEBIAN/postrm
@@ -0,0 +1,7 @@
+#!/bin/sh
+set -e
+# Automatically added by dh_makeshlibs
+if [ "$1" = "remove" ]; then
+	ldconfig
+fi
+# End automatically added section
diff --git a/debian/libmgl-fltk5/DEBIAN/shlibs b/debian/libmgl-fltk5/DEBIAN/shlibs
new file mode 100644
index 0000000..864203d
--- /dev/null
+++ b/debian/libmgl-fltk5/DEBIAN/shlibs
@@ -0,0 +1 @@
+libmgl-fltk 5 libmgl-fltk5
diff --git a/debian/libmgl-fltk5/DEBIAN/symbols b/debian/libmgl-fltk5/DEBIAN/symbols
new file mode 100644
index 0000000..2cea014
--- /dev/null
+++ b/debian/libmgl-fltk5/DEBIAN/symbols
@@ -0,0 +1,84 @@
+libmgl-fltk.so.5 libmgl-fltk5 #MINVER#
+ _Z10mgl_fl_tmpPv at Base 1.11
+ _Z11oncemore_cbP9Fl_WidgetPv at Base 1.11
+ _Z13export_bps_cbP9Fl_WidgetPv at Base 1.11
+ _Z13export_eps_cbP9Fl_WidgetPv at Base 1.11
+ _Z13export_png_cbP9Fl_WidgetPv at Base 1.11
+ _Z13export_svg_cbP9Fl_WidgetPv at Base 1.11
+ _Z14export_jpeg_cbP9Fl_WidgetPv at Base 1.11
+ _Z14export_pngn_cbP9Fl_WidgetPv at Base 1.11
+ _Z5no_cbP9Fl_WidgetPv at Base 1.11
+ _Z5sd_cbP9Fl_WidgetPv at Base 1.11
+ _Z5sl_cbP9Fl_WidgetPv at Base 1.11
+ _Z5so_cbP9Fl_WidgetPv at Base 1.11
+ _Z5sr_cbP9Fl_WidgetPv at Base 1.11
+ _Z5su_cbP9Fl_WidgetPv at Base 1.11
+ _Z5sz_cbP9Fl_WidgetPv at Base 1.11
+ _Z7draw_cbP9Fl_WidgetPv at Base 1.11
+ _Z7norm_cbP9Fl_WidgetPv at Base 1.11
+ _Z7quit_cbP9Fl_WidgetPv at Base 1.11
+ _Z7time_cbPv at Base 1.11
+ _Z7zoom_cbP9Fl_WidgetPv at Base 1.11
+ _Z8alpha_cbP9Fl_WidgetPv at Base 1.11
+ _Z8light_cbP9Fl_WidgetPv at Base 1.11
+ _Z8mglFlRunv at Base 1.11
+ _Z8snext_cbP9Fl_WidgetPv at Base 1.11
+ _Z8sprev_cbP9Fl_WidgetPv at Base 1.11
+ _Z8sshow_cbP9Fl_WidgetPv at Base 1.11
+ _Z9adjust_cbP9Fl_WidgetPv at Base 1.11
+ _Z9rotate_cbP9Fl_WidgetPv at Base 1.11
+ _ZN10mglGraphAB8GetRatioEv at Base 1.11
+ _ZN12mglGraphFLTK10ToggleZoomEv at Base 1.11
+ _ZN12mglGraphFLTK11ToggleAlphaEv at Base 1.11
+ _ZN12mglGraphFLTK11ToggleLightEv at Base 1.11
+ _ZN12mglGraphFLTK12ToggleRotateEv at Base 1.11
+ _ZN12mglGraphFLTK3ClfE8mglColor at Base 1.11
+ _ZN12mglGraphFLTK6AdjustEv at Base 1.11
+ _ZN12mglGraphFLTK6ReLoadEb at Base 1.11
+ _ZN12mglGraphFLTK6UpdateEv at Base 1.11
+ _ZN12mglGraphFLTK6WindowEiPPcPFiP8mglGraphPvEPKcS4_PFviS4_Eb at Base 1.11
+ _ZN12mglGraphFLTK7GetBitsEv at Base 1.11
+ _ZN12mglGraphFLTK7SetSizeEii at Base 1.11
+ _ZN12mglGraphFLTK8EndFrameEv at Base 1.11
+ _ZN12mglGraphFLTK8ToggleNoEv at Base 1.11
+ _ZN12mglGraphFLTK9AnimationEv at Base 1.11
+ _ZN12mglGraphFLTK9NextFrameEv at Base 1.11
+ _ZN12mglGraphFLTK9PrevFrameEv at Base 1.11
+ _ZN12mglGraphFLTKC1Ev at Base 1.11
+ _ZN12mglGraphFLTKC2Ev at Base 1.11
+ _ZN12mglGraphFLTKD0Ev at Base 1.11
+ _ZN12mglGraphFLTKD1Ev at Base 1.11
+ _ZN12mglGraphFLTKD2Ev at Base 1.11
+ _ZN9Fl_MathGL4drawEv at Base 1.11
+ _ZN9Fl_MathGL6handleEi at Base 1.11
+ _ZN9Fl_MathGL6resizeEiiii at Base 1.11
+ _ZN9Fl_MathGL6updateEP8mglGraph at Base 1.11
+ _ZN9Fl_MathGLC1EiiiiPc at Base 1.11
+ _ZN9Fl_MathGLC2EiiiiPc at Base 1.11
+ _ZN9Fl_MathGLD0Ev at Base 1.11
+ _ZN9Fl_MathGLD1Ev at Base 1.11
+ _ZN9Fl_MathGLD2Ev at Base 1.11
+ _ZN9Fl_PixmapC1EPKPKc at Base 1.11
+ _ZTI12mglGraphFLTK at Base 1.11
+ _ZTI9Fl_MathGL at Base 1.11
+ _ZTS12mglGraphFLTK at Base 1.11
+ _ZTS9Fl_MathGL at Base 1.11
+ _ZTV12mglGraphFLTK at Base 1.11
+ _ZTV9Fl_MathGL at Base 1.11
+ menuitems at Base 1.11
+ mgl_create_graph_fltk at Base 1.11
+ mgl_create_graph_fltk_ at Base 1.11
+ mgl_create_graph_fltk_dr at Base 1.11
+ mgl_fltk_run at Base 1.11
+ mgl_fltk_run_ at Base 1.11
+ pop_graph at Base 1.11
+ xpm_a1 at Base 1.11
+ xpm_a2 at Base 1.11
+ xpm_l1 at Base 1.11
+ xpm_l2 at Base 1.11
+ xpm_r1 at Base 1.11
+ xpm_r2 at Base 1.11
+ xpm_s1 at Base 1.11
+ xpm_s2 at Base 1.11
+ xpm_z1 at Base 1.11
+ xpm_z2 at Base 1.11
diff --git a/debian/libmgl-fltk5/usr/lib/libmgl-fltk.so.5 b/debian/libmgl-fltk5/usr/lib/libmgl-fltk.so.5
new file mode 120000
index 0000000..59ab499
--- /dev/null
+++ b/debian/libmgl-fltk5/usr/lib/libmgl-fltk.so.5
@@ -0,0 +1 @@
+libmgl-fltk.so.5.0.0
\ No newline at end of file
diff --git a/debian/libmgl-fltk5/usr/lib/libmgl-fltk.so.5.0.0 b/debian/libmgl-fltk5/usr/lib/libmgl-fltk.so.5.0.0
new file mode 100644
index 0000000..a47ac4b
Binary files /dev/null and b/debian/libmgl-fltk5/usr/lib/libmgl-fltk.so.5.0.0 differ
diff --git a/debian/libmgl-fltk5/usr/share/doc/libmgl-fltk5/changelog.Debian.gz b/debian/libmgl-fltk5/usr/share/doc/libmgl-fltk5/changelog.Debian.gz
new file mode 100644
index 0000000..b8480bb
Binary files /dev/null and b/debian/libmgl-fltk5/usr/share/doc/libmgl-fltk5/changelog.Debian.gz differ
diff --git a/debian/libmgl-fltk5/usr/share/doc/libmgl-fltk5/changelog.gz b/debian/libmgl-fltk5/usr/share/doc/libmgl-fltk5/changelog.gz
new file mode 100644
index 0000000..be3de85
Binary files /dev/null and b/debian/libmgl-fltk5/usr/share/doc/libmgl-fltk5/changelog.gz differ
diff --git a/debian/copyright b/debian/libmgl-fltk5/usr/share/doc/libmgl-fltk5/copyright
similarity index 100%
copy from debian/copyright
copy to debian/libmgl-fltk5/usr/share/doc/libmgl-fltk5/copyright
diff --git a/debian/libmgl-glut5.debhelper.log b/debian/libmgl-glut5.debhelper.log
new file mode 100644
index 0000000..1174084
--- /dev/null
+++ b/debian/libmgl-glut5.debhelper.log
@@ -0,0 +1,15 @@
+dh_prep
+dh_installchangelogs
+dh_installdocs
+dh_install
+dh_link
+dh_strip
+dh_compress
+dh_fixperms
+dh_makeshlibs
+dh_installdeb
+dh_installman
+dh_shlibdeps
+dh_gencontrol
+dh_md5sums
+dh_builddeb
diff --git a/debian/libmgl-glut5.postinst.debhelper b/debian/libmgl-glut5.postinst.debhelper
new file mode 100644
index 0000000..3d89d3e
--- /dev/null
+++ b/debian/libmgl-glut5.postinst.debhelper
@@ -0,0 +1,5 @@
+# Automatically added by dh_makeshlibs
+if [ "$1" = "configure" ]; then
+	ldconfig
+fi
+# End automatically added section
diff --git a/debian/libmgl-glut5.postrm.debhelper b/debian/libmgl-glut5.postrm.debhelper
new file mode 100644
index 0000000..7f44047
--- /dev/null
+++ b/debian/libmgl-glut5.postrm.debhelper
@@ -0,0 +1,5 @@
+# Automatically added by dh_makeshlibs
+if [ "$1" = "remove" ]; then
+	ldconfig
+fi
+# End automatically added section
diff --git a/debian/libmgl-glut5.substvars b/debian/libmgl-glut5.substvars
new file mode 100644
index 0000000..c7fec8e
--- /dev/null
+++ b/debian/libmgl-glut5.substvars
@@ -0,0 +1,2 @@
+shlibs:Depends=freeglut3, libc6 (>= 2.2.5), libgcc1 (>= 1:4.1.1), libgl1-mesa-glx | libgl1, libmgl5 (>= 1.11), libstdc++6 (>= 4.1.1)
+misc:Depends=
diff --git a/debian/libmgl-glut5.symbols b/debian/libmgl-glut5.symbols
index 90012f6..c20cb82 100644
--- a/debian/libmgl-glut5.symbols
+++ b/debian/libmgl-glut5.symbols
@@ -1,28 +1,28 @@
 libmgl-glut.so.5 libmgl-glut5 #MINVER#
- _Z10_mgl_timeri at Base 1.10.2.1
- _Z11_mgl_key_uphii at Base 1.10.2.1
- _Z12_mgl_displayv at Base 1.10.2.1
- _Z21mgl_create_graph_glutP7mglDrawPKc at Base 1.10.2.1
- _ZN10mglGraphAB8GetRatioEv at Base 1.10.2.1
- _ZN10mglGraphGL5FlushEv at Base 1.10.2.1
- _ZN10mglGraphGL6FinishEv at Base 1.10.2.1
- _ZN10mglGraphGL7SetSizeEii at Base 1.10.2.1
- _ZN12mglGraphGLUT11ToggleAlphaEv at Base 1.10.2.1
- _ZN12mglGraphGLUT11ToggleLightEv at Base 1.10.2.1
- _ZN12mglGraphGLUT6ReLoadEb at Base 1.10.2.1
- _ZN12mglGraphGLUT6UpdateEv at Base 1.10.2.1
- _ZN12mglGraphGLUT6WindowEiPPcPFiP8mglGraphPvEPKcS4_PFviS4_Eb at Base 1.10.2.1
- _ZN12mglGraphGLUT8ToggleNoEv at Base 1.10.2.1
- _ZN12mglGraphGLUT9AnimationEv at Base 1.10.2.1
- _ZN12mglGraphGLUT9NextFrameEv at Base 1.10.2.1
- _ZN12mglGraphGLUT9PrevFrameEv at Base 1.10.2.1
- _ZN12mglGraphGLUTC1Ev at Base 1.10.2.1
- _ZN12mglGraphGLUTC2Ev at Base 1.10.2.1
- _ZN12mglGraphGLUTD0Ev at Base 1.10.2.1
- _ZN12mglGraphGLUTD1Ev at Base 1.10.2.1
- _ZN12mglGraphGLUTD2Ev at Base 1.10.2.1
- _ZTI12mglGraphGLUT at Base 1.10.2.1
- _ZTS12mglGraphGLUT at Base 1.10.2.1
- _ZTV12mglGraphGLUT at Base 1.10.2.1
- _mgl_glwnd at Base 1.10.2.1
- mgl_create_graph_glut at Base 1.10.2.1
\ No newline at end of file
+ _Z10_mgl_timeri at Base 1.11
+ _Z11_mgl_key_uphii at Base 1.11
+ _Z12_mgl_displayv at Base 1.11
+ _Z21mgl_create_graph_glutP7mglDrawPKc at Base 1.11
+ _ZN10mglGraphAB8GetRatioEv at Base 1.11
+ _ZN10mglGraphGL5FlushEv at Base 1.11
+ _ZN10mglGraphGL6FinishEv at Base 1.11
+ _ZN10mglGraphGL7SetSizeEii at Base 1.11
+ _ZN12mglGraphGLUT11ToggleAlphaEv at Base 1.11
+ _ZN12mglGraphGLUT11ToggleLightEv at Base 1.11
+ _ZN12mglGraphGLUT6ReLoadEb at Base 1.11
+ _ZN12mglGraphGLUT6UpdateEv at Base 1.11
+ _ZN12mglGraphGLUT6WindowEiPPcPFiP8mglGraphPvEPKcS4_PFviS4_Eb at Base 1.11
+ _ZN12mglGraphGLUT8ToggleNoEv at Base 1.11
+ _ZN12mglGraphGLUT9AnimationEv at Base 1.11
+ _ZN12mglGraphGLUT9NextFrameEv at Base 1.11
+ _ZN12mglGraphGLUT9PrevFrameEv at Base 1.11
+ _ZN12mglGraphGLUTC1Ev at Base 1.11
+ _ZN12mglGraphGLUTC2Ev at Base 1.11
+ _ZN12mglGraphGLUTD0Ev at Base 1.11
+ _ZN12mglGraphGLUTD1Ev at Base 1.11
+ _ZN12mglGraphGLUTD2Ev at Base 1.11
+ _ZTI12mglGraphGLUT at Base 1.11
+ _ZTS12mglGraphGLUT at Base 1.11
+ _ZTV12mglGraphGLUT at Base 1.11
+ _mgl_glwnd at Base 1.11
+ mgl_create_graph_glut at Base 1.11 
diff --git a/debian/libmgl-glut5/DEBIAN/control b/debian/libmgl-glut5/DEBIAN/control
new file mode 100644
index 0000000..09dcb80
--- /dev/null
+++ b/debian/libmgl-glut5/DEBIAN/control
@@ -0,0 +1,18 @@
+Package: libmgl-glut5
+Source: mathgl
+Version: 1.11-1
+Architecture: amd64
+Maintainer: Debian Science Maintainers <debian-science-maintainers at lists.alioth.debian.org>
+Installed-Size: 92
+Depends: freeglut3, libc6 (>= 2.2.5), libgcc1 (>= 1:4.1.1), libgl1-mesa-glx | libgl1, libmgl5 (= 1.11-1), libstdc++6 (>= 4.1.1)
+Section: libs
+Priority: optional
+Homepage: http://mathgl.sourceforge.net/index.html
+Description: library for scientific graphs. (GLUT runtime library)
+ A free cross-platform library of fast C++ routines for plotting data in up
+ to 3 dimensions. It can export plots to bitmaps and vector EPS, SVG, IDTF
+ files. There are simple window interfaces based on GLUT, FLTK and/or Qt.
+ MathGL can also be used in the console. There are interfaces to a set of
+ languages, such as, C, Fortran, Pascal, Forth, Python, Octave.
+ .
+ This package containst the GLUT frontend.
diff --git a/debian/libmgl-glut5/DEBIAN/md5sums b/debian/libmgl-glut5/DEBIAN/md5sums
new file mode 100644
index 0000000..e40e0f9
--- /dev/null
+++ b/debian/libmgl-glut5/DEBIAN/md5sums
@@ -0,0 +1,4 @@
+0c00e27234d638499f49d0596925a387  usr/lib/libmgl-glut.so.5.0.0
+1c92e8b7f012e099103c470392856dbc  usr/share/doc/libmgl-glut5/changelog.Debian.gz
+a280771232296099803f36a37509d1ca  usr/share/doc/libmgl-glut5/changelog.gz
+3a712fb4482d591b961d2f1791b6aa63  usr/share/doc/libmgl-glut5/copyright
diff --git a/debian/libmgl-glut5/DEBIAN/postinst b/debian/libmgl-glut5/DEBIAN/postinst
new file mode 100755
index 0000000..379f1fa
--- /dev/null
+++ b/debian/libmgl-glut5/DEBIAN/postinst
@@ -0,0 +1,7 @@
+#!/bin/sh
+set -e
+# Automatically added by dh_makeshlibs
+if [ "$1" = "configure" ]; then
+	ldconfig
+fi
+# End automatically added section
diff --git a/debian/libmgl-glut5/DEBIAN/postrm b/debian/libmgl-glut5/DEBIAN/postrm
new file mode 100755
index 0000000..3e73d38
--- /dev/null
+++ b/debian/libmgl-glut5/DEBIAN/postrm
@@ -0,0 +1,7 @@
+#!/bin/sh
+set -e
+# Automatically added by dh_makeshlibs
+if [ "$1" = "remove" ]; then
+	ldconfig
+fi
+# End automatically added section
diff --git a/debian/libmgl-glut5/DEBIAN/shlibs b/debian/libmgl-glut5/DEBIAN/shlibs
new file mode 100644
index 0000000..8be6861
--- /dev/null
+++ b/debian/libmgl-glut5/DEBIAN/shlibs
@@ -0,0 +1 @@
+libmgl-glut 5 libmgl-glut5
diff --git a/debian/libmgl-glut5/DEBIAN/symbols b/debian/libmgl-glut5/DEBIAN/symbols
new file mode 100644
index 0000000..eabc5a6
--- /dev/null
+++ b/debian/libmgl-glut5/DEBIAN/symbols
@@ -0,0 +1,28 @@
+libmgl-glut.so.5 libmgl-glut5 #MINVER#
+ _Z10_mgl_timeri at Base 1.11
+ _Z11_mgl_key_uphii at Base 1.11
+ _Z12_mgl_displayv at Base 1.11
+ _Z21mgl_create_graph_glutP7mglDrawPKc at Base 1.11
+ _ZN10mglGraphAB8GetRatioEv at Base 1.11
+ _ZN10mglGraphGL5FlushEv at Base 1.11
+ _ZN10mglGraphGL6FinishEv at Base 1.11
+ _ZN10mglGraphGL7SetSizeEii at Base 1.11
+ _ZN12mglGraphGLUT11ToggleAlphaEv at Base 1.11
+ _ZN12mglGraphGLUT11ToggleLightEv at Base 1.11
+ _ZN12mglGraphGLUT6ReLoadEb at Base 1.11
+ _ZN12mglGraphGLUT6UpdateEv at Base 1.11
+ _ZN12mglGraphGLUT6WindowEiPPcPFiP8mglGraphPvEPKcS4_PFviS4_Eb at Base 1.11
+ _ZN12mglGraphGLUT8ToggleNoEv at Base 1.11
+ _ZN12mglGraphGLUT9AnimationEv at Base 1.11
+ _ZN12mglGraphGLUT9NextFrameEv at Base 1.11
+ _ZN12mglGraphGLUT9PrevFrameEv at Base 1.11
+ _ZN12mglGraphGLUTC1Ev at Base 1.11
+ _ZN12mglGraphGLUTC2Ev at Base 1.11
+ _ZN12mglGraphGLUTD0Ev at Base 1.11
+ _ZN12mglGraphGLUTD1Ev at Base 1.11
+ _ZN12mglGraphGLUTD2Ev at Base 1.11
+ _ZTI12mglGraphGLUT at Base 1.11
+ _ZTS12mglGraphGLUT at Base 1.11
+ _ZTV12mglGraphGLUT at Base 1.11
+ _mgl_glwnd at Base 1.11
+ mgl_create_graph_glut at Base 1.11
diff --git a/debian/libmgl-glut5/usr/lib/libmgl-glut.so.5 b/debian/libmgl-glut5/usr/lib/libmgl-glut.so.5
new file mode 120000
index 0000000..c2e4f34
--- /dev/null
+++ b/debian/libmgl-glut5/usr/lib/libmgl-glut.so.5
@@ -0,0 +1 @@
+libmgl-glut.so.5.0.0
\ No newline at end of file
diff --git a/debian/libmgl-glut5/usr/lib/libmgl-glut.so.5.0.0 b/debian/libmgl-glut5/usr/lib/libmgl-glut.so.5.0.0
new file mode 100644
index 0000000..1908035
Binary files /dev/null and b/debian/libmgl-glut5/usr/lib/libmgl-glut.so.5.0.0 differ
diff --git a/debian/libmgl-glut5/usr/share/doc/libmgl-glut5/changelog.Debian.gz b/debian/libmgl-glut5/usr/share/doc/libmgl-glut5/changelog.Debian.gz
new file mode 100644
index 0000000..b8480bb
Binary files /dev/null and b/debian/libmgl-glut5/usr/share/doc/libmgl-glut5/changelog.Debian.gz differ
diff --git a/debian/libmgl-glut5/usr/share/doc/libmgl-glut5/changelog.gz b/debian/libmgl-glut5/usr/share/doc/libmgl-glut5/changelog.gz
new file mode 100644
index 0000000..be3de85
Binary files /dev/null and b/debian/libmgl-glut5/usr/share/doc/libmgl-glut5/changelog.gz differ
diff --git a/debian/copyright b/debian/libmgl-glut5/usr/share/doc/libmgl-glut5/copyright
similarity index 100%
copy from debian/copyright
copy to debian/libmgl-glut5/usr/share/doc/libmgl-glut5/copyright
diff --git a/debian/libmgl-qt5.debhelper.log b/debian/libmgl-qt5.debhelper.log
new file mode 100644
index 0000000..1174084
--- /dev/null
+++ b/debian/libmgl-qt5.debhelper.log
@@ -0,0 +1,15 @@
+dh_prep
+dh_installchangelogs
+dh_installdocs
+dh_install
+dh_link
+dh_strip
+dh_compress
+dh_fixperms
+dh_makeshlibs
+dh_installdeb
+dh_installman
+dh_shlibdeps
+dh_gencontrol
+dh_md5sums
+dh_builddeb
diff --git a/debian/libmgl-qt5.postinst.debhelper b/debian/libmgl-qt5.postinst.debhelper
new file mode 100644
index 0000000..3d89d3e
--- /dev/null
+++ b/debian/libmgl-qt5.postinst.debhelper
@@ -0,0 +1,5 @@
+# Automatically added by dh_makeshlibs
+if [ "$1" = "configure" ]; then
+	ldconfig
+fi
+# End automatically added section
diff --git a/debian/libmgl-qt5.postrm.debhelper b/debian/libmgl-qt5.postrm.debhelper
new file mode 100644
index 0000000..7f44047
--- /dev/null
+++ b/debian/libmgl-qt5.postrm.debhelper
@@ -0,0 +1,5 @@
+# Automatically added by dh_makeshlibs
+if [ "$1" = "remove" ]; then
+	ldconfig
+fi
+# End automatically added section
diff --git a/debian/libmgl-qt5.substvars b/debian/libmgl-qt5.substvars
new file mode 100644
index 0000000..0f0d8b8
--- /dev/null
+++ b/debian/libmgl-qt5.substvars
@@ -0,0 +1,2 @@
+shlibs:Depends=libc6 (>= 2.2.5), libgcc1 (>= 1:4.1.1), libmgl5 (>= 1.11), libqtcore4 (>= 4:4.5.3), libqtgui4 (>= 4:4.5.3), libstdc++6 (>= 4.1.1)
+misc:Depends=
diff --git a/debian/libmgl-qt5.symbols b/debian/libmgl-qt5.symbols
index 6b14f6d..80fba7a 100644
--- a/debian/libmgl-qt5.symbols
+++ b/debian/libmgl-qt5.symbols
@@ -1,101 +1,102 @@
 libmgl-qt.so.5 libmgl-qt5 #MINVER#
- _Z10mgl_qt_tmpPv at Base 1.10.2.1
- _Z12setExtensionR7QStringPKc at Base 1.10.2.1
- _Z16convertFromGraphR7QPixmapP10mglGraphABPPh at Base 1.10.2.1
- _Z8mglQtRunv at Base 1.10.2.1
- _ZGVZ13qvariant_castI8QVariantET_RKS0_E3vid at Base 1.10.2.1
- _ZN10QByteArrayD1Ev at Base 1.10.2.1
- _ZN10mglGraphAB8GetRatioEv at Base 1.10.2.1
- _ZN10mglGraphQT10ToggleZoomEv at Base 1.10.2.1
- _ZN10mglGraphQT11ToggleAlphaEv at Base 1.10.2.1
- _ZN10mglGraphQT11ToggleLightEv at Base 1.10.2.1
- _ZN10mglGraphQT12ToggleRotateEv at Base 1.10.2.1
- _ZN10mglGraphQT3ClfE8mglColor at Base 1.10.2.1
- _ZN10mglGraphQT6AdjustEv at Base 1.10.2.1
- _ZN10mglGraphQT6ReLoadEb at Base 1.10.2.1
- _ZN10mglGraphQT6UpdateEv at Base 1.10.2.1
- _ZN10mglGraphQT6WindowEiPPcPFiP8mglGraphPvEPKcS4_PFviS4_Eb at Base 1.10.2.1
- _ZN10mglGraphQT7GetBitsEv at Base 1.10.2.1
- _ZN10mglGraphQT7SetSizeEii at Base 1.10.2.1
- _ZN10mglGraphQT8EndFrameEv at Base 1.10.2.1
- _ZN10mglGraphQT8ToggleNoEv at Base 1.10.2.1
- _ZN10mglGraphQT8makeMenuEv at Base 1.10.2.1
- _ZN10mglGraphQT9AnimationEv at Base 1.10.2.1
- _ZN10mglGraphQT9NextFrameEv at Base 1.10.2.1
- _ZN10mglGraphQT9PrevFrameEv at Base 1.10.2.1
- _ZN10mglGraphQTC1Ev at Base 1.10.2.1
- _ZN10mglGraphQTC2Ev at Base 1.10.2.1
- _ZN10mglGraphQTD0Ev at Base 1.10.2.1
- _ZN10mglGraphQTD1Ev at Base 1.10.2.1
- _ZN10mglGraphQTD2Ev at Base 1.10.2.1
- _ZN7QMathGL10exportIDTFE7QString at Base 1.10.2.1
- _ZN7QMathGL10exportPNGsE7QString at Base 1.10.2.1
- _ZN7QMathGL10mouseClickEfff at Base 1.10.2.1
- _ZN7QMathGL10paintEventEP11QPaintEvent at Base 1.10.2.1
- _ZN7QMathGL10perChangedEi at Base 1.10.2.1
- _ZN7QMathGL10phiChangedEi at Base 1.10.2.1
- _ZN7QMathGL10setMGLFontE7QString at Base 1.10.2.1
- _ZN7QMathGL10shiftRightEv at Base 1.10.2.1
- _ZN7QMathGL10tetChangedEi at Base 1.10.2.1
- _ZN7QMathGL11qt_metacallEN11QMetaObject4CallEiPPv at Base 1.10.2.1
- _ZN7QMathGL11qt_metacastEPKc at Base 1.10.2.1
- _ZN7QMathGL11resizeEventEP12QResizeEvent at Base 1.10.2.1
- _ZN7QMathGL11zoomChangedEb at Base 1.10.2.1
- _ZN7QMathGL12alphaChangedEb at Base 1.10.2.1
- _ZN7QMathGL12lightChangedEb at Base 1.10.2.1
- _ZN7QMathGL13rotateChangedEb at Base 1.10.2.1
- _ZN7QMathGL14mouseMoveEventEP11QMouseEvent at Base 1.10.2.1
- _ZN7QMathGL15mousePressEventEP11QMouseEvent at Base 1.10.2.1
- _ZN7QMathGL16staticMetaObjectE at Base 1.10.2.1
- _ZN7QMathGL17mouseReleaseEventEP11QMouseEvent at Base 1.10.2.1
- _ZN7QMathGL4copyEv at Base 1.10.2.1
- _ZN7QMathGL5aboutEv at Base 1.10.2.1
- _ZN7QMathGL5printEv at Base 1.10.2.1
- _ZN7QMathGL6adjustEv at Base 1.10.2.1
- _ZN7QMathGL6setPerEi at Base 1.10.2.1
- _ZN7QMathGL6setPhiEi at Base 1.10.2.1
- _ZN7QMathGL6setTetEi at Base 1.10.2.1
- _ZN7QMathGL6updateEP8mglGraph at Base 1.10.2.1
- _ZN7QMathGL6zoomInEv at Base 1.10.2.1
- _ZN7QMathGL7aboutQtEv at Base 1.10.2.1
- _ZN7QMathGL7refreshEv at Base 1.10.2.1
- _ZN7QMathGL7restoreEv at Base 1.10.2.1
- _ZN7QMathGL7setDrawEP7mglDraw at Base 1.10.2.1
- _ZN7QMathGL7setDrawEPFiP8mglGraphPvES2_ at Base 1.10.2.1
- _ZN7QMathGL7setSizeEii at Base 1.10.2.1
- _ZN7QMathGL7setZoomEb at Base 1.10.2.1
- _ZN7QMathGL7shiftUpEv at Base 1.10.2.1
- _ZN7QMathGL7zoomOutEv at Base 1.10.2.1
- _ZN7QMathGL8setAlphaEb at Base 1.10.2.1
- _ZN7QMathGL8setGraphEP10mglGraphAB at Base 1.10.2.1
- _ZN7QMathGL8setLightEb at Base 1.10.2.1
- _ZN7QMathGL9animationEb at Base 1.10.2.1
- _ZN7QMathGL9exportBPSE7QString at Base 1.10.2.1
- _ZN7QMathGL9exportEPSE7QString at Base 1.10.2.1
- _ZN7QMathGL9exportJPGE7QString at Base 1.10.2.1
- _ZN7QMathGL9exportPNGE7QString at Base 1.10.2.1
- _ZN7QMathGL9exportSVGE7QString at Base 1.10.2.1
- _ZN7QMathGL9nextSlideEv at Base 1.10.2.1
- _ZN7QMathGL9prevSlideEv at Base 1.10.2.1
- _ZN7QMathGL9setRotateEb at Base 1.10.2.1
- _ZN7QMathGL9shiftDownEv at Base 1.10.2.1
- _ZN7QMathGL9shiftLeftEv at Base 1.10.2.1
- _ZN7QMathGLC1EP7QWidget6QFlagsIN2Qt10WindowTypeEE at Base 1.10.2.1
- _ZN7QMathGLC2EP7QWidget6QFlagsIN2Qt10WindowTypeEE at Base 1.10.2.1
- _ZN7QMathGLD0Ev at Base 1.10.2.1
- _ZN7QMathGLD1Ev at Base 1.10.2.1
- _ZN7QMathGLD2Ev at Base 1.10.2.1
- _ZN7QStringD1Ev at Base 1.10.2.1
- _ZNK7QMathGL10metaObjectEv at Base 1.10.2.1
- _ZTI10mglGraphQT at Base 1.10.2.1
- _ZTI7QMathGL at Base 1.10.2.1
- _ZTS10mglGraphQT at Base 1.10.2.1
- _ZTS7QMathGL at Base 1.10.2.1
- _ZTV10mglGraphQT at Base 1.10.2.1
- _ZTV7QMathGL at Base 1.10.2.1
- _ZThn16_N7QMathGLD0Ev at Base 1.10.2.1
- _ZThn16_N7QMathGLD1Ev at Base 1.10.2.1
- mgl_create_graph_qt at Base 1.10.2.1
- mgl_create_graph_qt_ at Base 1.10.2.1
- mgl_create_graph_qt_dr at Base 1.10.2.1
- mgl_qt_run_ at Base 1.10.2.1
\ No newline at end of file
+ _Z10mgl_qt_tmpPv at Base 1.11
+ _Z12setExtensionR7QStringPKc at Base 1.11
+ _Z16convertFromGraphR7QPixmapP10mglGraphABPPh at Base 1.11
+ _Z8mglQtRunv at Base 1.11
+ _ZGVZ13qvariant_castI8QVariantET_RKS0_E3vid at Base 1.11
+ _ZN10QByteArrayD1Ev at Base 1.11
+ _ZN10mglGraphAB8GetRatioEv at Base 1.11
+ _ZN10mglGraphQT10ToggleZoomEv at Base 1.11
+ _ZN10mglGraphQT11ToggleAlphaEv at Base 1.11
+ _ZN10mglGraphQT11ToggleLightEv at Base 1.11
+ _ZN10mglGraphQT12ToggleRotateEv at Base 1.11
+ _ZN10mglGraphQT3ClfE8mglColor at Base 1.11
+ _ZN10mglGraphQT6AdjustEv at Base 1.11
+ _ZN10mglGraphQT6ReLoadEb at Base 1.11
+ _ZN10mglGraphQT6UpdateEv at Base 1.11
+ _ZN10mglGraphQT6WindowEiPPcPFiP8mglGraphPvEPKcS4_PFviS4_Eb at Base 1.11
+ _ZN10mglGraphQT7GetBitsEv at Base 1.11
+ _ZN10mglGraphQT7SetSizeEii at Base 1.11
+ _ZN10mglGraphQT8EndFrameEv at Base 1.11
+ _ZN10mglGraphQT8ToggleNoEv at Base 1.11
+ _ZN10mglGraphQT8makeMenuEv at Base 1.11
+ _ZN10mglGraphQT9AnimationEv at Base 1.11
+ _ZN10mglGraphQT9NextFrameEv at Base 1.11
+ _ZN10mglGraphQT9PrevFrameEv at Base 1.11
+ _ZN10mglGraphQTC1Ev at Base 1.11
+ _ZN10mglGraphQTC2Ev at Base 1.11
+ _ZN10mglGraphQTD0Ev at Base 1.11
+ _ZN10mglGraphQTD1Ev at Base 1.11
+ _ZN10mglGraphQTD2Ev at Base 1.11
+ _ZN7QMathGL10exportIDTFE7QString at Base 1.11
+ _ZN7QMathGL10exportPNGsE7QString at Base 1.11
+ _ZN7QMathGL10mouseClickEfff at Base 1.11
+ _ZN7QMathGL10paintEventEP11QPaintEvent at Base 1.11
+ _ZN7QMathGL10perChangedEi at Base 1.11
+ _ZN7QMathGL10phiChangedEi at Base 1.11
+ _ZN7QMathGL10setMGLFontE7QString at Base 1.11
+ _ZN7QMathGL10shiftRightEv at Base 1.11
+ _ZN7QMathGL10tetChangedEi at Base 1.11
+ _ZN7QMathGL11qt_metacallEN11QMetaObject4CallEiPPv at Base 1.11
+ _ZN7QMathGL11qt_metacastEPKc at Base 1.11
+ _ZN7QMathGL11resizeEventEP12QResizeEvent at Base 1.11
+ _ZN7QMathGL11zoomChangedEb at Base 1.11
+ _ZN7QMathGL12alphaChangedEb at Base 1.11
+ _ZN7QMathGL12lightChangedEb at Base 1.11
+ _ZN7QMathGL13rotateChangedEb at Base 1.11
+ _ZN7QMathGL14mouseMoveEventEP11QMouseEvent at Base 1.11
+ _ZN7QMathGL15mousePressEventEP11QMouseEvent at Base 1.11
+ _ZN7QMathGL16staticMetaObjectE at Base 1.11
+ _ZN7QMathGL17mouseReleaseEventEP11QMouseEvent at Base 1.11
+ _ZN7QMathGL4copyEv at Base 1.11
+ _ZN7QMathGL5aboutEv at Base 1.11
+ _ZN7QMathGL5printEv at Base 1.11
+ _ZN7QMathGL6adjustEv at Base 1.11
+ _ZN7QMathGL6setPerEi at Base 1.11
+ _ZN7QMathGL6setPhiEi at Base 1.11
+ _ZN7QMathGL6setTetEi at Base 1.11
+ _ZN7QMathGL6updateEP8mglGraph at Base 1.11
+ _ZN7QMathGL6zoomInEv at Base 1.11
+ _ZN7QMathGL7aboutQtEv at Base 1.11
+ _ZN7QMathGL7refreshEv at Base 1.11
+ _ZN7QMathGL7restoreEv at Base 1.11
+ _ZN7QMathGL7setDrawEP7mglDraw at Base 1.11
+ _ZN7QMathGL7setDrawEPFiP8mglGraphPvES2_ at Base 1.11
+ _ZN7QMathGL7setSizeEii at Base 1.11
+ _ZN7QMathGL7setZoomEb at Base 1.11
+ _ZN7QMathGL7shiftUpEv at Base 1.11
+ _ZN7QMathGL7zoomOutEv at Base 1.11
+ _ZN7QMathGL8setAlphaEb at Base 1.11
+ _ZN7QMathGL8setGraphEP10mglGraphAB at Base 1.11
+ _ZN7QMathGL8setLightEb at Base 1.11
+ _ZN7QMathGL9animationEb at Base 1.11
+ _ZN7QMathGL9exportBPSE7QString at Base 1.11
+ _ZN7QMathGL9exportEPSE7QString at Base 1.11
+ _ZN7QMathGL9exportJPGE7QString at Base 1.11
+ _ZN7QMathGL9exportPNGE7QString at Base 1.11
+ _ZN7QMathGL9exportSVGE7QString at Base 1.11
+ _ZN7QMathGL9nextSlideEv at Base 1.11
+ _ZN7QMathGL9prevSlideEv at Base 1.11
+ _ZN7QMathGL9setRotateEb at Base 1.11
+ _ZN7QMathGL9shiftDownEv at Base 1.11
+ _ZN7QMathGL9shiftLeftEv at Base 1.11
+ _ZN7QMathGLC1EP7QWidget6QFlagsIN2Qt10WindowTypeEE at Base 1.11
+ _ZN7QMathGLC2EP7QWidget6QFlagsIN2Qt10WindowTypeEE at Base 1.11
+ _ZN7QMathGLD0Ev at Base 1.11
+ _ZN7QMathGLD1Ev at Base 1.11
+ _ZN7QMathGLD2Ev at Base 1.11
+ _ZN7QStringD1Ev at Base 1.11
+ _ZNK7QMathGL10metaObjectEv at Base 1.11
+ _ZTI10mglGraphQT at Base 1.11
+ _ZTI7QMathGL at Base 1.11
+ _ZTS10mglGraphQT at Base 1.11
+ _ZTS7QMathGL at Base 1.11
+ _ZTV10mglGraphQT at Base 1.11
+ _ZTV7QMathGL at Base 1.11
+ _ZThn16_N7QMathGLD0Ev at Base 1.11
+ _ZThn16_N7QMathGLD1Ev at Base 1.11
+ mgl_create_graph_qt at Base 1.11
+ mgl_create_graph_qt_ at Base 1.11
+ mgl_create_graph_qt_dr at Base 1.11
+ mgl_qt_run at Base 1.11
+ mgl_qt_run_ at Base 1.11
\ No newline at end of file
diff --git a/debian/libmgl-qt5/DEBIAN/control b/debian/libmgl-qt5/DEBIAN/control
new file mode 100644
index 0000000..9784e14
--- /dev/null
+++ b/debian/libmgl-qt5/DEBIAN/control
@@ -0,0 +1,18 @@
+Package: libmgl-qt5
+Source: mathgl
+Version: 1.11-1
+Architecture: amd64
+Maintainer: Debian Science Maintainers <debian-science-maintainers at lists.alioth.debian.org>
+Installed-Size: 172
+Depends: libc6 (>= 2.2.5), libgcc1 (>= 1:4.1.1), libmgl5 (= 1.11-1), libqtcore4 (>= 4:4.5.3), libqtgui4 (>= 4:4.5.3), libstdc++6 (>= 4.1.1)
+Section: libs
+Priority: optional
+Homepage: http://mathgl.sourceforge.net/index.html
+Description: library for scientific graphs. (Qt runtime library)
+ A free cross-platform library of fast C++ routines for plotting data in up
+ to 3 dimensions. It can export plots to bitmaps and vector EPS, SVG, IDTF
+ files. There are simple window interfaces based on GLUT, FLTK and/or Qt.
+ MathGL can also be used in the console. There are interfaces to a set of
+ languages, such as, C, Fortran, Pascal, Forth, Python, Octave.
+ .
+ This package contains the Qt4 frontend.
diff --git a/debian/libmgl-qt5/DEBIAN/md5sums b/debian/libmgl-qt5/DEBIAN/md5sums
new file mode 100644
index 0000000..1241ce6
--- /dev/null
+++ b/debian/libmgl-qt5/DEBIAN/md5sums
@@ -0,0 +1,4 @@
+dce0c5d694d6caf975ef6d804fc3d90f  usr/lib/libmgl-qt.so.5.0.0
+1c92e8b7f012e099103c470392856dbc  usr/share/doc/libmgl-qt5/changelog.Debian.gz
+a280771232296099803f36a37509d1ca  usr/share/doc/libmgl-qt5/changelog.gz
+3a712fb4482d591b961d2f1791b6aa63  usr/share/doc/libmgl-qt5/copyright
diff --git a/debian/libmgl-qt5/DEBIAN/postinst b/debian/libmgl-qt5/DEBIAN/postinst
new file mode 100755
index 0000000..379f1fa
--- /dev/null
+++ b/debian/libmgl-qt5/DEBIAN/postinst
@@ -0,0 +1,7 @@
+#!/bin/sh
+set -e
+# Automatically added by dh_makeshlibs
+if [ "$1" = "configure" ]; then
+	ldconfig
+fi
+# End automatically added section
diff --git a/debian/libmgl-qt5/DEBIAN/postrm b/debian/libmgl-qt5/DEBIAN/postrm
new file mode 100755
index 0000000..3e73d38
--- /dev/null
+++ b/debian/libmgl-qt5/DEBIAN/postrm
@@ -0,0 +1,7 @@
+#!/bin/sh
+set -e
+# Automatically added by dh_makeshlibs
+if [ "$1" = "remove" ]; then
+	ldconfig
+fi
+# End automatically added section
diff --git a/debian/libmgl-qt5/DEBIAN/shlibs b/debian/libmgl-qt5/DEBIAN/shlibs
new file mode 100644
index 0000000..4855a36
--- /dev/null
+++ b/debian/libmgl-qt5/DEBIAN/shlibs
@@ -0,0 +1 @@
+libmgl-qt 5 libmgl-qt5
diff --git a/debian/libmgl-qt5/DEBIAN/symbols b/debian/libmgl-qt5/DEBIAN/symbols
new file mode 100644
index 0000000..4e28469
--- /dev/null
+++ b/debian/libmgl-qt5/DEBIAN/symbols
@@ -0,0 +1,102 @@
+libmgl-qt.so.5 libmgl-qt5 #MINVER#
+ _Z10mgl_qt_tmpPv at Base 1.11
+ _Z12setExtensionR7QStringPKc at Base 1.11
+ _Z16convertFromGraphR7QPixmapP10mglGraphABPPh at Base 1.11
+ _Z8mglQtRunv at Base 1.11
+ _ZGVZ13qvariant_castI8QVariantET_RKS0_E3vid at Base 1.11
+ _ZN10QByteArrayD1Ev at Base 1.11
+ _ZN10mglGraphAB8GetRatioEv at Base 1.11
+ _ZN10mglGraphQT10ToggleZoomEv at Base 1.11
+ _ZN10mglGraphQT11ToggleAlphaEv at Base 1.11
+ _ZN10mglGraphQT11ToggleLightEv at Base 1.11
+ _ZN10mglGraphQT12ToggleRotateEv at Base 1.11
+ _ZN10mglGraphQT3ClfE8mglColor at Base 1.11
+ _ZN10mglGraphQT6AdjustEv at Base 1.11
+ _ZN10mglGraphQT6ReLoadEb at Base 1.11
+ _ZN10mglGraphQT6UpdateEv at Base 1.11
+ _ZN10mglGraphQT6WindowEiPPcPFiP8mglGraphPvEPKcS4_PFviS4_Eb at Base 1.11
+ _ZN10mglGraphQT7GetBitsEv at Base 1.11
+ _ZN10mglGraphQT7SetSizeEii at Base 1.11
+ _ZN10mglGraphQT8EndFrameEv at Base 1.11
+ _ZN10mglGraphQT8ToggleNoEv at Base 1.11
+ _ZN10mglGraphQT8makeMenuEv at Base 1.11
+ _ZN10mglGraphQT9AnimationEv at Base 1.11
+ _ZN10mglGraphQT9NextFrameEv at Base 1.11
+ _ZN10mglGraphQT9PrevFrameEv at Base 1.11
+ _ZN10mglGraphQTC1Ev at Base 1.11
+ _ZN10mglGraphQTC2Ev at Base 1.11
+ _ZN10mglGraphQTD0Ev at Base 1.11
+ _ZN10mglGraphQTD1Ev at Base 1.11
+ _ZN10mglGraphQTD2Ev at Base 1.11
+ _ZN7QMathGL10exportIDTFE7QString at Base 1.11
+ _ZN7QMathGL10exportPNGsE7QString at Base 1.11
+ _ZN7QMathGL10mouseClickEfff at Base 1.11
+ _ZN7QMathGL10paintEventEP11QPaintEvent at Base 1.11
+ _ZN7QMathGL10perChangedEi at Base 1.11
+ _ZN7QMathGL10phiChangedEi at Base 1.11
+ _ZN7QMathGL10setMGLFontE7QString at Base 1.11
+ _ZN7QMathGL10shiftRightEv at Base 1.11
+ _ZN7QMathGL10tetChangedEi at Base 1.11
+ _ZN7QMathGL11qt_metacallEN11QMetaObject4CallEiPPv at Base 1.11
+ _ZN7QMathGL11qt_metacastEPKc at Base 1.11
+ _ZN7QMathGL11resizeEventEP12QResizeEvent at Base 1.11
+ _ZN7QMathGL11zoomChangedEb at Base 1.11
+ _ZN7QMathGL12alphaChangedEb at Base 1.11
+ _ZN7QMathGL12lightChangedEb at Base 1.11
+ _ZN7QMathGL13rotateChangedEb at Base 1.11
+ _ZN7QMathGL14mouseMoveEventEP11QMouseEvent at Base 1.11
+ _ZN7QMathGL15mousePressEventEP11QMouseEvent at Base 1.11
+ _ZN7QMathGL16staticMetaObjectE at Base 1.11
+ _ZN7QMathGL17mouseReleaseEventEP11QMouseEvent at Base 1.11
+ _ZN7QMathGL4copyEv at Base 1.11
+ _ZN7QMathGL5aboutEv at Base 1.11
+ _ZN7QMathGL5printEv at Base 1.11
+ _ZN7QMathGL6adjustEv at Base 1.11
+ _ZN7QMathGL6setPerEi at Base 1.11
+ _ZN7QMathGL6setPhiEi at Base 1.11
+ _ZN7QMathGL6setTetEi at Base 1.11
+ _ZN7QMathGL6updateEP8mglGraph at Base 1.11
+ _ZN7QMathGL6zoomInEv at Base 1.11
+ _ZN7QMathGL7aboutQtEv at Base 1.11
+ _ZN7QMathGL7refreshEv at Base 1.11
+ _ZN7QMathGL7restoreEv at Base 1.11
+ _ZN7QMathGL7setDrawEP7mglDraw at Base 1.11
+ _ZN7QMathGL7setDrawEPFiP8mglGraphPvES2_ at Base 1.11
+ _ZN7QMathGL7setSizeEii at Base 1.11
+ _ZN7QMathGL7setZoomEb at Base 1.11
+ _ZN7QMathGL7shiftUpEv at Base 1.11
+ _ZN7QMathGL7zoomOutEv at Base 1.11
+ _ZN7QMathGL8setAlphaEb at Base 1.11
+ _ZN7QMathGL8setGraphEP10mglGraphAB at Base 1.11
+ _ZN7QMathGL8setLightEb at Base 1.11
+ _ZN7QMathGL9animationEb at Base 1.11
+ _ZN7QMathGL9exportBPSE7QString at Base 1.11
+ _ZN7QMathGL9exportEPSE7QString at Base 1.11
+ _ZN7QMathGL9exportJPGE7QString at Base 1.11
+ _ZN7QMathGL9exportPNGE7QString at Base 1.11
+ _ZN7QMathGL9exportSVGE7QString at Base 1.11
+ _ZN7QMathGL9nextSlideEv at Base 1.11
+ _ZN7QMathGL9prevSlideEv at Base 1.11
+ _ZN7QMathGL9setRotateEb at Base 1.11
+ _ZN7QMathGL9shiftDownEv at Base 1.11
+ _ZN7QMathGL9shiftLeftEv at Base 1.11
+ _ZN7QMathGLC1EP7QWidget6QFlagsIN2Qt10WindowTypeEE at Base 1.11
+ _ZN7QMathGLC2EP7QWidget6QFlagsIN2Qt10WindowTypeEE at Base 1.11
+ _ZN7QMathGLD0Ev at Base 1.11
+ _ZN7QMathGLD1Ev at Base 1.11
+ _ZN7QMathGLD2Ev at Base 1.11
+ _ZN7QStringD1Ev at Base 1.11
+ _ZNK7QMathGL10metaObjectEv at Base 1.11
+ _ZTI10mglGraphQT at Base 1.11
+ _ZTI7QMathGL at Base 1.11
+ _ZTS10mglGraphQT at Base 1.11
+ _ZTS7QMathGL at Base 1.11
+ _ZTV10mglGraphQT at Base 1.11
+ _ZTV7QMathGL at Base 1.11
+ _ZThn16_N7QMathGLD0Ev at Base 1.11
+ _ZThn16_N7QMathGLD1Ev at Base 1.11
+ mgl_create_graph_qt at Base 1.11
+ mgl_create_graph_qt_ at Base 1.11
+ mgl_create_graph_qt_dr at Base 1.11
+ mgl_qt_run at Base 1.11
+ mgl_qt_run_ at Base 1.11
diff --git a/debian/libmgl-qt5/usr/lib/libmgl-qt.so.5 b/debian/libmgl-qt5/usr/lib/libmgl-qt.so.5
new file mode 120000
index 0000000..68651a8
--- /dev/null
+++ b/debian/libmgl-qt5/usr/lib/libmgl-qt.so.5
@@ -0,0 +1 @@
+libmgl-qt.so.5.0.0
\ No newline at end of file
diff --git a/debian/libmgl-qt5/usr/lib/libmgl-qt.so.5.0.0 b/debian/libmgl-qt5/usr/lib/libmgl-qt.so.5.0.0
new file mode 100644
index 0000000..047c6f0
Binary files /dev/null and b/debian/libmgl-qt5/usr/lib/libmgl-qt.so.5.0.0 differ
diff --git a/debian/libmgl-qt5/usr/share/doc/libmgl-qt5/changelog.Debian.gz b/debian/libmgl-qt5/usr/share/doc/libmgl-qt5/changelog.Debian.gz
new file mode 100644
index 0000000..b8480bb
Binary files /dev/null and b/debian/libmgl-qt5/usr/share/doc/libmgl-qt5/changelog.Debian.gz differ
diff --git a/debian/libmgl-qt5/usr/share/doc/libmgl-qt5/changelog.gz b/debian/libmgl-qt5/usr/share/doc/libmgl-qt5/changelog.gz
new file mode 100644
index 0000000..be3de85
Binary files /dev/null and b/debian/libmgl-qt5/usr/share/doc/libmgl-qt5/changelog.gz differ
diff --git a/debian/copyright b/debian/libmgl-qt5/usr/share/doc/libmgl-qt5/copyright
similarity index 100%
copy from debian/copyright
copy to debian/libmgl-qt5/usr/share/doc/libmgl-qt5/copyright
diff --git a/debian/libmgl-wx5.debhelper.log b/debian/libmgl-wx5.debhelper.log
new file mode 100644
index 0000000..1174084
--- /dev/null
+++ b/debian/libmgl-wx5.debhelper.log
@@ -0,0 +1,15 @@
+dh_prep
+dh_installchangelogs
+dh_installdocs
+dh_install
+dh_link
+dh_strip
+dh_compress
+dh_fixperms
+dh_makeshlibs
+dh_installdeb
+dh_installman
+dh_shlibdeps
+dh_gencontrol
+dh_md5sums
+dh_builddeb
diff --git a/debian/libmgl-wx5.postinst.debhelper b/debian/libmgl-wx5.postinst.debhelper
new file mode 100644
index 0000000..3d89d3e
--- /dev/null
+++ b/debian/libmgl-wx5.postinst.debhelper
@@ -0,0 +1,5 @@
+# Automatically added by dh_makeshlibs
+if [ "$1" = "configure" ]; then
+	ldconfig
+fi
+# End automatically added section
diff --git a/debian/libmgl-wx5.postrm.debhelper b/debian/libmgl-wx5.postrm.debhelper
new file mode 100644
index 0000000..7f44047
--- /dev/null
+++ b/debian/libmgl-wx5.postrm.debhelper
@@ -0,0 +1,5 @@
+# Automatically added by dh_makeshlibs
+if [ "$1" = "remove" ]; then
+	ldconfig
+fi
+# End automatically added section
diff --git a/debian/libmgl-wx5.substvars b/debian/libmgl-wx5.substvars
new file mode 100644
index 0000000..dc89cf7
--- /dev/null
+++ b/debian/libmgl-wx5.substvars
@@ -0,0 +1,2 @@
+shlibs:Depends=libc6 (>= 2.2.5), libgcc1 (>= 1:4.1.1), libmgl5 (>= 1.11), libstdc++6 (>= 4.1.1), libwxbase2.8-0 (>= 2.8.10.1), libwxgtk2.8-0 (>= 2.8.10.1)
+misc:Depends=
diff --git a/debian/libmgl-wx5.symbols b/debian/libmgl-wx5.symbols
index 50c395d..2325971 100644
--- a/debian/libmgl-wx5.symbols
+++ b/debian/libmgl-wx5.symbols
@@ -1,121 +1,121 @@
 libmgl-wx.so.5 libmgl-wx5 #MINVER#
- _Z15mglSetExtensionR8wxStringPKc at Base 1.10.2.1
- _Z16convertFromGraphR8wxBitmapP10mglGraphABPPh at Base 1.10.2.1
- _Z8mglw_strRK8wxString at Base 1.10.2.1
- _ZN12wxWindowBase10SetMaxSizeERK6wxSize at Base 1.10.2.1
- _ZN12wxWindowBase10SetMinSizeERK6wxSize at Base 1.10.2.1
- _ZN12wxWindowBase12GetValidatorEv at Base 1.10.2.1
- _ZN12wxWindowBase12SetSizeHintsEiiiiii at Base 1.10.2.1
- _ZN12wxWindowBase13SetExtraStyleEl at Base 1.10.2.1
- _ZN12wxWindowBase14SetTransparentEh at Base 1.10.2.1
- _ZN12wxWindowBase15AssociateHandleEP10_GtkWidget at Base 1.10.2.1
- _ZN12wxWindowBase15SetFocusFromKbdEv at Base 1.10.2.1
- _ZN12wxWindowBase15SetThemeEnabledEb at Base 1.10.2.1
- _ZN12wxWindowBase16DissociateHandleEv at Base 1.10.2.1
- _ZN12wxWindowBase17CanSetTransparentEv at Base 1.10.2.1
- _ZN12wxWindowBase18SetInitialBestSizeERK6wxSize at Base 1.10.2.1
- _ZN12wxWindowBase19SetAcceleratorTableERK18wxAcceleratorTable at Base 1.10.2.1
- _ZN12wxWindowBase24HasTransparentBackgroundEv at Base 1.10.2.1
- _ZN12wxWindowBase31GetMainWindowOfCompositeControlEv at Base 1.10.2.1
- _ZN12wxWindowBase4ThawEv at Base 1.10.2.1
- _ZN12wxWindowBase6FreezeEv at Base 1.10.2.1
- _ZN12wxWindowBase7SetNameERK8wxString at Base 1.10.2.1
- _ZN12wxWindowBase9PrepareDCER4wxDC at Base 1.10.2.1
- _ZN13wxTransform2DD0Ev at Base 1.10.2.1
- _ZN13wxTransform2DD1Ev at Base 1.10.2.1
- _ZN20wxThreadHelperThread5EntryEv at Base 1.10.2.1
- _ZN20wxThreadHelperThreadD0Ev at Base 1.10.2.1
- _ZN20wxThreadHelperThreadD1Ev at Base 1.10.2.1
- _ZN8wxMathGL10ExportIDTFE8wxString at Base 1.10.2.1
- _ZN8wxMathGL10ExportPNGsE8wxString at Base 1.10.2.1
- _ZN8wxMathGL10SetMGLFontE8wxString at Base 1.10.2.1
- _ZN8wxMathGL10ShiftRightEv at Base 1.10.2.1
- _ZN8wxMathGL11OnMouseDownER12wxMouseEvent at Base 1.10.2.1
- _ZN8wxMathGL11OnMouseMoveER12wxMouseEvent at Base 1.10.2.1
- _ZN8wxMathGL11OnNextSlideER12wxTimerEvent at Base 1.10.2.1
- _ZN8wxMathGL13OnMouseLeftUpER12wxMouseEvent at Base 1.10.2.1
- _ZN8wxMathGL13sm_eventTableE at Base 1.10.2.1
- _ZN8wxMathGL14OnMouseRightUpER12wxMouseEvent at Base 1.10.2.1
- _ZN8wxMathGL15OnMouseLeftDownER12wxMouseEvent at Base 1.10.2.1
- _ZN8wxMathGL17sm_eventHashTableE at Base 1.10.2.1
- _ZN8wxMathGL20sm_eventTableEntriesE at Base 1.10.2.1
- _ZN8wxMathGL4CopyEv at Base 1.10.2.1
- _ZN8wxMathGL5AboutEv at Base 1.10.2.1
- _ZN8wxMathGL6AdjustEv at Base 1.10.2.1
- _ZN8wxMathGL6OnSizeER11wxSizeEvent at Base 1.10.2.1
- _ZN8wxMathGL6SetPerEi at Base 1.10.2.1
- _ZN8wxMathGL6SetPhiEi at Base 1.10.2.1
- _ZN8wxMathGL6SetTetEi at Base 1.10.2.1
- _ZN8wxMathGL6UpdateEP8mglGraph at Base 1.10.2.1
- _ZN8wxMathGL6ZoomInEv at Base 1.10.2.1
- _ZN8wxMathGL7OnPaintER12wxPaintEvent at Base 1.10.2.1
- _ZN8wxMathGL7RepaintEv at Base 1.10.2.1
- _ZN8wxMathGL7RestoreEv at Base 1.10.2.1
- _ZN8wxMathGL7SetDrawEP7mglDraw at Base 1.10.2.1
- _ZN8wxMathGL7SetDrawEPFiP8mglGraphPvES2_ at Base 1.10.2.1
- _ZN8wxMathGL7SetSizeEii at Base 1.10.2.1
- _ZN8wxMathGL7SetZoomEb at Base 1.10.2.1
- _ZN8wxMathGL7ShiftUpEv at Base 1.10.2.1
- _ZN8wxMathGL7ZoomOutEv at Base 1.10.2.1
- _ZN8wxMathGL8SetAlphaEb at Base 1.10.2.1
- _ZN8wxMathGL8SetGraphEP10mglGraphAB at Base 1.10.2.1
- _ZN8wxMathGL8SetLightEb at Base 1.10.2.1
- _ZN8wxMathGL9AnimationEb at Base 1.10.2.1
- _ZN8wxMathGL9ExportBPSE8wxString at Base 1.10.2.1
- _ZN8wxMathGL9ExportEPSE8wxString at Base 1.10.2.1
- _ZN8wxMathGL9ExportJPGE8wxString at Base 1.10.2.1
- _ZN8wxMathGL9ExportPNGE8wxString at Base 1.10.2.1
- _ZN8wxMathGL9ExportSVGE8wxString at Base 1.10.2.1
- _ZN8wxMathGL9NextSlideEv at Base 1.10.2.1
- _ZN8wxMathGL9PrevSlideEv at Base 1.10.2.1
- _ZN8wxMathGL9SetRotateEb at Base 1.10.2.1
- _ZN8wxMathGL9ShiftDownEv at Base 1.10.2.1
- _ZN8wxMathGL9ShiftLeftEv at Base 1.10.2.1
- _ZN8wxMathGLC1EP8wxWindowiRK7wxPointRK6wxSizelRK8wxString at Base 1.10.2.1
- _ZN8wxMathGLC2EP8wxWindowiRK7wxPointRK6wxSizelRK8wxString at Base 1.10.2.1
- _ZN8wxMathGLD0Ev at Base 1.10.2.1
- _ZN8wxMathGLD1Ev at Base 1.10.2.1
- _ZN8wxMathGLD2Ev at Base 1.10.2.1
- _ZN8wxStringD1Ev at Base 1.10.2.1
- _ZN8wxThread6OnExitEv at Base 1.10.2.1
- _ZN8wxWindow14OnParentEnableEb at Base 1.10.2.1
- _ZN8wxWindow15FixUpMouseEventEP10_GtkWidgetRiS2_ at Base 1.10.2.1
- _ZN8wxWindow8SetLabelERK8wxString at Base 1.10.2.1
- _ZNK12wxWindowBase10GetMaxSizeEv at Base 1.10.2.1
- _ZNK12wxWindowBase10GetMinSizeEv at Base 1.10.2.1
- _ZNK12wxWindowBase10HasCaptureEv at Base 1.10.2.1
- _ZNK12wxWindowBase13GetDropTargetEv at Base 1.10.2.1
- _ZNK12wxWindowBase15GetThemeEnabledEv at Base 1.10.2.1
- _ZNK12wxWindowBase16HasMultiplePagesEv at Base 1.10.2.1
- _ZNK12wxWindowBase18GetBackgroundStyleEv at Base 1.10.2.1
- _ZNK12wxWindowBase18GetBestVirtualSizeEv at Base 1.10.2.1
- _ZNK12wxWindowBase18GetWindowStyleFlagEv at Base 1.10.2.1
- _ZNK12wxWindowBase20GetDefaultAttributesEv at Base 1.10.2.1
- _ZNK12wxWindowBase20ShouldInheritColoursEv at Base 1.10.2.1
- _ZNK12wxWindowBase24AcceptsFocusFromKeyboardEv at Base 1.10.2.1
- _ZNK12wxWindowBase27GetWindowSizeForVirtualSizeERK6wxSize at Base 1.10.2.1
- _ZNK12wxWindowBase7GetNameEv at Base 1.10.2.1
- _ZNK12wxWindowBase7IsShownEv at Base 1.10.2.1
- _ZNK12wxWindowBase8IsFrozenEv at Base 1.10.2.1
- _ZNK12wxWindowBase9IsEnabledEv at Base 1.10.2.1
- _ZNK13wxTransform2D16InverseTransformEP11wxRect2DInt at Base 1.10.2.1
- _ZNK13wxTransform2D16InverseTransformERK11wxRect2DInt at Base 1.10.2.1
- _ZNK13wxTransform2D16InverseTransformERK12wxPoint2DInt at Base 1.10.2.1
- _ZNK13wxTransform2D9TransformEP11wxRect2DInt at Base 1.10.2.1
- _ZNK13wxTransform2D9TransformERK11wxRect2DInt at Base 1.10.2.1
- _ZNK13wxTransform2D9TransformERK12wxPoint2DInt at Base 1.10.2.1
- _ZNK8wxMathGL13GetEventTableEv at Base 1.10.2.1
- _ZNK8wxMathGL17GetEventHashTableEv at Base 1.10.2.1
- _ZNK8wxWindow13IsRadioButtonEv at Base 1.10.2.1
- _ZNK8wxWindow21IsTransparentForMouseEv at Base 1.10.2.1
- _ZNK8wxWindow8GetLabelEv at Base 1.10.2.1
- _ZNK8wxWindow9GetHandleEv at Base 1.10.2.1
- _ZTI13wxTransform2D at Base 1.10.2.1
- _ZTI20wxThreadHelperThread at Base 1.10.2.1
- _ZTI8wxMathGL at Base 1.10.2.1
- _ZTS13wxTransform2D at Base 1.10.2.1
- _ZTS20wxThreadHelperThread at Base 1.10.2.1
- _ZTS8wxMathGL at Base 1.10.2.1
- _ZTV13wxTransform2D at Base 1.10.2.1
- _ZTV20wxThreadHelperThread at Base 1.10.2.1
- _ZTV8wxMathGL at Base 1.10.2.1
\ No newline at end of file
+ _Z15mglSetExtensionR8wxStringPKc at Base 1.11
+ _Z16convertFromGraphR8wxBitmapP10mglGraphABPPh at Base 1.11
+ _Z8mglw_strRK8wxString at Base 1.11
+ _ZN12wxWindowBase10SetMaxSizeERK6wxSize at Base 1.11
+ _ZN12wxWindowBase10SetMinSizeERK6wxSize at Base 1.11
+ _ZN12wxWindowBase12GetValidatorEv at Base 1.11
+ _ZN12wxWindowBase12SetSizeHintsEiiiiii at Base 1.11
+ _ZN12wxWindowBase13SetExtraStyleEl at Base 1.11
+ _ZN12wxWindowBase14SetTransparentEh at Base 1.11
+ _ZN12wxWindowBase15AssociateHandleEP10_GtkWidget at Base 1.11
+ _ZN12wxWindowBase15SetFocusFromKbdEv at Base 1.11
+ _ZN12wxWindowBase15SetThemeEnabledEb at Base 1.11
+ _ZN12wxWindowBase16DissociateHandleEv at Base 1.11
+ _ZN12wxWindowBase17CanSetTransparentEv at Base 1.11
+ _ZN12wxWindowBase18SetInitialBestSizeERK6wxSize at Base 1.11
+ _ZN12wxWindowBase19SetAcceleratorTableERK18wxAcceleratorTable at Base 1.11
+ _ZN12wxWindowBase24HasTransparentBackgroundEv at Base 1.11
+ _ZN12wxWindowBase31GetMainWindowOfCompositeControlEv at Base 1.11
+ _ZN12wxWindowBase4ThawEv at Base 1.11
+ _ZN12wxWindowBase6FreezeEv at Base 1.11
+ _ZN12wxWindowBase7SetNameERK8wxString at Base 1.11
+ _ZN12wxWindowBase9PrepareDCER4wxDC at Base 1.11
+ _ZN13wxTransform2DD0Ev at Base 1.11
+ _ZN13wxTransform2DD1Ev at Base 1.11
+ _ZN20wxThreadHelperThread5EntryEv at Base 1.11
+ _ZN20wxThreadHelperThreadD0Ev at Base 1.11
+ _ZN20wxThreadHelperThreadD1Ev at Base 1.11
+ _ZN8wxMathGL10ExportIDTFE8wxString at Base 1.11
+ _ZN8wxMathGL10ExportPNGsE8wxString at Base 1.11
+ _ZN8wxMathGL10SetMGLFontE8wxString at Base 1.11
+ _ZN8wxMathGL10ShiftRightEv at Base 1.11
+ _ZN8wxMathGL11OnMouseDownER12wxMouseEvent at Base 1.11
+ _ZN8wxMathGL11OnMouseMoveER12wxMouseEvent at Base 1.11
+ _ZN8wxMathGL11OnNextSlideER12wxTimerEvent at Base 1.11
+ _ZN8wxMathGL13OnMouseLeftUpER12wxMouseEvent at Base 1.11
+ _ZN8wxMathGL13sm_eventTableE at Base 1.11
+ _ZN8wxMathGL14OnMouseRightUpER12wxMouseEvent at Base 1.11
+ _ZN8wxMathGL15OnMouseLeftDownER12wxMouseEvent at Base 1.11
+ _ZN8wxMathGL17sm_eventHashTableE at Base 1.11
+ _ZN8wxMathGL20sm_eventTableEntriesE at Base 1.11
+ _ZN8wxMathGL4CopyEv at Base 1.11
+ _ZN8wxMathGL5AboutEv at Base 1.11
+ _ZN8wxMathGL6AdjustEv at Base 1.11
+ _ZN8wxMathGL6OnSizeER11wxSizeEvent at Base 1.11
+ _ZN8wxMathGL6SetPerEi at Base 1.11
+ _ZN8wxMathGL6SetPhiEi at Base 1.11
+ _ZN8wxMathGL6SetTetEi at Base 1.11
+ _ZN8wxMathGL6UpdateEP8mglGraph at Base 1.11
+ _ZN8wxMathGL6ZoomInEv at Base 1.11
+ _ZN8wxMathGL7OnPaintER12wxPaintEvent at Base 1.11
+ _ZN8wxMathGL7RepaintEv at Base 1.11
+ _ZN8wxMathGL7RestoreEv at Base 1.11
+ _ZN8wxMathGL7SetDrawEP7mglDraw at Base 1.11
+ _ZN8wxMathGL7SetDrawEPFiP8mglGraphPvES2_ at Base 1.11
+ _ZN8wxMathGL7SetSizeEii at Base 1.11
+ _ZN8wxMathGL7SetZoomEb at Base 1.11
+ _ZN8wxMathGL7ShiftUpEv at Base 1.11
+ _ZN8wxMathGL7ZoomOutEv at Base 1.11
+ _ZN8wxMathGL8SetAlphaEb at Base 1.11
+ _ZN8wxMathGL8SetGraphEP10mglGraphAB at Base 1.11
+ _ZN8wxMathGL8SetLightEb at Base 1.11
+ _ZN8wxMathGL9AnimationEb at Base 1.11
+ _ZN8wxMathGL9ExportBPSE8wxString at Base 1.11
+ _ZN8wxMathGL9ExportEPSE8wxString at Base 1.11
+ _ZN8wxMathGL9ExportJPGE8wxString at Base 1.11
+ _ZN8wxMathGL9ExportPNGE8wxString at Base 1.11
+ _ZN8wxMathGL9ExportSVGE8wxString at Base 1.11
+ _ZN8wxMathGL9NextSlideEv at Base 1.11
+ _ZN8wxMathGL9PrevSlideEv at Base 1.11
+ _ZN8wxMathGL9SetRotateEb at Base 1.11
+ _ZN8wxMathGL9ShiftDownEv at Base 1.11
+ _ZN8wxMathGL9ShiftLeftEv at Base 1.11
+ _ZN8wxMathGLC1EP8wxWindowiRK7wxPointRK6wxSizelRK8wxString at Base 1.11
+ _ZN8wxMathGLC2EP8wxWindowiRK7wxPointRK6wxSizelRK8wxString at Base 1.11
+ _ZN8wxMathGLD0Ev at Base 1.11
+ _ZN8wxMathGLD1Ev at Base 1.11
+ _ZN8wxMathGLD2Ev at Base 1.11
+ _ZN8wxStringD1Ev at Base 1.11
+ _ZN8wxThread6OnExitEv at Base 1.11
+ _ZN8wxWindow14OnParentEnableEb at Base 1.11
+ _ZN8wxWindow15FixUpMouseEventEP10_GtkWidgetRiS2_ at Base 1.11
+ _ZN8wxWindow8SetLabelERK8wxString at Base 1.11
+ _ZNK12wxWindowBase10GetMaxSizeEv at Base 1.11
+ _ZNK12wxWindowBase10GetMinSizeEv at Base 1.11
+ _ZNK12wxWindowBase10HasCaptureEv at Base 1.11
+ _ZNK12wxWindowBase13GetDropTargetEv at Base 1.11
+ _ZNK12wxWindowBase15GetThemeEnabledEv at Base 1.11
+ _ZNK12wxWindowBase16HasMultiplePagesEv at Base 1.11
+ _ZNK12wxWindowBase18GetBackgroundStyleEv at Base 1.11
+ _ZNK12wxWindowBase18GetBestVirtualSizeEv at Base 1.11
+ _ZNK12wxWindowBase18GetWindowStyleFlagEv at Base 1.11
+ _ZNK12wxWindowBase20GetDefaultAttributesEv at Base 1.11
+ _ZNK12wxWindowBase20ShouldInheritColoursEv at Base 1.11
+ _ZNK12wxWindowBase24AcceptsFocusFromKeyboardEv at Base 1.11
+ _ZNK12wxWindowBase27GetWindowSizeForVirtualSizeERK6wxSize at Base 1.11
+ _ZNK12wxWindowBase7GetNameEv at Base 1.11
+ _ZNK12wxWindowBase7IsShownEv at Base 1.11
+ _ZNK12wxWindowBase8IsFrozenEv at Base 1.11
+ _ZNK12wxWindowBase9IsEnabledEv at Base 1.11
+ _ZNK13wxTransform2D16InverseTransformEP11wxRect2DInt at Base 1.11
+ _ZNK13wxTransform2D16InverseTransformERK11wxRect2DInt at Base 1.11
+ _ZNK13wxTransform2D16InverseTransformERK12wxPoint2DInt at Base 1.11
+ _ZNK13wxTransform2D9TransformEP11wxRect2DInt at Base 1.11
+ _ZNK13wxTransform2D9TransformERK11wxRect2DInt at Base 1.11
+ _ZNK13wxTransform2D9TransformERK12wxPoint2DInt at Base 1.11
+ _ZNK8wxMathGL13GetEventTableEv at Base 1.11
+ _ZNK8wxMathGL17GetEventHashTableEv at Base 1.11
+ _ZNK8wxWindow13IsRadioButtonEv at Base 1.11
+ _ZNK8wxWindow21IsTransparentForMouseEv at Base 1.11
+ _ZNK8wxWindow8GetLabelEv at Base 1.11
+ _ZNK8wxWindow9GetHandleEv at Base 1.11
+ _ZTI13wxTransform2D at Base 1.11
+ _ZTI20wxThreadHelperThread at Base 1.11
+ _ZTI8wxMathGL at Base 1.11
+ _ZTS13wxTransform2D at Base 1.11
+ _ZTS20wxThreadHelperThread at Base 1.11
+ _ZTS8wxMathGL at Base 1.11
+ _ZTV13wxTransform2D at Base 1.11
+ _ZTV20wxThreadHelperThread at Base 1.11
+ _ZTV8wxMathGL at Base 1.11
\ No newline at end of file
diff --git a/debian/libmgl-wx5/DEBIAN/control b/debian/libmgl-wx5/DEBIAN/control
new file mode 100644
index 0000000..f9c8059
--- /dev/null
+++ b/debian/libmgl-wx5/DEBIAN/control
@@ -0,0 +1,18 @@
+Package: libmgl-wx5
+Source: mathgl
+Version: 1.11-1
+Architecture: amd64
+Maintainer: Debian Science Maintainers <debian-science-maintainers at lists.alioth.debian.org>
+Installed-Size: 136
+Depends: libc6 (>= 2.2.5), libgcc1 (>= 1:4.1.1), libmgl5 (= 1.11-1), libstdc++6 (>= 4.1.1), libwxbase2.8-0 (>= 2.8.10.1), libwxgtk2.8-0 (>= 2.8.10.1)
+Section: libs
+Priority: optional
+Homepage: http://mathgl.sourceforge.net/index.html
+Description: library for scientific graphs. (wxWidgets runtime library)
+ A free cross-platform library of fast C++ routines for plotting data in up
+ to 3 dimensions. It can export plots to bitmaps and vector EPS, SVG, IDTF
+ files. There are simple window interfaces based on GLUT, FLTK and/or Qt.
+ MathGL can also be used in the console. There are interfaces to a set of
+ languages, such as, C, Fortran, Pascal, Forth, Python, Octave.
+ .
+ This package contains the wxWidgets frontend.
diff --git a/debian/libmgl-wx5/DEBIAN/md5sums b/debian/libmgl-wx5/DEBIAN/md5sums
new file mode 100644
index 0000000..d3c5e89
--- /dev/null
+++ b/debian/libmgl-wx5/DEBIAN/md5sums
@@ -0,0 +1,4 @@
+3235b49fa233a95439e0919c3fffe22f  usr/lib/libmgl-wx.so.5.0.0
+1c92e8b7f012e099103c470392856dbc  usr/share/doc/libmgl-wx5/changelog.Debian.gz
+a280771232296099803f36a37509d1ca  usr/share/doc/libmgl-wx5/changelog.gz
+3a712fb4482d591b961d2f1791b6aa63  usr/share/doc/libmgl-wx5/copyright
diff --git a/debian/libmgl-wx5/DEBIAN/postinst b/debian/libmgl-wx5/DEBIAN/postinst
new file mode 100755
index 0000000..379f1fa
--- /dev/null
+++ b/debian/libmgl-wx5/DEBIAN/postinst
@@ -0,0 +1,7 @@
+#!/bin/sh
+set -e
+# Automatically added by dh_makeshlibs
+if [ "$1" = "configure" ]; then
+	ldconfig
+fi
+# End automatically added section
diff --git a/debian/libmgl-wx5/DEBIAN/postrm b/debian/libmgl-wx5/DEBIAN/postrm
new file mode 100755
index 0000000..3e73d38
--- /dev/null
+++ b/debian/libmgl-wx5/DEBIAN/postrm
@@ -0,0 +1,7 @@
+#!/bin/sh
+set -e
+# Automatically added by dh_makeshlibs
+if [ "$1" = "remove" ]; then
+	ldconfig
+fi
+# End automatically added section
diff --git a/debian/libmgl-wx5/DEBIAN/shlibs b/debian/libmgl-wx5/DEBIAN/shlibs
new file mode 100644
index 0000000..dd6bca1
--- /dev/null
+++ b/debian/libmgl-wx5/DEBIAN/shlibs
@@ -0,0 +1 @@
+libmgl-wx 5 libmgl-wx5
diff --git a/debian/libmgl-wx5/DEBIAN/symbols b/debian/libmgl-wx5/DEBIAN/symbols
new file mode 100644
index 0000000..ece31ab
--- /dev/null
+++ b/debian/libmgl-wx5/DEBIAN/symbols
@@ -0,0 +1,121 @@
+libmgl-wx.so.5 libmgl-wx5 #MINVER#
+ _Z15mglSetExtensionR8wxStringPKc at Base 1.11
+ _Z16convertFromGraphR8wxBitmapP10mglGraphABPPh at Base 1.11
+ _Z8mglw_strRK8wxString at Base 1.11
+ _ZN12wxWindowBase10SetMaxSizeERK6wxSize at Base 1.11
+ _ZN12wxWindowBase10SetMinSizeERK6wxSize at Base 1.11
+ _ZN12wxWindowBase12GetValidatorEv at Base 1.11
+ _ZN12wxWindowBase12SetSizeHintsEiiiiii at Base 1.11
+ _ZN12wxWindowBase13SetExtraStyleEl at Base 1.11
+ _ZN12wxWindowBase14SetTransparentEh at Base 1.11
+ _ZN12wxWindowBase15AssociateHandleEP10_GtkWidget at Base 1.11
+ _ZN12wxWindowBase15SetFocusFromKbdEv at Base 1.11
+ _ZN12wxWindowBase15SetThemeEnabledEb at Base 1.11
+ _ZN12wxWindowBase16DissociateHandleEv at Base 1.11
+ _ZN12wxWindowBase17CanSetTransparentEv at Base 1.11
+ _ZN12wxWindowBase18SetInitialBestSizeERK6wxSize at Base 1.11
+ _ZN12wxWindowBase19SetAcceleratorTableERK18wxAcceleratorTable at Base 1.11
+ _ZN12wxWindowBase24HasTransparentBackgroundEv at Base 1.11
+ _ZN12wxWindowBase31GetMainWindowOfCompositeControlEv at Base 1.11
+ _ZN12wxWindowBase4ThawEv at Base 1.11
+ _ZN12wxWindowBase6FreezeEv at Base 1.11
+ _ZN12wxWindowBase7SetNameERK8wxString at Base 1.11
+ _ZN12wxWindowBase9PrepareDCER4wxDC at Base 1.11
+ _ZN13wxTransform2DD0Ev at Base 1.11
+ _ZN13wxTransform2DD1Ev at Base 1.11
+ _ZN20wxThreadHelperThread5EntryEv at Base 1.11
+ _ZN20wxThreadHelperThreadD0Ev at Base 1.11
+ _ZN20wxThreadHelperThreadD1Ev at Base 1.11
+ _ZN8wxMathGL10ExportIDTFE8wxString at Base 1.11
+ _ZN8wxMathGL10ExportPNGsE8wxString at Base 1.11
+ _ZN8wxMathGL10SetMGLFontE8wxString at Base 1.11
+ _ZN8wxMathGL10ShiftRightEv at Base 1.11
+ _ZN8wxMathGL11OnMouseDownER12wxMouseEvent at Base 1.11
+ _ZN8wxMathGL11OnMouseMoveER12wxMouseEvent at Base 1.11
+ _ZN8wxMathGL11OnNextSlideER12wxTimerEvent at Base 1.11
+ _ZN8wxMathGL13OnMouseLeftUpER12wxMouseEvent at Base 1.11
+ _ZN8wxMathGL13sm_eventTableE at Base 1.11
+ _ZN8wxMathGL14OnMouseRightUpER12wxMouseEvent at Base 1.11
+ _ZN8wxMathGL15OnMouseLeftDownER12wxMouseEvent at Base 1.11
+ _ZN8wxMathGL17sm_eventHashTableE at Base 1.11
+ _ZN8wxMathGL20sm_eventTableEntriesE at Base 1.11
+ _ZN8wxMathGL4CopyEv at Base 1.11
+ _ZN8wxMathGL5AboutEv at Base 1.11
+ _ZN8wxMathGL6AdjustEv at Base 1.11
+ _ZN8wxMathGL6OnSizeER11wxSizeEvent at Base 1.11
+ _ZN8wxMathGL6SetPerEi at Base 1.11
+ _ZN8wxMathGL6SetPhiEi at Base 1.11
+ _ZN8wxMathGL6SetTetEi at Base 1.11
+ _ZN8wxMathGL6UpdateEP8mglGraph at Base 1.11
+ _ZN8wxMathGL6ZoomInEv at Base 1.11
+ _ZN8wxMathGL7OnPaintER12wxPaintEvent at Base 1.11
+ _ZN8wxMathGL7RepaintEv at Base 1.11
+ _ZN8wxMathGL7RestoreEv at Base 1.11
+ _ZN8wxMathGL7SetDrawEP7mglDraw at Base 1.11
+ _ZN8wxMathGL7SetDrawEPFiP8mglGraphPvES2_ at Base 1.11
+ _ZN8wxMathGL7SetSizeEii at Base 1.11
+ _ZN8wxMathGL7SetZoomEb at Base 1.11
+ _ZN8wxMathGL7ShiftUpEv at Base 1.11
+ _ZN8wxMathGL7ZoomOutEv at Base 1.11
+ _ZN8wxMathGL8SetAlphaEb at Base 1.11
+ _ZN8wxMathGL8SetGraphEP10mglGraphAB at Base 1.11
+ _ZN8wxMathGL8SetLightEb at Base 1.11
+ _ZN8wxMathGL9AnimationEb at Base 1.11
+ _ZN8wxMathGL9ExportBPSE8wxString at Base 1.11
+ _ZN8wxMathGL9ExportEPSE8wxString at Base 1.11
+ _ZN8wxMathGL9ExportJPGE8wxString at Base 1.11
+ _ZN8wxMathGL9ExportPNGE8wxString at Base 1.11
+ _ZN8wxMathGL9ExportSVGE8wxString at Base 1.11
+ _ZN8wxMathGL9NextSlideEv at Base 1.11
+ _ZN8wxMathGL9PrevSlideEv at Base 1.11
+ _ZN8wxMathGL9SetRotateEb at Base 1.11
+ _ZN8wxMathGL9ShiftDownEv at Base 1.11
+ _ZN8wxMathGL9ShiftLeftEv at Base 1.11
+ _ZN8wxMathGLC1EP8wxWindowiRK7wxPointRK6wxSizelRK8wxString at Base 1.11
+ _ZN8wxMathGLC2EP8wxWindowiRK7wxPointRK6wxSizelRK8wxString at Base 1.11
+ _ZN8wxMathGLD0Ev at Base 1.11
+ _ZN8wxMathGLD1Ev at Base 1.11
+ _ZN8wxMathGLD2Ev at Base 1.11
+ _ZN8wxStringD1Ev at Base 1.11
+ _ZN8wxThread6OnExitEv at Base 1.11
+ _ZN8wxWindow14OnParentEnableEb at Base 1.11
+ _ZN8wxWindow15FixUpMouseEventEP10_GtkWidgetRiS2_ at Base 1.11
+ _ZN8wxWindow8SetLabelERK8wxString at Base 1.11
+ _ZNK12wxWindowBase10GetMaxSizeEv at Base 1.11
+ _ZNK12wxWindowBase10GetMinSizeEv at Base 1.11
+ _ZNK12wxWindowBase10HasCaptureEv at Base 1.11
+ _ZNK12wxWindowBase13GetDropTargetEv at Base 1.11
+ _ZNK12wxWindowBase15GetThemeEnabledEv at Base 1.11
+ _ZNK12wxWindowBase16HasMultiplePagesEv at Base 1.11
+ _ZNK12wxWindowBase18GetBackgroundStyleEv at Base 1.11
+ _ZNK12wxWindowBase18GetBestVirtualSizeEv at Base 1.11
+ _ZNK12wxWindowBase18GetWindowStyleFlagEv at Base 1.11
+ _ZNK12wxWindowBase20GetDefaultAttributesEv at Base 1.11
+ _ZNK12wxWindowBase20ShouldInheritColoursEv at Base 1.11
+ _ZNK12wxWindowBase24AcceptsFocusFromKeyboardEv at Base 1.11
+ _ZNK12wxWindowBase27GetWindowSizeForVirtualSizeERK6wxSize at Base 1.11
+ _ZNK12wxWindowBase7GetNameEv at Base 1.11
+ _ZNK12wxWindowBase7IsShownEv at Base 1.11
+ _ZNK12wxWindowBase8IsFrozenEv at Base 1.11
+ _ZNK12wxWindowBase9IsEnabledEv at Base 1.11
+ _ZNK13wxTransform2D16InverseTransformEP11wxRect2DInt at Base 1.11
+ _ZNK13wxTransform2D16InverseTransformERK11wxRect2DInt at Base 1.11
+ _ZNK13wxTransform2D16InverseTransformERK12wxPoint2DInt at Base 1.11
+ _ZNK13wxTransform2D9TransformEP11wxRect2DInt at Base 1.11
+ _ZNK13wxTransform2D9TransformERK11wxRect2DInt at Base 1.11
+ _ZNK13wxTransform2D9TransformERK12wxPoint2DInt at Base 1.11
+ _ZNK8wxMathGL13GetEventTableEv at Base 1.11
+ _ZNK8wxMathGL17GetEventHashTableEv at Base 1.11
+ _ZNK8wxWindow13IsRadioButtonEv at Base 1.11
+ _ZNK8wxWindow21IsTransparentForMouseEv at Base 1.11
+ _ZNK8wxWindow8GetLabelEv at Base 1.11
+ _ZNK8wxWindow9GetHandleEv at Base 1.11
+ _ZTI13wxTransform2D at Base 1.11
+ _ZTI20wxThreadHelperThread at Base 1.11
+ _ZTI8wxMathGL at Base 1.11
+ _ZTS13wxTransform2D at Base 1.11
+ _ZTS20wxThreadHelperThread at Base 1.11
+ _ZTS8wxMathGL at Base 1.11
+ _ZTV13wxTransform2D at Base 1.11
+ _ZTV20wxThreadHelperThread at Base 1.11
+ _ZTV8wxMathGL at Base 1.11
diff --git a/debian/libmgl-wx5/usr/lib/libmgl-wx.so.5 b/debian/libmgl-wx5/usr/lib/libmgl-wx.so.5
new file mode 120000
index 0000000..37b70a5
--- /dev/null
+++ b/debian/libmgl-wx5/usr/lib/libmgl-wx.so.5
@@ -0,0 +1 @@
+libmgl-wx.so.5.0.0
\ No newline at end of file
diff --git a/debian/libmgl-wx5/usr/lib/libmgl-wx.so.5.0.0 b/debian/libmgl-wx5/usr/lib/libmgl-wx.so.5.0.0
new file mode 100644
index 0000000..f0031cc
Binary files /dev/null and b/debian/libmgl-wx5/usr/lib/libmgl-wx.so.5.0.0 differ
diff --git a/debian/libmgl-wx5/usr/share/doc/libmgl-wx5/changelog.Debian.gz b/debian/libmgl-wx5/usr/share/doc/libmgl-wx5/changelog.Debian.gz
new file mode 100644
index 0000000..b8480bb
Binary files /dev/null and b/debian/libmgl-wx5/usr/share/doc/libmgl-wx5/changelog.Debian.gz differ
diff --git a/debian/libmgl-wx5/usr/share/doc/libmgl-wx5/changelog.gz b/debian/libmgl-wx5/usr/share/doc/libmgl-wx5/changelog.gz
new file mode 100644
index 0000000..be3de85
Binary files /dev/null and b/debian/libmgl-wx5/usr/share/doc/libmgl-wx5/changelog.gz differ
diff --git a/debian/copyright b/debian/libmgl-wx5/usr/share/doc/libmgl-wx5/copyright
similarity index 100%
copy from debian/copyright
copy to debian/libmgl-wx5/usr/share/doc/libmgl-wx5/copyright
diff --git a/debian/libmgl5.debhelper.log b/debian/libmgl5.debhelper.log
new file mode 100644
index 0000000..1174084
--- /dev/null
+++ b/debian/libmgl5.debhelper.log
@@ -0,0 +1,15 @@
+dh_prep
+dh_installchangelogs
+dh_installdocs
+dh_install
+dh_link
+dh_strip
+dh_compress
+dh_fixperms
+dh_makeshlibs
+dh_installdeb
+dh_installman
+dh_shlibdeps
+dh_gencontrol
+dh_md5sums
+dh_builddeb
diff --git a/debian/libmgl5.postinst.debhelper b/debian/libmgl5.postinst.debhelper
new file mode 100644
index 0000000..3d89d3e
--- /dev/null
+++ b/debian/libmgl5.postinst.debhelper
@@ -0,0 +1,5 @@
+# Automatically added by dh_makeshlibs
+if [ "$1" = "configure" ]; then
+	ldconfig
+fi
+# End automatically added section
diff --git a/debian/libmgl5.postrm.debhelper b/debian/libmgl5.postrm.debhelper
new file mode 100644
index 0000000..7f44047
--- /dev/null
+++ b/debian/libmgl5.postrm.debhelper
@@ -0,0 +1,5 @@
+# Automatically added by dh_makeshlibs
+if [ "$1" = "remove" ]; then
+	ldconfig
+fi
+# End automatically added section
diff --git a/debian/libmgl5.substvars b/debian/libmgl5.substvars
new file mode 100644
index 0000000..cf5e411
--- /dev/null
+++ b/debian/libmgl5.substvars
@@ -0,0 +1,2 @@
+shlibs:Depends=libc6 (>= 2.2.5), libgcc1 (>= 1:4.1.1), libgif4 (>= 4.1.4), libgl1-mesa-glx | libgl1, libgsl0ldbl (>= 1.9), libhdf4-0, libhdf5-serial-1.8.4 | libhdf5-1.8.4, libjpeg62 (>= 6b1), libpng12-0 (>= 1.2.13-4), libstdc++6 (>= 4.2.1)
+misc:Depends=
diff --git a/debian/libmgl5.symbols b/debian/libmgl5.symbols
index b025989..0618c72 100644
--- a/debian/libmgl5.symbols
+++ b/debian/libmgl5.symbols
@@ -1,2408 +1,2499 @@
 libmgl.so.5 libmgl5 #MINVER#
- _Z10mglFindArgPKw at Base 1.10.2.1
- _Z10mglFourierR7mglDataS0_PKc at Base 1.10.2.1
- _Z10mgl_cos_ppPflll at Base 1.10.2.1
- _Z10mgl_fit__fPK10gsl_vectorPvPS_ at Base 1.10.2.1
- _Z10mgl_istruec at Base 1.10.2.1
- _Z10mgl_okruglfi at Base 1.10.2.1
- _Z10mgl_strclsPc at Base 1.10.2.1
- _Z10mgl_strdupPKc at Base 1.10.2.1
- _Z10mgl_strlwrPc at Base 1.10.2.1
- _Z10mgl_strposPKcPc at Base 1.10.2.1
- _Z10mgl_strposPKcc at Base 1.10.2.1
- _Z10mgl_wcsdupPKw at Base 1.10.2.1
- _Z10mgl_wcslwrPw at Base 1.10.2.1
- _Z10mglc_addtoPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_alphaPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_axialPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_caxisPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_chartPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_chdirPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_cloudPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_cont3PwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_contaPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_contdPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_contfPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_contxPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_contyPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_contzPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_crustPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_ctickPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_curvePwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_dens3PwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_densaPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_densxPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_densyPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_denszPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_diff2PwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_divtoPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_errorPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_facexPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_faceyPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_facezPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_fgetsPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_fplotPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_fsurfPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_grid3PwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_gridaPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_labelPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_lightPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_multoPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_radarPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_stfadPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_subtoPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_surf3PwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_surfaPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_surfcPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_titlePwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_torusPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_tracePwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_vectcPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_vectlPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_writePwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_xtickPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_ytickPwlP6mglArgPi at Base 1.10.2.1
- _Z10mglc_ztickPwlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_addtoP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_alphaP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_axialP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_caxisP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_chartP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_chdirP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_cloudP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_cont3P8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_contaP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_contdP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_contfP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_contxP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_contyP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_contzP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_crustP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_ctickP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_curveP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_dens3P8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_densaP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_densxP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_densyP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_denszP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_diff2P8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_divtoP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_errorP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_facexP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_faceyP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_facezP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_fgetsP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_fplotP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_fsurfP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_grid3P8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_gridaP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_labelP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_lightP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_multoP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_radarP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_stfadP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_subtoP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_surf3P8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_surfaP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_surfcP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_titleP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_torusP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_traceP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_vectcP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_vectlP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_writeP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_xtickP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_ytickP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10mgls_ztickP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z10same_chainllPl at Base 1.10.2.1
- _Z11mglDifrGridPSt7complexIdEiS0_iS1_S1_i at Base 1.10.2.1
- _Z11mglJacobianRK7mglDataS1_ at Base 1.10.2.1
- _Z11mglJacobianRK7mglDataS1_S1_ at Base 1.10.2.1
- _Z11mgl_cmd_cmpPKvS0_ at Base 1.10.2.1
- _Z11mgl_cmp_fltPKvS0_ at Base 1.10.2.1
- _Z11mgl_col_difPhS_b at Base 1.10.2.1
- _Z11mgl_fgetstrP8_IO_FILE at Base 1.10.2.1
- _Z11mgl_fit__dfPK10gsl_vectorPvP10gsl_matrix at Base 1.10.2.1
- _Z11mgl_init_raiPKfP6mgl_ap at Base 1.10.2.1
- _Z11mgl_spline3PfS_iifRf at Base 1.10.2.1
- _Z11mgl_spline5PfS_iifRf at Base 1.10.2.1
- _Z11mgl_strtrimPc at Base 1.10.2.1
- _Z11mgl_wcstrimPw at Base 1.10.2.1
- _Z11mglc_adjustPwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_aspectPwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_contf3PwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_contfaPwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_contfxPwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_contfyPwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_contfzPwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_crangePwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_cumsumPwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_exportPwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_extendPwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_importPwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_inplotPwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_legendPwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_mirrorPwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_modifyPwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_normslPwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_originPwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_rangesPwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_regionPwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_resizePwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_rotatePwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_set_idPwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_smoothPwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_spherePwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_surf3aPwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_surf3cPwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_tlabelPwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_xlabelPwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_xrangePwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_ylabelPwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_yrangePwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_zlabelPwlP6mglArgPi at Base 1.10.2.1
- _Z11mglc_zrangePwlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_adjustP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_aspectP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_contf3P8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_contfaP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_contfxP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_contfyP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_contfzP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_crangeP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_cumsumP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_exportP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_extendP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_importP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_inplotP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_legendP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_mirrorP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_modifyP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_normslP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_originP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_rangesP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_regionP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_resizeP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_rotateP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_set_idP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_smoothP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_sphereP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_suffixPKwP7mglDataPf at Base 1.10.2.1
- _Z11mgls_surf3aP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_surf3cP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_tlabelP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_xlabelP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_xrangeP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_ylabelP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_yrangeP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_zlabelP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11mgls_zrangeP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z11wcstrim_mglPw at Base 1.10.2.1
- _Z12mglApplyOperPKwS0_P8mglParsePFdddE at Base 1.10.2.1
- _Z12mglDifrAxialPSt7complexIdEiS0_iS1_S1_id at Base 1.10.2.1
- _Z12mglTransformRK7mglDataS1_PKc at Base 1.10.2.1
- _Z12mgl_add_fileRlS_S_RPfR7mglDatab at Base 1.10.2.1
- _Z12mgl_add_quadPPfS_ at Base 1.10.2.1
- _Z12mgl_bmp_savePKciiPPh at Base 1.10.2.1
- _Z12mgl_bps_savePKciiPPh at Base 1.10.2.1
- _Z12mgl_fft_freqPdj at Base 1.10.2.1
- _Z12mgl_fit__fdfPK10gsl_vectorPvPS_P10gsl_matrix at Base 1.10.2.1
- _Z12mgl_fit_baseP10mglFitDataPf at Base 1.10.2.1
- _Z12mgl_get_dashtf at Base 1.10.2.1
- _Z12mgl_get_nextllPlS_Pf at Base 1.10.2.1
- _Z12mgl_png_savePKciiPPh at Base 1.10.2.1
- _Z12mgl_str_copyPKc at Base 1.10.2.1
- _Z12mgl_wcstombsPcPKwi at Base 1.10.2.1
- _Z12mglc_ambientPwlP6mglArgPi at Base 1.10.2.1
- _Z12mglc_boxplotPwlP6mglArgPi at Base 1.10.2.1
- _Z12mglc_combinePwlP6mglArgPi at Base 1.10.2.1
- _Z12mglc_envelopPwlP6mglArgPi at Base 1.10.2.1
- _Z12mglc_meshnumPwlP6mglArgPi at Base 1.10.2.1
- _Z12mglc_palettePwlP6mglArgPi at Base 1.10.2.1
- _Z12mglc_putsfitPwlP6mglArgPi at Base 1.10.2.1
- _Z12mglc_readallPwlP6mglArgPi at Base 1.10.2.1
- _Z12mglc_readhdfPwlP6mglArgPi at Base 1.10.2.1
- _Z12mglc_readmatPwlP6mglArgPi at Base 1.10.2.1
- _Z12mglc_savehdfPwlP6mglArgPi at Base 1.10.2.1
- _Z12mglc_setsizePwlP6mglArgPi at Base 1.10.2.1
- _Z12mglc_squeezePwlP6mglArgPi at Base 1.10.2.1
- _Z12mglc_subdataPwlP6mglArgPi at Base 1.10.2.1
- _Z12mglc_subplotPwlP6mglArgPi at Base 1.10.2.1
- _Z12mglc_ternaryPwlP6mglArgPi at Base 1.10.2.1
- _Z12mglc_ticklenPwlP6mglArgPi at Base 1.10.2.1
- _Z12mglc_tickstlPwlP6mglArgPi at Base 1.10.2.1
- _Z12mglc_triplotPwlP6mglArgPi at Base 1.10.2.1
- _Z12mgls_ambientP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z12mgls_boxplotP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z12mgls_combineP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z12mgls_envelopP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z12mgls_meshnumP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z12mgls_paletteP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z12mgls_putsfitP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z12mgls_readallP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z12mgls_readhdfP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z12mgls_readmatP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z12mgls_savehdfP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z12mgls_setsizeP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z12mgls_squeezeP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z12mgls_subdataP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z12mgls_subplotP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z12mgls_ternaryP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z12mgls_ticklenP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z12mgls_tickstlP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z12mgls_triplotP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z13_mgl_tick_extffPwRf at Base 1.10.2.1
- _Z13mglFindInTextPcPKc at Base 1.10.2.1
- _Z13mglFindInTextPwPKc at Base 1.10.2.1
- _Z13mglTransformARK7mglDataS1_PKc at Base 1.10.2.1
- _Z13mgl_gauss_rndv at Base 1.10.2.1
- _Z13mgl_jpeg_savePKciiPPh at Base 1.10.2.1
- _Z13mgl_next_dataPKci at Base 1.10.2.1
- _Z13mgl_pnga_savePKciiPPh at Base 1.10.2.1
- _Z13mgl_puts_dir_PmPfS0_S0_S0_S0_S0_PKcS0_i at Base 1.10.2.1
- _Z13mglc_alphadefPwlP6mglArgPi at Base 1.10.2.1
- _Z13mglc_axialdirPwlP6mglArgPi at Base 1.10.2.1
- _Z13mglc_barwidthPwlP6mglArgPi at Base 1.10.2.1
- _Z13mglc_colorbarPwlP6mglArgPi at Base 1.10.2.1
- _Z13mglc_evaluatePwlP6mglArgPi at Base 1.10.2.1
- _Z13mglc_jacobianPwlP6mglArgPi at Base 1.10.2.1
- _Z13mglc_loadfontPwlP6mglArgPi at Base 1.10.2.1
- _Z13mglc_marksizePwlP6mglArgPi at Base 1.10.2.1
- _Z13mglc_momentumPwlP6mglArgPi at Base 1.10.2.1
- _Z13mglc_textmarkPwlP6mglArgPi at Base 1.10.2.1
- _Z13mgls_alphadefP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z13mgls_axialdirP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z13mgls_barwidthP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z13mgls_colorbarP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z13mgls_evaluateP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z13mgls_jacobianP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z13mgls_loadfontP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z13mgls_marksizeP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z13mgls_momentumP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z13mgls_textmarkP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z14_mgl_tick_textffffiPw at Base 1.10.2.1
- _Z14check_for_namePKw at Base 1.10.2.1
- _Z14mglFormulaCalcPKwP8mglParse at Base 1.10.2.1
- _Z14mgl_draw_classP8mglGraphPv at Base 1.10.2.1
- _Z14mgl_start_gif_Pm at Base 1.10.2.1
- _Z14mglc_addlegendPwlP6mglArgPi at Base 1.10.2.1
- _Z14mglc_arrowsizePwlP6mglArgPi at Base 1.10.2.1
- _Z14mglc_integratePwlP6mglArgPi at Base 1.10.2.1
- _Z14mglc_legendboxPwlP6mglArgPi at Base 1.10.2.1
- _Z14mglc_linewidthPwlP6mglArgPi at Base 1.10.2.1
- _Z14mglc_rearrangePwlP6mglArgPi at Base 1.10.2.1
- _Z14mglc_stickplotPwlP6mglArgPi at Base 1.10.2.1
- _Z14mglc_transformPwlP6mglArgPi at Base 1.10.2.1
- _Z14mglc_transposePwlP6mglArgPi at Base 1.10.2.1
- _Z14mgls_addlegendP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z14mgls_arrowsizeP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z14mgls_integrateP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z14mgls_legendboxP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z14mgls_linewidthP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z14mgls_rearrangeP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z14mgls_stickplotP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z14mgls_transformP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z14mgls_transposeP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z15mgl_error_printiiP8mglGraph at Base 1.10.2.1
- _Z15mgl_insert_triglllPPl at Base 1.10.2.1
- _Z15mglc_columnplotPwlP6mglArgPi at Base 1.10.2.1
- _Z15mglc_plotfactorPwlP6mglArgPi at Base 1.10.2.1
- _Z15mglc_rotatetextPwlP6mglArgPi at Base 1.10.2.1
- _Z15mglc_transformaPwlP6mglArgPi at Base 1.10.2.1
- _Z15mglc_transptypePwlP6mglArgPi at Base 1.10.2.1
- _Z15mgls_columnplotP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z15mgls_plotfactorP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z15mgls_rotatetextP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z15mgls_transformaP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z15mgls_transptypeP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z16mgl_compare_primPKvS0_ at Base 1.10.2.1
- _Z16mgl_data_export_PlPKcS1_PfS2_Piii at Base 1.10.2.1
- _Z16mgl_data_import_PlPKcS1_PfS2_ii at Base 1.10.2.1
- _Z16mgl_reload_classiPv at Base 1.10.2.1
- _Z16mgl_tex_symb_cmpPKvS0_ at Base 1.10.2.1
- _Z16mglc_clearlegendPwlP6mglArgPi at Base 1.10.2.1
- _Z16mglc_perspectivePwlP6mglArgPi at Base 1.10.2.1
- _Z16mglc_transparentPwlP6mglArgPi at Base 1.10.2.1
- _Z16mgls_clearlegendP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z16mgls_perspectiveP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z16mgls_transparentP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z17mgl_create_schemePKcRl at Base 1.10.2.1
- _Z18mgl_set_ticks_dir_PmPcPfPiS1_ at Base 1.10.2.1
- _Z3adddd at Base 1.10.2.1
- _Z3argdd at Base 1.10.2.1
- _Z3ceqdd at Base 1.10.2.1
- _Z3cgtdd at Base 1.10.2.1
- _Z3cltdd at Base 1.10.2.1
- _Z3cordd at Base 1.10.2.1
- _Z3divdd at Base 1.10.2.1
- _Z3i2si at Base 1.10.2.1
- _Z3ipwdd at Base 1.10.2.1
- _Z3lgcSt7complexIdE at Base 1.10.2.1
- _Z3llgdd at Base 1.10.2.1
- _Z3mgmdd at Base 1.10.2.1
- _Z3mgpdd at Base 1.10.2.1
- _Z3muldd at Base 1.10.2.1
- _Z3sgnd at Base 1.10.2.1
- _Z3stpd at Base 1.10.2.1
- _Z3subdd at Base 1.10.2.1
- _Z4GetXRK7mglDataiii at Base 1.10.2.1
- _Z4GetYRK7mglDataiii at Base 1.10.2.1
- _Z4GetZRK7mglDataiii at Base 1.10.2.1
- _Z4abscSt7complexIdE at Base 1.10.2.1
- _Z4addcSt7complexIdES0_ at Base 1.10.2.1
- _Z4canddd at Base 1.10.2.1
- _Z4ci_dd at Base 1.10.2.1
- _Z4coscSt7complexIdE at Base 1.10.2.1
- _Z4div1dd at Base 1.10.2.1
- _Z4div2dd at Base 1.10.2.1
- _Z4divcSt7complexIdES0_ at Base 1.10.2.1
- _Z4e1_dd at Base 1.10.2.1
- _Z4e2_dd at Base 1.10.2.1
- _Z4ei_dd at Base 1.10.2.1
- _Z4expcSt7complexIdE at Base 1.10.2.1
- _Z4expiSt7complexIdE at Base 1.10.2.1
- _Z4expid at Base 1.10.2.1
- _Z4ipw1dd at Base 1.10.2.1
- _Z4ipwcSt7complexIdES0_ at Base 1.10.2.1
- _Z4llg1dd at Base 1.10.2.1
- _Z4llg2dd at Base 1.10.2.1
- _Z4llgcSt7complexIdES0_ at Base 1.10.2.1
- _Z4logcSt7complexIdE at Base 1.10.2.1
- _Z4mgz1d at Base 1.10.2.1
- _Z4mgz2dd at Base 1.10.2.1
- _Z4mul1dd at Base 1.10.2.1
- _Z4mul2dd at Base 1.10.2.1
- _Z4mulcSt7complexIdES0_ at Base 1.10.2.1
- _Z4pow1dd at Base 1.10.2.1
- _Z4pow2dd at Base 1.10.2.1
- _Z4powcSt7complexIdES0_ at Base 1.10.2.1
- _Z4si_dd at Base 1.10.2.1
- _Z4sincSt7complexIdE at Base 1.10.2.1
- _Z4subcSt7complexIdES0_ at Base 1.10.2.1
- _Z4tancSt7complexIdE at Base 1.10.2.1
- _Z5acoscSt7complexIdE at Base 1.10.2.1
- _Z5asincSt7complexIdE at Base 1.10.2.1
- _Z5atancSt7complexIdE at Base 1.10.2.1
- _Z5cos_dd at Base 1.10.2.1
- _Z5coshcSt7complexIdE at Base 1.10.2.1
- _Z5erf_dd at Base 1.10.2.1
- _Z5gslAid at Base 1.10.2.1
- _Z5gslBid at Base 1.10.2.1
- _Z5log_dd at Base 1.10.2.1
- _Z5sinhcSt7complexIdE at Base 1.10.2.1
- _Z5sqrtcSt7complexIdE at Base 1.10.2.1
- _Z5tan_dd at Base 1.10.2.1
- _Z5tanhcSt7complexIdE at Base 1.10.2.1
- _Z6acos_dd at Base 1.10.2.1
- _Z6acoshcSt7complexIdE at Base 1.10.2.1
- _Z6asin_dd at Base 1.10.2.1
- _Z6asinhcSt7complexIdE at Base 1.10.2.1
- _Z6atan_dd at Base 1.10.2.1
- _Z6atanhcSt7complexIdE at Base 1.10.2.1
- _Z6exp3_dd at Base 1.10.2.1
- _Z6gslE_dd at Base 1.10.2.1
- _Z6gslK_dd at Base 1.10.2.1
- _Z6mglPDEPKcRK7mglDataS3_8mglPointS4_ff at Base 1.10.2.1
- _Z6mglRayPKc8mglPointS1_ff at Base 1.10.2.1
- _Z6sinc_dd at Base 1.10.2.1
- _Z6sqrt_dd at Base 1.10.2.1
- _Z6tanh_dd at Base 1.10.2.1
- _Z7acosh_dd at Base 1.10.2.1
- _Z7asinh_dd at Base 1.10.2.1
- _Z7atanh_dd at Base 1.10.2.1
- _Z7dilog_dd at Base 1.10.2.1
- _Z7gamma_dd at Base 1.10.2.1
- _Z7gslAi_dd at Base 1.10.2.1
- _Z7gslBi_dd at Base 1.10.2.1
- _Z7gslEllEdd at Base 1.10.2.1
- _Z7gslEllFdd at Base 1.10.2.1
- _Z7gslInuDdd at Base 1.10.2.1
- _Z7gslJnuDdd at Base 1.10.2.1
- _Z7gslKnuDdd at Base 1.10.2.1
- _Z7gslLegPdd at Base 1.10.2.1
- _Z7gslYnuDdd at Base 1.10.2.1
- _Z7log10_dd at Base 1.10.2.1
- _Z7mglAF2dPKcRK7mglDataS3_S3_ffPS1_S4_b at Base 1.10.2.1
- _Z7mglQO2dPKcRK7mglDataS3_S3_ffPS1_S4_b at Base 1.10.2.1
- _Z7mglSTFARK7mglDataS1_ic at Base 1.10.2.1
- _Z7mgl_getllPfff at Base 1.10.2.1
- _Z7mgl_rndv at Base 1.10.2.1
- _Z8gslEllE1dd at Base 1.10.2.1
- _Z8gslEllE2dd at Base 1.10.2.1
- _Z8gslEllEcd at Base 1.10.2.1
- _Z8gslEllF1dd at Base 1.10.2.1
- _Z8gslEllF2dd at Base 1.10.2.1
- _Z8gslEllFcd at Base 1.10.2.1
- _Z8mglCheckPci at Base 1.10.2.1
- _Z8mglCheckPwi at Base 1.10.2.1
- _Z8mglFillPiPKfiPf at Base 1.10.2.1
- _Z8mglFillPiiPKfiiPA4_f at Base 1.10.2.1
- _Z8mgl_distPfS_ at Base 1.10.2.1
- _Z8mgl_infoPKcz at Base 1.10.2.1
- _Z8mgl_ipowdi at Base 1.10.2.1
- _Z8mgl_multPfS_S_ at Base 1.10.2.1
- _Z8mgl_omodPffii at Base 1.10.2.1
- _Z8mgl_srndl at Base 1.10.2.1
- _Z8mgl_testPKcz at Base 1.10.2.1
- _Z8mglc_boxPwlP6mglArgPi at Base 1.10.2.1
- _Z8mglc_clfPwlP6mglArgPi at Base 1.10.2.1
- _Z8mglc_cutPwlP6mglArgPi at Base 1.10.2.1
- _Z8mglc_dewPwlP6mglArgPi at Base 1.10.2.1
- _Z8mglc_fitPwlP6mglArgPi at Base 1.10.2.1
- _Z8mglc_fogPwlP6mglArgPi at Base 1.10.2.1
- _Z8mglc_mapPwlP6mglArgPi at Base 1.10.2.1
- _Z8mglc_maxPwlP6mglArgPi at Base 1.10.2.1
- _Z8mglc_minPwlP6mglArgPi at Base 1.10.2.1
- _Z8mglc_newPwlP6mglArgPi at Base 1.10.2.1
- _Z8mglc_pdePwlP6mglArgPi at Base 1.10.2.1
- _Z8mglc_putPwlP6mglArgPi at Base 1.10.2.1
- _Z8mglc_rayPwlP6mglArgPi at Base 1.10.2.1
- _Z8mglc_sewPwlP6mglArgPi at Base 1.10.2.1
- _Z8mglc_sumPwlP6mglArgPi at Base 1.10.2.1
- _Z8mglc_varPwlP6mglArgPi at Base 1.10.2.1
- _Z8mgls_boxP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z8mgls_clfP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z8mgls_cutP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z8mgls_dewP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z8mgls_fitP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z8mgls_fogP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z8mgls_mapP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z8mgls_maxP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z8mgls_minP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z8mgls_newP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z8mgls_pdeP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z8mgls_putP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z8mgls_rayP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z8mgls_sewP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z8mgls_sumP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z8mgls_varP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9get_sliceR10_mgl_sliceRK7mglDataS3_S3_S3_cl at Base 1.10.2.1
- _Z9mgl_crustlPfPPlf at Base 1.10.2.1
- _Z9mgl_ipowcSt7complexIdEi at Base 1.10.2.1
- _Z9mgl_islogff at Base 1.10.2.1
- _Z9mglc_af2dPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_areaPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_axisPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_ballPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_barhPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_barsPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_beamPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_beltPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_boxsPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_conePwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_contPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_copyPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_cropPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_densPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_diffPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_dotsPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_dropPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_fallPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_fillPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_fitsPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_flowPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_fontPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_gridPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_histPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_infoPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_linePwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_markPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_meshPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_normPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_pipePwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_plotPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_qo2dPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_readPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_rectPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_savePwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_stemPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_stepPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_stfaPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_surfPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_swapPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_tensPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_textPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_tilePwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_trajPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_tubePwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_vectPwlP6mglArgPi at Base 1.10.2.1
- _Z9mglc_zoomPwlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_af2dP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_areaP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_axisP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_ballP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_barhP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_barsP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_beamP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_beltP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_boxsP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_coneP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_contP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_copyP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_cropP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_densP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_diffP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_dotsP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_dropP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_fallP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_fillP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_fitsP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_flowP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_fontP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_gridP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_histP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_infoP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_lineP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_markP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_meshP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_normP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_pipeP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_plotP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_qo2dP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_readP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_rectP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_saveP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_stemP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_stepP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_stfaP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_surfP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_swapP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_tensP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_textP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_tileP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_trajP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_tubeP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_vectP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9mgls_zoomP8mglGraphlP6mglArgPi at Base 1.10.2.1
- _Z9normal_1dRK7mglDatafPfb at Base 1.10.2.1
- _Z9normal_3dRK7mglDatafffPfS2_S2_b at Base 1.10.2.1
- _ZN10_mgl_sliceD1Ev at Base 1.10.2.1
- _ZN10mglFormula5ErrorE at Base 1.10.2.1
- _ZN10mglFormulaC1EPKc at Base 1.10.2.1
- _ZN10mglFormulaC2EPKc at Base 1.10.2.1
- _ZN10mglFormulaD1Ev at Base 1.10.2.1
- _ZN10mglFormulaD2Ev at Base 1.10.2.1
- _ZN10mglGraphAB10FindOptOrgEPfS0_S0_ at Base 1.10.2.1
- _ZN10mglGraphAB10LightScaleEv at Base 1.10.2.1
- _ZN10mglGraphAB10PutDrawRegEiiiPS_ at Base 1.10.2.1
- _ZN10mglGraphAB10SetDrawRegEiii at Base 1.10.2.1
- _ZN10mglGraphAB10ToggleZoomEv at Base 1.10.2.1
- _ZN10mglGraphAB10arrow_plotEPfS0_c at Base 1.10.2.1
- _ZN10mglGraphAB10axial_plotElPfPllb at Base 1.10.2.1
- _ZN10mglGraphAB10cloud_plotElllPfS0_f at Base 1.10.2.1
- _ZN10mglGraphAB10glyph_fillEfffiPKsPf at Base 1.10.2.1
- _ZN10mglGraphAB10glyph_lineEfffPfb at Base 1.10.2.1
- _ZN10mglGraphAB10glyph_wireEfffiPKsPf at Base 1.10.2.1
- _ZN10mglGraphAB10lines_plotElPfS0_Pbb at Base 1.10.2.1
- _ZN10mglGraphAB10quads_plotElPfS0_Pb at Base 1.10.2.1
- _ZN10mglGraphAB10surf3_plotEllPlS0_S0_S0_S0_PfS1_S1_S1_b at Base 1.10.2.1
- _ZN10mglGraphAB10trigs_plotElPllPfS1_Pbbb at Base 1.10.2.1
- _ZN10mglGraphAB10vects_plotElPfS0_Pb at Base 1.10.2.1
- _ZN10mglGraphAB11GetRGBLinesERlS0_RPhb at Base 1.10.2.1
- _ZN10mglGraphAB11PerspectiveEf at Base 1.10.2.1
- _ZN10mglGraphAB11SetPosScaleEffff at Base 1.10.2.1
- _ZN10mglGraphAB11ToggleAlphaEv at Base 1.10.2.1
- _ZN10mglGraphAB11ToggleLightEv at Base 1.10.2.1
- _ZN10mglGraphAB11quad_plot_aEPfS0_S0_S0_fffff at Base 1.10.2.1
- _ZN10mglGraphAB11quad_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.10.2.1
- _ZN10mglGraphAB11trig_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.10.2.1
- _ZN10mglGraphAB12ToggleRotateEv at Base 1.10.2.1
- _ZN10mglGraphAB13SetFontSizePTEfi at Base 1.10.2.1
- _ZN10mglGraphAB3PenE8mglColorcf at Base 1.10.2.1
- _ZN10mglGraphAB3PopEv at Base 1.10.2.1
- _ZN10mglGraphAB4BallEfff8mglColorf at Base 1.10.2.1
- _ZN10mglGraphAB4MarkEfffc at Base 1.10.2.1
- _ZN10mglGraphAB4PushEv at Base 1.10.2.1
- _ZN10mglGraphAB4ballEPfS0_ at Base 1.10.2.1
- _ZN10mglGraphAB5AlphaEb at Base 1.10.2.1
- _ZN10mglGraphAB5GlyphEfffilc at Base 1.10.2.1
- _ZN10mglGraphAB5LightEb at Base 1.10.2.1
- _ZN10mglGraphAB5LightEi8mglPoint8mglColorfb at Base 1.10.2.1
- _ZN10mglGraphAB5LightEib at Base 1.10.2.1
- _ZN10mglGraphAB5PutswE8mglPointPKwPKcfcf at Base 1.10.2.1
- _ZN10mglGraphAB5PutswE8mglPointS0_PKwcf at Base 1.10.2.1
- _ZN10mglGraphAB6AdjustEv at Base 1.10.2.1
- _ZN10mglGraphAB6AspectEfff at Base 1.10.2.1
- _ZN10mglGraphAB6InPlotEffffb at Base 1.10.2.1
- _ZN10mglGraphAB6LegendEiPPwPPcffPKcff at Base 1.10.2.1
- _ZN10mglGraphAB6ReLoadEb at Base 1.10.2.1
- _ZN10mglGraphAB6UpdateEv at Base 1.10.2.1
- _ZN10mglGraphAB6WindowEiPPcP7mglDrawPKcb at Base 1.10.2.1
- _ZN10mglGraphAB6WindowEiPPcPFiP8mglGraphPvEPKcS4_PFviS4_Eb at Base 1.10.2.1
- _ZN10mglGraphAB7CalcScrE8mglPoint at Base 1.10.2.1
- _ZN10mglGraphAB7CalcScrE8mglPointPiS1_ at Base 1.10.2.1
- _ZN10mglGraphAB7CalcXYZEii at Base 1.10.2.1
- _ZN10mglGraphAB7GetBitsEv at Base 1.10.2.1
- _ZN10mglGraphAB7GetOrgXEc at Base 1.10.2.1
- _ZN10mglGraphAB7GetOrgYEc at Base 1.10.2.1
- _ZN10mglGraphAB7GetOrgZEc at Base 1.10.2.1
- _ZN10mglGraphAB7GetRGBAEv at Base 1.10.2.1
- _ZN10mglGraphAB7RotateNEffff at Base 1.10.2.1
- _ZN10mglGraphAB7SetSizeEii at Base 1.10.2.1
- _ZN10mglGraphAB7col2intE8mglColorfPh at Base 1.10.2.1
- _ZN10mglGraphAB7col2intEPfS0_Ph at Base 1.10.2.1
- _ZN10mglGraphAB7combineEPhS0_ at Base 1.10.2.1
- _ZN10mglGraphAB8DefColorE8mglColorf at Base 1.10.2.1
- _ZN10mglGraphAB8DrawTickEPfb at Base 1.10.2.1
- _ZN10mglGraphAB8GetRatioEv at Base 1.10.2.1
- _ZN10mglGraphAB8NewFrameEv at Base 1.10.2.1
- _ZN10mglGraphAB8RestoreMEv at Base 1.10.2.1
- _ZN10mglGraphAB8ToggleNoEv at Base 1.10.2.1
- _ZN10mglGraphAB8WriteSVGEPKcS1_ at Base 1.10.2.1
- _ZN10mglGraphAB8colorbarERK7mglDataPK8mglColoriffff at Base 1.10.2.1
- _ZN10mglGraphAB8pnt_plotEllfPh at Base 1.10.2.1
- _ZN10mglGraphAB9AnimationEv at Base 1.10.2.1
- _ZN10mglGraphAB9NextFrameEv at Base 1.10.2.1
- _ZN10mglGraphAB9NormScaleEPfl at Base 1.10.2.1
- _ZN10mglGraphAB9PostScaleEPfl at Base 1.10.2.1
- _ZN10mglGraphAB9PrevFrameEv at Base 1.10.2.1
- _ZN10mglGraphAB9StickPlotEiiff at Base 1.10.2.1
- _ZN10mglGraphAB9boxs_plotEllPfP8mglColorPbfb at Base 1.10.2.1
- _ZN10mglGraphAB9curv_plotElPfPb at Base 1.10.2.1
- _ZN10mglGraphAB9curv_plotElPfPbPl at Base 1.10.2.1
- _ZN10mglGraphAB9curv_plotElPfS0_Pb at Base 1.10.2.1
- _ZN10mglGraphAB9line_plotEPfS0_S0_S0_b at Base 1.10.2.1
- _ZN10mglGraphAB9mark_plotEPfc at Base 1.10.2.1
- _ZN10mglGraphAB9mesh_plotEllPfS0_Pbi at Base 1.10.2.1
- _ZN10mglGraphAB9quad_plotEPfS0_S0_S0_S0_S0_S0_S0_ at Base 1.10.2.1
- _ZN10mglGraphAB9surf_plotEllPfS0_Pb at Base 1.10.2.1
- _ZN10mglGraphAB9trig_plotEPfS0_S0_S0_S0_S0_ at Base 1.10.2.1
- _ZN10mglGraphAB9wire_plotEllPfS0_Pb at Base 1.10.2.1
- _ZN10mglGraphABC1Eii at Base 1.10.2.1
- _ZN10mglGraphABC2Eii at Base 1.10.2.1
- _ZN10mglGraphABD0Ev at Base 1.10.2.1
- _ZN10mglGraphABD1Ev at Base 1.10.2.1
- _ZN10mglGraphABD2Ev at Base 1.10.2.1
- _ZN10mglGraphGL10LightScaleEv at Base 1.10.2.1
- _ZN10mglGraphGL11GetRGBLinesERlS0_RPhb at Base 1.10.2.1
- _ZN10mglGraphGL11quad_plot_aEPfS0_S0_S0_fffff at Base 1.10.2.1
- _ZN10mglGraphGL11quad_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.10.2.1
- _ZN10mglGraphGL11trig_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.10.2.1
- _ZN10mglGraphGL3ClfE8mglColor at Base 1.10.2.1
- _ZN10mglGraphGL3FogEff at Base 1.10.2.1
- _ZN10mglGraphGL3PenE8mglColorcf at Base 1.10.2.1
- _ZN10mglGraphGL4BallEfff8mglColorf at Base 1.10.2.1
- _ZN10mglGraphGL4ViewEfff at Base 1.10.2.1
- _ZN10mglGraphGL4ballEPfS0_ at Base 1.10.2.1
- _ZN10mglGraphGL5AlphaEb at Base 1.10.2.1
- _ZN10mglGraphGL5FlushEv at Base 1.10.2.1
- _ZN10mglGraphGL5LightEb at Base 1.10.2.1
- _ZN10mglGraphGL5LightEi8mglPoint8mglColorfb at Base 1.10.2.1
- _ZN10mglGraphGL5LightEib at Base 1.10.2.1
- _ZN10mglGraphGL6FinishEv at Base 1.10.2.1
- _ZN10mglGraphGL6InPlotEffffb at Base 1.10.2.1
- _ZN10mglGraphGL7SetSizeEii at Base 1.10.2.1
- _ZN10mglGraphGL8EndFrameEv at Base 1.10.2.1
- _ZN10mglGraphGL8NewFrameEv at Base 1.10.2.1
- _ZN10mglGraphGL9line_plotEPfS0_S0_S0_b at Base 1.10.2.1
- _ZN10mglGraphGL9mark_plotEPfc at Base 1.10.2.1
- _ZN10mglGraphGL9quad_plotEPfS0_S0_S0_S0_S0_S0_S0_ at Base 1.10.2.1
- _ZN10mglGraphGL9trig_plotEPfS0_S0_S0_S0_S0_ at Base 1.10.2.1
- _ZN10mglGraphGLC1Ev at Base 1.10.2.1
- _ZN10mglGraphGLC2Ev at Base 1.10.2.1
- _ZN10mglGraphGLD0Ev at Base 1.10.2.1
- _ZN10mglGraphGLD1Ev at Base 1.10.2.1
- _ZN10mglGraphGLD2Ev at Base 1.10.2.1
- _ZN10mglGraphPS11quad_plot_aEPfS0_S0_S0_fffff at Base 1.10.2.1
- _ZN10mglGraphPS11quad_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.10.2.1
- _ZN10mglGraphPS11trig_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.10.2.1
- _ZN10mglGraphPS3ClfE8mglColor at Base 1.10.2.1
- _ZN10mglGraphPS4BallEfff8mglColorf at Base 1.10.2.1
- _ZN10mglGraphPS4ballEPfS0_ at Base 1.10.2.1
- _ZN10mglGraphPS5GlyphEfffilc at Base 1.10.2.1
- _ZN10mglGraphPS6FinishEv at Base 1.10.2.1
- _ZN10mglGraphPS8WriteEPSEPKcS1_ at Base 1.10.2.1
- _ZN10mglGraphPS8WriteSVGEPKcS1_ at Base 1.10.2.1
- _ZN10mglGraphPS8add_primER7mglPrim at Base 1.10.2.1
- _ZN10mglGraphPS8pnt_plotEllfPh at Base 1.10.2.1
- _ZN10mglGraphPS8put_descEP8_IO_FILEPKcS3_S3_S3_S3_ at Base 1.10.2.1
- _ZN10mglGraphPS8put_lineEP8_IO_FILElfPfiPKcS4_b at Base 1.10.2.1
- _ZN10mglGraphPS9add_lightEPffff at Base 1.10.2.1
- _ZN10mglGraphPS9draw_primEP7mglPrimPfS2_ at Base 1.10.2.1
- _ZN10mglGraphPS9line_plotEPfS0_S0_S0_b at Base 1.10.2.1
- _ZN10mglGraphPS9mark_plotEPfc at Base 1.10.2.1
- _ZN10mglGraphPS9quad_plotEPfS0_S0_S0_S0_S0_S0_S0_ at Base 1.10.2.1
- _ZN10mglGraphPS9trig_plotEPfS0_S0_S0_S0_S0_ at Base 1.10.2.1
- _ZN10mglGraphPSC1Eii at Base 1.10.2.1
- _ZN10mglGraphPSC2Eii at Base 1.10.2.1
- _ZN10mglGraphPSD0Ev at Base 1.10.2.1
- _ZN10mglGraphPSD1Ev at Base 1.10.2.1
- _ZN10mglGraphPSD2Ev at Base 1.10.2.1
- _ZN10mglGraphZB10PutDrawRegEiiiP10mglGraphAB at Base 1.10.2.1
- _ZN10mglGraphZB10WriteSliceEi at Base 1.10.2.1
- _ZN10mglGraphZB3ClfE8mglColor at Base 1.10.2.1
- _ZN10mglGraphZB5GlyphEfffilc at Base 1.10.2.1
- _ZN10mglGraphZB6FinishEv at Base 1.10.2.1
- _ZN10mglGraphZB7SetSizeEii at Base 1.10.2.1
- _ZN10mglGraphZB8pnt_plotEllfPh at Base 1.10.2.1
- _ZN10mglGraphZBC1Eii at Base 1.10.2.1
- _ZN10mglGraphZBC2Eii at Base 1.10.2.1
- _ZN10mglGraphZBD0Ev at Base 1.10.2.1
- _ZN10mglGraphZBD1Ev at Base 1.10.2.1
- _ZN10mglGraphZBD2Ev at Base 1.10.2.1
- _ZN10u3dLineSet20print_model_resourceERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.10.2.1
- _ZN10u3dLineSet7AddLineEmmm at Base 1.10.2.1
- _ZN10u3dLineSet9line_plotEPfS0_S0_S0_ at Base 1.10.2.1
- _ZN10u3dLineSetD1Ev at Base 1.10.2.1
- _ZN10u3dTexture13print_textureEPKcRSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.10.2.1
- _ZN10u3dTextureD1Ev at Base 1.10.2.1
- _ZN11TGAImageMin10DeallocateEv at Base 1.10.2.1
- _ZN11TGAImageMin10InitializeEjjj at Base 1.10.2.1
- _ZN11TGAImageMinC1Ev at Base 1.10.2.1
- _ZN11TGAImageMinC2Ev at Base 1.10.2.1
- _ZN11TGAImageMinD1Ev at Base 1.10.2.1
- _ZN11TGAImageMinD2Ev at Base 1.10.2.1
- _ZN11mglFormulaC5ErrorE at Base 1.10.2.1
- _ZN11mglFormulaCC1EPKc at Base 1.10.2.1
- _ZN11mglFormulaCC2EPKc at Base 1.10.2.1
- _ZN11mglFormulaCD1Ev at Base 1.10.2.1
- _ZN11mglFormulaCD2Ev at Base 1.10.2.1
- _ZN11u3dMaterial12print_shaderERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.10.2.1
- _ZN11u3dMaterial14print_materialERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.10.2.1
- _ZN11u3dMaterialD1Ev at Base 1.10.2.1
- _ZN11u3dPointSet10point_plotERK8mglPointRK8mglColor at Base 1.10.2.1
- _ZN11u3dPointSet20print_model_resourceERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.10.2.1
- _ZN11u3dPointSetC1ERKSsP12mglGraphIDTF at Base 1.10.2.1
- _ZN11u3dPointSetC2ERKSsP12mglGraphIDTF at Base 1.10.2.1
- _ZN12mglGraphIDTF10AddTextureEv at Base 1.10.2.1
- _ZN12mglGraphIDTF10GetLineSetEv at Base 1.10.2.1
- _ZN12mglGraphIDTF10StartGroupEPKc at Base 1.10.2.1
- _ZN12mglGraphIDTF10arrow_plotEPfS0_c at Base 1.10.2.1
- _ZN12mglGraphIDTF10cloud_plotElllPfS0_f at Base 1.10.2.1
- _ZN12mglGraphIDTF10point_plotERK8mglPointRK8mglColor at Base 1.10.2.1
- _ZN12mglGraphIDTF10quads_plotElPfS0_Pb at Base 1.10.2.1
- _ZN12mglGraphIDTF11AddMaterialERK11u3dMaterial at Base 1.10.2.1
- _ZN12mglGraphIDTF11BallIsPointEb at Base 1.10.2.1
- _ZN12mglGraphIDTF11CompressionEb at Base 1.10.2.1
- _ZN12mglGraphIDTF11DoubleSidedEb at Base 1.10.2.1
- _ZN12mglGraphIDTF11GetPointSetEv at Base 1.10.2.1
- _ZN12mglGraphIDTF11VertexColorEb at Base 1.10.2.1
- _ZN12mglGraphIDTF11line_plot_sEPfS0_S0_S0_b at Base 1.10.2.1
- _ZN12mglGraphIDTF11quad_plot_aEPfS0_S0_S0_fffff at Base 1.10.2.1
- _ZN12mglGraphIDTF11quad_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.10.2.1
- _ZN12mglGraphIDTF11trig_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.10.2.1
- _ZN12mglGraphIDTF12TextureColorEb at Base 1.10.2.1
- _ZN12mglGraphIDTF14StartAutoGroupEPKc at Base 1.10.2.1
- _ZN12mglGraphIDTF15GetCurrentGroupEv at Base 1.10.2.1
- _ZN12mglGraphIDTF15SetAmbientLightE8mglColorf at Base 1.10.2.1
- _ZN12mglGraphIDTF19MakeTransformMatrixEPA4_fS1_ at Base 1.10.2.1
- _ZN12mglGraphIDTF3ClfE8mglColor at Base 1.10.2.1
- _ZN12mglGraphIDTF4BallEfff8mglColorf at Base 1.10.2.1
- _ZN12mglGraphIDTF4ballEPfS0_ at Base 1.10.2.1
- _ZN12mglGraphIDTF5FlushEv at Base 1.10.2.1
- _ZN12mglGraphIDTF5LightEi8mglPoint8mglColorfb at Base 1.10.2.1
- _ZN12mglGraphIDTF5PutswE8mglPointPKwPKcfcf at Base 1.10.2.1
- _ZN12mglGraphIDTF5PutswE8mglPointS0_PKwcf at Base 1.10.2.1
- _ZN12mglGraphIDTF6InPlotEffffb at Base 1.10.2.1
- _ZN12mglGraphIDTF7GetMeshEv at Base 1.10.2.1
- _ZN12mglGraphIDTF7col2colEPKfS1_Pf at Base 1.10.2.1
- _ZN12mglGraphIDTF8AddLightE8mglPoint8mglColorfb at Base 1.10.2.1
- _ZN12mglGraphIDTF8EndGroupEv at Base 1.10.2.1
- _ZN12mglGraphIDTF8UnitBallEv at Base 1.10.2.1
- _ZN12mglGraphIDTF8UnrotateEb at Base 1.10.2.1
- _ZN12mglGraphIDTF9WriteIDTFEPKcS1_ at Base 1.10.2.1
- _ZN12mglGraphIDTF9line_plotEPfS0_S0_S0_b at Base 1.10.2.1
- _ZN12mglGraphIDTF9line_plotERK8mglPointS2_ at Base 1.10.2.1
- _ZN12mglGraphIDTF9mark_plotEPfc at Base 1.10.2.1
- _ZN12mglGraphIDTF9quad_plotEPfS0_S0_S0_S0_S0_S0_S0_ at Base 1.10.2.1
- _ZN12mglGraphIDTF9quad_plotERK8mglPointS2_S2_S2_ at Base 1.10.2.1
- _ZN12mglGraphIDTF9surf_plotEllPfS0_Pb at Base 1.10.2.1
- _ZN12mglGraphIDTF9trig_plotEPfS0_S0_S0_S0_S0_ at Base 1.10.2.1
- _ZN12mglGraphIDTF9trig_plotERK8mglPointS2_S2_ at Base 1.10.2.1
- _ZN12mglGraphIDTFC1Ev at Base 1.10.2.1
- _ZN12mglGraphIDTFC2Ev at Base 1.10.2.1
- _ZN12mglGraphIDTFD0Ev at Base 1.10.2.1
- _ZN12mglGraphIDTFD1Ev at Base 1.10.2.1
- _ZN12mglGraphIDTFD2Ev at Base 1.10.2.1
- _ZN6mglNum9MoveAfterEPS_ at Base 1.10.2.1
- _ZN6mglNumD1Ev at Base 1.10.2.1
- _ZN6mglNumD2Ev at Base 1.10.2.1
- _ZN6mglVar9MoveAfterEPS_ at Base 1.10.2.1
- _ZN6mglVarD1Ev at Base 1.10.2.1
- _ZN6mglVarD2Ev at Base 1.10.2.1
- _ZN7mglData10DeleteRowsEii at Base 1.10.2.1
- _ZN7mglData10InsertRowsEiiPKc at Base 1.10.2.1
- _ZN7mglData11SetColumnIdEPKc at Base 1.10.2.1
- _ZN7mglData12DeleteSlicesEii at Base 1.10.2.1
- _ZN7mglData12InsertSlicesEiiPKc at Base 1.10.2.1
- _ZN7mglData13DeleteColumnsEii at Base 1.10.2.1
- _ZN7mglData13InsertColumnsEiiPKc at Base 1.10.2.1
- _ZN7mglData3PutERKS_iii at Base 1.10.2.1
- _ZN7mglData3PutEfiii at Base 1.10.2.1
- _ZN7mglData3SetEP10gsl_matrix at Base 1.10.2.1
- _ZN7mglData3SetEP10gsl_vector at Base 1.10.2.1
- _ZN7mglData3SetEPKciii at Base 1.10.2.1
- _ZN7mglData3SetEPKdiii at Base 1.10.2.1
- _ZN7mglData3SetEPKfiii at Base 1.10.2.1
- _ZN7mglData3SetEPPKdii at Base 1.10.2.1
- _ZN7mglData3SetEPPKfii at Base 1.10.2.1
- _ZN7mglData3SetEPPPKdiii at Base 1.10.2.1
- _ZN7mglData3SetEPPPKfiii at Base 1.10.2.1
- _ZN7mglData3SetERKSt6vectorIdSaIdEE at Base 1.10.2.1
- _ZN7mglData3SetERKSt6vectorIfSaIfEE at Base 1.10.2.1
- _ZN7mglData3SetERKSt6vectorIiSaIiEE at Base 1.10.2.1
- _ZN7mglData3SewEPKcf at Base 1.10.2.1
- _ZN7mglData4CropEiic at Base 1.10.2.1
- _ZN7mglData4DiffEPKc at Base 1.10.2.1
- _ZN7mglData4DiffERKS_S1_ at Base 1.10.2.1
- _ZN7mglData4DiffERKS_S1_S1_ at Base 1.10.2.1
- _ZN7mglData4FillEPKc8mglPointS2_PKS_S4_ at Base 1.10.2.1
- _ZN7mglData4FillEffc at Base 1.10.2.1
- _ZN7mglData4NormEffbi at Base 1.10.2.1
- _ZN7mglData4ReadEPKc at Base 1.10.2.1
- _ZN7mglData4ReadEPKciii at Base 1.10.2.1
- _ZN7mglData4SwapEPKc at Base 1.10.2.1
- _ZN7mglData5Diff2EPKc at Base 1.10.2.1
- _ZN7mglData5NewIdEv at Base 1.10.2.1
- _ZN7mglData6ColumnEPKc at Base 1.10.2.1
- _ZN7mglData6CreateEiii at Base 1.10.2.1
- _ZN7mglData6CumSumEPKc at Base 1.10.2.1
- _ZN7mglData6DeleteEcii at Base 1.10.2.1
- _ZN7mglData6ExtendEii at Base 1.10.2.1
- _ZN7mglData6ImportEPKcS1_ff at Base 1.10.2.1
- _ZN7mglData6InsertEcii at Base 1.10.2.1
- _ZN7mglData6MirrorEPKc at Base 1.10.2.1
- _ZN7mglData6ModifyEPKcRKS_ at Base 1.10.2.1
- _ZN7mglData6ModifyEPKcRKS_S3_ at Base 1.10.2.1
- _ZN7mglData6ModifyEPKci at Base 1.10.2.1
- _ZN7mglData6NormSlEffcbb at Base 1.10.2.1
- _ZN7mglData6SmoothEPKc at Base 1.10.2.1
- _ZN7mglData6SmoothEiPKcf at Base 1.10.2.1
- _ZN7mglData7EnvelopEc at Base 1.10.2.1
- _ZN7mglData7ReadAllEPKcb at Base 1.10.2.1
- _ZN7mglData7ReadHDFEPKcS1_ at Base 1.10.2.1
- _ZN7mglData7ReadMatEPKci at Base 1.10.2.1
- _ZN7mglData7SqueezeEiiib at Base 1.10.2.1
- _ZN7mglData8IntegralEPKc at Base 1.10.2.1
- _ZN7mglData9ReadRangeEPKcfffb at Base 1.10.2.1
- _ZN7mglData9RearrangeEiii at Base 1.10.2.1
- _ZN7mglData9TransposeEPKc at Base 1.10.2.1
- _ZN7mglDataD1Ev at Base 1.10.2.1
- _ZN7mglDataaSERKS_ at Base 1.10.2.1
- _ZN7mglDataaSEf at Base 1.10.2.1
- _ZN7mglDatadVERKS_ at Base 1.10.2.1
- _ZN7mglDatadVEf at Base 1.10.2.1
- _ZN7mglDatamIERKS_ at Base 1.10.2.1
- _ZN7mglDatamIEf at Base 1.10.2.1
- _ZN7mglDatamLERKS_ at Base 1.10.2.1
- _ZN7mglDatamLEf at Base 1.10.2.1
- _ZN7mglDatapLERKS_ at Base 1.10.2.1
- _ZN7mglDatapLEf at Base 1.10.2.1
- _ZN7mglFont11draw_oulineEP8mglGraphifffffc at Base 1.10.2.1
- _ZN7mglFont4CopyEPS_ at Base 1.10.2.1
- _ZN7mglFont4LoadEPKcS1_ at Base 1.10.2.1
- _ZN7mglFont4PutsEPKcS1_c at Base 1.10.2.1
- _ZN7mglFont4PutsEPKciic at Base 1.10.2.1
- _ZN7mglFont4PutsEPKjfffic at Base 1.10.2.1
- _ZN7mglFont4PutsEPKwPKcc at Base 1.10.2.1
- _ZN7mglFont4PutsEPKwiic at Base 1.10.2.1
- _ZN7mglFont5ClearEv at Base 1.10.2.1
- _ZN7mglFont5ParseEPKw at Base 1.10.2.1
- _ZN7mglFont5WidthEPKcS1_ at Base 1.10.2.1
- _ZN7mglFont5WidthEPKci at Base 1.10.2.1
- _ZN7mglFont5WidthEPKwPKc at Base 1.10.2.1
- _ZN7mglFont5WidthEPKwi at Base 1.10.2.1
- _ZN7mglFont6HeightEPKc at Base 1.10.2.1
- _ZN7mglFont6HeightEi at Base 1.10.2.1
- _ZN7mglFont7ConvertEPKwPj at Base 1.10.2.1
- _ZN7mglFont7RestoreEv at Base 1.10.2.1
- _ZN7mglFont7get_ptrERlPjPS1_S2_RfS3_ffi at Base 1.10.2.1
- _ZN7mglFont8InternalEj at Base 1.10.2.1
- _ZN7mglFont8read_defERj at Base 1.10.2.1
- _ZN7mglFont9main_copyEv at Base 1.10.2.1
- _ZN7mglFont9mem_allocEv at Base 1.10.2.1
- _ZN7mglFont9read_dataEP8_IO_FILEPfPsS3_PjS3_S4_Rj at Base 1.10.2.1
- _ZN7mglFont9read_mainEPKcS1_Rj at Base 1.10.2.1
- _ZN7mglFontC1EPKcS1_ at Base 1.10.2.1
- _ZN7mglFontC2EPKcS1_ at Base 1.10.2.1
- _ZN7mglFontD1Ev at Base 1.10.2.1
- _ZN7mglFontD2Ev at Base 1.10.2.1
- _ZN7mglPrim4DrawEP10mglGraphPS at Base 1.10.2.1
- _ZN7mglPrim6IsSameEfPfi at Base 1.10.2.1
- _ZN7mglPrim8SetStyleEji at Base 1.10.2.1
- _ZN7u3dBall10print_nodeERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.10.2.1
- _ZN7u3dBall22print_shading_modifierERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.10.2.1
- _ZN7u3dMesh11AddTriangleEmmmm at Base 1.10.2.1
- _ZN7u3dMesh11AddTriangleEmmmmmm at Base 1.10.2.1
- _ZN7u3dMesh11quad_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.10.2.1
- _ZN7u3dMesh11trig_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.10.2.1
- _ZN7u3dMesh20print_model_resourceERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.10.2.1
- _ZN7u3dMesh9quad_plotEPfS0_S0_S0_S0_S0_S0_S0_ at Base 1.10.2.1
- _ZN7u3dMesh9trig_plotEPfS0_S0_S0_S0_S0_ at Base 1.10.2.1
- _ZN7u3dMeshD1Ev at Base 1.10.2.1
- _ZN7u3dNode5printERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.10.2.1
- _ZN7u3dNodeD1Ev at Base 1.10.2.1
- _ZN8mglColor3SetES_f at Base 1.10.2.1
- _ZN8mglColor3SetEcf at Base 1.10.2.1
- _ZN8mglGraph10ColumnPlotEii at Base 1.10.2.1
- _ZN8mglGraph10ScalePointERfS0_S0_ at Base 1.10.2.1
- _ZN8mglGraph10SetTickLenEff at Base 1.10.2.1
- _ZN8mglGraph10SetTickStlEPKcS1_ at Base 1.10.2.1
- _ZN8mglGraph10SimplePlotERK7mglDataiPKc at Base 1.10.2.1
- _ZN8mglGraph10StartGroupEPKc at Base 1.10.2.1
- _ZN8mglGraph10StartGroupEPKci at Base 1.10.2.1
- _ZN8mglGraph10WriteFrameEPKcS1_ at Base 1.10.2.1
- _ZN8mglGraph10add_cpointERlPPfS2_PPbfffffb at Base 1.10.2.1
- _ZN8mglGraph10add_spointERlPPfS2_S2_S2_ffffffffff at Base 1.10.2.1
- _ZN8mglGraph10contf_plotEffllPfS0_S0_S0_f at Base 1.10.2.1
- _ZN8mglGraph10font_curveElPfPbPlPKwif at Base 1.10.2.1
- _ZN8mglGraph11AdjustTicksEPKc at Base 1.10.2.1
- _ZN8mglGraph11BallIsPointEb at Base 1.10.2.1
- _ZN8mglGraph11ClearLegendEv at Base 1.10.2.1
- _ZN8mglGraph11CompressionEb at Base 1.10.2.1
- _ZN8mglGraph11DoubleSidedEb at Base 1.10.2.1
- _ZN8mglGraph11GetRGBLinesERlS0_RPhb at Base 1.10.2.1
- _ZN8mglGraph11SetTicksValEciPfPPKc at Base 1.10.2.1
- _ZN8mglGraph11SetTicksValEciPfPPKw at Base 1.10.2.1
- _ZN8mglGraph11SetTicksValEcidPKcz at Base 1.10.2.1
- _ZN8mglGraph11VertexColorEb at Base 1.10.2.1
- _ZN8mglGraph12PrepareFitEqEfPKcS1_Pfb at Base 1.10.2.1
- _ZN8mglGraph12RecalcBorderEv at Base 1.10.2.1
- _ZN8mglGraph12TextureColorEb at Base 1.10.2.1
- _ZN8mglGraph12string_curveEllPfPlPKwfi at Base 1.10.2.1
- _ZN8mglGraph13DrawTGridLineEff at Base 1.10.2.1
- _ZN8mglGraph13DrawXGridLineEfff at Base 1.10.2.1
- _ZN8mglGraph13DrawYGridLineEfff at Base 1.10.2.1
- _ZN8mglGraph13DrawZGridLineEfff at Base 1.10.2.1
- _ZN8mglGraph13SetAutoRangesEffffff at Base 1.10.2.1
- _ZN8mglGraph13SetFontSizePTEfi at Base 1.10.2.1
- _ZN8mglGraph14StartAutoGroupEPKc at Base 1.10.2.1
- _ZN8mglGraph16DefaultPlotParamEv at Base 1.10.2.1
- _ZN8mglGraph3BoxE8mglColorb at Base 1.10.2.1
- _ZN8mglGraph3BoxEPKcb at Base 1.10.2.1
- _ZN8mglGraph3ClfE8mglColor at Base 1.10.2.1
- _ZN8mglGraph3DewERK7mglDataS2_PKcf at Base 1.10.2.1
- _ZN8mglGraph3DewERK7mglDataS2_S2_S2_PKcf at Base 1.10.2.1
- _ZN8mglGraph3FitER7mglDataRKS0_PKcS5_Pfb at Base 1.10.2.1
- _ZN8mglGraph3FitER7mglDataRKS0_PKcS5_S1_b at Base 1.10.2.1
- _ZN8mglGraph3FitER7mglDataRKS0_S3_PKcS5_Pfb at Base 1.10.2.1
- _ZN8mglGraph3FitER7mglDataRKS0_S3_PKcS5_S1_b at Base 1.10.2.1
- _ZN8mglGraph3FitER7mglDataRKS0_S3_S3_PKcS5_Pfb at Base 1.10.2.1
- _ZN8mglGraph3FitER7mglDataRKS0_S3_S3_PKcS5_S1_b at Base 1.10.2.1
- _ZN8mglGraph3FitER7mglDataRKS0_S3_S3_S3_PKcS5_Pfb at Base 1.10.2.1
- _ZN8mglGraph3FitER7mglDataRKS0_S3_S3_S3_PKcS5_S1_b at Base 1.10.2.1
- _ZN8mglGraph3FogEff at Base 1.10.2.1
- _ZN8mglGraph3MapERK7mglDataS2_PKcib at Base 1.10.2.1
- _ZN8mglGraph3MapERK7mglDataS2_S2_S2_PKcib at Base 1.10.2.1
- _ZN8mglGraph3PenE8mglColorcf at Base 1.10.2.1
- _ZN8mglGraph4AreaERK7mglDataPKcbf at Base 1.10.2.1
- _ZN8mglGraph4AreaERK7mglDataS2_PKcbf at Base 1.10.2.1
- _ZN8mglGraph4AreaERK7mglDataS2_S2_PKc at Base 1.10.2.1
- _ZN8mglGraph4AxisE8mglPointS0_S0_ at Base 1.10.2.1
- _ZN8mglGraph4AxisEPKcb at Base 1.10.2.1
- _ZN8mglGraph4BarhERK7mglDataPKcfb at Base 1.10.2.1
- _ZN8mglGraph4BarhERK7mglDataS2_PKcfb at Base 1.10.2.1
- _ZN8mglGraph4BarsERK7mglDataPKcfb at Base 1.10.2.1
- _ZN8mglGraph4BarsERK7mglDataS2_PKcfb at Base 1.10.2.1
- _ZN8mglGraph4BarsERK7mglDataS2_S2_PKcb at Base 1.10.2.1
- _ZN8mglGraph4BeamERK7mglDataS2_S2_S2_fPKcii at Base 1.10.2.1
- _ZN8mglGraph4BeamEfRK7mglDataS2_S2_S2_fPKci at Base 1.10.2.1
- _ZN8mglGraph4BeltERK7mglDataPKc at Base 1.10.2.1
- _ZN8mglGraph4BeltERK7mglDataS2_S2_PKc at Base 1.10.2.1
- _ZN8mglGraph4BoxsERK7mglDataPKcf at Base 1.10.2.1
- _ZN8mglGraph4BoxsERK7mglDataS2_S2_PKcf at Base 1.10.2.1
- _ZN8mglGraph4ConeE8mglPointS0_ffPKcb at Base 1.10.2.1
- _ZN8mglGraph4ContERK7mglDataPKcif at Base 1.10.2.1
- _ZN8mglGraph4ContERK7mglDataS2_PKcf at Base 1.10.2.1
- _ZN8mglGraph4ContERK7mglDataS2_S2_PKcif at Base 1.10.2.1
- _ZN8mglGraph4ContERK7mglDataS2_S2_S2_PKcf at Base 1.10.2.1
- _ZN8mglGraph4DensERK7mglDataPKcf at Base 1.10.2.1
- _ZN8mglGraph4DensERK7mglDataS2_S2_PKcf at Base 1.10.2.1
- _ZN8mglGraph4DotsERK7mglDataPKc at Base 1.10.2.1
- _ZN8mglGraph4DotsERK7mglDataS2_S2_PKc at Base 1.10.2.1
- _ZN8mglGraph4DotsERK7mglDataS2_S2_S2_PKcf at Base 1.10.2.1
- _ZN8mglGraph4DropE8mglPointS0_f8mglColorff at Base 1.10.2.1
- _ZN8mglGraph4DropE8mglPointS0_fPKcff at Base 1.10.2.1
- _ZN8mglGraph4FaceE8mglPointS0_S0_S0_PKcif at Base 1.10.2.1
- _ZN8mglGraph4FallERK7mglDataPKc at Base 1.10.2.1
- _ZN8mglGraph4FallERK7mglDataS2_S2_PKc at Base 1.10.2.1
- _ZN8mglGraph4Fit2ER7mglDataRKS0_PKcS5_Pfb at Base 1.10.2.1
- _ZN8mglGraph4Fit2ER7mglDataRKS0_PKcS5_S1_b at Base 1.10.2.1
- _ZN8mglGraph4Fit3ER7mglDataRKS0_PKcS5_Pfb at Base 1.10.2.1
- _ZN8mglGraph4Fit3ER7mglDataRKS0_PKcS5_S1_b at Base 1.10.2.1
- _ZN8mglGraph4FitSER7mglDataRKS0_S3_PKcS5_Pfb at Base 1.10.2.1
- _ZN8mglGraph4FitSER7mglDataRKS0_S3_PKcS5_S1_b at Base 1.10.2.1
- _ZN8mglGraph4FitSER7mglDataRKS0_S3_S3_PKcS5_Pfb at Base 1.10.2.1
- _ZN8mglGraph4FitSER7mglDataRKS0_S3_S3_PKcS5_S1_b at Base 1.10.2.1
- _ZN8mglGraph4FitSER7mglDataRKS0_S3_S3_S3_PKcS5_Pfb at Base 1.10.2.1
- _ZN8mglGraph4FitSER7mglDataRKS0_S3_S3_S3_PKcS5_S1_b at Base 1.10.2.1
- _ZN8mglGraph4FitSER7mglDataRKS0_S3_S3_S3_S3_PKcS5_Pfb at Base 1.10.2.1
- _ZN8mglGraph4FitSER7mglDataRKS0_S3_S3_S3_S3_PKcS5_S1_b at Base 1.10.2.1
- _ZN8mglGraph4FlowERK7mglDataS2_PKcibf at Base 1.10.2.1
- _ZN8mglGraph4FlowERK7mglDataS2_S2_PKcib at Base 1.10.2.1
- _ZN8mglGraph4FlowERK7mglDataS2_S2_S2_PKcibf at Base 1.10.2.1
- _ZN8mglGraph4FlowERK7mglDataS2_S2_S2_S2_S2_PKcib at Base 1.10.2.1
- _ZN8mglGraph4GetAEf at Base 1.10.2.1
- _ZN8mglGraph4GetCEfb at Base 1.10.2.1
- _ZN8mglGraph4GetCEfffb at Base 1.10.2.1
- _ZN8mglGraph4GridEPKcS1_ at Base 1.10.2.1
- _ZN8mglGraph4GridERK7mglDataPKcf at Base 1.10.2.1
- _ZN8mglGraph4GridERK7mglDataS2_S2_PKcf at Base 1.10.2.1
- _ZN8mglGraph4HistER7mglDataRKS0_S3_ at Base 1.10.2.1
- _ZN8mglGraph4HistER7mglDataRKS0_S3_S3_ at Base 1.10.2.1
- _ZN8mglGraph4HistER7mglDataRKS0_S3_S3_S3_ at Base 1.10.2.1
- _ZN8mglGraph4LineE8mglPointS0_PKci at Base 1.10.2.1
- _ZN8mglGraph4MarkE8mglPointc at Base 1.10.2.1
- _ZN8mglGraph4MarkERK7mglDataS2_PKcf at Base 1.10.2.1
- _ZN8mglGraph4MarkERK7mglDataS2_S2_PKcf at Base 1.10.2.1
- _ZN8mglGraph4MarkERK7mglDataS2_S2_S2_PKc at Base 1.10.2.1
- _ZN8mglGraph4MeshERK7mglDataPKc at Base 1.10.2.1
- _ZN8mglGraph4MeshERK7mglDataS2_S2_PKc at Base 1.10.2.1
- _ZN8mglGraph4PipeERK7mglDataS2_PKcfibf at Base 1.10.2.1
- _ZN8mglGraph4PipeERK7mglDataS2_S2_PKcfib at Base 1.10.2.1
- _ZN8mglGraph4PipeERK7mglDataS2_S2_S2_PKcfibf at Base 1.10.2.1
- _ZN8mglGraph4PipeERK7mglDataS2_S2_S2_S2_S2_PKcfib at Base 1.10.2.1
- _ZN8mglGraph4PlotEPKcS1_S1_S1_i at Base 1.10.2.1
- _ZN8mglGraph4PlotEPKcS1_fi at Base 1.10.2.1
- _ZN8mglGraph4PlotERK7mglDataPKcf at Base 1.10.2.1
- _ZN8mglGraph4PlotERK7mglDataS2_PKcf at Base 1.10.2.1
- _ZN8mglGraph4PlotERK7mglDataS2_S2_PKc at Base 1.10.2.1
- _ZN8mglGraph4PutsE8mglPointPKcS2_fcf at Base 1.10.2.1
- _ZN8mglGraph4PutsE8mglPointS0_PKccf at Base 1.10.2.1
- _ZN8mglGraph4STFAERK7mglDataS2_S2_S2_iPKcf at Base 1.10.2.1
- _ZN8mglGraph4STFAERK7mglDataS2_iPKcf at Base 1.10.2.1
- _ZN8mglGraph4StemERK7mglDataPKcf at Base 1.10.2.1
- _ZN8mglGraph4StemERK7mglDataS2_PKcf at Base 1.10.2.1
- _ZN8mglGraph4StemERK7mglDataS2_S2_PKc at Base 1.10.2.1
- _ZN8mglGraph4StepERK7mglDataPKcf at Base 1.10.2.1
- _ZN8mglGraph4StepERK7mglDataS2_PKcf at Base 1.10.2.1
- _ZN8mglGraph4StepERK7mglDataS2_S2_PKc at Base 1.10.2.1
- _ZN8mglGraph4SurfEPKcS1_S1_S1_i at Base 1.10.2.1
- _ZN8mglGraph4SurfEPKcS1_i at Base 1.10.2.1
- _ZN8mglGraph4SurfERK7mglDataPKc at Base 1.10.2.1
- _ZN8mglGraph4SurfERK7mglDataS2_S2_PKc at Base 1.10.2.1
- _ZN8mglGraph4TensERK7mglDataS2_PKcf at Base 1.10.2.1
- _ZN8mglGraph4TensERK7mglDataS2_S2_PKcf at Base 1.10.2.1
- _ZN8mglGraph4TensERK7mglDataS2_S2_S2_PKc at Base 1.10.2.1
- _ZN8mglGraph4TextE8mglPointPKcS2_fc at Base 1.10.2.1
- _ZN8mglGraph4TextE8mglPointPKwPKcfc at Base 1.10.2.1
- _ZN8mglGraph4TextERK7mglDataPKcS4_ff at Base 1.10.2.1
- _ZN8mglGraph4TextERK7mglDataPKwPKcff at Base 1.10.2.1
- _ZN8mglGraph4TextERK7mglDataS2_PKcS4_ff at Base 1.10.2.1
- _ZN8mglGraph4TextERK7mglDataS2_PKwPKcff at Base 1.10.2.1
- _ZN8mglGraph4TextERK7mglDataS2_S2_PKcS4_f at Base 1.10.2.1
- _ZN8mglGraph4TextERK7mglDataS2_S2_PKwPKcf at Base 1.10.2.1
- _ZN8mglGraph4TileERK7mglDataPKc at Base 1.10.2.1
- _ZN8mglGraph4TileERK7mglDataS2_S2_PKc at Base 1.10.2.1
- _ZN8mglGraph4TrajERK7mglDataS2_S2_S2_PKcff at Base 1.10.2.1
- _ZN8mglGraph4TrajERK7mglDataS2_S2_S2_S2_S2_PKcf at Base 1.10.2.1
- _ZN8mglGraph4TubeERK7mglDataS2_PKcf at Base 1.10.2.1
- _ZN8mglGraph4TubeERK7mglDataS2_S2_PKcf at Base 1.10.2.1
- _ZN8mglGraph4TubeERK7mglDataS2_S2_S2_PKc at Base 1.10.2.1
- _ZN8mglGraph4TubeERK7mglDataS2_S2_fPKc at Base 1.10.2.1
- _ZN8mglGraph4TubeERK7mglDataS2_fPKcf at Base 1.10.2.1
- _ZN8mglGraph4TubeERK7mglDatafPKcf at Base 1.10.2.1
- _ZN8mglGraph4VectERK7mglDataS2_PKcfi at Base 1.10.2.1
- _ZN8mglGraph4VectERK7mglDataS2_S2_PKci at Base 1.10.2.1
- _ZN8mglGraph4VectERK7mglDataS2_S2_S2_PKcfi at Base 1.10.2.1
- _ZN8mglGraph4VectERK7mglDataS2_S2_S2_S2_S2_PKci at Base 1.10.2.1
- _ZN8mglGraph4ViewEfff at Base 1.10.2.1
- _ZN8mglGraph4ZoomEffff at Base 1.10.2.1
- _ZN8mglGraph4ballEPfS0_ at Base 1.10.2.1
- _ZN8mglGraph4flowEbfffRK7mglDataS2_S2_S2_ at Base 1.10.2.1
- _ZN8mglGraph4flowEbfffRK7mglDataS2_S2_S2_S2_S2_ at Base 1.10.2.1
- _ZN8mglGraph5Area2ERK7mglDataPKcf at Base 1.10.2.1
- _ZN8mglGraph5Area3ERK7mglDataPKc at Base 1.10.2.1
- _ZN8mglGraph5AxialERK7mglDataPKci at Base 1.10.2.1
- _ZN8mglGraph5AxialERK7mglDataS2_PKc at Base 1.10.2.1
- _ZN8mglGraph5AxialERK7mglDataS2_S2_PKci at Base 1.10.2.1
- _ZN8mglGraph5AxialERK7mglDataS2_S2_S2_PKc at Base 1.10.2.1
- _ZN8mglGraph5AxisTEb at Base 1.10.2.1
- _ZN8mglGraph5AxisXEb at Base 1.10.2.1
- _ZN8mglGraph5AxisYEb at Base 1.10.2.1
- _ZN8mglGraph5AxisZEb at Base 1.10.2.1
- _ZN8mglGraph5Bars2ERK7mglDataPKcfb at Base 1.10.2.1
- _ZN8mglGraph5Bars3ERK7mglDataPKcb at Base 1.10.2.1
- _ZN8mglGraph5ChartERK7mglDataPKc at Base 1.10.2.1
- _ZN8mglGraph5CloudERK7mglDataPKcf at Base 1.10.2.1
- _ZN8mglGraph5CloudERK7mglDataS2_S2_S2_PKcf at Base 1.10.2.1
- _ZN8mglGraph5ColorEfff at Base 1.10.2.1
- _ZN8mglGraph5Cont3ERK7mglDataS2_S2_S2_S2_ciPKc at Base 1.10.2.1
- _ZN8mglGraph5Cont3ERK7mglDataS2_S2_S2_ciPKci at Base 1.10.2.1
- _ZN8mglGraph5Cont3ERK7mglDataS2_ciPKc at Base 1.10.2.1
- _ZN8mglGraph5Cont3ERK7mglDataciPKci at Base 1.10.2.1
- _ZN8mglGraph5ContAERK7mglDataPKci at Base 1.10.2.1
- _ZN8mglGraph5ContAERK7mglDataS2_S2_S2_PKci at Base 1.10.2.1
- _ZN8mglGraph5ContDERK7mglDataPKcif at Base 1.10.2.1
- _ZN8mglGraph5ContDERK7mglDataS2_PKcf at Base 1.10.2.1
- _ZN8mglGraph5ContDERK7mglDataS2_S2_PKcif at Base 1.10.2.1
- _ZN8mglGraph5ContDERK7mglDataS2_S2_S2_PKcf at Base 1.10.2.1
- _ZN8mglGraph5ContFERK7mglDataPKcif at Base 1.10.2.1
- _ZN8mglGraph5ContFERK7mglDataS2_PKcf at Base 1.10.2.1
- _ZN8mglGraph5ContFERK7mglDataS2_S2_PKcif at Base 1.10.2.1
- _ZN8mglGraph5ContFERK7mglDataS2_S2_S2_PKcf at Base 1.10.2.1
- _ZN8mglGraph5ContXERK7mglDataPKcfi at Base 1.10.2.1
- _ZN8mglGraph5ContXERK7mglDataS2_PKcf at Base 1.10.2.1
- _ZN8mglGraph5ContYERK7mglDataPKcfi at Base 1.10.2.1
- _ZN8mglGraph5ContYERK7mglDataS2_PKcf at Base 1.10.2.1
- _ZN8mglGraph5ContZERK7mglDataPKcfi at Base 1.10.2.1
- _ZN8mglGraph5ContZERK7mglDataS2_PKcf at Base 1.10.2.1
- _ZN8mglGraph5CrustERK7mglDataPKcf at Base 1.10.2.1
- _ZN8mglGraph5CrustERK7mglDataS2_S2_PKcf at Base 1.10.2.1
- _ZN8mglGraph5CurveE8mglPointS0_S0_S0_PKci at Base 1.10.2.1
- _ZN8mglGraph5Dens3ERK7mglDataS2_S2_S2_ciPKc at Base 1.10.2.1
- _ZN8mglGraph5Dens3ERK7mglDataciPKc at Base 1.10.2.1
- _ZN8mglGraph5DensAERK7mglDataPKc at Base 1.10.2.1
- _ZN8mglGraph5DensAERK7mglDataS2_S2_S2_PKc at Base 1.10.2.1
- _ZN8mglGraph5DensXERK7mglDataPKcf at Base 1.10.2.1
- _ZN8mglGraph5DensYERK7mglDataPKcf at Base 1.10.2.1
- _ZN8mglGraph5DensZERK7mglDataPKcf at Base 1.10.2.1
- _ZN8mglGraph5ErrorE8mglPointS0_PKc at Base 1.10.2.1
- _ZN8mglGraph5ErrorERK7mglDataS2_PKcf at Base 1.10.2.1
- _ZN8mglGraph5ErrorERK7mglDataS2_S2_PKcf at Base 1.10.2.1
- _ZN8mglGraph5ErrorERK7mglDataS2_S2_S2_PKcf at Base 1.10.2.1
- _ZN8mglGraph5FaceXEfffffPKcff at Base 1.10.2.1
- _ZN8mglGraph5FaceYEfffffPKcff at Base 1.10.2.1
- _ZN8mglGraph5FaceZEfffffPKcff at Base 1.10.2.1
- _ZN8mglGraph5FlowPE8mglPointRK7mglDataS3_PKc at Base 1.10.2.1
- _ZN8mglGraph5FlowPE8mglPointRK7mglDataS3_S3_PKc at Base 1.10.2.1
- _ZN8mglGraph5FlowPE8mglPointRK7mglDataS3_S3_S3_PKc at Base 1.10.2.1
- _ZN8mglGraph5FlowPE8mglPointRK7mglDataS3_S3_S3_S3_S3_PKc at Base 1.10.2.1
- _ZN8mglGraph5FlushEv at Base 1.10.2.1
- _ZN8mglGraph5GetC2Eff at Base 1.10.2.1
- _ZN8mglGraph5Grid3ERK7mglDataS2_S2_S2_ciPKc at Base 1.10.2.1
- _ZN8mglGraph5Grid3ERK7mglDataciPKc at Base 1.10.2.1
- _ZN8mglGraph5GridAERK7mglDataPKc at Base 1.10.2.1
- _ZN8mglGraph5GridAERK7mglDataS2_S2_S2_PKc at Base 1.10.2.1
- _ZN8mglGraph5LabelEcPKcfff at Base 1.10.2.1
- _ZN8mglGraph5LabelEffPKcS1_fb at Base 1.10.2.1
- _ZN8mglGraph5LightEi8mglPoint8mglColorfb at Base 1.10.2.1
- _ZN8mglGraph5LightEi8mglPointcfb at Base 1.10.2.1
- _ZN8mglGraph5LightEib at Base 1.10.2.1
- _ZN8mglGraph5Plot2ERK7mglDataPKcf at Base 1.10.2.1
- _ZN8mglGraph5Plot3ERK7mglDataPKc at Base 1.10.2.1
- _ZN8mglGraph5RadarERK7mglDataPKcf at Base 1.10.2.1
- _ZN8mglGraph5Stem2ERK7mglDataPKcf at Base 1.10.2.1
- _ZN8mglGraph5Stem3ERK7mglDataPKc at Base 1.10.2.1
- _ZN8mglGraph5Step2ERK7mglDataPKcf at Base 1.10.2.1
- _ZN8mglGraph5Step3ERK7mglDataPKc at Base 1.10.2.1
- _ZN8mglGraph5Surf3ERK7mglDataPKci at Base 1.10.2.1
- _ZN8mglGraph5Surf3ERK7mglDataS2_S2_S2_PKci at Base 1.10.2.1
- _ZN8mglGraph5Surf3EfRK7mglDataPKc at Base 1.10.2.1
- _ZN8mglGraph5Surf3EfRK7mglDataS2_S2_S2_PKc at Base 1.10.2.1
- _ZN8mglGraph5SurfAERK7mglDataS2_PKc at Base 1.10.2.1
- _ZN8mglGraph5SurfAERK7mglDataS2_S2_S2_PKc at Base 1.10.2.1
- _ZN8mglGraph5SurfCERK7mglDataS2_PKc at Base 1.10.2.1
- _ZN8mglGraph5SurfCERK7mglDataS2_S2_S2_PKc at Base 1.10.2.1
- _ZN8mglGraph5TileSERK7mglDataS2_PKc at Base 1.10.2.1
- _ZN8mglGraph5TileSERK7mglDataS2_S2_S2_PKc at Base 1.10.2.1
- _ZN8mglGraph5TitleEPKcS1_f at Base 1.10.2.1
- _ZN8mglGraph5TitleEPKwPKcf at Base 1.10.2.1
- _ZN8mglGraph5TorusERK7mglDataPKc at Base 1.10.2.1
- _ZN8mglGraph5TorusERK7mglDataS2_PKc at Base 1.10.2.1
- _ZN8mglGraph5VectCERK7mglDataS2_PKcf at Base 1.10.2.1
- _ZN8mglGraph5VectCERK7mglDataS2_S2_PKc at Base 1.10.2.1
- _ZN8mglGraph5VectCERK7mglDataS2_S2_S2_PKcf at Base 1.10.2.1
- _ZN8mglGraph5VectCERK7mglDataS2_S2_S2_S2_S2_PKc at Base 1.10.2.1
- _ZN8mglGraph5VectLERK7mglDataS2_PKcf at Base 1.10.2.1
- _ZN8mglGraph5VectLERK7mglDataS2_S2_PKc at Base 1.10.2.1
- _ZN8mglGraph5VectLERK7mglDataS2_S2_S2_PKcf at Base 1.10.2.1
- _ZN8mglGraph5VectLERK7mglDataS2_S2_S2_S2_S2_PKc at Base 1.10.2.1
- _ZN8mglGraph5flowrEbfffRK7mglDataS2_S2_S2_S2_S2_f at Base 1.10.2.1
- _ZN8mglGraph5flowrEbfffRK7mglDataS2_S2_S2_f at Base 1.10.2.1
- _ZN8mglGraph6CRangeERK7mglDatabf at Base 1.10.2.1
- _ZN8mglGraph6CloudPERK7mglDataPKcfb at Base 1.10.2.1
- _ZN8mglGraph6CloudPERK7mglDataS2_S2_S2_PKcfb at Base 1.10.2.1
- _ZN8mglGraph6ContF3ERK7mglDataS2_S2_S2_S2_ciPKc at Base 1.10.2.1
- _ZN8mglGraph6ContF3ERK7mglDataS2_S2_S2_ciPKci at Base 1.10.2.1
- _ZN8mglGraph6ContF3ERK7mglDataS2_ciPKc at Base 1.10.2.1
- _ZN8mglGraph6ContF3ERK7mglDataciPKci at Base 1.10.2.1
- _ZN8mglGraph6ContFAERK7mglDataPKci at Base 1.10.2.1
- _ZN8mglGraph6ContFAERK7mglDataS2_S2_S2_PKci at Base 1.10.2.1
- _ZN8mglGraph6ContFXERK7mglDataPKcfi at Base 1.10.2.1
- _ZN8mglGraph6ContFXERK7mglDataS2_PKcf at Base 1.10.2.1
- _ZN8mglGraph6ContFYERK7mglDataPKcfi at Base 1.10.2.1
- _ZN8mglGraph6ContFYERK7mglDataS2_PKcf at Base 1.10.2.1
- _ZN8mglGraph6ContFZERK7mglDataPKcfi at Base 1.10.2.1
- _ZN8mglGraph6ContFZERK7mglDataS2_PKcf at Base 1.10.2.1
- _ZN8mglGraph6CutOffEPKc at Base 1.10.2.1
- _ZN8mglGraph6FinishEv at Base 1.10.2.1
- _ZN8mglGraph6GetPalEv at Base 1.10.2.1
- _ZN8mglGraph6InPlotEffffb at Base 1.10.2.1
- _ZN8mglGraph6LabelwEcPKwfff at Base 1.10.2.1
- _ZN8mglGraph6LabelwEffPKwPKcfb at Base 1.10.2.1
- _ZN8mglGraph6LegendEffPKcff at Base 1.10.2.1
- _ZN8mglGraph6LegendEiPKcff at Base 1.10.2.1
- _ZN8mglGraph6LegendEiPPwPPciPKcff at Base 1.10.2.1
- _ZN8mglGraph6PrintfE8mglPointPKcz at Base 1.10.2.1
- _ZN8mglGraph6RegionERK7mglDataS2_PKcfb at Base 1.10.2.1
- _ZN8mglGraph6RegionERK7mglDataS2_S2_PKcfb at Base 1.10.2.1
- _ZN8mglGraph6RotateEfff at Base 1.10.2.1
- _ZN8mglGraph6SetPalEPKc at Base 1.10.2.1
- _ZN8mglGraph6SphereE8mglPointfPKc at Base 1.10.2.1
- _ZN8mglGraph6Surf3AERK7mglDataS2_PKci at Base 1.10.2.1
- _ZN8mglGraph6Surf3AERK7mglDataS2_S2_S2_S2_PKci at Base 1.10.2.1
- _ZN8mglGraph6Surf3AEfRK7mglDataS2_PKc at Base 1.10.2.1
- _ZN8mglGraph6Surf3AEfRK7mglDataS2_S2_S2_S2_PKc at Base 1.10.2.1
- _ZN8mglGraph6Surf3CERK7mglDataS2_PKci at Base 1.10.2.1
- _ZN8mglGraph6Surf3CERK7mglDataS2_S2_S2_S2_PKci at Base 1.10.2.1
- _ZN8mglGraph6Surf3CEfRK7mglDataS2_PKc at Base 1.10.2.1
- _ZN8mglGraph6Surf3CEfRK7mglDataS2_S2_S2_S2_PKc at Base 1.10.2.1
- _ZN8mglGraph6Torus2ERK7mglDataPKc at Base 1.10.2.1
- _ZN8mglGraph6XRangeERK7mglDatabf at Base 1.10.2.1
- _ZN8mglGraph6YRangeERK7mglDatabf at Base 1.10.2.1
- _ZN8mglGraph6ZRangeERK7mglDatabf at Base 1.10.2.1
- _ZN8mglGraph6adjustEcf at Base 1.10.2.1
- _ZN8mglGraph7AVertexEfffff at Base 1.10.2.1
- _ZN8mglGraph7AmbientEf at Base 1.10.2.1
- _ZN8mglGraph7BoxPlotERK7mglDataPKcf at Base 1.10.2.1
- _ZN8mglGraph7BoxPlotERK7mglDataS2_PKcf at Base 1.10.2.1
- _ZN8mglGraph7ClearEqEv at Base 1.10.2.1
- _ZN8mglGraph7EllipseE8mglPointS0_PKc at Base 1.10.2.1
- _ZN8mglGraph7GetOrgXEc at Base 1.10.2.1
- _ZN8mglGraph7GetOrgYEc at Base 1.10.2.1
- _ZN8mglGraph7GetOrgZEc at Base 1.10.2.1
- _ZN8mglGraph7PutsFitE8mglPointPKcS2_f at Base 1.10.2.1
- _ZN8mglGraph7SetCoorEi at Base 1.10.2.1
- _ZN8mglGraph7SetFontEP7mglFont at Base 1.10.2.1
- _ZN8mglGraph7SetFuncEPKcS1_S1_S1_ at Base 1.10.2.1
- _ZN8mglGraph7SetSizeEii at Base 1.10.2.1
- _ZN8mglGraph7SetWarnEiPKc at Base 1.10.2.1
- _ZN8mglGraph7SubPlotEiiiff at Base 1.10.2.1
- _ZN8mglGraph7TernaryEb at Base 1.10.2.1
- _ZN8mglGraph7TickBoxEv at Base 1.10.2.1
- _ZN8mglGraph7TriPlotERK7mglDataS2_S2_PKcf at Base 1.10.2.1
- _ZN8mglGraph7TriPlotERK7mglDataS2_S2_S2_PKc at Base 1.10.2.1
- _ZN8mglGraph7TriPlotERK7mglDataS2_S2_S2_S2_PKc at Base 1.10.2.1
- _ZN8mglGraph8CloseGIFEv at Base 1.10.2.1
- _ZN8mglGraph8ColorbarEPKci at Base 1.10.2.1
- _ZN8mglGraph8ColorbarERK7mglDataPKci at Base 1.10.2.1
- _ZN8mglGraph8ColorbarERK7mglDataPKciffff at Base 1.10.2.1
- _ZN8mglGraph8ColorbarEiffff at Base 1.10.2.1
- _ZN8mglGraph8DrawTickEPfb at Base 1.10.2.1
- _ZN8mglGraph8EndFrameEv at Base 1.10.2.1
- _ZN8mglGraph8EndGroupEv at Base 1.10.2.1
- _ZN8mglGraph8GetRatioEv at Base 1.10.2.1
- _ZN8mglGraph8IdentityEb at Base 1.10.2.1
- _ZN8mglGraph8NewFrameEv at Base 1.10.2.1
- _ZN8mglGraph8SetFBordEfff at Base 1.10.2.1
- _ZN8mglGraph8SetTicksEcfif at Base 1.10.2.1
- _ZN8mglGraph8StartGIFEPKci at Base 1.10.2.1
- _ZN8mglGraph8TextMarkERK7mglDataPKcS4_f at Base 1.10.2.1
- _ZN8mglGraph8TextMarkERK7mglDataPKwPKcf at Base 1.10.2.1
- _ZN8mglGraph8TextMarkERK7mglDataS2_PKcS4_f at Base 1.10.2.1
- _ZN8mglGraph8TextMarkERK7mglDataS2_PKwPKcf at Base 1.10.2.1
- _ZN8mglGraph8TextMarkERK7mglDataS2_S2_PKcS4_f at Base 1.10.2.1
- _ZN8mglGraph8TextMarkERK7mglDataS2_S2_PKwPKcf at Base 1.10.2.1
- _ZN8mglGraph8TextMarkERK7mglDataS2_S2_S2_PKcS4_ at Base 1.10.2.1
- _ZN8mglGraph8TextMarkERK7mglDataS2_S2_S2_PKwPKc at Base 1.10.2.1
- _ZN8mglGraph8UnrotateEb at Base 1.10.2.1
- _ZN8mglGraph8WriteBMPEPKcS1_ at Base 1.10.2.1
- _ZN8mglGraph8WriteEPSEPKcS1_ at Base 1.10.2.1
- _ZN8mglGraph8WriteGIFEPKcS1_ at Base 1.10.2.1
- _ZN8mglGraph8WritePNGEPKcS1_b at Base 1.10.2.1
- _ZN8mglGraph8WriteSVGEPKcS1_ at Base 1.10.2.1
- _ZN8mglGraph9AddLegendEPKcS1_ at Base 1.10.2.1
- _ZN8mglGraph9AddLegendEPKwPKc at Base 1.10.2.1
- _ZN8mglGraph9DrawTTickEfffffi at Base 1.10.2.1
- _ZN8mglGraph9DrawXTickEfffffi at Base 1.10.2.1
- _ZN8mglGraph9DrawYTickEfffffi at Base 1.10.2.1
- _ZN8mglGraph9DrawZTickEfffffi at Base 1.10.2.1
- _ZN8mglGraph9SelectPenEPKc at Base 1.10.2.1
- _ZN8mglGraph9SetSchemeEPKcb at Base 1.10.2.1
- _ZN8mglGraph9ShowImageEPKcb at Base 1.10.2.1
- _ZN8mglGraph9WriteIDTFEPKcS1_ at Base 1.10.2.1
- _ZN8mglGraph9WriteJPEGEPKcS1_ at Base 1.10.2.1
- _ZN8mglGraph9cont_plotEfllPfS0_S0_S0_fbbi at Base 1.10.2.1
- _ZN8mglGraph9tube_plotElPfS0_S0_ at Base 1.10.2.1
- _ZN8mglGraphC1Ev at Base 1.10.2.1
- _ZN8mglGraphC2Ev at Base 1.10.2.1
- _ZN8mglGraphD0Ev at Base 1.10.2.1
- _ZN8mglGraphD1Ev at Base 1.10.2.1
- _ZN8mglGraphD2Ev at Base 1.10.2.1
- _ZN8mglParse10AddCommandEP10mglCommandi at Base 1.10.2.1
- _ZN8mglParse11FindCommandEPKwb at Base 1.10.2.1
- _ZN8mglParse3PrgE at Base 1.10.2.1
- _ZN8mglParse4ExecEP8mglGraphPKwlP6mglArgS3_ at Base 1.10.2.1
- _ZN8mglParse5ParseEP8mglGraphPKcl at Base 1.10.2.1
- _ZN8mglParse5ParseEP8mglGraphPKwl at Base 1.10.2.1
- _ZN8mglParse6AddNumEPKc at Base 1.10.2.1
- _ZN8mglParse6AddNumEPKw at Base 1.10.2.1
- _ZN8mglParse6AddVarEPKc at Base 1.10.2.1
- _ZN8mglParse6AddVarEPKw at Base 1.10.2.1
- _ZN8mglParse6ExportEPwP8mglGraphPKw at Base 1.10.2.1
- _ZN8mglParse7ExecuteEP8mglGraphP8_IO_FILEb at Base 1.10.2.1
- _ZN8mglParse7ExecuteEP8mglGraphPKcPFviiS1_E at Base 1.10.2.1
- _ZN8mglParse7ExecuteEP8mglGraphPKwPFviiS1_E at Base 1.10.2.1
- _ZN8mglParse7ExecuteEP8mglGraphiPPKwPFviiS1_E at Base 1.10.2.1
- _ZN8mglParse7FillArgEP8mglGraphiPPwP6mglArg at Base 1.10.2.1
- _ZN8mglParse7FindNumEPKc at Base 1.10.2.1
- _ZN8mglParse7FindNumEPKw at Base 1.10.2.1
- _ZN8mglParse7FindVarEPKc at Base 1.10.2.1
- _ZN8mglParse7FindVarEPKw at Base 1.10.2.1
- _ZN8mglParse7PreExecEP8mglGraphlPPwP6mglArg at Base 1.10.2.1
- _ZN8mglParse7ProcOptEP8mglGraphPw at Base 1.10.2.1
- _ZN8mglParse8AddParamEiPKcb at Base 1.10.2.1
- _ZN8mglParse8AddParamEiPKwb at Base 1.10.2.1
- _ZN8mglParse8FlowExecEP8mglGraphPKwlP6mglArg at Base 1.10.2.1
- _ZN8mglParse8ParseDatEP8mglGraphPKwR7mglData at Base 1.10.2.1
- _ZN8mglParse9DeleteVarEP6mglVar at Base 1.10.2.1
- _ZN8mglParse9DeleteVarEPKc at Base 1.10.2.1
- _ZN8mglParse9DeleteVarEPKw at Base 1.10.2.1
- _ZN8mglParseC1Eb at Base 1.10.2.1
- _ZN8mglParseC2Eb at Base 1.10.2.1
- _ZN8mglParseD1Ev at Base 1.10.2.1
- _ZN8mglParseD2Ev at Base 1.10.2.1
- _ZN8u3dLight10print_nodeERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.10.2.1
- _ZN8u3dLight20print_light_resourceERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.10.2.1
- _ZN8u3dLightD1Ev at Base 1.10.2.1
- _ZN8u3dModel10print_nodeERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.10.2.1
- _ZN8u3dModel16AddModelMaterialEPKfbb at Base 1.10.2.1
- _ZN8u3dModel22print_shading_modifierERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.10.2.1
- _ZN8u3dModel8AddColorEPKf at Base 1.10.2.1
- _ZN8u3dModel8AddColorERK8mglColor at Base 1.10.2.1
- _ZN8u3dModel8AddPointEPKf at Base 1.10.2.1
- _ZN8u3dModel8AddPointERK8mglPoint at Base 1.10.2.1
- _ZN8u3dModelC1ESsP12mglGraphIDTFRKb at Base 1.10.2.1
- _ZN8u3dModelC2ESsP12mglGraphIDTFRKb at Base 1.10.2.1
- _ZN8u3dModelD2Ev at Base 1.10.2.1
- _ZNK10mglFormula4CalcEPKf at Base 1.10.2.1
- _ZNK10mglFormula4CalcEffff at Base 1.10.2.1
- _ZNK10mglFormula4CalcEffffff at Base 1.10.2.1
- _ZNK10mglFormula5CalcDEPKfc at Base 1.10.2.1
- _ZNK10mglFormula6CalcInEPKf at Base 1.10.2.1
- _ZNK10mglFormula7CalcDInEiPKf at Base 1.10.2.1
- _ZNK11TGAImageMin5WriteEPKc at Base 1.10.2.1
- _ZNK11mglFormulaC4CalcEPKSt7complexIdE at Base 1.10.2.1
- _ZNK11mglFormulaC4CalcESt7complexIdES1_S1_S1_ at Base 1.10.2.1
- _ZNK11mglFormulaC4CalcESt7complexIdES1_S1_S1_S1_S1_ at Base 1.10.2.1
- _ZNK11mglFormulaC6CalcInEPKSt7complexIdE at Base 1.10.2.1
- _ZNK7mglData1vEiii at Base 1.10.2.1
- _ZNK7mglData3MaxEPKc at Base 1.10.2.1
- _ZNK7mglData3MinEPKc at Base 1.10.2.1
- _ZNK7mglData3SumEPKc at Base 1.10.2.1
- _ZNK7mglData4FindEPKcRiS2_S2_ at Base 1.10.2.1
- _ZNK7mglData4FindEPKcciii at Base 1.10.2.1
- _ZNK7mglData4HistERKS_iffi at Base 1.10.2.1
- _ZNK7mglData4HistEiffi at Base 1.10.2.1
- _ZNK7mglData4LastEPKcRiS2_S2_ at Base 1.10.2.1
- _ZNK7mglData4SaveEPKci at Base 1.10.2.1
- _ZNK7mglData5TraceEv at Base 1.10.2.1
- _ZNK7mglData6ExportEPKcS1_ffi at Base 1.10.2.1
- _ZNK7mglData6LinearEfff at Base 1.10.2.1
- _ZNK7mglData6ResizeEiiiffffff at Base 1.10.2.1
- _ZNK7mglData6SplineEfff at Base 1.10.2.1
- _ZNK7mglData7CombineERKS_ at Base 1.10.2.1
- _ZNK7mglData7FindAnyEPKc at Base 1.10.2.1
- _ZNK7mglData7MaximalERfS0_S0_ at Base 1.10.2.1
- _ZNK7mglData7MaximalERiS0_S0_ at Base 1.10.2.1
- _ZNK7mglData7MaximalEv at Base 1.10.2.1
- _ZNK7mglData7MinimalERfS0_S0_ at Base 1.10.2.1
- _ZNK7mglData7MinimalERiS0_S0_ at Base 1.10.2.1
- _ZNK7mglData7MinimalEv at Base 1.10.2.1
- _ZNK7mglData7SaveHDFEPKcS1_b at Base 1.10.2.1
- _ZNK7mglData7Spline3EfffRfS0_S0_ at Base 1.10.2.1
- _ZNK7mglData7Spline5EfffRfS0_S0_ at Base 1.10.2.1
- _ZNK7mglData7SubDataERKS_S1_S1_ at Base 1.10.2.1
- _ZNK7mglData7SubDataEiii at Base 1.10.2.1
- _ZNK7mglData8EvaluateERKS_S1_S1_b at Base 1.10.2.1
- _ZNK7mglData8EvaluateERKS_S1_b at Base 1.10.2.1
- _ZNK7mglData8EvaluateERKS_b at Base 1.10.2.1
- _ZNK7mglData8MomentumEcPKc at Base 1.10.2.1
- _ZNK7mglData8MomentumEcRfS0_ at Base 1.10.2.1
- _ZNK7mglData8MomentumEcRfS0_S0_S0_ at Base 1.10.2.1
- _ZNK7mglData9PrintInfoEP8_IO_FILE at Base 1.10.2.1
- _ZNK7mglData9PrintInfoEPcb at Base 1.10.2.1
- _ZNSs12_S_constructIPcEES0_T_S1_RKSaIcESt20forward_iterator_tag at Base 1.10.2.1
- _ZNSt10_List_baseI10u3dLineSetSaIS0_EE8_M_clearEv at Base 1.10.2.1
- _ZNSt10_List_baseI10u3dTextureSaIS0_EE8_M_clearEv at Base 1.10.2.1
- _ZNSt10_List_baseI11u3dPointSetSaIS0_EE8_M_clearEv at Base 1.10.2.1
- _ZNSt10_List_baseI7u3dMeshSaIS0_EE8_M_clearEv at Base 1.10.2.1
- _ZNSt10_List_baseI8u3dGroupSaIS0_EE8_M_clearEv at Base 1.10.2.1
- _ZNSt10_List_baseI8u3dLightSaIS0_EE8_M_clearEv at Base 1.10.2.1
- _ZNSt11_Deque_baseI11u3dMaterialSaIS0_EED2Ev at Base 1.10.2.1
- _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev at Base 1.10.2.1
- _ZNSt4listI7u3dMeshSaIS0_EE9push_backERKS0_ at Base 1.10.2.1
- _ZNSt5dequeI11u3dMaterialSaIS0_EE16_M_push_back_auxERKS0_ at Base 1.10.2.1
- _ZNSt5dequeI11u3dMaterialSaIS0_EED1Ev at Base 1.10.2.1
- _ZNSt6vectorI10TexCoord2DSaIS0_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS0_S2_EERKS0_ at Base 1.10.2.1
- _ZNSt6vectorI7size_t3SaIS0_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS0_S2_EERKS0_ at Base 1.10.2.1
- _ZNSt6vectorI7u3dBallSaIS0_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS0_S2_EERKS0_ at Base 1.10.2.1
- _ZNSt6vectorI7u3dBallSaIS0_EED1Ev at Base 1.10.2.1
- _ZNSt6vectorI7u3dLineSaIS0_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS0_S2_EERKS0_ at Base 1.10.2.1
- _ZNSt6vectorI8mglColorSaIS0_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS0_S2_EERKS0_ at Base 1.10.2.1
- _ZNSt6vectorI8mglPointSaIS0_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS0_S2_EERKS0_ at Base 1.10.2.1
- _ZNSt6vectorImSaImEE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPmS1_EERKm at Base 1.10.2.1
- _ZSt5fixedRSt8ios_base at Base 1.10.2.1
- _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_ at Base 1.10.2.1
- _ZTI10mglGraphAB at Base 1.10.2.1
- _ZTI10mglGraphGL at Base 1.10.2.1
- _ZTI10mglGraphPS at Base 1.10.2.1
- _ZTI10mglGraphZB at Base 1.10.2.1
- _ZTI12mglGraphIDTF at Base 1.10.2.1
- _ZTI8mglGraph at Base 1.10.2.1
- _ZTS10mglGraphAB at Base 1.10.2.1
- _ZTS10mglGraphGL at Base 1.10.2.1
- _ZTS10mglGraphPS at Base 1.10.2.1
- _ZTS10mglGraphZB at Base 1.10.2.1
- _ZTS12mglGraphIDTF at Base 1.10.2.1
- _ZTS8mglGraph at Base 1.10.2.1
- _ZTV10mglGraphAB at Base 1.10.2.1
- _ZTV10mglGraphGL at Base 1.10.2.1
- _ZTV10mglGraphPS at Base 1.10.2.1
- _ZTV10mglGraphZB at Base 1.10.2.1
- _ZTV12mglGraphIDTF at Base 1.10.2.1
- _ZTV8mglGraph at Base 1.10.2.1
- _ZdvRK7mglDataS1_ at Base 1.10.2.1
- _ZdvRK7mglDataf at Base 1.10.2.1
- _ZmiRK7mglDataS1_ at Base 1.10.2.1
- _ZmiRK7mglDataf at Base 1.10.2.1
- _ZmifRK7mglData at Base 1.10.2.1
- _ZmlRK7mglDataS1_ at Base 1.10.2.1
- _ZmlRK7mglDataf at Base 1.10.2.1
- _ZmlfRK7mglData at Base 1.10.2.1
- _ZplRK7mglDataS1_ at Base 1.10.2.1
- _ZplRK7mglDataf at Base 1.10.2.1
- _ZplfRK7mglData at Base 1.10.2.1
- ic at Base 1.10.2.1
- mglColorIds at Base 1.10.2.1
- mglDefFont at Base 1.10.2.1
- mglFormulaError at Base 1.10.2.1
- mglNumThr at Base 1.10.2.1
- mglWarn at Base 1.10.2.1
- mgl_act_symb at Base 1.10.2.1
- mgl_add_legend at Base 1.10.2.1
- mgl_add_legend_ at Base 1.10.2.1
- mgl_add_legendw at Base 1.10.2.1
- mgl_add_light at Base 1.10.2.1
- mgl_add_light_ at Base 1.10.2.1
- mgl_add_light_rgb at Base 1.10.2.1
- mgl_add_light_rgb_ at Base 1.10.2.1
- mgl_add_param at Base 1.10.2.1
- mgl_add_param_ at Base 1.10.2.1
- mgl_add_paramw at Base 1.10.2.1
- mgl_add_var at Base 1.10.2.1
- mgl_add_var_ at Base 1.10.2.1
- mgl_adjust_ticks at Base 1.10.2.1
- mgl_adjust_ticks_ at Base 1.10.2.1
- mgl_af2d_solve at Base 1.10.2.1
- mgl_af2d_solve_ at Base 1.10.2.1
- mgl_area at Base 1.10.2.1
- mgl_area_2 at Base 1.10.2.1
- mgl_area_2_ at Base 1.10.2.1
- mgl_area_3 at Base 1.10.2.1
- mgl_area_3_ at Base 1.10.2.1
- mgl_area_ at Base 1.10.2.1
- mgl_area_s at Base 1.10.2.1
- mgl_area_s_ at Base 1.10.2.1
- mgl_area_xy at Base 1.10.2.1
- mgl_area_xy_ at Base 1.10.2.1
- mgl_area_xys at Base 1.10.2.1
- mgl_area_xyz at Base 1.10.2.1
- mgl_area_xyz_ at Base 1.10.2.1
- mgl_aspect at Base 1.10.2.1
- mgl_aspect_ at Base 1.10.2.1
- mgl_axial at Base 1.10.2.1
- mgl_axial_ at Base 1.10.2.1
- mgl_axial_val at Base 1.10.2.1
- mgl_axial_val_ at Base 1.10.2.1
- mgl_axial_xy at Base 1.10.2.1
- mgl_axial_xy_ at Base 1.10.2.1
- mgl_axial_xy_val at Base 1.10.2.1
- mgl_axial_xy_val_ at Base 1.10.2.1
- mgl_axis at Base 1.10.2.1
- mgl_axis_ at Base 1.10.2.1
- mgl_axis_grid at Base 1.10.2.1
- mgl_axis_grid_ at Base 1.10.2.1
- mgl_ball at Base 1.10.2.1
- mgl_ball_ at Base 1.10.2.1
- mgl_ball_rgb at Base 1.10.2.1
- mgl_ball_rgb_ at Base 1.10.2.1
- mgl_ball_str at Base 1.10.2.1
- mgl_ball_str_ at Base 1.10.2.1
- mgl_barh at Base 1.10.2.1
- mgl_barh_ at Base 1.10.2.1
- mgl_barh_yx at Base 1.10.2.1
- mgl_barh_yx_ at Base 1.10.2.1
- mgl_bars at Base 1.10.2.1
- mgl_bars_2 at Base 1.10.2.1
- mgl_bars_2_ at Base 1.10.2.1
- mgl_bars_3 at Base 1.10.2.1
- mgl_bars_3_ at Base 1.10.2.1
- mgl_bars_ at Base 1.10.2.1
- mgl_bars_xy at Base 1.10.2.1
- mgl_bars_xy_ at Base 1.10.2.1
- mgl_bars_xyz at Base 1.10.2.1
- mgl_bars_xyz_ at Base 1.10.2.1
- mgl_beam at Base 1.10.2.1
- mgl_beam_ at Base 1.10.2.1
- mgl_beam_val at Base 1.10.2.1
- mgl_beam_val_ at Base 1.10.2.1
- mgl_belt at Base 1.10.2.1
- mgl_belt_ at Base 1.10.2.1
- mgl_belt_xy at Base 1.10.2.1
- mgl_belt_xy_ at Base 1.10.2.1
- mgl_box at Base 1.10.2.1
- mgl_box_ at Base 1.10.2.1
- mgl_box_rgb at Base 1.10.2.1
- mgl_box_rgb_ at Base 1.10.2.1
- mgl_box_str at Base 1.10.2.1
- mgl_box_str_ at Base 1.10.2.1
- mgl_boxplot at Base 1.10.2.1
- mgl_boxplot_ at Base 1.10.2.1
- mgl_boxplot_xy at Base 1.10.2.1
- mgl_boxplot_xy_ at Base 1.10.2.1
- mgl_boxs at Base 1.10.2.1
- mgl_boxs_ at Base 1.10.2.1
- mgl_boxs_xy at Base 1.10.2.1
- mgl_boxs_xy_ at Base 1.10.2.1
- mgl_buf_fnt at Base 1.10.2.1
- mgl_calc_scr at Base 1.10.2.1
- mgl_calc_scr_ at Base 1.10.2.1
- mgl_calc_xyz at Base 1.10.2.1
- mgl_calc_xyz_ at Base 1.10.2.1
- mgl_chart at Base 1.10.2.1
- mgl_chart_ at Base 1.10.2.1
- mgl_clear_legend at Base 1.10.2.1
- mgl_clear_legend_ at Base 1.10.2.1
- mgl_clf at Base 1.10.2.1
- mgl_clf_ at Base 1.10.2.1
- mgl_clf_rgb at Base 1.10.2.1
- mgl_clf_rgb_ at Base 1.10.2.1
- mgl_close_gif at Base 1.10.2.1
- mgl_cloud at Base 1.10.2.1
- mgl_cloud_ at Base 1.10.2.1
- mgl_cloud_xyz at Base 1.10.2.1
- mgl_cloud_xyz_ at Base 1.10.2.1
- mgl_cloudp at Base 1.10.2.1
- mgl_cloudp_ at Base 1.10.2.1
- mgl_cloudp_xyz at Base 1.10.2.1
- mgl_cloudp_xyz_ at Base 1.10.2.1
- mgl_colorbar at Base 1.10.2.1
- mgl_colorbar_ at Base 1.10.2.1
- mgl_colorbar_ext at Base 1.10.2.1
- mgl_colorbar_ext_ at Base 1.10.2.1
- mgl_colorbar_val at Base 1.10.2.1
- mgl_colorbar_val_ at Base 1.10.2.1
- mgl_columnplot at Base 1.10.2.1
- mgl_columnplot_ at Base 1.10.2.1
- mgl_cone at Base 1.10.2.1
- mgl_cone_ at Base 1.10.2.1
- mgl_cont3 at Base 1.10.2.1
- mgl_cont3_ at Base 1.10.2.1
- mgl_cont3_val at Base 1.10.2.1
- mgl_cont3_val_ at Base 1.10.2.1
- mgl_cont3_xyz at Base 1.10.2.1
- mgl_cont3_xyz_ at Base 1.10.2.1
- mgl_cont3_xyz_val at Base 1.10.2.1
- mgl_cont3_xyz_val_ at Base 1.10.2.1
- mgl_cont at Base 1.10.2.1
- mgl_cont_ at Base 1.10.2.1
- mgl_cont_all at Base 1.10.2.1
- mgl_cont_all_ at Base 1.10.2.1
- mgl_cont_all_xyz at Base 1.10.2.1
- mgl_cont_all_xyz_ at Base 1.10.2.1
- mgl_cont_val at Base 1.10.2.1
- mgl_cont_val_ at Base 1.10.2.1
- mgl_cont_x at Base 1.10.2.1
- mgl_cont_x_ at Base 1.10.2.1
- mgl_cont_x_val at Base 1.10.2.1
- mgl_cont_x_val_ at Base 1.10.2.1
- mgl_cont_xy at Base 1.10.2.1
- mgl_cont_xy_ at Base 1.10.2.1
- mgl_cont_xy_val at Base 1.10.2.1
- mgl_cont_xy_val_ at Base 1.10.2.1
- mgl_cont_y at Base 1.10.2.1
- mgl_cont_y_ at Base 1.10.2.1
- mgl_cont_y_val at Base 1.10.2.1
- mgl_cont_y_val_ at Base 1.10.2.1
- mgl_cont_z at Base 1.10.2.1
- mgl_cont_z_ at Base 1.10.2.1
- mgl_cont_z_val at Base 1.10.2.1
- mgl_cont_z_val_ at Base 1.10.2.1
- mgl_contd at Base 1.10.2.1
- mgl_contd_ at Base 1.10.2.1
- mgl_contd_val at Base 1.10.2.1
- mgl_contd_val_ at Base 1.10.2.1
- mgl_contd_xy at Base 1.10.2.1
- mgl_contd_xy_ at Base 1.10.2.1
- mgl_contd_xy_val at Base 1.10.2.1
- mgl_contd_xy_val_ at Base 1.10.2.1
- mgl_contf3 at Base 1.10.2.1
- mgl_contf3_ at Base 1.10.2.1
- mgl_contf3_val at Base 1.10.2.1
- mgl_contf3_val_ at Base 1.10.2.1
- mgl_contf3_xyz at Base 1.10.2.1
- mgl_contf3_xyz_ at Base 1.10.2.1
- mgl_contf3_xyz_val at Base 1.10.2.1
- mgl_contf3_xyz_val_ at Base 1.10.2.1
- mgl_contf at Base 1.10.2.1
- mgl_contf_ at Base 1.10.2.1
- mgl_contf_all at Base 1.10.2.1
- mgl_contf_all_ at Base 1.10.2.1
- mgl_contf_all_xyz at Base 1.10.2.1
- mgl_contf_all_xyz_ at Base 1.10.2.1
- mgl_contf_val at Base 1.10.2.1
- mgl_contf_val_ at Base 1.10.2.1
- mgl_contf_x at Base 1.10.2.1
- mgl_contf_x_ at Base 1.10.2.1
- mgl_contf_x_val at Base 1.10.2.1
- mgl_contf_x_val_ at Base 1.10.2.1
- mgl_contf_xy at Base 1.10.2.1
- mgl_contf_xy_ at Base 1.10.2.1
- mgl_contf_xy_val at Base 1.10.2.1
- mgl_contf_xy_val_ at Base 1.10.2.1
- mgl_contf_y at Base 1.10.2.1
- mgl_contf_y_ at Base 1.10.2.1
- mgl_contf_y_val at Base 1.10.2.1
- mgl_contf_y_val_ at Base 1.10.2.1
- mgl_contf_z at Base 1.10.2.1
- mgl_contf_z_ at Base 1.10.2.1
- mgl_contf_z_val at Base 1.10.2.1
- mgl_contf_z_val_ at Base 1.10.2.1
- mgl_copy_font at Base 1.10.2.1
- mgl_copy_font_ at Base 1.10.2.1
- mgl_create_data at Base 1.10.2.1
- mgl_create_data_ at Base 1.10.2.1
- mgl_create_data_file at Base 1.10.2.1
- mgl_create_data_file_ at Base 1.10.2.1
- mgl_create_data_size at Base 1.10.2.1
- mgl_create_data_size_ at Base 1.10.2.1
- mgl_create_graph_gl at Base 1.10.2.1
- mgl_create_graph_gl_ at Base 1.10.2.1
- mgl_create_graph_idtf at Base 1.10.2.1
- mgl_create_graph_idtf_ at Base 1.10.2.1
- mgl_create_graph_ps at Base 1.10.2.1
- mgl_create_graph_ps_ at Base 1.10.2.1
- mgl_create_graph_zb at Base 1.10.2.1
- mgl_create_graph_zb_ at Base 1.10.2.1
- mgl_create_parser at Base 1.10.2.1
- mgl_create_parser_ at Base 1.10.2.1
- mgl_crust at Base 1.10.2.1
- mgl_crust_ at Base 1.10.2.1
- mgl_crust_tr at Base 1.10.2.1
- mgl_crust_tr_ at Base 1.10.2.1
- mgl_cur at Base 1.10.2.1
- mgl_curve at Base 1.10.2.1
- mgl_curve_ at Base 1.10.2.1
- mgl_data_add_dat at Base 1.10.2.1
- mgl_data_add_dat_ at Base 1.10.2.1
- mgl_data_add_num at Base 1.10.2.1
- mgl_data_add_num_ at Base 1.10.2.1
- mgl_data_column at Base 1.10.2.1
- mgl_data_column_ at Base 1.10.2.1
- mgl_data_combine at Base 1.10.2.1
- mgl_data_combine_ at Base 1.10.2.1
- mgl_data_create at Base 1.10.2.1
- mgl_data_create_ at Base 1.10.2.1
- mgl_data_crop at Base 1.10.2.1
- mgl_data_crop_ at Base 1.10.2.1
- mgl_data_cumsum at Base 1.10.2.1
- mgl_data_cumsum_ at Base 1.10.2.1
- mgl_data_data at Base 1.10.2.1
- mgl_data_data_ at Base 1.10.2.1
- mgl_data_delete at Base 1.10.2.1
- mgl_data_delete_ at Base 1.10.2.1
- mgl_data_diff2 at Base 1.10.2.1
- mgl_data_diff2_ at Base 1.10.2.1
- mgl_data_diff at Base 1.10.2.1
- mgl_data_diff_ at Base 1.10.2.1
- mgl_data_diff_par at Base 1.10.2.1
- mgl_data_diff_par_ at Base 1.10.2.1
- mgl_data_div_dat at Base 1.10.2.1
- mgl_data_div_dat_ at Base 1.10.2.1
- mgl_data_div_num at Base 1.10.2.1
- mgl_data_div_num_ at Base 1.10.2.1
- mgl_data_envelop at Base 1.10.2.1
- mgl_data_envelop_ at Base 1.10.2.1
- mgl_data_evaluate_i at Base 1.10.2.1
- mgl_data_evaluate_i_ at Base 1.10.2.1
- mgl_data_evaluate_ij at Base 1.10.2.1
- mgl_data_evaluate_ij_ at Base 1.10.2.1
- mgl_data_evaluate_ijk at Base 1.10.2.1
- mgl_data_evaluate_ijk_ at Base 1.10.2.1
- mgl_data_export at Base 1.10.2.1
- mgl_data_extend at Base 1.10.2.1
- mgl_data_extend_ at Base 1.10.2.1
- mgl_data_fill at Base 1.10.2.1
- mgl_data_fill_ at Base 1.10.2.1
- mgl_data_fill_eq at Base 1.10.2.1
- mgl_data_fill_eq_ at Base 1.10.2.1
- mgl_data_find at Base 1.10.2.1
- mgl_data_find_ at Base 1.10.2.1
- mgl_data_find_any at Base 1.10.2.1
- mgl_data_find_any_ at Base 1.10.2.1
- mgl_data_first at Base 1.10.2.1
- mgl_data_first_ at Base 1.10.2.1
- mgl_data_get_nx at Base 1.10.2.1
- mgl_data_get_nx_ at Base 1.10.2.1
- mgl_data_get_ny at Base 1.10.2.1
- mgl_data_get_ny_ at Base 1.10.2.1
- mgl_data_get_nz at Base 1.10.2.1
- mgl_data_get_nz_ at Base 1.10.2.1
- mgl_data_get_value at Base 1.10.2.1
- mgl_data_get_value_ at Base 1.10.2.1
- mgl_data_hist at Base 1.10.2.1
- mgl_data_hist_ at Base 1.10.2.1
- mgl_data_hist_w at Base 1.10.2.1
- mgl_data_hist_w_ at Base 1.10.2.1
- mgl_data_import at Base 1.10.2.1
- mgl_data_insert at Base 1.10.2.1
- mgl_data_insert_ at Base 1.10.2.1
- mgl_data_integral at Base 1.10.2.1
- mgl_data_integral_ at Base 1.10.2.1
- mgl_data_last at Base 1.10.2.1
- mgl_data_last_ at Base 1.10.2.1
- mgl_data_linear1 at Base 1.10.2.1
- mgl_data_linear1_ at Base 1.10.2.1
- mgl_data_linear at Base 1.10.2.1
- mgl_data_linear_ at Base 1.10.2.1
- mgl_data_max at Base 1.10.2.1
- mgl_data_max_ at Base 1.10.2.1
- mgl_data_max_dir at Base 1.10.2.1
- mgl_data_max_dir_ at Base 1.10.2.1
- mgl_data_max_int at Base 1.10.2.1
- mgl_data_max_int_ at Base 1.10.2.1
- mgl_data_max_real at Base 1.10.2.1
- mgl_data_max_real_ at Base 1.10.2.1
- mgl_data_min at Base 1.10.2.1
- mgl_data_min_ at Base 1.10.2.1
- mgl_data_min_dir at Base 1.10.2.1
- mgl_data_min_dir_ at Base 1.10.2.1
- mgl_data_min_int at Base 1.10.2.1
- mgl_data_min_int_ at Base 1.10.2.1
- mgl_data_min_real at Base 1.10.2.1
- mgl_data_min_real_ at Base 1.10.2.1
- mgl_data_mirror at Base 1.10.2.1
- mgl_data_mirror_ at Base 1.10.2.1
- mgl_data_modify at Base 1.10.2.1
- mgl_data_modify_ at Base 1.10.2.1
- mgl_data_modify_vw at Base 1.10.2.1
- mgl_data_modify_vw_ at Base 1.10.2.1
- mgl_data_momentum at Base 1.10.2.1
- mgl_data_momentum_ at Base 1.10.2.1
- mgl_data_momentum_mw at Base 1.10.2.1
- mgl_data_momentum_mw_ at Base 1.10.2.1
- mgl_data_mul_dat at Base 1.10.2.1
- mgl_data_mul_dat_ at Base 1.10.2.1
- mgl_data_mul_num at Base 1.10.2.1
- mgl_data_mul_num_ at Base 1.10.2.1
- mgl_data_norm at Base 1.10.2.1
- mgl_data_norm_ at Base 1.10.2.1
- mgl_data_norm_slice at Base 1.10.2.1
- mgl_data_norm_slice_ at Base 1.10.2.1
- mgl_data_put_dat at Base 1.10.2.1
- mgl_data_put_dat_ at Base 1.10.2.1
- mgl_data_put_val at Base 1.10.2.1
- mgl_data_put_val_ at Base 1.10.2.1
- mgl_data_read at Base 1.10.2.1
- mgl_data_read_ at Base 1.10.2.1
- mgl_data_read_dim at Base 1.10.2.1
- mgl_data_read_dim_ at Base 1.10.2.1
- mgl_data_read_mat at Base 1.10.2.1
- mgl_data_read_mat_ at Base 1.10.2.1
- mgl_data_rearrange at Base 1.10.2.1
- mgl_data_rearrange_ at Base 1.10.2.1
- mgl_data_resize at Base 1.10.2.1
- mgl_data_resize_ at Base 1.10.2.1
- mgl_data_resize_box at Base 1.10.2.1
- mgl_data_resize_box_ at Base 1.10.2.1
- mgl_data_save at Base 1.10.2.1
- mgl_data_save_ at Base 1.10.2.1
- mgl_data_set at Base 1.10.2.1
- mgl_data_set_ at Base 1.10.2.1
- mgl_data_set_double1_ at Base 1.10.2.1
- mgl_data_set_double2 at Base 1.10.2.1
- mgl_data_set_double2_ at Base 1.10.2.1
- mgl_data_set_double3 at Base 1.10.2.1
- mgl_data_set_double3_ at Base 1.10.2.1
- mgl_data_set_double at Base 1.10.2.1
- mgl_data_set_double_ at Base 1.10.2.1
- mgl_data_set_float1_ at Base 1.10.2.1
- mgl_data_set_float2 at Base 1.10.2.1
- mgl_data_set_float2_ at Base 1.10.2.1
- mgl_data_set_float3 at Base 1.10.2.1
- mgl_data_set_float3_ at Base 1.10.2.1
- mgl_data_set_float at Base 1.10.2.1
- mgl_data_set_float_ at Base 1.10.2.1
- mgl_data_set_id at Base 1.10.2.1
- mgl_data_set_id_ at Base 1.10.2.1
- mgl_data_set_matrix at Base 1.10.2.1
- mgl_data_set_value at Base 1.10.2.1
- mgl_data_set_value_ at Base 1.10.2.1
- mgl_data_set_values at Base 1.10.2.1
- mgl_data_set_values_ at Base 1.10.2.1
- mgl_data_set_vector at Base 1.10.2.1
- mgl_data_sew at Base 1.10.2.1
- mgl_data_sew_ at Base 1.10.2.1
- mgl_data_smooth at Base 1.10.2.1
- mgl_data_smooth_ at Base 1.10.2.1
- mgl_data_spline1 at Base 1.10.2.1
- mgl_data_spline1_ at Base 1.10.2.1
- mgl_data_spline at Base 1.10.2.1
- mgl_data_spline_ at Base 1.10.2.1
- mgl_data_squeeze at Base 1.10.2.1
- mgl_data_squeeze_ at Base 1.10.2.1
- mgl_data_stfa at Base 1.10.2.1
- mgl_data_stfa_ at Base 1.10.2.1
- mgl_data_sub_dat at Base 1.10.2.1
- mgl_data_sub_dat_ at Base 1.10.2.1
- mgl_data_sub_num at Base 1.10.2.1
- mgl_data_sub_num_ at Base 1.10.2.1
- mgl_data_subdata at Base 1.10.2.1
- mgl_data_subdata_ at Base 1.10.2.1
- mgl_data_subdata_ext at Base 1.10.2.1
- mgl_data_subdata_ext_ at Base 1.10.2.1
- mgl_data_sum at Base 1.10.2.1
- mgl_data_sum_ at Base 1.10.2.1
- mgl_data_swap at Base 1.10.2.1
- mgl_data_swap_ at Base 1.10.2.1
- mgl_data_transpose at Base 1.10.2.1
- mgl_data_transpose_ at Base 1.10.2.1
- mgl_data_value at Base 1.10.2.1
- mgl_delete_data at Base 1.10.2.1
- mgl_delete_data_ at Base 1.10.2.1
- mgl_delete_graph at Base 1.10.2.1
- mgl_delete_graph_ at Base 1.10.2.1
- mgl_delete_parser at Base 1.10.2.1
- mgl_delete_parser_ at Base 1.10.2.1
- mgl_dens3 at Base 1.10.2.1
- mgl_dens3_ at Base 1.10.2.1
- mgl_dens3_all at Base 1.10.2.1
- mgl_dens3_all_ at Base 1.10.2.1
- mgl_dens3_all_xyz at Base 1.10.2.1
- mgl_dens3_all_xyz_ at Base 1.10.2.1
- mgl_dens3_xyz at Base 1.10.2.1
- mgl_dens3_xyz_ at Base 1.10.2.1
- mgl_dens at Base 1.10.2.1
- mgl_dens_ at Base 1.10.2.1
- mgl_dens_x at Base 1.10.2.1
- mgl_dens_x_ at Base 1.10.2.1
- mgl_dens_xy at Base 1.10.2.1
- mgl_dens_xy_ at Base 1.10.2.1
- mgl_dens_y at Base 1.10.2.1
- mgl_dens_y_ at Base 1.10.2.1
- mgl_dens_z at Base 1.10.2.1
- mgl_dens_z_ at Base 1.10.2.1
- mgl_dew_2d at Base 1.10.2.1
- mgl_dew_2d_ at Base 1.10.2.1
- mgl_dew_xy at Base 1.10.2.1
- mgl_dew_xy_ at Base 1.10.2.1
- mgl_dots at Base 1.10.2.1
- mgl_dots_ at Base 1.10.2.1
- mgl_dots_a at Base 1.10.2.1
- mgl_dots_a_ at Base 1.10.2.1
- mgl_dots_tr at Base 1.10.2.1
- mgl_dots_tr_ at Base 1.10.2.1
- mgl_drop at Base 1.10.2.1
- mgl_drop_ at Base 1.10.2.1
- mgl_end_frame at Base 1.10.2.1
- mgl_end_frame_ at Base 1.10.2.1
- mgl_error at Base 1.10.2.1
- mgl_error_ at Base 1.10.2.1
- mgl_error_exy at Base 1.10.2.1
- mgl_error_exy_ at Base 1.10.2.1
- mgl_error_xy at Base 1.10.2.1
- mgl_error_xy_ at Base 1.10.2.1
- mgl_facex at Base 1.10.2.1
- mgl_facex_ at Base 1.10.2.1
- mgl_facey at Base 1.10.2.1
- mgl_facey_ at Base 1.10.2.1
- mgl_facez at Base 1.10.2.1
- mgl_facez_ at Base 1.10.2.1
- mgl_fact at Base 1.10.2.1
- mgl_fall at Base 1.10.2.1
- mgl_fall_ at Base 1.10.2.1
- mgl_fall_xy at Base 1.10.2.1
- mgl_fall_xy_ at Base 1.10.2.1
- mgl_find_var at Base 1.10.2.1
- mgl_find_var_ at Base 1.10.2.1
- mgl_fit_1 at Base 1.10.2.1
- mgl_fit_1_ at Base 1.10.2.1
- mgl_fit_1_d at Base 1.10.2.1
- mgl_fit_2 at Base 1.10.2.1
- mgl_fit_2_ at Base 1.10.2.1
- mgl_fit_2_d at Base 1.10.2.1
- mgl_fit_3 at Base 1.10.2.1
- mgl_fit_3_ at Base 1.10.2.1
- mgl_fit_3_d at Base 1.10.2.1
- mgl_fit_xy at Base 1.10.2.1
- mgl_fit_xy_ at Base 1.10.2.1
- mgl_fit_xy_d at Base 1.10.2.1
- mgl_fit_xys at Base 1.10.2.1
- mgl_fit_xys_ at Base 1.10.2.1
- mgl_fit_xys_d at Base 1.10.2.1
- mgl_fit_xyz at Base 1.10.2.1
- mgl_fit_xyz_ at Base 1.10.2.1
- mgl_fit_xyz_d at Base 1.10.2.1
- mgl_fit_xyza at Base 1.10.2.1
- mgl_fit_xyza_ at Base 1.10.2.1
- mgl_fit_xyza_d at Base 1.10.2.1
- mgl_fit_xyzas at Base 1.10.2.1
- mgl_fit_xyzas_ at Base 1.10.2.1
- mgl_fit_xyzas_d at Base 1.10.2.1
- mgl_fit_xyzs at Base 1.10.2.1
- mgl_fit_xyzs_ at Base 1.10.2.1
- mgl_fit_xyzs_d at Base 1.10.2.1
- mgl_fit_ys at Base 1.10.2.1
- mgl_fit_ys_ at Base 1.10.2.1
- mgl_fit_ys_d at Base 1.10.2.1
- mgl_flow_2d at Base 1.10.2.1
- mgl_flow_2d_ at Base 1.10.2.1
- mgl_flow_3d at Base 1.10.2.1
- mgl_flow_3d_ at Base 1.10.2.1
- mgl_flow_xy at Base 1.10.2.1
- mgl_flow_xy_ at Base 1.10.2.1
- mgl_flow_xyz at Base 1.10.2.1
- mgl_flow_xyz_ at Base 1.10.2.1
- mgl_flowp_2d at Base 1.10.2.1
- mgl_flowp_2d_ at Base 1.10.2.1
- mgl_flowp_3d at Base 1.10.2.1
- mgl_flowp_3d_ at Base 1.10.2.1
- mgl_flowp_xy at Base 1.10.2.1
- mgl_flowp_xy_ at Base 1.10.2.1
- mgl_flowp_xyz at Base 1.10.2.1
- mgl_flowp_xyz_ at Base 1.10.2.1
- mgl_flush at Base 1.10.2.1
- mgl_flush_ at Base 1.10.2.1
- mgl_fortran_func at Base 1.10.2.1
- mgl_fplot at Base 1.10.2.1
- mgl_fplot_ at Base 1.10.2.1
- mgl_fplot_xyz at Base 1.10.2.1
- mgl_fplot_xyz_ at Base 1.10.2.1
- mgl_fsurf at Base 1.10.2.1
- mgl_fsurf_ at Base 1.10.2.1
- mgl_fsurf_xyz at Base 1.10.2.1
- mgl_fsurf_xyz_ at Base 1.10.2.1
- mgl_gen_fnt at Base 1.10.2.1
- mgl_get_fit at Base 1.10.2.1
- mgl_get_height at Base 1.10.2.1
- mgl_get_height_ at Base 1.10.2.1
- mgl_get_last_mouse_pos at Base 1.10.2.1
- mgl_get_last_mouse_pos_ at Base 1.10.2.1
- mgl_get_num_frame at Base 1.10.2.1
- mgl_get_num_frame_ at Base 1.10.2.1
- mgl_get_rgb at Base 1.10.2.1
- mgl_get_rgb_ at Base 1.10.2.1
- mgl_get_rgba at Base 1.10.2.1
- mgl_get_rgba_ at Base 1.10.2.1
- mgl_get_width at Base 1.10.2.1
- mgl_get_width_ at Base 1.10.2.1
- mgl_grid3 at Base 1.10.2.1
- mgl_grid3_ at Base 1.10.2.1
- mgl_grid3_all at Base 1.10.2.1
- mgl_grid3_all_ at Base 1.10.2.1
- mgl_grid3_all_xyz at Base 1.10.2.1
- mgl_grid3_all_xyz_ at Base 1.10.2.1
- mgl_grid3_xyz at Base 1.10.2.1
- mgl_grid3_xyz_ at Base 1.10.2.1
- mgl_grid at Base 1.10.2.1
- mgl_grid_ at Base 1.10.2.1
- mgl_grid_xy at Base 1.10.2.1
- mgl_grid_xy_ at Base 1.10.2.1
- mgl_hist_x at Base 1.10.2.1
- mgl_hist_x_ at Base 1.10.2.1
- mgl_hist_xy at Base 1.10.2.1
- mgl_hist_xy_ at Base 1.10.2.1
- mgl_hist_xyz at Base 1.10.2.1
- mgl_hist_xyz_ at Base 1.10.2.1
- mgl_identity at Base 1.10.2.1
- mgl_identity_ at Base 1.10.2.1
- mgl_inplot at Base 1.10.2.1
- mgl_inplot_ at Base 1.10.2.1
- mgl_jacobian_2d at Base 1.10.2.1
- mgl_jacobian_2d_ at Base 1.10.2.1
- mgl_jacobian_3d at Base 1.10.2.1
- mgl_jacobian_3d_ at Base 1.10.2.1
- mgl_label at Base 1.10.2.1
- mgl_label_ at Base 1.10.2.1
- mgl_label_ext at Base 1.10.2.1
- mgl_label_ext_ at Base 1.10.2.1
- mgl_label_xy at Base 1.10.2.1
- mgl_label_xy_ at Base 1.10.2.1
- mgl_labelw_ext at Base 1.10.2.1
- mgl_labelw_xy at Base 1.10.2.1
- mgl_legend at Base 1.10.2.1
- mgl_legend_ at Base 1.10.2.1
- mgl_legend_xy at Base 1.10.2.1
- mgl_legend_xy_ at Base 1.10.2.1
- mgl_line at Base 1.10.2.1
- mgl_line_ at Base 1.10.2.1
- mgl_load_font at Base 1.10.2.1
- mgl_load_font_ at Base 1.10.2.1
- mgl_map at Base 1.10.2.1
- mgl_map_ at Base 1.10.2.1
- mgl_map_xy at Base 1.10.2.1
- mgl_map_xy_ at Base 1.10.2.1
- mgl_mark at Base 1.10.2.1
- mgl_mark_ at Base 1.10.2.1
- mgl_mark_xy at Base 1.10.2.1
- mgl_mark_xy_ at Base 1.10.2.1
- mgl_mark_xyz at Base 1.10.2.1
- mgl_mark_xyz_ at Base 1.10.2.1
- mgl_mark_y at Base 1.10.2.1
- mgl_mark_y_ at Base 1.10.2.1
- mgl_mesh at Base 1.10.2.1
- mgl_mesh_ at Base 1.10.2.1
- mgl_mesh_xy at Base 1.10.2.1
- mgl_mesh_xy_ at Base 1.10.2.1
- mgl_new_frame at Base 1.10.2.1
- mgl_new_frame_ at Base 1.10.2.1
- mgl_numg at Base 1.10.2.1
- mgl_parse at Base 1.10.2.1
- mgl_parse_ at Base 1.10.2.1
- mgl_parse_text at Base 1.10.2.1
- mgl_parse_text_ at Base 1.10.2.1
- mgl_parser_allow_setsize at Base 1.10.2.1
- mgl_parser_allow_setsize_ at Base 1.10.2.1
- mgl_parsew at Base 1.10.2.1
- mgl_parsew_text at Base 1.10.2.1
- mgl_pde_solve at Base 1.10.2.1
- mgl_pde_solve_ at Base 1.10.2.1
- mgl_perspective at Base 1.10.2.1
- mgl_perspective_ at Base 1.10.2.1
- mgl_pipe_2d at Base 1.10.2.1
- mgl_pipe_2d_ at Base 1.10.2.1
- mgl_pipe_3d at Base 1.10.2.1
- mgl_pipe_3d_ at Base 1.10.2.1
- mgl_pipe_xy at Base 1.10.2.1
- mgl_pipe_xy_ at Base 1.10.2.1
- mgl_pipe_xyz at Base 1.10.2.1
- mgl_pipe_xyz_ at Base 1.10.2.1
- mgl_plot at Base 1.10.2.1
- mgl_plot_2 at Base 1.10.2.1
- mgl_plot_2_ at Base 1.10.2.1
- mgl_plot_3 at Base 1.10.2.1
- mgl_plot_3_ at Base 1.10.2.1
- mgl_plot_ at Base 1.10.2.1
- mgl_plot_xy at Base 1.10.2.1
- mgl_plot_xy_ at Base 1.10.2.1
- mgl_plot_xyz at Base 1.10.2.1
- mgl_plot_xyz_ at Base 1.10.2.1
- mgl_puts at Base 1.10.2.1
- mgl_puts_ at Base 1.10.2.1
- mgl_puts_dir at Base 1.10.2.1
- mgl_puts_ext at Base 1.10.2.1
- mgl_puts_ext_ at Base 1.10.2.1
- mgl_puts_fit at Base 1.10.2.1
- mgl_puts_fit_ at Base 1.10.2.1
- mgl_putsw at Base 1.10.2.1
- mgl_putsw_dir at Base 1.10.2.1
- mgl_putsw_ext at Base 1.10.2.1
- mgl_qo2d_solve at Base 1.10.2.1
- mgl_qo2d_solve_ at Base 1.10.2.1
- mgl_radar at Base 1.10.2.1
- mgl_radar_ at Base 1.10.2.1
- mgl_ray_trace at Base 1.10.2.1
- mgl_ray_trace_ at Base 1.10.2.1
- mgl_region at Base 1.10.2.1
- mgl_region_ at Base 1.10.2.1
- mgl_region_xy at Base 1.10.2.1
- mgl_region_xy_ at Base 1.10.2.1
- mgl_relplot at Base 1.10.2.1
- mgl_relplot_ at Base 1.10.2.1
- mgl_reset_frames at Base 1.10.2.1
- mgl_reset_frames_ at Base 1.10.2.1
- mgl_restore_font at Base 1.10.2.1
- mgl_restore_font_ at Base 1.10.2.1
- mgl_restore_once at Base 1.10.2.1
- mgl_restore_once_ at Base 1.10.2.1
- mgl_rotate at Base 1.10.2.1
- mgl_rotate_ at Base 1.10.2.1
- mgl_rotate_vector at Base 1.10.2.1
- mgl_rotate_vector_ at Base 1.10.2.1
- mgl_set_alpha at Base 1.10.2.1
- mgl_set_alpha_ at Base 1.10.2.1
- mgl_set_alpha_default at Base 1.10.2.1
- mgl_set_alpha_default_ at Base 1.10.2.1
- mgl_set_ambbr at Base 1.10.2.1
- mgl_set_ambbr_ at Base 1.10.2.1
- mgl_set_arrow_size at Base 1.10.2.1
- mgl_set_arrow_size_ at Base 1.10.2.1
- mgl_set_auto at Base 1.10.2.1
- mgl_set_auto_ at Base 1.10.2.1
- mgl_set_axial_dir at Base 1.10.2.1
- mgl_set_axial_dir_ at Base 1.10.2.1
- mgl_set_axis at Base 1.10.2.1
- mgl_set_axis_2d at Base 1.10.2.1
- mgl_set_axis_2d_ at Base 1.10.2.1
- mgl_set_axis_3d at Base 1.10.2.1
- mgl_set_axis_3d_ at Base 1.10.2.1
- mgl_set_axis_ at Base 1.10.2.1
- mgl_set_bar_width at Base 1.10.2.1
- mgl_set_bar_width_ at Base 1.10.2.1
- mgl_set_base_line_width at Base 1.10.2.1
- mgl_set_base_line_width_ at Base 1.10.2.1
- mgl_set_caxis at Base 1.10.2.1
- mgl_set_caxis_ at Base 1.10.2.1
- mgl_set_coor at Base 1.10.2.1
- mgl_set_coor_ at Base 1.10.2.1
- mgl_set_crange at Base 1.10.2.1
- mgl_set_crange_ at Base 1.10.2.1
- mgl_set_ctt at Base 1.10.2.1
- mgl_set_ctt_ at Base 1.10.2.1
- mgl_set_cttw at Base 1.10.2.1
- mgl_set_cut at Base 1.10.2.1
- mgl_set_cut_ at Base 1.10.2.1
- mgl_set_cut_box at Base 1.10.2.1
- mgl_set_cut_box_ at Base 1.10.2.1
- mgl_set_cutoff at Base 1.10.2.1
- mgl_set_cutoff_ at Base 1.10.2.1
- mgl_set_def_param at Base 1.10.2.1
- mgl_set_def_param_ at Base 1.10.2.1
- mgl_set_draw_face at Base 1.10.2.1
- mgl_set_draw_face_ at Base 1.10.2.1
- mgl_set_fog at Base 1.10.2.1
- mgl_set_fog_ at Base 1.10.2.1
- mgl_set_font_def at Base 1.10.2.1
- mgl_set_font_def_ at Base 1.10.2.1
- mgl_set_font_size at Base 1.10.2.1
- mgl_set_font_size_ at Base 1.10.2.1
- mgl_set_func at Base 1.10.2.1
- mgl_set_func_ at Base 1.10.2.1
- mgl_set_func_ext at Base 1.10.2.1
- mgl_set_func_ext_ at Base 1.10.2.1
- mgl_set_legend_box at Base 1.10.2.1
- mgl_set_legend_box_ at Base 1.10.2.1
- mgl_set_light at Base 1.10.2.1
- mgl_set_light_ at Base 1.10.2.1
- mgl_set_light_n at Base 1.10.2.1
- mgl_set_light_n_ at Base 1.10.2.1
- mgl_set_mark_size at Base 1.10.2.1
- mgl_set_mark_size_ at Base 1.10.2.1
- mgl_set_meshnum at Base 1.10.2.1
- mgl_set_meshnum_ at Base 1.10.2.1
- mgl_set_origin at Base 1.10.2.1
- mgl_set_origin_ at Base 1.10.2.1
- mgl_set_pal_color at Base 1.10.2.1
- mgl_set_pal_color_ at Base 1.10.2.1
- mgl_set_pal_num at Base 1.10.2.1
- mgl_set_pal_num_ at Base 1.10.2.1
- mgl_set_palette at Base 1.10.2.1
- mgl_set_palette_ at Base 1.10.2.1
- mgl_set_plotfactor at Base 1.10.2.1
- mgl_set_plotfactor_ at Base 1.10.2.1
- mgl_set_rotated_text at Base 1.10.2.1
- mgl_set_rotated_text_ at Base 1.10.2.1
- mgl_set_scheme at Base 1.10.2.1
- mgl_set_scheme_ at Base 1.10.2.1
- mgl_set_show_mouse_pos at Base 1.10.2.1
- mgl_set_show_mouse_pos_ at Base 1.10.2.1
- mgl_set_size at Base 1.10.2.1
- mgl_set_size_ at Base 1.10.2.1
- mgl_set_subticks at Base 1.10.2.1
- mgl_set_subticks_ at Base 1.10.2.1
- mgl_set_ternary at Base 1.10.2.1
- mgl_set_ternary_ at Base 1.10.2.1
- mgl_set_tick_len at Base 1.10.2.1
- mgl_set_tick_len_ at Base 1.10.2.1
- mgl_set_tick_origin at Base 1.10.2.1
- mgl_set_tick_origin_ at Base 1.10.2.1
- mgl_set_tick_stl at Base 1.10.2.1
- mgl_set_tick_stl_ at Base 1.10.2.1
- mgl_set_ticks at Base 1.10.2.1
- mgl_set_ticks_ at Base 1.10.2.1
- mgl_set_ticks_dir at Base 1.10.2.1
- mgl_set_ticks_val at Base 1.10.2.1
- mgl_set_ticks_vals at Base 1.10.2.1
- mgl_set_transp at Base 1.10.2.1
- mgl_set_transp_ at Base 1.10.2.1
- mgl_set_transp_type at Base 1.10.2.1
- mgl_set_transp_type_ at Base 1.10.2.1
- mgl_set_xrange at Base 1.10.2.1
- mgl_set_xrange_ at Base 1.10.2.1
- mgl_set_xtt at Base 1.10.2.1
- mgl_set_xtt_ at Base 1.10.2.1
- mgl_set_xttw at Base 1.10.2.1
- mgl_set_yrange at Base 1.10.2.1
- mgl_set_yrange_ at Base 1.10.2.1
- mgl_set_ytt at Base 1.10.2.1
- mgl_set_ytt_ at Base 1.10.2.1
- mgl_set_yttw at Base 1.10.2.1
- mgl_set_zoom at Base 1.10.2.1
- mgl_set_zoom_ at Base 1.10.2.1
- mgl_set_zrange at Base 1.10.2.1
- mgl_set_zrange_ at Base 1.10.2.1
- mgl_set_ztt at Base 1.10.2.1
- mgl_set_ztt_ at Base 1.10.2.1
- mgl_set_zttw at Base 1.10.2.1
- mgl_show_image at Base 1.10.2.1
- mgl_show_image_ at Base 1.10.2.1
- mgl_simple_plot at Base 1.10.2.1
- mgl_simple_plot_ at Base 1.10.2.1
- mgl_sphere at Base 1.10.2.1
- mgl_sphere_ at Base 1.10.2.1
- mgl_start_gif at Base 1.10.2.1
- mgl_start_gif_ at Base 1.10.2.1
- mgl_stem at Base 1.10.2.1
- mgl_stem_2 at Base 1.10.2.1
- mgl_stem_2_ at Base 1.10.2.1
- mgl_stem_3 at Base 1.10.2.1
- mgl_stem_3_ at Base 1.10.2.1
- mgl_stem_ at Base 1.10.2.1
- mgl_stem_xy at Base 1.10.2.1
- mgl_stem_xy_ at Base 1.10.2.1
- mgl_stem_xyz at Base 1.10.2.1
- mgl_stem_xyz_ at Base 1.10.2.1
- mgl_step at Base 1.10.2.1
- mgl_step_2 at Base 1.10.2.1
- mgl_step_2_ at Base 1.10.2.1
- mgl_step_3 at Base 1.10.2.1
- mgl_step_3_ at Base 1.10.2.1
- mgl_step_ at Base 1.10.2.1
- mgl_step_xy at Base 1.10.2.1
- mgl_step_xy_ at Base 1.10.2.1
- mgl_step_xyz at Base 1.10.2.1
- mgl_step_xyz_ at Base 1.10.2.1
- mgl_stfa at Base 1.10.2.1
- mgl_stfa_ at Base 1.10.2.1
- mgl_stfa_xy at Base 1.10.2.1
- mgl_stfa_xy_ at Base 1.10.2.1
- mgl_stickplot at Base 1.10.2.1
- mgl_stickplot_ at Base 1.10.2.1
- mgl_subplot at Base 1.10.2.1
- mgl_subplot_ at Base 1.10.2.1
- mgl_subplot_d at Base 1.10.2.1
- mgl_subplot_d_ at Base 1.10.2.1
- mgl_surf3 at Base 1.10.2.1
- mgl_surf3_ at Base 1.10.2.1
- mgl_surf3_val at Base 1.10.2.1
- mgl_surf3_val_ at Base 1.10.2.1
- mgl_surf3_xyz at Base 1.10.2.1
- mgl_surf3_xyz_ at Base 1.10.2.1
- mgl_surf3_xyz_val at Base 1.10.2.1
- mgl_surf3_xyz_val_ at Base 1.10.2.1
- mgl_surf3a at Base 1.10.2.1
- mgl_surf3a_ at Base 1.10.2.1
- mgl_surf3a_val at Base 1.10.2.1
- mgl_surf3a_val_ at Base 1.10.2.1
- mgl_surf3a_xyz at Base 1.10.2.1
- mgl_surf3a_xyz_ at Base 1.10.2.1
- mgl_surf3a_xyz_val at Base 1.10.2.1
- mgl_surf3a_xyz_val_ at Base 1.10.2.1
- mgl_surf3c at Base 1.10.2.1
- mgl_surf3c_ at Base 1.10.2.1
- mgl_surf3c_val at Base 1.10.2.1
- mgl_surf3c_val_ at Base 1.10.2.1
- mgl_surf3c_xyz at Base 1.10.2.1
- mgl_surf3c_xyz_ at Base 1.10.2.1
- mgl_surf3c_xyz_val at Base 1.10.2.1
- mgl_surf3c_xyz_val_ at Base 1.10.2.1
- mgl_surf at Base 1.10.2.1
- mgl_surf_ at Base 1.10.2.1
- mgl_surf_xy at Base 1.10.2.1
- mgl_surf_xy_ at Base 1.10.2.1
- mgl_surfa at Base 1.10.2.1
- mgl_surfa_ at Base 1.10.2.1
- mgl_surfa_xy at Base 1.10.2.1
- mgl_surfa_xy_ at Base 1.10.2.1
- mgl_surfc at Base 1.10.2.1
- mgl_surfc_ at Base 1.10.2.1
- mgl_surfc_xy at Base 1.10.2.1
- mgl_surfc_xy_ at Base 1.10.2.1
- mgl_tens at Base 1.10.2.1
- mgl_tens_ at Base 1.10.2.1
- mgl_tens_xy at Base 1.10.2.1
- mgl_tens_xy_ at Base 1.10.2.1
- mgl_tens_xyz at Base 1.10.2.1
- mgl_tens_xyz_ at Base 1.10.2.1
- mgl_tex_symb at Base 1.10.2.1
- mgl_text at Base 1.10.2.1
- mgl_text_ at Base 1.10.2.1
- mgl_text_ext at Base 1.10.2.1
- mgl_text_ext_ at Base 1.10.2.1
- mgl_text_xy at Base 1.10.2.1
- mgl_text_xy_ at Base 1.10.2.1
- mgl_text_xyz at Base 1.10.2.1
- mgl_text_xyz_ at Base 1.10.2.1
- mgl_text_y at Base 1.10.2.1
- mgl_text_y_ at Base 1.10.2.1
- mgl_textmark at Base 1.10.2.1
- mgl_textmark_ at Base 1.10.2.1
- mgl_textmark_xyr at Base 1.10.2.1
- mgl_textmark_xyr_ at Base 1.10.2.1
- mgl_textmark_xyzr at Base 1.10.2.1
- mgl_textmark_xyzr_ at Base 1.10.2.1
- mgl_textmark_yr at Base 1.10.2.1
- mgl_textmark_yr_ at Base 1.10.2.1
- mgl_textmarkw at Base 1.10.2.1
- mgl_textmarkw_xyr at Base 1.10.2.1
- mgl_textmarkw_xyzr at Base 1.10.2.1
- mgl_textmarkw_yr at Base 1.10.2.1
- mgl_tile at Base 1.10.2.1
- mgl_tile_ at Base 1.10.2.1
- mgl_tile_xy at Base 1.10.2.1
- mgl_tile_xy_ at Base 1.10.2.1
- mgl_tiles at Base 1.10.2.1
- mgl_tiles_ at Base 1.10.2.1
- mgl_tiles_xy at Base 1.10.2.1
- mgl_tiles_xy_ at Base 1.10.2.1
- mgl_title at Base 1.10.2.1
- mgl_title_ at Base 1.10.2.1
- mgl_titlew at Base 1.10.2.1
- mgl_torus at Base 1.10.2.1
- mgl_torus_2 at Base 1.10.2.1
- mgl_torus_2_ at Base 1.10.2.1
- mgl_torus_ at Base 1.10.2.1
- mgl_traj_xy at Base 1.10.2.1
- mgl_traj_xy_ at Base 1.10.2.1
- mgl_traj_xyz at Base 1.10.2.1
- mgl_traj_xyz_ at Base 1.10.2.1
- mgl_transform at Base 1.10.2.1
- mgl_transform_ at Base 1.10.2.1
- mgl_transform_a at Base 1.10.2.1
- mgl_transform_a_ at Base 1.10.2.1
- mgl_triplot_xy at Base 1.10.2.1
- mgl_triplot_xy_ at Base 1.10.2.1
- mgl_triplot_xyz at Base 1.10.2.1
- mgl_triplot_xyz_ at Base 1.10.2.1
- mgl_triplot_xyzc at Base 1.10.2.1
- mgl_triplot_xyzc_ at Base 1.10.2.1
- mgl_tube at Base 1.10.2.1
- mgl_tube_ at Base 1.10.2.1
- mgl_tube_r at Base 1.10.2.1
- mgl_tube_r_ at Base 1.10.2.1
- mgl_tube_xy at Base 1.10.2.1
- mgl_tube_xy_ at Base 1.10.2.1
- mgl_tube_xyr at Base 1.10.2.1
- mgl_tube_xyr_ at Base 1.10.2.1
- mgl_tube_xyz at Base 1.10.2.1
- mgl_tube_xyz_ at Base 1.10.2.1
- mgl_tube_xyzr at Base 1.10.2.1
- mgl_tube_xyzr_ at Base 1.10.2.1
- mgl_tune_ticks at Base 1.10.2.1
- mgl_tune_ticks_ at Base 1.10.2.1
- mgl_update at Base 1.10.2.1
- mgl_vect_2d at Base 1.10.2.1
- mgl_vect_2d_ at Base 1.10.2.1
- mgl_vect_3d at Base 1.10.2.1
- mgl_vect_3d_ at Base 1.10.2.1
- mgl_vect_xy at Base 1.10.2.1
- mgl_vect_xy_ at Base 1.10.2.1
- mgl_vect_xyz at Base 1.10.2.1
- mgl_vect_xyz_ at Base 1.10.2.1
- mgl_vectc_2d at Base 1.10.2.1
- mgl_vectc_2d_ at Base 1.10.2.1
- mgl_vectc_3d at Base 1.10.2.1
- mgl_vectc_3d_ at Base 1.10.2.1
- mgl_vectc_xy at Base 1.10.2.1
- mgl_vectc_xy_ at Base 1.10.2.1
- mgl_vectc_xyz at Base 1.10.2.1
- mgl_vectc_xyz_ at Base 1.10.2.1
- mgl_vectl_2d at Base 1.10.2.1
- mgl_vectl_2d_ at Base 1.10.2.1
- mgl_vectl_3d at Base 1.10.2.1
- mgl_vectl_3d_ at Base 1.10.2.1
- mgl_vectl_xy at Base 1.10.2.1
- mgl_vectl_xy_ at Base 1.10.2.1
- mgl_vectl_xyz at Base 1.10.2.1
- mgl_vectl_xyz_ at Base 1.10.2.1
- mgl_write_bmp at Base 1.10.2.1
- mgl_write_bmp_ at Base 1.10.2.1
- mgl_write_eps at Base 1.10.2.1
- mgl_write_eps_ at Base 1.10.2.1
- mgl_write_frame at Base 1.10.2.1
- mgl_write_frame_ at Base 1.10.2.1
- mgl_write_gif at Base 1.10.2.1
- mgl_write_gif_ at Base 1.10.2.1
- mgl_write_idtf at Base 1.10.2.1
- mgl_write_idtf_ at Base 1.10.2.1
- mgl_write_jpg at Base 1.10.2.1
- mgl_write_jpg_ at Base 1.10.2.1
- mgl_write_png at Base 1.10.2.1
- mgl_write_png_ at Base 1.10.2.1
- mgl_write_png_solid at Base 1.10.2.1
- mgl_write_png_solid_ at Base 1.10.2.1
- mgl_write_svg at Base 1.10.2.1
- mgl_write_svg_ at Base 1.10.2.1
- mgls_base_cmd at Base 1.10.2.1
+ _Z10mglFindArgPKw at Base 1.11
+ _Z10mglFourierR7mglDataS0_PKc at Base 1.11
+ _Z10mgl_cos_ppPflll at Base 1.11
+ _Z10mgl_fit__fPK10gsl_vectorPvPS_ at Base 1.11
+ _Z10mgl_istruec at Base 1.11
+ _Z10mgl_okruglfi at Base 1.11
+ _Z10mgl_printfPvbPKcz at Base 1.11
+ _Z10mgl_strclsPc at Base 1.11
+ _Z10mgl_strdupPKc at Base 1.11
+ _Z10mgl_strlwrPc at Base 1.11
+ _Z10mgl_strposPKcPc at Base 1.11
+ _Z10mgl_strposPKcc at Base 1.11
+ _Z10mgl_wcsdupPKw at Base 1.11
+ _Z10mgl_wcslwrPw at Base 1.11
+ _Z10mglc_addtoPwlP6mglArgPi at Base 1.11
+ _Z10mglc_alphaPwlP6mglArgPi at Base 1.11
+ _Z10mglc_axialPwlP6mglArgPi at Base 1.11
+ _Z10mglc_caxisPwlP6mglArgPi at Base 1.11
+ _Z10mglc_chartPwlP6mglArgPi at Base 1.11
+ _Z10mglc_chdirPwlP6mglArgPi at Base 1.11
+ _Z10mglc_cloudPwlP6mglArgPi at Base 1.11
+ _Z10mglc_cont3PwlP6mglArgPi at Base 1.11
+ _Z10mglc_contaPwlP6mglArgPi at Base 1.11
+ _Z10mglc_contdPwlP6mglArgPi at Base 1.11
+ _Z10mglc_contfPwlP6mglArgPi at Base 1.11
+ _Z10mglc_contxPwlP6mglArgPi at Base 1.11
+ _Z10mglc_contyPwlP6mglArgPi at Base 1.11
+ _Z10mglc_contzPwlP6mglArgPi at Base 1.11
+ _Z10mglc_crustPwlP6mglArgPi at Base 1.11
+ _Z10mglc_ctickPwlP6mglArgPi at Base 1.11
+ _Z10mglc_curvePwlP6mglArgPi at Base 1.11
+ _Z10mglc_dens3PwlP6mglArgPi at Base 1.11
+ _Z10mglc_densaPwlP6mglArgPi at Base 1.11
+ _Z10mglc_densxPwlP6mglArgPi at Base 1.11
+ _Z10mglc_densyPwlP6mglArgPi at Base 1.11
+ _Z10mglc_denszPwlP6mglArgPi at Base 1.11
+ _Z10mglc_diff2PwlP6mglArgPi at Base 1.11
+ _Z10mglc_divtoPwlP6mglArgPi at Base 1.11
+ _Z10mglc_errorPwlP6mglArgPi at Base 1.11
+ _Z10mglc_facexPwlP6mglArgPi at Base 1.11
+ _Z10mglc_faceyPwlP6mglArgPi at Base 1.11
+ _Z10mglc_facezPwlP6mglArgPi at Base 1.11
+ _Z10mglc_fgetsPwlP6mglArgPi at Base 1.11
+ _Z10mglc_fplotPwlP6mglArgPi at Base 1.11
+ _Z10mglc_fsurfPwlP6mglArgPi at Base 1.11
+ _Z10mglc_grid2PwlP6mglArgPi at Base 1.11
+ _Z10mglc_grid3PwlP6mglArgPi at Base 1.11
+ _Z10mglc_gridaPwlP6mglArgPi at Base 1.11
+ _Z10mglc_idsetPwlP6mglArgPi at Base 1.11
+ _Z10mglc_labelPwlP6mglArgPi at Base 1.11
+ _Z10mglc_lightPwlP6mglArgPi at Base 1.11
+ _Z10mglc_multoPwlP6mglArgPi at Base 1.11
+ _Z10mglc_radarPwlP6mglArgPi at Base 1.11
+ _Z10mglc_stfadPwlP6mglArgPi at Base 1.11
+ _Z10mglc_subtoPwlP6mglArgPi at Base 1.11
+ _Z10mglc_surf3PwlP6mglArgPi at Base 1.11
+ _Z10mglc_surfaPwlP6mglArgPi at Base 1.11
+ _Z10mglc_surfcPwlP6mglArgPi at Base 1.11
+ _Z10mglc_tilesPwlP6mglArgPi at Base 1.11
+ _Z10mglc_titlePwlP6mglArgPi at Base 1.11
+ _Z10mglc_torusPwlP6mglArgPi at Base 1.11
+ _Z10mglc_tracePwlP6mglArgPi at Base 1.11
+ _Z10mglc_vectcPwlP6mglArgPi at Base 1.11
+ _Z10mglc_vectlPwlP6mglArgPi at Base 1.11
+ _Z10mglc_writePwlP6mglArgPi at Base 1.11
+ _Z10mglc_xtickPwlP6mglArgPi at Base 1.11
+ _Z10mglc_ytickPwlP6mglArgPi at Base 1.11
+ _Z10mglc_ztickPwlP6mglArgPi at Base 1.11
+ _Z10mgls_addtoP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_alphaP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_axialP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_caxisP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_chartP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_chdirP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_cloudP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_cont3P8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_contaP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_contdP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_contfP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_contxP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_contyP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_contzP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_crustP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_ctickP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_curveP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_dens3P8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_densaP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_densxP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_densyP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_denszP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_diff2P8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_divtoP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_errorP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_facexP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_faceyP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_facezP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_fgetsP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_fplotP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_fsurfP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_grid2P8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_grid3P8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_gridaP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_idsetP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_labelP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_lightP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_multoP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_radarP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_stfadP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_subtoP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_surf3P8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_surfaP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_surfcP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_tilesP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_titleP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_torusP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_traceP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_vectcP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_vectlP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_writeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_xtickP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_ytickP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_ztickP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10same_chainllPl at Base 1.11
+ _Z11mglDifrGridPSt7complexIdEiS0_iS1_S1_i at Base 1.11
+ _Z11mglJacobianRK7mglDataS1_ at Base 1.11
+ _Z11mglJacobianRK7mglDataS1_S1_ at Base 1.11
+ _Z11mgl_cmd_cmpPKvS0_ at Base 1.11
+ _Z11mgl_cmp_fltPKvS0_ at Base 1.11
+ _Z11mgl_col_difPhS_b at Base 1.11
+ _Z11mgl_fgetstrP8_IO_FILE at Base 1.11
+ _Z11mgl_fit__dfPK10gsl_vectorPvP10gsl_matrix at Base 1.11
+ _Z11mgl_init_raiPKfP6mgl_ap at Base 1.11
+ _Z11mgl_read_gzPv at Base 1.11
+ _Z11mgl_spline3PfS_iifRf at Base 1.11
+ _Z11mgl_spline5PfS_iifRf at Base 1.11
+ _Z11mgl_strtrimPc at Base 1.11
+ _Z11mgl_wcstrimPw at Base 1.11
+ _Z11mglc_adjustPwlP6mglArgPi at Base 1.11
+ _Z11mglc_aspectPwlP6mglArgPi at Base 1.11
+ _Z11mglc_contf3PwlP6mglArgPi at Base 1.11
+ _Z11mglc_contfaPwlP6mglArgPi at Base 1.11
+ _Z11mglc_contfxPwlP6mglArgPi at Base 1.11
+ _Z11mglc_contfyPwlP6mglArgPi at Base 1.11
+ _Z11mglc_contfzPwlP6mglArgPi at Base 1.11
+ _Z11mglc_cosfftPwlP6mglArgPi at Base 1.11
+ _Z11mglc_crangePwlP6mglArgPi at Base 1.11
+ _Z11mglc_cumsumPwlP6mglArgPi at Base 1.11
+ _Z11mglc_deletePwlP6mglArgPi at Base 1.11
+ _Z11mglc_exportPwlP6mglArgPi at Base 1.11
+ _Z11mglc_extendPwlP6mglArgPi at Base 1.11
+ _Z11mglc_hankelPwlP6mglArgPi at Base 1.11
+ _Z11mglc_importPwlP6mglArgPi at Base 1.11
+ _Z11mglc_inplotPwlP6mglArgPi at Base 1.11
+ _Z11mglc_insertPwlP6mglArgPi at Base 1.11
+ _Z11mglc_legendPwlP6mglArgPi at Base 1.11
+ _Z11mglc_mirrorPwlP6mglArgPi at Base 1.11
+ _Z11mglc_modifyPwlP6mglArgPi at Base 1.11
+ _Z11mglc_normslPwlP6mglArgPi at Base 1.11
+ _Z11mglc_originPwlP6mglArgPi at Base 1.11
+ _Z11mglc_rangesPwlP6mglArgPi at Base 1.11
+ _Z11mglc_regionPwlP6mglArgPi at Base 1.11
+ _Z11mglc_resizePwlP6mglArgPi at Base 1.11
+ _Z11mglc_rotatePwlP6mglArgPi at Base 1.11
+ _Z11mglc_sinfftPwlP6mglArgPi at Base 1.11
+ _Z11mglc_smoothPwlP6mglArgPi at Base 1.11
+ _Z11mglc_spherePwlP6mglArgPi at Base 1.11
+ _Z11mglc_surf3aPwlP6mglArgPi at Base 1.11
+ _Z11mglc_surf3cPwlP6mglArgPi at Base 1.11
+ _Z11mglc_tlabelPwlP6mglArgPi at Base 1.11
+ _Z11mglc_xlabelPwlP6mglArgPi at Base 1.11
+ _Z11mglc_xrangePwlP6mglArgPi at Base 1.11
+ _Z11mglc_ylabelPwlP6mglArgPi at Base 1.11
+ _Z11mglc_yrangePwlP6mglArgPi at Base 1.11
+ _Z11mglc_zlabelPwlP6mglArgPi at Base 1.11
+ _Z11mglc_zrangePwlP6mglArgPi at Base 1.11
+ _Z11mgls_adjustP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_aspectP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_contf3P8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_contfaP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_contfxP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_contfyP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_contfzP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_cosfftP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_crangeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_cumsumP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_deleteP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_exportP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_extendP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_hankelP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_importP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_inplotP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_insertP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_legendP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_mirrorP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_modifyP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_normslP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_originP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_rangesP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_regionP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_resizeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_rotateP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_sinfftP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_smoothP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_sphereP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_suffixPKwP7mglDataPf at Base 1.11
+ _Z11mgls_surf3aP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_surf3cP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_tlabelP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_xlabelP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_xrangeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_ylabelP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_yrangeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_zlabelP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_zrangeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11wcstrim_mglPw at Base 1.11
+ _Z12mglApplyOperPKwS0_P8mglParsePFdddE at Base 1.11
+ _Z12mglDifrAxialPSt7complexIdEiS0_iS1_S1_id at Base 1.11
+ _Z12mglTransformRK7mglDataS1_PKc at Base 1.11
+ _Z12mgl_add_fileRlS_S_RPfR7mglDatab at Base 1.11
+ _Z12mgl_add_quadPPfS_ at Base 1.11
+ _Z12mgl_bmp_savePKciiPPh at Base 1.11
+ _Z12mgl_bps_savePKciiPPh at Base 1.11
+ _Z12mgl_fft_freqPdj at Base 1.11
+ _Z12mgl_fit__fdfPK10gsl_vectorPvPS_P10gsl_matrix at Base 1.11
+ _Z12mgl_fit_baseP10mglFitDataPf at Base 1.11
+ _Z12mgl_get_dashtf at Base 1.11
+ _Z12mgl_get_nextllPlS_Pf at Base 1.11
+ _Z12mgl_png_savePKciiPPh at Base 1.11
+ _Z12mgl_str_copyPKc at Base 1.11
+ _Z12mgl_wcstombsPcPKwi at Base 1.11
+ _Z12mglc_ambientPwlP6mglArgPi at Base 1.11
+ _Z12mglc_boxplotPwlP6mglArgPi at Base 1.11
+ _Z12mglc_combinePwlP6mglArgPi at Base 1.11
+ _Z12mglc_envelopPwlP6mglArgPi at Base 1.11
+ _Z12mglc_meshnumPwlP6mglArgPi at Base 1.11
+ _Z12mglc_palettePwlP6mglArgPi at Base 1.11
+ _Z12mglc_putsfitPwlP6mglArgPi at Base 1.11
+ _Z12mglc_readallPwlP6mglArgPi at Base 1.11
+ _Z12mglc_readhdfPwlP6mglArgPi at Base 1.11
+ _Z12mglc_readmatPwlP6mglArgPi at Base 1.11
+ _Z12mglc_savehdfPwlP6mglArgPi at Base 1.11
+ _Z12mglc_setsizePwlP6mglArgPi at Base 1.11
+ _Z12mglc_squeezePwlP6mglArgPi at Base 1.11
+ _Z12mglc_subdataPwlP6mglArgPi at Base 1.11
+ _Z12mglc_subplotPwlP6mglArgPi at Base 1.11
+ _Z12mglc_ternaryPwlP6mglArgPi at Base 1.11
+ _Z12mglc_ticklenPwlP6mglArgPi at Base 1.11
+ _Z12mglc_tickstlPwlP6mglArgPi at Base 1.11
+ _Z12mglc_tricontPwlP6mglArgPi at Base 1.11
+ _Z12mglc_triplotPwlP6mglArgPi at Base 1.11
+ _Z12mgls_ambientP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_boxplotP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_combineP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_envelopP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_meshnumP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_paletteP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_putsfitP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_readallP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_readhdfP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_readmatP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_savehdfP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_setsizeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_squeezeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_subdataP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_subplotP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_ternaryP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_ticklenP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_tickstlP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_tricontP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_triplotP8mglGraphlP6mglArgPi at Base 1.11
+ _Z13_mgl_tick_extffPwRf at Base 1.11
+ _Z13mglFindInTextPcPKc at Base 1.11
+ _Z13mglFindInTextPwPKc at Base 1.11
+ _Z13mglTransformARK7mglDataS1_PKc at Base 1.11
+ _Z13mgl_gauss_rndv at Base 1.11
+ _Z13mgl_jpeg_savePKciiPPh at Base 1.11
+ _Z13mgl_next_dataPKci at Base 1.11
+ _Z13mgl_pnga_savePKciiPPh at Base 1.11
+ _Z13mgl_puts_dir_PmPfS0_S0_S0_S0_S0_PKcS0_i at Base 1.11
+ _Z13mglc_alphadefPwlP6mglArgPi at Base 1.11
+ _Z13mglc_axialdirPwlP6mglArgPi at Base 1.11
+ _Z13mglc_barwidthPwlP6mglArgPi at Base 1.11
+ _Z13mglc_colorbarPwlP6mglArgPi at Base 1.11
+ _Z13mglc_evaluatePwlP6mglArgPi at Base 1.11
+ _Z13mglc_jacobianPwlP6mglArgPi at Base 1.11
+ _Z13mglc_loadfontPwlP6mglArgPi at Base 1.11
+ _Z13mglc_marksizePwlP6mglArgPi at Base 1.11
+ _Z13mglc_momentumPwlP6mglArgPi at Base 1.11
+ _Z13mglc_quadplotPwlP6mglArgPi at Base 1.11
+ _Z13mglc_textmarkPwlP6mglArgPi at Base 1.11
+ _Z13mgls_alphadefP8mglGraphlP6mglArgPi at Base 1.11
+ _Z13mgls_axialdirP8mglGraphlP6mglArgPi at Base 1.11
+ _Z13mgls_barwidthP8mglGraphlP6mglArgPi at Base 1.11
+ _Z13mgls_colorbarP8mglGraphlP6mglArgPi at Base 1.11
+ _Z13mgls_evaluateP8mglGraphlP6mglArgPi at Base 1.11
+ _Z13mgls_jacobianP8mglGraphlP6mglArgPi at Base 1.11
+ _Z13mgls_loadfontP8mglGraphlP6mglArgPi at Base 1.11
+ _Z13mgls_marksizeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z13mgls_momentumP8mglGraphlP6mglArgPi at Base 1.11
+ _Z13mgls_quadplotP8mglGraphlP6mglArgPi at Base 1.11
+ _Z13mgls_textmarkP8mglGraphlP6mglArgPi at Base 1.11
+ _Z14_mgl_tick_textffffiPw at Base 1.11
+ _Z14check_for_namePKw at Base 1.11
+ _Z14mglFormulaCalcPKwP8mglParse at Base 1.11
+ _Z14mgl_draw_classP8mglGraphPv at Base 1.11
+ _Z14mgl_start_gif_Pm at Base 1.11
+ _Z14mglc_addlegendPwlP6mglArgPi at Base 1.11
+ _Z14mglc_arrowsizePwlP6mglArgPi at Base 1.11
+ _Z14mglc_integratePwlP6mglArgPi at Base 1.11
+ _Z14mglc_legendboxPwlP6mglArgPi at Base 1.11
+ _Z14mglc_linewidthPwlP6mglArgPi at Base 1.11
+ _Z14mglc_rearrangePwlP6mglArgPi at Base 1.11
+ _Z14mglc_stickplotPwlP6mglArgPi at Base 1.11
+ _Z14mglc_transformPwlP6mglArgPi at Base 1.11
+ _Z14mglc_transposePwlP6mglArgPi at Base 1.11
+ _Z14mgls_addlegendP8mglGraphlP6mglArgPi at Base 1.11
+ _Z14mgls_arrowsizeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z14mgls_integrateP8mglGraphlP6mglArgPi at Base 1.11
+ _Z14mgls_legendboxP8mglGraphlP6mglArgPi at Base 1.11
+ _Z14mgls_linewidthP8mglGraphlP6mglArgPi at Base 1.11
+ _Z14mgls_rearrangeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z14mgls_stickplotP8mglGraphlP6mglArgPi at Base 1.11
+ _Z14mgls_transformP8mglGraphlP6mglArgPi at Base 1.11
+ _Z14mgls_transposeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z15mgl_error_printiiP8mglGraph at Base 1.11
+ _Z15mgl_insert_triglllPPl at Base 1.11
+ _Z15mglc_columnplotPwlP6mglArgPi at Base 1.11
+ _Z15mglc_fillsamplePwlP6mglArgPi at Base 1.11
+ _Z15mglc_plotfactorPwlP6mglArgPi at Base 1.11
+ _Z15mglc_rotatetextPwlP6mglArgPi at Base 1.11
+ _Z15mglc_transformaPwlP6mglArgPi at Base 1.11
+ _Z15mglc_transptypePwlP6mglArgPi at Base 1.11
+ _Z15mgls_columnplotP8mglGraphlP6mglArgPi at Base 1.11
+ _Z15mgls_fillsampleP8mglGraphlP6mglArgPi at Base 1.11
+ _Z15mgls_plotfactorP8mglGraphlP6mglArgPi at Base 1.11
+ _Z15mgls_rotatetextP8mglGraphlP6mglArgPi at Base 1.11
+ _Z15mgls_transformaP8mglGraphlP6mglArgPi at Base 1.11
+ _Z15mgls_transptypeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z16mgl_compare_primPKvS0_ at Base 1.11
+ _Z16mgl_data_export_PlPKcS1_PfS2_Piii at Base 1.11
+ _Z16mgl_data_import_PlPKcS1_PfS2_ii at Base 1.11
+ _Z16mgl_reload_classiPv at Base 1.11
+ _Z16mgl_tex_symb_cmpPKvS0_ at Base 1.11
+ _Z16mglc_clearlegendPwlP6mglArgPi at Base 1.11
+ _Z16mglc_legendmarksPwlP6mglArgPi at Base 1.11
+ _Z16mglc_perspectivePwlP6mglArgPi at Base 1.11
+ _Z16mglc_transparentPwlP6mglArgPi at Base 1.11
+ _Z16mgls_clearlegendP8mglGraphlP6mglArgPi at Base 1.11
+ _Z16mgls_legendmarksP8mglGraphlP6mglArgPi at Base 1.11
+ _Z16mgls_perspectiveP8mglGraphlP6mglArgPi at Base 1.11
+ _Z16mgls_transparentP8mglGraphlP6mglArgPi at Base 1.11
+ _Z17mgl_create_schemePKcRl at Base 1.11
+ _Z18mgl_set_ticks_dir_PmPcPfPiS1_ at Base 1.11
+ _Z3adddd at Base 1.11
+ _Z3argdd at Base 1.11
+ _Z3ceqdd at Base 1.11
+ _Z3cgtdd at Base 1.11
+ _Z3cltdd at Base 1.11
+ _Z3cordd at Base 1.11
+ _Z3divdd at Base 1.11
+ _Z3i2si at Base 1.11
+ _Z3ipwdd at Base 1.11
+ _Z3lgcSt7complexIdE at Base 1.11
+ _Z3llgdd at Base 1.11
+ _Z3mgmdd at Base 1.11
+ _Z3mgpdd at Base 1.11
+ _Z3muldd at Base 1.11
+ _Z3sgnd at Base 1.11
+ _Z3stpd at Base 1.11
+ _Z3subdd at Base 1.11
+ _Z4GetXRK7mglDataiii at Base 1.11
+ _Z4GetYRK7mglDataiii at Base 1.11
+ _Z4GetZRK7mglDataiii at Base 1.11
+ _Z4abscSt7complexIdE at Base 1.11
+ _Z4addcSt7complexIdES0_ at Base 1.11
+ _Z4canddd at Base 1.11
+ _Z4ci_dd at Base 1.11
+ _Z4coscSt7complexIdE at Base 1.11
+ _Z4div1dd at Base 1.11
+ _Z4div2dd at Base 1.11
+ _Z4divcSt7complexIdES0_ at Base 1.11
+ _Z4e1_dd at Base 1.11
+ _Z4e2_dd at Base 1.11
+ _Z4ei_dd at Base 1.11
+ _Z4expcSt7complexIdE at Base 1.11
+ _Z4expiSt7complexIdE at Base 1.11
+ _Z4expid at Base 1.11
+ _Z4ipw1dd at Base 1.11
+ _Z4ipwcSt7complexIdES0_ at Base 1.11
+ _Z4llg1dd at Base 1.11
+ _Z4llg2dd at Base 1.11
+ _Z4llgcSt7complexIdES0_ at Base 1.11
+ _Z4logcSt7complexIdE at Base 1.11
+ _Z4mgz1d at Base 1.11
+ _Z4mgz2dd at Base 1.11
+ _Z4mul1dd at Base 1.11
+ _Z4mul2dd at Base 1.11
+ _Z4mulcSt7complexIdES0_ at Base 1.11
+ _Z4pow1dd at Base 1.11
+ _Z4pow2dd at Base 1.11
+ _Z4powcSt7complexIdES0_ at Base 1.11
+ _Z4si_dd at Base 1.11
+ _Z4sincSt7complexIdE at Base 1.11
+ _Z4subcSt7complexIdES0_ at Base 1.11
+ _Z4tancSt7complexIdE at Base 1.11
+ _Z5acoscSt7complexIdE at Base 1.11
+ _Z5asincSt7complexIdE at Base 1.11
+ _Z5atancSt7complexIdE at Base 1.11
+ _Z5cos_dd at Base 1.11
+ _Z5coshcSt7complexIdE at Base 1.11
+ _Z5erf_dd at Base 1.11
+ _Z5gslAid at Base 1.11
+ _Z5gslBid at Base 1.11
+ _Z5log_dd at Base 1.11
+ _Z5sinhcSt7complexIdE at Base 1.11
+ _Z5sqrtcSt7complexIdE at Base 1.11
+ _Z5tan_dd at Base 1.11
+ _Z5tanhcSt7complexIdE at Base 1.11
+ _Z6acos_dd at Base 1.11
+ _Z6acoshcSt7complexIdE at Base 1.11
+ _Z6asin_dd at Base 1.11
+ _Z6asinhcSt7complexIdE at Base 1.11
+ _Z6atan_dd at Base 1.11
+ _Z6atanhcSt7complexIdE at Base 1.11
+ _Z6exp3_dd at Base 1.11
+ _Z6gslE_dd at Base 1.11
+ _Z6gslK_dd at Base 1.11
+ _Z6mglPDEPKcRK7mglDataS3_8mglPointS4_ff at Base 1.11
+ _Z6mglRayPKc8mglPointS1_ff at Base 1.11
+ _Z6sinc_dd at Base 1.11
+ _Z6sqrt_dd at Base 1.11
+ _Z6tanh_dd at Base 1.11
+ _Z7acosh_dd at Base 1.11
+ _Z7asinh_dd at Base 1.11
+ _Z7atanh_dd at Base 1.11
+ _Z7dilog_dd at Base 1.11
+ _Z7gamma_dd at Base 1.11
+ _Z7gslAi_dd at Base 1.11
+ _Z7gslBi_dd at Base 1.11
+ _Z7gslEllEdd at Base 1.11
+ _Z7gslEllFdd at Base 1.11
+ _Z7gslInuDdd at Base 1.11
+ _Z7gslJnuDdd at Base 1.11
+ _Z7gslKnuDdd at Base 1.11
+ _Z7gslLegPdd at Base 1.11
+ _Z7gslYnuDdd at Base 1.11
+ _Z7log10_dd at Base 1.11
+ _Z7mglAF2dPKcRK7mglDataS3_S3_ffPS1_S4_b at Base 1.11
+ _Z7mglQO2dPKcRK7mglDataS3_S3_ffPS1_S4_b at Base 1.11
+ _Z7mglSTFARK7mglDataS1_ic at Base 1.11
+ _Z7mgl_getllPfff at Base 1.11
+ _Z7mgl_rndv at Base 1.11
+ _Z8gslEllE1dd at Base 1.11
+ _Z8gslEllE2dd at Base 1.11
+ _Z8gslEllEcd at Base 1.11
+ _Z8gslEllF1dd at Base 1.11
+ _Z8gslEllF2dd at Base 1.11
+ _Z8gslEllFcd at Base 1.11
+ _Z8mglCheckPci at Base 1.11
+ _Z8mglCheckPwi at Base 1.11
+ _Z8mglFillPiPKfiPf at Base 1.11
+ _Z8mglFillPiiPKfiiPA4_f at Base 1.11
+ _Z8mgl_distPfS_ at Base 1.11
+ _Z8mgl_infoPKcz at Base 1.11
+ _Z8mgl_ipowdi at Base 1.11
+ _Z8mgl_multPfS_S_ at Base 1.11
+ _Z8mgl_omodPffii at Base 1.11
+ _Z8mgl_srndl at Base 1.11
+ _Z8mgl_testPKcz at Base 1.11
+ _Z8mglc_boxPwlP6mglArgPi at Base 1.11
+ _Z8mglc_clfPwlP6mglArgPi at Base 1.11
+ _Z8mglc_cutPwlP6mglArgPi at Base 1.11
+ _Z8mglc_dewPwlP6mglArgPi at Base 1.11
+ _Z8mglc_fitPwlP6mglArgPi at Base 1.11
+ _Z8mglc_fogPwlP6mglArgPi at Base 1.11
+ _Z8mglc_mapPwlP6mglArgPi at Base 1.11
+ _Z8mglc_maxPwlP6mglArgPi at Base 1.11
+ _Z8mglc_minPwlP6mglArgPi at Base 1.11
+ _Z8mglc_newPwlP6mglArgPi at Base 1.11
+ _Z8mglc_pdePwlP6mglArgPi at Base 1.11
+ _Z8mglc_putPwlP6mglArgPi at Base 1.11
+ _Z8mglc_rayPwlP6mglArgPi at Base 1.11
+ _Z8mglc_sewPwlP6mglArgPi at Base 1.11
+ _Z8mglc_sumPwlP6mglArgPi at Base 1.11
+ _Z8mglc_varPwlP6mglArgPi at Base 1.11
+ _Z8mgls_boxP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_clfP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_cutP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_dewP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_fitP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_fogP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_mapP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_maxP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_minP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_newP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_pdeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_putP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_rayP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_sewP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_sumP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_varP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9get_sliceR10_mgl_sliceRK7mglDataS3_S3_S3_cl at Base 1.11
+ _Z9mgl_crustlPfPPlf at Base 1.11
+ _Z9mgl_ipowcSt7complexIdEi at Base 1.11
+ _Z9mgl_islogff at Base 1.11
+ _Z9mglc_af2dPwlP6mglArgPi at Base 1.11
+ _Z9mglc_areaPwlP6mglArgPi at Base 1.11
+ _Z9mglc_axisPwlP6mglArgPi at Base 1.11
+ _Z9mglc_ballPwlP6mglArgPi at Base 1.11
+ _Z9mglc_barhPwlP6mglArgPi at Base 1.11
+ _Z9mglc_barsPwlP6mglArgPi at Base 1.11
+ _Z9mglc_beamPwlP6mglArgPi at Base 1.11
+ _Z9mglc_beltPwlP6mglArgPi at Base 1.11
+ _Z9mglc_boxsPwlP6mglArgPi at Base 1.11
+ _Z9mglc_conePwlP6mglArgPi at Base 1.11
+ _Z9mglc_contPwlP6mglArgPi at Base 1.11
+ _Z9mglc_copyPwlP6mglArgPi at Base 1.11
+ _Z9mglc_cropPwlP6mglArgPi at Base 1.11
+ _Z9mglc_densPwlP6mglArgPi at Base 1.11
+ _Z9mglc_diffPwlP6mglArgPi at Base 1.11
+ _Z9mglc_dotsPwlP6mglArgPi at Base 1.11
+ _Z9mglc_dropPwlP6mglArgPi at Base 1.11
+ _Z9mglc_fallPwlP6mglArgPi at Base 1.11
+ _Z9mglc_fillPwlP6mglArgPi at Base 1.11
+ _Z9mglc_fitsPwlP6mglArgPi at Base 1.11
+ _Z9mglc_flowPwlP6mglArgPi at Base 1.11
+ _Z9mglc_fontPwlP6mglArgPi at Base 1.11
+ _Z9mglc_gradPwlP6mglArgPi at Base 1.11
+ _Z9mglc_gridPwlP6mglArgPi at Base 1.11
+ _Z9mglc_histPwlP6mglArgPi at Base 1.11
+ _Z9mglc_infoPwlP6mglArgPi at Base 1.11
+ _Z9mglc_linePwlP6mglArgPi at Base 1.11
+ _Z9mglc_markPwlP6mglArgPi at Base 1.11
+ _Z9mglc_meshPwlP6mglArgPi at Base 1.11
+ _Z9mglc_normPwlP6mglArgPi at Base 1.11
+ _Z9mglc_pipePwlP6mglArgPi at Base 1.11
+ _Z9mglc_plotPwlP6mglArgPi at Base 1.11
+ _Z9mglc_qo2dPwlP6mglArgPi at Base 1.11
+ _Z9mglc_readPwlP6mglArgPi at Base 1.11
+ _Z9mglc_rectPwlP6mglArgPi at Base 1.11
+ _Z9mglc_rollPwlP6mglArgPi at Base 1.11
+ _Z9mglc_savePwlP6mglArgPi at Base 1.11
+ _Z9mglc_stemPwlP6mglArgPi at Base 1.11
+ _Z9mglc_stepPwlP6mglArgPi at Base 1.11
+ _Z9mglc_stfaPwlP6mglArgPi at Base 1.11
+ _Z9mglc_surfPwlP6mglArgPi at Base 1.11
+ _Z9mglc_swapPwlP6mglArgPi at Base 1.11
+ _Z9mglc_tensPwlP6mglArgPi at Base 1.11
+ _Z9mglc_textPwlP6mglArgPi at Base 1.11
+ _Z9mglc_tilePwlP6mglArgPi at Base 1.11
+ _Z9mglc_trajPwlP6mglArgPi at Base 1.11
+ _Z9mglc_tubePwlP6mglArgPi at Base 1.11
+ _Z9mglc_vectPwlP6mglArgPi at Base 1.11
+ _Z9mglc_zoomPwlP6mglArgPi at Base 1.11
+ _Z9mgls_af2dP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_areaP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_axisP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_ballP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_barhP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_barsP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_beamP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_beltP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_boxsP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_coneP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_contP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_copyP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_cropP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_densP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_diffP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_dotsP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_dropP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_fallP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_fillP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_fitsP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_flowP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_fontP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_gradP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_gridP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_histP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_infoP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_lineP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_markP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_meshP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_normP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_pipeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_plotP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_qo2dP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_readP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_rectP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_rollP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_saveP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_stemP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_stepP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_stfaP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_surfP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_swapP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_tensP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_textP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_tileP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_trajP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_tubeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_vectP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_zoomP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9normal_1dRK7mglDatafPfb at Base 1.11
+ _Z9normal_3dRK7mglDatafffPfS2_S2_b at Base 1.11
+ _ZN10_mgl_sliceD1Ev at Base 1.11
+ _ZN10mglFormula5ErrorE at Base 1.11
+ _ZN10mglFormulaC1EPKc at Base 1.11
+ _ZN10mglFormulaC2EPKc at Base 1.11
+ _ZN10mglFormulaD1Ev at Base 1.11
+ _ZN10mglFormulaD2Ev at Base 1.11
+ _ZN10mglGraphAB10FindOptOrgEPfS0_S0_ at Base 1.11
+ _ZN10mglGraphAB10LightScaleEv at Base 1.11
+ _ZN10mglGraphAB10PutDrawRegEiiiPS_ at Base 1.11
+ _ZN10mglGraphAB10SetDrawRegEiii at Base 1.11
+ _ZN10mglGraphAB10ToggleZoomEv at Base 1.11
+ _ZN10mglGraphAB10arrow_plotEPfS0_c at Base 1.11
+ _ZN10mglGraphAB10axial_plotElPfPllb at Base 1.11
+ _ZN10mglGraphAB10cloud_plotElllPfS0_f at Base 1.11
+ _ZN10mglGraphAB10glyph_fillEfffiPKsPf at Base 1.11
+ _ZN10mglGraphAB10glyph_lineEfffPfb at Base 1.11
+ _ZN10mglGraphAB10glyph_wireEfffiPKsPf at Base 1.11
+ _ZN10mglGraphAB10lines_plotElPfS0_Pbbb at Base 1.11
+ _ZN10mglGraphAB10quads_plotElPfS0_Pb at Base 1.11
+ _ZN10mglGraphAB10quads_plotElPllPfS1_Pbbb at Base 1.11
+ _ZN10mglGraphAB10surf3_plotEllPlS0_S0_S0_S0_PfS1_S1_S1_b at Base 1.11
+ _ZN10mglGraphAB10trigs_plotElPllPfS1_Pbbb at Base 1.11
+ _ZN10mglGraphAB10vects_plotElPfS0_Pbb at Base 1.11
+ _ZN10mglGraphAB11GetRGBLinesERlS0_RPhb at Base 1.11
+ _ZN10mglGraphAB11PerspectiveEf at Base 1.11
+ _ZN10mglGraphAB11SetPosScaleEffff at Base 1.11
+ _ZN10mglGraphAB11ToggleAlphaEv at Base 1.11
+ _ZN10mglGraphAB11ToggleLightEv at Base 1.11
+ _ZN10mglGraphAB11quad_plot_aEPfS0_S0_S0_fffff at Base 1.11
+ _ZN10mglGraphAB11quad_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN10mglGraphAB11trig_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN10mglGraphAB12ToggleRotateEv at Base 1.11
+ _ZN10mglGraphAB13SetFontSizePTEfi at Base 1.11
+ _ZN10mglGraphAB3PenE8mglColorcf at Base 1.11
+ _ZN10mglGraphAB3PopEv at Base 1.11
+ _ZN10mglGraphAB4BallEfff8mglColorf at Base 1.11
+ _ZN10mglGraphAB4MarkEfffc at Base 1.11
+ _ZN10mglGraphAB4PushEv at Base 1.11
+ _ZN10mglGraphAB4ballEPfS0_ at Base 1.11
+ _ZN10mglGraphAB5AlphaEb at Base 1.11
+ _ZN10mglGraphAB5GlyphEfffilc at Base 1.11
+ _ZN10mglGraphAB5LightEb at Base 1.11
+ _ZN10mglGraphAB5LightEi8mglPoint8mglColorfb at Base 1.11
+ _ZN10mglGraphAB5LightEib at Base 1.11
+ _ZN10mglGraphAB5PutswE8mglPointPKwPKcfcf at Base 1.11
+ _ZN10mglGraphAB5PutswE8mglPointS0_PKwcf at Base 1.11
+ _ZN10mglGraphAB6AdjustEv at Base 1.11
+ _ZN10mglGraphAB6AspectEfff at Base 1.11
+ _ZN10mglGraphAB6InPlotEffffb at Base 1.11
+ _ZN10mglGraphAB6LegendEiPPwPPcffPKcff at Base 1.11
+ _ZN10mglGraphAB6ReLoadEb at Base 1.11
+ _ZN10mglGraphAB6UpdateEv at Base 1.11
+ _ZN10mglGraphAB6WindowEiPPcPFiP8mglGraphPvEPKcS4_PFviS4_Eb at Base 1.11
+ _ZN10mglGraphAB6WindowEiPPcPKcP7mglDrawb at Base 1.11
+ _ZN10mglGraphAB7CalcScrE8mglPoint at Base 1.11
+ _ZN10mglGraphAB7CalcScrE8mglPointPiS1_ at Base 1.11
+ _ZN10mglGraphAB7CalcXYZEii at Base 1.11
+ _ZN10mglGraphAB7GetBitsEv at Base 1.11
+ _ZN10mglGraphAB7GetOrgXEc at Base 1.11
+ _ZN10mglGraphAB7GetOrgYEc at Base 1.11
+ _ZN10mglGraphAB7GetOrgZEc at Base 1.11
+ _ZN10mglGraphAB7GetRGBAEv at Base 1.11
+ _ZN10mglGraphAB7RotateNEffff at Base 1.11
+ _ZN10mglGraphAB7SetSizeEii at Base 1.11
+ _ZN10mglGraphAB7col2intE8mglColorfPh at Base 1.11
+ _ZN10mglGraphAB7col2intEPfS0_Ph at Base 1.11
+ _ZN10mglGraphAB7combineEPhS0_ at Base 1.11
+ _ZN10mglGraphAB8DefColorE8mglColorf at Base 1.11
+ _ZN10mglGraphAB8DrawTickEPfb at Base 1.11
+ _ZN10mglGraphAB8GetRatioEv at Base 1.11
+ _ZN10mglGraphAB8NewFrameEv at Base 1.11
+ _ZN10mglGraphAB8ToggleNoEv at Base 1.11
+ _ZN10mglGraphAB8WriteSVGEPKcS1_ at Base 1.11
+ _ZN10mglGraphAB8colorbarERK7mglDataPK8mglColoriffff at Base 1.11
+ _ZN10mglGraphAB8pnt_plotEllfPh at Base 1.11
+ _ZN10mglGraphAB9AnimationEv at Base 1.11
+ _ZN10mglGraphAB9NextFrameEv at Base 1.11
+ _ZN10mglGraphAB9NormScaleEPfl at Base 1.11
+ _ZN10mglGraphAB9PostScaleEPfl at Base 1.11
+ _ZN10mglGraphAB9PrevFrameEv at Base 1.11
+ _ZN10mglGraphAB9StickPlotEiiff at Base 1.11
+ _ZN10mglGraphAB9boxs_plotEllPfP8mglColorPbfb at Base 1.11
+ _ZN10mglGraphAB9curv_plotElPfPb at Base 1.11
+ _ZN10mglGraphAB9curv_plotElPfPbPl at Base 1.11
+ _ZN10mglGraphAB9curv_plotElPfS0_Pb at Base 1.11
+ _ZN10mglGraphAB9line_plotEPfS0_S0_S0_b at Base 1.11
+ _ZN10mglGraphAB9mark_plotEPfc at Base 1.11
+ _ZN10mglGraphAB9mesh_plotEllPfS0_Pbi at Base 1.11
+ _ZN10mglGraphAB9quad_plotEPfS0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN10mglGraphAB9surf_plotEllPfS0_Pb at Base 1.11
+ _ZN10mglGraphAB9trig_plotEPfS0_S0_S0_S0_S0_ at Base 1.11
+ _ZN10mglGraphAB9wire_plotEllPfS0_Pb at Base 1.11
+ _ZN10mglGraphABC1Eii at Base 1.11
+ _ZN10mglGraphABC2Eii at Base 1.11
+ _ZN10mglGraphABD0Ev at Base 1.11
+ _ZN10mglGraphABD1Ev at Base 1.11
+ _ZN10mglGraphABD2Ev at Base 1.11
+ _ZN10mglGraphGL10LightScaleEv at Base 1.11
+ _ZN10mglGraphGL11GetRGBLinesERlS0_RPhb at Base 1.11
+ _ZN10mglGraphGL11quad_plot_aEPfS0_S0_S0_fffff at Base 1.11
+ _ZN10mglGraphGL11quad_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN10mglGraphGL11trig_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN10mglGraphGL3ClfE8mglColor at Base 1.11
+ _ZN10mglGraphGL3FogEff at Base 1.11
+ _ZN10mglGraphGL3PenE8mglColorcf at Base 1.11
+ _ZN10mglGraphGL4BallEfff8mglColorf at Base 1.11
+ _ZN10mglGraphGL4ViewEfff at Base 1.11
+ _ZN10mglGraphGL4ballEPfS0_ at Base 1.11
+ _ZN10mglGraphGL5AlphaEb at Base 1.11
+ _ZN10mglGraphGL5FlushEv at Base 1.11
+ _ZN10mglGraphGL5GlyphEfffilc at Base 1.11
+ _ZN10mglGraphGL5LightEb at Base 1.11
+ _ZN10mglGraphGL5LightEi8mglPoint8mglColorfb at Base 1.11
+ _ZN10mglGraphGL5LightEib at Base 1.11
+ _ZN10mglGraphGL6FinishEv at Base 1.11
+ _ZN10mglGraphGL6InPlotEffffb at Base 1.11
+ _ZN10mglGraphGL7SetSizeEii at Base 1.11
+ _ZN10mglGraphGL8EndFrameEv at Base 1.11
+ _ZN10mglGraphGL8NewFrameEv at Base 1.11
+ _ZN10mglGraphGL9line_plotEPfS0_S0_S0_b at Base 1.11
+ _ZN10mglGraphGL9mark_plotEPfc at Base 1.11
+ _ZN10mglGraphGL9quad_plotEPfS0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN10mglGraphGL9trig_plotEPfS0_S0_S0_S0_S0_ at Base 1.11
+ _ZN10mglGraphGLC1Ev at Base 1.11
+ _ZN10mglGraphGLC2Ev at Base 1.11
+ _ZN10mglGraphGLD0Ev at Base 1.11
+ _ZN10mglGraphGLD1Ev at Base 1.11
+ _ZN10mglGraphGLD2Ev at Base 1.11
+ _ZN10mglGraphPS11quad_plot_aEPfS0_S0_S0_fffff at Base 1.11
+ _ZN10mglGraphPS11quad_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN10mglGraphPS11trig_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN10mglGraphPS3ClfE8mglColor at Base 1.11
+ _ZN10mglGraphPS4BallEfff8mglColorf at Base 1.11
+ _ZN10mglGraphPS4ballEPfS0_ at Base 1.11
+ _ZN10mglGraphPS5GlyphEfffilc at Base 1.11
+ _ZN10mglGraphPS6FinishEv at Base 1.11
+ _ZN10mglGraphPS8WriteEPSEPKcS1_ at Base 1.11
+ _ZN10mglGraphPS8WriteSVGEPKcS1_ at Base 1.11
+ _ZN10mglGraphPS8add_primER7mglPrim at Base 1.11
+ _ZN10mglGraphPS8pnt_plotEllfPh at Base 1.11
+ _ZN10mglGraphPS8put_descEPvbPKcS2_S2_S2_S2_ at Base 1.11
+ _ZN10mglGraphPS8put_lineEPvblfPfiPKcS3_b at Base 1.11
+ _ZN10mglGraphPS9add_lightEPffff at Base 1.11
+ _ZN10mglGraphPS9draw_primEP7mglPrimPfS2_ at Base 1.11
+ _ZN10mglGraphPS9line_plotEPfS0_S0_S0_b at Base 1.11
+ _ZN10mglGraphPS9mark_plotEPfc at Base 1.11
+ _ZN10mglGraphPS9quad_plotEPfS0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN10mglGraphPS9trig_plotEPfS0_S0_S0_S0_S0_ at Base 1.11
+ _ZN10mglGraphPSC1Eii at Base 1.11
+ _ZN10mglGraphPSC2Eii at Base 1.11
+ _ZN10mglGraphPSD0Ev at Base 1.11
+ _ZN10mglGraphPSD1Ev at Base 1.11
+ _ZN10mglGraphPSD2Ev at Base 1.11
+ _ZN10mglGraphZB10PutDrawRegEiiiP10mglGraphAB at Base 1.11
+ _ZN10mglGraphZB10WriteSliceEi at Base 1.11
+ _ZN10mglGraphZB3ClfE8mglColor at Base 1.11
+ _ZN10mglGraphZB5GlyphEfffilc at Base 1.11
+ _ZN10mglGraphZB6FinishEv at Base 1.11
+ _ZN10mglGraphZB7SetSizeEii at Base 1.11
+ _ZN10mglGraphZB8pnt_plotEllfPh at Base 1.11
+ _ZN10mglGraphZBC1Eii at Base 1.11
+ _ZN10mglGraphZBC2Eii at Base 1.11
+ _ZN10mglGraphZBD0Ev at Base 1.11
+ _ZN10mglGraphZBD1Ev at Base 1.11
+ _ZN10mglGraphZBD2Ev at Base 1.11
+ _ZN10u3dLineSet20print_model_resourceERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.11
+ _ZN10u3dLineSet7AddLineEmmm at Base 1.11
+ _ZN10u3dLineSet9line_plotEPfS0_S0_S0_ at Base 1.11
+ _ZN10u3dLineSetD1Ev at Base 1.11
+ _ZN10u3dTexture13print_textureEPKcRSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.11
+ _ZN10u3dTextureD1Ev at Base 1.11
+ _ZN11TGAImageMin10DeallocateEv at Base 1.11
+ _ZN11TGAImageMin10InitializeEjjj at Base 1.11
+ _ZN11TGAImageMinC1Ev at Base 1.11
+ _ZN11TGAImageMinC2Ev at Base 1.11
+ _ZN11TGAImageMinD1Ev at Base 1.11
+ _ZN11TGAImageMinD2Ev at Base 1.11
+ _ZN11mglFormulaC5ErrorE at Base 1.11
+ _ZN11mglFormulaCC1EPKc at Base 1.11
+ _ZN11mglFormulaCC2EPKc at Base 1.11
+ _ZN11mglFormulaCD1Ev at Base 1.11
+ _ZN11mglFormulaCD2Ev at Base 1.11
+ _ZN11u3dMaterial12print_shaderERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.11
+ _ZN11u3dMaterial14print_materialERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.11
+ _ZN11u3dMaterialD1Ev at Base 1.11
+ _ZN11u3dPointSet10point_plotERK8mglPointRK8mglColor at Base 1.11
+ _ZN11u3dPointSet20print_model_resourceERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.11
+ _ZN11u3dPointSetC1ERKSsP12mglGraphIDTF at Base 1.11
+ _ZN11u3dPointSetC2ERKSsP12mglGraphIDTF at Base 1.11
+ _ZN12mglGraphIDTF10AddTextureEv at Base 1.11
+ _ZN12mglGraphIDTF10GetLineSetEv at Base 1.11
+ _ZN12mglGraphIDTF10StartGroupEPKc at Base 1.11
+ _ZN12mglGraphIDTF10arrow_plotEPfS0_c at Base 1.11
+ _ZN12mglGraphIDTF10cloud_plotElllPfS0_f at Base 1.11
+ _ZN12mglGraphIDTF10point_plotERK8mglPointRK8mglColor at Base 1.11
+ _ZN12mglGraphIDTF10quads_plotElPfS0_Pb at Base 1.11
+ _ZN12mglGraphIDTF11AddMaterialERK11u3dMaterial at Base 1.11
+ _ZN12mglGraphIDTF11BallIsPointEb at Base 1.11
+ _ZN12mglGraphIDTF11CompressionEb at Base 1.11
+ _ZN12mglGraphIDTF11DoubleSidedEb at Base 1.11
+ _ZN12mglGraphIDTF11GetPointSetEv at Base 1.11
+ _ZN12mglGraphIDTF11VertexColorEb at Base 1.11
+ _ZN12mglGraphIDTF11line_plot_sEPfS0_S0_S0_b at Base 1.11
+ _ZN12mglGraphIDTF11quad_plot_aEPfS0_S0_S0_fffff at Base 1.11
+ _ZN12mglGraphIDTF11quad_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN12mglGraphIDTF11trig_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN12mglGraphIDTF12TextureColorEb at Base 1.11
+ _ZN12mglGraphIDTF14StartAutoGroupEPKc at Base 1.11
+ _ZN12mglGraphIDTF15GetCurrentGroupEv at Base 1.11
+ _ZN12mglGraphIDTF15SetAmbientLightE8mglColorf at Base 1.11
+ _ZN12mglGraphIDTF19MakeTransformMatrixEPA4_fS1_ at Base 1.11
+ _ZN12mglGraphIDTF3ClfE8mglColor at Base 1.11
+ _ZN12mglGraphIDTF4BallEfff8mglColorf at Base 1.11
+ _ZN12mglGraphIDTF4ballEPfS0_ at Base 1.11
+ _ZN12mglGraphIDTF5FlushEv at Base 1.11
+ _ZN12mglGraphIDTF5LightEi8mglPoint8mglColorfb at Base 1.11
+ _ZN12mglGraphIDTF5PutswE8mglPointPKwPKcfcf at Base 1.11
+ _ZN12mglGraphIDTF5PutswE8mglPointS0_PKwcf at Base 1.11
+ _ZN12mglGraphIDTF6InPlotEffffb at Base 1.11
+ _ZN12mglGraphIDTF7GetMeshEv at Base 1.11
+ _ZN12mglGraphIDTF7col2colEPKfS1_Pf at Base 1.11
+ _ZN12mglGraphIDTF8AddLightE8mglPoint8mglColorfb at Base 1.11
+ _ZN12mglGraphIDTF8EndGroupEv at Base 1.11
+ _ZN12mglGraphIDTF8UnitBallEv at Base 1.11
+ _ZN12mglGraphIDTF8UnrotateEb at Base 1.11
+ _ZN12mglGraphIDTF9WriteIDTFEPKcS1_ at Base 1.11
+ _ZN12mglGraphIDTF9line_plotEPfS0_S0_S0_b at Base 1.11
+ _ZN12mglGraphIDTF9line_plotERK8mglPointS2_ at Base 1.11
+ _ZN12mglGraphIDTF9mark_plotEPfc at Base 1.11
+ _ZN12mglGraphIDTF9quad_plotEPfS0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN12mglGraphIDTF9quad_plotERK8mglPointS2_S2_S2_ at Base 1.11
+ _ZN12mglGraphIDTF9surf_plotEllPfS0_Pb at Base 1.11
+ _ZN12mglGraphIDTF9trig_plotEPfS0_S0_S0_S0_S0_ at Base 1.11
+ _ZN12mglGraphIDTF9trig_plotERK8mglPointS2_S2_ at Base 1.11
+ _ZN12mglGraphIDTFC1Ev at Base 1.11
+ _ZN12mglGraphIDTFC2Ev at Base 1.11
+ _ZN12mglGraphIDTFD0Ev at Base 1.11
+ _ZN12mglGraphIDTFD1Ev at Base 1.11
+ _ZN12mglGraphIDTFD2Ev at Base 1.11
+ _ZN6mglNum9MoveAfterEPS_ at Base 1.11
+ _ZN6mglNumD1Ev at Base 1.11
+ _ZN6mglNumD2Ev at Base 1.11
+ _ZN6mglVar9MoveAfterEPS_ at Base 1.11
+ _ZN6mglVarD1Ev at Base 1.11
+ _ZN6mglVarD2Ev at Base 1.11
+ _ZN7mglData10DeleteRowsEii at Base 1.11
+ _ZN7mglData10FillSampleEiPKc at Base 1.11
+ _ZN7mglData10InsertRowsEiiPKc at Base 1.11
+ _ZN7mglData11SetColumnIdEPKc at Base 1.11
+ _ZN7mglData12DeleteSlicesEii at Base 1.11
+ _ZN7mglData12InsertSlicesEiiPKc at Base 1.11
+ _ZN7mglData13DeleteColumnsEii at Base 1.11
+ _ZN7mglData13InsertColumnsEiiPKc at Base 1.11
+ _ZN7mglData3PutERKS_iii at Base 1.11
+ _ZN7mglData3PutEfiii at Base 1.11
+ _ZN7mglData3SetEP10gsl_matrix at Base 1.11
+ _ZN7mglData3SetEP10gsl_vector at Base 1.11
+ _ZN7mglData3SetEPKciii at Base 1.11
+ _ZN7mglData3SetEPKdiii at Base 1.11
+ _ZN7mglData3SetEPKfiii at Base 1.11
+ _ZN7mglData3SetEPPKdii at Base 1.11
+ _ZN7mglData3SetEPPKfii at Base 1.11
+ _ZN7mglData3SetEPPPKdiii at Base 1.11
+ _ZN7mglData3SetEPPPKfiii at Base 1.11
+ _ZN7mglData3SetERKSt6vectorIdSaIdEE at Base 1.11
+ _ZN7mglData3SetERKSt6vectorIfSaIfEE at Base 1.11
+ _ZN7mglData3SetERKSt6vectorIiSaIiEE at Base 1.11
+ _ZN7mglData3SewEPKcf at Base 1.11
+ _ZN7mglData4CropEiic at Base 1.11
+ _ZN7mglData4DiffEPKc at Base 1.11
+ _ZN7mglData4DiffERKS_S1_ at Base 1.11
+ _ZN7mglData4DiffERKS_S1_S1_ at Base 1.11
+ _ZN7mglData4FillEPKc8mglPointS2_PKS_S4_ at Base 1.11
+ _ZN7mglData4FillEffc at Base 1.11
+ _ZN7mglData4NormEffbi at Base 1.11
+ _ZN7mglData4ReadEPKc at Base 1.11
+ _ZN7mglData4ReadEPKciii at Base 1.11
+ _ZN7mglData4RollEci at Base 1.11
+ _ZN7mglData4SwapEPKc at Base 1.11
+ _ZN7mglData5Diff2EPKc at Base 1.11
+ _ZN7mglData5NewIdEv at Base 1.11
+ _ZN7mglData6ColumnEPKc at Base 1.11
+ _ZN7mglData6CosFFTEPKc at Base 1.11
+ _ZN7mglData6CreateEiii at Base 1.11
+ _ZN7mglData6CumSumEPKc at Base 1.11
+ _ZN7mglData6DeleteEcii at Base 1.11
+ _ZN7mglData6ExtendEii at Base 1.11
+ _ZN7mglData6HankelEPKc at Base 1.11
+ _ZN7mglData6ImportEPKcS1_ff at Base 1.11
+ _ZN7mglData6InsertEcii at Base 1.11
+ _ZN7mglData6MirrorEPKc at Base 1.11
+ _ZN7mglData6ModifyEPKcRKS_ at Base 1.11
+ _ZN7mglData6ModifyEPKcRKS_S3_ at Base 1.11
+ _ZN7mglData6ModifyEPKci at Base 1.11
+ _ZN7mglData6NormSlEffcbb at Base 1.11
+ _ZN7mglData6SinFFTEPKc at Base 1.11
+ _ZN7mglData6SmoothEPKc at Base 1.11
+ _ZN7mglData6SmoothEiPKcf at Base 1.11
+ _ZN7mglData7EnvelopEc at Base 1.11
+ _ZN7mglData7ReadAllEPKcb at Base 1.11
+ _ZN7mglData7ReadHDFEPKcS1_ at Base 1.11
+ _ZN7mglData7ReadMatEPKci at Base 1.11
+ _ZN7mglData7SqueezeEiiib at Base 1.11
+ _ZN7mglData8IntegralEPKc at Base 1.11
+ _ZN7mglData8ReadHDF4EPKcS1_ at Base 1.11
+ _ZN7mglData9ReadRangeEPKcfffb at Base 1.11
+ _ZN7mglData9RearrangeEiii at Base 1.11
+ _ZN7mglData9TransposeEPKc at Base 1.11
+ _ZN7mglDataD1Ev at Base 1.11
+ _ZN7mglDataaSERKS_ at Base 1.11
+ _ZN7mglDataaSEf at Base 1.11
+ _ZN7mglDatadVERKS_ at Base 1.11
+ _ZN7mglDatadVEf at Base 1.11
+ _ZN7mglDatamIERKS_ at Base 1.11
+ _ZN7mglDatamIEf at Base 1.11
+ _ZN7mglDatamLERKS_ at Base 1.11
+ _ZN7mglDatamLEf at Base 1.11
+ _ZN7mglDatapLERKS_ at Base 1.11
+ _ZN7mglDatapLEf at Base 1.11
+ _ZN7mglFont11draw_oulineEP8mglGraphifffffc at Base 1.11
+ _ZN7mglFont4CopyEPS_ at Base 1.11
+ _ZN7mglFont4LoadEPKcS1_ at Base 1.11
+ _ZN7mglFont4PutsEPKcS1_c at Base 1.11
+ _ZN7mglFont4PutsEPKciic at Base 1.11
+ _ZN7mglFont4PutsEPKjfffic at Base 1.11
+ _ZN7mglFont4PutsEPKwPKcc at Base 1.11
+ _ZN7mglFont4PutsEPKwiic at Base 1.11
+ _ZN7mglFont5ClearEv at Base 1.11
+ _ZN7mglFont5ParseEPKw at Base 1.11
+ _ZN7mglFont5WidthEPKcS1_ at Base 1.11
+ _ZN7mglFont5WidthEPKci at Base 1.11
+ _ZN7mglFont5WidthEPKwPKc at Base 1.11
+ _ZN7mglFont5WidthEPKwi at Base 1.11
+ _ZN7mglFont6HeightEPKc at Base 1.11
+ _ZN7mglFont6HeightEi at Base 1.11
+ _ZN7mglFont7ConvertEPKwPj at Base 1.11
+ _ZN7mglFont7RestoreEv at Base 1.11
+ _ZN7mglFont7get_ptrERlPjPS1_S2_RfS3_ffi at Base 1.11
+ _ZN7mglFont8InternalEj at Base 1.11
+ _ZN7mglFont8read_defERj at Base 1.11
+ _ZN7mglFont9main_copyEv at Base 1.11
+ _ZN7mglFont9mem_allocEv at Base 1.11
+ _ZN7mglFont9read_dataEPKcPfPsS3_PjS3_S4_Rj at Base 1.11
+ _ZN7mglFont9read_mainEPKcRj at Base 1.11
+ _ZN7mglFontC1EPKcS1_ at Base 1.11
+ _ZN7mglFontC2EPKcS1_ at Base 1.11
+ _ZN7mglFontD1Ev at Base 1.11
+ _ZN7mglFontD2Ev at Base 1.11
+ _ZN7mglFuncC1ElPKwPS_ at Base 1.11
+ _ZN7mglFuncC2ElPKwPS_ at Base 1.11
+ _ZN7mglFuncD1Ev at Base 1.11
+ _ZN7mglPrim4DrawEP10mglGraphPS at Base 1.11
+ _ZN7mglPrim6IsSameEfPfi at Base 1.11
+ _ZN7u3dBall10print_nodeERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.11
+ _ZN7u3dBall22print_shading_modifierERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.11
+ _ZN7u3dMesh11AddTriangleEmmmm at Base 1.11
+ _ZN7u3dMesh11AddTriangleEmmmmmm at Base 1.11
+ _ZN7u3dMesh11quad_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN7u3dMesh11trig_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN7u3dMesh20print_model_resourceERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.11
+ _ZN7u3dMesh9quad_plotEPfS0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN7u3dMesh9trig_plotEPfS0_S0_S0_S0_S0_ at Base 1.11
+ _ZN7u3dMeshD1Ev at Base 1.11
+ _ZN7u3dNode5printERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.11
+ _ZN7u3dNodeD1Ev at Base 1.11
+ _ZN8mglColor3SetES_f at Base 1.11
+ _ZN8mglColor3SetEcf at Base 1.11
+ _ZN8mglGraph10ColumnPlotEiif at Base 1.11
+ _ZN8mglGraph10ScalePointERfS0_S0_ at Base 1.11
+ _ZN8mglGraph10SetTickLenEff at Base 1.11
+ _ZN8mglGraph10SetTickStlEPKcS1_ at Base 1.11
+ _ZN8mglGraph10SimplePlotERK7mglDataiPKc at Base 1.11
+ _ZN8mglGraph10StartGroupEPKc at Base 1.11
+ _ZN8mglGraph10StartGroupEPKci at Base 1.11
+ _ZN8mglGraph10WriteFrameEPKcS1_ at Base 1.11
+ _ZN8mglGraph10add_cpointERlPPfS2_PPbfffffb at Base 1.11
+ _ZN8mglGraph10add_spointERlPPfS2_S2_S2_ffffffffff at Base 1.11
+ _ZN8mglGraph10contf_plotEffllPfS0_S0_S0_f at Base 1.11
+ _ZN8mglGraph10font_curveElPfPbPlPKwif at Base 1.11
+ _ZN8mglGraph11AdjustTicksEPKc at Base 1.11
+ _ZN8mglGraph11BallIsPointEb at Base 1.11
+ _ZN8mglGraph11ClearLegendEv at Base 1.11
+ _ZN8mglGraph11CompressionEb at Base 1.11
+ _ZN8mglGraph11DoubleSidedEb at Base 1.11
+ _ZN8mglGraph11GetRGBLinesERlS0_RPhb at Base 1.11
+ _ZN8mglGraph11SetTicksValEciPfPPKc at Base 1.11
+ _ZN8mglGraph11SetTicksValEciPfPPKw at Base 1.11
+ _ZN8mglGraph11SetTicksValEcidPKcz at Base 1.11
+ _ZN8mglGraph11VertexColorEb at Base 1.11
+ _ZN8mglGraph12PrepareFitEqEfPKcS1_Pfb at Base 1.11
+ _ZN8mglGraph12RecalcBorderEv at Base 1.11
+ _ZN8mglGraph12TextureColorEb at Base 1.11
+ _ZN8mglGraph12string_curveEllPfPlPKwfi at Base 1.11
+ _ZN8mglGraph12tricont_lineEfllllRK7mglDataS2_S2_S2_f at Base 1.11
+ _ZN8mglGraph13DrawTGridLineEff at Base 1.11
+ _ZN8mglGraph13DrawXGridLineEfff at Base 1.11
+ _ZN8mglGraph13DrawYGridLineEfff at Base 1.11
+ _ZN8mglGraph13DrawZGridLineEfff at Base 1.11
+ _ZN8mglGraph13SetAutoRangesEffffff at Base 1.11
+ _ZN8mglGraph13SetFontSizePTEfi at Base 1.11
+ _ZN8mglGraph14StartAutoGroupEPKc at Base 1.11
+ _ZN8mglGraph16DefaultPlotParamEv at Base 1.11
+ _ZN8mglGraph3BoxE8mglColorb at Base 1.11
+ _ZN8mglGraph3BoxEPKcb at Base 1.11
+ _ZN8mglGraph3ClfE8mglColor at Base 1.11
+ _ZN8mglGraph3DewERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph3DewERK7mglDataS2_S2_S2_PKcf at Base 1.11
+ _ZN8mglGraph3FitER7mglDataRKS0_PKcS5_Pfb at Base 1.11
+ _ZN8mglGraph3FitER7mglDataRKS0_PKcS5_S1_b at Base 1.11
+ _ZN8mglGraph3FitER7mglDataRKS0_S3_PKcS5_Pfb at Base 1.11
+ _ZN8mglGraph3FitER7mglDataRKS0_S3_PKcS5_S1_b at Base 1.11
+ _ZN8mglGraph3FitER7mglDataRKS0_S3_S3_PKcS5_Pfb at Base 1.11
+ _ZN8mglGraph3FitER7mglDataRKS0_S3_S3_PKcS5_S1_b at Base 1.11
+ _ZN8mglGraph3FitER7mglDataRKS0_S3_S3_S3_PKcS5_Pfb at Base 1.11
+ _ZN8mglGraph3FitER7mglDataRKS0_S3_S3_S3_PKcS5_S1_b at Base 1.11
+ _ZN8mglGraph3FogEff at Base 1.11
+ _ZN8mglGraph3MapERK7mglDataS2_PKcib at Base 1.11
+ _ZN8mglGraph3MapERK7mglDataS2_S2_S2_PKcib at Base 1.11
+ _ZN8mglGraph3PenE8mglColorcf at Base 1.11
+ _ZN8mglGraph4AreaERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph4AreaERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph4AreaERK7mglDataS2_S2_PKc at Base 1.11
+ _ZN8mglGraph4AxisE8mglPointS0_S0_ at Base 1.11
+ _ZN8mglGraph4AxisEPKcb at Base 1.11
+ _ZN8mglGraph4BarhERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph4BarhERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph4BarsERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph4BarsERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph4BarsERK7mglDataS2_S2_PKc at Base 1.11
+ _ZN8mglGraph4BeamERK7mglDataS2_S2_S2_fPKcii at Base 1.11
+ _ZN8mglGraph4BeamEfRK7mglDataS2_S2_S2_fPKci at Base 1.11
+ _ZN8mglGraph4BeltERK7mglDataPKc at Base 1.11
+ _ZN8mglGraph4BeltERK7mglDataS2_S2_PKc at Base 1.11
+ _ZN8mglGraph4BoxsERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph4BoxsERK7mglDataS2_S2_PKcf at Base 1.11
+ _ZN8mglGraph4ConeE8mglPointS0_ffPKcb at Base 1.11
+ _ZN8mglGraph4ContERK7mglDataPKcif at Base 1.11
+ _ZN8mglGraph4ContERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph4ContERK7mglDataS2_S2_PKcif at Base 1.11
+ _ZN8mglGraph4ContERK7mglDataS2_S2_S2_PKcf at Base 1.11
+ _ZN8mglGraph4DensERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph4DensERK7mglDataS2_S2_PKcf at Base 1.11
+ _ZN8mglGraph4DotsERK7mglDataPKc at Base 1.11
+ _ZN8mglGraph4DotsERK7mglDataS2_S2_PKc at Base 1.11
+ _ZN8mglGraph4DotsERK7mglDataS2_S2_S2_PKcf at Base 1.11
+ _ZN8mglGraph4DropE8mglPointS0_f8mglColorff at Base 1.11
+ _ZN8mglGraph4DropE8mglPointS0_fPKcff at Base 1.11
+ _ZN8mglGraph4FaceE8mglPointS0_S0_S0_PKcif at Base 1.11
+ _ZN8mglGraph4FallERK7mglDataPKc at Base 1.11
+ _ZN8mglGraph4FallERK7mglDataS2_S2_PKc at Base 1.11
+ _ZN8mglGraph4Fit2ER7mglDataRKS0_PKcS5_Pfb at Base 1.11
+ _ZN8mglGraph4Fit2ER7mglDataRKS0_PKcS5_S1_b at Base 1.11
+ _ZN8mglGraph4Fit3ER7mglDataRKS0_PKcS5_Pfb at Base 1.11
+ _ZN8mglGraph4Fit3ER7mglDataRKS0_PKcS5_S1_b at Base 1.11
+ _ZN8mglGraph4FitSER7mglDataRKS0_S3_PKcS5_Pfb at Base 1.11
+ _ZN8mglGraph4FitSER7mglDataRKS0_S3_PKcS5_S1_b at Base 1.11
+ _ZN8mglGraph4FitSER7mglDataRKS0_S3_S3_PKcS5_Pfb at Base 1.11
+ _ZN8mglGraph4FitSER7mglDataRKS0_S3_S3_PKcS5_S1_b at Base 1.11
+ _ZN8mglGraph4FitSER7mglDataRKS0_S3_S3_S3_PKcS5_Pfb at Base 1.11
+ _ZN8mglGraph4FitSER7mglDataRKS0_S3_S3_S3_PKcS5_S1_b at Base 1.11
+ _ZN8mglGraph4FitSER7mglDataRKS0_S3_S3_S3_S3_PKcS5_Pfb at Base 1.11
+ _ZN8mglGraph4FitSER7mglDataRKS0_S3_S3_S3_S3_PKcS5_S1_b at Base 1.11
+ _ZN8mglGraph4FlowERK7mglDataS2_PKcibf at Base 1.11
+ _ZN8mglGraph4FlowERK7mglDataS2_S2_PKcib at Base 1.11
+ _ZN8mglGraph4FlowERK7mglDataS2_S2_S2_PKcibf at Base 1.11
+ _ZN8mglGraph4FlowERK7mglDataS2_S2_S2_S2_S2_PKcib at Base 1.11
+ _ZN8mglGraph4GetAEf at Base 1.11
+ _ZN8mglGraph4GetCEfb at Base 1.11
+ _ZN8mglGraph4GetCEfffb at Base 1.11
+ _ZN8mglGraph4GradERK7mglDataPKcif at Base 1.11
+ _ZN8mglGraph4GradERK7mglDataS2_S2_PKcif at Base 1.11
+ _ZN8mglGraph4GradERK7mglDataS2_S2_S2_PKci at Base 1.11
+ _ZN8mglGraph4GridEPKcS1_ at Base 1.11
+ _ZN8mglGraph4GridERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph4GridERK7mglDataS2_S2_PKcf at Base 1.11
+ _ZN8mglGraph4HistER7mglDataRKS0_S3_ at Base 1.11
+ _ZN8mglGraph4HistER7mglDataRKS0_S3_S3_ at Base 1.11
+ _ZN8mglGraph4HistER7mglDataRKS0_S3_S3_S3_ at Base 1.11
+ _ZN8mglGraph4LineE8mglPointS0_PKci at Base 1.11
+ _ZN8mglGraph4MarkE8mglPointc at Base 1.11
+ _ZN8mglGraph4MarkERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph4MarkERK7mglDataS2_S2_PKcf at Base 1.11
+ _ZN8mglGraph4MarkERK7mglDataS2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph4MeshERK7mglDataPKc at Base 1.11
+ _ZN8mglGraph4MeshERK7mglDataS2_S2_PKc at Base 1.11
+ _ZN8mglGraph4PipeERK7mglDataS2_PKcfibf at Base 1.11
+ _ZN8mglGraph4PipeERK7mglDataS2_S2_PKcfib at Base 1.11
+ _ZN8mglGraph4PipeERK7mglDataS2_S2_S2_PKcfibf at Base 1.11
+ _ZN8mglGraph4PipeERK7mglDataS2_S2_S2_S2_S2_PKcfib at Base 1.11
+ _ZN8mglGraph4PlotEPKcS1_S1_S1_i at Base 1.11
+ _ZN8mglGraph4PlotEPKcS1_fi at Base 1.11
+ _ZN8mglGraph4PlotERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph4PlotERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph4PlotERK7mglDataS2_S2_PKc at Base 1.11
+ _ZN8mglGraph4PutsE8mglPointPKcS2_fcf at Base 1.11
+ _ZN8mglGraph4PutsE8mglPointS0_PKccf at Base 1.11
+ _ZN8mglGraph4STFAERK7mglDataS2_S2_S2_iPKcf at Base 1.11
+ _ZN8mglGraph4STFAERK7mglDataS2_iPKcf at Base 1.11
+ _ZN8mglGraph4StemERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph4StemERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph4StemERK7mglDataS2_S2_PKc at Base 1.11
+ _ZN8mglGraph4StepERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph4StepERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph4StepERK7mglDataS2_S2_PKc at Base 1.11
+ _ZN8mglGraph4SurfEPKcS1_S1_S1_i at Base 1.11
+ _ZN8mglGraph4SurfEPKcS1_i at Base 1.11
+ _ZN8mglGraph4SurfERK7mglDataPKc at Base 1.11
+ _ZN8mglGraph4SurfERK7mglDataS2_S2_PKc at Base 1.11
+ _ZN8mglGraph4TensERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph4TensERK7mglDataS2_S2_PKcf at Base 1.11
+ _ZN8mglGraph4TensERK7mglDataS2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph4TextE8mglPointPKcS2_fc at Base 1.11
+ _ZN8mglGraph4TextE8mglPointPKwPKcfc at Base 1.11
+ _ZN8mglGraph4TextERK7mglDataPKcS4_ff at Base 1.11
+ _ZN8mglGraph4TextERK7mglDataPKwPKcff at Base 1.11
+ _ZN8mglGraph4TextERK7mglDataS2_PKcS4_ff at Base 1.11
+ _ZN8mglGraph4TextERK7mglDataS2_PKwPKcff at Base 1.11
+ _ZN8mglGraph4TextERK7mglDataS2_S2_PKcS4_f at Base 1.11
+ _ZN8mglGraph4TextERK7mglDataS2_S2_PKwPKcf at Base 1.11
+ _ZN8mglGraph4TileERK7mglDataPKc at Base 1.11
+ _ZN8mglGraph4TileERK7mglDataS2_S2_PKc at Base 1.11
+ _ZN8mglGraph4TrajERK7mglDataS2_S2_S2_PKcff at Base 1.11
+ _ZN8mglGraph4TrajERK7mglDataS2_S2_S2_S2_S2_PKcf at Base 1.11
+ _ZN8mglGraph4TubeERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph4TubeERK7mglDataS2_S2_PKcf at Base 1.11
+ _ZN8mglGraph4TubeERK7mglDataS2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph4TubeERK7mglDataS2_S2_fPKc at Base 1.11
+ _ZN8mglGraph4TubeERK7mglDataS2_fPKcf at Base 1.11
+ _ZN8mglGraph4TubeERK7mglDatafPKcf at Base 1.11
+ _ZN8mglGraph4VectERK7mglDataS2_PKcfi at Base 1.11
+ _ZN8mglGraph4VectERK7mglDataS2_S2_PKci at Base 1.11
+ _ZN8mglGraph4VectERK7mglDataS2_S2_S2_PKcfi at Base 1.11
+ _ZN8mglGraph4VectERK7mglDataS2_S2_S2_S2_S2_PKci at Base 1.11
+ _ZN8mglGraph4ViewEfff at Base 1.11
+ _ZN8mglGraph4ZoomEffff at Base 1.11
+ _ZN8mglGraph4ballEPfS0_ at Base 1.11
+ _ZN8mglGraph4flowEbfffRK7mglDataS2_S2_S2_ at Base 1.11
+ _ZN8mglGraph4flowEbfffRK7mglDataS2_S2_S2_S2_S2_ at Base 1.11
+ _ZN8mglGraph5AxialERK7mglDataPKci at Base 1.11
+ _ZN8mglGraph5AxialERK7mglDataS2_PKc at Base 1.11
+ _ZN8mglGraph5AxialERK7mglDataS2_S2_PKci at Base 1.11
+ _ZN8mglGraph5AxialERK7mglDataS2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph5AxisTEbPKc at Base 1.11
+ _ZN8mglGraph5AxisXEbPKc at Base 1.11
+ _ZN8mglGraph5AxisYEbPKc at Base 1.11
+ _ZN8mglGraph5AxisZEbPKc at Base 1.11
+ _ZN8mglGraph5ChartERK7mglDataPKc at Base 1.11
+ _ZN8mglGraph5CloudERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph5CloudERK7mglDataS2_S2_S2_PKcf at Base 1.11
+ _ZN8mglGraph5ColorEfff at Base 1.11
+ _ZN8mglGraph5Cont3ERK7mglDataS2_S2_S2_S2_ciPKc at Base 1.11
+ _ZN8mglGraph5Cont3ERK7mglDataS2_S2_S2_ciPKci at Base 1.11
+ _ZN8mglGraph5Cont3ERK7mglDataS2_ciPKc at Base 1.11
+ _ZN8mglGraph5Cont3ERK7mglDataciPKci at Base 1.11
+ _ZN8mglGraph5ContAERK7mglDataPKci at Base 1.11
+ _ZN8mglGraph5ContAERK7mglDataS2_S2_S2_PKci at Base 1.11
+ _ZN8mglGraph5ContDERK7mglDataPKcif at Base 1.11
+ _ZN8mglGraph5ContDERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph5ContDERK7mglDataS2_S2_PKcif at Base 1.11
+ _ZN8mglGraph5ContDERK7mglDataS2_S2_S2_PKcf at Base 1.11
+ _ZN8mglGraph5ContFERK7mglDataPKcif at Base 1.11
+ _ZN8mglGraph5ContFERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph5ContFERK7mglDataS2_S2_PKcif at Base 1.11
+ _ZN8mglGraph5ContFERK7mglDataS2_S2_S2_PKcf at Base 1.11
+ _ZN8mglGraph5ContXERK7mglDataPKcfi at Base 1.11
+ _ZN8mglGraph5ContXERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph5ContYERK7mglDataPKcfi at Base 1.11
+ _ZN8mglGraph5ContYERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph5ContZERK7mglDataPKcfi at Base 1.11
+ _ZN8mglGraph5ContZERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph5CrustERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph5CrustERK7mglDataS2_S2_PKcf at Base 1.11
+ _ZN8mglGraph5CurveE8mglPointS0_S0_S0_PKci at Base 1.11
+ _ZN8mglGraph5Dens3ERK7mglDataS2_S2_S2_ciPKc at Base 1.11
+ _ZN8mglGraph5Dens3ERK7mglDataciPKc at Base 1.11
+ _ZN8mglGraph5DensAERK7mglDataPKc at Base 1.11
+ _ZN8mglGraph5DensAERK7mglDataS2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph5DensXERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph5DensYERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph5DensZERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph5ErrorE8mglPointS0_PKc at Base 1.11
+ _ZN8mglGraph5ErrorERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph5ErrorERK7mglDataS2_S2_PKcf at Base 1.11
+ _ZN8mglGraph5ErrorERK7mglDataS2_S2_S2_PKcf at Base 1.11
+ _ZN8mglGraph5FaceXEfffffPKcff at Base 1.11
+ _ZN8mglGraph5FaceYEfffffPKcff at Base 1.11
+ _ZN8mglGraph5FaceZEfffffPKcff at Base 1.11
+ _ZN8mglGraph5FlowPE8mglPointRK7mglDataS3_PKc at Base 1.11
+ _ZN8mglGraph5FlowPE8mglPointRK7mglDataS3_S3_PKc at Base 1.11
+ _ZN8mglGraph5FlowPE8mglPointRK7mglDataS3_S3_S3_PKc at Base 1.11
+ _ZN8mglGraph5FlowPE8mglPointRK7mglDataS3_S3_S3_S3_S3_PKc at Base 1.11
+ _ZN8mglGraph5FlushEv at Base 1.11
+ _ZN8mglGraph5GetC2Eff at Base 1.11
+ _ZN8mglGraph5Grid3ERK7mglDataS2_S2_S2_ciPKc at Base 1.11
+ _ZN8mglGraph5Grid3ERK7mglDataciPKc at Base 1.11
+ _ZN8mglGraph5GridAERK7mglDataPKc at Base 1.11
+ _ZN8mglGraph5GridAERK7mglDataS2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph5LabelEcPKcfff at Base 1.11
+ _ZN8mglGraph5LabelEffPKcS1_fb at Base 1.11
+ _ZN8mglGraph5LightEi8mglPoint8mglColorfb at Base 1.11
+ _ZN8mglGraph5LightEi8mglPointcfb at Base 1.11
+ _ZN8mglGraph5LightEib at Base 1.11
+ _ZN8mglGraph5RadarERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph5Surf3ERK7mglDataPKci at Base 1.11
+ _ZN8mglGraph5Surf3ERK7mglDataS2_S2_S2_PKci at Base 1.11
+ _ZN8mglGraph5Surf3EfRK7mglDataPKc at Base 1.11
+ _ZN8mglGraph5Surf3EfRK7mglDataS2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph5SurfAERK7mglDataS2_PKc at Base 1.11
+ _ZN8mglGraph5SurfAERK7mglDataS2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph5SurfCERK7mglDataS2_PKc at Base 1.11
+ _ZN8mglGraph5SurfCERK7mglDataS2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph5TileSERK7mglDataS2_PKc at Base 1.11
+ _ZN8mglGraph5TileSERK7mglDataS2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph5TitleEPKcS1_f at Base 1.11
+ _ZN8mglGraph5TitleEPKwPKcf at Base 1.11
+ _ZN8mglGraph5TorusERK7mglDataPKc at Base 1.11
+ _ZN8mglGraph5TorusERK7mglDataS2_PKc at Base 1.11
+ _ZN8mglGraph5VectCERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph5VectCERK7mglDataS2_S2_PKc at Base 1.11
+ _ZN8mglGraph5VectCERK7mglDataS2_S2_S2_PKcf at Base 1.11
+ _ZN8mglGraph5VectCERK7mglDataS2_S2_S2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph5VectLERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph5VectLERK7mglDataS2_S2_PKc at Base 1.11
+ _ZN8mglGraph5VectLERK7mglDataS2_S2_S2_PKcf at Base 1.11
+ _ZN8mglGraph5VectLERK7mglDataS2_S2_S2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph5flowrEbfffRK7mglDataS2_S2_S2_S2_S2_f at Base 1.11
+ _ZN8mglGraph5flowrEbfffRK7mglDataS2_S2_S2_f at Base 1.11
+ _ZN8mglGraph6CRangeERK7mglDatabf at Base 1.11
+ _ZN8mglGraph6CloudPERK7mglDataPKcfb at Base 1.11
+ _ZN8mglGraph6CloudPERK7mglDataS2_S2_S2_PKcfb at Base 1.11
+ _ZN8mglGraph6ContF3ERK7mglDataS2_S2_S2_S2_ciPKc at Base 1.11
+ _ZN8mglGraph6ContF3ERK7mglDataS2_S2_S2_ciPKci at Base 1.11
+ _ZN8mglGraph6ContF3ERK7mglDataS2_ciPKc at Base 1.11
+ _ZN8mglGraph6ContF3ERK7mglDataciPKci at Base 1.11
+ _ZN8mglGraph6ContFAERK7mglDataPKci at Base 1.11
+ _ZN8mglGraph6ContFAERK7mglDataS2_S2_S2_PKci at Base 1.11
+ _ZN8mglGraph6ContFXERK7mglDataPKcfi at Base 1.11
+ _ZN8mglGraph6ContFXERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph6ContFYERK7mglDataPKcfi at Base 1.11
+ _ZN8mglGraph6ContFYERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph6ContFZERK7mglDataPKcfi at Base 1.11
+ _ZN8mglGraph6ContFZERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph6CutOffEPKc at Base 1.11
+ _ZN8mglGraph6FinishEv at Base 1.11
+ _ZN8mglGraph6GetPalEv at Base 1.11
+ _ZN8mglGraph6InPlotEffffPKc at Base 1.11
+ _ZN8mglGraph6InPlotEffffb at Base 1.11
+ _ZN8mglGraph6LabelwEcPKwfff at Base 1.11
+ _ZN8mglGraph6LabelwEffPKwPKcfb at Base 1.11
+ _ZN8mglGraph6LegendEffPKcff at Base 1.11
+ _ZN8mglGraph6LegendEiPKcff at Base 1.11
+ _ZN8mglGraph6LegendEiPPwPPciPKcff at Base 1.11
+ _ZN8mglGraph6PrintfE8mglPointPKcz at Base 1.11
+ _ZN8mglGraph6RegionERK7mglDataS2_PKcfb at Base 1.11
+ _ZN8mglGraph6RegionERK7mglDataS2_S2_PKcfb at Base 1.11
+ _ZN8mglGraph6RotateEfff at Base 1.11
+ _ZN8mglGraph6SetPalEPKc at Base 1.11
+ _ZN8mglGraph6SphereE8mglPointfPKc at Base 1.11
+ _ZN8mglGraph6Surf3AERK7mglDataS2_PKci at Base 1.11
+ _ZN8mglGraph6Surf3AERK7mglDataS2_S2_S2_S2_PKci at Base 1.11
+ _ZN8mglGraph6Surf3AEfRK7mglDataS2_PKc at Base 1.11
+ _ZN8mglGraph6Surf3AEfRK7mglDataS2_S2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph6Surf3CERK7mglDataS2_PKci at Base 1.11
+ _ZN8mglGraph6Surf3CERK7mglDataS2_S2_S2_S2_PKci at Base 1.11
+ _ZN8mglGraph6Surf3CEfRK7mglDataS2_PKc at Base 1.11
+ _ZN8mglGraph6Surf3CEfRK7mglDataS2_S2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph6XRangeERK7mglDatabf at Base 1.11
+ _ZN8mglGraph6YRangeERK7mglDatabf at Base 1.11
+ _ZN8mglGraph6ZRangeERK7mglDatabf at Base 1.11
+ _ZN8mglGraph6adjustEcf at Base 1.11
+ _ZN8mglGraph7AVertexEfffff at Base 1.11
+ _ZN8mglGraph7AmbientEf at Base 1.11
+ _ZN8mglGraph7BoxPlotERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph7BoxPlotERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph7ClearEqEv at Base 1.11
+ _ZN8mglGraph7EllipseE8mglPointS0_PKc at Base 1.11
+ _ZN8mglGraph7GetOrgXEc at Base 1.11
+ _ZN8mglGraph7GetOrgYEc at Base 1.11
+ _ZN8mglGraph7GetOrgZEc at Base 1.11
+ _ZN8mglGraph7PutsFitE8mglPointPKcS2_f at Base 1.11
+ _ZN8mglGraph7SetCoorEi at Base 1.11
+ _ZN8mglGraph7SetFontEP7mglFont at Base 1.11
+ _ZN8mglGraph7SetFuncEPKcS1_S1_S1_ at Base 1.11
+ _ZN8mglGraph7SetSizeEii at Base 1.11
+ _ZN8mglGraph7SetWarnEiPKc at Base 1.11
+ _ZN8mglGraph7SubPlotEiiiPKc at Base 1.11
+ _ZN8mglGraph7SubPlotEiiiff at Base 1.11
+ _ZN8mglGraph7TernaryEi at Base 1.11
+ _ZN8mglGraph7TickBoxEv at Base 1.11
+ _ZN8mglGraph7TriContERK7mglDataS2_S2_S2_PKcif at Base 1.11
+ _ZN8mglGraph7TriContERK7mglDataS2_S2_S2_S2_PKcif at Base 1.11
+ _ZN8mglGraph7TriPlotERK7mglDataS2_S2_PKcf at Base 1.11
+ _ZN8mglGraph7TriPlotERK7mglDataS2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph7TriPlotERK7mglDataS2_S2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph8CloseGIFEv at Base 1.11
+ _ZN8mglGraph8ColorbarEPKci at Base 1.11
+ _ZN8mglGraph8ColorbarERK7mglDataPKci at Base 1.11
+ _ZN8mglGraph8ColorbarERK7mglDataPKciffff at Base 1.11
+ _ZN8mglGraph8ColorbarEiffff at Base 1.11
+ _ZN8mglGraph8DrawTickEPfb at Base 1.11
+ _ZN8mglGraph8EndFrameEv at Base 1.11
+ _ZN8mglGraph8EndGroupEv at Base 1.11
+ _ZN8mglGraph8GetRatioEv at Base 1.11
+ _ZN8mglGraph8IdentityEb at Base 1.11
+ _ZN8mglGraph8NewFrameEv at Base 1.11
+ _ZN8mglGraph8QuadPlotERK7mglDataS2_S2_PKcf at Base 1.11
+ _ZN8mglGraph8QuadPlotERK7mglDataS2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph8QuadPlotERK7mglDataS2_S2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph8SetFBordEfff at Base 1.11
+ _ZN8mglGraph8SetTicksEcfif at Base 1.11
+ _ZN8mglGraph8StartGIFEPKci at Base 1.11
+ _ZN8mglGraph8TextMarkERK7mglDataPKcS4_f at Base 1.11
+ _ZN8mglGraph8TextMarkERK7mglDataPKwPKcf at Base 1.11
+ _ZN8mglGraph8TextMarkERK7mglDataS2_PKcS4_f at Base 1.11
+ _ZN8mglGraph8TextMarkERK7mglDataS2_PKwPKcf at Base 1.11
+ _ZN8mglGraph8TextMarkERK7mglDataS2_S2_PKcS4_f at Base 1.11
+ _ZN8mglGraph8TextMarkERK7mglDataS2_S2_PKwPKcf at Base 1.11
+ _ZN8mglGraph8TextMarkERK7mglDataS2_S2_S2_PKcS4_ at Base 1.11
+ _ZN8mglGraph8TextMarkERK7mglDataS2_S2_S2_PKwPKc at Base 1.11
+ _ZN8mglGraph8TriContVERK7mglDataS2_S2_S2_S2_PKcf at Base 1.11
+ _ZN8mglGraph8TriContVERK7mglDataS2_S2_S2_S2_S2_PKcf at Base 1.11
+ _ZN8mglGraph8UnrotateEb at Base 1.11
+ _ZN8mglGraph8WriteBMPEPKcS1_ at Base 1.11
+ _ZN8mglGraph8WriteEPSEPKcS1_ at Base 1.11
+ _ZN8mglGraph8WriteGIFEPKcS1_ at Base 1.11
+ _ZN8mglGraph8WritePNGEPKcS1_b at Base 1.11
+ _ZN8mglGraph8WriteSVGEPKcS1_ at Base 1.11
+ _ZN8mglGraph9AddLegendEPKcS1_ at Base 1.11
+ _ZN8mglGraph9AddLegendEPKwPKc at Base 1.11
+ _ZN8mglGraph9DrawTTickEfffffi at Base 1.11
+ _ZN8mglGraph9DrawXTickEfffffi at Base 1.11
+ _ZN8mglGraph9DrawYTickEfffffi at Base 1.11
+ _ZN8mglGraph9DrawZTickEfffffi at Base 1.11
+ _ZN8mglGraph9SelectPenEPKc at Base 1.11
+ _ZN8mglGraph9SetSchemeEPKcb at Base 1.11
+ _ZN8mglGraph9ShowImageEPKcb at Base 1.11
+ _ZN8mglGraph9WriteIDTFEPKcS1_ at Base 1.11
+ _ZN8mglGraph9WriteJPEGEPKcS1_ at Base 1.11
+ _ZN8mglGraph9cont_plotEfllPfS0_S0_S0_fbbi at Base 1.11
+ _ZN8mglGraph9tube_plotElPfS0_S0_ at Base 1.11
+ _ZN8mglGraphC1Ev at Base 1.11
+ _ZN8mglGraphC2Ev at Base 1.11
+ _ZN8mglGraphD0Ev at Base 1.11
+ _ZN8mglGraphD1Ev at Base 1.11
+ _ZN8mglGraphD2Ev at Base 1.11
+ _ZN8mglParse10AddCommandEP10mglCommandi at Base 1.11
+ _ZN8mglParse11FindCommandEPKwb at Base 1.11
+ _ZN8mglParse3PrgE at Base 1.11
+ _ZN8mglParse4ExecEP8mglGraphPKwlP6mglArgS3_ at Base 1.11
+ _ZN8mglParse5ParseEP8mglGraphPKcl at Base 1.11
+ _ZN8mglParse5ParseEP8mglGraphPKwl at Base 1.11
+ _ZN8mglParse6AddNumEPKc at Base 1.11
+ _ZN8mglParse6AddNumEPKw at Base 1.11
+ _ZN8mglParse6AddVarEPKc at Base 1.11
+ _ZN8mglParse6AddVarEPKw at Base 1.11
+ _ZN8mglParse6ExportEPwP8mglGraphPKw at Base 1.11
+ _ZN8mglParse6IsFuncEPKwPi at Base 1.11
+ _ZN8mglParse6PutArgEPKwPwb at Base 1.11
+ _ZN8mglParse7ExecuteEP8mglGraphP8_IO_FILEb at Base 1.11
+ _ZN8mglParse7ExecuteEP8mglGraphPKcPFviiS1_E at Base 1.11
+ _ZN8mglParse7ExecuteEP8mglGraphPKwPFviiS1_E at Base 1.11
+ _ZN8mglParse7ExecuteEP8mglGraphiPPKwPFviiS1_E at Base 1.11
+ _ZN8mglParse7FillArgEP8mglGraphiPPwP6mglArg at Base 1.11
+ _ZN8mglParse7FindNumEPKc at Base 1.11
+ _ZN8mglParse7FindNumEPKw at Base 1.11
+ _ZN8mglParse7FindVarEPKc at Base 1.11
+ _ZN8mglParse7FindVarEPKw at Base 1.11
+ _ZN8mglParse7PreExecEP8mglGraphlPPwP6mglArg at Base 1.11
+ _ZN8mglParse7ProcOptEP8mglGraphPw at Base 1.11
+ _ZN8mglParse8AddParamEiPKcb at Base 1.11
+ _ZN8mglParse8AddParamEiPKwb at Base 1.11
+ _ZN8mglParse8FlowExecEP8mglGraphPKwlP6mglArg at Base 1.11
+ _ZN8mglParse8ParseDatEP8mglGraphPKwR7mglData at Base 1.11
+ _ZN8mglParse8ScanFuncEPKw at Base 1.11
+ _ZN8mglParse9DeleteVarEP6mglVar at Base 1.11
+ _ZN8mglParse9DeleteVarEPKc at Base 1.11
+ _ZN8mglParse9DeleteVarEPKw at Base 1.11
+ _ZN8mglParseC1Eb at Base 1.11
+ _ZN8mglParseC2Eb at Base 1.11
+ _ZN8mglParseD1Ev at Base 1.11
+ _ZN8mglParseD2Ev at Base 1.11
+ _ZN8u3dLight10print_nodeERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.11
+ _ZN8u3dLight20print_light_resourceERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.11
+ _ZN8u3dLightD1Ev at Base 1.11
+ _ZN8u3dModel10print_nodeERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.11
+ _ZN8u3dModel16AddModelMaterialEPKfbb at Base 1.11
+ _ZN8u3dModel22print_shading_modifierERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.11
+ _ZN8u3dModel8AddColorEPKf at Base 1.11
+ _ZN8u3dModel8AddColorERK8mglColor at Base 1.11
+ _ZN8u3dModel8AddPointEPKf at Base 1.11
+ _ZN8u3dModel8AddPointERK8mglPoint at Base 1.11
+ _ZN8u3dModelC1ESsP12mglGraphIDTFRKb at Base 1.11
+ _ZN8u3dModelC2ESsP12mglGraphIDTFRKb at Base 1.11
+ _ZN8u3dModelD2Ev at Base 1.11
+ _ZNK10mglFormula4CalcEPKf at Base 1.11
+ _ZNK10mglFormula4CalcEffff at Base 1.11
+ _ZNK10mglFormula4CalcEffffff at Base 1.11
+ _ZNK10mglFormula5CalcDEPKfc at Base 1.11
+ _ZNK10mglFormula6CalcInEPKf at Base 1.11
+ _ZNK10mglFormula7CalcDInEiPKf at Base 1.11
+ _ZNK11TGAImageMin5WriteEPKc at Base 1.11
+ _ZNK11mglFormulaC4CalcEPKSt7complexIdE at Base 1.11
+ _ZNK11mglFormulaC4CalcESt7complexIdES1_S1_S1_ at Base 1.11
+ _ZNK11mglFormulaC4CalcESt7complexIdES1_S1_S1_S1_S1_ at Base 1.11
+ _ZNK11mglFormulaC6CalcInEPKSt7complexIdE at Base 1.11
+ _ZNK7mglData1vEiii at Base 1.11
+ _ZNK7mglData3MaxEPKc at Base 1.11
+ _ZNK7mglData3MinEPKc at Base 1.11
+ _ZNK7mglData3SumEPKc at Base 1.11
+ _ZNK7mglData4FindEPKcRiS2_S2_ at Base 1.11
+ _ZNK7mglData4FindEPKcciii at Base 1.11
+ _ZNK7mglData4HistERKS_iffi at Base 1.11
+ _ZNK7mglData4HistEiffi at Base 1.11
+ _ZNK7mglData4LastEPKcRiS2_S2_ at Base 1.11
+ _ZNK7mglData4SaveEPKci at Base 1.11
+ _ZNK7mglData5TraceEv at Base 1.11
+ _ZNK7mglData6ExportEPKcS1_ffi at Base 1.11
+ _ZNK7mglData6LinearEfff at Base 1.11
+ _ZNK7mglData6ResizeEiiiffffff at Base 1.11
+ _ZNK7mglData6SplineEfff at Base 1.11
+ _ZNK7mglData7CombineERKS_ at Base 1.11
+ _ZNK7mglData7FindAnyEPKc at Base 1.11
+ _ZNK7mglData7MaximalERfS0_S0_ at Base 1.11
+ _ZNK7mglData7MaximalERiS0_S0_ at Base 1.11
+ _ZNK7mglData7MaximalEv at Base 1.11
+ _ZNK7mglData7MinimalERfS0_S0_ at Base 1.11
+ _ZNK7mglData7MinimalERiS0_S0_ at Base 1.11
+ _ZNK7mglData7MinimalEv at Base 1.11
+ _ZNK7mglData7SaveHDFEPKcS1_b at Base 1.11
+ _ZNK7mglData7Spline3EfffRfS0_S0_ at Base 1.11
+ _ZNK7mglData7Spline5EfffRfS0_S0_ at Base 1.11
+ _ZNK7mglData7SubDataERKS_S1_S1_ at Base 1.11
+ _ZNK7mglData7SubDataEiii at Base 1.11
+ _ZNK7mglData8EvaluateERKS_S1_S1_b at Base 1.11
+ _ZNK7mglData8EvaluateERKS_S1_b at Base 1.11
+ _ZNK7mglData8EvaluateERKS_b at Base 1.11
+ _ZNK7mglData8MomentumEcPKc at Base 1.11
+ _ZNK7mglData8MomentumEcRfS0_ at Base 1.11
+ _ZNK7mglData8MomentumEcRfS0_S0_S0_ at Base 1.11
+ _ZNK7mglData9PrintInfoEP8_IO_FILE at Base 1.11
+ _ZNK7mglData9PrintInfoEPcb at Base 1.11
+ _ZNSs12_S_constructIPcEES0_T_S1_RKSaIcESt20forward_iterator_tag at Base 1.11
+ _ZNSt10_List_baseI10u3dLineSetSaIS0_EE8_M_clearEv at Base 1.11
+ _ZNSt10_List_baseI10u3dTextureSaIS0_EE8_M_clearEv at Base 1.11
+ _ZNSt10_List_baseI11u3dPointSetSaIS0_EE8_M_clearEv at Base 1.11
+ _ZNSt10_List_baseI7u3dMeshSaIS0_EE8_M_clearEv at Base 1.11
+ _ZNSt10_List_baseI8u3dGroupSaIS0_EE8_M_clearEv at Base 1.11
+ _ZNSt10_List_baseI8u3dLightSaIS0_EE8_M_clearEv at Base 1.11
+ _ZNSt11_Deque_baseI11u3dMaterialSaIS0_EED2Ev at Base 1.11
+ _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev at Base 1.11
+ _ZNSt4listI7u3dMeshSaIS0_EE9push_backERKS0_ at Base 1.11
+ _ZNSt5dequeI11u3dMaterialSaIS0_EE16_M_push_back_auxERKS0_ at Base 1.11
+ _ZNSt5dequeI11u3dMaterialSaIS0_EED1Ev at Base 1.11
+ _ZNSt6vectorI10TexCoord2DSaIS0_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS0_S2_EERKS0_ at Base 1.11
+ _ZNSt6vectorI7size_t3SaIS0_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS0_S2_EERKS0_ at Base 1.11
+ _ZNSt6vectorI7u3dBallSaIS0_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS0_S2_EERKS0_ at Base 1.11
+ _ZNSt6vectorI7u3dBallSaIS0_EED1Ev at Base 1.11
+ _ZNSt6vectorI7u3dLineSaIS0_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS0_S2_EERKS0_ at Base 1.11
+ _ZNSt6vectorI8mglColorSaIS0_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS0_S2_EERKS0_ at Base 1.11
+ _ZNSt6vectorI8mglPointSaIS0_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS0_S2_EERKS0_ at Base 1.11
+ _ZNSt6vectorImSaImEE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPmS1_EERKm at Base 1.11
+ _ZSt5fixedRSt8ios_base at Base 1.11
+ _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_ at Base 1.11
+ _ZTI10mglGraphAB at Base 1.11
+ _ZTI10mglGraphGL at Base 1.11
+ _ZTI10mglGraphPS at Base 1.11
+ _ZTI10mglGraphZB at Base 1.11
+ _ZTI12mglGraphIDTF at Base 1.11
+ _ZTI8mglGraph at Base 1.11
+ _ZTS10mglGraphAB at Base 1.11
+ _ZTS10mglGraphGL at Base 1.11
+ _ZTS10mglGraphPS at Base 1.11
+ _ZTS10mglGraphZB at Base 1.11
+ _ZTS12mglGraphIDTF at Base 1.11
+ _ZTS8mglGraph at Base 1.11
+ _ZTV10mglGraphAB at Base 1.11
+ _ZTV10mglGraphGL at Base 1.11
+ _ZTV10mglGraphPS at Base 1.11
+ _ZTV10mglGraphZB at Base 1.11
+ _ZTV12mglGraphIDTF at Base 1.11
+ _ZTV8mglGraph at Base 1.11
+ _ZdvRK7mglDataS1_ at Base 1.11
+ _ZdvRK7mglDataf at Base 1.11
+ _ZmiRK7mglDataS1_ at Base 1.11
+ _ZmiRK7mglDataf at Base 1.11
+ _ZmifRK7mglData at Base 1.11
+ _ZmlRK7mglDataS1_ at Base 1.11
+ _ZmlRK7mglDataf at Base 1.11
+ _ZmlfRK7mglData at Base 1.11
+ _ZplRK7mglDataS1_ at Base 1.11
+ _ZplRK7mglDataf at Base 1.11
+ _ZplfRK7mglData at Base 1.11
+ ic at Base 1.11
+ mglColorIds at Base 1.11
+ mglDefFont at Base 1.11
+ mglFormulaError at Base 1.11
+ mglNumThr at Base 1.11
+ mglWarn at Base 1.11
+ mgl_act_symb at Base 1.11
+ mgl_add_legend at Base 1.11
+ mgl_add_legend_ at Base 1.11
+ mgl_add_legendw at Base 1.11
+ mgl_add_light at Base 1.11
+ mgl_add_light_ at Base 1.11
+ mgl_add_light_rgb at Base 1.11
+ mgl_add_light_rgb_ at Base 1.11
+ mgl_add_param at Base 1.11
+ mgl_add_param_ at Base 1.11
+ mgl_add_paramw at Base 1.11
+ mgl_add_var at Base 1.11
+ mgl_add_var_ at Base 1.11
+ mgl_adjust_ticks at Base 1.11
+ mgl_adjust_ticks_ at Base 1.11
+ mgl_af2d_solve at Base 1.11
+ mgl_af2d_solve_ at Base 1.11
+ mgl_area at Base 1.11
+ mgl_area_ at Base 1.11
+ mgl_area_xy at Base 1.11
+ mgl_area_xy_ at Base 1.11
+ mgl_area_xyz at Base 1.11
+ mgl_area_xyz_ at Base 1.11
+ mgl_aspect at Base 1.11
+ mgl_aspect_ at Base 1.11
+ mgl_axial at Base 1.11
+ mgl_axial_ at Base 1.11
+ mgl_axial_val at Base 1.11
+ mgl_axial_val_ at Base 1.11
+ mgl_axial_xy at Base 1.11
+ mgl_axial_xy_ at Base 1.11
+ mgl_axial_xy_val at Base 1.11
+ mgl_axial_xy_val_ at Base 1.11
+ mgl_axis at Base 1.11
+ mgl_axis_ at Base 1.11
+ mgl_axis_grid at Base 1.11
+ mgl_axis_grid_ at Base 1.11
+ mgl_ball at Base 1.11
+ mgl_ball_ at Base 1.11
+ mgl_ball_rgb at Base 1.11
+ mgl_ball_rgb_ at Base 1.11
+ mgl_ball_str at Base 1.11
+ mgl_ball_str_ at Base 1.11
+ mgl_barh at Base 1.11
+ mgl_barh_ at Base 1.11
+ mgl_barh_yx at Base 1.11
+ mgl_barh_yx_ at Base 1.11
+ mgl_bars at Base 1.11
+ mgl_bars_ at Base 1.11
+ mgl_bars_xy at Base 1.11
+ mgl_bars_xy_ at Base 1.11
+ mgl_bars_xyz at Base 1.11
+ mgl_bars_xyz_ at Base 1.11
+ mgl_beam at Base 1.11
+ mgl_beam_ at Base 1.11
+ mgl_beam_val at Base 1.11
+ mgl_beam_val_ at Base 1.11
+ mgl_belt at Base 1.11
+ mgl_belt_ at Base 1.11
+ mgl_belt_xy at Base 1.11
+ mgl_belt_xy_ at Base 1.11
+ mgl_box at Base 1.11
+ mgl_box_ at Base 1.11
+ mgl_box_rgb at Base 1.11
+ mgl_box_rgb_ at Base 1.11
+ mgl_box_str at Base 1.11
+ mgl_box_str_ at Base 1.11
+ mgl_boxplot at Base 1.11
+ mgl_boxplot_ at Base 1.11
+ mgl_boxplot_xy at Base 1.11
+ mgl_boxplot_xy_ at Base 1.11
+ mgl_boxs at Base 1.11
+ mgl_boxs_ at Base 1.11
+ mgl_boxs_xy at Base 1.11
+ mgl_boxs_xy_ at Base 1.11
+ mgl_buf_fnt at Base 1.11
+ mgl_calc_scr at Base 1.11
+ mgl_calc_scr_ at Base 1.11
+ mgl_calc_xyz at Base 1.11
+ mgl_calc_xyz_ at Base 1.11
+ mgl_chart at Base 1.11
+ mgl_chart_ at Base 1.11
+ mgl_clear_legend at Base 1.11
+ mgl_clear_legend_ at Base 1.11
+ mgl_clf at Base 1.11
+ mgl_clf_ at Base 1.11
+ mgl_clf_rgb at Base 1.11
+ mgl_clf_rgb_ at Base 1.11
+ mgl_close_gif at Base 1.11
+ mgl_cloud at Base 1.11
+ mgl_cloud_ at Base 1.11
+ mgl_cloud_xyz at Base 1.11
+ mgl_cloud_xyz_ at Base 1.11
+ mgl_cloudp at Base 1.11
+ mgl_cloudp_ at Base 1.11
+ mgl_cloudp_xyz at Base 1.11
+ mgl_cloudp_xyz_ at Base 1.11
+ mgl_colorbar at Base 1.11
+ mgl_colorbar_ at Base 1.11
+ mgl_colorbar_ext at Base 1.11
+ mgl_colorbar_ext_ at Base 1.11
+ mgl_colorbar_val at Base 1.11
+ mgl_colorbar_val_ at Base 1.11
+ mgl_columnplot at Base 1.11
+ mgl_columnplot_ at Base 1.11
+ mgl_columnplot_d at Base 1.11
+ mgl_columnplot_d_ at Base 1.11
+ mgl_cone at Base 1.11
+ mgl_cone_ at Base 1.11
+ mgl_cont3 at Base 1.11
+ mgl_cont3_ at Base 1.11
+ mgl_cont3_val at Base 1.11
+ mgl_cont3_val_ at Base 1.11
+ mgl_cont3_xyz at Base 1.11
+ mgl_cont3_xyz_ at Base 1.11
+ mgl_cont3_xyz_val at Base 1.11
+ mgl_cont3_xyz_val_ at Base 1.11
+ mgl_cont at Base 1.11
+ mgl_cont_ at Base 1.11
+ mgl_cont_all at Base 1.11
+ mgl_cont_all_ at Base 1.11
+ mgl_cont_all_xyz at Base 1.11
+ mgl_cont_all_xyz_ at Base 1.11
+ mgl_cont_val at Base 1.11
+ mgl_cont_val_ at Base 1.11
+ mgl_cont_x at Base 1.11
+ mgl_cont_x_ at Base 1.11
+ mgl_cont_x_val at Base 1.11
+ mgl_cont_x_val_ at Base 1.11
+ mgl_cont_xy at Base 1.11
+ mgl_cont_xy_ at Base 1.11
+ mgl_cont_xy_val at Base 1.11
+ mgl_cont_xy_val_ at Base 1.11
+ mgl_cont_y at Base 1.11
+ mgl_cont_y_ at Base 1.11
+ mgl_cont_y_val at Base 1.11
+ mgl_cont_y_val_ at Base 1.11
+ mgl_cont_z at Base 1.11
+ mgl_cont_z_ at Base 1.11
+ mgl_cont_z_val at Base 1.11
+ mgl_cont_z_val_ at Base 1.11
+ mgl_contd at Base 1.11
+ mgl_contd_ at Base 1.11
+ mgl_contd_val at Base 1.11
+ mgl_contd_val_ at Base 1.11
+ mgl_contd_xy at Base 1.11
+ mgl_contd_xy_ at Base 1.11
+ mgl_contd_xy_val at Base 1.11
+ mgl_contd_xy_val_ at Base 1.11
+ mgl_contf3 at Base 1.11
+ mgl_contf3_ at Base 1.11
+ mgl_contf3_val at Base 1.11
+ mgl_contf3_val_ at Base 1.11
+ mgl_contf3_xyz at Base 1.11
+ mgl_contf3_xyz_ at Base 1.11
+ mgl_contf3_xyz_val at Base 1.11
+ mgl_contf3_xyz_val_ at Base 1.11
+ mgl_contf at Base 1.11
+ mgl_contf_ at Base 1.11
+ mgl_contf_all at Base 1.11
+ mgl_contf_all_ at Base 1.11
+ mgl_contf_all_xyz at Base 1.11
+ mgl_contf_all_xyz_ at Base 1.11
+ mgl_contf_val at Base 1.11
+ mgl_contf_val_ at Base 1.11
+ mgl_contf_x at Base 1.11
+ mgl_contf_x_ at Base 1.11
+ mgl_contf_x_val at Base 1.11
+ mgl_contf_x_val_ at Base 1.11
+ mgl_contf_xy at Base 1.11
+ mgl_contf_xy_ at Base 1.11
+ mgl_contf_xy_val at Base 1.11
+ mgl_contf_xy_val_ at Base 1.11
+ mgl_contf_y at Base 1.11
+ mgl_contf_y_ at Base 1.11
+ mgl_contf_y_val at Base 1.11
+ mgl_contf_y_val_ at Base 1.11
+ mgl_contf_z at Base 1.11
+ mgl_contf_z_ at Base 1.11
+ mgl_contf_z_val at Base 1.11
+ mgl_contf_z_val_ at Base 1.11
+ mgl_copy_font at Base 1.11
+ mgl_copy_font_ at Base 1.11
+ mgl_create_data at Base 1.11
+ mgl_create_data_ at Base 1.11
+ mgl_create_data_file at Base 1.11
+ mgl_create_data_file_ at Base 1.11
+ mgl_create_data_size at Base 1.11
+ mgl_create_data_size_ at Base 1.11
+ mgl_create_graph_gl at Base 1.11
+ mgl_create_graph_gl_ at Base 1.11
+ mgl_create_graph_idtf at Base 1.11
+ mgl_create_graph_idtf_ at Base 1.11
+ mgl_create_graph_ps at Base 1.11
+ mgl_create_graph_ps_ at Base 1.11
+ mgl_create_graph_zb at Base 1.11
+ mgl_create_graph_zb_ at Base 1.11
+ mgl_create_parser at Base 1.11
+ mgl_create_parser_ at Base 1.11
+ mgl_crust at Base 1.11
+ mgl_crust_ at Base 1.11
+ mgl_crust_tr at Base 1.11
+ mgl_crust_tr_ at Base 1.11
+ mgl_cur at Base 1.11
+ mgl_curve at Base 1.11
+ mgl_curve_ at Base 1.11
+ mgl_data_add_dat at Base 1.11
+ mgl_data_add_dat_ at Base 1.11
+ mgl_data_add_num at Base 1.11
+ mgl_data_add_num_ at Base 1.11
+ mgl_data_column at Base 1.11
+ mgl_data_column_ at Base 1.11
+ mgl_data_combine at Base 1.11
+ mgl_data_combine_ at Base 1.11
+ mgl_data_cosfft at Base 1.11
+ mgl_data_cosfft_ at Base 1.11
+ mgl_data_create at Base 1.11
+ mgl_data_create_ at Base 1.11
+ mgl_data_crop at Base 1.11
+ mgl_data_crop_ at Base 1.11
+ mgl_data_cumsum at Base 1.11
+ mgl_data_cumsum_ at Base 1.11
+ mgl_data_data at Base 1.11
+ mgl_data_data_ at Base 1.11
+ mgl_data_delete at Base 1.11
+ mgl_data_delete_ at Base 1.11
+ mgl_data_diff2 at Base 1.11
+ mgl_data_diff2_ at Base 1.11
+ mgl_data_diff at Base 1.11
+ mgl_data_diff_ at Base 1.11
+ mgl_data_diff_par at Base 1.11
+ mgl_data_diff_par_ at Base 1.11
+ mgl_data_div_dat at Base 1.11
+ mgl_data_div_dat_ at Base 1.11
+ mgl_data_div_num at Base 1.11
+ mgl_data_div_num_ at Base 1.11
+ mgl_data_envelop at Base 1.11
+ mgl_data_envelop_ at Base 1.11
+ mgl_data_evaluate_i at Base 1.11
+ mgl_data_evaluate_i_ at Base 1.11
+ mgl_data_evaluate_ij at Base 1.11
+ mgl_data_evaluate_ij_ at Base 1.11
+ mgl_data_evaluate_ijk at Base 1.11
+ mgl_data_evaluate_ijk_ at Base 1.11
+ mgl_data_export at Base 1.11
+ mgl_data_extend at Base 1.11
+ mgl_data_extend_ at Base 1.11
+ mgl_data_fill at Base 1.11
+ mgl_data_fill_ at Base 1.11
+ mgl_data_fill_eq at Base 1.11
+ mgl_data_fill_eq_ at Base 1.11
+ mgl_data_fill_sample at Base 1.11
+ mgl_data_fill_sample_ at Base 1.11
+ mgl_data_find at Base 1.11
+ mgl_data_find_ at Base 1.11
+ mgl_data_find_any at Base 1.11
+ mgl_data_find_any_ at Base 1.11
+ mgl_data_first at Base 1.11
+ mgl_data_first_ at Base 1.11
+ mgl_data_get_nx at Base 1.11
+ mgl_data_get_nx_ at Base 1.11
+ mgl_data_get_ny at Base 1.11
+ mgl_data_get_ny_ at Base 1.11
+ mgl_data_get_nz at Base 1.11
+ mgl_data_get_nz_ at Base 1.11
+ mgl_data_get_value at Base 1.11
+ mgl_data_get_value_ at Base 1.11
+ mgl_data_hankel at Base 1.11
+ mgl_data_hankel_ at Base 1.11
+ mgl_data_hist at Base 1.11
+ mgl_data_hist_ at Base 1.11
+ mgl_data_hist_w at Base 1.11
+ mgl_data_hist_w_ at Base 1.11
+ mgl_data_import at Base 1.11
+ mgl_data_insert at Base 1.11
+ mgl_data_insert_ at Base 1.11
+ mgl_data_integral at Base 1.11
+ mgl_data_integral_ at Base 1.11
+ mgl_data_last at Base 1.11
+ mgl_data_last_ at Base 1.11
+ mgl_data_linear1 at Base 1.11
+ mgl_data_linear1_ at Base 1.11
+ mgl_data_linear at Base 1.11
+ mgl_data_linear_ at Base 1.11
+ mgl_data_max at Base 1.11
+ mgl_data_max_ at Base 1.11
+ mgl_data_max_dir at Base 1.11
+ mgl_data_max_dir_ at Base 1.11
+ mgl_data_max_int at Base 1.11
+ mgl_data_max_int_ at Base 1.11
+ mgl_data_max_real at Base 1.11
+ mgl_data_max_real_ at Base 1.11
+ mgl_data_min at Base 1.11
+ mgl_data_min_ at Base 1.11
+ mgl_data_min_dir at Base 1.11
+ mgl_data_min_dir_ at Base 1.11
+ mgl_data_min_int at Base 1.11
+ mgl_data_min_int_ at Base 1.11
+ mgl_data_min_real at Base 1.11
+ mgl_data_min_real_ at Base 1.11
+ mgl_data_mirror at Base 1.11
+ mgl_data_mirror_ at Base 1.11
+ mgl_data_modify at Base 1.11
+ mgl_data_modify_ at Base 1.11
+ mgl_data_modify_vw at Base 1.11
+ mgl_data_modify_vw_ at Base 1.11
+ mgl_data_momentum at Base 1.11
+ mgl_data_momentum_ at Base 1.11
+ mgl_data_momentum_mw at Base 1.11
+ mgl_data_momentum_mw_ at Base 1.11
+ mgl_data_mul_dat at Base 1.11
+ mgl_data_mul_dat_ at Base 1.11
+ mgl_data_mul_num at Base 1.11
+ mgl_data_mul_num_ at Base 1.11
+ mgl_data_norm at Base 1.11
+ mgl_data_norm_ at Base 1.11
+ mgl_data_norm_slice at Base 1.11
+ mgl_data_norm_slice_ at Base 1.11
+ mgl_data_put_dat at Base 1.11
+ mgl_data_put_dat_ at Base 1.11
+ mgl_data_put_val at Base 1.11
+ mgl_data_put_val_ at Base 1.11
+ mgl_data_read at Base 1.11
+ mgl_data_read_ at Base 1.11
+ mgl_data_read_dim at Base 1.11
+ mgl_data_read_dim_ at Base 1.11
+ mgl_data_read_mat at Base 1.11
+ mgl_data_read_mat_ at Base 1.11
+ mgl_data_rearrange at Base 1.11
+ mgl_data_rearrange_ at Base 1.11
+ mgl_data_resize at Base 1.11
+ mgl_data_resize_ at Base 1.11
+ mgl_data_resize_box at Base 1.11
+ mgl_data_resize_box_ at Base 1.11
+ mgl_data_roll at Base 1.11
+ mgl_data_roll_ at Base 1.11
+ mgl_data_save at Base 1.11
+ mgl_data_save_ at Base 1.11
+ mgl_data_set at Base 1.11
+ mgl_data_set_ at Base 1.11
+ mgl_data_set_double1_ at Base 1.11
+ mgl_data_set_double2 at Base 1.11
+ mgl_data_set_double2_ at Base 1.11
+ mgl_data_set_double3 at Base 1.11
+ mgl_data_set_double3_ at Base 1.11
+ mgl_data_set_double at Base 1.11
+ mgl_data_set_double_ at Base 1.11
+ mgl_data_set_float1_ at Base 1.11
+ mgl_data_set_float2 at Base 1.11
+ mgl_data_set_float2_ at Base 1.11
+ mgl_data_set_float3 at Base 1.11
+ mgl_data_set_float3_ at Base 1.11
+ mgl_data_set_float at Base 1.11
+ mgl_data_set_float_ at Base 1.11
+ mgl_data_set_id at Base 1.11
+ mgl_data_set_id_ at Base 1.11
+ mgl_data_set_matrix at Base 1.11
+ mgl_data_set_value at Base 1.11
+ mgl_data_set_value_ at Base 1.11
+ mgl_data_set_values at Base 1.11
+ mgl_data_set_values_ at Base 1.11
+ mgl_data_set_vector at Base 1.11
+ mgl_data_sew at Base 1.11
+ mgl_data_sew_ at Base 1.11
+ mgl_data_sinfft at Base 1.11
+ mgl_data_sinfft_ at Base 1.11
+ mgl_data_smooth at Base 1.11
+ mgl_data_smooth_ at Base 1.11
+ mgl_data_spline1 at Base 1.11
+ mgl_data_spline1_ at Base 1.11
+ mgl_data_spline at Base 1.11
+ mgl_data_spline_ at Base 1.11
+ mgl_data_squeeze at Base 1.11
+ mgl_data_squeeze_ at Base 1.11
+ mgl_data_stfa at Base 1.11
+ mgl_data_stfa_ at Base 1.11
+ mgl_data_sub_dat at Base 1.11
+ mgl_data_sub_dat_ at Base 1.11
+ mgl_data_sub_num at Base 1.11
+ mgl_data_sub_num_ at Base 1.11
+ mgl_data_subdata at Base 1.11
+ mgl_data_subdata_ at Base 1.11
+ mgl_data_subdata_ext at Base 1.11
+ mgl_data_subdata_ext_ at Base 1.11
+ mgl_data_sum at Base 1.11
+ mgl_data_sum_ at Base 1.11
+ mgl_data_swap at Base 1.11
+ mgl_data_swap_ at Base 1.11
+ mgl_data_transpose at Base 1.11
+ mgl_data_transpose_ at Base 1.11
+ mgl_data_value at Base 1.11
+ mgl_delete_data at Base 1.11
+ mgl_delete_data_ at Base 1.11
+ mgl_delete_graph at Base 1.11
+ mgl_delete_graph_ at Base 1.11
+ mgl_delete_parser at Base 1.11
+ mgl_delete_parser_ at Base 1.11
+ mgl_dens3 at Base 1.11
+ mgl_dens3_ at Base 1.11
+ mgl_dens3_all at Base 1.11
+ mgl_dens3_all_ at Base 1.11
+ mgl_dens3_all_xyz at Base 1.11
+ mgl_dens3_all_xyz_ at Base 1.11
+ mgl_dens3_xyz at Base 1.11
+ mgl_dens3_xyz_ at Base 1.11
+ mgl_dens at Base 1.11
+ mgl_dens_ at Base 1.11
+ mgl_dens_x at Base 1.11
+ mgl_dens_x_ at Base 1.11
+ mgl_dens_xy at Base 1.11
+ mgl_dens_xy_ at Base 1.11
+ mgl_dens_y at Base 1.11
+ mgl_dens_y_ at Base 1.11
+ mgl_dens_z at Base 1.11
+ mgl_dens_z_ at Base 1.11
+ mgl_dew_2d at Base 1.11
+ mgl_dew_2d_ at Base 1.11
+ mgl_dew_xy at Base 1.11
+ mgl_dew_xy_ at Base 1.11
+ mgl_dots at Base 1.11
+ mgl_dots_ at Base 1.11
+ mgl_dots_a at Base 1.11
+ mgl_dots_a_ at Base 1.11
+ mgl_dots_tr at Base 1.11
+ mgl_dots_tr_ at Base 1.11
+ mgl_drop at Base 1.11
+ mgl_drop_ at Base 1.11
+ mgl_end_frame at Base 1.11
+ mgl_end_frame_ at Base 1.11
+ mgl_error at Base 1.11
+ mgl_error_ at Base 1.11
+ mgl_error_exy at Base 1.11
+ mgl_error_exy_ at Base 1.11
+ mgl_error_xy at Base 1.11
+ mgl_error_xy_ at Base 1.11
+ mgl_facex at Base 1.11
+ mgl_facex_ at Base 1.11
+ mgl_facey at Base 1.11
+ mgl_facey_ at Base 1.11
+ mgl_facez at Base 1.11
+ mgl_facez_ at Base 1.11
+ mgl_fact at Base 1.11
+ mgl_fall at Base 1.11
+ mgl_fall_ at Base 1.11
+ mgl_fall_xy at Base 1.11
+ mgl_fall_xy_ at Base 1.11
+ mgl_find_var at Base 1.11
+ mgl_find_var_ at Base 1.11
+ mgl_fit_1 at Base 1.11
+ mgl_fit_1_ at Base 1.11
+ mgl_fit_1_d at Base 1.11
+ mgl_fit_2 at Base 1.11
+ mgl_fit_2_ at Base 1.11
+ mgl_fit_2_d at Base 1.11
+ mgl_fit_3 at Base 1.11
+ mgl_fit_3_ at Base 1.11
+ mgl_fit_3_d at Base 1.11
+ mgl_fit_xy at Base 1.11
+ mgl_fit_xy_ at Base 1.11
+ mgl_fit_xy_d at Base 1.11
+ mgl_fit_xys at Base 1.11
+ mgl_fit_xys_ at Base 1.11
+ mgl_fit_xys_d at Base 1.11
+ mgl_fit_xyz at Base 1.11
+ mgl_fit_xyz_ at Base 1.11
+ mgl_fit_xyz_d at Base 1.11
+ mgl_fit_xyza at Base 1.11
+ mgl_fit_xyza_ at Base 1.11
+ mgl_fit_xyza_d at Base 1.11
+ mgl_fit_xyzas at Base 1.11
+ mgl_fit_xyzas_ at Base 1.11
+ mgl_fit_xyzas_d at Base 1.11
+ mgl_fit_xyzs at Base 1.11
+ mgl_fit_xyzs_ at Base 1.11
+ mgl_fit_xyzs_d at Base 1.11
+ mgl_fit_ys at Base 1.11
+ mgl_fit_ys_ at Base 1.11
+ mgl_fit_ys_d at Base 1.11
+ mgl_flow_2d at Base 1.11
+ mgl_flow_2d_ at Base 1.11
+ mgl_flow_3d at Base 1.11
+ mgl_flow_3d_ at Base 1.11
+ mgl_flow_xy at Base 1.11
+ mgl_flow_xy_ at Base 1.11
+ mgl_flow_xyz at Base 1.11
+ mgl_flow_xyz_ at Base 1.11
+ mgl_flowp_2d at Base 1.11
+ mgl_flowp_2d_ at Base 1.11
+ mgl_flowp_3d at Base 1.11
+ mgl_flowp_3d_ at Base 1.11
+ mgl_flowp_xy at Base 1.11
+ mgl_flowp_xy_ at Base 1.11
+ mgl_flowp_xyz at Base 1.11
+ mgl_flowp_xyz_ at Base 1.11
+ mgl_flush at Base 1.11
+ mgl_flush_ at Base 1.11
+ mgl_fortran_func at Base 1.11
+ mgl_fplot at Base 1.11
+ mgl_fplot_ at Base 1.11
+ mgl_fplot_xyz at Base 1.11
+ mgl_fplot_xyz_ at Base 1.11
+ mgl_fsurf at Base 1.11
+ mgl_fsurf_ at Base 1.11
+ mgl_fsurf_xyz at Base 1.11
+ mgl_fsurf_xyz_ at Base 1.11
+ mgl_gen_fnt at Base 1.11
+ mgl_get_fit at Base 1.11
+ mgl_get_height at Base 1.11
+ mgl_get_height_ at Base 1.11
+ mgl_get_last_mouse_pos at Base 1.11
+ mgl_get_last_mouse_pos_ at Base 1.11
+ mgl_get_num_frame at Base 1.11
+ mgl_get_num_frame_ at Base 1.11
+ mgl_get_rgb at Base 1.11
+ mgl_get_rgb_ at Base 1.11
+ mgl_get_rgba at Base 1.11
+ mgl_get_rgba_ at Base 1.11
+ mgl_get_warn at Base 1.11
+ mgl_get_warn_ at Base 1.11
+ mgl_get_width at Base 1.11
+ mgl_get_width_ at Base 1.11
+ mgl_grad at Base 1.11
+ mgl_grad_ at Base 1.11
+ mgl_grad_xy at Base 1.11
+ mgl_grad_xy_ at Base 1.11
+ mgl_grad_xyz at Base 1.11
+ mgl_grad_xyz_ at Base 1.11
+ mgl_grid3 at Base 1.11
+ mgl_grid3_ at Base 1.11
+ mgl_grid3_all at Base 1.11
+ mgl_grid3_all_ at Base 1.11
+ mgl_grid3_all_xyz at Base 1.11
+ mgl_grid3_all_xyz_ at Base 1.11
+ mgl_grid3_xyz at Base 1.11
+ mgl_grid3_xyz_ at Base 1.11
+ mgl_grid at Base 1.11
+ mgl_grid_ at Base 1.11
+ mgl_grid_xy at Base 1.11
+ mgl_grid_xy_ at Base 1.11
+ mgl_hist_x at Base 1.11
+ mgl_hist_x_ at Base 1.11
+ mgl_hist_xy at Base 1.11
+ mgl_hist_xy_ at Base 1.11
+ mgl_hist_xyz at Base 1.11
+ mgl_hist_xyz_ at Base 1.11
+ mgl_identity at Base 1.11
+ mgl_identity_ at Base 1.11
+ mgl_inplot at Base 1.11
+ mgl_inplot_ at Base 1.11
+ mgl_jacobian_2d at Base 1.11
+ mgl_jacobian_2d_ at Base 1.11
+ mgl_jacobian_3d at Base 1.11
+ mgl_jacobian_3d_ at Base 1.11
+ mgl_label at Base 1.11
+ mgl_label_ at Base 1.11
+ mgl_label_ext at Base 1.11
+ mgl_label_ext_ at Base 1.11
+ mgl_label_xy at Base 1.11
+ mgl_label_xy_ at Base 1.11
+ mgl_labelw_ext at Base 1.11
+ mgl_labelw_xy at Base 1.11
+ mgl_legend at Base 1.11
+ mgl_legend_ at Base 1.11
+ mgl_legend_xy at Base 1.11
+ mgl_legend_xy_ at Base 1.11
+ mgl_line at Base 1.11
+ mgl_line_ at Base 1.11
+ mgl_load_font at Base 1.11
+ mgl_load_font_ at Base 1.11
+ mgl_map at Base 1.11
+ mgl_map_ at Base 1.11
+ mgl_map_xy at Base 1.11
+ mgl_map_xy_ at Base 1.11
+ mgl_mark at Base 1.11
+ mgl_mark_ at Base 1.11
+ mgl_mark_xy at Base 1.11
+ mgl_mark_xy_ at Base 1.11
+ mgl_mark_xyz at Base 1.11
+ mgl_mark_xyz_ at Base 1.11
+ mgl_mark_y at Base 1.11
+ mgl_mark_y_ at Base 1.11
+ mgl_mat_pop at Base 1.11
+ mgl_mat_pop_ at Base 1.11
+ mgl_mat_push at Base 1.11
+ mgl_mat_push_ at Base 1.11
+ mgl_mesh at Base 1.11
+ mgl_mesh_ at Base 1.11
+ mgl_mesh_xy at Base 1.11
+ mgl_mesh_xy_ at Base 1.11
+ mgl_new_frame at Base 1.11
+ mgl_new_frame_ at Base 1.11
+ mgl_numg at Base 1.11
+ mgl_parse at Base 1.11
+ mgl_parse_ at Base 1.11
+ mgl_parse_text at Base 1.11
+ mgl_parse_text_ at Base 1.11
+ mgl_parser_allow_setsize at Base 1.11
+ mgl_parser_allow_setsize_ at Base 1.11
+ mgl_parsew at Base 1.11
+ mgl_parsew_text at Base 1.11
+ mgl_pde_solve at Base 1.11
+ mgl_pde_solve_ at Base 1.11
+ mgl_perspective at Base 1.11
+ mgl_perspective_ at Base 1.11
+ mgl_pipe_2d at Base 1.11
+ mgl_pipe_2d_ at Base 1.11
+ mgl_pipe_3d at Base 1.11
+ mgl_pipe_3d_ at Base 1.11
+ mgl_pipe_xy at Base 1.11
+ mgl_pipe_xy_ at Base 1.11
+ mgl_pipe_xyz at Base 1.11
+ mgl_pipe_xyz_ at Base 1.11
+ mgl_plot at Base 1.11
+ mgl_plot_ at Base 1.11
+ mgl_plot_xy at Base 1.11
+ mgl_plot_xy_ at Base 1.11
+ mgl_plot_xyz at Base 1.11
+ mgl_plot_xyz_ at Base 1.11
+ mgl_puts at Base 1.11
+ mgl_puts_ at Base 1.11
+ mgl_puts_dir at Base 1.11
+ mgl_puts_ext at Base 1.11
+ mgl_puts_ext_ at Base 1.11
+ mgl_puts_fit at Base 1.11
+ mgl_puts_fit_ at Base 1.11
+ mgl_putsw at Base 1.11
+ mgl_putsw_dir at Base 1.11
+ mgl_putsw_ext at Base 1.11
+ mgl_qo2d_solve at Base 1.11
+ mgl_qo2d_solve_ at Base 1.11
+ mgl_quadplot_xy at Base 1.11
+ mgl_quadplot_xy_ at Base 1.11
+ mgl_quadplot_xyz at Base 1.11
+ mgl_quadplot_xyz_ at Base 1.11
+ mgl_quadplot_xyzc at Base 1.11
+ mgl_quadplot_xyzc_ at Base 1.11
+ mgl_radar at Base 1.11
+ mgl_radar_ at Base 1.11
+ mgl_ray_trace at Base 1.11
+ mgl_ray_trace_ at Base 1.11
+ mgl_region at Base 1.11
+ mgl_region_ at Base 1.11
+ mgl_region_xy at Base 1.11
+ mgl_region_xy_ at Base 1.11
+ mgl_relplot at Base 1.11
+ mgl_relplot_ at Base 1.11
+ mgl_reset_frames at Base 1.11
+ mgl_reset_frames_ at Base 1.11
+ mgl_restore_font at Base 1.11
+ mgl_restore_font_ at Base 1.11
+ mgl_restore_once at Base 1.11
+ mgl_restore_once_ at Base 1.11
+ mgl_rng at Base 1.11
+ mgl_rotate at Base 1.11
+ mgl_rotate_ at Base 1.11
+ mgl_rotate_vector at Base 1.11
+ mgl_rotate_vector_ at Base 1.11
+ mgl_scan_func at Base 1.11
+ mgl_set_alpha at Base 1.11
+ mgl_set_alpha_ at Base 1.11
+ mgl_set_alpha_default at Base 1.11
+ mgl_set_alpha_default_ at Base 1.11
+ mgl_set_ambbr at Base 1.11
+ mgl_set_ambbr_ at Base 1.11
+ mgl_set_arrow_size at Base 1.11
+ mgl_set_arrow_size_ at Base 1.11
+ mgl_set_auto at Base 1.11
+ mgl_set_auto_ at Base 1.11
+ mgl_set_axial_dir at Base 1.11
+ mgl_set_axial_dir_ at Base 1.11
+ mgl_set_axis at Base 1.11
+ mgl_set_axis_2d at Base 1.11
+ mgl_set_axis_2d_ at Base 1.11
+ mgl_set_axis_3d at Base 1.11
+ mgl_set_axis_3d_ at Base 1.11
+ mgl_set_axis_ at Base 1.11
+ mgl_set_bar_width at Base 1.11
+ mgl_set_bar_width_ at Base 1.11
+ mgl_set_base_line_width at Base 1.11
+ mgl_set_base_line_width_ at Base 1.11
+ mgl_set_caxis at Base 1.11
+ mgl_set_caxis_ at Base 1.11
+ mgl_set_coor at Base 1.11
+ mgl_set_coor_ at Base 1.11
+ mgl_set_crange at Base 1.11
+ mgl_set_crange_ at Base 1.11
+ mgl_set_ctt at Base 1.11
+ mgl_set_ctt_ at Base 1.11
+ mgl_set_cttw at Base 1.11
+ mgl_set_cut at Base 1.11
+ mgl_set_cut_ at Base 1.11
+ mgl_set_cut_box at Base 1.11
+ mgl_set_cut_box_ at Base 1.11
+ mgl_set_cutoff at Base 1.11
+ mgl_set_cutoff_ at Base 1.11
+ mgl_set_def_param at Base 1.11
+ mgl_set_def_param_ at Base 1.11
+ mgl_set_draw_face at Base 1.11
+ mgl_set_draw_face_ at Base 1.11
+ mgl_set_fog at Base 1.11
+ mgl_set_fog_ at Base 1.11
+ mgl_set_font_def at Base 1.11
+ mgl_set_font_def_ at Base 1.11
+ mgl_set_font_size at Base 1.11
+ mgl_set_font_size_ at Base 1.11
+ mgl_set_func at Base 1.11
+ mgl_set_func_ at Base 1.11
+ mgl_set_func_ext at Base 1.11
+ mgl_set_func_ext_ at Base 1.11
+ mgl_set_legend_box at Base 1.11
+ mgl_set_legend_box_ at Base 1.11
+ mgl_set_legend_marks at Base 1.11
+ mgl_set_legend_marks_ at Base 1.11
+ mgl_set_light at Base 1.11
+ mgl_set_light_ at Base 1.11
+ mgl_set_light_n at Base 1.11
+ mgl_set_light_n_ at Base 1.11
+ mgl_set_mark_size at Base 1.11
+ mgl_set_mark_size_ at Base 1.11
+ mgl_set_meshnum at Base 1.11
+ mgl_set_meshnum_ at Base 1.11
+ mgl_set_origin at Base 1.11
+ mgl_set_origin_ at Base 1.11
+ mgl_set_pal_color at Base 1.11
+ mgl_set_pal_color_ at Base 1.11
+ mgl_set_pal_num at Base 1.11
+ mgl_set_pal_num_ at Base 1.11
+ mgl_set_palette at Base 1.11
+ mgl_set_palette_ at Base 1.11
+ mgl_set_plotfactor at Base 1.11
+ mgl_set_plotfactor_ at Base 1.11
+ mgl_set_rotated_text at Base 1.11
+ mgl_set_rotated_text_ at Base 1.11
+ mgl_set_scheme at Base 1.11
+ mgl_set_scheme_ at Base 1.11
+ mgl_set_show_mouse_pos at Base 1.11
+ mgl_set_show_mouse_pos_ at Base 1.11
+ mgl_set_size at Base 1.11
+ mgl_set_size_ at Base 1.11
+ mgl_set_subticks at Base 1.11
+ mgl_set_subticks_ at Base 1.11
+ mgl_set_ternary at Base 1.11
+ mgl_set_ternary_ at Base 1.11
+ mgl_set_tick_len at Base 1.11
+ mgl_set_tick_len_ at Base 1.11
+ mgl_set_tick_origin at Base 1.11
+ mgl_set_tick_origin_ at Base 1.11
+ mgl_set_tick_stl at Base 1.11
+ mgl_set_tick_stl_ at Base 1.11
+ mgl_set_ticks at Base 1.11
+ mgl_set_ticks_ at Base 1.11
+ mgl_set_ticks_dir at Base 1.11
+ mgl_set_ticks_val at Base 1.11
+ mgl_set_ticks_vals at Base 1.11
+ mgl_set_transp at Base 1.11
+ mgl_set_transp_ at Base 1.11
+ mgl_set_transp_type at Base 1.11
+ mgl_set_transp_type_ at Base 1.11
+ mgl_set_xrange at Base 1.11
+ mgl_set_xrange_ at Base 1.11
+ mgl_set_xtt at Base 1.11
+ mgl_set_xtt_ at Base 1.11
+ mgl_set_xttw at Base 1.11
+ mgl_set_yrange at Base 1.11
+ mgl_set_yrange_ at Base 1.11
+ mgl_set_ytt at Base 1.11
+ mgl_set_ytt_ at Base 1.11
+ mgl_set_yttw at Base 1.11
+ mgl_set_zoom at Base 1.11
+ mgl_set_zoom_ at Base 1.11
+ mgl_set_zrange at Base 1.11
+ mgl_set_zrange_ at Base 1.11
+ mgl_set_ztt at Base 1.11
+ mgl_set_ztt_ at Base 1.11
+ mgl_set_zttw at Base 1.11
+ mgl_show_image at Base 1.11
+ mgl_show_image_ at Base 1.11
+ mgl_simple_plot at Base 1.11
+ mgl_simple_plot_ at Base 1.11
+ mgl_sphere at Base 1.11
+ mgl_sphere_ at Base 1.11
+ mgl_start_gif at Base 1.11
+ mgl_start_gif_ at Base 1.11
+ mgl_stem at Base 1.11
+ mgl_stem_ at Base 1.11
+ mgl_stem_xy at Base 1.11
+ mgl_stem_xy_ at Base 1.11
+ mgl_stem_xyz at Base 1.11
+ mgl_stem_xyz_ at Base 1.11
+ mgl_step at Base 1.11
+ mgl_step_ at Base 1.11
+ mgl_step_xy at Base 1.11
+ mgl_step_xy_ at Base 1.11
+ mgl_step_xyz at Base 1.11
+ mgl_step_xyz_ at Base 1.11
+ mgl_stfa at Base 1.11
+ mgl_stfa_ at Base 1.11
+ mgl_stfa_xy at Base 1.11
+ mgl_stfa_xy_ at Base 1.11
+ mgl_stickplot at Base 1.11
+ mgl_stickplot_ at Base 1.11
+ mgl_subplot at Base 1.11
+ mgl_subplot_ at Base 1.11
+ mgl_subplot_d at Base 1.11
+ mgl_subplot_d_ at Base 1.11
+ mgl_subplot_s at Base 1.11
+ mgl_subplot_s_ at Base 1.11
+ mgl_surf3 at Base 1.11
+ mgl_surf3_ at Base 1.11
+ mgl_surf3_val at Base 1.11
+ mgl_surf3_val_ at Base 1.11
+ mgl_surf3_xyz at Base 1.11
+ mgl_surf3_xyz_ at Base 1.11
+ mgl_surf3_xyz_val at Base 1.11
+ mgl_surf3_xyz_val_ at Base 1.11
+ mgl_surf3a at Base 1.11
+ mgl_surf3a_ at Base 1.11
+ mgl_surf3a_val at Base 1.11
+ mgl_surf3a_val_ at Base 1.11
+ mgl_surf3a_xyz at Base 1.11
+ mgl_surf3a_xyz_ at Base 1.11
+ mgl_surf3a_xyz_val at Base 1.11
+ mgl_surf3a_xyz_val_ at Base 1.11
+ mgl_surf3c at Base 1.11
+ mgl_surf3c_ at Base 1.11
+ mgl_surf3c_val at Base 1.11
+ mgl_surf3c_val_ at Base 1.11
+ mgl_surf3c_xyz at Base 1.11
+ mgl_surf3c_xyz_ at Base 1.11
+ mgl_surf3c_xyz_val at Base 1.11
+ mgl_surf3c_xyz_val_ at Base 1.11
+ mgl_surf at Base 1.11
+ mgl_surf_ at Base 1.11
+ mgl_surf_xy at Base 1.11
+ mgl_surf_xy_ at Base 1.11
+ mgl_surfa at Base 1.11
+ mgl_surfa_ at Base 1.11
+ mgl_surfa_xy at Base 1.11
+ mgl_surfa_xy_ at Base 1.11
+ mgl_surfc at Base 1.11
+ mgl_surfc_ at Base 1.11
+ mgl_surfc_xy at Base 1.11
+ mgl_surfc_xy_ at Base 1.11
+ mgl_tens at Base 1.11
+ mgl_tens_ at Base 1.11
+ mgl_tens_xy at Base 1.11
+ mgl_tens_xy_ at Base 1.11
+ mgl_tens_xyz at Base 1.11
+ mgl_tens_xyz_ at Base 1.11
+ mgl_tex_symb at Base 1.11
+ mgl_text at Base 1.11
+ mgl_text_ at Base 1.11
+ mgl_text_ext at Base 1.11
+ mgl_text_ext_ at Base 1.11
+ mgl_text_xy at Base 1.11
+ mgl_text_xy_ at Base 1.11
+ mgl_text_xyz at Base 1.11
+ mgl_text_xyz_ at Base 1.11
+ mgl_text_y at Base 1.11
+ mgl_text_y_ at Base 1.11
+ mgl_textmark at Base 1.11
+ mgl_textmark_ at Base 1.11
+ mgl_textmark_xyr at Base 1.11
+ mgl_textmark_xyr_ at Base 1.11
+ mgl_textmark_xyzr at Base 1.11
+ mgl_textmark_xyzr_ at Base 1.11
+ mgl_textmark_yr at Base 1.11
+ mgl_textmark_yr_ at Base 1.11
+ mgl_textmarkw at Base 1.11
+ mgl_textmarkw_xyr at Base 1.11
+ mgl_textmarkw_xyzr at Base 1.11
+ mgl_textmarkw_yr at Base 1.11
+ mgl_tile at Base 1.11
+ mgl_tile_ at Base 1.11
+ mgl_tile_xy at Base 1.11
+ mgl_tile_xy_ at Base 1.11
+ mgl_tiles at Base 1.11
+ mgl_tiles_ at Base 1.11
+ mgl_tiles_xy at Base 1.11
+ mgl_tiles_xy_ at Base 1.11
+ mgl_title at Base 1.11
+ mgl_title_ at Base 1.11
+ mgl_titlew at Base 1.11
+ mgl_torus at Base 1.11
+ mgl_torus_ at Base 1.11
+ mgl_traj_xy at Base 1.11
+ mgl_traj_xy_ at Base 1.11
+ mgl_traj_xyz at Base 1.11
+ mgl_traj_xyz_ at Base 1.11
+ mgl_transform at Base 1.11
+ mgl_transform_ at Base 1.11
+ mgl_transform_a at Base 1.11
+ mgl_transform_a_ at Base 1.11
+ mgl_tricont_xyz at Base 1.11
+ mgl_tricont_xyz_ at Base 1.11
+ mgl_tricont_xyzc at Base 1.11
+ mgl_tricont_xyzc_ at Base 1.11
+ mgl_tricont_xyzcv at Base 1.11
+ mgl_tricont_xyzcv_ at Base 1.11
+ mgl_tricont_xyzv at Base 1.11
+ mgl_tricont_xyzv_ at Base 1.11
+ mgl_triplot_xy at Base 1.11
+ mgl_triplot_xy_ at Base 1.11
+ mgl_triplot_xyz at Base 1.11
+ mgl_triplot_xyz_ at Base 1.11
+ mgl_triplot_xyzc at Base 1.11
+ mgl_triplot_xyzc_ at Base 1.11
+ mgl_tube at Base 1.11
+ mgl_tube_ at Base 1.11
+ mgl_tube_r at Base 1.11
+ mgl_tube_r_ at Base 1.11
+ mgl_tube_xy at Base 1.11
+ mgl_tube_xy_ at Base 1.11
+ mgl_tube_xyr at Base 1.11
+ mgl_tube_xyr_ at Base 1.11
+ mgl_tube_xyz at Base 1.11
+ mgl_tube_xyz_ at Base 1.11
+ mgl_tube_xyzr at Base 1.11
+ mgl_tube_xyzr_ at Base 1.11
+ mgl_tune_ticks at Base 1.11
+ mgl_tune_ticks_ at Base 1.11
+ mgl_update at Base 1.11
+ mgl_vect_2d at Base 1.11
+ mgl_vect_2d_ at Base 1.11
+ mgl_vect_3d at Base 1.11
+ mgl_vect_3d_ at Base 1.11
+ mgl_vect_xy at Base 1.11
+ mgl_vect_xy_ at Base 1.11
+ mgl_vect_xyz at Base 1.11
+ mgl_vect_xyz_ at Base 1.11
+ mgl_vectc_2d at Base 1.11
+ mgl_vectc_2d_ at Base 1.11
+ mgl_vectc_3d at Base 1.11
+ mgl_vectc_3d_ at Base 1.11
+ mgl_vectc_xy at Base 1.11
+ mgl_vectc_xy_ at Base 1.11
+ mgl_vectc_xyz at Base 1.11
+ mgl_vectc_xyz_ at Base 1.11
+ mgl_vectl_2d at Base 1.11
+ mgl_vectl_2d_ at Base 1.11
+ mgl_vectl_3d at Base 1.11
+ mgl_vectl_3d_ at Base 1.11
+ mgl_vectl_xy at Base 1.11
+ mgl_vectl_xy_ at Base 1.11
+ mgl_vectl_xyz at Base 1.11
+ mgl_vectl_xyz_ at Base 1.11
+ mgl_wnd_adjust at Base 1.11
+ mgl_wnd_adjust_ at Base 1.11
+ mgl_wnd_animation at Base 1.11
+ mgl_wnd_animation_ at Base 1.11
+ mgl_wnd_next_frame at Base 1.11
+ mgl_wnd_next_frame_ at Base 1.11
+ mgl_wnd_prev_frame at Base 1.11
+ mgl_wnd_prev_frame_ at Base 1.11
+ mgl_wnd_reload at Base 1.11
+ mgl_wnd_reload_ at Base 1.11
+ mgl_wnd_set_auto_clf at Base 1.11
+ mgl_wnd_set_auto_clf_ at Base 1.11
+ mgl_wnd_set_clf_update at Base 1.11
+ mgl_wnd_set_clf_update_ at Base 1.11
+ mgl_wnd_set_delay at Base 1.11
+ mgl_wnd_set_delay_ at Base 1.11
+ mgl_wnd_set_show_mouse_pos at Base 1.11
+ mgl_wnd_set_show_mouse_pos_ at Base 1.11
+ mgl_wnd_toggle_alpha at Base 1.11
+ mgl_wnd_toggle_alpha_ at Base 1.11
+ mgl_wnd_toggle_light at Base 1.11
+ mgl_wnd_toggle_light_ at Base 1.11
+ mgl_wnd_toggle_no at Base 1.11
+ mgl_wnd_toggle_no_ at Base 1.11
+ mgl_wnd_toggle_rotate at Base 1.11
+ mgl_wnd_toggle_rotate_ at Base 1.11
+ mgl_wnd_toggle_zoom at Base 1.11
+ mgl_wnd_toggle_zoom_ at Base 1.11
+ mgl_wnd_update at Base 1.11
+ mgl_wnd_update_ at Base 1.11
+ mgl_write_bmp at Base 1.11
+ mgl_write_bmp_ at Base 1.11
+ mgl_write_eps at Base 1.11
+ mgl_write_eps_ at Base 1.11
+ mgl_write_frame at Base 1.11
+ mgl_write_frame_ at Base 1.11
+ mgl_write_gif at Base 1.11
+ mgl_write_gif_ at Base 1.11
+ mgl_write_idtf at Base 1.11
+ mgl_write_idtf_ at Base 1.11
+ mgl_write_jpg at Base 1.11
+ mgl_write_jpg_ at Base 1.11
+ mgl_write_png at Base 1.11
+ mgl_write_png_ at Base 1.11
+ mgl_write_png_solid at Base 1.11
+ mgl_write_png_solid_ at Base 1.11
+ mgl_write_svg at Base 1.11
+ mgl_write_svg_ at Base 1.11
+ mgls_base_cmd at Base 1.11
\ No newline at end of file
diff --git a/debian/libmgl5/DEBIAN/control b/debian/libmgl5/DEBIAN/control
new file mode 100644
index 0000000..61d4644
--- /dev/null
+++ b/debian/libmgl5/DEBIAN/control
@@ -0,0 +1,16 @@
+Package: libmgl5
+Source: mathgl
+Version: 1.11-1
+Architecture: amd64
+Maintainer: Debian Science Maintainers <debian-science-maintainers at lists.alioth.debian.org>
+Installed-Size: 2228
+Depends: libc6 (>= 2.2.5), libgcc1 (>= 1:4.1.1), libgif4 (>= 4.1.4), libgl1-mesa-glx | libgl1, libgsl0ldbl (>= 1.9), libhdf4-0, libhdf5-serial-1.8.4 | libhdf5-1.8.4, libjpeg62 (>= 6b1), libpng12-0 (>= 1.2.13-4), libstdc++6 (>= 4.2.1), libmgl-data
+Section: libs
+Priority: optional
+Homepage: http://mathgl.sourceforge.net/index.html
+Description: library for scientific graphs. (main runtime library)
+ A free cross-platform library of fast C++ routines for plotting data in up
+ to 3 dimensions. It can export plots to bitmaps and vector EPS, SVG, IDTF
+ files. There are simple window interfaces based on GLUT, FLTK and/or Qt.
+ MathGL can also be used in the console. There are interfaces to a set of
+ languages, such as, C, Fortran, Pascal, Forth, Python, Octave.
diff --git a/debian/libmgl5/DEBIAN/md5sums b/debian/libmgl5/DEBIAN/md5sums
new file mode 100644
index 0000000..a62d4b1
--- /dev/null
+++ b/debian/libmgl5/DEBIAN/md5sums
@@ -0,0 +1,4 @@
+1b1cb1e15a80d1e5db4859c935f1d398  usr/lib/libmgl.so.5.0.0
+1c92e8b7f012e099103c470392856dbc  usr/share/doc/libmgl5/changelog.Debian.gz
+a280771232296099803f36a37509d1ca  usr/share/doc/libmgl5/changelog.gz
+3a712fb4482d591b961d2f1791b6aa63  usr/share/doc/libmgl5/copyright
diff --git a/debian/libmgl5/DEBIAN/postinst b/debian/libmgl5/DEBIAN/postinst
new file mode 100755
index 0000000..379f1fa
--- /dev/null
+++ b/debian/libmgl5/DEBIAN/postinst
@@ -0,0 +1,7 @@
+#!/bin/sh
+set -e
+# Automatically added by dh_makeshlibs
+if [ "$1" = "configure" ]; then
+	ldconfig
+fi
+# End automatically added section
diff --git a/debian/libmgl5/DEBIAN/postrm b/debian/libmgl5/DEBIAN/postrm
new file mode 100755
index 0000000..3e73d38
--- /dev/null
+++ b/debian/libmgl5/DEBIAN/postrm
@@ -0,0 +1,7 @@
+#!/bin/sh
+set -e
+# Automatically added by dh_makeshlibs
+if [ "$1" = "remove" ]; then
+	ldconfig
+fi
+# End automatically added section
diff --git a/debian/libmgl5/DEBIAN/shlibs b/debian/libmgl5/DEBIAN/shlibs
new file mode 100644
index 0000000..a711f71
--- /dev/null
+++ b/debian/libmgl5/DEBIAN/shlibs
@@ -0,0 +1 @@
+libmgl 5 libmgl5
diff --git a/debian/libmgl5/DEBIAN/symbols b/debian/libmgl5/DEBIAN/symbols
new file mode 100644
index 0000000..9a2906a
--- /dev/null
+++ b/debian/libmgl5/DEBIAN/symbols
@@ -0,0 +1,2499 @@
+libmgl.so.5 libmgl5 #MINVER#
+ _Z10mglFindArgPKw at Base 1.11
+ _Z10mglFourierR7mglDataS0_PKc at Base 1.11
+ _Z10mgl_cos_ppPflll at Base 1.11
+ _Z10mgl_fit__fPK10gsl_vectorPvPS_ at Base 1.11
+ _Z10mgl_istruec at Base 1.11
+ _Z10mgl_okruglfi at Base 1.11
+ _Z10mgl_printfPvbPKcz at Base 1.11
+ _Z10mgl_strclsPc at Base 1.11
+ _Z10mgl_strdupPKc at Base 1.11
+ _Z10mgl_strlwrPc at Base 1.11
+ _Z10mgl_strposPKcPc at Base 1.11
+ _Z10mgl_strposPKcc at Base 1.11
+ _Z10mgl_wcsdupPKw at Base 1.11
+ _Z10mgl_wcslwrPw at Base 1.11
+ _Z10mglc_addtoPwlP6mglArgPi at Base 1.11
+ _Z10mglc_alphaPwlP6mglArgPi at Base 1.11
+ _Z10mglc_axialPwlP6mglArgPi at Base 1.11
+ _Z10mglc_caxisPwlP6mglArgPi at Base 1.11
+ _Z10mglc_chartPwlP6mglArgPi at Base 1.11
+ _Z10mglc_chdirPwlP6mglArgPi at Base 1.11
+ _Z10mglc_cloudPwlP6mglArgPi at Base 1.11
+ _Z10mglc_cont3PwlP6mglArgPi at Base 1.11
+ _Z10mglc_contaPwlP6mglArgPi at Base 1.11
+ _Z10mglc_contdPwlP6mglArgPi at Base 1.11
+ _Z10mglc_contfPwlP6mglArgPi at Base 1.11
+ _Z10mglc_contxPwlP6mglArgPi at Base 1.11
+ _Z10mglc_contyPwlP6mglArgPi at Base 1.11
+ _Z10mglc_contzPwlP6mglArgPi at Base 1.11
+ _Z10mglc_crustPwlP6mglArgPi at Base 1.11
+ _Z10mglc_ctickPwlP6mglArgPi at Base 1.11
+ _Z10mglc_curvePwlP6mglArgPi at Base 1.11
+ _Z10mglc_dens3PwlP6mglArgPi at Base 1.11
+ _Z10mglc_densaPwlP6mglArgPi at Base 1.11
+ _Z10mglc_densxPwlP6mglArgPi at Base 1.11
+ _Z10mglc_densyPwlP6mglArgPi at Base 1.11
+ _Z10mglc_denszPwlP6mglArgPi at Base 1.11
+ _Z10mglc_diff2PwlP6mglArgPi at Base 1.11
+ _Z10mglc_divtoPwlP6mglArgPi at Base 1.11
+ _Z10mglc_errorPwlP6mglArgPi at Base 1.11
+ _Z10mglc_facexPwlP6mglArgPi at Base 1.11
+ _Z10mglc_faceyPwlP6mglArgPi at Base 1.11
+ _Z10mglc_facezPwlP6mglArgPi at Base 1.11
+ _Z10mglc_fgetsPwlP6mglArgPi at Base 1.11
+ _Z10mglc_fplotPwlP6mglArgPi at Base 1.11
+ _Z10mglc_fsurfPwlP6mglArgPi at Base 1.11
+ _Z10mglc_grid2PwlP6mglArgPi at Base 1.11
+ _Z10mglc_grid3PwlP6mglArgPi at Base 1.11
+ _Z10mglc_gridaPwlP6mglArgPi at Base 1.11
+ _Z10mglc_idsetPwlP6mglArgPi at Base 1.11
+ _Z10mglc_labelPwlP6mglArgPi at Base 1.11
+ _Z10mglc_lightPwlP6mglArgPi at Base 1.11
+ _Z10mglc_multoPwlP6mglArgPi at Base 1.11
+ _Z10mglc_radarPwlP6mglArgPi at Base 1.11
+ _Z10mglc_stfadPwlP6mglArgPi at Base 1.11
+ _Z10mglc_subtoPwlP6mglArgPi at Base 1.11
+ _Z10mglc_surf3PwlP6mglArgPi at Base 1.11
+ _Z10mglc_surfaPwlP6mglArgPi at Base 1.11
+ _Z10mglc_surfcPwlP6mglArgPi at Base 1.11
+ _Z10mglc_tilesPwlP6mglArgPi at Base 1.11
+ _Z10mglc_titlePwlP6mglArgPi at Base 1.11
+ _Z10mglc_torusPwlP6mglArgPi at Base 1.11
+ _Z10mglc_tracePwlP6mglArgPi at Base 1.11
+ _Z10mglc_vectcPwlP6mglArgPi at Base 1.11
+ _Z10mglc_vectlPwlP6mglArgPi at Base 1.11
+ _Z10mglc_writePwlP6mglArgPi at Base 1.11
+ _Z10mglc_xtickPwlP6mglArgPi at Base 1.11
+ _Z10mglc_ytickPwlP6mglArgPi at Base 1.11
+ _Z10mglc_ztickPwlP6mglArgPi at Base 1.11
+ _Z10mgls_addtoP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_alphaP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_axialP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_caxisP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_chartP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_chdirP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_cloudP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_cont3P8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_contaP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_contdP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_contfP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_contxP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_contyP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_contzP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_crustP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_ctickP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_curveP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_dens3P8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_densaP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_densxP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_densyP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_denszP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_diff2P8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_divtoP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_errorP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_facexP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_faceyP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_facezP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_fgetsP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_fplotP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_fsurfP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_grid2P8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_grid3P8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_gridaP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_idsetP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_labelP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_lightP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_multoP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_radarP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_stfadP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_subtoP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_surf3P8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_surfaP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_surfcP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_tilesP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_titleP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_torusP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_traceP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_vectcP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_vectlP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_writeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_xtickP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_ytickP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10mgls_ztickP8mglGraphlP6mglArgPi at Base 1.11
+ _Z10same_chainllPl at Base 1.11
+ _Z11mglDifrGridPSt7complexIdEiS0_iS1_S1_i at Base 1.11
+ _Z11mglJacobianRK7mglDataS1_ at Base 1.11
+ _Z11mglJacobianRK7mglDataS1_S1_ at Base 1.11
+ _Z11mgl_cmd_cmpPKvS0_ at Base 1.11
+ _Z11mgl_cmp_fltPKvS0_ at Base 1.11
+ _Z11mgl_col_difPhS_b at Base 1.11
+ _Z11mgl_fgetstrP8_IO_FILE at Base 1.11
+ _Z11mgl_fit__dfPK10gsl_vectorPvP10gsl_matrix at Base 1.11
+ _Z11mgl_init_raiPKfP6mgl_ap at Base 1.11
+ _Z11mgl_read_gzPv at Base 1.11
+ _Z11mgl_spline3PfS_iifRf at Base 1.11
+ _Z11mgl_spline5PfS_iifRf at Base 1.11
+ _Z11mgl_strtrimPc at Base 1.11
+ _Z11mgl_wcstrimPw at Base 1.11
+ _Z11mglc_adjustPwlP6mglArgPi at Base 1.11
+ _Z11mglc_aspectPwlP6mglArgPi at Base 1.11
+ _Z11mglc_contf3PwlP6mglArgPi at Base 1.11
+ _Z11mglc_contfaPwlP6mglArgPi at Base 1.11
+ _Z11mglc_contfxPwlP6mglArgPi at Base 1.11
+ _Z11mglc_contfyPwlP6mglArgPi at Base 1.11
+ _Z11mglc_contfzPwlP6mglArgPi at Base 1.11
+ _Z11mglc_cosfftPwlP6mglArgPi at Base 1.11
+ _Z11mglc_crangePwlP6mglArgPi at Base 1.11
+ _Z11mglc_cumsumPwlP6mglArgPi at Base 1.11
+ _Z11mglc_deletePwlP6mglArgPi at Base 1.11
+ _Z11mglc_exportPwlP6mglArgPi at Base 1.11
+ _Z11mglc_extendPwlP6mglArgPi at Base 1.11
+ _Z11mglc_hankelPwlP6mglArgPi at Base 1.11
+ _Z11mglc_importPwlP6mglArgPi at Base 1.11
+ _Z11mglc_inplotPwlP6mglArgPi at Base 1.11
+ _Z11mglc_insertPwlP6mglArgPi at Base 1.11
+ _Z11mglc_legendPwlP6mglArgPi at Base 1.11
+ _Z11mglc_mirrorPwlP6mglArgPi at Base 1.11
+ _Z11mglc_modifyPwlP6mglArgPi at Base 1.11
+ _Z11mglc_normslPwlP6mglArgPi at Base 1.11
+ _Z11mglc_originPwlP6mglArgPi at Base 1.11
+ _Z11mglc_rangesPwlP6mglArgPi at Base 1.11
+ _Z11mglc_regionPwlP6mglArgPi at Base 1.11
+ _Z11mglc_resizePwlP6mglArgPi at Base 1.11
+ _Z11mglc_rotatePwlP6mglArgPi at Base 1.11
+ _Z11mglc_sinfftPwlP6mglArgPi at Base 1.11
+ _Z11mglc_smoothPwlP6mglArgPi at Base 1.11
+ _Z11mglc_spherePwlP6mglArgPi at Base 1.11
+ _Z11mglc_surf3aPwlP6mglArgPi at Base 1.11
+ _Z11mglc_surf3cPwlP6mglArgPi at Base 1.11
+ _Z11mglc_tlabelPwlP6mglArgPi at Base 1.11
+ _Z11mglc_xlabelPwlP6mglArgPi at Base 1.11
+ _Z11mglc_xrangePwlP6mglArgPi at Base 1.11
+ _Z11mglc_ylabelPwlP6mglArgPi at Base 1.11
+ _Z11mglc_yrangePwlP6mglArgPi at Base 1.11
+ _Z11mglc_zlabelPwlP6mglArgPi at Base 1.11
+ _Z11mglc_zrangePwlP6mglArgPi at Base 1.11
+ _Z11mgls_adjustP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_aspectP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_contf3P8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_contfaP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_contfxP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_contfyP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_contfzP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_cosfftP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_crangeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_cumsumP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_deleteP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_exportP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_extendP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_hankelP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_importP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_inplotP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_insertP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_legendP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_mirrorP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_modifyP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_normslP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_originP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_rangesP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_regionP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_resizeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_rotateP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_sinfftP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_smoothP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_sphereP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_suffixPKwP7mglDataPf at Base 1.11
+ _Z11mgls_surf3aP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_surf3cP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_tlabelP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_xlabelP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_xrangeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_ylabelP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_yrangeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_zlabelP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11mgls_zrangeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z11wcstrim_mglPw at Base 1.11
+ _Z12mglApplyOperPKwS0_P8mglParsePFdddE at Base 1.11
+ _Z12mglDifrAxialPSt7complexIdEiS0_iS1_S1_id at Base 1.11
+ _Z12mglTransformRK7mglDataS1_PKc at Base 1.11
+ _Z12mgl_add_fileRlS_S_RPfR7mglDatab at Base 1.11
+ _Z12mgl_add_quadPPfS_ at Base 1.11
+ _Z12mgl_bmp_savePKciiPPh at Base 1.11
+ _Z12mgl_bps_savePKciiPPh at Base 1.11
+ _Z12mgl_fft_freqPdj at Base 1.11
+ _Z12mgl_fit__fdfPK10gsl_vectorPvPS_P10gsl_matrix at Base 1.11
+ _Z12mgl_fit_baseP10mglFitDataPf at Base 1.11
+ _Z12mgl_get_dashtf at Base 1.11
+ _Z12mgl_get_nextllPlS_Pf at Base 1.11
+ _Z12mgl_png_savePKciiPPh at Base 1.11
+ _Z12mgl_str_copyPKc at Base 1.11
+ _Z12mgl_wcstombsPcPKwi at Base 1.11
+ _Z12mglc_ambientPwlP6mglArgPi at Base 1.11
+ _Z12mglc_boxplotPwlP6mglArgPi at Base 1.11
+ _Z12mglc_combinePwlP6mglArgPi at Base 1.11
+ _Z12mglc_envelopPwlP6mglArgPi at Base 1.11
+ _Z12mglc_meshnumPwlP6mglArgPi at Base 1.11
+ _Z12mglc_palettePwlP6mglArgPi at Base 1.11
+ _Z12mglc_putsfitPwlP6mglArgPi at Base 1.11
+ _Z12mglc_readallPwlP6mglArgPi at Base 1.11
+ _Z12mglc_readhdfPwlP6mglArgPi at Base 1.11
+ _Z12mglc_readmatPwlP6mglArgPi at Base 1.11
+ _Z12mglc_savehdfPwlP6mglArgPi at Base 1.11
+ _Z12mglc_setsizePwlP6mglArgPi at Base 1.11
+ _Z12mglc_squeezePwlP6mglArgPi at Base 1.11
+ _Z12mglc_subdataPwlP6mglArgPi at Base 1.11
+ _Z12mglc_subplotPwlP6mglArgPi at Base 1.11
+ _Z12mglc_ternaryPwlP6mglArgPi at Base 1.11
+ _Z12mglc_ticklenPwlP6mglArgPi at Base 1.11
+ _Z12mglc_tickstlPwlP6mglArgPi at Base 1.11
+ _Z12mglc_tricontPwlP6mglArgPi at Base 1.11
+ _Z12mglc_triplotPwlP6mglArgPi at Base 1.11
+ _Z12mgls_ambientP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_boxplotP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_combineP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_envelopP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_meshnumP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_paletteP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_putsfitP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_readallP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_readhdfP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_readmatP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_savehdfP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_setsizeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_squeezeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_subdataP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_subplotP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_ternaryP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_ticklenP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_tickstlP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_tricontP8mglGraphlP6mglArgPi at Base 1.11
+ _Z12mgls_triplotP8mglGraphlP6mglArgPi at Base 1.11
+ _Z13_mgl_tick_extffPwRf at Base 1.11
+ _Z13mglFindInTextPcPKc at Base 1.11
+ _Z13mglFindInTextPwPKc at Base 1.11
+ _Z13mglTransformARK7mglDataS1_PKc at Base 1.11
+ _Z13mgl_gauss_rndv at Base 1.11
+ _Z13mgl_jpeg_savePKciiPPh at Base 1.11
+ _Z13mgl_next_dataPKci at Base 1.11
+ _Z13mgl_pnga_savePKciiPPh at Base 1.11
+ _Z13mgl_puts_dir_PmPfS0_S0_S0_S0_S0_PKcS0_i at Base 1.11
+ _Z13mglc_alphadefPwlP6mglArgPi at Base 1.11
+ _Z13mglc_axialdirPwlP6mglArgPi at Base 1.11
+ _Z13mglc_barwidthPwlP6mglArgPi at Base 1.11
+ _Z13mglc_colorbarPwlP6mglArgPi at Base 1.11
+ _Z13mglc_evaluatePwlP6mglArgPi at Base 1.11
+ _Z13mglc_jacobianPwlP6mglArgPi at Base 1.11
+ _Z13mglc_loadfontPwlP6mglArgPi at Base 1.11
+ _Z13mglc_marksizePwlP6mglArgPi at Base 1.11
+ _Z13mglc_momentumPwlP6mglArgPi at Base 1.11
+ _Z13mglc_quadplotPwlP6mglArgPi at Base 1.11
+ _Z13mglc_textmarkPwlP6mglArgPi at Base 1.11
+ _Z13mgls_alphadefP8mglGraphlP6mglArgPi at Base 1.11
+ _Z13mgls_axialdirP8mglGraphlP6mglArgPi at Base 1.11
+ _Z13mgls_barwidthP8mglGraphlP6mglArgPi at Base 1.11
+ _Z13mgls_colorbarP8mglGraphlP6mglArgPi at Base 1.11
+ _Z13mgls_evaluateP8mglGraphlP6mglArgPi at Base 1.11
+ _Z13mgls_jacobianP8mglGraphlP6mglArgPi at Base 1.11
+ _Z13mgls_loadfontP8mglGraphlP6mglArgPi at Base 1.11
+ _Z13mgls_marksizeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z13mgls_momentumP8mglGraphlP6mglArgPi at Base 1.11
+ _Z13mgls_quadplotP8mglGraphlP6mglArgPi at Base 1.11
+ _Z13mgls_textmarkP8mglGraphlP6mglArgPi at Base 1.11
+ _Z14_mgl_tick_textffffiPw at Base 1.11
+ _Z14check_for_namePKw at Base 1.11
+ _Z14mglFormulaCalcPKwP8mglParse at Base 1.11
+ _Z14mgl_draw_classP8mglGraphPv at Base 1.11
+ _Z14mgl_start_gif_Pm at Base 1.11
+ _Z14mglc_addlegendPwlP6mglArgPi at Base 1.11
+ _Z14mglc_arrowsizePwlP6mglArgPi at Base 1.11
+ _Z14mglc_integratePwlP6mglArgPi at Base 1.11
+ _Z14mglc_legendboxPwlP6mglArgPi at Base 1.11
+ _Z14mglc_linewidthPwlP6mglArgPi at Base 1.11
+ _Z14mglc_rearrangePwlP6mglArgPi at Base 1.11
+ _Z14mglc_stickplotPwlP6mglArgPi at Base 1.11
+ _Z14mglc_transformPwlP6mglArgPi at Base 1.11
+ _Z14mglc_transposePwlP6mglArgPi at Base 1.11
+ _Z14mgls_addlegendP8mglGraphlP6mglArgPi at Base 1.11
+ _Z14mgls_arrowsizeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z14mgls_integrateP8mglGraphlP6mglArgPi at Base 1.11
+ _Z14mgls_legendboxP8mglGraphlP6mglArgPi at Base 1.11
+ _Z14mgls_linewidthP8mglGraphlP6mglArgPi at Base 1.11
+ _Z14mgls_rearrangeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z14mgls_stickplotP8mglGraphlP6mglArgPi at Base 1.11
+ _Z14mgls_transformP8mglGraphlP6mglArgPi at Base 1.11
+ _Z14mgls_transposeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z15mgl_error_printiiP8mglGraph at Base 1.11
+ _Z15mgl_insert_triglllPPl at Base 1.11
+ _Z15mglc_columnplotPwlP6mglArgPi at Base 1.11
+ _Z15mglc_fillsamplePwlP6mglArgPi at Base 1.11
+ _Z15mglc_plotfactorPwlP6mglArgPi at Base 1.11
+ _Z15mglc_rotatetextPwlP6mglArgPi at Base 1.11
+ _Z15mglc_transformaPwlP6mglArgPi at Base 1.11
+ _Z15mglc_transptypePwlP6mglArgPi at Base 1.11
+ _Z15mgls_columnplotP8mglGraphlP6mglArgPi at Base 1.11
+ _Z15mgls_fillsampleP8mglGraphlP6mglArgPi at Base 1.11
+ _Z15mgls_plotfactorP8mglGraphlP6mglArgPi at Base 1.11
+ _Z15mgls_rotatetextP8mglGraphlP6mglArgPi at Base 1.11
+ _Z15mgls_transformaP8mglGraphlP6mglArgPi at Base 1.11
+ _Z15mgls_transptypeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z16mgl_compare_primPKvS0_ at Base 1.11
+ _Z16mgl_data_export_PlPKcS1_PfS2_Piii at Base 1.11
+ _Z16mgl_data_import_PlPKcS1_PfS2_ii at Base 1.11
+ _Z16mgl_reload_classiPv at Base 1.11
+ _Z16mgl_tex_symb_cmpPKvS0_ at Base 1.11
+ _Z16mglc_clearlegendPwlP6mglArgPi at Base 1.11
+ _Z16mglc_legendmarksPwlP6mglArgPi at Base 1.11
+ _Z16mglc_perspectivePwlP6mglArgPi at Base 1.11
+ _Z16mglc_transparentPwlP6mglArgPi at Base 1.11
+ _Z16mgls_clearlegendP8mglGraphlP6mglArgPi at Base 1.11
+ _Z16mgls_legendmarksP8mglGraphlP6mglArgPi at Base 1.11
+ _Z16mgls_perspectiveP8mglGraphlP6mglArgPi at Base 1.11
+ _Z16mgls_transparentP8mglGraphlP6mglArgPi at Base 1.11
+ _Z17mgl_create_schemePKcRl at Base 1.11
+ _Z18mgl_set_ticks_dir_PmPcPfPiS1_ at Base 1.11
+ _Z3adddd at Base 1.11
+ _Z3argdd at Base 1.11
+ _Z3ceqdd at Base 1.11
+ _Z3cgtdd at Base 1.11
+ _Z3cltdd at Base 1.11
+ _Z3cordd at Base 1.11
+ _Z3divdd at Base 1.11
+ _Z3i2si at Base 1.11
+ _Z3ipwdd at Base 1.11
+ _Z3lgcSt7complexIdE at Base 1.11
+ _Z3llgdd at Base 1.11
+ _Z3mgmdd at Base 1.11
+ _Z3mgpdd at Base 1.11
+ _Z3muldd at Base 1.11
+ _Z3sgnd at Base 1.11
+ _Z3stpd at Base 1.11
+ _Z3subdd at Base 1.11
+ _Z4GetXRK7mglDataiii at Base 1.11
+ _Z4GetYRK7mglDataiii at Base 1.11
+ _Z4GetZRK7mglDataiii at Base 1.11
+ _Z4abscSt7complexIdE at Base 1.11
+ _Z4addcSt7complexIdES0_ at Base 1.11
+ _Z4canddd at Base 1.11
+ _Z4ci_dd at Base 1.11
+ _Z4coscSt7complexIdE at Base 1.11
+ _Z4div1dd at Base 1.11
+ _Z4div2dd at Base 1.11
+ _Z4divcSt7complexIdES0_ at Base 1.11
+ _Z4e1_dd at Base 1.11
+ _Z4e2_dd at Base 1.11
+ _Z4ei_dd at Base 1.11
+ _Z4expcSt7complexIdE at Base 1.11
+ _Z4expiSt7complexIdE at Base 1.11
+ _Z4expid at Base 1.11
+ _Z4ipw1dd at Base 1.11
+ _Z4ipwcSt7complexIdES0_ at Base 1.11
+ _Z4llg1dd at Base 1.11
+ _Z4llg2dd at Base 1.11
+ _Z4llgcSt7complexIdES0_ at Base 1.11
+ _Z4logcSt7complexIdE at Base 1.11
+ _Z4mgz1d at Base 1.11
+ _Z4mgz2dd at Base 1.11
+ _Z4mul1dd at Base 1.11
+ _Z4mul2dd at Base 1.11
+ _Z4mulcSt7complexIdES0_ at Base 1.11
+ _Z4pow1dd at Base 1.11
+ _Z4pow2dd at Base 1.11
+ _Z4powcSt7complexIdES0_ at Base 1.11
+ _Z4si_dd at Base 1.11
+ _Z4sincSt7complexIdE at Base 1.11
+ _Z4subcSt7complexIdES0_ at Base 1.11
+ _Z4tancSt7complexIdE at Base 1.11
+ _Z5acoscSt7complexIdE at Base 1.11
+ _Z5asincSt7complexIdE at Base 1.11
+ _Z5atancSt7complexIdE at Base 1.11
+ _Z5cos_dd at Base 1.11
+ _Z5coshcSt7complexIdE at Base 1.11
+ _Z5erf_dd at Base 1.11
+ _Z5gslAid at Base 1.11
+ _Z5gslBid at Base 1.11
+ _Z5log_dd at Base 1.11
+ _Z5sinhcSt7complexIdE at Base 1.11
+ _Z5sqrtcSt7complexIdE at Base 1.11
+ _Z5tan_dd at Base 1.11
+ _Z5tanhcSt7complexIdE at Base 1.11
+ _Z6acos_dd at Base 1.11
+ _Z6acoshcSt7complexIdE at Base 1.11
+ _Z6asin_dd at Base 1.11
+ _Z6asinhcSt7complexIdE at Base 1.11
+ _Z6atan_dd at Base 1.11
+ _Z6atanhcSt7complexIdE at Base 1.11
+ _Z6exp3_dd at Base 1.11
+ _Z6gslE_dd at Base 1.11
+ _Z6gslK_dd at Base 1.11
+ _Z6mglPDEPKcRK7mglDataS3_8mglPointS4_ff at Base 1.11
+ _Z6mglRayPKc8mglPointS1_ff at Base 1.11
+ _Z6sinc_dd at Base 1.11
+ _Z6sqrt_dd at Base 1.11
+ _Z6tanh_dd at Base 1.11
+ _Z7acosh_dd at Base 1.11
+ _Z7asinh_dd at Base 1.11
+ _Z7atanh_dd at Base 1.11
+ _Z7dilog_dd at Base 1.11
+ _Z7gamma_dd at Base 1.11
+ _Z7gslAi_dd at Base 1.11
+ _Z7gslBi_dd at Base 1.11
+ _Z7gslEllEdd at Base 1.11
+ _Z7gslEllFdd at Base 1.11
+ _Z7gslInuDdd at Base 1.11
+ _Z7gslJnuDdd at Base 1.11
+ _Z7gslKnuDdd at Base 1.11
+ _Z7gslLegPdd at Base 1.11
+ _Z7gslYnuDdd at Base 1.11
+ _Z7log10_dd at Base 1.11
+ _Z7mglAF2dPKcRK7mglDataS3_S3_ffPS1_S4_b at Base 1.11
+ _Z7mglQO2dPKcRK7mglDataS3_S3_ffPS1_S4_b at Base 1.11
+ _Z7mglSTFARK7mglDataS1_ic at Base 1.11
+ _Z7mgl_getllPfff at Base 1.11
+ _Z7mgl_rndv at Base 1.11
+ _Z8gslEllE1dd at Base 1.11
+ _Z8gslEllE2dd at Base 1.11
+ _Z8gslEllEcd at Base 1.11
+ _Z8gslEllF1dd at Base 1.11
+ _Z8gslEllF2dd at Base 1.11
+ _Z8gslEllFcd at Base 1.11
+ _Z8mglCheckPci at Base 1.11
+ _Z8mglCheckPwi at Base 1.11
+ _Z8mglFillPiPKfiPf at Base 1.11
+ _Z8mglFillPiiPKfiiPA4_f at Base 1.11
+ _Z8mgl_distPfS_ at Base 1.11
+ _Z8mgl_infoPKcz at Base 1.11
+ _Z8mgl_ipowdi at Base 1.11
+ _Z8mgl_multPfS_S_ at Base 1.11
+ _Z8mgl_omodPffii at Base 1.11
+ _Z8mgl_srndl at Base 1.11
+ _Z8mgl_testPKcz at Base 1.11
+ _Z8mglc_boxPwlP6mglArgPi at Base 1.11
+ _Z8mglc_clfPwlP6mglArgPi at Base 1.11
+ _Z8mglc_cutPwlP6mglArgPi at Base 1.11
+ _Z8mglc_dewPwlP6mglArgPi at Base 1.11
+ _Z8mglc_fitPwlP6mglArgPi at Base 1.11
+ _Z8mglc_fogPwlP6mglArgPi at Base 1.11
+ _Z8mglc_mapPwlP6mglArgPi at Base 1.11
+ _Z8mglc_maxPwlP6mglArgPi at Base 1.11
+ _Z8mglc_minPwlP6mglArgPi at Base 1.11
+ _Z8mglc_newPwlP6mglArgPi at Base 1.11
+ _Z8mglc_pdePwlP6mglArgPi at Base 1.11
+ _Z8mglc_putPwlP6mglArgPi at Base 1.11
+ _Z8mglc_rayPwlP6mglArgPi at Base 1.11
+ _Z8mglc_sewPwlP6mglArgPi at Base 1.11
+ _Z8mglc_sumPwlP6mglArgPi at Base 1.11
+ _Z8mglc_varPwlP6mglArgPi at Base 1.11
+ _Z8mgls_boxP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_clfP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_cutP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_dewP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_fitP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_fogP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_mapP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_maxP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_minP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_newP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_pdeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_putP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_rayP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_sewP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_sumP8mglGraphlP6mglArgPi at Base 1.11
+ _Z8mgls_varP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9get_sliceR10_mgl_sliceRK7mglDataS3_S3_S3_cl at Base 1.11
+ _Z9mgl_crustlPfPPlf at Base 1.11
+ _Z9mgl_ipowcSt7complexIdEi at Base 1.11
+ _Z9mgl_islogff at Base 1.11
+ _Z9mglc_af2dPwlP6mglArgPi at Base 1.11
+ _Z9mglc_areaPwlP6mglArgPi at Base 1.11
+ _Z9mglc_axisPwlP6mglArgPi at Base 1.11
+ _Z9mglc_ballPwlP6mglArgPi at Base 1.11
+ _Z9mglc_barhPwlP6mglArgPi at Base 1.11
+ _Z9mglc_barsPwlP6mglArgPi at Base 1.11
+ _Z9mglc_beamPwlP6mglArgPi at Base 1.11
+ _Z9mglc_beltPwlP6mglArgPi at Base 1.11
+ _Z9mglc_boxsPwlP6mglArgPi at Base 1.11
+ _Z9mglc_conePwlP6mglArgPi at Base 1.11
+ _Z9mglc_contPwlP6mglArgPi at Base 1.11
+ _Z9mglc_copyPwlP6mglArgPi at Base 1.11
+ _Z9mglc_cropPwlP6mglArgPi at Base 1.11
+ _Z9mglc_densPwlP6mglArgPi at Base 1.11
+ _Z9mglc_diffPwlP6mglArgPi at Base 1.11
+ _Z9mglc_dotsPwlP6mglArgPi at Base 1.11
+ _Z9mglc_dropPwlP6mglArgPi at Base 1.11
+ _Z9mglc_fallPwlP6mglArgPi at Base 1.11
+ _Z9mglc_fillPwlP6mglArgPi at Base 1.11
+ _Z9mglc_fitsPwlP6mglArgPi at Base 1.11
+ _Z9mglc_flowPwlP6mglArgPi at Base 1.11
+ _Z9mglc_fontPwlP6mglArgPi at Base 1.11
+ _Z9mglc_gradPwlP6mglArgPi at Base 1.11
+ _Z9mglc_gridPwlP6mglArgPi at Base 1.11
+ _Z9mglc_histPwlP6mglArgPi at Base 1.11
+ _Z9mglc_infoPwlP6mglArgPi at Base 1.11
+ _Z9mglc_linePwlP6mglArgPi at Base 1.11
+ _Z9mglc_markPwlP6mglArgPi at Base 1.11
+ _Z9mglc_meshPwlP6mglArgPi at Base 1.11
+ _Z9mglc_normPwlP6mglArgPi at Base 1.11
+ _Z9mglc_pipePwlP6mglArgPi at Base 1.11
+ _Z9mglc_plotPwlP6mglArgPi at Base 1.11
+ _Z9mglc_qo2dPwlP6mglArgPi at Base 1.11
+ _Z9mglc_readPwlP6mglArgPi at Base 1.11
+ _Z9mglc_rectPwlP6mglArgPi at Base 1.11
+ _Z9mglc_rollPwlP6mglArgPi at Base 1.11
+ _Z9mglc_savePwlP6mglArgPi at Base 1.11
+ _Z9mglc_stemPwlP6mglArgPi at Base 1.11
+ _Z9mglc_stepPwlP6mglArgPi at Base 1.11
+ _Z9mglc_stfaPwlP6mglArgPi at Base 1.11
+ _Z9mglc_surfPwlP6mglArgPi at Base 1.11
+ _Z9mglc_swapPwlP6mglArgPi at Base 1.11
+ _Z9mglc_tensPwlP6mglArgPi at Base 1.11
+ _Z9mglc_textPwlP6mglArgPi at Base 1.11
+ _Z9mglc_tilePwlP6mglArgPi at Base 1.11
+ _Z9mglc_trajPwlP6mglArgPi at Base 1.11
+ _Z9mglc_tubePwlP6mglArgPi at Base 1.11
+ _Z9mglc_vectPwlP6mglArgPi at Base 1.11
+ _Z9mglc_zoomPwlP6mglArgPi at Base 1.11
+ _Z9mgls_af2dP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_areaP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_axisP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_ballP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_barhP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_barsP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_beamP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_beltP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_boxsP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_coneP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_contP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_copyP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_cropP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_densP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_diffP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_dotsP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_dropP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_fallP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_fillP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_fitsP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_flowP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_fontP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_gradP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_gridP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_histP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_infoP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_lineP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_markP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_meshP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_normP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_pipeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_plotP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_qo2dP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_readP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_rectP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_rollP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_saveP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_stemP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_stepP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_stfaP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_surfP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_swapP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_tensP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_textP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_tileP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_trajP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_tubeP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_vectP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9mgls_zoomP8mglGraphlP6mglArgPi at Base 1.11
+ _Z9normal_1dRK7mglDatafPfb at Base 1.11
+ _Z9normal_3dRK7mglDatafffPfS2_S2_b at Base 1.11
+ _ZN10_mgl_sliceD1Ev at Base 1.11
+ _ZN10mglFormula5ErrorE at Base 1.11
+ _ZN10mglFormulaC1EPKc at Base 1.11
+ _ZN10mglFormulaC2EPKc at Base 1.11
+ _ZN10mglFormulaD1Ev at Base 1.11
+ _ZN10mglFormulaD2Ev at Base 1.11
+ _ZN10mglGraphAB10FindOptOrgEPfS0_S0_ at Base 1.11
+ _ZN10mglGraphAB10LightScaleEv at Base 1.11
+ _ZN10mglGraphAB10PutDrawRegEiiiPS_ at Base 1.11
+ _ZN10mglGraphAB10SetDrawRegEiii at Base 1.11
+ _ZN10mglGraphAB10ToggleZoomEv at Base 1.11
+ _ZN10mglGraphAB10arrow_plotEPfS0_c at Base 1.11
+ _ZN10mglGraphAB10axial_plotElPfPllb at Base 1.11
+ _ZN10mglGraphAB10cloud_plotElllPfS0_f at Base 1.11
+ _ZN10mglGraphAB10glyph_fillEfffiPKsPf at Base 1.11
+ _ZN10mglGraphAB10glyph_lineEfffPfb at Base 1.11
+ _ZN10mglGraphAB10glyph_wireEfffiPKsPf at Base 1.11
+ _ZN10mglGraphAB10lines_plotElPfS0_Pbbb at Base 1.11
+ _ZN10mglGraphAB10quads_plotElPfS0_Pb at Base 1.11
+ _ZN10mglGraphAB10quads_plotElPllPfS1_Pbbb at Base 1.11
+ _ZN10mglGraphAB10surf3_plotEllPlS0_S0_S0_S0_PfS1_S1_S1_b at Base 1.11
+ _ZN10mglGraphAB10trigs_plotElPllPfS1_Pbbb at Base 1.11
+ _ZN10mglGraphAB10vects_plotElPfS0_Pbb at Base 1.11
+ _ZN10mglGraphAB11GetRGBLinesERlS0_RPhb at Base 1.11
+ _ZN10mglGraphAB11PerspectiveEf at Base 1.11
+ _ZN10mglGraphAB11SetPosScaleEffff at Base 1.11
+ _ZN10mglGraphAB11ToggleAlphaEv at Base 1.11
+ _ZN10mglGraphAB11ToggleLightEv at Base 1.11
+ _ZN10mglGraphAB11quad_plot_aEPfS0_S0_S0_fffff at Base 1.11
+ _ZN10mglGraphAB11quad_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN10mglGraphAB11trig_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN10mglGraphAB12ToggleRotateEv at Base 1.11
+ _ZN10mglGraphAB13SetFontSizePTEfi at Base 1.11
+ _ZN10mglGraphAB3PenE8mglColorcf at Base 1.11
+ _ZN10mglGraphAB3PopEv at Base 1.11
+ _ZN10mglGraphAB4BallEfff8mglColorf at Base 1.11
+ _ZN10mglGraphAB4MarkEfffc at Base 1.11
+ _ZN10mglGraphAB4PushEv at Base 1.11
+ _ZN10mglGraphAB4ballEPfS0_ at Base 1.11
+ _ZN10mglGraphAB5AlphaEb at Base 1.11
+ _ZN10mglGraphAB5GlyphEfffilc at Base 1.11
+ _ZN10mglGraphAB5LightEb at Base 1.11
+ _ZN10mglGraphAB5LightEi8mglPoint8mglColorfb at Base 1.11
+ _ZN10mglGraphAB5LightEib at Base 1.11
+ _ZN10mglGraphAB5PutswE8mglPointPKwPKcfcf at Base 1.11
+ _ZN10mglGraphAB5PutswE8mglPointS0_PKwcf at Base 1.11
+ _ZN10mglGraphAB6AdjustEv at Base 1.11
+ _ZN10mglGraphAB6AspectEfff at Base 1.11
+ _ZN10mglGraphAB6InPlotEffffb at Base 1.11
+ _ZN10mglGraphAB6LegendEiPPwPPcffPKcff at Base 1.11
+ _ZN10mglGraphAB6ReLoadEb at Base 1.11
+ _ZN10mglGraphAB6UpdateEv at Base 1.11
+ _ZN10mglGraphAB6WindowEiPPcPFiP8mglGraphPvEPKcS4_PFviS4_Eb at Base 1.11
+ _ZN10mglGraphAB6WindowEiPPcPKcP7mglDrawb at Base 1.11
+ _ZN10mglGraphAB7CalcScrE8mglPoint at Base 1.11
+ _ZN10mglGraphAB7CalcScrE8mglPointPiS1_ at Base 1.11
+ _ZN10mglGraphAB7CalcXYZEii at Base 1.11
+ _ZN10mglGraphAB7GetBitsEv at Base 1.11
+ _ZN10mglGraphAB7GetOrgXEc at Base 1.11
+ _ZN10mglGraphAB7GetOrgYEc at Base 1.11
+ _ZN10mglGraphAB7GetOrgZEc at Base 1.11
+ _ZN10mglGraphAB7GetRGBAEv at Base 1.11
+ _ZN10mglGraphAB7RotateNEffff at Base 1.11
+ _ZN10mglGraphAB7SetSizeEii at Base 1.11
+ _ZN10mglGraphAB7col2intE8mglColorfPh at Base 1.11
+ _ZN10mglGraphAB7col2intEPfS0_Ph at Base 1.11
+ _ZN10mglGraphAB7combineEPhS0_ at Base 1.11
+ _ZN10mglGraphAB8DefColorE8mglColorf at Base 1.11
+ _ZN10mglGraphAB8DrawTickEPfb at Base 1.11
+ _ZN10mglGraphAB8GetRatioEv at Base 1.11
+ _ZN10mglGraphAB8NewFrameEv at Base 1.11
+ _ZN10mglGraphAB8ToggleNoEv at Base 1.11
+ _ZN10mglGraphAB8WriteSVGEPKcS1_ at Base 1.11
+ _ZN10mglGraphAB8colorbarERK7mglDataPK8mglColoriffff at Base 1.11
+ _ZN10mglGraphAB8pnt_plotEllfPh at Base 1.11
+ _ZN10mglGraphAB9AnimationEv at Base 1.11
+ _ZN10mglGraphAB9NextFrameEv at Base 1.11
+ _ZN10mglGraphAB9NormScaleEPfl at Base 1.11
+ _ZN10mglGraphAB9PostScaleEPfl at Base 1.11
+ _ZN10mglGraphAB9PrevFrameEv at Base 1.11
+ _ZN10mglGraphAB9StickPlotEiiff at Base 1.11
+ _ZN10mglGraphAB9boxs_plotEllPfP8mglColorPbfb at Base 1.11
+ _ZN10mglGraphAB9curv_plotElPfPb at Base 1.11
+ _ZN10mglGraphAB9curv_plotElPfPbPl at Base 1.11
+ _ZN10mglGraphAB9curv_plotElPfS0_Pb at Base 1.11
+ _ZN10mglGraphAB9line_plotEPfS0_S0_S0_b at Base 1.11
+ _ZN10mglGraphAB9mark_plotEPfc at Base 1.11
+ _ZN10mglGraphAB9mesh_plotEllPfS0_Pbi at Base 1.11
+ _ZN10mglGraphAB9quad_plotEPfS0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN10mglGraphAB9surf_plotEllPfS0_Pb at Base 1.11
+ _ZN10mglGraphAB9trig_plotEPfS0_S0_S0_S0_S0_ at Base 1.11
+ _ZN10mglGraphAB9wire_plotEllPfS0_Pb at Base 1.11
+ _ZN10mglGraphABC1Eii at Base 1.11
+ _ZN10mglGraphABC2Eii at Base 1.11
+ _ZN10mglGraphABD0Ev at Base 1.11
+ _ZN10mglGraphABD1Ev at Base 1.11
+ _ZN10mglGraphABD2Ev at Base 1.11
+ _ZN10mglGraphGL10LightScaleEv at Base 1.11
+ _ZN10mglGraphGL11GetRGBLinesERlS0_RPhb at Base 1.11
+ _ZN10mglGraphGL11quad_plot_aEPfS0_S0_S0_fffff at Base 1.11
+ _ZN10mglGraphGL11quad_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN10mglGraphGL11trig_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN10mglGraphGL3ClfE8mglColor at Base 1.11
+ _ZN10mglGraphGL3FogEff at Base 1.11
+ _ZN10mglGraphGL3PenE8mglColorcf at Base 1.11
+ _ZN10mglGraphGL4BallEfff8mglColorf at Base 1.11
+ _ZN10mglGraphGL4ViewEfff at Base 1.11
+ _ZN10mglGraphGL4ballEPfS0_ at Base 1.11
+ _ZN10mglGraphGL5AlphaEb at Base 1.11
+ _ZN10mglGraphGL5FlushEv at Base 1.11
+ _ZN10mglGraphGL5GlyphEfffilc at Base 1.11
+ _ZN10mglGraphGL5LightEb at Base 1.11
+ _ZN10mglGraphGL5LightEi8mglPoint8mglColorfb at Base 1.11
+ _ZN10mglGraphGL5LightEib at Base 1.11
+ _ZN10mglGraphGL6FinishEv at Base 1.11
+ _ZN10mglGraphGL6InPlotEffffb at Base 1.11
+ _ZN10mglGraphGL7SetSizeEii at Base 1.11
+ _ZN10mglGraphGL8EndFrameEv at Base 1.11
+ _ZN10mglGraphGL8NewFrameEv at Base 1.11
+ _ZN10mglGraphGL9line_plotEPfS0_S0_S0_b at Base 1.11
+ _ZN10mglGraphGL9mark_plotEPfc at Base 1.11
+ _ZN10mglGraphGL9quad_plotEPfS0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN10mglGraphGL9trig_plotEPfS0_S0_S0_S0_S0_ at Base 1.11
+ _ZN10mglGraphGLC1Ev at Base 1.11
+ _ZN10mglGraphGLC2Ev at Base 1.11
+ _ZN10mglGraphGLD0Ev at Base 1.11
+ _ZN10mglGraphGLD1Ev at Base 1.11
+ _ZN10mglGraphGLD2Ev at Base 1.11
+ _ZN10mglGraphPS11quad_plot_aEPfS0_S0_S0_fffff at Base 1.11
+ _ZN10mglGraphPS11quad_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN10mglGraphPS11trig_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN10mglGraphPS3ClfE8mglColor at Base 1.11
+ _ZN10mglGraphPS4BallEfff8mglColorf at Base 1.11
+ _ZN10mglGraphPS4ballEPfS0_ at Base 1.11
+ _ZN10mglGraphPS5GlyphEfffilc at Base 1.11
+ _ZN10mglGraphPS6FinishEv at Base 1.11
+ _ZN10mglGraphPS8WriteEPSEPKcS1_ at Base 1.11
+ _ZN10mglGraphPS8WriteSVGEPKcS1_ at Base 1.11
+ _ZN10mglGraphPS8add_primER7mglPrim at Base 1.11
+ _ZN10mglGraphPS8pnt_plotEllfPh at Base 1.11
+ _ZN10mglGraphPS8put_descEPvbPKcS2_S2_S2_S2_ at Base 1.11
+ _ZN10mglGraphPS8put_lineEPvblfPfiPKcS3_b at Base 1.11
+ _ZN10mglGraphPS9add_lightEPffff at Base 1.11
+ _ZN10mglGraphPS9draw_primEP7mglPrimPfS2_ at Base 1.11
+ _ZN10mglGraphPS9line_plotEPfS0_S0_S0_b at Base 1.11
+ _ZN10mglGraphPS9mark_plotEPfc at Base 1.11
+ _ZN10mglGraphPS9quad_plotEPfS0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN10mglGraphPS9trig_plotEPfS0_S0_S0_S0_S0_ at Base 1.11
+ _ZN10mglGraphPSC1Eii at Base 1.11
+ _ZN10mglGraphPSC2Eii at Base 1.11
+ _ZN10mglGraphPSD0Ev at Base 1.11
+ _ZN10mglGraphPSD1Ev at Base 1.11
+ _ZN10mglGraphPSD2Ev at Base 1.11
+ _ZN10mglGraphZB10PutDrawRegEiiiP10mglGraphAB at Base 1.11
+ _ZN10mglGraphZB10WriteSliceEi at Base 1.11
+ _ZN10mglGraphZB3ClfE8mglColor at Base 1.11
+ _ZN10mglGraphZB5GlyphEfffilc at Base 1.11
+ _ZN10mglGraphZB6FinishEv at Base 1.11
+ _ZN10mglGraphZB7SetSizeEii at Base 1.11
+ _ZN10mglGraphZB8pnt_plotEllfPh at Base 1.11
+ _ZN10mglGraphZBC1Eii at Base 1.11
+ _ZN10mglGraphZBC2Eii at Base 1.11
+ _ZN10mglGraphZBD0Ev at Base 1.11
+ _ZN10mglGraphZBD1Ev at Base 1.11
+ _ZN10mglGraphZBD2Ev at Base 1.11
+ _ZN10u3dLineSet20print_model_resourceERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.11
+ _ZN10u3dLineSet7AddLineEmmm at Base 1.11
+ _ZN10u3dLineSet9line_plotEPfS0_S0_S0_ at Base 1.11
+ _ZN10u3dLineSetD1Ev at Base 1.11
+ _ZN10u3dTexture13print_textureEPKcRSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.11
+ _ZN10u3dTextureD1Ev at Base 1.11
+ _ZN11TGAImageMin10DeallocateEv at Base 1.11
+ _ZN11TGAImageMin10InitializeEjjj at Base 1.11
+ _ZN11TGAImageMinC1Ev at Base 1.11
+ _ZN11TGAImageMinC2Ev at Base 1.11
+ _ZN11TGAImageMinD1Ev at Base 1.11
+ _ZN11TGAImageMinD2Ev at Base 1.11
+ _ZN11mglFormulaC5ErrorE at Base 1.11
+ _ZN11mglFormulaCC1EPKc at Base 1.11
+ _ZN11mglFormulaCC2EPKc at Base 1.11
+ _ZN11mglFormulaCD1Ev at Base 1.11
+ _ZN11mglFormulaCD2Ev at Base 1.11
+ _ZN11u3dMaterial12print_shaderERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.11
+ _ZN11u3dMaterial14print_materialERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.11
+ _ZN11u3dMaterialD1Ev at Base 1.11
+ _ZN11u3dPointSet10point_plotERK8mglPointRK8mglColor at Base 1.11
+ _ZN11u3dPointSet20print_model_resourceERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.11
+ _ZN11u3dPointSetC1ERKSsP12mglGraphIDTF at Base 1.11
+ _ZN11u3dPointSetC2ERKSsP12mglGraphIDTF at Base 1.11
+ _ZN12mglGraphIDTF10AddTextureEv at Base 1.11
+ _ZN12mglGraphIDTF10GetLineSetEv at Base 1.11
+ _ZN12mglGraphIDTF10StartGroupEPKc at Base 1.11
+ _ZN12mglGraphIDTF10arrow_plotEPfS0_c at Base 1.11
+ _ZN12mglGraphIDTF10cloud_plotElllPfS0_f at Base 1.11
+ _ZN12mglGraphIDTF10point_plotERK8mglPointRK8mglColor at Base 1.11
+ _ZN12mglGraphIDTF10quads_plotElPfS0_Pb at Base 1.11
+ _ZN12mglGraphIDTF11AddMaterialERK11u3dMaterial at Base 1.11
+ _ZN12mglGraphIDTF11BallIsPointEb at Base 1.11
+ _ZN12mglGraphIDTF11CompressionEb at Base 1.11
+ _ZN12mglGraphIDTF11DoubleSidedEb at Base 1.11
+ _ZN12mglGraphIDTF11GetPointSetEv at Base 1.11
+ _ZN12mglGraphIDTF11VertexColorEb at Base 1.11
+ _ZN12mglGraphIDTF11line_plot_sEPfS0_S0_S0_b at Base 1.11
+ _ZN12mglGraphIDTF11quad_plot_aEPfS0_S0_S0_fffff at Base 1.11
+ _ZN12mglGraphIDTF11quad_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN12mglGraphIDTF11trig_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN12mglGraphIDTF12TextureColorEb at Base 1.11
+ _ZN12mglGraphIDTF14StartAutoGroupEPKc at Base 1.11
+ _ZN12mglGraphIDTF15GetCurrentGroupEv at Base 1.11
+ _ZN12mglGraphIDTF15SetAmbientLightE8mglColorf at Base 1.11
+ _ZN12mglGraphIDTF19MakeTransformMatrixEPA4_fS1_ at Base 1.11
+ _ZN12mglGraphIDTF3ClfE8mglColor at Base 1.11
+ _ZN12mglGraphIDTF4BallEfff8mglColorf at Base 1.11
+ _ZN12mglGraphIDTF4ballEPfS0_ at Base 1.11
+ _ZN12mglGraphIDTF5FlushEv at Base 1.11
+ _ZN12mglGraphIDTF5LightEi8mglPoint8mglColorfb at Base 1.11
+ _ZN12mglGraphIDTF5PutswE8mglPointPKwPKcfcf at Base 1.11
+ _ZN12mglGraphIDTF5PutswE8mglPointS0_PKwcf at Base 1.11
+ _ZN12mglGraphIDTF6InPlotEffffb at Base 1.11
+ _ZN12mglGraphIDTF7GetMeshEv at Base 1.11
+ _ZN12mglGraphIDTF7col2colEPKfS1_Pf at Base 1.11
+ _ZN12mglGraphIDTF8AddLightE8mglPoint8mglColorfb at Base 1.11
+ _ZN12mglGraphIDTF8EndGroupEv at Base 1.11
+ _ZN12mglGraphIDTF8UnitBallEv at Base 1.11
+ _ZN12mglGraphIDTF8UnrotateEb at Base 1.11
+ _ZN12mglGraphIDTF9WriteIDTFEPKcS1_ at Base 1.11
+ _ZN12mglGraphIDTF9line_plotEPfS0_S0_S0_b at Base 1.11
+ _ZN12mglGraphIDTF9line_plotERK8mglPointS2_ at Base 1.11
+ _ZN12mglGraphIDTF9mark_plotEPfc at Base 1.11
+ _ZN12mglGraphIDTF9quad_plotEPfS0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN12mglGraphIDTF9quad_plotERK8mglPointS2_S2_S2_ at Base 1.11
+ _ZN12mglGraphIDTF9surf_plotEllPfS0_Pb at Base 1.11
+ _ZN12mglGraphIDTF9trig_plotEPfS0_S0_S0_S0_S0_ at Base 1.11
+ _ZN12mglGraphIDTF9trig_plotERK8mglPointS2_S2_ at Base 1.11
+ _ZN12mglGraphIDTFC1Ev at Base 1.11
+ _ZN12mglGraphIDTFC2Ev at Base 1.11
+ _ZN12mglGraphIDTFD0Ev at Base 1.11
+ _ZN12mglGraphIDTFD1Ev at Base 1.11
+ _ZN12mglGraphIDTFD2Ev at Base 1.11
+ _ZN6mglNum9MoveAfterEPS_ at Base 1.11
+ _ZN6mglNumD1Ev at Base 1.11
+ _ZN6mglNumD2Ev at Base 1.11
+ _ZN6mglVar9MoveAfterEPS_ at Base 1.11
+ _ZN6mglVarD1Ev at Base 1.11
+ _ZN6mglVarD2Ev at Base 1.11
+ _ZN7mglData10DeleteRowsEii at Base 1.11
+ _ZN7mglData10FillSampleEiPKc at Base 1.11
+ _ZN7mglData10InsertRowsEiiPKc at Base 1.11
+ _ZN7mglData11SetColumnIdEPKc at Base 1.11
+ _ZN7mglData12DeleteSlicesEii at Base 1.11
+ _ZN7mglData12InsertSlicesEiiPKc at Base 1.11
+ _ZN7mglData13DeleteColumnsEii at Base 1.11
+ _ZN7mglData13InsertColumnsEiiPKc at Base 1.11
+ _ZN7mglData3PutERKS_iii at Base 1.11
+ _ZN7mglData3PutEfiii at Base 1.11
+ _ZN7mglData3SetEP10gsl_matrix at Base 1.11
+ _ZN7mglData3SetEP10gsl_vector at Base 1.11
+ _ZN7mglData3SetEPKciii at Base 1.11
+ _ZN7mglData3SetEPKdiii at Base 1.11
+ _ZN7mglData3SetEPKfiii at Base 1.11
+ _ZN7mglData3SetEPPKdii at Base 1.11
+ _ZN7mglData3SetEPPKfii at Base 1.11
+ _ZN7mglData3SetEPPPKdiii at Base 1.11
+ _ZN7mglData3SetEPPPKfiii at Base 1.11
+ _ZN7mglData3SetERKSt6vectorIdSaIdEE at Base 1.11
+ _ZN7mglData3SetERKSt6vectorIfSaIfEE at Base 1.11
+ _ZN7mglData3SetERKSt6vectorIiSaIiEE at Base 1.11
+ _ZN7mglData3SewEPKcf at Base 1.11
+ _ZN7mglData4CropEiic at Base 1.11
+ _ZN7mglData4DiffEPKc at Base 1.11
+ _ZN7mglData4DiffERKS_S1_ at Base 1.11
+ _ZN7mglData4DiffERKS_S1_S1_ at Base 1.11
+ _ZN7mglData4FillEPKc8mglPointS2_PKS_S4_ at Base 1.11
+ _ZN7mglData4FillEffc at Base 1.11
+ _ZN7mglData4NormEffbi at Base 1.11
+ _ZN7mglData4ReadEPKc at Base 1.11
+ _ZN7mglData4ReadEPKciii at Base 1.11
+ _ZN7mglData4RollEci at Base 1.11
+ _ZN7mglData4SwapEPKc at Base 1.11
+ _ZN7mglData5Diff2EPKc at Base 1.11
+ _ZN7mglData5NewIdEv at Base 1.11
+ _ZN7mglData6ColumnEPKc at Base 1.11
+ _ZN7mglData6CosFFTEPKc at Base 1.11
+ _ZN7mglData6CreateEiii at Base 1.11
+ _ZN7mglData6CumSumEPKc at Base 1.11
+ _ZN7mglData6DeleteEcii at Base 1.11
+ _ZN7mglData6ExtendEii at Base 1.11
+ _ZN7mglData6HankelEPKc at Base 1.11
+ _ZN7mglData6ImportEPKcS1_ff at Base 1.11
+ _ZN7mglData6InsertEcii at Base 1.11
+ _ZN7mglData6MirrorEPKc at Base 1.11
+ _ZN7mglData6ModifyEPKcRKS_ at Base 1.11
+ _ZN7mglData6ModifyEPKcRKS_S3_ at Base 1.11
+ _ZN7mglData6ModifyEPKci at Base 1.11
+ _ZN7mglData6NormSlEffcbb at Base 1.11
+ _ZN7mglData6SinFFTEPKc at Base 1.11
+ _ZN7mglData6SmoothEPKc at Base 1.11
+ _ZN7mglData6SmoothEiPKcf at Base 1.11
+ _ZN7mglData7EnvelopEc at Base 1.11
+ _ZN7mglData7ReadAllEPKcb at Base 1.11
+ _ZN7mglData7ReadHDFEPKcS1_ at Base 1.11
+ _ZN7mglData7ReadMatEPKci at Base 1.11
+ _ZN7mglData7SqueezeEiiib at Base 1.11
+ _ZN7mglData8IntegralEPKc at Base 1.11
+ _ZN7mglData8ReadHDF4EPKcS1_ at Base 1.11
+ _ZN7mglData9ReadRangeEPKcfffb at Base 1.11
+ _ZN7mglData9RearrangeEiii at Base 1.11
+ _ZN7mglData9TransposeEPKc at Base 1.11
+ _ZN7mglDataD1Ev at Base 1.11
+ _ZN7mglDataaSERKS_ at Base 1.11
+ _ZN7mglDataaSEf at Base 1.11
+ _ZN7mglDatadVERKS_ at Base 1.11
+ _ZN7mglDatadVEf at Base 1.11
+ _ZN7mglDatamIERKS_ at Base 1.11
+ _ZN7mglDatamIEf at Base 1.11
+ _ZN7mglDatamLERKS_ at Base 1.11
+ _ZN7mglDatamLEf at Base 1.11
+ _ZN7mglDatapLERKS_ at Base 1.11
+ _ZN7mglDatapLEf at Base 1.11
+ _ZN7mglFont11draw_oulineEP8mglGraphifffffc at Base 1.11
+ _ZN7mglFont4CopyEPS_ at Base 1.11
+ _ZN7mglFont4LoadEPKcS1_ at Base 1.11
+ _ZN7mglFont4PutsEPKcS1_c at Base 1.11
+ _ZN7mglFont4PutsEPKciic at Base 1.11
+ _ZN7mglFont4PutsEPKjfffic at Base 1.11
+ _ZN7mglFont4PutsEPKwPKcc at Base 1.11
+ _ZN7mglFont4PutsEPKwiic at Base 1.11
+ _ZN7mglFont5ClearEv at Base 1.11
+ _ZN7mglFont5ParseEPKw at Base 1.11
+ _ZN7mglFont5WidthEPKcS1_ at Base 1.11
+ _ZN7mglFont5WidthEPKci at Base 1.11
+ _ZN7mglFont5WidthEPKwPKc at Base 1.11
+ _ZN7mglFont5WidthEPKwi at Base 1.11
+ _ZN7mglFont6HeightEPKc at Base 1.11
+ _ZN7mglFont6HeightEi at Base 1.11
+ _ZN7mglFont7ConvertEPKwPj at Base 1.11
+ _ZN7mglFont7RestoreEv at Base 1.11
+ _ZN7mglFont7get_ptrERlPjPS1_S2_RfS3_ffi at Base 1.11
+ _ZN7mglFont8InternalEj at Base 1.11
+ _ZN7mglFont8read_defERj at Base 1.11
+ _ZN7mglFont9main_copyEv at Base 1.11
+ _ZN7mglFont9mem_allocEv at Base 1.11
+ _ZN7mglFont9read_dataEPKcPfPsS3_PjS3_S4_Rj at Base 1.11
+ _ZN7mglFont9read_mainEPKcRj at Base 1.11
+ _ZN7mglFontC1EPKcS1_ at Base 1.11
+ _ZN7mglFontC2EPKcS1_ at Base 1.11
+ _ZN7mglFontD1Ev at Base 1.11
+ _ZN7mglFontD2Ev at Base 1.11
+ _ZN7mglFuncC1ElPKwPS_ at Base 1.11
+ _ZN7mglFuncC2ElPKwPS_ at Base 1.11
+ _ZN7mglFuncD1Ev at Base 1.11
+ _ZN7mglPrim4DrawEP10mglGraphPS at Base 1.11
+ _ZN7mglPrim6IsSameEfPfi at Base 1.11
+ _ZN7u3dBall10print_nodeERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.11
+ _ZN7u3dBall22print_shading_modifierERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.11
+ _ZN7u3dMesh11AddTriangleEmmmm at Base 1.11
+ _ZN7u3dMesh11AddTriangleEmmmmmm at Base 1.11
+ _ZN7u3dMesh11quad_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN7u3dMesh11trig_plot_nEPfS0_S0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN7u3dMesh20print_model_resourceERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.11
+ _ZN7u3dMesh9quad_plotEPfS0_S0_S0_S0_S0_S0_S0_ at Base 1.11
+ _ZN7u3dMesh9trig_plotEPfS0_S0_S0_S0_S0_ at Base 1.11
+ _ZN7u3dMeshD1Ev at Base 1.11
+ _ZN7u3dNode5printERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.11
+ _ZN7u3dNodeD1Ev at Base 1.11
+ _ZN8mglColor3SetES_f at Base 1.11
+ _ZN8mglColor3SetEcf at Base 1.11
+ _ZN8mglGraph10ColumnPlotEiif at Base 1.11
+ _ZN8mglGraph10ScalePointERfS0_S0_ at Base 1.11
+ _ZN8mglGraph10SetTickLenEff at Base 1.11
+ _ZN8mglGraph10SetTickStlEPKcS1_ at Base 1.11
+ _ZN8mglGraph10SimplePlotERK7mglDataiPKc at Base 1.11
+ _ZN8mglGraph10StartGroupEPKc at Base 1.11
+ _ZN8mglGraph10StartGroupEPKci at Base 1.11
+ _ZN8mglGraph10WriteFrameEPKcS1_ at Base 1.11
+ _ZN8mglGraph10add_cpointERlPPfS2_PPbfffffb at Base 1.11
+ _ZN8mglGraph10add_spointERlPPfS2_S2_S2_ffffffffff at Base 1.11
+ _ZN8mglGraph10contf_plotEffllPfS0_S0_S0_f at Base 1.11
+ _ZN8mglGraph10font_curveElPfPbPlPKwif at Base 1.11
+ _ZN8mglGraph11AdjustTicksEPKc at Base 1.11
+ _ZN8mglGraph11BallIsPointEb at Base 1.11
+ _ZN8mglGraph11ClearLegendEv at Base 1.11
+ _ZN8mglGraph11CompressionEb at Base 1.11
+ _ZN8mglGraph11DoubleSidedEb at Base 1.11
+ _ZN8mglGraph11GetRGBLinesERlS0_RPhb at Base 1.11
+ _ZN8mglGraph11SetTicksValEciPfPPKc at Base 1.11
+ _ZN8mglGraph11SetTicksValEciPfPPKw at Base 1.11
+ _ZN8mglGraph11SetTicksValEcidPKcz at Base 1.11
+ _ZN8mglGraph11VertexColorEb at Base 1.11
+ _ZN8mglGraph12PrepareFitEqEfPKcS1_Pfb at Base 1.11
+ _ZN8mglGraph12RecalcBorderEv at Base 1.11
+ _ZN8mglGraph12TextureColorEb at Base 1.11
+ _ZN8mglGraph12string_curveEllPfPlPKwfi at Base 1.11
+ _ZN8mglGraph12tricont_lineEfllllRK7mglDataS2_S2_S2_f at Base 1.11
+ _ZN8mglGraph13DrawTGridLineEff at Base 1.11
+ _ZN8mglGraph13DrawXGridLineEfff at Base 1.11
+ _ZN8mglGraph13DrawYGridLineEfff at Base 1.11
+ _ZN8mglGraph13DrawZGridLineEfff at Base 1.11
+ _ZN8mglGraph13SetAutoRangesEffffff at Base 1.11
+ _ZN8mglGraph13SetFontSizePTEfi at Base 1.11
+ _ZN8mglGraph14StartAutoGroupEPKc at Base 1.11
+ _ZN8mglGraph16DefaultPlotParamEv at Base 1.11
+ _ZN8mglGraph3BoxE8mglColorb at Base 1.11
+ _ZN8mglGraph3BoxEPKcb at Base 1.11
+ _ZN8mglGraph3ClfE8mglColor at Base 1.11
+ _ZN8mglGraph3DewERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph3DewERK7mglDataS2_S2_S2_PKcf at Base 1.11
+ _ZN8mglGraph3FitER7mglDataRKS0_PKcS5_Pfb at Base 1.11
+ _ZN8mglGraph3FitER7mglDataRKS0_PKcS5_S1_b at Base 1.11
+ _ZN8mglGraph3FitER7mglDataRKS0_S3_PKcS5_Pfb at Base 1.11
+ _ZN8mglGraph3FitER7mglDataRKS0_S3_PKcS5_S1_b at Base 1.11
+ _ZN8mglGraph3FitER7mglDataRKS0_S3_S3_PKcS5_Pfb at Base 1.11
+ _ZN8mglGraph3FitER7mglDataRKS0_S3_S3_PKcS5_S1_b at Base 1.11
+ _ZN8mglGraph3FitER7mglDataRKS0_S3_S3_S3_PKcS5_Pfb at Base 1.11
+ _ZN8mglGraph3FitER7mglDataRKS0_S3_S3_S3_PKcS5_S1_b at Base 1.11
+ _ZN8mglGraph3FogEff at Base 1.11
+ _ZN8mglGraph3MapERK7mglDataS2_PKcib at Base 1.11
+ _ZN8mglGraph3MapERK7mglDataS2_S2_S2_PKcib at Base 1.11
+ _ZN8mglGraph3PenE8mglColorcf at Base 1.11
+ _ZN8mglGraph4AreaERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph4AreaERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph4AreaERK7mglDataS2_S2_PKc at Base 1.11
+ _ZN8mglGraph4AxisE8mglPointS0_S0_ at Base 1.11
+ _ZN8mglGraph4AxisEPKcb at Base 1.11
+ _ZN8mglGraph4BarhERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph4BarhERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph4BarsERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph4BarsERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph4BarsERK7mglDataS2_S2_PKc at Base 1.11
+ _ZN8mglGraph4BeamERK7mglDataS2_S2_S2_fPKcii at Base 1.11
+ _ZN8mglGraph4BeamEfRK7mglDataS2_S2_S2_fPKci at Base 1.11
+ _ZN8mglGraph4BeltERK7mglDataPKc at Base 1.11
+ _ZN8mglGraph4BeltERK7mglDataS2_S2_PKc at Base 1.11
+ _ZN8mglGraph4BoxsERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph4BoxsERK7mglDataS2_S2_PKcf at Base 1.11
+ _ZN8mglGraph4ConeE8mglPointS0_ffPKcb at Base 1.11
+ _ZN8mglGraph4ContERK7mglDataPKcif at Base 1.11
+ _ZN8mglGraph4ContERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph4ContERK7mglDataS2_S2_PKcif at Base 1.11
+ _ZN8mglGraph4ContERK7mglDataS2_S2_S2_PKcf at Base 1.11
+ _ZN8mglGraph4DensERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph4DensERK7mglDataS2_S2_PKcf at Base 1.11
+ _ZN8mglGraph4DotsERK7mglDataPKc at Base 1.11
+ _ZN8mglGraph4DotsERK7mglDataS2_S2_PKc at Base 1.11
+ _ZN8mglGraph4DotsERK7mglDataS2_S2_S2_PKcf at Base 1.11
+ _ZN8mglGraph4DropE8mglPointS0_f8mglColorff at Base 1.11
+ _ZN8mglGraph4DropE8mglPointS0_fPKcff at Base 1.11
+ _ZN8mglGraph4FaceE8mglPointS0_S0_S0_PKcif at Base 1.11
+ _ZN8mglGraph4FallERK7mglDataPKc at Base 1.11
+ _ZN8mglGraph4FallERK7mglDataS2_S2_PKc at Base 1.11
+ _ZN8mglGraph4Fit2ER7mglDataRKS0_PKcS5_Pfb at Base 1.11
+ _ZN8mglGraph4Fit2ER7mglDataRKS0_PKcS5_S1_b at Base 1.11
+ _ZN8mglGraph4Fit3ER7mglDataRKS0_PKcS5_Pfb at Base 1.11
+ _ZN8mglGraph4Fit3ER7mglDataRKS0_PKcS5_S1_b at Base 1.11
+ _ZN8mglGraph4FitSER7mglDataRKS0_S3_PKcS5_Pfb at Base 1.11
+ _ZN8mglGraph4FitSER7mglDataRKS0_S3_PKcS5_S1_b at Base 1.11
+ _ZN8mglGraph4FitSER7mglDataRKS0_S3_S3_PKcS5_Pfb at Base 1.11
+ _ZN8mglGraph4FitSER7mglDataRKS0_S3_S3_PKcS5_S1_b at Base 1.11
+ _ZN8mglGraph4FitSER7mglDataRKS0_S3_S3_S3_PKcS5_Pfb at Base 1.11
+ _ZN8mglGraph4FitSER7mglDataRKS0_S3_S3_S3_PKcS5_S1_b at Base 1.11
+ _ZN8mglGraph4FitSER7mglDataRKS0_S3_S3_S3_S3_PKcS5_Pfb at Base 1.11
+ _ZN8mglGraph4FitSER7mglDataRKS0_S3_S3_S3_S3_PKcS5_S1_b at Base 1.11
+ _ZN8mglGraph4FlowERK7mglDataS2_PKcibf at Base 1.11
+ _ZN8mglGraph4FlowERK7mglDataS2_S2_PKcib at Base 1.11
+ _ZN8mglGraph4FlowERK7mglDataS2_S2_S2_PKcibf at Base 1.11
+ _ZN8mglGraph4FlowERK7mglDataS2_S2_S2_S2_S2_PKcib at Base 1.11
+ _ZN8mglGraph4GetAEf at Base 1.11
+ _ZN8mglGraph4GetCEfb at Base 1.11
+ _ZN8mglGraph4GetCEfffb at Base 1.11
+ _ZN8mglGraph4GradERK7mglDataPKcif at Base 1.11
+ _ZN8mglGraph4GradERK7mglDataS2_S2_PKcif at Base 1.11
+ _ZN8mglGraph4GradERK7mglDataS2_S2_S2_PKci at Base 1.11
+ _ZN8mglGraph4GridEPKcS1_ at Base 1.11
+ _ZN8mglGraph4GridERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph4GridERK7mglDataS2_S2_PKcf at Base 1.11
+ _ZN8mglGraph4HistER7mglDataRKS0_S3_ at Base 1.11
+ _ZN8mglGraph4HistER7mglDataRKS0_S3_S3_ at Base 1.11
+ _ZN8mglGraph4HistER7mglDataRKS0_S3_S3_S3_ at Base 1.11
+ _ZN8mglGraph4LineE8mglPointS0_PKci at Base 1.11
+ _ZN8mglGraph4MarkE8mglPointc at Base 1.11
+ _ZN8mglGraph4MarkERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph4MarkERK7mglDataS2_S2_PKcf at Base 1.11
+ _ZN8mglGraph4MarkERK7mglDataS2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph4MeshERK7mglDataPKc at Base 1.11
+ _ZN8mglGraph4MeshERK7mglDataS2_S2_PKc at Base 1.11
+ _ZN8mglGraph4PipeERK7mglDataS2_PKcfibf at Base 1.11
+ _ZN8mglGraph4PipeERK7mglDataS2_S2_PKcfib at Base 1.11
+ _ZN8mglGraph4PipeERK7mglDataS2_S2_S2_PKcfibf at Base 1.11
+ _ZN8mglGraph4PipeERK7mglDataS2_S2_S2_S2_S2_PKcfib at Base 1.11
+ _ZN8mglGraph4PlotEPKcS1_S1_S1_i at Base 1.11
+ _ZN8mglGraph4PlotEPKcS1_fi at Base 1.11
+ _ZN8mglGraph4PlotERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph4PlotERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph4PlotERK7mglDataS2_S2_PKc at Base 1.11
+ _ZN8mglGraph4PutsE8mglPointPKcS2_fcf at Base 1.11
+ _ZN8mglGraph4PutsE8mglPointS0_PKccf at Base 1.11
+ _ZN8mglGraph4STFAERK7mglDataS2_S2_S2_iPKcf at Base 1.11
+ _ZN8mglGraph4STFAERK7mglDataS2_iPKcf at Base 1.11
+ _ZN8mglGraph4StemERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph4StemERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph4StemERK7mglDataS2_S2_PKc at Base 1.11
+ _ZN8mglGraph4StepERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph4StepERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph4StepERK7mglDataS2_S2_PKc at Base 1.11
+ _ZN8mglGraph4SurfEPKcS1_S1_S1_i at Base 1.11
+ _ZN8mglGraph4SurfEPKcS1_i at Base 1.11
+ _ZN8mglGraph4SurfERK7mglDataPKc at Base 1.11
+ _ZN8mglGraph4SurfERK7mglDataS2_S2_PKc at Base 1.11
+ _ZN8mglGraph4TensERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph4TensERK7mglDataS2_S2_PKcf at Base 1.11
+ _ZN8mglGraph4TensERK7mglDataS2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph4TextE8mglPointPKcS2_fc at Base 1.11
+ _ZN8mglGraph4TextE8mglPointPKwPKcfc at Base 1.11
+ _ZN8mglGraph4TextERK7mglDataPKcS4_ff at Base 1.11
+ _ZN8mglGraph4TextERK7mglDataPKwPKcff at Base 1.11
+ _ZN8mglGraph4TextERK7mglDataS2_PKcS4_ff at Base 1.11
+ _ZN8mglGraph4TextERK7mglDataS2_PKwPKcff at Base 1.11
+ _ZN8mglGraph4TextERK7mglDataS2_S2_PKcS4_f at Base 1.11
+ _ZN8mglGraph4TextERK7mglDataS2_S2_PKwPKcf at Base 1.11
+ _ZN8mglGraph4TileERK7mglDataPKc at Base 1.11
+ _ZN8mglGraph4TileERK7mglDataS2_S2_PKc at Base 1.11
+ _ZN8mglGraph4TrajERK7mglDataS2_S2_S2_PKcff at Base 1.11
+ _ZN8mglGraph4TrajERK7mglDataS2_S2_S2_S2_S2_PKcf at Base 1.11
+ _ZN8mglGraph4TubeERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph4TubeERK7mglDataS2_S2_PKcf at Base 1.11
+ _ZN8mglGraph4TubeERK7mglDataS2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph4TubeERK7mglDataS2_S2_fPKc at Base 1.11
+ _ZN8mglGraph4TubeERK7mglDataS2_fPKcf at Base 1.11
+ _ZN8mglGraph4TubeERK7mglDatafPKcf at Base 1.11
+ _ZN8mglGraph4VectERK7mglDataS2_PKcfi at Base 1.11
+ _ZN8mglGraph4VectERK7mglDataS2_S2_PKci at Base 1.11
+ _ZN8mglGraph4VectERK7mglDataS2_S2_S2_PKcfi at Base 1.11
+ _ZN8mglGraph4VectERK7mglDataS2_S2_S2_S2_S2_PKci at Base 1.11
+ _ZN8mglGraph4ViewEfff at Base 1.11
+ _ZN8mglGraph4ZoomEffff at Base 1.11
+ _ZN8mglGraph4ballEPfS0_ at Base 1.11
+ _ZN8mglGraph4flowEbfffRK7mglDataS2_S2_S2_ at Base 1.11
+ _ZN8mglGraph4flowEbfffRK7mglDataS2_S2_S2_S2_S2_ at Base 1.11
+ _ZN8mglGraph5AxialERK7mglDataPKci at Base 1.11
+ _ZN8mglGraph5AxialERK7mglDataS2_PKc at Base 1.11
+ _ZN8mglGraph5AxialERK7mglDataS2_S2_PKci at Base 1.11
+ _ZN8mglGraph5AxialERK7mglDataS2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph5AxisTEbPKc at Base 1.11
+ _ZN8mglGraph5AxisXEbPKc at Base 1.11
+ _ZN8mglGraph5AxisYEbPKc at Base 1.11
+ _ZN8mglGraph5AxisZEbPKc at Base 1.11
+ _ZN8mglGraph5ChartERK7mglDataPKc at Base 1.11
+ _ZN8mglGraph5CloudERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph5CloudERK7mglDataS2_S2_S2_PKcf at Base 1.11
+ _ZN8mglGraph5ColorEfff at Base 1.11
+ _ZN8mglGraph5Cont3ERK7mglDataS2_S2_S2_S2_ciPKc at Base 1.11
+ _ZN8mglGraph5Cont3ERK7mglDataS2_S2_S2_ciPKci at Base 1.11
+ _ZN8mglGraph5Cont3ERK7mglDataS2_ciPKc at Base 1.11
+ _ZN8mglGraph5Cont3ERK7mglDataciPKci at Base 1.11
+ _ZN8mglGraph5ContAERK7mglDataPKci at Base 1.11
+ _ZN8mglGraph5ContAERK7mglDataS2_S2_S2_PKci at Base 1.11
+ _ZN8mglGraph5ContDERK7mglDataPKcif at Base 1.11
+ _ZN8mglGraph5ContDERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph5ContDERK7mglDataS2_S2_PKcif at Base 1.11
+ _ZN8mglGraph5ContDERK7mglDataS2_S2_S2_PKcf at Base 1.11
+ _ZN8mglGraph5ContFERK7mglDataPKcif at Base 1.11
+ _ZN8mglGraph5ContFERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph5ContFERK7mglDataS2_S2_PKcif at Base 1.11
+ _ZN8mglGraph5ContFERK7mglDataS2_S2_S2_PKcf at Base 1.11
+ _ZN8mglGraph5ContXERK7mglDataPKcfi at Base 1.11
+ _ZN8mglGraph5ContXERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph5ContYERK7mglDataPKcfi at Base 1.11
+ _ZN8mglGraph5ContYERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph5ContZERK7mglDataPKcfi at Base 1.11
+ _ZN8mglGraph5ContZERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph5CrustERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph5CrustERK7mglDataS2_S2_PKcf at Base 1.11
+ _ZN8mglGraph5CurveE8mglPointS0_S0_S0_PKci at Base 1.11
+ _ZN8mglGraph5Dens3ERK7mglDataS2_S2_S2_ciPKc at Base 1.11
+ _ZN8mglGraph5Dens3ERK7mglDataciPKc at Base 1.11
+ _ZN8mglGraph5DensAERK7mglDataPKc at Base 1.11
+ _ZN8mglGraph5DensAERK7mglDataS2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph5DensXERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph5DensYERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph5DensZERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph5ErrorE8mglPointS0_PKc at Base 1.11
+ _ZN8mglGraph5ErrorERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph5ErrorERK7mglDataS2_S2_PKcf at Base 1.11
+ _ZN8mglGraph5ErrorERK7mglDataS2_S2_S2_PKcf at Base 1.11
+ _ZN8mglGraph5FaceXEfffffPKcff at Base 1.11
+ _ZN8mglGraph5FaceYEfffffPKcff at Base 1.11
+ _ZN8mglGraph5FaceZEfffffPKcff at Base 1.11
+ _ZN8mglGraph5FlowPE8mglPointRK7mglDataS3_PKc at Base 1.11
+ _ZN8mglGraph5FlowPE8mglPointRK7mglDataS3_S3_PKc at Base 1.11
+ _ZN8mglGraph5FlowPE8mglPointRK7mglDataS3_S3_S3_PKc at Base 1.11
+ _ZN8mglGraph5FlowPE8mglPointRK7mglDataS3_S3_S3_S3_S3_PKc at Base 1.11
+ _ZN8mglGraph5FlushEv at Base 1.11
+ _ZN8mglGraph5GetC2Eff at Base 1.11
+ _ZN8mglGraph5Grid3ERK7mglDataS2_S2_S2_ciPKc at Base 1.11
+ _ZN8mglGraph5Grid3ERK7mglDataciPKc at Base 1.11
+ _ZN8mglGraph5GridAERK7mglDataPKc at Base 1.11
+ _ZN8mglGraph5GridAERK7mglDataS2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph5LabelEcPKcfff at Base 1.11
+ _ZN8mglGraph5LabelEffPKcS1_fb at Base 1.11
+ _ZN8mglGraph5LightEi8mglPoint8mglColorfb at Base 1.11
+ _ZN8mglGraph5LightEi8mglPointcfb at Base 1.11
+ _ZN8mglGraph5LightEib at Base 1.11
+ _ZN8mglGraph5RadarERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph5Surf3ERK7mglDataPKci at Base 1.11
+ _ZN8mglGraph5Surf3ERK7mglDataS2_S2_S2_PKci at Base 1.11
+ _ZN8mglGraph5Surf3EfRK7mglDataPKc at Base 1.11
+ _ZN8mglGraph5Surf3EfRK7mglDataS2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph5SurfAERK7mglDataS2_PKc at Base 1.11
+ _ZN8mglGraph5SurfAERK7mglDataS2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph5SurfCERK7mglDataS2_PKc at Base 1.11
+ _ZN8mglGraph5SurfCERK7mglDataS2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph5TileSERK7mglDataS2_PKc at Base 1.11
+ _ZN8mglGraph5TileSERK7mglDataS2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph5TitleEPKcS1_f at Base 1.11
+ _ZN8mglGraph5TitleEPKwPKcf at Base 1.11
+ _ZN8mglGraph5TorusERK7mglDataPKc at Base 1.11
+ _ZN8mglGraph5TorusERK7mglDataS2_PKc at Base 1.11
+ _ZN8mglGraph5VectCERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph5VectCERK7mglDataS2_S2_PKc at Base 1.11
+ _ZN8mglGraph5VectCERK7mglDataS2_S2_S2_PKcf at Base 1.11
+ _ZN8mglGraph5VectCERK7mglDataS2_S2_S2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph5VectLERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph5VectLERK7mglDataS2_S2_PKc at Base 1.11
+ _ZN8mglGraph5VectLERK7mglDataS2_S2_S2_PKcf at Base 1.11
+ _ZN8mglGraph5VectLERK7mglDataS2_S2_S2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph5flowrEbfffRK7mglDataS2_S2_S2_S2_S2_f at Base 1.11
+ _ZN8mglGraph5flowrEbfffRK7mglDataS2_S2_S2_f at Base 1.11
+ _ZN8mglGraph6CRangeERK7mglDatabf at Base 1.11
+ _ZN8mglGraph6CloudPERK7mglDataPKcfb at Base 1.11
+ _ZN8mglGraph6CloudPERK7mglDataS2_S2_S2_PKcfb at Base 1.11
+ _ZN8mglGraph6ContF3ERK7mglDataS2_S2_S2_S2_ciPKc at Base 1.11
+ _ZN8mglGraph6ContF3ERK7mglDataS2_S2_S2_ciPKci at Base 1.11
+ _ZN8mglGraph6ContF3ERK7mglDataS2_ciPKc at Base 1.11
+ _ZN8mglGraph6ContF3ERK7mglDataciPKci at Base 1.11
+ _ZN8mglGraph6ContFAERK7mglDataPKci at Base 1.11
+ _ZN8mglGraph6ContFAERK7mglDataS2_S2_S2_PKci at Base 1.11
+ _ZN8mglGraph6ContFXERK7mglDataPKcfi at Base 1.11
+ _ZN8mglGraph6ContFXERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph6ContFYERK7mglDataPKcfi at Base 1.11
+ _ZN8mglGraph6ContFYERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph6ContFZERK7mglDataPKcfi at Base 1.11
+ _ZN8mglGraph6ContFZERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph6CutOffEPKc at Base 1.11
+ _ZN8mglGraph6FinishEv at Base 1.11
+ _ZN8mglGraph6GetPalEv at Base 1.11
+ _ZN8mglGraph6InPlotEffffPKc at Base 1.11
+ _ZN8mglGraph6InPlotEffffb at Base 1.11
+ _ZN8mglGraph6LabelwEcPKwfff at Base 1.11
+ _ZN8mglGraph6LabelwEffPKwPKcfb at Base 1.11
+ _ZN8mglGraph6LegendEffPKcff at Base 1.11
+ _ZN8mglGraph6LegendEiPKcff at Base 1.11
+ _ZN8mglGraph6LegendEiPPwPPciPKcff at Base 1.11
+ _ZN8mglGraph6PrintfE8mglPointPKcz at Base 1.11
+ _ZN8mglGraph6RegionERK7mglDataS2_PKcfb at Base 1.11
+ _ZN8mglGraph6RegionERK7mglDataS2_S2_PKcfb at Base 1.11
+ _ZN8mglGraph6RotateEfff at Base 1.11
+ _ZN8mglGraph6SetPalEPKc at Base 1.11
+ _ZN8mglGraph6SphereE8mglPointfPKc at Base 1.11
+ _ZN8mglGraph6Surf3AERK7mglDataS2_PKci at Base 1.11
+ _ZN8mglGraph6Surf3AERK7mglDataS2_S2_S2_S2_PKci at Base 1.11
+ _ZN8mglGraph6Surf3AEfRK7mglDataS2_PKc at Base 1.11
+ _ZN8mglGraph6Surf3AEfRK7mglDataS2_S2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph6Surf3CERK7mglDataS2_PKci at Base 1.11
+ _ZN8mglGraph6Surf3CERK7mglDataS2_S2_S2_S2_PKci at Base 1.11
+ _ZN8mglGraph6Surf3CEfRK7mglDataS2_PKc at Base 1.11
+ _ZN8mglGraph6Surf3CEfRK7mglDataS2_S2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph6XRangeERK7mglDatabf at Base 1.11
+ _ZN8mglGraph6YRangeERK7mglDatabf at Base 1.11
+ _ZN8mglGraph6ZRangeERK7mglDatabf at Base 1.11
+ _ZN8mglGraph6adjustEcf at Base 1.11
+ _ZN8mglGraph7AVertexEfffff at Base 1.11
+ _ZN8mglGraph7AmbientEf at Base 1.11
+ _ZN8mglGraph7BoxPlotERK7mglDataPKcf at Base 1.11
+ _ZN8mglGraph7BoxPlotERK7mglDataS2_PKcf at Base 1.11
+ _ZN8mglGraph7ClearEqEv at Base 1.11
+ _ZN8mglGraph7EllipseE8mglPointS0_PKc at Base 1.11
+ _ZN8mglGraph7GetOrgXEc at Base 1.11
+ _ZN8mglGraph7GetOrgYEc at Base 1.11
+ _ZN8mglGraph7GetOrgZEc at Base 1.11
+ _ZN8mglGraph7PutsFitE8mglPointPKcS2_f at Base 1.11
+ _ZN8mglGraph7SetCoorEi at Base 1.11
+ _ZN8mglGraph7SetFontEP7mglFont at Base 1.11
+ _ZN8mglGraph7SetFuncEPKcS1_S1_S1_ at Base 1.11
+ _ZN8mglGraph7SetSizeEii at Base 1.11
+ _ZN8mglGraph7SetWarnEiPKc at Base 1.11
+ _ZN8mglGraph7SubPlotEiiiPKc at Base 1.11
+ _ZN8mglGraph7SubPlotEiiiff at Base 1.11
+ _ZN8mglGraph7TernaryEi at Base 1.11
+ _ZN8mglGraph7TickBoxEv at Base 1.11
+ _ZN8mglGraph7TriContERK7mglDataS2_S2_S2_PKcif at Base 1.11
+ _ZN8mglGraph7TriContERK7mglDataS2_S2_S2_S2_PKcif at Base 1.11
+ _ZN8mglGraph7TriPlotERK7mglDataS2_S2_PKcf at Base 1.11
+ _ZN8mglGraph7TriPlotERK7mglDataS2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph7TriPlotERK7mglDataS2_S2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph8CloseGIFEv at Base 1.11
+ _ZN8mglGraph8ColorbarEPKci at Base 1.11
+ _ZN8mglGraph8ColorbarERK7mglDataPKci at Base 1.11
+ _ZN8mglGraph8ColorbarERK7mglDataPKciffff at Base 1.11
+ _ZN8mglGraph8ColorbarEiffff at Base 1.11
+ _ZN8mglGraph8DrawTickEPfb at Base 1.11
+ _ZN8mglGraph8EndFrameEv at Base 1.11
+ _ZN8mglGraph8EndGroupEv at Base 1.11
+ _ZN8mglGraph8GetRatioEv at Base 1.11
+ _ZN8mglGraph8IdentityEb at Base 1.11
+ _ZN8mglGraph8NewFrameEv at Base 1.11
+ _ZN8mglGraph8QuadPlotERK7mglDataS2_S2_PKcf at Base 1.11
+ _ZN8mglGraph8QuadPlotERK7mglDataS2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph8QuadPlotERK7mglDataS2_S2_S2_S2_PKc at Base 1.11
+ _ZN8mglGraph8SetFBordEfff at Base 1.11
+ _ZN8mglGraph8SetTicksEcfif at Base 1.11
+ _ZN8mglGraph8StartGIFEPKci at Base 1.11
+ _ZN8mglGraph8TextMarkERK7mglDataPKcS4_f at Base 1.11
+ _ZN8mglGraph8TextMarkERK7mglDataPKwPKcf at Base 1.11
+ _ZN8mglGraph8TextMarkERK7mglDataS2_PKcS4_f at Base 1.11
+ _ZN8mglGraph8TextMarkERK7mglDataS2_PKwPKcf at Base 1.11
+ _ZN8mglGraph8TextMarkERK7mglDataS2_S2_PKcS4_f at Base 1.11
+ _ZN8mglGraph8TextMarkERK7mglDataS2_S2_PKwPKcf at Base 1.11
+ _ZN8mglGraph8TextMarkERK7mglDataS2_S2_S2_PKcS4_ at Base 1.11
+ _ZN8mglGraph8TextMarkERK7mglDataS2_S2_S2_PKwPKc at Base 1.11
+ _ZN8mglGraph8TriContVERK7mglDataS2_S2_S2_S2_PKcf at Base 1.11
+ _ZN8mglGraph8TriContVERK7mglDataS2_S2_S2_S2_S2_PKcf at Base 1.11
+ _ZN8mglGraph8UnrotateEb at Base 1.11
+ _ZN8mglGraph8WriteBMPEPKcS1_ at Base 1.11
+ _ZN8mglGraph8WriteEPSEPKcS1_ at Base 1.11
+ _ZN8mglGraph8WriteGIFEPKcS1_ at Base 1.11
+ _ZN8mglGraph8WritePNGEPKcS1_b at Base 1.11
+ _ZN8mglGraph8WriteSVGEPKcS1_ at Base 1.11
+ _ZN8mglGraph9AddLegendEPKcS1_ at Base 1.11
+ _ZN8mglGraph9AddLegendEPKwPKc at Base 1.11
+ _ZN8mglGraph9DrawTTickEfffffi at Base 1.11
+ _ZN8mglGraph9DrawXTickEfffffi at Base 1.11
+ _ZN8mglGraph9DrawYTickEfffffi at Base 1.11
+ _ZN8mglGraph9DrawZTickEfffffi at Base 1.11
+ _ZN8mglGraph9SelectPenEPKc at Base 1.11
+ _ZN8mglGraph9SetSchemeEPKcb at Base 1.11
+ _ZN8mglGraph9ShowImageEPKcb at Base 1.11
+ _ZN8mglGraph9WriteIDTFEPKcS1_ at Base 1.11
+ _ZN8mglGraph9WriteJPEGEPKcS1_ at Base 1.11
+ _ZN8mglGraph9cont_plotEfllPfS0_S0_S0_fbbi at Base 1.11
+ _ZN8mglGraph9tube_plotElPfS0_S0_ at Base 1.11
+ _ZN8mglGraphC1Ev at Base 1.11
+ _ZN8mglGraphC2Ev at Base 1.11
+ _ZN8mglGraphD0Ev at Base 1.11
+ _ZN8mglGraphD1Ev at Base 1.11
+ _ZN8mglGraphD2Ev at Base 1.11
+ _ZN8mglParse10AddCommandEP10mglCommandi at Base 1.11
+ _ZN8mglParse11FindCommandEPKwb at Base 1.11
+ _ZN8mglParse3PrgE at Base 1.11
+ _ZN8mglParse4ExecEP8mglGraphPKwlP6mglArgS3_ at Base 1.11
+ _ZN8mglParse5ParseEP8mglGraphPKcl at Base 1.11
+ _ZN8mglParse5ParseEP8mglGraphPKwl at Base 1.11
+ _ZN8mglParse6AddNumEPKc at Base 1.11
+ _ZN8mglParse6AddNumEPKw at Base 1.11
+ _ZN8mglParse6AddVarEPKc at Base 1.11
+ _ZN8mglParse6AddVarEPKw at Base 1.11
+ _ZN8mglParse6ExportEPwP8mglGraphPKw at Base 1.11
+ _ZN8mglParse6IsFuncEPKwPi at Base 1.11
+ _ZN8mglParse6PutArgEPKwPwb at Base 1.11
+ _ZN8mglParse7ExecuteEP8mglGraphP8_IO_FILEb at Base 1.11
+ _ZN8mglParse7ExecuteEP8mglGraphPKcPFviiS1_E at Base 1.11
+ _ZN8mglParse7ExecuteEP8mglGraphPKwPFviiS1_E at Base 1.11
+ _ZN8mglParse7ExecuteEP8mglGraphiPPKwPFviiS1_E at Base 1.11
+ _ZN8mglParse7FillArgEP8mglGraphiPPwP6mglArg at Base 1.11
+ _ZN8mglParse7FindNumEPKc at Base 1.11
+ _ZN8mglParse7FindNumEPKw at Base 1.11
+ _ZN8mglParse7FindVarEPKc at Base 1.11
+ _ZN8mglParse7FindVarEPKw at Base 1.11
+ _ZN8mglParse7PreExecEP8mglGraphlPPwP6mglArg at Base 1.11
+ _ZN8mglParse7ProcOptEP8mglGraphPw at Base 1.11
+ _ZN8mglParse8AddParamEiPKcb at Base 1.11
+ _ZN8mglParse8AddParamEiPKwb at Base 1.11
+ _ZN8mglParse8FlowExecEP8mglGraphPKwlP6mglArg at Base 1.11
+ _ZN8mglParse8ParseDatEP8mglGraphPKwR7mglData at Base 1.11
+ _ZN8mglParse8ScanFuncEPKw at Base 1.11
+ _ZN8mglParse9DeleteVarEP6mglVar at Base 1.11
+ _ZN8mglParse9DeleteVarEPKc at Base 1.11
+ _ZN8mglParse9DeleteVarEPKw at Base 1.11
+ _ZN8mglParseC1Eb at Base 1.11
+ _ZN8mglParseC2Eb at Base 1.11
+ _ZN8mglParseD1Ev at Base 1.11
+ _ZN8mglParseD2Ev at Base 1.11
+ _ZN8u3dLight10print_nodeERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.11
+ _ZN8u3dLight20print_light_resourceERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.11
+ _ZN8u3dLightD1Ev at Base 1.11
+ _ZN8u3dModel10print_nodeERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.11
+ _ZN8u3dModel16AddModelMaterialEPKfbb at Base 1.11
+ _ZN8u3dModel22print_shading_modifierERSt14basic_ofstreamIcSt11char_traitsIcEE at Base 1.11
+ _ZN8u3dModel8AddColorEPKf at Base 1.11
+ _ZN8u3dModel8AddColorERK8mglColor at Base 1.11
+ _ZN8u3dModel8AddPointEPKf at Base 1.11
+ _ZN8u3dModel8AddPointERK8mglPoint at Base 1.11
+ _ZN8u3dModelC1ESsP12mglGraphIDTFRKb at Base 1.11
+ _ZN8u3dModelC2ESsP12mglGraphIDTFRKb at Base 1.11
+ _ZN8u3dModelD2Ev at Base 1.11
+ _ZNK10mglFormula4CalcEPKf at Base 1.11
+ _ZNK10mglFormula4CalcEffff at Base 1.11
+ _ZNK10mglFormula4CalcEffffff at Base 1.11
+ _ZNK10mglFormula5CalcDEPKfc at Base 1.11
+ _ZNK10mglFormula6CalcInEPKf at Base 1.11
+ _ZNK10mglFormula7CalcDInEiPKf at Base 1.11
+ _ZNK11TGAImageMin5WriteEPKc at Base 1.11
+ _ZNK11mglFormulaC4CalcEPKSt7complexIdE at Base 1.11
+ _ZNK11mglFormulaC4CalcESt7complexIdES1_S1_S1_ at Base 1.11
+ _ZNK11mglFormulaC4CalcESt7complexIdES1_S1_S1_S1_S1_ at Base 1.11
+ _ZNK11mglFormulaC6CalcInEPKSt7complexIdE at Base 1.11
+ _ZNK7mglData1vEiii at Base 1.11
+ _ZNK7mglData3MaxEPKc at Base 1.11
+ _ZNK7mglData3MinEPKc at Base 1.11
+ _ZNK7mglData3SumEPKc at Base 1.11
+ _ZNK7mglData4FindEPKcRiS2_S2_ at Base 1.11
+ _ZNK7mglData4FindEPKcciii at Base 1.11
+ _ZNK7mglData4HistERKS_iffi at Base 1.11
+ _ZNK7mglData4HistEiffi at Base 1.11
+ _ZNK7mglData4LastEPKcRiS2_S2_ at Base 1.11
+ _ZNK7mglData4SaveEPKci at Base 1.11
+ _ZNK7mglData5TraceEv at Base 1.11
+ _ZNK7mglData6ExportEPKcS1_ffi at Base 1.11
+ _ZNK7mglData6LinearEfff at Base 1.11
+ _ZNK7mglData6ResizeEiiiffffff at Base 1.11
+ _ZNK7mglData6SplineEfff at Base 1.11
+ _ZNK7mglData7CombineERKS_ at Base 1.11
+ _ZNK7mglData7FindAnyEPKc at Base 1.11
+ _ZNK7mglData7MaximalERfS0_S0_ at Base 1.11
+ _ZNK7mglData7MaximalERiS0_S0_ at Base 1.11
+ _ZNK7mglData7MaximalEv at Base 1.11
+ _ZNK7mglData7MinimalERfS0_S0_ at Base 1.11
+ _ZNK7mglData7MinimalERiS0_S0_ at Base 1.11
+ _ZNK7mglData7MinimalEv at Base 1.11
+ _ZNK7mglData7SaveHDFEPKcS1_b at Base 1.11
+ _ZNK7mglData7Spline3EfffRfS0_S0_ at Base 1.11
+ _ZNK7mglData7Spline5EfffRfS0_S0_ at Base 1.11
+ _ZNK7mglData7SubDataERKS_S1_S1_ at Base 1.11
+ _ZNK7mglData7SubDataEiii at Base 1.11
+ _ZNK7mglData8EvaluateERKS_S1_S1_b at Base 1.11
+ _ZNK7mglData8EvaluateERKS_S1_b at Base 1.11
+ _ZNK7mglData8EvaluateERKS_b at Base 1.11
+ _ZNK7mglData8MomentumEcPKc at Base 1.11
+ _ZNK7mglData8MomentumEcRfS0_ at Base 1.11
+ _ZNK7mglData8MomentumEcRfS0_S0_S0_ at Base 1.11
+ _ZNK7mglData9PrintInfoEP8_IO_FILE at Base 1.11
+ _ZNK7mglData9PrintInfoEPcb at Base 1.11
+ _ZNSs12_S_constructIPcEES0_T_S1_RKSaIcESt20forward_iterator_tag at Base 1.11
+ _ZNSt10_List_baseI10u3dLineSetSaIS0_EE8_M_clearEv at Base 1.11
+ _ZNSt10_List_baseI10u3dTextureSaIS0_EE8_M_clearEv at Base 1.11
+ _ZNSt10_List_baseI11u3dPointSetSaIS0_EE8_M_clearEv at Base 1.11
+ _ZNSt10_List_baseI7u3dMeshSaIS0_EE8_M_clearEv at Base 1.11
+ _ZNSt10_List_baseI8u3dGroupSaIS0_EE8_M_clearEv at Base 1.11
+ _ZNSt10_List_baseI8u3dLightSaIS0_EE8_M_clearEv at Base 1.11
+ _ZNSt11_Deque_baseI11u3dMaterialSaIS0_EED2Ev at Base 1.11
+ _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev at Base 1.11
+ _ZNSt4listI7u3dMeshSaIS0_EE9push_backERKS0_ at Base 1.11
+ _ZNSt5dequeI11u3dMaterialSaIS0_EE16_M_push_back_auxERKS0_ at Base 1.11
+ _ZNSt5dequeI11u3dMaterialSaIS0_EED1Ev at Base 1.11
+ _ZNSt6vectorI10TexCoord2DSaIS0_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS0_S2_EERKS0_ at Base 1.11
+ _ZNSt6vectorI7size_t3SaIS0_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS0_S2_EERKS0_ at Base 1.11
+ _ZNSt6vectorI7u3dBallSaIS0_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS0_S2_EERKS0_ at Base 1.11
+ _ZNSt6vectorI7u3dBallSaIS0_EED1Ev at Base 1.11
+ _ZNSt6vectorI7u3dLineSaIS0_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS0_S2_EERKS0_ at Base 1.11
+ _ZNSt6vectorI8mglColorSaIS0_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS0_S2_EERKS0_ at Base 1.11
+ _ZNSt6vectorI8mglPointSaIS0_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS0_S2_EERKS0_ at Base 1.11
+ _ZNSt6vectorImSaImEE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPmS1_EERKm at Base 1.11
+ _ZSt5fixedRSt8ios_base at Base 1.11
+ _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_ at Base 1.11
+ _ZTI10mglGraphAB at Base 1.11
+ _ZTI10mglGraphGL at Base 1.11
+ _ZTI10mglGraphPS at Base 1.11
+ _ZTI10mglGraphZB at Base 1.11
+ _ZTI12mglGraphIDTF at Base 1.11
+ _ZTI8mglGraph at Base 1.11
+ _ZTS10mglGraphAB at Base 1.11
+ _ZTS10mglGraphGL at Base 1.11
+ _ZTS10mglGraphPS at Base 1.11
+ _ZTS10mglGraphZB at Base 1.11
+ _ZTS12mglGraphIDTF at Base 1.11
+ _ZTS8mglGraph at Base 1.11
+ _ZTV10mglGraphAB at Base 1.11
+ _ZTV10mglGraphGL at Base 1.11
+ _ZTV10mglGraphPS at Base 1.11
+ _ZTV10mglGraphZB at Base 1.11
+ _ZTV12mglGraphIDTF at Base 1.11
+ _ZTV8mglGraph at Base 1.11
+ _ZdvRK7mglDataS1_ at Base 1.11
+ _ZdvRK7mglDataf at Base 1.11
+ _ZmiRK7mglDataS1_ at Base 1.11
+ _ZmiRK7mglDataf at Base 1.11
+ _ZmifRK7mglData at Base 1.11
+ _ZmlRK7mglDataS1_ at Base 1.11
+ _ZmlRK7mglDataf at Base 1.11
+ _ZmlfRK7mglData at Base 1.11
+ _ZplRK7mglDataS1_ at Base 1.11
+ _ZplRK7mglDataf at Base 1.11
+ _ZplfRK7mglData at Base 1.11
+ ic at Base 1.11
+ mglColorIds at Base 1.11
+ mglDefFont at Base 1.11
+ mglFormulaError at Base 1.11
+ mglNumThr at Base 1.11
+ mglWarn at Base 1.11
+ mgl_act_symb at Base 1.11
+ mgl_add_legend at Base 1.11
+ mgl_add_legend_ at Base 1.11
+ mgl_add_legendw at Base 1.11
+ mgl_add_light at Base 1.11
+ mgl_add_light_ at Base 1.11
+ mgl_add_light_rgb at Base 1.11
+ mgl_add_light_rgb_ at Base 1.11
+ mgl_add_param at Base 1.11
+ mgl_add_param_ at Base 1.11
+ mgl_add_paramw at Base 1.11
+ mgl_add_var at Base 1.11
+ mgl_add_var_ at Base 1.11
+ mgl_adjust_ticks at Base 1.11
+ mgl_adjust_ticks_ at Base 1.11
+ mgl_af2d_solve at Base 1.11
+ mgl_af2d_solve_ at Base 1.11
+ mgl_area at Base 1.11
+ mgl_area_ at Base 1.11
+ mgl_area_xy at Base 1.11
+ mgl_area_xy_ at Base 1.11
+ mgl_area_xyz at Base 1.11
+ mgl_area_xyz_ at Base 1.11
+ mgl_aspect at Base 1.11
+ mgl_aspect_ at Base 1.11
+ mgl_axial at Base 1.11
+ mgl_axial_ at Base 1.11
+ mgl_axial_val at Base 1.11
+ mgl_axial_val_ at Base 1.11
+ mgl_axial_xy at Base 1.11
+ mgl_axial_xy_ at Base 1.11
+ mgl_axial_xy_val at Base 1.11
+ mgl_axial_xy_val_ at Base 1.11
+ mgl_axis at Base 1.11
+ mgl_axis_ at Base 1.11
+ mgl_axis_grid at Base 1.11
+ mgl_axis_grid_ at Base 1.11
+ mgl_ball at Base 1.11
+ mgl_ball_ at Base 1.11
+ mgl_ball_rgb at Base 1.11
+ mgl_ball_rgb_ at Base 1.11
+ mgl_ball_str at Base 1.11
+ mgl_ball_str_ at Base 1.11
+ mgl_barh at Base 1.11
+ mgl_barh_ at Base 1.11
+ mgl_barh_yx at Base 1.11
+ mgl_barh_yx_ at Base 1.11
+ mgl_bars at Base 1.11
+ mgl_bars_ at Base 1.11
+ mgl_bars_xy at Base 1.11
+ mgl_bars_xy_ at Base 1.11
+ mgl_bars_xyz at Base 1.11
+ mgl_bars_xyz_ at Base 1.11
+ mgl_beam at Base 1.11
+ mgl_beam_ at Base 1.11
+ mgl_beam_val at Base 1.11
+ mgl_beam_val_ at Base 1.11
+ mgl_belt at Base 1.11
+ mgl_belt_ at Base 1.11
+ mgl_belt_xy at Base 1.11
+ mgl_belt_xy_ at Base 1.11
+ mgl_box at Base 1.11
+ mgl_box_ at Base 1.11
+ mgl_box_rgb at Base 1.11
+ mgl_box_rgb_ at Base 1.11
+ mgl_box_str at Base 1.11
+ mgl_box_str_ at Base 1.11
+ mgl_boxplot at Base 1.11
+ mgl_boxplot_ at Base 1.11
+ mgl_boxplot_xy at Base 1.11
+ mgl_boxplot_xy_ at Base 1.11
+ mgl_boxs at Base 1.11
+ mgl_boxs_ at Base 1.11
+ mgl_boxs_xy at Base 1.11
+ mgl_boxs_xy_ at Base 1.11
+ mgl_buf_fnt at Base 1.11
+ mgl_calc_scr at Base 1.11
+ mgl_calc_scr_ at Base 1.11
+ mgl_calc_xyz at Base 1.11
+ mgl_calc_xyz_ at Base 1.11
+ mgl_chart at Base 1.11
+ mgl_chart_ at Base 1.11
+ mgl_clear_legend at Base 1.11
+ mgl_clear_legend_ at Base 1.11
+ mgl_clf at Base 1.11
+ mgl_clf_ at Base 1.11
+ mgl_clf_rgb at Base 1.11
+ mgl_clf_rgb_ at Base 1.11
+ mgl_close_gif at Base 1.11
+ mgl_cloud at Base 1.11
+ mgl_cloud_ at Base 1.11
+ mgl_cloud_xyz at Base 1.11
+ mgl_cloud_xyz_ at Base 1.11
+ mgl_cloudp at Base 1.11
+ mgl_cloudp_ at Base 1.11
+ mgl_cloudp_xyz at Base 1.11
+ mgl_cloudp_xyz_ at Base 1.11
+ mgl_colorbar at Base 1.11
+ mgl_colorbar_ at Base 1.11
+ mgl_colorbar_ext at Base 1.11
+ mgl_colorbar_ext_ at Base 1.11
+ mgl_colorbar_val at Base 1.11
+ mgl_colorbar_val_ at Base 1.11
+ mgl_columnplot at Base 1.11
+ mgl_columnplot_ at Base 1.11
+ mgl_columnplot_d at Base 1.11
+ mgl_columnplot_d_ at Base 1.11
+ mgl_cone at Base 1.11
+ mgl_cone_ at Base 1.11
+ mgl_cont3 at Base 1.11
+ mgl_cont3_ at Base 1.11
+ mgl_cont3_val at Base 1.11
+ mgl_cont3_val_ at Base 1.11
+ mgl_cont3_xyz at Base 1.11
+ mgl_cont3_xyz_ at Base 1.11
+ mgl_cont3_xyz_val at Base 1.11
+ mgl_cont3_xyz_val_ at Base 1.11
+ mgl_cont at Base 1.11
+ mgl_cont_ at Base 1.11
+ mgl_cont_all at Base 1.11
+ mgl_cont_all_ at Base 1.11
+ mgl_cont_all_xyz at Base 1.11
+ mgl_cont_all_xyz_ at Base 1.11
+ mgl_cont_val at Base 1.11
+ mgl_cont_val_ at Base 1.11
+ mgl_cont_x at Base 1.11
+ mgl_cont_x_ at Base 1.11
+ mgl_cont_x_val at Base 1.11
+ mgl_cont_x_val_ at Base 1.11
+ mgl_cont_xy at Base 1.11
+ mgl_cont_xy_ at Base 1.11
+ mgl_cont_xy_val at Base 1.11
+ mgl_cont_xy_val_ at Base 1.11
+ mgl_cont_y at Base 1.11
+ mgl_cont_y_ at Base 1.11
+ mgl_cont_y_val at Base 1.11
+ mgl_cont_y_val_ at Base 1.11
+ mgl_cont_z at Base 1.11
+ mgl_cont_z_ at Base 1.11
+ mgl_cont_z_val at Base 1.11
+ mgl_cont_z_val_ at Base 1.11
+ mgl_contd at Base 1.11
+ mgl_contd_ at Base 1.11
+ mgl_contd_val at Base 1.11
+ mgl_contd_val_ at Base 1.11
+ mgl_contd_xy at Base 1.11
+ mgl_contd_xy_ at Base 1.11
+ mgl_contd_xy_val at Base 1.11
+ mgl_contd_xy_val_ at Base 1.11
+ mgl_contf3 at Base 1.11
+ mgl_contf3_ at Base 1.11
+ mgl_contf3_val at Base 1.11
+ mgl_contf3_val_ at Base 1.11
+ mgl_contf3_xyz at Base 1.11
+ mgl_contf3_xyz_ at Base 1.11
+ mgl_contf3_xyz_val at Base 1.11
+ mgl_contf3_xyz_val_ at Base 1.11
+ mgl_contf at Base 1.11
+ mgl_contf_ at Base 1.11
+ mgl_contf_all at Base 1.11
+ mgl_contf_all_ at Base 1.11
+ mgl_contf_all_xyz at Base 1.11
+ mgl_contf_all_xyz_ at Base 1.11
+ mgl_contf_val at Base 1.11
+ mgl_contf_val_ at Base 1.11
+ mgl_contf_x at Base 1.11
+ mgl_contf_x_ at Base 1.11
+ mgl_contf_x_val at Base 1.11
+ mgl_contf_x_val_ at Base 1.11
+ mgl_contf_xy at Base 1.11
+ mgl_contf_xy_ at Base 1.11
+ mgl_contf_xy_val at Base 1.11
+ mgl_contf_xy_val_ at Base 1.11
+ mgl_contf_y at Base 1.11
+ mgl_contf_y_ at Base 1.11
+ mgl_contf_y_val at Base 1.11
+ mgl_contf_y_val_ at Base 1.11
+ mgl_contf_z at Base 1.11
+ mgl_contf_z_ at Base 1.11
+ mgl_contf_z_val at Base 1.11
+ mgl_contf_z_val_ at Base 1.11
+ mgl_copy_font at Base 1.11
+ mgl_copy_font_ at Base 1.11
+ mgl_create_data at Base 1.11
+ mgl_create_data_ at Base 1.11
+ mgl_create_data_file at Base 1.11
+ mgl_create_data_file_ at Base 1.11
+ mgl_create_data_size at Base 1.11
+ mgl_create_data_size_ at Base 1.11
+ mgl_create_graph_gl at Base 1.11
+ mgl_create_graph_gl_ at Base 1.11
+ mgl_create_graph_idtf at Base 1.11
+ mgl_create_graph_idtf_ at Base 1.11
+ mgl_create_graph_ps at Base 1.11
+ mgl_create_graph_ps_ at Base 1.11
+ mgl_create_graph_zb at Base 1.11
+ mgl_create_graph_zb_ at Base 1.11
+ mgl_create_parser at Base 1.11
+ mgl_create_parser_ at Base 1.11
+ mgl_crust at Base 1.11
+ mgl_crust_ at Base 1.11
+ mgl_crust_tr at Base 1.11
+ mgl_crust_tr_ at Base 1.11
+ mgl_cur at Base 1.11
+ mgl_curve at Base 1.11
+ mgl_curve_ at Base 1.11
+ mgl_data_add_dat at Base 1.11
+ mgl_data_add_dat_ at Base 1.11
+ mgl_data_add_num at Base 1.11
+ mgl_data_add_num_ at Base 1.11
+ mgl_data_column at Base 1.11
+ mgl_data_column_ at Base 1.11
+ mgl_data_combine at Base 1.11
+ mgl_data_combine_ at Base 1.11
+ mgl_data_cosfft at Base 1.11
+ mgl_data_cosfft_ at Base 1.11
+ mgl_data_create at Base 1.11
+ mgl_data_create_ at Base 1.11
+ mgl_data_crop at Base 1.11
+ mgl_data_crop_ at Base 1.11
+ mgl_data_cumsum at Base 1.11
+ mgl_data_cumsum_ at Base 1.11
+ mgl_data_data at Base 1.11
+ mgl_data_data_ at Base 1.11
+ mgl_data_delete at Base 1.11
+ mgl_data_delete_ at Base 1.11
+ mgl_data_diff2 at Base 1.11
+ mgl_data_diff2_ at Base 1.11
+ mgl_data_diff at Base 1.11
+ mgl_data_diff_ at Base 1.11
+ mgl_data_diff_par at Base 1.11
+ mgl_data_diff_par_ at Base 1.11
+ mgl_data_div_dat at Base 1.11
+ mgl_data_div_dat_ at Base 1.11
+ mgl_data_div_num at Base 1.11
+ mgl_data_div_num_ at Base 1.11
+ mgl_data_envelop at Base 1.11
+ mgl_data_envelop_ at Base 1.11
+ mgl_data_evaluate_i at Base 1.11
+ mgl_data_evaluate_i_ at Base 1.11
+ mgl_data_evaluate_ij at Base 1.11
+ mgl_data_evaluate_ij_ at Base 1.11
+ mgl_data_evaluate_ijk at Base 1.11
+ mgl_data_evaluate_ijk_ at Base 1.11
+ mgl_data_export at Base 1.11
+ mgl_data_extend at Base 1.11
+ mgl_data_extend_ at Base 1.11
+ mgl_data_fill at Base 1.11
+ mgl_data_fill_ at Base 1.11
+ mgl_data_fill_eq at Base 1.11
+ mgl_data_fill_eq_ at Base 1.11
+ mgl_data_fill_sample at Base 1.11
+ mgl_data_fill_sample_ at Base 1.11
+ mgl_data_find at Base 1.11
+ mgl_data_find_ at Base 1.11
+ mgl_data_find_any at Base 1.11
+ mgl_data_find_any_ at Base 1.11
+ mgl_data_first at Base 1.11
+ mgl_data_first_ at Base 1.11
+ mgl_data_get_nx at Base 1.11
+ mgl_data_get_nx_ at Base 1.11
+ mgl_data_get_ny at Base 1.11
+ mgl_data_get_ny_ at Base 1.11
+ mgl_data_get_nz at Base 1.11
+ mgl_data_get_nz_ at Base 1.11
+ mgl_data_get_value at Base 1.11
+ mgl_data_get_value_ at Base 1.11
+ mgl_data_hankel at Base 1.11
+ mgl_data_hankel_ at Base 1.11
+ mgl_data_hist at Base 1.11
+ mgl_data_hist_ at Base 1.11
+ mgl_data_hist_w at Base 1.11
+ mgl_data_hist_w_ at Base 1.11
+ mgl_data_import at Base 1.11
+ mgl_data_insert at Base 1.11
+ mgl_data_insert_ at Base 1.11
+ mgl_data_integral at Base 1.11
+ mgl_data_integral_ at Base 1.11
+ mgl_data_last at Base 1.11
+ mgl_data_last_ at Base 1.11
+ mgl_data_linear1 at Base 1.11
+ mgl_data_linear1_ at Base 1.11
+ mgl_data_linear at Base 1.11
+ mgl_data_linear_ at Base 1.11
+ mgl_data_max at Base 1.11
+ mgl_data_max_ at Base 1.11
+ mgl_data_max_dir at Base 1.11
+ mgl_data_max_dir_ at Base 1.11
+ mgl_data_max_int at Base 1.11
+ mgl_data_max_int_ at Base 1.11
+ mgl_data_max_real at Base 1.11
+ mgl_data_max_real_ at Base 1.11
+ mgl_data_min at Base 1.11
+ mgl_data_min_ at Base 1.11
+ mgl_data_min_dir at Base 1.11
+ mgl_data_min_dir_ at Base 1.11
+ mgl_data_min_int at Base 1.11
+ mgl_data_min_int_ at Base 1.11
+ mgl_data_min_real at Base 1.11
+ mgl_data_min_real_ at Base 1.11
+ mgl_data_mirror at Base 1.11
+ mgl_data_mirror_ at Base 1.11
+ mgl_data_modify at Base 1.11
+ mgl_data_modify_ at Base 1.11
+ mgl_data_modify_vw at Base 1.11
+ mgl_data_modify_vw_ at Base 1.11
+ mgl_data_momentum at Base 1.11
+ mgl_data_momentum_ at Base 1.11
+ mgl_data_momentum_mw at Base 1.11
+ mgl_data_momentum_mw_ at Base 1.11
+ mgl_data_mul_dat at Base 1.11
+ mgl_data_mul_dat_ at Base 1.11
+ mgl_data_mul_num at Base 1.11
+ mgl_data_mul_num_ at Base 1.11
+ mgl_data_norm at Base 1.11
+ mgl_data_norm_ at Base 1.11
+ mgl_data_norm_slice at Base 1.11
+ mgl_data_norm_slice_ at Base 1.11
+ mgl_data_put_dat at Base 1.11
+ mgl_data_put_dat_ at Base 1.11
+ mgl_data_put_val at Base 1.11
+ mgl_data_put_val_ at Base 1.11
+ mgl_data_read at Base 1.11
+ mgl_data_read_ at Base 1.11
+ mgl_data_read_dim at Base 1.11
+ mgl_data_read_dim_ at Base 1.11
+ mgl_data_read_mat at Base 1.11
+ mgl_data_read_mat_ at Base 1.11
+ mgl_data_rearrange at Base 1.11
+ mgl_data_rearrange_ at Base 1.11
+ mgl_data_resize at Base 1.11
+ mgl_data_resize_ at Base 1.11
+ mgl_data_resize_box at Base 1.11
+ mgl_data_resize_box_ at Base 1.11
+ mgl_data_roll at Base 1.11
+ mgl_data_roll_ at Base 1.11
+ mgl_data_save at Base 1.11
+ mgl_data_save_ at Base 1.11
+ mgl_data_set at Base 1.11
+ mgl_data_set_ at Base 1.11
+ mgl_data_set_double1_ at Base 1.11
+ mgl_data_set_double2 at Base 1.11
+ mgl_data_set_double2_ at Base 1.11
+ mgl_data_set_double3 at Base 1.11
+ mgl_data_set_double3_ at Base 1.11
+ mgl_data_set_double at Base 1.11
+ mgl_data_set_double_ at Base 1.11
+ mgl_data_set_float1_ at Base 1.11
+ mgl_data_set_float2 at Base 1.11
+ mgl_data_set_float2_ at Base 1.11
+ mgl_data_set_float3 at Base 1.11
+ mgl_data_set_float3_ at Base 1.11
+ mgl_data_set_float at Base 1.11
+ mgl_data_set_float_ at Base 1.11
+ mgl_data_set_id at Base 1.11
+ mgl_data_set_id_ at Base 1.11
+ mgl_data_set_matrix at Base 1.11
+ mgl_data_set_value at Base 1.11
+ mgl_data_set_value_ at Base 1.11
+ mgl_data_set_values at Base 1.11
+ mgl_data_set_values_ at Base 1.11
+ mgl_data_set_vector at Base 1.11
+ mgl_data_sew at Base 1.11
+ mgl_data_sew_ at Base 1.11
+ mgl_data_sinfft at Base 1.11
+ mgl_data_sinfft_ at Base 1.11
+ mgl_data_smooth at Base 1.11
+ mgl_data_smooth_ at Base 1.11
+ mgl_data_spline1 at Base 1.11
+ mgl_data_spline1_ at Base 1.11
+ mgl_data_spline at Base 1.11
+ mgl_data_spline_ at Base 1.11
+ mgl_data_squeeze at Base 1.11
+ mgl_data_squeeze_ at Base 1.11
+ mgl_data_stfa at Base 1.11
+ mgl_data_stfa_ at Base 1.11
+ mgl_data_sub_dat at Base 1.11
+ mgl_data_sub_dat_ at Base 1.11
+ mgl_data_sub_num at Base 1.11
+ mgl_data_sub_num_ at Base 1.11
+ mgl_data_subdata at Base 1.11
+ mgl_data_subdata_ at Base 1.11
+ mgl_data_subdata_ext at Base 1.11
+ mgl_data_subdata_ext_ at Base 1.11
+ mgl_data_sum at Base 1.11
+ mgl_data_sum_ at Base 1.11
+ mgl_data_swap at Base 1.11
+ mgl_data_swap_ at Base 1.11
+ mgl_data_transpose at Base 1.11
+ mgl_data_transpose_ at Base 1.11
+ mgl_data_value at Base 1.11
+ mgl_delete_data at Base 1.11
+ mgl_delete_data_ at Base 1.11
+ mgl_delete_graph at Base 1.11
+ mgl_delete_graph_ at Base 1.11
+ mgl_delete_parser at Base 1.11
+ mgl_delete_parser_ at Base 1.11
+ mgl_dens3 at Base 1.11
+ mgl_dens3_ at Base 1.11
+ mgl_dens3_all at Base 1.11
+ mgl_dens3_all_ at Base 1.11
+ mgl_dens3_all_xyz at Base 1.11
+ mgl_dens3_all_xyz_ at Base 1.11
+ mgl_dens3_xyz at Base 1.11
+ mgl_dens3_xyz_ at Base 1.11
+ mgl_dens at Base 1.11
+ mgl_dens_ at Base 1.11
+ mgl_dens_x at Base 1.11
+ mgl_dens_x_ at Base 1.11
+ mgl_dens_xy at Base 1.11
+ mgl_dens_xy_ at Base 1.11
+ mgl_dens_y at Base 1.11
+ mgl_dens_y_ at Base 1.11
+ mgl_dens_z at Base 1.11
+ mgl_dens_z_ at Base 1.11
+ mgl_dew_2d at Base 1.11
+ mgl_dew_2d_ at Base 1.11
+ mgl_dew_xy at Base 1.11
+ mgl_dew_xy_ at Base 1.11
+ mgl_dots at Base 1.11
+ mgl_dots_ at Base 1.11
+ mgl_dots_a at Base 1.11
+ mgl_dots_a_ at Base 1.11
+ mgl_dots_tr at Base 1.11
+ mgl_dots_tr_ at Base 1.11
+ mgl_drop at Base 1.11
+ mgl_drop_ at Base 1.11
+ mgl_end_frame at Base 1.11
+ mgl_end_frame_ at Base 1.11
+ mgl_error at Base 1.11
+ mgl_error_ at Base 1.11
+ mgl_error_exy at Base 1.11
+ mgl_error_exy_ at Base 1.11
+ mgl_error_xy at Base 1.11
+ mgl_error_xy_ at Base 1.11
+ mgl_facex at Base 1.11
+ mgl_facex_ at Base 1.11
+ mgl_facey at Base 1.11
+ mgl_facey_ at Base 1.11
+ mgl_facez at Base 1.11
+ mgl_facez_ at Base 1.11
+ mgl_fact at Base 1.11
+ mgl_fall at Base 1.11
+ mgl_fall_ at Base 1.11
+ mgl_fall_xy at Base 1.11
+ mgl_fall_xy_ at Base 1.11
+ mgl_find_var at Base 1.11
+ mgl_find_var_ at Base 1.11
+ mgl_fit_1 at Base 1.11
+ mgl_fit_1_ at Base 1.11
+ mgl_fit_1_d at Base 1.11
+ mgl_fit_2 at Base 1.11
+ mgl_fit_2_ at Base 1.11
+ mgl_fit_2_d at Base 1.11
+ mgl_fit_3 at Base 1.11
+ mgl_fit_3_ at Base 1.11
+ mgl_fit_3_d at Base 1.11
+ mgl_fit_xy at Base 1.11
+ mgl_fit_xy_ at Base 1.11
+ mgl_fit_xy_d at Base 1.11
+ mgl_fit_xys at Base 1.11
+ mgl_fit_xys_ at Base 1.11
+ mgl_fit_xys_d at Base 1.11
+ mgl_fit_xyz at Base 1.11
+ mgl_fit_xyz_ at Base 1.11
+ mgl_fit_xyz_d at Base 1.11
+ mgl_fit_xyza at Base 1.11
+ mgl_fit_xyza_ at Base 1.11
+ mgl_fit_xyza_d at Base 1.11
+ mgl_fit_xyzas at Base 1.11
+ mgl_fit_xyzas_ at Base 1.11
+ mgl_fit_xyzas_d at Base 1.11
+ mgl_fit_xyzs at Base 1.11
+ mgl_fit_xyzs_ at Base 1.11
+ mgl_fit_xyzs_d at Base 1.11
+ mgl_fit_ys at Base 1.11
+ mgl_fit_ys_ at Base 1.11
+ mgl_fit_ys_d at Base 1.11
+ mgl_flow_2d at Base 1.11
+ mgl_flow_2d_ at Base 1.11
+ mgl_flow_3d at Base 1.11
+ mgl_flow_3d_ at Base 1.11
+ mgl_flow_xy at Base 1.11
+ mgl_flow_xy_ at Base 1.11
+ mgl_flow_xyz at Base 1.11
+ mgl_flow_xyz_ at Base 1.11
+ mgl_flowp_2d at Base 1.11
+ mgl_flowp_2d_ at Base 1.11
+ mgl_flowp_3d at Base 1.11
+ mgl_flowp_3d_ at Base 1.11
+ mgl_flowp_xy at Base 1.11
+ mgl_flowp_xy_ at Base 1.11
+ mgl_flowp_xyz at Base 1.11
+ mgl_flowp_xyz_ at Base 1.11
+ mgl_flush at Base 1.11
+ mgl_flush_ at Base 1.11
+ mgl_fortran_func at Base 1.11
+ mgl_fplot at Base 1.11
+ mgl_fplot_ at Base 1.11
+ mgl_fplot_xyz at Base 1.11
+ mgl_fplot_xyz_ at Base 1.11
+ mgl_fsurf at Base 1.11
+ mgl_fsurf_ at Base 1.11
+ mgl_fsurf_xyz at Base 1.11
+ mgl_fsurf_xyz_ at Base 1.11
+ mgl_gen_fnt at Base 1.11
+ mgl_get_fit at Base 1.11
+ mgl_get_height at Base 1.11
+ mgl_get_height_ at Base 1.11
+ mgl_get_last_mouse_pos at Base 1.11
+ mgl_get_last_mouse_pos_ at Base 1.11
+ mgl_get_num_frame at Base 1.11
+ mgl_get_num_frame_ at Base 1.11
+ mgl_get_rgb at Base 1.11
+ mgl_get_rgb_ at Base 1.11
+ mgl_get_rgba at Base 1.11
+ mgl_get_rgba_ at Base 1.11
+ mgl_get_warn at Base 1.11
+ mgl_get_warn_ at Base 1.11
+ mgl_get_width at Base 1.11
+ mgl_get_width_ at Base 1.11
+ mgl_grad at Base 1.11
+ mgl_grad_ at Base 1.11
+ mgl_grad_xy at Base 1.11
+ mgl_grad_xy_ at Base 1.11
+ mgl_grad_xyz at Base 1.11
+ mgl_grad_xyz_ at Base 1.11
+ mgl_grid3 at Base 1.11
+ mgl_grid3_ at Base 1.11
+ mgl_grid3_all at Base 1.11
+ mgl_grid3_all_ at Base 1.11
+ mgl_grid3_all_xyz at Base 1.11
+ mgl_grid3_all_xyz_ at Base 1.11
+ mgl_grid3_xyz at Base 1.11
+ mgl_grid3_xyz_ at Base 1.11
+ mgl_grid at Base 1.11
+ mgl_grid_ at Base 1.11
+ mgl_grid_xy at Base 1.11
+ mgl_grid_xy_ at Base 1.11
+ mgl_hist_x at Base 1.11
+ mgl_hist_x_ at Base 1.11
+ mgl_hist_xy at Base 1.11
+ mgl_hist_xy_ at Base 1.11
+ mgl_hist_xyz at Base 1.11
+ mgl_hist_xyz_ at Base 1.11
+ mgl_identity at Base 1.11
+ mgl_identity_ at Base 1.11
+ mgl_inplot at Base 1.11
+ mgl_inplot_ at Base 1.11
+ mgl_jacobian_2d at Base 1.11
+ mgl_jacobian_2d_ at Base 1.11
+ mgl_jacobian_3d at Base 1.11
+ mgl_jacobian_3d_ at Base 1.11
+ mgl_label at Base 1.11
+ mgl_label_ at Base 1.11
+ mgl_label_ext at Base 1.11
+ mgl_label_ext_ at Base 1.11
+ mgl_label_xy at Base 1.11
+ mgl_label_xy_ at Base 1.11
+ mgl_labelw_ext at Base 1.11
+ mgl_labelw_xy at Base 1.11
+ mgl_legend at Base 1.11
+ mgl_legend_ at Base 1.11
+ mgl_legend_xy at Base 1.11
+ mgl_legend_xy_ at Base 1.11
+ mgl_line at Base 1.11
+ mgl_line_ at Base 1.11
+ mgl_load_font at Base 1.11
+ mgl_load_font_ at Base 1.11
+ mgl_map at Base 1.11
+ mgl_map_ at Base 1.11
+ mgl_map_xy at Base 1.11
+ mgl_map_xy_ at Base 1.11
+ mgl_mark at Base 1.11
+ mgl_mark_ at Base 1.11
+ mgl_mark_xy at Base 1.11
+ mgl_mark_xy_ at Base 1.11
+ mgl_mark_xyz at Base 1.11
+ mgl_mark_xyz_ at Base 1.11
+ mgl_mark_y at Base 1.11
+ mgl_mark_y_ at Base 1.11
+ mgl_mat_pop at Base 1.11
+ mgl_mat_pop_ at Base 1.11
+ mgl_mat_push at Base 1.11
+ mgl_mat_push_ at Base 1.11
+ mgl_mesh at Base 1.11
+ mgl_mesh_ at Base 1.11
+ mgl_mesh_xy at Base 1.11
+ mgl_mesh_xy_ at Base 1.11
+ mgl_new_frame at Base 1.11
+ mgl_new_frame_ at Base 1.11
+ mgl_numg at Base 1.11
+ mgl_parse at Base 1.11
+ mgl_parse_ at Base 1.11
+ mgl_parse_text at Base 1.11
+ mgl_parse_text_ at Base 1.11
+ mgl_parser_allow_setsize at Base 1.11
+ mgl_parser_allow_setsize_ at Base 1.11
+ mgl_parsew at Base 1.11
+ mgl_parsew_text at Base 1.11
+ mgl_pde_solve at Base 1.11
+ mgl_pde_solve_ at Base 1.11
+ mgl_perspective at Base 1.11
+ mgl_perspective_ at Base 1.11
+ mgl_pipe_2d at Base 1.11
+ mgl_pipe_2d_ at Base 1.11
+ mgl_pipe_3d at Base 1.11
+ mgl_pipe_3d_ at Base 1.11
+ mgl_pipe_xy at Base 1.11
+ mgl_pipe_xy_ at Base 1.11
+ mgl_pipe_xyz at Base 1.11
+ mgl_pipe_xyz_ at Base 1.11
+ mgl_plot at Base 1.11
+ mgl_plot_ at Base 1.11
+ mgl_plot_xy at Base 1.11
+ mgl_plot_xy_ at Base 1.11
+ mgl_plot_xyz at Base 1.11
+ mgl_plot_xyz_ at Base 1.11
+ mgl_puts at Base 1.11
+ mgl_puts_ at Base 1.11
+ mgl_puts_dir at Base 1.11
+ mgl_puts_ext at Base 1.11
+ mgl_puts_ext_ at Base 1.11
+ mgl_puts_fit at Base 1.11
+ mgl_puts_fit_ at Base 1.11
+ mgl_putsw at Base 1.11
+ mgl_putsw_dir at Base 1.11
+ mgl_putsw_ext at Base 1.11
+ mgl_qo2d_solve at Base 1.11
+ mgl_qo2d_solve_ at Base 1.11
+ mgl_quadplot_xy at Base 1.11
+ mgl_quadplot_xy_ at Base 1.11
+ mgl_quadplot_xyz at Base 1.11
+ mgl_quadplot_xyz_ at Base 1.11
+ mgl_quadplot_xyzc at Base 1.11
+ mgl_quadplot_xyzc_ at Base 1.11
+ mgl_radar at Base 1.11
+ mgl_radar_ at Base 1.11
+ mgl_ray_trace at Base 1.11
+ mgl_ray_trace_ at Base 1.11
+ mgl_region at Base 1.11
+ mgl_region_ at Base 1.11
+ mgl_region_xy at Base 1.11
+ mgl_region_xy_ at Base 1.11
+ mgl_relplot at Base 1.11
+ mgl_relplot_ at Base 1.11
+ mgl_reset_frames at Base 1.11
+ mgl_reset_frames_ at Base 1.11
+ mgl_restore_font at Base 1.11
+ mgl_restore_font_ at Base 1.11
+ mgl_restore_once at Base 1.11
+ mgl_restore_once_ at Base 1.11
+ mgl_rng at Base 1.11
+ mgl_rotate at Base 1.11
+ mgl_rotate_ at Base 1.11
+ mgl_rotate_vector at Base 1.11
+ mgl_rotate_vector_ at Base 1.11
+ mgl_scan_func at Base 1.11
+ mgl_set_alpha at Base 1.11
+ mgl_set_alpha_ at Base 1.11
+ mgl_set_alpha_default at Base 1.11
+ mgl_set_alpha_default_ at Base 1.11
+ mgl_set_ambbr at Base 1.11
+ mgl_set_ambbr_ at Base 1.11
+ mgl_set_arrow_size at Base 1.11
+ mgl_set_arrow_size_ at Base 1.11
+ mgl_set_auto at Base 1.11
+ mgl_set_auto_ at Base 1.11
+ mgl_set_axial_dir at Base 1.11
+ mgl_set_axial_dir_ at Base 1.11
+ mgl_set_axis at Base 1.11
+ mgl_set_axis_2d at Base 1.11
+ mgl_set_axis_2d_ at Base 1.11
+ mgl_set_axis_3d at Base 1.11
+ mgl_set_axis_3d_ at Base 1.11
+ mgl_set_axis_ at Base 1.11
+ mgl_set_bar_width at Base 1.11
+ mgl_set_bar_width_ at Base 1.11
+ mgl_set_base_line_width at Base 1.11
+ mgl_set_base_line_width_ at Base 1.11
+ mgl_set_caxis at Base 1.11
+ mgl_set_caxis_ at Base 1.11
+ mgl_set_coor at Base 1.11
+ mgl_set_coor_ at Base 1.11
+ mgl_set_crange at Base 1.11
+ mgl_set_crange_ at Base 1.11
+ mgl_set_ctt at Base 1.11
+ mgl_set_ctt_ at Base 1.11
+ mgl_set_cttw at Base 1.11
+ mgl_set_cut at Base 1.11
+ mgl_set_cut_ at Base 1.11
+ mgl_set_cut_box at Base 1.11
+ mgl_set_cut_box_ at Base 1.11
+ mgl_set_cutoff at Base 1.11
+ mgl_set_cutoff_ at Base 1.11
+ mgl_set_def_param at Base 1.11
+ mgl_set_def_param_ at Base 1.11
+ mgl_set_draw_face at Base 1.11
+ mgl_set_draw_face_ at Base 1.11
+ mgl_set_fog at Base 1.11
+ mgl_set_fog_ at Base 1.11
+ mgl_set_font_def at Base 1.11
+ mgl_set_font_def_ at Base 1.11
+ mgl_set_font_size at Base 1.11
+ mgl_set_font_size_ at Base 1.11
+ mgl_set_func at Base 1.11
+ mgl_set_func_ at Base 1.11
+ mgl_set_func_ext at Base 1.11
+ mgl_set_func_ext_ at Base 1.11
+ mgl_set_legend_box at Base 1.11
+ mgl_set_legend_box_ at Base 1.11
+ mgl_set_legend_marks at Base 1.11
+ mgl_set_legend_marks_ at Base 1.11
+ mgl_set_light at Base 1.11
+ mgl_set_light_ at Base 1.11
+ mgl_set_light_n at Base 1.11
+ mgl_set_light_n_ at Base 1.11
+ mgl_set_mark_size at Base 1.11
+ mgl_set_mark_size_ at Base 1.11
+ mgl_set_meshnum at Base 1.11
+ mgl_set_meshnum_ at Base 1.11
+ mgl_set_origin at Base 1.11
+ mgl_set_origin_ at Base 1.11
+ mgl_set_pal_color at Base 1.11
+ mgl_set_pal_color_ at Base 1.11
+ mgl_set_pal_num at Base 1.11
+ mgl_set_pal_num_ at Base 1.11
+ mgl_set_palette at Base 1.11
+ mgl_set_palette_ at Base 1.11
+ mgl_set_plotfactor at Base 1.11
+ mgl_set_plotfactor_ at Base 1.11
+ mgl_set_rotated_text at Base 1.11
+ mgl_set_rotated_text_ at Base 1.11
+ mgl_set_scheme at Base 1.11
+ mgl_set_scheme_ at Base 1.11
+ mgl_set_show_mouse_pos at Base 1.11
+ mgl_set_show_mouse_pos_ at Base 1.11
+ mgl_set_size at Base 1.11
+ mgl_set_size_ at Base 1.11
+ mgl_set_subticks at Base 1.11
+ mgl_set_subticks_ at Base 1.11
+ mgl_set_ternary at Base 1.11
+ mgl_set_ternary_ at Base 1.11
+ mgl_set_tick_len at Base 1.11
+ mgl_set_tick_len_ at Base 1.11
+ mgl_set_tick_origin at Base 1.11
+ mgl_set_tick_origin_ at Base 1.11
+ mgl_set_tick_stl at Base 1.11
+ mgl_set_tick_stl_ at Base 1.11
+ mgl_set_ticks at Base 1.11
+ mgl_set_ticks_ at Base 1.11
+ mgl_set_ticks_dir at Base 1.11
+ mgl_set_ticks_val at Base 1.11
+ mgl_set_ticks_vals at Base 1.11
+ mgl_set_transp at Base 1.11
+ mgl_set_transp_ at Base 1.11
+ mgl_set_transp_type at Base 1.11
+ mgl_set_transp_type_ at Base 1.11
+ mgl_set_xrange at Base 1.11
+ mgl_set_xrange_ at Base 1.11
+ mgl_set_xtt at Base 1.11
+ mgl_set_xtt_ at Base 1.11
+ mgl_set_xttw at Base 1.11
+ mgl_set_yrange at Base 1.11
+ mgl_set_yrange_ at Base 1.11
+ mgl_set_ytt at Base 1.11
+ mgl_set_ytt_ at Base 1.11
+ mgl_set_yttw at Base 1.11
+ mgl_set_zoom at Base 1.11
+ mgl_set_zoom_ at Base 1.11
+ mgl_set_zrange at Base 1.11
+ mgl_set_zrange_ at Base 1.11
+ mgl_set_ztt at Base 1.11
+ mgl_set_ztt_ at Base 1.11
+ mgl_set_zttw at Base 1.11
+ mgl_show_image at Base 1.11
+ mgl_show_image_ at Base 1.11
+ mgl_simple_plot at Base 1.11
+ mgl_simple_plot_ at Base 1.11
+ mgl_sphere at Base 1.11
+ mgl_sphere_ at Base 1.11
+ mgl_start_gif at Base 1.11
+ mgl_start_gif_ at Base 1.11
+ mgl_stem at Base 1.11
+ mgl_stem_ at Base 1.11
+ mgl_stem_xy at Base 1.11
+ mgl_stem_xy_ at Base 1.11
+ mgl_stem_xyz at Base 1.11
+ mgl_stem_xyz_ at Base 1.11
+ mgl_step at Base 1.11
+ mgl_step_ at Base 1.11
+ mgl_step_xy at Base 1.11
+ mgl_step_xy_ at Base 1.11
+ mgl_step_xyz at Base 1.11
+ mgl_step_xyz_ at Base 1.11
+ mgl_stfa at Base 1.11
+ mgl_stfa_ at Base 1.11
+ mgl_stfa_xy at Base 1.11
+ mgl_stfa_xy_ at Base 1.11
+ mgl_stickplot at Base 1.11
+ mgl_stickplot_ at Base 1.11
+ mgl_subplot at Base 1.11
+ mgl_subplot_ at Base 1.11
+ mgl_subplot_d at Base 1.11
+ mgl_subplot_d_ at Base 1.11
+ mgl_subplot_s at Base 1.11
+ mgl_subplot_s_ at Base 1.11
+ mgl_surf3 at Base 1.11
+ mgl_surf3_ at Base 1.11
+ mgl_surf3_val at Base 1.11
+ mgl_surf3_val_ at Base 1.11
+ mgl_surf3_xyz at Base 1.11
+ mgl_surf3_xyz_ at Base 1.11
+ mgl_surf3_xyz_val at Base 1.11
+ mgl_surf3_xyz_val_ at Base 1.11
+ mgl_surf3a at Base 1.11
+ mgl_surf3a_ at Base 1.11
+ mgl_surf3a_val at Base 1.11
+ mgl_surf3a_val_ at Base 1.11
+ mgl_surf3a_xyz at Base 1.11
+ mgl_surf3a_xyz_ at Base 1.11
+ mgl_surf3a_xyz_val at Base 1.11
+ mgl_surf3a_xyz_val_ at Base 1.11
+ mgl_surf3c at Base 1.11
+ mgl_surf3c_ at Base 1.11
+ mgl_surf3c_val at Base 1.11
+ mgl_surf3c_val_ at Base 1.11
+ mgl_surf3c_xyz at Base 1.11
+ mgl_surf3c_xyz_ at Base 1.11
+ mgl_surf3c_xyz_val at Base 1.11
+ mgl_surf3c_xyz_val_ at Base 1.11
+ mgl_surf at Base 1.11
+ mgl_surf_ at Base 1.11
+ mgl_surf_xy at Base 1.11
+ mgl_surf_xy_ at Base 1.11
+ mgl_surfa at Base 1.11
+ mgl_surfa_ at Base 1.11
+ mgl_surfa_xy at Base 1.11
+ mgl_surfa_xy_ at Base 1.11
+ mgl_surfc at Base 1.11
+ mgl_surfc_ at Base 1.11
+ mgl_surfc_xy at Base 1.11
+ mgl_surfc_xy_ at Base 1.11
+ mgl_tens at Base 1.11
+ mgl_tens_ at Base 1.11
+ mgl_tens_xy at Base 1.11
+ mgl_tens_xy_ at Base 1.11
+ mgl_tens_xyz at Base 1.11
+ mgl_tens_xyz_ at Base 1.11
+ mgl_tex_symb at Base 1.11
+ mgl_text at Base 1.11
+ mgl_text_ at Base 1.11
+ mgl_text_ext at Base 1.11
+ mgl_text_ext_ at Base 1.11
+ mgl_text_xy at Base 1.11
+ mgl_text_xy_ at Base 1.11
+ mgl_text_xyz at Base 1.11
+ mgl_text_xyz_ at Base 1.11
+ mgl_text_y at Base 1.11
+ mgl_text_y_ at Base 1.11
+ mgl_textmark at Base 1.11
+ mgl_textmark_ at Base 1.11
+ mgl_textmark_xyr at Base 1.11
+ mgl_textmark_xyr_ at Base 1.11
+ mgl_textmark_xyzr at Base 1.11
+ mgl_textmark_xyzr_ at Base 1.11
+ mgl_textmark_yr at Base 1.11
+ mgl_textmark_yr_ at Base 1.11
+ mgl_textmarkw at Base 1.11
+ mgl_textmarkw_xyr at Base 1.11
+ mgl_textmarkw_xyzr at Base 1.11
+ mgl_textmarkw_yr at Base 1.11
+ mgl_tile at Base 1.11
+ mgl_tile_ at Base 1.11
+ mgl_tile_xy at Base 1.11
+ mgl_tile_xy_ at Base 1.11
+ mgl_tiles at Base 1.11
+ mgl_tiles_ at Base 1.11
+ mgl_tiles_xy at Base 1.11
+ mgl_tiles_xy_ at Base 1.11
+ mgl_title at Base 1.11
+ mgl_title_ at Base 1.11
+ mgl_titlew at Base 1.11
+ mgl_torus at Base 1.11
+ mgl_torus_ at Base 1.11
+ mgl_traj_xy at Base 1.11
+ mgl_traj_xy_ at Base 1.11
+ mgl_traj_xyz at Base 1.11
+ mgl_traj_xyz_ at Base 1.11
+ mgl_transform at Base 1.11
+ mgl_transform_ at Base 1.11
+ mgl_transform_a at Base 1.11
+ mgl_transform_a_ at Base 1.11
+ mgl_tricont_xyz at Base 1.11
+ mgl_tricont_xyz_ at Base 1.11
+ mgl_tricont_xyzc at Base 1.11
+ mgl_tricont_xyzc_ at Base 1.11
+ mgl_tricont_xyzcv at Base 1.11
+ mgl_tricont_xyzcv_ at Base 1.11
+ mgl_tricont_xyzv at Base 1.11
+ mgl_tricont_xyzv_ at Base 1.11
+ mgl_triplot_xy at Base 1.11
+ mgl_triplot_xy_ at Base 1.11
+ mgl_triplot_xyz at Base 1.11
+ mgl_triplot_xyz_ at Base 1.11
+ mgl_triplot_xyzc at Base 1.11
+ mgl_triplot_xyzc_ at Base 1.11
+ mgl_tube at Base 1.11
+ mgl_tube_ at Base 1.11
+ mgl_tube_r at Base 1.11
+ mgl_tube_r_ at Base 1.11
+ mgl_tube_xy at Base 1.11
+ mgl_tube_xy_ at Base 1.11
+ mgl_tube_xyr at Base 1.11
+ mgl_tube_xyr_ at Base 1.11
+ mgl_tube_xyz at Base 1.11
+ mgl_tube_xyz_ at Base 1.11
+ mgl_tube_xyzr at Base 1.11
+ mgl_tube_xyzr_ at Base 1.11
+ mgl_tune_ticks at Base 1.11
+ mgl_tune_ticks_ at Base 1.11
+ mgl_update at Base 1.11
+ mgl_vect_2d at Base 1.11
+ mgl_vect_2d_ at Base 1.11
+ mgl_vect_3d at Base 1.11
+ mgl_vect_3d_ at Base 1.11
+ mgl_vect_xy at Base 1.11
+ mgl_vect_xy_ at Base 1.11
+ mgl_vect_xyz at Base 1.11
+ mgl_vect_xyz_ at Base 1.11
+ mgl_vectc_2d at Base 1.11
+ mgl_vectc_2d_ at Base 1.11
+ mgl_vectc_3d at Base 1.11
+ mgl_vectc_3d_ at Base 1.11
+ mgl_vectc_xy at Base 1.11
+ mgl_vectc_xy_ at Base 1.11
+ mgl_vectc_xyz at Base 1.11
+ mgl_vectc_xyz_ at Base 1.11
+ mgl_vectl_2d at Base 1.11
+ mgl_vectl_2d_ at Base 1.11
+ mgl_vectl_3d at Base 1.11
+ mgl_vectl_3d_ at Base 1.11
+ mgl_vectl_xy at Base 1.11
+ mgl_vectl_xy_ at Base 1.11
+ mgl_vectl_xyz at Base 1.11
+ mgl_vectl_xyz_ at Base 1.11
+ mgl_wnd_adjust at Base 1.11
+ mgl_wnd_adjust_ at Base 1.11
+ mgl_wnd_animation at Base 1.11
+ mgl_wnd_animation_ at Base 1.11
+ mgl_wnd_next_frame at Base 1.11
+ mgl_wnd_next_frame_ at Base 1.11
+ mgl_wnd_prev_frame at Base 1.11
+ mgl_wnd_prev_frame_ at Base 1.11
+ mgl_wnd_reload at Base 1.11
+ mgl_wnd_reload_ at Base 1.11
+ mgl_wnd_set_auto_clf at Base 1.11
+ mgl_wnd_set_auto_clf_ at Base 1.11
+ mgl_wnd_set_clf_update at Base 1.11
+ mgl_wnd_set_clf_update_ at Base 1.11
+ mgl_wnd_set_delay at Base 1.11
+ mgl_wnd_set_delay_ at Base 1.11
+ mgl_wnd_set_show_mouse_pos at Base 1.11
+ mgl_wnd_set_show_mouse_pos_ at Base 1.11
+ mgl_wnd_toggle_alpha at Base 1.11
+ mgl_wnd_toggle_alpha_ at Base 1.11
+ mgl_wnd_toggle_light at Base 1.11
+ mgl_wnd_toggle_light_ at Base 1.11
+ mgl_wnd_toggle_no at Base 1.11
+ mgl_wnd_toggle_no_ at Base 1.11
+ mgl_wnd_toggle_rotate at Base 1.11
+ mgl_wnd_toggle_rotate_ at Base 1.11
+ mgl_wnd_toggle_zoom at Base 1.11
+ mgl_wnd_toggle_zoom_ at Base 1.11
+ mgl_wnd_update at Base 1.11
+ mgl_wnd_update_ at Base 1.11
+ mgl_write_bmp at Base 1.11
+ mgl_write_bmp_ at Base 1.11
+ mgl_write_eps at Base 1.11
+ mgl_write_eps_ at Base 1.11
+ mgl_write_frame at Base 1.11
+ mgl_write_frame_ at Base 1.11
+ mgl_write_gif at Base 1.11
+ mgl_write_gif_ at Base 1.11
+ mgl_write_idtf at Base 1.11
+ mgl_write_idtf_ at Base 1.11
+ mgl_write_jpg at Base 1.11
+ mgl_write_jpg_ at Base 1.11
+ mgl_write_png at Base 1.11
+ mgl_write_png_ at Base 1.11
+ mgl_write_png_solid at Base 1.11
+ mgl_write_png_solid_ at Base 1.11
+ mgl_write_svg at Base 1.11
+ mgl_write_svg_ at Base 1.11
+ mgls_base_cmd at Base 1.11
diff --git a/debian/libmgl5/usr/lib/libmgl.so.5 b/debian/libmgl5/usr/lib/libmgl.so.5
new file mode 120000
index 0000000..3b755b8
--- /dev/null
+++ b/debian/libmgl5/usr/lib/libmgl.so.5
@@ -0,0 +1 @@
+libmgl.so.5.0.0
\ No newline at end of file
diff --git a/debian/libmgl5/usr/lib/libmgl.so.5.0.0 b/debian/libmgl5/usr/lib/libmgl.so.5.0.0
new file mode 100644
index 0000000..e1a2c31
Binary files /dev/null and b/debian/libmgl5/usr/lib/libmgl.so.5.0.0 differ
diff --git a/debian/libmgl5/usr/share/doc/libmgl5/changelog.Debian.gz b/debian/libmgl5/usr/share/doc/libmgl5/changelog.Debian.gz
new file mode 100644
index 0000000..b8480bb
Binary files /dev/null and b/debian/libmgl5/usr/share/doc/libmgl5/changelog.Debian.gz differ
diff --git a/debian/libmgl5/usr/share/doc/libmgl5/changelog.gz b/debian/libmgl5/usr/share/doc/libmgl5/changelog.gz
new file mode 100644
index 0000000..be3de85
Binary files /dev/null and b/debian/libmgl5/usr/share/doc/libmgl5/changelog.gz differ
diff --git a/debian/copyright b/debian/libmgl5/usr/share/doc/libmgl5/copyright
similarity index 100%
copy from debian/copyright
copy to debian/libmgl5/usr/share/doc/libmgl5/copyright
diff --git a/debian/mathgl-doc.debhelper.log b/debian/mathgl-doc.debhelper.log
new file mode 100644
index 0000000..1174084
--- /dev/null
+++ b/debian/mathgl-doc.debhelper.log
@@ -0,0 +1,15 @@
+dh_prep
+dh_installchangelogs
+dh_installdocs
+dh_install
+dh_link
+dh_strip
+dh_compress
+dh_fixperms
+dh_makeshlibs
+dh_installdeb
+dh_installman
+dh_shlibdeps
+dh_gencontrol
+dh_md5sums
+dh_builddeb
diff --git a/debian/mathgl-doc.install b/debian/mathgl-doc.install
index e6f8b51..a0a1439 100644
--- a/debian/mathgl-doc.install
+++ b/debian/mathgl-doc.install
@@ -1,6 +1,10 @@
 usr/share/doc/mathgl/mathgl_en.html/ usr/share/doc/mathgl-doc/en/
-usr/share/doc/mathgl/png_static/ usr/share/doc/mathgl-doc/en/mathgl_en.html/
+usr/share/doc/mathgl/mathgl_ru.html/ usr/share/doc/mathgl-doc/ru/
+usr/share/doc/mathgl/mgl_en.html/ usr/share/doc/mathgl-doc/en/
+usr/share/doc/mathgl/mgl_ru.html/ usr/share/doc/mathgl-doc/ru/
 usr/share/doc/mathgl/png/ usr/share/doc/mathgl-doc/en/mathgl_en.html/
-usr/share/doc/mathgl/mathgl_en.pdf usr/share/doc/mathgl-doc/
-usr/share/info/mathgl_en.info*
+usr/share/info/mathgl_en.info* 
+usr/share/info/mathgl_ru.info* 
+usr/share/info/mgl_en.info* 
+usr/share/info/mgl_ru.info* 
 debian/folder/mathgl-doc /usr/share/doc-base/
\ No newline at end of file
diff --git a/debian/mathgl-doc.install~ b/debian/mathgl-doc.install~
new file mode 100644
index 0000000..b432fca
--- /dev/null
+++ b/debian/mathgl-doc.install~
@@ -0,0 +1,10 @@
+usr/share/doc/mathgl/mathgl_en.html/ usr/share/doc/mathgl-doc/en/
+usr/share/doc/mathgl/mathgl_ru.html/ usr/share/doc/mathgl-doc/ru/
+usr/share/doc/mathgl/mgl_en.html/ usr/share/doc/mathgl-doc/en/
+usr/share/doc/mathgl/mgl_ru.html/ usr/share/doc/mathgl-doc/ru/
+usr/share/doc/mathgl/png/ usr/share/doc/mathgl-doc/en/mathgl_en.html/
+usr/share/info/mathgl_en.info* /usr/share/info/en/mathgl_en.info/
+usr/share/info/mathgl_ru.info* /usr/share/info/ru/mathgl_ru.info/
+usr/share/info/mgl_en.info* /usr/share/info/en/mgl_en.info/
+usr/share/info/mgl_ru.info* /usr/share/info/ru/mgl_ru.info/
+debian/folder/mathgl-doc /usr/share/doc-base/
\ No newline at end of file
diff --git a/debian/mathgl-doc.substvars b/debian/mathgl-doc.substvars
new file mode 100644
index 0000000..abd3ebe
--- /dev/null
+++ b/debian/mathgl-doc.substvars
@@ -0,0 +1 @@
+misc:Depends=
diff --git a/debian/mathgl-doc/DEBIAN/control b/debian/mathgl-doc/DEBIAN/control
new file mode 100644
index 0000000..3df30a9
--- /dev/null
+++ b/debian/mathgl-doc/DEBIAN/control
@@ -0,0 +1,18 @@
+Package: mathgl-doc
+Source: mathgl
+Version: 1.11-1
+Architecture: all
+Maintainer: Debian Science Maintainers <debian-science-maintainers at lists.alioth.debian.org>
+Installed-Size: 12972
+Depends: dpkg (>= 1.15.4) | install-info
+Section: doc
+Priority: optional
+Homepage: http://mathgl.sourceforge.net/index.html
+Description: library for scientific graphs. (documentation)
+ A free cross-platform library of fast C++ routines for plotting data in up
+ to 3 dimensions. It can export plots to bitmaps and vector EPS, SVG, IDTF
+ files. There are simple window interfaces based on GLUT, FLTK and/or Qt.
+ MathGL can also be used in the console. There are interfaces to a set of
+ languages, such as, C, Fortran, Pascal, Forth, Python, Octave.
+ .
+ This package contains the MathGL documentation.
diff --git a/debian/mathgl-doc/DEBIAN/md5sums b/debian/mathgl-doc/DEBIAN/md5sums
new file mode 100644
index 0000000..2d55341
--- /dev/null
+++ b/debian/mathgl-doc/DEBIAN/md5sums
@@ -0,0 +1,200 @@
+e77b8199ba06a8a255498d37c70ff9bf  usr/share/doc-base/mathgl-doc
+1c92e8b7f012e099103c470392856dbc  usr/share/doc/mathgl-doc/changelog.Debian.gz
+a280771232296099803f36a37509d1ca  usr/share/doc/mathgl-doc/changelog.gz
+3a712fb4482d591b961d2f1791b6aa63  usr/share/doc/mathgl-doc/copyright
+d4e2c061c942f102df3688ac77283717  usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en.html
+5348ae70e3363ade70da1a1d5f737388  usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_1.html
+79b1d7c93cf525d839954800df502859  usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_10.html
+ce6dcdae899bfba12dc6e97255dbc551  usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_11.html
+e6121c431f49755de1f51199ad0d46a4  usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_12.html
+e67a329ad0722c16aedeefdb2eb8e684  usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_13.html
+1ade13df1e3b9e7ad397d17681759ab4  usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_14.html
+443badafccb44f00908daa841413b608  usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_15.html
+af2f7c551f96ae8e9baae95a68e1f9b7  usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_16.html
+657eadb44c541b6066e21eea55273801  usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_2.html
+be81df232e59876c33f19ffd52cddfa2  usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_3.html
+fafff213cbebb13f6ff9f8ce09912d91  usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_4.html
+46aadbd7203a74345a42bfe9fd5c2f9b  usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_5.html
+ea076b7aaa40cc9a765977b8d4ec0838  usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_6.html
+d19d7151b43a4d7111925fd6023a650f  usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_7.html
+405453ee2dccd3bc9cf46d607a6fe243  usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_8.html
+38559a11f66ed2972242902438610574  usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_9.html
+b087a2eb94bef0cf2b22d6ab35c14915  usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_abt.html
+4ad40cfc454563d48db8501b211fd0c7  usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_toc.html
+2cf22096555b5ae3b7c0a1543c71e53b  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/2_axis.png
+0fd7101994e34e40b0ea77ece469402f  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/area.png
+4b08245f1c18fb1a248d4bc731eaedcf  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/area_2.png
+057fbb71afc8bc0968fc1ad5764694f3  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/axial.png
+603ae307fe8d9a8a586166a1baa9dfa2  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/barh.png
+b243745f34595dc2e037e5fab4223040  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/bars.png
+6cd5147e5214e4e9c4f0befee37d3687  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/bars_2.png
+27f5f46362180f15c242706f25e2086d  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/bars_a.png
+422383ad2c60a4f370f4b2601ecee766  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/bars_f.png
+62df6b6fae33ebd9a6568cd8b24f6cb6  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/belt.png
+24db004940b420711d024809686254e3  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/boxplot.png
+e72b7e086919be52462765fe0b9b0f7f  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/boxs.png
+52779f5507ebed004308b0be9e6d6bf0  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/chart.png
+737521fd0ab6b5eca6d361338a89b642  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/cloud.png
+fb3271847f4b348e56f90b0f553bcf8f  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/cloudp.png
+b9661514ed27d1893ebca1bf8b43fd54  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/color_schemes.png
+56e7e72a3882781cf1e0c11603db9fd5  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/colors.png
+fd5d2eebd5c78f828dbe6fffed9e23b4  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/column.png
+4fbaf6464d36c6ab6daf0e5ee2813913  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/cont.png
+ba9b63036797986c158ddf8df96bd9b4  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/cont_xyz.png
+a59fe1ca2d98e60475a995cec81eb5a0  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/conta.png
+8f335f9ee1a09a2d0adf0419d3aa9441  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/contd.png
+e5d331e5eacb008338e7aa3387a9d80a  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/contf.png
+f20186805955229441ef19761f07a5a2  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/contfa.png
+dfbb0850b818d90b4a70181bc760fabd  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/contt.png
+b7bcf6f403c83e6432641adb55ed3e96  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/crust.png
+5f094621163c754505ed514f7f4c2efb  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/cutminmax.png
+29ccd3071ef990800ce0b8d77c3a6fe1  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/cutminmax2.png
+dd33fb1639be294fcf36b3ea386c0b29  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/dens.png
+b176ad5396630f5afc2d7a92f75c4e78  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/dens_xyz.png
+4a357ca529890c93141e43fdad63af09  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/densa.png
+0faf7dd6cca26ab4c9d31852940a2d7e  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/dew.png
+db91d2afb706625770b857c0926e0f11  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/dew2.png
+c3e4140258c5d080d11bb54227194b0d  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/dots.png
+1d65b7e4cddcbade9a00d22f63e4dd92  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/drops.png
+d6495ffa740a109df320fdc0853fd71a  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/envelop.png
+067c065e426569d1ebb4a3c97678cdae  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/error.png
+9b9f6d1ffd96b0f9a5cfd4ebd1d6de37  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/fall.png
+beccac77f85ef366f87795564f8b159c  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/fish.png
+2f9641891c01238860d551e9adf361c0  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/fit.png
+9535751a48de3c05979e50f967acb9b3  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/flow.png
+d8605c4997745f69d882d0607dee337c  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/flow3.png
+c660d86525df6cec6334a51af9bc939f  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/flow_dens.png
+f8d1ddc1e59ef9b5b60cfea4dd3f4a80  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/fonts.png
+88cf831534e33549173af92b6736f68b  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/grad.png
+36089d1f71fd5693c45b7313dfeb66d8  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/legend.png
+8001afb07b974f78c9b0d11896c4aae7  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/loglog.png
+70958bd923f0d42911583cdbd519af4a  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/map.png
+949a8717b19502489905205da535aba9  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/mark.png
+b374a22fe6a260d9a3cc5ab952449053  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/mesh.png
+2bc8b8cbfeb2735e671c253fdbe391dd  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/mesh_cont.png
+45ea6ad89661cefa45f67260e2ca8b69  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/mirror.png
+2fdf43bf4ec75ead053ac7d8641fd281  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/molecule.png
+de933e21d77927025923c2fc8b7b65ba  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/parser.png
+082b89f61f41c99cf0b3243d326ac804  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/pde.png
+05da3e26d6a6e63d3271cee68bee6090  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/pie_chart.png
+d97e84ec11bec74889ad460f7683f71d  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/pipe.png
+7d12601410fd01ff2c0ddb701ceea511  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/pipe2.png
+d53e5a632db26eb3725dff00cbd4d8f6  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/pipe3.png
+5148035f4ce35333bb643cbfbfbca379  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/plot.png
+b677725f00a3a37cbe47c3e34cbb93fe  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/qo2d.png
+64716e3beebb71465609e95f3e9a41f8  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/radar.png
+da0e923a19396a64f8525c605808bb86  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/region.png
+00fcaee1bab712f27937b0a0ef691eef  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/region_2.png
+926abdb0a1c8f538b40148c33403ee39  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/ring_chart.png
+79ebf3abf71b61e44161c5440c358b6e  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample1.png
+55ffe384e58928724f22fff71814b604  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample2.png
+43b3bfdde31219e30e1ab7c7d84ee8b5  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample3.png
+b59cb2f58bb53982eb901033e1a409c1  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample4.png
+337a0a7cf5f0d30c71ad307bfb62cc81  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample5.png
+f02459dab1e7bc0b1f3d7bbc09d0e88e  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample6.png
+ada7367b5717ac5852a6a2eb996407e0  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample7.png
+42600feb2430550f527c0bac92fb4b70  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample8.png
+f4cf9c0b182591ca226da1317420c9f3  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample9.png
+eb2b7cabfc9015298456d532fc60e6bc  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/samplea.png
+08d0e4042db13c78e49127b852b6ec20  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sampleb.png
+038c60fba91b3d77993b06f09c13332f  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/samplec.png
+b9b7840d965df00010bf622010cc0173  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sampled.png
+d27b04ccb7530f3f033a01c78c0dc71c  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/samplee.png
+1ecc0aa5b50c7e74f74b994195cd7533  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/semilog.png
+009c54686b6f9478b50487465540f02d  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/several_light.png
+cc25d0a31a083a3e17941def2688a44c  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sew.png
+088769e675507728372fcda3303ed874  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/stem.png
+df1289c9a9987714c196cd9a89c5f485  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/step.png
+fec190cbf0dcd4bcb635e47df318a490  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/stereo.png
+c94a9250031f33aeaebd7446a99fe795  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/stfa.png
+1f8280e92cd0e28f5bba725873f336f2  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/stick.png
+bba8612c165e7f5163c827d049b60916  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf.png
+624670d16ddb6651b371eacf332561b6  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf3.png
+ed5d99a05d35055387b70a96bb57db84  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf3_cutoff.png
+7e9b65a9c3a61bd1ef3a9f4d1492518c  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf3_rgbd.png
+06d36f362293e3b66f4a0a47385e3ac8  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf3a.png
+0e5128d33df858c7db78b5d8d8f0d656  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf3c.png
+827c1989c43b3a7df914e204aa0e23ca  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_alpha.png
+17e3b997ced1cbfc5e38326792749519  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_caxis.png
+387688aad968dfcc66f80e33f364dccf  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_cont.png
+0396ef0cb829338520b7fb3635f613fa  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_cont_fog.png
+5117453359bb3f9f9a80b57a4fdeb404  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_cont_y.png
+3c23ac13b8252a2beeb46d9ac0068687  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_cut.png
+50614cb0b2c20c989bb982a16fe2e436  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_fog.png
+72bb93786e7a9d344bbe239c4639e9c1  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_sl.png
+e1b2f767faced519957f55037d90dd0b  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surfa.png
+9cc039cc0d4484009c46d743747203cf  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surfc.png
+6be9fe693209376fec63d758600be9c9  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/tens.png
+18e1998ce6c1fd66a8881d9cf4fcba94  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/ternary.png
+425539fe99c4bbe7bdce5318546b26f5  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/text.png
+89f9f49d2357502664b73ca2134577b3  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/textmark.png
+d6f95344149e3dca57a95a89f6f7b6bd  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/tile.png
+79d277fd856b9340a75d9941783790cc  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/tiles.png
+139d8f6d5eb243ef92bc111f1eef9939  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/torus.png
+2db1a22879f0d65115c50941430fe431  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/traj.png
+87807d7d94474eb7d73aeb2512acec90  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/tube.png
+474744196193e5c5ae1fe4b927934d79  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/tube_3d.png
+1a206d4869756ceb9797293de9051d60  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/tval.png
+7fdb22508fdf252d37dbf6eb656c132d  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/type0.png
+520193615a8adab4a7236cee6d840d6c  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/type1.png
+6205d4c53659eb67411a0e7c54f61931  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/type2.png
+dc3be1eb839d58659b9cb837de5b9021  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/vect.png
+4cf828a51668790611f8091afe474e45  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/vect3.png
+a9408e6871c761f801363271b7658624  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/vectc.png
+43fe70aea6afd353e22fa51174584580  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/vectc3.png
+789cd9d7cb78db01b348ec696cc089af  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/vectl.png
+5af5a02bbc829a63ae96de042f40d5c1  usr/share/doc/mathgl-doc/en/mathgl_en.html/png/vectl3.png
+bb60d7b8cb736de309b4c2c2e47b9801  usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en.html
+8176b8cc45a32432ef15ee1b911a9a9a  usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_1.html
+7a93c0140d606ee533f2c01f732a4444  usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_2.html
+824cc6c98a292d85a27df0c453a79da1  usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_3.html
+e70c98dc29bce4402203ef742e2f997b  usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_4.html
+600c2ba28ff1692b9d0ff5465fb48706  usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_5.html
+503115eb4019ae19295b5916b7ef7079  usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_6.html
+1a827083f2f37f79f4d25562c87f7e0f  usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_7.html
+472642aea85abab873b5d9571caddc9f  usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_8.html
+7cea21aa25ad03d906cb1f7b26b61aa1  usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_abt.html
+1f39aad69e1cd243a5409f9376ccfe26  usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_toc.html
+c33bd871a33cc3a5b85c46d4b2b2875b  usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru.html
+20904733d7c2a1c4ef122854c1e86152  usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_1.html
+5d81b9d2b919e43ecc23e8fe661c54b0  usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_10.html
+27c911ad6d55da468ff3e9579ac1a3ae  usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_11.html
+0ef25391462217091ff19cc8f450676a  usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_12.html
+cc3643ed38fc43051ccae65b21d77cf7  usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_13.html
+47bd648332951b92b228509551ae1475  usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_14.html
+879b5f6e87fcaa57ca4192370e46014b  usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_15.html
+b40bce30c1933ee56c64d7832cd8198d  usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_16.html
+c1b7e1d4c793d3b15c9191ac83e52f90  usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_2.html
+52f14b4d8f93240f3797a3576539cb3e  usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_3.html
+9fa598f607ee5c92681cb92fb9cfc8fc  usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_4.html
+74128923f365c53f232b5d72596fe89e  usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_5.html
+6f4530e136bb83d5db702a80d16faf75  usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_6.html
+369bf9357badf57a12098345f58a8b94  usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_7.html
+317f66a03dcf3b1a9ad01fb61c45e9da  usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_8.html
+b302d8fda14801a73b88393b5722ad9c  usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_9.html
+1864732af6c98fd0464a73b6266de343  usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_abt.html
+7941d484a0513ddffeef98ddac432b2d  usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_toc.html
+20dc47bb94d836655675b1c7e2d3396c  usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru.html
+48a29094c0c42f6a4ad3ce637c95658b  usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_1.html
+b272a84a181f1cb9d3fc0091f57d1f74  usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_2.html
+8b567c2ef8256feaad90352a1cb03ede  usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_3.html
+9be8d9df6e3d2d8409d1918a157ed415  usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_4.html
+2bc3508958f1e84a34d4eda5043319a4  usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_5.html
+e3dc3589baaf29ec2b1f3fcb7d975e94  usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_6.html
+8df61884cc05cd7b17b737878159c931  usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_7.html
+a417f5907b519a197f8f38c44400f052  usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_8.html
+41f556be02a5b0e1e4699716b0dd60b0  usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_abt.html
+50625a1c54b0c0c716e8b8c1fa4e441e  usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_toc.html
+b9774bab6cb050b2b0eeedb1d299d84d  usr/share/info/en/mathgl_en.info/mathgl_en.info-1.gz
+b804978df4dadfa99a99dd3993b4977a  usr/share/info/en/mathgl_en.info/mathgl_en.info-2.gz
+8ae23ffd9f4b1ce1e44cf8a97d2701ef  usr/share/info/en/mathgl_en.info/mathgl_en.info-3.gz
+b8f8c71dc1c7b3153b6ad6973ee48fb6  usr/share/info/en/mathgl_en.info/mathgl_en.info.gz
+55c83e45c9e975ffe34af8813ccb1196  usr/share/info/en/mgl_en.info/mgl_en.info.gz
+6fa1458eca07a6348765a973083bed32  usr/share/info/ru/mathgl_ru.info/mathgl_ru.info-1.gz
+cb1e8137de2bfdeae76a1e951a0436ae  usr/share/info/ru/mathgl_ru.info/mathgl_ru.info-2.gz
+455fec876c7f25a307b759f6775df8f5  usr/share/info/ru/mathgl_ru.info/mathgl_ru.info-3.gz
+0a31f9980ae86f45079c5a12a4b825e0  usr/share/info/ru/mathgl_ru.info/mathgl_ru.info-4.gz
+905cd36d13c6b238116842a4f0fc5d2b  usr/share/info/ru/mathgl_ru.info/mathgl_ru.info.gz
+9a2bc3374bbfaf838142495fca810c55  usr/share/info/ru/mgl_ru.info/mgl_ru.info-1.gz
+c9120c4b3c38d8aa85146158a138fb0c  usr/share/info/ru/mgl_ru.info/mgl_ru.info-2.gz
+0f5493a2089029f11211d7ac1b593f10  usr/share/info/ru/mgl_ru.info/mgl_ru.info.gz
diff --git a/debian/mathgl-doc/usr/share/doc-base/mathgl-doc b/debian/mathgl-doc/usr/share/doc-base/mathgl-doc
new file mode 100644
index 0000000..3580d47
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc-base/mathgl-doc
@@ -0,0 +1,18 @@
+Document: mathgl-doc
+Title: Debian mathgl Manual
+Author: Alexey Balakin
+Abstract: This manual describes the usage
+ of mathgl for the production of high 
+ quality plots.
+Section: Science/Data Analysis
+
+Format: HTML
+Index: /usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en.html
+Files: /usr/share/doc/mathgl-doc/en/mathgl_en.html/*.html
+
+# Format: PDF
+#Files: /usr/share/doc/mathgl-doc/mathgl_en.pdf.gz
+
+Format: Info
+Index: /usr/share/info/mathgl_en.info.gz
+Files: /usr/share/info/mathgl_en.info*.gz
\ No newline at end of file
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/changelog.Debian.gz b/debian/mathgl-doc/usr/share/doc/mathgl-doc/changelog.Debian.gz
new file mode 100644
index 0000000..b8480bb
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/changelog.Debian.gz differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/changelog.gz b/debian/mathgl-doc/usr/share/doc/mathgl-doc/changelog.gz
new file mode 100644
index 0000000..be3de85
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/changelog.gz differ
diff --git a/debian/copyright b/debian/mathgl-doc/usr/share/doc/mathgl-doc/copyright
similarity index 100%
copy from debian/copyright
copy to debian/mathgl-doc/usr/share/doc/mathgl-doc/copyright
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en.html
new file mode 100644
index 0000000..cbf4442
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: MathGL</title>
+
+<meta name="description" content="MathGL 1.11: MathGL">
+<meta name="keywords" content="MathGL 1.11: MathGL">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Top"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL"></a>
+<h1 class="settitle">MathGL</h1>
+
+<p>This file documents the Mathematical Graphic Library (MathGL), a collection of classes and routines for scientific plotting. It corresponds to release 1.11 of the library. Please report any errors in this manual to <a href="mailto:mathgl.abalakin at gmail.org">mathgl.abalakin at gmail.org</a>. More information about MathGL can be found at the project homepage, <a href="http://mathgl.sourceforge.net/">http://mathgl.sourceforge.net/</a>.
+</p>
+<p>Copyright &copy; 2008 Alexey A. Balakin. 
+</p>
+<blockquote><p>Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being &ldquo;A GNU Manual,&rdquo;
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled &ldquo;GNU Free Documentation
+License.&rdquo;
+</p>
+<p>(a) The FSF&rsquo;s Back-Cover Text is: &ldquo;You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom.&rdquo;
+</p></blockquote>
+
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="mathgl_en_1.html#Overview">1. Overview</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_2.html#Examples">2. MathGL examples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_3.html#MathGL-core">3. MathGL core</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_4.html#Plotter-classes">4. Plotter classes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_5.html#Widget-classes">5. Widget classes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_6.html#mglData-class">6. mglData class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_7.html#Other-classes">7. Other classes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_8.html#MGL-interface">8. MGL language</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_9.html#Samples">9. Samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_10.html#TeX_002dlike-symbols">A. TeX-like symbols</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_11.html#Copying-This-Manual">B. GNU Free Documentation License</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_12.html#Index">Index</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+
+
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_1.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_1.html
new file mode 100644
index 0000000..4e3a103
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_1.html
@@ -0,0 +1,922 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: 1. Overview</title>
+
+<meta name="description" content="MathGL 1.11: 1. Overview">
+<meta name="keywords" content="MathGL 1.11: 1. Overview">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Overview"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Why-have-I-written-MathGL_003f" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Overview-1"></a>
+<h1 class="chapter">1. Overview</h1>
+
+<a name="index-MathGL-overview"></a>
+
+<p>MathGL is ...
+</p><ul>
+<li>
+a library for making high-quality scientific graphics under Linux and Windows;
+</li><li>
+a library for the fast data plotting and handling of large data arrays;
+</li><li>
+a library for working in window and console modes and for easy embedding into other programs;
+</li><li>
+a library with large and growing set of graphics.
+</li></ul>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Why-have-I-written-MathGL_003f">1.1 Why have I written MathGL?</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#MathGL-features">1.2 MathGL features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Installation-and-usage">1.3 Installation and usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#General-concepts">1.4 General concepts</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#FAQ">1.5 FAQ</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Interfaces">1.6 Interfaces</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Thanks">1.7 Thanks</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Why-have-I-written-MathGL_003f"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Overview" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Why-have-I-written-MathGL_003f-1"></a>
+<h2 class="section">1.1 Why have I written MathGL?</h2>
+
+<p>A code for making high-quality scientific graphics under Linux and Windows. A  code for the fast handling and plotting of large data arrays. A code for working in window and console regimes and for easy including into another program. A code with large and renewal set of graphics. Exactly such a code I was looking for in the last years. Exactly such a code I tried to realize in MathGL library.
+</p>
+<p>At this version (1.11) MathGL has more than 20000 code strings, more than 40 general types of graphics for 1d, 2d and 3d data arrays. It can export graphics to bitmap and vector (EPS or SVG) files. It has OpenGL interface and can be used from console programs. It has functions for data handling and script MGL language for simplification of data plotting. It also has several types of transparency and smoothed lighting, vector fonts and TeX-like symbol parsing, arbitrary curvilinear coordinate system and many other useful things (see pictures section at <a href="http://mathgl.sf.net/">homepage</a>). Finally it is platform-independent and free (under GPL v.2.0 or later license).
+</p>
+<hr size="6">
+<a name="MathGL-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Why-have-I-written-MathGL_003f" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Installation-and-usage" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL-features-1"></a>
+<h2 class="section">1.2 MathGL features</h2>
+
+<p>MathGL can plot a wide range of graphics. It includes:
+</p><ul>
+<li>
+one-dimensional (Plot, Area, Bars, Step, Stem, Torus, Chart, Error, Tube, Mark, see section <a href="mathgl_en_3.html#g_t1D-plotting">1D plotting</a>);
+
+</li><li>
+two-dimensional plots (Mesh, Surf, Dens, Cont, ContF, Boxs, Axial, Fall, Belt, Tile, see section <a href="mathgl_en_3.html#g_t2D-plotting">2D plotting</a>);
+
+</li><li>
+three-dimensional plots (Surf3, Dens3, Cont3, ContF3, Cloud-like, see section <a href="mathgl_en_3.html#g_t3D-plotting">3D plotting</a>);
+
+</li><li>
+dual data plots: vector fields Vect and VectC, flow threads Flow, mapping chart Map, surfaces and isosurfaces, transparent or colored (i.e. with transparency or color varied) by other data SurfA, SurfC, Surf3A, Surf3C (see section <a href="mathgl_en_3.html#Dual-plotting">Dual plotting</a>);
+
+</li><li>
+and so on. For details see see section <a href="mathgl_en_3.html#MathGL-core">MathGL core</a>.
+</li></ul>
+
+<p>In fact, I created the functions for drawing of all the types of scientific plots that I know. The list of plots is growing; if you need some special type of a plot then please email me <a href="mailto:mathgl.abalakin at gmail.com">e-mail</a> and it will appear in the new version.
+</p>
+<p>I tried to make plots as nice looking as possible: e.g., a surface can be transparent and highlighted by several (up to 10) light sources. Most of the drawing functions have 2 variants: simple one for the fast plotting of data, complex one for specifying of the exact position of the plot (including parametric representation). Resulting image can be saved in bitmap (with the help of mglGraphZB, mglGraphGL) PNG, JPEG, TIFF, BMP format or in vector EPS or SVG format (with the help of mglGraphPS), or in IDTF format (with the help of mglGraphIDTF) which can be converted into U3D.
+</p>
+<p>All texts are drawn by vector fonts, which allows for high scalability and portability. Texts may contain commands for: some of the TeX-like symbols, changing index (upper or lower indexes) and the style of font inside the text string (see section <a href="mathgl_en_7.html#mglFont-class">mglFont class</a>). Texts of ticks are rotated with axis rotation. It is possible to create a legend of plot and put text in an arbitrary position on the plot. Arbitrary text encoding (by the help of function <code>setlocale()</code>) and UTF-16 encoding are supported.
+</p>
+<p>Special mglData class is used for data encapsulation (see section <a href="mathgl_en_6.html#mglData-class">mglData class</a>). In addition to a safe creation and deletion of data arrays it includes functions for data processing (smoothing, differentiating, integrating, interpolating and so on) and reading of data files with automatic size determination. Class mglData can handle arrays with up to three dimensions (arrays which depend on up to 3 independent indexes <em>a_ijk</em>). Using an array with higher number of dimensions is not meaningful, because I do not know how it can be plotted. Data filling and modification may be done manually or by textual formulas.
+</p>
+<p>The mglFormula class allows a fast evaluation of a textual mathematical expression (see section <a href="mathgl_en_7.html#mglFormula-class">mglFormula class</a>). It is based on string precompilation to tree-like code at the creation of class instance. At evaluation stage code performs only fast tree-walk and returns the value of the expression. In addition to changing data values, textual formulas are also used for drawing in <em>arbitrary</em> curvilinear coordinates. A set of such curvilinear coordinates is limited only by user&lt;/samp&gt;&amp;rsquo;s imagination rather than a fixed list like: polar, parabolic, spherical, and so on.
+</p>
+<hr size="6">
+<a name="Installation-and-usage"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MathGL-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Installation-and-usage-1"></a>
+<h2 class="section">1.3 Installation and usage</h2>
+
+<p>MathGL can be installed in 3 different ways.
+</p><ol>
+<li>
+Compile from sources. The standard script for autoconf/automake tool is included in the library beginning from version 1.2.1. To run it, one should execute 3 commands: <code>./configure</code> after it <code>make</code> and <code>make install</code> with root/sudo rights. Sometimes after installation you may need to update the library list &ndash; just execute <code>ldconfig</code> with root/sudo rights.
+
+<p>Script <code>./configure</code> have several additional options which are switched off by default. They are: <code>--enable-fltk, --enable-glut, --enable-qt</code> for ebabling FLTK, GLUT and/or Qt windows; <code>--enable-jpeg, --enable-tiff, --enable-hdf5</code> for enabling corresponding file formats; <code>--enable-all</code> for enabling all additional features. For using <code>double</code> as base internal data type use option <code>--enable-double</code>. For enabling language interfaces use <code>--enable-python, --enable-octave</code> or <code>--enable-langall</code> for all languages. The full list of options can be viewed by command <code>./configure --help</code>.
+</p></li><li>
+Use a precompiled binary. There are binaries for MinGW (platform Win32). For a precompiled variant one needs only to unpack the archive to the location of the compiler (or in any other folder and setup paths). By default, precompiled versions include the support of GSL (www.gsl.org) and PNG. So, one needs to have these libraries installed on system.
+</li><li>
+Install precompiled versions from standard packages (RPM, deb, DevPak and so on, see <a href="http://mathgl.sf.net/download.html">Download</a> section at homepage).
+</li></ol>
+
+<p>To compile your own program, you need to specify the linker option <code>-lmgl</code> for a compilation in the console program or with external (non-MathGL) window library. If you want to use FLTK or GLUT windows then you need to add the option <code>-lmgl-fltk</code> or <code>-lmgl-glut</code>. Fortran users also should add C++ library by the option <code>-lstdc++</code>.
+</p>
+<hr size="6">
+<a name="General-concepts"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Installation-and-usage" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Coordinate-axes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="General-concepts-1"></a>
+<h2 class="section">1.4 General concepts</h2>
+
+<p>The set of MathGL features is rather rich &ndash; just the number of basic graphics types 
+is larger than 40. Also there are functions for data handling, plot setup and so on. In spite of it I tried to keep a similar style in function names and in the order of arguments. Mostly it is 
+used for different drawing functions.
+</p>
+<p>There are six most general (base) concepts:
+</p><ol>
+<li>
+<strong>Any picture is created in memory first.</strong> The internal (memory) representation can be different: bitmap picture or the list of vector primitives. After that the user may decide what he/she want: save to file, display on the screen, run animation, do additional editing and so on. This approach assures a high portability of the program &ndash; the source code will produce exactly the same picture in <em>any</em> OS. Another big positive consequence is the ability to create the picture in the console program (using command line, without creating a window)!
+</li><li>
+<strong>Every plot settings (style of lines, font, color scheme) are specified by a string.</strong> It provides convenience for user/programmer &ndash; short string with parameters is more comprehensible than a large set of parameters. Also it provides portability &ndash; the strings are the same in any OS so that it is not necessary to think about argument types.
+</li><li>
+<strong>All functions have &ldquo;simplified&rdquo; and &ldquo;advanced&rdquo; forms.</strong> It is done for user&lt;/samp&gt;&amp;rsquo;s convenience. One needs to specify only one data array in the &ldquo;simplified&rdquo; form in order to see the result. But one may set parametric dependence of coordinates and produce rather complex curves and surfaces in the &ldquo;advanced&rdquo; form. In both cases the order of function arguments is the same: first data arrays, second the string with plot parameters, and later optional arguments for plot tuning.
+</li><li>
+<strong>All data arrays for plotting are encapsulated in mglData class.</strong> This reduces the number of errors while working with memory and provides a uniform interface for data of different types (float, double and so on) or for formula plotting.
+</li><li>
+<strong>All plots are vector plots.</strong> The MathGL library is intended for handling scientific data which have vector nature (lines, faces, matrices and so on). As a result, vector representation is used in all cases! In addition, the vector representation allows one to scale the plot easily &ndash; change the canvas size by a factor of 2, and the picture will be proportionally scaled.
+</li><li>
+<strong>New drawing never clears things drawn already.</strong> This, in some sense, unexpected, idea allows to create a lot of &ldquo;combined&rdquo; graphics. For example, to make a surface with contour lines one needs to call the function for surface plotting and the function for contour lines plotting (in any order). Thus the special functions for making this &ldquo;combined&rdquo; plots (as it is done in Matlab and some other plotting systems) are superfluous. Many more examples of such plots can be found in section <a href="mathgl_en_2.html#Hints">Hints</a> and in home site (<a href="http://mathgl.sf.net/index.html">http://mathgl.sf.net/index.html</a>).
+</li></ol>
+
+<p>In addition to the general concepts I want to comment on some non-trivial or less commonly used general ideas &ndash; plot positioning, axis specification and curvilinear coordinates, styles for lines, text and color scheme.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Coordinate-axes">1.4.1 Coordinate axes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Line-styles">1.4.2 Line styles</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Color-scheme">1.4.3 Color scheme</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-styles">1.4.4 Font styles</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Textual-formulas">1.4.5 Textual formulas</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+
+
+<hr size="6">
+<a name="Coordinate-axes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#General-concepts" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Line-styles" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Coordinate-axes-1"></a>
+<h3 class="subsection">1.4.1 Coordinate axes</h3>
+
+<p>Two axis representations are used in MathGL. The first one consists of normalizing the data point coordinates in a box <var>Min</var>x<var>Max</var> (see section <a href="mathgl_en_3.html#Axis-settings">Axis settings</a>). If <var>Cut</var> is <code>true</code> then the outlier points are omitted, otherwise they are projected to the bounding box (see section <a href="mathgl_en_3.html#Cutting">Cutting</a>). Also, the point will be omitted if it lies inside the box defined by <var>CutMin</var> x <var>CutMax</var> or if the value of formula <code>CutOff</code>() is nonzero for its coordinates. After that, transformation formulas are applied to the data point. Finally, the data point is plotted by one of the functions.
+</p>
+<p>There is a possibility to set members <var>Max</var>, <var>Min</var> directly, but one should call <code>RecalcBorder()</code> function to setup plotting routines. A safer way is to set these values by calling the <code>Axis()</code> function, which calls <code>RecalcBorder()</code> automatically. Another way to specify the scaling of the axis is to set it as a minimal or maximal value of the data array. Functions <code>XRange(), YRange(), ZRange()</code> do it. The second (optional) argument is used to replace the axis range or to join with the existed range.
+</p>
+<p>The axis origin is defined by the variable <var>Org</var> and is applied to all consequent calls of axes or grid drawing. By default, if this point lies outside the bounding box then it is projected onto the one (variable <var>AutoOrg</var> controls it). If one of the values of <var>Org</var> is equal to NAN then the corresponding value will be selected automatically.
+</p>
+<p>There is 4-th axis <em>c</em> (color axis or colorbar) in addition to the usual axes <em>x, y, z</em>. It sets the range of values for the surface coloring. Its borders are automatically set to values of Min.z, Max.z during the call of <code>Axis()</code> function. Also, one can directly change the color range by setting variables <var>Cmax</var>, <var>Cmax</var>, or calling functions <code>CAxis()</code> or <code>CRange()</code>. Use <code>Colorbar()</code> function for showing the colorbar.
+</p>
+<p>The form (appearence) of tick labels is controlled by <code>SetTicks()</code> function (see section <a href="mathgl_en_3.html#Axis-settings">Axis settings</a>). It has 3 arguments: first one <var>d</var> sets the tick step (if positive) or tick number (if negative) or switches logarithmic ticks on (if zero); the second one, <var>ns</var>, sets the number of subticks; the last one is the starting point for ticks (default is axis origin). Function <var>SetTuneTicks</var> switches on/off tick enhancing by factoring out acommon multiplier (for small coordinate values, like 0.001 to 0.002, or large, like from 1000 to 2000) or common component (for narrow range, like from 0.999 to 1.000). Finally, you may use functions <code>SetXTT(), SetYTT(), SetZTT(), SetCTT()</code> for setting templates for tick labels (it supports TeX symbols). Also, there is a possibility to print arbitrary text as tick labels the by help of <code>SetTicksVal()</code> function.
+</p>
+<hr size="6">
+<a name="Line-styles"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Coordinate-axes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Color-scheme" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Line-styles-1"></a>
+<h3 class="subsection">1.4.2 Line styles</h3>
+
+<a name="index-Line-style"></a>
+<a name="index-Mark-style"></a>
+<a name="index-Arrows"></a>
+
+<p>The line style is defined by the string which may contain specifications for color (&lsquo;<samp>wkrgbcymhRGBCYMHWlenupqLENUPQ</samp>&rsquo;), dashing style (&lsquo;<samp>-|;:ji</samp>&rsquo; or space), width (&lsquo;<samp>0123456789</samp>&rsquo;) and marks (&lsquo;<samp>o+xsd.^v</samp>&rsquo; and &lsquo;<samp>#</samp>&rsquo; modifier). If one of the type of information is omitted then default values used with the previous color or one from palette (for see section <a href="mathgl_en_3.html#g_t1D-plotting">1D plotting</a>) are adopted. 
+By default palette contain following colors: <span style="color: rgb(76, 76, 76);">dark gray</span> &lsquo;<samp>H</samp>&rsquo;, <span style="color: rgb(0, 0, 255);">blue</span> &lsquo;<samp>b</samp>&rsquo;, <span style="color: rgb(0, 255, 0);">green</span> &lsquo;<samp>g</samp>&rsquo;, <span style="color: rgb(255, 0, 0);">red</span> &lsquo;<samp>r</samp>&rsquo;, <span style="color: rgb(0, 255, 255);">cyan</span> &lsquo;<samp>c</samp>&rsquo;, <span style="color: rgb(255, 0, 255);">magenta</span> &lsquo;<samp>m</samp>&rsquo;, <span style="color: rgb(255, 255, 0);">yellow</span> &lsquo;<samp>y</samp>&rsquo;, <span style="color: rgb(127, 127, 127);">gray</span> &lsquo;<samp>h</samp>&rsquo;, <span style="color: rgb(0, 255, 127);">green-blue</span> &lsquo;<samp>l</samp>&rsquo;, <span style="color: rgb(0, 127, 255);">sky-blue</span> &lsquo;<samp>n</samp>&rsquo;, <span style="color: rgb(255, 127, 0);">orange</span> &lsquo;<samp>q</samp>&rsquo;, <span style="color: rgb(127, 255, 0);">green-yellow</span> &lsquo;<samp>e</samp>&rsquo;, <span style="color: rgb(127, 0, 255);">blue-violet</span> &lsquo;<samp>u</samp>&rsquo;, <span style="color: rgb(255, 0, 127);">purple</span> &lsquo;<samp>p</samp>&rsquo;.
+
+<p>The color types are: &lsquo;<samp>k</samp>&rsquo; -- black, &lsquo;<samp>r</samp>&rsquo; -- <span style="color: rgb(255, 0, 0);">red</span>, &lsquo;<samp>R</samp>&rsquo; -- <span style="color: rgb(127, 0, 0);">dark red</span>, &lsquo;<samp>g</samp>&rsquo; -- <span style="color: rgb(0, 255, 0);">green</span>, &lsquo;<samp>G</samp>&rsquo; -- <span style="color: rgb(0, 127, 0);">dark green</span>, &lsquo;<samp>b</samp>&rsquo; -- <span style="color: rgb(0, 0, 255);">blue</span>, &lsquo;<samp>B</samp>&rsquo; -- <span style="color: rgb(0, 0, 127);">dark blue</span>, &lsquo;<samp>c</samp>&rsquo; -- <span style="color: rgb(0, 255, 255);">cyan</span>, &lsquo;<samp>C</samp>&rsquo; -- <span style="color: rgb(0, 127, 127);">dark cyan</span>, &lsquo;<samp>m</samp>&rsquo; -- <span style="color: rgb(255, 0, 255);">magenta</span>, &lsquo;<samp>M</samp>&rsquo; -- <span style="color: rgb(127, 0, 127);">dark magenta</span>, &lsquo;<samp>y</samp>&rsquo; -- <span style="color: rgb(255, 255, 0);">yellow</span>, &lsquo;<samp>Y</samp>&rsquo; -- <span style="color: rgb(127, 127, 0);">dark yellow (gold)</span>, &lsquo;<samp>h</samp>&rsquo; -- <span style="color: rgb(127, 127, 127);">gray</span>, &lsquo;<samp>H</samp>&rsquo; -- <span style="color: rgb(76, 76, 76);">dark gray</span>, &lsquo;<samp>w</samp>&rsquo; -- white, &lsquo;<samp>W</samp>&rsquo; -- <span style="color: rgb(178, 178, 178);">bright gray</span>, &lsquo;<samp>l</samp>&rsquo; -- <span style="color: rgb(0, 255, 127);">green-blue</span>, &lsquo;<samp>L</samp>&rsquo; -- <span style="color: rgb(0, 127, 63);">dark green-blue</span>, &lsquo;<samp>e</samp>&rsquo; -- <span style="color: rgb(127, 255, 0);">green-yellow</span>, &lsquo;<samp>E</samp>&rsquo; -- <span style="color: rgb(63, 127, 0);">dark green-yellow</span>, &lsquo;<samp>n</samp>&rsquo; -- <span style="color: rgb(0, 127, 255);">sky-blue</span>, &lsquo;<samp>N</samp>&rsquo; -- <span style="color: rgb(0, 63, 127);">dark sky-blue</span>, &lsquo;<samp>u</samp>&rsquo; -- <span style="color: rgb(127, 0, 255);">blue-violet</span>, &lsquo;<samp>U</samp>&rsquo; -- <span style="color: rgb(63, 0, 127);">dark blue-violet</span>, &lsquo;<samp>p</samp>&rsquo; -- <span style="color: rgb(255, 0, 127);">purple</span>, &lsquo;<samp>P</samp>&rsquo; -- <span style="color: rgb(127, 0, 63);">dark purple</span>, &lsquo;<samp>q</samp>&rsquo; -- <span style="color: rgb(255, 127, 0);">orange</span>, &lsquo;<samp>Q</samp>&rsquo; -- <span style="color: rgb(127, 63, 0);">dark orange (brown)</span>.</p>
+
+Dashing style has the following meaning: space -- no line (usable for plotting only marks), &lsquo;<samp>-</samp>&rsquo; -- solid line (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;), &lsquo;<samp>|</samp>&rsquo; -- long dashed line (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>;</samp>&rsquo; -- dashed line (&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>=</samp>&rsquo; -- small dashed line (&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;), &lsquo;<samp>:</samp>&rsquo; -- dotted line (&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;), &lsquo;<samp>j</samp>&rsquo; -- dash-dotted line (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>i</samp>&rsquo; -- small dash-dotted line (&#9632;&#9632;&#9632;&#9633;&#9633;&#9632;&#9633;&#9633;&#9632;&#9632;&#9632;&#9633;&#9633;&#9632;&#9633;&#9633;).</p>
+<p>Marker types are: &lsquo;<samp>o</samp>&rsquo; &ndash; circle, &lsquo;<samp>+</samp>&rsquo; &ndash; cross, &lsquo;<samp>x</samp>&rsquo; &ndash; skew cross, &lsquo;<samp>s</samp>&rsquo; - square, &lsquo;<samp>d</samp>&rsquo; - rhomb (or diamond), &lsquo;<samp>.</samp>&rsquo; &ndash; dot (point), &lsquo;<samp>^</samp>&rsquo; &ndash; triangle up, &lsquo;<samp>v</samp>&rsquo; &ndash; triangle down, &lsquo;<samp>&lt;</samp>&rsquo; &ndash; triangle left, &lsquo;<samp>&gt;</samp>&rsquo; &ndash; triangle right, &lsquo;<samp>#*</samp>&rsquo; &ndash; Y sign, &lsquo;<samp>#+</samp>&rsquo; &ndash; squared cross, &lsquo;<samp>#x</samp>&rsquo; &ndash; squared skew cross, &lsquo;<samp>#.</samp>&rsquo; &ndash; circled dot. If string contain symbol &lsquo;<samp>#</samp>&rsquo; then the solid versions of markers are used.
+</p>
+<div class="float">
+<img src="../png/sample5.png" alt="../png/sample5">
+
+</div><p><strong>Styles of lines and marks.
+</strong>
+</p>
+<p>One may specify to draw a special symbol (an arrow) at the beginning and at the end of line. This is done if the specification string contains one of the following symbols: &lsquo;<samp>A</samp>&rsquo; &ndash; outer arrow, &lsquo;<samp>V</samp>&rsquo; &ndash; inner arrow, &lsquo;<samp>I</samp>&rsquo; &ndash; transverse hatches, &lsquo;<samp>K</samp>&rsquo; &ndash; arrow with hatches, &lsquo;<samp>T</samp>&rsquo; &ndash; triangle, &lsquo;<samp>S</samp>&rsquo; &ndash; square, &lsquo;<samp>D</samp>&rsquo; &ndash; rhombus, &lsquo;<samp>O</samp>&rsquo; &ndash; circle, &lsquo;<samp>_</samp>&rsquo; &ndash; nothing (the default). The following rule applies: the first symbol specifies the arrow at the end of line, the second specifies the arrow at the beginning of the line. For example, &lsquo;<samp>r-A</samp>&rsquo; defines a red solid line with usual arrow at the end, &lsquo;<samp>b|AI</samp>&rsquo; defines a blue dash line with an arrow at the end and with hatches at the beginning, &lsquo;<samp>_O</samp>&rsquo; defines a line with the current style and with a circle at the beginning. These styles are applicable during the graphics plotting as well (for example, <a href="mathgl_en_3.html#g_t1D-plotting">1D plotting</a>).
+</p>
+<div class="float">
+<img src="../png/sampled.png" alt="../png/sampled">
+
+</div><p><strong>Arrow styles.
+</strong>
+</p>
+<hr size="6">
+<a name="Color-scheme"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Line-styles" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-styles" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Color-scheme-1"></a>
+<h3 class="subsection">1.4.3 Color scheme</h3>
+
+<a name="index-Color-scheme"></a>
+
+<p>The color scheme is used for determining the color of surfaces, isolines, isosurfaces and so on. The color scheme is defined by the string, which may contain several characters that are color id (see section <a href="#Line-styles">Line styles</a>) or characters &lsquo;<samp>d#:|</samp>&rsquo;. Symbol &lsquo;<samp>d</samp>&rsquo; denotes the interpolation by 3d position instead of the coloring by amplitude. Symbol &lsquo;<samp>#</samp>&rsquo; switches to mesh drawing or to a wire plot. Symbol &lsquo;<samp>|</samp>&rsquo; disables color interpolation in color scheme, which can be useful, for example, for sharp colors during matrix plotting. Symbol &lsquo;<samp>:</samp>&rsquo; finishes the color scheme parsing. Following it, the user may put styles for the text, rotation axis for curves/isocontours, and so on. Color scheme may contain up to 32 color values.
+</p>
+<p>You may also use &ldquo;lighted&rdquo; colors in the color scheme specification (<em>not in line style!</em>). The &ldquo;lighted&rdquo; color contain 2 symbols: first one is the usual symbol for color specification, the second one is a digit for its brightness. The digit can be in range &lsquo;<samp>1</samp>&rsquo;...&lsquo;<samp>9</samp>&rsquo;. 
+Number &lsquo;<samp>5</samp>&rsquo; corresponds to a normal color, &lsquo;<samp>1</samp>&rsquo; is a very dark version of the color (practically black), and &lsquo;<samp>9</samp>&rsquo; is a very bright version of the color (practically white). For example, the color scheme can be &lsquo;<samp>b2b7wr7r2</samp>&rsquo;.
+</p>
+<div class="float">
+<img src="../png/colors.png" alt="../png/colors">
+
+</div><p><strong>Colors and its ids.
+</strong>
+</p>
+<p>For coloring by <em>amplitude</em> (most common) the final color is a linear interpolation of color array. The color array is constructed from the string ids. The argument is the amplitude normalized between <var>Cmin</var> &ndash; <var>Cmax</var> (see section <a href="mathgl_en_3.html#Axis-settings">Axis settings</a>). For example, string containing 4 characters &lsquo;<samp>bcyr</samp>&rsquo; corresponds to a colorbar from blue (lowest value) through cyan (next value) through yellow (next value) to the red (highest value). String &lsquo;<samp>kw</samp>&rsquo; corresponds to a colorbar from black (lowest value) to white (highest value). String &lsquo;<samp>m</samp>&rsquo; corresponds to a simple magenta color.
+</p>
+<p>There are several useful combinations. String &lsquo;<samp>kw</samp>&rsquo; corresponds to the simplest gray color scheme where higher values are brighter. String &lsquo;<samp>wk</samp>&rsquo; presents the inverse gray color scheme where higher value is darker. Strings &lsquo;<samp>kRryw</samp>&rsquo;, &lsquo;<samp>kGgw</samp>&rsquo;, &lsquo;<samp>kBbcw</samp>&rsquo; present the well-known <em>hot</em>, <em>summer</em> and <em>winter</em> color schemes. Strings &lsquo;<samp>BbwrR</samp>&rsquo; and &lsquo;<samp>bBkRr</samp>&rsquo; allow to view bi-color figure on white or black background, where negative values are blue and positive values are red. String &lsquo;<samp>BbcyrR</samp>&rsquo; gives a color scheme similar to the well-known <em>jet</em> color scheme.
+</p>
+<div class="float">
+<img src="../png/color_schemes.png" alt="../png/color_schemes">
+
+</div><p><strong>Most popular color schemes.
+</strong>
+</p>
+<p>When coloring by <em>coordinate</em>, the final color is determined by the position of the point in 3d space and is calculated from formula c=x*c[1] + y*c[2] + z*c[3]. Here, c[1], c[2], c[3] are the first three elements of color array; x, y, z are normalized to <var>Min</var> &ndash; <var>Max</var> coordinates of the point. This type of coloring is useful for isosurface plot where color may show the exact position of a piece of surface.
+</p>
+<hr size="6">
+<a name="Font-styles"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Color-scheme" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Textual-formulas" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Font-styles-1"></a>
+<h3 class="subsection">1.4.4 Font styles</h3>
+
+<a name="index-Font-styles"></a>
+
+<p>Text style is specified by the string which may contain several characters of font (&lsquo;<samp>ribwou</samp>&rsquo;) and/or alignment (&lsquo;<samp>LRC</samp>&rsquo;) specifications. The string also may contain the color id characters &lsquo;<samp>wkrgbcymhRGBCYMHW</samp>&rsquo; (see section <a href="#Line-styles">Line styles</a>) after the symbol &lsquo;<samp>:</samp>&rsquo;. For example, &lsquo;<samp>biC:b</samp>&rsquo; sets the bold italic font text aligned at the center and with blue color.
+</p>
+<p>The font types are: &lsquo;<samp>r</samp>&rsquo; &ndash; roman font, &lsquo;<samp>i</samp>&rsquo; &ndash; italic style, &lsquo;<samp>b</samp>&rsquo; &ndash; bold style. By default roman roman font is used. The align types are: &lsquo;<samp>L</samp>&rsquo; &ndash; align left (default), &lsquo;<samp>C</samp>&rsquo; &ndash; align center, &lsquo;<samp>R</samp>&rsquo; &ndash; align right. Additional font effects are: &lsquo;<samp>w</samp>&rsquo; &ndash; wired, &lsquo;<samp>o</samp>&rsquo; &ndash; over-lined, &lsquo;<samp>u</samp>&rsquo; &ndash; underlined. 
+</p>
+<p>Also a parsing of the LaTeX-like syntax is provided. There are commands for the font style changing inside the string (for example, use \b for bold font): \a or \overline &ndash; over-lined, \b or \textbf &ndash; bold, \i or \textit &ndash; italic, \r or \textrm &ndash; roman (disable bold and italic attributes), \u or \underline &ndash; underlined, \w or \wire &ndash; wired, \big &ndash; bigger size, @ &ndash; smaller size. The lower and upper indexes are specified by &lsquo;<samp>_</samp>&rsquo; and &lsquo;<samp>^</samp>&rsquo; symbols. At this the changed font style is applied only on next symbol or symbols in braces {}. The text in braces {} are treated as single symbol that allow one to print the index of index. For example, compare the strings &lsquo;<samp>sin (x^{2^3})</samp>&rsquo; and &lsquo;<samp>sin (x^2^3)</samp>&rsquo;. You may also change text color inside string by command #? or by \color? where &lsquo;<samp>?</samp>&rsquo; is symbolic id of the color (see section <a href="#Line-styles">Line styles</a>). For example, words &lsquo;<samp>Blue</samp>&rsquo; and &lsquo;<samp>red</samp>&rsquo; will be colored in the string &lsquo;<samp>#b{Blue} and \colorr{red} text</samp>&rsquo;. The most of functions understand the newline symbol &lsquo;<samp>\n</samp>&rsquo; and allows to print multi-line text. Finally, you can use arbitrary UTF codes by command <code>\utf0x????</code>. For example, <code>\utf0x3b1</code> will produce
+ &alpha; symbol.</p>
+<p>The most of commands for special TeX or AMSTeX symbols, the commands for font style changing (\textrm, \textbf, \textit, \textsc, \overline, \underline), accents (\hat, \tilde, \dot, \ddot, \acute, \check, \grave, \bar, \breve) and roots (\sqrt, \sqrt3, \sqrt4) are recognized. The full list contain approximately 2000 commands. Note that first space symbol after the command is ignored, but second one is printed as normal symbol (space). For example, the following strings produce the same result <em>\tilde a</em>: &lsquo;<samp>\tilde{a}</samp>&rsquo;; &lsquo;<samp>\tilde a</samp>&rsquo;; &lsquo;<samp>\tilde{}a</samp>&rsquo;.
+</p>
+In particular, the Greek letters are recognizable special symbols: &alpha; &ndash; \alpha, &beta; &ndash; \beta, &gamma; &ndash; \gamma, &delta; &ndash; \delta, &epsilon; &ndash; \epsilon, &eta; &ndash; \eta, &iota; &ndash; \iota, &chi; &ndash; \chi, &kappa; &ndash; \kappa, &lambda; &ndash; \lambda, &mu; &ndash; \mu, &nu; &ndash; \nu, o &ndash; \o, &omega; &ndash; \omega, &#981; &ndash; \phi, &pi; &ndash; \pi, &psi; &ndash; \psi, &rho; &ndash; \rho, &sigma; &ndash; \sigma, &theta; &ndash; \theta, &tau; &ndash; \tau, &upsilon; &ndash; \upsilon, &xi; &ndash; \xi, &zeta; &ndash; \zeta, &sigmaf; &ndash; \varsigma, &#603; &ndash; \varepsilon, &thetasym; &ndash; \vartheta, &phi; &ndash; \varphi, &#1008; &ndash; \varkappa; A &ndash; \Alpha, B &ndash; \Beta, &Gamma; &ndash; \Gamma, &Delta; &ndash; \Delta, E &ndash; \Epsilon, H &ndash; \Eta, I &ndash; \Iota, C &ndash; \Chi, K &ndash; \Kappa, &Lambda; &ndash; \Lambda, M &ndash; \Mu, N &ndash; \Nu, O &ndash; \O, &Omega; &ndash; \Omega, &Phi; &ndash; \Phi, &Pi; &ndash; \Pi, &Psi; &ndash; \Psi, R &ndash; \Rho, &Sigma; &ndash; \Sigma, &Theta; &ndash; \Theta, T &ndash; \Tau, &Upsilon; &ndash; \Upsilon, &Xi; &ndash; \Xi, Z &ndash; \Zeta.
+
+<p>The small part of most common special TeX symbols are: &ang; &ndash; \angle, &sdot; &ndash; \cdot, &clubs; &ndash; \clubsuit, &#10003; &ndash; \checkmark, &cup; &ndash; \cup, &cap; &ndash; \cap, &#9826; &ndash; \diamondsuit, &#9671; &ndash; \diamond, &divide;
+ &ndash; \div, 
+&darr; &ndash; \downarrow, &dagger; &ndash; \dag, &Dagger; &ndash; \ddag, &equiv; &ndash; \equiv, &exist; &ndash; \exists, &#8994; &ndash; \frown, &#9837; &ndash; \flat, &ge; &ndash; \ge, &ge; &ndash; \geq, &#8807; &ndash; \geqq, &larr; &ndash; \gets, &#9825; &ndash; \heartsuit, &infin; &ndash; \infty, &int; &ndash; \int, \Int, &image;  &ndash; \Im, &#9826; &ndash; \lozenge, &#10216; &ndash; \langle, &le; &ndash; \le, &le; &ndash; \leq, &#8806; &ndash; \leqq, &larr; &ndash; \leftarrow, &#8723; &ndash; \mp, &nabla; &ndash; \nabla, &ne; &ndash; \ne, &ne; &ndash; \neq, &#9838; &ndash; \natural, &#8750; &ndash; \oint, &#8857; &ndash; \odot, &oplus; &ndash; \oplus, &part; &ndash; \partial, &#8741; &ndash; \parallel, &perp; &ndash;\perp, &plusmn; &ndash; \pm, &prop; &ndash; \propto, &prod; &ndash; \prod, &real; &ndash; \Re, &rarr; &ndash; \rightarrow, &#10217; &ndash; \rangle, &spades; &ndash; \spadesuit, ~ &ndash; \sim, &#8995; &ndash; \smile, &sub;  &ndash; \subset, &sup; &ndash; \supset, &radic; &ndash; \sqrt or \surd, &sect; &ndash; \S, &#9839; &ndash; \sharp, &sum; &ndash; \sum, &times; &ndash; \times, &rarr; &ndash; \to, &there4; &ndash; \therefore, &uarr; &ndash; \uparrow, &weierp; &ndash; \wp. </p>
+<p>The font size can be defined explicitly (if <var>size</var>&gt;0) or relative to a base font size as |<var>size</var>|*<var>FontSize</var> (if <var>size</var>&lt;0). The value <var>size</var>=0 specifies that the string will not be printed. The base font size is measured in internal &ldquo;MathGL&rdquo; units. Special functions <code>SetFontSizePT(), SetFontSizeCM(), SetFontSizeIN()</code> allow one to set it in more &ldquo;common&rdquo; variables for a given dpi value of the picture.
+</p>
+
+<hr size="6">
+<a name="Textual-formulas"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-styles" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#FAQ" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Textual-formulas-1"></a>
+<h3 class="subsection">1.4.5 Textual formulas</h3>
+
+<a name="index-Textual-formulas"></a>
+
+<p>MathGL have the fast variant of textual formula evaluation 
+ (see section <a href="mathgl_en_7.html#mglFormula-class">mglFormula class</a>)
+. There are a lot of functions and operators available. The operators are: &lsquo;<samp>+</samp>&rsquo; &ndash; addition, &lsquo;<samp>-</samp>&rsquo; &ndash; subtraction, &lsquo;<samp>*</samp>&rsquo; &ndash; multiplication, &lsquo;<samp>/</samp>&rsquo; &ndash; division, &lsquo;<samp>^</samp>&rsquo; &ndash; integer power. Also there are logical &ldquo;operators&rdquo;: &lsquo;<samp>&lt;</samp>&rsquo; &ndash; true if x&lt;y, &lsquo;<samp>&gt;</samp>&rsquo; &ndash; true if x&gt;y, &lsquo;<samp>=</samp>&rsquo; &ndash; true if x=y, &lsquo;<samp>&amp;</samp>&rsquo; &ndash; true if x and y both nonzero, &lsquo;<samp>|</samp>&rsquo; &ndash; true if x or y nonzero. These logical operators have lowest priority and return 1 if true or 0 if false.
+</p>
+<p>The basic functions are: &lsquo;<samp>sqrt(x)</samp>&rsquo; &ndash; square root of <var>x</var>, &lsquo;<samp>pow(x,y)</samp>&rsquo; &ndash; power <var>x</var> in <var>y</var>, &lsquo;<samp>ln(x)</samp>&rsquo; &ndash; natural logarithm of <var>x</var>, &lsquo;<samp>lg(x)</samp>&rsquo; &ndash; decimal logarithm of <var>x</var>, &lsquo;<samp>log(a,x)</samp>&rsquo; &ndash; logarithm base <var>a</var> of <var>x</var>, &lsquo;<samp>abs(x)</samp>&rsquo; &ndash; absolute value of <var>x</var>, &lsquo;<samp>sign(x)</samp>&rsquo; &ndash; sign of <var>x</var>, &lsquo;<samp>mod(x,y)</samp>&rsquo; &ndash; x modulo y, &lsquo;<samp>step(x)</samp>&rsquo; &ndash; step function, &lsquo;<samp>int(x)</samp>&rsquo; &ndash; integer part of <var>x</var>, &lsquo;<samp>rnd</samp>&rsquo; &ndash; random number, &lsquo;<samp>pi</samp>&rsquo; &ndash; number
+&pi; = 3.1415926&hellip;</p>
+
+<p>Trigonometric functions are: &lsquo;<samp>sin(x)</samp>&rsquo;, &lsquo;<samp>cos(x)</samp>&rsquo;, &lsquo;<samp>tan(x)</samp>&rsquo; (or &lsquo;<samp>tg(x)</samp>&rsquo;). Inverse trigonometric functions are: &lsquo;<samp>asin(x)</samp>&rsquo;, &lsquo;<samp>acos(x)</samp>&rsquo;, &lsquo;<samp>atan(x)</samp>&rsquo;. Hyperbolic functions are: &lsquo;<samp>sinh(x)</samp>&rsquo; (or &lsquo;<samp>sh(x)</samp>&rsquo;), &lsquo;<samp>cosh(x)</samp>&rsquo; (or &lsquo;<samp>ch(x)</samp>&rsquo;), &lsquo;<samp>tanh(x)</samp>&rsquo; (or &lsquo;<samp>th(x)</samp>&rsquo;). Inverse hyperbolic functions are: &lsquo;<samp>asinh(x)</samp>&rsquo;, &lsquo;<samp>acosh(x)</samp>&rsquo;, &lsquo;<samp>atanh(x)</samp>&rsquo;.
+</p>
+<p>There are a set of special functions: &lsquo;<samp>gamma(x)</samp>&rsquo; &ndash; Gamma function &Gamma;(x) = &int;<sub>0</sub><sup>&infin;</sup> t<sup>x-1</sup> exp(-t) dt, &lsquo;<samp>psi(x)</samp>&rsquo; &ndash; digamma function &psi;(x) = &Gamma;&prime;(x)/&Gamma;(x) for x&ne;0, &lsquo;<samp>ai(x)</samp>&rsquo; &ndash; Airy function Ai(x), &lsquo;<samp>bi(x)</samp>&rsquo; &ndash; Airy function Bi(x), &lsquo;<samp>cl(x)</samp>&rsquo; &ndash; Clausen function, &lsquo;<samp>li2(x)</samp>&rsquo; (or &lsquo;<samp>dilog(x)</samp>&rsquo;) &ndash; dilogarithm Li<sub>2</sub>(x) = -&real;&int;<sub>0</sub><sup>x</sup>ds log(1-s)/s, &lsquo;<samp>sinc(x)</samp>&rsquo; &ndash; compute sinc(x) = sin(&pi;x)/(&pi;x) for any value of x, &lsquo;<samp>zeta(x)</samp>&rsquo; &ndash; Riemann zeta function &zeta;(s) = &sum;<sub>k=1</sub><sup>&infin;</sup>k<sup>-s</sup> for arbitrary s&ne;1, &lsquo;<samp>eta(x)</samp>&rsquo; &ndash; eta function &eta;(s) = (1 - 2<sup>1-s</sup>)&zeta;(s) for arbitrary s, &lsquo;<samp>lp(l,x)</samp>&rsquo; &ndash; Legendre polynomial P<sub>l</sub>(x), (|x|&le;1, l&ge;0), &lsquo;<samp>w0(x)</samp>&rsquo; &ndash; principal branch of the Lambert W function, &lsquo;<samp>w1(x)</samp>&rsquo; &ndash; principal branch of the Lambert W function. Function W(x) is defined to be solution of the equation: W exp(W) = x. </p>
+
+<p>The exponent integrals are: &lsquo;<samp>ci(x)</samp>&rsquo; &ndash; Cosine integral Ci(x) = &int;<sub>0</sub><sup>x</sup>dt cos(t)/t, &lsquo;<samp>si(x)</samp>&rsquo; &ndash; Sine integral Si(x) = &int;<sub>0</sub><sup>x</sup>dt sin(t)/t, &lsquo;<samp>erf(x)</samp>&rsquo; &ndash; error function erf(x) = (2/&radic;&pi;) &int;<sub>0</sub><sup>x</sup>dt exp(-t<sup>2</sup>) , &lsquo;<samp>ei(x)</samp>&rsquo; &ndash; exponential integral Ei(x) = -PV(&int;<sub>-x</sub><sup>&infin;</sup>dt exp(-t)/t) (where PV denotes the principal value of the integral), &lsquo;<samp>e1(x)</samp>&rsquo; &ndash; exponential integral E<sub>1</sub>(x) = &real;&int;<sub>1</sub><sup>&infin;</sup>dt exp(-xt)/t, &lsquo;<samp>e2(x)</samp>&rsquo; &ndash; exponential integral E<sub>2</sub>(x) = &real;&int;<sub>1</sub>&infin;</sup>dt exp(-xt)/t<sup>2</sup>, &lsquo;<samp>ei3(x)</samp>&rsquo; &ndash; exponential integral Ei<sub>3</sub>(x) = &int;<sub>0</sub><sup>x</sup>dt exp(-t<sup>3</sup>) for x&ge;0. </p>
+
+<p>Bessel functions are: &lsquo;<samp>j(nu,x)</samp>&rsquo; &ndash; regular cylindrical Bessel function of fractional order <em>nu</em>, &lsquo;<samp>y(nu,x)</samp>&rsquo; &ndash; irregular cylindrical Bessel function of fractional order <em>nu</em>, &lsquo;<samp>i(nu,x)</samp>&rsquo; &ndash; regular modified Bessel function of fractional order <em>nu</em>, &lsquo;<samp>k(nu,x)</samp>&rsquo; &ndash; irregular modified Bessel function of fractional order <em>nu</em>. </p>
+
+<p>Elliptic integrals are: &lsquo;<samp>ee(k)</samp>&rsquo; &ndash; complete elliptic integral is denoted by E(k) = E(&pi;/2,k), &lsquo;<samp>ek(k)</samp>&rsquo; &ndash; complete elliptic integral is denoted by K(k) = F(&pi;/2,k), &lsquo;<samp>e(phi,k)</samp>&rsquo; &ndash; elliptic integral E(&phi;,k) = &int;<sub>0</sub><sup>&phi;</sup>dt &radic;(1 - k<sup>2</sup>sin<sup>2</sup>(t)), &lsquo;<samp>f(phi,k)</samp>&rsquo; &ndash; elliptic integral F(&phi;,k) = &int;<sub>0</sub><sup>&phi;</sup>dt 1/&radic;(1 - k<sup>2</sup>sin<sup>2</sup>(t))</p>
+<p>Jacobi elliptic functions are: &lsquo;<samp>sn(u,m)</samp>&rsquo;, &lsquo;<samp>cn(u,m)</samp>&rsquo;, &lsquo;<samp>dn(u,m)</samp>&rsquo;, &lsquo;<samp>sc(u,m)</samp>&rsquo;, &lsquo;<samp>sd(u,m)</samp>&rsquo;, &lsquo;<samp>ns(u,m)</samp>&rsquo;, &lsquo;<samp>cs(u,m)</samp>&rsquo;, &lsquo;<samp>cd(u,m)</samp>&rsquo;, &lsquo;<samp>nc(u,m)</samp>&rsquo;, &lsquo;<samp>ds(u,m)</samp>&rsquo;, &lsquo;<samp>dc(u,m)</samp>&rsquo;, &lsquo;<samp>nd(u,m)</samp>&rsquo;.
+</p>
+<p>Note, some of these functions are unavailable if NO_GSL is defined during compilation of MathGL library. 
+</p>
+<p>There is no difference between lower or upper case in formulas. If argument value lie outside the range of function definition then function returns NaN.
+</p>
+
+
+<hr size="6">
+<a name="FAQ"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Textual-formulas" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Interfaces" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="FAQ-1"></a>
+<h2 class="section">1.5 FAQ</h2>
+
+<dl compact="compact">
+<dt> <strong>The plot does not appear</strong></dt>
+<dd><p>Check that points of the plot lie  inside the bounding box and resize the bounding box using <code>Axis()</code> function. Check that the data have correct dimensions for selected type of plot. Be sure that  <code>Finish()</code> is called after the plotting functions (or be sure that the plot is saved to a file). Sometimes the light reflection from flat surfaces (like, <code>Dens()</code>) can look as if the plot were absent.
+</p>
+</dd>
+<dt> <strong>I can not find some special kind of plot.</strong></dt>
+<dd><p>Most &ldquo;new&rdquo; types of plots can be created by using the existing drawing functions. For example, the surface of curve rotation can be created by a special function <code>Torus()</code>, or as a parametrically specified surface by <code>Surf()</code>. See also, <a href="mathgl_en_2.html#Hints">Hints</a> and <a href="mathgl_en_2.html#Examples">MathGL examples</a> of MathGL. If you can not find a specific type of plot, please e-mail me and this plot will appear in the next version of MathGL library.
+</p>
+</dd>
+<dt> <strong>Should I know some graphical libraries (like OpenGL) before using the MathGL library?</strong></dt>
+<dd><p>No. The MathGL library is self-contained and does not require the knowledge of external libraries.
+</p>
+</dd>
+<dt> <strong>In which language is the library written? For which languages does it have an interface?</strong></dt>
+<dd><p>The core of the MathGL library is written in C++. But there are interfaces for: pure C, Fortran, Pascal, Forth, and its own command language MGL. Also there is a large set of interpreted languages, which are supported (Python, Java,  ALLEGROCL, CHICKEN, Lisp, CFFI, C#, Guile, Lua, Modula 3, Mzscheme, Ocaml, Octave, Perl, PHP, Pike, R, Ruby, Tcl). These interfaces are written using SWIG (both pure C functions and classes) but only the interface for Python and Octave is included in the autoconf/automake script. The reason is that I don&lt;/samp&gt;&amp;rsquo;t know any other interpreted languages :(. Note that most other languages can use (link to) the pure C functions.
+</p>
+</dd>
+<dt> <strong>How can I use MathGL with Fortran?</strong></dt>
+<dd><p>You can use MathGL as is with <code>gfortran</code> because it uses by default the AT&amp;T notation for external functions. For other compilers (like Visual Fortran) you have to switch on the AT&amp;T notation manually. The AT&amp;T notation requires that the symbol &lsquo;<samp>_</samp>&rsquo; is added at the end of each function name, function argument(s) is passed by pointers and the string length(s) is passed at the end of the argument list. For example:
+</p>
+<p><em>C function</em> &ndash; <code>void mgl_fplot(HMGL graph, const char *fy, const char *stl, int n);</code>
+</p>
+<p><em>AT&amp;T function</em> &ndash; <code>void mgl_fplot_(uintptr_t *graph, const char *fy, const char *stl, int *n, int ly, int ls);</code>
+</p>
+</dd>
+<dt> <strong>I have a class Foo and a drawing method Foo::draw(mglGraph *gr). How I can use it in FLTK or GLUT window?</strong></dt>
+<dd><p>The member-functions of classes have a hidden parameter (the pointer to a class instance) in C++. So, their direct usage is impossible. The solution is to write an interface function:
+</p><table><tr><td>&nbsp;</td><td><pre class="example">int foo_draw(mglGraph *gr, void *par)
+{   ((Foo *)foo)-&gt;draw(gr);    }
+</pre></td></tr></table>
+<p>and to use it in the call of <code>Window()</code> function:
+</p><table><tr><td>&nbsp;</td><td><pre class="example">gr-&gt;Window(argc,argv,foo_draw,&quot;Title&quot;,this);
+</pre></td></tr></table>
+
+<p>Alternatively you can inherit your class from <code>mglDraw</code> class and use the functions like <code>gr-&gt;Window(argc, argv, foo, &quot;Title&quot;);</code>.
+</p>
+</dd>
+<dt> <strong>How can I print in Russian/Spanish/Arabic/Japanese, and so on?</strong></dt>
+<dd><p>The standard way is to use Unicode encoding for the text output. But the MathGL library also has interface for 8-bit (char *) strings with internal conversion to Unicode. This conversion depends on the current locale OS. You may change it by <code>setlocale()</code> function. For example, for Russian text in CP1251 encoding you may use <code>setlocale(LC_CTYPE, &quot;ru_RU.cp1251&quot;);</code> (under MS Windows the name of locale may differ &ndash; <code>setlocale(LC_CTYPE, &quot;russian_russia.1251&quot;)</code>). I strongly recommend not to use the constant <code>LC_ALL</code> in the conversion. Since it also changes the number format, it may lead to mistakes in formula writing and reading of the text in data files. For example, the program will await a &lsquo;<samp>,</samp>&rsquo; as a decimal point but the user will enter &lsquo;<samp>.</samp>&rsquo;.
+</p>
+</dd>
+<dt> <strong>How can I exclude a point or a region of plot from the drawing?</strong></dt>
+<dd><p>There are 3 general ways. First, the point with <code>NAN</code> value as one of the coordinates will never be plotted. Second, special variables <var>CutMin</var>, <var>CutMax</var> or function <code>CutOff</code>() define the condition when the points should be omitted (see section <a href="mathgl_en_3.html#Cutting">Cutting</a>). Last, you may change the transparency of a part of the plot by the help of functions <code>SurfA()</code>, <code>Surf3A()</code> (see section <a href="mathgl_en_3.html#Dual-plotting">Dual plotting</a>). In this last case the transparency is switched on smoothly.
+</p>
+</dd>
+<dt> <strong>I use VisualStudio, CBuilder or some other compiler (not MinGW/gcc). How can I link the MathGL library?</strong></dt>
+<dd><p>In version 1.10, you can use the header file <code>#include &lt;mgl/mgl_w.h&gt;</code> which contains wrapper C++ classes, which should be acceptable for any compiler. Note, that wrapper classes are <strong>incompatible</strong> with classes in usual headers and you should use only one of them (wrapper or usual)! However, I recommend to use the usual headers if you use GNU compilers (like MinGW).
+</p>
+
+</dd>
+<dt> <strong>How I can build MathGL under Windows?</strong></dt>
+<dd><p>The simplest way is using the combination CMake+MinGW. Also you need some extra libraries like GSL, PNG, JPEG and so on. All of them can be found at <a href="http://gnuwin32.sourceforge.net/packages.html">http://gnuwin32.sourceforge.net/packages.html</a>. After installing all components, just run CMake configurator and make the MathGL itself.
+</p>
+</dd>
+<dt> <strong>How I can create FLTK/GLUT/Qt window in parallel with calculation?</strong></dt>
+<dd><p>You should create a separate thread for processing window messages. The cross-platform way is using the <code>pthread</code> library. You can update the data by calling <code>mglGraphFLTK::Update()</code> function. The code can look like this:
+</p><pre class="verbatim">//-----------------------------------------------------------------------------
+#include &lt;mgl/mgl_fltk.h&gt;
+#include &lt;pthread.h&gt;
+#include &lt;unistd.h&gt;
+
+mglPoint pnt;  // some global variable for changable data
+//-----------------------------------------------------------------------------
+int sample(mglGraph *gr, void *)
+{
+  gr-&gt;Box();  gr-&gt;Line(mglPoint(),pnt,&quot;Ar2&quot;); // just draw a vector
+  return 0;
+}
+//-----------------------------------------------------------------------------
+void *mgl_fltk_tmp(void *)      {       mglFlRun();     return 0;       }
+int main (int argc, char ** argv)
+{
+  mglGraphFLTK gr;
+  gr.Window(argc,argv,sample,&quot;test&quot;);  // create window
+  static pthread_t tmp;
+  pthread_create(&amp;tmp, 0, mgl_fltk_tmp, 0);
+  pthread_detach(tmp);    // run window handling in the separate thread
+  for(int i=0;i&lt;10;i++)   // do calculation
+  {
+    sleep(1);             // which can be very long
+    pnt = mglPoint(2*mgl_rnd()-1,2*mgl_rnd()-1);
+    gr.Update();          // update window
+  }
+  return 0;   // finish calculations and close the window
+}
+//-----------------------------------------------------------------------------
+</pre>
+
+</dd>
+<dt> <strong>How many people write this library?</strong></dt>
+<dd><p>Most of the library was written by one person. This is a result of nearly a year of work (mostly in the evening and on holidays): I spent half a year to write the kernel and half a year to a year on extending, improving the library and writing documentation. This process continues now :). The autoconf/automake script was written mostly by D.Kulagin, and the export to IDTF was written mostly by M.Vidassov.
+</p>
+</dd>
+<dt> <strong>How can I display a bitmap on the figure?</strong></dt>
+<dd><p>You can import data into a <code>mglData</code> instance and display it by <code>Dens()</code> function. For example, for black-and-white bitmap you can use the code: <code>mglData bmp; bmp.Import(&quot;fname.png&quot;,&quot;wk&quot;); gr-&gt;Dens(bmp,&quot;wk&quot;);</code>.
+</p>
+</dd>
+<dt> <strong>How can I use MathGL in Qt, FLTK, wxWidgets etc.?</strong></dt>
+<dd><p>There are special classes (widgets) for these libraries: QMathGL for Qt, Fl_MathGL for FLTK and so on. If you don&lt;/samp&gt;&amp;rsquo;t find the appropriate class then you can create your own widget that displays a bitmap using mglGraphAB::GetBits().
+</p>
+</dd>
+<dt> <strong>How can I create U3D file (make 3D in PDF)?</strong></dt>
+<dd><p>There are 2 steps: first you should create IDTF file, and later convert it to U3D. You can use <a href="http://sourceforge.net/project/showfiles.php?group_id=152187&amp;package_id=300628">U3D tools</a> for converting IDTF file to U3D. It needs <a href="http://libharu.org">libharu</a> 2.1.0 or later. For installation use <code>./bootstrap, ./configure, make, sudo make install</code>. It provides  IDTFConverter program for converting text files *.idtf to binary files *.u3d. The latter can be included into PDF.
+</p>
+</dd>
+<dt> <strong>How I can change the font family?</strong></dt>
+<dd><p>First, you should download new font files from <a href="http://mathgl.sourceforge.net/download.html">here</a> or from <a href="http://sourceforge.net/project/showfiles.php?group_id=152187&amp;package_id=267177">here</a>. Next, you should load the font files into mglGraph class instance <var>gr</var> by the following command: <code>gr-&gt;SetFont(new mglFont(fontname,path));</code>. Here <var>fontname</var> is the base font name like &lsquo;<samp>STIX</samp>&rsquo; and <var>path</var> sets the location of font files. Use <code>gr-&gt;SetFont(NULL);</code> to start using the default font.
+</p>
+</dd>
+<dt> <strong>How can I draw tick out of a bounding box?</strong></dt>
+<dd><p>Just set a negative value for <var>TickLen</var>. For example, use <code>gr-&gt;SetTickLen(-0.1);</code>.
+</p>
+</dd>
+</dl>
+
+<hr size="6">
+<a name="Interfaces"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#FAQ" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#C-interface" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Interfaces-1"></a>
+<h2 class="section">1.6 Interfaces</h2>
+
+<p>The MathGL library has interfaces for a set of languages. Most of them are based on the C interface via SWIG tool. There are Python, Java, Octave, Lisp, C#, Guile, Lua, Modula 3, Ocaml, Perl, PHP, Pike, R, Ruby, and Tcl interfaces. Also there is a Fortran interface which has a similar set of functions, but slightly different types of arguments (integers instead of pointers). These functions are marked as [C function].
+Some of the languages listed above support classes (like Python). For them, a special wrapper was written. These classes and functions are marked as (Python).
+Finally, a special command language MGL was written for a faster access to C++ plotting functions. Corresponding scripts can be executed separately (by UDAV, mgl2png, mgl2eps and so on) or from the C++ code (see section <a href="mathgl_en_7.html#mglParse-class">mglParse class</a>). These commands are described in <a href="mathgl_en_8.html#MGL-interface">MGL language</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#C-interface">1.6.1 C interface</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Python-interface">1.6.2 Python interface</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="C-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Interfaces" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Python-interface" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Interfaces" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="C-interface-1"></a>
+<h3 class="subsection">1.6.1 C interface</h3>
+
+<p>The C interface is a base for many other interfaces. It contains the pure C functions for most of the methods of MathGL classes. In distinction to C++ classes, C functions must have an argument HMGL (for graphics) and/or HMDT (for data arrays), which specifies the object for drawing or manipulating (changing). So, firstly, the user has to create this object by the function <code>mgl_create_*()</code> and has to delete it after the use by function <code>mgl_delete_*()</code>.
+</p>
+<p>All C functions are described in the header file <code>#include &lt;mgl/mgl_c.h&gt;</code> and use variables of the following types:
+</p><ul>
+<li> 
+<code>HMGL</code> &mdash; Pointer to class <code>mglGraph</code> (see section <a href="mathgl_en_3.html#MathGL-core">MathGL core</a>).
+</li><li> 
+<code>HMDT</code> &mdash; Pointer to class <code>mglData</code> (see section <a href="mathgl_en_6.html#mglData-class">mglData class</a>).
+</li><li> 
+<code>HMPR</code> &mdash; Pointer to class <code>mglParse</code> (see section <a href="mathgl_en_7.html#mglParse-class">mglParse class</a>)..
+</li></ul>
+<p>These variables contain identifiers for graphics drawing objects and for the data objects. 
+</p>
+<p>Fortran functions/subroutines have the same names as C functions. However, there is a difference. Variable of type <code>HMGL, HMDT</code> must be an integer with sufficient size (<code>integer*4</code> in the 32-bit operating system or <code>integer*8</code> in the 64-bit operating system). All C functions are subroutines in Fortran, which are called by operator <code>call</code>. The exceptions are functions, which return variables of types <code>HMGL</code> or <code>HMDT</code>. These functions should be declared as integer in Fortran code. Also, one should keep in mind that strings in Fortran are denoted by <code>&lt;/samp&gt;&amp;rsquo;</code> symbol, not the <code>&quot;</code> symbol.
+</p>
+<p><strong>Create and delete objects</strong>
+</p>
+<ul>
+<li> Functions for non-visual &ldquo;grapher&rdquo; creation:
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fgl"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_gl</b><i> ()</i></dt>
+<dd><p>Create the instance of class mglGraphGL.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fzb"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_zb</b><i> (<code>int</code> width, <code>int</code> height)</i></dt>
+<dd><p>Create the instance of class mglGraphZB with specified sizes.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fps"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_ps</b><i> (<code>int</code> width, <code>int</code> height)</i></dt>
+<dd><p>Create the instance of class mglGraphPS with specified sizes.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fidtf"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_idtf</b><i> ()</i></dt>
+<dd><p>Create the instance of class mglGraphIDTF.
+</p></dd></dl>
+
+</li><li> Function for windowed &ldquo;grapher&rdquo; creation:
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fglut"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_glut</b><i> (<code>int (*</code>draw<code>)(HMGL gr, void *p)</code>, <code>const char *</code>title, <code>void *</code>par)</i></dt>
+<dd><p>Create the instance of class mglGraphGLUT and the connected GLUT window. Only one GLUT window can be opened at once. Argument description can be found in <a href="mathgl_en_4.html#mglGraphAB-class">mglGraphAB class</a>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005ffltk"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_fltk</b><i> (<code>int (*</code>draw<code>)(HMGL gr, void *p)</code>, <code>const char *</code>title, <code>void *</code>par)</i></dt>
+<dd><p>Create the instance of class mglGraphFLTK and the connected FLTK window. Several windows can be opened at the same time. However user must call <code>mgl_fltk_run()</code> function to start the message handling cycle. Argument description can be found in <a href="mathgl_en_4.html#mglGraphAB-class">mglGraphAB class</a>. Note that <var>draw</var> can be <code>NULL</code> for displaying static bitmaps only (no animation or slides).
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fqt"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_qt</b><i> (<code>int (*</code>draw<code>)(HMGL gr, void *p)</code>, <code>const char *</code>title, <code>void *</code>par)</i></dt>
+<dd><p>Create the instance of class mglGraphQT and the connected Qt window. Several windows can be opened at the same time. However user must call <code>mgl_qt_run()</code> function to start the message handling cycle. Arguments description can be found in <a href="mathgl_en_4.html#mglGraphAB-class">mglGraphAB class</a>. Note, that <var>draw</var> can be <code>NULL</code> for displaying static bitmaps only (no animation or slides).
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005ffltk_005frun"></a><u>C function:</u> <code>void</code> <b>mgl_fltk_run</b><i> ()</i></dt>
+<dd><p>Start FLTK message handling cycle. A normal program will end main() function with <code>return mgl_fltk_run();</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005ffltk_005fthread"></a><u>C function:</u> <code>void</code> <b>mgl_fltk_thread</b><i> ()</i></dt>
+<dd><p>Start FLTK message handling cycle. In distinction to <code>mgl_fltk_run()</code> the loop is started in a separate thread, so that program continues immediately.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fqt_005frun"></a><u>C function:</u> <code>void</code> <b>mgl_qt_run</b><i> ()</i></dt>
+<dd><p>Start Qt message handling cycle. A normal program will end main() function with <code>return mgl_qt_run();</code>. Alternatively, the user may setup Qt application by direct Qt function calls.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fqt_005fthread"></a><u>C function:</u> <code>void</code> <b>mgl_qt_thread</b><i> ()</i></dt>
+<dd><p>Start Qt message handling cycle. In distinction to <code>mgl_qt_run()</code> the loop is started in separate thread so that the program continues immediately.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fupdate"></a><u>C function:</u> <code>void</code> <b>mgl_update</b><i> (<code>HMGL</code> graph)</i></dt>
+<dd><p>Manually update contents of the window.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fset_005fshow_005fmouse_005fpos"></a><u>C function:</u> <code>void</code> <b>mgl_set_show_mouse_pos</b><i> (<code>HMGL</code> graph, <code>int</code> enable)</i></dt>
+<dd><p>Switch to show or not in the widget the last mouse click position.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fget_005flast_005fmouse_005fpos"></a><u>C function:</u> <code>void</code> <b>mgl_get_last_mouse_pos</b><i> (<code>HMGL</code> graph, <code>float *</code>x, <code>float *</code>y, <code>float *</code>z)</i></dt>
+<dd><p>Last position of mouse click.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcalc_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_calc_xyz</b><i> (<code>HMGL</code> graph, <code>int</code> xs, <code>int</code> ys, <code>float *</code>x, <code>float *</code>y, <code>float *</code>z)</i></dt>
+<dd><p>Calculate 3D coordinate {x,y,z} for screen point {xs,ys}. At this moment, it ignores perspective and transformation formulas (curvilinear coordinates). The calculations are done for the last used InPlot (see section <a href="mathgl_en_3.html#Transformation-matrix">Transformation matrix</a>).
+</p></dd></dl>
+
+
+</li><li> Functions for data creation:
+<dl>
+<dt><a name="index-mgl_005fcreate_005fdata"></a><u>C function:</u> <code>HMDT</code> <b>mgl_create_data</b><i> ()</i></dt>
+<dd><p>Create a simple instance of class mglData.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fdata_005fsize"></a><u>C function:</u> <code>HMDT</code> <b>mgl_create_data_size</b><i> (<code>int</code> nx, <code>int</code> ny, <code>int</code> nz)</i></dt>
+<dd><p>Create an instance of class mglData with specified sizes.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fdata_005ffile"></a><u>C function:</u> <code>HMDT</code> <b>mgl_create_data_file</b><i> (<code>const char *</code>fname)</i></dt>
+<dd><p>Create an instance of class mglData and fill it by data from text file.
+</p></dd></dl>
+
+</li><li> Each created object <strong>must</strong> be deleted after usage by functions:
+<dl>
+<dt><a name="index-mgl_005fdelete_005fgraph"></a><u>C function:</u> <code>void</code> <b>mgl_delete_graph</b><i> (<code>HMGL</code> graph)</i></dt>
+<dd><p>Delete the instance of a class. Must be used after plotting for every created graphical object.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fdelete_005fdata"></a><u>C function:</u> <code>void</code> <b>mgl_delete_data</b><i> (<code>HMDT</code> dat)</i></dt>
+<dd><p>Delete the instance of a class. Must be used after the use of every created data object.
+</p></dd></dl>
+</li></ul>
+
+<hr size="6">
+<a name="Python-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#C-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Thanks" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Interfaces" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Python-interface-1"></a>
+<h3 class="subsection">1.6.2 Python interface</h3>
+
+<p>MathGL provides the interface to a set of languages via SWIG library. Some of these languages support classes. The typical example is Python &ndash; which is named in this chapter&lt;/samp&gt;&amp;rsquo;s title.
+</p>
+<p>To use Python classes just execute &lsquo;<samp>import mathgl</samp>&rsquo;. The simplest example will be:
+</p><pre class="verbatim">import mathgl
+a=mathgl.mglGraph()
+a.Box()
+a.WritePNG(&lt;/samp&gt;&amp;rsquo;test.png&lt;/samp&gt;&amp;rsquo;)
+</pre><p>Alternatively you can import all classes from <code>mathgl</code> module and easily access MathGL classes like this:
+</p><pre class="verbatim">from mathgl import *
+a=mglGraph()
+a.Box()
+a.WritePNG(&lt;/samp&gt;&amp;rsquo;test.png&lt;/samp&gt;&amp;rsquo;)
+</pre><p>This becomes useful if you create many <code>mglData</code> objects, for example.
+</p>
+<p>There are 2 classes in Python interface:
+</p><ul>
+<li> <code>mglGraph</code>
+&ndash; provide practically the same functionality as C++ class <code>mglGraph</code> (see section <a href="mathgl_en_3.html#MathGL-core">MathGL core</a>). But it is not an abstract class and it allows one to select at construction stage which plotter (ZB or PS and so on) will be used.
+</li><li> <code>mglData</code>
+&ndash; is exactly the same class as C++ <code>mglData</code> (see section <a href="mathgl_en_6.html#mglData-class">mglData class</a>), but an additional feature to access data values is added. You can use a construct like this: <code>dat[i]=sth;</code> or <code>sth=dat[i]</code> where flat representation of data is used (i.e., <var>i</var> can be in range 0...nx*nx*nz-1). You can also import NumPy arrays as input arguments: <code>mgl_dat = mglData(numpy_dat);</code>.
+
+<p>To use Python classes just execute &lsquo;<samp>import mathgl</samp>&rsquo;. The simplest example will be:
+</p><pre class="verbatim">import mathgl
+a=mathgl.mglGraph()
+a.Box()
+a.WritePNG(&lt;/samp&gt;&amp;rsquo;test.png&lt;/samp&gt;&amp;rsquo;)
+</pre><p>Alternatively, you can import all the classes from <code>mathgl</code> module and easily access MathGL classes: 
+</p><pre class="verbatim">from mathgl import *
+a=mglGraph()
+a.Box()
+a.WritePNG(&lt;/samp&gt;&amp;rsquo;test.png&lt;/samp&gt;&amp;rsquo;)
+</pre><p>This is useful if you create many <code>mglData</code> objects, for example.
+</p>
+<p>There are 2 classes in Python interface:
+</p><ul>
+<li> <code>mglGraph</code>
+&ndash; provide practically the same functionality as C++ class <code>mglGraph</code> (see section <a href="mathgl_en_3.html#MathGL-core">MathGL core</a>). But it is not an abstract class and it allows one to select at the construction stage which plotter (ZB or PS and so on) will be used.
+</li><li> <code>mglData</code>
+&ndash; is exactly the same class as C++ <code>mglData</code> (see section <a href="mathgl_en_6.html#mglData-class">mglData class</a>), but an additional feature to access data values is added. You can use a construct like this: <code>dat[i]=sth;</code> or <code>sth=dat[i]</code> where flat representation of data is used (i.e., <var>i</var> can be in range 0...nx*nx*nz-1).
+</li></ul>
+
+<p>There is one main difference from C++ classes &ndash; Python class <code>mglGraph</code> does not have variables (options). All the corresponding features are moved to methods.
+The core of MathGL Python class is the <strong>mglGraph</strong> class. It contains a lot of plotting functions for 1D, 2D and 3D plots. So most of the sections describe its methods. Its constructor has the following arguments:
+</p>
+<dl>
+<dt><a name="index--on-mglGraph-_0028Python_0029"></a><u>Constructor on mglGraph (Python):</u> <b><code></code></b><i> mglGraph (<code>int</code> kind=<code>0</code>, <code>int</code> width=<code>600</code>, <code>int</code> height=<code>400</code>)</i></dt>
+<dd><p>Create the instance of class mglGraph with specified sizes <var>width</var> and <var>height</var>. Parameter <var>type</var> may have following values: &lsquo;<samp>0</samp>&rsquo; &ndash; use <code>mglGraphZB</code> plotter (default), &lsquo;<samp>1</samp>&rsquo; &ndash; use <code>mglGraphPS</code> plotter, &lsquo;<samp>2</samp>&rsquo; &ndash; use <code>mglGraphGL</code> plotter, &lsquo;<samp>3</samp>&rsquo; &ndash; use <code>mglGraphIDTF</code> plotter.
+</p></dd></dl>
+</li></ul>
+
+<p>There is one difference from C++ classes &ndash; Python class <code>mglGraph</code> does not have variables (options). All the corresponding features are moved to methods. 
+The core of MathGL Python class is the <strong>mglGraph</strong> class. It contains a lot of plotting functions for 1D, 2D and 3D plots. So most of the sections describe its methods. Its constructor has the following arguments:
+</p>
+<dl>
+<dt><a name="index--on-mglGraph-_0028Python_0029-1"></a><u>Constructor on mglGraph (Python):</u> <b><code></code></b><i> mglGraph (<code>int</code> kind=<code>0</code>, <code>int</code> width=<code>600</code>, <code>int</code> height=<code>400</code>)</i></dt>
+<dd><p>Create the instance of class mglGraph with specified sizes <var>width</var> and <var>height</var>. Parameter <var>type</var> may have following values: &lsquo;<samp>0</samp>&rsquo; &ndash; use <code>mglGraphZB</code> plotter (default), &lsquo;<samp>1</samp>&rsquo; &ndash; use <code>mglGraphPS</code> plotter, &lsquo;<samp>2</samp>&rsquo; &ndash; use <code>mglGraphGL</code> plotter, &lsquo;<samp>3</samp>&rsquo; &ndash; use <code>mglGraphIDTF</code> plotter.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Thanks"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Python-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Thanks-1"></a>
+<h2 class="section">1.7 Thanks</h2>
+
+<ul>
+<li>
+My special thanks to Marina Balakina for the patience during the writing of this library and for the help in documentation writing and spelling.
+</li><li>
+I&lt;/samp&gt;&amp;rsquo;m thankful to D. Kulagin and S.M. Plis for making Debian packages.
+</li><li>
+I&lt;/samp&gt;&amp;rsquo;m thankful to M. Vidassov for the help in handling solid UTF-8 fonts.
+</li><li>
+I&lt;/samp&gt;&amp;rsquo;m thankful to N. Troickiy and V. Lipatov for making RPM packages.
+</li><li>
+I&lt;/samp&gt;&amp;rsquo;m thankful to S. Skobelev, A. Korotkevich, V. Onuchin, S.M. Plis, R. Kiselev, A. Ivanov, M. Vidiassov and V. Lipatov for fruitful comments.
+</li></ul>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_10.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_10.html
new file mode 100644
index 0000000..c673ff5
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_10.html
@@ -0,0 +1,169 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: A. TeX-like symbols</title>
+
+<meta name="description" content="MathGL 1.11: A. TeX-like symbols">
+<meta name="keywords" content="MathGL 1.11: A. TeX-like symbols">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="TeX_002dlike-symbols"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_9.html#Stereo-image-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TeX_002dlike-symbols-1"></a>
+<h1 class="appendix">A. TeX-like symbols</h1>
+<p>The full list of TeX-like commands recognizable by MathGL is shown below. If command is not recognized then it will be printed as is by ommitting &lsquo;<samp>\</samp>&rsquo; symbol. For example, &lsquo;<samp>\#</samp>&rsquo; produce &ldquo;#&rdquo;, &lsquo;<samp>\\</samp>&rsquo; produce &ldquo;\&rdquo;, &lsquo;<samp>\qq</samp>&rsquo; produce &ldquo;qq&rdquo;.
+</p>
+<p><strong>Change case</strong>: _, ^, @.
+</p>
+<p><strong>Text style</strong>: \big, \b, \textbf, \i, \textit, \bi, \r, \textrm, \a, \overline, \u, \underline, \w, \wire, #, \color[wkrgbcymhRGBCYMHWlenupqLENUPQ]
+</p>
+<p><strong>Roots</strong>: \sqrt, \sqrt3, \sqrt4
+</p>
+<p><strong>Fractions</strong>: \frac, \stack, \overset, \underset, \stackr, \stackl
+</p>
+<p><strong>Accents</strong>: \hat, \tilde, \dot, \ddot, \dddot, \ddddot, \acute, \check, \grave, \vec, \bar, \breve
+</p>
+<p><strong>Special symbols</strong>:
+</p>
+<p>\# (#), \% (%), \&amp; (&amp;), \^ (^).
+</p>
+<p>\AA (Å), \AE (Æ), \APLboxquestion (⍰), \APLboxupcaret (⍓), \APLnotbackslash (⍀), \APLnotslash (⌿), \Alpha (Α), \And (&amp;), \Angstrom (Å), \Barv (⫧), \BbbC (ℂ), \BbbGamma (ℾ), \BbbH (ℍ), \BbbN (ℕ), \BbbP (ℙ), \BbbPi (ℿ), \BbbQ (ℚ), \BbbR (ℝ), \BbbZ (ℤ), \Bbbgamma (ℽ), \Bbbpi (ℼ), \Bbbsum (⅀), \Beta (Β), \Bumpeq (≎), \Cap (⋒), \Chi (Χ), \Colon (∷), \Coloneq (⩴), \Cup (⋓), \DDownarrow (⟱), \DH (Ð), \DJ (Đ), \DashV (⫥), \DashVDash (⟚), \Dashv (⫤), \Ddownarrow (⤋), \Delta (Δ), \Digamma (Ϝ), \Doteq (≑), \Downarrow (⇓), \Epsilon (Ε), \Equiv (≣), \Eta (Η), \Eulerconst (ℇ), \Exclam (‼), \Finv (Ⅎ), \Game (⅁), \Gamma (Γ), \Gt (⪢), \Hermaphrodite (⚥), \Im (ℑ), \Iota (Ι), \Kappa (Κ), \Koppa (Ϟ), \L (Ł), \LLeftarrow (⭅), \Lambda (Λ), \Lbrbrak (⟬), \Ldsh (↲), \Leftarrow (⇐), \Leftrightarrow (⇔), \Lleftarrow (⇚), \Longleftarrow (⟸), \Longleftrightarrow (⟺), \Longmapsfrom (⟽), \Longmapsto (⟾), \Longrightarrow (⟹), \Lparengtr (⦕), \Lsh (↰), \Lt (⪡), \Lvzigzag (⧚), \Mapsfrom (⤆), \Mapsto (⤇), \Mu (Μ), \NG (Ŋ), \Nearrow (⇗), \Not (⫬), \Nu (Ν), \Nwarrow (⇖), \O (Ø), \OE (Œ), \Ohorn (Ơ), \Omega (Ω), \Omicron (Ο), \Otimes (⨷), \P (¶), \Phi (Φ), \Pi (Π), \Planckconst (ℎ), \Prec (⪻), \PropertyLine (⅊), \Psi (Ψ), \QED (∎), \Question (⁇), \RRightarrow (⭆), \Rbrbrak (⟭), \Rdsh (↳), \Re (ℜ), \Rho (Ρ), \Rightarrow (⇒), \Rparenless (⦖), \Rrightarrow (⇛), \Rsh (↱), \Rvzigzag (⧛), \S (§), \Sc (⪼), \Searrow (⇘), \Sigma (Σ), \Sqcap (⩎), \Sqcup (⩏), \Stigma (Ϛ), \Subset (⋐), \Supset (⋑), \Swarrow (⇙), \TH (Þ), \Tau (Τ), \Theta (Θ), \UUparrow (⟰), \Uhorn (Ư), \Uparrow (⇑), \Updownarrow (⇕), \Uuparrow (⤊), \VDash (⊫), \Vbar (⫫), \Vdash (⊩), \Vee (⩔), \Vert (‖), \Vvdash (⊪), \Vvert (⦀), \Wedge (⩓), \XBox (☒), \Xi (Ξ), \Yup (⅄), \Zbar (Ƶ), \Zeta (Ζ).
+</p>
+<p>\aa (å), \ac (∾), \accurrent (⏦), \acidfree (♾), \acwcirclearrow (⥀), \acwgapcirclearrow (⟲), \acwleftarcarrow (⤹), \acwopencirclearrow (↺), \acwoverarcarrow (⤺), \acwundercurvearrow (⤻), \adots (⋰), \ae (æ), \aleph (ℵ), \alpha (α), \amalg (⨿), \angdnr (⦟), \angle (∠), \angles (⦞), \angleubar (⦤), \approx (≈), \approxeq (≊), \approxeqq (⩰), \approxident (≋), \arceq (≘), \aries (♈), \assert (⊦), \ast (∗), \asteq (⩮), \astrosun (☉), \asymp (≍), \awint (⨑).
+</p>
+<p>\bNot (⫭), \backcong (≌), \backdprime (‶), \backepsilon (϶), \backprime (‵), \backsim (∽), \backsimeq (⋍), \backslash (\), \backtrprime (‷), \bagmember (⋿), \barV (⫪), \barcap (⩃), \barcup (⩂), \bardownharpoonleft (⥡), \bardownharpoonright (⥝), \barleftarrow (⇤), \barleftarrowrightarrowbar (↹), \barleftharpoondown (⥖), \barleftharpoonup (⥒), \barovernorthwestarrow (↸), \barrightarrowdiamond (⤠), \barrightharpoondown (⥟), \barrightharpoonup (⥛), \baruparrow (⤒), \barupharpoonleft (⥘), \barupharpoonright (⥔), \barvee (⊽), \barwedge (⊼), \bbrktbrk (⎶), \bdHrule (═), \bdVrule (║), \bdbVbH (╬), \bdbVbh (╫), \bdbVlH (╣), \bdbVlh (╢), \bdbVrH (╠), \bdbVrh (╟), \bdbvbH (╪), \bdbvbh (┼), \bdbvlH (╡), \bdbvlh (┤), \bdbvrH (╞), \bdbvrh (├), \bddVbH (╦), \bddVbh (╥), \bddVlH (╗), \bddVlh (╖), \bddVrH (╔), \bddVrh (╓), \bddvbH (╤), \bddvbh (┬), \bddvlH (╕), \bddvlh (┐), \bddvrH (╒), \bddvrh (┌), \bdhrule (─), \bdnesw (╱), \bdnwse (╲), \bdquadhdash (┈), \bdquadvdash (┊), \bdtriplevdash (┆), \bduVbH (╩), \bduVbh (╨), \bduVlH (╝), \bduVlh (╜), \bduVrH (╚), \bduVrh (╙), \bduvbH (╧), \bduvbh (┴), \bduvlH (╛), \bduvlh (┘), \bduvrH (╘), \bduvrh (└), \bdvrule (│), \because (∵), \benzenr (⏣), \beta (β), \beth (ℶ), \between (≬), \bigblacktriangledown (▼), \bigblacktriangleup (▲), \bigbot (⟘), \bigcap (⋂), \bigcup (⋃), \bigslopedvee (⩗), \bigslopedwedge (⩘), \bigstar (★), \bigtop (⟙), \bigtriangledown (▽), \bigtriangleup (△), \bigvee (⋁), \bigwedge (⋀), \bigwhitestar (☆), \blackcircledownarrow (⧭), \blackcircledrightdot (⚈), \blackcircledsanseight (➑), \blackcircledsansfive (➎), \blackcircledsansfour (➍), \blackcircledsansnine (➒), \blackcircledsansone (➊), \blackcircledsansseven (➐), \blackcircledsanssix (➏), \blackcircledsansten (➓), \blackcircledsansthree (➌), \blackcircledsanstwo (➋), \blackcircledtwodots (⚉), \blackcircleulquadwhite (◕), \blackdiamonddownarrow (⧪), \blackhourglass (⧗), \blackinwhitediamond (◈), \blackinwhitesquare (▣), \blacklefthalfcircle (◖), \blackpointerleft (◄), \blackpointerright (►), \blackrighthalfcircle (◗), \blacksmiley (☻), \blacktriangle (▴), \blacktriangledown (▾), \blacktriangleleft (◀), \blacktriangleright (▶), \blkhorzoval (⬬), \blkvertoval (⬮), \blockfull (█), \blockhalfshaded (▒), \blocklefthalf (▌), \blocklowhalf (▄), \blockqtrshaded (░), \blockrighthalf (▐), \blockthreeqtrshaded (▓), \blockuphalf (▀), \bot (⊥), \botsemicircle (◡), \bowtie (⋈), \box (◻), \boxast (⧆), \boxbar (◫), \boxbox (⧈), \boxbslash (⧅), \boxcircle (⧇), \boxdiag (⧄), \boxdot (⊡), \boxminus (⊟), \boxonbox (⧉), \boxplus (⊞), \boxtimes (⊠), \bsimilarleftarrow (⭁), \bsimilarrightarrow (⭇), \bsolhsub (⟈), \btimes (⨲), \bullet (∙), \bullseye (◎), \bumpeq (≏), \bumpeqq (⪮).
+</p>
+<p>\calB (ℬ), \calE (ℰ), \calF (ℱ), \calH (ℋ), \calM (ℳ), \calR (ℛ), \cap (∩), \capdot (⩀), \capwedge (⩄), \caretinsert (‸), \carreturn (⏎), \carriagereturn (↵), \ccwundercurvearrow (⤿), \cdot (⋅), \cdotp (·), \cdots (⋯), \cdprime (ʺ), \checkmark (✓), \chi (χ), \cirE (⧃), \cirbot (⟟), \circ (∘), \circeq (≗), \circfint (⨐), \circlebottomhalfblack (◒), \circledA (Ⓐ), \circledB (Ⓑ), \circledC (Ⓒ), \circledD (Ⓓ), \circledE (Ⓔ), \circledF (Ⓕ), \circledG (Ⓖ), \circledH (Ⓗ), \circledI (Ⓘ), \circledJ (Ⓙ), \circledK (Ⓚ), \circledL (Ⓛ), \circledM (Ⓜ), \circledN (Ⓝ), \circledO (Ⓞ), \circledP (Ⓟ), \circledQ (Ⓠ), \circledR (Ⓡ), \circledS (Ⓢ), \circledT (Ⓣ), \circledU (Ⓤ), \circledV (Ⓥ), \circledW (Ⓦ), \circledX (Ⓧ), \circledY (Ⓨ), \circledZ (Ⓩ), \circleda (ⓐ), \circledast (⊛), \circledb (ⓑ), \circledbullet (⦿), \circledc (ⓒ), \circledcirc (⊚), \circledd (ⓓ), \circleddash (⊝), \circlede (ⓔ), \circledeight (⑧), \circledequal (⊜), \circledf (ⓕ), \circledfive (⑤), \circledfour (④), \circledg (ⓖ), \circledh (ⓗ), \circledi (ⓘ), \circledj (ⓙ), \circledk (ⓚ), \circledl (ⓛ), \circledm (ⓜ), \circledn (ⓝ), \circlednine (⑨), \circledo (ⓞ), \circledone (①), \circledownarrow (⧬), \circledp (ⓟ), \circledparallel (⦷), \circledq (ⓠ), \circledr (ⓡ), \circledrightdot (⚆), \circleds (ⓢ), \circledsanseight (➇), \circledsansfive (➄), \circledsansfour (➃), \circledsansnine (➈), \circledsansone (➀), \circledsansseven (➆), \circledsanssix (➅), \circledsansten (➉), \circledsansthree (➂), \circledsanstwo (➁), \circledseven (⑦), \circledsix (⑥), \circledstar (✪), \circledt (ⓣ), \circledthree (③), \circledtwo (②), \circledtwodots (⚇), \circledu (ⓤ), \circledv (ⓥ), \circledvert (⦶), \circledw (ⓦ), \circledwhitebullet (⦾), \circledx (ⓧ), \circledy (ⓨ), \circledz (ⓩ), \circledzero (⓪), \circlehbar (⦵), \circlelefthalfblack (◐), \circlellquad (◵), \circlelrquad (◶), \circleonleftarrow (⬰), \circleonrightarrow (⇴), \circlerighthalfblack (◑), \circletophalfblack (◓), \circleulquad (◴), \circleurquad (◷), \circleurquadblack (◔), \circlevertfill (◍), \cirmid (⫯), \cirscir (⧂), \clangle (〈), \closedvarcap (⩍), \closedvarcup (⩌), \closedvarcupsmashprod (⩐), \closure (⁐), \cloverleaf (⌘), \clubsuit (♣), \colon (:), \colon (∶), \coloneq (≔), \commaminus (⨩), \complement (∁), \concavediamond (⟡), \concavediamondtickleft (⟢), \concavediamondtickright (⟣), \cong (≅), \congdot (⩭), \conictaper (⌲), \conjunction (☌), \coprod (∐), \cprime (ʹ), \crangle (〉), \csub (⫏), \csube (⫑), \csup (⫐), \csupe (⫒), \cuberoot (∛), \cup (∪), \cupdot (⊍), \cupleftarrow (⊌), \cupvee (⩅), \curlyeqprec (⋞), \curlyeqsucc (⋟), \curlyvee (⋎), \curlywedge (⋏), \curvearrowleft (↶), \curvearrowleftplus (⤽), \curvearrowright (↷), \curvearrowrightminus (⤼), \cwcirclearrow (⥁), \cwgapcirclearrow (⟳), \cwopencirclearrow (↻), \cwrightarcarrow (⤸), \cwundercurvearrow (⤾), \cylcty (⌭).
+</p>
+<p>\dag (†), \dagger (†), \daleth (ℸ), \danger (☡), \dashV (⫣), \dashVdash (⟛), \dashcolon (∹), \dashleftharpoondown (⥫), \dashrightharpoondown (⥭), \dashv (⊣), \dbkarow (⤏), \ddag (‡), \ddagger (‡), \ddots (⋱), \ddotseq (⩷), \delta (δ), \dh (ð), \diameter (⌀), \diamond (◇), \diamondbotblack (⬙), \diamondcdot (⟐), \diamondleftarrow (⤝), \diamondleftarrowbar (⤟), \diamondleftblack (⬖), \diamondrightblack (⬗), \diamondsuit (♢), \diamondtopblack (⬘), \dicei (⚀), \diceii (⚁), \diceiii (⚂), \diceiv (⚃), \dicev (⚄), \dicevi (⚅), \digamma (ϝ), \dingasterisk (✽), \dircurrent (⎓), \disin (⋲), \div (÷), \divideontimes (⋇), \dj (đ), \dlcrop (⌍), \doteq (≐), \dotequiv (⩧), \dotminus (∸), \dotplus (∔), \dots (…), \dotsim (⩪), \dotsminusdots (∺), \dottedcircle (◌), \dottedsquare (⬚), \dottimes (⨰), \doublebarvee (⩢), \doublebarwedge (⩞), \doubleplus (⧺), \downarrow (↓), \downarrowbar (⤓), \downarrowbarred (⤈), \downdasharrow (⇣), \downdownarrows (⇊), \downfishtail (⥿), \downharpoonleft (⇃), \downharpoonleftbar (⥙), \downharpoonright (⇂), \downharpoonrightbar (⥕), \downharpoonsleftright (⥥), \downrightcurvedarrow (⤵), \downtriangleleftblack (⧨), \downtrianglerightblack (⧩), \downuparrows (⇵), \downupharpoonsleftright (⥯), \downwhitearrow (⇩), \downzigzagarrow (↯), \dprime (″), \draftingarrow (➛), \drbkarow (⤐), \drcrop (⌌), \dsol (⧶), \dsub (⩤), \dualmap (⧟).
+</p>
+<p>\earth (♁), \egsdot (⪘), \eighthnote (♪), \elinters (⏧), \ell (ℓ), \elsdot (⪗), \emdash (—), \emptyset (∅), \emptysetoarr (⦳), \emptysetoarrl (⦴), \emptysetobar (⦱), \emptysetocirc (⦲), \endash (–), \enleadertwodots (‥), \envelope (✉), \eparsl (⧣), \epsilon (ϵ), \eqcirc (≖), \eqcolon (≕), \eqdef (≝), \eqdot (⩦), \eqeq (⩵), \eqeqeq (⩶), \eqgtr (⋝), \eqless (⋜), \eqqgtr (⪚), \eqqless (⪙), \eqqplus (⩱), \eqqsim (⩳), \eqqslantgtr (⪜), \eqqslantless (⪛), \eqsim (≂), \eqslantgtr (⪖), \eqslantless (⪕), \equalleftarrow (⭀), \equalparallel (⋕), \equalrightarrow (⥱), \equiv (≡), \equivDD (⩸), \equivVert (⩨), \equivVvert (⩩), \eqvparsl (⧥), \errbarblackcircle (⧳), \errbarblackdiamond (⧱), \errbarblacksquare (⧯), \errbarcircle (⧲), \errbardiamond (⧰), \errbarsquare (⧮), \eta (η), \euro (€), \exists (∃).
+</p>
+<p>\fallingdotseq (≒), \fbowtie (⧓), \fcmp (⨾), \fdiagovnearrow (⤯), \fdiagovrdiag (⤬), \female (♀), \figdash (‒), \fint (⨏), \fisheye (◉), \flat (♭), \fltns (⏥), \forall (∀), \forks (⫝̸), \forksnot (⫝), \forkv (⫙), \fourthroot (∜), \fourvdots (⦙), \fracfiveeighths (⅝), \fracfivesixths (⅚), \fracfourfifths (⅘), \fraconeeighth (⅛), \fraconefifth (⅕), \fraconesixth (⅙), \fraconethird (⅓), \fracseveneights (⅞), \fracslash (⁄), \fracthreeeighths (⅜), \fracthreefifths (⅗), \fractwofifths (⅖), \fractwothirds (⅔), \frakC (ℭ), \frakH (ℌ), \frakZ (ℨ), \frown (⌢), \frownie (☹), \fullouterjoin (⟗).
+</p>
+<p>\gamma (γ), \ge (≥), \geq (≥), \geqq (≧), \geqslant (⩾), \gescc (⪩), \gesdot (⪀), \gesdoto (⪂), \gesdotol (⪄), \gesles (⪔), \gets (←), \gg (≫), \ggg (⋙), \gggnest (⫸), \gimel (ℷ), \glE (⪒), \gla (⪥), \gleichstark (⧦), \glj (⪤), \gnapprox (⪊), \gneq (⪈), \gneqq (≩), \gnsim (⋧), \greater (&gt;), \gsime (⪎), \gsiml (⪐), \gtcc (⪧), \gtcir (⩺), \gtlpar (⦠), \gtquest (⩼), \gtrapprox (⪆), \gtrarr (⥸), \gtrdot (⋗), \gtreqless (⋛), \gtreqqless (⪌), \gtrless (≷), \gtrsim (≳), \guillemotleft («), \guillemotright (»), \guilsinglleft (‹), \guilsinglright (›).
+</p>
+<p>\harrowextender (⎯), \hatapprox (⩯), \hbar (ℏ), \heartsuit (♡), \hermitmatrix (⊹), \hexagon (⎔), \hexagonblack (⬣), \hiraganano (の), \hknearrow (⤤), \hknwarrow (⤣), \hksearow (⤥), \hkswarow (⤦), \hookleftarrow (↩), \hookrightarrow (↪), \horizbar (―), \hourglass (⧖), \house (⌂), \hrectangle (▭), \hrectangleblack (▬), \hslash (ℏ), \hyphenbullet (⁃), \hzigzag (〰).
+</p>
+<p>\iiiint (⨌), \iiint (∭), \iinfin (⧜), \iint (∬), \imageof (⊷), \in (∈), \incare (℅), \increment (∆), \infty (∞), \int (∫), \intBar (⨎), \intbar (⨍), \intbottom (⌡), \intcap (⨙), \intclockwise (∱), \intcup (⨚), \intercal (⊺), \interleave (⫴), \intextender (⎮), \intlharhk (⨗), \intprod (⨼), \intprodr (⨽), \inttop (⌠), \intx (⨘), \inversebullet (◘), \inversewhitecircle (◙), \invnot (⌐), \invwhitelowerhalfcircle (◛), \invwhiteupperhalfcircle (◚), \iota (ι), \ipasupgamma (ˠ), \ipasupl (ˡ), \ipasuprerglotstpp (ˤ), \ipasups (ˢ), \ipasupx (ˣ), \ipaunaspirated (˭), \ipavoicing (ˬ), \isinE (⋹), \isindot (⋵), \isinobar (⋷), \isins (⋴), \isinvb (⋸), \itBbbD (ⅅ), \itBbbd (ⅆ), \itBbbe (ⅇ), \itBbbi (ⅈ), \itBbbj (ⅉ).
+</p>
+<p>\jupiter (♃), \kappa (κ), \kernelcontraction (∻), \koppa (ϟ).
+</p>
+<p>\l (ł), \lAngle (⟪), \lBrace (⦃), \lBrack (⟦), \lParen (⦅), \lambda (λ), \lambdabar (ƛ), \langle (⟨), \langledot (⦑), \laplac (⧠), \lasp (ʽ), \lat (⪫), \late (⪭), \lbag (⟅), \lblkbrbrak (⦗), \lbrace ({), \lbracelend (⎩), \lbracemid (⎨), \lbraceuend (⎧), \lbrack ([), \lbrackextender (⎢), \lbracklend (⎣), \lbracklltick (⦏), \lbrackubar (⦋), \lbrackuend (⎡), \lbrackultick (⦍), \lbrbrak (❲), \lceil (⌈), \lcurvyangle (⧼), \ldasharrhead (⇠), \le (≤), \leadsto (↝), \leftarrow (←), \leftarrowapprox (⭊), \leftarrowbackapprox (⭂), \leftarrowbsimilar (⭋), \leftarrowless (⥷), \leftarrowonoplus (⬲), \leftarrowplus (⥆), \leftarrowshortrightarrow (⥃), \leftarrowsimilar (⥳), \leftarrowsubset (⥺), \leftarrowtail (↢), \leftarrowtriangle (⇽), \leftarrowx (⬾), \leftbkarrow (⤌), \leftcurvedarrow (⬿), \leftdasharrow (⇠), \leftdasharrowhead (⇡), \leftdbkarrow (⤎), \leftdbltail (⤛), \leftdotarrow (⬸), \leftdowncurvedarrow (⤶), \leftfishtail (⥼), \leftharpoondown (↽), \leftharpoondownbar (⥞), \leftharpoonsupdown (⥢), \leftharpoonup (↼), \leftharpoonupbar (⥚), \leftharpoonupdash (⥪), \leftleftarrows (⇇), \leftmoon (☾), \leftouterjoin (⟕), \leftrightarrow (↔), \leftrightarrowcircle (⥈), \leftrightarrows (⇆), \leftrightarrowtriangle (⇿), \leftrightharpoondowndown (⥐), \leftrightharpoondownup (⥋), \leftrightharpoons (⇋), \leftrightharpoonsdown (⥧), \leftrightharpoonsup (⥦), \leftrightharpoonupdown (⥊), \leftrightharpoonupup (⥎), \leftrightsquigarrow (↭), \leftsquigarrow (↜), \leftsquigarrow (⇜), \lefttail (⤙), \leftthreearrows (⬱), \leftthreetimes (⋋), \leftwhitearrow (⇦), \leq (≤), \leqq (≦), \leqqslant (⫹), \leqqslant (⫺), \leqslant (⩽), \lescc (⪨), \lesdot (⩿), \lesdoto (⪁), \lesdotor (⪃), \lesges (⪓), \less (&lt;), \lessapprox (⪅), \lessdot (⋖), \lesseqgtr (⋚), \lesseqqgtr (⪋), \lessgtr (≶), \lesssim (≲), \lfbowtie (⧑), \lfloor (⌊), \lftimes (⧔), \lgE (⪑), \lgblkcircle (⬤), \lgblksquare (⬛), \lgwhtcircle (◯), \lgwhtsquare (⬜), \lhd (⊲), \linefeed (↴), \ll (≪), \llangle (⦉), \llarc (◟), \llblacktriangle (◣), \llcorner (⌞), \lll (⋘), \lllnest (⫷), \llparenthesis (⦇), \lltriangle (◺), \lmoustache (⎰), \lnapprox (⪉), \lneq (⪇), \lneqq (≨), \lnsim (⋦), \longdashv (⟞), \longdivision (⟌), \longleftarrow (⟵), \longleftrightarrow (⟷), \longleftsquigarrow (⬳), \longmapsfrom (⟻), \longmapsto (⟼), \longrightarrow (⟶), \longrightsquigarrow (⟿), \looparrowleft (↫), \looparrowright (↬), \lowint (⨜), \lozenge (◊), \lozengeminus (⟠), \lparenextender (⎜), \lparenlend (⎝), \lparenless (⦓), \lparenuend (⎛), \lq (‘), \lrarc (◞), \lrblacktriangle (◢), \lrcorner (⌟), \lrtriangle (◿), \lrtriangleeq (⧡), \lsime (⪍), \lsimg (⪏), \lsqhook (⫍), \ltcc (⪦), \ltcir (⩹), \ltimes (⋉), \ltlarr (⥶), \ltquest (⩻), \ltrivb (⧏), \lvboxline (⎸), \lvzigzag (⧘).
+</p>
+<p>\male (♂), \maltese (✠), \mapsdown (↧), \mapsfrom (↤), \mapsto (↦), \mapsup (↥), \mdblkdiamond (⬥), \mdblklozenge (⬧), \mdblkrcl (⚫), \mdblksquare (◼), \mdlgblkcircle (●), \mdlgblkdiamond (◆), \mdlgblklozenge (⧫), \mdlgblksquare (■), \mdlgwhtcircle (○), \mdlgwhtdiamond (◇), \mdlgwhtsquare (□), \mdsmblkcircle (⦁), \mdsmblksquare (◾), \mdsmwhtcircl (⚬), \mdsmwhtsquare (◽), \mdwhtcircl (⚪), \mdwhtdiamond (⬦), \mdwhtlozenge (⬨), \mdwhtsquare (◻), \measangledltosw (⦯), \measangledrtose (⦮), \measangleldtosw (⦫), \measanglelutonw (⦩), \measanglerdtose (⦪), \measanglerutone (⦨), \measangleultonw (⦭), \measangleurtone (⦬), \measeq (≞), \measuredangle (∡), \measuredangleleft (⦛), \measuredrightangle (⊾), \medblackstar (⭑), \medmathspace ( ), \medwhitestar (⭐), \mercury (☿), \mho (℧), \mid (∣), \midbarvee (⩝), \midbarwedge (⩜), \midcir (⫰), \minus (−), \minusdot (⨪), \minusfdots (⨫), \minusrdots (⨬), \mlcp (⫛), \models (⊧), \mp (∓), \mu (μ), \multimap (⊸), \multimapinv (⟜).
+</p>
+<p>\nHdownarrow (⇟), \nHuparrow (⇞), \nLeftarrow (⇍), \nLeftrightarrow (⇎), \nRightarrow (⇏), \nVDash (⊯), \nVdash (⊮), \nVleftarrow (⇺), \nVleftarrowtail (⬺), \nVleftrightarrow (⇼), \nVrightarrow (⇻), \nVrightarrowtail (⤕), \nVtwoheadleftarrow (⬵), \nVtwoheadleftarrowtail (⬽), \nVtwoheadrightarrow (⤁), \nVtwoheadrightarrowtail (⤘), \nabla (∇), \napprox (≉), \nasymp (≭), \natural (♮), \ncong (≇), \ne (≠), \nearrow (↗), \neg (¬), \neovnwarrow (⤱), \neovsearrow (⤮), \neptune (♆), \neq (≠), \nequiv (≢), \neswarrow (⤢), \neuter (⚲), \nexists (∄), \ng (ŋ), \ngeq (≱), \ngtr (≯), \ngtrless (≹), \ngtrsim (≵), \nhVvert (⫵), \nhpar (⫲), \ni (∋), \niobar (⋾), \nis (⋼), \nisd (⋺), \nleftarrow (↚), \nleftrightarrow (↮), \nleq (≰), \nless (≮), \nlessgtr (≸), \nlesssim (≴), \nmid (∤), \nni (∌), \nobreakhyphen (‑), \notin (∉), \nparallel (∦), \npolint (⨔), \nprec (⊀), \npreccurlyeq (⋠), \nrightarrow (↛), \nsim (≁), \nsime (≄), \nsqsubseteq (⋢), \nsqsupseteq (⋣), \nsubset (⊄), \nsubseteq (⊈), \nsucc (⊁), \nsucccurlyeq (⋡), \nsupset (⊅), \nsupseteq (⊉), \ntriangleleft (⋪), \ntrianglelefteq (⋬), \ntriangleright (⋫), \ntrianglerighteq (⋭), \nu (ν), \nvDash (⊭), \nvLeftarrow (⤂), \nvLeftrightarrow (⤄), \nvRightarrow (⤃), \nvdash (⊬), \nvinfty (⧞), \nvleftarrow (⇷), \nvleftarrowtail (⬹), \nvleftrightarrow (⇹), \nvrightarrow (⇸), \nvrightarrowtail (⤔), \nvtwoheadleftarrow (⬴), \nvtwoheadleftarrowtail (⬼), \nvtwoheadrightarrow (⤀), \nvtwoheadrightarrowtail (⤗), \nwarrow (↖), \nwovnearrow (⤲), \nwsearrow (⤡).
+</p>
+<p>\o (ø), \obar (⌽), \obot (⦺), \obrbrak (⏠), \obslash (⦸), \odiv (⨸), \odot (⊙), \odotslashdot (⦼), \oe (œ), \ogreaterthan (⧁), \ohorn (ơ), \oiiint (∰), \oiint (∯), \oint (∮), \ointctrclockwise (∳), \olcross (⦻), \oldKoppa (Ϙ), \oldkoppa (ϙ), \olessthan (⧀), \omega (ω), \omicron (ο), \ominus (⊖), \operp (⦹), \oplus (⊕), \opluslhrim (⨭), \oplusrhrim (⨮), \origof (⊶), \oslash (⊘), \otimes (⊗), \otimeshat (⨶), \otimeslhrim (⨴), \otimesrhrim (⨵), \overbrace (⏞), \overbracket (⎴), \overline (‾), \overparen (⏜), \owns (∋).
+</p>
+<p>\parallel (∥), \parallelogram (▱), \parallelogramblack (▰), \parsim (⫳), \partial (∂), \partialmeetcontraction (⪣), \pentagon (⬠), \pentagonblack (⬟), \perp (⟂), \perps (⫡), \phi (ϕ), \phone (☎), \pi (π), \pitchfork (⋔), \plusdot (⨥), \pluseqq (⩲), \plushat (⨣), \plussim (⨦), \plussubtwo (⨧), \plustrif (⨨), \pluto (♇), \pm (±), \pointnt (⨕), \postalmark (〒), \prec (≺), \precapprox (⪷), \preccurlyeq (≼), \preceq (⪯), \preceqq (⪳), \precnapprox (⪹), \precneq (⪱), \precneqq (⪵), \precnsim (⋨), \precsim (≾), \prime (′), \prod (∏), \profalar (⌮), \profline (⌒), \profsurf (⌓), \propto (∝), \prurel (⊰), \psi (ψ), \pullback (⟓), \pushout (⟔).
+</p>
+<p>\qprime (⁗), \quarternote (♩), \questeq (≟), \quotdblbase („), \quotdblright (‟), \quotsinglbase (‚), \quotsinglright (‛).
+</p>
+<p>\rAngle (⟫), \rBrace (⦄), \rBrack (⟧), \rParen (⦆), \rangle (⟩), \rangledot (⦒), \rangledownzigzagarrow (⍼), \rasp (ʼ), \rbag (⟆), \rblkbrbrak (⦘), \rbrace (}), \rbracelend (⎭), \rbracemid (⎬), \rbraceuend (⎫), \rbrack (]), \rbrackextender (⎥), \rbracklend (⎦), \rbracklrtick (⦎), \rbrackubar (⦌), \rbrackuend (⎤), \rbrackurtick (⦐), \rbrbrak (❳), \rceil (⌉), \rcurvyangle (⧽), \rdiagovfdiag (⤫), \rdiagovsearrow (⤰), \recorder (⌕), \revangle (⦣), \revangleubar (⦥), \revemptyset (⦰), \revnmid (⫮), \rfbowtie (⧒), \rfloor (⌋), \rftimes (⧕), \rhd (⊳), \rho (ρ), \righarrowbsimilar (⭌), \rightangle (∟), \rightanglemdot (⦝), \rightanglesqr (⦜), \rightarrow (→), \rightarrowapprox (⥵), \rightarrowbackapprox (⭈), \rightarrowbar (⇥), \rightarrowdiamond (⤞), \rightarrowgtr (⭃), \rightarrowonoplus (⟴), \rightarrowplus (⥅), \rightarrowshortleftarrow (⥂), \rightarrowsimilar (⥴), \rightarrowsupset (⭄), \rightarrowtail (↣), \rightarrowtriangle (⇾), \rightarrowx (⥇), \rightbkarrow (⤍), \rightcurvedarrow (⤳), \rightdasharrow (⇢), \rightdbltail (⤜), \rightdotarrow (⤑), \rightdowncurvedarrow (⤷), \rightfishtail (⥽), \rightharpoondown (⇁), \rightharpoondownbar (⥗), \rightharpoonsupdown (⥤), \rightharpoonup (⇀), \rightharpoonupbar (⥓), \rightharpoonupdash (⥬), \rightimply (⥰), \rightleftarrows (⇄), \rightleftharpoons (⇌), \rightleftharpoonsdown (⥩), \rightleftharpoonsup (⥨), \rightmoon (☽), \rightouterjoin (⟖), \rightpentagon (⭔), \rightpentagonblack (⭓), \rightrightarrows (⇉), \rightsquigarrow (↝), \rightsquigarrow (⇝), \righttail (⤚), \rightthreearrows (⇶), \rightthreetimes (⋌), \rightwhitearrow (⇨), \ringplus (⨢), \risingdotseq (≓), \rmoustache (⎱), \rparenextender (⎟), \rparengtr (⦔), \rparenlend (⎠), \rparenuend (⎞), \rppolint (⨒), \rq (’), \rrangle (⦊), \rrparenthesis (⦈), \rsolbar (⧷), \rsqhook (⫎), \rsub (⩥), \rtimes (⋊), \rtriltri (⧎), \ruledelayed (⧴), \rvboxline (⎹), \rvzigzag (⧙).
+</p>
+<p>\sampi (ϡ), \sansLmirrored (⅃), \sansLturned (⅂), \saturn (♄), \scissors (✂), \scpolint (⨓), \scrB (ℬ), \scrE (ℰ), \scrF (ℱ), \scrH (ℋ), \scrI (ℐ), \scrL (ℒ), \scrM (ℳ), \scrR (ℛ), \scre (ℯ), \scrg (ℊ), \scro (ℴ), \scurel (⊱), \searrow (↘), \seovnearrow (⤭), \setminus (∖), \setminus (⧵), \sharp (♯), \shortdowntack (⫟), \shortleftarrow (←), \shortlefttack (⫞), \shortrightarrow (→), \shortrightarrowleftarrow (⥄), \shortuptack (⫠), \shuffle (⧢), \sigma (σ), \silon (υ), \silon (ϒ), \sim (∼), \simeq (≃), \simgE (⪠), \simgtr (⪞), \similarleftarrow (⭉), \similarrightarrow (⥲), \simlE (⪟), \simless (⪝), \simminussim (⩬), \simneqq (≆), \simplus (⨤), \simrdots (⩫), \sinewave (∿), \slash (∕), \smallblacktriangleleft (◂), \smallblacktriangleright (▸), \smalldiamond (⋄), \smallin (∊), \smallint (∫), \smallni (∍), \smallsetminus (∖), \smalltriangleleft (◃), \smalltriangleright (▹), \smashtimes (⨳), \smblkdiamond (⬩), \smblklozenge (⬪), \smblksquare (▪), \smeparsl (⧤), \smile (⌣), \smiley (☺), \smt (⪪), \smte (⪬), \smwhitestar (⭒), \smwhtcircle (◦), \smwhtlozenge (⬫), \smwhtsquare (▫), \spadesuit (♠), \sphericalangle (∢), \sphericalangleup (⦡), \sqcap (⊓), \sqcup (⊔), \sqint (⨖), \sqlozenge (⌑), \sqrt (√), \sqrt3 (∛), \sqrt4 (∜), \sqrtbottom (⎷), \sqsubset (⊏), \sqsubseteq (⊑), \sqsubsetneq (⋤), \sqsupset (⊐), \sqsupseteq (⊒), \sqsupsetneq (⋥), \squarecrossfill (▩), \squaregrayfill (▩), \squarehfill (▤), \squarehvfill (▦), \squareleftblack (◧), \squareleftblack (◨), \squarellblack (⬕), \squarellquad (◱), \squarelrblack (◪), \squarelrquad (◲), \squareneswfill (▨), \squarenwsefill (▧), \squareulblack (◩), \squareulquad (◰), \squareurblack (⬔), \squareurquad (◳), \squarevfill (▥), \squoval (▢), \ss (ß), \star (⋆), \stareq (≛), \sterling (£), \stigma (ϛ), \strns (⏤), \subedot (⫃), \submult (⫁), \subrarr (⥹), \subset (⊂), \subsetapprox (⫉), \subsetcirc (⟃), \subsetdot (⪽), \subseteq (⊆), \subseteqq (⫅), \subsetneq (⊊), \subsetneqq (⫋), \subsetplus (⪿), \subsim (⫇), \subsub (⫕), \subsup (⫓), \succ (≻), \succapprox (⪸), \succcurlyeq (≽), \succeq (⪰), \succeqq (⪴), \succnapprox (⪺), \succneq (⪲), \succneqq (⪶), \succnsim (⋩), \succsim (≿), \sum (∑), \sumbottom (⎳), \sumint (⨋), \sumtop (⎲), \sun (☼), \supdsub (⫘), \supedot (⫄), \suphsol (⟉), \suphsub (⫗), \suplarr (⥻), \supmult (⫂), \supn (ⁿ), \supset (⊃), \supsetapprox (⫊), \supsetcirc (⟄), \supsetdot (⪾), \supseteq (⊇), \supseteqq (⫆), \supsetneq (⊋), \supsetneqq (⫌), \supsetplus (⫀), \supsim (⫈), \supsub (⫔), \supsup (⫖), \surd (√), \swarrow (↙).
+</p>
+<p>\talloblong (⫾), \target (⌖), \tau (τ), \taurus (♉), \testhookx (ᶍ), \textAsterisks (⁑), \textacute (ˊ), \textadvanced (˖), \textain (ʿ), \textasciiacute (´), \textasciicircum (^), \textasciidieresis (¨), \textasciigrave (&lsquo;), \textasciimacron (¯), \textasciitilde (~), \textasterisklow (⁎), \textbackdprime (‶), \textbackprime (‵), \textbacktrprime (‷), \textbardotlessj (ɟ), \textbardotlessjvar (ʄ), \textbarglotstop (ʡ), \textbari (ɨ), \textbarl (ƚ), \textbaro (ɵ), \textbarrevglotstop (ʢ), \textbaru (ʉ), \textbeltl (ɬ), \textbenttailyogh (ƺ), \textbreve (˘), \textbrokenbar (¦), \textbullet (•), \textbullseye (ʘ), \textcent (¢), \textcircledP (℗), \textcloseepsilon (ʚ), \textcloseomega (ɷ), \textcloserevepsilon (ɞ), \textcopyright (©), \textcrb (ƀ), \textcrh (ħ), \textcrinvglotstop (ƾ), \textcrlambda (ƛ), \textcrtwo (ƻ), \textctc (ɕ), \textctd (ȡ), \textctesh (ʆ), \textctj (ʝ), \textctl (ȴ), \textctn (ȵ), \textctt (ȶ), \textctyogh (ʓ), \textctz (ʑ), \textcurrency (¤), \textdctzlig (ʥ), \textdegree (°), \textdiscount (⁒), \textdollar ($), \textdotaccent (˙), \textdotlessj (ȷ), \textdoubleacute (˝), \textdoublebarpipe (ǂ), \textdoublepipe (ǁ), \textdprime (″), \textdptr (˅), \textdyoghlig (ʤ), \textdzlig (ʣ), \textepsilon (ɛ), \textesh (ʃ), \textestimated (℮), \textexclam (ǃ), \textexclamdown (¡), \textfishhookr (ɾ), \textflorin (ƒ), \textfranc (₣), \textgamma (ɣ), \textglotstop (ʔ), \textgrave (ˋ), \texthalflength (ˑ), \texthamza (ʾ), \texthen (ꜧ), \textheng (ꜧ), \texthooks (ᶊ), \texthookz (ᶎ), \texthtb (ɓ), \texthtc (ƈ), \texthtd (ɗ), \texthtg (ɠ), \texthth (ɦ), \texththeng (ɧ), \texthtk (ƙ), \texthtp (ƥ), \texthtq (ʠ), \texthtscg (ʛ), \texthtt (ƭ), \texthvlig (ƕ), \texthyphen (‐), \textinvglotstop (ʖ), \textinvscr (ʁ), \textiota (ɩ), \textlengthmark (ː), \textlhalfring (˓), \textlhookd (ᶁ), \textlhookk (ᶄ), \textlhookl (ᶅ), \textlhookt (ƫ), \textlhti (ɿ), \textlira (₤), \textlonglegr (ɼ), \textlongy (ʮ), \textlongy (ʯ), \textlooptoprevesh (ƪ), \textlowacute (ˏ), \textlowered (˕), \textlowgrave (ˎ), \textlowmacron (ˍ), \textlptr (˂), \textltailm (ɱ), \textltailn (ɲ), \textltilde (ɫ), \textlyoghlig (ɮ), \textmacron (ˉ), \textmu (µ), \textnumero (№), \textogonek (˛), \textohm (Ω), \textonehalf (½), \textonequarter (¼), \textonesuperior (¹), \textopeno (ɔ), \textordfeminine (ª), \textordmasculine (º), \textovercross (˟), \textoz (℥), \textpertenthousand (‱), \textperthousand (‰), \textpesetas (₧), \textphi (ɸ), \textpipe (ǀ), \textprime (′), \textprimstress (ˈ), \textqprime (⁗), \textquestiondown (¿), \textquotedbl (&quot;), \textquotedblleft (“), \textquotedblright (”), \textraised (˔), \textraiseglotstop (ˀ), \textraiserevglotstop (ˁ), \textramshorns (ɤ), \textrecipe (℞), \textreferencemark (※), \textregistered (®), \textretracted (˗), \textreve (ɘ), \textrevepsilon (ɜ), \textrevglotstop (ʕ), \textrhalfring (˒), \textrhookrevepsilon (ɝ), \textrhookschwa (ɚ), \textrhoticity (˞), \textringaccent (˚), \textrptr (˃), \textrtaild (ɖ), \textrtaill (ɭ), \textrtailn (ɳ), \textrtailr (ɽ), \textrtails (ʂ), \textrtailt (ʈ), \textrtailz (ʐ), \textsca (ᴀ), \textscb (ʙ), \textsce (ᴇ), \textscg (ɢ), \textsch (ʜ), \textschwa (ə), \textsci (ɪ), \textscl (ʟ), \textscn (ɴ), \textscoelig (ɶ), \textscr (ʀ), \textscripta (ɑ), \textscriptg (ɡ), \textscriptv (ʋ), \textscu (ᴜ), \textscy (ʏ), \textsecstress (ˌ), \textsemicolonreversed (⁏), \textsilon (Υ), \textsmalltilde (˜), \textstretchcvar (ʗ), \textsubw (w), \textsuph (ʰ), \textsuphth (ʱ), \textsupinvscr (ʶ), \textsupj (ʲ), \textsupr (ʳ), \textsupturnr (ʴ), \textsupturnrrtail (ʵ), \textsupw (ʷ), \textsupy (ʸ), \texttctctlig (ʧ), \texttctctlig (ʨ), \textthreequarters (¾), \textthreesuperior (³), \texttrademark (™), \texttrprime (‴), \texttslig (ʦ), \textturna (ɐ), \textturncomma (ʻ), \textturnh (ɥ), \textturnk (ʞ), \textturnlonglegr (ɺ), \textturnm (ɯ), \textturnmrleg (ɰ), \textturnr (ɹ), \textturnrrtail (ɻ), \textturnscripta (ɒ), \textturnt (ʇ), \textturnv (ʌ), \textturnw (ʍ), \textturny (ʎ), \texttwosuperior (²), \textupsilon (ʊ), \textuptr (˄), \textvibyi (ʅ), \textvisiblespace (␣), \textyogh (ʒ), \th (þ), \therefore (∴), \thermod (⧧), \theta (θ), \thickapprox (≈), \thicksim (∼), \threedangle (⟀), \threedotcolon (⫶), \tieconcat (⁀), \tieinfty (⧝), \times (×), \timesbar (⨱), \tminus (⧿), \to (→), \toea (⤨), \tona (⤧), \tonebarextrahigh (˥), \tonebarextralow (˩), \tonebarhigh (˦), \tonebarlow (˨), \tonebarmid (˧), \top (⊤), \topbot (⌶), \topcir (⫱), \topfork (⫚), \topsemicircle (◠), \tosa (⤩), \towa (⤪), \tplus (⧾), \trapezium (⏢), \trianglecdot (◬), \triangledown (▿), \triangleexclam (⚠), \triangleleft (◁), \triangleleftblack (◭), \trianglelefteq (⊴), \triangleminus (⨺), \triangleodot (⧊), \triangleplus (⨹), \triangleq (≜), \triangleright (▷), \trianglerightblack (◮), \trianglerighteq (⊵), \triangles (⧌), \triangleserifs (⧍), \triangletimes (⨻), \triangleubar (⧋), \tripleplus (⧻), \trprime (‴), \turnangle (⦢), \turnediota (℩), \turnednot (⌙), \twocaps (⩋), \twocups (⩊), \twoheaddownarrow (↡), \twoheadleftarrow (↞), \twoheadleftarrowtail (⬻), \twoheadleftdbkarrow (⬷), \twoheadmapsfrom (⬶), \twoheadmapsto (⤅), \twoheadrightarrow (↠), \twoheadrightarrowtail (⤖), \twoheaduparrow (↟), \twoheaduparrowcircle (⥉), \twolowline (‗), \twonotes (♫), \typecolon (⦂).
+</p>
+<p>\ubrbrak (⏡), \uhorn (ư), \ularc (◜), \ulblacktriangle (◤), \ulcorner (⌜), \ulcrop (⌏), \ultriangle (◸), \uminus (⩁), \underbrace (⏟), \underbracket (⎵), \underparen (⏝), \unlhd (⊴), \unrhd (⊵), \upand (⅋), \uparrow (↑), \uparrowbarred (⤉), \uparrowoncircle (⦽), \updasharrow (⇢), \updownarrow (↕), \updownarrowbar (↨), \updownarrows (⇅), \updownharpoonleftleft (⥑), \updownharpoonleftright (⥍), \updownharpoonrightleft (⥌), \updownharpoonrightright (⥏), \updownharpoonsleftright (⥮), \upfishtail (⥾), \upharpoonleft (↿), \upharpoonleftbar (⥠), \upharpoonright (↾), \upharpoonrightbar (⥜), \upharpoonsleftright (⥣), \upin (⟒), \upint (⨛), \uplus (⊎), \uprightcurvearrow (⤴), \upuparrows (⇈), \upwhitearrow (⇧), \urarc (◝), \urblacktriangle (◥), \urcorner (⌝), \urcrop (⌎), \urtriangle (◹).
+</p>
+<p>\v (ˇ), \vBar (⫨), \vBarv (⫩), \vDash (⊨), \vDdash (⫢), \varTheta (ϴ), \varVdash (⫦), \varbarwedge (⌅), \varbeta (ϐ), \varclubsuit (♧), \vardiamondsuit (♦), \vardoublebarwedge (⌆), \varepsilon (ε), \varheartsuit (♥), \varhexagon (⬡), \varhexagonblack (⬢), \varhexagonlrbonds (⌬), \varin (∈), \varisinobar (⋶), \varisins (⋳), \varkappa (ϰ), \varlrtriangle (⊿), \varni (∋), \varniobar (⋽), \varnis (⋻), \varnothing (∅), \varointclockwise (∲), \varphi (φ), \varpi (ϖ), \varpropto (∝), \varrho (ϱ), \varrowextender (⏐), \varsigma (ς), \varspadesuit (♤), \varstar (✶), \vartheta (ϑ), \vartriangle (▵), \vartriangleleft (⊲), \vartriangleright (⊳), \varveebar (⩡), \vbraceextender (⎪), \vbrtri (⧐), \vdash (⊢), \vdots (⋮), \vectimes (⨯), \vee (∨), \veebar (⊻), \veedot (⟇), \veedoublebar (⩣), \veeeq (≚), \veemidvert (⩛), \veeodot (⩒), \veeonvee (⩖), \veeonwedge (⩙), \vert (|), \viewdata (⌗), \vlongdash (⟝), \vrectangle (▯), \vrectangleblack (▮), \vysmlblksquare (⬝), \vysmlwhtsquare (⬞), \vzigzag (⦚).
+</p>
+<p>\watchicon (⌚), \wedge (∧), \wedgebar (⩟), \wedgedot (⟑), \wedgedoublebar (⩠), \wedgemidvert (⩚), \wedgeodot (⩑), \wedgeonwedge (⩕), \wedgeq (≙), \whitearrowupfrombar (⇪), \whiteinwhitetriangle (⟁), \whitepointerleft (◅), \whitepointerright (▻), \whitesquaretickleft (⟤), \whitesquaretickright (⟥), \whthorzoval (⬭), \whtvertoval (⬯), \wideangledown (⦦), \wideangleup (⦧), \wp (℘), \wr (≀).
+</p>
+<p>\xbsol (⧹), \xi (ξ), \xsol (⧸), \yen (¥), \zeta (ζ), \zpipe (⨠), 
+</p>
+<p>IF ANYBODY WILL CHECK WHETHER ALL NAMES CORRESPOND TO RIGHT TEX SYMBOLS I SHALL APPRECIATE IT GREATLY. 
+</p>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_11.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_11.html
new file mode 100644
index 0000000..c1e2f20
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_11.html
@@ -0,0 +1,542 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: B. GNU Free Documentation License</title>
+
+<meta name="description" content="MathGL 1.11: B. GNU Free Documentation License">
+<meta name="keywords" content="MathGL 1.11: B. GNU Free Documentation License">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Copying-This-Manual"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="GNU-Free-Documentation-License"></a>
+<h1 class="appendix">B. GNU Free Documentation License</h1>
+<p align="center"> Version 1.2, November 2002
+</p>
+
+<table><tr><td>&nbsp;</td><td><pre class="display">Copyright &copy; 2000,2001,2002 Free Software Foundation, Inc.
+51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+</pre></td></tr></table>
+
+<ol>
+<li>
+PREAMBLE
+
+<p>The purpose of this License is to make a manual, textbook, or other
+functional and useful document <em>free</em> in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+</p>
+<p>This License is a kind of &ldquo;copyleft&rdquo;, which means that derivative
+works of the document must themselves be free in the same sense.  It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+</p>
+<p>We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does.  But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book.  We recommend this License
+principally for works whose purpose is instruction or reference.
+</p>
+</li><li>
+APPLICABILITY AND DEFINITIONS
+
+<p>This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License.  Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein.  The &ldquo;Document&rdquo;, below,
+refers to any such manual or work.  Any member of the public is a
+licensee, and is addressed as &ldquo;you&rdquo;.  You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+</p>
+<p>A &ldquo;Modified Version&rdquo; of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+</p>
+<p>A &ldquo;Secondary Section&rdquo; is a named appendix or a front-matter section
+of the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document&rsquo;s overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject.  (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.)  The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+</p>
+<p>The &ldquo;Invariant Sections&rdquo; are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License.  If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant.  The Document may contain zero
+Invariant Sections.  If the Document does not identify any Invariant
+Sections then there are none.
+</p>
+<p>The &ldquo;Cover Texts&rdquo; are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.  A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+</p>
+<p>A &ldquo;Transparent&rdquo; copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters.  A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text.  A copy that is not &ldquo;Transparent&rdquo; is called &ldquo;Opaque&rdquo;.
+</p>
+<p>Examples of suitable formats for Transparent copies include plain
+<small>ASCII</small> without markup, Texinfo input format, LaTeX input
+format, <acronym>SGML</acronym> or <acronym>XML</acronym> using a publicly available
+<acronym>DTD</acronym>, and standard-conforming simple <acronym>HTML</acronym>,
+PostScript or <acronym>PDF</acronym> designed for human modification.  Examples
+of transparent image formats include <acronym>PNG</acronym>, <acronym>XCF</acronym> and
+<acronym>JPG</acronym>.  Opaque formats include proprietary formats that can be
+read and edited only by proprietary word processors, <acronym>SGML</acronym> or
+<acronym>XML</acronym> for which the <acronym>DTD</acronym> and/or processing tools are
+not generally available, and the machine-generated <acronym>HTML</acronym>,
+PostScript or <acronym>PDF</acronym> produced by some word processors for
+output purposes only.
+</p>
+<p>The &ldquo;Title Page&rdquo; means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page.  For works in
+formats which do not have any title page as such, &ldquo;Title Page&rdquo; means
+the text near the most prominent appearance of the work&rsquo;s title,
+preceding the beginning of the body of the text.
+</p>
+<p>A section &ldquo;Entitled XYZ&rdquo; means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language.  (Here XYZ stands for a
+specific section name mentioned below, such as &ldquo;Acknowledgements&rdquo;,
+&ldquo;Dedications&rdquo;, &ldquo;Endorsements&rdquo;, or &ldquo;History&rdquo;.)  To &ldquo;Preserve the Title&rdquo;
+of such a section when you modify the Document means that it remains a
+section &ldquo;Entitled XYZ&rdquo; according to this definition.
+</p>
+<p>The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document.  These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+</p>
+</li><li>
+VERBATIM COPYING
+
+<p>You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License.  You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute.  However, you may accept
+compensation in exchange for copies.  If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+</p>
+<p>You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+</p>
+</li><li>
+COPYING IN QUANTITY
+
+<p>If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document&rsquo;s license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover.  Both covers must also clearly and legibly identify
+you as the publisher of these copies.  The front cover must present
+the full title with all words of the title equally prominent and
+visible.  You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+</p>
+<p>If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+</p>
+<p>If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+</p>
+<p>It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+</p>
+</li><li>
+MODIFICATIONS
+
+<p>You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it.  In addition, you must do these things in the Modified Version:
+</p>
+<ol>
+<li>
+Use in the Title Page (and on the covers, if any) a title distinct
+from that of the Document, and from those of previous versions
+(which should, if there were any, be listed in the History section
+of the Document).  You may use the same title as a previous version
+if the original publisher of that version gives permission.
+
+</li><li>
+List on the Title Page, as authors, one or more persons or entities
+responsible for authorship of the modifications in the Modified
+Version, together with at least five of the principal authors of the
+Document (all of its principal authors, if it has fewer than five),
+unless they release you from this requirement.
+
+</li><li>
+State on the Title page the name of the publisher of the
+Modified Version, as the publisher.
+
+</li><li>
+Preserve all the copyright notices of the Document.
+
+</li><li>
+Add an appropriate copyright notice for your modifications
+adjacent to the other copyright notices.
+
+</li><li>
+Include, immediately after the copyright notices, a license notice
+giving the public permission to use the Modified Version under the
+terms of this License, in the form shown in the Addendum below.
+
+</li><li>
+Preserve in that license notice the full lists of Invariant Sections
+and required Cover Texts given in the Document&rsquo;s license notice.
+
+</li><li>
+Include an unaltered copy of this License.
+
+</li><li>
+Preserve the section Entitled &ldquo;History&rdquo;, Preserve its Title, and add
+to it an item stating at least the title, year, new authors, and
+publisher of the Modified Version as given on the Title Page.  If
+there is no section Entitled &ldquo;History&rdquo; in the Document, create one
+stating the title, year, authors, and publisher of the Document as
+given on its Title Page, then add an item describing the Modified
+Version as stated in the previous sentence.
+
+</li><li>
+Preserve the network location, if any, given in the Document for
+public access to a Transparent copy of the Document, and likewise
+the network locations given in the Document for previous versions
+it was based on.  These may be placed in the &ldquo;History&rdquo; section.
+You may omit a network location for a work that was published at
+least four years before the Document itself, or if the original
+publisher of the version it refers to gives permission.
+
+</li><li>
+For any section Entitled &ldquo;Acknowledgements&rdquo; or &ldquo;Dedications&rdquo;, Preserve
+the Title of the section, and preserve in the section all the
+substance and tone of each of the contributor acknowledgements and/or
+dedications given therein.
+
+</li><li>
+Preserve all the Invariant Sections of the Document,
+unaltered in their text and in their titles.  Section numbers
+or the equivalent are not considered part of the section titles.
+
+</li><li>
+Delete any section Entitled &ldquo;Endorsements&rdquo;.  Such a section
+may not be included in the Modified Version.
+
+</li><li>
+Do not retitle any existing section to be Entitled &ldquo;Endorsements&rdquo; or
+to conflict in title with any Invariant Section.
+
+</li><li>
+Preserve any Warranty Disclaimers.
+</li></ol>
+
+<p>If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant.  To do this, add their titles to the
+list of Invariant Sections in the Modified Version&rsquo;s license notice.
+These titles must be distinct from any other section titles.
+</p>
+<p>You may add a section Entitled &ldquo;Endorsements&rdquo;, provided it contains
+nothing but endorsements of your Modified Version by various
+parties&mdash;for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+</p>
+<p>You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version.  Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity.  If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+</p>
+<p>The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+</p>
+</li><li>
+COMBINING DOCUMENTS
+
+<p>You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+</p>
+<p>The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy.  If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+</p>
+<p>In the combination, you must combine any sections Entitled &ldquo;History&rdquo;
+in the various original documents, forming one section Entitled
+&ldquo;History&rdquo;; likewise combine any sections Entitled &ldquo;Acknowledgements&rdquo;,
+and any sections Entitled &ldquo;Dedications&rdquo;.  You must delete all
+sections Entitled &ldquo;Endorsements.&rdquo;
+</p>
+</li><li>
+COLLECTIONS OF DOCUMENTS
+
+<p>You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+</p>
+<p>You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+</p>
+</li><li>
+AGGREGATION WITH INDEPENDENT WORKS
+
+<p>A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an &ldquo;aggregate&rdquo; if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation&rsquo;s users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+</p>
+<p>If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document&rsquo;s Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+</p>
+</li><li>
+TRANSLATION
+
+<p>Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections.  You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers.  In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+</p>
+<p>If a section in the Document is Entitled &ldquo;Acknowledgements&rdquo;,
+&ldquo;Dedications&rdquo;, or &ldquo;History&rdquo;, the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+</p>
+</li><li>
+TERMINATION
+
+<p>You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License.  Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License.  However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+</p>
+</li><li>
+FUTURE REVISIONS OF THIS LICENSE
+
+<p>The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time.  Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.  See
+<a href="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</a>.
+</p>
+<p>Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License &ldquo;or any later version&rdquo; applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation.  If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+</p></li></ol>
+
+
+<a name="ADDENDUM_003a-How-to-use-this-License-for-your-documents"></a>
+<h2 class="heading">ADDENDUM: How to use this License for your documents</h2>
+
+<p>To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample">  Copyright (C)  <var>year</var>  <var>your name</var>.
+  Permission is granted to copy, distribute and/or modify this document
+  under the terms of the GNU Free Documentation License, Version 1.2
+  or any later version published by the Free Software Foundation;
+  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+  Texts.  A copy of the license is included in the section entitled ``GNU
+  Free Documentation License''.
+</pre></td></tr></table>
+
+<p>If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the &ldquo;with&hellip;Texts.&rdquo; line with this:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample">    with the Invariant Sections being <var>list their titles</var>, with
+    the Front-Cover Texts being <var>list</var>, and with the Back-Cover Texts
+    being <var>list</var>.
+</pre></td></tr></table>
+
+<p>If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+</p>
+<p>If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
+</p>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_12.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_12.html
new file mode 100644
index 0000000..f6d83d6
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_12.html
@@ -0,0 +1,375 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: Index</title>
+
+<meta name="description" content="MathGL 1.11: Index">
+<meta name="keywords" content="MathGL 1.11: Index">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Index"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_13.html#index_split-0" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Index-1"></a>
+<h1 class="unnumbered">Index</h1>
+
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Index-1_cp_letter-A">A</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-AddLegend">AddLegend</a></td><td valign="top"><a href="mathgl_en_3.html#Legend">3.8 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-addlegend">addlegend</a></td><td valign="top"><a href="mathgl_en_8.html#Legend-_0028MGL_0029">8.8 Legend (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-AddLegend-3">AddLegend</a></td><td valign="top"><a href="mathgl_en_9.html#Legend-sample">9.6.1 Legend sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-AddLight">AddLight</a></td><td valign="top"><a href="mathgl_en_3.html#Lighting">3.1.2 Lighting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-addto">addto</a></td><td valign="top"><a href="mathgl_en_8.html#Operators-_0028MGL_0029">8.22 Operators (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-adjust">adjust</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-AdjustTicks">AdjustTicks</a></td><td valign="top"><a href="mathgl_en_3.html#Ticks">3.2.3 Ticks</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Alpha">Alpha</a></td><td valign="top"><a href="mathgl_en_3.html#Transparency">3.1.1 Transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-alpha">alpha</a></td><td valign="top"><a href="mathgl_en_8.html#Transparency-_0028MGL_0029">8.1.1 Transparency (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Alpha-2">Alpha</a></td><td valign="top"><a href="mathgl_en_9.html#Transparent-surface-sample">9.2.2 Transparent surface sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-alpha-2">alpha</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Alpha-3">Alpha</a></td><td valign="top"><a href="mathgl_en_9.html#g_t2D-plot-sample">9.5.2 2D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Alpha-4">Alpha</a></td><td valign="top"><a href="mathgl_en_9.html#g_t3D-plot-sample">9.5.3 3D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-alphadef">alphadef</a></td><td valign="top"><a href="mathgl_en_8.html#Transparency-_0028MGL_0029">8.1.1 Transparency (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-alphadef-2">alphadef</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ambient">ambient</a></td><td valign="top"><a href="mathgl_en_8.html#Lighting-_0028MGL_0029">8.1.2 Lighting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Ambient">Ambient</a></td><td valign="top"><a href="mathgl_en_3.html#Lighting">3.1.2 Lighting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ambient-2">ambient</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-area">area</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Area">Area</a></td><td valign="top"><a href="mathgl_en_3.html#Area">3.9.4 Area</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Area-4">Area</a></td><td valign="top"><a href="mathgl_en_9.html#Area-sample">9.1.4 Area sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Area-5">Area</a></td><td valign="top"><a href="mathgl_en_9.html#Area-gradient-sample">9.1.5 Area with gradient filling sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_1.html#index-Arrows">Arrows</a></td><td valign="top"><a href="mathgl_en_1.html#Line-styles">1.4.2 Line styles</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-arrowsize">arrowsize</a></td><td valign="top"><a href="mathgl_en_8.html#Default-sizes-_0028MGL_0029">8.1.4 Default sizes (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Aspect">Aspect</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-aspect">aspect</a></td><td valign="top"><a href="mathgl_en_8.html#Transformation-matrix-_0028MGL_0029">8.3 Transformation matrix (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-AutoOrg">AutoOrg</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Axial">Axial</a></td><td valign="top"><a href="mathgl_en_3.html#Axial">3.10.11 Axial</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-axial">axial</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Axial-5">Axial</a></td><td valign="top"><a href="mathgl_en_9.html#Axial-sample">9.2.14 Axial sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Axial-6">Axial</a></td><td valign="top"><a href="mathgl_en_9.html#Adding-mesh-sample">9.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-axialdir">axialdir</a></td><td valign="top"><a href="mathgl_en_8.html#Other-settings-_0028MGL_0029">8.1.7 Other settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-axis">axis</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Axis">Axis</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Axis-2">Axis</a></td><td valign="top"><a href="mathgl_en_3.html#Axis-and-Colorbar">3.7 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-axis-5">axis</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Axis-4">Axis</a></td><td valign="top"><a href="mathgl_en_9.html#Pie-chart-sample">9.1.23 Pie chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Axis-5">Axis</a></td><td valign="top"><a href="mathgl_en_9.html#Ring-chart-sample">9.1.24 Ring chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Axis-6">Axis</a></td><td valign="top"><a href="mathgl_en_9.html#Dens3-sample">9.3.4 Dens3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Axis-7">Axis</a></td><td valign="top"><a href="mathgl_en_9.html#Curvelinear-coorinates-sample">9.7.1 Curvelinear coorinates sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Axis-8">Axis</a></td><td valign="top"><a href="mathgl_en_9.html#g_t2_002daxes-sample">9.7.2 2-axes sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Axis-9">Axis</a></td><td valign="top"><a href="mathgl_en_9.html#Semi_002dlog-sample">9.7.3 Semi-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Axis-10">Axis</a></td><td valign="top"><a href="mathgl_en_9.html#Log_002dlog-sample">9.7.4 Log-log sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Index-1_cp_letter-B">B</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ball">ball</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Ball">Ball</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-barh">barh</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Barh">Barh</a></td><td valign="top"><a href="mathgl_en_3.html#Barh">3.9.8 Barh</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Barh-3">Barh</a></td><td valign="top"><a href="mathgl_en_9.html#Barh-sample">9.1.10 Barh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-bars">bars</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Bars">Bars</a></td><td valign="top"><a href="mathgl_en_3.html#Bars">3.9.7 Bars</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Bars-4">Bars</a></td><td valign="top"><a href="mathgl_en_9.html#Bars-sample">9.1.6 Bars sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Bars-5">Bars</a></td><td valign="top"><a href="mathgl_en_9.html#Bars-2-colors-sample">9.1.7 Bars 2 colors sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Bars-6">Bars</a></td><td valign="top"><a href="mathgl_en_9.html#Bars-above-sample">9.1.8 Bars above sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Bars-7">Bars</a></td><td valign="top"><a href="mathgl_en_9.html#Bars-fall-sample">9.1.9 Bars fall sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Bars-8">Bars</a></td><td valign="top"><a href="mathgl_en_9.html#g_t1D-plot-sample">9.5.1 1D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-barwidth">barwidth</a></td><td valign="top"><a href="mathgl_en_8.html#Default-sizes-_0028MGL_0029">8.1.4 Default sizes (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Beam">Beam</a></td><td valign="top"><a href="mathgl_en_3.html#Beam">3.11.7 Beam</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-beam">beam</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Belt">Belt</a></td><td valign="top"><a href="mathgl_en_3.html#Belt">3.10.3 Belt</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-belt">belt</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Belt-3">Belt</a></td><td valign="top"><a href="mathgl_en_9.html#Belt-sample">9.2.7 Belt sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Box">Box</a></td><td valign="top"><a href="mathgl_en_3.html#Axis-and-Colorbar">3.7 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-box">box</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-BoxPlot">BoxPlot</a></td><td valign="top"><a href="mathgl_en_3.html#BoxPlot">3.9.16 BoxPlot</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-boxplot">boxplot</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-BoxPlot-3">BoxPlot</a></td><td valign="top"><a href="mathgl_en_9.html#BoxPlot-sample">9.1.16 BoxPlot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-boxs">boxs</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Boxs">Boxs</a></td><td valign="top"><a href="mathgl_en_3.html#Boxs">3.10.5 Boxs</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Boxs-3">Boxs</a></td><td valign="top"><a href="mathgl_en_9.html#Boxs-sample">9.2.9 Boxs sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Index-1_cp_letter-C">C</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-call">call</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-caxis">caxis</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-CAxis">CAxis</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-chart">chart</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Chart">Chart</a></td><td valign="top"><a href="mathgl_en_3.html#Chart">3.9.9 Chart</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Chart-2">Chart</a></td><td valign="top"><a href="mathgl_en_9.html#Chart-sample">9.1.22 Chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Chart-3">Chart</a></td><td valign="top"><a href="mathgl_en_9.html#Pie-chart-sample">9.1.23 Pie chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Chart-4">Chart</a></td><td valign="top"><a href="mathgl_en_9.html#Ring-chart-sample">9.1.24 Ring chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-chdir">chdir</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ClearLegend">ClearLegend</a></td><td valign="top"><a href="mathgl_en_3.html#Legend">3.8 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-clearlegend">clearlegend</a></td><td valign="top"><a href="mathgl_en_8.html#Legend-_0028MGL_0029">8.8 Legend (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-clf">clf</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Clf">Clf</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-cloud">cloud</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Cloud-2">Cloud</a></td><td valign="top"><a href="mathgl_en_9.html#Cloud-sample">9.3.2 Cloud sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-CloudP">CloudP</a></td><td valign="top"><a href="mathgl_en_3.html#Cloud">3.11.6 Cloud</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-CloudP-3">CloudP</a></td><td valign="top"><a href="mathgl_en_9.html#CloudP-sample">9.3.3 CloudP sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-CloudQ">CloudQ</a></td><td valign="top"><a href="mathgl_en_3.html#Cloud">3.11.6 Cloud</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Cmax">Cmax</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Cmin">Cmin</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_1.html#index-Color-scheme">Color scheme</a></td><td valign="top"><a href="mathgl_en_1.html#Color-scheme">1.4.3 Color scheme</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-colorbar">colorbar</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Colorbar">Colorbar</a></td><td valign="top"><a href="mathgl_en_3.html#Axis-and-Colorbar">3.7 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Colorbar-6">Colorbar</a></td><td valign="top"><a href="mathgl_en_9.html#Dens-sample">9.2.10 Dens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Colorbar-7">Colorbar</a></td><td valign="top"><a href="mathgl_en_9.html#Color-schemes-sample">9.5.10 Color schemes sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Column">Column</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ColumnPlot">ColumnPlot</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-columnplot">columnplot</a></td><td valign="top"><a href="mathgl_en_8.html#Transformation-matrix-_0028MGL_0029">8.3 Transformation matrix (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-ColumnPlot-2">ColumnPlot</a></td><td valign="top"><a href="mathgl_en_9.html#ColumnPlot-sample">9.7.13 ColumnPlot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-combine">combine</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Combine">Combine</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Cone">Cone</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-cone">cone</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Cont">Cont</a></td><td valign="top"><a href="mathgl_en_3.html#Cont">3.10.8 Cont</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-cont">cont</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Cont-5">Cont</a></td><td valign="top"><a href="mathgl_en_9.html#Cont-sample">9.2.11 Cont sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Cont-6">Cont</a></td><td valign="top"><a href="mathgl_en_9.html#Adding-mesh-sample">9.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Cont-7">Cont</a></td><td valign="top"><a href="mathgl_en_9.html#Surf-_0026-Cont-sample">9.6.3 Surf &amp; Cont sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Cont-8">Cont</a></td><td valign="top"><a href="mathgl_en_9.html#Cont-with-labels-sample">9.6.7 Cont with labels sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Cont3">Cont3</a></td><td valign="top"><a href="mathgl_en_3.html#Cont3">3.11.3 Cont3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-cont3">cont3</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Cont3-5">Cont3</a></td><td valign="top"><a href="mathgl_en_9.html#Cont3-sample">9.3.5 Cont3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContA">ContA</a></td><td valign="top"><a href="mathgl_en_3.html#Cont3">3.11.3 Cont3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-conta">conta</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-contd">contd</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContD">ContD</a></td><td valign="top"><a href="mathgl_en_3.html#ContD">3.10.10 ContD</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-ContD-5">ContD</a></td><td valign="top"><a href="mathgl_en_9.html#ContD-sample">9.2.13 ContD sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContF">ContF</a></td><td valign="top"><a href="mathgl_en_3.html#ContF">3.10.9 ContF</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-contf">contf</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-ContF-5">ContF</a></td><td valign="top"><a href="mathgl_en_9.html#ContF-sample">9.2.12 ContF sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContF3">ContF3</a></td><td valign="top"><a href="mathgl_en_3.html#ContF3">3.11.4 ContF3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-contf3">contf3</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-ContF3-5">ContF3</a></td><td valign="top"><a href="mathgl_en_9.html#ContF3-sample">9.3.6 ContF3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-ContF3-6">ContF3</a></td><td valign="top"><a href="mathgl_en_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-contfa">contfa</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContFA">ContFA</a></td><td valign="top"><a href="mathgl_en_3.html#ContF3">3.11.4 ContF3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContFX">ContFX</a></td><td valign="top"><a href="mathgl_en_3.html#ContFXYZ">3.14.3 ContFXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-contfx">contfx</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-contfy">contfy</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContFY">ContFY</a></td><td valign="top"><a href="mathgl_en_3.html#ContFXYZ">3.14.3 ContFXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-contfz">contfz</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContFZ">ContFZ</a></td><td valign="top"><a href="mathgl_en_3.html#ContFXYZ">3.14.3 ContFXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContX">ContX</a></td><td valign="top"><a href="mathgl_en_3.html#ContXYZ">3.14.2 ContXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-contx">contx</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-ContX-3">ContX</a></td><td valign="top"><a href="mathgl_en_9.html#Cont-projection-sample">9.3.7 Cont projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContY">ContY</a></td><td valign="top"><a href="mathgl_en_3.html#ContXYZ">3.14.2 ContXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-conty">conty</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-ContY-3">ContY</a></td><td valign="top"><a href="mathgl_en_9.html#Cont-projection-sample">9.3.7 Cont projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-contz">contz</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContZ">ContZ</a></td><td valign="top"><a href="mathgl_en_3.html#ContXYZ">3.14.2 ContXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-ContZ-3">ContZ</a></td><td valign="top"><a href="mathgl_en_9.html#Cont-projection-sample">9.3.7 Cont projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-copy">copy</a></td><td valign="top"><a href="mathgl_en_8.html#Data-create-_0028MGL_0029">8.16 Data create (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-CopyFont">CopyFont</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-cosfft">cosfft</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-CosFFT">CosFFT</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-crange">crange</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-crange-3">crange</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Crop">Crop</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-crop">crop</a></td><td valign="top"><a href="mathgl_en_8.html#Rearrange-data-_0028MGL_0029">8.18 Rearrange data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-crust">crust</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Crust">Crust</a></td><td valign="top"><a href="mathgl_en_3.html#Crust">3.14.5 Crust</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Crust-3">Crust</a></td><td valign="top"><a href="mathgl_en_9.html#Crust-sample">9.4.19 Crust sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ctick">ctick</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-cumsum">cumsum</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-CumSum">CumSum</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Curve">Curve</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-curve">curve</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-cut">cut</a></td><td valign="top"><a href="mathgl_en_8.html#Cutting-_0028MGL_0029">8.1.6 Cutting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-cut-4">cut</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-CutMax">CutMax</a></td><td valign="top"><a href="mathgl_en_9.html#CutMinMax-sample">9.3.9 CutMinMax sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-CutMax-1">CutMax</a></td><td valign="top"><a href="mathgl_en_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-CutMin">CutMin</a></td><td valign="top"><a href="mathgl_en_9.html#CutMinMax-sample">9.3.9 CutMinMax sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-CutMin-1">CutMin</a></td><td valign="top"><a href="mathgl_en_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-CutOff">CutOff</a></td><td valign="top"><a href="mathgl_en_3.html#Cutting">3.1.6 Cutting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-CutOff-2">CutOff</a></td><td valign="top"><a href="mathgl_en_9.html#CutOff-sample">9.3.11 CutOff sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_13.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_13.html
new file mode 100644
index 0000000..c98e85e
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_13.html
@@ -0,0 +1,316 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: Index: D &ndash; F</title>
+
+<meta name="description" content="MathGL 1.11: Index: D &ndash; F">
+<meta name="keywords" content="MathGL 1.11: Index: D &ndash; F">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-0"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_14.html#index_split-1" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Index: D &ndash; F</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_en_12.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-D">D</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-defchr">defchr</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-define">define</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-defnum">defnum</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-defpal">defpal</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Delete">Delete</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-delete">delete</a></td><td valign="top"><a href="mathgl_en_8.html#Rearrange-data-_0028MGL_0029">8.18 Rearrange data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-DeleteColumns">DeleteColumns</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-DeleteRows">DeleteRows</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-DeleteSlices">DeleteSlices</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-dens">dens</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Dens">Dens</a></td><td valign="top"><a href="mathgl_en_3.html#Dens">3.10.7 Dens</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Dens-3">Dens</a></td><td valign="top"><a href="mathgl_en_9.html#Dens-sample">9.2.10 Dens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Dens-4">Dens</a></td><td valign="top"><a href="mathgl_en_9.html#g_t2D-plot-sample">9.5.2 2D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Dens-5">Dens</a></td><td valign="top"><a href="mathgl_en_9.html#g_t3D-plot-sample">9.5.3 3D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Dens-6">Dens</a></td><td valign="top"><a href="mathgl_en_9.html#Adding-mesh-sample">9.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Dens-7">Dens</a></td><td valign="top"><a href="mathgl_en_9.html#Flow-_0026-Dens-sample">9.6.4 Flow &amp; Dens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-dens3">dens3</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Dens3">Dens3</a></td><td valign="top"><a href="mathgl_en_3.html#Dens3">3.11.2 Dens3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Dens3-3">Dens3</a></td><td valign="top"><a href="mathgl_en_9.html#Dens3-sample">9.3.4 Dens3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-DensA">DensA</a></td><td valign="top"><a href="mathgl_en_3.html#Dens3">3.11.2 Dens3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-densa">densa</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-DensX">DensX</a></td><td valign="top"><a href="mathgl_en_3.html#DensXYZ">3.14.1 DensXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-densx">densx</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-DensX-2">DensX</a></td><td valign="top"><a href="mathgl_en_9.html#Dens-projection-sample">9.3.8 Dens projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-densy">densy</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-DensY">DensY</a></td><td valign="top"><a href="mathgl_en_3.html#DensXYZ">3.14.1 DensXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-DensY-2">DensY</a></td><td valign="top"><a href="mathgl_en_9.html#Dens-projection-sample">9.3.8 Dens projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-densz">densz</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-DensZ">DensZ</a></td><td valign="top"><a href="mathgl_en_3.html#DensXYZ">3.14.1 DensXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-DensZ-2">DensZ</a></td><td valign="top"><a href="mathgl_en_9.html#Dens-projection-sample">9.3.8 Dens projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Dew">Dew</a></td><td valign="top"><a href="mathgl_en_3.html#Dew">3.13.5 Dew</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-dew">dew</a></td><td valign="top"><a href="mathgl_en_8.html#Vector-fields-_0028MGL_0029">8.13 Vector fields (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Dew-3">Dew</a></td><td valign="top"><a href="mathgl_en_9.html#Dew-sample">9.4.11 Dew sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-diff">diff</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Diff">Diff</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-diff2">diff2</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Diff2">Diff2</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-divto">divto</a></td><td valign="top"><a href="mathgl_en_8.html#Operators-_0028MGL_0029">8.22 Operators (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-dots">dots</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Dots">Dots</a></td><td valign="top"><a href="mathgl_en_3.html#Dots">3.14.4 Dots</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Dots-4">Dots</a></td><td valign="top"><a href="mathgl_en_9.html#Dots-sample">9.4.20 Dots sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-drop">drop</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Drop">Drop</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Drop-4">Drop</a></td><td valign="top"><a href="mathgl_en_9.html#Drops-sample">9.6.10 Drops sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Drop-5">Drop</a></td><td valign="top"><a href="mathgl_en_9.html#Molecules-drawing-sample">9.6.11 Molecules drawing sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-E">E</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-else">else</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-elseif">elseif</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-EndFrame">EndFrame</a></td><td valign="top"><a href="mathgl_en_3.html#Frames_002fAnimation">3.17 Frames/Animation</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-EndFrame-2">EndFrame</a></td><td valign="top"><a href="mathgl_en_3.html#IDTF-functions">3.18 IDTF functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-endif">endif</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Envelop">Envelop</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-envelop">envelop</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Envelop-2">Envelop</a></td><td valign="top"><a href="mathgl_en_9.html#Envelop-sample">9.7.6 Envelop sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Error">Error</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-error">error</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Error-2">Error</a></td><td valign="top"><a href="mathgl_en_3.html#Error">3.9.15 Error</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Error-6">Error</a></td><td valign="top"><a href="mathgl_en_9.html#Error-sample">9.1.15 Error sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-evaluate">evaluate</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Evaluate">Evaluate</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-export">export</a></td><td valign="top"><a href="mathgl_en_8.html#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Export">Export</a></td><td valign="top"><a href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-extend">extend</a></td><td valign="top"><a href="mathgl_en_8.html#Rearrange-data-_0028MGL_0029">8.18 Rearrange data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Extend">Extend</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-F">F</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Face">Face</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-facex">facex</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-FaceX">FaceX</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-facey">facey</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-FaceY">FaceY</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-FaceZ">FaceZ</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-facez">facez</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Fall">Fall</a></td><td valign="top"><a href="mathgl_en_3.html#Fall">3.10.2 Fall</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fall">fall</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Fall-3">Fall</a></td><td valign="top"><a href="mathgl_en_9.html#Fall-sample">9.2.6 Fall sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fgets">fgets</a></td><td valign="top"><a href="mathgl_en_8.html#Text-printing-_0028MGL_0029">8.6 Text printing (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Fill">Fill</a></td><td valign="top"><a href="mathgl_en_6.html#Fill">6.3 Fill</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fill">fill</a></td><td valign="top"><a href="mathgl_en_8.html#Data-filling-_0028MGL_0029">8.17 Data filling (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fill-1">fill</a></td><td valign="top"><a href="mathgl_en_8.html#Data-filling-_0028MGL_0029">8.17 Data filling (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Find">Find</a></td><td valign="top"><a href="mathgl_en_6.html#Informational-functions">6.9 Informational functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-FindAny">FindAny</a></td><td valign="top"><a href="mathgl_en_6.html#Informational-functions">6.9 Informational functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Finish">Finish</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fit">fit</a></td><td valign="top"><a href="mathgl_en_8.html#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Fit">Fit</a></td><td valign="top"><a href="mathgl_en_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Fit-9">Fit</a></td><td valign="top"><a href="mathgl_en_9.html#Fitting-sample">9.7.5 Fitting sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Fit2">Fit2</a></td><td valign="top"><a href="mathgl_en_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Fit3">Fit3</a></td><td valign="top"><a href="mathgl_en_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-FitPnts">FitPnts</a></td><td valign="top"><a href="mathgl_en_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fits">fits</a></td><td valign="top"><a href="mathgl_en_8.html#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-FitS">FitS</a></td><td valign="top"><a href="mathgl_en_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Flow">Flow</a></td><td valign="top"><a href="mathgl_en_3.html#Flow">3.13.6 Flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-flow">flow</a></td><td valign="top"><a href="mathgl_en_8.html#Vector-fields-_0028MGL_0029">8.13 Vector fields (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Flow-5">Flow</a></td><td valign="top"><a href="mathgl_en_9.html#Flow-sample">9.4.9 Flow sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Flow-6">Flow</a></td><td valign="top"><a href="mathgl_en_9.html#Flow-3D-sample">9.4.17 Flow 3D sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Flow-7">Flow</a></td><td valign="top"><a href="mathgl_en_9.html#Flow-_0026-Dens-sample">9.6.4 Flow &amp; Dens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-FlowP">FlowP</a></td><td valign="top"><a href="mathgl_en_3.html#FlowP">3.13.7 FlowP</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Flush">Flush</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-Fl_005fMathGL">Fl_MathGL</a></td><td valign="top"><a href="mathgl_en_5.html#Widget-classes">5. Widget classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-Fl_005fMathGL-2">Fl_MathGL</a></td><td valign="top"><a href="mathgl_en_5.html#Fl_005fMathGL-class">5.1 Fl_MathGL class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fog">fog</a></td><td valign="top"><a href="mathgl_en_8.html#Fog-_0028MGL_0029">8.1.3 Fog (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Fog">Fog</a></td><td valign="top"><a href="mathgl_en_3.html#Fog">3.1.3 Fog</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Fog-2">Fog</a></td><td valign="top"><a href="mathgl_en_9.html#Surface-in-fog-sample">9.2.3 Surface in fog sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-font">font</a></td><td valign="top"><a href="mathgl_en_8.html#Other-settings-_0028MGL_0029">8.1.7 Other settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_1.html#index-Font-styles">Font styles</a></td><td valign="top"><a href="mathgl_en_1.html#Font-styles">1.4.4 Font styles</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fontsize">fontsize</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-for">for</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fplot">fplot</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fsurf">fsurf</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-func">func</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_en_12.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_14.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_14.html
new file mode 100644
index 0000000..bb0b4c9
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_14.html
@@ -0,0 +1,333 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: Index: G &ndash; M</title>
+
+<meta name="description" content="MathGL 1.11: Index: G &ndash; M">
+<meta name="keywords" content="MathGL 1.11: Index: G &ndash; M">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-1"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_13.html#index_split-0" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_15.html#index_split-2" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Index: G &ndash; M</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_en_12.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-G">G</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-GetFont">GetFont</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-GetNumFrame">GetNumFrame</a></td><td valign="top"><a href="mathgl_en_3.html#Frames_002fAnimation">3.17 Frames/Animation</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-GetNumFrame-2">GetNumFrame</a></td><td valign="top"><a href="mathgl_en_3.html#IDTF-functions">3.18 IDTF functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-GetWarnCode">GetWarnCode</a></td><td valign="top"><a href="mathgl_en_3.html#Error-handling">3.1.9 Error handling</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Glyph">Glyph</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Grad">Grad</a></td><td valign="top"><a href="mathgl_en_3.html#Grad">3.10.12 Grad</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-grad">grad</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Grad-4">Grad</a></td><td valign="top"><a href="mathgl_en_9.html#Grad-sample">9.2.15 Grad sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Grid">Grid</a></td><td valign="top"><a href="mathgl_en_3.html#Axis-and-Colorbar">3.7 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-grid">grid</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Grid-2">Grid</a></td><td valign="top"><a href="mathgl_en_3.html#Grid">3.10.13 Grid</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-grid2">grid2</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-grid3">grid3</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Grid3">Grid3</a></td><td valign="top"><a href="mathgl_en_3.html#Grid3">3.11.5 Grid3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-GridA">GridA</a></td><td valign="top"><a href="mathgl_en_3.html#Grid3">3.11.5 Grid3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-grida">grida</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-H">H</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Hankel">Hankel</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-hankel">hankel</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Hist">Hist</a></td><td valign="top"><a href="mathgl_en_3.html#Data-distributions">3.16 Data distributions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-hist">hist</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Hist-4">Hist</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-I">I</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Identity">Identity</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-idset">idset</a></td><td valign="top"><a href="mathgl_en_8.html#Data-create-_0028MGL_0029">8.16 Data create (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-if">if</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Import">Import</a></td><td valign="top"><a href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-import">import</a></td><td valign="top"><a href="mathgl_en_8.html#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-info">info</a></td><td valign="top"><a href="mathgl_en_8.html#Data-create-_0028MGL_0029">8.16 Data create (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-InPlot">InPlot</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-inplot">inplot</a></td><td valign="top"><a href="mathgl_en_8.html#Transformation-matrix-_0028MGL_0029">8.3 Transformation matrix (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-insert">insert</a></td><td valign="top"><a href="mathgl_en_8.html#Rearrange-data-_0028MGL_0029">8.18 Rearrange data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Insert">Insert</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-InsertColumns">InsertColumns</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-InsertRows">InsertRows</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-InsertSlices">InsertSlices</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Integral">Integral</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-integrate">integrate</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-J">J</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-jacobian">jacobian</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-L">L</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Label-1">Label</a></td><td valign="top"><a href="mathgl_en_3.html#Axis-and-Colorbar">3.7 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Last">Last</a></td><td valign="top"><a href="mathgl_en_6.html#Informational-functions">6.9 Informational functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Legend">Legend</a></td><td valign="top"><a href="mathgl_en_3.html#Legend">3.8 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-legend">legend</a></td><td valign="top"><a href="mathgl_en_8.html#Legend-_0028MGL_0029">8.8 Legend (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Legend-5">Legend</a></td><td valign="top"><a href="mathgl_en_9.html#Legend-sample">9.6.1 Legend sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-legend-3">legend</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-legendbox">legendbox</a></td><td valign="top"><a href="mathgl_en_8.html#Legend-_0028MGL_0029">8.8 Legend (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-legendmarks">legendmarks</a></td><td valign="top"><a href="mathgl_en_8.html#Legend-_0028MGL_0029">8.8 Legend (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-light">light</a></td><td valign="top"><a href="mathgl_en_8.html#Lighting-_0028MGL_0029">8.1.2 Lighting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Light">Light</a></td><td valign="top"><a href="mathgl_en_3.html#Lighting">3.1.2 Lighting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Light-5">Light</a></td><td valign="top"><a href="mathgl_en_9.html#Several-light-sample">9.6.5 Several light sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-line">line</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Line">Line</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Line-3">Line</a></td><td valign="top"><a href="mathgl_en_9.html#Line-styles-sample">9.5.4 Line styles sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Line-4">Line</a></td><td valign="top"><a href="mathgl_en_9.html#Arrow-styles-sample">9.5.5 Arrow styles sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_1.html#index-Line-style">Line style</a></td><td valign="top"><a href="mathgl_en_1.html#Line-styles">1.4.2 Line styles</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Linear">Linear</a></td><td valign="top"><a href="mathgl_en_6.html#Interpolation">6.8 Interpolation</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Linear1">Linear1</a></td><td valign="top"><a href="mathgl_en_6.html#Interpolation">6.8 Interpolation</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-linewidth">linewidth</a></td><td valign="top"><a href="mathgl_en_8.html#Default-sizes-_0028MGL_0029">8.1.4 Default sizes (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-list">list</a></td><td valign="top"><a href="mathgl_en_8.html#Data-create-_0028MGL_0029">8.16 Data create (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-LoadFont">LoadFont</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-M">M</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-map">map</a></td><td valign="top"><a href="mathgl_en_8.html#Dual-plotting-_0028MGL_0029">8.12 Dual plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Map">Map</a></td><td valign="top"><a href="mathgl_en_3.html#Map">3.12.6 Map</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Map-3">Map</a></td><td valign="top"><a href="mathgl_en_9.html#Map-sample">9.4.4 Map sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-mark">mark</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Mark">Mark</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Mark-3">Mark</a></td><td valign="top"><a href="mathgl_en_3.html#Mark">3.9.13 Mark</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Mark-7">Mark</a></td><td valign="top"><a href="mathgl_en_9.html#Mark-sample">9.1.17 Mark sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Mark-8">Mark</a></td><td valign="top"><a href="mathgl_en_9.html#Line-styles-sample">9.5.4 Line styles sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_1.html#index-Mark-style">Mark style</a></td><td valign="top"><a href="mathgl_en_1.html#Line-styles">1.4.2 Line styles</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-marksize">marksize</a></td><td valign="top"><a href="mathgl_en_8.html#Default-sizes-_0028MGL_0029">8.1.4 Default sizes (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-marksize-2">marksize</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_1.html#index-MathGL-overview">MathGL overview</a></td><td valign="top"><a href="mathgl_en_1.html#Overview">1. Overview</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-MathGL-setup">MathGL setup</a></td><td valign="top"><a href="mathgl_en_3.html#Graphics-setup">3.1 Graphics setup</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-max">max</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Max">Max</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Max-1">Max</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Maximal">Maximal</a></td><td valign="top"><a href="mathgl_en_6.html#Informational-functions">6.9 Informational functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-mesh">mesh</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Mesh">Mesh</a></td><td valign="top"><a href="mathgl_en_3.html#Mesh">3.10.1 Mesh</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Mesh-3">Mesh</a></td><td valign="top"><a href="mathgl_en_9.html#Mesh-sample">9.2.5 Mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-meshnum">meshnum</a></td><td valign="top"><a href="mathgl_en_8.html#Other-settings-_0028MGL_0029">8.1.7 Other settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-meshnum-2">meshnum</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Message">Message</a></td><td valign="top"><a href="mathgl_en_3.html#Error-handling">3.1.9 Error handling</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_7.html#index-mglArg">mglArg</a></td><td valign="top"><a href="mathgl_en_7.html#mglArg-class">7.8 mglArg class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_7.html#index-mglColor">mglColor</a></td><td valign="top"><a href="mathgl_en_7.html#mglColor-class">7.4 mglColor class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_7.html#index-mglCommand">mglCommand</a></td><td valign="top"><a href="mathgl_en_7.html#mglCommand-class">7.7 mglCommand class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-mglData">mglData</a></td><td valign="top"><a href="mathgl_en_6.html#Create-and-delete">6.2 Create and delete</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_7.html#index-mglFont">mglFont</a></td><td valign="top"><a href="mathgl_en_7.html#mglFont-class">7.3 mglFont class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_7.html#index-mglFormula">mglFormula</a></td><td valign="top"><a href="mathgl_en_7.html#mglFormula-class">7.2 mglFormula class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-mglGraph">mglGraph</a></td><td valign="top"><a href="mathgl_en_3.html#MathGL-core">3. MathGL core</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_4.html#index-mglGraphAB">mglGraphAB</a></td><td valign="top"><a href="mathgl_en_4.html#Plotter-classes">4. Plotter classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_4.html#index-mglGraphAB-2">mglGraphAB</a></td><td valign="top"><a href="mathgl_en_4.html#mglGraphAB-class">4.1 mglGraphAB class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-mglGraphFLTK">mglGraphFLTK</a></td><td valign="top"><a href="mathgl_en_5.html#Widget-classes">5. Widget classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_4.html#index-mglGraphGL">mglGraphGL</a></td><td valign="top"><a href="mathgl_en_4.html#Plotter-classes">4. Plotter classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-mglGraphGLUT">mglGraphGLUT</a></td><td valign="top"><a href="mathgl_en_5.html#Widget-classes">5. Widget classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_4.html#index-mglGraphIDTF">mglGraphIDTF</a></td><td valign="top"><a href="mathgl_en_4.html#Plotter-classes">4. Plotter classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_4.html#index-mglGraphPS">mglGraphPS</a></td><td valign="top"><a href="mathgl_en_4.html#Plotter-classes">4. Plotter classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-mglGraphQT">mglGraphQT</a></td><td valign="top"><a href="mathgl_en_5.html#Widget-classes">5. Widget classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_4.html#index-mglGraphZB">mglGraphZB</a></td><td valign="top"><a href="mathgl_en_4.html#Plotter-classes">4. Plotter classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_7.html#index-mglParse">mglParse</a></td><td valign="top"><a href="mathgl_en_7.html#mglParse-class">7.1 mglParse class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-mglParse-2">mglParse</a></td><td valign="top"><a href="mathgl_en_9.html#Parser-sample">9.7.11 Parser sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-mglPDE-1">mglPDE</a></td><td valign="top"><a href="mathgl_en_9.html#PDE-sample">9.7.9 PDE sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_7.html#index-mglPoint">mglPoint</a></td><td valign="top"><a href="mathgl_en_7.html#mglPoint-class">7.5 mglPoint class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-mglQO2d-1">mglQO2d</a></td><td valign="top"><a href="mathgl_en_9.html#Beam-tracing-sample">9.7.10 Beam tracing sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-mglRay-1">mglRay</a></td><td valign="top"><a href="mathgl_en_9.html#PDE-sample">9.7.9 PDE sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-mglRay-2">mglRay</a></td><td valign="top"><a href="mathgl_en_9.html#Beam-tracing-sample">9.7.10 Beam tracing sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_7.html#index-mglVar">mglVar</a></td><td valign="top"><a href="mathgl_en_7.html#mglVar-class">7.6 mglVar class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Min">Min</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-min">min</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Min-1">Min</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Minimal">Minimal</a></td><td valign="top"><a href="mathgl_en_6.html#Informational-functions">6.9 Informational functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Mirror">Mirror</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-mirror">mirror</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Modify">Modify</a></td><td valign="top"><a href="mathgl_en_6.html#Fill">6.3 Fill</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-modify">modify</a></td><td valign="top"><a href="mathgl_en_8.html#Data-filling-_0028MGL_0029">8.17 Data filling (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-modify-1">modify</a></td><td valign="top"><a href="mathgl_en_8.html#Data-filling-_0028MGL_0029">8.17 Data filling (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Momentum">Momentum</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-momentum">momentum</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Momentum-2">Momentum</a></td><td valign="top"><a href="mathgl_en_6.html#Informational-functions">6.9 Informational functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-multo">multo</a></td><td valign="top"><a href="mathgl_en_8.html#Operators-_0028MGL_0029">8.22 Operators (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_en_12.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_15.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_15.html
new file mode 100644
index 0000000..338a44e
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_15.html
@@ -0,0 +1,420 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: Index: N &ndash; S</title>
+
+<meta name="description" content="MathGL 1.11: Index: N &ndash; S">
+<meta name="keywords" content="MathGL 1.11: Index: N &ndash; S">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-2"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_14.html#index_split-1" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_16.html#index_split-3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Index: N &ndash; S</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_en_12.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-N">N</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-new">new</a></td><td valign="top"><a href="mathgl_en_8.html#Data-create-_0028MGL_0029">8.16 Data create (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-NewFrame">NewFrame</a></td><td valign="top"><a href="mathgl_en_3.html#Frames_002fAnimation">3.17 Frames/Animation</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-NewFrame-2">NewFrame</a></td><td valign="top"><a href="mathgl_en_3.html#IDTF-functions">3.18 IDTF functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-next">next</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-norm">norm</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Norm">Norm</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-NormSl">NormSl</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-normsl">normsl</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-O">O</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-once">once</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Org">Org</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-origin">origin</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-P">P</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-palette">palette</a></td><td valign="top"><a href="mathgl_en_8.html#Other-settings-_0028MGL_0029">8.1.7 Other settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-pde">pde</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-perspective">perspective</a></td><td valign="top"><a href="mathgl_en_8.html#Transformation-matrix-_0028MGL_0029">8.3 Transformation matrix (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Perspective">Perspective</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-pipe">pipe</a></td><td valign="top"><a href="mathgl_en_8.html#Vector-fields-_0028MGL_0029">8.13 Vector fields (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Pipe">Pipe</a></td><td valign="top"><a href="mathgl_en_3.html#Pipe">3.13.8 Pipe</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Pipe-5">Pipe</a></td><td valign="top"><a href="mathgl_en_9.html#Pipe-sample">9.4.10 Pipe sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Pipe-6">Pipe</a></td><td valign="top"><a href="mathgl_en_9.html#Pipe-3D-sample">9.4.18 Pipe 3D sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Plot">Plot</a></td><td valign="top"><a href="mathgl_en_3.html#Plot">3.9.1 Plot</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-plot">plot</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Plot-4">Plot</a></td><td valign="top"><a href="mathgl_en_3.html#Plots-by-formula">3.14.9 Plots by formula</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Plot-7">Plot</a></td><td valign="top"><a href="mathgl_en_9.html#Plot-sample">9.1.1 Plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Plot-8">Plot</a></td><td valign="top"><a href="mathgl_en_9.html#g_t1D-plot-sample">9.5.1 1D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Plot-9">Plot</a></td><td valign="top"><a href="mathgl_en_9.html#Legend-sample">9.6.1 Legend sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Plot-10">Plot</a></td><td valign="top"><a href="mathgl_en_9.html#Semi_002dlog-sample">9.7.3 Semi-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Plot-11">Plot</a></td><td valign="top"><a href="mathgl_en_9.html#Log_002dlog-sample">9.7.4 Log-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-plotfactor">plotfactor</a></td><td valign="top"><a href="mathgl_en_8.html#Zooming-_0028MGL_0029">8.1.5 Zooming (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-PlotId">PlotId</a></td><td valign="top"><a href="mathgl_en_3.html#Other-settings">3.1.10 Other settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Pop">Pop</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-PrintInfo">PrintInfo</a></td><td valign="top"><a href="mathgl_en_6.html#Informational-functions">6.9 Informational functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Push">Push</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-put">put</a></td><td valign="top"><a href="mathgl_en_8.html#Data-filling-_0028MGL_0029">8.17 Data filling (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Puts">Puts</a></td><td valign="top"><a href="mathgl_en_3.html#Text-printing">3.6 Text printing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Puts-5">Puts</a></td><td valign="top"><a href="mathgl_en_9.html#Text-styles-sample">9.5.6 Text styles sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Puts-6">Puts</a></td><td valign="top"><a href="mathgl_en_9.html#TeX-parsing-sample">9.5.7 TeX parsing sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Puts-7">Puts</a></td><td valign="top"><a href="mathgl_en_9.html#Font-faces-sample">9.5.8 Font faces sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-PutsFit">PutsFit</a></td><td valign="top"><a href="mathgl_en_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-putsfit">putsfit</a></td><td valign="top"><a href="mathgl_en_8.html#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-PutsFit-2">PutsFit</a></td><td valign="top"><a href="mathgl_en_9.html#Fitting-sample">9.7.5 Fitting sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Putsw">Putsw</a></td><td valign="top"><a href="mathgl_en_3.html#Text-printing">3.6 Text printing</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-Q">Q</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-QMathGL">QMathGL</a></td><td valign="top"><a href="mathgl_en_5.html#Widget-classes">5. Widget classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-QMathGL-2">QMathGL</a></td><td valign="top"><a href="mathgl_en_5.html#QMathGL-class">5.2 QMathGL class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-qo2d">qo2d</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-quadplot">quadplot</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-QuadPlot">QuadPlot</a></td><td valign="top"><a href="mathgl_en_3.html#QuadPlot">3.14.8 QuadPlot</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-R">R</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Radar">Radar</a></td><td valign="top"><a href="mathgl_en_3.html#Radar">3.9.2 Radar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-radar">radar</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Radar-2">Radar</a></td><td valign="top"><a href="mathgl_en_9.html#Radar-sample">9.1.2 Radar sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ranges">ranges</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ray">ray</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-read">read</a></td><td valign="top"><a href="mathgl_en_8.html#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Read">Read</a></td><td valign="top"><a href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-ReadAll">ReadAll</a></td><td valign="top"><a href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-readall">readall</a></td><td valign="top"><a href="mathgl_en_8.html#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-readhdf">readhdf</a></td><td valign="top"><a href="mathgl_en_8.html#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-ReadHDF">ReadHDF</a></td><td valign="top"><a href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-ReadMat">ReadMat</a></td><td valign="top"><a href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-readmat">readmat</a></td><td valign="top"><a href="mathgl_en_8.html#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-ReadRange">ReadRange</a></td><td valign="top"><a href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Rearrange">Rearrange</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-rearrange">rearrange</a></td><td valign="top"><a href="mathgl_en_8.html#Rearrange-data-_0028MGL_0029">8.18 Rearrange data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-RecalcBorder">RecalcBorder</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-rect">rect</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Region">Region</a></td><td valign="top"><a href="mathgl_en_3.html#Region">3.9.5 Region</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-region">region</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Region-3">Region</a></td><td valign="top"><a href="mathgl_en_9.html#Region-sample">9.1.13 Region sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Region-4">Region</a></td><td valign="top"><a href="mathgl_en_9.html#Region-gradient-sample">9.1.14 Region gradient sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Resize">Resize</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-resize">resize</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-RestoreFont">RestoreFont</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-RestoreM">RestoreM</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-return">return</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Roll">Roll</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-roll">roll</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-rotate">rotate</a></td><td valign="top"><a href="mathgl_en_8.html#Transformation-matrix-_0028MGL_0029">8.3 Transformation matrix (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Rotate">Rotate</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-RotateN">RotateN</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-rotatetext">rotatetext</a></td><td valign="top"><a href="mathgl_en_8.html#Other-settings-_0028MGL_0029">8.1.7 Other settings (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-S">S</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-save">save</a></td><td valign="top"><a href="mathgl_en_8.html#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Save">Save</a></td><td valign="top"><a href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-SaveHDF">SaveHDF</a></td><td valign="top"><a href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-savehdf">savehdf</a></td><td valign="top"><a href="mathgl_en_8.html#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SelectPen">SelectPen</a></td><td valign="top"><a href="mathgl_en_3.html#Palette-and-colors">3.1.8 Pallete and colors</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Set">Set</a></td><td valign="top"><a href="mathgl_en_6.html#Create-and-delete">6.2 Create and delete</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetAlphaDef">SetAlphaDef</a></td><td valign="top"><a href="mathgl_en_3.html#Transparency">3.1.1 Transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetArrowSize">SetArrowSize</a></td><td valign="top"><a href="mathgl_en_3.html#Default-sizes">3.1.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetAutoRanges">SetAutoRanges</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetAxialDir">SetAxialDir</a></td><td valign="top"><a href="mathgl_en_3.html#Other-settings">3.1.10 Other settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetBarWidth">SetBarWidth</a></td><td valign="top"><a href="mathgl_en_3.html#Default-sizes">3.1.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetBaseLineWidth">SetBaseLineWidth</a></td><td valign="top"><a href="mathgl_en_3.html#Default-sizes">3.1.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-SetColumnId">SetColumnId</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetCoor">SetCoor</a></td><td valign="top"><a href="mathgl_en_3.html#Curved-coordinates">3.2.2 Curved coordinates</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetCTT">SetCTT</a></td><td valign="top"><a href="mathgl_en_3.html#Ticks">3.2.3 Ticks</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetCut">SetCut</a></td><td valign="top"><a href="mathgl_en_3.html#Cutting">3.1.6 Cutting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetCutBox">SetCutBox</a></td><td valign="top"><a href="mathgl_en_3.html#Cutting">3.1.6 Cutting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetDrawFace">SetDrawFace</a></td><td valign="top"><a href="mathgl_en_3.html#Other-settings">3.1.10 Other settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetFont">SetFont</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetFontDef">SetFontDef</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetFontSize">SetFontSize</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetFontSizeCM">SetFontSizeCM</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetFontSizeIN">SetFontSizeIN</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetFontSizePT">SetFontSizePT</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetFunc">SetFunc</a></td><td valign="top"><a href="mathgl_en_3.html#Curved-coordinates">3.2.2 Curved coordinates</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetLegendBox">SetLegendBox</a></td><td valign="top"><a href="mathgl_en_3.html#Legend">3.8 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetLegendMarks">SetLegendMarks</a></td><td valign="top"><a href="mathgl_en_3.html#Legend">3.8 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetMarkSize">SetMarkSize</a></td><td valign="top"><a href="mathgl_en_3.html#Default-sizes">3.1.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetMeshNum">SetMeshNum</a></td><td valign="top"><a href="mathgl_en_3.html#Other-settings">3.1.10 Other settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetPalColor">SetPalColor</a></td><td valign="top"><a href="mathgl_en_3.html#Palette-and-colors">3.1.8 Pallete and colors</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetPalette">SetPalette</a></td><td valign="top"><a href="mathgl_en_3.html#Palette-and-colors">3.1.8 Pallete and colors</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetPalNum">SetPalNum</a></td><td valign="top"><a href="mathgl_en_3.html#Palette-and-colors">3.1.8 Pallete and colors</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetPlotFactor">SetPlotFactor</a></td><td valign="top"><a href="mathgl_en_3.html#Zooming">3.1.5 Zooming</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetRanges">SetRanges</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetRotatedText">SetRotatedText</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetScheme">SetScheme</a></td><td valign="top"><a href="mathgl_en_3.html#Palette-and-colors">3.1.8 Pallete and colors</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-setsize">setsize</a></td><td valign="top"><a href="mathgl_en_8.html#Export-to-file-_0028MGL_0029">8.4 Export to file (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetSize">SetSize</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetTickLen">SetTickLen</a></td><td valign="top"><a href="mathgl_en_3.html#Default-sizes">3.1.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetTicks">SetTicks</a></td><td valign="top"><a href="mathgl_en_3.html#Ticks">3.2.3 Ticks</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-SetTicks-2">SetTicks</a></td><td valign="top"><a href="mathgl_en_9.html#Semi_002dlog-sample">9.7.3 Semi-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-SetTicks-3">SetTicks</a></td><td valign="top"><a href="mathgl_en_9.html#Log_002dlog-sample">9.7.4 Log-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetTickStl">SetTickStl</a></td><td valign="top"><a href="mathgl_en_3.html#Default-sizes">3.1.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetTicksVal">SetTicksVal</a></td><td valign="top"><a href="mathgl_en_3.html#Ticks">3.2.3 Ticks</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-SetTicksVal-4">SetTicksVal</a></td><td valign="top"><a href="mathgl_en_9.html#Manual-ticks-sample">9.7.12 Tick values sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetTransparent">SetTransparent</a></td><td valign="top"><a href="mathgl_en_3.html#Transparency">3.1.1 Transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetTranspType">SetTranspType</a></td><td valign="top"><a href="mathgl_en_3.html#Transparency">3.1.1 Transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetTuneTicks">SetTuneTicks</a></td><td valign="top"><a href="mathgl_en_3.html#Ticks">3.2.3 Ticks</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetWarn">SetWarn</a></td><td valign="top"><a href="mathgl_en_3.html#Error-handling">3.1.9 Error handling</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetXTT">SetXTT</a></td><td valign="top"><a href="mathgl_en_3.html#Ticks">3.2.3 Ticks</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetYTT">SetYTT</a></td><td valign="top"><a href="mathgl_en_3.html#Ticks">3.2.3 Ticks</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetZTT">SetZTT</a></td><td valign="top"><a href="mathgl_en_3.html#Ticks">3.2.3 Ticks</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Sew">Sew</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-sew">sew</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Sew-2">Sew</a></td><td valign="top"><a href="mathgl_en_9.html#Sew-sample">9.7.7 Sew sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ShowImage">ShowImage</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SimplePlot">SimplePlot</a></td><td valign="top"><a href="mathgl_en_3.html#SimplePlot">3.14.10 SimplePlot</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-sinfft">sinfft</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-SinFFT">SinFFT</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-smooth">smooth</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Smooth">Smooth</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Sphere">Sphere</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-sphere">sphere</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Sphere-3">Sphere</a></td><td valign="top"><a href="mathgl_en_9.html#Molecules-drawing-sample">9.6.11 Molecules drawing sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Spline">Spline</a></td><td valign="top"><a href="mathgl_en_6.html#Interpolation">6.8 Interpolation</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Spline1">Spline1</a></td><td valign="top"><a href="mathgl_en_6.html#Interpolation">6.8 Interpolation</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Spline5">Spline5</a></td><td valign="top"><a href="mathgl_en_6.html#Interpolation">6.8 Interpolation</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Squeeze">Squeeze</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-squeeze">squeeze</a></td><td valign="top"><a href="mathgl_en_8.html#Rearrange-data-_0028MGL_0029">8.18 Rearrange data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-stem">stem</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Stem">Stem</a></td><td valign="top"><a href="mathgl_en_3.html#Stem">3.9.6 Stem</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Stem-4">Stem</a></td><td valign="top"><a href="mathgl_en_9.html#Stem-sample">9.1.12 Stem sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-step">step</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Step">Step</a></td><td valign="top"><a href="mathgl_en_3.html#Step">3.9.10 Step</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Step-4">Step</a></td><td valign="top"><a href="mathgl_en_9.html#Step-sample">9.1.11 Step sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-stfa">stfa</a></td><td valign="top"><a href="mathgl_en_8.html#Dual-plotting-_0028MGL_0029">8.12 Dual plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-STFA">STFA</a></td><td valign="top"><a href="mathgl_en_3.html#STFA">3.12.7 STFA</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-STFA-3">STFA</a></td><td valign="top"><a href="mathgl_en_9.html#STFA-sample">9.7.8 STFA sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-stfad">stfad</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-StickPlot">StickPlot</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-stickplot">stickplot</a></td><td valign="top"><a href="mathgl_en_8.html#Transformation-matrix-_0028MGL_0029">8.3 Transformation matrix (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-StickPlot-2">StickPlot</a></td><td valign="top"><a href="mathgl_en_9.html#StickPlot-sample">9.7.14 StickPlot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-stop">stop</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-subdata">subdata</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-SubData">SubData</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SubPlot">SubPlot</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-subplot">subplot</a></td><td valign="top"><a href="mathgl_en_8.html#Transformation-matrix-_0028MGL_0029">8.3 Transformation matrix (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-SubPlot-3">SubPlot</a></td><td valign="top"><a href="mathgl_en_9.html#g_t1D-plot-sample">9.5.1 1D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-SubPlot-4">SubPlot</a></td><td valign="top"><a href="mathgl_en_9.html#Adding-mesh-sample">9.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-subto">subto</a></td><td valign="top"><a href="mathgl_en_8.html#Operators-_0028MGL_0029">8.22 Operators (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-sum">sum</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Sum">Sum</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Surf">Surf</a></td><td valign="top"><a href="mathgl_en_3.html#Surf">3.10.4 Surf</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-surf">surf</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Surf-3">Surf</a></td><td valign="top"><a href="mathgl_en_3.html#Plots-by-formula">3.14.9 Plots by formula</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-6">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#Surf-sample">9.2.1 Surf sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-7">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#Transparent-surface-sample">9.2.2 Transparent surface sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-8">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#Surface-in-fog-sample">9.2.3 Surface in fog sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-9">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#Sharp-colors-sample">9.2.4 Sharp colors sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-10">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#g_t2D-plot-sample">9.5.2 2D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-11">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#g_t3D-plot-sample">9.5.3 3D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-12">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#Adding-mesh-sample">9.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-13">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#Surf-_0026-Cont-sample">9.6.3 Surf &amp; Cont sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-14">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#Several-light-sample">9.6.5 Several light sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-15">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#Mirrored-surface-sample">9.6.6 Mirrored surface sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-surf3">surf3</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Surf3">Surf3</a></td><td valign="top"><a href="mathgl_en_3.html#Surf3">3.11.1 Surf3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf3-5">Surf3</a></td><td valign="top"><a href="mathgl_en_9.html#Surf3-sample">9.3.1 Surf3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf3-6">Surf3</a></td><td valign="top"><a href="mathgl_en_9.html#CutMinMax-sample">9.3.9 CutMinMax sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf3-7">Surf3</a></td><td valign="top"><a href="mathgl_en_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf3-8">Surf3</a></td><td valign="top"><a href="mathgl_en_9.html#CutOff-sample">9.3.11 CutOff sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf3-9">Surf3</a></td><td valign="top"><a href="mathgl_en_9.html#Coloring-by-coordinates-sample">9.6.9 Coloring by coordinates sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Surf3A">Surf3A</a></td><td valign="top"><a href="mathgl_en_3.html#Surf3A">3.12.4 Surf3A</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-surf3a">surf3a</a></td><td valign="top"><a href="mathgl_en_8.html#Dual-plotting-_0028MGL_0029">8.12 Dual plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf3A-5">Surf3A</a></td><td valign="top"><a href="mathgl_en_9.html#Surf3A-sample">9.4.13 Surf3A sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Surf3C">Surf3C</a></td><td valign="top"><a href="mathgl_en_3.html#Surf3C">3.12.2 Surf3C</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-surf3c">surf3c</a></td><td valign="top"><a href="mathgl_en_8.html#Dual-plotting-_0028MGL_0029">8.12 Dual plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf3C-5">Surf3C</a></td><td valign="top"><a href="mathgl_en_9.html#Surf3C-sample">9.4.12 Surf3C sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-surfa">surfa</a></td><td valign="top"><a href="mathgl_en_8.html#Dual-plotting-_0028MGL_0029">8.12 Dual plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SurfA">SurfA</a></td><td valign="top"><a href="mathgl_en_3.html#SurfA">3.12.3 SurfA</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-SurfA-3">SurfA</a></td><td valign="top"><a href="mathgl_en_9.html#SurfA-sample">9.4.2 SurfA sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-surfc">surfc</a></td><td valign="top"><a href="mathgl_en_8.html#Dual-plotting-_0028MGL_0029">8.12 Dual plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SurfC">SurfC</a></td><td valign="top"><a href="mathgl_en_3.html#SurfC">3.12.1 SurfC</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-SurfC-3">SurfC</a></td><td valign="top"><a href="mathgl_en_9.html#SurfC-sample">9.4.1 SurfC sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-swap">swap</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Swap">Swap</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_en_12.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_16.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_16.html
new file mode 100644
index 0000000..0cb8c91
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_16.html
@@ -0,0 +1,312 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: Index: T &ndash; Z</title>
+
+<meta name="description" content="MathGL 1.11: Index: T &ndash; Z">
+<meta name="keywords" content="MathGL 1.11: Index: T &ndash; Z">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_15.html#index_split-2" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[ &gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Index: T &ndash; Z</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_en_12.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-T">T</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Tens">Tens</a></td><td valign="top"><a href="mathgl_en_3.html#Tens">3.9.3 Tens</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-tens">tens</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Tens-4">Tens</a></td><td valign="top"><a href="mathgl_en_9.html#Tens-sample">9.1.3 Tens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Ternary">Ternary</a></td><td valign="top"><a href="mathgl_en_3.html#Curved-coordinates">3.2.2 Curved coordinates</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ternary">ternary</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Ternary-2">Ternary</a></td><td valign="top"><a href="mathgl_en_9.html#Ternary-plot-sample">9.6.8 Ternary plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Text">Text</a></td><td valign="top"><a href="mathgl_en_3.html#Text-printing">3.6 Text printing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-text">text</a></td><td valign="top"><a href="mathgl_en_8.html#Text-printing-_0028MGL_0029">8.6 Text printing (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Text-9">Text</a></td><td valign="top"><a href="mathgl_en_9.html#Text-sample">9.1.20 Text sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-textmark">textmark</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-TextMark">TextMark</a></td><td valign="top"><a href="mathgl_en_3.html#TextMark">3.9.14 TextMark</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-TextMark-9">TextMark</a></td><td valign="top"><a href="mathgl_en_9.html#TextMark-sample">9.1.18 TextMark sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_1.html#index-Textual-formulas">Textual formulas</a></td><td valign="top"><a href="mathgl_en_1.html#Textual-formulas">1.4.5 Textual formulas</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ticklen">ticklen</a></td><td valign="top"><a href="mathgl_en_8.html#Default-sizes-_0028MGL_0029">8.1.4 Default sizes (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-tickstl">tickstl</a></td><td valign="top"><a href="mathgl_en_8.html#Default-sizes-_0028MGL_0029">8.1.4 Default sizes (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-tile">tile</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Tile">Tile</a></td><td valign="top"><a href="mathgl_en_3.html#Tile">3.10.6 Tile</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Tile-3">Tile</a></td><td valign="top"><a href="mathgl_en_9.html#Tile-sample">9.2.8 Tile sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-tiles">tiles</a></td><td valign="top"><a href="mathgl_en_8.html#Dual-plotting-_0028MGL_0029">8.12 Dual plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-TileS">TileS</a></td><td valign="top"><a href="mathgl_en_3.html#TileS">3.12.5 TileS</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-TileS-3">TileS</a></td><td valign="top"><a href="mathgl_en_9.html#TileS-sample">9.4.3 TileS sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-title">title</a></td><td valign="top"><a href="mathgl_en_8.html#Text-printing-_0028MGL_0029">8.6 Text printing (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Title">Title</a></td><td valign="top"><a href="mathgl_en_3.html#Text-printing">3.6 Text printing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-tlabel">tlabel</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-torus">torus</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Torus">Torus</a></td><td valign="top"><a href="mathgl_en_3.html#Torus">3.9.11 Torus</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Torus-3">Torus</a></td><td valign="top"><a href="mathgl_en_9.html#Torus-sample">9.1.21 Torus sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-trace">trace</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Trace">Trace</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Traj">Traj</a></td><td valign="top"><a href="mathgl_en_3.html#Traj">3.13.1 Traj</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-traj">traj</a></td><td valign="top"><a href="mathgl_en_8.html#Vector-fields-_0028MGL_0029">8.13 Vector fields (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Traj-3">Traj</a></td><td valign="top"><a href="mathgl_en_9.html#Traj-sample">9.4.5 Traj sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-transform">transform</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-transforma">transforma</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-transparent">transparent</a></td><td valign="top"><a href="mathgl_en_8.html#Transparency-_0028MGL_0029">8.1.1 Transparency (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-transpose">transpose</a></td><td valign="top"><a href="mathgl_en_8.html#Rearrange-data-_0028MGL_0029">8.18 Rearrange data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Transpose">Transpose</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-TranspType">TranspType</a></td><td valign="top"><a href="mathgl_en_9.html#Normal-transparency">9.5.11 Normal transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-transptype">transptype</a></td><td valign="top"><a href="mathgl_en_8.html#Transparency-_0028MGL_0029">8.1.1 Transparency (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-TranspType-1">TranspType</a></td><td valign="top"><a href="mathgl_en_9.html#Glass_002dlike-transparency">9.5.12 Glass-like transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-TranspType-2">TranspType</a></td><td valign="top"><a href="mathgl_en_9.html#Lamp_002dlike-transparency">9.5.13 Lamp-like transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-TriCont">TriCont</a></td><td valign="top"><a href="mathgl_en_3.html#TriCont">3.14.7 TriCont</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-tricont">tricont</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-triplot">triplot</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-TriPlot">TriPlot</a></td><td valign="top"><a href="mathgl_en_3.html#TriPlot">3.14.6 TriPlot</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Tube">Tube</a></td><td valign="top"><a href="mathgl_en_3.html#Tube">3.9.12 Tube</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-tube">tube</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Tube-7">Tube</a></td><td valign="top"><a href="mathgl_en_9.html#Tube-sample">9.1.19 Tube sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-V">V</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-v">v</a></td><td valign="top"><a href="mathgl_en_6.html#Interpolation">6.8 Interpolation</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-var">var</a></td><td valign="top"><a href="mathgl_en_8.html#Data-create-_0028MGL_0029">8.16 Data create (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-vect">vect</a></td><td valign="top"><a href="mathgl_en_8.html#Vector-fields-_0028MGL_0029">8.13 Vector fields (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Vect">Vect</a></td><td valign="top"><a href="mathgl_en_3.html#Vect">3.13.2 Vect</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Vect-5">Vect</a></td><td valign="top"><a href="mathgl_en_9.html#Vect-sample">9.4.6 Vect sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Vect-6">Vect</a></td><td valign="top"><a href="mathgl_en_9.html#Vect-3D-sample">9.4.14 Vect 3D sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-VectC">VectC</a></td><td valign="top"><a href="mathgl_en_3.html#VectC">3.13.4 VectC</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-vectc">vectc</a></td><td valign="top"><a href="mathgl_en_8.html#Vector-fields-_0028MGL_0029">8.13 Vector fields (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-VectC-5">VectC</a></td><td valign="top"><a href="mathgl_en_9.html#VectC-sample">9.4.8 VectC sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-VectC-6">VectC</a></td><td valign="top"><a href="mathgl_en_9.html#VectC-3D-sample">9.4.16 VectC 3D sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-vectl">vectl</a></td><td valign="top"><a href="mathgl_en_8.html#Vector-fields-_0028MGL_0029">8.13 Vector fields (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-VectL">VectL</a></td><td valign="top"><a href="mathgl_en_3.html#VectL">3.13.3 VectL</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-VectL-5">VectL</a></td><td valign="top"><a href="mathgl_en_9.html#VectL-sample">9.4.7 VectL sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-VectL-6">VectL</a></td><td valign="top"><a href="mathgl_en_9.html#VectL-3D-sample">9.4.15 VectL 3D sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-View">View</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-W">W</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_2.html#index-widgets">widgets</a></td><td valign="top"><a href="mathgl_en_2.html#Using-FLTK_002fGLUT-window">2.1.1 Using FLTK/Qt/GLUT window</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-widgets-1">widgets</a></td><td valign="top"><a href="mathgl_en_5.html#Widget-classes">5. Widget classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-widgets-2">widgets</a></td><td valign="top"><a href="mathgl_en_5.html#Fl_005fMathGL-class">5.1 Fl_MathGL class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-widgets-3">widgets</a></td><td valign="top"><a href="mathgl_en_5.html#QMathGL-class">5.2 QMathGL class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_2.html#index-window">window</a></td><td valign="top"><a href="mathgl_en_2.html#Using-FLTK_002fGLUT-window">2.1.1 Using FLTK/Qt/GLUT window</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_4.html#index-window-1">window</a></td><td valign="top"><a href="mathgl_en_4.html#mglGraphAB-class">4.1 mglGraphAB class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-window-2">window</a></td><td valign="top"><a href="mathgl_en_5.html#Widget-classes">5. Widget classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-write">write</a></td><td valign="top"><a href="mathgl_en_8.html#Export-to-file-_0028MGL_0029">8.4 Export to file (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-WriteBMP">WriteBMP</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-WriteEPS">WriteEPS</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-WriteFrame">WriteFrame</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-WriteGIF">WriteGIF</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-WriteIDTF">WriteIDTF</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-WriteJPEG">WriteJPEG</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-WritePNG">WritePNG</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-WriteSVG">WriteSVG</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-X">X</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-xlabel">xlabel</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-XRange">XRange</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-xrange">xrange</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-xrange-3">xrange</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-xtick">xtick</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-Y">Y</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ylabel">ylabel</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-YRange">YRange</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-yrange">yrange</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-yrange-3">yrange</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ytick">ytick</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-Z">Z</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-zlabel">zlabel</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Zoom">Zoom</a></td><td valign="top"><a href="mathgl_en_3.html#Zooming">3.1.5 Zooming</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-zoom">zoom</a></td><td valign="top"><a href="mathgl_en_8.html#Zooming-_0028MGL_0029">8.1.5 Zooming (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ZRange">ZRange</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-zrange">zrange</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-zrange-3">zrange</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ztick">ztick</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_en_12.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_2.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_2.html
new file mode 100644
index 0000000..9a182dd
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_2.html
@@ -0,0 +1,2011 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: 2. MathGL examples</title>
+
+<meta name="description" content="MathGL 1.11: 2. MathGL examples">
+<meta name="keywords" content="MathGL 1.11: 2. MathGL examples">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Examples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_1.html#Thanks" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_1.html#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL-examples"></a>
+<h1 class="chapter">2. MathGL examples</h1>
+
+<p>This chapter contain information about basic and advanced MathGL, hints and samples for all types of graphics. I recommend you read first 2 sections one after another and at least look on &ldquo;Hints&rdquo; section. Also I recommend you to look at <a href="mathgl_en_1.html#General-concepts">General concepts</a> and <a href="mathgl_en_1.html#FAQ">FAQ</a>. Sample code for some of these examples can be found in <a href="http://mathgl.sf.net/pictures.html">http://mathgl.sf.net/pictures.html</a> and in <a href="mathgl_en_9.html#Samples">Samples</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Basic-usage">2.1 Basic usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Advanced-usage">2.2 Advanced usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-handling">2.3 Data handling</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-plotting">2.4 Data plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#C_002fFortran-interface">2.5 C/Fortran interface</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#MathGL-and-PyQt">2.6 MathGL and PyQt</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Hints">2.7 Hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Basic-usage"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Examples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Using-FLTK_002fGLUT-window" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Basic-usage-1"></a>
+<h2 class="section">2.1 Basic usage</h2>
+
+<p>MathGL library can be used by several manners. Each has positive and negative sides:
+</p><ul>
+<li>
+<em>The using of MathGL library features for creating graphical window (requires FLTK or GLUT libraries).</em>
+
+<p>Positive side is the possibility to view the plot at once and to modify it (rotate, zoom or switch on transparency or lighting) by hand or by mouse. Negative sides are: the need  of X-terminal and limitation consisting in working with the only one set of data at a time.
+</p></li><li>
+<em>Direct writing to file in bitmap or vector format without creation of graphical window.</em>
+
+<p>Positive aspects are: batch processing of similar data set (for example, a set of resulting data files for different calculation parameters), running from the console program (including the cluster calculation), fast and automated drawing, saving pictures for further analysis (or demonstration). Negative sides are: the usage of the external program for picture viewing. Also, the data plotting is non-visual. So, you have to imagine the picture (view angles, lighting and so on) before the plotting. I recommend to use graphical window for determining the optimal parameters of plotting on the base of some typical data set. And later use these parameters for batch processing in console program.
+</p></li><li>
+<em>Drawing in memory with the following displaying by other graphical program.</em>
+
+<p>In this case the programmer has more freedom in selecting the window libraries (not only FLTK or GLUT), in positioning and surroundings control and so on. I recommend to use such way for &ldquo;settled&rdquo; programs.
+</p></li></ul>
+
+<p>Let me consider the aforesaid in more detail.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Using-FLTK_002fGLUT-window">2.1.1 Using FLTK/Qt/GLUT window</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Drawing-to-file">2.1.2 Drawing to file</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Drawing-in-memory">2.1.3 Drawing in memory</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Using-QMathGL">2.1.4 Using QMathGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+
+
+<hr size="6">
+<a name="Using-FLTK_002fGLUT-window"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Basic-usage" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Drawing-to-file" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Using-FLTK_002fQt_002fGLUT-window"></a>
+<h3 class="subsection">2.1.1 Using FLTK/Qt/GLUT window</h3>
+<a name="index-window"></a>
+<a name="index-widgets"></a>
+
+<p>The &ldquo;interactive&rdquo; way of drawing in MathGL consists in window creation  with help of class <code>mglGraphFLTK</code>, <code>mglGraphQT</code> or <code>mglGraphGLUT</code> (see section <a href="mathgl_en_5.html#Widget-classes">Widget classes</a>) and the following drawing in this window. There is a corresponding code:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Box();
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mglGraphFLTK gr;
+        gr.Window(argc,argv,sample,&quot;MathGL examples&quot;);
+        return mglFlRun();
+    }
+</pre><p>Here function <code>sample</code> is defined. This function does all drawing. Other function <code>main</code> is entry point function for console program. Arguments of <code>main</code> should be transfered to <code>Window()</code> since it may contain OS specific information (see section <a href="mathgl_en_4.html#mglGraphAB-class">mglGraphAB class</a>).
+</p>
+<p>Alternatively you can create yours own class inherited from class <code>mglDraw</code> and re-implement the function <code>Draw()</code> in it:
+</p><pre class="verbatim">    class Foo : public mglDraw
+    {
+    public:
+        int Draw(mglGraph *gr);
+    } foo;
+    //-----------------------------------------------------
+    int Foo::Draw(mglGraph *gr)
+    {
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Box();
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mglGraphFLTK gr;
+        gr.Window(argc,argv,foo,&quot;MathGL examples&quot;);
+        return mglFlRun();
+    }
+</pre>
+<p>The similar code can be written for <code>mglGraphQT</code> or for <code>mglGraphGLUT</code> window (function <code>sample()</code> is the same):
+</p><pre class="verbatim">    int main(int argc,char **argv)
+    {
+        mglGraphGLUT gr;
+        gr.Window(argc,argv,sample,&quot;MathGL examples&quot;);
+        return 0;
+    }
+</pre>
+<p>The rotation, shift, zooming, switching on/off transparency and lighting can be done with help of tool-buttons (for <code>mglGraphFLTK</code> and <code>mglGraphQT</code>) or by hot-keys: &lsquo;<samp>a</samp>&rsquo;, &lsquo;<samp>d</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;, &lsquo;<samp>s</samp>&rsquo; for plot rotation, &lsquo;<samp>r</samp>&rsquo; and &lsquo;<samp>f</samp>&rsquo; switching on/off transparency and lighting. Press &lsquo;<samp>x</samp>&rsquo; for exit (or closing the window).
+</p>
+<p>In this example function <code>sample</code> rotates axes (<code>Rotate()</code>, see section <a href="mathgl_en_3.html#Transformation-matrix">Transformation matrix</a>) and draws the bounding box (<code>Box()</code>). Drawing procedure is separated in a function since it will be used on demand when window canvas needs to be redrawn. Widget classes (<code>mglGraphFLTK</code>, <code>mglGraphGLUT</code> and so on) support a delayed drawing, when all plotting functions are called once at the beginning of writing to memory lists. Further program displays the saved lists faster. Resulting redrawing will be faster but it requires sufficient memory. Several lists (frames) can be displayed one after another (by pressing &lsquo;<samp>,</samp>&rsquo;, &lsquo;<samp>.</samp>&rsquo;) or run as cinema. To switch these feature on one needs to modify function <code>sample</code>:
+</p><pre class="verbatim">    int sample1(mglGraph *gr, void *)
+    {
+        gr-&gt;NewFrame();             // the first frame
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Box();
+        gr-&gt;EndFrame();             // end of the first frame
+        gr-&gt;NewFrame();             // the second frame
+        gr-&gt;Box();
+        gr-&gt;Axis(&quot;xy&quot;);
+        gr-&gt;EndFrame();             // end of the second frame
+        return GetNumFrame();       // returns the frame number
+    }
+</pre><p>First, the function creates a frame <code>NewFrame()</code> for rotated axes and draws the bounding box. After the frame drawing the function <code>EndFrame()</code> <strong>must be</strong> called! The second frame contains the bounding box and axes <code>Axis(&quot;xy&quot;)</code> in the initial (unrotated) coordinates. Function <code>sample</code> returns the number of created frames <code>GetNumFrame()</code>.
+</p>
+<hr size="6">
+<a name="Drawing-to-file"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Using-FLTK_002fGLUT-window" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Drawing-in-memory" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Drawing-to-file-1"></a>
+<h3 class="subsection">2.1.2 Drawing to file</h3>
+
+<p>Another way of using MathGL library is the direct picture writing to file. It is most usable for plot creating during calculation or for using of small programs (like Matlab or Scilab scripts) for visualizing repetitive sets of data. But the speed of drawing is much higher in comparison with a script language. There are two classes for exporting in file: class <code>mglGraphZB</code> saves in bitmap format (like PNG), <code>mglGraphPS</code> saves in vector PostScript format (see section <a href="mathgl_en_4.html#Plotter-classes">Plotter classes</a>).
+</p>
+<p>The following code produces a bitmap PNG picture:
+</p><pre class="verbatim">    int main(int ,char **)
+    {
+        mglGraphZB gr;
+        gr.Alpha(true);
+        gr.Light(true);             gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);           // The same drawing function.
+        gr.WritePNG(&quot;test.png&quot;);    // Don't forget to save the result!
+        return 0;
+    }
+</pre><p>The only difference from the previous (using windows) variant is manual switching the transparency  <code>Alpha</code> and lightning <code>Light</code> on, if the plot requires it. The using of frames is not advisable since the whole image is prepared each time. If function <code>sample</code> contains frames then each frame will be saved to a separate file. In principle, one does not need to separate drawing functions in case of direct file writing in consequence of the single calling of this function for each picture. However, one may use the same drawing procedure to create a plot with changed parameters, to export in different file types, to emphasize the drawing code and so on. So, in future I will put the drawing in separate function.
+</p>
+<p>The code for export in vector EPS file looks the same:
+</p><pre class="verbatim">    int main(int ,char **)
+    {
+        mglGraphPS gr;
+        gr.Light(true);             gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);           // The same drawing function.
+        gr.WriteEPS(&quot;test.eps&quot;);    // Don't forget to save the result!
+        return 0;
+    }
+</pre><p>The differences from the using of bitmap picture are: applying of the other class <code>mglGraphPS</code>, and writing to other format (function <code>WriteEPS()</code> instead of function <code>WritePNG()</code>). Moreover, there is no switching of the plot transparency <code>Alpha</code> since EPS format does not support it. Possibly I shall include transparency in future by program emulation.
+</p>
+<p>Classes <code>mglGraphZB</code> and <code>mglGraphPS</code> have some merits and demerits. Class <code>mglGraphZB</code> draws beautiful surface with transparency, smoothed colors and lightning, but the output picture is <em>bitmap</em>, that leads to a bad scalability. On the contrary, class <code>mglGraphPS</code> creates vector file with excellent scalability. But file has large size (especially for surfaces), it does not support transparency and color smoothing. So, vector picture looks stylish but a bit angularly.
+</p>
+<hr size="6">
+<a name="Drawing-in-memory"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Drawing-to-file" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Using-QMathGL" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Drawing-in-memory-1"></a>
+<h3 class="subsection">2.1.3 Drawing in memory</h3>
+
+<p>The last way of MathGL using is the drawing in memory. Class <code>mglGraphZB</code> allows one  to create a bitmap picture in memory. Further this picture can be displayed in window by some window libraries (like wxWidgets, FLTK, Windows GDI and so on). For example, the code for drawing in wxWidget library looks like:
+</p><pre class="verbatim">    void MyForm::OnPaint(wxPaintEvent&amp; event)
+    {
+        int w,h,x,y;
+        GetClientSize(&amp;w,&amp;h);   // size of the picture
+        mglGraphZB gr(w,h);
+
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);
+
+        wxImage img(w,h,gr.GetBits(),true);
+        ToolBar-&gt;GetSize(&amp;x,&amp;y);    // gets a height of the toolbar if any
+        wxPaintDC dc(this);         // and draws it
+        dc.DrawBitmap(wxBitmap(img),0,y);
+    }
+</pre><p>The drawing in other libraries is most the same.
+</p>
+<p>For example, FLTK code will look like
+</p><pre class="verbatim">    void Fl_MyWidget::draw()
+    {
+        mglGraphZB gr(w(),h());
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);
+        fl_draw_image(gr.GetBits(), x(), y(), gr.GetWidth(), gr.GetHeight(), 3);
+    }
+</pre><p>Qt code will look like
+</p><pre class="verbatim">    void MyWidget::paintEvent(QPaintEvent *)
+    {
+        mglGraphZB gr(w(),h());
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);
+
+        // Qt don't support RGB format as is. So, let convert it to BGRN.
+        const uchar *bb = gr.GetBits();
+        register long i, w=gr.GetWidth(), h=gr.GetHeight();
+        *buf = new uchar[4*w*h];
+        for(i=0;i&lt;w*h;i++)
+        {
+            (*buf)[4*i]   = bb[3*i+2];
+            (*buf)[4*i+1] = bb[3*i+1];
+            (*buf)[4*i+2] = bb[3*i];
+            (*buf)[4*i+3] = 255;
+        }
+        QPixmap pic = QPixmap::fromImage(QImage(*buf, w, h, QImage::Format_RGB32));
+
+        QPainter paint;
+        paint.begin(this);  paint.drawPixmap(0,0,pic);  paint.end();
+        delete []buf;
+    }
+</pre>
+<hr size="6">
+<a name="Using-QMathGL"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Drawing-in-memory" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Using-QMathGL-1"></a>
+<h3 class="subsection">2.1.4 Using QMathGL</h3>
+
+<p>MathGL have several interface widgets for different widget libraries. There are QMathGL for Qt, Fl_MathGL for FLTK in MathGL v.1.8. These classes provide control which display MathGL graphics. Unfortunately there is no uniform interface for widget classes because all libraries have slightly different set of functions, features and so on. However the usage of MathGL widgets is rather simple. Let me show it on the example of QMathGL.
+</p>
+<p>First of all you have to define the drawing function or inherit a class from <code>mglDraw</code> class. After it just create a window and setup QMathGL instance as any other Qt widget:
+</p><pre class="verbatim">    int main(int argc,char **argv)
+    {
+        QApplication a(argc,argv);
+        QMainWindow *Wnd = new QMainWindow;
+        Wnd-&gt;resize(650,480);  // for fill up the QMGL, menu and toolbars
+        Wnd-&gt;setWindowTitle(title);
+        // here I allow to scroll QMathGL -- the case 
+        // then user want to prepare huge picture
+        QScrollArea *scroll = new QScrollArea(Wnd);
+
+        // Create and setup QMathGL
+        QMathGL *QMGL = new QMathGL(Wnd);
+        QMGL-&gt;setPopup(popup); // if you want to setup popup menu for QMGL
+        QMGL-&gt;setDraw(sample, NULL);
+        // or use QMGL-&gt;setDraw(foo); for instance of class Foo:public mglDraw
+        QMGL-&gt;update();
+
+        // continue other setup (menu, toolbar and so on)
+        makeMenu();
+        scroll-&gt;setWidget(QMGL);
+        Wnd-&gt;setCentralWidget(scroll);
+        Wnd-&gt;show();
+        return a.exec();
+    }
+</pre>
+
+<hr size="6">
+<a name="Advanced-usage"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Using-QMathGL" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Subplots" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Advanced-usage-1"></a>
+<h2 class="section">2.2 Advanced usage</h2>
+
+<p>Now I show several non-obvious features of MathGL: several subplots in a single picture, curvilinear coordinates, text printing and so on. Generally you may miss this section at first reading, but I don&rsquo;t recommend it.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Subplots">2.2.1 Subplots</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-grids">2.2.2 Axis and grids</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Curvilinear-coordinates">2.2.3 Curvilinear coordinates</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing-example">2.2.4 Text printing example</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Animation">2.2.5 Animation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Subplots"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Advanced-usage" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-grids" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Subplots-1"></a>
+<h3 class="subsection">2.2.1 Subplots</h3>
+
+<p>Let me demonstrate possibilities of axes transformation. MathGL has the following functions: <code>SubPlot</code>, <code>InPlot</code>, <code>Aspect</code> and <code>Rotate</code> (see section <a href="mathgl_en_3.html#Transformation-matrix">Transformation matrix</a>). The order of their calling is strictly determined. First, one changes the position of axes in image area (functions <code>SubPlot</code> and <code>InPlot</code>). After that one may rotate the plot (function <code>Rotate</code>). Finally, one may change aspects of axes (function <code>Aspect</code>). The following code illustrates the aforesaid it:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;SubPlot(2,2,0);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(-1,1.1,1),&quot;Just box&quot;,&quot;rL&quot;);
+        gr-&gt;InPlot(0.2,0.5,0.7,1);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0,1.2,1),&quot;InPlot example&quot;);
+
+        gr-&gt;SubPlot(2,2,1);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Aspect(1,1,1);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(1,1,1.5),&quot;Rotate only&quot;,&quot;rR&quot;);
+
+        gr-&gt;SubPlot(2,2,2);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Aspect(1,1,2);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0,0,2),&quot;Aspect and Rotate&quot;);
+
+        gr-&gt;SubPlot(2,2,3);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Aspect(1,2,2);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0,0,1.5),&quot;Aspect in other direction&quot;);
+        return 0;
+    }
+</pre><p>Here I used function <code>Puts</code> for printing the text in arbitrary position of picture (see section <a href="mathgl_en_3.html#Text-printing">Text printing</a>). Text coordinates and size are connected with axes. However, text coordinates may be everywhere, including the outside the bounding box. I shall show its features later in See section <a href="#Text-printing-example">Text printing example</a>.
+</p>
+<div class="float">
+<img src="../png/sample1.png" alt="../png/sample1">
+
+</div><p><strong>Example of several subplots on the single picture.
+</strong>
+</p>
+<hr size="6">
+<a name="Axis-and-grids"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Subplots" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Curvilinear-coordinates" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-and-grids-1"></a>
+<h3 class="subsection">2.2.2 Axis and grids</h3>
+
+<p>MathGL library can draw not only the bounding box but also the axes, grids, labels and so on. The limits of axes and their origin (the point of intersection) are determined by function <code>Axis()</code>. Also you can use <code>XRange(), YRange(), ZRange()</code> functions (see section <a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">Ranges (bounding box)</a>). Ticks on axis are specified by function <code>SetTicks</code> (see section <a href="mathgl_en_3.html#Ticks">Ticks</a>). First argument the direction for each change will be applied. Second argument gives the step between ticks (if positive) or gives the number of ticks on the axis (if negative) or set to use logarithmic ticks (if zero). Third argument gives numbers of sub-ticks between ticks (default is zero). Last argument define the initial ticks position.
+</p>
+<p>Function <code>Axis</code> draws axes. Its textual string shows in which directions the axis or axes will be drawn (by default <code>&quot;xyz&quot;</code>, function draws axes in all directions). Function <code>Grid</code> draws grid perpendicularly to specified directions. Example of axes and grid drawing is:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;SubPlot(2,2,0);
+        gr-&gt;SetTicks('x', 0.4, 3);  // sets tick step to 0.5
+        gr-&gt;SetTicks('y', 0.4, 3);  // and draws 3 subticks
+        gr-&gt;Box();                  // should be after the ticks change
+        gr-&gt;Axis(&quot;xy&quot;);
+        gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Axis and grid&quot;);
+
+        gr-&gt;SetTicks('x');  gr-&gt;SetTicks('y'); // restore back
+        gr-&gt;Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(0,0,0));
+
+        gr-&gt;SubPlot(2,2,1);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Axis();
+        gr-&gt;Label('x',&quot;x&quot;);
+        gr-&gt;Label('y',&quot;y&quot;);
+        gr-&gt;Label('z',&quot;z&quot;);
+        gr-&gt;Puts(mglPoint(0,0,1.5),&quot;Axis and labels&quot;);
+
+        gr-&gt;SubPlot(2,2,2);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;SetTicks('x', 0.2); gr-&gt;SetTicks('y', 0.2);
+        gr-&gt;SetTicks('z', 0.2); // too low step of ticks
+        gr-&gt;Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,-1,-1));
+        gr-&gt;Axis();
+        gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,0,1.5),&quot;Shift origin and add grid&quot;);
+        gr-&gt;Puts(mglPoint(0,0,1.2),&quot;(note, too many ticks)&quot;);
+
+        gr-&gt;SubPlot(2,2,3);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;SetTicks('x', -6);  // decrease the number of ticks
+        gr-&gt;SetTicks('y', -6);
+        gr-&gt;Axis(&quot;yz&quot;);
+        gr-&gt;Label('y',&quot;Y axis&quot;,0);
+        gr-&gt;Label('z',&quot;Z axis&quot;,0);
+        gr-&gt;Puts(mglPoint(0,0,1.5),&quot;Remove X axis, and&quot;);
+        gr-&gt;Puts(mglPoint(0,0,1.2),&quot;decrease number of ticks&quot;);
+        return 0;
+    }
+</pre>
+<p>This example shows the importance of the correct choosing of the number of ticks on axis. If tick step is too small then its text may overlap and becomes unreadable. This code has the example of <code>Label</code> function. It draws label for axis in specified direction. The text position on axis is specified by third argument of <code>Label</code> function. If it is positive then then text is drawn near the axis maximum, if negative then the same takes place near the minimum of axis, if zero - then at the center of axis.
+</p>
+<div class="float">
+<img src="../png/sample2.png" alt="../png/sample2">
+
+</div><p><strong>Example of setting up axis range and axis ticks.
+</strong>
+</p>
+<hr size="6">
+<a name="Curvilinear-coordinates"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-grids" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing-example" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Curvilinear-coordinates-1"></a>
+<h3 class="subsection">2.2.3 Curvilinear coordinates</h3>
+
+
+<p>Now let use curvilinear coordinates. In difference from other systems of plot creation, MathGL uses textual formulas for connection of the old (data) and new (output) coordinates. This allows one to plot in arbitrary coordinates. The following code plots the line <var>y</var>=0, <var>z</var>=0 in Cartesian, polar, parabolic and spiral coordinates:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData x(50),y(50),z(50);
+        y.Fill(0.5,0.5);
+        x.Fill(-1,1);           // creates data arrays
+
+        gr-&gt;Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,1,-1));
+        gr-&gt;dz = 0.5;           // sets tick step to 0.5
+
+        gr-&gt;SubPlot(2,2,0);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Plot(x,y,z,&quot;r2&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Cartesian&quot;);
+
+        gr-&gt;SubPlot(2,2,1);
+        gr-&gt;SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,0);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Plot(x,y,z,&quot;r2&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Cylindrical&quot;);
+
+        gr-&gt;SubPlot(2,2,2);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;SetFunc(&quot;2*y*x&quot;,&quot;y*y - x*x&quot;,0);
+        gr-&gt;Plot(x,y,z,&quot;r2&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Parabolic&quot;);
+
+        gr-&gt;SubPlot(2,2,3);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,&quot;x+z&quot;);
+        gr-&gt;Plot(x,y,z,&quot;r2&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Spiral&quot;);
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample3.png" alt="../png/sample3">
+
+</div><p><strong>Example of curvilinear coordinates
+</strong>
+</p>
+
+<hr size="6">
+<a name="Text-printing-example"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Curvilinear-coordinates" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Animation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-printing-example-1"></a>
+<h3 class="subsection">2.2.4 Text printing example</h3>
+
+<p>MathGL prints text by vector font. There are functions for manual specifying of text position (like <code>Puts</code>) and for its automatic selection (like <code>Label</code>, <code>Legend</code> and so on). MathGL prints text always in specified position even if it lies outside the bounding box. The default size of font is specified by variables <var>FontSize</var> (see section <a href="mathgl_en_3.html#Font-settings">Font settings</a>). However, the actual size of output string depends on position of axes (depends on functions <code>SubPlot</code>, <code>InPlot</code>). The switching of the font style (italic, bold, wire and so on) can be done for the whole string (by function parameter) or inside the string. By default MathGL parses TeX-like commands for symbols and indexes (see see section <a href="mathgl_en_1.html#Font-styles">Font styles</a>). Example of MathGL font drawing is:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        setlocale(LC_CTYPE, &quot;ru_RU.cp1251&quot;);
+        gr-&gt;Puts(mglPoint(0,1),&quot;Text can be in ASCII and in Unicode&quot;);
+        gr-&gt;Puts(mglPoint(0,0.6),&quot;It can be \\wire{wire}, \\big{big} &quot;
+            &quot;or #r{colored}&quot;);
+        gr-&gt;Puts(mglPoint(0,0.2),&quot;One can change style in string: &quot;
+            &quot;\\b{bold}, \\i{italic, \\b{both}}&quot;);
+        gr-&gt;Puts(mglPoint(0,-0.2),&quot;Easy to \\a{overline} or &quot;
+            &quot;\\u{underline}&quot;);
+        gr-&gt;Puts(mglPoint(0,-0.6),&quot;Easy to change indexes &quot;
+            &quot;^{up} _{down} @{center}&quot;);
+        gr-&gt;Puts(mglPoint(0,-1),&quot;It parse TeX: \\int \\alpha \\cdot &quot;
+            &quot;\\sqrt3{sin(\\pi x)^2 + \\gamma_{i_k}} dx&quot;);
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample4.png" alt="../png/sample4">
+
+</div><p><strong>Example of text printing with different font effects
+</strong>
+</p>
+<p>Another example demonstrate the features of TeX formula parsing.
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Puts(mglPoint(0), &quot;\\sqrt{\\frac{\\alpha^{\\gamma^2}+&quot;
+            &quot;\\overset 1{\\big\\infty}}{\\sqrt3{2+b}}}&quot;, 0, -4);
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/samplee.png" alt="../png/samplee">
+
+</div><p><strong>Example of TeX formula parsing
+</strong>
+</p>
+<p>Finally you can change font during execution (this work well for mglGraphZB class only).
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        float h=1.1, d=0.25;
+        gr-&gt;LoadFont(&quot;STIX&quot;);       gr-&gt;Puts(mglPoint(0,h), &quot;default font (STIX)&quot;);
+        gr-&gt;LoadFont(&quot;adventor&quot;);   gr-&gt;Puts(mglPoint(0,h-d), &quot;adventor font&quot;);
+        gr-&gt;LoadFont(&quot;bonum&quot;);      gr-&gt;Puts(mglPoint(0,h-2*d), &quot;bonum font&quot;);
+        gr-&gt;LoadFont(&quot;chorus&quot;);     gr-&gt;Puts(mglPoint(0,h-3*d), &quot;chorus font&quot;);
+        gr-&gt;LoadFont(&quot;cursor&quot;);     gr-&gt;Puts(mglPoint(0,h-4*d), &quot;cursor font&quot;);
+        gr-&gt;LoadFont(&quot;heros&quot;);      gr-&gt;Puts(mglPoint(0,h-5*d), &quot;heros font&quot;);
+        gr-&gt;LoadFont(&quot;heroscn&quot;);    gr-&gt;Puts(mglPoint(0,h-6*d), &quot;heroscn font&quot;);
+        gr-&gt;LoadFont(&quot;pagella&quot;);    gr-&gt;Puts(mglPoint(0,h-7*d), &quot;pagella font&quot;);
+        gr-&gt;LoadFont(&quot;schola&quot;);     gr-&gt;Puts(mglPoint(0,h-8*d), &quot;schola font&quot;);
+        gr-&gt;LoadFont(&quot;termes&quot;);     gr-&gt;Puts(mglPoint(0,h-9*d), &quot;termes font&quot;);
+    }
+</pre>
+<div class="float">
+<img src="../png/fonts.png" alt="../png/fonts">
+
+</div><p><strong>Example of font face changing.
+</strong>
+</p>
+<hr size="6">
+<a name="Animation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing-example" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Animation-1"></a>
+<h3 class="subsection">2.2.5 Animation</h3>
+
+<p>You can make animation by several methods in MathGL: by export in animated GIF, or by save each frame in separate file (usually JPEG) and convert these files into movie. Let me show both methods.
+</p>
+<p>The simplest methods is making animated GIF. There are 3 steps: (1) open GIF file by <code>StartGIF()</code> function; (2) create the frames by calling <code>NewFrame()</code> before and <code>EndFrame()</code> after plotting; (3) close GIF by <code>CloseGIF()</code> function. So the simplest code for &ldquo;running&rdquo; sinusoid will look like this:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData dat(100);
+        char str[32];
+        gr-&gt;StartGIF(&quot;sample.gif&quot;);
+        for(int i=0;i&lt;100;i++)
+        {
+            gr-&gt;NewFrame();     // start frame
+            gr-&gt;Box();          // some plotting
+            sprintf(str,&quot;sin(pi*x+%g*pi)&quot;,0.02*i);
+            dat.Modify(str);
+            gr-&gt;Plot(dat,&quot;b&quot;);
+            gr-&gt;EndFrame();     // end frame
+        }
+        gr-&gt;CloseGIF();
+        return 0;
+    }
+</pre>
+<p>The second way is saving each frame in separate file (usually JPEG) and later make the movie from them. MathGL have special function for saving frames &ndash; it is <code>WriteFrame()</code>. This function save each frame with automatic name &lsquo;<samp>frame0001.jpg, frame0002.jpg</samp>&rsquo; and so on. Here prefix &lsquo;<samp>frame</samp>&rsquo; is defined by <var>PlotId</var> variable of <code>mglGraph</code> class. So the similar code will look like this:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData dat(100);
+        char str[32];
+        for(int i=0;i&lt;100;i++)
+        {
+            gr-&gt;NewFrame();     // start frame
+            gr-&gt;Box();          // some plotting
+            sprintf(str,&quot;sin(pi*x+%g*pi)&quot;,0.02*i);
+            dat.Modify(str);
+            gr-&gt;Plot(dat,&quot;b&quot;);
+            gr-&gt;EndFrame();     // end frame
+            gr-&gt;WriteFrame();   // save frame
+        }
+        return 0;
+    }
+</pre>
+<p>Created files can be converted to movie by help of a lot of programs. For example, you can use ImageMagic (command &lsquo;<samp>convert frame*.jpg movie.mpg</samp>&rsquo;), MPEG library, GIMP and so on.
+</p>
+<p>Finally, you can use <code>mgl2gif</code> tool for doing the same with MGL scripts (see section <a href="mathgl_en_8.html#Utilities">Utilities for parsing MGL</a>).
+</p>
+<hr size="6">
+<a name="Data-handling"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Animation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Array-creation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-handling-1"></a>
+<h2 class="section">2.3 Data handling</h2>
+
+<p>Class <code>mglData</code> contains all functions for the data handling in MathGL (see section <a href="mathgl_en_6.html#mglData-class">mglData class</a>). There are several matters why I use class <code>mglData</code> but not a single array: it does not depend on type of data (float or double), sizes of data arrays are kept with data, memory working is simpler and safer.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Array-creation">2.3.1 Array creation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-changing">2.3.2 Data changing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Array-creation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-handling" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-changing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Array-creation-1"></a>
+<h3 class="subsection">2.3.1 Array creation</h3>
+
+<p>One can put the data in <code>mglData</code> instance by several ways. Let us do it for sinus function:
+</p><ul>
+<li>
+one can create external array, fill it and put to <code>mglData</code> variable
+<pre class="verbatim">    double *a = new double[50];
+    for(int i=0;i&lt;50;i++)   a[i] = sin(M_PI*i/49.);
+
+    mglData y;
+    y.Set(a,50);
+</pre>
+</li><li>
+another way is to create <code>mglData</code> instance of the desired size and then to work directly with data in this variable
+<pre class="verbatim">    mglData y(50);
+    for(int i=0;i&lt;50;i++)   y.a[i] = sin(M_PI*i/49.);
+</pre>
+</li><li>
+next way is to fill the data in <code>mglData</code> instance by textual formula with the help of <code>Modify()</code> function
+<pre class="verbatim">    mglData y(50);
+    y.Modify(&quot;sin(pi*x)&quot;);
+</pre>
+</li><li>
+or one may fill the array in some interval and modify it later
+<pre class="verbatim">    mglData y(50);
+    y.Fill(0,M_PI);
+    y.Modify(&quot;sin(u)&quot;);
+</pre>
+</li><li>
+finally it can be loaded from file
+<pre class="verbatim">    FILE *fp=fopen(&quot;sin.dat&quot;,&quot;wt&quot;);   // create file first
+    for(int i=0;i&lt;50;i++)   fprintf(fp,&quot;%g\n&quot;,sin(M_PI*i/49.));
+    fclose(fp);
+
+    mglData y(&quot;sin.dat&quot;);             // load it
+</pre>
+</li><li>
+at this one can read only part of data
+<pre class="verbatim">    FILE *fp-fopen(&quot;sin.dat&quot;,&quot;wt&quot;);   // create large file first
+    for(int i=0;i&lt;70;i++)   fprintf(fp,&quot;%g\n&quot;,sin(M_PI*i/49.));
+    fclose(fp);
+
+    mglData y;
+    y.Read(&quot;sin.dat&quot;,50);             // load it
+</pre></li></ul>
+
+<p>Creation of 2d- and 3d-arrays is mostly the same. But one should keep in mind that class <code>mglData</code> uses flat data representation. For example, matrix 30*40 is presented as flat (1d-) array with length 30*40=1200 (nx=30, ny=40). The element with indexes {i,j} is a[i+nx*j]. So for 2d array we have:
+</p><pre class="verbatim">    mglData z(30,40);
+    for(int i=0;i&lt;30;i++)   for(int j=0;j&lt;40;j++)
+        z.a[i+30*j] = sin(M_PI*i/29.)*sin(M_PI*j/39.);
+</pre><p>or by using <code>Modify()</code> function
+</p><pre class="verbatim">    mglData z(30,40);
+    z.Modify(&quot;sin(pi*x)*cos(pi*y)&quot;);
+</pre>
+<p>The only non-obvious thing here is using multidimensional arrays in C/C++, i.e. arrays defined like <code>float dat[40][30];</code>. Since, formaly this arrays element <code>dat[i]</code> can address the memory in arbitrary place you should use the proper function to convert such arrays to <code>mglData</code> object. For C++ this is functions like <code>mglData::Set(float **dat, int N1, int N2);</code>. For C this is functions like <code>mgl_data_set_float2(HMDT d, const float **dat, int N1, int N2);</code>. At this, you should keep in mind that <code>nx=N2</code> and <code>ny=N1</code> after conversion.
+</p>
+<hr size="6">
+<a name="Data-changing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Array-creation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-changing-1"></a>
+<h3 class="subsection">2.3.2 Data changing</h3>
+
+<p>MathGL has functions for data processing: differentiating, integrating, smoothing and so on (for more detail, see section <a href="mathgl_en_6.html#mglData-class">mglData class</a>). Let us consider some examples. The simplest ones are integration and differentiation. The direction in which operation will be performed is specified by textual string, which may contain symbols &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo;. For example, the call of <code>Diff(&quot;x&quot;)</code> will differentiate data along &lsquo;<samp>x</samp>&rsquo; direction; the call of <code>Integral(&quot;xy&quot;)</code> perform the double integration of data along &lsquo;<samp>x</samp>&rsquo; and &lsquo;<samp>y</samp>&rsquo; directions; the call of <code>Diff2(&quot;xyz&quot;)</code> will apply 3d Laplace operator to data and so on. Example of this operations on 2d array a=x*y is presented in code:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData a(30,40);   a.Modify(&quot;x*y&quot;);
+        gr-&gt;Axis(mglPoint(0,0,0),mglPoint(1,1,1));
+        gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(60,40);
+        gr-&gt;Surf(a);        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0.7,1,1.2),&quot;a(x,y)&quot;);
+        gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(60,40);
+        a.Diff(&quot;x&quot;);        gr-&gt;Surf(a);      gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0.7,1,1.2),&quot;da/dx&quot;);
+        gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(60,40);
+        a.Integral(&quot;xy&quot;);   gr-&gt;Surf(a);      gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0.7,1,1.2),&quot;\\int da/dx dxdy&quot;);
+        gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(60,40);
+        a.Diff2(&quot;y&quot;);       gr-&gt;Surf(a);      gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0.7,1,1.2),&quot;\\int {d^2}a/dxdy dx&quot;);
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample6.png" alt="../png/sample6">
+
+</div><p><strong>Example of data differentiation and integration
+</strong>
+</p>
+<p>Data smoothing (function <code>Smooth()</code>) is more interesting and important. This function has 2 main arguments: type of smoothing and its direction. Now 4 methods are supported: <code>SMOOTH_NONE</code> does nothing for delta=0 or approaches data to zero with the step delta, <code>SMOOTH_LINE_3</code> linear averaging by 3 points, <code>SMOOTH_LINE_5</code> linear averaging by 5 points, <code>SMOOTH_QUAD_5</code> quadratic averaging by 5 points. Let me demonstrate it for 1d case:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData y0(30),y1,y2,y3;
+        y0.Modify(&quot;0.4*sin(2*pi*x)+0.3*cos(3*pi*x)-0.4*sin(4*pi*x)+0.2*rnd&quot;);
+
+        y1=y0;  y1.Smooth(SMOOTH_LINE_3);
+        y2=y0;  y2.Smooth(SMOOTH_LINE_5);
+        y3=y0;  y3.Smooth(SMOOTH_QUAD_5);
+
+        gr-&gt;Plot(y0,&quot;k&quot;);   gr-&gt;AddLegend(&quot;NONE&quot;,&quot;k&quot;);
+        gr-&gt;Plot(y1,&quot;r&quot;);   gr-&gt;AddLegend(&quot;LINE_3&quot;,&quot;r&quot;);
+        gr-&gt;Plot(y2,&quot;g&quot;);   gr-&gt;AddLegend(&quot;LINE_5&quot;,&quot;g&quot;);
+        gr-&gt;Plot(y3,&quot;b&quot;);   gr-&gt;AddLegend(&quot;QUAD_5&quot;,&quot;b&quot;);
+        gr-&gt;Legend();       gr-&gt;Box();
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample7.png" alt="../png/sample7">
+
+</div><p><strong>Example of data smoothing
+</strong>
+</p>
+<p>Finally one can create new data arrays on base of the existing one: extract slice, row or column of data (<code>SubData()</code>), summarize along some of direction(s) (<code>Sum()</code>), find distribution of data elements (<code>Hist()</code>). Note, that all these functions are not thread-safe because they use static internal variable for output array. In particular, the using of several of them in arguments of the same function will lead to unpredictable result.
+</p>
+<hr size="6">
+<a name="Data-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-changing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-1D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-plotting-1"></a>
+<h2 class="section">2.4 Data plotting</h2>
+
+<p>Let me now show how to plot the data. MathGL generally has 2 types of plotting functions. Simple variant requires a single data array for plotting, other data (coordinates) are considered uniformly distributed in interval <var>Min</var>*<var>Max</var>. Second variant requires data arrays for all coordinates. It allows one to plot rather complex multivalent curves and surfaces (in case of parametric dependencies). Argument setting to default values allows one to plot data in standard form. Manual arguments setting gives possibility for fine tuning of colors, positions and view of graphics. Note, that the call of drawing function adds something to picture but does not clear the previous plots (as it does in Matlab). Another difference from Matlab is that all setup (like transparency, lightning, axis borders and so on) must be specified <strong>before</strong> plotting functions.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plots-for-1D-data">2.4.1 Plots for 1D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-for-2D-data">2.4.2 Plots for 2D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-for-3D-data">2.4.3 Plots for 3D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surface-transparency">2.4.4 Surface transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Plots-for-1D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-2D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-1D-data-1"></a>
+<h3 class="subsection">2.4.1 Plots for 1D data</h3>
+
+<p>Term &ldquo;1D data&rdquo; means that data depend on single index (parameter) like curve in parametric form {x(i),y(i),z(i)}, i=1...n. There are 5 generally different types of data representations: simple line plot, line plot with filling under it, stairs plot, bar plot and vertical lines (see section <a href="mathgl_en_3.html#g_t1D-plotting">1D plotting</a>). Each type of plotting has similar interface. There are 3D version and two 2D versions. One of last requires single array. The parameters of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>) are specified by the string argument. If the string parameter is <code>NULL</code> then solid line with color from palette is used (see section <a href="mathgl_en_3.html#Palette-and-colors">Pallete and colors</a>).
+</p>
+<p>Below I shall show the features of 1D plotting on base of <code>Plot()</code> function (see section <a href="mathgl_en_3.html#Plot">Plot</a>). Let us start from sinus plot:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData y0(50); 	y0.Modify(&quot;sin(pi*(2*x-1))&quot;);
+        gr-&gt;SubPlot(2,2,0);
+        gr-&gt;Plot(y0);   	gr-&gt;Box();
+</pre><p>Style of line is not specified in <code>Plot()</code> function. So MathGL uses the solid line with first color of palette (this is blue). Next subplot shows array <var>y1</var> with 2 rows:
+</p><pre class="verbatim">        gr-&gt;SubPlot(2,2,1);
+        mglData y1(50,2);
+        y1.Modify(&quot;sin(pi*2*x-pi)&quot;);
+        y1.Modify(&quot;cos(pi*2*x-pi)/2&quot;,1);
+        gr-&gt;Plot(y1);   	gr-&gt;Box();
+</pre><p>As previously I did not specify the style of lines. As a result, MathGL again uses solid line with next colors in palette (there are green and red). Now let us plot a circle on the same subplot. The circle is parametric curve <em>x=cos(\pi t), y=sin(\pi t)</em>. I will set the color of the circle (dark yellow, &lsquo;<samp>Y</samp>&rsquo;) and put marks &lsquo;<samp>+</samp>&rsquo; at point position:
+</p><pre class="verbatim">        mglData x(50);  	x.Modify(&quot;cos(pi*2*x-pi)&quot;);
+        gr-&gt;Plot(x,y0,&quot;Y+&quot;);
+</pre><p>Note that solid line is used because I did not specify the type of line. The same picture can be achieved by <code>Plot2()</code> function. Let us draw ellipse by orange dash line:
+</p><pre class="verbatim">        gr-&gt;Plot2(y1,&quot;q|&quot;);
+</pre>
+<p>Drawing in 3D space is mostly the same. Let us draw spiral with default line style. Now its color is 4-th color from palette (this is cyan):
+</p><pre class="verbatim">        gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(60,40);
+        mglData z(50);  	z.Modify(&quot;2*x-1&quot;);
+        gr-&gt;Plot(x,y0,z);	gr-&gt;Box();
+</pre><p>Function <code>Plot3()</code> does 3D curve plot but for single array. Use it to put circle marks on the previous plot:
+</p><pre class="verbatim">        mglData y2(10,3);	y2.Modify(&quot;cos(pi*(2*x-1+y))&quot;);
+        y2.Modify(&quot;2*x-1&quot;,2);
+        gr-&gt;Plot3(y2,&quot;bo &quot;);
+</pre><p>Note that line style is empty &lsquo;<samp> </samp>&rsquo; here. Usage of other 1D plotting functions looks similar:
+</p><pre class="verbatim">        gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(60,40);
+        gr-&gt;Bars(x,y0,z,&quot;r&quot;);	gr-&gt;Box();
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample8.png" alt="../png/sample8">
+
+</div><p><strong>Example of 1D data plot
+</strong>
+</p>
+<hr size="6">
+<a name="Plots-for-2D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-1D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-3D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-2D-data-1"></a>
+<h3 class="subsection">2.4.2 Plots for 2D data</h3>
+
+<p>Surfaces <code>Surf()</code> and other 2D plots (see section <a href="mathgl_en_3.html#g_t2D-plotting">2D plotting</a>) are drown the same simpler as 1D one. The difference is that the string parameter specifies not by line style but by the color scheme of the plot (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>). Here I draw attention on 4 most interesting color schemes. There is gray scheme where color is changed from black to white (string &lsquo;<samp>kw</samp>&rsquo;) or from white to black (string &lsquo;<samp>wk</samp>&rsquo;). Another scheme is useful for accentuation of negative (by blue color) and positive (by red color) regions on plot (string &lsquo;<samp>&quot;BbwrR&quot;</samp>&rsquo;). Last one is the popular &ldquo;jet&rdquo; scheme (string &lsquo;<samp>&quot;BbcyrR&quot;</samp>&rsquo;).
+</p>
+<p>Now I shall show the example of a surface drawing. At first let us switch lightning on
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Light(true);	gr-&gt;Light(0,mglPoint(0,0,1));
+</pre><p>and draw the surface, considering coordinates x,y to be uniformly distributed in interval <var>Min</var>*<var>Max</var>
+</p><pre class="verbatim">        mglData a0(50,40);
+        a0.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+        gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(60,40);
+        gr-&gt;Surf(a0);		gr-&gt;Box();
+</pre><p>Color scheme was not specified. So previous color scheme is used. In this case it is default color scheme (&ldquo;jet&rdquo;) for the first plot. Next example is a sphere. The sphere is parametrically specified surface:
+</p><pre class="verbatim">        mglData x(50,40),y(50,40),z(50,40);
+        x.Modify(&quot;0.8*sin(2*pi*x)*sin(pi*y)&quot;);
+        y.Modify(&quot;0.8*cos(2*pi*x)*sin(pi*y)&quot;);
+        z.Modify(&quot;0.8*cos(pi*y)&quot;);
+        gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(60,40);
+        gr-&gt;Surf(x,y,z,&quot;BbwrR&quot;);gr-&gt;Box();
+</pre><p>I set color scheme to <code>&quot;BbwrR&quot;</code> that corresponds to red top and blue bottom of the sphere.
+</p>
+<p>Surfaces will be plotted for each of slice of the data if <var>nz</var>&gt;1. Next example draws surfaces for data arrays with <var>nz</var>=3:
+</p><pre class="verbatim">        mglData a1(50,40,3);
+        a1.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+        a1.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))&quot;,1);
+        a1.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;,2);
+        gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(60,40);
+        gr-&gt;Alpha(true);
+        gr-&gt;Surf(a1);		gr-&gt;Box();
+</pre><p>Note, that it may entail a confusion. However, if one will use density plot then the picture will look better:
+</p><pre class="verbatim">        gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(60,40);
+        gr-&gt;Dens(a1);		gr-&gt;Box();
+        return 0;
+    }
+</pre><p>Note, that the previous color scheme is used in last plots because there are no direct specification of the one.
+</p>
+<div class="float">
+<img src="../png/sample9.png" alt="../png/sample9">
+
+</div><p><strong>Example of surface plot for 2D data
+</strong>
+</p>
+<p>Drawing of other 2D plots is analogous. The only peculiarity is the usage of flag &lsquo;<samp>#</samp>&rsquo;. By default this flag switches on the drawing of a grid on plot (<code>Grid()</code> or <code>Mesh()</code> for plots in plain or in volume). However, for isosurfaces (including surfaces of rotation <code>Axial()</code>) this flag switches the  face drawing off. Figure becomes wired. The following code gives example of flag &lsquo;<samp>#</samp>&rsquo; using (compare with normal function drawing as in its description):
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Alpha(true);	gr-&gt;Light(true);	gr-&gt;Light(0,mglPoint(0,0,1));
+        mglData a(30,20);
+        a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+
+        gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);
+        gr-&gt;Surf(a,&quot;BbcyrR#&quot;);		gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);
+        gr-&gt;Dens(a,&quot;BbcyrR#&quot;);		gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);
+        gr-&gt;Cont(a,&quot;BbcyrR#&quot;);		gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);
+        gr-&gt;Axial(a,&quot;BbcyrR#&quot;);		gr-&gt;Box();
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/samplea.png" alt="../png/samplea">
+
+</div><p><strong>Example of 2D data plot with color scheme contained &lsquo;<samp>#</samp>&rsquo; symbol
+</strong>
+</p>
+<hr size="6">
+<a name="Plots-for-3D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-2D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surface-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-3D-data-1"></a>
+<h3 class="subsection">2.4.3 Plots for 3D data</h3>
+
+<p>Drawing procedures for 3D plot looks similarly to 1D and 2D plots described above. There are 3 general types of 3D plots (see section <a href="mathgl_en_3.html#g_t3D-plotting">3D plotting</a>): (i) plots on slices or on projections, (ii) isosurfaces, (iii) cloud-like plots. Plots on slice are clear enough &ndash; one specifies a slice (as its index or as coordinate value) and MathGL draws contour lines or density plot on slice plane. Isosurface gives more information. Isosurface is 3D analogue of the contour line <code>Cont()</code>. It shows the region where data array values exceed specified isosurface level. Plot becomes more informative if one adds transparency, lightning or sets color scheme depending on coordinates. Generalization of isosurface is the cloud-like plot. For this plot the darker color and less transparent regions correspond to higher values of data. Contrary, the regions with low values are transparent. For plotting of the phase of fields (or beams or pulses) one can use isosurface which transparency depends on the other data array (see function <code>Surf3A()</code>). As example of 3D data plots let us draw the Gaussian beam diffraction in space. Beam propagates along <var>x</var> axis:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Alpha(true);    gr-&gt;Light(true);
+        gr-&gt;Light(0,mglPoint(0,0,1));
+        mglData a(30,30,30),b(30,30,30);
+        a.Modify(&quot;exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))&quot;);
+        b.Modify(&quot;16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)&quot;);
+        gr-&gt;CAxis(0,1);
+
+        gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(40,60);
+        gr-&gt;Surf3(a,&quot;wgk&quot;); gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(40,60);
+        gr-&gt;DensA(a);       gr-&gt;Box();  gr-&gt;Axis();
+        gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(40,60);
+        gr-&gt;CloudQ(a);      gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(40,60);
+        gr-&gt;Surf3A(b,a,&quot;q&quot;);gr-&gt;Box();
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sampleb.png" alt="../png/sampleb">
+
+</div><p><strong>Example of Gaussian beam diffraction (3D data)
+</strong>
+</p>
+
+<hr size="6">
+<a name="Surface-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-3D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#C_002fFortran-interface" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surface-transparency-1"></a>
+<h3 class="subsection">2.4.4 Surface transparency</h3>
+
+<p>MathGL library has advanced features for setting and handling the surface transparency. The simplest way to add transparency is the using of function <code>Alpha()</code>. As a result, all further surfaces (and isosurfaces, density plots and so on) become transparent. However, their  look can be additionally improved.
+</p>
+<p>First, the selected surface will be non-transparent if one sets the flag <code>Transparent</code> before the surface drawing and sets it off after the drawing.
+</p>
+<p>Second, the value of transparency can be different from surface to surface. To do it just change the value of <code>AlphaDef</code> before the drawing of the selected surface. If its value is close to 0 then the surface becomes more and more transparent. Contrary, if its value is close to 1 then the surface becomes practically non-transparent. This is some analogue of <code>Transparent=true</code>.
+</p>
+<p>Third feature is the changing of the way how the light goes through overlapped surfaces. The variable <code>TranspType</code> defines it. By default the usual transparency is used (<code>TranspType=0</code>) &ndash; surfaces below is less visible than the upper ones. A &ldquo;glass-like&rdquo; transparency (<code>TranspType=1</code>) has a different look when the surface just decreases the background light (the surfaces are commutable in this case).
+</p>
+<p>A &ldquo;neon-like&rdquo; transparency (<code>TranspType=2</code>) has more interesting look. In this case a surface is the light source (like a lamp on the dark background) and just adds some intensity to the color. At this, the library sets automatically the black color for the background and changes the default line color to white.
+</p>
+<p>As example I shall show the variant of plot from <a href="#Plots-for-2D-data">Plots for 2D data</a> (grid drawing is disabled) for different types of transparency.
+</p><div class="float">
+<img src="../png/type0.png" alt="../png/type0">
+
+</div><p><strong>Example of <code>TranspType=0</code>.
+</strong>
+</p><div class="float">
+<img src="../png/type1.png" alt="../png/type1">
+
+</div><p><strong>Example of <code>TranspType=1</code>.
+</strong>
+</p><div class="float">
+<img src="../png/type2.png" alt="../png/type2">
+
+</div><p><strong>Example of <code>TranspType=2</code>.
+</strong>
+</p>
+<hr size="6">
+<a name="C_002fFortran-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surface-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-and-PyQt" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="C_002fFortran-interface-1"></a>
+<h2 class="section">2.5 C/Fortran interface</h2>
+
+<p>The usage of pure C or Fortran or any similar interfaces (see section <a href="mathgl_en_1.html#C-interface">C interface</a>) is practically identical to classes usage. But there are some differences. C functions must have argument HMGL (for graphics) and/or HMDT (for data arrays) which specifies the object for drawing or manipulating (changing). Fortran users may regard these variables as integer. So, firstly the user has to create this object by function mgl_create_*() and has to delete it after the using by function mgl_delete_*().
+</p>
+<p>Also, all arguments of C function have to be defined. So there are several functions with practically identical names doing practically the same. But some of them have simplified interface for the quick plotting and some of them have access to all plotting parameters for manual tunning.
+</p>
+<p>As an example of C function usage let me draw the plot from <a href="#Plots-for-2D-data">Plots for 2D data</a>. The C code which does it is shown below:
+</p><pre class="verbatim">    #include &lt;mgl/mgl_c.h&gt;
+    int main()
+    {
+        HMGL gr = mgl_create_graph_zb(600, 400);
+        mgl_set_alpha(gr, true);
+        mgl_set_light(gr, true);
+        HMDT a = mgl_create_data_size(30,20,1);
+        mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+
+        mgl_subplot(gr, 2,2,0);
+        mgl_rotate(gr, 40,60,0);
+        mgl_surf(gr,a,&quot;BbcyrR#&quot;);
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,1);
+        mgl_rotate(gr, 40,60,0);
+        mgl_dens(gr,a,&quot;BbcyrR#&quot;,NAN);
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,2);
+        mgl_rotate(gr, 40,60,0);
+        mgl_cont(gr,a,&quot;BbcyrR#&quot;,7,NAN);
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,3);
+        mgl_rotate(gr, 40,60,0);
+        mgl_axial(gr,a,&quot;BbcyrR#&quot;,3);
+        mgl_box(gr, true);
+
+        /* don't forgot to save graphics */
+        mgl_write_png(gr,&quot;sample.png&quot;,0);
+        return 0;
+    }
+</pre>
+<p>Practically the same simple to create a window. For example let rewrite the code from for window creation (see section <a href="#Using-FLTK_002fGLUT-window">Using FLTK/Qt/GLUT window</a>):
+</p><pre class="verbatim">    int sample(HMGL gr, void *)
+    {
+        mgl_rotate(gr,60,40,0);
+        mgl_box(gr,1);
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mgl_create_graph_fltk(sample, &quot;MathGL examples&quot;, NULL);
+        mgl_fltk_run();
+        return 0;
+    }
+</pre>
+<p>The Fortran code have some peculiarities. Exactly it not allow one to send arbitrary parameter (which was <code>NULL</code> in previous example) to function. This is limitation of Fortran language. So, the corresponding code will be <strong>NOT TESTED NOW!!!</strong>:
+</p><pre class="verbatim">    program TEST
+    integer x,f,func
+        call mgl_create_graph_fltk(sample, 'MathGL examples');
+        call mgl_fltk_run();
+    end program TEST
+ 
+    integer function sample(gr)
+    integer*8 gr
+        call mgl_rotate(gr,60,40,0);
+        call mgl_box(gr,1);
+        sample=0
+    return
+    end
+</pre>
+<hr size="6">
+<a name="MathGL-and-PyQt"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#C_002fFortran-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL-and-PyQt-1"></a>
+<h2 class="section">2.6 MathGL and PyQt</h2>
+
+<p>Generally SWIG based classes (including the Python one) are the same as C++ classes. However, there are few tips for using MathGL with PyQt. Below I place a very simple python code which demonstrate how MathGL can be used with PyQt. This code is mostly written by Prof. Dr. Heino Falcke. You can just copy it to a file <code>mgl-pyqt-test.py</code> and execute it from python shell by command <code>execfile(&quot;mgl-pyqt-test.py&quot;)</code>
+</p>
+<pre class="verbatim">from PyQt4 import QtGui,QtCore
+from mathgl import *
+import sys
+app = QtGui.QApplication(sys.argv)
+qpointf=QtCore.QPointF()
+
+class hfQtPlot(QtGui.QWidget):
+    def __init__(self, parent=None):
+        QtGui.QWidget.__init__(self, parent)
+        self.img=(QtGui.QImage())
+    def setgraph(self,gr):
+        self.buffer='\t' 
+        self.buffer=self.buffer.expandtabs(4*gr.GetWidth()*gr.GetHeight())
+        gr.GetBGRN(self.buffer,len(self.buffer))
+        self.img=QtGui.QImage(self.buffer, gr.GetWidth(),gr.GetHeight(),QtGui.QImage.Format_ARGB32)
+        self.update()
+    def paintEvent(self, event):
+        paint = QtGui.QPainter()
+        paint.begin(self)
+        paint.drawImage(qpointf,self.img)
+        paint.end()
+
+BackgroundColor=[1.0,1.0,1.0]
+size=100
+gr=mglGraph()
+y=mglData(size)
+#y.Modify(&quot;((0.7*cos(2*pi*(x+.2)*500)+0.3)*(rnd*0.5+0.5)+362.135+10000.)&quot;)
+y.Modify(&quot;(cos(2*pi*x*10)+1.1)*1000.*rnd-501&quot;)
+x=mglData(size)
+x.Modify(&quot;x^2&quot;);
+
+def plotpanel(gr,x,y,n):
+    gr.SubPlot(2,2,n)
+    gr.SetXRange(x)
+    gr.SetYRange(y)
+    gr.AdjustTicks()
+    gr.Axis()
+    gr.Box()
+    gr.Label(&quot;x&quot;,&quot;x-Axis&quot;,1)
+    gr.Label(&quot;y&quot;,&quot;y-Axis&quot;,1)
+    gr.ClearLegend()
+    gr.AddLegend(&quot;Legend: &quot;+str(n),&quot;k&quot;)
+    gr.Legend()
+    gr.Plot(x,y)
+
+
+gr.Clf(BackgroundColor[0],BackgroundColor[1],BackgroundColor[2])
+gr.SetPlotFactor(1.5)
+plotpanel(gr,x,y,0)
+y.Modify(&quot;(cos(2*pi*x*10)+1.1)*1000.*rnd-501&quot;)
+plotpanel(gr,x,y,1)
+y.Modify(&quot;(cos(2*pi*x*10)+1.1)*1000.*rnd-501&quot;)
+plotpanel(gr,x,y,2)
+y.Modify(&quot;(cos(2*pi*x*10)+1.1)*1000.*rnd-501&quot;)
+plotpanel(gr,x,y,3)
+
+gr.WritePNG(&quot;test.png&quot;,&quot;Test Plot&quot;)
+
+qw = hfQtPlot()
+qw.show()
+qw.setgraph(gr)
+qw.raise_()
+</pre>
+
+<hr size="6">
+<a name="Hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MathGL-and-PyQt" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t_0060_0060Compound_0027_0027-graphics" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Hints-1"></a>
+<h2 class="section">2.7 Hints</h2>
+
+<p>In this section I have included some small hints and advices for the improving of the quality of plots and for the demonstration of some non-trivial features of MathGL library. In contrast to previous examples I showed mostly the idea but not the whole drawing function. More examples with the source code can be find at <a href="http://mathgl.sf.net/">http://mathgl.sf.net/</a> or in section <a href="mathgl_en_9.html#Samples">Samples</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t_0060_0060Compound_0027_0027-graphics">2.7.1 &ldquo;Compound&rdquo; graphics</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Two-axes-in-one-plot">2.7.2 Two axes in one plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Titles-for-the-plot">2.7.3 Titles for the plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Changing-of-the-color-range">2.7.4 Changing of the color range</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Management-of-a-point-cutting">2.7.5 Management of a point cutting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-field-visualization">2.7.6 Vector field visualization</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Several-light-sources">2.7.7 Several light sources</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutMin-and-CutMax-features">2.7.8 CutMin and CutMax features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mapping-visualization">2.7.9 Mapping visualization</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Log_002dscaled-plot">2.7.10 Log-scaled plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t_0060_0060Templates_0027_0027">2.7.11 &ldquo;Templates&rdquo;</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting-hints">2.7.12 Nonlinear fitting hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#PDE-solving-hints">2.7.13 PDE solving hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#MGL-parser-using">2.7.14 MGL parser using</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stereo-image">2.7.15 Stereo image</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="g_t_0060_0060Compound_0027_0027-graphics"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Two-axes-in-one-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Compound_0027_0027-graphics-1"></a>
+<h3 class="subsection">2.7.1 &ldquo;Compound&rdquo; graphics</h3>
+
+<p>As I noted above, MathGL functions (except the special one, like Clf()) do  not erase the previous plotting but just add the new one. It allows one to draw &ldquo;compound&rdquo; plots easily. For example, popular Matlab command <code>surfc</code> can be emulated in MathGL by 2 calls:
+</p><pre class="verbatim">    Surf(a);
+    Cont(a, 0, 7, -1);     // draw contours at z = -1
+</pre><p>Here <var>a</var> is 2-dimensional data for the plotting, <code>-1</code> is the value of z-coordinate at which the contour should be plotted (at the bottom in this example). Analogously, one can draw density plot instead of contour lines and so on.
+</p>
+<p>Another nice plot is contour lines plotted directly on the surface:
+</p><pre class="verbatim">    Light(true);       // switch on light for the surface
+    Surf(a, &quot;BbcyrR&quot;); // select 'jet' colormap for the surface
+    Cont(a, &quot;y&quot;);      // and yellow color for contours
+</pre><p>The possible difficulties arise in black&amp;white case, when the color of the surface can be close to the color of a contour line. In that case I may suggest the following code:
+</p><pre class="verbatim">    Light(true);       // switch on light for the surface
+    Surf(a, &quot;kw&quot;);     // select 'gray' colormap for the surface
+    CAxis(-1,0);       // first draw for darker surface colors
+    Cont(a, &quot;w&quot;);      // white contours
+    CAxis(0,1);        // now draw for brighter surface colors
+    Cont(a, &quot;k&quot;);      // black contours
+    CAxis(-1,1);       // return color range to original state
+</pre><p>The idea is to divide the color range on 2 parts (dark and bright) and to select the contrasting color for contour lines for each of part.
+</p>
+<p>Similarly, one can plot flow thread over density plot of vector field amplitude (this is another amusing plot from Matlab) and so on. The list of compound graphics can be prolonged but I hope that the general idea is clear.
+</p>
+<hr size="6">
+<a name="Two-axes-in-one-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t_0060_0060Compound_0027_0027-graphics" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Titles-for-the-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Two-axes-in-one-plot-1"></a>
+<h3 class="subsection">2.7.2 Two axes in one plot</h3>
+
+<p>Developing the previous hint one can make a plot with 2 or more axes. The idea is that the change of settings does not influence on the already drawn graphics. So, for 2-axes plot let us set the first axis and draw everything concerning it. Then let us setup the second axis and draw things for the second axis. The corresponding code is (see section <a href="mathgl_en_9.html#g_t2_002daxes-sample">2-axes sample</a>):
+</p><pre class="verbatim">    // set up first axis
+    Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,-1,-1));
+    Axis();            // draw it
+    Plot(y1,&quot;b&quot;);      // draw something in first axis
+    // set up second axis
+    Axis(mglPoint(0,0,0),mglPoint(1,1,1),mglPoint(1,1,1));
+    Axis();            // draw it
+    Stem(y2,&quot;r&quot;);      // draw something in second axis
+</pre><p>Note, that the first and the second axes look better if being placed in different corners. In the code presented above the first axis is placed in the left-bottom corner, and the second one is placed in the right-top corner.
+</p>
+<hr size="6">
+<a name="Titles-for-the-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Two-axes-in-one-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Changing-of-the-color-range" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Titles-for-the-plot-1"></a>
+<h3 class="subsection">2.7.3 Titles for the plot</h3>
+
+<p>The printing of nice titles for the plot is not so trivial task in general case. The problem is that the rotation and aspect change lead to different looks for titles of different subplots. So, the resulting look is not so good as it could be. The solution is simple &ndash; to print titles exactly after <code>SubPlot</code>() call and before any rotation, aspect change and so on! Analogously, the title for the whole picture looks better if it is printed first (before any <code>SubPlot()</code> calls). Alternatively you can use function <code>Title()</code> for plotting title for the picture at any time.
+</p>
+<hr size="6">
+<a name="Changing-of-the-color-range"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Titles-for-the-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Management-of-a-point-cutting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Changing-of-the-color-range-1"></a>
+<h3 class="subsection">2.7.4 Changing of the color range</h3>
+
+<p>By default (for the user comfort), the color range is set equal to z-range of the plot. However, there are different ranges. So, one can obtain amusing plot by the change of color range manually. For example, there are plots with one-color bottom (or top) or practically bi-color picture and so on.
+</p>
+<p>For example, compare 2 surfaces:
+</p><pre class="verbatim">    SubPlot(2,1,0)
+    Surf(a);           // usual coloring range
+    SubPlot(2,1,1)
+    CAxis(0,1);
+    Surf(a);           // bottom of the surface have one-colour filling
+</pre>
+<hr size="6">
+<a name="Management-of-a-point-cutting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Changing-of-the-color-range" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-field-visualization" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Management-of-a-point-cutting-1"></a>
+<h3 class="subsection">2.7.5 Management of a point cutting</h3>
+
+<p>Sometimes an experimental or numerical surface has outstanding points. Visualization of such surface will lead to the hole(s) in place of such points. The standard method of &ldquo;fighting&rdquo;  &ndash; to change data values &ndash; is not always good and is not so convenient. MathGL library has another method &ndash; to set variable <code>Cut=false</code>. As a consequence, all outstanding points will be projected on the bounding box.
+</p>
+<p>Such method is good not only for outstanding points but also for the case when one need to plane the bottom or the top of the plot. Exactly such case is demonstrated in the code:
+</p><pre class="verbatim">        mglData a(20,30);  // create some data
+        a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+        // set lower border above the data minimal value
+        Axis(mglPoint(-1,-1,0),mglPoint(1,1,1));
+        Cut = false;       // set off cutting flag
+`       Surf(a);           // and draw the surface
+</pre><p>It is an interesting result, is not it?
+</p>
+<hr size="6">
+<a name="Vector-field-visualization"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Management-of-a-point-cutting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Several-light-sources" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vector-field-visualization-1"></a>
+<h3 class="subsection">2.7.6 Vector field visualization</h3>
+
+<p>Vector field visualization (especially in 3d case <code>Vect3</code> or <code>VectC</code>) may look tangly &ndash; there are too many overlapping lines. I may suggest 2 ways to solve this problem. The first one is to change <code>MeshNum</code> for decreasing the number of hachures. The second way is to use the flow thread chart <code>Flow</code>. Unfortunately, I don&rsquo;t know any other methods to visualize 3d vector field. If you know any, e-mail me and I shall add it to MatGL.
+</p>
+<hr size="6">
+<a name="Several-light-sources"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-field-visualization" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutMin-and-CutMax-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Several-light-sources-1"></a>
+<h3 class="subsection">2.7.7 Several light sources</h3>
+
+<p>In contrast to the most of other programs, MathGL supports several (up to 10) light sources. Moreover, the color each of them can be different: white (this is usual), yellow, red, cyan, green and so on. The use of several light sources may be interesting for the highlighting of some peculiarities of the plot or just to make an amusing picture. Note, each light source can be switched on/off individually (see section <a href="mathgl_en_9.html#Several-light-sample">Several light sample</a>).
+</p>
+<hr size="6">
+<a name="CutMin-and-CutMax-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Several-light-sources" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mapping-visualization" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutMin-and-CutMax-features-1"></a>
+<h3 class="subsection">2.7.8 CutMin and CutMax features</h3>
+
+<p>MathGL library has a feature for cutting of points in some region <var>CutMin*CutMax</var>. Such an excision can be used to improve the look of the graphics. Moreover, this cutting may help to show an internal structure of an object (like <code>isocaps</code> plot in Matlab). For example, let us use the standard 3D data array and show its interior (see section <a href="mathgl_en_9.html#CutMinMax-sample">CutMinMax sample</a>).
+</p>
+<pre class="verbatim">    mglData  c(61,51,40);      // create the data
+    mglData v(10);	v.Fill(-0.5,1);
+    c.Modify(&quot;(-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1))&quot;);
+    gr-&gt;CutMin = mglPoint(0,-1,-1);     gr-&gt;CutMax = mglPoint(1,0,1.1);
+    gr-&gt;Surf3(-0.5,c,&quot;BbcyrR&quot;);
+    gr-&gt;ContF3(v,c,'x',-1,&quot;BbcyrR&quot;);    gr-&gt;ContF3(v,c,'y',-1,&quot;BbcyrR&quot;);
+    gr-&gt;ContF3(v,c,'z',0,&quot;BbcyrR&quot;);     gr-&gt;ContF3(v,c,'z',39,&quot;BbcyrR&quot;);
+</pre>
+<p>One can also exclude points from arbitrary area in space. This area defined by textual formula <code>CutOff()</code> (see section <a href="mathgl_en_3.html#Cutting">Cutting</a>). The algorithm is the same as shown for &ldquo;rectangular cutting&rdquo;.
+</p>
+<hr size="6">
+<a name="Mapping-visualization"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutMin-and-CutMax-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Log_002dscaled-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mapping-visualization-1"></a>
+<h3 class="subsection">2.7.9 Mapping visualization</h3>
+
+<p>Sometime ago I worked with mapping and have a question about its visualization. Let me remember you that mapping is some transformation rule for one set of number to another one. The 1d mapping is just an ordinary function &ndash; it takes a number and transforms it to another one. The 2d mapping (which I used) is a pair of functions which take 2 numbers and transform them to another 2 ones. Except general plots (like <code>SurfC</code>, <code>SurfA</code>) there is a special plot &ndash; Arnold diagram. It shows the area which is the result of mapping of some initial area (usually square).
+</p>
+<p>I tried to make such plot in <code>Map</code>. It shows the set of points or set of faces, which final position is the result of mapping. At this, the color gives information about their initial position and the height describes Jacobian value of the transformation. Unfortunately, it looks good only for the simplest mapping but for the  real multivalent quasi-chaotic mapping it produces a confusion. So, use it if you like :).
+</p>
+<hr size="6">
+<a name="Log_002dscaled-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mapping-visualization" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t_0060_0060Templates_0027_0027" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Log_002dscaled-plot-1"></a>
+<h3 class="subsection">2.7.10 Log-scaled plot</h3>
+
+<p>Log-scaled plot can be drawn by 2 steps. First, one should change the scale of axis by call <code>SetFunc(&quot;lg(x)&quot;, &quot;lg(y)&quot;);</code> (in this example, x- and y-axis will be log-scaled). Second, one should set logarithmic scale for axis ticks by changing variables: <code>SetTicks('x',0); SetTicks('y',0);</code>. Finally, one should check (or change) the axis ranges and origin so that their values to be positive. For example of log-log plot see section <a href="mathgl_en_9.html#Log_002dlog-sample">Log-log sample</a>.
+</p>
+<hr size="6">
+<a name="g_t_0060_0060Templates_0027_0027"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Log_002dscaled-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting-hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Templates_0027_0027-1"></a>
+<h3 class="subsection">2.7.11 &ldquo;Templates&rdquo;</h3>
+
+<p>As I have noted before, the change of settings will influence only for the further plotting commands. This allows one to create template function which will contain settings and primitive drawing for often used plots. Correspondingly one may call this template-function for drawing simplification.
+</p>
+<p>For example, let one has a set of points (experimental or numerical) and wants to compare it with theoretical law (for example, with exponent law <em>\exp(-x/2), x \in [0, 20]</em>). The template-function for this task is:
+</p><pre class="verbatim">    void template(mglGraph *gr)
+    {
+        mglData  law(100);      // create the law
+        law.Modify(&quot;exp(-10*x)&quot;);
+        gr-&gt;Axis(mglPoint(0,0.0001), mglPoint(20,1), mglPoint(0,0.0001));
+        gr-&gt;SetFunc(0,&quot;lg(y)&quot;,0);   gr-&gt;dy = 0;
+        gr-&gt;Plot(law,&quot;r2&quot;);
+        gr-&gt;Text(mglPoint(10,0.2),&quot;Theoretical law: e^x&quot;,&quot;rL&quot;);
+        gr-&gt;Label('x',&quot;x val.&quot;); gr-&gt;Label('y',&quot;y val.&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid(&quot;xy&quot;,&quot;g;&quot;); gr-&gt;Box();
+    }
+</pre><p>At this, one will only write a few lines for data drawing:
+</p><pre class="verbatim">    template(gr);     // apply settings and default drawing from template
+    mglData dat(&quot;fname.dat&quot;); // load the data
+    // and draw it (suppose that data file have 2 columns)
+    gr-&gt;Plot(dat.SubData(0),dat.SubData(1),&quot;bx &quot;);
+</pre><p>A template-function can also contain settings for font, transparency, lightning, color scheme and so on.
+</p>
+<hr size="6">
+<a name="Nonlinear-fitting-hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t_0060_0060Templates_0027_0027" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#PDE-solving-hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-hints-1"></a>
+<h3 class="subsection">2.7.12 Nonlinear fitting hints</h3>
+
+<p>Nonlinear fitting is rather simple. All that you need is the data to fit, the approximation formula and the list of coefficients to fit (better with its initial guess values). Let me demonstrate it on the following simple example (see section <a href="mathgl_en_9.html#Fitting-sample">Fitting sample</a>). First, let us use sin function with some random noise:
+</p><pre class="verbatim">    mglData rnd(100), idl(50); //data to be fitted and ideal data
+    rnd.Modify(&quot;0.4*rnd+0.1+sin(4*pi*x)&quot;);
+    idl.Modify(&quot;0.3+sin(4*pi*x)&quot;);
+</pre><p>and plot it to see that data we will fit
+</p><pre class="verbatim">    gr-&gt;Axis(mglPoint(-1,-2), mglPoint(1,2));
+    gr-&gt;Plot(rnd, &quot;. &quot;); gr-&gt;Plot(idl, &quot;b&quot;);
+    gr-&gt;Box();
+    gr-&gt;Text(mglPoint(0,2.2), &quot;initial: y = 0.3+sin(2\pi x)&quot;, &quot;C:b&quot;, -1);
+</pre>
+<p>The next step is the fitting itself. For that let me specify an initial values <var>ini</var> for coefficients &lsquo;<samp>abc</samp>&rsquo; and do the fitting for approximation formula &lsquo;<samp>a+b*sin(c*x)</samp>&rsquo;
+</p><pre class="verbatim">    mglData res;   // The data for found formula
+    float ini[3] = {1, 1, 3};
+    gr-&gt;Fit(res, rnd, &quot;a+b*sin(c*x)&quot;, &quot;abc&quot;, ini);
+</pre><p>Now display it
+</p><pre class="verbatim">    gr-&gt;Plot(res, &quot;r&quot;);
+    gr-&gt;Text(mglPoint(-1,-1.3), &quot;fitted:&quot;, &quot;L:r&quot;, -1);
+    gr-&gt;PutsFit(mglPoint(0,-1.8), &quot;y = &quot;, &quot;C:r&quot;, -1);
+</pre>
+<p>NOTE! the fitting results may have strong dependence on initial values for coefficients due to algorithm features. The problem is that in general case there are several local &quot;optimums&quot; for coefficients and the program returns only first found one! There are no guaranties that it will be the best. Try for example to set <code>ini[3] = {0, 0, 0}</code> in the code above.
+</p>
+<hr size="6">
+<a name="PDE-solving-hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting-hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-parser-using" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="PDE-solving-hints-1"></a>
+<h3 class="subsection">2.7.13 PDE solving hints</h3>
+
+<p>Solving of Partial Differential Equations (PDE, including beam tracing) and ray tracing (or finding particle trajectory) are more or less common task. So, MathGL have several functions for that. There are <code>mglRay()</code> for ray tracing, <code>mglPDE()</code> for PDE solving, <code>mglQO2d()</code> for beam tracing in 2D case (see section <a href="mathgl_en_6.html#Global-functions">Global functions</a>). Note, that these functions take &ldquo;Hamiltonian&rdquo; or equations as string values. And I don&rsquo;t plan now to allow one to use user-defined functions. There are 2 reasons: the complexity of corresponding interface; and the basic nature of used methods which are good for samples but may not good for serious scientific calculations.
+</p>
+<p>The ray tracing can be done by <code>mglRay()</code> function. Really ray tracing equation is Hamiltonian equation for 3D space. So, the function can be also used for finding a particle trajectory (i.e. solve Hamiltonian ODE) for 1D, 2D or 3D cases. The function have a set of arguments. First of all, it is Hamiltonian which defined the media (or the equation) you are planning to use. The Hamiltonian is defined by string which may depend on coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, time &lsquo;<samp>t</samp>&rsquo; (for particle dynamics) and momentums &lsquo;<samp>p</samp>&rsquo;=<em>p_x</em>, &lsquo;<samp>q</samp>&rsquo;=<em>p_y</em>, &lsquo;<samp>v</samp>&rsquo;=<em>p_z</em>. Next, you have to define the initial conditions for coordinates and momentums at &lsquo;<samp>t</samp>&rsquo;=0 and set the integrations step (default is 0.1) and its duration (default is 10). The Runge-Kutta method of 4-th order is used for integration.
+</p><pre class="verbatim">    mglData r,a,re(128),im(128);
+    r = mglRay(&quot;p^2+q^2-x-1&quot;, mglPoint(-0.7, -1), mglPoint(0, 0.5));
+    gr-&gt;Plot(r.SubData(0), r.SubData(1));
+</pre><p>This example calculate the reflection from linear layer (media with Hamiltonian &lsquo;<samp>p^2+q^2-x-1</samp>&rsquo;=<em>p_x^2+p_y^2-x-1</em>). This is parabolic curve. The resulting array have 7 columns which contain data for {x,y,z,p,q,v,t}.
+</p>
+<p>The solution of PDE is a bit more complicated. As previous you have to specify the equation as pseudo-differential operator <em>\hat H(x, \nabla)</em> which is called sometime as &ldquo;Hamiltonian&rdquo; (for example, in beam tracing). As previously, it is defined by string which may depend on coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; (but not time!), momentums &lsquo;<samp>p</samp>&rsquo;=<em>(d/dx)/i k_0</em>, &lsquo;<samp>q</samp>&rsquo;=<em>(d/dy)/i k_0</em> and field amplitude &lsquo;<samp>u</samp>&rsquo;=<em>|u|</em>. The evolutionary coordinate is &lsquo;<samp>z</samp>&rsquo; in all cases. So that, the equation look like <em>du/dz = ik_0 H(x,y,\hat p, \hat q, |u|)[u]</em>. Dependence on field amplitude &lsquo;<samp>u</samp>&rsquo;=<em>|u|</em> allows one to solve nonlinear problems too. For example, for nonlinear Shrodinger equation you may set <code>ham=&quot;p^2 + q^2 - u^2&quot;</code>. Also you may specify imaginary part for wave absorption, like <code>ham = &quot;p^2 + i*x*(x&gt;0)&quot;</code>, but only if dependence on variable &lsquo;<samp>i</samp>&rsquo; is linear (i.e. <em>H = Hre+i*Him</em>).
+</p>
+<p>Next step is specifing the initial conditions at &lsquo;<samp>z</samp>&rsquo;=<code>Min.z</code>. The function need 2 arrays for real and for imaginary part. Note, that coordinates x,y,z are supposed to be in specified range [Min, Max]. So, the data arrays should have corresponding scales. Finally, you may set the integration step and paramter k0=<em>k_0</em>. Also keep in mind, that internally the 2 times large box is used (for suppressing numerical reflection from boundaries) and the equation should well defined even in this extended range.
+</p>
+<p>Final comment is concerning the possible form of pseudo-differential operator <em>H</em>. At this moment, simplified form of operator <em>H</em> is supported &ndash; all &ldquo;mixed&rdquo; terms (like &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) are excluded. For example, in 2D case this operator is effectively <em>H = f(p,z) + g(x,z,u)</em>. However commutable combinations (like &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy) are allowed for 3D case. 
+</p>
+<p>So, for example let solve the equation for beam deflected from linear layer and absorbed later. The operator will have the form &lsquo;<samp>&quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;</samp>&rsquo; that correspond to equation <em>ik_0 \partial_z u + \Delta u + x \cdot u + i (x+z)/2 \cdot u = 0</em>. This is typical equation for Electron Cyclotron (EC) absorption in magnetized plasmas. For initial conditions let me select the beam with plane phase front <em>exp(-48*(x+0.7)^2)</em>. The corresponding code looks like this (see section <a href="mathgl_en_9.html#PDE-sample">PDE sample</a>):
+</p><pre class="verbatim">    mglData a,re(128),im(128);
+    re.Fill(&quot;exp(-48*(x+0.7)^2)&quot;, gr-&gt;Min, gr-&gt;Max);
+    a = mglPDE(&quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;, re, im,
+                gr-&gt;Min, gr-&gt;Max, 0.01, 30);
+    a.Transpose(&quot;yxz&quot;);
+    gr-&gt;CAxis(0, 1);
+    gr-&gt;Dens(a,&quot;wyrRk&quot;);
+</pre>
+<p>The last example is example of beam tracing. Beam tracing equation is special kind of PDE equation written in coordinates accompanied to a ray. Generally this is the same parameters and limitation as for PDE solving but the coordinates are defined by the ray and by parameter of grid width <var>w</var> in direction transverse the ray. So, you don&rsquo;t need to specify the range of coordinates. <strong>BUT</strong> there is limitation. The accompanied coordinates are well defined only for smooth enough rays, i.e. then the ray curvature <em>K</em> (which is defined as <em>1/K^2 = (|\ddot r|^2 |\dot r|^2 - (\ddot r, \dot r)^2)/|\dot r|^6</em>) is much large then the grid width: <em>K&gt;&gt;w</em>. So, you may receive incorrect results if this condition will be broken.
+</p>
+<p>You may use following code for obtaining the same solution as in previous example:
+</p><pre class="verbatim">    mglData r, xx, yy, a, im(128), re(128);
+    const char *ham = &quot;p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)&quot;;
+    r = mglRay(ham, mglPoint(-0.7, -1), mglPoint(0, 0.5), 0.02, 2);
+    // now start beam tracing
+    re.Fill(&quot;exp(-48*x^2)&quot;, gr-&gt;Min, gr-&gt;Max);
+    a = mglQO2d(ham, re, im, r, 1, 30, &amp;xx, &amp;yy);
+    gr-&gt;CAxis(0, 1);
+    gr-&gt;Dens(xx, yy, a, &quot;wyrRk&quot;);
+</pre>
+
+<hr size="6">
+<a name="MGL-parser-using"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#PDE-solving-hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stereo-image" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MGL-parser-using-1"></a>
+<h3 class="subsection">2.7.14 MGL parser using</h3>
+
+<p>Sometimes you may prefer to use MGL scripts in yours code. It is simpler (especially in comparison with C/Fortran interfaces) and fast way to plot the data with annotations, labels and so on. Class <code>mglParse</code> (see section <a href="mathgl_en_7.html#mglParse-class">mglParse class</a> parse MGL scripts in C++. It have also the corresponding interface for C/Fortran.
+</p>
+<p>The key function here is <code>mglParse::Parse()</code> (or <code>mgl_parse()</code> for C/Fortran) which execute one command per string. At this the detailed information about the possible errors or warnings is passed as function value. Or you may execute the whole script as long string with lines separated by &lsquo;<samp>\n</samp>&rsquo;. Functions <code>mglParse::Execute()</code> and <code>mgl_parse_text()</code> perform it. Also you may set the values of paramters &lsquo;<samp>$0</samp>&rsquo;...&lsquo;<samp>$9</samp>&rsquo; for the script by functions <code>mglParse::AddParam()</code> or <code>mgl_add_param()</code>, allow/disable picture resizing, check &ldquo;once&rdquo; status and so on. The usage is rather stright-forward.
+</p>
+<p>The only non-obvious thing is data transition between script and yours program. There are 2 stages: add or find variable; and set data to variable. In C++ you may use functions <code>mglParse::AddVar()</code> and <code>mglParse::FindVar()</code> which return pointer to <code>mglVar</code> structure. This structure contain data itself, the variable name and callback function which will be called if variable destroied. Last feature allows you to control the presence of the variable and, for example, close a window with data if this variable is destroyed. In C/Fortran the corresponding functions are <code>mgl_add_var()</code>, <code>mgl_find_var()</code>. But these functions return the data array only. Note, you <strong>must not delete or free</strong> the data obtained from these functions!
+</p>
+<p>So, some simple example at the end. Here I define a data array, create variable, put data into it and plot it. The C++ code looks like this:
+</p><pre class="verbatim">    float a[100];   // let a_i = sin(4*pi*x), x=0...1
+    for(int i=0;i&lt;100;i++)  a[i]=sin(4*M_PI*i/99);
+    mglParse *parser = new mglParse;
+    mglData &amp;d = (parser-&gt;AddVar(&quot;dat&quot;))-&gt;d;
+    d.Set(a,100); // set data to variable
+    parser-&gt;Execute(gr, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+    // you may break script at any line do something 
+    // and continue after that
+    parser-&gt;Execute(gr, &quot;xlabel 'x'\nylabel 'y'&quot;);
+    // also you may use cycles or conditions in script
+    parser-&gt;Execute(gr, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+    gr-&gt;WritePNG(&quot;test.png&quot;);   // don't forgot to save picture
+</pre><p>The code in C/Fortran looks practically the same:
+</p><pre class="verbatim">    float a[100];   // let a_i = sin(4*pi*x), x=0...1
+    int i;
+    for(i=0;i&lt;100;i++)  a[i]=sin(4*M_PI*i/99);
+    HMPR parser = mgl_create_parser();
+    HMDT d = mgl_add_var(parser, &quot;dat&quot;);
+    mgl_data_set_float(d,a,100,1,1);    // set data to variable
+    mgl_parse_text(gr, parser, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+    // you may break script at any line do something 
+    // and continue after that
+    mgl_parse_text(gr, parser, &quot;xlabel 'x'\nylabel 'y'&quot;);
+    // also you may use cycles or conditions in script
+    mgl_parse_text(gr, parser, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+    mgl_write_png(gr, &quot;test.png&quot;, &quot;&quot;);  // don't forgot to save picture
+</pre>
+<hr size="6">
+<a name="Stereo-image"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-parser-using" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stereo-image-1"></a>
+<h3 class="subsection">2.7.15 Stereo image</h3>
+
+<p>One can easily create stereo image in MathGL. Stereo image can be produced by making two subplots with slightly different rotation angles. The corresponding code looks like this (see section <a href="mathgl_en_9.html#Stereo-image-sample">Stereo image sample</a>):
+</p><pre class="verbatim">    gr-&gt;SubPlot(2,1,0);     // left image
+    gr-&gt;Rotate(40,60+3);
+    // draw something here
+    
+    gr-&gt;SubPlot(2,1,1);     // right image
+    gr-&gt;Rotate(40,60-3);
+    // draw the same here
+</pre>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_3.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_3.html
new file mode 100644
index 0000000..de9fc46
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_3.html
@@ -0,0 +1,4857 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: 3. MathGL core</title>
+
+<meta name="description" content="MathGL 1.11: 3. MathGL core">
+<meta name="keywords" content="MathGL 1.11: 3. MathGL core">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="MathGL-core"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_2.html#Stereo-image" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL-core-1"></a>
+<h1 class="chapter">3. MathGL core</h1>
+<a name="index-mglGraph"></a>
+
+<p>The core of MathGL is <strong>mglGraph</strong> class defined in <code>#include &lt;mgl/mgl.h&gt;</code>. It contains a lot of plotting functions for 1D, 2D and 3D plots. It also encapsulates parameters for axes drawing. Moreover an arbitrary coordinate transformation may be used for each axis. All plotting functions use data encapsulated in mglData class (see section <a href="mathgl_en_6.html#mglData-class">mglData class</a>) that allows to check sizes of used arrays easily. Also it have many functions for data handling: modify it by formulas, find momentums and distribution (histogram), apply operator (differentiate, integrate, transpose, Fourier and so on), change data sizes (interpolate, squeeze, crop and so on). Additional information about colors, fonts, formula parsing can be found in <a href="mathgl_en_7.html#Other-classes">Other classes</a>.
+</p>
+<p>Note that class mglGraph is abstract and contains only interface functions for plotting but does not make plot by itself. For plotting in specific device (screen, memory or file) one should use derived classes: mglGraphZB &ndash; for bitmap picture in file or in memory; mglGraphPS &ndash; for vector PostScript picture; mglGraphGL &ndash; for drawing using OpenGL, or for GLUT windows interface; and so on, see section <a href="mathgl_en_4.html#Plotter-classes">Plotter classes</a>. If you want not only to create a picture but to view it in a window/widget or to run animation and so on then look at <a href="mathgl_en_5.html#Widget-classes">Widget classes</a>.
+</p>
+<p>There is a C++ wrapper class which have the same name <code>mglGraph</code> and defined in <code>mgl/mgl_graph.h</code>. You can use this class even with non-GNU compilers (i.e. in Borland or Microsoft one), but you <strong>should not include</strong> any <code>mgl/mgl.h</code> or <code>mgl/mgl_parse.h</code> headers in this case! This wrapper class also used as base for all SWIG-based interfaces (Python, Octave and so on). So, later it is refered as &lsquo;<samp>Python</samp>&rsquo; class for distinguish from original &lsquo;<samp>C++</samp>&rsquo; class defined in <code>mgl/mgl.h</code> .
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Graphics-setup">3.1 Graphics setup</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-settings">3.2 Axis settings</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transformation-matrix">3.3 Transformation matrix</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Export-to-file">3.4 Export to file</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Primitives-drawing">3.5 Primitives drawing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing">3.6 Text printing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-Colorbar">3.7 Axis and Colorbar</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Legend">3.8 Legend</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting">3.9 1D plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting">3.10 2D plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting">3.11 3D plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting">3.12 Dual plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-fields">3.13 Vector fields</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-plotting">3.14 Other plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting">3.15 Nonlinear fitting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-distributions">3.16 Data distributions</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Frames_002fAnimation">3.17 Frames/Animation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#IDTF-functions">3.18 IDTF functions</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Graphics-setup"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MathGL-core" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Graphics-setup-1"></a>
+<h2 class="section">3.1 Graphics setup</h2>
+<a name="index-MathGL-setup"></a>
+
+<p>Functions and variables in this group influences on overall graphics appearance. So all of them should be placed <em>before</em> any actual plotting function calls.
+</p>
+<dl>
+<dt><a name="index-DefaultPlotParam"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DefaultPlotParam</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fset_005fdef_005fparam"></a><u>C function:</u> <code>void</code> <b>mgl_set_def_param</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Restore initial values for all of parameters except described in <a href="#Zooming">Zooming</a>.
+</p></dd></dl>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Transparency">3.1.1 Transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lighting">3.1.2 Lighting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fog">3.1.3 Fog</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Default-sizes">3.1.4 Default sizes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Zooming">3.1.5 Zooming</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cutting">3.1.6 Cutting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-settings">3.1.7 Font settings</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Palette-and-colors">3.1.8 Pallete and colors</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Error-handling">3.1.9 Error handling</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-settings">3.1.10 Other settings</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Graphics-setup" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lighting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transparency-1"></a>
+<h3 class="subsection">3.1.1 Transparency</h3>
+<a name="index-Alpha"></a>
+<a name="index-SetAlphaDef"></a>
+<a name="index-SetTransparent"></a>
+<a name="index-SetTranspType"></a>
+
+<p>There are several functions and variables for setup transparency. The general function is <code>Alpha()</code> which switch on/off the transparency for overall plot. It influence only for graphics which created after <code>Alpha()</code> call (with one exception, mglGraphGL). Function <code>SetAlphaDef</code> specify the default value of alpha-channel. You may switch off transparency of selected plot by function <code>SetTransparent</code>. Finally, function <code>SetTranspType</code> set the kind of transparency. See section <a href="mathgl_en_9.html#Transparent-surface-sample">Transparent surface sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Alpha-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>bool</code> <b>Alpha</b><i> (<code>bool</code> enable)</i></dt>
+<dt><a name="index-mgl_005fset_005falpha"></a><u>C function:</u> <code>void</code> <b>mgl_set_alpha</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Sets the transparency on/off and returns previous value of transparency. It is recommended to call this function before any plotting command. In any case it must be called before <code>Finish()</code> function if the last is used. Default value is transparency off. Unfortunately it switches the transparency on/off for all subplots. Use <code>SetTransparent(false)</code> in particular plot to disable its transparency.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetAlphaDef-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetAlphaDef</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005falpha_005fdefault"></a><u>C function:</u> <code>void</code> <b>mgl_set_alpha_default</b><i> (<code>HMGL</code> gr, <code>float</code> alpha)</i></dt>
+<dd><p>Sets default value of alpha channel (transparency) for all plotting functions. Note, that OpenGL (mglGraphGL) has incorrect drawing for large values of alpha in case of several overlapping surfaces.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTransparent-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTransparent</b><i> (<code>bool</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005ftransp"></a><u>C function:</u> <code>void</code> <b>mgl_set_transp</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Flag which temporary switches transparency on/off for the plot. This is the same as <code>Alpha(val)</code> but more correctly work in mglGraphGL class.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTranspType-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTranspType</b><i> (<code>int</code> type)</i></dt>
+<dt><a name="index-mgl_005fset_005ftransp_005ftype"></a><u>C function:</u> <code>void</code> <b>mgl_set_transp_type</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Set the transparency type. Normal transparency (&lsquo;<samp>0</samp>&rsquo;) &ndash; below things is less visible than upper ones. It does not look well in OpenGL mode (mglGraphGL) for several surfaces. Glass-like transparency (&lsquo;<samp>1</samp>&rsquo;) &ndash; below and upper things are commutable and just decrease intensity of light by RGB channel. Lamp-like transparency (&lsquo;<samp>2</samp>&rsquo;) &ndash; below and upper things are commutable and are the source of some additional light. I recommend to set <code>SetAlphaDef(0.3)</code> or less for lamp-like transparency. See section <a href="mathgl_en_9.html#Normal-transparency">Normal transparency</a>, <a href="mathgl_en_9.html#Glass_002dlike-transparency">Glass-like transparency</a>, <a href="mathgl_en_9.html#Lamp_002dlike-transparency">Lamp-like transparency</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AlphaDef-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>float</code> <b>AlphaDef</b></dt>
+<dd><p>Default value of alpha channel. See <code>SetAlphaDef()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Transparent-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>bool</code> <b>Transparent</b></dt>
+<dd><p>Flag which temporary switches transparency on/off for the plot. See <code>SetTransparent()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TranspType-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>int</code> <b>TranspType</b></dt>
+<dd><p>This variable set the transparency type. See <code>SetTranspType()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Lighting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fog" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Lighting-1"></a>
+<h3 class="subsection">3.1.2 Lighting</h3>
+<a name="index-Light"></a>
+<a name="index-Ambient"></a>
+<a name="index-AddLight"></a>
+
+<p>There are several functions for setup lighting. The general function is <code>Light(bool)</code> which switch on/off the lighting for overall plot. It influence only for graphics which created after <code>Light()</code> call (with one exception, mglGraphGL). Generally MathGL support up to 10 independent light sources. But in OpenGL mode only 8 of light sources is used due to OpenGL limitations. The position, color, brightness of each light source can be set separately. By default only one light source is active. It is source number <code>0</code> with white color, located at top of the plot.
+</p>
+<dl>
+<dt><a name="index-Light-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>bool</code> <b>Light</b><i> (<code>bool</code> enable)</i></dt>
+<dt><a name="index-mgl_005fset_005flight"></a><u>C function:</u> <code>void</code> <b>mgl_set_light</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Sets the using of light on/off for overall plot. Function returns previous value of lighting. Default value is lightning off.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Light-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Light</b><i> (<code>int</code> n, <code>bool</code> enable)</i></dt>
+<dt><a name="index-mgl_005fset_005flight_005fn"></a><u>C function:</u> <code>void</code> <b>mgl_set_light_n</b><i> (<code>HMGL</code> gr, <code>int</code> n, <code>int</code> enable)</i></dt>
+<dd><p>Switch on/off <var>n</var>-th light source separately.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AddLight-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>AddLight</b><i> (<code>int</code> n, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> c=<code>'w'</code>)</i></dt>
+<dt><a name="index-Light-3"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Light</b><i> (<code>int</code> n, <code>mglPoint</code> p, <code>char</code> c=<code>'w'</code>, <code>float</code> bright=<code>0.5</code>, <code>bool</code> infty=<code>true</code>)</i></dt>
+<dt><a name="index-Light-4"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Light</b><i> (<code>int</code> n, <code>mglPoint</code> p, <code>mglColor</code> c, <code>float</code> bright=<code>0.5</code>, <code>bool</code> infty=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fadd_005flight"></a><u>C function:</u> <code>void</code> <b>mgl_add_light</b><i> (<code>HMGL</code> gr, <code>int</code> n, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> c)</i></dt>
+<dd><p>The function adds a light source with identification <var>n</var> at position <var>p</var> with color <var>c</var> and with brightness <var>bright</var> (which must be in range [0,1]). Flag <var>infty</var>=<code>true</code> puts the source to infinite distance (for the faster drawing).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Ambient-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Ambient</b><i> (<code>float</code> bright=<code>0.5</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fambbr"></a><u>C function:</u> <code>void</code> <b>mgl_set_ambbr</b><i> (<code>HMGL</code> gr, <code>float</code> bright)</i></dt>
+<dd><p>Sets the brightness of ambient light. The value should be in range [0,1].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fog"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lighting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Default-sizes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fog-1"></a>
+<h3 class="subsection">3.1.3 Fog</h3>
+<a name="index-Fog"></a>
+
+<dl>
+<dt><a name="index-Fog-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Fog</b><i> (<code>float</code> d, <code>float</code> dz=<code>0.25</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005ffog"></a><u>C function:</u> <code>void</code> <b>mgl_set_fog</b><i> (<code>HMGL</code> gr, <code>float</code> d, <code>float</code> dz)</i></dt>
+<dd><p>Function imitate a fog in the plot. Fog start from relative distance <var>dz</var> from view point and its density growths exponentially in depth. So that the fog influence is determined by law ~ 1-exp(-<em>d*z</em>). Here <em>z</em> is normalized to 1 depth of the plot. If value <var>d</var>=<code>0</code> then the fog is absent. See section <a href="mathgl_en_9.html#Surface-in-fog-sample">Surface in fog sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Default-sizes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fog" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Zooming" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Default-sizes-1"></a>
+<h3 class="subsection">3.1.4 Default sizes</h3>
+<a name="index-SetTickLen"></a>
+<a name="index-SetTickStl"></a>
+<a name="index-SetBarWidth"></a>
+<a name="index-SetMarkSize"></a>
+<a name="index-SetArrowSize"></a>
+<a name="index-SetBaseLineWidth"></a>
+
+<p>These variables control the default (initial) values for most graphics parameters including sizes of markers, arrows, linewidth and so on. As any other settings these ones will influence only on plots created after the settings change.
+</p>
+<dl>
+<dt><a name="index-SetBarWidth-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetBarWidth</b><i> ( <code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fbar_005fwidth"></a><u>C function:</u> <code>void</code> <b>mgl_set_bar_width</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Sets relative width of rectangles in Bars, Barh, BoxPlot (see section <a href="#Bars">Bars</a>). Default value is <code>0.7</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetMarkSize-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetMarkSize</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fmark_005fsize"></a><u>C function:</u> <code>void</code> <b>mgl_set_mark_size</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Sets size of marks for <a href="#g_t1D-plotting">1D plotting</a>. Default value is <code>0.02</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetArrowSize-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetArrowSize</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005farrow_005fsize"></a><u>C function:</u> <code>void</code> <b>mgl_set_arrow_size</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Sets size of arrows for <a href="#g_t1D-plotting">1D plotting</a>, lines and curves (see section <a href="#Primitives-drawing">Primitives drawing</a>). Default value is <code>0.03</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetBaseLineWidth-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetBaseLineWidth</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fbase_005fline_005fwidth"></a><u>C function:</u> <code>void</code> <b>mgl_set_base_line_width</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Defines the base width for all lines. The value &lt;1 is ignored. For values &gt; 1 the real line width is result of multiplication of specified line width and the value of <var>BaseLineWidth</var>. Increase of this variables is actual for large bitmap pictures. Default value is <code>1</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTickLen-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTickLen</b><i> (<code>float</code> val, <code>float</code> stt=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005ftick_005flen"></a><u>C function:</u> <code>void</code> <b>mgl_set_tick_len</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>float</code> stt)</i></dt>
+<dd><p>The relative length of axis ticks. Default value is <code>0.1</code>. Parameter <var>stt</var>&gt;0 set relative length of subticks which is in <code>sqrt(1+stt)</code> times smaller.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTickStl-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTickStl</b><i> (<code>const char *</code>stl, <code>const char *</code>sub=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005ftick_005fstl"></a><u>C function:</u> <code>void</code> <b>mgl_set_tick_stl</b><i> (<code>HMGL</code> gr, <code>const char *</code>stl, <code>const char *</code>sub)</i></dt>
+<dd><p>The line style of axis ticks (<var>stl</var>) and subticks (<var>sub</var>). If <var>stl</var> is empty then default style is used (&lsquo;<samp>k</samp>&rsquo; or &lsquo;<samp>w</samp>&rsquo; depending on transparency type). If <var>sub</var> is empty then ticks style is used (i.e. <var>stl</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-BarWidth-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>float</code> <b>BarWidth</b></dt>
+<dd><p>Relative width of rectangles. See <code>SetBarWidth()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-MarkSize-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>float</code> <b>MarkSize</b></dt>
+<dd><p>The size of marks. See <code>SetMarkSize()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ArrowSize-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>float</code> <b>ArrowSize</b></dt>
+<dd><p>The size of arrows. See <code>SetArrowSize()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-BaseLineWidth-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>float</code> <b>BaseLineWidth</b></dt>
+<dd><p>The variable define the base width for all lines. See <code>SetBaseLineWidth()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Zooming"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Default-sizes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cutting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Zooming-1"></a>
+<h3 class="subsection">3.1.5 Zooming</h3>
+<a name="index-SetPlotFactor"></a>
+<a name="index-Zoom"></a>
+
+<p>These variables and functions control the overall zooming of the picture (see Zoom()) or the sub-picture (see PlotFactor). Normally you can use these variables and functions for removing &ldquo;white&rdquo; spaces around a plot.
+</p>
+<dl>
+<dt><a name="index-SetPlotFactor-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetPlotFactor</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fplotfactor"></a><u>C function:</u> <code>void</code> <b>mgl_set_plotfactor</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Sets the factor of plot size. It is not recommended to set it lower then 1.5. This is some analogue of function Zoom() but applied not to overall image but for each InPlot. Use negative value or zero to enable automatic <code>PlotFactor</code> selection.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Zoom-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Zoom</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> x2, <code>float</code> y2)</i></dt>
+<dt><a name="index-mgl_005fset_005fzoom"></a><u>C function:</u> <code>void</code> <b>mgl_set_zoom</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> x2, <code>float</code> y2)</i></dt>
+<dd><p>The function changes the scale of graphics that correspond to zoom in/out of the picture. After function call the current plot will be cleared and further the picture will contain plotting from its part [x1,x2]*[y1,y2]. Here picture coordinates <var>x1</var>, <var>x2</var>, <var>y1</var>, <var>y2</var> changes from 0 to 1. Attention! this settings can not be overwritten by any other functions. Use <code>Zoom(0,0,1,1)</code> to return default view.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-PlotFactor-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>float</code> <b>PlotFactor</b></dt>
+<dd><p>The factor of plot size. See <code>SetPlotFactor()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AutoPlotFactor-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>bool</code> <b>AutoPlotFactor</b></dt>
+<dd><p>Switch on/off automatic change of PlotFactor variable during plot rotation. See <code>SetPlotFactor()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cutting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Zooming" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cutting-1"></a>
+<h3 class="subsection">3.1.6 Cutting</h3>
+<a name="index-SetCut"></a>
+<a name="index-SetCutBox"></a>
+<a name="index-CutOff"></a>
+
+<p>These variables and functions set the condition when the points are excluded (cutted) from the drawing. Note, that a point with NAN value(s) of coordinate or amplitude will be automatically excluded from the drawing.
+</p>
+<dl>
+<dt><a name="index-SetCut-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCut</b><i> (<code>bool</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fcut"></a><u>C function:</u> <code>void</code> <b>mgl_set_cut</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+<dd><p>Flag which determines how points outside bounding box are drawn. If it is <code>true</code> then points are excluded from plot (it is default) otherwise the points are projected to edges of bounding box.
+</p></dd></dl>
+
+<div class="float">
+<img src="cut.png" alt="cut">
+
+</div><p><strong>Left figure is drawn with parameter <code>Cut=false</code>. Right one is drawn with parameter <code>Cut=true</code>.
+</strong>
+</p>
+<dl>
+<dt><a name="index-SetCutBox-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCutBox</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2)</i></dt>
+<dt><a name="index-mgl_005fset_005fcut_005fbox"></a><u>C function:</u> <code>void</code> <b>mgl_set_cut_box</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2)</i></dt>
+<dd><p>Lower and upper edge of the box in which never points are drawn. If both edges are the same (the variables are equal) then the cutting box is empty. See section <a href="mathgl_en_9.html#CutMinMax-sample">CutMinMax sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CutOff-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>CutOff</b><i> (<code>const char *</code>EqC)</i></dt>
+<dt><a name="index-mgl_005fset_005fcutoff"></a><u>C function:</u> <code>void</code> <b>mgl_set_cutoff</b><i> (<code>HMGL</code> gr, <code>const char *</code>EqC)</i></dt>
+<dd><p>Sets the cutting off condition by formula <var>EqC</var>. This condition determine will point be plotted or not. If value of formula is nonzero then point is omitted, otherwise it plotted. Set argument as <code>&quot;&quot;</code> to disable cutting off condition. See section <a href="mathgl_en_9.html#CutOff-sample">CutOff sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cut-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>bool</code> <b>Cut</b></dt>
+<dd><p>Flag which determines how points outside bounding box are drawn. See <code>SetCut()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CutMin_002c-CutMax-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>mglPoint</code> <b>CutMin, CutMax</b></dt>
+<dd><p>Lower and upper edge of the box in which never points are drawn. See <code>SetCutBox()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Font-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cutting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Palette-and-colors" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Font-settings-1"></a>
+<h3 class="subsection">3.1.7 Font settings</h3>
+<a name="index-SetFontSize"></a>
+<a name="index-SetFontDef"></a>
+<a name="index-SetRotatedText"></a>
+<a name="index-SetFontSizePT"></a>
+<a name="index-SetFontSizeCM"></a>
+<a name="index-SetFontSizeIN"></a>
+<a name="index-SetFont"></a>
+<a name="index-GetFont"></a>
+<a name="index-LoadFont"></a>
+<a name="index-CopyFont"></a>
+<a name="index-RestoreFont"></a>
+
+<dl>
+<dt><a name="index-SetFontSize-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetFontSize</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005ffont_005fsize"></a><u>C function:</u> <code>void</code> <b>mgl_set_font_size</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Sets the size of font for tick and axis labels. Default font size of axis labels is 1.4 times large than for tick labels.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetFontDef-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetFontDef</b><i> (<code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005fset_005ffont_005fdef"></a><u>C function:</u> <code>void</code> <b>mgl_set_font_def</b><i> (<code>HMGL</code> gr, <code>const char *</code> val)</i></dt>
+<dd><p>Sets the font specification (see section <a href="#Text-printing">Text printing</a>). Default is &lsquo;<samp>rC</samp>&rsquo; &ndash; Roman font centering.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetRotatedText-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetRotatedText</b><i> (<code>bool</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005frotated_005ftext"></a><u>C function:</u> <code>void</code> <b>mgl_set_rotated_text</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+<dd><p>Sets to use or not text rotation along axis.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-LoadFont-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>LoadFont</b><i> (<code>const char *</code>name, <code>const char *</code>path=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fload_005ffont"></a><u>C function:</u> <code>void</code> <b>mgl_load_font</b><i> (<code>HMGL</code> gr, <code>const char *</code>name, <code>const char *</code>path)</i></dt>
+<dd><p>Load font typeface from <var>path</var>/<var>name</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CopyFont-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>CopyFont</b><i> (<code>mglGraph *</code> from)</i></dt>
+<dt><a name="index-mgl_005fcopy_005ffont"></a><u>C function:</u> <code>void</code> <b>mgl_copy_font</b><i> (<code>HMGL</code> gr, <code>HMGL</code> gr_from)</i></dt>
+<dd><p>Copy font data from another <code>mglGraph</code> object.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-RestoreFont-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>RestoreFont</b><i> ()</i></dt>
+<dt><a name="index-mgl_005frestore_005ffont"></a><u>C function:</u> <code>void</code> <b>mgl_restore_font</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Restore font data to default typeface.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetFontSizePT-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>SetFontSizePT</b><i> (<code>float</code> cm, <code>int</code> dpi=<code>72</code>)</i></dt>
+<dd><p>Set FontSize by size in pt and picture DPI (default is 16 pt for dpi=72).
+</p></dd></dl>
+<dl>
+<dt><a name="index-SetFontSizeCM-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>inline void</code> <b>SetFontSizeCM</b><i> (<code>float</code> cm, <code>int</code> dpi=<code>72</code>)</i></dt>
+<dd><p>Set FontSize by size in centimeters and picture DPI (default is 0.56 cm = 16 pt).
+</p></dd></dl>
+<dl>
+<dt><a name="index-SetFontSizeIN-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>inline void</code> <b>SetFontSizeIN</b><i> (<code>float</code> cm, <code>int</code> dpi=<code>72</code>)</i></dt>
+<dd><p>Set FontSize by size in inch and picture DPI (default is 0.22 in = 16 pt).
+</p></dd></dl>
+<dl>
+<dt><a name="index-SetFont-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>SetFont</b><i> (<code>mglFont *</code>f)</i></dt>
+<dd><p>Sets font typeface. Note that each mglFont instance can be used with <em>ONLY ONE</em> mglGraph instance at a moment of time! If <code>f==&quot;&quot;</code> then default font is used.
+</p></dd></dl>
+<dl>
+<dt><a name="index-GetFont-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>inline mglFont *</code> <b>GetFont</b><i> ()</i></dt>
+<dd><p>Gets current typeface. Note that this variable can be deleted at next SetFont() call!
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FontSize-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>float</code> <b>FontSize</b></dt>
+<dd><p>The font size. See <code>SetFontSize()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-FontDef-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>char</code> <b>FontDef</b><i><code>[32]</code></i></dt>
+<dd><p>Font style. See <code>SetFontDef()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-RotatedText-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>bool</code> <b>RotatedText</b></dt>
+<dd><p>Set to use or not text rotation along axis.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Palette-and-colors"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Error-handling" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pallete-and-colors"></a>
+<h3 class="subsection">3.1.8 Pallete and colors</h3>
+<a name="index-SetPalColor"></a>
+<a name="index-SetPalNum"></a>
+<a name="index-SetPalette"></a>
+<a name="index-SetScheme"></a>
+<a name="index-SelectPen"></a>
+
+<dl>
+<dt><a name="index-SetPalette-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetPalette</b><i> (<code>const char *</code><var>colors</var>)</i></dt>
+<dt><a name="index-mgl_005fset_005fpalette"></a><u>C function:</u> <code>void</code> <b>mgl_set_palette</b><i> (<code>HMGL</code> gr, <code>const char *</code><var>colors</var>)</i></dt>
+<dd><p>Sets the palette as selected colors. Default value is <code>&quot;Hbgrcmyhlnqeup&quot;</code> that corresponds to colors: dark gray &lsquo;<samp>H</samp>&rsquo;, blue &lsquo;<samp>b</samp>&rsquo;, green &lsquo;<samp>g</samp>&rsquo;, red &lsquo;<samp>r</samp>&rsquo;, cyan &lsquo;<samp>c</samp>&rsquo;, magenta &lsquo;<samp>m</samp>&rsquo;, yellow &lsquo;<samp>y</samp>&rsquo;, gray &lsquo;<samp>h</samp>&rsquo;, blue-green &lsquo;<samp>l</samp>&rsquo;, sky-blue &lsquo;<samp>n</samp>&rsquo;, orange &lsquo;<samp>q</samp>&rsquo;, yellow-green &lsquo;<samp>e</samp>&rsquo;, blue-violet &lsquo;<samp>u</samp>&rsquo;, purple &lsquo;<samp>p</samp>&rsquo;. The palette is used mostly in 1D plots (see section <a href="#g_t1D-plotting">1D plotting</a>) for curves which styles are not specified.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetPalColor-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetPalColor</b><i> (<code>int</code> n, <code>float</code> r, <code>float</code> g, <code>float</code> b)</i></dt>
+<dt><a name="index-mgl_005fset_005fpal_005fcolor"></a><u>C function:</u> <code>void</code> <b>mgl_set_pal_color</b><i> (<code>HMGL</code> gr, <code>int</code> n, <code>float</code> r, <code>float</code> g, <code>float</code> b)</i></dt>
+<dd><p>Sets color for individual palette entry. Look at <code>SetPalette()</code> function for simplified palette setting.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetPalNum-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetPalNum</b><i> (<code>int</code> num)</i></dt>
+<dt><a name="index-mgl_005fset_005fpal_005fnum"></a><u>C function:</u> <code>void</code> <b>mgl_set_pal_num</b><i> (<code>HMGL</code> gr, <code>int</code> num)</i></dt>
+<dd><p>Sets the number of actual colors in palette. The value must be less then 100. 
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetScheme-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetScheme</b><i> (<code>const char *</code>sch)</i></dt>
+<dt><a name="index-mgl_005fset_005fscheme"></a><u>C function:</u> <code>void</code> <b>mgl_set_scheme</b><i> (<code>HMGL</code> gr, <code>const char *</code>sch)</i></dt>
+<dd><p>Set the color scheme for following plots. Usually this function is used internally. See section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SelectPen-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>SelectPen</b><i> (<code>const char *</code>sch)</i></dt>
+<dd><p>Set the line and mark styles for following plots. Usually this function is used internally. See section <a href="mathgl_en_1.html#Line-styles">Line styles</a>.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-Pal-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>mglColor</code> <b>Pal</b><i><code>[101]</code></i></dt>
+<dd><p>Color palette for <a href="#g_t1D-plotting">1D plotting</a>. See <code>SetPalette()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-NumPal-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>int</code> <b>NumPal</b></dt>
+<dd><p>Number of actual colors in palette. See <code>SetPalette()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Error-handling"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Palette-and-colors" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Error-handling-1"></a>
+<h3 class="subsection">3.1.9 Error handling</h3>
+
+<a name="index-Message"></a>
+<a name="index-SetWarn"></a>
+<a name="index-GetWarnCode"></a>
+
+<p>There are 2 variables which indicate the warnings/errors presence during plot creation. Normally user should set it to zero by <code>SetWarn(0);</code> before plotting and check if <var>WarnCode</var> is not zero after plotting. Only last warning will be saved. All warnings/errors produced by MathGL is not critical &ndash; the plot just will not be drawn.
+</p>
+<dl>
+<dt><a name="index-SetWarn-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>SetWarn</b><i> (<code>int</code> code, <code>const char *</code>who=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Set warning code and corresponding message from function <var>who</var>. Normally you should call this function only for clearing the warning state, i.e. call <code>SetWarn(0);</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Message-of-mglGraph"></a><u>General option (C++) of mglGraph:</u> <code>char *</code> <b>Message</b></dt>
+<dd><p>Pointer to buffer for writing messages about matters why some plot are not drawn. Set to NULL to disable messages. The buffer length must be at least 1024. If Message[0]==0 then there are no messages
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetWarnCode-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>int</code> <b>GetWarnCode</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fget_005fwarn_005fcode"></a><u>C function:</u> <code>int</code> <b>mgl_get_warn_code</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Return the numerical ID of warning about the not drawn plot. Possible values are:
+</p><dl compact="compact">
+<dt> <code>mglWarnNone=0</code></dt>
+<dd><p>Everything OK
+</p></dd>
+<dt> <code>mglWarnDim</code></dt>
+<dd><p>Data dimension(s) is incompatible
+</p></dd>
+<dt> <code>mglWarnLow</code></dt>
+<dd><p>Data dimension(s) is too small
+</p></dd>
+<dt> <code>mglWarnNeg</code></dt>
+<dd><p>Minimal data value is negative
+</p></dd>
+<dt> <code>mglWarnFile</code></dt>
+<dd><p>No file or wrong data dimensions
+</p></dd>
+<dt> <code>mglWarnMem</code></dt>
+<dd><p>Not enough memory
+</p></dd>
+<dt> <code>mglWarnZero</code></dt>
+<dd><p>Data values are zero
+</p></dd>
+<dt> <code>mglWarnLegA</code></dt>
+<dd><p>Too many legend entries
+</p></dd>
+<dt> <code>mglWarnLeg</code></dt>
+<dd><p>No legend entries
+</p></dd>
+<dt> <code>mglWarnSlc</code></dt>
+<dd><p>Slice value is out of range
+</p></dd>
+<dt> <code>mglWarnCnt</code></dt>
+<dd><p>Number of contours is zero or negative
+</p></dd>
+<dt> <code>mglWarnOpen</code></dt>
+<dd><p>Couldn&rsquo;t open file
+</p></dd>
+<dt> <code>mglWarnLId</code></dt>
+<dd><p>Light: ID is out of range
+</p></dd>
+<dt> <code>mglWarnSize</code></dt>
+<dd><p>Setsize: size(s) is zero or negative
+</p></dd>
+<dt> <code>mglWarnFmt</code></dt>
+<dd><p>Format is not supported for that build
+</p></dd>
+</dl>
+</dd></dl>
+
+<dl>
+<dt><a name="index-WarnCode-of-mglGraph"></a><u>Obsolete option of mglGraph:</u> <code>int</code> <b>WarnCode</b></dt>
+<dd><p>Numerical ID of warning about the not drawn plot.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Other-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Error-handling" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Other-settings-1"></a>
+<h3 class="subsection">3.1.10 Other settings</h3>
+<a name="index-SetMeshNum"></a>
+<a name="index-SetAxialDir"></a>
+<a name="index-SetDrawFace"></a>
+<a name="index-PlotId"></a>
+
+<dl>
+<dt><a name="index-SetMeshNum-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetMeshNum</b><i> (<code>int</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fmeshnum"></a><u>C function:</u> <code>void</code> <b>mgl_set_meshnum</b><i> (<code>HMGL</code> gr, <code>int</code> num)</i></dt>
+<dd><p>Sets approximate number of lines in Mesh(), Fall(), Grid() and also the number of hachures in Vect(), VectC(), Dew() and the number of cells in Cloud*(). By default (=0) it draws all lines/hachures/cells.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetAxialDir-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetAxialDir</b><i> (<code>char</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005faxial_005fdir"></a><u>C function:</u> <code></code> <b>mgl_set_axial_dir</b><i> (<code>HMGL</code> gr, <code>char</code> dir)</i></dt>
+<dd><p>Sets direction around which curve rotated in Axial() and Torus(). Default value is &rsquo;z&rsquo;.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetDrawFace-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetDrawFace</b><i> (<code>bool</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fdraw_005fface"></a><u>C function:</u> <code>void</code> <b>mgl_set_draw_face</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+<dd><p>Enable/disable faces drawing. It is useful for speeding up drawing (for example, during rotation and so on).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-PlotId-of-mglGraph"></a><u>General option (C++) of mglGraph:</u> <code>const char *</code> <b>PlotId</b></dt>
+<dd><p>Id of plot for saving filename (in GLUT window for example).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-MeshNum-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>int</code> <b>MeshNum</b></dt>
+<dd><p>Sets approximate number of lines/hachures/cells. See <code>SetMeshNum()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AxialDir-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>char</code> <b>AxialDir</b></dt>
+<dd><p>Set rotation direction. See <code>SetAxialDir()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DrawFace-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>bool</code> <b>DrawFace</b></dt>
+<dd><p>Flag for preventing faces drawing. See <code>SetDrawFace()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CirclePnts-of-mglGraph"></a><u>General option (C++) of mglGraph:</u> <code>int</code> <b>CirclePnts</b></dt>
+<dd><p>Number of points used for a circle approximation (for example, in <a href="#Primitives-drawing">Primitives drawing</a>, <a href="#Tube">Tube</a>, <a href="#Pipe">Pipe</a> and so on). Default value is 40.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GridPnts-of-mglGraph"></a><u>General option (C++) of mglGraph:</u> <code>int</code> <b>GridPnts</b></dt>
+<dd><p>Number of points used for grid lines drawing (it is important for curved coordinates). Default value is 50.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axis-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ranges-_0028bounding-box_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-settings-1"></a>
+<h2 class="section">3.2 Axis settings</h2>
+
+<p>These large set of variables and functions control how the axis and ticks will be drawn. Note that there is 3-step transformation of data coordinates are performed. Firstly, coordinates are projected if <code>Cut=true</code> (see section <a href="#Cutting">Cutting</a>), after it transformation formulas are applied, and finally the data was normalized in bounding box.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Curved-coordinates">3.2.2 Curved coordinates</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ticks">3.2.3 Ticks</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Ranges-_0028bounding-box_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Curved-coordinates" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ranges-_0028bounding-box_0029-1"></a>
+<h3 class="subsection">3.2.1 Ranges (bounding box)</h3>
+<a name="index-Axis"></a>
+<a name="index-CAxis"></a>
+<a name="index-XRange"></a>
+<a name="index-YRange"></a>
+<a name="index-ZRange"></a>
+<a name="index-Min"></a>
+<a name="index-Max"></a>
+<a name="index-Cmin"></a>
+<a name="index-Cmax"></a>
+<a name="index-RecalcBorder"></a>
+<a name="index-Org"></a>
+<a name="index-AutoOrg"></a>
+<a name="index-SetRanges"></a>
+<a name="index-SetAutoRanges"></a>
+
+<dl>
+<dt><a name="index-SetRanges-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetRanges</b><i> (<code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2, <code>float</code> z1=<code>0</code>, <code>float</code> z2=<code>0</code>)</i></dt>
+<dt><a name="index-Axis-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Axis</b><i> (<code>mglPoint</code> min, <code>mglPoint</code> max, <code>mglPoint</code> org=<code>mglPoint(NAN,NAN,NAN)</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005faxis_005f2d"></a><u>C function:</u> <code>void</code> <b>mgl_set_axis_2d</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> x2, <code>float</code> y2)</i></dt>
+<dt><a name="index-mgl_005fset_005faxis_005f3d"></a><u>C function:</u> <code>void</code> <b>mgl_set_axis_3d</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2)</i></dt>
+<dd><p>Safely sets the value for <var>Min</var>, <var>Max</var> and <var>Org</var> members (options) of the class. If minimal and maximal values of the coordinate are the same then they are ignored. This function also sets <var>Cmin</var>=<code>Min.z</code> and <var>Cmax</var>=<code>Max.z</code>. This is default color range for 2d plots.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetCRange"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCRange</b><i> (<code>float</code> min, <code>float</code> max)</i></dt>
+<dt><a name="index-CAxis-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>CAxis</b><i> (<code>float</code> min, <code>float</code> max)</i></dt>
+<dt><a name="index-mgl_005fset_005fcaxis"></a><u>C function:</u> <code>void</code> <b>mgl_set_caxis</b><i> (<code>HMGL</code> gr, <code>float</code> min, <code>float</code> max)</i></dt>
+<dd><p>Safely sets minimal and maximal values of data for coloring. This values are used later for determining the color of the surface.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-XRange-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>XRange</b><i> (<code>const mglData &amp;</code> dat, <code>bool</code> add=<code>false</code>, <code>float</code> fact=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fxrange"></a><u>C function:</u> <code>void</code> <b>mgl_set_xrange</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> add)</i></dt>
+<dd><p>Sets values of <code>Min.x</code> and <code>Max.x</code> as minimal and maximal values of data <var>a</var>. Parameter <var>add</var> specify to add or not the new range to current one. Parameter <var>fact</var> add additional range increase on value (<var>Max</var>-<var>Min</var>)*<var>fact</var>. See also Axis().
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-YRange-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>YRange</b><i> (<code>const mglData &amp;</code> dat, <code>bool</code> add=<code>false</code>, <code>float</code> fact=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fyrange"></a><u>C function:</u> <code>void</code> <b>mgl_set_yrange</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> add)</i></dt>
+<dd><p>Sets values of <code>Min.y</code> and <code>Max.y</code> as minimal and maximal values of data <var>a</var>. Parameter <var>add</var> specify to add or not the new range to current one. Parameter <var>fact</var> add additional range increase on value (<var>Max</var>-<var>Min</var>)*<var>fact</var>. See also Axis().
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ZRange-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ZRange</b><i> (<code>const mglData &amp;</code> dat, <code>bool</code> add=<code>false</code>, <code>float</code> fact=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fzrange"></a><u>C function:</u> <code>void</code> <b>mgl_set_zrange</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> add)</i></dt>
+<dd><p>Sets values of <code>Min.z</code> and <code>Max.z</code> as minimal and maximal values of data <var>a</var>. Parameter <var>add</var> specify to add or not the new range to current one. Parameter <var>fact</var> add additional range increase on value (<var>Max</var>-<var>Min</var>)*<var>fact</var>. See also Axis().
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CRange"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>CRange</b><i> (<code>const mglData &amp;</code> dat, <code>bool</code> add=<code>false</code>, <code>float</code> fact=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fcrange"></a><u>C function:</u> <code>void</code> <b>mgl_set_crange</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> add)</i></dt>
+<dd><p>Sets values of <code>Cmin</code> and <code>Cmax</code> as minimal and maximal values of data <var>a</var>. Parameter <var>add</var> specify to add or not the new range to current one. Parameter <var>fact</var> add additional range increase on value (<var>Cmax</var>-<var>Cmin</var>)*<var>fact</var>. See also CAxis().
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetAutoRanges-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetAutoRanges</b><i> (<code>float</code> x1, <code>float</code> x2, <code>float</code> y1=<code>0</code>, <code>float</code> y2=<code>0</code>, <code>float</code> z1=<code>0</code>, <code>float</code> z2=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fauto"></a><u>C function:</u> <code>void</code> <b>mgl_set_auto</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2, <code>float</code> z1, <code>float</code> z2)</i></dt>
+<dd><p>Sets ranges for automatic variables of plots. It act as changing of <var>Min</var>, <var>Max</var> proprties without calling of RecalcBorder(). Function don&rsquo;t change the direction if minimal and maximal values are the same. For example, if y<var>y1</var>=<var>y2</var> then ranges along y-direction will not be changed (will be used previous one). Note that the automatic range become axis range after next call of [XYZ]Range() function(s).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetOrigin"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetOrigin</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005forigin"></a><u>C function:</u> <code>void</code> <b>mgl_set_origin</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0)</i></dt>
+<dd><p>Sets center of axis cross section. If one of values is NAN then MathGL library try to select optimal axis position.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-RecalcBorder-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>RecalcBorder</b><i> ()</i></dt>
+<dd><p>Recalculates internal parameter for correct apply of transformation rules. <strong>Must be called</strong> after any direct change of members <var>Min</var>, <var>Max</var>, <var>fx</var>, <var>fy</var>, <var>fz</var> if its changes should be seen on the plot.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Min_002c-Max-of-mglGraph"></a><u>General option (C++) of mglGraph:</u> <code>mglPoint</code> <b>Min, Max</b></dt>
+<dd><p>Lower and upper edges of bounding box for graphics. These variables are used for determining the range of automatic (non-specified) arrays in most of plotting functions. So, you may change it before plot and return it back after it and the plot will have automatic x-(y-,z-)coordinate normalized in this range but not in bounding box. <strong>BUT</strong> if you want to change the bounding box then you <strong>must</strong> call <code>RecalcBorder();</code> after it or use Axis() function.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cmin_002c-Cmax-of-mglGraph"></a><u>General option (C++) of mglGraph:</u> <code>float</code> <b>Cmin, Cmax</b></dt>
+<dd><p>Minimal and maximal value for data (used for coloring).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Org-of-mglGraph"></a><u>General option (C++) of mglGraph:</u> <code>mglPoint</code> <b>Org</b></dt>
+<dd><p>Center of axis cross section. If one of values is NAN then MathGL library try to select optimal axis position.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AutoOrg-of-mglGraph"></a><u>General option (C++) of mglGraph:</u> <code>bool</code> <b>AutoOrg</b></dt>
+<dd><p>Flag for automatic shifting of axes origin <var>Org</var> if it lies out of range <var>Min</var> ... <var>Max</var>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Curved-coordinates"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ranges-_0028bounding-box_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ticks" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Curved-coordinates-1"></a>
+<h3 class="subsection">3.2.2 Curved coordinates</h3>
+<a name="index-SetFunc"></a>
+<a name="index-SetCoor"></a>
+<a name="index-Ternary"></a>
+
+<dl>
+<dt><a name="index-SetFunc-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetFunc</b><i> (<code>const char *</code>EqX, <code>const char *</code>EqY, <code>const char *</code>EqZ=<code>&quot;&quot;</code>, <code>const char *</code>EqA=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005ffunc"></a><u>C function:</u> <code>void</code> <b>mgl_set_func</b><i> (<code>HMGL</code> gr, <code>const char *</code>EqX, <code>const char *</code>EqY, <code>const char *</code>EqZ)</i></dt>
+<dt><a name="index-mgl_005fset_005ffunc_005fext"></a><u>C function:</u> <code>void</code> <b>mgl_set_func_ext</b><i> (<code>HMGL</code> gr, <code>const char *</code>EqX, <code>const char *</code>EqY, <code>const char *</code>EqZ, <code>const char *</code>EqA)</i></dt>
+<dd><p>Sets transformation formulas for curvilinear coordinate. Each string should contain mathematical expression for real coordinate depending on internal coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; and &lsquo;<samp>a</samp>&rsquo; or &lsquo;<samp>c</samp>&rsquo; for colorbar. For example, the cylindrical coordinates are introduced as <code>Axis(&quot;x*cos(y)&quot;, &quot;x*sin(y)&quot;, &quot;z&quot;);</code>. For removing of formulas the corresponding parameter should be empty or <code>NULL</code>. Using transformation formulas will slightly slowing the program. Parameter <var>EqA</var> set the similar transformation formula for color scheme. See section <a href="mathgl_en_1.html#Textual-formulas">Textual formulas</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetCoor-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCoor</b><i> (<code>int</code> how)</i></dt>
+<dt><a name="index-mgl_005fset_005fcoor"></a><u>C function:</u> <code>void</code> <b>mgl_set_coor</b><i> (<code>HMGL</code> gr, <code>int</code> how)</i></dt>
+<dd><p>Sets one of the predefined transformation formulas for curvilinear coordinate. Paramater <var>how</var> define the coordinates: <code>mglCartesian=0</code> &ndash; Cartesian coordinates (no transformation); <code>mglPolar=1</code> &ndash; Polar coordiantes <em>x_n=x*cos(y),y_n=x*sin(y), z_n=z</em>; <code>mglSpherical=2</code> &ndash; Sperical coordinates <em>x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y)</em>; <code>mglParabolic=3</code> &ndash; Parabolic coordinates <em>x_n=x*y, y_n=(x*x-y*y)/2, z_n=z</em>; <code>mglParaboloidal=4</code> &ndash; Paraboloidal coordinates <em>x_n=(x*x-y*y)*cos(z)/2, y_n=(x*x-y*y)*sin(z)/2, z_n=x*y</em>; <code>mglOblate=5</code> &ndash; Oblate coordinates <em>x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z), z_n=sinh(x)*sin(y)</em>; <code>mglProlate=6</code> &ndash; Prolate coordinates <em>x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z), z_n=cosh(x)*cos(y)</em>; <code>mglElliptic=7</code> &ndash; Elliptic coordinates <em>x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z</em>; <code>mglToroidal=8</code> &ndash; Toroidal coordinates <em>x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)), y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y))</em>; <code>mglBispherical=9</code> &ndash; Bispherical coordinates <em>x_n=sin(y)*cos(z)/(cosh(x)-cos(y)), y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y))</em>; <code>mglBipolar=10</code> &ndash; Bipolar coordinates <em>x_n=sinh(x)/(cosh(x)-cos(y)), y_n=sin(y)/(cosh(x)-cos(y)), z_n=z</em>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Ternary-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Ternary</b><i> (<code>bool</code> tern)</i></dt>
+<dt><a name="index-mgl_005fset_005fternary"></a><u>C function:</u> <code>void</code> <b>mgl_set_ternary</b><i> (<code>HMGL</code> gr, <code>int</code> tern)</i></dt>
+<dd><p>The function sets to draws Ternary plot. This special plot is for 3 dependent coordinates (components) <var>a</var>, <var>b</var>, <var>c</var> so that <var>a</var>+<var>b</var>+<var>c</var>=1. MathGL uses only 2 independent coordinates <var>a</var>=x and <var>b</var>=y since it is enough to plot everything. At this third coordinate z act as another parameter to produce contour lines, surfaces and so on. See section <a href="mathgl_en_9.html#Ternary-plot-sample">Ternary plot sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Ticks"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Curved-coordinates" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transformation-matrix" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ticks-1"></a>
+<h3 class="subsection">3.2.3 Ticks</h3>
+
+<a name="index-SetTicks"></a>
+<a name="index-SetTicksVal"></a>
+<a name="index-SetTuneTicks"></a>
+<a name="index-AdjustTicks"></a>
+<a name="index-SetXTT"></a>
+<a name="index-SetYTT"></a>
+<a name="index-SetZTT"></a>
+<a name="index-SetCTT"></a>
+
+<dl>
+<dt><a name="index-AdjustTicks-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>AdjustTicks</b><i> (<code>const char *</code>dir=<code>&quot;xyz&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fadjust_005fticks"></a><u>C function:</u> <code>void</code> <b>mgl_adjust_ticks</b><i> (<code>HMGL</code> gr, <code>const char *</code>dir)</i></dt>
+<dd><p>Set the ticks step, number of sub-ticks and initial ticks position to be the most human readable for the axis along direction(s) <var>dir</var>. Also set <code>SetTuneTicks(true)</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTicks-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTicks</b><i> (<code>char</code> dir, <code>float</code> d=<code>-5</code>, <code>int</code> ns=<code>0</code>, <code>float</code> org=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fticks_005fdir"></a><u>C function:</u> <code>void</code> <b>mgl_set_ticks_dir</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>float</code> d, <code>int</code> ns, <code>float</code> org)</i></dt>
+<dt><a name="index-mgl_005fset_005fticks"></a><u>C function:</u> <code>void</code> <b>mgl_set_ticks</b><i> (<code>HMGL</code> gr, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz)</i></dt>
+<dt><a name="index-mgl_005fset_005fsubticks"></a><u>C function:</u> <code>void</code> <b>mgl_set_subticks</b><i> (<code>HMGL</code> gr, <code>int</code> nx, <code>int</code> ny, <code>int</code> nz)</i></dt>
+<dt><a name="index-mgl_005fset_005ftick_005forigin"></a><u>C function:</u> <code>void</code> <b>mgl_set_tick_origin</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0)</i></dt>
+<dd><p>Set the ticks step <var>d</var>, number of sub-ticks <var>ns</var> and initial ticks position <var>org</var> for the axis along direction <var>dir</var> (use &rsquo;c&rsquo; for colorbar ticks). Variable <var>d</var> set step for axis ticks (if positive) or it&rsquo;s number on the axis range (if negative). Zero value set logarithmic ticks. If <var>org</var> value is NAN then value from <var>Org</var> is used.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTicksVal-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTicksVal</b><i> (<code>char</code> dir, <code>int</code> n, <code>float *</code>val, <code>const char **</code>lbl)</i></dt>
+<dt><a name="index-SetTicksVal-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTicksVal</b><i> (<code>char</code> dir, <code>int</code> n, <code>float *</code>val, <code>const wchar_t **</code>lbl)</i></dt>
+<dt><a name="index-SetTicksVal-3"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>SetTicksVal</b><i> (<code>char</code> dir, <code>int</code> n, <code>float</code> val1, <code>wchar_t *</code>lbl1, ...)</i></dt>
+<dt><a name="index-mgl_005fset_005fticks_005fvals"></a><u>C function:</u> <code>void</code> <b>mgl_set_ticks_vals</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>int</code> n, <code>float *</code>val, <code>const char **</code>lbl)</i></dt>
+<dt><a name="index-mgl_005fset_005fticks_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_set_ticks_val</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>int</code> n, <code>double</code> val, <code>const char *</code>lbl, ...)</i></dt>
+<dd><p>Set the manual positions <var>val</var> and its labels <var>lbl</var> for <var>n</var>-th ticks along axis <var>dir</var>. The arrays <var>val</var> and <var>lbl</var> must contain <var>n</var> elements. Use <code>SetTicks()</code> to restore automatic ticks. Note, you <strong>have to be</strong> very careful to use floating-point (not integer!!!) values as ticks position due to limitations of stdarg library (argument transfer). See section <a href="mathgl_en_9.html#Manual-ticks-sample">Tick values sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTuneTicks-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTuneTicks</b><i> (<code>bool</code> tune, <code>float</code> pos=<code>1.15</code>)</i></dt>
+<dt><a name="index-mgl_005ftune_005fticks"></a><u>C function:</u> <code>void</code> <b>mgl_tune_ticks</b><i> (<code>HMGL</code> gr, <code>bool</code> tune, <code>float</code> pos)</i></dt>
+<dd><p>Switch on/off ticks enhancing by factoring common multiplier (for small, like from 0.001 to 0.002, or large, like from 1000 to 2000, coordinate values) or common component (for narrow range, like from 0.999 to 1.000). Also set the position <var>pos</var> of common multiplier/component on the axis: =0 at minimal axis value, =1 at maximal axis value. Default value is 1.15.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetXTT-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetXTT</b><i> (<code>const char *</code>xtt)</i></dt>
+<dt><a name="index-SetYTT-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetYTT</b><i> (<code>const char *</code>ytt)</i></dt>
+<dt><a name="index-SetZTT-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetZTT</b><i> (<code>const char *</code>ztt)</i></dt>
+<dt><a name="index-SetCTT-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCTT</b><i> (<code>const char *</code>ctt)</i></dt>
+<dt><a name="index-SetXTT-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetXTT</b><i> (<code>const wchar_t *</code>xtt)</i></dt>
+<dt><a name="index-SetYTT-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetYTT</b><i> (<code>const wchar_t *</code>ytt)</i></dt>
+<dt><a name="index-SetZTT-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetZTT</b><i> (<code>const wchar_t *</code>ztt)</i></dt>
+<dt><a name="index-SetCTT-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCTT</b><i> (<code>const wchar_t *</code>ctt)</i></dt>
+<dt><a name="index-mgl_005fset_005fxttw"></a><u>C function:</u> <code>void</code> <b>mgl_set_xttw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>xtt)</i></dt>
+<dt><a name="index-mgl_005fset_005fyttw"></a><u>C function:</u> <code>void</code> <b>mgl_set_yttw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ytt)</i></dt>
+<dt><a name="index-mgl_005fset_005fzttw"></a><u>C function:</u> <code>void</code> <b>mgl_set_zttw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ztt)</i></dt>
+<dt><a name="index-mgl_005fset_005fcttw"></a><u>C function:</u> <code>void</code> <b>mgl_set_cttw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ctt)</i></dt>
+<dt><a name="index-mgl_005fset_005fxtt"></a><u>C function:</u> <code>void</code> <b>mgl_set_xtt</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>xtt)</i></dt>
+<dt><a name="index-mgl_005fset_005fytt"></a><u>C function:</u> <code>void</code> <b>mgl_set_ytt</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ytt)</i></dt>
+<dt><a name="index-mgl_005fset_005fztt"></a><u>C function:</u> <code>void</code> <b>mgl_set_ztt</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ztt)</i></dt>
+<dt><a name="index-mgl_005fset_005fctt"></a><u>C function:</u> <code>void</code> <b>mgl_set_ctt</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ctt)</i></dt>
+<dd><p>The template for x-,y-,z-axis ticks or colorbar ticks. It may contain TeX symbols also. If <var>xtt</var>, <var>ytt</var>, <var>ztt</var>, <var>ctt</var>=<code>&quot;&quot;</code> then default template is used (in simplest case it is &lsquo;<samp>%.2g</samp>&rsquo;). Setting of template switch off automatic ticks tuning (see <code>SetTuneTicks()</code>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-dx_002c-dy_002c-dz-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>float</code> <b>dx, dy, dz</b></dt>
+<dd><p>Step for axis ticks. See <code>SetTicks()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-NSx_002c-NSy_002c-NSz-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>int</code> <b>NSx, NSy, NSz</b></dt>
+<dd><p>Number of axis sub-ticks. See <code>SetTicks()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-OrgT-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>mglPoint</code> <b>OrgT</b></dt>
+<dd><p>Starting point for ticks. See <code>SetTicks()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TuneTicks-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>bool</code> <b>TuneTicks</b></dt>
+<dd><p>Switch on/off ticks enhancing by factoring common multiplier. See <code>SetTuneTicks()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FactorPos-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>float</code> <b>FactorPos</b></dt>
+<dd><p>The position of common multiplier/component on the axis. See <code>SetTuneTicks()</code>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Transformation-matrix"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ticks" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Export-to-file" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transformation-matrix-1"></a>
+<h2 class="section">3.3 Transformation matrix</h2>
+<a name="index-Aspect"></a>
+<a name="index-Rotate"></a>
+<a name="index-RotateN"></a>
+<a name="index-SubPlot"></a>
+<a name="index-StickPlot"></a>
+<a name="index-InPlot"></a>
+<a name="index-Identity"></a>
+<a name="index-Perspective"></a>
+<a name="index-RestoreM"></a>
+<a name="index-View"></a>
+<a name="index-ColumnPlot"></a>
+<a name="index-Push"></a>
+<a name="index-Pop"></a>
+
+<p>These functions control how and where further plotting will be placed. There is a curtain order of calling of these functions for the better plot view. First one should be SubPlot() or InPlot() for specifying the place. After it a Rotate() and Aspect(). And finally any other plotting functions may be called. Alternatevely you can use ColumnPlot() for position plots in the column one by another without gap between plot axis (bounding boxes).
+</p>
+<dl>
+<dt><a name="index-SubPlot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SubPlot</b><i> (<code>int</code> nx, <code>int</code> ny, <code>int</code> m, <code>float</code> dx=<code>0</code>, <code>float</code> dy=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fsubplot"></a><u>C function:</u> <code>void</code> <b>mgl_subplot</b><i> (<code>HMGL</code> gr, <code>int</code> nx, <code>int</code> ny, <code>int</code> m)</i></dt>
+<dt><a name="index-mgl_005fsubplot_005fd"></a><u>C function:</u> <code>void</code> <b>mgl_subplot_d</b><i> (<code>HMGL</code> gr, <code>int</code> nx, <code>int</code> ny, <code>int</code> m, <code>float</code> dx, <code>float</code> dy)</i></dt>
+<dd><p>Puts further plotting in a <var>m</var>-th cell of <var>nx</var>*<var>ny</var> grid of the whole frame area. This function set off any aspects or rotations. So it should be used first for creating the subplot. From the aesthetical point of view it is not recommended to use this function with different matrices in the same frame. The position of the cell can be shifted from its default position by relative size <var>dx</var>, <var>dy</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SubPlot-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SubPlot</b><i> (<code>int</code> nx, <code>int</code> ny, <code>int</code> m, <code>const char *</code>style)</i></dt>
+<dt><a name="index-mgl_005fsubplot_005fs"></a><u>C function:</u> <code>void</code> <b>mgl_subplot_s</b><i> (<code>HMGL</code> gr, <code>int</code> nx, <code>int</code> ny, <code>int</code> m, <code>const char *</code>style)</i></dt>
+<dd><p>The same as previous but space reserved for axis/colorbar is saved only if <var>style</var> contain: &lsquo;<samp>L</samp>&rsquo; or &lsquo;<samp>&lt;</samp>&rsquo; &ndash; at left side, &lsquo;<samp>R</samp>&rsquo; or &lsquo;<samp>&gt;</samp>&rsquo; &ndash; at right side, &lsquo;<samp>A</samp>&rsquo; or &lsquo;<samp>^</samp>&rsquo; &ndash; at top side, &lsquo;<samp>U</samp>&rsquo; or &lsquo;<samp>_</samp>&rsquo; &ndash; at bottom side.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-InPlot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>InPlot</b><i> (<code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2, <code>bool</code> rel=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005finplot"></a><u>C function:</u> <code>void</code> <b>mgl_inplot</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2)</i></dt>
+<dt><a name="index-mgl_005frelplot"></a><u>C function:</u> <code>void</code> <b>mgl_relplot</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2)</i></dt>
+<dd><p>Puts further plotting in some region of the whole frame surface. This function allows one to create a plot in arbitrary place of the screen. The position is defined by rectangular coordinates [<var>x1</var>, <var>x2</var>]*[<var>y1</var>, <var>y2</var>]. The coordinates <var>x1</var>, <var>x2</var>, <var>y1</var>, <var>y2</var> are normalized to interval [0, 1]. If parameter <var>rel</var>=<code>true</code> then the relative position to current SubPlot() (or last InPlot() with <var>rel</var>=<code>false</code>) is used. This function set off any aspects or rotations. So it should be used first for creating subplot.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ColumnPlot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ColumnPlot</b><i> (<code>int</code> num, <code>int</code> ind, <code>float</code> d=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcolumnplot"></a><u>C function:</u> <code>void</code> <b>mgl_columnplot</b><i> (<code>HMGL</code> gr, <code>int</code> num, <code>int</code> ind)</i></dt>
+<dt><a name="index-mgl_005fcolumnplot_005fd"></a><u>C function:</u> <code>void</code> <b>mgl_columnplot_d</b><i> (<code>HMGL</code> gr, <code>int</code> num, <code>int</code> ind, <code>float</code> d)</i></dt>
+<dd><p>Puts further plotting in <var>ind</var>-th cell of column with <var>num</var> cells. The position is relative to previous SubPlot() call (or InPlot() with <var>rel</var>=<code>false</code>). Parameter <var>d</var> set extra gap between cells. See section <a href="mathgl_en_9.html#ColumnPlot-sample">ColumnPlot sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-StickPlot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>StickPlot</b><i> (<code>int</code> num, <code>int</code> ind, <code>float</code> tet, <code>float</code> phi)</i></dt>
+<dt><a name="index-mgl_005fstickplot"></a><u>C function:</u> <code>void</code> <b>mgl_stickplot</b><i> (<code>HMGL</code> gr, <code>int</code> num, <code>int</code> ind, <code>float</code> tet, <code>float</code> phi)</i></dt>
+<dd><p>Puts further plotting in <var>ind</var>-th cell of stick with <var>num</var> cells. At this, stick is rotated on angles <var>tet</var>, <var>phi</var>. The position is relative to previous SubPlot() call (or InPlot() with <var>rel</var>=<code>false</code>). See section <a href="mathgl_en_9.html#StickPlot-sample">StickPlot sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Rotate-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Rotate</b><i> (<code>float</code> TetX, <code>float</code> TetZ, <code>float</code> TetY=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005frotate"></a><u>C function:</u> <code>void</code> <b>mgl_rotate</b><i> (<code>HMGL</code> gr, <code>float</code> TetX, <code>float</code> TetZ, <code>float</code> TetY)</i></dt>
+<dd><p>Rotates a further plotting relative to each axis {x, z, y} consecutively on angles <var>TetX</var>, <var>TetZ</var>, <var>TetY</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-RotateN-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>RotateN</b><i> (<code>float</code> Tet, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dt><a name="index-mgl_005frotate_005fvector"></a><u>C function:</u> <code>void</code> <b>mgl_rotate_vector</b><i> (<code>HMGL</code> gr, <code>float Tet</code>, <code>float x</code>, <code>float y</code>, <code>float z</code>)</i></dt>
+<dd><p>Rotates a further plotting around vector {<var>x</var>, <var>y</var>, <var>z</var>} on angle <var>Tet</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Aspect-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Aspect</b><i> (<code>float</code> Ax, <code>float</code> Ay, <code>float</code> Az)</i></dt>
+<dt><a name="index-mgl_005faspect"></a><u>C function:</u> <code>void</code> <b>mgl_aspect</b><i> (<code>HMGL</code> gr, <code>float</code> Ax, <code>float</code> Ay, <code>float</code> Az)</i></dt>
+<dd><p>Defines aspect ratio for the plot. The viewable axes will be related one to another as the ratio <var>Ax:Ay:Az</var>. For the best effect it should be used after Rotate() function.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Perspective-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Perspective</b><i> (<code>float</code> a)</i></dt>
+<dt><a name="index-mgl_005fperspective"></a><u>C function:</u> <code>void</code> <b>mgl_perspective</b><i> (<code>HMGL</code> gr, <code>float</code> a)</i></dt>
+<dd><p>Add (switch on) the perspective to plot. The parameter <em>a ~ 1/z_eff \in [0,1)</em>. By default (<code>a=0</code>) the perspective is off.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Identity-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Identity</b><i> (<code>bool</code> rel=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fidentity"></a><u>C function:</u> <code>void</code> <b>mgl_identity</b><i> (<code>HMGL</code> gr, <code>int</code> rel)</i></dt>
+<dd><p>Clears transformation matrix. This function clears all previous effects of Aspect(), SubPlot(), InPlot() or Rotate() functions. It is equivalent to the call of <code>InPlot(0,1,0,1,rel)</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Push-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Push</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fmat_005fpush"></a><u>C function:</u> <code>void</code> <b>mgl_mat_push</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Push transformation matrix into stack. Later you can restore its current state by Pop() function. Stack can keep up to 10 matrices.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Pop-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pop</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fmat_005fpop"></a><u>C function:</u> <code>void</code> <b>mgl_mat_pop</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Pop (restore last &rsquo;pushed&rsquo;) transformation matrix into stack.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Export-to-file"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transformation-matrix" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Primitives-drawing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Export-to-file-1"></a>
+<h2 class="section">3.4 Export to file</h2>
+<a name="index-WriteFrame"></a>
+<a name="index-WritePNG"></a>
+<a name="index-WriteGIF"></a>
+<a name="index-WriteIDTF"></a>
+<a name="index-WriteSVG"></a>
+<a name="index-WriteBMP"></a>
+<a name="index-WriteEPS"></a>
+<a name="index-WriteJPEG"></a>
+<a name="index-SetSize"></a>
+<a name="index-Flush"></a>
+<a name="index-Finish"></a>
+<a name="index-ShowImage"></a>
+
+<p>These functions export current view to a graphic file. The filename <var>fname</var> should have appropriate extension. Parameter <var>descr</var> gives the short description of the picture. Just now the transparency is supported in PNG and SVG files.
+</p>
+<dl>
+<dt><a name="index-WriteFrame-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteFrame</b><i> (<code>const char *</code>fname=<code>&quot;&quot;</code>, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fframe"></a><u>C function:</u> <code>void</code> <b>mgl_write_frame</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Exports current frame to a file <var>fname</var> which type is determined by the extension. Parameter <var>descr</var> adds description to file (can be <code>&quot;&quot;</code>). If <var>fname</var>=<code>&quot;&quot;</code> then the file &lsquo;<samp>frame####.jpg</samp>&rsquo; is used, where &lsquo;<samp>####</samp>&rsquo; is current frame id and name &lsquo;<samp>frame</samp>&rsquo; is defined by <var>PlotId</var> class property.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WritePNG-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WritePNG</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>, <code>int</code> compr=<code>&quot;&quot;</code>, <code>bool</code> alpha=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fpng"></a><u>C function:</u> <code>void</code> <b>mgl_write_png</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fpng_005fsolid"></a><u>C function:</u> <code>void</code> <b>mgl_write_png_solid</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Exports current frame to PNG file. Parameter <var>fname</var> specifies the file name, <var>descr</var> adds description to file, <var>alpha</var> gives the transparency type. By default there are no description added and transparent image used. This function does nothing if NO_PNG is defined during compilation of MathGL library.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteJPEG-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteJPEG</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fjpg"></a><u>C function:</u> <code>void</code> <b>mgl_write_jpg</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Exports current frame to JPEG file. Parameter <var>fname</var> specifies the file name, <var>descr</var> adds description to file. By default there is no description added. This function does nothing if NO_JPEG is defined during compilation of MathGL library.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteGIF-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteGIF</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fgif"></a><u>C function:</u> <code>void</code> <b>mgl_write_gif</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Exports current frame to GIF file. Parameter <var>fname</var> specifies the file name, <var>descr</var> adds description to file. By default there is no description added.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteBMP-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteBMP</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fbmp"></a><u>C function:</u> <code>void</code> <b>mgl_write_bmp</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Exports current frame to BMP file. Parameter <var>fname</var> specifies the file name, <var>descr</var> adds description to file. There is no compression used.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteEPS-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteEPS</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005feps"></a><u>C function:</u> <code>void</code> <b>mgl_write_eps</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Exports current frame to EPS file. The vector representation is used if possible. So it is not recommended for the export of large data plot. It is better to use bitmap format (for example PNG or JPEG). However, program has no internal limitations for size of output file. Parameter <var>fname</var> specifies the file name, <var>descr</var> adds description to file. By default there is no description added. If file name is terminated by &lsquo;<samp>z</samp>&rsquo; (for example, &lsquo;<samp>fname.eps.gz</samp>&rsquo;) then file will be compressed in gzip format.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteSVG-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteSVG</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fsvg"></a><u>C function:</u> <code>void</code> <b>mgl_write_svg</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Exports current frame to SVG (Scalable Vector Graphics) file. The vector representation is used. In difference of EPS format, SVG format support transparency that allows to correctly draw half-transparent plot (like SurfA(), Surf3A(), CloudQ() or CloudP()). Note, the output file may be too large for graphic of large data array (especially for surfaces). It is better to use bitmap format (for example PNG or JPEG). However, program has no internal limitations for size of output file. Parameter <var>fname</var> specifies the file name, <var>descr</var> adds description to file (default is file name). If file name is terminated by &lsquo;<samp>z</samp>&rsquo; (for example, &lsquo;<samp>fname.svgz</samp>&rsquo;) then file will be compressed in gzip format.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteIDTF-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteIDTF</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fidtf"></a><u>C function:</u> <code>void</code> <b>mgl_write_idtf</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Exports current frame to IDTF file. Later this file can be converted to U3D format. The vector representation is used. So, the output file may be too large for graphic of large data array (especially for surfaces). However, program has no internal limitations for size of output file. Parameter <var>fname</var> specifies the file name, <var>descr</var> adds description to file (default is file name).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ShowImage-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ShowImage</b><i> (<code>const char *</code>viewer=<code>&quot;kuickshow&quot;</code>, <code>bool</code> nowait=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fshow_005fimage"></a><u>C function:</u> <code>void</code> <b>mgl_show_image</b><i> (<code>const char *</code>viewer, <code>int</code> nowait)</i></dt>
+<dd><p>Displays the current picture using external program <var>viewer</var> for viewing. The function save the picture to temporary file and call <var>viewer</var> to display it. If <var>nowait</var>=<code>true</code> then the function return immediately (it will not wait while window will be closed).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetSize-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetSize</b><i> (<code>int</code> width, <code>int</code> height)</i></dt>
+<dt><a name="index-mgl_005fset_005fsize"></a><u>C function:</u> <code>void</code> <b>mgl_set_size</b><i> (<code>HMGL</code> gr, <code>int</code> width, <code>int</code> height)</i></dt>
+<dd><p>Sets size of picture in pixels. This function <strong>must be</strong> called before any other plotting because it completely remove picture contents.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Flush-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flush</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fflush"></a><u>C function:</u> <code>void</code> <b>mgl_flush</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Flushes the plotting commands to frame. This function may be useful if one wants to remove array before the finishing of the plot (i.e. before calling <code>Finish()</code>). Also call of this function separate the objects in mglGraphIDTF. Most of plots call this function internally.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Finish-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Finish</b><i> ()</i></dt>
+<dd><p>Finishes plotting and create a picture. Normally this function is called internally.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Primitives-drawing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Export-to-file" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Primitives-drawing-2"></a>
+<h2 class="section">3.5 Primitives drawing</h2>
+<a name="index-Ball"></a>
+<a name="index-Clf"></a>
+<a name="index-Line"></a>
+<a name="index-Curve"></a>
+<a name="index-Glyph"></a>
+<a name="index-Mark"></a>
+<a name="index-Error"></a>
+<a name="index-Face"></a>
+<a name="index-FaceX"></a>
+<a name="index-FaceY"></a>
+<a name="index-FaceZ"></a>
+<a name="index-Cone"></a>
+<a name="index-Drop"></a>
+<a name="index-Sphere"></a>
+
+<p>These functions draw some simple objects like line, point, sphere, drop, cone and so on.
+</p>
+<dl>
+<dt><a name="index-Clf-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Clf</b><i> (<code>mglColor</code> Back=<code>WC</code>)</i></dt>
+<dt><a name="index-mgl_005fclf"></a><u>C function:</u> <code>void</code> <b>mgl_clf</b><i> (<code>HMGL</code> gr)</i></dt>
+<dt><a name="index-mgl_005fclf_005frgb"></a><u>C function:</u> <code>void</code> <b>mgl_clf_rgb</b><i> (<code>HMGL</code> gr, <code>float</code> r, <code>float</code> g, <code>float</code> b)</i></dt>
+<dd><p>Clear the picture and fill it by color <var>Back</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Ball-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Ball</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>mglColor</code> col=<code>RC</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-Ball-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Ball</b><i> (<code>mglPoint</code> p, <code>char</code> col=<code>'r'</code>)</i></dt>
+<dt><a name="index-Ball-3"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Ball</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> col=<code>'r'</code>)</i></dt>
+<dt><a name="index-mgl_005fball"></a><u>C function:</u> <code>void</code> <b>mgl_ball</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dt><a name="index-mgl_005fball_005frgb"></a><u>C function:</u> <code>void</code> <b>mgl_ball_rgb</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> r, <code>float</code> g, <code>float</code> b, <code>float</code> alpha)</i></dt>
+<dt><a name="index-mgl_005fball_005fstr"></a><u>C function:</u> <code>void</code> <b>mgl_ball_str</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> col)</i></dt>
+<dd><p>Draws a point (ball) at position <var>p</var>={<var>x</var>, <var>y</var>, <var>z</var>} with color <var>col</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Error-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Error</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> e, <code>char</code> *pen=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Draws a 3d error box at position <var>p</var> with sizes <var>e</var> and style <var>pen</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Line-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Line</b><i> (<code>mglPoint</code> p1, <code>mglPoint</code> p2, <code>char *</code>stl=<code>&quot;B&quot;</code>, <code>int</code>num=<code>2</code>)</i></dt>
+<dt><a name="index-Line-2"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Line</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>char *</code>stl=<code>&quot;B&quot;</code>, <code>int</code>num=<code>2</code>)</i></dt>
+<dt><a name="index-mgl_005fline"></a><u>C function:</u> <code>void</code> <b>mgl_line</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>char *</code>stl, <code>int</code>num)</i></dt>
+<dd><p>Draws a geodesic line (straight line in Cartesian coordinates) from point <var>p1</var> to <var>p2</var> using line style <var>stl</var>. Parameter <var>num</var> define the &ldquo;quality&rdquo; of the line. If <var>num</var>=<code>2</code> then the stright line will be drawn in all coordinate system (independently on transformation formulas (see section <a href="#Curved-coordinates">Curved coordinates</a>). Contrary, for large values (for example, =<code>100</code>) the geodesic line will be drawn in corresponding coordinate system (straight line in Cartesian coordinates, circle in polar coordinates and so on). Line will be drawn even if it lies out of bounding box.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Curve-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Curve</b><i> (<code>mglPoint</code> p1, <code>mglPoint</code> d1, <code>mglPoint</code> p2, <code>mglPoint</code> d2, <code>const char *</code>stl=<code>&quot;B&quot;</code>, <code>int</code> num=<code>100</code>)</i></dt>
+<dt><a name="index-Curve-2"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Curve</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> dx1, <code>float</code> dy1, <code>float</code> dz1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>float</code> dx2, <code>float</code> dy2, <code>float</code> dz2, <code>const char *</code>stl=<code>&quot;B&quot;</code>, <code>int</code> num=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005fcurve"></a><u>C function:</u> <code>void</code> <b>mgl_curve</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> dx1, <code>float</code> dy1, <code>float</code> dz1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>float</code> dx2, <code>float</code> dy2, <code>float</code> dz2, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Draws Bezier-like curve from point <var>p1</var> to <var>p2</var> using line style <var>stl</var>. At this tangent is codirected with <var>d1</var>, <var>d2</var> and proportional to its amplitude. Parameter <var>num</var> define the &ldquo;quality&rdquo; of the curve. If <var>num</var>=<code>2</code> then the straight line will be drawn in all coordinate system (independently on transformation formulas see section <a href="#Curved-coordinates">Curved coordinates</a>). Contrary, for large values (for example, =<code>100</code>) the spline like Bezier curve will be drawn in corresponding coordinate system. Curve will be drawn even if it lies out of bounding box.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Face-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Face</b><i> (<code>mglPoint</code> p1, <code>mglPoint</code> p2, <code>mglPoint</code> p3, <code>mglPoint</code> p4, <code>const char *</code>stl=<code>&quot;w&quot;</code>, <code>int</code> num=<code>2</code>, <code>float</code> val=<code>NAN</code>)</i></dt>
+<dd><p>Draws the solid quadrangle (face) with vertexes <var>p1</var>, <var>p2</var>, <var>p3</var>, <var>p4</var> and with color(s) <var>stl</var>. At this colors can be the same for all vertexes or different if all 4 colors are specified for each vertex. In first case parameter <var>val</var> (if not <code>NAN</code>) set the color according color scheme. Face will be drawn even if it lies out of bounding box.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FaceX-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>FaceX</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wy, <code>float</code> wz, <code>const char *</code>stl=<code>&quot;w&quot;</code>, <code>float</code> dx=<code>0</code>, <code>float</code> dy=<code>0</code>)</i></dt>
+<dt><a name="index-FaceY-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>FaceY</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wx, <code>float</code> wz, <code>const char *</code>stl=<code>&quot;w&quot;</code>, <code>float</code> dx=<code>0</code>, <code>float</code> dy=<code>0</code>)</i></dt>
+<dt><a name="index-FaceZ-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>FaceZ</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wx, <code>float</code> wy, <code>const char *</code>stl=<code>&quot;w&quot;</code>, <code>float</code> dx=<code>0</code>, <code>float</code> dy=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005ffacex"></a><u>C function:</u> <code>void</code> <b>mgl_facex</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wy, <code>float</code> wz, <code>const char *</code>stl, <code>float</code> d1, <code>float</code> d2)</i></dt>
+<dt><a name="index-mgl_005ffacey"></a><u>C function:</u> <code>void</code> <b>mgl_facey</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wx, <code>float</code> wz, <code>const char *</code>stl, <code>float</code> d1, <code>float</code> d2)</i></dt>
+<dt><a name="index-mgl_005ffacez"></a><u>C function:</u> <code>void</code> <b>mgl_facez</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wx, <code>float</code> wy, <code>const char *</code>stl, <code>float</code> d1, <code>float</code> d2)</i></dt>
+<dd><p>Draws the solid rectangle (face) perpendicular to [x,y,z]-axis correspondingly at position {<var>x0</var>, <var>y0</var>, <var>z0</var>} with color <var>stl</var> and with widths <var>wx</var>, <var>wy</var>, <var>wz</var> along corresponding directions. At this colors can be the same for all vertexes or separately if all 4 colors are specified for each vertex. Parameters <var>d1</var>!=0, <var>d2</var>!=0 set additional shift of the last vertex (i.e. to draw quadrangle).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Sphere-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Sphere</b><i> (<code>mglPoint</code> p, <code>float</code> r, <code>const char *</code>stl=<code>&quot;r&quot;</code>)</i></dt>
+<dt><a name="index-Sphere-2"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Sphere</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> r, <code>const char *</code>stl=<code>&quot;r&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsphere"></a><u>C function:</u> <code>void</code> <b>mgl_sphere</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> r, <code>const char *</code>stl)</i></dt>
+<dd><p>Draw the sphere with radius <var>r</var> and center at point <var>p</var>={<var>x</var>, <var>y</var>, <var>z</var>} and color <var>stl</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Drop-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Drop</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> q, <code>float</code> r, <code>mglColor</code> col, <code>float</code> shift=<code>1</code>, <code>float</code> ap=<code>1</code>)</i></dt>
+<dt><a name="index-Drop-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Drop</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> q, <code>float</code> r, <code>const char *</code>col=&quot;r&quot;, <code>float</code> shift=<code>1</code>, <code>float</code> ap=<code>1</code>)</i></dt>
+<dt><a name="index-Drop-3"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Drop</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>float</code> r, <code>const char *</code>col=&quot;r&quot;, <code>float</code> shift=<code>1</code>, <code>float</code> ap=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdrop"></a><u>C function:</u> <code>void</code> <b>mgl_drop</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>float</code> r, <code>const char *</code>col, <code>float</code> shift, <code>float</code> ap)</i></dt>
+<dd><p>Draw the drop with radius <var>r</var> at point <var>p</var> elongated in direction <var>q</var> and with color <var>col</var>. Parameter <var>shift</var> set the degree of drop oblongness: &lsquo;<samp>0</samp>&rsquo; is sphere, &lsquo;<samp>1</samp>&rsquo; is maximally oblongness drop. Parameter <var>ap</var> set relative width of the drop (this is analogue of &ldquo;ellipticity&rdquo; for the sphere). See section <a href="mathgl_en_9.html#Drops-sample">Drops sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cone-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Cone</b><i> (<code>mglPoint</code> p1, <code>mglPoint</code> p2, <code>float</code> r1, <code>float</code> r2=<code>-1</code>, <code>const char *</code>stl=<code>&quot;B&quot;</code>, <code>bool</code> edge=<code>false</code>)</i></dt>
+<dt><a name="index-Cone-2"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Cone</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>float</code> r1, <code>float</code> r2=<code>-1</code>, <code>const char *</code>stl=<code>&quot;B&quot;</code>, <code>bool</code> edge=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fcone"></a><u>C function:</u> <code>void</code> <b>mgl_cone</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>float</code> r1, <code>float</code> r2, <code>const char *</code>stl, <code>int</code> draw_edge)</i></dt>
+<dd><p>Draw tube (or truncated cone if <var>edge</var>=<code>false</code>) between points <var>p1</var>, <var>p2</var> with radius at the edges <var>r1</var>, <var>r2</var>. If <var>r2</var>&lt;0 then it is supposed that <var>r2</var>=<var>r1</var>. The cone color is defined by string <var>stl</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Mark-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Mark</b><i> (<code>mglPoint</code> p, <code>char</code> mark=<code>'.'</code>)</i></dt>
+<dt><a name="index-Mark-2"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Mark</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> mark=<code>'.'</code>)</i></dt>
+<dt><a name="index-mgl_005fmark"></a><u>C function:</u> <code>void</code> <b>mgl_mark</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> mark)</i></dt>
+<dd><p>Draws a marks of different type at position <var>p</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Glyph-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Glyph</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> f, <code>int</code> nt, <code>const short *</code>trig, <code>int</code> nl, <code>const short *</code>line)</i></dt>
+<dd><p>Draw a set of triangles (or lines if <var>trig</var>=<code>NULL</code>) for glyph which is placed at point {<var>x</var>, <var>y</var>}. Values in the arrays are normalized by factor <var>f</var>. Normally this function is used internally.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Text-printing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Primitives-drawing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-Colorbar" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-printing-1"></a>
+<h2 class="section">3.6 Text printing</h2>
+<a name="index-Puts"></a>
+<a name="index-Putsw"></a>
+<a name="index-Text"></a>
+<a name="index-Title"></a>
+
+<p>These functions draw the text. There are functions for drawing text in arbitrary place, in arbitrary direction and along arbitrary curve. The class mglFont (see section <a href="mathgl_en_7.html#mglFont-class">mglFont class</a>) is used for low-level string parsing and printing. It can use arbitrary font-faces and parse many TeX commands (for detail see section <a href="mathgl_en_1.html#Font-styles">Font styles</a>). All these functions have 2 variant: for printing 8-bit text (<code>char *</code>) and for printing Unicode text (<code>wchar_t *</code>). In first case the conversion in current locale is used. So sometimes you need to specify it by <code>setlocale()</code> function. The size argument control the size of text: if positive it give the value, if negative it give the value relative to <var>FontSize</var>. The font type (STIX, arial, courier, times and so on) can be selected by function SetFont(), GetFont(). See section <a href="#Font-settings">Font settings</a>.
+</p>
+<p>The font parameters are described by string. This string may contain several characters of font type (&lsquo;<samp>rbiwou</samp>&rsquo;) and/or align (&lsquo;<samp>LRC</samp>&rsquo;) specification. Also it may contain the text color &lsquo;<samp>wkrgbcymhRGBCYMHW</samp>&rsquo; (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>) after symbol &lsquo;<samp>:</samp>&rsquo;. The font types are: &lsquo;<samp>r</samp>&rsquo; &ndash; roman font, &lsquo;<samp>i</samp>&rsquo; &ndash; italic style, &lsquo;<samp>b</samp>&rsquo; &ndash; bold style, &lsquo;<samp>w</samp>&rsquo; &ndash; wired style, &lsquo;<samp>o</samp>&rsquo; &ndash; over-lined text, &lsquo;<samp>u</samp>&rsquo; &ndash; underlined text. By default roman font is used. The align types are: &lsquo;<samp>L</samp>&rsquo; &ndash; align left (default), &lsquo;<samp>C</samp>&rsquo; &ndash; align center, &lsquo;<samp>R</samp>&rsquo; &ndash; align right. For example, string &lsquo;<samp>iC:b</samp>&rsquo; correspond to italic font style for centered text which printed by blue color.
+</p>
+<p>If string contains symbols &lsquo;<samp>aA</samp>&rsquo; then text is printed at arbitrary position {<var>x</var>, <var>y</var>} (supposed to be in range [0,1]) of subplot (for &lsquo;<samp>a</samp>&rsquo;) or picture (for &lsquo;<samp>A</samp>&rsquo;).
+</p>
+<dl>
+<dt><a name="index-Puts-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Puts</b><i> (<code>mglPoint</code> p, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>, <code>char</code> dir=<code>0</code>, <code>float</code> shift=<code>0</code>)</i></dt>
+<dt><a name="index-Putsw-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Putsw</b><i> (<code>mglPoint</code> p, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>, <code>char</code> dir=<code>0</code>, <code>float</code> shift=<code>0</code>)</i></dt>
+<dt><a name="index-Puts-2"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Puts</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>, <code>char</code> dir=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fputs"></a><u>C function:</u> <code>void</code> <b>mgl_puts</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const char *</code>text)</i></dt>
+<dt><a name="index-mgl_005fputsw"></a><u>C function:</u> <code>void</code> <b>mgl_putsw</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const wchar_t *</code>text)</i></dt>
+<dt><a name="index-mgl_005fputs_005fext"></a><u>C function:</u> <code>void</code> <b>mgl_puts_ext</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const char *</code>text, <code>const char *</code>font, <code>float</code> size, <code>char</code> dir)</i></dt>
+<dt><a name="index-mgl_005fputsw_005fext"></a><u>C function:</u> <code>void</code> <b>mgl_putsw_ext</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const wchar_t *</code>text, <code>const char *</code>font, <code>float</code> size, <code>char</code> dir)</i></dt>
+<dd><p>The function plots the string <var>text</var> at position <var>p</var> with fonts specifying by the criteria <var>how</var>. The size of font is set by <var>size</var> parameter (default is <var>FontSize</var>). Parameter <var>dir</var> specifies the additional string align. The aligns are: &lsquo;<samp>x</samp>&rsquo; &ndash; align as x-label, &lsquo;<samp>y</samp>&rsquo; &ndash; align as y-label, &lsquo;<samp>z</samp>&rsquo; &ndash; align as z-label, &lsquo;<samp>i</samp>&rsquo; &ndash; align as x-label but inverse writing direction, &lsquo;<samp>t</samp>&rsquo; &ndash; no align (default), &lsquo;<samp>n</samp>&rsquo; &ndash; align in x-y plane.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Puts-3"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>float</code> <b>Puts</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> l, <code>const char *</code>text, <code>char</code>where=<code>'t'</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-Putsw-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>float</code> <b>Putsw</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> l, <code>const wchar_t *</code>text, <code>char</code>where=<code>'t'</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-Puts-4"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Puts</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>const char *</code>text, <code>char</code>where=<code>'t'</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fputs_005fdir"></a><u>C function:</u> <code>void</code> <b>mgl_puts_dir</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>const char *</code>text, <code>float</code> size)</i></dt>
+<dt><a name="index-mgl_005fputsw_005fdir"></a><u>C function:</u> <code>void</code> <b>mgl_putsw_dir</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>const wchar_t *</code>text, <code>float</code> size)</i></dt>
+<dd><p>The function plots the string <var>text</var> at position <var>p</var> along direction <var>l</var> with specified <var>size</var>. Parameter <var>where</var> set to print text above the line (&lsquo;<samp>T</samp>&rsquo;) or under the line (&lsquo;<samp>t</samp>&rsquo;). Function return the width of the string.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Text-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Text</b><i> (<code>mglPoint</code> p, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>, <code>char</code> dir=<code>0</code>)</i></dt>
+<dt><a name="index-Text-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Text</b><i> (<code>mglPoint</code> p, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>, <code>char</code> dir=<code>0</code>)</i></dt>
+<dd><p>The function plots the string <var>text</var> at position <var>p</var> with fonts <var>how</var>. These functions are obsolete &ndash; use Puts(), Putsw() functions instead.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Printf"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Printf</b><i> (<code>mglPoint</code> p, <code>const char *</code>arg, ...)</i></dt>
+<dd><p>Print formatted string at point <var>p</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Label"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Label</b><i> (<code>float</code> x, <code>float</code> y, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-Labelw"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Labelw</b><i> (<code>float</code> x, <code>float</code> y, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005flabel_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_label_xy</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>const char *</code>text, <code>const char *</code>font, <code>float</code> size)</i></dt>
+<dt><a name="index-mgl_005flabelw_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_labelw_xy</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>const wchar_t *</code>text, <code>const char *</code>font, <code>float</code> size)</i></dt>
+<dd><p>The function draws the string <var>text</var> at position {<var>x</var>, <var>y</var>} with fonts specifying by <var>font</var>. The size of font is set by <var>size</var> parameter (default is <var>FontSize</var>). Coordiantes <code>x, y</code> are supposed to be in range [0,1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Title-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Title</b><i> (<code>const char *</code>text, <code>const char *</code>font=<code>0</code>, <code>float</code> size=<code>-2</code>)</i></dt>
+<dt><a name="index-Title-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Title</b><i> (<code>const wchar_t *</code>text, <code>const char *</code>font=<code>0</code>, <code>float</code> size=<code>-2</code>)</i></dt>
+<dt><a name="index-Title-3"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Title</b><i> (<code>const char *</code>text, <code>const char *</code>font=<code>0</code>, <code>int</code> size=<code>-2</code>)</i></dt>
+<dt><a name="index-mgl_005ftitle"></a><u>C function:</u> <code>void</code> <b>mgl_title</b><i> (<code>HMGL</code> gr, <code>const char *</code>text, <code>const char *</code>font, <code>int</code> size)</i></dt>
+<dt><a name="index-mgl_005ftitlew"></a><u>C function:</u> <code>void</code> <b>mgl_titlew</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>text, <code>const char *</code>font, <code>int</code> size)</i></dt>
+<dd><p>Print string <var>text</var> as title of the picture (at the top of the picture). Can be used at any place (even inside SubPlot()).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Text-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-4"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>y, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-5"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-6"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-7"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-8"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005ftext_005fy"></a><u>C function:</u> <code>void</code> <b>mgl_text_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>text, <code>const char *</code>font, float size)</i></dt>
+<dt><a name="index-mgl_005ftext_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_text_xy</b><i> (<code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>text, <code>const char *</code>font, float size)</i></dt>
+<dt><a name="index-mgl_005ftext_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_text_xyz</b><i> (<code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>text, <code>const char *</code>font, float size)</i></dt>
+<dd><p>The function draws <var>text</var> along the curve between points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} by font style <var>font</var> and with size <var>size</var>. The string <var>font</var> may contain symbols &lsquo;<samp>t</samp>&rsquo; for printing the text under the curve (default), or &lsquo;<samp>T</samp>&rsquo; for printing the text above the curve. The sizes of 1st dimension must be equal for all arrays <code>x.nx=y.nx=z.nx</code>. If array <var>x</var> is not specified then its an automatic array is used with values equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x] (see section <a href="#Ranges-_0028bounding-box_0029">Ranges (bounding box)</a>). If array <var>z</var> is not specified then <var>z</var>[i] = <var>zVal</var> is used. See section <a href="mathgl_en_9.html#Text-sample">Text sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axis-and-Colorbar"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-and-Colorbar-1"></a>
+<h2 class="section">3.7 Axis and Colorbar</h2>
+<a name="index-Axis-2"></a>
+<a name="index-Box"></a>
+<a name="index-Grid"></a>
+<a name="index-Colorbar"></a>
+<a name="index-Label-1"></a>
+
+<p>These functions draw the &ldquo;things for measuring&rdquo;, like axis with ticks, colorbar with ticks, grid along axis, bounding box and labels for axis. For more information see section <a href="#Axis-settings">Axis settings</a>.
+</p>
+<dl>
+<dt><a name="index-Axis-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axis</b><i> (<code>const char *</code>dir=<code>&quot;xyz&quot;</code>, <code>bool</code> adjust=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005faxis"></a><u>C function:</u> <code>void</code> <b>mgl_axis</b><i> (<code>HMGL</code> gr, <code>const char *</code>dir)</i></dt>
+<dd><p>Draws axes with ticks (see section <a href="#Axis-settings">Axis settings</a>) in directions determined by string parameter <var>dir</var>.If string contain the symbol &lsquo;<samp>_</samp>&rsquo; then tick labels are not printed. Font for ticks labels is determined by <var>FontDef</var> (see section <a href="#Font-settings">Font settings</a>). Ticks will be adjusted if <var>adjust</var>=<code>true</code> (by call of <code>AdjustTicks()</code>). You may specified an arrow at the end of axis (see see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>)
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Colorbar-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Colorbar</b><i> (<code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> where=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcolorbar"></a><u>C function:</u> <code>void</code> <b>mgl_colorbar</b><i> (<code>HMGL</code> gr, <code>const char *</code>sch, <code>int</code> where)</i></dt>
+<dd><p>Draws colorbar with color scheme <var>sch</var> (current scheme if <code>sch=&quot;&quot;</code>) at edge of plot. Parameter <var>where</var> specifies the position of the colorbar: &lsquo;<samp>0</samp>&rsquo; - at right (default), &lsquo;<samp>1</samp>&rsquo; - at left, &lsquo;<samp>2</samp>&rsquo; - at top, &lsquo;<samp>3</samp>&rsquo; - at bottom. If string <var>sch</var> contains &lsquo;<samp>&lt;&gt;^_</samp>&rsquo; then the parameter <var>pos</var> is defined as: <code>pos=0</code> for &lsquo;<samp>&gt;</samp>&rsquo; (right), <code>pos=1</code> for &lsquo;<samp>&lt;</samp>&rsquo; (left), <code>pos=2</code> for &lsquo;<samp>^</samp>&rsquo; (top), <code>pos=3</code> for &lsquo;<samp>_</samp>&rsquo; (bottom). If string have &lsquo;<samp>A</samp>&rsquo; then absolute (relative to picture) coordinates is used. See section <a href="mathgl_en_9.html#Dens-sample">Dens sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Colorbar-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Colorbar</b><i> (<code>const mglData &amp;</code>v, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> where=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcolorbar_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_colorbar_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const char *</code>sch, <code>int</code> where)</i></dt>
+<dd><p>The same as previous but with sharp colors <var>sch</var> (current palette if <code>sch=&quot;&quot;</code>) for values <var>v</var>. See section <a href="mathgl_en_9.html#ContD-sample">ContD sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Colorbar-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Colorbar</b><i> (<code>const char *</code>sch, <code>int</code> where, <code>float</code> x, <code>float</code> y, <code>float</code> w, <code>float</code> h)</i></dt>
+<dt><a name="index-Colorbar-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Colorbar</b><i> (<code>int</code> where, <code>float</code> x, <code>float</code> y, <code>float</code> w, <code>float</code> h)</i></dt>
+<dt><a name="index-mgl_005fcolorbar_005fext"></a><u>C function:</u> <code>void</code> <b>mgl_colorbar_ext</b><i> (<code>HMGL</code> gr, <code>const char *</code>sch, <code>int</code> where, <code>float</code> x, <code>float</code> y, <code>float</code> w, <code>float</code> h)</i></dt>
+<dd><p>The same as first one but at arbitrary position of subplot {<var>x</var>, <var>y</var>} (supposed to be in range [0,1]). Parameters <var>w</var>, <var>h</var> set the relative width and height of the colorbar.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Colorbar-5"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Colorbar</b><i> (<code>const mglData &amp;</code>v, <code>const char *</code>sch, <code>int</code> where, <code>float</code> x, <code>float</code> y, <code>float</code> w, <code>float</code> h)</i></dt>
+<dd><p>The same as previous but with sharp colors <var>sch</var> (current palette if <code>sch=&quot;&quot;</code>) for values <var>v</var>. See section <a href="mathgl_en_9.html#ContD-sample">ContD sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Grid-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid</b><i> (<code>const char *</code>dir=<code>&quot;xyz&quot;</code>, <code>const char *</code>pen=<code>&quot;B-&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005faxis_005fgrid"></a><u>C function:</u> <code>void</code> <b>mgl_axis_grid</b><i> (<code>HMGL</code> gr, <code>const char *</code>dir, <code>const char *</code>pen)</i></dt>
+<dd><p>Draws grid lines perpendicular to direction determined by string parameter <var>dir</var>. The step of grid lines is the same as tick step for an Axis(). The style of lines is determined by <var>pen</var> parameter (default value is dark blue solid line &lsquo;<samp>B-</samp>&rsquo;).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Box-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Box</b><i> (<code>const char *</code>col=<code>&quot;&quot;</code>, <code>bool</code> ticks=<code>true</code>)</i></dt>
+<dt><a name="index-Box-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Box</b><i> (<code>mglColor</code> col, <code>bool</code> ticks=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fbox"></a><u>C function:</u> <code>void</code> <b>mgl_box</b><i> (<code>HMGL</code> gr, <code>int</code> ticks)</i></dt>
+<dt><a name="index-mgl_005fbox_005frgb"></a><u>C function:</u> <code>void</code> <b>mgl_box_rgb</b><i> (<code>HMGL</code> gr, <code>float</code> r, <code>float</code> g, <code>float</code> b, <code>int</code> ticks)</i></dt>
+<dt><a name="index-mgl_005fbox_005fstr"></a><u>C function:</u> <code>void</code> <b>mgl_box_str</b><i> (<code>HMGL</code> gr, <code>const char *</code>col, <code>int</code> ticks)</i></dt>
+<dd><p>Draws bounding box outside the plotting volume with color <var>col</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Label-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Label</b><i> (<code>char</code> dir, <code>const char *</code>text, <code>float</code> pos=<code>0</code>, <code>float</code> size=<code>-1.4</code>, <code>float</code> shift=<code>0</code>)</i></dt>
+<dt><a name="index-Label-3"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Label</b><i> (<code>char</code> dir, <code>const wchar_t *</code>text, <code>float</code> pos=<code>0</code>, <code>float</code> size=<code>-1.4</code>, <code>float</code> shift=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005flabel"></a><u>C function:</u> <code>void</code> <b>mgl_label</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>const char *</code>text)</i></dt>
+<dt><a name="index-mgl_005flabel_005fext"></a><u>C function:</u> <code>void</code> <b>mgl_label_ext</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>const char *</code>text, <code>float</code> pos, <code>float</code> size, <code>float</code> shift)</i></dt>
+<dt><a name="index-mgl_005flabelw_005fext"></a><u>C function:</u> <code>void</code> <b>mgl_labelw_ext</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>const wchar_t *</code>text, <code>float</code> pos, <code>float</code> size, <code>float</code> shift)</i></dt>
+<dd><p>Prints the label <var>text</var> for axis <var>dir</var>=&lsquo;<samp>x</samp>&rsquo;,&lsquo;<samp>y</samp>&rsquo;,&lsquo;<samp>z</samp>&rsquo;,&lsquo;<samp>t</samp>&rsquo; (here &lsquo;<samp>t</samp>&rsquo; is &ldquo;ternary&rdquo; axis <em>t=1-x-y</em>). The position of label is determined by <var>pos</var> parameter. If <var>pos</var>=0 then label is printed at the center of axis. If <var>pos</var>&gt;0 then label is printed at the maximum of axis. If <var>pos</var>&lt;0 then label is printed at the minimum of axis. Parameter <var>size</var> determines the font size for the label. By default the font size is 1.4 times larger than the one for ticks <var>FontSize</var> (see section <a href="#Font-settings">Font settings</a>). See section <a href="#Text-printing">Text printing</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Legend"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-Colorbar" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Legend-1"></a>
+<h2 class="section">3.8 Legend</h2>
+<a name="index-Legend"></a>
+<a name="index-AddLegend"></a>
+<a name="index-ClearLegend"></a>
+<a name="index-SetLegendBox"></a>
+<a name="index-SetLegendMarks"></a>
+
+<p>These functions draw legend to the graph (useful for <a href="#g_t1D-plotting">1D plotting</a>). Legend entry is a pair of strings: one for style of the line, another one with description text (with included TeX parsing). The arrays of strings may be used directly or by accumulating first to the internal arrays (by function AddLegend()) and further plotting it. The position of the legend can be selected automatic or manually. Parameters <var>font</var> and <var>size</var> specify the font style and size (see section <a href="#Font-settings">Font settings</a>). Parameter <var>llen</var> set the relative width of the line sample and the text indent. If line style string for entry is empty then the corresponding text is printed without indent. If string <var>font</var> contains symbol &lsquo;<samp>A</samp>&rsquo; then legend coordinates set position in the picture (not in the current subplot). See section <a href="mathgl_en_9.html#Legend-sample">Legend sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Legend-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Legend</b><i> (<code>int</code> where=<code>0x3</code>, <code>const char *</code>font=<code>&quot;rL&quot;</code>, <code>float</code> size=<code>-0.8</code>, <code>float</code> llen=<code>0.1</code>)</i></dt>
+<dt><a name="index-mgl_005flegend"></a><u>C function:</u> <code>void</code> <b>mgl_legend</b><i> (<code>HMGL</code> gr, <code>int</code> where, <code>const char *</code>font, <code>float</code> size, <code>float</code> llen)</i></dt>
+<dd><p>Draws legend of accumulated legend entries by font <var>font</var> with <var>size</var>. Parameter <var>where</var> sets the position of the legend: &lsquo;<samp>0</samp>&rsquo; is bottom left corner, &lsquo;<samp>1</samp>&rsquo; is bottom right corner, &lsquo;<samp>2</samp>&rsquo; is top left corner, &lsquo;<samp>3</samp>&rsquo; is top right corner (is default).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Legend-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Legend</b><i> (<code>int</code> n, <code>wchar_t **</code>text, <code>char **</code>style, <code>int</code> where=<code>0x3</code>, <code>const char *</code>font=<code>&quot;rL&quot;</code>, <code>float</code> size=<code>-0.8</code>, <code>float</code> llen=<code>0.1</code>)</i></dt>
+<dd><p>Draws legend with <var>n</var>-th elements of string array <var>text</var> by font <var>font</var> with <var>size</var>. Entry strings <var>text</var> describe curves with line style <var>style</var> (including marks). Parameter <var>where</var> sets the position of the legend: &lsquo;<samp>0</samp>&rsquo; is bottom left corner, &lsquo;<samp>1</samp>&rsquo; is bottom right corner, &lsquo;<samp>2</samp>&rsquo; is top left corner, &lsquo;<samp>3</samp>&rsquo; is top right corner (is default).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Legend-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Legend</b><i> (<code>float</code> x, <code>float</code> y, <code>const char *</code>font=<code>&quot;rL&quot;</code>, <code>float</code> size=<code>-0.8</code>, <code>float</code> llen=<code>0.1</code>)</i></dt>
+<dt><a name="index-mgl_005flegend_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_legend_xy</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>const char *</code>font, <code>float</code> size, <code>float</code> llen)</i></dt>
+<dd><p>Draws legend of accumulated legend entries by font <var>font</var> with <var>size</var>. Position of legend is determined by parameter <var>x</var>, <var>y</var> which supposed to be normalized to interval [0,1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Legend-4"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Legend</b><i> (<code>int</code> n, <code>wchar_t **</code>text, <code>char **</code>style, <code>float</code> x, <code>float</code> y, <code>const char *</code>font=<code>&quot;rL&quot;</code>, <code>float</code> size=<code>-0.8</code>, <code>float</code> llen=<code>0.1</code>)</i></dt>
+<dd><p>Draws legend with <var>n</var>-th elements of string array <var>text</var> by font <var>font</var> with <var>size</var>. Entry strings <var>text</var> describe curves with line style <var>style</var> (including marks). Position of legend is determined by parameter <var>x</var>, <var>y</var> which supposed to be normalized to interval [0,1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AddLegend-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>AddLegend</b><i> (<code>const char *</code>text, <code>const char *</code>style)</i></dt>
+<dt><a name="index-AddLegend-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>AddLegend</b><i> (<code>const wchar_t *</code>text, <code>const char *</code>style)</i></dt>
+<dt><a name="index-mgl_005fadd_005flegend"></a><u>C function:</u> <code>void</code> <b>mgl_add_legend</b><i> (<code>HMGL</code> gr, <code>const char *</code>text, <code>const char *</code>style)</i></dt>
+<dt><a name="index-mgl_005fadd_005flegendw"></a><u>C function:</u> <code>void</code> <b>mgl_add_legendw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>text, <code>const char *</code>style)</i></dt>
+<dd><p>Adds string <var>text</var> to internal legend accumulator. The style of described line and mark is specified in string <var>style</var> (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). Maximal number of entries is 100.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ClearLegend-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ClearLegend</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fclear_005flegend"></a><u>C function:</u> <code>void</code> <b>mgl_clear_legend</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Clears saved legend strings.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetLegendBox-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetLegendBox</b><i> (<code>bool</code> enable)</i></dt>
+<dt><a name="index-mgl_005fset_005flegend_005fbox"></a><u>C function:</u> <code>void</code> <b>mgl_set_legend_box</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Switch on/off drawing box near legend. By default (=<code>true</code>) box is drawn.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetLegendMarks-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetLegendMarks</b><i> (<code>int</code> num)</i></dt>
+<dt><a name="index-mgl_005fset_005flegend_005fmarks"></a><u>C function:</u> <code>void</code> <b>mgl_set_legend_marks</b><i> (<code>HMGL</code> gr, <code>int</code> num)</i></dt>
+<dd><p>Set the number of marks in the legend. By default 1 mark is used.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-LegendBox-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>bool</code> <b>LegendBox</b></dt>
+<dd><p>Switch on/off drawing box near legend. See <code>SetLegendBox()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t1D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-plotting-1"></a>
+<h2 class="section">3.9 1D plotting</h2>
+
+<p>These functions perform plotting of 1D data. 1D means that data depended from only 1 parameter like parametric curve {x(i),y(i),z(i)}, i=1...n. There are 5 generally different types of data representations: simple line plot (Plot), line plot with filling under it (Area), stairs plot (Step), bar plot (Bars, Barh) and vertical lines (Stem). Each type of plotting has similar interface. There are 3D version and two 2D versions. One of last requires single array. The parameters of line and marks are specified by the string argument. If the string parameter is &quot;&quot; then solid line with color from palette Pal is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). Also there are some special 1d plots having slightly different interface: surface of curve rotation (Torus), chart (Chart) and error boxes (Error), marks with variable size (Mark), tubes (Tube) and so on. See section <a href="mathgl_en_1.html#Line-styles">Line styles</a>. See section <a href="mathgl_en_9.html#g_t1D-plot-sample">1D plot sample</a>, for sample code and picture.
+</p>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plot">3.9.1 Plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Radar">3.9.2 Radar</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tens">3.9.3 Tens</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area">3.9.4 Area</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region">3.9.5 Region</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stem">3.9.6 Stem</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars">3.9.7 Bars</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Barh">3.9.8 Barh</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Chart">3.9.9 Chart</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Step">3.9.10 Step</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Torus">3.9.11 Torus</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tube">3.9.12 Tube</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mark">3.9.13 Mark</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TextMark">3.9.14 TextMark</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Error">3.9.15 Error</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#BoxPlot">3.9.16 BoxPlot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Radar" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plot-1"></a>
+<h3 class="subsection">3.9.1 Plot</h3>
+<a name="index-Plot"></a>
+
+<p>These functions draw continuous lines between points. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). See also <a href="#Area">Area</a>, <a href="#Step">Step</a>, <a href="#Stem">Stem</a>, <a href="#Tube">Tube</a>, <a href="#Mark">Mark</a>, <a href="#Error">Error</a>, <a href="#Belt">Belt</a>, <a href="#Tens">Tens</a>. See section <a href="mathgl_en_9.html#Plot-sample">Plot sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Plot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fplot_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_plot_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous lines between points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} in 3D space.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Plot-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fplot_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_plot_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous lines between points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Plot-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fplot"></a><u>C function:</u> <code>void</code> <b>mgl_plot</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous lines between points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>), where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Radar"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tens" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Radar-1"></a>
+<h3 class="subsection">3.9.2 Radar</h3>
+<a name="index-Radar"></a>
+
+<dl>
+<dt><a name="index-Radar-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Radar</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>pen=<code>&quot;&quot;</code>, <code>float</code> r=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fradar"></a><u>C function:</u> <code>void</code> <b>mgl_radar</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>pen, <code>float</code> r)</i></dt>
+<dd><p>This functions draws radar chart which is continuous lines between points located on an radial lines (like plot in Polar coordinates). The plots are drawn for each row if one of the data is the matrix. Parameter <var>r</var> set the additional shift of data (i.e. the data <var>a</var>+<var>r</var> is used instead of <var>a</var>). If <code>r&lt;0</code> then <code>r=max(0, -min(a)</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). If <var>pen</var> containt &lsquo;<samp>#</samp>&rsquo; symbol then &quot;grid&quot; (radial lines and circle for <var>r</var>) is drawn See also <a href="#Plot">Plot</a>. See section <a href="mathgl_en_9.html#Radar-sample">Radar sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Tens"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Radar" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tens-1"></a>
+<h3 class="subsection">3.9.3 Tens</h3>
+<a name="index-Tens"></a>
+
+<p>These functions draw continuous lines between points with color defined by the special array (look like tension plot). The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx</code>. String <var>pen</var> specifies the color scheme (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>) and style and/or width of line (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with current color scheme is used. See also <a href="#Plot">Plot</a>, <a href="#Mesh">Mesh</a>, <a href="#Fall">Fall</a>. See section <a href="mathgl_en_9.html#Tens-sample">Tens sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Tens-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tens</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftens_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_tens_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous lines between points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} in 3D space with color defined by <var>c</var>[i].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tens-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tens</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>c, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftens_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_tens_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> c, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous lines between points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>) with color defined by <var>c</var>[i].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tens-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tens</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>c, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftens"></a><u>C function:</u> <code>void</code> <b>mgl_tens</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> c, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous lines between points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>) with color defined by <var>c</var>[i], where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Area"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tens" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-1"></a>
+<h3 class="subsection">3.9.4 Area</h3>
+<a name="index-Area"></a>
+
+<p>These functions draw continuous lines between points and fills it to axis plane. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). Also you can use gradient filling if number of specified colors is equal to 2*number of curves. If string contain symbol &lsquo;<samp>a</samp>&rsquo; then lines are drawn one above another (like summation) &ndash; you can reach the same effect if call <code>y.CumSum(&quot;y&quot;);</code> before plot. See also <a href="#Plot">Plot</a>, <a href="#Bars">Bars</a>, <a href="#Stem">Stem</a>. See section <a href="mathgl_en_9.html#Area-sample">Area sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Area-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Area</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005farea_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_area_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous lines between points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} in 3D space and fills it down to <var>z</var> = Org.z.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Area-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Area</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005farea_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_area_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous lines between points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>) and fills it down to <var>y</var> = Org.y.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Area-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Area</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005farea"></a><u>C function:</u> <code>void</code> <b>mgl_area</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous lines between points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>) and fills it down to <var>y</var> = Org.y, where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Region"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stem" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-1"></a>
+<h3 class="subsection">3.9.5 Region</h3>
+<a name="index-Region"></a>
+
+<p>These functions fill area between 2 curves. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y1.nx=y2.nx</code> and all dimensions of arrays <var>y1</var> and <var>y2</var> must be equal too. String <var>pen</var> specifies the color (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). Also you can use gradient filling if number of specified colors is equal to 2*number of curves. See also <a href="#Area">Area</a>, <a href="#Bars">Bars</a>, <a href="#Stem">Stem</a>. See section <a href="mathgl_en_9.html#Region-sample">Region sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Region-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Region</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y1, <code>const mglData &amp;</code>y2, <code>const char *</code>pen=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>bool</code> inside=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fregion_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_region_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y1, <code>const HMDT</code> y2, <code>const char *</code>pen, <code>int</code> inside)</i></dt>
+<dd><p>The function fills area between curves {<var>x</var>[i], <var>y1</var>[i]} and {<var>x</var>[i], <var>y2</var>[i]} at z=<var>zVal</var>. Parameter <code>inside=false</code> set to fill are with y1&lt;y&lt;y2 else the area with y2&lt;y&lt;y1 will be also filled.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Region-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Region</b><i> (<code>const mglData &amp;</code>y1, <code>const mglData &amp;</code>y2, <code>const char *</code>pen=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>bool</code> inside=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fregion"></a><u>C function:</u> <code>void</code> <b>mgl_region</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y1, <code>const HMDT</code> y2, <code>const char *</code>pen, <code>int</code> inside)</i></dt>
+<dd><p>The function fills area between curves {<var>x</var>[i], <var>y1</var>[i]} and {<var>x</var>[i], <var>y2</var>[i]}, where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x] at z=<var>zVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Stem"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stem-1"></a>
+<h3 class="subsection">3.9.6 Stem</h3>
+<a name="index-Stem"></a>
+
+<p>These functions draw vertical lines from points to axis plane. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). See also <a href="#Area">Area</a>, <a href="#Bars">Bars</a>, <a href="#Plot">Plot</a>, <a href="#Mark">Mark</a>. See section <a href="mathgl_en_9.html#Stem-sample">Stem sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Stem-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Stem</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstem_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_stem_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws vertical lines from points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} down to <var>z</var> = Org.z.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Stem-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Stem</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstem_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_stem_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws vertical lines from points {<var>x</var>[i], <var>y</var>[i]} down to <var>y</var> = Org.y in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Stem-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Stem</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstem"></a><u>C function:</u> <code>void</code> <b>mgl_stem</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws vertical lines from points {<var>x</var>[i], <var>y</var>[i]} down to <var>y</var> = Org.y in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>), where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Bars"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Stem" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Barh" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-1"></a>
+<h3 class="subsection">3.9.7 Bars</h3>
+<a name="index-Bars"></a>
+
+<p>These functions draw vertical bars from points to axis plane. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). If string contain symbol &lsquo;<samp>a</samp>&rsquo; then lines are drawn one above another (like summation). If string contain symbol &lsquo;<samp>f</samp>&rsquo; then waterfall chart is drawn for determining the cumulative effect of sequentially introduced positive or negative values. You can different colors for positive and negative values if number of specified colors is equal to 2*number of curves. See also <a href="#Barh">Barh</a>, <a href="#Area">Area</a>, <a href="#Stem">Stem</a>, <a href="#Chart">Chart</a>, <a href="#Default-sizes">Default sizes</a>. See section <a href="mathgl_en_9.html#Bars-sample">Bars sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Bars-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Bars</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbars_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_bars_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws vertical bars from points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} down to <var>z</var> = Org.z.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Bars-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Bars</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbars_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_bars_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws vertical bars from points {<var>x</var>[i], <var>y</var>[i]} down to <var>y</var> = Org.y in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Bars-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Bars</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbars"></a><u>C function:</u> <code>void</code> <b>mgl_bars</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws vertical bars from points {<var>x</var>[i], <var>y</var>[i]} down to <var>y</var> = Org.y in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>), where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Barh"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Chart" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Barh-1"></a>
+<h3 class="subsection">3.9.8 Barh</h3>
+<a name="index-Barh"></a>
+
+<p>These functions draw horizontal bars from points to axis plane. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). If string contain symbol &lsquo;<samp>a</samp>&rsquo; then lines are drawn one above another (like summation). See also <a href="#Barh">Barh</a>, <a href="#Default-sizes">Default sizes</a>. See section <a href="mathgl_en_9.html#Barh-sample">Barh sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Barh-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Barh</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>v, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbarh_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_barh_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> v, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws horizontal bars from points {<var>v</var>[i], <var>y</var>[i]} down to <var>x</var> = Org.x in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Barh-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Barh</b><i> (<code>const mglData &amp;</code>v, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbarh"></a><u>C function:</u> <code>void</code> <b>mgl_barh</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws horizontal bars from points {<var>v</var>[i], <var>y</var>[i]} down to <var>x</var> = Org.x in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>), where <var>y</var>[i] values are equidistantly distributed in interval [<var>Min</var>.y, <var>Max</var>.y].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Chart"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Barh" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Step" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Chart-1"></a>
+<h3 class="subsection">3.9.9 Chart</h3>
+<a name="index-Chart"></a>
+
+<dl>
+<dt><a name="index-Chart-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Chart</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>col=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fchart"></a><u>C function:</u> <code>void</code> <b>mgl_chart</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>col)</i></dt>
+<dd><p>The function draws colored stripes (boxes) for data in array <var>a</var>. The number of stripes is equal to the number of rows in <var>a</var> (equal to <var>a.ny</var>). The color of each next stripe is cyclically changed from colors specified in string <var>col</var> or in palette Pal (see section <a href="#Palette-and-colors">Pallete and colors</a>). Spaces in colors denote transparent &ldquo;color&rdquo;, i.e. if <var>col</var> contain space(s) then corresponding stripe(s) are not drawn. The stripe width is proportional to value of element in <var>a</var>. Chart is plotted only for data with non-negative elements. If string <var>col</var> have symbol &lsquo;<samp>#</samp>&rsquo; then black border lines are drawn. The most nice form the chart have in 3d (after rotation of coordinates) or in cylindrical coordinates (becomes so called Pie chart). See section <a href="mathgl_en_9.html#Chart-sample">Chart sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Step"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Chart" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Torus" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Step-1"></a>
+<h3 class="subsection">3.9.10 Step</h3>
+<a name="index-Step"></a>
+
+<p>These functions draw continuous stairs for points to axis plane. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). See also <a href="#Plot">Plot</a>, <a href="#Stem">Stem</a>, <a href="#Tile">Tile</a>, <a href="#Boxs">Boxs</a>. See section <a href="mathgl_en_9.html#Step-sample">Step sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Step-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Step</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstep_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_step_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous stairs for points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Step-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Step</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstep_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_step_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous stairs for points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Step-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Step</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstep"></a><u>C function:</u> <code>void</code> <b>mgl_step</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous stairs for points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>), where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Torus"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Step" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tube" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Torus-1"></a>
+<h3 class="subsection">3.9.11 Torus</h3>
+<a name="index-Torus"></a>
+
+<p>These functions draw surface which is result of curve {<var>r</var>, <var>z</var>} rotation around <var>AxialDir</var> axis (see section <a href="#Other-settings">Other settings</a>). The sizes of 1st dimension <strong>must be equal</strong> for all arrays <var>r.nx=z.nx</var>. String <var>pen</var> specifies the color (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). See also <a href="#Plot">Plot</a>, <a href="#Axial">Axial</a>. See section <a href="mathgl_en_9.html#Torus-sample">Torus sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Torus-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Torus</b><i> (<code>const mglData &amp;</code>r, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftorus"></a><u>C function:</u> <code>void</code> <b>mgl_torus</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> r, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws surface which is result of curve {<var>r</var>[i], <var>z</var>[i]} rotation.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Torus-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Torus</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>The function draws surface which is result of curve {<var>r</var>[i], <var>z</var>[i]} rotation, where <var>r</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Tube"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Torus" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mark" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tube-1"></a>
+<h3 class="subsection">3.9.12 Tube</h3>
+<a name="index-Tube"></a>
+
+<p>These functions draw the tube with variable radius <var>r</var>[i] along the curve between points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx=r.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). See also <a href="#Plot">Plot</a>. See section <a href="mathgl_en_9.html#Tube-sample">Tube sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Tube-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-Tube-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>float</code> r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftube_005fxyzr"></a><u>C function:</u> <code>void</code> <b>mgl_tube_xyzr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dt><a name="index-mgl_005ftube_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_tube_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>float</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws tube with radius <var>r</var> between points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} in 3D space.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tube-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-Tube-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>float</code> r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftube_005fxyr"></a><u>C function:</u> <code>void</code> <b>mgl_tube_xyr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dt><a name="index-mgl_005ftube_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_tube_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>float</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws tube with radius <var>r</var> between points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tube-5"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-Tube-6"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>y, <code>float</code> r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftube_005fr"></a><u>C function:</u> <code>void</code> <b>mgl_tube_r</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dt><a name="index-mgl_005ftube"></a><u>C function:</u> <code>void</code> <b>mgl_tube</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>float</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws tube with radius <var>r</var> between points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>), where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Mark"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tube" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TextMark" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mark-1"></a>
+<h3 class="subsection">3.9.13 Mark</h3>
+<a name="index-Mark-3"></a>
+
+<p>These functions draw marks with size <var>r</var>*<var>MarkSize</var> (see section <a href="#Default-sizes">Default sizes</a>) at points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx=r.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). If you need to draw markers of the same size then you may use <a href="#Plot">Plot</a> function. See also <a href="#Plot">Plot</a>, <a href="#TextMark">TextMark</a>, <a href="#Stem">Stem</a>, <a href="#Error">Error</a>. See section <a href="mathgl_en_9.html#Mark-sample">Mark sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Mark-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmark_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_mark_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws marks for points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} in 3D space.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Mark-5"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmark_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_mark_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws marks for points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Mark-6"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mark</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmark_005fy"></a><u>C function:</u> <code>void</code> <b>mgl_mark_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws marks for points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>), where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="TextMark"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mark" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Error" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TextMark-1"></a>
+<h3 class="subsection">3.9.14 TextMark</h3>
+<a name="index-TextMark"></a>
+
+<p>These functions draw string <var>text</var> as marks with size proportional to <var>r</var>*<var>MarkSize</var> (see section <a href="#Default-sizes">Default sizes</a>) at points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx=r.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). See also <a href="#Plot">Plot</a>, <a href="#Mark">Mark</a>, <a href="#Stem">Stem</a>. See section <a href="mathgl_en_9.html#TextMark-sample">TextMark sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-TextMark-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const char *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TextMark-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const wchar_t *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftextmarkw_005fxyzr"></a><u>C function:</u> <code>void</code> <b>mgl_textmarkw_xyzr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const wchar_t *</code>text, <code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005ftextmark_005fxyzr"></a><u>C function:</u> <code>void</code> <b>mgl_textmark_xyzr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const char *</code>text, <code>const char *</code>fnt)</i></dt>
+<dd><p>The function draws textual marks for points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} in 3D space.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TextMark-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TextMark-4"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const wchar_t *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftextmarkw_005fxyr"></a><u>C function:</u> <code>void</code> <b>mgl_textmarkw_xyr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const wchar_t *</code>text, <code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005ftextmark_005fxyr"></a><u>C function:</u> <code>void</code> <b>mgl_textmark_xyr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>text, <code>const char *</code>fnt)</i></dt>
+<dd><p>The function draws textual marks for points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TextMark-5"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TextMark-6"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const wchar_t *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftextmarkw_005fyr"></a><u>C function:</u> <code>void</code> <b>mgl_textmarkw_yr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const wchar_t *</code>text, <code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005ftextmark_005fyr"></a><u>C function:</u> <code>void</code> <b>mgl_textmark_yr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>text, <code>const char *</code>fnt)</i></dt>
+<dd><p>The function draws textual marks for points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>), where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TextMark-7"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TextMark-8"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>y, <code>const wchar_t *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftextmarkw"></a><u>C function:</u> <code>void</code> <b>mgl_textmarkw</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const wchar_t *</code>text, <code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005ftextmark"></a><u>C function:</u> <code>void</code> <b>mgl_textmark</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>text, <code>const char *</code>fnt)</i></dt>
+<dd><p>The function draws textual marks for points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>), where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x]. The mark sizes <var>r</var>[i]=1 for all points.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Error"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TextMark" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#BoxPlot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Error-1"></a>
+<h3 class="subsection">3.9.15 Error</h3>
+<a name="index-Error-2"></a>
+
+<p>These functions draw error boxes at points {<var>x</var>[i], <var>y</var>[i]} on plane <var>z</var> = <var>zVal</var> (by default <var>z</var>=<var>Min.z</var>). This can be useful, for example, in experimental points, or to show numeric error or some estimations and so on. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx=r.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). See also <a href="#Plot">Plot</a>. See section <a href="mathgl_en_9.html#Error-sample">Error sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Error-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Error</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ex, <code>const mglData &amp;</code>ey, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ferror_005fexy"></a><u>C function:</u> <code>void</code> <b>mgl_error_exy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ex, <code>const HMDT</code> ey, <code>const char *</code>pen)</i></dt>
+<dd><p>Draws a error box {<var>ex</var>, <var>ey</var>} in point position {<var>x</var>, <var>y</var>}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Error-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Error</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ey, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ferror_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_error_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ey, <code>const char *</code>pen)</i></dt>
+<dd><p>Draws a error box <var>ey</var> (along only one direction) in point position {<var>x</var>, <var>y</var>}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Error-5"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Error</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ey, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ferror"></a><u>C function:</u> <code>void</code> <b>mgl_error</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> ey, <code>const char *</code>pen)</i></dt>
+<dd><p>Draws a error box <var>ey</var> (along only one direction) in point position {<var>x</var>, <var>y</var>}, where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="BoxPlot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Error" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="BoxPlot-1"></a>
+<h3 class="subsection">3.9.16 BoxPlot</h3>
+<a name="index-BoxPlot"></a>
+
+<p>These functions draw boxplot (also known as a box-and-whisker diagram) at points <var>x</var>[i] on plane <var>z</var> = <var>zVal</var> (by default <var>z</var>=<var>Min.z</var>). This is five-number summaries of data <var>a</var>[i,j] (minimum, lower quartile (Q1), median (Q2), upper quartile (Q3) and maximum) along second (j-th) direction. The sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=a.nx</code>. String <var>pen</var> specifies the color and style of line (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). See also <a href="#Plot">Plot</a>, <a href="#Error">Error</a>, <a href="#Bars">Bars</a>, <a href="#Default-sizes">Default sizes</a>. See section <a href="mathgl_en_9.html#BoxPlot-sample">BoxPlot sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-BoxPlot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>BoxPlot</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fboxplot_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_boxplot_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const char *</code>pen)</i></dt>
+<dd><p>Draws a boxplot with specified values of coordinate <var>x</var>[i].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-BoxPlot-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>BoxPlot</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fboxplot"></a><u>C function:</u> <code>void</code> <b>mgl_boxplot</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>pen)</i></dt>
+<dd><p>Draws a boxplot with <var>x</var>[i] values equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t2D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#BoxPlot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mesh" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-plotting-1"></a>
+<h2 class="section">3.10 2D plotting</h2>
+
+<p>These functions perform plotting of 2D data. 2D means that data depend from 2 independent parameters like matrix <em>f(x_i,y_j), i=1...n, j=1...m</em>. There are several generally different types of data representations: simple mesh lines plot (Mesh), surface plot (Surf), surface plot by boxes (Boxs), surface plot by tiles (Tile), waterfall-like plot (Fall), belt plot (Belt), density plot (Dens), contour lines plot (Cont), solid contours plot (ContF) and its rotational figure (Axial). Cont, ContF and Axial functions have variants for automatic and manual selection of level values for contours. Also there are functions for plotting data grid lines according to the data format (Grid) for enhancing density or contour plots. Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. Parameters of color scheme are specified by the string argument. See section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>. See section <a href="mathgl_en_9.html#g_t2D-plot-sample">2D plot sample</a>, for sample code and picture.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Mesh">3.10.1 Mesh</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fall">3.10.2 Fall</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Belt">3.10.3 Belt</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf">3.10.4 Surf</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Boxs">3.10.5 Boxs</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tile">3.10.6 Tile</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens">3.10.7 Dens</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont">3.10.8 Cont</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF">3.10.9 ContF</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContD">3.10.10 ContD</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axial">3.10.11 Axial</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grad">3.10.12 Grad</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grid">3.10.13 Grid</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Mesh"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fall" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mesh-1"></a>
+<h3 class="subsection">3.10.1 Mesh</h3>
+<a name="index-Mesh"></a>
+
+<dl>
+<dt><a name="index-Mesh-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mesh</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmesh_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_mesh_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws mesh lines for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Mesh lines are plotted for each z slice of the data. See also <a href="#Surf">Surf</a>, <a href="#Fall">Fall</a>, MeshNum (see section <a href="#Other-settings">Other settings</a>), <a href="#Cont">Cont</a>, <a href="#Tens">Tens</a>. See section <a href="mathgl_en_9.html#Mesh-sample">Mesh sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Mesh-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mesh</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmesh"></a><u>C function:</u> <code>void</code> <b>mgl_mesh</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fall"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mesh" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Belt" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fall-1"></a>
+<h3 class="subsection">3.10.2 Fall</h3>
+<a name="index-Fall"></a>
+
+<dl>
+<dt><a name="index-Fall-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Fall</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ffall_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_fall_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws fall lines for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. This plot can be used for plotting several curves shifted in depth one from another. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If <var>sch</var> contain &lsquo;<samp>x</samp>&rsquo; then lines are drawn along x-direction else (by default) lines are drawn along y-direction. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Fall lines are plotted for each z slice of the data. See also <a href="#Belt">Belt</a>, <a href="#Mesh">Mesh</a>, <a href="#Tens">Tens</a>, MeshNum (see section <a href="#Other-settings">Other settings</a>). See section <a href="mathgl_en_9.html#Fall-sample">Fall sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fall-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Fall</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ffall"></a><u>C function:</u> <code>void</code> <b>mgl_fall</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Belt"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fall" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Belt-1"></a>
+<h3 class="subsection">3.10.3 Belt</h3>
+<a name="index-Belt"></a>
+
+<dl>
+<dt><a name="index-Belt-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Belt</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbelt_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_belt_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws belts for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. This plot can be used as 3d generalization of Plot (see section <a href="#Plot">Plot</a>). String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If <var>sch</var> contain &lsquo;<samp>x</samp>&rsquo; then belts are drawn along x-direction else (by default) belts are drawn along y-direction. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Belts are plotted for each z slice of the data. See also <a href="#Fall">Fall</a>, <a href="#Surf">Surf</a>, <a href="#Plot">Plot</a>, MeshNum (see section <a href="#Other-settings">Other settings</a>). See section <a href="mathgl_en_9.html#Belt-sample">Belt sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Belt-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Belt</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbelt"></a><u>C function:</u> <code>void</code> <b>mgl_belt</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Surf"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Belt" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Boxs" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-1"></a>
+<h3 class="subsection">3.10.4 Surf</h3>
+<a name="index-Surf"></a>
+
+<dl>
+<dt><a name="index-Surf-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_surf_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Mesh">Mesh</a>, <a href="#Dens">Dens</a>, <a href="#Belt">Belt</a>, <a href="#Tile">Tile</a>, <a href="#Boxs">Boxs</a>, <a href="#SurfC">SurfC</a>, <a href="#SurfA">SurfA</a>. See section <a href="mathgl_en_9.html#Surf-sample">Surf sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf"></a><u>C function:</u> <code>void</code> <b>mgl_surf</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Boxs"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tile" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Boxs-1"></a>
+<h3 class="subsection">3.10.5 Boxs</h3>
+<a name="index-Boxs"></a>
+
+<dl>
+<dt><a name="index-Boxs-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Boxs</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fboxs_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_boxs_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws vertical boxes for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Surf">Surf</a>, <a href="#Dens">Dens</a>, <a href="#Tile">Tile</a>, <a href="#Step">Step</a>. See section <a href="mathgl_en_9.html#Boxs-sample">Boxs sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Boxs-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Boxs</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fboxs"></a><u>C function:</u> <code>void</code> <b>mgl_boxs</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Tile"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Boxs" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tile-1"></a>
+<h3 class="subsection">3.10.6 Tile</h3>
+<a name="index-Tile"></a>
+
+<dl>
+<dt><a name="index-Tile-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tile</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftile_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_tile_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws horizontal tiles for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. Such plot can be used as 3d generalization of Step (see section <a href="#Step">Step</a>). String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Surf">Surf</a>, <a href="#Boxs">Boxs</a>, <a href="#Step">Step</a>, <a href="#TileS">TileS</a>. See section <a href="mathgl_en_9.html#Tile-sample">Tile sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tile-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tile</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftile"></a><u>C function:</u> <code>void</code> <b>mgl_tile</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Dens"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tile" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-1"></a>
+<h3 class="subsection">3.10.7 Dens</h3>
+<a name="index-Dens"></a>
+
+<dl>
+<dt><a name="index-Dens-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dens</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_dens_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws density plot for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} at <var>z</var> = <var>zVal</var>. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Surf">Surf</a>, <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>, <a href="#Boxs">Boxs</a>, <a href="#Tile">Tile</a>, <a href="#DensXYZ">DensXYZ</a>. See section <a href="mathgl_en_9.html#Dens-sample">Dens sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Dens-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dens</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens"></a><u>C function:</u> <code>void</code> <b>mgl_dens</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cont"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-1"></a>
+<h3 class="subsection">3.10.8 Cont</h3>
+<a name="index-Cont"></a>
+
+<dl>
+<dt><a name="index-Cont-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fxy_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_cont_xy_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws contour lines for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} at <var>z</var> = <var>zVal</var> (or for <var>z=v</var>[k] if <code>zVal==NAN</code>). Contours are plotted for <var>z</var>[i,j]=<var>v</var>[k] where <var>v</var>[k] are values of data array <var>v</var>. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. If string <var>sch</var> have symbol &lsquo;<samp>t</samp>&rsquo; or &lsquo;<samp>T</samp>&rsquo; then contour labels <var>v</var>[k] will be drawn below (or above) the contours. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Dens">Dens</a>, <a href="#ContF">ContF</a>, <a href="#ContD">ContD</a>, <a href="#Axial">Axial</a>, <a href="#ContXYZ">ContXYZ</a>. See section <a href="mathgl_en_9.html#Cont-sample">Cont sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005f_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_cont__val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_cont_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>The same as first one with vector <var>v</var> of <var>num</var>-th elements equidistantly distributed in range [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont"></a><u>C function:</u> <code>void</code> <b>mgl_cont</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContF"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContD" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF-1"></a>
+<h3 class="subsection">3.10.9 ContF</h3>
+<a name="index-ContF"></a>
+
+<dl>
+<dt><a name="index-ContF-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fxy_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_contf_xy_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws solid (or filled) contour lines for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} at <var>z</var> = <var>zVal</var> (or for <var>z=v</var>[k] if <code>zVal==NAN</code>). Contours are plotted for <var>z</var>[i,j]=<var>v</var>[k] where <var>v</var>[k] are values of data array <var>v</var> (must be <code>v.nx&gt;2</code>). String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Dens">Dens</a>, <a href="#Cont">Cont</a>, <a href="#Axial">Axial</a>, <a href="#ContFXYZ">ContFXYZ</a>. See section <a href="mathgl_en_9.html#ContF-sample">ContF sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_contf_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_contf_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>The same as first one with vector <var>v</var> of <var>num</var>-th elements equidistantly distributed in range [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf"></a><u>C function:</u> <code>void</code> <b>mgl_contf</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContD"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axial" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContD-1"></a>
+<h3 class="subsection">3.10.10 ContD</h3>
+<a name="index-ContD"></a>
+
+<dl>
+<dt><a name="index-ContD-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContD</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontd_005fxy_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_contd_xy_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws solid (or filled) contour lines for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} at <var>z</var> = <var>zVal</var> (or for <var>z=v</var>[k] if <code>zVal==NAN</code>) with manual colors. Contours are plotted for <var>z</var>[i,j]=<var>v</var>[k] where <var>v</var>[k] are values of data array <var>v</var> (must be <code>v.nx&gt;2</code>). String <var>sch</var> sets the contour colors: the color of k-th contour is determined by character <code>sch[k%strlen(sch)]</code>. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Dens">Dens</a>, <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>. See section <a href="mathgl_en_9.html#ContD-sample">ContD sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContD-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContD</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontd_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_contd_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContD-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContD</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontd_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_contd_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>The same as first one with vector <var>v</var> of <var>num</var>-th elements equidistantly distributed in range [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContD-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContD</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontd"></a><u>C function:</u> <code>void</code> <b>mgl_contd</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axial"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContD" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grad" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axial-1"></a>
+<h3 class="subsection">3.10.11 Axial</h3>
+<a name="index-Axial"></a>
+
+<dl>
+<dt><a name="index-Axial-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axial</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005faxial_005fxy_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_axial_xy_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws surface which is result of contour plot rotation for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. Contours are plotted for <var>z</var>[i,j]=<var>v</var>[k] where <var>v</var>[k] are values of data array <var>v</var>. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. If string contain symbols &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo; then rotation axis <var>AxialDir</var> (see section <a href="#Other-settings">Other settings</a>) will be set to specified direction. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>, <a href="#Torus">Torus</a>, <a href="#Surf3">Surf3</a>. See section <a href="mathgl_en_9.html#Axial-sample">Axial sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Axial-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axial</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005faxial_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_axial_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Axial-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axial</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005faxial_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_axial_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>The same as first one with vector <var>v</var> of <var>num</var>-th elements equidistantly distributed in range [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Axial-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axial</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005faxial"></a><u>C function:</u> <code>void</code> <b>mgl_axial</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Grad"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axial" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grid" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grad-1"></a>
+<h3 class="subsection">3.10.12 Grad</h3>
+<a name="index-Grad"></a>
+
+<dl>
+<dt><a name="index-Grad-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grad</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>phi, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>)</i></dt>
+<dt><a name="index-mgl_005fgrad_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_grad_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws gradient lines for scalar field <var>phi</var>[i,j,k] specified parametrically {<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]}. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. Number of lines is proportional to <var>num</var>. If <var>num</var>&lt;0 then lines start from borders only. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var>, <var>phi</var> should be equal <code>x.nx=phi.nx &amp;&amp; y.nx=phi.ny &amp;&amp; z.nx=phi.nz</code> or <code>x.nx=y.nx=z.nx=phi.nx &amp;&amp; x.ny=y.ny=z.ny=phi.ny &amp;&amp; x.nz=y.nz=z.nz=phi.nz</code>. Arrays <var>x</var>, <var>y</var> and <var>z</var> can be vectors (not matrices as <var>phi</var>). See also <a href="#Dens3">Dens3</a>, <a href="#Cont3">Cont3</a>, <a href="#Flow">Flow</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Grad-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grad</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fgrad_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_grad_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws gradient lines for scalar field <var>phi</var>[i,j] specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>phi</var>[i,j]} at <var>z</var> = <var>zVal</var>. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. Number of lines is proportional to <var>num</var>. If <var>num</var>&lt;0 then lines start from borders only. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>phi</var> should be equal <code>x.nx=phi.nx &amp;&amp; y.nx=phi.ny</code> or <code>x.nx=y.nx=phi.nx &amp;&amp; x.ny=y.ny=phi.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>phi</var>). Lines are plotted for each z slice of the data. See also <a href="#Dens">Dens</a>, <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>, <a href="#Flow">Flow</a>. See section <a href="mathgl_en_9.html#Grad-sample">Grad sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Grad-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grad</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fgrad"></a><u>C function:</u> <code>void</code> <b>mgl_grad</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Grid"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grad" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grid-1"></a>
+<h3 class="subsection">3.10.13 Grid</h3>
+<a name="index-Grid-2"></a>
+
+<dl>
+<dt><a name="index-Grid-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_grid_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws grid lines for density plot of surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} at <var>z</var> = <var>zVal</var>. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Grid is plotted for each z slice of the data. See also <a href="#Dens">Dens</a>, <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Grid-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid"></a><u>C function:</u> <code>void</code> <b>mgl_grid</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="g_t3D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grid" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-plotting-1"></a>
+<h2 class="section">3.11 3D plotting</h2>
+
+<p>These functions perform plotting of 3D data. 3D means that data depend from 3 independent parameters like matrix <em>f(x_i,y_j,z_k), i=1...n, j=1...m, k=1...l</em>. There are 5 generally different types of data representations: isosurface or surface of constant value (Surf3), density plot at slices (Dens3), contour lines plot at slices (Cont3), solid contours plot at slices (ContF3) and cloud-like plot (Cloud). Surf3, Cont3 and ContF3 functions have variants for automatic and manual selection of level values for surfaces/contours. Also there are functions for plotting data grid lines according to the data format (Grid3) for enhancing density or contour plots. Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. Parameters of color scheme are specified by the string argument. See section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>. See section <a href="mathgl_en_9.html#g_t3D-plot-sample">3D plot sample</a>, for sample code and picture.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf3">3.11.1 Surf3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens3">3.11.2 Dens3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont3">3.11.3 Cont3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF3">3.11.4 ContF3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grid3">3.11.5 Grid3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cloud">3.11.6 Cloud</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Beam">3.11.7 Beam</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Surf3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3-1"></a>
+<h3 class="subsection">3.11.1 Surf3</h3>
+<a name="index-Surf3"></a>
+
+<dl>
+<dt><a name="index-Surf3-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3</b><i> (<code>float</code> val, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3_005fxyz_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_surf3_xyz_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl)</i></dt>
+<dd><p>The function draws isosurface plot for 3d array specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) at <var>a</var>(x,y,z)=<var>val</var>. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). Note, that there is possibility of incorrect plotting due to uncertainty of cross-section defining if there are two or more isosurface intersections inside one cell. See also <a href="#Cloud">Cloud</a>, <a href="#Dens3">Dens3</a>, <a href="#Surf3C">Surf3C</a>, <a href="#Surf3A">Surf3A</a>, <a href="#Axial">Axial</a>. See section <a href="mathgl_en_9.html#Surf3-sample">Surf3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3</b><i> (<code>float</code> val, <code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_surf3_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> a, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_surf3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in range [<var>Cmin</var>, <var>Cmax</var>] isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3"></a><u>C function:</u> <code>void</code> <b>mgl_surf3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Dens3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens3-1"></a>
+<h3 class="subsection">3.11.2 Dens3</h3>
+<a name="index-Dens3"></a>
+<a name="index-DensA"></a>
+
+<dl>
+<dt><a name="index-Dens3-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dens3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdens3_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_dens3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl)</i></dt>
+<dd><p>The function draws density plot for 3d data specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). Density is plotted at slice <var>sVal</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string <var>stl</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> must be equal. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). See also <a href="#Cont3">Cont3</a>, <a href="#ContF3">ContF3</a>, <a href="#Dens">Dens</a>, <a href="#Grid3">Grid3</a>. See section <a href="mathgl_en_9.html#Dens3-sample">Dens3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Dens3-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dens3</b><i> (<code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdens3"></a><u>C function:</u> <code>void</code> <b>mgl_dens3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DensA-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdens3_005fall_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_dens3_all_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl)</i></dt>
+<dd><p>Draws density plots at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DensA-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensA</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdens3_005fall"></a><u>C function:</u> <code>void</code> <b>mgl_dens3_all</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cont3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont3-1"></a>
+<h3 class="subsection">3.11.3 Cont3</h3>
+<a name="index-Cont3"></a>
+<a name="index-ContA"></a>
+
+<dl>
+<dt><a name="index-Cont3-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont3</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fxyz_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_cont3_xyz_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl)</i></dt>
+<dd><p>The function draws contour plot for 3d data specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). Contours are plotted for values specified in array <var>v</var> at slice <var>sVal</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. String <var>stl</var> sets the color scheme. Previous color scheme is used by default. If string <var>stl</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. If string <var>stl</var> have symbol &lsquo;<samp>t</samp>&rsquo; or &lsquo;<samp>T</samp>&rsquo; then contour labels <var>v</var>[k] will be drawn below (or above) the contours. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> must be equal. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). See also <a href="#Dens3">Dens3</a>, <a href="#ContF3">ContF3</a>, <a href="#Cont">Cont</a>, <a href="#Grid3">Grid3</a>. See section <a href="mathgl_en_9.html#Cont3-sample">Cont3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont3-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont3</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_cont3_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont3-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_cont3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>The same as first one with vector <var>v</var> of <var>num</var>-th elements equidistantly distributed in range [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont3-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont3</b><i> (<code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3"></a><u>C function:</u> <code>void</code> <b>mgl_cont3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContA-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fall_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_cont3_all_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Draws contour plots at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContA-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContA</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fall"></a><u>C function:</u> <code>void</code> <b>mgl_cont3_all</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContF3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grid3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF3-1"></a>
+<h3 class="subsection">3.11.4 ContF3</h3>
+<a name="index-ContF3"></a>
+<a name="index-ContFA"></a>
+
+<dl>
+<dt><a name="index-ContF3-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF3</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fxyz_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_contf3_xyz_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl)</i></dt>
+<dd><p>The function draws solid (or filled) contour plot for 3d data specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). Contours are plotted for values specified in array <var>v</var> at slice <var>sVal</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string <var>stl</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> must be equal. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). See also <a href="#Dens3">Dens3</a>, <a href="#Cont3">Cont3</a>, <a href="#ContF">ContF</a>, <a href="#Grid3">Grid3</a>. See section <a href="mathgl_en_9.html#ContF3-sample">ContF3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF3-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF3</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_contf3_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF3-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_contf3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>The same as first one with vector <var>v</var> of <var>num</var>-th elements equidistantly distributed in range [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF3-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF3</b><i> (<code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3"></a><u>C function:</u> <code>void</code> <b>mgl_contf3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFA-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fall_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_contf3_all_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Draws contour plots at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFA-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFA</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fall"></a><u>C function:</u> <code>void</code> <b>mgl_contf3_all</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Grid3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cloud" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grid3-1"></a>
+<h3 class="subsection">3.11.5 Grid3</h3>
+<a name="index-Grid3"></a>
+<a name="index-GridA"></a>
+
+<dl>
+<dt><a name="index-Grid3-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid3_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_grid3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl)</i></dt>
+<dd><p>The function draws grid for 3d data specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). Grid is plotted at slice <var>sVal</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> must be equal. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). See also <a href="#Cont3">Cont3</a>, <a href="#ContF3">ContF3</a>, <a href="#Dens3">Dens3</a>, <a href="#Grid">Grid</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Grid3-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid3</b><i> (<code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid3"></a><u>C function:</u> <code>void</code> <b>mgl_grid3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GridA-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>GridA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid3_005fall_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_grid3_all_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl)</i></dt>
+<dd><p>Draws grids at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GridA-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>GridA</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid3_005fall"></a><u>C function:</u> <code>void</code> <b>mgl_grid3_all</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cloud"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grid3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Beam" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cloud-1"></a>
+<h3 class="subsection">3.11.6 Cloud</h3>
+<a name="index-CloudP"></a>
+<a name="index-CloudQ"></a>
+
+<dl>
+<dt><a name="index-Cloud"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cloud</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fcloud_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_cloud_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dd><p>The function draws cloud plot for 3d data specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). This plot is a set of cubes with color and transparency proportional to value of <var>a</var>. The resulting plot is like cloud &ndash; low value is transparent but higher ones are not. The number of plotting cells depend on MeshNum (see section <a href="#Other-settings">Other settings</a>). String <var>sch</var> sets the color scheme. Previous color scheme is used by default. Parameter <var>alpha</var> changes the overall transparency of plot. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> must be equal. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). See also <a href="#Surf3">Surf3</a>. See section <a href="mathgl_en_9.html#Cloud-sample">Cloud sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cloud-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cloud</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fcloud"></a><u>C function:</u> <code>void</code> <b>mgl_cloud</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CloudP-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>CloudP</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fcloudp_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_cloudp_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dd><p>The same as first one but the semi-transparent points are used instead of cubes. See section <a href="mathgl_en_9.html#CloudP-sample">CloudP sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CloudP-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>CloudP</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fcloudp"></a><u>C function:</u> <code>void</code> <b>mgl_cloudp</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Beam"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cloud" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Beam-1"></a>
+<h3 class="subsection">3.11.7 Beam</h3>
+<a name="index-Beam"></a>
+
+<dl>
+<dt><a name="index-Beam-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Beam</b><i> (<code>float</code> val, <code>const mglData &amp;</code>tr, <code>const mglData &amp;</code>g1, <code>const mglData &amp;</code>g2, <code>const mglData &amp;</code>a, <code>float</code> r, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fbeam_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_beam_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> tr, <code>const HMDT</code> g1, <code>const HMDT</code> g2, <code>const HMDT</code> a, <code>float</code> r, <code>const char *</code>stl, <code>int</code> flag)</i></dt>
+<dd><p>Draws the isosurface for 3d array <var>a</var> at constant values of <var>a</var>=<var>val</var>. This is special kind of plot for <var>a</var> specified in accompanied coordinates along curve <var>tr</var> with orts <var>g1</var>, <var>g2</var> and with transverse scale <var>r</var>. Variable <var>flag</var> is bitwise: &lsquo;<samp>0x1</samp>&rsquo; - draw in accompanied (not laboratory) coordinates; &lsquo;<samp>0x2</samp>&rsquo; - draw projection to <em>\rho-z</em> plane; &lsquo;<samp>0x4</samp>&rsquo; - draw normalized in each slice field. The x-size of data arrays <var>tr</var>, <var>g1</var>, <var>g2</var> must be nx&gt;2. The y-size of data arrays <var>tr</var>, <var>g1</var>, <var>g2</var> and z-size of the data array <var>a</var> must be equal. See section <a href="#Surf3">Surf3</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Beam-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Beam</b><i> (<code>const mglData &amp;</code>tr, <code>const mglData &amp;</code>g1, <code>const mglData &amp;</code>g2, <code>const mglData &amp;</code>a, <code>float</code> r, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> flag=<code>0</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fbeam"></a><u>C function:</u> <code>void</code> <b>mgl_beam</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> tr, <code>const HMDT</code> g1, <code>const HMDT</code> g2, <code>const HMDT</code> a, <code>float</code> r, <code>const char *</code>stl, <code>int</code> flag=<code>0</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in range [<var>Cmin</var>, <var>Cmax</var>] isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Dual-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Beam" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfC" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dual-plotting-1"></a>
+<h2 class="section">3.12 Dual plotting</h2>
+
+<p>These plotting functions draw <em>two matrix</em> simultaneously. There are 5 generally different types of data representations: surface or isosurface colored by other data (SurfC, Surf3C), surface or isosurface transpared by other data (SurfA, Surf3A), tiles with variable size (TileS), mapping diagram (Map), STFA diagram (STFA). Surf3A and Surf3C have variants for automatic and manual selection of level values for isosurfaces. Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. Parameters of color scheme are specified by the string argument. See section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#SurfC">3.12.1 SurfC</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3C">3.12.2 Surf3C</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#SurfA">3.12.3 SurfA</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3A">3.12.4 Surf3A</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TileS">3.12.5 TileS</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Map">3.12.6 Map</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#STFA">3.12.7 STFA</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="SurfC"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3C" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfC-1"></a>
+<h3 class="subsection">3.12.1 SurfC</h3>
+<a name="index-SurfC"></a>
+
+<dl>
+<dt><a name="index-SurfC-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SurfC</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurfc_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_surfc_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} and color it by matrix <var>c</var>[i,j]. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. All dimensions of arrays <var>z</var> and <var>c</var> must be equal. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Surf">Surf</a>, <a href="#SurfA">SurfA</a>, <a href="#Surf3C">Surf3C</a>. See section <a href="mathgl_en_9.html#SurfC-sample">SurfC sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SurfC-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SurfC</b><i> (<code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurfc"></a><u>C function:</u> <code>void</code> <b>mgl_surfc</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Surf3C"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfC" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfA" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3C-1"></a>
+<h3 class="subsection">3.12.2 Surf3C</h3>
+<a name="index-Surf3C"></a>
+
+<dl>
+<dt><a name="index-Surf3C-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3C</b><i> (<code>float</code> val, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3c_005fxyz_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_surf3c_xyz_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>stl)</i></dt>
+<dd><p>The function draws isosurface plot for 3d array specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) at <var>a</var>(x,y,z)=<var>val</var>. It is mostly the same as Surf3() function but the color of isosurface depends on values of array <var>c</var>. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. All dimensions of arrays <var>z</var> and <var>c</var> must be equal. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). Note, that there is possibility of incorrect plotting due to uncertainty of cross-section defining if there are two or more isosurface intersections inside one cell. See also <a href="#Surf3">Surf3</a>, <a href="#SurfC">SurfC</a>, <a href="#Surf3A">Surf3A</a>. See section <a href="mathgl_en_9.html#Surf3C-sample">Surf3C sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3C-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3C</b><i> (<code>float</code> val, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3c_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_surf3c_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3C-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3C</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3c_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_surf3c_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in range [<var>Cmin</var>, <var>Cmax</var>] isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3C-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3C</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3c"></a><u>C function:</u> <code>void</code> <b>mgl_surf3c</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="SurfA"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3C" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3A" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfA-1"></a>
+<h3 class="subsection">3.12.3 SurfA</h3>
+<a name="index-SurfA"></a>
+
+<dl>
+<dt><a name="index-SurfA-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SurfA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurfa_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_surfa_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} and transparent it by matrix <var>c</var>[i,j]. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. All dimensions of arrays <var>z</var> and <var>c</var> must be equal. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Surf">Surf</a>, <a href="#SurfC">SurfC</a>, <a href="#Surf3A">Surf3A</a>, <a href="#TileS">TileS</a>. See section <a href="mathgl_en_9.html#SurfA-sample">SurfA sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SurfA-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SurfA</b><i> (<code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurfa"></a><u>C function:</u> <code>void</code> <b>mgl_surfa</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Surf3A"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfA" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TileS" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3A-1"></a>
+<h3 class="subsection">3.12.4 Surf3A</h3>
+<a name="index-Surf3A"></a>
+
+<dl>
+<dt><a name="index-Surf3A-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3A</b><i> (<code>float</code> val, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3a_005fxyz_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_surf3a_xyz_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>stl)</i></dt>
+<dd><p>The function draws isosurface plot for 3d array specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) at <var>a</var>(x,y,z)=<var>val</var>. It is mostly the same as Surf3() function but the transparency of isosurface depends on values of <var>b</var> array. This allows one to remove the part of isosurface where <var>b</var> is negligibly small (useful for phase plotting of a beam or a pulse). String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. All dimensions of arrays <var>z</var> and <var>c</var> must be equal. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). Note, that there is possibility of incorrect plotting due to uncertainty of cross-section defining if there are two or more isosurface intersections inside one cell. See also <a href="#Surf3">Surf3</a>, <a href="#SurfA">SurfA</a>, <a href="#Surf3C">Surf3C</a>. See section <a href="mathgl_en_9.html#Surf3A-sample">Surf3A sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3A-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3A</b><i> (<code>float</code> val, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3a_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_surf3a_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3A-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3A</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3a_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_surf3a_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in range [<var>Cmin</var>, <var>Cmax</var>] isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3A-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3A</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3a"></a><u>C function:</u> <code>void</code> <b>mgl_surf3a</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="TileS"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3A" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Map" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TileS-1"></a>
+<h3 class="subsection">3.12.5 TileS</h3>
+<a name="index-TileS"></a>
+
+<dl>
+<dt><a name="index-TileS-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TileS</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftiles_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_tiles_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws horizontal tiles for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. It is mostly the same as Tile() but the size of tiles is determined by <var>r</var> array. This is some kind of &ldquo;transparency&rdquo; useful for exporting to EPS files. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#SurfA">SurfA</a>, <a href="#Tile">Tile</a>. See section <a href="mathgl_en_9.html#TileS-sample">TileS sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TileS-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TileS</b><i> (<code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftiles"></a><u>C function:</u> <code>void</code> <b>mgl_tiles</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Map"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TileS" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#STFA" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Map-1"></a>
+<h3 class="subsection">3.12.6 Map</h3>
+<a name="index-Map"></a>
+
+<dl>
+<dt><a name="index-Map-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Map</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> ks=<code>0</code>, <code>bool</code> pnts=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fmap_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_map_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>int</code> ks, <code>int</code> pnts)</i></dt>
+<dd><p>The function draws mapping plot for matrices {<var>ax</var>, <var>ay</var> } which parametrically depend on coordinates <var>x</var>, <var>y</var>. The initial position of the cell (point) is marked by color. Height is proportional to Jacobian(ax,ay). This plot is like Arnold diagram ???. If <code>pnts=false</code> then face is drawn otherwise the color ball at matrix knots are drawn. Parameter <var>ks</var> specifies the slice of matrices which will be used. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The size of <var>ax</var> and <var>ay</var> must be the same. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>ax</var> should be equal. Arrays <var>x</var>, <var>y</var> can be vectors (not matrix as <var>ax</var>). See section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>. See section <a href="mathgl_en_9.html#Map-sample">Map sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Map-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Map</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> ks=<code>0</code>, <code>bool</code> pnts=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fmap"></a><u>C function:</u> <code>void</code> <b>mgl_map</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>int</code> ks, <code>int</code> pnts)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="STFA"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Map" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="STFA-1"></a>
+<h3 class="subsection">3.12.7 STFA</h3>
+<a name="index-STFA"></a>
+
+<dl>
+<dt><a name="index-STFA-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>STFA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>re, <code>const mglData &amp;</code>im, <code>int</code> dn, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fstfa_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_stfa_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> re, <code>const HMDT</code> im, <code>int</code> dn, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Draws spectrogram of complex array <var>re</var>+i*<code>im</code> for Fourier size of <var>dn</var> points at plane <var>z=zVal</var>. Parameter <var>dn</var> is arbitrary even integer. For example in 1D case, result is density plot of data <em>res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn</em> with size {int(nx/dn), dn, ny}. At this array <var>re</var>, <var>im</var> parametrically depend on coordinates <var>x</var>, <var>y</var>. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The size of <var>re</var> and <var>im</var> must be the same. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>re</var> should be equal. Arrays <var>x</var>, <var>y</var> can be vectors (not matrix as <var>re</var>).  See section <a href="mathgl_en_9.html#STFA-sample">STFA sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-STFA-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>STFA</b><i> (<code>const mglData &amp;</code>re, <code>const mglData &amp;</code>im, <code>int</code> dn, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fstfa"></a><u>C function:</u> <code>void</code> <b>mgl_stfa</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> re, <code>const HMDT</code> im, <code>int</code> dn, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Vector-fields"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#STFA" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Traj" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vector-fields-1"></a>
+<h2 class="section">3.13 Vector fields</h2>
+
+<p>These functions perform plotting of 2D and 3D vector fields. There are 5 generally different types of vector fields representations: simple vector field (Vect), vectors along the curve (Traj), vector field by dew-drops (Dew), flow threads (Flow, FlowP), flow pipes (Pipe). Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. Parameters of color scheme are specified by the string argument. See section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Traj">3.13.1 Traj</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect">3.13.2 Vect</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectL">3.13.3 VectL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectC">3.13.4 VectC</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dew">3.13.5 Dew</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow">3.13.6 Flow</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#FlowP">3.13.7 FlowP</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe">3.13.8 Pipe</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Traj"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-fields" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Traj-1"></a>
+<h3 class="subsection">3.13.1 Traj</h3>
+<a name="index-Traj"></a>
+
+<dl>
+<dt><a name="index-Traj-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Traj</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> len=<code>0</code>)</i></dt>
+<dt><a name="index-Traj-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Traj</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>float</code> len=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005ftraj_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_traj_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code>x, <code>const HMDT</code>y, <code>const HMDT</code>z, <code>const HMDT</code>ax, <code>const HMDT</code>ay, <code>const HMDT</code>az, <code>const char *</code>sch, <code>float</code> len)</i></dt>
+<dt><a name="index-mgl_005ftraj_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_traj_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code>x, <code>const HMDT</code>y, <code>const HMDT</code>ax, <code>const HMDT</code>ay, <code>const char *</code>sch, <code>float</code> zVal, <code>float</code> len)</i></dt>
+<dd><p>The function draws vectors {<var>ax</var>, <var>ay</var>, <var>az</var>} along a curve {<var>x</var>, <var>y</var>, <var>z</var>}. The length of arrows are proportional to <em>\sqrtax^2+ay^2+az^2</em>. String <var>pen</var> specifies the color (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). Parameter <var>len</var> set the vector length factor (if non-zero) or vector length to be proportional the distance between curve points (if <var>len</var>=0). The minor sizes of all arrays must be equal and large 2. The plots are drawn for each row if one of the data is the matrix. See also <a href="#Vect">Vect</a>. See section <a href="mathgl_en_9.html#Traj-sample">Traj sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Vect"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Traj" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectL" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-1"></a>
+<h3 class="subsection">3.13.2 Vect</h3>
+<a name="index-Vect"></a>
+
+<dl>
+<dt><a name="index-Vect-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Vect</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fvect_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_vect_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal, <code>int</code> flag)</i></dt>
+<dd><p>The function draws plane vector field plot for the field {<var>ax</var>, <var>ay</var>} depending parametrically on coordinates <var>x</var>, <var>y</var> at level <var>z=zVal</var>. The length and color of arrows are proportional to <em>\sqrtax^2+ay^2</em>. The number of arrows depend on <var>MeshNum</var> (see section <a href="#Other-settings">Other settings</a>). The color is specified by the string argument <var>sch</var>. Previous color scheme is used by default. Parameter <var>flag</var> is bitwise flag for setup the hachures (arrows): <code>MGL_VEC_COL</code> for drawing bi-color arrow, <code>MGL_VEC_LEN</code> for drawing fixed length arrows, <code>MGL_VEC_DOT</code> for drawing hachures with dots instead of arrows, <code>MGL_VEC_END</code> for drawing arrows to the cell point, <code>MGL_VEC_MID</code> for drawing arrows with center at cell point. The size of <var>ax</var> and <var>ay</var> must be equal. The minor dimensions of arrays <var>x</var>, <var>y</var> and <var>ax</var> must be equal too. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>ax</var>). The vector field is plotted for each z slice of <var>ax</var>, <var>ay</var>. See also <a href="#VectL">VectL</a>, <a href="#VectC">VectC</a>, <a href="#Flow">Flow</a>, <a href="#Dew">Dew</a>. See section <a href="mathgl_en_9.html#Vect-sample">Vect sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Vect-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Vect</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fvect_005f2d"></a><u>C function:</u> <code>void</code> <b>mgl_vect_2d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal, <code>int</code> flag)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Vect-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Vect</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fvect_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_vect_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>int</code> flag)</i></dt>
+<dd><p>This is 3D version of the first functions. Here arrays <var>ax</var>, <var>ay</var>, <var>az</var> must be 3-ranged tensors with equal sizes and the length and color of arrows is proportional to <em>\sqrtax^2+ay^2+az^2</em>. See section <a href="mathgl_en_9.html#Vect-3D-sample">Vect 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Vect-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Vect</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fvect_005f3d"></a><u>C function:</u> <code>void</code> <b>mgl_vect_3d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>int</code> flag)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="VectL"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectC" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectL-1"></a>
+<h3 class="subsection">3.13.3 VectL</h3>
+<a name="index-VectL"></a>
+
+<p>These functions are obsolete &ndash; use Vect() functions instead.
+</p>
+<dl>
+<dt><a name="index-VectL-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>VectL</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fvectl_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_vectl_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws plane vector field plot for the field {<var>ax</var>, <var>ay</var>} depending parametrically on coordinates <var>x</var>, <var>y</var> at level <var>z=zVal</var>. The length of hachures is proportional to <em>\sqrtax^2+ay^2</em>. The number of hachures depend on <var>MeshNum</var> (see section <a href="#Other-settings">Other settings</a>). Points are denote the start of hachures. The color is specified by the string argument <var>sch</var>. Previous color scheme is used by default. The size of <var>ax</var> and <var>ay</var> must be equal. The minor dimensions of arrays <var>x</var>, <var>y</var> and <var>ax</var> must be equal too. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>ax</var>). The vector field is plotted for each z slice of <var>ax</var>, <var>ay</var>. See also <a href="#Vect">Vect</a>, <a href="#VectC">VectC</a>, <a href="#Flow">Flow</a>, <a href="#Dew">Dew</a>. See section <a href="mathgl_en_9.html#VectL-sample">VectL sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-VectL-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>VectL</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fvectl_005f2d"></a><u>C function:</u> <code>void</code> <b>mgl_vectl_2d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-VectL-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>VectL</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fvectl_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_vectl_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch)</i></dt>
+<dd><p>This is 3D version of the first functions. Here arrays <var>ax</var>, <var>ay</var>, <var>az</var> must be 3-ranged tensors with equal sizes and the length of hachures is proportional to <em>\sqrtax^2+ay^2+az^2</em>. See section <a href="mathgl_en_9.html#VectL-3D-sample">VectL 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-VectL-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>VectL</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fvectl_005f3d"></a><u>C function:</u> <code>void</code> <b>mgl_vectl_3d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="VectC"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectL" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dew" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectC-1"></a>
+<h3 class="subsection">3.13.4 VectC</h3>
+<a name="index-VectC"></a>
+
+<p>These functions are obsolete &ndash; use Vect() functions instead.
+</p>
+<dl>
+<dt><a name="index-VectC-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>VectC</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fvectc_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_vectc_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws plane vector field plot for the field {<var>ax</var>, <var>ay</var>} depending parametrically on coordinates <var>x</var>, <var>y</var> at level <var>z=zVal</var>. The color of hachures is proportional to <em>\sqrtax^2+ay^2</em>. The number of hachures depend on <var>MeshNum</var> (see section <a href="#Other-settings">Other settings</a>). Points are denote the start of hachures. The color is specified by the string argument <var>sch</var>. Previous color scheme is used by default. The size of <var>ax</var> and <var>ay</var> must be equal. The minor dimensions of arrays <var>x</var>, <var>y</var> and <var>ax</var> must be equal too. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>ax</var>). The vector field is plotted for each z slice of <var>ax</var>, <var>ay</var>. See also <a href="#Vect">Vect</a>, <a href="#VectL">VectL</a>, <a href="#Flow">Flow</a>, <a href="#Dew">Dew</a>. See section <a href="mathgl_en_9.html#VectC-sample">VectC sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-VectC-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>VectC</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fvectc_005f2d"></a><u>C function:</u> <code>void</code> <b>mgl_vectc_2d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-VectC-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>VectC</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fvectc_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_vectc_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch)</i></dt>
+<dd><p>This is 3D version of the first functions. Here arrays <var>ax</var>, <var>ay</var>, <var>az</var> must be 3-ranged tensors with equal sizes and the color of hachures is proportional to <em>\sqrtax^2+ay^2+az^2</em>. See section <a href="mathgl_en_9.html#VectC-3D-sample">VectC 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-VectC-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>VectC</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fvectc_005f3d"></a><u>C function:</u> <code>void</code> <b>mgl_vectc_3d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Dew"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectC" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dew-1"></a>
+<h3 class="subsection">3.13.5 Dew</h3>
+<a name="index-Dew"></a>
+
+<dl>
+<dt><a name="index-Dew-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dew</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdew_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_dew_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws dew-drops for plane vector field {<var>ax</var>, <var>ay</var>} depending parametrically on coordinates <var>x</var>, <var>y</var> at level <var>z=zVal</var>. Note that this is very expensive plot in memory usage and creation time! The color of drops is proportional to <em>\sqrtax^2+ay^2</em>. The number of drops depend on <var>MeshNum</var> (see section <a href="#Other-settings">Other settings</a>). The color is specified by the string argument <var>sch</var>. Previous color scheme is used by default. The size of <var>ax</var> and <var>ay</var> must be equal. The minor dimensions of arrays <var>x</var>, <var>y</var> and <var>ax</var> must be equal too. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>ax</var>). The vector field is plotted for each z slice of <var>ax</var>, <var>ay</var>. See also <a href="#Vect">Vect</a>, <a href="#VectC">VectC</a>. See section <a href="mathgl_en_9.html#Dew-sample">Dew sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Dew-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dew</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdew"></a><u>C function:</u> <code>void</code> <b>mgl_dew</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Flow"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dew" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#FlowP" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-1"></a>
+<h3 class="subsection">3.13.6 Flow</h3>
+<a name="index-Flow"></a>
+
+<dl>
+<dt><a name="index-Flow-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flow</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>, <code>bool</code> central=<code>true</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fflow_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_flow_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>int</code> num, <code>int</code> central, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws flow threads for the plane vector field {<var>ax</var>, <var>ay</var>} parametrically depending on coordinates <var>x</var>, <var>y</var> at level z = <var>zVal</var>. Number of threads is proportional to <var>num</var>. Parameter <var>central</var> sets the thread start from center (if true) or only from edges (if false). From v.1.11 it is ignored and always equal to (<var>num</var>&gt;0). The color of lines is proportional to <em>\sqrtax^2+ay^2</em>. Warm color corresponds to normal flow (like attractor). Cold one corresponds to inverse flow (like source). String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The size of <var>ax</var> and <var>ay</var> must be equal. The minor dimensions of arrays <var>x</var>, <var>y</var> and <var>ax</var> must be equal too. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>ax</var>). The vector field is plotted for each z slice of <var>ax</var>, <var>ay</var>. See also <a href="#Pipe">Pipe</a>, <a href="#VectC">VectC</a>, <a href="#Vect">Vect</a>. See section <a href="mathgl_en_9.html#Flow-sample">Flow sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Flow-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flow</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>, <code>bool</code> central=<code>true</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fflow_005f2d"></a><u>C function:</u> <code>void</code> <b>mgl_flow_2d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>int</code> num, <code>int</code> central, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Flow-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flow</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>, <code>bool</code> central=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fflow_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_flow_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>int</code> num, <code>int</code> central)</i></dt>
+<dd><p>This is 3D version of the first functions. Here arrays <var>ax</var>, <var>ay</var>, <var>az</var> must be 3-ranged tensors with equal sizes and the color of line is proportional to <em>\sqrtax^2+ay^2+az^2</em>. See section <a href="mathgl_en_9.html#Flow-3D-sample">Flow 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Flow-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flow</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>, <code>bool</code> central=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fflow_005f3d"></a><u>C function:</u> <code>void</code> <b>mgl_flow_3d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>int</code> num, <code>int</code> central)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="FlowP"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="FlowP-1"></a>
+<h3 class="subsection">3.13.7 FlowP</h3>
+<a name="index-FlowP"></a>
+
+<dl>
+<dt><a name="index-FlowP-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>FlowP</b><i> (<code>mglPoint</code> p0, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-FlowP-2"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>FlowP</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fflowp_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_flowp_xy</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws flow thread for the plane vector field {<var>ax</var>, <var>ay</var>} parametrically depending on coordinates <var>x</var>, <var>y</var> from point <var>p0</var> at level z = <var>p0</var>.z. The color of lines is proportional to <em>\sqrtax^2+ay^2</em>. Warm color corresponds to normal flow (like attractor). Cold one corresponds to inverse flow (like source). String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The size of <var>ax</var> and <var>ay</var> must be equal. The minor dimensions of arrays <var>x</var>, <var>y</var> and <var>ax</var> must be equal too. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>ax</var>). The vector field is plotted for each z slice of <var>ax</var>, <var>ay</var>. See also <a href="#Pipe">Pipe</a>, <a href="#VectC">VectC</a>, <a href="#Vect">Vect</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FlowP-3"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>FlowP</b><i> (<code>mglPoint</code> p0, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-FlowP-4"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>FlowP</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fflowp_005f2d"></a><u>C function:</u> <code>void</code> <b>mgl_flowp_2d</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FlowP-5"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>FlowP</b><i> (<code>mglPoint</code> p0, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-FlowP-6"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>FlowP</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fflowp_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_flowp_xyz</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch)</i></dt>
+<dd><p>This is 3D version of the first functions. Here arrays <var>ax</var>, <var>ay</var>, <var>az</var> must be 3-ranged tensors with equal sizes and the color of line is proportional to <em>\sqrtax^2+ay^2+az^2</em>. See section <a href="mathgl_en_9.html#Flow-3D-sample">Flow 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FlowP-7"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>FlowP</b><i> (<code>mglPoint</code> p0, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-FlowP-8"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>FlowP</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fflowp_005f3d"></a><u>C function:</u> <code>void</code> <b>mgl_flowp_3d</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Pipe"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#FlowP" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-1"></a>
+<h3 class="subsection">3.13.8 Pipe</h3>
+<a name="index-Pipe"></a>
+
+<dl>
+<dt><a name="index-Pipe-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pipe</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> r0=<code>0.05</code>, <code>int</code> num=<code>5</code>, <code>bool</code> central=<code>true</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fpipe_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_pipe_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> r0, <code>int</code> num, <code>int</code> central, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws flow pipes for the plane vector field {<var>ax</var>, <var>ay</var>} parametrically depending on coordinates <var>x</var>, <var>y</var> at level z = <var>zVal</var>. Number of pipes is proportional to <var>num</var>. Parameter <var>central</var> sets the pipe start from center (if true) or only from edges (if false). From v.1.11 it is ignored and always equal to (<var>num</var>&gt;0). The color of lines is proportional to <em>\sqrtax^2+ay^2</em>. Warm color corresponds to normal flow (like attractor). Cold one corresponds to inverse flow (like source). String <var>sch</var> sets the color scheme. Previous color scheme is used by default. Parameter <var>r0</var> set the base pipe radius. If <var>r0</var>&lt;0 then pipe radius is inverse proportional to amplitude. The size of <var>ax</var> and <var>ay</var> must be equal. The minor dimensions of arrays <var>x</var>, <var>y</var> and <var>ax</var> must be equal too. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>ax</var>). The vector field is plotted for each z slice of <var>ax</var>, <var>ay</var>. See also <a href="#Flow">Flow</a>, <a href="#VectC">VectC</a>, <a href="#Vect">Vect</a>. See section <a href="mathgl_en_9.html#Pipe-sample">Pipe sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Pipe-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pipe</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> r0=<code>0.05</code>, <code>int</code> num=<code>5</code>, <code>bool</code> central=<code>true</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fpipe_005f2d"></a><u>C function:</u> <code>void</code> <b>mgl_pipe_2d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> r0, <code>int</code> num, <code>int</code> central, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Pipe-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pipe</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> r0=<code>0.05</code>, <code>int</code> num=<code>3</code>, <code>bool</code> central=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fpipe_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_pipe_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>float</code> r0, <code>int</code> num, <code>int</code> central)</i></dt>
+<dd><p>This is 3D version of the first functions. Here arrays <var>ax</var>, <var>ay</var>, <var>az</var> must be 3-ranged tensors with equal sizes and the color of line is proportional to <em>\sqrtax^2+ay^2+az^2</em>. See section <a href="mathgl_en_9.html#Pipe-3D-sample">Pipe 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Pipe-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pipe</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> r0=<code>0.05</code>, <code>int</code> num=<code>3</code>, <code>bool</code> central=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fpipe_005f3d"></a><u>C function:</u> <code>void</code> <b>mgl_pipe_3d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>float</code> r0, <code>int</code> num, <code>int</code> central)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Other-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#DensXYZ" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Other-plotting-1"></a>
+<h2 class="section">3.14 Other plotting</h2>
+
+<p>These functions perform miscelaneous plotting. There is unstructured data points plots (Dots), surface reconstruction (Crust), surfaces on the triangular mesh (TriPlot), textual formula plotting (Plots by formula), data plots at edges (Dens[XYZ], Cont[XYZ], ContF[XYZ]), simple plot (SimplePlot). Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. Parameters of color scheme are specified by the string argument. See section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#DensXYZ">3.14.1 DensXYZ</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContXYZ">3.14.2 ContXYZ</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContFXYZ">3.14.3 ContFXYZ</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dots">3.14.4 Dots</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Crust">3.14.5 Crust</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TriPlot">3.14.6 TriPlot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TriCont">3.14.7 TriCont</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#QuadPlot">3.14.8 QuadPlot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-by-formula">3.14.9 Plots by formula</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#SimplePlot">3.14.10 SimplePlot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="DensXYZ"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContXYZ" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="DensXYZ-1"></a>
+<h3 class="subsection">3.14.1 DensXYZ</h3>
+<a name="index-DensX"></a>
+<a name="index-DensY"></a>
+<a name="index-DensZ"></a>
+
+<p>These plotting functions draw density plot in x, y, or z plain. If <var>a</var> is a tensor (3-dimensional data) then interpolation to a given <var>sVal</var> is performed. These functions are useful for creating projections of the 3D data array to the bounding box. For example, code like
+</p><table><tr><td>&nbsp;</td><td><pre class="example">gr-&gt;DensX(c.Sum(&quot;x&quot;),&quot;BbcyrR&quot;,-1);
+gr-&gt;DensY(c.Sum(&quot;y&quot;),0,1);
+gr-&gt;DensZ(c.Sum(&quot;z&quot;),0,-1);
+</pre></td></tr></table>
+<p>will produce the following picture. See also <a href="#ContXYZ">ContXYZ</a>, <a href="#ContFXYZ">ContFXYZ</a>, <a href="#Dens">Dens</a>, <a href="#Data-distributions">Data distributions</a>. See section <a href="mathgl_en_9.html#Dens-projection-sample">Dens projection sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-DensX-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensX</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens_005fx"></a><u>C function:</u> <code>void</code> <b>mgl_dens_x</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Draws density plot for data <var>a</var> at x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DensY-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensY</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens_005fy"></a><u>C function:</u> <code>void</code> <b>mgl_dens_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Draws density plot for data <var>a</var> at y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DensZ-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensZ</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens_005fz"></a><u>C function:</u> <code>void</code> <b>mgl_dens_z</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Draws density plot for data <var>a</var> at z = <var>sVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContXYZ"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#DensXYZ" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContFXYZ" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContXYZ-1"></a>
+<h3 class="subsection">3.14.2 ContXYZ</h3>
+<a name="index-ContX"></a>
+<a name="index-ContY"></a>
+<a name="index-ContZ"></a>
+
+<p>These plotting functions draw contour lines in x, y, or z plain. If <var>a</var> is a tensor (3-dimensional data) then interpolation to a given <var>sVal</var> is performed. These functions are useful for creating projections of the 3D data array to the bounding box. For example, code like
+</p><table><tr><td>&nbsp;</td><td><pre class="example">gr-&gt;ContX(c.Sum(&quot;x&quot;),&quot;BbcyrR&quot;,-1);
+gr-&gt;ContY(c.Sum(&quot;y&quot;),0,1);
+gr-&gt;ContZ(c.Sum(&quot;z&quot;),0,-1);
+</pre></td></tr></table>
+<p>will produce the following picture. See also <a href="#ContFXYZ">ContFXYZ</a>, <a href="#DensXYZ">DensXYZ</a>, <a href="#Cont">Cont</a>, <a href="#Data-distributions">Data distributions</a>. See section <a href="mathgl_en_9.html#Cont-projection-sample">Cont projection sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-ContX-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContX</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fx"></a><u>C function:</u> <code>void</code> <b>mgl_cont_x</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Draws <var>num</var>-th contour lines for data <var>a</var> at x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContY-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContY</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fy"></a><u>C function:</u> <code>void</code> <b>mgl_cont_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Draws <var>num</var>-th contour lines for data <var>a</var> at y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContZ-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContZ</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fz"></a><u>C function:</u> <code>void</code> <b>mgl_cont_z</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Draws <var>num</var>-th contour lines for data <var>a</var> at z = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContX-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContX</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fx_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_cont_x_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Draws contour lines for data <var>a</var>=<var>v</var>[i] at x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContY-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContY</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fy_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_cont_y_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Draws contour lines for data <var>a</var>=<var>v</var>[i] at y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContZ-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContZ</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fz_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_cont_z_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Draws contour lines for data <var>a</var>=<var>v</var>[i] at z = <var>sVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContFXYZ"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContXYZ" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dots" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContFXYZ-1"></a>
+<h3 class="subsection">3.14.3 ContFXYZ</h3>
+<a name="index-ContFX"></a>
+<a name="index-ContFY"></a>
+<a name="index-ContFZ"></a>
+
+<p>These plotting functions draw solid contour lines in x, y, or z plain. If <var>a</var> is a tensor (3-dimensional data) then interpolation to a given <var>sVal</var> is performed. These functions are useful for creating projections of the 3D data array to the bounding box. See also <a href="#ContXYZ">ContXYZ</a>, <a href="#DensXYZ">DensXYZ</a>, <a href="#ContF">ContF</a>, <a href="#Data-distributions">Data distributions</a>.
+</p>
+<dl>
+<dt><a name="index-ContFX-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFX</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fx"></a><u>C function:</u> <code>void</code> <b>mgl_contf_x</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Draws <var>num</var>-th solid contours for data <var>a</var> at x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFY-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFY</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fy"></a><u>C function:</u> <code>void</code> <b>mgl_contf_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Draws <var>num</var>-th solid contours for data <var>a</var> at y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFZ-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFZ</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fz"></a><u>C function:</u> <code>void</code> <b>mgl_contf_z</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Draws <var>num</var>-th solid contours for data <var>a</var> at z = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFX-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFX</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fx_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_contf_x_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Draws solid contours for data <var>a</var>=<var>v</var>[i] at x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFY-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFY</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fy_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_contf_y_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Draws solid contours for data <var>a</var>=<var>v</var>[i] at y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFZ-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFZ</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fz_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_contf_z_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Draws solid contours for data <var>a</var>=<var>v</var>[i] at z = <var>sVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Dots"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContFXYZ" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Crust" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dots-1"></a>
+<h3 class="subsection">3.14.4 Dots</h3>
+<a name="index-Dots"></a>
+
+<dl>
+<dt><a name="index-Dots-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dots</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-Dots-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dots</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdots"></a><u>C function:</u> <code>void</code> <b>mgl_dots</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dt><a name="index-mgl_005fdots_005fa"></a><u>C function:</u> <code>void</code> <b>mgl_dots_a</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws the arbitrary placed points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If array <var>a</var> is specified then it define the transparency of dots. Arrays <var>x</var>, <var>y</var>, <var>z</var>, <var>a</var> must have equal sizes. See also <a href="#Crust">Crust</a>, <a href="#Mark">Mark</a>, <a href="#Plot">Plot</a>. See section <a href="mathgl_en_9.html#Dots-sample">Dots sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Dots-3"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Dots</b><i> (<code>const mglData &amp;</code>tr, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdots_005ftr"></a><u>C function:</u> <code>void</code> <b>mgl_dots_tr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> tr, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x=tr</var>(0,:), <var>y=tr</var>(1,:), <var>z=tr</var>(2,:) and if <var>tr</var>.nx&gt;3 then <var>a=tr</var>(3,:).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Crust"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dots" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TriPlot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Crust-1"></a>
+<h3 class="subsection">3.14.5 Crust</h3>
+<a name="index-Crust"></a>
+
+<dl>
+<dt><a name="index-Crust-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Crust</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> er=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcrust"></a><u>C function:</u> <code>void</code> <b>mgl_crust</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> er)</i></dt>
+<dd><p>The function reconstruct and draws the surface for arbitrary placed points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. Parameter <var>er</var> set relative radius for (increase it for removing holes). String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. Arrays <var>x</var>, <var>y</var>, <var>z</var> must have equal sizes. See also <a href="#Dots">Dots</a>, <a href="#TriPlot">TriPlot</a>. See section <a href="mathgl_en_9.html#Crust-sample">Crust sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Crust-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Crust</b><i> (<code>const mglData &amp;</code>tr, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> er=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcrust_005ftr"></a><u>C function:</u> <code>void</code> <b>mgl_crust_tr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> tr, <code>const char *</code>sch, <code>float</code> er)</i></dt>
+<dd><p>The same as previous with <var>x=tr</var>(0,:), <var>y=tr</var>(1,:), <var>z=tr</var>(2,:).
+</p></dd></dl>
+
+<hr size="6">
+<a name="TriPlot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Crust" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TriCont" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TriPlot-1"></a>
+<h3 class="subsection">3.14.6 TriPlot</h3>
+<a name="index-TriPlot"></a>
+
+<dl>
+<dt><a name="index-TriPlot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TriPlot-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftriplot_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_triplot_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dt><a name="index-mgl_005ftriplot_005fxyzc"></a><u>C function:</u> <code>void</code> <b>mgl_triplot_xyzc</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws the surface of triangles. Triangle vertexes are set by indexes <var>id</var> of data points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. First dimensions of <var>id</var> must be 3 or greater. Arrays <var>x</var>, <var>y</var>, <var>z</var> must have equal sizes. Parameter <var>c</var> set the colors of triangles (if <var>id</var>.ny=<var>c</var>.nx) or colors of vertexes (if <var>x</var>.nx=<var>c</var>.nx). See also <a href="#Dots">Dots</a>, <a href="#Crust">Crust</a>, <a href="#QuadPlot">QuadPlot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TriPlot-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005ftriplot_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_triplot_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>z</var>[i]=<var>zVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="TriCont"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TriPlot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#QuadPlot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TriCont-1"></a>
+<h3 class="subsection">3.14.7 TriCont</h3>
+<a name="index-TriCont"></a>
+
+<dl>
+<dt><a name="index-TriContV"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriContV</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-TriContV-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriContV</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005ftricont_005fxyzcv"></a><u>C function:</u> <code>void</code> <b>mgl_tricont_xyzcv</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dt><a name="index-mgl_005ftricont_005fxyzv"></a><u>C function:</u> <code>void</code> <b>mgl_tricont_xyzv</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws contour lines for surface of triangles at <var>z</var> = <var>zVal</var> (or for <var>z=v</var>[k] if <code>zVal==NAN</code>). Triangle vertexes are set by indexes <var>id</var> of data points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. Contours are plotted for <var>z</var>[i,j]=<var>v</var>[k] where <var>v</var>[k] are values of data array <var>v</var>. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. Array <var>c</var> (if specified) is used for contour coloring. First dimensions of <var>id</var> must be 3 or greater. Arrays <var>x</var>, <var>y</var>, <var>z</var> must have equal sizes. Parameter <var>c</var> set the colors of triangles (if <var>id</var>.ny=<var>c</var>.nx) or colors of vertexes (if <var>x</var>.nx=<var>c</var>.nx). See also <a href="#TriPlot">TriPlot</a>, <a href="#Cont">Cont</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TriCont-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriCont</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>num</code>=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-TriCont-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriCont</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>num</code>=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005ftricont_005fxyzc"></a><u>C function:</u> <code>void</code> <b>mgl_tricont_xyzc</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch, <code>num</code>, <code>float</code> zVal)</i></dt>
+<dt><a name="index-mgl_005ftricont_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_tricont_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>num</code>, <code>float</code> zVal)</i></dt>
+<dd><p>The same as first one with vector <var>v</var> of <var>num</var>-th elements equidistantly distributed in range [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="QuadPlot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TriCont" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-by-formula" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="QuadPlot-1"></a>
+<h3 class="subsection">3.14.8 QuadPlot</h3>
+<a name="index-QuadPlot"></a>
+
+<dl>
+<dt><a name="index-QuadPlot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>QuadPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-QuadPlot-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>QuadPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fquadplot_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_quadplot_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dt><a name="index-mgl_005fquadplot_005fxyzc"></a><u>C function:</u> <code>void</code> <b>mgl_quadplot_xyzc</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws the surface of quadrangles. Quadrangles vertexes are set by indexes <var>id</var> of data points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. First dimensions of <var>id</var> must be 4 or greater. Arrays <var>x</var>, <var>y</var>, <var>z</var> must have equal sizes. Parameter <var>c</var> set the colors of quadrangles (if <var>id</var>.ny=<var>c</var>.nx) or colors of vertexes (if <var>x</var>.nx=<var>c</var>.nx). See also <a href="#TriPlot">TriPlot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-QuadPlot-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>QuadPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fquadplot_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_quadplot_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>z</var>[i]=<var>zVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Plots-by-formula"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#QuadPlot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SimplePlot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-by-formula-1"></a>
+<h3 class="subsection">3.14.9 Plots by formula</h3>
+<a name="index-Plot-4"></a>
+<a name="index-Surf-3"></a>
+
+<p>These functions perform plotting of 1D or 2D functions specified by textual formula. You do not need to create the data arrays to plot it. The parameter <var>stl</var> set the line style (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>) for <code>Plot()</code> or color scheme (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>) for <code>Surf()</code>. The parameter <var>n</var> set the minimal number of points along coordinate(s) for plots. At this time (v. 1.10) there is adaptive increase of data points numbers but only for 1D variant (i.e. for Plot()).
+</p>
+<dl>
+<dt><a name="index-Plot-5"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const char *</code>eqY, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>int</code> n=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005ffplot"></a><u>C function:</u> <code>void</code> <b>mgl_fplot</b><i> (<code>HMGL</code> gr, <code>const char *</code>eqY, <code>const char *</code>stl, <code>float</code> zVal, <code>int</code> n)</i></dt>
+<dd><p>The function draws function &lsquo;<samp>eqY(x)</samp>&rsquo; at plane z=<var>zVal</var> where &lsquo;<samp>x</samp>&rsquo; variable is changed in range [<var>Min</var>.x, <var>Max</var>.x]. See also <a href="#Plot">Plot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Plot-6"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const char *</code>eqX, <code>const char *</code>eqY, <code>const char *</code>eqZ, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>int</code> n=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005ffplot_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_fplot_xyz</b><i> (<code>HMGL</code> gr, <code>const char *</code>eqX, <code>const char *</code>eqY, <code>const char *</code>eqZ, <code>const char *</code>stl, <code>float</code> zVal, <code>int</code> n)</i></dt>
+<dd><p>The function draws parametrical curve {&lsquo;<samp>eqX(t)</samp>&rsquo;, &lsquo;<samp>eqY(t)</samp>&rsquo;, &lsquo;<samp>eqZ(t)</samp>&rsquo;} where &lsquo;<samp>t</samp>&rsquo; variable is changed in range [0, 1]. See also <a href="#Plot">Plot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf</b><i> (<code>const char *</code>eqZ, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> n=<code>100</code>);</i></dt>
+<dt><a name="index-mgl_005ffsurf"></a><u>C function:</u> <code>void</code> <b>mgl_fsurf</b><i> (<code>HMGL</code> gr, <code>const char *</code>eqZ, <code>const char *</code>stl, <code>int</code> n);</i></dt>
+<dd><p>The function draws surface for function &lsquo;<samp>eqY(x,y)</samp>&rsquo; where &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; variables are changed in range [<var>Min</var>, <var>Max</var>]. See also <a href="#Surf">Surf</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf-5"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf</b><i> (<code>const char *</code>eqX, <code>const char *</code>eqY, <code>const char *</code>eqZ, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> n=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005ffsurf_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_fsurf_xyz</b><i> (<code>HMGL</code> gr, <code>const char *</code>eqX, <code>const char *</code>eqY, <code>const char *</code>eqZ, <code>const char *</code>stl, <code>int</code> n)</i></dt>
+<dd><p>The function draws parametrical surface {&lsquo;<samp>eqX(u,v)</samp>&rsquo;, &lsquo;<samp>eqY(u,v)</samp>&rsquo;, &lsquo;<samp>eqZ(u,v)</samp>&rsquo;} where &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo; variables are changed in range [0, 1]. See also <a href="#Surf">Surf</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="SimplePlot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-by-formula" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SimplePlot-1"></a>
+<h3 class="subsection">3.14.10 SimplePlot</h3>
+<a name="index-SimplePlot"></a>
+
+<dl>
+<dt><a name="index-SimplePlot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SimplePlot</b><i> (<code>const mglData &amp;</code>a, <code>int</code> type=<code>0</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsimple_005fplot"></a><u>C function:</u> <code>void</code> <b>mgl_simple_plot</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> type, <code>const char *</code>stl)</i></dt>
+<dd><p>Plots the array <var>a</var> depending on it&rsquo;s dimensions and <var>type</var> parameter. String <var>stl</var> specifies the style of plotting. For 1d data: <code>type=0</code> &ndash; <a href="#Plot">Plot</a>, <code>type=1</code> &ndash; <a href="#Area">Area</a>, <code>type=2</code> &ndash; <a href="#Step">Step</a>, <code>type=3</code> &ndash; <a href="#Stem">Stem</a>, <code>type=4</code> &ndash; <a href="#Bars">Bars</a>. For 2d data: <code>type=0</code> &ndash; <a href="#Surf">Surf</a>, <code>type=1</code> &ndash; <a href="#Dens">Dens</a>, <code>type=2</code> &ndash; <a href="#Mesh">Mesh</a>, <code>type=3</code> &ndash; <a href="#Cont">Cont</a>. For 3d data: <code>type=0</code> &ndash; <a href="#Surf3">Surf3</a>, <code>type=1</code> &ndash; <a href="#Dens3">Dens3</a>, <code>type=2</code> &ndash; <a href="#Cont3">Cont3</a>, <code>type=2</code> &ndash; <a href="#Cloud">Cloud</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Nonlinear-fitting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SimplePlot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-distributions" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-1"></a>
+<h2 class="section">3.15 Nonlinear fitting</h2>
+<a name="index-Fit"></a>
+<a name="index-FitS"></a>
+<a name="index-PutsFit"></a>
+<a name="index-FitPnts"></a>
+<a name="index-Fit2"></a>
+<a name="index-Fit3"></a>
+
+<p>These functions fit data to formula. Fitting goal is to find formula parameters for the best fit the data points, i.e. to minimize the sum <em>\sum_i (f(x_i, y_i, z_i) - a_i)^2/s_i^2</em>. At this, approximation function &lsquo;<samp>f</samp>&rsquo; can depend only on one argument &lsquo;<samp>x</samp>&rsquo; (1D case), on two arguments &lsquo;<samp>x,y</samp>&rsquo; (2D case) and on three arguments &lsquo;<samp>x,y,z</samp>&rsquo; (3D case). The function &lsquo;<samp>f</samp>&rsquo; also may depend on parameters. Normally the list of fitted parameters is specified by <var>var</var> string (like, &lsquo;<samp>abcd</samp>&rsquo;). Usually user should supply initial values for fitted parameters by <var>ini</var> variable. But if he/she don&rsquo;t supply it then the zeros are used. Parameter <var>print</var>=<code>true</code> switch on printing the found coefficients to <var>Message</var> (see section <a href="#Error-handling">Error handling</a>).
+</p>
+<p>Functions Fit() and FitS() do not draw the obtained data themselves. They fill the data <var>fit</var> by formula &lsquo;<samp>f</samp>&rsquo; with found coefficients and return the <em>\chi^2</em> error of approximation. At this, the &lsquo;<samp>x,y,z</samp>&rsquo; coordinates are equidistantly distributed in the interval <var>Min</var>&ndash;<var>Max</var>. Number of points in <var>fit</var> is selected as maximal value of <var>fit</var> size and the value of <var>FitPnts</var>. Note, that this functions use GSL library and do something only if MathGL was compiled with GSL support. See section <a href="mathgl_en_9.html#Fitting-sample">Fitting sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-FitS-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-FitS-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyzas"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xyzas</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyzas_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xyzas_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-, y- and z-directions for 3d array specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FitS-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-FitS-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyzs"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xyzs</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyzs_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xyzs_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-, and y-directions for 2d array specified parametrically <var>a</var>[i,j](<var>x</var>[i,j], <var>y</var>[i,j]) for each data slice.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FitS-5"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-FitS-6"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxys"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xys</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxys_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xys_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-direction for 1d array specified parametrically <var>a</var>[i](<var>x</var>[i]) for each data slice.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FitS-7"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-FitS-8"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fys"></a><u>C function:</u> <code>float</code> <b>mgl_fit_ys</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fys_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_ys_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-direction for 1d array with <var>x</var> equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyza"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xyza</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyza_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xyza_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-, y- and z-directions for 3d array specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) with <var>s</var>[i,j,k]=1.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyz"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xyz</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyz_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xyz_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-, and y-directions for 2d array specified parametrically <var>a</var>[i,j](<var>x</var>[i,j], <var>y</var>[i,j]) with <var>s</var>[i,j]=1 for each data slice.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit-5"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit-6"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxy"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xy</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxy_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xy_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-direction for 1d array specified parametrically <var>a</var>[i](<var>x</var>[i]) with <var>s</var>[i]=1 for each data slice.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit-7"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>&quot;&quot;</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit-8"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005f1"></a><u>C function:</u> <code>float</code> <b>mgl_fit_1</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005f1_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_1_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-direction for 1d array <var>a</var> with <var>s</var>=1 and <var>x</var> equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit2-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit2</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit2-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit2</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005f2"></a><u>C function:</u> <code>float</code> <b>mgl_fit_2</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005f2_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_2_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-, and y-directions for 2d array <var>a</var> with <var>s</var>=1 and <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit3-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit3</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit3-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit3</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005f3"></a><u>C function:</u> <code>float</code> <b>mgl_fit_3</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005f3_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_3_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-, y- and z-directions for 3d array <var>a</var> with <var>s</var>=1 and <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-PutsFit-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>PutsFit</b><i> (<code>mglPoint</code> p, <code>const char *</code>prefix=<code>&quot;&quot;</code>, <code>const char *</code>font=<code>NULL</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fputs_005ffit"></a><u>C function:</u> <code>void</code> <b>mgl_puts_fit</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const char *</code>prefix, <code>const char *</code>font, <code>float</code> size=<code>-1</code>)</i></dt>
+<dd><p>Print last fitted formula with found coefficients (as numbers) at position <var>p0</var>. The string <var>prefix</var> will be printed before formula. All other parameters are the same as in <a href="#Text-printing">Text printing</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetFit"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>const char *</code> <b>GetFit</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fget_005ffit"></a><u>C function:</u> <code>const char *</code> <b>mgl_get_fit</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Get last fitted formula with found coefficients (as numbers).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FitPnts-of-mglGraph"></a><u>General option (C++) of mglGraph:</u> <code>int</code> <b>FitPnts</b></dt>
+<dd><p>Minimal number of points for output array after nonlinear fitting.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Data-distributions"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Frames_002fAnimation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-distributions-1"></a>
+<h2 class="section">3.16 Data distributions</h2>
+<a name="index-Hist"></a>
+
+<p>These functions make distribution (histogram) of data. They do not draw the obtained data themselves. These functions can be useful if user have data defined for random points (for example, after PIC simulation) and he want to produce a plot which require regular data (defined on grid(s)). The range for grids is always selected as axis range Min...Max. Arrays <var>x</var>, <var>y</var>, <var>z</var> define the positions (coordinates) of random points. Array <var>a</var> define the data value. Number of points in output array <var>res</var> is selected as maximal value of <var>res</var> size and the value of <var>FitPnts</var>.
+</p>
+<dl>
+<dt><a name="index-Hist-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Hist</b><i> (<code>mglData &amp;</code>res, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a)</i></dt>
+<dt><a name="index-mgl_005fhist_005fx"></a><u>C function:</u> <code>int</code> <b>mgl_hist_x</b><i> (<code>HMGL</code> gr, <code>HMDT</code> res, <code>const HMDT</code> x, <code>const HMDT</code> a)</i></dt>
+<dd><p>Creates 1D distribution of the data values <var>a</var> in range [Min, Max].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Hist-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Hist</b><i> (<code>mglData &amp;</code>res, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a)</i></dt>
+<dt><a name="index-mgl_005fhist_005fxy"></a><u>C function:</u> <code>int</code> <b>mgl_hist_xy</b><i> (<code>HMGL</code> gr, <code>HMDT</code> res, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a)</i></dt>
+<dd><p>Creates 2D distribution of the data values <var>a</var> in range [Min, Max].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Hist-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Hist</b><i> (<code>mglData &amp;</code>res, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a)</i></dt>
+<dt><a name="index-mgl_005fhist_005fxyz"></a><u>C function:</u> <code>int</code> <b>mgl_hist_xyz</b><i> (<code>HMGL</code> gr, <code>HMDT</code> res, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a)</i></dt>
+<dd><p>Creates 3D distribution of the data values <var>a</var> in range [Min, Max].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Frames_002fAnimation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-distributions" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#IDTF-functions" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Frames_002fAnimation-1"></a>
+<h2 class="section">3.17 Frames/Animation</h2>
+<a name="index-NewFrame"></a>
+<a name="index-EndFrame"></a>
+<a name="index-GetNumFrame"></a>
+
+<p>These functions provide ability to create several pictures simultaneously. For most of cases it is useless but for widget classes (see section <a href="mathgl_en_5.html#Widget-classes">Widget classes</a>) they can provide a way to show animation. Also you can write several frames into animated GIF file.
+</p>
+<dl>
+<dt><a name="index-NewFrame-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>int</code> <b>NewFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fnew_005fframe"></a><u>C function:</u> <code>int</code> <b>mgl_new_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Creates new frame. Function returns current frame id. This is not thread safe function in OpenGL mode! Use direct list creation in multi-threading drawing. The function <code>EndFrame()</code> <strong>must</strong> be call after the finishing of the frame drawing for each call of this function.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-EndFrame-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>EndFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fend_005fframe"></a><u>C function:</u> <code>void</code> <b>mgl_end_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Finishes the frame drawing.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetNumFrame-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>int</code> <b>GetNumFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fget_005fnum_005fframe"></a><u>C function:</u> <code>int</code> <b>mgl_get_num_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Gets the number of created frames.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ResetFrames"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ResetFrames</b><i> ()</i></dt>
+<dt><a name="index-mgl_005freset_005fframes"></a><u>C function:</u> <code>int</code> <b>mgl_reset_frames</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Reset frames counter (start it from zero).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-StartGIF"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>StartGIF</b><i> (<code>const char *</code>fname, <code>int</code> ms=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005fstart_005fgif"></a><u>C function:</u> <code>void</code> <b>mgl_start_gif</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>int</code> ms)</i></dt>
+<dd><p>Start writing frames into animated GIF file <var>fname</var>. Parameter <var>ms</var> set the delay between frames in milliseconds. You <strong>should not</strong> change the picture size during writing the cinema. Use CloseGIF() to finalize writing. Note, that this function is disabled in OpenGL mode.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CloseGIF"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>int</code> <b>CloseGIF</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fclose_005fgif"></a><u>C function:</u> <code>void</code> <b>mgl_close_gif</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Finish writing animated GIF and close connected pointers.
+</p></dd></dl>
+
+<hr size="6">
+<a name="IDTF-functions"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Frames_002fAnimation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="IDTF-functions-1"></a>
+<h2 class="section">3.18 IDTF functions</h2>
+<a name="index-NewFrame-2"></a>
+<a name="index-EndFrame-2"></a>
+<a name="index-GetNumFrame-2"></a>
+
+<p>These functions provide IDTF specific features. In all other cases they do nothing.
+</p>
+<dl>
+<dt><a name="index-VertexColor"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>VertexColor</b><i> (<code>bool</code> enable)</i></dt>
+<dd><p>Enables smooth color change.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Compression"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Compression</b><i> (<code>bool</code> enable)</i></dt>
+<dd><p>Gives smaller files, but quality degrades.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-StartGroup"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>StartGroup</b><i> (const char *name)</i></dt>
+<dd><p>Starts group definition. Groups contain objects and other groups, they are used to select a part of a model to zoom to or to make invizible or to make transparent and so on.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-EndGroup"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>EndGroup</b><i> ()</i></dt>
+<dd><p>Ends group definition.
+</p></dd></dl>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_4.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_4.html
new file mode 100644
index 0000000..0ff6ccc
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_4.html
@@ -0,0 +1,320 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: 4. Plotter classes</title>
+
+<meta name="description" content="MathGL 1.11: 4. Plotter classes">
+<meta name="keywords" content="MathGL 1.11: 4. Plotter classes">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Plotter-classes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_3.html#IDTF-functions" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglGraphAB-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_5.html#Widget-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+
+<a name="Plotter-classes-1"></a>
+<h1 class="chapter">4. Plotter classes</h1>
+<a name="index-mglGraphAB"></a>
+<a name="index-mglGraphZB"></a>
+<a name="index-mglGraphPS"></a>
+<a name="index-mglGraphGL"></a>
+<a name="index-mglGraphIDTF"></a>
+
+<p>The class mglGraph (see section <a href="mathgl_en_3.html#MathGL-core">MathGL core</a>) provide the basic tools for creating scientific graphics but it is abstract class. The matter is that there are several possible way to draw a graphics: in bitmap, in vector file, using OpenGL and so on. As result, user should use some of derived classes to do actual drawing. In principle, it is possible to derive a class exactly from mglGraph (and it was in v.1.6). But I recommend to derive from mglGraphAB class for higher compatibility of produced graphics from different classes. Class mglGraphAB is another abstract class which provide basic coordinates transformation, plotting functions and export to bitmap picture. It still require a functions for drawing lines, triangles and quadrangles. So below a set of &ldquo;plotter&rdquo; classes with short comments.
+</p>
+<dl>
+<dt><a name="index-mglGraphAB-1"></a><u>Class:</u> <b>mglGraphAB</b></dt>
+<dd><p>Abstract class mglGraphAB implements plotting function for 1D, 2D and 3D plots using Z-ordering and provides base functionality for to screen coordinate transformation, bitmap creation and so on. Class is defined in <code>#include &lt;mgl/mgl_ab.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglGraphZB-1"></a><u>Class:</u> <b>mglGraphZB</b></dt>
+<dd><p>Class mglGraphZB implements plotting function for 1D, 2D and 3D plots using Z-Buffer. It is useful for off-screen (for console or SSH terminal) programs. Also this class can be used in any other programs which may draw bitmap on the  screen (for example, by using FLTK, Qt, wxWidgets libraries and so on). Note that bitmap picture is saved while exporting to EPS format. The produced graphics have better quality but slower in comparison with graphics in the class mglGraphPS. Class is defined in <code>#include &lt;mgl/mgl_zb.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglGraphPS-1"></a><u>Class:</u> <b>mglGraphPS</b></dt>
+<dd><p>Class mglGraphPS implements plotting functions for 1D, 2D and 3D plots and exports them to PostScript or SVG file. It is useful for off-screen (for console or SSH terminal) programs. Note that there is no transparency support now and color interpolation and lightning support is limited (not so nice as in class mglGraphZB). As result the plots with transparency (SurfA, Surf3A, CloudP, CloudQ) may look not so good. However the speed of drawing is higher in comparison with one in the class mglGraphZB. Class is defined in <code>#include &lt;mgl/mgl_eps.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglGraphGL-1"></a><u>Class:</u> <b>mglGraphGL</b></dt>
+<dd><p>Class mglGraphGL implements plotting function for 1D, 2D and 3D plots under OpenGL. This class can not be used in off-screen applications. Note, that several transparent overlapped surfaces are drawn not so correctly due to OpenGL limitations. Class is defined in <code>#include &lt;mgl/mgl_gl.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglGraphIDTF-1"></a><u>Class:</u> <b>mglGraphIDTF</b></dt>
+<dd><p>Class mglGraphIDTF implements plotting function for 1D, 2D and 3D plots  and export it in IDTF format. Later this file can be converted in U3D format. Class is defined in <code>#include &lt;mgl/mgl_idtf.h&gt;</code>.
+</p></dd></dl>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#mglGraphAB-class">4.1 mglGraphAB class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="mglGraphAB-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plotter-classes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_5.html#Widget-classes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Plotter-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plotter-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_5.html#Widget-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglGraphAB-class-1"></a>
+<h2 class="section">4.1 mglGraphAB class</h2>
+<a name="index-mglGraphAB-2"></a>
+<a name="index-window-1"></a>
+<p>#cindex mglDraw
+</p>
+<p>Generally this class is a bit less abstract class than mglGraph class (see section <a href="mathgl_en_3.html#MathGL-core">MathGL core</a>). It provide many protected methods for handling intermediate data from mglGraph methods and require a few methods to be defined by derived class. The developers of derived classes should look on file &lsquo;<samp>mgl_ab.h</samp>&rsquo; and comments inside it or contact me.
+</p>
+<p>Here I just show main public methods for class mglGraphAB. There are functions returning the created picture (bitmap), its width and height. You may display it by yourself in any graphical library (see also, <a href="mathgl_en_5.html#Widget-classes">Widget classes</a>) or save in file (see also, <a href="mathgl_en_3.html#Export-to-file">Export to file</a>).
+</p>
+<dl>
+<dt><a name="index-GetBits"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>const unsigned char *</code> <b>GetBits</b><i> ()</i></dt>
+<dt><a name="index-GetRGB"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>GetRGB</b><i> (<code>char *</code>buf, <code>int</code> size)</i></dt>
+<dt><a name="index-GetBGRN"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>GetBGRN</b><i> (<code>char *</code>buf, <code>int</code> size)</i></dt>
+<dt><a name="index-mgl_005fget_005frgb"></a><u>C function:</u> <code>const unsigned char *</code> <b>mgl_get_rgb</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Gets RGB bitmap of the current state of the image. Format of each element of bits is: {red, green, blue}. Number of elements is Width*Height. Position of element {i,j} is [3*i + 3*Width*j] (or is [4*i + 4*Width*j] for <code>GetBGRN()</code>). For Python you have to provide the proper <var>size</var> of the buffer, <var>buf</var> i.e. the code should look like 
+</p><pre class="verbatim">from mathgl import *
+gr = mglGraph();
+bits='\t';
+bits=bits.expandtabs(4*gr.GetWidth()*gr.GetHeight());
+gr.GetBGRN(bits, len(bits));
+</pre></dd></dl>
+
+<dl>
+<dt><a name="index-GetRGBA"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>const unsigned char *</code> <b>GetRGBA</b><i> ()</i></dt>
+<dt><a name="index-GetRGBA-1"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>GetRGBA</b><i> (<code>char *</code>buf, <code>int</code> size)</i></dt>
+<dt><a name="index-mgl_005fget_005frgba"></a><u>C function:</u> <code>const unsigned char *</code> <b>mgl_get_rgba</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Gets RGBA bitmap of the current state of the image. Format of each element of bits is: {red, green, blue, alpha}. Number of elements is Width*Height. Position of element {i,j} is [4*i + 4*Width*j].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetWidth"></a><u>Method on <code>mglGraphAB</code> (C++, Python):</u> <code>int</code> <b>GetWidth</b><i> ()</i></dt>
+<dt><a name="index-GetHeight"></a><u>Method on <code>mglGraphAB</code> (C++, Python):</u> <code>int</code> <b>GetHeight</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fget_005fwidth"></a><u>C function:</u> <code>int</code> <b>mgl_get_width</b><i> (<code>HMGL</code> gr)</i></dt>
+<dt><a name="index-mgl_005fget_005fheight"></a><u>C function:</u> <code>int</code> <b>mgl_get_height</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Gets width and height of the image.
+</p></dd></dl>
+
+<p>Class mglGraphAB is the base class for &ldquo;widget classes&rdquo;. So there are set of functions for handling window behavior. Most of them are applicable only for &ldquo;window&rdquo; classes (like mglGraphFLTK and so on, see section <a href="mathgl_en_5.html#Widget-classes">Widget classes</a>). In all other classes these functions just do nothing. You should provide the corresponding interface in derived &ldquo;widget&rdquo; classes for user convenience.
+</p>
+<dl>
+<dt><a name="index-Window-on-mglGraphAB"></a><u>Method on mglGraphAB:</u> <code>void</code> <b>Window</b><i> (<code>int</code> argc, <code>char **</code>argv, <code>int (*</code>draw)(<code>mglGraph *</code>gr, <code>void *</code>p), <code>const char *</code>title, <code>void *</code>par=<code>NULL</code>, <code>void (*</code>reload)(<code>int</code> next, <code>void *</code>p)=<code>NULL</code>, <code>bool</code> maximize=<code>false</code>)</i></dt>
+<dd><p>This function creates a window for plotting. Parameters <var>argc</var>, <var>argv</var> contain OS specific information and should be the same as in function <code>main(int argc,char **argv)</code>. Parameter <var>draw</var> sets a pointer (this is the name of function) to drawing function. There is support of a list of plots (frames). So as one can prepare a set of frames at first and redraw it fast later (but it requires more memory). Function should return positive number of frames for the list or zero if it will plot directly. Note, that <var>draw</var> can be <code>NULL</code> for displaying static bitmaps only (no animation or slides). Parameter <var>title</var> sets the title of the window. Parameter <var>par</var> contains pointer to data for the plotting function <var>draw</var>. Parameter <var>maximize</var>=<code>true</code> open maximized window.
+</p>
+<p>There are some keys handles for manipulating by the plot: &rsquo;a&rsquo;, &rsquo;d&rsquo;, &rsquo;w&rsquo;, &rsquo;s&rsquo; for the rotating; &rsquo;,&rsquo;, &rsquo;.&rsquo; for viewing of the previous or next frames in the list; &rsquo;r&rsquo; for the switching of transparency; &rsquo;f&rsquo; for the switching of lightning; &rsquo;x&rsquo; for hiding (closing) the window.
+</p>
+<p><strong>IMPORTANT!!!</strong> You need to add a call of Rotate() (see section <a href="mathgl_en_3.html#Transformation-matrix">Transformation matrix</a>) function for having possibility of plot rotation. If plot should be unrotated by default just add <code>Rotate(0,0)</code> in drawing function.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Window-on-mglGraphAB-1"></a><u>Method on mglGraphAB:</u> <code>void</code> <b>Window</b><i> (<code>int</code> argc, <code>char **</code>argv, <code>mglDraw *</code>draw, <code>const char *</code>title, <code>bool</code> maximize=<code>false</code>)</i></dt>
+<dd><p>This function is mostly the same as previous one. The only difference is that the drawing function and function for data reloading are specified as methods on a class inherited from class <code>mglDraw</code>. This class is defined in <code>#include &lt;mgl/mgl_define.h&gt;</code> and have only 2 methods:
+</p><pre class="verbatim">class mglDraw
+{
+public:
+    virtual int Draw(mglGraph *) { return 0; };
+    virtual void Reload(int) {};
+};
+</pre><p>You should inherit yours class from <code>mglDraw</code> and reimplement one or both functions for using this function.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-ToggleAlpha"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleAlpha</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005falpha"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_alpha</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Switch on/off transparency but do not overwrite switches in user drawing function.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ToggleLight"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleLight</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005flight"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_light</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Switch on/off lighting but do not overwrite switches in user drawing function.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ToggleZoom"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleZoom</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005fzoom"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_zoom</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Switch on/off zooming by mouse as region selection.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ToggleRotate"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleRotate</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005frotate"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_rotate</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Switch on/off rotation by mouse. Usually, left button is used for rotation, middle button for shift, right button for zoom/perspective.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ToggleNo"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleNo</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005fno"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_no</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Switch off all zooming and rotation and restore initial state.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Update"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>Update</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fupdate"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_update</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Update window contents.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ReLoad"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ReLoad</b><i> (<code>bool</code> o)</i></dt>
+<dt><a name="index-mgl_005fwnd_005freload"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_reload</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+<dd><p>Reload user data and update picture.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Adjust"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>Adjust</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fadjust"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_adjust</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Adjust size of bitmap to window size.
+</p></dd></dl>
+<dl>
+<dt><a name="index-NextFrame"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>NextFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fnext_005fframe"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_next_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Show next frame if one.
+</p></dd></dl>
+<dl>
+<dt><a name="index-PrevFrame"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>PrevFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fprev_005fframe"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_prev_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Show previous frame if one.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Animation"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>Animation</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fanimation"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_animation</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Run/stop slideshow (animation) of frames.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fwnd_005fset_005fauto_005fclf"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_set_auto_clf</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+</dl>
+<dl>
+<dt><a name="index-AutoClf-of-mglGraphAB"></a><u>Widget option of mglGraphAB:</u> <code>bool</code> <b>AutoClf</b></dt>
+<dd><p>Clear canvas between drawing. You may switch it off for accumulate previous drawing (for example some points or parts of a picture).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fwnd_005fset_005fdelay"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_set_delay</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+</dl>
+<dl>
+<dt><a name="index-Delay-of-mglGraphAB"></a><u>Widget option of mglGraphAB:</u> <code>float</code> <b>Delay</b></dt>
+<dd><p>Delay for animation in seconds. Default value is 1 sec.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CalcXYZ"></a><u>Method on <code>mglGraphAB</code> (C++, Python):</u> <code>mglPoint</code> <b>CalcXYZ</b><i> (<code>int</code> xs, <code>int</code> ys)</i></dt>
+<dt><a name="index-mgl_005fcalc_005fxyz-1"></a><u>C function:</u> <code>void</code> <b>mgl_calc_xyz</b><i> (<code>HMGL</code> gr, <code>int</code> xs, <code>int</code> ys, <code>float *</code>x, <code>float *</code>y, <code>float *</code>z)</i></dt>
+<dd><p>Calculate 3D coordinate {x,y,z} for screen point {xs,ys}. At this moment it ignore perspective and transformation formulas (curvilinear coordinates). The calculation are done for the last used InPlot (see section <a href="mathgl_en_3.html#Transformation-matrix">Transformation matrix</a>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CalcScr"></a><u>Method on <code>mglGraphAB</code> (C++, Python):</u> <code>mglPoint</code> <b>CalcScr</b><i> (<code>mglPoint</code> p)</i></dt>
+<dt><a name="index-CalcScr-1"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>CalcScr</b><i> (<code>mglPoint</code> p, <code>int *</code>xs, <code>int *</code>ys)</i></dt>
+<dt><a name="index-mgl_005fcalc_005fscr"></a><u>C function:</u> <code>void</code> <b>mgl_calc_scr</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>int *</code>xs, <code>int *</code>ys)</i></dt>
+<dd><p>Calculate screen point {xs,ys} for 3D coordinate {x,y,z}. The calculation are done for the last used InPlot (see section <a href="mathgl_en_3.html#Transformation-matrix">Transformation matrix</a>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fwnd_005fset_005fshow_005fmouse_005fpos"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_set_show_mouse_pos</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+</dl>
+<dl>
+<dt><a name="index-ShowMousePos-of-mglGraphAB"></a><u>Widget option of mglGraphAB:</u> <code>float</code> <b>ShowMousePos</b></dt>
+<dd><p>Switch to show or not in the widget the last mouse click position.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-LastMousePos-of-mglGraphAB"></a><u>Widget option of mglGraphAB:</u> <code>mglPoint</code> <b>LastMousePos</b></dt>
+<dd><p>Last position of mouse click.
+</p></dd></dl>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plotter-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_5.html#Widget-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_5.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_5.html
new file mode 100644
index 0000000..bb55314
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_5.html
@@ -0,0 +1,504 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: 5. Widget classes</title>
+
+<meta name="description" content="MathGL 1.11: 5. Widget classes">
+<meta name="keywords" content="MathGL 1.11: 5. Widget classes">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Widget-classes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_4.html#mglGraphAB-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fl_005fMathGL-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_6.html#mglData-class" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+
+<a name="Widget-classes-1"></a>
+<h1 class="chapter">5. Widget classes</h1>
+<a name="index-mglGraphFLTK"></a>
+<a name="index-mglGraphQT"></a>
+<a name="index-mglGraphGLUT"></a>
+<a name="index-Fl_005fMathGL"></a>
+<a name="index-QMathGL"></a>
+<a name="index-window-2"></a>
+<a name="index-widgets-1"></a>
+
+<p>There are set of &ldquo;window&rdquo; classes for making a window with MathGL graphics: <code>mglGraphFLTK</code>, <code>mglGraphQT</code>, <code>mglGraphGLUT</code>. All these classes allow user to show, rotate, export, and change view of the plot using keyboard. Most of them (except <code>mglGraphGLUT</code>) also have toolbar and menu for simplifying plot manipulation. Usually these classes (except <code>mglGraphGLUT</code>) are derived from <code>mglGraphZB</code> class and have a &ldquo;connected&rdquo; class for widget in corresponding window library. All window classes have the same set of functions (see section <a href="mathgl_en_4.html#mglGraphAB-class">mglGraphAB class</a>). Below the full list of classes with short comments.
+</p>
+<dl>
+<dt><a name="index-mglGraphFLTK-1"></a><u>Class:</u> <b>mglGraphFLTK</b></dt>
+<dd><p>Class <code>mglGraphFLTK</code> adds the possibility to create plotting window with the help of FLTK library. It allows one to show, rotate, export, and change view of the plot by keyboard, menu and toolbar. &ldquo;Corresponding&rdquo; widget class is <code>Fl_MathGL</code>. Class is defined in <code>#include &lt;mgl/mgl_fltk.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fl_005fMathGL-1"></a><u>Class:</u> <b>Fl_MathGL</b></dt>
+<dd><p>Class is FLTK widget for displaying the MathGL output. Class is defined in <code>#include &lt;mgl/mgl_fltk.h&gt;</code>.
+</p></dd></dl>
+
+<div class="float">
+<img src="fltk.png" alt="fltk">
+
+</div><p><strong>Example of FLTK window with MathGL plot.
+</strong>
+</p>
+<dl>
+<dt><a name="index-mglGraphQT-1"></a><u>Class:</u> <b>mglGraphQT</b></dt>
+<dd><p>Class <code>mglGraphQT</code> adds the possibility to create plotting window with the help of QT library. It allows one to show, rotate, export, and change view of the plot by keyboard, menu and toolbar. &ldquo;Corresponding&rdquo; widget class is <code>QMathGL</code>. Class is defined in <code>#include &lt;mgl/mgl_qt.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-QMathGL-1"></a><u>Class:</u> <b>QMathGL</b></dt>
+<dd><p>Class is Qt widget for dysplaying the MathGL output. Class is defined in <code>#include &lt;mgl/mgl_qt.h&gt;</code>.
+</p></dd></dl>
+
+<div class="float">
+<img src="qt.png" alt="qt">
+
+</div><p><strong>Example of Qt window with MathGL plot.
+</strong>
+</p>
+<dl>
+<dt><a name="index-mglGraphGLUT-1"></a><u>Class:</u> <b>mglGraphGLUT</b></dt>
+<dd><p>Class <code>mglGraphGLUT</code> adds the possibility to create plotting window with the help of GLUT library. It allows one to show, rotate, export, and change view of the plot only by keyboard. Class is defined in <code>#include &lt;mgl/mgl_glut.h&gt;</code>.
+</p></dd></dl>
+
+<div class="float">
+<img src="glut.png" alt="glut">
+
+</div><p><strong>Example of GLUT window with MathGL plot.
+</strong>
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Fl_005fMathGL-class">5.1 Fl_MathGL class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#QMathGL-class">5.2 QMathGL class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Fl_005fMathGL-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Widget-classes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#QMathGL-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Widget-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Widget-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_6.html#mglData-class" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fl_005fMathGL-class-1"></a>
+<h2 class="section">5.1 Fl_MathGL class</h2>
+<a name="index-Fl_005fMathGL-2"></a>
+<a name="index-widgets-2"></a>
+
+<p>Class is FLTK widget which display MathGL graphics (defined in <code>#include &lt;mgl/mgl_fltk.h&gt;</code>).
+</p>
+<dl>
+<dt><a name="index-set_005fdraw-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_draw</b><i> (<code>mglDraw *</code>dr)</i></dt>
+<dd><p>Sets drawing function from a class inherited from <code>mglDraw</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-update-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>update</b><i> (<code>mglGraph *</code>gr=<code>NULL</code>)</i></dt>
+<dd><p>Update (redraw) plot using grapher <var>gr</var> (built-in by default).
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fangle-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_angle</b><i> (<code>float</code> t, <code>float</code> p)</i></dt>
+<dd><p>Set angles for additional plot rotation
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fstate-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_state</b><i> (<code>int</code> f)</i></dt>
+<dd><p>Set bitwise flags for general state (1-Alpha, 2-Light)
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fstate-on-Fl_005fMathGL-1"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_state</b><i> (<code>bool</code> z, <code>bool</code> r)</i></dt>
+<dd><p>Set flags for handling mouse: <var>z</var>=<code>true</code> allow zooming, <var>r</var>=<code>true</code> allow rotation/shifting/perspective and so on.
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fzoom-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_zoom</b><i> (<code>float</code> X1, <code>float</code> Y1, <code>float</code> X2, <code>float</code> Y2)</i></dt>
+<dd><p>Set zoom in/out region
+</p></dd></dl>
+<dl>
+<dt><a name="index-get_005fzoom-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>get_zoom</b><i> (<code>float *</code>X1, <code>float *</code>Y1, <code>float *</code>X2, <code>float *</code>Y2)</i></dt>
+<dd><p>Get zoom in/out region
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fpopup-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_popup</b><i> (<code>const Fl_Menu_Item *</code>pmenu, <code>Fl_Widget *</code>w, <code>void *</code>v)</i></dt>
+<dd><p>Set popup menu pointer
+</p></dd></dl>
+<dl>
+<dt><a name="index-get_005fgraph-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>mglGraph *</code> <b>get_graph</b><i> ()</i></dt>
+<dd><p>Get pointer to grapher
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-tet_005fval-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>Fl_Valuator *</code> <b>tet_val</b></dt>
+<dd><p>Pointer to external tet-angle validator.
+</p></dd></dl>
+<dl>
+<dt><a name="index-phi_005fval-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>Fl_Valuator *</code> <b>phi_val</b></dt>
+<dd><p>Pointer to external phi-angle validator.
+</p></dd></dl>
+<dl>
+<dt><a name="index-graph-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>mglGraphAB *</code> <b>graph</b></dt>
+<dd><p>Pointer to grapher
+</p></dd></dl>
+<dl>
+<dt><a name="index-draw_005fpar-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>void *</code> <b>draw_par</b></dt>
+<dd><p>Parameters for drawing function mglGraph::DrawFunc.
+</p></dd></dl>
+<dl>
+<dt><a name="index-draw_005ffunc-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>int (*</code> <b>draw_func</b><i> <code>)(mglGraph *gr, void *par)</code></i></dt>
+<dd><p>Drawing function for window procedure. It should return the number of frames.
+</p></dd></dl>
+
+<hr size="6">
+<a name="QMathGL-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fl_005fMathGL-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_6.html#mglData-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Widget-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Widget-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_6.html#mglData-class" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="QMathGL-class-1"></a>
+<h2 class="section">5.2 QMathGL class</h2>
+<a name="index-QMathGL-2"></a>
+<a name="index-widgets-3"></a>
+
+<p>Class is Qt widget which display MathGL graphics (defined in <code>#include &lt;mgl/mgl_qt.h&gt;</code>).
+</p>
+<dl>
+<dt><a name="index-setDraw-on-QMathGL"></a><u>Method on QMathGL:</u> <code>void</code> <b>setDraw</b><i> (<code>mglDraw *</code>dr)</i></dt>
+<dd><p>Sets drawing functions from a class inherited from <code>mglDraw</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-setDraw-on-QMathGL-1"></a><u>Method on QMathGL:</u> <code>void</code> <b>setDraw</b><i> (<code>int (*</code>draw)(<code>mglGraph *</code>gr, <code>void *</code>p), <code>void *</code>par=<code>NULL</code>)</i></dt>
+<dd><p>Sets the drawing function <var>draw</var>. There is support of a list of plots (frames). So as one can prepare a set of frames at first and redraw it fast later (but it requires more memory). Function should return positive number of frames for the list or zero if it will plot directly. Parameter <var>par</var> contains pointer to data for the plotting function <var>draw</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-setGraph-on-QMathGL"></a><u>Method on QMathGL:</u> <code>void</code> <b>setGraph</b><i> (<code>mglGraphAB *</code>gr)</i></dt>
+<dd><p>Set pointer to external grapher (instead of built-in <code>mglGraphZB</code>). Note that QMathGL will automatically delete this object at destruction or at new <code>setGraph()</code> call.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-setPopup-on-QMathGL"></a><u>Method on QMathGL:</u> <code>void</code> <b>setPopup</b><i> (<code>QMenu *</code>p)</i></dt>
+<dd><p>Set popup menu pointer.
+</p></dd></dl>
+<dl>
+<dt><a name="index-setSize-on-QMathGL"></a><u>Method on QMathGL:</u> <code>void</code> <b>setSize</b><i> (<code>int</code> w, <code>int</code> h)</i></dt>
+<dd><p>Set widget/picture sizes
+</p></dd></dl>
+<dl>
+<dt><a name="index-getRatio-on-QMathGL"></a><u>Method on QMathGL:</u> <code>double</code> <b>getRatio</b><i> ()</i></dt>
+<dd><p>Return aspect ratio of the picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-getPer-on-QMathGL"></a><u>Method on QMathGL:</u> <code>int</code> <b>getPer</b><i> ()</i></dt>
+<dd><p>Get perspective value in percents.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getPhi-on-QMathGL"></a><u>Method on QMathGL:</u> <code>int</code> <b>getPhi</b><i> ()</i></dt>
+<dd><p>Get Phi-angle value in degrees.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getTet-on-QMathGL"></a><u>Method on QMathGL:</u> <code>int</code> <b>getTet</b><i> ()</i></dt>
+<dd><p>Get Theta-angle value in degrees.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getAlpha-on-QMathGL"></a><u>Method on QMathGL:</u> <code>bool</code> <b>getAlpha</b><i> ()</i></dt>
+<dd><p>Get transparency state.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getLight-on-QMathGL"></a><u>Method on QMathGL:</u> <code>bool</code> <b>getLight</b><i> ()</i></dt>
+<dd><p>Get lightning state.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getZoom-on-QMathGL"></a><u>Method on QMathGL:</u> <code>bool</code> <b>getZoom</b><i> ()</i></dt>
+<dd><p>Get mouse zooming state.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getRotate-on-QMathGL"></a><u>Method on QMathGL:</u> <code>bool</code> <b>getRotate</b><i> ()</i></dt>
+<dd><p>Get mouse rotation state.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-void-on-QMathGL"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> refresh ()</i></dt>
+<dd><p>Redraw saved bitmap without executing drawing function.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-1"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> update (<code>mglGraph *</code>gr=<code>NULL</code>)</i></dt>
+<dd><p>Update picture by executing drawing function.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-2"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> copy ()</i></dt>
+<dd><p>Copy graphics to clipboard.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-3"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setPer (<code>int</code> val)</i></dt>
+<dd><p>Set perspective value.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-4"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setPhi (<code>int</code> val)</i></dt>
+<dd><p>Set Phi-angle value.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-5"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setTet (<code>int</code> val)</i></dt>
+<dd><p>Set Theta-angle value.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-6"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setAlpha (<code>bool</code> val)</i></dt>
+<dd><p>Switch on/off transparency.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-7"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setLight (<code>bool</code> val)</i></dt>
+<dd><p>Switch on/off lightning.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-8"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setZoom (<code>bool</code> val)</i></dt>
+<dd><p>Switch on/off mouse zooming.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-9"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setRotate (<code>bool</code> val)</i></dt>
+<dd><p>Switch on/off mouse rotation.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-10"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> zoomIn ()</i></dt>
+<dd><p>Zoom in graphics.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-11"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> zoomOut ()</i></dt>
+<dd><p>Zoom out graphics.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-12"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> restore ()</i></dt>
+<dd><p>Restore zoom and rotation to default values.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-13"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> reload ()</i></dt>
+<dd><p>Reload data and redraw graphics.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-14"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> shiftLeft ()</i></dt>
+<dd><p>Shift graphics to left direction.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-15"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> shiftRight ()</i></dt>
+<dd><p>Shift graphics to right direction.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-16"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i>shiftUp  ()</i></dt>
+<dd><p>Shift graphics to up direction.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-17"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> shiftDown ()</i></dt>
+<dd><p>Shift graphics to down direction.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-18"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportPNG (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Export current picture to PNG file.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-19"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportPNGs (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Export current picture to PNG file (no transparency).
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-20"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportJPG (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Export current picture to JPEG file.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-21"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportBPS (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Export current picture to bitmap EPS file.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-22"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportEPS (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Export current picture to vector EPS file.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-23"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportSVG (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Export current picture to SVG file.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-24"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportIDTF (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Export current picture to IDTF file.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-25"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setMGLFont (<code>QString</code> path)</i></dt>
+<dd><p>Restore (<var>path</var>=<code>&quot;&quot;</code>) or load font for graphics.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-26"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> print ()</i></dt>
+<dd><p>Print current picture
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-27"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> adjust ()</i></dt>
+<dd><p>Adjust plot size to fill entire window. This function is executed only if graph is mglGraphQT instance.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-28"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> nextSlide ()</i></dt>
+<dd><p>Show next slide. This function is executed only if graph is mglGraphQT instance.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-29"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> prevSlide ()</i></dt>
+<dd><p>Show previous slide. This function is executed only if graph is mglGraphQT instance.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-30"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> animation (<code>bool</code> st=<code>true</code>)</i></dt>
+<dd><p>Start animation. This function is executed only if graph is mglGraphQT instance.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-31"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> about ()</i></dt>
+<dd><p>Show about information.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-32"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> aboutQt ()</i></dt>
+<dd><p>Show information about Qt version.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-void-on-QMathGL-33"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> phiChanged (<code>int</code> val)</i></dt>
+<dd><p>Phi angle changed (by mouse or by toolbar).
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-34"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> tetChanged (<code>int</code> val)</i></dt>
+<dd><p>Tet angle changed (by mouse or by toolbar).
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-35"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> perChanged (<code>int</code> val)</i></dt>
+<dd><p>Perspective changed (by mouse or by toolbar).
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-36"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> alphaChanged (<code>bool</code> val)</i></dt>
+<dd><p>Transparency changed (by toolbar).
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-37"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> lightChanged (<code>bool</code> val)</i></dt>
+<dd><p>Lighting changed (by toolbar).
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-38"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> zoomChanged (<code>bool</code> val)</i></dt>
+<dd><p>Zooming changed (by toolbar).
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-39"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> rotateChanged (<code>bool</code> val)</i></dt>
+<dd><p>Rotation changed (by toolbar).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-appName-of-QMathGL"></a><u>Widget option of QMathGL:</u> <code>QString</code> <b>appName</b></dt>
+<dd><p>Application name for message boxes.
+</p></dd></dl>
+<dl>
+<dt><a name="index-autoResize-of-QMathGL"></a><u>Widget option of QMathGL:</u> <code>bool</code> <b>autoResize</b></dt>
+<dd><p>Allow auto resizing (default is false).
+</p></dd></dl>
+<dl>
+<dt><a name="index-animDelay-of-QMathGL"></a><u>Widget option of QMathGL:</u> <code>int</code> <b>animDelay</b></dt>
+<dd><p>Animation delay in ms.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Widget-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_6.html#mglData-class" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_6.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_6.html
new file mode 100644
index 0000000..10db6af
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_6.html
@@ -0,0 +1,1140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: 6. mglData class</title>
+
+<meta name="description" content="MathGL 1.11: 6. mglData class">
+<meta name="keywords" content="MathGL 1.11: 6. mglData class">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="mglData-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_5.html#QMathGL-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Public-variables" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_5.html#Widget-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglData-class-1"></a>
+<h1 class="chapter">6. mglData class</h1>
+
+<p>Class for working with data array. This class is defined in <code>#include &lt;mgl/mgl_data.h&gt;</code>. The class has functions for easy and safe allocation, resizing, loading and saving, modifying of data arrays. Also it can numerically differentiate and integrate data, interpolate, fill data by formula and so on. Class supports data with dimensions up to 3 (like function of 3 variables &ndash; x,y,z). The internal representation of numbers is float. Float type was chosen because it has smaller size in memory and usually it has enough precision in plotting purposes.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Public-variables">6.1 Public variables</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Create-and-delete">6.2 Create and delete</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fill">6.3 Fill</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Rearrange">6.4 Rearrange</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#File-I_002fO">6.5 File I/O</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Make-another-data">6.6 Make another data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Change-data">6.7 Change data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Interpolation">6.8 Interpolation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Informational-functions">6.9 Informational functions</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Operators">6.10 Operators</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Global-functions">6.11 Global functions</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Public-variables"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglData-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Create-and-delete" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Public-variables-1"></a>
+<h2 class="section">6.1 Public variables</h2>
+
+<dl>
+<dt><a name="index-a-of-mglData"></a><u>Variable of mglData:</u> <code>float *</code> <b>a</b></dt>
+<dd><p>Data array itself. The flat data representation is used. For example, matrix [nx x ny] is presented as flat (1d-) array with length nx*ny. The element with indexes {i, j, k} is a[i+nx*j+nx*ny*k] (indexes are zero based).
+</p></dd></dl>
+<dl>
+<dt><a name="index-nx-of-mglData"></a><u>Variable of mglData:</u> <code>int</code> <b>nx</b></dt>
+<dd><p>Number of points in 1st dimensions (&rsquo;x&rsquo; dimension).
+</p></dd></dl>
+<dl>
+<dt><a name="index-ny-of-mglData"></a><u>Variable of mglData:</u> <code>int</code> <b>ny</b></dt>
+<dd><p>Number of points in 2nd dimensions (&rsquo;y&rsquo; dimension).
+</p></dd></dl>
+<dl>
+<dt><a name="index-nz-of-mglData"></a><u>Variable of mglData:</u> <code>int</code> <b>nz</b></dt>
+<dd><p>Number of points in 3d dimensions (&rsquo;z&rsquo; dimension).
+</p></dd></dl>
+<dl>
+<dt><a name="index-id-of-mglData"></a><u>Variable of mglData:</u> <code>char *</code> <b>id</b></dt>
+<dd><p>Column (or slice if nz&gt;1) names &ndash; one character per column.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Create-and-delete"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Public-variables" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fill" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Create-and-delete-1"></a>
+<h2 class="section">6.2 Create and delete</h2>
+<a name="index-mglData"></a>
+<a name="index-Set"></a>
+
+<dl>
+<dt><a name="index--on-mglData"></a><u>Constructor on mglData:</u> <b><code></code></b><i> mglData (<code>int</code> mx=<code>1</code>, <code>int</code> my=<code>1</code>, <code>int</code> mz=<code>1</code>)</i></dt>
+<dd><p>Default constructor. Allocates the memory for data array and initializes it by zero.
+</p></dd></dl>
+<dl>
+<dt><a name="index--on-mglData-1"></a><u>Constructor on mglData:</u> <b><code></code></b><i> mglData (<code>const char *</code>fname)</i></dt>
+<dd><p>Initializes the data by reading from file.
+</p></dd></dl>
+<dl>
+<dt><a name="index--on-mglData-2"></a><u>Constructor on mglData:</u> <b><code></code></b><i> mglData (<code>const mglData</code> &amp;dat)</i></dt>
+<dd><p>Initiates by other <code>mglData</code> instance.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Create"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Create</b><i> (<code>int</code> mx, <code>int</code> my=<code>1</code>, <code>int</code> mz=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fcreate"></a><u>C function:</u> <code>void</code> <b>mgl_data_create</b><i> (<code>HMDT</code> dat, <code>int</code> mx, <code>int</code> my, <code>int</code> mz)</i></dt>
+<dd><p>Creates or recreates the array with specified size and fills it by zero. This function does nothing if one of parameters <var>mx</var>, <var>my</var>, <var>mz</var> is zero or negative.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-1"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const float *</code>A, <code>int</code> NX, <code>int</code> NY=<code>1</code>, <code>int</code> NZ=<code>1</code>)</i></dt>
+<dt><a name="index-Set-2"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const double *</code>A, <code>int</code> NX, <code>int</code> NY=<code>1</code>, <code>int</code> NZ=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005ffloat"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_float</b><i> (<code>HMDT</code> dat, <code>const float *</code>A, <code>int</code> NX, <code>int</code> NY, <code>int</code> NZ)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fdouble"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_double</b><i> (<code>HMDT</code> dat, <code>const double *</code>A, <code>int</code> NX, <code>int</code> NY, <code>int</code> NZ)</i></dt>
+<dd><p>Allocates memory and copies the data from the <strong>flat</strong> <code>float*</code> or <code>double*</code> array.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-3"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const float **</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-Set-4"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const double **</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005ffloat2"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_float2</b><i> (<code>HMDT</code> dat, <code>const float **</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fdouble2"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_double2</b><i> (<code>HMDT</code> dat, <code>const double **</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dd><p>Allocates memory and copies the data from the <code>float**</code> or <code>double**</code> array with dimensions <var>N1</var>, <var>N2</var>, i.e. from array defined as <code>float a[N1][N2];</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-5"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const float ***</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-Set-6"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const double ***</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005ffloat3"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_float3</b><i> (<code>HMDT</code> dat, <code>const float ***</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fdouble3"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_double3</b><i> (<code>HMDT</code> dat, <code>const double ***</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dd><p>Allocates memory and copies the data from the <code>float***</code> or <code>double***</code> array with dimensions <var>N1</var>, <var>N2</var>, <var>N3</var>, i.e. from array defined as <code>float a[N1][N2][N3];</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-7"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>gsl_vector *</code>v)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fvector"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_vector</b><i> (<code>HMDT</code> dat, <code>gsl_vector *</code>v)</i></dt>
+<dd><p>Allocates memory and copies the data from the <code>gsl_vector *</code> structure.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-8"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>gsl_matrix *</code>m)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fmatrix"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_matrix</b><i> (<code>HMDT</code> dat, <code>gsl_matrix *</code>m)</i></dt>
+<dd><p>Allocates memory and copies the data from the <code>gsl_matrix *</code> structure.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-9"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>inline void</code> <b>Set</b><i> (<code>const mglData &amp;</code>from)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset"></a><u>C function:</u> <code>void</code> <b>mgl_data_set</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> from)</i></dt>
+<dd><p>Copies the data from mglData instance <var>from</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-10"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const std::vector&lt;int&gt; &amp;</code>d)</i></dt>
+<dt><a name="index-Set-11"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const std::vector&lt;float&gt; &amp;</code>d)</i></dt>
+<dt><a name="index-Set-12"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const std::vector&lt;double&gt; &amp;</code>d)</i></dt>
+<dd><p>Allocates memory and copies the data from the <code>std::vector&lt;T&gt;</code> array.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-Set-13"></a><u>Method on <code>mglData</code> (C+, Python):</u> <code>void</code> <b>Set</b><i> (<code>const char *</code>str, <code>int</code> NX, <code>int</code> NY=<code>1</code>, <code>int</code> NZ=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fvalues"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_values</b><i> (<code>const char *</code>str, <code>int</code> NX, <code>int</code> NY, <code>int</code> NZ)</i></dt>
+<dd><p>Allocates memory and scanf the data from the string.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fill"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Create-and-delete" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Rearrange" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fill-1"></a>
+<h2 class="section">6.3 Fill</h2>
+<a name="index-Fill"></a>
+<a name="index-Modify"></a>
+
+<dl>
+<dt><a name="index-Fill-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Fill</b><i> (<code>float</code> x1, <code>float</code> x2, <code>char</code> dir=<code>'x'</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005ffill"></a><u>C function:</u> <code>void</code> <b>mgl_data_fill</b><i> (<code>HMDT</code> dat, <code>float</code> x1, <code>float</code> x2, <code>char</code> dir)</i></dt>
+<dd><p>Equidistantly fills the data values to range [<var>x1</var>, <var>x2</var>] in direction <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;,&lsquo;<samp>y</samp>&rsquo;,&lsquo;<samp>z</samp>&rsquo;}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fill-2"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Fill</b><i> (<code>const char *</code>eq, <code>mglPoint</code> Min, <code>mglPoint</code> Max, <code>const mglData *</code>vdat=0, <code>const mglData *</code>wdat=0)</i></dt>
+<dt><a name="index-mgl_005fdata_005ffill-1"></a><u>C function:</u> <code>void</code> <b>mgl_data_fill</b><i> (<code>HMGL</code> gr, <code>HMDT</code> dat, <code>const char *</code>eq, <code>const HMDT *</code>vdat, <code>const HMDT *</code>wdat)</i></dt>
+<dd><p>Fills the value of array according to the formula in string <var>eq</var>. Formula is an arbitrary expression depending  on variables &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; are supposed to be normalized in range <var>Min</var> x <var>Max</var> (in difference from <code>Modify</code> functions). Variable &lsquo;<samp>u</samp>&rsquo; is the original value of the array. Variables &lsquo;<samp>v</samp>&rsquo; and &lsquo;<samp>w</samp>&rsquo; are values of <var>vdat</var>, <var>wdat</var> which can be <code>NULL</code> (i.e. can be omitted).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Modify-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Modify</b><i> (<code>const char *</code>eq, <code>int</code> dim=<code>0</code>)</i></dt>
+<dt><a name="index-Modify-2"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Modify</b><i> (<code>const char *</code>eq, <code>const mglData &amp;</code>v)</i></dt>
+<dt><a name="index-Modify-3"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Modify</b><i> (<code>const char *</code>eq, <code>const mglData &amp;</code>v, <code>const mglData &amp;</code>w)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmodify"></a><u>C function:</u> <code>void</code> <b>mgl_data_modify</b><i> (<code>HMDT</code> dat, <code>const char *</code>eq, <code>int</code> dim)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmodify_005fvw"></a><u>C function:</u> <code>void</code> <b>mgl_data_modify_vw</b><i> (<code>HMDT</code> dat, <code>const char *</code>eq, <code>const HMDT</code> v, <code>const HMDT</code> w)</i></dt>
+<dd><p>Fills the value of array according to the formula in string <var>eq</var>. Formula is an arbitrary expression depending  on variables &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; are supposed to be normalized in range [0,1] (in difference from <code>Fill</code> functions). Variable &lsquo;<samp>u</samp>&rsquo; is the original value of the array. Variables &lsquo;<samp>v</samp>&rsquo; and &lsquo;<samp>w</samp>&rsquo; are values of <var>vdat</var>, <var>wdat</var> which can be <code>NULL</code> (i.e. can be omitted). If <var>dim</var>&gt;0 is specified then modification will be fulfilled only for slices &gt;=<var>dim</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Put"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Put</b><i> (<code>float</code> val, <code>int</code> i=<code>-1</code>, <code>int</code> j=<code>-1</code>, <code>int</code> k=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fput_005fval"></a><u>mglData:</u> <code>void</code> <b>mgl_data_put_val</b><i> (<code>HMDT</code> a, <code>float</code> val, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Function sets value(s) of array a[<var>i</var>, <var>j</var>, <var>k</var>] = <var>val</var>. Negative indexes <var>i</var>, <var>j</var>, <var>k</var>=-1 set the value <var>val</var> to whole range in corresponding direction(s). For example, <code>Put(val,-1,0,-1);</code> sets a[i,0,j]=<var>val</var> for i=0...(nx-1), j=0...(nz-1).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Put-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Put</b><i> (<code>const mglData &amp;</code>v, <code>int</code> i=<code>-1</code>, <code>int</code> j=<code>-1</code>, <code>int</code> k=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fput_005fdat"></a><u>mglData:</u> <code>void</code> <b>mgl_data_put_dat</b><i> (<code>HMDT</code> a, <code>const HMDT</code> v, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Function copies value(s) from array <var>v</var> to the range of original array. Negative indexes <var>i</var>, <var>j</var>, <var>k</var>=-1 set the range in corresponding direction(s). At this minor dimensions of array <var>v</var> should be large than corresponding dimensions of this array. For example, <code>Put(v,-1,0,-1);</code> sets a[i,0,j]=v.ny&gt;nz ? v[i,j] : v[i], where i=0...(nx-1), j=0...(nz-1) and condition v.nx&gt;=nx is true.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fdata_005fset_005fvalue"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_value</b><i> (<code>HMDT</code> dat, <code>float</code> v, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Sets the value in specified cell of the data with border checking.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fdata_005fget_005fvalue"></a><u>C function:</u> <code>float</code> <b>mgl_data_get_value</b><i> (<code>HMDT</code> dat, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Gets the value in specified cell of the data with border checking.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetNx"></a><u>Method on <code>mglData</code> (C+, Python):</u> <code>void</code> <b>GetNx</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fdata_005fget_005fnx"></a><u>C function:</u> <code>float</code> <b>mgl_data_get_nx</b><i> (<code>HMDT</code> dat)</i></dt>
+<dd><p>Gets the x-size of the data.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetNy"></a><u>Method on <code>mglData</code> (C+, Python):</u> <code>void</code> <b>GetNy</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fdata_005fget_005fny"></a><u>C function:</u> <code>float</code> <b>mgl_data_get_ny</b><i> (<code>HMDT</code> dat)</i></dt>
+<dd><p>Gets the y-size of the data.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetNz"></a><u>Method on <code>mglData</code> (C+, Python):</u> <code>void</code> <b>GetNz</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fdata_005fget_005fnz"></a><u>C function:</u> <code>float</code> <b>mgl_data_get_nz</b><i> (<code>HMDT</code> dat)</i></dt>
+<dd><p>Gets the z-size of the data.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Rearrange"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fill" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#File-I_002fO" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Rearrange-1"></a>
+<h2 class="section">6.4 Rearrange</h2>
+<a name="index-Rearrange"></a>
+<a name="index-Extend"></a>
+<a name="index-Transpose"></a>
+<a name="index-Squeeze"></a>
+<a name="index-Crop"></a>
+<a name="index-InsertRows"></a>
+<a name="index-InsertColumns"></a>
+<a name="index-InsertSlices"></a>
+<a name="index-DeleteRows"></a>
+<a name="index-DeleteColumns"></a>
+<a name="index-DeleteSlices"></a>
+<a name="index-Insert"></a>
+<a name="index-Delete"></a>
+
+<dl>
+<dt><a name="index-Rearrange-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Rearrange</b><i> (<code>int</code> mx, <code>int</code> my=<code>0</code>, <code>int</code> mz=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005frearrange"></a><u>C function:</u> <code>void</code> <b>mgl_data_rearrange</b><i> (<code>HMDT</code> dat, <code>int</code> mx, <code>int</code> my, <code>int</code> mz)</i></dt>
+<dd><p>Rearrange dimensions without changing data array so that resulting sizes should  be <var>mx</var>*<var>my</var>*<var>mz</var> &lt; nx*ny*nz. If some of parameter <var>my</var> or <var>mz</var> are zero then it will be selected to optimal fill of data array. For example, if <var>my</var>=0 then it will be change to <var>my</var>=nx*ny*nz/<var>mx</var> and <var>mz</var> will be 1.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Extend-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Extend</b><i> (<code>int</code> n1, <code>int</code> n2=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fextend"></a><u>C function:</u> <code>void</code> <b>mgl_data_extend</b><i> (<code>HMDT</code> dat, <code>int</code> n1, <code>int</code> n2)</i></dt>
+<dd><p>Increase the dimensions of the data by inserting new (|<var>n1</var>|+1)-th slices after (for <var>n1</var>&gt;0) or before (for <var>n1</var>&lt;0) of existed one. It is possible to insert 2 dimensions simultaneously for 1d data by using parameter <var>n2</var>. Data to new slices is copy from existed one. For example, for <var>n1</var>&gt;0 new array will be 
+a_ij^new = a_i^old where j=0...<var>n1</var>. Correspondingly, for <var>n1</var>&lt;0 new array will be a_ij^new = a_j^old where i=0...|<var>n1</var>|.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Transpose-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Transpose</b><i> (<code>const char *</code>dim=<code>&quot;yx&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005ftranspose"></a><u>C function:</u> <code>void</code> <b>mgl_data_transpose</b><i> (<code>const char *</code>dim)</i></dt>
+<dd><p>Transposes (shift order of) dimensions of the data. New order of dimensions is specified int string <var>dim</var>. This function may be useful also for the reading of one-dimensional data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Squeeze-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Squeeze</b><i> (<code>int</code> rx, <code>int</code> ry=<code>1</code>, <code>int</code> rz=<code>1</code>, <code>bool</code> smooth=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsqueeze"></a><u>C function:</u> <code>void</code> <b>mgl_data_squeeze</b><i> (<code>HMDT</code> dat, <code>int</code> rx, <code>int</code> ry, <code>int</code> rz, <code>int</code> smooth)</i></dt>
+<dd><p>Reduces the data size by excluding data elements which indexes are not divisible by <var>rx</var>, <var>ry</var>, <var>rz</var> correspondingly. Parameter <var>smooth</var> set to use smoothing
+(i.e. out[i]=\sum_{j=i,i+r} a[j]/r) or not (i.e. out[i]=a[j*r]).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Crop-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Crop</b><i> (<code>int</code> n1, <code>int</code> n2, <code>char</code> dir=<code>'x'</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fcrop"></a><u>C function:</u> <code>void</code> <b>mgl_data_crop</b><i> (<code>HMDT</code> dat, <code>int</code> n1, <code>int</code> n2, <code>char</code> dir)</i></dt>
+<dd><p>Cuts off edges of the data <var>i</var>&lt;<var>n1</var> and <var>i</var>&gt;<var>n2</var> if <var>n2</var>&gt;0 or <var>i</var>&gt;<code>n[xyz]</code>-<var>n2</var> if <var>n2</var>&lt;=0 along direction <var>dir</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-InsertRows-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>InsertRows</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>, <code>const char *</code>eq=<code>NULL</code>)</i></dt>
+<dd><p>Insert <var>num</var> rows (slice along y-direction) at position <var>at</var> and fill it by formula <var>eq</var> (if <var>eq</var>!=0) or by zeros.
+</p></dd></dl>
+<dl>
+<dt><a name="index-InsertColumns-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>InsertColumns</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>, <code>const char *</code>eq=<code>NULL</code>)</i></dt>
+<dd><p>Insert <var>num</var> columns (slice along x-direction) at position <var>at</var> and fill it by formula <var>eq</var> (if <var>eq</var>!=0) or by zeros.
+</p></dd></dl>
+<dl>
+<dt><a name="index-InsertSlices-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>InsertSlices</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>, <code>const char *</code>eq=<code>NULL</code>)</i></dt>
+<dd><p>Insert <var>num</var> slices (slice along z-direction) at position <var>at</var> and fill it by formula <var>eq</var> (if <var>eq</var>!=0) or by zeros.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DeleteRows-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>DeleteRows</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>)</i></dt>
+<dd><p>Delete <var>num</var> rows (slice along y-direction) at position <var>at</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-DeleteColumns-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>DeleteColumns</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>)</i></dt>
+<dd><p>Delete <var>num</var> columns (slice along x-direction) at position <var>at</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-DeleteSlices-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>DeleteSlices</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>)</i></dt>
+<dd><p>Delete <var>num</var> slices (slice along z-direction) at position <var>at</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Insert-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Insert</b><i> (<code>char</code> dir, <code>int</code> pos=<code>0</code>, <code>int</code> num=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005finsert"></a><u>C function:</u> <code>void</code> <b>mgl_data_insert</b><i> (<code>HMDT</code> dat, <code>char</code> dir, <code>int</code> pos, <code>char</code> num)</i></dt>
+<dd><p>Insert <var>num</var> slices along <var>dir</var>-direction at position <var>pos</var> and fill it by zeros.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Delete-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Delete</b><i> (<code>char</code> dir, <code>int</code> pos=<code>0</code>, <code>int</code> num=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdelete"></a><u>C function:</u> <code>void</code> <b>mgl_data_delete</b><i> (<code>HMDT</code> dat, <code>char</code> dir, <code>int</code> pos, <code>char</code> num)</i></dt>
+<dd><p>Delete <var>num</var> slices along <var>dir</var>-direction at position <var>pos</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="File-I_002fO"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Rearrange" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Make-another-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="File-I_002fO-1"></a>
+<h2 class="section">6.5 File I/O</h2>
+<a name="index-Read"></a>
+<dl>
+<dt><a name="index-Read-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Read</b><i> (<code>const char *</code>fname)</i></dt>
+<dt><a name="index-mgl_005fdata_005fread"></a><u>C function:</u> <code>void</code> <b>mgl_data_read</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname)</i></dt>
+<dd><p>Reads data from tab-separated text file with auto determining sizes of the data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Read-2"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Read</b><i> (<code>const char *</code>fname, <code>int</code> mx, <code>int</code> my=<code>1</code>, <code>int</code> mz=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fread_005fdim"></a><u>C function:</u> <code>void</code> <b>mgl_data_read_dim</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname, <code>int</code> mx, <code>int</code> my, <code>int</code> mz)</i></dt>
+<dd><p>Reads data from text file with specified data sizes. This function does nothing if one of parameters <var>mx</var>, <var>my</var> or <var>mz</var> is zero or negative.
+</p></dd></dl>
+<a name="index-ReadMat"></a>
+<dl>
+<dt><a name="index-ReadMat-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>ReadMat</b><i> (<code>const char *</code>fname, <code>int</code> dim=<code>2</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fread_005fmat"></a><u>C function:</u> <code>void</code> <b>mgl_data_read_mat</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname, <code>int</code> dim)</i></dt>
+<dd><p>Read data from text file with size specified at beginning of the file by first <var>dim</var> numbers. At this, variable <var>dim</var> set data dimensions.
+</p></dd></dl>
+
+<a name="index-ReadRange"></a>
+<dl>
+<dt><a name="index-ReadRange-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>ReadRange</b><i> (<code>const char *</code>templ, <code>float</code> from, <code>float</code> to, <code>float</code> step=<code>1.f</code>, <code>bool</code> as_slice=<code>false</code>)</i></dt>
+<dd><p>Join data arrays from several text files. The file names are determined by function call <code>sprintf(fname,templ,val);</code>, where <var>val</var> changes from <var>from</var> to <var>to</var> with step <var>step</var>. The data load one-by-one in the same slice if <var>as_slice</var>=<code>false</code> or as slice-by-slice if <var>as_slice</var>=<code>true</code>.
+</p></dd></dl>
+<a name="index-ReadAll"></a>
+<dl>
+<dt><a name="index-ReadAll-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>ReadAll</b><i> (<code>const char *</code>templ, <code>bool</code> as_slice=<code>false</code>)</i></dt>
+<dd><p>Join data arrays from several text files which filenames satisfied the template <var>templ</var> (for example, <var>templ</var>=<code>&quot;t_*.dat&quot;</code>). The data load one-by-one in the same slice if <var>as_slice</var>=<code>false</code> or as slice-by-slice if <var>as_slice</var>=<code>true</code>.
+</p></dd></dl>
+
+<a name="index-Save"></a>
+<dl>
+<dt><a name="index-Save-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Save</b><i> (<code>const char *</code>fname, <code>int</code> ns=<code>-1</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fsave"></a><u>C function:</u> <code>void</code> <b>mgl_data_save</b><i> (<code>const HMDT</code> dat, <code>const char *</code>fname, <code>int</code> ns)</i></dt>
+<dd><p>Saves the whole data array (for <var>ns</var>=<code>-1</code>) or only <var>ns</var>-th slice to text file.
+</p></dd></dl>
+
+<a name="index-ReadHDF"></a>
+<dl>
+<dt><a name="index-ReadHDF-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>ReadHDF</b><i> (<code>const char *</code>fname, <code>const char *</code>dname)</i></dt>
+<dd><p>Reads data array named <var>dname</var> from HDF5 or HDF4 file. This function does nothing if NO_HDF5|NO_HDF4 was defined during library compilation.
+</p></dd></dl>
+<a name="index-SaveHDF"></a>
+<dl>
+<dt><a name="index-SaveHDF-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>SaveHDF</b><i> (<code>const char *</code>fname, <code>const char *</code>dname, <code>bool</code> rewrite=<code>false</code>) <code>const</code></i></dt>
+<dd><p>Saves data array named <var>dname</var> from HDF5 or HDF4 file. This function does nothing if NO_HDF5|NO_HDF4 was defined during library compilation.
+</p></dd></dl>
+
+<a name="index-Import"></a>
+<dl>
+<dt><a name="index-Import-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Import</b><i> (<code>const char *</code>fname, <code>const char *</code>scheme, <code>float</code> v1=<code>0</code>, float v2=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fimport"></a><u>C function:</u> <code>void</code> <b>mgl_data_import</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname, <code>const char *</code>scheme, <code>float</code> v1, float v2)</i></dt>
+<dd><p>Reads data from bitmap file (now support only PNG format). The RGB values of bitmap pixels are transformed to float values in range [<var>v1</var>, <var>v2</var>] using color scheme <var>scheme</var> (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>).
+</p></dd></dl>
+<a name="index-Export"></a>
+<dl>
+<dt><a name="index-Export-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Export</b><i> (<code>const char *</code>fname, <code>const char *</code>scheme, <code>float</code> v1=<code>0</code>, float v2=<code>0</code>, <code>int</code> ns=<code>-1</code>) const</i></dt>
+<dt><a name="index-mgl_005fdata_005fexport"></a><u>C function:</u> <code>void</code> <b>mgl_data_export</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname, <code>const char *</code>scheme, <code>float</code> v1, float v2, <code>int</code> ns) const</i></dt>
+<dd><p>Saves data matrix (or <code>ns</code>-th slice for 3d data) to bitmap file (now support only PNG format). The data values are transformed from range [<var>v1</var>, <var>v2</var>] to RGB pixels of bitmap using color scheme <var>scheme</var> (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>). If <var>v1</var>&gt;=<var>v2</var> then the values of <var>v1</var>, <var>v2</var> are automatically determined as minimal and maximal value of the data array.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Make-another-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#File-I_002fO" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Change-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Make-another-data-1"></a>
+<h2 class="section">6.6 Make another data</h2>
+
+<a name="index-SubData"></a>
+<dl>
+<dt><a name="index-SubData-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>SubData</b><i> (<code>int</code> xx, <code>int</code> yy=<code>-1</code>, <code>int</code> zz=<code>-1</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fsubdata"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_subdata</b><i> (<code>const HMDT</code> dat, <code>int</code> xx, <code>int</code> yy, <code>int</code> zz)</i></dt>
+<dd><p>Extracts sub-array data from the original data array keeping fixed positive index. For example <code>SubData(-1,2)</code> extracts 3d row (indexes are zero based), <code>SubData(4,-1)</code> extracts 5th column, <code>SubData(-1,-1,3)</code> extracts 4th slice and so on.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SubData-2"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>SubData</b><i> (<code>const mglData &amp;</code>xx, <code>const mglData &amp;</code>yy, <code>const mglData &amp;</code>zz) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fsubdata_005fext"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_subdata_ext</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> xx, <code>const HMDT</code> yy, <code>const HMDT</code> zz)</i></dt>
+<dd><p>Extracts sub-array data from the original data array for indexes specified by arrays <var>xx</var>, <var>yy</var>, <var>zz</var> (indirect access). The resulting array have the same dimensions as input arrays for 2D and 3D arguments. This function work like previous one for 1D arguments (or numbers). The dimensions of all argument must be the same if they are 2D or 3D arrays.
+</p></dd></dl>
+
+<a name="index-Column"></a>
+<dl>
+<dt><a name="index-Column-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Column</b><i> (<code>const char *</code>eq) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fcolumn"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_column</b><i> (<code>const HMDT</code> dat, <code>const char *</code>eq)</i></dt>
+<dd><p>Get column (or slice) of the data filled by formula <var>eq</var> of other named columns. For example, <code>Column(&quot;n*w^2/exp(t)&quot;);</code>. The column ids must be defined first by <code>SetColumnId()</code> function.
+</p></dd></dl>
+
+<a name="index-SetColumnId"></a>
+<dl>
+<dt><a name="index-SetColumnId-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>SetColumnId</b><i> (<code>const char *</code>ids)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fid"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_id</b><i> (<code>HMDT</code> dat, <code>const char *</code>ids)</i></dt>
+<dd><p>Set the symbol id for data columns. The string must contain one symbol &rsquo;a&rsquo;...&rsquo;z&rsquo; per column (without spaces).
+</p></dd></dl>
+
+<a name="index-Trace"></a>
+<dl>
+<dt><a name="index-Trace-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Trace</b><i> () <code>const</code></i></dt>
+<dd><p>Gets array of diagonal elements a[i,i] (for 2D case) or a[i,i,i] (for 3D case) where i=0...nx-1. Function return copy of itself for 1D case. Data array must have dimensions ny,nz &gt;= nx or ny,nz = 1.
+</p></dd></dl>
+
+<a name="index-Hist-4"></a>
+<dl>
+<dt><a name="index-Hist-5"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Hist</b><i> (<code>int</code> n, <code>float</code> v1=<code>0</code>, <code>float</code> v2=<code>1</code>, <code>int</code> nsub=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fhist"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_hist</b><i> (<code>const HMDT</code> dat, <code>int</code> n, <code>float</code> v1, <code>float</code> v2, <code>int</code> nsub)</i></dt>
+<dd><p>Creates <var>n</var>-th points distribution of the data values in range [<var>v1</var>, <var>v2</var>]. Parameter <var>nsub</var> define the number of additional interpolated points (for smoothness of histogram).
+</p></dd></dl>
+<dl>
+<dt><a name="index-Hist-6"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Hist</b><i> (<code>const mglData &amp;</code>w, <code>int</code> n, <code>float</code> v1=<code>0</code>, <code>float</code> v2=<code>1</code>, <code>int</code> nsub=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fhist_005fw"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_hist_w</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> w, <code>int</code> n, <code>float</code> v1, <code>float</code> v2, <code>int</code> nsub)</i></dt>
+<dd><p>Creates <var>n</var>-th points distribution of the data values in range [<var>v1</var>, <var>v2</var>]. Array <var>w</var> specifies weights of the data elements. Parameter <var>nsub</var> define the number of additional interpolated points (for smoothness of histogram).
+</p></dd></dl>
+
+<a name="index-Momentum"></a>
+<dl>
+<dt><a name="index-Momentum-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Momentum</b><i> (<code>char</code> dir, <code>const char *</code>how) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmomentum"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_momentum</b><i> (<code>const HMDT</code> dat, <code>char</code> dir, <code>const char *</code>how)</i></dt>
+<dd><p>Get momentum (1D-array) of the data along direction <var>dir</var>. String <var>how</var> contain kind of momentum. The momentum is defined like as
+res_k = \sum_ij how(x_i,y_j,z_k) a_ij/ \sum_ij a_ij
+if <var>var</var>=&lsquo;<samp>z</samp>&rsquo; and so on. Coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; are data indexes normalized in range [0,1].
+</p></dd></dl>
+
+<a name="index-Sum"></a>
+<dl>
+<dt><a name="index-Sum-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Sum</b><i> (<code>const char *</code>dir) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fsum"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_sum</b><i> (<code>const HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Gets array which is the result of summation in given direction or direction(s).
+</p></dd></dl>
+<a name="index-Max-1"></a>
+<dl>
+<dt><a name="index-Max-2"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Max</b><i> (<code>const char *</code>dir) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmax_005fdir"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_max_dir</b><i> (<code>const HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Gets array which is the maximal data values in given direction or direction(s).
+</p></dd></dl>
+<a name="index-Min-1"></a>
+<dl>
+<dt><a name="index-Min-2"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Min</b><i> (<code>const char *</code>dir) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmin_005fdir"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_min_dir</b><i> (<code>const HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Gets array which is the maximal data values in given direction or direction(s).
+</p></dd></dl>
+
+<a name="index-Combine"></a>
+<dl>
+<dt><a name="index-Combine-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Combine</b><i> (<code>const mglData &amp;</code>a) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fcombine"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_combine</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> a)</i></dt>
+<dd><p>Return direct multiplication of arrays (like, res[i,j] = this[i]*a[j] and so on).
+</p></dd></dl>
+
+<a name="index-Evaluate"></a>
+<dl>
+<dt><a name="index-Evaluate-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Evaluate</b><i> (<code>const mglData &amp;</code>idat, <code>bool</code> norm=<code>true</code>) <code>const</code></i></dt>
+<dt><a name="index-Evaluate-2"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Evaluate</b><i> (<code>const mglData &amp;</code>idat, <code>const mglData &amp;</code>jdat, <code>bool</code> norm=<code>true</code>) <code>const</code></i></dt>
+<dt><a name="index-Evaluate-3"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Evaluate</b><i> (<code>const mglData &amp;</code>idat, <code>const mglData &amp;</code>jdat, <code>const mglData &amp;</code>kdat, <code>bool</code> norm=<code>true</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fevaluate_005fi"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_evaluate_i</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> idat, <code>int</code> norm)</i></dt>
+<dt><a name="index-mgl_005fdata_005fevaluate_005fij"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_evaluate_ij</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> idat, <code>const HMDT</code> jdat, <code>int</code> norm)</i></dt>
+<dt><a name="index-mgl_005fdata_005fevaluate_005fijk"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_evaluate_ijk</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> idat, <code>const HMDT</code> jdat, <code>const HMDT</code> kdat, <code>int</code> norm)</i></dt>
+<dd><p>Get array which values is result of interpolation of original array for coordinates from other arrays. All dimensions must be the same for data <var>idat</var>, <var>jdat</var>, <var>kdat</var>. Coordinates from <var>idat</var>, <var>jdat</var>, <var>kdat</var> are supposed to be normalized in range [0,1] (if <var>norm</var>=<code>true</code>) or in ranges [0,nx], [0,ny], [0,nz] correspondingly.
+</p></dd></dl>
+
+<a name="index-Resize"></a>
+<dl>
+<dt><a name="index-Resize-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Resize</b><i> (<code>int</code> mx, <code>int</code> my=<code>1</code>, <code>int</code> mz=<code>1</code>, <code>float</code> x1=<code>0</code>, <code>float</code> x2=<code>1</code>, <code>float</code> y1=<code>0</code>, <code>float</code> y2=<code>1</code>, <code>float</code> z1=<code>0</code>, <code>float</code> z2=<code>1</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fresize"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_resize</b><i> (<code>const HMDT</code> dat, <code>int</code> mx, <code>int</code> my, <code>int</code> mz)</i></dt>
+<dt><a name="index-mgl_005fdata_005fresize_005fbox"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_resize_box</b><i> (<code>const HMDT</code> dat, <code>int</code> mx, <code>int</code> my, <code>int</code> mz, <code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2, <code>float</code> z1, <code>float</code> z2)</i></dt>
+<dd><p>Resizes the data to new size <var>mx</var>, <var>my</var>, <var>mz</var> from box (part) [<var>x1</var>,<var>x2</var>] x [<var>y1</var>,<var>y2</var>] x [<var>z1</var>,<var>z2</var>] of original array. Initially x,y,z coordinates are supposed to be in [0,1].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Change-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Make-another-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Interpolation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Change-data-1"></a>
+<h2 class="section">6.7 Change data</h2>
+
+<p>These functions change the data in some direction like differentiations, integrations and so on. The direction in which the change will applied is specified by the string parameter, which may contain &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo; characters for 1-st, 2-nd and 3-d dimension correspondengly.
+</p>
+<a name="index-CumSum"></a>
+<dl>
+<dt><a name="index-CumSum-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>CumSum</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fcumsum"></a><u>C function:</u> <code>void</code> <b>mgl_data_cumsum</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Cumulative summation of the data in given direction or directions.
+</p></dd></dl>
+
+<a name="index-Integral"></a>
+<dl>
+<dt><a name="index-Integral-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Integral</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fintegral"></a><u>C function:</u> <code>void</code> <b>mgl_data_integral</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Integrates (like cumulative summation) the data in given direction or directions.
+</p></dd></dl>
+
+<a name="index-Diff"></a>
+<dl>
+<dt><a name="index-Diff-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Diff</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiff"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_diff</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Differentiates the data in given direction or directions.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Diff-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Diff</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y)</i></dt>
+<dt><a name="index-Diff-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Diff</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiff_005fpar"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_diff_par</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> x, <code>const HMDT</code>y, <code>const HMDT</code>z)</i></dt>
+<dd><p>Differentiates the data specified parametrically in direction <var>x</var> with <var>y</var>, <var>z</var>=constant. Parametrical differentiation uses the formula (for 2D case): <em>da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j)</em> where <em>a_i=da/di, a_j=da/dj</em> denotes usual differentiation along 1st and 2nd dimensions. The similar formula is used for 3D case. Note, that you may change the order of arguments &ndash; for example, if you have 2D data a(i,j) which depend on coordinates {x(i,j), y(i,j)} then usual derivative along &lsquo;<samp>x</samp>&rsquo; will be <code>Diff(x,y);</code> and usual derivative along &lsquo;<samp>y</samp>&rsquo; will be <code>Diff(y,x);</code>.
+</p></dd></dl>
+
+
+<a name="index-Diff2"></a>
+<dl>
+<dt><a name="index-Diff2-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Diff2</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiff2"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_diff2</b><i> (<code>const char *</code>dir)</i></dt>
+<dd><p>Double-differentiates (like Laplace operator) the data in given direction.
+</p></dd></dl>
+
+<a name="index-SinFFT"></a>
+<dl>
+<dt><a name="index-SinFFT-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>SinFFT</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsinfft"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_sinfft</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Do Sine transform of the data in given direction or directions. The Sine transform is <em>\sum a_i \sin(k i)</em>.
+</p></dd></dl>
+
+<a name="index-CosFFT"></a>
+<dl>
+<dt><a name="index-CosFFT-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>CosFFT</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fcosfft"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_cosfft</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Do Cosine transform of the data in given direction or directions. The Cosine transform is <em>\sum a_i \cos(k i)</em>.
+</p></dd></dl>
+
+<a name="index-Hankel"></a>
+<dl>
+<dt><a name="index-Hankel-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Hankel</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fhankel"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_hankel</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Do Hankel transform of the data in given direction or directions. The Hankel transform is <em>\sum a_i J_0(k i)</em>.
+</p></dd></dl>
+
+
+<a name="index-Swap"></a>
+<dl>
+<dt><a name="index-Swap-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Swap</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fswap"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_swap</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Swaps the left and right part of the data in given direction (useful for Fourier spectrum).
+</p></dd></dl>
+
+<a name="index-Roll"></a>
+<dl>
+<dt><a name="index-Roll-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Roll</b><i> (<code>char</code> dir, <code>num</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005froll"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_roll</b><i> (<code>HMDT</code> dat, <code>char</code> dir, <code>num</code>)</i></dt>
+<dd><p>Rolls the data along direction <var>dir</var>. Resulting array will be out[i] = ini[(i+num)%nx] if <code>dir='x'</code>.
+</p></dd></dl>
+
+<a name="index-Mirror"></a>
+<dl>
+<dt><a name="index-Mirror-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Mirror</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmirror"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_mirror</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Mirror the left-to-right part of the data in given direction. Looks like change the value index <var>i</var>-&gt;<var>n-i</var>.
+</p></dd></dl>
+
+<a name="index-Sew"></a>
+<dl>
+<dt><a name="index-Sew-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Sew</b><i> (<code>const char *</code>dir, <code>float</code> da=<code>2*M_PI</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsew"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_sew</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir, <code>float</code> da)</i></dt>
+<dd><p>Remove value steps (like phase jumps after inverse trigonometric functions) with period <var>da</var> in given direction.
+</p></dd></dl>
+
+<a name="index-Smooth"></a>
+<dl>
+<dt><a name="index-Smooth-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Smooth</b><i> (<code>int</code> Type, <code>const char *</code>dir, <code>float</code> delta=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsmooth"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_smooth</b><i> (<code>HMDT</code> dat, <code>int</code> Type, <code>float</code> delt, <code>const char *</code>dirs)</i></dt>
+<dd><p>Smooths the data on specified direction or directions by method <var>Type</var>. Now 4 methods are supported: <code>SMOOTH_NONE</code> does nothing for <var>delta</var>=0 or approaches data to zero with the step <var>delta</var>, <code>SMOOTH_LINE_3</code> linear averaging by 3 points, <code>SMOOTH_LINE_5</code> linear averaging by 5 points, <code>SMOOTH_QUAD_5</code> quadratic averaging by 5 points. Parameter <var>delta</var> forbids to change values of array more than <var>delta</var> from the original ones. String <var>dirs</var> specifies the dimensions which will be smoothed. It may contain characters: &rsquo;x&rsquo; for 1st dimension, &rsquo;y&rsquo; for 2nd dimension, &rsquo;z&rsquo; for 3d dimension.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Smooth-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Smooth</b><i> (<code>const char *</code>dir)</i></dt>
+<dd><p>Smooths the data on specified direction(s). This is the same as <code>Smooth()</code> but argument <var>Type</var> is specified in string as &lsquo;<samp>0</samp>&rsquo; for <code>SMOOTH_NONE</code>, &lsquo;<samp>3</samp>&rsquo; for <code>SMOOTH_LINE_3</code>, &lsquo;<samp>5</samp>&rsquo; for <code>SMOOTH_LINE_5</code>. If string <var>dir</var> don&rsquo;t contain digits &lsquo;<samp>035</samp>&rsquo; then <var>Type</var>=<code>SMOOTH_QUAD_5</code> is used.
+</p></dd></dl>
+
+<a name="index-Envelop"></a>
+<dl>
+<dt><a name="index-Envelop-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Envelop</b><i> (<code>char</code> dir=<code>'x'</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fenvelop"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_envelop</b><i> (<code>HMDT</code> dat, <code>char</code> dir)</i></dt>
+<dd><p>Find envelop for data values along direction <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-Norm"></a>
+<dl>
+<dt><a name="index-Norm-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Norm</b><i> (<code>float</code> v1=<code>0</code>, <code>float</code> v2=<code>1</code>, <code>bool</code> sym=<code>false</code>, <code>int</code> dim=<code>0</code>)</i></dt>
+<dd><p>Normalizes the data to range [<var>v1</var>,<var>v2</var>]. If flag <var>sym</var>=<code>true</code> then symmetrical interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used. Modification will be applied only for slices &gt;=<var>dim</var>.
+</p></dd></dl>
+
+<a name="index-NormSl"></a>
+<dl>
+<dt><a name="index-NormSl-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>NormSl</b><i> (<code>float</code> v1=<code>0</code>, <code>float</code> v2=<code>1</code>, <code>char</code> dir=<code>'z'</code>, <code>bool</code> keep_en=<code>true</code>, <code>bool</code> sym=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fnorm_005fslice"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_norm_slice</b><i> (<code>HMDT</code> dat, <code>float</code> v1, <code>float</code> v2, <code>char</code> dir, <code>int</code> keep_en, <code>int</code> sym)</i></dt>
+<dd><p>Normalizes data slice-by-slice along direction <var>dir</var> the data in slices to range [<var>v1</var>,<var>v2</var>]. If flag <var>sym</var>=<code>true</code> then symmetrical interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used. If <var>keep_en</var> is set then maximal value of k-th slice will be limited by 
+<em>\sqrt\sum a_ij(k)/\sum a_ij(0)</em>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Interpolation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Change-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Informational-functions" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Interpolation-1"></a>
+<h2 class="section">6.8 Interpolation</h2>
+<a name="index-Spline"></a>
+<dl>
+<dt><a name="index-Spline-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Spline</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fspline"></a><u>C function:</u> <code>float</code> <b>mgl_data_spline</b><i> (<code>const HMDT</code> dat, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dd><p>Interpolates data by cubic spline to the given point <var>x</var> in [0...nx-1], <var>y</var> in [0...ny-1], <var>z</var> in [0...nz-1].
+</p></dd></dl>
+<a name="index-Spline1"></a>
+<dl>
+<dt><a name="index-Spline1-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Spline1</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fspline1"></a><u>C function:</u> <code>float</code> <b>mgl_data_spline1</b><i> (<code>const HMDT</code> dat, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dd><p>Interpolates data by cubic spline to the given point <var>x</var>, <var>y</var>, <var>z</var> which assumed to be normalized in range [0, 1].
+</p></dd></dl>
+<a name="index-Linear"></a>
+<dl>
+<dt><a name="index-Linear-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Linear</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005flinear"></a><u>C function:</u> <code>float</code> <b>mgl_data_linear</b><i> (<code>const HMDT</code> dat, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dd><p>Interpolates data by linear function to the given point <var>x</var> in [0...nx-1], <var>y</var> in [0...ny-1], <var>z</var> in [0...nz-1].
+</p></dd></dl>
+<a name="index-Linear1"></a>
+<dl>
+<dt><a name="index-Linear1-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Linear1</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005flinear1"></a><u>C function:</u> <code>float</code> <b>mgl_data_linear1</b><i> (<code>const HMDT</code> dat, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dd><p>Interpolates data by linear function to the given point <var>x</var>, <var>y</var>, <var>z</var> which assumed to be normalized in range [0, 1].
+</p></dd></dl>
+<a name="index-v"></a>
+<dl>
+<dt><a name="index-v-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>v</b><i> (<code>int</code> i, <code>int</code> j=<code>0</code>, <code>int</code> k=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fget_005fvalue-1"></a><u>C function:</u> <code>float</code> <b>mgl_data_get_value</b><i> (<code>const HMDT</code> dat, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Gets the value in specified cell of the data with border checking.
+</p></dd></dl>
+<a name="index-Spline5"></a>
+<dl>
+<dt><a name="index-Spline5-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Spline5</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> &amp;dx, <code>float</code> &amp;dy, <code>float</code> &amp;dz) <code>const</code></i></dt>
+<dd><p>Interpolate by 5-th order splain the data to given point <var>x</var>, <var>y</var>, <var>z</var> which normalized in range [0, 1] and evaluate its derivatives.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fdata_005fvalue"></a><u>C function:</u> <code>float *</code> <b>mgl_data_value</b><i> (<code>HMDT</code> dat, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Gets the pointer to data element.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fdata_005fdata"></a><u>C function:</u> <code>const float *</code> <b>mgl_data_data</b><i> (<code>const HMDT</code> dat)</i></dt>
+<dd><p>Gets the pointer to internal data array.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Informational-functions"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Interpolation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Operators" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Informational-functions-1"></a>
+<h2 class="section">6.9 Informational functions</h2>
+<a name="index-PrintInfo"></a>
+<dl>
+<dt><a name="index-PrintInfo-1"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>PrintInfo</b><i> (<code>char *</code>buf, <code>bool</code> all=<code>false</code>) <code>const</code></i></dt>
+<dd><p>Print information about the data (sizes and momentum) to string <var>buf</var>. Parameter <var>all</var> set to print most of information (if <code>true</code>) or just basic one like dimensions, maximal an minimal values.
+</p></dd></dl>
+<dl>
+<dt><a name="index-PrintInfo-2"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>PrintInfo</b><i> (<code>FILE *</code>fp) <code>const</code></i></dt>
+<dd><p>Print information about the data (sizes and momentum) to FILE (for example, stdout).
+</p></dd></dl>
+
+<a name="index-Maximal"></a>
+<dl>
+<dt><a name="index-Maximal-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Maximal</b><i> () <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmax"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_max</b><i> (<code>const HMDT</code> dat)</i></dt>
+<dd><p>Gets maximal value of the data.
+</p></dd></dl>
+<a name="index-Minimal"></a>
+<dl>
+<dt><a name="index-Minimal-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Minimal</b><i> () <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmin"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_min</b><i> (<code>HMDT</code> dat) <code>const</code></i></dt>
+<dd><p>Gets minimal value of the data.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Maximal-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Maximal</b><i> (<code>int</code> &amp;i, <code>int</code> &amp;j, <code>int</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmax_005fint"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_max_int</b><i> (<code>const HMDT</code> dat, <code>int</code> *i, <code>int</code> *j, <code>int</code> *k)</i></dt>
+<dd><p>Gets maximal value of the data and its position in the array to variables <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Minimal-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Minimal</b><i> (<code>int</code> &amp;i, <code>int</code> &amp;j, <code>int</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmin_005fint"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_min_int</b><i> (<code>const HMDT</code> dat, <code>int</code> *i, <code>int</code> *j, <code>int</code> *k)</i></dt>
+<dd><p>Gets minimal value of the data and its position in the array to variables <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Maximal-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Maximal</b><i> (<code>float</code> &amp;i, <code>float</code> &amp;j, <code>float</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmax_005freal"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_max_real</b><i> (<code>const HMDT</code> dat, <code>float</code> *x, <code>float</code> *y, <code>float</code> *z)</i></dt>
+<dd><p>Gets maximal value of the data and its approximated (interpolated) position to variables <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Minimal-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Minimal</b><i> (<code>float</code> &amp;i, <code>float</code> &amp;j, <code>float</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmin_005freal"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_min_real</b><i> (<code>const HMDT</code> dat, <code>float</code> *x, <code>float</code> *y, <code>float</code> *z)</i></dt>
+<dd><p>Gets minimal value of the data and its approximated (interpolated) position to variables <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+
+<a name="index-Momentum-2"></a>
+<dl>
+<dt><a name="index-Momentum-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Momentum</b><i> (<code>char</code> dir, <code>float</code> &amp;m, <code>float</code> &amp;w) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmomentum_005fmw"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_momentum_mw</b><i> (<code>const HMDT</code> dat, <code>char</code> dir, <code>float</code> *m, <code>float</code> *w)</i></dt>
+<dd><p>Gets zero-momentum (energy, <em>I=\sum a_i</em>) and write first momentum (median, <em>m = \sum \xi_i a_i/I</em>) and second momentum (width, <em>w^2 = \sum (\xi_i-m)^2 a_i/I</em>) to variables. Here <em>\xi</em> is corresponding coordinate if <var>dir</var> is &lsquo;<samp>'x'</samp>&rsquo;, &lsquo;<samp>'y'</samp>&rsquo; or &lsquo;<samp>'z'</samp>&rsquo;. Otherwise median is <em>m = \sum a_i/N</em>, width is <em>w^2 = \sum (a_i-m)^2/N</em>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Momentum-4"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>float</code> <b>Momentum</b><i> (<code>char</code> dir, <code>float</code> &amp;m, <code>float</code> &amp;w, <code>float</code> &amp;s, <code>float</code> &amp;k) <code>const</code></i></dt>
+<dd><p>Gets zero-momentum (energy, <em>I=\sum a_i</em>) and write first momentum (median, <em>m = \sum \xi_i a_i/I</em>), second momentum (width, <em>w^2 = \sum (\xi_i-m)^2 a_i/I</em>), third momentum (skewness, <em>s = \sum (\xi_i-m)^3 a_i/ I w^3</em>) and fourth momentum (kurtosis, <em>k = \sum (\xi_i-m)^4 a_i / 3 I w^4</em>) to variables. Here <em>\xi</em> is corresponding coordinate if <var>dir</var> is &lsquo;<samp>'x'</samp>&rsquo;, &lsquo;<samp>'y'</samp>&rsquo; or &lsquo;<samp>'z'</samp>&rsquo;. Otherwise median is <em>m = \sum a_i/N</em>, width is <em>w^2 = \sum (a_i-m)^2/N</em> and so on.
+</p></dd></dl>
+
+<a name="index-Find"></a>
+<dl>
+<dt><a name="index-Find-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Find</b><i> (<code>const char *</code>cond, <code>int</code> &amp;i, <code>int</code> &amp;j, <code>int</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005ffirst"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_first</b><i> (<code>const HMDT</code> dat, <code>const char *</code>cond, <code>int</code> *i, <code>int</code> *j, <code>int</code> *k)</i></dt>
+<dd><p>Find position (after specified in <var>i</var>, <var>j</var>, <var>k</var>) of first nonzero value of formula <var>cond</var>. Function return the data value at found position.
+</p></dd></dl>
+<a name="index-Last"></a>
+<dl>
+<dt><a name="index-Last-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Last</b><i> (<code>const char *</code>cond, <code>int</code> &amp;i, <code>int</code> &amp;j, <code>int</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005flast"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_last</b><i> (<code>const HMDT</code> dat, <code>const char *</code>cond, <code>int</code> *i, <code>int</code> *j, <code>int</code> *k)</i></dt>
+<dd><p>Find position (before specified in <var>i</var>, <var>j</var>, <var>k</var>) of last nonzero value of formula <var>cond</var>. Function return the data value at found position.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Find-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>int</code> <b>Find</b><i> (<code>const char *</code>cond, <code>char</code> dir, <code>int</code> i=<code>0</code>, <code>int</code> j=<code>0</code>, <code>int</code> k=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005ffind"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_find</b><i> (<code>const HMDT</code> dat, <code>const char *</code>cond, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Return position of first in direction <var>dir</var> nonzero value of formula <var>cond</var>. The search is started from point {i,j,k}.
+</p></dd></dl>
+<a name="index-FindAny"></a>
+<dl>
+<dt><a name="index-FindAny-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>bool</code> <b>FindAny</b><i> (<code>const char *</code>cond) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005ffind_005fany"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_find_any</b><i> (<code>const HMDT</code> dat, <code>const char *</code>cond)</i></dt>
+<dd><p>Determines if any nonzero value of formula in the data array.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Operators"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Informational-functions" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Global-functions" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Operators-1"></a>
+<h2 class="section">6.10 Operators</h2>
+
+<dl>
+<dt><a name="index-operator_003d"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dd><p>Copies data from other variable.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a_003d"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator*=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmul_005fdat"></a><u>C function:</u> <code>void</code> <b>mgl_data_mul_dat</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> d)</i></dt>
+<dd><p>Multiplies the data by the other one for each element.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f_003d"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator/=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiv_005fdat"></a><u>C function:</u> <code>void</code> <b>mgl_data_div_dat</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> d)</i></dt>
+<dd><p>Divides the data by the other one for each element.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002b_003d"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator+=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fadd_005fdat"></a><u>C function:</u> <code>void</code> <b>mgl_data_add_dat</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> d)</i></dt>
+<dd><p>Adds the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d_003d"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator-=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsub_005fdat"></a><u>C function:</u> <code>void</code> <b>mgl_data_sub_dat</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> d)</i></dt>
+<dd><p>Subtracts the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a_003d-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator*=</b><i> (<code>float</code> d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmul_005fnum"></a><u>C function:</u> <code>void</code> <b>mgl_data_mul_num</b><i> (<code>HMDT</code> dat, <code>float</code> d)</i></dt>
+<dd><p>Multiplies each element by the number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f_003d-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator/=</b><i> (<code>float</code> d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiv_005fnum"></a><u>C function:</u> <code>void</code> <b>mgl_data_div_num</b><i> (<code>HMDT</code> dat, <code>float</code> d)</i></dt>
+<dd><p>Divides each element by the number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002b_003d-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator+=</b><i> (<code>float</code> d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fadd_005fnum"></a><u>C function:</u> <code>void</code> <b>mgl_data_add_num</b><i> (<code>HMDT</code> dat, <code>float</code> d)</i></dt>
+<dd><p>Adds the number to each element.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d_003d-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator-=</b><i> (<code>float</code> d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsub_005fnum"></a><u>C function:</u> <code>void</code> <b>mgl_data_sub_num</b><i> (<code>HMDT</code> dat, <code>float</code> d)</i></dt>
+<dd><p>Subtracts the number to each element.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-operator_002b"></a><u>Library Function:</u> mglData <b>operator+</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Adds the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002b-1"></a><u>Library Function:</u> mglData <b>operator+</b><i> (<code>float</code> a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Adds the number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002b-2"></a><u>Library Function:</u> mglData <b>operator+</b><i> (<code>const mglData &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Adds the number.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002d"></a><u>Library Function:</u> mglData <b>operator-</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Subtracts the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d-1"></a><u>Library Function:</u> mglData <b>operator-</b><i> (<code>float</code> a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Subtracts from the number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d-2"></a><u>Library Function:</u> mglData <b>operator-</b><i> (<code>const mglData &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Subtracts the number.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002a"></a><u>Library Function:</u> mglData <b>operator*</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Multiplies by the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-1"></a><u>Library Function:</u> mglData <b>operator*</b><i> (<code>float</code> a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Multiplies by the number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-2"></a><u>Library Function:</u> mglData <b>operator*</b><i> (<code>const mglData &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Multiplies by the number.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002f"></a><u>Library Function:</u> mglData <b>operator/</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Divides by the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f-1"></a><u>Library Function:</u> mglData <b>operator/</b><i> (<code>const mglData &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Divides by the number.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Global-functions"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Operators" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Global-functions-1"></a>
+<h2 class="section">6.11 Global functions</h2>
+
+<p>These functions are not methods of <code>mglData</code> class. However it have additional functionality to handle data. So I put it in this chapter.
+</p>
+<dl>
+<dt><a name="index-mglTransform"></a><u>Global function:</u> <code>mglData</code> <b>mglTransform</b><i> (<code>const mglData &amp;</code>real, <code>const mglData &amp;</code>imag, <code>const char *</code>type)</i></dt>
+<dt><a name="index-mgl_005ftransform"></a><u>C function:</u> <code>HMDT</code> <b>mgl_transform</b><i> (<code>const HMDT</code> real, <code>const HMDT</code> imag, <code>const char *</code>type)</i></dt>
+<dd><p>Do integral transformation of complex data <var>real</var>, <var>imag</var> on specified direction. The order of transformations is specified in string <var>type</var>: first character for x-dimension, second one for y-dimension, third one for z-dimension. The possible character are: &lsquo;<samp>f</samp>&rsquo; is forward Fourier transformation, &lsquo;<samp>i</samp>&rsquo; is inverse Fourier transformation, &lsquo;<samp>s</samp>&rsquo; is Sine transform, &lsquo;<samp>c</samp>&rsquo; is Cosine transform, &lsquo;<samp>h</samp>&rsquo; is Hankel transform, &lsquo;<samp>n</samp>&rsquo; or &lsquo;<samp> </samp>&rsquo; is no transformation.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglTransformA"></a><u>Global function:</u> <code>mglData</code> <b>mglTransformA</b><i> <code>const mglData &amp;</code>ampl, <code>const mglData &amp;</code>phase, <code>const char *</code>type)</i></dt>
+<dt><a name="index-mgl_005ftransform_005fa"></a><u>C function:</u> <code>HMDT</code> <b>mgl_transform_a</b><i> <code>const HMDT</code> ampl, <code>const HMDT</code> phase, <code>const char *</code>type)</i></dt>
+<dd><p>The same as previous but with specified amplitude <var>ampl</var> and phase <var>phase</var> of complex numbers.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglSTFA"></a><u>Global function:</u> <code>mglData</code> <b>mglSTFA</b><i> (<code>const mglData &amp;</code>real, <code>const mglData &amp;</code>imag, <code>int</code> dn, <code>char</code> dir=<code>'x'</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fstfa"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_stfa</b><i> (<code>const HMDT</code> real, <code>const HMDT</code> imag, <code>int</code> dn,<code>char</code> dir)</i></dt>
+<dd><p>Short time Fourier transformation for real and imaginary parts. Output  is amplitude of partial Fourier of length <var>dn</var>. For example if <var>dir</var>=&lsquo;<samp>x</samp>&rsquo;, result will have size {int(nx/dn), dn, ny} and it will contain <em>res[i,j,k]=|\sum_d^dn exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn</em>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglPDE"></a><u>Global function:</u> <code>mglData</code> <b>mglPDE</b><i> (<code>const char *</code>ham, <code>const mglData &amp;</code>ini_re, <code>const mglData &amp;</code>ini_im, <code>mglPoint</code> Min, <code>mglPoint</code> Max, <code>float</code> dz=<code>0.1</code>, <code>float</code> k0=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005fpde_005fsolve"></a><u>C function:</u> <code>HMDT</code> <b>mgl_pde_solve</b><i> (<code>HMGL</code> gr, <code>const char *</code>ham, <code>const HMDT</code> ini_re, <code>const HMDT</code> ini_im, <code>float</code> dz, <code>float</code> k0)</i></dt>
+<dd><p>Solves equation du/dz = i*k0*<var>ham</var>(p,q,x,y,z,|u|)[u], where p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators. Parameters <var>ini_re</var>, <var>ini_im</var> specify real and imaginary part of initial field distribution. Parameters <var>Min</var>, <var>Max</var> set the bounding box for the solution. Note, that really this ranges are increased by factor 3/2 for purpose of reducing reflection from boundaries. Parameter <var>dz</var> set the step along evolutionary coordinate z. At this moment, simplified form of function <var>ham</var> is supported &ndash; all &ldquo;mixed&rdquo; terms (like &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) are excluded. For example, in 2D case this function is effectively <em>ham = f(p,z) + g(x,z,u)</em>. However commutable combinations (like &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy) are allowed. Here variable &lsquo;<samp>u</samp>&rsquo; is used for field amplitude |u|. This allow one solve nonlinear problems &ndash; for example, for nonlinear Shrodinger equation you may set <code>ham=&quot;p^2 + q^2 - u^2&quot;</code>. You may specify imaginary part for wave absorption, like <code>ham = &quot;p^2 + i*x*(x&gt;0)&quot;</code>, but only if dependence on variable &lsquo;<samp>i</samp>&rsquo; is linear (i.e. <em>ham = hre+i*him</em>). See section <a href="mathgl_en_9.html#PDE-sample">PDE sample</a>, for sample code and picture.  See section <a href="mathgl_en_9.html#PDE-sample">PDE sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglRay"></a><u>Global function:</u> <code>mglData</code> <b>mglRay</b><i> (<code>const char *</code>ham, <code>mglPoint</code> r0, <code>mglPoint</code> p0, <code>float</code> dt=<code>0.1</code>, <code>float</code> tmax=<code>10</code>)</i></dt>
+<dt><a name="index-mgl_005fray_005ftrace"></a><u>C function:</u> <code>HMDT</code> <b>mgl_ray_trace</b><i> (<code>const char *</code>ham, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> px, <code>float</code> py, <code>float</code> pz, <code>float</code> dt, <code>float</code> tmax)</i></dt>
+<dd><p>Solves GO ray equation like dr/dt = d <var>ham</var>/dp, dp/dt = -d <var>ham</var>/dr. This is Hamiltonian equations for particle trajectory in 3D case. Here <var>ham</var> is Hamiltonian which may depend on coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, momentums &lsquo;<samp>p</samp>&rsquo;=px, &lsquo;<samp>q</samp>&rsquo;=py, &lsquo;<samp>v</samp>&rsquo;=pz and time &lsquo;<samp>t</samp>&rsquo;: <em>ham = H(x,y,z,p,q,v,t)</em>. The starting point (at <code>t=0</code>) is defined by variables <var>r0</var>, <var>p0</var>. Parameters <var>dt</var> and <var>tmax</var> specify the integration step and maximal time for ray tracing. Result is array of {x,y,z,p,q,v,t} with dimensions {7 * int(<var>tmax</var>/<var>dt</var>+1) }. See section <a href="mathgl_en_9.html#Beam-tracing-sample">Beam tracing sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglQO2d"></a><u>Global function:</u> <code>mglData</code> <b>mglQO2d</b><i> (<code>const char *</code>ham, <code>const mglData &amp;</code>ini_re, <code>const mglData &amp;</code>ini_im, <code>const mglData &amp;</code>ray, <code>float</code> r=<code>1</code>, <code>float</code> k0=<code>100</code>, <code>mglData *</code>xx=<code>0</code>, <code>mglData *</code>yy=<code>0</code>, <code>bool</code> UseR=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fqo2d_005fsolve"></a><u>C function:</u> <code>HMDT</code> <b>mgl_qo2d_solve</b><i> (<code>const char *</code>ham, <code>const HMDT</code> ini_re, <code>const HMDT</code> ini_im, <code>const HMDT</code> ray, <code>float</code> r, <code>float</code> k0, <code>HMDT</code> xx, <code>HMDT</code> yy)</i></dt>
+<dd><p>Solves equation du/dt = i*k0*<var>ham</var>(p,q,x,y,|u|)[u], where p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators (see <code>mglPDE()</code> for details). Parameters <var>ini_re</var>, <var>ini_im</var> specify real and imaginary part of initial field distribution. Parameters <var>ray</var> set the reference ray, i.e. the ray around which the accompanied coordinate system will be maked. You may use, for example, the array created by <code>mglRay()</code> function. Note, that the reference ray <strong>must be</strong> smooth enough to make accompanied coodrinates unambiguity. Otherwise errors in the solution may appear. If <var>xx</var> and <var>yy</var> are non-zero then Cartesian coordinates for each point will be written into them. See also <code>mglPDE()</code>. See section <a href="mathgl_en_9.html#Beam-tracing-sample">Beam tracing sample</a>, for sample code and picture. 
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglJacobian"></a><u>Global function:</u> <code>mglData</code> <b>mglJacobian</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y)</i></dt>
+<dt><a name="index-mglJacobian-1"></a><u>Global function:</u> <code>mglData</code> <b>mglJacobian</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z)</i></dt>
+<dt><a name="index-mgl_005fjacobian_005f2d"></a><u>C function:</u> <code>HMDT</code> <b>mgl_jacobian_2d</b><i> (<code>const HMDT</code> x, <code>const HMDT</code> y)</i></dt>
+<dt><a name="index-mgl_005fjacobian_005f3d"></a><u>C function:</u> <code>HMDT</code> <b>mgl_jacobian_3d</b><i> (<code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z)</i></dt>
+<dd><p>Computates the Jacobian for transformation {i,j,k} to {<var>x</var>,<var>y</var>,<var>z</var>} where initial coordinates  {i,j,k} are data indexes normalized in range [0,1]. The Jacobian is determined by formula det||<em>dr_\alpha/d\xi_\beta</em>|| where <em>r</em>={<var>x</var>,<var>y</var>,<var>z</var>} and <em>\xi</em>={i,j,k}. All dimensions must be the same for all data arrays. Data must be 3D if all 3 arrays {<var>x</var>,<var>y</var>,<var>z</var>} are specified or 2D if only 2 arrays {<var>x</var>,<var>y</var>} are specified.
+</p></dd></dl>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_7.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_7.html
new file mode 100644
index 0000000..e0276d6
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_7.html
@@ -0,0 +1,797 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: 7. Other classes</title>
+
+<meta name="description" content="MathGL 1.11: 7. Other classes">
+<meta name="keywords" content="MathGL 1.11: 7. Other classes">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Other-classes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_6.html#Global-functions" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglParse-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_6.html#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+
+<a name="Other-classes-1"></a>
+<h1 class="chapter">7. Other classes</h1>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#mglParse-class">7.1 mglParse class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglFormula-class">7.2 mglFormula class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglFont-class">7.3 mglFont class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglColor-class">7.4 mglColor class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglPoint-class">7.5 mglPoint class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglVar-class">7.6 mglVar class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglCommand-class">7.7 mglCommand class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglArg-class">7.8 mglArg class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="mglParse-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-classes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglFormula-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglParse-class-1"></a>
+<h2 class="section">7.1 mglParse class</h2>
+<a name="index-mglParse"></a>
+
+<p>Class for parsing and executing MGL script. This class is defined in <code>#include &lt;mgl/mgl_parse.h&gt;</code>.
+</p>
+<p>Class mglParse is the interpreter for MGL scripts (see section <a href="mathgl_en_8.html#MGL-interface">MGL language</a>). The main function of mglParse class is <code>Parse()</code>. Exactly this function parses and executes the script string-by-string. Also there are two subservient functions for the finding and creation of a variable. These functions can be useful for displaying values of variables (arrays) in some external program (in window, for example). The variable <var>DataList</var> contains full list of variables in script. Flag <var>AllowSetSize</var> allows one to prevent changing the size of the  picture inside the script (forbids the MGL command <code>setsize</code>). 
+</p>
+<p>Note an important feature &ndash; if user defines function <var>func</var> in variable then it will be called before the destroying of this variable (see section <a href="#mglVar-class">mglVar class</a>).
+</p>
+<dl>
+<dt><a name="index-mglParse-1"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code></code> <b>mglParse</b><i> (<code>bool</code> setsize=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fcreate_005fparser"></a><u>C function:</u> <code>HMPR</code> <b>mgl_create_parser</b><i> ()</i></dt>
+<dd><p>Constructor initializes all values with zero and set <var>AllowSetSize</var> value.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-_007emglParse"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code></code> <b>~mglParse</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fdelete_005fparser"></a><u>C function:</u> <code>void</code> <b>mgl_delete_parser</b><i> (<code>HMPR</code> p)</i></dt>
+<dd><p>Destructor delete parser
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Parse"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>int</code> <b>Parse</b><i> (<code>mglGraph *</code>gr, <code>const char *</code>str, <code>long</code> pos=<code>0</code>)</i></dt>
+<dt><a name="index-Parse-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>int</code> <b>Parse</b><i> (<code>mglGraph *</code>gr, <code>const wchar_t *</code>str, <code>long</code> pos=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fparse"></a><u>C function:</u> <code>int</code> <b>mgl_parse</b><i> (<code>HMGL</code> gr, <code>HMPR</code> p, <code>const char *</code>str, <code>int</code> pos)</i></dt>
+<dt><a name="index-mgl_005fparsew"></a><u>C function:</u> <code>int</code> <b>mgl_parsew</b><i> (<code>HMGL</code> gr, <code>HMPR</code> p, <code>const wchar_t *</code>str, <code>int</code> pos)</i></dt>
+<dd><p>Main function in the class. It parses the string <var>str</var> and executes it by  using <var>gr</var> as a graphics plotter. Returns the value depending on an error presence in the string <var>str</var>: 0 &ndash; no error, 1 &ndash; wrong command argument(s), 2 &ndash; unknown command, 3 &ndash; string is too long. Optional argument <var>pos</var> allows to save the string position in the document (or file) for using <code>for|next</code> command.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Export-2"></a><u>Method on <code>mglParse</code> (C++):</u> <code>int</code> <b>Export</b><i> (<code>wchar_t</code> cpp_out<code>[1024]</code>, <code>mglGraph *</code>gr, <code>const wchar_t *</code>str)</i></dt>
+<dd><p>Function parses the string <var>str</var>, executes it by  using <var>gr</var> as a graphics plotter and exports it to C++ code. Returns the value depending on an error presence in the string <var>str</var>: 0 &ndash; no error, 1 &ndash; wrong command argument(s), 2 &ndash; unknown command, 3 &ndash; string is too long. Output C++ text will be placed in <var>out</var> variable. If string <var>str</var> have options (defined after &rsquo;;&rsquo; symbol) then the corresponding C++ texts are placed in variables <var>op1</var>, <var>op2</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Execute"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>Execute</b><i> (<code>mglGraph *</code>gr, <code>FILE *</code>fp, <code>bool</code> print=<code>false</code>)</i></dt>
+<dd><p>Function parse and execute line-by-line MGL script in file <var>fp</var>. If <var>print</var>=<code>true</code> then all warnings and information will be printed in stdout. Also this function support the <code>for|next</code> MGL commands.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Execute-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>Execute</b><i> (<code>mglGraph *</code>gr, <code>int</code> num, <code>const wchar_t **</code>text, <code>void (*</code> error <code>)(int line, int kind)=NULL</code>)</i></dt>
+<dd><p>Function parse and execute line-by-line MGL script in array <var>text</var>. If <var>error</var> is not <code>NULL</code> then this function will be called for all warnings, information and other messages. Also this function support the <code>for|next</code> MGL commands.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Execute-2"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>void</code> <b>Execute</b><i> (<code>mglGraph *</code>gr, <code>const char *</code>text, <code>void (*</code> error <code>)(int line, int kind)=NULL</code>)</i></dt>
+<dt><a name="index-Execute-3"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>Execute</b><i> (<code>mglGraph *</code>gr, <code>const wchar_t *</code>text, <code>void (*</code> error <code>)(int line, int kind)=NULL</code>)</i></dt>
+<dt><a name="index-mgl_005fparse_005ftext"></a><u>C function:</u> <code>void</code> <b>mgl_parse_text</b><i> (<code>HMGL</code> gr, <code>HMPR</code> p, <code>const char *</code>text)</i></dt>
+<dt><a name="index-mgl_005fparsew_005ftext"></a><u>C function:</u> <code>void</code> <b>mgl_parsew_text</b><i> (<code>HMGL</code> gr, <code>HMPR</code> p, <code>const wchar_t *</code>text)</i></dt>
+<dd><p>Function parse and execute line-by-line MGL script in string <var>text</var>. Lines are separated by &lsquo;<samp>\n</samp>&rsquo; symbol as usual. If <var>error</var> is not <code>NULL</code> then this function will be called for all warnings, information and other messages. Also this function support the <code>for|next</code> MGL commands.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AddParam"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>bool</code> <b>AddParam</b><i> (<code>int</code> n, <code>const char *</code>str, <code>bool</code> isstr=<code>true</code>)</i></dt>
+<dt><a name="index-AddParam-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>bool</code> <b>AddParam</b><i> (<code>int</code> n, <code>const wchar_t *</code>str, <code>bool</code> isstr=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fadd_005fparam"></a><u>C function:</u> <code>void</code> <b>mgl_add_param</b><i> (<code>HMPR</code> p, <code>int</code> id, <code>const char *</code>val)</i></dt>
+<dt><a name="index-mgl_005fadd_005fparamw"></a><u>C function:</u> <code>void</code> <b>mgl_add_paramw</b><i> (<code>HMPR</code> p, <code>int</code> id, <code>const wchar_t *</code>val)</i></dt>
+<dd><p>Function set the value of <var>n</var>-th parameter as string <var>str</var> (<var>n</var>=0, 1 ... 9). It return <code>true</code> for success.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FindVar"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>mglVar *</code> <b>FindVar</b><i> (<code>const char *</code>name)</i></dt>
+<dt><a name="index-FindVar-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>mglVar *</code> <b>FindVar</b><i> (<code>const wchar_t *</code>name)</i></dt>
+<dt><a name="index-mgl_005ffind_005fvar"></a><u>C function:</u> <code>const HMDT</code> <b>mgl_find_var</b><i>  (<code>HMPR</code> p, <code>const char *</code>name)</i></dt>
+<dd><p>Function returns the pointer to variable with name <var>name</var> or zero if variable is absent. Use this function to put external data array to the script or get the data from the script.
+</p></dd></dl>
+<dl>
+<dt><a name="index-AddVar"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>mglVar *</code> <b>AddVar</b><i> (<code>const char *</code>name)</i></dt>
+<dt><a name="index-AddVar-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>mglVar *</code> <b>AddVar</b><i> (<code>const wchar_t *</code>name)</i></dt>
+<dt><a name="index-mgl_005fadd_005fvar"></a><u>C function:</u> <code>const HMDT</code> <b>mgl_add_var</b><i> (<code>HMPR</code> p, <code>const char *</code>name)</i></dt>
+<dd><p>Function returns the pointer to variable with name <var>name</var>. If variable is absent then new variable is created with name <var>name</var>. Use this function to put external data array to the script or get the data from the script.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DeleteVar"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>DeleteVar</b><i> (<code>mglVar *</code>v)</i></dt>
+<dt><a name="index-DeleteVar-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>DeleteVar</b><i> (<code>const char *</code>name)</i></dt>
+<dt><a name="index-DeleteVar-2"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>DeleteVar</b><i> (<code>const wchar_t *</code>name)</i></dt>
+<dd><p>Function delete the variable specified by its name or by its pointer.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-RestoreOnce"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>inline void</code> <b>RestoreOnce</b><i> ()</i></dt>
+<dt><a name="index-mgl_005frestore_005fonce"></a><u>C function:</u> <code>void</code> <b>mgl_restore_once</b><i> (<code>HMPR</code> p)</i></dt>
+<dd><p>Restore Once flag.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AllowSetSize"></a><u>Method on <code>mglParse</code> (Python):</u> <code>void</code> <b>AllowSetSize</b><i> (<code>bool</code> a)</i></dt>
+<dt><a name="index-mgl_005fparser_005fallow_005fsetsize"></a><u>C function:</u> <code>void</code> <b>mgl_parser_allow_setsize</b><i> (<code>HMPR</code> p, <code>int</code> a)</i></dt>
+<dd><p>Allow to parse &rsquo;setsize&rsquo; command or not.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AddCommand"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>AddCommand</b><i> (<code>mglCommand *</code>cmd, <code>int</code> num=<code>0</code>)</i></dt>
+<dd><p>Add <var>num</var> commands <var>cmd</var> to the defined MGL commands list. Parameter <var>cmd</var> is array of <code>mglCommand</code> structures. If parameter <var>num</var>=0 then it will be determined automatically. At this, array <var>cmd</var> <strong>must have</strong> last element with <code>name=L&quot;&quot;</code>
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DataList-of-mglParse"></a><u>Option of mglParse:</u> <code>mglVar *</code> <b>DataList</b></dt>
+<dd><p>List of variables defined in script.
+</p></dd></dl>
+<dl>
+<dt><a name="index-AllowSetSize-of-mglParse"></a><u>Option of mglParse:</u> <code>bool</code> <b>AllowSetSize</b></dt>
+<dd><p>Flag which allows/forbids the command <code>setsize</code> in scripts.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Stop-of-mglParse"></a><u>Option of mglParse:</u> <code>bool</code> <b>Stop</b></dt>
+<dd><p>Flag which interrupt script execution.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Cmd-of-mglParse"></a><u>Option of mglParse:</u> <code>mglCommand *</code> <b>Cmd</b></dt>
+<dd><p>Table (array) of recognizable MGL commands (can be changed by user). Items in the table <strong>MUST be sorted</strong> by <var>name</var> field !!! Last items must have empty name (i.e. <code>L&quot;&quot;</code>).
+</p></dd></dl>
+<dl>
+<dt><a name="index-op1-of-mglParse"></a><u>Option of mglParse:</u> <code>wchar_t *</code> <b>op1</b></dt>
+<dd><p>These strings contain command options and should be placed before the command. These variables are used for MGL-&gt;C++ (or other language) conversion.
+</p></dd></dl>
+<dl>
+<dt><a name="index-op2-of-mglParse"></a><u>Option of mglParse:</u> <code>wchar_t *</code> <b>op2</b></dt>
+<dd><p>These strings contain command options and should be placed after the command. These variables are used for MGL-&gt;C++ (or other language) conversion.
+</p></dd></dl>
+
+<hr size="6">
+<a name="mglFormula-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglParse-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglFont-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglFormula-class-1"></a>
+<h2 class="section">7.2 mglFormula class</h2>
+<a name="index-mglFormula"></a>
+
+<p>Class for evaluating of formula specified by the string. This class is defined in <code>#include &lt;mgl/mgl_eval.h&gt;</code>.
+</p>
+<p>It is the fast variant of formula evaluation. At creation it will be recognized and compiled to tree-like internal code. At evaluation stage only fast calculations are performed. There is no difference between lower or upper case in formulas. If argument value lie outside the range of function definition then function returns NaN. See section <a href="mathgl_en_1.html#Textual-formulas">Textual formulas</a>.
+</p>
+<dl>
+<dt><a name="index-mglFormula-on-mglFormula"></a><u>Method on mglFormula:</u> <code></code> <b>mglFormula</b><i> (<code>const char *</code>str)</i></dt>
+<dd><p>Parses the formula <var>str</var> and creates formula-tree. Constructor recursively parses the formula and creates a tree-like structure containing functions and operators for fast further evaluating by <code>Calc()</code> or <code>CalcD()</code> functions.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Calc-on-mglFormula"></a><u>Method on mglFormula:</u> <code>float</code> <b>Calc</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>, <code>float</code> u=<code>0</code>)</i></dt>
+<dd><p>Evaluates the formula for <code>'x','r'</code>=<var>x</var>, <code>'y','n'</code>=<var>y</var>, <code>'z','t'</code>=<var>z</var>, <code>'a','u'</code>=<var>u</var>. Error code (if one) can be obtained from function <code>GetError()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Calc-on-mglFormula-1"></a><u>Method on mglFormula:</u> <code>float</code> <b>Calc</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> u, <code>float</code> v, <code>float</code> w)</i></dt>
+<dd><p>Evaluates the formula for <code>'x'</code>=<var>x</var>, <code>'y'</code>=<var>y</var>, <code>'z'</code>=<var>z</var>, <code>'u'</code>=<var>u</var>, <code>'v'</code>=<var>v</var>, <code>'w'</code>=<var>w</var>. Error code (if one) can be obtained from function <code>GetError()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Calc-on-mglFormula-2"></a><u>Method on mglFormula:</u> <code>float</code> <b>Calc</b><i> (<code>float</code> var<code>['z'-'a'+1]</code>)</i></dt>
+<dd><p>Evaluates the formula for variables in array <var>var</var>[&rsquo;z&rsquo;-&rsquo;a&rsquo;]. Error code (if one) can be obtained from function <code>GetError()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-CalcD-on-mglFormula"></a><u>Method on mglFormula:</u> <code>float</code> <b>CalcD</b><i> (<code>float</code> var<code>['z'-'a'+1]</code>, <code>char</code> diff)</i></dt>
+<dd><p>Evaluates the formula derivation respect to <var>diff</var> for variables in array <var>var</var>[&rsquo;z&rsquo;-&rsquo;a&rsquo;]. Error code (if one) can be obtained from function <code>GetError()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-GetError-on-mglFormula"></a><u>Method on mglFormula:</u> <code>int</code> <b>GetError</b><i> ()</i></dt>
+<dd><p>Returns error code: <code>0</code> means no error; <code>ERR_LOG</code> means error in logarithm or power functions; <code>ERR_ARC</code> means error in inverse functions (like asin); <code>ERR_SQRT</code> means error in sqrt function.
+</p></dd></dl>
+
+<hr size="6">
+<a name="mglFont-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglFormula-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Format-of-font-files" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglFont-class-1"></a>
+<h2 class="section">7.3 mglFont class</h2>
+<a name="index-mglFont"></a>
+
+<p>Class for working with font: load, get metrics, parse and draw strings. This class is defined in <code>#include &lt;mgl/mgl_font.h&gt;</code>.
+</p>
+<p>The class is based on loading and drawing of vector Hershey font. There are two styles of specifying of the font type and aligning: by integer parameters or by string.
+</p>
+<p>The string can be any combination of characters: &lsquo;<samp>rbiLCRwou</samp>&rsquo;. The font types are: &lsquo;<samp>r</samp>&rsquo; &ndash; roman font, &lsquo;<samp>i</samp>&rsquo; &ndash; italic style, &lsquo;<samp>b</samp>&rsquo; &ndash; bold style. By default roman font (that is &lsquo;<samp></samp>&rsquo; or &lsquo;<samp>r</samp>&rsquo;) is used. The align types are: &lsquo;<samp>L</samp>&rsquo; &ndash; align left (default), &lsquo;<samp>C</samp>&rsquo; &ndash; align center, &lsquo;<samp>R</samp>&rsquo; &ndash; align right. Additional font effects are: &lsquo;<samp>w</samp>&rsquo; &ndash; wire, &lsquo;<samp>o</samp>&rsquo; &ndash; over-lined, &lsquo;<samp>u</samp>&rsquo; &ndash; underlined. Parsing of the string to special (TeX-like) commands will be done if variable <var>parse</var> is true (it&rsquo;s default). See also see section <a href="mathgl_en_1.html#Font-styles">Font styles</a>.
+</p>
+<p>The over way of font and alignment setting is the using of the integer constant. Integer font Id can be one of predefined constants: <code>MGL_FONT_ITAL, MGL_FONT_BOLD, MGL_FONT_BOLD_ITAL = MGL_FONT_ITAL+MGL_FONT_BOLD</code>. Default font is <code>MGL_FONT_ROMAN</code>. Also there are flags <code>MGL_FONT_ULINE, MGL_FONT_OLINE, MGL_FONT_WIRE</code> for additional font effects. Align parameter controls the text alignment: 0 &ndash; align left, 1 &ndash; align center, 2 &ndash; align right.
+</p>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Format-of-font-files">7.3.1 Format of font files</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+
+<dl>
+<dt><a name="index-mglFont-on-mglFont"></a><u>Method on mglFont:</u> <code></code> <b>mglFont</b><i> (<code>const char *</code>name=<code>MGL_DEF_FONT_NAME</code>, <code>const char *</code>path=<code>NULL</code>)</i></dt>
+<dd><p>Initialize the font and load data from file <var>name</var> (default name is &quot;STIX&quot; for Linux and MacOS) or if  <var>name</var>=<code>NULL</code> limited data from memory (default for Windows).
+</p></dd></dl>
+<dl>
+<dt><a name="index-Load-on-mglFont"></a><u>Method on mglFont:</u> <code>bool</code> <b>Load</b><i> (<code>const char *</code> base, <code>const char *</code>path=<code>NULL</code>)</i></dt>
+<dd><p>Load font from file <var>path</var>/<var>base</var> into the memory. The font may contain 4 files: <var>base</var>.vfm, <var>base</var>_b.vfm, <var>base</var>_i.vfm, <var>base</var>_bi.vfm. Appendix contain detailed description of font format.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Restore-on-mglFont"></a><u>Method on mglFont:</u> <code>void</code> <b>Restore</b><i> ()</i></dt>
+<dd><p>Restore default font.
+</p></dd></dl>
+<dl>
+<dt><a name="index-_0028-on-mglFont"></a><u>Method on mglFont:</u> <code>void</code> <b>(</b><i><code>mglFont *</code> fnt)</i></dt>
+<dd><p>Copy data from other font instance.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Clear-on-mglFont"></a><u>Method on mglFont:</u> <code>void</code> <b>Clear</b><i> ()</i></dt>
+<dd><p>Clear memory by deleting the loaded font.
+</p></dd></dl>
+<dl>
+<dt><a name="index-GetNumGlyph-on-mglFont"></a><u>Method on mglFont:</u> <code>inline unsigned</code> <b>GetNumGlyph</b><i> ()</i></dt>
+<dd><p>Return the number of glyphs in the font.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Ready-on-mglFont"></a><u>Method on mglFont:</u> <code>inline bool</code> <b>Ready</b><i> ()</i></dt>
+<dd><p>Return true if font is loaded and ready for use.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-Height-on-mglFont"></a><u>Method on mglFont:</u> <code>float</code> <b>Height</b><i> (<code>int</code> font)</i></dt>
+<dd><p>Gets height of text for font specified by integer constant.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Puts-on-mglFont"></a><u>Method on mglFont:</u> <code>float</code> <b>Puts</b><i> (<code>const char *</code>str, <code>int</code> font=<code>0</code>, <code>int</code> align=<code>0</code>)</i></dt>
+<dd><p>Prints 8-bit text string for font specified by integer constant.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Width-on-mglFont"></a><u>Method on mglFont:</u> <code>float</code> <b>Width</b><i> (<code>const char *</code>str, <code>int</code> font=<code>0</code>)</i></dt>
+<dd><p>Gets width of 8-bit text string for font specified by integer constant.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Puts-on-mglFont-1"></a><u>Method on mglFont:</u> <code>float</code> <b>Puts</b><i> (<code>const wchar_t *</code>str, <code>int</code> font=<code>0</code>, <code>int</code> align=<code>0</code>)</i></dt>
+<dd><p>Prints Unicode text string for font specified by integer constant.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Width-on-mglFont-1"></a><u>Method on mglFont:</u> <code>float</code> <b>Width</b><i> (<code>const wchar_t *</code>str, <code>int</code> font=<code>0</code>)</i></dt>
+<dd><p>Gets width of Unicode text string for font specified by integer constant.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-Height-on-mglFont-1"></a><u>Method on mglFont:</u> <code>float</code> <b>Height</b><i> (<code>const char *</code>how)</i></dt>
+<dd><p>Gets height of text for font specified by string.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Puts-on-mglFont-2"></a><u>Method on mglFont:</u> <code>float</code> <b>Puts</b><i> (<code>const char *</code>str, <code>const char *</code>how)</i></dt>
+<dd><p>Prints 8-bit text string for font specified by string.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Width-on-mglFont-2"></a><u>Method on mglFont:</u> <code>float</code> <b>Width</b><i> (<code>const char *</code>str, <code>const char *</code>how)</i></dt>
+<dd><p>Gets width of 8-bit text string for font specified by string.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Puts-on-mglFont-3"></a><u>Method on mglFont:</u> <code>float</code> <b>Puts</b><i> (<code>const wchar_t *</code>str, <code>const char *</code>how)</i></dt>
+<dd><p>Prints Unicode text string for font specified by string.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Width-on-mglFont-3"></a><u>Method on mglFont:</u> <code>float</code> <b>Width</b><i> (<code>const wchar_t *</code>str, <code>const char *</code>how)</i></dt>
+<dd><p>Gets width of Unicode text string for font specified by string.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-gr-of-mglFont"></a><u>Parameter of mglFont:</u> <code>mglGraph *</code> <b>gr</b></dt>
+<dd><p>Instance of mglGraph class which is used for character drawing.
+</p></dd></dl>
+<dl>
+<dt><a name="index-parse-of-mglFont"></a><u>Parameter of mglFont:</u> <code>bool</code> <b>parse</b></dt>
+<dd><p>Flag for switching on/off the parsing of TeX commands. Default value is <code>true</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Format-of-font-files"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglFont-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglColor-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglFont-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Format-of-font-files-1"></a>
+<h3 class="subsection">7.3.1 Format of font files</h3>
+
+<p>Starting from v.1.6 the MathGL library uses new font files. The font is defined in 4 files with suffixes &lsquo;<samp>*.vfm</samp>&rsquo;, &lsquo;<samp>*_b.vfm</samp>&rsquo;, &lsquo;<samp>*_i.vfm</samp>&rsquo;, &lsquo;<samp>*_bi.vfm</samp>&rsquo;. These files are text files containing the data for roman font, bold font, italic font and bold italic font. The files (or some symbols in the files) for bold, italic or bold italic fonts can be absent. In this case the roman glyph will be used for them. By analogy, if the bold italic font is absent but the bold font is present then bold glyph will be used for bold italic. You may create these font files by yourself from *.ttf, *.otf files with the help of program <code>font_tools</code>. This program can be found at MathGL home site.
+</p>
+<p>The format of font files (*.vfm &ndash; vector font for MathGL) is the following.
+</p><ol>
+<li>
+First string contains human readable comment and is always ignored.
+</li><li>
+Second string contains 3 numbers, delimited by space or tabulation. The order of numbers is the following: <var>numg</var> &ndash; the number of glyphs in the file (integer), <var>fact</var> &ndash; the factor for glyph sizing (float), <var>size</var> &ndash; the size of buffer for glyph description (integer).
+</li><li>
+After it <var>numg</var>-th strings with glyphs description are placed. Each string contains 6 positive numbers, delimited by space of tabulation. The order of numbers is the following: Unicode glyph ID, glyph width, number of lines in glyph, position of lines coordinates in the buffer (length is 2*number of lines), number of triangles in glyph, position of triangles coordinates in the buffer (length is 6*number of triangles).
+</li><li>
+The end of file contains the buffer with point coordinates at lines or triangles vertexes. The size of buffer (the number of integer) is <var>size</var>.
+</li></ol>
+
+<p>Each font file can be compressed by gzip.
+</p>
+<p>Note: the closing contour line  is done automatically (so the last segment may be absent). For starting new contour use a point with coordinates <code>{0x3fff, 0x3fff}</code>.
+</p>
+
+<hr size="6">
+<a name="mglColor-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Format-of-font-files" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglPoint-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglColor-class-1"></a>
+<h2 class="section">7.4 mglColor class</h2>
+<a name="index-mglColor"></a>
+
+<p>Structure for working with colors. This structure is defined in <code>#include &lt;mgl/mgl.h&gt;</code>.
+</p>
+<p>There are two ways to set the color in MathGL. First one is using of float values of red, green and blue channels for precise color definition. The second way is the using of character id. There are a set of characters specifying frequently used colors. Normally capital letter gives more dark color than lowercase one. See section <a href="mathgl_en_1.html#Line-styles">Line styles</a>.
+</p>
+<dl>
+<dt><a name="index-r_002c-g_002c-b-of-mglVar"></a><u>Parameter of mglVar:</u> <code>float</code> <b>r, g, b</b></dt>
+<dd><p>Reg, green and blue component of color.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglColor-on-mglColor"></a><u>Method on mglColor:</u> <code></code> <b>mglColor</b><i> (<code>float</code> R, <code>float</code> G, <code>float</code> B)</i></dt>
+<dd><p>Constructor sets the color by float values of Red, Green and Blue channels.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mglColor-on-mglColor-1"></a><u>Method on mglColor:</u> <code></code> <b>mglColor</b><i> (<code>char</code> c=<code>'k'</code>)</i></dt>
+<dd><p>Constructor sets the color from character id. The black color is used by default.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-on-mglColor"></a><u>Method on mglColor:</u> <code>void</code> <b>Set</b><i> (<code>float</code> R, <code>float</code> G, <code>float</code> B)</i></dt>
+<dd><p>Sets color from values of Red, Green and Blue channels. This values should be in interval [0,1].
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-on-mglColor-1"></a><u>Method on mglColor:</u> <code>void</code> <b>Set</b><i> (<code>mglColor</code> c, <code>float</code> bright=<code>1</code>)</i></dt>
+<dd><p>Sets color as &ldquo;lighted&rdquo; version of color <var>c</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-on-mglColor-2"></a><u>Method on mglColor:</u> <code>void</code> <b>Set</b><i> (<code>char</code> p)</i></dt>
+<dd><p>Sets color from symbolic id.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Valid-on-mglColor"></a><u>Method on mglColor:</u> <code>bool</code> <b>Valid</b><i> ()</i></dt>
+<dd><p>Checks correctness of the color.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Norm-on-mglColor"></a><u>Method on mglColor:</u> <code>float</code> <b>Norm</b><i> ()</i></dt>
+<dd><p>Gets maximal of spectral component.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_003d_003d-on-mglColor"></a><u>Method on mglColor:</u> <code>bool</code> <b>operator==</b><i> (<code>const mglColor &amp;</code>c)</i></dt>
+<dd><p>Compare with another color
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002b-3"></a><u>Library Function:</u> inline mglColor <b>operator+</b><i> (<code>const mglColor &amp;</code>a, <code>const mglColor &amp;</code>b)</i></dt>
+<dd><p>Adds colors by its RGB values.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d-3"></a><u>Library Function:</u> inline mglColor <b>operator-</b><i> (<code>const mglColor &amp;</code>a, <code>const mglColor &amp;</code>b)</i></dt>
+<dd><p>Subtracts colors by its RGB values.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-3"></a><u>Library Function:</u> inline mglColor <b>operator*</b><i> (<code>const mglColor &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Multiplies color by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-4"></a><u>Library Function:</u> inline mglColor <b>operator*</b><i> (<code>float</code> a, <code>const mglColor &amp;</code>b)</i></dt>
+<dd><p>Multiplies color by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f-2"></a><u>Library Function:</u> inline mglColor <b>operator/</b><i> (<code>const mglColor &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Divide color by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_0021"></a><u>Library Function:</u> inline mglColor <b>operator!</b><i> (<code>const mglColor &amp;</code>a)</i></dt>
+<dd><p>Return inverted color.
+</p></dd></dl>
+
+<hr size="6">
+<a name="mglPoint-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglColor-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglVar-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglPoint-class-1"></a>
+<h2 class="section">7.5 mglPoint class</h2>
+<a name="index-mglPoint"></a>
+
+<p>Structure describes point in space. This structure is defined in <code>#include &lt;mgl/mgl.h&gt;</code>
+</p>
+<dl>
+<dt><a name="index-x_002c-y_002c-z-of-mglVar"></a><u>Parameter of mglVar:</u> <code>float</code> <b>x, y, z</b></dt>
+<dd><p>Point coordinates. By default all values are zero.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002b-4"></a><u>Library Function:</u> inline mglPoint <b>operator+</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Point of summation (summation of vectors).
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d-4"></a><u>Library Function:</u> inline mglPoint <b>operator-</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Point of difference (difference of vectors).
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-5"></a><u>Library Function:</u> inline mglPoint <b>operator*</b><i> (<code>float</code> a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Multiplies (scale) points by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-6"></a><u>Library Function:</u> inline mglPoint <b>operator*</b><i> (<code>const mglPoint &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Multiplies (scale) points by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f-3"></a><u>Library Function:</u> inline mglPoint <b>operator/</b><i> (<code>const mglPoint &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Multiplies (scale) points by number 1/b.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d-5"></a><u>Library Function:</u> inline float <b>operator-</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Scalar product of vectors.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_005e"></a><u>Library Function:</u> inline mglPoint <b>operator^</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Cross-product of vectors.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_0026"></a><u>Library Function:</u> inline mglPoint <b>operator&amp;</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>The part of <var>a</var> which is perpendicular to vector <var>b</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_007c"></a><u>Library Function:</u> inline mglPoint <b>operator|</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>The part of <var>a</var> which is parallel to vector <var>b</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_0021-1"></a><u>Library Function:</u> inline mglPoint <b>operator!</b><i> (<code>const mglPoint &amp;</code>a)</i></dt>
+<dd><p>Return vector perpendicular to vector <var>a</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Norm-2"></a><u>Library Function:</u> inline bool <b>Norm</b><i> (<code>const mglPoint &amp;</code>a)</i></dt>
+<dd><p>Return the norm |<var>a</var>|^2 of vector <var>a</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_003d_003d"></a><u>Library Function:</u> inline bool <b>operator==</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Return true if points are the same.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_0021_003d"></a><u>Library Function:</u> inline bool <b>operator!=</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Return true if points are different.
+</p></dd></dl>
+
+<hr size="6">
+<a name="mglVar-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglPoint-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglCommand-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglVar-class-1"></a>
+<h2 class="section">7.6 mglVar class</h2>
+<a name="index-mglVar"></a>
+
+<p>Structure describes variable of type <code>mglData</code> and its name in MGL script. This structure is used by <code>mglParse</code> and is defined in <code>#include &lt;mgl/mgl_parse.h&gt;</code>.
+</p>
+<dl>
+<dt><a name="index-d-of-mglVar"></a><u>Parameter of mglVar:</u> <code>mglData</code> <b>d</b></dt>
+<dd><p>Data itself
+</p></dd></dl>
+<dl>
+<dt><a name="index-s-of-mglVar"></a><u>Parameter of mglVar:</u> <code>wchar_t</code> <b>s</b><i>[256]</i></dt>
+<dd><p>Data name
+</p></dd></dl>
+<dl>
+<dt><a name="index-o-of-mglVar"></a><u>Parameter of mglVar:</u> <code>void *</code> <b>o</b></dt>
+<dd><p>Pointer to external object for function <var>func</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-next-of-mglVar"></a><u>Parameter of mglVar:</u> <code>mglVar *</code> <b>next</b></dt>
+<dd><p>Pointer to next instance in list
+</p></dd></dl>
+<dl>
+<dt><a name="index-prev-of-mglVar"></a><u>Parameter of mglVar:</u> <code>mglVar *</code> <b>prev</b></dt>
+<dd><p>Pointer to prev instance in list
+</p></dd></dl>
+<dl>
+<dt><a name="index-temp-of-mglVar"></a><u>Parameter of mglVar:</u> <code>bool</code> <b>temp</b></dt>
+<dd><p>Flag for temporar variable. Temporal variables will be destroyed after script execution.
+</p></dd></dl>
+<dl>
+<dt><a name="index-func-of-mglVar"></a><u>Parameter of mglVar:</u> <code>void (*</code> <b>func</b><i> <code>)(void *)</code></i></dt>
+<dd><p>Callback function for destroying non-temporal variable.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-MoveAfter-on-mglVar"></a><u>Method on mglVar:</u> <code>void</code> <b>MoveAfter</b><i> (<code>mglVar *</code>var)</i></dt>
+<dd><p>Move variable after <var>var</var> and copy <code>func</code> from <code>var</code> (if <code>func</code> is not 0)
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="mglCommand-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglVar-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglArg-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglCommand-class-1"></a>
+<h2 class="section">7.7 mglCommand class</h2>
+<a name="index-mglCommand"></a>
+
+<p>Structure describes MGL command, its name, short description, executable and export functions. The structure is used by <code>mglParse</code> and is defined in <code>#include &lt;mgl/mgl_parse.h&gt;</code>.
+</p>
+<dl>
+<dt><a name="index-name-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>const wchar_t *</code> <b>name</b></dt>
+<dd><p>Name of command.
+</p></dd></dl>
+<dl>
+<dt><a name="index-desc-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>const wchar_t *</code> <b>desc</b></dt>
+<dd><p>Short command description (can be NULL).
+</p></dd></dl>
+<dl>
+<dt><a name="index-form-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>const wchar_t *</code> <b>form</b></dt>
+<dd><p>Format of command arguments (can be NULL).
+</p></dd></dl>
+<dl>
+<dt><a name="index-exec-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>int (*</code> <b>exec</b><i> <code>)(mglGraph *gr, long n, mglArg *a, int k[10])const wchar_t *</code></i></dt>
+<dd><p>Function for executing (plotting) the command using grapher <var>gr</var> and having <var>n</var>-th arguments <var>a</var>. Function must return 0 if all is OK; or 1 if arguments are wrong.
+</p></dd></dl>
+<dl>
+<dt><a name="index-save-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>void (*</code> <b>save</b><i> <code>)(wchar_t out[1024], long n, mglArg *a, int k[10])const wchar_t *</code></i></dt>
+<dd><p>Function for exporting in C++ (can be NULL).
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="mglArg-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglCommand-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglArg-class-1"></a>
+<h2 class="section">7.8 mglArg class</h2>
+<a name="index-mglArg"></a>
+
+<p>Structure describes arguments of functions in the stucture <code>mglCommand</code>. It is defined in <code>#include &lt;mgl/mgl_parse.h&gt;</code>.
+</p>
+<dl>
+<dt><a name="index-type-of-mglArg"></a><u>Parameter of mglArg:</u> <code>int</code> <b>type</b></dt>
+<dd><p>Type of argument: 0-data, 1-string, 2-number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-d-of-mglArg"></a><u>Parameter of mglArg:</u> <code>mglData *</code> <b>d</b></dt>
+<dd><p>Pointer to data (used if type=0).
+</p></dd></dl>
+<dl>
+<dt><a name="index-w-of-mglArg"></a><u>Parameter of mglArg:</u> <code>wchar_t</code> <b>w</b><i>[2048]</i></dt>
+<dd><p>String with parameters (used if type=1 or if type=0 as variable name).
+</p></dd></dl>
+<dl>
+<dt><a name="index-s-of-mglArg"></a><u>Parameter of mglArg:</u> <code>char</code> <b>s</b><i>[2048]</i></dt>
+<dd><p>String with parameters (used if type=1).
+</p></dd></dl>
+<dl>
+<dt><a name="index-v-of-mglArg"></a><u>Parameter of mglArg:</u> <code>float</code> <b>v</b></dt>
+<dd><p>Numerical value (used if type==2)
+</p></dd></dl>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_8.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_8.html
new file mode 100644
index 0000000..cc4f05c
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_8.html
@@ -0,0 +1,2921 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: 8. MGL language</title>
+
+<meta name="description" content="MathGL 1.11: 8. MGL language">
+<meta name="keywords" content="MathGL 1.11: 8. MGL language">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="MGL-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_7.html#mglArg-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MGL-language"></a>
+<h1 class="chapter">8. MGL language</h1>
+
+<p>MathGL library supports the simplest scripts for data handling and plotting. These scripts can be used independently (with the help of UDAV, mgl2png, mgl2eps, mgl2svg programs and others, see section <a href="#Utilities">Utilities for parsing MGL</a>) or in the frame of the library using.
+</p>
+<p>MGL script language is rather simple. Each string is a command. First word of string is the name of command. Other words are command arguments. Command may have up to 1000 arguments (at least for now). Words are separated from each other by space or tabulation symbol. The upper or lower case of words is sufficient, i.e. variables <var>a</var> and <var>A</var> are different variables. Symbol &lsquo;<samp>#</samp>&rsquo; starts the comment (all characters after # will be ignored). The exception is situation when &lsquo;<samp>#</samp>&rsquo; is a part of some string. Also options can be specified after symbol &lsquo;<samp>;</samp>&rsquo; (see section <a href="#Command-options-_0028MGL_0029">Command options (MGL)</a>). Symbol &lsquo;<samp>:</samp>&rsquo; starts new command (like new line character) if it is not placed inside a string or inside brackets.
+</p>
+<p>If string contain references to external parameters (substrings &lsquo;<samp>$0</samp>&rsquo;, &lsquo;<samp>$1</samp>&rsquo; ... &lsquo;<samp>$9</samp>&rsquo;) or definitions (substrings &lsquo;<samp>$a</samp>&rsquo;, &lsquo;<samp>$b</samp>&rsquo; ... &lsquo;<samp>$z</samp>&rsquo;) then before execution the values of parameter/definition will be substituted instead of reference. It allows to use the same MGL script for different parameters (filenames, paths, condition and so on).
+</p>
+<p>Argument can be a string, a variable name or a number. 
+</p><ul>
+<li> 
+The string is any symbols between ordinary marks &lsquo;<samp>'</samp>&rsquo;.
+
+</li><li> 
+Usually variable have a name which is arbitrary combination of symbols (except spaces and &lsquo;<samp>'</samp>&rsquo;) started from a letter and with length less than 64. A temporary array can be used as variable:
+<ul>
+<li> 
+sub-arrays (like in <a href="#subdata">subdata</a> command) as command argument. For example, <code>a(1)</code> or <code>a(1,:)</code> or <code>a(1,:,:)</code> is second row, <code>a(:,2)</code> or <code>a(:,2,:)</code> is third column, <code>a(:,:,0)</code> is first slice and so on. Also you can extract a part of array from m-th to n-th element by code <code>a(m:n,:,:)</code> or just <code>a(m:n)</code>.
+
+</li><li> 
+any column combinations defined by formulas, like <code>a('n*w^2/exp(t)')</code> if names for data columns was specified (by <a href="#idset">idset</a> command or in the file at string started with <code>##</code>).
+
+</li><li> 
+any expression (without spaces) of existed variables produce temporary variable. For example, &lsquo;<samp>sqrt(dat(:,5)+1)</samp>&rsquo; will produce temporary variable with data values equal to <code>tmp[i,j] = sqrt(dat[i,5,j]+1)</code>. 
+
+</li><li> 
+temporary variable of higher dimensions by help of []. For example, &lsquo;<samp>[1,2,3]</samp>&rsquo; will produce a temporary vector of 3 elements {1, 2, 3}; &lsquo;<samp>[[11,12],[21,22]]</samp>&rsquo; will produce matrix 2*2 and so on. Here you can join even an arrays of the same dimensions by construction like &lsquo;<samp>[v1,v2,...,vn]</samp>&rsquo;.
+
+</li><li> 
+result of code for making new data (see section <a href="#Make-another-data-_0028MGL_0029">Make another data (MGL)</a>) inside {}. For example, &lsquo;<samp>{sum dat 'x'}</samp>&rsquo; produce temporary variable which contain result of summation of <var>dat</var> along direction &rsquo;x&rsquo;. This is the same array <var>tmp</var> as produced by command &lsquo;<samp>sum tmp dat 'x'</samp>&rsquo;. You can use nested constructions, like &lsquo;<samp>{sum {max dat 'z'} 'x'}</samp>&rsquo;.
+</li></ul>
+<p>Temporary variables can not be used as 1st argument for commands which create (return) the data (like &lsquo;<samp>new</samp>&rsquo;, &lsquo;<samp>read</samp>&rsquo;, &lsquo;<samp>hist</samp>&rsquo; and so on).
+</p>
+</li><li> 
+Special names <code>nan=#QNAN, pi=3.1415926..., on=1, off=0, :=-1</code> are treated as number if they were not redefined by user. Variables with suffixes are treated as numbers (see section <a href="#Suffixes">Suffixes for variable</a>). Names defined by <a href="#define">define</a> command are treated as number. Also results of formulas with sizes 1x1x1 are treated as number (for example, &lsquo;<samp>pi/dat.nx</samp>&rsquo;).
+</li></ul>
+<p>Before the first using all variables must be defined with the help of commands, like, <a href="#new">new</a>, <a href="#var">var</a>, <a href="#list">list</a>, <a href="#copy">copy</a>, <a href="#read">read</a>, <a href="#hist">hist</a>, <a href="#sum">sum</a> and so on (see section <a href="#Data-create-_0028MGL_0029">Data create (MGL)</a> and <a href="#Make-another-data-_0028MGL_0029">Make another data (MGL)</a>). 
+</p>
+<p>Command may have several set of possible arguments (for example, <code>plot ydat</code> and <code>plot xdat ydat</code>). All command arguments for a selected set must be specified. However, some arguments can have default values. These argument are printed in [], like <code>plot ydat ['stl'='' zval=nan]</code>. At this, the record <code>[arg1 arg2 arg3 ...]</code> means <code>[arg1 [arg2 [arg3 ...]]]</code>, i.e. you can omit only tailing arguments if you agree with its default values. For example, <code>plot ydat '' 1</code> or <code>plot ydat ''</code> is correct, but <code>plot ydat 1</code> is incorrect (argument <code>'stl'</code> is missed).
+</p>
+<p>All MGL commands can be divided on several groups. I will use the following notation for a command description: command names are bold, strings are denoted by commas, variable names are italic, numbers are typewriter. Optional arguments are placed in square brackets and default values for them are shown. Detailed description of color, line styles (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>), color schemes (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>), font types, TeX-like symbols (see section <a href="mathgl_en_1.html#Font-styles">Font styles</a>) and formulas (see section <a href="mathgl_en_1.html#Textual-formulas">Textual formulas</a>) can be found in corresponding section.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Graphics-setup-_0028MGL_0029">8.1 Graphics setup (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transformation-matrix-_0028MGL_0029">8.3 Transformation matrix (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Export-to-file-_0028MGL_0029">8.4 Export to file (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing-_0028MGL_0029">8.6 Text printing (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Legend-_0028MGL_0029">8.8 Legend (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting-_0028MGL_0029">8.12 Dual plotting (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-fields-_0028MGL_0029">8.13 Vector fields (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-create-_0028MGL_0029">8.16 Data create (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-filling-_0028MGL_0029">8.17 Data filling (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Rearrange-data-_0028MGL_0029">8.18 Rearrange data (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Operators-_0028MGL_0029">8.22 Operators (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Suffixes">8.25 Suffixes for variable</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Utilities">8.26 Utilities for parsing MGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+</table>
+
+
+<hr size="6">
+<a name="Graphics-setup-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparency-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Graphics-setup-_0028MGL_0029-1"></a>
+<h2 class="section">8.1 Graphics setup (MGL)</h2>
+
+<p>Coomands in this group influences on overall graphics appearance. So all of them should be placed <em>before</em> any actual plotting commands. 
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Transparency-_0028MGL_0029">8.1.1 Transparency (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lighting-_0028MGL_0029">8.1.2 Lighting (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fog-_0028MGL_0029">8.1.3 Fog (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Default-sizes-_0028MGL_0029">8.1.4 Default sizes (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Zooming-_0028MGL_0029">8.1.5 Zooming (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cutting-_0028MGL_0029">8.1.6 Cutting (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-settings-_0028MGL_0029">8.1.7 Other settings (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Transparency-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lighting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transparency-_0028MGL_0029-1"></a>
+<h3 class="subsection">8.1.1 Transparency (MGL)</h3>
+
+<p>There are several commands for setup transparency. The general command is <a href="#alpha">alpha</a> which switch on/off the transparency for overall plot. It influence only for graphics which created after <a href="#alpha">alpha</a> call. Command <a href="#alphadef">alphadef</a> specify the default value of alpha-channel. You may switch off transparency of selected plot by command <a href="#transparent">transparent</a>. Finally, command <a href="#transptype">transptype</a> set the kind of transparency. See section <a href="mathgl_en_9.html#Transparent-surface-sample">Transparent surface sample</a>, for sample code and picture.
+</p>
+<a name="index-alpha"></a>
+<p><a name="alpha"></a>
+</p><dl>
+<dt><a name="index-alpha-1"></a><u>MGL command:</u> <b>alpha</b><i> <code>[val=on]</code></i></dt>
+<dd><p>Sets the transparency on/off. It is recommended to call this command before any plotting command. Default value is <code>off</code>. Use <code>transparent off</code> in particular plot to disable its transparency.
+</p></dd></dl>
+<a name="index-alphadef"></a>
+<p><a name="alphadef"></a>
+</p><dl>
+<dt><a name="index-alphadef-1"></a><u>MGL command:</u> <b>alphadef</b><i> <code>val</code></i></dt>
+<dd><p>Default value of alpha channel (transparency) for all plotting commands. Initial value is 0.5.
+</p></dd></dl>
+<a name="index-transparent"></a>
+<p><a name="transparent"></a>
+</p><dl>
+<dt><a name="index-transparent-1"></a><u>MGL command:</u> <b>transparent</b><i> <code>val</code></i></dt>
+<dd><p>Temporary switches transparency on/off for the plot.
+</p></dd></dl>
+<a name="index-transptype"></a>
+<p><a name="transptype"></a>
+</p><dl>
+<dt><a name="index-transptype-1"></a><u>MGL command:</u> <b>transptype</b><i> <code>val</code></i></dt>
+<dd><p>This command set the transparency type. Normal transparency (&lsquo;<samp>0</samp>&rsquo;) &ndash; below things is less visible than upper ones. Glass-like transparency (&lsquo;<samp>1</samp>&rsquo;) &ndash; below and upper things are commutable and just decrease intensity of light by RGB channel. Lamp-like transparency (&lsquo;<samp>2</samp>&rsquo;) &ndash; below and upper things are commutable and are the source of some additional light. I recommend to set <code>alphadef 0.3</code> or less for lamp-like transparency. See section <a href="mathgl_en_9.html#Normal-transparency">Normal transparency</a>, <a href="mathgl_en_9.html#Glass_002dlike-transparency">Glass-like transparency</a>, <a href="mathgl_en_9.html#Lamp_002dlike-transparency">Lamp-like transparency</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Lighting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparency-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fog-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Lighting-_0028MGL_0029-1"></a>
+<h3 class="subsection">8.1.2 Lighting (MGL)</h3>
+
+<p>There are several commands for setup lighting. The general command is <a href="#light">light</a> which switch on/off the lighting for overall plot. Generally MathGL support up to 10 independent light sources. The position, color, brightness of each light source can be set separately. By default only one light source is active. It is source number <code>0</code> with white color, located at top of the plot.
+</p>
+<a name="index-light"></a>
+<p><a name="light"></a>
+</p><dl>
+<dt><a name="index-light-1"></a><u>MGL command:</u> <b>light</b><i> <code>[val=on]</code></i></dt>
+<dd><p>Sets the using of light on/off for overall plot. It is recommended to call this command before any plotting command. Default value is lightning off.
+</p></dd></dl>
+<dl>
+<dt><a name="index-light-2"></a><u>MGL command:</u> <b>light</b><i> <code>num val</code></i></dt>
+<dd><p>Switch on/off <var>num</var>-th light source separately.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-light-3"></a><u>MGL command:</u> <b>light</b><i> <code>num xpos ypos zpos</code> ['col'='w' <code>br=0.5</code>]</i></dt>
+<dd><p>The command adds a light source with identification <var>num</var> at position {<var>xpos</var>, <var>ypos</var>, <var>zpos</var>}. The color of light is <var>col</var> (white by default). The brightness of light is <var>br</var> which must be in range [0,1].
+</p></dd></dl>
+
+<a name="index-ambient"></a>
+<p><a name="ambient"></a>
+</p><dl>
+<dt><a name="index-ambient-1"></a><u>MGL command:</u> <b>ambient</b><i> <code>val</code></i></dt>
+<dd><p>Sets the brightness of ambient light. The value should be in range [0,1]. Initial value is 0.5. 
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fog-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lighting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Default-sizes-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fog-_0028MGL_0029-1"></a>
+<h3 class="subsection">8.1.3 Fog (MGL)</h3>
+
+<a name="index-fog"></a>
+<p><a name="fog"></a>
+</p><dl>
+<dt><a name="index-fog-1"></a><u>MGL command:</u> <b>fog</b><i> <code>val [dz=0.25]</code></i></dt>
+<dd><p>Command imitate a fog in the plot. Fog start from relative distance <var>dz</var> from view point and its density growths exponentially in depth. So that the fog influence is determined by law ~<em>1-exp(-d*z)</em>. Here <em>z</em> is normalized to 1 depth of the plot. If value <var>val</var>=<code>0</code> then the fog is absent. See section <a href="mathgl_en_9.html#Surface-in-fog-sample">Surface in fog sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Default-sizes-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fog-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Zooming-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Default-sizes-_0028MGL_0029-1"></a>
+<h3 class="subsection">8.1.4 Default sizes (MGL)</h3>
+
+<p>These commands control the default (initial) values for most graphics parameters including sizes of markers, arrows, linewidth and so on. As any other settings these ones will influence only on plots created after the settings change.
+</p>
+<a name="index-barwidth"></a>
+<p><a name="barwidth"></a>
+</p><dl>
+<dt><a name="index-barwidth-1"></a><u>MGL command:</u> <b>barwidth</b><i> <code>val</code></i></dt>
+<dd><p>Sets relative width of rectangles in <code>bars, barh, boxplot</code>. Default value is <code>0.7</code>.
+</p></dd></dl>
+
+<a name="index-marksize"></a>
+<p><a name="marksize"></a>
+</p><dl>
+<dt><a name="index-marksize-1"></a><u>MGL command:</u> <b>marksize</b><i> <code>val</code></i></dt>
+<dd><p>The size of marks. Default value is <code>1</code>.
+</p></dd></dl>
+
+<a name="index-arrowsize"></a>
+<p><a name="arrowsize"></a>
+</p><dl>
+<dt><a name="index-arrowsize-1"></a><u>MGL command:</u> <b>arrowsize</b><i> <code>val</code></i></dt>
+<dd><p>The size of arrows for lines and curves. Default value is <code>1</code>.
+</p></dd></dl>
+
+<a name="index-linewidth"></a>
+<p><a name="linewidth"></a>
+</p><dl>
+<dt><a name="index-linewidth-1"></a><u>MGL command:</u> <b>linewidth</b><i> <code>val</code></i></dt>
+<dd><p>The variable define the base width for all lines. The value &lt;1 is ignored. Increase of this variables is actual for large bitmap pictures. Default value is <code>1</code>.
+</p></dd></dl>
+
+<a name="index-ticklen"></a>
+<p><a name="ticklen"></a>
+</p><dl>
+<dt><a name="index-ticklen-1"></a><u>MGL command:</u> <b>ticklen</b><i> <code>val</code> [<code>stt=1</code>]</i></dt>
+<dd><p>The relative length of axis ticks. Default value is <code>0.1</code>. Parameter <var>stt</var>&gt;0 set relative length of subticks which is in <code>sqrt(1+stt)</code> times smaller.
+</p></dd></dl>
+
+<a name="index-tickstl"></a>
+<p><a name="tickstl"></a>
+</p><dl>
+<dt><a name="index-tickstl-1"></a><u>MGL command:</u> <b>tickstl</b><i> 'stl' ['sub'='']</i></dt>
+<dd><p>The line style of axis ticks (<var>stl</var>) and subticks (<var>sub</var>). If <var>stl</var>=&rdquo; then default style is used (&lsquo;<samp>k</samp>&rsquo; or &lsquo;<samp>w</samp>&rsquo; depending on transparency type). If <var>sub</var>=&rdquo; then ticks style is used (i.e. <var>stl</var>).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Zooming-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Default-sizes-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cutting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Zooming-_0028MGL_0029-1"></a>
+<h3 class="subsection">8.1.5 Zooming (MGL)</h3>
+
+<p>These commands control the overall zooming of the picture or the sub-picture. Normally you can use these variables and commands for removing &ldquo;white&rdquo; spaces around a plot.
+</p>
+<a name="index-plotfactor"></a>
+<p><a name="plotfactor"></a>
+</p><dl>
+<dt><a name="index-plotfactor-1"></a><u>MGL command:</u> <b>plotfactor</b><i> <code>val</code></i></dt>
+<dd><p>The factor of plot size. It is not recommended to set it lower then 1.6. This is some analogue of command <a href="#zoom">zoom</a> but applied not to overall image but for each <a href="#inplot">inplot</a>. Use negative value to enable automatic <a href="#plotfactor">plotfactor</a> selection.
+</p></dd></dl>
+
+<a name="index-zoom"></a>
+<p><a name="zoom"></a>
+</p><dl>
+<dt><a name="index-zoom-1"></a><u>MGL command:</u> <b>zoom</b><i> <code>x1 y1 x2 y2</code></i></dt>
+<dd><p>The command changes the scale of graphics that correspond to zoom in/out of the picture. After command call the current plot will be cleared and further the picture will contain plotting from its part [x1,x2]*[y1,y2]. Here picture coordinates <var>x1</var>, <var>x2</var>, <var>y1</var>, <var>y2</var> changes from 0 to 1. Use <code>zoom 0 0 1 1</code> to return default view.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cutting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Zooming-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-settings-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cutting-_0028MGL_0029-1"></a>
+<h3 class="subsection">8.1.6 Cutting (MGL)</h3>
+
+<p>These commands set the condition when the points are excluded (cutted) from the drawing. Note, that a point with <code>nan</code> value(s) of coordinate or amplitude will be automatically excluded from the drawing.
+</p>
+<a name="index-cut"></a>
+<p><a name="cut"></a>
+</p><dl>
+<dt><a name="index-cut-1"></a><u>MGL command:</u> <b>cut</b><i> <code>val</code></i></dt>
+<dd><p>Determines how points outside bounding box are drawn. If it is <code>on</code> then points are excluded from plot (it is default) otherwise the points are projected to edges of bounding box.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cut-2"></a><u>MGL command:</u> <b>cut</b><i> <code>x1 y1 z1 x2 y2 z2</code></i></dt>
+<dd><p>Lower and upper edge of the box in which never points are drawn. If both edges are the same (the variables are equal) then the cutting box is empty. See section <a href="mathgl_en_9.html#CutMinMax-sample">CutMinMax sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cut-3"></a><u>MGL command:</u> <b>cut</b><i> 'cond'</i></dt>
+<dd><p>Command set the cutting off condition by formula <var>cond</var>. This condition determine will point be plotted or not. If value of formula is nonzero then point is omitted, otherwise it plotted. Set argument as <code>''</code> to disable cutting off condition. See section <a href="mathgl_en_9.html#CutOff-sample">CutOff sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Other-settings-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cutting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Other-settings-_0028MGL_0029-1"></a>
+<h3 class="subsection">8.1.7 Other settings (MGL)</h3>
+
+<a name="index-font"></a>
+<p><a name="font"></a>
+</p><dl>
+<dt><a name="index-font-1"></a><u>MGL command:</u> <b>font</b><i> 'fnt' [<code>val=6</code>]</i></dt>
+<dd><p>Font style for text and labels (see text). Initial style is &rsquo;fnt&rsquo;=&rsquo;rC&rsquo; give Roman font with centering. Parameter <code>val</code> sets the size of font for tick and axis labels. Default font size of axis labels is 1.4 times large than for tick labels. For more detail, see section <a href="mathgl_en_1.html#Font-styles">Font styles</a>.
+</p></dd></dl>
+
+<a name="index-rotatetext"></a>
+<p><a name="rotatetext"></a>
+</p><dl>
+<dt><a name="index-rotatetext-1"></a><u>MGL command:</u> <b>rotatetext</b><i> <code>val</code></i></dt>
+<dd><p>Set to use or not text rotation along axis. Initial value is <code>on</code>.
+</p></dd></dl>
+
+<a name="index-palette"></a>
+<p><a name="palette"></a>
+</p><dl>
+<dt><a name="index-palette-1"></a><u>MGL command:</u> <b>palette</b><i> 'colors'</i></dt>
+<dd><p>Set the palette as selected colors. Default value is <code>'Hbgrcmyhlnqeup'</code>. The palette is used mostly in 1D plots for curves which styles are not specified.
+</p></dd></dl>
+
+<a name="index-meshnum"></a>
+<p><a name="meshnum"></a>
+</p><dl>
+<dt><a name="index-meshnum-1"></a><u>MGL command:</u> <b>meshnum</b><i> <code>num</code></i></dt>
+<dd><p>Sets approximate number of lines in <a href="#mesh">mesh</a>, <a href="#fall">fall</a>, <a href="#grid">grid</a> and also the number of hachures in <a href="#vect">vect</a>, <a href="#vectc">vectc</a>, <a href="#dew">dew</a> and the number of cells in <a href="#cloud">cloud</a>. By default (=0) it draws all lines/hachures/cells.
+</p></dd></dl>
+
+<a name="index-axialdir"></a>
+<p><a name="axialdir"></a>
+</p><dl>
+<dt><a name="index-axialdir-1"></a><u>MGL command:</u> <b>axialdir</b><i> 'dir'</i></dt>
+<dd><p>Set direction around which curve rotated in <a href="#axial">axial</a>, <a href="#torus">torus</a>. Default value is &rsquo;z&rsquo;.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axis-settings-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-settings-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transformation-matrix-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-settings-_0028MGL_0029-1"></a>
+<h2 class="section">8.2 Axis settings (MGL)</h2>
+
+<p>These large set of commands control how the axis and ticks will be drawn. Note that there is 3-step transformation of data coordinates are performed. Firstly, coordinates are projected and cutting is applied (see section <a href="#Cutting-_0028MGL_0029">Cutting (MGL)</a>), after it transformation formulas are applied, and finally the data was normalized in bounding box.
+</p>
+<a name="index-axis"></a>
+<p><a name="axis"></a>
+</p><dl>
+<dt><a name="index-axis-1"></a><u>MGL command:</u> <b>axis</b><i> <code>x1 y1 x2 y2</code></i></dt>
+<dt><a name="index-axis-2"></a><u>MGL command:</u> <b>axis</b><i> <code>x1 y1 z1 x2 y2 z2</code></i></dt>
+<dd><a name="index-ranges"></a>
+<p><a name="ranges"></a>
+</p></dd><dt><a name="index-ranges-1"></a><u>MGL command:</u> <b>ranges</b><i> <code>x1 x2 y1 y2 [z1=0 z2=0]</code></i></dt>
+<dd><p>Sets the ranges of coordinates changing. Also it sets the range for coloring (analogous to <code>caxis z1 z2</code>). Initial ranges are [-1, 1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axis-3"></a><u>MGL command:</u> <b>axis</b><i> 'fx' 'fy' ['fz'='' 'fa'='']</i></dt>
+<dd><p>Sets the transformation formulas for curvilinear coordinates. Each string should contain mathematical expression for real coordinate depending on internal coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; and &lsquo;<samp>a</samp>&rsquo; or &lsquo;<samp>c</samp>&rsquo; for colorbar. For example, the cylindrical coordinates are introduced as <code>axis 'x*cos(y)' 'x*sin(y)' 'z'</code>. For removing of formulas the corresponding parameter should be <code>''</code>. The using of transformation formulas will slightly slowing the program, i.e. <code>axis '' '' ''</code> is faster than <code>axis '1*x' '1*y' '1*z'</code>. Initially all formulas are absent (Cartesian coordinates are used). For more details about functions and formulas, see section <a href="mathgl_en_1.html#Textual-formulas">Textual formulas</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axis-4"></a><u>MGL command:</u> <b>axis</b><i> <code>how</code></i></dt>
+<dd><p>Sets one of the predefined transformation formulas for curvilinear coordinate. Paramater <var>how</var> define the coordinates: &lsquo;<samp>0</samp>&rsquo; &ndash; Cartesian coordinates (no transformation); &lsquo;<samp>1</samp>&rsquo; &ndash; Polar coordiantes <em>x_n=x*cos(y),y_n=x*sin(y), z_n=z</em>; &lsquo;<samp>2</samp>&rsquo; &ndash; Spherical coordinates <em>x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y)</em>; &lsquo;<samp>3</samp>&rsquo; &ndash; Parabolic coordinates <em>x_n=x*y, y_n=(x*x-y*y)/2, z_n=z</em>; &lsquo;<samp>4</samp>&rsquo; &ndash; Paraboloidal coordinates <em>x_n=(x*x-y*y)*cos(z)/2, y_n=(x*x-y*y)*sin(z)/2, z_n=x*y</em>; &lsquo;<samp>5</samp>&rsquo; &ndash; Oblate coordinates <em>x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z), z_n=sinh(x)*sin(y)</em>; &lsquo;<samp>6</samp>&rsquo; &ndash; Prolate coordinates <em>x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z), z_n=cosh(x)*cos(y)</em>; &lsquo;<samp>7</samp>&rsquo; &ndash; Elliptic coordinates <em>x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z</em>; &lsquo;<samp>8</samp>&rsquo; &ndash; Toroidal coordinates <em>x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)), y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y))</em>; &lsquo;<samp>9</samp>&rsquo; &ndash; Bispherical coordinates <em>x_n=sin(y)*cos(z)/(cosh(x)-cos(y)), y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y))</em>; &lsquo;<samp>10</samp>&rsquo; &ndash; Bipolar coordinates <em>x_n=sinh(x)/(cosh(x)-cos(y)), y_n=sin(y)/(cosh(x)-cos(y)), z_n=z</em>.
+</p></dd></dl>
+
+<a name="index-caxis"></a>
+<p><a name="caxis"></a>
+</p><dl>
+<dt><a name="index-caxis-1"></a><u>MGL command:</u> <b>caxis</b><i> <code>z1 z2</code></i></dt>
+<dd><p>Sets the range for surface coloring. Initial range is [-1, 1].
+</p></dd></dl>
+
+<a name="index-origin"></a>
+<p><a name="origin"></a>
+</p><dl>
+<dt><a name="index-origin-1"></a><u>MGL command:</u> <b>origin</b><i> <code>x0 y0 [z0=nan]</code></i></dt>
+<dd><p>Center of axis cross section. If one of values is <code>nan</code> then MathGL library try to select optimal axis position.
+</p></dd></dl>
+
+<a name="index-ternary"></a>
+<p><a name="ternary"></a>
+</p><dl>
+<dt><a name="index-ternary-1"></a><u>MGL command:</u> <b>ternary</b><i> <code>val</code></i></dt>
+<dd><p>The command sets to draws Ternary plot. This special plot is for 3 dependent coordinates (components) <var>a</var>, <var>b</var>, <var>c</var> so that <var>a</var>+<var>b</var>+<var>c</var>=1. MathGL uses only 2 independent coordinates <var>a</var>=x and <var>b</var>=y since it is enough to plot everything. At this third coordinate z act as another parameter to produce contour lines, surfaces and so on. See section <a href="mathgl_en_9.html#Ternary-plot-sample">Ternary plot sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-xrange"></a>
+<p><a name="xrange"></a>
+</p><dl>
+<dt><a name="index-xrange-1"></a><u>MGL command:</u> <b>xrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-yrange"></a>
+<p><a name="yrange"></a>
+</p></dd><dt><a name="index-yrange-1"></a><u>MGL command:</u> <b>yrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-zrange"></a>
+<p><a name="zrange"></a>
+</p></dd><dt><a name="index-zrange-1"></a><u>MGL command:</u> <b>zrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-crange"></a>
+<p><a name="crange"></a>
+</p></dd><dt><a name="index-crange-1"></a><u>MGL command:</u> <b>crange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><p>Sets the range for x-,y-,z- coordinate or coloring as minimal and maximal values of data <var>dat</var>. Parameter <code>add=on</code> shows that the new range will be joined to existed one (nut will not replace it). Parameter <var>fact</var> add additional range increase on value (<var>Max</var>-<var>Min</var>)*<var>fact</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xrange-2"></a><u>MGL command:</u> <b>xrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-yrange-2"></a><u>MGL command:</u> <b>yrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-zrange-2"></a><u>MGL command:</u> <b>zrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-crange-2"></a><u>MGL command:</u> <b>crange</b><i> <code>x1 x2</code></i></dt>
+<dd><p>Sets the range for x-,y-,z- coordinate or coloring. See also <a href="#axis">axis</a>.
+</p></dd></dl>
+
+<a name="index-xtick"></a>
+<p><a name="xtick"></a>
+</p><dl>
+<dt><a name="index-xtick-1"></a><u>MGL command:</u> <b>xtick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ytick"></a>
+<p><a name="ytick"></a>
+</p></dd><dt><a name="index-ytick-1"></a><u>MGL command:</u> <b>ytick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ztick"></a>
+<p><a name="ztick"></a>
+</p></dd><dt><a name="index-ztick-1"></a><u>MGL command:</u> <b>ztick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ctick"></a>
+<p><a name="ctick"></a>
+</p></dd><dt><a name="index-ctick-1"></a><u>MGL command:</u> <b>ctick</b><i> <code>val</code></i></dt>
+<dd><p>Sets step for x-, y-, z-axis ticks or colorbar ticks (if <var>val</var>&gt;0) or it&rsquo;s number (if <var>val</var>&lt;0) in corresponding direction. Zero value <var>val</var>=0 sets logarithmic ticks. Parameter <var>sub</var> sets the number of sub-ticks. Parameter <var>org</var> set the starting points for ticks. If not <code>org=nan</code> then the value from <a href="#origin">origin</a> is used.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xtick-2"></a><u>MGL command:</u> <b>xtick</b><i> 'templ'</i></dt>
+<dt><a name="index-ytick-2"></a><u>MGL command:</u> <b>ytick</b><i> 'templ'</i></dt>
+<dt><a name="index-ztick-2"></a><u>MGL command:</u> <b>ztick</b><i> 'templ'</i></dt>
+<dt><a name="index-ctick-2"></a><u>MGL command:</u> <b>ctick</b><i> 'templ'</i></dt>
+<dd><p>Sets the template for x-, y-, z-axis ticks or colorbar ticks. It may contain TeX symbols also. If <var>templ</var>=<code>''</code> then default template is used (in simplest case it is &lsquo;<samp>%.2g</samp>&rsquo;) with automatic detaching of common multiplier or common component.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xtick-3"></a><u>MGL command:</u> <b>xtick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dt><a name="index-ytick-3"></a><u>MGL command:</u> <b>ytick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dt><a name="index-ztick-3"></a><u>MGL command:</u> <b>ztick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dd><p>Sets manual positions <var>val1</var>,<var>val2</var>,... and labels <var>lbl1</var>,<var>lbl2</var>,... for ticks along x-, y-, z-axis. Labels may contain TeX symbols also.
+</p></dd></dl>
+
+<a name="index-adjust"></a>
+<p><a name="adjust"></a>
+</p><dl>
+<dt><a name="index-adjust-1"></a><u>MGL command:</u> <b>adjust</b><i> ['dir'='xyzc']</i></dt>
+<dd><p>Set the ticks step, number of sub-ticks and initial ticks position to be the most human readable for the axis along direction(s) <var>dir</var>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Transformation-matrix-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-settings-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Export-to-file-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transformation-matrix-_0028MGL_0029-1"></a>
+<h2 class="section">8.3 Transformation matrix (MGL)</h2>
+
+<p>These commands control how and where further plotting will be placed. There is a curtain order of calling of these commands for the better plot view. First one should be <a href="#subplot">subplot</a> or <a href="#inplot">inplot</a> for specifying the place. After it a <a href="#rotate">rotate</a> and <a href="#aspect">aspect</a>. And finally any other plotting commands may be called. Alternatevely you can use <a href="#columnplot">columnplot</a> for position plots in the column one by another without gap between plot axis (bounding boxes).
+</p>
+<a name="index-subplot"></a>
+<p><a name="subplot"></a>
+</p><dl>
+<dt><a name="index-subplot-1"></a><u>MGL command:</u> <b>subplot</b><i> <code>nx ny m [dx=0 dy=0]</code></i></dt>
+<dd><p>Puts further plotting in a <var>m</var>-th cell of <var>nx</var>*<var>ny</var> grid of the whole frame area. This command set off any aspects or rotations. So it should be used first for creating the subplot. From the aesthetical point of view it is not recommended to use this command with different matrices in the same frame. The position of the cell can be shifted from its default position by relative size <var>dx</var>, <var>dy</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-subplot-2"></a><u>MGL command:</u> <b>subplot</b><i> <code>nx ny m</code> 'style'</i></dt>
+<dd><p>The same as previous but space reserved for axis/colorbar is saved only if <var>style</var> contain: &lsquo;<samp>L</samp>&rsquo; or &lsquo;<samp>&lt;</samp>&rsquo; &ndash; at left side, &lsquo;<samp>R</samp>&rsquo; or &lsquo;<samp>&gt;</samp>&rsquo; &ndash; at right side, &lsquo;<samp>A</samp>&rsquo; or &lsquo;<samp>^</samp>&rsquo; &ndash; at top side, &lsquo;<samp>U</samp>&rsquo; or &lsquo;<samp>_</samp>&rsquo; &ndash; at bottom side.
+</p></dd></dl>
+
+<a name="index-inplot"></a>
+<p><a name="inplot"></a>
+</p><dl>
+<dt><a name="index-inplot-1"></a><u>MGL command:</u> <b>inplot</b><i> <code>x1 x2 y1 y2 [rel=off]</code></i></dt>
+<dd><p>Puts further plotting in some region of the whole frame surface. This command allows one to create a plot in arbitrary place of the screen. The position is defined by rectangular coordinates [<var>x1</var>, <var>x2</var>]*[<var>y1</var>, <var>y2</var>]. The coordinates <var>x1</var>, <var>x2</var>, <var>y1</var>, <var>y2</var> are normalized to interval [0, 1]. If parameter <var>rel</var>=<code>on</code> then the relative position to current <a href="#subplot">subplot</a> is used. This command set off any aspects or rotations. So it should be used first for creating subplot.
+</p></dd></dl>
+
+<a name="index-columnplot"></a>
+<p><a name="columnplot"></a>
+</p><dl>
+<dt><a name="index-columnplot-1"></a><u>MGL command:</u> <b>columnplot</b><i> <code>num ind [d=0]</code></i></dt>
+<dd><p>Puts further plotting in <var>ind</var>-th cell of column with <var>num</var> cells. The position is relative to previous <a href="#subplot">subplot</a> call (or <a href="#inplot">inplot</a> with <code>rel=off</code>). Parameter <var>d</var> set extra gap between cells.
+</p></dd></dl>
+
+<a name="index-stickplot"></a>
+<p><a name="stickplot"></a>
+</p><dl>
+<dt><a name="index-stickplot-1"></a><u>MGL command:</u> <b>stickplot</b><i> <code>num ind tet phi</code></i></dt>
+<dd><p>Puts further plotting in <var>ind</var>-th cell of stick with <var>num</var> cells. At this, stick is rotated on angles <var>tet</var>, <var>phi</var>. The position is relative to previous <a href="#subplot">subplot</a> call (or <a href="#inplot">inplot</a> with <code>rel=off</code>).
+</p></dd></dl>
+
+<a name="index-rotate"></a>
+<p><a name="rotate"></a>
+</p><dl>
+<dt><a name="index-rotate-1"></a><u>MGL command:</u> <b>rotate</b><i> <code>tetz tetx [tety=0]</code></i></dt>
+<dd><p>Rotates a further plotting relative to each axis (x, z, y) consecutively on angles <var>tetx</var>, <var>tetz</var>, <var>tety</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-rotate-2"></a><u>MGL command:</u> <b>rotate</b><i> <code>tet x y z</code></i></dt>
+<dd><p>Rotates a further plotting around vector {x,y,z} on angle <var>tet</var>.
+</p></dd></dl>
+
+<a name="index-aspect"></a>
+<p><a name="aspect"></a>
+</p><dl>
+<dt><a name="index-aspect-1"></a><u>MGL command:</u> <b>aspect</b><i> <code>ax ay [az=1]</code></i></dt>
+<dd><p>Defines aspect ratio for the plot. The viewable axes will be related one to another as the ratio <var>ax:ay:az</var>. For the best effect it should be used after <a href="#rotate">rotate</a> command.
+</p></dd></dl>
+
+<a name="index-perspective"></a>
+<p><a name="perspective"></a>
+</p><dl>
+<dt><a name="index-perspective-1"></a><u>MGL command:</u> <b>perspective</b><i> <code>val</code></i></dt>
+<dd><p>Add (switch on) the perspective to plot. The parameter <em>val ~ 1/z_eff \in [0,1)</em>. By default (<code>val=0</code>) the perspective is off.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Export-to-file-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transformation-matrix-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Primitives-drawing-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Export-to-file-_0028MGL_0029-1"></a>
+<h2 class="section">8.4 Export to file (MGL)</h2>
+
+<a name="index-write"></a>
+<p><a name="write"></a>
+</p><dl>
+<dt><a name="index-write-1"></a><u>MGL command:</u> <b>write</b><i> 'fname' [<code>solid=off</code>]</i></dt>
+<dd><p>Exports current picture/frame to file &rsquo;fname&rsquo; (file type is determined by extension). Solid (usually white) background will be used if <code>solid=on</code>. If &rsquo;fname&rsquo;=&rdquo; then the file &lsquo;<samp>frameNNNN.jpg</samp>&rsquo; is used, where &lsquo;<samp>NNNN</samp>&rsquo; is current frame id.
+</p></dd></dl>
+
+<a name="index-setsize"></a>
+<p><a name="setsize"></a>
+</p><dl>
+<dt><a name="index-setsize-1"></a><u>MGL command:</u> <b>setsize</b><i> <code>w h</code></i></dt>
+<dd><p>Sets size of picture in pixels. This function call <strong>must be</strong> placed before any plotting command because it completely remove picture content. In some program the call of this function is forbidden.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Primitives-drawing-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Export-to-file-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Primitives-drawing-1"></a>
+<h2 class="section">8.5 Primitives drawing</h2>
+
+<p>These commands draw some simple objects like line, point, sphere, drop, cone and so on.
+</p>
+<a name="index-clf"></a>
+<p><a name="clf"></a>
+</p><dl>
+<dt><a name="index-clf-1"></a><u>MGL command:</u> <b>clf</b></dt>
+<dd><p>Clear the picture by removes all drawing from it. Does not change transformation matrix. 
+</p></dd></dl>
+
+<a name="index-ball"></a>
+<p><a name="ball"></a>
+</p><dl>
+<dt><a name="index-ball-1"></a><u>MGL command:</u> <b>ball</b><i> <code>x y</code> ['col'='r']</i></dt>
+<dt><a name="index-ball-2"></a><u>MGL command:</u> <b>ball</b><i> <code>x y z</code> ['col'='r']</i></dt>
+<dd><p>Draws a point (ball) at position {<var>x</var>, <var>y</var>, <var>z</var>} with color defined by string <var>col</var>.
+</p></dd></dl>
+
+<a name="index-line"></a>
+<p><a name="line"></a>
+</p><dl>
+<dt><a name="index-line-1"></a><u>MGL command:</u> <b>line</b><i> <code>x1 y1 x2 y2</code> ['stl'='']</i></dt>
+<dt><a name="index-line-2"></a><u>MGL command:</u> <b>line</b><i> <code>x1 y1 z1 x2 y2 z2</code> ['stl'='']</i></dt>
+<dd><p>Draws a geodesic line (straight line in Cartesian coordinates) from point {<var>x1</var>,<var>y1</var>,<var>z1</var>} to {<var>x2</var>,<var>y2</var>,<var>z2</var>} using line style <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-curve"></a>
+<p><a name="curve"></a>
+</p><dl>
+<dt><a name="index-curve-1"></a><u>MGL command:</u> <b>curve</b><i> <code>x1 y1 dx1 dy1 x2 y2 dx2 dy2</code> ['stl'='']</i></dt>
+<dt><a name="index-curve-2"></a><u>MGL command:</u> <b>curve</b><i> <code>x1 y1 z1 dx1 dy1 dz1 x2 y2 z2 dx2 dy2 dz2</code> ['stl'='']</i></dt>
+<dd><p>Draws Bezier-like curve from point {<var>x1</var>,<var>y1</var>,<var>z1</var>} to {<var>x2</var>,<var>y2</var>,<var>z2</var>} using line style <var>stl</var>. At this tangent is co-directed with {<var>dx1</var>,<var>dy1</var>,<var>dz1</var>}, {<var>dx2</var>,<var>dy2</var>,<var>dz2</var>} and proportional to its amplitude.
+</p></dd></dl>
+
+<a name="index-facex"></a>
+<p><a name="facex"></a>
+</p><dl>
+<dt><a name="index-facex-1"></a><u>MGL command:</u> <b>facex</b><i> <code>x0 y0 z0 wy wz</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><a name="index-facey"></a>
+<p><a name="facey"></a>
+</p></dd><dt><a name="index-facey-1"></a><u>MGL command:</u> <b>facey</b><i> <code>x0 y0 z0 wx wz</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><a name="index-facez"></a>
+<p><a name="facez"></a>
+</p></dd><dt><a name="index-facez-1"></a><u>MGL command:</u> <b>facez</b><i> <code>x0 y0 z0 wx wy</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><p>Draws the solid rectangle (face) perpendicular to [x,y,z]-axis correspondingly at position {<var>x0</var>, <var>y0</var>, <var>z0</var>} with color <var>stl</var> and with widths <var>wx</var>, <var>wy</var>, <var>wz</var> along corresponding directions. At this colors can be the same for all vertexes or different if all 4 colors are specified for each vertex. Parameters <var>d1</var>!=0, <var>d2</var>!=0 set additional shift of the last vertex (i.e. to draw quadrangle).
+</p></dd></dl>
+
+<a name="index-sphere"></a>
+<p><a name="sphere"></a>
+</p><dl>
+<dt><a name="index-sphere-1"></a><u>MGL command:</u> <b>sphere</b><i> <code>x0 y0 r</code> ['col'='r']</i></dt>
+<dt><a name="index-sphere-2"></a><u>MGL command:</u> <b>sphere</b><i> <code>x0 y0 z0 r</code> ['col'='r']</i></dt>
+<dd><p>Draw the sphere with radius <var>r</var> and center at point {<var>x0</var>, <var>y0</var>, <var>z0</var>} and color <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-drop"></a>
+<p><a name="drop"></a>
+</p><dl>
+<dt><a name="index-drop-1"></a><u>MGL command:</u> <b>drop</b><i> <code>x0 y0 dx dy r</code> ['col'='b' <code>sh=1 asp=1</code>]</i></dt>
+<dt><a name="index-drop-2"></a><u>MGL command:</u> <b>drop</b><i> <code>x0 y0 z0 dx dy dz r</code> ['col'='b' <code>sh=1 asp=1</code>]</i></dt>
+<dd><p>Draw the drop with radius <var>r</var> at point {<var>x0</var>,<var>y0</var>,<var>z0</var>} elongated in direction {<var>dx</var>,<var>dy</var>,<var>dz</var>} and with color <var>col</var>. Parameter <var>sh</var> set the degree of drop oblongness: &lsquo;<samp>0</samp>&rsquo; is sphere, &lsquo;<samp>1</samp>&rsquo; is maximally oblongness drop. Parameter <var>asp</var> set relative width of the drop (this is analogue of &ldquo;ellipticity&rdquo; for the sphere). See section <a href="mathgl_en_9.html#Drops-sample">Drops sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-cone"></a>
+<p><a name="cone"></a>
+</p><dl>
+<dt><a name="index-cone-1"></a><u>MGL command:</u> <b>cone</b><i> <code>x1 y1 z1 x2 y2 z2 r1</code> [<code>r2=-1</code> 'stl'='' <code>edge=off</code>]</i></dt>
+<dd><p>Draw tube (or truncated cone if <var>edge</var>=<code>off</code>) between points {<var>x1</var>,<var>y1</var>,<var>z1</var>}, {<var>x2</var>,<var>y2</var>,<var>z2</var>} with radiuses at the edges <var>r1</var>, <var>r2</var>. If <var>r2</var>&lt;0 then it is supposed that <var>r2</var>=<var>r1</var>. The cone color is defined by string <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-rect"></a>
+<p><a name="rect"></a>
+</p><dl>
+<dt><a name="index-rect-1"></a><u>MGL command:</u> <b>rect</b><i> <code>x1 y1 x2 y2</code> ['st'='']</i></dt>
+<dt><a name="index-rect-2"></a><u>MGL command:</u> <b>rect</b><i> <code>x1 y1 z1 x2 y2 z2</code> ['st'='']</i></dt>
+<dd><p>Draw rectangle from point {<var>x1</var>,<var>y1</var>,<var>z1</var>} to point {<var>x2</var>,<var>y2</var>,<var>z2</var>} using colors <var>stl</var>. If <var>stl</var> have 4 or more colors then it defines colors for each rectangle vertex (useful for making gradients, like &lsquo;<samp>wwrr</samp>&rsquo;) else first color is used for whole rectangle.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Text-printing-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Primitives-drawing-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-Colorbar-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-printing-_0028MGL_0029-1"></a>
+<h2 class="section">8.6 Text printing (MGL)</h2>
+
+<p>These commands draw the text. There are commands for drawing text in arbitrary place, in arbitrary direction and along arbitrary curve. It is possible to use arbitrary font-faces and parse many TeX commands. The Unicode text is supported. So sometimes you need to specify locale. The <code>size</code> argument control the size of text: if positive it give the value, if negative it give the value relative to defined by <code>font</code> command. See section <a href="mathgl_en_1.html#Font-styles">Font styles</a>.
+</p>
+<a name="index-text"></a>
+<p><a name="text"></a>
+</p><dl>
+<dt><a name="index-text-1"></a><u>MGL command:</u> <b>text</b><i> <code>x y</code> 'text' ['fnt'='' <code>size=-1.4</code>]</i></dt>
+<dt><a name="index-text-2"></a><u>MGL command:</u> <b>text</b><i> <code>x y z</code> 'text' ['fnt'='' <code>size=-1.4</code>]</i></dt>
+<dd><p>Draws unrotated text string <var>text</var> at position {<var>x</var>,<var>y</var>,<var>z</var>} with specified style <var>fnt</var> and <var>size</var>. By default parameters from <code>font</code> command are used.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-text-3"></a><u>MGL command:</u> <b>text</b><i> <code>x y dx dy</code> 'text' [<code>size=-1.4</code>]</i></dt>
+<dt><a name="index-text-4"></a><u>MGL command:</u> <b>text</b><i> <code>x y z dx dy dz</code> 'text' [<code>size=-1.4</code>]</i></dt>
+<dd><p>The command plots the string <var>text</var> at position {<var>x</var>,<var>y</var>,<var>z</var>} along direction {<var>dx</var>,<var>dy</var>,<var>dz</var>} with specified style <var>fnt</var> and <var>size</var>. By default parameters from <code>font</code> command are used.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-text-5"></a><u>MGL command:</u> <b>text</b><i> ydat 'text' ['fnt'='' <code>size=-1 zval=nan</code>]</i></dt>
+<dt><a name="index-text-6"></a><u>MGL command:</u> <b>text</b><i> xdat ydat 'text' ['fnt'='' <code>size=-1 zval=nan</code>]</i></dt>
+<dt><a name="index-text-7"></a><u>MGL command:</u> <b>text</b><i> xdat ydat zdat 'text' ['fnt'='' <code>size=-1</code>]</i></dt>
+<dd><p>The command draws <var>text</var> along the curve between points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} by font style <var>fnt</var> and with size <var>size</var>. The string <var>fnt</var> may contain symbols &lsquo;<samp>t</samp>&rsquo; for printing the text under the curve (default), or &lsquo;<samp>T</samp>&rsquo; for printing the text above the curve. The sizes of 1st dimension must be equal for all arrays <var>xdat.nx=ydat.nx=zdat.nx</var>. If array <var>xdat</var> is not specified then its an automatic array is used with values equidistantly distributed along x. If array <var>zdat</var> is not specified then <var>z</var>[i] = <var>zval</var> is used. See section <a href="mathgl_en_9.html#Text-sample">Text sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-title"></a>
+<p><a name="title"></a>
+</p><dl>
+<dt><a name="index-title-1"></a><u>MGL command:</u> <b>title</b><i> 'text' ['fnt'='' <code>size=-2</code>]</i></dt>
+<dd><p>Print string <var>text</var> as title of the picture (at the top of the picture). Can be used at any place (even inside <a href="#subplot">subplot</a>).
+</p></dd></dl>
+
+<a name="index-fgets"></a>
+<p><a name="fgets"></a>
+</p><dl>
+<dt><a name="index-fgets-1"></a><u>MGL command:</u> <b>fgets</b><i> <code>x y</code> 'fname' [<code>n=0</code> 'fnt'='' <code>size=-1.4</code>]</i></dt>
+<dt><a name="index-fgets-2"></a><u>MGL command:</u> <b>fgets</b><i> <code>x y z</code> 'fname' [<code>n=0</code> 'fnt'='' <code>size=-1.4</code>]</i></dt>
+<dd><p>Draws unrotated <var>n</var>-th line of file <var>fname</var> at position {<var>x</var>,<var>y</var>,<var>z</var>} with specified <var>size</var>. By default parameters from <a href="#font">font</a> command are used.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Axis-and-Colorbar-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-and-Colorbar-_0028MGL_0029-1"></a>
+<h2 class="section">8.7 Axis and Colorbar (MGL)</h2>
+
+<p>These commands draw the &ldquo;things for measuring&rdquo;, like axis with ticks, colorbar with ticks, grid along axis, bounding box and labels for axis. For more information see section <a href="#Axis-settings-_0028MGL_0029">Axis settings (MGL)</a>.
+</p>
+<a name="index-axis-5"></a>
+<dl>
+<dt><a name="index-axis-6"></a><u>MGL command:</u> <b>axis</b><i> ['dir'='xyz' <code>adjust=off</code>]</i></dt>
+<dd><p>Draws axes with ticks (see section <a href="#Axis-settings-_0028MGL_0029">Axis settings (MGL)</a>) in directions determined by string parameter <var>dir</var>.If string contain the symbol &lsquo;<samp>_</samp>&rsquo; then tick labels are not printed. Font for ticks labels is determined by command <a href="#font">font</a>. Ticks will be automatically adjusted if <var>adjust</var>=<code>on</code> (by call of <code>adjust 'dir'</code>).
+</p></dd></dl>
+
+<a name="index-colorbar"></a>
+<p><a name="colorbar"></a>
+</p><dl>
+<dt><a name="index-colorbar-1"></a><u>MGL command:</u> <b>colorbar</b><i> ['sch'='' <code>pos=0</code>]</i></dt>
+<dd><p>Draws colorbar with color scheme <var>sch</var> (current scheme if <code>sch=''</code>) at edge of plot. Parameter <var>pos</var> specifies the position of colorbar: &lsquo;<samp>0</samp>&rsquo; - at right (default), &lsquo;<samp>1</samp>&rsquo; - at left, &lsquo;<samp>2</samp>&rsquo; - at top, &lsquo;<samp>3</samp>&rsquo; - at bottom. If string <var>sch</var> contains &lsquo;<samp>&lt;&gt;^_</samp>&rsquo; then the parameter <var>pos</var> is defined as: <code>pos=0</code> for &lsquo;<samp>&gt;</samp>&rsquo; (right), <code>pos=1</code> for &lsquo;<samp>&lt;</samp>&rsquo; (left), <code>pos=2</code> for &lsquo;<samp>^</samp>&rsquo; (top), <code>pos=3</code> for &lsquo;<samp>_</samp>&rsquo; (bottom). If string have &lsquo;<samp>A</samp>&rsquo; then absolute (relative to picture) coordinates is used. See section <a href="mathgl_en_9.html#Dens-sample">Dens sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-colorbar-2"></a><u>MGL command:</u> <b>colorbar</b><i> vdat ['sch'='' <code>pos=0</code>]</i></dt>
+<dd><p>The same as previous but with sharp colors <var>sch</var> (current palette if <code>sch=&quot;&quot;</code>) for values <var>v</var>. See section <a href="mathgl_en_9.html#ContD-sample">ContD sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-colorbar-3"></a><u>MGL command:</u> <b>colorbar</b><i> 'sch' <code>pos x y w h</code></i></dt>
+<dd><p>The same as first one but at arbitrary position of subplot {<var>x</var>, <var>y</var>} (supposed to be in range [0,1]). Parameters <var>w</var>, <var>h</var> set the relative width and height of the colorbar.
+</p></dd></dl>
+
+<a name="index-grid"></a>
+<p><a name="grid"></a>
+</p><dl>
+<dt><a name="index-grid-1"></a><u>MGL command:</u> <b>grid</b><i> ['dir'='xyz' 'pen'='B']</i></dt>
+<dd><p>Draws grid lines perpendicular to direction determined by string parameter <var>dir</var>. The step of grid lines is the same as tick step for an <code>axis</code>. The style of lines is determined by <var>pen</var> parameter.
+</p></dd></dl>
+
+<a name="index-box"></a>
+<p><a name="box"></a>
+</p><dl>
+<dt><a name="index-box-1"></a><u>MGL command:</u> <b>box</b><i> ['stl'='k' <code>ticks=on</code>]</i></dt>
+<dd><p>Draws bounding box outside the plotting volume with line style &rsquo;stl&rsquo;. If <code>ticks=on</code> then ticks are drawn with current axis setting.
+</p></dd></dl>
+
+<a name="index-xlabel"></a>
+<p><a name="xlabel"></a>
+</p><dl>
+<dt><a name="index-xlabel-1"></a><u>MGL command:</u> <b>xlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-ylabel"></a>
+<p><a name="ylabel"></a>
+</p></dd><dt><a name="index-ylabel-1"></a><u>MGL command:</u> <b>ylabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-zlabel"></a>
+<p><a name="zlabel"></a>
+</p></dd><dt><a name="index-zlabel-1"></a><u>MGL command:</u> <b>zlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-tlabel"></a>
+<p><a name="tlabel"></a>
+</p></dd><dt><a name="index-tlabel-1"></a><u>MGL command:</u> <b>tlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><p>Prints the label <var>text</var> for x-,y-,z-,t-axis (here &lsquo;<samp>t</samp>&rsquo; is &ldquo;ternary&rdquo; axis <em>t=1-x-y</em>). The position of label is determined by <var>pos</var> parameter. If <var>pos</var>=0 then label is printed at the center of axis. If <var>pos</var>&gt;0 then label is printed at the maximum of axis (default). If <var>pos</var>&lt;0 then label is printed at the minimum of axis. The font size is 1.4 times larger than the one for ticks <code>font</code>. Parameter <code>shift</code> specify additional shifting of the label. See section <a href="#Text-printing-_0028MGL_0029">Text printing (MGL)</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Legend-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-Colorbar-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Legend-_0028MGL_0029-1"></a>
+<h2 class="section">8.8 Legend (MGL)</h2>
+
+<p>These commands draw legend to the graph (useful for <a href="#g_t1D-plotting-_0028MGL_0029">1D plotting (MGL)</a>). Legend entry is a pair of strings: one for style of the line, another one with description text (with included LaTeX parsing). The array of string are accumulated first to the internal arrays (by command <a href="#addlegend">addlegend</a>) and are plotted later. The position of the legend can be selected automatic or manually. Parameters <var>fnt</var> and <var>size</var> specify the font style and size. Parameter <var>llen</var> set the relative width of the line sample and the text indent (default value is 0.1). If line style string for entry is empty then the corresponding text is printed without indent. If string contains &lsquo;<samp>A</samp>&rsquo; then legend coordinates set position in the picture. See section <a href="mathgl_en_9.html#Legend-sample">Legend sample</a>, for sample code and picture.
+</p>
+<a name="index-legend"></a>
+<p><a name="legend"></a>
+</p><dl>
+<dt><a name="index-legend-1"></a><u>MGL command:</u> <b>legend</b><i> [<code>pos=3</code> 'fnt'='rL' <code>size=-1 llen=0.1</code>]</i></dt>
+<dd><p>Draws legend of accumulated legend entries by font <var>fnt</var> with specified <var>size</var>. Parameter <var>pos</var> sets the position of the legend: &lsquo;<samp>0</samp>&rsquo; is bottom left corner, &lsquo;<samp>1</samp>&rsquo; is bottom right corner, &lsquo;<samp>2</samp>&rsquo; is top left corner, &lsquo;<samp>3</samp>&rsquo; is top right corner (is default).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-legend-2"></a><u>MGL command:</u> <b>legend</b><i> <code>x y</code> ['fnt'='rL' <code>size=-1 llen=0.1</code>]</i></dt>
+<dd><p>Draws legend of accumulated legend entries by font <var>fnt</var> with <var>size</var>. Position of legend in the current subplot is determined by parameter <var>x</var>, <var>y</var> which supposed to be normalized to interval [0,1].
+</p></dd></dl>
+
+<a name="index-addlegend"></a>
+<p><a name="addlegend"></a>
+</p><dl>
+<dt><a name="index-addlegend-1"></a><u>MGL command:</u> <b>addlegend</b><i> 'text' 'stl'</i></dt>
+<dd><p>Adds string <var>text</var> to internal legend accumulator. The style of described line and mark is specified in string <var>stl</var> (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). Maximal number of entries is 100.
+</p></dd></dl>
+
+<a name="index-clearlegend"></a>
+<p><a name="clearlegend"></a>
+</p><dl>
+<dt><a name="index-clearlegend-1"></a><u>MGL command:</u> <b>clearlegend</b></dt>
+<dd><p>Clears saved legend strings.
+</p></dd></dl>
+
+<a name="index-legendbox"></a>
+<p><a name="legendbox"></a>
+</p><dl>
+<dt><a name="index-legendbox-1"></a><u>MGL command:</u> <b>legendbox</b><i> <code>val</code></i></dt>
+<dd><p>Switches on/off the drawing of a box near legend. By default, the box is drawn.
+</p></dd></dl>
+
+<a name="index-legendmarks"></a>
+<p><a name="legendmarks"></a>
+</p><dl>
+<dt><a name="index-legendmarks-1"></a><u>MGL command:</u> <b>legendmarks</b><i> <code>val</code></i></dt>
+<dd><p>Set the number of marks in the legend. By default 1 mark is used.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t1D-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-plotting-_0028MGL_0029-1"></a>
+<h2 class="section">8.9 1D plotting (MGL)</h2>
+
+<p>These commands perform plotting of 1D data. 1D means that data depended from only 1 parameter like parametric curve {x(i),y(i),z(i)}, i=1...n. There are 5 generally different types of data representations: simple line plot (<a href="#plot">plot</a>), line plot with filling under it (<a href="#area">area</a>), stairs plot (<a href="#step">step</a>), bar plot (<a href="#bars">bars</a>, <a href="#barh">barh</a>) and vertical lines (<a href="#stem">stem</a>). Each type of plotting has similar interface. Most of plotting type has similar interface. There are 3D version and two 2D versions. One of last requires single array. The parameters of line and marks are specified by the string argument. If the string parameter is NULL then solid line with color from palette is used (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). Also there are some special 1d plots having slightly different interface: surface of curve rotation (<a href="#torus">torus</a>), chart (<a href="#chart">chart</a>) and error boxes (<a href="#error">error</a>), marks with variable size (<a href="#mark">mark</a>), tubes (<a href="#tube">tube</a>) and so on. See section <a href="mathgl_en_9.html#g_t1D-plot-sample">1D plot sample</a>, for sample code and picture.
+</p>
+<p>The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <var>xdat.nx=ydat.nx=zdat.nx</var>. If array <var>xdat</var> is not specified then its an automatic array is used with values equidistantly distributed along x. If array <var>zdat</var> is not specified then <var>zdat</var>[i] = <var>zval</var> is used (the default is at the bottom of the bounding box). String <var>stl</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>stl=''</code>) solid line with color from palette is used (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>).
+</p>
+<a name="index-plot"></a>
+<p><a name="plot"></a>
+</p><dl>
+<dt><a name="index-plot-1"></a><u>MGL command:</u> <b>plot</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-plot-2"></a><u>MGL command:</u> <b>plot</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-plot-3"></a><u>MGL command:</u> <b>plot</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws continuous lines between points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. See also <a href="#area">area</a>, <a href="#step">step</a>, <a href="#stem">stem</a>, <a href="#tube">tube</a>, <a href="#mark">mark</a>, <a href="#error">error</a>, <a href="#belt">belt</a>, <a href="#tens">tens</a>. See section <a href="mathgl_en_9.html#Plot-sample">Plot sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+<a name="index-radar"></a>
+<p><a name="radar"></a>
+</p><dl>
+<dt><a name="index-radar-1"></a><u>MGL command:</u> <b>radar</b><i> adat ['stl'='' <code>r=-1</code>]</i></dt>
+<dd><p>Draws radar chart which is continuous lines between points located on an radial lines (like plot in Polar coordinates). The plots are drawn for each row if one of the data is the matrix. Parameter <var>r</var> set the additional shift of data (i.e. the data <var>adat</var>+<var>r</var> is used instead of <var>adat</var>). If <code>r&lt;0</code> then <code>r=max(0, -min(adat)</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>stl=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). If <var>pen</var> containt &lsquo;<samp>#</samp>&rsquo; symbol then &quot;grid&quot; (radial lines and circle for <var>r</var>) is drawn See also <a href="#plot">plot</a>. See section <a href="mathgl_en_9.html#Radar-sample">Radar sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-tens"></a>
+<p><a name="tens"></a>
+</p><dl>
+<dt><a name="index-tens-1"></a><u>MGL command:</u> <b>tens</b><i> ydat cdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tens-2"></a><u>MGL command:</u> <b>tens</b><i> xdat ydat cdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tens-3"></a><u>MGL command:</u> <b>tens</b><i> xdat ydat zdat cdat ['stl'='']</i></dt>
+<dd><p>Draws continuous lines between points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} with color defined by <var>cdat</var>[i] (look like tension plot). See also <a href="#plot">plot</a>, <a href="#mesh">mesh</a>, <a href="#fall">fall</a>. See section <a href="mathgl_en_9.html#Tens-sample">Tens sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-area"></a>
+<p><a name="area"></a>
+</p><dl>
+<dt><a name="index-area-1"></a><u>MGL command:</u> <b>area</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-area-2"></a><u>MGL command:</u> <b>area</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-area-3"></a><u>MGL command:</u> <b>area</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws continuous lines between points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} and fills it down to axis (to axis plane in 3D). You can use gradient filling if number of specified colors is equal to 2*number of curves. If string contain symbol &lsquo;<samp>a</samp>&rsquo; then lines are drawn one above another (like summation). See also <a href="#plot">plot</a>, <a href="#bars">bars</a>, <a href="#stem">stem</a>, <a href="#region">region</a>. See section <a href="mathgl_en_9.html#Area-sample">Area sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-region"></a>
+<p><a name="region"></a>
+</p><dl>
+<dt><a name="index-region-1"></a><u>MGL command:</u> <b>region</b><i> fdat gdat ['stl'='' <code>inside=off</code>]</i></dt>
+<dt><a name="index-region-2"></a><u>MGL command:</u> <b>region</b><i> xdat fdat gdat ['stl'='' <code>inside=off</code>]</i></dt>
+<dd><p>Fills area between curves {<var>xdat</var>[i], <var>fdat</var>[i]} and {<var>xdat</var>[i], <var>gdat</var>[i]}. Parameter  <code>inside=off</code> set to fill are with y1&lt;y&lt;y2 else the area with y2&lt;y&lt;y1 will be also filled. You can use gradient filling if number of specified colors is equal to 2*number of curves. See also <a href="#area">area</a>, <a href="#bars">bars</a>, <a href="#stem">stem</a>. See section <a href="mathgl_en_9.html#Region-sample">Region sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-stem"></a>
+<p><a name="stem"></a>
+</p><dl>
+<dt><a name="index-stem-1"></a><u>MGL command:</u> <b>stem</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-stem-2"></a><u>MGL command:</u> <b>stem</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-stem-3"></a><u>MGL command:</u> <b>stem</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws vertical lines from points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} to axis (to axis plane in 3D). See also <a href="#area">area</a>, <a href="#bars">bars</a>, <a href="#plot">plot</a>, <a href="#mark">mark</a>. See section <a href="mathgl_en_9.html#Stem-sample">Stem sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-bars"></a>
+<p><a name="bars"></a>
+</p><dl>
+<dt><a name="index-bars-1"></a><u>MGL command:</u> <b>bars</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-bars-2"></a><u>MGL command:</u> <b>bars</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-bars-3"></a><u>MGL command:</u> <b>bars</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws vertical bars from points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} to axis (to axis plane in 3D). If style contain symbol &lsquo;<samp>a</samp>&rsquo; then lines are drawn one above another. If string contain symbol &lsquo;<samp>f</samp>&rsquo; then waterfall chart is drawn for determining the cumulative effect of sequentially introduced positive or negative values. You can different colors for positive and negative values if number of specified colors is equal to 2*number of curves. See also <a href="#barh">barh</a>, <a href="#area">area</a>, <a href="#stem">stem</a>, <a href="#chart">chart</a>. See section <a href="mathgl_en_9.html#Bars-sample">Bars sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-barh"></a>
+<p><a name="barh"></a>
+</p><dl>
+<dt><a name="index-barh-1"></a><u>MGL command:</u> <b>barh</b><i> vdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-barh-2"></a><u>MGL command:</u> <b>barh</b><i> ydat vdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws horizontal bars from points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} to y-axis. If array <var>ydat</var> is not specified then its an automatic array is used with values equidistantly distributed along y. Marks at data points are not drawn. If style contain symbol &lsquo;<samp>a</samp>&rsquo; then lines are drawn one above another. If string contain symbol &lsquo;<samp>f</samp>&rsquo; then waterfall chart is drawn for determining the cumulative effect of sequentially introduced positive or negative values. You can different colors for positive and negative values if number of specified colors is equal to 2*number of curves.
+See also <a href="#bars">bars</a>. See section <a href="mathgl_en_9.html#Barh-sample">Barh sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-chart"></a>
+<p><a name="chart"></a>
+</p><dl>
+<dt><a name="index-chart-1"></a><u>MGL command:</u> <b>chart</b><i> adat ['col'='']</i></dt>
+<dd><p>The command draws colored stripes (boxes) for data in array <var>adat</var>. The number of stripes is equal to the number of rows in <var>adat</var> (equal to <var>a.ny</var>). The color of each next stripe is cyclically changed from colors specified in string <var>col</var> or in palette. Spaces in colors denote transparent &ldquo;color&rdquo;, i.e. if <var>col</var> contain space(s) then corresponding stripe(s) are not drawn. The stripe width is proportional to value of element in <var>a</var>. Chart is plotted only for data with non-negative elements. If string <var>col</var> have symbol &lsquo;<samp>#</samp>&rsquo; then black border lines are drawn. The most nice form the chart have in 3d (after rotation of coordinates) or in cylindrical coordinates (becomes so called Pie chart). See section <a href="mathgl_en_9.html#Chart-sample">Chart sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-step"></a>
+<p><a name="step"></a>
+</p><dl>
+<dt><a name="index-step-1"></a><u>MGL command:</u> <b>step</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-step-2"></a><u>MGL command:</u> <b>step</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-step-3"></a><u>MGL command:</u> <b>step</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws continuous stairs for points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. See also <a href="#plot">plot</a>, <a href="#stem">stem</a>, <a href="#tile">tile</a>, <a href="#boxs">boxs</a>. See section <a href="mathgl_en_9.html#Step-sample">Step sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-torus"></a>
+<p><a name="torus"></a>
+</p><dl>
+<dt><a name="index-torus-1"></a><u>MGL command:</u> <b>torus</b><i> zdat ['stl'='']</i></dt>
+<dt><a name="index-torus-2"></a><u>MGL command:</u> <b>torus</b><i> rdat zdat ['stl'='']</i></dt>
+<dd><p>Draws surface which is result of curve {<var>rdat</var>[i], <var>zdat</var>[i], <var>zdat</var>[i]} rotation around <a href="#axialdir">axialdir</a> axis. If array <var>rdat</var> is not specified then its an automatic array is used with values equidistantly distributed along x. See also <a href="#plot">plot</a>, <a href="#axial">axial</a>. See section <a href="mathgl_en_9.html#Torus-sample">Torus sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-tube"></a>
+<p><a name="tube"></a>
+</p><dl>
+<dt><a name="index-tube-1"></a><u>MGL command:</u> <b>tube</b><i> ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-2"></a><u>MGL command:</u> <b>tube</b><i> ydat <code>rval</code> ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-3"></a><u>MGL command:</u> <b>tube</b><i> xdat ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-4"></a><u>MGL command:</u> <b>tube</b><i> xdat ydat <code>rval</code> ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-5"></a><u>MGL command:</u> <b>tube</b><i> xdat ydat zdat rdat ['stl'='']</i></dt>
+<dt><a name="index-tube-6"></a><u>MGL command:</u> <b>tube</b><i> xdat ydat zdat <code>rval</code> ['stl'='']</i></dt>
+<dd><p>Draws tube with variable radius <var>rdat</var>[i] (or <var>rval</var>) at points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. See also <a href="#plot">plot</a>. See section <a href="mathgl_en_9.html#Tube-sample">Tube sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-mark"></a>
+<p><a name="mark"></a>
+</p><dl>
+<dt><a name="index-mark-1"></a><u>MGL command:</u> <b>mark</b><i> ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-mark-2"></a><u>MGL command:</u> <b>mark</b><i> xdat ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-mark-3"></a><u>MGL command:</u> <b>mark</b><i> xdat ydat zdat rdat ['stl'='']</i></dt>
+<dd><p>Draws  marks with size <var>rdat</var>[i]*<code>marksize</code> at points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. See also <a href="#plot">plot</a>, <a href="#textmark">textmark</a>, <a href="#stem">stem</a>, <a href="#error">error</a>. See section <a href="mathgl_en_9.html#Mark-sample">Mark sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-textmark"></a>
+<p><a name="textmark"></a>
+</p><dl>
+<dt><a name="index-textmark-1"></a><u>MGL command:</u> <b>textmark</b><i> ydat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-2"></a><u>MGL command:</u> <b>textmark</b><i> ydat rdat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-3"></a><u>MGL command:</u> <b>textmark</b><i> xdat ydat rdat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-4"></a><u>MGL command:</u> <b>textmark</b><i> xdat ydat zdat rdat 'txt' ['stl'='']</i></dt>
+<dd><p>Draws string <var>txt</var> as marks with size <var>rdat</var>[i]*<code>marksize</code> at points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. If array <var>rdat</var> is not specified then <var>rdat</var>[i] = 1. See also <a href="#plot">plot</a>, <a href="#mark">mark</a>, <a href="#stem">stem</a>. See section <a href="mathgl_en_9.html#Error-sample">Error sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-error"></a>
+<p><a name="error"></a>
+</p><dl>
+<dt><a name="index-error-1"></a><u>MGL command:</u> <b>error</b><i> ydat yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-error-2"></a><u>MGL command:</u> <b>error</b><i> xdat ydat yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-error-3"></a><u>MGL command:</u> <b>error</b><i> xdat ydat xerr yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws error boxes {<var>xerr</var>[i], <var>yerr</var>[i]} at points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zval</var>}. See also <a href="#plot">plot</a>. See section <a href="mathgl_en_9.html#TextMark-sample">TextMark sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-boxplot"></a>
+<p><a name="boxplot"></a>
+</p><dl>
+<dt><a name="index-boxplot-1"></a><u>MGL command:</u> <b>boxplot</b><i> adat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-boxplot-2"></a><u>MGL command:</u> <b>boxplot</b><i> xdat adat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws boxplot (also known as a box-and-whisker diagram) at points <var>xdat</var> in plane z=<code>zval</code> (by default is at the bottom of the bounding box). This is five-number summaries of data &lt;em&gt;adat&lt;/em&gt; (minimum, lower quartile (Q1), median (Q2), upper quartile (Q3) and maximum) along second (j-th) direction. See also <a href="#plot">plot</a>, <a href="#error">error</a>, <a href="#bars">bars</a>. See section <a href="mathgl_en_9.html#BoxPlot-sample">BoxPlot sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t2D-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-plotting-_0028MGL_0029-1"></a>
+<h2 class="section">8.10 2D plotting (MGL)</h2>
+
+<p>These commands perform plotting of 2D data. 2D means that data depend from 2 independent parameters like matrix <em>f(x_i,y_j), i=1...n, j=1...m</em>. There are 6 generally different types of data representations: simple mesh lines plot (<a href="#mesh">mesh</a>), surface plot (<a href="#surf">surf</a>), surface plot by boxes (<a href="#boxs">boxs</a>), surface plot by tiles (<a href="#tile">tile</a>), waterfall-like plot (<a href="#fall">fall</a>), belt plot (<a href="#belt">belt</a>), density plot (<a href="#dens">dens</a>), contour lines plot (<a href="#cont">cont</a>), solid contours plot (<a href="#contf">contf</a>) and its rotational figure (<a href="#axial">axial</a>). Commands <a href="#cont">cont</a>, <a href="#contf">contf</a> and <a href="#axial">axial</a> have variants for automatic and manual selection of level values for contours. Also there are commands for plotting data grid lines according to the data format (<a href="#grid">grid</a>) for enhancing density or contour plots. Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. See section <a href="mathgl_en_9.html#g_t2D-plot-sample">2D plot sample</a>, for sample code and picture.
+</p>
+<p>String parameter <var>sch</var> sets the color scheme (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>). Previous color scheme is used by default. The minor dimensions of arrays <var>xdat</var>, <var>ydat</var>, <var>zdat</var> should be equal <code>xdat.nx=zdat.nx &amp;&amp; ydat.nx=zdat.ny</code> or <code>xdat.nx=ydat.nx=zdat.nx &amp;&amp; xdat.ny=ydat.ny=zdat.ny</code>. Arrays <var>xdat</var> and <var>ydat</var> can be vectors (not matrices as <var>zdat</var>). If array <var>xdat</var>, <var>ydat</var> is not specified then its an automatic arrays are used with values equidistantly distributed along x, y. Graphics are plotted for each z-slice of the data.
+</p>
+<a name="index-surf"></a>
+<p><a name="surf"></a>
+</p><dl>
+<dt><a name="index-surf-1"></a><u>MGL command:</u> <b>surf</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-surf-2"></a><u>MGL command:</u> <b>surf</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. See also <a href="#mesh">mesh</a>, <a href="#dens">dens</a>, <a href="#belt">belt</a>, <a href="#tile">tile</a>, <a href="#boxs">boxs</a>, <a href="#surfc">surfc</a>, <a href="#surfa">surfa</a>. See section <a href="mathgl_en_9.html#Surf-sample">Surf sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-mesh"></a>
+<p><a name="mesh"></a>
+</p><dl>
+<dt><a name="index-mesh-1"></a><u>MGL command:</u> <b>mesh</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-mesh-2"></a><u>MGL command:</u> <b>mesh</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws mesh lines for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. See also <a href="#surf">surf</a>, <a href="#fall">fall</a>, <a href="#meshnum">meshnum</a>, <a href="#cont">cont</a>, <a href="#tens">tens</a>. See section <a href="mathgl_en_9.html#Mesh-sample">Mesh sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-fall"></a>
+<p><a name="fall"></a>
+</p><dl>
+<dt><a name="index-fall-1"></a><u>MGL command:</u> <b>fall</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-fall-2"></a><u>MGL command:</u> <b>fall</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws fall lines for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. If <var>sch</var> contain &lsquo;<samp>x</samp>&rsquo; then lines are drawn along x-direction else (by default) lines are drawn along y-direction. See also <a href="#belt">belt</a>, <a href="#mesh">mesh</a>, <a href="#tens">tens</a>, <a href="#meshnum">meshnum</a>. See section <a href="mathgl_en_9.html#Fall-sample">Fall sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-belt"></a>
+<p><a name="belt"></a>
+</p><dl>
+<dt><a name="index-belt-1"></a><u>MGL command:</u> <b>belt</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-belt-2"></a><u>MGL command:</u> <b>belt</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws belts for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. If <var>sch</var> contain &lsquo;<samp>x</samp>&rsquo; then belts are drawn along x-direction else (by default) lines are drawn along y-direction. See also <a href="#fall">fall</a>, <a href="#surf">surf</a>, <a href="#plot">plot</a>, <a href="#meshnum">meshnum</a>. See section <a href="mathgl_en_9.html#Belt-sample">Belt sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-boxs"></a>
+<p><a name="boxs"></a>
+</p><dl>
+<dt><a name="index-boxs-1"></a><u>MGL command:</u> <b>boxs</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-boxs-2"></a><u>MGL command:</u> <b>boxs</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws vertical boxes for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. See also <a href="#surf">surf</a>, <a href="#dens">dens</a>, <a href="#tile">tile</a>, <a href="#step">step</a>. See section <a href="mathgl_en_9.html#Boxs-sample">Boxs sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-tile"></a>
+<p><a name="tile"></a>
+</p><dl>
+<dt><a name="index-tile-1"></a><u>MGL command:</u> <b>tile</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-tile-2"></a><u>MGL command:</u> <b>tile</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws horizontal tiles for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Such plot can be used as 3d generalization of <a href="#step">step</a>. See also <a href="#surf">surf</a>, <a href="#boxs">boxs</a>, <a href="#step">step</a>, <a href="#tiles">tiles</a>. See section <a href="mathgl_en_9.html#Tile-sample">Tile sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-dens"></a>
+<p><a name="dens"></a>
+</p><dl>
+<dt><a name="index-dens-1"></a><u>MGL command:</u> <b>dens</b><i> zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-dens-2"></a><u>MGL command:</u> <b>dens</b><i> xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws density plot for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var>. See also <a href="#surf">surf</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>, <a href="#boxs">boxs</a>, <a href="#tile">tile</a>, <code>dens[xyz]</code>. See section <a href="mathgl_en_9.html#Dens-sample">Dens sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-cont"></a>
+<p><a name="cont"></a>
+</p><dl>
+<dt><a name="index-cont-1"></a><u>MGL command:</u> <b>cont</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-cont-2"></a><u>MGL command:</u> <b>cont</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws contour lines for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var> (or for <var>z</var>=<var>vdat</var>[k] if <code>zval=nan</code>). Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k. If string <var>stl</var> contain &rsquo;t&rsquo; (or &rsquo;T&rsquo;) symbol then contour labels will be drawn below (or above) the contours. See also <a href="#dens">dens</a>, <a href="#contf">contf</a>, <a href="#contd">contd</a>, <a href="#axial">axial</a>, <code>cont[xyz]</code>. See section <a href="mathgl_en_9.html#Cont-sample">Cont sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cont-3"></a><u>MGL command:</u> <b>cont</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-cont-4"></a><u>MGL command:</u> <b>cont</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see, <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-contf"></a>
+<p><a name="contf"></a>
+</p><dl>
+<dt><a name="index-contf-1"></a><u>MGL command:</u> <b>contf</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-contf-2"></a><u>MGL command:</u> <b>contf</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws solid (or filled) contours for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var> (or for <var>z</var>=<var>vdat</var>[k] if <code>zval=nan</code>). Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k (must be <code>vdat.nx&gt;2</code>). See also <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contd">contd</a>, <code>contf[xyz]</code>. See section <a href="mathgl_en_9.html#ContF-sample">ContF sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contf-3"></a><u>MGL command:</u> <b>contf</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-contf-4"></a><u>MGL command:</u> <b>contf</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see, <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-contd"></a>
+<p><a name="contd"></a>
+</p><dl>
+<dt><a name="index-contd-1"></a><u>MGL command:</u> <b>contd</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-contd-2"></a><u>MGL command:</u> <b>contd</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws solid (or filled) contours for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var> (or for <var>z</var>=<var>vdat</var>[k] if <code>zval=nan</code>) with manual colors. Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k (must be <code>vdat.nx&gt;2</code>). The color of k-th contour is <code>sch[k%strlen(sch)]</code>. See also <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>. See section <a href="mathgl_en_9.html#ContD-sample">ContD sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contd-3"></a><u>MGL command:</u> <b>contd</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-contd-4"></a><u>MGL command:</u> <b>contd</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see, <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-axial"></a>
+<p><a name="axial"></a>
+</p><dl>
+<dt><a name="index-axial-1"></a><u>MGL command:</u> <b>axial</b><i> vdat zdat ['sch'='']</i></dt>
+<dt><a name="index-axial-2"></a><u>MGL command:</u> <b>axial</b><i> vdat xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws surface which is result of contour plot rotation surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. If string <var>sch</var> contain symbols &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo; then rotation axis <code>axialdir</code> will be set to specified direction. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#cont">cont</a>, <a href="#contf">contf</a>, <a href="#torus">torus</a>, <a href="#surf3">surf3</a>. See section <a href="mathgl_en_9.html#Axial-sample">Axial sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axial-3"></a><u>MGL command:</u> <b>axial</b><i> zdat ['sch'='' <code>num=3</code>]</i></dt>
+<dt><a name="index-axial-4"></a><u>MGL command:</u> <b>axial</b><i> xdat ydat zdat ['sch'='' <code>num=3</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see, <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-grad"></a>
+<p><a name="grad"></a>
+</p><dl>
+<dt><a name="index-grad-1"></a><u>MGL command:</u> <b>grad</b><i> pdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-grad-2"></a><u>MGL command:</u> <b>grad</b><i> xdat ydat pdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-grad-3"></a><u>MGL command:</u> <b>grad</b><i> xdat ydat zdat pdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Draws gradient lines for scalar field <var>pdat</var> specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j]} or {<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]}. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. Number of lines is proportional to <var>num</var>. If <var>num</var>&lt;0 then lines start from borders only. See also <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#dens3">dens3</a>, <a href="#cont3">cont3</a>, <a href="#flow">flow</a>. See section <a href="mathgl_en_9.html#Grad-sample">Grad sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+<a name="index-grid2"></a>
+<p><a name="grid2"></a>
+</p><dl>
+<dt><a name="index-grid2-1"></a><u>MGL command:</u> <b>grid2</b><i> zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-grid2-2"></a><u>MGL command:</u> <b>grid2</b><i> xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws grid lines for density plot of surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var>. See also <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="g_t3D-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-plotting-_0028MGL_0029-1"></a>
+<h2 class="section">8.11 3D plotting (MGL)</h2>
+
+<p>These commands perform plotting of 3D data. 3D means that data depend from 3 independent parameters like matrix <em>f(x_i,y_j,z_k), i=1...n, j=1...m, k=1...l</em>. There are 4 generally different types of data representations: isosurface or surface of constant value (<a href="#surf3">surf3</a>), density plot at slices (Dens3), contour lines plot at slices (<a href="#cont3">cont3</a>), solid contours plot at slices (<a href="#contf3">contf3</a>) and cloud-like plot (<a href="#cloud">cloud</a>). Commands <a href="#surf3">surf3</a>, <a href="#cont3">cont3</a> and <a href="#contf3">contf3</a> have variants for automatic and manual selection of level values for surfaces/contours. Also there are commands for plotting data grid lines according to the data format (<a href="#grid3">grid3</a>) for enhancing density or contour plots. Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. See section <a href="mathgl_en_9.html#g_t3D-plot-sample">3D plot sample</a>, for sample code and picture.
+</p>
+<p>String paramter <var>sch</var> sets the color scheme (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>). Previous color scheme is used by default. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). If array <var>xdat</var>, <var>ydat</var>, <var>zdat</var> is not specified then its an automatic arrays are used with values equidistantly distributed along x, y, z.
+</p>
+
+<a name="index-surf3"></a>
+<p><a name="surf3"></a>
+</p><dl>
+<dt><a name="index-surf3-1"></a><u>MGL command:</u> <b>surf3</b><i> adat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3-2"></a><u>MGL command:</u> <b>surf3</b><i> xdat ydat zdat adat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Draws isosurface plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) at <var>a</var>(x,y,z)=<var>val</var>. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#cloud">cloud</a>, <a href="#dens3">dens3</a>, <a href="#surf3c">surf3c</a>, <a href="#surf3a">surf3a</a>, <a href="#axial">axial</a>. See section <a href="mathgl_en_9.html#Surf3-sample">Surf3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3-3"></a><u>MGL command:</u> <b>surf3</b><i> adat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3-4"></a><u>MGL command:</u> <b>surf3</b><i> xdat ydat zdat adat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in color range (see <a href="#caxis">caxis</a>) isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-dens3"></a>
+<p><a name="dens3"></a>
+</p><dl>
+<dt><a name="index-dens3-1"></a><u>MGL command:</u> <b>dens3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-dens3-2"></a><u>MGL command:</u> <b>dens3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Draws density plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Density is plotted at slice <var>sval</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. If string <var>stl</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. See also <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a>, <a href="#dens">dens</a>, <a href="#grid3">grid3</a>. See section <a href="mathgl_en_9.html#Dens3-sample">Dens3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-densa"></a>
+<p><a name="densa"></a>
+</p><dl>
+<dt><a name="index-densa-1"></a><u>MGL command:</u> <b>densa</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-densa-2"></a><u>MGL command:</u> <b>densa</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Draws density plots at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-cont3"></a>
+<p><a name="cont3"></a>
+</p><dl>
+<dt><a name="index-cont3-1"></a><u>MGL command:</u> <b>cont3</b><i> vdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-cont3-2"></a><u>MGL command:</u> <b>cont3</b><i> vdat xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Draws contour plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Contours are plotted for values specified in array <var>vdat</var> at slice <var>sval</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. If string <var>stl</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. If string <var>stl</var> contain &rsquo;t&rsquo; (or &rsquo;T&rsquo;) symbol then contour labels will be drawn below (or above) the contours. See also <a href="#dens3">dens3</a>, <a href="#contf3">contf3</a>, <a href="#cont">cont</a>, <a href="#grid3">grid3</a>. See section <a href="mathgl_en_9.html#Cont3-sample">Cont3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cont3-3"></a><u>MGL command:</u> <b>cont3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-cont3-4"></a><u>MGL command:</u> <b>cont3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-conta"></a>
+<p><a name="conta"></a>
+</p><dl>
+<dt><a name="index-conta-1"></a><u>MGL command:</u> <b>conta</b><i> adat ['sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-conta-2"></a><u>MGL command:</u> <b>conta</b><i> xdat ydat zdat adat ['sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Draws contour plots at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-contf3"></a>
+<p><a name="contf3"></a>
+</p><dl>
+<dt><a name="index-contf3-1"></a><u>MGL command:</u> <b>contf3</b><i> vdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-contf3-2"></a><u>MGL command:</u> <b>contf3</b><i> vdat xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Draws solid contour plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Contours are plotted for values specified in array <var>vdat</var> at slice <var>sval</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. If string <var>stl</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. See also <a href="#dens3">dens3</a>, <a href="#cont3">cont3</a>, <a href="#contf">contf</a>, <a href="#grid3">grid3</a>. See section <a href="mathgl_en_9.html#ContF3-sample">ContF3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contf3-3"></a><u>MGL command:</u> <b>contf3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-contf3-4"></a><u>MGL command:</u> <b>contf3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-contfa"></a>
+<p><a name="contfa"></a>
+</p><dl>
+<dt><a name="index-contfa-1"></a><u>MGL command:</u> <b>contfa</b><i> adat ['sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-contfa-2"></a><u>MGL command:</u> <b>contfa</b><i> xdat ydat zdat adat ['sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Draws solid contour plots at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-grid3"></a>
+<p><a name="grid3"></a>
+</p><dl>
+<dt><a name="index-grid3-1"></a><u>MGL command:</u> <b>grid3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-grid3-2"></a><u>MGL command:</u> <b>grid3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Draws grid for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Grid is plotted at slice <var>sval</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. See also <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a>, <a href="#dens3">dens3</a>, <a href="#grid2">grid2</a>. See section <a href="mathgl_en_9.html#Dens3-sample">Dens3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-grida"></a>
+<p><a name="grida"></a>
+</p><dl>
+<dt><a name="index-grida-1"></a><u>MGL command:</u> <b>grida</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-grida-2"></a><u>MGL command:</u> <b>grida</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Draws grids at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-cloud"></a>
+<p><a name="cloud"></a>
+</p><dl>
+<dt><a name="index-cloud-1"></a><u>MGL command:</u> <b>cloud</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-cloud-2"></a><u>MGL command:</u> <b>cloud</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Draws cloud for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). This plot is a set of cubes with color and transparency proportional to value of <var>adat</var>. The resulting plot is like cloud &ndash; low value is transparent but higher ones are not. The number of plotting cells depend on <a href="#meshnum">meshnum</a>. Paramater <var>alpha</var> changes the overall transparency of plot. See also <a href="#surf3">surf3</a>. See section <a href="mathgl_en_9.html#Cloud-sample">Cloud sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-beam"></a>
+<p><a name="beam"></a>
+</p><dl>
+<dt><a name="index-beam-1"></a><u>MGL command:</u> <b>beam</b><i> tr g1 g2 adat <code>rval</code> ['sch'='' <code>flag=0 num=3</code>]</i></dt>
+<dd><p>Draws  <var>num</var>-th uniformly distributed in color range (see <code>caxis</code>) isosurfaces for 3d array <var>adat</var>. This is special kind of plot for <var>adat</var> specified in accompanied coordinates along curve <var>tr</var> with orts <var>g1</var>, <var>g2</var> and with transverse scale <var>rval</var>. Variable <var>flag</var> is bitwise: &lsquo;<samp>0x1</samp>&rsquo; - draw in accompanied (not laboratory) coordinates; &lsquo;<samp>0x2</samp>&rsquo; - draw projection to <em>\rho-z</em> plane; &lsquo;<samp>0x4</samp>&rsquo; - draw normalized in each slice field. The x-size of data arrays <var>tr</var>, <var>g1</var>, <var>g2</var> must be nx&gt;2. The y-size of data arrays <var>tr</var>, <var>g1</var>, <var>g2</var> and z-size of the data array <var>a</var> must be equal. See also <a href="#surf3">surf3</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Dual-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dual-plotting-_0028MGL_0029-1"></a>
+<h2 class="section">8.12 Dual plotting (MGL)</h2>
+
+<p>These plotting commands draw <em>two matrix</em> simultaneously. There are 5 generally different types of data representations: surface or isosurface colored by other data (<a href="#surfc">surfc</a>, <a href="#surf3c">surf3c</a>), surface or isosurface transpared by other data (<a href="#surfa">surfa</a>, <a href="#surf3a">surf3a</a>), tiles with variable size (<a href="#tiles">tiles</a>), mapping diagram (<a href="#map">map</a>), STFA diagram (<a href="#stfa">stfa</a>). Commands <a href="#surf3a">surf3a</a> and <a href="#surf3c">surf3c</a> have variants for automatic and manual selection of level values for isosurfaces. Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array.
+</p>
+<p>String paramter <var>sch</var> sets the color scheme (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>). Previous color scheme is used by default. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). If array <var>xdat</var>, <var>ydat</var>, <var>zdat</var> is not specified then its an automatic arrays are used with values equidistantly distributed along x, y, z.
+</p>
+<a name="index-surfc"></a>
+<p><a name="surfc"></a>
+</p><dl>
+<dt><a name="index-surfc-1"></a><u>MGL command:</u> <b>surfc</b><i> zdat cdat ['sch'='']</i></dt>
+<dt><a name="index-surfc-2"></a><u>MGL command:</u> <b>surfc</b><i> xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Draws surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} and color it by matrix <var>cdat</var>[i,j]. See also <a href="#surf">surf</a>, <a href="#surfa">surfa</a>, <a href="#surf3c">surf3c</a>. See section <a href="mathgl_en_9.html#SurfC-sample">SurfC sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-surf3c"></a>
+<p><a name="surf3c"></a>
+</p><dl>
+<dt><a name="index-surf3c-1"></a><u>MGL command:</u> <b>surf3c</b><i> adat cdat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3c-2"></a><u>MGL command:</u> <b>surf3c</b><i> xdat ydat zdat adat cdat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Draws isosurface plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) at <var>a</var>(x,y,z)=<var>val</var>. It is mostly the same as <a href="#surf3">surf3</a> command but the color of isosurface depends on values of array <var>cdat</var>. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#surf3">surf3</a>, <a href="#surfc">surfc</a>, <a href="#surf3a">surf3a</a>. See section <a href="mathgl_en_9.html#Surf3C-sample">Surf3C sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3c-3"></a><u>MGL command:</u> <b>surf3c</b><i> adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3c-4"></a><u>MGL command:</u> <b>surf3c</b><i> xdat ydat zdat adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in color range (see <code>caxis</code>) isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-surfa"></a>
+<p><a name="surfa"></a>
+</p><dl>
+<dt><a name="index-surfa-1"></a><u>MGL command:</u> <b>surfa</b><i> zdat cdat ['sch'='']</i></dt>
+<dt><a name="index-surfa-2"></a><u>MGL command:</u> <b>surfa</b><i> xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Draws surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} and transparent it by matrix <var>cdat</var>[i,j]. See also <a href="#surf">surf</a>, <a href="#surfc">surfc</a>, <a href="#surf3a">surf3a</a>, <a href="#tiles">tiles</a>. See section <a href="mathgl_en_9.html#SurfA-sample">SurfA sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-surf3a"></a>
+<p><a name="surf3a"></a>
+</p><dl>
+<dt><a name="index-surf3a-1"></a><u>MGL command:</u> <b>surf3a</b><i> adat cdat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3a-2"></a><u>MGL command:</u> <b>surf3a</b><i> xdat ydat zdat adat cdat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Draws isosurface plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) at <var>a</var>(x,y,z)=<var>val</var>. It is mostly the same as <a href="#surf3">surf3</a> command but the transparency of isosurface depends on values of array <var>cdat</var>. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#surf3">surf3</a>, <a href="#surfa">surfa</a>, <a href="#surf3c">surf3c</a>. See section <a href="mathgl_en_9.html#Surf3A-sample">Surf3A sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3a-3"></a><u>MGL command:</u> <b>surf3a</b><i> adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3a-4"></a><u>MGL command:</u> <b>surf3a</b><i> xdat ydat zdat adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in color range (see <code>caxis</code>) isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-tiles"></a>
+<p><a name="tiles"></a>
+</p><dl>
+<dt><a name="index-tiles-1"></a><u>MGL command:</u> <b>tiles</b><i> zdat rdat ['sch'='']</i></dt>
+<dt><a name="index-tiles-2"></a><u>MGL command:</u> <b>tiles</b><i> xdat ydat zdat rdat ['sch'='']</i></dt>
+<dd><p>Draws horizontal tiles for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. It is mostly the same as <a href="#tile">tile</a> but the size of tiles is determined by <var>rdat</var> array. See also <a href="#surfa">surfa</a>, <a href="#tile">tile</a>. See section <a href="mathgl_en_9.html#TileS-sample">TileS sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-map"></a>
+<p><a name="map"></a>
+</p><dl>
+<dt><a name="index-map-1"></a><u>MGL command:</u> <b>map</b><i> udat vdat ['sch'='' <code>pnts=on</code>]</i></dt>
+<dt><a name="index-map-2"></a><u>MGL command:</u> <b>map</b><i> xdat ydat udat vdat ['sch'='' <code>pnts=on</code>]</i></dt>
+<dd><p>Draws mapping plot for matrixes {<var>udat</var>, <var>vdat</var> } which parametrically depend on coordinates <var>xdat</var>, <var>ydat</var>. The previous position of the cell (point) is marked by color. Height is proportional to Jacobian(udat,vdat). This plot is like Arnold diagram ???. If <code>pnts=off</code> then face is drawn otherwise the color ball at matrix knots are drawn. The size of <var>udat</var> and <var>vdat</var> must be the same. See section <a href="mathgl_en_9.html#Map-sample">Map sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-stfa"></a>
+<p><a name="stfa"></a>
+</p><dl>
+<dt><a name="index-stfa-1"></a><u>MGL command:</u> <b>stfa</b><i> re im <code>dn</code> ['sch'='' <code>pnts=on</code>]</i></dt>
+<dt><a name="index-stfa-2"></a><u>MGL command:</u> <b>stfa</b><i> xdat ydat re im <code>dn</code> ['sch'='' <code>pnts=on</code>]</i></dt>
+<dd><p>Draws spectrogram of complex array <var>re</var>+i*<code>im</code> for Fourier size of <var>dn</var> points at plane <var>z=zVal</var>. Parameter <var>dn</var> is arbitrary even integer. For example in 1D case, result is density plot of data <em>res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn</em> with size {int(nx/dn), dn, ny}. See section <a href="mathgl_en_9.html#STFA-sample">STFA sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+
+
+<hr size="6">
+<a name="Vector-fields-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vector-fields-_0028MGL_0029-1"></a>
+<h2 class="section">8.13 Vector fields (MGL)</h2>
+
+<p>These commands perform plotting of 2D and 3D vector fields. There are 6 generally different types of vector fields representations: simple vector field (<a href="#vect">vect</a>), vector field by dew-drops (<a href="#dew">dew</a>), flow threads (<a href="#flow">flow</a>), flow pipes (<a href="#pipe">pipe</a>), vectors along a curve (<a href="#traj">traj</a>). Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. Parameters of color scheme are specified by the string argument. See section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>.
+</p>
+<p>The color is specified by the string argument <var>sch</var>. Previous color scheme is used by default. Parameter <var>flag</var> setup the hachures (arrows). It is combination of values: <code>1</code> for drawing bi-color arrow, <code>2</code> for drawing fixed length arrows, <code>4</code> for drawing arrows to the cell point, <code>8</code> for drawing arrows with center at cell point, <code>16</code> for drawing hachures with dots instead of arrows. 
+</p>
+<p>The size of <var>udat</var>, <var>vdat</var> and <var>wdat</var> must be equal. The minor dimensions of arrays <var>xdat</var>, <var>ydat</var>, <var>zdat</var> and <var>udat</var> must be equal too. Arrays <var>xdat</var>, <var>ydat</var> and <var>zdat</var> can be vectors (not matrices as <var>udat</var>). The graphics is plotted for each z slice of <var>udat</var>, <var>vdat</var> for 2D case.
+</p>
+<a name="index-traj"></a>
+<p><a name="traj"></a>
+</p><dl>
+<dt><a name="index-traj-1"></a><u>MGL command:</u> <b>traj</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan len=0</code>]</i></dt>
+<dt><a name="index-traj-2"></a><u>MGL command:</u> <b>traj</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>len=0</code>]</i></dt>
+<dd><p>Draws vectors {<var>udat</var>, <var>vdat</var>, <var>wdat</var>} along a curve <var>xdat</var>, <var>ydat</var>, <var>zdat</var>. The length and color of arrows are proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See also <code>vect</code>. See section <a href="mathgl_en_9.html#Traj-sample">Traj sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-vect"></a>
+<p><a name="vect"></a>
+</p><dl>
+<dt><a name="index-vect-1"></a><u>MGL command:</u> <b>vect</b><i> udat vdat ['sch'='' <code>zval=nan flag=0</code>]</i></dt>
+<dt><a name="index-vect-2"></a><u>MGL command:</u> <b>vect</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan flag=0</code>]</i></dt>
+<dd><p>Draws plane vector field plot for the field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zval</var>. The length and color of arrows are proportional to <em>\sqrtudat^2+vdat^2</em>. The number of arrows depend on <a href="#meshnum">meshnum</a>. See also <a href="#flow">flow</a>, <a href="#dew">dew</a>, <a href="#vectc">vectc</a>. See section <a href="mathgl_en_9.html#Vect-sample">Vect sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vect-3"></a><u>MGL command:</u> <b>vect</b><i> udat vdat wdat ['sch'='' <code>flag=0</code>]</i></dt>
+<dt><a name="index-vect-4"></a><u>MGL command:</u> <b>vect</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>flag=0</code>]</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the length and color of arrows are proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mathgl_en_9.html#Vect-3D-sample">Vect 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-vectc"></a>
+<p><a name="vectc"></a>
+</p><dl>
+<dt><a name="index-vectc-1"></a><u>MGL command:</u> <b>vectc</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-vectc-2"></a><u>MGL command:</u> <b>vectc</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws plane vector field plot for the field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zVal</var>. The color of hachures is proportional to <em>\sqrtudat^2+vdat^2</em>. The number of hachures depend on <var>meshnum</var>. See also <code>vect, flow, pipe, dew</code>. See section <a href="mathgl_en_9.html#VectC-sample">VectC sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vectc-3"></a><u>MGL command:</u> <b>vectc</b><i> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-vectc-4"></a><u>MGL command:</u> <b>vectc</b><i> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the color of hachures is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mathgl_en_9.html#VectC-3D-sample">VectC 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-vectl"></a>
+<p><a name="vectl"></a>
+</p><dl>
+<dt><a name="index-vectl-1"></a><u>MGL command:</u> <b>vectl</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-vectl-2"></a><u>MGL command:</u> <b>vectl</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws plane vector field plot for the field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zVal</var>. The length of hachures is proportional to <em>\sqrtudat^2+vdat^2</em>. The number of hachures depend on <var>meshnum</var>. See also <code>vectc, flow, pipe, dew</code>. See section <a href="mathgl_en_9.html#Vect-sample">Vect sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vectl-3"></a><u>MGL command:</u> <b>vectl</b><i> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-vectl-4"></a><u>MGL command:</u> <b>vectl</b><i> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the length of hachures is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mathgl_en_9.html#VectL-3D-sample">VectL 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-dew"></a>
+<p><a name="dew"></a>
+</p><dl>
+<dt><a name="index-dew-1"></a><u>MGL command:</u> <b>dew</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-dew-2"></a><u>MGL command:</u> <b>dew</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws dew-drops for plane vector field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zval</var>. The color of drops is proportional to <em>\sqrtudat^2+vdat^2</em>. The number of drops depend on <a href="#meshnum">meshnum</a>. Note that this is very expensive plot in memory usage and creation time! See also <a href="#vect">vect</a>. See section <a href="mathgl_en_9.html#Dew-sample">Dew sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-flow"></a>
+<p><a name="flow"></a>
+</p><dl>
+<dt><a name="index-flow-1"></a><u>MGL command:</u> <b>flow</b><i> udat vdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-flow-2"></a><u>MGL command:</u> <b>flow</b><i> xdat ydat udat vdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dd><p>Draws plane flow threads for the vector field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zVal</var>. Number of threads is proportional to <var>num</var>. The color of lines is proportional to <em>\sqrtudat^2+vdat^2</em>. Warm color corresponds to normal flow (like attractor). Cold one corresponds to inverse flow (like source). See also <code>vect, vectc, pipe</code>. See section <a href="mathgl_en_9.html#Flow-sample">Flow sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-3"></a><u>MGL command:</u> <b>flow</b><i> udat vdat wdat ['sch'='' <code>num=3</code>]</i></dt>
+<dt><a name="index-flow-4"></a><u>MGL command:</u> <b>flow</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>num=3</code>]</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the color is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mathgl_en_9.html#Flow-3D-sample">Flow 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-5"></a><u>MGL command:</u> <b>flow</b><i> <code>x0 y0</code> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-flow-6"></a><u>MGL command:</u> <b>flow</b><i> <code>x0 y0</code> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws plane flow threads for the vector field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> from point {<var>x0</var>, <var>y0</var>} at level <var>z=zVal</var>. The color of lines is proportional to <em>\sqrtudat^2+vdat^2</em>. Warm color corresponds to normal flow (like attractor). Cold one corresponds to inverse flow (like source). See also <code>vect, vectc, pipe</code>. See section <a href="mathgl_en_9.html#Flow-sample">Flow sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-7"></a><u>MGL command:</u> <b>flow</b><i> <code>x0 y0 z0</code> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-flow-8"></a><u>MGL command:</u> <b>flow</b><i> <code>x0 y0 z0</code> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>Draws flow thread from point {<var>x0</var>, <var>y0</var>, <var>z0</var>}. Arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the color is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mathgl_en_9.html#Flow-3D-sample">Flow 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+<a name="index-pipe"></a>
+<p><a name="pipe"></a>
+</p><dl>
+<dt><a name="index-pipe-1"></a><u>MGL command:</u> <b>pipe</b><i> udat vdat ['sch'='' <code>r0=0.05 num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-pipe-2"></a><u>MGL command:</u> <b>pipe</b><i> xdat ydat udat vdat ['sch'='' <code>r0=0.05 num=5 zval=nan</code>]</i></dt>
+<dd><p>Draws plane flow pipes for the vector field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zVal</var>. Number of pipes is proportional to <var>num</var>. The color of pipes is proportional to <em>\sqrtudat^2+vdat^2</em>. Warm color corresponds to normal flow (like attractor). Cold one corresponds to inverse flow (like source). Parameter <var>r0</var> set the base pipe radius. If <var>r0</var>&lt;0 then pipe radius is inverse proportional to amplitude. The size of <var>ax</var> and <var>ay</var> must be equal. See also <code>vect, vectc, pipe</code>. See section <a href="mathgl_en_9.html#Pipe-sample">Pipe sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-pipe-3"></a><u>MGL command:</u> <b>pipe</b><i> udat vdat wdat ['sch'='' <code>r0=0.05 num=3</code>]</i></dt>
+<dt><a name="index-pipe-4"></a><u>MGL command:</u> <b>pipe</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>r0=0.05 num=3</code>]</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the color is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mathgl_en_9.html#Pipe-3D-sample">Pipe 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Other-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-fields-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Other-plotting-_0028MGL_0029-1"></a>
+<h2 class="section">8.14 Other plotting (MGL)</h2>
+
+<p>These commands perform miscelaneous plotting. There is unstructured data points plots (Dots), surface reconstruction (Crust), surfaces on the triangular mesh (TriPlot) or quadrangular mesh (QuadPlot), textual formula plotting (Plots by formula), data plots at edges (Dens[XYZ], Cont[XYZ], ContF[XYZ]), simple plot (SimplePlot). Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. Parameters of color scheme are specified by the string argument. See section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>.
+</p>
+<a name="index-densx"></a>
+<a name="index-densy"></a>
+<a name="index-densz"></a>
+<p><a name="densz"></a> <a name="densy"></a> <a name="densx"></a>
+</p><dl>
+<dt><a name="index-densx-1"></a><u>MGL command:</u> <b>densx</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dt><a name="index-densy-1"></a><u>MGL command:</u> <b>densy</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dt><a name="index-densz-1"></a><u>MGL command:</u> <b>densz</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dd><p>These plotting commands draw density plot in x, y or z plain. If <var>dat</var> is a tensor (3-dimensional data) then interpolation to a given <var>val</var> is performed. These commands are useful for creating projections of the 3D data array to the bounding box. See also <code>cont[xyz], contf[xyz]</code>, <a href="#dens">dens</a>. See section <a href="mathgl_en_9.html#Dens-projection-sample">Dens projection sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-contx"></a>
+<a name="index-conty"></a>
+<a name="index-contz"></a>
+<p><a name="contz"></a> <a name="conty"></a> <a name="contx"></a>
+</p><dl>
+<dt><a name="index-contx-1"></a><u>MGL command:</u> <b>contx</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-conty-1"></a><u>MGL command:</u> <b>conty</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contz-1"></a><u>MGL command:</u> <b>contz</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dd><p>These plotting commands draw contour lines in x, y or z plain. If <var>dat</var> is a tensor (3-dimensional data) then interpolation to a given <var>val</var> is performed. These commands are useful for creating projections of the 3D data array to the bounding box. See also <code>dens[xyz], contf[xyz]</code>, <a href="#cont">cont</a>. See section <a href="mathgl_en_9.html#Cont-projection-sample">Cont projection sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-contfx"></a>
+<a name="index-contfy"></a>
+<a name="index-contfz"></a>
+<p><a name="contfz"></a> <a name="contfy"></a> <a name="contfx"></a>
+</p><dl>
+<dt><a name="index-contfx-1"></a><u>MGL command:</u> <b>contfx</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contfy-1"></a><u>MGL command:</u> <b>contfy</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contfz-1"></a><u>MGL command:</u> <b>contfz</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dd><p>These plotting commands draw solid contours in x, y or z plain. If <var>dat</var> is a tensor (3-dimensional data) then interpolation to a given <var>val</var> is performed. These commands are useful for creating projections of the 3D data array to the bounding box. See also <code>dens[xyz], cont[xyz]</code>, <a href="#contf">contf</a>.
+</p></dd></dl>
+
+<a name="index-dots"></a>
+<p><a name="dots"></a>
+</p><dl>
+<dt><a name="index-dots-1"></a><u>MGL command:</u> <b>dots</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-dots-2"></a><u>MGL command:</u> <b>dots</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Draws the arbitrary placed points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Variable <var>adat</var>[i] set transparency for dots. See also <a href="#crust">crust</a>, <a href="#mark">mark</a>, <a href="#plot">plot</a>. See section <a href="mathgl_en_9.html#Dots-sample">Dots sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-crust"></a>
+<p><a name="crust"></a>
+</p><dl>
+<dt><a name="index-crust-1"></a><u>MGL command:</u> <b>crust</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Reconstructs and draws the surface for arbitrary placed points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#dots">dots</a>, <a href="#triplot">triplot</a>. See section <a href="mathgl_en_9.html#Crust-sample">Crust sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-triplot"></a>
+<p><a name="triplot"></a>
+</p><dl>
+<dt><a name="index-triplot-1"></a><u>MGL command:</u> <b>triplot</b><i> idat xdat ydat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-triplot-2"></a><u>MGL command:</u> <b>triplot</b><i> idat xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-triplot-3"></a><u>MGL command:</u> <b>triplot</b><i> idat xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Draws the surface of triangles. Triangle vertexes are set by indexes <var>idat</var> of data points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. First dimensions of <var>idat</var> must be 3 or greater. See also <code>dots, crust, quadplot</code>. Parameter <var>cdat</var> set the colors of triangles (if <var>idat</var>.ny=<var>cdat</var>.nx) or colors of vertexes (if <var>xdat</var>.nx=<var>cdat</var>.nx). See also <a href="#dots">dots</a>, <a href="#crust">crust</a>, <a href="#quadplot">quadplot</a>, <a href="#tricont">tricont</a>.
+</p></dd></dl>
+
+<a name="index-tricont"></a>
+<p><a name="tricont"></a>
+</p><dl>
+<dt><a name="index-tricont-1"></a><u>MGL command:</u> <b>tricont</b><i> vdat idat xdat ydat zdat cdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tricont-2"></a><u>MGL command:</u> <b>tricont</b><i> vdat idat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tricont-3"></a><u>MGL command:</u> <b>tricont</b><i> idat xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Draws contour lines for surface of triangles at <var>z</var> = <var>zVal</var> (or for <var>z</var>=<var>vdat</var>[k] if <code>zval=nan</code>). Triangle vertexes are set by indexes <var>idat</var> of data points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k (or <var>num</var> contours equidistantly distributed in range [<var>Cmin</var>, <var>Cmax</var>].). See also <a href="#triplot">triplot</a>, <a href="#cont">cont</a>.
+</p></dd></dl>
+
+<a name="index-quadplot"></a>
+<p><a name="quadplot"></a>
+</p><dl>
+<dt><a name="index-quadplot-1"></a><u>MGL command:</u> <b>quadplot</b><i> idat xdat ydat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-quadplot-2"></a><u>MGL command:</u> <b>quadplot</b><i> idat xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-quadplot-3"></a><u>MGL command:</u> <b>quadplot</b><i> idat xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Draws the surface of quadrangles. Quadrangle vertexes are set by indexes <var>idat</var> of data points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. First dimensions of <var>idat</var> must be 4 or greater. See also <code>triplot, dots, crust</code>. Parameter <var>cdat</var> set the colors of triangles (if <var>idat</var>.ny=<var>cdat</var>.nx) or colors of vertexes (if <var>xdat</var>.nx=<var>cdat</var>.nx). See also <a href="#triplot">triplot</a>.
+</p></dd></dl>
+
+<a name="index-fplot"></a>
+<p><a name="fplot"></a>
+</p><dl>
+<dt><a name="index-fplot-1"></a><u>MGL command:</u> <b>fplot</b><i> 'y(x)' ['pen'='' <code>zval=nan num=100</code>]</i></dt>
+<dd><p>Draws command function &lsquo;<samp>y(x)</samp>&rsquo; at plane z=<var>zval</var> where &lsquo;<samp>x</samp>&rsquo; variable is changed in <code>xrange</code>. You do not need to create the data arrays to plot it. The parameter <var>num</var> set the minimal number of points along coordinate(s) for plots. See also <a href="#plot">plot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fplot-2"></a><u>MGL command:</u> <b>fplot</b><i> 'x(t)' 'y(t)' 'z(t)' ['pen'='' <code>num=100</code>]</i></dt>
+<dd><p>Draws command parametrical curve {&lsquo;<samp>x(t)</samp>&rsquo;, &lsquo;<samp>y(t)</samp>&rsquo;, &lsquo;<samp>z(t)</samp>&rsquo;} where &lsquo;<samp>t</samp>&rsquo; variable is changed in range [0, 1]. You do not need to create the data arrays to plot it. The parameter <var>num</var> set the minimal number of points along coordinate(s) for plots. See also <a href="#plot">plot</a>.
+</p></dd></dl>
+
+<a name="index-fsurf"></a>
+<p><a name="fsurf"></a>
+</p><dl>
+<dt><a name="index-fsurf-1"></a><u>MGL command:</u> <b>fsurf</b><i> 'z(x,y)' ['sch'='' <code>num=100</code>]</i></dt>
+<dd><p>Draws command surface for function &lsquo;<samp>z(x,y)</samp>&rsquo; where &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; variable are changed in <code>xrange, yrange</code>. You do not need to create the data arrays to plot it. The parameter <var>num</var> set the minimal number of points along coordinate(s) for plots. See also <a href="#surf">surf</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fsurf-2"></a><u>MGL command:</u> <b>fsurf</b><i> 'x(u,v)' 'y(u,v)' 'z(u,v)' ['sch'='' <code>num=100</code>]</i></dt>
+<dd><p>Draws command parametrical surface {&lsquo;<samp>x(u,v)</samp>&rsquo;, &lsquo;<samp>y(u,v)</samp>&rsquo;, &lsquo;<samp>z(u,v)</samp>&rsquo;} where &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo; variable are changed in range [0, 1]. You do not need to create the data arrays to plot it. The parameter <var>num</var> set the minimal number of points along coordinate(s) for plots. See also <a href="#surf">surf</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Nonlinear-fitting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-create-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-_0028MGL_0029-1"></a>
+<h2 class="section">8.15 Nonlinear fitting (MGL)</h2>
+
+<p>These commands fit data to formula. Fitting goal is to find formula parameters for the best fit the data points, i.e. to minimize the sum <em>\sum_i (f(x_i, y_i, z_i) - a_i)^2/s_i^2</em>. At this, approximation function &lsquo;<samp>f</samp>&rsquo; can depend only on one argument &lsquo;<samp>x</samp>&rsquo; (1D case), on two arguments &lsquo;<samp>x,y</samp>&rsquo; (2D case) and on three arguments &lsquo;<samp>x,y,z</samp>&rsquo; (3D case). The command &lsquo;<samp>f</samp>&rsquo; also may depend on parameters. Normally the list of fitted parameters is specified by <var>var</var> string (like, &lsquo;<samp>abcd</samp>&rsquo;). Usually user should supply initial values for fitted parameters by <var>ini</var> variable. But if he/she don&rsquo;t supply it then the zeros are used.
+</p>
+<p>Commands <a href="#fit">fit</a> and <a href="#fits">fits</a> do not draw the obtained data themselves. They fill the data <var>out</var> by formula &lsquo;<samp>f</samp>&rsquo; with found coefficients. At this, the &lsquo;<samp>x,y,z</samp>&rsquo; coordinates are equidistantly distributed in the bounding box. Number of points in <var>out</var> is selected as maximal value of <var>out</var> size or 100. Also you may print the last formula with found coefficients by <code>putsfit</code> command. See section <a href="mathgl_en_9.html#Fitting-sample">Fitting sample</a>, for sample code and picture.
+</p>
+<p>The dimensions of arrays must be at least the same as the number of specified arrays <var>xdat</var>, <var>ydat</var>, <var>zdat</var>. Also the fitting only along specified directions will be performed (for example, along x and y if only <var>xdat</var> and <var>ydat</var> are specified). If array <var>xdat</var> is not specified then its an automatic array is used with values equidistantly distributed along x.
+</p>
+
+<a name="index-fits"></a>
+<p><a name="fits"></a>
+</p><dl>
+<dt><a name="index-fits-1"></a><u>MGL command:</u> <b>fits</b><i> adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-2"></a><u>MGL command:</u> <b>fits</b><i> xdat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-3"></a><u>MGL command:</u> <b>fits</b><i> xdat ydat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-4"></a><u>MGL command:</u> <b>fits</b><i> xdat ydat zdat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dd><p>Fit data along x-, y- and z-directions for 1d-,2d- or 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) with weight factor <var>sdat</var>[i,j,k].
+</p></dd></dl>
+
+<a name="index-fit"></a>
+<p><a name="fit"></a>
+</p><dl>
+<dt><a name="index-fit-1"></a><u>MGL command:</u> <b>fit</b><i> adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-2"></a><u>MGL command:</u> <b>fit</b><i> xdat adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-3"></a><u>MGL command:</u> <b>fit</b><i> xdat ydat adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-4"></a><u>MGL command:</u> <b>fit</b><i> xdat ydat zdat adat 'func' 'var' [ini=0]</i></dt>
+<dd><p>Fit data along x-, y- and z-directions for 1d-,2d- or 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) with weight factor =1.
+</p></dd></dl>
+
+<a name="index-putsfit"></a>
+<p><a name="putsfit"></a>
+</p><dl>
+<dt><a name="index-putsfit-1"></a><u>MGL command:</u> <b>putsfit</b><i> <code>x y</code> ['pre'='' 'fnt'='' <code>size=-1</code>]</i></dt>
+<dd><p>Print last fitted formula with found coefficients (as numbers) at position {<var>x</var>, <var>y</var>}. The string <var>pre</var> will be printed before formula. All other parameters are the same as in <a href="#Text-printing-_0028MGL_0029">Text printing (MGL)</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Data-create-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-filling-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-create-_0028MGL_0029-1"></a>
+<h2 class="section">8.16 Data create (MGL)</h2>
+
+<a name="index-new"></a>
+<p><a name="new"></a>
+</p><dl>
+<dt><a name="index-new-1"></a><u>MGL command:</u> <b>new</b><i> dat [<code>nx=1 ny=1 nz=1</code>]</i></dt>
+<dd><p>Creates or recreates the array <var>dat</var> with specified size and fills it by zero. This command does nothing if one of parameters <var>nx</var>, <var>ny</var>, <var>nz</var> is zero or negative.
+</p></dd></dl>
+
+<a name="index-var"></a>
+<p><a name="var"></a>
+</p><dl>
+<dt><a name="index-var-1"></a><u>MGL command:</u> <b>var</b><i> dat <code>num v1 [v2=nan]</code></i></dt>
+<dd><p>Creates new variable with name <var>dat</var> for one-dimensional array of size <var>num</var>. Array elements are equidistantly distributed in range [<var>v1</var>, <var>v2</var>]. If <var>v2</var>=<code>nan</code> then <var>v2=v1</var> is used. 
+</p></dd></dl>
+
+<a name="index-list"></a>
+<p><a name="list"></a>
+</p><dl>
+<dt><a name="index-list-1"></a><u>MGL command:</u> <b>list</b><i> dat <code>v1 ...</code></i></dt>
+<dd><p>Creates new variable with name <var>dat</var> and fills it by numeric values of command arguments <code>v1 ...</code>. Command can create one-dimensional and two-dimensional arrays with arbitrary values. For creating 2d array the user should use delimiter &lsquo;<samp>|</samp>&rsquo; which means that the following values lie in next row. Array sizes are [maximal of row sizes * number of rows]. For example, command <code>list 1 | 2 3</code> creates the array [1 0; 2 3]. Note, that the maximal number of arguments is 1000. 
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-list-2"></a><u>MGL command:</u> <b>list</b><i> dat d1 ...</i></dt>
+<dd><p>Creates new variable with name <var>dat</var> and fills it by data values of arrays of command arguments <var>d1 ...</var>. Command can create two-dimensional or three-dimensional (if arrays in arguments are 2d arrays) arrays with arbitrary values. Minor dimensions of all arrays in arguments should be equal to dimensions of first array d1. In the opposite case the argument will be ignored. Note, that the maximal number of arguments is 1000. 
+</p></dd></dl>
+
+<a name="index-copy"></a>
+<p><a name="copy"></a>
+</p><dl>
+<dt><a name="index-copy-1"></a><u>MGL command:</u> <b>copy</b><i> dat1 dat2 ['eq'='' <code>on_axis=on</code>]</i></dt>
+<dt><a name="index-copy-2"></a><u>MGL command:</u> <b>copy</b><i> dat1 <code>val</code></i></dt>
+<dd><p>Creates new variable with name <var>dat1</var> and fills it by data values of array <var>dat2</var>. At this, if parameter <var>eq</var> is specified then the data will be modified by corresponding formula by the same way as in <a href="#fill">fill</a> command (for <code>on_axis=on</code>) or in <a href="#modify">modify</a> command (for <code>on_axis=off</code>).
+</p></dd></dl>
+
+<a name="index-idset"></a>
+<p><a name="idset"></a>
+</p><dl>
+<dt><a name="index-idset-1"></a><u>MGL command:</u> <b>idset</b><i> dat 'ids'</i></dt>
+<dd><p>Set the symbol id for data columns. The string must contain one symbol &rsquo;a&rsquo;...&rsquo;z&rsquo; per column (without spaces).
+</p></dd></dl>
+
+<a name="index-info"></a>
+<p><a name="info"></a>
+</p><dl>
+<dt><a name="index-info-1"></a><u>MGL command:</u> <b>info</b><i> dat [<code>detail=off</code>]</i></dt>
+<dd><p>Display information (sizes, maximum/minimum, momentums and so on) about the data dat. Show brief information by default (if <code>detail=off</code>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-info-2"></a><u>MGL command:</u> <b>info</b><i> 'text'</i></dt>
+<dd><p>Display <var>text</var> as information (warning).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Data-filling-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-create-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Rearrange-data-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-filling-_0028MGL_0029-1"></a>
+<h2 class="section">8.17 Data filling (MGL)</h2>
+<a name="index-fill"></a>
+<a name="index-modify"></a>
+
+<a name="index-fill-1"></a>
+<p><a name="fill"></a>
+</p><dl>
+<dt><a name="index-fill-2"></a><u>MGL command:</u> <b>fill</b><i> dat v1 v2 ['dir'='x']</i></dt>
+<dd><p>Equidistantly fills the data values to range [<var>x1</var>, <var>x2</var>] in direction <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;,&lsquo;<samp>y</samp>&rsquo;,&lsquo;<samp>z</samp>&rsquo;}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fill-3"></a><u>MGL command:</u> <b>fill</b><i> dat 'eq'</i></dt>
+<dt><a name="index-fill-4"></a><u>MGL command:</u> <b>fill</b><i> dat 'eq' vdat</i></dt>
+<dt><a name="index-fill-5"></a><u>MGL command:</u> <b>fill</b><i> dat 'eq' vdat wdat</i></dt>
+<dd><p>Command fills the value of array according to the formula in string <var>eq</var>. Formula is an arbitrary expression depending  on variables &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; are supposed to be normalized in <em>bounding box</em> (in difference from <code>modify</code> commands). Variable &lsquo;<samp>u</samp>&rsquo; is the original value of the array. Variables &lsquo;<samp>v</samp>&rsquo; and &lsquo;<samp>w</samp>&rsquo; are values of <var>vdat</var>, <var>wdat</var>.
+</p></dd></dl>
+
+<a name="index-modify-1"></a>
+<p><a name="modify"></a>
+</p><dl>
+<dt><a name="index-modify-2"></a><u>MGL command:</u> <b>modify</b><i> dat 'eq' [<code>dim=0</code>]</i></dt>
+<dt><a name="index-modify-3"></a><u>MGL command:</u> <b>modify</b><i> dat 'eq' vdat</i></dt>
+<dt><a name="index-modify-4"></a><u>MGL command:</u> <b>modify</b><i> dat 'eq' vdat wdat</i></dt>
+<dd><p>Command fills the value of array according to the formula in string <var>eq</var>. Formula is an arbitrary expression depending  on variables &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;. Coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; are data indexes normalized in range [0,1]. Variable &lsquo;<samp>u</samp>&rsquo; is the original value of the array. If <var>dim</var>&gt;0 is specified then modification will be fulfilled only for slices &gt;=<var>dim</var>.
+</p></dd></dl>
+
+
+<a name="index-put"></a>
+<p><a name="put"></a>
+</p><dl>
+<dt><a name="index-put-1"></a><u>MGL command:</u> <b>put</b><i> dat <code>val [i=: j=: k=:]</code></i></dt>
+<dd><p>Function sets value(s) of array <var>dat</var>[<var>i</var>, <var>j</var>, <var>k</var>] = <var>val</var>. Negative indexes <var>i</var>, <var>j</var>, <var>k</var>=&lsquo;<samp>:</samp>&rsquo; set the value <var>val</var> to whole range in corresponding direction(s). For example, <code>put dat val : 0 :</code> sets <var>dat</var>[i,0,j]=<var>val</var> for i=0...(<var>dat</var>.nx-1), j=0...(<var>dat</var>.nz-1).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-put-2"></a><u>MGL command:</u> <b>put</b><i> dat vdat [<code>i=: j=: k=:</code>]</i></dt>
+<dd><p>Function copies value(s) from array <var>vdat</var> to the range of array <var>dat</var>. Negative indexes <var>i</var>, <var>j</var>, <var>k</var>=&lsquo;<samp>:</samp>&rsquo; set the range in corresponding direction(s). At this minor dimensions of array <var>vdat</var> should be large than corresponding dimensions of array <var>dat</var>. For example, <code>put dat v : 0 :</code> sets <var>dat</var>[i,0,j]=<var>vdat</var>.ny&gt;<var>dat</var>.nz ? <var>vdat</var>[i,j] : <var>vdat</var>[i], where i=0...(<var>dat</var>.nx-1), j=0...(<var>dat</var>.nz-1) and condition vdat.nx&gt;=dat.nx is true.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Rearrange-data-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-filling-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#File-I_002fO-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Rearrange-data-_0028MGL_0029-1"></a>
+<h2 class="section">8.18 Rearrange data (MGL)</h2>
+
+<a name="index-rearrange"></a>
+<p><a name="rearrange"></a>
+</p><dl>
+<dt><a name="index-rearrange-1"></a><u>MGL command:</u> <b>rearrange</b><i> dat <code>mx [my=0 mz=0]</code></i></dt>
+<dd><p>Rearrange dimensions without changing data array so that resulting sizes should  be <var>mx</var>*<var>my</var>*<var>mz</var> &lt; nx*ny*nz. If some of parameter <var>my</var> or <var>mz</var> are zero then it will be selected to optimal fill of data array. For example, if <var>my</var>=0 then it will be change to <var>my</var>=nx*ny*nz/<var>mx</var> and <var>mz</var> will be 1.
+</p></dd></dl>
+
+<a name="index-extend"></a>
+<p><a name="extend"></a>
+</p><dl>
+<dt><a name="index-extend-1"></a><u>MGL command:</u> <b>extend</b><i> dat <code>n1 [n2=0]</code></i></dt>
+<dd><p>Increase the dimensions of the data by inserting new (|<var>n1</var>|+1)-th slices after (for <var>n1</var>&gt;0) or before (for <var>n1</var>&lt;0) of existed one. It is possible to insert 2 dimensions simultaneously for 1d data by using parameter <var>n2</var>. Data to new slices is copy from existed one. For example, for <var>n1</var>&gt;0 new array will be 
+a_ij^new = a_i^old where j=0...<var>n1</var>. Correspondingly, for <var>n1</var>&lt;0 new array will be a_ij^new = a_j^old where i=0...|<var>n1</var>|.
+</p></dd></dl>
+
+<a name="index-transpose"></a>
+<p><a name="transpose"></a>
+</p><dl>
+<dt><a name="index-transpose-1"></a><u>MGL command:</u> <b>transpose</b><i> dat ['dim'='yxz']</i></dt>
+<dd><p>Transposes (shift order of) dimensions of the data. New order of dimensions is specified int string <var>dim</var>. This command may be useful also for the reading of one-dimensional data.
+</p></dd></dl>
+
+<a name="index-squeeze"></a>
+<p><a name="squeeze"></a>
+</p><dl>
+<dt><a name="index-squeeze-1"></a><u>MGL command:</u> <b>squeeze</b><i> dat <code>rx [ry=1 rz=1 sm=off]</code></i></dt>
+<dd><p>Reduces the data size by excluding data elements which indexes are not divisible by <var>rx</var>, <var>ry</var>, <var>rz</var> correspondingly. Parameter <var>sm</var> set to use smoothing
+(i.e. out[i]=\sum_{j=i}^{i+r} a[j]/r) or not (i.e. out[i]=a[j*r]).
+</p></dd></dl>
+
+<a name="index-crop"></a>
+<p><a name="crop"></a>
+</p><dl>
+<dt><a name="index-crop-1"></a><u>MGL command:</u> <b>crop</b><i> dat <code>n1 n2</code> 'dir'</i></dt>
+<dd><p>Cuts off edges of the data <var>i</var>&lt;<var>n1</var> and <var>i</var>&gt;<var>n2</var> if <var>n2</var>&gt;0 or <var>i</var>&gt;<code>n[xyz]</code>-<var>n2</var> if <var>n2</var>&lt;=0 along direction <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-delete"></a>
+<p><a name="delete"></a>
+</p><dl>
+<dt><a name="index-delete-1"></a><u>MGL command:</u> <b>delete</b><i> dat</i></dt>
+<dd><p>Deletes variable <var>dat</var> and makes its memory free. Can be useful for huge data arrays.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-delete-2"></a><u>MGL command:</u> <b>delete</b><i> dat 'dir' <code>[pos=off num=0]</code></i></dt>
+<dd><p>Delete <var>num</var> slices along <var>dir</var>-direction at position <var>pos</var>.
+</p></dd></dl>
+
+<a name="index-insert"></a>
+<p><a name="insert"></a>
+</p><dl>
+<dt><a name="index-insert-1"></a><u>MGL command:</u> <b>insert</b><i> dat 'dir' <code>[pos=off num=0]</code></i></dt>
+<dd><p>Insert <var>num</var> slices along <var>dir</var>-direction at position <var>pos</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="File-I_002fO-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Rearrange-data-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Make-another-data-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="File-I_002fO-_0028MGL_0029-1"></a>
+<h2 class="section">8.19 File I/O (MGL)</h2>
+
+<a name="index-read"></a>
+<p><a name="read"></a>
+</p><dl>
+<dt><a name="index-read-1"></a><u>MGL command:</u> <b>read</b><i> dat 'fname'</i></dt>
+<dd><p>Reads data from tab-separated text file with auto determining sizes of the data.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-read-2"></a><u>MGL command:</u> <b>read</b><i> dat 'fname' <code>mx [my=1 mz=1]</code></i></dt>
+<dd><p>Reads data from text file with specified data sizes. This command does nothing if one of parameters <var>mx</var>, <var>my</var> or <var>mz</var> is zero or negative.
+</p></dd></dl>
+
+<a name="index-readmat"></a>
+<p><a name="readmat"></a>
+</p><dl>
+<dt><a name="index-readmat-1"></a><u>MGL command:</u> <b>readmat</b><i> dat 'fname' [<code>dim=2</code>]</i></dt>
+<dd><p>Read data from text file with size specified at beginning of the file by first <var>dim</var> numbers. At this, variable <var>dim</var> set data dimensions.
+</p></dd></dl>
+
+<a name="index-readall"></a>
+<p><a name="readall"></a>
+</p><dl>
+<dt><a name="index-readall-1"></a><u>MGL command:</u> <b>readall</b><i> dat 'templ' <code>v1 v2 [dv=1 slice=off]</code></i></dt>
+<dd><p>Join data arrays from several text files. The file names are determined by function call <code>sprintf(fname,templ,val);</code>, where <var>val</var> changes from <var>v1</var> to <var>v2</var> with step <var>dv</var>. The data load one-by-one in the same slice if <var>slice</var>=<code>off</code> or as slice-by-slice if <var>slice</var>=<code>on</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-readall-2"></a><u>MGL command:</u> <b>readall</b><i> dat 'templ' <code>[slice=off]</code></i></dt>
+<dd><p>Join data arrays from several text files which filenames satisfied the template <var>templ</var> (for example, <var>templ</var>=<code>&quot;t_*.dat&quot;</code>). The data load one-by-one in the same slice if <var>slice</var>=<code>off</code> or as slice-by-slice if <var>slice</var>=<code>on</code>.
+</p></dd></dl>
+
+<a name="index-save"></a>
+<p><a name="save"></a>
+</p><dl>
+<dt><a name="index-save-1"></a><u>MGL command:</u> <b>save</b><i> dat 'fname'</i></dt>
+<dd><p>Saves the whole data array to tab-separated text file.
+</p></dd></dl>
+
+<a name="index-readhdf"></a>
+<p><a name="readhdf"></a>
+</p><dl>
+<dt><a name="index-readhdf-1"></a><u>MGL command:</u> <b>readhdf</b><i> dat 'fname' 'dname'</i></dt>
+<dd><p>Reads data array named <var>dname</var> from HDF5 or HDF4 file <var>fname</var>.
+</p></dd></dl>
+
+<a name="index-savehdf"></a>
+<p><a name="savehdf"></a>
+</p><dl>
+<dt><a name="index-savehdf-1"></a><u>MGL command:</u> <b>savehdf</b><i> dat 'fname' 'dname'</i></dt>
+<dd><p>Saves data array named <var>dname</var> from HDF5 or HDF4 file <var>fname</var>.
+</p></dd></dl>
+
+<a name="index-import"></a>
+<p><a name="import"></a>
+</p><dl>
+<dt><a name="index-import-1"></a><u>MGL command:</u> <b>import</b><i> dat 'fname' 'sch' [<code>v1=0 v2=1</code>]</i></dt>
+<dd><p>Reads data from bitmap file. The RGB values of bitmap pixels are transformed to float values in range [<var>v1</var>, <var>v2</var>] using color scheme <var>sch</var> (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>).
+</p></dd></dl>
+
+<a name="index-export"></a>
+<p><a name="export"></a>
+</p><dl>
+<dt><a name="index-export-1"></a><u>MGL command:</u> <b>export</b><i> dat 'fname' 'sch' [<code>v1=0 v2=0</code>]</i></dt>
+<dd><p>Saves data matrix to bitmap file. The data values are transformed from range [<var>v1</var>, <var>v2</var>] to RGB pixels of bitmap using color scheme <var>sch</var> (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>). If <var>v1</var>&gt;=<var>v2</var> then the values of <var>v1</var>, <var>v2</var> are automatically determined as minimal and maximal value of the data array.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Make-another-data-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#File-I_002fO-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Change-data-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Make-another-data-_0028MGL_0029-1"></a>
+<h2 class="section">8.20 Make another data (MGL)</h2>
+
+<a name="index-combine"></a>
+<p><a name="combine"></a>
+</p><dl>
+<dt><a name="index-combine-1"></a><u>MGL command:</u> <b>combine</b><i> res adat bdat</i></dt>
+<dd><p>Returns direct multiplication of arrays (like, res[i,j] = adat[i]*bdat[j] and so on).
+</p></dd></dl>
+
+<a name="index-evaluate"></a>
+<p><a name="evaluate"></a>
+</p><dl>
+<dt><a name="index-evaluate-1"></a><u>MGL command:</u> <b>evaluate</b><i> res dat idat [<code>norm=on</code>]</i></dt>
+<dt><a name="index-evaluate-2"></a><u>MGL command:</u> <b>evaluate</b><i> res dat idat jdat [<code>norm=on</code>]</i></dt>
+<dt><a name="index-evaluate-3"></a><u>MGL command:</u> <b>evaluate</b><i> res dat idat jdat kdat [<code>norm=on</code>]</i></dt>
+<dd><p>Get array which values is result of interpolation of original array for coordinates from other arrays (for example, res[i,j]=dat[idat[i,j],jdat[i,j]]). All dimensions must be the same for data <var>idat</var>, <var>jdat</var>, <var>kdat</var>. Coordinates from <var>idat</var>, <var>jdat</var>, <var>kdat</var> are supposed to be normalized in range [0,1] (if <var>norm</var>=<code>true</code>) or in ranges [0,nx], [0,ny], [0,nz] correspondingly.
+</p></dd></dl>
+
+<a name="index-hist"></a>
+<p><a name="hist"></a>
+</p><dl>
+<dt><a name="index-hist-1"></a><u>MGL command:</u> <b>hist</b><i> res dat <code>num v1 v2 [nsub=0]</code></i></dt>
+<dt><a name="index-hist-2"></a><u>MGL command:</u> <b>hist</b><i> res dat wdat <code>num v1 v2 [nsub=0]</code></i></dt>
+<dd><p>Creates <var>num</var>-th points distribution <var>res</var> of the data values of <var>dat</var> in range [<var>v1</var>, <var>v2</var>]. Array <var>wdat</var> specifies weights of the data elements (all weight is 1 if <var>wdat</var> is not specified). Parameter <var>nsub</var> define the number of additional interpolated points (for smoothness of histogram).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-hist-3"></a><u>MGL command:</u> <b>hist</b><i> res xdat adat</i></dt>
+<dt><a name="index-hist-4"></a><u>MGL command:</u> <b>hist</b><i> res xdat ydat adat</i></dt>
+<dt><a name="index-hist-5"></a><u>MGL command:</u> <b>hist</b><i> res xdat ydat zdat adat</i></dt>
+<dd><p>Creates distribution <var>res</var> of the data values of <var>adat</var> in axis range [Min, Max]. Array <var>adat</var> look like weights of the data points.
+</p></dd></dl>
+
+
+<a name="index-momentum"></a>
+<p><a name="momentum"></a>
+</p><dl>
+<dt><a name="index-momentum-1"></a><u>MGL command:</u> <b>momentum</b><i> res dat 'how' ['dir'='z']</i></dt>
+<dd><p>Get momentum (1D-array) of the data along direction <var>dir</var>. String <var>how</var> contain kind of momentum. The momentum is defined like as
+res_k = \sum_ij how(x_i,y_j,z_k) a_ij/ \sum_ij a_ij
+if <var>var</var>=&lsquo;<samp>z</samp>&rsquo; and so on. Coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; are data indexes normalized in range [0,1].
+</p></dd></dl>
+
+<a name="index-sum"></a>
+<p><a name="sum"></a>
+</p><dl>
+<dt><a name="index-sum-1"></a><u>MGL command:</u> <b>sum</b><i> res dat 'dir'</i></dt>
+<dd><p>Gets array which is the result of summation in given direction or direction(s).
+</p></dd></dl>
+<a name="index-max"></a>
+<p><a name="max"></a>
+</p><dl>
+<dt><a name="index-max-1"></a><u>MGL command:</u> <b>max</b><i> res dat 'dir'</i></dt>
+<dd><p>Gets array which is the maximal data values in given direction or direction(s).
+</p></dd></dl>
+<a name="index-min"></a>
+<p><a name="min"></a>
+</p><dl>
+<dt><a name="index-min-1"></a><u>MGL command:</u> <b>min</b><i> res dat 'dir'</i></dt>
+<dd><p>Gets array which is the minimal data values in given direction or direction(s).
+</p></dd></dl>
+
+<a name="index-resize"></a>
+<p><a name="resize"></a>
+</p><dl>
+<dt><a name="index-resize-1"></a><u>MGL command:</u> <b>resize</b><i> res dat <code>mx [my=1 mz=1]</code></i></dt>
+<dd><p>Makes array <var>res</var> of sizes <var>mx</var>, <var>my</var>, <var>mz</var> with interpolated data of array <var>dat</var>. 
+</p></dd></dl>
+
+<a name="index-subdata"></a>
+<p><a name="subdata"></a>
+</p><dl>
+<dt><a name="index-subdata-1"></a><u>MGL command:</u> <b>subdata</b><i> res dat <code>xx [yy=: zz=:]</code></i></dt>
+<dd><p>Extracts sub-array data <var>res</var> from the original data <var>dat</var> array keeping fixed positive index. For example <code>subdata a b : 2</code> extracts 3d row (indexes are zero based), <code>subdata a b 4 :</code> extracts 5th column, <code>subdata a b : : 3</code> extracts 4th slice and so on. Note that symbol &lsquo;<samp>:</samp>&rsquo; is defined &lsquo;<samp>:</samp>&rsquo;=<code>-1</code> in MGL.
+</p></dd></dl>
+
+<a name="index-trace"></a>
+<p><a name="trace"></a>
+</p><dl>
+<dt><a name="index-trace-1"></a><u>MGL command:</u> <b>trace</b><i> res dat</i></dt>
+<dd><p>Gets array of diagonal elements <var>dat</var>[i,i] (for 2D case) or <var>dat</var>[i,i,i] (for 3D case) where i=0...nx-1. Function return copy of <var>dat</var> for 1D case. Data array must have dimensions <var>dat</var>.ny, <var>dat</var>.nz &gt;= <var>dat</var>.nx or <var>dat</var>.ny, <var>dat</var>.nz = 1.
+</p></dd></dl>
+
+<a name="index-transform"></a>
+<p><a name="transform"></a>
+</p><dl>
+<dt><a name="index-transform-1"></a><u>MGL command:</u> <b>transform</b><i> dat 'type' real imag</i></dt>
+<dd><p>Do integral transformation of complex data <var>real</var>, <var>imag</var> on specified direction. The order of transformations is specified in string <var>type</var>: first character for x-dimension, second one for y-dimension, third one for z-dimension. The possible character are: &lsquo;<samp>f</samp>&rsquo; is forward Fourier transformation, &lsquo;<samp>i</samp>&rsquo; is inverse Fourier transformation, &lsquo;<samp>s</samp>&rsquo; is Sine transform, &lsquo;<samp>c</samp>&rsquo; is Cosine transform, &lsquo;<samp>h</samp>&rsquo; is Hankel transform, &lsquo;<samp>n</samp>&rsquo; or &lsquo;<samp> </samp>&rsquo; is no transformation.
+</p></dd></dl>
+
+<a name="index-transforma"></a>
+<p><a name="transforma"></a>
+</p><dl>
+<dt><a name="index-transforma-1"></a><u>MGL command:</u> <b>transforma</b><i> dat 'type' ampl phase</i></dt>
+<dd><p>The same as previous but with specified amplitude <var>ampl</var> and phase <var>phase</var> of complex numbers.
+</p></dd></dl>
+
+<a name="index-stfad"></a>
+<p><a name="stfad"></a>
+</p><dl>
+<dt><a name="index-stfad-1"></a><u>MGL command:</u> <b>stfad</b><i> res real imag <code>dn</code> ['dir'='x']</i></dt>
+<dd><p>Short time Fourier transformation for real and imaginary parts. Output  is amplitude of partial Fourier of length <var>dn</var>. For example if <var>dir</var>=&lsquo;<samp>x</samp>&rsquo;, result will have size {int(nx/dn), dn, ny} and it will contain <em>res[i,j,k]=|\sum_d^dn exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn</em>.
+</p></dd></dl>
+
+<a name="index-pde"></a>
+<p><a name="pde"></a>
+</p><dl>
+<dt><a name="index-pde-1"></a><u>MGL command:</u> <b>pde</b><i> res 'ham' ini_re ini_im [<code>dz=0.1 k0=100</code>]</i></dt>
+<dd><p>Solves equation du/dz = i*k0*<var>ham</var>(p,q,x,y,z,|u|)[u], where p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators. Parameters <var>ini_re</var>, <var>ini_im</var> specify real and imaginary part of initial field distribution. Coordinates of the equation (and the solution) are supposed to be in the bounding box. Note, that really this ranges are increased by factor 3/2 for purpose of reducing reflection from boundaries. Parameter <var>dz</var> set the step along evolutionary coordinate z. At this moment, simplified form of function <var>ham</var> is supported &ndash; all &ldquo;mixed&rdquo; terms (like &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) are excluded. For example, in 2D case this function is effectively <em>ham = f(p,z) + g(x,z,u)</em>. However commutable combinations (like &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy) are allowed. Here variable &lsquo;<samp>u</samp>&rsquo; is used for field amplitude |u|. This allow one solve nonlinear problems &ndash; for example, for non-linear Shrodinger equation you may set <code>ham='p^2+q^2-u^2'</code>. You may specify imaginary part for wave absorption, like <code>ham = 'p^2+i*x*(x&gt;0)'</code>, but only if dependence on variable &lsquo;<samp>i</samp>&rsquo; is linear (i.e. <em>ham = hre+i*him</em>). See section <a href="mathgl_en_9.html#PDE-sample">PDE sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-ray"></a>
+<p><a name="ray"></a>
+</p><dl>
+<dt><a name="index-ray-1"></a><u>MGL command:</u> <b>ray</b><i> res 'ham' <code>x0 y0 z0 p0 q0 v0 [dt=0.1 tmax=10]</code></i></dt>
+<dd><p>Solves GO ray equation like d<em>r</em>/dt = d <var>ham</var>/d<em>p</em>, d<em>p</em>/dt = -d <var>ham</var>/d<em>r</em>. This is Hamiltonian equations for particle trajectory in 3D case. Here <var>ham</var> is Hamiltonian which may depend on coordiantes &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, momentums &lsquo;<samp>p</samp>&rsquo;=px, &lsquo;<samp>q</samp>&rsquo;=py, &lsquo;<samp>v</samp>&rsquo;=pz and time &lsquo;<samp>t</samp>&rsquo;: <em>ham = H(x,y,z,p,q,v,t)</em>. The starting point (at <code>t=0</code>) is defined by variables {<var>x0</var>, <var>y0</var>, <var>z0</var>, <var>p0</var>, <var>q0</var>, <var>v0</var>}. Parameters <var>dt</var> and <var>tmax</var> specify the integration step and maximal time for ray tracing. Result is array of {x,y,z,p,q,v,t} with dimensions {7 * int(<var>tmax</var>/<var>dt</var>+1) }. See also <a href="#pde">pde</a>. See section <a href="mathgl_en_9.html#Beam-tracing-sample">Beam tracing sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-qo2d"></a>
+<p><a name="qo2d"></a>
+</p><dl>
+<dt><a name="index-qo2d-1"></a><u>MGL command:</u> <b>qo2d</b><i> res 'ham' ini_re ini_im ray [<code>r=1 k0=100</code> xx=0 yy=0]</i></dt>
+<dd><p>Solves equation du/dt = i*k0*<var>ham</var>(p,q,x,y,|u|)[u], where p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators. Parameters <var>ini_re</var>, <var>ini_im</var> specify real and imaginary part of initial field distribution. Parameters <var>ray</var> set the reference ray, i.e. the ray around which the accompanied coordinate system will be maked. You may use, for example, the array created by <a href="#ray">ray</a> function. Note, that the reference ray <strong>must be</strong> smooth enough to make accompanied coodrinates unambiguity. Otherwise errors in the solution may appear. If <var>xx</var> and <var>yy</var> are non-zero then Cartesian coordinates for each point will be written into them. See section <a href="mathgl_en_9.html#Beam-tracing-sample">Beam tracing sample</a>, for sample code and picture. 
+</p></dd></dl>
+
+<a name="index-jacobian"></a>
+<p><a name="jacobian"></a>
+</p><dl>
+<dt><a name="index-jacobian-1"></a><u>MGL command:</u> <b>jacobian</b><i> res xdat ydat [zdat=0]</i></dt>
+<dd><p>Computates the Jacobian for transformation {i,j,k} to {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} where initial coordinates  {i,j,k} are data indexes normalized in range [0,1]. The Jacobian is determined by formula det||<em>dr_\alpha/d\xi_\beta</em>|| where <em>r</em>={<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} and <em>\  xi</em>={i,j,k}. All dimensions must be the same for all data arrays. Data must be 3D if all 3 arrays {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} are specified or 2D if only 2 arrays {<var>xdat</var>,<var>ydat</var>} are specified.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Change-data-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Make-another-data-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Operators-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Change-data-_0028MGL_0029-1"></a>
+<h2 class="section">8.21 Change data (MGL)</h2>
+
+<p>These commands change the data in some direction like differentiations, integrations and so on. The direction in which the change will applied is specified by the string parameter, which may contain &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo; characters for 1-st, 2-nd and 3-d dimension correspondingly.
+</p>
+<a name="index-cumsum"></a>
+<p><a name="cumsum"></a>
+</p><dl>
+<dt><a name="index-cumsum-1"></a><u>MGL command:</u> <b>cumsum</b><i> dat 'dir'</i></dt>
+<dd><p>Cumulative summation of the data in given direction or directions.
+</p></dd></dl>
+<a name="index-integrate"></a>
+<p><a name="integrate"></a>
+</p><dl>
+<dt><a name="index-integrate-1"></a><u>MGL command:</u> <b>integrate</b><i> dat 'dir'</i></dt>
+<dd><p>Integrates (like cumulative summation) the data in given direction or directions.
+</p></dd></dl>
+<a name="index-diff"></a>
+<p><a name="diff"></a>
+</p><dl>
+<dt><a name="index-diff-1"></a><u>MGL command:</u> <b>diff</b><i> dat 'dir'</i></dt>
+<dd><p>Differentiates the data in given direction or directions.
+</p></dd></dl>
+<dl>
+<dt><a name="index-diff-2"></a><u>MGL command:</u> <b>diff</b><i> dat xdat ydat [zdat=0]</i></dt>
+<dd><p>Differentiates the data <var>dat</var> specified parametrically in direction <var>xdat</var> with <var>ydat</var>, <var>zdat</var>=constant. Parameter <var>zdat</var> can be omitted that correspond to 2D case. Parametrical differentiation uses the formula (for 2D case): <em>da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j)</em> where <em>a_i=da/di, a_j=da/dj</em> denotes usual differentiation along 1st and 2nd dimensions. The similar formula is used for 3D case. Note, that you may change the order of arguments &ndash; for example, if you have 2D data a(i,j) which depend on coordinates {x(i,j), y(i,j)} then usual derivative along &lsquo;<samp>x</samp>&rsquo; will be <code>diff a x y</code> and usual derivative along &lsquo;<samp>y</samp>&rsquo; will be <code>diff a y x</code>.
+</p></dd></dl>
+
+<a name="index-diff2"></a>
+<p><a name="diff2"></a>
+</p><dl>
+<dt><a name="index-diff2-1"></a><u>MGL command:</u> <b>diff2</b><i> dat 'dir'</i></dt>
+<dd><p>Double-differentiates (like Laplace operator) the data in given direction.
+</p></dd></dl>
+
+<a name="index-sinfft"></a>
+<p><a name="sinfft"></a>
+</p><dl>
+<dt><a name="index-sinfft-1"></a><u>MGL command:</u> <b>sinfft</b><i> dat 'dir'</i></dt>
+<dd><p>Do Sine transform of the data in given direction or directions. The Sine transform is <em>\sum a_i \sin(k i)</em>.
+</p></dd></dl>
+<a name="index-cosfft"></a>
+<p><a name="cosfft"></a>
+</p><dl>
+<dt><a name="index-cosfft-1"></a><u>MGL command:</u> <b>cosfft</b><i> dat 'dir'</i></dt>
+<dd><p>Do Cosine transform of the data in given direction or directions. The Cosine transform is <em>\sum a_i \cos(k i)</em>.
+</p></dd></dl>
+<a name="index-hankel"></a>
+<p><a name="hankel"></a>
+</p><dl>
+<dt><a name="index-hankel-1"></a><u>MGL command:</u> <b>hankel</b><i> dat 'dir'</i></dt>
+<dd><p>Do Hankel transform of the data in given direction or directions. The Hankel transform is <em>\sum a_i J_0(k i)</em>.
+</p></dd></dl>
+
+
+<a name="index-swap"></a>
+<p><a name="swap"></a>
+</p><dl>
+<dt><a name="index-swap-1"></a><u>MGL command:</u> <b>swap</b><i> dat 'dir'</i></dt>
+<dd><p>Swaps the left and right part of the data in given direction (useful for Fourier spectrum).
+</p></dd></dl>
+<a name="index-roll"></a>
+<p><a name="roll"></a>
+</p><dl>
+<dt><a name="index-roll-1"></a><u>MGL command:</u> <b>roll</b><i> dat 'dir' num</i></dt>
+<dd><p>Rolls the data along direction &rsquo;dir&rsquo;. Resulting array will be out[i] = ini[(i+num)%nx] if <code>dir='x'</code>.
+</p></dd></dl>
+
+<a name="index-mirror"></a>
+<p><a name="mirror"></a>
+</p><dl>
+<dt><a name="index-mirror-1"></a><u>MGL command:</u> <b>mirror</b><i> dat 'dir'</i></dt>
+<dd><p>Mirror the left-to-right part of the data in given direction. Looks like change the value index <var>i</var>-&gt;<var>n-i</var>.
+</p></dd></dl>
+
+<a name="index-sew"></a>
+<p><a name="sew"></a>
+</p><dl>
+<dt><a name="index-sew-1"></a><u>MGL command:</u> <b>sew</b><i> dat ['dir'='xyz' <code>da=2*pi</code>]</i></dt>
+<dd><p>Remove value steps (like phase jumps after inverse trigonometric commands) with period <var>da</var> in given direction.
+</p></dd></dl>
+<a name="index-smooth"></a>
+<p><a name="smooth"></a>
+</p><dl>
+<dt><a name="index-smooth-1"></a><u>MGL command:</u> <b>smooth</b><i> data <code>type</code> ['dir'='xyz']</i></dt>
+<dd><p>Smooths the data on specified direction or directions by method <var>Type</var>. Now 4 methods are supported: &lsquo;<samp>0</samp>&rsquo; does nothing, &lsquo;<samp>1</samp>&rsquo; linear averaging by 3 points, &lsquo;<samp>2</samp>&rsquo; linear averaging by 5 points, &lsquo;<samp>3</samp>&rsquo; quadratic averaging by 5 points.
+</p></dd></dl>
+
+<a name="index-envelop"></a>
+<p><a name="envelop"></a>
+</p><dl>
+<dt><a name="index-envelop-1"></a><u>MGL command:</u> <b>envelop</b><i> dat ['dir'='x']</i></dt>
+<dd><p>Find envelop for data values along direction <var>dir</var>. Only one direction can be specified at once.
+</p></dd></dl>
+
+<a name="index-normsl"></a>
+<p><a name="normsl"></a>
+</p><dl>
+<dt><a name="index-normsl-1"></a><u>MGL command:</u> <b>normsl</b><i> dat <code>v1 v2</code> ['dir'='z' <code>keep=on sym=off</code>]</i></dt>
+<dd><p>Normalizes data slice-by-slice along direction <var>dir</var> the data in slices to range [<var>v1</var>,<var>v2</var>]. If flag <var>sym</var>=<code>on</code> then symmetrical interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used. If <var>keep</var> is set then maximal value of k-th slice will be limited by 
+<em>\sqrt\sum a_ij(k)/\sum a_ij(0)</em>.
+</p></dd></dl>
+
+<a name="index-norm"></a>
+<p><a name="norm"></a>
+</p><dl>
+<dt><a name="index-norm-1"></a><u>MGL command:</u> <b>norm</b><i> dat <code>v1 v2 [sym=off dim=0]</code></i></dt>
+<dd><p>Normalizes the data to range [<var>v1</var>,<var>v2</var>]. If flag <var>sym</var>=<code>on</code> then symmetrical interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used. Modification will be applied only for slices &gt;=<var>dim</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Operators-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Change-data-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Program-flow-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Operators-_0028MGL_0029-1"></a>
+<h2 class="section">8.22 Operators (MGL)</h2>
+
+<a name="index-multo"></a>
+<p><a name="multo"></a>
+</p><dl>
+<dt><a name="index-multo-1"></a><u>MGL command:</u> <b>multo</b><i> dat dat2</i></dt>
+<dd><p>Multiplies the data by the other one for each element.
+</p></dd></dl>
+<dl>
+<dt><a name="index-multo-2"></a><u>MGL command:</u> <b>multo</b><i> dat <code>val</code></i></dt>
+<dd><p>Multiplies each element by the number.
+</p></dd></dl>
+
+<a name="index-divto"></a>
+<p><a name="divto"></a>
+</p><dl>
+<dt><a name="index-divto-1"></a><u>MGL command:</u> <b>divto</b><i> dat dat2</i></dt>
+<dd><p>Divides the data by the other one for each element.
+</p></dd></dl>
+<dl>
+<dt><a name="index-divto-2"></a><u>MGL command:</u> <b>divto</b><i> dat <code>val</code></i></dt>
+<dd><p>Divides each element by the number.
+</p></dd></dl>
+
+<a name="index-addto"></a>
+<p><a name="addto"></a>
+</p><dl>
+<dt><a name="index-addto-1"></a><u>MGL command:</u> <b>addto</b><i> dat dat2</i></dt>
+<dd><p>Adds the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-addto-2"></a><u>MGL command:</u> <b>addto</b><i> dat <code>val</code></i></dt>
+<dd><p>Adds the number to each element.
+</p></dd></dl>
+
+<a name="index-subto"></a>
+<p><a name="subto"></a>
+</p><dl>
+<dt><a name="index-subto-1"></a><u>MGL command:</u> <b>subto</b><i> dat dat2</i></dt>
+<dd><p>Subtracts the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-subto-2"></a><u>MGL command:</u> <b>subto</b><i> dat <code>val</code></i></dt>
+<dd><p>Subtracts the number to each element.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Program-flow-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Operators-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Command-options-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Program-flow-_0028MGL_0029-1"></a>
+<h2 class="section">8.23 Program flow (MGL)</h2>
+
+<p>These commands control program flow, like, conditions, cycles, define script arguments and so on.
+</p>
+<a name="index-chdir"></a>
+<p><a name="chdir"></a>
+</p><dl>
+<dt><a name="index-chdir-1"></a><u>MGL command:</u> <b>chdir</b><i> 'path'</i></dt>
+<dd><p>Changes the current directory to <var>path</var>.
+</p></dd></dl>
+
+<a name="index-define"></a>
+<p><a name="define"></a>
+</p><dl>
+<dt><a name="index-define-1"></a><u>MGL command:</u> <b>define</b><i> $N smth</i></dt>
+<dd><p>Sets <var>N</var>-th script argument to <var>smth</var>. Note, that <var>smth</var> is used as is (with &lsquo;<samp>'</samp>&rsquo; symbols if present). Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<dl>
+<dt><a name="index-define-2"></a><u>MGL command:</u> <b>define</b><i> name smth</i></dt>
+<dd><p>Create scalar variable <code>name</code> which have the numeric value of <code>smth</code>. Later you can use this variable as usual number. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<a name="index-defchr"></a>
+<p><a name="defchr"></a>
+</p><dl>
+<dt><a name="index-defchr-1"></a><u>MGL command:</u> <b>defchr</b><i> $N smth</i></dt>
+<dd><p>Sets <var>N</var>-th script argument to character with value evaluated from <var>smth</var>. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<a name="index-defnum"></a>
+<p><a name="defnum"></a>
+</p><dl>
+<dt><a name="index-defnum-1"></a><u>MGL command:</u> <b>defnum</b><i> $N smth</i></dt>
+<dd><p>Sets <var>N</var>-th script argument to number with value evaluated from <var>smth</var>. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<a name="index-defpal"></a>
+<p><a name="defpal"></a>
+</p><dl>
+<dt><a name="index-defpal-1"></a><u>MGL command:</u> <b>defpal</b><i> $N smth</i></dt>
+<dd><p>Sets <var>N</var>-th script argument to palette character at position evaluated from <var>smth</var>. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+
+<a name="index-call"></a>
+<p><a name="call"></a>
+</p><dl>
+<dt><a name="index-call-1"></a><u>MGL command:</u> <b>call</b><i> 'fname' [ARG1 ARG2 ... ARG9]</i></dt>
+<dd><p>Executes function <var>fname</var> (or script if function is not found). Optional arguments will be passed to functions. See also <a href="#func">func</a>.
+</p></dd></dl>
+<a name="index-func"></a>
+<p><a name="func"></a>
+</p><dl>
+<dt><a name="index-func-1"></a><u>MGL command:</u> <b>func</b><i> 'fname' [narg=0]</i></dt>
+<dd><p>Define the function <var>fname</var> and number of required arguments. The arguments will be placed in script parameters $1, $2, ... $9. Note, you should stop script execution before function definition(s) by command <a href="#stop">stop</a>. See also <a href="#return">return</a>.
+</p></dd></dl>
+<a name="index-return"></a>
+<p><a name="return"></a>
+</p><dl>
+<dt><a name="index-return-1"></a><u>MGL command:</u> <b>return</b></dt>
+<dd><p>Return from the function. See also <a href="#func">func</a>.
+</p></dd></dl>
+
+
+<a name="index-if"></a>
+<p><a name="if"></a>
+</p><dl>
+<dt><a name="index-if-1"></a><u>MGL command:</u> <b>if</b><i> dat 'cond'</i></dt>
+<dd><p>Starts block which will be executed if <var>dat</var> satisfy to <var>cond</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-if-2"></a><u>MGL command:</u> <b>if</b><i> <code>val</code></i></dt>
+<dd><p>Starts block which will be executed if <code>val</code> is nonzero.
+</p></dd></dl>
+<a name="index-elseif"></a>
+<p><a name="elseif"></a>
+</p><dl>
+<dt><a name="index-elseif-1"></a><u>MGL command:</u> <b>elseif</b><i> dat 'cond'</i></dt>
+<dd><p>Starts block which will be executed if previous <code>if</code> or <code>elseif</code> is false and <var>dat</var> satisfy to <var>cond</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-elseif-2"></a><u>MGL command:</u> <b>elseif</b><i> <code>val</code></i></dt>
+<dd><p>Starts block which will be executed if previous <code>if</code> or <code>elseif</code> is false and <code>val</code> is nonzero.
+</p></dd></dl>
+<a name="index-else"></a>
+<p><a name="else"></a>
+</p><dl>
+<dt><a name="index-else-1"></a><u>MGL command:</u> <b>else</b></dt>
+<dd><p>Starts block which will be executed if previous <code>if</code> or <code>elseif</code> is false.
+</p></dd></dl>
+<a name="index-endif"></a>
+<p><a name="endif"></a>
+</p><dl>
+<dt><a name="index-endif-1"></a><u>MGL command:</u> <b>endif</b></dt>
+<dd><p>Finishes <code>if/elseif/else</code> block.
+</p></dd></dl>
+
+<a name="index-for"></a>
+<p><a name="for"></a>
+</p><dl>
+<dt><a name="index-for-1"></a><u>MGL command:</u> <b>for</b><i> $N <code>v1 v2 [dv=1]</code></i></dt>
+<dd><p>Starts cycle with $<var>N</var>-th argument changing from <var>v1</var> to <var>v2</var> with the step <var>dv</var>. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<dl>
+<dt><a name="index-for-2"></a><u>MGL command:</u> <b>for</b><i> $N dat</i></dt>
+<dd><p>Starts cycle with $<var>N</var>-th argument changing for <var>dat</var> values. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<a name="index-next"></a>
+<p><a name="next"></a>
+</p><dl>
+<dt><a name="index-next-1"></a><u>MGL command:</u> <b>next</b></dt>
+<dd><p>Finishes <code>for</code> cycle.
+</p></dd></dl>
+
+<a name="index-once"></a>
+<p><a name="once"></a>
+</p><dl>
+<dt><a name="index-once-1"></a><u>MGL command:</u> <b>once</b><i> <code>val</code></i></dt>
+<dd><p>The code between <code>once on</code> and <code>once off</code> will be executed only once. Useful for large data manipulation in programs like UDAV.
+</p></dd></dl>
+<a name="index-stop"></a>
+<p><a name="stop"></a>
+</p><dl>
+<dt><a name="index-stop-1"></a><u>MGL command:</u> <b>stop</b></dt>
+<dd><p>Terminate execution.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Command-options-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Program-flow-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Suffixes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Command-options-_0028MGL_0029-1"></a>
+<h2 class="section">8.24 Command options (MGL)</h2>
+
+<p>Command options allow the easy setup of the plot by changing of global settings only for this plot. Options are specified at the end of string. Each option is separated from the previous text by symbol &lsquo;<samp>;</samp>&rsquo;. Options work so that them remember the current settings, change settings as it being set in the option, execute command and return the original settings back. So, the options usage for data handling commands or for graphics setup commands is useless.
+</p>
+<p>The most useful options are <code>xrange, yrange, zrange</code>. They sets the boundaries for data change. This boundaries are used for automatically filled variables. So, these options allow one to change the position of some plots. For example, in command <code>plot y; xrange 0.1 0.9</code> the x coordinate will be equidistantly distributed in range 0.1 ... 0.9.
+</p>
+<p>The full list of options are:
+<a name="index-alpha-2"></a>
+<a name="index-alphadef-2"></a>
+</p><dl>
+<dt><a name="index-alpha-3"></a><u>MGL option:</u> <b>alpha</b><i> <code>val</code></i></dt>
+<dt><a name="index-alphadef-3"></a><u>MGL option:</u> <b>alphadef</b><i> <code>val</code></i></dt>
+<dd><p>Sets alpha value (transparency) of the plot. The value should be in range [0, 1]. See also <a href="#alphadef">alphadef</a>.
+</p></dd></dl>
+<a name="index-ambient-2"></a>
+<dl>
+<dt><a name="index-ambient-3"></a><u>MGL option:</u> <b>ambient</b><i> <code>val</code></i></dt>
+<dd><p>Sets brightness of ambient light for the plot. The value should be in range [0, 1]. See also <a href="#ambient">ambient</a>.
+</p></dd></dl>
+<a name="index-crange-3"></a>
+<dl>
+<dt><a name="index-crange-4"></a><u>MGL option:</u> <b>crange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Sets boundaries of color change for the plot. See also <a href="#crange">crange</a>.
+</p></dd></dl>
+<a name="index-xrange-3"></a>
+<dl>
+<dt><a name="index-xrange-4"></a><u>MGL option:</u> <b>xrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Sets boundaries of x coordinate change for the plot. See also <a href="#xrange">xrange</a>.
+</p></dd></dl>
+<a name="index-yrange-3"></a>
+<dl>
+<dt><a name="index-yrange-4"></a><u>MGL option:</u> <b>yrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Sets boundaries of y coordinate change for the plot. See also <a href="#yrange">yrange</a>.
+</p></dd></dl>
+<a name="index-zrange-3"></a>
+<dl>
+<dt><a name="index-zrange-4"></a><u>MGL option:</u> <b>zrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Sets boundaries of z coordinate change for the plot. See also <a href="#zrange">zrange</a>.
+</p></dd></dl>
+<a name="index-cut-4"></a>
+<dl>
+<dt><a name="index-cut-5"></a><u>MGL option:</u> <b>cut</b><i> <code>val</code></i></dt>
+<dd><p>Sets whether to cut or to project the plot points lying outside the bounding box. See also <a href="#cut">cut</a>.
+</p></dd></dl>
+<a name="index-fontsize"></a>
+<dl>
+<dt><a name="index-fontsize-1"></a><u>MGL option:</u> <b>fontsize</b><i> <code>val</code></i></dt>
+<dd><p>Sets the size of text. See also <a href="#font">font</a>.
+</p></dd></dl>
+<a name="index-marksize-2"></a>
+<dl>
+<dt><a name="index-marksize-3"></a><u>MGL option:</u> <b>marksize</b><i> <code>val</code></i></dt>
+<dd><p>Sets the size of marks. See also <a href="#marksize">marksize</a>.
+</p></dd></dl>
+<a name="index-meshnum-2"></a>
+<dl>
+<dt><a name="index-meshnum-3"></a><u>MGL option:</u> <b>meshnum</b><i> <code>val</code></i></dt>
+<dd><p>Work like <a href="#meshnum">meshnum</a> command.
+</p></dd></dl>
+<a name="index-legend-3"></a>
+<dl>
+<dt><a name="index-legend-4"></a><u>MGL option:</u> <b>legend</b><i> 'txt'</i></dt>
+<dd><p>Adds string &rsquo;txt&rsquo; to internal legend accumulator. The style of described line and mark is taken from arguments of the last <a href="#g_t1D-plotting-_0028MGL_0029">1D plotting (MGL)</a> command. See also <a href="#legend">legend</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Suffixes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Command-options-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Utilities" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Suffixes-for-variable"></a>
+<h2 class="section">8.25 Suffixes for variable</h2>
+
+<p>Suffixes can get some numerical value (like its size, maximal or minimal value, the sum of elements and so on) of the data array in variable and use it later as usual number in command arguments. The suffixes start from point &lsquo;<samp>.</samp>&rsquo; right after (without spaces) variable name or its sub-array. For example, <code>a.nx</code> give the x-size of data <var>a</var>, <code>b(1).max</code> give maximal value of second row of variable <var>b</var>, <code>(c(:,0)^2).sum</code> give the sum of squares of elements in the first column of <var>c</var> and so on.
+</p>
+<p>The full list of suffixes are:
+</p><dl compact="compact">
+<dt> <strong>nx, ny, nz</strong></dt>
+<dd><p>Give the data size in x-, y-, z-direction correspondingly.
+</p></dd>
+<dt> <strong>max</strong></dt>
+<dd><p>Give maximal value of the data.
+</p></dd>
+<dt> <strong>min</strong></dt>
+<dd><p>Give minimal value of the data.
+</p></dd>
+<dt> <strong>sum</strong></dt>
+<dd><p>Give sum of data values.
+</p></dd>
+<dt> <strong>a</strong></dt>
+<dd><p>Give first value of data array.
+</p></dd>
+<dt> <strong>fst</strong></dt>
+<dd><p>Give first nonzero value of data array.
+</p></dd>
+<dt> <strong>lst</strong></dt>
+<dd><p>Give last nonzero value of data array.
+</p></dd>
+<dt> <strong>mx, my, mz</strong></dt>
+<dd><p>Give x-, y-, z-position of data maximum.
+</p></dd>
+<dt> <strong>ax, ay, az, aa</strong></dt>
+<dd><p>Give x-, y-, z-position of data mass center or average data value.
+</p></dd>
+<dt> <strong>wx, wy, wz, wa</strong></dt>
+<dd><p>Give width in x-, y-, z-direction or data dispersion value.
+</p></dd>
+<dt> <strong>sx, sy, sz, sa</strong></dt>
+<dd><p>Give skewness in x-, y-, z-direction or data skewness value.
+</p></dd>
+<dt> <strong>kx, ky, kz, ka</strong></dt>
+<dd><p>Give kurtosis in x-, y-, z-direction or data kurtosis value.
+</p></dd>
+</dl>
+
+<hr size="6">
+<a name="Utilities"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Suffixes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Utilities-for-parsing-MGL"></a>
+<h2 class="section">8.26 Utilities for parsing MGL</h2>
+
+<p>MathGL library provides several tools for parsing MGL scripts. There is tools saving it to bitmap (<code>mgl2png</code>, <code>mgl2gif</code>) or vectorial (<code>mgl2eps</code>, <code>mgl2svg</code>) images. Tool <code>mglview</code> show MGL script and allow to rotate and setup the image. Also you can translate MGL script to C++ file by help of <code>mgl2cpp</code> tool.
+</p>
+<p>All of this tools have similar set of arguments. First argument is name of script file, next argument is optional output file name, last arguments are options. There are options for setting script parameters (it is <code>$0, $1, ... $9</code>) and locale settings. The script parameters have format &lsquo;<samp>-Nval</samp>&rsquo;. Here N=0,1...9 is parameter ID and val is its value. For example, option &lsquo;<samp>-1test</samp>&rsquo; set to substitute &lsquo;<samp>test</samp>&rsquo; instead of <code>$1</code> in the script. Option -Lval set locale to val. For example, &lsquo;<samp>-Lutf8</samp>&rsquo; will set UTF-8 locale for script.
+</p>
+<p>Additionally you can create animated GIF file or a set of JPEG files with names &lsquo;<samp>frameNNNN.jpg</samp>&rsquo; (here &lsquo;<samp>NNNN</samp>&rsquo; is frame index). You should use <code>mgl2gif</code> tool and specify the values of <code>$0</code> parameter for making animation. Values of the parameter <code>$0</code> can be specified inside the script by comment <code>##a val</code> for each value <code>val</code> (one comment for one value) or by option(s) &lsquo;<samp>-Aval</samp>&rsquo;. Also you can specify a cycle for animation by comment <code>##c v1 v2 dv</code> or by option <code>-Cn1:n2</code>. Tool <code>mgl2gif</code> will execute script several times (once for each specified value of <code>$0</code>) and save result in animated GIF file. For saving each frame in JPEG just add command <code>write ''</code> at the end of the script.
+</p>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_9.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_9.html
new file mode 100644
index 0000000..4ea86a1
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_9.html
@@ -0,0 +1,8219 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: 9. Samples</title>
+
+<meta name="description" content="MathGL 1.11: 9. Samples">
+<meta name="keywords" content="MathGL 1.11: 9. Samples">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_8.html#Utilities" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Samples-1"></a>
+<h1 class="chapter">9. Samples</h1>
+<p>This chapter contain a lot of sample codes for all types of plots and for most important examples and hints. The same sample (with pictures) you can find at <a href="http://mathgl.sf.net/pictures.html">http://mathgl.sf.net/pictures.html</a>. 
+Most of examples have the sample code on 5 languages: C++, MGL, C, Fortran and Python. However, I put only C++ code for some of examples due to a lot of them and clearency how to write code for other languages. All samples are divided on 6 large categories.
+The minimal code to view the samples for different languages are following.
+<strong>C++ code</strong>
+For compilation use: <code>g++ -o sample sample.cpp -lmgl</code>.
+</p><pre class="verbatim">#include &lt;mgl/mgl_zb.h&gt;
+int main()
+{
+    mglGraph *gr = new mglGraphZB;
+    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // put sample code here
+    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    gr-&gt;ShowImage();    delete gr;
+    return 0;
+}
+</pre><p><strong>MGL code</strong>
+For preview use: <code>mglview sample.mgl</code>.
+</p><pre class="verbatim">#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# put sample code here
+#   --&gt;   you may use sample as is :)
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+</pre><p><strong>Pure C code</strong>
+For compilation use: <code>gcc -o sample sample.c -lmgl</code>.
+</p><pre class="verbatim">#include &lt;mgl/mgl_c.h&gt;
+int main()
+{
+    HMGL gr = mgl_create_graph_zb(600,400);
+    /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    /* put sample code here              */
+    /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    mgl_show_image(gr,&quot;&quot;,0);
+    mgl_delete_graph(gr);
+    return 0;
+}
+</pre><p><strong>Fortran code</strong>
+For compilation use: <code>gfortran -o sample sample.f90 -lmgl</code>. Note, fortran don&rsquo;t have argument checking. So you have to take special attention to pass real variables to real arguments of functions and integer variables to integer arguments of functions. There is no other special checking for that!!!
+</p><pre class="verbatim">integer gr, mgl_create_graph_zb
+gr = mgl_create_graph_zb(600,400)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! put sample code here
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+call mgl_show_image(gr,'',0)
+call mgl_delete_graph(gr)
+end
+</pre><p><strong>Python</strong>
+For preview use: <code>python sample.py</code>.
+</p><pre class="verbatim">from mathgl import *
+gr = mglGraph();
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# put sample code here
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+gr.ShowImage();
+</pre><table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting-samples">9.1 1D plotting samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting-samples">9.2 2D plotting samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting-samples">9.3 3D plotting samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting-samples">9.4 Dual plotting samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Basic-features">9.5 Basic features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Additional-features">9.6 Additional features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Advanced-features">9.7 Advanced features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+</table>
+<hr size="6">
+<a name="g_t1D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-plotting-samples-1"></a>
+<h2 class="section">9.1 1D plotting samples</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plot-sample">9.1.1 Plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Radar-sample">9.1.2 Radar sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tens-sample">9.1.3 Tens sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area-sample">9.1.4 Area sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area-gradient-sample">9.1.5 Area with gradient filling sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-sample">9.1.6 Bars sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-2-colors-sample">9.1.7 Bars 2 colors sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-above-sample">9.1.8 Bars above sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-fall-sample">9.1.9 Bars fall sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Barh-sample">9.1.10 Barh sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Step-sample">9.1.11 Step sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stem-sample">9.1.12 Stem sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region-sample">9.1.13 Region sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region-gradient-sample">9.1.14 Region gradient sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Error-sample">9.1.15 Error sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#BoxPlot-sample">9.1.16 BoxPlot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mark-sample">9.1.17 Mark sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TextMark-sample">9.1.18 TextMark sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tube-sample">9.1.19 Tube sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-sample">9.1.20 Text sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Torus-sample">9.1.21 Torus sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Chart-sample">9.1.22 Chart sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pie-chart-sample">9.1.23 Pie chart sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ring-chart-sample">9.1.24 Ring chart sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+<hr size="6">
+<a name="Plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Radar-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plot-sample-1"></a>
+<h3 class="subsection">9.1.1 Plot sample</h3>
+<a name="index-Plot-7"></a>
+<div class="float">
+<img src="../png/plot.png" alt="../png/plot">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Box();
+gr-&gt;Plot(y);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.Box();
+gr.Plot(y);
+</pre><hr size="6">
+<a name="Radar-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Radar-sample-1"></a>
+<h3 class="subsection">9.1.2 Radar sample</h3>
+<a name="index-Radar-2"></a>
+<div class="float">
+<img src="../png/radar.png" alt="../png/radar">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.4*sin(pi*(2*x+y/2))+0.1*rnd&quot;);
+gr-&gt;Radar(y,&quot;#&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.4*sin(pi*(2*x+y/2))+0.1*rnd'
+radar y '#'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.4*sin(pi*(2*x+y/2))+0.1*rnd&quot;,0);
+mgl_radar(gr,y,&quot;#&quot;,-1);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.4*sin(pi*(2*x+y/2))+0.1*rnd',0)
+call mgl_radar(gr,y,'#',-1.)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.4*sin(pi*(2*x+y/2))+0.1*rnd&quot;);
+gr.Radar(y,&quot;#&quot;);
+</pre><hr size="6">
+<a name="Tens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Radar-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tens-sample-1"></a>
+<h3 class="subsection">9.1.3 Tens sample</h3>
+<a name="index-Tens-4"></a>
+<div class="float">
+<img src="../png/tens.png" alt="../png/tens">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50), c(50);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;);
+c.Modify(&quot;sin(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Tens(y,c);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50
+new c 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify c 'sin(2*pi*x)'
+box
+tens y c
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,1,1);
+HMDT c = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(c,&quot;sin(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_tens(gr,y,c,NULL);
+mgl_delete_data(y);
+mgl_delete_data(c);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, c, mgl_create_data_size
+y = mgl_create_data_size(50,1,1)
+c = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(c,'sin(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_tens(gr,y,'')
+call mgl_delete_data(y)
+call mgl_delete_data(c)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50);
+c = mglData(50);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;);
+c.Modify(&quot;sin(2*pi*x)&quot;);
+gr.Box();
+gr.Tens(y,c);
+</pre><hr size="6">
+<a name="Area-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area-gradient-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-sample-1"></a>
+<h3 class="subsection">9.1.4 Area sample</h3>
+<a name="index-Area-4"></a>
+<div class="float">
+<img src="../png/area.png" alt="../png/area">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Area(y);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_area(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_area(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Area(y);
+</pre><hr size="6">
+<a name="Area-gradient-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-with-gradient-filling-sample"></a>
+<h3 class="subsection">9.1.5 Area with gradient filling sample</h3>
+<a name="index-Area-5"></a>
+<div class="float">
+<img src="../png/area_2.png" alt="../png/area_2">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Area(y,&quot;cbgGyr&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y 'cbgGyr'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_area(gr,y,&quot;cbgGyr&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_area(gr,y,'cbgGyr')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Area(y,&quot;cbgGyr&quot;);
+</pre><hr size="6">
+<a name="Bars-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area-gradient-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-2-colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-sample-1"></a>
+<h3 class="subsection">9.1.6 Bars sample</h3>
+<a name="index-Bars-4"></a>
+<div class="float">
+<img src="../png/bars.png" alt="../png/bars">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Bars(y);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y);
+</pre><hr size="6">
+<a name="Bars-2-colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-above-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-2-colors-sample-1"></a>
+<h3 class="subsection">9.1.7 Bars 2 colors sample</h3>
+<a name="index-Bars-5"></a>
+<div class="float">
+<img src="../png/bars_2.png" alt="../png/bars_2">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Bars(y,&quot;cbgGyr&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'cbgGyr'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,&quot;cbgGyr&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'cbgGyr')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,&quot;cbgGyr&quot;);
+</pre><hr size="6">
+<a name="Bars-above-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-2-colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-fall-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-above-sample-1"></a>
+<h3 class="subsection">9.1.8 Bars above sample</h3>
+<a name="index-Bars-6"></a>
+<div class="float">
+<img src="../png/bars_a.png" alt="../png/bars_a">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Bars(y,&quot;a&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'a'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,&quot;a&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'a')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,&quot;a&quot;);
+</pre><hr size="6">
+<a name="Bars-fall-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-above-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Barh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-fall-sample-1"></a>
+<h3 class="subsection">9.1.9 Bars fall sample</h3>
+<a name="index-Bars-7"></a>
+<div class="float">
+<img src="../png/bars_f.png" alt="../png/bars_f">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Bars(y,&quot;f&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'f'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,&quot;f&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'f')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,&quot;f&quot;);
+</pre><hr size="6">
+<a name="Barh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-fall-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Step-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Barh-sample-1"></a>
+<h3 class="subsection">9.1.10 Barh sample</h3>
+<a name="index-Barh-3"></a>
+<div class="float">
+<img src="../png/barh.png" alt="../png/barh">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Barh(y);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+barh y
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_barh(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_barh(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Barh(y);
+</pre><hr size="6">
+<a name="Step-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Barh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stem-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Step-sample-1"></a>
+<h3 class="subsection">9.1.11 Step sample</h3>
+<a name="index-Step-4"></a>
+<div class="float">
+<img src="../png/step.png" alt="../png/step">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Box();
+gr-&gt;Step(y);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+step y
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_box(gr,1);
+mgl_step(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_box(gr,1)
+call mgl_step(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.Box();
+gr.Step(y);
+</pre><hr size="6">
+<a name="Stem-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Step-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stem-sample-1"></a>
+<h3 class="subsection">9.1.12 Stem sample</h3>
+<a name="index-Stem-4"></a>
+<div class="float">
+<img src="../png/stem.png" alt="../png/stem">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Stem(y,&quot;o&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+stem y 'o'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_stem(gr,y,&quot;o&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_stem(gr,y,'o')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Stem(y,&quot;o&quot;);
+</pre><hr size="6">
+<a name="Region-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Stem-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region-gradient-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-sample-1"></a>
+<h3 class="subsection">9.1.13 Region sample</h3>
+<a name="index-Region-3"></a>
+<div class="float">
+<img src="../png/region.png" alt="../png/region">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y1(50), y2(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Region(y1,y2,&quot;r&quot;);
+gr-&gt;Plot(y1,&quot;k2&quot;);
+gr-&gt;Plot(y2,&quot;k2&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'r'
+plot y1 'k2'
+plot y2 'k2'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_region(gr,y1,y2,&quot;r&quot;,1);
+mgl_plot(gr,y1,&quot;k2&quot;);
+mgl_plot(gr,y2,&quot;k2&quot;);
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,'0.3*sin(2*pi*x)',0);
+call mgl_data_modify(y2,'0.5+0.3*cos(2*pi*x)',0);
+call mgl_box(gr,1);
+call mgl_region(gr,y1,y2,'r',1);
+call mgl_plot(gr,y1,'k2');
+call mgl_plot(gr,y2,'k2');
+call mgl_delete_data(y1);
+call mgl_delete_data(y2);
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y1, y2, x = mglData(50), mglData(50), mglData(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.Box();
+gr.Region(y1,y2,&quot;r&quot;);
+gr.Plot(y1,&quot;k2&quot;);
+gr.Plot(y2,&quot;k2&quot;);
+</pre><hr size="6">
+<a name="Region-gradient-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Error-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-gradient-sample-1"></a>
+<h3 class="subsection">9.1.14 Region gradient sample</h3>
+<a name="index-Region-4"></a>
+<div class="float">
+<img src="../png/region_2.png" alt="../png/region_2">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y1(50), y2(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Region(y1,y2,&quot;yr&quot;);
+gr-&gt;Plot(y1,&quot;k2&quot;);
+gr-&gt;Plot(y2,&quot;k2&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'yr'
+plot y1 'k2'
+plot y2 'k2'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_region(gr,y1,y2,&quot;yr&quot;,1);
+mgl_plot(gr,y1,&quot;k2&quot;);
+mgl_plot(gr,y2,&quot;k2&quot;);
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,'0.3*sin(2*pi*x)',0);
+call mgl_data_modify(y2,'0.5+0.3*cos(2*pi*x)',0);
+call mgl_box(gr,1);
+call mgl_region(gr,y1,y2,'yr',1);
+call mgl_plot(gr,y1,'k2');
+call mgl_plot(gr,y2,'k2');
+call mgl_delete_data(y1);
+call mgl_delete_data(y2);
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y1, y2, x = mglData(50), mglData(50), mglData(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.Box();
+gr.Region(y1,y2,&quot;yr&quot;);
+gr.Plot(y1,&quot;k2&quot;);
+gr.Plot(y2,&quot;k2&quot;);
+</pre><hr size="6">
+<a name="Error-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region-gradient-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#BoxPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Error-sample-1"></a>
+<h3 class="subsection">9.1.15 Error sample</h3>
+<a name="index-Error-6"></a>
+<div class="float">
+<img src="../png/error.png" alt="../png/error">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,1), x0(10), y0(10), ex(10), ey(10);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+x0.Modify(&quot;2*x-1 + 0.1*rnd-0.05&quot;);
+y0.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1&quot;);
+ey.Modify(&quot;0.2&quot;); ex.Modify(&quot;0.1&quot;);
+gr-&gt;Box();
+gr-&gt;Plot(y);
+gr-&gt;Error(x0,y0,ex,ey,&quot;ko&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50
+new x0 10
+new y0 10
+new ex 10
+new ey 10
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify x0 '2*x-1 + 0.1*rnd-0.05'
+modify y0 '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1'
+modify ey '0.2'
+modify ex '0.1'
+box
+plot y
+error x0 y0 ex ey 'ko'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,1,1);
+HMDT x0 = mgl_create_data_size(10,1,1);
+HMDT y0 = mgl_create_data_size(10,1,1);
+HMDT ex = mgl_create_data_size(10,1,1);
+HMDT ey = mgl_create_data_size(10,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(x0,&quot;2*x-1 + 0.1*rnd-0.05&quot;,0);
+mgl_data_modify(y0,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1&quot;,0);
+mgl_data_modify(ey,&quot;0.2&quot;,0); mgl_data_modify(ex,&quot;0.1&quot;,0);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_error_exy(gr,x0,y0,ex,ey,&quot;ko&quot;);
+mgl_delete_data(x0); mgl_delete_data(y0);
+mgl_delete_data(ex); mgl_delete_data(ey);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, x0, y0, ex, ey, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+x0 = mgl_create_data_size(10,1,1)
+y0 = mgl_create_data_size(10,1,1)
+ex = mgl_create_data_size(10,1,1)
+ey = mgl_create_data_size(10,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(x0,'2*x-1 + 0.1*rnd-0.05',0);
+call mgl_data_modify(y0,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + &amp;
+                         0.2*sin(pi*x) + 0.2*rnd-0.1',0);
+call mgl_data_modify(ey,'0.2',0)
+call mgl_data_modify(ex,'0.1',0);
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_error_exy(gr,x0,y0,ex,ey,'ko')
+call mgl_delete_data(x0)
+call mgl_delete_data(y0)
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y, x0, y0, ex, ey = mglData(50,1), mglData(10), mglData(10), mglData(10), mglData(10);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+x0.Modify(&quot;2*x-1+0.1*rnd-0.05&quot;);
+y0.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)+0.2*rnd-0.1&quot;);
+ey.Modify(&quot;0.2&quot;);   ex.Modify(&quot;0.1&quot;);
+gr.Box();           gr.Plot(y);
+gr.Error(x0,y0,ex,ey,&quot;ko&quot;);
+</pre><hr size="6">
+<a name="BoxPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Error-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mark-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="BoxPlot-sample-1"></a>
+<h3 class="subsection">9.1.16 BoxPlot sample</h3>
+<a name="index-BoxPlot-3"></a>
+<div class="float">
+<img src="../png/boxplot.png" alt="../png/boxplot">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(10,7);
+a.Modify(&quot;(2*rnd-1)^3/2&quot;);
+gr-&gt;BoxPlot(a);
+gr-&gt;Box();
+gr-&gt;Plot(a,&quot; ko&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 10 7
+modify a '(2*rnd-1)^3/2'
+boxplot a
+box:plot a ' ko'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(10,7,1);
+mgl_data_modify(a,&quot;(2*rnd-1)^3/2&quot;,0);
+mgl_box(gr,1);
+mgl_plot(gr,a,&quot; ko&quot;);
+mgl_boxplot(gr,a,NULL);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+y = mgl_create_data_size(10,7,1)
+call mgl_data_modify(a,'(2*rnd-1)^3/2',0);
+call mgl_box(gr,1)
+call mgl_plot(gr,a,' ko')
+call mgl_boxplot(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(10,7);
+a.Modify(&quot;(2*rnd-1)^3/2&quot;);
+gr.Box();
+gr.Plot(a,&quot; ko&quot;);
+gr.BoxPlot(a);
+</pre><hr size="6">
+<a name="Mark-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#BoxPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TextMark-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mark-sample-1"></a>
+<h3 class="subsection">9.1.17 Mark sample</h3>
+<a name="index-Mark-7"></a>
+<div class="float">
+<img src="../png/mark.png" alt="../png/mark">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3), y1(50);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Mark(y,y1,&quot;bs&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+mark y y1 'bs'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+HMDT y1 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_mark_y(gr,y,y1,&quot;bs&quot;);
+mgl_delete_data(y);
+mgl_delete_data(y1);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, y1, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+y1 = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_data_modify(y1,'0.5+0.3*cos(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_mark_y(gr,y,y1,'bs')
+call mgl_delete_data(y)
+call mgl_delete_data(y1)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y, y1 = mglData(50,3), mglData(50);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);     y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.Box();
+gr.Mark(y,y1,&quot;bs&quot;);
+</pre><hr size="6">
+<a name="TextMark-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mark-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tube-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TextMark-sample-1"></a>
+<h3 class="subsection">9.1.18 TextMark sample</h3>
+<a name="index-TextMark-9"></a>
+<div class="float">
+<img src="../png/textmark.png" alt="../png/textmark">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3), y1(50);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;TextMark(y,y1,&quot;\\gamma&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+textmark y y1 '\gamma'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y, y1;
+y = mgl_create_data_size(50,3,1);
+y1 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_textmark_yr(gr,y,y1,&quot;\\gamma&quot;,&quot;&quot;);
+mgl_delete_data(y);
+mgl_delete_data(y1);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, y1, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+y1 = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_data_modify(y1,'0.5+0.3*cos(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_textmark_yr(gr,y,y1,'\gamma','')
+call mgl_delete_data(y)
+call mgl_delete_data(y1)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y, y1 = mglData(50,3), mglData(50);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);     y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.Box();
+gr.TextMark(y,y1,&quot;\\gamma&quot;);
+</pre><hr size="6">
+<a name="Tube-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TextMark-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tube-sample-1"></a>
+<h3 class="subsection">9.1.19 Tube sample</h3>
+<a name="index-Tube-7"></a>
+<div class="float">
+<img src="../png/tube.png" alt="../png/tube">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Tube(y,0.05);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+rotate 40 60
+light on
+box
+tube y 0.05
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_tube(gr,y,0.05,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_tube(gr,y,0.05,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);  y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Tube(y,0.05);
+</pre><hr size="6">
+<a name="Text-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tube-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Torus-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-sample-1"></a>
+<h3 class="subsection">9.1.20 Text sample</h3>
+<a name="index-Text-9"></a>
+<div class="float">
+<img src="../png/text.png" alt="../png/text">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Box();
+gr-&gt;Plot(y.SubData(-1,0));
+gr-&gt;Text(y,&quot;This is very long string drawn along a curve&quot;,&quot;:k&quot;);
+gr-&gt;Text(y,&quot;Another string drawn above a curve&quot;,&quot;T:r&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y(:,0)
+text y 'This is very long string drawn along a curve' ':k'
+text y 'Another string drawn above a curve' 'T:r'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_text_y(gr,y,&quot;This is very long string drawn along a curve&quot;,&quot;:k&quot;,-1.);
+mgl_text_y(gr,y,&quot;Another string drawn above a curve&quot;,&quot;T:r&quot;,-1.);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_text_y(gr,y,'This is very long string drawn along a curve',':k',-1.)
+call mgl_text_y(gr,y,'Another string drawn above a curve','T:r',-1.)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);     y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.Box();
+gr.Plot(y.SubData(-1,0));
+gr.Text(y,&quot;This is very long string drawn along a curve&quot;,&quot;:k&quot;);
+gr.Text(y,&quot;Another string drawn above a curve&quot;,&quot;T:r&quot;);
+</pre><hr size="6">
+<a name="Torus-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Torus-sample-1"></a>
+<h3 class="subsection">9.1.21 Torus sample</h3>
+<a name="index-Torus-3"></a>
+<div class="float">
+<img src="../png/torus.png" alt="../png/torus">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y1(50), y2(50);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+y2.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Torus(y1,y2,&quot;pz&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+rotate 40 60
+light on
+box
+torus y1 y2 'pz'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_torus(gr,y1,y2,&quot;pz&quot;);
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+call mgl_data_modify(y2,&quot;0.3*sin(2*pi*x)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_torus(gr,y1,y2,'pz')
+call mgl_delete_data(y1)
+call mgl_delete_data(y2)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y1, y2 = mglData(50), mglData(50);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+y2.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+gr.Rotate(40,60);    gr.Light(True);
+gr.Box();
+gr.Torus(y1,y2,&quot;pz&quot;);
+</pre><hr size="6">
+<a name="Chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Torus-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pie-chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Chart-sample-1"></a>
+<h3 class="subsection">9.1.22 Chart sample</h3>
+<a name="index-Chart-2"></a>
+<div class="float">
+<img src="../png/chart.png" alt="../png/chart">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData ch(7,2);
+ch.Modify(&quot;rnd+0.1&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Chart(ch,&quot;#&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+box
+chart ch
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,&quot;rnd+0.1&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_chart(gr,ch,&quot;#&quot;);
+mgl_delete_data(ch);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'#')
+call mgl_delete_data(ch)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ch = mglData(7,2);  ch.Modify(&quot;rnd+0.1&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Chart(ch,&quot;#&quot;);
+</pre><hr size="6">
+<a name="Pie-chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ring-chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pie-chart-sample-1"></a>
+<h3 class="subsection">9.1.23 Pie chart sample</h3>
+<a name="index-Chart-3"></a>
+<a name="index-Axis-4"></a>
+<div class="float">
+<img src="../png/pie_chart.png" alt="../png/pie_chart">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData ch(7,2);
+ch.Modify(&quot;rnd+0.1&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;SetFunc(&quot;(y+1)/2*cos(pi*x)&quot;,&quot;(y+1)/2*sin(pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Chart(ch,&quot;bgr cmy#&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+1)/2*cos(pi*x)' '(y+1)/2*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,&quot;rnd+0.1&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_func(gr,&quot;(y+1)/2*cos(pi*x)&quot;,&quot;(y+1)/2*sin(pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_chart(gr,ch,&quot;bgr cmy#&quot;);
+mgl_delete_data(ch);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_func(gr,'(y+1)/2*cos(pi*x)','(y+1)/2*sin(pi*x)','');
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'bgr cmy#')
+call mgl_delete_data(ch)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ch = mglData(7,2);  ch.Modify(&quot;rnd+0.1&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.SetFunc(&quot;(y+1)/2*cos(pi*x)&quot;,&quot;(y+1)/2*sin(pi*x)&quot;);
+gr.Box();
+gr.Chart(ch,&quot;bgr cmy#&quot;);
+</pre><hr size="6">
+<a name="Ring-chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pie-chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ring-chart-sample-1"></a>
+<h3 class="subsection">9.1.24 Ring chart sample</h3>
+<a name="index-Chart-4"></a>
+<a name="index-Axis-5"></a>
+<div class="float">
+<img src="../png/ring_chart.png" alt="../png/ring_chart">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData ch(7,2);
+ch.Modify(&quot;rnd+0.1&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;SetFunc(&quot;(y+2)/3*cos(pi*x)&quot;,&quot;(y+2)/3*sin(pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Chart(ch,&quot;bgr cmy#&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+2)/3*cos(pi*x)' '(y+2)/3*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,&quot;rnd+0.1&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_func(gr,&quot;(y+2)/3*cos(pi*x)&quot;,&quot;(y+2)/3*sin(pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_chart(gr,ch,&quot;bgr cmy#&quot;);
+mgl_delete_data(ch);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_func(gr,'(y+2)/3*cos(pi*x)','(y+2)/3*sin(pi*x)','');
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'bgr cmy#')
+call mgl_delete_data(ch)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ch = mglData(7,2);  ch.Modify(&quot;rnd+0.1&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.SetFunc(&quot;(y+2)/3*cos(pi*x)&quot;,&quot;(y+2)/3*sin(pi*x)&quot;);
+gr.Box();
+gr.Chart(ch,&quot;bgr cmy#&quot;);
+</pre><hr size="6">
+<a name="g_t2D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ring-chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-plotting-samples-1"></a>
+<h2 class="section">9.2 2D plotting samples</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf-sample">9.2.1 Surf sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transparent-surface-sample">9.2.2 Transparent surface sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surface-in-fog-sample">9.2.3 Surface in fog sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Sharp-colors-sample">9.2.4 Sharp colors sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mesh-sample">9.2.5 Mesh sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fall-sample">9.2.6 Fall sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Belt-sample">9.2.7 Belt sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tile-sample">9.2.8 Tile sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Boxs-sample">9.2.9 Boxs sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens-sample">9.2.10 Dens sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-sample">9.2.11 Cont sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF-sample">9.2.12 ContF sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContD-sample">9.2.13 ContD sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axial-sample">9.2.14 Axial sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grad-sample">9.2.15 Grad sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+</table>
+<hr size="6">
+<a name="Surf-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparent-surface-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-sample-1"></a>
+<h3 class="subsection">9.2.1 Surf sample</h3>
+<a name="index-Surf-6"></a>
+<div class="float">
+<img src="../png/surf.png" alt="../png/surf">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Surf(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Surf(a);
+</pre><hr size="6">
+<a name="Transparent-surface-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surface-in-fog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transparent-surface-sample-1"></a>
+<h3 class="subsection">9.2.2 Transparent surface sample</h3>
+<a name="index-Surf-7"></a>
+<a name="index-Alpha-2"></a>
+<div class="float">
+<img src="../png/surf_alpha.png" alt="../png/surf_alpha">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Surf(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surf a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Alpha(True);
+gr.Surf(a);
+</pre><hr size="6">
+<a name="Surface-in-fog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparent-surface-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Sharp-colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surface-in-fog-sample-1"></a>
+<h3 class="subsection">9.2.3 Surface in fog sample</h3>
+<a name="index-Surf-8"></a>
+<a name="index-Fog-2"></a>
+<div class="float">
+<img src="../png/surf_fog.png" alt="../png/surf_fog">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Fog(1);
+gr-&gt;Box();
+gr-&gt;Surf(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+fog 1
+box
+surf a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_fog(gr,1.,0.25);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_fog(gr,1.,0.25)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Fog(1);
+gr.Surf(a);
+</pre><hr size="6">
+<a name="Sharp-colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surface-in-fog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mesh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Sharp-colors-sample-1"></a>
+<h3 class="subsection">9.2.4 Sharp colors sample</h3>
+<a name="index-Surf-9"></a>
+<div class="float">
+<img src="../png/surf_sl.png" alt="../png/surf_sl">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Surf(a,&quot;BbcyrR|&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a 'BbcyrR|'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,&quot;BbcyrR|&quot;);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'BbcyrR|')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Surf(a,&quot;BbcyrR|&quot;);
+</pre><hr size="6">
+<a name="Mesh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Sharp-colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fall-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mesh-sample-1"></a>
+<h3 class="subsection">9.2.5 Mesh sample</h3>
+<a name="index-Mesh-3"></a>
+<div class="float">
+<img src="../png/mesh.png" alt="../png/mesh">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Mesh(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+mesh a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_mesh(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_mesh(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Mesh(a);
+</pre><hr size="6">
+<a name="Fall-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mesh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Belt-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fall-sample-1"></a>
+<h3 class="subsection">9.2.6 Fall sample</h3>
+<a name="index-Fall-3"></a>
+<div class="float">
+<img src="../png/fall.png" alt="../png/fall">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Fall(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+fall a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_fall(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_fall(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Fall(a);
+</pre><hr size="6">
+<a name="Belt-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fall-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tile-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Belt-sample-1"></a>
+<h3 class="subsection">9.2.7 Belt sample</h3>
+<a name="index-Belt-3"></a>
+<div class="float">
+<img src="../png/belt.png" alt="../png/belt">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Belt(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+belt a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_belt(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_belt(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Belt(a);
+</pre><hr size="6">
+<a name="Tile-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Belt-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Boxs-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tile-sample-1"></a>
+<h3 class="subsection">9.2.8 Tile sample</h3>
+<a name="index-Tile-3"></a>
+<div class="float">
+<img src="../png/tile.png" alt="../png/tile">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Tile(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+tile a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_tile(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_tile(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Tile(a);
+</pre><hr size="6">
+<a name="Boxs-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tile-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Boxs-sample-1"></a>
+<h3 class="subsection">9.2.9 Boxs sample</h3>
+<a name="index-Boxs-3"></a>
+<div class="float">
+<img src="../png/boxs.png" alt="../png/boxs">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);  gr-&gt;Light(true);
+gr-&gt;Org = mglPoint(0,0,0);
+gr-&gt;Box();
+gr-&gt;Boxs(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+origin 0 0 0
+box
+boxs a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_boxs(gr,a,0,0.);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_origin(gr,0.,0.,0.);
+call mgl_box(gr,1)
+call mgl_boxs(gr,a,'',0.)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);       gr.Light(True);
+gr.SetOrigin(0.,0.,0.); gr.Box();
+gr.Boxs(a);
+</pre><hr size="6">
+<a name="Dens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Boxs-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-sample-1"></a>
+<h3 class="subsection">9.2.10 Dens sample</h3>
+<a name="index-Dens-3"></a>
+<a name="index-Colorbar-6"></a>
+<div class="float">
+<img src="../png/dens.png" alt="../png/dens">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Dens(a);
+gr-&gt;Colorbar();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+dens a
+colorbar
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_dens(gr,a,0,0);
+mgl_colorbar(gr,&quot;&quot;,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_dens(gr,a,'',0)
+call mgl_colorbar(gr,'',0)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.Dens(a);
+gr.Colorbar();
+</pre><hr size="6">
+<a name="Cont-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-sample-1"></a>
+<h3 class="subsection">9.2.11 Cont sample</h3>
+<a name="index-Cont-5"></a>
+<div class="float">
+<img src="../png/cont.png" alt="../png/cont">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Cont(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+cont a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_cont(gr,a,0,7,NAN);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+real zero, nan
+! I don't know the NaN symbol in Fortran. So I produce it as zero/zero
+zero = 0; nan = zero/zero 
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_cont(gr,a,'',7,nan)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);
+gr.Box();
+gr.Cont(a);
+</pre><hr size="6">
+<a name="ContF-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContD-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF-sample-1"></a>
+<h3 class="subsection">9.2.12 ContF sample</h3>
+<a name="index-ContF-5"></a>
+<div class="float">
+<img src="../png/contf.png" alt="../png/contf">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);  gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;ContF(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+contf a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_contf(gr,a,0,7,NAN);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+real zero, nan
+! I don't know the NaN symbol in Fortran. So I produce it as zero/zero
+zero = 0; nan = zero/zero
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_contf(gr,a,'',7,nan)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.ContF(a);
+</pre><hr size="6">
+<a name="ContD-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axial-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContD-sample-1"></a>
+<h3 class="subsection">9.2.13 ContD sample</h3>
+<a name="index-ContD-5"></a>
+<div class="float">
+<img src="../png/contd.png" alt="../png/contd">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40), v(9);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+v.Fill(-1,1);
+gr-&gt;Box();
+gr-&gt;ContD(v,a);
+gr-&gt;Colorbar(v);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+var v 9 -1 1
+box
+contd v a
+colorbar v
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+HMDT v = mgl_create_data_size(9,1,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_fill(v,-1.,1.,'x');
+mgl_box(gr,1);
+mgl_contd_val(gr,v,a,0,0);
+mgl_colorbar_val(gr,v,NULL,0);
+mgl_delete_data(a);
+mgl_delete_data(v);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, v, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+v = mgl_create_data_size(9,1,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_fill(v,-1.,1.,'x');
+call mgl_box(gr,1)
+call mgl_contd_val(gr,v,a,'',0);
+call mgl_colorbar_val(gr,v,NULL,0);
+call mgl_delete_data(a)
+call mgl_delete_data(v)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, v = mglData(50,40), mglData(9);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+v.Fill(-1,1);
+gr.Box();
+gr.ContD(v,a);
+gr.Colorbar(v);
+</pre><hr size="6">
+<a name="Axial-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContD-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grad-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axial-sample-1"></a>
+<h3 class="subsection">9.2.14 Axial sample</h3>
+<a name="index-Axial-5"></a>
+<div class="float">
+<img src="../png/axial.png" alt="../png/axial">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Axial(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+axial a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_axial(gr,a,&quot;&quot;,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_axial(gr,a,'',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.Box();
+gr.Axial(a);
+</pre><hr size="6">
+<a name="Grad-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axial-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grad-sample-1"></a>
+<h3 class="subsection">9.2.15 Grad sample</h3>
+<a name="index-Grad-4"></a>
+<div class="float">
+<img src="../png/grad.png" alt="../png/grad">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();  gr-&gt;Alpha(true);    gr-&gt;Dens(a);
+gr-&gt;Grad(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box:alpha on:dens a
+grad a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_set_alpha(gr,1);
+mgl_dens(gr,a,0,0);
+mgl_grad(gr,a,0,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_dens(gr,a,'',0)
+call mgl_grad(gr,a,'',0)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();   gr.Alpha(1);    gr.Dens(a);
+gr.Colorbar();
+</pre><hr size="6">
+<a name="g_t3D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grad-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-plotting-samples-1"></a>
+<h2 class="section">9.3 3D plotting samples</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf3-sample">9.3.1 Surf3 sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cloud-sample">9.3.2 Cloud sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CloudP-sample">9.3.3 CloudP sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens3-sample">9.3.4 Dens3 sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont3-sample">9.3.5 Cont3 sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF3-sample">9.3.6 ContF3 sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-projection-sample">9.3.7 Cont projection sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens-projection-sample">9.3.8 Dens projection sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutMinMax-sample">9.3.9 CutMinMax sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutOff-sample">9.3.11 CutOff sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+<hr size="6">
+<a name="Surf3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cloud-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3-sample-1"></a>
+<h3 class="subsection">9.3.1 Surf3 sample</h3>
+<a name="index-Surf3-5"></a>
+<div class="float">
+<img src="../png/surf3.png" alt="../png/surf3">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Surf3(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+box
+surf3 a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf3(gr,a,0,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.Box();
+gr.Surf3(a);
+</pre><hr size="6">
+<a name="Cloud-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CloudP-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cloud-sample-1"></a>
+<h3 class="subsection">9.3.2 Cloud sample</h3>
+<a name="index-Cloud-2"></a>
+<div class="float">
+<img src="../png/cloud.png" alt="../png/cloud">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Cloud(a,&quot;wyrRk&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+box
+cloud a 'wyrRk'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_cloud(gr,a,&quot;wyrRk&quot;,1.);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_cloud(gr,a,'wyrRk',1.)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Alpha(True);
+gr.Box();
+gr.Cloud(a,&quot;wyrRk&quot;);
+</pre><hr size="6">
+<a name="CloudP-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cloud-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CloudP-sample-1"></a>
+<h3 class="subsection">9.3.3 CloudP sample</h3>
+<a name="index-CloudP-3"></a>
+<div class="float">
+<img src="../png/cloudp.png" alt="../png/cloudp">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;CloudP(a,&quot;wyrRk&quot;);
+</pre><p><strong>MGL code</strong>
+Not available.
+<strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_cloudp(gr,a,&quot;wyrRk&quot;,1.);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_cloudp(gr,a,'wyrRk',1.)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+Not available.
+</p><hr size="6">
+<a name="Dens3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CloudP-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens3-sample-1"></a>
+<h3 class="subsection">9.3.4 Dens3 sample</h3>
+<a name="index-Dens3-3"></a>
+<a name="index-Axis-6"></a>
+<div class="float">
+<img src="../png/densa.png" alt="../png/densa">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);  gr-&gt;Alpha(true);    gr-&gt;Org = mglPoint(0,0,0);
+gr-&gt;Box();
+gr-&gt;DensA(a);
+gr-&gt;Axis();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+origin 0 0 0
+box
+densa a
+axis
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_alpha(gr,1);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_dens3_all(gr,a,0);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_alpha(gr,1)
+call mgl_set_origin(gr,0.,0.,0.);
+call mgl_box(gr,1)
+call mgl_dens3_all(gr,a,'')
+call mgl_axis(gr,&quot;xyz&quot;)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);       gr.Alpha(True);
+gr.SetOrigin(0,0,0);    gr.Box();
+gr.Axis();
+gr.DensA(a);
+</pre><hr size="6">
+<a name="Cont3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont3-sample-1"></a>
+<h3 class="subsection">9.3.5 Cont3 sample</h3>
+<a name="index-Cont3-5"></a>
+<div class="float">
+<img src="../png/conta.png" alt="../png/conta">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;ContA(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+conta a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_cont_all(gr,a,0,7);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_cont_all(gr,a,'',7)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);
+gr.Box();
+gr.ContA(a);
+</pre><hr size="6">
+<a name="ContF3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-projection-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF3-sample-1"></a>
+<h3 class="subsection">9.3.6 ContF3 sample</h3>
+<a name="index-ContF3-5"></a>
+<div class="float">
+<img src="../png/contfa.png" alt="../png/contfa">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);  gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;ContFA(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+box
+contfa a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_contf_all(gr,a,0,7);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_contf_all(gr,a,'',7)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.ContFA(a);
+</pre><hr size="6">
+<a name="Cont-projection-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens-projection-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-projection-sample-1"></a>
+<h3 class="subsection">9.3.7 Cont projection sample</h3>
+<a name="index-ContX-3"></a>
+<a name="index-ContY-3"></a>
+<a name="index-ContZ-3"></a>
+<div class="float">
+<img src="../png/cont_xyz.png" alt="../png/cont_xyz">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;ContX(a.Sum(&quot;x&quot;),&quot;&quot;,-1);
+gr-&gt;ContY(a.Sum(&quot;y&quot;),&quot;&quot;,1);
+gr-&gt;ContZ(a.Sum(&quot;z&quot;),&quot;&quot;,-1);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+contx s '' -1
+sum s a 'y'
+conty s '' 1
+sum s a 'z'
+contz s '' -1
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40), s;
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+s=mgl_data_sum(a,&quot;x&quot;); mgl_cont_x(gr,s,0,-1.,7); mgl_delete_data(s);
+s=mgl_data_sum(a,&quot;y&quot;); mgl_cont_y(gr,s,0,1.,7); mgl_delete_data(s);
+s=mgl_data_sum(a,&quot;z&quot;); mgl_cont_z(gr,s,0,-1.,7); mgl_delete_data(s);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,s, mgl_create_data_size, mgl_data_sum
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+s=mgl_data_sum(a,'x')
+call mgl_cont_x(gr,s,'',-1.,7)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'y')
+call mgl_cont_y(gr,s,'',1.,7)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'z')
+call mgl_cont_z(gr,s,'',-1.,7)
+call mgl_delete_data(s)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);               gr.Box();
+gr.ContX(a.Sum(&quot;x&quot;),&quot;&quot;,-1);
+gr.ContY(a.Sum(&quot;y&quot;),&quot;&quot;,1);
+gr.ContZ(a.Sum(&quot;z&quot;),&quot;&quot;,-1);
+</pre><hr size="6">
+<a name="Dens-projection-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-projection-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutMinMax-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-projection-sample-1"></a>
+<h3 class="subsection">9.3.8 Dens projection sample</h3>
+<a name="index-DensX-2"></a>
+<a name="index-DensY-2"></a>
+<a name="index-DensZ-2"></a>
+<div class="float">
+<img src="../png/dens_xyz.png" alt="../png/dens_xyz">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;DensX(a.Sum(&quot;x&quot;),&quot;&quot;,-1);
+gr-&gt;DensY(a.Sum(&quot;y&quot;),&quot;&quot;,1);
+gr-&gt;DensZ(a.Sum(&quot;z&quot;),&quot;&quot;,-1);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+densx s '' -1
+sum s a 'y'
+densy s '' 1
+sum s a 'z'
+densz s '' -1
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a, s; a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+s=mgl_data_sum(a,&quot;x&quot;); mgl_dens_x(gr,s,0,-1.); mgl_delete_data(s);
+s=mgl_data_sum(a,&quot;y&quot;); mgl_dens_y(gr,s,0,1.); mgl_delete_data(s);
+s=mgl_data_sum(a,&quot;z&quot;); mgl_dens_z(gr,s,0,-1.); mgl_delete_data(s);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,s, mgl_create_data_size, mgl_data_sum
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+s=mgl_data_sum(a,'x')
+call mgl_dens_x(gr,s,'',-1.)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'y')
+call mgl_dens_y(gr,s,'',1.)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'z')
+call mgl_dens_z(gr,s,'',-1.)
+call mgl_delete_data(s)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);               gr.Box();
+gr.DensX(a.Sum(&quot;x&quot;),&quot;&quot;,-1);
+gr.DensY(a.Sum(&quot;y&quot;),&quot;&quot;,1);
+gr.DensZ(a.Sum(&quot;z&quot;),&quot;&quot;,-1);
+</pre><hr size="6">
+<a name="CutMinMax-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens-projection-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Isocaps-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutMinMax-sample-1"></a>
+<h3 class="subsection">9.3.9 CutMinMax sample</h3>
+<a name="index-Surf3-6"></a>
+<a name="index-CutMin"></a>
+<a name="index-CutMax"></a>
+<div class="float">
+<img src="../png/cutminmax.png" alt="../png/cutminmax">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;CutMin = mglPoint(0,-1,-1); gr-&gt;CutMax = mglPoint(1,0,1);
+gr-&gt;Box();
+gr-&gt;Surf3(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut 0 -1 -1 1 0 1
+box
+surf3 a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.);
+mgl_box(gr,1);
+mgl_surf3(gr,a,0,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.);
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.SetCutBox(0,-1,-1,1,0,1);    gr.Box();
+gr.Surf3(a);
+</pre><hr size="6">
+<a name="Isocaps-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutMinMax-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutOff-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Isocaps_0027_0027-sample"></a>
+<h3 class="subsection">9.3.10 &ldquo;Isocaps&rdquo; sample</h3>
+<a name="index-Surf3-7"></a>
+<a name="index-ContF3-6"></a>
+<a name="index-CutMin-1"></a>
+<a name="index-CutMax-1"></a>
+<div class="float">
+<img src="../png/cutminmax2.png" alt="../png/cutminmax2">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(61,51,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;CutMin = mglPoint(0,-1,-1); gr-&gt;CutMax = mglPoint(1,0,1.1);
+gr-&gt;Box();
+gr-&gt;Surf3(-1,a);
+gr-&gt;ContF3(a,'x',-1); gr-&gt;ContF3(a,'y',-1);
+gr-&gt;ContF3(a,'z', 0); gr-&gt;ContF3(a,'z',39);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 61 51 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+cut 0 -1 -1 1 0 1.1
+box
+surf3 a -1
+contf3 a 'x' -1
+contf3 a 'y' -1
+contf3 a 'z' 0
+contf3 a 'z' 39
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(61,51,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.1);
+mgl_box(gr,1);
+mgl_surf3_val(gr,-1.,a,0);
+mgl_contf3(gr,a,'x',-1, &quot;&quot;, 7);
+mgl_contf3(gr,a,'y',-1, &quot;&quot;, 7);
+mgl_contf3(gr,a,'z', 0, &quot;&quot;, 7);
+mgl_contf3(gr,a,'z',39, &quot;&quot;, 7);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">a = mgl_create_data_size(61,51,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.1);
+call mgl_box(gr,1)
+call mgl_surf3_val(gr,-1.,a,'')
+call mgl_contf3(gr,a,'x',-1, '', 7);
+call mgl_contf3(gr,a,'y',-1, '', 7);
+call mgl_contf3(gr,a,'z', 0, '', 7);
+call mgl_contf3(gr,a,'z',39, '', 7);
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(61,51,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.SetCutBox(0,-1,-1,1,0,1.1);    gr.Box();
+gr.Surf3(-1,a);
+gr.ContF3(a,&quot;x&quot;,-1);    gr.ContF3(a,&quot;y&quot;,-1);
+gr.ContF3(a,&quot;z&quot;,0);     gr.ContF3(a,&quot;z&quot;,39);
+</pre><hr size="6">
+<a name="CutOff-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Isocaps-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutOff-sample-1"></a>
+<h3 class="subsection">9.3.11 CutOff sample</h3>
+<a name="index-Surf3-8"></a>
+<a name="index-CutOff-2"></a>
+<div class="float">
+<img src="../png/surf3_cutoff.png" alt="../png/surf3_cutoff">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;CutOff(&quot;(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)&quot;);
+gr-&gt;Box();
+gr-&gt;Surf3(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut '(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)'
+box
+surf3 a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_set_cutoff(gr,&quot;(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)&quot;);
+mgl_box(gr,1);
+mgl_surf3(gr,a,0,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,'-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)',0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_set_cutoff(gr,'(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)')
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(61,51,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.CutOff(&quot;(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)&quot;);
+gr.Box();
+gr.Surf3(a);
+</pre><hr size="6">
+<a name="Dual-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutOff-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfC-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dual-plotting-samples-1"></a>
+<h2 class="section">9.4 Dual plotting samples</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#SurfC-sample">9.4.1 SurfC sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#SurfA-sample">9.4.2 SurfA sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TileS-sample">9.4.3 TileS sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Map-sample">9.4.4 Map sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Traj-sample">9.4.5 Traj sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect-sample">9.4.6 Vect sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectL-sample">9.4.7 VectL sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectC-sample">9.4.8 VectC sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-sample">9.4.9 Flow sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe-sample">9.4.10 Pipe sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dew-sample">9.4.11 Dew sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3C-sample">9.4.12 Surf3C sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3A-sample">9.4.13 Surf3A sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect-3D-sample">9.4.14 Vect 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectL-3D-sample">9.4.15 VectL 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectC-3D-sample">9.4.16 VectC 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-3D-sample">9.4.17 Flow 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe-3D-sample">9.4.18 Pipe 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Crust-sample">9.4.19 Crust sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dots-sample">9.4.20 Dots sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+</table>
+<hr size="6">
+<a name="SurfC-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfA-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfC-sample-1"></a>
+<h3 class="subsection">9.4.1 SurfC sample</h3>
+<a name="index-SurfC-3"></a>
+<div class="float">
+<img src="../png/surfc.png" alt="../png/surfc">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40), b(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;SurfC(a,b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surfc a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+HMDT b = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surfc(gr,a,b,0);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surfc(gr,a,b,'')
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(50,40), mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.SurfC(a,b);
+</pre><hr size="6">
+<a name="SurfA-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfC-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TileS-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfA-sample-1"></a>
+<h3 class="subsection">9.4.2 SurfA sample</h3>
+<a name="index-SurfA-3"></a>
+<div class="float">
+<img src="../png/surfa.png" alt="../png/surfa">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40), b(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;SurfA(a,b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surfa a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a, b;
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surfa(gr,a,b,0);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1);
+call mgl_box(gr,1)
+call mgl_surfa(gr,a,b,'')
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(50,40), mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.Box();
+gr.SurfC(a,b);
+</pre><hr size="6">
+<a name="TileS-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfA-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Map-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TileS-sample-1"></a>
+<h3 class="subsection">9.4.3 TileS sample</h3>
+<a name="index-TileS-3"></a>
+<div class="float">
+<img src="../png/tiles.png" alt="../png/tiles">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40), b(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;TileS(a,b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+tile a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a, b;
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_tiles(gr,a,b,0);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_tiles(gr,a,b,'')
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(50,40), mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.TileS(a,b);
+</pre><hr size="6">
+<a name="Map-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TileS-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Traj-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Map-sample-1"></a>
+<h3 class="subsection">9.4.4 Map sample</h3>
+<a name="index-Map-3"></a>
+<div class="float">
+<img src="../png/map.png" alt="../png/map">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50, 40), b(50, 40);
+gr-&gt;Puts(mglPoint(0, 0), &quot;\\to&quot;, &quot;&quot;, -1.4);
+gr-&gt;Axis(mglPoint(-1,-1,-2),mglPoint(1,1,2));
+gr-&gt;SubPlot(2, 1, 0);
+a.Fill(&quot;x&quot;, gr-&gt;Min, gr-&gt;Max);	b.Fill(&quot;y&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Puts(mglPoint(0, 1.1), &quot;\\{x, y\\}&quot;, &quot;C&quot;, -2);		gr-&gt;Box();
+gr-&gt;Map(a, b, &quot;brgk&quot;, 0, false);
+gr-&gt;SubPlot(2, 1, 1);
+a.Fill(&quot;(x^3+y^3)/2&quot;, gr-&gt;Min, gr-&gt;Max);
+b.Fill(&quot;(x-y)/2&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Puts(mglPoint(0, 1.1), &quot;\\{\\frac{x^3+y^3}{2}, \\frac{x-y}{2}\\}&quot;, &quot;C&quot;, -2);
+gr-&gt;Box();
+gr-&gt;Map(a, b, &quot;brgk&quot;, 0, false);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+text 0 0 '\to'
+zrange -2 2
+subplot 2 1 0
+text 0 1.1 '\{x, y\}' '' -2
+box
+fill a 'x'
+fill b 'y'
+map a b 'brgk' 0 0
+subplot 2 1 1
+text 0 1.1 '\{\frac{x^3+y^3}{2}, \frac{x-y}{2}\}' '' -2
+box
+fill a '(x^3+y^3)/2'
+fill b '(x-y)/2'
+map a b 'brgk' 0 0
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+HMDT b = mgl_create_data_size(50,40,1);
+mgl_puts_ext(gr, 0.,0.,0., &quot;\\to&quot;, &quot;&quot;, -1.4, 't');
+mgl_set_axis_3d(gr,-1.,-1.,-2.,1.,1.,2.);
+mgl_subplot(gr, 2, 1, 0);
+mgl_data_fill_eq(gr, a, &quot;x&quot;, 0, 0);
+mgl_data_fill_eq(gr, b, &quot;y&quot;, 0, 0);
+mgl_puts_ext(gr, 0.,1.1,0., &quot;\\{x, y\\}&quot;, &quot;C&quot;, -2., 't');
+mgl_box(gr,1);
+mgl_map(gr, a, b, &quot;brgk&quot;, 0, 0);
+mgl_subplot(gr, 2, 1, 1);
+mgl_data_fill_eq(gr, a, &quot;(x^3+y^3)/2&quot;, 0, 0);
+mgl_data_fill_eq(gr, b, &quot;(x-y)/2&quot;, 0, 0);
+mgl_puts_ext(gr, 0.,1.1,0., &quot;\\{\\frac{x^3+y^3}{2}, \\frac{x-y}{2}\\}&quot;, &quot;C&quot;, -2., 't');
+mgl_box(gr,1);
+mgl_map(gr, a, b, &quot;brgk&quot;, 0, 0);
+mgl_box(gr,1);
+mgl_map(gr,a,b,0,0,1);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_puts_ext(gr, 0.,0.,0., '\to', '', -1.4, 't');
+call mgl_set_axis_3d(gr,-1.,-1.,-2.,1.,1.,2.);
+call mgl_subplot(gr, 2, 1, 0);
+call mgl_data_fill_eq(gr, a, 'x', 0, 0);
+call mgl_data_fill_eq(gr, b, 'y', 0, 0);
+call mgl_puts_ext(gr, 0.,1.1,0., '\{x, y\}', 'C', -2., 't');
+call mgl_box(gr,1);
+call mgl_map(gr, a, b, 'brgk', 0, 0);
+call mgl_subplot(gr, 2, 1, 1);
+call mgl_data_fill_eq(gr, a, '(x^3+y^3)/2', 0, 0);
+call mgl_data_fill_eq(gr, b, '(x-y)/2', 0, 0);
+call mgl_puts_ext(gr, 0.,1.1,0., '\{\frac{x^3+y^3}{2}, \frac{x-y}{2}\}', 'C', -2., 't');
+call mgl_box(gr,1);
+call mgl_map(gr, a, b, 'brgk', 0, 0);
+call mgl_box(gr,1);
+call mgl_map(gr,a,b,0,0,1);
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(50,40), mglData(50,40);
+gr.Puts(0, 0, 0, &quot;\\to&quot;, &quot;&quot;, -1.4);
+gr.SetRanges(-1,1,-1,1,-2,2);
+gr.SubPlot(2, 1, 0);
+gr.Fill(a, &quot;x&quot;);    gr.Fill(b, &quot;y&quot;);
+gr.Puts(0, 1.1, 0, &quot;\\{x, y\\}&quot;, &quot;C&quot;, -2);
+gr.Box();
+gr.Map(a, b, &quot;brgk&quot;, 0, 0);
+gr.SubPlot(2, 1, 1);
+gr.Fill(a, &quot;(x^3+y^3)/2&quot;);   gr.Fill(b, &quot;(x-y)/2&quot;);
+gr.Puts(0, 1.1, 0, &quot;\\{\\frac{x^3+y^3}{2}, \\frac{x-y}{2}\\}&quot;, &quot;C&quot;, -2);
+gr.Box();
+gr.Map(a, b, &quot;brgk&quot;, 0, 0);
+</pre><hr size="6">
+<a name="Traj-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Map-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Traj-sample-1"></a>
+<h3 class="subsection">9.4.5 Traj sample</h3>
+<a name="index-Traj-3"></a>
+<div class="float">
+<img src="../png/traj.png" alt="../png/traj">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3), x(50), y1(50), y2(50);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+y2.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+x.Fill(-1,1,'x');
+gr-&gt;Box();
+gr-&gt;Plot(x,y);
+gr-&gt;Traj(x,y,y1,y2);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+new x 50
+new y1 50
+new y2 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+fill x -1 1
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+box
+plot x y
+traj x y y1 y2
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+HMDT x= mgl_create_data_size(50,1,1);
+HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_data_modify(x,&quot;2*x-1&quot;,0);
+mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_plot_xy(gr,x,y,NULL);
+mgl_traj_xy(gr,yx,y,y1,y2,NULL,0,0);
+mgl_delete_data(y);  mgl_delete_data(y1);
+mgl_delete_data(x);  mgl_delete_data(y2);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer x,y,y1,y2, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+x= mgl_create_data_size(50,1,1);
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_data_modify(x,'2*x-1',0);
+call mgl_data_modify(y1,'0.5+0.3*cos(2*pi*x)',0);
+call mgl_data_modify(y2,'0.3*sin(2*pi*x)',0);
+call mgl_box(gr,1)
+call mgl_plot_xy(gr,x,y,NULL);
+call mgl_traj_xy(gr,yx,y,y1,y2,NULL,0,0);
+call mgl_delete_data(y)
+call mgl_delete_data(x)
+call mgl_delete_data(y1)
+call mgl_delete_data(y2)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">x,y,y1,y2 = mglData(50), mglData(50,3), mglData(50), mglData(50);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+y2.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+x.Fill(-1,1,'x');
+gr.Box();
+gr.Plot(x,y);
+gr.Traj(x,y,y1,y2);
+</pre><hr size="6">
+<a name="Vect-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Traj-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectL-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-sample-1"></a>
+<h3 class="subsection">9.4.6 Vect sample</h3>
+<a name="index-Vect-5"></a>
+<div class="float">
+<img src="../png/vect.png" alt="../png/vect">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Vect(a,b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vect a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_vect_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_vect_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.Vect(a,b);
+</pre><hr size="6">
+<a name="VectL-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectC-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectL-sample-1"></a>
+<h3 class="subsection">9.4.7 VectL sample</h3>
+<a name="index-VectL-5"></a>
+<div class="float">
+<img src="../png/vectl.png" alt="../png/vectl">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;VectL(a,b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectl a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a, b;
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_vectl_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_vectl_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.VectL(a,b);
+</pre><hr size="6">
+<a name="VectC-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectL-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectC-sample-1"></a>
+<h3 class="subsection">9.4.8 VectC sample</h3>
+<a name="index-VectC-5"></a>
+<div class="float">
+<img src="../png/vectc.png" alt="../png/vectc">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;VectC(a,b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectc a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a, b;
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_vectc_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_vectc_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.VectC(a,b);
+</pre><hr size="6">
+<a name="Flow-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectC-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-sample-1"></a>
+<h3 class="subsection">9.4.9 Flow sample</h3>
+<a name="index-Flow-5"></a>
+<div class="float">
+<img src="../png/flow.png" alt="../png/flow">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Flow(a,b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+flow a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_flow_2d(gr,a,b,0,5,1,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_flow_2d(gr,a,b,'',5,1,0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.Flow(a,b);
+</pre><hr size="6">
+<a name="Pipe-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dew-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-sample-1"></a>
+<h3 class="subsection">9.4.10 Pipe sample</h3>
+<a name="index-Pipe-5"></a>
+<div class="float">
+<img src="../png/pipe.png" alt="../png/pipe">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Pipe(a,b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+box
+pipe a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_pipe_2d(gr,a,b,0,0.05,5,1,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_pipe_2d(gr,a,b,'',0.05,5,1,0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Light(True);    gr.Box();
+gr.Pipe(a,b);
+</pre><hr size="6">
+<a name="Dew-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3C-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dew-sample-1"></a>
+<h3 class="subsection">9.4.11 Dew sample</h3>
+<a name="index-Dew-3"></a>
+<div class="float">
+<img src="../png/dew.png" alt="../png/dew">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Light(true);
+gr-&gt;Dew(a,b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+light on
+dew a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_set_light(gr,1);
+mgl_dew_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_set_light(gr,1);
+call mgl_dew_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Light(True);    gr.Box();
+gr.Dew(a,b);
+</pre><hr size="6">
+<a name="Surf3C-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dew-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3A-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3C-sample-1"></a>
+<h3 class="subsection">9.4.12 Surf3C sample</h3>
+<a name="index-Surf3C-5"></a>
+<div class="float">
+<img src="../png/surf3c.png" alt="../png/surf3c">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40), b(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+b.Modify(&quot;1-2*tanh(4*(x+y-1)^2)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Surf3C(a, b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3c a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+HMDT b = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_data_modify(b,&quot;1-2*tanh(4*(x+y-1)^2)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf3c(gr,a,b,0,3);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+b = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_data_modify(b,&quot;1-2*tanh(4*(x+y-1)^2)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf3c(gr,a,b,'',3)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(60,50,40), mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2+(2*y-1)^2+(2*z-1)^4-(2*z-1)^2-0.1)&quot;);
+b.Modify(&quot;1-2*tanh(4*(x+y-1)^2)&quot;);
+gr.Rotate(40,60);   gr.Light(True);     gr.Alpha(True);
+gr.Box();
+gr.Surf3C(a,b);
+</pre><hr size="6">
+<a name="Surf3A-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3C-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3A-sample-1"></a>
+<h3 class="subsection">9.4.13 Surf3A sample</h3>
+<a name="index-Surf3A-5"></a>
+<div class="float">
+<img src="../png/surf3a.png" alt="../png/surf3a">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40), b(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+b.Modify(&quot;1-2*tanh(4*(x+y-1)^2)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Surf3A(a, b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3a a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a, b; a = mgl_create_data_size(60,50,40);
+b = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_data_modify(b,&quot;1-2*tanh(4*(x+y-1)^2)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf3a(gr,a,b,0,3);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+b = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_data_modify(b,&quot;1-2*tanh(4*(x+y-1)^2)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf3a(gr,a,b,'',3)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(60,50,40), mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2+(2*y-1)^2+(2*z-1)^4-(2*z-1)^2-0.1)&quot;);
+b.Modify(&quot;1-2*tanh(4*(x+y-1)^2)&quot;);
+gr.Rotate(40,60);   gr.Light(True);     gr.Alpha(True);
+gr.Box();
+gr.Surf3A(a,b);
+</pre><hr size="6">
+<a name="Vect-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3A-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectL-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-3D-sample-1"></a>
+<h3 class="subsection">9.4.14 Vect 3D sample</h3>
+<a name="index-Vect-6"></a>
+<div class="float">
+<img src="../png/vect3.png" alt="../png/vect3">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Vect(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vect ex ey ez 'bwr'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_vect_3d(gr,ex,ey,ez,&quot;bwr&quot;);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_vect_3d(gr,ex,ey,ez,'bwr')
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.Vect(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="VectL-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectC-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectL-3D-sample-1"></a>
+<h3 class="subsection">9.4.15 VectL 3D sample</h3>
+<a name="index-VectL-6"></a>
+<div class="float">
+<img src="../png/vectl3.png" alt="../png/vectl3">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;VectL(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectl ex ey ez 'bwr'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_vectl_3d(gr,ex,ey,ez,&quot;bwr&quot;);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_vectl_3d(gr,ex,ey,ez,'bwr')
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.VectL(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="VectC-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectL-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectC-3D-sample-1"></a>
+<h3 class="subsection">9.4.16 VectC 3D sample</h3>
+<a name="index-VectC-6"></a>
+<div class="float">
+<img src="../png/vectc3.png" alt="../png/vectc3">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;VectC(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectc ex ey ez 'bwr'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_vectc_3d(gr,ex,ey,ez,&quot;bwr&quot;);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_vectc_3d(gr,ex,ey,ez,'bwr')
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.VectC(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="Flow-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectC-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-3D-sample-1"></a>
+<h3 class="subsection">9.4.17 Flow 3D sample</h3>
+<a name="index-Flow-6"></a>
+<div class="float">
+<img src="../png/flow3.png" alt="../png/flow3">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData ex(30,30,30), ey(30,30,30), ez(30,30,30);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Flow(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new ex 30 30 30
+new ey 30 30 30
+new ez 30 30 30
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+flow ex ey ez 'bwr'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(30,30,30);
+ey = mgl_create_data_size(30,30,30);
+ez = mgl_create_data_size(30,30,30);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_flow_3d(gr,ex,ey,ez,&quot;bwr&quot;,3,1);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(30,30,30)
+ey = mgl_create_data_size(30,30,30)
+ez = mgl_create_data_size(30,30,30)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_flow_3d(gr,ex,ey,ez,'bwr',3,1)
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.Flow(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="Pipe-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Crust-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-3D-sample-1"></a>
+<h3 class="subsection">9.4.18 Pipe 3D sample</h3>
+<a name="index-Pipe-6"></a>
+<div class="float">
+<img src="../png/pipe3.png" alt="../png/pipe3">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Pipe(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+light on
+box
+pipe ex ey ez 'bwr'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_pipe_3d(gr,ex,ey,ez,&quot;bwr&quot;,0.05,3,1);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1);
+call mgl_box(gr,1);
+call mgl_pipe_3d(gr,ex,ey,ez,'bwr',0.05,3,1)
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Pipe(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="Crust-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dots-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Crust-sample-1"></a>
+<h3 class="subsection">9.4.19 Crust sample</h3>
+<a name="index-Crust-3"></a>
+<div class="float">
+<img src="../png/crust.png" alt="../png/crust">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(&quot;hotdogs.pts&quot;);
+a.Norm(-1,1,true);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Crust(a,&quot;p&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+light on
+box
+crust a 'p'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_file(&quot;hotdogs.pts&quot;);
+mgl_data_norm(a,-1.,1.,1,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_crust_tr(gr,a,&quot;p&quot;,0.);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_file
+a = mgl_create_data_file(&quot;hotdogs.pts&quot;)
+call mgl_data_norm(a,-1.,1.,1,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_crust_tr(gr,a,&quot;p&quot;,0.)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(&quot;hotdogs.pts&quot;);
+a.Norm(-1,1,True);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Crust(a);
+</pre><hr size="6">
+<a name="Dots-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Crust-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dots-sample-1"></a>
+<h3 class="subsection">9.4.20 Dots sample</h3>
+<a name="index-Dots-4"></a>
+<div class="float">
+<img src="../png/dots.png" alt="../png/dots">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(&quot;hotdogs.pts&quot;);
+a.Norm(-1,1,true);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Dots(a,&quot;p&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+box
+dots a 'p'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_file(&quot;hotdogs.pts&quot;);
+mgl_data_norm(a,-1.,1.,1,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_dots_tr(gr,a,&quot;p&quot;);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_file
+a = mgl_create_data_file(&quot;hotdogs.pts&quot;)
+call mgl_data_norm(a,-1.,1.,1,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_dots_tr(gr,a,&quot;p&quot;)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(&quot;hotdogs.pts&quot;);
+a.Norm(-1,1,True);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Dots(a);
+</pre>
+<hr size="6">
+<a name="Basic-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dots-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Basic-features-1"></a>
+<h2 class="section">9.5 Basic features</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t1D-plot-sample">9.5.1 1D plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plot-sample">9.5.2 2D plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plot-sample">9.5.3 3D plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Line-styles-sample">9.5.4 Line styles sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Arrow-styles-sample">9.5.5 Arrow styles sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-styles-sample">9.5.6 Text styles sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TeX-parsing-sample">9.5.7 TeX parsing sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-faces-sample">9.5.8 Font faces sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Colors-sample">9.5.9 Colors sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Color-schemes-sample">9.5.10 Color schemes sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Normal-transparency">9.5.11 Normal transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Glass_002dlike-transparency">9.5.12 Glass-like transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lamp_002dlike-transparency">9.5.13 Lamp-like transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+</table>
+<hr size="6">
+<a name="g_t1D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Basic-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-plot-sample-1"></a>
+<h3 class="subsection">9.5.1 1D plot sample</h3>
+<a name="index-Plot-8"></a>
+<a name="index-Bars-8"></a>
+<a name="index-SubPlot-3"></a>
+<div class="float">
+<img src="../png/sample8.png" alt="../png/sample8">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y0(50);		y0.Modify(&quot;sin(pi*(2*x-1))&quot;);
+gr-&gt;SubPlot(2,2,0);
+gr-&gt;Plot(y0);		gr-&gt;Box();
+
+gr-&gt;SubPlot(2,2,1);
+mglData y1(50,2);
+y1.Modify(&quot;sin(pi*2*x-pi)&quot;);	y1.Modify(&quot;cos(pi*2*x-pi)/2&quot;,1);
+gr-&gt;Plot(y1);		gr-&gt;Box();
+
+mglData x(50);		x.Modify(&quot;cos(pi*2*x-pi)&quot;);
+gr-&gt;Plot(x,y0,&quot;Y+&quot;);
+
+gr-&gt;Plot(y1.SubData(-1,0),y1.SubData(-1,1),&quot;q|&quot;);
+
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(60,40);
+mglData z(50);		z.Modify(&quot;2*x-1&quot;);
+gr-&gt;Plot(x,y0,z);		gr-&gt;Box();
+
+mglData y2(10,3);	y2.Modify(&quot;cos(pi*(2*x-1-y))&quot;);
+y2.Modify(&quot;2*x-1&quot;,2);
+gr-&gt;Plot(y2.SubData(-1,0),y2.SubData(-1,1),y2.SubData(-1,2),&quot;bo &quot;);
+
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(60,40);
+gr-&gt;Bars(x,y0,z,&quot;ri&quot;);		gr-&gt;Box();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y0 50: modify y0 'sin(pi*(2*x-1))'
+subplot 2 2 0
+plot y0: box
+
+subplot 2 2 1
+new y1 50 2
+modify y1 'sin(pi*2*x-pi)'
+modify y1 'cos(pi*2*x-pi)/2' 1
+plot y1: box
+
+new x 50: modify x 'cos(pi*2*x-pi)'
+plot x y0 'Y+'
+plot y1(:,0) y(:,1) 'q|'
+
+subplot 2 2 2:rotate 60 40
+new z 50:   modify z '2*x-1'
+plot x y0 z 'g':box
+new y2 10 3
+modify y2 'cos(pi*(2*x-1-y))'
+modify y2 '2*x-1' 2
+plot y2(:,0) y2(:,1) y2(:,2) 'bo '
+
+subplot 2 2 3:rotate 60 40
+bars x y0 z 'r':box
+</pre><hr size="6">
+<a name="g_t2D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-plot-sample-1"></a>
+<h3 class="subsection">9.5.2 2D plot sample</h3>
+<a name="index-Surf-10"></a>
+<a name="index-Dens-4"></a>
+<a name="index-Alpha-3"></a>
+<div class="float">
+<img src="../png/sample9.png" alt="../png/sample9">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Light(true);
+mglData a0(50,40);
+a0.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(60,40);
+gr-&gt;Surf(a0);       gr-&gt;Box();
+
+mglData x(50,40),y(50,40),z(50,40);
+x.Modify(&quot;0.8*sin(2*pi*x)*sin(pi*y)&quot;);
+y.Modify(&quot;0.8*cos(2*pi*x)*sin(pi*y)&quot;);
+z.Modify(&quot;0.8*cos(pi*y)&quot;);
+gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(60,40);
+gr-&gt;Surf(x,y,z,&quot;BbwrR&quot;);    gr-&gt;Box();
+
+mglData a1(50,40,3);
+a1.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+a1.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*sin(3*pi*(x*y))&quot;,1);
+a1.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,2);
+gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(60,40);
+gr-&gt;Alpha(true);
+gr-&gt;Surf(a1);       gr-&gt;Box();
+
+gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(60,40);
+gr-&gt;Dens(a1);       gr-&gt;Box();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">light on
+
+new a0 50 40
+modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+subplot 2 2 0:rotate 60 40
+surf a0: box
+
+new x 50 40: new y 50 40: new z 50 40
+modify x '0.8*sin(2*pi*x)*sin(pi*y)'
+modify y '0.8*cos(2*pi*x)*sin(pi*y)'
+modify z '0.8*cos(pi*y)'
+subplot 2 2 1:rotate 60 40
+surf x y z 'bbwrr': box
+
+new a1 50 40 3
+modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
+subplot 2 2 2:rotate 60 40
+alpha on
+surf a1: box
+
+subplot 2 2 3: rotate 60 40
+dens a1: box
+</pre><hr size="6">
+<a name="g_t3D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Line-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-plot-sample-1"></a>
+<h3 class="subsection">9.5.3 3D plot sample</h3>
+<a name="index-Surf-11"></a>
+<a name="index-Dens-5"></a>
+<a name="index-Alpha-4"></a>
+<div class="float">
+<img src="../png/sampleb.png" alt="../png/sampleb">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true);	gr-&gt;Light(true);	gr-&gt;Light(0,mglPoint(0,0,1));
+mglData a(30,30,30), b(30,30,30);
+a.Modify(&quot;exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))&quot;);
+b.Modify(&quot;16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)&quot;);
+gr-&gt;CAxis(0,1);
+
+gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);
+gr-&gt;Surf3(a,&quot;wgk&quot;);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);
+gr-&gt;DensA(a);		gr-&gt;Box();	gr-&gt;Axis();
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);
+gr-&gt;Cloud(a);		gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);
+gr-&gt;Surf3A(b,a,&quot;q&quot;);		gr-&gt;Box();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">alpha on: light on
+light 0 0 0 1
+new a 30 30 30: new b 30 30 30
+modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
+modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
+caxis 0 1
+
+subplot 2 2 0: rotate 40 60
+surf3 a 'wgk': box
+subplot 2 2 1: rotate 40 60
+densa a: box: axis
+subplot 2 2 2: rotate 40 60
+cloud a: box
+subplot 2 2 3: rotate 40 60
+surf3a b a 'q': box
+</pre><hr size="6">
+<a name="Line-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Arrow-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Line-styles-sample-1"></a>
+<h3 class="subsection">9.5.4 Line styles sample</h3>
+<a name="index-Mark-8"></a>
+<a name="index-Line-3"></a>
+<div class="float">
+<img src="../png/sample5.png" alt="../png/sample5">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">float d,x1,x2,x0,y=0.95;
+d=0.3, x0=0.2, x1=0.5, x2=0.6;
+gr-&gt;Line(mglPoint(x0,1-0*d),mglPoint(x1,1-0*d),&quot;k-&quot;);	gr-&gt;Puts(mglPoint(x2,y-0*d),&quot;Solid '-'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-1*d),mglPoint(x1,1-1*d),&quot;k|&quot;);	gr-&gt;Puts(mglPoint(x2,y-1*d),&quot;Long Dash '|'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-2*d),mglPoint(x1,1-2*d),&quot;k;&quot;);	gr-&gt;Puts(mglPoint(x2,y-2*d),&quot;Dash ';'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-3*d),mglPoint(x1,1-3*d),&quot;k=&quot;);	gr-&gt;Puts(mglPoint(x2,y-3*d),&quot;Small dash '='&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-4*d),mglPoint(x1,1-4*d),&quot;kj&quot;);	gr-&gt;Puts(mglPoint(x2,y-4*d),&quot;Dash-dot 'j'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-5*d),mglPoint(x1,1-5*d),&quot;ki&quot;);	gr-&gt;Puts(mglPoint(x2,y-5*d),&quot;Small dash-dot 'i'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-6*d),mglPoint(x1,1-6*d),&quot;k:&quot;);	gr-&gt;Puts(mglPoint(x2,y-6*d),&quot;Dots ':'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-7*d),mglPoint(x1,1-7*d),&quot;k &quot;);	gr-&gt;Puts(mglPoint(x2,y-7*d),&quot;None ' '&quot;,&quot;rL&quot;);
+
+d=0.25; x1=-1; x0=-0.8;	y = -0.05;
+gr-&gt;Mark(mglPoint(x1,5*d),'.');		gr-&gt;Puts(mglPoint(x0,y+5*d),&quot;'.'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,4*d),'+');		gr-&gt;Puts(mglPoint(x0,y+4*d),&quot;'+'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,3*d),'x');		gr-&gt;Puts(mglPoint(x0,y+3*d),&quot;'x'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,2*d),'*');		gr-&gt;Puts(mglPoint(x0,y+2*d),&quot;'*'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,d),'s');		gr-&gt;Puts(mglPoint(x0,y+d),&quot;'s'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,0),'d');		gr-&gt;Puts(mglPoint(x0,y),&quot;'d'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-d,0),'o');	gr-&gt;Puts(mglPoint(x0,y-d),&quot;'o'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-2*d,0),'^');	gr-&gt;Puts(mglPoint(x0,y-2*d),&quot;'\\^'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-3*d,0),'v');	gr-&gt;Puts(mglPoint(x0,y-3*d),&quot;'v'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-4*d,0),'&lt;');	gr-&gt;Puts(mglPoint(x0,y-4*d),&quot;'&lt;'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-5*d,0),'&gt;');	gr-&gt;Puts(mglPoint(x0,y-5*d),&quot;'&gt;'&quot;,&quot;rL&quot;);
+
+d=0.25; x1=-0.5; x0=-0.3;	y = -0.05;
+gr-&gt;Mark(mglPoint(x1,5*d),'C');		gr-&gt;Puts(mglPoint(x0,y+5*d),&quot;'\\#.'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,4*d),'P');		gr-&gt;Puts(mglPoint(x0,y+4*d),&quot;'\\#+'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,3*d),'X');		gr-&gt;Puts(mglPoint(x0,y+3*d),&quot;'\\#x'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,2*d),'Y');		gr-&gt;Puts(mglPoint(x0,y+2*d),&quot;'\\#*'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,d),'S');		gr-&gt;Puts(mglPoint(x0,y+d),&quot;'\\#s'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,0),'D');		gr-&gt;Puts(mglPoint(x0,y),&quot;'\\#d'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-d,0),'O');	gr-&gt;Puts(mglPoint(x0,y-d),&quot;'\\#o'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-2*d,0),'T');	gr-&gt;Puts(mglPoint(x0,y-2*d),&quot;'\\#\\^'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-3*d,0),'V');	gr-&gt;Puts(mglPoint(x0,y-3*d),&quot;'\\#v'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-4*d,0),'L');	gr-&gt;Puts(mglPoint(x0,y-4*d),&quot;'\\#&lt;'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-5*d,0),'R');	gr-&gt;Puts(mglPoint(x0,y-5*d),&quot;'\\#&gt;'&quot;,&quot;rL&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Arrow-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Line-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Arrow-styles-sample-1"></a>
+<h3 class="subsection">9.5.5 Arrow styles sample</h3>
+<a name="index-Line-4"></a>
+<div class="float">
+<img src="../png/sampled.png" alt="../png/sampled">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">float a=0.1,b=0.4,c=0.5;
+gr-&gt;Line(mglPoint(a,1),mglPoint(b,1),&quot;k-A&quot;);		gr-&gt;Puts(mglPoint(c,1),&quot;Style 'A' or 'A\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.8),mglPoint(b,0.8),&quot;k-V&quot;);	gr-&gt;Puts(mglPoint(c,0.8),&quot;Style 'V' or 'V\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.6),mglPoint(b,0.6),&quot;k-K&quot;);	gr-&gt;Puts(mglPoint(c,0.6),&quot;Style 'K' or 'K\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.4),mglPoint(b,0.4),&quot;k-I&quot;);	gr-&gt;Puts(mglPoint(c,0.4),&quot;Style 'I' or 'I\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.2),mglPoint(b,0.2),&quot;k-D&quot;);	gr-&gt;Puts(mglPoint(c,0.2),&quot;Style 'D' or 'D\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0),mglPoint(b,0),&quot;k-S&quot;);		gr-&gt;Puts(mglPoint(c,0),&quot;Style 'S' or 'S\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.2),mglPoint(b,-0.2),&quot;k-O&quot;);	gr-&gt;Puts(mglPoint(c,-0.2),&quot;Style 'O' or 'O\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.4),mglPoint(b,-0.4),&quot;k-T&quot;);	gr-&gt;Puts(mglPoint(c,-0.4),&quot;Style 'T' or 'T\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.6),mglPoint(b,-0.6),&quot;k-_&quot;);	gr-&gt;Puts(mglPoint(c,-0.6),&quot;Style '\\_' or none&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.8),mglPoint(b,-0.8),&quot;k-AS&quot;);	gr-&gt;Puts(mglPoint(c,-0.8),&quot;Style 'AS'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-1),mglPoint(b,-1),&quot;k-_A&quot;);		gr-&gt;Puts(mglPoint(c,-1),&quot;Style '\\_A'&quot;,&quot;rL&quot;);
+
+a=-1;	b=-0.7;	c=-0.6;
+gr-&gt;Line(mglPoint(a,1),mglPoint(b,1),&quot;kAA&quot;);		gr-&gt;Puts(mglPoint(c,1),&quot;Style 'AA'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.8),mglPoint(b,0.8),&quot;kVV&quot;);	gr-&gt;Puts(mglPoint(c,0.8),&quot;Style 'VV'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.6),mglPoint(b,0.6),&quot;kKK&quot;);	gr-&gt;Puts(mglPoint(c,0.6),&quot;Style 'KK'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.4),mglPoint(b,0.4),&quot;kII&quot;);	gr-&gt;Puts(mglPoint(c,0.4),&quot;Style 'II'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.2),mglPoint(b,0.2),&quot;kDD&quot;);	gr-&gt;Puts(mglPoint(c,0.2),&quot;Style 'DD'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0),mglPoint(b,0),&quot;kSS&quot;);		gr-&gt;Puts(mglPoint(c,0),&quot;Style 'SS'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.2),mglPoint(b,-0.2),&quot;kOO&quot;);	gr-&gt;Puts(mglPoint(c,-0.2),&quot;Style 'OO'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.4),mglPoint(b,-0.4),&quot;kTT&quot;);	gr-&gt;Puts(mglPoint(c,-0.4),&quot;Style 'TT'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.6),mglPoint(b,-0.6),&quot;k-__&quot;);	gr-&gt;Puts(mglPoint(c,-0.6),&quot;Style '\\_\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.8),mglPoint(b,-0.8),&quot;k-VA&quot;);	gr-&gt;Puts(mglPoint(c,-0.8),&quot;Style 'VA'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-1),mglPoint(b,-1),&quot;k-AV&quot;);		gr-&gt;Puts(mglPoint(c,-1),&quot;Style 'AV'&quot;,&quot;rL&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Text-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Arrow-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TeX-parsing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-styles-sample-1"></a>
+<h3 class="subsection">9.5.6 Text styles sample</h3>
+<a name="index-Puts-5"></a>
+<div class="float">
+<img src="../png/sample4.png" alt="../png/sample4">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Putsw(mglPoint(0,1),L&quot;Text can be in ASCII and in Unicode&quot;);
+gr-&gt;Puts(mglPoint(0,0.6),&quot;It can be \\wire{wire}, \\big{big} or #r{colored}&quot;);
+gr-&gt;Puts(mglPoint(0,0.2),&quot;One can change style in string: &quot;
+        &quot;\\b{bold}, \\i{italic, \\b{both}}&quot;);
+gr-&gt;Puts(mglPoint(0,-0.2),&quot;Easy to \\a{overline} or &quot;
+        &quot;\\u{underline}&quot;);
+gr-&gt;Puts(mglPoint(0,-0.6),&quot;Easy to change indexes ^{up} _{down} @{center}&quot;);
+gr-&gt;Puts(mglPoint(0,-1),&quot;It parse TeX: \\int \\alpha \\cdot &quot;
+        &quot;\\sqrt3{sin(\\pi x)^2 + \\gamma_{i_k}} dx&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">text 0 1 'Text can be in ASCII and in Unicode'
+text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
+text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
+text 0 -0.2 'Easy to \a{overline} or \u{underline}'
+text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
+text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
+</pre><hr size="6">
+<a name="TeX-parsing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-faces-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TeX-parsing-sample-1"></a>
+<h3 class="subsection">9.5.7 TeX parsing sample</h3>
+<a name="index-Puts-6"></a>
+<div class="float">
+<img src="../png/samplee.png" alt="../png/samplee">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Puts(mglPoint(0), &quot;\\sqrt{\\frac{\\alpha^{\\gamma^2}+&quot;
+        &quot;\\overset 1{\\big\\infty}}{\\sqrt3{2+b}}}&quot;, 0, -4);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}' '' -4
+</pre><hr size="6">
+<a name="Font-faces-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TeX-parsing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Font-faces-sample-1"></a>
+<h3 class="subsection">9.5.8 Font faces sample</h3>
+<a name="index-Puts-7"></a>
+<div class="float">
+<img src="../png/fonts.png" alt="../png/fonts">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">float h=1.1, d=0.25;
+gr-&gt;LoadFont(&quot;STIX&quot;);		gr-&gt;Puts(mglPoint(0,h), &quot;default font (STIX)&quot;);
+gr-&gt;LoadFont(&quot;adventor&quot;);	gr-&gt;Puts(mglPoint(0,h-d), &quot;adventor font&quot;);
+gr-&gt;LoadFont(&quot;bonum&quot;);		gr-&gt;Puts(mglPoint(0,h-2*d), &quot;bonum font&quot;);
+gr-&gt;LoadFont(&quot;chorus&quot;);		gr-&gt;Puts(mglPoint(0,h-3*d), &quot;chorus font&quot;);
+gr-&gt;LoadFont(&quot;cursor&quot;);		gr-&gt;Puts(mglPoint(0,h-4*d), &quot;cursor font&quot;);
+gr-&gt;LoadFont(&quot;heros&quot;);		gr-&gt;Puts(mglPoint(0,h-5*d), &quot;heros font&quot;);
+gr-&gt;LoadFont(&quot;heroscn&quot;);	gr-&gt;Puts(mglPoint(0,h-6*d), &quot;heroscn font&quot;);
+gr-&gt;LoadFont(&quot;pagella&quot;);	gr-&gt;Puts(mglPoint(0,h-7*d), &quot;pagella font&quot;);
+gr-&gt;LoadFont(&quot;schola&quot;);		gr-&gt;Puts(mglPoint(0,h-8*d), &quot;schola font&quot;);
+gr-&gt;LoadFont(&quot;termes&quot;);		gr-&gt;Puts(mglPoint(0,h-9*d), &quot;termes font&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-faces-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Color-schemes-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Colors-sample-1"></a>
+<h3 class="subsection">9.5.9 Colors sample</h3>
+<div class="float">
+<img src="../png/colors.png" alt="../png/colors">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">//#LENUQ
+gr-&gt;FaceZ(-1,	-1, 0, 0.4, 0.3, &quot;L#&quot;);	gr-&gt;Puts(mglPoint(-0.8,-0.9), &quot;L&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	-1, 0, 0.4, 0.3, &quot;E#&quot;);	gr-&gt;Puts(mglPoint(-0.4,-0.9), &quot;E&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	-1, 0, 0.4, 0.3, &quot;N#&quot;);	gr-&gt;Puts(mglPoint(0,  -0.9), &quot;N&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	-1, 0, 0.4, 0.3, &quot;U#&quot;);	gr-&gt;Puts(mglPoint(0.4,-0.9), &quot;U&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	-1, 0, 0.4, 0.3, &quot;Q#&quot;);	gr-&gt;Puts(mglPoint(0.8,-0.9), &quot;Q&quot;, &quot;C:w&quot;, -1.4);
+//#lenuq
+gr-&gt;FaceZ(-1,	-0.7, 0, 0.4, 0.3, &quot;l#&quot;);	gr-&gt;Puts(mglPoint(-0.8,-0.6), &quot;l&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	-0.7, 0, 0.4, 0.3, &quot;e#&quot;);	gr-&gt;Puts(mglPoint(-0.4,-0.6), &quot;e&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	-0.7, 0, 0.4, 0.3, &quot;n#&quot;);	gr-&gt;Puts(mglPoint(0,  -0.6), &quot;n&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	-0.7, 0, 0.4, 0.3, &quot;u#&quot;);	gr-&gt;Puts(mglPoint(0.4,-0.6), &quot;u&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	-0.7, 0, 0.4, 0.3, &quot;q#&quot;);	gr-&gt;Puts(mglPoint(0.8,-0.6), &quot;q&quot;, &quot;C:k&quot;, -1.4);
+//#CMYkP
+gr-&gt;FaceZ(-1,	-0.4, 0, 0.4, 0.3, &quot;C#&quot;);	gr-&gt;Puts(mglPoint(-0.8,-0.3), &quot;C&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	-0.4, 0, 0.4, 0.3, &quot;M#&quot;);	gr-&gt;Puts(mglPoint(-0.4,-0.3), &quot;M&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	-0.4, 0, 0.4, 0.3, &quot;Y#&quot;);	gr-&gt;Puts(mglPoint(0,  -0.3), &quot;Y&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	-0.4, 0, 0.4, 0.3, &quot;k#&quot;);	gr-&gt;Puts(mglPoint(0.4,-0.3), &quot;k&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	-0.4, 0, 0.4, 0.3, &quot;P#&quot;);	gr-&gt;Puts(mglPoint(0.8,-0.3), &quot;P&quot;, &quot;C:w&quot;, -1.4);
+//#cmywp
+gr-&gt;FaceZ(-1,	-0.1, 0, 0.4, 0.3, &quot;c#&quot;);	gr-&gt;Puts(mglPoint(-0.8, 0), &quot;c&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	-0.1, 0, 0.4, 0.3, &quot;m#&quot;);	gr-&gt;Puts(mglPoint(-0.4, 0), &quot;m&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	-0.1, 0, 0.4, 0.3, &quot;y#&quot;);	gr-&gt;Puts(mglPoint(0,   0), &quot;y&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	-0.1, 0, 0.4, 0.3, &quot;w#&quot;);	gr-&gt;Puts(mglPoint(0.4, 0), &quot;w&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	-0.1, 0, 0.4, 0.3, &quot;p#&quot;);	gr-&gt;Puts(mglPoint(0.8, 0), &quot;p&quot;, &quot;C:k&quot;, -1.4);
+//#BGRHW
+gr-&gt;FaceZ(-1,	0.2, 0, 0.4, 0.3, &quot;B#&quot;);	gr-&gt;Puts(mglPoint(-0.8, 0.3), &quot;B&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	0.2, 0, 0.4, 0.3, &quot;G#&quot;);	gr-&gt;Puts(mglPoint(-0.4, 0.3), &quot;G&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	0.2, 0, 0.4, 0.3, &quot;R#&quot;);	gr-&gt;Puts(mglPoint(0,   0.3), &quot;R&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	0.2, 0, 0.4, 0.3, &quot;H#&quot;);	gr-&gt;Puts(mglPoint(0.4, 0.3), &quot;H&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	0.2, 0, 0.4, 0.3, &quot;W#&quot;);	gr-&gt;Puts(mglPoint(0.8, 0.3), &quot;W&quot;, &quot;C:w&quot;, -1.4);
+//#bgrhw
+gr-&gt;FaceZ(-1,	0.2, 0, 0.4, 0.3, &quot;b#&quot;);	gr-&gt;Puts(mglPoint(-0.8, 0.6), &quot;b&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	0.5, 0, 0.4, 0.3, &quot;g#&quot;);	gr-&gt;Puts(mglPoint(-0.4, 0.6), &quot;g&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	0.2, 0, 0.4, 0.3, &quot;r#&quot;);	gr-&gt;Puts(mglPoint(0,   0.6), &quot;r&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	0.2, 0, 0.4, 0.3, &quot;h#&quot;);	gr-&gt;Puts(mglPoint(0.4, 0.6), &quot;h&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	0.2, 0, 0.4, 0.3, &quot;w#&quot;);	gr-&gt;Puts(mglPoint(0.8, 0.6), &quot;w&quot;, &quot;C:k&quot;, -1.4);
+//#brighted
+gr-&gt;FaceZ(-1,	0.8, 0, 0.4, 0.3, &quot;r1#&quot;);	gr-&gt;Puts(mglPoint(-0.8, 0.9), &quot;r1&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	0.8, 0, 0.4, 0.3, &quot;r3#&quot;);	gr-&gt;Puts(mglPoint(-0.4, 0.9), &quot;r3&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	0.8, 0, 0.4, 0.3, &quot;r5#&quot;);	gr-&gt;Puts(mglPoint(0,   0.9), &quot;r5&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	0.8, 0, 0.4, 0.3, &quot;r7#&quot;);	gr-&gt;Puts(mglPoint(0.4, 0.9), &quot;r7&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	0.8, 0, 0.4, 0.3, &quot;r9#&quot;);	gr-&gt;Puts(mglPoint(0.8, 0.9), &quot;r9&quot;, &quot;C:k&quot;, -1.4);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">#LENUQ
+facez -1   -1 0 0.4 0.3 'L#': text -0.8 -0.9 'L' 'C:w'
+facez -0.6 -1 0 0.4 0.3 'E#': text -0.4 -0.9 'E' 'C:w'
+facez -0.2 -1 0 0.4 0.3 'N#': text  0   -0.9 'N' 'C:w'
+facez  0.2 -1 0 0.4 0.3 'U#': text  0.4 -0.9 'U' 'C:w'
+facez  0.6 -1 0 0.4 0.3 'Q#': text  0.8 -0.9 'Q' 'C:w'
+#lenuq
+facez -1   -0.7 0 0.4 0.3 'l#': text -0.8 -0.6 'l' 'C:k'
+facez -0.6 -0.7 0 0.4 0.3 'e#': text -0.4 -0.6 'e' 'C:k'
+facez -0.2 -0.7 0 0.4 0.3 'n#': text  0   -0.6 'n' 'C:k'
+facez  0.2 -0.7 0 0.4 0.3 'u#': text  0.4 -0.6 'u' 'C:k'
+facez  0.6 -0.7 0 0.4 0.3 'q#': text  0.8 -0.6 'q' 'C:k'
+#CMYkP
+facez -1   -0.4 0 0.4 0.3 'C#': text -0.8 -0.3 'C' 'C:w'
+facez -0.6 -0.4 0 0.4 0.3 'M#': text -0.4 -0.3 'M' 'C:w'
+facez -0.2 -0.4 0 0.4 0.3 'Y#': text  0   -0.3 'Y' 'C:w'
+facez  0.2 -0.4 0 0.4 0.3 'k#': text  0.4 -0.3 'k' 'C:w'
+facez  0.6 -0.4 0 0.4 0.3 'P#': text  0.8 -0.3 'P' 'C:w'
+#lenuq
+facez -1   -0.1 0 0.4 0.3 'c#': text -0.8 0 'c' 'C:k'
+facez -0.6 -0.1 0 0.4 0.3 'm#': text -0.4 0 'm' 'C:k'
+facez -0.2 -0.1 0 0.4 0.3 'y#': text  0   0 'y' 'C:k'
+facez  0.2 -0.1 0 0.4 0.3 'w#': text  0.4 0 'w' 'C:k'
+facez  0.6 -0.1 0 0.4 0.3 'p#': text  0.8 0 'p' 'C:k'
+#BGRHW
+facez -1   0.2 0 0.4 0.3 'B#': text -0.8 0.3 'B' 'C:k'
+facez -0.6 0.2 0 0.4 0.3 'G#': text -0.4 0.3 'G' 'C:k'
+facez -0.2 0.2 0 0.4 0.3 'R#': text  0   0.3 'R' 'C:k'
+facez  0.2 0.2 0 0.4 0.3 'H#': text  0.4 0.3 'H' 'C:k'
+facez  0.6 0.2 0 0.4 0.3 'W#': text  0.8 0.3 'W' 'C:k'
+#bgrhw
+facez -1   0.5 0 0.4 0.3 'b#': text -0.8 0.6 'b' 'C:w'
+facez -0.6 0.5 0 0.4 0.3 'g#': text -0.4 0.6 'g' 'C:w'
+facez -0.2 0.5 0 0.4 0.3 'r#': text  0   0.6 'r' 'C:w'
+facez  0.2 0.5 0 0.4 0.3 'h#': text  0.4 0.6 'h' 'C:w'
+facez  0.6 0.5 0 0.4 0.3 'w#': text  0.8 0.6 'w' 'C:w'
+#brighted
+facez -1   0.8 0 0.4 0.3 'r1#': text -0.8 0.9 'r1' 'C:k'
+facez -0.6 0.8 0 0.4 0.3 'r3#': text -0.4 0.9 'r3' 'C:k'
+facez -0.2 0.8 0 0.4 0.3 'r5#': text  0   0.9 'r5' 'C:k'
+facez  0.2 0.8 0 0.4 0.3 'r7#': text  0.4 0.9 'r7' 'C:k'
+facez  0.6 0.8 0 0.4 0.3 'r9#': text  0.8 0.9 'r9' 'C:k'
+</pre><hr size="6">
+<a name="Color-schemes-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Normal-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Color-schemes-sample-1"></a>
+<h3 class="subsection">9.5.10 Color schemes sample</h3>
+<a name="index-Colorbar-7"></a>
+<div class="float">
+<img src="../png/color_schemes.png" alt="../png/color_schemes">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(256,2);	a.Fill(-1,1);
+gr-&gt;SubPlot(2,10,0,0.2);	gr-&gt;Dens(a,&quot;kw&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kw&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,1,0.2);	gr-&gt;Dens(a,&quot;wk&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;wk&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,2,0.2);	gr-&gt;Dens(a,&quot;kHCcw&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kHCcw&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,3,0.2);	gr-&gt;Dens(a,&quot;kBbcw&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kBbcw&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,4,0.2);	gr-&gt;Dens(a,&quot;kRryw&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kRryw&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,5,0.2);	gr-&gt;Dens(a,&quot;kGgew&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kGgew&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,6,0.2);	gr-&gt;Dens(a,&quot;BbwrR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbwrR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,7,0.2);	gr-&gt;Dens(a,&quot;BbwgG&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbwgG&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,8,0.2);	gr-&gt;Dens(a,&quot;GgwmM&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;GgwmM&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,9,0.2);	gr-&gt;Dens(a,&quot;UuwqR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;UuwqR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,10,0.2);	gr-&gt;Dens(a,&quot;QqwcC&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;QqwcC&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,11,0.2);	gr-&gt;Dens(a,&quot;CcwyY&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;CcwyY&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,12,0.2);	gr-&gt;Dens(a,&quot;bcwyr&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;bcwyr&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,13,0.2);	gr-&gt;Dens(a,&quot;bwr&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;bwr&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,14,0.2);	gr-&gt;Dens(a,&quot;BbcyrR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbcyrR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,15,0.2);	gr-&gt;Dens(a,&quot;UbcyqR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;UbcyqR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,16,0.2);	gr-&gt;Dens(a,&quot;BbcwyrR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbcwyrR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,17,0.2);	gr-&gt;Dens(a,&quot;bcyr&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;bcyr&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,18,0.2);	gr-&gt;Dens(a,&quot;BbcyrR|&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbcyrR|&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,19,0.2);	gr-&gt;Dens(a,&quot;bgr&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;bgr&quot;, &quot;C&quot;, -8);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 256 2: fill a 'x'
+subplot 2 10 0 0.2:dens a 'kw'
+text -1.4 -0.3 'kw' '' -8
+subplot 2 10 1 0.2:dens a 'wk'
+text -1.4 -0.3 'wk' '' -8
+subplot 2 10 2 0.2:dens a 'kHCcw'
+text -1.4 -0.3 'kHCcw' '' -8
+subplot 2 10 3 0.2:dens a 'kBbcw'
+text -1.4 -0.3 'kBbcw' '' -8
+subplot 2 10 4 0.2:dens a 'kRryw'
+text -1.4 -0.3 'kRryw' '' -8
+subplot 2 10 5 0.2:dens a 'kGgew'
+text -1.4 -0.3 'kGgew' '' -8
+subplot 2 10 6 0.2:dens a 'BbwrR'
+text -1.4 -0.3 'BbwrR' '' -8
+subplot 2 10 7 0.2:dens a 'BbwgG'
+text -1.4 -0.3 'BbwgG' '' -8
+subplot 2 10 8 0.2:dens a 'GgwmM'
+text -1.4 -0.3 'GgwmM' '' -8
+subplot 2 10 9 0.2:dens a 'UuwqR'
+text -1.4 -0.3 'UuwqR' '' -8
+subplot 2 10 10 0.2:dens a 'QqwcC'
+text -1.4 -0.3 'QqwcC' '' -8
+subplot 2 10 11 0.2:dens a 'CcwyY'
+text -1.4 -0.3 'CcwyY' '' -8
+subplot 2 10 12 0.2:dens a 'bcwyr'
+text -1.4 -0.3 'bcwyr' '' -8
+subplot 2 10 13 0.2:dens a 'bwr'
+text -1.4 -0.3 'bwr' '' -8
+subplot 2 10 14 0.2:dens a 'BbcyrR'
+text -1.4 -0.3 'BbcyrR' '' -8
+subplot 2 10 15 0.2:dens a 'UbcyqR'
+text -1.4 -0.3 'UbcyqR' '' -8
+subplot 2 10 16 0.2:dens a 'BbcwyrR'
+text -1.4 -0.3 'BbcwyrR' '' -8
+subplot 2 10 17 0.2:dens a 'bcyr'
+text -1.4 -0.3 'bcyr' '' -8
+subplot 2 10 18 0.2:dens a 'BbcyrR|'
+text -1.4 -0.3 'BbcyrR|' '' -8
+subplot 2 10 19 0.2:dens a 'bgr'
+text -1.4 -0.3 'bgr' '' -8
+</pre><hr size="6">
+<a name="Normal-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Color-schemes-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Glass_002dlike-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Normal-transparency-1"></a>
+<h3 class="subsection">9.5.11 Normal transparency</h3>
+<a name="index-TranspType"></a>
+<div class="float">
+<img src="../png/type0.png" alt="../png/type0">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true);	gr-&gt;Light(true);
+mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+
+gr-&gt;TranspType = 0;	gr-&gt;Clf();
+gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);	gr-&gt;Surf(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);	gr-&gt;Dens(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);	gr-&gt;Cont(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);	gr-&gt;Axial(a);	gr-&gt;Box();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 0: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre><hr size="6">
+<a name="Glass_002dlike-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Normal-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lamp_002dlike-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Glass_002dlike-transparency-1"></a>
+<h3 class="subsection">9.5.12 Glass-like transparency</h3>
+<a name="index-TranspType-1"></a>
+<div class="float">
+<img src="../png/type1.png" alt="../png/type1">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true);	gr-&gt;Light(true);
+mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+
+gr-&gt;TranspType = 1;	gr-&gt;Clf();
+gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);	gr-&gt;Surf(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);	gr-&gt;Dens(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);	gr-&gt;Cont(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);	gr-&gt;Axial(a);	gr-&gt;Box();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 1: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre><hr size="6">
+<a name="Lamp_002dlike-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Glass_002dlike-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Lamp_002dlike-transparency-1"></a>
+<h3 class="subsection">9.5.13 Lamp-like transparency</h3>
+<a name="index-TranspType-2"></a>
+<div class="float">
+<img src="../png/type2.png" alt="../png/type2">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true);	gr-&gt;Light(true);
+mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+
+gr-&gt;TranspType = 2;	gr-&gt;Clf();
+gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);	gr-&gt;Surf(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);	gr-&gt;Dens(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);	gr-&gt;Cont(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);	gr-&gt;Axial(a);	gr-&gt;Box();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 2: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<hr size="6">
+<a name="Additional-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lamp_002dlike-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Additional-features-1"></a>
+<h2 class="section">9.6 Additional features</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Legend-sample">9.6.1 Legend sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Adding-mesh-sample">9.6.2 Adding mesh sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf-_0026-Cont-sample">9.6.3 Surf &amp; Cont sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-_0026-Dens-sample">9.6.4 Flow &amp; Dens sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Several-light-sample">9.6.5 Several light sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mirrored-surface-sample">9.6.6 Mirrored surface sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-with-labels-sample">9.6.7 Cont with labels sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ternary-plot-sample">9.6.8 Ternary plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Coloring-by-coordinates-sample">9.6.9 Coloring by coordinates sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Drops-sample">9.6.10 Drops sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Molecules-drawing-sample">9.6.11 Molecules drawing sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">    
+</td></tr>
+</table>
+<hr size="6">
+<a name="Legend-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Additional-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Adding-mesh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Legend-sample-1"></a>
+<h3 class="subsection">9.6.1 Legend sample</h3>
+<a name="index-Plot-9"></a>
+<a name="index-Legend-5"></a>
+<a name="index-AddLegend-3"></a>
+<div class="float">
+<img src="../png/legend.png" alt="../png/legend">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData f(50,3);
+f.Modify(&quot;sin(2*pi*x*x)&quot;,0);
+f.Modify(&quot;sin(2*pi*x)&quot;,1);
+f.Modify(&quot;sin(2*pi*sqrt(x))&quot;,2);
+gr-&gt;Axis(mglPoint(0,-1),mglPoint(1,1));
+gr-&gt;Box(); gr-&gt;Plot(f); gr-&gt;Axis();
+gr-&gt;AddLegend(&quot;sin(\\pi {x^2})&quot;,&quot;b&quot;);
+gr-&gt;AddLegend(&quot;sin(\\pi x)&quot;,&quot;g*&quot;);
+gr-&gt;AddLegend(&quot;sin(\\pi \\sqrt{\\a x})&quot;,&quot;r+&quot;);
+gr-&gt;Legend();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new f 50 3
+modify f 'sin(2*pi*x*x)'
+modify f 'sin(2*pi*x)' 1
+modify f 'sin(2*pi*sqrt(x))' 2
+axis 0 -1 1 1
+box
+plot f
+axis
+addlegend 'sin(\pi {x^2})' 'b'
+addlegend 'sin(\pi x)' 'g*'
+addlegend 'sin(\pi \sqrt{\a x})' 'r+'
+legend
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT f = mgl_create_data_size(50,3,1);
+mgl_data_modify(f,&quot;sin(2*pi*x*x)&quot;,0);
+mgl_data_modify(f,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(f,&quot;sin(2*pi*sqrt(x))&quot;,2);
+mgl_set_axis(gr, 0.,-1.,0., 1.,1.,1., 0.,0.,0.);
+mgl_box(gr,1);
+mgl_plot(gr,f,NULL);
+mgl_axis(gr,&quot;xy&quot;);
+mgl_add_legend(gr,&quot;sin(\\pi {x^2})&quot;,&quot;b&quot;);
+mgl_add_legend(gr,&quot;sin(\\pi x)&quot;,&quot;g*&quot;);
+mgl_add_legend(gr,&quot;sin(\\pi \\sqrt{\\a x})&quot;,&quot;r+&quot;);
+mgl_legend(gr,3,&quot;rL&quot;,-1.,0.1);
+mgl_delete_data(f);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer f, mgl_create_data_size
+f = mgl_create_data_size(50,3,1)
+call mgl_data_modify(f,'sin(2*pi*x*x)',0)
+call mgl_data_modify(f,'sin(2*pi*x)',1)
+call mgl_data_modify(f,'sin(2*pi*sqrt(x))',2)
+call mgl_set_axis(gr, 0.,-1.,0., 1.,1.,1., 0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_plot(gr,f,'')
+call mgl_axis(gr,'xy')
+call mgl_add_legend(gr,'sin(\pi {x^2})','b');
+call mgl_add_legend(gr,'sin(\pi x)','g*');
+call mgl_add_legend(gr,'sin(\pi \sqrt{\a x})','r+');
+call mgl_legend(gr,3,'rL',-1.,0.1);
+call mgl_delete_data(f)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">f = mglData(50,3);
+f.Modify(&quot;sin(2*pi*x*x)&quot;,0);    f.Modify(&quot;sin(2*pi*x)&quot;,1);      f.Modify(&quot;sin(2*pi*sqrt(x))&quot;,2);
+gr.SetRanges(0,1,-1,1);     gr.Box();   gr.Axis();  gr.Plot(f);
+gr.AddLegend(&quot;sin(\\pi x^2)&quot;,&quot;b&quot;);
+gr.AddLegend(&quot;sin(\\pi x)&quot;,&quot;g*&quot;);
+gr.AddLegend(&quot;sin(\\pi\\sqrt{\\a x})&quot;,&quot;r+&quot;);
+gr.Legend();
+</pre><hr size="6">
+<a name="Adding-mesh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf-_0026-Cont-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Adding-mesh-sample-1"></a>
+<h3 class="subsection">9.6.2 Adding mesh sample</h3>
+<a name="index-SubPlot-4"></a>
+<a name="index-Surf-12"></a>
+<a name="index-Dens-6"></a>
+<a name="index-Cont-6"></a>
+<a name="index-Axial-6"></a>
+<div class="float">
+<img src="../png/samplea.png" alt="../png/samplea">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(40,60);
+gr-&gt;Surf(a,&quot;BbcyrR#&quot;);  gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(40,60);
+gr-&gt;Dens(a,&quot;BbcyrR#&quot;);  gr-&gt;Box();
+gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(40,60);
+gr-&gt;Cont(a,&quot;BbcyrR#&quot;);  gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(40,60);
+gr-&gt;Axial(a,&quot;BbcyrR#&quot;); gr-&gt;Box();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+alpha on
+light on
+subplot 2 2 0
+rotate 40 60
+surf a 'BbcyrR#'
+box
+subplot 2 2 1
+rotate 40 60
+dens a 'BbcyrR#'
+box
+subplot 2 2 2
+rotate 40 60
+cont a 'BbcyrR#'
+box
+subplot 2 2 3
+rotate 40 60
+axial a 'BbcyrR#'
+box
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_set_alpha(gr,1);
+mgl_set_light(gr,1);
+mgl_subplot(gr,2,2,0); mgl_rotate(gr,40.,60.,0.);
+mgl_surf(gr,a,&quot;BbcyrR#&quot;);       mgl_box(gr,1);
+mgl_subplot(gr,2,2,1); mgl_rotate(gr,40.,60.,0.);
+mgl_dens(gr,a,&quot;BbcyrR#&quot;,-1.);   mgl_box(gr,1);
+mgl_subplot(gr,2,2,2); mgl_rotate(gr,40.,60.,0.);
+mgl_cont(gr,a,&quot;BbcyrR#&quot;,7,NAN); mgl_box(gr,1);
+mgl_subplot(gr,2,2,3); mgl_rotate(gr,40.,60.,0.);
+mgl_axial(gr,a,&quot;BbcyrR#&quot;,3);    mgl_box(gr,1);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+real zero, nan
+zero=0; nan=zero/zero
+a = mgl_create_data_size(50,40,1)
+call mgl_data_modify(a,'0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))',0)
+call mgl_set_alpha(gr,1)
+call mgl_set_light(gr,1)
+call mgl_subplot(gr,2,2,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_surf(gr,a,'BbcyrR#')
+call mgl_box(gr,1)
+call mgl_subplot(gr,2,2,1)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_dens(gr,a,'BbcyrR#',-1.)
+call mgl_box(gr,1)
+call mgl_subplot(gr,2,2,2)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_cont(gr,a,'BbcyrR#',7,nan)
+call mgl_box(gr,1)
+call mgl_subplot(gr,2,2,3)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_axial(gr,a,'BbcyrR#',3)
+call mgl_box(gr,1)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Light(True);     gr.Alpha(True);
+gr.SubPlot(2,2,0);
+gr.Rotate(40,60);   gr.Surf(a,&quot;BbcyrR#&quot;);   gr.Box();
+gr.SubPlot(2,2,1);
+gr.Rotate(40,60);   gr.Dens(a,&quot;BbcyrR#&quot;);   gr.Box();
+gr.SubPlot(2,2,2);
+gr.Rotate(40,60);   gr.Cont(a,&quot;BbcyrR#&quot;);   gr.Box();
+gr.SubPlot(2,2,3);
+gr.Rotate(40,60);   gr.Axial(a,&quot;BbcyrR#&quot;);  gr.Box();
+</pre><hr size="6">
+<a name="Surf-_0026-Cont-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Adding-mesh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-_0026-Dens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-_0026-Cont-sample-1"></a>
+<h3 class="subsection">9.6.3 Surf &amp; Cont sample</h3>
+<a name="index-Surf-13"></a>
+<a name="index-Cont-7"></a>
+<div class="float">
+<img src="../png/surf_cont_y.png" alt="../png/surf_cont_y">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Surf(a);
+gr-&gt;Cont(a,&quot;y&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+cont a 'y'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_cont(gr,a,&quot;y&quot;,7,NAN);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+real zero, nan
+zero = 0; nan = zero/zero
+a = mgl_create_data_size(50,40,1)
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_cont(gr,a,'y',7,nan)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Surf(a);         gr.Cont(a,&quot;y&quot;);
+</pre><hr size="6">
+<a name="Flow-_0026-Dens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf-_0026-Cont-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Several-light-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-_0026-Dens-sample-1"></a>
+<h3 class="subsection">9.6.4 Flow &amp; Dens sample</h3>
+<a name="index-Flow-7"></a>
+<a name="index-Dens-7"></a>
+<div class="float">
+<img src="../png/flow_dens.png" alt="../png/flow_dens">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40), b(50,40), d(a);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+d.Modify(&quot;sqrt(v^2+w^2)&quot;,a,b);
+gr-&gt;Box();
+gr-&gt;Flow(a,b,&quot;br&quot;); gr-&gt;Dens(d,&quot;BbcyrR&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+copy d a
+modify d 'sqrt(v^2+w^2)' a b
+box
+flow a b 'br'
+dens d 'BbcyrR'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a, b, d;
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+d = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(d,&quot;sqrt(v^2+w^2)&quot;,a,b);
+mgl_box(gr,1);
+mgl_flow_2d(gr,a,b,&quot;br&quot;,5,1,0.);
+mgl_dens(gr,d,&quot;BbcyrR&quot;,-1.);
+mgl_delete_data(a); mgl_delete_data(b); mgl_delete_data(d);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b,d, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+d = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(d,&quot;sqrt(v^2+w^2)&quot;,a,b);
+call mgl_box(gr,1)
+call mgl_flow_2d(gr,a,b,'br',5,1,0.)
+call mgl_dens(gr,d,'BbcyrR',-1.);
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+call mgl_delete_data(d)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b= mglData(50,40), mglData(50,40);   d = mglData(a)
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+d.Modify(&quot;sqrt(v^2+w^2)&quot;,a,b);
+gr.Box();
+gr.Flow(a,b,&quot;br&quot;);      gr.Dens(d,&quot;BbcyrR&quot;);
+</pre><hr size="6">
+<a name="Several-light-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-_0026-Dens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mirrored-surface-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Several-light-sample-1"></a>
+<h3 class="subsection">9.6.5 Several light sample</h3>
+<a name="index-Surf-14"></a>
+<a name="index-Light-5"></a>
+<div class="float">
+<img src="../png/several_light.png" alt="../png/several_light">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Light(1,mglPoint(0,1,0),'c');
+gr-&gt;Light(2,mglPoint(1,0,0),'y');
+gr-&gt;Light(3,mglPoint(0,-1,0),'m');
+gr-&gt;Box();
+gr-&gt;Surf(a,&quot;h&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+light 1 0 1 0 'c'
+light 2 1 0 0 'y'
+light 3 0 -1 0 'm'
+box
+surf a 'h'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_add_light_rgb(gr,1,0.,1.,0.,1, 0.,1.,1.,0.5);
+mgl_add_light_rgb(gr,2,1.,0.,0.,1, 1.,1.,0.,0.5);
+mgl_add_light_rgb(gr,3,0.,-1.,0.,1, 1.,0.,1.,0.5);
+mgl_box(gr,1);
+mgl_surf(gr,a,&quot;h&quot;);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_add_light_rgb(gr,1,0.,1.,0.,1, 0.,1.,1.,0.5)
+call mgl_add_light_rgb(gr,2,1.,0.,0.,1, 1.,1.,0.,0.5)
+call mgl_add_light_rgb(gr,3,0.,-1.,0.,1, 1.,0.,1.,0.5)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'h')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);       gr.Light(True);
+gr.AddLight(1,0,1,0,&quot;c&quot;);
+gr.AddLight(2,1,0,0,&quot;y&quot;);
+gr.AddLight(3,0,-1,0,&quot;m&quot;);
+gr.Box();
+gr.Surf(a,&quot;h&quot;)
+</pre><hr size="6">
+<a name="Mirrored-surface-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Several-light-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-with-labels-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mirrored-surface-sample-1"></a>
+<h3 class="subsection">9.6.6 Mirrored surface sample</h3>
+<a name="index-Surf-15"></a>
+<div class="float">
+<img src="../png/mirror.png" alt="../png/mirror">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(30,40),x(30),y1(40),y2(40);
+a.Modify(&quot;pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)&quot;);
+x.Fill(-1,1); y1.Fill(0,1); y2.Fill(0,-1);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Surf(x,y1,a,&quot;r&quot;); gr-&gt;Surf(x,y2,a,&quot;b&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 30 40
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf a 'r'; yrange 0 1
+surf a 'b'; yrange 0 -1
+box
+</pre><p>or
+</p><pre class="verbatim">new a 30 40
+var x 30 -1 1
+var y1 40 0 1
+var y2 40 0 -1
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf x y1 a 'r'
+surf x y2 a 'b'
+box
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a,x,y1,y2;
+a = mgl_create_data_size(30,40,1);
+x = mgl_create_data_size(30,1,1);
+y1 = mgl_create_data_size(40,1,1);
+y2 = mgl_create_data_size(40,1,1);
+mgl_data_modify(a,&quot;pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)&quot;,0);
+mgl_data_fill(x,-1.,1.,'x');
+mgl_data_fill(y1,0.,1.,'x');
+mgl_data_fill(y2,0.,-1.,'x');
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf_xy(gr,x,y1,a,&quot;r&quot;); mgl_surf_xy(gr,x,y2,a,&quot;b&quot;);
+mgl_delete_data(a); mgl_delete_data(y1);
+mgl_delete_data(x); mgl_delete_data(y2);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,x,y1,y2, mgl_create_data_size
+a = mgl_create_data_size(30,40,1)
+x = mgl_create_data_size(30,1,1)
+y1 = mgl_create_data_size(40,1,1)
+y2 = mgl_create_data_size(40,1,1)
+call mgl_data_modify(a,'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)',0)
+call mgl_data_fill(x,-1.,1.,'x')
+call mgl_data_fill(y1,0.,1.,'x')
+call mgl_data_fill(y2,0.,-1.,'x')
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf_xy(gr,x,y1,a,'r')
+call mgl_surf_xy(gr,x,y2,a,'b')
+call mgl_delete_data(a)
+call mgl_delete_data(y1)
+call mgl_delete_data(x)
+call mgl_delete_data(y2)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, x, y1, y2 = mglData(30,40), mglData(30), mglData(40), mglData(40);
+a.Modify(&quot;pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)&quot;);
+x.Fill(-1,1);   y1.Fill(0,1);   y2.Fill(0,-1);
+gr.Rotate(40,60);       gr.Light(True);         gr.Box();
+gr.Surf(x,y1,a,&quot;r&quot;);    gr.Surf(x,y2,a,&quot;b&quot;);
+</pre><hr size="6">
+<a name="Cont-with-labels-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mirrored-surface-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ternary-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-with-labels-sample-1"></a>
+<h3 class="subsection">9.6.7 Cont with labels sample</h3>
+<a name="index-Cont-8"></a>
+<div class="float">
+<img src="../png/contt.png" alt="../png/contt">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Cont(a,&quot;BbcyrRt&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+cont a 'BbcyrRt'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_cont(gr,a,&quot;BbcyrRt&quot;,7,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_cont(gr,a,'BbcyrRt',7,0)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.Cont(a,&quot;BbcyrRt&quot;);
+</pre><hr size="6">
+<a name="Ternary-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-with-labels-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Coloring-by-coordinates-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ternary-plot-sample-1"></a>
+<h3 class="subsection">9.6.8 Ternary plot sample</h3>
+<a name="index-Ternary-2"></a>
+<div class="float">
+<img src="../png/ternary.png" alt="../png/ternary">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData x(50),y(50),rx(10),ry(10), a(20,30);
+a.Modify(&quot;4*x*y&quot;);
+x.Modify(&quot;0.25*(1+cos(2*pi*x))&quot;);
+y.Modify(&quot;0.25*(1+sin(2*pi*x))&quot;);
+rx.Modify(&quot;rnd&quot;); ry.Modify(&quot;(1-v)*rnd&quot;,rx);
+gr-&gt;Text(mglPoint(-0.8,1.3), &quot;Ternary plot (x+y+t=1)&quot;);
+gr-&gt;Ternary(true);
+gr-&gt;Plot(x,y,&quot;r2&quot;);
+gr-&gt;Plot(rx,ry,&quot;q^ &quot;);
+gr-&gt;Cont(a);
+gr-&gt;Line(mglPoint(0.5,0), mglPoint(0,0.75), &quot;g2&quot;);
+gr-&gt;Axis(); gr-&gt;Grid(&quot;xyz&quot;,&quot;B;&quot;);
+gr-&gt;Label('x',&quot;x comp.&quot;);
+gr-&gt;Label('y',&quot;y comp.&quot;);
+gr-&gt;Label('t',&quot;t comp.&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new rx 10
+new ry 10
+new x 50
+new y 50
+new a 20 30
+modify a '4*x*y'
+modify x '0.25*(1+cos(2*pi*x))'
+modify y '0.25*(1+sin(2*pi*x))'
+modify rx 'rnd'
+modify ry 'rnd*(1-v)' rx
+text -0.8 1.3 'Ternary plot (x+y+t=1)'
+ternary on
+plot x y 'r2'
+plot rx ry 'q^ '
+cont a
+line 0.5 0 0 0.75 'g2'
+axis
+grid 'xyz' 'B;'
+xlabel 'x comp.'
+ylabel 'y comp.'
+tlabel 't comp.'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT x,y,rx,ry,a;
+x = mgl_create_data_size(50,1,1);
+y = mgl_create_data_size(50,1,1);
+rx = mgl_create_data_size(50,1,1);
+ry = mgl_create_data_size(50,1,1);
+a = mgl_create_data_size(20,30,1);
+mgl_data_modify(x,&quot;0.25*(1+cos(2*pi*x))&quot;,0);
+mgl_data_modify(y,&quot;0.25*(1+sin(2*pi*x))&quot;,0);
+mgl_data_modify(rx,&quot;rnd&quot;,0);
+mgl_data_modify_vw(ry,&quot;(1-v)*rnd&quot;,rx,0);
+mgl_data_modify(a,&quot;4*x*y&quot;,0);
+mgl_puts_ext(gr,-0.8,1.3,0.,&quot;Ternary plot (x+y+t=1)&quot;,&quot;C&quot;,-1.4,'t');
+mgl_set_ternary(gr,1);
+mgl_plot_xy(gr,x,y,&quot;r2&quot;);
+mgl_plot_xy(gr,rx,ry,&quot;q^ &quot;);
+mgl_cont(gr,a,&quot;&quot;,7,0.);
+mgl_line(gr,0.5,0.,0.,0.,0.75,0.,&quot;g2&quot;,2);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B:&quot;);
+mgl_label(gr,'x',&quot;x comp&quot;);
+mgl_label(gr,'y',&quot;y comp&quot;);
+mgl_label(gr,'t',&quot;t comp&quot;);
+mgl_delete_data(a);
+mgl_delete_data(x);     mgl_delete_data(y);
+mgl_delete_data(rx);    mgl_delete_data(ry);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,x,y,rx,ry, mgl_create_data_size
+x = mgl_create_data_size(50,1,1)
+y = mgl_create_data_size(50,1,1)
+rx = mgl_create_data_size(50,1,1)
+ry = mgl_create_data_size(50,1,1)
+a = mgl_create_data_size(20,30,1)
+call mgl_data_modify(x,'0.25*(1+cos(2*pi*x))',0)
+call mgl_data_modify(y,'0.25*(1+sin(2*pi*x))',0)
+call mgl_data_modify(rx,'rnd',0)
+call mgl_data_modify_vw(ry,'(1-v)*rnd',rx,rx)
+call mgl_data_modify(a,'4*x*y',0)
+call mgl_puts_ext(gr,-0.8,1.3,0.,'Ternary plot (x+y+t=1)','C',-1.4,'t')
+call mgl_set_ternary(gr,1)
+call mgl_plot_xy(gr,x,y,'r2')
+call mgl_plot_xy(gr,rx,ry,'q^ ')
+call mgl_cont(gr,a,'',7,0.)
+call mgl_line(gr,0.5,0.,0.,0.,0.75,0.,'g2',2)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B:')
+call mgl_label(gr,'x','x comp')
+call mgl_label(gr,'y','y comp')
+call mgl_label(gr,'t','t comp')
+call mgl_delete_data(a)
+call mgl_delete_data(x)
+call mgl_delete_data(y)
+call mgl_delete_data(rx)
+call mgl_delete_data(ry)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">x, y, rx, ry, a = mglData(50), mglData(50), mglData(10), mglData(10), mglData(20,30);
+a.Modify(&quot;4*x*y&quot;);
+x.Modify(&quot;0.25*(1+cos(2*pi*x))&quot;);   y.Modify(&quot;0.25*(1+sin(2*pi*x))&quot;);
+rx.Modify(&quot;rnd&quot;);   ry.Modify(&quot;(1-v)*rnd&quot;,rx);
+gr.Puts(-0.8,1.3,0,&quot;Ternary plot (x+y+t=1)&quot;,&quot;C&quot;,-1.4);
+gr.Ternary(True);
+gr.Plot(x,y,&quot;r2&quot;);  gr.Plot(rx,ry,&quot;q^ &quot;);   gr.Cont(a);
+gr.Line(0.5,0,0,0,0.75,0,&quot;g2&quot;);
+gr.Axis();          gr.Grid(&quot;xyz&quot;,&quot;B;&quot;);
+gr.Label(&quot;x&quot;,&quot;x comp.&quot;);
+gr.Label(&quot;y&quot;,&quot;y comp.&quot;);
+gr.Label(&quot;t&quot;,&quot;t comp.&quot;);
+</pre><hr size="6">
+<a name="Coloring-by-coordinates-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ternary-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Drops-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Coloring-by-coordinates-sample-1"></a>
+<h3 class="subsection">9.6.9 Coloring by coordinates sample</h3>
+<a name="index-Surf3-9"></a>
+<div class="float">
+<img src="../png/surf3_rgbd.png" alt="../png/surf3_rgbd">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Surf3(a,&quot;bgrd&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+surf3 a 'bgrd'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_surf3(gr,a,&quot;bgrd&quot;,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'bgrd',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2+(2*y-1)^2+(2*z-1)^4-(2*z-1)^2-0.1)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.Surf3(a,&quot;bgrd&quot;);
+</pre><hr size="6">
+<a name="Drops-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Coloring-by-coordinates-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Molecules-drawing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Drops-sample-1"></a>
+<h3 class="subsection">9.6.10 Drops sample</h3>
+<a name="index-Drop-4"></a>
+<div class="float">
+<img src="../png/drops.png" alt="../png/drops">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Light(true);
+gr-&gt;Puts(mglPoint(-1,1.2),&quot;sh=0&quot;);
+gr-&gt;Drop(mglPoint(-1,0),mglPoint(0,1),0.5,&quot;r&quot;,0);
+gr-&gt;Puts(mglPoint(-0.33,1.2),&quot;sh=0.33&quot;);
+gr-&gt;Drop(mglPoint(-0.33,0),mglPoint(0,1),0.5,&quot;r&quot;,0.33);
+gr-&gt;Puts(mglPoint(0.33,1.2),&quot;sh=0.67&quot;);
+gr-&gt;Drop(mglPoint(0.33,0),mglPoint(0,1),0.5,&quot;r&quot;,0.67);
+gr-&gt;Puts(mglPoint(1,1.2),&quot;sh=1&quot;);
+gr-&gt;Drop(mglPoint(1,0),mglPoint(0,1),0.5,&quot;r&quot;,1);
+gr-&gt;Ball(mglPoint(-1,0,1),'k');
+gr-&gt;Ball(mglPoint(-0.33,0,1),'k');
+gr-&gt;Ball(mglPoint(0.33,0,1),'k');
+gr-&gt;Ball(mglPoint(1,0,1),'k');
+gr-&gt;Line(mglPoint(-1,0,1),mglPoint(1,0,1),&quot;b&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">light on
+text -1 1.2 'sh=0'
+drop -1 0 0 1 0.5 'r' 0
+text -0.33 1.2 'sh=0.33'
+drop -0.33 0 0 1 0.5 'r' 0.33
+text 0.33 1.2 'sh=0.67'
+drop 0.33 0 0 1 0.5 'r' 0.67
+text 1 1.2 'sh=1'
+drop 1 0 0 1 0.5 'r' 1
+ball -1 0 1 'k'
+ball -0.33 0 1 'k'
+ball 0.33 0 1 'k'
+ball 1 0 1 'k'
+line -1 0 1 1 0 1 'b'
+new h 100
+modify h '0.25*(1+x)^2'
+plot h 'k|'
+text -1 0.6 'h\sim(1+sh)^2' 'rL'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">mgl_set_light(gr,1);
+mgl_puts(gr,-1.,1.2,0.,&quot;sh=0&quot;); 
+mgl_drop(gr,-1.,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.,1.);
+mgl_puts(gr,-0.33,1.2,0.,&quot;sh=0.33&quot;); 
+mgl_drop(gr,-0.33,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.33,1.);
+mgl_puts(gr,0.33,1.2,0.,&quot;sh=0.67&quot;); 
+mgl_drop(gr,0.33,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.67,1.);
+mgl_puts(gr,1.,1.2,0.,&quot;sh=1&quot;); 
+mgl_drop(gr,1.,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,1.,1.);
+mgl_ball_str(gr,-1.,0.,1.,&quot;k&quot;);
+mgl_ball_str(gr,-0.33,0.,1.,&quot;k&quot;);
+mgl_ball_str(gr,0.33,0.,1.,&quot;k&quot;);
+mgl_ball_str(gr,1.,0.,1.,&quot;k&quot;);
+mgl_line(gr,-1.,0.,1.,1.,0.,1.,&quot;b&quot;,2);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">call mgl_set_light(gr,1);
+call mgl_puts(gr,-1.,1.2,0.,&quot;sh=0&quot;); 
+call mgl_drop(gr,-1.,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.,1.);
+call mgl_puts(gr,-0.33,1.2,0.,&quot;sh=0.33&quot;); 
+call mgl_drop(gr,-0.33,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.33,1.);
+call mgl_puts(gr,0.33,1.2,0.,&quot;sh=0.67&quot;); 
+call mgl_drop(gr,0.33,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.67,1.);
+call mgl_puts(gr,1.,1.2,0.,&quot;sh=1&quot;); 
+call mgl_drop(gr,1.,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,1.,1.);
+call mgl_ball_str(gr,-1.,0.,1.,&quot;k&quot;);
+call mgl_ball_str(gr,-0.33,0.,1.,&quot;k&quot;);
+call mgl_ball_str(gr,0.33,0.,1.,&quot;k&quot;);
+call mgl_ball_str(gr,1.,0.,1.,&quot;k&quot;);
+call mgl_line(gr,-1.,0.,1.,1.,0.,1.,&quot;b&quot;,2);
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">gr.Light(True);
+gr.Puts(-1,1.2,0,&quot;sh=0&quot;,&quot;rC&quot;);
+gr.Drop(-1,0,0,0,1,0,0.5,&quot;r&quot;,0);
+gr.Puts(-0.33,1.2,0,&quot;sh=0.33&quot;,&quot;rC&quot;);
+gr.Drop(-0.33,0,0,0,1,0,0.5,&quot;r&quot;,0.33);
+gr.Puts(0.33,1.2,0,&quot;sh=0.67&quot;,&quot;rC&quot;);
+gr.Drop(0.33,0,0,0,1,0,0.5,&quot;r&quot;,0.67);
+gr.Puts(1,1.2,0,&quot;sh=1&quot;,&quot;rC&quot;);
+gr.Drop(1,0,0,0,1,0,0.5,&quot;r&quot;,1);
+gr.Ball(-1,0,1,&quot;k&quot;);    gr.Ball(-0.33,0,1,&quot;k&quot;);
+gr.Ball(0.33,0,1,&quot;k&quot;);  gr.Ball(1,0,1,&quot;k&quot;);
+gr.Line(-1,0,1,1,0,1,&quot;b&quot;);
+</pre><hr size="6">
+<a name="Molecules-drawing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Drops-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Molecules-drawing-sample-1"></a>
+<h3 class="subsection">9.6.11 Molecules drawing sample</h3>
+<a name="index-Drop-5"></a>
+<a name="index-Sphere-3"></a>
+<div class="float">
+<img src="../png/molecule.png" alt="../png/molecule">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true); gr-&gt;Light(true);
+gr-&gt;SubPlot(2,2,0);
+gr-&gt;Text(mglPoint(0,1.2),&quot;Methane, CH_4&quot;,0,-3); gr-&gt;Rotate(60,120);
+gr-&gt;Sphere(mglPoint(0,0,0),0.25,&quot;k&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0,0,1),0.35,&quot;h&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0,0,0.7),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(-0.94,0,-0.33),0.35,&quot;h&quot;,1,2);
+gr-&gt;Sphere(mglPoint(-0.66,0,-0.23),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.47,0.82,-0.33),0.35,&quot;h&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.33,0.57,-0.23),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.47,-0.82,-0.33),0.35,&quot;h&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.33,-0.57,-0.23),0.25,&quot;g&quot;);
+gr-&gt;SubPlot(2,2,1);
+gr-&gt;Text(mglPoint(0,1.2),&quot;Water, H{_2}O&quot;,0,-3); gr-&gt;Rotate(60,100);
+gr-&gt;Sphere(mglPoint(0,0,0),0.25,&quot;r&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.3,0.5,0),0.3,&quot;m&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.3,0.5,0),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.3,-0.5,0),0.3,&quot;m&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.3,-0.5,0),0.25,&quot;g&quot;);
+gr-&gt;SubPlot(2,2,2);
+gr-&gt;Text(mglPoint(0,1.2),&quot;Oxygen, O_2&quot;,0,-3); gr-&gt;Rotate(60,120);
+gr-&gt;Drop(mglPoint(0,0.5,0),mglPoint(0,-0.3,0),0.3,&quot;m&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0,0.5,0),0.25,&quot;r&quot;);
+gr-&gt;Drop(mglPoint(0,-0.5,0),mglPoint(0,0.3,0),0.3,&quot;m&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0,-0.5,0),0.25,&quot;r&quot;);
+gr-&gt;SubPlot(2,2,3);
+gr-&gt;Text(mglPoint(0,1.2),&quot;Ammonia, NH_3&quot;,0,-3); gr-&gt;Rotate(60,120);
+gr-&gt;Sphere(mglPoint(0,0,0),0.25,&quot;b&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.33,0.57,0),0.32,&quot;n&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.33,0.57,0),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.33,-0.57,0),0.32,&quot;n&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.33,-0.57,0),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(-0.65,0,0),0.32,&quot;n&quot;,1,2);
+gr-&gt;Sphere(mglPoint(-0.65,0,0),0.25,&quot;g&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">alpha on
+light on
+subplot 2 2 0
+text 0 1.2 'Methane, CH_4' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'k'
+drop 0 0 0 0 0 1 0.35 'h' 1 2
+sphere 0 0 0.7 0.25 'g'
+drop 0 0 0 -0.94 0 -0.33 0.35 'h' 1 2
+sphere -0.66 0 -0.23 0.25 'g'
+drop 0 0 0 0.47 0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 0.57 -0.23 0.25 'g'
+drop 0 0 0 0.47 -0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 -0.57 -0.23 0.25 'g'
+subplot 2 2 1
+text 0 1.2 'Water, H{_2}O' '' -3
+rotate 60 100
+sphere 0 0 0 0.25 'r'
+drop 0 0 0 0.3 0.5 0 0.3 'm' 1 2
+sphere 0.3 0.5 0 0.25 'g'
+drop 0 0 0 0.3 -0.5 0 0.3 'm' 1 2
+sphere 0.3 -0.5 0 0.25 'g'
+subplot 2 2 2
+text 0 1.2 'Oxygen, O_2' '' -3
+rotate 60 120
+drop 0 0.5 0 0 -0.3 0 0.3 'm' 1 2
+sphere 0 0.5 0 0.25 'r'
+drop 0 -0.5 0 0 0.3 0 0.3 'm' 1 2
+sphere 0 -0.5 0 0.25 'r'
+subplot 2 2 3
+text 0 1.2 0 'Ammonia, NH_3' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'b'
+drop 0 0 0 0.33 0.57 0 0.32 'n' 1 2
+sphere 0.33 0.57 0 0.25 'g'
+drop 0 0 0 0.33 -0.57 0 0.32 'n' 1 2
+sphere 0.33 -0.57 0 0.25 'g'
+drop 0 0 0 -0.65 0 0 0.32 'n' 1 2
+sphere -0.65 0 0 0.25 'g'
+</pre><hr size="6">
+<a name="Advanced-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Molecules-drawing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Curvelinear-coorinates-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Advanced-features-1"></a>
+<h2 class="section">9.7 Advanced features</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Curvelinear-coorinates-sample">9.7.1 Curvelinear coorinates sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2_002daxes-sample">9.7.2 2-axes sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Semi_002dlog-sample">9.7.3 Semi-log sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Log_002dlog-sample">9.7.4 Log-log sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fitting-sample">9.7.5 Fitting sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Envelop-sample">9.7.6 Envelop sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Sew-sample">9.7.7 Sew sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#STFA-sample">9.7.8 STFA sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#PDE-sample">9.7.9 PDE sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Beam-tracing-sample">9.7.10 Beam tracing sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Parser-sample">9.7.11 Parser sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Manual-ticks-sample">9.7.12 Tick values sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ColumnPlot-sample">9.7.13 ColumnPlot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#StickPlot-sample">9.7.14 StickPlot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stereo-image-sample">9.7.15 Stereo image sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+</table>
+<hr size="6">
+<a name="Curvelinear-coorinates-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Advanced-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2_002daxes-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Curvelinear-coorinates-sample-1"></a>
+<h3 class="subsection">9.7.1 Curvelinear coorinates sample</h3>
+<a name="index-Axis-7"></a>
+<div class="float">
+<img src="../png/sample3.png" alt="../png/sample3">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Org = mglPoint(-1,1,-1);
+gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(60,40);
+gr-&gt;Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),&quot;r2&quot;,100);
+gr-&gt;Axis(); gr-&gt;Grid();
+gr-&gt;Text(mglPoint(0,1.3,1),&quot;Cartesian&quot;);
+gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(60,40);
+gr-&gt;SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;);
+gr-&gt;Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),&quot;r2&quot;,100);
+gr-&gt;Axis(); gr-&gt;Grid();
+gr-&gt;Text(mglPoint(0,1.3,1),&quot;Cylindrical&quot;);
+gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(60,40);
+gr-&gt;SetFunc(&quot;2*y*x&quot;,&quot;y*y - x*x&quot;);
+gr-&gt;Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),&quot;r2&quot;,100);
+gr-&gt;Axis(); gr-&gt;Grid();
+gr-&gt;Text(mglPoint(0,1.3,1),&quot;Parabolic&quot;);
+gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(60,40);
+gr-&gt;SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,&quot;x+z&quot;);
+gr-&gt;Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),&quot;r2&quot;,100);
+gr-&gt;Axis(); gr-&gt;Grid();
+gr-&gt;Text(mglPoint(0,1.3,1),&quot;Spiral&quot;);
+gr-&gt;Axis(0,0,0); // set to default Cartesian
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">origin -1 1 -1
+subplot 2 2 0
+rotate 60 40
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cartesian'
+subplot 2 2 1
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cylindrical'
+subplot 2 2 2
+rotate 60 40
+axis '2*y*x' 'y*y - x*x' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Parabolic'
+subplot 2 2 3
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Spiral'
+axis '' '' '' # set to default Cartesian
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">mgl_set_origin(gr,-1,1,-1);
+mgl_subplot(gr,2,2,0); mgl_rotate(gr,60,40,0);
+mgl_line(gr,-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+mgl_axis(gr,&quot;xyz&quot;); mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B&quot;);
+mgl_text(gr,0,1.3,1,&quot;Cartesian&quot;);
+mgl_subplot(gr,2,2,1); mgl_rotate(gr,60,40,0);
+mgl_set_func(gr,&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,0);
+mgl_line(gr,-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+mgl_axis(gr,&quot;xyz&quot;); mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B&quot;);
+mgl_text(gr,0,1.3,1,&quot;Cylindrical&quot;);
+mgl_subplot(gr,2,2,2); mgl_rotate(gr,60,40,0);
+mgl_set_func(gr,&quot;2*y*x&quot;,&quot;y*y - x*x&quot;,&quot;&quot;);
+mgl_line(gr,-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+mgl_axis(gr,&quot;xyz&quot;); mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B&quot;);
+mgl_text(gr,0,1.3,1,&quot;Parabolic&quot;);
+mgl_subplot(gr,2,2,3); mgl_rotate(gr,60,40,0);
+mgl_set_func(gr,&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,&quot;x+z&quot;);
+mgl_line(gr,-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+mgl_axis(gr,&quot;xyz&quot;); mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B&quot;);
+mgl_text(gr,0,1.3,1,&quot;Spiral&quot;);
+mgl_set_func(gr,0,0,0); /* set to default Cartesian */
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">call mgl_set_origin(gr,-1.,1.,-1.)
+call mgl_subplot(gr,2,2,0)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,'Cartesian')
+call mgl_subplot(gr,2,2,1)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_set_func(gr,'y*sin(pi*x)','y*cos(pi*x)','')
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,'Cylindrical')
+call mgl_subplot(gr,2,2,2)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_set_func(gr,'2*y*x','y*y - x*x','')
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,&quot;Parabolic&quot;)
+call mgl_subplot(gr,2,2,3)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_set_func(gr,'y*sin(pi*x)','y*cos(pi*x)','x+z')
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,'Spiral')
+call mgl_set_func(gr,'','','') ! set to default Cartesian
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">gr.SetOrigin(-1,1,-1);
+gr.SubPlot(2,2,0);              gr.Rotate(60,40);
+gr.Line(-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+gr.Axis();              gr.Grid();
+gr.Puts(0,1.3,1,&quot;Gartesian&quot;,&quot;rC&quot;,-1.5);
+gr.SubPlot(2,2,1);  gr.Rotate(60,40);
+gr.SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;);
+gr.Line(-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+gr.Axis();          gr.Grid();
+gr.Puts(0,1.3,1,&quot;Cylindrical&quot;,&quot;rC&quot;,-1.5);
+gr.SubPlot(2,2,2);  gr.Rotate(60,40);
+gr.SetFunc(&quot;2*y*x&quot;,&quot;y*y-x*x&quot;);
+gr.Line(-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+gr.Axis();          gr.Grid();
+gr.Puts(0,1.3,1,&quot;Parabolic&quot;,&quot;rC&quot;,-1.5);
+gr.SubPlot(2,2,3);  gr.Rotate(60,40);
+gr.SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,&quot;x+z&quot;);
+gr.Line(-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+gr.Axis();          gr.Grid();
+gr.Puts(0,1.3,1,&quot;Spiral&quot;,&quot;rC&quot;,-1.5);
+gr.SetFunc(&quot;&quot;,&quot;&quot;);   # set to default Gartesian
+</pre><hr size="6">
+<a name="g_t2_002daxes-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Curvelinear-coorinates-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Semi_002dlog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2_002daxes-sample-1"></a>
+<h3 class="subsection">9.7.2 2-axes sample</h3>
+<a name="index-Axis-8"></a>
+<div class="float">
+<img src="../png/2_axis.png" alt="../png/2_axis">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y1(50), y2(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;); y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,-1,-1));
+gr-&gt;Axis(); gr-&gt;Label('y',&quot;axis 1&quot;,0);
+gr-&gt;Plot(y1,&quot;b&quot;);
+gr-&gt;Axis(mglPoint(0,0,0),mglPoint(1,1,1),mglPoint(1,1,1));
+gr-&gt;Axis(); gr-&gt;Label('y',&quot;axis 2&quot;,0);
+gr-&gt;Stem(y2,&quot;r&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+axis -1 -1 -1 1 1 1
+origin -1 -1 -1
+axis
+ylabel 'axis 1' 0
+plot y1 'b'
+axis 0 0 0 1 1 1
+origin 1 1 1
+axis
+ylabel 'axis 2' 0
+stem y2 'r'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_set_axis_2d(gr,-1.,1.,-1.,1.);
+mgl_set_origin(gr,-1.,-1.,-1.);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_label_ext(gr,'y',&quot;axis 1&quot;,0,-1.4,0.);
+mgl_plot(gr,y1,&quot;b&quot;);
+mgl_set_axis_2d(gr,0.,0.,1.,1.);
+mgl_set_origin(gr,1.,1.,1.);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_label_ext(gr,'y',&quot;axis 2&quot;,0,-1.4,0.);
+mgl_stem(gr,y2,&quot;r&quot;);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y1,y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1)
+y2 = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y1,'0.3*sin(2*pi*x)',0)
+call mgl_data_modify(y2,'0.5+0.3*cos(2*pi*x)',0)
+call mgl_set_axis_2d(gr,-1.,1.,-1.,1.)
+call mgl_set_origin(gr,-1.,-1.,-1.)
+call mgl_axis(gr,'xyz')
+call mgl_label_ext(gr,'y','axis 1',0,-1.4,0.)
+call mgl_plot(gr,y1,'b')
+call mgl_set_axis_2d(gr,0.,0.,1.,1.)
+call mgl_set_origin(gr,1.,1.,1.)
+call mgl_axis(gr,'xyz')
+call mgl_label_ext(gr,'y','axis 2',0,-1.4,0.)
+call mgl_stem(gr,y2,'r')
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y1, y2 = mglData(50), mglData(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);   y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.SetRanges(-1,1,-1,1);   gr.SetOrigin(-1,-1);
+gr.Axis();      gr.Label(&quot;y&quot;,&quot;axis 1&quot;,0);
+gr.Plot(y1,&quot;b&quot;);
+gr.SetRanges(0,1,0,1);      gr.SetOrigin(1,1);
+gr.Axis();      gr.Label(&quot;y&quot;,&quot;axis 2&quot;,0);
+gr.Stem(y2,&quot;r&quot;);
+</pre><hr size="6">
+<a name="Semi_002dlog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2_002daxes-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Log_002dlog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Semi_002dlog-sample-1"></a>
+<h3 class="subsection">9.7.3 Semi-log sample</h3>
+<a name="index-Axis-9"></a>
+<a name="index-SetTicks-2"></a>
+<a name="index-Plot-10"></a>
+<div class="float">
+<img src="../png/semilog.png" alt="../png/semilog">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData x(2000), y(2000);
+x.Modify(&quot;0.01/(x+10^(-5))&quot;); y.Modify(&quot;sin(1/v)&quot;,x);
+gr-&gt;Axis(mglPoint(0.01,-1),mglPoint(1000,1),mglPoint(0.01,-1));
+gr-&gt;SetFunc(&quot;lg(x)&quot;,0);  gr-&gt;SetTicks('x',0);
+gr-&gt;Box();
+gr-&gt;Plot(x,y,&quot;b2&quot;);
+gr-&gt;Axis(); gr-&gt;Grid(&quot;xy&quot;,&quot;g&quot;);
+gr-&gt;Label('x',&quot;x&quot;,0);   gr-&gt;Label('y', &quot;y = sin 1/x&quot;,0);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new x 2000
+new y 2000
+modify x '0.01/(x+10^(-5))'
+modify y 'sin(1/v)' x
+xrange 0.01 1000
+origin 0.01 -1 0
+xtick 0
+axis 'lg(x)' '' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g'
+xlabel 'x' 0
+ylabel 'y = sin 1/x' 0
+box
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT x = mgl_create_data_size(2000,1,1);
+HMDT y = mgl_create_data_size(2000,1,1);
+mgl_data_modify(x,&quot;0.01/(x+10^(-5))&quot;,0);
+mgl_data_modify_vw(y,&quot;sin(1/v)&quot;,x,0);
+mgl_set_axis(gr,0.01,-1.,0.,1000.,1.,0.,0.01,-1.,0.);
+mgl_set_func(gr,&quot;lg(x)&quot;,0,0);
+mgl_set_ticks(gr,0.,-5.,-5.);
+mgl_box(gr,1);
+mgl_plot_xy(gr,x,y,&quot;b2&quot;);
+mgl_axis(gr,&quot;xy&quot;); mgl_axis_grid(gr,&quot;xy&quot;,&quot;g&quot;);
+mgl_label_ext(gr,'x',&quot;x&quot;,0,-1.4,0);
+mgl_label_ext(gr,'y', &quot;y = sin 1/x&quot;,0,-1.4,0);
+mgl_delete_data(x); mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer x,y, mgl_create_data_size
+x = mgl_create_data_size(2000,1,1)
+y = mgl_create_data_size(2000,1,1)
+call mgl_data_modify(x,'0.01/(x+10^(-5))',0)
+call mgl_data_modify_vw(y,'sin(1/v)',x,x)
+call mgl_set_axis(gr,0.01,-1.,0.,1000.,1.,0.,0.01,-1.,0.)
+call mgl_set_func(gr,'lg(x)','','')
+call mgl_set_ticks(gr,0.,-5.,-5.)
+call mgl_box(gr,1)
+call mgl_plot_xy(gr,x,y,'b2')
+call mgl_axis(gr,'xy')
+call mgl_axis_grid(gr,'xy','g')
+call mgl_label_ext(gr,'x','x',0.,-1.4,0.)
+call mgl_label_ext(gr,'y', 'y = sin 1/x',0.,-1.4,0.)
+call mgl_delete_data(x)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">TO BE DONE
+</pre><hr size="6">
+<a name="Log_002dlog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Semi_002dlog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fitting-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Log_002dlog-sample-1"></a>
+<h3 class="subsection">9.7.4 Log-log sample</h3>
+<a name="index-Axis-10"></a>
+<a name="index-SetTicks-3"></a>
+<a name="index-Plot-11"></a>
+<div class="float">
+<img src="../png/loglog.png" alt="../png/loglog">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData x(100), y(100);
+x.Modify(&quot;pow(10,6*x-3)&quot;); y.Modify(&quot;sqrt(1+v^2)&quot;,x);
+gr-&gt;Axis(mglPoint(0.001,0.1),mglPoint(1000,1000),mglPoint(0.001,0.1));
+gr-&gt;SetFunc(&quot;lg(x)&quot;,&quot;lg(y)&quot;);
+gr-&gt;SetTicks('x',0);    gr-&gt;SetTicks('y',0);
+gr-&gt;Box();
+gr-&gt;Plot(x,y,&quot;b2&quot;);
+gr-&gt;Axis(); gr-&gt;Grid(&quot;xy&quot;,&quot;g;&quot;);
+gr-&gt;Label('x',&quot;x&quot;,0); gr-&gt;Label('y', &quot;y=\\sqrt{1+x^2}&quot;,0);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new x 100
+new y 100
+modify x 'pow(10,6*x-3)'
+modify y 'sqrt(1+v^2)' x
+axis 0.001 0.1 1000 1000
+xtick 0
+ytick 0
+axis 'lg(x)' 'lg(y)' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g;'
+xlabel 'x' 0
+ylabel 'y=\sqrt{1+x^2}' 0
+box
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT x = mgl_create_data_size(100,1,1);
+HMDT y = mgl_create_data_size(100,1,1);
+mgl_data_modify(x,&quot;pow(10,6*x-3)&quot;,0);
+mgl_data_modify_vw(y,&quot;sqrt(1+v^2)&quot;,x,0);
+mgl_set_axis(gr,0.001,0.1,0.,1000.,1000.,0.,0.001,0.1,0.);
+mgl_set_func(gr,&quot;lg(x)&quot;,&quot;lg(y)&quot;,0);
+mgl_set_ticks(gr,0.,0.,-5.);
+mgl_box(gr,1);
+mgl_plot_xy(gr,x,y,&quot;b2&quot;);
+mgl_axis(gr,&quot;xy&quot;); mgl_axis_grid(gr,&quot;xy&quot;,&quot;g;&quot;);
+mgl_label_ext(gr,'x',&quot;x&quot;,0,-1.4,0);
+mgl_label_ext(gr,'y', &quot;y=\\sqrt{1+x^2}&quot;,0,-1.4,0);
+mgl_delete_data(x); mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer x,y, mgl_create_data_size
+x = mgl_create_data_size(100,1,1)
+y = mgl_create_data_size(100,1,1)
+call mgl_data_modify(x,'pow(10,6*x-3)',0)
+call mgl_data_modify_vw(y,'sqrt(1+v^2)',x,x)
+call mgl_set_axis(gr,0.001,0.1,0.,1000.,1000.,0.,0.001,0.1,0.)
+call mgl_set_func(gr,'lg(x)','lg(y)','')
+call mgl_set_ticks(gr,0.,0.,-5.)
+call mgl_box(gr,1)
+call mgl_plot_xy(gr,x,y,'b2')
+call mgl_axis(gr,'xy')
+call mgl_axis_grid(gr,'xy','g;')
+call mgl_label_ext(gr,'x','x',0.,-1.4,0)
+call mgl_label_ext(gr,'y', 'y=\sqrt{1+x^2}',0.,-1.4,0)
+call mgl_delete_data(x)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">x, y = mglData(100), mglData(100);
+x.Modify(&quot;pow(10,6*x-3)&quot;);          y.Modify(&quot;sqrt(1+v^2)&quot;,x);
+gr.SetRanges(0.001,1000,0.1,1000);  gr.SetOrigin(0.001,0.1);
+gr.SetFunc(&quot;lg(x)&quot;,&quot;lg(y)&quot;);
+gr.SetTicks(&quot;x&quot;,0);     gr.SetTicks(&quot;y&quot;,0);
+gr.Box();               gr.Plot(x,y,&quot;b2&quot;);
+gr.Axis();              gr.Grid(&quot;xy&quot;,&quot;g;&quot;);
+gr.Label(&quot;x&quot;,&quot;x&quot;,0);    gr.Label(&quot;y&quot;,&quot;y=\\sqrt{1+x^2}&quot;,0);
+</pre><hr size="6">
+<a name="Fitting-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Log_002dlog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Envelop-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fitting-sample-1"></a>
+<h3 class="subsection">9.7.5 Fitting sample</h3>
+<a name="index-Fit-9"></a>
+<a name="index-PutsFit-2"></a>
+<div class="float">
+<img src="../png/fit.png" alt="../png/fit">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData rnd(100), in(100), res;
+rnd.Fill(&quot;0.4*rnd+0.1+sin(2*pi*x)&quot;, gr-&gt;Min, gr-&gt;Max);
+in.Fill(&quot;0.3+sin(2*pi*x)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Axis(mglPoint(-1,-2), mglPoint(1,2));
+gr-&gt;Plot(rnd, &quot;. &quot;);
+gr-&gt;Box();
+float ini[3] = {1,1,3};
+gr-&gt;Fit(res, rnd, &quot;a+b*sin(c*x)&quot;, &quot;abc&quot;, ini);
+gr-&gt;Plot(res, &quot;r&quot;);
+gr-&gt;Plot(in, &quot;b&quot;);
+gr-&gt;Text(mglPoint(-1, -1.3), &quot;fitted:&quot;, &quot;L:r&quot;, -1);
+gr-&gt;PutsFit(mglPoint(0, -1.8), &quot;y = &quot;, &quot;C:r&quot;, -1);
+gr-&gt;Text(mglPoint(0, 2.2), &quot;initial: y = 0.3+sin(2\\pi x)&quot;, &quot;C:b&quot;, -1);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new rnd 100
+fill rnd '0.4*rnd+0.1+sin(2*pi*x)'
+new in 100
+fill in '0.3+sin(2*pi*x)'
+yrange -2 2
+plot rnd '. '
+box
+list ini 1 1 3
+fit res rnd 'a+b*sin(c*x)' 'abc' ini
+plot res 'r'
+plot in 'b'
+text -1 -1.3 'fitted:' 'L:r' -1
+putsfit 0 -1.8 'y = ' 'C:r'
+text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT rnd,in,res;
+float ini[3] = {1,1,3};
+rnd = mgl_create_data_size(100,1,1);
+in = mgl_create_data_size(100,1,1);
+res = mgl_create_data();
+mgl_data_modify(rnd,&quot;0.4*rnd+0.1+sin(4*pi*x)&quot;,0);
+mgl_data_modify(in,&quot;0.3+sin(4*pi*x)&quot;,0);
+mgl_set_axis_2d(gr,-1.,-2.,1.,2.);
+mgl_plot(gr,rnd,&quot;. &quot;);
+mgl_box(gr,1);
+mgl_fit_1(gr,res,rnd,&quot;a+b*sin(c*x)&quot;,&quot;abc&quot;,ini);
+mgl_plot(gr,res,&quot;r&quot;);   mgl_plot(gr,in,&quot;b&quot;);
+mgl_puts_ext(gr,-1.,-1.3,0.,&quot;fitted:&quot;,&quot;L:r&quot;,-1.,'t');
+mgl_puts_fit(gr,0.,-1.8,0.,&quot;y = &quot;,&quot;C:r&quot;,-1.);
+mgl_puts_ext(gr,0.,2.2,0.,&quot;initial: y = 0.3+sin(2\\pi x)&quot;,&quot;C:b&quot;, -1., 't');
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer rnd,in,res, mgl_create_data_size
+real ini(3)
+ini(1)=1;   ini(2)=1;   ini(3)=3;
+rnd = mgl_create_data_size(100,1,1);
+in = mgl_create_data_size(100,1,1);
+res = mgl_create_data();
+call mgl_data_modify(rnd,&quot;0.4*rnd+0.1+sin(4*pi*x)&quot;,0);
+call mgl_data_modify(in,&quot;0.3+sin(4*pi*x)&quot;,0);
+call mgl_set_axis_2d(gr,-1.,-2.,1.,2.);
+call mgl_plot(gr,rnd,&quot;. &quot;);
+call mgl_box(gr,1);
+call mgl_fit_1(gr,res,rnd,&quot;a+b*sin(c*x)&quot;,&quot;abc&quot;,ini);
+call mgl_plot(gr,res,&quot;r&quot;);
+call mgl_plot(gr,in,&quot;b&quot;);
+call mgl_puts_ext(gr,-1.,-1.3,0.,&quot;fitted:&quot;,&quot;L:r&quot;,-1.,'t');
+call mgl_puts_fit(gr,0.,-1.8,0.,&quot;y = &quot;,&quot;C:r&quot;,-1.);
+call mgl_puts_ext(gr,0.,2.2,0.,&quot;initial: y = 0.3+sin(2\\pi x)&quot;,&quot;C:b&quot;, -1., 't');
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">rnd, In, res, ini = mglData(100), mglData(100), mglData(), mglData(3);
+rnd.Modify(&quot;0.4*rnd+0.1+sin(4*pi*x)&quot;);
+In.Modify(&quot;0.3+sin(4*pi*x)&quot;);
+gr.SetRanges(-1,1,-2,2);
+gr.Plot(rnd,&quot;. &quot;);
+gr.Box();
+ini[0], ini[1], ini[2] = 1, 1, 3;
+gr.Fit(res,rnd,&quot;a+b*sin(c*x)&quot;,&quot;abc&quot;,ini);
+gr.Plot(res,&quot;r&quot;);   gr.Plot(In,&quot;b&quot;);
+gr.Puts(-1,-1.3,0,&quot;fitted:&quot;,&quot;L:r&quot;,-1);
+gr.PutsFit(0,-1.8,0,&quot;y = &quot;,&quot;C:r&quot;,-1);
+gr.Puts(0,2.2,0,&quot;initial: y = 0.3+sin(2\\pi x)&quot;,&quot;C:b&quot;,-1);
+</pre><hr size="6">
+<a name="Envelop-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fitting-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Sew-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Envelop-sample-1"></a>
+<h3 class="subsection">9.7.6 Envelop sample</h3>
+<a name="index-Envelop-2"></a>
+<div class="float">
+<img src="../png/envelop.png" alt="../png/envelop">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(1000);
+a.Fill(&quot;exp(-8*x^2)*sin(10*pi*x)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Plot(a, &quot;b&quot;);
+a.Envelop('x');
+gr-&gt;Plot(a, &quot;r&quot;);
+gr-&gt;Axis();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 1000
+fill a 'exp(-8*x^2)*sin(10*pi*x)'
+plot a 'b'
+envelop a
+plot a 'r'
+axis
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(1000,1,1);
+mgl_data_fill_eq(gr,a, &quot;exp(-8*x^2)*sin(10*pi*x)&quot;, 0,0);
+mgl_plot(gr,a,&quot;b&quot;);
+mgl_data_envelop(a,'x');
+mgl_plot(gr,a,&quot;r&quot;);
+mgl_axis(gr,&quot;xyz&quot;);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(1000,1,1)
+call mgl_data_fill_eq(gr,a, 'exp(-8*x^2)*sin(10*pi*x)', 0,0)
+call mgl_plot(gr,a,'b')
+call mgl_data_envelop(a,'x')
+call mgl_plot(gr,a,'r')
+call mgl_axis(gr,'xyz')
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(1000);
+gr.Fill(a, &quot;exp(-8*x^2)*sin(10*pi*x)&quot;);
+gr.Plot(a,&quot;b&quot;);
+a.Envelop(&quot;x&quot;);
+gr.Plot(a,&quot;r&quot;);
+gr.Axis();
+</pre><hr size="6">
+<a name="Sew-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Envelop-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#STFA-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Sew-sample-1"></a>
+<h3 class="subsection">9.7.7 Sew sample</h3>
+<a name="index-Sew-2"></a>
+<div class="float">
+<img src="../png/sew.png" alt="../png/sew">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(100, 100);
+a.Modify(&quot;mod((y^2-(1-x)^2)/2,0.1)&quot;);
+gr-&gt;Rotate(40, 60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Surf(a, &quot;b&quot;);
+a.Sew(&quot;xy&quot;, 0.1);
+gr-&gt;Surf(a, &quot;r&quot;);
+gr-&gt;Box();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 100 100
+modify a 'mod((y^2-(1-x)^2)/2,0.1)'
+rotate 40 60
+light on
+alpha on
+surf a 'b'
+sew a 'xy' 0.1
+surf a 'r'
+box
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(100,100,1);
+mgl_data_modify(a, &quot;mod((y^2-(1-x)^2)/2, 0.1)&quot;, 0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_surf(gr,a,&quot;b&quot;);
+mgl_data_sew(a,&quot;xy&quot;,0.1);
+mgl_surf(gr,a,&quot;r&quot;);
+mgl_box(gr,1);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(100,100,1)
+call mgl_data_modify(a, 'mod((y^2-(1-x)^2)/2, 0.1)', 0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_surf(gr,a,'b')
+call mgl_data_sew(a,'xy',0.1)
+call mgl_surf(gr,a,'r')
+call mgl_box(gr,1)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(100, 100);
+a.Modify(&quot;mod((y^2-(1-x)^2)/2, 0.1)&quot;);
+gr.Rotate(40, 60);  gr.Light(True);     gr.Alpha(True);
+gr.Surf(a, &quot;b&quot;);
+a.Sew(&quot;xy&quot;, 0.1);
+gr.Surf(a, &quot;r&quot;);
+gr.Box();
+</pre><hr size="6">
+<a name="STFA-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Sew-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#PDE-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="STFA-sample-1"></a>
+<h3 class="subsection">9.7.8 STFA sample</h3>
+<a name="index-STFA-3"></a>
+<div class="float">
+<img src="../png/stfa.png" alt="../png/stfa">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(2000), b(2000);
+a.Fill(&quot;cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+ \
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)&quot;, 
+        gr-&gt;Min, gr-&gt;Max);
+gr-&gt;SubPlot(1, 2, 0);
+gr-&gt;Plot(a);
+gr-&gt;Axis();
+gr-&gt;Label('x', &quot;\\i t&quot;);
+gr-&gt;SubPlot(1, 2, 1);
+gr-&gt;STFA(a, b, 64);
+gr-&gt;Axis();
+gr-&gt;Label('x', &quot;\\i t&quot;);
+gr-&gt;Label('y', &quot;\\omega&quot;, 0);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 2000
+new b 2000
+fill a 'cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)'
+subplot 1 2 0
+plot a
+axis
+xlabel '\i t'
+subplot 1 2 1
+stfa a b 64 ''
+axis
+ylabel '\omega' 0
+xlabel '\i t'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(2000,1,1);
+HMDT b = mgl_create_data_size(2000,1,1);
+mgl_data_fill_eq(gr, a, &quot;cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+ \
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)&quot;,0,0);
+mgl_subplot(gr,1,2,0);
+mgl_plot(gr,a,&quot;&quot;);
+mgl_axis(gr,&quot;xy&quot;);
+mgl_label(gr,'x', &quot;\\i t&quot;);
+mgl_subplot(gr,1,2,1);
+mgl_stfa(gr,a,b,64,&quot;&quot;,0.);
+mgl_axis(gr,&quot;xy&quot;);
+mgl_label(gr,'x', &quot;\\i t&quot;);
+mgl_label(gr,'y', &quot;\\omega&quot;);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(2000,1,1)
+b = mgl_create_data_size(2000,1,1)
+call mgl_data_fill_eq(gr, a, 'cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+ &amp;
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)',0,0)
+call mgl_subplot(gr,1,2,0)
+call mgl_plot(gr,a,'')
+call mgl_axis(gr,'xy')
+call mgl_label(gr,'x', '\i t')
+call mgl_subplot(gr,1,2,1)
+call mgl_stfa(gr,a,b,64,'',0.)
+call mgl_axis(gr,'xy')
+call mgl_label(gr,'x', '\i t')
+call mgl_label(gr,'y', '\omega')
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(2000), mglData(2000);
+gr.Fill(a,&quot;cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+ \
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)&quot;);
+gr.SubPlot(1, 2, 0);
+gr.Plot(a);
+gr.Axis();
+gr.Label('x', &quot;\\i t&quot;);
+gr.SubPlot(1, 2, 1);
+gr.STFA(a, b, 64);
+gr.Axis();
+gr.Label('x', &quot;\\i t&quot;);
+gr.Label('y', &quot;\\omega&quot;, 0);
+</pre><hr size="6">
+<a name="PDE-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#STFA-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Beam-tracing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="PDE-sample-1"></a>
+<h3 class="subsection">9.7.9 PDE sample</h3>
+<a name="index-mglPDE-1"></a>
+<a name="index-mglRay-1"></a>
+<div class="float">
+<img src="../png/pde.png" alt="../png/pde">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a,re(128),im(128);
+gr-&gt;Axis();
+gr-&gt;Label('x', &quot;\\i x&quot;);
+gr-&gt;Label('y', &quot;\\i z&quot;);
+	
+re.Fill(&quot;exp(-48*(x+0.7)^2)&quot;, gr-&gt;Min, gr-&gt;Max);
+a = mglPDE(&quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;, re, im, gr-&gt;Min, gr-&gt;Max, 0.01, 30);
+a.Transpose(&quot;yxz&quot;);
+gr-&gt;CAxis(0, 1);
+gr-&gt;Dens(a,&quot;wyrRk&quot;);
+gr-&gt;Plot(&quot;-x&quot;, &quot;k|&quot;);
+gr-&gt;Puts(mglPoint(0, 0.85), &quot;absorption: (x+z)/2 for x+z&gt;0&quot;);
+gr-&gt;Title(&quot;\\r{Equation:} ik_0\\partial_zu + \\Delta u + x\\cdot u + \
+i \\frac{x+z}{2}\\cdot u = 0&quot;, &quot;iC&quot;, -1.5);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+fill re 'exp(-48*(x+0.7)^2)'
+pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)' re im 0.01 30
+transpose a
+crange 0 1
+dens a 'wyrRk'
+fplot '-x' 'k|'
+text 0 0.85 'absorption: (x+z)/2 for x+z&gt;0' '' -1
+title 'Equation: ik_0\partial_zu + \Delta u + x\cdot u + i \frac{x+z}{2}\cdot u = 0' 'iC' -1.5
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data();
+HMDT re = mgl_create_data_size(128,1,1);
+HMDT im = mgl_create_data_size(128,1,1);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_label(gr,'x', &quot;\\i x&quot;);
+mgl_label(gr,'y', &quot;\\i z&quot;);
+mgl_data_fill_eq(gr,re,&quot;exp(-48*(x+0.7)^2)&quot;, 0, 0);
+a = mgl_pde_solve(gr, &quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;, re, im, 0.01, 30.);
+mgl_data_transpose(a, &quot;yxz&quot;);
+mgl_set_caxis(gr, 0, 1);
+mgl_dens(gr, a,&quot;wyrRk&quot;, -1.);
+mgl_fplot(gr, &quot;-x&quot;, &quot;k|&quot;, 100);
+mgl_puts(gr, 0., 0.85, 0., &quot;absorption: (x+z)/2 for x+z&gt;0&quot;);
+mgl_title(gr, &quot;\\r{Equation:} ik_0\\partial_zu + \\Delta u + x\\cdot u + \
+i \\frac{x+z}{2}\\cdot u = 0&quot;, &quot;iC&quot;, -1.5);
+mgl_delete_data(a);
+mgl_delete_data(im);
+mgl_delete_data(re);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,re,im, mgl_create_data_size
+a = mgl_create_data()
+re = mgl_create_data_size(128,1,1)
+im = mgl_create_data_size(128,1,1)
+call mgl_axis(gr,'xyz')
+call mgl_label(gr,'x', '\i x')
+call mgl_label(gr,'y', '\i z')
+call mgl_data_fill_eq(gr,re,'exp(-48*(x+0.7)^2)', 0, 0)
+a = mgl_pde_solve(gr, 'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)', re, im, 0.01, 30.)
+call mgl_data_transpose(a, 'yxz')
+call mgl_set_caxis(gr, 0., 1.)
+call mgl_dens(gr, a,'wyrRk', -1.)
+call mgl_fplot(gr, '-x', 'k|', 100)
+call mgl_puts(gr, 0., 0.85, 0., 'absorption: (x+z)/2 for x+z&gt;0')
+call mgl_title(gr, '\r{Equation:} ik_0\partial_zu + \Delta u + x\cdot u + &amp;
+i \frac{x+z}{2}\cdot u = 0', 'iC', -1.5)
+call mgl_delete_data(a)
+call mgl_delete_data(im)
+call mgl_delete_data(re)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, re, im = mglData(), mglData(128), mglData(128);
+gr.Axis();
+gr.Label('x', &quot;\\i x&quot;);
+gr.Label('y', &quot;\\i z&quot;);
+	
+gr.Fill(re,&quot;exp(-48*(x+0.7)^2)&quot;);
+a = gr.PDE(&quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;, re, im, 0.01, 30);
+a.Transpose(&quot;yxz&quot;);
+gr.SetCRange(0, 1);
+gr.Dens(a,&quot;wyrRk&quot;);
+gr.Plot(&quot;-x&quot;, &quot;k|&quot;);
+gr.Puts(0, 0.85, 0., &quot;absorption: (x+z)/2 for x+z&gt;0&quot;);
+gr.Title(&quot;\\r{Equation:} ik_0\\partial_zu + \\Delta u + x\\cdot u + \
+i \\frac{x+z}{2}\\cdot u = 0&quot;, &quot;iC&quot;, -1.5);
+</pre><hr size="6">
+<a name="Beam-tracing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#PDE-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Parser-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Beam-tracing-sample-1"></a>
+<h3 class="subsection">9.7.10 Beam tracing sample</h3>
+<a name="index-mglQO2d-1"></a>
+<a name="index-mglRay-2"></a>
+<div class="float">
+<img src="../png/qo2d.png" alt="../png/qo2d">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData r, xx, yy, a, im(128), re(128);
+const char *ham = &quot;p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)&quot;;
+r = mglRay(ham, mglPoint(-0.7, -1), mglPoint(0, 0.5), 0.02, 2);
+gr-&gt;Plot(r.SubData(0), r.SubData(1), &quot;k&quot;);
+gr-&gt;Axis();	gr-&gt;Label('x', &quot;\\i x&quot;);	gr-&gt;Label('y', &quot;\\i z&quot;);
+// now start beam tracing
+re.Fill(&quot;exp(-48*x^2)&quot;, gr-&gt;Min, gr-&gt;Max);
+a = mglQO2d(ham, re, im, r, 1, 30, &amp;xx, &amp;yy);
+gr-&gt;CAxis(0, 1);
+gr-&gt;Dens(xx, yy, a, &quot;wyrRk&quot;);
+gr-&gt;Plot(&quot;-x&quot;, &quot;k|&quot;);
+gr-&gt;Puts(mglPoint(0, 0.85), &quot;absorption: (x+y)/2 for x+y&gt;0&quot;);
+gr-&gt;Puts(mglPoint(0.7, -0.05), &quot;central ray&quot;);
+gr-&gt;Title(&quot;Beam and ray tracing&quot;, &quot;C&quot;, -1.5);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)'
+ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
+plot r(0) r(1) 'k'
+axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+new xx
+new yy
+fill re 'exp(-48*x^2)'
+qo2d a $1 re im r 1 30 xx yy 
+crange 0 1
+dens xx yy a 'wyrRk'
+fplot '-x' 'k|'
+text -0.8 0.85 'absorption: (x+y)/2 for x+y&gt;0' 'L' -1
+text 0.5 -0.05 'central ray' 'L' -1
+title 'Beam and ray tracing' 'C' -1.5
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">const char *ham = &quot;p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)&quot;;
+HMDT r, xx, yy, a, im, re;
+im = mgl_create_data_size(128,1,1);
+re = mgl_create_data_size(128,1,1);
+r = mgl_ray_trace(ham, -0.7, -1., 0., 0., 0.5, 0., 0.02, 2.);
+xx = mgl_data_subdata(r,0,-1,-1);
+yy = mgl_data_subdata(r,1,-1,-1);
+mgl_plot_xy(gr, xx, yy, &quot;k&quot;);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_label(gr,'x',&quot;\\i x&quot;);
+mgl_label(gr,'y',&quot;\\i z&quot;);
+mgl_data_fill_eq(gr,re,&quot;exp(-48*x^2)&quot;, 0, 0);
+a = mgl_qo2d_solve(ham, re, im, r, 1, 30, xx, yy);
+mgl_set_caxis(gr,0.,1.);
+mgl_dens_xy(gr,xx, yy, a, &quot;wyrRk&quot;, -1.);
+mgl_fplot(gr,&quot;-x&quot;, &quot;k|&quot;,100);
+mgl_puts(gr, 0., 0.85, 0., &quot;absorption: (x+y)/2 for x+y&gt;0&quot;);
+mgl_puts(gr, 0.7, -0.05, 0., &quot;central ray&quot;);
+mgl_title(gr, &quot;Beam and ray tracing&quot;, &quot;C&quot;, -1.5);
+mgl_delete_data(a);     mgl_delete_data(r);
+mgl_delete_data(xx);    mgl_delete_data(yy);
+mgl_delete_data(im);    mgl_delete_data(re);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer r, xx, yy, a, im, re, mgl_create_data_size
+integer mgl_data_subdata, mgl_ray_trace, mgl_qo2d_solve
+character*64 ham
+ham = 'p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)'
+im = mgl_create_data_size(128,1,1)
+re = mgl_create_data_size(128,1,1)
+r = mgl_ray_trace(ham, -0.7, -1., 0., 0., 0.5, 0., 0.02, 2.)
+xx = mgl_data_subdata(r,0,-1,-1)
+yy = mgl_data_subdata(r,1,-1,-1)
+call mgl_plot_xy(gr, xx, yy, 'k')
+call mgl_axis(gr,'xyz')
+call mgl_label(gr,'x','\i x')
+call mgl_label(gr,'y','\i z')
+call mgl_data_fill_eq(gr,re,'exp(-48*x^2)', 0, 0)
+a = mgl_qo2d_solve(ham, re, im, r, 1., 30., xx, yy)
+call mgl_set_caxis(gr,0.,1.)
+call mgl_dens_xy(gr,xx, yy, a, 'wyrRk', -1.)
+call mgl_fplot(gr,'-x', 'k|',100)
+call mgl_puts(gr, 0., 0.85, 0., 'absorption: (x+y)/2 for x+y&gt;0')
+call mgl_puts(gr, 0.7, -0.05, 0., 'central ray')
+call mgl_title(gr, 'Beam and ray tracing', 'C', -1.5)
+call mgl_delete_data(a)
+call mgl_delete_data(r)
+call mgl_delete_data(xx)
+call mgl_delete_data(yy)
+call mgl_delete_data(im)
+call mgl_delete_data(re)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ham = &quot;p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)&quot;;
+r, xx, yy, a = mglData(), mglData(), mglData(), mglData();
+im, re = mglData(128), mglData(128);
+r = mglRay(ham, mglPoint(-0.7, -1), mglPoint(0, 0.5), 0.02, 2);
+gr.Plot(r.SubData(0), r.SubData(1), &quot;k&quot;);
+gr.Axis();	gr.Label('x', &quot;\\i x&quot;);	gr.Label('y', &quot;\\i z&quot;);
+gr.Fill(re,&quot;exp(-48*x^2)&quot;);
+a = mglQO2d(ham, re, im, r, 1, 30, xx, yy);
+gr.SetCRange(0, 1);
+gr.Dens(xx, yy, a, &quot;wyrRk&quot;);
+gr.Plot(&quot;-x&quot;, &quot;k|&quot;);
+gr.Puts(0, 0.85, 0, &quot;absorption: (x+y)/2 for x+y&gt;0&quot;);
+gr.Puts(0.7, -0.05, 0, &quot;central ray&quot;);
+gr.Title(&quot;Beam and ray tracing&quot;, &quot;C&quot;, -1.5);
+</pre><hr size="6">
+<a name="Parser-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Beam-tracing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Manual-ticks-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Parser-sample-1"></a>
+<h3 class="subsection">9.7.11 Parser sample</h3>
+<a name="index-mglParse-2"></a>
+<div class="float">
+<img src="../png/parser.png" alt="../png/parser">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">float a[100];   // let a_i = sin(4*pi*x), x=0...1
+for(int i=0;i&lt;100;i++) a[i]=sin(4*M_PI*i/99);
+mglParse *parser = new mglParse;
+mglData &amp;d = (parser-&gt;AddVar(&quot;dat&quot;))-&gt;d;
+d.Set(a,100);   // set data to variable
+parser-&gt;Execute(gr, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+// you may break script at any line do something
+// and continue after that
+parser-&gt;Execute(gr, &quot;xlabel 'x'\nylabel 'y'\nbox&quot;);
+// also you may use cycles or conditions in script
+parser-&gt;Execute(gr, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">float a[100];   /* let a_i = sin(4*pi*x), x=0...1 */
+int i;
+for(i=0;i&lt;100;i++)  a[i]=sin(4*M_PI*i/99);
+HMPR parser = mgl_create_parser();
+HMDT d = mgl_add_var(parser, &quot;dat&quot;);
+mgl_data_set_float(d,a,100,1,1);    /* set data to variable */
+mgl_parse_text(gr, parser, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+/* you may break script at any line do something 
+   and continue after that */
+mgl_parse_text(gr, parser, &quot;xlabel 'x'\nylabel 'y'&quot;);
+/* also you may use cycles or conditions in script */
+mgl_parse_text(gr, parser, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer i,parser,d, mgl_create_data_size, mgl_create_parser
+real a(100)
+! let a_i = sin(4*pi*x), x=0...1
+do i = 1,100
+    a(i)=sin(4*3.1415926*(i-1)/99)
+end do
+parser = mgl_create_parser()
+d = mgl_add_var(parser, &quot;dat&quot;)
+call mgl_data_set_real(d,a,100,1,1)    ! set data to variable
+! I don't know how put new line ('\n') into fortran string
+! So call mgl_parse_text() for each string :(
+call mgl_parse_text(gr, parser, &quot;plot dat; xrange 0 1&quot;)
+call mgl_parse_text(gr, parser, &quot;box&quot;)
+call mgl_parse_text(gr, parser, &quot;axis&quot;)
+! you may break script at any line do something 
+! and continue after that
+call mgl_parse_text(gr, parser, &quot;xlabel 'x'&quot;)
+call mgl_parse_text(gr, parser, &quot;ylabel 'y'&quot;)
+! there is now conditions because I don't know 
+! how to send several string into parser at once :(
+!! also you may use cycles or conditions in script
+!call mgl_parse_text(gr, parser, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;)
+</pre><p><strong>Python</strong>
+You may need to use <code>from numpy import *</code> for defining functions like <code>sin()</code>.
+</p><pre class="verbatim">parser = mglParse();
+dat = parser.AddVar(&quot;dat&quot;);
+dat.Create(100);
+for i in range(100):
+  dat[i] = sin(4*pi*i/99);
+parser.Execute(gr, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+# you may break script at any line do something 
+# and continue after that
+parser.Execute(gr, &quot;xlabel 'x'\nylabel 'y'&quot;);
+# also you may use cycles or conditions in script
+parser.Execute(gr, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+</pre><hr size="6">
+<a name="Manual-ticks-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Parser-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ColumnPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tick-values-sample"></a>
+<h3 class="subsection">9.7.12 Tick values sample</h3>
+<a name="index-SetTicksVal-4"></a>
+<div class="float">
+<img src="../png/tval.png" alt="../png/tval">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Axis(mglPoint(-M_PI, 0), mglPoint(M_PI, 2));
+gr-&gt;SetTicksVal('x', 6, -M_PI, &quot;-\\pi&quot;, -M_PI/2, &quot;-\\pi/2&quot;, 0., &quot;0&quot;, 
+                0.886, &quot;x^*&quot;, M_PI/2, &quot;\\pi/2&quot;, M_PI, &quot;\\pi&quot;);
+gr-&gt;Axis();     gr-&gt;Grid();
+gr-&gt;Plot(&quot;2*cos(x^2)^2&quot;, &quot;r2&quot;, NAN, 300);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">axis -pi 0 pi 2
+xtick -pi '-\pi' -1.571 '-\pi/2' 0 '0' 0.886 'x^*' 1.571 '\pi/2' pi '\pi'
+axis 
+grid
+fplot '2*cos(x^2)^2' 'r2' nan 300
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">mgl_set_axis_2d(gr, -M_PI, 0, M_PI, 2);
+mgl_set_ticks_val(gr, 'x', 6, -M_PI, &quot;-\\pi&quot;, -M_PI/2, &quot;-\\pi/2&quot;,
+            0., &quot;0&quot;, 0.886, &quot;x^*&quot;, M_PI/2, &quot;\\pi/2&quot;, M_PI, &quot;\\pi&quot;);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_axis_grid(gr,&quot;xyz&quot;, &quot;B-&quot;);
+mgl_fplot(gr, &quot;2*cos(x^2)^2&quot;, &quot;r2&quot;, 300);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">gr.SetRanges(-pi, pi, 0, 2);
+parser = mglParse();
+# very &quot;stupid&quot; way because SWIG not support variable arguments
+parser.Execute(gr, &quot;xtick -pi '-\pi' -1.571 '-\pi/2' 0 '0' &quot;
+                    &quot;0.886 'x^*' 1.571 '\pi/2' pi '\pi'&quot;);
+gr.Axis();     gr.Grid();
+gr.Plot(&quot;2*cos(x^2)^2&quot;, &quot;r2&quot;, 300);
+</pre><hr size="6">
+<a name="ColumnPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Manual-ticks-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#StickPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ColumnPlot-sample-1"></a>
+<h3 class="subsection">9.7.13 ColumnPlot sample</h3>
+<a name="index-ColumnPlot-2"></a>
+<div class="float">
+<img src="../png/column.png" alt="../png/column">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">char str[32];
+for(int i=0;i&lt;4;i++)
+{
+        gr-&gt;ColumnPlot(4,i);
+        gr-&gt;Box();
+        sprintf(str,&quot;Plot %d of 4&quot;,i);
+        gr-&gt;Text(mglPoint(-0.5,0.5),str);
+        sprintf(str,&quot;sin(pi*x+pi*%d/2)&quot;,i);
+        gr-&gt;Plot(str);
+}
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">for $1 0 3
+columnplot 4 $1
+box
+text -0.5 0.5 'Plot $1 of 4'
+fplot 'sin(pi*x+pi*$1/2)'
+next
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">int i;
+char str[32];
+for(i=0;i&lt;4;i++)
+{
+        mgl_columnplot(gr,4,i);
+        mgl_box(gr,1);
+        sprintf(str,&quot;Plot %d of 4&quot;,i);
+        mgl_text(gr,-0.5,0.5,0.,str);
+        sprintf(str,&quot;sin(pi*x+pi*%d/2)&quot;,i);
+        mgl_fplot(gr,str,&quot;&quot;,100);
+}
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="StickPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ColumnPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stereo-image-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="StickPlot-sample-1"></a>
+<h3 class="subsection">9.7.14 StickPlot sample</h3>
+<a name="index-StickPlot-2"></a>
+<div class="float">
+<img src="../png/stick.png" alt="../png/stick">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;SetRanges(-1, 1, -1, 1, 0, 1);  gr-&gt;Light(true);
+gr-&gt;StickPlot(3, 0, 40, 30);        gr-&gt;Axis(&quot;xyz_&quot;);
+gr-&gt;Surf(&quot;exp(-10*y^2-6*x^2)&quot;);
+gr-&gt;Text(mglPoint(0.2, 0, 1.2), &quot;z=0&quot;, &quot;&quot;, -2);
+gr-&gt;StickPlot(3, 1, 40, 30);        gr-&gt;Axis(&quot;xyz_&quot;);
+gr-&gt;Surf(&quot;exp(-10*y^2/2-6*x^2)/sqrt(2)&quot;);
+gr-&gt;Text(mglPoint(0.2, 0, 1.2), &quot;z=1&quot;, &quot;&quot;, -2);
+gr-&gt;StickPlot(3, 2, 40, 30);        gr-&gt;Axis(&quot;xyz_&quot;);
+gr-&gt;Surf(&quot;exp(-10*y^2/5-6*x^2)/sqrt(5)&quot;);
+gr-&gt;Text(mglPoint(0.2, 0, 1.2), &quot;z=2&quot;, &quot;&quot;, -2);
+gr-&gt;Label('x',&quot;\\tau&quot;, 0);  gr-&gt;Label('y', &quot;\\rho&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">ranges -1 1 -1 1 0 1:light on
+stickplot 3 0 40 30 : axis 'xyz_'
+fsurf 'exp(-10*y^2-6*x^2)'
+text 0.2 0 1.2 'z=0' '' -2
+stickplot 3 1 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/2-6*x^2)/sqrt(2)'
+text 0.2 0 1.2 'z=1' '' -2
+stickplot 3 2 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/5-6*x^2)/sqrt(5)'
+text 0.2 0 1.2 'z=2' '' -2
+xlabel '\tau' 0 : ylabel '\rho'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">mgl_set_axis_3d(gr, -1, -1, 0, 1, 1, 1);
+mgl_set_light(gr, 1);
+mgl_stickplot(gr, 3, 0, 40, 30);
+mgl_axis(gr, &quot;xyz_&quot;);
+mgl_fsurf(gr,&quot;exp(-10*y^2-6*x^2)&quot;,&quot;&quot;,100);
+mgl_text(gr, 0.2, 0, 1.2, &quot;z=0&quot;);
+mgl_stickplot(gr, 3, 1, 40, 30);
+mgl_axis(gr, &quot;xyz_&quot;);
+mgl_fsurf(gr,&quot;exp(-10*y^2/2-6*x^2)/sqrt(2)&quot;,&quot;&quot;,100);
+mgl_text(gr, 0.2, 0, 1.2, &quot;z=1&quot;);
+mgl_stickplot(gr, 3, 2, 40, 30);
+mgl_axis(gr, &quot;xyz_&quot;);
+mgl_fsurf(gr,&quot;exp(-10*y^2/5-6*x^2)/sqrt(5)&quot;,&quot;&quot;,100);
+mgl_text(gr, 0.2, 0, 1.2, &quot;z=2&quot;);
+mgl_label(gr,'x',&quot;\\tau&quot;);
+mgl_label(gr,'y', &quot;\\rho&quot;);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">gr-&gt;SetRanges(-1, 1, -1, 1, 0, 1);  gr-&gt;Light(true);
+gr-&gt;StickPlot(3, 0, 40, 30);        gr-&gt;Axis(&quot;xyz_&quot;);
+gr-&gt;Surf(&quot;exp(-10*y^2-6*x^2)&quot;);
+gr-&gt;Text(mglPoint(0.2, 0, 1.2), &quot;z=0&quot;, &quot;&quot;, -2);
+gr-&gt;StickPlot(3, 1, 40, 30);        gr-&gt;Axis(&quot;xyz_&quot;);
+gr-&gt;Surf(&quot;exp(-10*y^2/2-6*x^2)/sqrt(2)&quot;);
+gr-&gt;Text(mglPoint(0.2, 0, 1.2), &quot;z=1&quot;, &quot;&quot;, -2);
+gr-&gt;StickPlot(3, 2, 40, 30);        gr-&gt;Axis(&quot;xyz_&quot;);
+gr-&gt;Surf(&quot;exp(-10*y^2/5-6*x^2)/sqrt(5)&quot;);
+gr-&gt;Text(mglPoint(0.2, 0, 1.2), &quot;z=2&quot;, &quot;&quot;, -2);
+gr-&gt;Label('x',&quot;\\tau&quot;, 0);  gr-&gt;Label('y', &quot;\\rho&quot;);
+</pre><hr size="6">
+<a name="Stereo-image-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#StickPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stereo-image-sample-1"></a>
+<h3 class="subsection">9.7.15 Stereo image sample</h3>
+<div class="float">
+<img src="../png/stereo.png" alt="../png/stereo">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Light(true);
+gr-&gt;SubPlot(2,1,0);
+gr-&gt;Rotate(40,60+3);
+gr-&gt;Box();   gr-&gt;Surf(a);
+gr-&gt;SubPlot(2,1,1);
+gr-&gt;Rotate(40,60-3);
+gr-&gt;Box();   gr-&gt;Surf(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+subplot 2 1 0
+rotate 40 60+3
+box:surf a
+subplot 2 1 1
+rotate 40 60-3
+box:surf a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_set_light(gr,1);
+mgl_subplot(gr,2,1,0);
+mgl_rotate(gr,40.,60.+3.,0.);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_subplot(gr,2,1,1);
+mgl_rotate(gr,40.,60.-3.,0.);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_set_light(gr,1)
+call mgl_subplot(gr,2,1,0)
+call mgl_rotate(gr,40.,60.+3.,0.)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_subplot(gr,2,1,1)
+call mgl_rotate(gr,40.,60.-3.,0.)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Light(True);
+gr.SubPlot(2,1,0);
+gr.Rotate(40,60+3);
+gr.Surf(a);  gr.Box();
+gr.SubPlot(2,1,1);
+gr.Rotate(40,60-3);
+gr.Surf(a);  gr.Box();
+</pre>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_abt.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_abt.html
new file mode 100644
index 0000000..4eed15e
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_abt.html
@@ -0,0 +1,184 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: About This Document</title>
+
+<meta name="description" content="MathGL 1.11: About This Document">
+<meta name="keywords" content="MathGL 1.11: About This Document">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="SEC_About"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1>About This Document</h1>
+<p>
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+</p>
+<p>
+  The buttons in the navigation panels have the following meaning:
+</p>
+<table border="1">
+  <tr>
+    <th> Button </th>
+    <th> Name </th>
+    <th> Go to </th>
+    <th> From 1.2.3 go to</th>
+  </tr>
+  <tr>
+    <td align="center"> [ &lt; ] </td>
+    <td align="center">Back</td>
+    <td>Previous section in reading order</td>
+    <td>1.2.2</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &gt; ] </td>
+    <td align="center">Forward</td>
+    <td>Next section in reading order</td>
+    <td>1.2.4</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &lt;&lt; ] </td>
+    <td align="center">FastBack</td>
+    <td>Beginning of this chapter or previous chapter</td>
+    <td>1</td>
+  </tr>
+  <tr>
+    <td align="center"> [ Up ] </td>
+    <td align="center">Up</td>
+    <td>Up section</td>
+    <td>1.2</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &gt;&gt; ] </td>
+    <td align="center">FastForward</td>
+    <td>Next chapter</td>
+    <td>2</td>
+  </tr>
+  <tr>
+    <td align="center"> [Top] </td>
+    <td align="center">Top</td>
+    <td>Cover (top) of document</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [Contents] </td>
+    <td align="center">Contents</td>
+    <td>Table of contents</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [Index] </td>
+    <td align="center">Index</td>
+    <td>Index</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [ ? ] </td>
+    <td align="center">About</td>
+    <td>About (help)</td>
+    <td> &nbsp; </td>
+  </tr>
+</table>
+
+<p>
+  where the <strong> Example </strong> assumes that the current position is at <strong> Subsubsection One-Two-Three </strong> of a document of the following structure:
+</p>
+
+<ul>
+  <li> 1. Section One
+    <ul>
+      <li>1.1 Subsection One-One
+        <ul>
+          <li>...</li>
+        </ul>
+      </li>
+      <li>1.2 Subsection One-Two
+        <ul>
+          <li>1.2.1 Subsubsection One-Two-One</li>
+          <li>1.2.2 Subsubsection One-Two-Two</li>
+          <li>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp;
+            <strong>&lt;== Current Position </strong></li>
+          <li>1.2.4 Subsubsection One-Two-Four</li>
+        </ul>
+      </li>
+      <li>1.3 Subsection One-Three
+        <ul>
+          <li>...</li>
+        </ul>
+      </li>
+      <li>1.4 Subsection One-Four</li>
+    </ul>
+  </li>
+</ul>
+
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_toc.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_toc.html
new file mode 100644
index 0000000..c519c66
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/mathgl_en_toc.html
@@ -0,0 +1,484 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: Table of Contents</title>
+
+<meta name="description" content="MathGL 1.11: Table of Contents">
+<meta name="keywords" content="MathGL 1.11: Table of Contents">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="SEC_Contents"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1>Table of Contents</h1>
+<div class="contents">
+
+<ul class="toc">
+  <li><a name="toc-Overview-1" href="mathgl_en_1.html#Overview">1. Overview</a>
+  <ul class="toc">
+    <li><a name="toc-Why-have-I-written-MathGL_003f-1" href="mathgl_en_1.html#Why-have-I-written-MathGL_003f">1.1 Why have I written MathGL?</a></li>
+    <li><a name="toc-MathGL-features-1" href="mathgl_en_1.html#MathGL-features">1.2 MathGL features</a></li>
+    <li><a name="toc-Installation-and-usage-1" href="mathgl_en_1.html#Installation-and-usage">1.3 Installation and usage</a></li>
+    <li><a name="toc-General-concepts-1" href="mathgl_en_1.html#General-concepts">1.4 General concepts</a>
+    <ul class="toc">
+      <li><a name="toc-Coordinate-axes-1" href="mathgl_en_1.html#Coordinate-axes">1.4.1 Coordinate axes</a></li>
+      <li><a name="toc-Line-styles-1" href="mathgl_en_1.html#Line-styles">1.4.2 Line styles</a></li>
+      <li><a name="toc-Color-scheme-1" href="mathgl_en_1.html#Color-scheme">1.4.3 Color scheme</a></li>
+      <li><a name="toc-Font-styles-1" href="mathgl_en_1.html#Font-styles">1.4.4 Font styles</a></li>
+      <li><a name="toc-Textual-formulas-1" href="mathgl_en_1.html#Textual-formulas">1.4.5 Textual formulas</a></li>
+    </ul></li>
+    <li><a name="toc-FAQ-1" href="mathgl_en_1.html#FAQ">1.5 FAQ</a></li>
+    <li><a name="toc-Interfaces-1" href="mathgl_en_1.html#Interfaces">1.6 Interfaces</a>
+    <ul class="toc">
+      <li><a name="toc-C-interface-1" href="mathgl_en_1.html#C-interface">1.6.1 C interface</a></li>
+      <li><a name="toc-Python-interface-1" href="mathgl_en_1.html#Python-interface">1.6.2 Python interface</a></li>
+    </ul></li>
+    <li><a name="toc-Thanks-1" href="mathgl_en_1.html#Thanks">1.7 Thanks</a></li>
+  </ul></li>
+  <li><a name="toc-MathGL-examples" href="mathgl_en_2.html#Examples">2. MathGL examples</a>
+  <ul class="toc">
+    <li><a name="toc-Basic-usage-1" href="mathgl_en_2.html#Basic-usage">2.1 Basic usage</a>
+    <ul class="toc">
+      <li><a name="toc-Using-FLTK_002fQt_002fGLUT-window" href="mathgl_en_2.html#Using-FLTK_002fGLUT-window">2.1.1 Using FLTK/Qt/GLUT window</a></li>
+      <li><a name="toc-Drawing-to-file-1" href="mathgl_en_2.html#Drawing-to-file">2.1.2 Drawing to file</a></li>
+      <li><a name="toc-Drawing-in-memory-1" href="mathgl_en_2.html#Drawing-in-memory">2.1.3 Drawing in memory</a></li>
+      <li><a name="toc-Using-QMathGL-1" href="mathgl_en_2.html#Using-QMathGL">2.1.4 Using QMathGL</a></li>
+    </ul></li>
+    <li><a name="toc-Advanced-usage-1" href="mathgl_en_2.html#Advanced-usage">2.2 Advanced usage</a>
+    <ul class="toc">
+      <li><a name="toc-Subplots-1" href="mathgl_en_2.html#Subplots">2.2.1 Subplots</a></li>
+      <li><a name="toc-Axis-and-grids-1" href="mathgl_en_2.html#Axis-and-grids">2.2.2 Axis and grids</a></li>
+      <li><a name="toc-Curvilinear-coordinates-1" href="mathgl_en_2.html#Curvilinear-coordinates">2.2.3 Curvilinear coordinates</a></li>
+      <li><a name="toc-Text-printing-example-1" href="mathgl_en_2.html#Text-printing-example">2.2.4 Text printing example</a></li>
+      <li><a name="toc-Animation-1" href="mathgl_en_2.html#Animation">2.2.5 Animation</a></li>
+    </ul></li>
+    <li><a name="toc-Data-handling-1" href="mathgl_en_2.html#Data-handling">2.3 Data handling</a>
+    <ul class="toc">
+      <li><a name="toc-Array-creation-1" href="mathgl_en_2.html#Array-creation">2.3.1 Array creation</a></li>
+      <li><a name="toc-Data-changing-1" href="mathgl_en_2.html#Data-changing">2.3.2 Data changing</a></li>
+    </ul></li>
+    <li><a name="toc-Data-plotting-1" href="mathgl_en_2.html#Data-plotting">2.4 Data plotting</a>
+    <ul class="toc">
+      <li><a name="toc-Plots-for-1D-data-1" href="mathgl_en_2.html#Plots-for-1D-data">2.4.1 Plots for 1D data</a></li>
+      <li><a name="toc-Plots-for-2D-data-1" href="mathgl_en_2.html#Plots-for-2D-data">2.4.2 Plots for 2D data</a></li>
+      <li><a name="toc-Plots-for-3D-data-1" href="mathgl_en_2.html#Plots-for-3D-data">2.4.3 Plots for 3D data</a></li>
+      <li><a name="toc-Surface-transparency-1" href="mathgl_en_2.html#Surface-transparency">2.4.4 Surface transparency</a></li>
+    </ul></li>
+    <li><a name="toc-C_002fFortran-interface-1" href="mathgl_en_2.html#C_002fFortran-interface">2.5 C/Fortran interface</a></li>
+    <li><a name="toc-MathGL-and-PyQt-1" href="mathgl_en_2.html#MathGL-and-PyQt">2.6 MathGL and PyQt</a></li>
+    <li><a name="toc-Hints-1" href="mathgl_en_2.html#Hints">2.7 Hints</a>
+    <ul class="toc">
+      <li><a name="toc-_0060_0060Compound_0027_0027-graphics-1" href="mathgl_en_2.html#g_t_0060_0060Compound_0027_0027-graphics">2.7.1 &ldquo;Compound&rdquo; graphics</a></li>
+      <li><a name="toc-Two-axes-in-one-plot-1" href="mathgl_en_2.html#Two-axes-in-one-plot">2.7.2 Two axes in one plot</a></li>
+      <li><a name="toc-Titles-for-the-plot-1" href="mathgl_en_2.html#Titles-for-the-plot">2.7.3 Titles for the plot</a></li>
+      <li><a name="toc-Changing-of-the-color-range-1" href="mathgl_en_2.html#Changing-of-the-color-range">2.7.4 Changing of the color range</a></li>
+      <li><a name="toc-Management-of-a-point-cutting-1" href="mathgl_en_2.html#Management-of-a-point-cutting">2.7.5 Management of a point cutting</a></li>
+      <li><a name="toc-Vector-field-visualization-1" href="mathgl_en_2.html#Vector-field-visualization">2.7.6 Vector field visualization</a></li>
+      <li><a name="toc-Several-light-sources-1" href="mathgl_en_2.html#Several-light-sources">2.7.7 Several light sources</a></li>
+      <li><a name="toc-CutMin-and-CutMax-features-1" href="mathgl_en_2.html#CutMin-and-CutMax-features">2.7.8 CutMin and CutMax features</a></li>
+      <li><a name="toc-Mapping-visualization-1" href="mathgl_en_2.html#Mapping-visualization">2.7.9 Mapping visualization</a></li>
+      <li><a name="toc-Log_002dscaled-plot-1" href="mathgl_en_2.html#Log_002dscaled-plot">2.7.10 Log-scaled plot</a></li>
+      <li><a name="toc-_0060_0060Templates_0027_0027-1" href="mathgl_en_2.html#g_t_0060_0060Templates_0027_0027">2.7.11 &ldquo;Templates&rdquo;</a></li>
+      <li><a name="toc-Nonlinear-fitting-hints-1" href="mathgl_en_2.html#Nonlinear-fitting-hints">2.7.12 Nonlinear fitting hints</a></li>
+      <li><a name="toc-PDE-solving-hints-1" href="mathgl_en_2.html#PDE-solving-hints">2.7.13 PDE solving hints</a></li>
+      <li><a name="toc-MGL-parser-using-1" href="mathgl_en_2.html#MGL-parser-using">2.7.14 MGL parser using</a></li>
+      <li><a name="toc-Stereo-image-1" href="mathgl_en_2.html#Stereo-image">2.7.15 Stereo image</a></li>
+    </ul>
+</li>
+  </ul></li>
+  <li><a name="toc-MathGL-core-1" href="mathgl_en_3.html#MathGL-core">3. MathGL core</a>
+  <ul class="toc">
+    <li><a name="toc-Graphics-setup-1" href="mathgl_en_3.html#Graphics-setup">3.1 Graphics setup</a>
+    <ul class="toc">
+      <li><a name="toc-Transparency-1" href="mathgl_en_3.html#Transparency">3.1.1 Transparency</a></li>
+      <li><a name="toc-Lighting-1" href="mathgl_en_3.html#Lighting">3.1.2 Lighting</a></li>
+      <li><a name="toc-Fog-1" href="mathgl_en_3.html#Fog">3.1.3 Fog</a></li>
+      <li><a name="toc-Default-sizes-1" href="mathgl_en_3.html#Default-sizes">3.1.4 Default sizes</a></li>
+      <li><a name="toc-Zooming-1" href="mathgl_en_3.html#Zooming">3.1.5 Zooming</a></li>
+      <li><a name="toc-Cutting-1" href="mathgl_en_3.html#Cutting">3.1.6 Cutting</a></li>
+      <li><a name="toc-Font-settings-1" href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></li>
+      <li><a name="toc-Pallete-and-colors" href="mathgl_en_3.html#Palette-and-colors">3.1.8 Pallete and colors</a></li>
+      <li><a name="toc-Error-handling-1" href="mathgl_en_3.html#Error-handling">3.1.9 Error handling</a></li>
+      <li><a name="toc-Other-settings-1" href="mathgl_en_3.html#Other-settings">3.1.10 Other settings</a></li>
+    </ul></li>
+    <li><a name="toc-Axis-settings-1" href="mathgl_en_3.html#Axis-settings">3.2 Axis settings</a>
+    <ul class="toc">
+      <li><a name="toc-Ranges-_0028bounding-box_0029-1" href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></li>
+      <li><a name="toc-Curved-coordinates-1" href="mathgl_en_3.html#Curved-coordinates">3.2.2 Curved coordinates</a></li>
+      <li><a name="toc-Ticks-1" href="mathgl_en_3.html#Ticks">3.2.3 Ticks</a></li>
+    </ul></li>
+    <li><a name="toc-Transformation-matrix-1" href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></li>
+    <li><a name="toc-Export-to-file-1" href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></li>
+    <li><a name="toc-Primitives-drawing-2" href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></li>
+    <li><a name="toc-Text-printing-1" href="mathgl_en_3.html#Text-printing">3.6 Text printing</a></li>
+    <li><a name="toc-Axis-and-Colorbar-1" href="mathgl_en_3.html#Axis-and-Colorbar">3.7 Axis and Colorbar</a></li>
+    <li><a name="toc-Legend-1" href="mathgl_en_3.html#Legend">3.8 Legend</a></li>
+    <li><a name="toc-1D-plotting-1" href="mathgl_en_3.html#g_t1D-plotting">3.9 1D plotting</a>
+    <ul class="toc">
+      <li><a name="toc-Plot-1" href="mathgl_en_3.html#Plot">3.9.1 Plot</a></li>
+      <li><a name="toc-Radar-1" href="mathgl_en_3.html#Radar">3.9.2 Radar</a></li>
+      <li><a name="toc-Tens-1" href="mathgl_en_3.html#Tens">3.9.3 Tens</a></li>
+      <li><a name="toc-Area-1" href="mathgl_en_3.html#Area">3.9.4 Area</a></li>
+      <li><a name="toc-Region-1" href="mathgl_en_3.html#Region">3.9.5 Region</a></li>
+      <li><a name="toc-Stem-1" href="mathgl_en_3.html#Stem">3.9.6 Stem</a></li>
+      <li><a name="toc-Bars-1" href="mathgl_en_3.html#Bars">3.9.7 Bars</a></li>
+      <li><a name="toc-Barh-1" href="mathgl_en_3.html#Barh">3.9.8 Barh</a></li>
+      <li><a name="toc-Chart-1" href="mathgl_en_3.html#Chart">3.9.9 Chart</a></li>
+      <li><a name="toc-Step-1" href="mathgl_en_3.html#Step">3.9.10 Step</a></li>
+      <li><a name="toc-Torus-1" href="mathgl_en_3.html#Torus">3.9.11 Torus</a></li>
+      <li><a name="toc-Tube-1" href="mathgl_en_3.html#Tube">3.9.12 Tube</a></li>
+      <li><a name="toc-Mark-1" href="mathgl_en_3.html#Mark">3.9.13 Mark</a></li>
+      <li><a name="toc-TextMark-1" href="mathgl_en_3.html#TextMark">3.9.14 TextMark</a></li>
+      <li><a name="toc-Error-1" href="mathgl_en_3.html#Error">3.9.15 Error</a></li>
+      <li><a name="toc-BoxPlot-1" href="mathgl_en_3.html#BoxPlot">3.9.16 BoxPlot</a></li>
+    </ul></li>
+    <li><a name="toc-2D-plotting-1" href="mathgl_en_3.html#g_t2D-plotting">3.10 2D plotting</a>
+    <ul class="toc">
+      <li><a name="toc-Mesh-1" href="mathgl_en_3.html#Mesh">3.10.1 Mesh</a></li>
+      <li><a name="toc-Fall-1" href="mathgl_en_3.html#Fall">3.10.2 Fall</a></li>
+      <li><a name="toc-Belt-1" href="mathgl_en_3.html#Belt">3.10.3 Belt</a></li>
+      <li><a name="toc-Surf-1" href="mathgl_en_3.html#Surf">3.10.4 Surf</a></li>
+      <li><a name="toc-Boxs-1" href="mathgl_en_3.html#Boxs">3.10.5 Boxs</a></li>
+      <li><a name="toc-Tile-1" href="mathgl_en_3.html#Tile">3.10.6 Tile</a></li>
+      <li><a name="toc-Dens-1" href="mathgl_en_3.html#Dens">3.10.7 Dens</a></li>
+      <li><a name="toc-Cont-1" href="mathgl_en_3.html#Cont">3.10.8 Cont</a></li>
+      <li><a name="toc-ContF-1" href="mathgl_en_3.html#ContF">3.10.9 ContF</a></li>
+      <li><a name="toc-ContD-1" href="mathgl_en_3.html#ContD">3.10.10 ContD</a></li>
+      <li><a name="toc-Axial-1" href="mathgl_en_3.html#Axial">3.10.11 Axial</a></li>
+      <li><a name="toc-Grad-1" href="mathgl_en_3.html#Grad">3.10.12 Grad</a></li>
+      <li><a name="toc-Grid-1" href="mathgl_en_3.html#Grid">3.10.13 Grid</a></li>
+    </ul></li>
+    <li><a name="toc-3D-plotting-1" href="mathgl_en_3.html#g_t3D-plotting">3.11 3D plotting</a>
+    <ul class="toc">
+      <li><a name="toc-Surf3-1" href="mathgl_en_3.html#Surf3">3.11.1 Surf3</a></li>
+      <li><a name="toc-Dens3-1" href="mathgl_en_3.html#Dens3">3.11.2 Dens3</a></li>
+      <li><a name="toc-Cont3-1" href="mathgl_en_3.html#Cont3">3.11.3 Cont3</a></li>
+      <li><a name="toc-ContF3-1" href="mathgl_en_3.html#ContF3">3.11.4 ContF3</a></li>
+      <li><a name="toc-Grid3-1" href="mathgl_en_3.html#Grid3">3.11.5 Grid3</a></li>
+      <li><a name="toc-Cloud-1" href="mathgl_en_3.html#Cloud">3.11.6 Cloud</a></li>
+      <li><a name="toc-Beam-1" href="mathgl_en_3.html#Beam">3.11.7 Beam</a></li>
+    </ul></li>
+    <li><a name="toc-Dual-plotting-1" href="mathgl_en_3.html#Dual-plotting">3.12 Dual plotting</a>
+    <ul class="toc">
+      <li><a name="toc-SurfC-1" href="mathgl_en_3.html#SurfC">3.12.1 SurfC</a></li>
+      <li><a name="toc-Surf3C-1" href="mathgl_en_3.html#Surf3C">3.12.2 Surf3C</a></li>
+      <li><a name="toc-SurfA-1" href="mathgl_en_3.html#SurfA">3.12.3 SurfA</a></li>
+      <li><a name="toc-Surf3A-1" href="mathgl_en_3.html#Surf3A">3.12.4 Surf3A</a></li>
+      <li><a name="toc-TileS-1" href="mathgl_en_3.html#TileS">3.12.5 TileS</a></li>
+      <li><a name="toc-Map-1" href="mathgl_en_3.html#Map">3.12.6 Map</a></li>
+      <li><a name="toc-STFA-1" href="mathgl_en_3.html#STFA">3.12.7 STFA</a></li>
+    </ul></li>
+    <li><a name="toc-Vector-fields-1" href="mathgl_en_3.html#Vector-fields">3.13 Vector fields</a>
+    <ul class="toc">
+      <li><a name="toc-Traj-1" href="mathgl_en_3.html#Traj">3.13.1 Traj</a></li>
+      <li><a name="toc-Vect-1" href="mathgl_en_3.html#Vect">3.13.2 Vect</a></li>
+      <li><a name="toc-VectL-1" href="mathgl_en_3.html#VectL">3.13.3 VectL</a></li>
+      <li><a name="toc-VectC-1" href="mathgl_en_3.html#VectC">3.13.4 VectC</a></li>
+      <li><a name="toc-Dew-1" href="mathgl_en_3.html#Dew">3.13.5 Dew</a></li>
+      <li><a name="toc-Flow-1" href="mathgl_en_3.html#Flow">3.13.6 Flow</a></li>
+      <li><a name="toc-FlowP-1" href="mathgl_en_3.html#FlowP">3.13.7 FlowP</a></li>
+      <li><a name="toc-Pipe-1" href="mathgl_en_3.html#Pipe">3.13.8 Pipe</a></li>
+    </ul></li>
+    <li><a name="toc-Other-plotting-1" href="mathgl_en_3.html#Other-plotting">3.14 Other plotting</a>
+    <ul class="toc">
+      <li><a name="toc-DensXYZ-1" href="mathgl_en_3.html#DensXYZ">3.14.1 DensXYZ</a></li>
+      <li><a name="toc-ContXYZ-1" href="mathgl_en_3.html#ContXYZ">3.14.2 ContXYZ</a></li>
+      <li><a name="toc-ContFXYZ-1" href="mathgl_en_3.html#ContFXYZ">3.14.3 ContFXYZ</a></li>
+      <li><a name="toc-Dots-1" href="mathgl_en_3.html#Dots">3.14.4 Dots</a></li>
+      <li><a name="toc-Crust-1" href="mathgl_en_3.html#Crust">3.14.5 Crust</a></li>
+      <li><a name="toc-TriPlot-1" href="mathgl_en_3.html#TriPlot">3.14.6 TriPlot</a></li>
+      <li><a name="toc-TriCont-1" href="mathgl_en_3.html#TriCont">3.14.7 TriCont</a></li>
+      <li><a name="toc-QuadPlot-1" href="mathgl_en_3.html#QuadPlot">3.14.8 QuadPlot</a></li>
+      <li><a name="toc-Plots-by-formula-1" href="mathgl_en_3.html#Plots-by-formula">3.14.9 Plots by formula</a></li>
+      <li><a name="toc-SimplePlot-1" href="mathgl_en_3.html#SimplePlot">3.14.10 SimplePlot</a></li>
+    </ul></li>
+    <li><a name="toc-Nonlinear-fitting-1" href="mathgl_en_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></li>
+    <li><a name="toc-Data-distributions-1" href="mathgl_en_3.html#Data-distributions">3.16 Data distributions</a></li>
+    <li><a name="toc-Frames_002fAnimation-1" href="mathgl_en_3.html#Frames_002fAnimation">3.17 Frames/Animation</a></li>
+    <li><a name="toc-IDTF-functions-1" href="mathgl_en_3.html#IDTF-functions">3.18 IDTF functions</a></li>
+  </ul></li>
+  <li><a name="toc-Plotter-classes-1" href="mathgl_en_4.html#Plotter-classes">4. Plotter classes</a>
+  <ul class="toc">
+    <li><a name="toc-mglGraphAB-class-1" href="mathgl_en_4.html#mglGraphAB-class">4.1 mglGraphAB class</a></li>
+  </ul></li>
+  <li><a name="toc-Widget-classes-1" href="mathgl_en_5.html#Widget-classes">5. Widget classes</a>
+  <ul class="toc">
+    <li><a name="toc-Fl_005fMathGL-class-1" href="mathgl_en_5.html#Fl_005fMathGL-class">5.1 Fl_MathGL class</a></li>
+    <li><a name="toc-QMathGL-class-1" href="mathgl_en_5.html#QMathGL-class">5.2 QMathGL class</a></li>
+  </ul></li>
+  <li><a name="toc-mglData-class-1" href="mathgl_en_6.html#mglData-class">6. mglData class</a>
+  <ul class="toc">
+    <li><a name="toc-Public-variables-1" href="mathgl_en_6.html#Public-variables">6.1 Public variables</a></li>
+    <li><a name="toc-Create-and-delete-1" href="mathgl_en_6.html#Create-and-delete">6.2 Create and delete</a></li>
+    <li><a name="toc-Fill-1" href="mathgl_en_6.html#Fill">6.3 Fill</a></li>
+    <li><a name="toc-Rearrange-1" href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></li>
+    <li><a name="toc-File-I_002fO-1" href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></li>
+    <li><a name="toc-Make-another-data-1" href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></li>
+    <li><a name="toc-Change-data-1" href="mathgl_en_6.html#Change-data">6.7 Change data</a></li>
+    <li><a name="toc-Interpolation-1" href="mathgl_en_6.html#Interpolation">6.8 Interpolation</a></li>
+    <li><a name="toc-Informational-functions-1" href="mathgl_en_6.html#Informational-functions">6.9 Informational functions</a></li>
+    <li><a name="toc-Operators-1" href="mathgl_en_6.html#Operators">6.10 Operators</a></li>
+    <li><a name="toc-Global-functions-1" href="mathgl_en_6.html#Global-functions">6.11 Global functions</a></li>
+  </ul></li>
+  <li><a name="toc-Other-classes-1" href="mathgl_en_7.html#Other-classes">7. Other classes</a>
+  <ul class="toc">
+    <li><a name="toc-mglParse-class-1" href="mathgl_en_7.html#mglParse-class">7.1 mglParse class</a></li>
+    <li><a name="toc-mglFormula-class-1" href="mathgl_en_7.html#mglFormula-class">7.2 mglFormula class</a></li>
+    <li><a name="toc-mglFont-class-1" href="mathgl_en_7.html#mglFont-class">7.3 mglFont class</a>
+    <ul class="toc">
+      <li><a name="toc-Format-of-font-files-1" href="mathgl_en_7.html#Format-of-font-files">7.3.1 Format of font files</a></li>
+    </ul></li>
+    <li><a name="toc-mglColor-class-1" href="mathgl_en_7.html#mglColor-class">7.4 mglColor class</a></li>
+    <li><a name="toc-mglPoint-class-1" href="mathgl_en_7.html#mglPoint-class">7.5 mglPoint class</a></li>
+    <li><a name="toc-mglVar-class-1" href="mathgl_en_7.html#mglVar-class">7.6 mglVar class</a></li>
+    <li><a name="toc-mglCommand-class-1" href="mathgl_en_7.html#mglCommand-class">7.7 mglCommand class</a></li>
+    <li><a name="toc-mglArg-class-1" href="mathgl_en_7.html#mglArg-class">7.8 mglArg class</a></li>
+  </ul></li>
+  <li><a name="toc-MGL-language" href="mathgl_en_8.html#MGL-interface">8. MGL language</a>
+  <ul class="toc">
+    <li><a name="toc-Graphics-setup-_0028MGL_0029-1" href="mathgl_en_8.html#Graphics-setup-_0028MGL_0029">8.1 Graphics setup (MGL)</a>
+    <ul class="toc">
+      <li><a name="toc-Transparency-_0028MGL_0029-1" href="mathgl_en_8.html#Transparency-_0028MGL_0029">8.1.1 Transparency (MGL)</a></li>
+      <li><a name="toc-Lighting-_0028MGL_0029-1" href="mathgl_en_8.html#Lighting-_0028MGL_0029">8.1.2 Lighting (MGL)</a></li>
+      <li><a name="toc-Fog-_0028MGL_0029-1" href="mathgl_en_8.html#Fog-_0028MGL_0029">8.1.3 Fog (MGL)</a></li>
+      <li><a name="toc-Default-sizes-_0028MGL_0029-1" href="mathgl_en_8.html#Default-sizes-_0028MGL_0029">8.1.4 Default sizes (MGL)</a></li>
+      <li><a name="toc-Zooming-_0028MGL_0029-1" href="mathgl_en_8.html#Zooming-_0028MGL_0029">8.1.5 Zooming (MGL)</a></li>
+      <li><a name="toc-Cutting-_0028MGL_0029-1" href="mathgl_en_8.html#Cutting-_0028MGL_0029">8.1.6 Cutting (MGL)</a></li>
+      <li><a name="toc-Other-settings-_0028MGL_0029-1" href="mathgl_en_8.html#Other-settings-_0028MGL_0029">8.1.7 Other settings (MGL)</a></li>
+    </ul></li>
+    <li><a name="toc-Axis-settings-_0028MGL_0029-1" href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></li>
+    <li><a name="toc-Transformation-matrix-_0028MGL_0029-1" href="mathgl_en_8.html#Transformation-matrix-_0028MGL_0029">8.3 Transformation matrix (MGL)</a></li>
+    <li><a name="toc-Export-to-file-_0028MGL_0029-1" href="mathgl_en_8.html#Export-to-file-_0028MGL_0029">8.4 Export to file (MGL)</a></li>
+    <li><a name="toc-Primitives-drawing-1" href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></li>
+    <li><a name="toc-Text-printing-_0028MGL_0029-1" href="mathgl_en_8.html#Text-printing-_0028MGL_0029">8.6 Text printing (MGL)</a></li>
+    <li><a name="toc-Axis-and-Colorbar-_0028MGL_0029-1" href="mathgl_en_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></li>
+    <li><a name="toc-Legend-_0028MGL_0029-1" href="mathgl_en_8.html#Legend-_0028MGL_0029">8.8 Legend (MGL)</a></li>
+    <li><a name="toc-1D-plotting-_0028MGL_0029-1" href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></li>
+    <li><a name="toc-2D-plotting-_0028MGL_0029-1" href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></li>
+    <li><a name="toc-3D-plotting-_0028MGL_0029-1" href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></li>
+    <li><a name="toc-Dual-plotting-_0028MGL_0029-1" href="mathgl_en_8.html#Dual-plotting-_0028MGL_0029">8.12 Dual plotting (MGL)</a></li>
+    <li><a name="toc-Vector-fields-_0028MGL_0029-1" href="mathgl_en_8.html#Vector-fields-_0028MGL_0029">8.13 Vector fields (MGL)</a></li>
+    <li><a name="toc-Other-plotting-_0028MGL_0029-1" href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></li>
+    <li><a name="toc-Nonlinear-fitting-_0028MGL_0029-1" href="mathgl_en_8.html#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></li>
+    <li><a name="toc-Data-create-_0028MGL_0029-1" href="mathgl_en_8.html#Data-create-_0028MGL_0029">8.16 Data create (MGL)</a></li>
+    <li><a name="toc-Data-filling-_0028MGL_0029-1" href="mathgl_en_8.html#Data-filling-_0028MGL_0029">8.17 Data filling (MGL)</a></li>
+    <li><a name="toc-Rearrange-data-_0028MGL_0029-1" href="mathgl_en_8.html#Rearrange-data-_0028MGL_0029">8.18 Rearrange data (MGL)</a></li>
+    <li><a name="toc-File-I_002fO-_0028MGL_0029-1" href="mathgl_en_8.html#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></li>
+    <li><a name="toc-Make-another-data-_0028MGL_0029-1" href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></li>
+    <li><a name="toc-Change-data-_0028MGL_0029-1" href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></li>
+    <li><a name="toc-Operators-_0028MGL_0029-1" href="mathgl_en_8.html#Operators-_0028MGL_0029">8.22 Operators (MGL)</a></li>
+    <li><a name="toc-Program-flow-_0028MGL_0029-1" href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></li>
+    <li><a name="toc-Command-options-_0028MGL_0029-1" href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></li>
+    <li><a name="toc-Suffixes-for-variable" href="mathgl_en_8.html#Suffixes">8.25 Suffixes for variable</a></li>
+    <li><a name="toc-Utilities-for-parsing-MGL" href="mathgl_en_8.html#Utilities">8.26 Utilities for parsing MGL</a></li>
+  </ul></li>
+  <li><a name="toc-Samples-1" href="mathgl_en_9.html#Samples">9. Samples</a>
+  <ul class="toc">
+    <li><a name="toc-1D-plotting-samples-1" href="mathgl_en_9.html#g_t1D-plotting-samples">9.1 1D plotting samples</a>
+    <ul class="toc">
+      <li><a name="toc-Plot-sample-1" href="mathgl_en_9.html#Plot-sample">9.1.1 Plot sample</a></li>
+      <li><a name="toc-Radar-sample-1" href="mathgl_en_9.html#Radar-sample">9.1.2 Radar sample</a></li>
+      <li><a name="toc-Tens-sample-1" href="mathgl_en_9.html#Tens-sample">9.1.3 Tens sample</a></li>
+      <li><a name="toc-Area-sample-1" href="mathgl_en_9.html#Area-sample">9.1.4 Area sample</a></li>
+      <li><a name="toc-Area-with-gradient-filling-sample" href="mathgl_en_9.html#Area-gradient-sample">9.1.5 Area with gradient filling sample</a></li>
+      <li><a name="toc-Bars-sample-1" href="mathgl_en_9.html#Bars-sample">9.1.6 Bars sample</a></li>
+      <li><a name="toc-Bars-2-colors-sample-1" href="mathgl_en_9.html#Bars-2-colors-sample">9.1.7 Bars 2 colors sample</a></li>
+      <li><a name="toc-Bars-above-sample-1" href="mathgl_en_9.html#Bars-above-sample">9.1.8 Bars above sample</a></li>
+      <li><a name="toc-Bars-fall-sample-1" href="mathgl_en_9.html#Bars-fall-sample">9.1.9 Bars fall sample</a></li>
+      <li><a name="toc-Barh-sample-1" href="mathgl_en_9.html#Barh-sample">9.1.10 Barh sample</a></li>
+      <li><a name="toc-Step-sample-1" href="mathgl_en_9.html#Step-sample">9.1.11 Step sample</a></li>
+      <li><a name="toc-Stem-sample-1" href="mathgl_en_9.html#Stem-sample">9.1.12 Stem sample</a></li>
+      <li><a name="toc-Region-sample-1" href="mathgl_en_9.html#Region-sample">9.1.13 Region sample</a></li>
+      <li><a name="toc-Region-gradient-sample-1" href="mathgl_en_9.html#Region-gradient-sample">9.1.14 Region gradient sample</a></li>
+      <li><a name="toc-Error-sample-1" href="mathgl_en_9.html#Error-sample">9.1.15 Error sample</a></li>
+      <li><a name="toc-BoxPlot-sample-1" href="mathgl_en_9.html#BoxPlot-sample">9.1.16 BoxPlot sample</a></li>
+      <li><a name="toc-Mark-sample-1" href="mathgl_en_9.html#Mark-sample">9.1.17 Mark sample</a></li>
+      <li><a name="toc-TextMark-sample-1" href="mathgl_en_9.html#TextMark-sample">9.1.18 TextMark sample</a></li>
+      <li><a name="toc-Tube-sample-1" href="mathgl_en_9.html#Tube-sample">9.1.19 Tube sample</a></li>
+      <li><a name="toc-Text-sample-1" href="mathgl_en_9.html#Text-sample">9.1.20 Text sample</a></li>
+      <li><a name="toc-Torus-sample-1" href="mathgl_en_9.html#Torus-sample">9.1.21 Torus sample</a></li>
+      <li><a name="toc-Chart-sample-1" href="mathgl_en_9.html#Chart-sample">9.1.22 Chart sample</a></li>
+      <li><a name="toc-Pie-chart-sample-1" href="mathgl_en_9.html#Pie-chart-sample">9.1.23 Pie chart sample</a></li>
+      <li><a name="toc-Ring-chart-sample-1" href="mathgl_en_9.html#Ring-chart-sample">9.1.24 Ring chart sample</a></li>
+    </ul></li>
+    <li><a name="toc-2D-plotting-samples-1" href="mathgl_en_9.html#g_t2D-plotting-samples">9.2 2D plotting samples</a>
+    <ul class="toc">
+      <li><a name="toc-Surf-sample-1" href="mathgl_en_9.html#Surf-sample">9.2.1 Surf sample</a></li>
+      <li><a name="toc-Transparent-surface-sample-1" href="mathgl_en_9.html#Transparent-surface-sample">9.2.2 Transparent surface sample</a></li>
+      <li><a name="toc-Surface-in-fog-sample-1" href="mathgl_en_9.html#Surface-in-fog-sample">9.2.3 Surface in fog sample</a></li>
+      <li><a name="toc-Sharp-colors-sample-1" href="mathgl_en_9.html#Sharp-colors-sample">9.2.4 Sharp colors sample</a></li>
+      <li><a name="toc-Mesh-sample-1" href="mathgl_en_9.html#Mesh-sample">9.2.5 Mesh sample</a></li>
+      <li><a name="toc-Fall-sample-1" href="mathgl_en_9.html#Fall-sample">9.2.6 Fall sample</a></li>
+      <li><a name="toc-Belt-sample-1" href="mathgl_en_9.html#Belt-sample">9.2.7 Belt sample</a></li>
+      <li><a name="toc-Tile-sample-1" href="mathgl_en_9.html#Tile-sample">9.2.8 Tile sample</a></li>
+      <li><a name="toc-Boxs-sample-1" href="mathgl_en_9.html#Boxs-sample">9.2.9 Boxs sample</a></li>
+      <li><a name="toc-Dens-sample-1" href="mathgl_en_9.html#Dens-sample">9.2.10 Dens sample</a></li>
+      <li><a name="toc-Cont-sample-1" href="mathgl_en_9.html#Cont-sample">9.2.11 Cont sample</a></li>
+      <li><a name="toc-ContF-sample-1" href="mathgl_en_9.html#ContF-sample">9.2.12 ContF sample</a></li>
+      <li><a name="toc-ContD-sample-1" href="mathgl_en_9.html#ContD-sample">9.2.13 ContD sample</a></li>
+      <li><a name="toc-Axial-sample-1" href="mathgl_en_9.html#Axial-sample">9.2.14 Axial sample</a></li>
+      <li><a name="toc-Grad-sample-1" href="mathgl_en_9.html#Grad-sample">9.2.15 Grad sample</a></li>
+    </ul></li>
+    <li><a name="toc-3D-plotting-samples-1" href="mathgl_en_9.html#g_t3D-plotting-samples">9.3 3D plotting samples</a>
+    <ul class="toc">
+      <li><a name="toc-Surf3-sample-1" href="mathgl_en_9.html#Surf3-sample">9.3.1 Surf3 sample</a></li>
+      <li><a name="toc-Cloud-sample-1" href="mathgl_en_9.html#Cloud-sample">9.3.2 Cloud sample</a></li>
+      <li><a name="toc-CloudP-sample-1" href="mathgl_en_9.html#CloudP-sample">9.3.3 CloudP sample</a></li>
+      <li><a name="toc-Dens3-sample-1" href="mathgl_en_9.html#Dens3-sample">9.3.4 Dens3 sample</a></li>
+      <li><a name="toc-Cont3-sample-1" href="mathgl_en_9.html#Cont3-sample">9.3.5 Cont3 sample</a></li>
+      <li><a name="toc-ContF3-sample-1" href="mathgl_en_9.html#ContF3-sample">9.3.6 ContF3 sample</a></li>
+      <li><a name="toc-Cont-projection-sample-1" href="mathgl_en_9.html#Cont-projection-sample">9.3.7 Cont projection sample</a></li>
+      <li><a name="toc-Dens-projection-sample-1" href="mathgl_en_9.html#Dens-projection-sample">9.3.8 Dens projection sample</a></li>
+      <li><a name="toc-CutMinMax-sample-1" href="mathgl_en_9.html#CutMinMax-sample">9.3.9 CutMinMax sample</a></li>
+      <li><a name="toc-_0060_0060Isocaps_0027_0027-sample" href="mathgl_en_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; sample</a></li>
+      <li><a name="toc-CutOff-sample-1" href="mathgl_en_9.html#CutOff-sample">9.3.11 CutOff sample</a></li>
+    </ul></li>
+    <li><a name="toc-Dual-plotting-samples-1" href="mathgl_en_9.html#Dual-plotting-samples">9.4 Dual plotting samples</a>
+    <ul class="toc">
+      <li><a name="toc-SurfC-sample-1" href="mathgl_en_9.html#SurfC-sample">9.4.1 SurfC sample</a></li>
+      <li><a name="toc-SurfA-sample-1" href="mathgl_en_9.html#SurfA-sample">9.4.2 SurfA sample</a></li>
+      <li><a name="toc-TileS-sample-1" href="mathgl_en_9.html#TileS-sample">9.4.3 TileS sample</a></li>
+      <li><a name="toc-Map-sample-1" href="mathgl_en_9.html#Map-sample">9.4.4 Map sample</a></li>
+      <li><a name="toc-Traj-sample-1" href="mathgl_en_9.html#Traj-sample">9.4.5 Traj sample</a></li>
+      <li><a name="toc-Vect-sample-1" href="mathgl_en_9.html#Vect-sample">9.4.6 Vect sample</a></li>
+      <li><a name="toc-VectL-sample-1" href="mathgl_en_9.html#VectL-sample">9.4.7 VectL sample</a></li>
+      <li><a name="toc-VectC-sample-1" href="mathgl_en_9.html#VectC-sample">9.4.8 VectC sample</a></li>
+      <li><a name="toc-Flow-sample-1" href="mathgl_en_9.html#Flow-sample">9.4.9 Flow sample</a></li>
+      <li><a name="toc-Pipe-sample-1" href="mathgl_en_9.html#Pipe-sample">9.4.10 Pipe sample</a></li>
+      <li><a name="toc-Dew-sample-1" href="mathgl_en_9.html#Dew-sample">9.4.11 Dew sample</a></li>
+      <li><a name="toc-Surf3C-sample-1" href="mathgl_en_9.html#Surf3C-sample">9.4.12 Surf3C sample</a></li>
+      <li><a name="toc-Surf3A-sample-1" href="mathgl_en_9.html#Surf3A-sample">9.4.13 Surf3A sample</a></li>
+      <li><a name="toc-Vect-3D-sample-1" href="mathgl_en_9.html#Vect-3D-sample">9.4.14 Vect 3D sample</a></li>
+      <li><a name="toc-VectL-3D-sample-1" href="mathgl_en_9.html#VectL-3D-sample">9.4.15 VectL 3D sample</a></li>
+      <li><a name="toc-VectC-3D-sample-1" href="mathgl_en_9.html#VectC-3D-sample">9.4.16 VectC 3D sample</a></li>
+      <li><a name="toc-Flow-3D-sample-1" href="mathgl_en_9.html#Flow-3D-sample">9.4.17 Flow 3D sample</a></li>
+      <li><a name="toc-Pipe-3D-sample-1" href="mathgl_en_9.html#Pipe-3D-sample">9.4.18 Pipe 3D sample</a></li>
+      <li><a name="toc-Crust-sample-1" href="mathgl_en_9.html#Crust-sample">9.4.19 Crust sample</a></li>
+      <li><a name="toc-Dots-sample-1" href="mathgl_en_9.html#Dots-sample">9.4.20 Dots sample</a></li>
+    </ul></li>
+    <li><a name="toc-Basic-features-1" href="mathgl_en_9.html#Basic-features">9.5 Basic features</a>
+    <ul class="toc">
+      <li><a name="toc-1D-plot-sample-1" href="mathgl_en_9.html#g_t1D-plot-sample">9.5.1 1D plot sample</a></li>
+      <li><a name="toc-2D-plot-sample-1" href="mathgl_en_9.html#g_t2D-plot-sample">9.5.2 2D plot sample</a></li>
+      <li><a name="toc-3D-plot-sample-1" href="mathgl_en_9.html#g_t3D-plot-sample">9.5.3 3D plot sample</a></li>
+      <li><a name="toc-Line-styles-sample-1" href="mathgl_en_9.html#Line-styles-sample">9.5.4 Line styles sample</a></li>
+      <li><a name="toc-Arrow-styles-sample-1" href="mathgl_en_9.html#Arrow-styles-sample">9.5.5 Arrow styles sample</a></li>
+      <li><a name="toc-Text-styles-sample-1" href="mathgl_en_9.html#Text-styles-sample">9.5.6 Text styles sample</a></li>
+      <li><a name="toc-TeX-parsing-sample-1" href="mathgl_en_9.html#TeX-parsing-sample">9.5.7 TeX parsing sample</a></li>
+      <li><a name="toc-Font-faces-sample-1" href="mathgl_en_9.html#Font-faces-sample">9.5.8 Font faces sample</a></li>
+      <li><a name="toc-Colors-sample-1" href="mathgl_en_9.html#Colors-sample">9.5.9 Colors sample</a></li>
+      <li><a name="toc-Color-schemes-sample-1" href="mathgl_en_9.html#Color-schemes-sample">9.5.10 Color schemes sample</a></li>
+      <li><a name="toc-Normal-transparency-1" href="mathgl_en_9.html#Normal-transparency">9.5.11 Normal transparency</a></li>
+      <li><a name="toc-Glass_002dlike-transparency-1" href="mathgl_en_9.html#Glass_002dlike-transparency">9.5.12 Glass-like transparency</a></li>
+      <li><a name="toc-Lamp_002dlike-transparency-1" href="mathgl_en_9.html#Lamp_002dlike-transparency">9.5.13 Lamp-like transparency</a></li>
+    </ul></li>
+    <li><a name="toc-Additional-features-1" href="mathgl_en_9.html#Additional-features">9.6 Additional features</a>
+    <ul class="toc">
+      <li><a name="toc-Legend-sample-1" href="mathgl_en_9.html#Legend-sample">9.6.1 Legend sample</a></li>
+      <li><a name="toc-Adding-mesh-sample-1" href="mathgl_en_9.html#Adding-mesh-sample">9.6.2 Adding mesh sample</a></li>
+      <li><a name="toc-Surf-_0026-Cont-sample-1" href="mathgl_en_9.html#Surf-_0026-Cont-sample">9.6.3 Surf &amp; Cont sample</a></li>
+      <li><a name="toc-Flow-_0026-Dens-sample-1" href="mathgl_en_9.html#Flow-_0026-Dens-sample">9.6.4 Flow &amp; Dens sample</a></li>
+      <li><a name="toc-Several-light-sample-1" href="mathgl_en_9.html#Several-light-sample">9.6.5 Several light sample</a></li>
+      <li><a name="toc-Mirrored-surface-sample-1" href="mathgl_en_9.html#Mirrored-surface-sample">9.6.6 Mirrored surface sample</a></li>
+      <li><a name="toc-Cont-with-labels-sample-1" href="mathgl_en_9.html#Cont-with-labels-sample">9.6.7 Cont with labels sample</a></li>
+      <li><a name="toc-Ternary-plot-sample-1" href="mathgl_en_9.html#Ternary-plot-sample">9.6.8 Ternary plot sample</a></li>
+      <li><a name="toc-Coloring-by-coordinates-sample-1" href="mathgl_en_9.html#Coloring-by-coordinates-sample">9.6.9 Coloring by coordinates sample</a></li>
+      <li><a name="toc-Drops-sample-1" href="mathgl_en_9.html#Drops-sample">9.6.10 Drops sample</a></li>
+      <li><a name="toc-Molecules-drawing-sample-1" href="mathgl_en_9.html#Molecules-drawing-sample">9.6.11 Molecules drawing sample</a></li>
+    </ul></li>
+    <li><a name="toc-Advanced-features-1" href="mathgl_en_9.html#Advanced-features">9.7 Advanced features</a>
+    <ul class="toc">
+      <li><a name="toc-Curvelinear-coorinates-sample-1" href="mathgl_en_9.html#Curvelinear-coorinates-sample">9.7.1 Curvelinear coorinates sample</a></li>
+      <li><a name="toc-2_002daxes-sample-1" href="mathgl_en_9.html#g_t2_002daxes-sample">9.7.2 2-axes sample</a></li>
+      <li><a name="toc-Semi_002dlog-sample-1" href="mathgl_en_9.html#Semi_002dlog-sample">9.7.3 Semi-log sample</a></li>
+      <li><a name="toc-Log_002dlog-sample-1" href="mathgl_en_9.html#Log_002dlog-sample">9.7.4 Log-log sample</a></li>
+      <li><a name="toc-Fitting-sample-1" href="mathgl_en_9.html#Fitting-sample">9.7.5 Fitting sample</a></li>
+      <li><a name="toc-Envelop-sample-1" href="mathgl_en_9.html#Envelop-sample">9.7.6 Envelop sample</a></li>
+      <li><a name="toc-Sew-sample-1" href="mathgl_en_9.html#Sew-sample">9.7.7 Sew sample</a></li>
+      <li><a name="toc-STFA-sample-1" href="mathgl_en_9.html#STFA-sample">9.7.8 STFA sample</a></li>
+      <li><a name="toc-PDE-sample-1" href="mathgl_en_9.html#PDE-sample">9.7.9 PDE sample</a></li>
+      <li><a name="toc-Beam-tracing-sample-1" href="mathgl_en_9.html#Beam-tracing-sample">9.7.10 Beam tracing sample</a></li>
+      <li><a name="toc-Parser-sample-1" href="mathgl_en_9.html#Parser-sample">9.7.11 Parser sample</a></li>
+      <li><a name="toc-Tick-values-sample" href="mathgl_en_9.html#Manual-ticks-sample">9.7.12 Tick values sample</a></li>
+      <li><a name="toc-ColumnPlot-sample-1" href="mathgl_en_9.html#ColumnPlot-sample">9.7.13 ColumnPlot sample</a></li>
+      <li><a name="toc-StickPlot-sample-1" href="mathgl_en_9.html#StickPlot-sample">9.7.14 StickPlot sample</a></li>
+      <li><a name="toc-Stereo-image-sample-1" href="mathgl_en_9.html#Stereo-image-sample">9.7.15 Stereo image sample</a></li>
+    </ul>
+</li>
+  </ul></li>
+  <li><a name="toc-TeX_002dlike-symbols-1" href="mathgl_en_10.html#TeX_002dlike-symbols">A. TeX-like symbols</a></li>
+  <li><a name="toc-GNU-Free-Documentation-License" href="mathgl_en_11.html#Copying-This-Manual">B. GNU Free Documentation License</a></li>
+  <li><a name="toc-Index-1" href="mathgl_en_12.html#Index">Index</a></li>
+</ul>
+</div>
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/2_axis.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/2_axis.png
new file mode 100644
index 0000000..34752bd
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/2_axis.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/area.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/area.png
new file mode 100644
index 0000000..8a2d27c
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/area.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/area_2.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/area_2.png
new file mode 100644
index 0000000..1bbb061
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/area_2.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/axial.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/axial.png
new file mode 100644
index 0000000..f9edfb8
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/axial.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/barh.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/barh.png
new file mode 100644
index 0000000..c616c62
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/barh.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/bars.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/bars.png
new file mode 100644
index 0000000..d290ee7
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/bars.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/bars_2.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/bars_2.png
new file mode 100644
index 0000000..dc6330c
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/bars_2.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/bars_a.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/bars_a.png
new file mode 100644
index 0000000..22a8c7c
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/bars_a.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/bars_f.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/bars_f.png
new file mode 100644
index 0000000..8a706fb
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/bars_f.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/belt.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/belt.png
new file mode 100644
index 0000000..229e367
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/belt.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/boxplot.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/boxplot.png
new file mode 100644
index 0000000..3f1fb95
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/boxplot.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/boxs.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/boxs.png
new file mode 100644
index 0000000..50f4cc8
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/boxs.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/chart.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/chart.png
new file mode 100644
index 0000000..4db792b
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/chart.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/cloud.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/cloud.png
new file mode 100644
index 0000000..6de180e
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/cloud.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/cloudp.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/cloudp.png
new file mode 100644
index 0000000..6cb838e
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/cloudp.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/color_schemes.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/color_schemes.png
new file mode 100644
index 0000000..9705b6e
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/color_schemes.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/colors.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/colors.png
new file mode 100644
index 0000000..f75fbdb
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/colors.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/column.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/column.png
new file mode 100644
index 0000000..080bbd2
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/column.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/cont.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/cont.png
new file mode 100644
index 0000000..6a49e8f
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/cont.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/cont_xyz.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/cont_xyz.png
new file mode 100644
index 0000000..8bfc42f
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/cont_xyz.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/conta.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/conta.png
new file mode 100644
index 0000000..e01405f
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/conta.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/contd.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/contd.png
new file mode 100644
index 0000000..40ec776
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/contd.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/contf.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/contf.png
new file mode 100644
index 0000000..242dca2
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/contf.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/contfa.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/contfa.png
new file mode 100644
index 0000000..a4e8309
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/contfa.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/contt.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/contt.png
new file mode 100644
index 0000000..f38c3f7
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/contt.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/crust.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/crust.png
new file mode 100644
index 0000000..1f0d5db
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/crust.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/cutminmax.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/cutminmax.png
new file mode 100644
index 0000000..58784cc
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/cutminmax.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/cutminmax2.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/cutminmax2.png
new file mode 100644
index 0000000..2f14129
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/cutminmax2.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/dens.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/dens.png
new file mode 100644
index 0000000..8d37166
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/dens.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/dens_xyz.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/dens_xyz.png
new file mode 100644
index 0000000..e6a3437
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/dens_xyz.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/densa.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/densa.png
new file mode 100644
index 0000000..5631a88
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/densa.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/dew.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/dew.png
new file mode 100644
index 0000000..475093f
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/dew.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/dew2.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/dew2.png
new file mode 100644
index 0000000..218778a
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/dew2.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/dots.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/dots.png
new file mode 100644
index 0000000..2a887c0
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/dots.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/drops.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/drops.png
new file mode 100644
index 0000000..064778d
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/drops.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/envelop.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/envelop.png
new file mode 100644
index 0000000..566c2bd
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/envelop.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/error.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/error.png
new file mode 100644
index 0000000..04b0993
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/error.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/fall.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/fall.png
new file mode 100644
index 0000000..113059f
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/fall.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/fish.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/fish.png
new file mode 100644
index 0000000..20d3c3c
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/fish.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/fit.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/fit.png
new file mode 100644
index 0000000..548d1c0
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/fit.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/flow.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/flow.png
new file mode 100644
index 0000000..ffeafb4
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/flow.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/flow3.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/flow3.png
new file mode 100644
index 0000000..7b6bbcd
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/flow3.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/flow_dens.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/flow_dens.png
new file mode 100644
index 0000000..f6c55b1
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/flow_dens.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/fonts.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/fonts.png
new file mode 100644
index 0000000..dc4e9c3
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/fonts.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/grad.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/grad.png
new file mode 100644
index 0000000..1ef4bd8
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/grad.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/legend.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/legend.png
new file mode 100644
index 0000000..ae5b170
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/legend.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/loglog.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/loglog.png
new file mode 100644
index 0000000..568ccf8
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/loglog.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/map.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/map.png
new file mode 100644
index 0000000..fbdbbf9
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/map.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/mark.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/mark.png
new file mode 100644
index 0000000..0b79a03
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/mark.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/mesh.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/mesh.png
new file mode 100644
index 0000000..56e454d
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/mesh.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/mesh_cont.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/mesh_cont.png
new file mode 100644
index 0000000..fa2c0b5
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/mesh_cont.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/mirror.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/mirror.png
new file mode 100644
index 0000000..13ca100
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/mirror.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/molecule.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/molecule.png
new file mode 100644
index 0000000..977c78e
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/molecule.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/parser.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/parser.png
new file mode 100644
index 0000000..d55e743
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/parser.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/pde.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/pde.png
new file mode 100644
index 0000000..5c5b38e
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/pde.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/pie_chart.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/pie_chart.png
new file mode 100644
index 0000000..54e1e38
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/pie_chart.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/pipe.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/pipe.png
new file mode 100644
index 0000000..e0ffbf8
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/pipe.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/pipe2.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/pipe2.png
new file mode 100644
index 0000000..fa71e9c
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/pipe2.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/pipe3.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/pipe3.png
new file mode 100644
index 0000000..c50e9b4
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/pipe3.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/plot.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/plot.png
new file mode 100644
index 0000000..421e038
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/plot.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/qo2d.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/qo2d.png
new file mode 100644
index 0000000..d7f726f
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/qo2d.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/radar.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/radar.png
new file mode 100644
index 0000000..c69b848
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/radar.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/region.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/region.png
new file mode 100644
index 0000000..3e3fb6e
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/region.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/region_2.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/region_2.png
new file mode 100644
index 0000000..683b080
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/region_2.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/ring_chart.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/ring_chart.png
new file mode 100644
index 0000000..af749bc
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/ring_chart.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample1.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample1.png
new file mode 100644
index 0000000..ba8ca5c
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample1.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample2.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample2.png
new file mode 100644
index 0000000..1de07bf
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample2.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample3.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample3.png
new file mode 100644
index 0000000..5d3e2d9
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample3.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample4.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample4.png
new file mode 100644
index 0000000..47f4a29
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample4.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample5.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample5.png
new file mode 100644
index 0000000..b240d15
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample5.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample6.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample6.png
new file mode 100644
index 0000000..c5124f6
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample6.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample7.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample7.png
new file mode 100644
index 0000000..e7ea650
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample7.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample8.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample8.png
new file mode 100644
index 0000000..7f920ea
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample8.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample9.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample9.png
new file mode 100644
index 0000000..fe30eb2
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sample9.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/samplea.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/samplea.png
new file mode 100644
index 0000000..24664e7
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/samplea.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sampleb.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sampleb.png
new file mode 100644
index 0000000..c2aeccf
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sampleb.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/samplec.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/samplec.png
new file mode 100644
index 0000000..0892038
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/samplec.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sampled.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sampled.png
new file mode 100644
index 0000000..a0c3d68
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sampled.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/samplee.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/samplee.png
new file mode 100644
index 0000000..26753e0
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/samplee.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/semilog.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/semilog.png
new file mode 100644
index 0000000..9fb57c4
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/semilog.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/several_light.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/several_light.png
new file mode 100644
index 0000000..7f27600
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/several_light.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sew.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sew.png
new file mode 100644
index 0000000..146c9ef
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/sew.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/stem.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/stem.png
new file mode 100644
index 0000000..6a5fc97
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/stem.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/step.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/step.png
new file mode 100644
index 0000000..2728eeb
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/step.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/stereo.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/stereo.png
new file mode 100644
index 0000000..da19d3e
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/stereo.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/stfa.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/stfa.png
new file mode 100644
index 0000000..9c69520
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/stfa.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/stick.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/stick.png
new file mode 100644
index 0000000..53b57c1
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/stick.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf.png
new file mode 100644
index 0000000..6031bd1
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf3.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf3.png
new file mode 100644
index 0000000..b7c5eba
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf3.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf3_cutoff.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf3_cutoff.png
new file mode 100644
index 0000000..cd09a1a
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf3_cutoff.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf3_rgbd.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf3_rgbd.png
new file mode 100644
index 0000000..b471999
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf3_rgbd.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf3a.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf3a.png
new file mode 100644
index 0000000..464e247
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf3a.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf3c.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf3c.png
new file mode 100644
index 0000000..d957b92
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf3c.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_alpha.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_alpha.png
new file mode 100644
index 0000000..2e99593
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_alpha.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_caxis.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_caxis.png
new file mode 100644
index 0000000..f9a3477
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_caxis.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_cont.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_cont.png
new file mode 100644
index 0000000..715e6db
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_cont.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_cont_fog.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_cont_fog.png
new file mode 100644
index 0000000..a2d57ea
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_cont_fog.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_cont_y.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_cont_y.png
new file mode 100644
index 0000000..4294290
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_cont_y.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_cut.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_cut.png
new file mode 100644
index 0000000..0d581ab
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_cut.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_fog.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_fog.png
new file mode 100644
index 0000000..1b206d5
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_fog.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_sl.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_sl.png
new file mode 100644
index 0000000..6935b81
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surf_sl.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surfa.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surfa.png
new file mode 100644
index 0000000..86c4d83
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surfa.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surfc.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surfc.png
new file mode 100644
index 0000000..b4c44fb
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/surfc.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/tens.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/tens.png
new file mode 100644
index 0000000..0bb66d0
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/tens.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/ternary.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/ternary.png
new file mode 100644
index 0000000..bca7903
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/ternary.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/text.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/text.png
new file mode 100644
index 0000000..de4813d
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/text.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/textmark.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/textmark.png
new file mode 100644
index 0000000..2b4670b
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/textmark.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/tile.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/tile.png
new file mode 100644
index 0000000..43ae465
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/tile.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/tiles.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/tiles.png
new file mode 100644
index 0000000..dadf463
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/tiles.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/torus.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/torus.png
new file mode 100644
index 0000000..e313809
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/torus.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/traj.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/traj.png
new file mode 100644
index 0000000..91fa665
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/traj.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/tube.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/tube.png
new file mode 100644
index 0000000..ae81695
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/tube.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/tube_3d.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/tube_3d.png
new file mode 100644
index 0000000..caab082
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/tube_3d.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/tval.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/tval.png
new file mode 100644
index 0000000..d55b629
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/tval.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/type0.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/type0.png
new file mode 100644
index 0000000..cf74747
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/type0.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/type1.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/type1.png
new file mode 100644
index 0000000..469f7b3
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/type1.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/type2.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/type2.png
new file mode 100644
index 0000000..5b8893e
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/type2.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/vect.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/vect.png
new file mode 100644
index 0000000..f45d494
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/vect.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/vect3.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/vect3.png
new file mode 100644
index 0000000..2586809
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/vect3.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/vectc.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/vectc.png
new file mode 100644
index 0000000..7b6591c
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/vectc.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/vectc3.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/vectc3.png
new file mode 100644
index 0000000..e132e56
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/vectc3.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/vectl.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/vectl.png
new file mode 100644
index 0000000..db065f2
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/vectl.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/vectl3.png b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/vectl3.png
new file mode 100644
index 0000000..922e91a
Binary files /dev/null and b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mathgl_en.html/png/vectl3.png differ
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en.html
new file mode 100644
index 0000000..fd75109
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: MGL script language</title>
+
+<meta name="description" content="MGL script language for version 1.11: MGL script language">
+<meta name="keywords" content="MGL script language for version 1.11: MGL script language">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Top"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MGL-script-language"></a>
+<h1 class="settitle">MGL script language</h1>
+
+<p>This file documents the MGL script language. It corresponds to release 1.11 of the MathGL library. Please report any errors in this manual to <a href="mailto:mathgl.abalakin at gmail.org">mathgl.abalakin at gmail.org</a>. More information about MGL and MathGL can be found at the project homepage, <a href="http://mathgl.sourceforge.net/">http://mathgl.sourceforge.net/</a>.
+</p>
+<p>Copyright &copy; 2008 Alexey A. Balakin. 
+</p>
+<blockquote><p>Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being &ldquo;A GNU Manual,&rdquo;
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled &ldquo;GNU Free Documentation
+License.&rdquo;
+</p>
+<p>(a) The FSF&rsquo;s Back-Cover Text is: &ldquo;You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom.&rdquo;
+</p></blockquote>
+
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="mgl_en_1.html#MGL-interface">1. MGL language</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mgl_en_2.html#Examples">2. MathGL examples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mgl_en_3.html#Samples">3. Samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mgl_en_4.html#Copying-This-Manual">A. GNU Free Documentation License</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mgl_en_5.html#Index">Index</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_1.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_1.html
new file mode 100644
index 0000000..9a08f6f
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_1.html
@@ -0,0 +1,3182 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: 1. MGL language</title>
+
+<meta name="description" content="MGL script language for version 1.11: 1. MGL language">
+<meta name="keywords" content="MGL script language for version 1.11: 1. MGL language">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="MGL-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MGL-language"></a>
+<h1 class="chapter">1. MGL language</h1>
+
+<p>MathGL library supports the simplest scripts for data handling and plotting. These scripts can be used independently (with the help of UDAV, mgl2png, mgl2eps, mgl2svg programs and others, see section <a href="#Utilities">Utilities for parsing MGL</a>) or in the frame of the library using.
+</p>
+<p>MGL script language is rather simple. Each string is a command. First word of string is the name of command. Other words are command arguments. Command may have up to 1000 arguments (at least for now). Words are separated from each other by space or tabulation symbol. The upper or lower case of words is sufficient, i.e. variables <var>a</var> and <var>A</var> are different variables. Symbol &lsquo;<samp>#</samp>&rsquo; starts the comment (all characters after # will be ignored). The exception is situation when &lsquo;<samp>#</samp>&rsquo; is a part of some string. Also options can be specified after symbol &lsquo;<samp>;</samp>&rsquo; (see section <a href="#Command-options">Command options</a>). Symbol &lsquo;<samp>:</samp>&rsquo; starts new command (like new line character) if it is not placed inside a string or inside brackets.
+</p>
+<p>If string contain references to external parameters (substrings &lsquo;<samp>$0</samp>&rsquo;, &lsquo;<samp>$1</samp>&rsquo; ... &lsquo;<samp>$9</samp>&rsquo;) or definitions (substrings &lsquo;<samp>$a</samp>&rsquo;, &lsquo;<samp>$b</samp>&rsquo; ... &lsquo;<samp>$z</samp>&rsquo;) then before execution the values of parameter/definition will be substituted instead of reference. It allows to use the same MGL script for different parameters (filenames, paths, condition and so on).
+</p>
+<p>Argument can be a string, a variable name or a number. 
+</p><ul>
+<li> 
+The string is any symbols between ordinary marks &lsquo;<samp>'</samp>&rsquo;.
+
+</li><li> 
+Usually variable have a name which is arbitrary combination of symbols (except spaces and &lsquo;<samp>'</samp>&rsquo;) started from a letter and with length less than 64. A temporary array can be used as variable:
+<ul>
+<li> 
+sub-arrays (like in <a href="#subdata">subdata</a> command) as command argument. For example, <code>a(1)</code> or <code>a(1,:)</code> or <code>a(1,:,:)</code> is second row, <code>a(:,2)</code> or <code>a(:,2,:)</code> is third column, <code>a(:,:,0)</code> is first slice and so on. Also you can extract a part of array from m-th to n-th element by code <code>a(m:n,:,:)</code> or just <code>a(m:n)</code>.
+
+</li><li> 
+any column combinations defined by formulas, like <code>a('n*w^2/exp(t)')</code> if names for data columns was specified (by <a href="#idset">idset</a> command or in the file at string started with <code>##</code>).
+
+</li><li> 
+any expression (without spaces) of existed variables produce temporary variable. For example, &lsquo;<samp>sqrt(dat(:,5)+1)</samp>&rsquo; will produce temporary variable with data values equal to <code>tmp[i,j] = sqrt(dat[i,5,j]+1)</code>. 
+
+</li><li> 
+temporary variable of higher dimensions by help of []. For example, &lsquo;<samp>[1,2,3]</samp>&rsquo; will produce a temporary vector of 3 elements {1, 2, 3}; &lsquo;<samp>[[11,12],[21,22]]</samp>&rsquo; will produce matrix 2*2 and so on. Here you can join even an arrays of the same dimensions by construction like &lsquo;<samp>[v1,v2,...,vn]</samp>&rsquo;.
+
+</li><li> 
+result of code for making new data (see section <a href="#Make-another-data">Make another data</a>) inside {}. For example, &lsquo;<samp>{sum dat 'x'}</samp>&rsquo; produce temporary variable which contain result of summation of <var>dat</var> along direction &rsquo;x&rsquo;. This is the same array <var>tmp</var> as produced by command &lsquo;<samp>sum tmp dat 'x'</samp>&rsquo;. You can use nested constructions, like &lsquo;<samp>{sum {max dat 'z'} 'x'}</samp>&rsquo;.
+</li></ul>
+<p>Temporary variables can not be used as 1st argument for commands which create (return) the data (like &lsquo;<samp>new</samp>&rsquo;, &lsquo;<samp>read</samp>&rsquo;, &lsquo;<samp>hist</samp>&rsquo; and so on).
+</p>
+</li><li> 
+Special names <code>nan=#QNAN, pi=3.1415926..., on=1, off=0, :=-1</code> are treated as number if they were not redefined by user. Variables with suffixes are treated as numbers (see section <a href="#Suffixes">Suffixes for variable</a>). Names defined by <a href="#define">define</a> command are treated as number. Also results of formulas with sizes 1x1x1 are treated as number (for example, &lsquo;<samp>pi/dat.nx</samp>&rsquo;).
+</li></ul>
+<p>Before the first using all variables must be defined with the help of commands, like, <a href="#new">new</a>, <a href="#var">var</a>, <a href="#list">list</a>, <a href="#copy">copy</a>, <a href="#read">read</a>, <a href="#hist">hist</a>, <a href="#sum">sum</a> and so on (see section <a href="#Data-create">Data create</a> and <a href="#Make-another-data">Make another data</a>). 
+</p>
+<p>Command may have several set of possible arguments (for example, <code>plot ydat</code> and <code>plot xdat ydat</code>). All command arguments for a selected set must be specified. However, some arguments can have default values. These argument are printed in [], like <code>plot ydat ['stl'='' zval=nan]</code>. At this, the record <code>[arg1 arg2 arg3 ...]</code> means <code>[arg1 [arg2 [arg3 ...]]]</code>, i.e. you can omit only tailing arguments if you agree with its default values. For example, <code>plot ydat '' 1</code> or <code>plot ydat ''</code> is correct, but <code>plot ydat 1</code> is incorrect (argument <code>'stl'</code> is missed).
+</p>
+<p>All MGL commands can be divided on several groups. I will use the following notation for a command description: command names are bold, strings are denoted by commas, variable names are italic, numbers are typewriter. Optional arguments are placed in square brackets and default values for them are shown. Detailed description of color, line styles (see section <a href="#Line-styles">Line styles</a>), color schemes (see section <a href="#Color-scheme">Color scheme</a>), font types, TeX-like symbols (see section <a href="#Font-styles">Font styles</a>) and formulas (see section <a href="#Textual-formulas">Textual formulas</a>) can be found in corresponding section.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#General-concepts">1.1 General concepts</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Graphics-setup">1.2 Graphics setup</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-settings">1.3 Axis settings</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transformation-matrix">1.4 Transformation matrix</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Export-to-file">1.5 Export to file</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Primitives-drawing">1.6 Primitives drawing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing">1.7 Text printing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-Colorbar">1.8 Axis and Colorbar</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Legend">1.9 Legend</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting">1.10 1D plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting">1.11 2D plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting">1.12 3D plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting">1.13 Dual plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-fields">1.14 Vector fields</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-plotting">1.15 Other plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting">1.16 Nonlinear fitting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-create">1.17 Data create</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-filling">1.18 Data filling</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Rearrange-data">1.19 Rearrange data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#File-I_002fO">1.20 File I/O</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Make-another-data">1.21 Make another data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Change-data">1.22 Change data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Operators">1.23 Operators</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Program-flow">1.24 Program flow</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Command-options">1.25 Command options</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Suffixes">1.26 Suffixes for variable</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Utilities">1.27 Utilities for parsing MGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="General-concepts"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Coordinate-axes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="General-concepts-1"></a>
+<h2 class="section">1.1 General concepts</h2>
+
+<p>The set of MathGL features is rather rich &ndash; just the number of basic graphics types is larger than 40. Also there are functions for data handling, plot setup and so on. In spite of it I tried to keep a similar style in command names and in the order of arguments. Mostly it is used for different drawing functions.
+</p>
+<p>There are 4 most general (base) concepts:
+</p><ol>
+<li>
+<strong>Every plot settings (style of lines, font, color scheme) are specified by a string.</strong> It provides convenience for user/programmer &ndash; short string with parameters is more comprehensible than a large set of parameters. Also it provides portability &ndash; the strings are the same in any OS so that it is not necessary to think about argument types.
+</li><li>
+<strong>All commands have &ldquo;simplified&rdquo; and &ldquo;advanced&rdquo; forms.</strong> It is done for user&lt;/samp&gt;&amp;rsquo;s convenience. One needs to specify only one data array in the &ldquo;simplified&rdquo; form in order to see the result. But one may set parametric dependence of coordinates and produce rather complex curves and surfaces in the &ldquo;advanced&rdquo; form. In both cases the order of function arguments is the same: first data arrays, second the string with plot parameters, and later optional arguments for plot tuning.
+</li><li>
+<strong>All plots are vector plots.</strong> The MathGL library is intended for handling scientific data which have vector nature (lines, faces, matrices and so on). As a result, vector representation is used in all cases! In addition, the vector representation allows one to scale the plot easily &ndash; change the canvas size by a factor of 2, and the picture will be proportionally scaled.
+</li><li>
+<strong>New drawing never clears things drawn already.</strong> This, in some sense, unexpected, idea allows to create a lot of &ldquo;combined&rdquo; graphics. For example, to make a surface with contour lines one needs to call the function for surface plotting and the function for contour lines plotting (in any order). Thus the special functions for making this &ldquo;combined&rdquo; plots (as it is done in Matlab and some other plotting systems) are superfluous. Many more examples of such plots can be found in section <a href="mgl_en_2.html#Hints">Hints</a> and in home site (<a href="http://mathgl.sf.net/index.html">http://mathgl.sf.net/index.html</a>).
+</li></ol>
+
+<p>In addition to the general concepts I want to comment on some non-trivial or less commonly used general ideas &ndash; plot positioning, axis specification and curvilinear coordinates, styles for lines, text and color scheme.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Coordinate-axes">1.1.1 Coordinate axes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Line-styles">1.1.2 Line styles</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Color-scheme">1.1.3 Color scheme</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-styles">1.1.4 Font styles</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Textual-formulas">1.1.5 Textual formulas</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+
+
+<hr size="6">
+<a name="Coordinate-axes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#General-concepts" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Line-styles" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Coordinate-axes-1"></a>
+<h3 class="subsection">1.1.1 Coordinate axes</h3>
+
+<p>Two axis representations are used in MathGL. The first one consists of normalizing the data point coordinates in a box <var>Min</var>x<var>Max</var> (see section <a href="#Axis-settings">Axis settings</a>). If <var>Cut</var> is <code>true</code> then the outlier points are omitted, otherwise they are projected to the bounding box (see section <a href="#Cutting">Cutting</a>). Also, the point will be omitted if it lies inside the box defined by <var>CutMin</var> x <var>CutMax</var> or if the value of formula <code>CutOff</code>() is nonzero for its coordinates. After that, transformation formulas are applied to the data point. Finally, the data point is plotted by one of the functions.
+</p>
+<p>There is a possibility to set members <var>Max</var>, <var>Min</var> directly, but one should call <code>RecalcBorder()</code> function to setup plotting routines. A safer way is to set these values by calling the <code>Axis()</code> function, which calls <code>RecalcBorder()</code> automatically. Another way to specify the scaling of the axis is to set it as a minimal or maximal value of the data array. Functions <code>XRange(), YRange(), ZRange()</code> do it. The second (optional) argument is used to replace the axis range or to join with the existed range.
+</p>
+<p>The axis origin is defined by the variable <var>Org</var> and is applied to all consequent calls of axes or grid drawing. By default, if this point lies outside the bounding box then it is projected onto the one (variable <var>AutoOrg</var> controls it). If one of the values of <var>Org</var> is equal to NAN then the corresponding value will be selected automatically.
+</p>
+<p>There is 4-th axis <em>c</em> (color axis or colorbar) in addition to the usual axes <em>x, y, z</em>. It sets the range of values for the surface coloring. Its borders are automatically set to values of Min.z, Max.z during the call of <code>Axis()</code> function. Also, one can directly change the color range by setting variables <var>Cmax</var>, <var>Cmax</var>, or calling functions <code>CAxis()</code> or <code>CRange()</code>. Use <code>Colorbar()</code> function for showing the colorbar.
+</p>
+<p>The form (appearence) of tick labels is controlled by <code>SetTicks()</code> function (see section <a href="#Axis-settings">Axis settings</a>). It has 3 arguments: first one <var>d</var> sets the tick step (if positive) or tick number (if negative) or switches logarithmic ticks on (if zero); the second one, <var>ns</var>, sets the number of subticks; the last one is the starting point for ticks (default is axis origin). Function <var>SetTuneTicks</var> switches on/off tick enhancing by factoring out acommon multiplier (for small coordinate values, like 0.001 to 0.002, or large, like from 1000 to 2000) or common component (for narrow range, like from 0.999 to 1.000). Finally, you may use functions <code>SetXTT(), SetYTT(), SetZTT(), SetCTT()</code> for setting templates for tick labels (it supports TeX symbols). Also, there is a possibility to print arbitrary text as tick labels the by help of <code>SetTicksVal()</code> function.
+</p>
+<hr size="6">
+<a name="Line-styles"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Coordinate-axes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Color-scheme" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Line-styles-1"></a>
+<h3 class="subsection">1.1.2 Line styles</h3>
+
+<a name="index-Line-style"></a>
+<a name="index-Mark-style"></a>
+<a name="index-Arrows"></a>
+
+<p>The line style is defined by the string which may contain specifications for color (&lsquo;<samp>wkrgbcymhRGBCYMHWlenupqLENUPQ</samp>&rsquo;), dashing style (&lsquo;<samp>-|;:ji</samp>&rsquo; or space), width (&lsquo;<samp>0123456789</samp>&rsquo;) and marks (&lsquo;<samp>o+xsd.^v</samp>&rsquo; and &lsquo;<samp>#</samp>&rsquo; modifier). If one of the type of information is omitted then default values used with the previous color or one from palette (for see section <a href="#g_t1D-plotting">1D plotting</a>) are adopted. 
+By default palette contain following colors: <span style="color: rgb(76, 76, 76);">dark gray</span> &lsquo;<samp>H</samp>&rsquo;, <span style="color: rgb(0, 0, 255);">blue</span> &lsquo;<samp>b</samp>&rsquo;, <span style="color: rgb(0, 255, 0);">green</span> &lsquo;<samp>g</samp>&rsquo;, <span style="color: rgb(255, 0, 0);">red</span> &lsquo;<samp>r</samp>&rsquo;, <span style="color: rgb(0, 255, 255);">cyan</span> &lsquo;<samp>c</samp>&rsquo;, <span style="color: rgb(255, 0, 255);">magenta</span> &lsquo;<samp>m</samp>&rsquo;, <span style="color: rgb(255, 255, 0);">yellow</span> &lsquo;<samp>y</samp>&rsquo;, <span style="color: rgb(127, 127, 127);">gray</span> &lsquo;<samp>h</samp>&rsquo;, <span style="color: rgb(0, 255, 127);">green-blue</span> &lsquo;<samp>l</samp>&rsquo;, <span style="color: rgb(0, 127, 255);">sky-blue</span> &lsquo;<samp>n</samp>&rsquo;, <span style="color: rgb(255, 127, 0);">orange</span> &lsquo;<samp>q</samp>&rsquo;, <span style="color: rgb(127, 255, 0);">green-yellow</span> &lsquo;<samp>e</samp>&rsquo;, <span style="color: rgb(127, 0, 255);">blue-violet</span> &lsquo;<samp>u</samp>&rsquo;, <span style="color: rgb(255, 0, 127);">purple</span> &lsquo;<samp>p</samp>&rsquo;.
+
+<p>The color types are: &lsquo;<samp>k</samp>&rsquo; -- black, &lsquo;<samp>r</samp>&rsquo; -- <span style="color: rgb(255, 0, 0);">red</span>, &lsquo;<samp>R</samp>&rsquo; -- <span style="color: rgb(127, 0, 0);">dark red</span>, &lsquo;<samp>g</samp>&rsquo; -- <span style="color: rgb(0, 255, 0);">green</span>, &lsquo;<samp>G</samp>&rsquo; -- <span style="color: rgb(0, 127, 0);">dark green</span>, &lsquo;<samp>b</samp>&rsquo; -- <span style="color: rgb(0, 0, 255);">blue</span>, &lsquo;<samp>B</samp>&rsquo; -- <span style="color: rgb(0, 0, 127);">dark blue</span>, &lsquo;<samp>c</samp>&rsquo; -- <span style="color: rgb(0, 255, 255);">cyan</span>, &lsquo;<samp>C</samp>&rsquo; -- <span style="color: rgb(0, 127, 127);">dark cyan</span>, &lsquo;<samp>m</samp>&rsquo; -- <span style="color: rgb(255, 0, 255);">magenta</span>, &lsquo;<samp>M</samp>&rsquo; -- <span style="color: rgb(127, 0, 127);">dark magenta</span>, &lsquo;<samp>y</samp>&rsquo; -- <span style="color: rgb(255, 255, 0);">yellow</span>, &lsquo;<samp>Y</samp>&rsquo; -- <span style="color: rgb(127, 127, 0);">dark yellow (gold)</span>, &lsquo;<samp>h</samp>&rsquo; -- <span style="color: rgb(127, 127, 127);">gray</span>, &lsquo;<samp>H</samp>&rsquo; -- <span style="color: rgb(76, 76, 76);">dark gray</span>, &lsquo;<samp>w</samp>&rsquo; -- white, &lsquo;<samp>W</samp>&rsquo; -- <span style="color: rgb(178, 178, 178);">bright gray</span>, &lsquo;<samp>l</samp>&rsquo; -- <span style="color: rgb(0, 255, 127);">green-blue</span>, &lsquo;<samp>L</samp>&rsquo; -- <span style="color: rgb(0, 127, 63);">dark green-blue</span>, &lsquo;<samp>e</samp>&rsquo; -- <span style="color: rgb(127, 255, 0);">green-yellow</span>, &lsquo;<samp>E</samp>&rsquo; -- <span style="color: rgb(63, 127, 0);">dark green-yellow</span>, &lsquo;<samp>n</samp>&rsquo; -- <span style="color: rgb(0, 127, 255);">sky-blue</span>, &lsquo;<samp>N</samp>&rsquo; -- <span style="color: rgb(0, 63, 127);">dark sky-blue</span>, &lsquo;<samp>u</samp>&rsquo; -- <span style="color: rgb(127, 0, 255);">blue-violet</span>, &lsquo;<samp>U</samp>&rsquo; -- <span style="color: rgb(63, 0, 127);">dark blue-violet</span>, &lsquo;<samp>p</samp>&rsquo; -- <span style="color: rgb(255, 0, 127);">purple</span>, &lsquo;<samp>P</samp>&rsquo; -- <span style="color: rgb(127, 0, 63);">dark purple</span>, &lsquo;<samp>q</samp>&rsquo; -- <span style="color: rgb(255, 127, 0);">orange</span>, &lsquo;<samp>Q</samp>&rsquo; -- <span style="color: rgb(127, 63, 0);">dark orange (brown)</span>.</p>
+
+Dashing style has the following meaning: space -- no line (usable for plotting only marks), &lsquo;<samp>-</samp>&rsquo; -- solid line (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;), &lsquo;<samp>|</samp>&rsquo; -- long dashed line (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>;</samp>&rsquo; -- dashed line (&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>=</samp>&rsquo; -- small dashed line (&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;), &lsquo;<samp>:</samp>&rsquo; -- dotted line (&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;), &lsquo;<samp>j</samp>&rsquo; -- dash-dotted line (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>i</samp>&rsquo; -- small dash-dotted line (&#9632;&#9632;&#9632;&#9633;&#9633;&#9632;&#9633;&#9633;&#9632;&#9632;&#9632;&#9633;&#9633;&#9632;&#9633;&#9633;).</p>
+<p>Marker types are: &lsquo;<samp>o</samp>&rsquo; &ndash; circle, &lsquo;<samp>+</samp>&rsquo; &ndash; cross, &lsquo;<samp>x</samp>&rsquo; &ndash; skew cross, &lsquo;<samp>s</samp>&rsquo; - square, &lsquo;<samp>d</samp>&rsquo; - rhomb (or diamond), &lsquo;<samp>.</samp>&rsquo; &ndash; dot (point), &lsquo;<samp>^</samp>&rsquo; &ndash; triangle up, &lsquo;<samp>v</samp>&rsquo; &ndash; triangle down, &lsquo;<samp>&lt;</samp>&rsquo; &ndash; triangle left, &lsquo;<samp>&gt;</samp>&rsquo; &ndash; triangle right, &lsquo;<samp>#*</samp>&rsquo; &ndash; Y sign, &lsquo;<samp>#+</samp>&rsquo; &ndash; squared cross, &lsquo;<samp>#x</samp>&rsquo; &ndash; squared skew cross, &lsquo;<samp>#.</samp>&rsquo; &ndash; circled dot. If string contain symbol &lsquo;<samp>#</samp>&rsquo; then the solid versions of markers are used.
+</p>
+<div class="float">
+<img src="../png/sample5.png" alt="../png/sample5">
+
+</div><p><strong>Styles of lines and marks.
+</strong>
+</p>
+<p>One may specify to draw a special symbol (an arrow) at the beginning and at the end of line. This is done if the specification string contains one of the following symbols: &lsquo;<samp>A</samp>&rsquo; &ndash; outer arrow, &lsquo;<samp>V</samp>&rsquo; &ndash; inner arrow, &lsquo;<samp>I</samp>&rsquo; &ndash; transverse hatches, &lsquo;<samp>K</samp>&rsquo; &ndash; arrow with hatches, &lsquo;<samp>T</samp>&rsquo; &ndash; triangle, &lsquo;<samp>S</samp>&rsquo; &ndash; square, &lsquo;<samp>D</samp>&rsquo; &ndash; rhombus, &lsquo;<samp>O</samp>&rsquo; &ndash; circle, &lsquo;<samp>_</samp>&rsquo; &ndash; nothing (the default). The following rule applies: the first symbol specifies the arrow at the end of line, the second specifies the arrow at the beginning of the line. For example, &lsquo;<samp>r-A</samp>&rsquo; defines a red solid line with usual arrow at the end, &lsquo;<samp>b|AI</samp>&rsquo; defines a blue dash line with an arrow at the end and with hatches at the beginning, &lsquo;<samp>_O</samp>&rsquo; defines a line with the current style and with a circle at the beginning. These styles are applicable during the graphics plotting as well (for example, <a href="#g_t1D-plotting">1D plotting</a>).
+</p>
+<div class="float">
+<img src="../png/sampled.png" alt="../png/sampled">
+
+</div><p><strong>Arrow styles.
+</strong>
+</p>
+<hr size="6">
+<a name="Color-scheme"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Line-styles" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-styles" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Color-scheme-1"></a>
+<h3 class="subsection">1.1.3 Color scheme</h3>
+
+<a name="index-Color-scheme"></a>
+
+<p>The color scheme is used for determining the color of surfaces, isolines, isosurfaces and so on. The color scheme is defined by the string, which may contain several characters that are color id (see section <a href="#Line-styles">Line styles</a>) or characters &lsquo;<samp>d#:|</samp>&rsquo;. Symbol &lsquo;<samp>d</samp>&rsquo; denotes the interpolation by 3d position instead of the coloring by amplitude. Symbol &lsquo;<samp>#</samp>&rsquo; switches to mesh drawing or to a wire plot. Symbol &lsquo;<samp>|</samp>&rsquo; disables color interpolation in color scheme, which can be useful, for example, for sharp colors during matrix plotting. Symbol &lsquo;<samp>:</samp>&rsquo; finishes the color scheme parsing. Following it, the user may put styles for the text, rotation axis for curves/isocontours, and so on. Color scheme may contain up to 32 color values.
+</p>
+<p>You may also use &ldquo;lighted&rdquo; colors in the color scheme specification (<em>not in line style!</em>). The &ldquo;lighted&rdquo; color contain 2 symbols: first one is the usual symbol for color specification, the second one is a digit for its brightness. The digit can be in range &lsquo;<samp>1</samp>&rsquo;...&lsquo;<samp>9</samp>&rsquo;. 
+Number &lsquo;<samp>5</samp>&rsquo; corresponds to a normal color, &lsquo;<samp>1</samp>&rsquo; is a very dark version of the color (practically black), and &lsquo;<samp>9</samp>&rsquo; is a very bright version of the color (practically white). For example, the color scheme can be &lsquo;<samp>b2b7wr7r2</samp>&rsquo;.
+</p>
+<div class="float">
+<img src="../png/colors.png" alt="../png/colors">
+
+</div><p><strong>Colors and its ids.
+</strong>
+</p>
+<p>For coloring by <em>amplitude</em> (most common) the final color is a linear interpolation of color array. The color array is constructed from the string ids. The argument is the amplitude normalized between <var>Cmin</var> &ndash; <var>Cmax</var> (see section <a href="#Axis-settings">Axis settings</a>). For example, string containing 4 characters &lsquo;<samp>bcyr</samp>&rsquo; corresponds to a colorbar from blue (lowest value) through cyan (next value) through yellow (next value) to the red (highest value). String &lsquo;<samp>kw</samp>&rsquo; corresponds to a colorbar from black (lowest value) to white (highest value). String &lsquo;<samp>m</samp>&rsquo; corresponds to a simple magenta color.
+</p>
+<p>There are several useful combinations. String &lsquo;<samp>kw</samp>&rsquo; corresponds to the simplest gray color scheme where higher values are brighter. String &lsquo;<samp>wk</samp>&rsquo; presents the inverse gray color scheme where higher value is darker. Strings &lsquo;<samp>kRryw</samp>&rsquo;, &lsquo;<samp>kGgw</samp>&rsquo;, &lsquo;<samp>kBbcw</samp>&rsquo; present the well-known <em>hot</em>, <em>summer</em> and <em>winter</em> color schemes. Strings &lsquo;<samp>BbwrR</samp>&rsquo; and &lsquo;<samp>bBkRr</samp>&rsquo; allow to view bi-color figure on white or black background, where negative values are blue and positive values are red. String &lsquo;<samp>BbcyrR</samp>&rsquo; gives a color scheme similar to the well-known <em>jet</em> color scheme.
+</p>
+<div class="float">
+<img src="../png/color_schemes.png" alt="../png/color_schemes">
+
+</div><p><strong>Most popular color schemes.
+</strong>
+</p>
+<p>When coloring by <em>coordinate</em>, the final color is determined by the position of the point in 3d space and is calculated from formula c=x*c[1] + y*c[2] + z*c[3]. Here, c[1], c[2], c[3] are the first three elements of color array; x, y, z are normalized to <var>Min</var> &ndash; <var>Max</var> coordinates of the point. This type of coloring is useful for isosurface plot where color may show the exact position of a piece of surface.
+</p>
+<hr size="6">
+<a name="Font-styles"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Color-scheme" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Textual-formulas" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Font-styles-1"></a>
+<h3 class="subsection">1.1.4 Font styles</h3>
+
+<a name="index-Font-styles"></a>
+
+<p>Text style is specified by the string which may contain several characters of font (&lsquo;<samp>ribwou</samp>&rsquo;) and/or alignment (&lsquo;<samp>LRC</samp>&rsquo;) specifications. The string also may contain the color id characters &lsquo;<samp>wkrgbcymhRGBCYMHW</samp>&rsquo; (see section <a href="#Line-styles">Line styles</a>) after the symbol &lsquo;<samp>:</samp>&rsquo;. For example, &lsquo;<samp>biC:b</samp>&rsquo; sets the bold italic font text aligned at the center and with blue color.
+</p>
+<p>The font types are: &lsquo;<samp>r</samp>&rsquo; &ndash; roman font, &lsquo;<samp>i</samp>&rsquo; &ndash; italic style, &lsquo;<samp>b</samp>&rsquo; &ndash; bold style. By default roman roman font is used. The align types are: &lsquo;<samp>L</samp>&rsquo; &ndash; align left (default), &lsquo;<samp>C</samp>&rsquo; &ndash; align center, &lsquo;<samp>R</samp>&rsquo; &ndash; align right. Additional font effects are: &lsquo;<samp>w</samp>&rsquo; &ndash; wired, &lsquo;<samp>o</samp>&rsquo; &ndash; over-lined, &lsquo;<samp>u</samp>&rsquo; &ndash; underlined. 
+</p>
+<p>Also a parsing of the LaTeX-like syntax is provided. There are commands for the font style changing inside the string (for example, use \b for bold font): \a or \overline &ndash; over-lined, \b or \textbf &ndash; bold, \i or \textit &ndash; italic, \r or \textrm &ndash; roman (disable bold and italic attributes), \u or \underline &ndash; underlined, \w or \wire &ndash; wired, \big &ndash; bigger size, @ &ndash; smaller size. The lower and upper indexes are specified by &lsquo;<samp>_</samp>&rsquo; and &lsquo;<samp>^</samp>&rsquo; symbols. At this the changed font style is applied only on next symbol or symbols in braces {}. The text in braces {} are treated as single symbol that allow one to print the index of index. For example, compare the strings &lsquo;<samp>sin (x^{2^3})</samp>&rsquo; and &lsquo;<samp>sin (x^2^3)</samp>&rsquo;. You may also change text color inside string by command #? or by \color? where &lsquo;<samp>?</samp>&rsquo; is symbolic id of the color (see section <a href="#Line-styles">Line styles</a>). For example, words &lsquo;<samp>Blue</samp>&rsquo; and &lsquo;<samp>red</samp>&rsquo; will be colored in the string &lsquo;<samp>#b{Blue} and \colorr{red} text</samp>&rsquo;. The most of functions understand the newline symbol &lsquo;<samp>\n</samp>&rsquo; and allows to print multi-line text. Finally, you can use arbitrary UTF codes by command <code>\utf0x????</code>. For example, <code>\utf0x3b1</code> will produce
+ &alpha; symbol.</p>
+<p>The most of commands for special TeX or AMSTeX symbols, the commands for font style changing (\textrm, \textbf, \textit, \textsc, \overline, \underline), accents (\hat, \tilde, \dot, \ddot, \acute, \check, \grave, \bar, \breve) and roots (\sqrt, \sqrt3, \sqrt4) are recognized. The full list contain approximately 2000 commands. Note that first space symbol after the command is ignored, but second one is printed as normal symbol (space). For example, the following strings produce the same result <em>\tilde a</em>: &lsquo;<samp>\tilde{a}</samp>&rsquo;; &lsquo;<samp>\tilde a</samp>&rsquo;; &lsquo;<samp>\tilde{}a</samp>&rsquo;.
+</p>
+In particular, the Greek letters are recognizable special symbols: &alpha; &ndash; \alpha, &beta; &ndash; \beta, &gamma; &ndash; \gamma, &delta; &ndash; \delta, &epsilon; &ndash; \epsilon, &eta; &ndash; \eta, &iota; &ndash; \iota, &chi; &ndash; \chi, &kappa; &ndash; \kappa, &lambda; &ndash; \lambda, &mu; &ndash; \mu, &nu; &ndash; \nu, o &ndash; \o, &omega; &ndash; \omega, &#981; &ndash; \phi, &pi; &ndash; \pi, &psi; &ndash; \psi, &rho; &ndash; \rho, &sigma; &ndash; \sigma, &theta; &ndash; \theta, &tau; &ndash; \tau, &upsilon; &ndash; \upsilon, &xi; &ndash; \xi, &zeta; &ndash; \zeta, &sigmaf; &ndash; \varsigma, &#603; &ndash; \varepsilon, &thetasym; &ndash; \vartheta, &phi; &ndash; \varphi, &#1008; &ndash; \varkappa; A &ndash; \Alpha, B &ndash; \Beta, &Gamma; &ndash; \Gamma, &Delta; &ndash; \Delta, E &ndash; \Epsilon, H &ndash; \Eta, I &ndash; \Iota, C &ndash; \Chi, K &ndash; \Kappa, &Lambda; &ndash; \Lambda, M &ndash; \Mu, N &ndash; \Nu, O &ndash; \O, &Omega; &ndash; \Omega, &Phi; &ndash; \Phi, &Pi; &ndash; \Pi, &Psi; &ndash; \Psi, R &ndash; \Rho, &Sigma; &ndash; \Sigma, &Theta; &ndash; \Theta, T &ndash; \Tau, &Upsilon; &ndash; \Upsilon, &Xi; &ndash; \Xi, Z &ndash; \Zeta.
+
+<p>The small part of most common special TeX symbols are: &ang; &ndash; \angle, &sdot; &ndash; \cdot, &clubs; &ndash; \clubsuit, &#10003; &ndash; \checkmark, &cup; &ndash; \cup, &cap; &ndash; \cap, &#9826; &ndash; \diamondsuit, &#9671; &ndash; \diamond, &divide;
+ &ndash; \div, 
+&darr; &ndash; \downarrow, &dagger; &ndash; \dag, &Dagger; &ndash; \ddag, &equiv; &ndash; \equiv, &exist; &ndash; \exists, &#8994; &ndash; \frown, &#9837; &ndash; \flat, &ge; &ndash; \ge, &ge; &ndash; \geq, &#8807; &ndash; \geqq, &larr; &ndash; \gets, &#9825; &ndash; \heartsuit, &infin; &ndash; \infty, &int; &ndash; \int, \Int, &image;  &ndash; \Im, &#9826; &ndash; \lozenge, &#10216; &ndash; \langle, &le; &ndash; \le, &le; &ndash; \leq, &#8806; &ndash; \leqq, &larr; &ndash; \leftarrow, &#8723; &ndash; \mp, &nabla; &ndash; \nabla, &ne; &ndash; \ne, &ne; &ndash; \neq, &#9838; &ndash; \natural, &#8750; &ndash; \oint, &#8857; &ndash; \odot, &oplus; &ndash; \oplus, &part; &ndash; \partial, &#8741; &ndash; \parallel, &perp; &ndash;\perp, &plusmn; &ndash; \pm, &prop; &ndash; \propto, &prod; &ndash; \prod, &real; &ndash; \Re, &rarr; &ndash; \rightarrow, &#10217; &ndash; \rangle, &spades; &ndash; \spadesuit, ~ &ndash; \sim, &#8995; &ndash; \smile, &sub;  &ndash; \subset, &sup; &ndash; \supset, &radic; &ndash; \sqrt or \surd, &sect; &ndash; \S, &#9839; &ndash; \sharp, &sum; &ndash; \sum, &times; &ndash; \times, &rarr; &ndash; \to, &there4; &ndash; \therefore, &uarr; &ndash; \uparrow, &weierp; &ndash; \wp. </p>
+<p>The font size can be defined explicitly (if <var>size</var>&gt;0) or relative to a base font size as |<var>size</var>|*<var>FontSize</var> (if <var>size</var>&lt;0). The value <var>size</var>=0 specifies that the string will not be printed. The base font size is measured in internal &ldquo;MathGL&rdquo; units. Special functions <code>SetFontSizePT(), SetFontSizeCM(), SetFontSizeIN()</code> allow one to set it in more &ldquo;common&rdquo; variables for a given dpi value of the picture.
+</p>
+
+<hr size="6">
+<a name="Textual-formulas"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-styles" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Textual-formulas-1"></a>
+<h3 class="subsection">1.1.5 Textual formulas</h3>
+
+<a name="index-Textual-formulas"></a>
+
+<p>MathGL have the fast variant of textual formula evaluation 
+. There are a lot of functions and operators available. The operators are: &lsquo;<samp>+</samp>&rsquo; &ndash; addition, &lsquo;<samp>-</samp>&rsquo; &ndash; subtraction, &lsquo;<samp>*</samp>&rsquo; &ndash; multiplication, &lsquo;<samp>/</samp>&rsquo; &ndash; division, &lsquo;<samp>^</samp>&rsquo; &ndash; integer power. Also there are logical &ldquo;operators&rdquo;: &lsquo;<samp>&lt;</samp>&rsquo; &ndash; true if x&lt;y, &lsquo;<samp>&gt;</samp>&rsquo; &ndash; true if x&gt;y, &lsquo;<samp>=</samp>&rsquo; &ndash; true if x=y, &lsquo;<samp>&amp;</samp>&rsquo; &ndash; true if x and y both nonzero, &lsquo;<samp>|</samp>&rsquo; &ndash; true if x or y nonzero. These logical operators have lowest priority and return 1 if true or 0 if false.
+</p>
+<p>The basic functions are: &lsquo;<samp>sqrt(x)</samp>&rsquo; &ndash; square root of <var>x</var>, &lsquo;<samp>pow(x,y)</samp>&rsquo; &ndash; power <var>x</var> in <var>y</var>, &lsquo;<samp>ln(x)</samp>&rsquo; &ndash; natural logarithm of <var>x</var>, &lsquo;<samp>lg(x)</samp>&rsquo; &ndash; decimal logarithm of <var>x</var>, &lsquo;<samp>log(a,x)</samp>&rsquo; &ndash; logarithm base <var>a</var> of <var>x</var>, &lsquo;<samp>abs(x)</samp>&rsquo; &ndash; absolute value of <var>x</var>, &lsquo;<samp>sign(x)</samp>&rsquo; &ndash; sign of <var>x</var>, &lsquo;<samp>mod(x,y)</samp>&rsquo; &ndash; x modulo y, &lsquo;<samp>step(x)</samp>&rsquo; &ndash; step function, &lsquo;<samp>int(x)</samp>&rsquo; &ndash; integer part of <var>x</var>, &lsquo;<samp>rnd</samp>&rsquo; &ndash; random number, &lsquo;<samp>pi</samp>&rsquo; &ndash; number
+&pi; = 3.1415926&hellip;</p>
+
+<p>Trigonometric functions are: &lsquo;<samp>sin(x)</samp>&rsquo;, &lsquo;<samp>cos(x)</samp>&rsquo;, &lsquo;<samp>tan(x)</samp>&rsquo; (or &lsquo;<samp>tg(x)</samp>&rsquo;). Inverse trigonometric functions are: &lsquo;<samp>asin(x)</samp>&rsquo;, &lsquo;<samp>acos(x)</samp>&rsquo;, &lsquo;<samp>atan(x)</samp>&rsquo;. Hyperbolic functions are: &lsquo;<samp>sinh(x)</samp>&rsquo; (or &lsquo;<samp>sh(x)</samp>&rsquo;), &lsquo;<samp>cosh(x)</samp>&rsquo; (or &lsquo;<samp>ch(x)</samp>&rsquo;), &lsquo;<samp>tanh(x)</samp>&rsquo; (or &lsquo;<samp>th(x)</samp>&rsquo;). Inverse hyperbolic functions are: &lsquo;<samp>asinh(x)</samp>&rsquo;, &lsquo;<samp>acosh(x)</samp>&rsquo;, &lsquo;<samp>atanh(x)</samp>&rsquo;.
+</p>
+<p>There are a set of special functions: &lsquo;<samp>gamma(x)</samp>&rsquo; &ndash; Gamma function &Gamma;(x) = &int;<sub>0</sub><sup>&infin;</sup> t<sup>x-1</sup> exp(-t) dt, &lsquo;<samp>psi(x)</samp>&rsquo; &ndash; digamma function &psi;(x) = &Gamma;&prime;(x)/&Gamma;(x) for x&ne;0, &lsquo;<samp>ai(x)</samp>&rsquo; &ndash; Airy function Ai(x), &lsquo;<samp>bi(x)</samp>&rsquo; &ndash; Airy function Bi(x), &lsquo;<samp>cl(x)</samp>&rsquo; &ndash; Clausen function, &lsquo;<samp>li2(x)</samp>&rsquo; (or &lsquo;<samp>dilog(x)</samp>&rsquo;) &ndash; dilogarithm Li<sub>2</sub>(x) = -&real;&int;<sub>0</sub><sup>x</sup>ds log(1-s)/s, &lsquo;<samp>sinc(x)</samp>&rsquo; &ndash; compute sinc(x) = sin(&pi;x)/(&pi;x) for any value of x, &lsquo;<samp>zeta(x)</samp>&rsquo; &ndash; Riemann zeta function &zeta;(s) = &sum;<sub>k=1</sub><sup>&infin;</sup>k<sup>-s</sup> for arbitrary s&ne;1, &lsquo;<samp>eta(x)</samp>&rsquo; &ndash; eta function &eta;(s) = (1 - 2<sup>1-s</sup>)&zeta;(s) for arbitrary s, &lsquo;<samp>lp(l,x)</samp>&rsquo; &ndash; Legendre polynomial P<sub>l</sub>(x), (|x|&le;1, l&ge;0), &lsquo;<samp>w0(x)</samp>&rsquo; &ndash; principal branch of the Lambert W function, &lsquo;<samp>w1(x)</samp>&rsquo; &ndash; principal branch of the Lambert W function. Function W(x) is defined to be solution of the equation: W exp(W) = x. </p>
+
+<p>The exponent integrals are: &lsquo;<samp>ci(x)</samp>&rsquo; &ndash; Cosine integral Ci(x) = &int;<sub>0</sub><sup>x</sup>dt cos(t)/t, &lsquo;<samp>si(x)</samp>&rsquo; &ndash; Sine integral Si(x) = &int;<sub>0</sub><sup>x</sup>dt sin(t)/t, &lsquo;<samp>erf(x)</samp>&rsquo; &ndash; error function erf(x) = (2/&radic;&pi;) &int;<sub>0</sub><sup>x</sup>dt exp(-t<sup>2</sup>) , &lsquo;<samp>ei(x)</samp>&rsquo; &ndash; exponential integral Ei(x) = -PV(&int;<sub>-x</sub><sup>&infin;</sup>dt exp(-t)/t) (where PV denotes the principal value of the integral), &lsquo;<samp>e1(x)</samp>&rsquo; &ndash; exponential integral E<sub>1</sub>(x) = &real;&int;<sub>1</sub><sup>&infin;</sup>dt exp(-xt)/t, &lsquo;<samp>e2(x)</samp>&rsquo; &ndash; exponential integral E<sub>2</sub>(x) = &real;&int;<sub>1</sub>&infin;</sup>dt exp(-xt)/t<sup>2</sup>, &lsquo;<samp>ei3(x)</samp>&rsquo; &ndash; exponential integral Ei<sub>3</sub>(x) = &int;<sub>0</sub><sup>x</sup>dt exp(-t<sup>3</sup>) for x&ge;0. </p>
+
+<p>Bessel functions are: &lsquo;<samp>j(nu,x)</samp>&rsquo; &ndash; regular cylindrical Bessel function of fractional order <em>nu</em>, &lsquo;<samp>y(nu,x)</samp>&rsquo; &ndash; irregular cylindrical Bessel function of fractional order <em>nu</em>, &lsquo;<samp>i(nu,x)</samp>&rsquo; &ndash; regular modified Bessel function of fractional order <em>nu</em>, &lsquo;<samp>k(nu,x)</samp>&rsquo; &ndash; irregular modified Bessel function of fractional order <em>nu</em>. </p>
+
+<p>Elliptic integrals are: &lsquo;<samp>ee(k)</samp>&rsquo; &ndash; complete elliptic integral is denoted by E(k) = E(&pi;/2,k), &lsquo;<samp>ek(k)</samp>&rsquo; &ndash; complete elliptic integral is denoted by K(k) = F(&pi;/2,k), &lsquo;<samp>e(phi,k)</samp>&rsquo; &ndash; elliptic integral E(&phi;,k) = &int;<sub>0</sub><sup>&phi;</sup>dt &radic;(1 - k<sup>2</sup>sin<sup>2</sup>(t)), &lsquo;<samp>f(phi,k)</samp>&rsquo; &ndash; elliptic integral F(&phi;,k) = &int;<sub>0</sub><sup>&phi;</sup>dt 1/&radic;(1 - k<sup>2</sup>sin<sup>2</sup>(t))</p>
+<p>Jacobi elliptic functions are: &lsquo;<samp>sn(u,m)</samp>&rsquo;, &lsquo;<samp>cn(u,m)</samp>&rsquo;, &lsquo;<samp>dn(u,m)</samp>&rsquo;, &lsquo;<samp>sc(u,m)</samp>&rsquo;, &lsquo;<samp>sd(u,m)</samp>&rsquo;, &lsquo;<samp>ns(u,m)</samp>&rsquo;, &lsquo;<samp>cs(u,m)</samp>&rsquo;, &lsquo;<samp>cd(u,m)</samp>&rsquo;, &lsquo;<samp>nc(u,m)</samp>&rsquo;, &lsquo;<samp>ds(u,m)</samp>&rsquo;, &lsquo;<samp>dc(u,m)</samp>&rsquo;, &lsquo;<samp>nd(u,m)</samp>&rsquo;.
+</p>
+<p>Note, some of these functions are unavailable if NO_GSL is defined during compilation of MathGL library. 
+</p>
+<p>There is no difference between lower or upper case in formulas. If argument value lie outside the range of function definition then function returns NaN.
+</p>
+
+
+<hr size="6">
+<a name="Graphics-setup"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Textual-formulas" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Graphics-setup-1"></a>
+<h2 class="section">1.2 Graphics setup</h2>
+
+<p>Coomands in this group influences on overall graphics appearance. So all of them should be placed <em>before</em> any actual plotting commands. 
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Transparency">1.2.1 Transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lighting">1.2.2 Lighting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fog">1.2.3 Fog</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Default-sizes">1.2.4 Default sizes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Zooming">1.2.5 Zooming</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cutting">1.2.6 Cutting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-settings">1.2.7 Other settings</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Graphics-setup" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lighting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transparency-1"></a>
+<h3 class="subsection">1.2.1 Transparency</h3>
+
+<p>There are several commands for setup transparency. The general command is <a href="#alpha">alpha</a> which switch on/off the transparency for overall plot. It influence only for graphics which created after <a href="#alpha">alpha</a> call. Command <a href="#alphadef">alphadef</a> specify the default value of alpha-channel. You may switch off transparency of selected plot by command <a href="#transparent">transparent</a>. Finally, command <a href="#transptype">transptype</a> set the kind of transparency. See section <a href="mgl_en_3.html#Transparent-surface-sample">Transparent surface sample</a>, for sample code and picture.
+</p>
+<a name="index-alpha"></a>
+<p><a name="alpha"></a>
+</p><dl>
+<dt><a name="index-alpha-1"></a><u>MGL command:</u> <b>alpha</b><i> <code>[val=on]</code></i></dt>
+<dd><p>Sets the transparency on/off. It is recommended to call this command before any plotting command. Default value is <code>off</code>. Use <code>transparent off</code> in particular plot to disable its transparency.
+</p></dd></dl>
+<a name="index-alphadef"></a>
+<p><a name="alphadef"></a>
+</p><dl>
+<dt><a name="index-alphadef-1"></a><u>MGL command:</u> <b>alphadef</b><i> <code>val</code></i></dt>
+<dd><p>Default value of alpha channel (transparency) for all plotting commands. Initial value is 0.5.
+</p></dd></dl>
+<a name="index-transparent"></a>
+<p><a name="transparent"></a>
+</p><dl>
+<dt><a name="index-transparent-1"></a><u>MGL command:</u> <b>transparent</b><i> <code>val</code></i></dt>
+<dd><p>Temporary switches transparency on/off for the plot.
+</p></dd></dl>
+<a name="index-transptype"></a>
+<p><a name="transptype"></a>
+</p><dl>
+<dt><a name="index-transptype-1"></a><u>MGL command:</u> <b>transptype</b><i> <code>val</code></i></dt>
+<dd><p>This command set the transparency type. Normal transparency (&lsquo;<samp>0</samp>&rsquo;) &ndash; below things is less visible than upper ones. Glass-like transparency (&lsquo;<samp>1</samp>&rsquo;) &ndash; below and upper things are commutable and just decrease intensity of light by RGB channel. Lamp-like transparency (&lsquo;<samp>2</samp>&rsquo;) &ndash; below and upper things are commutable and are the source of some additional light. I recommend to set <code>alphadef 0.3</code> or less for lamp-like transparency. See section <a href="mgl_en_3.html#Normal-transparency">Normal transparency</a>, <a href="mgl_en_3.html#Glass_002dlike-transparency">Glass-like transparency</a>, <a href="mgl_en_3.html#Lamp_002dlike-transparency">Lamp-like transparency</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Lighting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fog" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Lighting-1"></a>
+<h3 class="subsection">1.2.2 Lighting</h3>
+
+<p>There are several commands for setup lighting. The general command is <a href="#light">light</a> which switch on/off the lighting for overall plot. Generally MathGL support up to 10 independent light sources. The position, color, brightness of each light source can be set separately. By default only one light source is active. It is source number <code>0</code> with white color, located at top of the plot.
+</p>
+<a name="index-light"></a>
+<p><a name="light"></a>
+</p><dl>
+<dt><a name="index-light-1"></a><u>MGL command:</u> <b>light</b><i> <code>[val=on]</code></i></dt>
+<dd><p>Sets the using of light on/off for overall plot. It is recommended to call this command before any plotting command. Default value is lightning off.
+</p></dd></dl>
+<dl>
+<dt><a name="index-light-2"></a><u>MGL command:</u> <b>light</b><i> <code>num val</code></i></dt>
+<dd><p>Switch on/off <var>num</var>-th light source separately.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-light-3"></a><u>MGL command:</u> <b>light</b><i> <code>num xpos ypos zpos</code> ['col'='w' <code>br=0.5</code>]</i></dt>
+<dd><p>The command adds a light source with identification <var>num</var> at position {<var>xpos</var>, <var>ypos</var>, <var>zpos</var>}. The color of light is <var>col</var> (white by default). The brightness of light is <var>br</var> which must be in range [0,1].
+</p></dd></dl>
+
+<a name="index-ambient"></a>
+<p><a name="ambient"></a>
+</p><dl>
+<dt><a name="index-ambient-1"></a><u>MGL command:</u> <b>ambient</b><i> <code>val</code></i></dt>
+<dd><p>Sets the brightness of ambient light. The value should be in range [0,1]. Initial value is 0.5. 
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fog"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lighting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Default-sizes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fog-1"></a>
+<h3 class="subsection">1.2.3 Fog</h3>
+
+<a name="index-fog"></a>
+<p><a name="fog"></a>
+</p><dl>
+<dt><a name="index-fog-1"></a><u>MGL command:</u> <b>fog</b><i> <code>val [dz=0.25]</code></i></dt>
+<dd><p>Command imitate a fog in the plot. Fog start from relative distance <var>dz</var> from view point and its density growths exponentially in depth. So that the fog influence is determined by law ~<em>1-exp(-d*z)</em>. Here <em>z</em> is normalized to 1 depth of the plot. If value <var>val</var>=<code>0</code> then the fog is absent. See section <a href="mgl_en_3.html#Surface-in-fog-sample">Surface in fog sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Default-sizes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fog" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Zooming" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Default-sizes-1"></a>
+<h3 class="subsection">1.2.4 Default sizes</h3>
+
+<p>These commands control the default (initial) values for most graphics parameters including sizes of markers, arrows, linewidth and so on. As any other settings these ones will influence only on plots created after the settings change.
+</p>
+<a name="index-barwidth"></a>
+<p><a name="barwidth"></a>
+</p><dl>
+<dt><a name="index-barwidth-1"></a><u>MGL command:</u> <b>barwidth</b><i> <code>val</code></i></dt>
+<dd><p>Sets relative width of rectangles in <code>bars, barh, boxplot</code>. Default value is <code>0.7</code>.
+</p></dd></dl>
+
+<a name="index-marksize"></a>
+<p><a name="marksize"></a>
+</p><dl>
+<dt><a name="index-marksize-1"></a><u>MGL command:</u> <b>marksize</b><i> <code>val</code></i></dt>
+<dd><p>The size of marks. Default value is <code>1</code>.
+</p></dd></dl>
+
+<a name="index-arrowsize"></a>
+<p><a name="arrowsize"></a>
+</p><dl>
+<dt><a name="index-arrowsize-1"></a><u>MGL command:</u> <b>arrowsize</b><i> <code>val</code></i></dt>
+<dd><p>The size of arrows for lines and curves. Default value is <code>1</code>.
+</p></dd></dl>
+
+<a name="index-linewidth"></a>
+<p><a name="linewidth"></a>
+</p><dl>
+<dt><a name="index-linewidth-1"></a><u>MGL command:</u> <b>linewidth</b><i> <code>val</code></i></dt>
+<dd><p>The variable define the base width for all lines. The value &lt;1 is ignored. Increase of this variables is actual for large bitmap pictures. Default value is <code>1</code>.
+</p></dd></dl>
+
+<a name="index-ticklen"></a>
+<p><a name="ticklen"></a>
+</p><dl>
+<dt><a name="index-ticklen-1"></a><u>MGL command:</u> <b>ticklen</b><i> <code>val</code> [<code>stt=1</code>]</i></dt>
+<dd><p>The relative length of axis ticks. Default value is <code>0.1</code>. Parameter <var>stt</var>&gt;0 set relative length of subticks which is in <code>sqrt(1+stt)</code> times smaller.
+</p></dd></dl>
+
+<a name="index-tickstl"></a>
+<p><a name="tickstl"></a>
+</p><dl>
+<dt><a name="index-tickstl-1"></a><u>MGL command:</u> <b>tickstl</b><i> 'stl' ['sub'='']</i></dt>
+<dd><p>The line style of axis ticks (<var>stl</var>) and subticks (<var>sub</var>). If <var>stl</var>=&rdquo; then default style is used (&lsquo;<samp>k</samp>&rsquo; or &lsquo;<samp>w</samp>&rsquo; depending on transparency type). If <var>sub</var>=&rdquo; then ticks style is used (i.e. <var>stl</var>).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Zooming"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Default-sizes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cutting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Zooming-1"></a>
+<h3 class="subsection">1.2.5 Zooming</h3>
+
+<p>These commands control the overall zooming of the picture or the sub-picture. Normally you can use these variables and commands for removing &ldquo;white&rdquo; spaces around a plot.
+</p>
+<a name="index-plotfactor"></a>
+<p><a name="plotfactor"></a>
+</p><dl>
+<dt><a name="index-plotfactor-1"></a><u>MGL command:</u> <b>plotfactor</b><i> <code>val</code></i></dt>
+<dd><p>The factor of plot size. It is not recommended to set it lower then 1.6. This is some analogue of command <a href="#zoom">zoom</a> but applied not to overall image but for each <a href="#inplot">inplot</a>. Use negative value to enable automatic <a href="#plotfactor">plotfactor</a> selection.
+</p></dd></dl>
+
+<a name="index-zoom"></a>
+<p><a name="zoom"></a>
+</p><dl>
+<dt><a name="index-zoom-1"></a><u>MGL command:</u> <b>zoom</b><i> <code>x1 y1 x2 y2</code></i></dt>
+<dd><p>The command changes the scale of graphics that correspond to zoom in/out of the picture. After command call the current plot will be cleared and further the picture will contain plotting from its part [x1,x2]*[y1,y2]. Here picture coordinates <var>x1</var>, <var>x2</var>, <var>y1</var>, <var>y2</var> changes from 0 to 1. Use <code>zoom 0 0 1 1</code> to return default view.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cutting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Zooming" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cutting-1"></a>
+<h3 class="subsection">1.2.6 Cutting</h3>
+
+<p>These commands set the condition when the points are excluded (cutted) from the drawing. Note, that a point with <code>nan</code> value(s) of coordinate or amplitude will be automatically excluded from the drawing.
+</p>
+<a name="index-cut"></a>
+<p><a name="cut"></a>
+</p><dl>
+<dt><a name="index-cut-1"></a><u>MGL command:</u> <b>cut</b><i> <code>val</code></i></dt>
+<dd><p>Determines how points outside bounding box are drawn. If it is <code>on</code> then points are excluded from plot (it is default) otherwise the points are projected to edges of bounding box.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cut-2"></a><u>MGL command:</u> <b>cut</b><i> <code>x1 y1 z1 x2 y2 z2</code></i></dt>
+<dd><p>Lower and upper edge of the box in which never points are drawn. If both edges are the same (the variables are equal) then the cutting box is empty. See section <a href="mgl_en_3.html#CutMinMax-sample">CutMinMax sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cut-3"></a><u>MGL command:</u> <b>cut</b><i> 'cond'</i></dt>
+<dd><p>Command set the cutting off condition by formula <var>cond</var>. This condition determine will point be plotted or not. If value of formula is nonzero then point is omitted, otherwise it plotted. Set argument as <code>''</code> to disable cutting off condition. See section <a href="mgl_en_3.html#CutOff-sample">CutOff sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Other-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cutting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Other-settings-1"></a>
+<h3 class="subsection">1.2.7 Other settings</h3>
+
+<a name="index-font"></a>
+<p><a name="font"></a>
+</p><dl>
+<dt><a name="index-font-1"></a><u>MGL command:</u> <b>font</b><i> 'fnt' [<code>val=6</code>]</i></dt>
+<dd><p>Font style for text and labels (see text). Initial style is &rsquo;fnt&rsquo;=&rsquo;rC&rsquo; give Roman font with centering. Parameter <code>val</code> sets the size of font for tick and axis labels. Default font size of axis labels is 1.4 times large than for tick labels. For more detail, see section <a href="#Font-styles">Font styles</a>.
+</p></dd></dl>
+
+<a name="index-rotatetext"></a>
+<p><a name="rotatetext"></a>
+</p><dl>
+<dt><a name="index-rotatetext-1"></a><u>MGL command:</u> <b>rotatetext</b><i> <code>val</code></i></dt>
+<dd><p>Set to use or not text rotation along axis. Initial value is <code>on</code>.
+</p></dd></dl>
+
+<a name="index-palette"></a>
+<p><a name="palette"></a>
+</p><dl>
+<dt><a name="index-palette-1"></a><u>MGL command:</u> <b>palette</b><i> 'colors'</i></dt>
+<dd><p>Set the palette as selected colors. Default value is <code>'Hbgrcmyhlnqeup'</code>. The palette is used mostly in 1D plots for curves which styles are not specified.
+</p></dd></dl>
+
+<a name="index-meshnum"></a>
+<p><a name="meshnum"></a>
+</p><dl>
+<dt><a name="index-meshnum-1"></a><u>MGL command:</u> <b>meshnum</b><i> <code>num</code></i></dt>
+<dd><p>Sets approximate number of lines in <a href="#mesh">mesh</a>, <a href="#fall">fall</a>, <a href="#grid">grid</a> and also the number of hachures in <a href="#vect">vect</a>, <a href="#vectc">vectc</a>, <a href="#dew">dew</a> and the number of cells in <a href="#cloud">cloud</a>. By default (=0) it draws all lines/hachures/cells.
+</p></dd></dl>
+
+<a name="index-axialdir"></a>
+<p><a name="axialdir"></a>
+</p><dl>
+<dt><a name="index-axialdir-1"></a><u>MGL command:</u> <b>axialdir</b><i> 'dir'</i></dt>
+<dd><p>Set direction around which curve rotated in <a href="#axial">axial</a>, <a href="#torus">torus</a>. Default value is &rsquo;z&rsquo;.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axis-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transformation-matrix" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-settings-1"></a>
+<h2 class="section">1.3 Axis settings</h2>
+
+<p>These large set of commands control how the axis and ticks will be drawn. Note that there is 3-step transformation of data coordinates are performed. Firstly, coordinates are projected and cutting is applied (see section <a href="#Cutting">Cutting</a>), after it transformation formulas are applied, and finally the data was normalized in bounding box.
+</p>
+<a name="index-axis"></a>
+<p><a name="axis"></a>
+</p><dl>
+<dt><a name="index-axis-1"></a><u>MGL command:</u> <b>axis</b><i> <code>x1 y1 x2 y2</code></i></dt>
+<dt><a name="index-axis-2"></a><u>MGL command:</u> <b>axis</b><i> <code>x1 y1 z1 x2 y2 z2</code></i></dt>
+<dd><a name="index-ranges"></a>
+<p><a name="ranges"></a>
+</p></dd><dt><a name="index-ranges-1"></a><u>MGL command:</u> <b>ranges</b><i> <code>x1 x2 y1 y2 [z1=0 z2=0]</code></i></dt>
+<dd><p>Sets the ranges of coordinates changing. Also it sets the range for coloring (analogous to <code>caxis z1 z2</code>). Initial ranges are [-1, 1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axis-3"></a><u>MGL command:</u> <b>axis</b><i> 'fx' 'fy' ['fz'='' 'fa'='']</i></dt>
+<dd><p>Sets the transformation formulas for curvilinear coordinates. Each string should contain mathematical expression for real coordinate depending on internal coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; and &lsquo;<samp>a</samp>&rsquo; or &lsquo;<samp>c</samp>&rsquo; for colorbar. For example, the cylindrical coordinates are introduced as <code>axis 'x*cos(y)' 'x*sin(y)' 'z'</code>. For removing of formulas the corresponding parameter should be <code>''</code>. The using of transformation formulas will slightly slowing the program, i.e. <code>axis '' '' ''</code> is faster than <code>axis '1*x' '1*y' '1*z'</code>. Initially all formulas are absent (Cartesian coordinates are used). For more details about functions and formulas, see section <a href="#Textual-formulas">Textual formulas</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axis-4"></a><u>MGL command:</u> <b>axis</b><i> <code>how</code></i></dt>
+<dd><p>Sets one of the predefined transformation formulas for curvilinear coordinate. Paramater <var>how</var> define the coordinates: &lsquo;<samp>0</samp>&rsquo; &ndash; Cartesian coordinates (no transformation); &lsquo;<samp>1</samp>&rsquo; &ndash; Polar coordiantes <em>x_n=x*cos(y),y_n=x*sin(y), z_n=z</em>; &lsquo;<samp>2</samp>&rsquo; &ndash; Spherical coordinates <em>x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y)</em>; &lsquo;<samp>3</samp>&rsquo; &ndash; Parabolic coordinates <em>x_n=x*y, y_n=(x*x-y*y)/2, z_n=z</em>; &lsquo;<samp>4</samp>&rsquo; &ndash; Paraboloidal coordinates <em>x_n=(x*x-y*y)*cos(z)/2, y_n=(x*x-y*y)*sin(z)/2, z_n=x*y</em>; &lsquo;<samp>5</samp>&rsquo; &ndash; Oblate coordinates <em>x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z), z_n=sinh(x)*sin(y)</em>; &lsquo;<samp>6</samp>&rsquo; &ndash; Prolate coordinates <em>x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z), z_n=cosh(x)*cos(y)</em>; &lsquo;<samp>7</samp>&rsquo; &ndash; Elliptic coordinates <em>x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z</em>; &lsquo;<samp>8</samp>&rsquo; &ndash; Toroidal coordinates <em>x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)), y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y))</em>; &lsquo;<samp>9</samp>&rsquo; &ndash; Bispherical coordinates <em>x_n=sin(y)*cos(z)/(cosh(x)-cos(y)), y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y))</em>; &lsquo;<samp>10</samp>&rsquo; &ndash; Bipolar coordinates <em>x_n=sinh(x)/(cosh(x)-cos(y)), y_n=sin(y)/(cosh(x)-cos(y)), z_n=z</em>.
+</p></dd></dl>
+
+<a name="index-caxis"></a>
+<p><a name="caxis"></a>
+</p><dl>
+<dt><a name="index-caxis-1"></a><u>MGL command:</u> <b>caxis</b><i> <code>z1 z2</code></i></dt>
+<dd><p>Sets the range for surface coloring. Initial range is [-1, 1].
+</p></dd></dl>
+
+<a name="index-origin"></a>
+<p><a name="origin"></a>
+</p><dl>
+<dt><a name="index-origin-1"></a><u>MGL command:</u> <b>origin</b><i> <code>x0 y0 [z0=nan]</code></i></dt>
+<dd><p>Center of axis cross section. If one of values is <code>nan</code> then MathGL library try to select optimal axis position.
+</p></dd></dl>
+
+<a name="index-ternary"></a>
+<p><a name="ternary"></a>
+</p><dl>
+<dt><a name="index-ternary-1"></a><u>MGL command:</u> <b>ternary</b><i> <code>val</code></i></dt>
+<dd><p>The command sets to draws Ternary plot. This special plot is for 3 dependent coordinates (components) <var>a</var>, <var>b</var>, <var>c</var> so that <var>a</var>+<var>b</var>+<var>c</var>=1. MathGL uses only 2 independent coordinates <var>a</var>=x and <var>b</var>=y since it is enough to plot everything. At this third coordinate z act as another parameter to produce contour lines, surfaces and so on. See section <a href="mgl_en_3.html#Ternary-plot-sample">Ternary plot sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-xrange"></a>
+<p><a name="xrange"></a>
+</p><dl>
+<dt><a name="index-xrange-1"></a><u>MGL command:</u> <b>xrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-yrange"></a>
+<p><a name="yrange"></a>
+</p></dd><dt><a name="index-yrange-1"></a><u>MGL command:</u> <b>yrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-zrange"></a>
+<p><a name="zrange"></a>
+</p></dd><dt><a name="index-zrange-1"></a><u>MGL command:</u> <b>zrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-crange"></a>
+<p><a name="crange"></a>
+</p></dd><dt><a name="index-crange-1"></a><u>MGL command:</u> <b>crange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><p>Sets the range for x-,y-,z- coordinate or coloring as minimal and maximal values of data <var>dat</var>. Parameter <code>add=on</code> shows that the new range will be joined to existed one (nut will not replace it). Parameter <var>fact</var> add additional range increase on value (<var>Max</var>-<var>Min</var>)*<var>fact</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xrange-2"></a><u>MGL command:</u> <b>xrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-yrange-2"></a><u>MGL command:</u> <b>yrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-zrange-2"></a><u>MGL command:</u> <b>zrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-crange-2"></a><u>MGL command:</u> <b>crange</b><i> <code>x1 x2</code></i></dt>
+<dd><p>Sets the range for x-,y-,z- coordinate or coloring. See also <a href="#axis">axis</a>.
+</p></dd></dl>
+
+<a name="index-xtick"></a>
+<p><a name="xtick"></a>
+</p><dl>
+<dt><a name="index-xtick-1"></a><u>MGL command:</u> <b>xtick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ytick"></a>
+<p><a name="ytick"></a>
+</p></dd><dt><a name="index-ytick-1"></a><u>MGL command:</u> <b>ytick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ztick"></a>
+<p><a name="ztick"></a>
+</p></dd><dt><a name="index-ztick-1"></a><u>MGL command:</u> <b>ztick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ctick"></a>
+<p><a name="ctick"></a>
+</p></dd><dt><a name="index-ctick-1"></a><u>MGL command:</u> <b>ctick</b><i> <code>val</code></i></dt>
+<dd><p>Sets step for x-, y-, z-axis ticks or colorbar ticks (if <var>val</var>&gt;0) or it&rsquo;s number (if <var>val</var>&lt;0) in corresponding direction. Zero value <var>val</var>=0 sets logarithmic ticks. Parameter <var>sub</var> sets the number of sub-ticks. Parameter <var>org</var> set the starting points for ticks. If not <code>org=nan</code> then the value from <a href="#origin">origin</a> is used.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xtick-2"></a><u>MGL command:</u> <b>xtick</b><i> 'templ'</i></dt>
+<dt><a name="index-ytick-2"></a><u>MGL command:</u> <b>ytick</b><i> 'templ'</i></dt>
+<dt><a name="index-ztick-2"></a><u>MGL command:</u> <b>ztick</b><i> 'templ'</i></dt>
+<dt><a name="index-ctick-2"></a><u>MGL command:</u> <b>ctick</b><i> 'templ'</i></dt>
+<dd><p>Sets the template for x-, y-, z-axis ticks or colorbar ticks. It may contain TeX symbols also. If <var>templ</var>=<code>''</code> then default template is used (in simplest case it is &lsquo;<samp>%.2g</samp>&rsquo;) with automatic detaching of common multiplier or common component.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xtick-3"></a><u>MGL command:</u> <b>xtick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dt><a name="index-ytick-3"></a><u>MGL command:</u> <b>ytick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dt><a name="index-ztick-3"></a><u>MGL command:</u> <b>ztick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dd><p>Sets manual positions <var>val1</var>,<var>val2</var>,... and labels <var>lbl1</var>,<var>lbl2</var>,... for ticks along x-, y-, z-axis. Labels may contain TeX symbols also.
+</p></dd></dl>
+
+<a name="index-adjust"></a>
+<p><a name="adjust"></a>
+</p><dl>
+<dt><a name="index-adjust-1"></a><u>MGL command:</u> <b>adjust</b><i> ['dir'='xyzc']</i></dt>
+<dd><p>Set the ticks step, number of sub-ticks and initial ticks position to be the most human readable for the axis along direction(s) <var>dir</var>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Transformation-matrix"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Export-to-file" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transformation-matrix-1"></a>
+<h2 class="section">1.4 Transformation matrix</h2>
+
+<p>These commands control how and where further plotting will be placed. There is a curtain order of calling of these commands for the better plot view. First one should be <a href="#subplot">subplot</a> or <a href="#inplot">inplot</a> for specifying the place. After it a <a href="#rotate">rotate</a> and <a href="#aspect">aspect</a>. And finally any other plotting commands may be called. Alternatevely you can use <a href="#columnplot">columnplot</a> for position plots in the column one by another without gap between plot axis (bounding boxes).
+</p>
+<a name="index-subplot"></a>
+<p><a name="subplot"></a>
+</p><dl>
+<dt><a name="index-subplot-1"></a><u>MGL command:</u> <b>subplot</b><i> <code>nx ny m [dx=0 dy=0]</code></i></dt>
+<dd><p>Puts further plotting in a <var>m</var>-th cell of <var>nx</var>*<var>ny</var> grid of the whole frame area. This command set off any aspects or rotations. So it should be used first for creating the subplot. From the aesthetical point of view it is not recommended to use this command with different matrices in the same frame. The position of the cell can be shifted from its default position by relative size <var>dx</var>, <var>dy</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-subplot-2"></a><u>MGL command:</u> <b>subplot</b><i> <code>nx ny m</code> 'style'</i></dt>
+<dd><p>The same as previous but space reserved for axis/colorbar is saved only if <var>style</var> contain: &lsquo;<samp>L</samp>&rsquo; or &lsquo;<samp>&lt;</samp>&rsquo; &ndash; at left side, &lsquo;<samp>R</samp>&rsquo; or &lsquo;<samp>&gt;</samp>&rsquo; &ndash; at right side, &lsquo;<samp>A</samp>&rsquo; or &lsquo;<samp>^</samp>&rsquo; &ndash; at top side, &lsquo;<samp>U</samp>&rsquo; or &lsquo;<samp>_</samp>&rsquo; &ndash; at bottom side.
+</p></dd></dl>
+
+<a name="index-inplot"></a>
+<p><a name="inplot"></a>
+</p><dl>
+<dt><a name="index-inplot-1"></a><u>MGL command:</u> <b>inplot</b><i> <code>x1 x2 y1 y2 [rel=off]</code></i></dt>
+<dd><p>Puts further plotting in some region of the whole frame surface. This command allows one to create a plot in arbitrary place of the screen. The position is defined by rectangular coordinates [<var>x1</var>, <var>x2</var>]*[<var>y1</var>, <var>y2</var>]. The coordinates <var>x1</var>, <var>x2</var>, <var>y1</var>, <var>y2</var> are normalized to interval [0, 1]. If parameter <var>rel</var>=<code>on</code> then the relative position to current <a href="#subplot">subplot</a> is used. This command set off any aspects or rotations. So it should be used first for creating subplot.
+</p></dd></dl>
+
+<a name="index-columnplot"></a>
+<p><a name="columnplot"></a>
+</p><dl>
+<dt><a name="index-columnplot-1"></a><u>MGL command:</u> <b>columnplot</b><i> <code>num ind [d=0]</code></i></dt>
+<dd><p>Puts further plotting in <var>ind</var>-th cell of column with <var>num</var> cells. The position is relative to previous <a href="#subplot">subplot</a> call (or <a href="#inplot">inplot</a> with <code>rel=off</code>). Parameter <var>d</var> set extra gap between cells.
+</p></dd></dl>
+
+<a name="index-stickplot"></a>
+<p><a name="stickplot"></a>
+</p><dl>
+<dt><a name="index-stickplot-1"></a><u>MGL command:</u> <b>stickplot</b><i> <code>num ind tet phi</code></i></dt>
+<dd><p>Puts further plotting in <var>ind</var>-th cell of stick with <var>num</var> cells. At this, stick is rotated on angles <var>tet</var>, <var>phi</var>. The position is relative to previous <a href="#subplot">subplot</a> call (or <a href="#inplot">inplot</a> with <code>rel=off</code>).
+</p></dd></dl>
+
+<a name="index-rotate"></a>
+<p><a name="rotate"></a>
+</p><dl>
+<dt><a name="index-rotate-1"></a><u>MGL command:</u> <b>rotate</b><i> <code>tetz tetx [tety=0]</code></i></dt>
+<dd><p>Rotates a further plotting relative to each axis (x, z, y) consecutively on angles <var>tetx</var>, <var>tetz</var>, <var>tety</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-rotate-2"></a><u>MGL command:</u> <b>rotate</b><i> <code>tet x y z</code></i></dt>
+<dd><p>Rotates a further plotting around vector {x,y,z} on angle <var>tet</var>.
+</p></dd></dl>
+
+<a name="index-aspect"></a>
+<p><a name="aspect"></a>
+</p><dl>
+<dt><a name="index-aspect-1"></a><u>MGL command:</u> <b>aspect</b><i> <code>ax ay [az=1]</code></i></dt>
+<dd><p>Defines aspect ratio for the plot. The viewable axes will be related one to another as the ratio <var>ax:ay:az</var>. For the best effect it should be used after <a href="#rotate">rotate</a> command.
+</p></dd></dl>
+
+<a name="index-perspective"></a>
+<p><a name="perspective"></a>
+</p><dl>
+<dt><a name="index-perspective-1"></a><u>MGL command:</u> <b>perspective</b><i> <code>val</code></i></dt>
+<dd><p>Add (switch on) the perspective to plot. The parameter <em>val ~ 1/z_eff \in [0,1)</em>. By default (<code>val=0</code>) the perspective is off.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Export-to-file"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transformation-matrix" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Primitives-drawing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Export-to-file-1"></a>
+<h2 class="section">1.5 Export to file</h2>
+
+<a name="index-write"></a>
+<p><a name="write"></a>
+</p><dl>
+<dt><a name="index-write-1"></a><u>MGL command:</u> <b>write</b><i> 'fname' [<code>solid=off</code>]</i></dt>
+<dd><p>Exports current picture/frame to file &rsquo;fname&rsquo; (file type is determined by extension). Solid (usually white) background will be used if <code>solid=on</code>. If &rsquo;fname&rsquo;=&rdquo; then the file &lsquo;<samp>frameNNNN.jpg</samp>&rsquo; is used, where &lsquo;<samp>NNNN</samp>&rsquo; is current frame id.
+</p></dd></dl>
+
+<a name="index-setsize"></a>
+<p><a name="setsize"></a>
+</p><dl>
+<dt><a name="index-setsize-1"></a><u>MGL command:</u> <b>setsize</b><i> <code>w h</code></i></dt>
+<dd><p>Sets size of picture in pixels. This function call <strong>must be</strong> placed before any plotting command because it completely remove picture content. In some program the call of this function is forbidden.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Primitives-drawing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Export-to-file" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Primitives-drawing-1"></a>
+<h2 class="section">1.6 Primitives drawing</h2>
+
+<p>These commands draw some simple objects like line, point, sphere, drop, cone and so on.
+</p>
+<a name="index-clf"></a>
+<p><a name="clf"></a>
+</p><dl>
+<dt><a name="index-clf-1"></a><u>MGL command:</u> <b>clf</b></dt>
+<dd><p>Clear the picture by removes all drawing from it. Does not change transformation matrix. 
+</p></dd></dl>
+
+<a name="index-ball"></a>
+<p><a name="ball"></a>
+</p><dl>
+<dt><a name="index-ball-1"></a><u>MGL command:</u> <b>ball</b><i> <code>x y</code> ['col'='r']</i></dt>
+<dt><a name="index-ball-2"></a><u>MGL command:</u> <b>ball</b><i> <code>x y z</code> ['col'='r']</i></dt>
+<dd><p>Draws a point (ball) at position {<var>x</var>, <var>y</var>, <var>z</var>} with color defined by string <var>col</var>.
+</p></dd></dl>
+
+<a name="index-line"></a>
+<p><a name="line"></a>
+</p><dl>
+<dt><a name="index-line-1"></a><u>MGL command:</u> <b>line</b><i> <code>x1 y1 x2 y2</code> ['stl'='']</i></dt>
+<dt><a name="index-line-2"></a><u>MGL command:</u> <b>line</b><i> <code>x1 y1 z1 x2 y2 z2</code> ['stl'='']</i></dt>
+<dd><p>Draws a geodesic line (straight line in Cartesian coordinates) from point {<var>x1</var>,<var>y1</var>,<var>z1</var>} to {<var>x2</var>,<var>y2</var>,<var>z2</var>} using line style <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-curve"></a>
+<p><a name="curve"></a>
+</p><dl>
+<dt><a name="index-curve-1"></a><u>MGL command:</u> <b>curve</b><i> <code>x1 y1 dx1 dy1 x2 y2 dx2 dy2</code> ['stl'='']</i></dt>
+<dt><a name="index-curve-2"></a><u>MGL command:</u> <b>curve</b><i> <code>x1 y1 z1 dx1 dy1 dz1 x2 y2 z2 dx2 dy2 dz2</code> ['stl'='']</i></dt>
+<dd><p>Draws Bezier-like curve from point {<var>x1</var>,<var>y1</var>,<var>z1</var>} to {<var>x2</var>,<var>y2</var>,<var>z2</var>} using line style <var>stl</var>. At this tangent is co-directed with {<var>dx1</var>,<var>dy1</var>,<var>dz1</var>}, {<var>dx2</var>,<var>dy2</var>,<var>dz2</var>} and proportional to its amplitude.
+</p></dd></dl>
+
+<a name="index-facex"></a>
+<p><a name="facex"></a>
+</p><dl>
+<dt><a name="index-facex-1"></a><u>MGL command:</u> <b>facex</b><i> <code>x0 y0 z0 wy wz</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><a name="index-facey"></a>
+<p><a name="facey"></a>
+</p></dd><dt><a name="index-facey-1"></a><u>MGL command:</u> <b>facey</b><i> <code>x0 y0 z0 wx wz</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><a name="index-facez"></a>
+<p><a name="facez"></a>
+</p></dd><dt><a name="index-facez-1"></a><u>MGL command:</u> <b>facez</b><i> <code>x0 y0 z0 wx wy</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><p>Draws the solid rectangle (face) perpendicular to [x,y,z]-axis correspondingly at position {<var>x0</var>, <var>y0</var>, <var>z0</var>} with color <var>stl</var> and with widths <var>wx</var>, <var>wy</var>, <var>wz</var> along corresponding directions. At this colors can be the same for all vertexes or different if all 4 colors are specified for each vertex. Parameters <var>d1</var>!=0, <var>d2</var>!=0 set additional shift of the last vertex (i.e. to draw quadrangle).
+</p></dd></dl>
+
+<a name="index-sphere"></a>
+<p><a name="sphere"></a>
+</p><dl>
+<dt><a name="index-sphere-1"></a><u>MGL command:</u> <b>sphere</b><i> <code>x0 y0 r</code> ['col'='r']</i></dt>
+<dt><a name="index-sphere-2"></a><u>MGL command:</u> <b>sphere</b><i> <code>x0 y0 z0 r</code> ['col'='r']</i></dt>
+<dd><p>Draw the sphere with radius <var>r</var> and center at point {<var>x0</var>, <var>y0</var>, <var>z0</var>} and color <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-drop"></a>
+<p><a name="drop"></a>
+</p><dl>
+<dt><a name="index-drop-1"></a><u>MGL command:</u> <b>drop</b><i> <code>x0 y0 dx dy r</code> ['col'='b' <code>sh=1 asp=1</code>]</i></dt>
+<dt><a name="index-drop-2"></a><u>MGL command:</u> <b>drop</b><i> <code>x0 y0 z0 dx dy dz r</code> ['col'='b' <code>sh=1 asp=1</code>]</i></dt>
+<dd><p>Draw the drop with radius <var>r</var> at point {<var>x0</var>,<var>y0</var>,<var>z0</var>} elongated in direction {<var>dx</var>,<var>dy</var>,<var>dz</var>} and with color <var>col</var>. Parameter <var>sh</var> set the degree of drop oblongness: &lsquo;<samp>0</samp>&rsquo; is sphere, &lsquo;<samp>1</samp>&rsquo; is maximally oblongness drop. Parameter <var>asp</var> set relative width of the drop (this is analogue of &ldquo;ellipticity&rdquo; for the sphere). See section <a href="mgl_en_3.html#Drops-sample">Drops sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-cone"></a>
+<p><a name="cone"></a>
+</p><dl>
+<dt><a name="index-cone-1"></a><u>MGL command:</u> <b>cone</b><i> <code>x1 y1 z1 x2 y2 z2 r1</code> [<code>r2=-1</code> 'stl'='' <code>edge=off</code>]</i></dt>
+<dd><p>Draw tube (or truncated cone if <var>edge</var>=<code>off</code>) between points {<var>x1</var>,<var>y1</var>,<var>z1</var>}, {<var>x2</var>,<var>y2</var>,<var>z2</var>} with radiuses at the edges <var>r1</var>, <var>r2</var>. If <var>r2</var>&lt;0 then it is supposed that <var>r2</var>=<var>r1</var>. The cone color is defined by string <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-rect"></a>
+<p><a name="rect"></a>
+</p><dl>
+<dt><a name="index-rect-1"></a><u>MGL command:</u> <b>rect</b><i> <code>x1 y1 x2 y2</code> ['st'='']</i></dt>
+<dt><a name="index-rect-2"></a><u>MGL command:</u> <b>rect</b><i> <code>x1 y1 z1 x2 y2 z2</code> ['st'='']</i></dt>
+<dd><p>Draw rectangle from point {<var>x1</var>,<var>y1</var>,<var>z1</var>} to point {<var>x2</var>,<var>y2</var>,<var>z2</var>} using colors <var>stl</var>. If <var>stl</var> have 4 or more colors then it defines colors for each rectangle vertex (useful for making gradients, like &lsquo;<samp>wwrr</samp>&rsquo;) else first color is used for whole rectangle.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Text-printing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Primitives-drawing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-Colorbar" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-printing-1"></a>
+<h2 class="section">1.7 Text printing</h2>
+
+<p>These commands draw the text. There are commands for drawing text in arbitrary place, in arbitrary direction and along arbitrary curve. It is possible to use arbitrary font-faces and parse many TeX commands. The Unicode text is supported. So sometimes you need to specify locale. The <code>size</code> argument control the size of text: if positive it give the value, if negative it give the value relative to defined by <code>font</code> command. See section <a href="#Font-styles">Font styles</a>.
+</p>
+<a name="index-text"></a>
+<p><a name="text"></a>
+</p><dl>
+<dt><a name="index-text-1"></a><u>MGL command:</u> <b>text</b><i> <code>x y</code> 'text' ['fnt'='' <code>size=-1.4</code>]</i></dt>
+<dt><a name="index-text-2"></a><u>MGL command:</u> <b>text</b><i> <code>x y z</code> 'text' ['fnt'='' <code>size=-1.4</code>]</i></dt>
+<dd><p>Draws unrotated text string <var>text</var> at position {<var>x</var>,<var>y</var>,<var>z</var>} with specified style <var>fnt</var> and <var>size</var>. By default parameters from <code>font</code> command are used.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-text-3"></a><u>MGL command:</u> <b>text</b><i> <code>x y dx dy</code> 'text' [<code>size=-1.4</code>]</i></dt>
+<dt><a name="index-text-4"></a><u>MGL command:</u> <b>text</b><i> <code>x y z dx dy dz</code> 'text' [<code>size=-1.4</code>]</i></dt>
+<dd><p>The command plots the string <var>text</var> at position {<var>x</var>,<var>y</var>,<var>z</var>} along direction {<var>dx</var>,<var>dy</var>,<var>dz</var>} with specified style <var>fnt</var> and <var>size</var>. By default parameters from <code>font</code> command are used.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-text-5"></a><u>MGL command:</u> <b>text</b><i> ydat 'text' ['fnt'='' <code>size=-1 zval=nan</code>]</i></dt>
+<dt><a name="index-text-6"></a><u>MGL command:</u> <b>text</b><i> xdat ydat 'text' ['fnt'='' <code>size=-1 zval=nan</code>]</i></dt>
+<dt><a name="index-text-7"></a><u>MGL command:</u> <b>text</b><i> xdat ydat zdat 'text' ['fnt'='' <code>size=-1</code>]</i></dt>
+<dd><p>The command draws <var>text</var> along the curve between points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} by font style <var>fnt</var> and with size <var>size</var>. The string <var>fnt</var> may contain symbols &lsquo;<samp>t</samp>&rsquo; for printing the text under the curve (default), or &lsquo;<samp>T</samp>&rsquo; for printing the text above the curve. The sizes of 1st dimension must be equal for all arrays <var>xdat.nx=ydat.nx=zdat.nx</var>. If array <var>xdat</var> is not specified then its an automatic array is used with values equidistantly distributed along x. If array <var>zdat</var> is not specified then <var>z</var>[i] = <var>zval</var> is used. See section <a href="mgl_en_3.html#Text-sample">Text sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-title"></a>
+<p><a name="title"></a>
+</p><dl>
+<dt><a name="index-title-1"></a><u>MGL command:</u> <b>title</b><i> 'text' ['fnt'='' <code>size=-2</code>]</i></dt>
+<dd><p>Print string <var>text</var> as title of the picture (at the top of the picture). Can be used at any place (even inside <a href="#subplot">subplot</a>).
+</p></dd></dl>
+
+<a name="index-fgets"></a>
+<p><a name="fgets"></a>
+</p><dl>
+<dt><a name="index-fgets-1"></a><u>MGL command:</u> <b>fgets</b><i> <code>x y</code> 'fname' [<code>n=0</code> 'fnt'='' <code>size=-1.4</code>]</i></dt>
+<dt><a name="index-fgets-2"></a><u>MGL command:</u> <b>fgets</b><i> <code>x y z</code> 'fname' [<code>n=0</code> 'fnt'='' <code>size=-1.4</code>]</i></dt>
+<dd><p>Draws unrotated <var>n</var>-th line of file <var>fname</var> at position {<var>x</var>,<var>y</var>,<var>z</var>} with specified <var>size</var>. By default parameters from <a href="#font">font</a> command are used.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Axis-and-Colorbar"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-and-Colorbar-1"></a>
+<h2 class="section">1.8 Axis and Colorbar</h2>
+
+<p>These commands draw the &ldquo;things for measuring&rdquo;, like axis with ticks, colorbar with ticks, grid along axis, bounding box and labels for axis. For more information see section <a href="#Axis-settings">Axis settings</a>.
+</p>
+<a name="index-axis-5"></a>
+<dl>
+<dt><a name="index-axis-6"></a><u>MGL command:</u> <b>axis</b><i> ['dir'='xyz' <code>adjust=off</code>]</i></dt>
+<dd><p>Draws axes with ticks (see section <a href="#Axis-settings">Axis settings</a>) in directions determined by string parameter <var>dir</var>.If string contain the symbol &lsquo;<samp>_</samp>&rsquo; then tick labels are not printed. Font for ticks labels is determined by command <a href="#font">font</a>. Ticks will be automatically adjusted if <var>adjust</var>=<code>on</code> (by call of <code>adjust 'dir'</code>).
+</p></dd></dl>
+
+<a name="index-colorbar"></a>
+<p><a name="colorbar"></a>
+</p><dl>
+<dt><a name="index-colorbar-1"></a><u>MGL command:</u> <b>colorbar</b><i> ['sch'='' <code>pos=0</code>]</i></dt>
+<dd><p>Draws colorbar with color scheme <var>sch</var> (current scheme if <code>sch=''</code>) at edge of plot. Parameter <var>pos</var> specifies the position of colorbar: &lsquo;<samp>0</samp>&rsquo; - at right (default), &lsquo;<samp>1</samp>&rsquo; - at left, &lsquo;<samp>2</samp>&rsquo; - at top, &lsquo;<samp>3</samp>&rsquo; - at bottom. If string <var>sch</var> contains &lsquo;<samp>&lt;&gt;^_</samp>&rsquo; then the parameter <var>pos</var> is defined as: <code>pos=0</code> for &lsquo;<samp>&gt;</samp>&rsquo; (right), <code>pos=1</code> for &lsquo;<samp>&lt;</samp>&rsquo; (left), <code>pos=2</code> for &lsquo;<samp>^</samp>&rsquo; (top), <code>pos=3</code> for &lsquo;<samp>_</samp>&rsquo; (bottom). If string have &lsquo;<samp>A</samp>&rsquo; then absolute (relative to picture) coordinates is used. See section <a href="mgl_en_3.html#Dens-sample">Dens sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-colorbar-2"></a><u>MGL command:</u> <b>colorbar</b><i> vdat ['sch'='' <code>pos=0</code>]</i></dt>
+<dd><p>The same as previous but with sharp colors <var>sch</var> (current palette if <code>sch=&quot;&quot;</code>) for values <var>v</var>. See section <a href="mgl_en_3.html#ContD-sample">ContD sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-colorbar-3"></a><u>MGL command:</u> <b>colorbar</b><i> 'sch' <code>pos x y w h</code></i></dt>
+<dd><p>The same as first one but at arbitrary position of subplot {<var>x</var>, <var>y</var>} (supposed to be in range [0,1]). Parameters <var>w</var>, <var>h</var> set the relative width and height of the colorbar.
+</p></dd></dl>
+
+<a name="index-grid"></a>
+<p><a name="grid"></a>
+</p><dl>
+<dt><a name="index-grid-1"></a><u>MGL command:</u> <b>grid</b><i> ['dir'='xyz' 'pen'='B']</i></dt>
+<dd><p>Draws grid lines perpendicular to direction determined by string parameter <var>dir</var>. The step of grid lines is the same as tick step for an <code>axis</code>. The style of lines is determined by <var>pen</var> parameter.
+</p></dd></dl>
+
+<a name="index-box"></a>
+<p><a name="box"></a>
+</p><dl>
+<dt><a name="index-box-1"></a><u>MGL command:</u> <b>box</b><i> ['stl'='k' <code>ticks=on</code>]</i></dt>
+<dd><p>Draws bounding box outside the plotting volume with line style &rsquo;stl&rsquo;. If <code>ticks=on</code> then ticks are drawn with current axis setting.
+</p></dd></dl>
+
+<a name="index-xlabel"></a>
+<p><a name="xlabel"></a>
+</p><dl>
+<dt><a name="index-xlabel-1"></a><u>MGL command:</u> <b>xlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-ylabel"></a>
+<p><a name="ylabel"></a>
+</p></dd><dt><a name="index-ylabel-1"></a><u>MGL command:</u> <b>ylabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-zlabel"></a>
+<p><a name="zlabel"></a>
+</p></dd><dt><a name="index-zlabel-1"></a><u>MGL command:</u> <b>zlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-tlabel"></a>
+<p><a name="tlabel"></a>
+</p></dd><dt><a name="index-tlabel-1"></a><u>MGL command:</u> <b>tlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><p>Prints the label <var>text</var> for x-,y-,z-,t-axis (here &lsquo;<samp>t</samp>&rsquo; is &ldquo;ternary&rdquo; axis <em>t=1-x-y</em>). The position of label is determined by <var>pos</var> parameter. If <var>pos</var>=0 then label is printed at the center of axis. If <var>pos</var>&gt;0 then label is printed at the maximum of axis (default). If <var>pos</var>&lt;0 then label is printed at the minimum of axis. The font size is 1.4 times larger than the one for ticks <code>font</code>. Parameter <code>shift</code> specify additional shifting of the label. See section <a href="#Text-printing">Text printing</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Legend"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-Colorbar" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Legend-1"></a>
+<h2 class="section">1.9 Legend</h2>
+
+<p>These commands draw legend to the graph (useful for <a href="#g_t1D-plotting">1D plotting</a>). Legend entry is a pair of strings: one for style of the line, another one with description text (with included LaTeX parsing). The array of string are accumulated first to the internal arrays (by command <a href="#addlegend">addlegend</a>) and are plotted later. The position of the legend can be selected automatic or manually. Parameters <var>fnt</var> and <var>size</var> specify the font style and size. Parameter <var>llen</var> set the relative width of the line sample and the text indent (default value is 0.1). If line style string for entry is empty then the corresponding text is printed without indent. If string contains &lsquo;<samp>A</samp>&rsquo; then legend coordinates set position in the picture. See section <a href="mgl_en_3.html#Legend-sample">Legend sample</a>, for sample code and picture.
+</p>
+<a name="index-legend"></a>
+<p><a name="legend"></a>
+</p><dl>
+<dt><a name="index-legend-1"></a><u>MGL command:</u> <b>legend</b><i> [<code>pos=3</code> 'fnt'='rL' <code>size=-1 llen=0.1</code>]</i></dt>
+<dd><p>Draws legend of accumulated legend entries by font <var>fnt</var> with specified <var>size</var>. Parameter <var>pos</var> sets the position of the legend: &lsquo;<samp>0</samp>&rsquo; is bottom left corner, &lsquo;<samp>1</samp>&rsquo; is bottom right corner, &lsquo;<samp>2</samp>&rsquo; is top left corner, &lsquo;<samp>3</samp>&rsquo; is top right corner (is default).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-legend-2"></a><u>MGL command:</u> <b>legend</b><i> <code>x y</code> ['fnt'='rL' <code>size=-1 llen=0.1</code>]</i></dt>
+<dd><p>Draws legend of accumulated legend entries by font <var>fnt</var> with <var>size</var>. Position of legend in the current subplot is determined by parameter <var>x</var>, <var>y</var> which supposed to be normalized to interval [0,1].
+</p></dd></dl>
+
+<a name="index-addlegend"></a>
+<p><a name="addlegend"></a>
+</p><dl>
+<dt><a name="index-addlegend-1"></a><u>MGL command:</u> <b>addlegend</b><i> 'text' 'stl'</i></dt>
+<dd><p>Adds string <var>text</var> to internal legend accumulator. The style of described line and mark is specified in string <var>stl</var> (see section <a href="#Line-styles">Line styles</a>). Maximal number of entries is 100.
+</p></dd></dl>
+
+<a name="index-clearlegend"></a>
+<p><a name="clearlegend"></a>
+</p><dl>
+<dt><a name="index-clearlegend-1"></a><u>MGL command:</u> <b>clearlegend</b></dt>
+<dd><p>Clears saved legend strings.
+</p></dd></dl>
+
+<a name="index-legendbox"></a>
+<p><a name="legendbox"></a>
+</p><dl>
+<dt><a name="index-legendbox-1"></a><u>MGL command:</u> <b>legendbox</b><i> <code>val</code></i></dt>
+<dd><p>Switches on/off the drawing of a box near legend. By default, the box is drawn.
+</p></dd></dl>
+
+<a name="index-legendmarks"></a>
+<p><a name="legendmarks"></a>
+</p><dl>
+<dt><a name="index-legendmarks-1"></a><u>MGL command:</u> <b>legendmarks</b><i> <code>val</code></i></dt>
+<dd><p>Set the number of marks in the legend. By default 1 mark is used.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t1D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-plotting-1"></a>
+<h2 class="section">1.10 1D plotting</h2>
+
+<p>These commands perform plotting of 1D data. 1D means that data depended from only 1 parameter like parametric curve {x(i),y(i),z(i)}, i=1...n. There are 5 generally different types of data representations: simple line plot (<a href="#plot">plot</a>), line plot with filling under it (<a href="#area">area</a>), stairs plot (<a href="#step">step</a>), bar plot (<a href="#bars">bars</a>, <a href="#barh">barh</a>) and vertical lines (<a href="#stem">stem</a>). Each type of plotting has similar interface. Most of plotting type has similar interface. There are 3D version and two 2D versions. One of last requires single array. The parameters of line and marks are specified by the string argument. If the string parameter is NULL then solid line with color from palette is used (see section <a href="#Line-styles">Line styles</a>). Also there are some special 1d plots having slightly different interface: surface of curve rotation (<a href="#torus">torus</a>), chart (<a href="#chart">chart</a>) and error boxes (<a href="#error">error</a>), marks with variable size (<a href="#mark">mark</a>), tubes (<a href="#tube">tube</a>) and so on. See section <a href="mgl_en_3.html#g_t1D-plot-sample">1D plot sample</a>, for sample code and picture.
+</p>
+<p>The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <var>xdat.nx=ydat.nx=zdat.nx</var>. If array <var>xdat</var> is not specified then its an automatic array is used with values equidistantly distributed along x. If array <var>zdat</var> is not specified then <var>zdat</var>[i] = <var>zval</var> is used (the default is at the bottom of the bounding box). String <var>stl</var> specifies the color and style of line and marks (see section <a href="#Line-styles">Line styles</a>). By default (<code>stl=''</code>) solid line with color from palette is used (see section <a href="#Line-styles">Line styles</a>).
+</p>
+<a name="index-plot"></a>
+<p><a name="plot"></a>
+</p><dl>
+<dt><a name="index-plot-1"></a><u>MGL command:</u> <b>plot</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-plot-2"></a><u>MGL command:</u> <b>plot</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-plot-3"></a><u>MGL command:</u> <b>plot</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws continuous lines between points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. See also <a href="#area">area</a>, <a href="#step">step</a>, <a href="#stem">stem</a>, <a href="#tube">tube</a>, <a href="#mark">mark</a>, <a href="#error">error</a>, <a href="#belt">belt</a>, <a href="#tens">tens</a>. See section <a href="mgl_en_3.html#Plot-sample">Plot sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+<a name="index-radar"></a>
+<p><a name="radar"></a>
+</p><dl>
+<dt><a name="index-radar-1"></a><u>MGL command:</u> <b>radar</b><i> adat ['stl'='' <code>r=-1</code>]</i></dt>
+<dd><p>Draws radar chart which is continuous lines between points located on an radial lines (like plot in Polar coordinates). The plots are drawn for each row if one of the data is the matrix. Parameter <var>r</var> set the additional shift of data (i.e. the data <var>adat</var>+<var>r</var> is used instead of <var>adat</var>). If <code>r&lt;0</code> then <code>r=max(0, -min(adat)</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="#Line-styles">Line styles</a>). By default (<code>stl=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Line-styles">Line styles</a>). If <var>pen</var> containt &lsquo;<samp>#</samp>&rsquo; symbol then &quot;grid&quot; (radial lines and circle for <var>r</var>) is drawn See also <a href="#plot">plot</a>. See section <a href="mgl_en_3.html#Radar-sample">Radar sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-tens"></a>
+<p><a name="tens"></a>
+</p><dl>
+<dt><a name="index-tens-1"></a><u>MGL command:</u> <b>tens</b><i> ydat cdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tens-2"></a><u>MGL command:</u> <b>tens</b><i> xdat ydat cdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tens-3"></a><u>MGL command:</u> <b>tens</b><i> xdat ydat zdat cdat ['stl'='']</i></dt>
+<dd><p>Draws continuous lines between points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} with color defined by <var>cdat</var>[i] (look like tension plot). See also <a href="#plot">plot</a>, <a href="#mesh">mesh</a>, <a href="#fall">fall</a>. See section <a href="mgl_en_3.html#Tens-sample">Tens sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-area"></a>
+<p><a name="area"></a>
+</p><dl>
+<dt><a name="index-area-1"></a><u>MGL command:</u> <b>area</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-area-2"></a><u>MGL command:</u> <b>area</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-area-3"></a><u>MGL command:</u> <b>area</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws continuous lines between points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} and fills it down to axis (to axis plane in 3D). You can use gradient filling if number of specified colors is equal to 2*number of curves. If string contain symbol &lsquo;<samp>a</samp>&rsquo; then lines are drawn one above another (like summation). See also <a href="#plot">plot</a>, <a href="#bars">bars</a>, <a href="#stem">stem</a>, <a href="#region">region</a>. See section <a href="mgl_en_3.html#Area-sample">Area sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-region"></a>
+<p><a name="region"></a>
+</p><dl>
+<dt><a name="index-region-1"></a><u>MGL command:</u> <b>region</b><i> fdat gdat ['stl'='' <code>inside=off</code>]</i></dt>
+<dt><a name="index-region-2"></a><u>MGL command:</u> <b>region</b><i> xdat fdat gdat ['stl'='' <code>inside=off</code>]</i></dt>
+<dd><p>Fills area between curves {<var>xdat</var>[i], <var>fdat</var>[i]} and {<var>xdat</var>[i], <var>gdat</var>[i]}. Parameter  <code>inside=off</code> set to fill are with y1&lt;y&lt;y2 else the area with y2&lt;y&lt;y1 will be also filled. You can use gradient filling if number of specified colors is equal to 2*number of curves. See also <a href="#area">area</a>, <a href="#bars">bars</a>, <a href="#stem">stem</a>. See section <a href="mgl_en_3.html#Region-sample">Region sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-stem"></a>
+<p><a name="stem"></a>
+</p><dl>
+<dt><a name="index-stem-1"></a><u>MGL command:</u> <b>stem</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-stem-2"></a><u>MGL command:</u> <b>stem</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-stem-3"></a><u>MGL command:</u> <b>stem</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws vertical lines from points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} to axis (to axis plane in 3D). See also <a href="#area">area</a>, <a href="#bars">bars</a>, <a href="#plot">plot</a>, <a href="#mark">mark</a>. See section <a href="mgl_en_3.html#Stem-sample">Stem sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-bars"></a>
+<p><a name="bars"></a>
+</p><dl>
+<dt><a name="index-bars-1"></a><u>MGL command:</u> <b>bars</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-bars-2"></a><u>MGL command:</u> <b>bars</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-bars-3"></a><u>MGL command:</u> <b>bars</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws vertical bars from points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} to axis (to axis plane in 3D). If style contain symbol &lsquo;<samp>a</samp>&rsquo; then lines are drawn one above another. If string contain symbol &lsquo;<samp>f</samp>&rsquo; then waterfall chart is drawn for determining the cumulative effect of sequentially introduced positive or negative values. You can different colors for positive and negative values if number of specified colors is equal to 2*number of curves. See also <a href="#barh">barh</a>, <a href="#area">area</a>, <a href="#stem">stem</a>, <a href="#chart">chart</a>. See section <a href="mgl_en_3.html#Bars-sample">Bars sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-barh"></a>
+<p><a name="barh"></a>
+</p><dl>
+<dt><a name="index-barh-1"></a><u>MGL command:</u> <b>barh</b><i> vdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-barh-2"></a><u>MGL command:</u> <b>barh</b><i> ydat vdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws horizontal bars from points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} to y-axis. If array <var>ydat</var> is not specified then its an automatic array is used with values equidistantly distributed along y. Marks at data points are not drawn. If style contain symbol &lsquo;<samp>a</samp>&rsquo; then lines are drawn one above another. If string contain symbol &lsquo;<samp>f</samp>&rsquo; then waterfall chart is drawn for determining the cumulative effect of sequentially introduced positive or negative values. You can different colors for positive and negative values if number of specified colors is equal to 2*number of curves.
+See also <a href="#bars">bars</a>. See section <a href="mgl_en_3.html#Barh-sample">Barh sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-chart"></a>
+<p><a name="chart"></a>
+</p><dl>
+<dt><a name="index-chart-1"></a><u>MGL command:</u> <b>chart</b><i> adat ['col'='']</i></dt>
+<dd><p>The command draws colored stripes (boxes) for data in array <var>adat</var>. The number of stripes is equal to the number of rows in <var>adat</var> (equal to <var>a.ny</var>). The color of each next stripe is cyclically changed from colors specified in string <var>col</var> or in palette. Spaces in colors denote transparent &ldquo;color&rdquo;, i.e. if <var>col</var> contain space(s) then corresponding stripe(s) are not drawn. The stripe width is proportional to value of element in <var>a</var>. Chart is plotted only for data with non-negative elements. If string <var>col</var> have symbol &lsquo;<samp>#</samp>&rsquo; then black border lines are drawn. The most nice form the chart have in 3d (after rotation of coordinates) or in cylindrical coordinates (becomes so called Pie chart). See section <a href="mgl_en_3.html#Chart-sample">Chart sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-step"></a>
+<p><a name="step"></a>
+</p><dl>
+<dt><a name="index-step-1"></a><u>MGL command:</u> <b>step</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-step-2"></a><u>MGL command:</u> <b>step</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-step-3"></a><u>MGL command:</u> <b>step</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws continuous stairs for points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. See also <a href="#plot">plot</a>, <a href="#stem">stem</a>, <a href="#tile">tile</a>, <a href="#boxs">boxs</a>. See section <a href="mgl_en_3.html#Step-sample">Step sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-torus"></a>
+<p><a name="torus"></a>
+</p><dl>
+<dt><a name="index-torus-1"></a><u>MGL command:</u> <b>torus</b><i> zdat ['stl'='']</i></dt>
+<dt><a name="index-torus-2"></a><u>MGL command:</u> <b>torus</b><i> rdat zdat ['stl'='']</i></dt>
+<dd><p>Draws surface which is result of curve {<var>rdat</var>[i], <var>zdat</var>[i], <var>zdat</var>[i]} rotation around <a href="#axialdir">axialdir</a> axis. If array <var>rdat</var> is not specified then its an automatic array is used with values equidistantly distributed along x. See also <a href="#plot">plot</a>, <a href="#axial">axial</a>. See section <a href="mgl_en_3.html#Torus-sample">Torus sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-tube"></a>
+<p><a name="tube"></a>
+</p><dl>
+<dt><a name="index-tube-1"></a><u>MGL command:</u> <b>tube</b><i> ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-2"></a><u>MGL command:</u> <b>tube</b><i> ydat <code>rval</code> ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-3"></a><u>MGL command:</u> <b>tube</b><i> xdat ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-4"></a><u>MGL command:</u> <b>tube</b><i> xdat ydat <code>rval</code> ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-5"></a><u>MGL command:</u> <b>tube</b><i> xdat ydat zdat rdat ['stl'='']</i></dt>
+<dt><a name="index-tube-6"></a><u>MGL command:</u> <b>tube</b><i> xdat ydat zdat <code>rval</code> ['stl'='']</i></dt>
+<dd><p>Draws tube with variable radius <var>rdat</var>[i] (or <var>rval</var>) at points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. See also <a href="#plot">plot</a>. See section <a href="mgl_en_3.html#Tube-sample">Tube sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-mark"></a>
+<p><a name="mark"></a>
+</p><dl>
+<dt><a name="index-mark-1"></a><u>MGL command:</u> <b>mark</b><i> ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-mark-2"></a><u>MGL command:</u> <b>mark</b><i> xdat ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-mark-3"></a><u>MGL command:</u> <b>mark</b><i> xdat ydat zdat rdat ['stl'='']</i></dt>
+<dd><p>Draws  marks with size <var>rdat</var>[i]*<code>marksize</code> at points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. See also <a href="#plot">plot</a>, <a href="#textmark">textmark</a>, <a href="#stem">stem</a>, <a href="#error">error</a>. See section <a href="mgl_en_3.html#Mark-sample">Mark sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-textmark"></a>
+<p><a name="textmark"></a>
+</p><dl>
+<dt><a name="index-textmark-1"></a><u>MGL command:</u> <b>textmark</b><i> ydat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-2"></a><u>MGL command:</u> <b>textmark</b><i> ydat rdat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-3"></a><u>MGL command:</u> <b>textmark</b><i> xdat ydat rdat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-4"></a><u>MGL command:</u> <b>textmark</b><i> xdat ydat zdat rdat 'txt' ['stl'='']</i></dt>
+<dd><p>Draws string <var>txt</var> as marks with size <var>rdat</var>[i]*<code>marksize</code> at points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. If array <var>rdat</var> is not specified then <var>rdat</var>[i] = 1. See also <a href="#plot">plot</a>, <a href="#mark">mark</a>, <a href="#stem">stem</a>. See section <a href="mgl_en_3.html#Error-sample">Error sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-error"></a>
+<p><a name="error"></a>
+</p><dl>
+<dt><a name="index-error-1"></a><u>MGL command:</u> <b>error</b><i> ydat yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-error-2"></a><u>MGL command:</u> <b>error</b><i> xdat ydat yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-error-3"></a><u>MGL command:</u> <b>error</b><i> xdat ydat xerr yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws error boxes {<var>xerr</var>[i], <var>yerr</var>[i]} at points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zval</var>}. See also <a href="#plot">plot</a>. See section <a href="mgl_en_3.html#TextMark-sample">TextMark sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-boxplot"></a>
+<p><a name="boxplot"></a>
+</p><dl>
+<dt><a name="index-boxplot-1"></a><u>MGL command:</u> <b>boxplot</b><i> adat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-boxplot-2"></a><u>MGL command:</u> <b>boxplot</b><i> xdat adat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws boxplot (also known as a box-and-whisker diagram) at points <var>xdat</var> in plane z=<code>zval</code> (by default is at the bottom of the bounding box). This is five-number summaries of data &lt;em&gt;adat&lt;/em&gt; (minimum, lower quartile (Q1), median (Q2), upper quartile (Q3) and maximum) along second (j-th) direction. See also <a href="#plot">plot</a>, <a href="#error">error</a>, <a href="#bars">bars</a>. See section <a href="mgl_en_3.html#BoxPlot-sample">BoxPlot sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t2D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-plotting-1"></a>
+<h2 class="section">1.11 2D plotting</h2>
+
+<p>These commands perform plotting of 2D data. 2D means that data depend from 2 independent parameters like matrix <em>f(x_i,y_j), i=1...n, j=1...m</em>. There are 6 generally different types of data representations: simple mesh lines plot (<a href="#mesh">mesh</a>), surface plot (<a href="#surf">surf</a>), surface plot by boxes (<a href="#boxs">boxs</a>), surface plot by tiles (<a href="#tile">tile</a>), waterfall-like plot (<a href="#fall">fall</a>), belt plot (<a href="#belt">belt</a>), density plot (<a href="#dens">dens</a>), contour lines plot (<a href="#cont">cont</a>), solid contours plot (<a href="#contf">contf</a>) and its rotational figure (<a href="#axial">axial</a>). Commands <a href="#cont">cont</a>, <a href="#contf">contf</a> and <a href="#axial">axial</a> have variants for automatic and manual selection of level values for contours. Also there are commands for plotting data grid lines according to the data format (<a href="#grid">grid</a>) for enhancing density or contour plots. Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. See section <a href="mgl_en_3.html#g_t2D-plot-sample">2D plot sample</a>, for sample code and picture.
+</p>
+<p>String parameter <var>sch</var> sets the color scheme (see section <a href="#Color-scheme">Color scheme</a>). Previous color scheme is used by default. The minor dimensions of arrays <var>xdat</var>, <var>ydat</var>, <var>zdat</var> should be equal <code>xdat.nx=zdat.nx &amp;&amp; ydat.nx=zdat.ny</code> or <code>xdat.nx=ydat.nx=zdat.nx &amp;&amp; xdat.ny=ydat.ny=zdat.ny</code>. Arrays <var>xdat</var> and <var>ydat</var> can be vectors (not matrices as <var>zdat</var>). If array <var>xdat</var>, <var>ydat</var> is not specified then its an automatic arrays are used with values equidistantly distributed along x, y. Graphics are plotted for each z-slice of the data.
+</p>
+<a name="index-surf"></a>
+<p><a name="surf"></a>
+</p><dl>
+<dt><a name="index-surf-1"></a><u>MGL command:</u> <b>surf</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-surf-2"></a><u>MGL command:</u> <b>surf</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. See also <a href="#mesh">mesh</a>, <a href="#dens">dens</a>, <a href="#belt">belt</a>, <a href="#tile">tile</a>, <a href="#boxs">boxs</a>, <a href="#surfc">surfc</a>, <a href="#surfa">surfa</a>. See section <a href="mgl_en_3.html#Surf-sample">Surf sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-mesh"></a>
+<p><a name="mesh"></a>
+</p><dl>
+<dt><a name="index-mesh-1"></a><u>MGL command:</u> <b>mesh</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-mesh-2"></a><u>MGL command:</u> <b>mesh</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws mesh lines for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. See also <a href="#surf">surf</a>, <a href="#fall">fall</a>, <a href="#meshnum">meshnum</a>, <a href="#cont">cont</a>, <a href="#tens">tens</a>. See section <a href="mgl_en_3.html#Mesh-sample">Mesh sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-fall"></a>
+<p><a name="fall"></a>
+</p><dl>
+<dt><a name="index-fall-1"></a><u>MGL command:</u> <b>fall</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-fall-2"></a><u>MGL command:</u> <b>fall</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws fall lines for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. If <var>sch</var> contain &lsquo;<samp>x</samp>&rsquo; then lines are drawn along x-direction else (by default) lines are drawn along y-direction. See also <a href="#belt">belt</a>, <a href="#mesh">mesh</a>, <a href="#tens">tens</a>, <a href="#meshnum">meshnum</a>. See section <a href="mgl_en_3.html#Fall-sample">Fall sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-belt"></a>
+<p><a name="belt"></a>
+</p><dl>
+<dt><a name="index-belt-1"></a><u>MGL command:</u> <b>belt</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-belt-2"></a><u>MGL command:</u> <b>belt</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws belts for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. If <var>sch</var> contain &lsquo;<samp>x</samp>&rsquo; then belts are drawn along x-direction else (by default) lines are drawn along y-direction. See also <a href="#fall">fall</a>, <a href="#surf">surf</a>, <a href="#plot">plot</a>, <a href="#meshnum">meshnum</a>. See section <a href="mgl_en_3.html#Belt-sample">Belt sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-boxs"></a>
+<p><a name="boxs"></a>
+</p><dl>
+<dt><a name="index-boxs-1"></a><u>MGL command:</u> <b>boxs</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-boxs-2"></a><u>MGL command:</u> <b>boxs</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws vertical boxes for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. See also <a href="#surf">surf</a>, <a href="#dens">dens</a>, <a href="#tile">tile</a>, <a href="#step">step</a>. See section <a href="mgl_en_3.html#Boxs-sample">Boxs sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-tile"></a>
+<p><a name="tile"></a>
+</p><dl>
+<dt><a name="index-tile-1"></a><u>MGL command:</u> <b>tile</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-tile-2"></a><u>MGL command:</u> <b>tile</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws horizontal tiles for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Such plot can be used as 3d generalization of <a href="#step">step</a>. See also <a href="#surf">surf</a>, <a href="#boxs">boxs</a>, <a href="#step">step</a>, <a href="#tiles">tiles</a>. See section <a href="mgl_en_3.html#Tile-sample">Tile sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-dens"></a>
+<p><a name="dens"></a>
+</p><dl>
+<dt><a name="index-dens-1"></a><u>MGL command:</u> <b>dens</b><i> zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-dens-2"></a><u>MGL command:</u> <b>dens</b><i> xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws density plot for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var>. See also <a href="#surf">surf</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>, <a href="#boxs">boxs</a>, <a href="#tile">tile</a>, <code>dens[xyz]</code>. See section <a href="mgl_en_3.html#Dens-sample">Dens sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-cont"></a>
+<p><a name="cont"></a>
+</p><dl>
+<dt><a name="index-cont-1"></a><u>MGL command:</u> <b>cont</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-cont-2"></a><u>MGL command:</u> <b>cont</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws contour lines for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var> (or for <var>z</var>=<var>vdat</var>[k] if <code>zval=nan</code>). Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k. If string <var>stl</var> contain &rsquo;t&rsquo; (or &rsquo;T&rsquo;) symbol then contour labels will be drawn below (or above) the contours. See also <a href="#dens">dens</a>, <a href="#contf">contf</a>, <a href="#contd">contd</a>, <a href="#axial">axial</a>, <code>cont[xyz]</code>. See section <a href="mgl_en_3.html#Cont-sample">Cont sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cont-3"></a><u>MGL command:</u> <b>cont</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-cont-4"></a><u>MGL command:</u> <b>cont</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see, <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-contf"></a>
+<p><a name="contf"></a>
+</p><dl>
+<dt><a name="index-contf-1"></a><u>MGL command:</u> <b>contf</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-contf-2"></a><u>MGL command:</u> <b>contf</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws solid (or filled) contours for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var> (or for <var>z</var>=<var>vdat</var>[k] if <code>zval=nan</code>). Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k (must be <code>vdat.nx&gt;2</code>). See also <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contd">contd</a>, <code>contf[xyz]</code>. See section <a href="mgl_en_3.html#ContF-sample">ContF sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contf-3"></a><u>MGL command:</u> <b>contf</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-contf-4"></a><u>MGL command:</u> <b>contf</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see, <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-contd"></a>
+<p><a name="contd"></a>
+</p><dl>
+<dt><a name="index-contd-1"></a><u>MGL command:</u> <b>contd</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-contd-2"></a><u>MGL command:</u> <b>contd</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws solid (or filled) contours for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var> (or for <var>z</var>=<var>vdat</var>[k] if <code>zval=nan</code>) with manual colors. Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k (must be <code>vdat.nx&gt;2</code>). The color of k-th contour is <code>sch[k%strlen(sch)]</code>. See also <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>. See section <a href="mgl_en_3.html#ContD-sample">ContD sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contd-3"></a><u>MGL command:</u> <b>contd</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-contd-4"></a><u>MGL command:</u> <b>contd</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see, <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-axial"></a>
+<p><a name="axial"></a>
+</p><dl>
+<dt><a name="index-axial-1"></a><u>MGL command:</u> <b>axial</b><i> vdat zdat ['sch'='']</i></dt>
+<dt><a name="index-axial-2"></a><u>MGL command:</u> <b>axial</b><i> vdat xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws surface which is result of contour plot rotation surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. If string <var>sch</var> contain symbols &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo; then rotation axis <code>axialdir</code> will be set to specified direction. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#cont">cont</a>, <a href="#contf">contf</a>, <a href="#torus">torus</a>, <a href="#surf3">surf3</a>. See section <a href="mgl_en_3.html#Axial-sample">Axial sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axial-3"></a><u>MGL command:</u> <b>axial</b><i> zdat ['sch'='' <code>num=3</code>]</i></dt>
+<dt><a name="index-axial-4"></a><u>MGL command:</u> <b>axial</b><i> xdat ydat zdat ['sch'='' <code>num=3</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see, <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-grad"></a>
+<p><a name="grad"></a>
+</p><dl>
+<dt><a name="index-grad-1"></a><u>MGL command:</u> <b>grad</b><i> pdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-grad-2"></a><u>MGL command:</u> <b>grad</b><i> xdat ydat pdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-grad-3"></a><u>MGL command:</u> <b>grad</b><i> xdat ydat zdat pdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Draws gradient lines for scalar field <var>pdat</var> specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j]} or {<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]}. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. Number of lines is proportional to <var>num</var>. If <var>num</var>&lt;0 then lines start from borders only. See also <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#dens3">dens3</a>, <a href="#cont3">cont3</a>, <a href="#flow">flow</a>. See section <a href="mgl_en_3.html#Grad-sample">Grad sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+<a name="index-grid2"></a>
+<p><a name="grid2"></a>
+</p><dl>
+<dt><a name="index-grid2-1"></a><u>MGL command:</u> <b>grid2</b><i> zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-grid2-2"></a><u>MGL command:</u> <b>grid2</b><i> xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws grid lines for density plot of surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var>. See also <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="g_t3D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-plotting-1"></a>
+<h2 class="section">1.12 3D plotting</h2>
+
+<p>These commands perform plotting of 3D data. 3D means that data depend from 3 independent parameters like matrix <em>f(x_i,y_j,z_k), i=1...n, j=1...m, k=1...l</em>. There are 4 generally different types of data representations: isosurface or surface of constant value (<a href="#surf3">surf3</a>), density plot at slices (Dens3), contour lines plot at slices (<a href="#cont3">cont3</a>), solid contours plot at slices (<a href="#contf3">contf3</a>) and cloud-like plot (<a href="#cloud">cloud</a>). Commands <a href="#surf3">surf3</a>, <a href="#cont3">cont3</a> and <a href="#contf3">contf3</a> have variants for automatic and manual selection of level values for surfaces/contours. Also there are commands for plotting data grid lines according to the data format (<a href="#grid3">grid3</a>) for enhancing density or contour plots. Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. See section <a href="mgl_en_3.html#g_t3D-plot-sample">3D plot sample</a>, for sample code and picture.
+</p>
+<p>String paramter <var>sch</var> sets the color scheme (see section <a href="#Color-scheme">Color scheme</a>). Previous color scheme is used by default. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). If array <var>xdat</var>, <var>ydat</var>, <var>zdat</var> is not specified then its an automatic arrays are used with values equidistantly distributed along x, y, z.
+</p>
+
+<a name="index-surf3"></a>
+<p><a name="surf3"></a>
+</p><dl>
+<dt><a name="index-surf3-1"></a><u>MGL command:</u> <b>surf3</b><i> adat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3-2"></a><u>MGL command:</u> <b>surf3</b><i> xdat ydat zdat adat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Draws isosurface plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) at <var>a</var>(x,y,z)=<var>val</var>. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#cloud">cloud</a>, <a href="#dens3">dens3</a>, <a href="#surf3c">surf3c</a>, <a href="#surf3a">surf3a</a>, <a href="#axial">axial</a>. See section <a href="mgl_en_3.html#Surf3-sample">Surf3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3-3"></a><u>MGL command:</u> <b>surf3</b><i> adat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3-4"></a><u>MGL command:</u> <b>surf3</b><i> xdat ydat zdat adat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in color range (see <a href="#caxis">caxis</a>) isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-dens3"></a>
+<p><a name="dens3"></a>
+</p><dl>
+<dt><a name="index-dens3-1"></a><u>MGL command:</u> <b>dens3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-dens3-2"></a><u>MGL command:</u> <b>dens3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Draws density plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Density is plotted at slice <var>sval</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. If string <var>stl</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. See also <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a>, <a href="#dens">dens</a>, <a href="#grid3">grid3</a>. See section <a href="mgl_en_3.html#Dens3-sample">Dens3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-densa"></a>
+<p><a name="densa"></a>
+</p><dl>
+<dt><a name="index-densa-1"></a><u>MGL command:</u> <b>densa</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-densa-2"></a><u>MGL command:</u> <b>densa</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Draws density plots at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-cont3"></a>
+<p><a name="cont3"></a>
+</p><dl>
+<dt><a name="index-cont3-1"></a><u>MGL command:</u> <b>cont3</b><i> vdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-cont3-2"></a><u>MGL command:</u> <b>cont3</b><i> vdat xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Draws contour plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Contours are plotted for values specified in array <var>vdat</var> at slice <var>sval</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. If string <var>stl</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. If string <var>stl</var> contain &rsquo;t&rsquo; (or &rsquo;T&rsquo;) symbol then contour labels will be drawn below (or above) the contours. See also <a href="#dens3">dens3</a>, <a href="#contf3">contf3</a>, <a href="#cont">cont</a>, <a href="#grid3">grid3</a>. See section <a href="mgl_en_3.html#Cont3-sample">Cont3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cont3-3"></a><u>MGL command:</u> <b>cont3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-cont3-4"></a><u>MGL command:</u> <b>cont3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-conta"></a>
+<p><a name="conta"></a>
+</p><dl>
+<dt><a name="index-conta-1"></a><u>MGL command:</u> <b>conta</b><i> adat ['sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-conta-2"></a><u>MGL command:</u> <b>conta</b><i> xdat ydat zdat adat ['sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Draws contour plots at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-contf3"></a>
+<p><a name="contf3"></a>
+</p><dl>
+<dt><a name="index-contf3-1"></a><u>MGL command:</u> <b>contf3</b><i> vdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-contf3-2"></a><u>MGL command:</u> <b>contf3</b><i> vdat xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Draws solid contour plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Contours are plotted for values specified in array <var>vdat</var> at slice <var>sval</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. If string <var>stl</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. See also <a href="#dens3">dens3</a>, <a href="#cont3">cont3</a>, <a href="#contf">contf</a>, <a href="#grid3">grid3</a>. See section <a href="mgl_en_3.html#ContF3-sample">ContF3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contf3-3"></a><u>MGL command:</u> <b>contf3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-contf3-4"></a><u>MGL command:</u> <b>contf3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-contfa"></a>
+<p><a name="contfa"></a>
+</p><dl>
+<dt><a name="index-contfa-1"></a><u>MGL command:</u> <b>contfa</b><i> adat ['sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-contfa-2"></a><u>MGL command:</u> <b>contfa</b><i> xdat ydat zdat adat ['sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Draws solid contour plots at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-grid3"></a>
+<p><a name="grid3"></a>
+</p><dl>
+<dt><a name="index-grid3-1"></a><u>MGL command:</u> <b>grid3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-grid3-2"></a><u>MGL command:</u> <b>grid3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Draws grid for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Grid is plotted at slice <var>sval</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. See also <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a>, <a href="#dens3">dens3</a>, <a href="#grid2">grid2</a>. See section <a href="mgl_en_3.html#Dens3-sample">Dens3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-grida"></a>
+<p><a name="grida"></a>
+</p><dl>
+<dt><a name="index-grida-1"></a><u>MGL command:</u> <b>grida</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-grida-2"></a><u>MGL command:</u> <b>grida</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Draws grids at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-cloud"></a>
+<p><a name="cloud"></a>
+</p><dl>
+<dt><a name="index-cloud-1"></a><u>MGL command:</u> <b>cloud</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-cloud-2"></a><u>MGL command:</u> <b>cloud</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Draws cloud for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). This plot is a set of cubes with color and transparency proportional to value of <var>adat</var>. The resulting plot is like cloud &ndash; low value is transparent but higher ones are not. The number of plotting cells depend on <a href="#meshnum">meshnum</a>. Paramater <var>alpha</var> changes the overall transparency of plot. See also <a href="#surf3">surf3</a>. See section <a href="mgl_en_3.html#Cloud-sample">Cloud sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-beam"></a>
+<p><a name="beam"></a>
+</p><dl>
+<dt><a name="index-beam-1"></a><u>MGL command:</u> <b>beam</b><i> tr g1 g2 adat <code>rval</code> ['sch'='' <code>flag=0 num=3</code>]</i></dt>
+<dd><p>Draws  <var>num</var>-th uniformly distributed in color range (see <code>caxis</code>) isosurfaces for 3d array <var>adat</var>. This is special kind of plot for <var>adat</var> specified in accompanied coordinates along curve <var>tr</var> with orts <var>g1</var>, <var>g2</var> and with transverse scale <var>rval</var>. Variable <var>flag</var> is bitwise: &lsquo;<samp>0x1</samp>&rsquo; - draw in accompanied (not laboratory) coordinates; &lsquo;<samp>0x2</samp>&rsquo; - draw projection to <em>\rho-z</em> plane; &lsquo;<samp>0x4</samp>&rsquo; - draw normalized in each slice field. The x-size of data arrays <var>tr</var>, <var>g1</var>, <var>g2</var> must be nx&gt;2. The y-size of data arrays <var>tr</var>, <var>g1</var>, <var>g2</var> and z-size of the data array <var>a</var> must be equal. See also <a href="#surf3">surf3</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Dual-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dual-plotting-1"></a>
+<h2 class="section">1.13 Dual plotting</h2>
+
+<p>These plotting commands draw <em>two matrix</em> simultaneously. There are 5 generally different types of data representations: surface or isosurface colored by other data (<a href="#surfc">surfc</a>, <a href="#surf3c">surf3c</a>), surface or isosurface transpared by other data (<a href="#surfa">surfa</a>, <a href="#surf3a">surf3a</a>), tiles with variable size (<a href="#tiles">tiles</a>), mapping diagram (<a href="#map">map</a>), STFA diagram (<a href="#stfa">stfa</a>). Commands <a href="#surf3a">surf3a</a> and <a href="#surf3c">surf3c</a> have variants for automatic and manual selection of level values for isosurfaces. Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array.
+</p>
+<p>String paramter <var>sch</var> sets the color scheme (see section <a href="#Color-scheme">Color scheme</a>). Previous color scheme is used by default. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). If array <var>xdat</var>, <var>ydat</var>, <var>zdat</var> is not specified then its an automatic arrays are used with values equidistantly distributed along x, y, z.
+</p>
+<a name="index-surfc"></a>
+<p><a name="surfc"></a>
+</p><dl>
+<dt><a name="index-surfc-1"></a><u>MGL command:</u> <b>surfc</b><i> zdat cdat ['sch'='']</i></dt>
+<dt><a name="index-surfc-2"></a><u>MGL command:</u> <b>surfc</b><i> xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Draws surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} and color it by matrix <var>cdat</var>[i,j]. See also <a href="#surf">surf</a>, <a href="#surfa">surfa</a>, <a href="#surf3c">surf3c</a>. See section <a href="mgl_en_3.html#SurfC-sample">SurfC sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-surf3c"></a>
+<p><a name="surf3c"></a>
+</p><dl>
+<dt><a name="index-surf3c-1"></a><u>MGL command:</u> <b>surf3c</b><i> adat cdat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3c-2"></a><u>MGL command:</u> <b>surf3c</b><i> xdat ydat zdat adat cdat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Draws isosurface plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) at <var>a</var>(x,y,z)=<var>val</var>. It is mostly the same as <a href="#surf3">surf3</a> command but the color of isosurface depends on values of array <var>cdat</var>. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#surf3">surf3</a>, <a href="#surfc">surfc</a>, <a href="#surf3a">surf3a</a>. See section <a href="mgl_en_3.html#Surf3C-sample">Surf3C sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3c-3"></a><u>MGL command:</u> <b>surf3c</b><i> adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3c-4"></a><u>MGL command:</u> <b>surf3c</b><i> xdat ydat zdat adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in color range (see <code>caxis</code>) isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-surfa"></a>
+<p><a name="surfa"></a>
+</p><dl>
+<dt><a name="index-surfa-1"></a><u>MGL command:</u> <b>surfa</b><i> zdat cdat ['sch'='']</i></dt>
+<dt><a name="index-surfa-2"></a><u>MGL command:</u> <b>surfa</b><i> xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Draws surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} and transparent it by matrix <var>cdat</var>[i,j]. See also <a href="#surf">surf</a>, <a href="#surfc">surfc</a>, <a href="#surf3a">surf3a</a>, <a href="#tiles">tiles</a>. See section <a href="mgl_en_3.html#SurfA-sample">SurfA sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-surf3a"></a>
+<p><a name="surf3a"></a>
+</p><dl>
+<dt><a name="index-surf3a-1"></a><u>MGL command:</u> <b>surf3a</b><i> adat cdat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3a-2"></a><u>MGL command:</u> <b>surf3a</b><i> xdat ydat zdat adat cdat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Draws isosurface plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) at <var>a</var>(x,y,z)=<var>val</var>. It is mostly the same as <a href="#surf3">surf3</a> command but the transparency of isosurface depends on values of array <var>cdat</var>. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#surf3">surf3</a>, <a href="#surfa">surfa</a>, <a href="#surf3c">surf3c</a>. See section <a href="mgl_en_3.html#Surf3A-sample">Surf3A sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3a-3"></a><u>MGL command:</u> <b>surf3a</b><i> adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3a-4"></a><u>MGL command:</u> <b>surf3a</b><i> xdat ydat zdat adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in color range (see <code>caxis</code>) isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-tiles"></a>
+<p><a name="tiles"></a>
+</p><dl>
+<dt><a name="index-tiles-1"></a><u>MGL command:</u> <b>tiles</b><i> zdat rdat ['sch'='']</i></dt>
+<dt><a name="index-tiles-2"></a><u>MGL command:</u> <b>tiles</b><i> xdat ydat zdat rdat ['sch'='']</i></dt>
+<dd><p>Draws horizontal tiles for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. It is mostly the same as <a href="#tile">tile</a> but the size of tiles is determined by <var>rdat</var> array. See also <a href="#surfa">surfa</a>, <a href="#tile">tile</a>. See section <a href="mgl_en_3.html#TileS-sample">TileS sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-map"></a>
+<p><a name="map"></a>
+</p><dl>
+<dt><a name="index-map-1"></a><u>MGL command:</u> <b>map</b><i> udat vdat ['sch'='' <code>pnts=on</code>]</i></dt>
+<dt><a name="index-map-2"></a><u>MGL command:</u> <b>map</b><i> xdat ydat udat vdat ['sch'='' <code>pnts=on</code>]</i></dt>
+<dd><p>Draws mapping plot for matrixes {<var>udat</var>, <var>vdat</var> } which parametrically depend on coordinates <var>xdat</var>, <var>ydat</var>. The previous position of the cell (point) is marked by color. Height is proportional to Jacobian(udat,vdat). This plot is like Arnold diagram ???. If <code>pnts=off</code> then face is drawn otherwise the color ball at matrix knots are drawn. The size of <var>udat</var> and <var>vdat</var> must be the same. See section <a href="mgl_en_3.html#Map-sample">Map sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-stfa"></a>
+<p><a name="stfa"></a>
+</p><dl>
+<dt><a name="index-stfa-1"></a><u>MGL command:</u> <b>stfa</b><i> re im <code>dn</code> ['sch'='' <code>pnts=on</code>]</i></dt>
+<dt><a name="index-stfa-2"></a><u>MGL command:</u> <b>stfa</b><i> xdat ydat re im <code>dn</code> ['sch'='' <code>pnts=on</code>]</i></dt>
+<dd><p>Draws spectrogram of complex array <var>re</var>+i*<code>im</code> for Fourier size of <var>dn</var> points at plane <var>z=zVal</var>. Parameter <var>dn</var> is arbitrary even integer. For example in 1D case, result is density plot of data <em>res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn</em> with size {int(nx/dn), dn, ny}. See section <a href="mgl_en_3.html#STFA-sample">STFA sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+
+
+<hr size="6">
+<a name="Vector-fields"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vector-fields-1"></a>
+<h2 class="section">1.14 Vector fields</h2>
+
+<p>These commands perform plotting of 2D and 3D vector fields. There are 6 generally different types of vector fields representations: simple vector field (<a href="#vect">vect</a>), vector field by dew-drops (<a href="#dew">dew</a>), flow threads (<a href="#flow">flow</a>), flow pipes (<a href="#pipe">pipe</a>), vectors along a curve (<a href="#traj">traj</a>). Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. Parameters of color scheme are specified by the string argument. See section <a href="#Color-scheme">Color scheme</a>.
+</p>
+<p>The color is specified by the string argument <var>sch</var>. Previous color scheme is used by default. Parameter <var>flag</var> setup the hachures (arrows). It is combination of values: <code>1</code> for drawing bi-color arrow, <code>2</code> for drawing fixed length arrows, <code>4</code> for drawing arrows to the cell point, <code>8</code> for drawing arrows with center at cell point, <code>16</code> for drawing hachures with dots instead of arrows. 
+</p>
+<p>The size of <var>udat</var>, <var>vdat</var> and <var>wdat</var> must be equal. The minor dimensions of arrays <var>xdat</var>, <var>ydat</var>, <var>zdat</var> and <var>udat</var> must be equal too. Arrays <var>xdat</var>, <var>ydat</var> and <var>zdat</var> can be vectors (not matrices as <var>udat</var>). The graphics is plotted for each z slice of <var>udat</var>, <var>vdat</var> for 2D case.
+</p>
+<a name="index-traj"></a>
+<p><a name="traj"></a>
+</p><dl>
+<dt><a name="index-traj-1"></a><u>MGL command:</u> <b>traj</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan len=0</code>]</i></dt>
+<dt><a name="index-traj-2"></a><u>MGL command:</u> <b>traj</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>len=0</code>]</i></dt>
+<dd><p>Draws vectors {<var>udat</var>, <var>vdat</var>, <var>wdat</var>} along a curve <var>xdat</var>, <var>ydat</var>, <var>zdat</var>. The length and color of arrows are proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See also <code>vect</code>. See section <a href="mgl_en_3.html#Traj-sample">Traj sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-vect"></a>
+<p><a name="vect"></a>
+</p><dl>
+<dt><a name="index-vect-1"></a><u>MGL command:</u> <b>vect</b><i> udat vdat ['sch'='' <code>zval=nan flag=0</code>]</i></dt>
+<dt><a name="index-vect-2"></a><u>MGL command:</u> <b>vect</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan flag=0</code>]</i></dt>
+<dd><p>Draws plane vector field plot for the field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zval</var>. The length and color of arrows are proportional to <em>\sqrtudat^2+vdat^2</em>. The number of arrows depend on <a href="#meshnum">meshnum</a>. See also <a href="#flow">flow</a>, <a href="#dew">dew</a>, <a href="#vectc">vectc</a>. See section <a href="mgl_en_3.html#Vect-sample">Vect sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vect-3"></a><u>MGL command:</u> <b>vect</b><i> udat vdat wdat ['sch'='' <code>flag=0</code>]</i></dt>
+<dt><a name="index-vect-4"></a><u>MGL command:</u> <b>vect</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>flag=0</code>]</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the length and color of arrows are proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mgl_en_3.html#Vect-3D-sample">Vect 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-vectc"></a>
+<p><a name="vectc"></a>
+</p><dl>
+<dt><a name="index-vectc-1"></a><u>MGL command:</u> <b>vectc</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-vectc-2"></a><u>MGL command:</u> <b>vectc</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws plane vector field plot for the field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zVal</var>. The color of hachures is proportional to <em>\sqrtudat^2+vdat^2</em>. The number of hachures depend on <var>meshnum</var>. See also <code>vect, flow, pipe, dew</code>. See section <a href="mgl_en_3.html#VectC-sample">VectC sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vectc-3"></a><u>MGL command:</u> <b>vectc</b><i> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-vectc-4"></a><u>MGL command:</u> <b>vectc</b><i> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the color of hachures is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mgl_en_3.html#VectC-3D-sample">VectC 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-vectl"></a>
+<p><a name="vectl"></a>
+</p><dl>
+<dt><a name="index-vectl-1"></a><u>MGL command:</u> <b>vectl</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-vectl-2"></a><u>MGL command:</u> <b>vectl</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws plane vector field plot for the field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zVal</var>. The length of hachures is proportional to <em>\sqrtudat^2+vdat^2</em>. The number of hachures depend on <var>meshnum</var>. See also <code>vectc, flow, pipe, dew</code>. See section <a href="mgl_en_3.html#Vect-sample">Vect sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vectl-3"></a><u>MGL command:</u> <b>vectl</b><i> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-vectl-4"></a><u>MGL command:</u> <b>vectl</b><i> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the length of hachures is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mgl_en_3.html#VectL-3D-sample">VectL 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-dew"></a>
+<p><a name="dew"></a>
+</p><dl>
+<dt><a name="index-dew-1"></a><u>MGL command:</u> <b>dew</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-dew-2"></a><u>MGL command:</u> <b>dew</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws dew-drops for plane vector field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zval</var>. The color of drops is proportional to <em>\sqrtudat^2+vdat^2</em>. The number of drops depend on <a href="#meshnum">meshnum</a>. Note that this is very expensive plot in memory usage and creation time! See also <a href="#vect">vect</a>. See section <a href="mgl_en_3.html#Dew-sample">Dew sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-flow"></a>
+<p><a name="flow"></a>
+</p><dl>
+<dt><a name="index-flow-1"></a><u>MGL command:</u> <b>flow</b><i> udat vdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-flow-2"></a><u>MGL command:</u> <b>flow</b><i> xdat ydat udat vdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dd><p>Draws plane flow threads for the vector field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zVal</var>. Number of threads is proportional to <var>num</var>. The color of lines is proportional to <em>\sqrtudat^2+vdat^2</em>. Warm color corresponds to normal flow (like attractor). Cold one corresponds to inverse flow (like source). See also <code>vect, vectc, pipe</code>. See section <a href="mgl_en_3.html#Flow-sample">Flow sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-3"></a><u>MGL command:</u> <b>flow</b><i> udat vdat wdat ['sch'='' <code>num=3</code>]</i></dt>
+<dt><a name="index-flow-4"></a><u>MGL command:</u> <b>flow</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>num=3</code>]</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the color is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mgl_en_3.html#Flow-3D-sample">Flow 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-5"></a><u>MGL command:</u> <b>flow</b><i> <code>x0 y0</code> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-flow-6"></a><u>MGL command:</u> <b>flow</b><i> <code>x0 y0</code> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws plane flow threads for the vector field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> from point {<var>x0</var>, <var>y0</var>} at level <var>z=zVal</var>. The color of lines is proportional to <em>\sqrtudat^2+vdat^2</em>. Warm color corresponds to normal flow (like attractor). Cold one corresponds to inverse flow (like source). See also <code>vect, vectc, pipe</code>. See section <a href="mgl_en_3.html#Flow-sample">Flow sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-7"></a><u>MGL command:</u> <b>flow</b><i> <code>x0 y0 z0</code> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-flow-8"></a><u>MGL command:</u> <b>flow</b><i> <code>x0 y0 z0</code> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>Draws flow thread from point {<var>x0</var>, <var>y0</var>, <var>z0</var>}. Arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the color is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mgl_en_3.html#Flow-3D-sample">Flow 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+<a name="index-pipe"></a>
+<p><a name="pipe"></a>
+</p><dl>
+<dt><a name="index-pipe-1"></a><u>MGL command:</u> <b>pipe</b><i> udat vdat ['sch'='' <code>r0=0.05 num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-pipe-2"></a><u>MGL command:</u> <b>pipe</b><i> xdat ydat udat vdat ['sch'='' <code>r0=0.05 num=5 zval=nan</code>]</i></dt>
+<dd><p>Draws plane flow pipes for the vector field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zVal</var>. Number of pipes is proportional to <var>num</var>. The color of pipes is proportional to <em>\sqrtudat^2+vdat^2</em>. Warm color corresponds to normal flow (like attractor). Cold one corresponds to inverse flow (like source). Parameter <var>r0</var> set the base pipe radius. If <var>r0</var>&lt;0 then pipe radius is inverse proportional to amplitude. The size of <var>ax</var> and <var>ay</var> must be equal. See also <code>vect, vectc, pipe</code>. See section <a href="mgl_en_3.html#Pipe-sample">Pipe sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-pipe-3"></a><u>MGL command:</u> <b>pipe</b><i> udat vdat wdat ['sch'='' <code>r0=0.05 num=3</code>]</i></dt>
+<dt><a name="index-pipe-4"></a><u>MGL command:</u> <b>pipe</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>r0=0.05 num=3</code>]</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the color is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mgl_en_3.html#Pipe-3D-sample">Pipe 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Other-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-fields" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Other-plotting-1"></a>
+<h2 class="section">1.15 Other plotting</h2>
+
+<p>These commands perform miscelaneous plotting. There is unstructured data points plots (Dots), surface reconstruction (Crust), surfaces on the triangular mesh (TriPlot) or quadrangular mesh (QuadPlot), textual formula plotting (Plots by formula), data plots at edges (Dens[XYZ], Cont[XYZ], ContF[XYZ]), simple plot (SimplePlot). Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. Parameters of color scheme are specified by the string argument. See section <a href="#Color-scheme">Color scheme</a>.
+</p>
+<a name="index-densx"></a>
+<a name="index-densy"></a>
+<a name="index-densz"></a>
+<p><a name="densz"></a> <a name="densy"></a> <a name="densx"></a>
+</p><dl>
+<dt><a name="index-densx-1"></a><u>MGL command:</u> <b>densx</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dt><a name="index-densy-1"></a><u>MGL command:</u> <b>densy</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dt><a name="index-densz-1"></a><u>MGL command:</u> <b>densz</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dd><p>These plotting commands draw density plot in x, y or z plain. If <var>dat</var> is a tensor (3-dimensional data) then interpolation to a given <var>val</var> is performed. These commands are useful for creating projections of the 3D data array to the bounding box. See also <code>cont[xyz], contf[xyz]</code>, <a href="#dens">dens</a>. See section <a href="mgl_en_3.html#Dens-projection-sample">Dens projection sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-contx"></a>
+<a name="index-conty"></a>
+<a name="index-contz"></a>
+<p><a name="contz"></a> <a name="conty"></a> <a name="contx"></a>
+</p><dl>
+<dt><a name="index-contx-1"></a><u>MGL command:</u> <b>contx</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-conty-1"></a><u>MGL command:</u> <b>conty</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contz-1"></a><u>MGL command:</u> <b>contz</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dd><p>These plotting commands draw contour lines in x, y or z plain. If <var>dat</var> is a tensor (3-dimensional data) then interpolation to a given <var>val</var> is performed. These commands are useful for creating projections of the 3D data array to the bounding box. See also <code>dens[xyz], contf[xyz]</code>, <a href="#cont">cont</a>. See section <a href="mgl_en_3.html#Cont-projection-sample">Cont projection sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-contfx"></a>
+<a name="index-contfy"></a>
+<a name="index-contfz"></a>
+<p><a name="contfz"></a> <a name="contfy"></a> <a name="contfx"></a>
+</p><dl>
+<dt><a name="index-contfx-1"></a><u>MGL command:</u> <b>contfx</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contfy-1"></a><u>MGL command:</u> <b>contfy</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contfz-1"></a><u>MGL command:</u> <b>contfz</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dd><p>These plotting commands draw solid contours in x, y or z plain. If <var>dat</var> is a tensor (3-dimensional data) then interpolation to a given <var>val</var> is performed. These commands are useful for creating projections of the 3D data array to the bounding box. See also <code>dens[xyz], cont[xyz]</code>, <a href="#contf">contf</a>.
+</p></dd></dl>
+
+<a name="index-dots"></a>
+<p><a name="dots"></a>
+</p><dl>
+<dt><a name="index-dots-1"></a><u>MGL command:</u> <b>dots</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-dots-2"></a><u>MGL command:</u> <b>dots</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Draws the arbitrary placed points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Variable <var>adat</var>[i] set transparency for dots. See also <a href="#crust">crust</a>, <a href="#mark">mark</a>, <a href="#plot">plot</a>. See section <a href="mgl_en_3.html#Dots-sample">Dots sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-crust"></a>
+<p><a name="crust"></a>
+</p><dl>
+<dt><a name="index-crust-1"></a><u>MGL command:</u> <b>crust</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Reconstructs and draws the surface for arbitrary placed points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#dots">dots</a>, <a href="#triplot">triplot</a>. See section <a href="mgl_en_3.html#Crust-sample">Crust sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-triplot"></a>
+<p><a name="triplot"></a>
+</p><dl>
+<dt><a name="index-triplot-1"></a><u>MGL command:</u> <b>triplot</b><i> idat xdat ydat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-triplot-2"></a><u>MGL command:</u> <b>triplot</b><i> idat xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-triplot-3"></a><u>MGL command:</u> <b>triplot</b><i> idat xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Draws the surface of triangles. Triangle vertexes are set by indexes <var>idat</var> of data points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. First dimensions of <var>idat</var> must be 3 or greater. See also <code>dots, crust, quadplot</code>. Parameter <var>cdat</var> set the colors of triangles (if <var>idat</var>.ny=<var>cdat</var>.nx) or colors of vertexes (if <var>xdat</var>.nx=<var>cdat</var>.nx). See also <a href="#dots">dots</a>, <a href="#crust">crust</a>, <a href="#quadplot">quadplot</a>, <a href="#tricont">tricont</a>.
+</p></dd></dl>
+
+<a name="index-tricont"></a>
+<p><a name="tricont"></a>
+</p><dl>
+<dt><a name="index-tricont-1"></a><u>MGL command:</u> <b>tricont</b><i> vdat idat xdat ydat zdat cdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tricont-2"></a><u>MGL command:</u> <b>tricont</b><i> vdat idat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tricont-3"></a><u>MGL command:</u> <b>tricont</b><i> idat xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Draws contour lines for surface of triangles at <var>z</var> = <var>zVal</var> (or for <var>z</var>=<var>vdat</var>[k] if <code>zval=nan</code>). Triangle vertexes are set by indexes <var>idat</var> of data points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k (or <var>num</var> contours equidistantly distributed in range [<var>Cmin</var>, <var>Cmax</var>].). See also <a href="#triplot">triplot</a>, <a href="#cont">cont</a>.
+</p></dd></dl>
+
+<a name="index-quadplot"></a>
+<p><a name="quadplot"></a>
+</p><dl>
+<dt><a name="index-quadplot-1"></a><u>MGL command:</u> <b>quadplot</b><i> idat xdat ydat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-quadplot-2"></a><u>MGL command:</u> <b>quadplot</b><i> idat xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-quadplot-3"></a><u>MGL command:</u> <b>quadplot</b><i> idat xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Draws the surface of quadrangles. Quadrangle vertexes are set by indexes <var>idat</var> of data points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. First dimensions of <var>idat</var> must be 4 or greater. See also <code>triplot, dots, crust</code>. Parameter <var>cdat</var> set the colors of triangles (if <var>idat</var>.ny=<var>cdat</var>.nx) or colors of vertexes (if <var>xdat</var>.nx=<var>cdat</var>.nx). See also <a href="#triplot">triplot</a>.
+</p></dd></dl>
+
+<a name="index-fplot"></a>
+<p><a name="fplot"></a>
+</p><dl>
+<dt><a name="index-fplot-1"></a><u>MGL command:</u> <b>fplot</b><i> 'y(x)' ['pen'='' <code>zval=nan num=100</code>]</i></dt>
+<dd><p>Draws command function &lsquo;<samp>y(x)</samp>&rsquo; at plane z=<var>zval</var> where &lsquo;<samp>x</samp>&rsquo; variable is changed in <code>xrange</code>. You do not need to create the data arrays to plot it. The parameter <var>num</var> set the minimal number of points along coordinate(s) for plots. See also <a href="#plot">plot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fplot-2"></a><u>MGL command:</u> <b>fplot</b><i> 'x(t)' 'y(t)' 'z(t)' ['pen'='' <code>num=100</code>]</i></dt>
+<dd><p>Draws command parametrical curve {&lsquo;<samp>x(t)</samp>&rsquo;, &lsquo;<samp>y(t)</samp>&rsquo;, &lsquo;<samp>z(t)</samp>&rsquo;} where &lsquo;<samp>t</samp>&rsquo; variable is changed in range [0, 1]. You do not need to create the data arrays to plot it. The parameter <var>num</var> set the minimal number of points along coordinate(s) for plots. See also <a href="#plot">plot</a>.
+</p></dd></dl>
+
+<a name="index-fsurf"></a>
+<p><a name="fsurf"></a>
+</p><dl>
+<dt><a name="index-fsurf-1"></a><u>MGL command:</u> <b>fsurf</b><i> 'z(x,y)' ['sch'='' <code>num=100</code>]</i></dt>
+<dd><p>Draws command surface for function &lsquo;<samp>z(x,y)</samp>&rsquo; where &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; variable are changed in <code>xrange, yrange</code>. You do not need to create the data arrays to plot it. The parameter <var>num</var> set the minimal number of points along coordinate(s) for plots. See also <a href="#surf">surf</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fsurf-2"></a><u>MGL command:</u> <b>fsurf</b><i> 'x(u,v)' 'y(u,v)' 'z(u,v)' ['sch'='' <code>num=100</code>]</i></dt>
+<dd><p>Draws command parametrical surface {&lsquo;<samp>x(u,v)</samp>&rsquo;, &lsquo;<samp>y(u,v)</samp>&rsquo;, &lsquo;<samp>z(u,v)</samp>&rsquo;} where &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo; variable are changed in range [0, 1]. You do not need to create the data arrays to plot it. The parameter <var>num</var> set the minimal number of points along coordinate(s) for plots. See also <a href="#surf">surf</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Nonlinear-fitting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-create" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-1"></a>
+<h2 class="section">1.16 Nonlinear fitting</h2>
+
+<p>These commands fit data to formula. Fitting goal is to find formula parameters for the best fit the data points, i.e. to minimize the sum <em>\sum_i (f(x_i, y_i, z_i) - a_i)^2/s_i^2</em>. At this, approximation function &lsquo;<samp>f</samp>&rsquo; can depend only on one argument &lsquo;<samp>x</samp>&rsquo; (1D case), on two arguments &lsquo;<samp>x,y</samp>&rsquo; (2D case) and on three arguments &lsquo;<samp>x,y,z</samp>&rsquo; (3D case). The command &lsquo;<samp>f</samp>&rsquo; also may depend on parameters. Normally the list of fitted parameters is specified by <var>var</var> string (like, &lsquo;<samp>abcd</samp>&rsquo;). Usually user should supply initial values for fitted parameters by <var>ini</var> variable. But if he/she don&rsquo;t supply it then the zeros are used.
+</p>
+<p>Commands <a href="#fit">fit</a> and <a href="#fits">fits</a> do not draw the obtained data themselves. They fill the data <var>out</var> by formula &lsquo;<samp>f</samp>&rsquo; with found coefficients. At this, the &lsquo;<samp>x,y,z</samp>&rsquo; coordinates are equidistantly distributed in the bounding box. Number of points in <var>out</var> is selected as maximal value of <var>out</var> size or 100. Also you may print the last formula with found coefficients by <code>putsfit</code> command. See section <a href="mgl_en_3.html#Fitting-sample">Fitting sample</a>, for sample code and picture.
+</p>
+<p>The dimensions of arrays must be at least the same as the number of specified arrays <var>xdat</var>, <var>ydat</var>, <var>zdat</var>. Also the fitting only along specified directions will be performed (for example, along x and y if only <var>xdat</var> and <var>ydat</var> are specified). If array <var>xdat</var> is not specified then its an automatic array is used with values equidistantly distributed along x.
+</p>
+
+<a name="index-fits"></a>
+<p><a name="fits"></a>
+</p><dl>
+<dt><a name="index-fits-1"></a><u>MGL command:</u> <b>fits</b><i> adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-2"></a><u>MGL command:</u> <b>fits</b><i> xdat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-3"></a><u>MGL command:</u> <b>fits</b><i> xdat ydat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-4"></a><u>MGL command:</u> <b>fits</b><i> xdat ydat zdat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dd><p>Fit data along x-, y- and z-directions for 1d-,2d- or 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) with weight factor <var>sdat</var>[i,j,k].
+</p></dd></dl>
+
+<a name="index-fit"></a>
+<p><a name="fit"></a>
+</p><dl>
+<dt><a name="index-fit-1"></a><u>MGL command:</u> <b>fit</b><i> adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-2"></a><u>MGL command:</u> <b>fit</b><i> xdat adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-3"></a><u>MGL command:</u> <b>fit</b><i> xdat ydat adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-4"></a><u>MGL command:</u> <b>fit</b><i> xdat ydat zdat adat 'func' 'var' [ini=0]</i></dt>
+<dd><p>Fit data along x-, y- and z-directions for 1d-,2d- or 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) with weight factor =1.
+</p></dd></dl>
+
+<a name="index-putsfit"></a>
+<p><a name="putsfit"></a>
+</p><dl>
+<dt><a name="index-putsfit-1"></a><u>MGL command:</u> <b>putsfit</b><i> <code>x y</code> ['pre'='' 'fnt'='' <code>size=-1</code>]</i></dt>
+<dd><p>Print last fitted formula with found coefficients (as numbers) at position {<var>x</var>, <var>y</var>}. The string <var>pre</var> will be printed before formula. All other parameters are the same as in <a href="#Text-printing">Text printing</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Data-create"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-filling" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-create-1"></a>
+<h2 class="section">1.17 Data create</h2>
+
+<a name="index-new"></a>
+<p><a name="new"></a>
+</p><dl>
+<dt><a name="index-new-1"></a><u>MGL command:</u> <b>new</b><i> dat [<code>nx=1 ny=1 nz=1</code>]</i></dt>
+<dd><p>Creates or recreates the array <var>dat</var> with specified size and fills it by zero. This command does nothing if one of parameters <var>nx</var>, <var>ny</var>, <var>nz</var> is zero or negative.
+</p></dd></dl>
+
+<a name="index-var"></a>
+<p><a name="var"></a>
+</p><dl>
+<dt><a name="index-var-1"></a><u>MGL command:</u> <b>var</b><i> dat <code>num v1 [v2=nan]</code></i></dt>
+<dd><p>Creates new variable with name <var>dat</var> for one-dimensional array of size <var>num</var>. Array elements are equidistantly distributed in range [<var>v1</var>, <var>v2</var>]. If <var>v2</var>=<code>nan</code> then <var>v2=v1</var> is used. 
+</p></dd></dl>
+
+<a name="index-list"></a>
+<p><a name="list"></a>
+</p><dl>
+<dt><a name="index-list-1"></a><u>MGL command:</u> <b>list</b><i> dat <code>v1 ...</code></i></dt>
+<dd><p>Creates new variable with name <var>dat</var> and fills it by numeric values of command arguments <code>v1 ...</code>. Command can create one-dimensional and two-dimensional arrays with arbitrary values. For creating 2d array the user should use delimiter &lsquo;<samp>|</samp>&rsquo; which means that the following values lie in next row. Array sizes are [maximal of row sizes * number of rows]. For example, command <code>list 1 | 2 3</code> creates the array [1 0; 2 3]. Note, that the maximal number of arguments is 1000. 
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-list-2"></a><u>MGL command:</u> <b>list</b><i> dat d1 ...</i></dt>
+<dd><p>Creates new variable with name <var>dat</var> and fills it by data values of arrays of command arguments <var>d1 ...</var>. Command can create two-dimensional or three-dimensional (if arrays in arguments are 2d arrays) arrays with arbitrary values. Minor dimensions of all arrays in arguments should be equal to dimensions of first array d1. In the opposite case the argument will be ignored. Note, that the maximal number of arguments is 1000. 
+</p></dd></dl>
+
+<a name="index-copy"></a>
+<p><a name="copy"></a>
+</p><dl>
+<dt><a name="index-copy-1"></a><u>MGL command:</u> <b>copy</b><i> dat1 dat2 ['eq'='' <code>on_axis=on</code>]</i></dt>
+<dt><a name="index-copy-2"></a><u>MGL command:</u> <b>copy</b><i> dat1 <code>val</code></i></dt>
+<dd><p>Creates new variable with name <var>dat1</var> and fills it by data values of array <var>dat2</var>. At this, if parameter <var>eq</var> is specified then the data will be modified by corresponding formula by the same way as in <a href="#fill">fill</a> command (for <code>on_axis=on</code>) or in <a href="#modify">modify</a> command (for <code>on_axis=off</code>).
+</p></dd></dl>
+
+<a name="index-idset"></a>
+<p><a name="idset"></a>
+</p><dl>
+<dt><a name="index-idset-1"></a><u>MGL command:</u> <b>idset</b><i> dat 'ids'</i></dt>
+<dd><p>Set the symbol id for data columns. The string must contain one symbol &rsquo;a&rsquo;...&rsquo;z&rsquo; per column (without spaces).
+</p></dd></dl>
+
+<a name="index-info"></a>
+<p><a name="info"></a>
+</p><dl>
+<dt><a name="index-info-1"></a><u>MGL command:</u> <b>info</b><i> dat [<code>detail=off</code>]</i></dt>
+<dd><p>Display information (sizes, maximum/minimum, momentums and so on) about the data dat. Show brief information by default (if <code>detail=off</code>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-info-2"></a><u>MGL command:</u> <b>info</b><i> 'text'</i></dt>
+<dd><p>Display <var>text</var> as information (warning).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Data-filling"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-create" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Rearrange-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-filling-1"></a>
+<h2 class="section">1.18 Data filling</h2>
+<a name="index-fill"></a>
+<a name="index-modify"></a>
+
+<a name="index-fill-1"></a>
+<p><a name="fill"></a>
+</p><dl>
+<dt><a name="index-fill-2"></a><u>MGL command:</u> <b>fill</b><i> dat v1 v2 ['dir'='x']</i></dt>
+<dd><p>Equidistantly fills the data values to range [<var>x1</var>, <var>x2</var>] in direction <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;,&lsquo;<samp>y</samp>&rsquo;,&lsquo;<samp>z</samp>&rsquo;}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fill-3"></a><u>MGL command:</u> <b>fill</b><i> dat 'eq'</i></dt>
+<dt><a name="index-fill-4"></a><u>MGL command:</u> <b>fill</b><i> dat 'eq' vdat</i></dt>
+<dt><a name="index-fill-5"></a><u>MGL command:</u> <b>fill</b><i> dat 'eq' vdat wdat</i></dt>
+<dd><p>Command fills the value of array according to the formula in string <var>eq</var>. Formula is an arbitrary expression depending  on variables &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; are supposed to be normalized in <em>bounding box</em> (in difference from <code>modify</code> commands). Variable &lsquo;<samp>u</samp>&rsquo; is the original value of the array. Variables &lsquo;<samp>v</samp>&rsquo; and &lsquo;<samp>w</samp>&rsquo; are values of <var>vdat</var>, <var>wdat</var>.
+</p></dd></dl>
+
+<a name="index-modify-1"></a>
+<p><a name="modify"></a>
+</p><dl>
+<dt><a name="index-modify-2"></a><u>MGL command:</u> <b>modify</b><i> dat 'eq' [<code>dim=0</code>]</i></dt>
+<dt><a name="index-modify-3"></a><u>MGL command:</u> <b>modify</b><i> dat 'eq' vdat</i></dt>
+<dt><a name="index-modify-4"></a><u>MGL command:</u> <b>modify</b><i> dat 'eq' vdat wdat</i></dt>
+<dd><p>Command fills the value of array according to the formula in string <var>eq</var>. Formula is an arbitrary expression depending  on variables &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;. Coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; are data indexes normalized in range [0,1]. Variable &lsquo;<samp>u</samp>&rsquo; is the original value of the array. If <var>dim</var>&gt;0 is specified then modification will be fulfilled only for slices &gt;=<var>dim</var>.
+</p></dd></dl>
+
+
+<a name="index-put"></a>
+<p><a name="put"></a>
+</p><dl>
+<dt><a name="index-put-1"></a><u>MGL command:</u> <b>put</b><i> dat <code>val [i=: j=: k=:]</code></i></dt>
+<dd><p>Function sets value(s) of array <var>dat</var>[<var>i</var>, <var>j</var>, <var>k</var>] = <var>val</var>. Negative indexes <var>i</var>, <var>j</var>, <var>k</var>=&lsquo;<samp>:</samp>&rsquo; set the value <var>val</var> to whole range in corresponding direction(s). For example, <code>put dat val : 0 :</code> sets <var>dat</var>[i,0,j]=<var>val</var> for i=0...(<var>dat</var>.nx-1), j=0...(<var>dat</var>.nz-1).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-put-2"></a><u>MGL command:</u> <b>put</b><i> dat vdat [<code>i=: j=: k=:</code>]</i></dt>
+<dd><p>Function copies value(s) from array <var>vdat</var> to the range of array <var>dat</var>. Negative indexes <var>i</var>, <var>j</var>, <var>k</var>=&lsquo;<samp>:</samp>&rsquo; set the range in corresponding direction(s). At this minor dimensions of array <var>vdat</var> should be large than corresponding dimensions of array <var>dat</var>. For example, <code>put dat v : 0 :</code> sets <var>dat</var>[i,0,j]=<var>vdat</var>.ny&gt;<var>dat</var>.nz ? <var>vdat</var>[i,j] : <var>vdat</var>[i], where i=0...(<var>dat</var>.nx-1), j=0...(<var>dat</var>.nz-1) and condition vdat.nx&gt;=dat.nx is true.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Rearrange-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-filling" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#File-I_002fO" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Rearrange-data-1"></a>
+<h2 class="section">1.19 Rearrange data</h2>
+
+<a name="index-rearrange"></a>
+<p><a name="rearrange"></a>
+</p><dl>
+<dt><a name="index-rearrange-1"></a><u>MGL command:</u> <b>rearrange</b><i> dat <code>mx [my=0 mz=0]</code></i></dt>
+<dd><p>Rearrange dimensions without changing data array so that resulting sizes should  be <var>mx</var>*<var>my</var>*<var>mz</var> &lt; nx*ny*nz. If some of parameter <var>my</var> or <var>mz</var> are zero then it will be selected to optimal fill of data array. For example, if <var>my</var>=0 then it will be change to <var>my</var>=nx*ny*nz/<var>mx</var> and <var>mz</var> will be 1.
+</p></dd></dl>
+
+<a name="index-extend"></a>
+<p><a name="extend"></a>
+</p><dl>
+<dt><a name="index-extend-1"></a><u>MGL command:</u> <b>extend</b><i> dat <code>n1 [n2=0]</code></i></dt>
+<dd><p>Increase the dimensions of the data by inserting new (|<var>n1</var>|+1)-th slices after (for <var>n1</var>&gt;0) or before (for <var>n1</var>&lt;0) of existed one. It is possible to insert 2 dimensions simultaneously for 1d data by using parameter <var>n2</var>. Data to new slices is copy from existed one. For example, for <var>n1</var>&gt;0 new array will be 
+a_ij^new = a_i^old where j=0...<var>n1</var>. Correspondingly, for <var>n1</var>&lt;0 new array will be a_ij^new = a_j^old where i=0...|<var>n1</var>|.
+</p></dd></dl>
+
+<a name="index-transpose"></a>
+<p><a name="transpose"></a>
+</p><dl>
+<dt><a name="index-transpose-1"></a><u>MGL command:</u> <b>transpose</b><i> dat ['dim'='yxz']</i></dt>
+<dd><p>Transposes (shift order of) dimensions of the data. New order of dimensions is specified int string <var>dim</var>. This command may be useful also for the reading of one-dimensional data.
+</p></dd></dl>
+
+<a name="index-squeeze"></a>
+<p><a name="squeeze"></a>
+</p><dl>
+<dt><a name="index-squeeze-1"></a><u>MGL command:</u> <b>squeeze</b><i> dat <code>rx [ry=1 rz=1 sm=off]</code></i></dt>
+<dd><p>Reduces the data size by excluding data elements which indexes are not divisible by <var>rx</var>, <var>ry</var>, <var>rz</var> correspondingly. Parameter <var>sm</var> set to use smoothing
+(i.e. out[i]=\sum_{j=i}^{i+r} a[j]/r) or not (i.e. out[i]=a[j*r]).
+</p></dd></dl>
+
+<a name="index-crop"></a>
+<p><a name="crop"></a>
+</p><dl>
+<dt><a name="index-crop-1"></a><u>MGL command:</u> <b>crop</b><i> dat <code>n1 n2</code> 'dir'</i></dt>
+<dd><p>Cuts off edges of the data <var>i</var>&lt;<var>n1</var> and <var>i</var>&gt;<var>n2</var> if <var>n2</var>&gt;0 or <var>i</var>&gt;<code>n[xyz]</code>-<var>n2</var> if <var>n2</var>&lt;=0 along direction <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-delete"></a>
+<p><a name="delete"></a>
+</p><dl>
+<dt><a name="index-delete-1"></a><u>MGL command:</u> <b>delete</b><i> dat</i></dt>
+<dd><p>Deletes variable <var>dat</var> and makes its memory free. Can be useful for huge data arrays.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-delete-2"></a><u>MGL command:</u> <b>delete</b><i> dat 'dir' <code>[pos=off num=0]</code></i></dt>
+<dd><p>Delete <var>num</var> slices along <var>dir</var>-direction at position <var>pos</var>.
+</p></dd></dl>
+
+<a name="index-insert"></a>
+<p><a name="insert"></a>
+</p><dl>
+<dt><a name="index-insert-1"></a><u>MGL command:</u> <b>insert</b><i> dat 'dir' <code>[pos=off num=0]</code></i></dt>
+<dd><p>Insert <var>num</var> slices along <var>dir</var>-direction at position <var>pos</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="File-I_002fO"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Rearrange-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Make-another-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="File-I_002fO-1"></a>
+<h2 class="section">1.20 File I/O</h2>
+
+<a name="index-read"></a>
+<p><a name="read"></a>
+</p><dl>
+<dt><a name="index-read-1"></a><u>MGL command:</u> <b>read</b><i> dat 'fname'</i></dt>
+<dd><p>Reads data from tab-separated text file with auto determining sizes of the data.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-read-2"></a><u>MGL command:</u> <b>read</b><i> dat 'fname' <code>mx [my=1 mz=1]</code></i></dt>
+<dd><p>Reads data from text file with specified data sizes. This command does nothing if one of parameters <var>mx</var>, <var>my</var> or <var>mz</var> is zero or negative.
+</p></dd></dl>
+
+<a name="index-readmat"></a>
+<p><a name="readmat"></a>
+</p><dl>
+<dt><a name="index-readmat-1"></a><u>MGL command:</u> <b>readmat</b><i> dat 'fname' [<code>dim=2</code>]</i></dt>
+<dd><p>Read data from text file with size specified at beginning of the file by first <var>dim</var> numbers. At this, variable <var>dim</var> set data dimensions.
+</p></dd></dl>
+
+<a name="index-readall"></a>
+<p><a name="readall"></a>
+</p><dl>
+<dt><a name="index-readall-1"></a><u>MGL command:</u> <b>readall</b><i> dat 'templ' <code>v1 v2 [dv=1 slice=off]</code></i></dt>
+<dd><p>Join data arrays from several text files. The file names are determined by function call <code>sprintf(fname,templ,val);</code>, where <var>val</var> changes from <var>v1</var> to <var>v2</var> with step <var>dv</var>. The data load one-by-one in the same slice if <var>slice</var>=<code>off</code> or as slice-by-slice if <var>slice</var>=<code>on</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-readall-2"></a><u>MGL command:</u> <b>readall</b><i> dat 'templ' <code>[slice=off]</code></i></dt>
+<dd><p>Join data arrays from several text files which filenames satisfied the template <var>templ</var> (for example, <var>templ</var>=<code>&quot;t_*.dat&quot;</code>). The data load one-by-one in the same slice if <var>slice</var>=<code>off</code> or as slice-by-slice if <var>slice</var>=<code>on</code>.
+</p></dd></dl>
+
+<a name="index-save"></a>
+<p><a name="save"></a>
+</p><dl>
+<dt><a name="index-save-1"></a><u>MGL command:</u> <b>save</b><i> dat 'fname'</i></dt>
+<dd><p>Saves the whole data array to tab-separated text file.
+</p></dd></dl>
+
+<a name="index-readhdf"></a>
+<p><a name="readhdf"></a>
+</p><dl>
+<dt><a name="index-readhdf-1"></a><u>MGL command:</u> <b>readhdf</b><i> dat 'fname' 'dname'</i></dt>
+<dd><p>Reads data array named <var>dname</var> from HDF5 or HDF4 file <var>fname</var>.
+</p></dd></dl>
+
+<a name="index-savehdf"></a>
+<p><a name="savehdf"></a>
+</p><dl>
+<dt><a name="index-savehdf-1"></a><u>MGL command:</u> <b>savehdf</b><i> dat 'fname' 'dname'</i></dt>
+<dd><p>Saves data array named <var>dname</var> from HDF5 or HDF4 file <var>fname</var>.
+</p></dd></dl>
+
+<a name="index-import"></a>
+<p><a name="import"></a>
+</p><dl>
+<dt><a name="index-import-1"></a><u>MGL command:</u> <b>import</b><i> dat 'fname' 'sch' [<code>v1=0 v2=1</code>]</i></dt>
+<dd><p>Reads data from bitmap file. The RGB values of bitmap pixels are transformed to float values in range [<var>v1</var>, <var>v2</var>] using color scheme <var>sch</var> (see section <a href="#Color-scheme">Color scheme</a>).
+</p></dd></dl>
+
+<a name="index-export"></a>
+<p><a name="export"></a>
+</p><dl>
+<dt><a name="index-export-1"></a><u>MGL command:</u> <b>export</b><i> dat 'fname' 'sch' [<code>v1=0 v2=0</code>]</i></dt>
+<dd><p>Saves data matrix to bitmap file. The data values are transformed from range [<var>v1</var>, <var>v2</var>] to RGB pixels of bitmap using color scheme <var>sch</var> (see section <a href="#Color-scheme">Color scheme</a>). If <var>v1</var>&gt;=<var>v2</var> then the values of <var>v1</var>, <var>v2</var> are automatically determined as minimal and maximal value of the data array.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Make-another-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#File-I_002fO" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Change-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Make-another-data-1"></a>
+<h2 class="section">1.21 Make another data</h2>
+
+<a name="index-combine"></a>
+<p><a name="combine"></a>
+</p><dl>
+<dt><a name="index-combine-1"></a><u>MGL command:</u> <b>combine</b><i> res adat bdat</i></dt>
+<dd><p>Returns direct multiplication of arrays (like, res[i,j] = adat[i]*bdat[j] and so on).
+</p></dd></dl>
+
+<a name="index-evaluate"></a>
+<p><a name="evaluate"></a>
+</p><dl>
+<dt><a name="index-evaluate-1"></a><u>MGL command:</u> <b>evaluate</b><i> res dat idat [<code>norm=on</code>]</i></dt>
+<dt><a name="index-evaluate-2"></a><u>MGL command:</u> <b>evaluate</b><i> res dat idat jdat [<code>norm=on</code>]</i></dt>
+<dt><a name="index-evaluate-3"></a><u>MGL command:</u> <b>evaluate</b><i> res dat idat jdat kdat [<code>norm=on</code>]</i></dt>
+<dd><p>Get array which values is result of interpolation of original array for coordinates from other arrays (for example, res[i,j]=dat[idat[i,j],jdat[i,j]]). All dimensions must be the same for data <var>idat</var>, <var>jdat</var>, <var>kdat</var>. Coordinates from <var>idat</var>, <var>jdat</var>, <var>kdat</var> are supposed to be normalized in range [0,1] (if <var>norm</var>=<code>true</code>) or in ranges [0,nx], [0,ny], [0,nz] correspondingly.
+</p></dd></dl>
+
+<a name="index-hist"></a>
+<p><a name="hist"></a>
+</p><dl>
+<dt><a name="index-hist-1"></a><u>MGL command:</u> <b>hist</b><i> res dat <code>num v1 v2 [nsub=0]</code></i></dt>
+<dt><a name="index-hist-2"></a><u>MGL command:</u> <b>hist</b><i> res dat wdat <code>num v1 v2 [nsub=0]</code></i></dt>
+<dd><p>Creates <var>num</var>-th points distribution <var>res</var> of the data values of <var>dat</var> in range [<var>v1</var>, <var>v2</var>]. Array <var>wdat</var> specifies weights of the data elements (all weight is 1 if <var>wdat</var> is not specified). Parameter <var>nsub</var> define the number of additional interpolated points (for smoothness of histogram).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-hist-3"></a><u>MGL command:</u> <b>hist</b><i> res xdat adat</i></dt>
+<dt><a name="index-hist-4"></a><u>MGL command:</u> <b>hist</b><i> res xdat ydat adat</i></dt>
+<dt><a name="index-hist-5"></a><u>MGL command:</u> <b>hist</b><i> res xdat ydat zdat adat</i></dt>
+<dd><p>Creates distribution <var>res</var> of the data values of <var>adat</var> in axis range [Min, Max]. Array <var>adat</var> look like weights of the data points.
+</p></dd></dl>
+
+
+<a name="index-momentum"></a>
+<p><a name="momentum"></a>
+</p><dl>
+<dt><a name="index-momentum-1"></a><u>MGL command:</u> <b>momentum</b><i> res dat 'how' ['dir'='z']</i></dt>
+<dd><p>Get momentum (1D-array) of the data along direction <var>dir</var>. String <var>how</var> contain kind of momentum. The momentum is defined like as
+res_k = \sum_ij how(x_i,y_j,z_k) a_ij/ \sum_ij a_ij
+if <var>var</var>=&lsquo;<samp>z</samp>&rsquo; and so on. Coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; are data indexes normalized in range [0,1].
+</p></dd></dl>
+
+<a name="index-sum"></a>
+<p><a name="sum"></a>
+</p><dl>
+<dt><a name="index-sum-1"></a><u>MGL command:</u> <b>sum</b><i> res dat 'dir'</i></dt>
+<dd><p>Gets array which is the result of summation in given direction or direction(s).
+</p></dd></dl>
+<a name="index-max"></a>
+<p><a name="max"></a>
+</p><dl>
+<dt><a name="index-max-1"></a><u>MGL command:</u> <b>max</b><i> res dat 'dir'</i></dt>
+<dd><p>Gets array which is the maximal data values in given direction or direction(s).
+</p></dd></dl>
+<a name="index-min"></a>
+<p><a name="min"></a>
+</p><dl>
+<dt><a name="index-min-1"></a><u>MGL command:</u> <b>min</b><i> res dat 'dir'</i></dt>
+<dd><p>Gets array which is the minimal data values in given direction or direction(s).
+</p></dd></dl>
+
+<a name="index-resize"></a>
+<p><a name="resize"></a>
+</p><dl>
+<dt><a name="index-resize-1"></a><u>MGL command:</u> <b>resize</b><i> res dat <code>mx [my=1 mz=1]</code></i></dt>
+<dd><p>Makes array <var>res</var> of sizes <var>mx</var>, <var>my</var>, <var>mz</var> with interpolated data of array <var>dat</var>. 
+</p></dd></dl>
+
+<a name="index-subdata"></a>
+<p><a name="subdata"></a>
+</p><dl>
+<dt><a name="index-subdata-1"></a><u>MGL command:</u> <b>subdata</b><i> res dat <code>xx [yy=: zz=:]</code></i></dt>
+<dd><p>Extracts sub-array data <var>res</var> from the original data <var>dat</var> array keeping fixed positive index. For example <code>subdata a b : 2</code> extracts 3d row (indexes are zero based), <code>subdata a b 4 :</code> extracts 5th column, <code>subdata a b : : 3</code> extracts 4th slice and so on. Note that symbol &lsquo;<samp>:</samp>&rsquo; is defined &lsquo;<samp>:</samp>&rsquo;=<code>-1</code> in MGL.
+</p></dd></dl>
+
+<a name="index-trace"></a>
+<p><a name="trace"></a>
+</p><dl>
+<dt><a name="index-trace-1"></a><u>MGL command:</u> <b>trace</b><i> res dat</i></dt>
+<dd><p>Gets array of diagonal elements <var>dat</var>[i,i] (for 2D case) or <var>dat</var>[i,i,i] (for 3D case) where i=0...nx-1. Function return copy of <var>dat</var> for 1D case. Data array must have dimensions <var>dat</var>.ny, <var>dat</var>.nz &gt;= <var>dat</var>.nx or <var>dat</var>.ny, <var>dat</var>.nz = 1.
+</p></dd></dl>
+
+<a name="index-transform"></a>
+<p><a name="transform"></a>
+</p><dl>
+<dt><a name="index-transform-1"></a><u>MGL command:</u> <b>transform</b><i> dat 'type' real imag</i></dt>
+<dd><p>Do integral transformation of complex data <var>real</var>, <var>imag</var> on specified direction. The order of transformations is specified in string <var>type</var>: first character for x-dimension, second one for y-dimension, third one for z-dimension. The possible character are: &lsquo;<samp>f</samp>&rsquo; is forward Fourier transformation, &lsquo;<samp>i</samp>&rsquo; is inverse Fourier transformation, &lsquo;<samp>s</samp>&rsquo; is Sine transform, &lsquo;<samp>c</samp>&rsquo; is Cosine transform, &lsquo;<samp>h</samp>&rsquo; is Hankel transform, &lsquo;<samp>n</samp>&rsquo; or &lsquo;<samp> </samp>&rsquo; is no transformation.
+</p></dd></dl>
+
+<a name="index-transforma"></a>
+<p><a name="transforma"></a>
+</p><dl>
+<dt><a name="index-transforma-1"></a><u>MGL command:</u> <b>transforma</b><i> dat 'type' ampl phase</i></dt>
+<dd><p>The same as previous but with specified amplitude <var>ampl</var> and phase <var>phase</var> of complex numbers.
+</p></dd></dl>
+
+<a name="index-stfad"></a>
+<p><a name="stfad"></a>
+</p><dl>
+<dt><a name="index-stfad-1"></a><u>MGL command:</u> <b>stfad</b><i> res real imag <code>dn</code> ['dir'='x']</i></dt>
+<dd><p>Short time Fourier transformation for real and imaginary parts. Output  is amplitude of partial Fourier of length <var>dn</var>. For example if <var>dir</var>=&lsquo;<samp>x</samp>&rsquo;, result will have size {int(nx/dn), dn, ny} and it will contain <em>res[i,j,k]=|\sum_d^dn exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn</em>.
+</p></dd></dl>
+
+<a name="index-pde"></a>
+<p><a name="pde"></a>
+</p><dl>
+<dt><a name="index-pde-1"></a><u>MGL command:</u> <b>pde</b><i> res 'ham' ini_re ini_im [<code>dz=0.1 k0=100</code>]</i></dt>
+<dd><p>Solves equation du/dz = i*k0*<var>ham</var>(p,q,x,y,z,|u|)[u], where p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators. Parameters <var>ini_re</var>, <var>ini_im</var> specify real and imaginary part of initial field distribution. Coordinates of the equation (and the solution) are supposed to be in the bounding box. Note, that really this ranges are increased by factor 3/2 for purpose of reducing reflection from boundaries. Parameter <var>dz</var> set the step along evolutionary coordinate z. At this moment, simplified form of function <var>ham</var> is supported &ndash; all &ldquo;mixed&rdquo; terms (like &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) are excluded. For example, in 2D case this function is effectively <em>ham = f(p,z) + g(x,z,u)</em>. However commutable combinations (like &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy) are allowed. Here variable &lsquo;<samp>u</samp>&rsquo; is used for field amplitude |u|. This allow one solve nonlinear problems &ndash; for example, for non-linear Shrodinger equation you may set <code>ham='p^2+q^2-u^2'</code>. You may specify imaginary part for wave absorption, like <code>ham = 'p^2+i*x*(x&gt;0)'</code>, but only if dependence on variable &lsquo;<samp>i</samp>&rsquo; is linear (i.e. <em>ham = hre+i*him</em>). See section <a href="mgl_en_3.html#PDE-sample">PDE sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-ray"></a>
+<p><a name="ray"></a>
+</p><dl>
+<dt><a name="index-ray-1"></a><u>MGL command:</u> <b>ray</b><i> res 'ham' <code>x0 y0 z0 p0 q0 v0 [dt=0.1 tmax=10]</code></i></dt>
+<dd><p>Solves GO ray equation like d<em>r</em>/dt = d <var>ham</var>/d<em>p</em>, d<em>p</em>/dt = -d <var>ham</var>/d<em>r</em>. This is Hamiltonian equations for particle trajectory in 3D case. Here <var>ham</var> is Hamiltonian which may depend on coordiantes &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, momentums &lsquo;<samp>p</samp>&rsquo;=px, &lsquo;<samp>q</samp>&rsquo;=py, &lsquo;<samp>v</samp>&rsquo;=pz and time &lsquo;<samp>t</samp>&rsquo;: <em>ham = H(x,y,z,p,q,v,t)</em>. The starting point (at <code>t=0</code>) is defined by variables {<var>x0</var>, <var>y0</var>, <var>z0</var>, <var>p0</var>, <var>q0</var>, <var>v0</var>}. Parameters <var>dt</var> and <var>tmax</var> specify the integration step and maximal time for ray tracing. Result is array of {x,y,z,p,q,v,t} with dimensions {7 * int(<var>tmax</var>/<var>dt</var>+1) }. See also <a href="#pde">pde</a>. See section <a href="mgl_en_3.html#Beam-tracing-sample">Beam tracing sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-qo2d"></a>
+<p><a name="qo2d"></a>
+</p><dl>
+<dt><a name="index-qo2d-1"></a><u>MGL command:</u> <b>qo2d</b><i> res 'ham' ini_re ini_im ray [<code>r=1 k0=100</code> xx=0 yy=0]</i></dt>
+<dd><p>Solves equation du/dt = i*k0*<var>ham</var>(p,q,x,y,|u|)[u], where p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators. Parameters <var>ini_re</var>, <var>ini_im</var> specify real and imaginary part of initial field distribution. Parameters <var>ray</var> set the reference ray, i.e. the ray around which the accompanied coordinate system will be maked. You may use, for example, the array created by <a href="#ray">ray</a> function. Note, that the reference ray <strong>must be</strong> smooth enough to make accompanied coodrinates unambiguity. Otherwise errors in the solution may appear. If <var>xx</var> and <var>yy</var> are non-zero then Cartesian coordinates for each point will be written into them. See section <a href="mgl_en_3.html#Beam-tracing-sample">Beam tracing sample</a>, for sample code and picture. 
+</p></dd></dl>
+
+<a name="index-jacobian"></a>
+<p><a name="jacobian"></a>
+</p><dl>
+<dt><a name="index-jacobian-1"></a><u>MGL command:</u> <b>jacobian</b><i> res xdat ydat [zdat=0]</i></dt>
+<dd><p>Computates the Jacobian for transformation {i,j,k} to {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} where initial coordinates  {i,j,k} are data indexes normalized in range [0,1]. The Jacobian is determined by formula det||<em>dr_\alpha/d\xi_\beta</em>|| where <em>r</em>={<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} and <em>\  xi</em>={i,j,k}. All dimensions must be the same for all data arrays. Data must be 3D if all 3 arrays {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} are specified or 2D if only 2 arrays {<var>xdat</var>,<var>ydat</var>} are specified.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Change-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Make-another-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Operators" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Change-data-1"></a>
+<h2 class="section">1.22 Change data</h2>
+
+<p>These commands change the data in some direction like differentiations, integrations and so on. The direction in which the change will applied is specified by the string parameter, which may contain &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo; characters for 1-st, 2-nd and 3-d dimension correspondingly.
+</p>
+<a name="index-cumsum"></a>
+<p><a name="cumsum"></a>
+</p><dl>
+<dt><a name="index-cumsum-1"></a><u>MGL command:</u> <b>cumsum</b><i> dat 'dir'</i></dt>
+<dd><p>Cumulative summation of the data in given direction or directions.
+</p></dd></dl>
+<a name="index-integrate"></a>
+<p><a name="integrate"></a>
+</p><dl>
+<dt><a name="index-integrate-1"></a><u>MGL command:</u> <b>integrate</b><i> dat 'dir'</i></dt>
+<dd><p>Integrates (like cumulative summation) the data in given direction or directions.
+</p></dd></dl>
+<a name="index-diff"></a>
+<p><a name="diff"></a>
+</p><dl>
+<dt><a name="index-diff-1"></a><u>MGL command:</u> <b>diff</b><i> dat 'dir'</i></dt>
+<dd><p>Differentiates the data in given direction or directions.
+</p></dd></dl>
+<dl>
+<dt><a name="index-diff-2"></a><u>MGL command:</u> <b>diff</b><i> dat xdat ydat [zdat=0]</i></dt>
+<dd><p>Differentiates the data <var>dat</var> specified parametrically in direction <var>xdat</var> with <var>ydat</var>, <var>zdat</var>=constant. Parameter <var>zdat</var> can be omitted that correspond to 2D case. Parametrical differentiation uses the formula (for 2D case): <em>da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j)</em> where <em>a_i=da/di, a_j=da/dj</em> denotes usual differentiation along 1st and 2nd dimensions. The similar formula is used for 3D case. Note, that you may change the order of arguments &ndash; for example, if you have 2D data a(i,j) which depend on coordinates {x(i,j), y(i,j)} then usual derivative along &lsquo;<samp>x</samp>&rsquo; will be <code>diff a x y</code> and usual derivative along &lsquo;<samp>y</samp>&rsquo; will be <code>diff a y x</code>.
+</p></dd></dl>
+
+<a name="index-diff2"></a>
+<p><a name="diff2"></a>
+</p><dl>
+<dt><a name="index-diff2-1"></a><u>MGL command:</u> <b>diff2</b><i> dat 'dir'</i></dt>
+<dd><p>Double-differentiates (like Laplace operator) the data in given direction.
+</p></dd></dl>
+
+<a name="index-sinfft"></a>
+<p><a name="sinfft"></a>
+</p><dl>
+<dt><a name="index-sinfft-1"></a><u>MGL command:</u> <b>sinfft</b><i> dat 'dir'</i></dt>
+<dd><p>Do Sine transform of the data in given direction or directions. The Sine transform is <em>\sum a_i \sin(k i)</em>.
+</p></dd></dl>
+<a name="index-cosfft"></a>
+<p><a name="cosfft"></a>
+</p><dl>
+<dt><a name="index-cosfft-1"></a><u>MGL command:</u> <b>cosfft</b><i> dat 'dir'</i></dt>
+<dd><p>Do Cosine transform of the data in given direction or directions. The Cosine transform is <em>\sum a_i \cos(k i)</em>.
+</p></dd></dl>
+<a name="index-hankel"></a>
+<p><a name="hankel"></a>
+</p><dl>
+<dt><a name="index-hankel-1"></a><u>MGL command:</u> <b>hankel</b><i> dat 'dir'</i></dt>
+<dd><p>Do Hankel transform of the data in given direction or directions. The Hankel transform is <em>\sum a_i J_0(k i)</em>.
+</p></dd></dl>
+
+
+<a name="index-swap"></a>
+<p><a name="swap"></a>
+</p><dl>
+<dt><a name="index-swap-1"></a><u>MGL command:</u> <b>swap</b><i> dat 'dir'</i></dt>
+<dd><p>Swaps the left and right part of the data in given direction (useful for Fourier spectrum).
+</p></dd></dl>
+<a name="index-roll"></a>
+<p><a name="roll"></a>
+</p><dl>
+<dt><a name="index-roll-1"></a><u>MGL command:</u> <b>roll</b><i> dat 'dir' num</i></dt>
+<dd><p>Rolls the data along direction &rsquo;dir&rsquo;. Resulting array will be out[i] = ini[(i+num)%nx] if <code>dir='x'</code>.
+</p></dd></dl>
+
+<a name="index-mirror"></a>
+<p><a name="mirror"></a>
+</p><dl>
+<dt><a name="index-mirror-1"></a><u>MGL command:</u> <b>mirror</b><i> dat 'dir'</i></dt>
+<dd><p>Mirror the left-to-right part of the data in given direction. Looks like change the value index <var>i</var>-&gt;<var>n-i</var>.
+</p></dd></dl>
+
+<a name="index-sew"></a>
+<p><a name="sew"></a>
+</p><dl>
+<dt><a name="index-sew-1"></a><u>MGL command:</u> <b>sew</b><i> dat ['dir'='xyz' <code>da=2*pi</code>]</i></dt>
+<dd><p>Remove value steps (like phase jumps after inverse trigonometric commands) with period <var>da</var> in given direction.
+</p></dd></dl>
+<a name="index-smooth"></a>
+<p><a name="smooth"></a>
+</p><dl>
+<dt><a name="index-smooth-1"></a><u>MGL command:</u> <b>smooth</b><i> data <code>type</code> ['dir'='xyz']</i></dt>
+<dd><p>Smooths the data on specified direction or directions by method <var>Type</var>. Now 4 methods are supported: &lsquo;<samp>0</samp>&rsquo; does nothing, &lsquo;<samp>1</samp>&rsquo; linear averaging by 3 points, &lsquo;<samp>2</samp>&rsquo; linear averaging by 5 points, &lsquo;<samp>3</samp>&rsquo; quadratic averaging by 5 points.
+</p></dd></dl>
+
+<a name="index-envelop"></a>
+<p><a name="envelop"></a>
+</p><dl>
+<dt><a name="index-envelop-1"></a><u>MGL command:</u> <b>envelop</b><i> dat ['dir'='x']</i></dt>
+<dd><p>Find envelop for data values along direction <var>dir</var>. Only one direction can be specified at once.
+</p></dd></dl>
+
+<a name="index-normsl"></a>
+<p><a name="normsl"></a>
+</p><dl>
+<dt><a name="index-normsl-1"></a><u>MGL command:</u> <b>normsl</b><i> dat <code>v1 v2</code> ['dir'='z' <code>keep=on sym=off</code>]</i></dt>
+<dd><p>Normalizes data slice-by-slice along direction <var>dir</var> the data in slices to range [<var>v1</var>,<var>v2</var>]. If flag <var>sym</var>=<code>on</code> then symmetrical interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used. If <var>keep</var> is set then maximal value of k-th slice will be limited by 
+<em>\sqrt\sum a_ij(k)/\sum a_ij(0)</em>.
+</p></dd></dl>
+
+<a name="index-norm"></a>
+<p><a name="norm"></a>
+</p><dl>
+<dt><a name="index-norm-1"></a><u>MGL command:</u> <b>norm</b><i> dat <code>v1 v2 [sym=off dim=0]</code></i></dt>
+<dd><p>Normalizes the data to range [<var>v1</var>,<var>v2</var>]. If flag <var>sym</var>=<code>on</code> then symmetrical interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used. Modification will be applied only for slices &gt;=<var>dim</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Operators"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Change-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Program-flow" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Operators-1"></a>
+<h2 class="section">1.23 Operators</h2>
+
+<a name="index-multo"></a>
+<p><a name="multo"></a>
+</p><dl>
+<dt><a name="index-multo-1"></a><u>MGL command:</u> <b>multo</b><i> dat dat2</i></dt>
+<dd><p>Multiplies the data by the other one for each element.
+</p></dd></dl>
+<dl>
+<dt><a name="index-multo-2"></a><u>MGL command:</u> <b>multo</b><i> dat <code>val</code></i></dt>
+<dd><p>Multiplies each element by the number.
+</p></dd></dl>
+
+<a name="index-divto"></a>
+<p><a name="divto"></a>
+</p><dl>
+<dt><a name="index-divto-1"></a><u>MGL command:</u> <b>divto</b><i> dat dat2</i></dt>
+<dd><p>Divides the data by the other one for each element.
+</p></dd></dl>
+<dl>
+<dt><a name="index-divto-2"></a><u>MGL command:</u> <b>divto</b><i> dat <code>val</code></i></dt>
+<dd><p>Divides each element by the number.
+</p></dd></dl>
+
+<a name="index-addto"></a>
+<p><a name="addto"></a>
+</p><dl>
+<dt><a name="index-addto-1"></a><u>MGL command:</u> <b>addto</b><i> dat dat2</i></dt>
+<dd><p>Adds the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-addto-2"></a><u>MGL command:</u> <b>addto</b><i> dat <code>val</code></i></dt>
+<dd><p>Adds the number to each element.
+</p></dd></dl>
+
+<a name="index-subto"></a>
+<p><a name="subto"></a>
+</p><dl>
+<dt><a name="index-subto-1"></a><u>MGL command:</u> <b>subto</b><i> dat dat2</i></dt>
+<dd><p>Subtracts the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-subto-2"></a><u>MGL command:</u> <b>subto</b><i> dat <code>val</code></i></dt>
+<dd><p>Subtracts the number to each element.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Program-flow"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Operators" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Command-options" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Program-flow-1"></a>
+<h2 class="section">1.24 Program flow</h2>
+
+<p>These commands control program flow, like, conditions, cycles, define script arguments and so on.
+</p>
+<a name="index-chdir"></a>
+<p><a name="chdir"></a>
+</p><dl>
+<dt><a name="index-chdir-1"></a><u>MGL command:</u> <b>chdir</b><i> 'path'</i></dt>
+<dd><p>Changes the current directory to <var>path</var>.
+</p></dd></dl>
+
+<a name="index-define"></a>
+<p><a name="define"></a>
+</p><dl>
+<dt><a name="index-define-1"></a><u>MGL command:</u> <b>define</b><i> $N smth</i></dt>
+<dd><p>Sets <var>N</var>-th script argument to <var>smth</var>. Note, that <var>smth</var> is used as is (with &lsquo;<samp>'</samp>&rsquo; symbols if present). Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<dl>
+<dt><a name="index-define-2"></a><u>MGL command:</u> <b>define</b><i> name smth</i></dt>
+<dd><p>Create scalar variable <code>name</code> which have the numeric value of <code>smth</code>. Later you can use this variable as usual number. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<a name="index-defchr"></a>
+<p><a name="defchr"></a>
+</p><dl>
+<dt><a name="index-defchr-1"></a><u>MGL command:</u> <b>defchr</b><i> $N smth</i></dt>
+<dd><p>Sets <var>N</var>-th script argument to character with value evaluated from <var>smth</var>. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<a name="index-defnum"></a>
+<p><a name="defnum"></a>
+</p><dl>
+<dt><a name="index-defnum-1"></a><u>MGL command:</u> <b>defnum</b><i> $N smth</i></dt>
+<dd><p>Sets <var>N</var>-th script argument to number with value evaluated from <var>smth</var>. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<a name="index-defpal"></a>
+<p><a name="defpal"></a>
+</p><dl>
+<dt><a name="index-defpal-1"></a><u>MGL command:</u> <b>defpal</b><i> $N smth</i></dt>
+<dd><p>Sets <var>N</var>-th script argument to palette character at position evaluated from <var>smth</var>. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+
+<a name="index-call"></a>
+<p><a name="call"></a>
+</p><dl>
+<dt><a name="index-call-1"></a><u>MGL command:</u> <b>call</b><i> 'fname' [ARG1 ARG2 ... ARG9]</i></dt>
+<dd><p>Executes function <var>fname</var> (or script if function is not found). Optional arguments will be passed to functions. See also <a href="#func">func</a>.
+</p></dd></dl>
+<a name="index-func"></a>
+<p><a name="func"></a>
+</p><dl>
+<dt><a name="index-func-1"></a><u>MGL command:</u> <b>func</b><i> 'fname' [narg=0]</i></dt>
+<dd><p>Define the function <var>fname</var> and number of required arguments. The arguments will be placed in script parameters $1, $2, ... $9. Note, you should stop script execution before function definition(s) by command <a href="#stop">stop</a>. See also <a href="#return">return</a>.
+</p></dd></dl>
+<a name="index-return"></a>
+<p><a name="return"></a>
+</p><dl>
+<dt><a name="index-return-1"></a><u>MGL command:</u> <b>return</b></dt>
+<dd><p>Return from the function. See also <a href="#func">func</a>.
+</p></dd></dl>
+
+
+<a name="index-if"></a>
+<p><a name="if"></a>
+</p><dl>
+<dt><a name="index-if-1"></a><u>MGL command:</u> <b>if</b><i> dat 'cond'</i></dt>
+<dd><p>Starts block which will be executed if <var>dat</var> satisfy to <var>cond</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-if-2"></a><u>MGL command:</u> <b>if</b><i> <code>val</code></i></dt>
+<dd><p>Starts block which will be executed if <code>val</code> is nonzero.
+</p></dd></dl>
+<a name="index-elseif"></a>
+<p><a name="elseif"></a>
+</p><dl>
+<dt><a name="index-elseif-1"></a><u>MGL command:</u> <b>elseif</b><i> dat 'cond'</i></dt>
+<dd><p>Starts block which will be executed if previous <code>if</code> or <code>elseif</code> is false and <var>dat</var> satisfy to <var>cond</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-elseif-2"></a><u>MGL command:</u> <b>elseif</b><i> <code>val</code></i></dt>
+<dd><p>Starts block which will be executed if previous <code>if</code> or <code>elseif</code> is false and <code>val</code> is nonzero.
+</p></dd></dl>
+<a name="index-else"></a>
+<p><a name="else"></a>
+</p><dl>
+<dt><a name="index-else-1"></a><u>MGL command:</u> <b>else</b></dt>
+<dd><p>Starts block which will be executed if previous <code>if</code> or <code>elseif</code> is false.
+</p></dd></dl>
+<a name="index-endif"></a>
+<p><a name="endif"></a>
+</p><dl>
+<dt><a name="index-endif-1"></a><u>MGL command:</u> <b>endif</b></dt>
+<dd><p>Finishes <code>if/elseif/else</code> block.
+</p></dd></dl>
+
+<a name="index-for"></a>
+<p><a name="for"></a>
+</p><dl>
+<dt><a name="index-for-1"></a><u>MGL command:</u> <b>for</b><i> $N <code>v1 v2 [dv=1]</code></i></dt>
+<dd><p>Starts cycle with $<var>N</var>-th argument changing from <var>v1</var> to <var>v2</var> with the step <var>dv</var>. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<dl>
+<dt><a name="index-for-2"></a><u>MGL command:</u> <b>for</b><i> $N dat</i></dt>
+<dd><p>Starts cycle with $<var>N</var>-th argument changing for <var>dat</var> values. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<a name="index-next"></a>
+<p><a name="next"></a>
+</p><dl>
+<dt><a name="index-next-1"></a><u>MGL command:</u> <b>next</b></dt>
+<dd><p>Finishes <code>for</code> cycle.
+</p></dd></dl>
+
+<a name="index-once"></a>
+<p><a name="once"></a>
+</p><dl>
+<dt><a name="index-once-1"></a><u>MGL command:</u> <b>once</b><i> <code>val</code></i></dt>
+<dd><p>The code between <code>once on</code> and <code>once off</code> will be executed only once. Useful for large data manipulation in programs like UDAV.
+</p></dd></dl>
+<a name="index-stop"></a>
+<p><a name="stop"></a>
+</p><dl>
+<dt><a name="index-stop-1"></a><u>MGL command:</u> <b>stop</b></dt>
+<dd><p>Terminate execution.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Command-options"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Program-flow" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Suffixes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Command-options-1"></a>
+<h2 class="section">1.25 Command options</h2>
+
+<p>Command options allow the easy setup of the plot by changing of global settings only for this plot. Options are specified at the end of string. Each option is separated from the previous text by symbol &lsquo;<samp>;</samp>&rsquo;. Options work so that them remember the current settings, change settings as it being set in the option, execute command and return the original settings back. So, the options usage for data handling commands or for graphics setup commands is useless.
+</p>
+<p>The most useful options are <code>xrange, yrange, zrange</code>. They sets the boundaries for data change. This boundaries are used for automatically filled variables. So, these options allow one to change the position of some plots. For example, in command <code>plot y; xrange 0.1 0.9</code> the x coordinate will be equidistantly distributed in range 0.1 ... 0.9.
+</p>
+<p>The full list of options are:
+<a name="index-alpha-2"></a>
+<a name="index-alphadef-2"></a>
+</p><dl>
+<dt><a name="index-alpha-3"></a><u>MGL option:</u> <b>alpha</b><i> <code>val</code></i></dt>
+<dt><a name="index-alphadef-3"></a><u>MGL option:</u> <b>alphadef</b><i> <code>val</code></i></dt>
+<dd><p>Sets alpha value (transparency) of the plot. The value should be in range [0, 1]. See also <a href="#alphadef">alphadef</a>.
+</p></dd></dl>
+<a name="index-ambient-2"></a>
+<dl>
+<dt><a name="index-ambient-3"></a><u>MGL option:</u> <b>ambient</b><i> <code>val</code></i></dt>
+<dd><p>Sets brightness of ambient light for the plot. The value should be in range [0, 1]. See also <a href="#ambient">ambient</a>.
+</p></dd></dl>
+<a name="index-crange-3"></a>
+<dl>
+<dt><a name="index-crange-4"></a><u>MGL option:</u> <b>crange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Sets boundaries of color change for the plot. See also <a href="#crange">crange</a>.
+</p></dd></dl>
+<a name="index-xrange-3"></a>
+<dl>
+<dt><a name="index-xrange-4"></a><u>MGL option:</u> <b>xrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Sets boundaries of x coordinate change for the plot. See also <a href="#xrange">xrange</a>.
+</p></dd></dl>
+<a name="index-yrange-3"></a>
+<dl>
+<dt><a name="index-yrange-4"></a><u>MGL option:</u> <b>yrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Sets boundaries of y coordinate change for the plot. See also <a href="#yrange">yrange</a>.
+</p></dd></dl>
+<a name="index-zrange-3"></a>
+<dl>
+<dt><a name="index-zrange-4"></a><u>MGL option:</u> <b>zrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Sets boundaries of z coordinate change for the plot. See also <a href="#zrange">zrange</a>.
+</p></dd></dl>
+<a name="index-cut-4"></a>
+<dl>
+<dt><a name="index-cut-5"></a><u>MGL option:</u> <b>cut</b><i> <code>val</code></i></dt>
+<dd><p>Sets whether to cut or to project the plot points lying outside the bounding box. See also <a href="#cut">cut</a>.
+</p></dd></dl>
+<a name="index-fontsize"></a>
+<dl>
+<dt><a name="index-fontsize-1"></a><u>MGL option:</u> <b>fontsize</b><i> <code>val</code></i></dt>
+<dd><p>Sets the size of text. See also <a href="#font">font</a>.
+</p></dd></dl>
+<a name="index-marksize-2"></a>
+<dl>
+<dt><a name="index-marksize-3"></a><u>MGL option:</u> <b>marksize</b><i> <code>val</code></i></dt>
+<dd><p>Sets the size of marks. See also <a href="#marksize">marksize</a>.
+</p></dd></dl>
+<a name="index-meshnum-2"></a>
+<dl>
+<dt><a name="index-meshnum-3"></a><u>MGL option:</u> <b>meshnum</b><i> <code>val</code></i></dt>
+<dd><p>Work like <a href="#meshnum">meshnum</a> command.
+</p></dd></dl>
+<a name="index-legend-3"></a>
+<dl>
+<dt><a name="index-legend-4"></a><u>MGL option:</u> <b>legend</b><i> 'txt'</i></dt>
+<dd><p>Adds string &rsquo;txt&rsquo; to internal legend accumulator. The style of described line and mark is taken from arguments of the last <a href="#g_t1D-plotting">1D plotting</a> command. See also <a href="#legend">legend</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Suffixes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Command-options" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Utilities" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Suffixes-for-variable"></a>
+<h2 class="section">1.26 Suffixes for variable</h2>
+
+<p>Suffixes can get some numerical value (like its size, maximal or minimal value, the sum of elements and so on) of the data array in variable and use it later as usual number in command arguments. The suffixes start from point &lsquo;<samp>.</samp>&rsquo; right after (without spaces) variable name or its sub-array. For example, <code>a.nx</code> give the x-size of data <var>a</var>, <code>b(1).max</code> give maximal value of second row of variable <var>b</var>, <code>(c(:,0)^2).sum</code> give the sum of squares of elements in the first column of <var>c</var> and so on.
+</p>
+<p>The full list of suffixes are:
+</p><dl compact="compact">
+<dt> <strong>nx, ny, nz</strong></dt>
+<dd><p>Give the data size in x-, y-, z-direction correspondingly.
+</p></dd>
+<dt> <strong>max</strong></dt>
+<dd><p>Give maximal value of the data.
+</p></dd>
+<dt> <strong>min</strong></dt>
+<dd><p>Give minimal value of the data.
+</p></dd>
+<dt> <strong>sum</strong></dt>
+<dd><p>Give sum of data values.
+</p></dd>
+<dt> <strong>a</strong></dt>
+<dd><p>Give first value of data array.
+</p></dd>
+<dt> <strong>fst</strong></dt>
+<dd><p>Give first nonzero value of data array.
+</p></dd>
+<dt> <strong>lst</strong></dt>
+<dd><p>Give last nonzero value of data array.
+</p></dd>
+<dt> <strong>mx, my, mz</strong></dt>
+<dd><p>Give x-, y-, z-position of data maximum.
+</p></dd>
+<dt> <strong>ax, ay, az, aa</strong></dt>
+<dd><p>Give x-, y-, z-position of data mass center or average data value.
+</p></dd>
+<dt> <strong>wx, wy, wz, wa</strong></dt>
+<dd><p>Give width in x-, y-, z-direction or data dispersion value.
+</p></dd>
+<dt> <strong>sx, sy, sz, sa</strong></dt>
+<dd><p>Give skewness in x-, y-, z-direction or data skewness value.
+</p></dd>
+<dt> <strong>kx, ky, kz, ka</strong></dt>
+<dd><p>Give kurtosis in x-, y-, z-direction or data kurtosis value.
+</p></dd>
+</dl>
+
+<hr size="6">
+<a name="Utilities"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Suffixes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Utilities-for-parsing-MGL"></a>
+<h2 class="section">1.27 Utilities for parsing MGL</h2>
+
+<p>MathGL library provides several tools for parsing MGL scripts. There is tools saving it to bitmap (<code>mgl2png</code>, <code>mgl2gif</code>) or vectorial (<code>mgl2eps</code>, <code>mgl2svg</code>) images. Tool <code>mglview</code> show MGL script and allow to rotate and setup the image. Also you can translate MGL script to C++ file by help of <code>mgl2cpp</code> tool.
+</p>
+<p>All of this tools have similar set of arguments. First argument is name of script file, next argument is optional output file name, last arguments are options. There are options for setting script parameters (it is <code>$0, $1, ... $9</code>) and locale settings. The script parameters have format &lsquo;<samp>-Nval</samp>&rsquo;. Here N=0,1...9 is parameter ID and val is its value. For example, option &lsquo;<samp>-1test</samp>&rsquo; set to substitute &lsquo;<samp>test</samp>&rsquo; instead of <code>$1</code> in the script. Option -Lval set locale to val. For example, &lsquo;<samp>-Lutf8</samp>&rsquo; will set UTF-8 locale for script.
+</p>
+<p>Additionally you can create animated GIF file or a set of JPEG files with names &lsquo;<samp>frameNNNN.jpg</samp>&rsquo; (here &lsquo;<samp>NNNN</samp>&rsquo; is frame index). You should use <code>mgl2gif</code> tool and specify the values of <code>$0</code> parameter for making animation. Values of the parameter <code>$0</code> can be specified inside the script by comment <code>##a val</code> for each value <code>val</code> (one comment for one value) or by option(s) &lsquo;<samp>-Aval</samp>&rsquo;. Also you can specify a cycle for animation by comment <code>##c v1 v2 dv</code> or by option <code>-Cn1:n2</code>. Tool <code>mgl2gif</code> will execute script several times (once for each specified value of <code>$0</code>) and save result in animated GIF file. For saving each frame in JPEG just add command <code>write ''</code> at the end of the script.
+</p>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_2.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_2.html
new file mode 100644
index 0000000..2e91670
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_2.html
@@ -0,0 +1,1298 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: 2. MathGL examples</title>
+
+<meta name="description" content="MGL script language for version 1.11: 2. MathGL examples">
+<meta name="keywords" content="MGL script language for version 1.11: 2. MathGL examples">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Examples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_1.html#Utilities" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en_1.html#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL-examples"></a>
+<h1 class="chapter">2. MathGL examples</h1>
+
+<p>This chapter contain information about basic and advanced MathGL, hints and samples for all types of graphics. I recommend you read first 2 sections one after another and at least look on &ldquo;Hints&rdquo; section. Also I recommend you to look at <a href="mgl_en_1.html#General-concepts">General concepts</a>. Sample code for some of these examples can be found in <a href="http://mathgl.sf.net/pictures.html">http://mathgl.sf.net/pictures.html</a> and in <a href="mgl_en_3.html#Samples">Samples</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Basic-usage">2.1 Basic usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Advanced-usage">2.2 Advanced usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-handling">2.3 Data handling</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-plotting">2.4 Data plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Hints">2.5 Hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Basic-usage"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Examples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Basic-usage-1"></a>
+<h2 class="section">2.1 Basic usage</h2>
+
+<p>MGL script can be used by several manners. Each has positive and negative sides:
+</p><ul>
+<li>
+<em>The using of MGL in UDAV.</em>
+
+<p>Positive side is the possibility to view the plot at once and to modify it, rotate, zoom or switch on transparency or lighting) by hand or by mouse. Negative sides are: the need of X-terminal.
+</p>
+</li><li>
+<em>Direct writing to file in bitmap or vector format without creation of graphical window.</em>
+
+<p>Positive aspects are: batch processing of similar data set, for example, a set of resulting data files for different calculation parameters), running from the console program, including the cluster calculation), fast and automated drawing, saving pictures for further analysis, or demonstration). Negative sides are: the usage of the external program for picture viewing. Also, the data plotting is non-visual. So, you have to imagine the picture, view angles, lighting and so on) before the plotting. I recommend to use graphical window for determining the optimal parameters of plotting on the base of some typical data set. And later use these parameters for batch processing in console program.
+</p>
+<p>In this case you can use a set of programs: <code>mgl2png</code>, <code>mgl2gif</code>, <code>mgl2eps</code>, <code>mgl2svg</code> or <code>mglview</code> for viewing.
+</p></li></ul>
+
+<p>The simplest script is
+</p><pre class="verbatim">box         # draw bounding box
+axis        # draw axis
+fplot 'x^3' # draw some function
+</pre>
+<p>Just type it in UDAV and press F5. Also you can save it in text file &lsquo;<samp>test.mgl</samp>&rsquo; and type in the console <code>mgl2png test.mgl</code> what produce file &lsquo;<samp>test.mgl.png</samp>&rsquo; with resulting picture.
+</p>
+<hr size="6">
+<a name="Advanced-usage"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Basic-usage" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Subplots" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Advanced-usage-1"></a>
+<h2 class="section">2.2 Advanced usage</h2>
+
+<p>Now I show several non-obvious features of MGL: several subplots in a single picture, curvilinear coordinates, text printing and so on. Generally you may miss this section at first reading, but I don&rsquo;t recommend it.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Subplots">2.2.1 Subplots</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-grids">2.2.2 Axis and grids</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Curvilinear-coordinates">2.2.3 Curvilinear coordinates</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing-example">2.2.4 Text printing example</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Subplots"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Advanced-usage" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-grids" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Subplots-1"></a>
+<h3 class="subsection">2.2.1 Subplots</h3>
+
+<p>Let me demonstrate possibilities of axes transformation. MathGL has the following functions: <code>SubPlot</code>, <code>InPlot</code>, <code>Aspect</code> and <code>Rotate</code>, see section <a href="mgl_en_1.html#Transformation-matrix">Transformation matrix</a>). The order of their calling is strictly determined. First, one changes the position of axes in image area, functions <code>SubPlot</code> and <code>InPlot</code>). After that one may rotate the plot, function <code>Rotate</code>). Finally, one may change aspects of axes, function <code>Aspect</code>). The following code illustrates the aforesaid it:
+</p><pre class="verbatim">subplot 2 2 0:box
+text -1 1.1 'Just box' 'L'
+inplot 0.2 0.5 0.7 1:box
+text 0 1.2 'Inplot example'
+
+subplot 2 2 1
+rotate 60 40:aspect 1 1 1
+box:text 1 1 1.5 'rotate only' 'R'
+
+subplot 2 2 2
+rotate 60 40:aspect 1 1 2
+box:text 0 0 2 'aspect and rotate'
+
+subplot 2 2 3
+rotate 60 40:aspect 1 2 2
+box:text 0 0 1.5 'Aspect in other direction'
+</pre><p>Here I used function <code>text</code> for printing the text in arbitrary position of picture, see section <a href="mgl_en_1.html#Text-printing">Text printing</a>). Text coordinates and size are connected with axes. However, text coordinates may be everywhere, including the outside the bounding box. I shall show its features later in See section <a href="#Text-printing-example">Text printing example</a>.
+</p>
+<p>Note that several commands can be placed in a string if they are separated by &lsquo;<samp>:</samp>&rsquo; symbol.
+</p>
+<div class="float">
+<img src="../png/sample1.png" alt="../png/sample1">
+
+</div><p><strong>Example of several subplots on the single picture.
+</strong>
+</p>
+<hr size="6">
+<a name="Axis-and-grids"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Subplots" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Curvilinear-coordinates" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-and-grids-1"></a>
+<h3 class="subsection">2.2.2 Axis and grids</h3>
+
+<p>MathGL library can draw not only the bounding box but also the axes, grids, labels and so on. The limits of axes and their origin (the point of intersection) are determined by function <code>axis</code>. Also you can use <code>xrange, yrange, zrange</code> functions (see section <a href="mgl_en_1.html#Axis-settings">Axis settings</a>). Ticks on axis are specified by functions <code>xtick, ytick, ztick, ttick</code>. First argument the direction for each change will be applied. Second argument gives the step between ticks (if positive) or gives the number of ticks on the axis (if negative) or set to use logarithmic ticks (if zero). Third argument gives numbers of sub-ticks between ticks (default is zero). Last argument define the initial ticks position.
+</p>
+<p>Function <code>Axis</code> draws axes. Its textual string shows in which directions the axis or axes will be drawn (by default <code>'xyz'</code>, function draws axes in all directions). Function <code>Grid</code> draws grid perpendicularly to specified directions. Example of axes and grid drawing is:
+</p><pre class="verbatim">subplot 2 2 0
+xtick 0.4 3     # sets tick step to 0.5
+ytick 0.4 3     # and draws 3 subticks
+box             # should be after the ticks change
+axis 'xy': grid
+text 0 1.3 1 'axis and grid'
+
+xtick -5: ytick -5  # restore back
+subplot 2 2 1:rotate 60 40
+origin 0 0 0
+axis
+xlabel 'x' 1
+ylabel 'y' 1
+zlabel 'z' 1
+text 0 0 1.5 'axis and labels'
+
+subplot 2 2 2:rotate 60 40
+xtick 0.2: ytick 0.2: ztick 0.2 # too low step of ticks
+origin -1 -1 -1
+axis:grid
+text 0 0 1.5 'shift origin and add grid'
+text 0 0 1.2 '(note, too many ticks)'
+
+subplot 2 2 3:rotate 60 40
+xtick -6: ytick -6  # decrease the number of ticks
+axis 'yz'
+ylabel 'y axis'
+zlabel 'z axis'
+text 0 0 1.5 'remove x axis, and'
+text 0 0 1.2 'decrease number of ticks'
+</pre>
+<p>This example shows the importance of the correct choosing of the number of ticks on axis. If tick step is too small then its text may overlap and becomes unreadable. This code has the example of <code>Label</code> function. It draws label for axis in specified direction. The text position on axis is specified by third argument of <code>Label</code> function. If it is positive then then text is drawn near the axis maximum, if negative then the same takes place near the minimum of axis, if zero - then at the center of axis.
+</p>
+<div class="float">
+<img src="../png/sample2.png" alt="../png/sample2">
+
+</div><p><strong>Example of setting up axis range and axis ticks.
+</strong>
+</p>
+<hr size="6">
+<a name="Curvilinear-coordinates"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-grids" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing-example" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Curvilinear-coordinates-1"></a>
+<h3 class="subsection">2.2.3 Curvilinear coordinates</h3>
+
+
+<p>Now let use curvilinear coordinates. In difference from other systems of plot creation, MathGL uses textual formulas for connection of the old (data) and new (output) coordinates. This allows one to plot in arbitrary coordinates. The following code plots the line <var>y</var>=0, <var>z</var>=0 in Cartesian, polar, parabolic and spiral coordinates:
+</p><pre class="verbatim">new x 50: new y 50: new z 50
+fill y 0.5 0.5: fill x -1 1 # creates data arrays
+origin -1 1 -1
+
+subplot 2 2 0:rotate 60 40
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'cartesian'
+
+subplot 2 2 1:rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'cylindrical'
+
+subplot 2 2 2:rotate 60 40
+axis '2*y*x' 'y*y - x*x' ''
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'parabolic'
+
+subplot 2 2 3:rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'spiral'
+</pre>
+<div class="float">
+<img src="../png/sample3.png" alt="../png/sample3">
+
+</div><p><strong>Example of curvilinear coordinates
+</strong>
+</p>
+
+<hr size="6">
+<a name="Text-printing-example"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Curvilinear-coordinates" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-printing-example-1"></a>
+<h3 class="subsection">2.2.4 Text printing example</h3>
+
+<p>MathGL prints text by vector font. There are functions for manual specifying of text position (like <code>Puts</code>) and for its automatic selection (like <code>Label</code>, <code>legend</code> and so on). MathGL prints text always in specified position even if it lies outside the bounding box. The default size of font is specified by command <var>fontsize</var>. However, the actual size of output string depends on position of axes (depends on functions <code>SubPlot</code>, <code>InPlot</code>). The switching of the font style (italic, bold, wire and so on) can be done for the whole string (by function parameter) or inside the string. By default MathGL parses TeX-like commands for symbols and indexes (see see section <a href="mgl_en_1.html#Font-styles">Font styles</a>). Example of MathGL font drawing is:
+</p><pre class="verbatim">text 0 1 'Text can be in ASCII and in Unicode'
+text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
+text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
+text 0 -0.2 'Easy to \a{overline} or \u{underline}'
+text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
+text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
+</pre>
+<div class="float">
+<img src="../png/sample4.png" alt="../png/sample4">
+
+</div><p><strong>Example of text printing with different font effects
+</strong>
+</p>
+<p>Another example demonstrate the features of TeX formula parsing.
+</p><pre class="verbatim">text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}', 0, -4
+</pre>
+<div class="float">
+<img src="../png/samplee.png" alt="../png/samplee">
+
+</div><p><strong>Example of TeX formula parsing
+</strong>
+</p>
+
+<hr size="6">
+<a name="Data-handling"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing-example" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Array-creation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-handling-1"></a>
+<h2 class="section">2.3 Data handling</h2>
+
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Array-creation">2.3.1 Array creation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-changing">2.3.2 Data changing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Array-creation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-handling" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-changing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Array-creation-1"></a>
+<h3 class="subsection">2.3.1 Array creation</h3>
+
+<p>One can put numbers into the data instance by several ways. Let us do it for sinus function:
+</p><ul>
+<li>
+one can create array by <code>list</code> command
+<pre class="verbatim">list a 0 0.04 0.16 0.36 0.64 1
+</pre>
+</li><li>
+another way is to copy from &ldquo;inline&rdquo; array
+<pre class="verbatim">copy a [0,0.04,0.16,0.36,0.64,1]
+</pre>
+</li><li>
+next way is to fill the data by textual formula with the help of <code>modify</code> function
+<pre class="verbatim">new a 6
+modify a 'x^2'
+</pre>
+</li><li>
+or one may fill the array in some interval and modify it later
+<pre class="verbatim">new a 6
+fill a 0 1
+modify a 'u^2'
+</pre>
+</li><li>
+or fill the array using current axis range
+<pre class="verbatim">new a 6
+fill a '(x+1)^2/4'
+</pre>
+</li><li>
+finally it can be loaded from file
+<pre class="verbatim">new s 6: modify s 'x^2'
+save s 'sqr.dat'    # create file first
+read a 'sqr.dat'    # load it
+</pre>
+</li><li>
+at this one can read only part of data
+<pre class="verbatim">new s 6: modify s 'x^2'
+save s 'sqr.dat'    # create file first
+read a 'sqr.dat' 5  # load it
+</pre></li></ul>
+
+<p>Creation of 2d- and 3d-arrays is mostly the same. One can use direct data filling by <code>list</code> command
+</p><pre class="verbatim">list a 11 12 13 | 21 22 23 | 31 32 33
+</pre><p>or by inline arrays
+</p><pre class="verbatim">copy a [[11,12,13],[21,22,23],[31,32,33]]
+</pre><p>Also data can be filled by formula
+</p><pre class="verbatim">new z 30 40
+fill z 'sin(pi*x)*cos(pi*y)'
+</pre><p>or loaded from file.
+</p>
+<p>The only non-obvious thing here is using multidimensional arrays in C/C++, i.e. arrays defined like <code>float dat[40][30];</code>. Since, formaly this arrays element <code>dat[i]</code> can address the memory in arbitrary place you should use the proper function to convert such arrays to <code>mglData</code> object. For C++ this is functions like <code>mglData::Set(float **dat, int N1, int N2</code>. For C this is functions like <code>mgl_data_set_float2(HMDT d, const float **dat, int N1, int N2</code>. At this, you should keep in mind that <code>nx=N2</code> and <code>ny=N1</code> after conversion.
+</p>
+<hr size="6">
+<a name="Data-changing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Array-creation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-changing-1"></a>
+<h3 class="subsection">2.3.2 Data changing</h3>
+
+<p>MathGL has functions for data processing: differentiating, integrating, smoothing and so on. Let us consider some examples. The simplest ones are integration and differentiation. The direction in which operation will be performed is specified by textual string, which may contain symbols &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo;. For example, the call of <code>diff a 'x'</code> will differentiate data along &lsquo;<samp>x</samp>&rsquo; direction; the call of <code>integrate a 'xy'</code> perform the double integration of data along &lsquo;<samp>x</samp>&rsquo; and &lsquo;<samp>y</samp>&rsquo; directions; the call of <code>diff2 a 'xyz'</code> will apply 3d Laplace operator to data and so on. Example of this operations on 2d array a=x*y is presented in code:
+</p><pre class="verbatim">new a 30 40: modify a 'x*y'
+axis 0 0 0 1 1 1
+subplot 2 2 0:rotate 60 40
+surf a: box
+text 0.7 1 1.2 'a(x,y)'
+subplot 2 2 1:rotate 60 40
+diff a 'x': surf a: box
+text 0.7 1 1.2 'da/dx'
+subplot 2 2 2:rotate 60 40
+integrate a 'xy': surf a: box
+text 0.7 1 1.2 '\int da/dx dxdy'
+subplot 2 2 3:rotate 60 40
+diff2 a 'y': surf a: box
+text 0.7 1 1.2 '\int {d^2}a/dxdy dx'
+</pre>
+<div class="float">
+<img src="../png/sample6.png" alt="../png/sample6">
+
+</div><p><strong>Example of data differentiation and integration
+</strong>
+</p>
+<p>Data smoothing (function <code>Smooth</code>) is more interesting and important. This function has 2 main arguments: type of smoothing and its direction. Now 4 methods are supported: <code>0</code> does nothing for delta=0 or approaches data to zero with the step delta, <code>1</code> linear averaging by 3 points, <code>2</code> linear averaging by 5 points, <code>3</code> quadratic averaging by 5 points. Let me demonstrate it for 1d case:
+</p><pre class="verbatim">new y0 30
+modify y0 '0.4*sin(2*pi*x)+0.3*cos(3*pi*x)-0.4*sin(4*pi*x)+0.2*rnd'
+copy y1 y0: smooth y1 1
+copy y2 y0: smooth y2 2
+copy y3 y0: smooth y3 3
+
+plot y0 'k': addlegend 'none' 'k'
+plot y1 'r': addlegend 'line 3' 'r'
+plot y2 'g': addlegend 'line 5' 'g'
+plot y3 'b': addlegend 'quad 5' 'b'
+legend: box
+</pre>
+<div class="float">
+<img src="../png/sample7.png" alt="../png/sample7">
+
+</div><p><strong>Example of data smoothing
+</strong>
+</p>
+<p>Finally one can create new data arrays on base of the existing one: extract slice, row or column of data (<code>SubData</code>), summarize along some of direction(s) (<code>Sum</code>), find distribution of data elements (<code>Hist</code>). Note, that all these functions are not thread-safe because they use static internal variable for output array. In particular, the using of several of them in arguments of the same function will lead to unpredictable result.
+</p>
+<hr size="6">
+<a name="Data-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-changing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-1D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-plotting-1"></a>
+<h2 class="section">2.4 Data plotting</h2>
+
+<p>Let me now show how to plot the data. MathGL generally has 2 types of plotting functions. Simple variant requires a single data array for plotting, other data (coordinates) are considered uniformly distributed in interval <var>Min</var>*<var>Max</var>. Second variant requires data arrays for all coordinates. It allows one to plot rather complex multivalent curves and surfaces (in case of parametric dependencies). Argument setting to default values allows one to plot data in standard form. Manual arguments setting gives possibility for fine tuning of colors, positions and view of graphics. Note, that the call of drawing function adds something to picture but does not clear the previous plots (as it does in Matlab). Another difference from Matlab is that all setup (like transparency, lightning, axis borders and so on) must be specified <strong>before</strong> plotting functions.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plots-for-1D-data">2.4.1 Plots for 1D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-for-2D-data">2.4.2 Plots for 2D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-for-3D-data">2.4.3 Plots for 3D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surface-transparency">2.4.4 Surface transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Plots-for-1D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-2D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-1D-data-1"></a>
+<h3 class="subsection">2.4.1 Plots for 1D data</h3>
+
+<p>Term &ldquo;1D data&rdquo; means that data depend on single index (parameter) like curve in parametric form {x(i),y(i),z(i)}, i=1...n. There are 5 generally different types of data representations: simple line plot, line plot with filling under it, stairs plot, bar plot and vertical lines (see section <a href="mgl_en_1.html#g_t1D-plotting">1D plotting</a>). Each type of plotting has similar interface. There are 3D version and two 2D versions. One of last requires single array. The parameters of line and marks (see section <a href="mgl_en_1.html#Line-styles">Line styles</a>) are specified by the string argument. If the string parameter is <code>NULL</code> then solid line with color from palette is used.
+</p>
+<p>Below I shall show the features of 1D plotting on base of <code>plot</code> function (see section <a href="mgl_en_1.html#g_t1D-plotting">1D plotting</a>). Let us start from sinus plot:
+</p><pre class="verbatim">new y0 50: modify y0 'sin(pi*(2*x-1))'
+subplot 2 2 0
+plot y0: box
+</pre><p>Style of line is not specified in <code>plot</code> function. So MathGL uses the solid line with first color of palette (this is blue). Next subplot shows array <var>y1</var> with 2 rows:
+</p><pre class="verbatim">subplot 2 2 1
+new y1 50 2
+modify y1 'sin(pi*2*x-pi)'
+modify y1 'cos(pi*2*x-pi)/2' 1
+plot y1: box
+</pre><p>As previously I did not specify the style of lines. As a result, MathGL again uses solid line with next colors in palette (there are green and red). Now let us plot a circle on the same subplot. The circle is parametric curve <em>x=cos(\pi t), y=sin(\pi t)</em>. I will set the color of the circle (dark yellow, &lsquo;<samp>Y</samp>&rsquo;) and put marks &lsquo;<samp>+</samp>&rsquo; at point position:
+</p><pre class="verbatim">new x 50: modify x 'cos(pi*2*x-pi)'
+plot x y0 'Y+'
+</pre><p>Note that solid line is used because I did not specify the type of line. The same picture can be achieved by <code>Plot2</code> function. Let us draw ellipse by orange dash line:
+</p><pre class="verbatim">plot y1(:,0) y(:,1) 'q|'
+</pre>
+<p>Drawing in 3D space is mostly the same. Let us draw spiral with default line style. Now its color is 4-th color from palette (this is cyan):
+</p><pre class="verbatim">subplot 2 2 2:rotate 60 40
+new z 50: modify z '2*x-1'
+plot x y0 z:box
+</pre><p>Function <code>Plot3</code> does 3D curve plot but for single array. Use it to put circle marks on the previous plot:
+</p><pre class="verbatim">new y2 10 3:modify y2 'cos(pi*(2*x-1+y))'
+modify y2 '2*x-1' 2
+plot y2(:,0) y2(:,1) y2(:,2) 'bo '
+</pre><p>Note that line style is empty &lsquo;<samp> </samp>&rsquo; here. Usage of other 1D plotting functions looks similar:
+</p><pre class="verbatim">subplot 2 2 3:rotate 60 40
+bars x y0 z 'r':box
+</pre>
+<div class="float">
+<img src="../png/sample8.png" alt="../png/sample8">
+
+</div><p><strong>Example of 1D data plot
+</strong>
+</p>
+<hr size="6">
+<a name="Plots-for-2D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-1D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-3D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-2D-data-1"></a>
+<h3 class="subsection">2.4.2 Plots for 2D data</h3>
+
+<p>Surfaces <code>Surf</code> and other 2D plots (see section <a href="mgl_en_1.html#g_t2D-plotting">2D plotting</a>) are drown the same simpler as 1D one. The difference is that the string parameter specifies not by line style but by the color scheme of the plot (see section <a href="mgl_en_1.html#Color-scheme">Color scheme</a>). Here I draw attention on 4 most interesting color schemes. There is gray scheme where color is changed from black to white (string &lsquo;<samp>kw</samp>&rsquo;) or from white to black (string &lsquo;<samp>wk</samp>&rsquo;). Another scheme is useful for accentuation of negative (by blue color) and positive (by red color) regions on plot (string &lsquo;<samp>'BbwrR'</samp>&rsquo;). Last one is the popular &ldquo;jet&rdquo; scheme (string &lsquo;<samp>'BbcyrR'</samp>&rsquo;).
+</p>
+<p>Now I shall show the example of a surface drawing. At first let us switch lightning on
+</p><pre class="verbatim">light on: light 0 0 0 1
+</pre><p>and draw the surface, considering coordinates x,y to be uniformly distributed in interval <var>Min</var>*<var>Max</var>
+</p><pre class="verbatim">new a0 50 40
+modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+subplot 2 2 0:rotate 60 40
+surf a0: box
+</pre><p>Color scheme was not specified. So previous color scheme is used. In this case it is default color scheme (&ldquo;jet&rdquo;) for the first plot. Next example is a sphere. The sphere is parametrically specified surface:
+</p><pre class="verbatim">new x 50 40: new y 50 40: new z 50 40
+modify x '0.8*sin(2*pi*x)*sin(pi*y)'
+modify y '0.8*cos(2*pi*x)*sin(pi*y)'
+modify z '0.8*cos(pi*y)'
+subplot 2 2 1:rotate 60 40
+surf x y z 'bbwrr': box
+</pre><p>I set color scheme to <code>'BbwrR'</code> that corresponds to red top and blue bottom of the sphere.
+</p>
+<p>Surfaces will be plotted for each of slice of the data if <var>nz</var>&gt;1. Next example draws surfaces for data arrays with <var>nz</var>=3:
+</p><pre class="verbatim">new a1 50 40 3
+modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
+subplot 2 2 2:rotate 60 40
+alpha on
+surf a1: box
+</pre><p>Note, that it may entail a confusion. However, if one will use density plot then the picture will look better:
+</p><pre class="verbatim">subplot 2 2 3: rotate 60 40
+dens a1: box
+</pre><p>Note, that the previous color scheme is used in last plots because there are no direct specification of the one.
+</p>
+<div class="float">
+<img src="../png/sample9.png" alt="../png/sample9">
+
+</div><p><strong>Example of surface plot for 2D data
+</strong>
+</p>
+<p>Drawing of other 2D plots is analogous. The only peculiarity is the usage of flag &lsquo;<samp>#</samp>&rsquo;. By default this flag switches on the drawing of a grid on plot (<code>grid</code> or <code>mesh</code> for plots in plain or in volume). However, for isosurfaces (including surfaces of rotation <code>axial</code>) this flag switches the  face drawing off. Figure becomes wired. The following code gives example of flag &lsquo;<samp>#</samp>&rsquo; using (compare with normal function drawing as in its description):
+</p><pre class="verbatim">alpha on: light on: light 0 0 0 1
+new a 30 20
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+subplot 2 2 0: rotate 40 60
+surf a 'bbcyrr#': box
+subplot 2 2 1: rotate 40 60
+dens a 'bbcyrr#': box
+subplot 2 2 2: rotate 40 60
+cont a 'bbcyrr#': box
+subplot 2 2 3: rotate 40 60
+axial a 'bbcyrr#': box
+</pre>
+<div class="float">
+<img src="../png/samplea.png" alt="../png/samplea">
+
+</div><p><strong>Example of 2D data plot with color scheme contained &lsquo;<samp>#</samp>&rsquo; symbol
+</strong>
+</p>
+<hr size="6">
+<a name="Plots-for-3D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-2D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surface-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-3D-data-1"></a>
+<h3 class="subsection">2.4.3 Plots for 3D data</h3>
+
+<p>Drawing procedures for 3D plot looks similarly to 1D and 2D plots described above. There are 3 general types of 3D plots (see section <a href="mgl_en_1.html#g_t3D-plotting">3D plotting</a>): (i) plots on slices or on projections, (ii) isosurfaces, (iii) cloud-like plots. Plots on slice are clear enough &ndash; one specifies a slice (as its index or as coordinate value) and MathGL draws contour lines or density plot on slice plane. Isosurface gives more information. Isosurface is 3D analogue of the contour line <code>cont</code>. It shows the region where data array values exceed specified isosurface level. Plot becomes more informative if one adds transparency, lightning or sets color scheme depending on coordinates. Generalization of isosurface is the cloud-like plot. For this plot the darker color and less transparent regions correspond to higher values of data. Contrary, the regions with low values are transparent. For plotting of the phase of fields (or beams or pulses) one can use isosurface which transparency depends on the other data array (see function <code>surf3a</code>). As example of 3D data plots let us draw the Gaussian beam diffraction in space. Beam propagates along <var>x</var> axis:
+</p><pre class="verbatim">alpha on: light on
+light 0 0 0 1
+new a 30 30 30: new b 30 30 30
+modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
+modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
+caxis 0 1
+
+subplot 2 2 0: rotate 40 60
+surf3 a 'wgk': box
+subplot 2 2 1: rotate 40 60
+densa a: box: axis
+subplot 2 2 2: rotate 40 60
+cloud a: box
+subplot 2 2 3: rotate 40 60
+surf3a b a 'q': box
+</pre>
+<div class="float">
+<img src="../png/sampleb.png" alt="../png/sampleb">
+
+</div><p><strong>Example of Gaussian beam diffraction (3D data)
+</strong>
+</p>
+
+<hr size="6">
+<a name="Surface-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-3D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surface-transparency-1"></a>
+<h3 class="subsection">2.4.4 Surface transparency</h3>
+
+<p>MathGL library has advanced features for setting and handling the surface transparency. The simplest way to add transparency is the using of function <code>Alpha</code>. As a result, all further surfaces (and isosurfaces, density plots and so on) become transparent. However, their  look can be additionally improved.
+</p>
+<p>First, the selected surface will be non-transparent if one sets the flag <code>transparent</code> before the surface drawing and sets it off after the drawing.
+</p>
+<p>Second, the value of transparency can be different from surface to surface. To do it just change the value of <code>alphadef</code> before the drawing of the selected surface. If its value is close to 0 then the surface becomes more and more transparent. Contrary, if its value is close to 1 then the surface becomes practically non-transparent. This is some analogue of <code>transparent on</code>.
+</p>
+<p>Third feature is the changing of the way how the light goes through overlapped surfaces. The variable <code>transptype</code> defines it. By default the usual transparency is used (<code>transptype 0</code>) &ndash; surfaces below is less visible than the upper ones. A &ldquo;glass-like&rdquo; transparency (<code>transptype 1</code>) has a different look when the surface just decreases the background light (the surfaces are commutable in this case).
+</p>
+<p>A &ldquo;neon-like&rdquo; transparency (<code>transptype 2</code>) has more interesting look. In this case a surface is the light source (like a lamp on the dark background) and just adds some intensity to the color. At this, the library sets automatically the black color for the background and changes the default line color to white.
+</p>
+<p>As example I shall show the variant of plot from <a href="#Plots-for-2D-data">Plots for 2D data</a> (grid drawing is disabled) for different types of transparency.
+</p><div class="float">
+<img src="../png/type0.png" alt="../png/type0">
+
+</div><p><strong>Example of <code>TranspType=0</code>.
+</strong>
+</p><div class="float">
+<img src="../png/type1.png" alt="../png/type1">
+
+</div><p><strong>Example of <code>TranspType=1</code>.
+</strong>
+</p><div class="float">
+<img src="../png/type2.png" alt="../png/type2">
+
+</div><p><strong>Example of <code>TranspType=2</code>.
+</strong>
+</p>
+
+
+<hr size="6">
+<a name="Hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surface-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t_0060_0060Compound_0027_0027-graphics" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Hints-1"></a>
+<h2 class="section">2.5 Hints</h2>
+
+<p>In this section I have included some small hints and advices for the improving of the quality of plots and for the demonstration of some non-trivial features of MathGL library. In contrast to previous examples I showed mostly the idea but not the whole drawing function. More examples with the source code can be find at <a href="http://mathgl.sf.net/">http://mathgl.sf.net/</a> or in section <a href="mgl_en_3.html#Samples">Samples</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t_0060_0060Compound_0027_0027-graphics">2.5.1 &ldquo;Compound&rdquo; graphics</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Two-axes-in-one-plot">2.5.2 Two axes in one plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Titles-for-the-plot">2.5.3 Titles for the plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Changing-of-the-color-range">2.5.4 Changing of the color range</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Management-of-a-point-cutting">2.5.5 Management of a point cutting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-field-visualization">2.5.6 Vector field visualization</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Several-light-sources">2.5.7 Several light sources</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutMin-and-CutMax-features">2.5.8 CutMin and CutMax features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mapping-visualization">2.5.9 Mapping visualization</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Log_002dscaled-plot">2.5.10 Log-scaled plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting-hints">2.5.11 Nonlinear fitting hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#PDE-solving-hints">2.5.12 PDE solving hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stereo-image">2.5.13 Stereo image</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="g_t_0060_0060Compound_0027_0027-graphics"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Two-axes-in-one-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Compound_0027_0027-graphics-1"></a>
+<h3 class="subsection">2.5.1 &ldquo;Compound&rdquo; graphics</h3>
+
+<p>As I noted above, MathGL functions (except the special one, like <code>clf</code>) do  not erase the previous plotting but just add the new one. It allows one to draw &ldquo;compound&rdquo; plots easily. For example, popular Matlab command <code>surfc</code> can be emulated in MathGL by 2 calls:
+</p><pre class="verbatim">surf a
+cont a 0 7 -1   # draw contours at z = -1
+</pre><p>Here <var>a</var> is 2-dimensional data for the plotting, <code>-1</code> is the value of z-coordinate at which the contour should be plotted (at the bottom in this example). Analogously, one can draw density plot instead of contour lines and so on.
+</p>
+<p>Another nice plot is contour lines plotted directly on the surface:
+</p><pre class="verbatim">light on        # switch on light for the surface
+surf a 'bbcyrr' # select 'jet' colormap for the surface
+cont a 'y'      # and yellow color for contours
+</pre><p>The possible difficulties arise in black&amp;white case, when the color of the surface can be close to the color of a contour line. In that case I may suggest the following code:
+</p><pre class="verbatim">light on        # switch on light for the surface
+surf a 'kw'     # select 'gray' colormap for the surface
+caxis -1 0      # first draw for darker surface colors
+conta 'w'       # white contours
+caxis 0 1       # now draw for brighter surface colors
+cont a 'k'      # black contours
+</pre><p>The idea is to divide the color range on 2 parts (dark and bright) and to select the contrasting color for contour lines for each of part.
+</p>
+<p>Similarly, one can plot flow thread over density plot of vector field amplitude (this is another amusing plot from Matlab) and so on. The list of compound graphics can be prolonged but I hope that the general idea is clear.
+</p>
+<hr size="6">
+<a name="Two-axes-in-one-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t_0060_0060Compound_0027_0027-graphics" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Titles-for-the-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Two-axes-in-one-plot-1"></a>
+<h3 class="subsection">2.5.2 Two axes in one plot</h3>
+
+<p>Developing the previous hint one can make a plot with 2 or more axes. The idea is that the change of settings does not influence on the already drawn graphics. So, for 2-axes plot let us set the first axis and draw everything concerning it. Then let us setup the second axis and draw things for the second axis. The corresponding code is (see section <a href="mgl_en_3.html#g_t2_002daxes-sample">2-axes sample</a>):
+</p><pre class="verbatim"># set up first axis
+axis -1 -1 1 1: origin -1 -1
+axis:fplot 'sin(pi*x)'      # draw something in first axis
+# set up second axis
+axis 0 0 1 1: origin 1 1
+axis: fplot 'cos(4*pi*x^2)' # draw something in second axis
+</pre><p>Note, that the first and the second axes look better if being placed in different corners. In the code presented above the first axis is placed in the left-bottom corner, and the second one is placed in the right-top corner.
+</p>
+<hr size="6">
+<a name="Titles-for-the-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Two-axes-in-one-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Changing-of-the-color-range" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Titles-for-the-plot-1"></a>
+<h3 class="subsection">2.5.3 Titles for the plot</h3>
+
+<p>The printing of nice titles for the plot is not so trivial task in general case. The problem is that the rotation and aspect change lead to different looks for titles of different subplots. So, the resulting look is not so good as it could be. The solution is simple &ndash; to print titles exactly after <code>subplot</code> call and before any rotation, aspect change and so on! Analogously, the title for the whole picture looks better if it is printed first (before any <code>subplot</code> calls). Alternatively you can use function <code>title</code> for plotting title for the picture at any time.
+</p>
+<hr size="6">
+<a name="Changing-of-the-color-range"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Titles-for-the-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Management-of-a-point-cutting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Changing-of-the-color-range-1"></a>
+<h3 class="subsection">2.5.4 Changing of the color range</h3>
+
+<p>By default (for the user comfort), the color range is set equal to z-range of the plot. However, there are different ranges. So, one can obtain amusing plot by the change of color range manually. For example, there are plots with one-color bottom (or top) or practically bi-color picture and so on.
+</p>
+<p>For example, compare 2 surfaces:
+</p><pre class="verbatim">subplot 2 1 0
+surf a          # usual coloring range
+subplot 2 1 1
+caxis 0 1
+surf a          # bottom of the surface have one-colour filling
+</pre>
+<hr size="6">
+<a name="Management-of-a-point-cutting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Changing-of-the-color-range" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-field-visualization" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Management-of-a-point-cutting-1"></a>
+<h3 class="subsection">2.5.5 Management of a point cutting</h3>
+
+<p>Sometimes an experimental or numerical surface has outstanding points. Visualization of such surface will lead to the hole(s) in place of such points. The standard method of &ldquo;fighting&rdquo; &ndash; to change data values &ndash; is not always good and is not so convenient. MathGL library has another method &ndash; to set variable <code>cut off</code>. As a consequence, all outstanding points will be projected on the bounding box.
+</p>
+<p>Such method is good not only for outstanding points but also for the case when one need to plane the bottom or the top of the plot. Exactly such case is demonstrated in the code:
+</p><pre class="verbatim">new a 20 30     # create some data
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+# set lower border above the data minimal value
+axis -1 -1 0 1 1 1:rotate 40 60
+cut off         # set off cutting flag
+surf a          # and draw the surface
+</pre><p>It is an interesting result, is not it?
+</p>
+<hr size="6">
+<a name="Vector-field-visualization"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Management-of-a-point-cutting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Several-light-sources" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vector-field-visualization-1"></a>
+<h3 class="subsection">2.5.6 Vector field visualization</h3>
+
+<p>Vector field visualization (especially in 3d case <code>vect3</code> or <code>vectc</code>) may look tangly &ndash; there are too many overlapping lines. I may suggest 2 ways to solve this problem. The first one is to change <code>meshnum</code> for decreasing the number of hachures. The second way is to use the flow thread chart <code>Flow</code>. Unfortunately, I don&rsquo;t know any other methods to visualize 3d vector field. If you know any, e-mail me and I shall add it to MatGL.
+</p>
+<hr size="6">
+<a name="Several-light-sources"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-field-visualization" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutMin-and-CutMax-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Several-light-sources-1"></a>
+<h3 class="subsection">2.5.7 Several light sources</h3>
+
+<p>In contrast to the most of other programs, MathGL supports several (up to 10) light sources. Moreover, the color each of them can be different: white (this is usual), yellow, red, cyan, green and so on. The use of several light sources may be interesting for the highlighting of some peculiarities of the plot or just to make an amusing picture. Note, each light source can be switched on/off individually (see section <a href="mgl_en_3.html#Several-light-sample">Several light sample</a>).
+</p>
+<hr size="6">
+<a name="CutMin-and-CutMax-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Several-light-sources" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mapping-visualization" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutMin-and-CutMax-features-1"></a>
+<h3 class="subsection">2.5.8 CutMin and CutMax features</h3>
+
+<p>MathGL library has a feature for cutting of points in some region <var>CutMin*CutMax</var>. Such an excision can be used to improve the look of the graphics. Moreover, this cutting may help to show an internal structure of an object (like <code>isocaps</code> plot in Matlab). For example, let us use the standard 3D data array and show its interior (see section <a href="mgl_en_3.html#CutMinMax-sample">CutMinMax sample</a>).
+</p>
+<pre class="verbatim">new c 61 51 40      # create the data
+new v 10: fill v -0.5 1
+modify c '(-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1))'
+cut 0 -1 -1 1 0 1.1
+rotate 40 60:       surf3 c -0.5 'bbcyrr'
+contf3 v c 'x' -1 'bbcyrr': contf3 v c 'y' -1 'bbcyrr'
+contf3 v c 'z' 0 'bbcyrr':  contf3 v c 'z' 39 'bbcyrr'
+</pre>
+<p>One can also exclude points from arbitrary area in space. This area defined by textual formula <code>cut</code> (see section <a href="mgl_en_1.html#Cutting">Cutting</a>). The algorithm is the same as shown for &ldquo;rectangular cutting&rdquo;.
+</p>
+<hr size="6">
+<a name="Mapping-visualization"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutMin-and-CutMax-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Log_002dscaled-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mapping-visualization-1"></a>
+<h3 class="subsection">2.5.9 Mapping visualization</h3>
+
+<p>Sometime ago I worked with mapping and have a question about its visualization. Let me remember you that mapping is some transformation rule for one set of number to another one. The 1d mapping is just an ordinary function &ndash; it takes a number and transforms it to another one. The 2d mapping (which I used) is a pair of functions which take 2 numbers and transform them to another 2 ones. Except general plots (like <code>surfc</code>, <code>surfa</code>) there is a special plot &ndash; Arnold diagram. It shows the area which is the result of mapping of some initial area (usually square).
+</p>
+<p>I tried to make such plot in <code>map</code>. It shows the set of points or set of faces, which final position is the result of mapping. At this, the color gives information about their initial position and the height describes Jacobian value of the transformation. Unfortunately, it looks good only for the simplest mapping but for the real multivalent quasi-chaotic mapping it produces a confusion. So, use it if you like :).
+</p>
+<hr size="6">
+<a name="Log_002dscaled-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mapping-visualization" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting-hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Log_002dscaled-plot-1"></a>
+<h3 class="subsection">2.5.10 Log-scaled plot</h3>
+
+<p>Log-scaled plot can be drawn by 2 steps. First, one should change the scale of axis by call <code>axis 'lg(x)' 'lg(y)'</code> (in this example, x- and y-axis will be log-scaled). Second, one should set logarithmic scale for axis ticks by changing variables: <code>xtick 0: yticks 0</code>. Finally, one should check (or change) the axis ranges and origin so that their values to be positive. For example of log-log plot see section <a href="mgl_en_3.html#Log_002dlog-sample">Log-log sample</a>.
+</p>
+<hr size="6">
+<a name="Nonlinear-fitting-hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Log_002dscaled-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#PDE-solving-hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-hints-1"></a>
+<h3 class="subsection">2.5.11 Nonlinear fitting hints</h3>
+
+<p>Nonlinear fitting is rather simple. All that you need is the data to fit, the approximation formula and the list of coefficients to fit (better with its initial guess values). Let me demonstrate it on the following simple example (see section <a href="mgl_en_3.html#Fitting-sample">Fitting sample</a>). First, let us use sin function with some random noise:
+</p><pre class="verbatim">new rnd 100: new idl 50 # data to be fitted and ideal data
+modify rnd '0.4*rnd+0.1+sin(4*pi*x)'
+modify idl '0.3+sin(4*pi*x)'
+</pre><p>and plot it to see that data we will fit
+</p><pre class="verbatim">axis -1 -2 1 2
+plot rnd '. ':plot idl 'b'
+box:text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
+</pre>
+<p>The next step is the fitting itself. For that let me specify an initial values <var>ini</var> for coefficients &lsquo;<samp>abc</samp>&rsquo; and do the fitting for approximation formula &lsquo;<samp>a+b*sin(c*x)</samp>&rsquo;
+</p><pre class="verbatim">new res     # The data for found formula
+fit res rnd 'a+b*sin(c*x)' 'abc' [1, 1, 3]
+</pre><p>Now display it
+</p><pre class="verbatim">plot res 'r'
+text -1 -1.3 'fitted:' 'L:r' -1
+putsfit 0 -1.8 'y = ' 'C:r' -1
+</pre>
+<p>NOTE! the fitting results may have strong dependence on initial values for coefficients due to algorithm features. The problem is that in general case there are several local &rsquo;optimums&rsquo; for coefficients and the program returns only first found one! There are no guaranties that it will be the best. Try for example to set <code>ini = [0, 0, 0]</code> in the code above.
+</p>
+<hr size="6">
+<a name="PDE-solving-hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting-hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stereo-image" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="PDE-solving-hints-1"></a>
+<h3 class="subsection">2.5.12 PDE solving hints</h3>
+
+<p>Solving of Partial Differential Equations (PDE, including beam tracing) and ray tracing (or finding particle trajectory) are more or less common task. So, MathGL have several functions for that. There are <code>ray</code> for ray tracing, <code>pde</code> for PDE solving, <code>qo2d</code> for beam tracing in 2D case. Note, that these functions take &ldquo;Hamiltonian&rdquo; or equations as string values. And I don&rsquo;t plan now to allow one to use user-defined functions. There are 2 reasons: the complexity of corresponding interface; and the basic nature of used methods which are good for samples but may not good for serious scientific calculations.
+</p>
+<p>The ray tracing can be done by <code>ray</code> function. Really ray tracing equation is Hamiltonian equation for 3D space. So, the function can be also used for finding a particle trajectory (i.e. solve Hamiltonian ODE) for 1D, 2D or 3D cases. The function have a set of arguments. First of all, it is Hamiltonian which defined the media (or the equation) you are planning to use. The Hamiltonian is defined by string which may depend on coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, time &lsquo;<samp>t</samp>&rsquo; (for particle dynamics) and momentums &lsquo;<samp>p</samp>&rsquo;=<em>p_x</em>, &lsquo;<samp>q</samp>&rsquo;=<em>p_y</em>, &lsquo;<samp>v</samp>&rsquo;=<em>p_z</em>. Next, you have to define the initial conditions for coordinates and momentums at &lsquo;<samp>t</samp>&rsquo;=0 and set the integrations step (default is 0.1) and its duration (default is 10). The Runge-Kutta method of 4-th order is used for integration.
+</p><pre class="verbatim">new re 128:new im 128
+ray r 'p^2+q^2-x-1' -0.7 -1 0 0 0.5 0
+plot r(0) r(1)
+</pre><p>This example calculate the reflection from linear layer (media with Hamiltonian &lsquo;<samp>p^2+q^2-x-1</samp>&rsquo;=<em>p_x^2+p_y^2-x-1</em>). This is parabolic curve. The resulting array have 7 columns which contain data for {x,y,z,p,q,v,t}.
+</p>
+<p>The solution of PDE is a bit more complicated. As previous you have to specify the equation as pseudo-differential operator <em>\hat H(x, \nabla)</em> which is called sometime as &ldquo;Hamiltonian&rdquo; (for example, in beam tracing). As previously, it is defined by string which may depend on coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; (but not time!), momentums &lsquo;<samp>p</samp>&rsquo;=<em>(d/dx)/i k_0</em>, &lsquo;<samp>q</samp>&rsquo;=<em>(d/dy)/i k_0</em> and field amplitude &lsquo;<samp>u</samp>&rsquo;=<em>|u|</em>. The evolutionary coordinate is &lsquo;<samp>z</samp>&rsquo; in all cases. So that, the equation look like <em>du/dz = ik_0 H(x,y,\hat p, \hat q, |u|)[u]</em>. Dependence on field amplitude &lsquo;<samp>u</samp>&rsquo;=<em>|u|</em> allows one to solve nonlinear problems too. For example, for nonlinear Shrodinger equation you may set <code>ham='p^2 + q^2 - u^2'</code>. Also you may specify imaginary part for wave absorption, like <code>ham = 'p^2 + i*x*(x&gt;0)'</code>, but only if dependence on variable &lsquo;<samp>i</samp>&rsquo; is linear (i.e. <em>H = Hre+i*Him</em>).
+</p>
+<p>Next step is specifing the initial conditions at &lsquo;<samp>z</samp>&rsquo;=<code>Min.z</code>. The function need 2 arrays for real and for imaginary part. Note, that coordinates x,y,z are supposed to be in specified range [Min, Max]. So, the data arrays should have corresponding scales. Finally, you may set the integration step and paramter k0=<em>k_0</em>. Also keep in mind, that internally the 2 times large box is used (for suppressing numerical reflection from boundaries) and the equation should well defined even in this extended range.
+</p>
+<p>Final comment is concerning the possible form of pseudo-differential operator <em>H</em>. At this moment, simplified form of operator <em>H</em> is supported &ndash; all &ldquo;mixed&rdquo; terms (like &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) are excluded. For example, in 2D case this operator is effectively <em>H = f(p,z) + g(x,z,u)</em>. However commutable combinations (like &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy) are allowed for 3D case. 
+</p>
+<p>So, for example let solve the equation for beam deflected from linear layer and absorbed later. The operator will have the form &lsquo;<samp>'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)'</samp>&rsquo; that correspond to equation <em>ik_0 \partial_z u + \Delta u + x \cdot u + i (x+z)/2 \cdot u = 0</em>. This is typical equation for Electron Cyclotron (EC) absorption in magnetized plasmas. For initial conditions let me select the beam with plane phase front <em>exp(-48*(x+0.7)^2)</em>. The corresponding code looks like this (see section <a href="mgl_en_3.html#PDE-sample">PDE sample</a>):
+</p><pre class="verbatim">new re 128: new im 128
+fill re 'exp(-48*(x+0.7)^2)'
+pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)' re im 0.01, 30
+transpose a 'yxz'
+caxis 0 1
+dens a 'wyrRk'
+</pre>
+<p>The last example is example of beam tracing. Beam tracing equation is special kind of PDE equation written in coordinates accompanied to a ray. Generally this is the same parameters and limitation as for PDE solving but the coordinates are defined by the ray and by parameter of grid width <var>w</var> in direction transverse the ray. So, you don&rsquo;t need to specify the range of coordinates. <strong>BUT</strong> there is limitation. The accompanied coordinates are well defined only for smooth enough rays, i.e. then the ray curvature <em>K</em> (which is defined as <em>1/K^2 = (|\ddot r|^2 |\dot r|^2 - (\ddot r, \dot r)^2)/|\dot r|^6</em>) is much large then the grid width: <em>K&gt;&gt;w</em>. So, you may receive incorrect results if this condition will be broken.
+</p>
+<p>You may use following code for obtaining the same solution as in previous example:
+</p><pre class="verbatim">new re 128: new im 128
+define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)'
+ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
+# now start beam tracing
+fill re 'exp(-48*x^2)'
+new xx: new yy
+qo2d a $1 re im r 1 30 xx yy
+caxis 0 1
+dens xx yy a 'wyrRk'
+</pre>
+
+<hr size="6">
+<a name="Stereo-image"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#PDE-solving-hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stereo-image-1"></a>
+<h3 class="subsection">2.5.13 Stereo image</h3>
+
+<p>One can easily create stereo image in MathGL. Stereo image can be produced by making two subplots with slightly different rotation angles. The corresponding code looks like this (see section <a href="mgl_en_3.html#Stereo-image-sample">Stereo image sample</a>):
+</p><pre class="verbatim">subplot 2 1 0   # left image
+rotate 40 60+3
+# draw something here
+subplot 2 1 1   # right image
+rotate 40 60-3
+# draw the same here
+</pre>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_3.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_3.html
new file mode 100644
index 0000000..382de68
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_3.html
@@ -0,0 +1,4065 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: 3. Samples</title>
+
+<meta name="description" content="MGL script language for version 1.11: 3. Samples">
+<meta name="keywords" content="MGL script language for version 1.11: 3. Samples">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_2.html#Stereo-image" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Samples-1"></a>
+<h1 class="chapter">3. Samples</h1>
+<p>This chapter contain a lot of sample codes for all types of plots and for most important examples and hints. The same sample (with pictures) you can find at <a href="http://mathgl.sf.net/pictures.html">http://mathgl.sf.net/pictures.html</a>. 
+</p><table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting-samples">3.1 1D plotting samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting-samples">3.2 2D plotting samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting-samples">3.3 3D plotting samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting-samples">3.4 Dual plotting samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Basic-features">3.5 Basic features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Additional-features">3.6 Additional features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Advanced-features">3.7 Advanced features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+</table>
+<hr size="6">
+<a name="g_t1D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-plotting-samples-1"></a>
+<h2 class="section">3.1 1D plotting samples</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plot-sample">3.1.1 Plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Radar-sample">3.1.2 Radar sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tens-sample">3.1.3 Tens sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area-sample">3.1.4 Area sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area-gradient-sample">3.1.5 Area with gradient filling sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-sample">3.1.6 Bars sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-2-colors-sample">3.1.7 Bars 2 colors sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-above-sample">3.1.8 Bars above sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-fall-sample">3.1.9 Bars fall sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Barh-sample">3.1.10 Barh sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Step-sample">3.1.11 Step sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stem-sample">3.1.12 Stem sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region-sample">3.1.13 Region sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region-gradient-sample">3.1.14 Region gradient sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Error-sample">3.1.15 Error sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#BoxPlot-sample">3.1.16 BoxPlot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mark-sample">3.1.17 Mark sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TextMark-sample">3.1.18 TextMark sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tube-sample">3.1.19 Tube sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-sample">3.1.20 Text sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Torus-sample">3.1.21 Torus sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Chart-sample">3.1.22 Chart sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pie-chart-sample">3.1.23 Pie chart sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ring-chart-sample">3.1.24 Ring chart sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+<hr size="6">
+<a name="Plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Radar-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plot-sample-1"></a>
+<h3 class="subsection">3.1.1 Plot sample</h3>
+<a name="index-Plot"></a>
+<div class="float">
+<img src="../png/plot.png" alt="../png/plot">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y
+</pre><hr size="6">
+<a name="Radar-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Radar-sample-1"></a>
+<h3 class="subsection">3.1.2 Radar sample</h3>
+<a name="index-Radar"></a>
+<div class="float">
+<img src="../png/radar.png" alt="../png/radar">
+</div><pre class="verbatim">new y 10 3
+modify y '0.4*sin(pi*(2*x+y/2))+0.1*rnd'
+radar y '#'
+</pre><hr size="6">
+<a name="Tens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Radar-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tens-sample-1"></a>
+<h3 class="subsection">3.1.3 Tens sample</h3>
+<a name="index-Tens"></a>
+<div class="float">
+<img src="../png/tens.png" alt="../png/tens">
+</div><pre class="verbatim">new y 50
+new c 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify c 'sin(2*pi*x)'
+box
+tens y c
+</pre><hr size="6">
+<a name="Area-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area-gradient-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-sample-1"></a>
+<h3 class="subsection">3.1.4 Area sample</h3>
+<a name="index-Area"></a>
+<div class="float">
+<img src="../png/area.png" alt="../png/area">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y
+</pre><hr size="6">
+<a name="Area-gradient-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-with-gradient-filling-sample"></a>
+<h3 class="subsection">3.1.5 Area with gradient filling sample</h3>
+<a name="index-Area-1"></a>
+<div class="float">
+<img src="../png/area_2.png" alt="../png/area_2">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y 'cbgGyr'
+</pre><hr size="6">
+<a name="Bars-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area-gradient-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-2-colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-sample-1"></a>
+<h3 class="subsection">3.1.6 Bars sample</h3>
+<a name="index-Bars"></a>
+<div class="float">
+<img src="../png/bars.png" alt="../png/bars">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y
+</pre><hr size="6">
+<a name="Bars-2-colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-above-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-2-colors-sample-1"></a>
+<h3 class="subsection">3.1.7 Bars 2 colors sample</h3>
+<a name="index-Bars-1"></a>
+<div class="float">
+<img src="../png/bars_2.png" alt="../png/bars_2">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'cbgGyr'
+</pre><hr size="6">
+<a name="Bars-above-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-2-colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-fall-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-above-sample-1"></a>
+<h3 class="subsection">3.1.8 Bars above sample</h3>
+<a name="index-Bars-2"></a>
+<div class="float">
+<img src="../png/bars_a.png" alt="../png/bars_a">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'a'
+</pre><hr size="6">
+<a name="Bars-fall-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-above-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Barh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-fall-sample-1"></a>
+<h3 class="subsection">3.1.9 Bars fall sample</h3>
+<a name="index-Bars-3"></a>
+<div class="float">
+<img src="../png/bars_f.png" alt="../png/bars_f">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'f'
+</pre><hr size="6">
+<a name="Barh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-fall-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Step-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Barh-sample-1"></a>
+<h3 class="subsection">3.1.10 Barh sample</h3>
+<a name="index-Barh"></a>
+<div class="float">
+<img src="../png/barh.png" alt="../png/barh">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+barh y
+</pre><hr size="6">
+<a name="Step-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Barh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stem-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Step-sample-1"></a>
+<h3 class="subsection">3.1.11 Step sample</h3>
+<a name="index-Step"></a>
+<div class="float">
+<img src="../png/step.png" alt="../png/step">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+step y
+</pre><hr size="6">
+<a name="Stem-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Step-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stem-sample-1"></a>
+<h3 class="subsection">3.1.12 Stem sample</h3>
+<a name="index-Stem"></a>
+<div class="float">
+<img src="../png/stem.png" alt="../png/stem">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+stem y 'o'
+</pre><hr size="6">
+<a name="Region-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Stem-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region-gradient-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-sample-1"></a>
+<h3 class="subsection">3.1.13 Region sample</h3>
+<a name="index-Region"></a>
+<div class="float">
+<img src="../png/region.png" alt="../png/region">
+</div><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'r'
+plot y1 'k2'
+plot y2 'k2'
+</pre><hr size="6">
+<a name="Region-gradient-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Error-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-gradient-sample-1"></a>
+<h3 class="subsection">3.1.14 Region gradient sample</h3>
+<a name="index-Region-1"></a>
+<div class="float">
+<img src="../png/region_2.png" alt="../png/region_2">
+</div><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'yr'
+plot y1 'k2'
+plot y2 'k2'
+</pre><hr size="6">
+<a name="Error-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region-gradient-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#BoxPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Error-sample-1"></a>
+<h3 class="subsection">3.1.15 Error sample</h3>
+<a name="index-Error"></a>
+<div class="float">
+<img src="../png/error.png" alt="../png/error">
+</div><pre class="verbatim">new y 50
+new x0 10
+new y0 10
+new ex 10
+new ey 10
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify x0 '2*x-1 + 0.1*rnd-0.05'
+modify y0 '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1'
+modify ey '0.2'
+modify ex '0.1'
+box
+plot y
+error x0 y0 ex ey 'ko'
+</pre><hr size="6">
+<a name="BoxPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Error-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mark-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="BoxPlot-sample-1"></a>
+<h3 class="subsection">3.1.16 BoxPlot sample</h3>
+<a name="index-BoxPlot"></a>
+<div class="float">
+<img src="../png/boxplot.png" alt="../png/boxplot">
+</div><pre class="verbatim">new a 10 7
+modify a '(2*rnd-1)^3/2'
+boxplot a
+box:plot a ' ko'
+</pre><hr size="6">
+<a name="Mark-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#BoxPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TextMark-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mark-sample-1"></a>
+<h3 class="subsection">3.1.17 Mark sample</h3>
+<a name="index-Mark"></a>
+<div class="float">
+<img src="../png/mark.png" alt="../png/mark">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+mark y y1 'bs'
+</pre><hr size="6">
+<a name="TextMark-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mark-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tube-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TextMark-sample-1"></a>
+<h3 class="subsection">3.1.18 TextMark sample</h3>
+<a name="index-TextMark"></a>
+<div class="float">
+<img src="../png/textmark.png" alt="../png/textmark">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+textmark y y1 '\gamma'
+</pre><hr size="6">
+<a name="Tube-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TextMark-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tube-sample-1"></a>
+<h3 class="subsection">3.1.19 Tube sample</h3>
+<a name="index-Tube"></a>
+<div class="float">
+<img src="../png/tube.png" alt="../png/tube">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+rotate 40 60
+light on
+box
+tube y 0.05
+</pre><hr size="6">
+<a name="Text-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tube-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Torus-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-sample-1"></a>
+<h3 class="subsection">3.1.20 Text sample</h3>
+<a name="index-Text"></a>
+<div class="float">
+<img src="../png/text.png" alt="../png/text">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y(:,0)
+text y 'This is very long string drawn along a curve' ':k'
+text y 'Another string drawn above a curve' 'T:r'
+</pre><hr size="6">
+<a name="Torus-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Torus-sample-1"></a>
+<h3 class="subsection">3.1.21 Torus sample</h3>
+<a name="index-Torus"></a>
+<div class="float">
+<img src="../png/torus.png" alt="../png/torus">
+</div><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+rotate 40 60
+light on
+box
+torus y1 y2 'pz'
+</pre><hr size="6">
+<a name="Chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Torus-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pie-chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Chart-sample-1"></a>
+<h3 class="subsection">3.1.22 Chart sample</h3>
+<a name="index-Chart"></a>
+<div class="float">
+<img src="../png/chart.png" alt="../png/chart">
+</div><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+box
+chart ch
+</pre><hr size="6">
+<a name="Pie-chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ring-chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pie-chart-sample-1"></a>
+<h3 class="subsection">3.1.23 Pie chart sample</h3>
+<a name="index-Chart-1"></a>
+<a name="index-Axis"></a>
+<div class="float">
+<img src="../png/pie_chart.png" alt="../png/pie_chart">
+</div><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+1)/2*cos(pi*x)' '(y+1)/2*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+</pre><hr size="6">
+<a name="Ring-chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pie-chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ring-chart-sample-1"></a>
+<h3 class="subsection">3.1.24 Ring chart sample</h3>
+<a name="index-Chart-2"></a>
+<a name="index-Axis-1"></a>
+<div class="float">
+<img src="../png/ring_chart.png" alt="../png/ring_chart">
+</div><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+2)/3*cos(pi*x)' '(y+2)/3*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+</pre><hr size="6">
+<a name="g_t2D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ring-chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-plotting-samples-1"></a>
+<h2 class="section">3.2 2D plotting samples</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf-sample">3.2.1 Surf sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transparent-surface-sample">3.2.2 Transparent surface sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surface-in-fog-sample">3.2.3 Surface in fog sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Sharp-colors-sample">3.2.4 Sharp colors sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mesh-sample">3.2.5 Mesh sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fall-sample">3.2.6 Fall sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Belt-sample">3.2.7 Belt sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tile-sample">3.2.8 Tile sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Boxs-sample">3.2.9 Boxs sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens-sample">3.2.10 Dens sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-sample">3.2.11 Cont sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF-sample">3.2.12 ContF sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContD-sample">3.2.13 ContD sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axial-sample">3.2.14 Axial sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grad-sample">3.2.15 Grad sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+</table>
+<hr size="6">
+<a name="Surf-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparent-surface-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-sample-1"></a>
+<h3 class="subsection">3.2.1 Surf sample</h3>
+<a name="index-Surf"></a>
+<div class="float">
+<img src="../png/surf.png" alt="../png/surf">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+</pre><hr size="6">
+<a name="Transparent-surface-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surface-in-fog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transparent-surface-sample-1"></a>
+<h3 class="subsection">3.2.2 Transparent surface sample</h3>
+<a name="index-Surf-1"></a>
+<a name="index-Alpha"></a>
+<div class="float">
+<img src="../png/surf_alpha.png" alt="../png/surf_alpha">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surf a
+</pre><hr size="6">
+<a name="Surface-in-fog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparent-surface-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Sharp-colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surface-in-fog-sample-1"></a>
+<h3 class="subsection">3.2.3 Surface in fog sample</h3>
+<a name="index-Surf-2"></a>
+<a name="index-Fog"></a>
+<div class="float">
+<img src="../png/surf_fog.png" alt="../png/surf_fog">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+fog 1
+box
+surf a
+</pre><hr size="6">
+<a name="Sharp-colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surface-in-fog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mesh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Sharp-colors-sample-1"></a>
+<h3 class="subsection">3.2.4 Sharp colors sample</h3>
+<a name="index-Surf-3"></a>
+<div class="float">
+<img src="../png/surf_sl.png" alt="../png/surf_sl">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a 'BbcyrR|'
+</pre><hr size="6">
+<a name="Mesh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Sharp-colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fall-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mesh-sample-1"></a>
+<h3 class="subsection">3.2.5 Mesh sample</h3>
+<a name="index-Mesh"></a>
+<div class="float">
+<img src="../png/mesh.png" alt="../png/mesh">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+mesh a
+</pre><hr size="6">
+<a name="Fall-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mesh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Belt-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fall-sample-1"></a>
+<h3 class="subsection">3.2.6 Fall sample</h3>
+<a name="index-Fall"></a>
+<div class="float">
+<img src="../png/fall.png" alt="../png/fall">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+fall a
+</pre><hr size="6">
+<a name="Belt-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fall-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tile-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Belt-sample-1"></a>
+<h3 class="subsection">3.2.7 Belt sample</h3>
+<a name="index-Belt"></a>
+<div class="float">
+<img src="../png/belt.png" alt="../png/belt">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+belt a
+</pre><hr size="6">
+<a name="Tile-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Belt-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Boxs-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tile-sample-1"></a>
+<h3 class="subsection">3.2.8 Tile sample</h3>
+<a name="index-Tile"></a>
+<div class="float">
+<img src="../png/tile.png" alt="../png/tile">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+tile a
+</pre><hr size="6">
+<a name="Boxs-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tile-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Boxs-sample-1"></a>
+<h3 class="subsection">3.2.9 Boxs sample</h3>
+<a name="index-Boxs"></a>
+<div class="float">
+<img src="../png/boxs.png" alt="../png/boxs">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+origin 0 0 0
+box
+boxs a
+</pre><hr size="6">
+<a name="Dens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Boxs-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-sample-1"></a>
+<h3 class="subsection">3.2.10 Dens sample</h3>
+<a name="index-Dens"></a>
+<a name="index-Colorbar"></a>
+<div class="float">
+<img src="../png/dens.png" alt="../png/dens">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+dens a
+colorbar
+</pre><hr size="6">
+<a name="Cont-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-sample-1"></a>
+<h3 class="subsection">3.2.11 Cont sample</h3>
+<a name="index-Cont"></a>
+<div class="float">
+<img src="../png/cont.png" alt="../png/cont">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+cont a
+</pre><hr size="6">
+<a name="ContF-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContD-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF-sample-1"></a>
+<h3 class="subsection">3.2.12 ContF sample</h3>
+<a name="index-ContF"></a>
+<div class="float">
+<img src="../png/contf.png" alt="../png/contf">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+contf a
+</pre><hr size="6">
+<a name="ContD-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axial-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContD-sample-1"></a>
+<h3 class="subsection">3.2.13 ContD sample</h3>
+<a name="index-ContD"></a>
+<div class="float">
+<img src="../png/contd.png" alt="../png/contd">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+var v 9 -1 1
+box
+contd v a
+colorbar v
+</pre><hr size="6">
+<a name="Axial-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContD-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grad-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axial-sample-1"></a>
+<h3 class="subsection">3.2.14 Axial sample</h3>
+<a name="index-Axial"></a>
+<div class="float">
+<img src="../png/axial.png" alt="../png/axial">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+axial a
+</pre><hr size="6">
+<a name="Grad-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axial-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grad-sample-1"></a>
+<h3 class="subsection">3.2.15 Grad sample</h3>
+<a name="index-Grad"></a>
+<div class="float">
+<img src="../png/grad.png" alt="../png/grad">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box:alpha on:dens a
+grad a
+</pre><hr size="6">
+<a name="g_t3D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grad-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-plotting-samples-1"></a>
+<h2 class="section">3.3 3D plotting samples</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf3-sample">3.3.1 Surf3 sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cloud-sample">3.3.2 Cloud sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CloudP-sample">3.3.3 CloudP sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens3-sample">3.3.4 Dens3 sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont3-sample">3.3.5 Cont3 sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF3-sample">3.3.6 ContF3 sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-projection-sample">3.3.7 Cont projection sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens-projection-sample">3.3.8 Dens projection sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutMinMax-sample">3.3.9 CutMinMax sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutOff-sample">3.3.11 CutOff sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+<hr size="6">
+<a name="Surf3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cloud-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3-sample-1"></a>
+<h3 class="subsection">3.3.1 Surf3 sample</h3>
+<a name="index-Surf3"></a>
+<div class="float">
+<img src="../png/surf3.png" alt="../png/surf3">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+box
+surf3 a
+</pre><hr size="6">
+<a name="Cloud-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CloudP-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cloud-sample-1"></a>
+<h3 class="subsection">3.3.2 Cloud sample</h3>
+<a name="index-Cloud"></a>
+<div class="float">
+<img src="../png/cloud.png" alt="../png/cloud">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+box
+cloud a 'wyrRk'
+</pre><hr size="6">
+<a name="CloudP-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cloud-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CloudP-sample-1"></a>
+<h3 class="subsection">3.3.3 CloudP sample</h3>
+<a name="index-CloudP"></a>
+<div class="float">
+<img src="../png/cloudp.png" alt="../png/cloudp">
+</div><p>Not available.
+</p><hr size="6">
+<a name="Dens3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CloudP-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens3-sample-1"></a>
+<h3 class="subsection">3.3.4 Dens3 sample</h3>
+<a name="index-Dens3"></a>
+<a name="index-Axis-2"></a>
+<div class="float">
+<img src="../png/densa.png" alt="../png/densa">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+origin 0 0 0
+box
+densa a
+axis
+</pre><hr size="6">
+<a name="Cont3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont3-sample-1"></a>
+<h3 class="subsection">3.3.5 Cont3 sample</h3>
+<a name="index-Cont3"></a>
+<div class="float">
+<img src="../png/conta.png" alt="../png/conta">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+conta a
+</pre><hr size="6">
+<a name="ContF3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-projection-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF3-sample-1"></a>
+<h3 class="subsection">3.3.6 ContF3 sample</h3>
+<a name="index-ContF3"></a>
+<div class="float">
+<img src="../png/contfa.png" alt="../png/contfa">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+box
+contfa a
+</pre><hr size="6">
+<a name="Cont-projection-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens-projection-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-projection-sample-1"></a>
+<h3 class="subsection">3.3.7 Cont projection sample</h3>
+<a name="index-ContX"></a>
+<a name="index-ContY"></a>
+<a name="index-ContZ"></a>
+<div class="float">
+<img src="../png/cont_xyz.png" alt="../png/cont_xyz">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+contx s '' -1
+sum s a 'y'
+conty s '' 1
+sum s a 'z'
+contz s '' -1
+</pre><hr size="6">
+<a name="Dens-projection-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-projection-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutMinMax-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-projection-sample-1"></a>
+<h3 class="subsection">3.3.8 Dens projection sample</h3>
+<a name="index-DensX"></a>
+<a name="index-DensY"></a>
+<a name="index-DensZ"></a>
+<div class="float">
+<img src="../png/dens_xyz.png" alt="../png/dens_xyz">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+densx s '' -1
+sum s a 'y'
+densy s '' 1
+sum s a 'z'
+densz s '' -1
+</pre><hr size="6">
+<a name="CutMinMax-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens-projection-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Isocaps-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutMinMax-sample-1"></a>
+<h3 class="subsection">3.3.9 CutMinMax sample</h3>
+<a name="index-Surf3-1"></a>
+<a name="index-CutMin"></a>
+<a name="index-CutMax"></a>
+<div class="float">
+<img src="../png/cutminmax.png" alt="../png/cutminmax">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut 0 -1 -1 1 0 1
+box
+surf3 a
+</pre><hr size="6">
+<a name="Isocaps-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutMinMax-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutOff-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Isocaps_0027_0027-sample"></a>
+<h3 class="subsection">3.3.10 &ldquo;Isocaps&rdquo; sample</h3>
+<a name="index-Surf3-2"></a>
+<a name="index-ContF3-1"></a>
+<a name="index-CutMin-1"></a>
+<a name="index-CutMax-1"></a>
+<div class="float">
+<img src="../png/cutminmax2.png" alt="../png/cutminmax2">
+</div><pre class="verbatim">new a 61 51 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+cut 0 -1 -1 1 0 1.1
+box
+surf3 a -1
+contf3 a 'x' -1
+contf3 a 'y' -1
+contf3 a 'z' 0
+contf3 a 'z' 39
+</pre><hr size="6">
+<a name="CutOff-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Isocaps-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutOff-sample-1"></a>
+<h3 class="subsection">3.3.11 CutOff sample</h3>
+<a name="index-Surf3-3"></a>
+<a name="index-CutOff"></a>
+<div class="float">
+<img src="../png/surf3_cutoff.png" alt="../png/surf3_cutoff">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut '(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)'
+box
+surf3 a
+</pre><hr size="6">
+<a name="Dual-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutOff-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfC-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dual-plotting-samples-1"></a>
+<h2 class="section">3.4 Dual plotting samples</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#SurfC-sample">3.4.1 SurfC sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#SurfA-sample">3.4.2 SurfA sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TileS-sample">3.4.3 TileS sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Map-sample">3.4.4 Map sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Traj-sample">3.4.5 Traj sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect-sample">3.4.6 Vect sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectL-sample">3.4.7 VectL sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectC-sample">3.4.8 VectC sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-sample">3.4.9 Flow sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe-sample">3.4.10 Pipe sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dew-sample">3.4.11 Dew sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3C-sample">3.4.12 Surf3C sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3A-sample">3.4.13 Surf3A sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect-3D-sample">3.4.14 Vect 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectL-3D-sample">3.4.15 VectL 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectC-3D-sample">3.4.16 VectC 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-3D-sample">3.4.17 Flow 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe-3D-sample">3.4.18 Pipe 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Crust-sample">3.4.19 Crust sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dots-sample">3.4.20 Dots sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+</table>
+<hr size="6">
+<a name="SurfC-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfA-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfC-sample-1"></a>
+<h3 class="subsection">3.4.1 SurfC sample</h3>
+<a name="index-SurfC"></a>
+<div class="float">
+<img src="../png/surfc.png" alt="../png/surfc">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surfc a b
+</pre><hr size="6">
+<a name="SurfA-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfC-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TileS-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfA-sample-1"></a>
+<h3 class="subsection">3.4.2 SurfA sample</h3>
+<a name="index-SurfA"></a>
+<div class="float">
+<img src="../png/surfa.png" alt="../png/surfa">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surfa a b
+</pre><hr size="6">
+<a name="TileS-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfA-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Map-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TileS-sample-1"></a>
+<h3 class="subsection">3.4.3 TileS sample</h3>
+<a name="index-TileS"></a>
+<div class="float">
+<img src="../png/tiles.png" alt="../png/tiles">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+tile a b
+</pre><hr size="6">
+<a name="Map-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TileS-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Traj-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Map-sample-1"></a>
+<h3 class="subsection">3.4.4 Map sample</h3>
+<a name="index-Map"></a>
+<div class="float">
+<img src="../png/map.png" alt="../png/map">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+text 0 0 '\to'
+zrange -2 2
+subplot 2 1 0
+text 0 1.1 '\{x, y\}' '' -2
+box
+fill a 'x'
+fill b 'y'
+map a b 'brgk' 0 0
+subplot 2 1 1
+text 0 1.1 '\{\frac{x^3+y^3}{2}, \frac{x-y}{2}\}' '' -2
+box
+fill a '(x^3+y^3)/2'
+fill b '(x-y)/2'
+map a b 'brgk' 0 0
+</pre><hr size="6">
+<a name="Traj-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Map-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Traj-sample-1"></a>
+<h3 class="subsection">3.4.5 Traj sample</h3>
+<a name="index-Traj"></a>
+<div class="float">
+<img src="../png/traj.png" alt="../png/traj">
+</div><pre class="verbatim">new y 50 3
+new x 50
+new y1 50
+new y2 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+fill x -1 1
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+box
+plot x y
+traj x y y1 y2
+</pre><hr size="6">
+<a name="Vect-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Traj-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectL-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-sample-1"></a>
+<h3 class="subsection">3.4.6 Vect sample</h3>
+<a name="index-Vect"></a>
+<div class="float">
+<img src="../png/vect.png" alt="../png/vect">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vect a b
+</pre><hr size="6">
+<a name="VectL-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectC-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectL-sample-1"></a>
+<h3 class="subsection">3.4.7 VectL sample</h3>
+<a name="index-VectL"></a>
+<div class="float">
+<img src="../png/vectl.png" alt="../png/vectl">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectl a b
+</pre><hr size="6">
+<a name="VectC-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectL-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectC-sample-1"></a>
+<h3 class="subsection">3.4.8 VectC sample</h3>
+<a name="index-VectC"></a>
+<div class="float">
+<img src="../png/vectc.png" alt="../png/vectc">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectc a b
+</pre><hr size="6">
+<a name="Flow-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectC-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-sample-1"></a>
+<h3 class="subsection">3.4.9 Flow sample</h3>
+<a name="index-Flow"></a>
+<div class="float">
+<img src="../png/flow.png" alt="../png/flow">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+flow a b
+</pre><hr size="6">
+<a name="Pipe-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dew-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-sample-1"></a>
+<h3 class="subsection">3.4.10 Pipe sample</h3>
+<a name="index-Pipe"></a>
+<div class="float">
+<img src="../png/pipe.png" alt="../png/pipe">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+box
+pipe a b
+</pre><hr size="6">
+<a name="Dew-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3C-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dew-sample-1"></a>
+<h3 class="subsection">3.4.11 Dew sample</h3>
+<a name="index-Dew"></a>
+<div class="float">
+<img src="../png/dew.png" alt="../png/dew">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+light on
+dew a b
+</pre><hr size="6">
+<a name="Surf3C-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dew-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3A-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3C-sample-1"></a>
+<h3 class="subsection">3.4.12 Surf3C sample</h3>
+<a name="index-Surf3C"></a>
+<div class="float">
+<img src="../png/surf3c.png" alt="../png/surf3c">
+</div><pre class="verbatim">new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3c a b
+</pre><hr size="6">
+<a name="Surf3A-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3C-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3A-sample-1"></a>
+<h3 class="subsection">3.4.13 Surf3A sample</h3>
+<a name="index-Surf3A"></a>
+<div class="float">
+<img src="../png/surf3a.png" alt="../png/surf3a">
+</div><pre class="verbatim">new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3a a b
+</pre><hr size="6">
+<a name="Vect-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3A-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectL-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-3D-sample-1"></a>
+<h3 class="subsection">3.4.14 Vect 3D sample</h3>
+<a name="index-Vect-1"></a>
+<div class="float">
+<img src="../png/vect3.png" alt="../png/vect3">
+</div><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vect ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="VectL-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectC-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectL-3D-sample-1"></a>
+<h3 class="subsection">3.4.15 VectL 3D sample</h3>
+<a name="index-VectL-1"></a>
+<div class="float">
+<img src="../png/vectl3.png" alt="../png/vectl3">
+</div><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectl ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="VectC-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectL-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectC-3D-sample-1"></a>
+<h3 class="subsection">3.4.16 VectC 3D sample</h3>
+<a name="index-VectC-1"></a>
+<div class="float">
+<img src="../png/vectc3.png" alt="../png/vectc3">
+</div><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectc ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="Flow-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectC-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-3D-sample-1"></a>
+<h3 class="subsection">3.4.17 Flow 3D sample</h3>
+<a name="index-Flow-1"></a>
+<div class="float">
+<img src="../png/flow3.png" alt="../png/flow3">
+</div><pre class="verbatim">new ex 30 30 30
+new ey 30 30 30
+new ez 30 30 30
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+flow ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="Pipe-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Crust-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-3D-sample-1"></a>
+<h3 class="subsection">3.4.18 Pipe 3D sample</h3>
+<a name="index-Pipe-1"></a>
+<div class="float">
+<img src="../png/pipe3.png" alt="../png/pipe3">
+</div><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+light on
+box
+pipe ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="Crust-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dots-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Crust-sample-1"></a>
+<h3 class="subsection">3.4.19 Crust sample</h3>
+<a name="index-Crust"></a>
+<div class="float">
+<img src="../png/crust.png" alt="../png/crust">
+</div><pre class="verbatim">read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+light on
+box
+crust a 'p'
+</pre><hr size="6">
+<a name="Dots-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Crust-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dots-sample-1"></a>
+<h3 class="subsection">3.4.20 Dots sample</h3>
+<a name="index-Dots"></a>
+<div class="float">
+<img src="../png/dots.png" alt="../png/dots">
+</div><pre class="verbatim">read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+box
+dots a 'p'
+</pre>
+<hr size="6">
+<a name="Basic-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dots-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Basic-features-1"></a>
+<h2 class="section">3.5 Basic features</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t1D-plot-sample">3.5.1 1D plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plot-sample">3.5.2 2D plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plot-sample">3.5.3 3D plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Line-styles-sample">3.5.4 Line styles sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Arrow-styles-sample">3.5.5 Arrow styles sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-styles-sample">3.5.6 Text styles sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TeX-parsing-sample">3.5.7 TeX parsing sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-faces-sample">3.5.8 Font faces sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Colors-sample">3.5.9 Colors sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Color-schemes-sample">3.5.10 Color schemes sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Normal-transparency">3.5.11 Normal transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Glass_002dlike-transparency">3.5.12 Glass-like transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lamp_002dlike-transparency">3.5.13 Lamp-like transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+</table>
+<hr size="6">
+<a name="g_t1D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Basic-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-plot-sample-1"></a>
+<h3 class="subsection">3.5.1 1D plot sample</h3>
+<a name="index-Plot-1"></a>
+<a name="index-Bars-4"></a>
+<a name="index-SubPlot"></a>
+<div class="float">
+<img src="../png/sample8.png" alt="../png/sample8">
+</div><pre class="verbatim">new y0 50: modify y0 'sin(pi*(2*x-1))'
+subplot 2 2 0
+plot y0: box
+
+subplot 2 2 1
+new y1 50 2
+modify y1 'sin(pi*2*x-pi)'
+modify y1 'cos(pi*2*x-pi)/2' 1
+plot y1: box
+
+new x 50: modify x 'cos(pi*2*x-pi)'
+plot x y0 'Y+'
+plot y1(:,0) y(:,1) 'q|'
+
+subplot 2 2 2:rotate 60 40
+new z 50:   modify z '2*x-1'
+plot x y0 z 'g':box
+new y2 10 3
+modify y2 'cos(pi*(2*x-1-y))'
+modify y2 '2*x-1' 2
+plot y2(:,0) y2(:,1) y2(:,2) 'bo '
+
+subplot 2 2 3:rotate 60 40
+bars x y0 z 'r':box
+</pre><hr size="6">
+<a name="g_t2D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-plot-sample-1"></a>
+<h3 class="subsection">3.5.2 2D plot sample</h3>
+<a name="index-Surf-4"></a>
+<a name="index-Dens-1"></a>
+<a name="index-Alpha-1"></a>
+<div class="float">
+<img src="../png/sample9.png" alt="../png/sample9">
+</div><pre class="verbatim">light on
+
+new a0 50 40
+modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+subplot 2 2 0:rotate 60 40
+surf a0: box
+
+new x 50 40: new y 50 40: new z 50 40
+modify x '0.8*sin(2*pi*x)*sin(pi*y)'
+modify y '0.8*cos(2*pi*x)*sin(pi*y)'
+modify z '0.8*cos(pi*y)'
+subplot 2 2 1:rotate 60 40
+surf x y z 'bbwrr': box
+
+new a1 50 40 3
+modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
+subplot 2 2 2:rotate 60 40
+alpha on
+surf a1: box
+
+subplot 2 2 3: rotate 60 40
+dens a1: box
+</pre><hr size="6">
+<a name="g_t3D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Line-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-plot-sample-1"></a>
+<h3 class="subsection">3.5.3 3D plot sample</h3>
+<a name="index-Surf-5"></a>
+<a name="index-Dens-2"></a>
+<a name="index-Alpha-2"></a>
+<div class="float">
+<img src="../png/sampleb.png" alt="../png/sampleb">
+</div><pre class="verbatim">alpha on: light on
+light 0 0 0 1
+new a 30 30 30: new b 30 30 30
+modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
+modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
+caxis 0 1
+
+subplot 2 2 0: rotate 40 60
+surf3 a 'wgk': box
+subplot 2 2 1: rotate 40 60
+densa a: box: axis
+subplot 2 2 2: rotate 40 60
+cloud a: box
+subplot 2 2 3: rotate 40 60
+surf3a b a 'q': box
+</pre><hr size="6">
+<a name="Line-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Arrow-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Line-styles-sample-1"></a>
+<h3 class="subsection">3.5.4 Line styles sample</h3>
+<a name="index-Mark-1"></a>
+<a name="index-Line"></a>
+<div class="float">
+<img src="../png/sample5.png" alt="../png/sample5">
+</div><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Arrow-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Line-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Arrow-styles-sample-1"></a>
+<h3 class="subsection">3.5.5 Arrow styles sample</h3>
+<a name="index-Line-1"></a>
+<div class="float">
+<img src="../png/sampled.png" alt="../png/sampled">
+</div><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Text-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Arrow-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TeX-parsing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-styles-sample-1"></a>
+<h3 class="subsection">3.5.6 Text styles sample</h3>
+<a name="index-Puts"></a>
+<div class="float">
+<img src="../png/sample4.png" alt="../png/sample4">
+</div><pre class="verbatim">text 0 1 'Text can be in ASCII and in Unicode'
+text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
+text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
+text 0 -0.2 'Easy to \a{overline} or \u{underline}'
+text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
+text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
+</pre><hr size="6">
+<a name="TeX-parsing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-faces-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TeX-parsing-sample-1"></a>
+<h3 class="subsection">3.5.7 TeX parsing sample</h3>
+<a name="index-Puts-1"></a>
+<div class="float">
+<img src="../png/samplee.png" alt="../png/samplee">
+</div><pre class="verbatim">text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}' '' -4
+</pre><hr size="6">
+<a name="Font-faces-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TeX-parsing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Font-faces-sample-1"></a>
+<h3 class="subsection">3.5.8 Font faces sample</h3>
+<a name="index-Puts-2"></a>
+<div class="float">
+<img src="../png/fonts.png" alt="../png/fonts">
+</div><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-faces-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Color-schemes-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Colors-sample-1"></a>
+<h3 class="subsection">3.5.9 Colors sample</h3>
+<div class="float">
+<img src="../png/colors.png" alt="../png/colors">
+</div><pre class="verbatim">#LENUQ
+facez -1   -1 0 0.4 0.3 'L#': text -0.8 -0.9 'L' 'C:w'
+facez -0.6 -1 0 0.4 0.3 'E#': text -0.4 -0.9 'E' 'C:w'
+facez -0.2 -1 0 0.4 0.3 'N#': text  0   -0.9 'N' 'C:w'
+facez  0.2 -1 0 0.4 0.3 'U#': text  0.4 -0.9 'U' 'C:w'
+facez  0.6 -1 0 0.4 0.3 'Q#': text  0.8 -0.9 'Q' 'C:w'
+#lenuq
+facez -1   -0.7 0 0.4 0.3 'l#': text -0.8 -0.6 'l' 'C:k'
+facez -0.6 -0.7 0 0.4 0.3 'e#': text -0.4 -0.6 'e' 'C:k'
+facez -0.2 -0.7 0 0.4 0.3 'n#': text  0   -0.6 'n' 'C:k'
+facez  0.2 -0.7 0 0.4 0.3 'u#': text  0.4 -0.6 'u' 'C:k'
+facez  0.6 -0.7 0 0.4 0.3 'q#': text  0.8 -0.6 'q' 'C:k'
+#CMYkP
+facez -1   -0.4 0 0.4 0.3 'C#': text -0.8 -0.3 'C' 'C:w'
+facez -0.6 -0.4 0 0.4 0.3 'M#': text -0.4 -0.3 'M' 'C:w'
+facez -0.2 -0.4 0 0.4 0.3 'Y#': text  0   -0.3 'Y' 'C:w'
+facez  0.2 -0.4 0 0.4 0.3 'k#': text  0.4 -0.3 'k' 'C:w'
+facez  0.6 -0.4 0 0.4 0.3 'P#': text  0.8 -0.3 'P' 'C:w'
+#lenuq
+facez -1   -0.1 0 0.4 0.3 'c#': text -0.8 0 'c' 'C:k'
+facez -0.6 -0.1 0 0.4 0.3 'm#': text -0.4 0 'm' 'C:k'
+facez -0.2 -0.1 0 0.4 0.3 'y#': text  0   0 'y' 'C:k'
+facez  0.2 -0.1 0 0.4 0.3 'w#': text  0.4 0 'w' 'C:k'
+facez  0.6 -0.1 0 0.4 0.3 'p#': text  0.8 0 'p' 'C:k'
+#BGRHW
+facez -1   0.2 0 0.4 0.3 'B#': text -0.8 0.3 'B' 'C:k'
+facez -0.6 0.2 0 0.4 0.3 'G#': text -0.4 0.3 'G' 'C:k'
+facez -0.2 0.2 0 0.4 0.3 'R#': text  0   0.3 'R' 'C:k'
+facez  0.2 0.2 0 0.4 0.3 'H#': text  0.4 0.3 'H' 'C:k'
+facez  0.6 0.2 0 0.4 0.3 'W#': text  0.8 0.3 'W' 'C:k'
+#bgrhw
+facez -1   0.5 0 0.4 0.3 'b#': text -0.8 0.6 'b' 'C:w'
+facez -0.6 0.5 0 0.4 0.3 'g#': text -0.4 0.6 'g' 'C:w'
+facez -0.2 0.5 0 0.4 0.3 'r#': text  0   0.6 'r' 'C:w'
+facez  0.2 0.5 0 0.4 0.3 'h#': text  0.4 0.6 'h' 'C:w'
+facez  0.6 0.5 0 0.4 0.3 'w#': text  0.8 0.6 'w' 'C:w'
+#brighted
+facez -1   0.8 0 0.4 0.3 'r1#': text -0.8 0.9 'r1' 'C:k'
+facez -0.6 0.8 0 0.4 0.3 'r3#': text -0.4 0.9 'r3' 'C:k'
+facez -0.2 0.8 0 0.4 0.3 'r5#': text  0   0.9 'r5' 'C:k'
+facez  0.2 0.8 0 0.4 0.3 'r7#': text  0.4 0.9 'r7' 'C:k'
+facez  0.6 0.8 0 0.4 0.3 'r9#': text  0.8 0.9 'r9' 'C:k'
+</pre><hr size="6">
+<a name="Color-schemes-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Normal-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Color-schemes-sample-1"></a>
+<h3 class="subsection">3.5.10 Color schemes sample</h3>
+<a name="index-Colorbar-1"></a>
+<div class="float">
+<img src="../png/color_schemes.png" alt="../png/color_schemes">
+</div><pre class="verbatim">new a 256 2: fill a 'x'
+subplot 2 10 0 0.2:dens a 'kw'
+text -1.4 -0.3 'kw' '' -8
+subplot 2 10 1 0.2:dens a 'wk'
+text -1.4 -0.3 'wk' '' -8
+subplot 2 10 2 0.2:dens a 'kHCcw'
+text -1.4 -0.3 'kHCcw' '' -8
+subplot 2 10 3 0.2:dens a 'kBbcw'
+text -1.4 -0.3 'kBbcw' '' -8
+subplot 2 10 4 0.2:dens a 'kRryw'
+text -1.4 -0.3 'kRryw' '' -8
+subplot 2 10 5 0.2:dens a 'kGgew'
+text -1.4 -0.3 'kGgew' '' -8
+subplot 2 10 6 0.2:dens a 'BbwrR'
+text -1.4 -0.3 'BbwrR' '' -8
+subplot 2 10 7 0.2:dens a 'BbwgG'
+text -1.4 -0.3 'BbwgG' '' -8
+subplot 2 10 8 0.2:dens a 'GgwmM'
+text -1.4 -0.3 'GgwmM' '' -8
+subplot 2 10 9 0.2:dens a 'UuwqR'
+text -1.4 -0.3 'UuwqR' '' -8
+subplot 2 10 10 0.2:dens a 'QqwcC'
+text -1.4 -0.3 'QqwcC' '' -8
+subplot 2 10 11 0.2:dens a 'CcwyY'
+text -1.4 -0.3 'CcwyY' '' -8
+subplot 2 10 12 0.2:dens a 'bcwyr'
+text -1.4 -0.3 'bcwyr' '' -8
+subplot 2 10 13 0.2:dens a 'bwr'
+text -1.4 -0.3 'bwr' '' -8
+subplot 2 10 14 0.2:dens a 'BbcyrR'
+text -1.4 -0.3 'BbcyrR' '' -8
+subplot 2 10 15 0.2:dens a 'UbcyqR'
+text -1.4 -0.3 'UbcyqR' '' -8
+subplot 2 10 16 0.2:dens a 'BbcwyrR'
+text -1.4 -0.3 'BbcwyrR' '' -8
+subplot 2 10 17 0.2:dens a 'bcyr'
+text -1.4 -0.3 'bcyr' '' -8
+subplot 2 10 18 0.2:dens a 'BbcyrR|'
+text -1.4 -0.3 'BbcyrR|' '' -8
+subplot 2 10 19 0.2:dens a 'bgr'
+text -1.4 -0.3 'bgr' '' -8
+</pre><hr size="6">
+<a name="Normal-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Color-schemes-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Glass_002dlike-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Normal-transparency-1"></a>
+<h3 class="subsection">3.5.11 Normal transparency</h3>
+<a name="index-TranspType"></a>
+<div class="float">
+<img src="../png/type0.png" alt="../png/type0">
+</div><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 0: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre><hr size="6">
+<a name="Glass_002dlike-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Normal-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lamp_002dlike-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Glass_002dlike-transparency-1"></a>
+<h3 class="subsection">3.5.12 Glass-like transparency</h3>
+<a name="index-TranspType-1"></a>
+<div class="float">
+<img src="../png/type1.png" alt="../png/type1">
+</div><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 1: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre><hr size="6">
+<a name="Lamp_002dlike-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Glass_002dlike-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Lamp_002dlike-transparency-1"></a>
+<h3 class="subsection">3.5.13 Lamp-like transparency</h3>
+<a name="index-TranspType-2"></a>
+<div class="float">
+<img src="../png/type2.png" alt="../png/type2">
+</div><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 2: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<hr size="6">
+<a name="Additional-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lamp_002dlike-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Additional-features-1"></a>
+<h2 class="section">3.6 Additional features</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Legend-sample">3.6.1 Legend sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Adding-mesh-sample">3.6.2 Adding mesh sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf-_0026-Cont-sample">3.6.3 Surf &amp; Cont sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-_0026-Dens-sample">3.6.4 Flow &amp; Dens sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Several-light-sample">3.6.5 Several light sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mirrored-surface-sample">3.6.6 Mirrored surface sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-with-labels-sample">3.6.7 Cont with labels sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ternary-plot-sample">3.6.8 Ternary plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Coloring-by-coordinates-sample">3.6.9 Coloring by coordinates sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Drops-sample">3.6.10 Drops sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Molecules-drawing-sample">3.6.11 Molecules drawing sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">    
+</td></tr>
+</table>
+<hr size="6">
+<a name="Legend-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Additional-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Adding-mesh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Legend-sample-1"></a>
+<h3 class="subsection">3.6.1 Legend sample</h3>
+<a name="index-Plot-2"></a>
+<a name="index-Legend"></a>
+<a name="index-AddLegend"></a>
+<div class="float">
+<img src="../png/legend.png" alt="../png/legend">
+</div><pre class="verbatim">new f 50 3
+modify f 'sin(2*pi*x*x)'
+modify f 'sin(2*pi*x)' 1
+modify f 'sin(2*pi*sqrt(x))' 2
+axis 0 -1 1 1
+box
+plot f
+axis
+addlegend 'sin(\pi {x^2})' 'b'
+addlegend 'sin(\pi x)' 'g*'
+addlegend 'sin(\pi \sqrt{\a x})' 'r+'
+legend
+</pre><hr size="6">
+<a name="Adding-mesh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf-_0026-Cont-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Adding-mesh-sample-1"></a>
+<h3 class="subsection">3.6.2 Adding mesh sample</h3>
+<a name="index-SubPlot-1"></a>
+<a name="index-Surf-6"></a>
+<a name="index-Dens-3"></a>
+<a name="index-Cont-1"></a>
+<a name="index-Axial-1"></a>
+<div class="float">
+<img src="../png/samplea.png" alt="../png/samplea">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+alpha on
+light on
+subplot 2 2 0
+rotate 40 60
+surf a 'BbcyrR#'
+box
+subplot 2 2 1
+rotate 40 60
+dens a 'BbcyrR#'
+box
+subplot 2 2 2
+rotate 40 60
+cont a 'BbcyrR#'
+box
+subplot 2 2 3
+rotate 40 60
+axial a 'BbcyrR#'
+box
+</pre><hr size="6">
+<a name="Surf-_0026-Cont-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Adding-mesh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-_0026-Dens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-_0026-Cont-sample-1"></a>
+<h3 class="subsection">3.6.3 Surf &amp; Cont sample</h3>
+<a name="index-Surf-7"></a>
+<a name="index-Cont-2"></a>
+<div class="float">
+<img src="../png/surf_cont_y.png" alt="../png/surf_cont_y">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+cont a 'y'
+</pre><hr size="6">
+<a name="Flow-_0026-Dens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf-_0026-Cont-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Several-light-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-_0026-Dens-sample-1"></a>
+<h3 class="subsection">3.6.4 Flow &amp; Dens sample</h3>
+<a name="index-Flow-2"></a>
+<a name="index-Dens-4"></a>
+<div class="float">
+<img src="../png/flow_dens.png" alt="../png/flow_dens">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+copy d a
+modify d 'sqrt(v^2+w^2)' a b
+box
+flow a b 'br'
+dens d 'BbcyrR'
+</pre><hr size="6">
+<a name="Several-light-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-_0026-Dens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mirrored-surface-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Several-light-sample-1"></a>
+<h3 class="subsection">3.6.5 Several light sample</h3>
+<a name="index-Surf-8"></a>
+<a name="index-Light"></a>
+<div class="float">
+<img src="../png/several_light.png" alt="../png/several_light">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+light 1 0 1 0 'c'
+light 2 1 0 0 'y'
+light 3 0 -1 0 'm'
+box
+surf a 'h'
+</pre><hr size="6">
+<a name="Mirrored-surface-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Several-light-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-with-labels-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mirrored-surface-sample-1"></a>
+<h3 class="subsection">3.6.6 Mirrored surface sample</h3>
+<a name="index-Surf-9"></a>
+<div class="float">
+<img src="../png/mirror.png" alt="../png/mirror">
+</div><pre class="verbatim">new a 30 40
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf a 'r'; yrange 0 1
+surf a 'b'; yrange 0 -1
+box
+</pre><p>or
+</p><pre class="verbatim">new a 30 40
+var x 30 -1 1
+var y1 40 0 1
+var y2 40 0 -1
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf x y1 a 'r'
+surf x y2 a 'b'
+box
+</pre><hr size="6">
+<a name="Cont-with-labels-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mirrored-surface-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ternary-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-with-labels-sample-1"></a>
+<h3 class="subsection">3.6.7 Cont with labels sample</h3>
+<a name="index-Cont-3"></a>
+<div class="float">
+<img src="../png/contt.png" alt="../png/contt">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+cont a 'BbcyrRt'
+</pre><hr size="6">
+<a name="Ternary-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-with-labels-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Coloring-by-coordinates-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ternary-plot-sample-1"></a>
+<h3 class="subsection">3.6.8 Ternary plot sample</h3>
+<a name="index-Ternary"></a>
+<div class="float">
+<img src="../png/ternary.png" alt="../png/ternary">
+</div><pre class="verbatim">new rx 10
+new ry 10
+new x 50
+new y 50
+new a 20 30
+modify a '4*x*y'
+modify x '0.25*(1+cos(2*pi*x))'
+modify y '0.25*(1+sin(2*pi*x))'
+modify rx 'rnd'
+modify ry 'rnd*(1-v)' rx
+text -0.8 1.3 'Ternary plot (x+y+t=1)'
+ternary on
+plot x y 'r2'
+plot rx ry 'q^ '
+cont a
+line 0.5 0 0 0.75 'g2'
+axis
+grid 'xyz' 'B;'
+xlabel 'x comp.'
+ylabel 'y comp.'
+tlabel 't comp.'
+</pre><hr size="6">
+<a name="Coloring-by-coordinates-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ternary-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Drops-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Coloring-by-coordinates-sample-1"></a>
+<h3 class="subsection">3.6.9 Coloring by coordinates sample</h3>
+<a name="index-Surf3-4"></a>
+<div class="float">
+<img src="../png/surf3_rgbd.png" alt="../png/surf3_rgbd">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+surf3 a 'bgrd'
+</pre><hr size="6">
+<a name="Drops-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Coloring-by-coordinates-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Molecules-drawing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Drops-sample-1"></a>
+<h3 class="subsection">3.6.10 Drops sample</h3>
+<a name="index-Drop"></a>
+<div class="float">
+<img src="../png/drops.png" alt="../png/drops">
+</div><pre class="verbatim">light on
+text -1 1.2 'sh=0'
+drop -1 0 0 1 0.5 'r' 0
+text -0.33 1.2 'sh=0.33'
+drop -0.33 0 0 1 0.5 'r' 0.33
+text 0.33 1.2 'sh=0.67'
+drop 0.33 0 0 1 0.5 'r' 0.67
+text 1 1.2 'sh=1'
+drop 1 0 0 1 0.5 'r' 1
+ball -1 0 1 'k'
+ball -0.33 0 1 'k'
+ball 0.33 0 1 'k'
+ball 1 0 1 'k'
+line -1 0 1 1 0 1 'b'
+new h 100
+modify h '0.25*(1+x)^2'
+plot h 'k|'
+text -1 0.6 'h\sim(1+sh)^2' 'rL'
+</pre><hr size="6">
+<a name="Molecules-drawing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Drops-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Molecules-drawing-sample-1"></a>
+<h3 class="subsection">3.6.11 Molecules drawing sample</h3>
+<a name="index-Drop-1"></a>
+<a name="index-Sphere"></a>
+<div class="float">
+<img src="../png/molecule.png" alt="../png/molecule">
+</div><pre class="verbatim">alpha on
+light on
+subplot 2 2 0
+text 0 1.2 'Methane, CH_4' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'k'
+drop 0 0 0 0 0 1 0.35 'h' 1 2
+sphere 0 0 0.7 0.25 'g'
+drop 0 0 0 -0.94 0 -0.33 0.35 'h' 1 2
+sphere -0.66 0 -0.23 0.25 'g'
+drop 0 0 0 0.47 0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 0.57 -0.23 0.25 'g'
+drop 0 0 0 0.47 -0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 -0.57 -0.23 0.25 'g'
+subplot 2 2 1
+text 0 1.2 'Water, H{_2}O' '' -3
+rotate 60 100
+sphere 0 0 0 0.25 'r'
+drop 0 0 0 0.3 0.5 0 0.3 'm' 1 2
+sphere 0.3 0.5 0 0.25 'g'
+drop 0 0 0 0.3 -0.5 0 0.3 'm' 1 2
+sphere 0.3 -0.5 0 0.25 'g'
+subplot 2 2 2
+text 0 1.2 'Oxygen, O_2' '' -3
+rotate 60 120
+drop 0 0.5 0 0 -0.3 0 0.3 'm' 1 2
+sphere 0 0.5 0 0.25 'r'
+drop 0 -0.5 0 0 0.3 0 0.3 'm' 1 2
+sphere 0 -0.5 0 0.25 'r'
+subplot 2 2 3
+text 0 1.2 0 'Ammonia, NH_3' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'b'
+drop 0 0 0 0.33 0.57 0 0.32 'n' 1 2
+sphere 0.33 0.57 0 0.25 'g'
+drop 0 0 0 0.33 -0.57 0 0.32 'n' 1 2
+sphere 0.33 -0.57 0 0.25 'g'
+drop 0 0 0 -0.65 0 0 0.32 'n' 1 2
+sphere -0.65 0 0 0.25 'g'
+</pre><hr size="6">
+<a name="Advanced-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Molecules-drawing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Curvelinear-coorinates-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Advanced-features-1"></a>
+<h2 class="section">3.7 Advanced features</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Curvelinear-coorinates-sample">3.7.1 Curvelinear coorinates sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2_002daxes-sample">3.7.2 2-axes sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Semi_002dlog-sample">3.7.3 Semi-log sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Log_002dlog-sample">3.7.4 Log-log sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fitting-sample">3.7.5 Fitting sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Envelop-sample">3.7.6 Envelop sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Sew-sample">3.7.7 Sew sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#STFA-sample">3.7.8 STFA sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#PDE-sample">3.7.9 PDE sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Beam-tracing-sample">3.7.10 Beam tracing sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Parser-sample">3.7.11 Parser sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Manual-ticks-sample">3.7.12 Tick values sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ColumnPlot-sample">3.7.13 ColumnPlot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#StickPlot-sample">3.7.14 StickPlot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stereo-image-sample">3.7.15 Stereo image sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+</table>
+<hr size="6">
+<a name="Curvelinear-coorinates-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Advanced-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2_002daxes-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Curvelinear-coorinates-sample-1"></a>
+<h3 class="subsection">3.7.1 Curvelinear coorinates sample</h3>
+<a name="index-Axis-3"></a>
+<div class="float">
+<img src="../png/sample3.png" alt="../png/sample3">
+</div><pre class="verbatim">origin -1 1 -1
+subplot 2 2 0
+rotate 60 40
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cartesian'
+subplot 2 2 1
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cylindrical'
+subplot 2 2 2
+rotate 60 40
+axis '2*y*x' 'y*y - x*x' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Parabolic'
+subplot 2 2 3
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Spiral'
+axis '' '' '' # set to default Cartesian
+</pre><hr size="6">
+<a name="g_t2_002daxes-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Curvelinear-coorinates-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Semi_002dlog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2_002daxes-sample-1"></a>
+<h3 class="subsection">3.7.2 2-axes sample</h3>
+<a name="index-Axis-4"></a>
+<div class="float">
+<img src="../png/2_axis.png" alt="../png/2_axis">
+</div><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+axis -1 -1 -1 1 1 1
+origin -1 -1 -1
+axis
+ylabel 'axis 1' 0
+plot y1 'b'
+axis 0 0 0 1 1 1
+origin 1 1 1
+axis
+ylabel 'axis 2' 0
+stem y2 'r'
+</pre><hr size="6">
+<a name="Semi_002dlog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2_002daxes-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Log_002dlog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Semi_002dlog-sample-1"></a>
+<h3 class="subsection">3.7.3 Semi-log sample</h3>
+<a name="index-Axis-5"></a>
+<a name="index-SetTicks"></a>
+<a name="index-Plot-3"></a>
+<div class="float">
+<img src="../png/semilog.png" alt="../png/semilog">
+</div><pre class="verbatim">new x 2000
+new y 2000
+modify x '0.01/(x+10^(-5))'
+modify y 'sin(1/v)' x
+xrange 0.01 1000
+origin 0.01 -1 0
+xtick 0
+axis 'lg(x)' '' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g'
+xlabel 'x' 0
+ylabel 'y = sin 1/x' 0
+box
+</pre><hr size="6">
+<a name="Log_002dlog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Semi_002dlog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fitting-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Log_002dlog-sample-1"></a>
+<h3 class="subsection">3.7.4 Log-log sample</h3>
+<a name="index-Axis-6"></a>
+<a name="index-SetTicks-1"></a>
+<a name="index-Plot-4"></a>
+<div class="float">
+<img src="../png/loglog.png" alt="../png/loglog">
+</div><pre class="verbatim">new x 100
+new y 100
+modify x 'pow(10,6*x-3)'
+modify y 'sqrt(1+v^2)' x
+axis 0.001 0.1 1000 1000
+xtick 0
+ytick 0
+axis 'lg(x)' 'lg(y)' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g;'
+xlabel 'x' 0
+ylabel 'y=\sqrt{1+x^2}' 0
+box
+</pre><hr size="6">
+<a name="Fitting-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Log_002dlog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Envelop-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fitting-sample-1"></a>
+<h3 class="subsection">3.7.5 Fitting sample</h3>
+<a name="index-Fit"></a>
+<a name="index-PutsFit"></a>
+<div class="float">
+<img src="../png/fit.png" alt="../png/fit">
+</div><pre class="verbatim">new rnd 100
+fill rnd '0.4*rnd+0.1+sin(2*pi*x)'
+new in 100
+fill in '0.3+sin(2*pi*x)'
+yrange -2 2
+plot rnd '. '
+box
+list ini 1 1 3
+fit res rnd 'a+b*sin(c*x)' 'abc' ini
+plot res 'r'
+plot in 'b'
+text -1 -1.3 'fitted:' 'L:r' -1
+putsfit 0 -1.8 'y = ' 'C:r'
+text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
+</pre><hr size="6">
+<a name="Envelop-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fitting-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Sew-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Envelop-sample-1"></a>
+<h3 class="subsection">3.7.6 Envelop sample</h3>
+<a name="index-Envelop"></a>
+<div class="float">
+<img src="../png/envelop.png" alt="../png/envelop">
+</div><pre class="verbatim">new a 1000
+fill a 'exp(-8*x^2)*sin(10*pi*x)'
+plot a 'b'
+envelop a
+plot a 'r'
+axis
+</pre><hr size="6">
+<a name="Sew-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Envelop-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#STFA-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Sew-sample-1"></a>
+<h3 class="subsection">3.7.7 Sew sample</h3>
+<a name="index-Sew"></a>
+<div class="float">
+<img src="../png/sew.png" alt="../png/sew">
+</div><pre class="verbatim">new a 100 100
+modify a 'mod((y^2-(1-x)^2)/2,0.1)'
+rotate 40 60
+light on
+alpha on
+surf a 'b'
+sew a 'xy' 0.1
+surf a 'r'
+box
+</pre><hr size="6">
+<a name="STFA-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Sew-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#PDE-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="STFA-sample-1"></a>
+<h3 class="subsection">3.7.8 STFA sample</h3>
+<a name="index-STFA"></a>
+<div class="float">
+<img src="../png/stfa.png" alt="../png/stfa">
+</div><pre class="verbatim">new a 2000
+new b 2000
+fill a 'cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)'
+subplot 1 2 0
+plot a
+axis
+xlabel '\i t'
+subplot 1 2 1
+stfa a b 64 ''
+axis
+ylabel '\omega' 0
+xlabel '\i t'
+</pre><hr size="6">
+<a name="PDE-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#STFA-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Beam-tracing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="PDE-sample-1"></a>
+<h3 class="subsection">3.7.9 PDE sample</h3>
+<a name="index-mglPDE"></a>
+<a name="index-mglRay"></a>
+<div class="float">
+<img src="../png/pde.png" alt="../png/pde">
+</div><pre class="verbatim">axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+fill re 'exp(-48*(x+0.7)^2)'
+pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)' re im 0.01 30
+transpose a
+crange 0 1
+dens a 'wyrRk'
+fplot '-x' 'k|'
+text 0 0.85 'absorption: (x+z)/2 for x+z&gt;0' '' -1
+title 'Equation: ik_0\partial_zu + \Delta u + x\cdot u + i \frac{x+z}{2}\cdot u = 0' 'iC' -1.5
+</pre><hr size="6">
+<a name="Beam-tracing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#PDE-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Parser-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Beam-tracing-sample-1"></a>
+<h3 class="subsection">3.7.10 Beam tracing sample</h3>
+<a name="index-mglQO2d"></a>
+<a name="index-mglRay-1"></a>
+<div class="float">
+<img src="../png/qo2d.png" alt="../png/qo2d">
+</div><pre class="verbatim">define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)'
+ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
+plot r(0) r(1) 'k'
+axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+new xx
+new yy
+fill re 'exp(-48*x^2)'
+qo2d a $1 re im r 1 30 xx yy 
+crange 0 1
+dens xx yy a 'wyrRk'
+fplot '-x' 'k|'
+text -0.8 0.85 'absorption: (x+y)/2 for x+y&gt;0' 'L' -1
+text 0.5 -0.05 'central ray' 'L' -1
+title 'Beam and ray tracing' 'C' -1.5
+</pre><hr size="6">
+<a name="Parser-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Beam-tracing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Manual-ticks-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Parser-sample-1"></a>
+<h3 class="subsection">3.7.11 Parser sample</h3>
+<a name="index-mglParse"></a>
+<hr size="6">
+<a name="Manual-ticks-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Parser-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ColumnPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tick-values-sample"></a>
+<h3 class="subsection">3.7.12 Tick values sample</h3>
+<a name="index-SetTicksVal"></a>
+<div class="float">
+<img src="../png/tval.png" alt="../png/tval">
+</div><pre class="verbatim">axis -pi 0 pi 2
+xtick -pi '-\pi' -1.571 '-\pi/2' 0 '0' 0.886 'x^*' 1.571 '\pi/2' pi '\pi'
+axis 
+grid
+fplot '2*cos(x^2)^2' 'r2' nan 300
+</pre><hr size="6">
+<a name="ColumnPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Manual-ticks-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#StickPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ColumnPlot-sample-1"></a>
+<h3 class="subsection">3.7.13 ColumnPlot sample</h3>
+<a name="index-ColumnPlot"></a>
+<div class="float">
+<img src="../png/column.png" alt="../png/column">
+</div><pre class="verbatim">for $1 0 3
+columnplot 4 $1
+box
+text -0.5 0.5 'Plot $1 of 4'
+fplot 'sin(pi*x+pi*$1/2)'
+next
+</pre><hr size="6">
+<a name="StickPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ColumnPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stereo-image-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="StickPlot-sample-1"></a>
+<h3 class="subsection">3.7.14 StickPlot sample</h3>
+<a name="index-StickPlot"></a>
+<div class="float">
+<img src="../png/stick.png" alt="../png/stick">
+</div><pre class="verbatim">ranges -1 1 -1 1 0 1:light on
+stickplot 3 0 40 30 : axis 'xyz_'
+fsurf 'exp(-10*y^2-6*x^2)'
+text 0.2 0 1.2 'z=0' '' -2
+stickplot 3 1 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/2-6*x^2)/sqrt(2)'
+text 0.2 0 1.2 'z=1' '' -2
+stickplot 3 2 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/5-6*x^2)/sqrt(5)'
+text 0.2 0 1.2 'z=2' '' -2
+xlabel '\tau' 0 : ylabel '\rho'
+</pre><hr size="6">
+<a name="Stereo-image-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#StickPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stereo-image-sample-1"></a>
+<h3 class="subsection">3.7.15 Stereo image sample</h3>
+<div class="float">
+<img src="../png/stereo.png" alt="../png/stereo">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+subplot 2 1 0
+rotate 40 60+3
+box:surf a
+subplot 2 1 1
+rotate 40 60-3
+box:surf a
+</pre>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_4.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_4.html
new file mode 100644
index 0000000..e114376
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_4.html
@@ -0,0 +1,542 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: A. GNU Free Documentation License</title>
+
+<meta name="description" content="MGL script language for version 1.11: A. GNU Free Documentation License">
+<meta name="keywords" content="MGL script language for version 1.11: A. GNU Free Documentation License">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Copying-This-Manual"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_3.html#Stereo-image-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="GNU-Free-Documentation-License"></a>
+<h1 class="appendix">A. GNU Free Documentation License</h1>
+<p align="center"> Version 1.2, November 2002
+</p>
+
+<table><tr><td>&nbsp;</td><td><pre class="display">Copyright &copy; 2000,2001,2002 Free Software Foundation, Inc.
+51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+</pre></td></tr></table>
+
+<ol>
+<li>
+PREAMBLE
+
+<p>The purpose of this License is to make a manual, textbook, or other
+functional and useful document <em>free</em> in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+</p>
+<p>This License is a kind of &ldquo;copyleft&rdquo;, which means that derivative
+works of the document must themselves be free in the same sense.  It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+</p>
+<p>We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does.  But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book.  We recommend this License
+principally for works whose purpose is instruction or reference.
+</p>
+</li><li>
+APPLICABILITY AND DEFINITIONS
+
+<p>This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License.  Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein.  The &ldquo;Document&rdquo;, below,
+refers to any such manual or work.  Any member of the public is a
+licensee, and is addressed as &ldquo;you&rdquo;.  You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+</p>
+<p>A &ldquo;Modified Version&rdquo; of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+</p>
+<p>A &ldquo;Secondary Section&rdquo; is a named appendix or a front-matter section
+of the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document&rsquo;s overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject.  (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.)  The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+</p>
+<p>The &ldquo;Invariant Sections&rdquo; are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License.  If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant.  The Document may contain zero
+Invariant Sections.  If the Document does not identify any Invariant
+Sections then there are none.
+</p>
+<p>The &ldquo;Cover Texts&rdquo; are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.  A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+</p>
+<p>A &ldquo;Transparent&rdquo; copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters.  A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text.  A copy that is not &ldquo;Transparent&rdquo; is called &ldquo;Opaque&rdquo;.
+</p>
+<p>Examples of suitable formats for Transparent copies include plain
+<small>ASCII</small> without markup, Texinfo input format, LaTeX input
+format, <acronym>SGML</acronym> or <acronym>XML</acronym> using a publicly available
+<acronym>DTD</acronym>, and standard-conforming simple <acronym>HTML</acronym>,
+PostScript or <acronym>PDF</acronym> designed for human modification.  Examples
+of transparent image formats include <acronym>PNG</acronym>, <acronym>XCF</acronym> and
+<acronym>JPG</acronym>.  Opaque formats include proprietary formats that can be
+read and edited only by proprietary word processors, <acronym>SGML</acronym> or
+<acronym>XML</acronym> for which the <acronym>DTD</acronym> and/or processing tools are
+not generally available, and the machine-generated <acronym>HTML</acronym>,
+PostScript or <acronym>PDF</acronym> produced by some word processors for
+output purposes only.
+</p>
+<p>The &ldquo;Title Page&rdquo; means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page.  For works in
+formats which do not have any title page as such, &ldquo;Title Page&rdquo; means
+the text near the most prominent appearance of the work&rsquo;s title,
+preceding the beginning of the body of the text.
+</p>
+<p>A section &ldquo;Entitled XYZ&rdquo; means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language.  (Here XYZ stands for a
+specific section name mentioned below, such as &ldquo;Acknowledgements&rdquo;,
+&ldquo;Dedications&rdquo;, &ldquo;Endorsements&rdquo;, or &ldquo;History&rdquo;.)  To &ldquo;Preserve the Title&rdquo;
+of such a section when you modify the Document means that it remains a
+section &ldquo;Entitled XYZ&rdquo; according to this definition.
+</p>
+<p>The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document.  These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+</p>
+</li><li>
+VERBATIM COPYING
+
+<p>You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License.  You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute.  However, you may accept
+compensation in exchange for copies.  If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+</p>
+<p>You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+</p>
+</li><li>
+COPYING IN QUANTITY
+
+<p>If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document&rsquo;s license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover.  Both covers must also clearly and legibly identify
+you as the publisher of these copies.  The front cover must present
+the full title with all words of the title equally prominent and
+visible.  You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+</p>
+<p>If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+</p>
+<p>If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+</p>
+<p>It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+</p>
+</li><li>
+MODIFICATIONS
+
+<p>You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it.  In addition, you must do these things in the Modified Version:
+</p>
+<ol>
+<li>
+Use in the Title Page (and on the covers, if any) a title distinct
+from that of the Document, and from those of previous versions
+(which should, if there were any, be listed in the History section
+of the Document).  You may use the same title as a previous version
+if the original publisher of that version gives permission.
+
+</li><li>
+List on the Title Page, as authors, one or more persons or entities
+responsible for authorship of the modifications in the Modified
+Version, together with at least five of the principal authors of the
+Document (all of its principal authors, if it has fewer than five),
+unless they release you from this requirement.
+
+</li><li>
+State on the Title page the name of the publisher of the
+Modified Version, as the publisher.
+
+</li><li>
+Preserve all the copyright notices of the Document.
+
+</li><li>
+Add an appropriate copyright notice for your modifications
+adjacent to the other copyright notices.
+
+</li><li>
+Include, immediately after the copyright notices, a license notice
+giving the public permission to use the Modified Version under the
+terms of this License, in the form shown in the Addendum below.
+
+</li><li>
+Preserve in that license notice the full lists of Invariant Sections
+and required Cover Texts given in the Document&rsquo;s license notice.
+
+</li><li>
+Include an unaltered copy of this License.
+
+</li><li>
+Preserve the section Entitled &ldquo;History&rdquo;, Preserve its Title, and add
+to it an item stating at least the title, year, new authors, and
+publisher of the Modified Version as given on the Title Page.  If
+there is no section Entitled &ldquo;History&rdquo; in the Document, create one
+stating the title, year, authors, and publisher of the Document as
+given on its Title Page, then add an item describing the Modified
+Version as stated in the previous sentence.
+
+</li><li>
+Preserve the network location, if any, given in the Document for
+public access to a Transparent copy of the Document, and likewise
+the network locations given in the Document for previous versions
+it was based on.  These may be placed in the &ldquo;History&rdquo; section.
+You may omit a network location for a work that was published at
+least four years before the Document itself, or if the original
+publisher of the version it refers to gives permission.
+
+</li><li>
+For any section Entitled &ldquo;Acknowledgements&rdquo; or &ldquo;Dedications&rdquo;, Preserve
+the Title of the section, and preserve in the section all the
+substance and tone of each of the contributor acknowledgements and/or
+dedications given therein.
+
+</li><li>
+Preserve all the Invariant Sections of the Document,
+unaltered in their text and in their titles.  Section numbers
+or the equivalent are not considered part of the section titles.
+
+</li><li>
+Delete any section Entitled &ldquo;Endorsements&rdquo;.  Such a section
+may not be included in the Modified Version.
+
+</li><li>
+Do not retitle any existing section to be Entitled &ldquo;Endorsements&rdquo; or
+to conflict in title with any Invariant Section.
+
+</li><li>
+Preserve any Warranty Disclaimers.
+</li></ol>
+
+<p>If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant.  To do this, add their titles to the
+list of Invariant Sections in the Modified Version&rsquo;s license notice.
+These titles must be distinct from any other section titles.
+</p>
+<p>You may add a section Entitled &ldquo;Endorsements&rdquo;, provided it contains
+nothing but endorsements of your Modified Version by various
+parties&mdash;for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+</p>
+<p>You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version.  Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity.  If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+</p>
+<p>The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+</p>
+</li><li>
+COMBINING DOCUMENTS
+
+<p>You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+</p>
+<p>The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy.  If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+</p>
+<p>In the combination, you must combine any sections Entitled &ldquo;History&rdquo;
+in the various original documents, forming one section Entitled
+&ldquo;History&rdquo;; likewise combine any sections Entitled &ldquo;Acknowledgements&rdquo;,
+and any sections Entitled &ldquo;Dedications&rdquo;.  You must delete all
+sections Entitled &ldquo;Endorsements.&rdquo;
+</p>
+</li><li>
+COLLECTIONS OF DOCUMENTS
+
+<p>You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+</p>
+<p>You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+</p>
+</li><li>
+AGGREGATION WITH INDEPENDENT WORKS
+
+<p>A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an &ldquo;aggregate&rdquo; if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation&rsquo;s users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+</p>
+<p>If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document&rsquo;s Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+</p>
+</li><li>
+TRANSLATION
+
+<p>Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections.  You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers.  In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+</p>
+<p>If a section in the Document is Entitled &ldquo;Acknowledgements&rdquo;,
+&ldquo;Dedications&rdquo;, or &ldquo;History&rdquo;, the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+</p>
+</li><li>
+TERMINATION
+
+<p>You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License.  Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License.  However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+</p>
+</li><li>
+FUTURE REVISIONS OF THIS LICENSE
+
+<p>The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time.  Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.  See
+<a href="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</a>.
+</p>
+<p>Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License &ldquo;or any later version&rdquo; applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation.  If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+</p></li></ol>
+
+
+<a name="ADDENDUM_003a-How-to-use-this-License-for-your-documents"></a>
+<h2 class="heading">ADDENDUM: How to use this License for your documents</h2>
+
+<p>To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample">  Copyright (C)  <var>year</var>  <var>your name</var>.
+  Permission is granted to copy, distribute and/or modify this document
+  under the terms of the GNU Free Documentation License, Version 1.2
+  or any later version published by the Free Software Foundation;
+  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+  Texts.  A copy of the license is included in the section entitled ``GNU
+  Free Documentation License''.
+</pre></td></tr></table>
+
+<p>If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the &ldquo;with&hellip;Texts.&rdquo; line with this:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample">    with the Invariant Sections being <var>list their titles</var>, with
+    the Front-Cover Texts being <var>list</var>, and with the Back-Cover Texts
+    being <var>list</var>.
+</pre></td></tr></table>
+
+<p>If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+</p>
+<p>If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
+</p>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_5.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_5.html
new file mode 100644
index 0000000..b13f39f
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_5.html
@@ -0,0 +1,323 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: Index</title>
+
+<meta name="description" content="MGL script language for version 1.11: Index">
+<meta name="keywords" content="MGL script language for version 1.11: Index">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Index"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_6.html#index_split-0" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Index-1"></a>
+<h1 class="unnumbered">Index</h1>
+
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Index-1_cp_letter-A">A</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-AddLegend">AddLegend</a></td><td valign="top"><a href="mgl_en_3.html#Legend-sample">3.6.1 Legend sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-addlegend">addlegend</a></td><td valign="top"><a href="mgl_en_1.html#Legend">1.9 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-addto">addto</a></td><td valign="top"><a href="mgl_en_1.html#Operators">1.23 Operators</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-adjust">adjust</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Alpha">Alpha</a></td><td valign="top"><a href="mgl_en_3.html#Transparent-surface-sample">3.2.2 Transparent surface sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-alpha">alpha</a></td><td valign="top"><a href="mgl_en_1.html#Transparency">1.2.1 Transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Alpha-1">Alpha</a></td><td valign="top"><a href="mgl_en_3.html#g_t2D-plot-sample">3.5.2 2D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-alpha-2">alpha</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Alpha-2">Alpha</a></td><td valign="top"><a href="mgl_en_3.html#g_t3D-plot-sample">3.5.3 3D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-alphadef">alphadef</a></td><td valign="top"><a href="mgl_en_1.html#Transparency">1.2.1 Transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-alphadef-2">alphadef</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ambient">ambient</a></td><td valign="top"><a href="mgl_en_1.html#Lighting">1.2.2 Lighting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ambient-2">ambient</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-area">area</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Area">Area</a></td><td valign="top"><a href="mgl_en_3.html#Area-sample">3.1.4 Area sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Area-1">Area</a></td><td valign="top"><a href="mgl_en_3.html#Area-gradient-sample">3.1.5 Area with gradient filling sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-Arrows">Arrows</a></td><td valign="top"><a href="mgl_en_1.html#Line-styles">1.1.2 Line styles</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-arrowsize">arrowsize</a></td><td valign="top"><a href="mgl_en_1.html#Default-sizes">1.2.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-aspect">aspect</a></td><td valign="top"><a href="mgl_en_1.html#Transformation-matrix">1.4 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Axial">Axial</a></td><td valign="top"><a href="mgl_en_3.html#Axial-sample">3.2.14 Axial sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-axial">axial</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Axial-1">Axial</a></td><td valign="top"><a href="mgl_en_3.html#Adding-mesh-sample">3.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-axialdir">axialdir</a></td><td valign="top"><a href="mgl_en_1.html#Other-settings">1.2.7 Other settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-axis">axis</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Axis">Axis</a></td><td valign="top"><a href="mgl_en_3.html#Pie-chart-sample">3.1.23 Pie chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Axis-1">Axis</a></td><td valign="top"><a href="mgl_en_3.html#Ring-chart-sample">3.1.24 Ring chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-axis-5">axis</a></td><td valign="top"><a href="mgl_en_1.html#Axis-and-Colorbar">1.8 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Axis-2">Axis</a></td><td valign="top"><a href="mgl_en_3.html#Dens3-sample">3.3.4 Dens3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Axis-3">Axis</a></td><td valign="top"><a href="mgl_en_3.html#Curvelinear-coorinates-sample">3.7.1 Curvelinear coorinates sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Axis-4">Axis</a></td><td valign="top"><a href="mgl_en_3.html#g_t2_002daxes-sample">3.7.2 2-axes sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Axis-5">Axis</a></td><td valign="top"><a href="mgl_en_3.html#Semi_002dlog-sample">3.7.3 Semi-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Axis-6">Axis</a></td><td valign="top"><a href="mgl_en_3.html#Log_002dlog-sample">3.7.4 Log-log sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Index-1_cp_letter-B">B</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ball">ball</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-barh">barh</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Barh">Barh</a></td><td valign="top"><a href="mgl_en_3.html#Barh-sample">3.1.10 Barh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-bars">bars</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Bars">Bars</a></td><td valign="top"><a href="mgl_en_3.html#Bars-sample">3.1.6 Bars sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Bars-1">Bars</a></td><td valign="top"><a href="mgl_en_3.html#Bars-2-colors-sample">3.1.7 Bars 2 colors sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Bars-2">Bars</a></td><td valign="top"><a href="mgl_en_3.html#Bars-above-sample">3.1.8 Bars above sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Bars-3">Bars</a></td><td valign="top"><a href="mgl_en_3.html#Bars-fall-sample">3.1.9 Bars fall sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Bars-4">Bars</a></td><td valign="top"><a href="mgl_en_3.html#g_t1D-plot-sample">3.5.1 1D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-barwidth">barwidth</a></td><td valign="top"><a href="mgl_en_1.html#Default-sizes">1.2.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-beam">beam</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Belt">Belt</a></td><td valign="top"><a href="mgl_en_3.html#Belt-sample">3.2.7 Belt sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-belt">belt</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-box">box</a></td><td valign="top"><a href="mgl_en_1.html#Axis-and-Colorbar">1.8 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-BoxPlot">BoxPlot</a></td><td valign="top"><a href="mgl_en_3.html#BoxPlot-sample">3.1.16 BoxPlot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-boxplot">boxplot</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-boxs">boxs</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Boxs">Boxs</a></td><td valign="top"><a href="mgl_en_3.html#Boxs-sample">3.2.9 Boxs sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Index-1_cp_letter-C">C</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-call">call</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-caxis">caxis</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-chart">chart</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Chart">Chart</a></td><td valign="top"><a href="mgl_en_3.html#Chart-sample">3.1.22 Chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Chart-1">Chart</a></td><td valign="top"><a href="mgl_en_3.html#Pie-chart-sample">3.1.23 Pie chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Chart-2">Chart</a></td><td valign="top"><a href="mgl_en_3.html#Ring-chart-sample">3.1.24 Ring chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-chdir">chdir</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-clearlegend">clearlegend</a></td><td valign="top"><a href="mgl_en_1.html#Legend">1.9 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-clf">clf</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-cloud">cloud</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Cloud">Cloud</a></td><td valign="top"><a href="mgl_en_3.html#Cloud-sample">3.3.2 Cloud sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-CloudP">CloudP</a></td><td valign="top"><a href="mgl_en_3.html#CloudP-sample">3.3.3 CloudP sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-Color-scheme">Color scheme</a></td><td valign="top"><a href="mgl_en_1.html#Color-scheme">1.1.3 Color scheme</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-colorbar">colorbar</a></td><td valign="top"><a href="mgl_en_1.html#Axis-and-Colorbar">1.8 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Colorbar">Colorbar</a></td><td valign="top"><a href="mgl_en_3.html#Dens-sample">3.2.10 Dens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Colorbar-1">Colorbar</a></td><td valign="top"><a href="mgl_en_3.html#Color-schemes-sample">3.5.10 Color schemes sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-ColumnPlot">ColumnPlot</a></td><td valign="top"><a href="mgl_en_3.html#ColumnPlot-sample">3.7.13 ColumnPlot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-columnplot">columnplot</a></td><td valign="top"><a href="mgl_en_1.html#Transformation-matrix">1.4 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-combine">combine</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-cone">cone</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Cont">Cont</a></td><td valign="top"><a href="mgl_en_3.html#Cont-sample">3.2.11 Cont sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-cont">cont</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Cont-1">Cont</a></td><td valign="top"><a href="mgl_en_3.html#Adding-mesh-sample">3.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Cont-2">Cont</a></td><td valign="top"><a href="mgl_en_3.html#Surf-_0026-Cont-sample">3.6.3 Surf &amp; Cont sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Cont-3">Cont</a></td><td valign="top"><a href="mgl_en_3.html#Cont-with-labels-sample">3.6.7 Cont with labels sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Cont3">Cont3</a></td><td valign="top"><a href="mgl_en_3.html#Cont3-sample">3.3.5 Cont3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-cont3">cont3</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-conta">conta</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-contd">contd</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-ContD">ContD</a></td><td valign="top"><a href="mgl_en_3.html#ContD-sample">3.2.13 ContD sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-contf">contf</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-ContF">ContF</a></td><td valign="top"><a href="mgl_en_3.html#ContF-sample">3.2.12 ContF sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-ContF3">ContF3</a></td><td valign="top"><a href="mgl_en_3.html#ContF3-sample">3.3.6 ContF3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-contf3">contf3</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-ContF3-1">ContF3</a></td><td valign="top"><a href="mgl_en_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-contfa">contfa</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-contfx">contfx</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-contfy">contfy</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-contfz">contfz</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-ContX">ContX</a></td><td valign="top"><a href="mgl_en_3.html#Cont-projection-sample">3.3.7 Cont projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-contx">contx</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-ContY">ContY</a></td><td valign="top"><a href="mgl_en_3.html#Cont-projection-sample">3.3.7 Cont projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-conty">conty</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-contz">contz</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-ContZ">ContZ</a></td><td valign="top"><a href="mgl_en_3.html#Cont-projection-sample">3.3.7 Cont projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-copy">copy</a></td><td valign="top"><a href="mgl_en_1.html#Data-create">1.17 Data create</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-cosfft">cosfft</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-crange">crange</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-crange-3">crange</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-crop">crop</a></td><td valign="top"><a href="mgl_en_1.html#Rearrange-data">1.19 Rearrange data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-crust">crust</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Crust">Crust</a></td><td valign="top"><a href="mgl_en_3.html#Crust-sample">3.4.19 Crust sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ctick">ctick</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-cumsum">cumsum</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-curve">curve</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-cut">cut</a></td><td valign="top"><a href="mgl_en_1.html#Cutting">1.2.6 Cutting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-cut-4">cut</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-CutMax">CutMax</a></td><td valign="top"><a href="mgl_en_3.html#CutMinMax-sample">3.3.9 CutMinMax sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-CutMax-1">CutMax</a></td><td valign="top"><a href="mgl_en_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-CutMin">CutMin</a></td><td valign="top"><a href="mgl_en_3.html#CutMinMax-sample">3.3.9 CutMinMax sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-CutMin-1">CutMin</a></td><td valign="top"><a href="mgl_en_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-CutOff">CutOff</a></td><td valign="top"><a href="mgl_en_3.html#CutOff-sample">3.3.11 CutOff sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_6.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_6.html
new file mode 100644
index 0000000..59b4d96
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_6.html
@@ -0,0 +1,338 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: Index: D &ndash; M</title>
+
+<meta name="description" content="MGL script language for version 1.11: Index: D &ndash; M">
+<meta name="keywords" content="MGL script language for version 1.11: Index: D &ndash; M">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-0"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_7.html#index_split-1" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Index: D &ndash; M</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_en_5.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-D">D</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-defchr">defchr</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-define">define</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-defnum">defnum</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-defpal">defpal</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-delete">delete</a></td><td valign="top"><a href="mgl_en_1.html#Rearrange-data">1.19 Rearrange data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-dens">dens</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Dens">Dens</a></td><td valign="top"><a href="mgl_en_3.html#Dens-sample">3.2.10 Dens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Dens-1">Dens</a></td><td valign="top"><a href="mgl_en_3.html#g_t2D-plot-sample">3.5.2 2D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Dens-2">Dens</a></td><td valign="top"><a href="mgl_en_3.html#g_t3D-plot-sample">3.5.3 3D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Dens-3">Dens</a></td><td valign="top"><a href="mgl_en_3.html#Adding-mesh-sample">3.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Dens-4">Dens</a></td><td valign="top"><a href="mgl_en_3.html#Flow-_0026-Dens-sample">3.6.4 Flow &amp; Dens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-dens3">dens3</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Dens3">Dens3</a></td><td valign="top"><a href="mgl_en_3.html#Dens3-sample">3.3.4 Dens3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-densa">densa</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-densx">densx</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-DensX">DensX</a></td><td valign="top"><a href="mgl_en_3.html#Dens-projection-sample">3.3.8 Dens projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-DensY">DensY</a></td><td valign="top"><a href="mgl_en_3.html#Dens-projection-sample">3.3.8 Dens projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-densy">densy</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-densz">densz</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-DensZ">DensZ</a></td><td valign="top"><a href="mgl_en_3.html#Dens-projection-sample">3.3.8 Dens projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Dew">Dew</a></td><td valign="top"><a href="mgl_en_3.html#Dew-sample">3.4.11 Dew sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-dew">dew</a></td><td valign="top"><a href="mgl_en_1.html#Vector-fields">1.14 Vector fields</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-diff">diff</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-diff2">diff2</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-divto">divto</a></td><td valign="top"><a href="mgl_en_1.html#Operators">1.23 Operators</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-dots">dots</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Dots">Dots</a></td><td valign="top"><a href="mgl_en_3.html#Dots-sample">3.4.20 Dots sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-drop">drop</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Drop">Drop</a></td><td valign="top"><a href="mgl_en_3.html#Drops-sample">3.6.10 Drops sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Drop-1">Drop</a></td><td valign="top"><a href="mgl_en_3.html#Molecules-drawing-sample">3.6.11 Molecules drawing sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-E">E</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-else">else</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-elseif">elseif</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-endif">endif</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-envelop">envelop</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Envelop">Envelop</a></td><td valign="top"><a href="mgl_en_3.html#Envelop-sample">3.7.6 Envelop sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Error">Error</a></td><td valign="top"><a href="mgl_en_3.html#Error-sample">3.1.15 Error sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-error">error</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-evaluate">evaluate</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-export">export</a></td><td valign="top"><a href="mgl_en_1.html#File-I_002fO">1.20 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-extend">extend</a></td><td valign="top"><a href="mgl_en_1.html#Rearrange-data">1.19 Rearrange data</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-F">F</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-facex">facex</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-facey">facey</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-facez">facez</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fall">fall</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Fall">Fall</a></td><td valign="top"><a href="mgl_en_3.html#Fall-sample">3.2.6 Fall sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fgets">fgets</a></td><td valign="top"><a href="mgl_en_1.html#Text-printing">1.7 Text printing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fill">fill</a></td><td valign="top"><a href="mgl_en_1.html#Data-filling">1.18 Data filling</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fill-1">fill</a></td><td valign="top"><a href="mgl_en_1.html#Data-filling">1.18 Data filling</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fit">fit</a></td><td valign="top"><a href="mgl_en_1.html#Nonlinear-fitting">1.16 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Fit">Fit</a></td><td valign="top"><a href="mgl_en_3.html#Fitting-sample">3.7.5 Fitting sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fits">fits</a></td><td valign="top"><a href="mgl_en_1.html#Nonlinear-fitting">1.16 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Flow">Flow</a></td><td valign="top"><a href="mgl_en_3.html#Flow-sample">3.4.9 Flow sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-flow">flow</a></td><td valign="top"><a href="mgl_en_1.html#Vector-fields">1.14 Vector fields</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Flow-1">Flow</a></td><td valign="top"><a href="mgl_en_3.html#Flow-3D-sample">3.4.17 Flow 3D sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Flow-2">Flow</a></td><td valign="top"><a href="mgl_en_3.html#Flow-_0026-Dens-sample">3.6.4 Flow &amp; Dens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fog">fog</a></td><td valign="top"><a href="mgl_en_1.html#Fog">1.2.3 Fog</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Fog">Fog</a></td><td valign="top"><a href="mgl_en_3.html#Surface-in-fog-sample">3.2.3 Surface in fog sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-font">font</a></td><td valign="top"><a href="mgl_en_1.html#Other-settings">1.2.7 Other settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-Font-styles">Font styles</a></td><td valign="top"><a href="mgl_en_1.html#Font-styles">1.1.4 Font styles</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fontsize">fontsize</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-for">for</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fplot">fplot</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fsurf">fsurf</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-func">func</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-G">G</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-grad">grad</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Grad">Grad</a></td><td valign="top"><a href="mgl_en_3.html#Grad-sample">3.2.15 Grad sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-grid">grid</a></td><td valign="top"><a href="mgl_en_1.html#Axis-and-Colorbar">1.8 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-grid2">grid2</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-grid3">grid3</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-grida">grida</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-H">H</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-hankel">hankel</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-hist">hist</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-I">I</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-idset">idset</a></td><td valign="top"><a href="mgl_en_1.html#Data-create">1.17 Data create</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-if">if</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-import">import</a></td><td valign="top"><a href="mgl_en_1.html#File-I_002fO">1.20 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-info">info</a></td><td valign="top"><a href="mgl_en_1.html#Data-create">1.17 Data create</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-inplot">inplot</a></td><td valign="top"><a href="mgl_en_1.html#Transformation-matrix">1.4 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-insert">insert</a></td><td valign="top"><a href="mgl_en_1.html#Rearrange-data">1.19 Rearrange data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-integrate">integrate</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-J">J</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-jacobian">jacobian</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-L">L</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Legend">Legend</a></td><td valign="top"><a href="mgl_en_3.html#Legend-sample">3.6.1 Legend sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-legend">legend</a></td><td valign="top"><a href="mgl_en_1.html#Legend">1.9 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-legend-3">legend</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-legendbox">legendbox</a></td><td valign="top"><a href="mgl_en_1.html#Legend">1.9 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-legendmarks">legendmarks</a></td><td valign="top"><a href="mgl_en_1.html#Legend">1.9 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-light">light</a></td><td valign="top"><a href="mgl_en_1.html#Lighting">1.2.2 Lighting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Light">Light</a></td><td valign="top"><a href="mgl_en_3.html#Several-light-sample">3.6.5 Several light sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Line">Line</a></td><td valign="top"><a href="mgl_en_3.html#Line-styles-sample">3.5.4 Line styles sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-line">line</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Line-1">Line</a></td><td valign="top"><a href="mgl_en_3.html#Arrow-styles-sample">3.5.5 Arrow styles sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-Line-style">Line style</a></td><td valign="top"><a href="mgl_en_1.html#Line-styles">1.1.2 Line styles</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-linewidth">linewidth</a></td><td valign="top"><a href="mgl_en_1.html#Default-sizes">1.2.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-list">list</a></td><td valign="top"><a href="mgl_en_1.html#Data-create">1.17 Data create</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-M">M</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-map">map</a></td><td valign="top"><a href="mgl_en_1.html#Dual-plotting">1.13 Dual plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Map">Map</a></td><td valign="top"><a href="mgl_en_3.html#Map-sample">3.4.4 Map sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-mark">mark</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Mark">Mark</a></td><td valign="top"><a href="mgl_en_3.html#Mark-sample">3.1.17 Mark sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Mark-1">Mark</a></td><td valign="top"><a href="mgl_en_3.html#Line-styles-sample">3.5.4 Line styles sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-Mark-style">Mark style</a></td><td valign="top"><a href="mgl_en_1.html#Line-styles">1.1.2 Line styles</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-marksize">marksize</a></td><td valign="top"><a href="mgl_en_1.html#Default-sizes">1.2.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-marksize-2">marksize</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-max">max</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-mesh">mesh</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Mesh">Mesh</a></td><td valign="top"><a href="mgl_en_3.html#Mesh-sample">3.2.5 Mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-meshnum">meshnum</a></td><td valign="top"><a href="mgl_en_1.html#Other-settings">1.2.7 Other settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-meshnum-2">meshnum</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-mglParse">mglParse</a></td><td valign="top"><a href="mgl_en_3.html#Parser-sample">3.7.11 Parser sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-mglPDE">mglPDE</a></td><td valign="top"><a href="mgl_en_3.html#PDE-sample">3.7.9 PDE sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-mglQO2d">mglQO2d</a></td><td valign="top"><a href="mgl_en_3.html#Beam-tracing-sample">3.7.10 Beam tracing sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-mglRay">mglRay</a></td><td valign="top"><a href="mgl_en_3.html#PDE-sample">3.7.9 PDE sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-mglRay-1">mglRay</a></td><td valign="top"><a href="mgl_en_3.html#Beam-tracing-sample">3.7.10 Beam tracing sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-min">min</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-mirror">mirror</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-modify">modify</a></td><td valign="top"><a href="mgl_en_1.html#Data-filling">1.18 Data filling</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-modify-1">modify</a></td><td valign="top"><a href="mgl_en_1.html#Data-filling">1.18 Data filling</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-momentum">momentum</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-multo">multo</a></td><td valign="top"><a href="mgl_en_1.html#Operators">1.23 Operators</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_en_5.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_7.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_7.html
new file mode 100644
index 0000000..8ef3996
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_7.html
@@ -0,0 +1,351 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: Index: N &ndash; T</title>
+
+<meta name="description" content="MGL script language for version 1.11: Index: N &ndash; T">
+<meta name="keywords" content="MGL script language for version 1.11: Index: N &ndash; T">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-1"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_6.html#index_split-0" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_8.html#index_split-2" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Index: N &ndash; T</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_en_5.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-N">N</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-new">new</a></td><td valign="top"><a href="mgl_en_1.html#Data-create">1.17 Data create</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-next">next</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-norm">norm</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-normsl">normsl</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-O">O</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-once">once</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-origin">origin</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-P">P</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-palette">palette</a></td><td valign="top"><a href="mgl_en_1.html#Other-settings">1.2.7 Other settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-pde">pde</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-perspective">perspective</a></td><td valign="top"><a href="mgl_en_1.html#Transformation-matrix">1.4 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-pipe">pipe</a></td><td valign="top"><a href="mgl_en_1.html#Vector-fields">1.14 Vector fields</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Pipe">Pipe</a></td><td valign="top"><a href="mgl_en_3.html#Pipe-sample">3.4.10 Pipe sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Pipe-1">Pipe</a></td><td valign="top"><a href="mgl_en_3.html#Pipe-3D-sample">3.4.18 Pipe 3D sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Plot">Plot</a></td><td valign="top"><a href="mgl_en_3.html#Plot-sample">3.1.1 Plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-plot">plot</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Plot-1">Plot</a></td><td valign="top"><a href="mgl_en_3.html#g_t1D-plot-sample">3.5.1 1D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Plot-2">Plot</a></td><td valign="top"><a href="mgl_en_3.html#Legend-sample">3.6.1 Legend sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Plot-3">Plot</a></td><td valign="top"><a href="mgl_en_3.html#Semi_002dlog-sample">3.7.3 Semi-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Plot-4">Plot</a></td><td valign="top"><a href="mgl_en_3.html#Log_002dlog-sample">3.7.4 Log-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-plotfactor">plotfactor</a></td><td valign="top"><a href="mgl_en_1.html#Zooming">1.2.5 Zooming</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-put">put</a></td><td valign="top"><a href="mgl_en_1.html#Data-filling">1.18 Data filling</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Puts">Puts</a></td><td valign="top"><a href="mgl_en_3.html#Text-styles-sample">3.5.6 Text styles sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Puts-1">Puts</a></td><td valign="top"><a href="mgl_en_3.html#TeX-parsing-sample">3.5.7 TeX parsing sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Puts-2">Puts</a></td><td valign="top"><a href="mgl_en_3.html#Font-faces-sample">3.5.8 Font faces sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-PutsFit">PutsFit</a></td><td valign="top"><a href="mgl_en_3.html#Fitting-sample">3.7.5 Fitting sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-putsfit">putsfit</a></td><td valign="top"><a href="mgl_en_1.html#Nonlinear-fitting">1.16 Nonlinear fitting</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-Q">Q</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-qo2d">qo2d</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-quadplot">quadplot</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-R">R</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Radar">Radar</a></td><td valign="top"><a href="mgl_en_3.html#Radar-sample">3.1.2 Radar sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-radar">radar</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ranges">ranges</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ray">ray</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-read">read</a></td><td valign="top"><a href="mgl_en_1.html#File-I_002fO">1.20 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-readall">readall</a></td><td valign="top"><a href="mgl_en_1.html#File-I_002fO">1.20 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-readhdf">readhdf</a></td><td valign="top"><a href="mgl_en_1.html#File-I_002fO">1.20 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-readmat">readmat</a></td><td valign="top"><a href="mgl_en_1.html#File-I_002fO">1.20 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-rearrange">rearrange</a></td><td valign="top"><a href="mgl_en_1.html#Rearrange-data">1.19 Rearrange data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-rect">rect</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Region">Region</a></td><td valign="top"><a href="mgl_en_3.html#Region-sample">3.1.13 Region sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-region">region</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Region-1">Region</a></td><td valign="top"><a href="mgl_en_3.html#Region-gradient-sample">3.1.14 Region gradient sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-resize">resize</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-return">return</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-roll">roll</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-rotate">rotate</a></td><td valign="top"><a href="mgl_en_1.html#Transformation-matrix">1.4 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-rotatetext">rotatetext</a></td><td valign="top"><a href="mgl_en_1.html#Other-settings">1.2.7 Other settings</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-S">S</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-save">save</a></td><td valign="top"><a href="mgl_en_1.html#File-I_002fO">1.20 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-savehdf">savehdf</a></td><td valign="top"><a href="mgl_en_1.html#File-I_002fO">1.20 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-setsize">setsize</a></td><td valign="top"><a href="mgl_en_1.html#Export-to-file">1.5 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-SetTicks">SetTicks</a></td><td valign="top"><a href="mgl_en_3.html#Semi_002dlog-sample">3.7.3 Semi-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-SetTicks-1">SetTicks</a></td><td valign="top"><a href="mgl_en_3.html#Log_002dlog-sample">3.7.4 Log-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-SetTicksVal">SetTicksVal</a></td><td valign="top"><a href="mgl_en_3.html#Manual-ticks-sample">3.7.12 Tick values sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Sew">Sew</a></td><td valign="top"><a href="mgl_en_3.html#Sew-sample">3.7.7 Sew sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-sew">sew</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-sinfft">sinfft</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-smooth">smooth</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Sphere">Sphere</a></td><td valign="top"><a href="mgl_en_3.html#Molecules-drawing-sample">3.6.11 Molecules drawing sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-sphere">sphere</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-squeeze">squeeze</a></td><td valign="top"><a href="mgl_en_1.html#Rearrange-data">1.19 Rearrange data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-stem">stem</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Stem">Stem</a></td><td valign="top"><a href="mgl_en_3.html#Stem-sample">3.1.12 Stem sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-step">step</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Step">Step</a></td><td valign="top"><a href="mgl_en_3.html#Step-sample">3.1.11 Step sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-stfa">stfa</a></td><td valign="top"><a href="mgl_en_1.html#Dual-plotting">1.13 Dual plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-STFA">STFA</a></td><td valign="top"><a href="mgl_en_3.html#STFA-sample">3.7.8 STFA sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-stfad">stfad</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-StickPlot">StickPlot</a></td><td valign="top"><a href="mgl_en_3.html#StickPlot-sample">3.7.14 StickPlot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-stickplot">stickplot</a></td><td valign="top"><a href="mgl_en_1.html#Transformation-matrix">1.4 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-stop">stop</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-subdata">subdata</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-SubPlot">SubPlot</a></td><td valign="top"><a href="mgl_en_3.html#g_t1D-plot-sample">3.5.1 1D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-subplot">subplot</a></td><td valign="top"><a href="mgl_en_1.html#Transformation-matrix">1.4 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-SubPlot-1">SubPlot</a></td><td valign="top"><a href="mgl_en_3.html#Adding-mesh-sample">3.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-subto">subto</a></td><td valign="top"><a href="mgl_en_1.html#Operators">1.23 Operators</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-sum">sum</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf">Surf</a></td><td valign="top"><a href="mgl_en_3.html#Surf-sample">3.2.1 Surf sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-surf">surf</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf-1">Surf</a></td><td valign="top"><a href="mgl_en_3.html#Transparent-surface-sample">3.2.2 Transparent surface sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf-2">Surf</a></td><td valign="top"><a href="mgl_en_3.html#Surface-in-fog-sample">3.2.3 Surface in fog sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf-3">Surf</a></td><td valign="top"><a href="mgl_en_3.html#Sharp-colors-sample">3.2.4 Sharp colors sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf-4">Surf</a></td><td valign="top"><a href="mgl_en_3.html#g_t2D-plot-sample">3.5.2 2D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf-5">Surf</a></td><td valign="top"><a href="mgl_en_3.html#g_t3D-plot-sample">3.5.3 3D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf-6">Surf</a></td><td valign="top"><a href="mgl_en_3.html#Adding-mesh-sample">3.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf-7">Surf</a></td><td valign="top"><a href="mgl_en_3.html#Surf-_0026-Cont-sample">3.6.3 Surf &amp; Cont sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf-8">Surf</a></td><td valign="top"><a href="mgl_en_3.html#Several-light-sample">3.6.5 Several light sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf-9">Surf</a></td><td valign="top"><a href="mgl_en_3.html#Mirrored-surface-sample">3.6.6 Mirrored surface sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-surf3">surf3</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf3">Surf3</a></td><td valign="top"><a href="mgl_en_3.html#Surf3-sample">3.3.1 Surf3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf3-1">Surf3</a></td><td valign="top"><a href="mgl_en_3.html#CutMinMax-sample">3.3.9 CutMinMax sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf3-2">Surf3</a></td><td valign="top"><a href="mgl_en_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf3-3">Surf3</a></td><td valign="top"><a href="mgl_en_3.html#CutOff-sample">3.3.11 CutOff sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf3-4">Surf3</a></td><td valign="top"><a href="mgl_en_3.html#Coloring-by-coordinates-sample">3.6.9 Coloring by coordinates sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf3A">Surf3A</a></td><td valign="top"><a href="mgl_en_3.html#Surf3A-sample">3.4.13 Surf3A sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-surf3a">surf3a</a></td><td valign="top"><a href="mgl_en_1.html#Dual-plotting">1.13 Dual plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf3C">Surf3C</a></td><td valign="top"><a href="mgl_en_3.html#Surf3C-sample">3.4.12 Surf3C sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-surf3c">surf3c</a></td><td valign="top"><a href="mgl_en_1.html#Dual-plotting">1.13 Dual plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-surfa">surfa</a></td><td valign="top"><a href="mgl_en_1.html#Dual-plotting">1.13 Dual plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-SurfA">SurfA</a></td><td valign="top"><a href="mgl_en_3.html#SurfA-sample">3.4.2 SurfA sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-SurfC">SurfC</a></td><td valign="top"><a href="mgl_en_3.html#SurfC-sample">3.4.1 SurfC sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-surfc">surfc</a></td><td valign="top"><a href="mgl_en_1.html#Dual-plotting">1.13 Dual plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-swap">swap</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-T">T</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Tens">Tens</a></td><td valign="top"><a href="mgl_en_3.html#Tens-sample">3.1.3 Tens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-tens">tens</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Ternary">Ternary</a></td><td valign="top"><a href="mgl_en_3.html#Ternary-plot-sample">3.6.8 Ternary plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ternary">ternary</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Text">Text</a></td><td valign="top"><a href="mgl_en_3.html#Text-sample">3.1.20 Text sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-text">text</a></td><td valign="top"><a href="mgl_en_1.html#Text-printing">1.7 Text printing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-textmark">textmark</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-TextMark">TextMark</a></td><td valign="top"><a href="mgl_en_3.html#TextMark-sample">3.1.18 TextMark sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-Textual-formulas">Textual formulas</a></td><td valign="top"><a href="mgl_en_1.html#Textual-formulas">1.1.5 Textual formulas</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ticklen">ticklen</a></td><td valign="top"><a href="mgl_en_1.html#Default-sizes">1.2.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-tickstl">tickstl</a></td><td valign="top"><a href="mgl_en_1.html#Default-sizes">1.2.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-tile">tile</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Tile">Tile</a></td><td valign="top"><a href="mgl_en_3.html#Tile-sample">3.2.8 Tile sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-tiles">tiles</a></td><td valign="top"><a href="mgl_en_1.html#Dual-plotting">1.13 Dual plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-TileS">TileS</a></td><td valign="top"><a href="mgl_en_3.html#TileS-sample">3.4.3 TileS sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-title">title</a></td><td valign="top"><a href="mgl_en_1.html#Text-printing">1.7 Text printing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-tlabel">tlabel</a></td><td valign="top"><a href="mgl_en_1.html#Axis-and-Colorbar">1.8 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-torus">torus</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Torus">Torus</a></td><td valign="top"><a href="mgl_en_3.html#Torus-sample">3.1.21 Torus sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-trace">trace</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Traj">Traj</a></td><td valign="top"><a href="mgl_en_3.html#Traj-sample">3.4.5 Traj sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-traj">traj</a></td><td valign="top"><a href="mgl_en_1.html#Vector-fields">1.14 Vector fields</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-transform">transform</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-transforma">transforma</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-transparent">transparent</a></td><td valign="top"><a href="mgl_en_1.html#Transparency">1.2.1 Transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-transpose">transpose</a></td><td valign="top"><a href="mgl_en_1.html#Rearrange-data">1.19 Rearrange data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-TranspType">TranspType</a></td><td valign="top"><a href="mgl_en_3.html#Normal-transparency">3.5.11 Normal transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-transptype">transptype</a></td><td valign="top"><a href="mgl_en_1.html#Transparency">1.2.1 Transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-TranspType-1">TranspType</a></td><td valign="top"><a href="mgl_en_3.html#Glass_002dlike-transparency">3.5.12 Glass-like transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-TranspType-2">TranspType</a></td><td valign="top"><a href="mgl_en_3.html#Lamp_002dlike-transparency">3.5.13 Lamp-like transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-tricont">tricont</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-triplot">triplot</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Tube">Tube</a></td><td valign="top"><a href="mgl_en_3.html#Tube-sample">3.1.19 Tube sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-tube">tube</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_en_5.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_8.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_8.html
new file mode 100644
index 0000000..3c2a725
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_8.html
@@ -0,0 +1,238 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: Index: V &ndash; Z</title>
+
+<meta name="description" content="MGL script language for version 1.11: Index: V &ndash; Z">
+<meta name="keywords" content="MGL script language for version 1.11: Index: V &ndash; Z">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-2"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_7.html#index_split-1" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[ &gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Index: V &ndash; Z</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_en_5.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-V">V</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-var">var</a></td><td valign="top"><a href="mgl_en_1.html#Data-create">1.17 Data create</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-vect">vect</a></td><td valign="top"><a href="mgl_en_1.html#Vector-fields">1.14 Vector fields</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Vect">Vect</a></td><td valign="top"><a href="mgl_en_3.html#Vect-sample">3.4.6 Vect sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Vect-1">Vect</a></td><td valign="top"><a href="mgl_en_3.html#Vect-3D-sample">3.4.14 Vect 3D sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-VectC">VectC</a></td><td valign="top"><a href="mgl_en_3.html#VectC-sample">3.4.8 VectC sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-vectc">vectc</a></td><td valign="top"><a href="mgl_en_1.html#Vector-fields">1.14 Vector fields</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-VectC-1">VectC</a></td><td valign="top"><a href="mgl_en_3.html#VectC-3D-sample">3.4.16 VectC 3D sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-vectl">vectl</a></td><td valign="top"><a href="mgl_en_1.html#Vector-fields">1.14 Vector fields</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-VectL">VectL</a></td><td valign="top"><a href="mgl_en_3.html#VectL-sample">3.4.7 VectL sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-VectL-1">VectL</a></td><td valign="top"><a href="mgl_en_3.html#VectL-3D-sample">3.4.15 VectL 3D sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-W">W</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-write">write</a></td><td valign="top"><a href="mgl_en_1.html#Export-to-file">1.5 Export to file</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-X">X</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-xlabel">xlabel</a></td><td valign="top"><a href="mgl_en_1.html#Axis-and-Colorbar">1.8 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-xrange">xrange</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-xrange-3">xrange</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-xtick">xtick</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-Y">Y</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ylabel">ylabel</a></td><td valign="top"><a href="mgl_en_1.html#Axis-and-Colorbar">1.8 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-yrange">yrange</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-yrange-3">yrange</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ytick">ytick</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-Z">Z</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-zlabel">zlabel</a></td><td valign="top"><a href="mgl_en_1.html#Axis-and-Colorbar">1.8 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-zoom">zoom</a></td><td valign="top"><a href="mgl_en_1.html#Zooming">1.2.5 Zooming</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-zrange">zrange</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-zrange-3">zrange</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ztick">ztick</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_en_5.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_abt.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_abt.html
new file mode 100644
index 0000000..474dbc9
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_abt.html
@@ -0,0 +1,184 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: About This Document</title>
+
+<meta name="description" content="MGL script language for version 1.11: About This Document">
+<meta name="keywords" content="MGL script language for version 1.11: About This Document">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="SEC_About"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1>About This Document</h1>
+<p>
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+</p>
+<p>
+  The buttons in the navigation panels have the following meaning:
+</p>
+<table border="1">
+  <tr>
+    <th> Button </th>
+    <th> Name </th>
+    <th> Go to </th>
+    <th> From 1.2.3 go to</th>
+  </tr>
+  <tr>
+    <td align="center"> [ &lt; ] </td>
+    <td align="center">Back</td>
+    <td>Previous section in reading order</td>
+    <td>1.2.2</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &gt; ] </td>
+    <td align="center">Forward</td>
+    <td>Next section in reading order</td>
+    <td>1.2.4</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &lt;&lt; ] </td>
+    <td align="center">FastBack</td>
+    <td>Beginning of this chapter or previous chapter</td>
+    <td>1</td>
+  </tr>
+  <tr>
+    <td align="center"> [ Up ] </td>
+    <td align="center">Up</td>
+    <td>Up section</td>
+    <td>1.2</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &gt;&gt; ] </td>
+    <td align="center">FastForward</td>
+    <td>Next chapter</td>
+    <td>2</td>
+  </tr>
+  <tr>
+    <td align="center"> [Top] </td>
+    <td align="center">Top</td>
+    <td>Cover (top) of document</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [Contents] </td>
+    <td align="center">Contents</td>
+    <td>Table of contents</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [Index] </td>
+    <td align="center">Index</td>
+    <td>Index</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [ ? ] </td>
+    <td align="center">About</td>
+    <td>About (help)</td>
+    <td> &nbsp; </td>
+  </tr>
+</table>
+
+<p>
+  where the <strong> Example </strong> assumes that the current position is at <strong> Subsubsection One-Two-Three </strong> of a document of the following structure:
+</p>
+
+<ul>
+  <li> 1. Section One
+    <ul>
+      <li>1.1 Subsection One-One
+        <ul>
+          <li>...</li>
+        </ul>
+      </li>
+      <li>1.2 Subsection One-Two
+        <ul>
+          <li>1.2.1 Subsubsection One-Two-One</li>
+          <li>1.2.2 Subsubsection One-Two-Two</li>
+          <li>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp;
+            <strong>&lt;== Current Position </strong></li>
+          <li>1.2.4 Subsubsection One-Two-Four</li>
+        </ul>
+      </li>
+      <li>1.3 Subsection One-Three
+        <ul>
+          <li>...</li>
+        </ul>
+      </li>
+      <li>1.4 Subsection One-Four</li>
+    </ul>
+  </li>
+</ul>
+
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_toc.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_toc.html
new file mode 100644
index 0000000..2566415
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/en/mgl_en.html/mgl_en_toc.html
@@ -0,0 +1,311 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: Table of Contents</title>
+
+<meta name="description" content="MGL script language for version 1.11: Table of Contents">
+<meta name="keywords" content="MGL script language for version 1.11: Table of Contents">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="SEC_Contents"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1>Table of Contents</h1>
+<div class="contents">
+
+<ul class="toc">
+  <li><a name="toc-MGL-language" href="mgl_en_1.html#MGL-interface">1. MGL language</a>
+  <ul class="toc">
+    <li><a name="toc-General-concepts-1" href="mgl_en_1.html#General-concepts">1.1 General concepts</a>
+    <ul class="toc">
+      <li><a name="toc-Coordinate-axes-1" href="mgl_en_1.html#Coordinate-axes">1.1.1 Coordinate axes</a></li>
+      <li><a name="toc-Line-styles-1" href="mgl_en_1.html#Line-styles">1.1.2 Line styles</a></li>
+      <li><a name="toc-Color-scheme-1" href="mgl_en_1.html#Color-scheme">1.1.3 Color scheme</a></li>
+      <li><a name="toc-Font-styles-1" href="mgl_en_1.html#Font-styles">1.1.4 Font styles</a></li>
+      <li><a name="toc-Textual-formulas-1" href="mgl_en_1.html#Textual-formulas">1.1.5 Textual formulas</a></li>
+    </ul></li>
+    <li><a name="toc-Graphics-setup-1" href="mgl_en_1.html#Graphics-setup">1.2 Graphics setup</a>
+    <ul class="toc">
+      <li><a name="toc-Transparency-1" href="mgl_en_1.html#Transparency">1.2.1 Transparency</a></li>
+      <li><a name="toc-Lighting-1" href="mgl_en_1.html#Lighting">1.2.2 Lighting</a></li>
+      <li><a name="toc-Fog-1" href="mgl_en_1.html#Fog">1.2.3 Fog</a></li>
+      <li><a name="toc-Default-sizes-1" href="mgl_en_1.html#Default-sizes">1.2.4 Default sizes</a></li>
+      <li><a name="toc-Zooming-1" href="mgl_en_1.html#Zooming">1.2.5 Zooming</a></li>
+      <li><a name="toc-Cutting-1" href="mgl_en_1.html#Cutting">1.2.6 Cutting</a></li>
+      <li><a name="toc-Other-settings-1" href="mgl_en_1.html#Other-settings">1.2.7 Other settings</a></li>
+    </ul></li>
+    <li><a name="toc-Axis-settings-1" href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></li>
+    <li><a name="toc-Transformation-matrix-1" href="mgl_en_1.html#Transformation-matrix">1.4 Transformation matrix</a></li>
+    <li><a name="toc-Export-to-file-1" href="mgl_en_1.html#Export-to-file">1.5 Export to file</a></li>
+    <li><a name="toc-Primitives-drawing-1" href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></li>
+    <li><a name="toc-Text-printing-1" href="mgl_en_1.html#Text-printing">1.7 Text printing</a></li>
+    <li><a name="toc-Axis-and-Colorbar-1" href="mgl_en_1.html#Axis-and-Colorbar">1.8 Axis and Colorbar</a></li>
+    <li><a name="toc-Legend-1" href="mgl_en_1.html#Legend">1.9 Legend</a></li>
+    <li><a name="toc-1D-plotting-1" href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></li>
+    <li><a name="toc-2D-plotting-1" href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></li>
+    <li><a name="toc-3D-plotting-1" href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></li>
+    <li><a name="toc-Dual-plotting-1" href="mgl_en_1.html#Dual-plotting">1.13 Dual plotting</a></li>
+    <li><a name="toc-Vector-fields-1" href="mgl_en_1.html#Vector-fields">1.14 Vector fields</a></li>
+    <li><a name="toc-Other-plotting-1" href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></li>
+    <li><a name="toc-Nonlinear-fitting-1" href="mgl_en_1.html#Nonlinear-fitting">1.16 Nonlinear fitting</a></li>
+    <li><a name="toc-Data-create-1" href="mgl_en_1.html#Data-create">1.17 Data create</a></li>
+    <li><a name="toc-Data-filling-1" href="mgl_en_1.html#Data-filling">1.18 Data filling</a></li>
+    <li><a name="toc-Rearrange-data-1" href="mgl_en_1.html#Rearrange-data">1.19 Rearrange data</a></li>
+    <li><a name="toc-File-I_002fO-1" href="mgl_en_1.html#File-I_002fO">1.20 File I/O</a></li>
+    <li><a name="toc-Make-another-data-1" href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></li>
+    <li><a name="toc-Change-data-1" href="mgl_en_1.html#Change-data">1.22 Change data</a></li>
+    <li><a name="toc-Operators-1" href="mgl_en_1.html#Operators">1.23 Operators</a></li>
+    <li><a name="toc-Program-flow-1" href="mgl_en_1.html#Program-flow">1.24 Program flow</a></li>
+    <li><a name="toc-Command-options-1" href="mgl_en_1.html#Command-options">1.25 Command options</a></li>
+    <li><a name="toc-Suffixes-for-variable" href="mgl_en_1.html#Suffixes">1.26 Suffixes for variable</a></li>
+    <li><a name="toc-Utilities-for-parsing-MGL" href="mgl_en_1.html#Utilities">1.27 Utilities for parsing MGL</a></li>
+  </ul></li>
+  <li><a name="toc-MathGL-examples" href="mgl_en_2.html#Examples">2. MathGL examples</a>
+  <ul class="toc">
+    <li><a name="toc-Basic-usage-1" href="mgl_en_2.html#Basic-usage">2.1 Basic usage</a></li>
+    <li><a name="toc-Advanced-usage-1" href="mgl_en_2.html#Advanced-usage">2.2 Advanced usage</a>
+    <ul class="toc">
+      <li><a name="toc-Subplots-1" href="mgl_en_2.html#Subplots">2.2.1 Subplots</a></li>
+      <li><a name="toc-Axis-and-grids-1" href="mgl_en_2.html#Axis-and-grids">2.2.2 Axis and grids</a></li>
+      <li><a name="toc-Curvilinear-coordinates-1" href="mgl_en_2.html#Curvilinear-coordinates">2.2.3 Curvilinear coordinates</a></li>
+      <li><a name="toc-Text-printing-example-1" href="mgl_en_2.html#Text-printing-example">2.2.4 Text printing example</a></li>
+    </ul></li>
+    <li><a name="toc-Data-handling-1" href="mgl_en_2.html#Data-handling">2.3 Data handling</a>
+    <ul class="toc">
+      <li><a name="toc-Array-creation-1" href="mgl_en_2.html#Array-creation">2.3.1 Array creation</a></li>
+      <li><a name="toc-Data-changing-1" href="mgl_en_2.html#Data-changing">2.3.2 Data changing</a></li>
+    </ul></li>
+    <li><a name="toc-Data-plotting-1" href="mgl_en_2.html#Data-plotting">2.4 Data plotting</a>
+    <ul class="toc">
+      <li><a name="toc-Plots-for-1D-data-1" href="mgl_en_2.html#Plots-for-1D-data">2.4.1 Plots for 1D data</a></li>
+      <li><a name="toc-Plots-for-2D-data-1" href="mgl_en_2.html#Plots-for-2D-data">2.4.2 Plots for 2D data</a></li>
+      <li><a name="toc-Plots-for-3D-data-1" href="mgl_en_2.html#Plots-for-3D-data">2.4.3 Plots for 3D data</a></li>
+      <li><a name="toc-Surface-transparency-1" href="mgl_en_2.html#Surface-transparency">2.4.4 Surface transparency</a></li>
+    </ul></li>
+    <li><a name="toc-Hints-1" href="mgl_en_2.html#Hints">2.5 Hints</a>
+    <ul class="toc">
+      <li><a name="toc-_0060_0060Compound_0027_0027-graphics-1" href="mgl_en_2.html#g_t_0060_0060Compound_0027_0027-graphics">2.5.1 &ldquo;Compound&rdquo; graphics</a></li>
+      <li><a name="toc-Two-axes-in-one-plot-1" href="mgl_en_2.html#Two-axes-in-one-plot">2.5.2 Two axes in one plot</a></li>
+      <li><a name="toc-Titles-for-the-plot-1" href="mgl_en_2.html#Titles-for-the-plot">2.5.3 Titles for the plot</a></li>
+      <li><a name="toc-Changing-of-the-color-range-1" href="mgl_en_2.html#Changing-of-the-color-range">2.5.4 Changing of the color range</a></li>
+      <li><a name="toc-Management-of-a-point-cutting-1" href="mgl_en_2.html#Management-of-a-point-cutting">2.5.5 Management of a point cutting</a></li>
+      <li><a name="toc-Vector-field-visualization-1" href="mgl_en_2.html#Vector-field-visualization">2.5.6 Vector field visualization</a></li>
+      <li><a name="toc-Several-light-sources-1" href="mgl_en_2.html#Several-light-sources">2.5.7 Several light sources</a></li>
+      <li><a name="toc-CutMin-and-CutMax-features-1" href="mgl_en_2.html#CutMin-and-CutMax-features">2.5.8 CutMin and CutMax features</a></li>
+      <li><a name="toc-Mapping-visualization-1" href="mgl_en_2.html#Mapping-visualization">2.5.9 Mapping visualization</a></li>
+      <li><a name="toc-Log_002dscaled-plot-1" href="mgl_en_2.html#Log_002dscaled-plot">2.5.10 Log-scaled plot</a></li>
+      <li><a name="toc-Nonlinear-fitting-hints-1" href="mgl_en_2.html#Nonlinear-fitting-hints">2.5.11 Nonlinear fitting hints</a></li>
+      <li><a name="toc-PDE-solving-hints-1" href="mgl_en_2.html#PDE-solving-hints">2.5.12 PDE solving hints</a></li>
+      <li><a name="toc-Stereo-image-1" href="mgl_en_2.html#Stereo-image">2.5.13 Stereo image</a></li>
+    </ul>
+</li>
+  </ul></li>
+  <li><a name="toc-Samples-1" href="mgl_en_3.html#Samples">3. Samples</a>
+  <ul class="toc">
+    <li><a name="toc-1D-plotting-samples-1" href="mgl_en_3.html#g_t1D-plotting-samples">3.1 1D plotting samples</a>
+    <ul class="toc">
+      <li><a name="toc-Plot-sample-1" href="mgl_en_3.html#Plot-sample">3.1.1 Plot sample</a></li>
+      <li><a name="toc-Radar-sample-1" href="mgl_en_3.html#Radar-sample">3.1.2 Radar sample</a></li>
+      <li><a name="toc-Tens-sample-1" href="mgl_en_3.html#Tens-sample">3.1.3 Tens sample</a></li>
+      <li><a name="toc-Area-sample-1" href="mgl_en_3.html#Area-sample">3.1.4 Area sample</a></li>
+      <li><a name="toc-Area-with-gradient-filling-sample" href="mgl_en_3.html#Area-gradient-sample">3.1.5 Area with gradient filling sample</a></li>
+      <li><a name="toc-Bars-sample-1" href="mgl_en_3.html#Bars-sample">3.1.6 Bars sample</a></li>
+      <li><a name="toc-Bars-2-colors-sample-1" href="mgl_en_3.html#Bars-2-colors-sample">3.1.7 Bars 2 colors sample</a></li>
+      <li><a name="toc-Bars-above-sample-1" href="mgl_en_3.html#Bars-above-sample">3.1.8 Bars above sample</a></li>
+      <li><a name="toc-Bars-fall-sample-1" href="mgl_en_3.html#Bars-fall-sample">3.1.9 Bars fall sample</a></li>
+      <li><a name="toc-Barh-sample-1" href="mgl_en_3.html#Barh-sample">3.1.10 Barh sample</a></li>
+      <li><a name="toc-Step-sample-1" href="mgl_en_3.html#Step-sample">3.1.11 Step sample</a></li>
+      <li><a name="toc-Stem-sample-1" href="mgl_en_3.html#Stem-sample">3.1.12 Stem sample</a></li>
+      <li><a name="toc-Region-sample-1" href="mgl_en_3.html#Region-sample">3.1.13 Region sample</a></li>
+      <li><a name="toc-Region-gradient-sample-1" href="mgl_en_3.html#Region-gradient-sample">3.1.14 Region gradient sample</a></li>
+      <li><a name="toc-Error-sample-1" href="mgl_en_3.html#Error-sample">3.1.15 Error sample</a></li>
+      <li><a name="toc-BoxPlot-sample-1" href="mgl_en_3.html#BoxPlot-sample">3.1.16 BoxPlot sample</a></li>
+      <li><a name="toc-Mark-sample-1" href="mgl_en_3.html#Mark-sample">3.1.17 Mark sample</a></li>
+      <li><a name="toc-TextMark-sample-1" href="mgl_en_3.html#TextMark-sample">3.1.18 TextMark sample</a></li>
+      <li><a name="toc-Tube-sample-1" href="mgl_en_3.html#Tube-sample">3.1.19 Tube sample</a></li>
+      <li><a name="toc-Text-sample-1" href="mgl_en_3.html#Text-sample">3.1.20 Text sample</a></li>
+      <li><a name="toc-Torus-sample-1" href="mgl_en_3.html#Torus-sample">3.1.21 Torus sample</a></li>
+      <li><a name="toc-Chart-sample-1" href="mgl_en_3.html#Chart-sample">3.1.22 Chart sample</a></li>
+      <li><a name="toc-Pie-chart-sample-1" href="mgl_en_3.html#Pie-chart-sample">3.1.23 Pie chart sample</a></li>
+      <li><a name="toc-Ring-chart-sample-1" href="mgl_en_3.html#Ring-chart-sample">3.1.24 Ring chart sample</a></li>
+    </ul></li>
+    <li><a name="toc-2D-plotting-samples-1" href="mgl_en_3.html#g_t2D-plotting-samples">3.2 2D plotting samples</a>
+    <ul class="toc">
+      <li><a name="toc-Surf-sample-1" href="mgl_en_3.html#Surf-sample">3.2.1 Surf sample</a></li>
+      <li><a name="toc-Transparent-surface-sample-1" href="mgl_en_3.html#Transparent-surface-sample">3.2.2 Transparent surface sample</a></li>
+      <li><a name="toc-Surface-in-fog-sample-1" href="mgl_en_3.html#Surface-in-fog-sample">3.2.3 Surface in fog sample</a></li>
+      <li><a name="toc-Sharp-colors-sample-1" href="mgl_en_3.html#Sharp-colors-sample">3.2.4 Sharp colors sample</a></li>
+      <li><a name="toc-Mesh-sample-1" href="mgl_en_3.html#Mesh-sample">3.2.5 Mesh sample</a></li>
+      <li><a name="toc-Fall-sample-1" href="mgl_en_3.html#Fall-sample">3.2.6 Fall sample</a></li>
+      <li><a name="toc-Belt-sample-1" href="mgl_en_3.html#Belt-sample">3.2.7 Belt sample</a></li>
+      <li><a name="toc-Tile-sample-1" href="mgl_en_3.html#Tile-sample">3.2.8 Tile sample</a></li>
+      <li><a name="toc-Boxs-sample-1" href="mgl_en_3.html#Boxs-sample">3.2.9 Boxs sample</a></li>
+      <li><a name="toc-Dens-sample-1" href="mgl_en_3.html#Dens-sample">3.2.10 Dens sample</a></li>
+      <li><a name="toc-Cont-sample-1" href="mgl_en_3.html#Cont-sample">3.2.11 Cont sample</a></li>
+      <li><a name="toc-ContF-sample-1" href="mgl_en_3.html#ContF-sample">3.2.12 ContF sample</a></li>
+      <li><a name="toc-ContD-sample-1" href="mgl_en_3.html#ContD-sample">3.2.13 ContD sample</a></li>
+      <li><a name="toc-Axial-sample-1" href="mgl_en_3.html#Axial-sample">3.2.14 Axial sample</a></li>
+      <li><a name="toc-Grad-sample-1" href="mgl_en_3.html#Grad-sample">3.2.15 Grad sample</a></li>
+    </ul></li>
+    <li><a name="toc-3D-plotting-samples-1" href="mgl_en_3.html#g_t3D-plotting-samples">3.3 3D plotting samples</a>
+    <ul class="toc">
+      <li><a name="toc-Surf3-sample-1" href="mgl_en_3.html#Surf3-sample">3.3.1 Surf3 sample</a></li>
+      <li><a name="toc-Cloud-sample-1" href="mgl_en_3.html#Cloud-sample">3.3.2 Cloud sample</a></li>
+      <li><a name="toc-CloudP-sample-1" href="mgl_en_3.html#CloudP-sample">3.3.3 CloudP sample</a></li>
+      <li><a name="toc-Dens3-sample-1" href="mgl_en_3.html#Dens3-sample">3.3.4 Dens3 sample</a></li>
+      <li><a name="toc-Cont3-sample-1" href="mgl_en_3.html#Cont3-sample">3.3.5 Cont3 sample</a></li>
+      <li><a name="toc-ContF3-sample-1" href="mgl_en_3.html#ContF3-sample">3.3.6 ContF3 sample</a></li>
+      <li><a name="toc-Cont-projection-sample-1" href="mgl_en_3.html#Cont-projection-sample">3.3.7 Cont projection sample</a></li>
+      <li><a name="toc-Dens-projection-sample-1" href="mgl_en_3.html#Dens-projection-sample">3.3.8 Dens projection sample</a></li>
+      <li><a name="toc-CutMinMax-sample-1" href="mgl_en_3.html#CutMinMax-sample">3.3.9 CutMinMax sample</a></li>
+      <li><a name="toc-_0060_0060Isocaps_0027_0027-sample" href="mgl_en_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; sample</a></li>
+      <li><a name="toc-CutOff-sample-1" href="mgl_en_3.html#CutOff-sample">3.3.11 CutOff sample</a></li>
+    </ul></li>
+    <li><a name="toc-Dual-plotting-samples-1" href="mgl_en_3.html#Dual-plotting-samples">3.4 Dual plotting samples</a>
+    <ul class="toc">
+      <li><a name="toc-SurfC-sample-1" href="mgl_en_3.html#SurfC-sample">3.4.1 SurfC sample</a></li>
+      <li><a name="toc-SurfA-sample-1" href="mgl_en_3.html#SurfA-sample">3.4.2 SurfA sample</a></li>
+      <li><a name="toc-TileS-sample-1" href="mgl_en_3.html#TileS-sample">3.4.3 TileS sample</a></li>
+      <li><a name="toc-Map-sample-1" href="mgl_en_3.html#Map-sample">3.4.4 Map sample</a></li>
+      <li><a name="toc-Traj-sample-1" href="mgl_en_3.html#Traj-sample">3.4.5 Traj sample</a></li>
+      <li><a name="toc-Vect-sample-1" href="mgl_en_3.html#Vect-sample">3.4.6 Vect sample</a></li>
+      <li><a name="toc-VectL-sample-1" href="mgl_en_3.html#VectL-sample">3.4.7 VectL sample</a></li>
+      <li><a name="toc-VectC-sample-1" href="mgl_en_3.html#VectC-sample">3.4.8 VectC sample</a></li>
+      <li><a name="toc-Flow-sample-1" href="mgl_en_3.html#Flow-sample">3.4.9 Flow sample</a></li>
+      <li><a name="toc-Pipe-sample-1" href="mgl_en_3.html#Pipe-sample">3.4.10 Pipe sample</a></li>
+      <li><a name="toc-Dew-sample-1" href="mgl_en_3.html#Dew-sample">3.4.11 Dew sample</a></li>
+      <li><a name="toc-Surf3C-sample-1" href="mgl_en_3.html#Surf3C-sample">3.4.12 Surf3C sample</a></li>
+      <li><a name="toc-Surf3A-sample-1" href="mgl_en_3.html#Surf3A-sample">3.4.13 Surf3A sample</a></li>
+      <li><a name="toc-Vect-3D-sample-1" href="mgl_en_3.html#Vect-3D-sample">3.4.14 Vect 3D sample</a></li>
+      <li><a name="toc-VectL-3D-sample-1" href="mgl_en_3.html#VectL-3D-sample">3.4.15 VectL 3D sample</a></li>
+      <li><a name="toc-VectC-3D-sample-1" href="mgl_en_3.html#VectC-3D-sample">3.4.16 VectC 3D sample</a></li>
+      <li><a name="toc-Flow-3D-sample-1" href="mgl_en_3.html#Flow-3D-sample">3.4.17 Flow 3D sample</a></li>
+      <li><a name="toc-Pipe-3D-sample-1" href="mgl_en_3.html#Pipe-3D-sample">3.4.18 Pipe 3D sample</a></li>
+      <li><a name="toc-Crust-sample-1" href="mgl_en_3.html#Crust-sample">3.4.19 Crust sample</a></li>
+      <li><a name="toc-Dots-sample-1" href="mgl_en_3.html#Dots-sample">3.4.20 Dots sample</a></li>
+    </ul></li>
+    <li><a name="toc-Basic-features-1" href="mgl_en_3.html#Basic-features">3.5 Basic features</a>
+    <ul class="toc">
+      <li><a name="toc-1D-plot-sample-1" href="mgl_en_3.html#g_t1D-plot-sample">3.5.1 1D plot sample</a></li>
+      <li><a name="toc-2D-plot-sample-1" href="mgl_en_3.html#g_t2D-plot-sample">3.5.2 2D plot sample</a></li>
+      <li><a name="toc-3D-plot-sample-1" href="mgl_en_3.html#g_t3D-plot-sample">3.5.3 3D plot sample</a></li>
+      <li><a name="toc-Line-styles-sample-1" href="mgl_en_3.html#Line-styles-sample">3.5.4 Line styles sample</a></li>
+      <li><a name="toc-Arrow-styles-sample-1" href="mgl_en_3.html#Arrow-styles-sample">3.5.5 Arrow styles sample</a></li>
+      <li><a name="toc-Text-styles-sample-1" href="mgl_en_3.html#Text-styles-sample">3.5.6 Text styles sample</a></li>
+      <li><a name="toc-TeX-parsing-sample-1" href="mgl_en_3.html#TeX-parsing-sample">3.5.7 TeX parsing sample</a></li>
+      <li><a name="toc-Font-faces-sample-1" href="mgl_en_3.html#Font-faces-sample">3.5.8 Font faces sample</a></li>
+      <li><a name="toc-Colors-sample-1" href="mgl_en_3.html#Colors-sample">3.5.9 Colors sample</a></li>
+      <li><a name="toc-Color-schemes-sample-1" href="mgl_en_3.html#Color-schemes-sample">3.5.10 Color schemes sample</a></li>
+      <li><a name="toc-Normal-transparency-1" href="mgl_en_3.html#Normal-transparency">3.5.11 Normal transparency</a></li>
+      <li><a name="toc-Glass_002dlike-transparency-1" href="mgl_en_3.html#Glass_002dlike-transparency">3.5.12 Glass-like transparency</a></li>
+      <li><a name="toc-Lamp_002dlike-transparency-1" href="mgl_en_3.html#Lamp_002dlike-transparency">3.5.13 Lamp-like transparency</a></li>
+    </ul></li>
+    <li><a name="toc-Additional-features-1" href="mgl_en_3.html#Additional-features">3.6 Additional features</a>
+    <ul class="toc">
+      <li><a name="toc-Legend-sample-1" href="mgl_en_3.html#Legend-sample">3.6.1 Legend sample</a></li>
+      <li><a name="toc-Adding-mesh-sample-1" href="mgl_en_3.html#Adding-mesh-sample">3.6.2 Adding mesh sample</a></li>
+      <li><a name="toc-Surf-_0026-Cont-sample-1" href="mgl_en_3.html#Surf-_0026-Cont-sample">3.6.3 Surf &amp; Cont sample</a></li>
+      <li><a name="toc-Flow-_0026-Dens-sample-1" href="mgl_en_3.html#Flow-_0026-Dens-sample">3.6.4 Flow &amp; Dens sample</a></li>
+      <li><a name="toc-Several-light-sample-1" href="mgl_en_3.html#Several-light-sample">3.6.5 Several light sample</a></li>
+      <li><a name="toc-Mirrored-surface-sample-1" href="mgl_en_3.html#Mirrored-surface-sample">3.6.6 Mirrored surface sample</a></li>
+      <li><a name="toc-Cont-with-labels-sample-1" href="mgl_en_3.html#Cont-with-labels-sample">3.6.7 Cont with labels sample</a></li>
+      <li><a name="toc-Ternary-plot-sample-1" href="mgl_en_3.html#Ternary-plot-sample">3.6.8 Ternary plot sample</a></li>
+      <li><a name="toc-Coloring-by-coordinates-sample-1" href="mgl_en_3.html#Coloring-by-coordinates-sample">3.6.9 Coloring by coordinates sample</a></li>
+      <li><a name="toc-Drops-sample-1" href="mgl_en_3.html#Drops-sample">3.6.10 Drops sample</a></li>
+      <li><a name="toc-Molecules-drawing-sample-1" href="mgl_en_3.html#Molecules-drawing-sample">3.6.11 Molecules drawing sample</a></li>
+    </ul></li>
+    <li><a name="toc-Advanced-features-1" href="mgl_en_3.html#Advanced-features">3.7 Advanced features</a>
+    <ul class="toc">
+      <li><a name="toc-Curvelinear-coorinates-sample-1" href="mgl_en_3.html#Curvelinear-coorinates-sample">3.7.1 Curvelinear coorinates sample</a></li>
+      <li><a name="toc-2_002daxes-sample-1" href="mgl_en_3.html#g_t2_002daxes-sample">3.7.2 2-axes sample</a></li>
+      <li><a name="toc-Semi_002dlog-sample-1" href="mgl_en_3.html#Semi_002dlog-sample">3.7.3 Semi-log sample</a></li>
+      <li><a name="toc-Log_002dlog-sample-1" href="mgl_en_3.html#Log_002dlog-sample">3.7.4 Log-log sample</a></li>
+      <li><a name="toc-Fitting-sample-1" href="mgl_en_3.html#Fitting-sample">3.7.5 Fitting sample</a></li>
+      <li><a name="toc-Envelop-sample-1" href="mgl_en_3.html#Envelop-sample">3.7.6 Envelop sample</a></li>
+      <li><a name="toc-Sew-sample-1" href="mgl_en_3.html#Sew-sample">3.7.7 Sew sample</a></li>
+      <li><a name="toc-STFA-sample-1" href="mgl_en_3.html#STFA-sample">3.7.8 STFA sample</a></li>
+      <li><a name="toc-PDE-sample-1" href="mgl_en_3.html#PDE-sample">3.7.9 PDE sample</a></li>
+      <li><a name="toc-Beam-tracing-sample-1" href="mgl_en_3.html#Beam-tracing-sample">3.7.10 Beam tracing sample</a></li>
+      <li><a name="toc-Parser-sample-1" href="mgl_en_3.html#Parser-sample">3.7.11 Parser sample</a></li>
+      <li><a name="toc-Tick-values-sample" href="mgl_en_3.html#Manual-ticks-sample">3.7.12 Tick values sample</a></li>
+      <li><a name="toc-ColumnPlot-sample-1" href="mgl_en_3.html#ColumnPlot-sample">3.7.13 ColumnPlot sample</a></li>
+      <li><a name="toc-StickPlot-sample-1" href="mgl_en_3.html#StickPlot-sample">3.7.14 StickPlot sample</a></li>
+      <li><a name="toc-Stereo-image-sample-1" href="mgl_en_3.html#Stereo-image-sample">3.7.15 Stereo image sample</a></li>
+    </ul>
+</li>
+  </ul></li>
+  <li><a name="toc-GNU-Free-Documentation-License" href="mgl_en_4.html#Copying-This-Manual">A. GNU Free Documentation License</a></li>
+  <li><a name="toc-Index-1" href="mgl_en_5.html#Index">Index</a></li>
+</ul>
+</div>
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru.html
new file mode 100644
index 0000000..366166a
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: MathGL</title>
+
+<meta name="description" content="MathGL 1.11: MathGL">
+<meta name="keywords" content="MathGL 1.11: MathGL">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Top"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL"></a>
+<h1 class="settitle">MathGL</h1>
+
+<p>Это документация для MathGL (версии 1.11) &ndash; библиотеки классов и функций для построения научной графики. Пожалуйста сообщайте о любых ошибках в этом руководстве на <a href="mailto:mathgl.abalakin at gmail.org">mathgl.abalakin at gmail.org</a>. Дополнительную информацию о MathGL можно найти на домашней странице проекта <a href="http://mathgl.sourceforge.net/">http://mathgl.sourceforge.net/</a>.
+</p>
+<p>Copyright &copy; 2009 Алексей Балакин. 
+</p>
+<blockquote><p>Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being &ldquo;A GNU Manual,&rdquo;
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled &ldquo;GNU Free Documentation
+License.&rdquo;
+</p>
+<p>(a) The FSF&rsquo;s Back-Cover Text is: &ldquo;You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom.&rdquo;
+</p></blockquote>
+
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="mathgl_ru_1.html#Overview">1. Обзор MathGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_2.html#Examples">2. MathGL examples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_3.html#MathGL-core">3. Ядро MathGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_4.html#Plotter-classes">4. Классы для отрисовки</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_5.html#Widget-classes">5. &ldquo;Оконные&rdquo; классы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_6.html#mglData-class">6. Класс mglData</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_7.html#Other-classes">7. Other classes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_8.html#MGL-interface">8. Язык MGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_9.html#Samples">9. Примеры использования MathGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_10.html#TeX_002dlike-symbols">A. Символы TeX</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_11.html#Copying-This-Manual">B. GNU Free Documentation License</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_12.html#Index">Индекс</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_1.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_1.html
new file mode 100644
index 0000000..e97a614
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_1.html
@@ -0,0 +1,892 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: 1. Обзор MathGL</title>
+
+<meta name="description" content="MathGL 1.11: 1. Обзор MathGL">
+<meta name="keywords" content="MathGL 1.11: 1. Обзор MathGL">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Overview"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Why-I-have-written-MathGL_003f" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+
+<a name="g_t_041e_0431_0437_043e_0440-MathGL"></a>
+<h1 class="chapter">1. Обзор MathGL</h1>
+
+<a name="index-_041e_0431_0437_043e_0440-MathGL"></a>
+
+<p>MathGL это ...
+</p><ul>
+<li>
+библиотека для создания высококачественной научной графики под Linux и Windows;
+</li><li>
+библиотека для быстрого обработки и отображения больших массивов данных;
+</li><li>
+библиотека для работы в оконном и консольном режимах;
+</li><li>
+библиотека с большим набором базовых типов графиков.
+</li></ul>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Why-I-have-written-MathGL_003f">1.1 Зачем написана MathGL?</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#MathGL-features">1.2 Возможности MathGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Installation-and-using">1.3 Установка MathGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#General-concepts">1.4 Основные принципы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#FAQ">1.5 FAQ</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Interfaces">1.6 Интерфейсы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Thanks">1.7 Благодарности</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Why-I-have-written-MathGL_003f"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Overview" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0417_0430_0447e_043c-_043d_0430_043f_0438_0441_0430_043d_0430-MathGL_003f"></a>
+<h2 class="section">1.1 Зачем написана MathGL?</h2>
+
+<p>Код для создания качественной научной графики на различных платформах. Код для быстрой обработки и отображения больших массивов данных. Код для работы в графическом и консольном режимах и легкого интегрирования в другие программы. Код с большим обновляемым набором графиков и инструментами обработки данных. Именно такого кода мне не хватало в последние годы при работе на персональных компьютерах и на кластерах. И именно такой код я постарался создать в библиотеке MathGL.
+</p>
+<p>На данный момент (версия 1.11) MathGL это более 20000 строк кода, более 40 основных типов графиков для одно-, двух- и трехмерных массивов, возможность экспорта в растровые и векторные (EPS или SVG) файлы, интерфейс для OpenGL и возможность запуска в консольном режиме, функции для обработки данных и даже простейший командный (интерпретируемый) язык MGL для упрощения построения графиков. Кроме того, есть несколько типов прозрачности, гладкое освещение, векторные шрифты, TeX-ие команды в надписях, произвольные криволинейные системы координат и прочие полезные мелочи (см. раздел pictures на <a href="http://mathgl.sf.net/">домашней странице</a>). Ну, и, естественно, полная переносимость библиотеки и ее свободное распространение под лицензией GPL v.2.0 или более поздней.
+</p>
+<hr size="6">
+<a name="MathGL-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Why-I-have-written-MathGL_003f" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Installation-and-using" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0412_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438-MathGL"></a>
+<h2 class="section">1.2 Возможности MathGL</h2>
+
+<p>Библиотека MathGL позволяет строить широкий класс графиков, включая:
+</p><ul>
+<li>
+рисование одномерных массивов (Plot, Area, Bars, Step, Stem, Torus, Chart, Error, Tube, Mark, see section <a href="mathgl_ru_3.html#g_t1D-plotting">1D графики</a>);
+
+</li><li>
+рисование двумерных массивов (Mesh, Surf, Dens, Cont, ContF, Boxs, Axial, Fall, Belt, Tile, see section <a href="mathgl_ru_3.html#g_t2D-plotting">2D графики</a>);
+
+</li><li>
+рисование трехмерных массивов (Surf3, Dens3, Cont3, ContF3, Cloud-like, see section <a href="mathgl_ru_3.html#g_t3D-plotting">3D графики</a>);
+
+</li><li>
+рисование нескольких связанных массивов: векторные поля Vect и VectC, линии тока Flow, точечное отображение Map, поверхности с прозрачностью или цветом, определяемым другим массивом SurfA, SurfC, Surf3A, Surf3C (see section <a href="mathgl_ru_3.html#Dual-plotting">Парные графики</a>);
+
+</li><li>
+и другие (см. see section <a href="mathgl_ru_3.html#MathGL-core">Ядро MathGL</a>).
+</li></ul>
+
+<p>Фактически, я постарался реализовать все известные мне типы научных графиков. Список графиков постоянно пополняется, и если Вам нужен какой-то новый вариант, пишите на <a href="mailto:mathgl.abalakin at gmail.com">e-mail</a>, и в новой версии библиотеки этот график появится.
+</p>
+<p>Я постарался сделать графики максимально красивыми &ndash; поверхности могут быть прозрачными и освещены произвольно расположенными источниками света (максимальное их количество 10). Большинство функций рисования имеет два варианта: простой для быстрого построения картинки и более сложный для детальной настройки отображения, включающего в том числе возможность параметрического задания всех массивов. Получившееся изображение можно сохранить в растровом (с помощью классов mglGraphZB, mglGraphGL) формате PNG, JPEG, GIF, TIFF или BMP; в векторном EPS или SVG формате (с помощью класса mglGraphPS) и в IDTF формате (с помощью класса mglGraphIDTF), который можно конвертировать в U3D формат.
+</p>
+<p>Все надписи выводятся векторным шрифтом, что обеспечивает их хорошую масштабируемость и переносимость. Текст может содержать команды для большинства ТеХ-их символов, изменения положения (верхний и нижний индексы) и стиля шрифта внутри строки текста (see section <a href="mathgl_ru_7.html#mglFont-class">mglFont class</a>). Текст меток поворачивается вместе с осями. На график можно вывести описание кривых (легенду) и поместить надпись в произвольную точку экрана или пустить ее вдоль кривой. Поддерживаются произвольные кодировки текста (с помощью стандартной функции <code>setlocale()</code>) и текст в кодировке UTF-16.
+</p>
+<p>Для представления данных используется специальный класс mglData (see section <a href="mathgl_ru_6.html#mglData-class">Класс mglData</a>). Помимо безопасного создания и удаления массивов, он включает функции по их обработке (дифференцированию, интегрированию, сглаживанию, интерполяции и т.д.) и чтению текстового файла с автоматическим определением размеров данных. Класс mglData позволяет работать с массивами размерности вплоть до 3 (массивы, зависящие от трех независимых индексов <em>a_ijk</em>). Использование массивов с большим числом размерностей нецелесообразно, поскольку я не представляю, как их можно отобразить на экране. Заполнение или изменение значений массива можно выполнить как вручную, так и по формуле, заданной текстовой строкой.
+</p>
+<p>Для <em>быстрого</em> вычисления значения выражения, заданного текстовой строкой, используется класс mglFormula (see section <a href="mathgl_ru_7.html#mglFormula-class">mglFormula class</a>). Он основан на компиляции строки в древоподобную структуру при создании экземпляра класса. На этапе вычисления происходит быстрый обход дерева с выдачей результата для конкретных значений переменных. Помимо изменения значений массива данных, текстовые формулы используются для рисования в <em>произвольной</em> криволинейной системе координат. Набор таких координат ограничивается только фантазией пользователя, а не фиксированным числом (типа полярной, параболической, цилиндрической и т.д.).
+</p>
+<hr size="6">
+<a name="Installation-and-using"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MathGL-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0423_0441_0442_0430_043d_043e_0432_043a_0430-MathGL"></a>
+<h2 class="section">1.3 Установка MathGL</h2>
+
+<p>Установка библиотеки возможна тремя способами.
+</p><ol>
+<li>
+Скомпилировать библиотеку непосредственно из исходных файлов. С библиотекой поставляется стандартный скрипт для autoconf/automake. Для его запуска достаточно в командной строке выполнить 3 команды: сначала <code>./configure</code> далее <code>make</code> и, наконец, с правами суперпользователя <code>make install</code>. Иногда после компиляции библиотеки может потребоваться обновление списка библиотека в системе &ndash; выполните команду <code>ldconfig</code> с правами суперпользователя.
+
+<p>Скрипт <code>./configure</code> имеет несколько дополнительных опций, которые по умолчанию отключены. К их числу относятся: <code>--enable-fltk, --enable-glut, --enable-qt</code> для поддержки FLTK, GLUT и/или Qt окон; <code>--enable-jpeg, --enable-tiff, --enable-hdf5</code> для поддержки соответствующих форматов; <code>--enable-all</code> для включения всех возможностей. Для использования типа <code>double</code> для внутреннего хранения данных используйте опцию <code>--enable-double</code>. Для создания интерфейсов к другим языкам (кроме С/Фортран/MGL) используйте опции <code>--enable-python, --enable-octave</code> или <code>--enable-langall</code> для всех поддерживаемых языков. Полный список опций можно увидеть, выполнив <code>./configure --help</code>.
+</p></li><li>
+Использовать предварительно скомпилированные файлы &ndash; с библиотекой поставляются файлы для MinGW (платформа Win32). В скомпилированной версии достаточно распаковать заголовочные файлы в папку с заголовочными файлами и библиотеку libmgl.a в папку с библиотеками. По умолчанию, скомпилированная версия включают поддержку GSL (www.gsl.org) и PNG. Соответственно, при сборке программы эти библиотеки должны быть установлены (их можно найти на <a href="http://gnuwin32.sf.net">http://gnuwin32.sf.net</a>).
+</li><li>
+Установить из стандартных пакетов (RPM, deb, DevPak и пр.). 
+</li></ol>
+
+<p>При сборке пользовательской программы достаточно указать ключ <code>-lmgl</code> для компиляции в консольной программе или с использованием внешней графической библиотеки. При использовании окон FLTK или GLUT надо указать/добавить ключи, включающие соответствующие библиотеки &ndash; <code>-lmgl-fltk</code> или <code>-lmgl-glut</code>. Для использования в Фортране дополнительно надо указать опцию <code>-lstdc++</code> для библиотек C++.
+</p>
+<hr size="6">
+<a name="General-concepts"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Installation-and-using" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Coordinate-axes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_043d_043e_0432_043d_044be-_043f_0440_0438_043dc_0438_043f_044b"></a>
+<h2 class="section">1.4 Основные принципы</h2>
+
+<p>Возможности библиотеки MathGL довольно богаты &ndash; число только основных типов графиков превышает 50 видов. Кроме того, есть функции для обработки данных, настройки вида графика и пр. и пр. Тем не менее, я старался придерживаться единого стиля в порядке аргументов функций и способе их &ldquo;настройки&rdquo;. В основном все ниже сказанное относится к функциям рисования различных графиков.
+</p>
+<p>Всего основных концепций (базисных идей) шесть:
+</p><ol>
+<li>
+<strong>Все рисунки создаются в памяти.</strong> Это могут быть как растровые картинки, так и векторные списки примитивов. Дальнейшая судьба рисунков определяется пользователем: можно сохранить в файл, вывести на экран, создать анимацию/кино, дополнительно отредактировать и т.д. Такой подход обеспечивает высокую переносимость библиотеки &ndash; один и тот же программный код создаст в точности одинаковый рисунок на <em>любой</em> операционной системе. Кроме того, при таком подходе рисунки можно создавать непосредственно в консольной программе &ndash; графическое окно не нужно!
+</li><li>
+<strong>Все настройки графиков (стиль линий, цветовые схемы поверхностей, стиль и цвет текста) задаются строками.</strong> Это обеспечивает: удобство для пользователя &ndash; короткую строку легче читать и здесь тяжелее ошибиться, чем в большом списке параметров; переносимость &ndash; строки выглядят одинаково на всех платформах и не надо заботиться о типе и числе аргументов.
+</li><li>
+<strong>Все функции имеют &ldquo;упрощенный&rdquo; и &ldquo;продвинутый&rdquo; варианты.</strong> Сделано опять из-за удобства. В &ldquo;упрощенном&rdquo; варианте для построения графика нужны только один-два массив(а) данных, которые автоматически равнораспределяются в заданном диапазоне осей координат. В &ldquo;продвинутой&rdquo; версии можно не только указать явно диапазон построения графика, но и задать его параметрически. Последнее позволяет легко строить довольно сложные кривые и поверхности. В обоих вариантах функций порядок аргументов стандартен: сначала идут массивы данных, потом необязательный строковый параметр стиля графика, а далее &ndash; второстепенные необязательные параметры для более точной настройки графика.
+</li><li>
+<strong>Все данные передаются через экземпляры класса mglData.</strong> Такой подход позволяет избежать ошибок при работе с памятью и единообразно передавать данные разных типов (float, double, данные из файла, заполненных пользователем и пр.) в функции рисования.
+</li><li>
+<strong>Все элементы рисунков векторные.</strong> Изначально библиотека MathGL была ориентированна на работу с научными данными, которые по своей природе векторные (линии, грани, матрицы и т.д.). Поэтому векторность используется во всех рисунках! Причем иногда даже в ущерб производительности (например, при выводе шрифтов). Помимо всего прочего, векторность позволяет легко масштабировать рисунок &ndash; измените размер картинки в 2 раза, и рисунок пропорционально растянется.
+</li><li>
+<strong>Новые графики не удаляют уже нарисованное.</strong> Этот, в чем-то неожиданный, подход позволяет создавать огромное количество &ldquo;комбинированных&rdquo; графиков. Например, поверхность с наложенными линиями уровня строится двумя последовательными вызовами функций рисования поверхности и линий уровня (в любом порядке). И совершенно не надо писать специальную функцию (как в Matlab и некоторых других программах) для рисования этого графика. Примеров таких графиков можно привести множество (см. раздел <a href="mathgl_ru_2.html#Hints">Hints</a> и сайт программы <a href="http://mathgl.sf.net/index.html">http://mathgl.sf.net/index.html</a>).
+</li></ol>
+
+<p>Кроме основных концепций я хотел бы остановиться на нескольких, как оказалось, нетривиальных моментах &ndash; способе указания положения графика, осей координат и строковых параметров линий, поверхностей, текста.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Coordinate-axes">1.4.1 Оси координат</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Line-styles">1.4.2 Стиль линий</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Color-scheme">1.4.3 Цветовая схема</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-styles">1.4.4 Стиль текста</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Textual-formulas">1.4.5 Текстовые формулы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+
+
+
+<hr size="6">
+<a name="Coordinate-axes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#General-concepts" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Line-styles" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_0438-_043a_043e_043e_0440_0434_0438_043d_0430_0442"></a>
+<h3 class="subsection">1.4.1 Оси координат</h3>
+
+<p>Представление системы координат в MathGL состоит из двух частей. Вначале координаты нормируются в интервал <var>Min</var>x<var>Max</var> (see section <a href="mathgl_ru_3.html#Axis-settings">Настройки осей координат</a>). Если флаг <var>Cut</var> установлен, то точки вне интервала отбрасываются, в противном случае, они проецируются на ограничивающий параллелепипед (see section <a href="mathgl_ru_3.html#Cutting">Обрезание</a>). Кроме того, отбрасываются точки внутри границ, определенных переменными <var>CutMin</var>x<var>CutMax</var> и точки, для которых значение функции <code>CutOff</code>() не равно нулю. После этого формулы перехода в криволинейную систему координат <code>SetFunc()</code>применяются к каждой точке. Наконец, точка данных отображается с помощью одной из графических функций.
+</p>
+<p>Величины <var>Max</var>, <var>Min</var> можно изменять вручную. Однако, после этого необходимо вызвать функцию <code>RecalcBorder()</code> для настройки графика. Более удобный и безопасный путь состоит в вызове функций <code>Axis(), SetRanges()</code> и др. В последнем случае функция <code>RecalcBorder()</code> вызывается автоматически. Размеры осей можно задавать и автоматически по минимальному и максимальному значениям массива данных. Для этого предназначены функции <code>XRange(), YRange(), ZRange()</code>. Второй не обязательный аргумент указывает, заменять ли новые значения диапазона изменения оси координат (по умолчанию) или только расширить уже существующий диапазон.
+</p>
+<p>Точка пересечения осей координат задается переменной <var>Org</var> и действует на последующие вызовы функций рисования осей координат и сетки. По умолчанию, если точка пересечения осей координат попадает вне диапазона осей координат, то она проецируется на границу области. Изменить такое поведение можно, задав <var>AutoOrg</var>=<code>false</code>. В случае, если одно из значений <var>Org</var> равно NAN, то соответствующее значение будет выбрано автоматически.
+</p>
+<p>Кроме привычных осей <em>x, y, z</em> есть еще одна ось &ndash; цветовая шкала &ndash; ось <em>c</em>. Она используется при окрашивании поверхностей и задает границы изменения функции при окрашивании. При вызове <code>Axis()</code> ее границы автоматически устанавливаются равными Min.z и Max.z. Возможно и ручное изменение границ цветового интервала посредством вызова функции <code>CAxis()</code> или изменение границ по заданному массиву <code>CRange()</code>. Используйте <code>Colorbar()</code> для отображения цветовой шкалы.
+</p>
+<p>Вид меток по осям определяется функцией <code>SetTicks()</code> (see section <a href="mathgl_ru_3.html#Axis-settings">Настройки осей координат</a>). Она имеет 3 аргумента: первый <var>d</var> задает шаг меток (если положительны) или их число (если отрицательны) или логарифмические метки (если равны нулю); второ <var>ns</var> задает число &quot;подметок&quot;; последний определяет начальную точку для меток (по умолчанию это точка пересечения осей). Функция <var>SetTuneTicks</var> включает/выключает выделение общего множителя (большого или малого факторов в диапазоне) для меток осей координат. Наконец, если стандартный вид меток не устраивает пользователя, то их шаблон можно задать явно (можно использовать и ТеХ символы), воспользовавшись функциями  <code>SetXTT(), SetYTT(). SetZTT(). SetCTT()</code>. Кроме того, в качестве меток можно вывести произвольный текст использовав функцию <code>SetTicksVal()</code>.
+</p>
+<hr size="6">
+<a name="Line-styles"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Coordinate-axes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Color-scheme" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_0442_0438_043bx-_043b_0438_043d_0438_0439"></a>
+<h3 class="subsection">1.4.2 Стиль линий</h3>
+
+<a name="index-_0421_0442_0438_043bx-_043b_0438_043d_0438_0439"></a>
+<a name="index-_0421_0442_0438_043bx-_043c_0430_0440_043ae_0440_043e_0432"></a>
+<a name="index-_0421_0442_0438_043bx-_0441_0442_0440e_043b_043e_043a"></a>
+
+<p>Стиль линии задается строкой, которая может содержать символ цвета (&lsquo;<samp>wkrgbcymhRGBCYMHWlenupqLENUPQ</samp>&rsquo;), тип пунктира (&lsquo;<samp>-|;:ji</samp>&rsquo; или пробел), ширину линии (&lsquo;<samp>0123456789</samp>&rsquo;) и тип маркера (&lsquo;<samp>o+xsd.^v</samp>&rsquo; и модификатор &lsquo;<samp>#</samp>&rsquo;). Если пропущен цвет или тип пунктира, то используется значение по умолчанию с последним указанным цветом или значение из палитры (для see section <a href="mathgl_ru_3.html#g_t1D-plotting">1D графики</a>). 
+По умолчанию палитры содержит следующие цвета: <span style="color: rgb(76, 76, 76);">темно серый</span> &lsquo;<samp>H</samp>&rsquo;, <span style="color: rgb(0, 0, 255);">синий</span> &lsquo;<samp>b</samp>&rsquo;, <span style="color: rgb(0, 255, 0);">зеленый</span> &lsquo;<samp>g</samp>&rsquo;, <span style="color: rgb(255, 0, 0);">красный</span> &lsquo;<samp>r</samp>&rsquo;, <span style="color: rgb(0, 255, 255);">голубой</span> &lsquo;<samp>c</samp>&rsquo;, <span style="color: rgb(255, 0, 255);">пурпурный</span> &lsquo;<samp>m</samp>&rsquo;, <span style="color: rgb(255, 255, 0);">yellow</span> &lsquo;<samp>y</samp>&rsquo;, <span style="color: rgb(127, 127, 127);">серый</span> &lsquo;<samp>h</samp>&rsquo;, <span style="color: rgb(0, 255, 127);">сине-зеленый</span> &lsquo;<samp>l</samp>&rsquo;, <span style="color: rgb(0, 127, 255);">небесно-синий</span> &lsquo;<samp>n</samp>&rsquo;, <span style="color: rgb(255, 127, 0);">оранжевый</span> &lsquo;<samp>q</samp>&rsquo;, <span style="color: rgb(127, 255, 0);">желто-зеленый</span> &lsquo;<samp>e</samp>&rsquo;, <span style="color: rgb(127, 0, 255);">сине-фиолетовый</span> &lsquo;<samp>u</samp>&rsquo;, <span style="color: rgb(255, 0, 127);">фиолетовый</span> &lsquo;<samp>p</samp>&rsquo;.
+
+<p>Символы цвета: &lsquo;<samp>k</samp>&rsquo; -- черный, &lsquo;<samp>r</samp>&rsquo; -- <span style="color: rgb(255, 0, 0);">красный</span>, &lsquo;<samp>R</samp>&rsquo; -- <span style="color: rgb(127, 0, 0);">темно красный</span>, &lsquo;<samp>g</samp>&rsquo; -- <span style="color: rgb(0, 255, 0);">зеленый</span>, &lsquo;<samp>G</samp>&rsquo; -- <span style="color: rgb(0, 127, 0);">темно зеленый</span>, &lsquo;<samp>b</samp>&rsquo; -- <span style="color: rgb(0, 0, 255);">синий</span>, &lsquo;<samp>B</samp>&rsquo; -- <span style="color: rgb(0, 0, 127);">темно синий</span>, &lsquo;<samp>c</samp>&rsquo; -- <span style="color: rgb(0, 255, 255);">голубой</span>, &lsquo;<samp>C</samp>&rsquo; -- <span style="color: rgb(0, 127, 127);">темно голубой</span>, &lsquo;<samp>m</samp>&rsquo; -- <span style="color: rgb(255, 0, 255);">пурпурный</span>, &lsquo;<samp>M</samp>&rsquo; -- <span style="color: rgb(127, 0, 127);">темно пурпурный</span>, &lsquo;<samp>y</samp>&rsquo; -- <span style="color: rgb(255, 255, 0);">желтый</span>, &lsquo;<samp>Y</samp>&rsquo; -- <span style="color: rgb(127, 127, 0);">темно желтый (золотой)</span>, &lsquo;<samp>h</samp>&rsquo; -- <span style="color: rgb(127, 127, 127);">серый</span>, &lsquo;<samp>H</samp>&rsquo; -- <span style="color: rgb(76, 76, 76);">темно серый</span>, &lsquo;<samp>w</samp>&rsquo; -- белый, &lsquo;<samp>W</samp>&rsquo; -- <span style="color: rgb(178, 178, 178);">светло серый</span>, &lsquo;<samp>l</samp>&rsquo; -- <span style="color: rgb(0, 255, 127);">сине-зеленый</span>, &lsquo;<samp>L</samp>&rsquo; -- <span style="color: rgb(0, 127, 63);">темно сине-зеленый</span>, &lsquo;<samp>e</samp>&rsquo; -- <span style="color: rgb(127, 255, 0);">желто-зеленый</span>, &lsquo;<samp>E</samp>&rsquo; -- <span style="color: rgb(63, 127, 0);">темно желто-зеленый</span>, &lsquo;<samp>n</samp>&rsquo; -- <span style="color: rgb(0, 127, 255);">небесно-синий</span>, &lsquo;<samp>N</samp>&rsquo; -- <span style="color: rgb(0, 63, 127);">темно небесно-синий</span>, &lsquo;<samp>u</samp>&rsquo; -- <span style="color: rgb(127, 0, 255);">сине-фиолетовый</span>, &lsquo;<samp>U</samp>&rsquo; -- <span style="color: rgb(63, 0, 127);">темно сине-фиолетовый</span>, &lsquo;<samp>p</samp>&rsquo; -- <span style="color: rgb(255, 0, 127);">фиолетовый</span>, &lsquo;<samp>P</samp>&rsquo; -- <span style="color: rgb(127, 0, 63);">темно фиолетовый</span>, &lsquo;<samp>q</samp>&rsquo; -- <span style="color: rgb(255, 127, 0);">оранжевый</span>, &lsquo;<samp>Q</samp>&rsquo; -- <span style="color: rgb(127, 63, 0);">темно оранжевый (коричневый)</span>.</p>
+
+Тип пунктира: пробел -- нет линии (для рисования только маркеров), &lsquo;<samp>-</samp>&rsquo; -- сплошная линия (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;), &lsquo;<samp>|</samp>&rsquo; -- длинный пунктир (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>;</samp>&rsquo; -- пунктир (&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>=</samp>&rsquo; -- короткий пунктир (&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;), &lsquo;<samp>:</samp>&rsquo; -- точки (&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;), &lsquo;<samp>j</samp>&rsquo; -- пунктир с точками  (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>i</samp>&rsquo; -- мелкий пунктир с точками (&#9632;&#9632;&#9632;&#9633;&#9633;&#9632;&#9633;&#9633;&#9632;&#9632;&#9632;&#9633;&#9633;&#9632;&#9633;&#9633;).</p>
+<p>Типы маркеров: &lsquo;<samp>o</samp>&rsquo; &ndash; окружность, &lsquo;<samp>+</samp>&rsquo; &ndash; крест, &lsquo;<samp>x</samp>&rsquo; &ndash; косой крест, &lsquo;<samp>s</samp>&rsquo; - квадрат, &lsquo;<samp>d</samp>&rsquo; - ромб, &lsquo;<samp>.</samp>&rsquo; &ndash; точка, &lsquo;<samp>^</samp>&rsquo; &ndash; треугольник вверх, &lsquo;<samp>v</samp>&rsquo; &ndash; треугольник вниз, &lsquo;<samp>&lt;</samp>&rsquo; &ndash; треугольник влево, &lsquo;<samp>&gt;</samp>&rsquo; &ndash; треугольник вправо, &lsquo;<samp>#*</samp>&rsquo; &ndash; знак Y, &lsquo;<samp>#+</samp>&rsquo; &ndash; крест в квадрате, &lsquo;<samp>#x</samp>&rsquo; &ndash; косой крест в квадрате, &lsquo;<samp>#.</samp>&rsquo; &ndash; точка в окружности. Если в строке присутствует символ &lsquo;<samp>#</samp>&rsquo;, то используются символы с заполнением.
+</p>
+<div class="float">
+<img src="../png/sample5.png" alt="../png/sample5">
+
+</div><p><strong>Стили линий и маркеров.
+</strong>
+</p>
+<p>На конце и в начале линии можно выводить специальный символ (стрелку), если в строке указать один из символов: &lsquo;<samp>A</samp>&rsquo; &ndash; стрелка наружу, &lsquo;<samp>V</samp>&rsquo; &ndash; стрелка внутрь, &lsquo;<samp>I</samp>&rsquo; &ndash; поперечная черта, &lsquo;<samp>K</samp>&rsquo; &ndash; стрелка с чертой, &lsquo;<samp>T</samp>&rsquo; &ndash; треугольник, &lsquo;<samp>S</samp>&rsquo; &ndash; квадрат, &lsquo;<samp>D</samp>&rsquo; &ndash; ромб, &lsquo;<samp>O</samp>&rsquo; &ndash; круг, &lsquo;<samp>_</samp>&rsquo; &ndash; нет стрелки (по умолчанию). При этом действует следующее правило: первый символ определяет стрелку на конце линии, второй символ &ndash; стрелку в начале линии. Например, &lsquo;<samp>r-A</samp>&rsquo; &ndash; красная сплошная линия со стрелкой на конце, &lsquo;<samp>b|AI</samp>&rsquo; &ndash; синий пунктир со стрелкой на конце и чертой вначале, &lsquo;<samp>_O</samp>&rsquo; &ndash; линия с текущим стилем и кружком вначале. Эти стили действуют и при построении графиков (например, <a href="mathgl_ru_3.html#g_t1D-plotting">1D графики</a>).
+</p>
+<div class="float">
+<img src="../png/sampled.png" alt="../png/sampled">
+
+</div><p><strong>Стили стрелок.
+</strong>
+</p>
+<hr size="6">
+<a name="Color-scheme"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Line-styles" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-styles" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="C_0432e_0442_043e_0432_0430ya-_0441_0445e_043c_0430"></a>
+<h3 class="subsection">1.4.3 Цветовая схема</h3>
+
+<a name="index-C_0432e_0442_043e_0432_0430ya-_0441_0445e_043c_0430"></a>
+
+<p>Цветовая схема используется для определения цвета поверхностей, линий уровня и пр. Цветовая схема задается строкой <em>s</em>, которая содержит символы цвета (see section <a href="#Line-styles">Стиль линий</a>) или символы &lsquo;<samp>d#:|</samp>&rsquo;. Символ &lsquo;<samp>d</samp>&rsquo; указывает на определение цвета в зависимости от положения точки в пространстве, а не по амплитуде данных. Символ &lsquo;<samp>#</samp>&rsquo; переключает рисование поверхности на сетчатое (для трехмерных поверхностей) или включает рисование сетки на поверхности. Символ &lsquo;<samp>|</samp>&rsquo; отключает интерполяцию цвета в цветовой схеме. Это может быть полезно для &ldquo;резких&rdquo; цветов, например, при рисовании матриц. Если в строке встречается символ &lsquo;<samp>:</samp>&rsquo;, то он принудительно заканчивает разбор строки для стиля поверхности. После этого символа могут идти описание стиля текста или оси вращения кривой/линий уровня. Цветовая схема может содержать до 32 значений цвета.
+</p>
+<p>В цветовой схеме можно использовать тональные (&ldquo;подсвеченные&rdquo;) цвета (<em>не в стиле линий!</em>). Тональный цвет задается двумя символами: первый &ndash; обычный цвет, второй &ndash; его яркость цифрой. Цифра может быть в диапазоне &lsquo;<samp>1</samp>&rsquo;...&lsquo;<samp>9</samp>&rsquo;. При этом &lsquo;<samp>5</samp>&rsquo; соответствует нормальному цвету, &lsquo;<samp>1</samp>&rsquo; &ndash; очень темная версия цвета (почти черный), &lsquo;<samp>9</samp>&rsquo; &ndash; очень светлая версия цвета (почти белый). Например цветовая схема может быть &lsquo;<samp>b2b7wr7r2</samp>&rsquo;.
+</p>
+<div class="float">
+<img src="../png/colors.png" alt="../png/colors">
+
+</div><p><strong>Цвета и их идентификаторы.
+</strong>
+</p>
+<p>При определении цвета по <em>амплитуде</em> (наиболее часто используется) окончательный цвет определяется путем линейной интерполяции массива цветов. Массив цветов формируется из цветов, указанных в строке спецификации. Аргумент &ndash; амплитуда, нормированная между <var>Cmin</var> &ndash; <var>Cmax</var> (see section <a href="mathgl_ru_3.html#Axis-settings">Настройки осей координат</a>). Например, строка из 4 символов &lsquo;<samp>bcyr</samp>&rsquo; соответствует изменению цвета от синего (минимальное значение) через голубой и желтый (промежуточные значения) к красному (максимальное значение). Строка &lsquo;<samp>kw</samp>&rsquo; соответствует изменению цвета от черного (минимальное значение) к белому (максимальное значение). Строка из одного символа (например, &lsquo;<samp>g</samp>&rsquo;) соответствует однотонному цвету (в данному случае зеленому).
+</p>
+<p>Есть несколько полезных цветовых схем. Строка &lsquo;<samp>kw</samp>&rsquo; дает обычную серую (черно-белую) схему, когда большие значения светлее. Строка &lsquo;<samp>wk</samp>&rsquo; представляет обратную серую схему, когда большие значения темнее. Строки &lsquo;<samp>kRryw</samp>&rsquo;, &lsquo;<samp>kGgw</samp>&rsquo;, &lsquo;<samp>kBbcw</samp>&rsquo; представляют собой хорошо известные схемы <em>hot</em>, <em>summer</em> и <em>winter</em>. Строки &lsquo;<samp>BbwrR</samp>&rsquo; и &lsquo;<samp>bBkRr</samp>&rsquo; позволяют рисовать двухцветные фигуры на белом или черном фоне, когда отрицательные значения показаны синим цветом, а положительные &ndash; красным. Строка &lsquo;<samp>BbcyrR</samp>&rsquo; дает цветовую схему, близкую к хорошо известной схеме <em>jet</em>.
+</p>
+
+<div class="float">
+<img src="../png/color_schemes.png" alt="../png/color_schemes">
+
+</div><p><strong>Наиболее популярные цветовые схемы.
+</strong>
+</p>
+<p>При определении цвета по <em>положению точки в пространстве</em> окончательный цвет определяется по формуле c=x*c[1] + y*c[2] + z*c[3]. Здесь c[1], c[2], c[3] &ndash; первые три цвета в цветовом массиве; x, y, z &ndash; координаты точки, нормированные на <var>Min</var>x<var>Max</var>. Такой тип определения цвета полезен, например, при построении поверхностей уровня, когда цвет дает представление о положении точки в пространстве.
+</p>
+<hr size="6">
+<a name="Font-styles"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Color-scheme" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Textual-formulas" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_0442_0438_043bx-_0442e_043a_0441_0442_0430"></a>
+<h3 class="subsection">1.4.4 Стиль текста</h3>
+
+<a name="index-_0421_0442_0438_043bx-_0442e_043a_0441_0442_0430"></a>
+
+<p>Стиль текста задается строкой, которая может содержать несколько символов: тип шрифта (&lsquo;<samp>ribwou</samp>&rsquo;) и/или выравнивания (&lsquo;<samp>LRC</samp>&rsquo;), а также цвет текста &lsquo;<samp>wkrgbcymhRGBCYMHW</samp>&rsquo; (see section <a href="#Line-styles">Стиль линий</a>) после символа &lsquo;<samp>:</samp>&rsquo;. Например, &lsquo;<samp>biC:b</samp>&rsquo; соответствует жирному курсиву с выравниванием по центру синего цвета.
+</p>
+<p>Начертания шрифта: &lsquo;<samp>r</samp>&rsquo; &ndash; прямой шрифт, &lsquo;<samp>i</samp>&rsquo; &ndash; курсив, &lsquo;<samp>b</samp>&rsquo; &ndash; жирный. По умолчанию используется прямой шрифт. Типы выравнивания текста: &lsquo;<samp>L</samp>&rsquo; &ndash; по левому краю (по умолчанию), &lsquo;<samp>C</samp>&rsquo; &ndash; по центру, &lsquo;<samp>R</samp>&rsquo; &ndash; по правому краю. Дополнительные эффекты шрифта: &lsquo;<samp>w</samp>&rsquo; &ndash; контурный, &lsquo;<samp>o</samp>&rsquo; &ndash; надчеркнутый, &lsquo;<samp>u</samp>&rsquo; &ndash; подчеркнутый. 
+</p>
+<p>Синтаксический разбор LaTeX-их команд по умолчанию включен. Это команды смены стиля текста (например, \b для жирного текста): \a или \overline &ndash; надчеркивание, \b или \textbf &ndash; жирный, \i или \textit &ndash; курсив, \r или \textrm &ndash; прямой (отменяет стили жирного и курсива), \u или \underline &ndash; подчеркнутый, \w или \wire &ndash; контурный, \big &ndash; большего размера, @ &ndash; меньшего размера. Нижний и верхний индексы задаются символами &lsquo;<samp>_</samp>&rsquo; и &lsquo;<samp>^</samp>&rsquo;. При этом изменение стиля применяется только к следующему символу или к символам в фигурных скобках {}, которые понимаются как единый блок. Например, сравните строки &lsquo;<samp>sin (x^{2^3})</samp>&rsquo; и &lsquo;<samp>sin (x^2^3)</samp>&rsquo;. Можно также менять цвет текста внутри строки с помощью команд #? или \color?, где &lsquo;<samp>?</samp>&rsquo; &ndash; символ цвета (see section <a href="#Line-styles">Стиль линий</a>). Например, слова &lsquo;<samp>Blue</samp>&rsquo; и &lsquo;<samp>red</samp>&rsquo; будут окрашены в соответствующий цвет в строке &lsquo;<samp>#b{Blue} and \colorr{red} text</samp>&rsquo;. Большинство функций понимает символ новой строки &lsquo;<samp>\n</samp>&rsquo; и позволяет выводить много строчный текст. Наконец, можно использовать символы с произвольным UTF кодом с помощью команды <code>\utf0x????</code>. Например, <code>\utf0x3b1</code> даст символ 
+&alpha;.</p>
+<p>Распознаются также большинство символов TeX и AMSTeX, команды смены стиля текста (\textrm, \textbf, \textit, \textsc, \overline, \underline), акценты (\hat, \tilde, \dot, \ddot, \acute, \check, \grave, \bar, \breve) и корни (\sqrt, \sqrt3, \sqrt4). Полный список содержит около 2000 символов. Отмечу, что первый пробел (пробел, табуляция и пр.) после команды игнорируется, а все остальные пробелы печатаются обычным образом. Например, следующие строки дают одинаковый результат <em>\tilde a</em>: &lsquo;<samp>\tilde{a}</samp>&rsquo;; &lsquo;<samp>\tilde a</samp>&rsquo;; &lsquo;<samp>\tilde{}a</samp>&rsquo;.
+</p>
+В частности, распознаются греческие буквы: &alpha; &ndash; \alpha, &beta; &ndash; \beta, &gamma; &ndash; \gamma, &delta; &ndash; \delta, &epsilon; &ndash; \epsilon, &eta; &ndash; \eta, &iota; &ndash; \iota, &chi; &ndash; \chi, &kappa; &ndash; \kappa, &lambda; &ndash; \lambda, &mu; &ndash; \mu, &nu; &ndash; \nu, o &ndash; \o, &omega; &ndash; \omega, &#981; &ndash; \phi, &pi; &ndash; \pi, &psi; &ndash; \psi, &rho; &ndash; \rho, &sigma; &ndash; \sigma, &theta; &ndash; \theta, &tau; &ndash; \tau, &upsilon; &ndash; \upsilon, &xi; &ndash; \xi, &zeta; &ndash; \zeta, &sigmaf; &ndash; \varsigma, &#603; &ndash; \varepsilon, &thetasym; &ndash; \vartheta, &phi; &ndash; \varphi, &#1008; &ndash; \varkappa; A &ndash; \Alpha, B &ndash; \Beta, &Gamma; &ndash; \Gamma, &Delta; &ndash; \Delta, E &ndash; \Epsilon, H &ndash; \Eta, I &ndash; \Iota, C &ndash; \Chi, K &ndash; \Kappa, &Lambda; &ndash; \Lambda, M &ndash; \Mu, N &ndash; \Nu, O &ndash; \O, &Omega; &ndash; \Omega, &Phi; &ndash; \Phi, &Pi; &ndash; \Pi, &Psi; &ndash; \Psi, R &ndash; \Rho, &Sigma; &ndash; \Sigma, &Theta; &ndash; \Theta, T &ndash; \Tau, &Upsilon; &ndash; \Upsilon, &Xi; &ndash; \Xi, Z &ndash; \Zeta.
+
+<p>Еще примеры наиболее общеупотребительных TeX-их символов: &ang; &ndash; \angle, &sdot; &ndash; \cdot, &clubs; &ndash; \clubsuit, &#10003; &ndash; \checkmark, &cup; &ndash; \cup, &cap; &ndash; \cap, &#9826; &ndash; \diamondsuit, &#9671; &ndash; \diamond, &divide;
+ &ndash; \div, 
+&darr; &ndash; \downarrow, &dagger; &ndash; \dag, &Dagger; &ndash; \ddag, &equiv; &ndash; \equiv, &exist; &ndash; \exists, &#8994; &ndash; \frown, &#9837; &ndash; \flat, &ge; &ndash; \ge, &ge; &ndash; \geq, &#8807; &ndash; \geqq, &larr; &ndash; \gets, &#9825; &ndash; \heartsuit, &infin; &ndash; \infty, &int; &ndash; \int, \Int, &image;  &ndash; \Im, &#9826; &ndash; \lozenge, &#10216; &ndash; \langle, &le; &ndash; \le, &le; &ndash; \leq, &#8806; &ndash; \leqq, &larr; &ndash; \leftarrow, &#8723; &ndash; \mp, &nabla; &ndash; \nabla, &ne; &ndash; \ne, &ne; &ndash; \neq, &#9838; &ndash; \natural, &#8750; &ndash; \oint, &#8857; &ndash; \odot, &oplus; &ndash; \oplus, &part; &ndash; \partial, &#8741; &ndash; \parallel, &perp; &ndash;\perp, &plusmn; &ndash; \pm, &prop; &ndash; \propto, &prod; &ndash; \prod, &real; &ndash; \Re, &rarr; &ndash; \rightarrow, &#10217; &ndash; \rangle, &spades; &ndash; \spadesuit, ~ &ndash; \sim, &#8995; &ndash; \smile, &sub;  &ndash; \subset, &sup; &ndash; \supset, &radic; &ndash; \sqrt or \surd, &sect; &ndash; \S, &#9839; &ndash; \sharp, &sum; &ndash; \sum, &times; &ndash; \times, &rarr; &ndash; \to, &there4; &ndash; \therefore, &uarr; &ndash; \uparrow, &weierp; &ndash; \wp. </p>
+<p>Размер текста может быть задан явно (если <var>size</var>&gt;0) или относительно базового размера шрифта для рисунка |<var>size</var>|*<var>FontSize</var> при <var>size</var>&lt;0. Значение <var>size</var>=0 указывает, что соответствующая строка выводиться не будет. Базовый размер шрифта измеряется во внутренних единицах. Специальные функции <code>SetFontSizePT(), SetFontSizeCM(), SetFontSizeIN()</code> позволяют задавать его в более &ldquo;привычных&rdquo; единицах.
+</p>
+<hr size="6">
+<a name="Textual-formulas"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-styles" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#FAQ" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0422e_043a_0441_0442_043e_0432_044be-_0444_043e_0440_043c_0443_043b_044b"></a>
+<h3 class="subsection">1.4.5 Текстовые формулы</h3>
+
+<a name="index-_0422e_043a_0441_0442_043e_0432_044be-_0444_043e_0440_043c_0443_043b_044b"></a>
+
+<p>MathGL имеет быстрый парсер текстовых формул
+ (see section <a href="mathgl_ru_7.html#mglFormula-class">mglFormula class</a>)
+, понимающий большое число функций и операций. Базовые операции: &lsquo;<samp>+</samp>&rsquo; &ndash; сложение, &lsquo;<samp>-</samp>&rsquo; &ndash; вычитание, &lsquo;<samp>*</samp>&rsquo; &ndash; умножение, &lsquo;<samp>/</samp>&rsquo; &ndash; деление, &lsquo;<samp>^</samp>&rsquo; &ndash; возведение в целосичленную степень. Также есть логические операции: &lsquo;<samp>&lt;</samp>&rsquo; &ndash; истина если if x&lt;y, &lsquo;<samp>&gt;</samp>&rsquo; &ndash; истина если x&gt;y, &lsquo;<samp>=</samp>&rsquo; &ndash; истина если x=y, &lsquo;<samp>&amp;</samp>&rsquo; &ndash; истина если x и y оба не равны нулю, &lsquo;<samp>|</samp>&rsquo; &ndash; истина если x или y не нуль. Логические операции имеют наинизший приоритет и возвращают 1 если истина или 0 если ложно.
+</p>
+<p>Базовые функции: &lsquo;<samp>sqrt(x)</samp>&rsquo; &ndash; квадратный корень из <var>x</var>, &lsquo;<samp>pow(x,y)</samp>&rsquo; &ndash; <var>x</var> в степени <var>y</var>, &lsquo;<samp>ln(x)</samp>&rsquo; &ndash; натуральный логарифм <var>x</var>, &lsquo;<samp>lg(x)</samp>&rsquo; &ndash; десятичный логарифм <var>x</var>, &lsquo;<samp>log(a,x)</samp>&rsquo; &ndash; логарифм по основанию <var>a</var> от <var>x</var>, &lsquo;<samp>abs(x)</samp>&rsquo; &ndash; модуль <var>x</var>, &lsquo;<samp>sign(x)</samp>&rsquo; &ndash; знак <var>x</var>, &lsquo;<samp>mod(x,y)</samp>&rsquo; &ndash; остаток от деления x на y, &lsquo;<samp>step(x)</samp>&rsquo; &ndash; ступенчатая функция, &lsquo;<samp>int(x)</samp>&rsquo; &ndash; целая часть <var>x</var>, &lsquo;<samp>rnd</samp>&rsquo; &ndash; случайное число, &lsquo;<samp>pi</samp>&rsquo; &ndash; число 
+&pi; = 3.1415926&hellip;</p>
+<p>Тригонометрические функции: &lsquo;<samp>sin(x)</samp>&rsquo;, &lsquo;<samp>cos(x)</samp>&rsquo;, &lsquo;<samp>tan(x)</samp>&rsquo; (или &lsquo;<samp>tg(x)</samp>&rsquo;). Обратные тригонометрические функции: &lsquo;<samp>asin(x)</samp>&rsquo;, &lsquo;<samp>acos(x)</samp>&rsquo;, &lsquo;<samp>atan(x)</samp>&rsquo;. Гиперболические функции: &lsquo;<samp>sinh(x)</samp>&rsquo; (или &lsquo;<samp>sh(x)</samp>&rsquo;), &lsquo;<samp>cosh(x)</samp>&rsquo; (или &lsquo;<samp>ch(x)</samp>&rsquo;), &lsquo;<samp>tanh(x)</samp>&rsquo; (или &lsquo;<samp>th(x)</samp>&rsquo;). Обратные гиперболические функции: &lsquo;<samp>asinh(x)</samp>&rsquo;, &lsquo;<samp>acosh(x)</samp>&rsquo;, &lsquo;<samp>atanh(x)</samp>&rsquo;.
+</p>
+<p>Специальные функции: &lsquo;<samp>gamma(x)</samp>&rsquo; &ndash; гамма функция &Gamma;(x) = &int;<sub>0</sub><sup>&infin;</sup> t<sup>x-1</sup> exp(-t) dt, &lsquo;<samp>psi(x)</samp>&rsquo; &ndash; дигамма функция &psi;(x) = &Gamma;&prime;(x)/&Gamma;(x) для x&ne;0, &lsquo;<samp>ai(x)</samp>&rsquo; &ndash; Эйри функция Ai(x), &lsquo;<samp>bi(x)</samp>&rsquo; &ndash; Эйри функция Bi(x), &lsquo;<samp>cl(x)</samp>&rsquo; &ndash; функция Клаузена, &lsquo;<samp>li2(x)</samp>&rsquo; (или &lsquo;<samp>dilog(x)</samp>&rsquo;) &ndash; дилогарифм Li<sub>2</sub>(x) = -&real;&int;<sub>0</sub><sup>x</sup>ds log(1-s)/s, &lsquo;<samp>sinc(x)</samp>&rsquo; &ndash; функция sinc(x) = sin(&pi;x)/(&pi;x) для любых x, &lsquo;<samp>zeta(x)</samp>&rsquo; &ndash; зета функция Римана &zeta;(s) = &sum;<sub>k=1</sub><sup>&infin;</sup>k<sup>-s</sup> для s&ne;1, &lsquo;<samp>eta(x)</samp>&rsquo; &ndash; эта функция &eta;(s) = (1 - 2<sup>1-s</sup>)&zeta;(s) для произвольного s, &lsquo;<samp>lp(l,x)</samp>&rsquo; &ndash; полином Лежандра P<sub>l</sub>(x), (|x|&le;1, l&ge;0), &lsquo;<samp>w0(x)</samp>&rsquo;, &lsquo;<samp>w1(x)</samp>&rsquo; &ndash; функции Ламберта W. Функции W(x) определены как решение уравнения: W exp(W) = x. </p>
+
+<p>Экспоненциальные интегралы: &lsquo;<samp>ci(x)</samp>&rsquo; &ndash; cos-интеграл Ci(x) = &int;<sub>0</sub><sup>x</sup>dt cos(t)/t, &lsquo;<samp>si(x)</samp>&rsquo; &ndash; sin-интеграл Si(x) = &int;<sub>0</sub><sup>x</sup>dt sin(t)/t, &lsquo;<samp>erf(x)</samp>&rsquo; &ndash; функция ошибки erf(x) = (2/&radic;&pi;) &int;<sub>0</sub><sup>x</sup>dt exp(-t<sup>2</sup>) , &lsquo;<samp>ei(x)</samp>&rsquo; &ndash; интеграл Ei(x) = -PV(&int;<sub>-x</sub><sup>&infin;</sup>dt exp(-t)/t) (где PV обозначает главное значение), &lsquo;<samp>e1(x)</samp>&rsquo; &ndash; интеграл E<sub>1</sub>(x) = &real;&int;<sub>1</sub><sup>&infin;</sup>dt exp(-xt)/t, &lsquo;<samp>e2(x)</samp>&rsquo; &ndash; интеграл E<sub>2</sub>(x) = &real;&int;<sub>1</sub>&infin;</sup>dt exp(-xt)/t<sup>2</sup>, &lsquo;<samp>ei3(x)</samp>&rsquo; &ndash; интеграл Ei<sub>3</sub>(x) = &int;<sub>0</sub><sup>x</sup>dt exp(-t<sup>3</sup>) для x&ge;0. </p>
+
+<p>Функции Бесселя: &lsquo;<samp>j(nu,x)</samp>&rsquo; &ndash; функция Бесселя первого рода, &lsquo;<samp>y(nu,x)</samp>&rsquo; &ndash; функция Бесселя второго рода, &lsquo;<samp>i(nu,x)</samp>&rsquo; &ndash; модифицированная функция Бесселя первого рода, &lsquo;<samp>k(nu,x)</samp>&rsquo; &ndash; модифицированная функция Бесселя второго рода. </p>
+
+<p>Эллиптические интегралы: &lsquo;<samp>ee(k)</samp>&rsquo; &ndash; полный эллиптический интеграл E(k) = E(&pi;/2,k), &lsquo;<samp>ek(k)</samp>&rsquo; &ndash; полный эллиптический интеграл K(k) = F(&pi;/2,k), &lsquo;<samp>e(phi,k)</samp>&rsquo; &ndash; эллиптический интеграл E(&phi;,k) = &int;<sub>0</sub><sup>&phi;</sup>dt &radic;(1 - k<sup>2</sup>sin<sup>2</sup>(t)), &lsquo;<samp>f(phi,k)</samp>&rsquo; &ndash; эллиптический интеграл F(&phi;,k) = &int;<sub>0</sub><sup>&phi;</sup>dt 1/&radic;(1 - k<sup>2</sup>sin<sup>2</sup>(t))</p>
+<p>Функции Якоби: &lsquo;<samp>sn(u,m)</samp>&rsquo;, &lsquo;<samp>cn(u,m)</samp>&rsquo;, &lsquo;<samp>dn(u,m)</samp>&rsquo;, &lsquo;<samp>sc(u,m)</samp>&rsquo;, &lsquo;<samp>sd(u,m)</samp>&rsquo;, &lsquo;<samp>ns(u,m)</samp>&rsquo;, &lsquo;<samp>cs(u,m)</samp>&rsquo;, &lsquo;<samp>cd(u,m)</samp>&rsquo;, &lsquo;<samp>nc(u,m)</samp>&rsquo;, &lsquo;<samp>ds(u,m)</samp>&rsquo;, &lsquo;<samp>dc(u,m)</samp>&rsquo;, &lsquo;<samp>nd(u,m)</samp>&rsquo;.
+</p>
+<p>Некоторые из функций могут быть недоступны если флаг NO_GSL был определен при компиляции библиотеки MathGL. 
+</p>
+<p>При разборе формул нет различия между верхним и нижним регистром. Если аргумент лежит вне области определения функции, то возвращается NaN.
+</p>
+
+
+<hr size="6">
+<a name="FAQ"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Textual-formulas" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Interfaces" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="FAQ-1"></a>
+<h2 class="section">1.5 FAQ</h2>
+
+<dl compact="compact">
+<dt> <strong>График не рисуется?!</strong></dt>
+<dd><p>Проверьте, что точки графика находятся внутри ограничивающего параллелепипеда, при необходимости увеличьте его с помощью функции <code>Axis()</code>. Проверьте, что размерность массива правильная для выбранного типа графика. Убедитесь, что функция  <code>Finish()</code> была вызвана после построения графика (или график был сохранен в файл). Иногда отражение света от плоских поверхностей (типа, <code>Dens()</code>) может выглядеть как отсутствие графика.
+</p>
+</dd>
+<dt> <strong>Не нашел нужного графика?!</strong></dt>
+<dd><p>Многие &ldquo;новые&rdquo; графики можно строить, используя уже существующие функции. Например, поверхность вращения кривой относительно оси можно построить, используя специальную функцию <code>Torus()</code>, а можно построить как параметрически заданную поверхность <code>Surf()</code>. См. также <a href="mathgl_ru_2.html#Hints">Hints</a> и <a href="mathgl_ru_2.html#Examples">MathGL examples</a> MathGL. Если же нужного типа графика все равно нет, то пишите мне <a href="mailto:mathgl.abalakin at gmail.com">e-mail</a> и в следующей версии этот график появится.
+</p>
+</dd>
+<dt> <strong>Требуется ли знание сторонних библиотек (например, OpenGL) для использования библиотеки MathGL?</strong></dt>
+<dd><p>Нет. Библиотека MathGL самодостаточна и не требует знания сторонних библиотек.
+</p>
+</dd>
+<dt> <strong>На каком языке написана библиотека? Для каких языков у нее есть интерфейсы?</strong></dt>
+<dd><p>Ядро библиотеки написано на С++. Кроме него, есть интерфейсы для чистого С, фортрана, паскаля, форта и собственный командный язык MGL. Также есть поддержка большого числа интерпретируемых языков (Python, Java,  ALLEGROCL, CHICKEN, Lisp, CFFI, C#, Guile, Lua, Modula 3, Mzscheme, Ocaml, Octave, Perl, PHP, Pike, R, Ruby, Tcl). Эти интерфейсы написаны с помощью SWIG (и функции чистого С и классы). Однако на данный момент только интерфейсы для Python и Octave включены в скрипты сборки. Причина в том, что я не знаю других языков, чтобы проверить качество интерфейса :(. Замечу, что большинство прочих языков могут использовать С функции напрямую.
+</p>
+</dd>
+<dt> <strong>Как мне использовать MathGL с Фортраном?</strong></dt>
+<dd><p>Библиотеку MathGL можно использовать как есть с компилятором <code>gfortran</code> поскольку он использует по умолчанию AT&amp;T нотацию для внешних функций. Для других компиляторов (например, Visual Fortran) необходимо включить использование AT&amp;T нотации вручную. AT&amp;T нотация требует, чтобы имя функции завершалось символом &lsquo;<samp>_</samp>&rsquo;, аргументы функции передавались по указателю и длины строк передавались в конце списка аргументов. Например:
+</p>
+<p><em>C функция</em> &ndash; <code>void mgl_fplot(HMGL graph, const char *fy, const char *stl, int n);</code>
+</p>
+<p><em>AT&amp;T функция</em> &ndash; <code>void mgl_fplot_(uintptr_t *graph, const char *fy, const char *stl, int *n, int ly, int ls);</code>
+</p>
+</dd>
+<dt> <strong>У меня есть класс Foo и в нем метод рисования Foo::draw(mglGraph *gr). Как мне нарисовать что-то в окне FLTK, GLUT или Qt?</strong></dt>
+<dd><p>Функции-члены класса в С++ имеют &ldquo;скрытый&rdquo; параметр &ndash; указатель на экземпляр класса и их прямое использование невозможно. Решением будет определение интерфейсной функции:
+</p><table><tr><td>&nbsp;</td><td><pre class="example">int foo_draw(mglGraph *gr, void *par)
+{   ((Foo *)foo)-&gt;draw(gr);    }
+</pre></td></tr></table>
+<p>и подстановка именно ее в вызов функции <code>Window()</code>:
+</p><table><tr><td>&nbsp;</td><td><pre class="example">gr-&gt;Window(argc,argv,foo_draw,&quot;Title&quot;,this);
+</pre></td></tr></table>
+
+<p>Можно также наследовать Ваш класс от класса <code>mglDraw</code> и использовать функцию типа <code>gr-&gt;Window(argc, argv, foo, &quot;Title&quot;);</code>.
+</p>
+</dd>
+<dt> <strong>Как мне вывести текст на русском/испанском/арабском/японском и т.д.?</strong></dt>
+<dd><p>Стандартный путь состоит в использовании кодировки UTF-8 для вывода текста. Кроме того, все функции вывода текста имеют интерфейс для 8-битных (char *) строк. Однако в последнем случае Вам может потребоваться установить используемую в исходном тексте локаль. Например, для русского языка в кодировке CP1251 можно использовать <code>setlocale(LC_CTYPE, &quot;ru_RU.cp1251&quot;);</code> (под MS Windows имена локали другие &ndash;  <code>setlocale(LC_CTYPE, &quot;russian_russia.1251&quot;)</code>). Настоятельно не рекомендую использовать константу <code>LC_ALL</code>, поскольку при этом меняется и формат чисел (в частности, десятичная точка), что может, например, вызвать сложности (неудобство) при написании формул и чтении текстовых файлов. Например, программа ожидает &lsquo;<samp>,</samp>&rsquo; в качестве разделителя целой и дробной части, а пользователь вводит &lsquo;<samp>.</samp>&rsquo;.
+</p>
+</dd>
+<dt> <strong>Как мне вырезать (исключить из рисования) точку или область на графике?</strong></dt>
+<dd><p>Есть три основных способа. Во-первых, можно вырезать точку, задав одну из ее координат равной <code>NAN</code>. Во-вторых, можно воспользоваться функцией <code>SetCutBox()</code> или <code>CutOff()</code> для удаления точек из некоторой области (see section <a href="mathgl_ru_3.html#Cutting">Обрезание</a>). Наконец, можно сделать эти точки прозрачными (невидимыми) с помощью функций <code>SurfA()</code>, <code>Surf3A()</code> (see section <a href="mathgl_ru_3.html#Dual-plotting">Парные графики</a>). В последнем случае обеспечивается еще и плавность включения прозрачности.
+</p>
+</dd>
+<dt> <strong>Я использую VisualStudio, CBuilder или другой компилятор (не MinGW/gcc). Как мне подключить библиотеку MathGL?</strong></dt>
+<dd><p>Начиная с версии 1.10, можно использовать заголовочный файл <code>#include &lt;mgl/mgl_w.h&gt;</code>, содержащий C++ классы только с <code>inline</code> функциями. Такие классы должны быть совместимы с любым компилятором. Отмечу, что эти &quot;интерфейсные&quot; классы <strong>не совместимы</strong> с классами в обычных заголовочных файлах и использоваться должны только одни из них! Я рекомендую использовать обычные заголовочные классы для компиляторов GNU (например для MinGW).
+</p>
+
+</dd>
+<dt> <strong>Как мне собрать MathGL под Windows?</strong></dt>
+<dd><p>Простейший путь &ndash; использование комбинации CMake и MinGW. Также Вам может потребоваться дополнительные библиотеки, такие как GSL, PNG, JPEG и пр. Все они могут быть найдены на <a href="http://gnuwin32.sourceforge.net/packages.html">http://gnuwin32.sourceforge.net/packages.html</a>. После установки всех компонент, просто запустите конфигуратор CMake и соберите MathGL командой make.
+</p>
+</dd>
+<dt> <strong>Как создать окно FLTK/GLUT/Qt с текущими результатами параллельно с выполнением основных вычислений?</strong></dt>
+<dd><p>Следует создать отдельный поток для обработки сообщений в окно. Кросс-платформенный путь &ndash; использование библиотеки <code>pthread</code>. Обновление данных в окне можно выполнить вызовом функции <code>mglGraphFLTK::Update()</code>. Пример код имеет вид:
+</p><pre class="verbatim">//-----------------------------------------------------------------------------
+#include &lt;mgl/mgl_fltk.h&gt;
+#include &lt;pthread.h&gt;
+#include &lt;unistd.h&gt;
+
+mglPoint pnt;  // some global variable for changable data
+//-----------------------------------------------------------------------------
+int sample(mglGraph *gr, void *)
+{
+  gr-&gt;Box();  gr-&gt;Line(mglPoint(),pnt,&quot;Ar2&quot;); // just draw a vector
+  return 0;
+}
+//-----------------------------------------------------------------------------
+void *mgl_fltk_tmp(void *)      {       mglFlRun();     return 0;       }
+int main (int argc, char ** argv)
+{
+  mglGraphFLTK gr;
+  gr.Window(argc,argv,sample,&quot;test&quot;);  // create window
+  static pthread_t tmp;
+  pthread_create(&amp;tmp, 0, mgl_fltk_tmp, 0);
+  pthread_detach(tmp);    // run window handling in the separate thread
+  for(int i=0;i&lt;10;i++)   // do calculation
+  {
+    sleep(1);             // which can be very long
+    pnt = mglPoint(2*mgl_rnd()-1,2*mgl_rnd()-1);
+    gr.Update();          // update window
+  }
+  return 0;   // finish calculations and close the window
+}
+//-----------------------------------------------------------------------------
+</pre>
+
+
+</dd>
+<dt> <strong>Сколько человек участвовало в создании библиотеки?</strong></dt>
+<dd><p>Большую часть библиотеки написал один человек. Это результат примерно года работы на написание ядра библиотеки и базовых функций (в основном вечерами и по выходным). Процесс усовершенствования продолжается и теперь :). Скрипты сборки в основном написаны Д.Кулагиным, а экспорт в IDTF написан М.Видассовым.
+</p>
+</dd>
+<dt> <strong>Как мне показать растровую картинку на рисунке?</strong></dt>
+<dd><p>Можно импортировать ее в экземпляр <code>mglData</code> и построить с помощью функции <code>Dens()</code>. Например, для черно-белого рисунка можно использовать код: <code>mglData bmp; bmp.Import(&quot;fname.png&quot;,&quot;wk&quot;); gr-&gt;Dens(bmp,&quot;wk&quot;);</code>.
+</p>
+</dd>
+<dt> <strong>Как использовать MathGL в Qt, FLTK, wxWidgets ...?</strong></dt>
+<dd><p>Есть специальные классы (виджеты) для этих библиотек: QMathGL для Qt, Fl_MathGL для FLTK и т.д. Если Вы не нашли подходящий класс, то можете создать свой собственный виджет, рисующий растровое изображение из mglGraphAB::GetBits().
+</p>
+</dd>
+<dt> <strong>Как мне создать U3D файл (3D in PDF)?</strong></dt>
+<dd><p>Процедура состоит из двух шагов: создания файла IDTF и его конвертация в U3D. Можно использовать <a href="http://sourceforge.net/project/showfiles.php?group_id=152187&amp;package_id=300628">U3D tools</a> для конвертации IDTF в U3D. Ему требуется библиотека <a href="http://libharu.org">libharu</a> 2.1.0 или более поздняя. Для установки используйте обычную процедуру <code>./bootstrap, ./configure, make, sudo make install</code>. В результате появится программа IDTFConverter для конвертации файлов *.idtf в бинарные файлы *.u3d. Последние можно включить в PDF.
+</p>
+</dd>
+<dt> <strong>Как сменить шрифт (семейство шрифтов)?</strong></dt>
+<dd><p>Во-первых, надо загрузить файлы <a href="http://mathgl.sourceforge.net/download.html">отсюда</a> или <a href="http://sourceforge.net/project/showfiles.php?group_id=152187&amp;package_id=267177">отсюда</a>. Далее, в экземпляре mglGraph загружаем шрифты: <code>gr-&gt;SetFont(new mglFont(fontname,path));</code>. Здесь <var>fontname</var> &ndash; базовое имя шрифта, например &lsquo;<samp>STIX</samp>&rsquo;, и <var>path</var> &ndash; путь к папке с файлами шрифтов. Вызовите <code>gr-&gt;SetFont(NULL);</code> для использования шрифта по умолчанию.
+</p>
+</dd>
+<dt> <strong>Как нарисовать метки оси снаружи от графика?</strong></dt>
+<dd><p>Просто используйте отрицательные значения длины меток, например <code>gr-&gt;SetTickLen(-0.1);</code>.
+</p>
+</dd>
+</dl>
+
+<hr size="6">
+<a name="Interfaces"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#FAQ" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#C-interface" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_043d_0442e_0440_0444e_0439_0441_044b"></a>
+<h2 class="section">1.6 Интерфейсы</h2>
+
+<p>Библиотека MathGL имеет интерфейсы к целому ряду языков программирования. Большинство из них базируется на С интерфейсе и построены с помощью инструментария SWIG. Сюда входят Python, Java, Octave, Lisp, C#, Guile, Lua, Modula 3, Ocaml, Perl, PHP, Pike, R, Ruby, Tcl. Кроме того, есть отдельный интерфейс к Фортрану, имеющий похожий набор функций, но со слегка различным типом аргументов (использованы целые вместо указателей). Функции С и Фортран интерфейса помечены [функции С].
+Некоторое из языков представленных выше поддерживают объектное программирование (классы). Для них написан собственная оболочка и соответствующие функции/методы помечены (Python). Функции и методы доступные в С++ помечены (С++).
+Наконец, специальный командный язык MGL был написан для быстрого доступа к функциям C++ со всеми их возможностями. Скрипты MGL могут быть выполнены как из внешних программ (UDAV, mgl2png, mgl2eps и т.д.) так и из кода на C++/C/Python и пр. (see section <a href="mathgl_ru_7.html#mglParse-class">mglParse class</a>). Подробно эти команды описаны в <a href="mathgl_ru_8.html#MGL-interface">Язык MGL</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#C-interface">1.6.1 C интерфейс</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Python-interface">1.6.2 Python интерфейс</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="C-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Interfaces" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Python-interface" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Interfaces" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="C-_0438_043d_0442e_0440_0444e_0439_0441"></a>
+<h3 class="subsection">1.6.1 C интерфейс</h3>
+
+<p>C интерфейс является базовым для большинства других интерфейсов. Он содержит функции на чистом C для большинства методов классов MathGL. В отличие от членов-функций C++ классов, C функции в качестве аргументов должны явно иметь переменные типа HMGL (для графики) и/или HMDT (для массивов данных) для указания объекта рисования или данных. Таким образом, первым вызовом пользователя должно быть создание этих объектов с помощью функций <code>mgl_create_*()</code>, а последним &ndash; их удаление с помощью функций <code>mgl_delete_*()</code>.
+</p>
+<p>Все функции описанны в заголовочном файле <code>#include &lt;mgl/mgl_c.h&gt;</code> и используют переменные для идентификаторов объектов рисования/данных следующих типов:
+</p><ul>
+<li> 
+<code>HMGL</code> &mdash; Указатель на класс <code>mglGraph</code> (see section <a href="mathgl_ru_3.html#MathGL-core">Ядро MathGL</a>).
+</li><li> 
+<code>HMDT</code> &mdash; Указатель на класс <code>mglData</code> (see section <a href="mathgl_ru_6.html#mglData-class">Класс mglData</a>).
+</li><li> 
+<code>HMPR</code> &mdash; Указатель на класс <code>mglParse</code> (see section <a href="mathgl_ru_7.html#mglParse-class">mglParse class</a>)..
+</li></ul>
+<p>Эти переменные содержат идентификаторы объектов графики или данных. 
+</p>
+<p>Фортрановские функции имеют те же имена, что и функции C. Однако, есть различие: переменные типов <code>HMGL, HMDT</code> должны быть объявлены как целые достаточной разрядности (integer*4 на 32-битных системах или integer*8 на 64-битных системах). Все С функции являются процедурами для Фортрана (должны вызываться с помощью оператора call). Исключение составляют функции, возвращающие переменные типа <code>HMGL</code> или <code>HMDT</code>. Последние должны быть объявлены целыми  для использования в фортрановском коде. Также помните, что строки в фортране обозначаются одинарной кавычкой <code>&lt;/samp&gt;&amp;rsquo;</code>, а не двойной <code>&quot;</code> как в С/С++.
+</p>
+<p><strong>Создание и удаление графического объекта</strong>
+</p>
+<ul>
+<li> Функции для рисования в памяти:
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fgl"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_gl</b><i> ()</i></dt>
+<dd><p>Создает экземпляр класса mglGraphGL.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fzb"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_zb</b><i> (<code>int</code> width, <code>int</code> height)</i></dt>
+<dd><p>Создает экземпляр класса mglGraphZB с указанными размерами.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fps"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_ps</b><i> (<code>int</code> width, <code>int</code> height)</i></dt>
+<dd><p>Создает экземпляр класса mglGraphPS с указанными размерами.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fidtf"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_idtf</b><i> ()</i></dt>
+<dd><p>Создает экземпляр класса mglGraphIDTF.
+</p></dd></dl>
+
+</li><li> Функции для рисования в окне:
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fglut"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_glut</b><i> (<code>int (*</code>draw<code>)(HMGL gr, void *p)</code>, <code>const char *</code>title, <code>void *</code>par)</i></dt>
+<dd><p>Создает экземпляр класса mglGraphGLUT  и связанное с ним окно. Одновременно может быть открыто только одно окно. Описание аргументов функции см. в <a href="mathgl_ru_4.html#mglGraphAB-class">Класс mglGraphAB</a>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005ffltk"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_fltk</b><i> (<code>int (*</code>draw<code>)(HMGL gr, void *p)</code>, <code>const char *</code>title, <code>void *</code>par)</i></dt>
+<dd><p>Создает экземпляр класса mglGraphFLTK и связанное с ним окно. Одновременно может быть открыто несколько окно. Однако Вы должны вызвать функцию <code>mgl_fltk_run()</code> для начала обработки сообщений окну. Описание аргументов функции см. в <a href="mathgl_ru_4.html#mglGraphAB-class">Класс mglGraphAB</a>. Замечу, что параметр <var>draw</var> может быть равным <code>NULL</code> для отображения текущей статической картинки (анимация и слайды не доступны).
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fqt"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_qt</b><i> (<code>int (*</code>draw<code>)(HMGL gr, void *p)</code>, <code>const char *</code>title, <code>void *</code>par)</i></dt>
+<dd><p>Создает экземпляр класса mglGraphQT и связанное с ним окно. Одновременно может быть открыто несколько окно. Однако Вы должны вызвать функцию <code>mgl_qt_run()</code> для начала обработки сообщений окну. Описание аргументов функции см. в <a href="mathgl_ru_4.html#mglGraphAB-class">Класс mglGraphAB</a>. Замечу, что параметр <var>draw</var> может быть равным <code>NULL</code> для отображения текущей статической картинки (анимация и слайды не доступны).
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005ffltk_005frun"></a><u>C function:</u> <code>void</code> <b>mgl_fltk_run</b><i> ()</i></dt>
+<dd><p>Запускает цикл обработки сообщений FLTK. Обычно программа завершает функцию main() вызовом <code>return mgl_fltk_run();</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005ffltk_005fthread"></a><u>C function:</u> <code>void</code> <b>mgl_fltk_thread</b><i> ()</i></dt>
+<dd><p>Запускает цикл обработки сообщений FLTK. В отличие от <code>mgl_fltk_run()</code> цикл запускается в отдельном потоке, так что основная программа продолжает выполнение сразу.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fqt_005frun"></a><u>C function:</u> <code>void</code> <b>mgl_qt_run</b><i> ()</i></dt>
+<dd><p>Запускает цикл обработки сообщений Qt. Обычно программа завершает функцию main() вызовом <code>return mgl_qt_run();</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fqt_005fthread"></a><u>C function:</u> <code>void</code> <b>mgl_qt_thread</b><i> ()</i></dt>
+<dd><p>Запускает цикл обработки сообщений Qt. В отличие от <code>mgl_qt_run()</code> цикл запускается в отдельном потоке, так что основная программа продолжает выполнение сразу.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fupdate"></a><u>C function:</u> <code>void</code> <b>mgl_update</b><i> (<code>HMGL</code> graph)</i></dt>
+<dd><p>Обновляет содержимое экрана.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fset_005fshow_005fmouse_005fpos"></a><u>C function:</u> <code>void</code> <b>mgl_set_show_mouse_pos</b><i> (<code>HMGL</code> graph, <code>int</code> enable)</i></dt>
+<dd><p>Switch to show or not in the widget the last mouse click position.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fget_005flast_005fmouse_005fpos"></a><u>C function:</u> <code>void</code> <b>mgl_get_last_mouse_pos</b><i> (<code>HMGL</code> graph, <code>float *</code>x, <code>float *</code>y, <code>float *</code>z)</i></dt>
+<dd><p>Last position of mouse click.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcalc_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_calc_xyz</b><i> (<code>HMGL</code> graph, <code>int</code> xs, <code>int</code> ys, <code>float *</code>x, <code>float *</code>y, <code>float *</code>z)</i></dt>
+<dd><p>Calculate 3D coordinate {x,y,z} for screen point {xs,ys}. At this moment it ignore perspective and transformation formulas (curvilinear coordinates). The calculation are done for the last used InPlot (see section <a href="mathgl_ru_3.html#Transformation-matrix">Матрица преобразования</a>).
+</p></dd></dl>
+
+
+</li><li> Functions for data creation:
+<dl>
+<dt><a name="index-mgl_005fcreate_005fdata"></a><u>C function:</u> <code>HMDT</code> <b>mgl_create_data</b><i> ()</i></dt>
+<dd><p>Create simple instance of class mglData.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fdata_005fsize"></a><u>C function:</u> <code>HMDT</code> <b>mgl_create_data_size</b><i> (<code>int</code> nx, <code>int</code> ny, <code>int</code> nz)</i></dt>
+<dd><p>Create instance of class mglData with specified sizes.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fdata_005ffile"></a><u>C function:</u> <code>HMDT</code> <b>mgl_create_data_file</b><i> (<code>const char *</code>fname)</i></dt>
+<dd><p>Create instance of class mglData and fill it by data from text file.
+</p></dd></dl>
+
+</li><li> Each created object <strong>must</strong> be deleted after usage by functions:
+<dl>
+<dt><a name="index-mgl_005fdelete_005fgraph"></a><u>C function:</u> <code>void</code> <b>mgl_delete_graph</b><i> (<code>HMGL</code> graph)</i></dt>
+<dd><p>Delete the instance of class. Must be used after plotting for every created graphical object.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fdelete_005fdata"></a><u>C function:</u> <code>void</code> <b>mgl_delete_data</b><i> (<code>HMDT</code> dat)</i></dt>
+<dd><p>Delete the instance of class. Must be used after using for every created data object.
+</p></dd></dl>
+</li></ul>
+
+<hr size="6">
+<a name="Python-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#C-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Thanks" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Interfaces" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Python-_0438_043d_0442e_0440_0444e_0439_0441"></a>
+<h3 class="subsection">1.6.2 Python интерфейс</h3>
+
+<p>MathGL provide the interface to a set of languages via SWIG library. Some of these languages support classes. The typical example is Python &ndash; which is denoted in the chapter title.
+</p>
+<p>To use Python classes just execute &lsquo;<samp>import mathgl</samp>&rsquo;. The simplest example will be:
+</p><pre class="verbatim">import mathgl
+a=mathgl.mglGraph()
+a.Box()
+a.WritePNG(&lt;/samp&gt;&amp;rsquo;test.png&lt;/samp&gt;&amp;rsquo;)
+</pre><p>Alternatively you can import all classes from <code>mathgl</code> module and easily access MathGL classes: 
+</p><pre class="verbatim">from mathgl import *
+a=mglGraph()
+a.Box()
+a.WritePNG(&lt;/samp&gt;&amp;rsquo;test.png&lt;/samp&gt;&amp;rsquo;)
+</pre><p>It become useful if you will create many <code>mglData</code> object, for example.
+</p>
+<p>There are 2 classes in Python interface:
+</p><ul>
+<li> <code>mglGraph</code>
+&ndash; provide practically the same functionality as C++ class <code>mglGraph</code> (see section <a href="mathgl_ru_3.html#MathGL-core">Ядро MathGL</a>). But it is not abstract class and it allows one to select at construction stage which plotter (ZB or PS and so on) will be used.
+</li><li> <code>mglData</code>
+&ndash; is absolutely the same class as C++ <code>mglData</code> (see section <a href="mathgl_ru_6.html#mglData-class">Класс mglData</a>). But an additional feature to acess data values is added. You can use construction like this: <code>dat[i]=sth;</code> or <code>sth=dat[i]</code> at this flat representation of data is used (i.e., <var>i</var> can be in range 0...nx*nx*nz-1. Also you can import NumPy arrays as input arguments: <code>mgl_dat = mglData(numpy_dat);</code>.
+
+<p>To use Python classes just execute &lsquo;<samp>import mathgl</samp>&rsquo;. The simplest example will be:
+</p><pre class="verbatim">import mathgl
+a=mathgl.mglGraph()
+a.Box()
+a.WritePNG(&lt;/samp&gt;&amp;rsquo;test.png&lt;/samp&gt;&amp;rsquo;)
+</pre><p>Alternatively you can import all classes from <code>mathgl</code> module and easily access MathGL classes: 
+</p><pre class="verbatim">from mathgl import *
+a=mglGraph()
+a.Box()
+a.WritePNG(&lt;/samp&gt;&amp;rsquo;test.png&lt;/samp&gt;&amp;rsquo;)
+</pre><p>It become useful if you will create many <code>mglData</code> object, for example.
+</p>
+<p>There are 2 classes in Python interface:
+</p><ul>
+<li> <code>mglGraph</code>
+&ndash; provide practically the same functionality as C++ class <code>mglGraph</code> (see section <a href="mathgl_ru_3.html#MathGL-core">Ядро MathGL</a>). But it is not abstract class and it allows one to select at construction stage which plotter (ZB or PS and so on) will be used.
+</li><li> <code>mglData</code>
+&ndash; is absolutely the same class as C++ <code>mglData</code> (see section <a href="mathgl_ru_6.html#mglData-class">Класс mglData</a>). But an additional feature to acess data values is added. You can use construction like this: <code>dat[i]=sth;</code> or <code>sth=dat[i]</code> at this flat representation of data is used (i.e., <var>i</var> can be in range 0...nx*nx*nz-1.
+</li></ul>
+
+<p>There is main difference from C++ classes &ndash; Python class <code>mglGraph</code> don&lt;/samp&gt;&amp;rsquo;t have variables (options). All corresponding features are moved to methods.
+The core of MathGL Python class is <strong>mglGraph</strong> class. It contains a lot of plotting functions for 1D, 2D and 3D plots. So most of sections is describe its methods. Its constructor have following arguments:
+</p>
+<dl>
+<dt><a name="index--on-mglGraph-_0028Python_0029"></a><u>Constructor on mglGraph (Python):</u> <b><code></code></b><i> mglGraph (<code>int</code> kind=<code>0</code>, <code>int</code> width=<code>600</code>, <code>int</code> height=<code>400</code>)</i></dt>
+<dd><p>Create the instance of class mglGraph with specified sizes <var>width</var> and <var>height</var>. Parameter <var>type</var> may have following values: &lsquo;<samp>0</samp>&rsquo; &ndash; use <code>mglGraphZB</code> plotter (default), &lsquo;<samp>1</samp>&rsquo; &ndash; use <code>mglGraphPS</code> plotter, &lsquo;<samp>2</samp>&rsquo; &ndash; use <code>mglGraphGL</code> plotter, &lsquo;<samp>3</samp>&rsquo; &ndash; use <code>mglGraphIDTF</code> plotter.
+</p></dd></dl>
+</li></ul>
+
+<p>There is main difference from C++ classes &ndash; Python class <code>mglGraph</code> don&lt;/samp&gt;&amp;rsquo;t have variables (options). All corresponding features are moved to methods. The core of MathGL Python class is <strong>mglGraph</strong> class. It contains a lot of plotting functions for 1D, 2D and 3D plots. So most of sections is describe its methods. Its constructor have following arguments:
+</p>
+<dl>
+<dt><a name="index--on-mglGraph-_0028Python_0029-1"></a><u>Constructor on mglGraph (Python):</u> <b><code></code></b><i> mglGraph (<code>int</code> kind=<code>0</code>, <code>int</code> width=<code>600</code>, <code>int</code> height=<code>400</code>)</i></dt>
+<dd><p>Create the instance of class mglGraph with specified sizes <var>width</var> and <var>height</var>. Parameter <var>type</var> may have following values: &lsquo;<samp>0</samp>&rsquo; &ndash; use <code>mglGraphZB</code> plotter (default), &lsquo;<samp>1</samp>&rsquo; &ndash; use <code>mglGraphPS</code> plotter, &lsquo;<samp>2</samp>&rsquo; &ndash; use <code>mglGraphGL</code> plotter, &lsquo;<samp>3</samp>&rsquo; &ndash; use <code>mglGraphIDTF</code> plotter.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Thanks"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Python-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0411_043b_0430g_043e_0434_0430_0440_043d_043e_0441_0442_0438"></a>
+<h2 class="section">1.7 Благодарности</h2>
+
+<ul>
+<li>
+My special thanks to Marina Balakina for the patience during library writing and for the help in documentation writing and spelling.
+</li><li>
+I&lt;/samp&gt;&amp;rsquo;m thankful to D. Kulagin and S.M. Plis for making Debian packages.
+</li><li>
+I&lt;/samp&gt;&amp;rsquo;m thankful to M. Vidassov for the help in handling solid UTF-8 fonts.
+</li><li>
+I&lt;/samp&gt;&amp;rsquo;m thankful to N. Troickiy and V. Lipatov for making RPM packages.
+</li><li>
+I&lt;/samp&gt;&amp;rsquo;m thankful to S. Skobelev, A. Korotkevich, V. Onuchin, S.M. Plis, R. Kiselev, A. Ivanov, M. Vidiassov and V. Lipatov for fruitful comments.
+</li></ul>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_10.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_10.html
new file mode 100644
index 0000000..c595635
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_10.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: A. Символы TeX</title>
+
+<meta name="description" content="MathGL 1.11: A. Символы TeX">
+<meta name="keywords" content="MathGL 1.11: A. Символы TeX">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="TeX_002dlike-symbols"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_9.html#Stereo-image-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_0438_043c_0432_043e_043b_044b-TeX"></a>
+<h1 class="appendix">A. Символы TeX</h1>
+<p>Ниже приведен полный список TeX-их команд, распознаваемых MathGL. Если команда была не распознана, то она будет напечатана как есть с пропущенным символом &lsquo;<samp>\</samp>&rsquo;. Например, &lsquo;<samp>\#</samp>&rsquo; выдаст &ldquo;#&rdquo;, &lsquo;<samp>\\</samp>&rsquo; выдаст &ldquo;\&rdquo;, &lsquo;<samp>\qq</samp>&rsquo; выдаст &ldquo;qq&rdquo;.
+</p>
+<p><strong>Положение символов</strong>: _, ^, @.
+</p>
+<p><strong>Стиль текста</strong>: \big, \b, \textbf, \i, \textit, \bi, \r, \textrm, \a, \overline, \u, \underline, \w, \wire, #, \color[wkrgbcymhRGBCYMHWlenupqLENUPQ]
+</p>
+<p><strong>Корни</strong>: \sqrt, \sqrt3, \sqrt4
+</p>
+<p><strong>Дроби</strong>: \frac, \stack, \overset, \underset, \stackr, \stackl
+</p>
+<p><strong>Акценты</strong>: \hat, \tilde, \dot, \ddot, \dddot, \ddddot, \acute, \check, \grave, \vec, \bar, \breve
+</p>
+<p><strong>Специальные символы</strong>:
+\# (#), \% (%), \&amp; (&amp;), \^ (^).
+</p>
+<p>\AA (Å), \AE (Æ), \APLboxquestion (⍰), \APLboxupcaret (⍓), \APLnotbackslash (⍀), \APLnotslash (⌿), \Alpha (Α), \And (&amp;), \Angstrom (Å), \Barv (⫧), \BbbC (ℂ), \BbbGamma (ℾ), \BbbH (ℍ), \BbbN (ℕ), \BbbP (ℙ), \BbbPi (ℿ), \BbbQ (ℚ), \BbbR (ℝ), \BbbZ (ℤ), \Bbbgamma (ℽ), \Bbbpi (ℼ), \Bbbsum (⅀), \Beta (Β), \Bumpeq (≎), \Cap (⋒), \Chi (Χ), \Colon (∷), \Coloneq (⩴), \Cup (⋓), \DDownarrow (⟱), \DH (Ð), \DJ (Đ), \DashV (⫥), \DashVDash (⟚), \Dashv (⫤), \Ddownarrow (⤋), \Delta (Δ), \Digamma (Ϝ), \Doteq (≑), \Downarrow (⇓), \Epsilon (Ε), \Equiv (≣), \Eta (Η), \Eulerconst (ℇ), \Exclam (‼), \Finv (Ⅎ), \Game (⅁), \Gamma (Γ), \Gt (⪢), \Hermaphrodite (⚥), \Im (ℑ), \Iota (Ι), \Kappa (Κ), \Koppa (Ϟ), \L (Ł), \LLeftarrow (⭅), \Lambda (Λ), \Lbrbrak (⟬), \Ldsh (↲), \Leftarrow (⇐), \Leftrightarrow (⇔), \Lleftarrow (⇚), \Longleftarrow (⟸), \Longleftrightarrow (⟺), \Longmapsfrom (⟽), \Longmapsto (⟾), \Longrightarrow (⟹), \Lparengtr (⦕), \Lsh (↰), \Lt (⪡), \Lvzigzag (⧚), \Mapsfrom (⤆), \Mapsto (⤇), \Mu (Μ), \NG (Ŋ), \Nearrow (⇗), \Not (⫬), \Nu (Ν), \Nwarrow (⇖), \O (Ø), \OE (Œ), \Ohorn (Ơ), \Omega (Ω), \Omicron (Ο), \Otimes (⨷), \P (¶), \Phi (Φ), \Pi (Π), \Planckconst (ℎ), \Prec (⪻), \PropertyLine (⅊), \Psi (Ψ), \QED (∎), \Question (⁇), \RRightarrow (⭆), \Rbrbrak (⟭), \Rdsh (↳), \Re (ℜ), \Rho (Ρ), \Rightarrow (⇒), \Rparenless (⦖), \Rrightarrow (⇛), \Rsh (↱), \Rvzigzag (⧛), \S (§), \Sc (⪼), \Searrow (⇘), \Sigma (Σ), \Sqcap (⩎), \Sqcup (⩏), \Stigma (Ϛ), \Subset (⋐), \Supset (⋑), \Swarrow (⇙), \TH (Þ), \Tau (Τ), \Theta (Θ), \UUparrow (⟰), \Uhorn (Ư), \Uparrow (⇑), \Updownarrow (⇕), \Uuparrow (⤊), \VDash (⊫), \Vbar (⫫), \Vdash (⊩), \Vee (⩔), \Vert (‖), \Vvdash (⊪), \Vvert (⦀), \Wedge (⩓), \XBox (☒), \Xi (Ξ), \Yup (⅄), \Zbar (Ƶ), \Zeta (Ζ).
+</p>
+<p>\aa (å), \ac (∾), \accurrent (⏦), \acidfree (♾), \acwcirclearrow (⥀), \acwgapcirclearrow (⟲), \acwleftarcarrow (⤹), \acwopencirclearrow (↺), \acwoverarcarrow (⤺), \acwundercurvearrow (⤻), \adots (⋰), \ae (æ), \aleph (ℵ), \alpha (α), \amalg (⨿), \angdnr (⦟), \angle (∠), \angles (⦞), \angleubar (⦤), \approx (≈), \approxeq (≊), \approxeqq (⩰), \approxident (≋), \arceq (≘), \aries (♈), \assert (⊦), \ast (∗), \asteq (⩮), \astrosun (☉), \asymp (≍), \awint (⨑).
+</p>
+<p>\bNot (⫭), \backcong (≌), \backdprime (‶), \backepsilon (϶), \backprime (‵), \backsim (∽), \backsimeq (⋍), \backslash (\), \backtrprime (‷), \bagmember (⋿), \barV (⫪), \barcap (⩃), \barcup (⩂), \bardownharpoonleft (⥡), \bardownharpoonright (⥝), \barleftarrow (⇤), \barleftarrowrightarrowbar (↹), \barleftharpoondown (⥖), \barleftharpoonup (⥒), \barovernorthwestarrow (↸), \barrightarrowdiamond (⤠), \barrightharpoondown (⥟), \barrightharpoonup (⥛), \baruparrow (⤒), \barupharpoonleft (⥘), \barupharpoonright (⥔), \barvee (⊽), \barwedge (⊼), \bbrktbrk (⎶), \bdHrule (═), \bdVrule (║), \bdbVbH (╬), \bdbVbh (╫), \bdbVlH (╣), \bdbVlh (╢), \bdbVrH (╠), \bdbVrh (╟), \bdbvbH (╪), \bdbvbh (┼), \bdbvlH (╡), \bdbvlh (┤), \bdbvrH (╞), \bdbvrh (├), \bddVbH (╦), \bddVbh (╥), \bddVlH (╗), \bddVlh (╖), \bddVrH (╔), \bddVrh (╓), \bddvbH (╤), \bddvbh (┬), \bddvlH (╕), \bddvlh (┐), \bddvrH (╒), \bddvrh (┌), \bdhrule (─), \bdnesw (╱), \bdnwse (╲), \bdquadhdash (┈), \bdquadvdash (┊), \bdtriplevdash (┆), \bduVbH (╩), \bduVbh (╨), \bduVlH (╝), \bduVlh (╜), \bduVrH (╚), \bduVrh (╙), \bduvbH (╧), \bduvbh (┴), \bduvlH (╛), \bduvlh (┘), \bduvrH (╘), \bduvrh (└), \bdvrule (│), \because (∵), \benzenr (⏣), \beta (β), \beth (ℶ), \between (≬), \bigblacktriangledown (▼), \bigblacktriangleup (▲), \bigbot (⟘), \bigcap (⋂), \bigcup (⋃), \bigslopedvee (⩗), \bigslopedwedge (⩘), \bigstar (★), \bigtop (⟙), \bigtriangledown (▽), \bigtriangleup (△), \bigvee (⋁), \bigwedge (⋀), \bigwhitestar (☆), \blackcircledownarrow (⧭), \blackcircledrightdot (⚈), \blackcircledsanseight (➑), \blackcircledsansfive (➎), \blackcircledsansfour (➍), \blackcircledsansnine (➒), \blackcircledsansone (➊), \blackcircledsansseven (➐), \blackcircledsanssix (➏), \blackcircledsansten (➓), \blackcircledsansthree (➌), \blackcircledsanstwo (➋), \blackcircledtwodots (⚉), \blackcircleulquadwhite (◕), \blackdiamonddownarrow (⧪), \blackhourglass (⧗), \blackinwhitediamond (◈), \blackinwhitesquare (▣), \blacklefthalfcircle (◖), \blackpointerleft (◄), \blackpointerright (►), \blackrighthalfcircle (◗), \blacksmiley (☻), \blacktriangle (▴), \blacktriangledown (▾), \blacktriangleleft (◀), \blacktriangleright (▶), \blkhorzoval (⬬), \blkvertoval (⬮), \blockfull (█), \blockhalfshaded (▒), \blocklefthalf (▌), \blocklowhalf (▄), \blockqtrshaded (░), \blockrighthalf (▐), \blockthreeqtrshaded (▓), \blockuphalf (▀), \bot (⊥), \botsemicircle (◡), \bowtie (⋈), \box (◻), \boxast (⧆), \boxbar (◫), \boxbox (⧈), \boxbslash (⧅), \boxcircle (⧇), \boxdiag (⧄), \boxdot (⊡), \boxminus (⊟), \boxonbox (⧉), \boxplus (⊞), \boxtimes (⊠), \bsimilarleftarrow (⭁), \bsimilarrightarrow (⭇), \bsolhsub (⟈), \btimes (⨲), \bullet (∙), \bullseye (◎), \bumpeq (≏), \bumpeqq (⪮).
+</p>
+<p>\calB (ℬ), \calE (ℰ), \calF (ℱ), \calH (ℋ), \calM (ℳ), \calR (ℛ), \cap (∩), \capdot (⩀), \capwedge (⩄), \caretinsert (‸), \carreturn (⏎), \carriagereturn (↵), \ccwundercurvearrow (⤿), \cdot (⋅), \cdotp (·), \cdots (⋯), \cdprime (ʺ), \checkmark (✓), \chi (χ), \cirE (⧃), \cirbot (⟟), \circ (∘), \circeq (≗), \circfint (⨐), \circlebottomhalfblack (◒), \circledA (Ⓐ), \circledB (Ⓑ), \circledC (Ⓒ), \circledD (Ⓓ), \circledE (Ⓔ), \circledF (Ⓕ), \circledG (Ⓖ), \circledH (Ⓗ), \circledI (Ⓘ), \circledJ (Ⓙ), \circledK (Ⓚ), \circledL (Ⓛ), \circledM (Ⓜ), \circledN (Ⓝ), \circledO (Ⓞ), \circledP (Ⓟ), \circledQ (Ⓠ), \circledR (Ⓡ), \circledS (Ⓢ), \circledT (Ⓣ), \circledU (Ⓤ), \circledV (Ⓥ), \circledW (Ⓦ), \circledX (Ⓧ), \circledY (Ⓨ), \circledZ (Ⓩ), \circleda (ⓐ), \circledast (⊛), \circledb (ⓑ), \circledbullet (⦿), \circledc (ⓒ), \circledcirc (⊚), \circledd (ⓓ), \circleddash (⊝), \circlede (ⓔ), \circledeight (⑧), \circledequal (⊜), \circledf (ⓕ), \circledfive (⑤), \circledfour (④), \circledg (ⓖ), \circledh (ⓗ), \circledi (ⓘ), \circledj (ⓙ), \circledk (ⓚ), \circledl (ⓛ), \circledm (ⓜ), \circledn (ⓝ), \circlednine (⑨), \circledo (ⓞ), \circledone (①), \circledownarrow (⧬), \circledp (ⓟ), \circledparallel (⦷), \circledq (ⓠ), \circledr (ⓡ), \circledrightdot (⚆), \circleds (ⓢ), \circledsanseight (➇), \circledsansfive (➄), \circledsansfour (➃), \circledsansnine (➈), \circledsansone (➀), \circledsansseven (➆), \circledsanssix (➅), \circledsansten (➉), \circledsansthree (➂), \circledsanstwo (➁), \circledseven (⑦), \circledsix (⑥), \circledstar (✪), \circledt (ⓣ), \circledthree (③), \circledtwo (②), \circledtwodots (⚇), \circledu (ⓤ), \circledv (ⓥ), \circledvert (⦶), \circledw (ⓦ), \circledwhitebullet (⦾), \circledx (ⓧ), \circledy (ⓨ), \circledz (ⓩ), \circledzero (⓪), \circlehbar (⦵), \circlelefthalfblack (◐), \circlellquad (◵), \circlelrquad (◶), \circleonleftarrow (⬰), \circleonrightarrow (⇴), \circlerighthalfblack (◑), \circletophalfblack (◓), \circleulquad (◴), \circleurquad (◷), \circleurquadblack (◔), \circlevertfill (◍), \cirmid (⫯), \cirscir (⧂), \clangle (〈), \closedvarcap (⩍), \closedvarcup (⩌), \closedvarcupsmashprod (⩐), \closure (⁐), \cloverleaf (⌘), \clubsuit (♣), \colon (:), \colon (∶), \coloneq (≔), \commaminus (⨩), \complement (∁), \concavediamond (⟡), \concavediamondtickleft (⟢), \concavediamondtickright (⟣), \cong (≅), \congdot (⩭), \conictaper (⌲), \conjunction (☌), \coprod (∐), \cprime (ʹ), \crangle (〉), \csub (⫏), \csube (⫑), \csup (⫐), \csupe (⫒), \cuberoot (∛), \cup (∪), \cupdot (⊍), \cupleftarrow (⊌), \cupvee (⩅), \curlyeqprec (⋞), \curlyeqsucc (⋟), \curlyvee (⋎), \curlywedge (⋏), \curvearrowleft (↶), \curvearrowleftplus (⤽), \curvearrowright (↷), \curvearrowrightminus (⤼), \cwcirclearrow (⥁), \cwgapcirclearrow (⟳), \cwopencirclearrow (↻), \cwrightarcarrow (⤸), \cwundercurvearrow (⤾), \cylcty (⌭).
+</p>
+<p>\dag (†), \dagger (†), \daleth (ℸ), \danger (☡), \dashV (⫣), \dashVdash (⟛), \dashcolon (∹), \dashleftharpoondown (⥫), \dashrightharpoondown (⥭), \dashv (⊣), \dbkarow (⤏), \ddag (‡), \ddagger (‡), \ddots (⋱), \ddotseq (⩷), \delta (δ), \dh (ð), \diameter (⌀), \diamond (◇), \diamondbotblack (⬙), \diamondcdot (⟐), \diamondleftarrow (⤝), \diamondleftarrowbar (⤟), \diamondleftblack (⬖), \diamondrightblack (⬗), \diamondsuit (♢), \diamondtopblack (⬘), \dicei (⚀), \diceii (⚁), \diceiii (⚂), \diceiv (⚃), \dicev (⚄), \dicevi (⚅), \digamma (ϝ), \dingasterisk (✽), \dircurrent (⎓), \disin (⋲), \div (÷), \divideontimes (⋇), \dj (đ), \dlcrop (⌍), \doteq (≐), \dotequiv (⩧), \dotminus (∸), \dotplus (∔), \dots (…), \dotsim (⩪), \dotsminusdots (∺), \dottedcircle (◌), \dottedsquare (⬚), \dottimes (⨰), \doublebarvee (⩢), \doublebarwedge (⩞), \doubleplus (⧺), \downarrow (↓), \downarrowbar (⤓), \downarrowbarred (⤈), \downdasharrow (⇣), \downdownarrows (⇊), \downfishtail (⥿), \downharpoonleft (⇃), \downharpoonleftbar (⥙), \downharpoonright (⇂), \downharpoonrightbar (⥕), \downharpoonsleftright (⥥), \downrightcurvedarrow (⤵), \downtriangleleftblack (⧨), \downtrianglerightblack (⧩), \downuparrows (⇵), \downupharpoonsleftright (⥯), \downwhitearrow (⇩), \downzigzagarrow (↯), \dprime (″), \draftingarrow (➛), \drbkarow (⤐), \drcrop (⌌), \dsol (⧶), \dsub (⩤), \dualmap (⧟).
+</p>
+<p>\earth (♁), \egsdot (⪘), \eighthnote (♪), \elinters (⏧), \ell (ℓ), \elsdot (⪗), \emdash (—), \emptyset (∅), \emptysetoarr (⦳), \emptysetoarrl (⦴), \emptysetobar (⦱), \emptysetocirc (⦲), \endash (–), \enleadertwodots (‥), \envelope (✉), \eparsl (⧣), \epsilon (ϵ), \eqcirc (≖), \eqcolon (≕), \eqdef (≝), \eqdot (⩦), \eqeq (⩵), \eqeqeq (⩶), \eqgtr (⋝), \eqless (⋜), \eqqgtr (⪚), \eqqless (⪙), \eqqplus (⩱), \eqqsim (⩳), \eqqslantgtr (⪜), \eqqslantless (⪛), \eqsim (≂), \eqslantgtr (⪖), \eqslantless (⪕), \equalleftarrow (⭀), \equalparallel (⋕), \equalrightarrow (⥱), \equiv (≡), \equivDD (⩸), \equivVert (⩨), \equivVvert (⩩), \eqvparsl (⧥), \errbarblackcircle (⧳), \errbarblackdiamond (⧱), \errbarblacksquare (⧯), \errbarcircle (⧲), \errbardiamond (⧰), \errbarsquare (⧮), \eta (η), \euro (€), \exists (∃).
+</p>
+<p>\fallingdotseq (≒), \fbowtie (⧓), \fcmp (⨾), \fdiagovnearrow (⤯), \fdiagovrdiag (⤬), \female (♀), \figdash (‒), \fint (⨏), \fisheye (◉), \flat (♭), \fltns (⏥), \forall (∀), \forks (⫝̸), \forksnot (⫝), \forkv (⫙), \fourthroot (∜), \fourvdots (⦙), \fracfiveeighths (⅝), \fracfivesixths (⅚), \fracfourfifths (⅘), \fraconeeighth (⅛), \fraconefifth (⅕), \fraconesixth (⅙), \fraconethird (⅓), \fracseveneights (⅞), \fracslash (⁄), \fracthreeeighths (⅜), \fracthreefifths (⅗), \fractwofifths (⅖), \fractwothirds (⅔), \frakC (ℭ), \frakH (ℌ), \frakZ (ℨ), \frown (⌢), \frownie (☹), \fullouterjoin (⟗).
+</p>
+<p>\gamma (γ), \ge (≥), \geq (≥), \geqq (≧), \geqslant (⩾), \gescc (⪩), \gesdot (⪀), \gesdoto (⪂), \gesdotol (⪄), \gesles (⪔), \gets (←), \gg (≫), \ggg (⋙), \gggnest (⫸), \gimel (ℷ), \glE (⪒), \gla (⪥), \gleichstark (⧦), \glj (⪤), \gnapprox (⪊), \gneq (⪈), \gneqq (≩), \gnsim (⋧), \greater (&gt;), \gsime (⪎), \gsiml (⪐), \gtcc (⪧), \gtcir (⩺), \gtlpar (⦠), \gtquest (⩼), \gtrapprox (⪆), \gtrarr (⥸), \gtrdot (⋗), \gtreqless (⋛), \gtreqqless (⪌), \gtrless (≷), \gtrsim (≳), \guillemotleft («), \guillemotright (»), \guilsinglleft (‹), \guilsinglright (›).
+</p>
+<p>\harrowextender (⎯), \hatapprox (⩯), \hbar (ℏ), \heartsuit (♡), \hermitmatrix (⊹), \hexagon (⎔), \hexagonblack (⬣), \hiraganano (の), \hknearrow (⤤), \hknwarrow (⤣), \hksearow (⤥), \hkswarow (⤦), \hookleftarrow (↩), \hookrightarrow (↪), \horizbar (―), \hourglass (⧖), \house (⌂), \hrectangle (▭), \hrectangleblack (▬), \hslash (ℏ), \hyphenbullet (⁃), \hzigzag (〰).
+</p>
+<p>\iiiint (⨌), \iiint (∭), \iinfin (⧜), \iint (∬), \imageof (⊷), \in (∈), \incare (℅), \increment (∆), \infty (∞), \int (∫), \intBar (⨎), \intbar (⨍), \intbottom (⌡), \intcap (⨙), \intclockwise (∱), \intcup (⨚), \intercal (⊺), \interleave (⫴), \intextender (⎮), \intlharhk (⨗), \intprod (⨼), \intprodr (⨽), \inttop (⌠), \intx (⨘), \inversebullet (◘), \inversewhitecircle (◙), \invnot (⌐), \invwhitelowerhalfcircle (◛), \invwhiteupperhalfcircle (◚), \iota (ι), \ipasupgamma (ˠ), \ipasupl (ˡ), \ipasuprerglotstpp (ˤ), \ipasups (ˢ), \ipasupx (ˣ), \ipaunaspirated (˭), \ipavoicing (ˬ), \isinE (⋹), \isindot (⋵), \isinobar (⋷), \isins (⋴), \isinvb (⋸), \itBbbD (ⅅ), \itBbbd (ⅆ), \itBbbe (ⅇ), \itBbbi (ⅈ), \itBbbj (ⅉ).
+</p>
+<p>\jupiter (♃), \kappa (κ), \kernelcontraction (∻), \koppa (ϟ).
+</p>
+<p>\l (ł), \lAngle (⟪), \lBrace (⦃), \lBrack (⟦), \lParen (⦅), \lambda (λ), \lambdabar (ƛ), \langle (⟨), \langledot (⦑), \laplac (⧠), \lasp (ʽ), \lat (⪫), \late (⪭), \lbag (⟅), \lblkbrbrak (⦗), \lbrace ({), \lbracelend (⎩), \lbracemid (⎨), \lbraceuend (⎧), \lbrack ([), \lbrackextender (⎢), \lbracklend (⎣), \lbracklltick (⦏), \lbrackubar (⦋), \lbrackuend (⎡), \lbrackultick (⦍), \lbrbrak (❲), \lceil (⌈), \lcurvyangle (⧼), \ldasharrhead (⇠), \le (≤), \leadsto (↝), \leftarrow (←), \leftarrowapprox (⭊), \leftarrowbackapprox (⭂), \leftarrowbsimilar (⭋), \leftarrowless (⥷), \leftarrowonoplus (⬲), \leftarrowplus (⥆), \leftarrowshortrightarrow (⥃), \leftarrowsimilar (⥳), \leftarrowsubset (⥺), \leftarrowtail (↢), \leftarrowtriangle (⇽), \leftarrowx (⬾), \leftbkarrow (⤌), \leftcurvedarrow (⬿), \leftdasharrow (⇠), \leftdasharrowhead (⇡), \leftdbkarrow (⤎), \leftdbltail (⤛), \leftdotarrow (⬸), \leftdowncurvedarrow (⤶), \leftfishtail (⥼), \leftharpoondown (↽), \leftharpoondownbar (⥞), \leftharpoonsupdown (⥢), \leftharpoonup (↼), \leftharpoonupbar (⥚), \leftharpoonupdash (⥪), \leftleftarrows (⇇), \leftmoon (☾), \leftouterjoin (⟕), \leftrightarrow (↔), \leftrightarrowcircle (⥈), \leftrightarrows (⇆), \leftrightarrowtriangle (⇿), \leftrightharpoondowndown (⥐), \leftrightharpoondownup (⥋), \leftrightharpoons (⇋), \leftrightharpoonsdown (⥧), \leftrightharpoonsup (⥦), \leftrightharpoonupdown (⥊), \leftrightharpoonupup (⥎), \leftrightsquigarrow (↭), \leftsquigarrow (↜), \leftsquigarrow (⇜), \lefttail (⤙), \leftthreearrows (⬱), \leftthreetimes (⋋), \leftwhitearrow (⇦), \leq (≤), \leqq (≦), \leqqslant (⫹), \leqqslant (⫺), \leqslant (⩽), \lescc (⪨), \lesdot (⩿), \lesdoto (⪁), \lesdotor (⪃), \lesges (⪓), \less (&lt;), \lessapprox (⪅), \lessdot (⋖), \lesseqgtr (⋚), \lesseqqgtr (⪋), \lessgtr (≶), \lesssim (≲), \lfbowtie (⧑), \lfloor (⌊), \lftimes (⧔), \lgE (⪑), \lgblkcircle (⬤), \lgblksquare (⬛), \lgwhtcircle (◯), \lgwhtsquare (⬜), \lhd (⊲), \linefeed (↴), \ll (≪), \llangle (⦉), \llarc (◟), \llblacktriangle (◣), \llcorner (⌞), \lll (⋘), \lllnest (⫷), \llparenthesis (⦇), \lltriangle (◺), \lmoustache (⎰), \lnapprox (⪉), \lneq (⪇), \lneqq (≨), \lnsim (⋦), \longdashv (⟞), \longdivision (⟌), \longleftarrow (⟵), \longleftrightarrow (⟷), \longleftsquigarrow (⬳), \longmapsfrom (⟻), \longmapsto (⟼), \longrightarrow (⟶), \longrightsquigarrow (⟿), \looparrowleft (↫), \looparrowright (↬), \lowint (⨜), \lozenge (◊), \lozengeminus (⟠), \lparenextender (⎜), \lparenlend (⎝), \lparenless (⦓), \lparenuend (⎛), \lq (‘), \lrarc (◞), \lrblacktriangle (◢), \lrcorner (⌟), \lrtriangle (◿), \lrtriangleeq (⧡), \lsime (⪍), \lsimg (⪏), \lsqhook (⫍), \ltcc (⪦), \ltcir (⩹), \ltimes (⋉), \ltlarr (⥶), \ltquest (⩻), \ltrivb (⧏), \lvboxline (⎸), \lvzigzag (⧘).
+</p>
+<p>\male (♂), \maltese (✠), \mapsdown (↧), \mapsfrom (↤), \mapsto (↦), \mapsup (↥), \mdblkdiamond (⬥), \mdblklozenge (⬧), \mdblkrcl (⚫), \mdblksquare (◼), \mdlgblkcircle (●), \mdlgblkdiamond (◆), \mdlgblklozenge (⧫), \mdlgblksquare (■), \mdlgwhtcircle (○), \mdlgwhtdiamond (◇), \mdlgwhtsquare (□), \mdsmblkcircle (⦁), \mdsmblksquare (◾), \mdsmwhtcircl (⚬), \mdsmwhtsquare (◽), \mdwhtcircl (⚪), \mdwhtdiamond (⬦), \mdwhtlozenge (⬨), \mdwhtsquare (◻), \measangledltosw (⦯), \measangledrtose (⦮), \measangleldtosw (⦫), \measanglelutonw (⦩), \measanglerdtose (⦪), \measanglerutone (⦨), \measangleultonw (⦭), \measangleurtone (⦬), \measeq (≞), \measuredangle (∡), \measuredangleleft (⦛), \measuredrightangle (⊾), \medblackstar (⭑), \medmathspace ( ), \medwhitestar (⭐), \mercury (☿), \mho (℧), \mid (∣), \midbarvee (⩝), \midbarwedge (⩜), \midcir (⫰), \minus (−), \minusdot (⨪), \minusfdots (⨫), \minusrdots (⨬), \mlcp (⫛), \models (⊧), \mp (∓), \mu (μ), \multimap (⊸), \multimapinv (⟜).
+</p>
+<p>\nHdownarrow (⇟), \nHuparrow (⇞), \nLeftarrow (⇍), \nLeftrightarrow (⇎), \nRightarrow (⇏), \nVDash (⊯), \nVdash (⊮), \nVleftarrow (⇺), \nVleftarrowtail (⬺), \nVleftrightarrow (⇼), \nVrightarrow (⇻), \nVrightarrowtail (⤕), \nVtwoheadleftarrow (⬵), \nVtwoheadleftarrowtail (⬽), \nVtwoheadrightarrow (⤁), \nVtwoheadrightarrowtail (⤘), \nabla (∇), \napprox (≉), \nasymp (≭), \natural (♮), \ncong (≇), \ne (≠), \nearrow (↗), \neg (¬), \neovnwarrow (⤱), \neovsearrow (⤮), \neptune (♆), \neq (≠), \nequiv (≢), \neswarrow (⤢), \neuter (⚲), \nexists (∄), \ng (ŋ), \ngeq (≱), \ngtr (≯), \ngtrless (≹), \ngtrsim (≵), \nhVvert (⫵), \nhpar (⫲), \ni (∋), \niobar (⋾), \nis (⋼), \nisd (⋺), \nleftarrow (↚), \nleftrightarrow (↮), \nleq (≰), \nless (≮), \nlessgtr (≸), \nlesssim (≴), \nmid (∤), \nni (∌), \nobreakhyphen (‑), \notin (∉), \nparallel (∦), \npolint (⨔), \nprec (⊀), \npreccurlyeq (⋠), \nrightarrow (↛), \nsim (≁), \nsime (≄), \nsqsubseteq (⋢), \nsqsupseteq (⋣), \nsubset (⊄), \nsubseteq (⊈), \nsucc (⊁), \nsucccurlyeq (⋡), \nsupset (⊅), \nsupseteq (⊉), \ntriangleleft (⋪), \ntrianglelefteq (⋬), \ntriangleright (⋫), \ntrianglerighteq (⋭), \nu (ν), \nvDash (⊭), \nvLeftarrow (⤂), \nvLeftrightarrow (⤄), \nvRightarrow (⤃), \nvdash (⊬), \nvinfty (⧞), \nvleftarrow (⇷), \nvleftarrowtail (⬹), \nvleftrightarrow (⇹), \nvrightarrow (⇸), \nvrightarrowtail (⤔), \nvtwoheadleftarrow (⬴), \nvtwoheadleftarrowtail (⬼), \nvtwoheadrightarrow (⤀), \nvtwoheadrightarrowtail (⤗), \nwarrow (↖), \nwovnearrow (⤲), \nwsearrow (⤡).
+</p>
+<p>\o (ø), \obar (⌽), \obot (⦺), \obrbrak (⏠), \obslash (⦸), \odiv (⨸), \odot (⊙), \odotslashdot (⦼), \oe (œ), \ogreaterthan (⧁), \ohorn (ơ), \oiiint (∰), \oiint (∯), \oint (∮), \ointctrclockwise (∳), \olcross (⦻), \oldKoppa (Ϙ), \oldkoppa (ϙ), \olessthan (⧀), \omega (ω), \omicron (ο), \ominus (⊖), \operp (⦹), \oplus (⊕), \opluslhrim (⨭), \oplusrhrim (⨮), \origof (⊶), \oslash (⊘), \otimes (⊗), \otimeshat (⨶), \otimeslhrim (⨴), \otimesrhrim (⨵), \overbrace (⏞), \overbracket (⎴), \overline (‾), \overparen (⏜), \owns (∋).
+</p>
+<p>\parallel (∥), \parallelogram (▱), \parallelogramblack (▰), \parsim (⫳), \partial (∂), \partialmeetcontraction (⪣), \pentagon (⬠), \pentagonblack (⬟), \perp (⟂), \perps (⫡), \phi (ϕ), \phone (☎), \pi (π), \pitchfork (⋔), \plusdot (⨥), \pluseqq (⩲), \plushat (⨣), \plussim (⨦), \plussubtwo (⨧), \plustrif (⨨), \pluto (♇), \pm (±), \pointnt (⨕), \postalmark (〒), \prec (≺), \precapprox (⪷), \preccurlyeq (≼), \preceq (⪯), \preceqq (⪳), \precnapprox (⪹), \precneq (⪱), \precneqq (⪵), \precnsim (⋨), \precsim (≾), \prime (′), \prod (∏), \profalar (⌮), \profline (⌒), \profsurf (⌓), \propto (∝), \prurel (⊰), \psi (ψ), \pullback (⟓), \pushout (⟔).
+</p>
+<p>\qprime (⁗), \quarternote (♩), \questeq (≟), \quotdblbase („), \quotdblright (‟), \quotsinglbase (‚), \quotsinglright (‛).
+</p>
+<p>\rAngle (⟫), \rBrace (⦄), \rBrack (⟧), \rParen (⦆), \rangle (⟩), \rangledot (⦒), \rangledownzigzagarrow (⍼), \rasp (ʼ), \rbag (⟆), \rblkbrbrak (⦘), \rbrace (}), \rbracelend (⎭), \rbracemid (⎬), \rbraceuend (⎫), \rbrack (]), \rbrackextender (⎥), \rbracklend (⎦), \rbracklrtick (⦎), \rbrackubar (⦌), \rbrackuend (⎤), \rbrackurtick (⦐), \rbrbrak (❳), \rceil (⌉), \rcurvyangle (⧽), \rdiagovfdiag (⤫), \rdiagovsearrow (⤰), \recorder (⌕), \revangle (⦣), \revangleubar (⦥), \revemptyset (⦰), \revnmid (⫮), \rfbowtie (⧒), \rfloor (⌋), \rftimes (⧕), \rhd (⊳), \rho (ρ), \righarrowbsimilar (⭌), \rightangle (∟), \rightanglemdot (⦝), \rightanglesqr (⦜), \rightarrow (→), \rightarrowapprox (⥵), \rightarrowbackapprox (⭈), \rightarrowbar (⇥), \rightarrowdiamond (⤞), \rightarrowgtr (⭃), \rightarrowonoplus (⟴), \rightarrowplus (⥅), \rightarrowshortleftarrow (⥂), \rightarrowsimilar (⥴), \rightarrowsupset (⭄), \rightarrowtail (↣), \rightarrowtriangle (⇾), \rightarrowx (⥇), \rightbkarrow (⤍), \rightcurvedarrow (⤳), \rightdasharrow (⇢), \rightdbltail (⤜), \rightdotarrow (⤑), \rightdowncurvedarrow (⤷), \rightfishtail (⥽), \rightharpoondown (⇁), \rightharpoondownbar (⥗), \rightharpoonsupdown (⥤), \rightharpoonup (⇀), \rightharpoonupbar (⥓), \rightharpoonupdash (⥬), \rightimply (⥰), \rightleftarrows (⇄), \rightleftharpoons (⇌), \rightleftharpoonsdown (⥩), \rightleftharpoonsup (⥨), \rightmoon (☽), \rightouterjoin (⟖), \rightpentagon (⭔), \rightpentagonblack (⭓), \rightrightarrows (⇉), \rightsquigarrow (↝), \rightsquigarrow (⇝), \righttail (⤚), \rightthreearrows (⇶), \rightthreetimes (⋌), \rightwhitearrow (⇨), \ringplus (⨢), \risingdotseq (≓), \rmoustache (⎱), \rparenextender (⎟), \rparengtr (⦔), \rparenlend (⎠), \rparenuend (⎞), \rppolint (⨒), \rq (’), \rrangle (⦊), \rrparenthesis (⦈), \rsolbar (⧷), \rsqhook (⫎), \rsub (⩥), \rtimes (⋊), \rtriltri (⧎), \ruledelayed (⧴), \rvboxline (⎹), \rvzigzag (⧙).
+</p>
+<p>\sampi (ϡ), \sansLmirrored (⅃), \sansLturned (⅂), \saturn (♄), \scissors (✂), \scpolint (⨓), \scrB (ℬ), \scrE (ℰ), \scrF (ℱ), \scrH (ℋ), \scrI (ℐ), \scrL (ℒ), \scrM (ℳ), \scrR (ℛ), \scre (ℯ), \scrg (ℊ), \scro (ℴ), \scurel (⊱), \searrow (↘), \seovnearrow (⤭), \setminus (∖), \setminus (⧵), \sharp (♯), \shortdowntack (⫟), \shortleftarrow (←), \shortlefttack (⫞), \shortrightarrow (→), \shortrightarrowleftarrow (⥄), \shortuptack (⫠), \shuffle (⧢), \sigma (σ), \silon (υ), \silon (ϒ), \sim (∼), \simeq (≃), \simgE (⪠), \simgtr (⪞), \similarleftarrow (⭉), \similarrightarrow (⥲), \simlE (⪟), \simless (⪝), \simminussim (⩬), \simneqq (≆), \simplus (⨤), \simrdots (⩫), \sinewave (∿), \slash (∕), \smallblacktriangleleft (◂), \smallblacktriangleright (▸), \smalldiamond (⋄), \smallin (∊), \smallint (∫), \smallni (∍), \smallsetminus (∖), \smalltriangleleft (◃), \smalltriangleright (▹), \smashtimes (⨳), \smblkdiamond (⬩), \smblklozenge (⬪), \smblksquare (▪), \smeparsl (⧤), \smile (⌣), \smiley (☺), \smt (⪪), \smte (⪬), \smwhitestar (⭒), \smwhtcircle (◦), \smwhtlozenge (⬫), \smwhtsquare (▫), \spadesuit (♠), \sphericalangle (∢), \sphericalangleup (⦡), \sqcap (⊓), \sqcup (⊔), \sqint (⨖), \sqlozenge (⌑), \sqrt (√), \sqrt3 (∛), \sqrt4 (∜), \sqrtbottom (⎷), \sqsubset (⊏), \sqsubseteq (⊑), \sqsubsetneq (⋤), \sqsupset (⊐), \sqsupseteq (⊒), \sqsupsetneq (⋥), \squarecrossfill (▩), \squaregrayfill (▩), \squarehfill (▤), \squarehvfill (▦), \squareleftblack (◧), \squareleftblack (◨), \squarellblack (⬕), \squarellquad (◱), \squarelrblack (◪), \squarelrquad (◲), \squareneswfill (▨), \squarenwsefill (▧), \squareulblack (◩), \squareulquad (◰), \squareurblack (⬔), \squareurquad (◳), \squarevfill (▥), \squoval (▢), \ss (ß), \star (⋆), \stareq (≛), \sterling (£), \stigma (ϛ), \strns (⏤), \subedot (⫃), \submult (⫁), \subrarr (⥹), \subset (⊂), \subsetapprox (⫉), \subsetcirc (⟃), \subsetdot (⪽), \subseteq (⊆), \subseteqq (⫅), \subsetneq (⊊), \subsetneqq (⫋), \subsetplus (⪿), \subsim (⫇), \subsub (⫕), \subsup (⫓), \succ (≻), \succapprox (⪸), \succcurlyeq (≽), \succeq (⪰), \succeqq (⪴), \succnapprox (⪺), \succneq (⪲), \succneqq (⪶), \succnsim (⋩), \succsim (≿), \sum (∑), \sumbottom (⎳), \sumint (⨋), \sumtop (⎲), \sun (☼), \supdsub (⫘), \supedot (⫄), \suphsol (⟉), \suphsub (⫗), \suplarr (⥻), \supmult (⫂), \supn (ⁿ), \supset (⊃), \supsetapprox (⫊), \supsetcirc (⟄), \supsetdot (⪾), \supseteq (⊇), \supseteqq (⫆), \supsetneq (⊋), \supsetneqq (⫌), \supsetplus (⫀), \supsim (⫈), \supsub (⫔), \supsup (⫖), \surd (√), \swarrow (↙).
+</p>
+<p>\talloblong (⫾), \target (⌖), \tau (τ), \taurus (♉), \testhookx (ᶍ), \textAsterisks (⁑), \textacute (ˊ), \textadvanced (˖), \textain (ʿ), \textasciiacute (´), \textasciicircum (^), \textasciidieresis (¨), \textasciigrave (&lsquo;), \textasciimacron (¯), \textasciitilde (~), \textasterisklow (⁎), \textbackdprime (‶), \textbackprime (‵), \textbacktrprime (‷), \textbardotlessj (ɟ), \textbardotlessjvar (ʄ), \textbarglotstop (ʡ), \textbari (ɨ), \textbarl (ƚ), \textbaro (ɵ), \textbarrevglotstop (ʢ), \textbaru (ʉ), \textbeltl (ɬ), \textbenttailyogh (ƺ), \textbreve (˘), \textbrokenbar (¦), \textbullet (•), \textbullseye (ʘ), \textcent (¢), \textcircledP (℗), \textcloseepsilon (ʚ), \textcloseomega (ɷ), \textcloserevepsilon (ɞ), \textcopyright (©), \textcrb (ƀ), \textcrh (ħ), \textcrinvglotstop (ƾ), \textcrlambda (ƛ), \textcrtwo (ƻ), \textctc (ɕ), \textctd (ȡ), \textctesh (ʆ), \textctj (ʝ), \textctl (ȴ), \textctn (ȵ), \textctt (ȶ), \textctyogh (ʓ), \textctz (ʑ), \textcurrency (¤), \textdctzlig (ʥ), \textdegree (°), \textdiscount (⁒), \textdollar ($), \textdotaccent (˙), \textdotlessj (ȷ), \textdoubleacute (˝), \textdoublebarpipe (ǂ), \textdoublepipe (ǁ), \textdprime (″), \textdptr (˅), \textdyoghlig (ʤ), \textdzlig (ʣ), \textepsilon (ɛ), \textesh (ʃ), \textestimated (℮), \textexclam (ǃ), \textexclamdown (¡), \textfishhookr (ɾ), \textflorin (ƒ), \textfranc (₣), \textgamma (ɣ), \textglotstop (ʔ), \textgrave (ˋ), \texthalflength (ˑ), \texthamza (ʾ), \texthen (ꜧ), \textheng (ꜧ), \texthooks (ᶊ), \texthookz (ᶎ), \texthtb (ɓ), \texthtc (ƈ), \texthtd (ɗ), \texthtg (ɠ), \texthth (ɦ), \texththeng (ɧ), \texthtk (ƙ), \texthtp (ƥ), \texthtq (ʠ), \texthtscg (ʛ), \texthtt (ƭ), \texthvlig (ƕ), \texthyphen (‐), \textinvglotstop (ʖ), \textinvscr (ʁ), \textiota (ɩ), \textlengthmark (ː), \textlhalfring (˓), \textlhookd (ᶁ), \textlhookk (ᶄ), \textlhookl (ᶅ), \textlhookt (ƫ), \textlhti (ɿ), \textlira (₤), \textlonglegr (ɼ), \textlongy (ʮ), \textlongy (ʯ), \textlooptoprevesh (ƪ), \textlowacute (ˏ), \textlowered (˕), \textlowgrave (ˎ), \textlowmacron (ˍ), \textlptr (˂), \textltailm (ɱ), \textltailn (ɲ), \textltilde (ɫ), \textlyoghlig (ɮ), \textmacron (ˉ), \textmu (µ), \textnumero (№), \textogonek (˛), \textohm (Ω), \textonehalf (½), \textonequarter (¼), \textonesuperior (¹), \textopeno (ɔ), \textordfeminine (ª), \textordmasculine (º), \textovercross (˟), \textoz (℥), \textpertenthousand (‱), \textperthousand (‰), \textpesetas (₧), \textphi (ɸ), \textpipe (ǀ), \textprime (′), \textprimstress (ˈ), \textqprime (⁗), \textquestiondown (¿), \textquotedbl (&quot;), \textquotedblleft (“), \textquotedblright (”), \textraised (˔), \textraiseglotstop (ˀ), \textraiserevglotstop (ˁ), \textramshorns (ɤ), \textrecipe (℞), \textreferencemark (※), \textregistered (®), \textretracted (˗), \textreve (ɘ), \textrevepsilon (ɜ), \textrevglotstop (ʕ), \textrhalfring (˒), \textrhookrevepsilon (ɝ), \textrhookschwa (ɚ), \textrhoticity (˞), \textringaccent (˚), \textrptr (˃), \textrtaild (ɖ), \textrtaill (ɭ), \textrtailn (ɳ), \textrtailr (ɽ), \textrtails (ʂ), \textrtailt (ʈ), \textrtailz (ʐ), \textsca (ᴀ), \textscb (ʙ), \textsce (ᴇ), \textscg (ɢ), \textsch (ʜ), \textschwa (ə), \textsci (ɪ), \textscl (ʟ), \textscn (ɴ), \textscoelig (ɶ), \textscr (ʀ), \textscripta (ɑ), \textscriptg (ɡ), \textscriptv (ʋ), \textscu (ᴜ), \textscy (ʏ), \textsecstress (ˌ), \textsemicolonreversed (⁏), \textsilon (Υ), \textsmalltilde (˜), \textstretchcvar (ʗ), \textsubw (w), \textsuph (ʰ), \textsuphth (ʱ), \textsupinvscr (ʶ), \textsupj (ʲ), \textsupr (ʳ), \textsupturnr (ʴ), \textsupturnrrtail (ʵ), \textsupw (ʷ), \textsupy (ʸ), \texttctctlig (ʧ), \texttctctlig (ʨ), \textthreequarters (¾), \textthreesuperior (³), \texttrademark (™), \texttrprime (‴), \texttslig (ʦ), \textturna (ɐ), \textturncomma (ʻ), \textturnh (ɥ), \textturnk (ʞ), \textturnlonglegr (ɺ), \textturnm (ɯ), \textturnmrleg (ɰ), \textturnr (ɹ), \textturnrrtail (ɻ), \textturnscripta (ɒ), \textturnt (ʇ), \textturnv (ʌ), \textturnw (ʍ), \textturny (ʎ), \texttwosuperior (²), \textupsilon (ʊ), \textuptr (˄), \textvibyi (ʅ), \textvisiblespace (␣), \textyogh (ʒ), \th (þ), \therefore (∴), \thermod (⧧), \theta (θ), \thickapprox (≈), \thicksim (∼), \threedangle (⟀), \threedotcolon (⫶), \tieconcat (⁀), \tieinfty (⧝), \times (×), \timesbar (⨱), \tminus (⧿), \to (→), \toea (⤨), \tona (⤧), \tonebarextrahigh (˥), \tonebarextralow (˩), \tonebarhigh (˦), \tonebarlow (˨), \tonebarmid (˧), \top (⊤), \topbot (⌶), \topcir (⫱), \topfork (⫚), \topsemicircle (◠), \tosa (⤩), \towa (⤪), \tplus (⧾), \trapezium (⏢), \trianglecdot (◬), \triangledown (▿), \triangleexclam (⚠), \triangleleft (◁), \triangleleftblack (◭), \trianglelefteq (⊴), \triangleminus (⨺), \triangleodot (⧊), \triangleplus (⨹), \triangleq (≜), \triangleright (▷), \trianglerightblack (◮), \trianglerighteq (⊵), \triangles (⧌), \triangleserifs (⧍), \triangletimes (⨻), \triangleubar (⧋), \tripleplus (⧻), \trprime (‴), \turnangle (⦢), \turnediota (℩), \turnednot (⌙), \twocaps (⩋), \twocups (⩊), \twoheaddownarrow (↡), \twoheadleftarrow (↞), \twoheadleftarrowtail (⬻), \twoheadleftdbkarrow (⬷), \twoheadmapsfrom (⬶), \twoheadmapsto (⤅), \twoheadrightarrow (↠), \twoheadrightarrowtail (⤖), \twoheaduparrow (↟), \twoheaduparrowcircle (⥉), \twolowline (‗), \twonotes (♫), \typecolon (⦂).
+</p>
+<p>\ubrbrak (⏡), \uhorn (ư), \ularc (◜), \ulblacktriangle (◤), \ulcorner (⌜), \ulcrop (⌏), \ultriangle (◸), \uminus (⩁), \underbrace (⏟), \underbracket (⎵), \underparen (⏝), \unlhd (⊴), \unrhd (⊵), \upand (⅋), \uparrow (↑), \uparrowbarred (⤉), \uparrowoncircle (⦽), \updasharrow (⇢), \updownarrow (↕), \updownarrowbar (↨), \updownarrows (⇅), \updownharpoonleftleft (⥑), \updownharpoonleftright (⥍), \updownharpoonrightleft (⥌), \updownharpoonrightright (⥏), \updownharpoonsleftright (⥮), \upfishtail (⥾), \upharpoonleft (↿), \upharpoonleftbar (⥠), \upharpoonright (↾), \upharpoonrightbar (⥜), \upharpoonsleftright (⥣), \upin (⟒), \upint (⨛), \uplus (⊎), \uprightcurvearrow (⤴), \upuparrows (⇈), \upwhitearrow (⇧), \urarc (◝), \urblacktriangle (◥), \urcorner (⌝), \urcrop (⌎), \urtriangle (◹).
+</p>
+<p>\v (ˇ), \vBar (⫨), \vBarv (⫩), \vDash (⊨), \vDdash (⫢), \varTheta (ϴ), \varVdash (⫦), \varbarwedge (⌅), \varbeta (ϐ), \varclubsuit (♧), \vardiamondsuit (♦), \vardoublebarwedge (⌆), \varepsilon (ε), \varheartsuit (♥), \varhexagon (⬡), \varhexagonblack (⬢), \varhexagonlrbonds (⌬), \varin (∈), \varisinobar (⋶), \varisins (⋳), \varkappa (ϰ), \varlrtriangle (⊿), \varni (∋), \varniobar (⋽), \varnis (⋻), \varnothing (∅), \varointclockwise (∲), \varphi (φ), \varpi (ϖ), \varpropto (∝), \varrho (ϱ), \varrowextender (⏐), \varsigma (ς), \varspadesuit (♤), \varstar (✶), \vartheta (ϑ), \vartriangle (▵), \vartriangleleft (⊲), \vartriangleright (⊳), \varveebar (⩡), \vbraceextender (⎪), \vbrtri (⧐), \vdash (⊢), \vdots (⋮), \vectimes (⨯), \vee (∨), \veebar (⊻), \veedot (⟇), \veedoublebar (⩣), \veeeq (≚), \veemidvert (⩛), \veeodot (⩒), \veeonvee (⩖), \veeonwedge (⩙), \vert (|), \viewdata (⌗), \vlongdash (⟝), \vrectangle (▯), \vrectangleblack (▮), \vysmlblksquare (⬝), \vysmlwhtsquare (⬞), \vzigzag (⦚).
+</p>
+<p>\watchicon (⌚), \wedge (∧), \wedgebar (⩟), \wedgedot (⟑), \wedgedoublebar (⩠), \wedgemidvert (⩚), \wedgeodot (⩑), \wedgeonwedge (⩕), \wedgeq (≙), \whitearrowupfrombar (⇪), \whiteinwhitetriangle (⟁), \whitepointerleft (◅), \whitepointerright (▻), \whitesquaretickleft (⟤), \whitesquaretickright (⟥), \whthorzoval (⬭), \whtvertoval (⬯), \wideangledown (⦦), \wideangleup (⦧), \wp (℘), \wr (≀).
+</p>
+<p>\xbsol (⧹), \xi (ξ), \xsol (⧸), \yen (¥), \zeta (ζ), \zpipe (⨠), 
+</p>
+<p>Я БУДУ КРАЙНЕ ПРИЗНАТЕЛЕН ЕСЛИ КТО-НИБУДЬ ПРОВЕРИТ СООТВЕТСТВИЕ ВСЕХ ИМЕН ПРАВИЛЬНЫМ ТЕХ-ИМ СИМВОЛАМ. 
+</p>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_11.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_11.html
new file mode 100644
index 0000000..2014b23
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_11.html
@@ -0,0 +1,514 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: B. GNU Free Documentation License</title>
+
+<meta name="description" content="MathGL 1.11: B. GNU Free Documentation License">
+<meta name="keywords" content="MathGL 1.11: B. GNU Free Documentation License">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Copying-This-Manual"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="GNU-Free-Documentation-License"></a>
+<h1 class="appendix">B. GNU Free Documentation License</h1>
+<p align="center"> Version 1.2, November 2002
+</p>
+
+<table><tr><td>&nbsp;</td><td><pre class="display">Copyright &copy; 2000,2001,2002 Free Software Foundation, Inc.
+51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+</pre></td></tr></table>
+
+<ol>
+<li>
+PREAMBLE
+
+<p>The purpose of this License is to make a manual, textbook, or other
+functional and useful document <em>free</em> in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+</p>
+<p>This License is a kind of &ldquo;copyleft&rdquo;, which means that derivative
+works of the document must themselves be free in the same sense.  It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+</p>
+<p>We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does.  But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book.  We recommend this License
+principally for works whose purpose is instruction or reference.
+</p>
+</li><li>
+APPLICABILITY AND DEFINITIONS
+
+<p>This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License.  Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein.  The &ldquo;Document&rdquo;, below,
+refers to any such manual or work.  Any member of the public is a
+licensee, and is addressed as &ldquo;you&rdquo;.  You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+</p>
+<p>A &ldquo;Modified Version&rdquo; of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+</p>
+<p>A &ldquo;Secondary Section&rdquo; is a named appendix or a front-matter section
+of the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document&rsquo;s overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject.  (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.)  The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+</p>
+<p>The &ldquo;Invariant Sections&rdquo; are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License.  If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant.  The Document may contain zero
+Invariant Sections.  If the Document does not identify any Invariant
+Sections then there are none.
+</p>
+<p>The &ldquo;Cover Texts&rdquo; are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.  A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+</p>
+<p>A &ldquo;Transparent&rdquo; copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters.  A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text.  A copy that is not &ldquo;Transparent&rdquo; is called &ldquo;Opaque&rdquo;.
+</p>
+<p>Examples of suitable formats for Transparent copies include plain
+<small>ASCII</small> without markup, Texinfo input format, LaTeX input
+format, <acronym>SGML</acronym> or <acronym>XML</acronym> using a publicly available
+<acronym>DTD</acronym>, and standard-conforming simple <acronym>HTML</acronym>,
+PostScript or <acronym>PDF</acronym> designed for human modification.  Examples
+of transparent image formats include <acronym>PNG</acronym>, <acronym>XCF</acronym> and
+<acronym>JPG</acronym>.  Opaque formats include proprietary formats that can be
+read and edited only by proprietary word processors, <acronym>SGML</acronym> or
+<acronym>XML</acronym> for which the <acronym>DTD</acronym> and/or processing tools are
+not generally available, and the machine-generated <acronym>HTML</acronym>,
+PostScript or <acronym>PDF</acronym> produced by some word processors for
+output purposes only.
+</p>
+<p>The &ldquo;Title Page&rdquo; means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page.  For works in
+formats which do not have any title page as such, &ldquo;Title Page&rdquo; means
+the text near the most prominent appearance of the work&rsquo;s title,
+preceding the beginning of the body of the text.
+</p>
+<p>A section &ldquo;Entitled XYZ&rdquo; means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language.  (Here XYZ stands for a
+specific section name mentioned below, such as &ldquo;Acknowledgements&rdquo;,
+&ldquo;Dedications&rdquo;, &ldquo;Endorsements&rdquo;, or &ldquo;History&rdquo;.)  To &ldquo;Preserve the Title&rdquo;
+of such a section when you modify the Document means that it remains a
+section &ldquo;Entitled XYZ&rdquo; according to this definition.
+</p>
+<p>The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document.  These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+</p>
+</li><li>
+VERBATIM COPYING
+
+<p>You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License.  You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute.  However, you may accept
+compensation in exchange for copies.  If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+</p>
+<p>You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+</p>
+</li><li>
+COPYING IN QUANTITY
+
+<p>If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document&rsquo;s license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover.  Both covers must also clearly and legibly identify
+you as the publisher of these copies.  The front cover must present
+the full title with all words of the title equally prominent and
+visible.  You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+</p>
+<p>If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+</p>
+<p>If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+</p>
+<p>It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+</p>
+</li><li>
+MODIFICATIONS
+
+<p>You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it.  In addition, you must do these things in the Modified Version:
+</p>
+<ol>
+<li>
+Use in the Title Page (and on the covers, if any) a title distinct
+from that of the Document, and from those of previous versions
+(which should, if there were any, be listed in the History section
+of the Document).  You may use the same title as a previous version
+if the original publisher of that version gives permission.
+
+</li><li>
+List on the Title Page, as authors, one or more persons or entities
+responsible for authorship of the modifications in the Modified
+Version, together with at least five of the principal authors of the
+Document (all of its principal authors, if it has fewer than five),
+unless they release you from this requirement.
+
+</li><li>
+State on the Title page the name of the publisher of the
+Modified Version, as the publisher.
+
+</li><li>
+Preserve all the copyright notices of the Document.
+
+</li><li>
+Add an appropriate copyright notice for your modifications
+adjacent to the other copyright notices.
+
+</li><li>
+Include, immediately after the copyright notices, a license notice
+giving the public permission to use the Modified Version under the
+terms of this License, in the form shown in the Addendum below.
+
+</li><li>
+Preserve in that license notice the full lists of Invariant Sections
+and required Cover Texts given in the Document&rsquo;s license notice.
+
+</li><li>
+Include an unaltered copy of this License.
+
+</li><li>
+Preserve the section Entitled &ldquo;History&rdquo;, Preserve its Title, and add
+to it an item stating at least the title, year, new authors, and
+publisher of the Modified Version as given on the Title Page.  If
+there is no section Entitled &ldquo;History&rdquo; in the Document, create one
+stating the title, year, authors, and publisher of the Document as
+given on its Title Page, then add an item describing the Modified
+Version as stated in the previous sentence.
+
+</li><li>
+Preserve the network location, if any, given in the Document for
+public access to a Transparent copy of the Document, and likewise
+the network locations given in the Document for previous versions
+it was based on.  These may be placed in the &ldquo;History&rdquo; section.
+You may omit a network location for a work that was published at
+least four years before the Document itself, or if the original
+publisher of the version it refers to gives permission.
+
+</li><li>
+For any section Entitled &ldquo;Acknowledgements&rdquo; or &ldquo;Dedications&rdquo;, Preserve
+the Title of the section, and preserve in the section all the
+substance and tone of each of the contributor acknowledgements and/or
+dedications given therein.
+
+</li><li>
+Preserve all the Invariant Sections of the Document,
+unaltered in their text and in their titles.  Section numbers
+or the equivalent are not considered part of the section titles.
+
+</li><li>
+Delete any section Entitled &ldquo;Endorsements&rdquo;.  Such a section
+may not be included in the Modified Version.
+
+</li><li>
+Do not retitle any existing section to be Entitled &ldquo;Endorsements&rdquo; or
+to conflict in title with any Invariant Section.
+
+</li><li>
+Preserve any Warranty Disclaimers.
+</li></ol>
+
+<p>If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant.  To do this, add their titles to the
+list of Invariant Sections in the Modified Version&rsquo;s license notice.
+These titles must be distinct from any other section titles.
+</p>
+<p>You may add a section Entitled &ldquo;Endorsements&rdquo;, provided it contains
+nothing but endorsements of your Modified Version by various
+parties&mdash;for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+</p>
+<p>You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version.  Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity.  If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+</p>
+<p>The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+</p>
+</li><li>
+COMBINING DOCUMENTS
+
+<p>You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+</p>
+<p>The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy.  If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+</p>
+<p>In the combination, you must combine any sections Entitled &ldquo;History&rdquo;
+in the various original documents, forming one section Entitled
+&ldquo;History&rdquo;; likewise combine any sections Entitled &ldquo;Acknowledgements&rdquo;,
+and any sections Entitled &ldquo;Dedications&rdquo;.  You must delete all
+sections Entitled &ldquo;Endorsements.&rdquo;
+</p>
+</li><li>
+COLLECTIONS OF DOCUMENTS
+
+<p>You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+</p>
+<p>You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+</p>
+</li><li>
+AGGREGATION WITH INDEPENDENT WORKS
+
+<p>A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an &ldquo;aggregate&rdquo; if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation&rsquo;s users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+</p>
+<p>If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document&rsquo;s Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+</p>
+</li><li>
+TRANSLATION
+
+<p>Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections.  You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers.  In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+</p>
+<p>If a section in the Document is Entitled &ldquo;Acknowledgements&rdquo;,
+&ldquo;Dedications&rdquo;, or &ldquo;History&rdquo;, the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+</p>
+</li><li>
+TERMINATION
+
+<p>You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License.  Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License.  However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+</p>
+</li><li>
+FUTURE REVISIONS OF THIS LICENSE
+
+<p>The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time.  Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.  See
+<a href="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</a>.
+</p>
+<p>Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License &ldquo;or any later version&rdquo; applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation.  If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+</p></li></ol>
+
+
+<a name="ADDENDUM_003a-How-to-use-this-License-for-your-documents"></a>
+<h2 class="heading">ADDENDUM: How to use this License for your documents</h2>
+
+<p>To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample">  Copyright (C)  <var>year</var>  <var>your name</var>.
+  Permission is granted to copy, distribute and/or modify this document
+  under the terms of the GNU Free Documentation License, Version 1.2
+  or any later version published by the Free Software Foundation;
+  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+  Texts.  A copy of the license is included in the section entitled ``GNU
+  Free Documentation License''.
+</pre></td></tr></table>
+
+<p>If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the &ldquo;with&hellip;Texts.&rdquo; line with this:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample">    with the Invariant Sections being <var>list their titles</var>, with
+    the Front-Cover Texts being <var>list</var>, and with the Back-Cover Texts
+    being <var>list</var>.
+</pre></td></tr></table>
+
+<p>If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+</p>
+<p>If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
+</p>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_12.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_12.html
new file mode 100644
index 0000000..31d9157
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_12.html
@@ -0,0 +1,366 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: Индекс</title>
+
+<meta name="description" content="MathGL 1.11: Индекс">
+<meta name="keywords" content="MathGL 1.11: Индекс">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Index"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_13.html#index_split-0" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_043d_0434e_043a_0441"></a>
+<h1 class="unnumbered">Индекс</h1>
+
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_ru_16.html#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="g_t_0418_043d_0434e_043a_0441_cp_letter-A">A</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-AddLegend">AddLegend</a></td><td valign="top"><a href="mathgl_ru_3.html#Legend">3.8 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-addlegend">addlegend</a></td><td valign="top"><a href="mathgl_ru_8.html#Legend-_0028MGL_0029">8.8 Легенда (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-AddLegend-3">AddLegend</a></td><td valign="top"><a href="mathgl_ru_9.html#Legend-sample">9.6.1 Legend &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-AddLight">AddLight</a></td><td valign="top"><a href="mathgl_ru_3.html#Lighting">3.1.2 Освещение</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-addto">addto</a></td><td valign="top"><a href="mathgl_ru_8.html#Operators-_0028MGL_0029">8.22 Операторы (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-adjust">adjust</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-AdjustTicks">AdjustTicks</a></td><td valign="top"><a href="mathgl_ru_3.html#Ticks">3.2.3 Метки осей</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Alpha">Alpha</a></td><td valign="top"><a href="mathgl_ru_3.html#Transparency">3.1.1 Прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-alpha">alpha</a></td><td valign="top"><a href="mathgl_ru_8.html#Transparency-_0028MGL_0029">8.1.1 Прозрачность (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Alpha-2">Alpha</a></td><td valign="top"><a href="mathgl_ru_9.html#Transparent-surface-sample">9.2.2 Transparent surface &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-alpha-2">alpha</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Alpha-3">Alpha</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t2D-plot-sample">9.5.2 Пример графиков 2D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Alpha-4">Alpha</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t3D-plot-sample">9.5.3 Пример графиков 3D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-alphadef">alphadef</a></td><td valign="top"><a href="mathgl_ru_8.html#Transparency-_0028MGL_0029">8.1.1 Прозрачность (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-alphadef-2">alphadef</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ambient">ambient</a></td><td valign="top"><a href="mathgl_ru_8.html#Lighting-_0028MGL_0029">8.1.2 Освещение (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Ambient">Ambient</a></td><td valign="top"><a href="mathgl_ru_3.html#Lighting">3.1.2 Освещение</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ambient-2">ambient</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-area">area</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Area">Area</a></td><td valign="top"><a href="mathgl_ru_3.html#Area">3.9.4 Area</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Area-4">Area</a></td><td valign="top"><a href="mathgl_ru_9.html#Area-sample">9.1.4 Area &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Area-5">Area</a></td><td valign="top"><a href="mathgl_ru_9.html#Area-gradient-sample">9.1.5 Area с градиентной заливкой &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-arrowsize">arrowsize</a></td><td valign="top"><a href="mathgl_ru_8.html#Default-sizes-_0028MGL_0029">8.1.4 Базовые размеры (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Aspect">Aspect</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-aspect">aspect</a></td><td valign="top"><a href="mathgl_ru_8.html#Transformation-matrix-_0028MGL_0029">8.3 Матрица преобразования (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-AutoOrg">AutoOrg</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Axial">Axial</a></td><td valign="top"><a href="mathgl_ru_3.html#Axial">3.10.11 Axial</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-axial">axial</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Axial-5">Axial</a></td><td valign="top"><a href="mathgl_ru_9.html#Axial-sample">9.2.14 Axial &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Axial-6">Axial</a></td><td valign="top"><a href="mathgl_ru_9.html#Adding-mesh-sample">9.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-axialdir">axialdir</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-settings-_0028MGL_0029">8.1.7 Прочие настройки (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-axis">axis</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Axis">Axis</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Axis-2">Axis</a></td><td valign="top"><a href="mathgl_ru_3.html#Axis-and-Colorbar">3.7 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-axis-5">axis</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Axis-4">Axis</a></td><td valign="top"><a href="mathgl_ru_9.html#Pie-chart-sample">9.1.23 Pie chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Axis-5">Axis</a></td><td valign="top"><a href="mathgl_ru_9.html#Ring-chart-sample">9.1.24 Ring chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Axis-6">Axis</a></td><td valign="top"><a href="mathgl_ru_9.html#Dens3-sample">9.3.4 Dens3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Axis-7">Axis</a></td><td valign="top"><a href="mathgl_ru_9.html#Curvelinear-coorinates-sample">9.7.1 Криволинейные координаты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Axis-8">Axis</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t2_002daxes-sample">9.7.2 Несколько осей на одном графике</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Axis-9">Axis</a></td><td valign="top"><a href="mathgl_ru_9.html#Semi_002dlog-sample">9.7.3 Semi-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Axis-10">Axis</a></td><td valign="top"><a href="mathgl_ru_9.html#Log_002dlog-sample">9.7.4 Log-log &ndash; пример использования</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="g_t_0418_043d_0434e_043a_0441_cp_letter-B">B</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ball">ball</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Ball">Ball</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-barh">barh</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Barh">Barh</a></td><td valign="top"><a href="mathgl_ru_3.html#Barh">3.9.8 Barh</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Barh-3">Barh</a></td><td valign="top"><a href="mathgl_ru_9.html#Barh-sample">9.1.10 Barh &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-bars">bars</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Bars">Bars</a></td><td valign="top"><a href="mathgl_ru_3.html#Bars">3.9.7 Bars</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Bars-4">Bars</a></td><td valign="top"><a href="mathgl_ru_9.html#Bars-sample">9.1.6 Bars &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Bars-5">Bars</a></td><td valign="top"><a href="mathgl_ru_9.html#Bars-2-colors-sample">9.1.7 Bars (2 цвета) &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Bars-6">Bars</a></td><td valign="top"><a href="mathgl_ru_9.html#Bars-above-sample">9.1.8 Bars (один над другим) &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Bars-7">Bars</a></td><td valign="top"><a href="mathgl_ru_9.html#Bars-fall-sample">9.1.9 Bars &quot;водопад&quot; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Bars-8">Bars</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t1D-plot-sample">9.5.1 Пример графиков 1D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-barwidth">barwidth</a></td><td valign="top"><a href="mathgl_ru_8.html#Default-sizes-_0028MGL_0029">8.1.4 Базовые размеры (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Beam">Beam</a></td><td valign="top"><a href="mathgl_ru_3.html#Beam">3.11.7 Beam</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-beam">beam</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Belt">Belt</a></td><td valign="top"><a href="mathgl_ru_3.html#Belt">3.10.3 Belt</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-belt">belt</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Belt-3">Belt</a></td><td valign="top"><a href="mathgl_ru_9.html#Belt-sample">9.2.7 Belt &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Box">Box</a></td><td valign="top"><a href="mathgl_ru_3.html#Axis-and-Colorbar">3.7 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-box">box</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-BoxPlot">BoxPlot</a></td><td valign="top"><a href="mathgl_ru_3.html#BoxPlot">3.9.16 BoxPlot</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-boxplot">boxplot</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-BoxPlot-3">BoxPlot</a></td><td valign="top"><a href="mathgl_ru_9.html#BoxPlot-sample">9.1.16 BoxPlot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-boxs">boxs</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Boxs">Boxs</a></td><td valign="top"><a href="mathgl_ru_3.html#Boxs">3.10.5 Boxs</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Boxs-3">Boxs</a></td><td valign="top"><a href="mathgl_ru_9.html#Boxs-sample">9.2.9 Boxs &ndash; пример использования</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="g_t_0418_043d_0434e_043a_0441_cp_letter-C">C</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-call">call</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-caxis">caxis</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-CAxis">CAxis</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-chart">chart</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Chart">Chart</a></td><td valign="top"><a href="mathgl_ru_3.html#Chart">3.9.9 Chart</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Chart-2">Chart</a></td><td valign="top"><a href="mathgl_ru_9.html#Chart-sample">9.1.22 Chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Chart-3">Chart</a></td><td valign="top"><a href="mathgl_ru_9.html#Pie-chart-sample">9.1.23 Pie chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Chart-4">Chart</a></td><td valign="top"><a href="mathgl_ru_9.html#Ring-chart-sample">9.1.24 Ring chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-chdir">chdir</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ClearLegend">ClearLegend</a></td><td valign="top"><a href="mathgl_ru_3.html#Legend">3.8 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-clearlegend">clearlegend</a></td><td valign="top"><a href="mathgl_ru_8.html#Legend-_0028MGL_0029">8.8 Легенда (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-clf">clf</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Clf">Clf</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-cloud">cloud</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Cloud-2">Cloud</a></td><td valign="top"><a href="mathgl_ru_9.html#Cloud-sample">9.3.2 Cloud &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-CloudP">CloudP</a></td><td valign="top"><a href="mathgl_ru_3.html#Cloud">3.11.6 Cloud</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-CloudP-3">CloudP</a></td><td valign="top"><a href="mathgl_ru_9.html#CloudP-sample">9.3.3 CloudP &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-CloudQ">CloudQ</a></td><td valign="top"><a href="mathgl_ru_3.html#Cloud">3.11.6 Cloud</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Cmax">Cmax</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Cmin">Cmin</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-colorbar">colorbar</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Colorbar">Colorbar</a></td><td valign="top"><a href="mathgl_ru_3.html#Axis-and-Colorbar">3.7 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Colorbar-6">Colorbar</a></td><td valign="top"><a href="mathgl_ru_9.html#Dens-sample">9.2.10 Dens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Colorbar-7">Colorbar</a></td><td valign="top"><a href="mathgl_ru_9.html#Color-schemes-sample">9.5.10 Примеры цветовых схем</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Column">Column</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ColumnPlot">ColumnPlot</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-columnplot">columnplot</a></td><td valign="top"><a href="mathgl_ru_8.html#Transformation-matrix-_0028MGL_0029">8.3 Матрица преобразования (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-combine">combine</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Combine">Combine</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Cone">Cone</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-cone">cone</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Cont">Cont</a></td><td valign="top"><a href="mathgl_ru_3.html#Cont">3.10.8 Cont</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-cont">cont</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Cont-5">Cont</a></td><td valign="top"><a href="mathgl_ru_9.html#Cont-sample">9.2.11 Cont &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Cont-6">Cont</a></td><td valign="top"><a href="mathgl_ru_9.html#Adding-mesh-sample">9.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Cont-7">Cont</a></td><td valign="top"><a href="mathgl_ru_9.html#Surf-_0026-Cont-sample">9.6.3 Surf &amp; Cont &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Cont-8">Cont</a></td><td valign="top"><a href="mathgl_ru_9.html#Cont-with-labels-sample">9.6.7 Cont и подписи &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Cont3">Cont3</a></td><td valign="top"><a href="mathgl_ru_3.html#Cont3">3.11.3 Cont3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-cont3">cont3</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Cont3-5">Cont3</a></td><td valign="top"><a href="mathgl_ru_9.html#Cont3-sample">9.3.5 Cont3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContA">ContA</a></td><td valign="top"><a href="mathgl_ru_3.html#Cont3">3.11.3 Cont3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-conta">conta</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-contd">contd</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContD">ContD</a></td><td valign="top"><a href="mathgl_ru_3.html#ContD">3.10.10 ContD</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-ContD-5">ContD</a></td><td valign="top"><a href="mathgl_ru_9.html#ContD-sample">9.2.13 ContD &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContF">ContF</a></td><td valign="top"><a href="mathgl_ru_3.html#ContF">3.10.9 ContF</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-contf">contf</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-ContF-5">ContF</a></td><td valign="top"><a href="mathgl_ru_9.html#ContF-sample">9.2.12 ContF &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContF3">ContF3</a></td><td valign="top"><a href="mathgl_ru_3.html#ContF3">3.11.4 ContF3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-contf3">contf3</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-ContF3-5">ContF3</a></td><td valign="top"><a href="mathgl_ru_9.html#ContF3-sample">9.3.6 ContF3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-ContF3-6">ContF3</a></td><td valign="top"><a href="mathgl_ru_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-contfa">contfa</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContFA">ContFA</a></td><td valign="top"><a href="mathgl_ru_3.html#ContF3">3.11.4 ContF3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContFX">ContFX</a></td><td valign="top"><a href="mathgl_ru_3.html#ContFXYZ">3.14.3 ContFXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-contfx">contfx</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-contfy">contfy</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContFY">ContFY</a></td><td valign="top"><a href="mathgl_ru_3.html#ContFXYZ">3.14.3 ContFXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-contfz">contfz</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContFZ">ContFZ</a></td><td valign="top"><a href="mathgl_ru_3.html#ContFXYZ">3.14.3 ContFXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContX">ContX</a></td><td valign="top"><a href="mathgl_ru_3.html#ContXYZ">3.14.2 ContXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-contx">contx</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-ContX-3">ContX</a></td><td valign="top"><a href="mathgl_ru_9.html#Cont-projection-sample">9.3.7 Cont projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContY">ContY</a></td><td valign="top"><a href="mathgl_ru_3.html#ContXYZ">3.14.2 ContXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-conty">conty</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-ContY-3">ContY</a></td><td valign="top"><a href="mathgl_ru_9.html#Cont-projection-sample">9.3.7 Cont projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-contz">contz</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContZ">ContZ</a></td><td valign="top"><a href="mathgl_ru_3.html#ContXYZ">3.14.2 ContXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-ContZ-3">ContZ</a></td><td valign="top"><a href="mathgl_ru_9.html#Cont-projection-sample">9.3.7 Cont projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-copy">copy</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-create-_0028MGL_0029">8.16 Создание данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-CopyFont">CopyFont</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-cosfft">cosfft</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-CosFFT">CosFFT</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-crange">crange</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-crange-3">crange</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Crop">Crop</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-crop">crop</a></td><td valign="top"><a href="mathgl_ru_8.html#Rearrange-data-_0028MGL_0029">8.18 Изменение размеров данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-crust">crust</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Crust">Crust</a></td><td valign="top"><a href="mathgl_ru_3.html#Crust">3.14.5 Crust</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Crust-3">Crust</a></td><td valign="top"><a href="mathgl_ru_9.html#Crust-sample">9.4.19 Crust &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ctick">ctick</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-cumsum">cumsum</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-CumSum">CumSum</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Curve">Curve</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-curve">curve</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-cut">cut</a></td><td valign="top"><a href="mathgl_ru_8.html#Cutting-_0028MGL_0029">8.1.6 Обрезание (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-cut-4">cut</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-CutMax">CutMax</a></td><td valign="top"><a href="mathgl_ru_9.html#CutMinMax-sample">9.3.9 CutMinMax &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-CutMax-1">CutMax</a></td><td valign="top"><a href="mathgl_ru_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-CutMin">CutMin</a></td><td valign="top"><a href="mathgl_ru_9.html#CutMinMax-sample">9.3.9 CutMinMax &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-CutMin-1">CutMin</a></td><td valign="top"><a href="mathgl_ru_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-CutOff">CutOff</a></td><td valign="top"><a href="mathgl_ru_3.html#Cutting">3.1.6 Обрезание</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-CutOff-2">CutOff</a></td><td valign="top"><a href="mathgl_ru_9.html#CutOff-sample">9.3.11 CutOff &ndash; пример использования</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_ru_16.html#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_13.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_13.html
new file mode 100644
index 0000000..5a1131a
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_13.html
@@ -0,0 +1,309 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: Индекс: D &ndash; F</title>
+
+<meta name="description" content="MathGL 1.11: Индекс: D &ndash; F">
+<meta name="keywords" content="MathGL 1.11: Индекс: D &ndash; F">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-0"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_14.html#index_split-1" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Индекс: D &ndash; F</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_ru_16.html#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-D">D</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-defchr">defchr</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-define">define</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-defnum">defnum</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-defpal">defpal</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Delete">Delete</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-delete">delete</a></td><td valign="top"><a href="mathgl_ru_8.html#Rearrange-data-_0028MGL_0029">8.18 Изменение размеров данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-DeleteColumns">DeleteColumns</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-DeleteRows">DeleteRows</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-DeleteSlices">DeleteSlices</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-dens">dens</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Dens">Dens</a></td><td valign="top"><a href="mathgl_ru_3.html#Dens">3.10.7 Dens</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Dens-3">Dens</a></td><td valign="top"><a href="mathgl_ru_9.html#Dens-sample">9.2.10 Dens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Dens-4">Dens</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t2D-plot-sample">9.5.2 Пример графиков 2D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Dens-5">Dens</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t3D-plot-sample">9.5.3 Пример графиков 3D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Dens-6">Dens</a></td><td valign="top"><a href="mathgl_ru_9.html#Adding-mesh-sample">9.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Dens-7">Dens</a></td><td valign="top"><a href="mathgl_ru_9.html#Flow-_0026-Dens-sample">9.6.4 Flow &amp; Dens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-dens3">dens3</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Dens3">Dens3</a></td><td valign="top"><a href="mathgl_ru_3.html#Dens3">3.11.2 Dens3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Dens3-3">Dens3</a></td><td valign="top"><a href="mathgl_ru_9.html#Dens3-sample">9.3.4 Dens3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-DensA">DensA</a></td><td valign="top"><a href="mathgl_ru_3.html#Dens3">3.11.2 Dens3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-densa">densa</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-DensX">DensX</a></td><td valign="top"><a href="mathgl_ru_3.html#DensXYZ">3.14.1 DensXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-densx">densx</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-DensX-2">DensX</a></td><td valign="top"><a href="mathgl_ru_9.html#Dens-projection-sample">9.3.8 Dens projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-densy">densy</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-DensY">DensY</a></td><td valign="top"><a href="mathgl_ru_3.html#DensXYZ">3.14.1 DensXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-DensY-2">DensY</a></td><td valign="top"><a href="mathgl_ru_9.html#Dens-projection-sample">9.3.8 Dens projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-densz">densz</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-DensZ">DensZ</a></td><td valign="top"><a href="mathgl_ru_3.html#DensXYZ">3.14.1 DensXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-DensZ-2">DensZ</a></td><td valign="top"><a href="mathgl_ru_9.html#Dens-projection-sample">9.3.8 Dens projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Dew">Dew</a></td><td valign="top"><a href="mathgl_ru_3.html#Dew">3.13.3 Dew</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-dew">dew</a></td><td valign="top"><a href="mathgl_ru_8.html#Vector-fields-_0028MGL_0029">8.13 Векторные поля (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Dew-3">Dew</a></td><td valign="top"><a href="mathgl_ru_9.html#Dew-sample">9.4.11 Dew &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-diff">diff</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Diff">Diff</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-diff2">diff2</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Diff2">Diff2</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-divto">divto</a></td><td valign="top"><a href="mathgl_ru_8.html#Operators-_0028MGL_0029">8.22 Операторы (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-dots">dots</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Dots">Dots</a></td><td valign="top"><a href="mathgl_ru_3.html#Dots">3.14.4 Dots</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Dots-4">Dots</a></td><td valign="top"><a href="mathgl_ru_9.html#Dots-sample">9.4.20 Dots &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-drop">drop</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Drop">Drop</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Drop-4">Drop</a></td><td valign="top"><a href="mathgl_ru_9.html#Drops-sample">9.6.10 Drops &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Drop-5">Drop</a></td><td valign="top"><a href="mathgl_ru_9.html#Molecules-drawing-sample">9.6.11 Рисование молекул</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-E">E</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-else">else</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-elseif">elseif</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-EndFrame">EndFrame</a></td><td valign="top"><a href="mathgl_ru_3.html#Frames_002fAnimation">3.17 Кадры/Анимация</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-EndFrame-2">EndFrame</a></td><td valign="top"><a href="mathgl_ru_3.html#IDTF-functions">3.18 IDTF функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-endif">endif</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Envelop">Envelop</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-envelop">envelop</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Envelop-2">Envelop</a></td><td valign="top"><a href="mathgl_ru_9.html#Envelop-sample">9.7.6 Envelop &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Error">Error</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-error">error</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Error-2">Error</a></td><td valign="top"><a href="mathgl_ru_3.html#Error">3.9.15 Error</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Error-6">Error</a></td><td valign="top"><a href="mathgl_ru_9.html#Error-sample">9.1.15 Error &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-evaluate">evaluate</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Evaluate">Evaluate</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-export">export</a></td><td valign="top"><a href="mathgl_ru_8.html#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Export">Export</a></td><td valign="top"><a href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-extend">extend</a></td><td valign="top"><a href="mathgl_ru_8.html#Rearrange-data-_0028MGL_0029">8.18 Изменение размеров данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Extend">Extend</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-F">F</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Face">Face</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-facex">facex</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-FaceX">FaceX</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-facey">facey</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-FaceY">FaceY</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-FaceZ">FaceZ</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-facez">facez</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Fall">Fall</a></td><td valign="top"><a href="mathgl_ru_3.html#Fall">3.10.2 Fall</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fall">fall</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Fall-3">Fall</a></td><td valign="top"><a href="mathgl_ru_9.html#Fall-sample">9.2.6 Fall &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fgets">fgets</a></td><td valign="top"><a href="mathgl_ru_8.html#Text-printing-_0028MGL_0029">8.6 Вывод текста (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Fill">Fill</a></td><td valign="top"><a href="mathgl_ru_6.html#Fill">6.3 Заполнение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fill">fill</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-filling-_0028MGL_0029">8.17 Заполнение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fill-1">fill</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-filling-_0028MGL_0029">8.17 Заполнение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Find">Find</a></td><td valign="top"><a href="mathgl_ru_6.html#Informational-functions">6.9 Информационные функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-FindAny">FindAny</a></td><td valign="top"><a href="mathgl_ru_6.html#Informational-functions">6.9 Информационные функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Finish">Finish</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fit">fit</a></td><td valign="top"><a href="mathgl_ru_8.html#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Fit">Fit</a></td><td valign="top"><a href="mathgl_ru_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Fit-9">Fit</a></td><td valign="top"><a href="mathgl_ru_9.html#Fitting-sample">9.7.5 Fitting &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Fit2">Fit2</a></td><td valign="top"><a href="mathgl_ru_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Fit3">Fit3</a></td><td valign="top"><a href="mathgl_ru_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-FitPnts">FitPnts</a></td><td valign="top"><a href="mathgl_ru_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fits">fits</a></td><td valign="top"><a href="mathgl_ru_8.html#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-FitS">FitS</a></td><td valign="top"><a href="mathgl_ru_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Flow">Flow</a></td><td valign="top"><a href="mathgl_ru_3.html#Flow">3.13.4 Flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-flow">flow</a></td><td valign="top"><a href="mathgl_ru_8.html#Vector-fields-_0028MGL_0029">8.13 Векторные поля (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Flow-5">Flow</a></td><td valign="top"><a href="mathgl_ru_9.html#Flow-sample">9.4.9 Flow &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Flow-6">Flow</a></td><td valign="top"><a href="mathgl_ru_9.html#Flow-3D-sample">9.4.17 Flow 3D &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Flow-7">Flow</a></td><td valign="top"><a href="mathgl_ru_9.html#Flow-_0026-Dens-sample">9.6.4 Flow &amp; Dens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-FlowP">FlowP</a></td><td valign="top"><a href="mathgl_ru_3.html#FlowP">3.13.5 FlowP</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Flush">Flush</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-Fl_005fMathGL">Fl_MathGL</a></td><td valign="top"><a href="mathgl_ru_5.html#Widget-classes">5. &ldquo;Оконные&rdquo; классы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-Fl_005fMathGL-2">Fl_MathGL</a></td><td valign="top"><a href="mathgl_ru_5.html#Fl_005fMathGL-class">5.1 Класс Fl_MathGL</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fog">fog</a></td><td valign="top"><a href="mathgl_ru_8.html#Fog-_0028MGL_0029">8.1.3 Туман (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Fog">Fog</a></td><td valign="top"><a href="mathgl_ru_3.html#Fog">3.1.3 Туман</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Fog-2">Fog</a></td><td valign="top"><a href="mathgl_ru_9.html#Surface-in-fog-sample">9.2.3 Surface in fog &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-font">font</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-settings-_0028MGL_0029">8.1.7 Прочие настройки (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fontsize">fontsize</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-for">for</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fplot">fplot</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fsurf">fsurf</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-func">func</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_ru_16.html#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_14.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_14.html
new file mode 100644
index 0000000..05c4192
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_14.html
@@ -0,0 +1,324 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: Индекс: G &ndash; M</title>
+
+<meta name="description" content="MathGL 1.11: Индекс: G &ndash; M">
+<meta name="keywords" content="MathGL 1.11: Индекс: G &ndash; M">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-1"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_13.html#index_split-0" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_15.html#index_split-2" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Индекс: G &ndash; M</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_ru_16.html#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-G">G</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-GetFont">GetFont</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-GetNumFrame">GetNumFrame</a></td><td valign="top"><a href="mathgl_ru_3.html#Frames_002fAnimation">3.17 Кадры/Анимация</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-GetNumFrame-2">GetNumFrame</a></td><td valign="top"><a href="mathgl_ru_3.html#IDTF-functions">3.18 IDTF функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-GetWarnCode">GetWarnCode</a></td><td valign="top"><a href="mathgl_ru_3.html#Error-handling">3.1.9 Обработка ошибок</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Glyph">Glyph</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Grad">Grad</a></td><td valign="top"><a href="mathgl_ru_3.html#Grad">3.10.12 Grad</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-grad">grad</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Grad-4">Grad</a></td><td valign="top"><a href="mathgl_ru_9.html#Grad-sample">9.2.15 Grad &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Grid">Grid</a></td><td valign="top"><a href="mathgl_ru_3.html#Axis-and-Colorbar">3.7 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-grid">grid</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Grid-2">Grid</a></td><td valign="top"><a href="mathgl_ru_3.html#Grid">3.10.13 Grid</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-grid2">grid2</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-grid3">grid3</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Grid3">Grid3</a></td><td valign="top"><a href="mathgl_ru_3.html#Grid3">3.11.5 Grid3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-GridA">GridA</a></td><td valign="top"><a href="mathgl_ru_3.html#Grid3">3.11.5 Grid3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-grida">grida</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-H">H</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Hankel">Hankel</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-hankel">hankel</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Hist">Hist</a></td><td valign="top"><a href="mathgl_ru_3.html#Data-distributions">3.16 Распределение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-hist">hist</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Hist-4">Hist</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-I">I</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Identity">Identity</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-idset">idset</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-create-_0028MGL_0029">8.16 Создание данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-if">if</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Import">Import</a></td><td valign="top"><a href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-import">import</a></td><td valign="top"><a href="mathgl_ru_8.html#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-info">info</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-create-_0028MGL_0029">8.16 Создание данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-InPlot">InPlot</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-inplot">inplot</a></td><td valign="top"><a href="mathgl_ru_8.html#Transformation-matrix-_0028MGL_0029">8.3 Матрица преобразования (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-insert">insert</a></td><td valign="top"><a href="mathgl_ru_8.html#Rearrange-data-_0028MGL_0029">8.18 Изменение размеров данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Insert">Insert</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-InsertColumns">InsertColumns</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-InsertRows">InsertRows</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-InsertSlices">InsertSlices</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Integral">Integral</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-integrate">integrate</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-J">J</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-jacobian">jacobian</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-L">L</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Label-1">Label</a></td><td valign="top"><a href="mathgl_ru_3.html#Axis-and-Colorbar">3.7 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Last">Last</a></td><td valign="top"><a href="mathgl_ru_6.html#Informational-functions">6.9 Информационные функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Legend">Legend</a></td><td valign="top"><a href="mathgl_ru_3.html#Legend">3.8 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-legend">legend</a></td><td valign="top"><a href="mathgl_ru_8.html#Legend-_0028MGL_0029">8.8 Легенда (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Legend-5">Legend</a></td><td valign="top"><a href="mathgl_ru_9.html#Legend-sample">9.6.1 Legend &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-legend-3">legend</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-legendbox">legendbox</a></td><td valign="top"><a href="mathgl_ru_8.html#Legend-_0028MGL_0029">8.8 Легенда (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-legendmarks">legendmarks</a></td><td valign="top"><a href="mathgl_ru_8.html#Legend-_0028MGL_0029">8.8 Легенда (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-light">light</a></td><td valign="top"><a href="mathgl_ru_8.html#Lighting-_0028MGL_0029">8.1.2 Освещение (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Light">Light</a></td><td valign="top"><a href="mathgl_ru_3.html#Lighting">3.1.2 Освещение</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Light-5">Light</a></td><td valign="top"><a href="mathgl_ru_9.html#Several-light-sample">9.6.5 Несколько источников света</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-line">line</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Line">Line</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Line-3">Line</a></td><td valign="top"><a href="mathgl_ru_9.html#Line-styles-sample">9.5.4 Пример стилей линий и маркеров</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Line-4">Line</a></td><td valign="top"><a href="mathgl_ru_9.html#Arrow-styles-sample">9.5.5 Пример стилей стрелок</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Linear">Linear</a></td><td valign="top"><a href="mathgl_ru_6.html#Interpolation">6.8 Интерполяция</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Linear1">Linear1</a></td><td valign="top"><a href="mathgl_ru_6.html#Interpolation">6.8 Интерполяция</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-linewidth">linewidth</a></td><td valign="top"><a href="mathgl_ru_8.html#Default-sizes-_0028MGL_0029">8.1.4 Базовые размеры (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-list">list</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-create-_0028MGL_0029">8.16 Создание данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-LoadFont">LoadFont</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-M">M</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-map">map</a></td><td valign="top"><a href="mathgl_ru_8.html#Dual-plotting-_0028MGL_0029">8.12 Парные графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Map">Map</a></td><td valign="top"><a href="mathgl_ru_3.html#Map">3.12.6 Map</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Map-3">Map</a></td><td valign="top"><a href="mathgl_ru_9.html#Map-sample">9.4.4 Map &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-mark">mark</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Mark">Mark</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Mark-3">Mark</a></td><td valign="top"><a href="mathgl_ru_3.html#Mark">3.9.13 Mark</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Mark-7">Mark</a></td><td valign="top"><a href="mathgl_ru_9.html#Mark-sample">9.1.17 Mark &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Mark-8">Mark</a></td><td valign="top"><a href="mathgl_ru_9.html#Line-styles-sample">9.5.4 Пример стилей линий и маркеров</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-marksize">marksize</a></td><td valign="top"><a href="mathgl_ru_8.html#Default-sizes-_0028MGL_0029">8.1.4 Базовые размеры (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-marksize-2">marksize</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-max">max</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Max">Max</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Max-1">Max</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Maximal">Maximal</a></td><td valign="top"><a href="mathgl_ru_6.html#Informational-functions">6.9 Информационные функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-mesh">mesh</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Mesh">Mesh</a></td><td valign="top"><a href="mathgl_ru_3.html#Mesh">3.10.1 Mesh</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Mesh-3">Mesh</a></td><td valign="top"><a href="mathgl_ru_9.html#Mesh-sample">9.2.5 Mesh &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-meshnum">meshnum</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-settings-_0028MGL_0029">8.1.7 Прочие настройки (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-meshnum-2">meshnum</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Message">Message</a></td><td valign="top"><a href="mathgl_ru_3.html#Error-handling">3.1.9 Обработка ошибок</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_7.html#index-mglArg">mglArg</a></td><td valign="top"><a href="mathgl_ru_7.html#mglArg-class">7.8 mglArg class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_7.html#index-mglColor">mglColor</a></td><td valign="top"><a href="mathgl_ru_7.html#mglColor-class">7.4 mglColor class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_7.html#index-mglCommand">mglCommand</a></td><td valign="top"><a href="mathgl_ru_7.html#mglCommand-class">7.7 mglCommand class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-mglData">mglData</a></td><td valign="top"><a href="mathgl_ru_6.html#Create-and-delete">6.2 Создание и удаление</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_4.html#index-mglDraw">mglDraw</a></td><td valign="top"><a href="mathgl_ru_4.html#mglGraphAB-class">4.1 Класс mglGraphAB</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_7.html#index-mglFont">mglFont</a></td><td valign="top"><a href="mathgl_ru_7.html#mglFont-class">7.3 mglFont class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_7.html#index-mglFormula">mglFormula</a></td><td valign="top"><a href="mathgl_ru_7.html#mglFormula-class">7.2 mglFormula class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-mglGraph">mglGraph</a></td><td valign="top"><a href="mathgl_ru_3.html#MathGL-core">3. Ядро MathGL</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_4.html#index-mglGraphAB">mglGraphAB</a></td><td valign="top"><a href="mathgl_ru_4.html#Plotter-classes">4. Классы для отрисовки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_4.html#index-mglGraphAB-2">mglGraphAB</a></td><td valign="top"><a href="mathgl_ru_4.html#mglGraphAB-class">4.1 Класс mglGraphAB</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-mglGraphFLTK">mglGraphFLTK</a></td><td valign="top"><a href="mathgl_ru_5.html#Widget-classes">5. &ldquo;Оконные&rdquo; классы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_4.html#index-mglGraphGL">mglGraphGL</a></td><td valign="top"><a href="mathgl_ru_4.html#Plotter-classes">4. Классы для отрисовки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-mglGraphGLUT">mglGraphGLUT</a></td><td valign="top"><a href="mathgl_ru_5.html#Widget-classes">5. &ldquo;Оконные&rdquo; классы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_4.html#index-mglGraphIDTF">mglGraphIDTF</a></td><td valign="top"><a href="mathgl_ru_4.html#Plotter-classes">4. Классы для отрисовки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_4.html#index-mglGraphPS">mglGraphPS</a></td><td valign="top"><a href="mathgl_ru_4.html#Plotter-classes">4. Классы для отрисовки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-mglGraphQT">mglGraphQT</a></td><td valign="top"><a href="mathgl_ru_5.html#Widget-classes">5. &ldquo;Оконные&rdquo; классы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_4.html#index-mglGraphZB">mglGraphZB</a></td><td valign="top"><a href="mathgl_ru_4.html#Plotter-classes">4. Классы для отрисовки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_7.html#index-mglParse">mglParse</a></td><td valign="top"><a href="mathgl_ru_7.html#mglParse-class">7.1 mglParse class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-mglParse-2">mglParse</a></td><td valign="top"><a href="mathgl_ru_9.html#Parser-sample">9.7.11 Parser &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-mglPDE-1">mglPDE</a></td><td valign="top"><a href="mathgl_ru_9.html#PDE-sample">9.7.9 PDE &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_7.html#index-mglPoint">mglPoint</a></td><td valign="top"><a href="mathgl_ru_7.html#mglPoint-class">7.5 mglPoint class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-mglQO2d-1">mglQO2d</a></td><td valign="top"><a href="mathgl_ru_9.html#Beam-tracing-sample">9.7.10 Beam tracing &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-mglRay-1">mglRay</a></td><td valign="top"><a href="mathgl_ru_9.html#PDE-sample">9.7.9 PDE &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-mglRay-2">mglRay</a></td><td valign="top"><a href="mathgl_ru_9.html#Beam-tracing-sample">9.7.10 Beam tracing &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_7.html#index-mglVar">mglVar</a></td><td valign="top"><a href="mathgl_ru_7.html#mglVar-class">7.6 mglVar class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Min">Min</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-min">min</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Min-1">Min</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Minimal">Minimal</a></td><td valign="top"><a href="mathgl_ru_6.html#Informational-functions">6.9 Информационные функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Mirror">Mirror</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-mirror">mirror</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Modify">Modify</a></td><td valign="top"><a href="mathgl_ru_6.html#Fill">6.3 Заполнение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-modify">modify</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-filling-_0028MGL_0029">8.17 Заполнение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-modify-1">modify</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-filling-_0028MGL_0029">8.17 Заполнение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Momentum">Momentum</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-momentum">momentum</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Momentum-2">Momentum</a></td><td valign="top"><a href="mathgl_ru_6.html#Informational-functions">6.9 Информационные функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-multo">multo</a></td><td valign="top"><a href="mathgl_ru_8.html#Operators-_0028MGL_0029">8.22 Операторы (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_ru_16.html#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_15.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_15.html
new file mode 100644
index 0000000..dfa0094
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_15.html
@@ -0,0 +1,412 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: Индекс: N &ndash; S</title>
+
+<meta name="description" content="MathGL 1.11: Индекс: N &ndash; S">
+<meta name="keywords" content="MathGL 1.11: Индекс: N &ndash; S">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-2"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_14.html#index_split-1" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_16.html#index_split-3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Индекс: N &ndash; S</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_ru_16.html#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-N">N</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-new">new</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-create-_0028MGL_0029">8.16 Создание данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-NewFrame">NewFrame</a></td><td valign="top"><a href="mathgl_ru_3.html#Frames_002fAnimation">3.17 Кадры/Анимация</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-NewFrame-2">NewFrame</a></td><td valign="top"><a href="mathgl_ru_3.html#IDTF-functions">3.18 IDTF функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-next">next</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-norm">norm</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Norm">Norm</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-NormSl">NormSl</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-normsl">normsl</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-O">O</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-once">once</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Org">Org</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-origin">origin</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-P">P</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-palette">palette</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-settings-_0028MGL_0029">8.1.7 Прочие настройки (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-pde">pde</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-perspective">perspective</a></td><td valign="top"><a href="mathgl_ru_8.html#Transformation-matrix-_0028MGL_0029">8.3 Матрица преобразования (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Perspective">Perspective</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-pipe">pipe</a></td><td valign="top"><a href="mathgl_ru_8.html#Vector-fields-_0028MGL_0029">8.13 Векторные поля (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Pipe">Pipe</a></td><td valign="top"><a href="mathgl_ru_3.html#Pipe">3.13.6 Pipe</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Pipe-5">Pipe</a></td><td valign="top"><a href="mathgl_ru_9.html#Pipe-sample">9.4.10 Pipe &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Pipe-6">Pipe</a></td><td valign="top"><a href="mathgl_ru_9.html#Pipe-3D-sample">9.4.18 Pipe 3D &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Plot">Plot</a></td><td valign="top"><a href="mathgl_ru_3.html#Plot">3.9.1 Plot</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-plot">plot</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Plot-4">Plot</a></td><td valign="top"><a href="mathgl_ru_3.html#Plots-by-formula">3.14.9 Графики функций</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Plot-7">Plot</a></td><td valign="top"><a href="mathgl_ru_9.html#Plot-sample">9.1.1 Plot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Plot-8">Plot</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t1D-plot-sample">9.5.1 Пример графиков 1D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Plot-9">Plot</a></td><td valign="top"><a href="mathgl_ru_9.html#Legend-sample">9.6.1 Legend &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Plot-10">Plot</a></td><td valign="top"><a href="mathgl_ru_9.html#Semi_002dlog-sample">9.7.3 Semi-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Plot-11">Plot</a></td><td valign="top"><a href="mathgl_ru_9.html#Log_002dlog-sample">9.7.4 Log-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-plotfactor">plotfactor</a></td><td valign="top"><a href="mathgl_ru_8.html#Zooming-_0028MGL_0029">8.1.5 Масштабирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-PlotId">PlotId</a></td><td valign="top"><a href="mathgl_ru_3.html#Other-settings">3.1.10 Прочие настройки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-PrintInfo">PrintInfo</a></td><td valign="top"><a href="mathgl_ru_6.html#Informational-functions">6.9 Информационные функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-put">put</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-filling-_0028MGL_0029">8.17 Заполнение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Puts">Puts</a></td><td valign="top"><a href="mathgl_ru_3.html#Text-printing">3.6 Вывод текста</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Puts-5">Puts</a></td><td valign="top"><a href="mathgl_ru_9.html#Text-styles-sample">9.5.6 Пример стилей текста</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Puts-6">Puts</a></td><td valign="top"><a href="mathgl_ru_9.html#TeX-parsing-sample">9.5.7 Пример TeX формулы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Puts-7">Puts</a></td><td valign="top"><a href="mathgl_ru_9.html#Font-faces-sample">9.5.8 Примеры начертаний шрифта</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-PutsFit">PutsFit</a></td><td valign="top"><a href="mathgl_ru_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-putsfit">putsfit</a></td><td valign="top"><a href="mathgl_ru_8.html#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-PutsFit-2">PutsFit</a></td><td valign="top"><a href="mathgl_ru_9.html#Fitting-sample">9.7.5 Fitting &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Putsw">Putsw</a></td><td valign="top"><a href="mathgl_ru_3.html#Text-printing">3.6 Вывод текста</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-Q">Q</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-QMathGL">QMathGL</a></td><td valign="top"><a href="mathgl_ru_5.html#Widget-classes">5. &ldquo;Оконные&rdquo; классы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-QMathGL-2">QMathGL</a></td><td valign="top"><a href="mathgl_ru_5.html#QMathGL-class">5.2 QMathGL class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-qo2d">qo2d</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-quadplot">quadplot</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-QuadPlot">QuadPlot</a></td><td valign="top"><a href="mathgl_ru_3.html#QuadPlot">3.14.8 QuadPlot</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-R">R</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Radar">Radar</a></td><td valign="top"><a href="mathgl_ru_3.html#Radar">3.9.2 Radar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-radar">radar</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Radar-2">Radar</a></td><td valign="top"><a href="mathgl_ru_9.html#Radar-sample">9.1.2 Radar &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ranges">ranges</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ray">ray</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-read">read</a></td><td valign="top"><a href="mathgl_ru_8.html#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Read">Read</a></td><td valign="top"><a href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-ReadAll">ReadAll</a></td><td valign="top"><a href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-readall">readall</a></td><td valign="top"><a href="mathgl_ru_8.html#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-readhdf">readhdf</a></td><td valign="top"><a href="mathgl_ru_8.html#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-ReadHDF">ReadHDF</a></td><td valign="top"><a href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-ReadMat">ReadMat</a></td><td valign="top"><a href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-readmat">readmat</a></td><td valign="top"><a href="mathgl_ru_8.html#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-ReadRange">ReadRange</a></td><td valign="top"><a href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Rearrange">Rearrange</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-rearrange">rearrange</a></td><td valign="top"><a href="mathgl_ru_8.html#Rearrange-data-_0028MGL_0029">8.18 Изменение размеров данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-RecalcBorder">RecalcBorder</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-rect">rect</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Region">Region</a></td><td valign="top"><a href="mathgl_ru_3.html#Region">3.9.5 Region</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-region">region</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Region-3">Region</a></td><td valign="top"><a href="mathgl_ru_9.html#Region-sample">9.1.13 Region &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Region-4">Region</a></td><td valign="top"><a href="mathgl_ru_9.html#Region-gradient-sample">9.1.14 Region с градиентной заливкой &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Resize">Resize</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-resize">resize</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-RestoreFont">RestoreFont</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-RestoreM">RestoreM</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-return">return</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Roll">Roll</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-roll">roll</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-rotate">rotate</a></td><td valign="top"><a href="mathgl_ru_8.html#Transformation-matrix-_0028MGL_0029">8.3 Матрица преобразования (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Rotate">Rotate</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-RotateN">RotateN</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-rotatetext">rotatetext</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-settings-_0028MGL_0029">8.1.7 Прочие настройки (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-S">S</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-save">save</a></td><td valign="top"><a href="mathgl_ru_8.html#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Save">Save</a></td><td valign="top"><a href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-SaveHDF">SaveHDF</a></td><td valign="top"><a href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-savehdf">savehdf</a></td><td valign="top"><a href="mathgl_ru_8.html#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SelectPen">SelectPen</a></td><td valign="top"><a href="mathgl_ru_3.html#Palette-and-colors">3.1.8 Палитра и цвета</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Set">Set</a></td><td valign="top"><a href="mathgl_ru_6.html#Create-and-delete">6.2 Создание и удаление</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetAlphaDef">SetAlphaDef</a></td><td valign="top"><a href="mathgl_ru_3.html#Transparency">3.1.1 Прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetArrowSize">SetArrowSize</a></td><td valign="top"><a href="mathgl_ru_3.html#Default-sizes">3.1.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetAutoRanges">SetAutoRanges</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetAxialDir">SetAxialDir</a></td><td valign="top"><a href="mathgl_ru_3.html#Other-settings">3.1.10 Прочие настройки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetBarWidth">SetBarWidth</a></td><td valign="top"><a href="mathgl_ru_3.html#Default-sizes">3.1.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetBaseLineWidth">SetBaseLineWidth</a></td><td valign="top"><a href="mathgl_ru_3.html#Default-sizes">3.1.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-SetColumnId">SetColumnId</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetCoor">SetCoor</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation">3.2.2 Криволинейные координаты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetCTT">SetCTT</a></td><td valign="top"><a href="mathgl_ru_3.html#Ticks">3.2.3 Метки осей</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetCut">SetCut</a></td><td valign="top"><a href="mathgl_ru_3.html#Cutting">3.1.6 Обрезание</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetCutBox">SetCutBox</a></td><td valign="top"><a href="mathgl_ru_3.html#Cutting">3.1.6 Обрезание</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetDrawFace">SetDrawFace</a></td><td valign="top"><a href="mathgl_ru_3.html#Other-settings">3.1.10 Прочие настройки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetFont">SetFont</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetFontDef">SetFontDef</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetFontSize">SetFontSize</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetFontSizeCM">SetFontSizeCM</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetFontSizeIN">SetFontSizeIN</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetFontSizePT">SetFontSizePT</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetFunc">SetFunc</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation">3.2.2 Криволинейные координаты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetLegendBox">SetLegendBox</a></td><td valign="top"><a href="mathgl_ru_3.html#Legend">3.8 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetLegendMarks">SetLegendMarks</a></td><td valign="top"><a href="mathgl_ru_3.html#Legend">3.8 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetMarkSize">SetMarkSize</a></td><td valign="top"><a href="mathgl_ru_3.html#Default-sizes">3.1.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetMeshNum">SetMeshNum</a></td><td valign="top"><a href="mathgl_ru_3.html#Other-settings">3.1.10 Прочие настройки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetPalColor">SetPalColor</a></td><td valign="top"><a href="mathgl_ru_3.html#Palette-and-colors">3.1.8 Палитра и цвета</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetPalette">SetPalette</a></td><td valign="top"><a href="mathgl_ru_3.html#Palette-and-colors">3.1.8 Палитра и цвета</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetPalNum">SetPalNum</a></td><td valign="top"><a href="mathgl_ru_3.html#Palette-and-colors">3.1.8 Палитра и цвета</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetPlotFactor">SetPlotFactor</a></td><td valign="top"><a href="mathgl_ru_3.html#Zooming">3.1.5 Масштабирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetRanges">SetRanges</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetRotatedText">SetRotatedText</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetScheme">SetScheme</a></td><td valign="top"><a href="mathgl_ru_3.html#Palette-and-colors">3.1.8 Палитра и цвета</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-setsize">setsize</a></td><td valign="top"><a href="mathgl_ru_8.html#Export-to-file-_0028MGL_0029">8.4 Экспорт в файл (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetSize">SetSize</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetTickLen">SetTickLen</a></td><td valign="top"><a href="mathgl_ru_3.html#Default-sizes">3.1.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetTicks">SetTicks</a></td><td valign="top"><a href="mathgl_ru_3.html#Ticks">3.2.3 Метки осей</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-SetTicks-2">SetTicks</a></td><td valign="top"><a href="mathgl_ru_9.html#Semi_002dlog-sample">9.7.3 Semi-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-SetTicks-3">SetTicks</a></td><td valign="top"><a href="mathgl_ru_9.html#Log_002dlog-sample">9.7.4 Log-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetTickStl">SetTickStl</a></td><td valign="top"><a href="mathgl_ru_3.html#Default-sizes">3.1.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetTicksVal">SetTicksVal</a></td><td valign="top"><a href="mathgl_ru_3.html#Ticks">3.2.3 Метки осей</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-SetTicksVal-4">SetTicksVal</a></td><td valign="top"><a href="mathgl_ru_9.html#Manual-ticks-sample">9.7.12 Особые метки по осям</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-SetTicksVal-5">SetTicksVal</a></td><td valign="top"><a href="mathgl_ru_9.html#ColumnPlot-sample">9.7.13 ColumnPlot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-SetTicksVal-6">SetTicksVal</a></td><td valign="top"><a href="mathgl_ru_9.html#StickPlot-sample">9.7.14 StickPlot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetTransparent">SetTransparent</a></td><td valign="top"><a href="mathgl_ru_3.html#Transparency">3.1.1 Прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetTranspType">SetTranspType</a></td><td valign="top"><a href="mathgl_ru_3.html#Transparency">3.1.1 Прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetTuneTicks">SetTuneTicks</a></td><td valign="top"><a href="mathgl_ru_3.html#Ticks">3.2.3 Метки осей</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetWarn">SetWarn</a></td><td valign="top"><a href="mathgl_ru_3.html#Error-handling">3.1.9 Обработка ошибок</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetXTT">SetXTT</a></td><td valign="top"><a href="mathgl_ru_3.html#Ticks">3.2.3 Метки осей</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetYTT">SetYTT</a></td><td valign="top"><a href="mathgl_ru_3.html#Ticks">3.2.3 Метки осей</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetZTT">SetZTT</a></td><td valign="top"><a href="mathgl_ru_3.html#Ticks">3.2.3 Метки осей</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Sew">Sew</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-sew">sew</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Sew-2">Sew</a></td><td valign="top"><a href="mathgl_ru_9.html#Sew-sample">9.7.7 Sew &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ShowImage">ShowImage</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SimplePlot">SimplePlot</a></td><td valign="top"><a href="mathgl_ru_3.html#SimplePlot">3.14.10 SimplePlot</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-sinfft">sinfft</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-SinFFT">SinFFT</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-smooth">smooth</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Smooth">Smooth</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Sphere">Sphere</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-sphere">sphere</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Sphere-3">Sphere</a></td><td valign="top"><a href="mathgl_ru_9.html#Molecules-drawing-sample">9.6.11 Рисование молекул</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Spline">Spline</a></td><td valign="top"><a href="mathgl_ru_6.html#Interpolation">6.8 Интерполяция</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Spline1">Spline1</a></td><td valign="top"><a href="mathgl_ru_6.html#Interpolation">6.8 Интерполяция</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Spline5">Spline5</a></td><td valign="top"><a href="mathgl_ru_6.html#Interpolation">6.8 Интерполяция</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Squeeze">Squeeze</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-squeeze">squeeze</a></td><td valign="top"><a href="mathgl_ru_8.html#Rearrange-data-_0028MGL_0029">8.18 Изменение размеров данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-stem">stem</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Stem">Stem</a></td><td valign="top"><a href="mathgl_ru_3.html#Stem">3.9.6 Stem</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Stem-4">Stem</a></td><td valign="top"><a href="mathgl_ru_9.html#Stem-sample">9.1.12 Stem &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-step">step</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Step">Step</a></td><td valign="top"><a href="mathgl_ru_3.html#Step">3.9.10 Step</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Step-4">Step</a></td><td valign="top"><a href="mathgl_ru_9.html#Step-sample">9.1.11 Step &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-stfa">stfa</a></td><td valign="top"><a href="mathgl_ru_8.html#Dual-plotting-_0028MGL_0029">8.12 Парные графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-STFA">STFA</a></td><td valign="top"><a href="mathgl_ru_3.html#STFA">3.12.7 STFA</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-STFA-3">STFA</a></td><td valign="top"><a href="mathgl_ru_9.html#STFA-sample">9.7.8 STFA &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-stfad">stfad</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-stickplot">stickplot</a></td><td valign="top"><a href="mathgl_ru_8.html#Transformation-matrix-_0028MGL_0029">8.3 Матрица преобразования (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-stop">stop</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-subdata">subdata</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-SubData">SubData</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SubPlot">SubPlot</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-subplot">subplot</a></td><td valign="top"><a href="mathgl_ru_8.html#Transformation-matrix-_0028MGL_0029">8.3 Матрица преобразования (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-SubPlot-3">SubPlot</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t1D-plot-sample">9.5.1 Пример графиков 1D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-SubPlot-4">SubPlot</a></td><td valign="top"><a href="mathgl_ru_9.html#Adding-mesh-sample">9.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-subto">subto</a></td><td valign="top"><a href="mathgl_ru_8.html#Operators-_0028MGL_0029">8.22 Операторы (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-sum">sum</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Sum">Sum</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Surf">Surf</a></td><td valign="top"><a href="mathgl_ru_3.html#Surf">3.10.4 Surf</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-surf">surf</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Surf-3">Surf</a></td><td valign="top"><a href="mathgl_ru_3.html#Plots-by-formula">3.14.9 Графики функций</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-6">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#Surf-sample">9.2.1 Surf &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-7">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#Transparent-surface-sample">9.2.2 Transparent surface &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-8">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#Surface-in-fog-sample">9.2.3 Surface in fog &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-9">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#Sharp-colors-sample">9.2.4 Sharp colors &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-10">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t2D-plot-sample">9.5.2 Пример графиков 2D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-11">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t3D-plot-sample">9.5.3 Пример графиков 3D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-12">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#Adding-mesh-sample">9.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-13">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#Surf-_0026-Cont-sample">9.6.3 Surf &amp; Cont &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-14">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#Several-light-sample">9.6.5 Несколько источников света</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-15">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#Mirrored-surface-sample">9.6.6 Отражение поверхности</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-surf3">surf3</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Surf3">Surf3</a></td><td valign="top"><a href="mathgl_ru_3.html#Surf3">3.11.1 Surf3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf3-5">Surf3</a></td><td valign="top"><a href="mathgl_ru_9.html#Surf3-sample">9.3.1 Surf3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf3-6">Surf3</a></td><td valign="top"><a href="mathgl_ru_9.html#CutMinMax-sample">9.3.9 CutMinMax &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf3-7">Surf3</a></td><td valign="top"><a href="mathgl_ru_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf3-8">Surf3</a></td><td valign="top"><a href="mathgl_ru_9.html#CutOff-sample">9.3.11 CutOff &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf3-9">Surf3</a></td><td valign="top"><a href="mathgl_ru_9.html#Coloring-by-coordinates-sample">9.6.9 Окрашивание по положению грани</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Surf3A">Surf3A</a></td><td valign="top"><a href="mathgl_ru_3.html#Surf3A">3.12.4 Surf3A</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-surf3a">surf3a</a></td><td valign="top"><a href="mathgl_ru_8.html#Dual-plotting-_0028MGL_0029">8.12 Парные графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf3A-5">Surf3A</a></td><td valign="top"><a href="mathgl_ru_9.html#Surf3A-sample">9.4.13 Surf3A &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Surf3C">Surf3C</a></td><td valign="top"><a href="mathgl_ru_3.html#Surf3C">3.12.2 Surf3C</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-surf3c">surf3c</a></td><td valign="top"><a href="mathgl_ru_8.html#Dual-plotting-_0028MGL_0029">8.12 Парные графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf3C-5">Surf3C</a></td><td valign="top"><a href="mathgl_ru_9.html#Surf3C-sample">9.4.12 Surf3C &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-surfa">surfa</a></td><td valign="top"><a href="mathgl_ru_8.html#Dual-plotting-_0028MGL_0029">8.12 Парные графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SurfA">SurfA</a></td><td valign="top"><a href="mathgl_ru_3.html#SurfA">3.12.3 SurfA</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-SurfA-3">SurfA</a></td><td valign="top"><a href="mathgl_ru_9.html#SurfA-sample">9.4.2 SurfA &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-surfc">surfc</a></td><td valign="top"><a href="mathgl_ru_8.html#Dual-plotting-_0028MGL_0029">8.12 Парные графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SurfC">SurfC</a></td><td valign="top"><a href="mathgl_ru_3.html#SurfC">3.12.1 SurfC</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-SurfC-3">SurfC</a></td><td valign="top"><a href="mathgl_ru_9.html#SurfC-sample">9.4.1 SurfC &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-swap">swap</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Swap">Swap</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_ru_16.html#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_16.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_16.html
new file mode 100644
index 0000000..f76cdc4
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_16.html
@@ -0,0 +1,321 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: Индекс: T &ndash; Ц</title>
+
+<meta name="description" content="MathGL 1.11: Индекс: T &ndash; Ц">
+<meta name="keywords" content="MathGL 1.11: Индекс: T &ndash; Ц">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_15.html#index_split-2" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[ &gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Индекс: T &ndash; Ц</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-T">T</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Tens">Tens</a></td><td valign="top"><a href="mathgl_ru_3.html#Tens">3.9.3 Tens</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-tens">tens</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Tens-4">Tens</a></td><td valign="top"><a href="mathgl_ru_9.html#Tens-sample">9.1.3 Tens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Ternary">Ternary</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation">3.2.2 Криволинейные координаты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ternary">ternary</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Ternary-2">Ternary</a></td><td valign="top"><a href="mathgl_ru_9.html#Ternary-plot-sample">9.6.8 Ternary plot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Text">Text</a></td><td valign="top"><a href="mathgl_ru_3.html#Text-printing">3.6 Вывод текста</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-text">text</a></td><td valign="top"><a href="mathgl_ru_8.html#Text-printing-_0028MGL_0029">8.6 Вывод текста (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Text-7">Text</a></td><td valign="top"><a href="mathgl_ru_9.html#Text-sample">9.1.20 Text &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-textmark">textmark</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-TextMark">TextMark</a></td><td valign="top"><a href="mathgl_ru_3.html#TextMark">3.9.14 TextMark</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-TextMark-9">TextMark</a></td><td valign="top"><a href="mathgl_ru_9.html#TextMark-sample">9.1.18 TextMark &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ticklen">ticklen</a></td><td valign="top"><a href="mathgl_ru_8.html#Default-sizes-_0028MGL_0029">8.1.4 Базовые размеры (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-tickstl">tickstl</a></td><td valign="top"><a href="mathgl_ru_8.html#Default-sizes-_0028MGL_0029">8.1.4 Базовые размеры (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-tile">tile</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Tile">Tile</a></td><td valign="top"><a href="mathgl_ru_3.html#Tile">3.10.6 Tile</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Tile-3">Tile</a></td><td valign="top"><a href="mathgl_ru_9.html#Tile-sample">9.2.8 Tile &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-tiles">tiles</a></td><td valign="top"><a href="mathgl_ru_8.html#Dual-plotting-_0028MGL_0029">8.12 Парные графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-TileS">TileS</a></td><td valign="top"><a href="mathgl_ru_3.html#TileS">3.12.5 TileS</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-TileS-3">TileS</a></td><td valign="top"><a href="mathgl_ru_9.html#TileS-sample">9.4.3 TileS &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-title">title</a></td><td valign="top"><a href="mathgl_ru_8.html#Text-printing-_0028MGL_0029">8.6 Вывод текста (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Title">Title</a></td><td valign="top"><a href="mathgl_ru_3.html#Text-printing">3.6 Вывод текста</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-tlabel">tlabel</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-torus">torus</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Torus">Torus</a></td><td valign="top"><a href="mathgl_ru_3.html#Torus">3.9.11 Torus</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Torus-3">Torus</a></td><td valign="top"><a href="mathgl_ru_9.html#Torus-sample">9.1.21 Torus &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-trace">trace</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Trace">Trace</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Traj">Traj</a></td><td valign="top"><a href="mathgl_ru_3.html#Traj">3.13.1 Traj</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-traj">traj</a></td><td valign="top"><a href="mathgl_ru_8.html#Vector-fields-_0028MGL_0029">8.13 Векторные поля (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Traj-3">Traj</a></td><td valign="top"><a href="mathgl_ru_9.html#Traj-sample">9.4.5 Traj &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-transform">transform</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-transforma">transforma</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-transparent">transparent</a></td><td valign="top"><a href="mathgl_ru_8.html#Transparency-_0028MGL_0029">8.1.1 Прозрачность (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-transpose">transpose</a></td><td valign="top"><a href="mathgl_ru_8.html#Rearrange-data-_0028MGL_0029">8.18 Изменение размеров данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Transpose">Transpose</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-TranspType">TranspType</a></td><td valign="top"><a href="mathgl_ru_9.html#Normal-transparency">9.5.11 Обычная прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-transptype">transptype</a></td><td valign="top"><a href="mathgl_ru_8.html#Transparency-_0028MGL_0029">8.1.1 Прозрачность (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-TranspType-1">TranspType</a></td><td valign="top"><a href="mathgl_ru_9.html#Glass_002dlike-transparency">9.5.12 &quot;Стеклянная&quot; прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-TranspType-2">TranspType</a></td><td valign="top"><a href="mathgl_ru_9.html#Lamp_002dlike-transparency">9.5.13 &quot;Ламповая&quot; прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-TriCont">TriCont</a></td><td valign="top"><a href="mathgl_ru_3.html#TriCont">3.14.7 TriCont</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-tricont">tricont</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-triplot">triplot</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-TriPlot">TriPlot</a></td><td valign="top"><a href="mathgl_ru_3.html#TriPlot">3.14.6 TriPlot</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Tube">Tube</a></td><td valign="top"><a href="mathgl_ru_3.html#Tube">3.9.12 Tube</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-tube">tube</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Tube-7">Tube</a></td><td valign="top"><a href="mathgl_ru_9.html#Tube-sample">9.1.19 Tube &ndash; пример использования</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-V">V</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-v">v</a></td><td valign="top"><a href="mathgl_ru_6.html#Interpolation">6.8 Интерполяция</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-var">var</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-create-_0028MGL_0029">8.16 Создание данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-vect">vect</a></td><td valign="top"><a href="mathgl_ru_8.html#Vector-fields-_0028MGL_0029">8.13 Векторные поля (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Vect">Vect</a></td><td valign="top"><a href="mathgl_ru_3.html#Vect">3.13.2 Vect</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Vect-5">Vect</a></td><td valign="top"><a href="mathgl_ru_9.html#Vect-sample">9.4.6 Vect &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Vect-6">Vect</a></td><td valign="top"><a href="mathgl_ru_9.html#Vect-3D-sample">9.4.14 Vect 3D &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-VectC">VectC</a></td><td valign="top"><a href="mathgl_ru_9.html#VectC-sample">9.4.8 VectC &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-vectc">vectc</a></td><td valign="top"><a href="mathgl_ru_8.html#Vector-fields-_0028MGL_0029">8.13 Векторные поля (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-VectC-1">VectC</a></td><td valign="top"><a href="mathgl_ru_9.html#VectC-3D-sample">9.4.16 VectC 3D &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-vectl">vectl</a></td><td valign="top"><a href="mathgl_ru_8.html#Vector-fields-_0028MGL_0029">8.13 Векторные поля (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-VectL">VectL</a></td><td valign="top"><a href="mathgl_ru_9.html#VectL-sample">9.4.7 VectL &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-VectL-1">VectL</a></td><td valign="top"><a href="mathgl_ru_9.html#VectL-3D-sample">9.4.15 VectL 3D &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-View">View</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-W">W</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_2.html#index-widgets">widgets</a></td><td valign="top"><a href="mathgl_ru_2.html#Using-FLTK_002fGLUT-window">2.1.1 Using FLTK/Qt/GLUT window</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-widgets-1">widgets</a></td><td valign="top"><a href="mathgl_ru_5.html#Widget-classes">5. &ldquo;Оконные&rdquo; классы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-widgets-2">widgets</a></td><td valign="top"><a href="mathgl_ru_5.html#Fl_005fMathGL-class">5.1 Класс Fl_MathGL</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-widgets-3">widgets</a></td><td valign="top"><a href="mathgl_ru_5.html#QMathGL-class">5.2 QMathGL class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_2.html#index-window">window</a></td><td valign="top"><a href="mathgl_ru_2.html#Using-FLTK_002fGLUT-window">2.1.1 Using FLTK/Qt/GLUT window</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_4.html#index-window-1">window</a></td><td valign="top"><a href="mathgl_ru_4.html#mglGraphAB-class">4.1 Класс mglGraphAB</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-window-2">window</a></td><td valign="top"><a href="mathgl_ru_5.html#Widget-classes">5. &ldquo;Оконные&rdquo; классы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-write">write</a></td><td valign="top"><a href="mathgl_ru_8.html#Export-to-file-_0028MGL_0029">8.4 Экспорт в файл (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-WriteBMP">WriteBMP</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-WriteEPS">WriteEPS</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-WriteFrame">WriteFrame</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-WriteGIF">WriteGIF</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-WriteIDTF">WriteIDTF</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-WriteJPEG">WriteJPEG</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-WritePNG">WritePNG</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-WriteSVG">WriteSVG</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-X">X</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-xlabel">xlabel</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-XRange">XRange</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-xrange">xrange</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-xrange-3">xrange</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-xtick">xtick</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-Y">Y</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ylabel">ylabel</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-YRange">YRange</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-yrange">yrange</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-yrange-3">yrange</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ytick">ytick</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-Z">Z</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-zlabel">zlabel</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Zoom">Zoom</a></td><td valign="top"><a href="mathgl_ru_3.html#Zooming">3.1.5 Масштабирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-zoom">zoom</a></td><td valign="top"><a href="mathgl_ru_8.html#Zooming-_0028MGL_0029">8.1.5 Масштабирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ZRange">ZRange</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-zrange">zrange</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-zrange-3">zrange</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ztick">ztick</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_symbol-1">Н</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-_041d_0430_0441_0442_0440_043e_0439_043a_0430-MathGL">Настройка MathGL</a></td><td valign="top"><a href="mathgl_ru_3.html#Graphics-setup">3.1 Настройка графика</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_symbol-2">О</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_1.html#index-_041e_0431_0437_043e_0440-MathGL">Обзор MathGL</a></td><td valign="top"><a href="mathgl_ru_1.html#Overview">1. Обзор MathGL</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_symbol-3">С</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_1.html#index-_0421_0442_0438_043bx-_043b_0438_043d_0438_0439">Стиль линий</a></td><td valign="top"><a href="mathgl_ru_1.html#Line-styles">1.4.2 Стиль линий</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_1.html#index-_0421_0442_0438_043bx-_043c_0430_0440_043ae_0440_043e_0432">Стиль маркеров</a></td><td valign="top"><a href="mathgl_ru_1.html#Line-styles">1.4.2 Стиль линий</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_1.html#index-_0421_0442_0438_043bx-_0441_0442_0440e_043b_043e_043a">Стиль стрелок</a></td><td valign="top"><a href="mathgl_ru_1.html#Line-styles">1.4.2 Стиль линий</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_1.html#index-_0421_0442_0438_043bx-_0442e_043a_0441_0442_0430">Стиль текста</a></td><td valign="top"><a href="mathgl_ru_1.html#Font-styles">1.4.4 Стиль текста</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_symbol-4">Т</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_1.html#index-_0422e_043a_0441_0442_043e_0432_044be-_0444_043e_0440_043c_0443_043b_044b">Текстовые формулы</a></td><td valign="top"><a href="mathgl_ru_1.html#Textual-formulas">1.4.5 Текстовые формулы</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_symbol-5">Ц</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_1.html#index-C_0432e_0442_043e_0432_0430ya-_0441_0445e_043c_0430">Цветовая схема</a></td><td valign="top"><a href="mathgl_ru_1.html#Color-scheme">1.4.3 Цветовая схема</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_2.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_2.html
new file mode 100644
index 0000000..b045955
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_2.html
@@ -0,0 +1,1983 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: 2. MathGL examples</title>
+
+<meta name="description" content="MathGL 1.11: 2. MathGL examples">
+<meta name="keywords" content="MathGL 1.11: 2. MathGL examples">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Examples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_1.html#Thanks" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_1.html#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL-examples"></a>
+<h1 class="chapter">2. MathGL examples</h1>
+
+<p>This chapter contain information about basic and advanced MathGL, hints and samples for all types of graphics. I recommend you read first 2 sections one after another and at least look on &ldquo;Hints&rdquo; section. Also I recommend you to look at <a href="mathgl_ru_1.html#General-concepts">Основные принципы</a> and <a href="mathgl_ru_1.html#FAQ">FAQ</a>. Sample code for some of these examples can be found in <a href="http://mathgl.sf.net/pictures.html">http://mathgl.sf.net/pictures.html</a> and in <a href="mathgl_ru_9.html#Samples">Примеры использования MathGL</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Basic-usage">2.1 Basic usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Advanced-usage">2.2 Advanced usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-handling">2.3 Data handling</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-plotting">2.4 Data plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#C_002fFortran-interface">2.5 C/Fortran interface</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#MathGL-and-PyQt">2.6 MathGL and PyQt</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Hints">2.7 Hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Basic-usage"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Examples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Using-FLTK_002fGLUT-window" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Basic-usage-1"></a>
+<h2 class="section">2.1 Basic usage</h2>
+
+<p>MathGL library can be used by several manners. Each has positive and negative sides:
+</p><ul>
+<li>
+<em>The using of MathGL library features for creating graphical window (requires FLTK or GLUT libraries).</em>
+
+<p>Positive side is the possibility to view the plot at once and to modify it (rotate, zoom or switch on transparency or lighting) by hand or by mouse. Negative sides are: the need  of X-terminal and limitation consisting in working with the only one set of data at a time.
+</p></li><li>
+<em>Direct writing to file in bitmap or vector format without creation of graphical window.</em>
+
+<p>Positive aspects are: batch processing of similar data set (for example, a set of resulting data files for different calculation parameters), running from the console program (including the cluster calculation), fast and automated drawing, saving pictures for further analysis (or demonstration). Negative sides are: the usage of the external program for picture viewing. Also, the data plotting is non-visual. So, you have to imagine the picture (view angles, lighting and so on) before the plotting. I recommend to use graphical window for determining the optimal parameters of plotting on the base of some typical data set. And later use these parameters for batch processing in console program.
+</p></li><li>
+<em>Drawing in memory with the following displaying by other graphical program.</em>
+
+<p>In this case the programmer has more freedom in selecting the window libraries (not only FLTK or GLUT), in positioning and surroundings control and so on. I recommend to use such way for &ldquo;settled&rdquo; programs.
+</p></li></ul>
+
+<p>Let me consider the aforesaid in more detail.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Using-FLTK_002fGLUT-window">2.1.1 Using FLTK/Qt/GLUT window</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Drawing-to-file">2.1.2 Drawing to file</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Drawing-in-memory">2.1.3 Drawing in memory</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Using-QMathGL">2.1.4 Using QMathGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+
+
+<hr size="6">
+<a name="Using-FLTK_002fGLUT-window"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Basic-usage" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Drawing-to-file" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Using-FLTK_002fQt_002fGLUT-window"></a>
+<h3 class="subsection">2.1.1 Using FLTK/Qt/GLUT window</h3>
+<a name="index-window"></a>
+<a name="index-widgets"></a>
+
+<p>The &ldquo;interactive&rdquo; way of drawing in MathGL consists in window creation  with help of class <code>mglGraphFLTK</code>, <code>mglGraphQT</code> or <code>mglGraphGLUT</code> (see section <a href="mathgl_ru_5.html#Widget-classes">&ldquo;Оконные&rdquo; классы</a>) and the following drawing in this window. There is a corresponding code:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Box();
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mglGraphFLTK gr;
+        gr.Window(argc,argv,sample,&quot;MathGL examples&quot;);
+        return mglFlRun();
+    }
+</pre><p>Here function <code>sample</code> is defined. This function does all drawing. Other function <code>main</code> is entry point function for console program. Arguments of <code>main</code> should be transfered to <code>Window()</code> since it may contain OS specific information (see section <a href="mathgl_ru_4.html#mglGraphAB-class">Класс mglGraphAB</a>).
+</p>
+<p>Alternatively you can create yours own class inherited from class <code>mglDraw</code> and re-implement the function <code>Draw()</code> in it:
+</p><pre class="verbatim">    class Foo : public mglDraw
+    {
+    public:
+        int Draw(mglGraph *gr);
+    } foo;
+    //-----------------------------------------------------
+    int Foo::Draw(mglGraph *gr)
+    {
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Box();
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mglGraphFLTK gr;
+        gr.Window(argc,argv,foo,&quot;MathGL examples&quot;);
+        return mglFlRun();
+    }
+</pre>
+<p>The similar code can be written for <code>mglGraphQT</code> or for <code>mglGraphGLUT</code> window (function <code>sample()</code> is the same):
+</p><pre class="verbatim">    int main(int argc,char **argv)
+    {
+        mglGraphGLUT gr;
+        gr.Window(argc,argv,sample,&quot;MathGL examples&quot;);
+        return 0;
+    }
+</pre>
+<p>The rotation, shift, zooming, switching on/off transparency and lighting can be done with help of tool-buttons (for <code>mglGraphFLTK</code> and <code>mglGraphQT</code>) or by hot-keys: &lsquo;<samp>a</samp>&rsquo;, &lsquo;<samp>d</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;, &lsquo;<samp>s</samp>&rsquo; for plot rotation, &lsquo;<samp>r</samp>&rsquo; and &lsquo;<samp>f</samp>&rsquo; switching on/off transparency and lighting. Press &lsquo;<samp>x</samp>&rsquo; for exit (or closing the window).
+</p>
+<p>In this example function <code>sample</code> rotates axes (<code>Rotate()</code>, see section <a href="mathgl_ru_3.html#Transformation-matrix">Матрица преобразования</a>) and draws the bounding box (<code>Box()</code>). Drawing procedure is separated in a function since it will be used on demand when window canvas needs to be redrawn. Widget classes (<code>mglGraphFLTK</code>, <code>mglGraphGLUT</code> and so on) support a delayed drawing, when all plotting functions are called once at the beginning of writing to memory lists. Further program displays the saved lists faster. Resulting redrawing will be faster but it requires sufficient memory. Several lists (frames) can be displayed one after another (by pressing &lsquo;<samp>,</samp>&rsquo;, &lsquo;<samp>.</samp>&rsquo;) or run as cinema. To switch these feature on one needs to modify function <code>sample</code>:
+</p><pre class="verbatim">    int sample1(mglGraph *gr, void *)
+    {
+        gr-&gt;NewFrame();             // the first frame
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Box();
+        gr-&gt;EndFrame();             // end of the first frame
+        gr-&gt;NewFrame();             // the second frame
+        gr-&gt;Box();
+        gr-&gt;Axis(&quot;xy&quot;);
+        gr-&gt;EndFrame();             // end of the second frame
+        return GetNumFrame();       // returns the frame number
+    }
+</pre><p>First, the function creates a frame <code>NewFrame()</code> for rotated axes and draws the bounding box. After the frame drawing the function <code>EndFrame()</code> <strong>must be</strong> called! The second frame contains the bounding box and axes <code>Axis(&quot;xy&quot;)</code> in the initial (unrotated) coordinates. Function <code>sample</code> returns the number of created frames <code>GetNumFrame()</code>.
+</p>
+<hr size="6">
+<a name="Drawing-to-file"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Using-FLTK_002fGLUT-window" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Drawing-in-memory" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Drawing-to-file-1"></a>
+<h3 class="subsection">2.1.2 Drawing to file</h3>
+
+<p>Another way of using MathGL library is the direct picture writing to file. It is most usable for plot creating during calculation or for using of small programs (like Matlab or Scilab scripts) for visualizing repetitive sets of data. But the speed of drawing is much higher in comparison with a script language. There are two classes for exporting in file: class <code>mglGraphZB</code> saves in bitmap format (like PNG), <code>mglGraphPS</code> saves in vector PostScript format (see section <a href="mathgl_ru_4.html#Plotter-classes">Классы для отрисовки</a>).
+</p>
+<p>The following code produces a bitmap PNG picture:
+</p><pre class="verbatim">    int main(int ,char **)
+    {
+        mglGraphZB gr;
+        gr.Alpha(true);
+        gr.Light(true);             gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);           // The same drawing function.
+        gr.WritePNG(&quot;test.png&quot;);    // Don't forget to save the result!
+        return 0;
+    }
+</pre><p>The only difference from the previous (using windows) variant is manual switching the transparency  <code>Alpha</code> and lightning <code>Light</code> on, if the plot requires it. The using of frames is not advisable since the whole image is prepared each time. If function <code>sample</code> contains frames then each frame will be saved to a separate file. In principle, one does not need to separate drawing functions in case of direct file writing in consequence of the single calling of this function for each picture. However, one may use the same drawing procedure to create a plot with changed parameters, to export in different file types, to emphasize the drawing code and so on. So, in future I will put the drawing in separate function.
+</p>
+<p>The code for export in vector EPS file looks the same:
+</p><pre class="verbatim">    int main(int ,char **)
+    {
+        mglGraphPS gr;
+        gr.Light(true);             gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);           // The same drawing function.
+        gr.WriteEPS(&quot;test.eps&quot;);    // Don't forget to save the result!
+        return 0;
+    }
+</pre><p>The differences from the using of bitmap picture are: applying of the other class <code>mglGraphPS</code>, and writing to other format (function <code>WriteEPS()</code> instead of function <code>WritePNG()</code>). Moreover, there is no switching of the plot transparency <code>Alpha</code> since EPS format does not support it. Possibly I shall include transparency in future by program emulation.
+</p>
+<p>Classes <code>mglGraphZB</code> and <code>mglGraphPS</code> have some merits and demerits. Class <code>mglGraphZB</code> draws beautiful surface with transparency, smoothed colors and lightning, but the output picture is <em>bitmap</em>, that leads to a bad scalability. On the contrary, class <code>mglGraphPS</code> creates vector file with excellent scalability. But file has large size (especially for surfaces), it does not support transparency and color smoothing. So, vector picture looks stylish but a bit angularly.
+</p>
+<hr size="6">
+<a name="Drawing-in-memory"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Drawing-to-file" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Using-QMathGL" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Drawing-in-memory-1"></a>
+<h3 class="subsection">2.1.3 Drawing in memory</h3>
+
+<p>The last way of MathGL using is the drawing in memory. Class <code>mglGraphZB</code> allows one  to create a bitmap picture in memory. Further this picture can be displayed in window by some window libraries (like wxWidgets, FLTK, Windows GDI and so on). For example, the code for drawing in wxWidget library looks like:
+</p><pre class="verbatim">    void MyForm::OnPaint(wxPaintEvent&amp; event)
+    {
+        int w,h,x,y;
+        GetClientSize(&amp;w,&amp;h);   // size of the picture
+        mglGraphZB gr(w,h);
+
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);
+
+        wxImage img(w,h,gr.GetBits(),true);
+        ToolBar-&gt;GetSize(&amp;x,&amp;y);    // gets a height of the toolbar if any
+        wxPaintDC dc(this);         // and draws it
+        dc.DrawBitmap(wxBitmap(img),0,y);
+    }
+</pre><p>The drawing in other libraries is most the same.
+</p>
+<p>For example, FLTK code will look like
+</p><pre class="verbatim">    void Fl_MyWidget::draw()
+    {
+        mglGraphZB gr(w(),h());
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);
+        fl_draw_image(gr.GetBits(), x(), y(), gr.GetWidth(), gr.GetHeight(), 3);
+    }
+</pre><p>Qt code will look like
+</p><pre class="verbatim">    void MyWidget::paintEvent(QPaintEvent *)
+    {
+        mglGraphZB gr(w(),h());
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);
+
+        // Qt don't support RGB format as is. So, let convert it to BGRN.
+        const uchar *bb = gr.GetBits();
+        register long i, w=gr.GetWidth(), h=gr.GetHeight();
+        *buf = new uchar[4*w*h];
+        for(i=0;i&lt;w*h;i++)
+        {
+            (*buf)[4*i]   = bb[3*i+2];
+            (*buf)[4*i+1] = bb[3*i+1];
+            (*buf)[4*i+2] = bb[3*i];
+            (*buf)[4*i+3] = 255;
+        }
+        QPixmap pic = QPixmap::fromImage(QImage(*buf, w, h, QImage::Format_RGB32));
+
+        QPainter paint;
+        paint.begin(this);  paint.drawPixmap(0,0,pic);  paint.end();
+        delete []buf;
+    }
+</pre>
+<hr size="6">
+<a name="Using-QMathGL"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Drawing-in-memory" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Using-QMathGL-1"></a>
+<h3 class="subsection">2.1.4 Using QMathGL</h3>
+
+<p>MathGL have several interface widgets for different widget libraries. There are QMathGL for Qt, Fl_MathGL for FLTK in MathGL v.1.8. These classes provide control which display MathGL graphics. Unfortunately there is no uniform interface for widget classes because all libraries have slightly different set of functions, features and so on. However the usage of MathGL widgets is rather simple. Let me show it on the example of QMathGL.
+</p>
+<p>First of all you have to define the drawing function or inherit a class from <code>mglDraw</code> class. After it just create a window and setup QMathGL instance as any other Qt widget:
+</p><pre class="verbatim">    int main(int argc,char **argv)
+    {
+        QApplication a(argc,argv);
+        QMainWindow *Wnd = new QMainWindow;
+        Wnd-&gt;resize(650,480);  // for fill up the QMGL, menu and toolbars
+        Wnd-&gt;setWindowTitle(title);
+        // here I allow to scroll QMathGL -- the case 
+        // then user want to prepare huge picture
+        QScrollArea *scroll = new QScrollArea(Wnd);
+
+        // Create and setup QMathGL
+        QMathGL *QMGL = new QMathGL(Wnd);
+        QMGL-&gt;setPopup(popup); // if you want to setup popup menu for QMGL
+        QMGL-&gt;setDraw(sample, NULL);
+        // or use QMGL-&gt;setDraw(foo); for instance of class Foo:public mglDraw
+        QMGL-&gt;update();
+
+        // continue other setup (menu, toolbar and so on)
+        makeMenu();
+        scroll-&gt;setWidget(QMGL);
+        Wnd-&gt;setCentralWidget(scroll);
+        Wnd-&gt;show();
+        return a.exec();
+    }
+</pre>
+
+<hr size="6">
+<a name="Advanced-usage"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Using-QMathGL" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Subplots" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Advanced-usage-1"></a>
+<h2 class="section">2.2 Advanced usage</h2>
+
+<p>Now I show several non-obvious features of MathGL: several subplots in a single picture, curvilinear coordinates, text printing and so on. Generally you may miss this section at first reading, but I don&rsquo;t recommend it.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Subplots">2.2.1 Subplots</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-grids">2.2.2 Axis and grids</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Curvilinear-coordinates">2.2.3 Curvilinear coordinates</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing-example">2.2.4 Text printing example</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Animation">2.2.5 Animation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Subplots"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Advanced-usage" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-grids" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Subplots-1"></a>
+<h3 class="subsection">2.2.1 Subplots</h3>
+
+<p>Let me demonstrate possibilities of axes transformation. MathGL has the following functions: <code>SubPlot</code>, <code>InPlot</code>, <code>Aspect</code> and <code>Rotate</code> (see section <a href="mathgl_ru_3.html#Transformation-matrix">Матрица преобразования</a>). The order of their calling is strictly determined. First, one changes the position of axes in image area (functions <code>SubPlot</code> and <code>InPlot</code>). After that one may rotate the plot (function <code>Rotate</code>). Finally, one may change aspects of axes (function <code>Aspect</code>). The following code illustrates the aforesaid it:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;SubPlot(2,2,0);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(-1,1.1,1),&quot;Just box&quot;,&quot;rL&quot;);
+        gr-&gt;InPlot(0.2,0.5,0.7,1);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0,1.2,1),&quot;InPlot example&quot;);
+
+        gr-&gt;SubPlot(2,2,1);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Aspect(1,1,1);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(1,1,1.5),&quot;Rotate only&quot;,&quot;rR&quot;);
+
+        gr-&gt;SubPlot(2,2,2);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Aspect(1,1,2);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0,0,2),&quot;Aspect and Rotate&quot;);
+
+        gr-&gt;SubPlot(2,2,3);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Aspect(1,2,2);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0,0,1.5),&quot;Aspect in other direction&quot;);
+        return 0;
+    }
+</pre><p>Here I used function <code>Puts</code> for printing the text in arbitrary position of picture (see section <a href="mathgl_ru_3.html#Text-printing">Вывод текста</a>). Text coordinates and size are connected with axes. However, text coordinates may be everywhere, including the outside the bounding box. I shall show its features later in See section <a href="#Text-printing-example">Text printing example</a>.
+</p>
+<div class="float">
+<img src="../png/sample1.png" alt="../png/sample1">
+
+</div><p><strong>Example of several subplots on the single picture.
+</strong>
+</p>
+<hr size="6">
+<a name="Axis-and-grids"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Subplots" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Curvilinear-coordinates" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-and-grids-1"></a>
+<h3 class="subsection">2.2.2 Axis and grids</h3>
+
+<p>MathGL library can draw not only the bounding box but also the axes, grids, labels and so on. The limits of axes and their origin (the point of intersection) are determined by function <code>Axis()</code>. Also you can use <code>XRange(), YRange(), ZRange()</code> functions (see section <a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">Масштаб осей координат</a>). Ticks on axis are specified by function <code>SetTicks</code> (see section <a href="mathgl_ru_3.html#Ticks">Метки осей</a>). First argument the direction for each change will be applied. Second argument gives the step between ticks (if positive) or gives the number of ticks on the axis (if negative) or set to use logarithmic ticks (if zero). Third argument gives numbers of sub-ticks between ticks (default is zero). Last argument define the initial ticks position.
+</p>
+<p>Function <code>Axis</code> draws axes. Its textual string shows in which directions the axis or axes will be drawn (by default <code>&quot;xyz&quot;</code>, function draws axes in all directions). Function <code>Grid</code> draws grid perpendicularly to specified directions. Example of axes and grid drawing is:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;SubPlot(2,2,0);
+        gr-&gt;SetTicks('x', 0.4, 3);  // sets tick step to 0.5
+        gr-&gt;SetTicks('y', 0.4, 3);  // and draws 3 subticks
+        gr-&gt;Box();                  // should be after the ticks change
+        gr-&gt;Axis(&quot;xy&quot;);
+        gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Axis and grid&quot;);
+
+        gr-&gt;SetTicks('x');  gr-&gt;SetTicks('y'); // restore back
+        gr-&gt;Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(0,0,0));
+
+        gr-&gt;SubPlot(2,2,1);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Axis();
+        gr-&gt;Label('x',&quot;x&quot;);
+        gr-&gt;Label('y',&quot;y&quot;);
+        gr-&gt;Label('z',&quot;z&quot;);
+        gr-&gt;Puts(mglPoint(0,0,1.5),&quot;Axis and labels&quot;);
+
+        gr-&gt;SubPlot(2,2,2);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;SetTicks('x', 0.2); gr-&gt;SetTicks('y', 0.2);
+        gr-&gt;SetTicks('z', 0.2); // too low step of ticks
+        gr-&gt;Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,-1,-1));
+        gr-&gt;Axis();
+        gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,0,1.5),&quot;Shift origin and add grid&quot;);
+        gr-&gt;Puts(mglPoint(0,0,1.2),&quot;(note, too many ticks)&quot;);
+
+        gr-&gt;SubPlot(2,2,3);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;SetTicks('x', -6);  // decrease the number of ticks
+        gr-&gt;SetTicks('y', -6);
+        gr-&gt;Axis(&quot;yz&quot;);
+        gr-&gt;Label('y',&quot;Y axis&quot;,0);
+        gr-&gt;Label('z',&quot;Z axis&quot;,0);
+        gr-&gt;Puts(mglPoint(0,0,1.5),&quot;Remove X axis, and&quot;);
+        gr-&gt;Puts(mglPoint(0,0,1.2),&quot;decrease number of ticks&quot;);
+        return 0;
+    }
+</pre>
+<p>This example shows the importance of the correct choosing of the number of ticks on axis. If tick step is too small then its text may overlap and becomes unreadable. This code has the example of <code>Label</code> function. It draws label for axis in specified direction. The text position on axis is specified by third argument of <code>Label</code> function. If it is positive then then text is drawn near the axis maximum, if negative then the same takes place near the minimum of axis, if zero - then at the center of axis.
+</p>
+<div class="float">
+<img src="../png/sample2.png" alt="../png/sample2">
+
+</div><p><strong>Example of setting up axis range and axis ticks.
+</strong>
+</p>
+<hr size="6">
+<a name="Curvilinear-coordinates"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-grids" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing-example" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Curvilinear-coordinates-1"></a>
+<h3 class="subsection">2.2.3 Curvilinear coordinates</h3>
+
+
+<p>Now let use curvilinear coordinates. In difference from other systems of plot creation, MathGL uses textual formulas for connection of the old (data) and new (output) coordinates. This allows one to plot in arbitrary coordinates. The following code plots the line <var>y</var>=0, <var>z</var>=0 in Cartesian, polar, parabolic and spiral coordinates:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData x(50),y(50),z(50);
+        y.Fill(0.5,0.5);
+        x.Fill(-1,1);           // creates data arrays
+
+        gr-&gt;Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,1,-1));
+        gr-&gt;dz = 0.5;           // sets tick step to 0.5
+
+        gr-&gt;SubPlot(2,2,0);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Plot(x,y,z,&quot;r2&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Cartesian&quot;);
+
+        gr-&gt;SubPlot(2,2,1);
+        gr-&gt;SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,0);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Plot(x,y,z,&quot;r2&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Cylindrical&quot;);
+
+        gr-&gt;SubPlot(2,2,2);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;SetFunc(&quot;2*y*x&quot;,&quot;y*y - x*x&quot;,0);
+        gr-&gt;Plot(x,y,z,&quot;r2&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Parabolic&quot;);
+
+        gr-&gt;SubPlot(2,2,3);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,&quot;x+z&quot;);
+        gr-&gt;Plot(x,y,z,&quot;r2&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Spiral&quot;);
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample3.png" alt="../png/sample3">
+
+</div><p><strong>Example of curvilinear coordinates
+</strong>
+</p>
+
+<hr size="6">
+<a name="Text-printing-example"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Curvilinear-coordinates" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Animation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-printing-example-1"></a>
+<h3 class="subsection">2.2.4 Text printing example</h3>
+
+<p>MathGL prints text by vector font. There are functions for manual specifying of text position (like <code>Puts</code>) and for its automatic selection (like <code>Label</code>, <code>Legend</code> and so on). MathGL prints text always in specified position even if it lies outside the bounding box. The default size of font is specified by variables <var>FontSize</var> (see section <a href="mathgl_ru_3.html#Font-settings">Шрифты</a>). However, the actual size of output string depends on position of axes (depends on functions <code>SubPlot</code>, <code>InPlot</code>). The switching of the font style (italic, bold, wire and so on) can be done for the whole string (by function parameter) or inside the string. By default MathGL parses TeX-like commands for symbols and indexes (see see section <a href="mathgl_ru_1.html#Font-styles">Стиль текста</a>). Example of MathGL font drawing is:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        setlocale(LC_CTYPE, &quot;ru_RU.cp1251&quot;);
+        gr-&gt;Puts(mglPoint(0,1),&quot;Text can be in ASCII and in Unicode&quot;);
+        gr-&gt;Puts(mglPoint(0,0.6),&quot;It can be \\wire{wire}, \\big{big} &quot;
+            &quot;or #r{colored}&quot;);
+        gr-&gt;Puts(mglPoint(0,0.2),&quot;One can change style in string: &quot;
+            &quot;\\b{bold}, \\i{italic, \\b{both}}&quot;);
+        gr-&gt;Puts(mglPoint(0,-0.2),&quot;Easy to \\a{overline} or &quot;
+            &quot;\\u{underline}&quot;);
+        gr-&gt;Puts(mglPoint(0,-0.6),&quot;Easy to change indexes &quot;
+            &quot;^{up} _{down} @{center}&quot;);
+        gr-&gt;Puts(mglPoint(0,-1),&quot;It parse TeX: \\int \\alpha \\cdot &quot;
+            &quot;\\sqrt3{sin(\\pi x)^2 + \\gamma_{i_k}} dx&quot;);
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample4.png" alt="../png/sample4">
+
+</div><p><strong>Example of text printing with different font effects
+</strong>
+</p>
+<p>Another example demonstrate the features of TeX formula parsing.
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Puts(mglPoint(0), &quot;\\sqrt{\\frac{\\alpha^{\\gamma^2}+&quot;
+            &quot;\\overset 1{\\big\\infty}}{\\sqrt3{2+b}}}&quot;, 0, -4);
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/samplee.png" alt="../png/samplee">
+
+</div><p><strong>Example of TeX formula parsing
+</strong>
+</p>
+<p>Finally you can change font during execution (this work well for mglGraphZB class only).
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        float h=1.1, d=0.25;
+        gr-&gt;LoadFont(&quot;STIX&quot;);       gr-&gt;Puts(mglPoint(0,h), &quot;default font (STIX)&quot;);
+        gr-&gt;LoadFont(&quot;adventor&quot;);   gr-&gt;Puts(mglPoint(0,h-d), &quot;adventor font&quot;);
+        gr-&gt;LoadFont(&quot;bonum&quot;);      gr-&gt;Puts(mglPoint(0,h-2*d), &quot;bonum font&quot;);
+        gr-&gt;LoadFont(&quot;chorus&quot;);     gr-&gt;Puts(mglPoint(0,h-3*d), &quot;chorus font&quot;);
+        gr-&gt;LoadFont(&quot;cursor&quot;);     gr-&gt;Puts(mglPoint(0,h-4*d), &quot;cursor font&quot;);
+        gr-&gt;LoadFont(&quot;heros&quot;);      gr-&gt;Puts(mglPoint(0,h-5*d), &quot;heros font&quot;);
+        gr-&gt;LoadFont(&quot;heroscn&quot;);    gr-&gt;Puts(mglPoint(0,h-6*d), &quot;heroscn font&quot;);
+        gr-&gt;LoadFont(&quot;pagella&quot;);    gr-&gt;Puts(mglPoint(0,h-7*d), &quot;pagella font&quot;);
+        gr-&gt;LoadFont(&quot;schola&quot;);     gr-&gt;Puts(mglPoint(0,h-8*d), &quot;schola font&quot;);
+        gr-&gt;LoadFont(&quot;termes&quot;);     gr-&gt;Puts(mglPoint(0,h-9*d), &quot;termes font&quot;);
+    }
+</pre>
+<div class="float">
+<img src="../png/fonts.png" alt="../png/fonts">
+
+</div><p><strong>Example of font face changing.
+</strong>
+</p>
+<hr size="6">
+<a name="Animation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing-example" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Animation-1"></a>
+<h3 class="subsection">2.2.5 Animation</h3>
+
+<p>You can make animation by several methods in MathGL: by export in animated GIF, or by save each frame in separate file (usually JPEG) and convert these files into movie. Let me show both methods.
+</p>
+<p>The simplest methods is making animated GIF. There are 3 steps: (1) open GIF file by <code>StartGIF()</code> function; (2) create the frames by calling <code>NewFrame()</code> before and <code>EndFrame()</code> after plotting; (3) close GIF by <code>CloseGIF()</code> function. So the simplest code for &ldquo;running&rdquo; sinusoid will look like this:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData dat(100);
+        char str[32];
+        gr-&gt;StartGIF(&quot;sample.gif&quot;);
+        for(int i=0;i&lt;100;i++)
+        {
+            gr-&gt;NewFrame();     // start frame
+            gr-&gt;Box();          // some plotting
+            sprintf(str,&quot;sin(pi*x+%g*pi)&quot;,0.02*i);
+            dat.Modify(str);
+            gr-&gt;Plot(dat,&quot;b&quot;);
+            gr-&gt;EndFrame();     // end frame
+        }
+        gr-&gt;CloseGIF();
+        return 0;
+    }
+</pre>
+<p>The second way is saving each frame in separate file (usually JPEG) and later make the movie from them. MathGL have special function for saving frames &ndash; it is <code>WriteFrame()</code>. This function save each frame with automatic name &lsquo;<samp>frame0001.jpg, frame0002.jpg</samp>&rsquo; and so on. Here prefix &lsquo;<samp>frame</samp>&rsquo; is defined by <var>PlotId</var> variable of <code>mglGraph</code> class. So the similar code will look like this:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData dat(100);
+        char str[32];
+        for(int i=0;i&lt;100;i++)
+        {
+            gr-&gt;NewFrame();     // start frame
+            gr-&gt;Box();          // some plotting
+            sprintf(str,&quot;sin(pi*x+%g*pi)&quot;,0.02*i);
+            dat.Modify(str);
+            gr-&gt;Plot(dat,&quot;b&quot;);
+            gr-&gt;EndFrame();     // end frame
+            gr-&gt;WriteFrame();   // save frame
+        }
+        return 0;
+    }
+</pre>
+<p>Created files can be converted to movie by help of a lot of programs. For example, you can use ImageMagic (command &lsquo;<samp>convert frame*.jpg movie.mpg</samp>&rsquo;), MPEG library, GIMP and so on.
+</p>
+<p>Finally, you can use <code>mgl2gif</code> tool for doing the same with MGL scripts (see section <a href="mathgl_ru_8.html#Utilities">Утилиты для MGL</a>).
+</p>
+<hr size="6">
+<a name="Data-handling"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Animation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Array-creation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-handling-1"></a>
+<h2 class="section">2.3 Data handling</h2>
+
+<p>Class <code>mglData</code> contains all functions for the data handling in MathGL (see section <a href="mathgl_ru_6.html#mglData-class">Класс mglData</a>). There are several matters why I use class <code>mglData</code> but not a single array: it does not depend on type of data (float or double), sizes of data arrays are kept with data, memory working is simpler and safer.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Array-creation">2.3.1 Array creation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-changing">2.3.2 Data changing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Array-creation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-handling" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-changing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Array-creation-1"></a>
+<h3 class="subsection">2.3.1 Array creation</h3>
+
+<p>One can put the data in <code>mglData</code> instance by several ways. Let us do it for sinus function:
+</p><ul>
+<li>
+one can create external array, fill it and put to <code>mglData</code> variable
+<pre class="verbatim">    double *a = new double[50];
+    for(int i=0;i&lt;50;i++)   a[i] = sin(M_PI*i/49.);
+
+    mglData y;
+    y.Set(a,50);
+</pre>
+</li><li>
+another way is to create <code>mglData</code> instance of the desired size and then to work directly with data in this variable
+<pre class="verbatim">    mglData y(50);
+    for(int i=0;i&lt;50;i++)   y.a[i] = sin(M_PI*i/49.);
+</pre>
+</li><li>
+next way is to fill the data in <code>mglData</code> instance by textual formula with the help of <code>Modify()</code> function
+<pre class="verbatim">    mglData y(50);
+    y.Modify(&quot;sin(pi*x)&quot;);
+</pre>
+</li><li>
+or one may fill the array in some interval and modify it later
+<pre class="verbatim">    mglData y(50);
+    y.Fill(0,M_PI);
+    y.Modify(&quot;sin(u)&quot;);
+</pre>
+</li><li>
+finally it can be loaded from file
+<pre class="verbatim">    FILE *fp=fopen(&quot;sin.dat&quot;,&quot;wt&quot;);   // create file first
+    for(int i=0;i&lt;50;i++)   fprintf(fp,&quot;%g\n&quot;,sin(M_PI*i/49.));
+    fclose(fp);
+
+    mglData y(&quot;sin.dat&quot;);             // load it
+</pre>
+</li><li>
+at this one can read only part of data
+<pre class="verbatim">    FILE *fp-fopen(&quot;sin.dat&quot;,&quot;wt&quot;);   // create large file first
+    for(int i=0;i&lt;70;i++)   fprintf(fp,&quot;%g\n&quot;,sin(M_PI*i/49.));
+    fclose(fp);
+
+    mglData y;
+    y.Read(&quot;sin.dat&quot;,50);             // load it
+</pre></li></ul>
+
+<p>Creation of 2d- and 3d-arrays is mostly the same. But one should keep in mind that class <code>mglData</code> uses flat data representation. For example, matrix 30*40 is presented as flat (1d-) array with length 30*40=1200 (nx=30, ny=40). The element with indexes {i,j} is a[i+nx*j]. So for 2d array we have:
+</p><pre class="verbatim">    mglData z(30,40);
+    for(int i=0;i&lt;30;i++)   for(int j=0;j&lt;40;j++)
+        z.a[i+30*j] = sin(M_PI*i/29.)*sin(M_PI*j/39.);
+</pre><p>or by using <code>Modify()</code> function
+</p><pre class="verbatim">    mglData z(30,40);
+    z.Modify(&quot;sin(pi*x)*cos(pi*y)&quot;);
+</pre>
+<p>The only non-obvious thing here is using multidimensional arrays in C/C++, i.e. arrays defined like <code>float dat[40][30];</code>. Since, formaly this arrays element <code>dat[i]</code> can address the memory in arbitrary place you should use the proper function to convert such arrays to <code>mglData</code> object. For C++ this is functions like <code>mglData::Set(float **dat, int N1, int N2);</code>. For C this is functions like <code>mgl_data_set_float2(HMDT d, const float **dat, int N1, int N2);</code>. At this, you should keep in mind that <code>nx=N2</code> and <code>ny=N1</code> after conversion.
+</p>
+<hr size="6">
+<a name="Data-changing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Array-creation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-changing-1"></a>
+<h3 class="subsection">2.3.2 Data changing</h3>
+
+<p>MathGL has functions for data processing: differentiating, integrating, smoothing and so on (for more detail, see section <a href="mathgl_ru_6.html#mglData-class">Класс mglData</a>). Let us consider some examples. The simplest ones are integration and differentiation. The direction in which operation will be performed is specified by textual string, which may contain symbols &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo;. For example, the call of <code>Diff(&quot;x&quot;)</code> will differentiate data along &lsquo;<samp>x</samp>&rsquo; direction; the call of <code>Integral(&quot;xy&quot;)</code> perform the double integration of data along &lsquo;<samp>x</samp>&rsquo; and &lsquo;<samp>y</samp>&rsquo; directions; the call of <code>Diff2(&quot;xyz&quot;)</code> will apply 3d Laplace operator to data and so on. Example of this operations on 2d array a=x*y is presented in code:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData a(30,40);   a.Modify(&quot;x*y&quot;);
+        gr-&gt;Axis(mglPoint(0,0,0),mglPoint(1,1,1));
+        gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(60,40);
+        gr-&gt;Surf(a);        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0.7,1,1.2),&quot;a(x,y)&quot;);
+        gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(60,40);
+        a.Diff(&quot;x&quot;);        gr-&gt;Surf(a);      gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0.7,1,1.2),&quot;da/dx&quot;);
+        gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(60,40);
+        a.Integral(&quot;xy&quot;);   gr-&gt;Surf(a);      gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0.7,1,1.2),&quot;\\int da/dx dxdy&quot;);
+        gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(60,40);
+        a.Diff2(&quot;y&quot;);       gr-&gt;Surf(a);      gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0.7,1,1.2),&quot;\\int {d^2}a/dxdy dx&quot;);
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample6.png" alt="../png/sample6">
+
+</div><p><strong>Example of data differentiation and integration
+</strong>
+</p>
+<p>Data smoothing (function <code>Smooth()</code>) is more interesting and important. This function has 2 main arguments: type of smoothing and its direction. Now 4 methods are supported: <code>SMOOTH_NONE</code> does nothing for delta=0 or approaches data to zero with the step delta, <code>SMOOTH_LINE_3</code> linear averaging by 3 points, <code>SMOOTH_LINE_5</code> linear averaging by 5 points, <code>SMOOTH_QUAD_5</code> quadratic averaging by 5 points. Let me demonstrate it for 1d case:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData y0(30),y1,y2,y3;
+        y0.Modify(&quot;0.4*sin(2*pi*x)+0.3*cos(3*pi*x)-0.4*sin(4*pi*x)+0.2*rnd&quot;);
+
+        y1=y0;  y1.Smooth(SMOOTH_LINE_3);
+        y2=y0;  y2.Smooth(SMOOTH_LINE_5);
+        y3=y0;  y3.Smooth(SMOOTH_QUAD_5);
+
+        gr-&gt;Plot(y0,&quot;k&quot;);   gr-&gt;AddLegend(&quot;NONE&quot;,&quot;k&quot;);
+        gr-&gt;Plot(y1,&quot;r&quot;);   gr-&gt;AddLegend(&quot;LINE_3&quot;,&quot;r&quot;);
+        gr-&gt;Plot(y2,&quot;g&quot;);   gr-&gt;AddLegend(&quot;LINE_5&quot;,&quot;g&quot;);
+        gr-&gt;Plot(y3,&quot;b&quot;);   gr-&gt;AddLegend(&quot;QUAD_5&quot;,&quot;b&quot;);
+        gr-&gt;Legend();       gr-&gt;Box();
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample7.png" alt="../png/sample7">
+
+</div><p><strong>Example of data smoothing
+</strong>
+</p>
+<p>Finally one can create new data arrays on base of the existing one: extract slice, row or column of data (<code>SubData()</code>), summarize along some of direction(s) (<code>Sum()</code>), find distribution of data elements (<code>Hist()</code>). Note, that all these functions are not thread-safe because they use static internal variable for output array. In particular, the using of several of them in arguments of the same function will lead to unpredictable result.
+</p>
+<hr size="6">
+<a name="Data-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-changing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-1D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-plotting-1"></a>
+<h2 class="section">2.4 Data plotting</h2>
+
+<p>Let me now show how to plot the data. MathGL generally has 2 types of plotting functions. Simple variant requires a single data array for plotting, other data (coordinates) are considered uniformly distributed in interval <var>Min</var>*<var>Max</var>. Second variant requires data arrays for all coordinates. It allows one to plot rather complex multivalent curves and surfaces (in case of parametric dependencies). Argument setting to default values allows one to plot data in standard form. Manual arguments setting gives possibility for fine tuning of colors, positions and view of graphics. Note, that the call of drawing function adds something to picture but does not clear the previous plots (as it does in Matlab). Another difference from Matlab is that all setup (like transparency, lightning, axis borders and so on) must be specified <strong>before</strong> plotting functions.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plots-for-1D-data">2.4.1 Plots for 1D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-for-2D-data">2.4.2 Plots for 2D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-for-3D-data">2.4.3 Plots for 3D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surface-transparency">2.4.4 Surface transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Plots-for-1D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-2D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-1D-data-1"></a>
+<h3 class="subsection">2.4.1 Plots for 1D data</h3>
+
+<p>Term &ldquo;1D data&rdquo; means that data depend on single index (parameter) like curve in parametric form {x(i),y(i),z(i)}, i=1...n. There are 5 generally different types of data representations: simple line plot, line plot with filling under it, stairs plot, bar plot and vertical lines (see section <a href="mathgl_ru_3.html#g_t1D-plotting">1D графики</a>). Each type of plotting has similar interface. There are 3D version and two 2D versions. One of last requires single array. The parameters of line and marks (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>) are specified by the string argument. If the string parameter is <code>NULL</code> then solid line with color from palette is used (see section <a href="mathgl_ru_3.html#Palette-and-colors">Палитра и цвета</a>).
+</p>
+<p>Below I shall show the features of 1D plotting on base of <code>Plot()</code> function (see section <a href="mathgl_ru_3.html#Plot">Plot</a>). Let us start from sinus plot:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData y0(50); 	y0.Modify(&quot;sin(pi*(2*x-1))&quot;);
+        gr-&gt;SubPlot(2,2,0);
+        gr-&gt;Plot(y0);   	gr-&gt;Box();
+</pre><p>Style of line is not specified in <code>Plot()</code> function. So MathGL uses the solid line with first color of palette (this is blue). Next subplot shows array <var>y1</var> with 2 rows:
+</p><pre class="verbatim">        gr-&gt;SubPlot(2,2,1);
+        mglData y1(50,2);
+        y1.Modify(&quot;sin(pi*2*x-pi)&quot;);
+        y1.Modify(&quot;cos(pi*2*x-pi)/2&quot;,1);
+        gr-&gt;Plot(y1);   	gr-&gt;Box();
+</pre><p>As previously I did not specify the style of lines. As a result, MathGL again uses solid line with next colors in palette (there are green and red). Now let us plot a circle on the same subplot. The circle is parametric curve <em>x=cos(\pi t), y=sin(\pi t)</em>. I will set the color of the circle (dark yellow, &lsquo;<samp>Y</samp>&rsquo;) and put marks &lsquo;<samp>+</samp>&rsquo; at point position:
+</p><pre class="verbatim">        mglData x(50);  	x.Modify(&quot;cos(pi*2*x-pi)&quot;);
+        gr-&gt;Plot(x,y0,&quot;Y+&quot;);
+</pre><p>Note that solid line is used because I did not specify the type of line. The same picture can be achieved by <code>Plot2()</code> function. Let us draw ellipse by orange dash line:
+</p><pre class="verbatim">        gr-&gt;Plot2(y1,&quot;q|&quot;);
+</pre>
+<p>Drawing in 3D space is mostly the same. Let us draw spiral with default line style. Now its color is 4-th color from palette (this is cyan):
+</p><pre class="verbatim">        gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(60,40);
+        mglData z(50);  	z.Modify(&quot;2*x-1&quot;);
+        gr-&gt;Plot(x,y0,z);	gr-&gt;Box();
+</pre><p>Function <code>Plot3()</code> does 3D curve plot but for single array. Use it to put circle marks on the previous plot:
+</p><pre class="verbatim">        mglData y2(10,3);	y2.Modify(&quot;cos(pi*(2*x-1+y))&quot;);
+        y2.Modify(&quot;2*x-1&quot;,2);
+        gr-&gt;Plot3(y2,&quot;bo &quot;);
+</pre><p>Note that line style is empty &lsquo;<samp> </samp>&rsquo; here. Usage of other 1D plotting functions looks similar:
+</p><pre class="verbatim">        gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(60,40);
+        gr-&gt;Bars(x,y0,z,&quot;r&quot;);	gr-&gt;Box();
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample8.png" alt="../png/sample8">
+
+</div><p><strong>Example of 1D data plot
+</strong>
+</p>
+<hr size="6">
+<a name="Plots-for-2D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-1D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-3D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-2D-data-1"></a>
+<h3 class="subsection">2.4.2 Plots for 2D data</h3>
+
+<p>Surfaces <code>Surf()</code> and other 2D plots (see section <a href="mathgl_ru_3.html#g_t2D-plotting">2D графики</a>) are drown the same simpler as 1D one. The difference is that the string parameter specifies not by line style but by the color scheme of the plot (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>). Here I draw attention on 4 most interesting color schemes. There is gray scheme where color is changed from black to white (string &lsquo;<samp>kw</samp>&rsquo;) or from white to black (string &lsquo;<samp>wk</samp>&rsquo;). Another scheme is useful for accentuation of negative (by blue color) and positive (by red color) regions on plot (string &lsquo;<samp>&quot;BbwrR&quot;</samp>&rsquo;). Last one is the popular &ldquo;jet&rdquo; scheme (string &lsquo;<samp>&quot;BbcyrR&quot;</samp>&rsquo;).
+</p>
+<p>Now I shall show the example of a surface drawing. At first let us switch lightning on
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Light(true);	gr-&gt;Light(0,mglPoint(0,0,1));
+</pre><p>and draw the surface, considering coordinates x,y to be uniformly distributed in interval <var>Min</var>*<var>Max</var>
+</p><pre class="verbatim">        mglData a0(50,40);
+        a0.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+        gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(60,40);
+        gr-&gt;Surf(a0);		gr-&gt;Box();
+</pre><p>Color scheme was not specified. So previous color scheme is used. In this case it is default color scheme (&ldquo;jet&rdquo;) for the first plot. Next example is a sphere. The sphere is parametrically specified surface:
+</p><pre class="verbatim">        mglData x(50,40),y(50,40),z(50,40);
+        x.Modify(&quot;0.8*sin(2*pi*x)*sin(pi*y)&quot;);
+        y.Modify(&quot;0.8*cos(2*pi*x)*sin(pi*y)&quot;);
+        z.Modify(&quot;0.8*cos(pi*y)&quot;);
+        gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(60,40);
+        gr-&gt;Surf(x,y,z,&quot;BbwrR&quot;);gr-&gt;Box();
+</pre><p>I set color scheme to <code>&quot;BbwrR&quot;</code> that corresponds to red top and blue bottom of the sphere.
+</p>
+<p>Surfaces will be plotted for each of slice of the data if <var>nz</var>&gt;1. Next example draws surfaces for data arrays with <var>nz</var>=3:
+</p><pre class="verbatim">        mglData a1(50,40,3);
+        a1.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+        a1.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))&quot;,1);
+        a1.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;,2);
+        gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(60,40);
+        gr-&gt;Alpha(true);
+        gr-&gt;Surf(a1);		gr-&gt;Box();
+</pre><p>Note, that it may entail a confusion. However, if one will use density plot then the picture will look better:
+</p><pre class="verbatim">        gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(60,40);
+        gr-&gt;Dens(a1);		gr-&gt;Box();
+        return 0;
+    }
+</pre><p>Note, that the previous color scheme is used in last plots because there are no direct specification of the one.
+</p>
+<div class="float">
+<img src="../png/sample9.png" alt="../png/sample9">
+
+</div><p><strong>Example of surface plot for 2D data
+</strong>
+</p>
+<p>Drawing of other 2D plots is analogous. The only peculiarity is the usage of flag &lsquo;<samp>#</samp>&rsquo;. By default this flag switches on the drawing of a grid on plot (<code>Grid()</code> or <code>Mesh()</code> for plots in plain or in volume). However, for isosurfaces (including surfaces of rotation <code>Axial()</code>) this flag switches the  face drawing off. Figure becomes wired. The following code gives example of flag &lsquo;<samp>#</samp>&rsquo; using (compare with normal function drawing as in its description):
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Alpha(true);	gr-&gt;Light(true);	gr-&gt;Light(0,mglPoint(0,0,1));
+        mglData a(30,20);
+        a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+
+        gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);
+        gr-&gt;Surf(a,&quot;BbcyrR#&quot;);		gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);
+        gr-&gt;Dens(a,&quot;BbcyrR#&quot;);		gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);
+        gr-&gt;Cont(a,&quot;BbcyrR#&quot;);		gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);
+        gr-&gt;Axial(a,&quot;BbcyrR#&quot;);		gr-&gt;Box();
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/samplea.png" alt="../png/samplea">
+
+</div><p><strong>Example of 2D data plot with color scheme contained &lsquo;<samp>#</samp>&rsquo; symbol
+</strong>
+</p>
+<hr size="6">
+<a name="Plots-for-3D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-2D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surface-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-3D-data-1"></a>
+<h3 class="subsection">2.4.3 Plots for 3D data</h3>
+
+<p>Drawing procedures for 3D plot looks similarly to 1D and 2D plots described above. There are 3 general types of 3D plots (see section <a href="mathgl_ru_3.html#g_t3D-plotting">3D графики</a>): (i) plots on slices or on projections, (ii) isosurfaces, (iii) cloud-like plots. Plots on slice are clear enough &ndash; one specifies a slice (as its index or as coordinate value) and MathGL draws contour lines or density plot on slice plane. Isosurface gives more information. Isosurface is 3D analogue of the contour line <code>Cont()</code>. It shows the region where data array values exceed specified isosurface level. Plot becomes more informative if one adds transparency, lightning or sets color scheme depending on coordinates. Generalization of isosurface is the cloud-like plot. For this plot the darker color and less transparent regions correspond to higher values of data. Contrary, the regions with low values are transparent. For plotting of the phase of fields (or beams or pulses) one can use isosurface which transparency depends on the other data array (see function <code>Surf3A()</code>). As example of 3D data plots let us draw the Gaussian beam diffraction in space. Beam propagates along <var>x</var> axis:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Alpha(true);    gr-&gt;Light(true);
+        gr-&gt;Light(0,mglPoint(0,0,1));
+        mglData a(30,30,30),b(30,30,30);
+        a.Modify(&quot;exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))&quot;);
+        b.Modify(&quot;16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)&quot;);
+        gr-&gt;CAxis(0,1);
+
+        gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(40,60);
+        gr-&gt;Surf3(a,&quot;wgk&quot;); gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(40,60);
+        gr-&gt;DensA(a);       gr-&gt;Box();  gr-&gt;Axis();
+        gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(40,60);
+        gr-&gt;CloudQ(a);      gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(40,60);
+        gr-&gt;Surf3A(b,a,&quot;q&quot;);gr-&gt;Box();
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sampleb.png" alt="../png/sampleb">
+
+</div><p><strong>Example of Gaussian beam diffraction (3D data)
+</strong>
+</p>
+
+<hr size="6">
+<a name="Surface-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-3D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#C_002fFortran-interface" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surface-transparency-1"></a>
+<h3 class="subsection">2.4.4 Surface transparency</h3>
+
+<p>MathGL library has advanced features for setting and handling the surface transparency. The simplest way to add transparency is the using of function <code>Alpha()</code>. As a result, all further surfaces (and isosurfaces, density plots and so on) become transparent. However, their  look can be additionally improved.
+</p>
+<p>First, the selected surface will be non-transparent if one sets the flag <code>Transparent</code> before the surface drawing and sets it off after the drawing.
+</p>
+<p>Second, the value of transparency can be different from surface to surface. To do it just change the value of <code>AlphaDef</code> before the drawing of the selected surface. If its value is close to 0 then the surface becomes more and more transparent. Contrary, if its value is close to 1 then the surface becomes practically non-transparent. This is some analogue of <code>Transparent=true</code>.
+</p>
+<p>Third feature is the changing of the way how the light goes through overlapped surfaces. The variable <code>TranspType</code> defines it. By default the usual transparency is used (<code>TranspType=0</code>) &ndash; surfaces below is less visible than the upper ones. A &ldquo;glass-like&rdquo; transparency (<code>TranspType=1</code>) has a different look when the surface just decreases the background light (the surfaces are commutable in this case).
+</p>
+<p>A &ldquo;neon-like&rdquo; transparency (<code>TranspType=2</code>) has more interesting look. In this case a surface is the light source (like a lamp on the dark background) and just adds some intensity to the color. At this, the library sets automatically the black color for the background and changes the default line color to white.
+</p>
+<p>As example I shall show the variant of plot from <a href="#Plots-for-2D-data">Plots for 2D data</a> (grid drawing is disabled) for different types of transparency.
+</p><div class="float">
+<img src="../png/type0.png" alt="../png/type0">
+
+</div><p><strong>Example of <code>TranspType=0</code>.
+</strong>
+</p><div class="float">
+<img src="../png/type1.png" alt="../png/type1">
+
+</div><p><strong>Example of <code>TranspType=1</code>.
+</strong>
+</p><div class="float">
+<img src="../png/type2.png" alt="../png/type2">
+
+</div><p><strong>Example of <code>TranspType=2</code>.
+</strong>
+</p>
+<hr size="6">
+<a name="C_002fFortran-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surface-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-and-PyQt" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="C_002fFortran-interface-1"></a>
+<h2 class="section">2.5 C/Fortran interface</h2>
+
+<p>The usage of pure C or Fortran or any similar interfaces (see section <a href="mathgl_ru_1.html#C-interface">C интерфейс</a>) is practically identical to classes usage. But there are some differences. C functions must have argument HMGL (for graphics) and/or HMDT (for data arrays) which specifies the object for drawing or manipulating (changing). Fortran users may regard these variables as integer. So, firstly the user has to create this object by function mgl_create_*() and has to delete it after the using by function mgl_delete_*().
+</p>
+<p>Also, all arguments of C function have to be defined. So there are several functions with practically identical names doing practically the same. But some of them have simplified interface for the quick plotting and some of them have access to all plotting parameters for manual tunning.
+</p>
+<p>As an example of C function usage let me draw the plot from <a href="#Plots-for-2D-data">Plots for 2D data</a>. The C code which does it is shown below:
+</p><pre class="verbatim">    #include &lt;mgl/mgl_c.h&gt;
+    int main()
+    {
+        HMGL gr = mgl_create_graph_zb(600, 400);
+        mgl_set_alpha(gr, true);
+        mgl_set_light(gr, true);
+        HMDT a = mgl_create_data_size(30,20,1);
+        mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+
+        mgl_subplot(gr, 2,2,0);
+        mgl_rotate(gr, 40,60,0);
+        mgl_surf(gr,a,&quot;BbcyrR#&quot;);
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,1);
+        mgl_rotate(gr, 40,60,0);
+        mgl_dens(gr,a,&quot;BbcyrR#&quot;,NAN);
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,2);
+        mgl_rotate(gr, 40,60,0);
+        mgl_cont(gr,a,&quot;BbcyrR#&quot;,7,NAN);
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,3);
+        mgl_rotate(gr, 40,60,0);
+        mgl_axial(gr,a,&quot;BbcyrR#&quot;,3);
+        mgl_box(gr, true);
+
+        /* don't forgot to save graphics */
+        mgl_write_png(gr,&quot;sample.png&quot;,0);
+        return 0;
+    }
+</pre>
+<p>Practically the same simple to create a window. For example let rewrite the code from for window creation (see section <a href="#Using-FLTK_002fGLUT-window">Using FLTK/Qt/GLUT window</a>):
+</p><pre class="verbatim">    int sample(HMGL gr, void *)
+    {
+        mgl_rotate(gr,60,40,0);
+        mgl_box(gr,1);
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mgl_create_graph_fltk(sample, &quot;MathGL examples&quot;, NULL);
+        mgl_fltk_run();
+        return 0;
+    }
+</pre>
+<p>The Fortran code have some peculiarities. Exactly it not allow one to send arbitrary parameter (which was <code>NULL</code> in previous example) to function. This is limitation of Fortran language. So, the corresponding code will be <strong>NOT TESTED NOW!!!</strong>:
+</p><pre class="verbatim">    program TEST
+    integer x,f,func
+        call mgl_create_graph_fltk(sample, 'MathGL examples');
+        call mgl_fltk_run();
+    end program TEST
+ 
+    integer function sample(gr)
+    integer*8 gr
+        call mgl_rotate(gr,60,40,0);
+        call mgl_box(gr,1);
+        sample=0
+    return
+    end
+</pre>
+<hr size="6">
+<a name="MathGL-and-PyQt"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#C_002fFortran-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL-and-PyQt-1"></a>
+<h2 class="section">2.6 MathGL and PyQt</h2>
+
+<p>Generally SWIG based classes (including the Python one) are the same as C++ classes. However, there are few tips for using MathGL with PyQt. Below I place a very simple python code which demonstrate how MathGL can be used with PyQt. This code is mostly written by Prof. Dr. Heino Falcke. You can just copy it to a file <code>mgl-pyqt-test.py</code> and execute it from python shell by command <code>execfile(&quot;mgl-pyqt-test.py&quot;)</code>
+</p>
+<pre class="verbatim">from PyQt4 import QtGui,QtCore
+from mathgl import *
+import sys
+app = QtGui.QApplication(sys.argv)
+qpointf=QtCore.QPointF()
+
+class hfQtPlot(QtGui.QWidget):
+    def __init__(self, parent=None):
+        QtGui.QWidget.__init__(self, parent)
+        self.img=(QtGui.QImage())
+    def setgraph(self,gr):
+        self.buffer='\t' 
+        self.buffer=self.buffer.expandtabs(4*gr.GetWidth()*gr.GetHeight())
+        gr.GetBGRN(self.buffer,len(self.buffer))
+        self.img=QtGui.QImage(self.buffer, gr.GetWidth(),gr.GetHeight(),QtGui.QImage.Format_ARGB32)
+        self.update()
+    def paintEvent(self, event):
+        paint = QtGui.QPainter()
+        paint.begin(self)
+        paint.drawImage(qpointf,self.img)
+        paint.end()
+
+BackgroundColor=[1.0,1.0,1.0]
+size=100
+gr=mglGraph()
+y=mglData(size)
+#y.Modify(&quot;((0.7*cos(2*pi*(x+.2)*500)+0.3)*(rnd*0.5+0.5)+362.135+10000.)&quot;)
+y.Modify(&quot;(cos(2*pi*x*10)+1.1)*1000.*rnd-501&quot;)
+x=mglData(size)
+x.Modify(&quot;x^2&quot;);
+
+def plotpanel(gr,x,y,n):
+    gr.SubPlot(2,2,n)
+    gr.SetXRange(x)
+    gr.SetYRange(y)
+    gr.AdjustTicks()
+    gr.Axis()
+    gr.Box()
+    gr.Label(&quot;x&quot;,&quot;x-Axis&quot;,1)
+    gr.Label(&quot;y&quot;,&quot;y-Axis&quot;,1)
+    gr.ClearLegend()
+    gr.AddLegend(&quot;Legend: &quot;+str(n),&quot;k&quot;)
+    gr.Legend()
+    gr.Plot(x,y)
+
+
+gr.Clf(BackgroundColor[0],BackgroundColor[1],BackgroundColor[2])
+gr.SetPlotFactor(1.5)
+plotpanel(gr,x,y,0)
+y.Modify(&quot;(cos(2*pi*x*10)+1.1)*1000.*rnd-501&quot;)
+plotpanel(gr,x,y,1)
+y.Modify(&quot;(cos(2*pi*x*10)+1.1)*1000.*rnd-501&quot;)
+plotpanel(gr,x,y,2)
+y.Modify(&quot;(cos(2*pi*x*10)+1.1)*1000.*rnd-501&quot;)
+plotpanel(gr,x,y,3)
+
+gr.WritePNG(&quot;test.png&quot;,&quot;Test Plot&quot;)
+
+qw = hfQtPlot()
+qw.show()
+qw.setgraph(gr)
+qw.raise_()
+</pre>
+
+<hr size="6">
+<a name="Hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MathGL-and-PyQt" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t_0060_0060Compound_0027_0027-graphics" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Hints-1"></a>
+<h2 class="section">2.7 Hints</h2>
+
+<p>In this section I have included some small hints and advices for the improving of the quality of plots and for the demonstration of some non-trivial features of MathGL library. In contrast to previous examples I showed mostly the idea but not the whole drawing function. More examples with the source code can be find at <a href="http://mathgl.sf.net/">http://mathgl.sf.net/</a> or in section <a href="mathgl_ru_9.html#Samples">Примеры использования MathGL</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t_0060_0060Compound_0027_0027-graphics">2.7.1 &ldquo;Compound&rdquo; graphics</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Two-axes-in-one-plot">2.7.2 Two axes in one plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Titles-for-the-plot">2.7.3 Titles for the plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Changing-of-the-color-range">2.7.4 Changing of the color range</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Management-of-a-point-cutting">2.7.5 Management of a point cutting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-field-visualization">2.7.6 Vector field visualization</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Several-light-sources">2.7.7 Several light sources</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutMin-and-CutMax-features">2.7.8 CutMin and CutMax features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mapping-visualization">2.7.9 Mapping visualization</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Log_002dscaled-plot">2.7.10 Log-scaled plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t_0060_0060Templates_0027_0027">2.7.11 &ldquo;Templates&rdquo;</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting-hints">2.7.12 Nonlinear fitting hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#PDE-solving-hints">2.7.13 PDE solving hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#MGL-parser-using">2.7.14 MGL parser using</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stereo-image">2.7.15 Stereo image</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="g_t_0060_0060Compound_0027_0027-graphics"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Two-axes-in-one-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Compound_0027_0027-graphics-1"></a>
+<h3 class="subsection">2.7.1 &ldquo;Compound&rdquo; graphics</h3>
+
+<p>As I noted above, MathGL functions (except the special one, like Clf()) do  not erase the previous plotting but just add the new one. It allows one to draw &ldquo;compound&rdquo; plots easily. For example, popular Matlab command <code>surfc</code> can be emulated in MathGL by 2 calls:
+</p><pre class="verbatim">    Surf(a);
+    Cont(a, 0, 7, -1);     // draw contours at z = -1
+</pre><p>Here <var>a</var> is 2-dimensional data for the plotting, <code>-1</code> is the value of z-coordinate at which the contour should be plotted (at the bottom in this example). Analogously, one can draw density plot instead of contour lines and so on.
+</p>
+<p>Another nice plot is contour lines plotted directly on the surface:
+</p><pre class="verbatim">    Light(true);       // switch on light for the surface
+    Surf(a, &quot;BbcyrR&quot;); // select 'jet' colormap for the surface
+    Cont(a, &quot;y&quot;);      // and yellow color for contours
+</pre><p>The possible difficulties arise in black&amp;white case, when the color of the surface can be close to the color of a contour line. In that case I may suggest the following code:
+</p><pre class="verbatim">    Light(true);       // switch on light for the surface
+    Surf(a, &quot;kw&quot;);     // select 'gray' colormap for the surface
+    CAxis(-1,0);       // first draw for darker surface colors
+    Cont(a, &quot;w&quot;);      // white contours
+    CAxis(0,1);        // now draw for brighter surface colors
+    Cont(a, &quot;k&quot;);      // black contours
+    CAxis(-1,1);       // return color range to original state
+</pre><p>The idea is to divide the color range on 2 parts (dark and bright) and to select the contrasting color for contour lines for each of part.
+</p>
+<p>Similarly, one can plot flow thread over density plot of vector field amplitude (this is another amusing plot from Matlab) and so on. The list of compound graphics can be prolonged but I hope that the general idea is clear.
+</p>
+<hr size="6">
+<a name="Two-axes-in-one-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t_0060_0060Compound_0027_0027-graphics" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Titles-for-the-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Two-axes-in-one-plot-1"></a>
+<h3 class="subsection">2.7.2 Two axes in one plot</h3>
+
+<p>Developing the previous hint one can make a plot with 2 or more axes. The idea is that the change of settings does not influence on the already drawn graphics. So, for 2-axes plot let us set the first axis and draw everything concerning it. Then let us setup the second axis and draw things for the second axis. The corresponding code is (see section <a href="mathgl_ru_9.html#g_t2_002daxes-sample">Несколько осей на одном графике</a>):
+</p><pre class="verbatim">    // set up first axis
+    Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,-1,-1));
+    Axis();            // draw it
+    Plot(y1,&quot;b&quot;);      // draw something in first axis
+    // set up second axis
+    Axis(mglPoint(0,0,0),mglPoint(1,1,1),mglPoint(1,1,1));
+    Axis();            // draw it
+    Stem(y2,&quot;r&quot;);      // draw something in second axis
+</pre><p>Note, that the first and the second axes look better if being placed in different corners. In the code presented above the first axis is placed in the left-bottom corner, and the second one is placed in the right-top corner.
+</p>
+<hr size="6">
+<a name="Titles-for-the-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Two-axes-in-one-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Changing-of-the-color-range" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Titles-for-the-plot-1"></a>
+<h3 class="subsection">2.7.3 Titles for the plot</h3>
+
+<p>The printing of nice titles for the plot is not so trivial task in general case. The problem is that the rotation and aspect change lead to different looks for titles of different subplots. So, the resulting look is not so good as it could be. The solution is simple &ndash; to print titles exactly after <code>SubPlot</code>() call and before any rotation, aspect change and so on! Analogously, the title for the whole picture looks better if it is printed first (before any <code>SubPlot()</code> calls). Alternatively you can use function <code>Title()</code> for plotting title for the picture at any time.
+</p>
+<hr size="6">
+<a name="Changing-of-the-color-range"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Titles-for-the-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Management-of-a-point-cutting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Changing-of-the-color-range-1"></a>
+<h3 class="subsection">2.7.4 Changing of the color range</h3>
+
+<p>By default (for the user comfort), the color range is set equal to z-range of the plot. However, there are different ranges. So, one can obtain amusing plot by the change of color range manually. For example, there are plots with one-color bottom (or top) or practically bi-color picture and so on.
+</p>
+<p>For example, compare 2 surfaces:
+</p><pre class="verbatim">    SubPlot(2,1,0)
+    Surf(a);           // usual coloring range
+    SubPlot(2,1,1)
+    CAxis(0,1);
+    Surf(a);           // bottom of the surface have one-colour filling
+</pre>
+<hr size="6">
+<a name="Management-of-a-point-cutting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Changing-of-the-color-range" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-field-visualization" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Management-of-a-point-cutting-1"></a>
+<h3 class="subsection">2.7.5 Management of a point cutting</h3>
+
+<p>Sometimes an experimental or numerical surface has outstanding points. Visualization of such surface will lead to the hole(s) in place of such points. The standard method of &ldquo;fighting&rdquo;  &ndash; to change data values &ndash; is not always good and is not so convenient. MathGL library has another method &ndash; to set variable <code>Cut=false</code>. As a consequence, all outstanding points will be projected on the bounding box.
+</p>
+<p>Such method is good not only for outstanding points but also for the case when one need to plane the bottom or the top of the plot. Exactly such case is demonstrated in the code:
+</p><pre class="verbatim">        mglData a(20,30);  // create some data
+        a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+        // set lower border above the data minimal value
+        Axis(mglPoint(-1,-1,0),mglPoint(1,1,1));
+        Cut = false;       // set off cutting flag
+`       Surf(a);           // and draw the surface
+</pre><p>It is an interesting result, is not it?
+</p>
+<hr size="6">
+<a name="Vector-field-visualization"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Management-of-a-point-cutting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Several-light-sources" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vector-field-visualization-1"></a>
+<h3 class="subsection">2.7.6 Vector field visualization</h3>
+
+<p>Vector field visualization (especially in 3d case <code>Vect3</code> or <code>VectC</code>) may look tangly &ndash; there are too many overlapping lines. I may suggest 2 ways to solve this problem. The first one is to change <code>MeshNum</code> for decreasing the number of hachures. The second way is to use the flow thread chart <code>Flow</code>. Unfortunately, I don&rsquo;t know any other methods to visualize 3d vector field. If you know any, e-mail me and I shall add it to MatGL.
+</p>
+<hr size="6">
+<a name="Several-light-sources"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-field-visualization" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutMin-and-CutMax-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Several-light-sources-1"></a>
+<h3 class="subsection">2.7.7 Several light sources</h3>
+
+<p>In contrast to the most of other programs, MathGL supports several (up to 10) light sources. Moreover, the color each of them can be different: white (this is usual), yellow, red, cyan, green and so on. The use of several light sources may be interesting for the highlighting of some peculiarities of the plot or just to make an amusing picture. Note, each light source can be switched on/off individually (see section <a href="mathgl_ru_9.html#Several-light-sample">Несколько источников света</a>).
+</p>
+<hr size="6">
+<a name="CutMin-and-CutMax-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Several-light-sources" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mapping-visualization" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutMin-and-CutMax-features-1"></a>
+<h3 class="subsection">2.7.8 CutMin and CutMax features</h3>
+
+<p>MathGL library has a feature for cutting of points in some region <var>CutMin*CutMax</var>. Such an excision can be used to improve the look of the graphics. Moreover, this cutting may help to show an internal structure of an object (like <code>isocaps</code> plot in Matlab). For example, let us use the standard 3D data array and show its interior (see section <a href="mathgl_ru_9.html#CutMinMax-sample">CutMinMax &ndash; пример использования</a>).
+</p>
+<pre class="verbatim">    mglData  c(61,51,40);      // create the data
+    mglData v(10);	v.Fill(-0.5,1);
+    c.Modify(&quot;(-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1))&quot;);
+    gr-&gt;CutMin = mglPoint(0,-1,-1);     gr-&gt;CutMax = mglPoint(1,0,1.1);
+    gr-&gt;Surf3(-0.5,c,&quot;BbcyrR&quot;);
+    gr-&gt;ContF3(v,c,'x',-1,&quot;BbcyrR&quot;);    gr-&gt;ContF3(v,c,'y',-1,&quot;BbcyrR&quot;);
+    gr-&gt;ContF3(v,c,'z',0,&quot;BbcyrR&quot;);     gr-&gt;ContF3(v,c,'z',39,&quot;BbcyrR&quot;);
+</pre>
+<p>One can also exclude points from arbitrary area in space. This area defined by textual formula <code>CutOff()</code> (see section <a href="mathgl_ru_3.html#Cutting">Обрезание</a>). The algorithm is the same as shown for &ldquo;rectangular cutting&rdquo;.
+</p>
+<hr size="6">
+<a name="Mapping-visualization"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutMin-and-CutMax-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Log_002dscaled-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mapping-visualization-1"></a>
+<h3 class="subsection">2.7.9 Mapping visualization</h3>
+
+<p>Sometime ago I worked with mapping and have a question about its visualization. Let me remember you that mapping is some transformation rule for one set of number to another one. The 1d mapping is just an ordinary function &ndash; it takes a number and transforms it to another one. The 2d mapping (which I used) is a pair of functions which take 2 numbers and transform them to another 2 ones. Except general plots (like <code>SurfC</code>, <code>SurfA</code>) there is a special plot &ndash; Arnold diagram. It shows the area which is the result of mapping of some initial area (usually square).
+</p>
+<p>I tried to make such plot in <code>Map</code>. It shows the set of points or set of faces, which final position is the result of mapping. At this, the color gives information about their initial position and the height describes Jacobian value of the transformation. Unfortunately, it looks good only for the simplest mapping but for the  real multivalent quasi-chaotic mapping it produces a confusion. So, use it if you like :).
+</p>
+<hr size="6">
+<a name="Log_002dscaled-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mapping-visualization" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t_0060_0060Templates_0027_0027" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Log_002dscaled-plot-1"></a>
+<h3 class="subsection">2.7.10 Log-scaled plot</h3>
+
+<p>Log-scaled plot can be drawn by 2 steps. First, one should change the scale of axis by call <code>SetFunc(&quot;lg(x)&quot;, &quot;lg(y)&quot;);</code> (in this example, x- and y-axis will be log-scaled). Second, one should set logarithmic scale for axis ticks by changing variables: <code>SetTicks('x',0); SetTicks('y',0);</code>. Finally, one should check (or change) the axis ranges and origin so that their values to be positive. For example of log-log plot see section <a href="mathgl_ru_9.html#Log_002dlog-sample">Log-log &ndash; пример использования</a>.
+</p>
+<hr size="6">
+<a name="g_t_0060_0060Templates_0027_0027"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Log_002dscaled-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting-hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Templates_0027_0027-1"></a>
+<h3 class="subsection">2.7.11 &ldquo;Templates&rdquo;</h3>
+
+<p>As I have noted before, the change of settings will influence only for the further plotting commands. This allows one to create template function which will contain settings and primitive drawing for often used plots. Correspondingly one may call this template-function for drawing simplification.
+</p>
+<p>For example, let one has a set of points (experimental or numerical) and wants to compare it with theoretical law (for example, with exponent law <em>\exp(-x/2), x \in [0, 20]</em>). The template-function for this task is:
+</p><pre class="verbatim">    void template(mglGraph *gr)
+    {
+        mglData  law(100);      // create the law
+        law.Modify(&quot;exp(-10*x)&quot;);
+        gr-&gt;Axis(mglPoint(0,0.0001), mglPoint(20,1), mglPoint(0,0.0001));
+        gr-&gt;SetFunc(0,&quot;lg(y)&quot;,0);   gr-&gt;dy = 0;
+        gr-&gt;Plot(law,&quot;r2&quot;);
+        gr-&gt;Text(mglPoint(10,0.2),&quot;Theoretical law: e^x&quot;,&quot;rL&quot;);
+        gr-&gt;Label('x',&quot;x val.&quot;); gr-&gt;Label('y',&quot;y val.&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid(&quot;xy&quot;,&quot;g;&quot;); gr-&gt;Box();
+    }
+</pre><p>At this, one will only write a few lines for data drawing:
+</p><pre class="verbatim">    template(gr);     // apply settings and default drawing from template
+    mglData dat(&quot;fname.dat&quot;); // load the data
+    // and draw it (suppose that data file have 2 columns)
+    gr-&gt;Plot(dat.SubData(0),dat.SubData(1),&quot;bx &quot;);
+</pre><p>A template-function can also contain settings for font, transparency, lightning, color scheme and so on.
+</p>
+<hr size="6">
+<a name="Nonlinear-fitting-hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t_0060_0060Templates_0027_0027" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#PDE-solving-hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-hints-1"></a>
+<h3 class="subsection">2.7.12 Nonlinear fitting hints</h3>
+
+<p>Nonlinear fitting is rather simple. All that you need is the data to fit, the approximation formula and the list of coefficients to fit (better with its initial guess values). Let me demonstrate it on the following simple example (see section <a href="mathgl_ru_9.html#Fitting-sample">Fitting &ndash; пример использования</a>). First, let us use sin function with some random noise:
+</p><pre class="verbatim">    mglData rnd(100), idl(50); //data to be fitted and ideal data
+    rnd.Modify(&quot;0.4*rnd+0.1+sin(4*pi*x)&quot;);
+    idl.Modify(&quot;0.3+sin(4*pi*x)&quot;);
+</pre><p>and plot it to see that data we will fit
+</p><pre class="verbatim">    gr-&gt;Axis(mglPoint(-1,-2), mglPoint(1,2));
+    gr-&gt;Plot(rnd, &quot;. &quot;); gr-&gt;Plot(idl, &quot;b&quot;);
+    gr-&gt;Box();
+    gr-&gt;Text(mglPoint(0,2.2), &quot;initial: y = 0.3+sin(2\pi x)&quot;, &quot;C:b&quot;, -1);
+</pre>
+<p>The next step is the fitting itself. For that let me specify an initial values <var>ini</var> for coefficients &lsquo;<samp>abc</samp>&rsquo; and do the fitting for approximation formula &lsquo;<samp>a+b*sin(c*x)</samp>&rsquo;
+</p><pre class="verbatim">    mglData res;   // The data for found formula
+    float ini[3] = {1, 1, 3};
+    gr-&gt;Fit(res, rnd, &quot;a+b*sin(c*x)&quot;, &quot;abc&quot;, ini);
+</pre><p>Now display it
+</p><pre class="verbatim">    gr-&gt;Plot(res, &quot;r&quot;);
+    gr-&gt;Text(mglPoint(-1,-1.3), &quot;fitted:&quot;, &quot;L:r&quot;, -1);
+    gr-&gt;PutsFit(mglPoint(0,-1.8), &quot;y = &quot;, &quot;C:r&quot;, -1);
+</pre>
+<p>NOTE! the fitting results may have strong dependence on initial values for coefficients due to algorithm features. The problem is that in general case there are several local &quot;optimums&quot; for coefficients and the program returns only first found one! There are no guaranties that it will be the best. Try for example to set <code>ini[3] = {0, 0, 0}</code> in the code above.
+</p>
+<hr size="6">
+<a name="PDE-solving-hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting-hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-parser-using" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="PDE-solving-hints-1"></a>
+<h3 class="subsection">2.7.13 PDE solving hints</h3>
+
+<p>Solving of Partial Differential Equations (PDE, including beam tracing) and ray tracing (or finding particle trajectory) are more or less common task. So, MathGL have several functions for that. There are <code>mglRay()</code> for ray tracing, <code>mglPDE()</code> for PDE solving, <code>mglQO2d()</code> for beam tracing in 2D case (see section <a href="mathgl_ru_6.html#Global-functions">Глобальные функции</a>). Note, that these functions take &ldquo;Hamiltonian&rdquo; or equations as string values. And I don&rsquo;t plan now to allow one to use user-defined functions. There are 2 reasons: the complexity of corresponding interface; and the basic nature of used methods which are good for samples but may not good for serious scientific calculations.
+</p>
+<p>The ray tracing can be done by <code>mglRay()</code> function. Really ray tracing equation is Hamiltonian equation for 3D space. So, the function can be also used for finding a particle trajectory (i.e. solve Hamiltonian ODE) for 1D, 2D or 3D cases. The function have a set of arguments. First of all, it is Hamiltonian which defined the media (or the equation) you are planning to use. The Hamiltonian is defined by string which may depend on coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, time &lsquo;<samp>t</samp>&rsquo; (for particle dynamics) and momentums &lsquo;<samp>p</samp>&rsquo;=<em>p_x</em>, &lsquo;<samp>q</samp>&rsquo;=<em>p_y</em>, &lsquo;<samp>v</samp>&rsquo;=<em>p_z</em>. Next, you have to define the initial conditions for coordinates and momentums at &lsquo;<samp>t</samp>&rsquo;=0 and set the integrations step (default is 0.1) and its duration (default is 10). The Runge-Kutta method of 4-th order is used for integration.
+</p><pre class="verbatim">    mglData r,a,re(128),im(128);
+    r = mglRay(&quot;p^2+q^2-x-1&quot;, mglPoint(-0.7, -1), mglPoint(0, 0.5));
+    gr-&gt;Plot(r.SubData(0), r.SubData(1));
+</pre><p>This example calculate the reflection from linear layer (media with Hamiltonian &lsquo;<samp>p^2+q^2-x-1</samp>&rsquo;=<em>p_x^2+p_y^2-x-1</em>). This is parabolic curve. The resulting array have 7 columns which contain data for {x,y,z,p,q,v,t}.
+</p>
+<p>The solution of PDE is a bit more complicated. As previous you have to specify the equation as pseudo-differential operator <em>\hat H(x, \nabla)</em> which is called sometime as &ldquo;Hamiltonian&rdquo; (for example, in beam tracing). As previously, it is defined by string which may depend on coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; (but not time!), momentums &lsquo;<samp>p</samp>&rsquo;=<em>(d/dx)/i k_0</em>, &lsquo;<samp>q</samp>&rsquo;=<em>(d/dy)/i k_0</em> and field amplitude &lsquo;<samp>u</samp>&rsquo;=<em>|u|</em>. The evolutionary coordinate is &lsquo;<samp>z</samp>&rsquo; in all cases. So that, the equation look like <em>du/dz = ik_0 H(x,y,\hat p, \hat q, |u|)[u]</em>. Dependence on field amplitude &lsquo;<samp>u</samp>&rsquo;=<em>|u|</em> allows one to solve nonlinear problems too. For example, for nonlinear Shrodinger equation you may set <code>ham=&quot;p^2 + q^2 - u^2&quot;</code>. Also you may specify imaginary part for wave absorption, like <code>ham = &quot;p^2 + i*x*(x&gt;0)&quot;</code>, but only if dependence on variable &lsquo;<samp>i</samp>&rsquo; is linear (i.e. <em>H = Hre+i*Him</em>).
+</p>
+<p>Next step is specifing the initial conditions at &lsquo;<samp>z</samp>&rsquo;=<code>Min.z</code>. The function need 2 arrays for real and for imaginary part. Note, that coordinates x,y,z are supposed to be in specified range [Min, Max]. So, the data arrays should have corresponding scales. Finally, you may set the integration step and paramter k0=<em>k_0</em>. Also keep in mind, that internally the 2 times large box is used (for suppressing numerical reflection from boundaries) and the equation should well defined even in this extended range.
+</p>
+<p>Final comment is concerning the possible form of pseudo-differential operator <em>H</em>. At this moment, simplified form of operator <em>H</em> is supported &ndash; all &ldquo;mixed&rdquo; terms (like &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) are excluded. For example, in 2D case this operator is effectively <em>H = f(p,z) + g(x,z,u)</em>. However commutable combinations (like &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy) are allowed for 3D case. 
+</p>
+<p>So, for example let solve the equation for beam deflected from linear layer and absorbed later. The operator will have the form &lsquo;<samp>&quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;</samp>&rsquo; that correspond to equation <em>ik_0 \partial_z u + \Delta u + x \cdot u + i (x+z)/2 \cdot u = 0</em>. This is typical equation for Electron Cyclotron (EC) absorption in magnetized plasmas. For initial conditions let me select the beam with plane phase front <em>exp(-48*(x+0.7)^2)</em>. The corresponding code looks like this (see section <a href="mathgl_ru_9.html#PDE-sample">PDE &ndash; пример использования</a>):
+</p><pre class="verbatim">    mglData a,re(128),im(128);
+    re.Fill(&quot;exp(-48*(x+0.7)^2)&quot;, gr-&gt;Min, gr-&gt;Max);
+    a = mglPDE(&quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;, re, im,
+                gr-&gt;Min, gr-&gt;Max, 0.01, 30);
+    a.Transpose(&quot;yxz&quot;);
+    gr-&gt;CAxis(0, 1);
+    gr-&gt;Dens(a,&quot;wyrRk&quot;);
+</pre>
+<p>The last example is example of beam tracing. Beam tracing equation is special kind of PDE equation written in coordinates accompanied to a ray. Generally this is the same parameters and limitation as for PDE solving but the coordinates are defined by the ray and by parameter of grid width <var>w</var> in direction transverse the ray. So, you don&rsquo;t need to specify the range of coordinates. <strong>BUT</strong> there is limitation. The accompanied coordinates are well defined only for smooth enough rays, i.e. then the ray curvature <em>K</em> (which is defined as <em>1/K^2 = (|\ddot r|^2 |\dot r|^2 - (\ddot r, \dot r)^2)/|\dot r|^6</em>) is much large then the grid width: <em>K&gt;&gt;w</em>. So, you may receive incorrect results if this condition will be broken.
+</p>
+<p>You may use following code for obtaining the same solution as in previous example:
+</p><pre class="verbatim">    mglData r, xx, yy, a, im(128), re(128);
+    const char *ham = &quot;p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)&quot;;
+    r = mglRay(ham, mglPoint(-0.7, -1), mglPoint(0, 0.5), 0.02, 2);
+    // now start beam tracing
+    re.Fill(&quot;exp(-48*x^2)&quot;, gr-&gt;Min, gr-&gt;Max);
+    a = mglQO2d(ham, re, im, r, 1, 30, &amp;xx, &amp;yy);
+    gr-&gt;CAxis(0, 1);
+    gr-&gt;Dens(xx, yy, a, &quot;wyrRk&quot;);
+</pre>
+
+<hr size="6">
+<a name="MGL-parser-using"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#PDE-solving-hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stereo-image" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MGL-parser-using-1"></a>
+<h3 class="subsection">2.7.14 MGL parser using</h3>
+
+<p>Sometimes you may prefer to use MGL scripts in yours code. It is simpler (especially in comparison with C/Fortran interfaces) and fast way to plot the data with annotations, labels and so on. Class <code>mglParse</code> (see section <a href="mathgl_ru_7.html#mglParse-class">mglParse class</a> parse MGL scripts in C++. It have also the corresponding interface for C/Fortran.
+</p>
+<p>The key function here is <code>mglParse::Parse()</code> (or <code>mgl_parse()</code> for C/Fortran) which execute one command per string. At this the detailed information about the possible errors or warnings is passed as function value. Or you may execute the whole script as long string with lines separated by &lsquo;<samp>\n</samp>&rsquo;. Functions <code>mglParse::Execute()</code> and <code>mgl_parse_text()</code> perform it. Also you may set the values of paramters &lsquo;<samp>$0</samp>&rsquo;...&lsquo;<samp>$9</samp>&rsquo; for the script by functions <code>mglParse::AddParam()</code> or <code>mgl_add_param()</code>, allow/disable picture resizing, check &ldquo;once&rdquo; status and so on. The usage is rather stright-forward.
+</p>
+<p>The only non-obvious thing is data transition between script and yours program. There are 2 stages: add or find variable; and set data to variable. In C++ you may use functions <code>mglParse::AddVar()</code> and <code>mglParse::FindVar()</code> which return pointer to <code>mglVar</code> structure. This structure contain data itself, the variable name and callback function which will be called if variable destroied. Last feature allows you to control the presence of the variable and, for example, close a window with data if this variable is destroyed. In C/Fortran the corresponding functions are <code>mgl_add_var()</code>, <code>mgl_find_var()</code>. But these functions return the data array only. Note, you <strong>must not delete or free</strong> the data obtained from these functions!
+</p>
+<p>So, some simple example at the end. Here I define a data array, create variable, put data into it and plot it. The C++ code looks like this:
+</p><pre class="verbatim">    float a[100];   // let a_i = sin(4*pi*x), x=0...1
+    for(int i=0;i&lt;100;i++)  a[i]=sin(4*M_PI*i/99);
+    mglParse *parser = new mglParse;
+    mglData &amp;d = (parser-&gt;AddVar(&quot;dat&quot;))-&gt;d;
+    d.Set(a,100); // set data to variable
+    parser-&gt;Execute(gr, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+    // you may break script at any line do something 
+    // and continue after that
+    parser-&gt;Execute(gr, &quot;xlabel 'x'\nylabel 'y'&quot;);
+    // also you may use cycles or conditions in script
+    parser-&gt;Execute(gr, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+    gr-&gt;WritePNG(&quot;test.png&quot;);   // don't forgot to save picture
+</pre><p>The code in C/Fortran looks practically the same:
+</p><pre class="verbatim">    float a[100];   // let a_i = sin(4*pi*x), x=0...1
+    int i;
+    for(i=0;i&lt;100;i++)  a[i]=sin(4*M_PI*i/99);
+    HMPR parser = mgl_create_parser();
+    HMDT d = mgl_add_var(parser, &quot;dat&quot;);
+    mgl_data_set_float(d,a,100,1,1);    // set data to variable
+    mgl_parse_text(gr, parser, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+    // you may break script at any line do something 
+    // and continue after that
+    mgl_parse_text(gr, parser, &quot;xlabel 'x'\nylabel 'y'&quot;);
+    // also you may use cycles or conditions in script
+    mgl_parse_text(gr, parser, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+    mgl_write_png(gr, &quot;test.png&quot;, &quot;&quot;);  // don't forgot to save picture
+</pre>
+<hr size="6">
+<a name="Stereo-image"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-parser-using" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stereo-image-1"></a>
+<h3 class="subsection">2.7.15 Stereo image</h3>
+
+<p>One can easily create stereo image in MathGL. Stereo image can be produced by making two subplots with slightly different rotation angles. The corresponding code looks like this (see section <a href="mathgl_ru_9.html#Stereo-image-sample">Пример стерео изображения</a>):
+</p><pre class="verbatim">    gr-&gt;SubPlot(2,1,0);     // left image
+    gr-&gt;Rotate(40,60+3);
+    // draw something here
+    
+    gr-&gt;SubPlot(2,1,1);     // right image
+    gr-&gt;Rotate(40,60-3);
+    // draw the same here
+</pre>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_3.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_3.html
new file mode 100644
index 0000000..d2befb9
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_3.html
@@ -0,0 +1,4719 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: 3. Ядро MathGL</title>
+
+<meta name="description" content="MathGL 1.11: 3. Ядро MathGL">
+<meta name="keywords" content="MathGL 1.11: 3. Ядро MathGL">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="MathGL-core"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_2.html#Stereo-image" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="YA_0434_0440_043e-MathGL"></a>
+<h1 class="chapter">3. Ядро MathGL</h1>
+<a name="index-mglGraph"></a>
+
+<p>Основным классом MathGL является класс <strong>mglGraph</strong>, определенный в <code>#include &lt;mgl/mgl.h&gt;</code>. Он включает в себя множество функций для построения графиков от 1D, 2D и 3D массивов. Он также содержит функции вывода текста и построения осей координат. Есть возможность построения в произвольной системе координат, которая  задается строковыми формулами. Все графические функции используют класс mglData (see section <a href="mathgl_ru_6.html#mglData-class">Класс mglData</a>) для хранения массивов данных. Это позволяет легко контролировать размеры, работу с памятью и производить обработку данных. Дополнительная информация о цветах, шрифтах, вычисления формул может быть найдена в <a href="mathgl_ru_7.html#Other-classes">Other classes</a>.
+</p>
+<p>Замечу, что класс mglGraph &ndash; абстрактный класс, содержащий только интерфейсную часть для построения графиков. Он не выполняет собственно построения на конкретное устройство. Для практического использования (при выводе на экран, в память или в файл) используйте производные классы: mglGraphZB для растровых рисунков; mglGraphPS для векторных рисунков (в форматах EPS и/или SVG) и для быстрого, но менее аккуратного рисования растровой картинки; mglGraphGL для рисования с использованием OpenGL; и т.д. see section <a href="mathgl_ru_4.html#Plotter-classes">Классы для отрисовки</a>. Если вы хотите не только построить картинку, но и отобразить ее в окне/органе управления или запустить анимацию, то посмотрите также <a href="mathgl_ru_5.html#Widget-classes">&ldquo;Оконные&rdquo; классы</a>.
+</p>
+<p>Начиная с версии 1.10 есть специальный класс &quot;оболочка&quot; к функциям С-интерфейса. Он также называется <code>mglGraph</code> и определен в файле <code>mgl/mgl_graph.h</code>. Этот класс можно использовать и на не-GNU компиляторах (т.е. в Borland или Microsoft компиляторах), но в этом случае вы <strong>не должны подключать</strong> заголовочные файлы <code>mgl/mgl.h</code> или <code>mgl/mgl_parse.h</code>! Этот класс используется также как базовый класс для интерфейсов на основе SWIG (Python, Octave и пр). Далее в документации функции члены &quot;оболочечного&quot; класса обозначены как &lsquo;<samp>Python</samp>&rsquo; для отделения от оригинального класса &lsquo;<samp>C++</samp>&rsquo;, определенного в <code>mgl/mgl.h</code>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Graphics-setup">3.1 Настройка графика</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-settings">3.2 Настройки осей координат</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transformation-matrix">3.3 Матрица преобразования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Export-to-file">3.4 Экспорт в файл</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Primitives-drawing">3.5 Рисование примитивов</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing">3.6 Вывод текста</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-Colorbar">3.7 Оси и Colorbar</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Legend">3.8 Легенда</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting">3.9 1D графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting">3.10 2D графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting">3.11 3D графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting">3.12 Парные графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-fields">3.13 Векторные поля</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-plotting">3.14 Прочие графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting">3.15 Nonlinear fitting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-distributions">3.16 Распределение данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Frames_002fAnimation">3.17 Кадры/Анимация</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#IDTF-functions">3.18 IDTF функции</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Graphics-setup"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MathGL-core" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041d_0430_0441_0442_0440_043e_0439_043a_0430-g_0440_0430_0444_0438_043a_0430"></a>
+<h2 class="section">3.1 Настройка графика</h2>
+<a name="index-_041d_0430_0441_0442_0440_043e_0439_043a_0430-MathGL"></a>
+
+<p>Функции и переменные в этой группе влияют на вид всего рисунка. Соответственно они должны располагаться <em>перед</em> вызовом функций непосредственно рисующих графики.
+</p>
+<dl>
+<dt><a name="index-DefaultPlotParam"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DefaultPlotParam</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fset_005fdef_005fparam"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_def_param</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Устанавливает все настройки по умолчанию, кроме описанных в <a href="#Zooming">Масштабирование</a>.
+</p></dd></dl>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Transparency">3.1.1 Прозрачность</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lighting">3.1.2 Освещение</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fog">3.1.3 Туман</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Default-sizes">3.1.4 Базовые размеры</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Zooming">3.1.5 Масштабирование</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cutting">3.1.6 Обрезание</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-settings">3.1.7 Шрифты</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Palette-and-colors">3.1.8 Палитра и цвета</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Error-handling">3.1.9 Обработка ошибок</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-settings">3.1.10 Прочие настройки</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Graphics-setup" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lighting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x"></a>
+<h3 class="subsection">3.1.1 Прозрачность</h3>
+<a name="index-Alpha"></a>
+<a name="index-SetAlphaDef"></a>
+<a name="index-SetTransparent"></a>
+<a name="index-SetTranspType"></a>
+
+<p>Эти функции и переменные настраивают тип и степень прозрачности поверхностей. Главной является функция <code>Alpha()</code>, которая включает/выключает прозрачность для всех графиков, созданных после вызова <code>Alpha()</code> (за исключением mglGraphGL). Функция <code>SetAlphaDef</code> устанавливает величину alpha-канала по умолчанию. Прозрачность можно выключить для отдельного графика с помощью <code>SetTransparent</code>. Наконец, функция <code>SetTranspType</code> задает тип прозрачности. См. раздел <a href="mathgl_ru_9.html#Transparent-surface-sample">Transparent surface &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Alpha-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>bool</code> <b>Alpha</b><i> (<code>bool</code> enable)</i></dt>
+<dt><a name="index-mgl_005fset_005falpha"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_alpha</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Включает/выключает прозрачность и возвращает свое предыдущее состояние. По умолчанию прозрачность выключена. Функция включает прозрачность для <em>всего</em> рисунка. Используйте <code>SetTransparent(false)</code> для конкретного графика для выключения прозрачности.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetAlphaDef-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetAlphaDef</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005falpha_005f_043f_043e"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_alpha_по</b><i> умолчанию (<code>HMGL</code> gr, <code>float</code> alpha)</i></dt>
+<dd><p>Задает значение прозрачности по умолчанию для всех графиков. Отмечу, что OpenGL (mglGraphGL) некорректно рисует большое число перекрывающихся прозрачных поверхностей (больше двух).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTransparent-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTransparent</b><i> (<code>bool</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005ftransp"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_transp</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Временно включает/возвращает прозрачность графиков. Это аналог <code>Alpha(val)</code>, но работает более корректно для класса mglGraphGL.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTranspType-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTranspType</b><i> (<code>int</code> type)</i></dt>
+<dt><a name="index-mgl_005fset_005ftransp_005ftype"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_transp_type</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Задает тип прозрачности. Обычная прозрачность (&lsquo;<samp>0</samp>&rsquo;) &ndash; &quot;закрытые&quot; объекты видны меньше чем закрывающие. Этот режим некорректно отображается в OpenGL (mglGraphGL) для нескольких перекрывающихся поверхностей. &quot;Стеклянная&quot; прозрачность (&lsquo;<samp>1</samp>&rsquo;) &ndash; закрытые и закрывающие объекты единообразно ослабляют интенсивность света (по RGB каналам). &quot;Ламповая&quot; прозрачность (&lsquo;<samp>2</samp>&rsquo;) &ndash; закрытые и закрывающие объекты являются источниками дополнительного освещения (рекомендую установить <code>SetAlphaDef(0.3)</code> или меньше в этом случае). See section <a href="mathgl_ru_9.html#Normal-transparency">Обычная прозрачность</a>, <a href="mathgl_ru_9.html#Glass_002dlike-transparency">&quot;Стеклянная&quot; прозрачность</a>, <a href="mathgl_ru_9.html#Lamp_002dlike-transparency">&quot;Ламповая&quot; прозрачность</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AlphaDef-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>float</code> <b>AlphaDef</b></dt>
+<dd><p>Значение прозрачности по умолчанию для всех графиков. См. <code>SetAlphaDef()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Transparent-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>bool</code> <b>Transparent</b></dt>
+<dd><p>Флаг, временно включающий/выключающий прозрачность графиков. См. <code>SetTransparent()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TranspType-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>int</code> <b>TranspType</b></dt>
+<dd><p>Тип прозрачности. См. <code>SetTranspType()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Lighting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fog" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_0432e_0449e_043d_0438e"></a>
+<h3 class="subsection">3.1.2 Освещение</h3>
+<a name="index-Light"></a>
+<a name="index-Ambient"></a>
+<a name="index-AddLight"></a>
+
+<p>Эти функции настраивают освещение графика. Главная функция <code>Light(bool)</code> включает/выключает освещение графиков построенных после ее вызова (в OpenGL работает сразу для всего рисунка). MathGL  поддерживает до 10 независимых источников света. Но в режиме OpenGL можно использовать только первые 8 из них. Положение, цвет, яркость каждого источника света можно задавать по отдельности. По умолчанию включен только первый (с порядковым номером <code>0</code>) источник света белого цвета, расположенный сверху.
+</p>
+<dl>
+<dt><a name="index-Light-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>bool</code> <b>Light</b><i> (<code>bool</code> enable)</i></dt>
+<dt><a name="index-mgl_005fset_005flight"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_light</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Включает/выключает освещение графика и возвращает предыдущее состояние. По умолчанию освещение выключено.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Light-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Light</b><i> (<code>int</code> n, <code>bool</code> enable)</i></dt>
+<dt><a name="index-mgl_005fset_005flight_005fn"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_light_n</b><i> (<code>HMGL</code> gr, <code>int</code> n, <code>int</code> enable)</i></dt>
+<dd><p>Включает/выключает <var>n</var>-ый источник света.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AddLight-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>AddLight</b><i> (<code>int</code> n, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> c=<code>'w'</code>)</i></dt>
+<dt><a name="index-Light-3"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Light</b><i> (<code>int</code> n, <code>mglPoint</code> p, <code>char</code> c=<code>'w'</code>, <code>float</code> bright=<code>0.5</code>, <code>bool</code> infty=<code>true</code>)</i></dt>
+<dt><a name="index-Light-4"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Light</b><i> (<code>int</code> n, <code>mglPoint</code> p, <code>mglColor</code> c, <code>float</code> bright=<code>0.5</code>, <code>bool</code> infty=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fadd_005flight"></a><u>Функция С:</u> <code>void</code> <b>mgl_add_light</b><i> (<code>HMGL</code> gr, <code>int</code> n, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> c)</i></dt>
+<dd><p>Добавляет источник света с номером <var>n</var> в положение <var>p</var> с цветом <var>c</var> и яркостью <var>bright</var>, которая должна быть в диапазоне [0,1]. Флаг <var>infty</var>=<code>true</code> делает источник бесконечно удаленным (для более быстрого рисования).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Ambient-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Ambient</b><i> (<code>float</code> bright=<code>0.5</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fambbr"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_ambbr</b><i> (<code>HMGL</code> gr, <code>float</code> bright)</i></dt>
+<dd><p>Задает яркость рассеянного освещения. Значение должно быть в диапазоне [0,1].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fog"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lighting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Default-sizes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0422_0443_043c_0430_043d"></a>
+<h3 class="subsection">3.1.3 Туман</h3>
+<a name="index-Fog"></a>
+
+<dl>
+<dt><a name="index-Fog-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Fog</b><i> (<code>float</code> d, <code>float</code> dz=<code>0.25</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005ffog"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_fog</b><i> (<code>HMGL</code> gr, <code>float</code> d, <code>float</code> dz)</i></dt>
+<dd><p>Имитирует туман на графике. Туман начинается на относительном расстоянии <var>dz</var> от точки обзора и его плотность растет экспоненциально вглубь по закону ~<em>1-exp(-d*z)</em>. Здесь <em>z</em> &ndash; нормализованная на 1 глубина графика. Если <var>d</var>=<code>0</code> то туман отсутствует. См. раздел <a href="mathgl_ru_9.html#Surface-in-fog-sample">Surface in fog &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Default-sizes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fog" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Zooming" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0411_0430_0437_043e_0432_044be-_0440_0430_0437_043ce_0440_044b"></a>
+<h3 class="subsection">3.1.4 Базовые размеры</h3>
+<a name="index-SetTickLen"></a>
+<a name="index-SetTickStl"></a>
+<a name="index-SetBarWidth"></a>
+<a name="index-SetMarkSize"></a>
+<a name="index-SetArrowSize"></a>
+<a name="index-SetBaseLineWidth"></a>
+
+<p>Эти функции задают величины большинства параметров графика, включая размеры маркеров, стрелок, толщину линий и т.д. Как и любые другие настройки, они подействуют только на графики созданные после изменения настроек.
+</p>
+<dl>
+<dt><a name="index-SetBarWidth-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetBarWidth</b><i> ( <code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fbar_005fwidth"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_bar_width</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Задает относительный размер прямоугольников в Bars, Barh, BoxPlot (see section <a href="#Bars">Bars</a>). Значение по умолчанию <code>0.7</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetMarkSize-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetMarkSize</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fmark_005fsize"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_mark_size</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Задает размер маркеров для <a href="#g_t1D-plotting">1D графики</a>. Значение по умолчанию <code>0.02</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetArrowSize-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetArrowSize</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005farrow_005fsize"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_arrow_size</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Задает размер стрелок для <a href="#g_t1D-plotting">1D графики</a>, линий и кривых (see section <a href="#Primitives-drawing">Рисование примитивов</a>). Значение по умолчанию <code>0.03</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetBaseLineWidth-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetBaseLineWidth</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fbase_005fline_005fwidth"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_base_line_width</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Задает базовую толщину линий. Значения &lt;1 игнорируются. Для значений &gt;1 реальная толщина получается перемножением указанной ширины линии на данное значение. Увеличение ширины линии актуально для больших растровых рисунков. Значение по умолчанию <code>1</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTickLen-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTickLen</b><i> (<code>float</code> val, <code>float</code> stt=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005ftick_005flen"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_tick_len</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>float</code> stt)</i></dt>
+<dd><p>Задает относительную длину меток осей координат. Значение по умолчанию <code>0.1</code>. Параметр <var>stt</var>&gt;0 задает относительную длину подметок, которые в <code>sqrt(1+stt)</code> раз меньше.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTickStl-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTickStl</b><i> (<code>const char *</code>stl, <code>const char *</code>sub=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005ftick_005fstl"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_tick_stl</b><i> (<code>HMGL</code> gr, <code>const char *</code>stl, <code>const char *</code>sub)</i></dt>
+<dd><p>Задает стиль меток (<var>stl</var>) и подметок (<var>sub</var>) осей координат. Если <var>stl</var> пустая или ноль, то используется стиль по умолчанию (&lsquo;<samp>k</samp>&rsquo; или &lsquo;<samp>w</samp>&rsquo; в зависимости от типа прозрачности). Если <var>sub</var> пустая или ноль, то используется стиль меток (т.е. <var>stl</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-BarWidth-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>float</code> <b>BarWidth</b></dt>
+<dd><p>Относительная ширина боксов. См. <code>SetBarWidth()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-MarkSize-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>float</code> <b>MarkSize</b></dt>
+<dd><p>Размер маркеров. См. <code>SetMarkSize()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ArrowSize-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>float</code> <b>ArrowSize</b></dt>
+<dd><p>Размер стрелок. См. <code>SetArrowSize()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-BaseLineWidth-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>float</code> <b>BaseLineWidth</b></dt>
+<dd><p>Базовая ширина линий. См. <code>SetBaseLineWidth()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Zooming"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Default-sizes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cutting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041c_0430_0441_0448_0442_0430_0431_0438_0440_043e_0432_0430_043d_0438e"></a>
+<h3 class="subsection">3.1.5 Масштабирование</h3>
+<a name="index-SetPlotFactor"></a>
+<a name="index-Zoom"></a>
+
+<p>Эти функции управляют масштабированием всего рисунка (см Zoom()) или отдельной картинки (см PlotFactor). Обычно эти функции используются для удаления пустого места вокруг графиков.
+</p>
+<dl>
+<dt><a name="index-SetPlotFactor-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetPlotFactor</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fplotfactor"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_plotfactor</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Задает масштаб картинки (значение должно быть больше 1). Не рекомендуется устанавливать значения меньше 1.5. Это аналог функции Zoom(), но применяется только к конкретной картинке, заданной InPlot. Используйте ноль для включения автоматического масштабирования.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Zoom-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Zoom</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> x2, <code>float</code> y2)</i></dt>
+<dt><a name="index-mgl_005fset_005fzoom"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_zoom</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> x2, <code>float</code> y2)</i></dt>
+<dd><p>Масштабирует весь рисунок. После вызова функции текущий график будет очищен и в дальнейшем рисунок будет содержать только область [x1,x2]*[y1,y2] от исходного рисунка. Координаты <var>x1</var>, <var>x2</var>, <var>y1</var>, <var>y2</var> меняются в диапазоне от 0 до 1. Внимание! эти настройки не могут быть переписаны никакими другими функциями. Используйте <code>Zoom(0,0,1,1)</code> для перехода в масштаб по умолчанию.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-PlotFactor-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>float</code> <b>PlotFactor</b></dt>
+<dd><p>Множитель масштаба картинки. См. <code>SetPlotFactor()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AutoPlotFactor-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>bool</code> <b>AutoPlotFactor</b></dt>
+<dd><p>Включает/выключает автоматическое изменение PlotFactor при вращении графика. См. <code>SetPlotFactor()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cutting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Zooming" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0431_0440e_0437_0430_043d_0438e"></a>
+<h3 class="subsection">3.1.6 Обрезание</h3>
+<a name="index-SetCut"></a>
+<a name="index-SetCutBox"></a>
+<a name="index-CutOff"></a>
+
+<p>Эти функции задают условия когда точка будет исключена (вырезана) из рисования. Замечу, что все точки со значением(-ями) NAN по одной из координат или амплитуде автоматически исключаются из рисования.
+</p>
+<dl>
+<dt><a name="index-SetCut-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCut</b><i> (<code>bool</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fcut"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_cut</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+<dd><p>Задает обрезание точек за пределами осей координат. Если <code>true</code> то такие точки исключаются из рисования (это по умолчанию) иначе они проецируются на ограничивающий прямоугольник.
+</p></dd></dl>
+
+<div class="float">
+<img src="cut.png" alt="cut">
+
+</div><p><strong>Левый рисунок нарисован при <code>Cut=false</code>, правый при <code>Cut=true</code>.
+</strong>
+</p>
+<dl>
+<dt><a name="index-SetCutBox-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCutBox</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2)</i></dt>
+<dt><a name="index-mgl_005fset_005fcut_005fbox"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_cut_box</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2)</i></dt>
+<dd><p>Задает границы параллелепипеда внутри которого точки не рисуются. Если границы одинаковы (переменные равны), то параллелепипеда считается пустым. См. раздел <a href="mathgl_ru_9.html#CutMinMax-sample">CutMinMax &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CutOff-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>CutOff</b><i> (<code>const char *</code>EqC)</i></dt>
+<dt><a name="index-mgl_005fset_005fcutoff"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_cutoff</b><i> (<code>HMGL</code> gr, <code>const char *</code>EqC)</i></dt>
+<dd><p>Задает условие обрезания по формуле <var>EqC</var>. Это условие исключает точки из рисования если результат вычисления формулы не равен нулю. Установите аргумент <code>&quot;&quot;</code> для выключения условия обрезания. См. раздел <a href="mathgl_ru_9.html#CutOff-sample">CutOff &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cut-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>bool</code> <b>Cut</b></dt>
+<dd><p>Флаг рисования точек вне осей координат. См. <code>SetCut()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CutMin_002c-CutMax-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>mglPoint</code> <b>CutMin, CutMax</b></dt>
+<dd><p>Нижний и верхний угол параллелепипеда внутри которого точки не рисуются. См. <code>SetCutBox()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Font-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cutting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Palette-and-colors" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0428_0440_0438_0444_0442_044b"></a>
+<h3 class="subsection">3.1.7 Шрифты</h3>
+<a name="index-SetFontSize"></a>
+<a name="index-SetFontDef"></a>
+<a name="index-SetRotatedText"></a>
+<a name="index-SetFontSizePT"></a>
+<a name="index-SetFontSizeCM"></a>
+<a name="index-SetFontSizeIN"></a>
+<a name="index-SetFont"></a>
+<a name="index-GetFont"></a>
+<a name="index-LoadFont"></a>
+<a name="index-CopyFont"></a>
+<a name="index-RestoreFont"></a>
+
+<dl>
+<dt><a name="index-SetFontSize-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetFontSize</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005ffont_005fsize"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_font_size</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Задает базовый размер шрифта. По умолчанию размер подписей оси координат в 1.4 раза больше.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetFontDef-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetFontDef</b><i> (<code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005fset_005ffont_005fdef"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_font_def</b><i> (<code>HMGL</code> gr, <code>const char *</code> val)</i></dt>
+<dd><p>Задает стиль шрифта (see section <a href="#Text-printing">Вывод текста</a>). По умолчанию используется &lsquo;<samp>rC</samp>&rsquo; &ndash; прямой шрифт с выравниванием по центру.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetRotatedText-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetRotatedText</b><i> (<code>bool</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005frotated_005ftext"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_rotated_text</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+<dd><p>Включает/выключает вращение меток и подписей осей координат вдоль оси.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-LoadFont-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>LoadFont</b><i> (<code>const char *</code>name, <code>const char *</code>path=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fload_005ffont"></a><u>Функция С:</u> <code>void</code> <b>mgl_load_font</b><i> (<code>HMGL</code> gr, <code>const char *</code>name, <code>const char *</code>path)</i></dt>
+<dd><p>Загружает начертание шрифта из файла <var>path</var>/<var>name</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CopyFont-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>CopyFont</b><i> (<code>mglGraph *</code> from)</i></dt>
+<dt><a name="index-mgl_005fcopy_005ffont"></a><u>Функция С:</u> <code>void</code> <b>mgl_copy_font</b><i> (<code>HMGL</code> gr, <code>HMGL</code> gr_from)</i></dt>
+<dd><p>Копирует начертание шрифта из другого объекта <code>mglGraph</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-RestoreFont-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>RestoreFont</b><i> ()</i></dt>
+<dt><a name="index-mgl_005frestore_005ffont"></a><u>Функция С:</u> <code>void</code> <b>mgl_restore_font</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Восстанавливает начертание шрифта по умолчанию.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetFontSizePT-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>SetFontSizePT</b><i> (<code>float</code> cm, <code>int</code> dpi=<code>72</code>)</i></dt>
+<dd><p>Задает размер шрифта в пунктах для заданного DPI (по умолчанию 16 pt для dpi=72).
+</p></dd></dl>
+<dl>
+<dt><a name="index-SetFontSizeCM-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>inline void</code> <b>SetFontSizeCM</b><i> (<code>float</code> cm, <code>int</code> dpi=<code>72</code>)</i></dt>
+<dd><p>Задает размер шрифта в сантиметрах для заданного DPI (по умолчанию 0.56 см = 16 pt).
+</p></dd></dl>
+<dl>
+<dt><a name="index-SetFontSizeIN-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>inline void</code> <b>SetFontSizeIN</b><i> (<code>float</code> cm, <code>int</code> dpi=<code>72</code>)</i></dt>
+<dd><p>Задает размер шрифта в дюймах для заданного DPI (по умолчанию 0.22 in = 16 pt).
+</p></dd></dl>
+<dl>
+<dt><a name="index-SetFont-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>SetFont</b><i> (<code>mglFont *</code>f)</i></dt>
+<dd><p>Задает начертание шрифта. Замечу, что каждый объект mglFont может использоваться <em>только с одним</em> объектом mglGraph в каждый момент времени! Если <code>f==NULL</code>, то используется начертание по умолчанию.
+</p></dd></dl>
+<dl>
+<dt><a name="index-GetFont-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>inline mglFont *</code> <b>GetFont</b><i> ()</i></dt>
+<dd><p>Возвращает текущее начертание шрифта. Указатель правилен только до следующего вызова функции SetFont()!
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FontSize-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>float</code> <b>FontSize</b></dt>
+<dd><p>Размер шрифта. См. <code>SetFontSize()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-FontDef-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>char</code> <b>FontDef</b><i><code>[32]</code></i></dt>
+<dd><p>Стиль шрифта. См. <code>SetFontDef()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-RotatedText-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>bool</code> <b>RotatedText</b></dt>
+<dd><p>Флаг вращения меток и подписей к осям координат.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Palette-and-colors"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Error-handling" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0430_043b_0438_0442_0440_0430-_0438-c_0432e_0442_0430"></a>
+<h3 class="subsection">3.1.8 Палитра и цвета</h3>
+<a name="index-SetPalColor"></a>
+<a name="index-SetPalNum"></a>
+<a name="index-SetPalette"></a>
+<a name="index-SetScheme"></a>
+<a name="index-SelectPen"></a>
+
+<dl>
+<dt><a name="index-SetPalette-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetPalette</b><i> (<code>const char *</code><var>colors</var>)</i></dt>
+<dt><a name="index-mgl_005fset_005fpalette"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_palette</b><i> (<code>HMGL</code> gr, <code>const char *</code><var>colors</var>)</i></dt>
+<dd><p>Задает палитру как последовательность цветов. Значение по умолчанию <code>&quot;Hbgrcmyhlnqeup&quot;</code>, что соответствует цветам: темно серый &lsquo;<samp>H</samp>&rsquo;, синий &lsquo;<samp>b</samp>&rsquo;, зеленый &lsquo;<samp>g</samp>&rsquo;, красный &lsquo;<samp>r</samp>&rsquo;, голубой &lsquo;<samp>c</samp>&rsquo;, малиновый &lsquo;<samp>m</samp>&rsquo;, желтый &lsquo;<samp>y</samp>&rsquo;, серый &lsquo;<samp>h</samp>&rsquo;, сине-зеленый  &lsquo;<samp>l</samp>&rsquo;, небесно-голубой &lsquo;<samp>n</samp>&rsquo;, оранжевый &lsquo;<samp>q</samp>&rsquo;, желто-зеленый &lsquo;<samp>e</samp>&rsquo;, сине-фиолетовый &lsquo;<samp>u</samp>&rsquo;, фиолетовый &lsquo;<samp>p</samp>&rsquo;. Палитра в основном используется в 1D графиках (see section <a href="#g_t1D-plotting">1D графики</a>) для кривых с неопределенным стилем линии.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetPalColor-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetPalColor</b><i> (<code>int</code> n, <code>float</code> r, <code>float</code> g, <code>float</code> b)</i></dt>
+<dt><a name="index-mgl_005fset_005fpal_005fcolor"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_pal_color</b><i> (<code>HMGL</code> gr, <code>int</code> n, <code>float</code> r, <code>float</code> g, <code>float</code> b)</i></dt>
+<dd><p>Задает цвет отдельной ячейки палитры. См. функцию <code>SetPalette()</code> для упрощенного задания палитры.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetPalNum-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetPalNum</b><i> (<code>int</code> num)</i></dt>
+<dt><a name="index-mgl_005fset_005fpal_005fnum"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_pal_num</b><i> (<code>HMGL</code> gr, <code>int</code> num)</i></dt>
+<dd><p>Задает число цветов в палитре. Значение должно быть меньше 100.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetScheme-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetScheme</b><i> (<code>const char *</code>sch)</i></dt>
+<dt><a name="index-mgl_005fset_005fscheme"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_scheme</b><i> (<code>HMGL</code> gr, <code>const char *</code>sch)</i></dt>
+<dd><p>Задает цветовую схему. Обычно функция вызывается внутри библиотеки. See section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SelectPen-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>SelectPen</b><i> (<code>const char *</code>sch)</i></dt>
+<dd><p>Задает стиль линий и маркеров. Обычно функция вызывается внутри библиотеки. See section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-Pal-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>mglColor</code> <b>Pal</b><i><code>[101]</code></i></dt>
+<dd><p>Палитра <a href="#g_t1D-plotting">1D графики</a>. См. <code>SetPalette()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-NumPal-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>int</code> <b>NumPal</b></dt>
+<dd><p>Число цветов в палитре. См. <code>SetPalette()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Error-handling"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Palette-and-colors" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0431_0440_0430_0431_043e_0442_043a_0430-_043e_0448_0438_0431_043e_043a"></a>
+<h3 class="subsection">3.1.9 Обработка ошибок</h3>
+
+<a name="index-Message"></a>
+<a name="index-GetWarnCode"></a>
+<a name="index-SetWarn"></a>
+
+<p>Есть 2 переменные показывающие наличие предупреждения/ошибки при создании графика. Обычно вы должны сбросить их с помощью <code>SetWarn(0);</code> перед построением и проверить переменную <var>WarnCode</var> на наличие ошибок после построения. Только последнее предупреждение сохраняется. Замечу, что все предупреждения/ошибки в MathGL не являются критичными &ndash; в худшем из вариантов соответствующий график просто не будет построен.
+</p>
+<dl>
+<dt><a name="index-SetWarn-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>SetWarn</b><i> (<code>int</code> code, <code>const char *</code>who=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Задает код предупреждения и поясняющее сообщение от функции <var>who</var>. Обычно вызывается только для очистки предупреждений (<code>SetWarn(0);</code>) или внутри библиотеки.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Message-of-mglGraph"></a><u>Переменная(C++) of mglGraph:</u> <code>char *</code> <b>Message</b></dt>
+<dd><p>Указатель на строку для вывода сообщений библиотеки о причине отсутствия графика. Если равен NULL, то сообщения не выводятся. Размер буфера должен быть не менее 1024 байт. Если Message[0]==0, то сообщений нет.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetWarn"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>int</code> <b>GetWarn</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fget_005fwarn"></a><u>C function:</u> <code>int</code> <b>mgl_get_warn</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Возвращает код сообщения о причине отсутствия графика. Возможные значения:
+</p><dl compact="compact">
+<dt> <code>mglWarnNone=0</code></dt>
+<dd><p>Предупреждений нет
+</p></dd>
+<dt> <code>mglWarnDim</code></dt>
+<dd><p>Неправильные или несовместимые размеры данных
+</p></dd>
+<dt> <code>mglWarnLow</code></dt>
+<dd><p>Размеры данных слишком малы
+</p></dd>
+<dt> <code>mglWarnNeg</code></dt>
+<dd><p>Минимальное значение отрицательно
+</p></dd>
+<dt> <code>mglWarnFile</code></dt>
+<dd><p>Файл не найден или указаны неправильные размерности
+</p></dd>
+<dt> <code>mglWarnMem</code></dt>
+<dd><p>Не достаточно памяти
+</p></dd>
+<dt> <code>mglWarnZero</code></dt>
+<dd><p>Значение данных равно нулю
+</p></dd>
+<dt> <code>mglWarnLegA</code></dt>
+<dd><p>Слишком много записей в легенде
+</p></dd>
+<dt> <code>mglWarnLeg</code></dt>
+<dd><p>Нет записей в легенде
+</p></dd>
+<dt> <code>mglWarnSlc</code></dt>
+<dd><p>Индекс среза вне данных
+</p></dd>
+<dt> <code>mglWarnCnt</code></dt>
+<dd><p>Число линий уровня меньше или равно нулю
+</p></dd>
+<dt> <code>mglWarnOpen</code></dt>
+<dd><p>Не могу открыть файл
+</p></dd>
+<dt> <code>mglWarnLId</code></dt>
+<dd><p>Light: ID вне допустимых значений
+</p></dd>
+<dt> <code>mglWarnSize</code></dt>
+<dd><p>Setsize: размер(ы) равны нулю или отрицательны
+</p></dd>
+<dt> <code>mglWarnFmt</code></dt>
+<dd><p>Формат не поддерживается
+</p></dd>
+</dl>
+</dd></dl>
+
+<dl>
+<dt><a name="index-WarnCode-of-mglGraph"></a><u>Устаревшая переменная of mglGraph:</u> <code>int</code> <b>WarnCode</b></dt>
+<dd><p>Код сообщения о причине отсутствия графика. 
+</p></dd></dl>
+
+<hr size="6">
+<a name="Other-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Error-handling" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043e_0447_0438e-_043d_0430_0441_0442_0440_043e_0439_043a_0438"></a>
+<h3 class="subsection">3.1.10 Прочие настройки</h3>
+<a name="index-SetMeshNum"></a>
+<a name="index-SetAxialDir"></a>
+<a name="index-SetDrawFace"></a>
+<a name="index-PlotId"></a>
+
+<dl>
+<dt><a name="index-SetMeshNum-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetMeshNum</b><i> (<code>int</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fmeshnum"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_meshnum</b><i> (<code>HMGL</code> gr, <code>int</code> num)</i></dt>
+<dd><p>Задает ориентировочное число линий в Mesh(), Fall(), Grid() и число стрелок (штрихов) в Vect(), Dew() и число ячеек в Cloud*(). По умолчанию (=0) рисуются все линии, стрелки, ячейки.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetAxialDir-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetAxialDir</b><i> (<code>char</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005faxial_005fdir"></a><u>Функция С:</u> <code></code> <b>mgl_set_axial_dir</b><i> (<code>HMGL</code> gr, <code>char</code> dir)</i></dt>
+<dd><p>Задает ось вращения для Axial() и Torus(). По умолчанию это &rsquo;z&rsquo;.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetDrawFace-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetDrawFace</b><i> (<code>bool</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fdraw_005fface"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_draw_face</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+<dd><p>Запрещает/разрешает рисование граней. Запрет вывода граней позволяет ускорить рисование (например для вращения картинки).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-PlotId-of-mglGraph"></a><u>Переменная(C++) of mglGraph:</u> <code>const char *</code> <b>PlotId</b></dt>
+<dd><p>Идентификатор рисунка для сохранения в файл.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-MeshNum-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>int</code> <b>MeshNum</b></dt>
+<dd><p>Число линий, стрелок, ячеек. См. <code>SetMeshNum()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AxialDir-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>char</code> <b>AxialDir</b></dt>
+<dd><p>Ось вращения. См. <code>SetAxialDir()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DrawFace-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>bool</code> <b>DrawFace</b></dt>
+<dd><p>Флаг запрета рисования граней. См. <code>SetDrawFace()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CirclePnts-of-mglGraph"></a><u>Переменная(C++) of mglGraph:</u> <code>int</code> <b>CirclePnts</b></dt>
+<dd><p>Число точек при аппроксимации окружности в <a href="#Primitives-drawing">Рисование примитивов</a>, <a href="#Tube">Tube</a>, <a href="#Pipe">Pipe</a> и т.д. По умолчанию 40.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GridPnts-of-mglGraph"></a><u>Переменная(C++) of mglGraph:</u> <code>int</code> <b>GridPnts</b></dt>
+<dd><p>Число точек при построении линий сеток &ndash; важно для криволинейных координат. По умолчанию 50.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axis-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ranges-_0028bounding-box_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041d_0430_0441_0442_0440_043e_0439_043a_0438-_043e_0441e_0439-_043a_043e_043e_0440_0434_0438_043d_0430_0442"></a>
+<h2 class="section">3.2 Настройки осей координат</h2>
+
+<p>Эти функции управляет видом и масштабом осей координат. Перед построением для каждой точки выполняются 3 преобразования: сначала определяется возможность рисования точки (see section <a href="#Cutting">Обрезание</a>), далее применяются формулы перехода к криволинейным координатам и наконец точка отображается.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transformation">3.2.2 Криволинейные координаты</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ticks">3.2.3 Метки осей</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Ranges-_0028bounding-box_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transformation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041c_0430_0441_0448_0442_0430_0431-_043e_0441e_0439-_043a_043e_043e_0440_0434_0438_043d_0430_0442"></a>
+<h3 class="subsection">3.2.1 Масштаб осей координат</h3>
+<a name="index-Axis"></a>
+<a name="index-CAxis"></a>
+<a name="index-XRange"></a>
+<a name="index-YRange"></a>
+<a name="index-ZRange"></a>
+<a name="index-Min"></a>
+<a name="index-Max"></a>
+<a name="index-Cmin"></a>
+<a name="index-Cmax"></a>
+<a name="index-RecalcBorder"></a>
+<a name="index-Org"></a>
+<a name="index-AutoOrg"></a>
+<a name="index-SetRanges"></a>
+<a name="index-SetAutoRanges"></a>
+
+<dl>
+<dt><a name="index-SetRanges-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetRanges</b><i> (<code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2, <code>float</code> z1=<code>0</code>, <code>float</code> z2=<code>0</code>)</i></dt>
+<dt><a name="index-Axis-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Axis</b><i> (<code>mglPoint</code> min, <code>mglPoint</code> max, <code>mglPoint</code> org=<code>mglPoint(NAN,NAN,NAN)</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005faxis_005f2d"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_axis_2d</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> x2, <code>float</code> y2)</i></dt>
+<dt><a name="index-mgl_005fset_005faxis_005f3d"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_axis_3d</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2)</i></dt>
+<dd><p>Безопасным образом задает значения переменных <var>Min</var>, <var>Max</var> и <var>Org</var>. Если минимальное и максимальное значение координаты равны, то они игнорируются по данному направлению. Эта функция также устанавливает размер цветовой шкалы <var>Cmin</var>=<code>Min.z</code> и <var>Cmax</var>=<code>Max.z</code> &ndash; это режим по умолчанию для 2d графиков.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetCRange"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCRange</b><i> (<code>float</code> min, <code>float</code> max)</i></dt>
+<dt><a name="index-CAxis-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>CAxis</b><i> (<code>float</code> min, <code>float</code> max)</i></dt>
+<dt><a name="index-mgl_005fset_005fcaxis"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_caxis</b><i> (<code>HMGL</code> gr, <code>float</code> min, <code>float</code> max)</i></dt>
+<dd><p>Задает масштаб цветовой шкалы. Эти значения используются для определения цвета поверхностей и прочих 2D и 3D графиков.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-XRange-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>XRange</b><i> (<code>const mglData &amp;</code> dat, <code>bool</code> add=<code>false</code>, <code>float</code> fact=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fxrange"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_xrange</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> add)</i></dt>
+<dd><p>Задает масштаб по оси X как минимальное и максимальное значение массива <var>a</var>. Параметр <var>add</var> указывает добавлять новый диапазон к существующему или заменять его. Параметр <var>fact</var> дополнительно расширяет диапазон на величину (<var>Max</var>-<var>Min</var>)*<var>fact</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-YRange-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>YRange</b><i> (<code>const mglData &amp;</code> dat, <code>bool</code> add=<code>false</code>, <code>float</code> fact=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fyrange"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_yrange</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> add)</i></dt>
+<dd><p>Задает масштаб по оси Y как минимальное и максимальное значение массива <var>a</var>. Параметр <var>add</var> указывает добавлять новый диапазон к существующему или заменять его. Параметр <var>fact</var> дополнительно расширяет диапазон на величину (<var>Max</var>-<var>Min</var>)*<var>fact</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ZRange-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ZRange</b><i> (<code>const mglData &amp;</code> dat, <code>bool</code> add=<code>false</code>, <code>float</code> fact=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fzrange"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_zrange</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> add)</i></dt>
+<dd><p>Задает масштаб по оси Z как минимальное и максимальное значение массива <var>a</var>. Параметр <var>add</var> указывает добавлять новый диапазон к существующему или заменять его. Параметр <var>fact</var> дополнительно расширяет диапазон на величину (<var>Max</var>-<var>Min</var>)*<var>fact</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CRange"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>CRange</b><i> (<code>const mglData &amp;</code> dat, <code>bool</code> add=<code>false</code>, <code>float</code> fact=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fcrange"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_crange</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> add)</i></dt>
+<dd><p>Задает цветовой масштаб как минимальное и максимальное значение массива <var>a</var>. Параметр <var>add</var> указывает добавлять новый диапазон к существующему или заменять его. Параметр <var>fact</var> дополнительно расширяет диапазон на величину (<var>Max</var>-<var>Min</var>)*<var>fact</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetAutoRanges-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetAutoRanges</b><i> (<code>float</code> x1, <code>float</code> x2, <code>float</code> y1=<code>0</code>, <code>float</code> y2=<code>0</code>, <code>float</code> z1=<code>0</code>, <code>float</code> z2=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fauto"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_auto</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2, <code>float</code> z1, <code>float</code> z2)</i></dt>
+<dd><p>Задает масштаб &quot;автоматических&quot; (не указанных явно) переменных. Функция меняет значения <var>Min</var>, <var>Max</var> буз вызова RecalcBorder(). Если минимальное и максимальное значение координаты равны, то они игнорируются по данному направлению. Замечу, что этот масштаб становится масштабом осей при следующем вызове функций [XYZ]Range().
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetOrigin"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetOrigin</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005forigin"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_origin</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0)</i></dt>
+<dd><p>Задает центр пересечения осей координат. Если одно из значений равно NAN, то MathGL попытается выбрать оптимальное положение осей координат по этому направлению.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-RecalcBorder-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>RecalcBorder</b><i> ()</i></dt>
+<dd><p>Повторно вычисляет внутренние параметры для правильного применения функций перехода в криволинейную систему координат. <strong>Должна быть вызвана</strong> после каждого прямого изменения переменных <var>Min</var>, <var>Max</var>, <var>fx</var>, <var>fy</var>, <var>fz</var> если их изменение должно отразиться на графике.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Min_002c-Max-of-mglGraph"></a><u>Переменная(C++) of mglGraph:</u> <code>mglPoint</code> <b>Min, Max</b></dt>
+<dd><p>Масштаб осей координат. Эти переменные используются также для определения диапазона &quot;автоматических&quot; массивов (массивов не указанных явно при построении графика). Вы можете изменить их перед построением графика и потом вернуть их назад. В результате график будет в указанном диапазоне, а не в диапазоне осей координат. <strong>НО</strong> если вы хотите поменять масштаб осей, то вы <strong>должны</strong> вызвать функцию <code>RecalcBorder();</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cmin_002c-Cmax-of-mglGraph"></a><u>Переменная(C++) of mglGraph:</u> <code>float</code> <b>Cmin, Cmax</b></dt>
+<dd><p>Масштаб цветовой шкалы. См. <code>CAxis(), CRange()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Org-of-mglGraph"></a><u>Переменная(C++) of mglGraph:</u> <code>mglPoint</code> <b>Org</b></dt>
+<dd><p>Центр пересечения осей координат. См. <code>SetOrigin()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AutoOrg-of-mglGraph"></a><u>Переменная(C++) of mglGraph:</u> <code>bool</code> <b>AutoOrg</b></dt>
+<dd><p>Флаг для автоматического сдвига осей координат если их центр пересечения лежит вне диапазона осей координат <var>Min</var> ... <var>Max</var>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Transformation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ranges-_0028bounding-box_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ticks" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041a_0440_0438_0432_043e_043b_0438_043de_0439_043d_044be-_043a_043e_043e_0440_0434_0438_043d_0430_0442_044b"></a>
+<h3 class="subsection">3.2.2 Криволинейные координаты</h3>
+<a name="index-SetFunc"></a>
+<a name="index-SetCoor"></a>
+<a name="index-Ternary"></a>
+
+<dl>
+<dt><a name="index-SetFunc-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetFunc</b><i> (<code>const char *</code>EqX, <code>const char *</code>EqY, <code>const char *</code>EqZ=<code>&quot;&quot;</code>, <code>const char *</code>EqA=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005ffunc"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_func</b><i> (<code>HMGL</code> gr, <code>const char *</code>EqX, <code>const char *</code>EqY, <code>const char *</code>EqZ)</i></dt>
+<dt><a name="index-mgl_005fset_005ffunc_005fext"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_func_ext</b><i> (<code>HMGL</code> gr, <code>const char *</code>EqX, <code>const char *</code>EqY, <code>const char *</code>EqZ, <code>const char *</code>EqA)</i></dt>
+<dd><p>Задает формулы перехода к криволинейным координатам. Каждая строка является математическим выражением, зависящим от старых координат &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; и &lsquo;<samp>a</samp>&rsquo; или &lsquo;<samp>c</samp>&rsquo; для цветовой шкалы. Например, для цилиндрических координат будет <code>Axis(&quot;x*cos(y)&quot;, &quot;x*sin(y)&quot;, &quot;z&quot;);</code>. Для удаления формул соответствующий параметр должен быть пустым или <code>NULL</code>. Использование формул преобразования слегка замедляет программу, т.е.. <code>Axis(&quot;&quot;, &quot;&quot;, &quot;&quot;)</code> быстрее чем <code>Axis(&quot;1*x&quot;, &quot;1*y&quot;, &quot;1*z&quot;)</code>. Параметр <var>EqA</var> задает аналогичную формулу для цветовой шкалы. See section <a href="mathgl_ru_1.html#Textual-formulas">Текстовые формулы</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetCoor-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCoor</b><i> (<code>int</code> how)</i></dt>
+<dt><a name="index-mgl_005fset_005fcoor"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_coor</b><i> (<code>HMGL</code> gr, <code>int</code> how)</i></dt>
+<dd><p>Устанавливает одну из предопределенных систем криволинейных координат в зависимости от параметра <var>how</var>: <code>mglCartesian=0</code> &ndash; декартова система (нет преобразования координат, наиболее быстрая); <code>mglPolar=1</code> &ndash; полярные координаты <em>x_n=x*cos(y),y_n=x*sin(y), z_n=z</em>; <code>mglSpherical=2</code> &ndash; сферические координаты <em>x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y)</em>; <code>mglParabolic=3</code> &ndash; параболические координаты <em>x_n=x*y, y_n=(x*x-y*y)/2, z_n=z</em>; <code>mglParaboloidal=4</code> &ndash; Paraboloidal coordinates <em>x_n=(x*x-y*y)*cos(z)/2, y_n=(x*x-y*y)*sin(z)/2, z_n=x*y</em>; <code>mglOblate=5</code> &ndash; Oblate coordinates <em>x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z), z_n=sinh(x)*sin(y)</em>; <code>mglProlate=6</code> &ndash; Prolate coordinates <em>x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z), z_n=cosh(x)*cos(y)</em>; <code>mglElliptic=7</code> &ndash; эллиптические координаты <em>x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z</em>; <code>mglToroidal=8</code> &ndash; тороидальные координаты <em>x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)), y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y))</em>; <code>mglBispherical=9</code> &ndash; бисферические координаты <em>x_n=sin(y)*cos(z)/(cosh(x)-cos(y)), y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y))</em>; <code>mglBipolar=10</code> &ndash; биполярные координаты <em>x_n=sinh(x)/(cosh(x)-cos(y)), y_n=sin(y)/(cosh(x)-cos(y)), z_n=z</em>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Ternary-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Ternary</b><i> (<code>bool</code> tern)</i></dt>
+<dt><a name="index-mgl_005fset_005fternary"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_ternary</b><i> (<code>HMGL</code> gr, <code>int</code> tern)</i></dt>
+<dd><p>Задает рисование треугольных (Ternary) осей координат. Это специальный тип графика для 3 зависимых координат (компонент) <var>a</var>, <var>b</var>, <var>c</var> таких, что <var>a</var>+<var>b</var>+<var>c</var>=1. MathGL использует только 2 независимые координаты <var>a</var>=x и <var>b</var>=y поскольку их достаточно для построения всех графиков. При этом третья координата z является независимым параметром для построения линий уровня, поверхностей и т.д. См. раздел <a href="mathgl_ru_9.html#Ternary-plot-sample">Ternary plot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Ticks"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transformation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transformation-matrix" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041ce_0442_043a_0438-_043e_0441e_0439"></a>
+<h3 class="subsection">3.2.3 Метки осей</h3>
+
+<a name="index-SetTicks"></a>
+<a name="index-SetTicksVal"></a>
+<a name="index-SetTuneTicks"></a>
+<a name="index-AdjustTicks"></a>
+<a name="index-SetXTT"></a>
+<a name="index-SetYTT"></a>
+<a name="index-SetZTT"></a>
+<a name="index-SetCTT"></a>
+
+<dl>
+<dt><a name="index-AdjustTicks-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>AdjustTicks</b><i> (<code>const char *</code>dir=<code>&quot;xyz&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fadjust_005fticks"></a><u>Функция С:</u> <code>void</code> <b>mgl_adjust_ticks</b><i> (<code>HMGL</code> gr, <code>const char *</code>dir)</i></dt>
+<dd><p>Автоматически задает шаг меток осей, число подметок и начальное положение меток для осей координат <var>dir</var> в виде наиболее удобном для человека. Также задает <code>SetTuneTicks(true)</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTicks-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTicks</b><i> (<code>char</code> dir, <code>float</code> d=<code>-5</code>, <code>int</code> ns=<code>0</code>, <code>float</code> org=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fticks_005fdir"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_ticks_dir</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>float</code> d, <code>int</code> ns, <code>float</code> org)</i></dt>
+<dt><a name="index-mgl_005fset_005fticks"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_ticks</b><i> (<code>HMGL</code> gr, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz)</i></dt>
+<dt><a name="index-mgl_005fset_005fsubticks"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_subticks</b><i> (<code>HMGL</code> gr, <code>int</code> nx, <code>int</code> ny, <code>int</code> nz)</i></dt>
+<dt><a name="index-mgl_005fset_005ftick_005forigin"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_tick_origin</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0)</i></dt>
+<dd><p>Задает шаг меток осей <var>d</var>, число подметок <var>ns</var> и начальное положение меток <var>org</var> для оси вдоль направления <var>dir</var> (используйте &rsquo;c&rsquo; для меток colorbar). Переменная <var>d</var> задает шаг меток (если положительна) или их число на оси (если отрицательна). Нулевое значение задает логарифмические метки. Если <var>org</var>=<code>NAN</code>, то используется значение из переменной <var>Org</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTicksVal-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTicksVal</b><i> (<code>char</code> dir, <code>int</code> n, <code>float *</code>val, <code>const char **</code>lbl)</i></dt>
+<dt><a name="index-SetTicksVal-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTicksVal</b><i> (<code>char</code> dir, <code>int</code> n, <code>float *</code>val, <code>const wchar_t **</code>lbl)</i></dt>
+<dt><a name="index-SetTicksVal-3"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>SetTicksVal</b><i> (<code>char</code> dir, <code>int</code> n, <code>float</code> val1, <code>wchar_t *</code>lbl1, ...)</i></dt>
+<dt><a name="index-mgl_005fset_005fticks_005fvals"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_ticks_vals</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>int</code> n, <code>float *</code>val, <code>const char **</code>lbl)</i></dt>
+<dt><a name="index-mgl_005fset_005fticks_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_ticks_val</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>int</code> n, <code>double</code> val, <code>const char *</code>lbl, ...)</i></dt>
+<dd><p>Задает явное положение <var>val</var> и подписи <var>lbl</var> для <var>n</var> меток вдоль оси <var>dir</var>. Массивы <var>val</var> и <var>lbl</var> должны содержать <var>n</var> элементов. Используйте <code>SetTicks()</code> для восстановления автоматических меток. Вы должны быть <strong>очень осторожны</strong> и использовать числа с плавающей точкой (а <em>не целые!!!</em>) для положения меток &ndash; из-за ограничений передачи аргументов в библиотеке stdarg. См. раздел <a href="mathgl_ru_9.html#Manual-ticks-sample">Особые метки по осям</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTuneTicks-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTuneTicks</b><i> (<code>bool</code> tune, <code>float</code> pos=<code>1.15</code>)</i></dt>
+<dt><a name="index-mgl_005ftune_005fticks"></a><u>Функция С:</u> <code>void</code> <b>mgl_tune_ticks</b><i> (<code>HMGL</code> gr, <code>bool</code> tune, <code>float</code> pos)</i></dt>
+<dd><p>Включает/выключает улучшение вида меток осей путем вынесения общего множителя (для маленьких, типа 0.001...0.002, или больших, типа 1000...2000, значений координат) или общей компоненты (для узкого диапазона, типа 0.999...1.000). Также задает положение <var>pos</var> общего множителя на оси: =0 около минимального значения, =1 около максимального значения.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetXTT-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetXTT</b><i> (<code>const char *</code>xtt)</i></dt>
+<dt><a name="index-SetYTT-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetYTT</b><i> (<code>const char *</code>ytt)</i></dt>
+<dt><a name="index-SetZTT-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetZTT</b><i> (<code>const char *</code>ztt)</i></dt>
+<dt><a name="index-SetCTT-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCTT</b><i> (<code>const char *</code>ctt)</i></dt>
+<dt><a name="index-SetXTT-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetXTT</b><i> (<code>const wchar_t *</code>xtt)</i></dt>
+<dt><a name="index-SetYTT-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetYTT</b><i> (<code>const wchar_t *</code>ytt)</i></dt>
+<dt><a name="index-SetZTT-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetZTT</b><i> (<code>const wchar_t *</code>ztt)</i></dt>
+<dt><a name="index-SetCTT-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCTT</b><i> (<code>const wchar_t *</code>ctt)</i></dt>
+<dt><a name="index-mgl_005fset_005fxttw"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_xttw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>xtt)</i></dt>
+<dt><a name="index-mgl_005fset_005fyttw"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_yttw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ytt)</i></dt>
+<dt><a name="index-mgl_005fset_005fzttw"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_zttw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ztt)</i></dt>
+<dt><a name="index-mgl_005fset_005fcttw"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_cttw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ctt)</i></dt>
+<dt><a name="index-mgl_005fset_005fxtt"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_xtt</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>xtt)</i></dt>
+<dt><a name="index-mgl_005fset_005fytt"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_ytt</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ytt)</i></dt>
+<dt><a name="index-mgl_005fset_005fztt"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_ztt</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ztt)</i></dt>
+<dt><a name="index-mgl_005fset_005fctt"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_ctt</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ctt)</i></dt>
+<dd><p>Задает шаблоны для меток вдоль x-,y-,z-оси или colorbar. Шаблон может содержать и символы TeX. Если <var>xtt</var>, <var>ytt</var>, <var>ztt</var>, <var>ctt</var>=<code>&quot;&quot;</code>, то используется шаблон по умолчанию (в простейшем случае &lsquo;<samp>%.2g</samp>&rsquo;). Установка шаблона выключает автоматическое улучшение вида меток (См. <code>SetTuneTicks()</code>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-dx_002c-dy_002c-dz-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>float</code> <b>dx, dy, dz</b></dt>
+<dd><p>Шаг меток осей. См. <code>SetTicks()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-NSx_002c-NSy_002c-NSz-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>int</code> <b>NSx, NSy, NSz</b></dt>
+<dd><p>Число подметок. См. <code>SetTicks()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-OrgT-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>mglPoint</code> <b>OrgT</b></dt>
+<dd><p>Начальная точка для меток. См. <code>SetTicks()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TuneTicks-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>bool</code> <b>TuneTicks</b></dt>
+<dd><p>Флаг автоматического улучшения меток. См. <code>SetTuneTicks()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FactorPos-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>float</code> <b>FactorPos</b></dt>
+<dd><p>Положение общего множителя. См. <code>SetTuneTicks()</code>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Transformation-matrix"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ticks" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Export-to-file" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041c_0430_0442_0440_0438c_0430-_043f_0440e_043e_0431_0440_0430_0437_043e_0432_0430_043d_0438ya"></a>
+<h2 class="section">3.3 Матрица преобразования</h2>
+<a name="index-Aspect"></a>
+<a name="index-Rotate"></a>
+<a name="index-RotateN"></a>
+<a name="index-SubPlot"></a>
+<a name="index-InPlot"></a>
+<a name="index-Identity"></a>
+<a name="index-Perspective"></a>
+<a name="index-RestoreM"></a>
+<a name="index-View"></a>
+<a name="index-ColumnPlot"></a>
+
+<p>Эти функции контролируют где и как график будет расположен. Существует определенный порядок вызова этих функций для лучшего вида графика. Вначале должны вызываться функции SubPlot() или InPlot() для указания местоположения вывода. После них &ndash; функции вращения Rotate() и сжатия Aspect(). И наконец любые другие функции для рисования графика. Вместо вращения графика можно вызвать функцию ColumnPlot() для расположения графиков в столбец одного над другим без зазора между осями.
+</p>
+<dl>
+<dt><a name="index-SubPlot-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SubPlot</b><i> (<code>int</code> nx, <code>int</code> ny, <code>int</code> m, <code>float</code> dx=<code>0</code>, <code>float</code> dy=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fsubplot"></a><u>Функция С:</u> <code>void</code> <b>mgl_subplot</b><i> (<code>HMGL</code> gr, <code>int</code> nx, <code>int</code> ny, <code>int</code> m)</i></dt>
+<dt><a name="index-mgl_005fsubplot_005fd"></a><u>Функция С:</u> <code>void</code> <b>mgl_subplot_d</b><i> (<code>HMGL</code> gr, <code>int</code> nx, <code>int</code> ny, <code>int</code> m, <code>float</code> dx, <code>float</code> dy)</i></dt>
+<dd><p>Помещает последующий вывод в <var>m</var>-ую ячейку сетки размером <var>nx</var>*<var>ny</var> от всего рисунка. Функция сбрасывает матрицу трансформации (повороты и сжатие графика) и должна вызываться первой для создания &quot;подграфика&quot;. С эстетической точки зрения не рекомендуется вызывать эту функцию с различными (или не кратными) размерами сетки. Ячейка может быть дополнительно сдвинута относительно своего обычного положения на относительный размер <var>dx</var>, <var>dy</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SubPlot-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SubPlot</b><i> (<code>int</code> nx, <code>int</code> ny, <code>int</code> m, <code>const char *</code>style)</i></dt>
+<dt><a name="index-mgl_005fsubplot_005fs"></a><u>C function:</u> <code>void</code> <b>mgl_subplot_s</b><i> (<code>HMGL</code> gr, <code>int</code> nx, <code>int</code> ny, <code>int</code> m, <code>const char *</code>style)</i></dt>
+<dd><p>Аналогично предыдущему, но место для осей/colorbar резервируется только если строка <var>style</var> содержит: &lsquo;<samp>L</samp>&rsquo; или &lsquo;<samp>&lt;</samp>&rsquo; &ndash; с левого края, &lsquo;<samp>R</samp>&rsquo; или &lsquo;<samp>&gt;</samp>&rsquo; &ndash; с правого края, &lsquo;<samp>A</samp>&rsquo; или &lsquo;<samp>^</samp>&rsquo; &ndash; с верхнего края, &lsquo;<samp>U</samp>&rsquo; или &lsquo;<samp>_</samp>&rsquo; &ndash; с нижнего края.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-InPlot-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>InPlot</b><i> (<code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2, <code>bool</code> rel=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005finplot"></a><u>Функция С:</u> <code>void</code> <b>mgl_inplot</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2)</i></dt>
+<dt><a name="index-mgl_005frelplot"></a><u>Функция С:</u> <code>void</code> <b>mgl_relplot</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2)</i></dt>
+<dd><p>Помещает последующий вывод в прямоугольную область [<var>x1</var>, <var>x2</var>]*[<var>y1</var>, <var>y2</var>] (исходный размер [0,1]*[0,1]). Эта функция позволяет поместить график в произвольную область рисунка. Если параметр <var>rel</var>=<code>true</code>, то используется позиция относительно текщего SubPlot() (или InPlot() с <var>rel</var>=<code>false</code>). Функция сбрасывает матрицу трансформации (повороты и сжатие графика) и должна вызываться первой для создания &quot;подграфика&quot;.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ColumnPlot-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ColumnPlot</b><i> (<code>int</code> num, <code>int</code> ind, <code>float</code> d=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcolumnplot"></a><u>Функция С:</u> <code>void</code> <b>mgl_columnplot</b><i> (<code>HMGL</code> gr, <code>int</code> num, <code>int</code> ind)</i></dt>
+<dt><a name="index-mgl_005fcolumnplot-1"></a><u>Функция С:</u> <code>void</code> <b>mgl_columnplot</b><i> (<code>HMGL</code> gr, <code>int</code> num, <code>int</code> ind, <code>float</code> d)</i></dt>
+<dd><p>Помещает последующий вывод в <var>ind</var>-ую строку столбца из <var>num</var> строк. Положение столбца выбирается относительно последнего вызова SubPlot() (или InPlot() с <var>rel</var>=<code>false</code>). Параметр <var>d</var> задает дополнительный зазор между строк. См. раздел <a href="mathgl_ru_9.html#ColumnPlot-sample">ColumnPlot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-StickPlot"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>StickPlot</b><i> (<code>int</code> num, <code>int</code> ind, <code>float</code> tet, <code>float</code> phi)</i></dt>
+<dt><a name="index-mgl_005fstickplot"></a><u>C function:</u> <code>void</code> <b>mgl_stickplot</b><i> (<code>HMGL</code> gr, <code>int</code> num, <code>int</code> ind, <code>float</code> tet, <code>float</code> phi)</i></dt>
+<dd><p>Помещает последующий вывод в <var>ind</var>-ую ячейку &quot;бруска&quot; из <var>num</var> ячеек. При этом сам брусок повернут на углы <var>tet</var>, <var>phi</var>. Положение выбирается относительно последнего вызова SubPlot() (или InPlot() с <var>rel</var>=<code>false</code>). См. раздел <a href="mathgl_ru_9.html#StickPlot-sample">StickPlot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Rotate-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Rotate</b><i> (<code>float</code> TetX, <code>float</code> TetZ, <code>float</code> TetY=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005frotate"></a><u>Функция С:</u> <code>void</code> <b>mgl_rotate</b><i> (<code>HMGL</code> gr, <code>float</code> TetX, <code>float</code> TetZ, <code>float</code> TetY)</i></dt>
+<dd><p>Вращает систему координат относительно осей {x, z, y} последовательно на углы <var>TetX</var>, <var>TetZ</var>, <var>TetY</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-RotateN-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>RotateN</b><i> (<code>float</code> Tet, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dt><a name="index-mgl_005frotate_005fvector"></a><u>Функция С:</u> <code>void</code> <b>mgl_rotate_vector</b><i> (<code>HMGL</code> gr, <code>float Tet</code>, <code>float x</code>, <code>float y</code>, <code>float z</code>)</i></dt>
+<dd><p>Вращает систему координат относительно вектора {<var>x</var>, <var>y</var>, <var>z</var>} на угол <var>Tet</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Aspect-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Aspect</b><i> (<code>float</code> Ax, <code>float</code> Ay, <code>float</code> Az)</i></dt>
+<dt><a name="index-mgl_005faspect"></a><u>Функция С:</u> <code>void</code> <b>mgl_aspect</b><i> (<code>HMGL</code> gr, <code>float</code> Ax, <code>float</code> Ay, <code>float</code> Az)</i></dt>
+<dd><p>Устанавливает соотношение размеров осей в отношении <var>Ax:Ay:Az</var>. Для лучшего вида следует вызывать после функции Rotate().
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Perspective-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Perspective</b><i> (<code>float</code> a)</i></dt>
+<dt><a name="index-mgl_005fperspective"></a><u>Функция С:</u> <code>void</code> <b>mgl_perspective</b><i> (<code>HMGL</code> gr, <code>float</code> a)</i></dt>
+<dd><p>Добавляет (включает) перспективу для графика. Параметр <em>a ~ 1/z_eff \in [0,1)</em>. По умолчанию (<code>a=0</code>) перспектива отключена.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Identity-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Identity</b><i> (<code>bool</code> rel=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fidentity"></a><u>Функция С:</u> <code>void</code> <b>mgl_identity</b><i> (<code>HMGL</code> gr, <code>int</code> rel)</i></dt>
+<dd><p>Сбрасывает матрицу трансформации. Эквивалентно вызову <code>InPlot(0,1,0,1,rel)</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Push"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Push</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fmat_005fpush"></a><u>C function:</u> <code>void</code> <b>mgl_mat_push</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Помещает матрицу преобразования в стек. Позднее вы можете восстановить текущее состояние с помощью функции Pop(). Стек может содержать до 10 матриц.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Pop"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pop</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fmat_005fpop"></a><u>C function:</u> <code>void</code> <b>mgl_mat_pop</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Заменяет (восстанавливает) матрицу преобразования на последнюю помещенную в стек матрицу.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Export-to-file"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transformation-matrix" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Primitives-drawing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_042d_043a_0441_043f_043e_0440_0442-_0432-_0444_0430_0439_043b"></a>
+<h2 class="section">3.4 Экспорт в файл</h2>
+<a name="index-WriteFrame"></a>
+<a name="index-WritePNG"></a>
+<a name="index-WriteGIF"></a>
+<a name="index-WriteIDTF"></a>
+<a name="index-WriteSVG"></a>
+<a name="index-WriteBMP"></a>
+<a name="index-WriteEPS"></a>
+<a name="index-WriteJPEG"></a>
+<a name="index-SetSize"></a>
+<a name="index-Flush"></a>
+<a name="index-Finish"></a>
+<a name="index-ShowImage"></a>
+
+<p>Эти функции экспортируют текущую картинку (кадр) в файл. Имя файла <var>fname</var> должно иметь соответствующее расширение. Параметр <var>descr</var> дает краткое описание картинки. Пока прозрачность поддерживается только для форматов PNG, SVG и IDTF.
+</p>
+<dl>
+<dt><a name="index-WriteFrame-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteFrame</b><i> (<code>const char *</code>fname=<code>&quot;&quot;</code>, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fframe"></a><u>Функция С:</u> <code>void</code> <b>mgl_write_frame</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Экспортирует текущий кадр в файл <var>fname</var> с типом, определяемым по расширению. Параметр <var>descr</var> добавляет описание (может быть пустым). Если <var>fname</var> пустой, то используется имя &lsquo;<samp>frame####.jpg</samp>&rsquo;, где &lsquo;<samp>####</samp>&rsquo; &ndash; текущий номер кадра и имя &lsquo;<samp>frame</samp>&rsquo; определяется переменной <var>PlotId</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WritePNG-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WritePNG</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>, <code>int</code> compr=<code>&quot;&quot;</code>, <code>bool</code> alpha=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fpng"></a><u>Функция С:</u> <code>void</code> <b>mgl_write_png</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fpng_005fsolid"></a><u>Функция С:</u> <code>void</code> <b>mgl_write_png_solid</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Экспортирует текущий кадр в PNG файл. Параметры функции следующие: <var>fname</var> &ndash; имя файла, <var>descr</var> &ndash; описание файла, <var>alpha</var> &ndash; прозрачность фона.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteJPEG-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteJPEG</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fjpg"></a><u>Функция С:</u> <code>void</code> <b>mgl_write_jpg</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Экспортирует текущий кадр в JPEG файл. Параметры функции следующие: <var>fname</var> &ndash; имя файла, <var>descr</var> &ndash; описание файла. Если при компиляции MathGL не был определен флаг HAVE_JPEG, то экспорт в файл не производится.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteGIF-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteGIF</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fgif"></a><u>Функция С:</u> <code>void</code> <b>mgl_write_gif</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Экспортирует текущий кадр в GIF файл. Параметры функции следующие: <var>fname</var> &ndash; имя файла, <var>descr</var> &ndash; описание файла. Если при компиляции MathGL не был определен флаг HAVE_GIF, то экспорт в файл не производится.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteBMP-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteBMP</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fbmp"></a><u>Функция С:</u> <code>void</code> <b>mgl_write_bmp</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Экспортирует текущий кадр в BMP файл. Параметры функции следующие: <var>fname</var> &ndash; имя файла, <var>descr</var> &ndash; описание файла.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteEPS-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteEPS</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005feps"></a><u>Функция С:</u> <code>void</code> <b>mgl_write_eps</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Экспортирует текущий кадр в EPS файл, используя векторное представление графика (класс mglGraphPS). Вследствие чего не рекомендуется сохранять большие графики (поверхности, а особенно поверхности уровня) в формате EPS из-за большого размера файла. Хотя никаких внутренних ограничений на размер выходного файла нет. Для них лучше использовать растровый формат (например, PNG или JPEG). Параметры функции следующие: <var>fname</var> &ndash; имя файла, <var>descr</var> &ndash; описание файла. Если имя файла оканчивается на &lsquo;<samp>z</samp>&rsquo; (например, &lsquo;<samp>fname.eps.gz</samp>&rsquo;), то файл автоматически архивируется в формате gzip.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteSVG-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteSVG</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fsvg"></a><u>Функция С:</u> <code>void</code> <b>mgl_write_svg</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Экспортирует текущий кадр в SVG файл, используя векторное представление графика (класс mglGraphPS). Вследствие чего не рекомендуется сохранять большие графики (поверхности, а особенно поверхности уровня) в формате SVG из-за большого размера файла. Хотя никаких внутренних ограничений на размер выходного файла нет. Для них лучше использовать растровый формат (например, PNG или JPEG). Параметры функции следующие: <var>fname</var> &ndash; имя файла, <var>descr</var> &ndash; описание файла. Если имя файла оканчивается на &lsquo;<samp>z</samp>&rsquo; (например, &lsquo;<samp>fname.svgz</samp>&rsquo;), то файл автоматически архивируется в формате gzip.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteIDTF-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteIDTF</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fidtf"></a><u>Функция С:</u> <code>void</code> <b>mgl_write_idtf</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Экспортирует текущий кадр в IDTF файл, используя векторное представление графика (класс mglGraphIDTF). Параметры функции следующие: <var>fname</var> &ndash; имя файла, <var>descr</var> &ndash; описание файла.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ShowImage-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ShowImage</b><i> (<code>const char *</code>viewer=<code>&quot;kuickshow&quot;</code>, <code>bool</code> nowait=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fshow_005fimage"></a><u>Функция С:</u> <code>void</code> <b>mgl_show_image</b><i> (<code>const char *</code>viewer, <code>int</code> nowait)</i></dt>
+<dd><p>Отображает текущий кадр используя внешнюю программу просмотра <var>viewer</var>. Функция сохраняет картинку во временный файл и вызывает <var>viewer</var> для его отображения. Если <var>nowait</var>=<code>true</code>, то функция возвращает управление немедленно &ndash; не ждет пока окно просмотра будет закрыто.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetSize-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetSize</b><i> (<code>int</code> width, <code>int</code> height)</i></dt>
+<dt><a name="index-mgl_005fset_005fsize"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_size</b><i> (<code>HMGL</code> gr, <code>int</code> width, <code>int</code> height)</i></dt>
+<dd><p>Изменяет размер картинки в пикселях. Функция должна вызываться <strong>перед</strong> любыми функциями построения потому что полностью очищает содержимое рисунка.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Flush-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flush</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fflush"></a><u>Функция С:</u> <code>void</code> <b>mgl_flush</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Завершает рисование текущих графических команд, подготавливает кадр к экспорту в файл и служит для разделения объектов в mglGraphIDTF. Однако обычно данная функция вызывается внутри библиотеки.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Finish-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Finish</b><i> ()</i></dt>
+<dd><p>Завершает рисование и готовит растровое изображение.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Primitives-drawing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Export-to-file" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0420_0438_0441_043e_0432_0430_043d_0438e-_043f_0440_0438_043c_0438_0442_0438_0432_043e_0432-1"></a>
+<h2 class="section">3.5 Рисование примитивов</h2>
+<a name="index-Ball"></a>
+<a name="index-Clf"></a>
+<a name="index-Line"></a>
+<a name="index-Curve"></a>
+<a name="index-Glyph"></a>
+<a name="index-Mark"></a>
+<a name="index-Error"></a>
+<a name="index-Face"></a>
+<a name="index-FaceX"></a>
+<a name="index-FaceY"></a>
+<a name="index-FaceZ"></a>
+<a name="index-Cone"></a>
+<a name="index-Drop"></a>
+<a name="index-Sphere"></a>
+
+<p>Эти функции рисуют рисуют простые объекты типа линий, точек, сфер, капель, конусов, и т.д.
+</p>
+<dl>
+<dt><a name="index-Clf-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Clf</b><i> (<code>mglColor</code> Back=<code>WC</code>)</i></dt>
+<dt><a name="index-mgl_005fclf"></a><u>Функция С:</u> <code>void</code> <b>mgl_clf</b><i> (<code>HMGL</code> gr)</i></dt>
+<dt><a name="index-mgl_005fclf_005frgb"></a><u>Функция С:</u> <code>void</code> <b>mgl_clf_rgb</b><i> (<code>HMGL</code> gr, <code>float</code> r, <code>float</code> g, <code>float</code> b)</i></dt>
+<dd><p>Очищает рисунок и заполняет его цветом <var>Back</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Ball-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Ball</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>mglColor</code> col=<code>RC</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-Ball-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Ball</b><i> (<code>mglPoint</code> p, <code>char</code> col=<code>'r'</code>)</i></dt>
+<dt><a name="index-Ball-3"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Ball</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> col=<code>'r'</code>)</i></dt>
+<dt><a name="index-mgl_005fball"></a><u>Функция С:</u> <code>void</code> <b>mgl_ball</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dt><a name="index-mgl_005fball_005frgb"></a><u>Функция С:</u> <code>void</code> <b>mgl_ball_rgb</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> r, <code>float</code> g, <code>float</code> b, <code>float</code> alpha)</i></dt>
+<dt><a name="index-mgl_005fball_005fstr"></a><u>Функция С:</u> <code>void</code> <b>mgl_ball_str</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> col)</i></dt>
+<dd><p>Рисует точку (шарик) с координатами <var>p</var>={<var>x</var>, <var>y</var>, <var>z</var>} и цветом <var>col</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Error-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Error</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> e, <code>char</code> *pen=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Рисует 3d error box в точке <var>p</var> размером <var>e</var> и стилем <var>pen</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Line-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Line</b><i> (<code>mglPoint</code> p1, <code>mglPoint</code> p2, <code>char *</code>stl=<code>&quot;B&quot;</code>, <code>int</code>num=<code>2</code>)</i></dt>
+<dt><a name="index-Line-2"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Line</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>char *</code>stl=<code>&quot;B&quot;</code>, <code>int</code>num=<code>2</code>)</i></dt>
+<dt><a name="index-mgl_005fline"></a><u>Функция С:</u> <code>void</code> <b>mgl_line</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>char *</code>stl, <code>int</code>num)</i></dt>
+<dd><p>Рисует геодезическую линию (декартовых координатах &ndash; прямую) из точки <var>p1</var> в <var>p2</var> использую стиль линии <var>stl</var>. Параметр <var>num</var> определяет гладкость линии (число точек на линии). Если <var>num</var>=<code>2</code>, то рисуется прямая даже в криволинейных координатах. Наоборот, для больших значений (например, =<code>100</code>) рисуется геодезическая линия (окружность в полярных координатах, парабола в параболических и т.д.). Линия рисуется даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Curve-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Curve</b><i> (<code>mglPoint</code> p1, <code>mglPoint</code> d1, <code>mglPoint</code> p2, <code>mglPoint</code> d2, <code>const char *</code>stl=<code>&quot;B&quot;</code>, <code>int</code> num=<code>100</code>)</i></dt>
+<dt><a name="index-Curve-2"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Curve</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> dx1, <code>float</code> dy1, <code>float</code> dz1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>float</code> dx2, <code>float</code> dy2, <code>float</code> dz2, <code>const char *</code>stl=<code>&quot;B&quot;</code>, <code>int</code> num=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005fcurve"></a><u>Функция С:</u> <code>void</code> <b>mgl_curve</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> dx1, <code>float</code> dy1, <code>float</code> dz1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>float</code> dx2, <code>float</code> dy2, <code>float</code> dz2, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Рисует кривую Безье из точки <var>p1</var> в <var>p2</var> используя стиль линии <var>stl</var>. Касательные в точках пропорциональны <var>d1</var>, <var>d2</var>. Параметр <var>num</var> определяет гладкость линии (число точек на линии). Кривая рисуется даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Face-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Face</b><i> (<code>mglPoint</code> p1, <code>mglPoint</code> p2, <code>mglPoint</code> p3, <code>mglPoint</code> p4, <code>const char *</code>stl=<code>&quot;w&quot;</code>, <code>int</code> num=<code>2</code>, <code>float</code> val=<code>NAN</code>)</i></dt>
+<dd><p>Рисует заполненный четырехугольник (грань) с углами в точках <var>p1</var>, <var>p2</var>, <var>p3</var>, <var>p4</var> и цветом(-ами) <var>stl</var>. При этом цвет может быть один для всей грани, или различным если указаны все 4 цвета. В последнем случае параметр <var>val</var> (если не <code>NAN</code>) задает цвет в соответствии с цветовой схемой. Грань будет нарисована даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FaceX-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>FaceX</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wy, <code>float</code> wz, <code>const char *</code>stl=<code>&quot;w&quot;</code>, <code>float</code> dx=<code>0</code>, <code>float</code> dy=<code>0</code>)</i></dt>
+<dt><a name="index-FaceY-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>FaceY</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wx, <code>float</code> wz, <code>const char *</code>stl=<code>&quot;w&quot;</code>, <code>float</code> dx=<code>0</code>, <code>float</code> dy=<code>0</code>)</i></dt>
+<dt><a name="index-FaceZ-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>FaceZ</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wx, <code>float</code> wy, <code>const char *</code>stl=<code>&quot;w&quot;</code>, <code>float</code> dx=<code>0</code>, <code>float</code> dy=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005ffacex"></a><u>Функция С:</u> <code>void</code> <b>mgl_facex</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wy, <code>float</code> wz, <code>const char *</code>stl, <code>float</code> d1, <code>float</code> d2)</i></dt>
+<dt><a name="index-mgl_005ffacey"></a><u>Функция С:</u> <code>void</code> <b>mgl_facey</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wx, <code>float</code> wz, <code>const char *</code>stl, <code>float</code> d1, <code>float</code> d2)</i></dt>
+<dt><a name="index-mgl_005ffacez"></a><u>Функция С:</u> <code>void</code> <b>mgl_facez</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wx, <code>float</code> wy, <code>const char *</code>stl, <code>float</code> d1, <code>float</code> d2)</i></dt>
+<dd><p>Рисует закрашенный прямоугольник (грань) перпендикулярно оси [x,y,z] в точке {<var>x0</var>, <var>y0</var>, <var>z0</var>} цветом <var>stl</var> и шириной <var>wx</var>, <var>wy</var>, <var>wz</var> вдоль соответствующего направления. При этом цвет может быть один для всей грани, или различным для разных вершин если указаны все 4 цвета. Параметры <var>d1</var>!=0, <var>d2</var>!=0 задают дополнительный сдвиг последней точки (т.е. рисуют четырехугольник).Грань будет нарисована даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Sphere-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Sphere</b><i> (<code>mglPoint</code> p, <code>float</code> r, <code>const char *</code>stl=<code>&quot;r&quot;</code>)</i></dt>
+<dt><a name="index-Sphere-2"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Sphere</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> r, <code>const char *</code>stl=<code>&quot;r&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsphere"></a><u>Функция С:</u> <code>void</code> <b>mgl_sphere</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> r, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует сферу радиуса <var>r</var> с центром в точке <var>p</var>={<var>x</var>, <var>y</var>, <var>z</var>} цветом <var>stl</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Drop-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Drop</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> q, <code>float</code> r, <code>mglColor</code> col, <code>float</code> shift=<code>1</code>, <code>float</code> ap=<code>1</code>)</i></dt>
+<dt><a name="index-Drop-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Drop</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> q, <code>float</code> r, <code>const char *</code>col=&quot;r&quot;, <code>float</code> shift=<code>1</code>, <code>float</code> ap=<code>1</code>)</i></dt>
+<dt><a name="index-Drop-3"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Drop</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>float</code> r, <code>const char *</code>col=&quot;r&quot;, <code>float</code> shift=<code>1</code>, <code>float</code> ap=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdrop"></a><u>Функция С:</u> <code>void</code> <b>mgl_drop</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>float</code> r, <code>const char *</code>col, <code>float</code> shift, <code>float</code> ap)</i></dt>
+<dd><p>Рисует каплю радиуса <var>r</var> в точке <var>p</var> вытянутую вдоль направления <var>q</var> цветом <var>col</var>. Параметр <var>shift</var> определяет степень вытянутости: &lsquo;<samp>0</samp>&rsquo; &ndash; сфера, &lsquo;<samp>1</samp>&rsquo; &ndash; классическая капля. Параметр <var>ap</var> определяет относительную ширину капли (аналог &quot;эллиптичности&quot; для сферы). См. раздел <a href="mathgl_ru_9.html#Drops-sample">Drops &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cone-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Cone</b><i> (<code>mglPoint</code> p1, <code>mglPoint</code> p2, <code>float</code> r1, <code>float</code> r2=<code>-1</code>, <code>const char *</code>stl=<code>&quot;B&quot;</code>, <code>bool</code> edge=<code>false</code>)</i></dt>
+<dt><a name="index-Cone-2"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Cone</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>float</code> r1, <code>float</code> r2=<code>-1</code>, <code>const char *</code>stl=<code>&quot;B&quot;</code>, <code>bool</code> edge=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fcone"></a><u>Функция С:</u> <code>void</code> <b>mgl_cone</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>float</code> r1, <code>float</code> r2, <code>const char *</code>stl, <code>int</code> draw_edge)</i></dt>
+<dd><p>Рисует трубу (или усеченный конус если <var>edge</var>=<code>false</code>) между точками <var>p1</var>, <var>p2</var> с радиусами на концах <var>r1</var>, <var>r2</var>. Если <var>r2</var>&lt;0, то полагается <var>r2</var>=<var>r1</var>. Цвет конуса задается строкой <var>stl</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Mark-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Mark</b><i> (<code>mglPoint</code> p, <code>char</code> mark=<code>'.'</code>)</i></dt>
+<dt><a name="index-Mark-2"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Mark</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> mark=<code>'.'</code>)</i></dt>
+<dt><a name="index-mgl_005fmark"></a><u>Функция С:</u> <code>void</code> <b>mgl_mark</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> mark)</i></dt>
+<dd><p>Рисует маркер типа <var>mark</var> в точке <var>p</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Glyph-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Glyph</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> f, <code>int</code> nt, <code>const short *</code>trig, <code>int</code> nl, <code>const short *</code>line)</i></dt>
+<dd><p>Рисует набор треугольников (или линий если <var>trig</var>=<code>NULL</code>) для буквы расположенной в точке {<var>x</var>, <var>y</var>}. Значения массивов будут нормированы на множитель <var>f</var>. Обычно эта функция используется внутри библиотеки.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Text-printing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Primitives-drawing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-Colorbar" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0412_044b_0432_043e_0434-_0442e_043a_0441_0442_0430"></a>
+<h2 class="section">3.6 Вывод текста</h2>
+<a name="index-Puts"></a>
+<a name="index-Putsw"></a>
+<a name="index-Text"></a>
+<a name="index-Title"></a>
+
+<p>Функции для вывода текста позволяют вывести строку текста в произвольном месте рисунка, в произвольном направлении и вдоль произвольной кривой. Для низкоуровневого вывода и разбора ТеХ-их выражений используется класс mglFont (see section <a href="mathgl_ru_7.html#mglFont-class">mglFont class</a>). Он позволяет использовать произвольное начертание шрифта и многие ТеХ-ие команды (детальнее see section <a href="mathgl_ru_1.html#Font-styles">Стиль текста</a>). Все функции вывода текста имеют варианты для 8-bit строк (<code>char *</code>) и для Unicode строк (<code>wchar_t *</code>). В первом случае используется конверсия из текущей локали, т.е. иногда вам требуется явно указать локаль с помощью функции <code>setlocale()</code>. Аргумент <var>size</var> определяет размер текста: размер шрифта если положителен или относительный размер (=-<var>size</var>*<var>FontSize</var>) если отрицателен. Начертание шрифта (STIX, arial, courier, times и др) можно изменить с помощью функций SetFont(), GetFont(). See section <a href="#Font-settings">Шрифты</a>.
+</p>
+<p>Параметры шрифта задаются строкой, которая может содержать символы стиля (&lsquo;<samp>rbiwou</samp>&rsquo;) и/или выравнивания (&lsquo;<samp>LRC</samp>&rsquo;). Также строка может содержать символы цвета &lsquo;<samp>wkrgbcymhRGBCYMHW</samp>&rsquo; (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>) после символа &lsquo;<samp>:</samp>&rsquo;. Стили шрифта: &lsquo;<samp>r</samp>&rsquo; &ndash; прямой, &lsquo;<samp>i</samp>&rsquo; &ndash; курсив, &lsquo;<samp>b</samp>&rsquo; &ndash; жирный, &lsquo;<samp>w</samp>&rsquo; &ndash; контурный, &lsquo;<samp>o</samp>&rsquo; &ndash; надчеркнутый, &lsquo;<samp>u</samp>&rsquo; &ndash; подчеркнутый. По умолчанию используется прямой шрифт. Типы выравнивания: &lsquo;<samp>L</samp>&rsquo; &ndash; по левому краю (по умолчанию), &lsquo;<samp>C</samp>&rsquo; &ndash; по центру, &lsquo;<samp>R</samp>&rsquo; &ndash; по правому краю. Например, строка &lsquo;<samp>iC:b</samp>&rsquo; соответствует курсиву синего цвета с выравниванием по центру.
+</p>
+<p>Если строка содержит символы &lsquo;<samp>aA</samp>&rsquo;, то текст выводится в абсолютных координатах (полагаются в диапазоне [0,1]). При этом используются координаты относительно рисунка (если указано &lsquo;<samp>A</samp>&rsquo;) или относительно последнего SubPlot()/InPlot() (если указано &lsquo;<samp>a</samp>&rsquo;).
+</p>
+<dl>
+<dt><a name="index-Puts-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Puts</b><i> (<code>mglPoint</code> p, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>, <code>char</code> dir=<code>0</code>, <code>float</code> shift=<code>0</code>)</i></dt>
+<dt><a name="index-Putsw-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Putsw</b><i> (<code>mglPoint</code> p, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>, <code>char</code> dir=<code>0</code>, <code>float</code> shift=<code>0</code>)</i></dt>
+<dt><a name="index-Puts-2"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Puts</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>, <code>char</code> dir=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fputs"></a><u>Функция С:</u> <code>void</code> <b>mgl_puts</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const char *</code>text)</i></dt>
+<dt><a name="index-mgl_005fputsw"></a><u>Функция С:</u> <code>void</code> <b>mgl_putsw</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const wchar_t *</code>text)</i></dt>
+<dt><a name="index-mgl_005fputs_005fext"></a><u>Функция С:</u> <code>void</code> <b>mgl_puts_ext</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const char *</code>text, <code>const char *</code>font, <code>float</code> size, <code>char</code> dir)</i></dt>
+<dt><a name="index-mgl_005fputsw_005fext"></a><u>Функция С:</u> <code>void</code> <b>mgl_putsw_ext</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const wchar_t *</code>text, <code>const char *</code>font, <code>float</code> size, <code>char</code> dir)</i></dt>
+<dd><p>Выводит строку <var>text</var> от точки <var>p</var> шрифтом определяемым строкой <var>how</var>. Параметр <var>dir</var> указывает дополнительное выравнивание строки: &lsquo;<samp>x</samp>&rsquo; &ndash; как метку вдоль оси x, &lsquo;<samp>y</samp>&rsquo; &ndash; как метку вдоль оси y, &lsquo;<samp>z</samp>&rsquo; &ndash; как метку вдоль оси z, &lsquo;<samp>i</samp>&rsquo; &ndash; как метку вдоль оси x с инвертированием, &lsquo;<samp>t</samp>&rsquo; &ndash; без выравнивания (по умолчанию), &lsquo;<samp>n</samp>&rsquo; &ndash; выровнять в плоскости x-y.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Puts-3"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>float</code> <b>Puts</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> l, <code>const char *</code>text, <code>char</code>where=<code>'t'</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-Putsw-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>float</code> <b>Putsw</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> l, <code>const wchar_t *</code>text, <code>char</code>where=<code>'t'</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-Puts-4"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Puts</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>const char *</code>text, <code>char</code>where=<code>'t'</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fputs_005fdir"></a><u>Функция С:</u> <code>void</code> <b>mgl_puts_dir</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>const char *</code>text, <code>float</code> size)</i></dt>
+<dt><a name="index-mgl_005fputsw_005fdir"></a><u>Функция С:</u> <code>void</code> <b>mgl_putsw_dir</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>const wchar_t *</code>text, <code>float</code> size)</i></dt>
+<dd><p>Выводит строку <var>text</var> от точки <var>p</var> вдоль направления <var>l</var>. Параметр <var>where</var> указывает выводить текст над линией (&lsquo;<samp>T</samp>&rsquo;) или под ней (&lsquo;<samp>t</samp>&rsquo;). Функция возвращает ширину строки.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Printf"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Printf</b><i> (<code>mglPoint</code> p, <code>const char *</code>arg, ...)</i></dt>
+<dd><p>Выводит форматированную строку от точки <var>p</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Label"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Label</b><i> (<code>float</code> x, <code>float</code> y, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-Labelw"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Labelw</b><i> (<code>float</code> x, <code>float</code> y, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005flabel_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_label_xy</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>const char *</code>text, <code>const char *</code>font, <code>float</code> size)</i></dt>
+<dt><a name="index-mgl_005flabelw_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_labelw_xy</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>const wchar_t *</code>text, <code>const char *</code>font, <code>float</code> size)</i></dt>
+<dd><p>Выводит строку <var>text</var> в произвольном месте экрана от точки {<var>x</var>, <var>y</var>} шрифтом указанным <var>font</var>. Координаты <code>x, y</code> считаются лежащими в диапазоне [0,1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Title-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Title</b><i> (<code>const char *</code>text, <code>const char *</code>font=<code>0</code>, <code>float</code> size=<code>-2</code>)</i></dt>
+<dt><a name="index-Title-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Title</b><i> (<code>const wchar_t *</code>text, <code>const char *</code>font=<code>0</code>, <code>float</code> size=<code>-2</code>)</i></dt>
+<dt><a name="index-Title-3"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Title</b><i> (<code>const char *</code>text, <code>const char *</code>font=<code>0</code>, <code>int</code> size=<code>-2</code>)</i></dt>
+<dt><a name="index-mgl_005ftitle"></a><u>Функция С:</u> <code>void</code> <b>mgl_title</b><i> (<code>HMGL</code> gr, <code>const char *</code>text, <code>const char *</code>font, <code>int</code> size)</i></dt>
+<dt><a name="index-mgl_005ftitlew"></a><u>Функция С:</u> <code>void</code> <b>mgl_titlew</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>text, <code>const char *</code>font, <code>int</code> size)</i></dt>
+<dd><p>Выводит строку <var>text</var> как заголовок рисунка (по верху рисунка). Может использоваться из любого места (даже изнутри SubPlot()).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Text-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>y, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-4"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-5"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-6"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005ftext_005fy"></a><u>Функция С:</u> <code>void</code> <b>mgl_text_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>text, <code>const char *</code>font, float size)</i></dt>
+<dt><a name="index-mgl_005ftext_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_text_xy</b><i> (<code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>text, <code>const char *</code>font, float size)</i></dt>
+<dt><a name="index-mgl_005ftext_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_text_xyz</b><i> (<code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>text, <code>const char *</code>font, float size)</i></dt>
+<dd><p>Выводит строку <var>text</var> вдоль кривой {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} шрифтом <var>font</var>. Строка <var>font</var> может содержать символы: &lsquo;<samp>t</samp>&rsquo; для вывода текста под кривой (по умолчанию), или &lsquo;<samp>T</samp>&rsquo; для вывода текста над кривой. Размеры по 1-ой размерности должны быть одинаковы для всех массивов <code>x.nx=y.nx=z.nx</code>. Если массив <var>x</var> не указан, то используется &quot;автоматический&quot; массив со значениями в диапазоне [<var>Min</var>.x, <var>Max</var>.x] (see section <a href="#Ranges-_0028bounding-box_0029">Масштаб осей координат</a>). Если массив <var>z</var> не указан, то используется <var>z</var>[i] = <var>zVal</var>. См. раздел <a href="mathgl_ru_9.html#Text-sample">Text &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axis-and-Colorbar"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_0438-_0438-Colorbar"></a>
+<h2 class="section">3.7 Оси и Colorbar</h2>
+<a name="index-Axis-2"></a>
+<a name="index-Box"></a>
+<a name="index-Grid"></a>
+<a name="index-Colorbar"></a>
+<a name="index-Label-1"></a>
+
+<p>Эти функции рисуют объекты для &quot;измерения&quot; типа осей координат, цветовой таблицы (colorbar), сетку по осям, обрамляющий параллелепипед и подписи по осям координат. См. также see section <a href="#Axis-settings">Настройки осей координат</a>.
+</p>
+<dl>
+<dt><a name="index-Axis-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axis</b><i> (<code>const char *</code>dir=<code>&quot;xyz&quot;</code>, <code>bool</code> adjust=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005faxis"></a><u>Функция С:</u> <code>void</code> <b>mgl_axis</b><i> (<code>HMGL</code> gr, <code>const char *</code>dir)</i></dt>
+<dd><p>Рисует оси координат и метки на них (see section <a href="#Axis-settings">Настройки осей координат</a>) в направлениях, указанных строкой <var>dir</var>. Если строка содержит символ &lsquo;<samp>_</samp>&rsquo;, то подписи меток отображаться не будут. Шрифт подписей определяется функцией <code>SetFontDef()</code> (see section <a href="#Font-settings">Шрифты</a>). Метки будут &quot;подогнаны&quot; если <var>adjust</var>=<code>true</code> (с помощью вызова функции <code>AdjustTicks()</code>). 
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Colorbar-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Colorbar</b><i> (<code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> pos=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcolorbar"></a><u>Функция С:</u> <code>void</code> <b>mgl_colorbar</b><i> (<code>HMGL</code> gr, <code>const char *</code>sch, <code>int</code> pos)</i></dt>
+<dd><p>Рисует полосу соответствия цвета и числовых значений (colorbar) для цветовой схемы <var>sch</var> (используется текущая для <code>sch=&quot;&quot;</code>) с краю от графика. Параметр <var>pos</var> задает местоположение: &lsquo;<samp>0</samp>&rsquo; - справа (по умолчанию), &lsquo;<samp>1</samp>&rsquo; - слева, &lsquo;<samp>2</samp>&rsquo; - сверху, &lsquo;<samp>3</samp>&rsquo; - снизу. Если строка <var>sch</var> содержит &lsquo;<samp>&lt;&gt;^_</samp>&rsquo;, то параметр <var>pos</var> определяется как: <code>pos=0</code> для &lsquo;<samp>&gt;</samp>&rsquo; (справа), <code>pos=1</code> для &lsquo;<samp>&lt;</samp>&rsquo; (слева), <code>pos=2</code> для &lsquo;<samp>^</samp>&rsquo; (сверху), <code>pos=3</code> для &lsquo;<samp>_</samp>&rsquo; (снизу). Если строка содержит &lsquo;<samp>A</samp>&rsquo;, то используются абсолютные координаты (относительно рисунка). См. раздел <a href="mathgl_ru_9.html#Dens-sample">Dens &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Colorbar-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Colorbar</b><i> (<code>const mglData &amp;</code>v, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> where=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcolorbar_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_colorbar_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const char *</code>sch, <code>int</code> where)</i></dt>
+<dd><p>Аналогично предыдущему, но для цветовой схемы без сглаживания с заданными значениями <var>v</var>. См. раздел <a href="mathgl_ru_9.html#ContD-sample">ContD &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Colorbar-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Colorbar</b><i> (<code>const char *</code>sch, <code>int</code> where, <code>float</code> x, <code>float</code> y, <code>float</code> w, <code>float</code> h)</i></dt>
+<dt><a name="index-Colorbar-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Colorbar</b><i> (<code>int</code> where, <code>float</code> x, <code>float</code> y, <code>float</code> w, <code>float</code> h)</i></dt>
+<dt><a name="index-mgl_005fcolorbar_005fext"></a><u>Функция С:</u> <code>void</code> <b>mgl_colorbar_ext</b><i> (<code>HMGL</code> gr, <code>const char *</code>sch, <code>int</code> where, <code>float</code> x, <code>float</code> y, <code>float</code> w, <code>float</code> h)</i></dt>
+<dd><p>Аналогично первому, но в произвольном месте графика {<var>x</var>, <var>y</var>} (полагаются в диапазоне [0,1]). Параметры <var>w</var>, <var>h</var> задают относительную ширину и высоту colorbar.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Colorbar-5"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Colorbar</b><i> (<code>const mglData &amp;</code>v, <code>const char *</code>sch, <code>int</code> where, <code>float</code> x, <code>float</code> y, <code>float</code> w, <code>float</code> h)</i></dt>
+<dd><p>Аналогично предыдущему, но для цветовой схемы без сглаживания с заданными значениями <var>v</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Grid-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid</b><i> (<code>const char *</code>dir=<code>&quot;xyz&quot;</code>, <code>const char *</code>pen=<code>&quot;B-&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005faxis_005fgrid"></a><u>Функция С:</u> <code>void</code> <b>mgl_axis_grid</b><i> (<code>HMGL</code> gr, <code>const char *</code>dir, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует линии сетки в направлениях перпендикулярным <var>dir</var>. Шаг сетки такой же как у меток осей координат. Стиль линий задается параметром <var>pen</var> (по умолчанию &ndash; сплошная темно синяя линия &lsquo;<samp>B-</samp>&rsquo;).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Box-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Box</b><i> (<code>const char *</code>col=<code>&quot;&quot;</code>, <code>bool</code> ticks=<code>true</code>)</i></dt>
+<dt><a name="index-Box-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Box</b><i> (<code>mglColor</code> col, <code>bool</code> ticks=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fbox"></a><u>Функция С:</u> <code>void</code> <b>mgl_box</b><i> (<code>HMGL</code> gr, <code>int</code> ticks)</i></dt>
+<dt><a name="index-mgl_005fbox_005frgb"></a><u>Функция С:</u> <code>void</code> <b>mgl_box_rgb</b><i> (<code>HMGL</code> gr, <code>float</code> r, <code>float</code> g, <code>float</code> b, <code>int</code> ticks)</i></dt>
+<dt><a name="index-mgl_005fbox_005fstr"></a><u>Функция С:</u> <code>void</code> <b>mgl_box_str</b><i> (<code>HMGL</code> gr, <code>const char *</code>col, <code>int</code> ticks)</i></dt>
+<dd><p>Рисует ограничивающий параллелепипед цветом <var>col</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Label-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Label</b><i> (<code>char</code> dir, <code>const char *</code>text, <code>float</code> pos=<code>0</code>, <code>float</code> size=<code>-1.4</code>, <code>float</code> shift=<code>0</code>)</i></dt>
+<dt><a name="index-Label-3"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Label</b><i> (<code>char</code> dir, <code>const wchar_t *</code>text, <code>float</code> pos=<code>0</code>, <code>float</code> size=<code>-1.4</code>, <code>float</code> shift=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005flabel"></a><u>Функция С:</u> <code>void</code> <b>mgl_label</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>const char *</code>text)</i></dt>
+<dt><a name="index-mgl_005flabel_005fext"></a><u>Функция С:</u> <code>void</code> <b>mgl_label_ext</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>const char *</code>text, <code>float</code> pos, <code>float</code> size, <code>float</code> shift)</i></dt>
+<dt><a name="index-mgl_005flabelw_005fext"></a><u>Функция С:</u> <code>void</code> <b>mgl_labelw_ext</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>const wchar_t *</code>text, <code>float</code> pos, <code>float</code> size, <code>float</code> shift)</i></dt>
+<dd><p>Выводит подпись <var>text</var> для оси <var>dir</var>=&lsquo;<samp>x</samp>&rsquo;,&lsquo;<samp>y</samp>&rsquo;,&lsquo;<samp>z</samp>&rsquo;,&lsquo;<samp>t</samp>&rsquo; (где &lsquo;<samp>t</samp>&rsquo; &ndash; &ldquo;тернарная&rdquo; ось <em>t=1-x-y</em>). Параметр <var>pos</var> задает положение подписи: при <var>pos</var>=0 &ndash; по центру оси, при <var>pos</var>&gt;0 &ndash; около максимальных значений, при <var>pos</var>&lt;0 &ndash; около минимальных значений. Параметр <var>size</var> задает размер шрифта (по умолчанию в 1.4 раза больше чем у меток, see section <a href="#Font-settings">Шрифты</a>). See section <a href="#Text-printing">Вывод текста</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Legend"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-Colorbar" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041bege_043d_0434_0430"></a>
+<h2 class="section">3.8 Легенда</h2>
+<a name="index-Legend"></a>
+<a name="index-AddLegend"></a>
+<a name="index-ClearLegend"></a>
+<a name="index-SetLegendBox"></a>
+<a name="index-SetLegendMarks"></a>
+
+<p>Эти функции обеспечивают рисование легенды графика (полезно для <a href="#g_t1D-plotting">1D графики</a>). Запись в легенде состоит из двух строк: одна для стиля линии и маркеров, другая с текстом описания (с включенным разбором TeX-их команд). Можно использовать непосредственно массивы строк, или накопление во внутренние массивы с помощью функции AddLegend() с последующим отображением. Положение легенды можно задать автоматически или вручную. Параметры <var>font</var> и <var>size</var> задают стиль и размер шрифта (see section <a href="#Font-settings">Шрифты</a>). Параметр <var>llen</var> задает относительную ширину примера линии. Ели стиль линии пустой, то соответствующий текст печатается без отступа. Если строка <var>font</var> содержит символ &lsquo;<samp>A</samp>&rsquo;, то координаты легенды считаются относительно картинки (а не текущего subplot). См. раздел <a href="mathgl_ru_9.html#Legend-sample">Legend &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Legend-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Legend</b><i> (<code>int</code> where=<code>0x3</code>, <code>const char *</code>font=<code>&quot;rL&quot;</code>, <code>float</code> size=<code>-0.8</code>, <code>float</code> llen=<code>0.1</code>)</i></dt>
+<dt><a name="index-mgl_005flegend"></a><u>Функция С:</u> <code>void</code> <b>mgl_legend</b><i> (<code>HMGL</code> gr, <code>int</code> where, <code>const char *</code>font, <code>float</code> size, <code>float</code> llen)</i></dt>
+<dd><p>Рисует легенду из накопленных записей шрифтом <var>font</var> размером <var>size</var>. Параметр <var>where</var> задает положение легенды: &lsquo;<samp>0</samp>&rsquo; &ndash; в нижнем левом углу, &lsquo;<samp>1</samp>&rsquo; &ndash; нижнем правом углу, &lsquo;<samp>2</samp>&rsquo; &ndash; верхнем левом углу, &lsquo;<samp>3</samp>&rsquo; &ndash; верхнем правом углу (по умолчанию).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Legend-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Legend</b><i> (<code>int</code> n, <code>wchar_t **</code>text, <code>char **</code>style, <code>int</code> where=<code>0x3</code>, <code>const char *</code>font=<code>&quot;rL&quot;</code>, <code>float</code> size=<code>-0.8</code>, <code>float</code> llen=<code>0.1</code>)</i></dt>
+<dd><p>Рисует легенду из <var>n</var> записей шрифтом <var>font</var> размером <var>size</var>. Массив <var>text</var> задает описание кривых со стилем <var>style</var> (включая маркеры). Параметр <var>where</var> задает положение легенды: &lsquo;<samp>0</samp>&rsquo; &ndash; в нижнем левом углу, &lsquo;<samp>1</samp>&rsquo; &ndash; нижнем правом углу, &lsquo;<samp>2</samp>&rsquo; &ndash; верхнем левом углу, &lsquo;<samp>3</samp>&rsquo; &ndash; верхнем правом углу (по умолчанию).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Legend-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Legend</b><i> (<code>float</code> x, <code>float</code> y, <code>const char *</code>font=<code>&quot;rL&quot;</code>, <code>float</code> size=<code>-0.8</code>, <code>float</code> llen=<code>0.1</code>)</i></dt>
+<dt><a name="index-mgl_005flegend_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_legend_xy</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>const char *</code>font, <code>float</code> size, <code>float</code> llen)</i></dt>
+<dd><p>Рисует легенду из накопленных записей шрифтом <var>font</var> размером <var>size</var>. Положение легенды задается параметрами <var>x</var>, <var>y</var>, которые полагаются нормированными в диапазоне [0,1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Legend-4"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Legend</b><i> (<code>int</code> n, <code>wchar_t **</code>text, <code>char **</code>style, <code>float</code> x, <code>float</code> y, <code>const char *</code>font=<code>&quot;rL&quot;</code>, <code>float</code> size=<code>-0.8</code>, <code>float</code> llen=<code>0.1</code>)</i></dt>
+<dd><p>Рисует легенду из <var>n</var> записей шрифтом <var>font</var> размером <var>size</var>. Массив <var>text</var> задает описание кривых со стилем <var>style</var> (включая маркеры). Положение легенды задается параметрами <var>x</var>, <var>y</var>, которые полагаются нормированными в диапазоне [0,1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AddLegend-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>AddLegend</b><i> (<code>const char *</code>text, <code>const char *</code>style)</i></dt>
+<dt><a name="index-AddLegend-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>AddLegend</b><i> (<code>const wchar_t *</code>text, <code>const char *</code>style)</i></dt>
+<dt><a name="index-mgl_005fadd_005flegend"></a><u>Функция С:</u> <code>void</code> <b>mgl_add_legend</b><i> (<code>HMGL</code> gr, <code>const char *</code>text, <code>const char *</code>style)</i></dt>
+<dt><a name="index-mgl_005fadd_005flegendw"></a><u>Функция С:</u> <code>void</code> <b>mgl_add_legendw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>text, <code>const char *</code>style)</i></dt>
+<dd><p>Добавляет описание <var>text</var> кривой со стилем <var>style</var> (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>) во внутренний массив записей легенды. Максимальное число записей 100.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ClearLegend-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ClearLegend</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fclear_005flegend"></a><u>Функция С:</u> <code>void</code> <b>mgl_clear_legend</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Очищает внутренний массив записей легенды.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetLegendBox-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetLegendBox</b><i> (<code>bool</code> enable)</i></dt>
+<dt><a name="index-mgl_005fset_005flegend_005fbox"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_legend_box</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Включает/выключает рисование прямоугольника вокруг легенды. По умолчанию (=<code>true</code>) прямоугольник рисуется.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetLegendMarks-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetLegendMarks</b><i> (<code>int</code> num)</i></dt>
+<dt><a name="index-mgl_005fset_005flegend_005fmarks"></a><u>C function:</u> <code>void</code> <b>mgl_set_legend_marks</b><i> (<code>HMGL</code> gr, <code>int</code> num)</i></dt>
+<dd><p>Задает число маркеров в легенде. По умолчанию используется 1 маркер.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t1D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">3.9 1D графики</h2>
+
+<p>Эти функции строят графики для одномерных (1D) массивов. Одномерными считаются массивы, зависящие только от одного параметра (индекса) подобно кривой в параметрической форме {x(i),y(i),z(i)}, i=1...n. Есть 5 основных типов 1D графиков: линия (Plot), линия с заполнением (Area), ступеньки (Step), прямоугольники (Bars, Barh) и вертикальные линии (Stem). Все эти типы графиков имеют похожий интерфейс. Есть версии для рисования в пространстве и на плоскости. В последнем случае имеется возможность использования только одного массива. Стиль линии и маркеров указывается строковой переменной. Если она равна &quot;&quot;, то используется сплошная линия с цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). Кроме того, есть еще несколько типов графиков для одномерных массивов, имеющих другой интерфейс и вид: поверхность вращения кривой (Torus), диаграмма (Chart), размер ошибки (Error), маркеры переменного размера (Mark), трубками (Tube) и т.д. See section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>. См. раздел <a href="mathgl_ru_9.html#g_t1D-plot-sample">Пример графиков 1D данных</a>, для примеров кода и графика.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plot">3.9.1 Plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Radar">3.9.2 Radar</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tens">3.9.3 Tens</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area">3.9.4 Area</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region">3.9.5 Region</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stem">3.9.6 Stem</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars">3.9.7 Bars</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Barh">3.9.8 Barh</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Chart">3.9.9 Chart</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Step">3.9.10 Step</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Torus">3.9.11 Torus</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tube">3.9.12 Tube</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mark">3.9.13 Mark</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TextMark">3.9.14 TextMark</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Error">3.9.15 Error</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#BoxPlot">3.9.16 BoxPlot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Radar" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plot-1"></a>
+<h3 class="subsection">3.9.1 Plot</h3>
+<a name="index-Plot"></a>
+
+<p>Функции рисуют ломанную линию по точкам. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) рисуется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). См. также <a href="#Area">Area</a>, <a href="#Step">Step</a>, <a href="#Stem">Stem</a>, <a href="#Tube">Tube</a>, <a href="#Mark">Mark</a>, <a href="#Error">Error</a>, <a href="#Belt">Belt</a>, <a href="#Tens">Tens</a>. См. раздел <a href="mathgl_ru_9.html#Plot-sample">Plot &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Plot-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fplot_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_plot_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует в пространстве линию между точками {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Plot-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fplot_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_plot_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует линию между точками {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Plot-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fplot"></a><u>Функция С:</u> <code>void</code> <b>mgl_plot</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует линию между точками {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>), где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Radar"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tens" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Radar-1"></a>
+<h3 class="subsection">3.9.2 Radar</h3>
+<a name="index-Radar"></a>
+
+<dl>
+<dt><a name="index-Radar-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Radar</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>pen=<code>&quot;&quot;</code>, <code>float</code> r=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fradar"></a><u>Функция С:</u> <code>void</code> <b>mgl_radar</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>pen, <code>float</code> r)</i></dt>
+<dd><p>Функции рисуют radar chart, представляющий собой ломанную с вершинами на радиальных линиях (типа ломанной в полярных координатах). График рисуется для каждой строки если один из массивов матрица. Параметр <var>r</var> задает дополнительный сдвиг данных (т.е. используется <var>a</var>+<var>r</var> вместо <var>a</var>). Если <code>r&lt;0</code>, то <code>r=max(0, -min(a)</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). Если <var>pen</var> содержит символ &lsquo;<samp>#</samp>&rsquo;, то также рисуется &quot;сетка&quot; (радиальные линии и круг для <var>r</var>). См. также <a href="#Plot">Plot</a>. См. раздел <a href="mathgl_ru_9.html#Radar-sample">Radar &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Tens"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Radar" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tens-1"></a>
+<h3 class="subsection">3.9.3 Tens</h3>
+<a name="index-Tens"></a>
+
+<p>Функции рисуют ломанную линию по точкам с цветом, определяемым массивом <var>c</var> (типа графика натяжений). График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx=c.nx</code>. Строка <var>pen</var> задает цветовую схему (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>) и стиль и/или толщину линии (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущей цветовой схемой. См. также <a href="#Plot">Plot</a>, <a href="#Mesh">Mesh</a>, <a href="#Fall">Fall</a>. См. раздел <a href="mathgl_ru_9.html#Tens-sample">Tens &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Tens-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tens</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftens_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_tens_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует в пространстве линию между точками {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} с цветом <var>c</var>[i].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tens-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tens</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>c, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftens_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_tens_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> c, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует линию между точками {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>) с цветом <var>c</var>[i].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tens-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tens</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>c, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftens"></a><u>Функция С:</u> <code>void</code> <b>mgl_tens</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> c, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует линию между точками {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>) с цветом <var>c</var>[i], где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Area"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tens" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-1"></a>
+<h3 class="subsection">3.9.4 Area</h3>
+<a name="index-Area"></a>
+
+<p>Функции рисуют ломанную линию между точками и закрашивает ее вниз до плоскости осей координат. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). Также можно использовать градиентное закрашивание если число указанных цветов равно удвоенному числу кривых для построения. Если строка содержит символ &lsquo;<samp>a</samp>&rsquo;, то линии рисуются одна поверх другой (с суммированием) &ndash; того же эффекта можно достичь вызовом <code>y.CumSum(&quot;y&quot;);</code> перед построением графика. См. также <a href="#Plot">Plot</a>, <a href="#Bars">Bars</a>, <a href="#Stem">Stem</a>. См. раздел <a href="mathgl_ru_9.html#Area-sample">Area &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Area-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Area</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005farea_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_area_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует в пространстве линию между точками {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} и закрашивает ее вниз до плоскости <var>z</var> = Org.z.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Area-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Area</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005farea_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_area_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует линию между точками {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>) и закрашивает ее до прямой <var>y</var> = Org.y.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Area-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Area</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>, <code>bool</code> sum=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005farea"></a><u>Функция С:</u> <code>void</code> <b>mgl_area</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dt><a name="index-mgl_005farea_005fs"></a><u>Функция С:</u> <code>void</code> <b>mgl_area_s</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует линию между точками {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>) и закрашивает ее до прямой <var>y</var> = Org.y, где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x]. Параметр <var>sum</var> задает режим рисования линий одна поверх другой (с сумированием). Замечу, что того же эффекта можно достичь вызовом <code>y.CumSum(&quot;y&quot;);</code> перед построением графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Region"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stem" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-1"></a>
+<h3 class="subsection">3.9.5 Region</h3>
+<a name="index-Region"></a>
+
+<p>Функции закрашивают область между 2 кривыми. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y1.nx=y2.nx</code> и размеры массивов <var>y1</var>, <var>y2</var> должны быть также одинаковы. Строка <var>pen</var> задает цвет (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется текущий цвет из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). Также можно использовать градиентное закрашивание если число указанных цветов равно удвоенному числу кривых для построения. См. также <a href="#Area">Area</a>, <a href="#Bars">Bars</a>, <a href="#Stem">Stem</a>. См. раздел <a href="mathgl_ru_9.html#Region-sample">Region &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Region-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Region</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y1, <code>const mglData &amp;</code>y2, <code>const char *</code>pen=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>bool</code> inside=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fregion_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_region_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y1, <code>const HMDT</code> y2, <code>const char *</code>pen, <code>int</code> inside)</i></dt>
+<dd><p>Закрашивает область между кривыми {<var>x</var>[i], <var>y1</var>[i]} и {<var>x</var>[i], <var>y2</var>[i]} при z=<var>zVal</var>. При  <code>inside=off</code> закрашивается только область y1&lt;y&lt;y2, в противном случае также будет закращена область y2&lt;y&lt;y1.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Region-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Region</b><i> (<code>const mglData &amp;</code>y1, <code>const mglData &amp;</code>y2, <code>const char *</code>pen=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>bool</code> inside=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fregion"></a><u>Функция С:</u> <code>void</code> <b>mgl_region</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y1, <code>const HMDT</code> y2, <code>const char *</code>pen, <code>int</code> inside)</i></dt>
+<dd><p>Закрашивает область между кривыми {<var>x</var>[i], <var>y1</var>[i]} и {<var>x</var>[i], <var>y2</var>[i]} при z=<var>zVal</var>, где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Stem"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stem-1"></a>
+<h3 class="subsection">3.9.6 Stem</h3>
+<a name="index-Stem"></a>
+
+<p>Функции рисуют вертикальные линии из точек до плоскости осей координат. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). См. также <a href="#Area">Area</a>, <a href="#Bars">Bars</a>, <a href="#Plot">Plot</a>, <a href="#Mark">Mark</a>. См. раздел <a href="mathgl_ru_9.html#Stem-sample">Stem &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Stem-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Stem</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstem_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_stem_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует вертикальные линии из точек {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} вниз до плоскости <var>z</var> = Org.z.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Stem-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Stem</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstem_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_stem_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует вертикальные линии из точек {<var>x</var>[i], <var>y</var>[i]} до <var>y</var> = Org.y в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Stem-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Stem</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstem"></a><u>Функция С:</u> <code>void</code> <b>mgl_stem</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует вертикальные линии из точек {<var>x</var>[i], <var>y</var>[i]} до <var>y</var> = Org.y в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>), где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Bars"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Stem" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Barh" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-1"></a>
+<h3 class="subsection">3.9.7 Bars</h3>
+<a name="index-Bars"></a>
+
+<p>Функции рисуют вертикальные полосы (прямоугольники) из точек до плоскости осей координат. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). Если строка содержит символ &lsquo;<samp>a</samp>&rsquo;, то линии рисуются одна поверх другой. Если строка содержит символ &lsquo;<samp>f</samp>&rsquo;, то рисуется график типа waterfall для определения кумулятивного эффекта последовательности положительных и отрицательных значений. Можно использовать разные цвета для положительных и отрицательных значений если число указанных цветов равно удвоенному числу кривых для построения. См. также <a href="#Barh">Barh</a>, <a href="#Area">Area</a>, <a href="#Stem">Stem</a>, <a href="#Chart">Chart</a>, <a href="#Default-sizes">Базовые размеры</a>. См. раздел <a href="mathgl_ru_9.html#Bars-sample">Bars &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Bars-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Bars</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbars_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_bars_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует вертикальные полосы из точек {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} вниз до плоскости <var>z</var> = Org.z.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Bars-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Bars</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbars_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_bars_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует вертикальные полосы из точек {<var>x</var>[i], <var>y</var>[i]} до <var>y</var> = Org.y в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Bars-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Bars</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbars"></a><u>Функция С:</u> <code>void</code> <b>mgl_bars</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует вертикальные полосы из точек {<var>x</var>[i], <var>y</var>[i]} до <var>y</var> = Org.y в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>), где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Barh"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Chart" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Barh-1"></a>
+<h3 class="subsection">3.9.8 Barh</h3>
+<a name="index-Barh"></a>
+
+<p>Функции рисуют горизонтальные полосы (прямоугольники) из точек до плоскости осей координат. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). Если строка содержит символ &lsquo;<samp>a</samp>&rsquo;, то линии рисуются одна поверх другой. Если строка содержит символ &lsquo;<samp>f</samp>&rsquo;, то рисуется график типа waterfall для определения кумулятивного эффекта последовательности положительных и отрицательных значений. Можно использовать разные цвета для положительных и отрицательных значений если число указанных цветов равно удвоенному числу кривых для построения. См. также <a href="#Barh">Barh</a>, <a href="#Default-sizes">Базовые размеры</a>. См. раздел <a href="mathgl_ru_9.html#Barh-sample">Barh &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Barh-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Barh</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>v, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbarh_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_barh_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> v, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует горизонтальные полосы из точек {<var>v</var>[i], <var>y</var>[i]} до <var>x</var> = Org.x в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Barh-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Barh</b><i> (<code>const mglData &amp;</code>v, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbarh"></a><u>Функция С:</u> <code>void</code> <b>mgl_barh</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует горизонтальные полосы из точек {<var>v</var>[i], <var>y</var>[i]} до <var>x</var> = Org.x в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>), где значения <var>y</var>[i] равно распределены в интервале [<var>Min</var>.y, <var>Max</var>.y].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Chart"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Barh" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Step" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Chart-1"></a>
+<h3 class="subsection">3.9.9 Chart</h3>
+<a name="index-Chart"></a>
+
+<dl>
+<dt><a name="index-Chart-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Chart</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>col=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fchart"></a><u>Функция С:</u> <code>void</code> <b>mgl_chart</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>col)</i></dt>
+<dd><p>Рисует цветные полосы (пояса) для массива данных <var>a</var>. Число полос равно числу строк <var>a</var> (равно <var>a.ny</var>). Цвет полос поочередно меняется из цветов указанных в <var>col</var> или в палитре (see section <a href="#Palette-and-colors">Палитра и цвета</a>). Пробел в цветах соответствует прозрачному &quot;цвету&quot;, т.е. если <var>col</var> содержит пробел(ы), то соответствующая полоса не рисуется. Ширина полосы пропорциональна значению элемента в <var>a</var>. График строится только для массивов не содержащих отрицательных значений. Если строка <var>col</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется также черная граница полос. График выглядит лучше в (после вращения системы координат) и/или в полярной системе координат (становится Pie chart). См. раздел <a href="mathgl_ru_9.html#Chart-sample">Chart &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Step"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Chart" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Torus" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Step-1"></a>
+<h3 class="subsection">3.9.10 Step</h3>
+<a name="index-Step"></a>
+
+<p>Функции рисуют ступеньки для точек массива. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). См. также <a href="#Plot">Plot</a>, <a href="#Stem">Stem</a>, <a href="#Tile">Tile</a>, <a href="#Boxs">Boxs</a>. См. раздел <a href="mathgl_ru_9.html#Step-sample">Step &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Step-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Step</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstep_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_step_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует ступеньки для точек {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Step-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Step</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstep_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_step_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует ступеньки для точек {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Step-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Step</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstep"></a><u>Функция С:</u> <code>void</code> <b>mgl_step</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует ступеньки для точек {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>), где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Torus"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Step" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tube" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Torus-1"></a>
+<h3 class="subsection">3.9.11 Torus</h3>
+<a name="index-Torus"></a>
+
+<p>Функции рисуют поверхность вращения кривой {<var>r</var>, <var>z</var>} относительно оси, заданной <code>SetAxialDir()</code> (see section <a href="#Other-settings">Прочие настройки</a>). Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <var>r.nx=z.nx</var>. Строка <var>pen</var> задает цвет (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется цвет из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). См. также <a href="#Plot">Plot</a>, <a href="#Axial">Axial</a>. См. раздел <a href="mathgl_ru_9.html#Torus-sample">Torus &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Torus-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Torus</b><i> (<code>const mglData &amp;</code>r, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftorus"></a><u>Функция С:</u> <code>void</code> <b>mgl_torus</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> r, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует поверхность вращения кривой {<var>r</var>[i], <var>z</var>[i]}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Torus-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Torus</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Рисует поверхность вращения кривой {<var>r</var>[i], <var>z</var>[i]}, где значения <var>r</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Tube"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Torus" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mark" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tube-1"></a>
+<h3 class="subsection">3.9.12 Tube</h3>
+<a name="index-Tube"></a>
+
+<p>Функции рисуют трубу радиуса <var>r</var>[i] вдоль кривой между точками {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx=r.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). См. также <a href="#Plot">Plot</a>. См. раздел <a href="mathgl_ru_9.html#Tube-sample">Tube &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Tube-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-Tube-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>float</code> r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftube_005fxyzr"></a><u>Функция С:</u> <code>void</code> <b>mgl_tube_xyzr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dt><a name="index-mgl_005ftube_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_tube_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>float</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует трубу радиуса <var>r</var>  в пространстве между точками {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tube-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-Tube-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>float</code> r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftube_005fxyr"></a><u>Функция С:</u> <code>void</code> <b>mgl_tube_xyr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dt><a name="index-mgl_005ftube_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_tube_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>float</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует трубу радиуса <var>r</var> между точками {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tube-5"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-Tube-6"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>y, <code>float</code> r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftube_005fr"></a><u>Функция С:</u> <code>void</code> <b>mgl_tube_r</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dt><a name="index-mgl_005ftube"></a><u>Функция С:</u> <code>void</code> <b>mgl_tube</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>float</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует трубу радиуса <var>r</var> между точками {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>), где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Mark"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tube" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TextMark" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mark-1"></a>
+<h3 class="subsection">3.9.13 Mark</h3>
+<a name="index-Mark-3"></a>
+
+<p>Функции рисуют маркеры размером <var>r</var>*<var>MarkSize</var> (see section <a href="#Default-sizes">Базовые размеры</a>) в точках {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx=r.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). Для рисования маркеров одинакового размера можно использовать функцию <a href="#Plot">Plot</a> с невидимой линией (со стилем содержащим &lsquo;<samp> </samp>&rsquo;). См. также <a href="#Plot">Plot</a>, <a href="#TextMark">TextMark</a>, <a href="#Stem">Stem</a>, <a href="#Error">Error</a>. См. раздел <a href="mathgl_ru_9.html#Mark-sample">Mark &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Mark-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmark_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_mark_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует маркеры для точек {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Mark-5"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmark_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_mark_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует маркеры для точек {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Mark-6"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mark</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmark_005fy"></a><u>Функция С:</u> <code>void</code> <b>mgl_mark_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует маркеры для точек {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>), где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="TextMark"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mark" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Error" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TextMark-1"></a>
+<h3 class="subsection">3.9.14 TextMark</h3>
+<a name="index-TextMark"></a>
+
+<p>Функции рисуют текст <var>text</var> как маркер с размером пропорциональным <var>r</var>*<var>MarkSize</var> (see section <a href="#Default-sizes">Базовые размеры</a>) в точках {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx=r.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). См. также <a href="#Plot">Plot</a>, <a href="#Mark">Mark</a>, <a href="#Stem">Stem</a>. См. раздел <a href="mathgl_ru_9.html#TextMark-sample">TextMark &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-TextMark-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const char *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TextMark-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const wchar_t *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftextmarkw_005fxyzr"></a><u>Функция С:</u> <code>void</code> <b>mgl_textmarkw_xyzr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const wchar_t *</code>text, <code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005ftextmark_005fxyzr"></a><u>Функция С:</u> <code>void</code> <b>mgl_textmark_xyzr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const char *</code>text, <code>const char *</code>fnt)</i></dt>
+<dd><p>Рисует текстовые маркеры в точках {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TextMark-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TextMark-4"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const wchar_t *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftextmarkw_005fxyr"></a><u>Функция С:</u> <code>void</code> <b>mgl_textmarkw_xyr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const wchar_t *</code>text, <code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005ftextmark_005fxyr"></a><u>Функция С:</u> <code>void</code> <b>mgl_textmark_xyr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>text, <code>const char *</code>fnt)</i></dt>
+<dd><p>Рисует текстовые маркеры в точках {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TextMark-5"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TextMark-6"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const wchar_t *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftextmarkw_005fyr"></a><u>Функция С:</u> <code>void</code> <b>mgl_textmarkw_yr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const wchar_t *</code>text, <code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005ftextmark_005fyr"></a><u>Функция С:</u> <code>void</code> <b>mgl_textmark_yr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>text, <code>const char *</code>fnt)</i></dt>
+<dd><p>Рисует текстовые маркеры в точках {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>), где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TextMark-7"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TextMark-8"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>y, <code>const wchar_t *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftextmarkw"></a><u>Функция С:</u> <code>void</code> <b>mgl_textmarkw</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const wchar_t *</code>text, <code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005ftextmark"></a><u>Функция С:</u> <code>void</code> <b>mgl_textmark</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>text, <code>const char *</code>fnt)</i></dt>
+<dd><p>Рисует текстовые маркеры в точках {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>), где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x]. The mark sizes <var>r</var>[i]=1 for all points.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Error"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TextMark" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#BoxPlot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Error-1"></a>
+<h3 class="subsection">3.9.15 Error</h3>
+<a name="index-Error-2"></a>
+
+<p>Функции рисуют размер ошибки в точках {<var>x</var>[i], <var>y</var>[i]} на плоскости <var>z</var> = <var>zVal</var> (по умолчанию <var>z</var>=<var>Min.z</var>). Такой график полезен для отображения ошибки эксперимента, вычислений и пр. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx=r.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). См. также <a href="#Plot">Plot</a>. См. раздел <a href="mathgl_ru_9.html#Error-sample">Error &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Error-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Error</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ex, <code>const mglData &amp;</code>ey, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ferror_005fexy"></a><u>Функция С:</u> <code>void</code> <b>mgl_error_exy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ex, <code>const HMDT</code> ey, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует размер ошибки {<var>ex</var>, <var>ey</var>} в точках {<var>x</var>, <var>y</var>}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Error-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Error</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ey, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ferror_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_error_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ey, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует размер ошибки <var>ey</var> (только вдоль одного направления) в точках {<var>x</var>, <var>y</var>}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Error-5"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Error</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ey, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ferror"></a><u>Функция С:</u> <code>void</code> <b>mgl_error</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> ey, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует размер ошибки <var>ey</var>  (только вдоль одного направления) в точках {<var>x</var>, <var>y</var>}, где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="BoxPlot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Error" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="BoxPlot-1"></a>
+<h3 class="subsection">3.9.16 BoxPlot</h3>
+<a name="index-BoxPlot"></a>
+
+<p>Функции рисуют boxplot (называемый также как box-and-whisker diagram или как &quot;ящик с усами&quot;) в точках <var>x</var>[i] на плоскости <var>z</var> = <var>zVal</var> (по умолчанию <var>z</var>=<var>Min.z</var>). Это график, компактно изображающий распределение вероятностей <var>a</var>[i,j] (минимум, нижний квартиль (Q1), медиана (Q2), верхний квартиль (Q3) и максимум) вдоль второго (j-го) направления. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=a.nx</code>. Строка <var>pen</var> задает цвет и стиль линий (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). См. также <a href="#Plot">Plot</a>, <a href="#Error">Error</a>, <a href="#Bars">Bars</a>, <a href="#Default-sizes">Базовые размеры</a>. См. раздел <a href="mathgl_ru_9.html#BoxPlot-sample">BoxPlot &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-BoxPlot-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>BoxPlot</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fboxplot_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_boxplot_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует boxplot с заданными значениями координат <var>x</var>[i].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-BoxPlot-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>BoxPlot</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fboxplot"></a><u>Функция С:</u> <code>void</code> <b>mgl_boxplot</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует boxplot со значениями <var>x</var>[i] равно распределенными в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t2D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#BoxPlot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mesh" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">3.10 2D графики</h2>
+
+<p>Эти функции строят графики для двумерных (2D) массивов. Двумерными считаются массивы, зависящие только от двух параметров (индексов) подобно матрице <em>f(x_i,y_j), i=1...n, j=1...m</em>. Есть несколько основных типов 2D графиков: сплошная поверхность (Surf), сетчатая поверхность (Mesh), поверхность из ящиков (Boxs), поверхность из плиток (Tile), водопад (Fall), ленточки (Belt), график плотности (Dens), линии уровня (Cont), линии уровня с заполнением (ContF) и результат их вращения (Axial). В функциях Cont(), ContF() и Axial() значения уровней можно задавать автоматически и вручную. Можно также нарисовать сетку (Grid) по массиву данных для улучшения вида графика плотности или линий уровня. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданной поверхности. Параметры цветовой схемы задаются строкой See section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>. См. раздел <a href="mathgl_ru_9.html#g_t2D-plot-sample">Пример графиков 2D данных</a>, для примеров кода и графика.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Mesh">3.10.1 Mesh</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fall">3.10.2 Fall</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Belt">3.10.3 Belt</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf">3.10.4 Surf</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Boxs">3.10.5 Boxs</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tile">3.10.6 Tile</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens">3.10.7 Dens</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont">3.10.8 Cont</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF">3.10.9 ContF</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContD">3.10.10 ContD</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axial">3.10.11 Axial</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grad">3.10.12 Grad</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grid">3.10.13 Grid</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Mesh"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fall" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mesh-1"></a>
+<h3 class="subsection">3.10.1 Mesh</h3>
+<a name="index-Mesh"></a>
+
+<dl>
+<dt><a name="index-Mesh-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mesh</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmesh_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_mesh_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует сетчатую поверхность, заданную параметрически {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Surf">Surf</a>, <a href="#Fall">Fall</a>, MeshNum (see section <a href="#Other-settings">Прочие настройки</a>), <a href="#Cont">Cont</a>, <a href="#Tens">Tens</a>. См. раздел <a href="mathgl_ru_9.html#Mesh-sample">Mesh &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Mesh-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mesh</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmesh"></a><u>Функция С:</u> <code>void</code> <b>mgl_mesh</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fall"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mesh" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Belt" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fall-1"></a>
+<h3 class="subsection">3.10.2 Fall</h3>
+<a name="index-Fall"></a>
+
+<dl>
+<dt><a name="index-Fall-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Fall</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ffall_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_fall_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует водопад для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. График удобен для построения нескольких кривых, сдвинутых вглубь друг относительно друга. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>x</samp>&rsquo;, то линии рисуются вдоль x-оси (по умолчанию линии рисуются вдоль y-оси). Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Belt">Belt</a>, <a href="#Mesh">Mesh</a>, <a href="#Tens">Tens</a>, MeshNum (see section <a href="#Other-settings">Прочие настройки</a>). См. раздел <a href="mathgl_ru_9.html#Fall-sample">Fall &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fall-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Fall</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ffall"></a><u>Функция С:</u> <code>void</code> <b>mgl_fall</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Belt"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fall" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Belt-1"></a>
+<h3 class="subsection">3.10.3 Belt</h3>
+<a name="index-Belt"></a>
+
+<dl>
+<dt><a name="index-Belt-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Belt</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbelt_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_belt_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует ленточки для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. График может использоваться как 3d обобщение графика Plot() (see section <a href="#Plot">Plot</a>). Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>x</samp>&rsquo;, то линии рисуются вдоль x-оси (по умолчанию линии рисуются вдоль y-оси). Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Fall">Fall</a>, <a href="#Surf">Surf</a>, <a href="#Plot">Plot</a>, MeshNum (see section <a href="#Other-settings">Прочие настройки</a>). См. раздел <a href="mathgl_ru_9.html#Belt-sample">Belt &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Belt-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Belt</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbelt"></a><u>Функция С:</u> <code>void</code> <b>mgl_belt</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Surf"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Belt" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Boxs" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-1"></a>
+<h3 class="subsection">3.10.4 Surf</h3>
+<a name="index-Surf"></a>
+
+<dl>
+<dt><a name="index-Surf-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует параметрически заданную поверхность {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на поверхности рисуется сетка. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Mesh">Mesh</a>, <a href="#Dens">Dens</a>, <a href="#Belt">Belt</a>, <a href="#Tile">Tile</a>, <a href="#Boxs">Boxs</a>, <a href="#SurfC">SurfC</a>, <a href="#SurfA">SurfA</a>. См. раздел <a href="mathgl_ru_9.html#Surf-sample">Surf &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Boxs"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tile" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Boxs-1"></a>
+<h3 class="subsection">3.10.5 Boxs</h3>
+<a name="index-Boxs"></a>
+
+<dl>
+<dt><a name="index-Boxs-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Boxs</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fboxs_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_boxs_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует вертикальные ящики для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Surf">Surf</a>, <a href="#Dens">Dens</a>, <a href="#Tile">Tile</a>, <a href="#Step">Step</a>. См. раздел <a href="mathgl_ru_9.html#Boxs-sample">Boxs &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Boxs-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Boxs</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fboxs"></a><u>Функция С:</u> <code>void</code> <b>mgl_boxs</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Tile"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Boxs" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tile-1"></a>
+<h3 class="subsection">3.10.6 Tile</h3>
+<a name="index-Tile"></a>
+
+<dl>
+<dt><a name="index-Tile-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tile</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftile_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_tile_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует плитки для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. График может использоваться как 3d обобщение Step() (see section <a href="#Step">Step</a>). Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Surf">Surf</a>, <a href="#Boxs">Boxs</a>, <a href="#Step">Step</a>, <a href="#TileS">TileS</a>. См. раздел <a href="mathgl_ru_9.html#Tile-sample">Tile &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tile-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tile</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftile"></a><u>Функция С:</u> <code>void</code> <b>mgl_tile</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Dens"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tile" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-1"></a>
+<h3 class="subsection">3.10.7 Dens</h3>
+<a name="index-Dens"></a>
+
+<dl>
+<dt><a name="index-Dens-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dens</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_dens_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует график плотности для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} при <var>z</var> = <var>zVal</var>. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетка. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Surf">Surf</a>, <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>, <a href="#Boxs">Boxs</a>, <a href="#Tile">Tile</a>, <a href="#DensXYZ">DensXYZ</a>. См. раздел <a href="mathgl_ru_9.html#Dens-sample">Dens &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Dens-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dens</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens"></a><u>Функция С:</u> <code>void</code> <b>mgl_dens</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cont"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-1"></a>
+<h3 class="subsection">3.10.8 Cont</h3>
+<a name="index-Cont"></a>
+
+<dl>
+<dt><a name="index-Cont-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fxy_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont_xy_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует линии уровня для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} при <var>z</var> = <var>zVal</var> (или при <var>z=v</var>[k] если <code>zVal==NAN</code>). Линии уровня рисуются для <var>z</var>[i,j]=<var>v</var>[k]. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетка. Если <var>sch</var> содержит &lsquo;<samp>t</samp>&rsquo; или &lsquo;<samp>T</samp>&rsquo;, то значения <var>v</var>[k] будут выведены вдоль контуров над (или под) кривой. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Dens">Dens</a>, <a href="#ContF">ContF</a>, <a href="#ContD">ContD</a>, <a href="#Axial">Axial</a>, <a href="#ContXYZ">ContXYZ</a>. См. раздел <a href="mathgl_ru_9.html#Cont-sample">Cont &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005f_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont__val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContF"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContD" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF-1"></a>
+<h3 class="subsection">3.10.9 ContF</h3>
+<a name="index-ContF"></a>
+
+<dl>
+<dt><a name="index-ContF-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fxy_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf_xy_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} при <var>z</var> = <var>zVal</var> (или при <var>z=v</var>[k] если <code>zVal==NAN</code>). Линии уровня рисуются для <var>z</var>[i,j]=<var>v</var>[k]. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетка. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Dens">Dens</a>, <a href="#Cont">Cont</a>, <a href="#Axial">Axial</a>, <a href="#ContFXYZ">ContFXYZ</a>. См. раздел <a href="mathgl_ru_9.html#ContF-sample">ContF &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContD"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axial" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContD-1"></a>
+<h3 class="subsection">3.10.10 ContD</h3>
+<a name="index-ContD"></a>
+
+<dl>
+<dt><a name="index-ContD-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContD</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontd_005fxy_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_contd_xy_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} при <var>z</var> = <var>zVal</var> (или при <var>z=v</var>[k] если <code>zVal==NAN</code>) цветами заданными явно. Линии уровня рисуются для <var>z</var>[i,j]=<var>v</var>[k] (должно быть <code>v.nx&gt;2</code>). Строка <var>sch</var> задает цвет контуров: цвет k-го контура определяется символом <code>sch[k%strlen(sch)]</code>. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Dens">Dens</a>, <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>. См. раздел <a href="mathgl_ru_9.html#ContD-sample">ContD &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContD-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContD</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontd_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_contd_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContD-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContD</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontd_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_contd_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContD-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContD</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontd"></a><u>Функция С:</u> <code>void</code> <b>mgl_contd</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axial"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContD" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grad" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axial-1"></a>
+<h3 class="subsection">3.10.11 Axial</h3>
+<a name="index-Axial"></a>
+
+<dl>
+<dt><a name="index-Axial-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axial</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005faxial_005fxy_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_axial_xy_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует поверхность вращения линии уровня для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. Линии уровня рисуются для <var>z</var>[i,j]=<var>v</var>[k]. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Если строка содержит символы &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; или &lsquo;<samp>z</samp>&rsquo;, то ось вращения (see section <a href="#Other-settings">Прочие настройки</a>) устанавливается в указанное направление. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>, <a href="#Torus">Torus</a>, <a href="#Surf3">Surf3</a>. См. раздел <a href="mathgl_ru_9.html#Axial-sample">Axial &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Axial-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axial</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005faxial_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_axial_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Axial-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axial</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005faxial_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_axial_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Axial-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axial</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005faxial"></a><u>Функция С:</u> <code>void</code> <b>mgl_axial</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Grad"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axial" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grid" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grad-1"></a>
+<h3 class="subsection">3.10.12 Grad</h3>
+<a name="index-Grad"></a>
+
+<dl>
+<dt><a name="index-Grad-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grad</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>phi, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>)</i></dt>
+<dt><a name="index-mgl_005fgrad_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_grad_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует линии градиента скалярного поля <var>phi</var>[i,j,k] заданного параметрически {<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Число линий пропорционально <var>num</var>. Линии рисуются только с границ интервала при <var>num</var>&lt;0. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var>, <var>phi</var> должны быть одинаковы <code>x.nx=phi.nx &amp;&amp; y.nx=phi.ny &amp;&amp; z.nx=phi.nz</code> или <code>x.nx=y.nx=z.nx=phi.nx &amp;&amp; x.ny=y.ny=z.ny=phi.ny &amp;&amp; x.nz=y.nz=z.nz=phi.nz</code>. Массивы <var>x</var>, <var>y</var> и <var>z</var> могут быть векторами (не матрицами как <var>phi</var>). См. также <a href="#Dens3">Dens3</a>, <a href="#Cont3">Cont3</a>, <a href="#Flow">Flow</a>.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-Grad-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grad</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fgrad_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_grad_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует линии градиента скалярного поля <var>phi</var>[i,j] заданного параметрически {<var>x</var>[i,j], <var>y</var>[i,j]} при <var>z</var> = <var>zVal</var>. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Число линий пропорционально <var>num</var>. Линии рисуются только с границ интервала при <var>num</var>&lt;0. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>phi</var> должны быть одинаковы <code>x.nx=phi.nx &amp;&amp; y.nx=phi.ny</code> или <code>x.nx=y.nx=phi.nx &amp;&amp; x.ny=y.ny=phi.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>phi</var>). График строится для каждого z среза данных. См. также <a href="#Dens">Dens</a>, <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>, <a href="#Flow">Flow</a>. См. раздел <a href="mathgl_ru_9.html#Grad-sample">Grad &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Grad-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grad</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fgrad"></a><u>Функция С:</u> <code>void</code> <b>mgl_grad</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Grid"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grad" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grid-1"></a>
+<h3 class="subsection">3.10.13 Grid</h3>
+<a name="index-Grid-2"></a>
+
+<dl>
+<dt><a name="index-Grid-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_grid_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует плоскую сету для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} при <var>z</var> = <var>zVal</var>. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Dens">Dens</a>, <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Grid-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid"></a><u>Функция С:</u> <code>void</code> <b>mgl_grid</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="g_t3D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grid" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">3.11 3D графики</h2>
+
+<p>Эти функции строят графики для трехмерных (3D) массивов. Трехмерными считаются массивы, зависящие от трех параметров (индексов) подобно матрице <em>f(x_i,y_j,z_k), i=1...n, j=1...m, k=1...l</em>. Есть 5 основных типов 3D графиков: поверхность постоянного уровня (Surf3), график плотности на срезе (Dens3), линии уровня на срезе (Cont3), закрашенные контуры уровня на срезе (ContF3) и график объемной прозрачности типа облака (Cloud). В функциях Cont3(), ContF3() и Surf3() значения уровней можно задавать автоматически и вручную. Можно также нарисовать на срезе сетку (Grid3) по массиву данных для улучшения вида графика плотности или линий уровня. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива. Параметры цветовой схемы задаются строкой See section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>. См. раздел <a href="mathgl_ru_9.html#g_t3D-plot-sample">Пример графиков 3D данных</a>, для примеров кода и графика.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf3">3.11.1 Surf3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens3">3.11.2 Dens3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont3">3.11.3 Cont3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF3">3.11.4 ContF3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grid3">3.11.5 Grid3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cloud">3.11.6 Cloud</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Beam">3.11.7 Beam</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Surf3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3-1"></a>
+<h3 class="subsection">3.11.1 Surf3</h3>
+<a name="index-Surf3"></a>
+
+<dl>
+<dt><a name="index-Surf3-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3</b><i> (<code>float</code> val, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3_005fxyz_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3_xyz_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива, заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) при <var>a</var>(x,y,z)=<var>val</var>. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). Замечу, что возможно некорректная отрисовка граней вследствие неопределенности построения сечения если поверхность пересекает ячейку данных 2 и более раз. См. также <a href="#Cloud">Cloud</a>, <a href="#Dens3">Dens3</a>, <a href="#Surf3C">Surf3C</a>, <a href="#Surf3A">Surf3A</a>, <a href="#Axial">Axial</a>. См. раздел <a href="mathgl_ru_9.html#Surf3-sample">Surf3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3</b><i> (<code>float</code> val, <code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> a, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Рисует <var>num</var> поверхностей уровня равномерно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Dens3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens3-1"></a>
+<h3 class="subsection">3.11.2 Dens3</h3>
+<a name="index-Dens3"></a>
+<a name="index-DensA"></a>
+
+<dl>
+<dt><a name="index-Dens3-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dens3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdens3_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_dens3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует график плотности для 3d массива, заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). График рисуется на срезе <var>sVal</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>stl</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на срезе рисуется сетка. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). См. также <a href="#Cont3">Cont3</a>, <a href="#ContF3">ContF3</a>, <a href="#Dens">Dens</a>, <a href="#Grid3">Grid3</a>. См. раздел <a href="mathgl_ru_9.html#Dens3-sample">Dens3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Dens3-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dens3</b><i> (<code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdens3"></a><u>Функция С:</u> <code>void</code> <b>mgl_dens3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DensA-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdens3_005fall_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_dens3_all_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует графики плотности на всех центральных срезах 3d данных, заданных параметрически.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DensA-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensA</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdens3_005fall"></a><u>Функция С:</u> <code>void</code> <b>mgl_dens3_all</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cont3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont3-1"></a>
+<h3 class="subsection">3.11.3 Cont3</h3>
+<a name="index-Cont3"></a>
+<a name="index-ContA"></a>
+
+<dl>
+<dt><a name="index-Cont3-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont3</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fxyz_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont3_xyz_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует линии уровня для 3d массива, заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). Линии рисуются для значений из массива <var>v</var> на срезе <var>sVal</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Строка <var>stl</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>stl</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на срезе рисуется сетка. Если <var>sch</var> содержит &lsquo;<samp>t</samp>&rsquo; или &lsquo;<samp>T</samp>&rsquo;, то значения <var>v</var>[k] будут выведены вдоль контуров над (или под) кривой. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). См. также <a href="#Dens3">Dens3</a>, <a href="#ContF3">ContF3</a>, <a href="#Cont">Cont</a>, <a href="#Grid3">Grid3</a>. См. раздел <a href="mathgl_ru_9.html#Cont3-sample">Cont3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont3-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont3</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont3_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont3-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont3-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont3</b><i> (<code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContA-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fall_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont3_all_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Рисует линии уровня на всех центральных срезах 3d данных, заданных параметрически.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContA-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContA</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fall"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont3_all</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContF3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grid3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF3-1"></a>
+<h3 class="subsection">3.11.4 ContF3</h3>
+<a name="index-ContF3"></a>
+<a name="index-ContFA"></a>
+
+<dl>
+<dt><a name="index-ContF3-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF3</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fxyz_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf3_xyz_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня для 3d массива, заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). Линии рисуются для значений из массива <var>v</var> на срезе <var>sVal</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>stl</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на срезе рисуется сетка. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). См. также <a href="#Dens3">Dens3</a>, <a href="#Cont3">Cont3</a>, <a href="#ContF">ContF</a>, <a href="#Grid3">Grid3</a>. См. раздел <a href="mathgl_ru_9.html#ContF3-sample">ContF3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF3-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF3</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf3_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF3-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF3-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF3</b><i> (<code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFA-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fall_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf3_all_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня на всех центральных срезах 3d данных, заданных параметрически.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFA-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFA</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fall"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf3_all</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Grid3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cloud" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grid3-1"></a>
+<h3 class="subsection">3.11.5 Grid3</h3>
+<a name="index-Grid3"></a>
+<a name="index-GridA"></a>
+
+<dl>
+<dt><a name="index-Grid3-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid3_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_grid3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует сетку для 3d массива, заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). График рисуется на срезе <var>sVal</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). См. также <a href="#Cont3">Cont3</a>, <a href="#ContF3">ContF3</a>, <a href="#Dens3">Dens3</a>, <a href="#Grid">Grid</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Grid3-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid3</b><i> (<code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid3"></a><u>Функция С:</u> <code>void</code> <b>mgl_grid3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GridA-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>GridA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid3_005fall_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_grid3_all_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует сетку на всех центральных срезах 3d данных, заданных параметрически.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GridA-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>GridA</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid3_005fall"></a><u>Функция С:</u> <code>void</code> <b>mgl_grid3_all</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cloud"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grid3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Beam" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cloud-1"></a>
+<h3 class="subsection">3.11.6 Cloud</h3>
+<a name="index-CloudP"></a>
+<a name="index-CloudQ"></a>
+
+<dl>
+<dt><a name="index-Cloud"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cloud</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fcloud_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_cloud_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dd><p>Рисует облачный график для 3d массива, заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). График состоит из кубиков с цветом и прозрачностью пропорциональной значениям <var>a</var>. Результат похож на облако &ndash; малые значения прозрачны, а большие нет. Число кубиков зависит от SetMeshNum() (see section <a href="#Other-settings">Прочие настройки</a>). Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Параметр <var>alpha</var> меняет общую прозрачность графика. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). См. также <a href="#Surf3">Surf3</a>. См. раздел <a href="mathgl_ru_9.html#Cloud-sample">Cloud &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cloud-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cloud</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fcloud"></a><u>Функция С:</u> <code>void</code> <b>mgl_cloud</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CloudP-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>CloudP</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fcloudp_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_cloudp_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dd><p>Как первый, но используются полупрозрачные точки вместо кубиков. См. раздел <a href="mathgl_ru_9.html#CloudP-sample">CloudP &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CloudP-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>CloudP</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fcloudp"></a><u>Функция С:</u> <code>void</code> <b>mgl_cloudp</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Beam"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cloud" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Beam-1"></a>
+<h3 class="subsection">3.11.7 Beam</h3>
+<a name="index-Beam"></a>
+
+<dl>
+<dt><a name="index-Beam-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Beam</b><i> (<code>float</code> val, <code>const mglData &amp;</code>tr, <code>const mglData &amp;</code>g1, <code>const mglData &amp;</code>g2, <code>const mglData &amp;</code>a, <code>float</code> r, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fbeam_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_beam_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> tr, <code>const HMDT</code> g1, <code>const HMDT</code> g2, <code>const HMDT</code> a, <code>float</code> r, <code>const char *</code>stl, <code>int</code> flag)</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива <var>a</var> при постоянном значении <var>a</var>=<var>val</var>. Это специальный тип графика для <var>a</var> заданного в сопровождающей системе координат вдоль кривой <var>tr</var> с ортами <var>g1</var>, <var>g2</var> и с поперечным размером <var>r</var>. Переменная <var>flag</var> &ndash; битовый флаг: &lsquo;<samp>0x1</samp>&rsquo; - рисовать в сопровождающих (не лабораторных) координатах; &lsquo;<samp>0x2</samp>&rsquo; - рисовать проекцию на плоскость <em>\rho-z</em>; &lsquo;<samp>0x4</samp>&rsquo; - рисовать нормированное в каждом сечении поле. Размеры массивов по 1-му индексу <var>tr</var>, <var>g1</var>, <var>g2</var> должны быть nx&gt;2. Размеры массивов по 2-му индексу <var>tr</var>, <var>g1</var>, <var>g2</var> и размер по 3-му индексу массива <var>a</var> должны быть одинаковы. См. также <a href="#Surf3">Surf3</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Beam-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Beam</b><i> (<code>const mglData &amp;</code>tr, <code>const mglData &amp;</code>g1, <code>const mglData &amp;</code>g2, <code>const mglData &amp;</code>a, <code>float</code> r, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> flag=<code>0</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fbeam"></a><u>Функция С:</u> <code>void</code> <b>mgl_beam</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> tr, <code>const HMDT</code> g1, <code>const HMDT</code> g2, <code>const HMDT</code> a, <code>float</code> r, <code>const char *</code>stl, <code>int</code> flag=<code>0</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dd><p>Рисует <var>num</var> равномерно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>] поверхностей уровня 3d массива в сопровождающей системе координат.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Dual-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Beam" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfC" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0430_0440_043d_044be-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">3.12 Парные графики</h2>
+
+<p>Эти функции строят графики для двух связанных массивов. Есть несколько основных типов 3D графиков: поверхность и поверхность уровня с окраской по второму массиву (SurfC, Surf3C), поверхность и поверхность уровня с прозрачностью по второму массиву (SurfA, Surf3A), плитки переменного размера (TileS), диаграмма точечного отображения (Map), STFA диаграмма (STFA). В функциях Surf3A() и Surf3C() значения уровней можно задавать автоматически и вручную. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива. Параметры цветовой схемы задаются строкой See section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#SurfC">3.12.1 SurfC</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3C">3.12.2 Surf3C</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#SurfA">3.12.3 SurfA</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3A">3.12.4 Surf3A</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TileS">3.12.5 TileS</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Map">3.12.6 Map</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#STFA">3.12.7 STFA</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="SurfC"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3C" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfC-1"></a>
+<h3 class="subsection">3.12.1 SurfC</h3>
+<a name="index-SurfC"></a>
+
+<dl>
+<dt><a name="index-SurfC-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SurfC</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurfc_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_surfc_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует параметрически заданную поверхность {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} с цветом, заданным массивом <var>c</var>[i,j]. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на поверхности рисуется сетка. Все размеры массивов <var>z</var> и <var>c</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Surf">Surf</a>, <a href="#SurfA">SurfA</a>, <a href="#Surf3C">Surf3C</a>. См. раздел <a href="mathgl_ru_9.html#SurfC-sample">SurfC &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SurfC-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SurfC</b><i> (<code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurfc"></a><u>Функция С:</u> <code>void</code> <b>mgl_surfc</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Surf3C"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfC" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfA" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3C-1"></a>
+<h3 class="subsection">3.12.2 Surf3C</h3>
+<a name="index-Surf3C"></a>
+
+<dl>
+<dt><a name="index-Surf3C-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3C</b><i> (<code>float</code> val, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3c_005fxyz_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3c_xyz_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива, заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) при <var>a</var>(x,y,z)=<var>val</var>. Аналогично Surf3(), но цвет задается массивом <var>c</var>. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Все размеры массивов <var>z</var> и <var>c</var> должны быть одинаковы. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). Замечу, что возможно некорректная отрисовка граней вследствие неопределенности построения сечения если поверхность пересекает ячейку данных 2 и более раз. См. также <a href="#Surf3">Surf3</a>, <a href="#SurfC">SurfC</a>, <a href="#Surf3A">Surf3A</a>. См. раздел <a href="mathgl_ru_9.html#Surf3C-sample">Surf3C &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3C-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3C</b><i> (<code>float</code> val, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3c_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3c_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3C-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3C</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3c_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3c_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Рисует <var>num</var> поверхностей уровня равномерно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3C-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3C</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3c"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3c</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="SurfA"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3C" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3A" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfA-1"></a>
+<h3 class="subsection">3.12.3 SurfA</h3>
+<a name="index-SurfA"></a>
+
+<dl>
+<dt><a name="index-SurfA-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SurfA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurfa_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_surfa_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует параметрически заданную поверхность {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} с прозрачностью, заданным массивом <var>c</var>[i,j]. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на поверхности рисуется сетка. Все размеры массивов <var>z</var> и <var>c</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Surf">Surf</a>, <a href="#SurfC">SurfC</a>, <a href="#Surf3A">Surf3A</a>, <a href="#TileS">TileS</a>. См. раздел <a href="mathgl_ru_9.html#SurfA-sample">SurfA &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SurfA-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SurfA</b><i> (<code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurfa"></a><u>Функция С:</u> <code>void</code> <b>mgl_surfa</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Surf3A"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfA" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TileS" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3A-1"></a>
+<h3 class="subsection">3.12.4 Surf3A</h3>
+<a name="index-Surf3A"></a>
+
+<dl>
+<dt><a name="index-Surf3A-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3A</b><i> (<code>float</code> val, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3a_005fxyz_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3a_xyz_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива, заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) при <var>a</var>(x,y,z)=<var>val</var>. Аналогично Surf3(), но прозрачность задается массивом <var>c</var>. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Все размеры массивов <var>z</var> и <var>c</var> должны быть одинаковы. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). Замечу, что возможно некорректная отрисовка граней вследствие неопределенности построения сечения если поверхность пересекает ячейку данных 2 и более раз. См. также <a href="#Surf3">Surf3</a>, <a href="#SurfA">SurfA</a>, <a href="#Surf3C">Surf3C</a>. См. раздел <a href="mathgl_ru_9.html#Surf3A-sample">Surf3A &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3A-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3A</b><i> (<code>float</code> val, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3a_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3a_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3A-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3A</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3a_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3a_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Рисует <var>num</var> поверхностей уровня равномерно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3A-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3A</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3a"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3a</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="TileS"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3A" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Map" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TileS-1"></a>
+<h3 class="subsection">3.12.5 TileS</h3>
+<a name="index-TileS"></a>
+
+<dl>
+<dt><a name="index-TileS-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TileS</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftiles_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_tiles_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует плитки для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. Аналогично Tile(), но размер плиток задается массивов <var>r</var>. Это создает эффект &quot;прозрачности&quot; при экспорте в файлы EPS. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#SurfA">SurfA</a>, <a href="#Tile">Tile</a>. См. раздел <a href="mathgl_ru_9.html#TileS-sample">TileS &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TileS-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TileS</b><i> (<code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftiles"></a><u>Функция С:</u> <code>void</code> <b>mgl_tiles</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Map"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TileS" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#STFA" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Map-1"></a>
+<h3 class="subsection">3.12.6 Map</h3>
+<a name="index-Map"></a>
+
+<dl>
+<dt><a name="index-Map-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Map</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> ks=<code>0</code>, <code>bool</code> pnts=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fmap_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_map_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>int</code> ks, <code>int</code> pnts)</i></dt>
+<dd><p>Визуализирует точечное отображение для матриц {<var>ax</var>, <var>ay</var> } параметрически зависящих от координат <var>x</var>, <var>y</var>. Исходное положение ячейки задает ее цвет. Высота пропорциональна якобиану J(ax,ay). График является аналогом диаграммы Арнольда. Если <code>pnts=false</code>, то рисуются грани, иначе цветные точки рисуются в узлах матриц (полезно для &quot;запутанного&quot; отображения). Параметр <var>ks</var> задает используемый срез матриц. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Все размеры массивов <var>ax</var> и <var>ay</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>ax</var> должны быть одинаковы. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>ax</var>). See section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>. См. раздел <a href="mathgl_ru_9.html#Map-sample">Map &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Map-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Map</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> ks=<code>0</code>, <code>bool</code> pnts=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fmap"></a><u>Функция С:</u> <code>void</code> <b>mgl_map</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>int</code> ks, <code>int</code> pnts)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="STFA"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Map" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="STFA-1"></a>
+<h3 class="subsection">3.12.7 STFA</h3>
+<a name="index-STFA"></a>
+
+<dl>
+<dt><a name="index-STFA-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>STFA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>re, <code>const mglData &amp;</code>im, <code>int</code> dn, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fstfa_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_stfa_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> re, <code>const HMDT</code> im, <code>int</code> dn, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует спектрограмму комплексного массива <var>re</var>+i*<code>im</code> для Фурье размером <var>dn</var> точек в плоскости <var>z=zVal</var>. Параметр <var>dn</var> &ndash; любое четное число. Например в 1D случае, результатом будет график плотности от массива <em>res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn</em> размером {int(nx/dn), dn, ny}. Массивы <var>re</var>, <var>im</var> параметрически зависят от координат <var>x</var>, <var>y</var>. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Все размеры массивов <var>re</var> и <var>im</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>re</var> должны быть одинаковы. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>re</var>).  См. раздел <a href="mathgl_ru_9.html#STFA-sample">STFA &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-STFA-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>STFA</b><i> (<code>const mglData &amp;</code>re, <code>const mglData &amp;</code>im, <code>int</code> dn, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fstfa"></a><u>Функция С:</u> <code>void</code> <b>mgl_stfa</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> re, <code>const HMDT</code> im, <code>int</code> dn, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Vector-fields"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#STFA" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Traj" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0412e_043a_0442_043e_0440_043d_044be-_043f_043e_043bya"></a>
+<h2 class="section">3.13 Векторные поля</h2>
+
+<p>Эти функции рисуют графики для 2D и 3D векторных полей. Есть несколько типов графиков: просто векторное поле (Vect), вектора вдоль траектории (Traj), векторное поле каплями (Dew), нити тока (Flow, FlowP), трубки тока (Pipe). Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива. Параметры цветовой схемы задаются строкой See section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Traj">3.13.1 Traj</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect">3.13.2 Vect</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dew">3.13.3 Dew</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow">3.13.4 Flow</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#FlowP">3.13.5 FlowP</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe">3.13.6 Pipe</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Traj"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-fields" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Traj-1"></a>
+<h3 class="subsection">3.13.1 Traj</h3>
+<a name="index-Traj"></a>
+
+<dl>
+<dt><a name="index-Traj-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Traj</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> len=<code>0</code>)</i></dt>
+<dt><a name="index-Traj-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Traj</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>float</code> len=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005ftraj_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_traj_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code>x, <code>const HMDT</code>y, <code>const HMDT</code>z, <code>const HMDT</code>ax, <code>const HMDT</code>ay, <code>const HMDT</code>az, <code>const char *</code>sch, <code>float</code> len)</i></dt>
+<dt><a name="index-mgl_005ftraj_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_traj_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code>x, <code>const HMDT</code>y, <code>const HMDT</code>ax, <code>const HMDT</code>ay, <code>const char *</code>sch, <code>float</code> zVal, <code>float</code> len)</i></dt>
+<dd><p>Рисует вектора {<var>ax</var>, <var>ay</var>, <var>az</var>} вдоль кривой {<var>x</var>, <var>y</var>, <var>z</var>}. Длина векторов пропорциональна <em>\sqrtax^2+ay^2+az^2</em>. Строка <var>pen</var> задает цвет (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется текущий цвет из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). Параметр <var>len</var> задает фактор длины векторов (если не нуль) или выбирать длину пропорционально расстоянию между точками кривой (если <var>len</var>=0). Размер по 1-му индексу должен быть 2 или больше. График рисуется для каждой строки если один из массивов матрица. См. также <a href="#Vect">Vect</a>. См. раздел <a href="mathgl_ru_9.html#Traj-sample">Traj &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Vect"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Traj" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dew" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-1"></a>
+<h3 class="subsection">3.13.2 Vect</h3>
+<a name="index-Vect"></a>
+
+<dl>
+<dt><a name="index-Vect-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Vect</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fvect_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_vect_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal, <code>int</code> flag)</i></dt>
+<dd><p>Рисует векторное поле {<var>ax</var>, <var>ay</var>} параметрически зависящее от координат <var>x</var>, <var>y</var> на плоскости при <var>z</var>=<var>zVal</var>. Длина и цвет векторов пропорциональна <em>\sqrtax^2+ay^2</em>. Число рисуемых векторов зависит от <code>SetMeshNum()</code> (see section <a href="#Other-settings">Прочие настройки</a>). Цвет задается строкой <var>sch</var>. Предыдущая цветовая схема используется по умолчанию. Параметр <var>flag</var> побитовый флаг для настройки вид векторов: <code>MGL_VEC_COL</code> &ndash; двуцветный вектор, <code>MGL_VEC_LEN</code> &ndash; одинаковая длина векторов, <code>MGL_VEC_DOT</code> &ndash; рисует штрихи вместо стрелок, <code>MGL_VEC_END</code> &ndash; рисует стрелку в точку сетки, <code>MGL_VEC_MID</code> &ndash; рисует стрелку с серединой в точке сетки. Все размеры массивов <var>ax</var> и <var>ay</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var> и <var>ax</var> должны быть одинаковы. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>ax</var>). График строится для каждого z среза <var>ax</var>, <var>ay</var>. См. также <a href="#Flow">Flow</a>, <a href="#Dew">Dew</a>. См. раздел <a href="mathgl_ru_9.html#Vect-sample">Vect &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Vect-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Vect</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fvect_005f2d"></a><u>Функция С:</u> <code>void</code> <b>mgl_vect_2d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal, <code>int</code> flag)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Vect-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Vect</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fvect_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_vect_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>int</code> flag)</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>ax</var>, <var>ay</var>, <var>az</var> должны быть 3d массивами, а длина и цвет пропорциональны <em>\sqrtax^2+ay^2+az^2</em>. См. раздел <a href="mathgl_ru_9.html#Vect-3D-sample">Vect 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Vect-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Vect</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fvect_005f3d"></a><u>Функция С:</u> <code>void</code> <b>mgl_vect_3d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>int</code> flag)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Dew"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dew-1"></a>
+<h3 class="subsection">3.13.3 Dew</h3>
+<a name="index-Dew"></a>
+
+<dl>
+<dt><a name="index-Dew-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dew</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdew_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_dew_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует капли для векторного поля {<var>ax</var>, <var>ay</var>}, параметрически зависящего от координат <var>x</var>, <var>y</var> при <var>z=zVal</var>. Замечу, что график требует много памяти и процессорного времени для своего создания! Цвет капель пропорционален <em>\sqrtax^2+ay^2</em>. Число капель определяется <code>SetMeshNum()</code> (see section <a href="#Other-settings">Прочие настройки</a>). Цвет задается строкой <var>sch</var>. Предыдущая цветовая схема используется по умолчанию. Все размеры массивов <var>ax</var> и <var>ay</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var> и <var>ax</var> должны быть одинаковы. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>ax</var>). График строится для каждого z среза <var>ax</var>, <var>ay</var>. См. также <a href="#Vect">Vect</a>. См. раздел <a href="mathgl_ru_9.html#Dew-sample">Dew &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Dew-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dew</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdew"></a><u>Функция С:</u> <code>void</code> <b>mgl_dew</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Flow"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dew" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#FlowP" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-1"></a>
+<h3 class="subsection">3.13.4 Flow</h3>
+<a name="index-Flow"></a>
+
+<dl>
+<dt><a name="index-Flow-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flow</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>, <code>bool</code> central=<code>true</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fflow_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_flow_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>int</code> num, <code>int</code> central, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует нити тока для векторного поля {<var>ax</var>, <var>ay</var>}, параметрически зависящего от координат <var>x</var>, <var>y</var> на плоскости при z = <var>zVal</var>. Число нитей пропорционально <var>num</var>. Параметр <var>central</var> задает возможность старта нитей изнутри сетки (если true) или только с краев (если false). С версии 1.11 он игнорируется и всегда равен (<var>num</var>&gt;0). Цвет нитей пропорционален <em>\sqrtax^2+ay^2</em>. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника). Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Все размеры массивов <var>ax</var> и <var>ay</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var> и <var>ax</var> должны быть одинаковы. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>ax</var>). График строится для каждого z среза <var>ax</var>, <var>ay</var>. См. также <a href="#Pipe">Pipe</a>, <a href="#Vect">Vect</a>. См. раздел <a href="mathgl_ru_9.html#Flow-sample">Flow &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Flow-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flow</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>, <code>bool</code> central=<code>true</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fflow_005f2d"></a><u>Функция С:</u> <code>void</code> <b>mgl_flow_2d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>int</code> num, <code>int</code> central, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Flow-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flow</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>, <code>bool</code> central=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fflow_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_flow_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>int</code> num, <code>int</code> central)</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>ax</var>, <var>ay</var>, <var>az</var> должны быть 3d массивами, а цвет пропорционален <em>\sqrtax^2+ay^2+az^2</em>. См. раздел <a href="mathgl_ru_9.html#Flow-3D-sample">Flow 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Flow-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flow</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>, <code>bool</code> central=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fflow_005f3d"></a><u>Функция С:</u> <code>void</code> <b>mgl_flow_3d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>int</code> num, <code>int</code> central)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="FlowP"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="FlowP-1"></a>
+<h3 class="subsection">3.13.5 FlowP</h3>
+<a name="index-FlowP"></a>
+
+<dl>
+<dt><a name="index-FlowP-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>FlowP</b><i> (<code>mglPoint</code> p0, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-FlowP-2"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>FlowP</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fflowp_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_flowp_xy</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует нить тока из точки <var>p0</var> для векторного поля {<var>ax</var>, <var>ay</var>}, параметрически зависящего от координат <var>x</var>, <var>y</var> на плоскости при z = <var>p0</var>.z. Цвет нити пропорционален <em>\sqrtax^2+ay^2</em>. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника). Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Все размеры массивов <var>ax</var> и <var>ay</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var> и <var>ax</var> должны быть одинаковы. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>ax</var>). График строится для каждого z среза <var>ax</var>, <var>ay</var>. См. также <a href="#Pipe">Pipe</a>, <a href="#Vect">Vect</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FlowP-3"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>FlowP</b><i> (<code>mglPoint</code> p0, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-FlowP-4"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>FlowP</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fflowp_005f2d"></a><u>Функция С:</u> <code>void</code> <b>mgl_flowp_2d</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FlowP-5"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>FlowP</b><i> (<code>mglPoint</code> p0, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-FlowP-6"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>FlowP</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fflowp_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_flowp_xyz</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch)</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>ax</var>, <var>ay</var>, <var>az</var> должны быть 3d массивами, а цвет пропорциональны <em>\sqrtax^2+ay^2+az^2</em>. См. раздел <a href="mathgl_ru_9.html#Flow-3D-sample">Flow 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FlowP-7"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>FlowP</b><i> (<code>mglPoint</code> p0, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-FlowP-8"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>FlowP</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fflowp_005f3d"></a><u>Функция С:</u> <code>void</code> <b>mgl_flowp_3d</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Pipe"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#FlowP" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-1"></a>
+<h3 class="subsection">3.13.6 Pipe</h3>
+<a name="index-Pipe"></a>
+
+<dl>
+<dt><a name="index-Pipe-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pipe</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> r0=<code>0.05</code>, <code>int</code> num=<code>5</code>, <code>bool</code> central=<code>true</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fpipe_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_pipe_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> r0, <code>int</code> num, <code>int</code> central, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует трубки тока для векторного поля {<var>ax</var>, <var>ay</var>}, параметрически зависящего от координат <var>x</var>, <var>y</var> на плоскости при z = <var>zVal</var>. Число трубок пропорционально <var>num</var>. Параметр <var>central</var> задает возможность старта трубок изнутри сетки (если true) или только с краев (если false). С версии 1.11 он игнорируется и всегда равен (<var>num</var>&gt;0). Цвет и радиус трубок пропорционален <em>\sqrtax^2+ay^2</em>. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника). Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Параметр <var>r0</var> задает радиус трубок. При <var>r0</var>&lt;0 радиус трубок обратно пропорционален их амплитуде. Все размеры массивов <var>ax</var> и <var>ay</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var> и <var>ax</var> должны быть одинаковы. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>ax</var>). График строится для каждого z среза <var>ax</var>, <var>ay</var>. См. также <a href="#Flow">Flow</a>, <a href="#Vect">Vect</a>. См. раздел <a href="mathgl_ru_9.html#Pipe-sample">Pipe &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Pipe-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pipe</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> r0=<code>0.05</code>, <code>int</code> num=<code>5</code>, <code>bool</code> central=<code>true</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fpipe_005f2d"></a><u>Функция С:</u> <code>void</code> <b>mgl_pipe_2d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> r0, <code>int</code> num, <code>int</code> central, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Pipe-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pipe</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> r0=<code>0.05</code>, <code>int</code> num=<code>3</code>, <code>bool</code> central=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fpipe_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_pipe_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>float</code> r0, <code>int</code> num, <code>int</code> central)</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>ax</var>, <var>ay</var>, <var>az</var> должны быть 3d массивами, а цвет пропорциональны <em>\sqrtax^2+ay^2+az^2</em>. См. раздел <a href="mathgl_ru_9.html#Pipe-3D-sample">Pipe 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Pipe-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pipe</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> r0=<code>0.05</code>, <code>int</code> num=<code>3</code>, <code>bool</code> central=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fpipe_005f3d"></a><u>Функция С:</u> <code>void</code> <b>mgl_pipe_3d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>float</code> r0, <code>int</code> num, <code>int</code> central)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Other-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#DensXYZ" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043e_0447_0438e-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">3.14 Прочие графики</h2>
+
+<p>Это функции, не относящиеся к какой-то специальной категории. Сюда входят функции построения графиков по текстовым формулам (Plots by formula), рисования поверхностей из треугольников (TriPlot), произвольных точек в пространстве (Dots) и реконструкции по ним поверхности (Crust), графики плотности и линии уровня на плоскостях, перпендикулярных осям x, y или z (Dens[XYZ], Cont[XYZ], ContF[XYZ]), функция &quot;упрощенного&quot; рисования (SimplePlot). Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива. Параметры цветовой схемы задаются строкой. See section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#DensXYZ">3.14.1 DensXYZ</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContXYZ">3.14.2 ContXYZ</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContFXYZ">3.14.3 ContFXYZ</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dots">3.14.4 Dots</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Crust">3.14.5 Crust</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TriPlot">3.14.6 TriPlot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TriCont">3.14.7 TriCont</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#QuadPlot">3.14.8 QuadPlot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-by-formula">3.14.9 Графики функций</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#SimplePlot">3.14.10 SimplePlot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="DensXYZ"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContXYZ" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="DensXYZ-1"></a>
+<h3 class="subsection">3.14.1 DensXYZ</h3>
+<a name="index-DensX"></a>
+<a name="index-DensY"></a>
+<a name="index-DensZ"></a>
+
+<p>Эти функции рисуют график плотности на x, y или z плоскостях. Если <var>a</var> &ndash; 3d массив, то выполняется интерполяция к заданному срезу <var>sVal</var>. Функции полезны для создания проекций 3D массивов на оси координат. Например, код
+</p><table><tr><td>&nbsp;</td><td><pre class="example">gr-&gt;DensX(c.Sum(&quot;x&quot;),&quot;BbcyrR&quot;,-1);
+gr-&gt;DensY(c.Sum(&quot;y&quot;),0,1);
+gr-&gt;DensZ(c.Sum(&quot;z&quot;),0,-1);
+</pre></td></tr></table>
+<p>создают такую картинку. См. также <a href="#ContXYZ">ContXYZ</a>, <a href="#ContFXYZ">ContFXYZ</a>, <a href="#Dens">Dens</a>, <a href="#Data-distributions">Распределение данных</a>. См. раздел <a href="mathgl_ru_9.html#Dens-projection-sample">Dens projection &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-DensX-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensX</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens_005fx"></a><u>Функция С:</u> <code>void</code> <b>mgl_dens_x</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Рисует график плотности <var>a</var> при x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DensY-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensY</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens_005fy"></a><u>Функция С:</u> <code>void</code> <b>mgl_dens_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Рисует график плотности <var>a</var> при y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DensZ-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensZ</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens_005fz"></a><u>Функция С:</u> <code>void</code> <b>mgl_dens_z</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Рисует график плотности <var>a</var> при z = <var>sVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContXYZ"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#DensXYZ" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContFXYZ" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContXYZ-1"></a>
+<h3 class="subsection">3.14.2 ContXYZ</h3>
+<a name="index-ContX"></a>
+<a name="index-ContY"></a>
+<a name="index-ContZ"></a>
+
+<p>Эти функции рисуют линии уровня на x, y или z плоскостях. Если <var>a</var> &ndash; 3d массив, то выполняется интерполяция к заданному срезу <var>sVal</var>. Функции полезны для создания проекций 3D массивов на оси координат. Например, код
+</p><table><tr><td>&nbsp;</td><td><pre class="example">gr-&gt;ContX(c.Sum(&quot;x&quot;),&quot;BbcyrR&quot;,-1);
+gr-&gt;ContY(c.Sum(&quot;y&quot;),0,1);
+gr-&gt;ContZ(c.Sum(&quot;z&quot;),0,-1);
+</pre></td></tr></table>
+<p>создают такую картинку. См. также <a href="#ContFXYZ">ContFXYZ</a>, <a href="#DensXYZ">DensXYZ</a>, <a href="#Cont">Cont</a>, <a href="#Data-distributions">Распределение данных</a>. См. раздел <a href="mathgl_ru_9.html#Cont-projection-sample">Cont projection &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-ContX-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContX</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fx"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont_x</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Рисует <var>num</var> линий уровня для массива <var>a</var> при x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContY-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContY</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fy"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Рисует <var>num</var> линий уровня для массива <var>a</var> при y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContZ-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContZ</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fz"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont_z</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Рисует <var>num</var> линий уровня для массива <var>a</var> при z = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContX-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContX</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fx_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont_x_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Рисует линии уровня для массива  <var>a</var>=<var>v</var>[i] при x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContY-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContY</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fy_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont_y_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Рисует линии уровня для массива  <var>a</var>=<var>v</var>[i] при y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContZ-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContZ</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fz_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont_z_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Рисует линии уровня для массива  <var>a</var>=<var>v</var>[i] при z = <var>sVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContFXYZ"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContXYZ" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dots" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContFXYZ-1"></a>
+<h3 class="subsection">3.14.3 ContFXYZ</h3>
+<a name="index-ContFX"></a>
+<a name="index-ContFY"></a>
+<a name="index-ContFZ"></a>
+
+<p>Эти функции рисуют закрашенные контуры уровня на x, y или z плоскостях. Если <var>a</var> &ndash; 3d массив, то выполняется интерполяция к заданному срезу <var>sVal</var>. Функции полезны для создания проекций 3D массивов на оси координат. См. также <a href="#ContXYZ">ContXYZ</a>, <a href="#DensXYZ">DensXYZ</a>, <a href="#ContF">ContF</a>, <a href="#Data-distributions">Распределение данных</a>.
+</p>
+<dl>
+<dt><a name="index-ContFX-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFX</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fx"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf_x</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Рисует <var>num</var> закрашенных контуров уровня для массива <var>a</var> при x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFY-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFY</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fy"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Рисует <var>num</var> закрашенных контуров уровня для массива <var>a</var> при y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFZ-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFZ</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fz"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf_z</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Рисует <var>num</var> закрашенных контуров уровня для массива <var>a</var> при z = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFX-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFX</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fx_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf_x_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Рисует закрашенные конутры уровня для массива <var>a</var>=<var>v</var>[i] при x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFY-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFY</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fy_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf_y_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Рисует закрашенные конутры уровня для массива <var>a</var>=<var>v</var>[i] при y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFZ-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFZ</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fz_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf_z_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Рисует закрашенные конутры уровня для массива <var>a</var>=<var>v</var>[i] при z = <var>sVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Dots"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContFXYZ" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Crust" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dots-1"></a>
+<h3 class="subsection">3.14.4 Dots</h3>
+<a name="index-Dots"></a>
+
+<dl>
+<dt><a name="index-Dots-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dots</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-Dots-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dots</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdots"></a><u>Функция С:</u> <code>void</code> <b>mgl_dots</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dt><a name="index-mgl_005fdots_005fa"></a><u>Функция С:</u> <code>void</code> <b>mgl_dots_a</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует произвольно расположенные точки {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если определен массив <var>a</var>, то он задает прозрачность точек. Массивы <var>x</var>, <var>y</var>, <var>z</var>, <var>a</var> должны иметь одинаковые размеры. См. также <a href="#Crust">Crust</a>, <a href="#Mark">Mark</a>, <a href="#Plot">Plot</a>. См. раздел <a href="mathgl_ru_9.html#Dots-sample">Dots &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Dots-3"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Dots</b><i> (<code>const mglData &amp;</code>tr, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdots_005ftr"></a><u>Функция С:</u> <code>void</code> <b>mgl_dots_tr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> tr, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x=tr</var>(0,:), <var>y=tr</var>(1,:), <var>z=tr</var>(2,:) и если <var>tr</var>.nx&gt;3, то <var>a=tr</var>(3,:).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Crust"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dots" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TriPlot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Crust-1"></a>
+<h3 class="subsection">3.14.5 Crust</h3>
+<a name="index-Crust"></a>
+
+<dl>
+<dt><a name="index-Crust-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Crust</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> er=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcrust"></a><u>Функция С:</u> <code>void</code> <b>mgl_crust</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> er)</i></dt>
+<dd><p>Реконструирует и рисует поверхность по произвольно расположенным точкам {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. Параметр <var>er</var> задает радиус ошибки (увеличте для удаления дыр). Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если строка содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Массивы <var>x</var>, <var>y</var>, <var>z</var> должны иметь одинаковые размеры. См. также <a href="#Dots">Dots</a>, <a href="#TriPlot">TriPlot</a>. См. раздел <a href="mathgl_ru_9.html#Crust-sample">Crust &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Crust-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Crust</b><i> (<code>const mglData &amp;</code>tr, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> er=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcrust_005ftr"></a><u>Функция С:</u> <code>void</code> <b>mgl_crust_tr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> tr, <code>const char *</code>sch, <code>float</code> er)</i></dt>
+<dd><p>Как предыдущий с <var>x=tr</var>(0,:), <var>y=tr</var>(1,:), <var>z=tr</var>(2,:).
+</p></dd></dl>
+
+<hr size="6">
+<a name="TriPlot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Crust" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TriCont" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TriPlot-1"></a>
+<h3 class="subsection">3.14.6 TriPlot</h3>
+<a name="index-TriPlot"></a>
+
+<dl>
+<dt><a name="index-TriPlot-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TriPlot-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftriplot_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_triplot_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dt><a name="index-mgl_005ftriplot_005fxyzc"></a><u>Функция С:</u> <code>void</code> <b>mgl_triplot_xyzc</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует поверхность из треугольников. Вершины треугольников задаются индексами <var>id</var> в массиве точек {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если строка содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Размер по 1-му индексу массива <var>id</var> должен быть 3 или больше. Массивы <var>x</var>, <var>y</var>, <var>z</var> должны иметь одинаковые размеры. Массив <var>c</var> задает цвет треугольников (если <var>id</var>.ny=<var>c</var>.nx) или цвет вершин (если <var>x</var>.nx=<var>c</var>.nx). См. также <a href="#Dots">Dots</a>, <a href="#Crust">Crust</a>, <a href="#QuadPlot">QuadPlot</a>, <a href="#TriCont">TriCont</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TriPlot-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005ftriplot_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_triplot_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>z</var>[i]=<var>zVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="TriCont"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TriPlot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#QuadPlot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TriCont-1"></a>
+<h3 class="subsection">3.14.7 TriCont</h3>
+<a name="index-TriCont"></a>
+
+<dl>
+<dt><a name="index-TriContV"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriContV</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-TriContV-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriContV</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005ftricont_005fxyzcv"></a><u>C function:</u> <code>void</code> <b>mgl_tricont_xyzcv</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dt><a name="index-mgl_005ftricont_005fxyzv"></a><u>C function:</u> <code>void</code> <b>mgl_tricont_xyzv</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует линии уровня поверхности из треугольников при <var>z</var> = <var>zVal</var> (или для <var>z=v</var>[k] если <code>zVal==NAN</code>). Вершины треугольников задаются индексами <var>id</var> в массиве точек {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Размер по 1-му индексу массива <var>id</var> должен быть 3 или больше. Массивы <var>x</var>, <var>y</var>, <var>z</var> должны иметь одинаковые размеры. Массив <var>c</var> задает цвет треугольников (если <var>id</var>.ny=<var>c</var>.nx) или цвет вершин (если <var>x</var>.nx=<var>c</var>.nx). См. также <a href="#TriPlot">TriPlot</a>, <a href="#Cont">Cont</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TriCont-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriCont</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>num</code>=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-TriCont-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriCont</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>num</code>=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005ftricont_005fxyzc"></a><u>C function:</u> <code>void</code> <b>mgl_tricont_xyzc</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch, <code>num</code>, <code>float</code> zVal)</i></dt>
+<dt><a name="index-mgl_005ftricont_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_tricont_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>num</code>, <code>float</code> zVal)</i></dt>
+<dd><p>Аналогично предыдущему с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="QuadPlot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TriCont" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-by-formula" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="QuadPlot-1"></a>
+<h3 class="subsection">3.14.8 QuadPlot</h3>
+<a name="index-QuadPlot"></a>
+
+<dl>
+<dt><a name="index-QuadPlot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>QuadPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-QuadPlot-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>QuadPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fquadplot_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_quadplot_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dt><a name="index-mgl_005fquadplot_005fxyzc"></a><u>C function:</u> <code>void</code> <b>mgl_quadplot_xyzc</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует поверхность из четырехугольников. Вершины четырехугольников задаются индексами <var>id</var> в массиве точек {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если строка содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Размер по 1-му индексу массива <var>id</var> должен быть 4 или больше. Массивы <var>x</var>, <var>y</var>, <var>z</var> должны иметь одинаковые размеры. Массив <var>c</var> задает цвет четырехугольников (если <var>id</var>.ny=<var>c</var>.nx) или цвет вершин (если <var>x</var>.nx=<var>c</var>.nx). См. также <a href="#TriPlot">TriPlot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-QuadPlot-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>QuadPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fquadplot_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_quadplot_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>z</var>[i]=<var>zVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Plots-by-formula"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#QuadPlot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SimplePlot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0413_0440_0430_0444_0438_043a_0438-_0444_0443_043d_043ac_0438_0439"></a>
+<h3 class="subsection">3.14.9 Графики функций</h3>
+<a name="index-Plot-4"></a>
+<a name="index-Surf-3"></a>
+
+<p>Эти функции строят графики 1D или 2D функций, заданный текстовыми формулами. Вам не нужно создавать массивы для их построения. Параметр <var>stl</var> задаект стиль линии (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>) для <code>Plot()</code> или цветовую схему (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>) для <code>Surf()</code>. Параметр <var>n</var> задает минимальное число точек по координате(ам) для графика. В настоящее время (v. 1.10) число точек автоматически увеличивается для области резкого изменения функции, но только для 1D графиков (т.е. для Plot()).
+</p>
+<dl>
+<dt><a name="index-Plot-5"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const char *</code>eqY, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>int</code> n=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005ffplot"></a><u>Функция С:</u> <code>void</code> <b>mgl_fplot</b><i> (<code>HMGL</code> gr, <code>const char *</code>eqY, <code>const char *</code>stl, <code>float</code> zVal, <code>int</code> n)</i></dt>
+<dd><p>Рисует функцию &lsquo;<samp>eqY(x)</samp>&rsquo; в плоскости z=<var>zVal</var> с координатой &lsquo;<samp>x</samp>&rsquo; в диапазоне [<var>Min</var>.x, <var>Max</var>.x]. См. также <a href="#Plot">Plot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Plot-6"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const char *</code>eqX, <code>const char *</code>eqY, <code>const char *</code>eqZ, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>int</code> n=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005ffplot_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_fplot_xyz</b><i> (<code>HMGL</code> gr, <code>const char *</code>eqX, <code>const char *</code>eqY, <code>const char *</code>eqZ, <code>const char *</code>stl, <code>float</code> zVal, <code>int</code> n)</i></dt>
+<dd><p>Рисует параметрическую кривую {&lsquo;<samp>eqX(t)</samp>&rsquo;, &lsquo;<samp>eqY(t)</samp>&rsquo;, &lsquo;<samp>eqZ(t)</samp>&rsquo;}, где координата &lsquo;<samp>t</samp>&rsquo; меняется в диапазоне [0, 1]. См. также <a href="#Plot">Plot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf</b><i> (<code>const char *</code>eqZ, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> n=<code>100</code>);</i></dt>
+<dt><a name="index-mgl_005ffsurf"></a><u>Функция С:</u> <code>void</code> <b>mgl_fsurf</b><i> (<code>HMGL</code> gr, <code>const char *</code>eqZ, <code>const char *</code>stl, <code>int</code> n);</i></dt>
+<dd><p>Рисует поверхность &lsquo;<samp>eqY(x,y)</samp>&rsquo; с координатами &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; в диапазоне [<var>Min</var>, <var>Max</var>]. См. также <a href="#Surf">Surf</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf-5"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf</b><i> (<code>const char *</code>eqX, <code>const char *</code>eqY, <code>const char *</code>eqZ, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> n=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005ffsurf_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_fsurf_xyz</b><i> (<code>HMGL</code> gr, <code>const char *</code>eqX, <code>const char *</code>eqY, <code>const char *</code>eqZ, <code>const char *</code>stl, <code>int</code> n)</i></dt>
+<dd><p>Рисует параметрическую поверхность {&lsquo;<samp>eqX(u,v)</samp>&rsquo;, &lsquo;<samp>eqY(u,v)</samp>&rsquo;, &lsquo;<samp>eqZ(u,v)</samp>&rsquo;}, где координаты &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo; меняются в диапазоне [0, 1]. См. также <a href="#Surf">Surf</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="SimplePlot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-by-formula" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SimplePlot-1"></a>
+<h3 class="subsection">3.14.10 SimplePlot</h3>
+<a name="index-SimplePlot"></a>
+
+<dl>
+<dt><a name="index-SimplePlot-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SimplePlot</b><i> (<code>const mglData &amp;</code>a, <code>int</code> type=<code>0</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsimple_005fplot"></a><u>Функция С:</u> <code>void</code> <b>mgl_simple_plot</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> type, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует график массива <var>a</var> в зависимости от его размерности и параметра <var>type</var>. Строка <var>stl</var> задает стиль графика. Для 1d массивов: <code>type=0</code> &ndash; <a href="#Plot">Plot</a>, <code>type=1</code> &ndash; <a href="#Area">Area</a>, <code>type=2</code> &ndash; <a href="#Step">Step</a>, <code>type=3</code> &ndash; <a href="#Stem">Stem</a>, <code>type=4</code> &ndash; <a href="#Bars">Bars</a>. Для 2d массивов: <code>type=0</code> &ndash; <a href="#Surf">Surf</a>, <code>type=1</code> &ndash; <a href="#Dens">Dens</a>, <code>type=2</code> &ndash; <a href="#Mesh">Mesh</a>, <code>type=3</code> &ndash; <a href="#Cont">Cont</a>. Для 3d массивов: <code>type=0</code> &ndash; <a href="#Surf3">Surf3</a>, <code>type=1</code> &ndash; <a href="#Dens3">Dens3</a>, <code>type=2</code> &ndash; <a href="#Cont3">Cont3</a>, <code>type=2</code> &ndash; <a href="#Cloud">Cloud</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Nonlinear-fitting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SimplePlot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-distributions" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-1"></a>
+<h2 class="section">3.15 Nonlinear fitting</h2>
+<a name="index-Fit"></a>
+<a name="index-FitS"></a>
+<a name="index-PutsFit"></a>
+<a name="index-FitPnts"></a>
+<a name="index-Fit2"></a>
+<a name="index-Fit3"></a>
+
+<p>Эти функции подбирают параметры функции для наилучшей аппроксимации данных, т.е. минимизируют сумму <em>\sum_i (f(x_i, y_i, z_i) - a_i)^2/s_i^2</em>. При этом аппроксимирующая функция &lsquo;<samp>f</samp>&rsquo; может зависеть от одного аргумента &lsquo;<samp>x</samp>&rsquo; (1D случай), от двух аргументов &lsquo;<samp>x,y</samp>&rsquo; (2D случай) или от трех аргументов &lsquo;<samp>x,y,z</samp>&rsquo; (3D случай). Функция &lsquo;<samp>f</samp>&rsquo; также может зависеть от параметров. Список параметров задается строкой <var>var</var> (например, &lsquo;<samp>abcd</samp>&rsquo;). Обычно пользователь должен предоставить начальные значения параметров в переменной <var>ini</var>. Однако, при его отсутствии используются нулевые значения. Параметр <var>print</var>=<code>true</code> включает вывод найденной формулы в <var>Message</var> (see section <a href="#Error-handling">Обработка ошибок</a>).
+</p>
+<p>Функции Fit() и FitS() не рисуют полученные массивы. Они заполняют массив <var>fit</var> по формуле &lsquo;<samp>f</samp>&rsquo; с найденными коэффициентами и возвращают <em>\chi^2</em> ошибку аппроксимации. При этом, координаты &lsquo;<samp>x,y,z</samp>&rsquo; равнораспределены в интервале <var>Min</var>&ndash;<var>Max</var>. Число точек в <var>fit</var> выбирается максимальным из размера массива <var>fit</var> и значения переменной <var>FitPnts</var>. Функции используют библиотеку GSL. См. раздел <a href="mathgl_ru_9.html#Fitting-sample">Fitting &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-FitS-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-FitS-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyzas"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xyzas</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyzas_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xyzas_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-, y- и z-направлений для 3d массива заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FitS-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-FitS-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyzs"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xyzs</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyzs_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xyzs_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x- и y-направлений для 2d массива заданного параметрически <var>a</var>[i,j](<var>x</var>[i,j], <var>y</var>[i,j]) для каждого среза данных.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FitS-5"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-FitS-6"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxys"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xys</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxys_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xys_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-направления для 1d массива заданного параметрически <var>a</var>[i](<var>x</var>[i]) для каждого среза данных.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FitS-7"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-FitS-8"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fys"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_ys</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fys_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_ys_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-направления для 1d массива с <var>x</var> равно распределенным в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyza"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xyza</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyza_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xyza_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-, y- и z-направлений для 3d массива заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) с <var>s</var>[i,j,k]=1.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyz"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xyz</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyz_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xyz_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x- и y-направлений для 2d массива заданного параметрически <var>a</var>[i,j](<var>x</var>[i,j], <var>y</var>[i,j]) с <var>s</var>[i,j]=1 для каждого среза данных.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit-5"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit-6"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxy"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xy</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxy_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xy_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-направления для 1d массива заданного параметрически <var>a</var>[i](<var>x</var>[i]) с <var>s</var>[i]=1 для каждого среза данных.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit-7"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>&quot;&quot;</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit-8"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005f1"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_1</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005f1_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_1_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-направления для 1d массива <var>a</var> с <var>s</var>=1 и <var>x</var> равно распределенным в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit2-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit2</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit2-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit2</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005f2"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_2</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005f2_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_2_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x- и y-направлений для 2d массива <var>a</var> с <var>s</var>=1 и <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit3-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit3</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit3-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit3</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005f3"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_3</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005f3_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_3_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-, y- и z-направлений для 3d массива <var>a</var> с <var>s</var>=1 и <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-PutsFit-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>PutsFit</b><i> (<code>mglPoint</code> p, <code>const char *</code>prefix=<code>&quot;&quot;</code>, <code>const char *</code>font=<code>NULL</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fputs_005ffit"></a><u>Функция С:</u> <code>void</code> <b>mgl_puts_fit</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const char *</code>prefix, <code>const char *</code>font, <code>float</code> size=<code>-1</code>)</i></dt>
+<dd><p>Печатает последнюю подобранную формулу с найденными коэффициентами в точке <var>p0</var>. Строка <var>prefix</var> будет напечатана перед формулой. Все другие параметры такие же как в <a href="#Text-printing">Вывод текста</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetFit"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>const char *</code> <b>GetFit</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fget_005ffit"></a><u>Функция С:</u> <code>const char *</code> <b>mgl_get_fit</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Возвращает последнюю подобранную формулу с найденными коэффициентами.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FitPnts-of-mglGraph"></a><u>Переменная(C++) of mglGraph:</u> <code>int</code> <b>FitPnts</b></dt>
+<dd><p>Минимальное число точек для массива со значениями подобранной формулы.
+</p></dd></dl>
+
+
+
+
+<hr size="6">
+<a name="Data-distributions"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Frames_002fAnimation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0420_0430_0441_043f_0440e_0434e_043be_043d_0438e-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">3.16 Распределение данных</h2>
+<a name="index-Hist"></a>
+
+<p>Эти функции создают распределения данных. Они не выполняют построение сами по себе. Функции могут быть полезны в случае когда данные пользователя определены на случайно расположенных точка (например, после PIC расчетов) и он хочет построить график, требующий регулярных данных (данных на сетках). Диапазон сеток равен диапазону осей координат Min...Max. Массивы <var>x</var>, <var>y</var>, <var>z</var> определяют положение (координаты) точек. Массив <var>a</var> задает значения данных. Число точек в результате <var>res</var> &ndash; максимум из размера <var>res</var> и значения <var>FitPnts</var>.
+</p>
+<dl>
+<dt><a name="index-Hist-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Hist</b><i> (<code>mglData &amp;</code>res, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a)</i></dt>
+<dt><a name="index-mgl_005fhist_005fx"></a><u>C function:</u> <code>int</code> <b>mgl_hist_x</b><i> (<code>HMGL</code> gr, <code>HMDT</code> res, <code>const HMDT</code> x, <code>const HMDT</code> a)</i></dt>
+<dd><p>Создет 1D распределение значений массива <var>a</var> в диапазоне [Min, Max].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Hist-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Hist</b><i> (<code>mglData &amp;</code>res, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a)</i></dt>
+<dt><a name="index-mgl_005fhist_005fxy"></a><u>C function:</u> <code>int</code> <b>mgl_hist_xy</b><i> (<code>HMGL</code> gr, <code>HMDT</code> res, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a)</i></dt>
+<dd><p>Создет 2D распределение значений массива <var>a</var> в диапазоне [Min, Max].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Hist-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Hist</b><i> (<code>mglData &amp;</code>res, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a)</i></dt>
+<dt><a name="index-mgl_005fhist_005fxyz"></a><u>C function:</u> <code>int</code> <b>mgl_hist_xyz</b><i> (<code>HMGL</code> gr, <code>HMDT</code> res, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a)</i></dt>
+<dd><p>Создет 3D распределение значений массива <var>a</var> в диапазоне [Min, Max].
+</p></dd></dl>
+
+
+
+
+<hr size="6">
+<a name="Frames_002fAnimation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-distributions" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#IDTF-functions" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041a_0430_0434_0440_044b_002f_0410_043d_0438_043c_0430c_0438ya"></a>
+<h2 class="section">3.17 Кадры/Анимация</h2>
+<a name="index-NewFrame"></a>
+<a name="index-EndFrame"></a>
+<a name="index-GetNumFrame"></a>
+
+<p>Эти функции позволяют создавать несколько картинок одновременно. В большинстве случаев это бесполезно, но для органов управления (see section <a href="mathgl_ru_5.html#Widget-classes">&ldquo;Оконные&rdquo; классы</a>) это позволяет показывать анимацию. Также можно записать несколько кадров в анимированный GIF файл.
+</p>
+<dl>
+<dt><a name="index-NewFrame-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>int</code> <b>NewFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fnew_005fframe"></a><u>Функция С:</u> <code>int</code> <b>mgl_new_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Создает новый кадр. Функция возвращает номер текущего кадра. В режиме OpenGL функция не должны вызываться в параллельных потоках! &ndash; используйте прямое создание списка. Функция <code>EndFrame()</code> <strong>должна</strong> быть вызвана после рисования кадра для каждого вызова этой функции.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-EndFrame-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>EndFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fend_005fframe"></a><u>Функция С:</u> <code>void</code> <b>mgl_end_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Завершает рисование кадра.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetNumFrame-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>int</code> <b>GetNumFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fget_005fnum_005fframe"></a><u>Функция С:</u> <code>int</code> <b>mgl_get_num_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Возвращает число созданных кадров.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ResetFrames"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ResetFrames</b><i> ()</i></dt>
+<dt><a name="index-mgl_005freset_005fframes"></a><u>Функция С:</u> <code>int</code> <b>mgl_reset_frames</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Сбрасывает счетчик кадров в 0.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-StartGIF"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>StartGIF</b><i> (<code>const char *</code>fname, <code>int</code> ms=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005fstart_005fgif"></a><u>Функция С:</u> <code>void</code> <b>mgl_start_gif</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>int</code> ms)</i></dt>
+<dd><p>Начинает запись кадров в анимированный GIF файл <var>fname</var>. Параметр <var>ms</var> задает задержку между кадрами в миллисекундах. Вы <strong>не должны</strong> менять размер рисунка во время создания кино. Используйте CloseGIF() для завершения записи. Эта функция не работает в режиме OpenGL.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CloseGIF"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>int</code> <b>CloseGIF</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fclose_005fgif"></a><u>Функция С:</u> <code>void</code> <b>mgl_close_gif</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Завершает запись анимированного GIF файла.
+</p></dd></dl>
+
+<hr size="6">
+<a name="IDTF-functions"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Frames_002fAnimation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="IDTF-_0444_0443_043d_043ac_0438_0438"></a>
+<h2 class="section">3.18 IDTF функции</h2>
+<a name="index-NewFrame-2"></a>
+<a name="index-EndFrame-2"></a>
+<a name="index-GetNumFrame-2"></a>
+
+<p>Эти функции обеспечивают поддержку особых возможностей при создании IDTF. Во всех прочих случаях они не делают ничего.
+</p>
+<dl>
+<dt><a name="index-VertexColor"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>VertexColor</b><i> (<code>bool</code> enable)</i></dt>
+<dd><p>Разрешает плавное изменение цвета.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Compression"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Compression</b><i> (<code>bool</code> enable)</i></dt>
+<dd><p>Дает меньший объем файла, но с худшим качеством.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-StartGroup"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>StartGroup</b><i> (const char *name)</i></dt>
+<dd><p>Начинает определение группы. Группа может содержать объекты и другие группы. Они используются для выбора части модели при приближении, изменении прозрачности и т.д.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-EndGroup"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>EndGroup</b><i> ()</i></dt>
+<dd><p>Завершает определение группы.
+</p></dd></dl>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_4.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_4.html
new file mode 100644
index 0000000..736b711
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_4.html
@@ -0,0 +1,295 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: 4. Классы для отрисовки</title>
+
+<meta name="description" content="MathGL 1.11: 4. Классы для отрисовки">
+<meta name="keywords" content="MathGL 1.11: 4. Классы для отрисовки">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Plotter-classes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_3.html#IDTF-functions" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglGraphAB-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_5.html#Widget-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+
+<a name="g_t_041a_043b_0430_0441_0441_044b-_0434_043bya-_043e_0442_0440_0438_0441_043e_0432_043a_0438"></a>
+<h1 class="chapter">4. Классы для отрисовки</h1>
+<a name="index-mglGraphAB"></a>
+<a name="index-mglGraphZB"></a>
+<a name="index-mglGraphPS"></a>
+<a name="index-mglGraphGL"></a>
+<a name="index-mglGraphIDTF"></a>
+
+<p>Класс mglGraph (see section <a href="mathgl_ru_3.html#MathGL-core">Ядро MathGL</a>) обеспечивает базовые функции для создания научной графики, но это абстрактный класс. Причина в том, что существует несколько возможностей вывода/отображения получившегося рисунка: в растровый или в векторный файлы, используя OpenGL и т.д. В результате, для конечной отрисовки необходимо использовать производные классы. В принципе, можно наследовать непосредственно mglGraph (и так было до версии 1.6). Однако, я рекомендую использовать в качестве базового класс mglGraphAB для большего единообразия получающейся графики в различных классах. Класс mglGraphAB &ndash; другой абстрактный класс, обеспечивающий преобразование координат, базовые функции рисования и сохранения в растровое изображение. Он требует доопределения функций рисования линий, треугольников и четырехугольников. Ниже приведены классы &ldquo;отрисовки&rdquo; с короткими комментариями.
+</p>
+<dl>
+<dt><a name="index-mglGraphAB-1"></a><u>Класс:</u> <b>mglGraphAB</b></dt>
+<dd><p>Абстрактный класс, обеспечивающий отрисовку по глубине, преобразование к экранным координатам, сохранение в растровое изображение и т.д. Класс определен в <code>#include &lt;mgl/mgl_ab.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglGraphZB-1"></a><u>Класс:</u> <b>mglGraphZB</b></dt>
+<dd><p>Реализует растровую отрисовку изображения используя Z-Buffer. Можно использовать для рисования в памяти (или в консоли/SSH терминале). Также этот класс используется как базовый для рисования в окне (например, используя FLTK, Qt, wxWidgets библиотеки и пр.). При экспорте в EPS формат сохраняется растровая картинка. Получающийся рисунок лучшего качества, но рисуется медленнее чем в классе mglGraphPS. Класс определен в <code>#include &lt;mgl/mgl_zb.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglGraphPS-1"></a><u>Класс:</u> <b>mglGraphPS</b></dt>
+<dd><p>Реализует векторную отрисовку изображения с возможностью сохранения в векторный PostScript или SVG файл. Можно использовать для рисования в памяти (или в консоли/SSH терминале). Замечу, что сглаживание цвета не поддерживается, а при экспорте в EPS не поддерживается и прозрачность (в силу ограничения формата). В результате рисунок получается быстрее, но более низкого качества чем в классе mglGraphZB. Класс определен в <code>#include &lt;mgl/mgl_eps.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglGraphGL-1"></a><u>Класс:</u> <b>mglGraphGL</b></dt>
+<dd><p>Реализует векторную графику с использованием OpenGL. Класс не может быть использован для рисования в консоли. В силу ограничения OpenGL возможна проблема корректного отображения нескольких перекрывающихся поверхностей. Класс определен в <code>#include &lt;mgl/mgl_gl.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglGraphIDTF-1"></a><u>Класс:</u> <b>mglGraphIDTF</b></dt>
+<dd><p>Реализует экспорт графики в IDTF формате, который затем можно преобразовать в формат U3D. Класс определен в <code>#include &lt;mgl/mgl_idtf.h&gt;</code>.
+</p></dd></dl>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#mglGraphAB-class">4.1 Класс mglGraphAB</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="mglGraphAB-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plotter-classes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_5.html#Widget-classes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Plotter-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plotter-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_5.html#Widget-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041a_043b_0430_0441_0441-mglGraphAB"></a>
+<h2 class="section">4.1 Класс mglGraphAB</h2>
+<a name="index-mglGraphAB-2"></a>
+<a name="index-window-1"></a>
+<a name="index-mglDraw"></a>
+
+<p>Вообще говоря это чуть &ldquo;менее абстрактный&rdquo; класс чем mglGraph (see section <a href="mathgl_ru_3.html#MathGL-core">Ядро MathGL</a>). Он предоставляет много методов для обработки промежуточных данных и требует в производных классах определения только нескольких методов для отрисовки примитивов. Разработчикам, наследующим этот класс, следует посмотреть файл &lsquo;<samp>mgl_ab.h</samp>&rsquo; и комментарии в нем или обратиться к автору.
+</p>
+<p>Ниже я только перечислю основные общедоступные методы класса mglGraphAB. В первую очередь это функции, возвращающие созданный растровый рисунок, его ширину и высоту. В дальнейшем его можно использовать в любой графической библиотеке (см. также, <a href="mathgl_ru_5.html#Widget-classes">&ldquo;Оконные&rdquo; классы</a>) или сохранить в файл (см. также, <a href="mathgl_ru_3.html#Export-to-file">Экспорт в файл</a>).
+</p>
+<dl>
+<dt><a name="index-GetBits"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>const unsigned char *</code> <b>GetBits</b><i> ()</i></dt>
+<dt><a name="index-GetRGB"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>GetRGB</b><i> (<code>char *</code>buf, <code>int</code> size)</i></dt>
+<dt><a name="index-GetBGRN"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>GetBGRN</b><i> (<code>char *</code>buf, <code>int</code> size)</i></dt>
+<dt><a name="index-mgl_005fget_005frgb"></a><u>C function:</u> <code>const unsigned char *</code> <b>mgl_get_rgb</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Возвращает растровое изображение в формате RGB для текущего кадра. Формат каждого элемента (пикселя): {red, green, blue}. Число элементов Width*Height. Положение элемента {i,j} есть [3*i + 3*Width*j] (или [4*i + 4*Width*j] для <code>GetBGRN()</code>). В Python вы должны предоставить буфер <var>buf</var> достаточного размера <var>size</var>, т.е. код должен выглядеть следующим образом 
+</p><pre class="verbatim">from mathgl import *
+gr = mglGraph();
+bits='\t';
+bits=bits.expandtabs(4*gr.GetWidth()*gr.GetHeight());
+gr.GetBGRN(bits, len(bits));
+</pre></dd></dl>
+
+<dl>
+<dt><a name="index-GetRGBA"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>const unsigned char *</code> <b>GetRGBA</b><i> ()</i></dt>
+<dt><a name="index-GetRGBA-1"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>GetRGBA</b><i> (<code>char *</code>buf, <code>int</code> size)</i></dt>
+<dt><a name="index-mgl_005fget_005frgba"></a><u>C function:</u> <code>const unsigned char *</code> <b>mgl_get_rgba</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Возвращает растровое изображение в формате RGBA для текущего кадра. Формат каждого элемента (пикселя): {red, green, blue, alpha}. Число элементов Width*Height. Положение элемента {i,j} есть [4*i + 4*Width*j].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetWidth"></a><u>Метод класса <code>mglGraphAB</code> (C++, Python):</u> <code>int</code> <b>GetWidth</b><i> ()</i></dt>
+<dt><a name="index-GetHeight"></a><u>Метод класса <code>mglGraphAB</code> (C++, Python):</u> <code>int</code> <b>GetHeight</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fget_005fwidth"></a><u>C function:</u> <code>int</code> <b>mgl_get_width</b><i> (<code>HMGL</code> gr)</i></dt>
+<dt><a name="index-mgl_005fget_005fheight"></a><u>C function:</u> <code>int</code> <b>mgl_get_height</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Возвращает ширину и высоту изображения.
+</p></dd></dl>
+
+<p>Класс mglGraphAB &ndash; базовый класс для &ldquo;оконных классов&rdquo;. Поэтому он содержит набор функций для создания и управления окном. Большинство из них применимо только в &ldquo;оконных классах&rdquo; (типа mglGraphFLTK и др, see section <a href="mathgl_ru_5.html#Widget-classes">&ldquo;Оконные&rdquo; классы</a>). В остальных случаях функции ничего не делают. Если вы создаете оконный класс, то Вам следует предоставить такой же интерфейс для удобства пользователя.
+</p>
+<dl>
+<dt><a name="index-Window-on-mglGraphAB"></a><u>Method on mglGraphAB:</u> <code>void</code> <b>Window</b><i> (<code>int</code> argc, <code>char **</code>argv, <code>int (*</code>draw)(<code>mglGraph *</code>gr, <code>void *</code>p), <code>const char *</code>title, <code>void *</code>par=<code>NULL</code>, <code>void (*</code>reload)(<code>int</code> next, <code>void *</code>p)=<code>NULL</code>, <code>bool</code> maximize=<code>false</code>)</i></dt>
+<dd><p>Создает окно для вывода графика. Параметры <var>argc</var>, <var>argv</var> содержат информацию операционной системы и их слеудет передать в эту функцию из функции <code>main(int argc,char **argv)</code> (хотя они и могут быть равны <code>NULL</code>). Параметр <var>draw</var> &ndash; указатель (имя) функции рисования. Есть возможность создания нескольких кадров вначале (требует больше памяти) и их быстрая анимации в дальнейшем. В этом случае функция <var>draw</var> должна возвращать число кадров или ноль для рисования по запросу. Замечу, что <var>draw</var> может быть равна <code>NULL</code> для отображения статической (текущей) картинки. Параметр <var>title</var> задает заголовок окна. Параметр <var>par</var> содержит указатель на данные, передаваемые функции рисования <var>draw</var>. Параметр <var>maximize</var>=<code>true</code> открывает окно раскрытым на весь экран.
+</p>
+<p>В окне просмотра можно использовать клавиши: &rsquo;a&rsquo;, &rsquo;d&rsquo;, &rsquo;w&rsquo;, &rsquo;s&rsquo; для вращения; &rsquo;,&rsquo;, &rsquo;.&rsquo; для просмотра предыдущего и следующего кадров; &rsquo;r&rsquo; для переключения прозрачности; &rsquo;f&rsquo; для переключения оспещенности; &rsquo;x&rsquo; для закрытия окна.
+</p>
+<p><strong>ВАЖНО!!!</strong> Вам не следует вызывать функцию Rotate() (see section <a href="mathgl_ru_3.html#Transformation-matrix">Матрица преобразования</a>) если Вы хотите вращать график.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Window-on-mglGraphAB-1"></a><u>Method on mglGraphAB:</u> <code>void</code> <b>Window</b><i> (<code>int</code> argc, <code>char **</code>argv, <code>mglDraw *</code>draw, <code>const char *</code>title, <code>bool</code> maximize=<code>false</code>)</i></dt>
+<dd><p>В основном аналогична предыдущей. Основное отличие в том, что функции рисования и обновления данных определены в классе наследнике класса <code>mglDraw</code>. Этот класс определен в <code>#include &lt;mgl/mgl_define.h&gt;</code> и имеет только 2 метода:
+</p><pre class="verbatim">class mglDraw
+{
+public:
+    virtual int Draw(mglGraph *) { return 0; };
+    virtual void Reload(int) {};
+};
+</pre><p>Вы можете создать класс-наследник <code>mglDraw</code> и переопределить один или оба метода для использования с данной функцией.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-ToggleAlpha"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleAlpha</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005falpha"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_alpha</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Включает/выключает прозрачность, но не перезаписывает настройки пользовательской функции рисования.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ToggleLight"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleLight</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005flight"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_light</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Включает/выключает освещение, но не перезаписывает настройки пользовательской функции рисования.
+Switch on/off lighting but do not overwrite switches in user drawing function.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ToggleZoom"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleZoom</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005fzoom"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_zoom</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Включает/выключает приближение выбранного мышью области рисунка.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ToggleRotate"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleRotate</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005frotate"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_rotate</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Включает/выключает режим вращения мышью. Обычно левая кнопка вращает график, средняя сдвигает, правая приближает и меняет перспективу.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ToggleNo"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleNo</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005fno"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_no</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Выключает режим приближения/вращения и восстанавливает вид по умолчанию.
+Switch off all zooming and rotation and restore initial state.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Update"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>Update</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fupdate"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_update</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Обновляет содержимое окна.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ReLoad"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ReLoad</b><i> (<code>bool</code> o)</i></dt>
+<dt><a name="index-mgl_005fwnd_005freload"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_reload</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+<dd><p>Перезагружает данные пользователя и обновляет картинку.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Adjust"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>Adjust</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fadjust"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_adjust</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Подгоняет размер картинки под размер окна (виджета).
+</p></dd></dl>
+<dl>
+<dt><a name="index-NextFrame"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>NextFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fnext_005fframe"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_next_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Показывает следующий кадр.
+</p></dd></dl>
+<dl>
+<dt><a name="index-PrevFrame"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>PrevFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fprev_005fframe"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_prev_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Показывает предыдущий кадр.
+Show previous frame if one.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Animation"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>Animation</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fanimation"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_animation</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Запускает/останавливает слайд-шоу (анимацию) кадров.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fwnd_005fset_005fauto_005fclf"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_set_auto_clf</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+</dl>
+<dl>
+<dt><a name="index-AutoClf-of-mglGraphAB"></a><u>Widget option of mglGraphAB:</u> <code>bool</code> <b>AutoClf</b></dt>
+<dd><p>Включает/выключает автоматическую очистку рисунка между перерисовкой. Выключение полезно для рисования с накоплением (например, результатов/точек расчета).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fwnd_005fset_005fdelay"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_set_delay</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+</dl>
+<dl>
+<dt><a name="index-Delay-of-mglGraphAB"></a><u>Widget option of mglGraphAB:</u> <code>float</code> <b>Delay</b></dt>
+<dd><p>Задержка анимации в секундах. По умолчанию равно 1 секунде.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CalcXYZ"></a><u>Метод класса <code>mglGraphAB</code> (C++, Python):</u> <code>mglPoint</code> <b>CalcXYZ</b><i> (<code>int</code> xs, <code>int</code> ys)</i></dt>
+<dt><a name="index-mgl_005fcalc_005fxyz-1"></a><u>C function:</u> <code>void</code> <b>mgl_calc_xyz</b><i> (<code>HMGL</code> gr, <code>int</code> xs, <code>int</code> ys, <code>float *</code>x, <code>float *</code>y, <code>float *</code>z)</i></dt>
+<dd><p>Вычисляет 3D координаты {x,y,z} для экранной точки {xs,ys}. В данный момент игнорируется перспектива графика и формулы перехода в криволинейные координаты. Вычисления производятся для последнего использованного InPlot (see section <a href="mathgl_ru_3.html#Transformation-matrix">Матрица преобразования</a>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CalcScr"></a><u>Метод класса <code>mglGraphAB</code> (C++, Python):</u> <code>mglPoint</code> <b>CalcScr</b><i> (<code>mglPoint</code> p)</i></dt>
+<dt><a name="index-CalcScr-1"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>CalcScr</b><i> (<code>mglPoint</code> p, <code>int *</code>xs, <code>int *</code>ys)</i></dt>
+<dt><a name="index-mgl_005fcalc_005fscr"></a><u>C function:</u> <code>void</code> <b>mgl_calc_scr</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>int *</code>xs, <code>int *</code>ys)</i></dt>
+<dd><p>Вычисляет экранные координаты {xs,ys} для 3D координат {x,y,z}. Вычисления производятся для последнего использованного InPlot (see section <a href="mathgl_ru_3.html#Transformation-matrix">Матрица преобразования</a>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fwnd_005fset_005fshow_005fmouse_005fpos"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_set_show_mouse_pos</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+</dl>
+<dl>
+<dt><a name="index-ShowMousePos-of-mglGraphAB"></a><u>Widget option of mglGraphAB:</u> <code>float</code> <b>ShowMousePos</b></dt>
+<dd><p>Включает/выключает показ координат последнего нажатия кнопки мыши на рисунке.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-LastMousePos-of-mglGraphAB"></a><u>Widget option of mglGraphAB:</u> <code>mglPoint</code> <b>LastMousePos</b></dt>
+<dd><p>Последнее положение нажатия кнопки мыши.
+</p></dd></dl>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plotter-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_5.html#Widget-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_5.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_5.html
new file mode 100644
index 0000000..a502e42
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_5.html
@@ -0,0 +1,477 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: 5. &ldquo;Оконные&rdquo; классы</title>
+
+<meta name="description" content="MathGL 1.11: 5. &ldquo;Оконные&rdquo; классы">
+<meta name="keywords" content="MathGL 1.11: 5. &ldquo;Оконные&rdquo; классы">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Widget-classes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_4.html#mglGraphAB-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fl_005fMathGL-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_6.html#mglData-class" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+
+<a name="g_t_0060_0060_041e_043a_043e_043d_043d_044be_0027_0027-_043a_043b_0430_0441_0441_044b"></a>
+<h1 class="chapter">5. &ldquo;Оконные&rdquo; классы</h1>
+<a name="index-mglGraphFLTK"></a>
+<a name="index-mglGraphQT"></a>
+<a name="index-mglGraphGLUT"></a>
+<a name="index-Fl_005fMathGL"></a>
+<a name="index-QMathGL"></a>
+<a name="index-window-2"></a>
+<a name="index-widgets-1"></a>
+
+<p>Есть целый набор &ldquo;оконных&rdquo; классов для создания окон с графикой MathGL: <code>mglGraphFLTK</code>, <code>mglGraphQT</code>, <code>mglGraphGLUT</code>. Все эти классы позволяют пользователю просмотривать, вращать, экспортировать рисунок. Большинство из них (кроме <code>mglGraphGLUT</code>) являются наследниками класса <code>mglGraphZB</code> и используют &ldquo;присоединенный&rdquo; класс для центрального виджета окна. Все оконные классы имеют схожий набор функций (see section <a href="mathgl_ru_4.html#mglGraphAB-class">Класс mglGraphAB</a>). Ниже приведен список классов с краткими комментариями.
+</p>
+<dl>
+<dt><a name="index-mglGraphFLTK-1"></a><u>Class:</u> <b>mglGraphFLTK</b></dt>
+<dd><p>Создает окно используя библиотеку FLTK. Окно имеет панель инструментов и меню  для упрощения действий с графиками. &ldquo;Присоединенный&rdquo; класс элемента интерфейса &ndash; <code>Fl_MathGL</code>. Класс определен в <code>#include &lt;mgl/mgl_fltk.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fl_005fMathGL-1"></a><u>Class:</u> <b>Fl_MathGL</b></dt>
+<dd><p>Класс реализует элемент интерфейса FLTK для отображения графики MathGL. Класс определен в <code>#include &lt;mgl/mgl_fltk.h&gt;</code>.
+</p></dd></dl>
+
+<div class="float">
+<img src="fltk.png" alt="fltk">
+
+</div><p><strong>Пример окна FLTK с графикой MathGL.
+</strong>
+</p>
+<dl>
+<dt><a name="index-mglGraphQT-1"></a><u>Class:</u> <b>mglGraphQT</b></dt>
+<dd><p>Создает окно используя библиотеку Qt. Окно имеет панель инструментов и меню  для упрощения действий с графиками. &ldquo;Присоединенный&rdquo; класс элемента интерфейса &ndash; <code>QMathGL</code>. Класс определен в <code>#include &lt;mgl/mgl_qt.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-QMathGL-1"></a><u>Class:</u> <b>QMathGL</b></dt>
+<dd><p>Класс реализует элемент интерфейса Qt для отображения графики MathGL. Класс определен в <code>#include &lt;mgl/mgl_qt.h&gt;</code>.
+</p></dd></dl>
+
+<div class="float">
+<img src="qt.png" alt="qt">
+
+</div><p><strong>Пример окна Qt с графикой MathGL.
+</strong>
+</p>
+<dl>
+<dt><a name="index-mglGraphGLUT-1"></a><u>Class:</u> <b>mglGraphGLUT</b></dt>
+<dd><p>Создает окно используя библиотеку GLUT. Класс определен в <code>#include &lt;mgl/mgl_glut.h&gt;</code>.
+</p></dd></dl>
+
+<div class="float">
+<img src="glut.png" alt="glut">
+
+</div><p><strong>Пример окна GLUT с графикой MathGL.
+</strong>
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Fl_005fMathGL-class">5.1 Класс Fl_MathGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#QMathGL-class">5.2 QMathGL class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Fl_005fMathGL-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Widget-classes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#QMathGL-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Widget-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Widget-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_6.html#mglData-class" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041a_043b_0430_0441_0441-Fl_005fMathGL"></a>
+<h2 class="section">5.1 Класс Fl_MathGL</h2>
+<a name="index-Fl_005fMathGL-2"></a>
+<a name="index-widgets-2"></a>
+
+<p>Класс реализует элемент интерфейса FLTK для отображения графики MathGL (определен в <code>#include &lt;mgl/mgl_fltk.h&gt;</code>).
+</p>
+<dl>
+<dt><a name="index-set_005fdraw-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_draw</b><i> (<code>mglDraw *</code>dr)</i></dt>
+<dd><p>Задает функцию рисования из класса производного от <code>mglDraw</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-update-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>update</b><i> (<code>mglGraph *</code>gr=<code>NULL</code>)</i></dt>
+<dd><p>Обновляет (перерисовывает) график, используя экземпляр класса <var>gr</var> (по умолчанию встроенный).
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fangle-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_angle</b><i> (<code>float</code> t, <code>float</code> p)</i></dt>
+<dd><p>Задает углы для дополнительного вращения графика.
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fstate-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_state</b><i> (<code>int</code> f)</i></dt>
+<dd><p>Задает битовые флаги для: 1 - прозрачности, 2 - освещения.
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fstate-on-Fl_005fMathGL-1"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_state</b><i> (<code>bool</code> z, <code>bool</code> r)</i></dt>
+<dd><p>Задает флаги обработки движений мыши: <var>z</var>=<code>true</code> &ndash; разрешает приближение выделения, <var>r</var>=<code>true</code> разрешает вращение/сдвиг/приближение/перспективу.
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fzoom-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_zoom</b><i> (<code>float</code> X1, <code>float</code> Y1, <code>float</code> X2, <code>float</code> Y2)</i></dt>
+<dd><p>Задает область приближения.
+</p></dd></dl>
+<dl>
+<dt><a name="index-get_005fzoom-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>get_zoom</b><i> (<code>float *</code>X1, <code>float *</code>Y1, <code>float *</code>X2, <code>float *</code>Y2)</i></dt>
+<dd><p>Возвращает область приближения.
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fpopup-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_popup</b><i> (<code>const Fl_Menu_Item *</code>pmenu, <code>Fl_Widget *</code>w, <code>void *</code>v)</i></dt>
+<dd><p>Задает указатель на всплывающее меню.
+</p></dd></dl>
+<dl>
+<dt><a name="index-get_005fgraph-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>mglGraph *</code> <b>get_graph</b><i> ()</i></dt>
+<dd><p>Возвращает указатель на класс, строящий графики.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-tet_005fval-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>Fl_Valuator *</code> <b>tet_val</b></dt>
+<dd><p>Указатель на внешний элемент управления для изменения угла tet.
+</p></dd></dl>
+<dl>
+<dt><a name="index-phi_005fval-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>Fl_Valuator *</code> <b>phi_val</b></dt>
+<dd><p>Указатель на внешний элемент управления для изменения угла phi.
+</p></dd></dl>
+<dl>
+<dt><a name="index-graph-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>mglGraphAB *</code> <b>graph</b></dt>
+<dd><p>Указатель на экземпляр класса для построения графиков.
+</p></dd></dl>
+<dl>
+<dt><a name="index-draw_005fpar-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>void *</code> <b>draw_par</b></dt>
+<dd><p>Параметр для функции рисования.
+</p></dd></dl>
+<dl>
+<dt><a name="index-draw_005ffunc-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>int (*</code> <b>draw_func</b><i> <code>)(mglGraph *gr, void *par)</code></i></dt>
+<dd><p>Указатель на функцию рисования.
+</p></dd></dl>
+
+<hr size="6">
+<a name="QMathGL-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fl_005fMathGL-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_6.html#mglData-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Widget-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Widget-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_6.html#mglData-class" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="QMathGL-class-1"></a>
+<h2 class="section">5.2 QMathGL class</h2>
+<a name="index-QMathGL-2"></a>
+<a name="index-widgets-3"></a>
+
+<p>Класс реализует элемент интерфейса Qt для отображения графики MathGL (определен в <code>#include &lt;mgl/mgl_qt.h&gt;</code>).
+</p>
+<dl>
+<dt><a name="index-setDraw-on-QMathGL"></a><u>Method on QMathGL:</u> <code>void</code> <b>setDraw</b><i> (<code>mglDraw *</code>dr)</i></dt>
+<dd><p>Задает функцию рисования из класса производного от <code>mglDraw</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-setDraw-on-QMathGL-1"></a><u>Method on QMathGL:</u> <code>void</code> <b>setDraw</b><i> (<code>int (*</code>draw)(<code>mglGraph *</code>gr, <code>void *</code>p), <code>void *</code>par=<code>NULL</code>)</i></dt>
+<dd><p>Задает функцию рисования <var>draw</var> и укзатель <var>par</var> на параметр для нее.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-setGraph-on-QMathGL"></a><u>Method on QMathGL:</u> <code>void</code> <b>setGraph</b><i> (<code>mglGraphAB *</code>gr)</i></dt>
+<dd><p>Устанавливает указатель на внешний экземпляр класса для рисования (вместо встроенного <code>mglGraphZB</code>). Отмечу, что QMathGL автоматически удалит этот объект при удалении элемента интерфейса или при новом вызове <code>setGraph()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-setPopup-on-QMathGL"></a><u>Method on QMathGL:</u> <code>void</code> <b>setPopup</b><i> (<code>QMenu *</code>p)</i></dt>
+<dd><p>Задает указатель на всплывающее меню.
+</p></dd></dl>
+<dl>
+<dt><a name="index-setSize-on-QMathGL"></a><u>Method on QMathGL:</u> <code>void</code> <b>setSize</b><i> (<code>int</code> w, <code>int</code> h)</i></dt>
+<dd><p>Задает размеры элемента управления и картинки.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getRatio-on-QMathGL"></a><u>Method on QMathGL:</u> <code>double</code> <b>getRatio</b><i> ()</i></dt>
+<dd><p>Возвращает соотношение сторон рисунка.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-getPer-on-QMathGL"></a><u>Method on QMathGL:</u> <code>int</code> <b>getPer</b><i> ()</i></dt>
+<dd><p>Возвращает величину перспективы в процентах.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getPhi-on-QMathGL"></a><u>Method on QMathGL:</u> <code>int</code> <b>getPhi</b><i> ()</i></dt>
+<dd><p>Возвращает величину угла Phi в градусах.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getTet-on-QMathGL"></a><u>Method on QMathGL:</u> <code>int</code> <b>getTet</b><i> ()</i></dt>
+<dd><p>Возвращает величину угла Theta в градусах.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getAlpha-on-QMathGL"></a><u>Method on QMathGL:</u> <code>bool</code> <b>getAlpha</b><i> ()</i></dt>
+<dd><p>Возвращает состояние переключателя прозрачности.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getLight-on-QMathGL"></a><u>Method on QMathGL:</u> <code>bool</code> <b>getLight</b><i> ()</i></dt>
+<dd><p>Возвращает состояние переключателя освещения.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getZoom-on-QMathGL"></a><u>Method on QMathGL:</u> <code>bool</code> <b>getZoom</b><i> ()</i></dt>
+<dd><p>Возвращает состояние переключателя приближения мышью.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getRotate-on-QMathGL"></a><u>Method on QMathGL:</u> <code>bool</code> <b>getRotate</b><i> ()</i></dt>
+<dd><p>Возвращает состояние переключателя вращения мышью.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-void-on-QMathGL"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> refresh ()</i></dt>
+<dd><p>Перерисовывает (обновляет) элемент управления без вызова функции рисования.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-1"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> update (<code>mglGraph *</code>gr=<code>NULL</code>)</i></dt>
+<dd><p>Обновляет рисунок путем вызова функции рисования.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-2"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> copy ()</i></dt>
+<dd><p>Копирует график в буфер обмена.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-3"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setPer (<code>int</code> val)</i></dt>
+<dd><p>Задает величину перспективы.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-4"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setPhi (<code>int</code> val)</i></dt>
+<dd><p>Задает величину угла Phi.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-5"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setTet (<code>int</code> val)</i></dt>
+<dd><p>Задает величину угла Theta.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-6"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setAlpha (<code>bool</code> val)</i></dt>
+<dd><p>Включает/выключает прозрачность.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-7"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setLight (<code>bool</code> val)</i></dt>
+<dd><p>Включает/выключает освещение.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-8"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setZoom (<code>bool</code> val)</i></dt>
+<dd><p>Включает/выключает приближение мышью.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-9"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setRotate (<code>bool</code> val)</i></dt>
+<dd><p>Включает/выключает вращение мышью.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-10"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> zoomIn ()</i></dt>
+<dd><p>Приблиажет график.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-11"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> zoomOut ()</i></dt>
+<dd><p>Отдаляет график.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-12"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> restore ()</i></dt>
+<dd><p>Восстанавливает приближение и поворот графика в значения по умолчанию.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-13"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> reload ()</i></dt>
+<dd><p>Обновляет данные и перерисовывает график.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-14"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> shiftLeft ()</i></dt>
+<dd><p>Сдвигает график влево.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-15"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> shiftRight ()</i></dt>
+<dd><p>Сдвигает график вправо.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-16"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i>shiftUp  ()</i></dt>
+<dd><p>Сдвигает график вверх.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-17"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> shiftDown ()</i></dt>
+<dd><p>Сдвигает график вниз.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-18"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportPNG (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Сохраняет текущий рисунок в PNG файл.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-19"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportPNGs (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Сохраняет текущий рисунок в PNG файл без прозрачности.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-20"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportJPG (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Сохраняет текущий рисунок в JPEG файл.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-21"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportBPS (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Сохраняет текущий рисунок в растровый EPS файл.
+Export current picture to bitmap EPS file.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-22"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportEPS (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Сохраняет текущий рисунок в векторный EPS файл.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-23"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportSVG (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Сохраняет текущий рисунок в векторный SVG файл.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-24"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportIDTF (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Сохраняет текущий рисунок в IDTF файл.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-25"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setMGLFont (<code>QString</code> path)</i></dt>
+<dd><p>Восстанавливает (<var>path</var>=<code>&quot;&quot;</code>) или загружает файлы шрифтов.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-26"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> print ()</i></dt>
+<dd><p>Печатает текущий рисунок.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-27"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> adjust ()</i></dt>
+<dd><p>Подгоняет размер картинки под размер окна. Функция выполняется только если graph &ndash; экземпляр класса mglGraphQT.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-28"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> nextSlide ()</i></dt>
+<dd><p>Показывает следующий кадр. Функция выполняется только если graph &ndash; экземпляр класса mglGraphQT.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-29"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> prevSlide ()</i></dt>
+<dd><p>Показывает предыдущий кадр. Функция выполняется только если graph &ndash; экземпляр класса mglGraphQT.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-30"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> animation (<code>bool</code> st=<code>true</code>)</i></dt>
+<dd><p>Запускает анимацию. Функция выполняется только если graph &ndash; экземпляр класса mglGraphQT.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-31"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> about ()</i></dt>
+<dd><p>Показывает информацию о программе.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-32"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> aboutQt ()</i></dt>
+<dd><p>Показывает информацию о версии Qt.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-void-on-QMathGL-33"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> phiChanged (<code>int</code> val)</i></dt>
+<dd><p>Угол Phi изменен.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-34"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> tetChanged (<code>int</code> val)</i></dt>
+<dd><p>Угол Tet изменен.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-35"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> perChanged (<code>int</code> val)</i></dt>
+<dd><p>Перспектива изменена.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-36"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> alphaChanged (<code>bool</code> val)</i></dt>
+<dd><p>Прозрачность изменена.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-37"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> lightChanged (<code>bool</code> val)</i></dt>
+<dd><p>Освещение изменено.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-38"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> zoomChanged (<code>bool</code> val)</i></dt>
+<dd><p>Режим приближения мышью изменен.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-39"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> rotateChanged (<code>bool</code> val)</i></dt>
+<dd><p>Режим вращения мышью изменен.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-appName-of-QMathGL"></a><u>Widget option of QMathGL:</u> <code>QString</code> <b>appName</b></dt>
+<dd><p>Имя приложения для окон сообщений.
+</p></dd></dl>
+<dl>
+<dt><a name="index-autoResize-of-QMathGL"></a><u>Widget option of QMathGL:</u> <code>bool</code> <b>autoResize</b></dt>
+<dd><p>Разрешить изменять размер рисунка (по умолчанию false).
+</p></dd></dl>
+<dl>
+<dt><a name="index-animDelay-of-QMathGL"></a><u>Widget option of QMathGL:</u> <code>int</code> <b>animDelay</b></dt>
+<dd><p>Задержка анимации в мсек.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Widget-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_6.html#mglData-class" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_6.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_6.html
new file mode 100644
index 0000000..eb2d865
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_6.html
@@ -0,0 +1,1115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: 6. Класс mglData</title>
+
+<meta name="description" content="MathGL 1.11: 6. Класс mglData">
+<meta name="keywords" content="MathGL 1.11: 6. Класс mglData">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="mglData-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_5.html#QMathGL-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Public-variables" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_5.html#Widget-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041a_043b_0430_0441_0441-mglData"></a>
+<h1 class="chapter">6. Класс mglData</h1>
+
+<p>Это класс для работы с массивами данных, определенный в <code>#include &lt;mgl/mgl_data.h&gt;</code>. Он содержит функции для выделения памяти и изменения размера данных, чтения данных из файла, численного дифференцирования/интегрирования/интерполяции и пр., заполнения по текстовой формуле и т.д. Класс позволяет работать с данными размерности не более 3 (как функции от трех переменных &ndash; x,y,z). По умолчанию внутреннее представление данных &ndash; float, выбранный в силу меньшего размера занимаемой памяти и достаточной для построения графиков точности. Базовый тип можно сменить на этапе установки (see section <a href="mathgl_ru_1.html#Installation-and-using">Установка MathGL</a>) указав опцию <code>--enable-double</code>. Однако, в дальнейшем в документации будет использован тип <code>float</code>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Public-variables">6.1 Переменные</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Create-and-delete">6.2 Создание и удаление</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fill">6.3 Заполнение данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Rearrange">6.4 Изменение размеров данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#File-I_002fO">6.5 Чтение/сохранение данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Make-another-data">6.6 Создание новых данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Change-data">6.7 Изменение данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Interpolation">6.8 Интерполяция</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Informational-functions">6.9 Информационные функции</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Operators">6.10 Операторы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Global-functions">6.11 Глобальные функции</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Public-variables"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglData-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Create-and-delete" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041fe_0440e_043ce_043d_043d_044be"></a>
+<h2 class="section">6.1 Переменные</h2>
+
+<dl>
+<dt><a name="index-a-of-mglData"></a><u>Variable of mglData:</u> <code>float *</code> <b>a</b></dt>
+<dd><p>Указатель на массив данных. Это одномерный массив. Например, матрица [nx x ny x nz] представляется одномерным массивом длиной nx*ny*nz, где элемент с индексами {i, j, k} находится как a[i+nx*j+nx*ny*k] (индексы отсчитываются от нуля).
+</p></dd></dl>
+<dl>
+<dt><a name="index-nx-of-mglData"></a><u>Variable of mglData:</u> <code>int</code> <b>nx</b></dt>
+<dd><p>Размер массива по 1-ой размерности (&rsquo;x&rsquo; размерности).
+</p></dd></dl>
+<dl>
+<dt><a name="index-ny-of-mglData"></a><u>Variable of mglData:</u> <code>int</code> <b>ny</b></dt>
+<dd><p>Размер массива по 2-ой размерности (&rsquo;y&rsquo; размерности).
+</p></dd></dl>
+<dl>
+<dt><a name="index-nz-of-mglData"></a><u>Variable of mglData:</u> <code>int</code> <b>nz</b></dt>
+<dd><p>Размер массива по 3-ей размерности (&rsquo;z&rsquo; размерности).
+</p></dd></dl>
+<dl>
+<dt><a name="index-id-of-mglData"></a><u>Variable of mglData:</u> <code>char *</code> <b>id</b></dt>
+<dd><p>Имена колонки (или среза при nz&gt;1) &ndash; один символ на колонку.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Create-and-delete"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Public-variables" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fill" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_043e_0437_0434_0430_043d_0438e-_0438-_0443_0434_0430_043be_043d_0438e"></a>
+<h2 class="section">6.2 Создание и удаление</h2>
+<a name="index-mglData"></a>
+<a name="index-Set"></a>
+
+<dl>
+<dt><a name="index--on-mglData"></a><u>Конструктор on <code>mglData</code>:</u> <b><code></code></b><i> mglData (<code>int</code> mx=<code>1</code>, <code>int</code> my=<code>1</code>, <code>int</code> mz=<code>1</code>)</i></dt>
+<dd><p>Конструктор по умолчанию. Выделяет память для массива данных и заполняет ее нулями.
+</p></dd></dl>
+<dl>
+<dt><a name="index--on-mglData-1"></a><u>Конструктор on <code>mglData</code>:</u> <b><code></code></b><i> mglData (<code>const char *</code>fname)</i></dt>
+<dd><p>Читает данные из файла.
+</p></dd></dl>
+<dl>
+<dt><a name="index--on-mglData-2"></a><u>Конструктор on <code>mglData</code>:</u> <b><code></code></b><i> mglData (<code>const mglData</code> &amp;dat)</i></dt>
+<dd><p>Копирует данные из другого экземпляра <code>mglData</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Create"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Create</b><i> (<code>int</code> mx, <code>int</code> my=<code>1</code>, <code>int</code> mz=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fcreate"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_create</b><i> (<code>HMDT</code> dat, <code>int</code> mx, <code>int</code> my, <code>int</code> mz)</i></dt>
+<dd><p>Создает/пересоздает массив данных указанного размера и заполняет его нулями. Ничего не делает при <var>mx</var>, <var>my</var>, <var>mz</var> отрицательных или равных нулю.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-1"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const float *</code>A, <code>int</code> NX, <code>int</code> NY=<code>1</code>, <code>int</code> NZ=<code>1</code>)</i></dt>
+<dt><a name="index-Set-2"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const double *</code>A, <code>int</code> NX, <code>int</code> NY=<code>1</code>, <code>int</code> NZ=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005ffloat"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_float</b><i> (<code>HMDT</code> dat, <code>const float *</code>A, <code>int</code> NX, <code>int</code> NY, <code>int</code> NZ)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fdouble"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_double</b><i> (<code>HMDT</code> dat, <code>const double *</code>A, <code>int</code> NX, <code>int</code> NY, <code>int</code> NZ)</i></dt>
+<dd><p>Выделяет память и копирует данные из массивов типа <code>float*</code> или <code>double*</code>, т.е. из массивов определенных как <code>float a[NX*NY*NZ];</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-3"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const float **</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-Set-4"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const double **</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005ffloat2"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_float2</b><i> (<code>HMDT</code> dat, <code>const float **</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fdouble2"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_double2</b><i> (<code>HMDT</code> dat, <code>const double **</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dd><p>Выделяет память и копирует данные из массивов типа <code>float**</code> или <code>double**</code> с размерностями <var>N1</var>, <var>N2</var>, т.е. из массивов определенных как <code>float a[N1][N2];</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-5"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const float ***</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-Set-6"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const double ***</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005ffloat3"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_float3</b><i> (<code>HMDT</code> dat, <code>const float ***</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fdouble3"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_double3</b><i> (<code>HMDT</code> dat, <code>const double ***</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dd><p>Выделяет память и копирует данные из массивов типа <code>float***</code> или <code>double***</code> с размерностями <var>N1</var>, <var>N2</var>, <var>N3</var>, т.е. из массивов определенных как <code>float a[N1][N2][N3];</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-7"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>gsl_vector *</code>v)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fvector"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_vector</b><i> (<code>HMDT</code> dat, <code>gsl_vector *</code>v)</i></dt>
+<dd><p>Выделяет память и копирует данные из структуры типа <code>gsl_vector *</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-8"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>gsl_matrix *</code>m)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fmatrix"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_matrix</b><i> (<code>HMDT</code> dat, <code>gsl_matrix *</code>m)</i></dt>
+<dd><p>Выделяет память и копирует данные из структуры типа <code>gsl_matrix *</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-9"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>inline void</code> <b>Set</b><i> (<code>const mglData &amp;</code>from)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> from)</i></dt>
+<dd><p>Выделяет память и копирует данные из другого экземпляра <var>from</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-10"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const std::vector&lt;int&gt; &amp;</code>d)</i></dt>
+<dt><a name="index-Set-11"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const std::vector&lt;float&gt; &amp;</code>d)</i></dt>
+<dt><a name="index-Set-12"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const std::vector&lt;double&gt; &amp;</code>d)</i></dt>
+<dd><p>Выделяет память и копирует данные из массива типа <code>std::vector&lt;T&gt;</code>.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-Set-13"></a><u>Метод класса <code>mglData</code> (C+, Python):</u> <code>void</code> <b>Set</b><i> (<code>const char *</code>str, <code>int</code> NX, <code>int</code> NY=<code>1</code>, <code>int</code> NZ=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fvalues"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_values</b><i> (<code>const char *</code>str, <code>int</code> NX, <code>int</code> NY, <code>int</code> NZ)</i></dt>
+<dd><p>Выделяет память и сканирует (scanf) данные из строки.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fill"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Create-and-delete" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Rearrange" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0417_0430_043f_043e_043b_043de_043d_0438e-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">6.3 Заполнение данных</h2>
+<a name="index-Fill"></a>
+<a name="index-Modify"></a>
+
+<dl>
+<dt><a name="index-Fill-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Fill</b><i> (<code>float</code> x1, <code>float</code> x2, <code>char</code> dir=<code>'x'</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005ffill"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_fill</b><i> (<code>HMDT</code> dat, <code>float</code> x1, <code>float</code> x2, <code>char</code> dir)</i></dt>
+<dd><p>Заполняет значениями равно распределенными в диапазоне [<var>x1</var>, <var>x2</var>] в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;,&lsquo;<samp>y</samp>&rsquo;,&lsquo;<samp>z</samp>&rsquo;}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fill-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Fill</b><i> (<code>const char *</code>eq, <code>mglPoint</code> Min, <code>mglPoint</code> Max, <code>const mglData *</code>vdat=0, <code>const mglData *</code>wdat=0)</i></dt>
+<dt><a name="index-mgl_005fdata_005ffill-1"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_fill</b><i> (<code>HMGL</code> gr, <code>HMDT</code> dat, <code>const char *</code>eq, <code>const HMDT *</code>vdat, <code>const HMDT *</code>wdat)</i></dt>
+<dd><p>Заполняет значениями вычисленными по формуле <var>eq</var>. Формула представляет собой произвольное выражение, зависящее от переменных &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Координаты &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; полагаются меняющимися в диапазоне <var>Min</var> x <var>Max</var> (в отличие от функции <code>Modify</code>). Переменная &lsquo;<samp>u</samp>&rsquo; &ndash; значения исходного массива, переменные &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo; &ndash; значения массивов <var>vdat</var>, <var>wdat</var>. Последние могут быть <code>NULL</code>, т.е. опущены.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Modify-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Modify</b><i> (<code>const char *</code>eq, <code>int</code> dim=<code>0</code>)</i></dt>
+<dt><a name="index-Modify-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Modify</b><i> (<code>const char *</code>eq, <code>const mglData &amp;</code>v)</i></dt>
+<dt><a name="index-Modify-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Modify</b><i> (<code>const char *</code>eq, <code>const mglData &amp;</code>v, <code>const mglData &amp;</code>w)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmodify"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_modify</b><i> (<code>HMDT</code> dat, <code>const char *</code>eq, <code>int</code> dim)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmodify_005fvw"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_modify_vw</b><i> (<code>HMDT</code> dat, <code>const char *</code>eq, <code>const HMDT</code> v, <code>const HMDT</code> w)</i></dt>
+<dd><p>Заполняет значениями вычисленными по формуле <var>eq</var>. Формула представляет собой произвольное выражение, зависящее от переменных &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Координаты &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; полагаются меняющимися в диапазоне [0,1] (в отличие от функции <code>Fill</code>). Переменная &lsquo;<samp>u</samp>&rsquo; &ndash; значения исходного массива, переменные &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo; &ndash; значения массивов <var>vdat</var>, <var>wdat</var>. Последние могут быть <code>NULL</code>, т.е. опущены. Если указан <var>dim</var>&gt;0, то изменяются только слои &gt;=<var>dim</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Put"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Put</b><i> (<code>float</code> val, <code>int</code> i=<code>-1</code>, <code>int</code> j=<code>-1</code>, <code>int</code> k=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fput_005fval"></a><u>mglData:</u> <code>void</code> <b>mgl_data_put_val</b><i> (<code>HMDT</code> a, <code>float</code> val, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Присваивает значения (под-)массива <var>dat</var>[<var>i</var>, <var>j</var>, <var>k</var>] = <var>val</var>. Индексы <var>i</var>, <var>j</var>, <var>k</var> равные &lsquo;<samp>-1</samp>&rsquo; задают значениия <var>val</var> для всего диапазона соответствующего направления(ий). Например, <code>Put(val,-1,0,-1);</code> задает a[i,0,j]=<var>val</var> для i=0...(nx-1), j=0...(nz-1).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Put-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Put</b><i> (<code>const mglData &amp;</code>v, <code>int</code> i=<code>-1</code>, <code>int</code> j=<code>-1</code>, <code>int</code> k=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fput_005fdat"></a><u>mglData:</u> <code>void</code> <b>mgl_data_put_dat</b><i> (<code>HMDT</code> a, <code>const HMDT</code> v, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Копирует значения из массива <var>v</var> в диапазон значений данного массива. Индексы <var>i</var>, <var>j</var>, <var>k</var> равные &lsquo;<samp>-1</samp>&rsquo; задают диапазон изменения значений в соответствующих направление(ях). Младшие размерности массива <var>v</var> должны быть больше выбранного диапазона массива. Например, <code>Put(v,-1,0,-1);</code> присвоитa[i,0,j]=<var>v</var>.ny&gt;nz ? <var>v</var>.a[i,j] : <var>v</var>.a[i], где i=0...(nx-1), j=0...(nz-1) и условие v.nx&gt;=nx выполнено.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fdata_005fset_005fvalue"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_value</b><i> (<code>HMDT</code> dat, <code>float</code> v, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Присваивает значение выбранной ячейке массива данных.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fdata_005fget_005fvalue"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_get_value</b><i> (<code>HMDT</code> dat, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Возвращает значение выбранной ячейки массива данных.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetNx"></a><u>Метод класса <code>mglData</code> (C+, Python):</u> <code>void</code> <b>GetNx</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fdata_005fget_005fnx"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_get_nx</b><i> (<code>HMDT</code> dat)</i></dt>
+<dd><p>Возвращает размер по x-направлению.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetNy"></a><u>Метод класса <code>mglData</code> (C+, Python):</u> <code>void</code> <b>GetNy</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fdata_005fget_005fny"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_get_ny</b><i> (<code>HMDT</code> dat)</i></dt>
+<dd><p>Возвращает размер по y-направлению.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetNz"></a><u>Метод класса <code>mglData</code> (C+, Python):</u> <code>void</code> <b>GetNz</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fdata_005fget_005fnz"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_get_nz</b><i> (<code>HMDT</code> dat)</i></dt>
+<dd><p>Возвращает размер по z-направлению.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Rearrange"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fill" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#File-I_002fO" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_0437_043ce_043de_043d_0438e-_0440_0430_0437_043ce_0440_043e_0432-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">6.4 Изменение размеров данных</h2>
+<a name="index-Rearrange"></a>
+<a name="index-Extend"></a>
+<a name="index-Transpose"></a>
+<a name="index-Squeeze"></a>
+<a name="index-Crop"></a>
+<a name="index-InsertRows"></a>
+<a name="index-InsertColumns"></a>
+<a name="index-InsertSlices"></a>
+<a name="index-DeleteRows"></a>
+<a name="index-DeleteColumns"></a>
+<a name="index-DeleteSlices"></a>
+<a name="index-Insert"></a>
+<a name="index-Delete"></a>
+
+<dl>
+<dt><a name="index-Rearrange-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Rearrange</b><i> (<code>int</code> mx, <code>int</code> my=<code>0</code>, <code>int</code> mz=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005frearrange"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_rearrange</b><i> (<code>HMDT</code> dat, <code>int</code> mx, <code>int</code> my, <code>int</code> mz)</i></dt>
+<dd><p>Изменяет размерность данных без изменения самого массива данных, так что результирующий массив <var>mx</var>*<var>my</var>*<var>mz</var> &lt; nx*ny*nz. Если один из параметров <var>my</var> или <var>mz</var> ноль, то он будет выбран оптимальным образом. Например, если <var>my</var>=0, то будет <var>my</var>=nx*ny*nz/<var>mx</var> и <var>mz</var>=1.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Extend-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Extend</b><i> (<code>int</code> n1, <code>int</code> n2=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fextend"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_extend</b><i> (<code>HMDT</code> dat, <code>int</code> n1, <code>int</code> n2)</i></dt>
+<dd><p>Увеличивает размер данных путем вставки (|<var>n1</var>|+1) новых срезов после (для <var>n1</var>&gt;0) или перед (для <var>n1</var>&lt;0) существующими данными. Можно добавить сразу 2 размерности для 1d массива, используя второй параметр <var>n2</var>. Данные в новые срезы будут скопированы из существующих. Например, для <var>n1</var>&gt;0 новый массив будет
+a_ij^new = a_i^old where j=0...<var>n1</var>. Соответственно, для <var>n1</var>&lt;0 новый массив будет a_ij^new = a_j^old, где i=0...|<var>n1</var>|.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Transpose-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Transpose</b><i> (<code>const char *</code>dim=<code>&quot;yx&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005ftranspose"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_transpose</b><i> (<code>const char *</code>dim)</i></dt>
+<dd><p>Транспонирует (меняет порядок размерностей) массив данных. Новый порядок размерностей задается строкой <var>dim</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Squeeze-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Squeeze</b><i> (<code>int</code> rx, <code>int</code> ry=<code>1</code>, <code>int</code> rz=<code>1</code>, <code>bool</code> smooth=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsqueeze"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_squeeze</b><i> (<code>HMDT</code> dat, <code>int</code> rx, <code>int</code> ry, <code>int</code> rz, <code>int</code> smooth)</i></dt>
+<dd><p>Уменьшает размер данных путем удаления элементов с индексами не кратными <var>rx</var>, <var>ry</var>, <var>rz</var> соответственно. Параметр <var>smooth</var> задает использовать сглаживания
+(т.е. out[i]=\sum_{j=i,i+r} a[j]/r) или нет (т.е. out[i]=a[j*r]).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Crop-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Crop</b><i> (<code>int</code> n1, <code>int</code> n2, <code>char</code> dir=<code>'x'</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fcrop"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_crop</b><i> (<code>HMDT</code> dat, <code>int</code> n1, <code>int</code> n2, <code>char</code> dir)</i></dt>
+<dd><p>Обрезает границы данных при <var>i</var>&lt;<var>n1</var> и <var>i</var>&gt;<var>n2</var> (при <var>n2</var>&gt;0) или <var>i</var>&gt;<code>n[xyz]</code>-<var>n2</var> (при <var>n2</var>&lt;=0) вдоль направления <var>dir</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-InsertRows-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>InsertRows</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>, <code>const char *</code>eq=<code>NULL</code>)</i></dt>
+<dd><p>Вставляет <var>num</var> срезов вдоль направления &rsquo;y&rsquo; (строк) с позиции <var>at</var> и заполняет их по формуле <var>eq</var> (при <var>eq</var>!=0) или нулями.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-InsertColumns-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>InsertColumns</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>, <code>const char *</code>eq=<code>NULL</code>)</i></dt>
+<dd><p>Вставляет <var>num</var> срезов вдоль направления &rsquo;x&rsquo; (колонок) с позиции <var>at</var> и заполняет их по формуле <var>eq</var> (при <var>eq</var>!=0) или нулями.
+</p></dd></dl>
+<dl>
+<dt><a name="index-InsertSlices-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>InsertSlices</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>, <code>const char *</code>eq=<code>NULL</code>)</i></dt>
+<dd><p>Вставляет <var>num</var> срезов вдоль направления &rsquo;z&rsquo; с позиции <var>at</var> и заполняет их по формуле <var>eq</var> (при <var>eq</var>!=0) или нулями.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DeleteRows-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>DeleteRows</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>)</i></dt>
+<dd><p>Удаляет <var>num</var> срезов вдоль направления &rsquo;y&rsquo; (строк) с позиции <var>at</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-DeleteColumns-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>DeleteColumns</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>)</i></dt>
+<dd><p>Удаляет <var>num</var> срезов вдоль направления &rsquo;x&rsquo; (колонок) с позиции <var>at</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-DeleteSlices-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>DeleteSlices</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>)</i></dt>
+<dd><p>Удаляет <var>num</var> срезов вдоль направления &rsquo;z&rsquo; с позиции <var>at</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Insert-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Insert</b><i> (<code>char</code> dir, <code>int</code> pos=<code>0</code>, <code>int</code> num=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005finsert"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_insert</b><i> (<code>HMDT</code> dat, <code>char</code> dir, <code>int</code> pos, <code>char</code> num)</i></dt>
+<dd><p>Вставляет <var>num</var> срезов вдоль направления <var>dir</var> с позиции <var>pos</var> и заполняет их нулями.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Delete-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Delete</b><i> (<code>char</code> dir, <code>int</code> pos=<code>0</code>, <code>int</code> num=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdelete"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_delete</b><i> (<code>HMDT</code> dat, <code>char</code> dir, <code>int</code> pos, <code>char</code> num)</i></dt>
+<dd><p>Удаляет <var>num</var> срезов вдоль направления <var>dir</var> с позиции <var>pos</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="File-I_002fO"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Rearrange" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Make-another-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0427_0442e_043d_0438e_002f_0441_043e_0445_0440_0430_043de_043d_0438e-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">6.5 Чтение/сохранение данных</h2>
+<a name="index-Read"></a>
+<a name="index-ReadMat"></a>
+<a name="index-ReadAll"></a>
+<a name="index-ReadRange"></a>
+<a name="index-ReadHDF"></a>
+<a name="index-Save"></a>
+<a name="index-SaveHDF"></a>
+<a name="index-Export"></a>
+<a name="index-Import"></a>
+
+<dl>
+<dt><a name="index-Read-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Read</b><i> (<code>const char *</code>fname)</i></dt>
+<dt><a name="index-mgl_005fdata_005fread"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_read</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname)</i></dt>
+<dd><p>Читает данные из текстового файла с разделителями символом пробела/табуляции с автоматическим определением размера массива. Двойной перевод строки начинает новый срез данных (по направлению z).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Read-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Read</b><i> (<code>const char *</code>fname, <code>int</code> mx, <code>int</code> my=<code>1</code>, <code>int</code> mz=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fread_005fdim"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_read_dim</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname, <code>int</code> mx, <code>int</code> my, <code>int</code> mz)</i></dt>
+<dd><p>Читает данные из текстового файла с заданными размерами. Ничего не делается если параметры <var>mx</var>, <var>my</var> или <var>mz</var> равны нулю или отрицательны.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ReadMat-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>ReadMat</b><i> (<code>const char *</code>fname, <code>int</code> dim=<code>2</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fread_005fmat"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_read_mat</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname, <code>int</code> dim)</i></dt>
+<dd><p>Читает данные из текстового файла с размерами, указанными в первых <var>dim</var> числах файла. При этом переменная <var>dim</var> задает размерность (1d, 2d, 3d) данных.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ReadRange-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>ReadRange</b><i> (<code>const char *</code>templ, <code>float</code> from, <code>float</code> to, <code>float</code> step=<code>1.f</code>, <code>bool</code> as_slice=<code>false</code>)</i></dt>
+<dd><p>Объединяет данные из нескольких текстовых файлов. Имена файлов определяются вызовом функции <code>sprintf(fname,templ,val);</code>, где <var>val</var> меняется от <var>from</var> до <var>to</var> с шагом <var>step</var>. Данные загружаются один за другим в один и тот же срез данных (при <var>as_slice</var>=<code>false</code>) или срез-за-срезом (при <var>as_slice</var>=<code>true</code>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ReadAll-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>ReadAll</b><i> (<code>const char *</code>templ, <code>bool</code> as_slice=<code>false</code>)</i></dt>
+<dd><p>Объединяет данные из нескольких текстовых файлов, чьи имена удовлетворяют шаблону <var>templ</var> (например, <var>templ</var>=<code>&quot;t_*.dat&quot;</code>). Данные загружаются один за другим в один и тот же срез данных (при <var>as_slice</var>=<code>false</code>) или срез-за-срезом (при <var>as_slice</var>=<code>true</code>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Save-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Save</b><i> (<code>const char *</code>fname, <code>int</code> ns=<code>-1</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fsave"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_save</b><i> (<code>const HMDT</code> dat, <code>const char *</code>fname, <code>int</code> ns)</i></dt>
+<dd><p>Сохраняет весь массив данных при <var>ns</var>=<code>-1</code> или только <var>ns</var>-ый срез в текстовый файл.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ReadHDF-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>ReadHDF</b><i> (<code>const char *</code>fname, <code>const char *</code>dname)</i></dt>
+<dd><p>Читает массив с именем <var>dname</var> из HDF5 или HDF4 файла <var>fname</var>. Функция ничего не делает если библиотека была собрана с флагами NO_HDF5|NO_HDF4.
+</p></dd></dl>
+<dl>
+<dt><a name="index-SaveHDF-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>SaveHDF</b><i> (<code>const char *</code>fname, <code>const char *</code>dname, <code>bool</code> rewrite=<code>false</code>) <code>const</code></i></dt>
+<dd><p>Сохраняет массив под именем <var>dname</var> в HDF5 или HDF4 файл <var>fname</var>. Функция ничего не делает если библиотека была собрана с флагами NO_HDF5|NO_HDF4.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Import-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Import</b><i> (<code>const char *</code>fname, <code>const char *</code>scheme, <code>float</code> v1=<code>0</code>, float v2=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fimport"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_import</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname, <code>const char *</code>scheme, <code>float</code> v1, float v2)</i></dt>
+<dd><p>Читает данные из растрового файла. RGB значения пикселов преобразуются в число в диапазоне [<var>v1</var>, <var>v2</var>] используя цветовую схему <var>sch</var> (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Export-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Export</b><i> (<code>const char *</code>fname, <code>const char *</code>scheme, <code>float</code> v1=<code>0</code>, float v2=<code>0</code>, <code>int</code> ns=<code>-1</code>) const</i></dt>
+<dt><a name="index-mgl_005fdata_005fexport"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_export</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname, <code>const char *</code>scheme, <code>float</code> v1, float v2, <code>int</code> ns) const</i></dt>
+<dd><p>Сохраняет данные в растровый файл. Числовые значения, нормированные в диапазон [<var>v1</var>, <var>v2</var>], преобразуются в RGB значения пикселов, используя цветовую схему <var>sch</var> (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>). Если <var>v1</var>&gt;=<var>v2</var>, то значения <var>v1</var>, <var>v2</var> определяются автоматически как минимальное и максимальное значение данных.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Make-another-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#File-I_002fO" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Change-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_043e_0437_0434_0430_043d_0438e-_043d_043e_0432_044b_0445-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">6.6 Создание новых данных</h2>
+<a name="index-SubData"></a>
+<a name="index-Column"></a>
+<a name="index-SetColumnId"></a>
+<a name="index-Hist-4"></a>
+<a name="index-Momentum"></a>
+<a name="index-Sum"></a>
+<a name="index-Max-1"></a>
+<a name="index-Min-1"></a>
+<a name="index-Combine"></a>
+<a name="index-Evaluate"></a>
+<a name="index-Resize"></a>
+<a name="index-Trace"></a>
+
+<dl>
+<dt><a name="index-SubData-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>SubData</b><i> (<code>int</code> xx, <code>int</code> yy=<code>-1</code>, <code>int</code> zz=<code>-1</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fsubdata"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_subdata</b><i> (<code>const HMDT</code> dat, <code>int</code> xx, <code>int</code> yy, <code>int</code> zz)</i></dt>
+<dd><p>Возвращает в <var>res</var> подмассив массива данных <var>dat</var> с фиксированными значениями индексов с положительными значениями. Например, <code>SubData(-1,2)</code> выделяет третью строку (индексы начинаются с нуля), <code>SubData(4,-1)</code> выделяет 5-ую колонку, <code>SubData(-1,-1,3)</code> выделяет 4-ый срез и т.д.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SubData-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>SubData</b><i> (<code>const mglData &amp;</code>xx, <code>const mglData &amp;</code>yy, <code>const mglData &amp;</code>zz) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fsubdata_005fext"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_subdata_ext</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> xx, <code>const HMDT</code> yy, <code>const HMDT</code> zz)</i></dt>
+<dd><p>Extracts sub-array data from the original data array for indexes specified by arrays <var>xx</var>, <var>yy</var>, <var>zz</var> (indirect access). The resulting array have the same dimensions as input arrays for 2D and 3D arguments. This function work like previous one for 1D arguments (or numbers). The dimensions of all argument must be the same if they are 2D or 3D arrays.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Column-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Column</b><i> (<code>const char *</code>eq) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fcolumn"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_column</b><i> (<code>const HMDT</code> dat, <code>const char *</code>eq)</i></dt>
+<dd><p>Возвращает массив данных заполненный по формуле <var>eq</var>, вычисленной для именованных колонок (или срезов). Например, <code>Column(&quot;n*w^2/exp(t)&quot;);</code>. Имена колонок задается функцией <code>SetColumnId()</code> или при чтении файлов данных.
+</p></dd></dl>
+<dl>
+<dt><a name="index-SetColumnId-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>SetColumnId</b><i> (<code>const char *</code>ids)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fid"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_id</b><i> (<code>HMDT</code> dat, <code>const char *</code>ids)</i></dt>
+<dd><p>Устанавливает символьные обозначения для колонок данных. Строка должна содержать символы &rsquo;a&rsquo;...&rsquo;z&rsquo; один на колонку (без пробелов).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Trace-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Trace</b><i> () <code>const</code></i></dt>
+<dd><p>Возвращает массив диагональных элементов a[i,i] (для 2D данных) или a[i,i,i] (для 3D данных) где i=0...nx-1. В 1D случае возвращается сам массив данных. Размеры массива данных должен быть ny,nz &gt;= nx или ny,nz = 1.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Hist-5"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Hist</b><i> (<code>int</code> n, <code>float</code> v1=<code>0</code>, <code>float</code> v2=<code>1</code>, <code>int</code> nsub=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fhist"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_hist</b><i> (<code>const HMDT</code> dat, <code>int</code> n, <code>float</code> v1, <code>float</code> v2, <code>int</code> nsub)</i></dt>
+<dd><p>Возвращает распределение (гистограмму) из <var>n</var> точек от значений массива в диапазоне [<var>v1</var>, <var>v2</var>]. Параметр <var>nsub</var> задает число дополнительных точек интерполяции (для сглаживания получившейся гистограммы).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Hist-6"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Hist</b><i> (<code>const mglData &amp;</code>w, <code>int</code> n, <code>float</code> v1=<code>0</code>, <code>float</code> v2=<code>1</code>, <code>int</code> nsub=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fhist_005fw"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_hist_w</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> w, <code>int</code> n, <code>float</code> v1, <code>float</code> v2, <code>int</code> nsub)</i></dt>
+<dd><p>Возвращает распределение (гистограмму) из <var>n</var> точек от значений массива в диапазоне [<var>v1</var>, <var>v2</var>]. Массив <var>w</var> задает веса элементов. Параметр <var>nsub</var> задает число дополнительных точек интерполяции (для сглаживания получившейся гистограммы).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Momentum-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Momentum</b><i> (<code>char</code> dir, <code>const char *</code>how) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmomentum"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_momentum</b><i> (<code>const HMDT</code> dat, <code>char</code> dir, <code>const char *</code>how)</i></dt>
+<dd><p>Возвращает момент (1d массив) данных вдоль направления <var>dir</var>. Строка <var>how</var> определяет тип момента. Момент определяется как
+res_k = \sum_ij how(x_i,y_j,z_k) a_ij/ \sum_ij a_ij
+если <var>dir</var>=&lsquo;<samp>z</samp>&rsquo; и т.д. Координаты &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; &ndash; индексы массива в диапазоне [0,1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Sum-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Sum</b><i> (<code>const char *</code>dir) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fsum"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_sum</b><i> (<code>const HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Возвращает результат суммирования данных вдоль направления(ий) <var>dir</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Max-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Max</b><i> (<code>const char *</code>dir) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmax_005fdir"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_max_dir</b><i> (<code>const HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Возвращает максимальное значение данных вдоль направления(ий) <var>dir</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Min-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Min</b><i> (<code>const char *</code>dir) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmin_005fdir"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_min_dir</b><i> (<code>const HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Возвращает минимальное значение данных вдоль направления(ий) <var>dir</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Combine-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Combine</b><i> (<code>const mglData &amp;</code>a) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fcombine"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_combine</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> a)</i></dt>
+<dd><p>Возвращает прямое произведение массивов (наподобие, res[i,j] = adat[i]*bdat[j] и т.д.).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Evaluate-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Evaluate</b><i> (<code>const mglData &amp;</code>idat, <code>bool</code> norm=<code>true</code>) <code>const</code></i></dt>
+<dt><a name="index-Evaluate-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Evaluate</b><i> (<code>const mglData &amp;</code>idat, <code>const mglData &amp;</code>jdat, <code>bool</code> norm=<code>true</code>) <code>const</code></i></dt>
+<dt><a name="index-Evaluate-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Evaluate</b><i> (<code>const mglData &amp;</code>idat, <code>const mglData &amp;</code>jdat, <code>const mglData &amp;</code>kdat, <code>bool</code> norm=<code>true</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fevaluate_005fi"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_evaluate_i</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> idat, <code>int</code> norm)</i></dt>
+<dt><a name="index-mgl_005fdata_005fevaluate_005fij"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_evaluate_ij</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> idat, <code>const HMDT</code> jdat, <code>int</code> norm)</i></dt>
+<dt><a name="index-mgl_005fdata_005fevaluate_005fijk"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_evaluate_ijk</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> idat, <code>const HMDT</code> jdat, <code>const HMDT</code> kdat, <code>int</code> norm)</i></dt>
+<dd><p>Возвращает массив данных, полученный в результате интерполяции исходного массива в точках других массивов (например, res[i,j]=dat[idat[i,j],jdat[i,j]]). Размеры массивов <var>idat</var>, <var>jdat</var>, <var>kdat</var> должны совпадать. Координаты в <var>idat</var>, <var>jdat</var>, <var>kdat</var> полагаются нормированными в диапазон [0,1] (при <var>norm</var>=<code>true</code>) или в диапазоны [0,nx], [0,ny], [0,nz] соответственно.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Resize-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Resize</b><i> (<code>int</code> mx, <code>int</code> my=<code>1</code>, <code>int</code> mz=<code>1</code>, <code>float</code> x1=<code>0</code>, <code>float</code> x2=<code>1</code>, <code>float</code> y1=<code>0</code>, <code>float</code> y2=<code>1</code>, <code>float</code> z1=<code>0</code>, <code>float</code> z2=<code>1</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fresize"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_resize</b><i> (<code>const HMDT</code> dat, <code>int</code> mx, <code>int</code> my, <code>int</code> mz)</i></dt>
+<dt><a name="index-mgl_005fdata_005fresize_005fbox"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_resize_box</b><i> (<code>const HMDT</code> dat, <code>int</code> mx, <code>int</code> my, <code>int</code> mz, <code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2, <code>float</code> z1, <code>float</code> z2)</i></dt>
+<dd><p>Возвращает массив данных размером <var>mx</var>, <var>my</var>, <var>mz</var> со значениями полученными интерполяцией значений из части [<var>x1</var>,<var>x2</var>] x [<var>y1</var>,<var>y2</var>] x [<var>z1</var>,<var>z2</var>] исходного массива. Величины x,y,z полагаются нормированными в диапазоне [0,1].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Change-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Make-another-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Interpolation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_0437_043ce_043de_043d_0438e-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">6.7 Изменение данных</h2>
+
+<p>Эти функции изменяют данные вдоль заданного направления(ий) типа например дифференцирования, интегрирования и т.д. Направление указывается строкой <var>dir</var>, которая может содержать символы &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; и/или &lsquo;<samp>z</samp>&rsquo;, вдоль которых изменения будут применены.
+</p>
+<a name="index-CumSum"></a>
+<dl>
+<dt><a name="index-CumSum-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>CumSum</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fcumsum"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_cumsum</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Суммирует с накоплением в выбранном направлении(ях).
+</p></dd></dl>
+
+<a name="index-Integral"></a>
+<dl>
+<dt><a name="index-Integral-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Integral</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fintegral"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_integral</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Выполняет интегрирование (подобно суммированию с накоплением) в выбранном направлении(ях).
+</p></dd></dl>
+
+<a name="index-Diff"></a>
+<dl>
+<dt><a name="index-Diff-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Diff</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiff"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_diff</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Выполняет дифференцирование в выбранном направлении(ях).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Diff-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Diff</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y)</i></dt>
+<dt><a name="index-Diff-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Diff</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiff_005fpar"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_diff_par</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> x, <code>const HMDT</code>y, <code>const HMDT</code>z)</i></dt>
+<dd><p>Выполняет дифференцирование данных, параметрически зависящих от координат, в направлении <var>x</var> с <var>y</var>, <var>z</var>=constant. Параметр <var>z</var> может быть опущен, что соответствует 2D случаю. Используются следующие формулы (2D случай): <em>da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j)</em>, где <em>a_i=da/di, a_j=da/dj</em> обозначает дифференцирование вдоль 1-ой и 2-ой размерности. Похожие формулы используются и в 3D случае. Порядок аргументов можно менять &ndash; например, если данные a(i,j) зависят от координат {x(i,j), y(i,j)}, то обычная производная по &lsquo;<samp>x</samp>&rsquo; будет равна <code>Diff(x,y);</code>, а обычная производная по &lsquo;<samp>y</samp>&rsquo; будет равна <code>Diff(y,x);</code>.
+</p></dd></dl>
+
+
+<a name="index-Diff2"></a>
+<dl>
+<dt><a name="index-Diff2-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Diff2</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiff2"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_diff2</b><i> (<code>const char *</code>dir)</i></dt>
+<dd><p>Выполняет двойное дифференцирование (как в операторе Лапласа) в выбранном направлении(ях).
+</p></dd></dl>
+
+<a name="index-SinFFT"></a>
+<dl>
+<dt><a name="index-SinFFT-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>SinFFT</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsinfft"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_sinfft</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Выполняет синус преобразование в выбранном направлении(ях). Синус преобразование есть <em>\sum a_i \sin(k i)</em>.
+</p></dd></dl>
+
+<a name="index-CosFFT"></a>
+<dl>
+<dt><a name="index-CosFFT-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>CosFFT</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fcosfft"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_cosfft</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Выполняет косинус преобразование в выбранном направлении(ях). Синус преобразование есть <em>\sum a_i \cos(k i)</em>.
+</p></dd></dl>
+
+<a name="index-Hankel"></a>
+<dl>
+<dt><a name="index-Hankel-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Hankel</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fhankel"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_hankel</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Выполняет преобразование Ханкеля в выбранном направлении(ях). Преобразование Ханкеля есть <em>\sum a_i J_0(k i)</em>.
+</p></dd></dl>
+
+
+<a name="index-Swap"></a>
+<dl>
+<dt><a name="index-Swap-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Swap</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fswap"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_swap</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Меняет местами левую и правую части данных в выбранном направлении(ях). Полезно для отображения результата FFT.
+</p></dd></dl>
+
+<a name="index-Roll"></a>
+<dl>
+<dt><a name="index-Roll-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Roll</b><i> (<code>char</code> dir, <code>num</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005froll"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_roll</b><i> (<code>HMDT</code> dat, <code>char</code> dir, <code>num</code>)</i></dt>
+<dd><p>Сдвигает данные на <var>num</var> ячеек в выбранном направлении(ях). Соответствует замене индекса на <var>i</var>-&gt;(<var>i</var>+<var>num</var>)%<var>n</var>.
+</p></dd></dl>
+
+<a name="index-Mirror"></a>
+<dl>
+<dt><a name="index-Mirror-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Mirror</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmirror"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_mirror</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Отражает данные в выбранном направлении(ях). Соответствует замене индекса на <var>i</var>-&gt;<var>n</var>-<var>i</var>.
+</p></dd></dl>
+
+<a name="index-Sew"></a>
+<dl>
+<dt><a name="index-Sew-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Sew</b><i> (<code>const char *</code>dir, <code>float</code> da=<code>2*M_PI</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsew"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_sew</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir, <code>float</code> da)</i></dt>
+<dd><p>Удаляет скачки данных (например, скачки фазы после обратных тригонометрических функций) с периодом <var>da</var> в выбранном направлении(ях).
+</p></dd></dl>
+
+<a name="index-Smooth"></a>
+<dl>
+<dt><a name="index-Smooth-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Smooth</b><i> (<code>int</code> Type, <code>const char *</code>dir, <code>float</code> delta=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsmooth"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_smooth</b><i> (<code>HMDT</code> dat, <code>int</code> Type, <code>float</code> delt, <code>const char *</code>dirs)</i></dt>
+<dd><p>Сглаживает данные в выбранном направлении(ях) <var>dir</var> методом <var>Type</var>. Сейчас поддерживаются 4 метода: <code>SMOOTH_NONE=0</code> ничего не делает при <var>delta</var>=0 или сдвигает данные к нулю на шагом <var>delta</var>, <code>SMOOTH_LINE_3=1</code> линейное усреднение по 3 точкам, <code>SMOOTH_LINE_5=2</code> линейное усреднение по 5 точкам, <code>SMOOTH_QUAD_5=3</code> квадратичное усреднение по 5 точкам. Параметр <var>delta</var> запрещает изменение значений на величину большую <var>delta</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Smooth-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Smooth</b><i> (<code>const char *</code>dir)</i></dt>
+<dd><p>Smooths the data on specified direction(s). This is the same as <code>Smooth()</code> but argument <var>Type</var> is specified in string as &lsquo;<samp>0</samp>&rsquo; for <code>SMOOTH_NONE</code>, &lsquo;<samp>3</samp>&rsquo; for <code>SMOOTH_LINE_3</code>, &lsquo;<samp>5</samp>&rsquo; for <code>SMOOTH_LINE_5</code>. If string <var>dir</var> don&rsquo;t contain digits &lsquo;<samp>035</samp>&rsquo; then <var>Type</var>=<code>SMOOTH_QUAD_5</code> is used.
+</p></dd></dl>
+
+<a name="index-Envelop"></a>
+<dl>
+<dt><a name="index-Envelop-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Envelop</b><i> (<code>char</code> dir=<code>'x'</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fenvelop"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_envelop</b><i> (<code>HMDT</code> dat, <code>char</code> dir)</i></dt>
+<dd><p>Находит огибающую данных в выбранном направлении <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-Norm"></a>
+<dl>
+<dt><a name="index-Norm-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Norm</b><i> (<code>float</code> v1=<code>0</code>, <code>float</code> v2=<code>1</code>, <code>bool</code> sym=<code>false</code>, <code>int</code> dim=<code>0</code>)</i></dt>
+<dd><p>Нормирует данные в интервал [<var>v1</var>,<var>v2</var>]. Если <var>sym</var>=<code>true</code>, то используется симметричный интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Изменения применяются только к срезам &gt;=<var>dim</var>.
+</p></dd></dl>
+
+<a name="index-NormSl"></a>
+<dl>
+<dt><a name="index-NormSl-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>NormSl</b><i> (<code>float</code> v1=<code>0</code>, <code>float</code> v2=<code>1</code>, <code>char</code> dir=<code>'z'</code>, <code>bool</code> keep_en=<code>true</code>, <code>bool</code> sym=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fnorm_005fslice"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_norm_slice</b><i> (<code>HMDT</code> dat, <code>float</code> v1, <code>float</code> v2, <code>char</code> dir, <code>int</code> keep_en, <code>int</code> sym)</i></dt>
+<dd><p>Нормирует данные срез-за-срезом в выбранном направлении <var>dir</var> в интервал [<var>v1</var>,<var>v2</var>]. Если <var>sym</var>=<code>true</code>, то используется симметричный интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Если <var>keep</var>=<code>true</code>, то максимальное значение k-го среза ограничено величиной
+<em>\sqrt\sum a_ij(k)/\sum a_ij(0)</em>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Interpolation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Change-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Informational-functions" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_043d_0442e_0440_043f_043e_043byac_0438ya"></a>
+<h2 class="section">6.8 Интерполяция</h2>
+<a name="index-Spline"></a>
+<dl>
+<dt><a name="index-Spline-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Spline</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fspline"></a><u>C function:</u> <code>float</code> <b>mgl_data_spline</b><i> (<code>const HMDT</code> dat, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dd><p>Интерполирует данные кубическим сплайном в точке <var>x</var> в [0...nx-1], <var>y</var> в [0...ny-1], <var>z</var> в [0...nz-1].
+</p></dd></dl>
+<a name="index-Spline1"></a>
+<dl>
+<dt><a name="index-Spline1-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Spline1</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fspline1"></a><u>C function:</u> <code>float</code> <b>mgl_data_spline1</b><i> (<code>const HMDT</code> dat, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dd><p>Интерполирует данные кубическим сплайном в точке <var>x</var>, <var>y</var>, <var>z</var>, где координаты полагаются в интервале [0, 1].
+</p></dd></dl>
+<a name="index-Linear"></a>
+<dl>
+<dt><a name="index-Linear-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Linear</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005flinear"></a><u>C function:</u> <code>float</code> <b>mgl_data_linear</b><i> (<code>const HMDT</code> dat, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dd><p>Интерполирует данные линейной функцией в точке <var>x</var> в [0...nx-1], <var>y</var> в [0...ny-1], <var>z</var> в [0...nz-1].
+</p></dd></dl>
+<a name="index-Linear1"></a>
+<dl>
+<dt><a name="index-Linear1-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Linear1</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005flinear1"></a><u>C function:</u> <code>float</code> <b>mgl_data_linear1</b><i> (<code>const HMDT</code> dat, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dd><p>Интерполирует данные линейной функцией в точке <var>x</var>, <var>y</var>, <var>z</var>, где координаты полагаются в интервале [0, 1].
+</p></dd></dl>
+<a name="index-v"></a>
+<dl>
+<dt><a name="index-v-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>v</b><i> (<code>int</code> i, <code>int</code> j=<code>0</code>, <code>int</code> k=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fget_005fvalue-1"></a><u>C function:</u> <code>float</code> <b>mgl_data_get_value</b><i> (<code>const HMDT</code> dat, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Возвращает значение ячейки с проверкой на границы массива данных.
+</p></dd></dl>
+<a name="index-Spline5"></a>
+<dl>
+<dt><a name="index-Spline5-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Spline5</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> &amp;dx, <code>float</code> &amp;dy, <code>float</code> &amp;dz) <code>const</code></i></dt>
+<dd><p>Интерполирует данные сплайном 5-го порядка в точке <var>x</var>, <var>y</var>, <var>z</var>, где координаты полагаются в интервале [0, 1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fdata_005fvalue"></a><u>C function:</u> <code>float *</code> <b>mgl_data_value</b><i> (<code>HMDT</code> dat, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Возвращает указатель на ячейку данных. Может быть не действителен после вызова любой функции изменяющей данные.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fdata_005fdata"></a><u>C function:</u> <code>const float *</code> <b>mgl_data_data</b><i> (<code>const HMDT</code> dat)</i></dt>
+<dd><p>Возвращает указатель на весь массив данных. Может быть не действителен после вызова любой функции изменяющей данные.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Informational-functions"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Interpolation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Operators" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_043d_0444_043e_0440_043c_0430c_0438_043e_043d_043d_044be-_0444_0443_043d_043ac_0438_0438"></a>
+<h2 class="section">6.9 Информационные функции</h2>
+<a name="index-PrintInfo"></a>
+<dl>
+<dt><a name="index-PrintInfo-1"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>PrintInfo</b><i> (<code>char *</code>buf, <code>bool</code> all=<code>false</code>) <code>const</code></i></dt>
+<dd><p>Печатает информацию о данных (размеры, моменты и пр.) в строку <var>buf</var>. Параметр <var>all</var> устанавливает печатать ли подробную информацию (если <code>true</code>) или только базовую информацию.
+</p></dd></dl>
+<dl>
+<dt><a name="index-PrintInfo-2"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>PrintInfo</b><i> (<code>FILE *</code>fp) <code>const</code></i></dt>
+<dd><p>Аналогично, но выводит в файл (или, например, в stdout).
+</p></dd></dl>
+
+<a name="index-Maximal"></a>
+<dl>
+<dt><a name="index-Maximal-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Maximal</b><i> () <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmax"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_max</b><i> (<code>const HMDT</code> dat)</i></dt>
+<dd><p>Возвращает максимальное значение массива данных.
+</p></dd></dl>
+<a name="index-Minimal"></a>
+<dl>
+<dt><a name="index-Minimal-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Minimal</b><i> () <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmin"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_min</b><i> (<code>HMDT</code> dat) <code>const</code></i></dt>
+<dd><p>Возвращает минимальное значение массива данных.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Maximal-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Maximal</b><i> (<code>int</code> &amp;i, <code>int</code> &amp;j, <code>int</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmax_005fint"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_max_int</b><i> (<code>const HMDT</code> dat, <code>int</code> *i, <code>int</code> *j, <code>int</code> *k)</i></dt>
+<dd><p>Возвращает максимальное значение массива данных и его положение в переменные <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Minimal-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Minimal</b><i> (<code>int</code> &amp;i, <code>int</code> &amp;j, <code>int</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmin_005fint"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_min_int</b><i> (<code>const HMDT</code> dat, <code>int</code> *i, <code>int</code> *j, <code>int</code> *k)</i></dt>
+<dd><p>Возвращает минимальное значение массива данных и его положение в переменные <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Maximal-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Maximal</b><i> (<code>float</code> &amp;i, <code>float</code> &amp;j, <code>float</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmax_005freal"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_max_real</b><i> (<code>const HMDT</code> dat, <code>float</code> *x, <code>float</code> *y, <code>float</code> *z)</i></dt>
+<dd><p>Возвращает максимальное значение массива данных и его приближенное (интерполированное) положение в переменные <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Minimal-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Minimal</b><i> (<code>float</code> &amp;i, <code>float</code> &amp;j, <code>float</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmin_005freal"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_min_real</b><i> (<code>const HMDT</code> dat, <code>float</code> *x, <code>float</code> *y, <code>float</code> *z)</i></dt>
+<dd><p>Возвращает минимальное значение массива данных и его приближенное (интерполированное) положение в переменные <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+
+<a name="index-Momentum-2"></a>
+<dl>
+<dt><a name="index-Momentum-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Momentum</b><i> (<code>char</code> dir, <code>float</code> &amp;m, <code>float</code> &amp;w) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmomentum_005fmw"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_momentum_mw</b><i> (<code>const HMDT</code> dat, <code>char</code> dir, <code>float</code> *m, <code>float</code> *w)</i></dt>
+<dd><p>Возвращает нулевой момент (энергию, <em>I=\sum a_i</em>) и записывает первый (среднее, <em>m = \sum \xi_i a_i/I</em>) и второй момент (ширину, <em>w^2 = \sum (\xi_i-m)^2 a_i/I</em>). Здесь <em>\xi</em> &ndash; соответствующая кордината если <var>dir</var> равно &lsquo;<samp>'x'</samp>&rsquo;, &lsquo;<samp>'y'</samp>&rsquo;, &lsquo;<samp>'z'</samp>&rsquo;. В противном случае среднее и ширина равны <em>m = \sum a_i/N</em>, <em>w^2 = \sum (a_i-m)^2/N</em>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Momentum-4"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>float</code> <b>Momentum</b><i> (<code>char</code> dir, <code>float</code> &amp;m, <code>float</code> &amp;w, <code>float</code> &amp;s, <code>float</code> &amp;k) <code>const</code></i></dt>
+<dd><p>Возвращает нулевой момент (энергию, <em>I=\sum a_i</em>) и записывает первый (среднее, <em>m = \sum \xi_i a_i/I</em>), второй (ширину, <em>w^2 = \sum (\xi_i-m)^2 a_i/I</em>), третий (асимметрия, <em>s = \sum (\xi_i-m)^3 a_i/ I w^3</em>) и четвертый моменты (эксцесс, <em>k = \sum (\xi_i-m)^4 a_i / 3 I w^4</em>)). Здесь <em>\xi</em> &ndash; соответствующая кордината если <var>dir</var> равно &lsquo;<samp>'x'</samp>&rsquo;, &lsquo;<samp>'y'</samp>&rsquo;, &lsquo;<samp>'z'</samp>&rsquo;. В противном случае среднее, ширина, асимметрия, эксцесс равны <em>m = \sum a_i/N</em>, <em>w^2 = \sum (a_i-m)^2/N</em> и т.д.
+</p></dd></dl>
+
+<a name="index-Find"></a>
+<dl>
+<dt><a name="index-Find-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Find</b><i> (<code>const char *</code>cond, <code>int</code> &amp;i, <code>int</code> &amp;j, <code>int</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005ffirst"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_first</b><i> (<code>const HMDT</code> dat, <code>const char *</code>cond, <code>int</code> *i, <code>int</code> *j, <code>int</code> *k)</i></dt>
+<dd><p>Находит положение (после заданного в <var>i</var>, <var>j</var>, <var>k</var>) первого не нулевого значения формулы <var>cond</var>. Функция возвращает найденное значение и записывает его положение в <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+<a name="index-Last"></a>
+<dl>
+<dt><a name="index-Last-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Last</b><i> (<code>const char *</code>cond, <code>int</code> &amp;i, <code>int</code> &amp;j, <code>int</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005flast"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_last</b><i> (<code>const HMDT</code> dat, <code>const char *</code>cond, <code>int</code> *i, <code>int</code> *j, <code>int</code> *k)</i></dt>
+<dd><p>Находит положение (перед заданного в <var>i</var>, <var>j</var>, <var>k</var>) последнего не нулевого значения формулы <var>cond</var>. Функция возвращает найденное значение и записывает его положение в <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Find-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>int</code> <b>Find</b><i> (<code>const char *</code>cond, <code>char</code> dir, <code>int</code> i=<code>0</code>, <code>int</code> j=<code>0</code>, <code>int</code> k=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005ffind"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_find</b><i> (<code>const HMDT</code> dat, <code>const char *</code>cond, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Возвращает положение первого в направлении <var>dir</var> не нулевого значения формулы <var>cond</var>. Поиск начинается с точки {i,j,k}.
+</p></dd></dl>
+<a name="index-FindAny"></a>
+<dl>
+<dt><a name="index-FindAny-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>bool</code> <b>FindAny</b><i> (<code>const char *</code>cond) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005ffind_005fany"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_find_any</b><i> (<code>const HMDT</code> dat, <code>const char *</code>cond)</i></dt>
+<dd><p>Определяет есть ли хоть одно значение массива, удовлетворяющее условию <var>cond</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Operators"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Informational-functions" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Global-functions" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_043fe_0440_0430_0442_043e_0440_044b"></a>
+<h2 class="section">6.10 Операторы</h2>
+
+<dl>
+<dt><a name="index-operator_003d"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dd><p>Копирует данные из другого экземпляра.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a_003d"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator*=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmul_005fdat"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_mul_dat</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> d)</i></dt>
+<dd><p>Поэлементно умножает массив <var>d</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f_003d"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator/=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiv_005fdat"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_div_dat</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> d)</i></dt>
+<dd><p>Поэлементно делит массив <var>d</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002b_003d"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator+=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fadd_005fdat"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_add_dat</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> d)</i></dt>
+<dd><p>Поэлементно прибавляет <var>d</var>.
+Adds the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d_003d"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator-=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsub_005fdat"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_sub_dat</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> d)</i></dt>
+<dd><p>Поэлементно вычитает <var>d</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a_003d-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator*=</b><i> (<code>float</code> d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmul_005fnum"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_mul_num</b><i> (<code>HMDT</code> dat, <code>float</code> d)</i></dt>
+<dd><p>Умножает каждый элемент на число.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f_003d-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator/=</b><i> (<code>float</code> d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiv_005fnum"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_div_num</b><i> (<code>HMDT</code> dat, <code>float</code> d)</i></dt>
+<dd><p>Делит каждый элемент на число.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002b_003d-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator+=</b><i> (<code>float</code> d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fadd_005fnum"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_add_num</b><i> (<code>HMDT</code> dat, <code>float</code> d)</i></dt>
+<dd><p>Прибавляет число к каждому элементу.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d_003d-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator-=</b><i> (<code>float</code> d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsub_005fnum"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_sub_num</b><i> (<code>HMDT</code> dat, <code>float</code> d)</i></dt>
+<dd><p>Вычитает число из каждого элемента.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-operator_002b"></a><u>Функция библиотеки:</u> mglData <b>operator+</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Возвращает поэлементную сумму данных.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002b-1"></a><u>Функция библиотеки:</u> mglData <b>operator+</b><i> (<code>float</code> a, <code>const mglData &amp;</code>b)</i></dt>
+<dt><a name="index-operator_002b-2"></a><u>Функция библиотеки:</u> mglData <b>operator+</b><i> (<code>const mglData &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Возвращает поэлементную сумму данных и числа.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002d"></a><u>Функция библиотеки:</u> mglData <b>operator-</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Возвращает поэлементную разность данных.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d-1"></a><u>Функция библиотеки:</u> mglData <b>operator-</b><i> (<code>float</code> a, <code>const mglData &amp;</code>b)</i></dt>
+<dt><a name="index-operator_002d-2"></a><u>Функция библиотеки:</u> mglData <b>operator-</b><i> (<code>const mglData &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Возвращает поэлементную разность числа и данных.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002a"></a><u>Функция библиотеки:</u> mglData <b>operator*</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Возвращает поэлементное произведение данных.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-1"></a><u>Функция библиотеки:</u> mglData <b>operator*</b><i> (<code>float</code> a, <code>const mglData &amp;</code>b)</i></dt>
+<dt><a name="index-operator_002a-2"></a><u>Функция библиотеки:</u> mglData <b>operator*</b><i> (<code>const mglData &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Возвращает поэлементное произведение данных на число.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002f"></a><u>Функция библиотеки:</u> mglData <b>operator/</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Возвращает поэлементное деление данных.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f-1"></a><u>Функция библиотеки:</u> mglData <b>operator/</b><i> (<code>const mglData &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Возвращает поэлементное деление данных на число.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Global-functions"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Operators" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0413_043b_043e_0431_0430_043bx_043d_044be-_0444_0443_043d_043ac_0438_0438"></a>
+<h2 class="section">6.11 Глобальные функции</h2>
+
+<p>Эти функции не методы класса <code>mglData</code>, но они дают дополнительные возможности по обработке данных. Поэтому я поместил их в эту главу.
+</p>
+<dl>
+<dt><a name="index-mglTransform"></a><u>Функция библиотеки:</u> <code>mglData</code> <b>mglTransform</b><i> (<code>const mglData &amp;</code>real, <code>const mglData &amp;</code>imag, <code>const char *</code>type)</i></dt>
+<dt><a name="index-mgl_005ftransform"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_transform</b><i> (<code>const HMDT</code> real, <code>const HMDT</code> imag, <code>const char *</code>type)</i></dt>
+<dd><p>Выполняет интегральное преобразование комплексных данных <var>real</var>, <var>imag</var> в выбранном направлении и возвращает модуль результата. Порядок и тип преобразований задается строкой <var>type</var>: первый символ для x-направления, второй для y-направления, третий для z-направления. Возможные символы: &lsquo;<samp>f</samp>&rsquo; &ndash; прямое преобразование Фурье, &lsquo;<samp>i</samp>&rsquo; &ndash; обратное преобразование Фурье, &lsquo;<samp>s</samp>&rsquo; &ndash; синус преобразование, &lsquo;<samp>c</samp>&rsquo; &ndash; косинус преобразование, &lsquo;<samp>h</samp>&rsquo; &ndash; преобразование Ханкеля, &lsquo;<samp>n</samp>&rsquo; или &lsquo;<samp> </samp>&rsquo; &ndash; нет преобразования.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglTransformA"></a><u>Функция библиотеки:</u> <code>mglData</code> <b>mglTransformA</b><i> <code>const mglData &amp;</code>ampl, <code>const mglData &amp;</code>phase, <code>const char *</code>type)</i></dt>
+<dt><a name="index-mgl_005ftransform_005fa"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_transform_a</b><i> <code>const HMDT</code> ampl, <code>const HMDT</code> phase, <code>const char *</code>type)</i></dt>
+<dd><p>Аналогично предыдущему с заданными амплитудой <var>ampl</var> и фазой <var>phase</var> комплексных чисел.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglSTFA"></a><u>Функция библиотеки:</u> <code>mglData</code> <b>mglSTFA</b><i> (<code>const mglData &amp;</code>real, <code>const mglData &amp;</code>imag, <code>int</code> dn, <code>char</code> dir=<code>'x'</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fstfa"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_stfa</b><i> (<code>const HMDT</code> real, <code>const HMDT</code> imag, <code>int</code> dn,<code>char</code> dir)</i></dt>
+<dd><p>Выполняет оконное преобразование Фурье длиной <var>dn</var> для комплексных данных <var>real</var>, <var>imag</var> и возвращает модуль результата. Например, для <var>dir</var>=&lsquo;<samp>x</samp>&rsquo; результат будет иметь размер {int(nx/dn), dn, ny} и будет равен <em>res[i,j,k]=|\sum_d^dn exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn</em>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglPDE"></a><u>Функция библиотеки:</u> <code>mglData</code> <b>mglPDE</b><i> (<code>const char *</code>ham, <code>const mglData &amp;</code>ini_re, <code>const mglData &amp;</code>ini_im, <code>mglPoint</code> Min, <code>mglPoint</code> Max, <code>float</code> dz=<code>0.1</code>, <code>float</code> k0=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005fpde_005fsolve"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_pde_solve</b><i> (<code>HMGL</code> gr, <code>const char *</code>ham, <code>const HMDT</code> ini_re, <code>const HMDT</code> ini_im, <code>float</code> dz, <code>float</code> k0)</i></dt>
+<dd><p>Решает уравнение в частных производных du/dz = i*k0*<var>ham</var>(p,q,x,y,z,|u|)[u], где p=-i/k0*d/dx, q=-i/k0*d/dy &ndash; псевдо-дифференциальные операторы. Параметры <var>ini_re</var>, <var>ini_im</var> задают начальное распределение поля. Координаты в уравнении и в решении полагаются в диапазоне осей координат. Замечу, что внутри этот диапазон увеличивается в 3/2 раза для уменьшения отражения от границ расчетного интервала. Параметр <var>dz</var> задает шаг по эволюционной координате z. В данный момент использован упрощенный алгоритм, когда все &ldquo;смешанные&rdquo; члена (типа &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) исключаются. Например, в 2D случае это функции типа <em>ham = f(p,z) + g(x,z,u)</em>. При этом допускаются коммутирующие комбинации (типа &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy). Переменная &lsquo;<samp>u</samp>&rsquo; используется для обозначения амплитуды поля |u|. Это позволяет решать нелинейные задачи &ndash; например, нелинейное уравнение Шредингера <code>ham='p^2+q^2-u^2'</code>. Также можно указать мнимую часть для поглощения (типа <code>ham = 'p^2+i*x*(x&gt;0)'</code>), но только если зависимость от &lsquo;<samp>i</samp>&rsquo; линейная, т.е. <em>ham = hre+i*him</em>. См. раздел <a href="mathgl_ru_9.html#PDE-sample">PDE &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglRay"></a><u>Функция библиотеки:</u> <code>mglData</code> <b>mglRay</b><i> (<code>const char *</code>ham, <code>mglPoint</code> r0, <code>mglPoint</code> p0, <code>float</code> dt=<code>0.1</code>, <code>float</code> tmax=<code>10</code>)</i></dt>
+<dt><a name="index-mgl_005fray_005ftrace"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_ray_trace</b><i> (<code>const char *</code>ham, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> px, <code>float</code> py, <code>float</code> pz, <code>float</code> dt, <code>float</code> tmax)</i></dt>
+<dd><p>Решает систему геометрооптических уравнений d<em>r</em>/dt = d <var>ham</var>/d<em>p</em>, d<em>p</em>/dt = -d <var>ham</var>/d<em>r</em>. Это гамильтоновы уравнения для траектории частицы в 3D случае. Гамильтониан <var>ham</var> может зависеть от координат &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, импульсов &lsquo;<samp>p</samp>&rsquo;=px, &lsquo;<samp>q</samp>&rsquo;=py, &lsquo;<samp>v</samp>&rsquo;=pz и времени &lsquo;<samp>t</samp>&rsquo;: <em>ham = H(x,y,z,p,q,v,t)</em>. Начальная точка (при <code>t=0</code>) задается переменными {<var>x0</var>, <var>y0</var>, <var>z0</var>, <var>p0</var>, <var>q0</var>, <var>v0</var>}. Параметры <var>dt</var> и <var>tmax</var> задают шаг и максимальное время интегрирования. Результат &ndash; массив {x,y,z,p,q,v,t} с размером {7 * int(<var>tmax</var>/<var>dt</var>+1) }. См. раздел <a href="mathgl_ru_9.html#Beam-tracing-sample">Beam tracing &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglQO2d"></a><u>Функция библиотеки:</u> <code>mglData</code> <b>mglQO2d</b><i> (<code>const char *</code>ham, <code>const mglData &amp;</code>ini_re, <code>const mglData &amp;</code>ini_im, <code>const mglData &amp;</code>ray, <code>float</code> r=<code>1</code>, <code>float</code> k0=<code>100</code>, <code>mglData *</code>xx=<code>0</code>, <code>mglData *</code>yy=<code>0</code>, <code>bool</code> UseR=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fqo2d_005fsolve"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_qo2d_solve</b><i> (<code>const char *</code>ham, <code>const HMDT</code> ini_re, <code>const HMDT</code> ini_im, <code>const HMDT</code> ray, <code>float</code> r, <code>float</code> k0, <code>HMDT</code> xx, <code>HMDT</code> yy)</i></dt>
+<dd><p>Решает уравнение в частных производных du/dt = i*k0*<var>ham</var>(p,q,x,y,|u|)[u] в сопровождающей системе координат, где p=-i/k0*d/dx, q=-i/k0*d/dy &ndash; псевдо-дифференциальные операторы. Параметры <var>ini_re</var>, <var>ini_im</var> задают начальное распределение поля. Параметр <var>ray</var> задает опорный луч для сопровождающей системы координат. Можно использовать луч найденный с помощью <code>mglRay()</code>. Опорный луч должен быть достаточно гладкий, чтобы система координат была однозначной и для исключения ошибок интегрирования. Если массивы <var>xx</var> и <var>yy</var> указаны, то в них записываются декартовы координаты для каждой точки найденного решения. См. также <code>mglPDE()</code>. См. раздел <a href="mathgl_ru_9.html#Beam-tracing-sample">Beam tracing &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglJacobian"></a><u>Функция библиотеки:</u> <code>mglData</code> <b>mglJacobian</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y)</i></dt>
+<dt><a name="index-mglJacobian-1"></a><u>Функция библиотеки:</u> <code>mglData</code> <b>mglJacobian</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z)</i></dt>
+<dt><a name="index-mgl_005fjacobian_005f2d"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_jacobian_2d</b><i> (<code>const HMDT</code> x, <code>const HMDT</code> y)</i></dt>
+<dt><a name="index-mgl_005fjacobian_005f3d"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_jacobian_3d</b><i> (<code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z)</i></dt>
+<dd><p>Вычисляет якобиан преобразования {i,j,k} в {<var>x</var>,<var>y</var>,<var>z</var>}, где координаты {i,j,k} полагаются нормированными в интервал [0,1]. Якобиан находится по формуле det||<em>dr_\alpha/d\xi_\beta</em>||, где <em>r</em>={<var>x</var>,<var>y</var>,<var>z</var>} и <em>\xi</em>={i,j,k}. Все размерности всех массивов должны быть одинаковы. Данные должны быть трехмерными если указаны все 3 массива {<var>x</var>,<var>y</var>,<var>z</var>} или двумерными если только 2 массива {<var>x</var>,<var>y</var>}.
+</p></dd></dl>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_7.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_7.html
new file mode 100644
index 0000000..4ebcaee
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_7.html
@@ -0,0 +1,769 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: 7. Other classes</title>
+
+<meta name="description" content="MathGL 1.11: 7. Other classes">
+<meta name="keywords" content="MathGL 1.11: 7. Other classes">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Other-classes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_6.html#Global-functions" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglParse-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_6.html#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+
+<a name="Other-classes-1"></a>
+<h1 class="chapter">7. Other classes</h1>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#mglParse-class">7.1 mglParse class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglFormula-class">7.2 mglFormula class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglFont-class">7.3 mglFont class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglColor-class">7.4 mglColor class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglPoint-class">7.5 mglPoint class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglVar-class">7.6 mglVar class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglCommand-class">7.7 mglCommand class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglArg-class">7.8 mglArg class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="mglParse-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-classes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglFormula-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglParse-class-1"></a>
+<h2 class="section">7.1 mglParse class</h2>
+<a name="index-mglParse"></a>
+
+<p>Class for parsing and executing MGL script. This class is defined in <code>#include &lt;mgl/mgl_parse.h&gt;</code>.
+</p>
+<p>Class mglParse is the interpreter for MGL scripts (see section <a href="mathgl_ru_8.html#MGL-interface">Язык MGL</a>). The main function of mglParse class is <code>Parse()</code>. Exactly this function parses and executes the script string-by-string. Also there are two subservient functions for the finding and creation of a variable. These functions can be useful for displaying values of variables (arrays) in some external program (in window, for example). The variable <var>DataList</var> contains full list of variables in script. Flag <var>AllowSetSize</var> allows one to prevent changing the size of the  picture inside the script (forbids the MGL command <code>setsize</code>). 
+</p>
+<p>Note an important feature &ndash; if user defines function <var>func</var> in variable then it will be called before the destroying of this variable (see section <a href="#mglVar-class">mglVar class</a>).
+</p>
+<dl>
+<dt><a name="index-mglParse-1"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code></code> <b>mglParse</b><i> (<code>bool</code> setsize=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fcreate_005fparser"></a><u>C function:</u> <code>HMPR</code> <b>mgl_create_parser</b><i> ()</i></dt>
+<dd><p>Constructor initializes all values with zero and set <var>AllowSetSize</var> value.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-_007emglParse"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code></code> <b>~mglParse</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fdelete_005fparser"></a><u>C function:</u> <code>void</code> <b>mgl_delete_parser</b><i> (<code>HMPR</code> p)</i></dt>
+<dd><p>Destructor delete parser
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Parse"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>int</code> <b>Parse</b><i> (<code>mglGraph *</code>gr, <code>const char *</code>str, <code>long</code> pos=<code>0</code>)</i></dt>
+<dt><a name="index-Parse-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>int</code> <b>Parse</b><i> (<code>mglGraph *</code>gr, <code>const wchar_t *</code>str, <code>long</code> pos=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fparse"></a><u>C function:</u> <code>int</code> <b>mgl_parse</b><i> (<code>HMGL</code> gr, <code>HMPR</code> p, <code>const char *</code>str, <code>int</code> pos)</i></dt>
+<dt><a name="index-mgl_005fparsew"></a><u>C function:</u> <code>int</code> <b>mgl_parsew</b><i> (<code>HMGL</code> gr, <code>HMPR</code> p, <code>const wchar_t *</code>str, <code>int</code> pos)</i></dt>
+<dd><p>Main function in the class. It parses the string <var>str</var> and executes it by  using <var>gr</var> as a graphics plotter. Returns the value depending on an error presence in the string <var>str</var>: 0 &ndash; no error, 1 &ndash; wrong command argument(s), 2 &ndash; unknown command, 3 &ndash; string is too long. Optional argument <var>pos</var> allows to save the string position in the document (or file) for using <code>for|next</code> command.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Export-2"></a><u>Method on <code>mglParse</code> (C++):</u> <code>int</code> <b>Export</b><i> (<code>wchar_t</code> cpp_out<code>[1024]</code>, <code>mglGraph *</code>gr, <code>const wchar_t *</code>str)</i></dt>
+<dd><p>Function parses the string <var>str</var>, executes it by  using <var>gr</var> as a graphics plotter and exports it to C++ code. Returns the value depending on an error presence in the string <var>str</var>: 0 &ndash; no error, 1 &ndash; wrong command argument(s), 2 &ndash; unknown command, 3 &ndash; string is too long. Output C++ text will be placed in <var>out</var> variable. If string <var>str</var> have options (defined after &rsquo;;&rsquo; symbol) then the corresponding C++ texts are placed in variables <var>op1</var>, <var>op2</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Execute"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>Execute</b><i> (<code>mglGraph *</code>gr, <code>FILE *</code>fp, <code>bool</code> print=<code>false</code>)</i></dt>
+<dd><p>Function parse and execute line-by-line MGL script in file <var>fp</var>. If <var>print</var>=<code>true</code> then all warnings and information will be printed in stdout. Also this function support the <code>for|next</code> MGL commands.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Execute-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>Execute</b><i> (<code>mglGraph *</code>gr, <code>int</code> num, <code>const wchar_t **</code>text, <code>void (*</code> error <code>)(int line, int kind)=NULL</code>)</i></dt>
+<dd><p>Function parse and execute line-by-line MGL script in array <var>text</var>. If <var>error</var> is not <code>NULL</code> then this function will be called for all warnings, information and other messages. Also this function support the <code>for|next</code> MGL commands.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Execute-2"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>void</code> <b>Execute</b><i> (<code>mglGraph *</code>gr, <code>const char *</code>text, <code>void (*</code> error <code>)(int line, int kind)=NULL</code>)</i></dt>
+<dt><a name="index-Execute-3"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>Execute</b><i> (<code>mglGraph *</code>gr, <code>const wchar_t *</code>text, <code>void (*</code> error <code>)(int line, int kind)=NULL</code>)</i></dt>
+<dt><a name="index-mgl_005fparse_005ftext"></a><u>C function:</u> <code>void</code> <b>mgl_parse_text</b><i> (<code>HMGL</code> gr, <code>HMPR</code> p, <code>const char *</code>text)</i></dt>
+<dt><a name="index-mgl_005fparsew_005ftext"></a><u>C function:</u> <code>void</code> <b>mgl_parsew_text</b><i> (<code>HMGL</code> gr, <code>HMPR</code> p, <code>const wchar_t *</code>text)</i></dt>
+<dd><p>Function parse and execute line-by-line MGL script in string <var>text</var>. Lines are separated by &lsquo;<samp>\n</samp>&rsquo; symbol as usual. If <var>error</var> is not <code>NULL</code> then this function will be called for all warnings, information and other messages. Also this function support the <code>for|next</code> MGL commands.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AddParam"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>bool</code> <b>AddParam</b><i> (<code>int</code> n, <code>const char *</code>str, <code>bool</code> isstr=<code>true</code>)</i></dt>
+<dt><a name="index-AddParam-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>bool</code> <b>AddParam</b><i> (<code>int</code> n, <code>const wchar_t *</code>str, <code>bool</code> isstr=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fadd_005fparam"></a><u>C function:</u> <code>void</code> <b>mgl_add_param</b><i> (<code>HMPR</code> p, <code>int</code> id, <code>const char *</code>val)</i></dt>
+<dt><a name="index-mgl_005fadd_005fparamw"></a><u>C function:</u> <code>void</code> <b>mgl_add_paramw</b><i> (<code>HMPR</code> p, <code>int</code> id, <code>const wchar_t *</code>val)</i></dt>
+<dd><p>Function set the value of <var>n</var>-th parameter as string <var>str</var> (<var>n</var>=0, 1 ... 9). It return <code>true</code> for success.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FindVar"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>mglVar *</code> <b>FindVar</b><i> (<code>const char *</code>name)</i></dt>
+<dt><a name="index-FindVar-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>mglVar *</code> <b>FindVar</b><i> (<code>const wchar_t *</code>name)</i></dt>
+<dt><a name="index-mgl_005ffind_005fvar"></a><u>C function:</u> <code>const HMDT</code> <b>mgl_find_var</b><i>  (<code>HMPR</code> p, <code>const char *</code>name)</i></dt>
+<dd><p>Function returns the pointer to variable with name <var>name</var> or zero if variable is absent. Use this function to put external data array to the script or get the data from the script.
+</p></dd></dl>
+<dl>
+<dt><a name="index-AddVar"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>mglVar *</code> <b>AddVar</b><i> (<code>const char *</code>name)</i></dt>
+<dt><a name="index-AddVar-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>mglVar *</code> <b>AddVar</b><i> (<code>const wchar_t *</code>name)</i></dt>
+<dt><a name="index-mgl_005fadd_005fvar"></a><u>C function:</u> <code>const HMDT</code> <b>mgl_add_var</b><i> (<code>HMPR</code> p, <code>const char *</code>name)</i></dt>
+<dd><p>Function returns the pointer to variable with name <var>name</var>. If variable is absent then new variable is created with name <var>name</var>. Use this function to put external data array to the script or get the data from the script.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DeleteVar"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>DeleteVar</b><i> (<code>mglVar *</code>v)</i></dt>
+<dt><a name="index-DeleteVar-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>DeleteVar</b><i> (<code>const char *</code>name)</i></dt>
+<dt><a name="index-DeleteVar-2"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>DeleteVar</b><i> (<code>const wchar_t *</code>name)</i></dt>
+<dd><p>Function delete the variable specified by its name or by its pointer.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-RestoreOnce"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>inline void</code> <b>RestoreOnce</b><i> ()</i></dt>
+<dt><a name="index-mgl_005frestore_005fonce"></a><u>C function:</u> <code>void</code> <b>mgl_restore_once</b><i> (<code>HMPR</code> p)</i></dt>
+<dd><p>Restore Once flag.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AllowSetSize"></a><u>Method on <code>mglParse</code> (Python):</u> <code>void</code> <b>AllowSetSize</b><i> (<code>bool</code> a)</i></dt>
+<dt><a name="index-mgl_005fparser_005fallow_005fsetsize"></a><u>C function:</u> <code>void</code> <b>mgl_parser_allow_setsize</b><i> (<code>HMPR</code> p, <code>int</code> a)</i></dt>
+<dd><p>Allow to parse &rsquo;setsize&rsquo; command or not.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AddCommand"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>AddCommand</b><i> (<code>mglCommand *</code>cmd, <code>int</code> num=<code>0</code>)</i></dt>
+<dd><p>Add <var>num</var> commands <var>cmd</var> to the defined MGL commands list. Parameter <var>cmd</var> is array of <code>mglCommand</code> structures. If parameter <var>num</var>=0 then it will be determined automatically. At this, array <var>cmd</var> <strong>must have</strong> last element with <code>name=L&quot;&quot;</code>
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DataList-of-mglParse"></a><u>Option of mglParse:</u> <code>mglVar *</code> <b>DataList</b></dt>
+<dd><p>List of variables defined in script.
+</p></dd></dl>
+<dl>
+<dt><a name="index-AllowSetSize-of-mglParse"></a><u>Option of mglParse:</u> <code>bool</code> <b>AllowSetSize</b></dt>
+<dd><p>Flag which allows/forbids the command <code>setsize</code> in scripts.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Stop-of-mglParse"></a><u>Option of mglParse:</u> <code>bool</code> <b>Stop</b></dt>
+<dd><p>Flag which interrupt script execution.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Cmd-of-mglParse"></a><u>Option of mglParse:</u> <code>mglCommand *</code> <b>Cmd</b></dt>
+<dd><p>Table (array) of recognizable MGL commands (can be changed by user). Items in the table <strong>MUST be sorted</strong> by <var>name</var> field !!! Last items must have empty name (i.e. <code>L&quot;&quot;</code>).
+</p></dd></dl>
+<dl>
+<dt><a name="index-op1-of-mglParse"></a><u>Option of mglParse:</u> <code>wchar_t *</code> <b>op1</b></dt>
+<dd><p>These strings contain command options and should be placed before the command. These variables are used for MGL-&gt;C++ (or other language) conversion.
+</p></dd></dl>
+<dl>
+<dt><a name="index-op2-of-mglParse"></a><u>Option of mglParse:</u> <code>wchar_t *</code> <b>op2</b></dt>
+<dd><p>These strings contain command options and should be placed after the command. These variables are used for MGL-&gt;C++ (or other language) conversion.
+</p></dd></dl>
+
+<hr size="6">
+<a name="mglFormula-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglParse-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglFont-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglFormula-class-1"></a>
+<h2 class="section">7.2 mglFormula class</h2>
+<a name="index-mglFormula"></a>
+
+<p>Class for evaluating of formula specified by the string. This class is defined in <code>#include &lt;mgl/mgl_eval.h&gt;</code>.
+</p>
+<p>It is the fast variant of formula evaluation. At creation it will be recognized and compiled to tree-like internal code. At evaluation stage only fast calculations are performed. There is no difference between lower or upper case in formulas. If argument value lie outside the range of function definition then function returns NaN. See section <a href="mathgl_ru_1.html#Textual-formulas">Текстовые формулы</a>.
+</p>
+<dl>
+<dt><a name="index-mglFormula-on-mglFormula"></a><u>Method on mglFormula:</u> <code></code> <b>mglFormula</b><i> (<code>const char *</code>str)</i></dt>
+<dd><p>Parses the formula <var>str</var> and creates formula-tree. Constructor recursively parses the formula and creates a tree-like structure containing functions and operators for fast further evaluating by <code>Calc()</code> or <code>CalcD()</code> functions.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Calc-on-mglFormula"></a><u>Method on mglFormula:</u> <code>float</code> <b>Calc</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>, <code>float</code> u=<code>0</code>)</i></dt>
+<dd><p>Evaluates the formula for <code>'x','r'</code>=<var>x</var>, <code>'y','n'</code>=<var>y</var>, <code>'z','t'</code>=<var>z</var>, <code>'a','u'</code>=<var>u</var>. Error code (if one) can be obtained from function <code>GetError()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Calc-on-mglFormula-1"></a><u>Method on mglFormula:</u> <code>float</code> <b>Calc</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> u, <code>float</code> v, <code>float</code> w)</i></dt>
+<dd><p>Evaluates the formula for <code>'x'</code>=<var>x</var>, <code>'y'</code>=<var>y</var>, <code>'z'</code>=<var>z</var>, <code>'u'</code>=<var>u</var>, <code>'v'</code>=<var>v</var>, <code>'w'</code>=<var>w</var>. Error code (if one) can be obtained from function <code>GetError()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Calc-on-mglFormula-2"></a><u>Method on mglFormula:</u> <code>float</code> <b>Calc</b><i> (<code>float</code> var<code>['z'-'a'+1]</code>)</i></dt>
+<dd><p>Evaluates the formula for variables in array <var>var</var>[&rsquo;z&rsquo;-&rsquo;a&rsquo;]. Error code (if one) can be obtained from function <code>GetError()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-CalcD-on-mglFormula"></a><u>Method on mglFormula:</u> <code>float</code> <b>CalcD</b><i> (<code>float</code> var<code>['z'-'a'+1]</code>, <code>char</code> diff)</i></dt>
+<dd><p>Evaluates the formula derivation respect to <var>diff</var> for variables in array <var>var</var>[&rsquo;z&rsquo;-&rsquo;a&rsquo;]. Error code (if one) can be obtained from function <code>GetError()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-GetError-on-mglFormula"></a><u>Method on mglFormula:</u> <code>int</code> <b>GetError</b><i> ()</i></dt>
+<dd><p>Returns error code: <code>0</code> means no error; <code>ERR_LOG</code> means error in logarithm or power functions; <code>ERR_ARC</code> means error in inverse functions (like asin); <code>ERR_SQRT</code> means error in sqrt function.
+</p></dd></dl>
+
+<hr size="6">
+<a name="mglFont-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglFormula-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Format-of-font-files" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglFont-class-1"></a>
+<h2 class="section">7.3 mglFont class</h2>
+<a name="index-mglFont"></a>
+
+<p>Class for working with font: load, get metrics, parse and draw strings. This class is defined in <code>#include &lt;mgl/mgl_font.h&gt;</code>.
+</p>
+<p>The class is based on loading and drawing of vector Hershey font. There are two styles of specifying of the font type and aligning: by integer parameters or by string.
+</p>
+<p>The string can be any combination of characters: &lsquo;<samp>rbiLCRwou</samp>&rsquo;. The font types are: &lsquo;<samp>r</samp>&rsquo; &ndash; roman font, &lsquo;<samp>i</samp>&rsquo; &ndash; italic style, &lsquo;<samp>b</samp>&rsquo; &ndash; bold style. By default roman font (that is &lsquo;<samp></samp>&rsquo; or &lsquo;<samp>r</samp>&rsquo;) is used. The align types are: &lsquo;<samp>L</samp>&rsquo; &ndash; align left (default), &lsquo;<samp>C</samp>&rsquo; &ndash; align center, &lsquo;<samp>R</samp>&rsquo; &ndash; align right. Additional font effects are: &lsquo;<samp>w</samp>&rsquo; &ndash; wire, &lsquo;<samp>o</samp>&rsquo; &ndash; over-lined, &lsquo;<samp>u</samp>&rsquo; &ndash; underlined. Parsing of the string to special (TeX-like) commands will be done if variable <var>parse</var> is true (it&rsquo;s default). See also see section <a href="mathgl_ru_1.html#Font-styles">Стиль текста</a>.
+</p>
+<p>The over way of font and alignment setting is the using of the integer constant. Integer font Id can be one of predefined constants: <code>MGL_FONT_ITAL, MGL_FONT_BOLD, MGL_FONT_BOLD_ITAL = MGL_FONT_ITAL+MGL_FONT_BOLD</code>. Default font is <code>MGL_FONT_ROMAN</code>. Also there are flags <code>MGL_FONT_ULINE, MGL_FONT_OLINE, MGL_FONT_WIRE</code> for additional font effects. Align parameter controls the text alignment: 0 &ndash; align left, 1 &ndash; align center, 2 &ndash; align right.
+</p>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Format-of-font-files">7.3.1 Format of font files</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+
+<dl>
+<dt><a name="index-mglFont-on-mglFont"></a><u>Method on mglFont:</u> <code></code> <b>mglFont</b><i> (<code>const char *</code>name=<code>MGL_DEF_FONT_NAME</code>, <code>const char *</code>path=<code>NULL</code>)</i></dt>
+<dd><p>Initialize the font and load data from file <var>name</var> (default name is &quot;STIX&quot; for Linux and MacOS) or if  <var>name</var>=<code>NULL</code> limited data from memory (default for Windows).
+</p></dd></dl>
+<dl>
+<dt><a name="index-Load-on-mglFont"></a><u>Method on mglFont:</u> <code>bool</code> <b>Load</b><i> (<code>const char *</code> base, <code>const char *</code>path=<code>NULL</code>)</i></dt>
+<dd><p>Load font from file <var>path</var>/<var>base</var> into the memory. The font may contain 4 files: <var>base</var>.vfm, <var>base</var>_b.vfm, <var>base</var>_i.vfm, <var>base</var>_bi.vfm. Appendix contain detailed description of font format.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Restore-on-mglFont"></a><u>Method on mglFont:</u> <code>void</code> <b>Restore</b><i> ()</i></dt>
+<dd><p>Restore default font.
+</p></dd></dl>
+<dl>
+<dt><a name="index-_0028-on-mglFont"></a><u>Method on mglFont:</u> <code>void</code> <b>(</b><i><code>mglFont *</code> fnt)</i></dt>
+<dd><p>Copy data from other font instance.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Clear-on-mglFont"></a><u>Method on mglFont:</u> <code>void</code> <b>Clear</b><i> ()</i></dt>
+<dd><p>Clear memory by deleting the loaded font.
+</p></dd></dl>
+<dl>
+<dt><a name="index-GetNumGlyph-on-mglFont"></a><u>Method on mglFont:</u> <code>inline unsigned</code> <b>GetNumGlyph</b><i> ()</i></dt>
+<dd><p>Return the number of glyphs in the font.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Ready-on-mglFont"></a><u>Method on mglFont:</u> <code>inline bool</code> <b>Ready</b><i> ()</i></dt>
+<dd><p>Return true if font is loaded and ready for use.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-Height-on-mglFont"></a><u>Method on mglFont:</u> <code>float</code> <b>Height</b><i> (<code>int</code> font)</i></dt>
+<dd><p>Gets height of text for font specified by integer constant.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Puts-on-mglFont"></a><u>Method on mglFont:</u> <code>float</code> <b>Puts</b><i> (<code>const char *</code>str, <code>int</code> font=<code>0</code>, <code>int</code> align=<code>0</code>)</i></dt>
+<dd><p>Prints 8-bit text string for font specified by integer constant.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Width-on-mglFont"></a><u>Method on mglFont:</u> <code>float</code> <b>Width</b><i> (<code>const char *</code>str, <code>int</code> font=<code>0</code>)</i></dt>
+<dd><p>Gets width of 8-bit text string for font specified by integer constant.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Puts-on-mglFont-1"></a><u>Method on mglFont:</u> <code>float</code> <b>Puts</b><i> (<code>const wchar_t *</code>str, <code>int</code> font=<code>0</code>, <code>int</code> align=<code>0</code>)</i></dt>
+<dd><p>Prints Unicode text string for font specified by integer constant.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Width-on-mglFont-1"></a><u>Method on mglFont:</u> <code>float</code> <b>Width</b><i> (<code>const wchar_t *</code>str, <code>int</code> font=<code>0</code>)</i></dt>
+<dd><p>Gets width of Unicode text string for font specified by integer constant.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-Height-on-mglFont-1"></a><u>Method on mglFont:</u> <code>float</code> <b>Height</b><i> (<code>const char *</code>how)</i></dt>
+<dd><p>Gets height of text for font specified by string.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Puts-on-mglFont-2"></a><u>Method on mglFont:</u> <code>float</code> <b>Puts</b><i> (<code>const char *</code>str, <code>const char *</code>how)</i></dt>
+<dd><p>Prints 8-bit text string for font specified by string.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Width-on-mglFont-2"></a><u>Method on mglFont:</u> <code>float</code> <b>Width</b><i> (<code>const char *</code>str, <code>const char *</code>how)</i></dt>
+<dd><p>Gets width of 8-bit text string for font specified by string.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Puts-on-mglFont-3"></a><u>Method on mglFont:</u> <code>float</code> <b>Puts</b><i> (<code>const wchar_t *</code>str, <code>const char *</code>how)</i></dt>
+<dd><p>Prints Unicode text string for font specified by string.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Width-on-mglFont-3"></a><u>Method on mglFont:</u> <code>float</code> <b>Width</b><i> (<code>const wchar_t *</code>str, <code>const char *</code>how)</i></dt>
+<dd><p>Gets width of Unicode text string for font specified by string.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-gr-of-mglFont"></a><u>Parameter of mglFont:</u> <code>mglGraph *</code> <b>gr</b></dt>
+<dd><p>Instance of mglGraph class which is used for character drawing.
+</p></dd></dl>
+<dl>
+<dt><a name="index-parse-of-mglFont"></a><u>Parameter of mglFont:</u> <code>bool</code> <b>parse</b></dt>
+<dd><p>Flag for switching on/off the parsing of TeX commands. Default value is <code>true</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Format-of-font-files"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglFont-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglColor-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglFont-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Format-of-font-files-1"></a>
+<h3 class="subsection">7.3.1 Format of font files</h3>
+
+<p>Starting from v.1.6 the MathGL library uses new font files. The font is defined in 4 files with suffixes &lsquo;<samp>*.vfm</samp>&rsquo;, &lsquo;<samp>*_b.vfm</samp>&rsquo;, &lsquo;<samp>*_i.vfm</samp>&rsquo;, &lsquo;<samp>*_bi.vfm</samp>&rsquo;. These files are text files containing the data for roman font, bold font, italic font and bold italic font. The files (or some symbols in the files) for bold, italic or bold italic fonts can be absent. In this case the roman glyph will be used for them. By analogy, if the bold italic font is absent but the bold font is present then bold glyph will be used for bold italic. You may create these font files by yourself from *.ttf, *.otf files with the help of program <code>font_tools</code>. This program can be found at MathGL home site.
+</p>
+<p>The format of font files (*.vfm &ndash; vector font for MathGL) is the following.
+</p><ol>
+<li>
+First string contains human readable comment and is always ignored.
+</li><li>
+Second string contains 3 numbers, delimited by space or tabulation. The order of numbers is the following: <var>numg</var> &ndash; the number of glyphs in the file (integer), <var>fact</var> &ndash; the factor for glyph sizing (float), <var>size</var> &ndash; the size of buffer for glyph description (integer).
+</li><li>
+After it <var>numg</var>-th strings with glyphs description are placed. Each string contains 6 positive numbers, delimited by space of tabulation. The order of numbers is the following: Unicode glyph ID, glyph width, number of lines in glyph, position of lines coordinates in the buffer (length is 2*number of lines), number of triangles in glyph, position of triangles coordinates in the buffer (length is 6*number of triangles).
+</li><li>
+The end of file contains the buffer with point coordinates at lines or triangles vertexes. The size of buffer (the number of integer) is <var>size</var>.
+</li></ol>
+
+<p>Each font file can be compressed by gzip.
+</p>
+<p>Note: the closing contour line  is done automatically (so the last segment may be absent). For starting new contour use a point with coordinates <code>{0x3fff, 0x3fff}</code>.
+</p>
+
+<hr size="6">
+<a name="mglColor-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Format-of-font-files" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglPoint-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglColor-class-1"></a>
+<h2 class="section">7.4 mglColor class</h2>
+<a name="index-mglColor"></a>
+
+<p>Structure for working with colors. This structure is defined in <code>#include &lt;mgl/mgl.h&gt;</code>.
+</p>
+<p>There are two ways to set the color in MathGL. First one is using of float values of red, green and blue channels for precise color definition. The second way is the using of character id. There are a set of characters specifying frequently used colors. Normally capital letter gives more dark color than lowercase one. See section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>.
+</p>
+<dl>
+<dt><a name="index-r_002c-g_002c-b-of-mglVar"></a><u>Parameter of mglVar:</u> <code>float</code> <b>r, g, b</b></dt>
+<dd><p>Reg, green and blue component of color.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglColor-on-mglColor"></a><u>Method on mglColor:</u> <code></code> <b>mglColor</b><i> (<code>float</code> R, <code>float</code> G, <code>float</code> B)</i></dt>
+<dd><p>Constructor sets the color by float values of Red, Green and Blue channels.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mglColor-on-mglColor-1"></a><u>Method on mglColor:</u> <code></code> <b>mglColor</b><i> (<code>char</code> c=<code>'k'</code>)</i></dt>
+<dd><p>Constructor sets the color from character id. The black color is used by default.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-on-mglColor"></a><u>Method on mglColor:</u> <code>void</code> <b>Set</b><i> (<code>float</code> R, <code>float</code> G, <code>float</code> B)</i></dt>
+<dd><p>Sets color from values of Red, Green and Blue channels. This values should be in interval [0,1].
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-on-mglColor-1"></a><u>Method on mglColor:</u> <code>void</code> <b>Set</b><i> (<code>mglColor</code> c, <code>float</code> bright=<code>1</code>)</i></dt>
+<dd><p>Sets color as &ldquo;lighted&rdquo; version of color <var>c</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-on-mglColor-2"></a><u>Method on mglColor:</u> <code>void</code> <b>Set</b><i> (<code>char</code> p)</i></dt>
+<dd><p>Sets color from symbolic id.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Valid-on-mglColor"></a><u>Method on mglColor:</u> <code>bool</code> <b>Valid</b><i> ()</i></dt>
+<dd><p>Checks correctness of the color.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Norm-on-mglColor"></a><u>Method on mglColor:</u> <code>float</code> <b>Norm</b><i> ()</i></dt>
+<dd><p>Gets maximal of spectral component.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_003d_003d-on-mglColor"></a><u>Method on mglColor:</u> <code>bool</code> <b>operator==</b><i> (<code>const mglColor &amp;</code>c)</i></dt>
+<dd><p>Compare with another color
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002b-3"></a><u>Library Function:</u> inline mglColor <b>operator+</b><i> (<code>const mglColor &amp;</code>a, <code>const mglColor &amp;</code>b)</i></dt>
+<dd><p>Adds colors by its RGB values.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d-3"></a><u>Library Function:</u> inline mglColor <b>operator-</b><i> (<code>const mglColor &amp;</code>a, <code>const mglColor &amp;</code>b)</i></dt>
+<dd><p>Subtracts colors by its RGB values.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-3"></a><u>Library Function:</u> inline mglColor <b>operator*</b><i> (<code>const mglColor &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Multiplies color by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-4"></a><u>Library Function:</u> inline mglColor <b>operator*</b><i> (<code>float</code> a, <code>const mglColor &amp;</code>b)</i></dt>
+<dd><p>Multiplies color by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f-2"></a><u>Library Function:</u> inline mglColor <b>operator/</b><i> (<code>const mglColor &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Divide color by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_0021"></a><u>Library Function:</u> inline mglColor <b>operator!</b><i> (<code>const mglColor &amp;</code>a)</i></dt>
+<dd><p>Return inverted color.
+</p></dd></dl>
+
+<hr size="6">
+<a name="mglPoint-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglColor-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglVar-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglPoint-class-1"></a>
+<h2 class="section">7.5 mglPoint class</h2>
+<a name="index-mglPoint"></a>
+
+<p>Structure describes point in space. This structure is defined in <code>#include &lt;mgl/mgl.h&gt;</code>
+</p>
+<dl>
+<dt><a name="index-x_002c-y_002c-z-of-mglVar"></a><u>Parameter of mglVar:</u> <code>float</code> <b>x, y, z</b></dt>
+<dd><p>Point coordinates. By default all values are zero.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002b-4"></a><u>Library Function:</u> inline mglPoint <b>operator+</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Point of summation (summation of vectors).
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d-4"></a><u>Library Function:</u> inline mglPoint <b>operator-</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Point of difference (difference of vectors).
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-5"></a><u>Library Function:</u> inline mglPoint <b>operator*</b><i> (<code>float</code> a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Multiplies (scale) points by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-6"></a><u>Library Function:</u> inline mglPoint <b>operator*</b><i> (<code>const mglPoint &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Multiplies (scale) points by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f-3"></a><u>Library Function:</u> inline mglPoint <b>operator/</b><i> (<code>const mglPoint &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Multiplies (scale) points by number 1/b.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d-5"></a><u>Library Function:</u> inline float <b>operator-</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Scalar product of vectors.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_005e"></a><u>Library Function:</u> inline mglPoint <b>operator^</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Cross-product of vectors.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_0026"></a><u>Library Function:</u> inline mglPoint <b>operator&amp;</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>The part of <var>a</var> which is perpendicular to vector <var>b</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_007c"></a><u>Library Function:</u> inline mglPoint <b>operator|</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>The part of <var>a</var> which is parallel to vector <var>b</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_0021-1"></a><u>Library Function:</u> inline mglPoint <b>operator!</b><i> (<code>const mglPoint &amp;</code>a)</i></dt>
+<dd><p>Return vector perpendicular to vector <var>a</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Norm-2"></a><u>Library Function:</u> inline bool <b>Norm</b><i> (<code>const mglPoint &amp;</code>a)</i></dt>
+<dd><p>Return the norm |<var>a</var>|^2 of vector <var>a</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_003d_003d"></a><u>Library Function:</u> inline bool <b>operator==</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Return true if points are the same.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_0021_003d"></a><u>Library Function:</u> inline bool <b>operator!=</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Return true if points are different.
+</p></dd></dl>
+
+<hr size="6">
+<a name="mglVar-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglPoint-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglCommand-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglVar-class-1"></a>
+<h2 class="section">7.6 mglVar class</h2>
+<a name="index-mglVar"></a>
+
+<p>Structure describes variable of type <code>mglData</code> and its name in MGL script. This structure is used by <code>mglParse</code> and is defined in <code>#include &lt;mgl/mgl_parse.h&gt;</code>.
+</p>
+<dl>
+<dt><a name="index-d-of-mglVar"></a><u>Parameter of mglVar:</u> <code>mglData</code> <b>d</b></dt>
+<dd><p>Data itself
+</p></dd></dl>
+<dl>
+<dt><a name="index-s-of-mglVar"></a><u>Parameter of mglVar:</u> <code>wchar_t</code> <b>s</b><i>[256]</i></dt>
+<dd><p>Data name
+</p></dd></dl>
+<dl>
+<dt><a name="index-o-of-mglVar"></a><u>Parameter of mglVar:</u> <code>void *</code> <b>o</b></dt>
+<dd><p>Pointer to external object for function <var>func</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-next-of-mglVar"></a><u>Parameter of mglVar:</u> <code>mglVar *</code> <b>next</b></dt>
+<dd><p>Pointer to next instance in list
+</p></dd></dl>
+<dl>
+<dt><a name="index-prev-of-mglVar"></a><u>Parameter of mglVar:</u> <code>mglVar *</code> <b>prev</b></dt>
+<dd><p>Pointer to prev instance in list
+</p></dd></dl>
+<dl>
+<dt><a name="index-temp-of-mglVar"></a><u>Parameter of mglVar:</u> <code>bool</code> <b>temp</b></dt>
+<dd><p>Flag for temporar variable. Temporal variables will be destroyed after script execution.
+</p></dd></dl>
+<dl>
+<dt><a name="index-func-of-mglVar"></a><u>Parameter of mglVar:</u> <code>void (*</code> <b>func</b><i> <code>)(void *)</code></i></dt>
+<dd><p>Callback function for destroying non-temporal variable.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-MoveAfter-on-mglVar"></a><u>Method on mglVar:</u> <code>void</code> <b>MoveAfter</b><i> (<code>mglVar *</code>var)</i></dt>
+<dd><p>Move variable after <var>var</var> and copy <code>func</code> from <code>var</code> (if <code>func</code> is not 0)
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="mglCommand-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglVar-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglArg-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglCommand-class-1"></a>
+<h2 class="section">7.7 mglCommand class</h2>
+<a name="index-mglCommand"></a>
+
+<p>Structure describes MGL command, its name, short description, executable and export functions. The structure is used by <code>mglParse</code> and is defined in <code>#include &lt;mgl/mgl_parse.h&gt;</code>.
+</p>
+<dl>
+<dt><a name="index-name-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>const wchar_t *</code> <b>name</b></dt>
+<dd><p>Name of command.
+</p></dd></dl>
+<dl>
+<dt><a name="index-desc-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>const wchar_t *</code> <b>desc</b></dt>
+<dd><p>Short command description (can be NULL).
+</p></dd></dl>
+<dl>
+<dt><a name="index-form-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>const wchar_t *</code> <b>form</b></dt>
+<dd><p>Format of command arguments (can be NULL).
+</p></dd></dl>
+<dl>
+<dt><a name="index-exec-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>int (*</code> <b>exec</b><i> <code>)(mglGraph *gr, long n, mglArg *a, int k[10])const wchar_t *</code></i></dt>
+<dd><p>Function for executing (plotting) the command using grapher <var>gr</var> and having <var>n</var>-th arguments <var>a</var>. Function must return 0 if all is OK; or 1 if arguments are wrong.
+</p></dd></dl>
+<dl>
+<dt><a name="index-save-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>void (*</code> <b>save</b><i> <code>)(wchar_t out[1024], long n, mglArg *a, int k[10])const wchar_t *</code></i></dt>
+<dd><p>Function for exporting in C++ (can be NULL).
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="mglArg-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglCommand-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglArg-class-1"></a>
+<h2 class="section">7.8 mglArg class</h2>
+<a name="index-mglArg"></a>
+
+<p>Structure describes arguments of functions in the stucture <code>mglCommand</code>. It is defined in <code>#include &lt;mgl/mgl_parse.h&gt;</code>.
+</p>
+<dl>
+<dt><a name="index-type-of-mglArg"></a><u>Parameter of mglArg:</u> <code>int</code> <b>type</b></dt>
+<dd><p>Type of argument: 0-data, 1-string, 2-number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-d-of-mglArg"></a><u>Parameter of mglArg:</u> <code>mglData *</code> <b>d</b></dt>
+<dd><p>Pointer to data (used if type=0).
+</p></dd></dl>
+<dl>
+<dt><a name="index-w-of-mglArg"></a><u>Parameter of mglArg:</u> <code>wchar_t</code> <b>w</b><i>[2048]</i></dt>
+<dd><p>String with parameters (used if type=1 or if type=0 as variable name).
+</p></dd></dl>
+<dl>
+<dt><a name="index-s-of-mglArg"></a><u>Parameter of mglArg:</u> <code>char</code> <b>s</b><i>[2048]</i></dt>
+<dd><p>String with parameters (used if type=1).
+</p></dd></dl>
+<dl>
+<dt><a name="index-v-of-mglArg"></a><u>Parameter of mglArg:</u> <code>float</code> <b>v</b></dt>
+<dd><p>Numerical value (used if type==2)
+</p></dd></dl>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_8.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_8.html
new file mode 100644
index 0000000..0d1f712
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_8.html
@@ -0,0 +1,2895 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: 8. Язык MGL</title>
+
+<meta name="description" content="MathGL 1.11: 8. Язык MGL">
+<meta name="keywords" content="MathGL 1.11: 8. Язык MGL">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="MGL-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_7.html#mglArg-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="YA_0437_044b_043a-MGL"></a>
+<h1 class="chapter">8. Язык MGL</h1>
+
+<p>MathGL имеет встроенный скриптовый язык MGL для обработки и отображения данных. Скрипты MGL можно использовать как независимо (программами UDAV, mgl2png, mgl2eps, mgl2svg и пр., see section <a href="#Utilities">Утилиты для MGL</a>) так и вызовами библиотеки.
+</p>
+<p>Язык MGL достаточно простой. Каждая строка &ndash; отдельная команда. Первое слово &ndash; имя команды, а все остальные ее аргументы. Команда может иметь до 1000 аргументов (по крайней мере сейчас). Слова разделяются одно от другого пробелом или символом табуляции. Различий между верхним и нижним индексом нет, т.е. переменные <var>a</var> и <var>A</var> идентичны. Символ &lsquo;<samp>#</samp>&rsquo; начинает комментарий &ndash; все символы после него игнорируются до конца строки. Исключением является случай, когда &lsquo;<samp>#</samp>&rsquo; входит в строку. Опции команды указываются после символа &lsquo;<samp>;</samp>&rsquo; (see section <a href="#Command-options-_0028MGL_0029">Опции команд (MGL)</a>). Символ &lsquo;<samp>:</samp>&rsquo; начинает новую команду (подобно переводу строки) если он расположен не внутри скобок или строки.
+</p>
+<p>Если строка содержит ссылки на внешние параметры (&lsquo;<samp>$0</samp>&rsquo;, &lsquo;<samp>$1</samp>&rsquo; ... &lsquo;<samp>$9</samp>&rsquo;) или макроопределения (&lsquo;<samp>$a</samp>&rsquo;, &lsquo;<samp>$b</samp>&rsquo; ... &lsquo;<samp>$z</samp>&rsquo;), то текущие значения параметров/макроопределений подставляются в строку вместо ссылки до выполнением команды. Это позволяет использовать один и тот же скрипт при различных входных параметрах командной строки или вводить макроопределения по ходу исполнения команд скрипта.
+</p>
+<p>Аргументы команды могут быть строками, переменными или числами. 
+</p><ul>
+<li> 
+Строка &ndash; произвольный набор символов между метками &lsquo;<samp>'</samp>&rsquo;.
+
+</li><li> 
+Обычно переменная имеет имя, состоящее из букв и чисел (должно начинаться с буквы и не быть длиннее 64 символов). В качестве переменной можно использовать временные массивы, включающие в себя:
+<ul>
+<li> 
+срезы (&ldquo;подмассивы&rdquo;) массивов данных (подобно команде <a href="#subdata">subdata</a>). Например, <code>a(1)</code> или <code>a(1,:)</code> или <code>a(1,:,:)</code> &ndash; вторая строка массива <var>a</var>, <code>a(:,2)</code> или <code>a(:,2,:)</code> &ndash; третий столбец, <code>a(:,:,0)</code> &ndash; первый срез и т.д. Также можно выделить часть массива с m-го по n-ый элемент <code>a(m:n,:,:)</code> или просто <code>a(m:n)</code>.
+
+</li><li> 
+произвольные комбинации столбцов данных (например, <code>a('n*w^2/exp(t)')</code>), если столбцы данных были именованы командой <a href="#idset">idset</a> или в файле данных (в строке начинающейся с <code>##</code>).
+
+</li><li> 
+произвольное выражение из существующих переменных и констант. Например, &lsquo;<samp>sqrt(dat(:,5)+1)</samp>&rsquo; даст временный массив данных с элементами равными <code>tmp[i,j] = sqrt(dat[i,5,j]+1)</code>.
+
+</li><li> 
+массивы с элементами заданными в квадратных скобках [], разделенные &lsquo;<samp>,</samp>&rsquo;. При этом внутри выражения не должно быть пробелов! Например, &lsquo;<samp>[1,2,3]</samp>&rsquo; даст временный массив из 3 элементов {1, 2, 3}; &lsquo;<samp>[[11,12],[21,22]]</samp>&rsquo; даст матрицу 2*2 и т.д. Элементами такой конструкции могут быть и массивы если их размерности одинаковые, например &lsquo;<samp>[v1,v2,...,vn]</samp>&rsquo;.
+
+</li><li> 
+результат команд построения новых данных (see section <a href="mathgl_ru_6.html#Make-another-data">Создание новых данных</a>), если они заключены в фигурные скобки {}. Например, &lsquo;<samp>{sum dat 'x'}</samp>&rsquo; даст временный массив, который есть результат суммирования <var>dat</var> вдоль &rsquo;x&rsquo;. Это такой же массив как и <var>tmp</var>, полученный командой &lsquo;<samp>sum tmp dat 'x'</samp>&rsquo;. При этом можно использовать вложенные конструкции, например &lsquo;<samp>{sum {max dat 'z'} 'x'}</samp>&rsquo;.
+</li></ul>
+<p>Временные массивы не могут стоять в качестве первого аргумента команд, создающих массивы (например, &lsquo;<samp>new</samp>&rsquo;, &lsquo;<samp>read</samp>&rsquo;, &lsquo;<samp>hist</samp>&rsquo; и т.д.).
+</p>
+</li><li> 
+К скалярным переменным, кроме собственно чисел, относятся: специальные переменные <code>nan=#QNAN, pi=3.1415926..., on=1, off=0, :=-1</code>, переменные с суффиксами (see section <a href="#Suffixes">Суффиксы переменных</a>), переменные определенные командой <a href="#define">define</a>. Также массивы размером 1x1x1 считаются скалярами (например, &lsquo;<samp>pi/dat.nx</samp>&rsquo;).
+</li></ul>
+<p>Перед первым использованием все переменные должны быть определены с помощью команд, создающих массивы (<a href="#new">new</a>, <a href="#var">var</a>, <a href="#list">list</a>, <a href="#copy">copy</a>, <a href="#read">read</a>, <a href="#hist">hist</a>, <a href="#sum">sum</a> и др., see section <a href="#Data-create-_0028MGL_0029">Создание данных (MGL)</a> и <a href="#Make-another-data-_0028MGL_0029">Создание новых данных (MGL)</a>). 
+</p>
+<p>Команды могут иметь несколько наборов аргументов (например, <code>plot ydat</code> и <code>plot xdat ydat</code>). Все аргументы команды для выбранного набора должны быть указаны, однако часть из них могут иметь значения по умолчанию. Такие аргументы в описании команд будут помещены в квадратные скобки [], например <code>plot ydat ['stl'='' zval=nan]</code>. При этом запись <code>[arg1 arg2 arg3 ...]</code> подразумевает <code>[arg1 [arg2 [arg3 ...]]]</code>, т.е. опускать можно только аргументы с конца, если вы согласны с их значениями по умолчанию. Например, <code>plot ydat '' 1</code> или <code>plot ydat ''</code> правильно, а <code>plot ydat 1</code> не правильно (аргумент <code>'stl'</code> пропущен).
+</p>
+<p>Все команды MGL можно разделить на несколько групп. В дальнейшем будет использованы следующие обозначения при описании команд: имя команды выделено жирным, строки заключены в одинарные кавычки &rdquo;, переменные выделены курсивом, числа (скаляры) выделены моноширинным шрифтом. Необязательные аргументы будут помещены в квадратные скобки [] и показаны их значения по умолчанию. Подробную информацию о цвете и стиле линий (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>), цветовых схемах (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>), стиле текста и символах TeX (see section <a href="mathgl_ru_1.html#Font-styles">Стиль текста</a>), текстовых формулах (see section <a href="mathgl_ru_1.html#Textual-formulas">Текстовые формулы</a>) можно найти в соответствующих разделах.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Graphics-setup-_0028MGL_0029">8.1 Настройка графика (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transformation-matrix-_0028MGL_0029">8.3 Матрица преобразования (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Export-to-file-_0028MGL_0029">8.4 Экспорт в файл (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing-_0028MGL_0029">8.6 Вывод текста (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Legend-_0028MGL_0029">8.8 Легенда (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting-_0028MGL_0029">8.12 Парные графики (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-fields-_0028MGL_0029">8.13 Векторные поля (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-create-_0028MGL_0029">8.16 Создание данных (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-filling-_0028MGL_0029">8.17 Заполнение данных (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Rearrange-data-_0028MGL_0029">8.18 Изменение размеров данных (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Operators-_0028MGL_0029">8.22 Операторы (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Suffixes">8.25 Суффиксы переменных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Utilities">8.26 Утилиты для MGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+</table>
+
+
+<hr size="6">
+<a name="Graphics-setup-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparency-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041d_0430_0441_0442_0440_043e_0439_043a_0430-g_0440_0430_0444_0438_043a_0430-_0028MGL_0029"></a>
+<h2 class="section">8.1 Настройка графика (MGL)</h2>
+
+<p>Команды в этой группе влияют на вид всего рисунка. Соответственно они должны располагаться <em>перед</em> вызовом функций непосредственно рисующих графики.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Transparency-_0028MGL_0029">8.1.1 Прозрачность (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lighting-_0028MGL_0029">8.1.2 Освещение (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fog-_0028MGL_0029">8.1.3 Туман (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Default-sizes-_0028MGL_0029">8.1.4 Базовые размеры (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Zooming-_0028MGL_0029">8.1.5 Масштабирование (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cutting-_0028MGL_0029">8.1.6 Обрезание (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-settings-_0028MGL_0029">8.1.7 Прочие настройки (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Transparency-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lighting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x-_0028MGL_0029"></a>
+<h3 class="subsection">8.1.1 Прозрачность (MGL)</h3>
+
+<p>Эти команды настраивают тип и степень прозрачности поверхностей. Главной является функция <a href="#alpha">alpha</a>, которая включает/выключает прозрачность для всех графиков, созданных после вызова <a href="#alpha">alpha</a>. Функция <a href="#alphadef">alphadef</a> устанавливает величину alpha-канала по умолчанию. Прозрачность можно выключить для отдельного графика с помощью <a href="#transparent">transparent</a>. Наконец, функция <a href="#transptype">transptype</a> задает тип прозрачности. См. раздел <a href="mathgl_ru_9.html#Transparent-surface-sample">Transparent surface &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<a name="index-alpha"></a>
+<p><a name="alpha"></a>
+</p><dl>
+<dt><a name="index-alpha-1"></a><u>Команда MGL:</u> <b>alpha</b><i> <code>[val=on]</code></i></dt>
+<dd><p>Включает/выключает прозрачность для <em>всего</em> рисунка. По умолчанию прозрачность выключена. Используйте <code>transparent off</code> для конкретного графика для выключения прозрачности.
+</p></dd></dl>
+<a name="index-alphadef"></a>
+<p><a name="alphadef"></a>
+</p><dl>
+<dt><a name="index-alphadef-1"></a><u>Команда MGL:</u> <b>alphadef</b><i> <code>val</code></i></dt>
+<dd><p>Задает значение прозрачности по умолчанию для всех графиков. Начальное значение 0.5.
+</p></dd></dl>
+<a name="index-transparent"></a>
+<p><a name="transparent"></a>
+</p><dl>
+<dt><a name="index-transparent-1"></a><u>Команда MGL:</u> <b>transparent</b><i> <code>val</code></i></dt>
+<dd><p>Временно включает/возвращает прозрачность графиков.
+</p></dd></dl>
+<a name="index-transptype"></a>
+<p><a name="transptype"></a>
+</p><dl>
+<dt><a name="index-transptype-1"></a><u>Команда MGL:</u> <b>transptype</b><i> <code>val</code></i></dt>
+<dd><p>Задает тип прозрачности. Обычная прозрачность (&lsquo;<samp>0</samp>&rsquo;) &ndash; &quot;закрытые&quot; объекты видны меньше чем закрывающие. &quot;Стеклянная&quot; прозрачность (&lsquo;<samp>1</samp>&rsquo;) &ndash; закрытые и закрывающие объекты единообразно ослабляют интенсивность света (по RGB каналам). &quot;Ламповая&quot; прозрачность (&lsquo;<samp>2</samp>&rsquo;) &ndash; закрытые и закрывающие объекты являются источниками дополнительного освещения (рекомендую установить <code>alphadef 0.3</code> или меньше в этом случае). See section <a href="mathgl_ru_9.html#Normal-transparency">Обычная прозрачность</a>, <a href="mathgl_ru_9.html#Glass_002dlike-transparency">&quot;Стеклянная&quot; прозрачность</a>, <a href="mathgl_ru_9.html#Lamp_002dlike-transparency">&quot;Ламповая&quot; прозрачность</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Lighting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparency-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fog-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_0432e_0449e_043d_0438e-_0028MGL_0029"></a>
+<h3 class="subsection">8.1.2 Освещение (MGL)</h3>
+
+<p>Эти функции настраивают освещение графика. Главная функция <a href="#light">light</a> включает/выключает освещение графиков построенных после ее вызова. MathGL  поддерживает до 10 независимых источников света. Положение, цвет, яркость каждого источника света можно задавать по отдельности. По умолчанию включен только первый (с порядковым номером <code>0</code>) источник света белого цвета, расположенный сверху.
+</p>
+<a name="index-light"></a>
+<p><a name="light"></a>
+</p><dl>
+<dt><a name="index-light-1"></a><u>Команда MGL:</u> <b>light</b><i> <code>[val=on]</code></i></dt>
+<dd><p>Включает/выключает освещение графика. По умолчанию освещение выключено.
+</p></dd></dl>
+<dl>
+<dt><a name="index-light-2"></a><u>Команда MGL:</u> <b>light</b><i> <code>n val</code></i></dt>
+<dd><p>Включает/выключает <var>n</var>-ый источник света.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-light-3"></a><u>Команда MGL:</u> <b>light</b><i> <code>n xpos ypos zpos</code> ['col'='w' <code>br=0.5</code>]</i></dt>
+<dd><p>Добавляет источник света с номером <var>n</var> в положение {<var>xpos</var>, <var>ypos</var>, <var>zpos</var>} с цветом <var>col</var> и яркостью <var>br</var>, которая должна быть в диапазоне [0,1].
+</p></dd></dl>
+
+<a name="index-ambient"></a>
+<p><a name="ambient"></a>
+</p><dl>
+<dt><a name="index-ambient-1"></a><u>Команда MGL:</u> <b>ambient</b><i> <code>val</code></i></dt>
+<dd><p>Задает яркость рассеянного освещения. Значение должно быть в диапазоне [0,1].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fog-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lighting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Default-sizes-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0422_0443_043c_0430_043d-_0028MGL_0029"></a>
+<h3 class="subsection">8.1.3 Туман (MGL)</h3>
+
+<a name="index-fog"></a>
+<p><a name="fog"></a>
+</p><dl>
+<dt><a name="index-fog-1"></a><u>Команда MGL:</u> <b>fog</b><i> <code>val [dz=0.25]</code></i></dt>
+<dd><p>Имитирует туман на графике. Туман начинается на относительном расстоянии <var>dz</var> от точки обзора и его плотность растет экспоненциально вглубь по закону ~<em>1-exp(-d*z)</em>. Здесь <em>z</em> &ndash; нормализованная на 1 глубина графика. Если <var>d</var>=<code>0</code> то туман отсутствует. См. раздел <a href="mathgl_ru_9.html#Surface-in-fog-sample">Surface in fog &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Default-sizes-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fog-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Zooming-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0411_0430_0437_043e_0432_044be-_0440_0430_0437_043ce_0440_044b-_0028MGL_0029"></a>
+<h3 class="subsection">8.1.4 Базовые размеры (MGL)</h3>
+
+<p>Эти команды задают величины большинства параметров графика, включая размеры маркеров, стрелок, толщину линий и т.д. Как и любые другие настройки, они подействуют только на графики созданные после изменения настроек.
+</p>
+<a name="index-barwidth"></a>
+<p><a name="barwidth"></a>
+</p><dl>
+<dt><a name="index-barwidth-1"></a><u>Команда MGL:</u> <b>barwidth</b><i> <code>val</code></i></dt>
+<dd><p>Относительный размер прямоугольников в <code>bars, barh, boxplot</code>. Значение по умолчанию <code>0.7</code>.
+</p></dd></dl>
+
+<a name="index-marksize"></a>
+<p><a name="marksize"></a>
+</p><dl>
+<dt><a name="index-marksize-1"></a><u>Команда MGL:</u> <b>marksize</b><i> <code>val</code></i></dt>
+<dd><p>Размер маркеров для <a href="mathgl_ru_3.html#g_t1D-plotting">1D графики</a>. Значение по умолчанию <code>1</code>.
+</p></dd></dl>
+
+<a name="index-arrowsize"></a>
+<p><a name="arrowsize"></a>
+</p><dl>
+<dt><a name="index-arrowsize-1"></a><u>Команда MGL:</u> <b>arrowsize</b><i> <code>val</code></i></dt>
+<dd><p>Размер стрелок для <a href="mathgl_ru_3.html#g_t1D-plotting">1D графики</a>, линий и кривых (see section <a href="mathgl_ru_3.html#Primitives-drawing">Рисование примитивов</a>). Значение по умолчанию <code>1</code>.
+</p></dd></dl>
+
+<a name="index-linewidth"></a>
+<p><a name="linewidth"></a>
+</p><dl>
+<dt><a name="index-linewidth-1"></a><u>Команда MGL:</u> <b>linewidth</b><i> <code>val</code></i></dt>
+<dd><p>Базовая толщина линий. Значения &lt;1 игнорируются. Для значений &gt;1 реальная толщина получается перемножением указанной ширины линии на данное значение. Увеличение ширины линии актуально для больших растровых рисунков. Значение по умолчанию <code>1</code>.
+</p></dd></dl>
+
+<a name="index-ticklen"></a>
+<p><a name="ticklen"></a>
+</p><dl>
+<dt><a name="index-ticklen-1"></a><u>Команда MGL:</u> <b>ticklen</b><i> <code>val</code> [<code>stt=1</code>]</i></dt>
+<dd><p>Относительная длина меток осей координат. Значение по умолчанию <code>0.1</code>. Параметр <var>stt</var>&gt;0 задает относительную длину подметок, которые в <code>sqrt(1+stt)</code> раз меньше.
+</p></dd></dl>
+
+<a name="index-tickstl"></a>
+<p><a name="tickstl"></a>
+</p><dl>
+<dt><a name="index-tickstl-1"></a><u>Команда MGL:</u> <b>tickstl</b><i> 'stl' ['sub'='']</i></dt>
+<dd><p>Стиль меток (<var>stl</var>) и подметок (<var>sub</var>) осей координат. Если <code>stl=''</code>, то используется стиль по умолчанию (&lsquo;<samp>k</samp>&rsquo; или &lsquo;<samp>w</samp>&rsquo; в зависимости от типа прозрачности). Если <code>sub=''</code>, то используется стиль меток (т.е. <var>stl</var>).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Zooming-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Default-sizes-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cutting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041c_0430_0441_0448_0442_0430_0431_0438_0440_043e_0432_0430_043d_0438e-_0028MGL_0029"></a>
+<h3 class="subsection">8.1.5 Масштабирование (MGL)</h3>
+
+<p>Эти команды управляют масштабированием всего рисунка (<a href="#zoom">zoom</a>) или отдельной картинки (<a href="#plotfactor">plotfactor</a>). Обычно эти функции используются для удаления пустого места вокруг графиков.
+</p>
+<a name="index-plotfactor"></a>
+<p><a name="plotfactor"></a>
+</p><dl>
+<dt><a name="index-plotfactor-1"></a><u>Команда MGL:</u> <b>plotfactor</b><i> <code>val</code></i></dt>
+<dd><p>Масштаб картинки (значение должно быть больше 1). Не рекомендуется устанавливать значения меньше 1.5. Это аналог <a href="#zoom">zoom</a>, но применяется только к конкретной картинке, заданной <a href="#inplot">inplot</a>. Используйте ноль для включения автоматического масштабирования.
+</p></dd></dl>
+
+<a name="index-zoom"></a>
+<p><a name="zoom"></a>
+</p><dl>
+<dt><a name="index-zoom-1"></a><u>Команда MGL:</u> <b>zoom</b><i> <code>x1 y1 x2 y2</code></i></dt>
+<dd><p>Масштабирует весь рисунок. После вызова функции текущий график будет очищен и в дальнейшем рисунок будет содержать только область [x1,x2]*[y1,y2] от исходного рисунка. Координаты <var>x1</var>, <var>x2</var>, <var>y1</var>, <var>y2</var> меняются в диапазоне от 0 до 1. Внимание! эти настройки не могут быть переписаны никакими другими функциями. Используйте <code>zoom 0 0 1 1</code> для перехода в масштаб по умолчанию.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cutting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Zooming-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-settings-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0431_0440e_0437_0430_043d_0438e-_0028MGL_0029"></a>
+<h3 class="subsection">8.1.6 Обрезание (MGL)</h3>
+
+<p>Эти команды задают условия когда точка будет исключена (вырезана) из рисования. Замечу, что все точки со значением(-ями) <code>nan</code> по одной из координат или амплитуде автоматически исключаются из рисования.
+</p>
+<a name="index-cut"></a>
+<p><a name="cut"></a>
+</p><dl>
+<dt><a name="index-cut-1"></a><u>Команда MGL:</u> <b>cut</b><i> <code>val</code></i></dt>
+<dd><p>Задает обрезание точек за пределами осей координат. Если <code>on</code> то такие точки исключаются из рисования (это по умолчанию) иначе они проецируются на ограничивающий прямоугольник.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cut-2"></a><u>Команда MGL:</u> <b>cut</b><i> <code>x1 y1 z1 x2 y2 z2</code></i></dt>
+<dd><p>Задает границы параллелепипеда внутри которого точки не рисуются. Если границы одинаковы (переменные равны), то параллелепипеда считается пустым. См. раздел <a href="mathgl_ru_9.html#CutMinMax-sample">CutMinMax &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cut-3"></a><u>Команда MGL:</u> <b>cut</b><i> 'cond'</i></dt>
+<dd><p>Задает условие обрезания по формуле <var>cond</var>. Это условие исключает точки из рисования если результат вычисления формулы не равен нулю. Установите аргумент <code>''</code> для выключения условия обрезания. См. раздел <a href="mathgl_ru_9.html#CutOff-sample">CutOff &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Other-settings-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cutting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043e_0447_0438e-_043d_0430_0441_0442_0440_043e_0439_043a_0438-_0028MGL_0029"></a>
+<h3 class="subsection">8.1.7 Прочие настройки (MGL)</h3>
+
+<a name="index-font"></a>
+<p><a name="font"></a>
+</p><dl>
+<dt><a name="index-font-1"></a><u>Команда MGL:</u> <b>font</b><i> 'fnt' [<code>val=6</code>]</i></dt>
+<dd><p>Задает стиль и размер шрифта (see section <a href="mathgl_ru_3.html#Text-printing">Вывод текста</a>). Вначале используется &lsquo;<samp>rC</samp>&rsquo; &ndash; прямой шрифт с выравниванием по центру. По умолчанию размер подписей оси координат в 1.4 раза больше.
+</p></dd></dl>
+
+<a name="index-rotatetext"></a>
+<p><a name="rotatetext"></a>
+</p><dl>
+<dt><a name="index-rotatetext-1"></a><u>Команда MGL:</u> <b>rotatetext</b><i> <code>val</code></i></dt>
+<dd><p>Включает/выключает вращение меток и подписей осей координат вдоль оси. Начальное значение <code>on</code>.
+</p></dd></dl>
+
+<a name="index-palette"></a>
+<p><a name="palette"></a>
+</p><dl>
+<dt><a name="index-palette-1"></a><u>Команда MGL:</u> <b>palette</b><i> 'colors'</i></dt>
+<dd><p>Задает палитру как последовательность цветов. Значение по умолчанию <code>&quot;Hbgrcmyhlnqeup&quot;</code>, что соответствует цветам: темно серый &lsquo;<samp>H</samp>&rsquo;, синий &lsquo;<samp>b</samp>&rsquo;, зеленый &lsquo;<samp>g</samp>&rsquo;, красный &lsquo;<samp>r</samp>&rsquo;, голубой &lsquo;<samp>c</samp>&rsquo;, малиновый &lsquo;<samp>m</samp>&rsquo;, желтый &lsquo;<samp>y</samp>&rsquo;, серый &lsquo;<samp>h</samp>&rsquo;, сине-зеленый  &lsquo;<samp>l</samp>&rsquo;, небесно-голубой &lsquo;<samp>n</samp>&rsquo;, оранжевый &lsquo;<samp>q</samp>&rsquo;, желто-зеленый &lsquo;<samp>e</samp>&rsquo;, сине-фиолетовый &lsquo;<samp>u</samp>&rsquo;, фиолетовый &lsquo;<samp>p</samp>&rsquo;. Палитра в основном используется в 1D графиках (see section <a href="mathgl_ru_3.html#g_t1D-plotting">1D графики</a>) для кривых с неопределенным стилем линии.
+</p></dd></dl>
+
+<a name="index-meshnum"></a>
+<p><a name="meshnum"></a>
+</p><dl>
+<dt><a name="index-meshnum-1"></a><u>Команда MGL:</u> <b>meshnum</b><i> <code>num</code></i></dt>
+<dd><p>Задает ориентировочное число линий в <a href="#mesh">mesh</a>, <a href="#fall">fall</a>, <a href="#grid">grid</a>, число стрелок (штрихов) в <a href="#vect">vect</a>, <a href="#dew">dew</a> и число ячеек в <a href="#cloud">cloud</a>. По умолчанию (=0) рисуются все линии, стрелки, ячейки.
+</p></dd></dl>
+
+<a name="index-axialdir"></a>
+<p><a name="axialdir"></a>
+</p><dl>
+<dt><a name="index-axialdir-1"></a><u>Команда MGL:</u> <b>axialdir</b><i> 'dir'</i></dt>
+<dd><p>Задает ось вращения для <a href="#axial">axial</a>, <a href="#torus">torus</a>. По умолчанию это &rsquo;z&rsquo;.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axis-settings-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-settings-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transformation-matrix-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0430_0440_0430_043ce_0442_0440_044b-_043e_0441e_0439-_043a_043e_043e_0440_0434_0438_043d_0430_0442-_0028MGL_0029"></a>
+<h2 class="section">8.2 Параметры осей координат (MGL)</h2>
+
+<p>Этот большой набор команд определяет вид осей и меток координат. Перед построением для каждой точки выполняются 3 преобразования: сначала определяется возможность рисования точки (see section <a href="#Cutting-_0028MGL_0029">Обрезание (MGL)</a>), далее применяются формулы перехода к криволинейным координатам и наконец точка отображается.
+</p>
+<a name="index-axis"></a>
+<p><a name="axis"></a>
+</p><dl>
+<dt><a name="index-axis-1"></a><u>Команда MGL:</u> <b>axis</b><i> <code>x1 y1 x2 y2</code></i></dt>
+<dt><a name="index-axis-2"></a><u>Команда MGL:</u> <b>axis</b><i> <code>x1 y1 z1 x2 y2 z2</code></i></dt>
+<dd><a name="index-ranges"></a>
+<p><a name="ranges"></a>
+</p></dd><dt><a name="index-ranges-1"></a><u>Команда MGL:</u> <b>ranges</b><i> <code>x1 x2 y1 y2 [z1=0 z2=0]</code></i></dt>
+<dd><p>Задает диапазон изменения координат. Если минимальное и максимальное значение координаты равны, то они игнорируются по данному направлению. Также устанавливает размер цветовой шкалы, аналогично команде  <code>caxis z1 z2</code>. Начальные диапазоны равны [-1, 1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axis-3"></a><u>Команда MGL:</u> <b>axis</b><i> 'fx' 'fy' ['fz'='' 'fa'='']</i></dt>
+<dd><p>Задает формулы перехода к криволинейным координатам. Каждая строка является математическим выражением, зависящим от старых координат &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; и &lsquo;<samp>a</samp>&rsquo; или &lsquo;<samp>c</samp>&rsquo; для цветовой шкалы. Например, для цилиндрических координат будет <code>axis 'x*cos(y)' 'x*sin(y)' 'z'</code>. Для удаления формул соответствующий параметр должен быть пустым <code>''</code>. Использование формул преобразования слегка замедляет программу, т.е.. <code>axis '' '' ''</code> быстрее чем <code>axis '1*x' '1*y' '1*z'</code>. Параметр <var>fa</var> задает аналогичную формулу для цветовой шкалы. See section <a href="mathgl_ru_1.html#Textual-formulas">Текстовые формулы</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axis-4"></a><u>Команда MGL:</u> <b>axis</b><i> <code>how</code></i></dt>
+<dd><p>Устанавливает одну из предопределенных систем криволинейных координат в зависимости от параметра <var>how</var>: &lsquo;<samp>0</samp>&rsquo; &ndash; декартова система (нет преобразования координат, наиболее быстрая); &lsquo;<samp>1</samp>&rsquo; &ndash; полярные координаты <em>x_n=x*cos(y),y_n=x*sin(y), z_n=z</em>; &lsquo;<samp>2</samp>&rsquo; &ndash; сферические координаты <em>x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y)</em>; &lsquo;<samp>3</samp>&rsquo; &ndash; параболические координаты <em>x_n=x*y, y_n=(x*x-y*y)/2, z_n=z</em>; &lsquo;<samp>4</samp>&rsquo; &ndash; Paraboloidal coordinates <em>x_n=(x*x-y*y)*cos(z)/2, y_n=(x*x-y*y)*sin(z)/2, z_n=x*y</em>; &lsquo;<samp>5</samp>&rsquo; &ndash; Oblate coordinates <em>x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z), z_n=sinh(x)*sin(y)</em>; &lsquo;<samp>6</samp>&rsquo; &ndash; Prolate coordinates <em>x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z), z_n=cosh(x)*cos(y)</em>; &lsquo;<samp>7</samp>&rsquo; &ndash; эллиптические координаты <em>x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z</em>; &lsquo;<samp>8</samp>&rsquo; &ndash; тороидальные координаты <em>x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)), y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y))</em>; &lsquo;<samp>9</samp>&rsquo; &ndash; бисферические координаты <em>x_n=sin(y)*cos(z)/(cosh(x)-cos(y)), y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y))</em>; &lsquo;<samp>10</samp>&rsquo; &ndash; биполярные координаты <em>x_n=sinh(x)/(cosh(x)-cos(y)), y_n=sin(y)/(cosh(x)-cos(y)), z_n=z</em>.
+</p></dd></dl>
+
+<a name="index-caxis"></a>
+<p><a name="caxis"></a>
+</p><dl>
+<dt><a name="index-caxis-1"></a><u>Команда MGL:</u> <b>caxis</b><i> <code>z1 z2</code></i></dt>
+<dd><p>Задает масштаб цветовой шкалы (c-координаты). Эти значения используются для определения цвета поверхностей и прочих 2D и 3D графиков. Начальный диапазон равен [-1, 1].
+</p></dd></dl>
+
+<a name="index-origin"></a>
+<p><a name="origin"></a>
+</p><dl>
+<dt><a name="index-origin-1"></a><u>Команда MGL:</u> <b>origin</b><i> <code>x0 y0 [z0=nan]</code></i></dt>
+<dd><p>Задает центр пересечения осей координат. Если одно из значений равно <code>nan</code>, то выбрается оптимальное положение осей координат по этому направлению.
+</p></dd></dl>
+
+<a name="index-ternary"></a>
+<p><a name="ternary"></a>
+</p><dl>
+<dt><a name="index-ternary-1"></a><u>Команда MGL:</u> <b>ternary</b><i> <code>val</code></i></dt>
+<dd><p>Задает рисование треугольных (Ternary) осей координат. Это специальный тип графика для 3 зависимых координат (компонент) <var>a</var>, <var>b</var>, <var>c</var> таких, что <var>a</var>+<var>b</var>+<var>c</var>=1. MathGL использует только 2 независимые координаты <var>a</var>=x и <var>b</var>=y поскольку их достаточно для построения всех графиков. При этом третья координата z является независимым параметром для построения линий уровня, поверхностей и т.д. См. раздел <a href="mathgl_ru_9.html#Ternary-plot-sample">Ternary plot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-xrange"></a>
+<p><a name="xrange"></a>
+</p><dl>
+<dt><a name="index-xrange-1"></a><u>Команда MGL:</u> <b>xrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-yrange"></a>
+<p><a name="yrange"></a>
+</p></dd><dt><a name="index-yrange-1"></a><u>Команда MGL:</u> <b>yrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-zrange"></a>
+<p><a name="zrange"></a>
+</p></dd><dt><a name="index-zrange-1"></a><u>Команда MGL:</u> <b>zrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-crange"></a>
+<p><a name="crange"></a>
+</p></dd><dt><a name="index-crange-1"></a><u>Команда MGL:</u> <b>crange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><p>Задает диапазон изменения x-,y-,z-,c- координат как минимальное и максимальное значение массива <var>dat</var>. Параметр <var>add</var> указывает добавлять новый диапазон к существующему или заменять его. Параметр <var>fact</var> дополнительно расширяет диапазон на величину (<var>Max</var>-<var>Min</var>)*<var>fact</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xrange-2"></a><u>Команда MGL:</u> <b>xrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-yrange-2"></a><u>Команда MGL:</u> <b>yrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-zrange-2"></a><u>Команда MGL:</u> <b>zrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-crange-2"></a><u>Команда MGL:</u> <b>crange</b><i> <code>x1 x2</code></i></dt>
+<dd><p>Задает диапазон изменения x-,y-,z-,c- координат. См. также <a href="#axis">axis</a>.
+</p></dd></dl>
+
+<a name="index-xtick"></a>
+<p><a name="xtick"></a>
+</p><dl>
+<dt><a name="index-xtick-1"></a><u>Команда MGL:</u> <b>xtick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ytick"></a>
+<p><a name="ytick"></a>
+</p></dd><dt><a name="index-ytick-1"></a><u>Команда MGL:</u> <b>ytick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ztick"></a>
+<p><a name="ztick"></a>
+</p></dd><dt><a name="index-ztick-1"></a><u>Команда MGL:</u> <b>ztick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ctick"></a>
+<p><a name="ctick"></a>
+</p></dd><dt><a name="index-ctick-1"></a><u>Команда MGL:</u> <b>ctick</b><i> <code>val</code></i></dt>
+<dd><p>Задает шаг меток осей <var>val</var>, число подметок <var>ns</var> и начальное положение меток <var>org</var>. Переменная <var>val</var> задает шаг меток (если положительна) или их число на оси (если отрицательна). Нулевое значение задает логарифмические метки. Если <var>org</var>=<code>NAN</code>, то используется значение из <a href="#origin">origin</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xtick-2"></a><u>Команда MGL:</u> <b>xtick</b><i> 'templ'</i></dt>
+<dt><a name="index-ytick-2"></a><u>Команда MGL:</u> <b>ytick</b><i> 'templ'</i></dt>
+<dt><a name="index-ztick-2"></a><u>Команда MGL:</u> <b>ztick</b><i> 'templ'</i></dt>
+<dt><a name="index-ctick-2"></a><u>Команда MGL:</u> <b>ctick</b><i> 'templ'</i></dt>
+<dd><p>Задает шаблоны для меток вдоль x-,y-,z-оси или colorbar. Шаблон может содержать и символы TeX. Если <var>xtt</var>, <var>ytt</var>, <var>ztt</var>, <var>ctt</var>=<code>''</code>, то используется шаблон по умолчанию (в простейшем случае &lsquo;<samp>%.2g</samp>&rsquo;). Установка шаблона выключает автоматическое улучшение вида меток.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xtick-3"></a><u>Команда MGL:</u> <b>xtick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dt><a name="index-ytick-3"></a><u>Команда MGL:</u> <b>ytick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dt><a name="index-ztick-3"></a><u>Команда MGL:</u> <b>ztick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dd><p>Задает явное положение <var>val</var> и подписи <var>lbl</var> для меток вдоль оси. Метки могут содержать и символы TeX.
+</p></dd></dl>
+
+<a name="index-adjust"></a>
+<p><a name="adjust"></a>
+</p><dl>
+<dt><a name="index-adjust-1"></a><u>Команда MGL:</u> <b>adjust</b><i> ['dir'='xyzc']</i></dt>
+<dd><p>Автоматически задает шаг меток осей, число подметок и начальное положение меток для осей координат <var>dir</var> в виде наиболее удобном для человека.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Transformation-matrix-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-settings-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Export-to-file-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041c_0430_0442_0440_0438c_0430-_043f_0440e_043e_0431_0440_0430_0437_043e_0432_0430_043d_0438ya-_0028MGL_0029"></a>
+<h2 class="section">8.3 Матрица преобразования (MGL)</h2>
+
+<p>Эти команды контролируют где и как график будет расположен. Существует определенный порядок вызова этих функций для лучшего вида графика. Вначале должны вызываться команды <a href="#subplot">subplot</a> или <a href="#inplot">inplot</a> для указания местоположения вывода. После них &ndash; команды вращения <a href="#rotate">rotate</a> и сжатия <a href="#aspect">aspect</a>. И наконец любые другие функции для рисования графика. Вместо вращения графика можно вызвать команды <a href="#columnplot">columnplot</a> для расположения графиков в столбец одного над другим или <a href="#stickplot">stickplot</a> для расположения в линейку.
+</p>
+<a name="index-subplot"></a>
+<p><a name="subplot"></a>
+</p><dl>
+<dt><a name="index-subplot-1"></a><u>Команда MGL:</u> <b>subplot</b><i> <code>nx ny m [dx=0 dy=0]</code></i></dt>
+<dd><p>Помещает последующий вывод в <var>m</var>-ую ячейку сетки размером <var>nx</var>*<var>ny</var> от всего рисунка. Функция сбрасывает матрицу трансформации (повороты и сжатие графика) и должна вызываться первой для создания &quot;подграфика&quot;. С эстетической точки зрения не рекомендуется вызывать эту функцию с различными (или не кратными) размерами сетки. Ячейка может быть дополнительно сдвинута относительно своего обычного положения на относительный размер <var>dx</var>, <var>dy</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-subplot-2"></a><u>Команда MGL:</u> <b>subplot</b><i> <code>nx ny m</code> 'style'</i></dt>
+<dd><p>Аналогично предыдущему, но место для осей/colorbar резервируется только если строка <var>style</var> содержит: &lsquo;<samp>L</samp>&rsquo; или &lsquo;<samp>&lt;</samp>&rsquo; &ndash; с левого края, &lsquo;<samp>R</samp>&rsquo; или &lsquo;<samp>&gt;</samp>&rsquo; &ndash; с правого края, &lsquo;<samp>A</samp>&rsquo; или &lsquo;<samp>^</samp>&rsquo; &ndash; с верхнего края, &lsquo;<samp>U</samp>&rsquo; или &lsquo;<samp>_</samp>&rsquo; &ndash; с нижнего края.
+</p></dd></dl>
+
+<a name="index-inplot"></a>
+<p><a name="inplot"></a>
+</p><dl>
+<dt><a name="index-inplot-1"></a><u>Команда MGL:</u> <b>inplot</b><i> <code>x1 x2 y1 y2 [rel=off]</code></i></dt>
+<dd><p>Помещает последующий вывод в прямоугольную область [<var>x1</var>, <var>x2</var>]*[<var>y1</var>, <var>y2</var>] (исходный размер [0,1]*[0,1]). Эта функция позволяет поместить график в произвольную область рисунка. Если параметр <var>rel</var>=<code>on</code>, то используется позиция относительно текщего <a href="#subplot">subplot</a> (или <a href="#inplot">inplot</a> с <var>rel</var>=<code>off</code>). Функция сбрасывает матрицу трансформации (повороты и сжатие графика) и должна вызываться первой для создания &quot;подграфика&quot;.
+</p></dd></dl>
+
+<a name="index-columnplot"></a>
+<p><a name="columnplot"></a>
+</p><dl>
+<dt><a name="index-columnplot-1"></a><u>Команда MGL:</u> <b>columnplot</b><i> <code>num ind [d=0]</code></i></dt>
+<dd><p>Помещает последующий вывод в <var>ind</var>-ую строку столбца из <var>num</var> строк. Положение столбца выбирается относительно последнего вызова <a href="#subplot">subplot</a> (или <a href="#inplot">inplot</a> с <var>rel</var>=<code>off</code>). Параметр <var>d</var> задает дополнительный зазор между строк. См. раздел <a href="mathgl_ru_9.html#ColumnPlot-sample">ColumnPlot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-stickplot"></a>
+<p><a name="stickplot"></a>
+</p><dl>
+<dt><a name="index-stickplot-1"></a><u>Команда MGL:</u> <b>stickplot</b><i> <code>num ind tet phi</code></i></dt>
+<dd><p>Помещает последующий вывод в <var>ind</var>-ую ячейку &quot;бруска&quot; из <var>num</var> ячеек. При этом сам брусок повернут на углы <var>tet</var>, <var>phi</var>. Положение выбирается относительно последнего вызова <a href="#subplot">subplot</a> (или <a href="#inplot">inplot</a> с <var>rel</var>=<code>off</code>). См. раздел <a href="mathgl_ru_9.html#StickPlot-sample">StickPlot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-rotate"></a>
+<p><a name="rotate"></a>
+</p><dl>
+<dt><a name="index-rotate-1"></a><u>Команда MGL:</u> <b>rotate</b><i> <code>tetz tetx [tety=0]</code></i></dt>
+<dd><p>Вращает систему координат относительно осей {x, z, y} последовательно на углы <var>tetx</var>, <var>tetz</var>, <var>tety</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-rotate-2"></a><u>Команда MGL:</u> <b>rotate</b><i> <code>tet x y z</code></i></dt>
+<dd><p>Вращает систему координат относительно вектора {<var>x</var>, <var>y</var>, <var>z</var>} на угол <var>tet</var>.
+</p></dd></dl>
+
+<a name="index-aspect"></a>
+<p><a name="aspect"></a>
+</p><dl>
+<dt><a name="index-aspect-1"></a><u>Команда MGL:</u> <b>aspect</b><i> <code>ax ay [az=1]</code></i></dt>
+<dd><p>Устанавливает соотношение размеров осей в отношении <var>ax:ay:az</var>. Для лучшего вида следует вызывать после функции <a href="#rotate">rotate</a>.
+</p></dd></dl>
+
+<a name="index-perspective"></a>
+<p><a name="perspective"></a>
+</p><dl>
+<dt><a name="index-perspective-1"></a><u>Команда MGL:</u> <b>perspective</b><i> <code>val</code></i></dt>
+<dd><p>Добавляет (включает) перспективу для графика. Параметр <em>val ~ 1/z_eff \in [0,1)</em>. По умолчанию (<code>val=0</code>) перспектива отключена.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Export-to-file-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transformation-matrix-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Primitives-drawing-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_042d_043a_0441_043f_043e_0440_0442-_0432-_0444_0430_0439_043b-_0028MGL_0029"></a>
+<h2 class="section">8.4 Экспорт в файл (MGL)</h2>
+
+<a name="index-write"></a>
+<p><a name="write"></a>
+</p><dl>
+<dt><a name="index-write-1"></a><u>Команда MGL:</u> <b>write</b><i> 'fname' [<code>solid=off</code>]</i></dt>
+<dd><p>Экспортирует текущий кадр в файл &rsquo;fname&rsquo; (тип определяется по расширению). Параметр <var>solid</var> задает вывод картинки на текущем фоне (обычно белом) или полупрозрачной. Если &rsquo;fname&rsquo;=&rdquo;, то используется имя &lsquo;<samp>frame####.jpg</samp>&rsquo;, где &lsquo;<samp>####</samp>&rsquo; &ndash; текущий номер кадра.
+</p></dd></dl>
+
+<a name="index-setsize"></a>
+<p><a name="setsize"></a>
+</p><dl>
+<dt><a name="index-setsize-1"></a><u>Команда MGL:</u> <b>setsize</b><i> <code>w h</code></i></dt>
+<dd><p>Изменяет размер картинки в пикселях. Функция должна вызываться <strong>перед</strong> любыми функциями построения потому что полностью очищает содержимое рисунка. В некоторых программах исполнение этой команды может запрещено.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Primitives-drawing-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Export-to-file-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0420_0438_0441_043e_0432_0430_043d_0438e-_043f_0440_0438_043c_0438_0442_0438_0432_043e_0432"></a>
+<h2 class="section">8.5 Рисование примитивов</h2>
+
+<p>Эти команды рисуют рисуют простые объекты типа линий, точек, сфер, капель, конусов, и т.д.
+</p>
+<a name="index-clf"></a>
+<p><a name="clf"></a>
+</p><dl>
+<dt><a name="index-clf-1"></a><u>Команда MGL:</u> <b>clf</b></dt>
+<dd><p>Очищает рисунок и заполняет его цветом по умолчанию (обычно белым). 
+</p></dd></dl>
+
+<a name="index-ball"></a>
+<p><a name="ball"></a>
+</p><dl>
+<dt><a name="index-ball-1"></a><u>Команда MGL:</u> <b>ball</b><i> <code>x y</code> ['col'='r']</i></dt>
+<dt><a name="index-ball-2"></a><u>Команда MGL:</u> <b>ball</b><i> <code>x y z</code> ['col'='r']</i></dt>
+<dd><p>Рисует точку (шарик) с координатами {<var>x</var>, <var>y</var>, <var>z</var>} и цветом <var>col</var>.
+</p></dd></dl>
+
+<a name="index-line"></a>
+<p><a name="line"></a>
+</p><dl>
+<dt><a name="index-line-1"></a><u>Команда MGL:</u> <b>line</b><i> <code>x1 y1 x2 y2</code> ['stl'='']</i></dt>
+<dt><a name="index-line-2"></a><u>Команда MGL:</u> <b>line</b><i> <code>x1 y1 z1 x2 y2 z2</code> ['stl'='']</i></dt>
+<dd><p>Рисует геодезическую линию (декартовых координатах &ndash; прямую) из точки {<var>x1</var>,<var>y1</var>,<var>z1</var>} в {<var>x2</var>,<var>y2</var>,<var>z2</var>} использую стиль линии <var>stl</var>. Кривая рисуется даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<a name="index-curve"></a>
+<p><a name="curve"></a>
+</p><dl>
+<dt><a name="index-curve-1"></a><u>Команда MGL:</u> <b>curve</b><i> <code>x1 y1 dx1 dy1 x2 y2 dx2 dy2</code> ['stl'='']</i></dt>
+<dt><a name="index-curve-2"></a><u>Команда MGL:</u> <b>curve</b><i> <code>x1 y1 z1 dx1 dy1 dz1 x2 y2 z2 dx2 dy2 dz2</code> ['stl'='']</i></dt>
+<dd><p>Рисует кривую Безье из точки {<var>x1</var>,<var>y1</var>,<var>z1</var>} в {<var>x2</var>,<var>y2</var>,<var>z2</var>} использую стиль линии <var>stl</var>. Касательные в точках пропорциональны {<var>dx1</var>,<var>dy1</var>,<var>dz1</var>}, {<var>dx2</var>,<var>dy2</var>,<var>dz2</var>}. Кривая рисуется даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<a name="index-facex"></a>
+<p><a name="facex"></a>
+</p><dl>
+<dt><a name="index-facex-1"></a><u>Команда MGL:</u> <b>facex</b><i> <code>x0 y0 z0 wy wz</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><a name="index-facey"></a>
+<p><a name="facey"></a>
+</p></dd><dt><a name="index-facey-1"></a><u>Команда MGL:</u> <b>facey</b><i> <code>x0 y0 z0 wx wz</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><a name="index-facez"></a>
+<p><a name="facez"></a>
+</p></dd><dt><a name="index-facez-1"></a><u>Команда MGL:</u> <b>facez</b><i> <code>x0 y0 z0 wx wy</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><p>Рисует закрашенный прямоугольник (грань) перпендикулярно оси [x,y,z] в точке {<var>x0</var>, <var>y0</var>, <var>z0</var>} цветом <var>stl</var> и шириной <var>wx</var>, <var>wy</var>, <var>wz</var> вдоль соответствующего направления. При этом цвет может быть один для всей грани, или различным для разных вершин если указаны все 4 цвета (полезно для градиента цвета, например &lsquo;<samp>wwrr</samp>&rsquo;). Параметры <var>d1</var>!=0, <var>d2</var>!=0 задают дополнительный сдвиг последней точки (т.е. рисуют четырехугольник). Грань будет нарисована даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<a name="index-sphere"></a>
+<p><a name="sphere"></a>
+</p><dl>
+<dt><a name="index-sphere-1"></a><u>Команда MGL:</u> <b>sphere</b><i> <code>x0 y0 r</code> ['col'='r']</i></dt>
+<dt><a name="index-sphere-2"></a><u>Команда MGL:</u> <b>sphere</b><i> <code>x0 y0 z0 r</code> ['col'='r']</i></dt>
+<dd><p>Рисует сферу радиуса <var>r</var> с центром в точке {<var>x</var>, <var>y</var>, <var>z</var>} цветом <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-drop"></a>
+<p><a name="drop"></a>
+</p><dl>
+<dt><a name="index-drop-1"></a><u>Команда MGL:</u> <b>drop</b><i> <code>x0 y0 dx dy r</code> ['col'='b' <code>sh=1 asp=1</code>]</i></dt>
+<dt><a name="index-drop-2"></a><u>Команда MGL:</u> <b>drop</b><i> <code>x0 y0 z0 dx dy dz r</code> ['col'='b' <code>sh=1 asp=1</code>]</i></dt>
+<dd><p>Рисует каплю радиуса <var>r</var> в точке {<var>x0</var>,<var>y0</var>,<var>z0</var>} вытянутую вдоль направления {<var>dx</var>,<var>dy</var>,<var>dz</var>} цветом <var>col</var>. Параметр <var>sh</var> определяет степень вытянутости: &lsquo;<samp>0</samp>&rsquo; &ndash; сфера, &lsquo;<samp>1</samp>&rsquo; &ndash; классическая капля. Параметр <var>asp</var> определяет относительную ширину капли (аналог &quot;эллиптичности&quot; для сферы). См. раздел <a href="mathgl_ru_9.html#Drops-sample">Drops &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-cone"></a>
+<p><a name="cone"></a>
+</p><dl>
+<dt><a name="index-cone-1"></a><u>Команда MGL:</u> <b>cone</b><i> <code>x1 y1 z1 x2 y2 z2 r1</code> [<code>r2=-1</code> 'stl'='' <code>edge=off</code>]</i></dt>
+<dd><p>Рисует трубу (или усеченный конус если <var>edge</var>=<code>off</code>) между точками {<var>x1</var>,<var>y1</var>,<var>z1</var>}, {<var>x2</var>,<var>y2</var>,<var>z2</var>} с радиусами на концах <var>r1</var>, <var>r2</var>. Если <var>r2</var>&lt;0, то полагается <var>r2</var>=<var>r1</var>. Цвет конуса задается строкой <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-rect"></a>
+<p><a name="rect"></a>
+</p><dl>
+<dt><a name="index-rect-1"></a><u>Команда MGL:</u> <b>rect</b><i> <code>x1 y1 x2 y2</code> ['st'='']</i></dt>
+<dt><a name="index-rect-2"></a><u>Команда MGL:</u> <b>rect</b><i> <code>x1 y1 z1 x2 y2 z2</code> ['st'='']</i></dt>
+<dd><p>Рисует закрашенный прямоугольник (грань) с противоположными вершинами в точках {<var>x1</var>,<var>y1</var>,<var>z1</var>}, {<var>x2</var>,<var>y2</var>,<var>z2</var>} цветом <var>stl</var>. При этом цвет может быть один для всей грани, или различным для разных вершин если указаны все 4 цвета (полезно для градиента цвета, например &lsquo;<samp>wwrr</samp>&rsquo;). Грань будет нарисована даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Text-printing-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Primitives-drawing-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-Colorbar-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0412_044b_0432_043e_0434-_0442e_043a_0441_0442_0430-_0028MGL_0029"></a>
+<h2 class="section">8.6 Вывод текста (MGL)</h2>
+
+<p>Команды для вывода текста позволяют вывести строку текста в произвольном месте рисунка, в произвольном направлении и вдоль произвольной кривой. Можно использовать произвольное начертание шрифта и многие ТеХ-ие команды (детальнее see section <a href="mathgl_ru_1.html#Font-styles">Стиль текста</a>). Аргумент <var>size</var> определяет размер текста: размер шрифта если положителен или относительный размер (=-<var>size</var>*<var>fontsize</var>) если отрицателен.
+</p>
+<p>Параметры шрифта задаются строкой, которая может содержать символы стиля (&lsquo;<samp>rbiwou</samp>&rsquo;) и/или выравнивания (&lsquo;<samp>LRC</samp>&rsquo;). Также строка может содержать символы цвета &lsquo;<samp>wkrgbcymhRGBCYMHW</samp>&rsquo; (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>) после символа &lsquo;<samp>:</samp>&rsquo;. Стили шрифта: &lsquo;<samp>r</samp>&rsquo; &ndash; прямой, &lsquo;<samp>i</samp>&rsquo; &ndash; курсив, &lsquo;<samp>b</samp>&rsquo; &ndash; жирный, &lsquo;<samp>w</samp>&rsquo; &ndash; контурный, &lsquo;<samp>o</samp>&rsquo; &ndash; надчеркнутый, &lsquo;<samp>u</samp>&rsquo; &ndash; подчеркнутый. По умолчанию используется прямой шрифт. Типы выравнивания: &lsquo;<samp>L</samp>&rsquo; &ndash; по левому краю (по умолчанию), &lsquo;<samp>C</samp>&rsquo; &ndash; по центру, &lsquo;<samp>R</samp>&rsquo; &ndash; по правому краю. Например, строка &lsquo;<samp>iC:b</samp>&rsquo; соответствует курсиву синего цвета с выравниванием по центру. По умолчанию используются параметры, определенные командой <a href="#font">font</a>.
+</p>
+<p>Если строка содержит символы &lsquo;<samp>aA</samp>&rsquo;, то текст выводится в абсолютных координатах (полагаются в диапазоне [0,1]). При этом используются координаты относительно рисунка (если указано &lsquo;<samp>A</samp>&rsquo;) или относительно последнего <a href="#subplot">subplot</a>/<a href="#inplot">inplot</a> (если указано &lsquo;<samp>a</samp>&rsquo;).
+</p>
+<a name="index-text"></a>
+<p><a name="text"></a>
+</p><dl>
+<dt><a name="index-text-1"></a><u>Команда MGL:</u> <b>text</b><i> <code>x y</code> 'text' ['fnt'='' <code>size=-1.4</code>]</i></dt>
+<dt><a name="index-text-2"></a><u>Команда MGL:</u> <b>text</b><i> <code>x y z</code> 'text' ['fnt'='' <code>size=-1.4</code>]</i></dt>
+<dd><p>Выводит строку <var>text</var> от точки {<var>x</var>,<var>y</var>,<var>z</var>} шрифтом <var>fnt</var> и размером <var>size</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-text-3"></a><u>Команда MGL:</u> <b>text</b><i> <code>x y dx dy</code> 'text' [<code>size=-1.4</code>]</i></dt>
+<dt><a name="index-text-4"></a><u>Команда MGL:</u> <b>text</b><i> <code>x y z dx dy dz</code> 'text' [<code>size=-1.4</code>]</i></dt>
+<dd><p>Выводит строку <var>text</var> от точки {<var>x</var>,<var>y</var>,<var>z</var>} вдоль направления {<var>dx</var>,<var>dy</var>,<var>dz</var>} шрифтом <var>fnt</var> и размером <var>size</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-text-5"></a><u>Команда MGL:</u> <b>text</b><i> ydat 'text' ['fnt'='' <code>size=-1 zval=nan</code>]</i></dt>
+<dt><a name="index-text-6"></a><u>Команда MGL:</u> <b>text</b><i> xdat ydat 'text' ['fnt'='' <code>size=-1 zval=nan</code>]</i></dt>
+<dt><a name="index-text-7"></a><u>Команда MGL:</u> <b>text</b><i> xdat ydat zdat 'text' ['fnt'='' <code>size=-1</code>]</i></dt>
+<dd><p>Выводит строку <var>text</var> вдоль кривой {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} шрифтом <var>font</var>. Строка <var>font</var> может содержать символы: &lsquo;<samp>t</samp>&rsquo; для вывода текста под кривой (по умолчанию), или &lsquo;<samp>T</samp>&rsquo; для вывода текста над кривой. Если массив <var>xdat</var> не указан, то используется массив со значениями равно распределенными вдоль оси x. Если массив <var>zdat</var> не указан, то используется <var>zdat</var>[i] = <var>zval</var>. См. раздел <a href="mathgl_ru_9.html#Text-sample">Text &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-title"></a>
+<p><a name="title"></a>
+</p><dl>
+<dt><a name="index-title-1"></a><u>Команда MGL:</u> <b>title</b><i> 'text' ['fnt'='' <code>size=-2</code>]</i></dt>
+<dd><p>Выводит строку <var>text</var> как заголовок (сверху рисунка). Может использоваться в любом месте (даже внутри <a href="#subplot">subplot</a>).
+</p></dd></dl>
+
+<a name="index-fgets"></a>
+<p><a name="fgets"></a>
+</p><dl>
+<dt><a name="index-fgets-1"></a><u>Команда MGL:</u> <b>fgets</b><i> <code>x y</code> 'fname' [<code>n=0</code> 'fnt'='' <code>size=-1.4</code>]</i></dt>
+<dt><a name="index-fgets-2"></a><u>Команда MGL:</u> <b>fgets</b><i> <code>x y z</code> 'fname' [<code>n=0</code> 'fnt'='' <code>size=-1.4</code>]</i></dt>
+<dd><p>Выводит <var>n</var>-ую строку файла <var>fname</var> от точки {<var>x</var>,<var>y</var>,<var>z</var>} шрифтом <var>fnt</var> и размером <var>size</var>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Axis-and-Colorbar-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_0438-_0438-Colorbar-_0028MGL_0029"></a>
+<h2 class="section">8.7 Оси и Colorbar (MGL)</h2>
+
+<p>Эти команды рисуют объекты для &quot;измерения&quot; типа осей координат, цветовой таблицы (colorbar), сетку по осям, обрамляющий параллелепипед и подписи по осям координат. См. также <a href="#Axis-settings-_0028MGL_0029">Параметры осей координат (MGL)</a>.
+</p>
+<a name="index-axis-5"></a>
+<dl>
+<dt><a name="index-axis-6"></a><u>Команда MGL:</u> <b>axis</b><i> ['dir'='xyz' <code>adjust=off</code>]</i></dt>
+<dd><p>Рисует оси координат и метки на них (see section <a href="#Axis-settings-_0028MGL_0029">Параметры осей координат (MGL)</a>) в направлениях, указанных строкой <var>dir</var>. Если строка содержит символ &lsquo;<samp>_</samp>&rsquo;, то подписи меток отображаться не будут. Шрифт подписей определяется командой <a href="#font">font</a>. Метки будут &quot;подогнаны&quot; если <var>adjust</var>=<code>on</code> (с помощью вызова <code>adjust 'dir'</code>). 
+</p></dd></dl>
+
+<a name="index-colorbar"></a>
+<p><a name="colorbar"></a>
+</p><dl>
+<dt><a name="index-colorbar-1"></a><u>Команда MGL:</u> <b>colorbar</b><i> ['sch'='' <code>pos=0</code>]</i></dt>
+<dd><p>Рисует полосу соответствия цвета и числовых значений (colorbar) для цветовой схемы <var>sch</var> (используется текущая для <code>sch=''</code>) с краю от графика. Параметр <var>pos</var> задает местоположение: &lsquo;<samp>0</samp>&rsquo; - справа (по умолчанию), &lsquo;<samp>1</samp>&rsquo; - слева, &lsquo;<samp>2</samp>&rsquo; - сверху, &lsquo;<samp>3</samp>&rsquo; - снизу. Если строка <var>sch</var> содержит &lsquo;<samp>&lt;&gt;^_</samp>&rsquo;, то параметр <var>pos</var> определяется как: <code>pos=0</code> для &lsquo;<samp>&gt;</samp>&rsquo; (справа), <code>pos=1</code> для &lsquo;<samp>&lt;</samp>&rsquo; (слева), <code>pos=2</code> для &lsquo;<samp>^</samp>&rsquo; (сверху), <code>pos=3</code> для &lsquo;<samp>_</samp>&rsquo; (снизу). Если строка содержит &lsquo;<samp>A</samp>&rsquo;, то используются абсолютные координаты (относительно рисунка). См. раздел <a href="mathgl_ru_9.html#Dens-sample">Dens &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-colorbar-2"></a><u>Команда MGL:</u> <b>colorbar</b><i> vdat ['sch'='' <code>pos=0</code>]</i></dt>
+<dd><p>Аналогично предыдущему, но для цветовой схемы без сглаживания с заданными значениями <var>vdat</var>. См. раздел <a href="mathgl_ru_9.html#ContD-sample">ContD &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-colorbar-3"></a><u>Команда MGL:</u> <b>colorbar</b><i> 'sch' <code>pos x y w h</code></i></dt>
+<dd><p>Аналогично первому, но в произвольном месте графика {<var>x</var>, <var>y</var>} (полагаются в диапазоне [0,1]). Параметры <var>w</var>, <var>h</var> задают относительную ширину и высоту colorbar.
+</p></dd></dl>
+
+<a name="index-grid"></a>
+<p><a name="grid"></a>
+</p><dl>
+<dt><a name="index-grid-1"></a><u>Команда MGL:</u> <b>grid</b><i> ['dir'='xyz' 'pen'='B']</i></dt>
+<dd><p>Рисует линии сетки в направлениях перпендикулярным <var>dir</var>. Шаг сетки такой же как у меток осей координат. Стиль линий задается параметром <var>pen</var> (по умолчанию &ndash; сплошная темно синяя линия &lsquo;<samp>B-</samp>&rsquo;).
+</p></dd></dl>
+
+<a name="index-box"></a>
+<p><a name="box"></a>
+</p><dl>
+<dt><a name="index-box-1"></a><u>Команда MGL:</u> <b>box</b><i> ['stl'='k' <code>ticks=on</code>]</i></dt>
+<dd><p>Рисует ограничивающий параллелепипед цветом &rsquo;stl&rsquo;. При <code>ticks=on</code> рисуются метки в соответствии с текущими настройками осей координат <a href="#axis">axis</a>.
+</p></dd></dl>
+
+<a name="index-xlabel"></a>
+<p><a name="xlabel"></a>
+</p><dl>
+<dt><a name="index-xlabel-1"></a><u>Команда MGL:</u> <b>xlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-ylabel"></a>
+<p><a name="ylabel"></a>
+</p></dd><dt><a name="index-ylabel-1"></a><u>Команда MGL:</u> <b>ylabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-zlabel"></a>
+<p><a name="zlabel"></a>
+</p></dd><dt><a name="index-zlabel-1"></a><u>Команда MGL:</u> <b>zlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-tlabel"></a>
+<p><a name="tlabel"></a>
+</p></dd><dt><a name="index-tlabel-1"></a><u>Команда MGL:</u> <b>tlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><p>Выводит подпись <var>text</var> для x-,y-,z-,t-оси (где &lsquo;<samp>t</samp>&rsquo; &ndash; &ldquo;тернарная&rdquo; ось <em>t=1-x-y</em>). Параметр <var>pos</var> задает положение подписи: при <var>pos</var>=0 &ndash; по центру оси, при <var>pos</var>&gt;0 &ndash; около максимальных значений, при <var>pos</var>&lt;0 &ndash; около минимальных значений. Параметр <var>size</var> задает размер шрифта (по умолчанию в 1.4 раза больше чем у меток). See section <a href="#Text-printing-_0028MGL_0029">Вывод текста (MGL)</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Legend-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-Colorbar-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041bege_043d_0434_0430-_0028MGL_0029"></a>
+<h2 class="section">8.8 Легенда (MGL)</h2>
+
+<p>Эти команды обеспечивают рисование легенды графика (полезно для <a href="mathgl_ru_3.html#g_t1D-plotting">1D графики</a>). Запись в легенде состоит из двух строк: одна для стиля линии и маркеров, другая с текстом описания (с включенным разбором TeX-их команд), накапливаемые во внутренние массивы с помощью команды <a href="#addlegend">addlegend</a> или опции <a href="#legend">legend</a>. Положение легенды можно задать автоматически или вручную. Параметры <var>font</var> и <var>size</var> задают стиль и размер шрифта. Параметр <var>llen</var> задает относительную ширину примера линии. Ели стиль линии пустой, то соответствующий текст печатается без отступа. Если строка <var>font</var> содержит символ &lsquo;<samp>A</samp>&rsquo;, то координаты легенды считаются относительно картинки (а не текущего subplot). См. раздел <a href="mathgl_ru_9.html#Legend-sample">Legend &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<a name="index-legend"></a>
+<p><a name="legend"></a>
+</p><dl>
+<dt><a name="index-legend-1"></a><u>Команда MGL:</u> <b>legend</b><i> [<code>pos=3</code> 'fnt'='rL' <code>size=-1 llen=0.1</code>]</i></dt>
+<dd><p>Рисует легенду из накопленных записей шрифтом <var>fnt</var> размером <var>size</var>. Параметр <var>pos</var> задает положение легенды: &lsquo;<samp>0</samp>&rsquo; &ndash; в нижнем левом углу, &lsquo;<samp>1</samp>&rsquo; &ndash; нижнем правом углу, &lsquo;<samp>2</samp>&rsquo; &ndash; верхнем левом углу, &lsquo;<samp>3</samp>&rsquo; &ndash; верхнем правом углу (по умолчанию).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-legend-2"></a><u>Команда MGL:</u> <b>legend</b><i> <code>x y</code> ['fnt'='rL' <code>size=-1 llen=0.1</code>]</i></dt>
+<dd><p>Рисует легенду из накопленных записей шрифтом <var>font</var> размером <var>size</var>. Положение легенды задается параметрами <var>x</var>, <var>y</var>, которые полагаются нормированными в диапазоне [0,1].
+</p></dd></dl>
+
+<a name="index-addlegend"></a>
+<p><a name="addlegend"></a>
+</p><dl>
+<dt><a name="index-addlegend-1"></a><u>Команда MGL:</u> <b>addlegend</b><i> 'text' 'stl'</i></dt>
+<dd><p>Добавляет описание <var>text</var> кривой со стилем <var>stl</var> (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>) во внутренний массив записей легенды. Максимальное число записей 100.
+</p></dd></dl>
+
+<a name="index-clearlegend"></a>
+<p><a name="clearlegend"></a>
+</p><dl>
+<dt><a name="index-clearlegend-1"></a><u>Команда MGL:</u> <b>clearlegend</b></dt>
+<dd><p>Очищает внутренний массив записей легенды.
+</p></dd></dl>
+
+<a name="index-legendbox"></a>
+<p><a name="legendbox"></a>
+</p><dl>
+<dt><a name="index-legendbox-1"></a><u>Команда MGL:</u> <b>legendbox</b><i> <code>val</code></i></dt>
+<dd><p>Включает/выключает рисование прямоугольника вокруг легенды. По умолчанию (=<code>on</code>) прямоугольник рисуется.
+</p></dd></dl>
+
+<a name="index-legendmarks"></a>
+<p><a name="legendmarks"></a>
+</p><dl>
+<dt><a name="index-legendmarks-1"></a><u>Команда MGL:</u> <b>legendmarks</b><i> <code>val</code></i></dt>
+<dd><p>Задает число маркеров в легенде. По умолчанию используется 1 маркер.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t1D-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029"></a>
+<h2 class="section">8.9 1D графики (MGL)</h2>
+
+<p>Эти команды строят графики для одномерных (1D) массивов. Одномерными считаются массивы, зависящие только от одного параметра (индекса) подобно кривой в параметрической форме {x(i),y(i),z(i)}, i=1...n. Есть 5 основных типов 1D графиков: линия (<a href="#plot">plot</a>), линия с заполнением (<a href="#area">area</a>), ступеньки (<a href="#step">step</a>), прямоугольники (<a href="#bars">bars</a>, <a href="#barh">barh</a>) и вертикальные линии (<a href="#stem">stem</a>). Все эти типы графиков имеют похожий интерфейс. Есть версии для рисования в пространстве и на плоскости. В последнем случае имеется возможность использования только одного массива. Стиль линии и маркеров указывается строковой переменной. Если она равна <code>''</code>. Кроме того, есть еще несколько типов графиков для одномерных массивов, имеющих другой интерфейс и вид: поверхность вращения кривой (<a href="#torus">torus</a>), диаграмма (<a href="#chart">chart</a>), размер ошибки (<a href="#error">error</a>), маркеры переменного размера (<a href="#mark">mark</a>), трубками (<a href="#tube">tube</a>) и т.д. См. раздел <a href="mathgl_ru_9.html#g_t1D-plot-sample">Пример графиков 1D данных</a>, для примеров кода и графика.
+</p>
+<p>График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>xdat.nx=ydat.nx=zdat.nx</code>. Если массив <var>xdat</var> не указан, то используется массив со значениями равно распределенными вдоль оси x. Если массив <var>zdat</var> не указан, то используется <var>zdat</var>[i] = <var>zval</var>. Строка <var>stl</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>stl=''</code>) рисуется сплошная линия с текущим цветом из палитры.
+</p>
+<a name="index-plot"></a>
+<p><a name="plot"></a>
+</p><dl>
+<dt><a name="index-plot-1"></a><u>Команда MGL:</u> <b>plot</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-plot-2"></a><u>Команда MGL:</u> <b>plot</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-plot-3"></a><u>Команда MGL:</u> <b>plot</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует ломанную линию между точками {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. См. также <a href="#area">area</a>, <a href="#step">step</a>, <a href="#stem">stem</a>, <a href="#tube">tube</a>, <a href="#mark">mark</a>, <a href="#error">error</a>, <a href="#belt">belt</a>, <a href="#tens">tens</a>. См. раздел <a href="mathgl_ru_9.html#Plot-sample">Plot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+
+<a name="index-radar"></a>
+<p><a name="radar"></a>
+</p><dl>
+<dt><a name="index-radar-1"></a><u>Команда MGL:</u> <b>radar</b><i> adat ['stl'='' <code>r=-1</code>]</i></dt>
+<dd><p>Рисует radar chart, представляющий собой ломанную с вершинами на радиальных линиях (типа ломанной в полярных координатах). График рисуется для каждой строки если один из массивов матрица. Параметр <var>r</var> задает дополнительный сдвиг данных (т.е. используется <var>a</var>+<var>r</var> вместо <var>a</var>). Если <code>r&lt;0</code>, то <code>r=max(0, -min(a)</code>. Если <var>stl</var> содержит символ &lsquo;<samp>#</samp>&rsquo;, то также рисуется &quot;сетка&quot; (радиальные линии и круг для <var>r</var>). См. также <a href="#plot">plot</a>. См. раздел <a href="mathgl_ru_9.html#Radar-sample">Radar &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-tens"></a>
+<p><a name="tens"></a>
+</p><dl>
+<dt><a name="index-tens-1"></a><u>Команда MGL:</u> <b>tens</b><i> ydat cdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tens-2"></a><u>Команда MGL:</u> <b>tens</b><i> xdat ydat cdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tens-3"></a><u>Команда MGL:</u> <b>tens</b><i> xdat ydat zdat cdat ['stl'='']</i></dt>
+<dd><p>Рисует ломанную линию по точкам {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} с цветом, определяемым массивом <var>c</var>[i] (типа графика натяжений). См. также <a href="#plot">plot</a>, <a href="#mesh">mesh</a>, <a href="#fall">fall</a>. См. раздел <a href="mathgl_ru_9.html#Tens-sample">Tens &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-area"></a>
+<p><a name="area"></a>
+</p><dl>
+<dt><a name="index-area-1"></a><u>Команда MGL:</u> <b>area</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-area-2"></a><u>Команда MGL:</u> <b>area</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-area-3"></a><u>Команда MGL:</u> <b>area</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует ломанную линию по точками {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} и закрашивает ее вниз до плоскости осей координат. Можно использовать градиентное закрашивание если число указанных цветов в <var>stl</var> равно удвоенному числу кривых для построения. Если строка содержит символ &lsquo;<samp>a</samp>&rsquo;, то линии рисуются одна поверх другой (с суммированием) &ndash; того же эффекта можно достичь вызовом <code>cumsum ydat 'y'</code> перед построением графика. См. также <a href="#plot">plot</a>, <a href="#bars">bars</a>, <a href="#stem">stem</a>, <a href="#region">region</a>. См. раздел <a href="mathgl_ru_9.html#Area-sample">Area &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-region"></a>
+<p><a name="region"></a>
+</p><dl>
+<dt><a name="index-region-1"></a><u>Команда MGL:</u> <b>region</b><i> fdat gdat ['stl'='' <code>inside=off</code>]</i></dt>
+<dt><a name="index-region-2"></a><u>Команда MGL:</u> <b>region</b><i> xdat fdat gdat ['stl'='' <code>inside=off</code>]</i></dt>
+<dd><p>Закрашивает область между 2 кривыми {<var>xdat</var>[i], <var>fdat</var>[i]} и {<var>xdat</var>[i], <var>gdat</var>[i]}. При  <code>inside=off</code> закрашивается только область y1&lt;y&lt;y2, в противном случае также будет закращена область y2&lt;y&lt;y1. Можно использовать градиентное закрашивание если число указанных цветов <var>stl</var> равно удвоенному числу кривых для построения. См. также <a href="#area">area</a>, <a href="#bars">bars</a>, <a href="#stem">stem</a>. См. раздел <a href="mathgl_ru_9.html#Region-sample">Region &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-stem"></a>
+<p><a name="stem"></a>
+</p><dl>
+<dt><a name="index-stem-1"></a><u>Команда MGL:</u> <b>stem</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-stem-2"></a><u>Команда MGL:</u> <b>stem</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-stem-3"></a><u>Команда MGL:</u> <b>stem</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует вертикальные линии из точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} до плоскости осей координат. См. также <a href="#area">area</a>, <a href="#bars">bars</a>, <a href="#plot">plot</a>, <a href="#mark">mark</a>. См. раздел <a href="mathgl_ru_9.html#Stem-sample">Stem &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-bars"></a>
+<p><a name="bars"></a>
+</p><dl>
+<dt><a name="index-bars-1"></a><u>Команда MGL:</u> <b>bars</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-bars-2"></a><u>Команда MGL:</u> <b>bars</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-bars-3"></a><u>Команда MGL:</u> <b>bars</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует вертикальные полосы (прямоугольники) из точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} до плоскости осей координат. Если строка <var>stl</var> содержит символ &lsquo;<samp>a</samp>&rsquo;, то линии рисуются одна поверх другой. Если строка содержит символ &lsquo;<samp>f</samp>&rsquo;, то рисуется график типа waterfall для определения кумулятивного эффекта последовательности положительных и отрицательных значений. Можно использовать разные цвета для положительных и отрицательных значений если число указанных цветов равно удвоенному числу кривых для построения. См. также <a href="#barh">barh</a>, <a href="#area">area</a>, <a href="#stem">stem</a>, <a href="#chart">chart</a>. См. раздел <a href="mathgl_ru_9.html#Bars-sample">Bars &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-barh"></a>
+<p><a name="barh"></a>
+</p><dl>
+<dt><a name="index-barh-1"></a><u>Команда MGL:</u> <b>barh</b><i> xdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-barh-2"></a><u>Команда MGL:</u> <b>barh</b><i> ydat xdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует горизонтальные полосы (прямоугольники) из точек {<var>xdat</var>[i], <var>ydat</var>[i]} до плоскости оси y. Если массив <var>ydat</var> не указан, то используется массив со значениями равно распределенными вдоль оси y. Если строка <var>stl</var> содержит символ &lsquo;<samp>a</samp>&rsquo;, то линии рисуются одна поверх другой. Если строка содержит символ &lsquo;<samp>f</samp>&rsquo;, то рисуется график типа waterfall для определения кумулятивного эффекта последовательности положительных и отрицательных значений. Можно использовать разные цвета для положительных и отрицательных значений если число указанных цветов равно удвоенному числу кривых для построения. См. также <a href="#bars">bars</a>. См. раздел <a href="mathgl_ru_9.html#Barh-sample">Barh &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-chart"></a>
+<p><a name="chart"></a>
+</p><dl>
+<dt><a name="index-chart-1"></a><u>Команда MGL:</u> <b>chart</b><i> adat ['col'='']</i></dt>
+<dd><p>Рисует цветные полосы (пояса) для массива данных <var>adat</var>. Число полос равно числу строк <var>adat</var> (равно <var>a.ny</var>). Цвет полос поочередно меняется из цветов указанных в <var>col</var> или в палитре (если <code>col=''</code>). Пробел в цветах соответствует прозрачному &quot;цвету&quot;, т.е. соответствующая полоса не рисуется. Ширина полосы пропорциональна значению элемента в <var>adat</var>. График строится только для массивов не содержащих отрицательных значений. Если строка <var>col</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется также черная граница полос. График выглядит лучше в 3d (после вращения системы координат) и/или в полярной системе координат (становится Pie chart). См. раздел <a href="mathgl_ru_9.html#Chart-sample">Chart &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-step"></a>
+<p><a name="step"></a>
+</p><dl>
+<dt><a name="index-step-1"></a><u>Команда MGL:</u> <b>step</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-step-2"></a><u>Команда MGL:</u> <b>step</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-step-3"></a><u>Команда MGL:</u> <b>step</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует ступеньки для точек массива {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. См. также <a href="#plot">plot</a>, <a href="#stem">stem</a>, <a href="#tile">tile</a>, <a href="#boxs">boxs</a>. См. раздел <a href="mathgl_ru_9.html#Step-sample">Step &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-torus"></a>
+<p><a name="torus"></a>
+</p><dl>
+<dt><a name="index-torus-1"></a><u>Команда MGL:</u> <b>torus</b><i> zdat ['stl'='']</i></dt>
+<dt><a name="index-torus-2"></a><u>Команда MGL:</u> <b>torus</b><i> rdat zdat ['stl'='']</i></dt>
+<dd><p>Рисует поверхность вращения кривой {<var>rdat</var>[i], <var>zdat</var>[i], <var>zdat</var>[i]} относительно оси <a href="#axialdir">axialdir</a>. Если массив <var>rdat</var> не указан, то используется массив со значениями равно распределенными вдоль оси x. См. также <a href="#plot">plot</a>, <a href="#axial">axial</a>. См. раздел <a href="mathgl_ru_9.html#Torus-sample">Torus &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-tube"></a>
+<p><a name="tube"></a>
+</p><dl>
+<dt><a name="index-tube-1"></a><u>Команда MGL:</u> <b>tube</b><i> ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-2"></a><u>Команда MGL:</u> <b>tube</b><i> ydat <code>rval</code> ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-3"></a><u>Команда MGL:</u> <b>tube</b><i> xdat ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-4"></a><u>Команда MGL:</u> <b>tube</b><i> xdat ydat <code>rval</code> ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-5"></a><u>Команда MGL:</u> <b>tube</b><i> xdat ydat zdat rdat ['stl'='']</i></dt>
+<dt><a name="index-tube-6"></a><u>Команда MGL:</u> <b>tube</b><i> xdat ydat zdat <code>rval</code> ['stl'='']</i></dt>
+<dd><p>Рисует трубу радиуса <var>rdat</var>[i] (or <var>rval</var>) вдоль кривой между точками {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. См. также <a href="#plot">plot</a>. См. раздел <a href="mathgl_ru_9.html#Tube-sample">Tube &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-mark"></a>
+<p><a name="mark"></a>
+</p><dl>
+<dt><a name="index-mark-1"></a><u>Команда MGL:</u> <b>mark</b><i> ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-mark-2"></a><u>Команда MGL:</u> <b>mark</b><i> xdat ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-mark-3"></a><u>Команда MGL:</u> <b>mark</b><i> xdat ydat zdat rdat ['stl'='']</i></dt>
+<dd><p>Рисует маркеры размером <var>rdat</var>[i]*<code>marksize</code> в точках {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Для рисования маркеров одинакового размера можно использовать функцию <code>plot</code> с невидимой линией (со стилем содержащим &lsquo;<samp> </samp>&rsquo;). См. также <a href="#plot">plot</a>, <a href="#textmark">textmark</a>, <a href="#stem">stem</a>, <a href="#error">error</a>. См. раздел <a href="mathgl_ru_9.html#Mark-sample">Mark &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-textmark"></a>
+<p><a name="textmark"></a>
+</p><dl>
+<dt><a name="index-textmark-1"></a><u>Команда MGL:</u> <b>textmark</b><i> ydat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-2"></a><u>Команда MGL:</u> <b>textmark</b><i> ydat rdat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-3"></a><u>Команда MGL:</u> <b>textmark</b><i> xdat ydat rdat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-4"></a><u>Команда MGL:</u> <b>textmark</b><i> xdat ydat zdat rdat 'txt' ['stl'='']</i></dt>
+<dd><p>Рисует текст <var>txt</var> как маркер с размером пропорциональным <var>rdat</var>[i]*<code>marksize</code> в точках {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если массив <var>rdat</var> не указан, то полагается <var>rdat</var>[i] = 1. См. также <a href="#plot">plot</a>, <a href="#mark">mark</a>, <a href="#stem">stem</a>. См. раздел <a href="mathgl_ru_9.html#TextMark-sample">TextMark &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-error"></a>
+<p><a name="error"></a>
+</p><dl>
+<dt><a name="index-error-1"></a><u>Команда MGL:</u> <b>error</b><i> ydat yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-error-2"></a><u>Команда MGL:</u> <b>error</b><i> xdat ydat yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-error-3"></a><u>Команда MGL:</u> <b>error</b><i> xdat ydat xerr yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует размер ошибки {<var>xerr</var>[i], <var>yerr</var>[i]} в точках {<var>xdat</var>[i], <var>ydat</var>[i]} на плоскости <var>z</var> = <var>zval</var>. Такой график полезен для отображения ошибки эксперимента, вычислений и пр. См. также <a href="#plot">plot</a>. См. раздел <a href="mathgl_ru_9.html#Error-sample">Error &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-boxplot"></a>
+<p><a name="boxplot"></a>
+</p><dl>
+<dt><a name="index-boxplot-1"></a><u>Команда MGL:</u> <b>boxplot</b><i> adat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-boxplot-2"></a><u>Команда MGL:</u> <b>boxplot</b><i> xdat adat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует boxplot (называемый также как box-and-whisker diagram или как &quot;ящик с усами&quot;) в точках <var>xdat</var>[i] на плоскости <var>z</var> = <var>zval</var>. Это график, компактно изображающий распределение вероятностей <var>adat</var>[i,j] (минимум, нижний квартиль (Q1), медиана (Q2), верхний квартиль (Q3) и максимум) вдоль второго (j-го) направления. См. также <a href="#plot">plot</a>, <a href="#error">error</a>, <a href="#bars">bars</a>. См. раздел <a href="mathgl_ru_9.html#BoxPlot-sample">BoxPlot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t2D-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029"></a>
+<h2 class="section">8.10 2D графики (MGL)</h2>
+
+<p>Эти команды строят графики для двумерных (2D) массивов. Двумерными считаются массивы, зависящие только от двух параметров (индексов) подобно матрице <em>f(x_i,y_j), i=1...n, j=1...m</em>. Есть несколько основных типов 2D графиков: сплошная поверхность (<a href="#surf">surf</a>), сетчатая поверхность (<a href="#mesh">mesh</a>), поверхность из ящиков (<a href="#boxs">boxs</a>), поверхность из плиток (<a href="#tile">tile</a>), водопад (<a href="#fall">fall</a>), ленточки (<a href="#belt">belt</a>), график плотности (<a href="#dens">dens</a>), линии уровня (<a href="#cont">cont</a>), линии уровня с заполнением (<a href="#contf">contf</a>) и результат их вращения (<a href="#axial">axial</a>). В функциях <a href="#cont">cont</a>, <a href="#contf">contf</a> и <a href="#axial">axial</a> значения уровней можно задавать автоматически и вручную. Можно также нарисовать сетку (<a href="#grid">grid</a>) по массиву данных для улучшения вида графика плотности или линий уровня. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданной поверхности. См. раздел <a href="mathgl_ru_9.html#g_t1D-plot-sample">Пример графиков 1D данных</a>, для примеров кода и графика.
+</p>
+<p>Строка <var>sch</var> задает цветовую схему (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>. Предыдущая цветовая схема используется по умолчанию. Младшие размерности массивов <var>xdat</var>, <var>ydat</var>, <var>zdat</var> должны быть одинаковы <code>xdat.nx=zdat.nx &amp;&amp; ydat.nx=zdat.ny</code> или <code>xdat.nx=ydat.nx=zdat.nx &amp;&amp; xdat.ny=ydat.ny=zdat.ny</code>. Массивы <var>xdat</var> и <var>ydat</var> могут быть векторами (не матрицами как <var>zdat</var>). Если массивы <var>xdat</var>, <var>ydat</var> не указаны, то используются массивы со значениями равно распределенными вдоль осей x, y. График строится для каждого z среза данных.
+</p>
+<a name="index-surf"></a>
+<p><a name="surf"></a>
+</p><dl>
+<dt><a name="index-surf-1"></a><u>Команда MGL:</u> <b>surf</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-surf-2"></a><u>Команда MGL:</u> <b>surf</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует параметрически заданную поверхность {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на поверхности рисуется сетка. См. также <a href="#mesh">mesh</a>, <a href="#dens">dens</a>, <a href="#belt">belt</a>, <a href="#tile">tile</a>, <a href="#boxs">boxs</a>, <a href="#surfc">surfc</a>, <a href="#surfa">surfa</a>. См. раздел <a href="mathgl_ru_9.html#Surf-sample">Surf &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-mesh"></a>
+<p><a name="mesh"></a>
+</p><dl>
+<dt><a name="index-mesh-1"></a><u>Команда MGL:</u> <b>mesh</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-mesh-2"></a><u>Команда MGL:</u> <b>mesh</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует сетчатую поверхность, заданную параметрически {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. См. также <a href="#surf">surf</a>, <a href="#fall">fall</a>, <a href="#meshnum">meshnum</a>, <a href="#cont">cont</a>, <a href="#tens">tens</a>. См. раздел <a href="mathgl_ru_9.html#Mesh-sample">Mesh &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-fall"></a>
+<p><a name="fall"></a>
+</p><dl>
+<dt><a name="index-fall-1"></a><u>Команда MGL:</u> <b>fall</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-fall-2"></a><u>Команда MGL:</u> <b>fall</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует водопад для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. График удобен для построения нескольких кривых, сдвинутых вглубь друг относительно друга. Если <var>sch</var> содержит &lsquo;<samp>x</samp>&rsquo;, то линии рисуются вдоль x-оси (по умолчанию линии рисуются вдоль y-оси). См. также <a href="#belt">belt</a>, <a href="#mesh">mesh</a>, <a href="#tens">tens</a>, <a href="#meshnum">meshnum</a>. См. раздел <a href="mathgl_ru_9.html#Fall-sample">Fall &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-belt"></a>
+<p><a name="belt"></a>
+</p><dl>
+<dt><a name="index-belt-1"></a><u>Команда MGL:</u> <b>belt</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-belt-2"></a><u>Команда MGL:</u> <b>belt</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует ленточки для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Если <var>sch</var> содержит &lsquo;<samp>x</samp>&rsquo;, то линии рисуются вдоль x-оси (по умолчанию линии рисуются вдоль y-оси). См. также <a href="#fall">fall</a>, <a href="#surf">surf</a>, <a href="#plot">plot</a>, <a href="#meshnum">meshnum</a>. См. раздел <a href="mathgl_ru_9.html#Belt-sample">Belt &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-boxs"></a>
+<p><a name="boxs"></a>
+</p><dl>
+<dt><a name="index-boxs-1"></a><u>Команда MGL:</u> <b>boxs</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-boxs-2"></a><u>Команда MGL:</u> <b>boxs</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует вертикальные ящики для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. См. также <a href="#surf">surf</a>, <a href="#dens">dens</a>, <a href="#tile">tile</a>, <a href="#step">step</a>. См. раздел <a href="mathgl_ru_9.html#Boxs-sample">Boxs &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-tile"></a>
+<p><a name="tile"></a>
+</p><dl>
+<dt><a name="index-tile-1"></a><u>Команда MGL:</u> <b>tile</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-tile-2"></a><u>Команда MGL:</u> <b>tile</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует плитки для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. График может использоваться как 3d обобщение <a href="#step">step</a>. См. также <a href="#surf">surf</a>, <a href="#boxs">boxs</a>, <a href="#step">step</a>, <a href="#tiles">tiles</a>. См. раздел <a href="mathgl_ru_9.html#Tile-sample">Tile &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-dens"></a>
+<p><a name="dens"></a>
+</p><dl>
+<dt><a name="index-dens-1"></a><u>Команда MGL:</u> <b>dens</b><i> zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-dens-2"></a><u>Команда MGL:</u> <b>dens</b><i> xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует график плотности для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zVal</var>. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетка. См. также <a href="#surf">surf</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>, <a href="#boxs">boxs</a>, <a href="#tile">tile</a>, <code>dens[xyz]</code>. См. раздел <a href="mathgl_ru_9.html#Dens-sample">Dens &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-cont"></a>
+<p><a name="cont"></a>
+</p><dl>
+<dt><a name="index-cont-1"></a><u>Команда MGL:</u> <b>cont</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-cont-2"></a><u>Команда MGL:</u> <b>cont</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует линии уровня для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zval</var> (или при <var>z=vdat</var>[k] если <code>zval==nan</code>). Линии уровня рисуются для <var>z</var>=<var>vdat</var>[k]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетка. Если <var>sch</var> содержит &lsquo;<samp>t</samp>&rsquo; или &lsquo;<samp>T</samp>&rsquo;, то значения <var>vdat</var>[k] будут выведены вдоль контуров над (или под) кривой. См. также <a href="#dens">dens</a>, <a href="#contf">contf</a>, <a href="#contd">contd</a>, <a href="#axial">axial</a>, <code>cont[xyz]</code>. См. раздел <a href="mathgl_ru_9.html#Cont-sample">Cont &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cont-3"></a><u>Команда MGL:</u> <b>cont</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-cont-4"></a><u>Команда MGL:</u> <b>cont</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-contf"></a>
+<p><a name="contf"></a>
+</p><dl>
+<dt><a name="index-contf-1"></a><u>Команда MGL:</u> <b>contf</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-contf-2"></a><u>Команда MGL:</u> <b>contf</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zval</var> (или при <var>z=v</var>[k] если <code>zval=nan</code>). Линии уровня рисуются для <var>z</var>=<var>vdat</var>[k]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетка. См. также <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contd">contd</a>, <code>contf[xyz]</code>. См. раздел <a href="mathgl_ru_9.html#ContF-sample">ContF &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contf-3"></a><u>Команда MGL:</u> <b>contf</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-contf-4"></a><u>Команда MGL:</u> <b>contf</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-contd"></a>
+<p><a name="contd"></a>
+</p><dl>
+<dt><a name="index-contd-1"></a><u>Команда MGL:</u> <b>contd</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-contd-2"></a><u>Команда MGL:</u> <b>contd</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zval</var> (или при <var>z=v</var>[k] если <code>zval==nan</code>) цветами заданными явно. Линии уровня рисуются для <var>z</var>=<var>vdat</var>[k]. Строка <var>sch</var> задает цвет контуров: цвет k-го контура определяется символом <code>sch[k%strlen(sch)]</code>. См. также <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>, <code>cont[xyz]</code>. См. раздел <a href="mathgl_ru_9.html#ContD-sample">ContD &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contd-3"></a><u>Команда MGL:</u> <b>contd</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-contd-4"></a><u>Команда MGL:</u> <b>contd</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-axial"></a>
+<p><a name="axial"></a>
+</p><dl>
+<dt><a name="index-axial-1"></a><u>Команда MGL:</u> <b>axial</b><i> vdat zdat ['sch'='']</i></dt>
+<dt><a name="index-axial-2"></a><u>Команда MGL:</u> <b>axial</b><i> vdat xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует поверхность вращения линии уровня для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Линии уровня рисуются для <var>zdat</var>[i,j]=<var>vdat</var>[k]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Если строка содержит символы &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; или &lsquo;<samp>z</samp>&rsquo;, то ось вращения устанавливается в указанное направление (по умолчанию вдоль оси <a href="#axialdir">axialdir</a>). См. также <a href="#cont">cont</a>, <a href="#contf">contf</a>, <a href="#torus">torus</a>, <a href="#surf3">surf3</a>. См. раздел <a href="mathgl_ru_9.html#Axial-sample">Axial &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axial-3"></a><u>Команда MGL:</u> <b>axial</b><i> zdat ['sch'='' <code>num=3</code>]</i></dt>
+<dt><a name="index-axial-4"></a><u>Команда MGL:</u> <b>axial</b><i> xdat ydat zdat ['sch'='' <code>num=3</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-grad"></a>
+<p><a name="grad"></a>
+</p><dl>
+<dt><a name="index-grad-1"></a><u>Команда MGL:</u> <b>grad</b><i> pdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-grad-2"></a><u>Команда MGL:</u> <b>grad</b><i> xdat ydat pdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-grad-3"></a><u>Команда MGL:</u> <b>grad</b><i> xdat ydat zdat pdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Рисует линии градиента скалярного поля <var>pdat</var> заданного параметрически {<var>xdat</var>[i,j], <var>ydat</var>[i,j]} или {<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]}. Число линий пропорционально <var>num</var>. Линии рисуются только с границ интервала при <var>num</var>&lt;0. См. также <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#dens3">dens3</a>, <a href="#cont3">cont3</a>, <a href="#flow">flow</a>. См. раздел <a href="mathgl_ru_9.html#Grad-sample">Grad &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+
+<a name="index-grid2"></a>
+<p><a name="grid2"></a>
+</p><dl>
+<dt><a name="index-grid2-1"></a><u>Команда MGL:</u> <b>grid2</b><i> zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-grid2-2"></a><u>Команда MGL:</u> <b>grid2</b><i> xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует плоскую сету для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zval</var>. См. также <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="g_t3D-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029"></a>
+<h2 class="section">8.11 3D графики (MGL)</h2>
+
+<p>Эти функции строят графики для трехмерных (3D) массивов. Трехмерными считаются массивы, зависящие от трех параметров (индексов) подобно матрице <em>f(x_i,y_j,z_k), i=1...n, j=1...m, k=1...l</em>. Есть 5 основных типов 3D графиков: поверхность постоянного уровня (<a href="#surf3">surf3</a>), график плотности на срезе (<var>dens3</var>), линии уровня на срезе (<a href="#cont3">cont3</a>), закрашенные контуры уровня на срезе (<a href="#contf3">contf3</a>) и график объемной прозрачности типа облака (<a href="#cloud">cloud</a>). В функциях <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a> и <a href="#surf3">surf3</a> значения уровней можно задавать автоматически и вручную. Можно также нарисовать на срезе сетку (<a href="#grid3">grid3</a>) по массиву данных для улучшения вида графика плотности или линий уровня. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива. См. раздел <a href="mathgl_ru_9.html#g_t3D-plot-sample">Пример графиков 3D данных</a>, для примеров кода и графика.
+</p>
+<p>Строка <var>sch</var> задает цветовую схему (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>). Предыдущая цветовая схема используется по умолчанию. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). Если массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> не указаны, то используются массивы со значениями равно распределенными вдоль осей x, y, z.
+</p>
+
+<a name="index-surf3"></a>
+<p><a name="surf3"></a>
+</p><dl>
+<dt><a name="index-surf3-1"></a><u>Команда MGL:</u> <b>surf3</b><i> adat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3-2"></a><u>Команда MGL:</u> <b>surf3</b><i> xdat ydat zdat adat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) при <var>adat</var>(x,y,z)=<var>val</var>. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. См. также <a href="#cloud">cloud</a>, <a href="#dens3">dens3</a>, <a href="#surf3c">surf3c</a>, <a href="#surf3a">surf3a</a>, <a href="#axial">axial</a>. См. раздел <a href="mathgl_ru_9.html#Surf3-sample">Surf3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3-3"></a><u>Команда MGL:</u> <b>surf3</b><i> adat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3-4"></a><u>Команда MGL:</u> <b>surf3</b><i> xdat ydat zdat adat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Рисует <var>num</var> поверхностей уровня равномерно распределенных в интервале цветовой шкалы (см. <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-dens3"></a>
+<p><a name="dens3"></a>
+</p><dl>
+<dt><a name="index-dens3-1"></a><u>Команда MGL:</u> <b>dens3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-dens3-2"></a><u>Команда MGL:</u> <b>dens3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Рисует график плотности для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). График рисуется на срезе <var>sval</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Если <var>stl</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на срезе рисуется сетка. См. также <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a>, <a href="#dens">dens</a>, <a href="#grid3">grid3</a>. См. раздел <a href="mathgl_ru_9.html#Dens3-sample">Dens3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-densa"></a>
+<p><a name="densa"></a>
+</p><dl>
+<dt><a name="index-densa-1"></a><u>Команда MGL:</u> <b>densa</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-densa-2"></a><u>Команда MGL:</u> <b>densa</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Рисует графики плотности на всех центральных срезах 3d данных.
+</p></dd></dl>
+
+<a name="index-cont3"></a>
+<p><a name="cont3"></a>
+</p><dl>
+<dt><a name="index-cont3-1"></a><u>Команда MGL:</u> <b>cont3</b><i> vdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-cont3-2"></a><u>Команда MGL:</u> <b>cont3</b><i> vdat xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Рисует линии уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Линии рисуются для значений из массива <var>v</var> на срезе <var>sval</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Если <var>stl</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на срезе рисуется сетка. Если <var>sch</var> содержит &lsquo;<samp>t</samp>&rsquo; или &lsquo;<samp>T</samp>&rsquo;, то значения <var>vdat</var>[k] будут выведены вдоль контуров над (или под) кривой. См. также <a href="#dens3">dens3</a>, <a href="#contf3">contf3</a>, <a href="#cont">cont</a>, <a href="#grid3">grid3</a>. См. раздел <a href="mathgl_ru_9.html#Cont3-sample">Cont3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cont3-3"></a><u>Команда MGL:</u> <b>cont3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-cont3-4"></a><u>Команда MGL:</u> <b>cont3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-conta"></a>
+<p><a name="conta"></a>
+</p><dl>
+<dt><a name="index-conta-1"></a><u>Команда MGL:</u> <b>conta</b><i> adat ['sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-conta-2"></a><u>Команда MGL:</u> <b>conta</b><i> xdat ydat zdat adat ['sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Рисует линии уровня на всех центральных срезах 3d данных.
+</p></dd></dl>
+
+<a name="index-contf3"></a>
+<p><a name="contf3"></a>
+</p><dl>
+<dt><a name="index-contf3-1"></a><u>Команда MGL:</u> <b>contf3</b><i> vdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-contf3-2"></a><u>Команда MGL:</u> <b>contf3</b><i> vdat xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Линии рисуются для значений из массива <var>v</var> на срезе <var>sval</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Если <var>stl</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на срезе рисуется сетка. См. также <a href="#dens3">dens3</a>, <a href="#cont3">cont3</a>, <a href="#contf">contf</a>, <a href="#grid3">grid3</a>. См. раздел <a href="mathgl_ru_9.html#ContF3-sample">ContF3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contf3-3"></a><u>Команда MGL:</u> <b>contf3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-contf3-4"></a><u>Команда MGL:</u> <b>contf3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-contfa"></a>
+<p><a name="contfa"></a>
+</p><dl>
+<dt><a name="index-contfa-1"></a><u>Команда MGL:</u> <b>contfa</b><i> adat ['sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-contfa-2"></a><u>Команда MGL:</u> <b>contfa</b><i> xdat ydat zdat adat ['sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня на всех центральных срезах 3d данных.
+</p></dd></dl>
+
+<a name="index-grid3"></a>
+<p><a name="grid3"></a>
+</p><dl>
+<dt><a name="index-grid3-1"></a><u>Команда MGL:</u> <b>grid3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-grid3-2"></a><u>Команда MGL:</u> <b>grid3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Рисует сетку для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). График рисуется на срезе <var>sval</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. См. также <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a>, <a href="#dens3">dens3</a>, <a href="#grid2">grid2</a>.
+</p></dd></dl>
+
+<a name="index-grida"></a>
+<p><a name="grida"></a>
+</p><dl>
+<dt><a name="index-grida-1"></a><u>Команда MGL:</u> <b>grida</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-grida-2"></a><u>Команда MGL:</u> <b>grida</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Рисует сетку на всех центральных срезах 3d данных.
+</p></dd></dl>
+
+<a name="index-cloud"></a>
+<p><a name="cloud"></a>
+</p><dl>
+<dt><a name="index-cloud-1"></a><u>Команда MGL:</u> <b>cloud</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-cloud-2"></a><u>Команда MGL:</u> <b>cloud</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Рисует облачный график для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). График состоит из кубиков с цветом и прозрачностью пропорциональной значениям <var>adat</var>. Результат похож на облако &ndash; малые значения прозрачны, а большие нет. Число кубиков зависит от <a href="#meshnum">meshnum</a>. Параметр <var>alpha</var> меняет общую прозрачность графика. См. также <a href="#surf3">surf3</a>. См. раздел <a href="mathgl_ru_9.html#Cloud-sample">Cloud &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-beam"></a>
+<p><a name="beam"></a>
+</p><dl>
+<dt><a name="index-beam-1"></a><u>Команда MGL:</u> <b>beam</b><i> tr g1 g2 adat <code>rval</code> ['sch'='' <code>flag=0 num=3</code>]</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива <var>adat</var> при постоянном значении <var>adat</var>=<var>val</var>. Это специальный тип графика для <var>adat</var> заданного в сопровождающей системе координат вдоль кривой <var>tr</var> с ортами <var>g1</var>, <var>g2</var> и с поперечным размером <var>rval</var>. Переменная <var>flag</var> &ndash; битовый флаг: &lsquo;<samp>0x1</samp>&rsquo; - рисовать в сопровождающих (не лабораторных) координатах; &lsquo;<samp>0x2</samp>&rsquo; - рисовать проекцию на плоскость <em>\rho-z</em>; &lsquo;<samp>0x4</samp>&rsquo; - рисовать нормированное в каждом сечении поле. Размеры массивов по 1-му индексу <var>tr</var>, <var>g1</var>, <var>g2</var> должны быть nx&gt;2. Размеры массивов по 2-му индексу <var>tr</var>, <var>g1</var>, <var>g2</var> и размер по 3-му индексу массива <var>adat</var> должны быть одинаковы. См. также <a href="#surf3">surf3</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Dual-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0430_0440_043d_044be-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029"></a>
+<h2 class="section">8.12 Парные графики (MGL)</h2>
+
+<p>Эти команды строят графики для двух связанных массивов. Есть несколько основных типов 3D графиков: поверхность и поверхность уровня с окраской по второму массиву (<a href="#surfc">surfc</a>, <a href="#surf3c">surf3c</a>), поверхность и поверхность уровня с прозрачностью по второму массиву (<a href="#surfa">surfa</a>, <a href="#surf3a">surf3a</a>), плитки переменного размера (<a href="#tiles">tiles</a>), диаграмма точечного отображения (<a href="#map">map</a>), STFA диаграмма (<a href="#stfa">stfa</a>). В командах <a href="#surf3a">surf3a</a> и <a href="#surf3c">surf3c</a> значения уровней можно задавать автоматически и вручную. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива.
+</p>
+<p>Строка <var>sch</var> задает цветовую схему (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>). Предыдущая цветовая схема используется по умолчанию. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). Если массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> не указаны, то используются массивы со значениями равно распределенными вдоль осей x, y, z.
+</p>
+<a name="index-surfc"></a>
+<p><a name="surfc"></a>
+</p><dl>
+<dt><a name="index-surfc-1"></a><u>Команда MGL:</u> <b>surfc</b><i> zdat cdat ['sch'='']</i></dt>
+<dt><a name="index-surfc-2"></a><u>Команда MGL:</u> <b>surfc</b><i> xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Рисует параметрически заданную поверхность {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} с цветом, заданным массивом <var>cdat</var>[i,j]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на поверхности рисуется сетка. См. также <a href="#surf">surf</a>, <a href="#surfa">surfa</a>, <a href="#surf3c">surf3c</a>. См. раздел <a href="mathgl_ru_9.html#SurfC-sample">SurfC &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-surf3c"></a>
+<p><a name="surf3c"></a>
+</p><dl>
+<dt><a name="index-surf3c-1"></a><u>Команда MGL:</u> <b>surf3c</b><i> adat cdat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3c-2"></a><u>Команда MGL:</u> <b>surf3c</b><i> xdat ydat zdat adat cdat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) при <var>a</var>(x,y,z)=<var>val</var>. Аналогично <a href="#surf3">surf3</a>, но цвет задается массивом <var>cdat</var>. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. См. также <a href="#surf3">surf3</a>, <a href="#surfc">surfc</a>, <a href="#surf3a">surf3a</a>. См. раздел <a href="mathgl_ru_9.html#Surf3C-sample">Surf3C &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3c-3"></a><u>Команда MGL:</u> <b>surf3c</b><i> adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3c-4"></a><u>Команда MGL:</u> <b>surf3c</b><i> xdat ydat zdat adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Рисует <var>num</var> поверхностей уровня равномерно распределенных в интервале цветовой шкалы (см. <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-surfa"></a>
+<p><a name="surfa"></a>
+</p><dl>
+<dt><a name="index-surfa-1"></a><u>Команда MGL:</u> <b>surfa</b><i> zdat cdat ['sch'='']</i></dt>
+<dt><a name="index-surfa-2"></a><u>Команда MGL:</u> <b>surfa</b><i> xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Рисует параметрически заданную поверхность {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} с прозрачностью, заданным массивом <var>cdat</var>[i,j]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на поверхности рисуется сетка. См. также <a href="#surf">surf</a>, <a href="#surfc">surfc</a>, <a href="#surf3a">surf3a</a>. См. раздел <a href="mathgl_ru_9.html#SurfA-sample">SurfA &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-surf3a"></a>
+<p><a name="surf3a"></a>
+</p><dl>
+<dt><a name="index-surf3a-1"></a><u>Команда MGL:</u> <b>surf3a</b><i> adat cdat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3a-2"></a><u>Команда MGL:</u> <b>surf3a</b><i> xdat ydat zdat adat cdat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) при <var>a</var>(x,y,z)=<var>val</var>. Аналогично <a href="#surf3">surf3</a>, но прозрачность задается массивом <var>cdat</var>. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. См. также <a href="#surf3">surf3</a>, <a href="#surfa">surfa</a>, <a href="#surf3c">surf3c</a>. См. раздел <a href="mathgl_ru_9.html#Surf3A-sample">Surf3A &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3a-3"></a><u>Команда MGL:</u> <b>surf3a</b><i> adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3a-4"></a><u>Команда MGL:</u> <b>surf3a</b><i> xdat ydat zdat adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Рисует <var>num</var> поверхностей уровня равномерно распределенных в интервале цветовой шкалы (см. <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-tiles"></a>
+<p><a name="tiles"></a>
+</p><dl>
+<dt><a name="index-tiles-1"></a><u>Команда MGL:</u> <b>tiles</b><i> zdat rdat ['sch'='']</i></dt>
+<dt><a name="index-tiles-2"></a><u>Команда MGL:</u> <b>tiles</b><i> xdat ydat zdat rdat ['sch'='']</i></dt>
+<dd><p>Рисует плитки для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Аналогично <a href="#tile">tile</a>, но размер плиток задается массивов <var>rdat</var>. Это создает эффект &quot;прозрачности&quot; при экспорте в файлы EPS. См. также <a href="#surfa">surfa</a>, <a href="#tile">tile</a>. См. раздел <a href="mathgl_ru_9.html#TileS-sample">TileS &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-map"></a>
+<p><a name="map"></a>
+</p><dl>
+<dt><a name="index-map-1"></a><u>Команда MGL:</u> <b>map</b><i> udat vdat ['sch'='' <code>pnts=on</code>]</i></dt>
+<dt><a name="index-map-2"></a><u>Команда MGL:</u> <b>map</b><i> xdat ydat udat vdat ['sch'='' <code>pnts=on</code>]</i></dt>
+<dd><p>Визуализирует точечное отображение для матриц {<var>udat</var>, <var>vdat</var> } параметрически зависящих от координат <var>xdat</var>, <var>ydat</var>. Исходное положение ячейки задает ее цвет. Высота пропорциональна якобиану Jacobian(udat,vdat). График является аналогом диаграммы Арнольда. Если <code>pnts=off</code>, то рисуются грани, иначе цветные точки рисуются в узлах матриц (полезно для &quot;запутанного&quot; отображения). См. раздел <a href="mathgl_ru_9.html#Map-sample">Map &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-stfa"></a>
+<p><a name="stfa"></a>
+</p><dl>
+<dt><a name="index-stfa-1"></a><u>Команда MGL:</u> <b>stfa</b><i> re im <code>dn</code> ['sch'='' <code>pnts=on</code>]</i></dt>
+<dt><a name="index-stfa-2"></a><u>Команда MGL:</u> <b>stfa</b><i> xdat ydat re im <code>dn</code> ['sch'='' <code>pnts=on</code>]</i></dt>
+<dd><p>Рисует спектрограмму комплексного массива <var>re</var>+i*<code>im</code> для Фурье размером <var>dn</var> точек. Параметр <var>dn</var> &ndash; любое четное число. Например в 1D случае, результатом будет график плотности от массива <em>res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn</em> размером {int(nx/dn), dn, ny}. Массивы <var>re</var>, <var>im</var> параметрически зависят от координат <var>xdat</var>, <var>ydat</var>. См. раздел <a href="mathgl_ru_9.html#STFA-sample">STFA &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+
+
+
+<hr size="6">
+<a name="Vector-fields-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0412e_043a_0442_043e_0440_043d_044be-_043f_043e_043bya-_0028MGL_0029"></a>
+<h2 class="section">8.13 Векторные поля (MGL)</h2>
+
+<p>Эти функции рисуют графики для 2D и 3D векторных полей. Есть несколько типов графиков: просто векторное поле (<a href="#vect">vect</a>), вектора вдоль траектории (<a href="#traj">traj</a>), векторное поле каплями (<a href="#dew">dew</a>), нити тока (<a href="#flow">flow</a>), трубки тока (<a href="#pipe">pipe</a>). Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива.
+</p>
+<p>Строка <var>sch</var> задает цветовую схему (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>). Предыдущая цветовая схема используется по умолчанию. Все размеры массивов <var>ax</var> и <var>ay</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var> и <var>ax</var> должны быть одинаковы. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>ax</var>). График строится для каждого z среза <var>ax</var>, <var>ay</var> для 2D случаев.
+</p>
+<a name="index-traj"></a>
+<p><a name="traj"></a>
+</p><dl>
+<dt><a name="index-traj-1"></a><u>Команда MGL:</u> <b>traj</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan len=0</code>]</i></dt>
+<dt><a name="index-traj-2"></a><u>Команда MGL:</u> <b>traj</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>len=0</code>]</i></dt>
+<dd><p>Рисует вектора {<var>udat</var>, <var>vdat</var>, <var>wdat</var>} вдоль кривой {<var>xdat</var>, <var>ydat</var>, <var>zdat</var>}. Длина векторов пропорциональна <em>\sqrtudat^2+vdat^2+wdat^2</em>. Строка <var>pen</var> задает цвет (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=''</code>). Параметр <var>len</var> задает фактор длины векторов (если не нуль) или выбирать длину пропорционально расстоянию между точками кривой (если <var>len</var>=0). См. также <a href="#vect">vect</a>. См. раздел <a href="mathgl_ru_9.html#Traj-sample">Traj &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-vect"></a>
+<p><a name="vect"></a>
+</p><dl>
+<dt><a name="index-vect-1"></a><u>Команда MGL:</u> <b>vect</b><i> udat vdat ['sch'='' <code>zval=nan flag=0</code>]</i></dt>
+<dt><a name="index-vect-2"></a><u>Команда MGL:</u> <b>vect</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan flag=0</code>]</i></dt>
+<dd><p>Рисует векторное поле {<var>udat</var>, <var>vdat</var>} параметрически зависящее от координат <var>xdat</var>, <var>ydat</var> на плоскости при <var>z</var>=<var>zval</var>. Длина и цвет векторов пропорциональна <em>\sqrtax^2+ay^2</em>. Число рисуемых векторов зависит от <a href="#meshnum">meshnum</a>. Параметр <var>flag</var> побитовый флаг для настройки вид векторов: <code>1</code> &ndash; двуцветный вектор, <code>2</code> &ndash; одинаковая длина векторов, <code>4</code> &ndash; рисует стрелку в точку сетки, <code>8</code> &ndash; рисует стрелку с серединой в точке сетки, <code>16</code> &ndash; рисует штрихи вместо стрелок. См. также <a href="#flow">flow</a>, <a href="#dew">dew</a>, <a href="#vectc">vectc</a>. См. раздел <a href="mathgl_ru_9.html#Vect-sample">Vect &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vect-3"></a><u>Команда MGL:</u> <b>vect</b><i> udat vdat wdat ['sch'='' <code>flag=0</code>]</i></dt>
+<dt><a name="index-vect-4"></a><u>Команда MGL:</u> <b>vect</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>flag=0</code>]</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а длина и цвет пропорциональны <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mathgl_ru_9.html#Vect-3D-sample">Vect 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-vectc"></a>
+<p><a name="vectc"></a>
+</p><dl>
+<dt><a name="index-vectc-1"></a><u>Команда MGL:</u> <b>vectc</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-vectc-2"></a><u>Команда MGL:</u> <b>vectc</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Аналогично <a href="#vect">vect</a> c <code>flag=2+16=18</code>. См. раздел <a href="mathgl_ru_9.html#VectC-sample">VectC &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vectc-3"></a><u>Команда MGL:</u> <b>vectc</b><i> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-vectc-4"></a><u>Команда MGL:</u> <b>vectc</b><i> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а длина и цвет пропорциональны <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mathgl_ru_9.html#VectC-3D-sample">VectC 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-vectl"></a>
+<p><a name="vectl"></a>
+</p><dl>
+<dt><a name="index-vectl-1"></a><u>Команда MGL:</u> <b>vectl</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-vectl-2"></a><u>Команда MGL:</u> <b>vectl</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Аналогично <a href="#vect">vect</a> c <code>flag=1+16=17</code>. См. раздел <a href="mathgl_ru_9.html#VectL-sample">VectL &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vectl-3"></a><u>Команда MGL:</u> <b>vectl</b><i> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-vectl-4"></a><u>Команда MGL:</u> <b>vectl</b><i> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а длина и цвет пропорциональны <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mathgl_ru_9.html#VectL-3D-sample">VectL 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-dew"></a>
+<p><a name="dew"></a>
+</p><dl>
+<dt><a name="index-dew-1"></a><u>Команда MGL:</u> <b>dew</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-dew-2"></a><u>Команда MGL:</u> <b>dew</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует капли для векторного поля {<var>udat</var>, <var>vdat</var>}, параметрически зависящего от координат <var>xdat</var>, <var>ydat</var> при <var>z=zval</var>. Замечу, что график требует много памяти и процессорного времени для своего создания! Цвет капель пропорционален <em>\sqrtax^2+ay^2</em>. Число капель определяется <a href="#meshnum">meshnum</a>. См. также <a href="#vect">vect</a>. См. раздел <a href="mathgl_ru_9.html#Dew-sample">Dew &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-flow"></a>
+<p><a name="flow"></a>
+</p><dl>
+<dt><a name="index-flow-1"></a><u>Команда MGL:</u> <b>flow</b><i> udat vdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-flow-2"></a><u>Команда MGL:</u> <b>flow</b><i> xdat ydat udat vdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dd><p>Рисует нити тока для векторного поля {<var>udat</var>, <var>vdat</var>}, параметрически зависящего от координат <var>xdat</var>, <var>ydat</var> на плоскости при z = <var>zval</var>. Число нитей пропорционально <var>num</var>. При <var>num</var>&gt;0 нитей могут стартовать и изнутри сетки, в противном случае только с краев. Цвет нитей пропорционален <em>\sqrtudat^2+vdat^2</em>. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника). См. также <a href="#pipe">pipe</a>, <a href="#vect">vect</a>. См. раздел <a href="mathgl_ru_9.html#Flow-sample">Flow &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-3"></a><u>Команда MGL:</u> <b>flow</b><i> udat vdat wdat ['sch'='' <code>num=3</code>]</i></dt>
+<dt><a name="index-flow-4"></a><u>Команда MGL:</u> <b>flow</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>num=3</code>]</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а цвет пропорционален <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mathgl_ru_9.html#Flow-3D-sample">Flow 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-5"></a><u>Команда MGL:</u> <b>flow</b><i> <code>x0 y0</code> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-flow-6"></a><u>Команда MGL:</u> <b>flow</b><i> <code>x0 y0</code> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует нить тока из точки {<var>x0</var>, <var>y0</var>} для векторного поля {<var>udat</var>, <var>vdat</var>}, параметрически зависящего от координат <var>xdat</var>, <var>ydat</var> на плоскости при z = <var>zval</var>. Цвет нити пропорционален <em>\sqrtudat^2+vdat^2</em>. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-7"></a><u>Команда MGL:</u> <b>flow</b><i> <code>x0 y0 z0</code> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-flow-8"></a><u>Команда MGL:</u> <b>flow</b><i> <code>x0 y0 z0</code> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а цвет пропорционален <em>\sqrtudat^2+vdat^2+wdat^2</em>.
+</p></dd></dl>
+
+
+<a name="index-pipe"></a>
+<p><a name="pipe"></a>
+</p><dl>
+<dt><a name="index-pipe-1"></a><u>Команда MGL:</u> <b>pipe</b><i> udat vdat ['sch'='' <code>r0=0.05 num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-pipe-2"></a><u>Команда MGL:</u> <b>pipe</b><i> xdat ydat udat vdat ['sch'='' <code>r0=0.05 num=5 zval=nan</code>]</i></dt>
+<dd><p>Рисует трубки тока для векторного поля {<var>udat</var>, <var>vdat</var>}, параметрически зависящего от координат <var>xdat</var>, <var>ydat</var> на плоскости при z = <var>zval</var>. Число трубок пропорционально <var>num</var>. При <var>num</var>&gt;0 нитей могут стартовать и изнутри сетки, в противном случае только с краев. Цвет и радиус трубок пропорционален <em>\sqrtudat^2+vdat^2</em>. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника). Параметр <var>r0</var> задает радиус трубок. При <var>r0</var>&lt;0 радиус трубок обратно пропорционален их амплитуде. См. также <a href="#flow">flow</a>, <a href="#vect">vect</a>. См. раздел <a href="mathgl_ru_9.html#Pipe-sample">Pipe &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-pipe-3"></a><u>Команда MGL:</u> <b>pipe</b><i> udat vdat wdat ['sch'='' <code>r0=0.05 num=3</code>]</i></dt>
+<dt><a name="index-pipe-4"></a><u>Команда MGL:</u> <b>pipe</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>r0=0.05 num=3</code>]</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а цвет пропорционален <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mathgl_ru_9.html#Pipe-3D-sample">Pipe 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Other-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-fields-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043e_0447_0438e-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029"></a>
+<h2 class="section">8.14 Прочие графики (MGL)</h2>
+
+<p>Это команды, не относящиеся к какой-то специальной категории. Сюда входят функции построения графиков по текстовым формулам (<a href="#fplot">fplot</a>, <a href="#fsurf">fsurf</a>), рисования поверхностей из треугольников (<a href="#triplot">triplot</a>), произвольных точек в пространстве (<a href="#dots">dots</a>) и реконструкции по ним поверхности (<a href="#crust">crust</a>), графики плотности и линии уровня на плоскостях, перпендикулярных осям x, y или z (dens[xyz], cont[xyz], contf[xyz]). Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива. Строка <var>sch</var> задает цветовую схему (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>). Предыдущая цветовая схема используется по умолчанию.
+</p>
+<a name="index-densx"></a>
+<a name="index-densy"></a>
+<a name="index-densz"></a>
+<p><a name="densx"></a> <a name="densy"></a> <a name="densz"></a>
+</p><dl>
+<dt><a name="index-densx-1"></a><u>Команда MGL:</u> <b>densx</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dt><a name="index-densy-1"></a><u>Команда MGL:</u> <b>densy</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dt><a name="index-densz-1"></a><u>Команда MGL:</u> <b>densz</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dd><p>Рисуют график плотности на x, y или z плоскостях. Если <var>dat</var> &ndash; 3d массив, то выполняется интерполяция к заданному срезу <var>val</var>. Функции полезны для создания проекций 3D массивов на оси координат. См. также <code>cont[xyz], contf[xyz]</code>, <a href="#dens">dens</a>. См. раздел <a href="mathgl_ru_9.html#Dens-projection-sample">Dens projection &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-contx"></a>
+<a name="index-conty"></a>
+<a name="index-contz"></a>
+<p><a name="contz"></a> <a name="conty"></a> <a name="contx"></a>
+</p><dl>
+<dt><a name="index-contx-1"></a><u>Команда MGL:</u> <b>contx</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-conty-1"></a><u>Команда MGL:</u> <b>conty</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contz-1"></a><u>Команда MGL:</u> <b>contz</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dd><p>Рисуют линии уровня на x, y или z плоскостях. Если <var>dat</var> &ndash; 3d массив, то выполняется интерполяция к заданному срезу <var>val</var>. Функции полезны для создания проекций 3D массивов на оси координат. См. также <code>dens[xyz], contf[xyz]</code>, <a href="#cont">cont</a>. См. раздел <a href="mathgl_ru_9.html#Cont-projection-sample">Cont projection &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-contfx"></a>
+<a name="index-contfy"></a>
+<a name="index-contfz"></a>
+<p><a name="contfz"></a> <a name="contfy"></a> <a name="contfx"></a>
+</p><dl>
+<dt><a name="index-contfx-1"></a><u>Команда MGL:</u> <b>contfx</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contfy-1"></a><u>Команда MGL:</u> <b>contfy</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contfz-1"></a><u>Команда MGL:</u> <b>contfz</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dd><p>Рисуют закрашенные контуры уровня на x, y или z плоскостях. Если <var>dat</var> &ndash; 3d массив, то выполняется интерполяция к заданному срезу <var>val</var>. Функции полезны для создания проекций 3D массивов на оси координат. См. также <code>dens[xyz], cont[xyz]</code>, <a href="#contf">contf</a>.
+</p></dd></dl>
+
+<a name="index-dots"></a>
+<p><a name="dots"></a>
+</p><dl>
+<dt><a name="index-dots-1"></a><u>Команда MGL:</u> <b>dots</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-dots-2"></a><u>Команда MGL:</u> <b>dots</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Рисует произвольно расположенные точки {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если определен массив <var>adat</var>[i], то он задает прозрачность точек. См. также <a href="#crust">crust</a>, <a href="#mark">mark</a>, <a href="#plot">plot</a>. См. раздел <a href="mathgl_ru_9.html#Dots-sample">Dots &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-crust"></a>
+<p><a name="crust"></a>
+</p><dl>
+<dt><a name="index-crust-1"></a><u>Команда MGL:</u> <b>crust</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Реконструирует и рисует поверхность по произвольно расположенным точкам {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если строка содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. См. также <a href="#dots">dots</a>, <a href="#triplot">triplot</a>. См. раздел <a href="mathgl_ru_9.html#Crust-sample">Crust &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-triplot"></a>
+<p><a name="triplot"></a>
+</p><dl>
+<dt><a name="index-triplot-1"></a><u>Команда MGL:</u> <b>triplot</b><i> idat xdat ydat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-triplot-2"></a><u>Команда MGL:</u> <b>triplot</b><i> idat xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-triplot-3"></a><u>Команда MGL:</u> <b>triplot</b><i> idat xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Рисует поверхность из треугольников. Вершины треугольников задаются индексами <var>idat</var> в массиве точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если строка содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Размер по 1-му индексу массива <var>idat</var> должен быть 3 или больше. Массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> должны иметь одинаковые размеры. Массив <var>cdat</var> задает цвет треугольников (если <var>idat</var>.ny=<var>cdat</var>.nx) или цвет вершин (если <var>xdat</var>.nx=<var>cdat</var>.nx). См. также <a href="#dots">dots</a>, <a href="#crust">crust</a>, <a href="#quadplot">quadplot</a>, <a href="#tricont">tricont</a>.
+</p></dd></dl>
+
+<a name="index-tricont"></a>
+<p><a name="tricont"></a>
+</p><dl>
+<dt><a name="index-tricont-1"></a><u>Команда MGL:</u> <b>tricont</b><i> vdat idat xdat ydat zdat cdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tricont-2"></a><u>Команда MGL:</u> <b>tricont</b><i> vdat idat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tricont-3"></a><u>Команда MGL:</u> <b>tricont</b><i> idat xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Рисует линии уровня поверхности из треугольников при <var>z</var> = <var>zval</var> (или для z=<var>vdat</var>[k] если <code>zval==NAN</code>). Вершины треугольников задаются индексами <var>idat</var> в массиве точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Размер по 1-му индексу массива <var>idat</var> должен быть 3 или больше. Массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> должны иметь одинаковые размеры. Массив <var>cdat</var> (если указан) задает цвет треугольников (если <var>idat</var>.ny=<var>cdat</var>.nx) или цвет вершин (если <var>xdat</var>.nx=<var>cdat</var>.nx). См. также <a href="#triplot">triplot</a>, <a href="#cont">cont</a>.
+</p></dd></dl>
+
+<a name="index-quadplot"></a>
+<p><a name="quadplot"></a>
+</p><dl>
+<dt><a name="index-quadplot-1"></a><u>Команда MGL:</u> <b>quadplot</b><i> idat xdat ydat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-quadplot-2"></a><u>Команда MGL:</u> <b>quadplot</b><i> idat xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-quadplot-3"></a><u>Команда MGL:</u> <b>quadplot</b><i> idat xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Рисует поверхность из четырехугольников. Вершины треугольников задаются индексами <var>idat</var> в массиве точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если строка содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Размер по 1-му индексу массива <var>idat</var> должен быть 4 или больше. Массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> должны иметь одинаковые размеры. Массив <var>cdat</var> задает цвет четырехугольников (если <var>idat</var>.ny=<var>cdat</var>.nx) или цвет вершин (если <var>xdat</var>.nx=<var>cdat</var>.nx). См. также <a href="#triplot">triplot</a>.
+</p></dd></dl>
+
+<a name="index-fplot"></a>
+<p><a name="fplot"></a>
+</p><dl>
+<dt><a name="index-fplot-1"></a><u>Команда MGL:</u> <b>fplot</b><i> 'y(x)' ['pen'='' <code>zval=nan num=100</code>]</i></dt>
+<dd><p>Рисует функцию &lsquo;<samp>y(x)</samp>&rsquo; в плоскости z=<var>zval</var> с координатой &lsquo;<samp>x</samp>&rsquo; в диапазоне x-оси координат. Параметр <var>num</var> задает минимальное число точек по координате для графика. См. также <a href="#plot">plot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fplot-2"></a><u>Команда MGL:</u> <b>fplot</b><i> 'x(t)' 'y(t)' 'z(t)' ['pen'='' <code>num=100</code>]</i></dt>
+<dd><p>Рисует параметрическую кривую {&lsquo;<samp>x(t)</samp>&rsquo;, &lsquo;<samp>y(t)</samp>&rsquo;, &lsquo;<samp>z(t)</samp>&rsquo;}, где координата &lsquo;<samp>t</samp>&rsquo; меняется в диапазоне [0, 1]. Параметр <var>num</var> задает минимальное число точек по координате для графика. См. также <a href="#plot">plot</a>.
+</p></dd></dl>
+
+<a name="index-fsurf"></a>
+<p><a name="fsurf"></a>
+</p><dl>
+<dt><a name="index-fsurf-1"></a><u>Команда MGL:</u> <b>fsurf</b><i> 'z(x,y)' ['sch'='' <code>num=100</code>]</i></dt>
+<dd><p>Рисует поверхность &lsquo;<samp>z(x,y)</samp>&rsquo; с координатами &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; в диапазоне x-,y-осей координат. Параметр <var>num</var> задает минимальное число точек по координатам для графика. См. также <a href="#surf">surf</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fsurf-2"></a><u>Команда MGL:</u> <b>fsurf</b><i> 'x(u,v)' 'y(u,v)' 'z(u,v)' ['sch'='' <code>num=100</code>]</i></dt>
+<dd><p>Рисует параметрическую поверхность {&lsquo;<samp>x(u,v)</samp>&rsquo;, &lsquo;<samp>y(u,v)</samp>&rsquo;, &lsquo;<samp>z(u,v)</samp>&rsquo;}, где координаты &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo; меняются в диапазоне [0, 1]. Параметр <var>num</var> задает минимальное число точек по координатам для графика. См. также <a href="#surf">surf</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Nonlinear-fitting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-create-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-_0028MGL_0029-1"></a>
+<h2 class="section">8.15 Nonlinear fitting (MGL)</h2>
+
+<p>Эти команды подбирают параметры функций для наилучшей аппроксимации данных, т.е. минимизируют сумму <em>\sum_i (f(x_i, y_i, z_i) - a_i)^2/s_i^2</em>. При этом аппроксимирующая функция &lsquo;<samp>f</samp>&rsquo; может зависеть от одного аргумента &lsquo;<samp>x</samp>&rsquo; (1D случай), от двух аргументов &lsquo;<samp>x,y</samp>&rsquo; (2D случай) или от трех аргументов &lsquo;<samp>x,y,z</samp>&rsquo; (3D случай). Функция &lsquo;<samp>f</samp>&rsquo; также может зависеть от параметров. Список параметров задается строкой <var>var</var> (например, &lsquo;<samp>abcd</samp>&rsquo;). Обычно пользователь должен предоставить начальные значения параметров в переменной <var>ini</var>. Однако, при его отсутствии используются нулевые значения.
+</p>
+<p>Команды <a href="#fit">fit</a> и <a href="#fits">fits</a> не рисуют полученные массивы. Они заполняют массив <var>fit</var> по формуле &lsquo;<samp>f</samp>&rsquo; с найденными коэффициентами. При этом, координаты &lsquo;<samp>x,y,z</samp>&rsquo; равно распределены в вдоль осей координат. Число точек в <var>fit</var> выбирается максимальным из размера массива <var>fit</var> и 100. Формулу с найденными коэффициентами можно вывести с помощью команды <a href="#putsfit">putsfit</a>. См. раздел <a href="mathgl_ru_9.html#Fitting-sample">Fitting &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<p>Размерность массивов должны быть не меньше, чем число указанных массивов <var>xdat</var>, <var>ydat</var>, <var>zdat</var>. Также подбор коэффициентов будет осуществляться только вдоль указанных направлений (например, вдоль x и y если указаны только <var>xdat</var> и <var>ydat</var>). Если массив <var>xdat</var> не указан, то используется массив со значениями равно распределенными вдоль оси x.
+</p>
+<a name="index-fits"></a>
+<p><a name="fits"></a>
+</p><dl>
+<dt><a name="index-fits-1"></a><u>Команда MGL:</u> <b>fits</b><i> adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-2"></a><u>Команда MGL:</u> <b>fits</b><i> xdat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-3"></a><u>Команда MGL:</u> <b>fits</b><i> xdat ydat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-4"></a><u>Команда MGL:</u> <b>fits</b><i> xdat ydat zdat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-, y- и z-направлений для массива заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) с весовыми коэффициентами <var>sdat</var>[i,j,k].
+</p></dd></dl>
+
+<a name="index-fit"></a>
+<p><a name="fit"></a>
+</p><dl>
+<dt><a name="index-fit-1"></a><u>Команда MGL:</u> <b>fit</b><i> adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-2"></a><u>Команда MGL:</u> <b>fit</b><i> xdat adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-3"></a><u>Команда MGL:</u> <b>fit</b><i> xdat ydat adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-4"></a><u>Команда MGL:</u> <b>fit</b><i> xdat ydat zdat adat 'func' 'var' [ini=0]</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-, y- и z-направлений для массива заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) с весовыми коэффициентами равными 1.
+</p></dd></dl>
+
+<a name="index-putsfit"></a>
+<p><a name="putsfit"></a>
+</p><dl>
+<dt><a name="index-putsfit-1"></a><u>Команда MGL:</u> <b>putsfit</b><i> <code>x y</code> ['pre'='' 'fnt'='' <code>size=-1</code>]</i></dt>
+<dd><p>Печатает последнюю подобранную формулу с найденными коэффициентами в точке {<var>x</var>, <var>y</var>}. Строка <var>pre</var> будет напечатана перед формулой. Все другие параметры такие же как в <a href="#Text-printing-_0028MGL_0029">Вывод текста (MGL)</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Data-create-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-filling-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_043e_0437_0434_0430_043d_0438e-_0434_0430_043d_043d_044b_0445-_0028MGL_0029"></a>
+<h2 class="section">8.16 Создание данных (MGL)</h2>
+
+<a name="index-new"></a>
+<p><a name="new"></a>
+</p><dl>
+<dt><a name="index-new-1"></a><u>Команда MGL:</u> <b>new</b><i> dat [<code>nx=1 ny=1 nz=1</code>]</i></dt>
+<dd><p>Создает/пересоздает массив с именем <var>dat</var> данных указанного размера и заполняет его нулями. Ничего не делает при <var>nx</var>, <var>ny</var>, <var>nz</var> отрицательных или равных нулю.
+</p></dd></dl>
+
+<a name="index-var"></a>
+<p><a name="var"></a>
+</p><dl>
+<dt><a name="index-var-1"></a><u>Команда MGL:</u> <b>var</b><i> dat <code>num v1 [v2=nan]</code></i></dt>
+<dd><p>Создает одномерный массив с именем <var>dat</var> размером <code>num</code> и заполняет его равномерно в диапазоне [<var>v1</var>, <var>v2</var>]. Если <var>v2</var>=<code>nan</code>, то используется <var>v2=v1</var>. 
+</p></dd></dl>
+
+<a name="index-list"></a>
+<p><a name="list"></a>
+</p><dl>
+<dt><a name="index-list-1"></a><u>Команда MGL:</u> <b>list</b><i> dat <code>v1 ...</code></i></dt>
+<dd><p>Создает массив с именем <var>dat</var> и заполняет его числовыми значениями аргументов <code>v1 ...</code>. Команда может создавать 1d- и 2d-массивы. Для создания 2d-массивов требуется указать разделитель строк данных &lsquo;<samp>|</samp>&rsquo;. Размер массива будет [максимальное число чисел в строке * число строк]. Например, команда <code>list 1 | 2 3</code> создаст массив [1 0; 2 3]. Отмечу, что максимальное число аргументов 1000. 
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-list-2"></a><u>Команда MGL:</u> <b>list</b><i> dat d1 ...</i></dt>
+<dd><p>Создает массив с именем <var>dat</var> и заполняет его числами из массивов <code>d1 ...</code>. Команда может создавать 2d- и 3d-массивы (если аргументы 2d массивы). Младшие размерности всех массивов в аргументах должны быть равны размерности <var>d1</var>. Отмечу, что максимальное число аргументов 1000. 
+</p></dd></dl>
+
+<a name="index-copy"></a>
+<p><a name="copy"></a>
+</p><dl>
+<dt><a name="index-copy-1"></a><u>Команда MGL:</u> <b>copy</b><i> dat dat2 ['eq'='' <code>on_axis=on</code>]</i></dt>
+<dt><a name="index-copy-2"></a><u>Команда MGL:</u> <b>copy</b><i> dat <code>val</code></i></dt>
+<dd><p>Создает массив с именем <var>dat</var> и копирует в него данные из массива <var>dat2</var>. При этом, если указан параметр <var>eq</var>, то данные будут изменены по формуле аналогично команде <a href="#fill">fill</a> (для <code>on_axis=on</code>) или <a href="#modify">modify</a> (для <code>on_axis=off</code>).
+</p></dd></dl>
+
+<a name="index-idset"></a>
+<p><a name="idset"></a>
+</p><dl>
+<dt><a name="index-idset-1"></a><u>Команда MGL:</u> <b>idset</b><i> dat 'ids'</i></dt>
+<dd><p>Устанавливает символьные обозначения для колонок данных. Строка должна содержать символы &rsquo;a&rsquo;...&rsquo;z&rsquo; один на колонку (без пробелов).
+</p></dd></dl>
+
+<a name="index-info"></a>
+<p><a name="info"></a>
+</p><dl>
+<dt><a name="index-info-1"></a><u>Команда MGL:</u> <b>info</b><i> dat [<code>detail=off</code>]</i></dt>
+<dd><p>Выводит информацию о массиве (размер, максимальное/минимальное значение, моменты и пр.). При <code>detail=off</code> показывается только краткая информация.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-info-2"></a><u>Команда MGL:</u> <b>info</b><i> 'text'</i></dt>
+<dd><p>Выводит текст <var>text</var> как информацию (предупреждение).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Data-filling-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-create-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Rearrange-data-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0417_0430_043f_043e_043b_043de_043d_0438e-_0434_0430_043d_043d_044b_0445-_0028MGL_0029"></a>
+<h2 class="section">8.17 Заполнение данных (MGL)</h2>
+<a name="index-fill"></a>
+<a name="index-modify"></a>
+
+<a name="index-fill-1"></a>
+<p><a name="fill"></a>
+</p><dl>
+<dt><a name="index-fill-2"></a><u>Команда MGL:</u> <b>fill</b><i> dat v1 v2 ['dir'='x']</i></dt>
+<dd><p>Заполняет значениями равно распределенными в диапазоне [<var>v1</var>, <var>v2</var>] в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;,&lsquo;<samp>y</samp>&rsquo;,&lsquo;<samp>z</samp>&rsquo;}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fill-3"></a><u>Команда MGL:</u> <b>fill</b><i> dat 'eq' [vdat=0 wdat=0]</i></dt>
+<dd><p>Заполняет значениями вычисленными по формуле <var>eq</var>. Формула представляет собой произвольное выражение, зависящее от переменных &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Координаты &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; полагаются меняющимися в диапазоне осей координат (в отличие от <a href="#modify">modify</a>). Переменная &lsquo;<samp>u</samp>&rsquo; &ndash; значения исходного массива, переменные &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo; &ndash; значения массивов <var>vdat</var>, <var>wdat</var>. Последние могут быть опущены.
+</p></dd></dl>
+
+<a name="index-modify-1"></a>
+<p><a name="modify"></a>
+</p><dl>
+<dt><a name="index-modify-2"></a><u>Команда MGL:</u> <b>modify</b><i> dat 'eq' [<code>dim=0</code>]</i></dt>
+<dt><a name="index-modify-3"></a><u>Команда MGL:</u> <b>modify</b><i> dat 'eq' vdat [wdat=0]</i></dt>
+<dd><p>Заполняет значениями вычисленными по формуле <var>eq</var>. Формула представляет собой произвольное выражение, зависящее от переменных &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Координаты &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; полагаются меняющимися в диапазоне [0,1] (в отличие от <a href="#fill">fill</a>). Переменная &lsquo;<samp>u</samp>&rsquo; &ndash; значения исходного массива, переменные &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo; &ndash; значения массивов <var>vdat</var>, <var>wdat</var>. Последние могут быть опущены. Если указан <var>dim</var>&gt;0, то изменяются только слои &gt;=<var>dim</var>.
+</p></dd></dl>
+
+
+<a name="index-put"></a>
+<p><a name="put"></a>
+</p><dl>
+<dt><a name="index-put-1"></a><u>MGL command:</u> <b>put</b><i> dat <code>val [i=: j=: k=:]</code></i></dt>
+<dd><p>Присваивает значения (под-)массива <var>dat</var>[<var>i</var>, <var>j</var>, <var>k</var>] = <var>val</var>. Индексы <var>i</var>, <var>j</var>, <var>k</var> равные &lsquo;<samp>:</samp>&rsquo; задают значениия <var>val</var> для всего диапазона соответствующего направления(ий). Например, <code>put dat val : 0 :</code> задает <var>dat</var>[i,0,j]=<var>val</var> для i=0...(<var>dat</var>.nx-1), j=0...(<var>dat</var>.nz-1).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-put-2"></a><u>MGL command:</u> <b>put</b><i> dat vdat [<code>i=: j=: k=:</code>]</i></dt>
+<dd><p>Копирует значения из массива <var>vdat</var> в диапазон значений массива <var>dat</var>. Индексы <var>i</var>, <var>j</var>, <var>k</var> равные &lsquo;<samp>:</samp>&rsquo; задают диапазон изменения значений в соответствующих направление(ях). Младшие размерности массива <var>vdat</var> должны быть больше выбранного диапазона массива <var>dat</var>. Например, <code>put dat v : 0 :</code> присвоит <var>dat</var>[i,0,j]=<var>vdat</var>.ny&gt;<var>dat</var>.nz ? <var>vdat</var>[i,j] : <var>vdat</var>[i], где i=0...(<var>dat</var>.nx-1), j=0...(<var>dat</var>.nz-1) и условие vdat.nx&gt;=dat.nx выполнено.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Rearrange-data-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-filling-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#File-I_002fO-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_0437_043ce_043de_043d_0438e-_0440_0430_0437_043ce_0440_043e_0432-_0434_0430_043d_043d_044b_0445-_0028MGL_0029"></a>
+<h2 class="section">8.18 Изменение размеров данных (MGL)</h2>
+
+<a name="index-rearrange"></a>
+<p><a name="rearrange"></a>
+</p><dl>
+<dt><a name="index-rearrange-1"></a><u>Команда MGL:</u> <b>rearrange</b><i> dat <code>mx [my=0 mz=0]</code></i></dt>
+<dd><p>Изменяет размерность данных без изменения самого массива данных, так что результирующий массив <var>mx</var>*<var>my</var>*<var>mz</var> &lt; nx*ny*nz. Если один из параметров <var>my</var> или <var>mz</var> ноль, то он будет выбран оптимальным образом. Например, если <var>my</var>=0, то будет <var>my</var>=nx*ny*nz/<var>mx</var> и <var>mz</var>=1.
+</p></dd></dl>
+
+<a name="index-extend"></a>
+<p><a name="extend"></a>
+</p><dl>
+<dt><a name="index-extend-1"></a><u>Команда MGL:</u> <b>extend</b><i> dat <code>n1 [n2=0]</code></i></dt>
+<dd><p>Увеличивает размер данных путем вставки (|<var>n1</var>|+1) новых срезов после (для <var>n1</var>&gt;0) или перед (для <var>n1</var>&lt;0) существующими данными. Можно добавить сразу 2 размерности для 1d массива, используя второй параметр <var>n2</var>. Данные в новые срезы будут скопированы из существующих. Например, для <var>n1</var>&gt;0 новый массив будет
+a_ij^new = a_i^old where j=0...<var>n1</var>. Соответственно, для <var>n1</var>&lt;0 новый массив будет a_ij^new = a_j^old, где i=0...|<var>n1</var>|.
+</p></dd></dl>
+
+<a name="index-transpose"></a>
+<p><a name="transpose"></a>
+</p><dl>
+<dt><a name="index-transpose-1"></a><u>Команда MGL:</u> <b>transpose</b><i> dat ['dim'='yxz']</i></dt>
+<dd><p>Транспонирует (меняет порядок размерностей) массив данных. Новый порядок размерностей задается строкой <var>dim</var>.
+</p></dd></dl>
+
+<a name="index-squeeze"></a>
+<p><a name="squeeze"></a>
+</p><dl>
+<dt><a name="index-squeeze-1"></a><u>Команда MGL:</u> <b>squeeze</b><i> dat <code>rx [ry=1 rz=1 sm=off]</code></i></dt>
+<dd><p>Уменьшает размер данных путем удаления элементов с индексами не кратными <var>rx</var>, <var>ry</var>, <var>rz</var> соответственно. Параметр <var>smooth</var> задает использовать сглаживания
+(т.е. out[i]=\sum_{j=i,i+r} a[j]/r) или нет (т.е. out[i]=a[j*r]).
+</p></dd></dl>
+
+<a name="index-crop"></a>
+<p><a name="crop"></a>
+</p><dl>
+<dt><a name="index-crop-1"></a><u>Команда MGL:</u> <b>crop</b><i> dat <code>n1 n2</code> 'dir'</i></dt>
+<dd><p>Обрезает границы данных при <var>i</var>&lt;<var>n1</var> и <var>i</var>&gt;<var>n2</var> (при <var>n2</var>&gt;0) или <var>i</var>&gt;<code>n[xyz]</code>-<var>n2</var> (при <var>n2</var>&lt;=0) вдоль направления <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-delete"></a>
+<p><a name="delete"></a>
+</p><dl>
+<dt><a name="index-delete-1"></a><u>Команда MGL:</u> <b>delete</b><i> dat</i></dt>
+<dd><p>Удаляет массив <var>dat</var> и освобождает использованную память. Может быть полезно для больших неиспользуемых массивов.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-delete-2"></a><u>Команда MGL:</u> <b>delete</b><i> dat 'dir' <code>[pos=off num=0]</code></i></dt>
+<dd><p>Удаляет <var>num</var> срезов вдоль направления <var>dir</var> с позиции <var>pos</var>.
+</p></dd></dl>
+
+<a name="index-insert"></a>
+<p><a name="insert"></a>
+</p><dl>
+<dt><a name="index-insert-1"></a><u>Команда MGL:</u> <b>insert</b><i> dat 'dir' <code>[pos=off num=0]</code></i></dt>
+<dd><p>Вставляет <var>num</var> срезов вдоль направления <var>dir</var> с позиции <var>pos</var> и заполняет их нулями.
+</p></dd></dl>
+
+<hr size="6">
+<a name="File-I_002fO-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Rearrange-data-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Make-another-data-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0427_0442e_043d_0438e_002f_0441_043e_0445_0440_0430_043de_043d_0438e-_0434_0430_043d_043d_044b_0445-_0028MGL_0029"></a>
+<h2 class="section">8.19 Чтение/сохранение данных (MGL)</h2>
+
+<a name="index-read"></a>
+<p><a name="read"></a>
+</p><dl>
+<dt><a name="index-read-1"></a><u>Команда MGL:</u> <b>read</b><i> dat 'fname'</i></dt>
+<dd><p>Читает данные из текстового файла с разделителями символом пробела/табуляции с автоматическим определением размера массива. Двойной перевод строки начинает новый срез данных (по направлению z).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-read-2"></a><u>Команда MGL:</u> <b>read</b><i> dat 'fname' <code>mx [my=1 mz=1]</code></i></dt>
+<dd><p>Читает данные из текстового файла с заданными размерами. Ничего не делается если параметры <var>mx</var>, <var>my</var> или <var>mz</var> равны нулю или отрицательны.
+</p></dd></dl>
+
+<a name="index-readmat"></a>
+<p><a name="readmat"></a>
+</p><dl>
+<dt><a name="index-readmat-1"></a><u>Команда MGL:</u> <b>readmat</b><i> dat 'fname' [<code>dim=2</code>]</i></dt>
+<dd><p>Читает данные из текстового файла с размерами, указанными в первых <var>dim</var> числах файла. При этом переменная <var>dim</var> задает размерность (1d, 2d, 3d) данных.
+</p></dd></dl>
+
+<a name="index-readall"></a>
+<p><a name="readall"></a>
+</p><dl>
+<dt><a name="index-readall-1"></a><u>Команда MGL:</u> <b>readall</b><i> dat 'templ' <code>v1 v2 [dv=1 slice=off]</code></i></dt>
+<dd><p>Объединяет данные из нескольких текстовых файлов. Имена файлов определяются вызовом функции <code>sprintf(fname,templ,val);</code>, где <var>val</var> меняется от <var>v1</var> до <var>v2</var> с шагом <var>dv</var>. Данные загружаются один за другим в один и тот же срез данных (при <var>slice</var>=<code>off</code>) или срез-за-срезом (при <var>slice</var>=<code>on</code>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-readall-2"></a><u>Команда MGL:</u> <b>readall</b><i> dat 'templ' <code>[slice=off]</code></i></dt>
+<dd><p>Объединяет данные из нескольких текстовых файлов, чьи имена удовлетворяют шаблону <var>templ</var> (например, <var>templ</var>=<code>&quot;t_*.dat&quot;</code>). Данные загружаются один за другим в один и тот же срез данных (при <var>slice</var>=<code>off</code>) или срез-за-срезом (при <var>slice</var>=<code>on</code>).
+</p></dd></dl>
+
+<a name="index-save"></a>
+<p><a name="save"></a>
+</p><dl>
+<dt><a name="index-save-1"></a><u>Команда MGL:</u> <b>save</b><i> dat 'fname'</i></dt>
+<dd><p>Сохраняет массив данных в текстовый файл.
+</p></dd></dl>
+
+<a name="index-readhdf"></a>
+<p><a name="readhdf"></a>
+</p><dl>
+<dt><a name="index-readhdf-1"></a><u>Команда MGL:</u> <b>readhdf</b><i> dat 'fname' 'dname'</i></dt>
+<dd><p>Читает массив с именем <var>dname</var> из HDF5 или HDF4 файла <var>fname</var>.
+</p></dd></dl>
+
+<a name="index-savehdf"></a>
+<p><a name="savehdf"></a>
+</p><dl>
+<dt><a name="index-savehdf-1"></a><u>Команда MGL:</u> <b>savehdf</b><i> dat 'fname' 'dname'</i></dt>
+<dd><p>Сохраняет массив под именем <var>dname</var> в HDF5 или HDF4 файл <var>fname</var>.
+</p></dd></dl>
+
+<a name="index-import"></a>
+<p><a name="import"></a>
+</p><dl>
+<dt><a name="index-import-1"></a><u>Команда MGL:</u> <b>import</b><i> dat 'fname' 'sch' [<code>v1=0 v2=1</code>]</i></dt>
+<dd><p>Читает данные из растрового файла. RGB значения пикселов преобразуются в число в диапазоне [<var>v1</var>, <var>v2</var>] используя цветовую схему <var>sch</var> (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>).
+</p></dd></dl>
+
+<a name="index-export"></a>
+<p><a name="export"></a>
+</p><dl>
+<dt><a name="index-export-1"></a><u>Команда MGL:</u> <b>export</b><i> dat 'fname' 'sch' [<code>v1=0 v2=0</code>]</i></dt>
+<dd><p>Сохраняет данные в растровый файл. Числовые значения, нормированные в диапазон [<var>v1</var>, <var>v2</var>], преобразуются в RGB значения пикселов, используя цветовую схему <var>sch</var> (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>). Если <var>v1</var>&gt;=<var>v2</var>, то значения <var>v1</var>, <var>v2</var> определяются автоматически как минимальное и максимальное значение данных.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Make-another-data-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#File-I_002fO-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Change-data-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_043e_0437_0434_0430_043d_0438e-_043d_043e_0432_044b_0445-_0434_0430_043d_043d_044b_0445-_0028MGL_0029"></a>
+<h2 class="section">8.20 Создание новых данных (MGL)</h2>
+
+<a name="index-combine"></a>
+<p><a name="combine"></a>
+</p><dl>
+<dt><a name="index-combine-1"></a><u>Команда MGL:</u> <b>combine</b><i> res adat bdat</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> прямое произведение массивов (наподобие, res[i,j] = adat[i]*bdat[j] и т.д.).
+</p></dd></dl>
+
+<a name="index-evaluate"></a>
+<p><a name="evaluate"></a>
+</p><dl>
+<dt><a name="index-evaluate-1"></a><u>Команда MGL:</u> <b>evaluate</b><i> res dat idat [<code>norm=on</code>]</i></dt>
+<dt><a name="index-evaluate-2"></a><u>Команда MGL:</u> <b>evaluate</b><i> res dat idat jdat [<code>norm=on</code>]</i></dt>
+<dt><a name="index-evaluate-3"></a><u>Команда MGL:</u> <b>evaluate</b><i> res dat idat jdat kdat [<code>norm=on</code>]</i></dt>
+<dd><p>Возвращает массив данных <var>res</var>, полученный в результате интерполяции исходного массива в точках других массивов (например, res[i,j]=dat[idat[i,j],jdat[i,j]]). Размеры массивов <var>idat</var>, <var>jdat</var>, <var>kdat</var> должны совпадать. Координаты в <var>idat</var>, <var>jdat</var>, <var>kdat</var> полагаются нормированными в диапазон [0,1] (при <var>norm</var>=<code>on</code>) или в диапазоны [0,nx], [0,ny], [0,nz] соответственно.
+</p></dd></dl>
+
+<a name="index-hist"></a>
+<p><a name="hist"></a>
+</p><dl>
+<dt><a name="index-hist-1"></a><u>Команда MGL:</u> <b>hist</b><i> res dat <code>num v1 v2 [nsub=0]</code></i></dt>
+<dt><a name="index-hist-2"></a><u>Команда MGL:</u> <b>hist</b><i> res dat wdat <code>num v1 v2 [nsub=0]</code></i></dt>
+<dd><p>Возвращает распределение (гистограмму) <var>res</var> из <var>num</var> точек от значений массива <var>dat</var> в диапазоне [<var>v1</var>, <var>v2</var>]. Массив <var>wdat</var> задает веса элементов (все веса равны 1 если <var>wdat</var> не указан). Параметр <var>nsub</var> задает число дополнительных точек интерполяции (для сглаживания получившейся гистограммы).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-hist-3"></a><u>Команда MGL:</u> <b>hist</b><i> res xdat adat</i></dt>
+<dt><a name="index-hist-4"></a><u>Команда MGL:</u> <b>hist</b><i> res xdat ydat adat</i></dt>
+<dt><a name="index-hist-5"></a><u>Команда MGL:</u> <b>hist</b><i> res xdat ydat zdat adat</i></dt>
+<dd><p>Возвращает распределение (гистограмму) <var>res</var> от значений массива <var>adat</var>, параметрически зависящего от координат {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} в диапазоне осей координат. Массив <var>adat</var> играет роль веса точки. Число точек в результате <var>res</var> &ndash; максимум из размера <var>res</var> и 100.
+</p></dd></dl>
+
+
+<a name="index-momentum"></a>
+<p><a name="momentum"></a>
+</p><dl>
+<dt><a name="index-momentum-1"></a><u>Команда MGL:</u> <b>momentum</b><i> res dat 'how' ['dir'='z']</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> момент (1d массив) данных <var>dat</var> вдоль направления <var>dir</var>. Строка <var>how</var> определяет тип момента. Момент определяется как
+res_k = \sum_ij how(x_i,y_j,z_k) dat_ij/ \sum_ij a_ij
+если <var>dir</var>=&lsquo;<samp>z</samp>&rsquo; и т.д. Координаты &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; &ndash; индексы массива в диапазоне [0,1].
+</p></dd></dl>
+
+<a name="index-sum"></a>
+<p><a name="sum"></a>
+</p><dl>
+<dt><a name="index-sum-1"></a><u>Команда MGL:</u> <b>sum</b><i> res dat 'dir'</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> результат суммирования <var>dat</var> вдоль направления(ий) <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-max"></a>
+<p><a name="max"></a>
+</p><dl>
+<dt><a name="index-max-1"></a><u>Команда MGL:</u> <b>max</b><i> res dat 'dir'</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> максимальное значение <var>dat</var> вдоль направления(ий) <var>dir</var>.
+Gets array which is the maximal data values in given direction or direction(s).
+</p></dd></dl>
+
+<a name="index-min"></a>
+<p><a name="min"></a>
+</p><dl>
+<dt><a name="index-min-1"></a><u>Команда MGL:</u> <b>min</b><i> res dat 'dir'</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> минимальное значение <var>dat</var> вдоль направления(ий) <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-resize"></a>
+<p><a name="resize"></a>
+</p><dl>
+<dt><a name="index-resize-1"></a><u>Команда MGL:</u> <b>resize</b><i> res dat <code>mx [my=1 mz=1]</code></i></dt>
+<dd><p>Возвращает массив данных <var>res</var> размером <var>mx</var>, <var>my</var>, <var>mz</var> со значениями полученными интерполяцией значений массива <var>dat</var>.
+</p></dd></dl>
+
+<a name="index-subdata"></a>
+<p><a name="subdata"></a>
+</p><dl>
+<dt><a name="index-subdata-1"></a><u>Команда MGL:</u> <b>subdata</b><i> res dat <code>xx [yy=: zz=:]</code></i></dt>
+<dd><p>Возвращает в <var>res</var> подмассив массива данных <var>dat</var> с фиксированными значениями индексов с положительными значениями. Например, <code>subdata a b : 2</code> выделяет третью строку (индексы начинаются с нуля), <code>subdata a b 4 :</code> выделяет 5-ую колонку, <code>subdata a b : : 3</code> выделяет 4-ый срез и т.д.
+</p></dd></dl>
+
+<a name="index-trace"></a>
+<p><a name="trace"></a>
+</p><dl>
+<dt><a name="index-trace-1"></a><u>Команда MGL:</u> <b>trace</b><i> res dat</i></dt>
+<dd><p>Возвращает массив <var>ref</var> диагональных элементов <var>dat</var>[i,i] (для 2D данных) или <var>dat</var>[i,i,i] (для 3D данных) где i=0...nx-1. В 1D случае возвращается сам массив данных <var>dat</var>. Размеры массива данных должен быть <var>dat</var>.ny, <var>dat</var>.nz &gt;= <var>dat</var>.nx или <var>dat</var>.ny, <var>dat</var>.nz = 1.
+</p></dd></dl>
+
+<a name="index-transform"></a>
+<p><a name="transform"></a>
+</p><dl>
+<dt><a name="index-transform-1"></a><u>Команда MGL:</u> <b>transform</b><i> dat 'type' real imag</i></dt>
+<dd><p>Выполняет интегральное преобразование комплексных данных <var>real</var>, <var>imag</var> в выбранном направлении и возвращает модуль результата в <var>res</var>. Порядок и тип преобразований задается строкой <var>type</var>: первый символ для x-направления, второй для y-направления, третий для z-направления. Возможные символы: &lsquo;<samp>f</samp>&rsquo; &ndash; прямое преобразование Фурье, &lsquo;<samp>i</samp>&rsquo; &ndash; обратное преобразование Фурье, &lsquo;<samp>s</samp>&rsquo; &ndash; синус преобразование, &lsquo;<samp>c</samp>&rsquo; &ndash; косинус преобразование, &lsquo;<samp>h</samp>&rsquo; &ndash; преобразование Ханкеля, &lsquo;<samp>n</samp>&rsquo; или &lsquo;<samp> </samp>&rsquo; &ndash; нет преобразования.
+</p></dd></dl>
+
+<a name="index-transforma"></a>
+<p><a name="transforma"></a>
+</p><dl>
+<dt><a name="index-transforma-1"></a><u>Команда MGL:</u> <b>transforma</b><i> dat 'type' ampl phase</i></dt>
+<dd><p>Аналогично предыдущему с заданными амплитудой <var>ampl</var> и фазой <var>phase</var> комплексных чисел.
+</p></dd></dl>
+
+<a name="index-stfad"></a>
+<p><a name="stfad"></a>
+</p><dl>
+<dt><a name="index-stfad-1"></a><u>Команда MGL:</u> <b>stfad</b><i> res real imag <code>dn</code> ['dir'='x']</i></dt>
+<dd><p>Выполняет оконное преобразование Фурье длиной <var>dn</var> для комплексных данных <var>real</var>, <var>imag</var> и возвращает модуль результата в <var>res</var>. Например, для <var>dir</var>=&lsquo;<samp>x</samp>&rsquo; результат будет иметь размер {int(nx/dn), dn, ny} и будет равен <em>res[i,j,k]=|\sum_d^dn exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn</em>.
+</p></dd></dl>
+
+<a name="index-pde"></a>
+<p><a name="pde"></a>
+</p><dl>
+<dt><a name="index-pde-1"></a><u>Команда MGL:</u> <b>pde</b><i> res 'ham' ini_re ini_im [<code>dz=0.1 k0=100</code>]</i></dt>
+<dd><p>Решает уравнение в частных производных du/dz = i*k0*<var>ham</var>(p,q,x,y,z,|u|)[u], где p=-i/k0*d/dx, q=-i/k0*d/dy &ndash; псевдо-дифференциальные операторы. Параметры <var>ini_re</var>, <var>ini_im</var> задают начальное распределение поля. Координаты в уравнении и в решении полагаются в диапазоне осей координат. Замечу, что внутри этот диапазон увеличивается в 3/2 раза для уменьшения отражения от границ расчетного интервала. Параметр <var>dz</var> задает шаг по эволюционной координате z. В данный момент использован упрощенный алгоритм, когда все &ldquo;смешанные&rdquo; члена (типа &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) исключаются. Например, в 2D случае это функции типа <em>ham = f(p,z) + g(x,z,u)</em>. При этом допускаются коммутирующие комбинации (типа &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy). Переменная &lsquo;<samp>u</samp>&rsquo; используется для обозначения амплитуды поля |u|. Это позволяет решать нелинейные задачи &ndash; например, нелинейное уравнение Шредингера <code>ham='p^2+q^2-u^2'</code>. Также можно указать мнимую часть для поглощения (типа <code>ham = 'p^2+i*x*(x&gt;0)'</code>), но только если зависимость от &lsquo;<samp>i</samp>&rsquo; линейная, т.е. <em>ham = hre+i*him</em>. См. раздел <a href="mathgl_ru_9.html#PDE-sample">PDE &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-ray"></a>
+<p><a name="ray"></a>
+</p><dl>
+<dt><a name="index-ray-1"></a><u>Команда MGL:</u> <b>ray</b><i> res 'ham' <code>x0 y0 z0 p0 q0 v0 [dt=0.1 tmax=10]</code></i></dt>
+<dd><p>Решает систему геометрооптических уравнений d<em>r</em>/dt = d <var>ham</var>/d<em>p</em>, d<em>p</em>/dt = -d <var>ham</var>/d<em>r</em>. Это гамильтоновы уравнения для траектории частицы в 3D случае. Гамильтониан <var>ham</var> может зависеть от координат &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, импульсов &lsquo;<samp>p</samp>&rsquo;=px, &lsquo;<samp>q</samp>&rsquo;=py, &lsquo;<samp>v</samp>&rsquo;=pz и времени &lsquo;<samp>t</samp>&rsquo;: <em>ham = H(x,y,z,p,q,v,t)</em>. Начальная точка (при <code>t=0</code>) задается переменными {<var>x0</var>, <var>y0</var>, <var>z0</var>, <var>p0</var>, <var>q0</var>, <var>v0</var>}. Параметры <var>dt</var> и <var>tmax</var> задают шаг и максимальное время интегрирования. Результат <var>res</var> &ndash; массив {x,y,z,p,q,v,t} с размером {7 * int(<var>tmax</var>/<var>dt</var>+1) }. См. раздел <a href="mathgl_ru_9.html#Beam-tracing-sample">Beam tracing &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-qo2d"></a>
+<p><a name="qo2d"></a>
+</p><dl>
+<dt><a name="index-qo2d-1"></a><u>Команда MGL:</u> <b>qo2d</b><i> res 'ham' ini_re ini_im ray [<code>r=1 k0=100</code> xx=0 yy=0]</i></dt>
+<dd><p>Решает уравнение в частных производных du/dt = i*k0*<var>ham</var>(p,q,x,y,|u|)[u] в сопровождающей системе координат, где p=-i/k0*d/dx, q=-i/k0*d/dy &ndash; псевдо-дифференциальные операторы. Параметры <var>ini_re</var>, <var>ini_im</var> задают начальное распределение поля. Параметр <var>ray</var> задает опорный луч для сопровождающей системы координат. Можно использовать луч найденный с помощью <code>ray</code>. Опорный луч должен быть достаточно гладкий, чтобы система координат была однозначной и для исключения ошибок интегрирования. Если массивы <var>xx</var> и <var>yy</var> указаны, то в них записываются декартовы координаты для каждой точки найденного решения. См. также <a href="#pde">pde</a>. См. раздел <a href="mathgl_ru_9.html#Beam-tracing-sample">Beam tracing &ndash; пример использования</a>, для примеров кода и графика. 
+</p></dd></dl>
+
+<a name="index-jacobian"></a>
+<p><a name="jacobian"></a>
+</p><dl>
+<dt><a name="index-jacobian-1"></a><u>Команда MGL:</u> <b>jacobian</b><i> res xdat ydat [zdat=0]</i></dt>
+<dd><p>Вычисляет якобиан преобразования {i,j,k} в {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>}, где координаты {i,j,k} полагаются нормированными в интервал [0,1]. Якобиан находится по формуле det||<em>dr_\alpha/d\xi_\beta</em>||, где <em>r</em>={<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} и <em>\xi</em>={i,j,k}. Все размерности всех массивов должны быть одинаковы. Данные должны быть трехмерными если указаны все 3 массива {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} или двумерными если только 2 массива {<var>xdat</var>,<var>ydat</var>}.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Change-data-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Make-another-data-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Operators-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_0437_043ce_043de_043d_0438e-_0434_0430_043d_043d_044b_0445-_0028MGL_0029"></a>
+<h2 class="section">8.21 Изменение данных (MGL)</h2>
+
+<p>Эти команды изменяют данные вдоль заданного направления(ий) типа например дифференцирования, интегрирования и т.д. Направление указывается строкой <var>dir</var>, которая может содержать символы &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; и/или &lsquo;<samp>z</samp>&rsquo;, вдоль которых изменения будут применены.
+</p>
+<a name="index-cumsum"></a>
+<p><a name="cumsum"></a>
+</p><dl>
+<dt><a name="index-cumsum-1"></a><u>Команда MGL:</u> <b>cumsum</b><i> dat 'dir'</i></dt>
+<dd><p>Суммирует с накоплением в выбранном направлении(ях).
+</p></dd></dl>
+<a name="index-integrate"></a>
+<p><a name="integrate"></a>
+</p><dl>
+<dt><a name="index-integrate-1"></a><u>Команда MGL:</u> <b>integrate</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет интегрирование (подобно суммированию с накоплением) в выбранном направлении(ях).
+</p></dd></dl>
+<a name="index-diff"></a>
+<p><a name="diff"></a>
+</p><dl>
+<dt><a name="index-diff-1"></a><u>Команда MGL:</u> <b>diff</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет дифференцирование в выбранном направлении(ях).
+</p></dd></dl>
+<dl>
+<dt><a name="index-diff-2"></a><u>Команда MGL:</u> <b>diff</b><i> dat xdat ydat [zdat=0]</i></dt>
+<dd><p>Выполняет дифференцирование данных <var>dat</var>, параметрически зависящих от координат, в направлении <var>xdat</var> с <var>ydat</var>, <var>zdat</var>=constant. Параметр <var>zdat</var> может быть опущен, что соответствует 2D случаю. Используются следующие формулы (2D случай): <em>da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j)</em>, где <em>a_i=da/di, a_j=da/dj</em> обозначает дифференцирование вдоль 1-ой и 2-ой размерности. Похожие формулы используются и в 3D случае. Порядок аргументов можно менять &ndash; например, если данные a(i,j) зависят от координат {x(i,j), y(i,j)}, то обычная производная по &lsquo;<samp>x</samp>&rsquo; будет равна <code>diff a x y</code>, а обычная производная по &lsquo;<samp>y</samp>&rsquo; будет равна <code>diff a y x</code>.
+</p></dd></dl>
+
+<a name="index-diff2"></a>
+<p><a name="diff2"></a>
+</p><dl>
+<dt><a name="index-diff2-1"></a><u>Команда MGL:</u> <b>diff2</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет двойное дифференцирование (как в операторе Лапласа) в выбранном направлении(ях).
+</p></dd></dl>
+
+<a name="index-sinfft"></a>
+<p><a name="sinfft"></a>
+</p><dl>
+<dt><a name="index-sinfft-1"></a><u>Команда MGL:</u> <b>sinfft</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет синус преобразование в выбранном направлении(ях). Синус преобразование есть <em>\sum a_i \sin(k i)</em>.
+</p></dd></dl>
+<a name="index-cosfft"></a>
+<p><a name="cosfft"></a>
+</p><dl>
+<dt><a name="index-cosfft-1"></a><u>Команда MGL:</u> <b>cosfft</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет косинус преобразование в выбранном направлении(ях). Синус преобразование есть <em>\sum a_i \cos(k i)</em>.
+</p></dd></dl>
+<a name="index-hankel"></a>
+<p><a name="hankel"></a>
+</p><dl>
+<dt><a name="index-hankel-1"></a><u>Команда MGL:</u> <b>hankel</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет преобразование Ханкеля в выбранном направлении(ях). Преобразование Ханкеля есть <em>\sum a_i J_0(k i)</em>.
+</p></dd></dl>
+
+
+<a name="index-swap"></a>
+<p><a name="swap"></a>
+</p><dl>
+<dt><a name="index-swap-1"></a><u>Команда MGL:</u> <b>swap</b><i> dat 'dir'</i></dt>
+<dd><p>Меняет местами левую и правую части данных в выбранном направлении(ях). Полезно для отображения результата FFT.
+</p></dd></dl>
+<a name="index-roll"></a>
+<p><a name="roll"></a>
+</p><dl>
+<dt><a name="index-roll-1"></a><u>Команда MGL:</u> <b>roll</b><i> dat 'dir' num</i></dt>
+<dd><p>Сдвигает данные на <var>num</var> ячеек в выбранном направлении(ях). Соответствует замене индекса на <var>i</var>-&gt;(<var>i</var>+<var>num</var>)%<var>n</var>.
+</p></dd></dl>
+
+<a name="index-mirror"></a>
+<p><a name="mirror"></a>
+</p><dl>
+<dt><a name="index-mirror-1"></a><u>Команда MGL:</u> <b>mirror</b><i> dat 'dir'</i></dt>
+<dd><p>Отражает данные в выбранном направлении(ях). Соответствует замене индекса на <var>i</var>-&gt;<var>n</var>-<var>i</var>.
+</p></dd></dl>
+
+<a name="index-sew"></a>
+<p><a name="sew"></a>
+</p><dl>
+<dt><a name="index-sew-1"></a><u>Команда MGL:</u> <b>sew</b><i> dat ['dir'='xyz' <code>da=2*pi</code>]</i></dt>
+<dd><p>Удаляет скачки данных (например, скачки фазы после обратных тригонометрических функций) с периодом <var>da</var> в выбранном направлении(ях).
+</p></dd></dl>
+
+<a name="index-smooth"></a>
+<p><a name="smooth"></a>
+</p><dl>
+<dt><a name="index-smooth-1"></a><u>Команда MGL:</u> <b>smooth</b><i> data <code>type</code> ['dir'='xyz']</i></dt>
+<dd><p>Сглаживает данные в выбранном направлении(ях) методом <var>type</var>. Сейчас поддерживаются 4 метода: <code>0</code> ничего не делает, <code>1</code> линейное усреднение по 3 точкам, <code>2</code> линейное усреднение по 5 точкам, <code>3</code> квадратичное усреднение по 5 точкам.
+</p></dd></dl>
+
+<a name="index-envelop"></a>
+<p><a name="envelop"></a>
+</p><dl>
+<dt><a name="index-envelop-1"></a><u>Команда MGL:</u> <b>envelop</b><i> dat ['dir'='x']</i></dt>
+<dd><p>Находит огибающую данных в выбранном направлении. Только одно направление может быть выбрано за раз.
+</p></dd></dl>
+
+<a name="index-normsl"></a>
+<p><a name="normsl"></a>
+</p><dl>
+<dt><a name="index-normsl-1"></a><u>Команда MGL:</u> <b>normsl</b><i> dat <code>v1 v2</code> ['dir'='z' <code>keep=on sym=off</code>]</i></dt>
+<dd><p>Нормирует данные срез-за-срезом в выбранном направлении <var>dir</var> в интервал [<var>v1</var>,<var>v2</var>]. Если <var>sym</var>=<code>on</code>, то используется симметричный интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Если <var>keep</var>=<code>on</code>, то максимальное значение k-го среза ограничено величиной
+<em>\sqrt\sum a_ij(k)/\sum a_ij(0)</em>.
+</p></dd></dl>
+
+<a name="index-norm"></a>
+<p><a name="norm"></a>
+</p><dl>
+<dt><a name="index-norm-1"></a><u>Команда MGL:</u> <b>norm</b><i> dat <code>v1 v2 [sym=off dim=0]</code></i></dt>
+<dd><p>Нормирует данные в интервал [<var>v1</var>,<var>v2</var>]. Если <var>sym</var>=<code>on</code>, то используется симметричный интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Изменения применяются только к срезам &gt;=<var>dim</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Operators-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Change-data-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Program-flow-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_043fe_0440_0430_0442_043e_0440_044b-_0028MGL_0029"></a>
+<h2 class="section">8.22 Операторы (MGL)</h2>
+
+<a name="index-multo"></a>
+<p><a name="multo"></a>
+</p><dl>
+<dt><a name="index-multo-1"></a><u>Команда MGL:</u> <b>multo</b><i> dat dat2</i></dt>
+<dd><p>Поэлементно умножает массив <var>dat</var> на <var>dat2</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-multo-2"></a><u>Команда MGL:</u> <b>multo</b><i> dat <code>val</code></i></dt>
+<dd><p>Умножает каждый элемент на число.
+</p></dd></dl>
+
+<a name="index-divto"></a>
+<p><a name="divto"></a>
+</p><dl>
+<dt><a name="index-divto-1"></a><u>Команда MGL:</u> <b>divto</b><i> dat dat2</i></dt>
+<dd><p>Поэлементно делит массив <var>dat</var> на <var>dat2</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-divto-2"></a><u>Команда MGL:</u> <b>divto</b><i> dat <code>val</code></i></dt>
+<dd><p>Делит каждый элемент на число.
+</p></dd></dl>
+
+<a name="index-addto"></a>
+<p><a name="addto"></a>
+</p><dl>
+<dt><a name="index-addto-1"></a><u>Команда MGL:</u> <b>addto</b><i> dat dat2</i></dt>
+<dd><p>Поэлементно прибавляет <var>dat2</var> к массиву <var>dat</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-addto-2"></a><u>Команда MGL:</u> <b>addto</b><i> dat <code>val</code></i></dt>
+<dd><p>Прибавляет число к каждому элементу.
+</p></dd></dl>
+
+<a name="index-subto"></a>
+<p><a name="subto"></a>
+</p><dl>
+<dt><a name="index-subto-1"></a><u>Команда MGL:</u> <b>subto</b><i> dat dat2</i></dt>
+<dd><p>Поэлементно вычитает <var>dat2</var> из массива <var>dat</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-subto-2"></a><u>Команда MGL:</u> <b>subto</b><i> dat <code>val</code></i></dt>
+<dd><p>Вычитает число из каждого элемента.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Program-flow-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Operators-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Command-options-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043eg_0440_0430_043c_043c_0438_0440_043e_0432_0430_043d_0438e-_0028MGL_0029"></a>
+<h2 class="section">8.23 Программирование (MGL)</h2>
+
+<p>Эти команды управляют порядком выполнения других команд (условия, циклы, подпрограммы), (пере-)определяют аргументы скрипта и пр.
+</p>
+<a name="index-chdir"></a>
+<p><a name="chdir"></a>
+</p><dl>
+<dt><a name="index-chdir-1"></a><u>Команда MGL:</u> <b>chdir</b><i> 'path'</i></dt>
+<dd><p>Переходит в папку <var>path</var>.
+</p></dd></dl>
+
+<a name="index-define"></a>
+<p><a name="define"></a>
+</p><dl>
+<dt><a name="index-define-1"></a><u>Команда MGL:</u> <b>define</b><i> $N smth</i></dt>
+<dd><p>Задает <var>N</var>-ый аргумент скрипта равным <var>smth</var>. Отмечу, что <var>smth</var> используется как есть (с символами &lsquo;<samp>'</samp>&rsquo; если присутствуют). Выполняется только подстановка других макроопределений $0...$9, $a...$z. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<dl>
+<dt><a name="index-define-2"></a><u>Команда MGL:</u> <b>define</b><i> name smth</i></dt>
+<dd><p>Определяет константу (скаляр) с именем <code>name</code> и числовым значением <code>smth</code>. Позднее она может быть использована как обычное число.
+</p></dd></dl>
+<a name="index-defchr"></a>
+<p><a name="defchr"></a>
+</p><dl>
+<dt><a name="index-defchr-1"></a><u>Команда MGL:</u> <b>defchr</b><i> $N smth</i></dt>
+<dd><p>Задает <var>N</var>-ый аргумент скрипта равным символу с UTF кодом <var>smth</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<a name="index-defnum"></a>
+<p><a name="defnum"></a>
+</p><dl>
+<dt><a name="index-defnum-1"></a><u>Команда MGL:</u> <b>defnum</b><i> $N smth</i></dt>
+<dd><p>Задает <var>N</var>-ый аргумент скрипта равным числовому значению <var>smth</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<a name="index-defpal"></a>
+<p><a name="defpal"></a>
+</p><dl>
+<dt><a name="index-defpal-1"></a><u>Команда MGL:</u> <b>defpal</b><i> $N smth</i></dt>
+<dd><p>Задает <var>N</var>-ый аргумент скрипта равным символу палитры с индексом, найденным из <var>smth</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+
+<a name="index-call"></a>
+<p><a name="call"></a>
+</p><dl>
+<dt><a name="index-call-1"></a><u>Команда MGL:</u> <b>call</b><i> 'fname' [ARG1 ARG2 ... ARG9]</i></dt>
+<dd><p>Переходит к выполнению (вызывает) подпрограммы <var>fname</var> (или внешнего скрипта, если функция не была найдена). Опциональные аргументы передаются в подпрограмму. См. также <a href="#func">func</a>.
+</p></dd></dl>
+<a name="index-func"></a>
+<p><a name="func"></a>
+</p><dl>
+<dt><a name="index-func-1"></a><u>Команда MGL:</u> <b>func</b><i> 'fname' [narg=0]</i></dt>
+<dd><p>Определяет подпрограмму с именем <var>fname</var> и задает число требуемых аргументов. Аргументы будут помещены в параметры скрипта $1, $2, ... $9. Отмечу, что выполнение основной программы должно быть остановлено до начала определений подпрограмм. См. также <a href="#stop">stop</a>,  <a href="#return">return</a>.
+</p></dd></dl>
+<a name="index-return"></a>
+<p><a name="return"></a>
+</p><dl>
+<dt><a name="index-return-1"></a><u>Команда MGL:</u> <b>return</b></dt>
+<dd><p>Возвращается из подпрограммы.
+</p></dd></dl>
+
+
+<a name="index-if"></a>
+<p><a name="if"></a>
+</p><dl>
+<dt><a name="index-if-1"></a><u>Команда MGL:</u> <b>if</b><i> dat 'cond'</i></dt>
+<dd><p>Начинает блок команд, выполняемый если каждый элемент <var>dat</var> удовлетворяет условию <var>cond</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-if-2"></a><u>Команда MGL:</u> <b>if</b><i> <code>val</code></i></dt>
+<dd><p>Начинает блок команд, выполняемый если <code>val</code> не ноль.
+</p></dd></dl>
+<a name="index-elseif"></a>
+<p><a name="elseif"></a>
+</p><dl>
+<dt><a name="index-elseif-1"></a><u>Команда MGL:</u> <b>elseif</b><i> dat 'cond'</i></dt>
+<dd><p>Начинает блок команд, выполняемый если предыдущий <code>if</code> или <code>elseif</code> не был выполнен и каждый элемент <var>dat</var> удовлетворяет условию <var>cond</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-elseif-2"></a><u>Команда MGL:</u> <b>elseif</b><i> <code>val</code></i></dt>
+<dd><p>Начинает блок команд, выполняемый если предыдущий <code>if</code> или <code>elseif</code> не был выполнен и <code>val</code> не ноль.
+</p></dd></dl>
+<a name="index-else"></a>
+<p><a name="else"></a>
+</p><dl>
+<dt><a name="index-else-1"></a><u>Команда MGL:</u> <b>else</b></dt>
+<dd><p>Начинает блок команд, выполняемый если предыдущий <code>if</code> или <code>elseif</code> не был выполнен.
+</p></dd></dl>
+<a name="index-endif"></a>
+<p><a name="endif"></a>
+</p><dl>
+<dt><a name="index-endif-1"></a><u>Команда MGL:</u> <b>endif</b></dt>
+<dd><p>Заканчивает определение блока <code>if/elseif/else</code>.
+</p></dd></dl>
+
+<a name="index-for"></a>
+<p><a name="for"></a>
+</p><dl>
+<dt><a name="index-for-1"></a><u>Команда MGL:</u> <b>for</b><i> $N <code>v1 v2 [dv=1]</code></i></dt>
+<dd><p>Начинает блок команд, выполняемый в цикле с $<var>N</var>-ым аргументом изменяющимся от <var>v1</var> до <var>v2</var> с шагом <var>dv</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<dl>
+<dt><a name="index-for-2"></a><u>Команда MGL:</u> <b>for</b><i> $N dat</i></dt>
+<dd><p>Начинает блок команд, выполняемый в цикле с $<var>N</var>-ым аргументом пробегающим значения массива <var>dat</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<a name="index-next"></a>
+<p><a name="next"></a>
+</p><dl>
+<dt><a name="index-next-1"></a><u>Команда MGL:</u> <b>next</b></dt>
+<dd><p>Заканчивает блок цикла <code>for</code>.
+</p></dd></dl>
+
+<a name="index-once"></a>
+<p><a name="once"></a>
+</p><dl>
+<dt><a name="index-once-1"></a><u>Команда MGL:</u> <b>once</b><i> <code>val</code></i></dt>
+<dd><p>Определяет код (между <code>once on</code> и <code>once off</code>) который будет выполнен только один раз. Полезно для работы с большими данными в программах типа UDAV.
+</p></dd></dl>
+<a name="index-stop"></a>
+<p><a name="stop"></a>
+</p><dl>
+<dt><a name="index-stop-1"></a><u>Команда MGL:</u> <b>stop</b></dt>
+<dd><p>Останавливает выполнение скрипта.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Command-options-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Program-flow-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Suffixes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_043fc_0438_0438-_043a_043e_043c_0430_043d_0434-_0028MGL_0029"></a>
+<h2 class="section">8.24 Опции команд (MGL)</h2>
+
+<p>Опции команд позволяют легко настроить вид отдельного графика не меняя глобальных настроек для все рисунка. Опции указываются после команды. Каждая опция отделяется от предыдущей символом &lsquo;<samp>;</samp>&rsquo;. Опции работают так, что запоминают текущие настройки рисунка, применяют собственные настройки, выполняют команду и возвращают глобальные настройки обратно. Поэтому использование опций для команд обработки данных или настройки графика бесполезно.
+</p>
+<p>Наиболее часто используемые опции &ndash; <code>xrange, yrange, zrange</code>, устанавливающие границы изменения осей координат (и тем самым автоматических массивов). Например, команда <code>plot y; xrange 0.1 0.9</code> построит кривую с x-координатой равно распределенной в интервале 0.1 ... 0.9, а не вдоль текущей оси x.
+</p>
+<p>Полный список опций:
+<a name="index-alpha-2"></a>
+<a name="index-alphadef-2"></a>
+</p><dl>
+<dt><a name="index-alpha-3"></a><u>Опция MGL:</u> <b>alpha</b><i> <code>val</code></i></dt>
+<dt><a name="index-alphadef-3"></a><u>Опция MGL:</u> <b>alphadef</b><i> <code>val</code></i></dt>
+<dd><p>Задает величину прозрачности поверхности. Значение должно быть в диапазоне [0, 1]. См. также <a href="#alphadef">alphadef</a>
+</p></dd></dl>
+<a name="index-ambient-2"></a>
+<dl>
+<dt><a name="index-ambient-3"></a><u>Опция MGL:</u> <b>ambient</b><i> <code>val</code></i></dt>
+<dd><p>Задает яркость фонового освещения. Значение должно быть в диапазоне [0, 1]. См. также <a href="#ambient">ambient</a>
+</p></dd></dl>
+<a name="index-crange-3"></a>
+<dl>
+<dt><a name="index-crange-4"></a><u>Опция MGL:</u> <b>crange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Задает границы цветовой шкалы. См. также <a href="#crange">crange</a>
+</p></dd></dl>
+<a name="index-xrange-3"></a>
+<dl>
+<dt><a name="index-xrange-4"></a><u>Опция MGL:</u> <b>xrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Задает границы изменения координаты x. См. также <a href="#xrange">xrange</a>
+</p></dd></dl>
+<a name="index-yrange-3"></a>
+<dl>
+<dt><a name="index-yrange-4"></a><u>Опция MGL:</u> <b>yrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Задает границы изменения координаты y. См. также <a href="#yrange">yrange</a>
+</p></dd></dl>
+<a name="index-zrange-3"></a>
+<dl>
+<dt><a name="index-zrange-4"></a><u>Опция MGL:</u> <b>zrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Задает границы изменения координаты z. См. также <a href="#zrange">zrange</a>
+</p></dd></dl>
+<a name="index-cut-4"></a>
+<dl>
+<dt><a name="index-cut-5"></a><u>Опция MGL:</u> <b>cut</b><i> <code>val</code></i></dt>
+<dd><p>Задает обрезание точек за пределами осей координат. См. также <a href="#cut">cut</a>
+</p></dd></dl>
+<a name="index-fontsize"></a>
+<dl>
+<dt><a name="index-fontsize-1"></a><u>Опция MGL:</u> <b>fontsize</b><i> <code>val</code></i></dt>
+<dd><p>Задает размер текста. См. также <a href="#font">font</a>
+</p></dd></dl>
+<a name="index-marksize-2"></a>
+<dl>
+<dt><a name="index-marksize-3"></a><u>Опция MGL:</u> <b>marksize</b><i> <code>val</code></i></dt>
+<dd><p>Задает размер маркеров. См. также <a href="#marksize">marksize</a>
+</p></dd></dl>
+<a name="index-meshnum-2"></a>
+<dl>
+<dt><a name="index-meshnum-3"></a><u>Опция MGL:</u> <b>meshnum</b><i> <code>val</code></i></dt>
+<dd><p>Задает ориентировочное число линий, стрелок, ячеек и пр. См. также <a href="#meshnum">meshnum</a>
+</p></dd></dl>
+<a name="index-legend-3"></a>
+<dl>
+<dt><a name="index-legend-4"></a><u>Опция MGL:</u> <b>legend</b><i> 'txt'</i></dt>
+<dd><p>Добавляет строку &rsquo;txt&rsquo; во внутренний массив записей легенды. Стиль линии и маркера аргумента последней вызванной команды построения <a href="#g_t1D-plotting-_0028MGL_0029">1D графики (MGL)</a>. См. также <a href="#legend">legend</a>
+</p></dd></dl>
+
+<hr size="6">
+<a name="Suffixes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Command-options-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Utilities" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_0443_0444_0444_0438_043a_0441_044b-_043fe_0440e_043ce_043d_043d_044b_0445"></a>
+<h2 class="section">8.25 Суффиксы переменных</h2>
+
+<p>Суффиксы позволяют быстро получить числовую характеристику (размер, максимальное или минимальное значение, сумму элементов и т.д.) массива данных и использовать ее как число (скаляр) в аргументах. Суффиксы начинаются с точки &lsquo;<samp>.</samp>&rsquo; сразу после (без пробелов) имени переменной и временного массива. Например, <code>a.nx</code> даст размер массива <var>a</var> по оси х, <code>b(1).max</code> даст максимальное значение второй строки массива <var>b</var>, <code>(c(:,0)^2).sum</code> даст сумму квадратов элементов первой колонки массива <var>c</var> и т.д.
+</p>
+<p>Полный список суффиксов:
+</p><dl compact="compact">
+<dt> <strong>nx, ny, nz</strong></dt>
+<dd><p>Размер массива в направлении x, y, z соответственно.
+</p></dd>
+<dt> <strong>max</strong></dt>
+<dd><p>Максимальное значение массива.
+</p></dd>
+<dt> <strong>min</strong></dt>
+<dd><p>Минимальное значение массива.
+</p></dd>
+<dt> <strong>sum</strong></dt>
+<dd><p>Сумма элементов массива.
+</p></dd>
+<dt> <strong>a</strong></dt>
+<dd><p>Первый элемент массива (элемент с индексами 0,0,0).
+</p></dd>
+<dt> <strong>fst</strong></dt>
+<dd><p>Первое не нулевое значение массива.
+</p></dd>
+<dt> <strong>lst</strong></dt>
+<dd><p>Последнее не нулевое значение массива.
+</p></dd>
+<dt> <strong>mx, my, mz</strong></dt>
+<dd><p>Положение максимума в направлении x, y, z соответственно.
+</p></dd>
+<dt> <strong>ax, ay, az, aa</strong></dt>
+<dd><p>Положение центра масс в направлении x, y, z соответственно или среднее значение массива.
+</p></dd>
+<dt> <strong>wx, wy, wz, wa</strong></dt>
+<dd><p>Ширина в направлении x, y, z соответственно или дисперсия элементов массива.
+</p></dd>
+<dt> <strong>sx, sy, sz, sa</strong></dt>
+<dd><p>Асимметрия в направлении x, y, z соответственно или элементов массива.
+</p></dd>
+<dt> <strong>kx, ky, kz, ka</strong></dt>
+<dd><p>Эксцесс в направлении x, y, z соответственно или элементов массива.
+</p></dd>
+</dl>
+
+<hr size="6">
+<a name="Utilities"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Suffixes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0423_0442_0438_043b_0438_0442_044b-_0434_043bya-MGL"></a>
+<h2 class="section">8.26 Утилиты для MGL</h2>
+
+<p>MathGL содержит несколько программ для работы со скриптами MGL. Есть утилита для сохранения в растровое (<code>mgl2png</code>, <code>mgl2gif</code>) или векторное (<code>mgl2eps</code>, <code>mgl2svg</code>) изображения. Программа <code>mglview</code> показывает результат выполнения скрипта MGL и позволяет вращать и настраивать график. Также можно транслировать MGL скрипт в C++ файл с помощью программы <code>mgl2cpp</code>.
+</p>
+<p>Все эти программы имеют схожий набор аргументов. Первым идет имя скрипта, а вторым идет имя выходного файлы (может быть опущено), последние аргументы &ndash; опции скрипта и программы. К опциям относятся параметры скрипта (это <code>$0, $1, ... $9</code>) и настройки локали. Параметры скрипта имеют формат &lsquo;<samp>-Nval</samp>&rsquo;, где N=0,1...9 &ndash; номер параметра, val &ndash; его значние. Например, опция &lsquo;<samp>-1test</samp>&rsquo; заменит <code>$1</code> на &lsquo;<samp>test</samp>&rsquo; в скрипте. Опция -Lval устанавливает локаль в значение val. Например, &lsquo;<samp>-Lutf8</samp>&rsquo; будет использовать UTF-8 в скрипте.
+</p>
+<p>Также можно создавать анимированные изображения GIF или набор JPEG файлов с именами &lsquo;<samp>frameNNNN.jpg</samp>&rsquo; (где &lsquo;<samp>NNNN</samp>&rsquo; &ndash; номер кадра). Для этого в скрипте надо указать параметры анимации для каждого кадра (строками с коментариями <code>##a val</code> или опциями &lsquo;<samp>-Aval</samp>&rsquo;) или в цикле (строкой с комментарием <code>##с v1 v2 [dv]</code> или опцию &lsquo;<samp>-Cn1:n2</samp>&rsquo;), которые будут подставлены в качестве параметра <code>$0</code> при последовательном вызове скрипта. Для сохранения кадров в JPEG просто добавьте команду <code>write ''</code> в конце скрипта.
+</p>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_9.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_9.html
new file mode 100644
index 0000000..c2b79df
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_9.html
@@ -0,0 +1,8180 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: 9. Примеры использования MathGL</title>
+
+<meta name="description" content="MathGL 1.11: 9. Примеры использования MathGL">
+<meta name="keywords" content="MathGL 1.11: 9. Примеры использования MathGL">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_8.html#Utilities" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya-MathGL"></a>
+<h1 class="chapter">9. Примеры использования MathGL</h1>
+<p>Эта глава содержит множество примеров кода для всех типов графиков, наиболее важных возможностей библиотеки и советов. Аналогичные примеры (с картинками) можно найти на <a href="http://mathgl.sf.net/pictures.html">http://mathgl.sf.net/pictures.html</a>. 
+MБольшинство примеров содержат код на 5 языках: C++, MGL, C, Fortran и Python. Однако, в некоторых я помещал только C++ код, поскольку соответствующий код слишком большой и ясно как его можно переписать на другие языки.
+Минимальный код для запуска и просмотра примеров на различных языках следующий.
+<strong>C++ код</strong>
+Для компиляции используйте: <code>g++ -o sample sample.cpp -lmgl</code>.
+</p><pre class="verbatim">#include &lt;mgl/mgl_zb.h&gt;
+int main()
+{
+    mglGraph *gr = new mglGraphZB;
+    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // put sample code here
+    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    gr-&gt;ShowImage();    delete gr;
+    return 0;
+}
+</pre><p><strong>MGL скрипт</strong>
+Для просмотра используйте: <code>mglview sample.mgl</code>.
+</p><pre class="verbatim">#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# put sample code here
+#   --&gt;   you may sample as is :)
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+</pre><p><strong>C-ый код</strong>
+Для компиляции используйте: <code>gcc -o sample sample.c -lmgl</code>.
+</p><pre class="verbatim">#include &lt;mgl/mgl_c.h&gt;
+int main()
+{
+    HMGL gr = mgl_create_graph_zb(600,400);
+    /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    /* put sample code here              */
+    /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    mgl_show_image(gr,&quot;&quot;,0);
+    mgl_delete_graph(gr);
+    return 0;
+}
+</pre><p><strong>Fortran</strong>
+Для компиляции используйте: <code>gfortran -o sample sample.f90 -lmgl</code>. Замечу, что фортран не имеет проверки аргументов. Поэтому обратите особое внимание на передаваемые аргументы &ndash; не путайте целые и действительные (с плавающей точкой) числа/аргументы. Никакого контроля в компиляторе для этого не предусмотрено!!!
+</p><pre class="verbatim">integer gr, mgl_create_graph_zb
+gr = mgl_create_graph_zb(600,400)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! put sample code here
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+call mgl_show_image(gr,'',0)
+call mgl_delete_graph(gr)
+end
+</pre><p><strong>Python</strong>
+Для просмотра используйте: <code>python sample.py</code>.
+</p><pre class="verbatim">from mathgl import *
+gr = mglGraph();
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# put sample code here
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+gr.ShowImage();
+</pre><table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting-samples">9.1 Примеры 1D графиков</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting-samples">9.2 Примеры 2D графиков</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting-samples">9.3 Примеры 3D графиков</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting-samples">9.4 Примеры парных/векторных графиков</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Basic-features">9.5 Базовые возможности</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Additional-features">9.6 Дополнительные возможности</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Advanced-features">9.7 &quot;Продвинутые&quot; возможности</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+</table>
+<hr size="6">
+<a name="g_t1D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-1D-g_0440_0430_0444_0438_043a_043e_0432"></a>
+<h2 class="section">9.1 Примеры 1D графиков</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plot-sample">9.1.1 Plot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Radar-sample">9.1.2 Radar &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tens-sample">9.1.3 Tens &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area-sample">9.1.4 Area &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area-gradient-sample">9.1.5 Area с градиентной заливкой &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-sample">9.1.6 Bars &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-2-colors-sample">9.1.7 Bars (2 цвета) &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-above-sample">9.1.8 Bars (один над другим) &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-fall-sample">9.1.9 Bars &quot;водопад&quot; &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Barh-sample">9.1.10 Barh &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Step-sample">9.1.11 Step &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stem-sample">9.1.12 Stem &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region-sample">9.1.13 Region &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region-gradient-sample">9.1.14 Region с градиентной заливкой &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Error-sample">9.1.15 Error &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#BoxPlot-sample">9.1.16 BoxPlot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mark-sample">9.1.17 Mark &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TextMark-sample">9.1.18 TextMark &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tube-sample">9.1.19 Tube &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-sample">9.1.20 Text &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Torus-sample">9.1.21 Torus &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Chart-sample">9.1.22 Chart &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pie-chart-sample">9.1.23 Pie chart &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ring-chart-sample">9.1.24 Ring chart &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+<hr size="6">
+<a name="Plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Radar-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.1 Plot &ndash; пример использования</h3>
+<a name="index-Plot-7"></a>
+<div class="float">
+<img src="../png/plot.png" alt="../png/plot">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Box();
+gr-&gt;Plot(y);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.Box();
+gr.Plot(y);
+</pre><hr size="6">
+<a name="Radar-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Radar-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.2 Radar &ndash; пример использования</h3>
+<a name="index-Radar-2"></a>
+<div class="float">
+<img src="../png/radar.png" alt="../png/radar">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.4*sin(pi*(2*x+y/2))+0.1*rnd&quot;);
+gr-&gt;Radar(y,&quot;#&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.4*sin(pi*(2*x+y/2))+0.1*rnd'
+radar y '#'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.4*sin(pi*(2*x+y/2))+0.1*rnd&quot;,0);
+mgl_radar(gr,y,&quot;#&quot;,-1);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.4*sin(pi*(2*x+y/2))+0.1*rnd',0)
+call mgl_radar(gr,y,'#',-1.)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.4*sin(pi*(2*x+y/2))+0.1*rnd&quot;);
+gr.Radar(y,&quot;#&quot;);
+</pre><hr size="6">
+<a name="Tens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Radar-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.3 Tens &ndash; пример использования</h3>
+<a name="index-Tens-4"></a>
+<div class="float">
+<img src="../png/tens.png" alt="../png/tens">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50), c(50);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;);
+c.Modify(&quot;sin(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Tens(y,c);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50
+new c 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify c 'sin(2*pi*x)'
+box
+tens y c
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,1,1);
+HMDT c = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(c,&quot;sin(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_tens(gr,y,c,NULL);
+mgl_delete_data(y);
+mgl_delete_data(c);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, c, mgl_create_data_size
+y = mgl_create_data_size(50,1,1)
+c = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(c,'sin(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_tens(gr,y,'')
+call mgl_delete_data(y)
+call mgl_delete_data(c)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50);
+c = mglData(50);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;);
+c.Modify(&quot;sin(2*pi*x)&quot;);
+gr.Box();
+gr.Tens(y,c);
+</pre><hr size="6">
+<a name="Area-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area-gradient-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.4 Area &ndash; пример использования</h3>
+<a name="index-Area-4"></a>
+<div class="float">
+<img src="../png/area.png" alt="../png/area">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Area(y);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_area(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_area(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Area(y);
+</pre><hr size="6">
+<a name="Area-gradient-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-_0441-g_0440_0430_0434_0438e_043d_0442_043d_043e_0439-_0437_0430_043b_0438_0432_043a_043e_0439-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.5 Area с градиентной заливкой &ndash; пример использования</h3>
+<a name="index-Area-5"></a>
+<div class="float">
+<img src="../png/area_2.png" alt="../png/area_2">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Area(y,&quot;cbgGyr&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y 'cbgGyr'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_area(gr,y,&quot;cbgGyr&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_area(gr,y,'cbgGyr')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Area(y,&quot;cbgGyr&quot;);
+</pre><hr size="6">
+<a name="Bars-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area-gradient-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-2-colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.6 Bars &ndash; пример использования</h3>
+<a name="index-Bars-4"></a>
+<div class="float">
+<img src="../png/bars.png" alt="../png/bars">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Bars(y);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y);
+</pre>
+<hr size="6">
+<a name="Bars-2-colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-above-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-_00282-c_0432e_0442_0430_0029-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.7 Bars (2 цвета) &ndash; пример использования</h3>
+<a name="index-Bars-5"></a>
+<div class="float">
+<img src="../png/bars_2.png" alt="../png/bars_2">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Bars(y,&quot;cbgGyr&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'cbgGyr'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,&quot;cbgGyr&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'cbgGyr')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,&quot;cbgGyr&quot;);
+</pre><hr size="6">
+<a name="Bars-above-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-2-colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-fall-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-_0028_043e_0434_0438_043d-_043d_0430_0434-_0434_0440_0443g_0438_043c_0029-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.8 Bars (один над другим) &ndash; пример использования</h3>
+<a name="index-Bars-6"></a>
+<div class="float">
+<img src="../png/bars_a.png" alt="../png/bars_a">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Bars(y,&quot;a&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'a'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,&quot;a&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'a')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,&quot;a&quot;);
+</pre><hr size="6">
+<a name="Bars-fall-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-above-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Barh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-_0022_0432_043e_0434_043e_043f_0430_0434_0022-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.9 Bars &quot;водопад&quot; &ndash; пример использования</h3>
+<a name="index-Bars-7"></a>
+<div class="float">
+<img src="../png/bars_f.png" alt="../png/bars_f">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Bars(y,&quot;f&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'f'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,&quot;f&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'f')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,&quot;f&quot;);
+</pre>
+
+<hr size="6">
+<a name="Barh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-fall-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Step-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Barh-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.10 Barh &ndash; пример использования</h3>
+<a name="index-Barh-3"></a>
+<div class="float">
+<img src="../png/barh.png" alt="../png/barh">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Barh(y);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+barh y
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_barh(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_barh(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Barh(y);
+</pre><hr size="6">
+<a name="Step-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Barh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stem-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Step-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.11 Step &ndash; пример использования</h3>
+<a name="index-Step-4"></a>
+<div class="float">
+<img src="../png/step.png" alt="../png/step">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Box();
+gr-&gt;Step(y);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+step y
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_box(gr,1);
+mgl_step(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_box(gr,1)
+call mgl_step(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.Box();
+gr.Step(y);
+</pre><hr size="6">
+<a name="Stem-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Step-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stem-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.12 Stem &ndash; пример использования</h3>
+<a name="index-Stem-4"></a>
+<div class="float">
+<img src="../png/stem.png" alt="../png/stem">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Stem(y,&quot;o&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+stem y 'o'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_stem(gr,y,&quot;o&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_stem(gr,y,'o')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Stem(y,&quot;o&quot;);
+</pre><hr size="6">
+<a name="Region-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Stem-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region-gradient-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.13 Region &ndash; пример использования</h3>
+<a name="index-Region-3"></a>
+<div class="float">
+<img src="../png/region.png" alt="../png/region">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y1(50), y2(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Region(y1,y2,&quot;r&quot;);
+gr-&gt;Plot(y1,&quot;k2&quot;);
+gr-&gt;Plot(y2,&quot;k2&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'r'
+plot y1 'k2'
+plot y2 'k2'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_region(gr,y1,y2,&quot;r&quot;,1);
+mgl_plot(gr,y1,&quot;k2&quot;);
+mgl_plot(gr,y2,&quot;k2&quot;);
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,'0.3*sin(2*pi*x)',0);
+call mgl_data_modify(y2,'0.5+0.3*cos(2*pi*x)',0);
+call mgl_box(gr,1);
+call mgl_region(gr,y1,y2,'r',1);
+call mgl_plot(gr,y1,'k2');
+call mgl_plot(gr,y2,'k2');
+call mgl_delete_data(y1);
+call mgl_delete_data(y2);
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y1, y2, x = mglData(50), mglData(50), mglData(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.Box();
+gr.Region(y1,y2,&quot;r&quot;);
+gr.Plot(y1,&quot;k2&quot;);
+gr.Plot(y2,&quot;k2&quot;);
+</pre><hr size="6">
+<a name="Region-gradient-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Error-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-_0441-g_0440_0430_0434_0438e_043d_0442_043d_043e_0439-_0437_0430_043b_0438_0432_043a_043e_0439-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.14 Region с градиентной заливкой &ndash; пример использования</h3>
+<a name="index-Region-4"></a>
+<div class="float">
+<img src="../png/region_2.png" alt="../png/region_2">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y1(50), y2(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Region(y1,y2,&quot;yr&quot;);
+gr-&gt;Plot(y1,&quot;k2&quot;);
+gr-&gt;Plot(y2,&quot;k2&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'yr'
+plot y1 'k2'
+plot y2 'k2'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_region(gr,y1,y2,&quot;yr&quot;,1);
+mgl_plot(gr,y1,&quot;k2&quot;);
+mgl_plot(gr,y2,&quot;k2&quot;);
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,'0.3*sin(2*pi*x)',0);
+call mgl_data_modify(y2,'0.5+0.3*cos(2*pi*x)',0);
+call mgl_box(gr,1);
+call mgl_region(gr,y1,y2,'yr',1);
+call mgl_plot(gr,y1,'k2');
+call mgl_plot(gr,y2,'k2');
+call mgl_delete_data(y1);
+call mgl_delete_data(y2);
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y1, y2, x = mglData(50), mglData(50), mglData(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.Box();
+gr.Region(y1,y2,&quot;yr&quot;);
+gr.Plot(y1,&quot;k2&quot;);
+gr.Plot(y2,&quot;k2&quot;);
+</pre><hr size="6">
+<a name="Error-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region-gradient-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#BoxPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Error-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.15 Error &ndash; пример использования</h3>
+<a name="index-Error-6"></a>
+<div class="float">
+<img src="../png/error.png" alt="../png/error">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,1), x0(10), y0(10), ex(10), ey(10);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+x0.Modify(&quot;2*x-1 + 0.1*rnd-0.05&quot;);
+y0.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1&quot;);
+ey.Modify(&quot;0.2&quot;); ex.Modify(&quot;0.1&quot;);
+gr-&gt;Box();
+gr-&gt;Plot(y);
+gr-&gt;Error(x0,y0,ex,ey,&quot;ko&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50
+new x0 10
+new y0 10
+new ex 10
+new ey 10
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify x0 '2*x-1 + 0.1*rnd-0.05'
+modify y0 '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1'
+modify ey '0.2'
+modify ex '0.1'
+box
+plot y
+error x0 y0 ex ey 'ko'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,1,1);
+HMDT x0 = mgl_create_data_size(10,1,1);
+HMDT y0 = mgl_create_data_size(10,1,1);
+HMDT ex = mgl_create_data_size(10,1,1);
+HMDT ey = mgl_create_data_size(10,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(x0,&quot;2*x-1 + 0.1*rnd-0.05&quot;,0);
+mgl_data_modify(y0,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1&quot;,0);
+mgl_data_modify(ey,&quot;0.2&quot;,0); mgl_data_modify(ex,&quot;0.1&quot;,0);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_error_exy(gr,x0,y0,ex,ey,&quot;ko&quot;);
+mgl_delete_data(x0); mgl_delete_data(y0);
+mgl_delete_data(ex); mgl_delete_data(ey);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, x0, y0, ex, ey, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+x0 = mgl_create_data_size(10,1,1)
+y0 = mgl_create_data_size(10,1,1)
+ex = mgl_create_data_size(10,1,1)
+ey = mgl_create_data_size(10,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(x0,'2*x-1 + 0.1*rnd-0.05',0);
+call mgl_data_modify(y0,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + &amp;
+                         0.2*sin(pi*x) + 0.2*rnd-0.1',0);
+call mgl_data_modify(ey,'0.2',0)
+call mgl_data_modify(ex,'0.1',0);
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_error_exy(gr,x0,y0,ex,ey,'ko')
+call mgl_delete_data(x0)
+call mgl_delete_data(y0)
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y, x0, y0, ex, ey = mglData(50,1), mglData(10), mglData(10), mglData(10), mglData(10);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+x0.Modify(&quot;2*x-1+0.1*rnd-0.05&quot;);
+y0.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)+0.2*rnd-0.1&quot;);
+ey.Modify(&quot;0.2&quot;);   ex.Modify(&quot;0.1&quot;);
+gr.Box();           gr.Plot(y);
+gr.Error(x0,y0,ex,ey,&quot;ko&quot;);
+</pre><hr size="6">
+<a name="BoxPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Error-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mark-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="BoxPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.16 BoxPlot &ndash; пример использования</h3>
+<a name="index-BoxPlot-3"></a>
+<div class="float">
+<img src="../png/boxplot.png" alt="../png/boxplot">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(10,7);
+a.Modify(&quot;(2*rnd-1)^3/2&quot;);
+gr-&gt;Box();
+gr-&gt;BoxPlot(a);
+gr-&gt;Plot(a,&quot; ko&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 10 7
+modify a '(2*rnd-1)^3/2'
+box
+boxplot a
+plot a ' ko'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(10,7,1);
+mgl_data_modify(a,&quot;(2*rnd-1)^3/2&quot;,0);
+mgl_box(gr,1);
+mgl_plot(gr,a,&quot; ko&quot;);
+mgl_boxplot(gr,a,NULL);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+y = mgl_create_data_size(10,7,1)
+call mgl_data_modify(a,'(2*rnd-1)^3/2',0);
+call mgl_box(gr,1)
+call mgl_plot(gr,a,' ko')
+call mgl_boxplot(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(10,7);
+a.Modify(&quot;(2*rnd-1)^3/2&quot;);
+gr.Box();
+gr.Plot(a,&quot; ko&quot;);
+gr.BoxPlot(a);
+</pre><hr size="6">
+<a name="Mark-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#BoxPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TextMark-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mark-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.17 Mark &ndash; пример использования</h3>
+<a name="index-Mark-7"></a>
+<div class="float">
+<img src="../png/mark.png" alt="../png/mark">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3), y1(50);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Mark(y,y1,&quot;bs&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+mark y y1 'bs'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+HMDT y1 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_mark_y(gr,y,y1,&quot;bs&quot;);
+mgl_delete_data(y);
+mgl_delete_data(y1);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, y1, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+y1 = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_data_modify(y1,'0.5+0.3*cos(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_mark_y(gr,y,y1,'bs')
+call mgl_delete_data(y)
+call mgl_delete_data(y1)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y, y1 = mglData(50,3), mglData(50);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);     y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.Box();
+gr.Mark(y,y1,&quot;bs&quot;);
+</pre><hr size="6">
+<a name="TextMark-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mark-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tube-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TextMark-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.18 TextMark &ndash; пример использования</h3>
+<a name="index-TextMark-9"></a>
+<div class="float">
+<img src="../png/textmark.png" alt="../png/textmark">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3), y1(50);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;TextMark(y,y1,&quot;\\gamma&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+textmark y y1 '\gamma'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y, y1;
+y = mgl_create_data_size(50,3,1);
+y1 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_textmark_yr(gr,y,y1,&quot;\\gamma&quot;,&quot;&quot;);
+mgl_delete_data(y);
+mgl_delete_data(y1);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, y1, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+y1 = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_data_modify(y1,'0.5+0.3*cos(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_textmark_yr(gr,y,y1,'\gamma','')
+call mgl_delete_data(y)
+call mgl_delete_data(y1)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y, y1 = mglData(50,3), mglData(50);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);     y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.Box();
+gr.TextMark(y,y1,&quot;\\gamma&quot;);
+</pre><hr size="6">
+<a name="Tube-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TextMark-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tube-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.19 Tube &ndash; пример использования</h3>
+<a name="index-Tube-7"></a>
+<div class="float">
+<img src="../png/tube.png" alt="../png/tube">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Tube(y,0.05);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+rotate 40 60
+light on
+box
+tube y 0.05
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_tube(gr,y,0.05,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_tube(gr,y,0.05,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);  y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Tube(y,0.05);
+</pre><hr size="6">
+<a name="Text-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tube-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Torus-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.20 Text &ndash; пример использования</h3>
+<a name="index-Text-7"></a>
+<div class="float">
+<img src="../png/text.png" alt="../png/text">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Box();
+gr-&gt;Plot(y.SubData(-1,0));
+gr-&gt;Text(y,&quot;This is very long string drawn along a curve&quot;,&quot;:k&quot;);
+gr-&gt;Text(y,&quot;Another string drawn above a curve&quot;,&quot;T:r&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y(:,0)
+text y 'This is very long string drawn along a curve' ':k'
+text y 'Another string drawn above a curve' 'T:r'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_text_y(gr,y,&quot;This is very long string drawn along a curve&quot;,&quot;:k&quot;,-1.);
+mgl_text_y(gr,y,&quot;Another string drawn above a curve&quot;,&quot;T:r&quot;,-1.);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_text_y(gr,y,'This is very long string drawn along a curve',':k',-1.)
+call mgl_text_y(gr,y,'Another string drawn above a curve','T:r',-1.)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);     y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.Box();
+gr.Plot(y.SubData(-1,0));
+gr.Text(y,&quot;This is very long string drawn along a curve&quot;,&quot;:k&quot;);
+gr.Text(y,&quot;Another string drawn above a curve&quot;,&quot;T:r&quot;);
+</pre><hr size="6">
+<a name="Torus-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Torus-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.21 Torus &ndash; пример использования</h3>
+<a name="index-Torus-3"></a>
+<div class="float">
+<img src="../png/torus.png" alt="../png/torus">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y1(50), y2(50);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+y2.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Torus(y1,y2,&quot;pz&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+rotate 40 60
+light on
+box
+torus y1 y2 'pz'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_torus(gr,y1,y2,&quot;pz&quot;);
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+call mgl_data_modify(y2,&quot;0.3*sin(2*pi*x)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_torus(gr,y1,y2,'pz')
+call mgl_delete_data(y1)
+call mgl_delete_data(y2)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y1, y2 = mglData(50), mglData(50);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+y2.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+gr.Rotate(40,60);    gr.Light(True);
+gr.Box();
+gr.Torus(y1,y2,&quot;pz&quot;);
+</pre><hr size="6">
+<a name="Chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Torus-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pie-chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.22 Chart &ndash; пример использования</h3>
+<a name="index-Chart-2"></a>
+<div class="float">
+<img src="../png/chart.png" alt="../png/chart">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData ch(7,2);
+ch.Modify(&quot;rnd+0.1&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Chart(ch,&quot;#&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+box
+chart ch
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,&quot;rnd+0.1&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_chart(gr,ch,&quot;#&quot;);
+mgl_delete_data(ch);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'#')
+call mgl_delete_data(ch)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ch = mglData(7,2);  ch.Modify(&quot;rnd+0.1&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Chart(ch,&quot;#&quot;);
+</pre><hr size="6">
+<a name="Pie-chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ring-chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pie-chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.23 Pie chart &ndash; пример использования</h3>
+<a name="index-Chart-3"></a>
+<a name="index-Axis-4"></a>
+<div class="float">
+<img src="../png/pie_chart.png" alt="../png/pie_chart">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData ch(7,2);
+ch.Modify(&quot;rnd+0.1&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;SetFunc(&quot;(y+1)/2*cos(pi*x)&quot;,&quot;(y+1)/2*sin(pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Chart(ch,&quot;bgr cmy#&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+1)/2*cos(pi*x)' '(y+1)/2*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,&quot;rnd+0.1&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_func(gr,&quot;(y+1)/2*cos(pi*x)&quot;,&quot;(y+1)/2*sin(pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_chart(gr,ch,&quot;bgr cmy#&quot;);
+mgl_delete_data(ch);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_func(gr,'(y+1)/2*cos(pi*x)','(y+1)/2*sin(pi*x)','');
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'bgr cmy#')
+call mgl_delete_data(ch)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ch = mglData(7,2);  ch.Modify(&quot;rnd+0.1&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.SetFunc(&quot;(y+1)/2*cos(pi*x)&quot;,&quot;(y+1)/2*sin(pi*x)&quot;);
+gr.Box();
+gr.Chart(ch,&quot;bgr cmy#&quot;);
+</pre><hr size="6">
+<a name="Ring-chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pie-chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ring-chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.24 Ring chart &ndash; пример использования</h3>
+<a name="index-Chart-4"></a>
+<a name="index-Axis-5"></a>
+<div class="float">
+<img src="../png/ring_chart.png" alt="../png/ring_chart">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData ch(7,2);
+ch.Modify(&quot;rnd+0.1&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;SetFunc(&quot;(y+2)/3*cos(pi*x)&quot;,&quot;(y+2)/3*sin(pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Chart(ch,&quot;bgr cmy#&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+2)/3*cos(pi*x)' '(y+2)/3*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,&quot;rnd+0.1&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_func(gr,&quot;(y+2)/3*cos(pi*x)&quot;,&quot;(y+2)/3*sin(pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_chart(gr,ch,&quot;bgr cmy#&quot;);
+mgl_delete_data(ch);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_func(gr,'(y+2)/3*cos(pi*x)','(y+2)/3*sin(pi*x)','');
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'bgr cmy#')
+call mgl_delete_data(ch)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ch = mglData(7,2);  ch.Modify(&quot;rnd+0.1&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.SetFunc(&quot;(y+2)/3*cos(pi*x)&quot;,&quot;(y+2)/3*sin(pi*x)&quot;);
+gr.Box();
+gr.Chart(ch,&quot;bgr cmy#&quot;);
+</pre><hr size="6">
+<a name="g_t2D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ring-chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-2D-g_0440_0430_0444_0438_043a_043e_0432"></a>
+<h2 class="section">9.2 Примеры 2D графиков</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf-sample">9.2.1 Surf &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transparent-surface-sample">9.2.2 Transparent surface &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surface-in-fog-sample">9.2.3 Surface in fog &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Sharp-colors-sample">9.2.4 Sharp colors &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mesh-sample">9.2.5 Mesh &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fall-sample">9.2.6 Fall &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Belt-sample">9.2.7 Belt &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tile-sample">9.2.8 Tile &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Boxs-sample">9.2.9 Boxs &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens-sample">9.2.10 Dens &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-sample">9.2.11 Cont &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF-sample">9.2.12 ContF &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContD-sample">9.2.13 ContD &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axial-sample">9.2.14 Axial &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grad-sample">9.2.15 Grad &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+</table>
+<hr size="6">
+<a name="Surf-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparent-surface-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.1 Surf &ndash; пример использования</h3>
+<a name="index-Surf-6"></a>
+<div class="float">
+<img src="../png/surf.png" alt="../png/surf">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Surf(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Surf(a);
+</pre><hr size="6">
+<a name="Transparent-surface-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surface-in-fog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transparent-surface-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.2 Transparent surface &ndash; пример использования</h3>
+<a name="index-Surf-7"></a>
+<a name="index-Alpha-2"></a>
+<div class="float">
+<img src="../png/surf_alpha.png" alt="../png/surf_alpha">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Surf(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surf a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Alpha(True);
+gr.Surf(a);
+</pre><hr size="6">
+<a name="Surface-in-fog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparent-surface-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Sharp-colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surface-in-fog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.3 Surface in fog &ndash; пример использования</h3>
+<a name="index-Surf-8"></a>
+<a name="index-Fog-2"></a>
+<div class="float">
+<img src="../png/surf_fog.png" alt="../png/surf_fog">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Fog(1);
+gr-&gt;Box();
+gr-&gt;Surf(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+fog 1
+box
+surf a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_fog(gr,1.,0.25);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_fog(gr,1.,0.25)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Fog(1);
+gr.Surf(a);
+</pre><hr size="6">
+<a name="Sharp-colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surface-in-fog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mesh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Sharp-colors-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.4 Sharp colors &ndash; пример использования</h3>
+<a name="index-Surf-9"></a>
+<div class="float">
+<img src="../png/surf_sl.png" alt="../png/surf_sl">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Surf(a,&quot;BbcyrR|&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a 'BbcyrR|'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,&quot;BbcyrR|&quot;);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'BbcyrR|')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Surf(a,&quot;BbcyrR|&quot;);
+</pre><hr size="6">
+<a name="Mesh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Sharp-colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fall-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mesh-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.5 Mesh &ndash; пример использования</h3>
+<a name="index-Mesh-3"></a>
+<div class="float">
+<img src="../png/mesh.png" alt="../png/mesh">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Mesh(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+mesh a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_mesh(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_mesh(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Mesh(a);
+</pre><hr size="6">
+<a name="Fall-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mesh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Belt-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fall-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.6 Fall &ndash; пример использования</h3>
+<a name="index-Fall-3"></a>
+<div class="float">
+<img src="../png/fall.png" alt="../png/fall">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Fall(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+fall a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_fall(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_fall(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Fall(a);
+</pre><hr size="6">
+<a name="Belt-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fall-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tile-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Belt-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.7 Belt &ndash; пример использования</h3>
+<a name="index-Belt-3"></a>
+<div class="float">
+<img src="../png/belt.png" alt="../png/belt">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Belt(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+belt a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_belt(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_belt(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Belt(a);
+</pre><hr size="6">
+<a name="Tile-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Belt-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Boxs-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tile-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.8 Tile &ndash; пример использования</h3>
+<a name="index-Tile-3"></a>
+<div class="float">
+<img src="../png/tile.png" alt="../png/tile">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Tile(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+tile a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_tile(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_tile(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Tile(a);
+</pre><hr size="6">
+<a name="Boxs-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tile-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Boxs-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.9 Boxs &ndash; пример использования</h3>
+<a name="index-Boxs-3"></a>
+<div class="float">
+<img src="../png/boxs.png" alt="../png/boxs">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);  gr-&gt;Light(true);
+gr-&gt;Org = mglPoint(0,0,0);
+gr-&gt;Box();
+gr-&gt;Boxs(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+origin 0 0 0
+box
+boxs a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_boxs(gr,a,0,0.);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_origin(gr,0.,0.,0.);
+call mgl_box(gr,1)
+call mgl_boxs(gr,a,'',0.)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);       gr.Light(True);
+gr.SetOrigin(0.,0.,0.); gr.Box();
+gr.Boxs(a);
+</pre><hr size="6">
+<a name="Dens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Boxs-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.10 Dens &ndash; пример использования</h3>
+<a name="index-Dens-3"></a>
+<a name="index-Colorbar-6"></a>
+<div class="float">
+<img src="../png/dens.png" alt="../png/dens">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Dens(a);
+gr-&gt;Colorbar();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+dens a
+colorbar
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_dens(gr,a,0,0);
+mgl_colorbar(gr,&quot;&quot;,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_dens(gr,a,'',0)
+call mgl_colorbar(gr,'',0)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.Dens(a);
+gr.Colorbar();
+</pre><hr size="6">
+<a name="Cont-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.11 Cont &ndash; пример использования</h3>
+<a name="index-Cont-5"></a>
+<div class="float">
+<img src="../png/cont.png" alt="../png/cont">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Cont(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+cont a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_cont(gr,a,0,7,NAN);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+real zero, nan
+! I don't know the NaN symbol in Fortran. So I produce it as zero/zero
+zero = 0; nan = zero/zero 
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_cont(gr,a,'',7,nan)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);
+gr.Box();
+gr.Cont(a);
+</pre><hr size="6">
+<a name="ContF-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContD-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.12 ContF &ndash; пример использования</h3>
+<a name="index-ContF-5"></a>
+<div class="float">
+<img src="../png/contf.png" alt="../png/contf">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);  gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;ContF(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+contf a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_contf(gr,a,0,7,NAN);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+real zero, nan
+! I don't know the NaN symbol in Fortran. So I produce it as zero/zero
+zero = 0; nan = zero/zero
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_contf(gr,a,'',7,nan)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.ContF(a);
+</pre><hr size="6">
+<a name="ContD-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axial-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContD-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.13 ContD &ndash; пример использования</h3>
+<a name="index-ContD-5"></a>
+<div class="float">
+<img src="../png/contd.png" alt="../png/contd">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40), v(9);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+v.Fill(-1,1);
+gr-&gt;Box();
+gr-&gt;ContD(v,a);
+gr-&gt;Colorbar(v);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+var v 9 -1 1
+box
+contd v a
+colorbar v
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+HMDT v = mgl_create_data_size(9,1,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_fill(v,-1.,1.,'x');
+mgl_box(gr,1);
+mgl_contd_val(gr,v,a,0,0);
+mgl_colorbar_val(gr,v,NULL,0);
+mgl_delete_data(a);
+mgl_delete_data(v);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, v, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+v = mgl_create_data_size(9,1,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_fill(v,-1.,1.,'x');
+call mgl_box(gr,1)
+call mgl_contd_val(gr,v,a,'',0);
+call mgl_colorbar_val(gr,v,NULL,0);
+call mgl_delete_data(a)
+call mgl_delete_data(v)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, v = mglData(50,40), mglData(9);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+v.Fill(-1,1);
+gr.Box();
+gr.ContD(v,a);
+gr.Colorbar(v);
+</pre><hr size="6">
+<a name="Axial-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContD-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grad-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axial-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.14 Axial &ndash; пример использования</h3>
+<a name="index-Axial-5"></a>
+<div class="float">
+<img src="../png/axial.png" alt="../png/axial">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Axial(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+axial a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_axial(gr,a,&quot;&quot;,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_axial(gr,a,'',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.Box();
+gr.Axial(a);
+</pre><hr size="6">
+<a name="Grad-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axial-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grad-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.15 Grad &ndash; пример использования</h3>
+<a name="index-Grad-4"></a>
+<div class="float">
+<img src="../png/grad.png" alt="../png/grad">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();  gr-&gt;Alpha(true);    gr-&gt;Dens(a);
+gr-&gt;Grad(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box:alpha on:dens a
+grad a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_set_alpha(gr,1);
+mgl_dens(gr,a,0,0);
+mgl_grad(gr,a,0,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_dens(gr,a,'',0)
+call mgl_grad(gr,a,'',0)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();   gr.Alpha(1);    gr.Dens(a);
+gr.Colorbar();
+</pre><hr size="6">
+<a name="g_t3D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grad-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-3D-g_0440_0430_0444_0438_043a_043e_0432"></a>
+<h2 class="section">9.3 Примеры 3D графиков</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf3-sample">9.3.1 Surf3 &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cloud-sample">9.3.2 Cloud &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CloudP-sample">9.3.3 CloudP &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens3-sample">9.3.4 Dens3 &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont3-sample">9.3.5 Cont3 &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF3-sample">9.3.6 ContF3 &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-projection-sample">9.3.7 Cont projection &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens-projection-sample">9.3.8 Dens projection &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutMinMax-sample">9.3.9 CutMinMax &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutOff-sample">9.3.11 CutOff &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+<hr size="6">
+<a name="Surf3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cloud-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.1 Surf3 &ndash; пример использования</h3>
+<a name="index-Surf3-5"></a>
+<div class="float">
+<img src="../png/surf3.png" alt="../png/surf3">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Surf3(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+box
+surf3 a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf3(gr,a,0,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.Box();
+gr.Surf3(a);
+</pre><hr size="6">
+<a name="Cloud-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CloudP-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cloud-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.2 Cloud &ndash; пример использования</h3>
+<a name="index-Cloud-2"></a>
+<div class="float">
+<img src="../png/cloud.png" alt="../png/cloud">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Cloud(a,&quot;wyrRk&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+box
+cloud a 'wyrRk'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_cloud(gr,a,&quot;wyrRk&quot;,1.);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_cloud(gr,a,'wyrRk',1.)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Alpha(True);
+gr.Box();
+gr.Cloud(a,&quot;wyrRk&quot;);
+</pre><hr size="6">
+<a name="CloudP-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cloud-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CloudP-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.3 CloudP &ndash; пример использования</h3>
+<a name="index-CloudP-3"></a>
+<div class="float">
+<img src="../png/cloudp.png" alt="../png/cloudp">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;CloudP(a,&quot;wyrRk&quot;);
+</pre><p><strong>MGL скрипт</strong>
+Not available.
+<strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_cloudp(gr,a,&quot;wyrRk&quot;,1.);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_cloudp(gr,a,'wyrRk',1.)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+Not available.
+</p><hr size="6">
+<a name="Dens3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CloudP-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.4 Dens3 &ndash; пример использования</h3>
+<a name="index-Dens3-3"></a>
+<a name="index-Axis-6"></a>
+<div class="float">
+<img src="../png/densa.png" alt="../png/densa">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);  gr-&gt;Alpha(true);    gr-&gt;Org = mglPoint(0,0,0);
+gr-&gt;Box();
+gr-&gt;DensA(a);
+gr-&gt;Axis();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+origin 0 0 0
+box
+densa a
+axis
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_alpha(gr,1);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_dens3_all(gr,a,0);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_alpha(gr,1)
+call mgl_set_origin(gr,0.,0.,0.);
+call mgl_box(gr,1)
+call mgl_dens3_all(gr,a,'')
+call mgl_axis(gr,&quot;xyz&quot;)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);       gr.Alpha(True);
+gr.SetOrigin(0,0,0);    gr.Box();
+gr.Axis();
+gr.DensA(a);
+</pre><hr size="6">
+<a name="Cont3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.5 Cont3 &ndash; пример использования</h3>
+<a name="index-Cont3-5"></a>
+<div class="float">
+<img src="../png/conta.png" alt="../png/conta">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;ContA(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+conta a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_cont_all(gr,a,0,7);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_cont_all(gr,a,'',7)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);
+gr.Box();
+gr.ContA(a);
+</pre><hr size="6">
+<a name="ContF3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-projection-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.6 ContF3 &ndash; пример использования</h3>
+<a name="index-ContF3-5"></a>
+<div class="float">
+<img src="../png/contfa.png" alt="../png/contfa">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);  gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;ContFA(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+box
+contfa a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_contf_all(gr,a,0,7);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_contf_all(gr,a,'',7)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.ContFA(a);
+</pre><hr size="6">
+<a name="Cont-projection-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens-projection-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-projection-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.7 Cont projection &ndash; пример использования</h3>
+<a name="index-ContX-3"></a>
+<a name="index-ContY-3"></a>
+<a name="index-ContZ-3"></a>
+<div class="float">
+<img src="../png/cont_xyz.png" alt="../png/cont_xyz">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;ContX(a.Sum(&quot;x&quot;),&quot;&quot;,-1);
+gr-&gt;ContY(a.Sum(&quot;y&quot;),&quot;&quot;,1);
+gr-&gt;ContZ(a.Sum(&quot;z&quot;),&quot;&quot;,-1);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+contx s '' -1
+sum s a 'y'
+conty s '' 1
+sum s a 'z'
+contz s '' -1
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40), s;
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+s=mgl_data_sum(a,&quot;x&quot;); mgl_cont_x(gr,s,0,-1.,7); mgl_delete_data(s);
+s=mgl_data_sum(a,&quot;y&quot;); mgl_cont_y(gr,s,0,1.,7); mgl_delete_data(s);
+s=mgl_data_sum(a,&quot;z&quot;); mgl_cont_z(gr,s,0,-1.,7); mgl_delete_data(s);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,s, mgl_create_data_size, mgl_data_sum
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+s=mgl_data_sum(a,'x')
+call mgl_cont_x(gr,s,'',-1.,7)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'y')
+call mgl_cont_y(gr,s,'',1.,7)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'z')
+call mgl_cont_z(gr,s,'',-1.,7)
+call mgl_delete_data(s)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);               gr.Box();
+gr.ContX(a.Sum(&quot;x&quot;),&quot;&quot;,-1);
+gr.ContY(a.Sum(&quot;y&quot;),&quot;&quot;,1);
+gr.ContZ(a.Sum(&quot;z&quot;),&quot;&quot;,-1);
+</pre><hr size="6">
+<a name="Dens-projection-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-projection-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutMinMax-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-projection-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.8 Dens projection &ndash; пример использования</h3>
+<a name="index-DensX-2"></a>
+<a name="index-DensY-2"></a>
+<a name="index-DensZ-2"></a>
+<div class="float">
+<img src="../png/dens_xyz.png" alt="../png/dens_xyz">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;DensX(a.Sum(&quot;x&quot;),&quot;&quot;,-1);
+gr-&gt;DensY(a.Sum(&quot;y&quot;),&quot;&quot;,1);
+gr-&gt;DensZ(a.Sum(&quot;z&quot;),&quot;&quot;,-1);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+densx s '' -1
+sum s a 'y'
+densy s '' 1
+sum s a 'z'
+densz s '' -1
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a, s; a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+s=mgl_data_sum(a,&quot;x&quot;); mgl_dens_x(gr,s,0,-1.); mgl_delete_data(s);
+s=mgl_data_sum(a,&quot;y&quot;); mgl_dens_y(gr,s,0,1.); mgl_delete_data(s);
+s=mgl_data_sum(a,&quot;z&quot;); mgl_dens_z(gr,s,0,-1.); mgl_delete_data(s);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,s, mgl_create_data_size, mgl_data_sum
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+s=mgl_data_sum(a,'x')
+call mgl_dens_x(gr,s,'',-1.)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'y')
+call mgl_dens_y(gr,s,'',1.)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'z')
+call mgl_dens_z(gr,s,'',-1.)
+call mgl_delete_data(s)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);               gr.Box();
+gr.DensX(a.Sum(&quot;x&quot;),&quot;&quot;,-1);
+gr.DensY(a.Sum(&quot;y&quot;),&quot;&quot;,1);
+gr.DensZ(a.Sum(&quot;z&quot;),&quot;&quot;,-1);
+</pre><hr size="6">
+<a name="CutMinMax-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens-projection-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Isocaps-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutMinMax-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.9 CutMinMax &ndash; пример использования</h3>
+<a name="index-Surf3-6"></a>
+<a name="index-CutMin"></a>
+<a name="index-CutMax"></a>
+<div class="float">
+<img src="../png/cutminmax.png" alt="../png/cutminmax">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;CutMin = mglPoint(0,-1,-1); gr-&gt;CutMax = mglPoint(1,0,1);
+gr-&gt;Box();
+gr-&gt;Surf3(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut 0 -1 -1 1 0 1
+box
+surf3 a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.);
+mgl_box(gr,1);
+mgl_surf3(gr,a,0,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.);
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.SetCutBox(0,-1,-1,1,0,1);    gr.Box();
+gr.Surf3(a);
+</pre><hr size="6">
+<a name="Isocaps-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutMinMax-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutOff-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Isocaps_0027_0027-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</h3>
+<a name="index-Surf3-7"></a>
+<a name="index-ContF3-6"></a>
+<a name="index-CutMin-1"></a>
+<a name="index-CutMax-1"></a>
+<div class="float">
+<img src="../png/cutminmax2.png" alt="../png/cutminmax2">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(61,51,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;CutMin = mglPoint(0,-1,-1); gr-&gt;CutMax = mglPoint(1,0,1.1);
+gr-&gt;Box();
+gr-&gt;Surf3(-1,a);
+gr-&gt;ContF3(a,'x',-1); gr-&gt;ContF3(a,'y',-1);
+gr-&gt;ContF3(a,'z', 0); gr-&gt;ContF3(a,'z',39);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 61 51 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+cut 0 -1 -1 1 0 1.1
+box
+surf3 a -1
+contf3 a 'x' -1
+contf3 a 'y' -1
+contf3 a 'z' 0
+contf3 a 'z' 39
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(61,51,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.1);
+mgl_box(gr,1);
+mgl_surf3_val(gr,-1.,a,0);
+mgl_contf3(gr,a,'x',-1, &quot;&quot;, 7);
+mgl_contf3(gr,a,'y',-1, &quot;&quot;, 7);
+mgl_contf3(gr,a,'z', 0, &quot;&quot;, 7);
+mgl_contf3(gr,a,'z',39, &quot;&quot;, 7);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">a = mgl_create_data_size(61,51,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.1);
+call mgl_box(gr,1)
+call mgl_surf3_val(gr,-1.,a,'')
+call mgl_contf3(gr,a,'x',-1, '', 7);
+call mgl_contf3(gr,a,'y',-1, '', 7);
+call mgl_contf3(gr,a,'z', 0, '', 7);
+call mgl_contf3(gr,a,'z',39, '', 7);
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(61,51,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.SetCutBox(0,-1,-1,1,0,1.1);    gr.Box();
+gr.Surf3(-1,a);
+gr.ContF3(a,&quot;x&quot;,-1);    gr.ContF3(a,&quot;y&quot;,-1);
+gr.ContF3(a,&quot;z&quot;,0);     gr.ContF3(a,&quot;z&quot;,39);
+</pre><hr size="6">
+<a name="CutOff-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Isocaps-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutOff-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.11 CutOff &ndash; пример использования</h3>
+<a name="index-Surf3-8"></a>
+<a name="index-CutOff-2"></a>
+<div class="float">
+<img src="../png/surf3_cutoff.png" alt="../png/surf3_cutoff">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;CutOff(&quot;(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)&quot;);
+gr-&gt;Box();
+gr-&gt;Surf3(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut '(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)'
+box
+surf3 a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_set_cutoff(gr,&quot;(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)&quot;);
+mgl_box(gr,1);
+mgl_surf3(gr,a,0,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,'-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)',0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_set_cutoff(gr,'(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)')
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(61,51,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.CutOff(&quot;(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)&quot;);
+gr.Box();
+gr.Surf3(a);
+</pre><hr size="6">
+<a name="Dual-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutOff-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfC-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-_043f_0430_0440_043d_044b_0445_002f_0432e_043a_0442_043e_0440_043d_044b_0445-g_0440_0430_0444_0438_043a_043e_0432"></a>
+<h2 class="section">9.4 Примеры парных/векторных графиков</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#SurfC-sample">9.4.1 SurfC &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#SurfA-sample">9.4.2 SurfA &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TileS-sample">9.4.3 TileS &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Map-sample">9.4.4 Map &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Traj-sample">9.4.5 Traj &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect-sample">9.4.6 Vect &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectL-sample">9.4.7 VectL &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectC-sample">9.4.8 VectC &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-sample">9.4.9 Flow &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe-sample">9.4.10 Pipe &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dew-sample">9.4.11 Dew &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3C-sample">9.4.12 Surf3C &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3A-sample">9.4.13 Surf3A &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect-3D-sample">9.4.14 Vect 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectL-3D-sample">9.4.15 VectL 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectC-3D-sample">9.4.16 VectC 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-3D-sample">9.4.17 Flow 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe-3D-sample">9.4.18 Pipe 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Crust-sample">9.4.19 Crust &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dots-sample">9.4.20 Dots &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+</table>
+<hr size="6">
+<a name="SurfC-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfA-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfC-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.1 SurfC &ndash; пример использования</h3>
+<a name="index-SurfC-3"></a>
+<div class="float">
+<img src="../png/surfc.png" alt="../png/surfc">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40), b(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;SurfC(a,b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surfc a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+HMDT b = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surfc(gr,a,b,0);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surfc(gr,a,b,'')
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(50,40), mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.SurfC(a,b);
+</pre><hr size="6">
+<a name="SurfA-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfC-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TileS-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfA-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.2 SurfA &ndash; пример использования</h3>
+<a name="index-SurfA-3"></a>
+<div class="float">
+<img src="../png/surfa.png" alt="../png/surfa">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40), b(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;SurfA(a,b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surfa a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a, b;
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surfa(gr,a,b,0);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1);
+call mgl_box(gr,1)
+call mgl_surfa(gr,a,b,'')
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(50,40), mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.Box();
+gr.SurfC(a,b);
+</pre><hr size="6">
+<a name="TileS-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfA-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Map-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TileS-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.3 TileS &ndash; пример использования</h3>
+<a name="index-TileS-3"></a>
+<div class="float">
+<img src="../png/tiles.png" alt="../png/tiles">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40), b(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;TileS(a,b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+tile a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a, b;
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_tiles(gr,a,b,0);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_tiles(gr,a,b,'')
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(50,40), mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.TileS(a,b);
+</pre><hr size="6">
+<a name="Map-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TileS-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Traj-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Map-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.4 Map &ndash; пример использования</h3>
+<a name="index-Map-3"></a>
+<div class="float">
+<img src="../png/map.png" alt="../png/map">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50, 40), b(50, 40);
+gr-&gt;Puts(mglPoint(0, 0), &quot;\\to&quot;, &quot;&quot;, -1.4);
+gr-&gt;Axis(mglPoint(-1,-1,-2),mglPoint(1,1,2));
+gr-&gt;SubPlot(2, 1, 0);
+a.Fill(&quot;x&quot;, gr-&gt;Min, gr-&gt;Max);	b.Fill(&quot;y&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Puts(mglPoint(0, 1.1), &quot;\\{x, y\\}&quot;, &quot;C&quot;, -2);		gr-&gt;Box();
+gr-&gt;Map(a, b, &quot;brgk&quot;, 0, false);
+gr-&gt;SubPlot(2, 1, 1);
+a.Fill(&quot;(x^3+y^3)/2&quot;, gr-&gt;Min, gr-&gt;Max);
+b.Fill(&quot;(x-y)/2&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Puts(mglPoint(0, 1.1), &quot;\\{\\frac{x^3+y^3}{2}, \\frac{x-y}{2}\\}&quot;, &quot;C&quot;, -2);
+gr-&gt;Box();
+gr-&gt;Map(a, b, &quot;brgk&quot;, 0, false);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+text 0 0 '\to'
+zrange -2 2
+subplot 2 1 0
+text 0 1.1 '\{x, y\}' '' -2
+box
+fill a 'x'
+fill b 'y'
+map a b 'brgk' 0 0
+subplot 2 1 1
+text 0 1.1 '\{\frac{x^3+y^3}{2}, \frac{x-y}{2}\}' '' -2
+box
+fill a '(x^3+y^3)/2'
+fill b '(x-y)/2'
+map a b 'brgk' 0 0
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+HMDT b = mgl_create_data_size(50,40,1);
+mgl_puts_ext(gr, 0.,0.,0., &quot;\\to&quot;, &quot;&quot;, -1.4, 't');
+mgl_set_axis_3d(gr,-1.,-1.,-2.,1.,1.,2.);
+mgl_subplot(gr, 2, 1, 0);
+mgl_data_fill_eq(gr, a, &quot;x&quot;, 0, 0);
+mgl_data_fill_eq(gr, b, &quot;y&quot;, 0, 0);
+mgl_puts_ext(gr, 0.,1.1,0., &quot;\\{x, y\\}&quot;, &quot;C&quot;, -2., 't');
+mgl_box(gr,1);
+mgl_map(gr, a, b, &quot;brgk&quot;, 0, 0);
+mgl_subplot(gr, 2, 1, 1);
+mgl_data_fill_eq(gr, a, &quot;(x^3+y^3)/2&quot;, 0, 0);
+mgl_data_fill_eq(gr, b, &quot;(x-y)/2&quot;, 0, 0);
+mgl_puts_ext(gr, 0.,1.1,0., &quot;\\{\\frac{x^3+y^3}{2}, \\frac{x-y}{2}\\}&quot;, &quot;C&quot;, -2., 't');
+mgl_box(gr,1);
+mgl_map(gr, a, b, &quot;brgk&quot;, 0, 0);
+mgl_box(gr,1);
+mgl_map(gr,a,b,0,0,1);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_puts_ext(gr, 0.,0.,0., '\to', '', -1.4, 't');
+call mgl_set_axis_3d(gr,-1.,-1.,-2.,1.,1.,2.);
+call mgl_subplot(gr, 2, 1, 0);
+call mgl_data_fill_eq(gr, a, 'x', 0, 0);
+call mgl_data_fill_eq(gr, b, 'y', 0, 0);
+call mgl_puts_ext(gr, 0.,1.1,0., '\{x, y\}', 'C', -2., 't');
+call mgl_box(gr,1);
+call mgl_map(gr, a, b, 'brgk', 0, 0);
+call mgl_subplot(gr, 2, 1, 1);
+call mgl_data_fill_eq(gr, a, '(x^3+y^3)/2', 0, 0);
+call mgl_data_fill_eq(gr, b, '(x-y)/2', 0, 0);
+call mgl_puts_ext(gr, 0.,1.1,0., '\{\frac{x^3+y^3}{2}, \frac{x-y}{2}\}', 'C', -2., 't');
+call mgl_box(gr,1);
+call mgl_map(gr, a, b, 'brgk', 0, 0);
+call mgl_box(gr,1);
+call mgl_map(gr,a,b,0,0,1);
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(50,40), mglData(50,40);
+gr.Puts(0, 0, 0, &quot;\\to&quot;, &quot;&quot;, -1.4);
+gr.SetRanges(-1,1,-1,1,-2,2);
+gr.SubPlot(2, 1, 0);
+gr.Fill(a, &quot;x&quot;);    gr.Fill(b, &quot;y&quot;);
+gr.Puts(0, 1.1, 0, &quot;\\{x, y\\}&quot;, &quot;C&quot;, -2);
+gr.Box();
+gr.Map(a, b, &quot;brgk&quot;, 0, 0);
+gr.SubPlot(2, 1, 1);
+gr.Fill(a, &quot;(x^3+y^3)/2&quot;);   gr.Fill(b, &quot;(x-y)/2&quot;);
+gr.Puts(0, 1.1, 0, &quot;\\{\\frac{x^3+y^3}{2}, \\frac{x-y}{2}\\}&quot;, &quot;C&quot;, -2);
+gr.Box();
+gr.Map(a, b, &quot;brgk&quot;, 0, 0);
+</pre><hr size="6">
+<a name="Traj-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Map-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Traj-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.5 Traj &ndash; пример использования</h3>
+<a name="index-Traj-3"></a>
+<div class="float">
+<img src="../png/traj.png" alt="../png/traj">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3), x(50), y1(50), y2(50);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+y2.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+x.Fill(-1,1,'x');
+gr-&gt;Box();
+gr-&gt;Plot(x,y);
+gr-&gt;Traj(x,y,y1,y2);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+new x 50
+new y1 50
+new y2 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+fill x -1 1
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+box
+plot x y
+traj x y y1 y2
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+HMDT x= mgl_create_data_size(50,1,1);
+HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_data_modify(x,&quot;2*x-1&quot;,0);
+mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_plot_xy(gr,x,y,NULL);
+mgl_traj_xy(gr,yx,y,y1,y2,NULL,0,0);
+mgl_delete_data(y);  mgl_delete_data(y1);
+mgl_delete_data(x);  mgl_delete_data(y2);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer x,y,y1,y2, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+x= mgl_create_data_size(50,1,1);
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_data_modify(x,'2*x-1',0);
+call mgl_data_modify(y1,'0.5+0.3*cos(2*pi*x)',0);
+call mgl_data_modify(y2,'0.3*sin(2*pi*x)',0);
+call mgl_box(gr,1)
+call mgl_plot_xy(gr,x,y,NULL);
+call mgl_traj_xy(gr,yx,y,y1,y2,NULL,0,0);
+call mgl_delete_data(y)
+call mgl_delete_data(x)
+call mgl_delete_data(y1)
+call mgl_delete_data(y2)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">x,y,y1,y2 = mglData(50), mglData(50,3), mglData(50), mglData(50);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+y2.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+x.Fill(-1,1,'x');
+gr.Box();
+gr.Plot(x,y);
+gr.Traj(x,y,y1,y2);
+</pre><hr size="6">
+<a name="Vect-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Traj-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectL-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.6 Vect &ndash; пример использования</h3>
+<a name="index-Vect-5"></a>
+<div class="float">
+<img src="../png/vect.png" alt="../png/vect">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Vect(a,b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vect a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_vect_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_vect_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.Vect(a,b);
+</pre><hr size="6">
+<a name="VectL-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectC-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectL-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.7 VectL &ndash; пример использования</h3>
+<a name="index-VectL"></a>
+<div class="float">
+<img src="../png/vectl.png" alt="../png/vectl">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;VectL(a,b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectl a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a, b;
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_vectl_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_vectl_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.VectL(a,b);
+</pre><hr size="6">
+<a name="VectC-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectL-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectC-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.8 VectC &ndash; пример использования</h3>
+<a name="index-VectC"></a>
+<div class="float">
+<img src="../png/vectc.png" alt="../png/vectc">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;VectC(a,b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectc a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a, b;
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_vectc_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_vectc_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.VectC(a,b);
+</pre><hr size="6">
+<a name="Flow-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectC-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.9 Flow &ndash; пример использования</h3>
+<a name="index-Flow-5"></a>
+<div class="float">
+<img src="../png/flow.png" alt="../png/flow">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Flow(a,b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+flow a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_flow_2d(gr,a,b,0,5,1,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_flow_2d(gr,a,b,'',5,1,0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.Flow(a,b);
+</pre><hr size="6">
+<a name="Pipe-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dew-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.10 Pipe &ndash; пример использования</h3>
+<a name="index-Pipe-5"></a>
+<div class="float">
+<img src="../png/pipe.png" alt="../png/pipe">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Pipe(a,b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+box
+pipe a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_pipe_2d(gr,a,b,0,0.05,5,1,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_pipe_2d(gr,a,b,'',0.05,5,1,0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Light(True);    gr.Box();
+gr.Pipe(a,b);
+</pre><hr size="6">
+<a name="Dew-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3C-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dew-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.11 Dew &ndash; пример использования</h3>
+<a name="index-Dew-3"></a>
+<div class="float">
+<img src="../png/dew.png" alt="../png/dew">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Light(true);
+gr-&gt;Dew(a,b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+light on
+dew a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_set_light(gr,1);
+mgl_dew_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_set_light(gr,1);
+call mgl_dew_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Light(True);    gr.Box();
+gr.Dew(a,b);
+</pre><hr size="6">
+<a name="Surf3C-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dew-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3A-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3C-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.12 Surf3C &ndash; пример использования</h3>
+<a name="index-Surf3C-5"></a>
+<div class="float">
+<img src="../png/surf3c.png" alt="../png/surf3c">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40), b(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+b.Modify(&quot;1-2*tanh(4*(x+y-1)^2)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Surf3C(a, b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3c a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+HMDT b = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_data_modify(b,&quot;1-2*tanh(4*(x+y-1)^2)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf3c(gr,a,b,0,3);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+b = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_data_modify(b,&quot;1-2*tanh(4*(x+y-1)^2)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf3c(gr,a,b,'',3)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(60,50,40), mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2+(2*y-1)^2+(2*z-1)^4-(2*z-1)^2-0.1)&quot;);
+b.Modify(&quot;1-2*tanh(4*(x+y-1)^2)&quot;);
+gr.Rotate(40,60);   gr.Light(True);     gr.Alpha(True);
+gr.Box();
+gr.Surf3C(a,b);
+</pre><hr size="6">
+<a name="Surf3A-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3C-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3A-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.13 Surf3A &ndash; пример использования</h3>
+<a name="index-Surf3A-5"></a>
+<div class="float">
+<img src="../png/surf3a.png" alt="../png/surf3a">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40), b(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+b.Modify(&quot;1-2*tanh(4*(x+y-1)^2)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Surf3A(a, b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3a a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a, b; a = mgl_create_data_size(60,50,40);
+b = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_data_modify(b,&quot;1-2*tanh(4*(x+y-1)^2)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf3a(gr,a,b,0,3);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+b = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_data_modify(b,&quot;1-2*tanh(4*(x+y-1)^2)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf3a(gr,a,b,'',3)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(60,50,40), mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2+(2*y-1)^2+(2*z-1)^4-(2*z-1)^2-0.1)&quot;);
+b.Modify(&quot;1-2*tanh(4*(x+y-1)^2)&quot;);
+gr.Rotate(40,60);   gr.Light(True);     gr.Alpha(True);
+gr.Box();
+gr.Surf3A(a,b);
+</pre><hr size="6">
+<a name="Vect-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3A-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectL-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.14 Vect 3D &ndash; пример использования</h3>
+<a name="index-Vect-6"></a>
+<div class="float">
+<img src="../png/vect3.png" alt="../png/vect3">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Vect(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vect ex ey ez 'bwr'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_vect_3d(gr,ex,ey,ez,&quot;bwr&quot;);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_vect_3d(gr,ex,ey,ez,'bwr')
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.Vect(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="VectL-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectC-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectL-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.15 VectL 3D &ndash; пример использования</h3>
+<a name="index-VectL-1"></a>
+<div class="float">
+<img src="../png/vectl3.png" alt="../png/vectl3">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;VectL(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectl ex ey ez 'bwr'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_vectl_3d(gr,ex,ey,ez,&quot;bwr&quot;);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_vectl_3d(gr,ex,ey,ez,'bwr')
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.VectL(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="VectC-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectL-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectC-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.16 VectC 3D &ndash; пример использования</h3>
+<a name="index-VectC-1"></a>
+<div class="float">
+<img src="../png/vectc3.png" alt="../png/vectc3">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;VectC(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectc ex ey ez 'bwr'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_vectc_3d(gr,ex,ey,ez,&quot;bwr&quot;);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_vectc_3d(gr,ex,ey,ez,'bwr')
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.VectC(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="Flow-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectC-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.17 Flow 3D &ndash; пример использования</h3>
+<a name="index-Flow-6"></a>
+<div class="float">
+<img src="../png/flow3.png" alt="../png/flow3">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData ex(30,30,30), ey(30,30,30), ez(30,30,30);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Flow(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new ex 30 30 30
+new ey 30 30 30
+new ez 30 30 30
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+flow ex ey ez 'bwr'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(30,30,30);
+ey = mgl_create_data_size(30,30,30);
+ez = mgl_create_data_size(30,30,30);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_flow_3d(gr,ex,ey,ez,&quot;bwr&quot;,3,1);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(30,30,30)
+ey = mgl_create_data_size(30,30,30)
+ez = mgl_create_data_size(30,30,30)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_flow_3d(gr,ex,ey,ez,'bwr',3,1)
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.Flow(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="Pipe-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Crust-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.18 Pipe 3D &ndash; пример использования</h3>
+<a name="index-Pipe-6"></a>
+<div class="float">
+<img src="../png/pipe3.png" alt="../png/pipe3">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Pipe(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+light on
+box
+pipe ex ey ez 'bwr'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_pipe_3d(gr,ex,ey,ez,&quot;bwr&quot;,0.05,3,1);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1);
+call mgl_box(gr,1);
+call mgl_pipe_3d(gr,ex,ey,ez,'bwr',0.05,3,1)
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Pipe(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="Crust-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dots-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Crust-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.19 Crust &ndash; пример использования</h3>
+<a name="index-Crust-3"></a>
+<div class="float">
+<img src="../png/crust.png" alt="../png/crust">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(&quot;hotdogs.pts&quot;);
+a.Norm(-1,1,true);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Crust(a,&quot;p&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+light on
+box
+crust a 'p'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_file(&quot;hotdogs.pts&quot;);
+mgl_data_norm(a,-1.,1.,1,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_crust_tr(gr,a,&quot;p&quot;,0.);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_file
+a = mgl_create_data_file(&quot;hotdogs.pts&quot;)
+call mgl_data_norm(a,-1.,1.,1,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_crust_tr(gr,a,&quot;p&quot;,0.)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(&quot;hotdogs.pts&quot;);
+a.Norm(-1,1,True);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Crust(a);
+</pre><hr size="6">
+<a name="Dots-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Crust-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dots-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.20 Dots &ndash; пример использования</h3>
+<a name="index-Dots-4"></a>
+<div class="float">
+<img src="../png/dots.png" alt="../png/dots">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(&quot;hotdogs.pts&quot;);
+a.Norm(-1,1,true);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Dots(a,&quot;p&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+box
+dots a 'p'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_file(&quot;hotdogs.pts&quot;);
+mgl_data_norm(a,-1.,1.,1,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_dots_tr(gr,a,&quot;p&quot;);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_file
+a = mgl_create_data_file(&quot;hotdogs.pts&quot;)
+call mgl_data_norm(a,-1.,1.,1,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_dots_tr(gr,a,&quot;p&quot;)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(&quot;hotdogs.pts&quot;);
+a.Norm(-1,1,True);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Dots(a);
+</pre>
+
+<hr size="6">
+<a name="Basic-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dots-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0411_0430_0437_043e_0432_044be-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438"></a>
+<h2 class="section">9.5 Базовые возможности</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t1D-plot-sample">9.5.1 Пример графиков 1D данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plot-sample">9.5.2 Пример графиков 2D данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plot-sample">9.5.3 Пример графиков 3D данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Line-styles-sample">9.5.4 Пример стилей линий и маркеров</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Arrow-styles-sample">9.5.5 Пример стилей стрелок</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-styles-sample">9.5.6 Пример стилей текста</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TeX-parsing-sample">9.5.7 Пример TeX формулы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-faces-sample">9.5.8 Примеры начертаний шрифта</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Colors-sample">9.5.9 Примеры цветов</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Color-schemes-sample">9.5.10 Примеры цветовых схем</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Normal-transparency">9.5.11 Обычная прозрачность</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Glass_002dlike-transparency">9.5.12 &quot;Стеклянная&quot; прозрачность</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lamp_002dlike-transparency">9.5.13 &quot;Ламповая&quot; прозрачность</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+</table>
+<hr size="6">
+<a name="g_t1D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Basic-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-1D-_0434_0430_043d_043d_044b_0445"></a>
+<h3 class="subsection">9.5.1 Пример графиков 1D данных</h3>
+<a name="index-Plot-8"></a>
+<a name="index-Bars-8"></a>
+<a name="index-SubPlot-3"></a>
+<div class="float">
+<img src="../png/sample8.png" alt="../png/sample8">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y0(50);		y0.Modify(&quot;sin(pi*(2*x-1))&quot;);
+gr-&gt;SubPlot(2,2,0);
+gr-&gt;Plot(y0);		gr-&gt;Box();
+
+gr-&gt;SubPlot(2,2,1);
+mglData y1(50,2);
+y1.Modify(&quot;sin(pi*2*x-pi)&quot;);	y1.Modify(&quot;cos(pi*2*x-pi)/2&quot;,1);
+gr-&gt;Plot(y1);		gr-&gt;Box();
+
+mglData x(50);		x.Modify(&quot;cos(pi*2*x-pi)&quot;);
+gr-&gt;Plot(x,y0,&quot;Y+&quot;);
+
+gr-&gt;Plot(y1.SubData(-1,0),y1.SubData(-1,1),&quot;q|&quot;);
+
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(60,40);
+mglData z(50);		z.Modify(&quot;2*x-1&quot;);
+gr-&gt;Plot(x,y0,z);		gr-&gt;Box();
+
+mglData y2(10,3);	y2.Modify(&quot;cos(pi*(2*x-1-y))&quot;);
+y2.Modify(&quot;2*x-1&quot;,2);
+gr-&gt;Plot(y2.SubData(-1,0),y2.SubData(-1,1),y2.SubData(-1,2),&quot;bo &quot;);
+
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(60,40);
+gr-&gt;Bars(x,y0,z,&quot;ri&quot;);		gr-&gt;Box();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y0 50: modify y0 'sin(pi*(2*x-1))'
+subplot 2 2 0
+plot y0: box
+
+subplot 2 2 1
+new y1 50 2
+modify y1 'sin(pi*2*x-pi)'
+modify y1 'cos(pi*2*x-pi)/2' 1
+plot y1: box
+
+new x 50: modify x 'cos(pi*2*x-pi)'
+plot x y0 'Y+'
+plot y1(:,0) y(:,1) 'q|'
+
+subplot 2 2 2:rotate 60 40
+new z 50:   modify z '2*x-1'
+plot x y0 z 'g':box
+new y2 10 3
+modify y2 'cos(pi*(2*x-1-y))'
+modify y2 '2*x-1' 2
+plot y2(:,0) y2(:,1) y2(:,2) 'bo '
+
+subplot 2 2 3:rotate 60 40
+bars x y0 z 'r':box
+</pre><hr size="6">
+<a name="g_t2D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-2D-_0434_0430_043d_043d_044b_0445"></a>
+<h3 class="subsection">9.5.2 Пример графиков 2D данных</h3>
+<a name="index-Surf-10"></a>
+<a name="index-Dens-4"></a>
+<a name="index-Alpha-3"></a>
+<div class="float">
+<img src="../png/sample9.png" alt="../png/sample9">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Light(true);
+mglData a0(50,40);
+a0.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(60,40);
+gr-&gt;Surf(a0);       gr-&gt;Box();
+
+mglData x(50,40),y(50,40),z(50,40);
+x.Modify(&quot;0.8*sin(2*pi*x)*sin(pi*y)&quot;);
+y.Modify(&quot;0.8*cos(2*pi*x)*sin(pi*y)&quot;);
+z.Modify(&quot;0.8*cos(pi*y)&quot;);
+gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(60,40);
+gr-&gt;Surf(x,y,z,&quot;BbwrR&quot;);    gr-&gt;Box();
+
+mglData a1(50,40,3);
+a1.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+a1.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*sin(3*pi*(x*y))&quot;,1);
+a1.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,2);
+gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(60,40);
+gr-&gt;Alpha(true);
+gr-&gt;Surf(a1);       gr-&gt;Box();
+
+gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(60,40);
+gr-&gt;Dens(a1);       gr-&gt;Box();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">light on
+
+new a0 50 40
+modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+subplot 2 2 0:rotate 60 40
+surf a0: box
+
+new x 50 40: new y 50 40: new z 50 40
+modify x '0.8*sin(2*pi*x)*sin(pi*y)'
+modify y '0.8*cos(2*pi*x)*sin(pi*y)'
+modify z '0.8*cos(pi*y)'
+subplot 2 2 1:rotate 60 40
+surf x y z 'bbwrr': box
+
+new a1 50 40 3
+modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
+subplot 2 2 2:rotate 60 40
+alpha on
+surf a1: box
+
+subplot 2 2 3: rotate 60 40
+dens a1: box
+</pre><hr size="6">
+<a name="g_t3D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Line-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-3D-_0434_0430_043d_043d_044b_0445"></a>
+<h3 class="subsection">9.5.3 Пример графиков 3D данных</h3>
+<a name="index-Surf-11"></a>
+<a name="index-Dens-5"></a>
+<a name="index-Alpha-4"></a>
+<div class="float">
+<img src="../png/sampleb.png" alt="../png/sampleb">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true);	gr-&gt;Light(true);	gr-&gt;Light(0,mglPoint(0,0,1));
+mglData a(30,30,30), b(30,30,30);
+a.Modify(&quot;exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))&quot;);
+b.Modify(&quot;16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)&quot;);
+gr-&gt;CAxis(0,1);
+
+gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);
+gr-&gt;Surf3(a,&quot;wgk&quot;);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);
+gr-&gt;DensA(a);		gr-&gt;Box();	gr-&gt;Axis();
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);
+gr-&gt;Cloud(a);		gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);
+gr-&gt;Surf3A(b,a,&quot;q&quot;);		gr-&gt;Box();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">alpha on: light on
+light 0 0 0 1
+new a 30 30 30: new b 30 30 30
+modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
+modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
+caxis 0 1
+
+subplot 2 2 0: rotate 40 60
+surf3 a 'wgk': box
+subplot 2 2 1: rotate 40 60
+densa a: box: axis
+subplot 2 2 2: rotate 40 60
+cloud a: box
+subplot 2 2 3: rotate 40 60
+surf3a b a 'q': box
+</pre><hr size="6">
+<a name="Line-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Arrow-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_043b_0438_043d_0438_0439-_0438-_043c_0430_0440_043ae_0440_043e_0432"></a>
+<h3 class="subsection">9.5.4 Пример стилей линий и маркеров</h3>
+<a name="index-Mark-8"></a>
+<a name="index-Line-3"></a>
+<div class="float">
+<img src="../png/sample5.png" alt="../png/sample5">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">float d,x1,x2,x0,y=0.95;
+d=0.3, x0=0.2, x1=0.5, x2=0.6;
+gr-&gt;Line(mglPoint(x0,1-0*d),mglPoint(x1,1-0*d),&quot;k-&quot;);	gr-&gt;Puts(mglPoint(x2,y-0*d),&quot;Solid '-'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-1*d),mglPoint(x1,1-1*d),&quot;k|&quot;);	gr-&gt;Puts(mglPoint(x2,y-1*d),&quot;Long Dash '|'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-2*d),mglPoint(x1,1-2*d),&quot;k;&quot;);	gr-&gt;Puts(mglPoint(x2,y-2*d),&quot;Dash ';'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-3*d),mglPoint(x1,1-3*d),&quot;k=&quot;);	gr-&gt;Puts(mglPoint(x2,y-3*d),&quot;Small dash '='&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-4*d),mglPoint(x1,1-4*d),&quot;kj&quot;);	gr-&gt;Puts(mglPoint(x2,y-4*d),&quot;Dash-dot 'j'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-5*d),mglPoint(x1,1-5*d),&quot;ki&quot;);	gr-&gt;Puts(mglPoint(x2,y-5*d),&quot;Small dash-dot 'i'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-6*d),mglPoint(x1,1-6*d),&quot;k:&quot;);	gr-&gt;Puts(mglPoint(x2,y-6*d),&quot;Dots ':'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-7*d),mglPoint(x1,1-7*d),&quot;k &quot;);	gr-&gt;Puts(mglPoint(x2,y-7*d),&quot;None ' '&quot;,&quot;rL&quot;);
+
+d=0.25; x1=-1; x0=-0.8;	y = -0.05;
+gr-&gt;Mark(mglPoint(x1,5*d),'.');		gr-&gt;Puts(mglPoint(x0,y+5*d),&quot;'.'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,4*d),'+');		gr-&gt;Puts(mglPoint(x0,y+4*d),&quot;'+'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,3*d),'x');		gr-&gt;Puts(mglPoint(x0,y+3*d),&quot;'x'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,2*d),'*');		gr-&gt;Puts(mglPoint(x0,y+2*d),&quot;'*'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,d),'s');		gr-&gt;Puts(mglPoint(x0,y+d),&quot;'s'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,0),'d');		gr-&gt;Puts(mglPoint(x0,y),&quot;'d'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-d,0),'o');	gr-&gt;Puts(mglPoint(x0,y-d),&quot;'o'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-2*d,0),'^');	gr-&gt;Puts(mglPoint(x0,y-2*d),&quot;'\\^'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-3*d,0),'v');	gr-&gt;Puts(mglPoint(x0,y-3*d),&quot;'v'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-4*d,0),'&lt;');	gr-&gt;Puts(mglPoint(x0,y-4*d),&quot;'&lt;'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-5*d,0),'&gt;');	gr-&gt;Puts(mglPoint(x0,y-5*d),&quot;'&gt;'&quot;,&quot;rL&quot;);
+
+d=0.25; x1=-0.5; x0=-0.3;	y = -0.05;
+gr-&gt;Mark(mglPoint(x1,5*d),'C');		gr-&gt;Puts(mglPoint(x0,y+5*d),&quot;'\\#.'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,4*d),'P');		gr-&gt;Puts(mglPoint(x0,y+4*d),&quot;'\\#+'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,3*d),'X');		gr-&gt;Puts(mglPoint(x0,y+3*d),&quot;'\\#x'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,2*d),'Y');		gr-&gt;Puts(mglPoint(x0,y+2*d),&quot;'\\#*'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,d),'S');		gr-&gt;Puts(mglPoint(x0,y+d),&quot;'\\#s'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,0),'D');		gr-&gt;Puts(mglPoint(x0,y),&quot;'\\#d'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-d,0),'O');	gr-&gt;Puts(mglPoint(x0,y-d),&quot;'\\#o'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-2*d,0),'T');	gr-&gt;Puts(mglPoint(x0,y-2*d),&quot;'\\#\\^'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-3*d,0),'V');	gr-&gt;Puts(mglPoint(x0,y-3*d),&quot;'\\#v'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-4*d,0),'L');	gr-&gt;Puts(mglPoint(x0,y-4*d),&quot;'\\#&lt;'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-5*d,0),'R');	gr-&gt;Puts(mglPoint(x0,y-5*d),&quot;'\\#&gt;'&quot;,&quot;rL&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Arrow-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Line-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_0441_0442_0440e_043b_043e_043a"></a>
+<h3 class="subsection">9.5.5 Пример стилей стрелок</h3>
+<a name="index-Line-4"></a>
+<div class="float">
+<img src="../png/sampled.png" alt="../png/sampled">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">float a=0.1,b=0.4,c=0.5;
+gr-&gt;Line(mglPoint(a,1),mglPoint(b,1),&quot;k-A&quot;);		gr-&gt;Puts(mglPoint(c,1),&quot;Style 'A' or 'A\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.8),mglPoint(b,0.8),&quot;k-V&quot;);	gr-&gt;Puts(mglPoint(c,0.8),&quot;Style 'V' or 'V\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.6),mglPoint(b,0.6),&quot;k-K&quot;);	gr-&gt;Puts(mglPoint(c,0.6),&quot;Style 'K' or 'K\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.4),mglPoint(b,0.4),&quot;k-I&quot;);	gr-&gt;Puts(mglPoint(c,0.4),&quot;Style 'I' or 'I\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.2),mglPoint(b,0.2),&quot;k-D&quot;);	gr-&gt;Puts(mglPoint(c,0.2),&quot;Style 'D' or 'D\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0),mglPoint(b,0),&quot;k-S&quot;);		gr-&gt;Puts(mglPoint(c,0),&quot;Style 'S' or 'S\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.2),mglPoint(b,-0.2),&quot;k-O&quot;);	gr-&gt;Puts(mglPoint(c,-0.2),&quot;Style 'O' or 'O\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.4),mglPoint(b,-0.4),&quot;k-T&quot;);	gr-&gt;Puts(mglPoint(c,-0.4),&quot;Style 'T' or 'T\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.6),mglPoint(b,-0.6),&quot;k-_&quot;);	gr-&gt;Puts(mglPoint(c,-0.6),&quot;Style '\\_' or none&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.8),mglPoint(b,-0.8),&quot;k-AS&quot;);	gr-&gt;Puts(mglPoint(c,-0.8),&quot;Style 'AS'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-1),mglPoint(b,-1),&quot;k-_A&quot;);		gr-&gt;Puts(mglPoint(c,-1),&quot;Style '\\_A'&quot;,&quot;rL&quot;);
+
+a=-1;	b=-0.7;	c=-0.6;
+gr-&gt;Line(mglPoint(a,1),mglPoint(b,1),&quot;kAA&quot;);		gr-&gt;Puts(mglPoint(c,1),&quot;Style 'AA'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.8),mglPoint(b,0.8),&quot;kVV&quot;);	gr-&gt;Puts(mglPoint(c,0.8),&quot;Style 'VV'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.6),mglPoint(b,0.6),&quot;kKK&quot;);	gr-&gt;Puts(mglPoint(c,0.6),&quot;Style 'KK'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.4),mglPoint(b,0.4),&quot;kII&quot;);	gr-&gt;Puts(mglPoint(c,0.4),&quot;Style 'II'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.2),mglPoint(b,0.2),&quot;kDD&quot;);	gr-&gt;Puts(mglPoint(c,0.2),&quot;Style 'DD'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0),mglPoint(b,0),&quot;kSS&quot;);		gr-&gt;Puts(mglPoint(c,0),&quot;Style 'SS'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.2),mglPoint(b,-0.2),&quot;kOO&quot;);	gr-&gt;Puts(mglPoint(c,-0.2),&quot;Style 'OO'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.4),mglPoint(b,-0.4),&quot;kTT&quot;);	gr-&gt;Puts(mglPoint(c,-0.4),&quot;Style 'TT'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.6),mglPoint(b,-0.6),&quot;k-__&quot;);	gr-&gt;Puts(mglPoint(c,-0.6),&quot;Style '\\_\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.8),mglPoint(b,-0.8),&quot;k-VA&quot;);	gr-&gt;Puts(mglPoint(c,-0.8),&quot;Style 'VA'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-1),mglPoint(b,-1),&quot;k-AV&quot;);		gr-&gt;Puts(mglPoint(c,-1),&quot;Style 'AV'&quot;,&quot;rL&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Text-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Arrow-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TeX-parsing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_0442e_043a_0441_0442_0430"></a>
+<h3 class="subsection">9.5.6 Пример стилей текста</h3>
+<a name="index-Puts-5"></a>
+<div class="float">
+<img src="../png/sample4.png" alt="../png/sample4">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Putsw(mglPoint(0,1),L&quot;Text can be in ASCII and in Unicode&quot;);
+gr-&gt;Puts(mglPoint(0,0.6),&quot;It can be \\wire{wire}, \\big{big} or #r{colored}&quot;);
+gr-&gt;Puts(mglPoint(0,0.2),&quot;One can change style in string: &quot;
+        &quot;\\b{bold}, \\i{italic, \\b{both}}&quot;);
+gr-&gt;Puts(mglPoint(0,-0.2),&quot;Easy to \\a{overline} or &quot;
+        &quot;\\u{underline}&quot;);
+gr-&gt;Puts(mglPoint(0,-0.6),&quot;Easy to change indexes ^{up} _{down} @{center}&quot;);
+gr-&gt;Puts(mglPoint(0,-1),&quot;It parse TeX: \\int \\alpha \\cdot &quot;
+        &quot;\\sqrt3{sin(\\pi x)^2 + \\gamma_{i_k}} dx&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">text 0 1 'Text can be in ASCII and in Unicode'
+text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
+text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
+text 0 -0.2 'Easy to \a{overline} or \u{underline}'
+text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
+text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
+</pre><hr size="6">
+<a name="TeX-parsing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-faces-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-TeX-_0444_043e_0440_043c_0443_043b_044b"></a>
+<h3 class="subsection">9.5.7 Пример TeX формулы</h3>
+<a name="index-Puts-6"></a>
+<div class="float">
+<img src="../png/samplee.png" alt="../png/samplee">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Puts(mglPoint(0), &quot;\\sqrt{\\frac{\\alpha^{\\gamma^2}+&quot;
+        &quot;\\overset 1{\\big\\infty}}{\\sqrt3{2+b}}}&quot;, 0, -4);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}' '' -4
+</pre><hr size="6">
+<a name="Font-faces-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TeX-parsing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-_043d_0430_0447e_0440_0442_0430_043d_0438_0439-_0448_0440_0438_0444_0442_0430"></a>
+<h3 class="subsection">9.5.8 Примеры начертаний шрифта</h3>
+<a name="index-Puts-7"></a>
+<div class="float">
+<img src="../png/fonts.png" alt="../png/fonts">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">float h=1.1, d=0.25;
+gr-&gt;LoadFont(&quot;STIX&quot;);		gr-&gt;Puts(mglPoint(0,h), &quot;default font (STIX)&quot;);
+gr-&gt;LoadFont(&quot;adventor&quot;);	gr-&gt;Puts(mglPoint(0,h-d), &quot;adventor font&quot;);
+gr-&gt;LoadFont(&quot;bonum&quot;);		gr-&gt;Puts(mglPoint(0,h-2*d), &quot;bonum font&quot;);
+gr-&gt;LoadFont(&quot;chorus&quot;);		gr-&gt;Puts(mglPoint(0,h-3*d), &quot;chorus font&quot;);
+gr-&gt;LoadFont(&quot;cursor&quot;);		gr-&gt;Puts(mglPoint(0,h-4*d), &quot;cursor font&quot;);
+gr-&gt;LoadFont(&quot;heros&quot;);		gr-&gt;Puts(mglPoint(0,h-5*d), &quot;heros font&quot;);
+gr-&gt;LoadFont(&quot;heroscn&quot;);	gr-&gt;Puts(mglPoint(0,h-6*d), &quot;heroscn font&quot;);
+gr-&gt;LoadFont(&quot;pagella&quot;);	gr-&gt;Puts(mglPoint(0,h-7*d), &quot;pagella font&quot;);
+gr-&gt;LoadFont(&quot;schola&quot;);		gr-&gt;Puts(mglPoint(0,h-8*d), &quot;schola font&quot;);
+gr-&gt;LoadFont(&quot;termes&quot;);		gr-&gt;Puts(mglPoint(0,h-9*d), &quot;termes font&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-faces-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Color-schemes-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-c_0432e_0442_043e_0432"></a>
+<h3 class="subsection">9.5.9 Примеры цветов</h3>
+<div class="float">
+<img src="../png/colors.png" alt="../png/colors">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">//#LENUQ
+gr-&gt;FaceZ(-1,	-1, 0, 0.4, 0.3, &quot;L#&quot;);	gr-&gt;Puts(mglPoint(-0.8,-0.9), &quot;L&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	-1, 0, 0.4, 0.3, &quot;E#&quot;);	gr-&gt;Puts(mglPoint(-0.4,-0.9), &quot;E&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	-1, 0, 0.4, 0.3, &quot;N#&quot;);	gr-&gt;Puts(mglPoint(0,  -0.9), &quot;N&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	-1, 0, 0.4, 0.3, &quot;U#&quot;);	gr-&gt;Puts(mglPoint(0.4,-0.9), &quot;U&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	-1, 0, 0.4, 0.3, &quot;Q#&quot;);	gr-&gt;Puts(mglPoint(0.8,-0.9), &quot;Q&quot;, &quot;C:w&quot;, -1.4);
+//#lenuq
+gr-&gt;FaceZ(-1,	-0.7, 0, 0.4, 0.3, &quot;l#&quot;);	gr-&gt;Puts(mglPoint(-0.8,-0.6), &quot;l&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	-0.7, 0, 0.4, 0.3, &quot;e#&quot;);	gr-&gt;Puts(mglPoint(-0.4,-0.6), &quot;e&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	-0.7, 0, 0.4, 0.3, &quot;n#&quot;);	gr-&gt;Puts(mglPoint(0,  -0.6), &quot;n&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	-0.7, 0, 0.4, 0.3, &quot;u#&quot;);	gr-&gt;Puts(mglPoint(0.4,-0.6), &quot;u&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	-0.7, 0, 0.4, 0.3, &quot;q#&quot;);	gr-&gt;Puts(mglPoint(0.8,-0.6), &quot;q&quot;, &quot;C:k&quot;, -1.4);
+//#CMYkP
+gr-&gt;FaceZ(-1,	-0.4, 0, 0.4, 0.3, &quot;C#&quot;);	gr-&gt;Puts(mglPoint(-0.8,-0.3), &quot;C&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	-0.4, 0, 0.4, 0.3, &quot;M#&quot;);	gr-&gt;Puts(mglPoint(-0.4,-0.3), &quot;M&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	-0.4, 0, 0.4, 0.3, &quot;Y#&quot;);	gr-&gt;Puts(mglPoint(0,  -0.3), &quot;Y&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	-0.4, 0, 0.4, 0.3, &quot;k#&quot;);	gr-&gt;Puts(mglPoint(0.4,-0.3), &quot;k&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	-0.4, 0, 0.4, 0.3, &quot;P#&quot;);	gr-&gt;Puts(mglPoint(0.8,-0.3), &quot;P&quot;, &quot;C:w&quot;, -1.4);
+//#cmywp
+gr-&gt;FaceZ(-1,	-0.1, 0, 0.4, 0.3, &quot;c#&quot;);	gr-&gt;Puts(mglPoint(-0.8, 0), &quot;c&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	-0.1, 0, 0.4, 0.3, &quot;m#&quot;);	gr-&gt;Puts(mglPoint(-0.4, 0), &quot;m&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	-0.1, 0, 0.4, 0.3, &quot;y#&quot;);	gr-&gt;Puts(mglPoint(0,   0), &quot;y&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	-0.1, 0, 0.4, 0.3, &quot;w#&quot;);	gr-&gt;Puts(mglPoint(0.4, 0), &quot;w&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	-0.1, 0, 0.4, 0.3, &quot;p#&quot;);	gr-&gt;Puts(mglPoint(0.8, 0), &quot;p&quot;, &quot;C:k&quot;, -1.4);
+//#BGRHW
+gr-&gt;FaceZ(-1,	0.2, 0, 0.4, 0.3, &quot;B#&quot;);	gr-&gt;Puts(mglPoint(-0.8, 0.3), &quot;B&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	0.2, 0, 0.4, 0.3, &quot;G#&quot;);	gr-&gt;Puts(mglPoint(-0.4, 0.3), &quot;G&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	0.2, 0, 0.4, 0.3, &quot;R#&quot;);	gr-&gt;Puts(mglPoint(0,   0.3), &quot;R&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	0.2, 0, 0.4, 0.3, &quot;H#&quot;);	gr-&gt;Puts(mglPoint(0.4, 0.3), &quot;H&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	0.2, 0, 0.4, 0.3, &quot;W#&quot;);	gr-&gt;Puts(mglPoint(0.8, 0.3), &quot;W&quot;, &quot;C:w&quot;, -1.4);
+//#bgrhw
+gr-&gt;FaceZ(-1,	0.2, 0, 0.4, 0.3, &quot;b#&quot;);	gr-&gt;Puts(mglPoint(-0.8, 0.6), &quot;b&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	0.5, 0, 0.4, 0.3, &quot;g#&quot;);	gr-&gt;Puts(mglPoint(-0.4, 0.6), &quot;g&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	0.2, 0, 0.4, 0.3, &quot;r#&quot;);	gr-&gt;Puts(mglPoint(0,   0.6), &quot;r&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	0.2, 0, 0.4, 0.3, &quot;h#&quot;);	gr-&gt;Puts(mglPoint(0.4, 0.6), &quot;h&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	0.2, 0, 0.4, 0.3, &quot;w#&quot;);	gr-&gt;Puts(mglPoint(0.8, 0.6), &quot;w&quot;, &quot;C:k&quot;, -1.4);
+//#brighted
+gr-&gt;FaceZ(-1,	0.8, 0, 0.4, 0.3, &quot;r1#&quot;);	gr-&gt;Puts(mglPoint(-0.8, 0.9), &quot;r1&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	0.8, 0, 0.4, 0.3, &quot;r3#&quot;);	gr-&gt;Puts(mglPoint(-0.4, 0.9), &quot;r3&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	0.8, 0, 0.4, 0.3, &quot;r5#&quot;);	gr-&gt;Puts(mglPoint(0,   0.9), &quot;r5&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	0.8, 0, 0.4, 0.3, &quot;r7#&quot;);	gr-&gt;Puts(mglPoint(0.4, 0.9), &quot;r7&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	0.8, 0, 0.4, 0.3, &quot;r9#&quot;);	gr-&gt;Puts(mglPoint(0.8, 0.9), &quot;r9&quot;, &quot;C:k&quot;, -1.4);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">#LENUQ
+facez -1   -1 0 0.4 0.3 'L#': text -0.8 -0.9 'L' 'C:w'
+facez -0.6 -1 0 0.4 0.3 'E#': text -0.4 -0.9 'E' 'C:w'
+facez -0.2 -1 0 0.4 0.3 'N#': text  0   -0.9 'N' 'C:w'
+facez  0.2 -1 0 0.4 0.3 'U#': text  0.4 -0.9 'U' 'C:w'
+facez  0.6 -1 0 0.4 0.3 'Q#': text  0.8 -0.9 'Q' 'C:w'
+#lenuq
+facez -1   -0.7 0 0.4 0.3 'l#': text -0.8 -0.6 'l' 'C:k'
+facez -0.6 -0.7 0 0.4 0.3 'e#': text -0.4 -0.6 'e' 'C:k'
+facez -0.2 -0.7 0 0.4 0.3 'n#': text  0   -0.6 'n' 'C:k'
+facez  0.2 -0.7 0 0.4 0.3 'u#': text  0.4 -0.6 'u' 'C:k'
+facez  0.6 -0.7 0 0.4 0.3 'q#': text  0.8 -0.6 'q' 'C:k'
+#CMYkP
+facez -1   -0.4 0 0.4 0.3 'C#': text -0.8 -0.3 'C' 'C:w'
+facez -0.6 -0.4 0 0.4 0.3 'M#': text -0.4 -0.3 'M' 'C:w'
+facez -0.2 -0.4 0 0.4 0.3 'Y#': text  0   -0.3 'Y' 'C:w'
+facez  0.2 -0.4 0 0.4 0.3 'k#': text  0.4 -0.3 'k' 'C:w'
+facez  0.6 -0.4 0 0.4 0.3 'P#': text  0.8 -0.3 'P' 'C:w'
+#lenuq
+facez -1   -0.1 0 0.4 0.3 'c#': text -0.8 0 'c' 'C:k'
+facez -0.6 -0.1 0 0.4 0.3 'm#': text -0.4 0 'm' 'C:k'
+facez -0.2 -0.1 0 0.4 0.3 'y#': text  0   0 'y' 'C:k'
+facez  0.2 -0.1 0 0.4 0.3 'w#': text  0.4 0 'w' 'C:k'
+facez  0.6 -0.1 0 0.4 0.3 'p#': text  0.8 0 'p' 'C:k'
+#BGRHW
+facez -1   0.2 0 0.4 0.3 'B#': text -0.8 0.3 'B' 'C:k'
+facez -0.6 0.2 0 0.4 0.3 'G#': text -0.4 0.3 'G' 'C:k'
+facez -0.2 0.2 0 0.4 0.3 'R#': text  0   0.3 'R' 'C:k'
+facez  0.2 0.2 0 0.4 0.3 'H#': text  0.4 0.3 'H' 'C:k'
+facez  0.6 0.2 0 0.4 0.3 'W#': text  0.8 0.3 'W' 'C:k'
+#bgrhw
+facez -1   0.5 0 0.4 0.3 'b#': text -0.8 0.6 'b' 'C:w'
+facez -0.6 0.5 0 0.4 0.3 'g#': text -0.4 0.6 'g' 'C:w'
+facez -0.2 0.5 0 0.4 0.3 'r#': text  0   0.6 'r' 'C:w'
+facez  0.2 0.5 0 0.4 0.3 'h#': text  0.4 0.6 'h' 'C:w'
+facez  0.6 0.5 0 0.4 0.3 'w#': text  0.8 0.6 'w' 'C:w'
+#brighted
+facez -1   0.8 0 0.4 0.3 'r1#': text -0.8 0.9 'r1' 'C:k'
+facez -0.6 0.8 0 0.4 0.3 'r3#': text -0.4 0.9 'r3' 'C:k'
+facez -0.2 0.8 0 0.4 0.3 'r5#': text  0   0.9 'r5' 'C:k'
+facez  0.2 0.8 0 0.4 0.3 'r7#': text  0.4 0.9 'r7' 'C:k'
+facez  0.6 0.8 0 0.4 0.3 'r9#': text  0.8 0.9 'r9' 'C:k'
+</pre><hr size="6">
+<a name="Color-schemes-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Normal-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-c_0432e_0442_043e_0432_044b_0445-_0441_0445e_043c"></a>
+<h3 class="subsection">9.5.10 Примеры цветовых схем</h3>
+<a name="index-Colorbar-7"></a>
+<div class="float">
+<img src="../png/color_schemes.png" alt="../png/color_schemes">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(256,2);	a.Fill(-1,1);
+gr-&gt;SubPlot(2,10,0,0.2);	gr-&gt;Dens(a,&quot;kw&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kw&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,1,0.2);	gr-&gt;Dens(a,&quot;wk&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;wk&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,2,0.2);	gr-&gt;Dens(a,&quot;kHCcw&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kHCcw&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,3,0.2);	gr-&gt;Dens(a,&quot;kBbcw&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kBbcw&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,4,0.2);	gr-&gt;Dens(a,&quot;kRryw&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kRryw&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,5,0.2);	gr-&gt;Dens(a,&quot;kGgew&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kGgew&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,6,0.2);	gr-&gt;Dens(a,&quot;BbwrR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbwrR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,7,0.2);	gr-&gt;Dens(a,&quot;BbwgG&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbwgG&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,8,0.2);	gr-&gt;Dens(a,&quot;GgwmM&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;GgwmM&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,9,0.2);	gr-&gt;Dens(a,&quot;UuwqR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;UuwqR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,10,0.2);	gr-&gt;Dens(a,&quot;QqwcC&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;QqwcC&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,11,0.2);	gr-&gt;Dens(a,&quot;CcwyY&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;CcwyY&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,12,0.2);	gr-&gt;Dens(a,&quot;bcwyr&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;bcwyr&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,13,0.2);	gr-&gt;Dens(a,&quot;bwr&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;bwr&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,14,0.2);	gr-&gt;Dens(a,&quot;BbcyrR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbcyrR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,15,0.2);	gr-&gt;Dens(a,&quot;UbcyqR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;UbcyqR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,16,0.2);	gr-&gt;Dens(a,&quot;BbcwyrR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbcwyrR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,17,0.2);	gr-&gt;Dens(a,&quot;bcyr&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;bcyr&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,18,0.2);	gr-&gt;Dens(a,&quot;BbcyrR|&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbcyrR|&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,19,0.2);	gr-&gt;Dens(a,&quot;bgr&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;bgr&quot;, &quot;C&quot;, -8);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 256 2: fill a 'x'
+subplot 2 10 0 0.2:dens a 'kw'
+text -1.4 -0.3 'kw' '' -8
+subplot 2 10 1 0.2:dens a 'wk'
+text -1.4 -0.3 'wk' '' -8
+subplot 2 10 2 0.2:dens a 'kHCcw'
+text -1.4 -0.3 'kHCcw' '' -8
+subplot 2 10 3 0.2:dens a 'kBbcw'
+text -1.4 -0.3 'kBbcw' '' -8
+subplot 2 10 4 0.2:dens a 'kRryw'
+text -1.4 -0.3 'kRryw' '' -8
+subplot 2 10 5 0.2:dens a 'kGgew'
+text -1.4 -0.3 'kGgew' '' -8
+subplot 2 10 6 0.2:dens a 'BbwrR'
+text -1.4 -0.3 'BbwrR' '' -8
+subplot 2 10 7 0.2:dens a 'BbwgG'
+text -1.4 -0.3 'BbwgG' '' -8
+subplot 2 10 8 0.2:dens a 'GgwmM'
+text -1.4 -0.3 'GgwmM' '' -8
+subplot 2 10 9 0.2:dens a 'UuwqR'
+text -1.4 -0.3 'UuwqR' '' -8
+subplot 2 10 10 0.2:dens a 'QqwcC'
+text -1.4 -0.3 'QqwcC' '' -8
+subplot 2 10 11 0.2:dens a 'CcwyY'
+text -1.4 -0.3 'CcwyY' '' -8
+subplot 2 10 12 0.2:dens a 'bcwyr'
+text -1.4 -0.3 'bcwyr' '' -8
+subplot 2 10 13 0.2:dens a 'bwr'
+text -1.4 -0.3 'bwr' '' -8
+subplot 2 10 14 0.2:dens a 'BbcyrR'
+text -1.4 -0.3 'BbcyrR' '' -8
+subplot 2 10 15 0.2:dens a 'UbcyqR'
+text -1.4 -0.3 'UbcyqR' '' -8
+subplot 2 10 16 0.2:dens a 'BbcwyrR'
+text -1.4 -0.3 'BbcwyrR' '' -8
+subplot 2 10 17 0.2:dens a 'bcyr'
+text -1.4 -0.3 'bcyr' '' -8
+subplot 2 10 18 0.2:dens a 'BbcyrR|'
+text -1.4 -0.3 'BbcyrR|' '' -8
+subplot 2 10 19 0.2:dens a 'bgr'
+text -1.4 -0.3 'bgr' '' -8
+</pre><hr size="6">
+<a name="Normal-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Color-schemes-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Glass_002dlike-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0431_044b_0447_043d_0430ya-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x"></a>
+<h3 class="subsection">9.5.11 Обычная прозрачность</h3>
+<a name="index-TranspType"></a>
+<div class="float">
+<img src="../png/type0.png" alt="../png/type0">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true);	gr-&gt;Light(true);
+mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+
+gr-&gt;TranspType = 0;	gr-&gt;Clf();
+gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);	gr-&gt;Surf(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);	gr-&gt;Dens(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);	gr-&gt;Cont(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);	gr-&gt;Axial(a);	gr-&gt;Box();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 0: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre><hr size="6">
+<a name="Glass_002dlike-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Normal-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lamp_002dlike-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0022_0421_0442e_043a_043bya_043d_043d_0430ya_0022-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x"></a>
+<h3 class="subsection">9.5.12 &quot;Стеклянная&quot; прозрачность</h3>
+<a name="index-TranspType-1"></a>
+<div class="float">
+<img src="../png/type1.png" alt="../png/type1">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true);	gr-&gt;Light(true);
+mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+
+gr-&gt;TranspType = 1;	gr-&gt;Clf();
+gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);	gr-&gt;Surf(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);	gr-&gt;Dens(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);	gr-&gt;Cont(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);	gr-&gt;Axial(a);	gr-&gt;Box();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 1: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre><hr size="6">
+<a name="Lamp_002dlike-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Glass_002dlike-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0022_041b_0430_043c_043f_043e_0432_0430ya_0022-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x"></a>
+<h3 class="subsection">9.5.13 &quot;Ламповая&quot; прозрачность</h3>
+<a name="index-TranspType-2"></a>
+<div class="float">
+<img src="../png/type2.png" alt="../png/type2">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true);	gr-&gt;Light(true);
+mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+
+gr-&gt;TranspType = 2;	gr-&gt;Clf();
+gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);	gr-&gt;Surf(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);	gr-&gt;Dens(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);	gr-&gt;Cont(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);	gr-&gt;Axial(a);	gr-&gt;Box();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 2: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre>
+
+
+
+
+
+
+
+
+<hr size="6">
+<a name="Additional-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lamp_002dlike-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0414_043e_043f_043e_043b_043d_0438_0442e_043bx_043d_044be-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438"></a>
+<h2 class="section">9.6 Дополнительные возможности</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Legend-sample">9.6.1 Legend &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Adding-mesh-sample">9.6.2 Добавляем сетку</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf-_0026-Cont-sample">9.6.3 Surf &amp; Cont &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-_0026-Dens-sample">9.6.4 Flow &amp; Dens &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Several-light-sample">9.6.5 Несколько источников света</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mirrored-surface-sample">9.6.6 Отражение поверхности</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-with-labels-sample">9.6.7 Cont и подписи &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ternary-plot-sample">9.6.8 Ternary plot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Coloring-by-coordinates-sample">9.6.9 Окрашивание по положению грани</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Drops-sample">9.6.10 Drops &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Molecules-drawing-sample">9.6.11 Рисование молекул</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">    
+</td></tr>
+</table>
+<hr size="6">
+<a name="Legend-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Additional-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Adding-mesh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Legend-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.6.1 Legend &ndash; пример использования</h3>
+<a name="index-Plot-9"></a>
+<a name="index-Legend-5"></a>
+<a name="index-AddLegend-3"></a>
+<div class="float">
+<img src="../png/legend.png" alt="../png/legend">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData f(50,3);
+f.Modify(&quot;sin(2*pi*x*x)&quot;,0);
+f.Modify(&quot;sin(2*pi*x)&quot;,1);
+f.Modify(&quot;sin(2*pi*sqrt(x))&quot;,2);
+gr-&gt;Axis(mglPoint(0,-1),mglPoint(1,1));
+gr-&gt;Box(); gr-&gt;Plot(f); gr-&gt;Axis();
+gr-&gt;AddLegend(&quot;sin(\\pi {x^2})&quot;,&quot;b&quot;);
+gr-&gt;AddLegend(&quot;sin(\\pi x)&quot;,&quot;g*&quot;);
+gr-&gt;AddLegend(&quot;sin(\\pi \\sqrt{\\a x})&quot;,&quot;r+&quot;);
+gr-&gt;Legend();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new f 50 3
+modify f 'sin(2*pi*x*x)'
+modify f 'sin(2*pi*x)' 1
+modify f 'sin(2*pi*sqrt(x))' 2
+axis 0 -1 1 1
+box
+plot f
+axis
+addlegend 'sin(\pi {x^2})' 'b'
+addlegend 'sin(\pi x)' 'g*'
+addlegend 'sin(\pi \sqrt{\a x})' 'r+'
+legend
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT f = mgl_create_data_size(50,3,1);
+mgl_data_modify(f,&quot;sin(2*pi*x*x)&quot;,0);
+mgl_data_modify(f,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(f,&quot;sin(2*pi*sqrt(x))&quot;,2);
+mgl_set_axis(gr, 0.,-1.,0., 1.,1.,1., 0.,0.,0.);
+mgl_box(gr,1);
+mgl_plot(gr,f,NULL);
+mgl_axis(gr,&quot;xy&quot;);
+mgl_add_legend(gr,&quot;sin(\\pi {x^2})&quot;,&quot;b&quot;);
+mgl_add_legend(gr,&quot;sin(\\pi x)&quot;,&quot;g*&quot;);
+mgl_add_legend(gr,&quot;sin(\\pi \\sqrt{\\a x})&quot;,&quot;r+&quot;);
+mgl_legend(gr,3,&quot;rL&quot;,-1.,0.1);
+mgl_delete_data(f);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer f, mgl_create_data_size
+f = mgl_create_data_size(50,3,1)
+call mgl_data_modify(f,'sin(2*pi*x*x)',0)
+call mgl_data_modify(f,'sin(2*pi*x)',1)
+call mgl_data_modify(f,'sin(2*pi*sqrt(x))',2)
+call mgl_set_axis(gr, 0.,-1.,0., 1.,1.,1., 0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_plot(gr,f,'')
+call mgl_axis(gr,'xy')
+call mgl_add_legend(gr,'sin(\pi {x^2})','b');
+call mgl_add_legend(gr,'sin(\pi x)','g*');
+call mgl_add_legend(gr,'sin(\pi \sqrt{\a x})','r+');
+call mgl_legend(gr,3,'rL',-1.,0.1);
+call mgl_delete_data(f)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">f = mglData(50,3);
+f.Modify(&quot;sin(2*pi*x*x)&quot;,0);    f.Modify(&quot;sin(2*pi*x)&quot;,1);      f.Modify(&quot;sin(2*pi*sqrt(x))&quot;,2);
+gr.SetRanges(0,1,-1,1);     gr.Box();   gr.Axis();  gr.Plot(f);
+gr.AddLegend(&quot;sin(\\pi x^2)&quot;,&quot;b&quot;);
+gr.AddLegend(&quot;sin(\\pi x)&quot;,&quot;g*&quot;);
+gr.AddLegend(&quot;sin(\\pi\\sqrt{\\a x})&quot;,&quot;r+&quot;);
+gr.Legend();
+</pre><hr size="6">
+<a name="Adding-mesh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf-_0026-Cont-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0414_043e_0431_0430_0432_043byae_043c-_0441e_0442_043a_0443"></a>
+<h3 class="subsection">9.6.2 Добавляем сетку</h3>
+<a name="index-SubPlot-4"></a>
+<a name="index-Surf-12"></a>
+<a name="index-Dens-6"></a>
+<a name="index-Cont-6"></a>
+<a name="index-Axial-6"></a>
+<div class="float">
+<img src="../png/samplea.png" alt="../png/samplea">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(40,60);
+gr-&gt;Surf(a,&quot;BbcyrR#&quot;);  gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(40,60);
+gr-&gt;Dens(a,&quot;BbcyrR#&quot;);  gr-&gt;Box();
+gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(40,60);
+gr-&gt;Cont(a,&quot;BbcyrR#&quot;);  gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(40,60);
+gr-&gt;Axial(a,&quot;BbcyrR#&quot;); gr-&gt;Box();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+alpha on
+light on
+subplot 2 2 0
+rotate 40 60
+surf a 'BbcyrR#'
+box
+subplot 2 2 1
+rotate 40 60
+dens a 'BbcyrR#'
+box
+subplot 2 2 2
+rotate 40 60
+cont a 'BbcyrR#'
+box
+subplot 2 2 3
+rotate 40 60
+axial a 'BbcyrR#'
+box
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_set_alpha(gr,1);
+mgl_set_light(gr,1);
+mgl_subplot(gr,2,2,0); mgl_rotate(gr,40.,60.,0.);
+mgl_surf(gr,a,&quot;BbcyrR#&quot;);       mgl_box(gr,1);
+mgl_subplot(gr,2,2,1); mgl_rotate(gr,40.,60.,0.);
+mgl_dens(gr,a,&quot;BbcyrR#&quot;,-1.);   mgl_box(gr,1);
+mgl_subplot(gr,2,2,2); mgl_rotate(gr,40.,60.,0.);
+mgl_cont(gr,a,&quot;BbcyrR#&quot;,7,NAN); mgl_box(gr,1);
+mgl_subplot(gr,2,2,3); mgl_rotate(gr,40.,60.,0.);
+mgl_axial(gr,a,&quot;BbcyrR#&quot;,3);    mgl_box(gr,1);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+real zero, nan
+zero=0; nan=zero/zero
+a = mgl_create_data_size(50,40,1)
+call mgl_data_modify(a,'0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))',0)
+call mgl_set_alpha(gr,1)
+call mgl_set_light(gr,1)
+call mgl_subplot(gr,2,2,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_surf(gr,a,'BbcyrR#')
+call mgl_box(gr,1)
+call mgl_subplot(gr,2,2,1)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_dens(gr,a,'BbcyrR#',-1.)
+call mgl_box(gr,1)
+call mgl_subplot(gr,2,2,2)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_cont(gr,a,'BbcyrR#',7,nan)
+call mgl_box(gr,1)
+call mgl_subplot(gr,2,2,3)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_axial(gr,a,'BbcyrR#',3)
+call mgl_box(gr,1)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Light(True);     gr.Alpha(True);
+gr.SubPlot(2,2,0);
+gr.Rotate(40,60);   gr.Surf(a,&quot;BbcyrR#&quot;);   gr.Box();
+gr.SubPlot(2,2,1);
+gr.Rotate(40,60);   gr.Dens(a,&quot;BbcyrR#&quot;);   gr.Box();
+gr.SubPlot(2,2,2);
+gr.Rotate(40,60);   gr.Cont(a,&quot;BbcyrR#&quot;);   gr.Box();
+gr.SubPlot(2,2,3);
+gr.Rotate(40,60);   gr.Axial(a,&quot;BbcyrR#&quot;);  gr.Box();
+</pre><hr size="6">
+<a name="Surf-_0026-Cont-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Adding-mesh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-_0026-Dens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-_0026-Cont-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.6.3 Surf &amp; Cont &ndash; пример использования</h3>
+<a name="index-Surf-13"></a>
+<a name="index-Cont-7"></a>
+<div class="float">
+<img src="../png/surf_cont_y.png" alt="../png/surf_cont_y">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Surf(a);
+gr-&gt;Cont(a,&quot;y&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+cont a 'y'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_cont(gr,a,&quot;y&quot;,7,NAN);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+real zero, nan
+zero = 0; nan = zero/zero
+a = mgl_create_data_size(50,40,1)
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_cont(gr,a,'y',7,nan)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Surf(a);         gr.Cont(a,&quot;y&quot;);
+</pre><hr size="6">
+<a name="Flow-_0026-Dens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf-_0026-Cont-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Several-light-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-_0026-Dens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.6.4 Flow &amp; Dens &ndash; пример использования</h3>
+<a name="index-Flow-7"></a>
+<a name="index-Dens-7"></a>
+<div class="float">
+<img src="../png/flow_dens.png" alt="../png/flow_dens">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40), b(50,40), d(a);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+d.Modify(&quot;sqrt(v^2+w^2)&quot;,a,b);
+gr-&gt;Box();
+gr-&gt;Flow(a,b,&quot;br&quot;); gr-&gt;Dens(d,&quot;BbcyrR&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+copy d a
+modify d 'sqrt(v^2+w^2)' a b
+box
+flow a b 'br'
+dens d 'BbcyrR'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a, b, d;
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+d = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(d,&quot;sqrt(v^2+w^2)&quot;,a,b);
+mgl_box(gr,1);
+mgl_flow_2d(gr,a,b,&quot;br&quot;,5,1,0.);
+mgl_dens(gr,d,&quot;BbcyrR&quot;,-1.);
+mgl_delete_data(a); mgl_delete_data(b); mgl_delete_data(d);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b,d, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+d = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(d,&quot;sqrt(v^2+w^2)&quot;,a,b);
+call mgl_box(gr,1)
+call mgl_flow_2d(gr,a,b,'br',5,1,0.)
+call mgl_dens(gr,d,'BbcyrR',-1.);
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+call mgl_delete_data(d)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b= mglData(50,40), mglData(50,40);   d = mglData(a)
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+d.Modify(&quot;sqrt(v^2+w^2)&quot;,a,b);
+gr.Box();
+gr.Flow(a,b,&quot;br&quot;);      gr.Dens(d,&quot;BbcyrR&quot;);
+</pre><hr size="6">
+<a name="Several-light-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-_0026-Dens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mirrored-surface-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041de_0441_043a_043e_043bx_043a_043e-_0438_0441_0442_043e_0447_043d_0438_043a_043e_0432-_0441_0432e_0442_0430"></a>
+<h3 class="subsection">9.6.5 Несколько источников света</h3>
+<a name="index-Surf-14"></a>
+<a name="index-Light-5"></a>
+<div class="float">
+<img src="../png/several_light.png" alt="../png/several_light">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Light(1,mglPoint(0,1,0),'c');
+gr-&gt;Light(2,mglPoint(1,0,0),'y');
+gr-&gt;Light(3,mglPoint(0,-1,0),'m');
+gr-&gt;Box();
+gr-&gt;Surf(a,&quot;h&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+light 1 0 1 0 'c'
+light 2 1 0 0 'y'
+light 3 0 -1 0 'm'
+box
+surf a 'h'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_add_light_rgb(gr,1,0.,1.,0.,1, 0.,1.,1.,0.5);
+mgl_add_light_rgb(gr,2,1.,0.,0.,1, 1.,1.,0.,0.5);
+mgl_add_light_rgb(gr,3,0.,-1.,0.,1, 1.,0.,1.,0.5);
+mgl_box(gr,1);
+mgl_surf(gr,a,&quot;h&quot;);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_add_light_rgb(gr,1,0.,1.,0.,1, 0.,1.,1.,0.5)
+call mgl_add_light_rgb(gr,2,1.,0.,0.,1, 1.,1.,0.,0.5)
+call mgl_add_light_rgb(gr,3,0.,-1.,0.,1, 1.,0.,1.,0.5)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'h')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);       gr.Light(True);
+gr.AddLight(1,0,1,0,&quot;c&quot;);
+gr.AddLight(2,1,0,0,&quot;y&quot;);
+gr.AddLight(3,0,-1,0,&quot;m&quot;);
+gr.Box();
+gr.Surf(a,&quot;h&quot;)
+</pre><hr size="6">
+<a name="Mirrored-surface-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Several-light-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-with-labels-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0442_0440_0430_0436e_043d_0438e-_043f_043e_0432e_0440_0445_043d_043e_0441_0442_0438"></a>
+<h3 class="subsection">9.6.6 Отражение поверхности</h3>
+<a name="index-Surf-15"></a>
+<div class="float">
+<img src="../png/mirror.png" alt="../png/mirror">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(30,40),x(30),y1(40),y2(40);
+a.Modify(&quot;pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)&quot;);
+x.Fill(-1,1); y1.Fill(0,1); y2.Fill(0,-1);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Surf(x,y1,a,&quot;r&quot;); gr-&gt;Surf(x,y2,a,&quot;b&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 30 40
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf a 'r'; yrange 0 1
+surf a 'b'; yrange 0 -1
+box
+</pre><p>or
+</p><pre class="verbatim">new a 30 40
+var x 30 -1 1
+var y1 40 0 1
+var y2 40 0 -1
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf x y1 a 'r'
+surf x y2 a 'b'
+box
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a,x,y1,y2;
+a = mgl_create_data_size(30,40,1);
+x = mgl_create_data_size(30,1,1);
+y1 = mgl_create_data_size(40,1,1);
+y2 = mgl_create_data_size(40,1,1);
+mgl_data_modify(a,&quot;pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)&quot;,0);
+mgl_data_fill(x,-1.,1.,'x');
+mgl_data_fill(y1,0.,1.,'x');
+mgl_data_fill(y2,0.,-1.,'x');
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf_xy(gr,x,y1,a,&quot;r&quot;); mgl_surf_xy(gr,x,y2,a,&quot;b&quot;);
+mgl_delete_data(a); mgl_delete_data(y1);
+mgl_delete_data(x); mgl_delete_data(y2);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,x,y1,y2, mgl_create_data_size
+a = mgl_create_data_size(30,40,1)
+x = mgl_create_data_size(30,1,1)
+y1 = mgl_create_data_size(40,1,1)
+y2 = mgl_create_data_size(40,1,1)
+call mgl_data_modify(a,'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)',0)
+call mgl_data_fill(x,-1.,1.,'x')
+call mgl_data_fill(y1,0.,1.,'x')
+call mgl_data_fill(y2,0.,-1.,'x')
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf_xy(gr,x,y1,a,'r')
+call mgl_surf_xy(gr,x,y2,a,'b')
+call mgl_delete_data(a)
+call mgl_delete_data(y1)
+call mgl_delete_data(x)
+call mgl_delete_data(y2)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, x, y1, y2 = mglData(30,40), mglData(30), mglData(40), mglData(40);
+a.Modify(&quot;pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)&quot;);
+x.Fill(-1,1);   y1.Fill(0,1);   y2.Fill(0,-1);
+gr.Rotate(40,60);       gr.Light(True);         gr.Box();
+gr.Surf(x,y1,a,&quot;r&quot;);    gr.Surf(x,y2,a,&quot;b&quot;);
+</pre><hr size="6">
+<a name="Cont-with-labels-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mirrored-surface-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ternary-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-_0438-_043f_043e_0434_043f_0438_0441_0438-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.6.7 Cont и подписи &ndash; пример использования</h3>
+<a name="index-Cont-8"></a>
+<div class="float">
+<img src="../png/contt.png" alt="../png/contt">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Cont(a,&quot;BbcyrRt&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+cont a 'BbcyrRt'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_cont(gr,a,&quot;BbcyrRt&quot;,7,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_cont(gr,a,'BbcyrRt',7,0)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.Cont(a,&quot;BbcyrRt&quot;);
+</pre><hr size="6">
+<a name="Ternary-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-with-labels-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Coloring-by-coordinates-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ternary-plot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.6.8 Ternary plot &ndash; пример использования</h3>
+<a name="index-Ternary-2"></a>
+<div class="float">
+<img src="../png/ternary.png" alt="../png/ternary">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData x(50),y(50),rx(10),ry(10), a(20,30);
+a.Modify(&quot;4*x*y&quot;);
+x.Modify(&quot;0.25*(1+cos(2*pi*x))&quot;);
+y.Modify(&quot;0.25*(1+sin(2*pi*x))&quot;);
+rx.Modify(&quot;rnd&quot;); ry.Modify(&quot;(1-v)*rnd&quot;,rx);
+gr-&gt;Text(mglPoint(-0.8,1.3), &quot;Ternary plot (x+y+t=1)&quot;);
+gr-&gt;Ternary(true);
+gr-&gt;Plot(x,y,&quot;r2&quot;);
+gr-&gt;Plot(rx,ry,&quot;q^ &quot;);
+gr-&gt;Cont(a);
+gr-&gt;Line(mglPoint(0.5,0), mglPoint(0,0.75), &quot;g2&quot;);
+gr-&gt;Axis(); gr-&gt;Grid(&quot;xyz&quot;,&quot;B;&quot;);
+gr-&gt;Label('x',&quot;x comp.&quot;);
+gr-&gt;Label('y',&quot;y comp.&quot;);
+gr-&gt;Label('t',&quot;t comp.&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new rx 10
+new ry 10
+new x 50
+new y 50
+new a 20 30
+modify a '4*x*y'
+modify x '0.25*(1+cos(2*pi*x))'
+modify y '0.25*(1+sin(2*pi*x))'
+modify rx 'rnd'
+modify ry 'rnd*(1-v)' rx
+text -0.8 1.3 'Ternary plot (x+y+t=1)'
+ternary on
+plot x y 'r2'
+plot rx ry 'q^ '
+cont a
+line 0.5 0 0 0.75 'g2'
+axis
+grid 'xyz' 'B;'
+xlabel 'x comp.'
+ylabel 'y comp.'
+tlabel 't comp.'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT x,y,rx,ry,a;
+x = mgl_create_data_size(50,1,1);
+y = mgl_create_data_size(50,1,1);
+rx = mgl_create_data_size(50,1,1);
+ry = mgl_create_data_size(50,1,1);
+a = mgl_create_data_size(20,30,1);
+mgl_data_modify(x,&quot;0.25*(1+cos(2*pi*x))&quot;,0);
+mgl_data_modify(y,&quot;0.25*(1+sin(2*pi*x))&quot;,0);
+mgl_data_modify(rx,&quot;rnd&quot;,0);
+mgl_data_modify_vw(ry,&quot;(1-v)*rnd&quot;,rx,0);
+mgl_data_modify(a,&quot;4*x*y&quot;,0);
+mgl_puts_ext(gr,-0.8,1.3,0.,&quot;Ternary plot (x+y+t=1)&quot;,&quot;C&quot;,-1.4,'t');
+mgl_set_ternary(gr,1);
+mgl_plot_xy(gr,x,y,&quot;r2&quot;);
+mgl_plot_xy(gr,rx,ry,&quot;q^ &quot;);
+mgl_cont(gr,a,&quot;&quot;,7,0.);
+mgl_line(gr,0.5,0.,0.,0.,0.75,0.,&quot;g2&quot;,2);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B:&quot;);
+mgl_label(gr,'x',&quot;x comp&quot;);
+mgl_label(gr,'y',&quot;y comp&quot;);
+mgl_label(gr,'t',&quot;t comp&quot;);
+mgl_delete_data(a);
+mgl_delete_data(x);     mgl_delete_data(y);
+mgl_delete_data(rx);    mgl_delete_data(ry);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,x,y,rx,ry, mgl_create_data_size
+x = mgl_create_data_size(50,1,1)
+y = mgl_create_data_size(50,1,1)
+rx = mgl_create_data_size(50,1,1)
+ry = mgl_create_data_size(50,1,1)
+a = mgl_create_data_size(20,30,1)
+call mgl_data_modify(x,'0.25*(1+cos(2*pi*x))',0)
+call mgl_data_modify(y,'0.25*(1+sin(2*pi*x))',0)
+call mgl_data_modify(rx,'rnd',0)
+call mgl_data_modify_vw(ry,'(1-v)*rnd',rx,rx)
+call mgl_data_modify(a,'4*x*y',0)
+call mgl_puts_ext(gr,-0.8,1.3,0.,'Ternary plot (x+y+t=1)','C',-1.4,'t')
+call mgl_set_ternary(gr,1)
+call mgl_plot_xy(gr,x,y,'r2')
+call mgl_plot_xy(gr,rx,ry,'q^ ')
+call mgl_cont(gr,a,'',7,0.)
+call mgl_line(gr,0.5,0.,0.,0.,0.75,0.,'g2',2)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B:')
+call mgl_label(gr,'x','x comp')
+call mgl_label(gr,'y','y comp')
+call mgl_label(gr,'t','t comp')
+call mgl_delete_data(a)
+call mgl_delete_data(x)
+call mgl_delete_data(y)
+call mgl_delete_data(rx)
+call mgl_delete_data(ry)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">x, y, rx, ry, a = mglData(50), mglData(50), mglData(10), mglData(10), mglData(20,30);
+a.Modify(&quot;4*x*y&quot;);
+x.Modify(&quot;0.25*(1+cos(2*pi*x))&quot;);   y.Modify(&quot;0.25*(1+sin(2*pi*x))&quot;);
+rx.Modify(&quot;rnd&quot;);   ry.Modify(&quot;(1-v)*rnd&quot;,rx);
+gr.Puts(-0.8,1.3,0,&quot;Ternary plot (x+y+t=1)&quot;,&quot;C&quot;,-1.4);
+gr.Ternary(True);
+gr.Plot(x,y,&quot;r2&quot;);  gr.Plot(rx,ry,&quot;q^ &quot;);   gr.Cont(a);
+gr.Line(0.5,0,0,0,0.75,0,&quot;g2&quot;);
+gr.Axis();          gr.Grid(&quot;xyz&quot;,&quot;B;&quot;);
+gr.Label(&quot;x&quot;,&quot;x comp.&quot;);
+gr.Label(&quot;y&quot;,&quot;y comp.&quot;);
+gr.Label(&quot;t&quot;,&quot;t comp.&quot;);
+</pre><hr size="6">
+<a name="Coloring-by-coordinates-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ternary-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Drops-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_043a_0440_0430_0448_0438_0432_0430_043d_0438e-_043f_043e-_043f_043e_043b_043e_0436e_043d_0438_044e-g_0440_0430_043d_0438"></a>
+<h3 class="subsection">9.6.9 Окрашивание по положению грани</h3>
+<a name="index-Surf3-9"></a>
+<div class="float">
+<img src="../png/surf3_rgbd.png" alt="../png/surf3_rgbd">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Surf3(a,&quot;bgrd&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+surf3 a 'bgrd'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_surf3(gr,a,&quot;bgrd&quot;,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'bgrd',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2+(2*y-1)^2+(2*z-1)^4-(2*z-1)^2-0.1)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.Surf3(a,&quot;bgrd&quot;);
+</pre><hr size="6">
+<a name="Drops-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Coloring-by-coordinates-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Molecules-drawing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Drops-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.6.10 Drops &ndash; пример использования</h3>
+<a name="index-Drop-4"></a>
+<div class="float">
+<img src="../png/drops.png" alt="../png/drops">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Light(true);
+gr-&gt;Puts(mglPoint(-1,1.2),&quot;sh=0&quot;);
+gr-&gt;Drop(mglPoint(-1,0),mglPoint(0,1),0.5,&quot;r&quot;,0);
+gr-&gt;Puts(mglPoint(-0.33,1.2),&quot;sh=0.33&quot;);
+gr-&gt;Drop(mglPoint(-0.33,0),mglPoint(0,1),0.5,&quot;r&quot;,0.33);
+gr-&gt;Puts(mglPoint(0.33,1.2),&quot;sh=0.67&quot;);
+gr-&gt;Drop(mglPoint(0.33,0),mglPoint(0,1),0.5,&quot;r&quot;,0.67);
+gr-&gt;Puts(mglPoint(1,1.2),&quot;sh=1&quot;);
+gr-&gt;Drop(mglPoint(1,0),mglPoint(0,1),0.5,&quot;r&quot;,1);
+gr-&gt;Ball(mglPoint(-1,0,1),'k');
+gr-&gt;Ball(mglPoint(-0.33,0,1),'k');
+gr-&gt;Ball(mglPoint(0.33,0,1),'k');
+gr-&gt;Ball(mglPoint(1,0,1),'k');
+gr-&gt;Line(mglPoint(-1,0,1),mglPoint(1,0,1),&quot;b&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">light on
+text -1 1.2 'sh=0'
+drop -1 0 0 1 0.5 'r' 0
+text -0.33 1.2 'sh=0.33'
+drop -0.33 0 0 1 0.5 'r' 0.33
+text 0.33 1.2 'sh=0.67'
+drop 0.33 0 0 1 0.5 'r' 0.67
+text 1 1.2 'sh=1'
+drop 1 0 0 1 0.5 'r' 1
+ball -1 0 1 'k'
+ball -0.33 0 1 'k'
+ball 0.33 0 1 'k'
+ball 1 0 1 'k'
+line -1 0 1 1 0 1 'b'
+new h 100
+modify h '0.25*(1+x)^2'
+plot h 'k|'
+text -1 0.6 'h\sim(1+sh)^2' 'rL'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">mgl_set_light(gr,1);
+mgl_puts(gr,-1.,1.2,0.,&quot;sh=0&quot;); 
+mgl_drop(gr,-1.,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.,1.);
+mgl_puts(gr,-0.33,1.2,0.,&quot;sh=0.33&quot;); 
+mgl_drop(gr,-0.33,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.33,1.);
+mgl_puts(gr,0.33,1.2,0.,&quot;sh=0.67&quot;); 
+mgl_drop(gr,0.33,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.67,1.);
+mgl_puts(gr,1.,1.2,0.,&quot;sh=1&quot;); 
+mgl_drop(gr,1.,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,1.,1.);
+mgl_ball_str(gr,-1.,0.,1.,&quot;k&quot;);
+mgl_ball_str(gr,-0.33,0.,1.,&quot;k&quot;);
+mgl_ball_str(gr,0.33,0.,1.,&quot;k&quot;);
+mgl_ball_str(gr,1.,0.,1.,&quot;k&quot;);
+mgl_line(gr,-1.,0.,1.,1.,0.,1.,&quot;b&quot;,2);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">call mgl_set_light(gr,1);
+call mgl_puts(gr,-1.,1.2,0.,&quot;sh=0&quot;); 
+call mgl_drop(gr,-1.,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.,1.);
+call mgl_puts(gr,-0.33,1.2,0.,&quot;sh=0.33&quot;); 
+call mgl_drop(gr,-0.33,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.33,1.);
+call mgl_puts(gr,0.33,1.2,0.,&quot;sh=0.67&quot;); 
+call mgl_drop(gr,0.33,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.67,1.);
+call mgl_puts(gr,1.,1.2,0.,&quot;sh=1&quot;); 
+call mgl_drop(gr,1.,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,1.,1.);
+call mgl_ball_str(gr,-1.,0.,1.,&quot;k&quot;);
+call mgl_ball_str(gr,-0.33,0.,1.,&quot;k&quot;);
+call mgl_ball_str(gr,0.33,0.,1.,&quot;k&quot;);
+call mgl_ball_str(gr,1.,0.,1.,&quot;k&quot;);
+call mgl_line(gr,-1.,0.,1.,1.,0.,1.,&quot;b&quot;,2);
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">gr.Light(True);
+gr.Puts(-1,1.2,0,&quot;sh=0&quot;,&quot;rC&quot;);
+gr.Drop(-1,0,0,0,1,0,0.5,&quot;r&quot;,0);
+gr.Puts(-0.33,1.2,0,&quot;sh=0.33&quot;,&quot;rC&quot;);
+gr.Drop(-0.33,0,0,0,1,0,0.5,&quot;r&quot;,0.33);
+gr.Puts(0.33,1.2,0,&quot;sh=0.67&quot;,&quot;rC&quot;);
+gr.Drop(0.33,0,0,0,1,0,0.5,&quot;r&quot;,0.67);
+gr.Puts(1,1.2,0,&quot;sh=1&quot;,&quot;rC&quot;);
+gr.Drop(1,0,0,0,1,0,0.5,&quot;r&quot;,1);
+gr.Ball(-1,0,1,&quot;k&quot;);    gr.Ball(-0.33,0,1,&quot;k&quot;);
+gr.Ball(0.33,0,1,&quot;k&quot;);  gr.Ball(1,0,1,&quot;k&quot;);
+gr.Line(-1,0,1,1,0,1,&quot;b&quot;);
+</pre><hr size="6">
+<a name="Molecules-drawing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Drops-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0420_0438_0441_043e_0432_0430_043d_0438e-_043c_043e_043be_043a_0443_043b"></a>
+<h3 class="subsection">9.6.11 Рисование молекул</h3>
+<a name="index-Drop-5"></a>
+<a name="index-Sphere-3"></a>
+<div class="float">
+<img src="../png/molecule.png" alt="../png/molecule">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true); gr-&gt;Light(true);
+gr-&gt;SubPlot(2,2,0);
+gr-&gt;Text(mglPoint(0,1.2),&quot;Methane, CH_4&quot;,0,-3); gr-&gt;Rotate(60,120);
+gr-&gt;Sphere(mglPoint(0,0,0),0.25,&quot;k&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0,0,1),0.35,&quot;h&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0,0,0.7),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(-0.94,0,-0.33),0.35,&quot;h&quot;,1,2);
+gr-&gt;Sphere(mglPoint(-0.66,0,-0.23),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.47,0.82,-0.33),0.35,&quot;h&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.33,0.57,-0.23),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.47,-0.82,-0.33),0.35,&quot;h&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.33,-0.57,-0.23),0.25,&quot;g&quot;);
+gr-&gt;SubPlot(2,2,1);
+gr-&gt;Text(mglPoint(0,1.2),&quot;Water, H{_2}O&quot;,0,-3); gr-&gt;Rotate(60,100);
+gr-&gt;Sphere(mglPoint(0,0,0),0.25,&quot;r&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.3,0.5,0),0.3,&quot;m&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.3,0.5,0),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.3,-0.5,0),0.3,&quot;m&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.3,-0.5,0),0.25,&quot;g&quot;);
+gr-&gt;SubPlot(2,2,2);
+gr-&gt;Text(mglPoint(0,1.2),&quot;Oxygen, O_2&quot;,0,-3); gr-&gt;Rotate(60,120);
+gr-&gt;Drop(mglPoint(0,0.5,0),mglPoint(0,-0.3,0),0.3,&quot;m&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0,0.5,0),0.25,&quot;r&quot;);
+gr-&gt;Drop(mglPoint(0,-0.5,0),mglPoint(0,0.3,0),0.3,&quot;m&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0,-0.5,0),0.25,&quot;r&quot;);
+gr-&gt;SubPlot(2,2,3);
+gr-&gt;Text(mglPoint(0,1.2),&quot;Ammonia, NH_3&quot;,0,-3); gr-&gt;Rotate(60,120);
+gr-&gt;Sphere(mglPoint(0,0,0),0.25,&quot;b&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.33,0.57,0),0.32,&quot;n&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.33,0.57,0),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.33,-0.57,0),0.32,&quot;n&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.33,-0.57,0),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(-0.65,0,0),0.32,&quot;n&quot;,1,2);
+gr-&gt;Sphere(mglPoint(-0.65,0,0),0.25,&quot;g&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">alpha on
+light on
+subplot 2 2 0
+text 0 1.2 'Methane, CH_4' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'k'
+drop 0 0 0 0 0 1 0.35 'h' 1 2
+sphere 0 0 0.7 0.25 'g'
+drop 0 0 0 -0.94 0 -0.33 0.35 'h' 1 2
+sphere -0.66 0 -0.23 0.25 'g'
+drop 0 0 0 0.47 0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 0.57 -0.23 0.25 'g'
+drop 0 0 0 0.47 -0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 -0.57 -0.23 0.25 'g'
+subplot 2 2 1
+text 0 1.2 'Water, H{_2}O' '' -3
+rotate 60 100
+sphere 0 0 0 0.25 'r'
+drop 0 0 0 0.3 0.5 0 0.3 'm' 1 2
+sphere 0.3 0.5 0 0.25 'g'
+drop 0 0 0 0.3 -0.5 0 0.3 'm' 1 2
+sphere 0.3 -0.5 0 0.25 'g'
+subplot 2 2 2
+text 0 1.2 'Oxygen, O_2' '' -3
+rotate 60 120
+drop 0 0.5 0 0 -0.3 0 0.3 'm' 1 2
+sphere 0 0.5 0 0.25 'r'
+drop 0 -0.5 0 0 0.3 0 0.3 'm' 1 2
+sphere 0 -0.5 0 0.25 'r'
+subplot 2 2 3
+text 0 1.2 0 'Ammonia, NH_3' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'b'
+drop 0 0 0 0.33 0.57 0 0.32 'n' 1 2
+sphere 0.33 0.57 0 0.25 'g'
+drop 0 0 0 0.33 -0.57 0 0.32 'n' 1 2
+sphere 0.33 -0.57 0 0.25 'g'
+drop 0 0 0 -0.65 0 0 0.32 'n' 1 2
+sphere -0.65 0 0 0.25 'g'
+</pre><hr size="6">
+<a name="Advanced-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Molecules-drawing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Curvelinear-coorinates-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0022_041f_0440_043e_0434_0432_0438_043d_0443_0442_044be_0022-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438"></a>
+<h2 class="section">9.7 &quot;Продвинутые&quot; возможности</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Curvelinear-coorinates-sample">9.7.1 Криволинейные координаты</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2_002daxes-sample">9.7.2 Несколько осей на одном графике</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Semi_002dlog-sample">9.7.3 Semi-log &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Log_002dlog-sample">9.7.4 Log-log &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fitting-sample">9.7.5 Fitting &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Envelop-sample">9.7.6 Envelop &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Sew-sample">9.7.7 Sew &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#STFA-sample">9.7.8 STFA &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#PDE-sample">9.7.9 PDE &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Beam-tracing-sample">9.7.10 Beam tracing &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Parser-sample">9.7.11 Parser &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Manual-ticks-sample">9.7.12 Особые метки по осям</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ColumnPlot-sample">9.7.13 ColumnPlot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#StickPlot-sample">9.7.14 StickPlot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stereo-image-sample">9.7.15 Пример стерео изображения</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+</table>
+<hr size="6">
+<a name="Curvelinear-coorinates-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Advanced-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2_002daxes-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041a_0440_0438_0432_043e_043b_0438_043de_0439_043d_044be-_043a_043e_043e_0440_0434_0438_043d_0430_0442_044b-1"></a>
+<h3 class="subsection">9.7.1 Криволинейные координаты</h3>
+<a name="index-Axis-7"></a>
+<div class="float">
+<img src="../png/sample3.png" alt="../png/sample3">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Org = mglPoint(-1,1,-1);
+gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(60,40);
+gr-&gt;Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),&quot;r2&quot;,100);
+gr-&gt;Axis(); gr-&gt;Grid();
+gr-&gt;Text(mglPoint(0,1.3,1),&quot;Cartesian&quot;);
+gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(60,40);
+gr-&gt;SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;);
+gr-&gt;Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),&quot;r2&quot;,100);
+gr-&gt;Axis(); gr-&gt;Grid();
+gr-&gt;Text(mglPoint(0,1.3,1),&quot;Cylindrical&quot;);
+gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(60,40);
+gr-&gt;SetFunc(&quot;2*y*x&quot;,&quot;y*y - x*x&quot;);
+gr-&gt;Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),&quot;r2&quot;,100);
+gr-&gt;Axis(); gr-&gt;Grid();
+gr-&gt;Text(mglPoint(0,1.3,1),&quot;Parabolic&quot;);
+gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(60,40);
+gr-&gt;SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,&quot;x+z&quot;);
+gr-&gt;Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),&quot;r2&quot;,100);
+gr-&gt;Axis(); gr-&gt;Grid();
+gr-&gt;Text(mglPoint(0,1.3,1),&quot;Spiral&quot;);
+gr-&gt;Axis(0,0,0); // set to default Cartesian
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">origin -1 1 -1
+subplot 2 2 0
+rotate 60 40
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cartesian'
+subplot 2 2 1
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cylindrical'
+subplot 2 2 2
+rotate 60 40
+axis '2*y*x' 'y*y - x*x' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Parabolic'
+subplot 2 2 3
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Spiral'
+axis '' '' '' # set to default Cartesian
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">mgl_set_origin(gr,-1,1,-1);
+mgl_subplot(gr,2,2,0); mgl_rotate(gr,60,40,0);
+mgl_line(gr,-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+mgl_axis(gr,&quot;xyz&quot;); mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B&quot;);
+mgl_text(gr,0,1.3,1,&quot;Cartesian&quot;);
+mgl_subplot(gr,2,2,1); mgl_rotate(gr,60,40,0);
+mgl_set_func(gr,&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,0);
+mgl_line(gr,-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+mgl_axis(gr,&quot;xyz&quot;); mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B&quot;);
+mgl_text(gr,0,1.3,1,&quot;Cylindrical&quot;);
+mgl_subplot(gr,2,2,2); mgl_rotate(gr,60,40,0);
+mgl_set_func(gr,&quot;2*y*x&quot;,&quot;y*y - x*x&quot;,&quot;&quot;);
+mgl_line(gr,-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+mgl_axis(gr,&quot;xyz&quot;); mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B&quot;);
+mgl_text(gr,0,1.3,1,&quot;Parabolic&quot;);
+mgl_subplot(gr,2,2,3); mgl_rotate(gr,60,40,0);
+mgl_set_func(gr,&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,&quot;x+z&quot;);
+mgl_line(gr,-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+mgl_axis(gr,&quot;xyz&quot;); mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B&quot;);
+mgl_text(gr,0,1.3,1,&quot;Spiral&quot;);
+mgl_set_func(gr,0,0,0); /* set to default Cartesian */
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">call mgl_set_origin(gr,-1.,1.,-1.)
+call mgl_subplot(gr,2,2,0)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,'Cartesian')
+call mgl_subplot(gr,2,2,1)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_set_func(gr,'y*sin(pi*x)','y*cos(pi*x)','')
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,'Cylindrical')
+call mgl_subplot(gr,2,2,2)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_set_func(gr,'2*y*x','y*y - x*x','')
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,&quot;Parabolic&quot;)
+call mgl_subplot(gr,2,2,3)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_set_func(gr,'y*sin(pi*x)','y*cos(pi*x)','x+z')
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,'Spiral')
+call mgl_set_func(gr,'','','') ! set to default Cartesian
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">gr.SetOrigin(-1,1,-1);
+gr.SubPlot(2,2,0);              gr.Rotate(60,40);
+gr.Line(-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+gr.Axis();              gr.Grid();
+gr.Puts(0,1.3,1,&quot;Gartesian&quot;,&quot;rC&quot;,-1.5);
+gr.SubPlot(2,2,1);  gr.Rotate(60,40);
+gr.SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;);
+gr.Line(-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+gr.Axis();          gr.Grid();
+gr.Puts(0,1.3,1,&quot;Cylindrical&quot;,&quot;rC&quot;,-1.5);
+gr.SubPlot(2,2,2);  gr.Rotate(60,40);
+gr.SetFunc(&quot;2*y*x&quot;,&quot;y*y-x*x&quot;);
+gr.Line(-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+gr.Axis();          gr.Grid();
+gr.Puts(0,1.3,1,&quot;Parabolic&quot;,&quot;rC&quot;,-1.5);
+gr.SubPlot(2,2,3);  gr.Rotate(60,40);
+gr.SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,&quot;x+z&quot;);
+gr.Line(-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+gr.Axis();          gr.Grid();
+gr.Puts(0,1.3,1,&quot;Spiral&quot;,&quot;rC&quot;,-1.5);
+gr.SetFunc(&quot;&quot;,&quot;&quot;);   # set to default Gartesian
+</pre><hr size="6">
+<a name="g_t2_002daxes-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Curvelinear-coorinates-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Semi_002dlog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041de_0441_043a_043e_043bx_043a_043e-_043e_0441e_0439-_043d_0430-_043e_0434_043d_043e_043c-g_0440_0430_0444_0438_043ae"></a>
+<h3 class="subsection">9.7.2 Несколько осей на одном графике</h3>
+<a name="index-Axis-8"></a>
+<div class="float">
+<img src="../png/2_axis.png" alt="../png/2_axis">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y1(50), y2(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;); y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,-1,-1));
+gr-&gt;Axis(); gr-&gt;Label('y',&quot;axis 1&quot;,0);
+gr-&gt;Plot(y1,&quot;b&quot;);
+gr-&gt;Axis(mglPoint(0,0,0),mglPoint(1,1,1),mglPoint(1,1,1));
+gr-&gt;Axis(); gr-&gt;Label('y',&quot;axis 2&quot;,0);
+gr-&gt;Stem(y2,&quot;r&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+axis -1 -1 -1 1 1 1
+origin -1 -1 -1
+axis
+ylabel 'axis 1' 0
+plot y1 'b'
+axis 0 0 0 1 1 1
+origin 1 1 1
+axis
+ylabel 'axis 2' 0
+stem y2 'r'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_set_axis_2d(gr,-1.,1.,-1.,1.);
+mgl_set_origin(gr,-1.,-1.,-1.);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_label_ext(gr,'y',&quot;axis 1&quot;,0,-1.4,0.);
+mgl_plot(gr,y1,&quot;b&quot;);
+mgl_set_axis_2d(gr,0.,0.,1.,1.);
+mgl_set_origin(gr,1.,1.,1.);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_label_ext(gr,'y',&quot;axis 2&quot;,0,-1.4,0.);
+mgl_stem(gr,y2,&quot;r&quot;);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y1,y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1)
+y2 = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y1,'0.3*sin(2*pi*x)',0)
+call mgl_data_modify(y2,'0.5+0.3*cos(2*pi*x)',0)
+call mgl_set_axis_2d(gr,-1.,1.,-1.,1.)
+call mgl_set_origin(gr,-1.,-1.,-1.)
+call mgl_axis(gr,'xyz')
+call mgl_label_ext(gr,'y','axis 1',0,-1.4,0.)
+call mgl_plot(gr,y1,'b')
+call mgl_set_axis_2d(gr,0.,0.,1.,1.)
+call mgl_set_origin(gr,1.,1.,1.)
+call mgl_axis(gr,'xyz')
+call mgl_label_ext(gr,'y','axis 2',0,-1.4,0.)
+call mgl_stem(gr,y2,'r')
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y1, y2 = mglData(50), mglData(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);   y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.SetRanges(-1,1,-1,1);   gr.SetOrigin(-1,-1);
+gr.Axis();      gr.Label(&quot;y&quot;,&quot;axis 1&quot;,0);
+gr.Plot(y1,&quot;b&quot;);
+gr.SetRanges(0,1,0,1);      gr.SetOrigin(1,1);
+gr.Axis();      gr.Label(&quot;y&quot;,&quot;axis 2&quot;,0);
+gr.Stem(y2,&quot;r&quot;);
+</pre><hr size="6">
+<a name="Semi_002dlog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2_002daxes-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Log_002dlog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Semi_002dlog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.3 Semi-log &ndash; пример использования</h3>
+<a name="index-Axis-9"></a>
+<a name="index-SetTicks-2"></a>
+<a name="index-Plot-10"></a>
+<div class="float">
+<img src="../png/semilog.png" alt="../png/semilog">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData x(2000), y(2000);
+x.Modify(&quot;0.01/(x+10^(-5))&quot;); y.Modify(&quot;sin(1/v)&quot;,x);
+gr-&gt;Axis(mglPoint(0.01,-1),mglPoint(1000,1),mglPoint(0.01,-1));
+gr-&gt;SetFunc(&quot;lg(x)&quot;,0);  gr-&gt;SetTicks('x',0);
+gr-&gt;Box();
+gr-&gt;Plot(x,y,&quot;b2&quot;);
+gr-&gt;Axis(); gr-&gt;Grid(&quot;xy&quot;,&quot;g&quot;);
+gr-&gt;Label('x',&quot;x&quot;,0);   gr-&gt;Label('y', &quot;y = sin 1/x&quot;,0);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new x 2000
+new y 2000
+modify x '0.01/(x+10^(-5))'
+modify y 'sin(1/v)' x
+xrange 0.01 1000
+origin 0.01 -1 0
+xtick 0
+axis 'lg(x)' '' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g'
+xlabel 'x' 0
+ylabel 'y = sin 1/x' 0
+box
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT x = mgl_create_data_size(2000,1,1);
+HMDT y = mgl_create_data_size(2000,1,1);
+mgl_data_modify(x,&quot;0.01/(x+10^(-5))&quot;,0);
+mgl_data_modify_vw(y,&quot;sin(1/v)&quot;,x,0);
+mgl_set_axis(gr,0.01,-1.,0.,1000.,1.,0.,0.01,-1.,0.);
+mgl_set_func(gr,&quot;lg(x)&quot;,0,0);
+mgl_set_ticks(gr,0.,-5.,-5.);
+mgl_box(gr,1);
+mgl_plot_xy(gr,x,y,&quot;b2&quot;);
+mgl_axis(gr,&quot;xy&quot;); mgl_axis_grid(gr,&quot;xy&quot;,&quot;g&quot;);
+mgl_label_ext(gr,'x',&quot;x&quot;,0,-1.4,0);
+mgl_label_ext(gr,'y', &quot;y = sin 1/x&quot;,0,-1.4,0);
+mgl_delete_data(x); mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer x,y, mgl_create_data_size
+x = mgl_create_data_size(2000,1,1)
+y = mgl_create_data_size(2000,1,1)
+call mgl_data_modify(x,'0.01/(x+10^(-5))',0)
+call mgl_data_modify_vw(y,'sin(1/v)',x,x)
+call mgl_set_axis(gr,0.01,-1.,0.,1000.,1.,0.,0.01,-1.,0.)
+call mgl_set_func(gr,'lg(x)','','')
+call mgl_set_ticks(gr,0.,-5.,-5.)
+call mgl_box(gr,1)
+call mgl_plot_xy(gr,x,y,'b2')
+call mgl_axis(gr,'xy')
+call mgl_axis_grid(gr,'xy','g')
+call mgl_label_ext(gr,'x','x',0.,-1.4,0.)
+call mgl_label_ext(gr,'y', 'y = sin 1/x',0.,-1.4,0.)
+call mgl_delete_data(x)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">TO BE DONE
+</pre><hr size="6">
+<a name="Log_002dlog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Semi_002dlog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fitting-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Log_002dlog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.4 Log-log &ndash; пример использования</h3>
+<a name="index-Axis-10"></a>
+<a name="index-SetTicks-3"></a>
+<a name="index-Plot-11"></a>
+<div class="float">
+<img src="../png/loglog.png" alt="../png/loglog">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData x(100), y(100);
+x.Modify(&quot;pow(10,6*x-3)&quot;); y.Modify(&quot;sqrt(1+v^2)&quot;,x);
+gr-&gt;Axis(mglPoint(0.001,0.1),mglPoint(1000,1000),mglPoint(0.001,0.1));
+gr-&gt;SetFunc(&quot;lg(x)&quot;,&quot;lg(y)&quot;);
+gr-&gt;SetTicks('x',0);    gr-&gt;SetTicks('y',0);
+gr-&gt;Box();
+gr-&gt;Plot(x,y,&quot;b2&quot;);
+gr-&gt;Axis(); gr-&gt;Grid(&quot;xy&quot;,&quot;g;&quot;);
+gr-&gt;Label('x',&quot;x&quot;,0); gr-&gt;Label('y', &quot;y=\\sqrt{1+x^2}&quot;,0);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new x 100
+new y 100
+modify x 'pow(10,6*x-3)'
+modify y 'sqrt(1+v^2)' x
+axis 0.001 0.1 1000 1000
+xtick 0
+ytick 0
+axis 'lg(x)' 'lg(y)' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g;'
+xlabel 'x' 0
+ylabel 'y=\sqrt{1+x^2}' 0
+box
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT x = mgl_create_data_size(100,1,1);
+HMDT y = mgl_create_data_size(100,1,1);
+mgl_data_modify(x,&quot;pow(10,6*x-3)&quot;,0);
+mgl_data_modify_vw(y,&quot;sqrt(1+v^2)&quot;,x,0);
+mgl_set_axis(gr,0.001,0.1,0.,1000.,1000.,0.,0.001,0.1,0.);
+mgl_set_func(gr,&quot;lg(x)&quot;,&quot;lg(y)&quot;,0);
+mgl_set_ticks(gr,0.,0.,-5.);
+mgl_box(gr,1);
+mgl_plot_xy(gr,x,y,&quot;b2&quot;);
+mgl_axis(gr,&quot;xy&quot;); mgl_axis_grid(gr,&quot;xy&quot;,&quot;g;&quot;);
+mgl_label_ext(gr,'x',&quot;x&quot;,0,-1.4,0);
+mgl_label_ext(gr,'y', &quot;y=\\sqrt{1+x^2}&quot;,0,-1.4,0);
+mgl_delete_data(x); mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer x,y, mgl_create_data_size
+x = mgl_create_data_size(100,1,1)
+y = mgl_create_data_size(100,1,1)
+call mgl_data_modify(x,'pow(10,6*x-3)',0)
+call mgl_data_modify_vw(y,'sqrt(1+v^2)',x,x)
+call mgl_set_axis(gr,0.001,0.1,0.,1000.,1000.,0.,0.001,0.1,0.)
+call mgl_set_func(gr,'lg(x)','lg(y)','')
+call mgl_set_ticks(gr,0.,0.,-5.)
+call mgl_box(gr,1)
+call mgl_plot_xy(gr,x,y,'b2')
+call mgl_axis(gr,'xy')
+call mgl_axis_grid(gr,'xy','g;')
+call mgl_label_ext(gr,'x','x',0.,-1.4,0)
+call mgl_label_ext(gr,'y', 'y=\sqrt{1+x^2}',0.,-1.4,0)
+call mgl_delete_data(x)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">x, y = mglData(100), mglData(100);
+x.Modify(&quot;pow(10,6*x-3)&quot;);          y.Modify(&quot;sqrt(1+v^2)&quot;,x);
+gr.SetRanges(0.001,1000,0.1,1000);  gr.SetOrigin(0.001,0.1);
+gr.SetFunc(&quot;lg(x)&quot;,&quot;lg(y)&quot;);
+gr.SetTicks(&quot;x&quot;,0);     gr.SetTicks(&quot;y&quot;,0);
+gr.Box();               gr.Plot(x,y,&quot;b2&quot;);
+gr.Axis();              gr.Grid(&quot;xy&quot;,&quot;g;&quot;);
+gr.Label(&quot;x&quot;,&quot;x&quot;,0);    gr.Label(&quot;y&quot;,&quot;y=\\sqrt{1+x^2}&quot;,0);
+</pre><hr size="6">
+<a name="Fitting-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Log_002dlog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Envelop-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fitting-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.5 Fitting &ndash; пример использования</h3>
+<a name="index-Fit-9"></a>
+<a name="index-PutsFit-2"></a>
+<div class="float">
+<img src="../png/fit.png" alt="../png/fit">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData rnd(100), in(100), res;
+rnd.Fill(&quot;0.4*rnd+0.1+sin(2*pi*x)&quot;, gr-&gt;Min, gr-&gt;Max);
+in.Fill(&quot;0.3+sin(2*pi*x)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Axis(mglPoint(-1,-2), mglPoint(1,2));
+gr-&gt;Plot(rnd, &quot;. &quot;);
+gr-&gt;Box();
+float ini[3] = {1,1,3};
+gr-&gt;Fit(res, rnd, &quot;a+b*sin(c*x)&quot;, &quot;abc&quot;, ini);
+gr-&gt;Plot(res, &quot;r&quot;);
+gr-&gt;Plot(in, &quot;b&quot;);
+gr-&gt;Text(mglPoint(-1, -1.3), &quot;fitted:&quot;, &quot;L:r&quot;, -1);
+gr-&gt;PutsFit(mglPoint(0, -1.8), &quot;y = &quot;, &quot;C:r&quot;, -1);
+gr-&gt;Text(mglPoint(0, 2.2), &quot;initial: y = 0.3+sin(2\\pi x)&quot;, &quot;C:b&quot;, -1);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new rnd 100
+fill rnd '0.4*rnd+0.1+sin(2*pi*x)'
+new in 100
+fill in '0.3+sin(2*pi*x)'
+yrange -2 2
+plot rnd '. '
+box
+list ini 1 1 3
+fit res rnd 'a+b*sin(c*x)' 'abc' ini
+plot res 'r'
+plot in 'b'
+text -1 -1.3 'fitted:' 'L:r' -1
+putsfit 0 -1.8 'y = ' 'C:r'
+text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT rnd,in,res;
+float ini[3] = {1,1,3};
+rnd = mgl_create_data_size(100,1,1);
+in = mgl_create_data_size(100,1,1);
+res = mgl_create_data();
+mgl_data_modify(rnd,&quot;0.4*rnd+0.1+sin(4*pi*x)&quot;,0);
+mgl_data_modify(in,&quot;0.3+sin(4*pi*x)&quot;,0);
+mgl_set_axis_2d(gr,-1.,-2.,1.,2.);
+mgl_plot(gr,rnd,&quot;. &quot;);
+mgl_box(gr,1);
+mgl_fit_1(gr,res,rnd,&quot;a+b*sin(c*x)&quot;,&quot;abc&quot;,ini);
+mgl_plot(gr,res,&quot;r&quot;);   mgl_plot(gr,in,&quot;b&quot;);
+mgl_puts_ext(gr,-1.,-1.3,0.,&quot;fitted:&quot;,&quot;L:r&quot;,-1.,'t');
+mgl_puts_fit(gr,0.,-1.8,0.,&quot;y = &quot;,&quot;C:r&quot;,-1.);
+mgl_puts_ext(gr,0.,2.2,0.,&quot;initial: y = 0.3+sin(2\\pi x)&quot;,&quot;C:b&quot;, -1., 't');
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer rnd,in,res, mgl_create_data_size
+real ini(3)
+ini(1)=1;   ini(2)=1;   ini(3)=3;
+rnd = mgl_create_data_size(100,1,1);
+in = mgl_create_data_size(100,1,1);
+res = mgl_create_data();
+call mgl_data_modify(rnd,&quot;0.4*rnd+0.1+sin(4*pi*x)&quot;,0);
+call mgl_data_modify(in,&quot;0.3+sin(4*pi*x)&quot;,0);
+call mgl_set_axis_2d(gr,-1.,-2.,1.,2.);
+call mgl_plot(gr,rnd,&quot;. &quot;);
+call mgl_box(gr,1);
+call mgl_fit_1(gr,res,rnd,&quot;a+b*sin(c*x)&quot;,&quot;abc&quot;,ini);
+call mgl_plot(gr,res,&quot;r&quot;);
+call mgl_plot(gr,in,&quot;b&quot;);
+call mgl_puts_ext(gr,-1.,-1.3,0.,&quot;fitted:&quot;,&quot;L:r&quot;,-1.,'t');
+call mgl_puts_fit(gr,0.,-1.8,0.,&quot;y = &quot;,&quot;C:r&quot;,-1.);
+call mgl_puts_ext(gr,0.,2.2,0.,&quot;initial: y = 0.3+sin(2\\pi x)&quot;,&quot;C:b&quot;, -1., 't');
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">rnd, In, res, ini = mglData(100), mglData(100), mglData(), mglData(3);
+rnd.Modify(&quot;0.4*rnd+0.1+sin(4*pi*x)&quot;);
+In.Modify(&quot;0.3+sin(4*pi*x)&quot;);
+gr.SetRanges(-1,1,-2,2);
+gr.Plot(rnd,&quot;. &quot;);
+gr.Box();
+ini[0], ini[1], ini[2] = 1, 1, 3;
+gr.Fit(res,rnd,&quot;a+b*sin(c*x)&quot;,&quot;abc&quot;,ini);
+gr.Plot(res,&quot;r&quot;);   gr.Plot(In,&quot;b&quot;);
+gr.Puts(-1,-1.3,0,&quot;fitted:&quot;,&quot;L:r&quot;,-1);
+gr.PutsFit(0,-1.8,0,&quot;y = &quot;,&quot;C:r&quot;,-1);
+gr.Puts(0,2.2,0,&quot;initial: y = 0.3+sin(2\\pi x)&quot;,&quot;C:b&quot;,-1);
+</pre><hr size="6">
+<a name="Envelop-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fitting-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Sew-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Envelop-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.6 Envelop &ndash; пример использования</h3>
+<a name="index-Envelop-2"></a>
+<div class="float">
+<img src="../png/envelop.png" alt="../png/envelop">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(1000);
+a.Fill(&quot;exp(-8*x^2)*sin(10*pi*x)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Plot(a, &quot;b&quot;);
+a.Envelop('x');
+gr-&gt;Plot(a, &quot;r&quot;);
+gr-&gt;Axis();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 1000
+fill a 'exp(-8*x^2)*sin(10*pi*x)'
+plot a 'b'
+envelop a
+plot a 'r'
+axis
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(1000,1,1);
+mgl_data_fill_eq(gr,a, &quot;exp(-8*x^2)*sin(10*pi*x)&quot;, 0,0);
+mgl_plot(gr,a,&quot;b&quot;);
+mgl_data_envelop(a,'x');
+mgl_plot(gr,a,&quot;r&quot;);
+mgl_axis(gr,&quot;xyz&quot;);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(1000,1,1)
+call mgl_data_fill_eq(gr,a, 'exp(-8*x^2)*sin(10*pi*x)', 0,0)
+call mgl_plot(gr,a,'b')
+call mgl_data_envelop(a,'x')
+call mgl_plot(gr,a,'r')
+call mgl_axis(gr,'xyz')
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(1000);
+gr.Fill(a, &quot;exp(-8*x^2)*sin(10*pi*x)&quot;);
+gr.Plot(a,&quot;b&quot;);
+a.Envelop(&quot;x&quot;);
+gr.Plot(a,&quot;r&quot;);
+gr.Axis();
+</pre><hr size="6">
+<a name="Sew-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Envelop-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#STFA-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Sew-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.7 Sew &ndash; пример использования</h3>
+<a name="index-Sew-2"></a>
+<div class="float">
+<img src="../png/sew.png" alt="../png/sew">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(100, 100);
+a.Modify(&quot;mod((y^2-(1-x)^2)/2,0.1)&quot;);
+gr-&gt;Rotate(40, 60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Surf(a, &quot;b&quot;);
+a.Sew(&quot;xy&quot;, 0.1);
+gr-&gt;Surf(a, &quot;r&quot;);
+gr-&gt;Box();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 100 100
+modify a 'mod((y^2-(1-x)^2)/2,0.1)'
+rotate 40 60
+light on
+alpha on
+surf a 'b'
+sew a 'xy' 0.1
+surf a 'r'
+box
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(100,100,1);
+mgl_data_modify(a, &quot;mod((y^2-(1-x)^2)/2, 0.1)&quot;, 0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_surf(gr,a,&quot;b&quot;);
+mgl_data_sew(a,&quot;xy&quot;,0.1);
+mgl_surf(gr,a,&quot;r&quot;);
+mgl_box(gr,1);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(100,100,1)
+call mgl_data_modify(a, 'mod((y^2-(1-x)^2)/2, 0.1)', 0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_surf(gr,a,'b')
+call mgl_data_sew(a,'xy',0.1)
+call mgl_surf(gr,a,'r')
+call mgl_box(gr,1)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(100, 100);
+a.Modify(&quot;mod((y^2-(1-x)^2)/2, 0.1)&quot;);
+gr.Rotate(40, 60);  gr.Light(True);     gr.Alpha(True);
+gr.Surf(a, &quot;b&quot;);
+a.Sew(&quot;xy&quot;, 0.1);
+gr.Surf(a, &quot;r&quot;);
+gr.Box();
+</pre><hr size="6">
+<a name="STFA-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Sew-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#PDE-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="STFA-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.8 STFA &ndash; пример использования</h3>
+<a name="index-STFA-3"></a>
+<div class="float">
+<img src="../png/stfa.png" alt="../png/stfa">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(2000), b(2000);
+a.Fill(&quot;cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+ \
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)&quot;, 
+        gr-&gt;Min, gr-&gt;Max);
+gr-&gt;SubPlot(1, 2, 0);
+gr-&gt;Plot(a);
+gr-&gt;Axis();
+gr-&gt;Label('x', &quot;\\i t&quot;);
+gr-&gt;SubPlot(1, 2, 1);
+gr-&gt;STFA(a, b, 64);
+gr-&gt;Axis();
+gr-&gt;Label('x', &quot;\\i t&quot;);
+gr-&gt;Label('y', &quot;\\omega&quot;, 0);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 2000
+new b 2000
+fill a 'cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)'
+subplot 1 2 0
+plot a
+axis
+xlabel '\i t'
+subplot 1 2 1
+stfa a b 64 ''
+axis
+ylabel '\omega' 0
+xlabel '\i t'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(2000,1,1);
+HMDT b = mgl_create_data_size(2000,1,1);
+mgl_data_fill_eq(gr, a, &quot;cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+ \
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)&quot;,0,0);
+mgl_subplot(gr,1,2,0);
+mgl_plot(gr,a,&quot;&quot;);
+mgl_axis(gr,&quot;xy&quot;);
+mgl_label(gr,'x', &quot;\\i t&quot;);
+mgl_subplot(gr,1,2,1);
+mgl_stfa(gr,a,b,64,&quot;&quot;,0.);
+mgl_axis(gr,&quot;xy&quot;);
+mgl_label(gr,'x', &quot;\\i t&quot;);
+mgl_label(gr,'y', &quot;\\omega&quot;);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(2000,1,1)
+b = mgl_create_data_size(2000,1,1)
+call mgl_data_fill_eq(gr, a, 'cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+ &amp;
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)',0,0)
+call mgl_subplot(gr,1,2,0)
+call mgl_plot(gr,a,'')
+call mgl_axis(gr,'xy')
+call mgl_label(gr,'x', '\i t')
+call mgl_subplot(gr,1,2,1)
+call mgl_stfa(gr,a,b,64,'',0.)
+call mgl_axis(gr,'xy')
+call mgl_label(gr,'x', '\i t')
+call mgl_label(gr,'y', '\omega')
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(2000), mglData(2000);
+gr.Fill(a,&quot;cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+ \
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)&quot;);
+gr.SubPlot(1, 2, 0);
+gr.Plot(a);
+gr.Axis();
+gr.Label('x', &quot;\\i t&quot;);
+gr.SubPlot(1, 2, 1);
+gr.STFA(a, b, 64);
+gr.Axis();
+gr.Label('x', &quot;\\i t&quot;);
+gr.Label('y', &quot;\\omega&quot;, 0);
+</pre><hr size="6">
+<a name="PDE-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#STFA-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Beam-tracing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="PDE-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.9 PDE &ndash; пример использования</h3>
+<a name="index-mglPDE-1"></a>
+<a name="index-mglRay-1"></a>
+<div class="float">
+<img src="../png/pde.png" alt="../png/pde">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a,re(128),im(128);
+gr-&gt;Axis();
+gr-&gt;Label('x', &quot;\\i x&quot;);
+gr-&gt;Label('y', &quot;\\i z&quot;);
+	
+re.Fill(&quot;exp(-48*(x+0.7)^2)&quot;, gr-&gt;Min, gr-&gt;Max);
+a = mglPDE(&quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;, re, im, gr-&gt;Min, gr-&gt;Max, 0.01, 30);
+a.Transpose(&quot;yxz&quot;);
+gr-&gt;CAxis(0, 1);
+gr-&gt;Dens(a,&quot;wyrRk&quot;);
+gr-&gt;Plot(&quot;-x&quot;, &quot;k|&quot;);
+gr-&gt;Puts(mglPoint(0, 0.85), &quot;absorption: (x+z)/2 for x+z&gt;0&quot;);
+gr-&gt;Title(&quot;\\r{Equation:} ik_0\\partial_zu + \\Delta u + x\\cdot u + \
+i \\frac{x+z}{2}\\cdot u = 0&quot;, &quot;iC&quot;, -1.5);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+fill re 'exp(-48*(x+0.7)^2)'
+pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)' re im 0.01 30
+transpose a
+crange 0 1
+dens a 'wyrRk'
+fplot '-x' 'k|'
+text 0 0.85 'absorption: (x+z)/2 for x+z&gt;0' '' -1
+title 'Equation: ik_0\partial_zu + \Delta u + x\cdot u + i \frac{x+z}{2}\cdot u = 0' 'iC' -1.5
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data();
+HMDT re = mgl_create_data_size(128,1,1);
+HMDT im = mgl_create_data_size(128,1,1);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_label(gr,'x', &quot;\\i x&quot;);
+mgl_label(gr,'y', &quot;\\i z&quot;);
+mgl_data_fill_eq(gr,re,&quot;exp(-48*(x+0.7)^2)&quot;, 0, 0);
+a = mgl_pde_solve(gr, &quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;, re, im, 0.01, 30.);
+mgl_data_transpose(a, &quot;yxz&quot;);
+mgl_set_caxis(gr, 0, 1);
+mgl_dens(gr, a,&quot;wyrRk&quot;, -1.);
+mgl_fplot(gr, &quot;-x&quot;, &quot;k|&quot;, 100);
+mgl_puts(gr, 0., 0.85, 0., &quot;absorption: (x+z)/2 for x+z&gt;0&quot;);
+mgl_title(gr, &quot;\\r{Equation:} ik_0\\partial_zu + \\Delta u + x\\cdot u + \
+i \\frac{x+z}{2}\\cdot u = 0&quot;, &quot;iC&quot;, -1.5);
+mgl_delete_data(a);
+mgl_delete_data(im);
+mgl_delete_data(re);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,re,im, mgl_create_data_size
+a = mgl_create_data()
+re = mgl_create_data_size(128,1,1)
+im = mgl_create_data_size(128,1,1)
+call mgl_axis(gr,'xyz')
+call mgl_label(gr,'x', '\i x')
+call mgl_label(gr,'y', '\i z')
+call mgl_data_fill_eq(gr,re,'exp(-48*(x+0.7)^2)', 0, 0)
+a = mgl_pde_solve(gr, 'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)', re, im, 0.01, 30.)
+call mgl_data_transpose(a, 'yxz')
+call mgl_set_caxis(gr, 0., 1.)
+call mgl_dens(gr, a,'wyrRk', -1.)
+call mgl_fplot(gr, '-x', 'k|', 100)
+call mgl_puts(gr, 0., 0.85, 0., 'absorption: (x+z)/2 for x+z&gt;0')
+call mgl_title(gr, '\r{Equation:} ik_0\partial_zu + \Delta u + x\cdot u + &amp;
+i \frac{x+z}{2}\cdot u = 0', 'iC', -1.5)
+call mgl_delete_data(a)
+call mgl_delete_data(im)
+call mgl_delete_data(re)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, re, im = mglData(), mglData(128), mglData(128);
+gr.Axis();
+gr.Label('x', &quot;\\i x&quot;);
+gr.Label('y', &quot;\\i z&quot;);
+	
+gr.Fill(re,&quot;exp(-48*(x+0.7)^2)&quot;);
+a = gr.PDE(&quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;, re, im, 0.01, 30);
+a.Transpose(&quot;yxz&quot;);
+gr.SetCRange(0, 1);
+gr.Dens(a,&quot;wyrRk&quot;);
+gr.Plot(&quot;-x&quot;, &quot;k|&quot;);
+gr.Puts(0, 0.85, 0., &quot;absorption: (x+z)/2 for x+z&gt;0&quot;);
+gr.Title(&quot;\\r{Equation:} ik_0\\partial_zu + \\Delta u + x\\cdot u + \
+i \\frac{x+z}{2}\\cdot u = 0&quot;, &quot;iC&quot;, -1.5);
+</pre><hr size="6">
+<a name="Beam-tracing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#PDE-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Parser-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Beam-tracing-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.10 Beam tracing &ndash; пример использования</h3>
+<a name="index-mglQO2d-1"></a>
+<a name="index-mglRay-2"></a>
+<div class="float">
+<img src="../png/qo2d.png" alt="../png/qo2d">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData r, xx, yy, a, im(128), re(128);
+const char *ham = &quot;p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)&quot;;
+r = mglRay(ham, mglPoint(-0.7, -1), mglPoint(0, 0.5), 0.02, 2);
+gr-&gt;Plot(r.SubData(0), r.SubData(1), &quot;k&quot;);
+gr-&gt;Axis();	gr-&gt;Label('x', &quot;\\i x&quot;);	gr-&gt;Label('y', &quot;\\i z&quot;);
+// now start beam tracing
+re.Fill(&quot;exp(-48*x^2)&quot;, gr-&gt;Min, gr-&gt;Max);
+a = mglQO2d(ham, re, im, r, 1, 30, &amp;xx, &amp;yy);
+gr-&gt;CAxis(0, 1);
+gr-&gt;Dens(xx, yy, a, &quot;wyrRk&quot;);
+gr-&gt;Plot(&quot;-x&quot;, &quot;k|&quot;);
+gr-&gt;Puts(mglPoint(0, 0.85), &quot;absorption: (x+y)/2 for x+y&gt;0&quot;);
+gr-&gt;Puts(mglPoint(0.7, -0.05), &quot;central ray&quot;);
+gr-&gt;Title(&quot;Beam and ray tracing&quot;, &quot;C&quot;, -1.5);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)'
+ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
+plot r(0) r(1) 'k'
+axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+new xx
+new yy
+fill re 'exp(-48*x^2)'
+qo2d a $1 re im r 1 30 xx yy 
+crange 0 1
+dens xx yy a 'wyrRk'
+fplot '-x' 'k|'
+text -0.8 0.85 'absorption: (x+y)/2 for x+y&gt;0' 'L' -1
+text 0.5 -0.05 'central ray' 'L' -1
+title 'Beam and ray tracing' 'C' -1.5
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">const char *ham = &quot;p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)&quot;;
+HMDT r, xx, yy, a, im, re;
+im = mgl_create_data_size(128,1,1);
+re = mgl_create_data_size(128,1,1);
+r = mgl_ray_trace(ham, -0.7, -1., 0., 0., 0.5, 0., 0.02, 2.);
+xx = mgl_data_subdata(r,0,-1,-1);
+yy = mgl_data_subdata(r,1,-1,-1);
+mgl_plot_xy(gr, xx, yy, &quot;k&quot;);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_label(gr,'x',&quot;\\i x&quot;);
+mgl_label(gr,'y',&quot;\\i z&quot;);
+mgl_data_fill_eq(gr,re,&quot;exp(-48*x^2)&quot;, 0, 0);
+a = mgl_qo2d_solve(ham, re, im, r, 1, 30, xx, yy);
+mgl_set_caxis(gr,0.,1.);
+mgl_dens_xy(gr,xx, yy, a, &quot;wyrRk&quot;, -1.);
+mgl_fplot(gr,&quot;-x&quot;, &quot;k|&quot;,100);
+mgl_puts(gr, 0., 0.85, 0., &quot;absorption: (x+y)/2 for x+y&gt;0&quot;);
+mgl_puts(gr, 0.7, -0.05, 0., &quot;central ray&quot;);
+mgl_title(gr, &quot;Beam and ray tracing&quot;, &quot;C&quot;, -1.5);
+mgl_delete_data(a);     mgl_delete_data(r);
+mgl_delete_data(xx);    mgl_delete_data(yy);
+mgl_delete_data(im);    mgl_delete_data(re);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer r, xx, yy, a, im, re, mgl_create_data_size
+integer mgl_data_subdata, mgl_ray_trace, mgl_qo2d_solve
+character*64 ham
+ham = 'p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)'
+im = mgl_create_data_size(128,1,1)
+re = mgl_create_data_size(128,1,1)
+r = mgl_ray_trace(ham, -0.7, -1., 0., 0., 0.5, 0., 0.02, 2.)
+xx = mgl_data_subdata(r,0,-1,-1)
+yy = mgl_data_subdata(r,1,-1,-1)
+call mgl_plot_xy(gr, xx, yy, 'k')
+call mgl_axis(gr,'xyz')
+call mgl_label(gr,'x','\i x')
+call mgl_label(gr,'y','\i z')
+call mgl_data_fill_eq(gr,re,'exp(-48*x^2)', 0, 0)
+a = mgl_qo2d_solve(ham, re, im, r, 1., 30., xx, yy)
+call mgl_set_caxis(gr,0.,1.)
+call mgl_dens_xy(gr,xx, yy, a, 'wyrRk', -1.)
+call mgl_fplot(gr,'-x', 'k|',100)
+call mgl_puts(gr, 0., 0.85, 0., 'absorption: (x+y)/2 for x+y&gt;0')
+call mgl_puts(gr, 0.7, -0.05, 0., 'central ray')
+call mgl_title(gr, 'Beam and ray tracing', 'C', -1.5)
+call mgl_delete_data(a)
+call mgl_delete_data(r)
+call mgl_delete_data(xx)
+call mgl_delete_data(yy)
+call mgl_delete_data(im)
+call mgl_delete_data(re)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ham = &quot;p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)&quot;;
+r, xx, yy, a = mglData(), mglData(), mglData(), mglData();
+im, re = mglData(128), mglData(128);
+r = mglRay(ham, mglPoint(-0.7, -1), mglPoint(0, 0.5), 0.02, 2);
+gr.Plot(r.SubData(0), r.SubData(1), &quot;k&quot;);
+gr.Axis();	gr.Label('x', &quot;\\i x&quot;);	gr.Label('y', &quot;\\i z&quot;);
+gr.Fill(re,&quot;exp(-48*x^2)&quot;);
+a = mglQO2d(ham, re, im, r, 1, 30, xx, yy);
+gr.SetCRange(0, 1);
+gr.Dens(xx, yy, a, &quot;wyrRk&quot;);
+gr.Plot(&quot;-x&quot;, &quot;k|&quot;);
+gr.Puts(0, 0.85, 0, &quot;absorption: (x+y)/2 for x+y&gt;0&quot;);
+gr.Puts(0.7, -0.05, 0, &quot;central ray&quot;);
+gr.Title(&quot;Beam and ray tracing&quot;, &quot;C&quot;, -1.5);
+</pre><hr size="6">
+<a name="Parser-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Beam-tracing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Manual-ticks-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Parser-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.11 Parser &ndash; пример использования</h3>
+<a name="index-mglParse-2"></a>
+<div class="float">
+<img src="../png/parser.png" alt="../png/parser">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">float a[100];   // let a_i = sin(4*pi*x), x=0...1
+for(int i=0;i&lt;100;i++) a[i]=sin(4*M_PI*i/99);
+mglParse *parser = new mglParse;
+mglData &amp;d = (parser-&gt;AddVar(&quot;dat&quot;))-&gt;d;
+d.Set(a,100);   // set data to variable
+parser-&gt;Execute(gr, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+// you may break script at any line do something
+// and continue after that
+parser-&gt;Execute(gr, &quot;xlabel 'x'\nylabel 'y'\nbox&quot;);
+// also you may use cycles or conditions in script
+parser-&gt;Execute(gr, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">float a[100];   /* let a_i = sin(4*pi*x), x=0...1 */
+int i;
+for(i=0;i&lt;100;i++)  a[i]=sin(4*M_PI*i/99);
+HMPR parser = mgl_create_parser();
+HMDT d = mgl_add_var(parser, &quot;dat&quot;);
+mgl_data_set_float(d,a,100,1,1);    /* set data to variable */
+mgl_parse_text(gr, parser, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+/* you may break script at any line do something 
+   and continue after that */
+mgl_parse_text(gr, parser, &quot;xlabel 'x'\nylabel 'y'&quot;);
+/* also you may use cycles or conditions in script */
+mgl_parse_text(gr, parser, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer i,parser,d, mgl_create_data_size, mgl_create_parser
+real a(100)
+! let a_i = sin(4*pi*x), x=0...1
+do i = 1,100
+    a(i)=sin(4*3.1415926*(i-1)/99)
+end do
+parser = mgl_create_parser()
+d = mgl_add_var(parser, &quot;dat&quot;)
+call mgl_data_set_real(d,a,100,1,1)    ! set data to variable
+! I don't know how put new line ('\n') into fortran string
+! So call mgl_parse_text() for each string :(
+call mgl_parse_text(gr, parser, &quot;plot dat; xrange 0 1&quot;)
+call mgl_parse_text(gr, parser, &quot;box&quot;)
+call mgl_parse_text(gr, parser, &quot;axis&quot;)
+! you may break script at any line do something 
+! and continue after that
+call mgl_parse_text(gr, parser, &quot;xlabel 'x'&quot;)
+call mgl_parse_text(gr, parser, &quot;ylabel 'y'&quot;)
+! there is now conditions because I don't know 
+! how to send several string into parser at once :(
+!! also you may use cycles or conditions in script
+!call mgl_parse_text(gr, parser, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;)
+</pre><p><strong>Python</strong>
+You may need to use <code>from numpy import *</code> for defining functions like <code>sin()</code>.
+</p><pre class="verbatim">parser = mglParse();
+dat = parser.AddVar(&quot;dat&quot;);
+dat.Create(100);
+for i in range(100):
+  dat[i] = sin(4*pi*i/99);
+parser.Execute(gr, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+# you may break script at any line do something 
+# and continue after that
+parser.Execute(gr, &quot;xlabel 'x'\nylabel 'y'&quot;);
+# also you may use cycles or conditions in script
+parser.Execute(gr, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+</pre><hr size="6">
+<a name="Manual-ticks-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Parser-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ColumnPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_043e_0431_044be-_043ce_0442_043a_0438-_043f_043e-_043e_0441ya_043c"></a>
+<h3 class="subsection">9.7.12 Особые метки по осям</h3>
+<a name="index-SetTicksVal-4"></a>
+<div class="float">
+<img src="../png/tval.png" alt="../png/tval">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Axis(mglPoint(-M_PI, 0), mglPoint(M_PI, 2));
+gr-&gt;SetTicksVal('x', 6, -M_PI, &quot;-\\pi&quot;, -M_PI/2, &quot;-\\pi/2&quot;, 0., &quot;0&quot;, 
+                0.886, &quot;x^*&quot;, M_PI/2, &quot;\\pi/2&quot;, M_PI, &quot;\\pi&quot;);
+gr-&gt;Axis();     gr-&gt;Grid();
+gr-&gt;Plot(&quot;2*cos(x^2)^2&quot;, &quot;r2&quot;, NAN, 300);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">axis -pi 0 pi 2
+xtick -pi '-\pi' -1.571 '-\pi/2' 0 '0' 0.886 'x^*' 1.571 '\pi/2' pi '\pi'
+axis 
+grid
+fplot '2*cos(x^2)^2' 'r2' nan 300
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">mgl_set_axis_2d(gr, -M_PI, 0, M_PI, 2);
+mgl_set_ticks_val(gr, 'x', 6, -M_PI, &quot;-\\pi&quot;, -M_PI/2, &quot;-\\pi/2&quot;,
+            0., &quot;0&quot;, 0.886, &quot;x^*&quot;, M_PI/2, &quot;\\pi/2&quot;, M_PI, &quot;\\pi&quot;);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_axis_grid(gr,&quot;xyz&quot;, &quot;B-&quot;);
+mgl_fplot(gr, &quot;2*cos(x^2)^2&quot;, &quot;r2&quot;, 300);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">gr.SetRanges(-pi, pi, 0, 2);
+parser = mglParse();
+# very &quot;stupid&quot; way because SWIG not support variable arguments
+parser.Execute(gr, &quot;xtick -pi '-\pi' -1.571 '-\pi/2' 0 '0' &quot;
+                    &quot;0.886 'x^*' 1.571 '\pi/2' pi '\pi'&quot;);
+gr.Axis();     gr.Grid();
+gr.Plot(&quot;2*cos(x^2)^2&quot;, &quot;r2&quot;, 300);
+</pre><hr size="6">
+<a name="ColumnPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Manual-ticks-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#StickPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ColumnPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.13 ColumnPlot &ndash; пример использования</h3>
+<a name="index-SetTicksVal-5"></a>
+<div class="float">
+<img src="../png/column.png" alt="../png/column">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">char str[32];
+for(int i=0;i&lt;4;i++)
+{
+        gr-&gt;ColumnPlot(4,i);
+        gr-&gt;Box();
+        sprintf(str,&quot;Plot %d of 4&quot;,i);
+        gr-&gt;Text(mglPoint(-0.5,0.5),str);
+        sprintf(str,&quot;sin(pi*x+pi*%d/2)&quot;,i);
+        gr-&gt;Plot(str);
+}
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">for $1 0 3
+columnplot 4 $1
+box
+text -0.5 0.5 'Plot $1 of 4'
+fplot 'sin(pi*x+pi*$1/2)'
+next
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">int i;
+char str[32];
+for(i=0;i&lt;4;i++)
+{
+        mgl_columnplot(gr,4,i);
+        mgl_box(gr,1);
+        sprintf(str,&quot;Plot %d of 4&quot;,i);
+        mgl_text(gr,-0.5,0.5,0.,str);
+        sprintf(str,&quot;sin(pi*x+pi*%d/2)&quot;,i);
+        mgl_fplot(gr,str,&quot;&quot;,100);
+}
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="StickPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ColumnPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stereo-image-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="StickPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.14 StickPlot &ndash; пример использования</h3>
+<a name="index-SetTicksVal-6"></a>
+<div class="float">
+<img src="../png/stick.png" alt="../png/stick">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;SetRanges(-1, 1, -1, 1, 0, 1);  gr-&gt;Light(true);
+gr-&gt;StickPlot(3, 0, 40, 30);        gr-&gt;Axis(&quot;xyz_&quot;);
+gr-&gt;Surf(&quot;exp(-10*y^2-6*x^2)&quot;);
+gr-&gt;Text(mglPoint(0.2, 0, 1.2), &quot;z=0&quot;, &quot;&quot;, -2);
+gr-&gt;StickPlot(3, 1, 40, 30);        gr-&gt;Axis(&quot;xyz_&quot;);
+gr-&gt;Surf(&quot;exp(-10*y^2/2-6*x^2)/sqrt(2)&quot;);
+gr-&gt;Text(mglPoint(0.2, 0, 1.2), &quot;z=1&quot;, &quot;&quot;, -2);
+gr-&gt;StickPlot(3, 2, 40, 30);        gr-&gt;Axis(&quot;xyz_&quot;);
+gr-&gt;Surf(&quot;exp(-10*y^2/5-6*x^2)/sqrt(5)&quot;);
+gr-&gt;Text(mglPoint(0.2, 0, 1.2), &quot;z=2&quot;, &quot;&quot;, -2);
+gr-&gt;Label('x',&quot;\\tau&quot;, 0);  gr-&gt;Label('y', &quot;\\rho&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">ranges -1 1 -1 1 0 1:light on
+stickplot 3 0 40 30 : axis 'xyz_'
+fsurf 'exp(-10*y^2-6*x^2)'
+text 0.2 0 1.2 'z=0' '' -2
+stickplot 3 1 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/2-6*x^2)/sqrt(2)'
+text 0.2 0 1.2 'z=1' '' -2
+stickplot 3 2 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/5-6*x^2)/sqrt(5)'
+text 0.2 0 1.2 'z=2' '' -2
+xlabel '\tau' 0 : ylabel '\rho'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">mgl_set_axis_3d(gr, -1, -1, 0, 1, 1, 1);
+mgl_set_light(gr, 1);
+mgl_stickplot(gr, 3, 0, 40, 30);
+mgl_axis(gr, &quot;xyz_&quot;);
+mgl_fsurf(gr,&quot;exp(-10*y^2-6*x^2)&quot;,&quot;&quot;,100);
+mgl_text(gr, 0.2, 0, 1.2, &quot;z=0&quot;);
+mgl_stickplot(gr, 3, 1, 40, 30);
+mgl_axis(gr, &quot;xyz_&quot;);
+mgl_fsurf(gr,&quot;exp(-10*y^2/2-6*x^2)/sqrt(2)&quot;,&quot;&quot;,100);
+mgl_text(gr, 0.2, 0, 1.2, &quot;z=1&quot;);
+mgl_stickplot(gr, 3, 2, 40, 30);
+mgl_axis(gr, &quot;xyz_&quot;);
+mgl_fsurf(gr,&quot;exp(-10*y^2/5-6*x^2)/sqrt(5)&quot;,&quot;&quot;,100);
+mgl_text(gr, 0.2, 0, 1.2, &quot;z=2&quot;);
+mgl_label(gr,'x',&quot;\\tau&quot;);
+mgl_label(gr,'y', &quot;\\rho&quot;);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Stereo-image-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#StickPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-_0441_0442e_0440e_043e-_0438_0437_043e_0431_0440_0430_0436e_043d_0438ya"></a>
+<h3 class="subsection">9.7.15 Пример стерео изображения</h3>
+<div class="float">
+<img src="../png/stereo.png" alt="../png/stereo">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Light(true);
+gr-&gt;SubPlot(2,1,0);
+gr-&gt;Rotate(40,60+3);
+gr-&gt;Box();   gr-&gt;Surf(a);
+gr-&gt;SubPlot(2,1,1);
+gr-&gt;Rotate(40,60-3);
+gr-&gt;Box();   gr-&gt;Surf(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+subplot 2 1 0
+rotate 40 60+3
+box:surf a
+subplot 2 1 1
+rotate 40 60-3
+box:surf a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_set_light(gr,1);
+mgl_subplot(gr,2,1,0);
+mgl_rotate(gr,40.,60.+3.,0.);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_subplot(gr,2,1,1);
+mgl_rotate(gr,40.,60.-3.,0.);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_set_light(gr,1)
+call mgl_subplot(gr,2,1,0)
+call mgl_rotate(gr,40.,60.+3.,0.)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_subplot(gr,2,1,1)
+call mgl_rotate(gr,40.,60.-3.,0.)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Light(True);
+gr.SubPlot(2,1,0);
+gr.Rotate(40,60+3);
+gr.Surf(a);  gr.Box();
+gr.SubPlot(2,1,1);
+gr.Rotate(40,60-3);
+gr.Surf(a);  gr.Box();
+</pre>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_abt.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_abt.html
new file mode 100644
index 0000000..02abc7b
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_abt.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: About This Document</title>
+
+<meta name="description" content="MathGL 1.11: About This Document">
+<meta name="keywords" content="MathGL 1.11: About This Document">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="SEC_About"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1>About This Document</h1>
+<p>
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+</p>
+<p>
+  The buttons in the navigation panels have the following meaning:
+</p>
+<table border="1">
+  <tr>
+    <th> Button </th>
+    <th> Name </th>
+    <th> Go to </th>
+    <th> From 1.2.3 go to</th>
+  </tr>
+  <tr>
+    <td align="center"> [ &lt; ] </td>
+    <td align="center">Back</td>
+    <td>Previous section in reading order</td>
+    <td>1.2.2</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &gt; ] </td>
+    <td align="center">Forward</td>
+    <td>Next section in reading order</td>
+    <td>1.2.4</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &lt;&lt; ] </td>
+    <td align="center">FastBack</td>
+    <td>Beginning of this chapter or previous chapter</td>
+    <td>1</td>
+  </tr>
+  <tr>
+    <td align="center"> [ Up ] </td>
+    <td align="center">Up</td>
+    <td>Up section</td>
+    <td>1.2</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &gt;&gt; ] </td>
+    <td align="center">FastForward</td>
+    <td>Next chapter</td>
+    <td>2</td>
+  </tr>
+  <tr>
+    <td align="center"> [Top] </td>
+    <td align="center">Top</td>
+    <td>Cover (top) of document</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [Contents] </td>
+    <td align="center">Contents</td>
+    <td>Table of contents</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [Index] </td>
+    <td align="center">Index</td>
+    <td>Index</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [ ? ] </td>
+    <td align="center">About</td>
+    <td>About (help)</td>
+    <td> &nbsp; </td>
+  </tr>
+</table>
+
+<p>
+  where the <strong> Example </strong> assumes that the current position is at <strong> Subsubsection One-Two-Three </strong> of a document of the following structure:
+</p>
+
+<ul>
+  <li> 1. Section One
+    <ul>
+      <li>1.1 Subsection One-One
+        <ul>
+          <li>...</li>
+        </ul>
+      </li>
+      <li>1.2 Subsection One-Two
+        <ul>
+          <li>1.2.1 Subsubsection One-Two-One</li>
+          <li>1.2.2 Subsubsection One-Two-Two</li>
+          <li>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp;
+            <strong>&lt;== Current Position </strong></li>
+          <li>1.2.4 Subsubsection One-Two-Four</li>
+        </ul>
+      </li>
+      <li>1.3 Subsection One-Three
+        <ul>
+          <li>...</li>
+        </ul>
+      </li>
+      <li>1.4 Subsection One-Four</li>
+    </ul>
+  </li>
+</ul>
+
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_toc.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_toc.html
new file mode 100644
index 0000000..991ca34
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mathgl_ru.html/mathgl_ru_toc.html
@@ -0,0 +1,454 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: Table of Contents</title>
+
+<meta name="description" content="MathGL 1.11: Table of Contents">
+<meta name="keywords" content="MathGL 1.11: Table of Contents">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="SEC_Contents"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1>Table of Contents</h1>
+<div class="contents">
+
+<ul class="toc">
+  <li><a name="toc-_041e_0431_0437_043e_0440-MathGL" href="mathgl_ru_1.html#Overview">1. Обзор MathGL</a>
+  <ul class="toc">
+    <li><a name="toc-_0417_0430_0447e_043c-_043d_0430_043f_0438_0441_0430_043d_0430-MathGL_003f" href="mathgl_ru_1.html#Why-I-have-written-MathGL_003f">1.1 Зачем написана MathGL?</a></li>
+    <li><a name="toc-_0412_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438-MathGL" href="mathgl_ru_1.html#MathGL-features">1.2 Возможности MathGL</a></li>
+    <li><a name="toc-_0423_0441_0442_0430_043d_043e_0432_043a_0430-MathGL" href="mathgl_ru_1.html#Installation-and-using">1.3 Установка MathGL</a></li>
+    <li><a name="toc-_041e_0441_043d_043e_0432_043d_044be-_043f_0440_0438_043dc_0438_043f_044b" href="mathgl_ru_1.html#General-concepts">1.4 Основные принципы</a>
+    <ul class="toc">
+      <li><a name="toc-_041e_0441_0438-_043a_043e_043e_0440_0434_0438_043d_0430_0442" href="mathgl_ru_1.html#Coordinate-axes">1.4.1 Оси координат</a></li>
+      <li><a name="toc-_0421_0442_0438_043bx-_043b_0438_043d_0438_0439" href="mathgl_ru_1.html#Line-styles">1.4.2 Стиль линий</a></li>
+      <li><a name="toc-C_0432e_0442_043e_0432_0430ya-_0441_0445e_043c_0430" href="mathgl_ru_1.html#Color-scheme">1.4.3 Цветовая схема</a></li>
+      <li><a name="toc-_0421_0442_0438_043bx-_0442e_043a_0441_0442_0430" href="mathgl_ru_1.html#Font-styles">1.4.4 Стиль текста</a></li>
+      <li><a name="toc-_0422e_043a_0441_0442_043e_0432_044be-_0444_043e_0440_043c_0443_043b_044b" href="mathgl_ru_1.html#Textual-formulas">1.4.5 Текстовые формулы</a></li>
+    </ul></li>
+    <li><a name="toc-FAQ-1" href="mathgl_ru_1.html#FAQ">1.5 FAQ</a></li>
+    <li><a name="toc-_0418_043d_0442e_0440_0444e_0439_0441_044b" href="mathgl_ru_1.html#Interfaces">1.6 Интерфейсы</a>
+    <ul class="toc">
+      <li><a name="toc-C-_0438_043d_0442e_0440_0444e_0439_0441" href="mathgl_ru_1.html#C-interface">1.6.1 C интерфейс</a></li>
+      <li><a name="toc-Python-_0438_043d_0442e_0440_0444e_0439_0441" href="mathgl_ru_1.html#Python-interface">1.6.2 Python интерфейс</a></li>
+    </ul></li>
+    <li><a name="toc-_0411_043b_0430g_043e_0434_0430_0440_043d_043e_0441_0442_0438" href="mathgl_ru_1.html#Thanks">1.7 Благодарности</a></li>
+  </ul></li>
+  <li><a name="toc-MathGL-examples" href="mathgl_ru_2.html#Examples">2. MathGL examples</a>
+  <ul class="toc">
+    <li><a name="toc-Basic-usage-1" href="mathgl_ru_2.html#Basic-usage">2.1 Basic usage</a>
+    <ul class="toc">
+      <li><a name="toc-Using-FLTK_002fQt_002fGLUT-window" href="mathgl_ru_2.html#Using-FLTK_002fGLUT-window">2.1.1 Using FLTK/Qt/GLUT window</a></li>
+      <li><a name="toc-Drawing-to-file-1" href="mathgl_ru_2.html#Drawing-to-file">2.1.2 Drawing to file</a></li>
+      <li><a name="toc-Drawing-in-memory-1" href="mathgl_ru_2.html#Drawing-in-memory">2.1.3 Drawing in memory</a></li>
+      <li><a name="toc-Using-QMathGL-1" href="mathgl_ru_2.html#Using-QMathGL">2.1.4 Using QMathGL</a></li>
+    </ul></li>
+    <li><a name="toc-Advanced-usage-1" href="mathgl_ru_2.html#Advanced-usage">2.2 Advanced usage</a>
+    <ul class="toc">
+      <li><a name="toc-Subplots-1" href="mathgl_ru_2.html#Subplots">2.2.1 Subplots</a></li>
+      <li><a name="toc-Axis-and-grids-1" href="mathgl_ru_2.html#Axis-and-grids">2.2.2 Axis and grids</a></li>
+      <li><a name="toc-Curvilinear-coordinates-1" href="mathgl_ru_2.html#Curvilinear-coordinates">2.2.3 Curvilinear coordinates</a></li>
+      <li><a name="toc-Text-printing-example-1" href="mathgl_ru_2.html#Text-printing-example">2.2.4 Text printing example</a></li>
+      <li><a name="toc-Animation-1" href="mathgl_ru_2.html#Animation">2.2.5 Animation</a></li>
+    </ul></li>
+    <li><a name="toc-Data-handling-1" href="mathgl_ru_2.html#Data-handling">2.3 Data handling</a>
+    <ul class="toc">
+      <li><a name="toc-Array-creation-1" href="mathgl_ru_2.html#Array-creation">2.3.1 Array creation</a></li>
+      <li><a name="toc-Data-changing-1" href="mathgl_ru_2.html#Data-changing">2.3.2 Data changing</a></li>
+    </ul></li>
+    <li><a name="toc-Data-plotting-1" href="mathgl_ru_2.html#Data-plotting">2.4 Data plotting</a>
+    <ul class="toc">
+      <li><a name="toc-Plots-for-1D-data-1" href="mathgl_ru_2.html#Plots-for-1D-data">2.4.1 Plots for 1D data</a></li>
+      <li><a name="toc-Plots-for-2D-data-1" href="mathgl_ru_2.html#Plots-for-2D-data">2.4.2 Plots for 2D data</a></li>
+      <li><a name="toc-Plots-for-3D-data-1" href="mathgl_ru_2.html#Plots-for-3D-data">2.4.3 Plots for 3D data</a></li>
+      <li><a name="toc-Surface-transparency-1" href="mathgl_ru_2.html#Surface-transparency">2.4.4 Surface transparency</a></li>
+    </ul></li>
+    <li><a name="toc-C_002fFortran-interface-1" href="mathgl_ru_2.html#C_002fFortran-interface">2.5 C/Fortran interface</a></li>
+    <li><a name="toc-MathGL-and-PyQt-1" href="mathgl_ru_2.html#MathGL-and-PyQt">2.6 MathGL and PyQt</a></li>
+    <li><a name="toc-Hints-1" href="mathgl_ru_2.html#Hints">2.7 Hints</a>
+    <ul class="toc">
+      <li><a name="toc-_0060_0060Compound_0027_0027-graphics-1" href="mathgl_ru_2.html#g_t_0060_0060Compound_0027_0027-graphics">2.7.1 &ldquo;Compound&rdquo; graphics</a></li>
+      <li><a name="toc-Two-axes-in-one-plot-1" href="mathgl_ru_2.html#Two-axes-in-one-plot">2.7.2 Two axes in one plot</a></li>
+      <li><a name="toc-Titles-for-the-plot-1" href="mathgl_ru_2.html#Titles-for-the-plot">2.7.3 Titles for the plot</a></li>
+      <li><a name="toc-Changing-of-the-color-range-1" href="mathgl_ru_2.html#Changing-of-the-color-range">2.7.4 Changing of the color range</a></li>
+      <li><a name="toc-Management-of-a-point-cutting-1" href="mathgl_ru_2.html#Management-of-a-point-cutting">2.7.5 Management of a point cutting</a></li>
+      <li><a name="toc-Vector-field-visualization-1" href="mathgl_ru_2.html#Vector-field-visualization">2.7.6 Vector field visualization</a></li>
+      <li><a name="toc-Several-light-sources-1" href="mathgl_ru_2.html#Several-light-sources">2.7.7 Several light sources</a></li>
+      <li><a name="toc-CutMin-and-CutMax-features-1" href="mathgl_ru_2.html#CutMin-and-CutMax-features">2.7.8 CutMin and CutMax features</a></li>
+      <li><a name="toc-Mapping-visualization-1" href="mathgl_ru_2.html#Mapping-visualization">2.7.9 Mapping visualization</a></li>
+      <li><a name="toc-Log_002dscaled-plot-1" href="mathgl_ru_2.html#Log_002dscaled-plot">2.7.10 Log-scaled plot</a></li>
+      <li><a name="toc-_0060_0060Templates_0027_0027-1" href="mathgl_ru_2.html#g_t_0060_0060Templates_0027_0027">2.7.11 &ldquo;Templates&rdquo;</a></li>
+      <li><a name="toc-Nonlinear-fitting-hints-1" href="mathgl_ru_2.html#Nonlinear-fitting-hints">2.7.12 Nonlinear fitting hints</a></li>
+      <li><a name="toc-PDE-solving-hints-1" href="mathgl_ru_2.html#PDE-solving-hints">2.7.13 PDE solving hints</a></li>
+      <li><a name="toc-MGL-parser-using-1" href="mathgl_ru_2.html#MGL-parser-using">2.7.14 MGL parser using</a></li>
+      <li><a name="toc-Stereo-image-1" href="mathgl_ru_2.html#Stereo-image">2.7.15 Stereo image</a></li>
+    </ul>
+</li>
+  </ul></li>
+  <li><a name="toc-YA_0434_0440_043e-MathGL" href="mathgl_ru_3.html#MathGL-core">3. Ядро MathGL</a>
+  <ul class="toc">
+    <li><a name="toc-_041d_0430_0441_0442_0440_043e_0439_043a_0430-g_0440_0430_0444_0438_043a_0430" href="mathgl_ru_3.html#Graphics-setup">3.1 Настройка графика</a>
+    <ul class="toc">
+      <li><a name="toc-_041f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x" href="mathgl_ru_3.html#Transparency">3.1.1 Прозрачность</a></li>
+      <li><a name="toc-_041e_0441_0432e_0449e_043d_0438e" href="mathgl_ru_3.html#Lighting">3.1.2 Освещение</a></li>
+      <li><a name="toc-_0422_0443_043c_0430_043d" href="mathgl_ru_3.html#Fog">3.1.3 Туман</a></li>
+      <li><a name="toc-_0411_0430_0437_043e_0432_044be-_0440_0430_0437_043ce_0440_044b" href="mathgl_ru_3.html#Default-sizes">3.1.4 Базовые размеры</a></li>
+      <li><a name="toc-_041c_0430_0441_0448_0442_0430_0431_0438_0440_043e_0432_0430_043d_0438e" href="mathgl_ru_3.html#Zooming">3.1.5 Масштабирование</a></li>
+      <li><a name="toc-_041e_0431_0440e_0437_0430_043d_0438e" href="mathgl_ru_3.html#Cutting">3.1.6 Обрезание</a></li>
+      <li><a name="toc-_0428_0440_0438_0444_0442_044b" href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></li>
+      <li><a name="toc-_041f_0430_043b_0438_0442_0440_0430-_0438-c_0432e_0442_0430" href="mathgl_ru_3.html#Palette-and-colors">3.1.8 Палитра и цвета</a></li>
+      <li><a name="toc-_041e_0431_0440_0430_0431_043e_0442_043a_0430-_043e_0448_0438_0431_043e_043a" href="mathgl_ru_3.html#Error-handling">3.1.9 Обработка ошибок</a></li>
+      <li><a name="toc-_041f_0440_043e_0447_0438e-_043d_0430_0441_0442_0440_043e_0439_043a_0438" href="mathgl_ru_3.html#Other-settings">3.1.10 Прочие настройки</a></li>
+    </ul></li>
+    <li><a name="toc-_041d_0430_0441_0442_0440_043e_0439_043a_0438-_043e_0441e_0439-_043a_043e_043e_0440_0434_0438_043d_0430_0442" href="mathgl_ru_3.html#Axis-settings">3.2 Настройки осей координат</a>
+    <ul class="toc">
+      <li><a name="toc-_041c_0430_0441_0448_0442_0430_0431-_043e_0441e_0439-_043a_043e_043e_0440_0434_0438_043d_0430_0442" href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></li>
+      <li><a name="toc-_041a_0440_0438_0432_043e_043b_0438_043de_0439_043d_044be-_043a_043e_043e_0440_0434_0438_043d_0430_0442_044b" href="mathgl_ru_3.html#Transformation">3.2.2 Криволинейные координаты</a></li>
+      <li><a name="toc-_041ce_0442_043a_0438-_043e_0441e_0439" href="mathgl_ru_3.html#Ticks">3.2.3 Метки осей</a></li>
+    </ul></li>
+    <li><a name="toc-_041c_0430_0442_0440_0438c_0430-_043f_0440e_043e_0431_0440_0430_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></li>
+    <li><a name="toc-_042d_043a_0441_043f_043e_0440_0442-_0432-_0444_0430_0439_043b" href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></li>
+    <li><a name="toc-_0420_0438_0441_043e_0432_0430_043d_0438e-_043f_0440_0438_043c_0438_0442_0438_0432_043e_0432-1" href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></li>
+    <li><a name="toc-_0412_044b_0432_043e_0434-_0442e_043a_0441_0442_0430" href="mathgl_ru_3.html#Text-printing">3.6 Вывод текста</a></li>
+    <li><a name="toc-_041e_0441_0438-_0438-Colorbar" href="mathgl_ru_3.html#Axis-and-Colorbar">3.7 Оси и Colorbar</a></li>
+    <li><a name="toc-_041bege_043d_0434_0430" href="mathgl_ru_3.html#Legend">3.8 Легенда</a></li>
+    <li><a name="toc-1D-g_0440_0430_0444_0438_043a_0438" href="mathgl_ru_3.html#g_t1D-plotting">3.9 1D графики</a>
+    <ul class="toc">
+      <li><a name="toc-Plot-1" href="mathgl_ru_3.html#Plot">3.9.1 Plot</a></li>
+      <li><a name="toc-Radar-1" href="mathgl_ru_3.html#Radar">3.9.2 Radar</a></li>
+      <li><a name="toc-Tens-1" href="mathgl_ru_3.html#Tens">3.9.3 Tens</a></li>
+      <li><a name="toc-Area-1" href="mathgl_ru_3.html#Area">3.9.4 Area</a></li>
+      <li><a name="toc-Region-1" href="mathgl_ru_3.html#Region">3.9.5 Region</a></li>
+      <li><a name="toc-Stem-1" href="mathgl_ru_3.html#Stem">3.9.6 Stem</a></li>
+      <li><a name="toc-Bars-1" href="mathgl_ru_3.html#Bars">3.9.7 Bars</a></li>
+      <li><a name="toc-Barh-1" href="mathgl_ru_3.html#Barh">3.9.8 Barh</a></li>
+      <li><a name="toc-Chart-1" href="mathgl_ru_3.html#Chart">3.9.9 Chart</a></li>
+      <li><a name="toc-Step-1" href="mathgl_ru_3.html#Step">3.9.10 Step</a></li>
+      <li><a name="toc-Torus-1" href="mathgl_ru_3.html#Torus">3.9.11 Torus</a></li>
+      <li><a name="toc-Tube-1" href="mathgl_ru_3.html#Tube">3.9.12 Tube</a></li>
+      <li><a name="toc-Mark-1" href="mathgl_ru_3.html#Mark">3.9.13 Mark</a></li>
+      <li><a name="toc-TextMark-1" href="mathgl_ru_3.html#TextMark">3.9.14 TextMark</a></li>
+      <li><a name="toc-Error-1" href="mathgl_ru_3.html#Error">3.9.15 Error</a></li>
+      <li><a name="toc-BoxPlot-1" href="mathgl_ru_3.html#BoxPlot">3.9.16 BoxPlot</a></li>
+    </ul></li>
+    <li><a name="toc-2D-g_0440_0430_0444_0438_043a_0438" href="mathgl_ru_3.html#g_t2D-plotting">3.10 2D графики</a>
+    <ul class="toc">
+      <li><a name="toc-Mesh-1" href="mathgl_ru_3.html#Mesh">3.10.1 Mesh</a></li>
+      <li><a name="toc-Fall-1" href="mathgl_ru_3.html#Fall">3.10.2 Fall</a></li>
+      <li><a name="toc-Belt-1" href="mathgl_ru_3.html#Belt">3.10.3 Belt</a></li>
+      <li><a name="toc-Surf-1" href="mathgl_ru_3.html#Surf">3.10.4 Surf</a></li>
+      <li><a name="toc-Boxs-1" href="mathgl_ru_3.html#Boxs">3.10.5 Boxs</a></li>
+      <li><a name="toc-Tile-1" href="mathgl_ru_3.html#Tile">3.10.6 Tile</a></li>
+      <li><a name="toc-Dens-1" href="mathgl_ru_3.html#Dens">3.10.7 Dens</a></li>
+      <li><a name="toc-Cont-1" href="mathgl_ru_3.html#Cont">3.10.8 Cont</a></li>
+      <li><a name="toc-ContF-1" href="mathgl_ru_3.html#ContF">3.10.9 ContF</a></li>
+      <li><a name="toc-ContD-1" href="mathgl_ru_3.html#ContD">3.10.10 ContD</a></li>
+      <li><a name="toc-Axial-1" href="mathgl_ru_3.html#Axial">3.10.11 Axial</a></li>
+      <li><a name="toc-Grad-1" href="mathgl_ru_3.html#Grad">3.10.12 Grad</a></li>
+      <li><a name="toc-Grid-1" href="mathgl_ru_3.html#Grid">3.10.13 Grid</a></li>
+    </ul></li>
+    <li><a name="toc-3D-g_0440_0430_0444_0438_043a_0438" href="mathgl_ru_3.html#g_t3D-plotting">3.11 3D графики</a>
+    <ul class="toc">
+      <li><a name="toc-Surf3-1" href="mathgl_ru_3.html#Surf3">3.11.1 Surf3</a></li>
+      <li><a name="toc-Dens3-1" href="mathgl_ru_3.html#Dens3">3.11.2 Dens3</a></li>
+      <li><a name="toc-Cont3-1" href="mathgl_ru_3.html#Cont3">3.11.3 Cont3</a></li>
+      <li><a name="toc-ContF3-1" href="mathgl_ru_3.html#ContF3">3.11.4 ContF3</a></li>
+      <li><a name="toc-Grid3-1" href="mathgl_ru_3.html#Grid3">3.11.5 Grid3</a></li>
+      <li><a name="toc-Cloud-1" href="mathgl_ru_3.html#Cloud">3.11.6 Cloud</a></li>
+      <li><a name="toc-Beam-1" href="mathgl_ru_3.html#Beam">3.11.7 Beam</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0430_0440_043d_044be-g_0440_0430_0444_0438_043a_0438" href="mathgl_ru_3.html#Dual-plotting">3.12 Парные графики</a>
+    <ul class="toc">
+      <li><a name="toc-SurfC-1" href="mathgl_ru_3.html#SurfC">3.12.1 SurfC</a></li>
+      <li><a name="toc-Surf3C-1" href="mathgl_ru_3.html#Surf3C">3.12.2 Surf3C</a></li>
+      <li><a name="toc-SurfA-1" href="mathgl_ru_3.html#SurfA">3.12.3 SurfA</a></li>
+      <li><a name="toc-Surf3A-1" href="mathgl_ru_3.html#Surf3A">3.12.4 Surf3A</a></li>
+      <li><a name="toc-TileS-1" href="mathgl_ru_3.html#TileS">3.12.5 TileS</a></li>
+      <li><a name="toc-Map-1" href="mathgl_ru_3.html#Map">3.12.6 Map</a></li>
+      <li><a name="toc-STFA-1" href="mathgl_ru_3.html#STFA">3.12.7 STFA</a></li>
+    </ul></li>
+    <li><a name="toc-_0412e_043a_0442_043e_0440_043d_044be-_043f_043e_043bya" href="mathgl_ru_3.html#Vector-fields">3.13 Векторные поля</a>
+    <ul class="toc">
+      <li><a name="toc-Traj-1" href="mathgl_ru_3.html#Traj">3.13.1 Traj</a></li>
+      <li><a name="toc-Vect-1" href="mathgl_ru_3.html#Vect">3.13.2 Vect</a></li>
+      <li><a name="toc-Dew-1" href="mathgl_ru_3.html#Dew">3.13.3 Dew</a></li>
+      <li><a name="toc-Flow-1" href="mathgl_ru_3.html#Flow">3.13.4 Flow</a></li>
+      <li><a name="toc-FlowP-1" href="mathgl_ru_3.html#FlowP">3.13.5 FlowP</a></li>
+      <li><a name="toc-Pipe-1" href="mathgl_ru_3.html#Pipe">3.13.6 Pipe</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0440_043e_0447_0438e-g_0440_0430_0444_0438_043a_0438" href="mathgl_ru_3.html#Other-plotting">3.14 Прочие графики</a>
+    <ul class="toc">
+      <li><a name="toc-DensXYZ-1" href="mathgl_ru_3.html#DensXYZ">3.14.1 DensXYZ</a></li>
+      <li><a name="toc-ContXYZ-1" href="mathgl_ru_3.html#ContXYZ">3.14.2 ContXYZ</a></li>
+      <li><a name="toc-ContFXYZ-1" href="mathgl_ru_3.html#ContFXYZ">3.14.3 ContFXYZ</a></li>
+      <li><a name="toc-Dots-1" href="mathgl_ru_3.html#Dots">3.14.4 Dots</a></li>
+      <li><a name="toc-Crust-1" href="mathgl_ru_3.html#Crust">3.14.5 Crust</a></li>
+      <li><a name="toc-TriPlot-1" href="mathgl_ru_3.html#TriPlot">3.14.6 TriPlot</a></li>
+      <li><a name="toc-TriCont-1" href="mathgl_ru_3.html#TriCont">3.14.7 TriCont</a></li>
+      <li><a name="toc-QuadPlot-1" href="mathgl_ru_3.html#QuadPlot">3.14.8 QuadPlot</a></li>
+      <li><a name="toc-_0413_0440_0430_0444_0438_043a_0438-_0444_0443_043d_043ac_0438_0439" href="mathgl_ru_3.html#Plots-by-formula">3.14.9 Графики функций</a></li>
+      <li><a name="toc-SimplePlot-1" href="mathgl_ru_3.html#SimplePlot">3.14.10 SimplePlot</a></li>
+    </ul></li>
+    <li><a name="toc-Nonlinear-fitting-1" href="mathgl_ru_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></li>
+    <li><a name="toc-_0420_0430_0441_043f_0440e_0434e_043be_043d_0438e-_0434_0430_043d_043d_044b_0445" href="mathgl_ru_3.html#Data-distributions">3.16 Распределение данных</a></li>
+    <li><a name="toc-_041a_0430_0434_0440_044b_002f_0410_043d_0438_043c_0430c_0438ya" href="mathgl_ru_3.html#Frames_002fAnimation">3.17 Кадры/Анимация</a></li>
+    <li><a name="toc-IDTF-_0444_0443_043d_043ac_0438_0438" href="mathgl_ru_3.html#IDTF-functions">3.18 IDTF функции</a></li>
+  </ul></li>
+  <li><a name="toc-_041a_043b_0430_0441_0441_044b-_0434_043bya-_043e_0442_0440_0438_0441_043e_0432_043a_0438" href="mathgl_ru_4.html#Plotter-classes">4. Классы для отрисовки</a>
+  <ul class="toc">
+    <li><a name="toc-_041a_043b_0430_0441_0441-mglGraphAB" href="mathgl_ru_4.html#mglGraphAB-class">4.1 Класс mglGraphAB</a></li>
+  </ul></li>
+  <li><a name="toc-_0060_0060_041e_043a_043e_043d_043d_044be_0027_0027-_043a_043b_0430_0441_0441_044b" href="mathgl_ru_5.html#Widget-classes">5. &ldquo;Оконные&rdquo; классы</a>
+  <ul class="toc">
+    <li><a name="toc-_041a_043b_0430_0441_0441-Fl_005fMathGL" href="mathgl_ru_5.html#Fl_005fMathGL-class">5.1 Класс Fl_MathGL</a></li>
+    <li><a name="toc-QMathGL-class-1" href="mathgl_ru_5.html#QMathGL-class">5.2 QMathGL class</a></li>
+  </ul></li>
+  <li><a name="toc-_041a_043b_0430_0441_0441-mglData" href="mathgl_ru_6.html#mglData-class">6. Класс mglData</a>
+  <ul class="toc">
+    <li><a name="toc-_041fe_0440e_043ce_043d_043d_044be" href="mathgl_ru_6.html#Public-variables">6.1 Переменные</a></li>
+    <li><a name="toc-_0421_043e_0437_0434_0430_043d_0438e-_0438-_0443_0434_0430_043be_043d_0438e" href="mathgl_ru_6.html#Create-and-delete">6.2 Создание и удаление</a></li>
+    <li><a name="toc-_0417_0430_043f_043e_043b_043de_043d_0438e-_0434_0430_043d_043d_044b_0445" href="mathgl_ru_6.html#Fill">6.3 Заполнение данных</a></li>
+    <li><a name="toc-_0418_0437_043ce_043de_043d_0438e-_0440_0430_0437_043ce_0440_043e_0432-_0434_0430_043d_043d_044b_0445" href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></li>
+    <li><a name="toc-_0427_0442e_043d_0438e_002f_0441_043e_0445_0440_0430_043de_043d_0438e-_0434_0430_043d_043d_044b_0445" href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></li>
+    <li><a name="toc-_0421_043e_0437_0434_0430_043d_0438e-_043d_043e_0432_044b_0445-_0434_0430_043d_043d_044b_0445" href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></li>
+    <li><a name="toc-_0418_0437_043ce_043de_043d_0438e-_0434_0430_043d_043d_044b_0445" href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></li>
+    <li><a name="toc-_0418_043d_0442e_0440_043f_043e_043byac_0438ya" href="mathgl_ru_6.html#Interpolation">6.8 Интерполяция</a></li>
+    <li><a name="toc-_0418_043d_0444_043e_0440_043c_0430c_0438_043e_043d_043d_044be-_0444_0443_043d_043ac_0438_0438" href="mathgl_ru_6.html#Informational-functions">6.9 Информационные функции</a></li>
+    <li><a name="toc-_041e_043fe_0440_0430_0442_043e_0440_044b" href="mathgl_ru_6.html#Operators">6.10 Операторы</a></li>
+    <li><a name="toc-_0413_043b_043e_0431_0430_043bx_043d_044be-_0444_0443_043d_043ac_0438_0438" href="mathgl_ru_6.html#Global-functions">6.11 Глобальные функции</a></li>
+  </ul></li>
+  <li><a name="toc-Other-classes-1" href="mathgl_ru_7.html#Other-classes">7. Other classes</a>
+  <ul class="toc">
+    <li><a name="toc-mglParse-class-1" href="mathgl_ru_7.html#mglParse-class">7.1 mglParse class</a></li>
+    <li><a name="toc-mglFormula-class-1" href="mathgl_ru_7.html#mglFormula-class">7.2 mglFormula class</a></li>
+    <li><a name="toc-mglFont-class-1" href="mathgl_ru_7.html#mglFont-class">7.3 mglFont class</a>
+    <ul class="toc">
+      <li><a name="toc-Format-of-font-files-1" href="mathgl_ru_7.html#Format-of-font-files">7.3.1 Format of font files</a></li>
+    </ul></li>
+    <li><a name="toc-mglColor-class-1" href="mathgl_ru_7.html#mglColor-class">7.4 mglColor class</a></li>
+    <li><a name="toc-mglPoint-class-1" href="mathgl_ru_7.html#mglPoint-class">7.5 mglPoint class</a></li>
+    <li><a name="toc-mglVar-class-1" href="mathgl_ru_7.html#mglVar-class">7.6 mglVar class</a></li>
+    <li><a name="toc-mglCommand-class-1" href="mathgl_ru_7.html#mglCommand-class">7.7 mglCommand class</a></li>
+    <li><a name="toc-mglArg-class-1" href="mathgl_ru_7.html#mglArg-class">7.8 mglArg class</a></li>
+  </ul></li>
+  <li><a name="toc-YA_0437_044b_043a-MGL" href="mathgl_ru_8.html#MGL-interface">8. Язык MGL</a>
+  <ul class="toc">
+    <li><a name="toc-_041d_0430_0441_0442_0440_043e_0439_043a_0430-g_0440_0430_0444_0438_043a_0430-_0028MGL_0029" href="mathgl_ru_8.html#Graphics-setup-_0028MGL_0029">8.1 Настройка графика (MGL)</a>
+    <ul class="toc">
+      <li><a name="toc-_041f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x-_0028MGL_0029" href="mathgl_ru_8.html#Transparency-_0028MGL_0029">8.1.1 Прозрачность (MGL)</a></li>
+      <li><a name="toc-_041e_0441_0432e_0449e_043d_0438e-_0028MGL_0029" href="mathgl_ru_8.html#Lighting-_0028MGL_0029">8.1.2 Освещение (MGL)</a></li>
+      <li><a name="toc-_0422_0443_043c_0430_043d-_0028MGL_0029" href="mathgl_ru_8.html#Fog-_0028MGL_0029">8.1.3 Туман (MGL)</a></li>
+      <li><a name="toc-_0411_0430_0437_043e_0432_044be-_0440_0430_0437_043ce_0440_044b-_0028MGL_0029" href="mathgl_ru_8.html#Default-sizes-_0028MGL_0029">8.1.4 Базовые размеры (MGL)</a></li>
+      <li><a name="toc-_041c_0430_0441_0448_0442_0430_0431_0438_0440_043e_0432_0430_043d_0438e-_0028MGL_0029" href="mathgl_ru_8.html#Zooming-_0028MGL_0029">8.1.5 Масштабирование (MGL)</a></li>
+      <li><a name="toc-_041e_0431_0440e_0437_0430_043d_0438e-_0028MGL_0029" href="mathgl_ru_8.html#Cutting-_0028MGL_0029">8.1.6 Обрезание (MGL)</a></li>
+      <li><a name="toc-_041f_0440_043e_0447_0438e-_043d_0430_0441_0442_0440_043e_0439_043a_0438-_0028MGL_0029" href="mathgl_ru_8.html#Other-settings-_0028MGL_0029">8.1.7 Прочие настройки (MGL)</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0430_0440_0430_043ce_0442_0440_044b-_043e_0441e_0439-_043a_043e_043e_0440_0434_0438_043d_0430_0442-_0028MGL_0029" href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></li>
+    <li><a name="toc-_041c_0430_0442_0440_0438c_0430-_043f_0440e_043e_0431_0440_0430_0437_043e_0432_0430_043d_0438ya-_0028MGL_0029" href="mathgl_ru_8.html#Transformation-matrix-_0028MGL_0029">8.3 Матрица преобразования (MGL)</a></li>
+    <li><a name="toc-_042d_043a_0441_043f_043e_0440_0442-_0432-_0444_0430_0439_043b-_0028MGL_0029" href="mathgl_ru_8.html#Export-to-file-_0028MGL_0029">8.4 Экспорт в файл (MGL)</a></li>
+    <li><a name="toc-_0420_0438_0441_043e_0432_0430_043d_0438e-_043f_0440_0438_043c_0438_0442_0438_0432_043e_0432" href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></li>
+    <li><a name="toc-_0412_044b_0432_043e_0434-_0442e_043a_0441_0442_0430-_0028MGL_0029" href="mathgl_ru_8.html#Text-printing-_0028MGL_0029">8.6 Вывод текста (MGL)</a></li>
+    <li><a name="toc-_041e_0441_0438-_0438-Colorbar-_0028MGL_0029" href="mathgl_ru_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></li>
+    <li><a name="toc-_041bege_043d_0434_0430-_0028MGL_0029" href="mathgl_ru_8.html#Legend-_0028MGL_0029">8.8 Легенда (MGL)</a></li>
+    <li><a name="toc-1D-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029" href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></li>
+    <li><a name="toc-2D-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029" href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></li>
+    <li><a name="toc-3D-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029" href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></li>
+    <li><a name="toc-_041f_0430_0440_043d_044be-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029" href="mathgl_ru_8.html#Dual-plotting-_0028MGL_0029">8.12 Парные графики (MGL)</a></li>
+    <li><a name="toc-_0412e_043a_0442_043e_0440_043d_044be-_043f_043e_043bya-_0028MGL_0029" href="mathgl_ru_8.html#Vector-fields-_0028MGL_0029">8.13 Векторные поля (MGL)</a></li>
+    <li><a name="toc-_041f_0440_043e_0447_0438e-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029" href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></li>
+    <li><a name="toc-Nonlinear-fitting-_0028MGL_0029-1" href="mathgl_ru_8.html#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></li>
+    <li><a name="toc-_0421_043e_0437_0434_0430_043d_0438e-_0434_0430_043d_043d_044b_0445-_0028MGL_0029" href="mathgl_ru_8.html#Data-create-_0028MGL_0029">8.16 Создание данных (MGL)</a></li>
+    <li><a name="toc-_0417_0430_043f_043e_043b_043de_043d_0438e-_0434_0430_043d_043d_044b_0445-_0028MGL_0029" href="mathgl_ru_8.html#Data-filling-_0028MGL_0029">8.17 Заполнение данных (MGL)</a></li>
+    <li><a name="toc-_0418_0437_043ce_043de_043d_0438e-_0440_0430_0437_043ce_0440_043e_0432-_0434_0430_043d_043d_044b_0445-_0028MGL_0029" href="mathgl_ru_8.html#Rearrange-data-_0028MGL_0029">8.18 Изменение размеров данных (MGL)</a></li>
+    <li><a name="toc-_0427_0442e_043d_0438e_002f_0441_043e_0445_0440_0430_043de_043d_0438e-_0434_0430_043d_043d_044b_0445-_0028MGL_0029" href="mathgl_ru_8.html#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></li>
+    <li><a name="toc-_0421_043e_0437_0434_0430_043d_0438e-_043d_043e_0432_044b_0445-_0434_0430_043d_043d_044b_0445-_0028MGL_0029" href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></li>
+    <li><a name="toc-_0418_0437_043ce_043de_043d_0438e-_0434_0430_043d_043d_044b_0445-_0028MGL_0029" href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></li>
+    <li><a name="toc-_041e_043fe_0440_0430_0442_043e_0440_044b-_0028MGL_0029" href="mathgl_ru_8.html#Operators-_0028MGL_0029">8.22 Операторы (MGL)</a></li>
+    <li><a name="toc-_041f_0440_043eg_0440_0430_043c_043c_0438_0440_043e_0432_0430_043d_0438e-_0028MGL_0029" href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></li>
+    <li><a name="toc-_041e_043fc_0438_0438-_043a_043e_043c_0430_043d_0434-_0028MGL_0029" href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></li>
+    <li><a name="toc-_0421_0443_0444_0444_0438_043a_0441_044b-_043fe_0440e_043ce_043d_043d_044b_0445" href="mathgl_ru_8.html#Suffixes">8.25 Суффиксы переменных</a></li>
+    <li><a name="toc-_0423_0442_0438_043b_0438_0442_044b-_0434_043bya-MGL" href="mathgl_ru_8.html#Utilities">8.26 Утилиты для MGL</a></li>
+  </ul></li>
+  <li><a name="toc-_041f_0440_0438_043ce_0440_044b-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya-MathGL" href="mathgl_ru_9.html#Samples">9. Примеры использования MathGL</a>
+  <ul class="toc">
+    <li><a name="toc-_041f_0440_0438_043ce_0440_044b-1D-g_0440_0430_0444_0438_043a_043e_0432" href="mathgl_ru_9.html#g_t1D-plotting-samples">9.1 Примеры 1D графиков</a>
+    <ul class="toc">
+      <li><a name="toc-Plot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Plot-sample">9.1.1 Plot &ndash; пример использования</a></li>
+      <li><a name="toc-Radar-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Radar-sample">9.1.2 Radar &ndash; пример использования</a></li>
+      <li><a name="toc-Tens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Tens-sample">9.1.3 Tens &ndash; пример использования</a></li>
+      <li><a name="toc-Area-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Area-sample">9.1.4 Area &ndash; пример использования</a></li>
+      <li><a name="toc-Area-_0441-g_0440_0430_0434_0438e_043d_0442_043d_043e_0439-_0437_0430_043b_0438_0432_043a_043e_0439-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Area-gradient-sample">9.1.5 Area с градиентной заливкой &ndash; пример использования</a></li>
+      <li><a name="toc-Bars-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Bars-sample">9.1.6 Bars &ndash; пример использования</a></li>
+      <li><a name="toc-Bars-_00282-c_0432e_0442_0430_0029-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Bars-2-colors-sample">9.1.7 Bars (2 цвета) &ndash; пример использования</a></li>
+      <li><a name="toc-Bars-_0028_043e_0434_0438_043d-_043d_0430_0434-_0434_0440_0443g_0438_043c_0029-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Bars-above-sample">9.1.8 Bars (один над другим) &ndash; пример использования</a></li>
+      <li><a name="toc-Bars-_0022_0432_043e_0434_043e_043f_0430_0434_0022-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Bars-fall-sample">9.1.9 Bars &quot;водопад&quot; &ndash; пример использования</a></li>
+      <li><a name="toc-Barh-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Barh-sample">9.1.10 Barh &ndash; пример использования</a></li>
+      <li><a name="toc-Step-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Step-sample">9.1.11 Step &ndash; пример использования</a></li>
+      <li><a name="toc-Stem-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Stem-sample">9.1.12 Stem &ndash; пример использования</a></li>
+      <li><a name="toc-Region-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Region-sample">9.1.13 Region &ndash; пример использования</a></li>
+      <li><a name="toc-Region-_0441-g_0440_0430_0434_0438e_043d_0442_043d_043e_0439-_0437_0430_043b_0438_0432_043a_043e_0439-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Region-gradient-sample">9.1.14 Region с градиентной заливкой &ndash; пример использования</a></li>
+      <li><a name="toc-Error-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Error-sample">9.1.15 Error &ndash; пример использования</a></li>
+      <li><a name="toc-BoxPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#BoxPlot-sample">9.1.16 BoxPlot &ndash; пример использования</a></li>
+      <li><a name="toc-Mark-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Mark-sample">9.1.17 Mark &ndash; пример использования</a></li>
+      <li><a name="toc-TextMark-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#TextMark-sample">9.1.18 TextMark &ndash; пример использования</a></li>
+      <li><a name="toc-Tube-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Tube-sample">9.1.19 Tube &ndash; пример использования</a></li>
+      <li><a name="toc-Text-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Text-sample">9.1.20 Text &ndash; пример использования</a></li>
+      <li><a name="toc-Torus-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Torus-sample">9.1.21 Torus &ndash; пример использования</a></li>
+      <li><a name="toc-Chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Chart-sample">9.1.22 Chart &ndash; пример использования</a></li>
+      <li><a name="toc-Pie-chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Pie-chart-sample">9.1.23 Pie chart &ndash; пример использования</a></li>
+      <li><a name="toc-Ring-chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Ring-chart-sample">9.1.24 Ring chart &ndash; пример использования</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0440_0438_043ce_0440_044b-2D-g_0440_0430_0444_0438_043a_043e_0432" href="mathgl_ru_9.html#g_t2D-plotting-samples">9.2 Примеры 2D графиков</a>
+    <ul class="toc">
+      <li><a name="toc-Surf-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Surf-sample">9.2.1 Surf &ndash; пример использования</a></li>
+      <li><a name="toc-Transparent-surface-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Transparent-surface-sample">9.2.2 Transparent surface &ndash; пример использования</a></li>
+      <li><a name="toc-Surface-in-fog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Surface-in-fog-sample">9.2.3 Surface in fog &ndash; пример использования</a></li>
+      <li><a name="toc-Sharp-colors-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Sharp-colors-sample">9.2.4 Sharp colors &ndash; пример использования</a></li>
+      <li><a name="toc-Mesh-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Mesh-sample">9.2.5 Mesh &ndash; пример использования</a></li>
+      <li><a name="toc-Fall-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Fall-sample">9.2.6 Fall &ndash; пример использования</a></li>
+      <li><a name="toc-Belt-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Belt-sample">9.2.7 Belt &ndash; пример использования</a></li>
+      <li><a name="toc-Tile-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Tile-sample">9.2.8 Tile &ndash; пример использования</a></li>
+      <li><a name="toc-Boxs-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Boxs-sample">9.2.9 Boxs &ndash; пример использования</a></li>
+      <li><a name="toc-Dens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Dens-sample">9.2.10 Dens &ndash; пример использования</a></li>
+      <li><a name="toc-Cont-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Cont-sample">9.2.11 Cont &ndash; пример использования</a></li>
+      <li><a name="toc-ContF-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#ContF-sample">9.2.12 ContF &ndash; пример использования</a></li>
+      <li><a name="toc-ContD-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#ContD-sample">9.2.13 ContD &ndash; пример использования</a></li>
+      <li><a name="toc-Axial-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Axial-sample">9.2.14 Axial &ndash; пример использования</a></li>
+      <li><a name="toc-Grad-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Grad-sample">9.2.15 Grad &ndash; пример использования</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0440_0438_043ce_0440_044b-3D-g_0440_0430_0444_0438_043a_043e_0432" href="mathgl_ru_9.html#g_t3D-plotting-samples">9.3 Примеры 3D графиков</a>
+    <ul class="toc">
+      <li><a name="toc-Surf3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Surf3-sample">9.3.1 Surf3 &ndash; пример использования</a></li>
+      <li><a name="toc-Cloud-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Cloud-sample">9.3.2 Cloud &ndash; пример использования</a></li>
+      <li><a name="toc-CloudP-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#CloudP-sample">9.3.3 CloudP &ndash; пример использования</a></li>
+      <li><a name="toc-Dens3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Dens3-sample">9.3.4 Dens3 &ndash; пример использования</a></li>
+      <li><a name="toc-Cont3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Cont3-sample">9.3.5 Cont3 &ndash; пример использования</a></li>
+      <li><a name="toc-ContF3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#ContF3-sample">9.3.6 ContF3 &ndash; пример использования</a></li>
+      <li><a name="toc-Cont-projection-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Cont-projection-sample">9.3.7 Cont projection &ndash; пример использования</a></li>
+      <li><a name="toc-Dens-projection-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Dens-projection-sample">9.3.8 Dens projection &ndash; пример использования</a></li>
+      <li><a name="toc-CutMinMax-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#CutMinMax-sample">9.3.9 CutMinMax &ndash; пример использования</a></li>
+      <li><a name="toc-_0060_0060Isocaps_0027_0027-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></li>
+      <li><a name="toc-CutOff-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#CutOff-sample">9.3.11 CutOff &ndash; пример использования</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0440_0438_043ce_0440_044b-_043f_0430_0440_043d_044b_0445_002f_0432e_043a_0442_043e_0440_043d_044b_0445-g_0440_0430_0444_0438_043a_043e_0432" href="mathgl_ru_9.html#Dual-plotting-samples">9.4 Примеры парных/векторных графиков</a>
+    <ul class="toc">
+      <li><a name="toc-SurfC-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#SurfC-sample">9.4.1 SurfC &ndash; пример использования</a></li>
+      <li><a name="toc-SurfA-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#SurfA-sample">9.4.2 SurfA &ndash; пример использования</a></li>
+      <li><a name="toc-TileS-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#TileS-sample">9.4.3 TileS &ndash; пример использования</a></li>
+      <li><a name="toc-Map-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Map-sample">9.4.4 Map &ndash; пример использования</a></li>
+      <li><a name="toc-Traj-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Traj-sample">9.4.5 Traj &ndash; пример использования</a></li>
+      <li><a name="toc-Vect-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Vect-sample">9.4.6 Vect &ndash; пример использования</a></li>
+      <li><a name="toc-VectL-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#VectL-sample">9.4.7 VectL &ndash; пример использования</a></li>
+      <li><a name="toc-VectC-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#VectC-sample">9.4.8 VectC &ndash; пример использования</a></li>
+      <li><a name="toc-Flow-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Flow-sample">9.4.9 Flow &ndash; пример использования</a></li>
+      <li><a name="toc-Pipe-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Pipe-sample">9.4.10 Pipe &ndash; пример использования</a></li>
+      <li><a name="toc-Dew-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Dew-sample">9.4.11 Dew &ndash; пример использования</a></li>
+      <li><a name="toc-Surf3C-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Surf3C-sample">9.4.12 Surf3C &ndash; пример использования</a></li>
+      <li><a name="toc-Surf3A-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Surf3A-sample">9.4.13 Surf3A &ndash; пример использования</a></li>
+      <li><a name="toc-Vect-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Vect-3D-sample">9.4.14 Vect 3D &ndash; пример использования</a></li>
+      <li><a name="toc-VectL-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#VectL-3D-sample">9.4.15 VectL 3D &ndash; пример использования</a></li>
+      <li><a name="toc-VectC-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#VectC-3D-sample">9.4.16 VectC 3D &ndash; пример использования</a></li>
+      <li><a name="toc-Flow-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Flow-3D-sample">9.4.17 Flow 3D &ndash; пример использования</a></li>
+      <li><a name="toc-Pipe-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Pipe-3D-sample">9.4.18 Pipe 3D &ndash; пример использования</a></li>
+      <li><a name="toc-Crust-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Crust-sample">9.4.19 Crust &ndash; пример использования</a></li>
+      <li><a name="toc-Dots-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Dots-sample">9.4.20 Dots &ndash; пример использования</a></li>
+    </ul></li>
+    <li><a name="toc-_0411_0430_0437_043e_0432_044be-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438" href="mathgl_ru_9.html#Basic-features">9.5 Базовые возможности</a>
+    <ul class="toc">
+      <li><a name="toc-_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-1D-_0434_0430_043d_043d_044b_0445" href="mathgl_ru_9.html#g_t1D-plot-sample">9.5.1 Пример графиков 1D данных</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-2D-_0434_0430_043d_043d_044b_0445" href="mathgl_ru_9.html#g_t2D-plot-sample">9.5.2 Пример графиков 2D данных</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-3D-_0434_0430_043d_043d_044b_0445" href="mathgl_ru_9.html#g_t3D-plot-sample">9.5.3 Пример графиков 3D данных</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_043b_0438_043d_0438_0439-_0438-_043c_0430_0440_043ae_0440_043e_0432" href="mathgl_ru_9.html#Line-styles-sample">9.5.4 Пример стилей линий и маркеров</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_0441_0442_0440e_043b_043e_043a" href="mathgl_ru_9.html#Arrow-styles-sample">9.5.5 Пример стилей стрелок</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_0442e_043a_0441_0442_0430" href="mathgl_ru_9.html#Text-styles-sample">9.5.6 Пример стилей текста</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-TeX-_0444_043e_0440_043c_0443_043b_044b" href="mathgl_ru_9.html#TeX-parsing-sample">9.5.7 Пример TeX формулы</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440_044b-_043d_0430_0447e_0440_0442_0430_043d_0438_0439-_0448_0440_0438_0444_0442_0430" href="mathgl_ru_9.html#Font-faces-sample">9.5.8 Примеры начертаний шрифта</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440_044b-c_0432e_0442_043e_0432" href="mathgl_ru_9.html#Colors-sample">9.5.9 Примеры цветов</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440_044b-c_0432e_0442_043e_0432_044b_0445-_0441_0445e_043c" href="mathgl_ru_9.html#Color-schemes-sample">9.5.10 Примеры цветовых схем</a></li>
+      <li><a name="toc-_041e_0431_044b_0447_043d_0430ya-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x" href="mathgl_ru_9.html#Normal-transparency">9.5.11 Обычная прозрачность</a></li>
+      <li><a name="toc-_0022_0421_0442e_043a_043bya_043d_043d_0430ya_0022-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x" href="mathgl_ru_9.html#Glass_002dlike-transparency">9.5.12 &quot;Стеклянная&quot; прозрачность</a></li>
+      <li><a name="toc-_0022_041b_0430_043c_043f_043e_0432_0430ya_0022-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x" href="mathgl_ru_9.html#Lamp_002dlike-transparency">9.5.13 &quot;Ламповая&quot; прозрачность</a></li>
+    </ul></li>
+    <li><a name="toc-_0414_043e_043f_043e_043b_043d_0438_0442e_043bx_043d_044be-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438" href="mathgl_ru_9.html#Additional-features">9.6 Дополнительные возможности</a>
+    <ul class="toc">
+      <li><a name="toc-Legend-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Legend-sample">9.6.1 Legend &ndash; пример использования</a></li>
+      <li><a name="toc-_0414_043e_0431_0430_0432_043byae_043c-_0441e_0442_043a_0443" href="mathgl_ru_9.html#Adding-mesh-sample">9.6.2 Добавляем сетку</a></li>
+      <li><a name="toc-Surf-_0026-Cont-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Surf-_0026-Cont-sample">9.6.3 Surf &amp; Cont &ndash; пример использования</a></li>
+      <li><a name="toc-Flow-_0026-Dens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Flow-_0026-Dens-sample">9.6.4 Flow &amp; Dens &ndash; пример использования</a></li>
+      <li><a name="toc-_041de_0441_043a_043e_043bx_043a_043e-_0438_0441_0442_043e_0447_043d_0438_043a_043e_0432-_0441_0432e_0442_0430" href="mathgl_ru_9.html#Several-light-sample">9.6.5 Несколько источников света</a></li>
+      <li><a name="toc-_041e_0442_0440_0430_0436e_043d_0438e-_043f_043e_0432e_0440_0445_043d_043e_0441_0442_0438" href="mathgl_ru_9.html#Mirrored-surface-sample">9.6.6 Отражение поверхности</a></li>
+      <li><a name="toc-Cont-_0438-_043f_043e_0434_043f_0438_0441_0438-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Cont-with-labels-sample">9.6.7 Cont и подписи &ndash; пример использования</a></li>
+      <li><a name="toc-Ternary-plot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Ternary-plot-sample">9.6.8 Ternary plot &ndash; пример использования</a></li>
+      <li><a name="toc-_041e_043a_0440_0430_0448_0438_0432_0430_043d_0438e-_043f_043e-_043f_043e_043b_043e_0436e_043d_0438_044e-g_0440_0430_043d_0438" href="mathgl_ru_9.html#Coloring-by-coordinates-sample">9.6.9 Окрашивание по положению грани</a></li>
+      <li><a name="toc-Drops-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Drops-sample">9.6.10 Drops &ndash; пример использования</a></li>
+      <li><a name="toc-_0420_0438_0441_043e_0432_0430_043d_0438e-_043c_043e_043be_043a_0443_043b" href="mathgl_ru_9.html#Molecules-drawing-sample">9.6.11 Рисование молекул</a></li>
+    </ul></li>
+    <li><a name="toc-_0022_041f_0440_043e_0434_0432_0438_043d_0443_0442_044be_0022-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438" href="mathgl_ru_9.html#Advanced-features">9.7 &quot;Продвинутые&quot; возможности</a>
+    <ul class="toc">
+      <li><a name="toc-_041a_0440_0438_0432_043e_043b_0438_043de_0439_043d_044be-_043a_043e_043e_0440_0434_0438_043d_0430_0442_044b-1" href="mathgl_ru_9.html#Curvelinear-coorinates-sample">9.7.1 Криволинейные координаты</a></li>
+      <li><a name="toc-_041de_0441_043a_043e_043bx_043a_043e-_043e_0441e_0439-_043d_0430-_043e_0434_043d_043e_043c-g_0440_0430_0444_0438_043ae" href="mathgl_ru_9.html#g_t2_002daxes-sample">9.7.2 Несколько осей на одном графике</a></li>
+      <li><a name="toc-Semi_002dlog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Semi_002dlog-sample">9.7.3 Semi-log &ndash; пример использования</a></li>
+      <li><a name="toc-Log_002dlog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Log_002dlog-sample">9.7.4 Log-log &ndash; пример использования</a></li>
+      <li><a name="toc-Fitting-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Fitting-sample">9.7.5 Fitting &ndash; пример использования</a></li>
+      <li><a name="toc-Envelop-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Envelop-sample">9.7.6 Envelop &ndash; пример использования</a></li>
+      <li><a name="toc-Sew-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Sew-sample">9.7.7 Sew &ndash; пример использования</a></li>
+      <li><a name="toc-STFA-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#STFA-sample">9.7.8 STFA &ndash; пример использования</a></li>
+      <li><a name="toc-PDE-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#PDE-sample">9.7.9 PDE &ndash; пример использования</a></li>
+      <li><a name="toc-Beam-tracing-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Beam-tracing-sample">9.7.10 Beam tracing &ndash; пример использования</a></li>
+      <li><a name="toc-Parser-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Parser-sample">9.7.11 Parser &ndash; пример использования</a></li>
+      <li><a name="toc-_041e_0441_043e_0431_044be-_043ce_0442_043a_0438-_043f_043e-_043e_0441ya_043c" href="mathgl_ru_9.html#Manual-ticks-sample">9.7.12 Особые метки по осям</a></li>
+      <li><a name="toc-ColumnPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#ColumnPlot-sample">9.7.13 ColumnPlot &ndash; пример использования</a></li>
+      <li><a name="toc-StickPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#StickPlot-sample">9.7.14 StickPlot &ndash; пример использования</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-_0441_0442e_0440e_043e-_0438_0437_043e_0431_0440_0430_0436e_043d_0438ya" href="mathgl_ru_9.html#Stereo-image-sample">9.7.15 Пример стерео изображения</a></li>
+    </ul>
+</li>
+  </ul></li>
+  <li><a name="toc-_0421_0438_043c_0432_043e_043b_044b-TeX" href="mathgl_ru_10.html#TeX_002dlike-symbols">A. Символы TeX</a></li>
+  <li><a name="toc-GNU-Free-Documentation-License" href="mathgl_ru_11.html#Copying-This-Manual">B. GNU Free Documentation License</a></li>
+  <li><a name="toc-_0418_043d_0434e_043a_0441" href="mathgl_ru_12.html#Index">Индекс</a></li>
+</ul>
+</div>
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru.html
new file mode 100644
index 0000000..1096480
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: Язык MGL</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: Язык MGL">
+<meta name="keywords" content="Язык MGL для версии 1.11: Язык MGL">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Top"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="YA_0437_044b_043a-MGL"></a>
+<h1 class="settitle">Язык MGL</h1>
+
+<p>Это документация для языка MGL (версии 1.11). Пожалуйста сообщайте о любых ошибках в этом руководстве на <a href="mailto:mathgl.abalakin at gmail.org">mathgl.abalakin at gmail.org</a>. Дополнительную информацию о MGL и MathGL можно найти на домашней странице проекта <a href="http://mathgl.sourceforge.net/">http://mathgl.sourceforge.net/</a>.
+</p>
+<p>Copyright &copy; 2010 Алексей Балакин. 
+</p>
+<blockquote><p>Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being &ldquo;A GNU Manual,&rdquo;
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled &ldquo;GNU Free Documentation
+License.&rdquo;
+</p>
+<p>(a) The FSF&rsquo;s Back-Cover Text is: &ldquo;You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom.&rdquo;
+</p></blockquote>
+
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="mgl_ru_1.html#MGL-interface">1. Язык MGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mgl_ru_2.html#Examples">2. MathGL examples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mgl_ru_3.html#Samples">3. Примеры использования MathGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mgl_ru_4.html#Copying-This-Manual">A. GNU Free Documentation License</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mgl_ru_5.html#Index">Индекс</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_1.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_1.html
new file mode 100644
index 0000000..94434cd
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_1.html
@@ -0,0 +1,3154 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: 1. Язык MGL</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: 1. Язык MGL">
+<meta name="keywords" content="Язык MGL для версии 1.11: 1. Язык MGL">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="MGL-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="YA_0437_044b_043a-MGL-1"></a>
+<h1 class="chapter">1. Язык MGL</h1>
+
+<p>MathGL имеет встроенный скриптовый язык MGL для обработки и отображения данных. Скрипты MGL можно использовать как независимо (программами UDAV, mgl2png, mgl2eps, mgl2svg и пр., see section <a href="#Utilities">Утилиты для MGL</a>) так и вызовами библиотеки.
+</p>
+<p>Язык MGL достаточно простой. Каждая строка &ndash; отдельная команда. Первое слово &ndash; имя команды, а все остальные ее аргументы. Команда может иметь до 1000 аргументов (по крайней мере сейчас). Слова разделяются одно от другого пробелом или символом табуляции. Различий между верхним и нижним индексом нет, т.е. переменные <var>a</var> и <var>A</var> идентичны. Символ &lsquo;<samp>#</samp>&rsquo; начинает комментарий &ndash; все символы после него игнорируются до конца строки. Исключением является случай, когда &lsquo;<samp>#</samp>&rsquo; входит в строку. Опции команды указываются после символа &lsquo;<samp>;</samp>&rsquo; (see section <a href="#Command-options">Опции команд</a>). Символ &lsquo;<samp>:</samp>&rsquo; начинает новую команду (подобно переводу строки) если он расположен не внутри скобок или строки.
+</p>
+<p>Если строка содержит ссылки на внешние параметры (&lsquo;<samp>$0</samp>&rsquo;, &lsquo;<samp>$1</samp>&rsquo; ... &lsquo;<samp>$9</samp>&rsquo;) или макроопределения (&lsquo;<samp>$a</samp>&rsquo;, &lsquo;<samp>$b</samp>&rsquo; ... &lsquo;<samp>$z</samp>&rsquo;), то текущие значения параметров/макроопределений подставляются в строку вместо ссылки до выполнением команды. Это позволяет использовать один и тот же скрипт при различных входных параметрах командной строки или вводить макроопределения по ходу исполнения команд скрипта.
+</p>
+<p>Аргументы команды могут быть строками, переменными или числами. 
+</p><ul>
+<li> 
+Строка &ndash; произвольный набор символов между метками &lsquo;<samp>'</samp>&rsquo;.
+
+</li><li> 
+Обычно переменная имеет имя, состоящее из букв и чисел (должно начинаться с буквы и не быть длиннее 64 символов). В качестве переменной можно использовать временные массивы, включающие в себя:
+<ul>
+<li> 
+срезы (&ldquo;подмассивы&rdquo;) массивов данных (подобно команде <a href="#subdata">subdata</a>). Например, <code>a(1)</code> или <code>a(1,:)</code> или <code>a(1,:,:)</code> &ndash; вторая строка массива <var>a</var>, <code>a(:,2)</code> или <code>a(:,2,:)</code> &ndash; третий столбец, <code>a(:,:,0)</code> &ndash; первый срез и т.д. Также можно выделить часть массива с m-го по n-ый элемент <code>a(m:n,:,:)</code> или просто <code>a(m:n)</code>.
+
+</li><li> 
+произвольные комбинации столбцов данных (например, <code>a('n*w^2/exp(t)')</code>), если столбцы данных были именованы командой <a href="#idset">idset</a> или в файле данных (в строке начинающейся с <code>##</code>).
+
+</li><li> 
+произвольное выражение из существующих переменных и констант. Например, &lsquo;<samp>sqrt(dat(:,5)+1)</samp>&rsquo; даст временный массив данных с элементами равными <code>tmp[i,j] = sqrt(dat[i,5,j]+1)</code>.
+
+</li><li> 
+массивы с элементами заданными в квадратных скобках [], разделенные &lsquo;<samp>,</samp>&rsquo;. При этом внутри выражения не должно быть пробелов! Например, &lsquo;<samp>[1,2,3]</samp>&rsquo; даст временный массив из 3 элементов {1, 2, 3}; &lsquo;<samp>[[11,12],[21,22]]</samp>&rsquo; даст матрицу 2*2 и т.д. Элементами такой конструкции могут быть и массивы если их размерности одинаковые, например &lsquo;<samp>[v1,v2,...,vn]</samp>&rsquo;.
+
+</li><li> 
+результат команд построения новых данных (see section <a href="#Make-another-data">Создание новых данных</a>), если они заключены в фигурные скобки {}. Например, &lsquo;<samp>{sum dat 'x'}</samp>&rsquo; даст временный массив, который есть результат суммирования <var>dat</var> вдоль &rsquo;x&rsquo;. Это такой же массив как и <var>tmp</var>, полученный командой &lsquo;<samp>sum tmp dat 'x'</samp>&rsquo;. При этом можно использовать вложенные конструкции, например &lsquo;<samp>{sum {max dat 'z'} 'x'}</samp>&rsquo;.
+</li></ul>
+<p>Временные массивы не могут стоять в качестве первого аргумента команд, создающих массивы (например, &lsquo;<samp>new</samp>&rsquo;, &lsquo;<samp>read</samp>&rsquo;, &lsquo;<samp>hist</samp>&rsquo; и т.д.).
+</p>
+</li><li> 
+К скалярным переменным, кроме собственно чисел, относятся: специальные переменные <code>nan=#QNAN, pi=3.1415926..., on=1, off=0, :=-1</code>, переменные с суффиксами (see section <a href="#Suffixes">Суффиксы переменных</a>), переменные определенные командой <a href="#define">define</a>. Также массивы размером 1x1x1 считаются скалярами (например, &lsquo;<samp>pi/dat.nx</samp>&rsquo;).
+</li></ul>
+<p>Перед первым использованием все переменные должны быть определены с помощью команд, создающих массивы (<a href="#new">new</a>, <a href="#var">var</a>, <a href="#list">list</a>, <a href="#copy">copy</a>, <a href="#read">read</a>, <a href="#hist">hist</a>, <a href="#sum">sum</a> и др., see section <a href="#Data-create">Создание данных</a> и <a href="#Make-another-data">Создание новых данных</a>). 
+</p>
+<p>Команды могут иметь несколько наборов аргументов (например, <code>plot ydat</code> и <code>plot xdat ydat</code>). Все аргументы команды для выбранного набора должны быть указаны, однако часть из них могут иметь значения по умолчанию. Такие аргументы в описании команд будут помещены в квадратные скобки [], например <code>plot ydat ['stl'='' zval=nan]</code>. При этом запись <code>[arg1 arg2 arg3 ...]</code> подразумевает <code>[arg1 [arg2 [arg3 ...]]]</code>, т.е. опускать можно только аргументы с конца, если вы согласны с их значениями по умолчанию. Например, <code>plot ydat '' 1</code> или <code>plot ydat ''</code> правильно, а <code>plot ydat 1</code> не правильно (аргумент <code>'stl'</code> пропущен).
+</p>
+<p>Все команды MGL можно разделить на несколько групп. В дальнейшем будет использованы следующие обозначения при описании команд: имя команды выделено жирным, строки заключены в одинарные кавычки &rdquo;, переменные выделены курсивом, числа (скаляры) выделены моноширинным шрифтом. Необязательные аргументы будут помещены в квадратные скобки [] и показаны их значения по умолчанию. Подробную информацию о цвете и стиле линий (see section <a href="#Line-styles">Стиль линий</a>), цветовых схемах (see section <a href="#Color-scheme">Цветовая схема</a>), стиле текста и символах TeX (see section <a href="#Font-styles">Стиль текста</a>), текстовых формулах (see section <a href="#Textual-formulas">Текстовые формулы</a>) можно найти в соответствующих разделах.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#General-concepts">1.1 Основные принципы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Graphics-setup">1.2 Настройка графика</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-settings">1.3 Параметры осей координат</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transformation-matrix">1.4 Матрица преобразования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Export-to-file">1.5 Экспорт в файл</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Primitives-drawing">1.6 Рисование примитивов</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing">1.7 Вывод текста</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-Colorbar">1.8 Оси и Colorbar</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Legend">1.9 Легенда</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting">1.10 1D графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting">1.11 2D графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting">1.12 3D графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting">1.13 Парные графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-fields">1.14 Векторные поля</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-plotting">1.15 Прочие графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting">1.16 Nonlinear fitting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-create">1.17 Создание данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-filling">1.18 Заполнение данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Rearrange-data">1.19 Изменение размеров данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#File-I_002fO">1.20 Чтение/сохранение данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Make-another-data">1.21 Создание новых данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Change-data">1.22 Изменение данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Operators">1.23 Операторы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Program-flow">1.24 Программирование</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Command-options">1.25 Опции команд</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Suffixes">1.26 Суффиксы переменных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Utilities">1.27 Утилиты для MGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="General-concepts"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Coordinate-axes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_043d_043e_0432_043d_044be-_043f_0440_0438_043dc_0438_043f_044b"></a>
+<h2 class="section">1.1 Основные принципы</h2>
+
+<p>Возможности библиотеки MathGL довольно богаты &ndash; число только основных типов графиков превышает 50 видов. Кроме того, есть функции для обработки данных, настройки вида графика и пр. и пр. Тем не менее, я старался придерживаться единого стиля в порядке аргументов функций и способе их &ldquo;настройки&rdquo;. В основном все ниже сказанное относится к функциям рисования различных графиков.
+</p>
+<p>Всего основных концепций (базисных идей) четыре:
+</p><ol>
+<li>
+<strong>Все настройки графиков (стиль линий, цветовые схемы поверхностей, стиль и цвет текста) задаются строками.</strong> Это обеспечивает: удобство для пользователя &ndash; короткую строку легче читать и здесь тяжелее ошибиться, чем в большом списке параметров; переносимость &ndash; строки выглядят одинаково на всех платформах и не надо заботиться о типе и числе аргументов.
+</li><li>
+<strong>Все функции имеют &ldquo;упрощенный&rdquo; и &ldquo;продвинутый&rdquo; варианты.</strong> Сделано опять из-за удобства. В &ldquo;упрощенном&rdquo; варианте для построения графика нужны только один-два массив(а) данных, которые автоматически равнораспределяются в заданном диапазоне осей координат. В &ldquo;продвинутой&rdquo; версии можно не только указать явно диапазон построения графика, но и задать его параметрически. Последнее позволяет легко строить довольно сложные кривые и поверхности. В обоих вариантах функций порядок аргументов стандартен: сначала идут массивы данных, потом необязательный строковый параметр стиля графика, а далее &ndash; второстепенные необязательные параметры для более точной настройки графика.
+</li><li>
+<strong>Все элементы рисунков векторные.</strong> Изначально библиотека MathGL была ориентированна на работу с научными данными, которые по своей природе векторные (линии, грани, матрицы и т.д.). Поэтому векторность используется во всех рисунках! Причем иногда даже в ущерб производительности (например, при выводе шрифтов). Помимо всего прочего, векторность позволяет легко масштабировать рисунок &ndash; измените размер картинки в 2 раза, и рисунок пропорционально растянется.
+</li><li>
+<strong>Новые графики не удаляют уже нарисованное.</strong> Этот, в чем-то неожиданный, подход позволяет создавать огромное количество &ldquo;комбинированных&rdquo; графиков. Например, поверхность с наложенными линиями уровня строится двумя последовательными вызовами функций рисования поверхности и линий уровня (в любом порядке). И совершенно не надо писать специальную функцию (как в Matlab и некоторых других программах) для рисования этого графика. Примеров таких графиков можно привести множество (см. раздел <a href="mgl_ru_2.html#Hints">Hints</a> и сайт программы <a href="http://mathgl.sf.net/index.html">http://mathgl.sf.net/index.html</a>).
+</li></ol>
+
+<p>Кроме основных концепций я хотел бы остановиться на нескольких, как оказалось, нетривиальных моментах &ndash; способе указания положения графика, осей координат и строковых параметров линий, поверхностей, текста.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Coordinate-axes">1.1.1 Оси координат</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Line-styles">1.1.2 Стиль линий</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Color-scheme">1.1.3 Цветовая схема</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-styles">1.1.4 Стиль текста</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Textual-formulas">1.1.5 Текстовые формулы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+
+
+
+<hr size="6">
+<a name="Coordinate-axes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#General-concepts" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Line-styles" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_0438-_043a_043e_043e_0440_0434_0438_043d_0430_0442"></a>
+<h3 class="subsection">1.1.1 Оси координат</h3>
+
+<p>Представление системы координат в MathGL состоит из двух частей. Вначале координаты нормируются в интервал <var>Min</var>x<var>Max</var> (see section <a href="#Axis-settings">Параметры осей координат</a>). Если флаг <var>Cut</var> установлен, то точки вне интервала отбрасываются, в противном случае, они проецируются на ограничивающий параллелепипед (see section <a href="#Cutting">Обрезание</a>). Кроме того, отбрасываются точки внутри границ, определенных переменными <var>CutMin</var>x<var>CutMax</var> и точки, для которых значение функции <code>CutOff</code>() не равно нулю. После этого формулы перехода в криволинейную систему координат <code>SetFunc()</code>применяются к каждой точке. Наконец, точка данных отображается с помощью одной из графических функций.
+</p>
+<p>Величины <var>Max</var>, <var>Min</var> можно изменять вручную. Однако, после этого необходимо вызвать функцию <code>RecalcBorder()</code> для настройки графика. Более удобный и безопасный путь состоит в вызове функций <code>Axis(), SetRanges()</code> и др. В последнем случае функция <code>RecalcBorder()</code> вызывается автоматически. Размеры осей можно задавать и автоматически по минимальному и максимальному значениям массива данных. Для этого предназначены функции <code>XRange(), YRange(), ZRange()</code>. Второй не обязательный аргумент указывает, заменять ли новые значения диапазона изменения оси координат (по умолчанию) или только расширить уже существующий диапазон.
+</p>
+<p>Точка пересечения осей координат задается переменной <var>Org</var> и действует на последующие вызовы функций рисования осей координат и сетки. По умолчанию, если точка пересечения осей координат попадает вне диапазона осей координат, то она проецируется на границу области. Изменить такое поведение можно, задав <var>AutoOrg</var>=<code>false</code>. В случае, если одно из значений <var>Org</var> равно NAN, то соответствующее значение будет выбрано автоматически.
+</p>
+<p>Кроме привычных осей <em>x, y, z</em> есть еще одна ось &ndash; цветовая шкала &ndash; ось <em>c</em>. Она используется при окрашивании поверхностей и задает границы изменения функции при окрашивании. При вызове <code>Axis()</code> ее границы автоматически устанавливаются равными Min.z и Max.z. Возможно и ручное изменение границ цветового интервала посредством вызова функции <code>CAxis()</code> или изменение границ по заданному массиву <code>CRange()</code>. Используйте <code>Colorbar()</code> для отображения цветовой шкалы.
+</p>
+<p>Вид меток по осям определяется функцией <code>SetTicks()</code> (see section <a href="#Axis-settings">Параметры осей координат</a>). Она имеет 3 аргумента: первый <var>d</var> задает шаг меток (если положительны) или их число (если отрицательны) или логарифмические метки (если равны нулю); второ <var>ns</var> задает число &quot;подметок&quot;; последний определяет начальную точку для меток (по умолчанию это точка пересечения осей). Функция <var>SetTuneTicks</var> включает/выключает выделение общего множителя (большого или малого факторов в диапазоне) для меток осей координат. Наконец, если стандартный вид меток не устраивает пользователя, то их шаблон можно задать явно (можно использовать и ТеХ символы), воспользовавшись функциями  <code>SetXTT(), SetYTT(). SetZTT(). SetCTT()</code>. Кроме того, в качестве меток можно вывести произвольный текст использовав функцию <code>SetTicksVal()</code>.
+</p>
+<hr size="6">
+<a name="Line-styles"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Coordinate-axes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Color-scheme" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_0442_0438_043bx-_043b_0438_043d_0438_0439"></a>
+<h3 class="subsection">1.1.2 Стиль линий</h3>
+
+<a name="index-_0421_0442_0438_043bx-_043b_0438_043d_0438_0439"></a>
+<a name="index-_0421_0442_0438_043bx-_043c_0430_0440_043ae_0440_043e_0432"></a>
+<a name="index-_0421_0442_0438_043bx-_0441_0442_0440e_043b_043e_043a"></a>
+
+<p>Стиль линии задается строкой, которая может содержать символ цвета (&lsquo;<samp>wkrgbcymhRGBCYMHWlenupqLENUPQ</samp>&rsquo;), тип пунктира (&lsquo;<samp>-|;:ji</samp>&rsquo; или пробел), ширину линии (&lsquo;<samp>0123456789</samp>&rsquo;) и тип маркера (&lsquo;<samp>o+xsd.^v</samp>&rsquo; и модификатор &lsquo;<samp>#</samp>&rsquo;). Если пропущен цвет или тип пунктира, то используется значение по умолчанию с последним указанным цветом или значение из палитры (для see section <a href="#g_t1D-plotting">1D графики</a>). 
+По умолчанию палитры содержит следующие цвета: <span style="color: rgb(76, 76, 76);">темно серый</span> &lsquo;<samp>H</samp>&rsquo;, <span style="color: rgb(0, 0, 255);">синий</span> &lsquo;<samp>b</samp>&rsquo;, <span style="color: rgb(0, 255, 0);">зеленый</span> &lsquo;<samp>g</samp>&rsquo;, <span style="color: rgb(255, 0, 0);">красный</span> &lsquo;<samp>r</samp>&rsquo;, <span style="color: rgb(0, 255, 255);">голубой</span> &lsquo;<samp>c</samp>&rsquo;, <span style="color: rgb(255, 0, 255);">пурпурный</span> &lsquo;<samp>m</samp>&rsquo;, <span style="color: rgb(255, 255, 0);">yellow</span> &lsquo;<samp>y</samp>&rsquo;, <span style="color: rgb(127, 127, 127);">серый</span> &lsquo;<samp>h</samp>&rsquo;, <span style="color: rgb(0, 255, 127);">сине-зеленый</span> &lsquo;<samp>l</samp>&rsquo;, <span style="color: rgb(0, 127, 255);">небесно-синий</span> &lsquo;<samp>n</samp>&rsquo;, <span style="color: rgb(255, 127, 0);">оранжевый</span> &lsquo;<samp>q</samp>&rsquo;, <span style="color: rgb(127, 255, 0);">желто-зеленый</span> &lsquo;<samp>e</samp>&rsquo;, <span style="color: rgb(127, 0, 255);">сине-фиолетовый</span> &lsquo;<samp>u</samp>&rsquo;, <span style="color: rgb(255, 0, 127);">фиолетовый</span> &lsquo;<samp>p</samp>&rsquo;.
+
+<p>Символы цвета: &lsquo;<samp>k</samp>&rsquo; -- черный, &lsquo;<samp>r</samp>&rsquo; -- <span style="color: rgb(255, 0, 0);">красный</span>, &lsquo;<samp>R</samp>&rsquo; -- <span style="color: rgb(127, 0, 0);">темно красный</span>, &lsquo;<samp>g</samp>&rsquo; -- <span style="color: rgb(0, 255, 0);">зеленый</span>, &lsquo;<samp>G</samp>&rsquo; -- <span style="color: rgb(0, 127, 0);">темно зеленый</span>, &lsquo;<samp>b</samp>&rsquo; -- <span style="color: rgb(0, 0, 255);">синий</span>, &lsquo;<samp>B</samp>&rsquo; -- <span style="color: rgb(0, 0, 127);">темно синий</span>, &lsquo;<samp>c</samp>&rsquo; -- <span style="color: rgb(0, 255, 255);">голубой</span>, &lsquo;<samp>C</samp>&rsquo; -- <span style="color: rgb(0, 127, 127);">темно голубой</span>, &lsquo;<samp>m</samp>&rsquo; -- <span style="color: rgb(255, 0, 255);">пурпурный</span>, &lsquo;<samp>M</samp>&rsquo; -- <span style="color: rgb(127, 0, 127);">темно пурпурный</span>, &lsquo;<samp>y</samp>&rsquo; -- <span style="color: rgb(255, 255, 0);">желтый</span>, &lsquo;<samp>Y</samp>&rsquo; -- <span style="color: rgb(127, 127, 0);">темно желтый (золотой)</span>, &lsquo;<samp>h</samp>&rsquo; -- <span style="color: rgb(127, 127, 127);">серый</span>, &lsquo;<samp>H</samp>&rsquo; -- <span style="color: rgb(76, 76, 76);">темно серый</span>, &lsquo;<samp>w</samp>&rsquo; -- белый, &lsquo;<samp>W</samp>&rsquo; -- <span style="color: rgb(178, 178, 178);">светло серый</span>, &lsquo;<samp>l</samp>&rsquo; -- <span style="color: rgb(0, 255, 127);">сине-зеленый</span>, &lsquo;<samp>L</samp>&rsquo; -- <span style="color: rgb(0, 127, 63);">темно сине-зеленый</span>, &lsquo;<samp>e</samp>&rsquo; -- <span style="color: rgb(127, 255, 0);">желто-зеленый</span>, &lsquo;<samp>E</samp>&rsquo; -- <span style="color: rgb(63, 127, 0);">темно желто-зеленый</span>, &lsquo;<samp>n</samp>&rsquo; -- <span style="color: rgb(0, 127, 255);">небесно-синий</span>, &lsquo;<samp>N</samp>&rsquo; -- <span style="color: rgb(0, 63, 127);">темно небесно-синий</span>, &lsquo;<samp>u</samp>&rsquo; -- <span style="color: rgb(127, 0, 255);">сине-фиолетовый</span>, &lsquo;<samp>U</samp>&rsquo; -- <span style="color: rgb(63, 0, 127);">темно сине-фиолетовый</span>, &lsquo;<samp>p</samp>&rsquo; -- <span style="color: rgb(255, 0, 127);">фиолетовый</span>, &lsquo;<samp>P</samp>&rsquo; -- <span style="color: rgb(127, 0, 63);">темно фиолетовый</span>, &lsquo;<samp>q</samp>&rsquo; -- <span style="color: rgb(255, 127, 0);">оранжевый</span>, &lsquo;<samp>Q</samp>&rsquo; -- <span style="color: rgb(127, 63, 0);">темно оранжевый (коричневый)</span>.</p>
+
+Тип пунктира: пробел -- нет линии (для рисования только маркеров), &lsquo;<samp>-</samp>&rsquo; -- сплошная линия (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;), &lsquo;<samp>|</samp>&rsquo; -- длинный пунктир (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>;</samp>&rsquo; -- пунктир (&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>=</samp>&rsquo; -- короткий пунктир (&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;), &lsquo;<samp>:</samp>&rsquo; -- точки (&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;), &lsquo;<samp>j</samp>&rsquo; -- пунктир с точками  (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>i</samp>&rsquo; -- мелкий пунктир с точками (&#9632;&#9632;&#9632;&#9633;&#9633;&#9632;&#9633;&#9633;&#9632;&#9632;&#9632;&#9633;&#9633;&#9632;&#9633;&#9633;).</p>
+<p>Типы маркеров: &lsquo;<samp>o</samp>&rsquo; &ndash; окружность, &lsquo;<samp>+</samp>&rsquo; &ndash; крест, &lsquo;<samp>x</samp>&rsquo; &ndash; косой крест, &lsquo;<samp>s</samp>&rsquo; - квадрат, &lsquo;<samp>d</samp>&rsquo; - ромб, &lsquo;<samp>.</samp>&rsquo; &ndash; точка, &lsquo;<samp>^</samp>&rsquo; &ndash; треугольник вверх, &lsquo;<samp>v</samp>&rsquo; &ndash; треугольник вниз, &lsquo;<samp>&lt;</samp>&rsquo; &ndash; треугольник влево, &lsquo;<samp>&gt;</samp>&rsquo; &ndash; треугольник вправо, &lsquo;<samp>#*</samp>&rsquo; &ndash; знак Y, &lsquo;<samp>#+</samp>&rsquo; &ndash; крест в квадрате, &lsquo;<samp>#x</samp>&rsquo; &ndash; косой крест в квадрате, &lsquo;<samp>#.</samp>&rsquo; &ndash; точка в окружности. Если в строке присутствует символ &lsquo;<samp>#</samp>&rsquo;, то используются символы с заполнением.
+</p>
+<div class="float">
+<img src="../png/sample5.png" alt="../png/sample5">
+
+</div><p><strong>Стили линий и маркеров.
+</strong>
+</p>
+<p>На конце и в начале линии можно выводить специальный символ (стрелку), если в строке указать один из символов: &lsquo;<samp>A</samp>&rsquo; &ndash; стрелка наружу, &lsquo;<samp>V</samp>&rsquo; &ndash; стрелка внутрь, &lsquo;<samp>I</samp>&rsquo; &ndash; поперечная черта, &lsquo;<samp>K</samp>&rsquo; &ndash; стрелка с чертой, &lsquo;<samp>T</samp>&rsquo; &ndash; треугольник, &lsquo;<samp>S</samp>&rsquo; &ndash; квадрат, &lsquo;<samp>D</samp>&rsquo; &ndash; ромб, &lsquo;<samp>O</samp>&rsquo; &ndash; круг, &lsquo;<samp>_</samp>&rsquo; &ndash; нет стрелки (по умолчанию). При этом действует следующее правило: первый символ определяет стрелку на конце линии, второй символ &ndash; стрелку в начале линии. Например, &lsquo;<samp>r-A</samp>&rsquo; &ndash; красная сплошная линия со стрелкой на конце, &lsquo;<samp>b|AI</samp>&rsquo; &ndash; синий пунктир со стрелкой на конце и чертой вначале, &lsquo;<samp>_O</samp>&rsquo; &ndash; линия с текущим стилем и кружком вначале. Эти стили действуют и при построении графиков (например, <a href="#g_t1D-plotting">1D графики</a>).
+</p>
+<div class="float">
+<img src="../png/sampled.png" alt="../png/sampled">
+
+</div><p><strong>Стили стрелок.
+</strong>
+</p>
+<hr size="6">
+<a name="Color-scheme"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Line-styles" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-styles" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="C_0432e_0442_043e_0432_0430ya-_0441_0445e_043c_0430"></a>
+<h3 class="subsection">1.1.3 Цветовая схема</h3>
+
+<a name="index-C_0432e_0442_043e_0432_0430ya-_0441_0445e_043c_0430"></a>
+
+<p>Цветовая схема используется для определения цвета поверхностей, линий уровня и пр. Цветовая схема задается строкой <em>s</em>, которая содержит символы цвета (see section <a href="#Line-styles">Стиль линий</a>) или символы &lsquo;<samp>d#:|</samp>&rsquo;. Символ &lsquo;<samp>d</samp>&rsquo; указывает на определение цвета в зависимости от положения точки в пространстве, а не по амплитуде данных. Символ &lsquo;<samp>#</samp>&rsquo; переключает рисование поверхности на сетчатое (для трехмерных поверхностей) или включает рисование сетки на поверхности. Символ &lsquo;<samp>|</samp>&rsquo; отключает интерполяцию цвета в цветовой схеме. Это может быть полезно для &ldquo;резких&rdquo; цветов, например, при рисовании матриц. Если в строке встречается символ &lsquo;<samp>:</samp>&rsquo;, то он принудительно заканчивает разбор строки для стиля поверхности. После этого символа могут идти описание стиля текста или оси вращения кривой/линий уровня. Цветовая схема может содержать до 32 значений цвета.
+</p>
+<p>В цветовой схеме можно использовать тональные (&ldquo;подсвеченные&rdquo;) цвета (<em>не в стиле линий!</em>). Тональный цвет задается двумя символами: первый &ndash; обычный цвет, второй &ndash; его яркость цифрой. Цифра может быть в диапазоне &lsquo;<samp>1</samp>&rsquo;...&lsquo;<samp>9</samp>&rsquo;. При этом &lsquo;<samp>5</samp>&rsquo; соответствует нормальному цвету, &lsquo;<samp>1</samp>&rsquo; &ndash; очень темная версия цвета (почти черный), &lsquo;<samp>9</samp>&rsquo; &ndash; очень светлая версия цвета (почти белый). Например цветовая схема может быть &lsquo;<samp>b2b7wr7r2</samp>&rsquo;.
+</p>
+<div class="float">
+<img src="../png/colors.png" alt="../png/colors">
+
+</div><p><strong>Цвета и их идентификаторы.
+</strong>
+</p>
+<p>При определении цвета по <em>амплитуде</em> (наиболее часто используется) окончательный цвет определяется путем линейной интерполяции массива цветов. Массив цветов формируется из цветов, указанных в строке спецификации. Аргумент &ndash; амплитуда, нормированная между <var>Cmin</var> &ndash; <var>Cmax</var> (see section <a href="#Axis-settings">Параметры осей координат</a>). Например, строка из 4 символов &lsquo;<samp>bcyr</samp>&rsquo; соответствует изменению цвета от синего (минимальное значение) через голубой и желтый (промежуточные значения) к красному (максимальное значение). Строка &lsquo;<samp>kw</samp>&rsquo; соответствует изменению цвета от черного (минимальное значение) к белому (максимальное значение). Строка из одного символа (например, &lsquo;<samp>g</samp>&rsquo;) соответствует однотонному цвету (в данному случае зеленому).
+</p>
+<p>Есть несколько полезных цветовых схем. Строка &lsquo;<samp>kw</samp>&rsquo; дает обычную серую (черно-белую) схему, когда большие значения светлее. Строка &lsquo;<samp>wk</samp>&rsquo; представляет обратную серую схему, когда большие значения темнее. Строки &lsquo;<samp>kRryw</samp>&rsquo;, &lsquo;<samp>kGgw</samp>&rsquo;, &lsquo;<samp>kBbcw</samp>&rsquo; представляют собой хорошо известные схемы <em>hot</em>, <em>summer</em> и <em>winter</em>. Строки &lsquo;<samp>BbwrR</samp>&rsquo; и &lsquo;<samp>bBkRr</samp>&rsquo; позволяют рисовать двухцветные фигуры на белом или черном фоне, когда отрицательные значения показаны синим цветом, а положительные &ndash; красным. Строка &lsquo;<samp>BbcyrR</samp>&rsquo; дает цветовую схему, близкую к хорошо известной схеме <em>jet</em>.
+</p>
+
+<div class="float">
+<img src="../png/color_schemes.png" alt="../png/color_schemes">
+
+</div><p><strong>Наиболее популярные цветовые схемы.
+</strong>
+</p>
+<p>При определении цвета по <em>положению точки в пространстве</em> окончательный цвет определяется по формуле c=x*c[1] + y*c[2] + z*c[3]. Здесь c[1], c[2], c[3] &ndash; первые три цвета в цветовом массиве; x, y, z &ndash; координаты точки, нормированные на <var>Min</var>x<var>Max</var>. Такой тип определения цвета полезен, например, при построении поверхностей уровня, когда цвет дает представление о положении точки в пространстве.
+</p>
+<hr size="6">
+<a name="Font-styles"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Color-scheme" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Textual-formulas" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_0442_0438_043bx-_0442e_043a_0441_0442_0430"></a>
+<h3 class="subsection">1.1.4 Стиль текста</h3>
+
+<a name="index-_0421_0442_0438_043bx-_0442e_043a_0441_0442_0430"></a>
+
+<p>Стиль текста задается строкой, которая может содержать несколько символов: тип шрифта (&lsquo;<samp>ribwou</samp>&rsquo;) и/или выравнивания (&lsquo;<samp>LRC</samp>&rsquo;), а также цвет текста &lsquo;<samp>wkrgbcymhRGBCYMHW</samp>&rsquo; (see section <a href="#Line-styles">Стиль линий</a>) после символа &lsquo;<samp>:</samp>&rsquo;. Например, &lsquo;<samp>biC:b</samp>&rsquo; соответствует жирному курсиву с выравниванием по центру синего цвета.
+</p>
+<p>Начертания шрифта: &lsquo;<samp>r</samp>&rsquo; &ndash; прямой шрифт, &lsquo;<samp>i</samp>&rsquo; &ndash; курсив, &lsquo;<samp>b</samp>&rsquo; &ndash; жирный. По умолчанию используется прямой шрифт. Типы выравнивания текста: &lsquo;<samp>L</samp>&rsquo; &ndash; по левому краю (по умолчанию), &lsquo;<samp>C</samp>&rsquo; &ndash; по центру, &lsquo;<samp>R</samp>&rsquo; &ndash; по правому краю. Дополнительные эффекты шрифта: &lsquo;<samp>w</samp>&rsquo; &ndash; контурный, &lsquo;<samp>o</samp>&rsquo; &ndash; надчеркнутый, &lsquo;<samp>u</samp>&rsquo; &ndash; подчеркнутый. 
+</p>
+<p>Синтаксический разбор LaTeX-их команд по умолчанию включен. Это команды смены стиля текста (например, \b для жирного текста): \a или \overline &ndash; надчеркивание, \b или \textbf &ndash; жирный, \i или \textit &ndash; курсив, \r или \textrm &ndash; прямой (отменяет стили жирного и курсива), \u или \underline &ndash; подчеркнутый, \w или \wire &ndash; контурный, \big &ndash; большего размера, @ &ndash; меньшего размера. Нижний и верхний индексы задаются символами &lsquo;<samp>_</samp>&rsquo; и &lsquo;<samp>^</samp>&rsquo;. При этом изменение стиля применяется только к следующему символу или к символам в фигурных скобках {}, которые понимаются как единый блок. Например, сравните строки &lsquo;<samp>sin (x^{2^3})</samp>&rsquo; и &lsquo;<samp>sin (x^2^3)</samp>&rsquo;. Можно также менять цвет текста внутри строки с помощью команд #? или \color?, где &lsquo;<samp>?</samp>&rsquo; &ndash; символ цвета (see section <a href="#Line-styles">Стиль линий</a>). Например, слова &lsquo;<samp>Blue</samp>&rsquo; и &lsquo;<samp>red</samp>&rsquo; будут окрашены в соответствующий цвет в строке &lsquo;<samp>#b{Blue} and \colorr{red} text</samp>&rsquo;. Большинство функций понимает символ новой строки &lsquo;<samp>\n</samp>&rsquo; и позволяет выводить много строчный текст. Наконец, можно использовать символы с произвольным UTF кодом с помощью команды <code>\utf0x????</code>. Например, <code>\utf0x3b1</code> даст символ 
+&alpha;.</p>
+<p>Распознаются также большинство символов TeX и AMSTeX, команды смены стиля текста (\textrm, \textbf, \textit, \textsc, \overline, \underline), акценты (\hat, \tilde, \dot, \ddot, \acute, \check, \grave, \bar, \breve) и корни (\sqrt, \sqrt3, \sqrt4). Полный список содержит около 2000 символов. Отмечу, что первый пробел (пробел, табуляция и пр.) после команды игнорируется, а все остальные пробелы печатаются обычным образом. Например, следующие строки дают одинаковый результат <em>\tilde a</em>: &lsquo;<samp>\tilde{a}</samp>&rsquo;; &lsquo;<samp>\tilde a</samp>&rsquo;; &lsquo;<samp>\tilde{}a</samp>&rsquo;.
+</p>
+В частности, распознаются греческие буквы: &alpha; &ndash; \alpha, &beta; &ndash; \beta, &gamma; &ndash; \gamma, &delta; &ndash; \delta, &epsilon; &ndash; \epsilon, &eta; &ndash; \eta, &iota; &ndash; \iota, &chi; &ndash; \chi, &kappa; &ndash; \kappa, &lambda; &ndash; \lambda, &mu; &ndash; \mu, &nu; &ndash; \nu, o &ndash; \o, &omega; &ndash; \omega, &#981; &ndash; \phi, &pi; &ndash; \pi, &psi; &ndash; \psi, &rho; &ndash; \rho, &sigma; &ndash; \sigma, &theta; &ndash; \theta, &tau; &ndash; \tau, &upsilon; &ndash; \upsilon, &xi; &ndash; \xi, &zeta; &ndash; \zeta, &sigmaf; &ndash; \varsigma, &#603; &ndash; \varepsilon, &thetasym; &ndash; \vartheta, &phi; &ndash; \varphi, &#1008; &ndash; \varkappa; A &ndash; \Alpha, B &ndash; \Beta, &Gamma; &ndash; \Gamma, &Delta; &ndash; \Delta, E &ndash; \Epsilon, H &ndash; \Eta, I &ndash; \Iota, C &ndash; \Chi, K &ndash; \Kappa, &Lambda; &ndash; \Lambda, M &ndash; \Mu, N &ndash; \Nu, O &ndash; \O, &Omega; &ndash; \Omega, &Phi; &ndash; \Phi, &Pi; &ndash; \Pi, &Psi; &ndash; \Psi, R &ndash; \Rho, &Sigma; &ndash; \Sigma, &Theta; &ndash; \Theta, T &ndash; \Tau, &Upsilon; &ndash; \Upsilon, &Xi; &ndash; \Xi, Z &ndash; \Zeta.
+
+<p>Еще примеры наиболее общеупотребительных TeX-их символов: &ang; &ndash; \angle, &sdot; &ndash; \cdot, &clubs; &ndash; \clubsuit, &#10003; &ndash; \checkmark, &cup; &ndash; \cup, &cap; &ndash; \cap, &#9826; &ndash; \diamondsuit, &#9671; &ndash; \diamond, &divide;
+ &ndash; \div, 
+&darr; &ndash; \downarrow, &dagger; &ndash; \dag, &Dagger; &ndash; \ddag, &equiv; &ndash; \equiv, &exist; &ndash; \exists, &#8994; &ndash; \frown, &#9837; &ndash; \flat, &ge; &ndash; \ge, &ge; &ndash; \geq, &#8807; &ndash; \geqq, &larr; &ndash; \gets, &#9825; &ndash; \heartsuit, &infin; &ndash; \infty, &int; &ndash; \int, \Int, &image;  &ndash; \Im, &#9826; &ndash; \lozenge, &#10216; &ndash; \langle, &le; &ndash; \le, &le; &ndash; \leq, &#8806; &ndash; \leqq, &larr; &ndash; \leftarrow, &#8723; &ndash; \mp, &nabla; &ndash; \nabla, &ne; &ndash; \ne, &ne; &ndash; \neq, &#9838; &ndash; \natural, &#8750; &ndash; \oint, &#8857; &ndash; \odot, &oplus; &ndash; \oplus, &part; &ndash; \partial, &#8741; &ndash; \parallel, &perp; &ndash;\perp, &plusmn; &ndash; \pm, &prop; &ndash; \propto, &prod; &ndash; \prod, &real; &ndash; \Re, &rarr; &ndash; \rightarrow, &#10217; &ndash; \rangle, &spades; &ndash; \spadesuit, ~ &ndash; \sim, &#8995; &ndash; \smile, &sub;  &ndash; \subset, &sup; &ndash; \supset, &radic; &ndash; \sqrt or \surd, &sect; &ndash; \S, &#9839; &ndash; \sharp, &sum; &ndash; \sum, &times; &ndash; \times, &rarr; &ndash; \to, &there4; &ndash; \therefore, &uarr; &ndash; \uparrow, &weierp; &ndash; \wp. </p>
+<p>Размер текста может быть задан явно (если <var>size</var>&gt;0) или относительно базового размера шрифта для рисунка |<var>size</var>|*<var>FontSize</var> при <var>size</var>&lt;0. Значение <var>size</var>=0 указывает, что соответствующая строка выводиться не будет. Базовый размер шрифта измеряется во внутренних единицах. Специальные функции <code>SetFontSizePT(), SetFontSizeCM(), SetFontSizeIN()</code> позволяют задавать его в более &ldquo;привычных&rdquo; единицах.
+</p>
+<hr size="6">
+<a name="Textual-formulas"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-styles" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0422e_043a_0441_0442_043e_0432_044be-_0444_043e_0440_043c_0443_043b_044b"></a>
+<h3 class="subsection">1.1.5 Текстовые формулы</h3>
+
+<a name="index-_0422e_043a_0441_0442_043e_0432_044be-_0444_043e_0440_043c_0443_043b_044b"></a>
+
+<p>MathGL имеет быстрый парсер текстовых формул
+, понимающий большое число функций и операций. Базовые операции: &lsquo;<samp>+</samp>&rsquo; &ndash; сложение, &lsquo;<samp>-</samp>&rsquo; &ndash; вычитание, &lsquo;<samp>*</samp>&rsquo; &ndash; умножение, &lsquo;<samp>/</samp>&rsquo; &ndash; деление, &lsquo;<samp>^</samp>&rsquo; &ndash; возведение в целосичленную степень. Также есть логические операции: &lsquo;<samp>&lt;</samp>&rsquo; &ndash; истина если if x&lt;y, &lsquo;<samp>&gt;</samp>&rsquo; &ndash; истина если x&gt;y, &lsquo;<samp>=</samp>&rsquo; &ndash; истина если x=y, &lsquo;<samp>&amp;</samp>&rsquo; &ndash; истина если x и y оба не равны нулю, &lsquo;<samp>|</samp>&rsquo; &ndash; истина если x или y не нуль. Логические операции имеют наинизший приоритет и возвращают 1 если истина или 0 если ложно.
+</p>
+<p>Базовые функции: &lsquo;<samp>sqrt(x)</samp>&rsquo; &ndash; квадратный корень из <var>x</var>, &lsquo;<samp>pow(x,y)</samp>&rsquo; &ndash; <var>x</var> в степени <var>y</var>, &lsquo;<samp>ln(x)</samp>&rsquo; &ndash; натуральный логарифм <var>x</var>, &lsquo;<samp>lg(x)</samp>&rsquo; &ndash; десятичный логарифм <var>x</var>, &lsquo;<samp>log(a,x)</samp>&rsquo; &ndash; логарифм по основанию <var>a</var> от <var>x</var>, &lsquo;<samp>abs(x)</samp>&rsquo; &ndash; модуль <var>x</var>, &lsquo;<samp>sign(x)</samp>&rsquo; &ndash; знак <var>x</var>, &lsquo;<samp>mod(x,y)</samp>&rsquo; &ndash; остаток от деления x на y, &lsquo;<samp>step(x)</samp>&rsquo; &ndash; ступенчатая функция, &lsquo;<samp>int(x)</samp>&rsquo; &ndash; целая часть <var>x</var>, &lsquo;<samp>rnd</samp>&rsquo; &ndash; случайное число, &lsquo;<samp>pi</samp>&rsquo; &ndash; число 
+&pi; = 3.1415926&hellip;</p>
+<p>Тригонометрические функции: &lsquo;<samp>sin(x)</samp>&rsquo;, &lsquo;<samp>cos(x)</samp>&rsquo;, &lsquo;<samp>tan(x)</samp>&rsquo; (или &lsquo;<samp>tg(x)</samp>&rsquo;). Обратные тригонометрические функции: &lsquo;<samp>asin(x)</samp>&rsquo;, &lsquo;<samp>acos(x)</samp>&rsquo;, &lsquo;<samp>atan(x)</samp>&rsquo;. Гиперболические функции: &lsquo;<samp>sinh(x)</samp>&rsquo; (или &lsquo;<samp>sh(x)</samp>&rsquo;), &lsquo;<samp>cosh(x)</samp>&rsquo; (или &lsquo;<samp>ch(x)</samp>&rsquo;), &lsquo;<samp>tanh(x)</samp>&rsquo; (или &lsquo;<samp>th(x)</samp>&rsquo;). Обратные гиперболические функции: &lsquo;<samp>asinh(x)</samp>&rsquo;, &lsquo;<samp>acosh(x)</samp>&rsquo;, &lsquo;<samp>atanh(x)</samp>&rsquo;.
+</p>
+<p>Специальные функции: &lsquo;<samp>gamma(x)</samp>&rsquo; &ndash; гамма функция &Gamma;(x) = &int;<sub>0</sub><sup>&infin;</sup> t<sup>x-1</sup> exp(-t) dt, &lsquo;<samp>psi(x)</samp>&rsquo; &ndash; дигамма функция &psi;(x) = &Gamma;&prime;(x)/&Gamma;(x) для x&ne;0, &lsquo;<samp>ai(x)</samp>&rsquo; &ndash; Эйри функция Ai(x), &lsquo;<samp>bi(x)</samp>&rsquo; &ndash; Эйри функция Bi(x), &lsquo;<samp>cl(x)</samp>&rsquo; &ndash; функция Клаузена, &lsquo;<samp>li2(x)</samp>&rsquo; (или &lsquo;<samp>dilog(x)</samp>&rsquo;) &ndash; дилогарифм Li<sub>2</sub>(x) = -&real;&int;<sub>0</sub><sup>x</sup>ds log(1-s)/s, &lsquo;<samp>sinc(x)</samp>&rsquo; &ndash; функция sinc(x) = sin(&pi;x)/(&pi;x) для любых x, &lsquo;<samp>zeta(x)</samp>&rsquo; &ndash; зета функция Римана &zeta;(s) = &sum;<sub>k=1</sub><sup>&infin;</sup>k<sup>-s</sup> для s&ne;1, &lsquo;<samp>eta(x)</samp>&rsquo; &ndash; эта функция &eta;(s) = (1 - 2<sup>1-s</sup>)&zeta;(s) для произвольного s, &lsquo;<samp>lp(l,x)</samp>&rsquo; &ndash; полином Лежандра P<sub>l</sub>(x), (|x|&le;1, l&ge;0), &lsquo;<samp>w0(x)</samp>&rsquo;, &lsquo;<samp>w1(x)</samp>&rsquo; &ndash; функции Ламберта W. Функции W(x) определены как решение уравнения: W exp(W) = x. </p>
+
+<p>Экспоненциальные интегралы: &lsquo;<samp>ci(x)</samp>&rsquo; &ndash; cos-интеграл Ci(x) = &int;<sub>0</sub><sup>x</sup>dt cos(t)/t, &lsquo;<samp>si(x)</samp>&rsquo; &ndash; sin-интеграл Si(x) = &int;<sub>0</sub><sup>x</sup>dt sin(t)/t, &lsquo;<samp>erf(x)</samp>&rsquo; &ndash; функция ошибки erf(x) = (2/&radic;&pi;) &int;<sub>0</sub><sup>x</sup>dt exp(-t<sup>2</sup>) , &lsquo;<samp>ei(x)</samp>&rsquo; &ndash; интеграл Ei(x) = -PV(&int;<sub>-x</sub><sup>&infin;</sup>dt exp(-t)/t) (где PV обозначает главное значение), &lsquo;<samp>e1(x)</samp>&rsquo; &ndash; интеграл E<sub>1</sub>(x) = &real;&int;<sub>1</sub><sup>&infin;</sup>dt exp(-xt)/t, &lsquo;<samp>e2(x)</samp>&rsquo; &ndash; интеграл E<sub>2</sub>(x) = &real;&int;<sub>1</sub>&infin;</sup>dt exp(-xt)/t<sup>2</sup>, &lsquo;<samp>ei3(x)</samp>&rsquo; &ndash; интеграл Ei<sub>3</sub>(x) = &int;<sub>0</sub><sup>x</sup>dt exp(-t<sup>3</sup>) для x&ge;0. </p>
+
+<p>Функции Бесселя: &lsquo;<samp>j(nu,x)</samp>&rsquo; &ndash; функция Бесселя первого рода, &lsquo;<samp>y(nu,x)</samp>&rsquo; &ndash; функция Бесселя второго рода, &lsquo;<samp>i(nu,x)</samp>&rsquo; &ndash; модифицированная функция Бесселя первого рода, &lsquo;<samp>k(nu,x)</samp>&rsquo; &ndash; модифицированная функция Бесселя второго рода. </p>
+
+<p>Эллиптические интегралы: &lsquo;<samp>ee(k)</samp>&rsquo; &ndash; полный эллиптический интеграл E(k) = E(&pi;/2,k), &lsquo;<samp>ek(k)</samp>&rsquo; &ndash; полный эллиптический интеграл K(k) = F(&pi;/2,k), &lsquo;<samp>e(phi,k)</samp>&rsquo; &ndash; эллиптический интеграл E(&phi;,k) = &int;<sub>0</sub><sup>&phi;</sup>dt &radic;(1 - k<sup>2</sup>sin<sup>2</sup>(t)), &lsquo;<samp>f(phi,k)</samp>&rsquo; &ndash; эллиптический интеграл F(&phi;,k) = &int;<sub>0</sub><sup>&phi;</sup>dt 1/&radic;(1 - k<sup>2</sup>sin<sup>2</sup>(t))</p>
+<p>Функции Якоби: &lsquo;<samp>sn(u,m)</samp>&rsquo;, &lsquo;<samp>cn(u,m)</samp>&rsquo;, &lsquo;<samp>dn(u,m)</samp>&rsquo;, &lsquo;<samp>sc(u,m)</samp>&rsquo;, &lsquo;<samp>sd(u,m)</samp>&rsquo;, &lsquo;<samp>ns(u,m)</samp>&rsquo;, &lsquo;<samp>cs(u,m)</samp>&rsquo;, &lsquo;<samp>cd(u,m)</samp>&rsquo;, &lsquo;<samp>nc(u,m)</samp>&rsquo;, &lsquo;<samp>ds(u,m)</samp>&rsquo;, &lsquo;<samp>dc(u,m)</samp>&rsquo;, &lsquo;<samp>nd(u,m)</samp>&rsquo;.
+</p>
+<p>Некоторые из функций могут быть недоступны если флаг NO_GSL был определен при компиляции библиотеки MathGL. 
+</p>
+<p>При разборе формул нет различия между верхним и нижним регистром. Если аргумент лежит вне области определения функции, то возвращается NaN.
+</p>
+
+<hr size="6">
+<a name="Graphics-setup"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Textual-formulas" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041d_0430_0441_0442_0440_043e_0439_043a_0430-g_0440_0430_0444_0438_043a_0430"></a>
+<h2 class="section">1.2 Настройка графика</h2>
+
+<p>Команды в этой группе влияют на вид всего рисунка. Соответственно они должны располагаться <em>перед</em> вызовом функций непосредственно рисующих графики.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Transparency">1.2.1 Прозрачность</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lighting">1.2.2 Освещение</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fog">1.2.3 Туман</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Default-sizes">1.2.4 Базовые размеры</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Zooming">1.2.5 Масштабирование</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cutting">1.2.6 Обрезание</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-settings">1.2.7 Прочие настройки</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Graphics-setup" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lighting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x"></a>
+<h3 class="subsection">1.2.1 Прозрачность</h3>
+
+<p>Эти команды настраивают тип и степень прозрачности поверхностей. Главной является функция <a href="#alpha">alpha</a>, которая включает/выключает прозрачность для всех графиков, созданных после вызова <a href="#alpha">alpha</a>. Функция <a href="#alphadef">alphadef</a> устанавливает величину alpha-канала по умолчанию. Прозрачность можно выключить для отдельного графика с помощью <a href="#transparent">transparent</a>. Наконец, функция <a href="#transptype">transptype</a> задает тип прозрачности. См. раздел <a href="mgl_ru_3.html#Transparent-surface-sample">Transparent surface &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<a name="index-alpha"></a>
+<p><a name="alpha"></a>
+</p><dl>
+<dt><a name="index-alpha-1"></a><u>Команда MGL:</u> <b>alpha</b><i> <code>[val=on]</code></i></dt>
+<dd><p>Включает/выключает прозрачность для <em>всего</em> рисунка. По умолчанию прозрачность выключена. Используйте <code>transparent off</code> для конкретного графика для выключения прозрачности.
+</p></dd></dl>
+<a name="index-alphadef"></a>
+<p><a name="alphadef"></a>
+</p><dl>
+<dt><a name="index-alphadef-1"></a><u>Команда MGL:</u> <b>alphadef</b><i> <code>val</code></i></dt>
+<dd><p>Задает значение прозрачности по умолчанию для всех графиков. Начальное значение 0.5.
+</p></dd></dl>
+<a name="index-transparent"></a>
+<p><a name="transparent"></a>
+</p><dl>
+<dt><a name="index-transparent-1"></a><u>Команда MGL:</u> <b>transparent</b><i> <code>val</code></i></dt>
+<dd><p>Временно включает/возвращает прозрачность графиков.
+</p></dd></dl>
+<a name="index-transptype"></a>
+<p><a name="transptype"></a>
+</p><dl>
+<dt><a name="index-transptype-1"></a><u>Команда MGL:</u> <b>transptype</b><i> <code>val</code></i></dt>
+<dd><p>Задает тип прозрачности. Обычная прозрачность (&lsquo;<samp>0</samp>&rsquo;) &ndash; &quot;закрытые&quot; объекты видны меньше чем закрывающие. &quot;Стеклянная&quot; прозрачность (&lsquo;<samp>1</samp>&rsquo;) &ndash; закрытые и закрывающие объекты единообразно ослабляют интенсивность света (по RGB каналам). &quot;Ламповая&quot; прозрачность (&lsquo;<samp>2</samp>&rsquo;) &ndash; закрытые и закрывающие объекты являются источниками дополнительного освещения (рекомендую установить <code>alphadef 0.3</code> или меньше в этом случае). See section <a href="mgl_ru_3.html#Normal-transparency">Обычная прозрачность</a>, <a href="mgl_ru_3.html#Glass_002dlike-transparency">&quot;Стеклянная&quot; прозрачность</a>, <a href="mgl_ru_3.html#Lamp_002dlike-transparency">&quot;Ламповая&quot; прозрачность</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Lighting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fog" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_0432e_0449e_043d_0438e"></a>
+<h3 class="subsection">1.2.2 Освещение</h3>
+
+<p>Эти функции настраивают освещение графика. Главная функция <a href="#light">light</a> включает/выключает освещение графиков построенных после ее вызова. MathGL  поддерживает до 10 независимых источников света. Положение, цвет, яркость каждого источника света можно задавать по отдельности. По умолчанию включен только первый (с порядковым номером <code>0</code>) источник света белого цвета, расположенный сверху.
+</p>
+<a name="index-light"></a>
+<p><a name="light"></a>
+</p><dl>
+<dt><a name="index-light-1"></a><u>Команда MGL:</u> <b>light</b><i> <code>[val=on]</code></i></dt>
+<dd><p>Включает/выключает освещение графика. По умолчанию освещение выключено.
+</p></dd></dl>
+<dl>
+<dt><a name="index-light-2"></a><u>Команда MGL:</u> <b>light</b><i> <code>n val</code></i></dt>
+<dd><p>Включает/выключает <var>n</var>-ый источник света.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-light-3"></a><u>Команда MGL:</u> <b>light</b><i> <code>n xpos ypos zpos</code> ['col'='w' <code>br=0.5</code>]</i></dt>
+<dd><p>Добавляет источник света с номером <var>n</var> в положение {<var>xpos</var>, <var>ypos</var>, <var>zpos</var>} с цветом <var>col</var> и яркостью <var>br</var>, которая должна быть в диапазоне [0,1].
+</p></dd></dl>
+
+<a name="index-ambient"></a>
+<p><a name="ambient"></a>
+</p><dl>
+<dt><a name="index-ambient-1"></a><u>Команда MGL:</u> <b>ambient</b><i> <code>val</code></i></dt>
+<dd><p>Задает яркость рассеянного освещения. Значение должно быть в диапазоне [0,1].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fog"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lighting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Default-sizes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0422_0443_043c_0430_043d"></a>
+<h3 class="subsection">1.2.3 Туман</h3>
+
+<a name="index-fog"></a>
+<p><a name="fog"></a>
+</p><dl>
+<dt><a name="index-fog-1"></a><u>Команда MGL:</u> <b>fog</b><i> <code>val [dz=0.25]</code></i></dt>
+<dd><p>Имитирует туман на графике. Туман начинается на относительном расстоянии <var>dz</var> от точки обзора и его плотность растет экспоненциально вглубь по закону ~<em>1-exp(-d*z)</em>. Здесь <em>z</em> &ndash; нормализованная на 1 глубина графика. Если <var>d</var>=<code>0</code> то туман отсутствует. См. раздел <a href="mgl_ru_3.html#Surface-in-fog-sample">Surface in fog &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Default-sizes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fog" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Zooming" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0411_0430_0437_043e_0432_044be-_0440_0430_0437_043ce_0440_044b"></a>
+<h3 class="subsection">1.2.4 Базовые размеры</h3>
+
+<p>Эти команды задают величины большинства параметров графика, включая размеры маркеров, стрелок, толщину линий и т.д. Как и любые другие настройки, они подействуют только на графики созданные после изменения настроек.
+</p>
+<a name="index-barwidth"></a>
+<p><a name="barwidth"></a>
+</p><dl>
+<dt><a name="index-barwidth-1"></a><u>Команда MGL:</u> <b>barwidth</b><i> <code>val</code></i></dt>
+<dd><p>Относительный размер прямоугольников в <code>bars, barh, boxplot</code>. Значение по умолчанию <code>0.7</code>.
+</p></dd></dl>
+
+<a name="index-marksize"></a>
+<p><a name="marksize"></a>
+</p><dl>
+<dt><a name="index-marksize-1"></a><u>Команда MGL:</u> <b>marksize</b><i> <code>val</code></i></dt>
+<dd><p>Размер маркеров для <a href="#g_t1D-plotting">1D графики</a>. Значение по умолчанию <code>1</code>.
+</p></dd></dl>
+
+<a name="index-arrowsize"></a>
+<p><a name="arrowsize"></a>
+</p><dl>
+<dt><a name="index-arrowsize-1"></a><u>Команда MGL:</u> <b>arrowsize</b><i> <code>val</code></i></dt>
+<dd><p>Размер стрелок для <a href="#g_t1D-plotting">1D графики</a>, линий и кривых (see section <a href="#Primitives-drawing">Рисование примитивов</a>). Значение по умолчанию <code>1</code>.
+</p></dd></dl>
+
+<a name="index-linewidth"></a>
+<p><a name="linewidth"></a>
+</p><dl>
+<dt><a name="index-linewidth-1"></a><u>Команда MGL:</u> <b>linewidth</b><i> <code>val</code></i></dt>
+<dd><p>Базовая толщина линий. Значения &lt;1 игнорируются. Для значений &gt;1 реальная толщина получается перемножением указанной ширины линии на данное значение. Увеличение ширины линии актуально для больших растровых рисунков. Значение по умолчанию <code>1</code>.
+</p></dd></dl>
+
+<a name="index-ticklen"></a>
+<p><a name="ticklen"></a>
+</p><dl>
+<dt><a name="index-ticklen-1"></a><u>Команда MGL:</u> <b>ticklen</b><i> <code>val</code> [<code>stt=1</code>]</i></dt>
+<dd><p>Относительная длина меток осей координат. Значение по умолчанию <code>0.1</code>. Параметр <var>stt</var>&gt;0 задает относительную длину подметок, которые в <code>sqrt(1+stt)</code> раз меньше.
+</p></dd></dl>
+
+<a name="index-tickstl"></a>
+<p><a name="tickstl"></a>
+</p><dl>
+<dt><a name="index-tickstl-1"></a><u>Команда MGL:</u> <b>tickstl</b><i> 'stl' ['sub'='']</i></dt>
+<dd><p>Стиль меток (<var>stl</var>) и подметок (<var>sub</var>) осей координат. Если <code>stl=''</code>, то используется стиль по умолчанию (&lsquo;<samp>k</samp>&rsquo; или &lsquo;<samp>w</samp>&rsquo; в зависимости от типа прозрачности). Если <code>sub=''</code>, то используется стиль меток (т.е. <var>stl</var>).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Zooming"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Default-sizes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cutting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041c_0430_0441_0448_0442_0430_0431_0438_0440_043e_0432_0430_043d_0438e"></a>
+<h3 class="subsection">1.2.5 Масштабирование</h3>
+
+<p>Эти команды управляют масштабированием всего рисунка (<a href="#zoom">zoom</a>) или отдельной картинки (<a href="#plotfactor">plotfactor</a>). Обычно эти функции используются для удаления пустого места вокруг графиков.
+</p>
+<a name="index-plotfactor"></a>
+<p><a name="plotfactor"></a>
+</p><dl>
+<dt><a name="index-plotfactor-1"></a><u>Команда MGL:</u> <b>plotfactor</b><i> <code>val</code></i></dt>
+<dd><p>Масштаб картинки (значение должно быть больше 1). Не рекомендуется устанавливать значения меньше 1.5. Это аналог <a href="#zoom">zoom</a>, но применяется только к конкретной картинке, заданной <a href="#inplot">inplot</a>. Используйте ноль для включения автоматического масштабирования.
+</p></dd></dl>
+
+<a name="index-zoom"></a>
+<p><a name="zoom"></a>
+</p><dl>
+<dt><a name="index-zoom-1"></a><u>Команда MGL:</u> <b>zoom</b><i> <code>x1 y1 x2 y2</code></i></dt>
+<dd><p>Масштабирует весь рисунок. После вызова функции текущий график будет очищен и в дальнейшем рисунок будет содержать только область [x1,x2]*[y1,y2] от исходного рисунка. Координаты <var>x1</var>, <var>x2</var>, <var>y1</var>, <var>y2</var> меняются в диапазоне от 0 до 1. Внимание! эти настройки не могут быть переписаны никакими другими функциями. Используйте <code>zoom 0 0 1 1</code> для перехода в масштаб по умолчанию.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cutting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Zooming" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0431_0440e_0437_0430_043d_0438e"></a>
+<h3 class="subsection">1.2.6 Обрезание</h3>
+
+<p>Эти команды задают условия когда точка будет исключена (вырезана) из рисования. Замечу, что все точки со значением(-ями) <code>nan</code> по одной из координат или амплитуде автоматически исключаются из рисования.
+</p>
+<a name="index-cut"></a>
+<p><a name="cut"></a>
+</p><dl>
+<dt><a name="index-cut-1"></a><u>Команда MGL:</u> <b>cut</b><i> <code>val</code></i></dt>
+<dd><p>Задает обрезание точек за пределами осей координат. Если <code>on</code> то такие точки исключаются из рисования (это по умолчанию) иначе они проецируются на ограничивающий прямоугольник.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cut-2"></a><u>Команда MGL:</u> <b>cut</b><i> <code>x1 y1 z1 x2 y2 z2</code></i></dt>
+<dd><p>Задает границы параллелепипеда внутри которого точки не рисуются. Если границы одинаковы (переменные равны), то параллелепипеда считается пустым. См. раздел <a href="mgl_ru_3.html#CutMinMax-sample">CutMinMax &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cut-3"></a><u>Команда MGL:</u> <b>cut</b><i> 'cond'</i></dt>
+<dd><p>Задает условие обрезания по формуле <var>cond</var>. Это условие исключает точки из рисования если результат вычисления формулы не равен нулю. Установите аргумент <code>''</code> для выключения условия обрезания. См. раздел <a href="mgl_ru_3.html#CutOff-sample">CutOff &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Other-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cutting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043e_0447_0438e-_043d_0430_0441_0442_0440_043e_0439_043a_0438"></a>
+<h3 class="subsection">1.2.7 Прочие настройки</h3>
+
+<a name="index-font"></a>
+<p><a name="font"></a>
+</p><dl>
+<dt><a name="index-font-1"></a><u>Команда MGL:</u> <b>font</b><i> 'fnt' [<code>val=6</code>]</i></dt>
+<dd><p>Задает стиль и размер шрифта (see section <a href="#Text-printing">Вывод текста</a>). Вначале используется &lsquo;<samp>rC</samp>&rsquo; &ndash; прямой шрифт с выравниванием по центру. По умолчанию размер подписей оси координат в 1.4 раза больше.
+</p></dd></dl>
+
+<a name="index-rotatetext"></a>
+<p><a name="rotatetext"></a>
+</p><dl>
+<dt><a name="index-rotatetext-1"></a><u>Команда MGL:</u> <b>rotatetext</b><i> <code>val</code></i></dt>
+<dd><p>Включает/выключает вращение меток и подписей осей координат вдоль оси. Начальное значение <code>on</code>.
+</p></dd></dl>
+
+<a name="index-palette"></a>
+<p><a name="palette"></a>
+</p><dl>
+<dt><a name="index-palette-1"></a><u>Команда MGL:</u> <b>palette</b><i> 'colors'</i></dt>
+<dd><p>Задает палитру как последовательность цветов. Значение по умолчанию <code>&quot;Hbgrcmyhlnqeup&quot;</code>, что соответствует цветам: темно серый &lsquo;<samp>H</samp>&rsquo;, синий &lsquo;<samp>b</samp>&rsquo;, зеленый &lsquo;<samp>g</samp>&rsquo;, красный &lsquo;<samp>r</samp>&rsquo;, голубой &lsquo;<samp>c</samp>&rsquo;, малиновый &lsquo;<samp>m</samp>&rsquo;, желтый &lsquo;<samp>y</samp>&rsquo;, серый &lsquo;<samp>h</samp>&rsquo;, сине-зеленый  &lsquo;<samp>l</samp>&rsquo;, небесно-голубой &lsquo;<samp>n</samp>&rsquo;, оранжевый &lsquo;<samp>q</samp>&rsquo;, желто-зеленый &lsquo;<samp>e</samp>&rsquo;, сине-фиолетовый &lsquo;<samp>u</samp>&rsquo;, фиолетовый &lsquo;<samp>p</samp>&rsquo;. Палитра в основном используется в 1D графиках (see section <a href="#g_t1D-plotting">1D графики</a>) для кривых с неопределенным стилем линии.
+</p></dd></dl>
+
+<a name="index-meshnum"></a>
+<p><a name="meshnum"></a>
+</p><dl>
+<dt><a name="index-meshnum-1"></a><u>Команда MGL:</u> <b>meshnum</b><i> <code>num</code></i></dt>
+<dd><p>Задает ориентировочное число линий в <a href="#mesh">mesh</a>, <a href="#fall">fall</a>, <a href="#grid">grid</a>, число стрелок (штрихов) в <a href="#vect">vect</a>, <a href="#dew">dew</a> и число ячеек в <a href="#cloud">cloud</a>. По умолчанию (=0) рисуются все линии, стрелки, ячейки.
+</p></dd></dl>
+
+<a name="index-axialdir"></a>
+<p><a name="axialdir"></a>
+</p><dl>
+<dt><a name="index-axialdir-1"></a><u>Команда MGL:</u> <b>axialdir</b><i> 'dir'</i></dt>
+<dd><p>Задает ось вращения для <a href="#axial">axial</a>, <a href="#torus">torus</a>. По умолчанию это &rsquo;z&rsquo;.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axis-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transformation-matrix" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0430_0440_0430_043ce_0442_0440_044b-_043e_0441e_0439-_043a_043e_043e_0440_0434_0438_043d_0430_0442"></a>
+<h2 class="section">1.3 Параметры осей координат</h2>
+
+<p>Этот большой набор команд определяет вид осей и меток координат. Перед построением для каждой точки выполняются 3 преобразования: сначала определяется возможность рисования точки (see section <a href="#Cutting">Обрезание</a>), далее применяются формулы перехода к криволинейным координатам и наконец точка отображается.
+</p>
+<a name="index-axis"></a>
+<p><a name="axis"></a>
+</p><dl>
+<dt><a name="index-axis-1"></a><u>Команда MGL:</u> <b>axis</b><i> <code>x1 y1 x2 y2</code></i></dt>
+<dt><a name="index-axis-2"></a><u>Команда MGL:</u> <b>axis</b><i> <code>x1 y1 z1 x2 y2 z2</code></i></dt>
+<dd><a name="index-ranges"></a>
+<p><a name="ranges"></a>
+</p></dd><dt><a name="index-ranges-1"></a><u>Команда MGL:</u> <b>ranges</b><i> <code>x1 x2 y1 y2 [z1=0 z2=0]</code></i></dt>
+<dd><p>Задает диапазон изменения координат. Если минимальное и максимальное значение координаты равны, то они игнорируются по данному направлению. Также устанавливает размер цветовой шкалы, аналогично команде  <code>caxis z1 z2</code>. Начальные диапазоны равны [-1, 1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axis-3"></a><u>Команда MGL:</u> <b>axis</b><i> 'fx' 'fy' ['fz'='' 'fa'='']</i></dt>
+<dd><p>Задает формулы перехода к криволинейным координатам. Каждая строка является математическим выражением, зависящим от старых координат &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; и &lsquo;<samp>a</samp>&rsquo; или &lsquo;<samp>c</samp>&rsquo; для цветовой шкалы. Например, для цилиндрических координат будет <code>axis 'x*cos(y)' 'x*sin(y)' 'z'</code>. Для удаления формул соответствующий параметр должен быть пустым <code>''</code>. Использование формул преобразования слегка замедляет программу, т.е.. <code>axis '' '' ''</code> быстрее чем <code>axis '1*x' '1*y' '1*z'</code>. Параметр <var>fa</var> задает аналогичную формулу для цветовой шкалы. See section <a href="#Textual-formulas">Текстовые формулы</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axis-4"></a><u>Команда MGL:</u> <b>axis</b><i> <code>how</code></i></dt>
+<dd><p>Устанавливает одну из предопределенных систем криволинейных координат в зависимости от параметра <var>how</var>: &lsquo;<samp>0</samp>&rsquo; &ndash; декартова система (нет преобразования координат, наиболее быстрая); &lsquo;<samp>1</samp>&rsquo; &ndash; полярные координаты <em>x_n=x*cos(y),y_n=x*sin(y), z_n=z</em>; &lsquo;<samp>2</samp>&rsquo; &ndash; сферические координаты <em>x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y)</em>; &lsquo;<samp>3</samp>&rsquo; &ndash; параболические координаты <em>x_n=x*y, y_n=(x*x-y*y)/2, z_n=z</em>; &lsquo;<samp>4</samp>&rsquo; &ndash; Paraboloidal coordinates <em>x_n=(x*x-y*y)*cos(z)/2, y_n=(x*x-y*y)*sin(z)/2, z_n=x*y</em>; &lsquo;<samp>5</samp>&rsquo; &ndash; Oblate coordinates <em>x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z), z_n=sinh(x)*sin(y)</em>; &lsquo;<samp>6</samp>&rsquo; &ndash; Prolate coordinates <em>x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z), z_n=cosh(x)*cos(y)</em>; &lsquo;<samp>7</samp>&rsquo; &ndash; эллиптические координаты <em>x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z</em>; &lsquo;<samp>8</samp>&rsquo; &ndash; тороидальные координаты <em>x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)), y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y))</em>; &lsquo;<samp>9</samp>&rsquo; &ndash; бисферические координаты <em>x_n=sin(y)*cos(z)/(cosh(x)-cos(y)), y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y))</em>; &lsquo;<samp>10</samp>&rsquo; &ndash; биполярные координаты <em>x_n=sinh(x)/(cosh(x)-cos(y)), y_n=sin(y)/(cosh(x)-cos(y)), z_n=z</em>.
+</p></dd></dl>
+
+<a name="index-caxis"></a>
+<p><a name="caxis"></a>
+</p><dl>
+<dt><a name="index-caxis-1"></a><u>Команда MGL:</u> <b>caxis</b><i> <code>z1 z2</code></i></dt>
+<dd><p>Задает масштаб цветовой шкалы (c-координаты). Эти значения используются для определения цвета поверхностей и прочих 2D и 3D графиков. Начальный диапазон равен [-1, 1].
+</p></dd></dl>
+
+<a name="index-origin"></a>
+<p><a name="origin"></a>
+</p><dl>
+<dt><a name="index-origin-1"></a><u>Команда MGL:</u> <b>origin</b><i> <code>x0 y0 [z0=nan]</code></i></dt>
+<dd><p>Задает центр пересечения осей координат. Если одно из значений равно <code>nan</code>, то выбрается оптимальное положение осей координат по этому направлению.
+</p></dd></dl>
+
+<a name="index-ternary"></a>
+<p><a name="ternary"></a>
+</p><dl>
+<dt><a name="index-ternary-1"></a><u>Команда MGL:</u> <b>ternary</b><i> <code>val</code></i></dt>
+<dd><p>Задает рисование треугольных (Ternary) осей координат. Это специальный тип графика для 3 зависимых координат (компонент) <var>a</var>, <var>b</var>, <var>c</var> таких, что <var>a</var>+<var>b</var>+<var>c</var>=1. MathGL использует только 2 независимые координаты <var>a</var>=x и <var>b</var>=y поскольку их достаточно для построения всех графиков. При этом третья координата z является независимым параметром для построения линий уровня, поверхностей и т.д. См. раздел <a href="mgl_ru_3.html#Ternary-plot-sample">Ternary plot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-xrange"></a>
+<p><a name="xrange"></a>
+</p><dl>
+<dt><a name="index-xrange-1"></a><u>Команда MGL:</u> <b>xrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-yrange"></a>
+<p><a name="yrange"></a>
+</p></dd><dt><a name="index-yrange-1"></a><u>Команда MGL:</u> <b>yrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-zrange"></a>
+<p><a name="zrange"></a>
+</p></dd><dt><a name="index-zrange-1"></a><u>Команда MGL:</u> <b>zrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-crange"></a>
+<p><a name="crange"></a>
+</p></dd><dt><a name="index-crange-1"></a><u>Команда MGL:</u> <b>crange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><p>Задает диапазон изменения x-,y-,z-,c- координат как минимальное и максимальное значение массива <var>dat</var>. Параметр <var>add</var> указывает добавлять новый диапазон к существующему или заменять его. Параметр <var>fact</var> дополнительно расширяет диапазон на величину (<var>Max</var>-<var>Min</var>)*<var>fact</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xrange-2"></a><u>Команда MGL:</u> <b>xrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-yrange-2"></a><u>Команда MGL:</u> <b>yrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-zrange-2"></a><u>Команда MGL:</u> <b>zrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-crange-2"></a><u>Команда MGL:</u> <b>crange</b><i> <code>x1 x2</code></i></dt>
+<dd><p>Задает диапазон изменения x-,y-,z-,c- координат. См. также <a href="#axis">axis</a>.
+</p></dd></dl>
+
+<a name="index-xtick"></a>
+<p><a name="xtick"></a>
+</p><dl>
+<dt><a name="index-xtick-1"></a><u>Команда MGL:</u> <b>xtick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ytick"></a>
+<p><a name="ytick"></a>
+</p></dd><dt><a name="index-ytick-1"></a><u>Команда MGL:</u> <b>ytick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ztick"></a>
+<p><a name="ztick"></a>
+</p></dd><dt><a name="index-ztick-1"></a><u>Команда MGL:</u> <b>ztick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ctick"></a>
+<p><a name="ctick"></a>
+</p></dd><dt><a name="index-ctick-1"></a><u>Команда MGL:</u> <b>ctick</b><i> <code>val</code></i></dt>
+<dd><p>Задает шаг меток осей <var>val</var>, число подметок <var>ns</var> и начальное положение меток <var>org</var>. Переменная <var>val</var> задает шаг меток (если положительна) или их число на оси (если отрицательна). Нулевое значение задает логарифмические метки. Если <var>org</var>=<code>NAN</code>, то используется значение из <a href="#origin">origin</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xtick-2"></a><u>Команда MGL:</u> <b>xtick</b><i> 'templ'</i></dt>
+<dt><a name="index-ytick-2"></a><u>Команда MGL:</u> <b>ytick</b><i> 'templ'</i></dt>
+<dt><a name="index-ztick-2"></a><u>Команда MGL:</u> <b>ztick</b><i> 'templ'</i></dt>
+<dt><a name="index-ctick-2"></a><u>Команда MGL:</u> <b>ctick</b><i> 'templ'</i></dt>
+<dd><p>Задает шаблоны для меток вдоль x-,y-,z-оси или colorbar. Шаблон может содержать и символы TeX. Если <var>xtt</var>, <var>ytt</var>, <var>ztt</var>, <var>ctt</var>=<code>''</code>, то используется шаблон по умолчанию (в простейшем случае &lsquo;<samp>%.2g</samp>&rsquo;). Установка шаблона выключает автоматическое улучшение вида меток.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xtick-3"></a><u>Команда MGL:</u> <b>xtick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dt><a name="index-ytick-3"></a><u>Команда MGL:</u> <b>ytick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dt><a name="index-ztick-3"></a><u>Команда MGL:</u> <b>ztick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dd><p>Задает явное положение <var>val</var> и подписи <var>lbl</var> для меток вдоль оси. Метки могут содержать и символы TeX.
+</p></dd></dl>
+
+<a name="index-adjust"></a>
+<p><a name="adjust"></a>
+</p><dl>
+<dt><a name="index-adjust-1"></a><u>Команда MGL:</u> <b>adjust</b><i> ['dir'='xyzc']</i></dt>
+<dd><p>Автоматически задает шаг меток осей, число подметок и начальное положение меток для осей координат <var>dir</var> в виде наиболее удобном для человека.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Transformation-matrix"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Export-to-file" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041c_0430_0442_0440_0438c_0430-_043f_0440e_043e_0431_0440_0430_0437_043e_0432_0430_043d_0438ya"></a>
+<h2 class="section">1.4 Матрица преобразования</h2>
+
+<p>Эти команды контролируют где и как график будет расположен. Существует определенный порядок вызова этих функций для лучшего вида графика. Вначале должны вызываться команды <a href="#subplot">subplot</a> или <a href="#inplot">inplot</a> для указания местоположения вывода. После них &ndash; команды вращения <a href="#rotate">rotate</a> и сжатия <a href="#aspect">aspect</a>. И наконец любые другие функции для рисования графика. Вместо вращения графика можно вызвать команды <a href="#columnplot">columnplot</a> для расположения графиков в столбец одного над другим или <a href="#stickplot">stickplot</a> для расположения в линейку.
+</p>
+<a name="index-subplot"></a>
+<p><a name="subplot"></a>
+</p><dl>
+<dt><a name="index-subplot-1"></a><u>Команда MGL:</u> <b>subplot</b><i> <code>nx ny m [dx=0 dy=0]</code></i></dt>
+<dd><p>Помещает последующий вывод в <var>m</var>-ую ячейку сетки размером <var>nx</var>*<var>ny</var> от всего рисунка. Функция сбрасывает матрицу трансформации (повороты и сжатие графика) и должна вызываться первой для создания &quot;подграфика&quot;. С эстетической точки зрения не рекомендуется вызывать эту функцию с различными (или не кратными) размерами сетки. Ячейка может быть дополнительно сдвинута относительно своего обычного положения на относительный размер <var>dx</var>, <var>dy</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-subplot-2"></a><u>Команда MGL:</u> <b>subplot</b><i> <code>nx ny m</code> 'style'</i></dt>
+<dd><p>Аналогично предыдущему, но место для осей/colorbar резервируется только если строка <var>style</var> содержит: &lsquo;<samp>L</samp>&rsquo; или &lsquo;<samp>&lt;</samp>&rsquo; &ndash; с левого края, &lsquo;<samp>R</samp>&rsquo; или &lsquo;<samp>&gt;</samp>&rsquo; &ndash; с правого края, &lsquo;<samp>A</samp>&rsquo; или &lsquo;<samp>^</samp>&rsquo; &ndash; с верхнего края, &lsquo;<samp>U</samp>&rsquo; или &lsquo;<samp>_</samp>&rsquo; &ndash; с нижнего края.
+</p></dd></dl>
+
+<a name="index-inplot"></a>
+<p><a name="inplot"></a>
+</p><dl>
+<dt><a name="index-inplot-1"></a><u>Команда MGL:</u> <b>inplot</b><i> <code>x1 x2 y1 y2 [rel=off]</code></i></dt>
+<dd><p>Помещает последующий вывод в прямоугольную область [<var>x1</var>, <var>x2</var>]*[<var>y1</var>, <var>y2</var>] (исходный размер [0,1]*[0,1]). Эта функция позволяет поместить график в произвольную область рисунка. Если параметр <var>rel</var>=<code>on</code>, то используется позиция относительно текщего <a href="#subplot">subplot</a> (или <a href="#inplot">inplot</a> с <var>rel</var>=<code>off</code>). Функция сбрасывает матрицу трансформации (повороты и сжатие графика) и должна вызываться первой для создания &quot;подграфика&quot;.
+</p></dd></dl>
+
+<a name="index-columnplot"></a>
+<p><a name="columnplot"></a>
+</p><dl>
+<dt><a name="index-columnplot-1"></a><u>Команда MGL:</u> <b>columnplot</b><i> <code>num ind [d=0]</code></i></dt>
+<dd><p>Помещает последующий вывод в <var>ind</var>-ую строку столбца из <var>num</var> строк. Положение столбца выбирается относительно последнего вызова <a href="#subplot">subplot</a> (или <a href="#inplot">inplot</a> с <var>rel</var>=<code>off</code>). Параметр <var>d</var> задает дополнительный зазор между строк. См. раздел <a href="mgl_ru_3.html#ColumnPlot-sample">ColumnPlot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-stickplot"></a>
+<p><a name="stickplot"></a>
+</p><dl>
+<dt><a name="index-stickplot-1"></a><u>Команда MGL:</u> <b>stickplot</b><i> <code>num ind tet phi</code></i></dt>
+<dd><p>Помещает последующий вывод в <var>ind</var>-ую ячейку &quot;бруска&quot; из <var>num</var> ячеек. При этом сам брусок повернут на углы <var>tet</var>, <var>phi</var>. Положение выбирается относительно последнего вызова <a href="#subplot">subplot</a> (или <a href="#inplot">inplot</a> с <var>rel</var>=<code>off</code>). См. раздел <a href="mgl_ru_3.html#StickPlot-sample">StickPlot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-rotate"></a>
+<p><a name="rotate"></a>
+</p><dl>
+<dt><a name="index-rotate-1"></a><u>Команда MGL:</u> <b>rotate</b><i> <code>tetz tetx [tety=0]</code></i></dt>
+<dd><p>Вращает систему координат относительно осей {x, z, y} последовательно на углы <var>tetx</var>, <var>tetz</var>, <var>tety</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-rotate-2"></a><u>Команда MGL:</u> <b>rotate</b><i> <code>tet x y z</code></i></dt>
+<dd><p>Вращает систему координат относительно вектора {<var>x</var>, <var>y</var>, <var>z</var>} на угол <var>tet</var>.
+</p></dd></dl>
+
+<a name="index-aspect"></a>
+<p><a name="aspect"></a>
+</p><dl>
+<dt><a name="index-aspect-1"></a><u>Команда MGL:</u> <b>aspect</b><i> <code>ax ay [az=1]</code></i></dt>
+<dd><p>Устанавливает соотношение размеров осей в отношении <var>ax:ay:az</var>. Для лучшего вида следует вызывать после функции <a href="#rotate">rotate</a>.
+</p></dd></dl>
+
+<a name="index-perspective"></a>
+<p><a name="perspective"></a>
+</p><dl>
+<dt><a name="index-perspective-1"></a><u>Команда MGL:</u> <b>perspective</b><i> <code>val</code></i></dt>
+<dd><p>Добавляет (включает) перспективу для графика. Параметр <em>val ~ 1/z_eff \in [0,1)</em>. По умолчанию (<code>val=0</code>) перспектива отключена.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Export-to-file"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transformation-matrix" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Primitives-drawing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_042d_043a_0441_043f_043e_0440_0442-_0432-_0444_0430_0439_043b"></a>
+<h2 class="section">1.5 Экспорт в файл</h2>
+
+<a name="index-write"></a>
+<p><a name="write"></a>
+</p><dl>
+<dt><a name="index-write-1"></a><u>Команда MGL:</u> <b>write</b><i> 'fname' [<code>solid=off</code>]</i></dt>
+<dd><p>Экспортирует текущий кадр в файл &rsquo;fname&rsquo; (тип определяется по расширению). Параметр <var>solid</var> задает вывод картинки на текущем фоне (обычно белом) или полупрозрачной. Если &rsquo;fname&rsquo;=&rdquo;, то используется имя &lsquo;<samp>frame####.jpg</samp>&rsquo;, где &lsquo;<samp>####</samp>&rsquo; &ndash; текущий номер кадра.
+</p></dd></dl>
+
+<a name="index-setsize"></a>
+<p><a name="setsize"></a>
+</p><dl>
+<dt><a name="index-setsize-1"></a><u>Команда MGL:</u> <b>setsize</b><i> <code>w h</code></i></dt>
+<dd><p>Изменяет размер картинки в пикселях. Функция должна вызываться <strong>перед</strong> любыми функциями построения потому что полностью очищает содержимое рисунка. В некоторых программах исполнение этой команды может запрещено.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Primitives-drawing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Export-to-file" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0420_0438_0441_043e_0432_0430_043d_0438e-_043f_0440_0438_043c_0438_0442_0438_0432_043e_0432"></a>
+<h2 class="section">1.6 Рисование примитивов</h2>
+
+<p>Эти команды рисуют рисуют простые объекты типа линий, точек, сфер, капель, конусов, и т.д.
+</p>
+<a name="index-clf"></a>
+<p><a name="clf"></a>
+</p><dl>
+<dt><a name="index-clf-1"></a><u>Команда MGL:</u> <b>clf</b></dt>
+<dd><p>Очищает рисунок и заполняет его цветом по умолчанию (обычно белым). 
+</p></dd></dl>
+
+<a name="index-ball"></a>
+<p><a name="ball"></a>
+</p><dl>
+<dt><a name="index-ball-1"></a><u>Команда MGL:</u> <b>ball</b><i> <code>x y</code> ['col'='r']</i></dt>
+<dt><a name="index-ball-2"></a><u>Команда MGL:</u> <b>ball</b><i> <code>x y z</code> ['col'='r']</i></dt>
+<dd><p>Рисует точку (шарик) с координатами {<var>x</var>, <var>y</var>, <var>z</var>} и цветом <var>col</var>.
+</p></dd></dl>
+
+<a name="index-line"></a>
+<p><a name="line"></a>
+</p><dl>
+<dt><a name="index-line-1"></a><u>Команда MGL:</u> <b>line</b><i> <code>x1 y1 x2 y2</code> ['stl'='']</i></dt>
+<dt><a name="index-line-2"></a><u>Команда MGL:</u> <b>line</b><i> <code>x1 y1 z1 x2 y2 z2</code> ['stl'='']</i></dt>
+<dd><p>Рисует геодезическую линию (декартовых координатах &ndash; прямую) из точки {<var>x1</var>,<var>y1</var>,<var>z1</var>} в {<var>x2</var>,<var>y2</var>,<var>z2</var>} использую стиль линии <var>stl</var>. Кривая рисуется даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<a name="index-curve"></a>
+<p><a name="curve"></a>
+</p><dl>
+<dt><a name="index-curve-1"></a><u>Команда MGL:</u> <b>curve</b><i> <code>x1 y1 dx1 dy1 x2 y2 dx2 dy2</code> ['stl'='']</i></dt>
+<dt><a name="index-curve-2"></a><u>Команда MGL:</u> <b>curve</b><i> <code>x1 y1 z1 dx1 dy1 dz1 x2 y2 z2 dx2 dy2 dz2</code> ['stl'='']</i></dt>
+<dd><p>Рисует кривую Безье из точки {<var>x1</var>,<var>y1</var>,<var>z1</var>} в {<var>x2</var>,<var>y2</var>,<var>z2</var>} использую стиль линии <var>stl</var>. Касательные в точках пропорциональны {<var>dx1</var>,<var>dy1</var>,<var>dz1</var>}, {<var>dx2</var>,<var>dy2</var>,<var>dz2</var>}. Кривая рисуется даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<a name="index-facex"></a>
+<p><a name="facex"></a>
+</p><dl>
+<dt><a name="index-facex-1"></a><u>Команда MGL:</u> <b>facex</b><i> <code>x0 y0 z0 wy wz</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><a name="index-facey"></a>
+<p><a name="facey"></a>
+</p></dd><dt><a name="index-facey-1"></a><u>Команда MGL:</u> <b>facey</b><i> <code>x0 y0 z0 wx wz</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><a name="index-facez"></a>
+<p><a name="facez"></a>
+</p></dd><dt><a name="index-facez-1"></a><u>Команда MGL:</u> <b>facez</b><i> <code>x0 y0 z0 wx wy</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><p>Рисует закрашенный прямоугольник (грань) перпендикулярно оси [x,y,z] в точке {<var>x0</var>, <var>y0</var>, <var>z0</var>} цветом <var>stl</var> и шириной <var>wx</var>, <var>wy</var>, <var>wz</var> вдоль соответствующего направления. При этом цвет может быть один для всей грани, или различным для разных вершин если указаны все 4 цвета (полезно для градиента цвета, например &lsquo;<samp>wwrr</samp>&rsquo;). Параметры <var>d1</var>!=0, <var>d2</var>!=0 задают дополнительный сдвиг последней точки (т.е. рисуют четырехугольник). Грань будет нарисована даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<a name="index-sphere"></a>
+<p><a name="sphere"></a>
+</p><dl>
+<dt><a name="index-sphere-1"></a><u>Команда MGL:</u> <b>sphere</b><i> <code>x0 y0 r</code> ['col'='r']</i></dt>
+<dt><a name="index-sphere-2"></a><u>Команда MGL:</u> <b>sphere</b><i> <code>x0 y0 z0 r</code> ['col'='r']</i></dt>
+<dd><p>Рисует сферу радиуса <var>r</var> с центром в точке {<var>x</var>, <var>y</var>, <var>z</var>} цветом <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-drop"></a>
+<p><a name="drop"></a>
+</p><dl>
+<dt><a name="index-drop-1"></a><u>Команда MGL:</u> <b>drop</b><i> <code>x0 y0 dx dy r</code> ['col'='b' <code>sh=1 asp=1</code>]</i></dt>
+<dt><a name="index-drop-2"></a><u>Команда MGL:</u> <b>drop</b><i> <code>x0 y0 z0 dx dy dz r</code> ['col'='b' <code>sh=1 asp=1</code>]</i></dt>
+<dd><p>Рисует каплю радиуса <var>r</var> в точке {<var>x0</var>,<var>y0</var>,<var>z0</var>} вытянутую вдоль направления {<var>dx</var>,<var>dy</var>,<var>dz</var>} цветом <var>col</var>. Параметр <var>sh</var> определяет степень вытянутости: &lsquo;<samp>0</samp>&rsquo; &ndash; сфера, &lsquo;<samp>1</samp>&rsquo; &ndash; классическая капля. Параметр <var>asp</var> определяет относительную ширину капли (аналог &quot;эллиптичности&quot; для сферы). См. раздел <a href="mgl_ru_3.html#Drops-sample">Drops &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-cone"></a>
+<p><a name="cone"></a>
+</p><dl>
+<dt><a name="index-cone-1"></a><u>Команда MGL:</u> <b>cone</b><i> <code>x1 y1 z1 x2 y2 z2 r1</code> [<code>r2=-1</code> 'stl'='' <code>edge=off</code>]</i></dt>
+<dd><p>Рисует трубу (или усеченный конус если <var>edge</var>=<code>off</code>) между точками {<var>x1</var>,<var>y1</var>,<var>z1</var>}, {<var>x2</var>,<var>y2</var>,<var>z2</var>} с радиусами на концах <var>r1</var>, <var>r2</var>. Если <var>r2</var>&lt;0, то полагается <var>r2</var>=<var>r1</var>. Цвет конуса задается строкой <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-rect"></a>
+<p><a name="rect"></a>
+</p><dl>
+<dt><a name="index-rect-1"></a><u>Команда MGL:</u> <b>rect</b><i> <code>x1 y1 x2 y2</code> ['st'='']</i></dt>
+<dt><a name="index-rect-2"></a><u>Команда MGL:</u> <b>rect</b><i> <code>x1 y1 z1 x2 y2 z2</code> ['st'='']</i></dt>
+<dd><p>Рисует закрашенный прямоугольник (грань) с противоположными вершинами в точках {<var>x1</var>,<var>y1</var>,<var>z1</var>}, {<var>x2</var>,<var>y2</var>,<var>z2</var>} цветом <var>stl</var>. При этом цвет может быть один для всей грани, или различным для разных вершин если указаны все 4 цвета (полезно для градиента цвета, например &lsquo;<samp>wwrr</samp>&rsquo;). Грань будет нарисована даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Text-printing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Primitives-drawing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-Colorbar" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0412_044b_0432_043e_0434-_0442e_043a_0441_0442_0430"></a>
+<h2 class="section">1.7 Вывод текста</h2>
+
+<p>Команды для вывода текста позволяют вывести строку текста в произвольном месте рисунка, в произвольном направлении и вдоль произвольной кривой. Можно использовать произвольное начертание шрифта и многие ТеХ-ие команды (детальнее see section <a href="#Font-styles">Стиль текста</a>). Аргумент <var>size</var> определяет размер текста: размер шрифта если положителен или относительный размер (=-<var>size</var>*<var>fontsize</var>) если отрицателен.
+</p>
+<p>Параметры шрифта задаются строкой, которая может содержать символы стиля (&lsquo;<samp>rbiwou</samp>&rsquo;) и/или выравнивания (&lsquo;<samp>LRC</samp>&rsquo;). Также строка может содержать символы цвета &lsquo;<samp>wkrgbcymhRGBCYMHW</samp>&rsquo; (see section <a href="#Line-styles">Стиль линий</a>) после символа &lsquo;<samp>:</samp>&rsquo;. Стили шрифта: &lsquo;<samp>r</samp>&rsquo; &ndash; прямой, &lsquo;<samp>i</samp>&rsquo; &ndash; курсив, &lsquo;<samp>b</samp>&rsquo; &ndash; жирный, &lsquo;<samp>w</samp>&rsquo; &ndash; контурный, &lsquo;<samp>o</samp>&rsquo; &ndash; надчеркнутый, &lsquo;<samp>u</samp>&rsquo; &ndash; подчеркнутый. По умолчанию используется прямой шрифт. Типы выравнивания: &lsquo;<samp>L</samp>&rsquo; &ndash; по левому краю (по умолчанию), &lsquo;<samp>C</samp>&rsquo; &ndash; по центру, &lsquo;<samp>R</samp>&rsquo; &ndash; по правому краю. Например, строка &lsquo;<samp>iC:b</samp>&rsquo; соответствует курсиву синего цвета с выравниванием по центру. По умолчанию используются параметры, определенные командой <a href="#font">font</a>.
+</p>
+<p>Если строка содержит символы &lsquo;<samp>aA</samp>&rsquo;, то текст выводится в абсолютных координатах (полагаются в диапазоне [0,1]). При этом используются координаты относительно рисунка (если указано &lsquo;<samp>A</samp>&rsquo;) или относительно последнего <a href="#subplot">subplot</a>/<a href="#inplot">inplot</a> (если указано &lsquo;<samp>a</samp>&rsquo;).
+</p>
+<a name="index-text"></a>
+<p><a name="text"></a>
+</p><dl>
+<dt><a name="index-text-1"></a><u>Команда MGL:</u> <b>text</b><i> <code>x y</code> 'text' ['fnt'='' <code>size=-1.4</code>]</i></dt>
+<dt><a name="index-text-2"></a><u>Команда MGL:</u> <b>text</b><i> <code>x y z</code> 'text' ['fnt'='' <code>size=-1.4</code>]</i></dt>
+<dd><p>Выводит строку <var>text</var> от точки {<var>x</var>,<var>y</var>,<var>z</var>} шрифтом <var>fnt</var> и размером <var>size</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-text-3"></a><u>Команда MGL:</u> <b>text</b><i> <code>x y dx dy</code> 'text' [<code>size=-1.4</code>]</i></dt>
+<dt><a name="index-text-4"></a><u>Команда MGL:</u> <b>text</b><i> <code>x y z dx dy dz</code> 'text' [<code>size=-1.4</code>]</i></dt>
+<dd><p>Выводит строку <var>text</var> от точки {<var>x</var>,<var>y</var>,<var>z</var>} вдоль направления {<var>dx</var>,<var>dy</var>,<var>dz</var>} шрифтом <var>fnt</var> и размером <var>size</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-text-5"></a><u>Команда MGL:</u> <b>text</b><i> ydat 'text' ['fnt'='' <code>size=-1 zval=nan</code>]</i></dt>
+<dt><a name="index-text-6"></a><u>Команда MGL:</u> <b>text</b><i> xdat ydat 'text' ['fnt'='' <code>size=-1 zval=nan</code>]</i></dt>
+<dt><a name="index-text-7"></a><u>Команда MGL:</u> <b>text</b><i> xdat ydat zdat 'text' ['fnt'='' <code>size=-1</code>]</i></dt>
+<dd><p>Выводит строку <var>text</var> вдоль кривой {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} шрифтом <var>font</var>. Строка <var>font</var> может содержать символы: &lsquo;<samp>t</samp>&rsquo; для вывода текста под кривой (по умолчанию), или &lsquo;<samp>T</samp>&rsquo; для вывода текста над кривой. Если массив <var>xdat</var> не указан, то используется массив со значениями равно распределенными вдоль оси x. Если массив <var>zdat</var> не указан, то используется <var>zdat</var>[i] = <var>zval</var>. См. раздел <a href="mgl_ru_3.html#Text-sample">Text &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-title"></a>
+<p><a name="title"></a>
+</p><dl>
+<dt><a name="index-title-1"></a><u>Команда MGL:</u> <b>title</b><i> 'text' ['fnt'='' <code>size=-2</code>]</i></dt>
+<dd><p>Выводит строку <var>text</var> как заголовок (сверху рисунка). Может использоваться в любом месте (даже внутри <a href="#subplot">subplot</a>).
+</p></dd></dl>
+
+<a name="index-fgets"></a>
+<p><a name="fgets"></a>
+</p><dl>
+<dt><a name="index-fgets-1"></a><u>Команда MGL:</u> <b>fgets</b><i> <code>x y</code> 'fname' [<code>n=0</code> 'fnt'='' <code>size=-1.4</code>]</i></dt>
+<dt><a name="index-fgets-2"></a><u>Команда MGL:</u> <b>fgets</b><i> <code>x y z</code> 'fname' [<code>n=0</code> 'fnt'='' <code>size=-1.4</code>]</i></dt>
+<dd><p>Выводит <var>n</var>-ую строку файла <var>fname</var> от точки {<var>x</var>,<var>y</var>,<var>z</var>} шрифтом <var>fnt</var> и размером <var>size</var>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Axis-and-Colorbar"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_0438-_0438-Colorbar"></a>
+<h2 class="section">1.8 Оси и Colorbar</h2>
+
+<p>Эти команды рисуют объекты для &quot;измерения&quot; типа осей координат, цветовой таблицы (colorbar), сетку по осям, обрамляющий параллелепипед и подписи по осям координат. См. также <a href="#Axis-settings">Параметры осей координат</a>.
+</p>
+<a name="index-axis-5"></a>
+<dl>
+<dt><a name="index-axis-6"></a><u>Команда MGL:</u> <b>axis</b><i> ['dir'='xyz' <code>adjust=off</code>]</i></dt>
+<dd><p>Рисует оси координат и метки на них (see section <a href="#Axis-settings">Параметры осей координат</a>) в направлениях, указанных строкой <var>dir</var>. Если строка содержит символ &lsquo;<samp>_</samp>&rsquo;, то подписи меток отображаться не будут. Шрифт подписей определяется командой <a href="#font">font</a>. Метки будут &quot;подогнаны&quot; если <var>adjust</var>=<code>on</code> (с помощью вызова <code>adjust 'dir'</code>). 
+</p></dd></dl>
+
+<a name="index-colorbar"></a>
+<p><a name="colorbar"></a>
+</p><dl>
+<dt><a name="index-colorbar-1"></a><u>Команда MGL:</u> <b>colorbar</b><i> ['sch'='' <code>pos=0</code>]</i></dt>
+<dd><p>Рисует полосу соответствия цвета и числовых значений (colorbar) для цветовой схемы <var>sch</var> (используется текущая для <code>sch=''</code>) с краю от графика. Параметр <var>pos</var> задает местоположение: &lsquo;<samp>0</samp>&rsquo; - справа (по умолчанию), &lsquo;<samp>1</samp>&rsquo; - слева, &lsquo;<samp>2</samp>&rsquo; - сверху, &lsquo;<samp>3</samp>&rsquo; - снизу. Если строка <var>sch</var> содержит &lsquo;<samp>&lt;&gt;^_</samp>&rsquo;, то параметр <var>pos</var> определяется как: <code>pos=0</code> для &lsquo;<samp>&gt;</samp>&rsquo; (справа), <code>pos=1</code> для &lsquo;<samp>&lt;</samp>&rsquo; (слева), <code>pos=2</code> для &lsquo;<samp>^</samp>&rsquo; (сверху), <code>pos=3</code> для &lsquo;<samp>_</samp>&rsquo; (снизу). Если строка содержит &lsquo;<samp>A</samp>&rsquo;, то используются абсолютные координаты (относительно рисунка). См. раздел <a href="mgl_ru_3.html#Dens-sample">Dens &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-colorbar-2"></a><u>Команда MGL:</u> <b>colorbar</b><i> vdat ['sch'='' <code>pos=0</code>]</i></dt>
+<dd><p>Аналогично предыдущему, но для цветовой схемы без сглаживания с заданными значениями <var>vdat</var>. См. раздел <a href="mgl_ru_3.html#ContD-sample">ContD &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-colorbar-3"></a><u>Команда MGL:</u> <b>colorbar</b><i> 'sch' <code>pos x y w h</code></i></dt>
+<dd><p>Аналогично первому, но в произвольном месте графика {<var>x</var>, <var>y</var>} (полагаются в диапазоне [0,1]). Параметры <var>w</var>, <var>h</var> задают относительную ширину и высоту colorbar.
+</p></dd></dl>
+
+<a name="index-grid"></a>
+<p><a name="grid"></a>
+</p><dl>
+<dt><a name="index-grid-1"></a><u>Команда MGL:</u> <b>grid</b><i> ['dir'='xyz' 'pen'='B']</i></dt>
+<dd><p>Рисует линии сетки в направлениях перпендикулярным <var>dir</var>. Шаг сетки такой же как у меток осей координат. Стиль линий задается параметром <var>pen</var> (по умолчанию &ndash; сплошная темно синяя линия &lsquo;<samp>B-</samp>&rsquo;).
+</p></dd></dl>
+
+<a name="index-box"></a>
+<p><a name="box"></a>
+</p><dl>
+<dt><a name="index-box-1"></a><u>Команда MGL:</u> <b>box</b><i> ['stl'='k' <code>ticks=on</code>]</i></dt>
+<dd><p>Рисует ограничивающий параллелепипед цветом &rsquo;stl&rsquo;. При <code>ticks=on</code> рисуются метки в соответствии с текущими настройками осей координат <a href="#axis">axis</a>.
+</p></dd></dl>
+
+<a name="index-xlabel"></a>
+<p><a name="xlabel"></a>
+</p><dl>
+<dt><a name="index-xlabel-1"></a><u>Команда MGL:</u> <b>xlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-ylabel"></a>
+<p><a name="ylabel"></a>
+</p></dd><dt><a name="index-ylabel-1"></a><u>Команда MGL:</u> <b>ylabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-zlabel"></a>
+<p><a name="zlabel"></a>
+</p></dd><dt><a name="index-zlabel-1"></a><u>Команда MGL:</u> <b>zlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-tlabel"></a>
+<p><a name="tlabel"></a>
+</p></dd><dt><a name="index-tlabel-1"></a><u>Команда MGL:</u> <b>tlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><p>Выводит подпись <var>text</var> для x-,y-,z-,t-оси (где &lsquo;<samp>t</samp>&rsquo; &ndash; &ldquo;тернарная&rdquo; ось <em>t=1-x-y</em>). Параметр <var>pos</var> задает положение подписи: при <var>pos</var>=0 &ndash; по центру оси, при <var>pos</var>&gt;0 &ndash; около максимальных значений, при <var>pos</var>&lt;0 &ndash; около минимальных значений. Параметр <var>size</var> задает размер шрифта (по умолчанию в 1.4 раза больше чем у меток). See section <a href="#Text-printing">Вывод текста</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Legend"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-Colorbar" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041bege_043d_0434_0430"></a>
+<h2 class="section">1.9 Легенда</h2>
+
+<p>Эти команды обеспечивают рисование легенды графика (полезно для <a href="#g_t1D-plotting">1D графики</a>). Запись в легенде состоит из двух строк: одна для стиля линии и маркеров, другая с текстом описания (с включенным разбором TeX-их команд), накапливаемые во внутренние массивы с помощью команды <a href="#addlegend">addlegend</a> или опции <a href="#legend">legend</a>. Положение легенды можно задать автоматически или вручную. Параметры <var>font</var> и <var>size</var> задают стиль и размер шрифта. Параметр <var>llen</var> задает относительную ширину примера линии. Ели стиль линии пустой, то соответствующий текст печатается без отступа. Если строка <var>font</var> содержит символ &lsquo;<samp>A</samp>&rsquo;, то координаты легенды считаются относительно картинки (а не текущего subplot). См. раздел <a href="mgl_ru_3.html#Legend-sample">Legend &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<a name="index-legend"></a>
+<p><a name="legend"></a>
+</p><dl>
+<dt><a name="index-legend-1"></a><u>Команда MGL:</u> <b>legend</b><i> [<code>pos=3</code> 'fnt'='rL' <code>size=-1 llen=0.1</code>]</i></dt>
+<dd><p>Рисует легенду из накопленных записей шрифтом <var>fnt</var> размером <var>size</var>. Параметр <var>pos</var> задает положение легенды: &lsquo;<samp>0</samp>&rsquo; &ndash; в нижнем левом углу, &lsquo;<samp>1</samp>&rsquo; &ndash; нижнем правом углу, &lsquo;<samp>2</samp>&rsquo; &ndash; верхнем левом углу, &lsquo;<samp>3</samp>&rsquo; &ndash; верхнем правом углу (по умолчанию).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-legend-2"></a><u>Команда MGL:</u> <b>legend</b><i> <code>x y</code> ['fnt'='rL' <code>size=-1 llen=0.1</code>]</i></dt>
+<dd><p>Рисует легенду из накопленных записей шрифтом <var>font</var> размером <var>size</var>. Положение легенды задается параметрами <var>x</var>, <var>y</var>, которые полагаются нормированными в диапазоне [0,1].
+</p></dd></dl>
+
+<a name="index-addlegend"></a>
+<p><a name="addlegend"></a>
+</p><dl>
+<dt><a name="index-addlegend-1"></a><u>Команда MGL:</u> <b>addlegend</b><i> 'text' 'stl'</i></dt>
+<dd><p>Добавляет описание <var>text</var> кривой со стилем <var>stl</var> (see section <a href="#Line-styles">Стиль линий</a>) во внутренний массив записей легенды. Максимальное число записей 100.
+</p></dd></dl>
+
+<a name="index-clearlegend"></a>
+<p><a name="clearlegend"></a>
+</p><dl>
+<dt><a name="index-clearlegend-1"></a><u>Команда MGL:</u> <b>clearlegend</b></dt>
+<dd><p>Очищает внутренний массив записей легенды.
+</p></dd></dl>
+
+<a name="index-legendbox"></a>
+<p><a name="legendbox"></a>
+</p><dl>
+<dt><a name="index-legendbox-1"></a><u>Команда MGL:</u> <b>legendbox</b><i> <code>val</code></i></dt>
+<dd><p>Включает/выключает рисование прямоугольника вокруг легенды. По умолчанию (=<code>on</code>) прямоугольник рисуется.
+</p></dd></dl>
+
+<a name="index-legendmarks"></a>
+<p><a name="legendmarks"></a>
+</p><dl>
+<dt><a name="index-legendmarks-1"></a><u>Команда MGL:</u> <b>legendmarks</b><i> <code>val</code></i></dt>
+<dd><p>Задает число маркеров в легенде. По умолчанию используется 1 маркер.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t1D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">1.10 1D графики</h2>
+
+<p>Эти команды строят графики для одномерных (1D) массивов. Одномерными считаются массивы, зависящие только от одного параметра (индекса) подобно кривой в параметрической форме {x(i),y(i),z(i)}, i=1...n. Есть 5 основных типов 1D графиков: линия (<a href="#plot">plot</a>), линия с заполнением (<a href="#area">area</a>), ступеньки (<a href="#step">step</a>), прямоугольники (<a href="#bars">bars</a>, <a href="#barh">barh</a>) и вертикальные линии (<a href="#stem">stem</a>). Все эти типы графиков имеют похожий интерфейс. Есть версии для рисования в пространстве и на плоскости. В последнем случае имеется возможность использования только одного массива. Стиль линии и маркеров указывается строковой переменной. Если она равна <code>''</code>. Кроме того, есть еще несколько типов графиков для одномерных массивов, имеющих другой интерфейс и вид: поверхность вращения кривой (<a href="#torus">torus</a>), диаграмма (<a href="#chart">chart</a>), размер ошибки (<a href="#error">error</a>), маркеры переменного размера (<a href="#mark">mark</a>), трубками (<a href="#tube">tube</a>) и т.д. См. раздел <a href="mgl_ru_3.html#g_t1D-plot-sample">Пример графиков 1D данных</a>, для примеров кода и графика.
+</p>
+<p>График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>xdat.nx=ydat.nx=zdat.nx</code>. Если массив <var>xdat</var> не указан, то используется массив со значениями равно распределенными вдоль оси x. Если массив <var>zdat</var> не указан, то используется <var>zdat</var>[i] = <var>zval</var>. Строка <var>stl</var> задает цвет и стиль линии и маркеров (see section <a href="#Line-styles">Стиль линий</a>). По умолчанию (<code>stl=''</code>) рисуется сплошная линия с текущим цветом из палитры.
+</p>
+<a name="index-plot"></a>
+<p><a name="plot"></a>
+</p><dl>
+<dt><a name="index-plot-1"></a><u>Команда MGL:</u> <b>plot</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-plot-2"></a><u>Команда MGL:</u> <b>plot</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-plot-3"></a><u>Команда MGL:</u> <b>plot</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует ломанную линию между точками {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. См. также <a href="#area">area</a>, <a href="#step">step</a>, <a href="#stem">stem</a>, <a href="#tube">tube</a>, <a href="#mark">mark</a>, <a href="#error">error</a>, <a href="#belt">belt</a>, <a href="#tens">tens</a>. См. раздел <a href="mgl_ru_3.html#Plot-sample">Plot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+
+<a name="index-radar"></a>
+<p><a name="radar"></a>
+</p><dl>
+<dt><a name="index-radar-1"></a><u>Команда MGL:</u> <b>radar</b><i> adat ['stl'='' <code>r=-1</code>]</i></dt>
+<dd><p>Рисует radar chart, представляющий собой ломанную с вершинами на радиальных линиях (типа ломанной в полярных координатах). График рисуется для каждой строки если один из массивов матрица. Параметр <var>r</var> задает дополнительный сдвиг данных (т.е. используется <var>a</var>+<var>r</var> вместо <var>a</var>). Если <code>r&lt;0</code>, то <code>r=max(0, -min(a)</code>. Если <var>stl</var> содержит символ &lsquo;<samp>#</samp>&rsquo;, то также рисуется &quot;сетка&quot; (радиальные линии и круг для <var>r</var>). См. также <a href="#plot">plot</a>. См. раздел <a href="mgl_ru_3.html#Radar-sample">Radar &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-tens"></a>
+<p><a name="tens"></a>
+</p><dl>
+<dt><a name="index-tens-1"></a><u>Команда MGL:</u> <b>tens</b><i> ydat cdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tens-2"></a><u>Команда MGL:</u> <b>tens</b><i> xdat ydat cdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tens-3"></a><u>Команда MGL:</u> <b>tens</b><i> xdat ydat zdat cdat ['stl'='']</i></dt>
+<dd><p>Рисует ломанную линию по точкам {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} с цветом, определяемым массивом <var>c</var>[i] (типа графика натяжений). См. также <a href="#plot">plot</a>, <a href="#mesh">mesh</a>, <a href="#fall">fall</a>. См. раздел <a href="mgl_ru_3.html#Tens-sample">Tens &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-area"></a>
+<p><a name="area"></a>
+</p><dl>
+<dt><a name="index-area-1"></a><u>Команда MGL:</u> <b>area</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-area-2"></a><u>Команда MGL:</u> <b>area</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-area-3"></a><u>Команда MGL:</u> <b>area</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует ломанную линию по точками {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} и закрашивает ее вниз до плоскости осей координат. Можно использовать градиентное закрашивание если число указанных цветов в <var>stl</var> равно удвоенному числу кривых для построения. Если строка содержит символ &lsquo;<samp>a</samp>&rsquo;, то линии рисуются одна поверх другой (с суммированием) &ndash; того же эффекта можно достичь вызовом <code>cumsum ydat 'y'</code> перед построением графика. См. также <a href="#plot">plot</a>, <a href="#bars">bars</a>, <a href="#stem">stem</a>, <a href="#region">region</a>. См. раздел <a href="mgl_ru_3.html#Area-sample">Area &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-region"></a>
+<p><a name="region"></a>
+</p><dl>
+<dt><a name="index-region-1"></a><u>Команда MGL:</u> <b>region</b><i> fdat gdat ['stl'='' <code>inside=off</code>]</i></dt>
+<dt><a name="index-region-2"></a><u>Команда MGL:</u> <b>region</b><i> xdat fdat gdat ['stl'='' <code>inside=off</code>]</i></dt>
+<dd><p>Закрашивает область между 2 кривыми {<var>xdat</var>[i], <var>fdat</var>[i]} и {<var>xdat</var>[i], <var>gdat</var>[i]}. При  <code>inside=off</code> закрашивается только область y1&lt;y&lt;y2, в противном случае также будет закращена область y2&lt;y&lt;y1. Можно использовать градиентное закрашивание если число указанных цветов <var>stl</var> равно удвоенному числу кривых для построения. См. также <a href="#area">area</a>, <a href="#bars">bars</a>, <a href="#stem">stem</a>. См. раздел <a href="mgl_ru_3.html#Region-sample">Region &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-stem"></a>
+<p><a name="stem"></a>
+</p><dl>
+<dt><a name="index-stem-1"></a><u>Команда MGL:</u> <b>stem</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-stem-2"></a><u>Команда MGL:</u> <b>stem</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-stem-3"></a><u>Команда MGL:</u> <b>stem</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует вертикальные линии из точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} до плоскости осей координат. См. также <a href="#area">area</a>, <a href="#bars">bars</a>, <a href="#plot">plot</a>, <a href="#mark">mark</a>. См. раздел <a href="mgl_ru_3.html#Stem-sample">Stem &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-bars"></a>
+<p><a name="bars"></a>
+</p><dl>
+<dt><a name="index-bars-1"></a><u>Команда MGL:</u> <b>bars</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-bars-2"></a><u>Команда MGL:</u> <b>bars</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-bars-3"></a><u>Команда MGL:</u> <b>bars</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует вертикальные полосы (прямоугольники) из точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} до плоскости осей координат. Если строка <var>stl</var> содержит символ &lsquo;<samp>a</samp>&rsquo;, то линии рисуются одна поверх другой. Если строка содержит символ &lsquo;<samp>f</samp>&rsquo;, то рисуется график типа waterfall для определения кумулятивного эффекта последовательности положительных и отрицательных значений. Можно использовать разные цвета для положительных и отрицательных значений если число указанных цветов равно удвоенному числу кривых для построения. См. также <a href="#barh">barh</a>, <a href="#area">area</a>, <a href="#stem">stem</a>, <a href="#chart">chart</a>. См. раздел <a href="mgl_ru_3.html#Bars-sample">Bars &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-barh"></a>
+<p><a name="barh"></a>
+</p><dl>
+<dt><a name="index-barh-1"></a><u>Команда MGL:</u> <b>barh</b><i> xdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-barh-2"></a><u>Команда MGL:</u> <b>barh</b><i> ydat xdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует горизонтальные полосы (прямоугольники) из точек {<var>xdat</var>[i], <var>ydat</var>[i]} до плоскости оси y. Если массив <var>ydat</var> не указан, то используется массив со значениями равно распределенными вдоль оси y. Если строка <var>stl</var> содержит символ &lsquo;<samp>a</samp>&rsquo;, то линии рисуются одна поверх другой. Если строка содержит символ &lsquo;<samp>f</samp>&rsquo;, то рисуется график типа waterfall для определения кумулятивного эффекта последовательности положительных и отрицательных значений. Можно использовать разные цвета для положительных и отрицательных значений если число указанных цветов равно удвоенному числу кривых для построения. См. также <a href="#bars">bars</a>. См. раздел <a href="mgl_ru_3.html#Barh-sample">Barh &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-chart"></a>
+<p><a name="chart"></a>
+</p><dl>
+<dt><a name="index-chart-1"></a><u>Команда MGL:</u> <b>chart</b><i> adat ['col'='']</i></dt>
+<dd><p>Рисует цветные полосы (пояса) для массива данных <var>adat</var>. Число полос равно числу строк <var>adat</var> (равно <var>a.ny</var>). Цвет полос поочередно меняется из цветов указанных в <var>col</var> или в палитре (если <code>col=''</code>). Пробел в цветах соответствует прозрачному &quot;цвету&quot;, т.е. соответствующая полоса не рисуется. Ширина полосы пропорциональна значению элемента в <var>adat</var>. График строится только для массивов не содержащих отрицательных значений. Если строка <var>col</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется также черная граница полос. График выглядит лучше в 3d (после вращения системы координат) и/или в полярной системе координат (становится Pie chart). См. раздел <a href="mgl_ru_3.html#Chart-sample">Chart &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-step"></a>
+<p><a name="step"></a>
+</p><dl>
+<dt><a name="index-step-1"></a><u>Команда MGL:</u> <b>step</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-step-2"></a><u>Команда MGL:</u> <b>step</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-step-3"></a><u>Команда MGL:</u> <b>step</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует ступеньки для точек массива {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. См. также <a href="#plot">plot</a>, <a href="#stem">stem</a>, <a href="#tile">tile</a>, <a href="#boxs">boxs</a>. См. раздел <a href="mgl_ru_3.html#Step-sample">Step &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-torus"></a>
+<p><a name="torus"></a>
+</p><dl>
+<dt><a name="index-torus-1"></a><u>Команда MGL:</u> <b>torus</b><i> zdat ['stl'='']</i></dt>
+<dt><a name="index-torus-2"></a><u>Команда MGL:</u> <b>torus</b><i> rdat zdat ['stl'='']</i></dt>
+<dd><p>Рисует поверхность вращения кривой {<var>rdat</var>[i], <var>zdat</var>[i], <var>zdat</var>[i]} относительно оси <a href="#axialdir">axialdir</a>. Если массив <var>rdat</var> не указан, то используется массив со значениями равно распределенными вдоль оси x. См. также <a href="#plot">plot</a>, <a href="#axial">axial</a>. См. раздел <a href="mgl_ru_3.html#Torus-sample">Torus &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-tube"></a>
+<p><a name="tube"></a>
+</p><dl>
+<dt><a name="index-tube-1"></a><u>Команда MGL:</u> <b>tube</b><i> ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-2"></a><u>Команда MGL:</u> <b>tube</b><i> ydat <code>rval</code> ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-3"></a><u>Команда MGL:</u> <b>tube</b><i> xdat ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-4"></a><u>Команда MGL:</u> <b>tube</b><i> xdat ydat <code>rval</code> ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-5"></a><u>Команда MGL:</u> <b>tube</b><i> xdat ydat zdat rdat ['stl'='']</i></dt>
+<dt><a name="index-tube-6"></a><u>Команда MGL:</u> <b>tube</b><i> xdat ydat zdat <code>rval</code> ['stl'='']</i></dt>
+<dd><p>Рисует трубу радиуса <var>rdat</var>[i] (or <var>rval</var>) вдоль кривой между точками {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. См. также <a href="#plot">plot</a>. См. раздел <a href="mgl_ru_3.html#Tube-sample">Tube &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-mark"></a>
+<p><a name="mark"></a>
+</p><dl>
+<dt><a name="index-mark-1"></a><u>Команда MGL:</u> <b>mark</b><i> ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-mark-2"></a><u>Команда MGL:</u> <b>mark</b><i> xdat ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-mark-3"></a><u>Команда MGL:</u> <b>mark</b><i> xdat ydat zdat rdat ['stl'='']</i></dt>
+<dd><p>Рисует маркеры размером <var>rdat</var>[i]*<code>marksize</code> в точках {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Для рисования маркеров одинакового размера можно использовать функцию <code>plot</code> с невидимой линией (со стилем содержащим &lsquo;<samp> </samp>&rsquo;). См. также <a href="#plot">plot</a>, <a href="#textmark">textmark</a>, <a href="#stem">stem</a>, <a href="#error">error</a>. См. раздел <a href="mgl_ru_3.html#Mark-sample">Mark &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-textmark"></a>
+<p><a name="textmark"></a>
+</p><dl>
+<dt><a name="index-textmark-1"></a><u>Команда MGL:</u> <b>textmark</b><i> ydat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-2"></a><u>Команда MGL:</u> <b>textmark</b><i> ydat rdat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-3"></a><u>Команда MGL:</u> <b>textmark</b><i> xdat ydat rdat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-4"></a><u>Команда MGL:</u> <b>textmark</b><i> xdat ydat zdat rdat 'txt' ['stl'='']</i></dt>
+<dd><p>Рисует текст <var>txt</var> как маркер с размером пропорциональным <var>rdat</var>[i]*<code>marksize</code> в точках {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если массив <var>rdat</var> не указан, то полагается <var>rdat</var>[i] = 1. См. также <a href="#plot">plot</a>, <a href="#mark">mark</a>, <a href="#stem">stem</a>. См. раздел <a href="mgl_ru_3.html#TextMark-sample">TextMark &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-error"></a>
+<p><a name="error"></a>
+</p><dl>
+<dt><a name="index-error-1"></a><u>Команда MGL:</u> <b>error</b><i> ydat yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-error-2"></a><u>Команда MGL:</u> <b>error</b><i> xdat ydat yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-error-3"></a><u>Команда MGL:</u> <b>error</b><i> xdat ydat xerr yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует размер ошибки {<var>xerr</var>[i], <var>yerr</var>[i]} в точках {<var>xdat</var>[i], <var>ydat</var>[i]} на плоскости <var>z</var> = <var>zval</var>. Такой график полезен для отображения ошибки эксперимента, вычислений и пр. См. также <a href="#plot">plot</a>. См. раздел <a href="mgl_ru_3.html#Error-sample">Error &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-boxplot"></a>
+<p><a name="boxplot"></a>
+</p><dl>
+<dt><a name="index-boxplot-1"></a><u>Команда MGL:</u> <b>boxplot</b><i> adat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-boxplot-2"></a><u>Команда MGL:</u> <b>boxplot</b><i> xdat adat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует boxplot (называемый также как box-and-whisker diagram или как &quot;ящик с усами&quot;) в точках <var>xdat</var>[i] на плоскости <var>z</var> = <var>zval</var>. Это график, компактно изображающий распределение вероятностей <var>adat</var>[i,j] (минимум, нижний квартиль (Q1), медиана (Q2), верхний квартиль (Q3) и максимум) вдоль второго (j-го) направления. См. также <a href="#plot">plot</a>, <a href="#error">error</a>, <a href="#bars">bars</a>. См. раздел <a href="mgl_ru_3.html#BoxPlot-sample">BoxPlot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t2D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">1.11 2D графики</h2>
+
+<p>Эти команды строят графики для двумерных (2D) массивов. Двумерными считаются массивы, зависящие только от двух параметров (индексов) подобно матрице <em>f(x_i,y_j), i=1...n, j=1...m</em>. Есть несколько основных типов 2D графиков: сплошная поверхность (<a href="#surf">surf</a>), сетчатая поверхность (<a href="#mesh">mesh</a>), поверхность из ящиков (<a href="#boxs">boxs</a>), поверхность из плиток (<a href="#tile">tile</a>), водопад (<a href="#fall">fall</a>), ленточки (<a href="#belt">belt</a>), график плотности (<a href="#dens">dens</a>), линии уровня (<a href="#cont">cont</a>), линии уровня с заполнением (<a href="#contf">contf</a>) и результат их вращения (<a href="#axial">axial</a>). В функциях <a href="#cont">cont</a>, <a href="#contf">contf</a> и <a href="#axial">axial</a> значения уровней можно задавать автоматически и вручную. Можно также нарисовать сетку (<a href="#grid">grid</a>) по массиву данных для улучшения вида графика плотности или линий уровня. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданной поверхности. См. раздел <a href="mgl_ru_3.html#g_t1D-plot-sample">Пример графиков 1D данных</a>, для примеров кода и графика.
+</p>
+<p>Строка <var>sch</var> задает цветовую схему (see section <a href="#Color-scheme">Цветовая схема</a>. Предыдущая цветовая схема используется по умолчанию. Младшие размерности массивов <var>xdat</var>, <var>ydat</var>, <var>zdat</var> должны быть одинаковы <code>xdat.nx=zdat.nx &amp;&amp; ydat.nx=zdat.ny</code> или <code>xdat.nx=ydat.nx=zdat.nx &amp;&amp; xdat.ny=ydat.ny=zdat.ny</code>. Массивы <var>xdat</var> и <var>ydat</var> могут быть векторами (не матрицами как <var>zdat</var>). Если массивы <var>xdat</var>, <var>ydat</var> не указаны, то используются массивы со значениями равно распределенными вдоль осей x, y. График строится для каждого z среза данных.
+</p>
+<a name="index-surf"></a>
+<p><a name="surf"></a>
+</p><dl>
+<dt><a name="index-surf-1"></a><u>Команда MGL:</u> <b>surf</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-surf-2"></a><u>Команда MGL:</u> <b>surf</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует параметрически заданную поверхность {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на поверхности рисуется сетка. См. также <a href="#mesh">mesh</a>, <a href="#dens">dens</a>, <a href="#belt">belt</a>, <a href="#tile">tile</a>, <a href="#boxs">boxs</a>, <a href="#surfc">surfc</a>, <a href="#surfa">surfa</a>. См. раздел <a href="mgl_ru_3.html#Surf-sample">Surf &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-mesh"></a>
+<p><a name="mesh"></a>
+</p><dl>
+<dt><a name="index-mesh-1"></a><u>Команда MGL:</u> <b>mesh</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-mesh-2"></a><u>Команда MGL:</u> <b>mesh</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует сетчатую поверхность, заданную параметрически {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. См. также <a href="#surf">surf</a>, <a href="#fall">fall</a>, <a href="#meshnum">meshnum</a>, <a href="#cont">cont</a>, <a href="#tens">tens</a>. См. раздел <a href="mgl_ru_3.html#Mesh-sample">Mesh &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-fall"></a>
+<p><a name="fall"></a>
+</p><dl>
+<dt><a name="index-fall-1"></a><u>Команда MGL:</u> <b>fall</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-fall-2"></a><u>Команда MGL:</u> <b>fall</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует водопад для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. График удобен для построения нескольких кривых, сдвинутых вглубь друг относительно друга. Если <var>sch</var> содержит &lsquo;<samp>x</samp>&rsquo;, то линии рисуются вдоль x-оси (по умолчанию линии рисуются вдоль y-оси). См. также <a href="#belt">belt</a>, <a href="#mesh">mesh</a>, <a href="#tens">tens</a>, <a href="#meshnum">meshnum</a>. См. раздел <a href="mgl_ru_3.html#Fall-sample">Fall &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-belt"></a>
+<p><a name="belt"></a>
+</p><dl>
+<dt><a name="index-belt-1"></a><u>Команда MGL:</u> <b>belt</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-belt-2"></a><u>Команда MGL:</u> <b>belt</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует ленточки для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Если <var>sch</var> содержит &lsquo;<samp>x</samp>&rsquo;, то линии рисуются вдоль x-оси (по умолчанию линии рисуются вдоль y-оси). См. также <a href="#fall">fall</a>, <a href="#surf">surf</a>, <a href="#plot">plot</a>, <a href="#meshnum">meshnum</a>. См. раздел <a href="mgl_ru_3.html#Belt-sample">Belt &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-boxs"></a>
+<p><a name="boxs"></a>
+</p><dl>
+<dt><a name="index-boxs-1"></a><u>Команда MGL:</u> <b>boxs</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-boxs-2"></a><u>Команда MGL:</u> <b>boxs</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует вертикальные ящики для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. См. также <a href="#surf">surf</a>, <a href="#dens">dens</a>, <a href="#tile">tile</a>, <a href="#step">step</a>. См. раздел <a href="mgl_ru_3.html#Boxs-sample">Boxs &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-tile"></a>
+<p><a name="tile"></a>
+</p><dl>
+<dt><a name="index-tile-1"></a><u>Команда MGL:</u> <b>tile</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-tile-2"></a><u>Команда MGL:</u> <b>tile</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует плитки для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. График может использоваться как 3d обобщение <a href="#step">step</a>. См. также <a href="#surf">surf</a>, <a href="#boxs">boxs</a>, <a href="#step">step</a>, <a href="#tiles">tiles</a>. См. раздел <a href="mgl_ru_3.html#Tile-sample">Tile &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-dens"></a>
+<p><a name="dens"></a>
+</p><dl>
+<dt><a name="index-dens-1"></a><u>Команда MGL:</u> <b>dens</b><i> zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-dens-2"></a><u>Команда MGL:</u> <b>dens</b><i> xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует график плотности для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zVal</var>. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетка. См. также <a href="#surf">surf</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>, <a href="#boxs">boxs</a>, <a href="#tile">tile</a>, <code>dens[xyz]</code>. См. раздел <a href="mgl_ru_3.html#Dens-sample">Dens &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-cont"></a>
+<p><a name="cont"></a>
+</p><dl>
+<dt><a name="index-cont-1"></a><u>Команда MGL:</u> <b>cont</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-cont-2"></a><u>Команда MGL:</u> <b>cont</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует линии уровня для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zval</var> (или при <var>z=vdat</var>[k] если <code>zval==nan</code>). Линии уровня рисуются для <var>z</var>=<var>vdat</var>[k]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетка. Если <var>sch</var> содержит &lsquo;<samp>t</samp>&rsquo; или &lsquo;<samp>T</samp>&rsquo;, то значения <var>vdat</var>[k] будут выведены вдоль контуров над (или под) кривой. См. также <a href="#dens">dens</a>, <a href="#contf">contf</a>, <a href="#contd">contd</a>, <a href="#axial">axial</a>, <code>cont[xyz]</code>. См. раздел <a href="mgl_ru_3.html#Cont-sample">Cont &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cont-3"></a><u>Команда MGL:</u> <b>cont</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-cont-4"></a><u>Команда MGL:</u> <b>cont</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-contf"></a>
+<p><a name="contf"></a>
+</p><dl>
+<dt><a name="index-contf-1"></a><u>Команда MGL:</u> <b>contf</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-contf-2"></a><u>Команда MGL:</u> <b>contf</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zval</var> (или при <var>z=v</var>[k] если <code>zval=nan</code>). Линии уровня рисуются для <var>z</var>=<var>vdat</var>[k]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетка. См. также <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contd">contd</a>, <code>contf[xyz]</code>. См. раздел <a href="mgl_ru_3.html#ContF-sample">ContF &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contf-3"></a><u>Команда MGL:</u> <b>contf</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-contf-4"></a><u>Команда MGL:</u> <b>contf</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-contd"></a>
+<p><a name="contd"></a>
+</p><dl>
+<dt><a name="index-contd-1"></a><u>Команда MGL:</u> <b>contd</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-contd-2"></a><u>Команда MGL:</u> <b>contd</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zval</var> (или при <var>z=v</var>[k] если <code>zval==nan</code>) цветами заданными явно. Линии уровня рисуются для <var>z</var>=<var>vdat</var>[k]. Строка <var>sch</var> задает цвет контуров: цвет k-го контура определяется символом <code>sch[k%strlen(sch)]</code>. См. также <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>, <code>cont[xyz]</code>. См. раздел <a href="mgl_ru_3.html#ContD-sample">ContD &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contd-3"></a><u>Команда MGL:</u> <b>contd</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-contd-4"></a><u>Команда MGL:</u> <b>contd</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-axial"></a>
+<p><a name="axial"></a>
+</p><dl>
+<dt><a name="index-axial-1"></a><u>Команда MGL:</u> <b>axial</b><i> vdat zdat ['sch'='']</i></dt>
+<dt><a name="index-axial-2"></a><u>Команда MGL:</u> <b>axial</b><i> vdat xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует поверхность вращения линии уровня для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Линии уровня рисуются для <var>zdat</var>[i,j]=<var>vdat</var>[k]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Если строка содержит символы &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; или &lsquo;<samp>z</samp>&rsquo;, то ось вращения устанавливается в указанное направление (по умолчанию вдоль оси <a href="#axialdir">axialdir</a>). См. также <a href="#cont">cont</a>, <a href="#contf">contf</a>, <a href="#torus">torus</a>, <a href="#surf3">surf3</a>. См. раздел <a href="mgl_ru_3.html#Axial-sample">Axial &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axial-3"></a><u>Команда MGL:</u> <b>axial</b><i> zdat ['sch'='' <code>num=3</code>]</i></dt>
+<dt><a name="index-axial-4"></a><u>Команда MGL:</u> <b>axial</b><i> xdat ydat zdat ['sch'='' <code>num=3</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-grad"></a>
+<p><a name="grad"></a>
+</p><dl>
+<dt><a name="index-grad-1"></a><u>Команда MGL:</u> <b>grad</b><i> pdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-grad-2"></a><u>Команда MGL:</u> <b>grad</b><i> xdat ydat pdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-grad-3"></a><u>Команда MGL:</u> <b>grad</b><i> xdat ydat zdat pdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Рисует линии градиента скалярного поля <var>pdat</var> заданного параметрически {<var>xdat</var>[i,j], <var>ydat</var>[i,j]} или {<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]}. Число линий пропорционально <var>num</var>. Линии рисуются только с границ интервала при <var>num</var>&lt;0. См. также <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#dens3">dens3</a>, <a href="#cont3">cont3</a>, <a href="#flow">flow</a>. См. раздел <a href="mgl_ru_3.html#Grad-sample">Grad &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+
+<a name="index-grid2"></a>
+<p><a name="grid2"></a>
+</p><dl>
+<dt><a name="index-grid2-1"></a><u>Команда MGL:</u> <b>grid2</b><i> zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-grid2-2"></a><u>Команда MGL:</u> <b>grid2</b><i> xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует плоскую сету для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zval</var>. См. также <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="g_t3D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">1.12 3D графики</h2>
+
+<p>Эти функции строят графики для трехмерных (3D) массивов. Трехмерными считаются массивы, зависящие от трех параметров (индексов) подобно матрице <em>f(x_i,y_j,z_k), i=1...n, j=1...m, k=1...l</em>. Есть 5 основных типов 3D графиков: поверхность постоянного уровня (<a href="#surf3">surf3</a>), график плотности на срезе (<var>dens3</var>), линии уровня на срезе (<a href="#cont3">cont3</a>), закрашенные контуры уровня на срезе (<a href="#contf3">contf3</a>) и график объемной прозрачности типа облака (<a href="#cloud">cloud</a>). В функциях <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a> и <a href="#surf3">surf3</a> значения уровней можно задавать автоматически и вручную. Можно также нарисовать на срезе сетку (<a href="#grid3">grid3</a>) по массиву данных для улучшения вида графика плотности или линий уровня. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива. См. раздел <a href="mgl_ru_3.html#g_t3D-plot-sample">Пример графиков 3D данных</a>, для примеров кода и графика.
+</p>
+<p>Строка <var>sch</var> задает цветовую схему (see section <a href="#Color-scheme">Цветовая схема</a>). Предыдущая цветовая схема используется по умолчанию. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). Если массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> не указаны, то используются массивы со значениями равно распределенными вдоль осей x, y, z.
+</p>
+
+<a name="index-surf3"></a>
+<p><a name="surf3"></a>
+</p><dl>
+<dt><a name="index-surf3-1"></a><u>Команда MGL:</u> <b>surf3</b><i> adat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3-2"></a><u>Команда MGL:</u> <b>surf3</b><i> xdat ydat zdat adat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) при <var>adat</var>(x,y,z)=<var>val</var>. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. См. также <a href="#cloud">cloud</a>, <a href="#dens3">dens3</a>, <a href="#surf3c">surf3c</a>, <a href="#surf3a">surf3a</a>, <a href="#axial">axial</a>. См. раздел <a href="mgl_ru_3.html#Surf3-sample">Surf3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3-3"></a><u>Команда MGL:</u> <b>surf3</b><i> adat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3-4"></a><u>Команда MGL:</u> <b>surf3</b><i> xdat ydat zdat adat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Рисует <var>num</var> поверхностей уровня равномерно распределенных в интервале цветовой шкалы (см. <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-dens3"></a>
+<p><a name="dens3"></a>
+</p><dl>
+<dt><a name="index-dens3-1"></a><u>Команда MGL:</u> <b>dens3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-dens3-2"></a><u>Команда MGL:</u> <b>dens3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Рисует график плотности для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). График рисуется на срезе <var>sval</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Если <var>stl</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на срезе рисуется сетка. См. также <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a>, <a href="#dens">dens</a>, <a href="#grid3">grid3</a>. См. раздел <a href="mgl_ru_3.html#Dens3-sample">Dens3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-densa"></a>
+<p><a name="densa"></a>
+</p><dl>
+<dt><a name="index-densa-1"></a><u>Команда MGL:</u> <b>densa</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-densa-2"></a><u>Команда MGL:</u> <b>densa</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Рисует графики плотности на всех центральных срезах 3d данных.
+</p></dd></dl>
+
+<a name="index-cont3"></a>
+<p><a name="cont3"></a>
+</p><dl>
+<dt><a name="index-cont3-1"></a><u>Команда MGL:</u> <b>cont3</b><i> vdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-cont3-2"></a><u>Команда MGL:</u> <b>cont3</b><i> vdat xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Рисует линии уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Линии рисуются для значений из массива <var>v</var> на срезе <var>sval</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Если <var>stl</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на срезе рисуется сетка. Если <var>sch</var> содержит &lsquo;<samp>t</samp>&rsquo; или &lsquo;<samp>T</samp>&rsquo;, то значения <var>vdat</var>[k] будут выведены вдоль контуров над (или под) кривой. См. также <a href="#dens3">dens3</a>, <a href="#contf3">contf3</a>, <a href="#cont">cont</a>, <a href="#grid3">grid3</a>. См. раздел <a href="mgl_ru_3.html#Cont3-sample">Cont3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cont3-3"></a><u>Команда MGL:</u> <b>cont3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-cont3-4"></a><u>Команда MGL:</u> <b>cont3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-conta"></a>
+<p><a name="conta"></a>
+</p><dl>
+<dt><a name="index-conta-1"></a><u>Команда MGL:</u> <b>conta</b><i> adat ['sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-conta-2"></a><u>Команда MGL:</u> <b>conta</b><i> xdat ydat zdat adat ['sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Рисует линии уровня на всех центральных срезах 3d данных.
+</p></dd></dl>
+
+<a name="index-contf3"></a>
+<p><a name="contf3"></a>
+</p><dl>
+<dt><a name="index-contf3-1"></a><u>Команда MGL:</u> <b>contf3</b><i> vdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-contf3-2"></a><u>Команда MGL:</u> <b>contf3</b><i> vdat xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Линии рисуются для значений из массива <var>v</var> на срезе <var>sval</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Если <var>stl</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на срезе рисуется сетка. См. также <a href="#dens3">dens3</a>, <a href="#cont3">cont3</a>, <a href="#contf">contf</a>, <a href="#grid3">grid3</a>. См. раздел <a href="mgl_ru_3.html#ContF3-sample">ContF3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contf3-3"></a><u>Команда MGL:</u> <b>contf3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-contf3-4"></a><u>Команда MGL:</u> <b>contf3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-contfa"></a>
+<p><a name="contfa"></a>
+</p><dl>
+<dt><a name="index-contfa-1"></a><u>Команда MGL:</u> <b>contfa</b><i> adat ['sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-contfa-2"></a><u>Команда MGL:</u> <b>contfa</b><i> xdat ydat zdat adat ['sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня на всех центральных срезах 3d данных.
+</p></dd></dl>
+
+<a name="index-grid3"></a>
+<p><a name="grid3"></a>
+</p><dl>
+<dt><a name="index-grid3-1"></a><u>Команда MGL:</u> <b>grid3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-grid3-2"></a><u>Команда MGL:</u> <b>grid3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Рисует сетку для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). График рисуется на срезе <var>sval</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. См. также <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a>, <a href="#dens3">dens3</a>, <a href="#grid2">grid2</a>.
+</p></dd></dl>
+
+<a name="index-grida"></a>
+<p><a name="grida"></a>
+</p><dl>
+<dt><a name="index-grida-1"></a><u>Команда MGL:</u> <b>grida</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-grida-2"></a><u>Команда MGL:</u> <b>grida</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Рисует сетку на всех центральных срезах 3d данных.
+</p></dd></dl>
+
+<a name="index-cloud"></a>
+<p><a name="cloud"></a>
+</p><dl>
+<dt><a name="index-cloud-1"></a><u>Команда MGL:</u> <b>cloud</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-cloud-2"></a><u>Команда MGL:</u> <b>cloud</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Рисует облачный график для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). График состоит из кубиков с цветом и прозрачностью пропорциональной значениям <var>adat</var>. Результат похож на облако &ndash; малые значения прозрачны, а большие нет. Число кубиков зависит от <a href="#meshnum">meshnum</a>. Параметр <var>alpha</var> меняет общую прозрачность графика. См. также <a href="#surf3">surf3</a>. См. раздел <a href="mgl_ru_3.html#Cloud-sample">Cloud &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-beam"></a>
+<p><a name="beam"></a>
+</p><dl>
+<dt><a name="index-beam-1"></a><u>Команда MGL:</u> <b>beam</b><i> tr g1 g2 adat <code>rval</code> ['sch'='' <code>flag=0 num=3</code>]</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива <var>adat</var> при постоянном значении <var>adat</var>=<var>val</var>. Это специальный тип графика для <var>adat</var> заданного в сопровождающей системе координат вдоль кривой <var>tr</var> с ортами <var>g1</var>, <var>g2</var> и с поперечным размером <var>rval</var>. Переменная <var>flag</var> &ndash; битовый флаг: &lsquo;<samp>0x1</samp>&rsquo; - рисовать в сопровождающих (не лабораторных) координатах; &lsquo;<samp>0x2</samp>&rsquo; - рисовать проекцию на плоскость <em>\rho-z</em>; &lsquo;<samp>0x4</samp>&rsquo; - рисовать нормированное в каждом сечении поле. Размеры массивов по 1-му индексу <var>tr</var>, <var>g1</var>, <var>g2</var> должны быть nx&gt;2. Размеры массивов по 2-му индексу <var>tr</var>, <var>g1</var>, <var>g2</var> и размер по 3-му индексу массива <var>adat</var> должны быть одинаковы. См. также <a href="#surf3">surf3</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Dual-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0430_0440_043d_044be-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">1.13 Парные графики</h2>
+
+<p>Эти команды строят графики для двух связанных массивов. Есть несколько основных типов 3D графиков: поверхность и поверхность уровня с окраской по второму массиву (<a href="#surfc">surfc</a>, <a href="#surf3c">surf3c</a>), поверхность и поверхность уровня с прозрачностью по второму массиву (<a href="#surfa">surfa</a>, <a href="#surf3a">surf3a</a>), плитки переменного размера (<a href="#tiles">tiles</a>), диаграмма точечного отображения (<a href="#map">map</a>), STFA диаграмма (<a href="#stfa">stfa</a>). В командах <a href="#surf3a">surf3a</a> и <a href="#surf3c">surf3c</a> значения уровней можно задавать автоматически и вручную. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива.
+</p>
+<p>Строка <var>sch</var> задает цветовую схему (see section <a href="#Color-scheme">Цветовая схема</a>). Предыдущая цветовая схема используется по умолчанию. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). Если массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> не указаны, то используются массивы со значениями равно распределенными вдоль осей x, y, z.
+</p>
+<a name="index-surfc"></a>
+<p><a name="surfc"></a>
+</p><dl>
+<dt><a name="index-surfc-1"></a><u>Команда MGL:</u> <b>surfc</b><i> zdat cdat ['sch'='']</i></dt>
+<dt><a name="index-surfc-2"></a><u>Команда MGL:</u> <b>surfc</b><i> xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Рисует параметрически заданную поверхность {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} с цветом, заданным массивом <var>cdat</var>[i,j]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на поверхности рисуется сетка. См. также <a href="#surf">surf</a>, <a href="#surfa">surfa</a>, <a href="#surf3c">surf3c</a>. См. раздел <a href="mgl_ru_3.html#SurfC-sample">SurfC &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-surf3c"></a>
+<p><a name="surf3c"></a>
+</p><dl>
+<dt><a name="index-surf3c-1"></a><u>Команда MGL:</u> <b>surf3c</b><i> adat cdat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3c-2"></a><u>Команда MGL:</u> <b>surf3c</b><i> xdat ydat zdat adat cdat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) при <var>a</var>(x,y,z)=<var>val</var>. Аналогично <a href="#surf3">surf3</a>, но цвет задается массивом <var>cdat</var>. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. См. также <a href="#surf3">surf3</a>, <a href="#surfc">surfc</a>, <a href="#surf3a">surf3a</a>. См. раздел <a href="mgl_ru_3.html#Surf3C-sample">Surf3C &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3c-3"></a><u>Команда MGL:</u> <b>surf3c</b><i> adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3c-4"></a><u>Команда MGL:</u> <b>surf3c</b><i> xdat ydat zdat adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Рисует <var>num</var> поверхностей уровня равномерно распределенных в интервале цветовой шкалы (см. <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-surfa"></a>
+<p><a name="surfa"></a>
+</p><dl>
+<dt><a name="index-surfa-1"></a><u>Команда MGL:</u> <b>surfa</b><i> zdat cdat ['sch'='']</i></dt>
+<dt><a name="index-surfa-2"></a><u>Команда MGL:</u> <b>surfa</b><i> xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Рисует параметрически заданную поверхность {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} с прозрачностью, заданным массивом <var>cdat</var>[i,j]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на поверхности рисуется сетка. См. также <a href="#surf">surf</a>, <a href="#surfc">surfc</a>, <a href="#surf3a">surf3a</a>. См. раздел <a href="mgl_ru_3.html#SurfA-sample">SurfA &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-surf3a"></a>
+<p><a name="surf3a"></a>
+</p><dl>
+<dt><a name="index-surf3a-1"></a><u>Команда MGL:</u> <b>surf3a</b><i> adat cdat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3a-2"></a><u>Команда MGL:</u> <b>surf3a</b><i> xdat ydat zdat adat cdat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) при <var>a</var>(x,y,z)=<var>val</var>. Аналогично <a href="#surf3">surf3</a>, но прозрачность задается массивом <var>cdat</var>. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. См. также <a href="#surf3">surf3</a>, <a href="#surfa">surfa</a>, <a href="#surf3c">surf3c</a>. См. раздел <a href="mgl_ru_3.html#Surf3A-sample">Surf3A &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3a-3"></a><u>Команда MGL:</u> <b>surf3a</b><i> adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3a-4"></a><u>Команда MGL:</u> <b>surf3a</b><i> xdat ydat zdat adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Рисует <var>num</var> поверхностей уровня равномерно распределенных в интервале цветовой шкалы (см. <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-tiles"></a>
+<p><a name="tiles"></a>
+</p><dl>
+<dt><a name="index-tiles-1"></a><u>Команда MGL:</u> <b>tiles</b><i> zdat rdat ['sch'='']</i></dt>
+<dt><a name="index-tiles-2"></a><u>Команда MGL:</u> <b>tiles</b><i> xdat ydat zdat rdat ['sch'='']</i></dt>
+<dd><p>Рисует плитки для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Аналогично <a href="#tile">tile</a>, но размер плиток задается массивов <var>rdat</var>. Это создает эффект &quot;прозрачности&quot; при экспорте в файлы EPS. См. также <a href="#surfa">surfa</a>, <a href="#tile">tile</a>. См. раздел <a href="mgl_ru_3.html#TileS-sample">TileS &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-map"></a>
+<p><a name="map"></a>
+</p><dl>
+<dt><a name="index-map-1"></a><u>Команда MGL:</u> <b>map</b><i> udat vdat ['sch'='' <code>pnts=on</code>]</i></dt>
+<dt><a name="index-map-2"></a><u>Команда MGL:</u> <b>map</b><i> xdat ydat udat vdat ['sch'='' <code>pnts=on</code>]</i></dt>
+<dd><p>Визуализирует точечное отображение для матриц {<var>udat</var>, <var>vdat</var> } параметрически зависящих от координат <var>xdat</var>, <var>ydat</var>. Исходное положение ячейки задает ее цвет. Высота пропорциональна якобиану Jacobian(udat,vdat). График является аналогом диаграммы Арнольда. Если <code>pnts=off</code>, то рисуются грани, иначе цветные точки рисуются в узлах матриц (полезно для &quot;запутанного&quot; отображения). См. раздел <a href="mgl_ru_3.html#Map-sample">Map &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-stfa"></a>
+<p><a name="stfa"></a>
+</p><dl>
+<dt><a name="index-stfa-1"></a><u>Команда MGL:</u> <b>stfa</b><i> re im <code>dn</code> ['sch'='' <code>pnts=on</code>]</i></dt>
+<dt><a name="index-stfa-2"></a><u>Команда MGL:</u> <b>stfa</b><i> xdat ydat re im <code>dn</code> ['sch'='' <code>pnts=on</code>]</i></dt>
+<dd><p>Рисует спектрограмму комплексного массива <var>re</var>+i*<code>im</code> для Фурье размером <var>dn</var> точек. Параметр <var>dn</var> &ndash; любое четное число. Например в 1D случае, результатом будет график плотности от массива <em>res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn</em> размером {int(nx/dn), dn, ny}. Массивы <var>re</var>, <var>im</var> параметрически зависят от координат <var>xdat</var>, <var>ydat</var>. См. раздел <a href="mgl_ru_3.html#STFA-sample">STFA &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+
+
+
+<hr size="6">
+<a name="Vector-fields"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0412e_043a_0442_043e_0440_043d_044be-_043f_043e_043bya"></a>
+<h2 class="section">1.14 Векторные поля</h2>
+
+<p>Эти функции рисуют графики для 2D и 3D векторных полей. Есть несколько типов графиков: просто векторное поле (<a href="#vect">vect</a>), вектора вдоль траектории (<a href="#traj">traj</a>), векторное поле каплями (<a href="#dew">dew</a>), нити тока (<a href="#flow">flow</a>), трубки тока (<a href="#pipe">pipe</a>). Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива.
+</p>
+<p>Строка <var>sch</var> задает цветовую схему (see section <a href="#Color-scheme">Цветовая схема</a>). Предыдущая цветовая схема используется по умолчанию. Все размеры массивов <var>ax</var> и <var>ay</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var> и <var>ax</var> должны быть одинаковы. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>ax</var>). График строится для каждого z среза <var>ax</var>, <var>ay</var> для 2D случаев.
+</p>
+<a name="index-traj"></a>
+<p><a name="traj"></a>
+</p><dl>
+<dt><a name="index-traj-1"></a><u>Команда MGL:</u> <b>traj</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan len=0</code>]</i></dt>
+<dt><a name="index-traj-2"></a><u>Команда MGL:</u> <b>traj</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>len=0</code>]</i></dt>
+<dd><p>Рисует вектора {<var>udat</var>, <var>vdat</var>, <var>wdat</var>} вдоль кривой {<var>xdat</var>, <var>ydat</var>, <var>zdat</var>}. Длина векторов пропорциональна <em>\sqrtudat^2+vdat^2+wdat^2</em>. Строка <var>pen</var> задает цвет (see section <a href="#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=''</code>). Параметр <var>len</var> задает фактор длины векторов (если не нуль) или выбирать длину пропорционально расстоянию между точками кривой (если <var>len</var>=0). См. также <a href="#vect">vect</a>. См. раздел <a href="mgl_ru_3.html#Traj-sample">Traj &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-vect"></a>
+<p><a name="vect"></a>
+</p><dl>
+<dt><a name="index-vect-1"></a><u>Команда MGL:</u> <b>vect</b><i> udat vdat ['sch'='' <code>zval=nan flag=0</code>]</i></dt>
+<dt><a name="index-vect-2"></a><u>Команда MGL:</u> <b>vect</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan flag=0</code>]</i></dt>
+<dd><p>Рисует векторное поле {<var>udat</var>, <var>vdat</var>} параметрически зависящее от координат <var>xdat</var>, <var>ydat</var> на плоскости при <var>z</var>=<var>zval</var>. Длина и цвет векторов пропорциональна <em>\sqrtax^2+ay^2</em>. Число рисуемых векторов зависит от <a href="#meshnum">meshnum</a>. Параметр <var>flag</var> побитовый флаг для настройки вид векторов: <code>1</code> &ndash; двуцветный вектор, <code>2</code> &ndash; одинаковая длина векторов, <code>4</code> &ndash; рисует стрелку в точку сетки, <code>8</code> &ndash; рисует стрелку с серединой в точке сетки, <code>16</code> &ndash; рисует штрихи вместо стрелок. См. также <a href="#flow">flow</a>, <a href="#dew">dew</a>, <a href="#vectc">vectc</a>. См. раздел <a href="mgl_ru_3.html#Vect-sample">Vect &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vect-3"></a><u>Команда MGL:</u> <b>vect</b><i> udat vdat wdat ['sch'='' <code>flag=0</code>]</i></dt>
+<dt><a name="index-vect-4"></a><u>Команда MGL:</u> <b>vect</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>flag=0</code>]</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а длина и цвет пропорциональны <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mgl_ru_3.html#Vect-3D-sample">Vect 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-vectc"></a>
+<p><a name="vectc"></a>
+</p><dl>
+<dt><a name="index-vectc-1"></a><u>Команда MGL:</u> <b>vectc</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-vectc-2"></a><u>Команда MGL:</u> <b>vectc</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Аналогично <a href="#vect">vect</a> c <code>flag=2+16=18</code>. См. раздел <a href="mgl_ru_3.html#VectC-sample">VectC &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vectc-3"></a><u>Команда MGL:</u> <b>vectc</b><i> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-vectc-4"></a><u>Команда MGL:</u> <b>vectc</b><i> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а длина и цвет пропорциональны <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mgl_ru_3.html#VectC-3D-sample">VectC 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-vectl"></a>
+<p><a name="vectl"></a>
+</p><dl>
+<dt><a name="index-vectl-1"></a><u>Команда MGL:</u> <b>vectl</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-vectl-2"></a><u>Команда MGL:</u> <b>vectl</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Аналогично <a href="#vect">vect</a> c <code>flag=1+16=17</code>. См. раздел <a href="mgl_ru_3.html#VectL-sample">VectL &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vectl-3"></a><u>Команда MGL:</u> <b>vectl</b><i> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-vectl-4"></a><u>Команда MGL:</u> <b>vectl</b><i> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а длина и цвет пропорциональны <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mgl_ru_3.html#VectL-3D-sample">VectL 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-dew"></a>
+<p><a name="dew"></a>
+</p><dl>
+<dt><a name="index-dew-1"></a><u>Команда MGL:</u> <b>dew</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-dew-2"></a><u>Команда MGL:</u> <b>dew</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует капли для векторного поля {<var>udat</var>, <var>vdat</var>}, параметрически зависящего от координат <var>xdat</var>, <var>ydat</var> при <var>z=zval</var>. Замечу, что график требует много памяти и процессорного времени для своего создания! Цвет капель пропорционален <em>\sqrtax^2+ay^2</em>. Число капель определяется <a href="#meshnum">meshnum</a>. См. также <a href="#vect">vect</a>. См. раздел <a href="mgl_ru_3.html#Dew-sample">Dew &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-flow"></a>
+<p><a name="flow"></a>
+</p><dl>
+<dt><a name="index-flow-1"></a><u>Команда MGL:</u> <b>flow</b><i> udat vdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-flow-2"></a><u>Команда MGL:</u> <b>flow</b><i> xdat ydat udat vdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dd><p>Рисует нити тока для векторного поля {<var>udat</var>, <var>vdat</var>}, параметрически зависящего от координат <var>xdat</var>, <var>ydat</var> на плоскости при z = <var>zval</var>. Число нитей пропорционально <var>num</var>. При <var>num</var>&gt;0 нитей могут стартовать и изнутри сетки, в противном случае только с краев. Цвет нитей пропорционален <em>\sqrtudat^2+vdat^2</em>. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника). См. также <a href="#pipe">pipe</a>, <a href="#vect">vect</a>. См. раздел <a href="mgl_ru_3.html#Flow-sample">Flow &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-3"></a><u>Команда MGL:</u> <b>flow</b><i> udat vdat wdat ['sch'='' <code>num=3</code>]</i></dt>
+<dt><a name="index-flow-4"></a><u>Команда MGL:</u> <b>flow</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>num=3</code>]</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а цвет пропорционален <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mgl_ru_3.html#Flow-3D-sample">Flow 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-5"></a><u>Команда MGL:</u> <b>flow</b><i> <code>x0 y0</code> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-flow-6"></a><u>Команда MGL:</u> <b>flow</b><i> <code>x0 y0</code> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует нить тока из точки {<var>x0</var>, <var>y0</var>} для векторного поля {<var>udat</var>, <var>vdat</var>}, параметрически зависящего от координат <var>xdat</var>, <var>ydat</var> на плоскости при z = <var>zval</var>. Цвет нити пропорционален <em>\sqrtudat^2+vdat^2</em>. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-7"></a><u>Команда MGL:</u> <b>flow</b><i> <code>x0 y0 z0</code> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-flow-8"></a><u>Команда MGL:</u> <b>flow</b><i> <code>x0 y0 z0</code> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а цвет пропорционален <em>\sqrtudat^2+vdat^2+wdat^2</em>.
+</p></dd></dl>
+
+
+<a name="index-pipe"></a>
+<p><a name="pipe"></a>
+</p><dl>
+<dt><a name="index-pipe-1"></a><u>Команда MGL:</u> <b>pipe</b><i> udat vdat ['sch'='' <code>r0=0.05 num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-pipe-2"></a><u>Команда MGL:</u> <b>pipe</b><i> xdat ydat udat vdat ['sch'='' <code>r0=0.05 num=5 zval=nan</code>]</i></dt>
+<dd><p>Рисует трубки тока для векторного поля {<var>udat</var>, <var>vdat</var>}, параметрически зависящего от координат <var>xdat</var>, <var>ydat</var> на плоскости при z = <var>zval</var>. Число трубок пропорционально <var>num</var>. При <var>num</var>&gt;0 нитей могут стартовать и изнутри сетки, в противном случае только с краев. Цвет и радиус трубок пропорционален <em>\sqrtudat^2+vdat^2</em>. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника). Параметр <var>r0</var> задает радиус трубок. При <var>r0</var>&lt;0 радиус трубок обратно пропорционален их амплитуде. См. также <a href="#flow">flow</a>, <a href="#vect">vect</a>. См. раздел <a href="mgl_ru_3.html#Pipe-sample">Pipe &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-pipe-3"></a><u>Команда MGL:</u> <b>pipe</b><i> udat vdat wdat ['sch'='' <code>r0=0.05 num=3</code>]</i></dt>
+<dt><a name="index-pipe-4"></a><u>Команда MGL:</u> <b>pipe</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>r0=0.05 num=3</code>]</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а цвет пропорционален <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mgl_ru_3.html#Pipe-3D-sample">Pipe 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Other-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-fields" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043e_0447_0438e-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">1.15 Прочие графики</h2>
+
+<p>Это команды, не относящиеся к какой-то специальной категории. Сюда входят функции построения графиков по текстовым формулам (<a href="#fplot">fplot</a>, <a href="#fsurf">fsurf</a>), рисования поверхностей из треугольников (<a href="#triplot">triplot</a>), произвольных точек в пространстве (<a href="#dots">dots</a>) и реконструкции по ним поверхности (<a href="#crust">crust</a>), графики плотности и линии уровня на плоскостях, перпендикулярных осям x, y или z (dens[xyz], cont[xyz], contf[xyz]). Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива. Строка <var>sch</var> задает цветовую схему (see section <a href="#Color-scheme">Цветовая схема</a>). Предыдущая цветовая схема используется по умолчанию.
+</p>
+<a name="index-densx"></a>
+<a name="index-densy"></a>
+<a name="index-densz"></a>
+<p><a name="densx"></a> <a name="densy"></a> <a name="densz"></a>
+</p><dl>
+<dt><a name="index-densx-1"></a><u>Команда MGL:</u> <b>densx</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dt><a name="index-densy-1"></a><u>Команда MGL:</u> <b>densy</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dt><a name="index-densz-1"></a><u>Команда MGL:</u> <b>densz</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dd><p>Рисуют график плотности на x, y или z плоскостях. Если <var>dat</var> &ndash; 3d массив, то выполняется интерполяция к заданному срезу <var>val</var>. Функции полезны для создания проекций 3D массивов на оси координат. См. также <code>cont[xyz], contf[xyz]</code>, <a href="#dens">dens</a>. См. раздел <a href="mgl_ru_3.html#Dens-projection-sample">Dens projection &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-contx"></a>
+<a name="index-conty"></a>
+<a name="index-contz"></a>
+<p><a name="contz"></a> <a name="conty"></a> <a name="contx"></a>
+</p><dl>
+<dt><a name="index-contx-1"></a><u>Команда MGL:</u> <b>contx</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-conty-1"></a><u>Команда MGL:</u> <b>conty</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contz-1"></a><u>Команда MGL:</u> <b>contz</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dd><p>Рисуют линии уровня на x, y или z плоскостях. Если <var>dat</var> &ndash; 3d массив, то выполняется интерполяция к заданному срезу <var>val</var>. Функции полезны для создания проекций 3D массивов на оси координат. См. также <code>dens[xyz], contf[xyz]</code>, <a href="#cont">cont</a>. См. раздел <a href="mgl_ru_3.html#Cont-projection-sample">Cont projection &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-contfx"></a>
+<a name="index-contfy"></a>
+<a name="index-contfz"></a>
+<p><a name="contfz"></a> <a name="contfy"></a> <a name="contfx"></a>
+</p><dl>
+<dt><a name="index-contfx-1"></a><u>Команда MGL:</u> <b>contfx</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contfy-1"></a><u>Команда MGL:</u> <b>contfy</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contfz-1"></a><u>Команда MGL:</u> <b>contfz</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dd><p>Рисуют закрашенные контуры уровня на x, y или z плоскостях. Если <var>dat</var> &ndash; 3d массив, то выполняется интерполяция к заданному срезу <var>val</var>. Функции полезны для создания проекций 3D массивов на оси координат. См. также <code>dens[xyz], cont[xyz]</code>, <a href="#contf">contf</a>.
+</p></dd></dl>
+
+<a name="index-dots"></a>
+<p><a name="dots"></a>
+</p><dl>
+<dt><a name="index-dots-1"></a><u>Команда MGL:</u> <b>dots</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-dots-2"></a><u>Команда MGL:</u> <b>dots</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Рисует произвольно расположенные точки {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если определен массив <var>adat</var>[i], то он задает прозрачность точек. См. также <a href="#crust">crust</a>, <a href="#mark">mark</a>, <a href="#plot">plot</a>. См. раздел <a href="mgl_ru_3.html#Dots-sample">Dots &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-crust"></a>
+<p><a name="crust"></a>
+</p><dl>
+<dt><a name="index-crust-1"></a><u>Команда MGL:</u> <b>crust</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Реконструирует и рисует поверхность по произвольно расположенным точкам {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если строка содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. См. также <a href="#dots">dots</a>, <a href="#triplot">triplot</a>. См. раздел <a href="mgl_ru_3.html#Crust-sample">Crust &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-triplot"></a>
+<p><a name="triplot"></a>
+</p><dl>
+<dt><a name="index-triplot-1"></a><u>Команда MGL:</u> <b>triplot</b><i> idat xdat ydat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-triplot-2"></a><u>Команда MGL:</u> <b>triplot</b><i> idat xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-triplot-3"></a><u>Команда MGL:</u> <b>triplot</b><i> idat xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Рисует поверхность из треугольников. Вершины треугольников задаются индексами <var>idat</var> в массиве точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если строка содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Размер по 1-му индексу массива <var>idat</var> должен быть 3 или больше. Массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> должны иметь одинаковые размеры. Массив <var>cdat</var> задает цвет треугольников (если <var>idat</var>.ny=<var>cdat</var>.nx) или цвет вершин (если <var>xdat</var>.nx=<var>cdat</var>.nx). См. также <a href="#dots">dots</a>, <a href="#crust">crust</a>, <a href="#quadplot">quadplot</a>, <a href="#tricont">tricont</a>.
+</p></dd></dl>
+
+<a name="index-tricont"></a>
+<p><a name="tricont"></a>
+</p><dl>
+<dt><a name="index-tricont-1"></a><u>Команда MGL:</u> <b>tricont</b><i> vdat idat xdat ydat zdat cdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tricont-2"></a><u>Команда MGL:</u> <b>tricont</b><i> vdat idat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tricont-3"></a><u>Команда MGL:</u> <b>tricont</b><i> idat xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Рисует линии уровня поверхности из треугольников при <var>z</var> = <var>zval</var> (или для z=<var>vdat</var>[k] если <code>zval==NAN</code>). Вершины треугольников задаются индексами <var>idat</var> в массиве точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Размер по 1-му индексу массива <var>idat</var> должен быть 3 или больше. Массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> должны иметь одинаковые размеры. Массив <var>cdat</var> (если указан) задает цвет треугольников (если <var>idat</var>.ny=<var>cdat</var>.nx) или цвет вершин (если <var>xdat</var>.nx=<var>cdat</var>.nx). См. также <a href="#triplot">triplot</a>, <a href="#cont">cont</a>.
+</p></dd></dl>
+
+<a name="index-quadplot"></a>
+<p><a name="quadplot"></a>
+</p><dl>
+<dt><a name="index-quadplot-1"></a><u>Команда MGL:</u> <b>quadplot</b><i> idat xdat ydat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-quadplot-2"></a><u>Команда MGL:</u> <b>quadplot</b><i> idat xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-quadplot-3"></a><u>Команда MGL:</u> <b>quadplot</b><i> idat xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Рисует поверхность из четырехугольников. Вершины треугольников задаются индексами <var>idat</var> в массиве точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если строка содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Размер по 1-му индексу массива <var>idat</var> должен быть 4 или больше. Массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> должны иметь одинаковые размеры. Массив <var>cdat</var> задает цвет четырехугольников (если <var>idat</var>.ny=<var>cdat</var>.nx) или цвет вершин (если <var>xdat</var>.nx=<var>cdat</var>.nx). См. также <a href="#triplot">triplot</a>.
+</p></dd></dl>
+
+<a name="index-fplot"></a>
+<p><a name="fplot"></a>
+</p><dl>
+<dt><a name="index-fplot-1"></a><u>Команда MGL:</u> <b>fplot</b><i> 'y(x)' ['pen'='' <code>zval=nan num=100</code>]</i></dt>
+<dd><p>Рисует функцию &lsquo;<samp>y(x)</samp>&rsquo; в плоскости z=<var>zval</var> с координатой &lsquo;<samp>x</samp>&rsquo; в диапазоне x-оси координат. Параметр <var>num</var> задает минимальное число точек по координате для графика. См. также <a href="#plot">plot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fplot-2"></a><u>Команда MGL:</u> <b>fplot</b><i> 'x(t)' 'y(t)' 'z(t)' ['pen'='' <code>num=100</code>]</i></dt>
+<dd><p>Рисует параметрическую кривую {&lsquo;<samp>x(t)</samp>&rsquo;, &lsquo;<samp>y(t)</samp>&rsquo;, &lsquo;<samp>z(t)</samp>&rsquo;}, где координата &lsquo;<samp>t</samp>&rsquo; меняется в диапазоне [0, 1]. Параметр <var>num</var> задает минимальное число точек по координате для графика. См. также <a href="#plot">plot</a>.
+</p></dd></dl>
+
+<a name="index-fsurf"></a>
+<p><a name="fsurf"></a>
+</p><dl>
+<dt><a name="index-fsurf-1"></a><u>Команда MGL:</u> <b>fsurf</b><i> 'z(x,y)' ['sch'='' <code>num=100</code>]</i></dt>
+<dd><p>Рисует поверхность &lsquo;<samp>z(x,y)</samp>&rsquo; с координатами &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; в диапазоне x-,y-осей координат. Параметр <var>num</var> задает минимальное число точек по координатам для графика. См. также <a href="#surf">surf</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fsurf-2"></a><u>Команда MGL:</u> <b>fsurf</b><i> 'x(u,v)' 'y(u,v)' 'z(u,v)' ['sch'='' <code>num=100</code>]</i></dt>
+<dd><p>Рисует параметрическую поверхность {&lsquo;<samp>x(u,v)</samp>&rsquo;, &lsquo;<samp>y(u,v)</samp>&rsquo;, &lsquo;<samp>z(u,v)</samp>&rsquo;}, где координаты &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo; меняются в диапазоне [0, 1]. Параметр <var>num</var> задает минимальное число точек по координатам для графика. См. также <a href="#surf">surf</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Nonlinear-fitting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-create" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-1"></a>
+<h2 class="section">1.16 Nonlinear fitting</h2>
+
+<p>Эти команды подбирают параметры функций для наилучшей аппроксимации данных, т.е. минимизируют сумму <em>\sum_i (f(x_i, y_i, z_i) - a_i)^2/s_i^2</em>. При этом аппроксимирующая функция &lsquo;<samp>f</samp>&rsquo; может зависеть от одного аргумента &lsquo;<samp>x</samp>&rsquo; (1D случай), от двух аргументов &lsquo;<samp>x,y</samp>&rsquo; (2D случай) или от трех аргументов &lsquo;<samp>x,y,z</samp>&rsquo; (3D случай). Функция &lsquo;<samp>f</samp>&rsquo; также может зависеть от параметров. Список параметров задается строкой <var>var</var> (например, &lsquo;<samp>abcd</samp>&rsquo;). Обычно пользователь должен предоставить начальные значения параметров в переменной <var>ini</var>. Однако, при его отсутствии используются нулевые значения.
+</p>
+<p>Команды <a href="#fit">fit</a> и <a href="#fits">fits</a> не рисуют полученные массивы. Они заполняют массив <var>fit</var> по формуле &lsquo;<samp>f</samp>&rsquo; с найденными коэффициентами. При этом, координаты &lsquo;<samp>x,y,z</samp>&rsquo; равно распределены в вдоль осей координат. Число точек в <var>fit</var> выбирается максимальным из размера массива <var>fit</var> и 100. Формулу с найденными коэффициентами можно вывести с помощью команды <a href="#putsfit">putsfit</a>. См. раздел <a href="mgl_ru_3.html#Fitting-sample">Fitting &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<p>Размерность массивов должны быть не меньше, чем число указанных массивов <var>xdat</var>, <var>ydat</var>, <var>zdat</var>. Также подбор коэффициентов будет осуществляться только вдоль указанных направлений (например, вдоль x и y если указаны только <var>xdat</var> и <var>ydat</var>). Если массив <var>xdat</var> не указан, то используется массив со значениями равно распределенными вдоль оси x.
+</p>
+<a name="index-fits"></a>
+<p><a name="fits"></a>
+</p><dl>
+<dt><a name="index-fits-1"></a><u>Команда MGL:</u> <b>fits</b><i> adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-2"></a><u>Команда MGL:</u> <b>fits</b><i> xdat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-3"></a><u>Команда MGL:</u> <b>fits</b><i> xdat ydat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-4"></a><u>Команда MGL:</u> <b>fits</b><i> xdat ydat zdat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-, y- и z-направлений для массива заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) с весовыми коэффициентами <var>sdat</var>[i,j,k].
+</p></dd></dl>
+
+<a name="index-fit"></a>
+<p><a name="fit"></a>
+</p><dl>
+<dt><a name="index-fit-1"></a><u>Команда MGL:</u> <b>fit</b><i> adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-2"></a><u>Команда MGL:</u> <b>fit</b><i> xdat adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-3"></a><u>Команда MGL:</u> <b>fit</b><i> xdat ydat adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-4"></a><u>Команда MGL:</u> <b>fit</b><i> xdat ydat zdat adat 'func' 'var' [ini=0]</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-, y- и z-направлений для массива заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) с весовыми коэффициентами равными 1.
+</p></dd></dl>
+
+<a name="index-putsfit"></a>
+<p><a name="putsfit"></a>
+</p><dl>
+<dt><a name="index-putsfit-1"></a><u>Команда MGL:</u> <b>putsfit</b><i> <code>x y</code> ['pre'='' 'fnt'='' <code>size=-1</code>]</i></dt>
+<dd><p>Печатает последнюю подобранную формулу с найденными коэффициентами в точке {<var>x</var>, <var>y</var>}. Строка <var>pre</var> будет напечатана перед формулой. Все другие параметры такие же как в <a href="#Text-printing">Вывод текста</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Data-create"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-filling" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_043e_0437_0434_0430_043d_0438e-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">1.17 Создание данных</h2>
+
+<a name="index-new"></a>
+<p><a name="new"></a>
+</p><dl>
+<dt><a name="index-new-1"></a><u>Команда MGL:</u> <b>new</b><i> dat [<code>nx=1 ny=1 nz=1</code>]</i></dt>
+<dd><p>Создает/пересоздает массив с именем <var>dat</var> данных указанного размера и заполняет его нулями. Ничего не делает при <var>nx</var>, <var>ny</var>, <var>nz</var> отрицательных или равных нулю.
+</p></dd></dl>
+
+<a name="index-var"></a>
+<p><a name="var"></a>
+</p><dl>
+<dt><a name="index-var-1"></a><u>Команда MGL:</u> <b>var</b><i> dat <code>num v1 [v2=nan]</code></i></dt>
+<dd><p>Создает одномерный массив с именем <var>dat</var> размером <code>num</code> и заполняет его равномерно в диапазоне [<var>v1</var>, <var>v2</var>]. Если <var>v2</var>=<code>nan</code>, то используется <var>v2=v1</var>. 
+</p></dd></dl>
+
+<a name="index-list"></a>
+<p><a name="list"></a>
+</p><dl>
+<dt><a name="index-list-1"></a><u>Команда MGL:</u> <b>list</b><i> dat <code>v1 ...</code></i></dt>
+<dd><p>Создает массив с именем <var>dat</var> и заполняет его числовыми значениями аргументов <code>v1 ...</code>. Команда может создавать 1d- и 2d-массивы. Для создания 2d-массивов требуется указать разделитель строк данных &lsquo;<samp>|</samp>&rsquo;. Размер массива будет [максимальное число чисел в строке * число строк]. Например, команда <code>list 1 | 2 3</code> создаст массив [1 0; 2 3]. Отмечу, что максимальное число аргументов 1000. 
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-list-2"></a><u>Команда MGL:</u> <b>list</b><i> dat d1 ...</i></dt>
+<dd><p>Создает массив с именем <var>dat</var> и заполняет его числами из массивов <code>d1 ...</code>. Команда может создавать 2d- и 3d-массивы (если аргументы 2d массивы). Младшие размерности всех массивов в аргументах должны быть равны размерности <var>d1</var>. Отмечу, что максимальное число аргументов 1000. 
+</p></dd></dl>
+
+<a name="index-copy"></a>
+<p><a name="copy"></a>
+</p><dl>
+<dt><a name="index-copy-1"></a><u>Команда MGL:</u> <b>copy</b><i> dat dat2 ['eq'='' <code>on_axis=on</code>]</i></dt>
+<dt><a name="index-copy-2"></a><u>Команда MGL:</u> <b>copy</b><i> dat <code>val</code></i></dt>
+<dd><p>Создает массив с именем <var>dat</var> и копирует в него данные из массива <var>dat2</var>. При этом, если указан параметр <var>eq</var>, то данные будут изменены по формуле аналогично команде <a href="#fill">fill</a> (для <code>on_axis=on</code>) или <a href="#modify">modify</a> (для <code>on_axis=off</code>).
+</p></dd></dl>
+
+<a name="index-idset"></a>
+<p><a name="idset"></a>
+</p><dl>
+<dt><a name="index-idset-1"></a><u>Команда MGL:</u> <b>idset</b><i> dat 'ids'</i></dt>
+<dd><p>Устанавливает символьные обозначения для колонок данных. Строка должна содержать символы &rsquo;a&rsquo;...&rsquo;z&rsquo; один на колонку (без пробелов).
+</p></dd></dl>
+
+<a name="index-info"></a>
+<p><a name="info"></a>
+</p><dl>
+<dt><a name="index-info-1"></a><u>Команда MGL:</u> <b>info</b><i> dat [<code>detail=off</code>]</i></dt>
+<dd><p>Выводит информацию о массиве (размер, максимальное/минимальное значение, моменты и пр.). При <code>detail=off</code> показывается только краткая информация.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-info-2"></a><u>Команда MGL:</u> <b>info</b><i> 'text'</i></dt>
+<dd><p>Выводит текст <var>text</var> как информацию (предупреждение).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Data-filling"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-create" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Rearrange-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0417_0430_043f_043e_043b_043de_043d_0438e-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">1.18 Заполнение данных</h2>
+<a name="index-fill"></a>
+<a name="index-modify"></a>
+
+<a name="index-fill-1"></a>
+<p><a name="fill"></a>
+</p><dl>
+<dt><a name="index-fill-2"></a><u>Команда MGL:</u> <b>fill</b><i> dat v1 v2 ['dir'='x']</i></dt>
+<dd><p>Заполняет значениями равно распределенными в диапазоне [<var>v1</var>, <var>v2</var>] в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;,&lsquo;<samp>y</samp>&rsquo;,&lsquo;<samp>z</samp>&rsquo;}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fill-3"></a><u>Команда MGL:</u> <b>fill</b><i> dat 'eq' [vdat=0 wdat=0]</i></dt>
+<dd><p>Заполняет значениями вычисленными по формуле <var>eq</var>. Формула представляет собой произвольное выражение, зависящее от переменных &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Координаты &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; полагаются меняющимися в диапазоне осей координат (в отличие от <a href="#modify">modify</a>). Переменная &lsquo;<samp>u</samp>&rsquo; &ndash; значения исходного массива, переменные &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo; &ndash; значения массивов <var>vdat</var>, <var>wdat</var>. Последние могут быть опущены.
+</p></dd></dl>
+
+<a name="index-modify-1"></a>
+<p><a name="modify"></a>
+</p><dl>
+<dt><a name="index-modify-2"></a><u>Команда MGL:</u> <b>modify</b><i> dat 'eq' [<code>dim=0</code>]</i></dt>
+<dt><a name="index-modify-3"></a><u>Команда MGL:</u> <b>modify</b><i> dat 'eq' vdat [wdat=0]</i></dt>
+<dd><p>Заполняет значениями вычисленными по формуле <var>eq</var>. Формула представляет собой произвольное выражение, зависящее от переменных &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Координаты &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; полагаются меняющимися в диапазоне [0,1] (в отличие от <a href="#fill">fill</a>). Переменная &lsquo;<samp>u</samp>&rsquo; &ndash; значения исходного массива, переменные &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo; &ndash; значения массивов <var>vdat</var>, <var>wdat</var>. Последние могут быть опущены. Если указан <var>dim</var>&gt;0, то изменяются только слои &gt;=<var>dim</var>.
+</p></dd></dl>
+
+
+<a name="index-put"></a>
+<p><a name="put"></a>
+</p><dl>
+<dt><a name="index-put-1"></a><u>MGL command:</u> <b>put</b><i> dat <code>val [i=: j=: k=:]</code></i></dt>
+<dd><p>Присваивает значения (под-)массива <var>dat</var>[<var>i</var>, <var>j</var>, <var>k</var>] = <var>val</var>. Индексы <var>i</var>, <var>j</var>, <var>k</var> равные &lsquo;<samp>:</samp>&rsquo; задают значениия <var>val</var> для всего диапазона соответствующего направления(ий). Например, <code>put dat val : 0 :</code> задает <var>dat</var>[i,0,j]=<var>val</var> для i=0...(<var>dat</var>.nx-1), j=0...(<var>dat</var>.nz-1).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-put-2"></a><u>MGL command:</u> <b>put</b><i> dat vdat [<code>i=: j=: k=:</code>]</i></dt>
+<dd><p>Копирует значения из массива <var>vdat</var> в диапазон значений массива <var>dat</var>. Индексы <var>i</var>, <var>j</var>, <var>k</var> равные &lsquo;<samp>:</samp>&rsquo; задают диапазон изменения значений в соответствующих направление(ях). Младшие размерности массива <var>vdat</var> должны быть больше выбранного диапазона массива <var>dat</var>. Например, <code>put dat v : 0 :</code> присвоит <var>dat</var>[i,0,j]=<var>vdat</var>.ny&gt;<var>dat</var>.nz ? <var>vdat</var>[i,j] : <var>vdat</var>[i], где i=0...(<var>dat</var>.nx-1), j=0...(<var>dat</var>.nz-1) и условие vdat.nx&gt;=dat.nx выполнено.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Rearrange-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-filling" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#File-I_002fO" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_0437_043ce_043de_043d_0438e-_0440_0430_0437_043ce_0440_043e_0432-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">1.19 Изменение размеров данных</h2>
+
+<a name="index-rearrange"></a>
+<p><a name="rearrange"></a>
+</p><dl>
+<dt><a name="index-rearrange-1"></a><u>Команда MGL:</u> <b>rearrange</b><i> dat <code>mx [my=0 mz=0]</code></i></dt>
+<dd><p>Изменяет размерность данных без изменения самого массива данных, так что результирующий массив <var>mx</var>*<var>my</var>*<var>mz</var> &lt; nx*ny*nz. Если один из параметров <var>my</var> или <var>mz</var> ноль, то он будет выбран оптимальным образом. Например, если <var>my</var>=0, то будет <var>my</var>=nx*ny*nz/<var>mx</var> и <var>mz</var>=1.
+</p></dd></dl>
+
+<a name="index-extend"></a>
+<p><a name="extend"></a>
+</p><dl>
+<dt><a name="index-extend-1"></a><u>Команда MGL:</u> <b>extend</b><i> dat <code>n1 [n2=0]</code></i></dt>
+<dd><p>Увеличивает размер данных путем вставки (|<var>n1</var>|+1) новых срезов после (для <var>n1</var>&gt;0) или перед (для <var>n1</var>&lt;0) существующими данными. Можно добавить сразу 2 размерности для 1d массива, используя второй параметр <var>n2</var>. Данные в новые срезы будут скопированы из существующих. Например, для <var>n1</var>&gt;0 новый массив будет
+a_ij^new = a_i^old where j=0...<var>n1</var>. Соответственно, для <var>n1</var>&lt;0 новый массив будет a_ij^new = a_j^old, где i=0...|<var>n1</var>|.
+</p></dd></dl>
+
+<a name="index-transpose"></a>
+<p><a name="transpose"></a>
+</p><dl>
+<dt><a name="index-transpose-1"></a><u>Команда MGL:</u> <b>transpose</b><i> dat ['dim'='yxz']</i></dt>
+<dd><p>Транспонирует (меняет порядок размерностей) массив данных. Новый порядок размерностей задается строкой <var>dim</var>.
+</p></dd></dl>
+
+<a name="index-squeeze"></a>
+<p><a name="squeeze"></a>
+</p><dl>
+<dt><a name="index-squeeze-1"></a><u>Команда MGL:</u> <b>squeeze</b><i> dat <code>rx [ry=1 rz=1 sm=off]</code></i></dt>
+<dd><p>Уменьшает размер данных путем удаления элементов с индексами не кратными <var>rx</var>, <var>ry</var>, <var>rz</var> соответственно. Параметр <var>smooth</var> задает использовать сглаживания
+(т.е. out[i]=\sum_{j=i,i+r} a[j]/r) или нет (т.е. out[i]=a[j*r]).
+</p></dd></dl>
+
+<a name="index-crop"></a>
+<p><a name="crop"></a>
+</p><dl>
+<dt><a name="index-crop-1"></a><u>Команда MGL:</u> <b>crop</b><i> dat <code>n1 n2</code> 'dir'</i></dt>
+<dd><p>Обрезает границы данных при <var>i</var>&lt;<var>n1</var> и <var>i</var>&gt;<var>n2</var> (при <var>n2</var>&gt;0) или <var>i</var>&gt;<code>n[xyz]</code>-<var>n2</var> (при <var>n2</var>&lt;=0) вдоль направления <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-delete"></a>
+<p><a name="delete"></a>
+</p><dl>
+<dt><a name="index-delete-1"></a><u>Команда MGL:</u> <b>delete</b><i> dat</i></dt>
+<dd><p>Удаляет массив <var>dat</var> и освобождает использованную память. Может быть полезно для больших неиспользуемых массивов.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-delete-2"></a><u>Команда MGL:</u> <b>delete</b><i> dat 'dir' <code>[pos=off num=0]</code></i></dt>
+<dd><p>Удаляет <var>num</var> срезов вдоль направления <var>dir</var> с позиции <var>pos</var>.
+</p></dd></dl>
+
+<a name="index-insert"></a>
+<p><a name="insert"></a>
+</p><dl>
+<dt><a name="index-insert-1"></a><u>Команда MGL:</u> <b>insert</b><i> dat 'dir' <code>[pos=off num=0]</code></i></dt>
+<dd><p>Вставляет <var>num</var> срезов вдоль направления <var>dir</var> с позиции <var>pos</var> и заполняет их нулями.
+</p></dd></dl>
+
+<hr size="6">
+<a name="File-I_002fO"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Rearrange-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Make-another-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0427_0442e_043d_0438e_002f_0441_043e_0445_0440_0430_043de_043d_0438e-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">1.20 Чтение/сохранение данных</h2>
+
+<a name="index-read"></a>
+<p><a name="read"></a>
+</p><dl>
+<dt><a name="index-read-1"></a><u>Команда MGL:</u> <b>read</b><i> dat 'fname'</i></dt>
+<dd><p>Читает данные из текстового файла с разделителями символом пробела/табуляции с автоматическим определением размера массива. Двойной перевод строки начинает новый срез данных (по направлению z).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-read-2"></a><u>Команда MGL:</u> <b>read</b><i> dat 'fname' <code>mx [my=1 mz=1]</code></i></dt>
+<dd><p>Читает данные из текстового файла с заданными размерами. Ничего не делается если параметры <var>mx</var>, <var>my</var> или <var>mz</var> равны нулю или отрицательны.
+</p></dd></dl>
+
+<a name="index-readmat"></a>
+<p><a name="readmat"></a>
+</p><dl>
+<dt><a name="index-readmat-1"></a><u>Команда MGL:</u> <b>readmat</b><i> dat 'fname' [<code>dim=2</code>]</i></dt>
+<dd><p>Читает данные из текстового файла с размерами, указанными в первых <var>dim</var> числах файла. При этом переменная <var>dim</var> задает размерность (1d, 2d, 3d) данных.
+</p></dd></dl>
+
+<a name="index-readall"></a>
+<p><a name="readall"></a>
+</p><dl>
+<dt><a name="index-readall-1"></a><u>Команда MGL:</u> <b>readall</b><i> dat 'templ' <code>v1 v2 [dv=1 slice=off]</code></i></dt>
+<dd><p>Объединяет данные из нескольких текстовых файлов. Имена файлов определяются вызовом функции <code>sprintf(fname,templ,val);</code>, где <var>val</var> меняется от <var>v1</var> до <var>v2</var> с шагом <var>dv</var>. Данные загружаются один за другим в один и тот же срез данных (при <var>slice</var>=<code>off</code>) или срез-за-срезом (при <var>slice</var>=<code>on</code>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-readall-2"></a><u>Команда MGL:</u> <b>readall</b><i> dat 'templ' <code>[slice=off]</code></i></dt>
+<dd><p>Объединяет данные из нескольких текстовых файлов, чьи имена удовлетворяют шаблону <var>templ</var> (например, <var>templ</var>=<code>&quot;t_*.dat&quot;</code>). Данные загружаются один за другим в один и тот же срез данных (при <var>slice</var>=<code>off</code>) или срез-за-срезом (при <var>slice</var>=<code>on</code>).
+</p></dd></dl>
+
+<a name="index-save"></a>
+<p><a name="save"></a>
+</p><dl>
+<dt><a name="index-save-1"></a><u>Команда MGL:</u> <b>save</b><i> dat 'fname'</i></dt>
+<dd><p>Сохраняет массив данных в текстовый файл.
+</p></dd></dl>
+
+<a name="index-readhdf"></a>
+<p><a name="readhdf"></a>
+</p><dl>
+<dt><a name="index-readhdf-1"></a><u>Команда MGL:</u> <b>readhdf</b><i> dat 'fname' 'dname'</i></dt>
+<dd><p>Читает массив с именем <var>dname</var> из HDF5 или HDF4 файла <var>fname</var>.
+</p></dd></dl>
+
+<a name="index-savehdf"></a>
+<p><a name="savehdf"></a>
+</p><dl>
+<dt><a name="index-savehdf-1"></a><u>Команда MGL:</u> <b>savehdf</b><i> dat 'fname' 'dname'</i></dt>
+<dd><p>Сохраняет массив под именем <var>dname</var> в HDF5 или HDF4 файл <var>fname</var>.
+</p></dd></dl>
+
+<a name="index-import"></a>
+<p><a name="import"></a>
+</p><dl>
+<dt><a name="index-import-1"></a><u>Команда MGL:</u> <b>import</b><i> dat 'fname' 'sch' [<code>v1=0 v2=1</code>]</i></dt>
+<dd><p>Читает данные из растрового файла. RGB значения пикселов преобразуются в число в диапазоне [<var>v1</var>, <var>v2</var>] используя цветовую схему <var>sch</var> (see section <a href="#Color-scheme">Цветовая схема</a>).
+</p></dd></dl>
+
+<a name="index-export"></a>
+<p><a name="export"></a>
+</p><dl>
+<dt><a name="index-export-1"></a><u>Команда MGL:</u> <b>export</b><i> dat 'fname' 'sch' [<code>v1=0 v2=0</code>]</i></dt>
+<dd><p>Сохраняет данные в растровый файл. Числовые значения, нормированные в диапазон [<var>v1</var>, <var>v2</var>], преобразуются в RGB значения пикселов, используя цветовую схему <var>sch</var> (see section <a href="#Color-scheme">Цветовая схема</a>). Если <var>v1</var>&gt;=<var>v2</var>, то значения <var>v1</var>, <var>v2</var> определяются автоматически как минимальное и максимальное значение данных.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Make-another-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#File-I_002fO" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Change-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_043e_0437_0434_0430_043d_0438e-_043d_043e_0432_044b_0445-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">1.21 Создание новых данных</h2>
+
+<a name="index-combine"></a>
+<p><a name="combine"></a>
+</p><dl>
+<dt><a name="index-combine-1"></a><u>Команда MGL:</u> <b>combine</b><i> res adat bdat</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> прямое произведение массивов (наподобие, res[i,j] = adat[i]*bdat[j] и т.д.).
+</p></dd></dl>
+
+<a name="index-evaluate"></a>
+<p><a name="evaluate"></a>
+</p><dl>
+<dt><a name="index-evaluate-1"></a><u>Команда MGL:</u> <b>evaluate</b><i> res dat idat [<code>norm=on</code>]</i></dt>
+<dt><a name="index-evaluate-2"></a><u>Команда MGL:</u> <b>evaluate</b><i> res dat idat jdat [<code>norm=on</code>]</i></dt>
+<dt><a name="index-evaluate-3"></a><u>Команда MGL:</u> <b>evaluate</b><i> res dat idat jdat kdat [<code>norm=on</code>]</i></dt>
+<dd><p>Возвращает массив данных <var>res</var>, полученный в результате интерполяции исходного массива в точках других массивов (например, res[i,j]=dat[idat[i,j],jdat[i,j]]). Размеры массивов <var>idat</var>, <var>jdat</var>, <var>kdat</var> должны совпадать. Координаты в <var>idat</var>, <var>jdat</var>, <var>kdat</var> полагаются нормированными в диапазон [0,1] (при <var>norm</var>=<code>on</code>) или в диапазоны [0,nx], [0,ny], [0,nz] соответственно.
+</p></dd></dl>
+
+<a name="index-hist"></a>
+<p><a name="hist"></a>
+</p><dl>
+<dt><a name="index-hist-1"></a><u>Команда MGL:</u> <b>hist</b><i> res dat <code>num v1 v2 [nsub=0]</code></i></dt>
+<dt><a name="index-hist-2"></a><u>Команда MGL:</u> <b>hist</b><i> res dat wdat <code>num v1 v2 [nsub=0]</code></i></dt>
+<dd><p>Возвращает распределение (гистограмму) <var>res</var> из <var>num</var> точек от значений массива <var>dat</var> в диапазоне [<var>v1</var>, <var>v2</var>]. Массив <var>wdat</var> задает веса элементов (все веса равны 1 если <var>wdat</var> не указан). Параметр <var>nsub</var> задает число дополнительных точек интерполяции (для сглаживания получившейся гистограммы).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-hist-3"></a><u>Команда MGL:</u> <b>hist</b><i> res xdat adat</i></dt>
+<dt><a name="index-hist-4"></a><u>Команда MGL:</u> <b>hist</b><i> res xdat ydat adat</i></dt>
+<dt><a name="index-hist-5"></a><u>Команда MGL:</u> <b>hist</b><i> res xdat ydat zdat adat</i></dt>
+<dd><p>Возвращает распределение (гистограмму) <var>res</var> от значений массива <var>adat</var>, параметрически зависящего от координат {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} в диапазоне осей координат. Массив <var>adat</var> играет роль веса точки. Число точек в результате <var>res</var> &ndash; максимум из размера <var>res</var> и 100.
+</p></dd></dl>
+
+
+<a name="index-momentum"></a>
+<p><a name="momentum"></a>
+</p><dl>
+<dt><a name="index-momentum-1"></a><u>Команда MGL:</u> <b>momentum</b><i> res dat 'how' ['dir'='z']</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> момент (1d массив) данных <var>dat</var> вдоль направления <var>dir</var>. Строка <var>how</var> определяет тип момента. Момент определяется как
+res_k = \sum_ij how(x_i,y_j,z_k) dat_ij/ \sum_ij a_ij
+если <var>dir</var>=&lsquo;<samp>z</samp>&rsquo; и т.д. Координаты &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; &ndash; индексы массива в диапазоне [0,1].
+</p></dd></dl>
+
+<a name="index-sum"></a>
+<p><a name="sum"></a>
+</p><dl>
+<dt><a name="index-sum-1"></a><u>Команда MGL:</u> <b>sum</b><i> res dat 'dir'</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> результат суммирования <var>dat</var> вдоль направления(ий) <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-max"></a>
+<p><a name="max"></a>
+</p><dl>
+<dt><a name="index-max-1"></a><u>Команда MGL:</u> <b>max</b><i> res dat 'dir'</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> максимальное значение <var>dat</var> вдоль направления(ий) <var>dir</var>.
+Gets array which is the maximal data values in given direction or direction(s).
+</p></dd></dl>
+
+<a name="index-min"></a>
+<p><a name="min"></a>
+</p><dl>
+<dt><a name="index-min-1"></a><u>Команда MGL:</u> <b>min</b><i> res dat 'dir'</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> минимальное значение <var>dat</var> вдоль направления(ий) <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-resize"></a>
+<p><a name="resize"></a>
+</p><dl>
+<dt><a name="index-resize-1"></a><u>Команда MGL:</u> <b>resize</b><i> res dat <code>mx [my=1 mz=1]</code></i></dt>
+<dd><p>Возвращает массив данных <var>res</var> размером <var>mx</var>, <var>my</var>, <var>mz</var> со значениями полученными интерполяцией значений массива <var>dat</var>.
+</p></dd></dl>
+
+<a name="index-subdata"></a>
+<p><a name="subdata"></a>
+</p><dl>
+<dt><a name="index-subdata-1"></a><u>Команда MGL:</u> <b>subdata</b><i> res dat <code>xx [yy=: zz=:]</code></i></dt>
+<dd><p>Возвращает в <var>res</var> подмассив массива данных <var>dat</var> с фиксированными значениями индексов с положительными значениями. Например, <code>subdata a b : 2</code> выделяет третью строку (индексы начинаются с нуля), <code>subdata a b 4 :</code> выделяет 5-ую колонку, <code>subdata a b : : 3</code> выделяет 4-ый срез и т.д.
+</p></dd></dl>
+
+<a name="index-trace"></a>
+<p><a name="trace"></a>
+</p><dl>
+<dt><a name="index-trace-1"></a><u>Команда MGL:</u> <b>trace</b><i> res dat</i></dt>
+<dd><p>Возвращает массив <var>ref</var> диагональных элементов <var>dat</var>[i,i] (для 2D данных) или <var>dat</var>[i,i,i] (для 3D данных) где i=0...nx-1. В 1D случае возвращается сам массив данных <var>dat</var>. Размеры массива данных должен быть <var>dat</var>.ny, <var>dat</var>.nz &gt;= <var>dat</var>.nx или <var>dat</var>.ny, <var>dat</var>.nz = 1.
+</p></dd></dl>
+
+<a name="index-transform"></a>
+<p><a name="transform"></a>
+</p><dl>
+<dt><a name="index-transform-1"></a><u>Команда MGL:</u> <b>transform</b><i> dat 'type' real imag</i></dt>
+<dd><p>Выполняет интегральное преобразование комплексных данных <var>real</var>, <var>imag</var> в выбранном направлении и возвращает модуль результата в <var>res</var>. Порядок и тип преобразований задается строкой <var>type</var>: первый символ для x-направления, второй для y-направления, третий для z-направления. Возможные символы: &lsquo;<samp>f</samp>&rsquo; &ndash; прямое преобразование Фурье, &lsquo;<samp>i</samp>&rsquo; &ndash; обратное преобразование Фурье, &lsquo;<samp>s</samp>&rsquo; &ndash; синус преобразование, &lsquo;<samp>c</samp>&rsquo; &ndash; косинус преобразование, &lsquo;<samp>h</samp>&rsquo; &ndash; преобразование Ханкеля, &lsquo;<samp>n</samp>&rsquo; или &lsquo;<samp> </samp>&rsquo; &ndash; нет преобразования.
+</p></dd></dl>
+
+<a name="index-transforma"></a>
+<p><a name="transforma"></a>
+</p><dl>
+<dt><a name="index-transforma-1"></a><u>Команда MGL:</u> <b>transforma</b><i> dat 'type' ampl phase</i></dt>
+<dd><p>Аналогично предыдущему с заданными амплитудой <var>ampl</var> и фазой <var>phase</var> комплексных чисел.
+</p></dd></dl>
+
+<a name="index-stfad"></a>
+<p><a name="stfad"></a>
+</p><dl>
+<dt><a name="index-stfad-1"></a><u>Команда MGL:</u> <b>stfad</b><i> res real imag <code>dn</code> ['dir'='x']</i></dt>
+<dd><p>Выполняет оконное преобразование Фурье длиной <var>dn</var> для комплексных данных <var>real</var>, <var>imag</var> и возвращает модуль результата в <var>res</var>. Например, для <var>dir</var>=&lsquo;<samp>x</samp>&rsquo; результат будет иметь размер {int(nx/dn), dn, ny} и будет равен <em>res[i,j,k]=|\sum_d^dn exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn</em>.
+</p></dd></dl>
+
+<a name="index-pde"></a>
+<p><a name="pde"></a>
+</p><dl>
+<dt><a name="index-pde-1"></a><u>Команда MGL:</u> <b>pde</b><i> res 'ham' ini_re ini_im [<code>dz=0.1 k0=100</code>]</i></dt>
+<dd><p>Решает уравнение в частных производных du/dz = i*k0*<var>ham</var>(p,q,x,y,z,|u|)[u], где p=-i/k0*d/dx, q=-i/k0*d/dy &ndash; псевдо-дифференциальные операторы. Параметры <var>ini_re</var>, <var>ini_im</var> задают начальное распределение поля. Координаты в уравнении и в решении полагаются в диапазоне осей координат. Замечу, что внутри этот диапазон увеличивается в 3/2 раза для уменьшения отражения от границ расчетного интервала. Параметр <var>dz</var> задает шаг по эволюционной координате z. В данный момент использован упрощенный алгоритм, когда все &ldquo;смешанные&rdquo; члена (типа &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) исключаются. Например, в 2D случае это функции типа <em>ham = f(p,z) + g(x,z,u)</em>. При этом допускаются коммутирующие комбинации (типа &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy). Переменная &lsquo;<samp>u</samp>&rsquo; используется для обозначения амплитуды поля |u|. Это позволяет решать нелинейные задачи &ndash; например, нелинейное уравнение Шредингера <code>ham='p^2+q^2-u^2'</code>. Также можно указать мнимую часть для поглощения (типа <code>ham = 'p^2+i*x*(x&gt;0)'</code>), но только если зависимость от &lsquo;<samp>i</samp>&rsquo; линейная, т.е. <em>ham = hre+i*him</em>. См. раздел <a href="mgl_ru_3.html#PDE-sample">PDE &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-ray"></a>
+<p><a name="ray"></a>
+</p><dl>
+<dt><a name="index-ray-1"></a><u>Команда MGL:</u> <b>ray</b><i> res 'ham' <code>x0 y0 z0 p0 q0 v0 [dt=0.1 tmax=10]</code></i></dt>
+<dd><p>Решает систему геометрооптических уравнений d<em>r</em>/dt = d <var>ham</var>/d<em>p</em>, d<em>p</em>/dt = -d <var>ham</var>/d<em>r</em>. Это гамильтоновы уравнения для траектории частицы в 3D случае. Гамильтониан <var>ham</var> может зависеть от координат &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, импульсов &lsquo;<samp>p</samp>&rsquo;=px, &lsquo;<samp>q</samp>&rsquo;=py, &lsquo;<samp>v</samp>&rsquo;=pz и времени &lsquo;<samp>t</samp>&rsquo;: <em>ham = H(x,y,z,p,q,v,t)</em>. Начальная точка (при <code>t=0</code>) задается переменными {<var>x0</var>, <var>y0</var>, <var>z0</var>, <var>p0</var>, <var>q0</var>, <var>v0</var>}. Параметры <var>dt</var> и <var>tmax</var> задают шаг и максимальное время интегрирования. Результат <var>res</var> &ndash; массив {x,y,z,p,q,v,t} с размером {7 * int(<var>tmax</var>/<var>dt</var>+1) }. См. раздел <a href="mgl_ru_3.html#Beam-tracing-sample">Beam tracing &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-qo2d"></a>
+<p><a name="qo2d"></a>
+</p><dl>
+<dt><a name="index-qo2d-1"></a><u>Команда MGL:</u> <b>qo2d</b><i> res 'ham' ini_re ini_im ray [<code>r=1 k0=100</code> xx=0 yy=0]</i></dt>
+<dd><p>Решает уравнение в частных производных du/dt = i*k0*<var>ham</var>(p,q,x,y,|u|)[u] в сопровождающей системе координат, где p=-i/k0*d/dx, q=-i/k0*d/dy &ndash; псевдо-дифференциальные операторы. Параметры <var>ini_re</var>, <var>ini_im</var> задают начальное распределение поля. Параметр <var>ray</var> задает опорный луч для сопровождающей системы координат. Можно использовать луч найденный с помощью <code>ray</code>. Опорный луч должен быть достаточно гладкий, чтобы система координат была однозначной и для исключения ошибок интегрирования. Если массивы <var>xx</var> и <var>yy</var> указаны, то в них записываются декартовы координаты для каждой точки найденного решения. См. также <a href="#pde">pde</a>. См. раздел <a href="mgl_ru_3.html#Beam-tracing-sample">Beam tracing &ndash; пример использования</a>, для примеров кода и графика. 
+</p></dd></dl>
+
+<a name="index-jacobian"></a>
+<p><a name="jacobian"></a>
+</p><dl>
+<dt><a name="index-jacobian-1"></a><u>Команда MGL:</u> <b>jacobian</b><i> res xdat ydat [zdat=0]</i></dt>
+<dd><p>Вычисляет якобиан преобразования {i,j,k} в {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>}, где координаты {i,j,k} полагаются нормированными в интервал [0,1]. Якобиан находится по формуле det||<em>dr_\alpha/d\xi_\beta</em>||, где <em>r</em>={<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} и <em>\xi</em>={i,j,k}. Все размерности всех массивов должны быть одинаковы. Данные должны быть трехмерными если указаны все 3 массива {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} или двумерными если только 2 массива {<var>xdat</var>,<var>ydat</var>}.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Change-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Make-another-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Operators" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_0437_043ce_043de_043d_0438e-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">1.22 Изменение данных</h2>
+
+<p>Эти команды изменяют данные вдоль заданного направления(ий) типа например дифференцирования, интегрирования и т.д. Направление указывается строкой <var>dir</var>, которая может содержать символы &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; и/или &lsquo;<samp>z</samp>&rsquo;, вдоль которых изменения будут применены.
+</p>
+<a name="index-cumsum"></a>
+<p><a name="cumsum"></a>
+</p><dl>
+<dt><a name="index-cumsum-1"></a><u>Команда MGL:</u> <b>cumsum</b><i> dat 'dir'</i></dt>
+<dd><p>Суммирует с накоплением в выбранном направлении(ях).
+</p></dd></dl>
+<a name="index-integrate"></a>
+<p><a name="integrate"></a>
+</p><dl>
+<dt><a name="index-integrate-1"></a><u>Команда MGL:</u> <b>integrate</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет интегрирование (подобно суммированию с накоплением) в выбранном направлении(ях).
+</p></dd></dl>
+<a name="index-diff"></a>
+<p><a name="diff"></a>
+</p><dl>
+<dt><a name="index-diff-1"></a><u>Команда MGL:</u> <b>diff</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет дифференцирование в выбранном направлении(ях).
+</p></dd></dl>
+<dl>
+<dt><a name="index-diff-2"></a><u>Команда MGL:</u> <b>diff</b><i> dat xdat ydat [zdat=0]</i></dt>
+<dd><p>Выполняет дифференцирование данных <var>dat</var>, параметрически зависящих от координат, в направлении <var>xdat</var> с <var>ydat</var>, <var>zdat</var>=constant. Параметр <var>zdat</var> может быть опущен, что соответствует 2D случаю. Используются следующие формулы (2D случай): <em>da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j)</em>, где <em>a_i=da/di, a_j=da/dj</em> обозначает дифференцирование вдоль 1-ой и 2-ой размерности. Похожие формулы используются и в 3D случае. Порядок аргументов можно менять &ndash; например, если данные a(i,j) зависят от координат {x(i,j), y(i,j)}, то обычная производная по &lsquo;<samp>x</samp>&rsquo; будет равна <code>diff a x y</code>, а обычная производная по &lsquo;<samp>y</samp>&rsquo; будет равна <code>diff a y x</code>.
+</p></dd></dl>
+
+<a name="index-diff2"></a>
+<p><a name="diff2"></a>
+</p><dl>
+<dt><a name="index-diff2-1"></a><u>Команда MGL:</u> <b>diff2</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет двойное дифференцирование (как в операторе Лапласа) в выбранном направлении(ях).
+</p></dd></dl>
+
+<a name="index-sinfft"></a>
+<p><a name="sinfft"></a>
+</p><dl>
+<dt><a name="index-sinfft-1"></a><u>Команда MGL:</u> <b>sinfft</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет синус преобразование в выбранном направлении(ях). Синус преобразование есть <em>\sum a_i \sin(k i)</em>.
+</p></dd></dl>
+<a name="index-cosfft"></a>
+<p><a name="cosfft"></a>
+</p><dl>
+<dt><a name="index-cosfft-1"></a><u>Команда MGL:</u> <b>cosfft</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет косинус преобразование в выбранном направлении(ях). Синус преобразование есть <em>\sum a_i \cos(k i)</em>.
+</p></dd></dl>
+<a name="index-hankel"></a>
+<p><a name="hankel"></a>
+</p><dl>
+<dt><a name="index-hankel-1"></a><u>Команда MGL:</u> <b>hankel</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет преобразование Ханкеля в выбранном направлении(ях). Преобразование Ханкеля есть <em>\sum a_i J_0(k i)</em>.
+</p></dd></dl>
+
+
+<a name="index-swap"></a>
+<p><a name="swap"></a>
+</p><dl>
+<dt><a name="index-swap-1"></a><u>Команда MGL:</u> <b>swap</b><i> dat 'dir'</i></dt>
+<dd><p>Меняет местами левую и правую части данных в выбранном направлении(ях). Полезно для отображения результата FFT.
+</p></dd></dl>
+<a name="index-roll"></a>
+<p><a name="roll"></a>
+</p><dl>
+<dt><a name="index-roll-1"></a><u>Команда MGL:</u> <b>roll</b><i> dat 'dir' num</i></dt>
+<dd><p>Сдвигает данные на <var>num</var> ячеек в выбранном направлении(ях). Соответствует замене индекса на <var>i</var>-&gt;(<var>i</var>+<var>num</var>)%<var>n</var>.
+</p></dd></dl>
+
+<a name="index-mirror"></a>
+<p><a name="mirror"></a>
+</p><dl>
+<dt><a name="index-mirror-1"></a><u>Команда MGL:</u> <b>mirror</b><i> dat 'dir'</i></dt>
+<dd><p>Отражает данные в выбранном направлении(ях). Соответствует замене индекса на <var>i</var>-&gt;<var>n</var>-<var>i</var>.
+</p></dd></dl>
+
+<a name="index-sew"></a>
+<p><a name="sew"></a>
+</p><dl>
+<dt><a name="index-sew-1"></a><u>Команда MGL:</u> <b>sew</b><i> dat ['dir'='xyz' <code>da=2*pi</code>]</i></dt>
+<dd><p>Удаляет скачки данных (например, скачки фазы после обратных тригонометрических функций) с периодом <var>da</var> в выбранном направлении(ях).
+</p></dd></dl>
+
+<a name="index-smooth"></a>
+<p><a name="smooth"></a>
+</p><dl>
+<dt><a name="index-smooth-1"></a><u>Команда MGL:</u> <b>smooth</b><i> data <code>type</code> ['dir'='xyz']</i></dt>
+<dd><p>Сглаживает данные в выбранном направлении(ях) методом <var>type</var>. Сейчас поддерживаются 4 метода: <code>0</code> ничего не делает, <code>1</code> линейное усреднение по 3 точкам, <code>2</code> линейное усреднение по 5 точкам, <code>3</code> квадратичное усреднение по 5 точкам.
+</p></dd></dl>
+
+<a name="index-envelop"></a>
+<p><a name="envelop"></a>
+</p><dl>
+<dt><a name="index-envelop-1"></a><u>Команда MGL:</u> <b>envelop</b><i> dat ['dir'='x']</i></dt>
+<dd><p>Находит огибающую данных в выбранном направлении. Только одно направление может быть выбрано за раз.
+</p></dd></dl>
+
+<a name="index-normsl"></a>
+<p><a name="normsl"></a>
+</p><dl>
+<dt><a name="index-normsl-1"></a><u>Команда MGL:</u> <b>normsl</b><i> dat <code>v1 v2</code> ['dir'='z' <code>keep=on sym=off</code>]</i></dt>
+<dd><p>Нормирует данные срез-за-срезом в выбранном направлении <var>dir</var> в интервал [<var>v1</var>,<var>v2</var>]. Если <var>sym</var>=<code>on</code>, то используется симметричный интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Если <var>keep</var>=<code>on</code>, то максимальное значение k-го среза ограничено величиной
+<em>\sqrt\sum a_ij(k)/\sum a_ij(0)</em>.
+</p></dd></dl>
+
+<a name="index-norm"></a>
+<p><a name="norm"></a>
+</p><dl>
+<dt><a name="index-norm-1"></a><u>Команда MGL:</u> <b>norm</b><i> dat <code>v1 v2 [sym=off dim=0]</code></i></dt>
+<dd><p>Нормирует данные в интервал [<var>v1</var>,<var>v2</var>]. Если <var>sym</var>=<code>on</code>, то используется симметричный интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Изменения применяются только к срезам &gt;=<var>dim</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Operators"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Change-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Program-flow" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_043fe_0440_0430_0442_043e_0440_044b"></a>
+<h2 class="section">1.23 Операторы</h2>
+
+<a name="index-multo"></a>
+<p><a name="multo"></a>
+</p><dl>
+<dt><a name="index-multo-1"></a><u>Команда MGL:</u> <b>multo</b><i> dat dat2</i></dt>
+<dd><p>Поэлементно умножает массив <var>dat</var> на <var>dat2</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-multo-2"></a><u>Команда MGL:</u> <b>multo</b><i> dat <code>val</code></i></dt>
+<dd><p>Умножает каждый элемент на число.
+</p></dd></dl>
+
+<a name="index-divto"></a>
+<p><a name="divto"></a>
+</p><dl>
+<dt><a name="index-divto-1"></a><u>Команда MGL:</u> <b>divto</b><i> dat dat2</i></dt>
+<dd><p>Поэлементно делит массив <var>dat</var> на <var>dat2</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-divto-2"></a><u>Команда MGL:</u> <b>divto</b><i> dat <code>val</code></i></dt>
+<dd><p>Делит каждый элемент на число.
+</p></dd></dl>
+
+<a name="index-addto"></a>
+<p><a name="addto"></a>
+</p><dl>
+<dt><a name="index-addto-1"></a><u>Команда MGL:</u> <b>addto</b><i> dat dat2</i></dt>
+<dd><p>Поэлементно прибавляет <var>dat2</var> к массиву <var>dat</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-addto-2"></a><u>Команда MGL:</u> <b>addto</b><i> dat <code>val</code></i></dt>
+<dd><p>Прибавляет число к каждому элементу.
+</p></dd></dl>
+
+<a name="index-subto"></a>
+<p><a name="subto"></a>
+</p><dl>
+<dt><a name="index-subto-1"></a><u>Команда MGL:</u> <b>subto</b><i> dat dat2</i></dt>
+<dd><p>Поэлементно вычитает <var>dat2</var> из массива <var>dat</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-subto-2"></a><u>Команда MGL:</u> <b>subto</b><i> dat <code>val</code></i></dt>
+<dd><p>Вычитает число из каждого элемента.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Program-flow"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Operators" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Command-options" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043eg_0440_0430_043c_043c_0438_0440_043e_0432_0430_043d_0438e"></a>
+<h2 class="section">1.24 Программирование</h2>
+
+<p>Эти команды управляют порядком выполнения других команд (условия, циклы, подпрограммы), (пере-)определяют аргументы скрипта и пр.
+</p>
+<a name="index-chdir"></a>
+<p><a name="chdir"></a>
+</p><dl>
+<dt><a name="index-chdir-1"></a><u>Команда MGL:</u> <b>chdir</b><i> 'path'</i></dt>
+<dd><p>Переходит в папку <var>path</var>.
+</p></dd></dl>
+
+<a name="index-define"></a>
+<p><a name="define"></a>
+</p><dl>
+<dt><a name="index-define-1"></a><u>Команда MGL:</u> <b>define</b><i> $N smth</i></dt>
+<dd><p>Задает <var>N</var>-ый аргумент скрипта равным <var>smth</var>. Отмечу, что <var>smth</var> используется как есть (с символами &lsquo;<samp>'</samp>&rsquo; если присутствуют). Выполняется только подстановка других макроопределений $0...$9, $a...$z. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<dl>
+<dt><a name="index-define-2"></a><u>Команда MGL:</u> <b>define</b><i> name smth</i></dt>
+<dd><p>Определяет константу (скаляр) с именем <code>name</code> и числовым значением <code>smth</code>. Позднее она может быть использована как обычное число.
+</p></dd></dl>
+<a name="index-defchr"></a>
+<p><a name="defchr"></a>
+</p><dl>
+<dt><a name="index-defchr-1"></a><u>Команда MGL:</u> <b>defchr</b><i> $N smth</i></dt>
+<dd><p>Задает <var>N</var>-ый аргумент скрипта равным символу с UTF кодом <var>smth</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<a name="index-defnum"></a>
+<p><a name="defnum"></a>
+</p><dl>
+<dt><a name="index-defnum-1"></a><u>Команда MGL:</u> <b>defnum</b><i> $N smth</i></dt>
+<dd><p>Задает <var>N</var>-ый аргумент скрипта равным числовому значению <var>smth</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<a name="index-defpal"></a>
+<p><a name="defpal"></a>
+</p><dl>
+<dt><a name="index-defpal-1"></a><u>Команда MGL:</u> <b>defpal</b><i> $N smth</i></dt>
+<dd><p>Задает <var>N</var>-ый аргумент скрипта равным символу палитры с индексом, найденным из <var>smth</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+
+<a name="index-call"></a>
+<p><a name="call"></a>
+</p><dl>
+<dt><a name="index-call-1"></a><u>Команда MGL:</u> <b>call</b><i> 'fname' [ARG1 ARG2 ... ARG9]</i></dt>
+<dd><p>Переходит к выполнению (вызывает) подпрограммы <var>fname</var> (или внешнего скрипта, если функция не была найдена). Опциональные аргументы передаются в подпрограмму. См. также <a href="#func">func</a>.
+</p></dd></dl>
+<a name="index-func"></a>
+<p><a name="func"></a>
+</p><dl>
+<dt><a name="index-func-1"></a><u>Команда MGL:</u> <b>func</b><i> 'fname' [narg=0]</i></dt>
+<dd><p>Определяет подпрограмму с именем <var>fname</var> и задает число требуемых аргументов. Аргументы будут помещены в параметры скрипта $1, $2, ... $9. Отмечу, что выполнение основной программы должно быть остановлено до начала определений подпрограмм. См. также <a href="#stop">stop</a>,  <a href="#return">return</a>.
+</p></dd></dl>
+<a name="index-return"></a>
+<p><a name="return"></a>
+</p><dl>
+<dt><a name="index-return-1"></a><u>Команда MGL:</u> <b>return</b></dt>
+<dd><p>Возвращается из подпрограммы.
+</p></dd></dl>
+
+
+<a name="index-if"></a>
+<p><a name="if"></a>
+</p><dl>
+<dt><a name="index-if-1"></a><u>Команда MGL:</u> <b>if</b><i> dat 'cond'</i></dt>
+<dd><p>Начинает блок команд, выполняемый если каждый элемент <var>dat</var> удовлетворяет условию <var>cond</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-if-2"></a><u>Команда MGL:</u> <b>if</b><i> <code>val</code></i></dt>
+<dd><p>Начинает блок команд, выполняемый если <code>val</code> не ноль.
+</p></dd></dl>
+<a name="index-elseif"></a>
+<p><a name="elseif"></a>
+</p><dl>
+<dt><a name="index-elseif-1"></a><u>Команда MGL:</u> <b>elseif</b><i> dat 'cond'</i></dt>
+<dd><p>Начинает блок команд, выполняемый если предыдущий <code>if</code> или <code>elseif</code> не был выполнен и каждый элемент <var>dat</var> удовлетворяет условию <var>cond</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-elseif-2"></a><u>Команда MGL:</u> <b>elseif</b><i> <code>val</code></i></dt>
+<dd><p>Начинает блок команд, выполняемый если предыдущий <code>if</code> или <code>elseif</code> не был выполнен и <code>val</code> не ноль.
+</p></dd></dl>
+<a name="index-else"></a>
+<p><a name="else"></a>
+</p><dl>
+<dt><a name="index-else-1"></a><u>Команда MGL:</u> <b>else</b></dt>
+<dd><p>Начинает блок команд, выполняемый если предыдущий <code>if</code> или <code>elseif</code> не был выполнен.
+</p></dd></dl>
+<a name="index-endif"></a>
+<p><a name="endif"></a>
+</p><dl>
+<dt><a name="index-endif-1"></a><u>Команда MGL:</u> <b>endif</b></dt>
+<dd><p>Заканчивает определение блока <code>if/elseif/else</code>.
+</p></dd></dl>
+
+<a name="index-for"></a>
+<p><a name="for"></a>
+</p><dl>
+<dt><a name="index-for-1"></a><u>Команда MGL:</u> <b>for</b><i> $N <code>v1 v2 [dv=1]</code></i></dt>
+<dd><p>Начинает блок команд, выполняемый в цикле с $<var>N</var>-ым аргументом изменяющимся от <var>v1</var> до <var>v2</var> с шагом <var>dv</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<dl>
+<dt><a name="index-for-2"></a><u>Команда MGL:</u> <b>for</b><i> $N dat</i></dt>
+<dd><p>Начинает блок команд, выполняемый в цикле с $<var>N</var>-ым аргументом пробегающим значения массива <var>dat</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<a name="index-next"></a>
+<p><a name="next"></a>
+</p><dl>
+<dt><a name="index-next-1"></a><u>Команда MGL:</u> <b>next</b></dt>
+<dd><p>Заканчивает блок цикла <code>for</code>.
+</p></dd></dl>
+
+<a name="index-once"></a>
+<p><a name="once"></a>
+</p><dl>
+<dt><a name="index-once-1"></a><u>Команда MGL:</u> <b>once</b><i> <code>val</code></i></dt>
+<dd><p>Определяет код (между <code>once on</code> и <code>once off</code>) который будет выполнен только один раз. Полезно для работы с большими данными в программах типа UDAV.
+</p></dd></dl>
+<a name="index-stop"></a>
+<p><a name="stop"></a>
+</p><dl>
+<dt><a name="index-stop-1"></a><u>Команда MGL:</u> <b>stop</b></dt>
+<dd><p>Останавливает выполнение скрипта.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Command-options"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Program-flow" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Suffixes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_043fc_0438_0438-_043a_043e_043c_0430_043d_0434"></a>
+<h2 class="section">1.25 Опции команд</h2>
+
+<p>Опции команд позволяют легко настроить вид отдельного графика не меняя глобальных настроек для все рисунка. Опции указываются после команды. Каждая опция отделяется от предыдущей символом &lsquo;<samp>;</samp>&rsquo;. Опции работают так, что запоминают текущие настройки рисунка, применяют собственные настройки, выполняют команду и возвращают глобальные настройки обратно. Поэтому использование опций для команд обработки данных или настройки графика бесполезно.
+</p>
+<p>Наиболее часто используемые опции &ndash; <code>xrange, yrange, zrange</code>, устанавливающие границы изменения осей координат (и тем самым автоматических массивов). Например, команда <code>plot y; xrange 0.1 0.9</code> построит кривую с x-координатой равно распределенной в интервале 0.1 ... 0.9, а не вдоль текущей оси x.
+</p>
+<p>Полный список опций:
+<a name="index-alpha-2"></a>
+<a name="index-alphadef-2"></a>
+</p><dl>
+<dt><a name="index-alpha-3"></a><u>Опция MGL:</u> <b>alpha</b><i> <code>val</code></i></dt>
+<dt><a name="index-alphadef-3"></a><u>Опция MGL:</u> <b>alphadef</b><i> <code>val</code></i></dt>
+<dd><p>Задает величину прозрачности поверхности. Значение должно быть в диапазоне [0, 1]. См. также <a href="#alphadef">alphadef</a>
+</p></dd></dl>
+<a name="index-ambient-2"></a>
+<dl>
+<dt><a name="index-ambient-3"></a><u>Опция MGL:</u> <b>ambient</b><i> <code>val</code></i></dt>
+<dd><p>Задает яркость фонового освещения. Значение должно быть в диапазоне [0, 1]. См. также <a href="#ambient">ambient</a>
+</p></dd></dl>
+<a name="index-crange-3"></a>
+<dl>
+<dt><a name="index-crange-4"></a><u>Опция MGL:</u> <b>crange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Задает границы цветовой шкалы. См. также <a href="#crange">crange</a>
+</p></dd></dl>
+<a name="index-xrange-3"></a>
+<dl>
+<dt><a name="index-xrange-4"></a><u>Опция MGL:</u> <b>xrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Задает границы изменения координаты x. См. также <a href="#xrange">xrange</a>
+</p></dd></dl>
+<a name="index-yrange-3"></a>
+<dl>
+<dt><a name="index-yrange-4"></a><u>Опция MGL:</u> <b>yrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Задает границы изменения координаты y. См. также <a href="#yrange">yrange</a>
+</p></dd></dl>
+<a name="index-zrange-3"></a>
+<dl>
+<dt><a name="index-zrange-4"></a><u>Опция MGL:</u> <b>zrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Задает границы изменения координаты z. См. также <a href="#zrange">zrange</a>
+</p></dd></dl>
+<a name="index-cut-4"></a>
+<dl>
+<dt><a name="index-cut-5"></a><u>Опция MGL:</u> <b>cut</b><i> <code>val</code></i></dt>
+<dd><p>Задает обрезание точек за пределами осей координат. См. также <a href="#cut">cut</a>
+</p></dd></dl>
+<a name="index-fontsize"></a>
+<dl>
+<dt><a name="index-fontsize-1"></a><u>Опция MGL:</u> <b>fontsize</b><i> <code>val</code></i></dt>
+<dd><p>Задает размер текста. См. также <a href="#font">font</a>
+</p></dd></dl>
+<a name="index-marksize-2"></a>
+<dl>
+<dt><a name="index-marksize-3"></a><u>Опция MGL:</u> <b>marksize</b><i> <code>val</code></i></dt>
+<dd><p>Задает размер маркеров. См. также <a href="#marksize">marksize</a>
+</p></dd></dl>
+<a name="index-meshnum-2"></a>
+<dl>
+<dt><a name="index-meshnum-3"></a><u>Опция MGL:</u> <b>meshnum</b><i> <code>val</code></i></dt>
+<dd><p>Задает ориентировочное число линий, стрелок, ячеек и пр. См. также <a href="#meshnum">meshnum</a>
+</p></dd></dl>
+<a name="index-legend-3"></a>
+<dl>
+<dt><a name="index-legend-4"></a><u>Опция MGL:</u> <b>legend</b><i> 'txt'</i></dt>
+<dd><p>Добавляет строку &rsquo;txt&rsquo; во внутренний массив записей легенды. Стиль линии и маркера аргумента последней вызванной команды построения <a href="#g_t1D-plotting">1D графики</a>. См. также <a href="#legend">legend</a>
+</p></dd></dl>
+
+<hr size="6">
+<a name="Suffixes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Command-options" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Utilities" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_0443_0444_0444_0438_043a_0441_044b-_043fe_0440e_043ce_043d_043d_044b_0445"></a>
+<h2 class="section">1.26 Суффиксы переменных</h2>
+
+<p>Суффиксы позволяют быстро получить числовую характеристику (размер, максимальное или минимальное значение, сумму элементов и т.д.) массива данных и использовать ее как число (скаляр) в аргументах. Суффиксы начинаются с точки &lsquo;<samp>.</samp>&rsquo; сразу после (без пробелов) имени переменной и временного массива. Например, <code>a.nx</code> даст размер массива <var>a</var> по оси х, <code>b(1).max</code> даст максимальное значение второй строки массива <var>b</var>, <code>(c(:,0)^2).sum</code> даст сумму квадратов элементов первой колонки массива <var>c</var> и т.д.
+</p>
+<p>Полный список суффиксов:
+</p><dl compact="compact">
+<dt> <strong>nx, ny, nz</strong></dt>
+<dd><p>Размер массива в направлении x, y, z соответственно.
+</p></dd>
+<dt> <strong>max</strong></dt>
+<dd><p>Максимальное значение массива.
+</p></dd>
+<dt> <strong>min</strong></dt>
+<dd><p>Минимальное значение массива.
+</p></dd>
+<dt> <strong>sum</strong></dt>
+<dd><p>Сумма элементов массива.
+</p></dd>
+<dt> <strong>a</strong></dt>
+<dd><p>Первый элемент массива (элемент с индексами 0,0,0).
+</p></dd>
+<dt> <strong>fst</strong></dt>
+<dd><p>Первое не нулевое значение массива.
+</p></dd>
+<dt> <strong>lst</strong></dt>
+<dd><p>Последнее не нулевое значение массива.
+</p></dd>
+<dt> <strong>mx, my, mz</strong></dt>
+<dd><p>Положение максимума в направлении x, y, z соответственно.
+</p></dd>
+<dt> <strong>ax, ay, az, aa</strong></dt>
+<dd><p>Положение центра масс в направлении x, y, z соответственно или среднее значение массива.
+</p></dd>
+<dt> <strong>wx, wy, wz, wa</strong></dt>
+<dd><p>Ширина в направлении x, y, z соответственно или дисперсия элементов массива.
+</p></dd>
+<dt> <strong>sx, sy, sz, sa</strong></dt>
+<dd><p>Асимметрия в направлении x, y, z соответственно или элементов массива.
+</p></dd>
+<dt> <strong>kx, ky, kz, ka</strong></dt>
+<dd><p>Эксцесс в направлении x, y, z соответственно или элементов массива.
+</p></dd>
+</dl>
+
+<hr size="6">
+<a name="Utilities"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Suffixes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0423_0442_0438_043b_0438_0442_044b-_0434_043bya-MGL"></a>
+<h2 class="section">1.27 Утилиты для MGL</h2>
+
+<p>MathGL содержит несколько программ для работы со скриптами MGL. Есть утилита для сохранения в растровое (<code>mgl2png</code>, <code>mgl2gif</code>) или векторное (<code>mgl2eps</code>, <code>mgl2svg</code>) изображения. Программа <code>mglview</code> показывает результат выполнения скрипта MGL и позволяет вращать и настраивать график. Также можно транслировать MGL скрипт в C++ файл с помощью программы <code>mgl2cpp</code>.
+</p>
+<p>Все эти программы имеют схожий набор аргументов. Первым идет имя скрипта, а вторым идет имя выходного файлы (может быть опущено), последние аргументы &ndash; опции скрипта и программы. К опциям относятся параметры скрипта (это <code>$0, $1, ... $9</code>) и настройки локали. Параметры скрипта имеют формат &lsquo;<samp>-Nval</samp>&rsquo;, где N=0,1...9 &ndash; номер параметра, val &ndash; его значние. Например, опция &lsquo;<samp>-1test</samp>&rsquo; заменит <code>$1</code> на &lsquo;<samp>test</samp>&rsquo; в скрипте. Опция -Lval устанавливает локаль в значение val. Например, &lsquo;<samp>-Lutf8</samp>&rsquo; будет использовать UTF-8 в скрипте.
+</p>
+<p>Также можно создавать анимированные изображения GIF или набор JPEG файлов с именами &lsquo;<samp>frameNNNN.jpg</samp>&rsquo; (где &lsquo;<samp>NNNN</samp>&rsquo; &ndash; номер кадра). Для этого в скрипте надо указать параметры анимации для каждого кадра (строками с коментариями <code>##a val</code> или опциями &lsquo;<samp>-Aval</samp>&rsquo;) или в цикле (строкой с комментарием <code>##с v1 v2 [dv]</code> или опцию &lsquo;<samp>-Cn1:n2</samp>&rsquo;), которые будут подставлены в качестве параметра <code>$0</code> при последовательном вызове скрипта. Для сохранения кадров в JPEG просто добавьте команду <code>write ''</code> в конце скрипта.
+</p>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_2.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_2.html
new file mode 100644
index 0000000..efe2978
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_2.html
@@ -0,0 +1,1271 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: 2. MathGL examples</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: 2. MathGL examples">
+<meta name="keywords" content="Язык MGL для версии 1.11: 2. MathGL examples">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Examples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_1.html#Utilities" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru_1.html#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL-examples"></a>
+<h1 class="chapter">2. MathGL examples</h1>
+
+<p>This chapter contain information about basic and advanced MathGL, hints and samples for all types of graphics. I recommend you read first 2 sections one after another and at least look on &ldquo;Hints&rdquo; section. Also I recommend you to look at <a href="mgl_ru_1.html#General-concepts">Основные принципы</a>. Sample code for some of these examples can be found in <a href="http://mathgl.sf.net/pictures.html">http://mathgl.sf.net/pictures.html</a> and in <a href="mgl_ru_3.html#Samples">Примеры использования MathGL</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Basic-usage">2.1 Basic usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Advanced-usage">2.2 Advanced usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-handling">2.3 Data handling</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-plotting">2.4 Data plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Hints">2.5 Hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Basic-usage"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Examples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Basic-usage-1"></a>
+<h2 class="section">2.1 Basic usage</h2>
+
+<p>MGL script can be used by several manners. Each has positive and negative sides:
+</p><ul>
+<li>
+<em>The using of MGL in UDAV.</em>
+
+<p>Positive side is the possibility to view the plot at once and to modify it, rotate, zoom or switch on transparency or lighting) by hand or by mouse. Negative sides are: the need of X-terminal.
+</p>
+</li><li>
+<em>Direct writing to file in bitmap or vector format without creation of graphical window.</em>
+
+<p>Positive aspects are: batch processing of similar data set, for example, a set of resulting data files for different calculation parameters), running from the console program, including the cluster calculation), fast and automated drawing, saving pictures for further analysis, or demonstration). Negative sides are: the usage of the external program for picture viewing. Also, the data plotting is non-visual. So, you have to imagine the picture, view angles, lighting and so on) before the plotting. I recommend to use graphical window for determining the optimal parameters of plotting on the base of some typical data set. And later use these parameters for batch processing in console program.
+</p>
+<p>In this case you can use a set of programs: <code>mgl2png</code>, <code>mgl2gif</code>, <code>mgl2eps</code>, <code>mgl2svg</code> or <code>mglview</code> for viewing.
+</p></li></ul>
+
+<p>The simplest script is
+</p><pre class="verbatim">box         # draw bounding box
+axis        # draw axis
+fplot 'x^3' # draw some function
+</pre>
+<p>Just type it in UDAV and press F5. Also you can save it in text file &lsquo;<samp>test.mgl</samp>&rsquo; and type in the console <code>mgl2png test.mgl</code> what produce file &lsquo;<samp>test.mgl.png</samp>&rsquo; with resulting picture.
+</p>
+<hr size="6">
+<a name="Advanced-usage"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Basic-usage" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Subplots" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Advanced-usage-1"></a>
+<h2 class="section">2.2 Advanced usage</h2>
+
+<p>Now I show several non-obvious features of MGL: several subplots in a single picture, curvilinear coordinates, text printing and so on. Generally you may miss this section at first reading, but I don&rsquo;t recommend it.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Subplots">2.2.1 Subplots</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-grids">2.2.2 Axis and grids</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Curvilinear-coordinates">2.2.3 Curvilinear coordinates</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing-example">2.2.4 Text printing example</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Subplots"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Advanced-usage" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-grids" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Subplots-1"></a>
+<h3 class="subsection">2.2.1 Subplots</h3>
+
+<p>Let me demonstrate possibilities of axes transformation. MathGL has the following functions: <code>SubPlot</code>, <code>InPlot</code>, <code>Aspect</code> and <code>Rotate</code>, see section <a href="mgl_ru_1.html#Transformation-matrix">Матрица преобразования</a>). The order of their calling is strictly determined. First, one changes the position of axes in image area, functions <code>SubPlot</code> and <code>InPlot</code>). After that one may rotate the plot, function <code>Rotate</code>). Finally, one may change aspects of axes, function <code>Aspect</code>). The following code illustrates the aforesaid it:
+</p><pre class="verbatim">subplot 2 2 0:box
+text -1 1.1 'Just box' 'L'
+inplot 0.2 0.5 0.7 1:box
+text 0 1.2 'Inplot example'
+
+subplot 2 2 1
+rotate 60 40:aspect 1 1 1
+box:text 1 1 1.5 'rotate only' 'R'
+
+subplot 2 2 2
+rotate 60 40:aspect 1 1 2
+box:text 0 0 2 'aspect and rotate'
+
+subplot 2 2 3
+rotate 60 40:aspect 1 2 2
+box:text 0 0 1.5 'Aspect in other direction'
+</pre><p>Here I used function <code>text</code> for printing the text in arbitrary position of picture, see section <a href="mgl_ru_1.html#Text-printing">Вывод текста</a>). Text coordinates and size are connected with axes. However, text coordinates may be everywhere, including the outside the bounding box. I shall show its features later in See section <a href="#Text-printing-example">Text printing example</a>.
+</p>
+<p>Note that several commands can be placed in a string if they are separated by &lsquo;<samp>:</samp>&rsquo; symbol.
+</p>
+<div class="float">
+<img src="../png/sample1.png" alt="../png/sample1">
+
+</div><p><strong>Example of several subplots on the single picture.
+</strong>
+</p>
+<hr size="6">
+<a name="Axis-and-grids"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Subplots" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Curvilinear-coordinates" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-and-grids-1"></a>
+<h3 class="subsection">2.2.2 Axis and grids</h3>
+
+<p>MathGL library can draw not only the bounding box but also the axes, grids, labels and so on. The limits of axes and their origin (the point of intersection) are determined by function <code>axis</code>. Also you can use <code>xrange, yrange, zrange</code> functions (see section <a href="mgl_ru_1.html#Axis-settings">Параметры осей координат</a>). Ticks on axis are specified by functions <code>xtick, ytick, ztick, ttick</code>. First argument the direction for each change will be applied. Second argument gives the step between ticks (if positive) or gives the number of ticks on the axis (if negative) or set to use logarithmic ticks (if zero). Third argument gives numbers of sub-ticks between ticks (default is zero). Last argument define the initial ticks position.
+</p>
+<p>Function <code>Axis</code> draws axes. Its textual string shows in which directions the axis or axes will be drawn (by default <code>'xyz'</code>, function draws axes in all directions). Function <code>Grid</code> draws grid perpendicularly to specified directions. Example of axes and grid drawing is:
+</p><pre class="verbatim">subplot 2 2 0
+xtick 0.4 3     # sets tick step to 0.5
+ytick 0.4 3     # and draws 3 subticks
+box             # should be after the ticks change
+axis 'xy': grid
+text 0 1.3 1 'axis and grid'
+
+xtick -5: ytick -5  # restore back
+subplot 2 2 1:rotate 60 40
+origin 0 0 0
+axis
+xlabel 'x' 1
+ylabel 'y' 1
+zlabel 'z' 1
+text 0 0 1.5 'axis and labels'
+
+subplot 2 2 2:rotate 60 40
+xtick 0.2: ytick 0.2: ztick 0.2 # too low step of ticks
+origin -1 -1 -1
+axis:grid
+text 0 0 1.5 'shift origin and add grid'
+text 0 0 1.2 '(note, too many ticks)'
+
+subplot 2 2 3:rotate 60 40
+xtick -6: ytick -6  # decrease the number of ticks
+axis 'yz'
+ylabel 'y axis'
+zlabel 'z axis'
+text 0 0 1.5 'remove x axis, and'
+text 0 0 1.2 'decrease number of ticks'
+</pre>
+<p>This example shows the importance of the correct choosing of the number of ticks on axis. If tick step is too small then its text may overlap and becomes unreadable. This code has the example of <code>Label</code> function. It draws label for axis in specified direction. The text position on axis is specified by third argument of <code>Label</code> function. If it is positive then then text is drawn near the axis maximum, if negative then the same takes place near the minimum of axis, if zero - then at the center of axis.
+</p>
+<div class="float">
+<img src="../png/sample2.png" alt="../png/sample2">
+
+</div><p><strong>Example of setting up axis range and axis ticks.
+</strong>
+</p>
+<hr size="6">
+<a name="Curvilinear-coordinates"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-grids" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing-example" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Curvilinear-coordinates-1"></a>
+<h3 class="subsection">2.2.3 Curvilinear coordinates</h3>
+
+
+<p>Now let use curvilinear coordinates. In difference from other systems of plot creation, MathGL uses textual formulas for connection of the old (data) and new (output) coordinates. This allows one to plot in arbitrary coordinates. The following code plots the line <var>y</var>=0, <var>z</var>=0 in Cartesian, polar, parabolic and spiral coordinates:
+</p><pre class="verbatim">new x 50: new y 50: new z 50
+fill y 0.5 0.5: fill x -1 1 # creates data arrays
+origin -1 1 -1
+
+subplot 2 2 0:rotate 60 40
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'cartesian'
+
+subplot 2 2 1:rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'cylindrical'
+
+subplot 2 2 2:rotate 60 40
+axis '2*y*x' 'y*y - x*x' ''
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'parabolic'
+
+subplot 2 2 3:rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'spiral'
+</pre>
+<div class="float">
+<img src="../png/sample3.png" alt="../png/sample3">
+
+</div><p><strong>Example of curvilinear coordinates
+</strong>
+</p>
+
+<hr size="6">
+<a name="Text-printing-example"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Curvilinear-coordinates" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-printing-example-1"></a>
+<h3 class="subsection">2.2.4 Text printing example</h3>
+
+<p>MathGL prints text by vector font. There are functions for manual specifying of text position (like <code>Puts</code>) and for its automatic selection (like <code>Label</code>, <code>legend</code> and so on). MathGL prints text always in specified position even if it lies outside the bounding box. The default size of font is specified by command <var>fontsize</var>. However, the actual size of output string depends on position of axes (depends on functions <code>SubPlot</code>, <code>InPlot</code>). The switching of the font style (italic, bold, wire and so on) can be done for the whole string (by function parameter) or inside the string. By default MathGL parses TeX-like commands for symbols and indexes (see see section <a href="mgl_ru_1.html#Font-styles">Стиль текста</a>). Example of MathGL font drawing is:
+</p><pre class="verbatim">text 0 1 'Text can be in ASCII and in Unicode'
+text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
+text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
+text 0 -0.2 'Easy to \a{overline} or \u{underline}'
+text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
+text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
+</pre>
+<div class="float">
+<img src="../png/sample4.png" alt="../png/sample4">
+
+</div><p><strong>Example of text printing with different font effects
+</strong>
+</p>
+<p>Another example demonstrate the features of TeX formula parsing.
+</p><pre class="verbatim">text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}', 0, -4
+</pre>
+<div class="float">
+<img src="../png/samplee.png" alt="../png/samplee">
+
+</div><p><strong>Example of TeX formula parsing
+</strong>
+</p>
+
+<hr size="6">
+<a name="Data-handling"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing-example" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Array-creation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-handling-1"></a>
+<h2 class="section">2.3 Data handling</h2>
+
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Array-creation">2.3.1 Array creation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-changing">2.3.2 Data changing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Array-creation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-handling" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-changing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Array-creation-1"></a>
+<h3 class="subsection">2.3.1 Array creation</h3>
+
+<p>One can put numbers into the data instance by several ways. Let us do it for sinus function:
+</p><ul>
+<li>
+one can create array by <code>list</code> command
+<pre class="verbatim">list a 0 0.04 0.16 0.36 0.64 1
+</pre>
+</li><li>
+another way is to copy from &ldquo;inline&rdquo; array
+<pre class="verbatim">copy a [0,0.04,0.16,0.36,0.64,1]
+</pre>
+</li><li>
+next way is to fill the data by textual formula with the help of <code>modify</code> function
+<pre class="verbatim">new a 6
+modify a 'x^2'
+</pre>
+</li><li>
+or one may fill the array in some interval and modify it later
+<pre class="verbatim">new a 6
+fill a 0 1
+modify a 'u^2'
+</pre>
+</li><li>
+or fill the array using current axis range
+<pre class="verbatim">new a 6
+fill a '(x+1)^2/4'
+</pre>
+</li><li>
+finally it can be loaded from file
+<pre class="verbatim">new s 6: modify s 'x^2'
+save s 'sqr.dat'    # create file first
+read a 'sqr.dat'    # load it
+</pre>
+</li><li>
+at this one can read only part of data
+<pre class="verbatim">new s 6: modify s 'x^2'
+save s 'sqr.dat'    # create file first
+read a 'sqr.dat' 5  # load it
+</pre></li></ul>
+
+<p>Creation of 2d- and 3d-arrays is mostly the same. One can use direct data filling by <code>list</code> command
+</p><pre class="verbatim">list a 11 12 13 | 21 22 23 | 31 32 33
+</pre><p>or by inline arrays
+</p><pre class="verbatim">copy a [[11,12,13],[21,22,23],[31,32,33]]
+</pre><p>Also data can be filled by formula
+</p><pre class="verbatim">new z 30 40
+fill z 'sin(pi*x)*cos(pi*y)'
+</pre><p>or loaded from file.
+</p>
+<p>The only non-obvious thing here is using multidimensional arrays in C/C++, i.e. arrays defined like <code>float dat[40][30];</code>. Since, formaly this arrays element <code>dat[i]</code> can address the memory in arbitrary place you should use the proper function to convert such arrays to <code>mglData</code> object. For C++ this is functions like <code>mglData::Set(float **dat, int N1, int N2</code>. For C this is functions like <code>mgl_data_set_float2(HMDT d, const float **dat, int N1, int N2</code>. At this, you should keep in mind that <code>nx=N2</code> and <code>ny=N1</code> after conversion.
+</p>
+<hr size="6">
+<a name="Data-changing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Array-creation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-changing-1"></a>
+<h3 class="subsection">2.3.2 Data changing</h3>
+
+<p>MathGL has functions for data processing: differentiating, integrating, smoothing and so on. Let us consider some examples. The simplest ones are integration and differentiation. The direction in which operation will be performed is specified by textual string, which may contain symbols &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo;. For example, the call of <code>diff a 'x'</code> will differentiate data along &lsquo;<samp>x</samp>&rsquo; direction; the call of <code>integrate a 'xy'</code> perform the double integration of data along &lsquo;<samp>x</samp>&rsquo; and &lsquo;<samp>y</samp>&rsquo; directions; the call of <code>diff2 a 'xyz'</code> will apply 3d Laplace operator to data and so on. Example of this operations on 2d array a=x*y is presented in code:
+</p><pre class="verbatim">new a 30 40: modify a 'x*y'
+axis 0 0 0 1 1 1
+subplot 2 2 0:rotate 60 40
+surf a: box
+text 0.7 1 1.2 'a(x,y)'
+subplot 2 2 1:rotate 60 40
+diff a 'x': surf a: box
+text 0.7 1 1.2 'da/dx'
+subplot 2 2 2:rotate 60 40
+integrate a 'xy': surf a: box
+text 0.7 1 1.2 '\int da/dx dxdy'
+subplot 2 2 3:rotate 60 40
+diff2 a 'y': surf a: box
+text 0.7 1 1.2 '\int {d^2}a/dxdy dx'
+</pre>
+<div class="float">
+<img src="../png/sample6.png" alt="../png/sample6">
+
+</div><p><strong>Example of data differentiation and integration
+</strong>
+</p>
+<p>Data smoothing (function <code>Smooth</code>) is more interesting and important. This function has 2 main arguments: type of smoothing and its direction. Now 4 methods are supported: <code>0</code> does nothing for delta=0 or approaches data to zero with the step delta, <code>1</code> linear averaging by 3 points, <code>2</code> linear averaging by 5 points, <code>3</code> quadratic averaging by 5 points. Let me demonstrate it for 1d case:
+</p><pre class="verbatim">new y0 30
+modify y0 '0.4*sin(2*pi*x)+0.3*cos(3*pi*x)-0.4*sin(4*pi*x)+0.2*rnd'
+copy y1 y0: smooth y1 1
+copy y2 y0: smooth y2 2
+copy y3 y0: smooth y3 3
+
+plot y0 'k': addlegend 'none' 'k'
+plot y1 'r': addlegend 'line 3' 'r'
+plot y2 'g': addlegend 'line 5' 'g'
+plot y3 'b': addlegend 'quad 5' 'b'
+legend: box
+</pre>
+<div class="float">
+<img src="../png/sample7.png" alt="../png/sample7">
+
+</div><p><strong>Example of data smoothing
+</strong>
+</p>
+<p>Finally one can create new data arrays on base of the existing one: extract slice, row or column of data (<code>SubData</code>), summarize along some of direction(s) (<code>Sum</code>), find distribution of data elements (<code>Hist</code>). Note, that all these functions are not thread-safe because they use static internal variable for output array. In particular, the using of several of them in arguments of the same function will lead to unpredictable result.
+</p>
+<hr size="6">
+<a name="Data-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-changing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-1D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-plotting-1"></a>
+<h2 class="section">2.4 Data plotting</h2>
+
+<p>Let me now show how to plot the data. MathGL generally has 2 types of plotting functions. Simple variant requires a single data array for plotting, other data (coordinates) are considered uniformly distributed in interval <var>Min</var>*<var>Max</var>. Second variant requires data arrays for all coordinates. It allows one to plot rather complex multivalent curves and surfaces (in case of parametric dependencies). Argument setting to default values allows one to plot data in standard form. Manual arguments setting gives possibility for fine tuning of colors, positions and view of graphics. Note, that the call of drawing function adds something to picture but does not clear the previous plots (as it does in Matlab). Another difference from Matlab is that all setup (like transparency, lightning, axis borders and so on) must be specified <strong>before</strong> plotting functions.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plots-for-1D-data">2.4.1 Plots for 1D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-for-2D-data">2.4.2 Plots for 2D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-for-3D-data">2.4.3 Plots for 3D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surface-transparency">2.4.4 Surface transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Plots-for-1D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-2D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-1D-data-1"></a>
+<h3 class="subsection">2.4.1 Plots for 1D data</h3>
+
+<p>Term &ldquo;1D data&rdquo; means that data depend on single index (parameter) like curve in parametric form {x(i),y(i),z(i)}, i=1...n. There are 5 generally different types of data representations: simple line plot, line plot with filling under it, stairs plot, bar plot and vertical lines (see section <a href="mgl_ru_1.html#g_t1D-plotting">1D графики</a>). Each type of plotting has similar interface. There are 3D version and two 2D versions. One of last requires single array. The parameters of line and marks (see section <a href="mgl_ru_1.html#Line-styles">Стиль линий</a>) are specified by the string argument. If the string parameter is <code>NULL</code> then solid line with color from palette is used.
+</p>
+<p>Below I shall show the features of 1D plotting on base of <code>plot</code> function (see section <a href="mgl_ru_1.html#g_t1D-plotting">1D графики</a>). Let us start from sinus plot:
+</p><pre class="verbatim">new y0 50: modify y0 'sin(pi*(2*x-1))'
+subplot 2 2 0
+plot y0: box
+</pre><p>Style of line is not specified in <code>plot</code> function. So MathGL uses the solid line with first color of palette (this is blue). Next subplot shows array <var>y1</var> with 2 rows:
+</p><pre class="verbatim">subplot 2 2 1
+new y1 50 2
+modify y1 'sin(pi*2*x-pi)'
+modify y1 'cos(pi*2*x-pi)/2' 1
+plot y1: box
+</pre><p>As previously I did not specify the style of lines. As a result, MathGL again uses solid line with next colors in palette (there are green and red). Now let us plot a circle on the same subplot. The circle is parametric curve <em>x=cos(\pi t), y=sin(\pi t)</em>. I will set the color of the circle (dark yellow, &lsquo;<samp>Y</samp>&rsquo;) and put marks &lsquo;<samp>+</samp>&rsquo; at point position:
+</p><pre class="verbatim">new x 50: modify x 'cos(pi*2*x-pi)'
+plot x y0 'Y+'
+</pre><p>Note that solid line is used because I did not specify the type of line. The same picture can be achieved by <code>Plot2</code> function. Let us draw ellipse by orange dash line:
+</p><pre class="verbatim">plot y1(:,0) y(:,1) 'q|'
+</pre>
+<p>Drawing in 3D space is mostly the same. Let us draw spiral with default line style. Now its color is 4-th color from palette (this is cyan):
+</p><pre class="verbatim">subplot 2 2 2:rotate 60 40
+new z 50: modify z '2*x-1'
+plot x y0 z 'g':box
+</pre><p>Function <code>Plot3</code> does 3D curve plot but for single array. Use it to put circle marks on the previous plot:
+</p><pre class="verbatim">new y2 10 3
+modify y2 'cos(pi*(2*x-1-y))'
+modify y2 '2*x-1' 2
+plot y2(:,0) y2(:,1) y2(:,2) 'bo '
+</pre><p>Note that line style is empty &lsquo;<samp> </samp>&rsquo; here. Usage of other 1D plotting functions looks similar:
+</p><pre class="verbatim">subplot 2 2 3:rotate 60 40
+bars x y0 z 'r':box
+</pre>
+<div class="float">
+<img src="../png/sample8.png" alt="../png/sample8">
+
+</div><p><strong>Example of 1D data plot
+</strong>
+</p>
+<hr size="6">
+<a name="Plots-for-2D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-1D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-3D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-2D-data-1"></a>
+<h3 class="subsection">2.4.2 Plots for 2D data</h3>
+
+<p>Surfaces <code>Surf</code> and other 2D plots (see section <a href="mgl_ru_1.html#g_t2D-plotting">2D графики</a>) are drown the same simpler as 1D one. The difference is that the string parameter specifies not by line style but by the color scheme of the plot (see section <a href="mgl_ru_1.html#Color-scheme">Цветовая схема</a>). Here I draw attention on 4 most interesting color schemes. There is gray scheme where color is changed from black to white (string &lsquo;<samp>kw</samp>&rsquo;) or from white to black (string &lsquo;<samp>wk</samp>&rsquo;). Another scheme is useful for accentuation of negative (by blue color) and positive (by red color) regions on plot (string &lsquo;<samp>'BbwrR'</samp>&rsquo;). Last one is the popular &ldquo;jet&rdquo; scheme (string &lsquo;<samp>'BbcyrR'</samp>&rsquo;).
+</p>
+<p>Now I shall show the example of a surface drawing. At first let us switch lightning on
+</p><pre class="verbatim">light on
+</pre><p>and draw the surface, considering coordinates x,y to be uniformly distributed in interval <var>Min</var>*<var>Max</var>
+</p><pre class="verbatim">new a0 50 40
+modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+subplot 2 2 0:rotate 60 40
+surf a0: box
+</pre><p>Color scheme was not specified. So previous color scheme is used. In this case it is default color scheme (&ldquo;jet&rdquo;) for the first plot. Next example is a sphere. The sphere is parametrically specified surface:
+</p><pre class="verbatim">new x 50 40: new y 50 40: new z 50 40
+modify x '0.8*sin(2*pi*x)*sin(pi*y)'
+modify y '0.8*cos(2*pi*x)*sin(pi*y)'
+modify z '0.8*cos(pi*y)'
+subplot 2 2 1:rotate 60 40
+surf x y z 'bbwrr': box
+</pre><p>I set color scheme to <code>'BbwrR'</code> that corresponds to red top and blue bottom of the sphere.
+</p>
+<p>Surfaces will be plotted for each of slice of the data if <var>nz</var>&gt;1. Next example draws surfaces for data arrays with <var>nz</var>=3:
+</p><pre class="verbatim">new a1 50 40 3
+modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
+subplot 2 2 2:rotate 60 40
+alpha on
+surf a1: box
+</pre><p>Note, that it may entail a confusion. However, if one will use density plot then the picture will look better:
+</p><pre class="verbatim">subplot 2 2 3: rotate 60 40
+dens a1: box
+</pre><p>Note, that the previous color scheme is used in last plots because there are no direct specification of the one.
+</p>
+<div class="float">
+<img src="../png/sample9.png" alt="../png/sample9">
+
+</div><p><strong>Example of surface plot for 2D data
+</strong>
+</p>
+<p>Drawing of other 2D plots is analogous. The only peculiarity is the usage of flag &lsquo;<samp>#</samp>&rsquo;. By default this flag switches on the drawing of a grid on plot (<code>grid</code> or <code>mesh</code> for plots in plain or in volume). However, for isosurfaces (including surfaces of rotation <code>axial</code>) this flag switches the  face drawing off. Figure becomes wired. The following code gives example of flag &lsquo;<samp>#</samp>&rsquo; using (compare with normal function drawing as in its description):
+</p><pre class="verbatim">alpha on: light on: light 0 0 0 1
+new a 30 20
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+subplot 2 2 0: rotate 40 60
+surf a 'bbcyrr#': box
+subplot 2 2 1: rotate 40 60
+dens a 'bbcyrr#': box
+subplot 2 2 2: rotate 40 60
+cont a 'bbcyrr#': box
+subplot 2 2 3: rotate 40 60
+axial a 'bbcyrr#': box
+</pre>
+<div class="float">
+<img src="../png/samplea.png" alt="../png/samplea">
+
+</div><p><strong>Example of 2D data plot with color scheme contained &lsquo;<samp>#</samp>&rsquo; symbol
+</strong>
+</p>
+<hr size="6">
+<a name="Plots-for-3D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-2D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surface-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-3D-data-1"></a>
+<h3 class="subsection">2.4.3 Plots for 3D data</h3>
+
+<p>Drawing procedures for 3D plot looks similarly to 1D and 2D plots described above. There are 3 general types of 3D plots (see section <a href="mgl_ru_1.html#g_t3D-plotting">3D графики</a>): (i) plots on slices or on projections, (ii) isosurfaces, (iii) cloud-like plots. Plots on slice are clear enough &ndash; one specifies a slice (as its index or as coordinate value) and MathGL draws contour lines or density plot on slice plane. Isosurface gives more information. Isosurface is 3D analogue of the contour line <code>cont</code>. It shows the region where data array values exceed specified isosurface level. Plot becomes more informative if one adds transparency, lightning or sets color scheme depending on coordinates. Generalization of isosurface is the cloud-like plot. For this plot the darker color and less transparent regions correspond to higher values of data. Contrary, the regions with low values are transparent. For plotting of the phase of fields (or beams or pulses) one can use isosurface which transparency depends on the other data array (see function <code>surf3a</code>). As example of 3D data plots let us draw the Gaussian beam diffraction in space. Beam propagates along <var>x</var> axis:
+</p><pre class="verbatim">alpha on: light on
+light 0 0 0 1
+new a 30 30 30: new b 30 30 30
+modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
+modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
+caxis 0 1
+
+subplot 2 2 0: rotate 40 60
+surf3 a 'wgk': box
+subplot 2 2 1: rotate 40 60
+densa a: box: axis
+subplot 2 2 2: rotate 40 60
+cloud a: box
+subplot 2 2 3: rotate 40 60
+surf3a b a 'q': box
+</pre>
+<div class="float">
+<img src="../png/sampleb.png" alt="../png/sampleb">
+
+</div><p><strong>Example of Gaussian beam diffraction (3D data)
+</strong>
+</p>
+
+<hr size="6">
+<a name="Surface-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-3D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surface-transparency-1"></a>
+<h3 class="subsection">2.4.4 Surface transparency</h3>
+
+<p>MathGL library has advanced features for setting and handling the surface transparency. The simplest way to add transparency is the using of function <code>Alpha</code>. As a result, all further surfaces (and isosurfaces, density plots and so on) become transparent. However, their  look can be additionally improved.
+</p>
+<p>First, the selected surface will be non-transparent if one sets the flag <code>transparent</code> before the surface drawing and sets it off after the drawing.
+</p>
+<p>Second, the value of transparency can be different from surface to surface. To do it just change the value of <code>alphadef</code> before the drawing of the selected surface. If its value is close to 0 then the surface becomes more and more transparent. Contrary, if its value is close to 1 then the surface becomes practically non-transparent. This is some analogue of <code>transparent on</code>.
+</p>
+<p>Third feature is the changing of the way how the light goes through overlapped surfaces. The variable <code>transptype</code> defines it. By default the usual transparency is used (<code>transptype 0</code>) &ndash; surfaces below is less visible than the upper ones. A &ldquo;glass-like&rdquo; transparency (<code>transptype 1</code>) has a different look when the surface just decreases the background light (the surfaces are commutable in this case).
+</p>
+<p>A &ldquo;neon-like&rdquo; transparency (<code>transptype 2</code>) has more interesting look. In this case a surface is the light source (like a lamp on the dark background) and just adds some intensity to the color. At this, the library sets automatically the black color for the background and changes the default line color to white.
+</p>
+<p>As example I shall show the variant of plot from <a href="#Plots-for-2D-data">Plots for 2D data</a> (grid drawing is disabled) for different types of transparency.
+</p><div class="float">
+<img src="../png/type0.png" alt="../png/type0">
+
+</div><p><strong>Example of <code>TranspType=0</code>.
+</strong>
+</p><div class="float">
+<img src="../png/type1.png" alt="../png/type1">
+
+</div><p><strong>Example of <code>TranspType=1</code>.
+</strong>
+</p><div class="float">
+<img src="../png/type2.png" alt="../png/type2">
+
+</div><p><strong>Example of <code>TranspType=2</code>.
+</strong>
+</p>
+
+
+<hr size="6">
+<a name="Hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surface-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t_0060_0060Compound_0027_0027-graphics" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Hints-1"></a>
+<h2 class="section">2.5 Hints</h2>
+
+<p>In this section I have included some small hints and advices for the improving of the quality of plots and for the demonstration of some non-trivial features of MathGL library. In contrast to previous examples I showed mostly the idea but not the whole drawing function. More examples with the source code can be find at <a href="http://mathgl.sf.net/">http://mathgl.sf.net/</a> or in section <a href="mgl_ru_3.html#Samples">Примеры использования MathGL</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t_0060_0060Compound_0027_0027-graphics">2.5.1 &ldquo;Compound&rdquo; graphics</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Two-axes-in-one-plot">2.5.2 Two axes in one plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Titles-for-the-plot">2.5.3 Titles for the plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Changing-of-the-color-range">2.5.4 Changing of the color range</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Management-of-a-point-cutting">2.5.5 Management of a point cutting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-field-visualization">2.5.6 Vector field visualization</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Several-light-sources">2.5.7 Several light sources</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutMin-and-CutMax-features">2.5.8 CutMin and CutMax features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mapping-visualization">2.5.9 Mapping visualization</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Log_002dscaled-plot">2.5.10 Log-scaled plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting-hints">2.5.11 Nonlinear fitting hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#PDE-solving-hints">2.5.12 PDE solving hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stereo-image">2.5.13 Stereo image</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="g_t_0060_0060Compound_0027_0027-graphics"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Two-axes-in-one-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Compound_0027_0027-graphics-1"></a>
+<h3 class="subsection">2.5.1 &ldquo;Compound&rdquo; graphics</h3>
+
+<p>As I noted above, MathGL functions (except the special one, like <code>clf</code>) do  not erase the previous plotting but just add the new one. It allows one to draw &ldquo;compound&rdquo; plots easily. For example, popular Matlab command <code>surfc</code> can be emulated in MathGL by 2 calls:
+</p><pre class="verbatim">surf a
+cont a 0 7 -1   # draw contours at z = -1
+</pre><p>Here <var>a</var> is 2-dimensional data for the plotting, <code>-1</code> is the value of z-coordinate at which the contour should be plotted (at the bottom in this example). Analogously, one can draw density plot instead of contour lines and so on.
+</p>
+<p>Another nice plot is contour lines plotted directly on the surface:
+</p><pre class="verbatim">light on        # switch on light for the surface
+surf a 'bbcyrr' # select 'jet' colormap for the surface
+cont a 'y'      # and yellow color for contours
+</pre><p>The possible difficulties arise in black&amp;white case, when the color of the surface can be close to the color of a contour line. In that case I may suggest the following code:
+</p><pre class="verbatim">light on        # switch on light for the surface
+surf a 'kw'     # select 'gray' colormap for the surface
+caxis -1 0      # first draw for darker surface colors
+conta 'w'       # white contours
+caxis 0 1       # now draw for brighter surface colors
+cont a 'k'      # black contours
+</pre><p>The idea is to divide the color range on 2 parts (dark and bright) and to select the contrasting color for contour lines for each of part.
+</p>
+<p>Similarly, one can plot flow thread over density plot of vector field amplitude (this is another amusing plot from Matlab) and so on. The list of compound graphics can be prolonged but I hope that the general idea is clear.
+</p>
+<hr size="6">
+<a name="Two-axes-in-one-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t_0060_0060Compound_0027_0027-graphics" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Titles-for-the-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Two-axes-in-one-plot-1"></a>
+<h3 class="subsection">2.5.2 Two axes in one plot</h3>
+
+<p>Developing the previous hint one can make a plot with 2 or more axes. The idea is that the change of settings does not influence on the already drawn graphics. So, for 2-axes plot let us set the first axis and draw everything concerning it. Then let us setup the second axis and draw things for the second axis. The corresponding code is (see section <a href="mgl_ru_3.html#g_t2_002daxes-sample">Несколько осей на одном графике</a>):
+</p><pre class="verbatim"># set up first axis
+axis -1 -1 1 1: origin -1 -1
+axis:fplot 'sin(pi*x)'      # draw something in first axis
+# set up second axis
+axis 0 0 1 1: origin 1 1
+axis: fplot 'cos(4*pi*x^2)' # draw something in second axis
+</pre><p>Note, that the first and the second axes look better if being placed in different corners. In the code presented above the first axis is placed in the left-bottom corner, and the second one is placed in the right-top corner.
+</p>
+<hr size="6">
+<a name="Titles-for-the-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Two-axes-in-one-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Changing-of-the-color-range" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Titles-for-the-plot-1"></a>
+<h3 class="subsection">2.5.3 Titles for the plot</h3>
+
+<p>The printing of nice titles for the plot is not so trivial task in general case. The problem is that the rotation and aspect change lead to different looks for titles of different subplots. So, the resulting look is not so good as it could be. The solution is simple &ndash; to print titles exactly after <code>subplot</code> call and before any rotation, aspect change and so on! Analogously, the title for the whole picture looks better if it is printed first (before any <code>subplot</code> calls). Alternatively you can use function <code>title</code> for plotting title for the picture at any time.
+</p>
+<hr size="6">
+<a name="Changing-of-the-color-range"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Titles-for-the-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Management-of-a-point-cutting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Changing-of-the-color-range-1"></a>
+<h3 class="subsection">2.5.4 Changing of the color range</h3>
+
+<p>By default (for the user comfort), the color range is set equal to z-range of the plot. However, there are different ranges. So, one can obtain amusing plot by the change of color range manually. For example, there are plots with one-color bottom (or top) or practically bi-color picture and so on.
+</p>
+<p>For example, compare 2 surfaces:
+</p><pre class="verbatim">subplot 2 1 0
+surf a          # usual coloring range
+subplot 2 1 1
+caxis 0 1
+surf a          # bottom of the surface have one-colour filling
+</pre>
+<hr size="6">
+<a name="Management-of-a-point-cutting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Changing-of-the-color-range" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-field-visualization" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Management-of-a-point-cutting-1"></a>
+<h3 class="subsection">2.5.5 Management of a point cutting</h3>
+
+<p>Sometimes an experimental or numerical surface has outstanding points. Visualization of such surface will lead to the hole(s) in place of such points. The standard method of &ldquo;fighting&rdquo; &ndash; to change data values &ndash; is not always good and is not so convenient. MathGL library has another method &ndash; to set variable <code>cut off</code>. As a consequence, all outstanding points will be projected on the bounding box.
+</p>
+<p>Such method is good not only for outstanding points but also for the case when one need to plane the bottom or the top of the plot. Exactly such case is demonstrated in the code:
+</p><pre class="verbatim">new a 20 30     # create some data
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+# set lower border above the data minimal value
+axis -1 -1 0 1 1 1:rotate 40 60
+cut off         # set off cutting flag
+surf a          # and draw the surface
+</pre><p>It is an interesting result, is not it?
+</p>
+<hr size="6">
+<a name="Vector-field-visualization"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Management-of-a-point-cutting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Several-light-sources" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vector-field-visualization-1"></a>
+<h3 class="subsection">2.5.6 Vector field visualization</h3>
+
+<p>Vector field visualization (especially in 3d case <code>vect3</code> or <code>vectc</code>) may look tangly &ndash; there are too many overlapping lines. I may suggest 2 ways to solve this problem. The first one is to change <code>meshnum</code> for decreasing the number of hachures. The second way is to use the flow thread chart <code>Flow</code>. Unfortunately, I don&rsquo;t know any other methods to visualize 3d vector field. If you know any, e-mail me and I shall add it to MatGL.
+</p>
+<hr size="6">
+<a name="Several-light-sources"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-field-visualization" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutMin-and-CutMax-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Several-light-sources-1"></a>
+<h3 class="subsection">2.5.7 Several light sources</h3>
+
+<p>In contrast to the most of other programs, MathGL supports several (up to 10) light sources. Moreover, the color each of them can be different: white (this is usual), yellow, red, cyan, green and so on. The use of several light sources may be interesting for the highlighting of some peculiarities of the plot or just to make an amusing picture. Note, each light source can be switched on/off individually (see section <a href="mgl_ru_3.html#Several-light-sample">Несколько источников света</a>).
+</p>
+<hr size="6">
+<a name="CutMin-and-CutMax-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Several-light-sources" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mapping-visualization" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutMin-and-CutMax-features-1"></a>
+<h3 class="subsection">2.5.8 CutMin and CutMax features</h3>
+
+<p>MathGL library has a feature for cutting of points in some region <var>CutMin*CutMax</var>. Such an excision can be used to improve the look of the graphics. Moreover, this cutting may help to show an internal structure of an object (like <code>isocaps</code> plot in Matlab). For example, let us use the standard 3D data array and show its interior (see section <a href="mgl_ru_3.html#CutMinMax-sample">CutMinMax &ndash; пример использования</a>).
+</p>
+<pre class="verbatim">new c 61 51 40      # create the data
+new v 10: fill v -0.5 1
+modify c '(-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1))'
+cut 0 -1 -1 1 0 1.1
+rotate 40 60:       surf3 c -0.5 'bbcyrr'
+contf3 v c 'x' -1 'bbcyrr': contf3 v c 'y' -1 'bbcyrr'
+contf3 v c 'z' 0 'bbcyrr':  contf3 v c 'z' 39 'bbcyrr'
+</pre>
+<p>One can also exclude points from arbitrary area in space. This area defined by textual formula <code>cut</code> (see section <a href="mgl_ru_1.html#Cutting">Обрезание</a>). The algorithm is the same as shown for &ldquo;rectangular cutting&rdquo;.
+</p>
+<hr size="6">
+<a name="Mapping-visualization"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutMin-and-CutMax-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Log_002dscaled-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mapping-visualization-1"></a>
+<h3 class="subsection">2.5.9 Mapping visualization</h3>
+
+<p>Sometime ago I worked with mapping and have a question about its visualization. Let me remember you that mapping is some transformation rule for one set of number to another one. The 1d mapping is just an ordinary function &ndash; it takes a number and transforms it to another one. The 2d mapping (which I used) is a pair of functions which take 2 numbers and transform them to another 2 ones. Except general plots (like <code>surfc</code>, <code>surfa</code>) there is a special plot &ndash; Arnold diagram. It shows the area which is the result of mapping of some initial area (usually square).
+</p>
+<p>I tried to make such plot in <code>map</code>. It shows the set of points or set of faces, which final position is the result of mapping. At this, the color gives information about their initial position and the height describes Jacobian value of the transformation. Unfortunately, it looks good only for the simplest mapping but for the real multivalent quasi-chaotic mapping it produces a confusion. So, use it if you like :).
+</p>
+<hr size="6">
+<a name="Log_002dscaled-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mapping-visualization" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting-hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Log_002dscaled-plot-1"></a>
+<h3 class="subsection">2.5.10 Log-scaled plot</h3>
+
+<p>Log-scaled plot can be drawn by 2 steps. First, one should change the scale of axis by call <code>axis 'lg(x)' 'lg(y)'</code> (in this example, x- and y-axis will be log-scaled). Second, one should set logarithmic scale for axis ticks by changing variables: <code>xtick 0: yticks 0</code>. Finally, one should check (or change) the axis ranges and origin so that their values to be positive. For example of log-log plot see section <a href="mgl_ru_3.html#Log_002dlog-sample">Log-log &ndash; пример использования</a>.
+</p>
+<hr size="6">
+<a name="Nonlinear-fitting-hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Log_002dscaled-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#PDE-solving-hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-hints-1"></a>
+<h3 class="subsection">2.5.11 Nonlinear fitting hints</h3>
+
+<p>Nonlinear fitting is rather simple. All that you need is the data to fit, the approximation formula and the list of coefficients to fit (better with its initial guess values). Let me demonstrate it on the following simple example (see section <a href="mgl_ru_3.html#Fitting-sample">Fitting &ndash; пример использования</a>). First, let us use sin function with some random noise:
+</p><pre class="verbatim">new rnd 100: new idl 50 # data to be fitted and ideal data
+modify rnd '0.4*rnd+0.1+sin(4*pi*x)'
+modify idl '0.3+sin(4*pi*x)'
+</pre><p>and plot it to see that data we will fit
+</p><pre class="verbatim">axis -1 -2 1 2
+plot rnd '. ':plot idl 'b'
+box:text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
+</pre>
+<p>The next step is the fitting itself. For that let me specify an initial values <var>ini</var> for coefficients &lsquo;<samp>abc</samp>&rsquo; and do the fitting for approximation formula &lsquo;<samp>a+b*sin(c*x)</samp>&rsquo;
+</p><pre class="verbatim">new res     # The data for found formula
+fit res rnd 'a+b*sin(c*x)' 'abc' [1, 1, 3]
+</pre><p>Now display it
+</p><pre class="verbatim">plot res 'r'
+text -1 -1.3 'fitted:' 'L:r' -1
+putsfit 0 -1.8 'y = ' 'C:r' -1
+</pre>
+<p>NOTE! the fitting results may have strong dependence on initial values for coefficients due to algorithm features. The problem is that in general case there are several local &rsquo;optimums&rsquo; for coefficients and the program returns only first found one! There are no guaranties that it will be the best. Try for example to set <code>ini = [0, 0, 0]</code> in the code above.
+</p>
+<hr size="6">
+<a name="PDE-solving-hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting-hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stereo-image" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="PDE-solving-hints-1"></a>
+<h3 class="subsection">2.5.12 PDE solving hints</h3>
+
+<p>Solving of Partial Differential Equations (PDE, including beam tracing) and ray tracing (or finding particle trajectory) are more or less common task. So, MathGL have several functions for that. There are <code>ray</code> for ray tracing, <code>pde</code> for PDE solving, <code>qo2d</code> for beam tracing in 2D case. Note, that these functions take &ldquo;Hamiltonian&rdquo; or equations as string values. And I don&rsquo;t plan now to allow one to use user-defined functions. There are 2 reasons: the complexity of corresponding interface; and the basic nature of used methods which are good for samples but may not good for serious scientific calculations.
+</p>
+<p>The ray tracing can be done by <code>ray</code> function. Really ray tracing equation is Hamiltonian equation for 3D space. So, the function can be also used for finding a particle trajectory (i.e. solve Hamiltonian ODE) for 1D, 2D or 3D cases. The function have a set of arguments. First of all, it is Hamiltonian which defined the media (or the equation) you are planning to use. The Hamiltonian is defined by string which may depend on coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, time &lsquo;<samp>t</samp>&rsquo; (for particle dynamics) and momentums &lsquo;<samp>p</samp>&rsquo;=<em>p_x</em>, &lsquo;<samp>q</samp>&rsquo;=<em>p_y</em>, &lsquo;<samp>v</samp>&rsquo;=<em>p_z</em>. Next, you have to define the initial conditions for coordinates and momentums at &lsquo;<samp>t</samp>&rsquo;=0 and set the integrations step (default is 0.1) and its duration (default is 10). The Runge-Kutta method of 4-th order is used for integration.
+</p><pre class="verbatim">new re 128:new im 128
+ray r 'p^2+q^2-x-1' -0.7 -1 0 0 0.5 0
+plot r(0) r(1)
+</pre><p>This example calculate the reflection from linear layer (media with Hamiltonian &lsquo;<samp>p^2+q^2-x-1</samp>&rsquo;=<em>p_x^2+p_y^2-x-1</em>). This is parabolic curve. The resulting array have 7 columns which contain data for {x,y,z,p,q,v,t}.
+</p>
+<p>The solution of PDE is a bit more complicated. As previous you have to specify the equation as pseudo-differential operator <em>\hat H(x, \nabla)</em> which is called sometime as &ldquo;Hamiltonian&rdquo; (for example, in beam tracing). As previously, it is defined by string which may depend on coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; (but not time!), momentums &lsquo;<samp>p</samp>&rsquo;=<em>(d/dx)/i k_0</em>, &lsquo;<samp>q</samp>&rsquo;=<em>(d/dy)/i k_0</em> and field amplitude &lsquo;<samp>u</samp>&rsquo;=<em>|u|</em>. The evolutionary coordinate is &lsquo;<samp>z</samp>&rsquo; in all cases. So that, the equation look like <em>du/dz = ik_0 H(x,y,\hat p, \hat q, |u|)[u]</em>. Dependence on field amplitude &lsquo;<samp>u</samp>&rsquo;=<em>|u|</em> allows one to solve nonlinear problems too. For example, for nonlinear Shrodinger equation you may set <code>ham='p^2 + q^2 - u^2'</code>. Also you may specify imaginary part for wave absorption, like <code>ham = 'p^2 + i*x*(x&gt;0)'</code>, but only if dependence on variable &lsquo;<samp>i</samp>&rsquo; is linear (i.e. <em>H = Hre+i*Him</em>).
+</p>
+<p>Next step is specifing the initial conditions at &lsquo;<samp>z</samp>&rsquo;=<code>Min.z</code>. The function need 2 arrays for real and for imaginary part. Note, that coordinates x,y,z are supposed to be in specified range [Min, Max]. So, the data arrays should have corresponding scales. Finally, you may set the integration step and paramter k0=<em>k_0</em>. Also keep in mind, that internally the 2 times large box is used (for suppressing numerical reflection from boundaries) and the equation should well defined even in this extended range.
+</p>
+<p>Final comment is concerning the possible form of pseudo-differential operator <em>H</em>. At this moment, simplified form of operator <em>H</em> is supported &ndash; all &ldquo;mixed&rdquo; terms (like &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) are excluded. For example, in 2D case this operator is effectively <em>H = f(p,z) + g(x,z,u)</em>. However commutable combinations (like &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy) are allowed for 3D case. 
+</p>
+<p>So, for example let solve the equation for beam deflected from linear layer and absorbed later. The operator will have the form &lsquo;<samp>'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)'</samp>&rsquo; that correspond to equation <em>ik_0 \partial_z u + \Delta u + x \cdot u + i (x+z)/2 \cdot u = 0</em>. This is typical equation for Electron Cyclotron (EC) absorption in magnetized plasmas. For initial conditions let me select the beam with plane phase front <em>exp(-48*(x+0.7)^2)</em>. The corresponding code looks like this (see section <a href="mgl_ru_3.html#PDE-sample">PDE &ndash; пример использования</a>):
+</p><pre class="verbatim">new re 128: new im 128
+fill re 'exp(-48*(x+0.7)^2)'
+pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)' re im 0.01, 30
+transpose a 'yxz'
+caxis 0 1
+dens a 'wyrRk'
+</pre>
+<p>The last example is example of beam tracing. Beam tracing equation is special kind of PDE equation written in coordinates accompanied to a ray. Generally this is the same parameters and limitation as for PDE solving but the coordinates are defined by the ray and by parameter of grid width <var>w</var> in direction transverse the ray. So, you don&rsquo;t need to specify the range of coordinates. <strong>BUT</strong> there is limitation. The accompanied coordinates are well defined only for smooth enough rays, i.e. then the ray curvature <em>K</em> (which is defined as <em>1/K^2 = (|\ddot r|^2 |\dot r|^2 - (\ddot r, \dot r)^2)/|\dot r|^6</em>) is much large then the grid width: <em>K&gt;&gt;w</em>. So, you may receive incorrect results if this condition will be broken.
+</p>
+<p>You may use following code for obtaining the same solution as in previous example:
+</p><pre class="verbatim">new re 128: new im 128
+define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)'
+ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
+# now start beam tracing
+fill re 'exp(-48*x^2)'
+new xx: new yy
+qo2d a $1 re im r 1 30 xx yy
+caxis 0 1
+dens xx yy a 'wyrRk'
+</pre>
+
+<hr size="6">
+<a name="Stereo-image"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#PDE-solving-hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stereo-image-1"></a>
+<h3 class="subsection">2.5.13 Stereo image</h3>
+
+<p>One can easily create stereo image in MathGL. Stereo image can be produced by making two subplots with slightly different rotation angles. The corresponding code looks like this (see section <a href="mgl_ru_3.html#Stereo-image-sample">Пример стерео изображения</a>):
+</p><pre class="verbatim">subplot 2 1 0   # left image
+rotate 40 60+3
+# draw something here
+subplot 2 1 1   # right image
+rotate 40 60-3
+# draw the same here
+</pre>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_3.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_3.html
new file mode 100644
index 0000000..1a9f861
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_3.html
@@ -0,0 +1,4036 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: 3. Примеры использования MathGL</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: 3. Примеры использования MathGL">
+<meta name="keywords" content="Язык MGL для версии 1.11: 3. Примеры использования MathGL">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_2.html#Stereo-image" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya-MathGL"></a>
+<h1 class="chapter">3. Примеры использования MathGL</h1>
+<p>Эта глава содержит множество примеров кода для всех типов графиков, наиболее важных возможностей библиотеки и советов. Аналогичные примеры (с картинками) можно найти на <a href="http://mathgl.sf.net/pictures.html">http://mathgl.sf.net/pictures.html</a>. 
+</p><table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting-samples">3.1 Примеры 1D графиков</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting-samples">3.2 Примеры 2D графиков</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting-samples">3.3 Примеры 3D графиков</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting-samples">3.4 Примеры парных/векторных графиков</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Basic-features">3.5 Базовые возможности</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Additional-features">3.6 Дополнительные возможности</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Advanced-features">3.7 &quot;Продвинутые&quot; возможности</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+</table>
+<hr size="6">
+<a name="g_t1D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-1D-g_0440_0430_0444_0438_043a_043e_0432"></a>
+<h2 class="section">3.1 Примеры 1D графиков</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plot-sample">3.1.1 Plot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Radar-sample">3.1.2 Radar &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tens-sample">3.1.3 Tens &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area-sample">3.1.4 Area &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area-gradient-sample">3.1.5 Area с градиентной заливкой &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-sample">3.1.6 Bars &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-2-colors-sample">3.1.7 Bars (2 цвета) &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-above-sample">3.1.8 Bars (один над другим) &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-fall-sample">3.1.9 Bars &quot;водопад&quot; &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Barh-sample">3.1.10 Barh &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Step-sample">3.1.11 Step &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stem-sample">3.1.12 Stem &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region-sample">3.1.13 Region &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region-gradient-sample">3.1.14 Region с градиентной заливкой &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Error-sample">3.1.15 Error &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#BoxPlot-sample">3.1.16 BoxPlot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mark-sample">3.1.17 Mark &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TextMark-sample">3.1.18 TextMark &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tube-sample">3.1.19 Tube &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-sample">3.1.20 Text &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Torus-sample">3.1.21 Torus &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Chart-sample">3.1.22 Chart &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pie-chart-sample">3.1.23 Pie chart &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ring-chart-sample">3.1.24 Ring chart &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+<hr size="6">
+<a name="Plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Radar-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.1 Plot &ndash; пример использования</h3>
+<a name="index-Plot"></a>
+<div class="float">
+<img src="../png/plot.png" alt="../png/plot">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y
+</pre><hr size="6">
+<a name="Radar-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Radar-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.2 Radar &ndash; пример использования</h3>
+<a name="index-Radar"></a>
+<div class="float">
+<img src="../png/radar.png" alt="../png/radar">
+</div><pre class="verbatim">new y 10 3
+modify y '0.4*sin(pi*(2*x+y/2))+0.1*rnd'
+radar y '#'
+</pre><hr size="6">
+<a name="Tens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Radar-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.3 Tens &ndash; пример использования</h3>
+<a name="index-Tens"></a>
+<div class="float">
+<img src="../png/tens.png" alt="../png/tens">
+</div><pre class="verbatim">new y 50
+new c 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify c 'sin(2*pi*x)'
+box
+tens y c
+</pre><hr size="6">
+<a name="Area-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area-gradient-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.4 Area &ndash; пример использования</h3>
+<a name="index-Area"></a>
+<div class="float">
+<img src="../png/area.png" alt="../png/area">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y
+</pre><hr size="6">
+<a name="Area-gradient-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-_0441-g_0440_0430_0434_0438e_043d_0442_043d_043e_0439-_0437_0430_043b_0438_0432_043a_043e_0439-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.5 Area с градиентной заливкой &ndash; пример использования</h3>
+<a name="index-Area-1"></a>
+<div class="float">
+<img src="../png/area_2.png" alt="../png/area_2">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y 'cbgGyr'
+</pre><hr size="6">
+<a name="Bars-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area-gradient-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-2-colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.6 Bars &ndash; пример использования</h3>
+<a name="index-Bars"></a>
+<div class="float">
+<img src="../png/bars.png" alt="../png/bars">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y
+</pre>
+<hr size="6">
+<a name="Bars-2-colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-above-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-_00282-c_0432e_0442_0430_0029-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.7 Bars (2 цвета) &ndash; пример использования</h3>
+<a name="index-Bars-1"></a>
+<div class="float">
+<img src="../png/bars_2.png" alt="../png/bars_2">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'cbgGyr'
+</pre><hr size="6">
+<a name="Bars-above-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-2-colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-fall-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-_0028_043e_0434_0438_043d-_043d_0430_0434-_0434_0440_0443g_0438_043c_0029-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.8 Bars (один над другим) &ndash; пример использования</h3>
+<a name="index-Bars-2"></a>
+<div class="float">
+<img src="../png/bars_a.png" alt="../png/bars_a">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'a'
+</pre><hr size="6">
+<a name="Bars-fall-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-above-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Barh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-_0022_0432_043e_0434_043e_043f_0430_0434_0022-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.9 Bars &quot;водопад&quot; &ndash; пример использования</h3>
+<a name="index-Bars-3"></a>
+<div class="float">
+<img src="../png/bars_f.png" alt="../png/bars_f">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'f'
+</pre>
+
+<hr size="6">
+<a name="Barh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-fall-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Step-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Barh-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.10 Barh &ndash; пример использования</h3>
+<a name="index-Barh"></a>
+<div class="float">
+<img src="../png/barh.png" alt="../png/barh">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+barh y
+</pre><hr size="6">
+<a name="Step-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Barh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stem-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Step-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.11 Step &ndash; пример использования</h3>
+<a name="index-Step"></a>
+<div class="float">
+<img src="../png/step.png" alt="../png/step">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+step y
+</pre><hr size="6">
+<a name="Stem-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Step-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stem-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.12 Stem &ndash; пример использования</h3>
+<a name="index-Stem"></a>
+<div class="float">
+<img src="../png/stem.png" alt="../png/stem">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+stem y 'o'
+</pre><hr size="6">
+<a name="Region-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Stem-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region-gradient-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.13 Region &ndash; пример использования</h3>
+<a name="index-Region"></a>
+<div class="float">
+<img src="../png/region.png" alt="../png/region">
+</div><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'r'
+plot y1 'k2'
+plot y2 'k2'
+</pre><hr size="6">
+<a name="Region-gradient-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Error-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-_0441-g_0440_0430_0434_0438e_043d_0442_043d_043e_0439-_0437_0430_043b_0438_0432_043a_043e_0439-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.14 Region с градиентной заливкой &ndash; пример использования</h3>
+<a name="index-Region-1"></a>
+<div class="float">
+<img src="../png/region_2.png" alt="../png/region_2">
+</div><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'yr'
+plot y1 'k2'
+plot y2 'k2'
+</pre><hr size="6">
+<a name="Error-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region-gradient-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#BoxPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Error-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.15 Error &ndash; пример использования</h3>
+<a name="index-Error"></a>
+<div class="float">
+<img src="../png/error.png" alt="../png/error">
+</div><pre class="verbatim">new y 50
+new x0 10
+new y0 10
+new ex 10
+new ey 10
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify x0 '2*x-1 + 0.1*rnd-0.05'
+modify y0 '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1'
+modify ey '0.2'
+modify ex '0.1'
+box
+plot y
+error x0 y0 ex ey 'ko'
+</pre><hr size="6">
+<a name="BoxPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Error-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mark-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="BoxPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.16 BoxPlot &ndash; пример использования</h3>
+<a name="index-BoxPlot"></a>
+<div class="float">
+<img src="../png/boxplot.png" alt="../png/boxplot">
+</div><pre class="verbatim">new a 10 7
+modify a '(2*rnd-1)^3/2'
+box
+boxplot a
+plot a ' ko'
+</pre><hr size="6">
+<a name="Mark-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#BoxPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TextMark-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mark-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.17 Mark &ndash; пример использования</h3>
+<a name="index-Mark"></a>
+<div class="float">
+<img src="../png/mark.png" alt="../png/mark">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+mark y y1 'bs'
+</pre><hr size="6">
+<a name="TextMark-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mark-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tube-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TextMark-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.18 TextMark &ndash; пример использования</h3>
+<a name="index-TextMark"></a>
+<div class="float">
+<img src="../png/textmark.png" alt="../png/textmark">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+textmark y y1 '\gamma'
+</pre><hr size="6">
+<a name="Tube-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TextMark-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tube-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.19 Tube &ndash; пример использования</h3>
+<a name="index-Tube"></a>
+<div class="float">
+<img src="../png/tube.png" alt="../png/tube">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+rotate 40 60
+light on
+box
+tube y 0.05
+</pre><hr size="6">
+<a name="Text-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tube-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Torus-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.20 Text &ndash; пример использования</h3>
+<a name="index-Text"></a>
+<div class="float">
+<img src="../png/text.png" alt="../png/text">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y(:,0)
+text y 'This is very long string drawn along a curve' ':k'
+text y 'Another string drawn above a curve' 'T:r'
+</pre><hr size="6">
+<a name="Torus-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Torus-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.21 Torus &ndash; пример использования</h3>
+<a name="index-Torus"></a>
+<div class="float">
+<img src="../png/torus.png" alt="../png/torus">
+</div><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+rotate 40 60
+light on
+box
+torus y1 y2 'pz'
+</pre><hr size="6">
+<a name="Chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Torus-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pie-chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.22 Chart &ndash; пример использования</h3>
+<a name="index-Chart"></a>
+<div class="float">
+<img src="../png/chart.png" alt="../png/chart">
+</div><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+box
+chart ch
+</pre><hr size="6">
+<a name="Pie-chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ring-chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pie-chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.23 Pie chart &ndash; пример использования</h3>
+<a name="index-Chart-1"></a>
+<a name="index-Axis"></a>
+<div class="float">
+<img src="../png/pie_chart.png" alt="../png/pie_chart">
+</div><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+1)/2*cos(pi*x)' '(y+1)/2*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+</pre><hr size="6">
+<a name="Ring-chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pie-chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ring-chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.24 Ring chart &ndash; пример использования</h3>
+<a name="index-Chart-2"></a>
+<a name="index-Axis-1"></a>
+<div class="float">
+<img src="../png/ring_chart.png" alt="../png/ring_chart">
+</div><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+2)/3*cos(pi*x)' '(y+2)/3*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+</pre><hr size="6">
+<a name="g_t2D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ring-chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-2D-g_0440_0430_0444_0438_043a_043e_0432"></a>
+<h2 class="section">3.2 Примеры 2D графиков</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf-sample">3.2.1 Surf &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transparent-surface-sample">3.2.2 Transparent surface &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surface-in-fog-sample">3.2.3 Surface in fog &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Sharp-colors-sample">3.2.4 Sharp colors &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mesh-sample">3.2.5 Mesh &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fall-sample">3.2.6 Fall &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Belt-sample">3.2.7 Belt &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tile-sample">3.2.8 Tile &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Boxs-sample">3.2.9 Boxs &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens-sample">3.2.10 Dens &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-sample">3.2.11 Cont &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF-sample">3.2.12 ContF &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContD-sample">3.2.13 ContD &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axial-sample">3.2.14 Axial &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grad-sample">3.2.15 Grad &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+</table>
+<hr size="6">
+<a name="Surf-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparent-surface-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.1 Surf &ndash; пример использования</h3>
+<a name="index-Surf"></a>
+<div class="float">
+<img src="../png/surf.png" alt="../png/surf">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+</pre><hr size="6">
+<a name="Transparent-surface-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surface-in-fog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transparent-surface-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.2 Transparent surface &ndash; пример использования</h3>
+<a name="index-Surf-1"></a>
+<a name="index-Alpha"></a>
+<div class="float">
+<img src="../png/surf_alpha.png" alt="../png/surf_alpha">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surf a
+</pre><hr size="6">
+<a name="Surface-in-fog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparent-surface-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Sharp-colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surface-in-fog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.3 Surface in fog &ndash; пример использования</h3>
+<a name="index-Surf-2"></a>
+<a name="index-Fog"></a>
+<div class="float">
+<img src="../png/surf_fog.png" alt="../png/surf_fog">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+fog 1
+box
+surf a
+</pre><hr size="6">
+<a name="Sharp-colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surface-in-fog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mesh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Sharp-colors-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.4 Sharp colors &ndash; пример использования</h3>
+<a name="index-Surf-3"></a>
+<div class="float">
+<img src="../png/surf_sl.png" alt="../png/surf_sl">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a 'BbcyrR|'
+</pre><hr size="6">
+<a name="Mesh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Sharp-colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fall-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mesh-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.5 Mesh &ndash; пример использования</h3>
+<a name="index-Mesh"></a>
+<div class="float">
+<img src="../png/mesh.png" alt="../png/mesh">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+mesh a
+</pre><hr size="6">
+<a name="Fall-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mesh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Belt-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fall-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.6 Fall &ndash; пример использования</h3>
+<a name="index-Fall"></a>
+<div class="float">
+<img src="../png/fall.png" alt="../png/fall">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+fall a
+</pre><hr size="6">
+<a name="Belt-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fall-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tile-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Belt-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.7 Belt &ndash; пример использования</h3>
+<a name="index-Belt"></a>
+<div class="float">
+<img src="../png/belt.png" alt="../png/belt">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+belt a
+</pre><hr size="6">
+<a name="Tile-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Belt-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Boxs-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tile-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.8 Tile &ndash; пример использования</h3>
+<a name="index-Tile"></a>
+<div class="float">
+<img src="../png/tile.png" alt="../png/tile">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+tile a
+</pre><hr size="6">
+<a name="Boxs-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tile-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Boxs-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.9 Boxs &ndash; пример использования</h3>
+<a name="index-Boxs"></a>
+<div class="float">
+<img src="../png/boxs.png" alt="../png/boxs">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+origin 0 0 0
+box
+boxs a
+</pre><hr size="6">
+<a name="Dens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Boxs-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.10 Dens &ndash; пример использования</h3>
+<a name="index-Dens"></a>
+<a name="index-Colorbar"></a>
+<div class="float">
+<img src="../png/dens.png" alt="../png/dens">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+dens a
+colorbar
+</pre><hr size="6">
+<a name="Cont-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.11 Cont &ndash; пример использования</h3>
+<a name="index-Cont"></a>
+<div class="float">
+<img src="../png/cont.png" alt="../png/cont">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+cont a
+</pre><hr size="6">
+<a name="ContF-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContD-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.12 ContF &ndash; пример использования</h3>
+<a name="index-ContF"></a>
+<div class="float">
+<img src="../png/contf.png" alt="../png/contf">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+contf a
+</pre><hr size="6">
+<a name="ContD-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axial-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContD-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.13 ContD &ndash; пример использования</h3>
+<a name="index-ContD"></a>
+<div class="float">
+<img src="../png/contd.png" alt="../png/contd">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+var v 9 -1 1
+box
+contd v a
+colorbar v
+</pre><hr size="6">
+<a name="Axial-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContD-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grad-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axial-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.14 Axial &ndash; пример использования</h3>
+<a name="index-Axial"></a>
+<div class="float">
+<img src="../png/axial.png" alt="../png/axial">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+axial a
+</pre><hr size="6">
+<a name="Grad-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axial-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grad-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.15 Grad &ndash; пример использования</h3>
+<a name="index-Grad"></a>
+<div class="float">
+<img src="../png/grad.png" alt="../png/grad">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box:alpha on:dens a
+grad a
+</pre><hr size="6">
+<a name="g_t3D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grad-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-3D-g_0440_0430_0444_0438_043a_043e_0432"></a>
+<h2 class="section">3.3 Примеры 3D графиков</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf3-sample">3.3.1 Surf3 &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cloud-sample">3.3.2 Cloud &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CloudP-sample">3.3.3 CloudP &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens3-sample">3.3.4 Dens3 &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont3-sample">3.3.5 Cont3 &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF3-sample">3.3.6 ContF3 &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-projection-sample">3.3.7 Cont projection &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens-projection-sample">3.3.8 Dens projection &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutMinMax-sample">3.3.9 CutMinMax &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutOff-sample">3.3.11 CutOff &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+<hr size="6">
+<a name="Surf3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cloud-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.1 Surf3 &ndash; пример использования</h3>
+<a name="index-Surf3"></a>
+<div class="float">
+<img src="../png/surf3.png" alt="../png/surf3">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+box
+surf3 a
+</pre><hr size="6">
+<a name="Cloud-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CloudP-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cloud-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.2 Cloud &ndash; пример использования</h3>
+<a name="index-Cloud"></a>
+<div class="float">
+<img src="../png/cloud.png" alt="../png/cloud">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+box
+cloud a 'wyrRk'
+</pre><hr size="6">
+<a name="CloudP-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cloud-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CloudP-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.3 CloudP &ndash; пример использования</h3>
+<a name="index-CloudP"></a>
+<div class="float">
+<img src="../png/cloudp.png" alt="../png/cloudp">
+</div><p>Not available.
+</p><hr size="6">
+<a name="Dens3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CloudP-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.4 Dens3 &ndash; пример использования</h3>
+<a name="index-Dens3"></a>
+<a name="index-Axis-2"></a>
+<div class="float">
+<img src="../png/densa.png" alt="../png/densa">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+origin 0 0 0
+box
+densa a
+axis
+</pre><hr size="6">
+<a name="Cont3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.5 Cont3 &ndash; пример использования</h3>
+<a name="index-Cont3"></a>
+<div class="float">
+<img src="../png/conta.png" alt="../png/conta">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+conta a
+</pre><hr size="6">
+<a name="ContF3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-projection-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.6 ContF3 &ndash; пример использования</h3>
+<a name="index-ContF3"></a>
+<div class="float">
+<img src="../png/contfa.png" alt="../png/contfa">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+box
+contfa a
+</pre><hr size="6">
+<a name="Cont-projection-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens-projection-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-projection-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.7 Cont projection &ndash; пример использования</h3>
+<a name="index-ContX"></a>
+<a name="index-ContY"></a>
+<a name="index-ContZ"></a>
+<div class="float">
+<img src="../png/cont_xyz.png" alt="../png/cont_xyz">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+contx s '' -1
+sum s a 'y'
+conty s '' 1
+sum s a 'z'
+contz s '' -1
+</pre><hr size="6">
+<a name="Dens-projection-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-projection-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutMinMax-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-projection-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.8 Dens projection &ndash; пример использования</h3>
+<a name="index-DensX"></a>
+<a name="index-DensY"></a>
+<a name="index-DensZ"></a>
+<div class="float">
+<img src="../png/dens_xyz.png" alt="../png/dens_xyz">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+densx s '' -1
+sum s a 'y'
+densy s '' 1
+sum s a 'z'
+densz s '' -1
+</pre><hr size="6">
+<a name="CutMinMax-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens-projection-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Isocaps-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutMinMax-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.9 CutMinMax &ndash; пример использования</h3>
+<a name="index-Surf3-1"></a>
+<a name="index-CutMin"></a>
+<a name="index-CutMax"></a>
+<div class="float">
+<img src="../png/cutminmax.png" alt="../png/cutminmax">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut 0 -1 -1 1 0 1
+box
+surf3 a
+</pre><hr size="6">
+<a name="Isocaps-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutMinMax-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutOff-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Isocaps_0027_0027-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</h3>
+<a name="index-Surf3-2"></a>
+<a name="index-ContF3-1"></a>
+<a name="index-CutMin-1"></a>
+<a name="index-CutMax-1"></a>
+<div class="float">
+<img src="../png/cutminmax2.png" alt="../png/cutminmax2">
+</div><pre class="verbatim">new a 61 51 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+cut 0 -1 -1 1 0 1.1
+box
+surf3 a -1
+contf3 a 'x' -1
+contf3 a 'y' -1
+contf3 a 'z' 0
+contf3 a 'z' 39
+</pre><hr size="6">
+<a name="CutOff-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Isocaps-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutOff-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.11 CutOff &ndash; пример использования</h3>
+<a name="index-Surf3-3"></a>
+<a name="index-CutOff"></a>
+<div class="float">
+<img src="../png/surf3_cutoff.png" alt="../png/surf3_cutoff">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut '(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)'
+box
+surf3 a
+</pre><hr size="6">
+<a name="Dual-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutOff-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfC-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-_043f_0430_0440_043d_044b_0445_002f_0432e_043a_0442_043e_0440_043d_044b_0445-g_0440_0430_0444_0438_043a_043e_0432"></a>
+<h2 class="section">3.4 Примеры парных/векторных графиков</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#SurfC-sample">3.4.1 SurfC &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#SurfA-sample">3.4.2 SurfA &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TileS-sample">3.4.3 TileS &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Map-sample">3.4.4 Map &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Traj-sample">3.4.5 Traj &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect-sample">3.4.6 Vect &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectL-sample">3.4.7 VectL &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectC-sample">3.4.8 VectC &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-sample">3.4.9 Flow &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe-sample">3.4.10 Pipe &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dew-sample">3.4.11 Dew &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3C-sample">3.4.12 Surf3C &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3A-sample">3.4.13 Surf3A &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect-3D-sample">3.4.14 Vect 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectL-3D-sample">3.4.15 VectL 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectC-3D-sample">3.4.16 VectC 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-3D-sample">3.4.17 Flow 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe-3D-sample">3.4.18 Pipe 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Crust-sample">3.4.19 Crust &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dots-sample">3.4.20 Dots &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+</table>
+<hr size="6">
+<a name="SurfC-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfA-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfC-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.1 SurfC &ndash; пример использования</h3>
+<a name="index-SurfC"></a>
+<div class="float">
+<img src="../png/surfc.png" alt="../png/surfc">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surfc a b
+</pre><hr size="6">
+<a name="SurfA-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfC-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TileS-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfA-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.2 SurfA &ndash; пример использования</h3>
+<a name="index-SurfA"></a>
+<div class="float">
+<img src="../png/surfa.png" alt="../png/surfa">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surfa a b
+</pre><hr size="6">
+<a name="TileS-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfA-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Map-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TileS-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.3 TileS &ndash; пример использования</h3>
+<a name="index-TileS"></a>
+<div class="float">
+<img src="../png/tiles.png" alt="../png/tiles">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+tile a b
+</pre><hr size="6">
+<a name="Map-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TileS-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Traj-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Map-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.4 Map &ndash; пример использования</h3>
+<a name="index-Map"></a>
+<div class="float">
+<img src="../png/map.png" alt="../png/map">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+text 0 0 '\to'
+zrange -2 2
+subplot 2 1 0
+text 0 1.1 '\{x, y\}' '' -2
+box
+fill a 'x'
+fill b 'y'
+map a b 'brgk' 0 0
+subplot 2 1 1
+text 0 1.1 '\{\frac{x^3+y^3}{2}, \frac{x-y}{2}\}' '' -2
+box
+fill a '(x^3+y^3)/2'
+fill b '(x-y)/2'
+map a b 'brgk' 0 0
+</pre><hr size="6">
+<a name="Traj-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Map-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Traj-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.5 Traj &ndash; пример использования</h3>
+<a name="index-Traj"></a>
+<div class="float">
+<img src="../png/traj.png" alt="../png/traj">
+</div><pre class="verbatim">new y 50 3
+new x 50
+new y1 50
+new y2 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+fill x -1 1
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+box
+plot x y
+traj x y y1 y2
+</pre><hr size="6">
+<a name="Vect-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Traj-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectL-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.6 Vect &ndash; пример использования</h3>
+<a name="index-Vect"></a>
+<div class="float">
+<img src="../png/vect.png" alt="../png/vect">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vect a b
+</pre><hr size="6">
+<a name="VectL-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectC-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectL-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.7 VectL &ndash; пример использования</h3>
+<a name="index-VectL"></a>
+<div class="float">
+<img src="../png/vectl.png" alt="../png/vectl">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectl a b
+</pre><hr size="6">
+<a name="VectC-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectL-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectC-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.8 VectC &ndash; пример использования</h3>
+<a name="index-VectC"></a>
+<div class="float">
+<img src="../png/vectc.png" alt="../png/vectc">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectc a b
+</pre><hr size="6">
+<a name="Flow-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectC-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.9 Flow &ndash; пример использования</h3>
+<a name="index-Flow"></a>
+<div class="float">
+<img src="../png/flow.png" alt="../png/flow">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+flow a b
+</pre><hr size="6">
+<a name="Pipe-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dew-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.10 Pipe &ndash; пример использования</h3>
+<a name="index-Pipe"></a>
+<div class="float">
+<img src="../png/pipe.png" alt="../png/pipe">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+box
+pipe a b
+</pre><hr size="6">
+<a name="Dew-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3C-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dew-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.11 Dew &ndash; пример использования</h3>
+<a name="index-Dew"></a>
+<div class="float">
+<img src="../png/dew.png" alt="../png/dew">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+light on
+dew a b
+</pre><hr size="6">
+<a name="Surf3C-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dew-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3A-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3C-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.12 Surf3C &ndash; пример использования</h3>
+<a name="index-Surf3C"></a>
+<div class="float">
+<img src="../png/surf3c.png" alt="../png/surf3c">
+</div><pre class="verbatim">new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3c a b
+</pre><hr size="6">
+<a name="Surf3A-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3C-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3A-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.13 Surf3A &ndash; пример использования</h3>
+<a name="index-Surf3A"></a>
+<div class="float">
+<img src="../png/surf3a.png" alt="../png/surf3a">
+</div><pre class="verbatim">new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3a a b
+</pre><hr size="6">
+<a name="Vect-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3A-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectL-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.14 Vect 3D &ndash; пример использования</h3>
+<a name="index-Vect-1"></a>
+<div class="float">
+<img src="../png/vect3.png" alt="../png/vect3">
+</div><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vect ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="VectL-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectC-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectL-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.15 VectL 3D &ndash; пример использования</h3>
+<a name="index-VectL-1"></a>
+<div class="float">
+<img src="../png/vectl3.png" alt="../png/vectl3">
+</div><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectl ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="VectC-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectL-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectC-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.16 VectC 3D &ndash; пример использования</h3>
+<a name="index-VectC-1"></a>
+<div class="float">
+<img src="../png/vectc3.png" alt="../png/vectc3">
+</div><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectc ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="Flow-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectC-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.17 Flow 3D &ndash; пример использования</h3>
+<a name="index-Flow-1"></a>
+<div class="float">
+<img src="../png/flow3.png" alt="../png/flow3">
+</div><pre class="verbatim">new ex 30 30 30
+new ey 30 30 30
+new ez 30 30 30
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+flow ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="Pipe-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Crust-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.18 Pipe 3D &ndash; пример использования</h3>
+<a name="index-Pipe-1"></a>
+<div class="float">
+<img src="../png/pipe3.png" alt="../png/pipe3">
+</div><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+light on
+box
+pipe ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="Crust-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dots-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Crust-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.19 Crust &ndash; пример использования</h3>
+<a name="index-Crust"></a>
+<div class="float">
+<img src="../png/crust.png" alt="../png/crust">
+</div><pre class="verbatim">read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+light on
+box
+crust a 'p'
+</pre><hr size="6">
+<a name="Dots-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Crust-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dots-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.20 Dots &ndash; пример использования</h3>
+<a name="index-Dots"></a>
+<div class="float">
+<img src="../png/dots.png" alt="../png/dots">
+</div><pre class="verbatim">read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+box
+dots a 'p'
+</pre>
+
+<hr size="6">
+<a name="Basic-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dots-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0411_0430_0437_043e_0432_044be-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438"></a>
+<h2 class="section">3.5 Базовые возможности</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t1D-plot-sample">3.5.1 Пример графиков 1D данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plot-sample">3.5.2 Пример графиков 2D данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plot-sample">3.5.3 Пример графиков 3D данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Line-styles-sample">3.5.4 Пример стилей линий и маркеров</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Arrow-styles-sample">3.5.5 Пример стилей стрелок</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-styles-sample">3.5.6 Пример стилей текста</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TeX-parsing-sample">3.5.7 Пример TeX формулы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-faces-sample">3.5.8 Примеры начертаний шрифта</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Colors-sample">3.5.9 Примеры цветов</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Color-schemes-sample">3.5.10 Примеры цветовых схем</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Normal-transparency">3.5.11 Обычная прозрачность</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Glass_002dlike-transparency">3.5.12 &quot;Стеклянная&quot; прозрачность</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lamp_002dlike-transparency">3.5.13 &quot;Ламповая&quot; прозрачность</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+</table>
+<hr size="6">
+<a name="g_t1D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Basic-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-1D-_0434_0430_043d_043d_044b_0445"></a>
+<h3 class="subsection">3.5.1 Пример графиков 1D данных</h3>
+<a name="index-Plot-1"></a>
+<a name="index-Bars-4"></a>
+<a name="index-SubPlot"></a>
+<div class="float">
+<img src="../png/sample8.png" alt="../png/sample8">
+</div><pre class="verbatim">new y0 50: modify y0 'sin(pi*(2*x-1))'
+subplot 2 2 0
+plot y0: box
+
+subplot 2 2 1
+new y1 50 2
+modify y1 'sin(pi*2*x-pi)'
+modify y1 'cos(pi*2*x-pi)/2' 1
+plot y1: box
+
+new x 50: modify x 'cos(pi*2*x-pi)'
+plot x y0 'Y+'
+plot y1(:,0) y(:,1) 'q|'
+
+subplot 2 2 2:rotate 60 40
+new z 50:   modify z '2*x-1'
+plot x y0 z 'g':box
+new y2 10 3
+modify y2 'cos(pi*(2*x-1-y))'
+modify y2 '2*x-1' 2
+plot y2(:,0) y2(:,1) y2(:,2) 'bo '
+
+subplot 2 2 3:rotate 60 40
+bars x y0 z 'r':box
+</pre><hr size="6">
+<a name="g_t2D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-2D-_0434_0430_043d_043d_044b_0445"></a>
+<h3 class="subsection">3.5.2 Пример графиков 2D данных</h3>
+<a name="index-Surf-4"></a>
+<a name="index-Dens-1"></a>
+<a name="index-Alpha-1"></a>
+<div class="float">
+<img src="../png/sample9.png" alt="../png/sample9">
+</div><pre class="verbatim">light on
+
+new a0 50 40
+modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+subplot 2 2 0:rotate 60 40
+surf a0: box
+
+new x 50 40: new y 50 40: new z 50 40
+modify x '0.8*sin(2*pi*x)*sin(pi*y)'
+modify y '0.8*cos(2*pi*x)*sin(pi*y)'
+modify z '0.8*cos(pi*y)'
+subplot 2 2 1:rotate 60 40
+surf x y z 'bbwrr': box
+
+new a1 50 40 3
+modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
+subplot 2 2 2:rotate 60 40
+alpha on
+surf a1: box
+
+subplot 2 2 3: rotate 60 40
+dens a1: box
+</pre><hr size="6">
+<a name="g_t3D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Line-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-3D-_0434_0430_043d_043d_044b_0445"></a>
+<h3 class="subsection">3.5.3 Пример графиков 3D данных</h3>
+<a name="index-Surf-5"></a>
+<a name="index-Dens-2"></a>
+<a name="index-Alpha-2"></a>
+<div class="float">
+<img src="../png/sampleb.png" alt="../png/sampleb">
+</div><pre class="verbatim">alpha on: light on
+light 0 0 0 1
+new a 30 30 30: new b 30 30 30
+modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
+modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
+caxis 0 1
+
+subplot 2 2 0: rotate 40 60
+surf3 a 'wgk': box
+subplot 2 2 1: rotate 40 60
+densa a: box: axis
+subplot 2 2 2: rotate 40 60
+cloud a: box
+subplot 2 2 3: rotate 40 60
+surf3a b a 'q': box
+</pre><hr size="6">
+<a name="Line-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Arrow-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_043b_0438_043d_0438_0439-_0438-_043c_0430_0440_043ae_0440_043e_0432"></a>
+<h3 class="subsection">3.5.4 Пример стилей линий и маркеров</h3>
+<a name="index-Mark-1"></a>
+<a name="index-Line"></a>
+<div class="float">
+<img src="../png/sample5.png" alt="../png/sample5">
+</div><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Arrow-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Line-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_0441_0442_0440e_043b_043e_043a"></a>
+<h3 class="subsection">3.5.5 Пример стилей стрелок</h3>
+<a name="index-Line-1"></a>
+<div class="float">
+<img src="../png/sampled.png" alt="../png/sampled">
+</div><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Text-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Arrow-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TeX-parsing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_0442e_043a_0441_0442_0430"></a>
+<h3 class="subsection">3.5.6 Пример стилей текста</h3>
+<a name="index-Puts"></a>
+<div class="float">
+<img src="../png/sample4.png" alt="../png/sample4">
+</div><pre class="verbatim">text 0 1 'Text can be in ASCII and in Unicode'
+text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
+text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
+text 0 -0.2 'Easy to \a{overline} or \u{underline}'
+text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
+text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
+</pre><hr size="6">
+<a name="TeX-parsing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-faces-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-TeX-_0444_043e_0440_043c_0443_043b_044b"></a>
+<h3 class="subsection">3.5.7 Пример TeX формулы</h3>
+<a name="index-Puts-1"></a>
+<div class="float">
+<img src="../png/samplee.png" alt="../png/samplee">
+</div><pre class="verbatim">text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}' '' -4
+</pre><hr size="6">
+<a name="Font-faces-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TeX-parsing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-_043d_0430_0447e_0440_0442_0430_043d_0438_0439-_0448_0440_0438_0444_0442_0430"></a>
+<h3 class="subsection">3.5.8 Примеры начертаний шрифта</h3>
+<a name="index-Puts-2"></a>
+<div class="float">
+<img src="../png/fonts.png" alt="../png/fonts">
+</div><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-faces-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Color-schemes-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-c_0432e_0442_043e_0432"></a>
+<h3 class="subsection">3.5.9 Примеры цветов</h3>
+<div class="float">
+<img src="../png/colors.png" alt="../png/colors">
+</div><pre class="verbatim">#LENUQ
+facez -1   -1 0 0.4 0.3 'L#': text -0.8 -0.9 'L' 'C:w'
+facez -0.6 -1 0 0.4 0.3 'E#': text -0.4 -0.9 'E' 'C:w'
+facez -0.2 -1 0 0.4 0.3 'N#': text  0   -0.9 'N' 'C:w'
+facez  0.2 -1 0 0.4 0.3 'U#': text  0.4 -0.9 'U' 'C:w'
+facez  0.6 -1 0 0.4 0.3 'Q#': text  0.8 -0.9 'Q' 'C:w'
+#lenuq
+facez -1   -0.7 0 0.4 0.3 'l#': text -0.8 -0.6 'l' 'C:k'
+facez -0.6 -0.7 0 0.4 0.3 'e#': text -0.4 -0.6 'e' 'C:k'
+facez -0.2 -0.7 0 0.4 0.3 'n#': text  0   -0.6 'n' 'C:k'
+facez  0.2 -0.7 0 0.4 0.3 'u#': text  0.4 -0.6 'u' 'C:k'
+facez  0.6 -0.7 0 0.4 0.3 'q#': text  0.8 -0.6 'q' 'C:k'
+#CMYkP
+facez -1   -0.4 0 0.4 0.3 'C#': text -0.8 -0.3 'C' 'C:w'
+facez -0.6 -0.4 0 0.4 0.3 'M#': text -0.4 -0.3 'M' 'C:w'
+facez -0.2 -0.4 0 0.4 0.3 'Y#': text  0   -0.3 'Y' 'C:w'
+facez  0.2 -0.4 0 0.4 0.3 'k#': text  0.4 -0.3 'k' 'C:w'
+facez  0.6 -0.4 0 0.4 0.3 'P#': text  0.8 -0.3 'P' 'C:w'
+#lenuq
+facez -1   -0.1 0 0.4 0.3 'c#': text -0.8 0 'c' 'C:k'
+facez -0.6 -0.1 0 0.4 0.3 'm#': text -0.4 0 'm' 'C:k'
+facez -0.2 -0.1 0 0.4 0.3 'y#': text  0   0 'y' 'C:k'
+facez  0.2 -0.1 0 0.4 0.3 'w#': text  0.4 0 'w' 'C:k'
+facez  0.6 -0.1 0 0.4 0.3 'p#': text  0.8 0 'p' 'C:k'
+#BGRHW
+facez -1   0.2 0 0.4 0.3 'B#': text -0.8 0.3 'B' 'C:k'
+facez -0.6 0.2 0 0.4 0.3 'G#': text -0.4 0.3 'G' 'C:k'
+facez -0.2 0.2 0 0.4 0.3 'R#': text  0   0.3 'R' 'C:k'
+facez  0.2 0.2 0 0.4 0.3 'H#': text  0.4 0.3 'H' 'C:k'
+facez  0.6 0.2 0 0.4 0.3 'W#': text  0.8 0.3 'W' 'C:k'
+#bgrhw
+facez -1   0.5 0 0.4 0.3 'b#': text -0.8 0.6 'b' 'C:w'
+facez -0.6 0.5 0 0.4 0.3 'g#': text -0.4 0.6 'g' 'C:w'
+facez -0.2 0.5 0 0.4 0.3 'r#': text  0   0.6 'r' 'C:w'
+facez  0.2 0.5 0 0.4 0.3 'h#': text  0.4 0.6 'h' 'C:w'
+facez  0.6 0.5 0 0.4 0.3 'w#': text  0.8 0.6 'w' 'C:w'
+#brighted
+facez -1   0.8 0 0.4 0.3 'r1#': text -0.8 0.9 'r1' 'C:k'
+facez -0.6 0.8 0 0.4 0.3 'r3#': text -0.4 0.9 'r3' 'C:k'
+facez -0.2 0.8 0 0.4 0.3 'r5#': text  0   0.9 'r5' 'C:k'
+facez  0.2 0.8 0 0.4 0.3 'r7#': text  0.4 0.9 'r7' 'C:k'
+facez  0.6 0.8 0 0.4 0.3 'r9#': text  0.8 0.9 'r9' 'C:k'
+</pre><hr size="6">
+<a name="Color-schemes-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Normal-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-c_0432e_0442_043e_0432_044b_0445-_0441_0445e_043c"></a>
+<h3 class="subsection">3.5.10 Примеры цветовых схем</h3>
+<a name="index-Colorbar-1"></a>
+<div class="float">
+<img src="../png/color_schemes.png" alt="../png/color_schemes">
+</div><pre class="verbatim">new a 256 2: fill a 'x'
+subplot 2 10 0 0.2:dens a 'kw'
+text -1.4 -0.3 'kw' '' -8
+subplot 2 10 1 0.2:dens a 'wk'
+text -1.4 -0.3 'wk' '' -8
+subplot 2 10 2 0.2:dens a 'kHCcw'
+text -1.4 -0.3 'kHCcw' '' -8
+subplot 2 10 3 0.2:dens a 'kBbcw'
+text -1.4 -0.3 'kBbcw' '' -8
+subplot 2 10 4 0.2:dens a 'kRryw'
+text -1.4 -0.3 'kRryw' '' -8
+subplot 2 10 5 0.2:dens a 'kGgew'
+text -1.4 -0.3 'kGgew' '' -8
+subplot 2 10 6 0.2:dens a 'BbwrR'
+text -1.4 -0.3 'BbwrR' '' -8
+subplot 2 10 7 0.2:dens a 'BbwgG'
+text -1.4 -0.3 'BbwgG' '' -8
+subplot 2 10 8 0.2:dens a 'GgwmM'
+text -1.4 -0.3 'GgwmM' '' -8
+subplot 2 10 9 0.2:dens a 'UuwqR'
+text -1.4 -0.3 'UuwqR' '' -8
+subplot 2 10 10 0.2:dens a 'QqwcC'
+text -1.4 -0.3 'QqwcC' '' -8
+subplot 2 10 11 0.2:dens a 'CcwyY'
+text -1.4 -0.3 'CcwyY' '' -8
+subplot 2 10 12 0.2:dens a 'bcwyr'
+text -1.4 -0.3 'bcwyr' '' -8
+subplot 2 10 13 0.2:dens a 'bwr'
+text -1.4 -0.3 'bwr' '' -8
+subplot 2 10 14 0.2:dens a 'BbcyrR'
+text -1.4 -0.3 'BbcyrR' '' -8
+subplot 2 10 15 0.2:dens a 'UbcyqR'
+text -1.4 -0.3 'UbcyqR' '' -8
+subplot 2 10 16 0.2:dens a 'BbcwyrR'
+text -1.4 -0.3 'BbcwyrR' '' -8
+subplot 2 10 17 0.2:dens a 'bcyr'
+text -1.4 -0.3 'bcyr' '' -8
+subplot 2 10 18 0.2:dens a 'BbcyrR|'
+text -1.4 -0.3 'BbcyrR|' '' -8
+subplot 2 10 19 0.2:dens a 'bgr'
+text -1.4 -0.3 'bgr' '' -8
+</pre><hr size="6">
+<a name="Normal-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Color-schemes-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Glass_002dlike-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0431_044b_0447_043d_0430ya-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x"></a>
+<h3 class="subsection">3.5.11 Обычная прозрачность</h3>
+<a name="index-TranspType"></a>
+<div class="float">
+<img src="../png/type0.png" alt="../png/type0">
+</div><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 0: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre><hr size="6">
+<a name="Glass_002dlike-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Normal-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lamp_002dlike-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0022_0421_0442e_043a_043bya_043d_043d_0430ya_0022-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x"></a>
+<h3 class="subsection">3.5.12 &quot;Стеклянная&quot; прозрачность</h3>
+<a name="index-TranspType-1"></a>
+<div class="float">
+<img src="../png/type1.png" alt="../png/type1">
+</div><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 1: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre><hr size="6">
+<a name="Lamp_002dlike-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Glass_002dlike-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0022_041b_0430_043c_043f_043e_0432_0430ya_0022-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x"></a>
+<h3 class="subsection">3.5.13 &quot;Ламповая&quot; прозрачность</h3>
+<a name="index-TranspType-2"></a>
+<div class="float">
+<img src="../png/type2.png" alt="../png/type2">
+</div><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 2: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre>
+
+
+
+
+
+
+
+
+<hr size="6">
+<a name="Additional-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lamp_002dlike-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0414_043e_043f_043e_043b_043d_0438_0442e_043bx_043d_044be-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438"></a>
+<h2 class="section">3.6 Дополнительные возможности</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Legend-sample">3.6.1 Legend &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Adding-mesh-sample">3.6.2 Добавляем сетку</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf-_0026-Cont-sample">3.6.3 Surf &amp; Cont &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-_0026-Dens-sample">3.6.4 Flow &amp; Dens &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Several-light-sample">3.6.5 Несколько источников света</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mirrored-surface-sample">3.6.6 Отражение поверхности</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-with-labels-sample">3.6.7 Cont и подписи &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ternary-plot-sample">3.6.8 Ternary plot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Coloring-by-coordinates-sample">3.6.9 Окрашивание по положению грани</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Drops-sample">3.6.10 Drops &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Molecules-drawing-sample">3.6.11 Рисование молекул</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">    
+</td></tr>
+</table>
+<hr size="6">
+<a name="Legend-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Additional-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Adding-mesh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Legend-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.6.1 Legend &ndash; пример использования</h3>
+<a name="index-Plot-2"></a>
+<a name="index-Legend"></a>
+<a name="index-AddLegend"></a>
+<div class="float">
+<img src="../png/legend.png" alt="../png/legend">
+</div><pre class="verbatim">new f 50 3
+modify f 'sin(2*pi*x*x)'
+modify f 'sin(2*pi*x)' 1
+modify f 'sin(2*pi*sqrt(x))' 2
+axis 0 -1 1 1
+box
+plot f
+axis
+addlegend 'sin(\pi {x^2})' 'b'
+addlegend 'sin(\pi x)' 'g*'
+addlegend 'sin(\pi \sqrt{\a x})' 'r+'
+legend
+</pre><hr size="6">
+<a name="Adding-mesh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf-_0026-Cont-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0414_043e_0431_0430_0432_043byae_043c-_0441e_0442_043a_0443"></a>
+<h3 class="subsection">3.6.2 Добавляем сетку</h3>
+<a name="index-SubPlot-1"></a>
+<a name="index-Surf-6"></a>
+<a name="index-Dens-3"></a>
+<a name="index-Cont-1"></a>
+<a name="index-Axial-1"></a>
+<div class="float">
+<img src="../png/samplea.png" alt="../png/samplea">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+alpha on
+light on
+subplot 2 2 0
+rotate 40 60
+surf a 'BbcyrR#'
+box
+subplot 2 2 1
+rotate 40 60
+dens a 'BbcyrR#'
+box
+subplot 2 2 2
+rotate 40 60
+cont a 'BbcyrR#'
+box
+subplot 2 2 3
+rotate 40 60
+axial a 'BbcyrR#'
+box
+</pre><hr size="6">
+<a name="Surf-_0026-Cont-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Adding-mesh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-_0026-Dens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-_0026-Cont-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.6.3 Surf &amp; Cont &ndash; пример использования</h3>
+<a name="index-Surf-7"></a>
+<a name="index-Cont-2"></a>
+<div class="float">
+<img src="../png/surf_cont_y.png" alt="../png/surf_cont_y">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+cont a 'y'
+</pre><hr size="6">
+<a name="Flow-_0026-Dens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf-_0026-Cont-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Several-light-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-_0026-Dens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.6.4 Flow &amp; Dens &ndash; пример использования</h3>
+<a name="index-Flow-2"></a>
+<a name="index-Dens-4"></a>
+<div class="float">
+<img src="../png/flow_dens.png" alt="../png/flow_dens">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+copy d a
+modify d 'sqrt(v^2+w^2)' a b
+box
+flow a b 'br'
+dens d 'BbcyrR'
+</pre><hr size="6">
+<a name="Several-light-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-_0026-Dens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mirrored-surface-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041de_0441_043a_043e_043bx_043a_043e-_0438_0441_0442_043e_0447_043d_0438_043a_043e_0432-_0441_0432e_0442_0430"></a>
+<h3 class="subsection">3.6.5 Несколько источников света</h3>
+<a name="index-Surf-8"></a>
+<a name="index-Light"></a>
+<div class="float">
+<img src="../png/several_light.png" alt="../png/several_light">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+light 1 0 1 0 'c'
+light 2 1 0 0 'y'
+light 3 0 -1 0 'm'
+box
+surf a 'h'
+</pre><hr size="6">
+<a name="Mirrored-surface-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Several-light-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-with-labels-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0442_0440_0430_0436e_043d_0438e-_043f_043e_0432e_0440_0445_043d_043e_0441_0442_0438"></a>
+<h3 class="subsection">3.6.6 Отражение поверхности</h3>
+<a name="index-Surf-9"></a>
+<div class="float">
+<img src="../png/mirror.png" alt="../png/mirror">
+</div><pre class="verbatim">new a 30 40
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf a 'r'; yrange 0 1
+surf a 'b'; yrange 0 -1
+box
+</pre><p>or
+</p><pre class="verbatim">new a 30 40
+var x 30 -1 1
+var y1 40 0 1
+var y2 40 0 -1
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf x y1 a 'r'
+surf x y2 a 'b'
+box
+</pre><hr size="6">
+<a name="Cont-with-labels-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mirrored-surface-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ternary-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-_0438-_043f_043e_0434_043f_0438_0441_0438-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.6.7 Cont и подписи &ndash; пример использования</h3>
+<a name="index-Cont-3"></a>
+<div class="float">
+<img src="../png/contt.png" alt="../png/contt">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+cont a 'BbcyrRt'
+</pre><hr size="6">
+<a name="Ternary-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-with-labels-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Coloring-by-coordinates-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ternary-plot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.6.8 Ternary plot &ndash; пример использования</h3>
+<a name="index-Ternary"></a>
+<div class="float">
+<img src="../png/ternary.png" alt="../png/ternary">
+</div><pre class="verbatim">new rx 10
+new ry 10
+new x 50
+new y 50
+new a 20 30
+modify a '4*x*y'
+modify x '0.25*(1+cos(2*pi*x))'
+modify y '0.25*(1+sin(2*pi*x))'
+modify rx 'rnd'
+modify ry 'rnd*(1-v)' rx
+text -0.8 1.3 'Ternary plot (x+y+t=1)'
+ternary on
+plot x y 'r2'
+plot rx ry 'q^ '
+cont a
+line 0.5 0 0 0.75 'g2'
+axis
+grid 'xyz' 'B;'
+xlabel 'x comp.'
+ylabel 'y comp.'
+tlabel 't comp.'
+</pre><hr size="6">
+<a name="Coloring-by-coordinates-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ternary-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Drops-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_043a_0440_0430_0448_0438_0432_0430_043d_0438e-_043f_043e-_043f_043e_043b_043e_0436e_043d_0438_044e-g_0440_0430_043d_0438"></a>
+<h3 class="subsection">3.6.9 Окрашивание по положению грани</h3>
+<a name="index-Surf3-4"></a>
+<div class="float">
+<img src="../png/surf3_rgbd.png" alt="../png/surf3_rgbd">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+surf3 a 'bgrd'
+</pre><hr size="6">
+<a name="Drops-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Coloring-by-coordinates-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Molecules-drawing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Drops-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.6.10 Drops &ndash; пример использования</h3>
+<a name="index-Drop"></a>
+<div class="float">
+<img src="../png/drops.png" alt="../png/drops">
+</div><pre class="verbatim">light on
+text -1 1.2 'sh=0'
+drop -1 0 0 1 0.5 'r' 0
+text -0.33 1.2 'sh=0.33'
+drop -0.33 0 0 1 0.5 'r' 0.33
+text 0.33 1.2 'sh=0.67'
+drop 0.33 0 0 1 0.5 'r' 0.67
+text 1 1.2 'sh=1'
+drop 1 0 0 1 0.5 'r' 1
+ball -1 0 1 'k'
+ball -0.33 0 1 'k'
+ball 0.33 0 1 'k'
+ball 1 0 1 'k'
+line -1 0 1 1 0 1 'b'
+new h 100
+modify h '0.25*(1+x)^2'
+plot h 'k|'
+text -1 0.6 'h\sim(1+sh)^2' 'rL'
+</pre><hr size="6">
+<a name="Molecules-drawing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Drops-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0420_0438_0441_043e_0432_0430_043d_0438e-_043c_043e_043be_043a_0443_043b"></a>
+<h3 class="subsection">3.6.11 Рисование молекул</h3>
+<a name="index-Drop-1"></a>
+<a name="index-Sphere"></a>
+<div class="float">
+<img src="../png/molecule.png" alt="../png/molecule">
+</div><pre class="verbatim">alpha on
+light on
+subplot 2 2 0
+text 0 1.2 'Methane, CH_4' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'k'
+drop 0 0 0 0 0 1 0.35 'h' 1 2
+sphere 0 0 0.7 0.25 'g'
+drop 0 0 0 -0.94 0 -0.33 0.35 'h' 1 2
+sphere -0.66 0 -0.23 0.25 'g'
+drop 0 0 0 0.47 0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 0.57 -0.23 0.25 'g'
+drop 0 0 0 0.47 -0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 -0.57 -0.23 0.25 'g'
+subplot 2 2 1
+text 0 1.2 'Water, H{_2}O' '' -3
+rotate 60 100
+sphere 0 0 0 0.25 'r'
+drop 0 0 0 0.3 0.5 0 0.3 'm' 1 2
+sphere 0.3 0.5 0 0.25 'g'
+drop 0 0 0 0.3 -0.5 0 0.3 'm' 1 2
+sphere 0.3 -0.5 0 0.25 'g'
+subplot 2 2 2
+text 0 1.2 'Oxygen, O_2' '' -3
+rotate 60 120
+drop 0 0.5 0 0 -0.3 0 0.3 'm' 1 2
+sphere 0 0.5 0 0.25 'r'
+drop 0 -0.5 0 0 0.3 0 0.3 'm' 1 2
+sphere 0 -0.5 0 0.25 'r'
+subplot 2 2 3
+text 0 1.2 0 'Ammonia, NH_3' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'b'
+drop 0 0 0 0.33 0.57 0 0.32 'n' 1 2
+sphere 0.33 0.57 0 0.25 'g'
+drop 0 0 0 0.33 -0.57 0 0.32 'n' 1 2
+sphere 0.33 -0.57 0 0.25 'g'
+drop 0 0 0 -0.65 0 0 0.32 'n' 1 2
+sphere -0.65 0 0 0.25 'g'
+</pre><hr size="6">
+<a name="Advanced-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Molecules-drawing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Curvelinear-coorinates-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0022_041f_0440_043e_0434_0432_0438_043d_0443_0442_044be_0022-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438"></a>
+<h2 class="section">3.7 &quot;Продвинутые&quot; возможности</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Curvelinear-coorinates-sample">3.7.1 Криволинейные координаты</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2_002daxes-sample">3.7.2 Несколько осей на одном графике</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Semi_002dlog-sample">3.7.3 Semi-log &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Log_002dlog-sample">3.7.4 Log-log &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fitting-sample">3.7.5 Fitting &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Envelop-sample">3.7.6 Envelop &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Sew-sample">3.7.7 Sew &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#STFA-sample">3.7.8 STFA &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#PDE-sample">3.7.9 PDE &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Beam-tracing-sample">3.7.10 Beam tracing &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Parser-sample">3.7.11 Parser &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Manual-ticks-sample">3.7.12 Особые метки по осям</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ColumnPlot-sample">3.7.13 ColumnPlot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#StickPlot-sample">3.7.14 StickPlot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stereo-image-sample">3.7.15 Пример стерео изображения</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+</table>
+<hr size="6">
+<a name="Curvelinear-coorinates-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Advanced-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2_002daxes-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041a_0440_0438_0432_043e_043b_0438_043de_0439_043d_044be-_043a_043e_043e_0440_0434_0438_043d_0430_0442_044b"></a>
+<h3 class="subsection">3.7.1 Криволинейные координаты</h3>
+<a name="index-Axis-3"></a>
+<div class="float">
+<img src="../png/sample3.png" alt="../png/sample3">
+</div><pre class="verbatim">origin -1 1 -1
+subplot 2 2 0
+rotate 60 40
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cartesian'
+subplot 2 2 1
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cylindrical'
+subplot 2 2 2
+rotate 60 40
+axis '2*y*x' 'y*y - x*x' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Parabolic'
+subplot 2 2 3
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Spiral'
+axis '' '' '' # set to default Cartesian
+</pre><hr size="6">
+<a name="g_t2_002daxes-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Curvelinear-coorinates-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Semi_002dlog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041de_0441_043a_043e_043bx_043a_043e-_043e_0441e_0439-_043d_0430-_043e_0434_043d_043e_043c-g_0440_0430_0444_0438_043ae"></a>
+<h3 class="subsection">3.7.2 Несколько осей на одном графике</h3>
+<a name="index-Axis-4"></a>
+<div class="float">
+<img src="../png/2_axis.png" alt="../png/2_axis">
+</div><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+axis -1 -1 -1 1 1 1
+origin -1 -1 -1
+axis
+ylabel 'axis 1' 0
+plot y1 'b'
+axis 0 0 0 1 1 1
+origin 1 1 1
+axis
+ylabel 'axis 2' 0
+stem y2 'r'
+</pre><hr size="6">
+<a name="Semi_002dlog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2_002daxes-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Log_002dlog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Semi_002dlog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.3 Semi-log &ndash; пример использования</h3>
+<a name="index-Axis-5"></a>
+<a name="index-SetTicks"></a>
+<a name="index-Plot-3"></a>
+<div class="float">
+<img src="../png/semilog.png" alt="../png/semilog">
+</div><pre class="verbatim">new x 2000
+new y 2000
+modify x '0.01/(x+10^(-5))'
+modify y 'sin(1/v)' x
+xrange 0.01 1000
+origin 0.01 -1 0
+xtick 0
+axis 'lg(x)' '' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g'
+xlabel 'x' 0
+ylabel 'y = sin 1/x' 0
+box
+</pre><hr size="6">
+<a name="Log_002dlog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Semi_002dlog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fitting-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Log_002dlog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.4 Log-log &ndash; пример использования</h3>
+<a name="index-Axis-6"></a>
+<a name="index-SetTicks-1"></a>
+<a name="index-Plot-4"></a>
+<div class="float">
+<img src="../png/loglog.png" alt="../png/loglog">
+</div><pre class="verbatim">new x 100
+new y 100
+modify x 'pow(10,6*x-3)'
+modify y 'sqrt(1+v^2)' x
+axis 0.001 0.1 1000 1000
+xtick 0
+ytick 0
+axis 'lg(x)' 'lg(y)' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g;'
+xlabel 'x' 0
+ylabel 'y=\sqrt{1+x^2}' 0
+box
+</pre><hr size="6">
+<a name="Fitting-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Log_002dlog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Envelop-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fitting-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.5 Fitting &ndash; пример использования</h3>
+<a name="index-Fit"></a>
+<a name="index-PutsFit"></a>
+<div class="float">
+<img src="../png/fit.png" alt="../png/fit">
+</div><pre class="verbatim">new rnd 100
+fill rnd '0.4*rnd+0.1+sin(2*pi*x)'
+new in 100
+fill in '0.3+sin(2*pi*x)'
+yrange -2 2
+plot rnd '. '
+box
+list ini 1 1 3
+fit res rnd 'a+b*sin(c*x)' 'abc' ini
+plot res 'r'
+plot in 'b'
+text -1 -1.3 'fitted:' 'L:r' -1
+putsfit 0 -1.8 'y = ' 'C:r'
+text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
+</pre><hr size="6">
+<a name="Envelop-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fitting-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Sew-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Envelop-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.6 Envelop &ndash; пример использования</h3>
+<a name="index-Envelop"></a>
+<div class="float">
+<img src="../png/envelop.png" alt="../png/envelop">
+</div><pre class="verbatim">new a 1000
+fill a 'exp(-8*x^2)*sin(10*pi*x)'
+plot a 'b'
+envelop a
+plot a 'r'
+axis
+</pre><hr size="6">
+<a name="Sew-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Envelop-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#STFA-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Sew-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.7 Sew &ndash; пример использования</h3>
+<a name="index-Sew"></a>
+<div class="float">
+<img src="../png/sew.png" alt="../png/sew">
+</div><pre class="verbatim">new a 100 100
+modify a 'mod((y^2-(1-x)^2)/2,0.1)'
+rotate 40 60
+light on
+alpha on
+surf a 'b'
+sew a 'xy' 0.1
+surf a 'r'
+box
+</pre><hr size="6">
+<a name="STFA-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Sew-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#PDE-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="STFA-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.8 STFA &ndash; пример использования</h3>
+<a name="index-STFA"></a>
+<div class="float">
+<img src="../png/stfa.png" alt="../png/stfa">
+</div><pre class="verbatim">new a 2000
+new b 2000
+fill a 'cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)'
+subplot 1 2 0
+plot a
+axis
+xlabel '\i t'
+subplot 1 2 1
+stfa a b 64 ''
+axis
+ylabel '\omega' 0
+xlabel '\i t'
+</pre><hr size="6">
+<a name="PDE-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#STFA-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Beam-tracing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="PDE-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.9 PDE &ndash; пример использования</h3>
+<a name="index-mglPDE"></a>
+<a name="index-mglRay"></a>
+<div class="float">
+<img src="../png/pde.png" alt="../png/pde">
+</div><pre class="verbatim">axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+fill re 'exp(-48*(x+0.7)^2)'
+pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)' re im 0.01 30
+transpose a
+crange 0 1
+dens a 'wyrRk'
+fplot '-x' 'k|'
+text 0 0.85 'absorption: (x+z)/2 for x+z&gt;0' '' -1
+title 'Equation: ik_0\partial_zu + \Delta u + x\cdot u + i \frac{x+z}{2}\cdot u = 0' 'iC' -1.5
+</pre><hr size="6">
+<a name="Beam-tracing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#PDE-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Parser-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Beam-tracing-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.10 Beam tracing &ndash; пример использования</h3>
+<a name="index-mglQO2d"></a>
+<a name="index-mglRay-1"></a>
+<div class="float">
+<img src="../png/qo2d.png" alt="../png/qo2d">
+</div><pre class="verbatim">define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)'
+ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
+plot r(0) r(1) 'k'
+axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+new xx
+new yy
+fill re 'exp(-48*x^2)'
+qo2d a $1 re im r 1 30 xx yy 
+crange 0 1
+dens xx yy a 'wyrRk'
+fplot '-x' 'k|'
+text -0.8 0.85 'absorption: (x+y)/2 for x+y&gt;0' 'L' -1
+text 0.5 -0.05 'central ray' 'L' -1
+title 'Beam and ray tracing' 'C' -1.5
+</pre><hr size="6">
+<a name="Parser-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Beam-tracing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Manual-ticks-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Parser-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.11 Parser &ndash; пример использования</h3>
+<a name="index-mglParse"></a>
+<hr size="6">
+<a name="Manual-ticks-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Parser-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ColumnPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_043e_0431_044be-_043ce_0442_043a_0438-_043f_043e-_043e_0441ya_043c"></a>
+<h3 class="subsection">3.7.12 Особые метки по осям</h3>
+<a name="index-SetTicksVal"></a>
+<div class="float">
+<img src="../png/tval.png" alt="../png/tval">
+</div><pre class="verbatim">axis -pi 0 pi 2
+xtick -pi '-\pi' -1.571 '-\pi/2' 0 '0' 0.886 'x^*' 1.571 '\pi/2' pi '\pi'
+axis 
+grid
+fplot '2*cos(x^2)^2' 'r2' nan 300
+</pre><hr size="6">
+<a name="ColumnPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Manual-ticks-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#StickPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ColumnPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.13 ColumnPlot &ndash; пример использования</h3>
+<a name="index-SetTicksVal-1"></a>
+<div class="float">
+<img src="../png/column.png" alt="../png/column">
+</div><pre class="verbatim">for $1 0 3
+columnplot 4 $1
+box
+text -0.5 0.5 'Plot $1 of 4'
+fplot 'sin(pi*x+pi*$1/2)'
+next
+</pre><hr size="6">
+<a name="StickPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ColumnPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stereo-image-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="StickPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.14 StickPlot &ndash; пример использования</h3>
+<a name="index-SetTicksVal-2"></a>
+<div class="float">
+<img src="../png/stick.png" alt="../png/stick">
+</div><pre class="verbatim">ranges -1 1 -1 1 0 1:light on
+stickplot 3 0 40 30 : axis 'xyz_'
+fsurf 'exp(-10*y^2-6*x^2)'
+text 0.2 0 1.2 'z=0' '' -2
+stickplot 3 1 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/2-6*x^2)/sqrt(2)'
+text 0.2 0 1.2 'z=1' '' -2
+stickplot 3 2 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/5-6*x^2)/sqrt(5)'
+text 0.2 0 1.2 'z=2' '' -2
+xlabel '\tau' 0 : ylabel '\rho'
+</pre><hr size="6">
+<a name="Stereo-image-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#StickPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-_0441_0442e_0440e_043e-_0438_0437_043e_0431_0440_0430_0436e_043d_0438ya"></a>
+<h3 class="subsection">3.7.15 Пример стерео изображения</h3>
+<div class="float">
+<img src="../png/stereo.png" alt="../png/stereo">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+subplot 2 1 0
+rotate 40 60+3
+box:surf a
+subplot 2 1 1
+rotate 40 60-3
+box:surf a
+</pre>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_4.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_4.html
new file mode 100644
index 0000000..4c76bcc
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_4.html
@@ -0,0 +1,514 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: A. GNU Free Documentation License</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: A. GNU Free Documentation License">
+<meta name="keywords" content="Язык MGL для версии 1.11: A. GNU Free Documentation License">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Copying-This-Manual"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_3.html#Stereo-image-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="GNU-Free-Documentation-License"></a>
+<h1 class="appendix">A. GNU Free Documentation License</h1>
+<p align="center"> Version 1.2, November 2002
+</p>
+
+<table><tr><td>&nbsp;</td><td><pre class="display">Copyright &copy; 2000,2001,2002 Free Software Foundation, Inc.
+51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+</pre></td></tr></table>
+
+<ol>
+<li>
+PREAMBLE
+
+<p>The purpose of this License is to make a manual, textbook, or other
+functional and useful document <em>free</em> in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+</p>
+<p>This License is a kind of &ldquo;copyleft&rdquo;, which means that derivative
+works of the document must themselves be free in the same sense.  It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+</p>
+<p>We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does.  But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book.  We recommend this License
+principally for works whose purpose is instruction or reference.
+</p>
+</li><li>
+APPLICABILITY AND DEFINITIONS
+
+<p>This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License.  Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein.  The &ldquo;Document&rdquo;, below,
+refers to any such manual or work.  Any member of the public is a
+licensee, and is addressed as &ldquo;you&rdquo;.  You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+</p>
+<p>A &ldquo;Modified Version&rdquo; of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+</p>
+<p>A &ldquo;Secondary Section&rdquo; is a named appendix or a front-matter section
+of the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document&rsquo;s overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject.  (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.)  The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+</p>
+<p>The &ldquo;Invariant Sections&rdquo; are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License.  If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant.  The Document may contain zero
+Invariant Sections.  If the Document does not identify any Invariant
+Sections then there are none.
+</p>
+<p>The &ldquo;Cover Texts&rdquo; are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.  A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+</p>
+<p>A &ldquo;Transparent&rdquo; copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters.  A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text.  A copy that is not &ldquo;Transparent&rdquo; is called &ldquo;Opaque&rdquo;.
+</p>
+<p>Examples of suitable formats for Transparent copies include plain
+<small>ASCII</small> without markup, Texinfo input format, LaTeX input
+format, <acronym>SGML</acronym> or <acronym>XML</acronym> using a publicly available
+<acronym>DTD</acronym>, and standard-conforming simple <acronym>HTML</acronym>,
+PostScript or <acronym>PDF</acronym> designed for human modification.  Examples
+of transparent image formats include <acronym>PNG</acronym>, <acronym>XCF</acronym> and
+<acronym>JPG</acronym>.  Opaque formats include proprietary formats that can be
+read and edited only by proprietary word processors, <acronym>SGML</acronym> or
+<acronym>XML</acronym> for which the <acronym>DTD</acronym> and/or processing tools are
+not generally available, and the machine-generated <acronym>HTML</acronym>,
+PostScript or <acronym>PDF</acronym> produced by some word processors for
+output purposes only.
+</p>
+<p>The &ldquo;Title Page&rdquo; means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page.  For works in
+formats which do not have any title page as such, &ldquo;Title Page&rdquo; means
+the text near the most prominent appearance of the work&rsquo;s title,
+preceding the beginning of the body of the text.
+</p>
+<p>A section &ldquo;Entitled XYZ&rdquo; means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language.  (Here XYZ stands for a
+specific section name mentioned below, such as &ldquo;Acknowledgements&rdquo;,
+&ldquo;Dedications&rdquo;, &ldquo;Endorsements&rdquo;, or &ldquo;History&rdquo;.)  To &ldquo;Preserve the Title&rdquo;
+of such a section when you modify the Document means that it remains a
+section &ldquo;Entitled XYZ&rdquo; according to this definition.
+</p>
+<p>The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document.  These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+</p>
+</li><li>
+VERBATIM COPYING
+
+<p>You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License.  You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute.  However, you may accept
+compensation in exchange for copies.  If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+</p>
+<p>You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+</p>
+</li><li>
+COPYING IN QUANTITY
+
+<p>If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document&rsquo;s license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover.  Both covers must also clearly and legibly identify
+you as the publisher of these copies.  The front cover must present
+the full title with all words of the title equally prominent and
+visible.  You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+</p>
+<p>If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+</p>
+<p>If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+</p>
+<p>It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+</p>
+</li><li>
+MODIFICATIONS
+
+<p>You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it.  In addition, you must do these things in the Modified Version:
+</p>
+<ol>
+<li>
+Use in the Title Page (and on the covers, if any) a title distinct
+from that of the Document, and from those of previous versions
+(which should, if there were any, be listed in the History section
+of the Document).  You may use the same title as a previous version
+if the original publisher of that version gives permission.
+
+</li><li>
+List on the Title Page, as authors, one or more persons or entities
+responsible for authorship of the modifications in the Modified
+Version, together with at least five of the principal authors of the
+Document (all of its principal authors, if it has fewer than five),
+unless they release you from this requirement.
+
+</li><li>
+State on the Title page the name of the publisher of the
+Modified Version, as the publisher.
+
+</li><li>
+Preserve all the copyright notices of the Document.
+
+</li><li>
+Add an appropriate copyright notice for your modifications
+adjacent to the other copyright notices.
+
+</li><li>
+Include, immediately after the copyright notices, a license notice
+giving the public permission to use the Modified Version under the
+terms of this License, in the form shown in the Addendum below.
+
+</li><li>
+Preserve in that license notice the full lists of Invariant Sections
+and required Cover Texts given in the Document&rsquo;s license notice.
+
+</li><li>
+Include an unaltered copy of this License.
+
+</li><li>
+Preserve the section Entitled &ldquo;History&rdquo;, Preserve its Title, and add
+to it an item stating at least the title, year, new authors, and
+publisher of the Modified Version as given on the Title Page.  If
+there is no section Entitled &ldquo;History&rdquo; in the Document, create one
+stating the title, year, authors, and publisher of the Document as
+given on its Title Page, then add an item describing the Modified
+Version as stated in the previous sentence.
+
+</li><li>
+Preserve the network location, if any, given in the Document for
+public access to a Transparent copy of the Document, and likewise
+the network locations given in the Document for previous versions
+it was based on.  These may be placed in the &ldquo;History&rdquo; section.
+You may omit a network location for a work that was published at
+least four years before the Document itself, or if the original
+publisher of the version it refers to gives permission.
+
+</li><li>
+For any section Entitled &ldquo;Acknowledgements&rdquo; or &ldquo;Dedications&rdquo;, Preserve
+the Title of the section, and preserve in the section all the
+substance and tone of each of the contributor acknowledgements and/or
+dedications given therein.
+
+</li><li>
+Preserve all the Invariant Sections of the Document,
+unaltered in their text and in their titles.  Section numbers
+or the equivalent are not considered part of the section titles.
+
+</li><li>
+Delete any section Entitled &ldquo;Endorsements&rdquo;.  Such a section
+may not be included in the Modified Version.
+
+</li><li>
+Do not retitle any existing section to be Entitled &ldquo;Endorsements&rdquo; or
+to conflict in title with any Invariant Section.
+
+</li><li>
+Preserve any Warranty Disclaimers.
+</li></ol>
+
+<p>If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant.  To do this, add their titles to the
+list of Invariant Sections in the Modified Version&rsquo;s license notice.
+These titles must be distinct from any other section titles.
+</p>
+<p>You may add a section Entitled &ldquo;Endorsements&rdquo;, provided it contains
+nothing but endorsements of your Modified Version by various
+parties&mdash;for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+</p>
+<p>You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version.  Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity.  If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+</p>
+<p>The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+</p>
+</li><li>
+COMBINING DOCUMENTS
+
+<p>You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+</p>
+<p>The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy.  If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+</p>
+<p>In the combination, you must combine any sections Entitled &ldquo;History&rdquo;
+in the various original documents, forming one section Entitled
+&ldquo;History&rdquo;; likewise combine any sections Entitled &ldquo;Acknowledgements&rdquo;,
+and any sections Entitled &ldquo;Dedications&rdquo;.  You must delete all
+sections Entitled &ldquo;Endorsements.&rdquo;
+</p>
+</li><li>
+COLLECTIONS OF DOCUMENTS
+
+<p>You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+</p>
+<p>You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+</p>
+</li><li>
+AGGREGATION WITH INDEPENDENT WORKS
+
+<p>A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an &ldquo;aggregate&rdquo; if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation&rsquo;s users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+</p>
+<p>If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document&rsquo;s Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+</p>
+</li><li>
+TRANSLATION
+
+<p>Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections.  You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers.  In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+</p>
+<p>If a section in the Document is Entitled &ldquo;Acknowledgements&rdquo;,
+&ldquo;Dedications&rdquo;, or &ldquo;History&rdquo;, the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+</p>
+</li><li>
+TERMINATION
+
+<p>You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License.  Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License.  However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+</p>
+</li><li>
+FUTURE REVISIONS OF THIS LICENSE
+
+<p>The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time.  Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.  See
+<a href="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</a>.
+</p>
+<p>Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License &ldquo;or any later version&rdquo; applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation.  If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+</p></li></ol>
+
+
+<a name="ADDENDUM_003a-How-to-use-this-License-for-your-documents"></a>
+<h2 class="heading">ADDENDUM: How to use this License for your documents</h2>
+
+<p>To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample">  Copyright (C)  <var>year</var>  <var>your name</var>.
+  Permission is granted to copy, distribute and/or modify this document
+  under the terms of the GNU Free Documentation License, Version 1.2
+  or any later version published by the Free Software Foundation;
+  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+  Texts.  A copy of the license is included in the section entitled ``GNU
+  Free Documentation License''.
+</pre></td></tr></table>
+
+<p>If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the &ldquo;with&hellip;Texts.&rdquo; line with this:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample">    with the Invariant Sections being <var>list their titles</var>, with
+    the Front-Cover Texts being <var>list</var>, and with the Back-Cover Texts
+    being <var>list</var>.
+</pre></td></tr></table>
+
+<p>If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+</p>
+<p>If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
+</p>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_5.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_5.html
new file mode 100644
index 0000000..2c51cbe
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_5.html
@@ -0,0 +1,306 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: Индекс</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: Индекс">
+<meta name="keywords" content="Язык MGL для версии 1.11: Индекс">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Index"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_6.html#index_split-0" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_043d_0434e_043a_0441"></a>
+<h1 class="unnumbered">Индекс</h1>
+
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_ru_8.html#index_split-2_cp_symbol-1" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-2" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-3" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="g_t_0418_043d_0434e_043a_0441_cp_letter-A">A</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-addlegend">addlegend</a></td><td valign="top"><a href="mgl_ru_1.html#Legend">1.9 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-AddLegend">AddLegend</a></td><td valign="top"><a href="mgl_ru_3.html#Legend-sample">3.6.1 Legend &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-addto">addto</a></td><td valign="top"><a href="mgl_ru_1.html#Operators">1.23 Операторы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-adjust">adjust</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-alpha">alpha</a></td><td valign="top"><a href="mgl_ru_1.html#Transparency">1.2.1 Прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Alpha">Alpha</a></td><td valign="top"><a href="mgl_ru_3.html#Transparent-surface-sample">3.2.2 Transparent surface &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Alpha-1">Alpha</a></td><td valign="top"><a href="mgl_ru_3.html#g_t2D-plot-sample">3.5.2 Пример графиков 2D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-alpha-2">alpha</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Alpha-2">Alpha</a></td><td valign="top"><a href="mgl_ru_3.html#g_t3D-plot-sample">3.5.3 Пример графиков 3D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-alphadef">alphadef</a></td><td valign="top"><a href="mgl_ru_1.html#Transparency">1.2.1 Прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-alphadef-2">alphadef</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ambient">ambient</a></td><td valign="top"><a href="mgl_ru_1.html#Lighting">1.2.2 Освещение</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ambient-2">ambient</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-area">area</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Area">Area</a></td><td valign="top"><a href="mgl_ru_3.html#Area-sample">3.1.4 Area &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Area-1">Area</a></td><td valign="top"><a href="mgl_ru_3.html#Area-gradient-sample">3.1.5 Area с градиентной заливкой &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-arrowsize">arrowsize</a></td><td valign="top"><a href="mgl_ru_1.html#Default-sizes">1.2.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-aspect">aspect</a></td><td valign="top"><a href="mgl_ru_1.html#Transformation-matrix">1.4 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Axial">Axial</a></td><td valign="top"><a href="mgl_ru_3.html#Axial-sample">3.2.14 Axial &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-axial">axial</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Axial-1">Axial</a></td><td valign="top"><a href="mgl_ru_3.html#Adding-mesh-sample">3.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-axialdir">axialdir</a></td><td valign="top"><a href="mgl_ru_1.html#Other-settings">1.2.7 Прочие настройки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-axis">axis</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Axis">Axis</a></td><td valign="top"><a href="mgl_ru_3.html#Pie-chart-sample">3.1.23 Pie chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-axis-5">axis</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-and-Colorbar">1.8 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Axis-1">Axis</a></td><td valign="top"><a href="mgl_ru_3.html#Ring-chart-sample">3.1.24 Ring chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Axis-2">Axis</a></td><td valign="top"><a href="mgl_ru_3.html#Dens3-sample">3.3.4 Dens3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Axis-3">Axis</a></td><td valign="top"><a href="mgl_ru_3.html#Curvelinear-coorinates-sample">3.7.1 Криволинейные координаты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Axis-4">Axis</a></td><td valign="top"><a href="mgl_ru_3.html#g_t2_002daxes-sample">3.7.2 Несколько осей на одном графике</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Axis-5">Axis</a></td><td valign="top"><a href="mgl_ru_3.html#Semi_002dlog-sample">3.7.3 Semi-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Axis-6">Axis</a></td><td valign="top"><a href="mgl_ru_3.html#Log_002dlog-sample">3.7.4 Log-log &ndash; пример использования</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="g_t_0418_043d_0434e_043a_0441_cp_letter-B">B</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ball">ball</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-barh">barh</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Barh">Barh</a></td><td valign="top"><a href="mgl_ru_3.html#Barh-sample">3.1.10 Barh &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-bars">bars</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Bars">Bars</a></td><td valign="top"><a href="mgl_ru_3.html#Bars-sample">3.1.6 Bars &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Bars-1">Bars</a></td><td valign="top"><a href="mgl_ru_3.html#Bars-2-colors-sample">3.1.7 Bars (2 цвета) &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Bars-2">Bars</a></td><td valign="top"><a href="mgl_ru_3.html#Bars-above-sample">3.1.8 Bars (один над другим) &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Bars-3">Bars</a></td><td valign="top"><a href="mgl_ru_3.html#Bars-fall-sample">3.1.9 Bars &quot;водопад&quot; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Bars-4">Bars</a></td><td valign="top"><a href="mgl_ru_3.html#g_t1D-plot-sample">3.5.1 Пример графиков 1D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-barwidth">barwidth</a></td><td valign="top"><a href="mgl_ru_1.html#Default-sizes">1.2.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-beam">beam</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Belt">Belt</a></td><td valign="top"><a href="mgl_ru_3.html#Belt-sample">3.2.7 Belt &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-belt">belt</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-box">box</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-and-Colorbar">1.8 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-BoxPlot">BoxPlot</a></td><td valign="top"><a href="mgl_ru_3.html#BoxPlot-sample">3.1.16 BoxPlot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-boxplot">boxplot</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-boxs">boxs</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Boxs">Boxs</a></td><td valign="top"><a href="mgl_ru_3.html#Boxs-sample">3.2.9 Boxs &ndash; пример использования</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="g_t_0418_043d_0434e_043a_0441_cp_letter-C">C</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-call">call</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-caxis">caxis</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-chart">chart</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Chart">Chart</a></td><td valign="top"><a href="mgl_ru_3.html#Chart-sample">3.1.22 Chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Chart-1">Chart</a></td><td valign="top"><a href="mgl_ru_3.html#Pie-chart-sample">3.1.23 Pie chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Chart-2">Chart</a></td><td valign="top"><a href="mgl_ru_3.html#Ring-chart-sample">3.1.24 Ring chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-chdir">chdir</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-clearlegend">clearlegend</a></td><td valign="top"><a href="mgl_ru_1.html#Legend">1.9 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-clf">clf</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-cloud">cloud</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Cloud">Cloud</a></td><td valign="top"><a href="mgl_ru_3.html#Cloud-sample">3.3.2 Cloud &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-CloudP">CloudP</a></td><td valign="top"><a href="mgl_ru_3.html#CloudP-sample">3.3.3 CloudP &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-colorbar">colorbar</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-and-Colorbar">1.8 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Colorbar">Colorbar</a></td><td valign="top"><a href="mgl_ru_3.html#Dens-sample">3.2.10 Dens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Colorbar-1">Colorbar</a></td><td valign="top"><a href="mgl_ru_3.html#Color-schemes-sample">3.5.10 Примеры цветовых схем</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-columnplot">columnplot</a></td><td valign="top"><a href="mgl_ru_1.html#Transformation-matrix">1.4 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-combine">combine</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-cone">cone</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Cont">Cont</a></td><td valign="top"><a href="mgl_ru_3.html#Cont-sample">3.2.11 Cont &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-cont">cont</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Cont-1">Cont</a></td><td valign="top"><a href="mgl_ru_3.html#Adding-mesh-sample">3.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Cont-2">Cont</a></td><td valign="top"><a href="mgl_ru_3.html#Surf-_0026-Cont-sample">3.6.3 Surf &amp; Cont &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Cont-3">Cont</a></td><td valign="top"><a href="mgl_ru_3.html#Cont-with-labels-sample">3.6.7 Cont и подписи &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Cont3">Cont3</a></td><td valign="top"><a href="mgl_ru_3.html#Cont3-sample">3.3.5 Cont3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-cont3">cont3</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-conta">conta</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-contd">contd</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-ContD">ContD</a></td><td valign="top"><a href="mgl_ru_3.html#ContD-sample">3.2.13 ContD &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-contf">contf</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-ContF">ContF</a></td><td valign="top"><a href="mgl_ru_3.html#ContF-sample">3.2.12 ContF &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-ContF3">ContF3</a></td><td valign="top"><a href="mgl_ru_3.html#ContF3-sample">3.3.6 ContF3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-contf3">contf3</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-ContF3-1">ContF3</a></td><td valign="top"><a href="mgl_ru_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-contfa">contfa</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-contfx">contfx</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-contfy">contfy</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-contfz">contfz</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-ContX">ContX</a></td><td valign="top"><a href="mgl_ru_3.html#Cont-projection-sample">3.3.7 Cont projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-contx">contx</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-ContY">ContY</a></td><td valign="top"><a href="mgl_ru_3.html#Cont-projection-sample">3.3.7 Cont projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-conty">conty</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-contz">contz</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-ContZ">ContZ</a></td><td valign="top"><a href="mgl_ru_3.html#Cont-projection-sample">3.3.7 Cont projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-copy">copy</a></td><td valign="top"><a href="mgl_ru_1.html#Data-create">1.17 Создание данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-cosfft">cosfft</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-crange">crange</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-crange-3">crange</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-crop">crop</a></td><td valign="top"><a href="mgl_ru_1.html#Rearrange-data">1.19 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-crust">crust</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Crust">Crust</a></td><td valign="top"><a href="mgl_ru_3.html#Crust-sample">3.4.19 Crust &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ctick">ctick</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-cumsum">cumsum</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-curve">curve</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-cut">cut</a></td><td valign="top"><a href="mgl_ru_1.html#Cutting">1.2.6 Обрезание</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-cut-4">cut</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-CutMax">CutMax</a></td><td valign="top"><a href="mgl_ru_3.html#CutMinMax-sample">3.3.9 CutMinMax &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-CutMax-1">CutMax</a></td><td valign="top"><a href="mgl_ru_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-CutMin">CutMin</a></td><td valign="top"><a href="mgl_ru_3.html#CutMinMax-sample">3.3.9 CutMinMax &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-CutMin-1">CutMin</a></td><td valign="top"><a href="mgl_ru_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-CutOff">CutOff</a></td><td valign="top"><a href="mgl_ru_3.html#CutOff-sample">3.3.11 CutOff &ndash; пример использования</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_ru_8.html#index_split-2_cp_symbol-1" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-2" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-3" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_6.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_6.html
new file mode 100644
index 0000000..63c02ec
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_6.html
@@ -0,0 +1,321 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: Индекс: D &ndash; M</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: Индекс: D &ndash; M">
+<meta name="keywords" content="Язык MGL для версии 1.11: Индекс: D &ndash; M">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-0"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_7.html#index_split-1" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Индекс: D &ndash; M</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_ru_8.html#index_split-2_cp_symbol-1" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-2" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-3" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-D">D</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-defchr">defchr</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-define">define</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-defnum">defnum</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-defpal">defpal</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-delete">delete</a></td><td valign="top"><a href="mgl_ru_1.html#Rearrange-data">1.19 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-dens">dens</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Dens">Dens</a></td><td valign="top"><a href="mgl_ru_3.html#Dens-sample">3.2.10 Dens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Dens-1">Dens</a></td><td valign="top"><a href="mgl_ru_3.html#g_t2D-plot-sample">3.5.2 Пример графиков 2D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Dens-2">Dens</a></td><td valign="top"><a href="mgl_ru_3.html#g_t3D-plot-sample">3.5.3 Пример графиков 3D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Dens-3">Dens</a></td><td valign="top"><a href="mgl_ru_3.html#Adding-mesh-sample">3.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Dens-4">Dens</a></td><td valign="top"><a href="mgl_ru_3.html#Flow-_0026-Dens-sample">3.6.4 Flow &amp; Dens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-dens3">dens3</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Dens3">Dens3</a></td><td valign="top"><a href="mgl_ru_3.html#Dens3-sample">3.3.4 Dens3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-densa">densa</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-densx">densx</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-DensX">DensX</a></td><td valign="top"><a href="mgl_ru_3.html#Dens-projection-sample">3.3.8 Dens projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-DensY">DensY</a></td><td valign="top"><a href="mgl_ru_3.html#Dens-projection-sample">3.3.8 Dens projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-densy">densy</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-densz">densz</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-DensZ">DensZ</a></td><td valign="top"><a href="mgl_ru_3.html#Dens-projection-sample">3.3.8 Dens projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Dew">Dew</a></td><td valign="top"><a href="mgl_ru_3.html#Dew-sample">3.4.11 Dew &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-dew">dew</a></td><td valign="top"><a href="mgl_ru_1.html#Vector-fields">1.14 Векторные поля</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-diff">diff</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-diff2">diff2</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-divto">divto</a></td><td valign="top"><a href="mgl_ru_1.html#Operators">1.23 Операторы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-dots">dots</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Dots">Dots</a></td><td valign="top"><a href="mgl_ru_3.html#Dots-sample">3.4.20 Dots &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-drop">drop</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Drop">Drop</a></td><td valign="top"><a href="mgl_ru_3.html#Drops-sample">3.6.10 Drops &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Drop-1">Drop</a></td><td valign="top"><a href="mgl_ru_3.html#Molecules-drawing-sample">3.6.11 Рисование молекул</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-E">E</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-else">else</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-elseif">elseif</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-endif">endif</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-envelop">envelop</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Envelop">Envelop</a></td><td valign="top"><a href="mgl_ru_3.html#Envelop-sample">3.7.6 Envelop &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Error">Error</a></td><td valign="top"><a href="mgl_ru_3.html#Error-sample">3.1.15 Error &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-error">error</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-evaluate">evaluate</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-export">export</a></td><td valign="top"><a href="mgl_ru_1.html#File-I_002fO">1.20 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-extend">extend</a></td><td valign="top"><a href="mgl_ru_1.html#Rearrange-data">1.19 Изменение размеров данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-F">F</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-facex">facex</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-facey">facey</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-facez">facez</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fall">fall</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Fall">Fall</a></td><td valign="top"><a href="mgl_ru_3.html#Fall-sample">3.2.6 Fall &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fgets">fgets</a></td><td valign="top"><a href="mgl_ru_1.html#Text-printing">1.7 Вывод текста</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fill">fill</a></td><td valign="top"><a href="mgl_ru_1.html#Data-filling">1.18 Заполнение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fill-1">fill</a></td><td valign="top"><a href="mgl_ru_1.html#Data-filling">1.18 Заполнение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fit">fit</a></td><td valign="top"><a href="mgl_ru_1.html#Nonlinear-fitting">1.16 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Fit">Fit</a></td><td valign="top"><a href="mgl_ru_3.html#Fitting-sample">3.7.5 Fitting &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fits">fits</a></td><td valign="top"><a href="mgl_ru_1.html#Nonlinear-fitting">1.16 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Flow">Flow</a></td><td valign="top"><a href="mgl_ru_3.html#Flow-sample">3.4.9 Flow &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-flow">flow</a></td><td valign="top"><a href="mgl_ru_1.html#Vector-fields">1.14 Векторные поля</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Flow-1">Flow</a></td><td valign="top"><a href="mgl_ru_3.html#Flow-3D-sample">3.4.17 Flow 3D &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Flow-2">Flow</a></td><td valign="top"><a href="mgl_ru_3.html#Flow-_0026-Dens-sample">3.6.4 Flow &amp; Dens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fog">fog</a></td><td valign="top"><a href="mgl_ru_1.html#Fog">1.2.3 Туман</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Fog">Fog</a></td><td valign="top"><a href="mgl_ru_3.html#Surface-in-fog-sample">3.2.3 Surface in fog &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-font">font</a></td><td valign="top"><a href="mgl_ru_1.html#Other-settings">1.2.7 Прочие настройки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fontsize">fontsize</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-for">for</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fplot">fplot</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fsurf">fsurf</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-func">func</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-G">G</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-grad">grad</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Grad">Grad</a></td><td valign="top"><a href="mgl_ru_3.html#Grad-sample">3.2.15 Grad &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-grid">grid</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-and-Colorbar">1.8 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-grid2">grid2</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-grid3">grid3</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-grida">grida</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-H">H</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-hankel">hankel</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-hist">hist</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-I">I</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-idset">idset</a></td><td valign="top"><a href="mgl_ru_1.html#Data-create">1.17 Создание данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-if">if</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-import">import</a></td><td valign="top"><a href="mgl_ru_1.html#File-I_002fO">1.20 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-info">info</a></td><td valign="top"><a href="mgl_ru_1.html#Data-create">1.17 Создание данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-inplot">inplot</a></td><td valign="top"><a href="mgl_ru_1.html#Transformation-matrix">1.4 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-insert">insert</a></td><td valign="top"><a href="mgl_ru_1.html#Rearrange-data">1.19 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-integrate">integrate</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-J">J</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-jacobian">jacobian</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-L">L</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Legend">Legend</a></td><td valign="top"><a href="mgl_ru_3.html#Legend-sample">3.6.1 Legend &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-legend">legend</a></td><td valign="top"><a href="mgl_ru_1.html#Legend">1.9 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-legend-3">legend</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-legendbox">legendbox</a></td><td valign="top"><a href="mgl_ru_1.html#Legend">1.9 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-legendmarks">legendmarks</a></td><td valign="top"><a href="mgl_ru_1.html#Legend">1.9 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-light">light</a></td><td valign="top"><a href="mgl_ru_1.html#Lighting">1.2.2 Освещение</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Light">Light</a></td><td valign="top"><a href="mgl_ru_3.html#Several-light-sample">3.6.5 Несколько источников света</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Line">Line</a></td><td valign="top"><a href="mgl_ru_3.html#Line-styles-sample">3.5.4 Пример стилей линий и маркеров</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-line">line</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Line-1">Line</a></td><td valign="top"><a href="mgl_ru_3.html#Arrow-styles-sample">3.5.5 Пример стилей стрелок</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-linewidth">linewidth</a></td><td valign="top"><a href="mgl_ru_1.html#Default-sizes">1.2.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-list">list</a></td><td valign="top"><a href="mgl_ru_1.html#Data-create">1.17 Создание данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-M">M</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-map">map</a></td><td valign="top"><a href="mgl_ru_1.html#Dual-plotting">1.13 Парные графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Map">Map</a></td><td valign="top"><a href="mgl_ru_3.html#Map-sample">3.4.4 Map &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-mark">mark</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Mark">Mark</a></td><td valign="top"><a href="mgl_ru_3.html#Mark-sample">3.1.17 Mark &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Mark-1">Mark</a></td><td valign="top"><a href="mgl_ru_3.html#Line-styles-sample">3.5.4 Пример стилей линий и маркеров</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-marksize">marksize</a></td><td valign="top"><a href="mgl_ru_1.html#Default-sizes">1.2.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-marksize-2">marksize</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-max">max</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-mesh">mesh</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Mesh">Mesh</a></td><td valign="top"><a href="mgl_ru_3.html#Mesh-sample">3.2.5 Mesh &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-meshnum">meshnum</a></td><td valign="top"><a href="mgl_ru_1.html#Other-settings">1.2.7 Прочие настройки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-meshnum-2">meshnum</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-mglParse">mglParse</a></td><td valign="top"><a href="mgl_ru_3.html#Parser-sample">3.7.11 Parser &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-mglPDE">mglPDE</a></td><td valign="top"><a href="mgl_ru_3.html#PDE-sample">3.7.9 PDE &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-mglQO2d">mglQO2d</a></td><td valign="top"><a href="mgl_ru_3.html#Beam-tracing-sample">3.7.10 Beam tracing &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-mglRay">mglRay</a></td><td valign="top"><a href="mgl_ru_3.html#PDE-sample">3.7.9 PDE &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-mglRay-1">mglRay</a></td><td valign="top"><a href="mgl_ru_3.html#Beam-tracing-sample">3.7.10 Beam tracing &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-min">min</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-mirror">mirror</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-modify">modify</a></td><td valign="top"><a href="mgl_ru_1.html#Data-filling">1.18 Заполнение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-modify-1">modify</a></td><td valign="top"><a href="mgl_ru_1.html#Data-filling">1.18 Заполнение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-momentum">momentum</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-multo">multo</a></td><td valign="top"><a href="mgl_ru_1.html#Operators">1.23 Операторы</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_ru_8.html#index_split-2_cp_symbol-1" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-2" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-3" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_7.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_7.html
new file mode 100644
index 0000000..d197eb2
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_7.html
@@ -0,0 +1,302 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: Индекс: N &ndash; S</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: Индекс: N &ndash; S">
+<meta name="keywords" content="Язык MGL для версии 1.11: Индекс: N &ndash; S">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-1"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_6.html#index_split-0" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_8.html#index_split-2" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Индекс: N &ndash; S</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_ru_8.html#index_split-2_cp_symbol-1" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-2" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-3" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-N">N</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-new">new</a></td><td valign="top"><a href="mgl_ru_1.html#Data-create">1.17 Создание данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-next">next</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-norm">norm</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-normsl">normsl</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-O">O</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-once">once</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-origin">origin</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-P">P</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-palette">palette</a></td><td valign="top"><a href="mgl_ru_1.html#Other-settings">1.2.7 Прочие настройки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-pde">pde</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-perspective">perspective</a></td><td valign="top"><a href="mgl_ru_1.html#Transformation-matrix">1.4 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-pipe">pipe</a></td><td valign="top"><a href="mgl_ru_1.html#Vector-fields">1.14 Векторные поля</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Pipe">Pipe</a></td><td valign="top"><a href="mgl_ru_3.html#Pipe-sample">3.4.10 Pipe &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Pipe-1">Pipe</a></td><td valign="top"><a href="mgl_ru_3.html#Pipe-3D-sample">3.4.18 Pipe 3D &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Plot">Plot</a></td><td valign="top"><a href="mgl_ru_3.html#Plot-sample">3.1.1 Plot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-plot">plot</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Plot-1">Plot</a></td><td valign="top"><a href="mgl_ru_3.html#g_t1D-plot-sample">3.5.1 Пример графиков 1D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Plot-2">Plot</a></td><td valign="top"><a href="mgl_ru_3.html#Legend-sample">3.6.1 Legend &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Plot-3">Plot</a></td><td valign="top"><a href="mgl_ru_3.html#Semi_002dlog-sample">3.7.3 Semi-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Plot-4">Plot</a></td><td valign="top"><a href="mgl_ru_3.html#Log_002dlog-sample">3.7.4 Log-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-plotfactor">plotfactor</a></td><td valign="top"><a href="mgl_ru_1.html#Zooming">1.2.5 Масштабирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-put">put</a></td><td valign="top"><a href="mgl_ru_1.html#Data-filling">1.18 Заполнение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Puts">Puts</a></td><td valign="top"><a href="mgl_ru_3.html#Text-styles-sample">3.5.6 Пример стилей текста</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Puts-1">Puts</a></td><td valign="top"><a href="mgl_ru_3.html#TeX-parsing-sample">3.5.7 Пример TeX формулы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Puts-2">Puts</a></td><td valign="top"><a href="mgl_ru_3.html#Font-faces-sample">3.5.8 Примеры начертаний шрифта</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-PutsFit">PutsFit</a></td><td valign="top"><a href="mgl_ru_3.html#Fitting-sample">3.7.5 Fitting &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-putsfit">putsfit</a></td><td valign="top"><a href="mgl_ru_1.html#Nonlinear-fitting">1.16 Nonlinear fitting</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-Q">Q</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-qo2d">qo2d</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-quadplot">quadplot</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-R">R</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Radar">Radar</a></td><td valign="top"><a href="mgl_ru_3.html#Radar-sample">3.1.2 Radar &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-radar">radar</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ranges">ranges</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ray">ray</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-read">read</a></td><td valign="top"><a href="mgl_ru_1.html#File-I_002fO">1.20 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-readall">readall</a></td><td valign="top"><a href="mgl_ru_1.html#File-I_002fO">1.20 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-readhdf">readhdf</a></td><td valign="top"><a href="mgl_ru_1.html#File-I_002fO">1.20 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-readmat">readmat</a></td><td valign="top"><a href="mgl_ru_1.html#File-I_002fO">1.20 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-rearrange">rearrange</a></td><td valign="top"><a href="mgl_ru_1.html#Rearrange-data">1.19 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-rect">rect</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Region">Region</a></td><td valign="top"><a href="mgl_ru_3.html#Region-sample">3.1.13 Region &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-region">region</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Region-1">Region</a></td><td valign="top"><a href="mgl_ru_3.html#Region-gradient-sample">3.1.14 Region с градиентной заливкой &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-resize">resize</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-return">return</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-roll">roll</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-rotate">rotate</a></td><td valign="top"><a href="mgl_ru_1.html#Transformation-matrix">1.4 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-rotatetext">rotatetext</a></td><td valign="top"><a href="mgl_ru_1.html#Other-settings">1.2.7 Прочие настройки</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-S">S</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-save">save</a></td><td valign="top"><a href="mgl_ru_1.html#File-I_002fO">1.20 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-savehdf">savehdf</a></td><td valign="top"><a href="mgl_ru_1.html#File-I_002fO">1.20 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-setsize">setsize</a></td><td valign="top"><a href="mgl_ru_1.html#Export-to-file">1.5 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-SetTicks">SetTicks</a></td><td valign="top"><a href="mgl_ru_3.html#Semi_002dlog-sample">3.7.3 Semi-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-SetTicks-1">SetTicks</a></td><td valign="top"><a href="mgl_ru_3.html#Log_002dlog-sample">3.7.4 Log-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-SetTicksVal">SetTicksVal</a></td><td valign="top"><a href="mgl_ru_3.html#Manual-ticks-sample">3.7.12 Особые метки по осям</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-SetTicksVal-1">SetTicksVal</a></td><td valign="top"><a href="mgl_ru_3.html#ColumnPlot-sample">3.7.13 ColumnPlot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-SetTicksVal-2">SetTicksVal</a></td><td valign="top"><a href="mgl_ru_3.html#StickPlot-sample">3.7.14 StickPlot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Sew">Sew</a></td><td valign="top"><a href="mgl_ru_3.html#Sew-sample">3.7.7 Sew &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-sew">sew</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-sinfft">sinfft</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-smooth">smooth</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Sphere">Sphere</a></td><td valign="top"><a href="mgl_ru_3.html#Molecules-drawing-sample">3.6.11 Рисование молекул</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-sphere">sphere</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-squeeze">squeeze</a></td><td valign="top"><a href="mgl_ru_1.html#Rearrange-data">1.19 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-stem">stem</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Stem">Stem</a></td><td valign="top"><a href="mgl_ru_3.html#Stem-sample">3.1.12 Stem &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-step">step</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Step">Step</a></td><td valign="top"><a href="mgl_ru_3.html#Step-sample">3.1.11 Step &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-stfa">stfa</a></td><td valign="top"><a href="mgl_ru_1.html#Dual-plotting">1.13 Парные графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-STFA">STFA</a></td><td valign="top"><a href="mgl_ru_3.html#STFA-sample">3.7.8 STFA &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-stfad">stfad</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-stickplot">stickplot</a></td><td valign="top"><a href="mgl_ru_1.html#Transformation-matrix">1.4 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-stop">stop</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-subdata">subdata</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-SubPlot">SubPlot</a></td><td valign="top"><a href="mgl_ru_3.html#g_t1D-plot-sample">3.5.1 Пример графиков 1D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-subplot">subplot</a></td><td valign="top"><a href="mgl_ru_1.html#Transformation-matrix">1.4 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-SubPlot-1">SubPlot</a></td><td valign="top"><a href="mgl_ru_3.html#Adding-mesh-sample">3.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-subto">subto</a></td><td valign="top"><a href="mgl_ru_1.html#Operators">1.23 Операторы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-sum">sum</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#Surf-sample">3.2.1 Surf &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-surf">surf</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf-1">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#Transparent-surface-sample">3.2.2 Transparent surface &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf-2">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#Surface-in-fog-sample">3.2.3 Surface in fog &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf-3">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#Sharp-colors-sample">3.2.4 Sharp colors &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf-4">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#g_t2D-plot-sample">3.5.2 Пример графиков 2D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf-5">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#g_t3D-plot-sample">3.5.3 Пример графиков 3D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf-6">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#Adding-mesh-sample">3.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf-7">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#Surf-_0026-Cont-sample">3.6.3 Surf &amp; Cont &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf-8">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#Several-light-sample">3.6.5 Несколько источников света</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf-9">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#Mirrored-surface-sample">3.6.6 Отражение поверхности</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-surf3">surf3</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf3">Surf3</a></td><td valign="top"><a href="mgl_ru_3.html#Surf3-sample">3.3.1 Surf3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf3-1">Surf3</a></td><td valign="top"><a href="mgl_ru_3.html#CutMinMax-sample">3.3.9 CutMinMax &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf3-2">Surf3</a></td><td valign="top"><a href="mgl_ru_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf3-3">Surf3</a></td><td valign="top"><a href="mgl_ru_3.html#CutOff-sample">3.3.11 CutOff &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf3-4">Surf3</a></td><td valign="top"><a href="mgl_ru_3.html#Coloring-by-coordinates-sample">3.6.9 Окрашивание по положению грани</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf3A">Surf3A</a></td><td valign="top"><a href="mgl_ru_3.html#Surf3A-sample">3.4.13 Surf3A &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-surf3a">surf3a</a></td><td valign="top"><a href="mgl_ru_1.html#Dual-plotting">1.13 Парные графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf3C">Surf3C</a></td><td valign="top"><a href="mgl_ru_3.html#Surf3C-sample">3.4.12 Surf3C &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-surf3c">surf3c</a></td><td valign="top"><a href="mgl_ru_1.html#Dual-plotting">1.13 Парные графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-surfa">surfa</a></td><td valign="top"><a href="mgl_ru_1.html#Dual-plotting">1.13 Парные графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-SurfA">SurfA</a></td><td valign="top"><a href="mgl_ru_3.html#SurfA-sample">3.4.2 SurfA &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-SurfC">SurfC</a></td><td valign="top"><a href="mgl_ru_3.html#SurfC-sample">3.4.1 SurfC &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-surfc">surfc</a></td><td valign="top"><a href="mgl_ru_1.html#Dual-plotting">1.13 Парные графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-swap">swap</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_ru_8.html#index_split-2_cp_symbol-1" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-2" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-3" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_8.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_8.html
new file mode 100644
index 0000000..1f8da49
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_8.html
@@ -0,0 +1,271 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: Индекс: T &ndash; Ц</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: Индекс: T &ndash; Ц">
+<meta name="keywords" content="Язык MGL для версии 1.11: Индекс: T &ndash; Ц">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-2"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_7.html#index_split-1" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[ &gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Индекс: T &ndash; Ц</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#index_split-2_cp_symbol-1" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_symbol-2" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_symbol-3" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-T">T</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Tens">Tens</a></td><td valign="top"><a href="mgl_ru_3.html#Tens-sample">3.1.3 Tens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-tens">tens</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Ternary">Ternary</a></td><td valign="top"><a href="mgl_ru_3.html#Ternary-plot-sample">3.6.8 Ternary plot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ternary">ternary</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Text">Text</a></td><td valign="top"><a href="mgl_ru_3.html#Text-sample">3.1.20 Text &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-text">text</a></td><td valign="top"><a href="mgl_ru_1.html#Text-printing">1.7 Вывод текста</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-textmark">textmark</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-TextMark">TextMark</a></td><td valign="top"><a href="mgl_ru_3.html#TextMark-sample">3.1.18 TextMark &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ticklen">ticklen</a></td><td valign="top"><a href="mgl_ru_1.html#Default-sizes">1.2.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-tickstl">tickstl</a></td><td valign="top"><a href="mgl_ru_1.html#Default-sizes">1.2.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-tile">tile</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Tile">Tile</a></td><td valign="top"><a href="mgl_ru_3.html#Tile-sample">3.2.8 Tile &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-tiles">tiles</a></td><td valign="top"><a href="mgl_ru_1.html#Dual-plotting">1.13 Парные графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-TileS">TileS</a></td><td valign="top"><a href="mgl_ru_3.html#TileS-sample">3.4.3 TileS &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-title">title</a></td><td valign="top"><a href="mgl_ru_1.html#Text-printing">1.7 Вывод текста</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-tlabel">tlabel</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-and-Colorbar">1.8 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-torus">torus</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Torus">Torus</a></td><td valign="top"><a href="mgl_ru_3.html#Torus-sample">3.1.21 Torus &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-trace">trace</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Traj">Traj</a></td><td valign="top"><a href="mgl_ru_3.html#Traj-sample">3.4.5 Traj &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-traj">traj</a></td><td valign="top"><a href="mgl_ru_1.html#Vector-fields">1.14 Векторные поля</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-transform">transform</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-transforma">transforma</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-transparent">transparent</a></td><td valign="top"><a href="mgl_ru_1.html#Transparency">1.2.1 Прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-transpose">transpose</a></td><td valign="top"><a href="mgl_ru_1.html#Rearrange-data">1.19 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-TranspType">TranspType</a></td><td valign="top"><a href="mgl_ru_3.html#Normal-transparency">3.5.11 Обычная прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-transptype">transptype</a></td><td valign="top"><a href="mgl_ru_1.html#Transparency">1.2.1 Прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-TranspType-1">TranspType</a></td><td valign="top"><a href="mgl_ru_3.html#Glass_002dlike-transparency">3.5.12 &quot;Стеклянная&quot; прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-TranspType-2">TranspType</a></td><td valign="top"><a href="mgl_ru_3.html#Lamp_002dlike-transparency">3.5.13 &quot;Ламповая&quot; прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-tricont">tricont</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-triplot">triplot</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Tube">Tube</a></td><td valign="top"><a href="mgl_ru_3.html#Tube-sample">3.1.19 Tube &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-tube">tube</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-V">V</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-var">var</a></td><td valign="top"><a href="mgl_ru_1.html#Data-create">1.17 Создание данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-vect">vect</a></td><td valign="top"><a href="mgl_ru_1.html#Vector-fields">1.14 Векторные поля</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Vect">Vect</a></td><td valign="top"><a href="mgl_ru_3.html#Vect-sample">3.4.6 Vect &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Vect-1">Vect</a></td><td valign="top"><a href="mgl_ru_3.html#Vect-3D-sample">3.4.14 Vect 3D &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-VectC">VectC</a></td><td valign="top"><a href="mgl_ru_3.html#VectC-sample">3.4.8 VectC &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-vectc">vectc</a></td><td valign="top"><a href="mgl_ru_1.html#Vector-fields">1.14 Векторные поля</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-VectC-1">VectC</a></td><td valign="top"><a href="mgl_ru_3.html#VectC-3D-sample">3.4.16 VectC 3D &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-vectl">vectl</a></td><td valign="top"><a href="mgl_ru_1.html#Vector-fields">1.14 Векторные поля</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-VectL">VectL</a></td><td valign="top"><a href="mgl_ru_3.html#VectL-sample">3.4.7 VectL &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-VectL-1">VectL</a></td><td valign="top"><a href="mgl_ru_3.html#VectL-3D-sample">3.4.15 VectL 3D &ndash; пример использования</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-W">W</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-write">write</a></td><td valign="top"><a href="mgl_ru_1.html#Export-to-file">1.5 Экспорт в файл</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-X">X</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-xlabel">xlabel</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-and-Colorbar">1.8 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-xrange">xrange</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-xrange-3">xrange</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-xtick">xtick</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-Y">Y</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ylabel">ylabel</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-and-Colorbar">1.8 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-yrange">yrange</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-yrange-3">yrange</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ytick">ytick</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-Z">Z</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-zlabel">zlabel</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-and-Colorbar">1.8 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-zoom">zoom</a></td><td valign="top"><a href="mgl_ru_1.html#Zooming">1.2.5 Масштабирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-zrange">zrange</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-zrange-3">zrange</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ztick">ztick</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_symbol-1">С</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-_0421_0442_0438_043bx-_043b_0438_043d_0438_0439">Стиль линий</a></td><td valign="top"><a href="mgl_ru_1.html#Line-styles">1.1.2 Стиль линий</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-_0421_0442_0438_043bx-_043c_0430_0440_043ae_0440_043e_0432">Стиль маркеров</a></td><td valign="top"><a href="mgl_ru_1.html#Line-styles">1.1.2 Стиль линий</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-_0421_0442_0438_043bx-_0441_0442_0440e_043b_043e_043a">Стиль стрелок</a></td><td valign="top"><a href="mgl_ru_1.html#Line-styles">1.1.2 Стиль линий</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-_0421_0442_0438_043bx-_0442e_043a_0441_0442_0430">Стиль текста</a></td><td valign="top"><a href="mgl_ru_1.html#Font-styles">1.1.4 Стиль текста</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_symbol-2">Т</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-_0422e_043a_0441_0442_043e_0432_044be-_0444_043e_0440_043c_0443_043b_044b">Текстовые формулы</a></td><td valign="top"><a href="mgl_ru_1.html#Textual-formulas">1.1.5 Текстовые формулы</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_symbol-3">Ц</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-C_0432e_0442_043e_0432_0430ya-_0441_0445e_043c_0430">Цветовая схема</a></td><td valign="top"><a href="mgl_ru_1.html#Color-scheme">1.1.3 Цветовая схема</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#index_split-2_cp_symbol-1" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_symbol-2" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_symbol-3" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_abt.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_abt.html
new file mode 100644
index 0000000..7a872c7
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_abt.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: About This Document</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: About This Document">
+<meta name="keywords" content="Язык MGL для версии 1.11: About This Document">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="SEC_About"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1>About This Document</h1>
+<p>
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+</p>
+<p>
+  The buttons in the navigation panels have the following meaning:
+</p>
+<table border="1">
+  <tr>
+    <th> Button </th>
+    <th> Name </th>
+    <th> Go to </th>
+    <th> From 1.2.3 go to</th>
+  </tr>
+  <tr>
+    <td align="center"> [ &lt; ] </td>
+    <td align="center">Back</td>
+    <td>Previous section in reading order</td>
+    <td>1.2.2</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &gt; ] </td>
+    <td align="center">Forward</td>
+    <td>Next section in reading order</td>
+    <td>1.2.4</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &lt;&lt; ] </td>
+    <td align="center">FastBack</td>
+    <td>Beginning of this chapter or previous chapter</td>
+    <td>1</td>
+  </tr>
+  <tr>
+    <td align="center"> [ Up ] </td>
+    <td align="center">Up</td>
+    <td>Up section</td>
+    <td>1.2</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &gt;&gt; ] </td>
+    <td align="center">FastForward</td>
+    <td>Next chapter</td>
+    <td>2</td>
+  </tr>
+  <tr>
+    <td align="center"> [Top] </td>
+    <td align="center">Top</td>
+    <td>Cover (top) of document</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [Contents] </td>
+    <td align="center">Contents</td>
+    <td>Table of contents</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [Index] </td>
+    <td align="center">Index</td>
+    <td>Index</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [ ? ] </td>
+    <td align="center">About</td>
+    <td>About (help)</td>
+    <td> &nbsp; </td>
+  </tr>
+</table>
+
+<p>
+  where the <strong> Example </strong> assumes that the current position is at <strong> Subsubsection One-Two-Three </strong> of a document of the following structure:
+</p>
+
+<ul>
+  <li> 1. Section One
+    <ul>
+      <li>1.1 Subsection One-One
+        <ul>
+          <li>...</li>
+        </ul>
+      </li>
+      <li>1.2 Subsection One-Two
+        <ul>
+          <li>1.2.1 Subsubsection One-Two-One</li>
+          <li>1.2.2 Subsubsection One-Two-Two</li>
+          <li>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp;
+            <strong>&lt;== Current Position </strong></li>
+          <li>1.2.4 Subsubsection One-Two-Four</li>
+        </ul>
+      </li>
+      <li>1.3 Subsection One-Three
+        <ul>
+          <li>...</li>
+        </ul>
+      </li>
+      <li>1.4 Subsection One-Four</li>
+    </ul>
+  </li>
+</ul>
+
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_toc.html b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_toc.html
new file mode 100644
index 0000000..62d91e3
--- /dev/null
+++ b/debian/mathgl-doc/usr/share/doc/mathgl-doc/ru/mgl_ru.html/mgl_ru_toc.html
@@ -0,0 +1,283 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: Table of Contents</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: Table of Contents">
+<meta name="keywords" content="Язык MGL для версии 1.11: Table of Contents">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="SEC_Contents"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1>Table of Contents</h1>
+<div class="contents">
+
+<ul class="toc">
+  <li><a name="toc-YA_0437_044b_043a-MGL-1" href="mgl_ru_1.html#MGL-interface">1. Язык MGL</a>
+  <ul class="toc">
+    <li><a name="toc-_041e_0441_043d_043e_0432_043d_044be-_043f_0440_0438_043dc_0438_043f_044b" href="mgl_ru_1.html#General-concepts">1.1 Основные принципы</a>
+    <ul class="toc">
+      <li><a name="toc-_041e_0441_0438-_043a_043e_043e_0440_0434_0438_043d_0430_0442" href="mgl_ru_1.html#Coordinate-axes">1.1.1 Оси координат</a></li>
+      <li><a name="toc-_0421_0442_0438_043bx-_043b_0438_043d_0438_0439" href="mgl_ru_1.html#Line-styles">1.1.2 Стиль линий</a></li>
+      <li><a name="toc-C_0432e_0442_043e_0432_0430ya-_0441_0445e_043c_0430" href="mgl_ru_1.html#Color-scheme">1.1.3 Цветовая схема</a></li>
+      <li><a name="toc-_0421_0442_0438_043bx-_0442e_043a_0441_0442_0430" href="mgl_ru_1.html#Font-styles">1.1.4 Стиль текста</a></li>
+      <li><a name="toc-_0422e_043a_0441_0442_043e_0432_044be-_0444_043e_0440_043c_0443_043b_044b" href="mgl_ru_1.html#Textual-formulas">1.1.5 Текстовые формулы</a></li>
+    </ul></li>
+    <li><a name="toc-_041d_0430_0441_0442_0440_043e_0439_043a_0430-g_0440_0430_0444_0438_043a_0430" href="mgl_ru_1.html#Graphics-setup">1.2 Настройка графика</a>
+    <ul class="toc">
+      <li><a name="toc-_041f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x" href="mgl_ru_1.html#Transparency">1.2.1 Прозрачность</a></li>
+      <li><a name="toc-_041e_0441_0432e_0449e_043d_0438e" href="mgl_ru_1.html#Lighting">1.2.2 Освещение</a></li>
+      <li><a name="toc-_0422_0443_043c_0430_043d" href="mgl_ru_1.html#Fog">1.2.3 Туман</a></li>
+      <li><a name="toc-_0411_0430_0437_043e_0432_044be-_0440_0430_0437_043ce_0440_044b" href="mgl_ru_1.html#Default-sizes">1.2.4 Базовые размеры</a></li>
+      <li><a name="toc-_041c_0430_0441_0448_0442_0430_0431_0438_0440_043e_0432_0430_043d_0438e" href="mgl_ru_1.html#Zooming">1.2.5 Масштабирование</a></li>
+      <li><a name="toc-_041e_0431_0440e_0437_0430_043d_0438e" href="mgl_ru_1.html#Cutting">1.2.6 Обрезание</a></li>
+      <li><a name="toc-_041f_0440_043e_0447_0438e-_043d_0430_0441_0442_0440_043e_0439_043a_0438" href="mgl_ru_1.html#Other-settings">1.2.7 Прочие настройки</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0430_0440_0430_043ce_0442_0440_044b-_043e_0441e_0439-_043a_043e_043e_0440_0434_0438_043d_0430_0442" href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></li>
+    <li><a name="toc-_041c_0430_0442_0440_0438c_0430-_043f_0440e_043e_0431_0440_0430_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_1.html#Transformation-matrix">1.4 Матрица преобразования</a></li>
+    <li><a name="toc-_042d_043a_0441_043f_043e_0440_0442-_0432-_0444_0430_0439_043b" href="mgl_ru_1.html#Export-to-file">1.5 Экспорт в файл</a></li>
+    <li><a name="toc-_0420_0438_0441_043e_0432_0430_043d_0438e-_043f_0440_0438_043c_0438_0442_0438_0432_043e_0432" href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></li>
+    <li><a name="toc-_0412_044b_0432_043e_0434-_0442e_043a_0441_0442_0430" href="mgl_ru_1.html#Text-printing">1.7 Вывод текста</a></li>
+    <li><a name="toc-_041e_0441_0438-_0438-Colorbar" href="mgl_ru_1.html#Axis-and-Colorbar">1.8 Оси и Colorbar</a></li>
+    <li><a name="toc-_041bege_043d_0434_0430" href="mgl_ru_1.html#Legend">1.9 Легенда</a></li>
+    <li><a name="toc-1D-g_0440_0430_0444_0438_043a_0438" href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></li>
+    <li><a name="toc-2D-g_0440_0430_0444_0438_043a_0438" href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></li>
+    <li><a name="toc-3D-g_0440_0430_0444_0438_043a_0438" href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></li>
+    <li><a name="toc-_041f_0430_0440_043d_044be-g_0440_0430_0444_0438_043a_0438" href="mgl_ru_1.html#Dual-plotting">1.13 Парные графики</a></li>
+    <li><a name="toc-_0412e_043a_0442_043e_0440_043d_044be-_043f_043e_043bya" href="mgl_ru_1.html#Vector-fields">1.14 Векторные поля</a></li>
+    <li><a name="toc-_041f_0440_043e_0447_0438e-g_0440_0430_0444_0438_043a_0438" href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></li>
+    <li><a name="toc-Nonlinear-fitting-1" href="mgl_ru_1.html#Nonlinear-fitting">1.16 Nonlinear fitting</a></li>
+    <li><a name="toc-_0421_043e_0437_0434_0430_043d_0438e-_0434_0430_043d_043d_044b_0445" href="mgl_ru_1.html#Data-create">1.17 Создание данных</a></li>
+    <li><a name="toc-_0417_0430_043f_043e_043b_043de_043d_0438e-_0434_0430_043d_043d_044b_0445" href="mgl_ru_1.html#Data-filling">1.18 Заполнение данных</a></li>
+    <li><a name="toc-_0418_0437_043ce_043de_043d_0438e-_0440_0430_0437_043ce_0440_043e_0432-_0434_0430_043d_043d_044b_0445" href="mgl_ru_1.html#Rearrange-data">1.19 Изменение размеров данных</a></li>
+    <li><a name="toc-_0427_0442e_043d_0438e_002f_0441_043e_0445_0440_0430_043de_043d_0438e-_0434_0430_043d_043d_044b_0445" href="mgl_ru_1.html#File-I_002fO">1.20 Чтение/сохранение данных</a></li>
+    <li><a name="toc-_0421_043e_0437_0434_0430_043d_0438e-_043d_043e_0432_044b_0445-_0434_0430_043d_043d_044b_0445" href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></li>
+    <li><a name="toc-_0418_0437_043ce_043de_043d_0438e-_0434_0430_043d_043d_044b_0445" href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></li>
+    <li><a name="toc-_041e_043fe_0440_0430_0442_043e_0440_044b" href="mgl_ru_1.html#Operators">1.23 Операторы</a></li>
+    <li><a name="toc-_041f_0440_043eg_0440_0430_043c_043c_0438_0440_043e_0432_0430_043d_0438e" href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></li>
+    <li><a name="toc-_041e_043fc_0438_0438-_043a_043e_043c_0430_043d_0434" href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></li>
+    <li><a name="toc-_0421_0443_0444_0444_0438_043a_0441_044b-_043fe_0440e_043ce_043d_043d_044b_0445" href="mgl_ru_1.html#Suffixes">1.26 Суффиксы переменных</a></li>
+    <li><a name="toc-_0423_0442_0438_043b_0438_0442_044b-_0434_043bya-MGL" href="mgl_ru_1.html#Utilities">1.27 Утилиты для MGL</a></li>
+  </ul></li>
+  <li><a name="toc-MathGL-examples" href="mgl_ru_2.html#Examples">2. MathGL examples</a>
+  <ul class="toc">
+    <li><a name="toc-Basic-usage-1" href="mgl_ru_2.html#Basic-usage">2.1 Basic usage</a></li>
+    <li><a name="toc-Advanced-usage-1" href="mgl_ru_2.html#Advanced-usage">2.2 Advanced usage</a>
+    <ul class="toc">
+      <li><a name="toc-Subplots-1" href="mgl_ru_2.html#Subplots">2.2.1 Subplots</a></li>
+      <li><a name="toc-Axis-and-grids-1" href="mgl_ru_2.html#Axis-and-grids">2.2.2 Axis and grids</a></li>
+      <li><a name="toc-Curvilinear-coordinates-1" href="mgl_ru_2.html#Curvilinear-coordinates">2.2.3 Curvilinear coordinates</a></li>
+      <li><a name="toc-Text-printing-example-1" href="mgl_ru_2.html#Text-printing-example">2.2.4 Text printing example</a></li>
+    </ul></li>
+    <li><a name="toc-Data-handling-1" href="mgl_ru_2.html#Data-handling">2.3 Data handling</a>
+    <ul class="toc">
+      <li><a name="toc-Array-creation-1" href="mgl_ru_2.html#Array-creation">2.3.1 Array creation</a></li>
+      <li><a name="toc-Data-changing-1" href="mgl_ru_2.html#Data-changing">2.3.2 Data changing</a></li>
+    </ul></li>
+    <li><a name="toc-Data-plotting-1" href="mgl_ru_2.html#Data-plotting">2.4 Data plotting</a>
+    <ul class="toc">
+      <li><a name="toc-Plots-for-1D-data-1" href="mgl_ru_2.html#Plots-for-1D-data">2.4.1 Plots for 1D data</a></li>
+      <li><a name="toc-Plots-for-2D-data-1" href="mgl_ru_2.html#Plots-for-2D-data">2.4.2 Plots for 2D data</a></li>
+      <li><a name="toc-Plots-for-3D-data-1" href="mgl_ru_2.html#Plots-for-3D-data">2.4.3 Plots for 3D data</a></li>
+      <li><a name="toc-Surface-transparency-1" href="mgl_ru_2.html#Surface-transparency">2.4.4 Surface transparency</a></li>
+    </ul></li>
+    <li><a name="toc-Hints-1" href="mgl_ru_2.html#Hints">2.5 Hints</a>
+    <ul class="toc">
+      <li><a name="toc-_0060_0060Compound_0027_0027-graphics-1" href="mgl_ru_2.html#g_t_0060_0060Compound_0027_0027-graphics">2.5.1 &ldquo;Compound&rdquo; graphics</a></li>
+      <li><a name="toc-Two-axes-in-one-plot-1" href="mgl_ru_2.html#Two-axes-in-one-plot">2.5.2 Two axes in one plot</a></li>
+      <li><a name="toc-Titles-for-the-plot-1" href="mgl_ru_2.html#Titles-for-the-plot">2.5.3 Titles for the plot</a></li>
+      <li><a name="toc-Changing-of-the-color-range-1" href="mgl_ru_2.html#Changing-of-the-color-range">2.5.4 Changing of the color range</a></li>
+      <li><a name="toc-Management-of-a-point-cutting-1" href="mgl_ru_2.html#Management-of-a-point-cutting">2.5.5 Management of a point cutting</a></li>
+      <li><a name="toc-Vector-field-visualization-1" href="mgl_ru_2.html#Vector-field-visualization">2.5.6 Vector field visualization</a></li>
+      <li><a name="toc-Several-light-sources-1" href="mgl_ru_2.html#Several-light-sources">2.5.7 Several light sources</a></li>
+      <li><a name="toc-CutMin-and-CutMax-features-1" href="mgl_ru_2.html#CutMin-and-CutMax-features">2.5.8 CutMin and CutMax features</a></li>
+      <li><a name="toc-Mapping-visualization-1" href="mgl_ru_2.html#Mapping-visualization">2.5.9 Mapping visualization</a></li>
+      <li><a name="toc-Log_002dscaled-plot-1" href="mgl_ru_2.html#Log_002dscaled-plot">2.5.10 Log-scaled plot</a></li>
+      <li><a name="toc-Nonlinear-fitting-hints-1" href="mgl_ru_2.html#Nonlinear-fitting-hints">2.5.11 Nonlinear fitting hints</a></li>
+      <li><a name="toc-PDE-solving-hints-1" href="mgl_ru_2.html#PDE-solving-hints">2.5.12 PDE solving hints</a></li>
+      <li><a name="toc-Stereo-image-1" href="mgl_ru_2.html#Stereo-image">2.5.13 Stereo image</a></li>
+    </ul>
+</li>
+  </ul></li>
+  <li><a name="toc-_041f_0440_0438_043ce_0440_044b-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya-MathGL" href="mgl_ru_3.html#Samples">3. Примеры использования MathGL</a>
+  <ul class="toc">
+    <li><a name="toc-_041f_0440_0438_043ce_0440_044b-1D-g_0440_0430_0444_0438_043a_043e_0432" href="mgl_ru_3.html#g_t1D-plotting-samples">3.1 Примеры 1D графиков</a>
+    <ul class="toc">
+      <li><a name="toc-Plot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Plot-sample">3.1.1 Plot &ndash; пример использования</a></li>
+      <li><a name="toc-Radar-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Radar-sample">3.1.2 Radar &ndash; пример использования</a></li>
+      <li><a name="toc-Tens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Tens-sample">3.1.3 Tens &ndash; пример использования</a></li>
+      <li><a name="toc-Area-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Area-sample">3.1.4 Area &ndash; пример использования</a></li>
+      <li><a name="toc-Area-_0441-g_0440_0430_0434_0438e_043d_0442_043d_043e_0439-_0437_0430_043b_0438_0432_043a_043e_0439-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Area-gradient-sample">3.1.5 Area с градиентной заливкой &ndash; пример использования</a></li>
+      <li><a name="toc-Bars-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Bars-sample">3.1.6 Bars &ndash; пример использования</a></li>
+      <li><a name="toc-Bars-_00282-c_0432e_0442_0430_0029-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Bars-2-colors-sample">3.1.7 Bars (2 цвета) &ndash; пример использования</a></li>
+      <li><a name="toc-Bars-_0028_043e_0434_0438_043d-_043d_0430_0434-_0434_0440_0443g_0438_043c_0029-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Bars-above-sample">3.1.8 Bars (один над другим) &ndash; пример использования</a></li>
+      <li><a name="toc-Bars-_0022_0432_043e_0434_043e_043f_0430_0434_0022-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Bars-fall-sample">3.1.9 Bars &quot;водопад&quot; &ndash; пример использования</a></li>
+      <li><a name="toc-Barh-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Barh-sample">3.1.10 Barh &ndash; пример использования</a></li>
+      <li><a name="toc-Step-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Step-sample">3.1.11 Step &ndash; пример использования</a></li>
+      <li><a name="toc-Stem-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Stem-sample">3.1.12 Stem &ndash; пример использования</a></li>
+      <li><a name="toc-Region-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Region-sample">3.1.13 Region &ndash; пример использования</a></li>
+      <li><a name="toc-Region-_0441-g_0440_0430_0434_0438e_043d_0442_043d_043e_0439-_0437_0430_043b_0438_0432_043a_043e_0439-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Region-gradient-sample">3.1.14 Region с градиентной заливкой &ndash; пример использования</a></li>
+      <li><a name="toc-Error-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Error-sample">3.1.15 Error &ndash; пример использования</a></li>
+      <li><a name="toc-BoxPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#BoxPlot-sample">3.1.16 BoxPlot &ndash; пример использования</a></li>
+      <li><a name="toc-Mark-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Mark-sample">3.1.17 Mark &ndash; пример использования</a></li>
+      <li><a name="toc-TextMark-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#TextMark-sample">3.1.18 TextMark &ndash; пример использования</a></li>
+      <li><a name="toc-Tube-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Tube-sample">3.1.19 Tube &ndash; пример использования</a></li>
+      <li><a name="toc-Text-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Text-sample">3.1.20 Text &ndash; пример использования</a></li>
+      <li><a name="toc-Torus-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Torus-sample">3.1.21 Torus &ndash; пример использования</a></li>
+      <li><a name="toc-Chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Chart-sample">3.1.22 Chart &ndash; пример использования</a></li>
+      <li><a name="toc-Pie-chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Pie-chart-sample">3.1.23 Pie chart &ndash; пример использования</a></li>
+      <li><a name="toc-Ring-chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Ring-chart-sample">3.1.24 Ring chart &ndash; пример использования</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0440_0438_043ce_0440_044b-2D-g_0440_0430_0444_0438_043a_043e_0432" href="mgl_ru_3.html#g_t2D-plotting-samples">3.2 Примеры 2D графиков</a>
+    <ul class="toc">
+      <li><a name="toc-Surf-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Surf-sample">3.2.1 Surf &ndash; пример использования</a></li>
+      <li><a name="toc-Transparent-surface-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Transparent-surface-sample">3.2.2 Transparent surface &ndash; пример использования</a></li>
+      <li><a name="toc-Surface-in-fog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Surface-in-fog-sample">3.2.3 Surface in fog &ndash; пример использования</a></li>
+      <li><a name="toc-Sharp-colors-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Sharp-colors-sample">3.2.4 Sharp colors &ndash; пример использования</a></li>
+      <li><a name="toc-Mesh-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Mesh-sample">3.2.5 Mesh &ndash; пример использования</a></li>
+      <li><a name="toc-Fall-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Fall-sample">3.2.6 Fall &ndash; пример использования</a></li>
+      <li><a name="toc-Belt-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Belt-sample">3.2.7 Belt &ndash; пример использования</a></li>
+      <li><a name="toc-Tile-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Tile-sample">3.2.8 Tile &ndash; пример использования</a></li>
+      <li><a name="toc-Boxs-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Boxs-sample">3.2.9 Boxs &ndash; пример использования</a></li>
+      <li><a name="toc-Dens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Dens-sample">3.2.10 Dens &ndash; пример использования</a></li>
+      <li><a name="toc-Cont-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Cont-sample">3.2.11 Cont &ndash; пример использования</a></li>
+      <li><a name="toc-ContF-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#ContF-sample">3.2.12 ContF &ndash; пример использования</a></li>
+      <li><a name="toc-ContD-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#ContD-sample">3.2.13 ContD &ndash; пример использования</a></li>
+      <li><a name="toc-Axial-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Axial-sample">3.2.14 Axial &ndash; пример использования</a></li>
+      <li><a name="toc-Grad-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Grad-sample">3.2.15 Grad &ndash; пример использования</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0440_0438_043ce_0440_044b-3D-g_0440_0430_0444_0438_043a_043e_0432" href="mgl_ru_3.html#g_t3D-plotting-samples">3.3 Примеры 3D графиков</a>
+    <ul class="toc">
+      <li><a name="toc-Surf3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Surf3-sample">3.3.1 Surf3 &ndash; пример использования</a></li>
+      <li><a name="toc-Cloud-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Cloud-sample">3.3.2 Cloud &ndash; пример использования</a></li>
+      <li><a name="toc-CloudP-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#CloudP-sample">3.3.3 CloudP &ndash; пример использования</a></li>
+      <li><a name="toc-Dens3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Dens3-sample">3.3.4 Dens3 &ndash; пример использования</a></li>
+      <li><a name="toc-Cont3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Cont3-sample">3.3.5 Cont3 &ndash; пример использования</a></li>
+      <li><a name="toc-ContF3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#ContF3-sample">3.3.6 ContF3 &ndash; пример использования</a></li>
+      <li><a name="toc-Cont-projection-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Cont-projection-sample">3.3.7 Cont projection &ndash; пример использования</a></li>
+      <li><a name="toc-Dens-projection-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Dens-projection-sample">3.3.8 Dens projection &ndash; пример использования</a></li>
+      <li><a name="toc-CutMinMax-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#CutMinMax-sample">3.3.9 CutMinMax &ndash; пример использования</a></li>
+      <li><a name="toc-_0060_0060Isocaps_0027_0027-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></li>
+      <li><a name="toc-CutOff-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#CutOff-sample">3.3.11 CutOff &ndash; пример использования</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0440_0438_043ce_0440_044b-_043f_0430_0440_043d_044b_0445_002f_0432e_043a_0442_043e_0440_043d_044b_0445-g_0440_0430_0444_0438_043a_043e_0432" href="mgl_ru_3.html#Dual-plotting-samples">3.4 Примеры парных/векторных графиков</a>
+    <ul class="toc">
+      <li><a name="toc-SurfC-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#SurfC-sample">3.4.1 SurfC &ndash; пример использования</a></li>
+      <li><a name="toc-SurfA-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#SurfA-sample">3.4.2 SurfA &ndash; пример использования</a></li>
+      <li><a name="toc-TileS-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#TileS-sample">3.4.3 TileS &ndash; пример использования</a></li>
+      <li><a name="toc-Map-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Map-sample">3.4.4 Map &ndash; пример использования</a></li>
+      <li><a name="toc-Traj-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Traj-sample">3.4.5 Traj &ndash; пример использования</a></li>
+      <li><a name="toc-Vect-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Vect-sample">3.4.6 Vect &ndash; пример использования</a></li>
+      <li><a name="toc-VectL-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#VectL-sample">3.4.7 VectL &ndash; пример использования</a></li>
+      <li><a name="toc-VectC-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#VectC-sample">3.4.8 VectC &ndash; пример использования</a></li>
+      <li><a name="toc-Flow-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Flow-sample">3.4.9 Flow &ndash; пример использования</a></li>
+      <li><a name="toc-Pipe-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Pipe-sample">3.4.10 Pipe &ndash; пример использования</a></li>
+      <li><a name="toc-Dew-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Dew-sample">3.4.11 Dew &ndash; пример использования</a></li>
+      <li><a name="toc-Surf3C-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Surf3C-sample">3.4.12 Surf3C &ndash; пример использования</a></li>
+      <li><a name="toc-Surf3A-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Surf3A-sample">3.4.13 Surf3A &ndash; пример использования</a></li>
+      <li><a name="toc-Vect-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Vect-3D-sample">3.4.14 Vect 3D &ndash; пример использования</a></li>
+      <li><a name="toc-VectL-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#VectL-3D-sample">3.4.15 VectL 3D &ndash; пример использования</a></li>
+      <li><a name="toc-VectC-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#VectC-3D-sample">3.4.16 VectC 3D &ndash; пример использования</a></li>
+      <li><a name="toc-Flow-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Flow-3D-sample">3.4.17 Flow 3D &ndash; пример использования</a></li>
+      <li><a name="toc-Pipe-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Pipe-3D-sample">3.4.18 Pipe 3D &ndash; пример использования</a></li>
+      <li><a name="toc-Crust-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Crust-sample">3.4.19 Crust &ndash; пример использования</a></li>
+      <li><a name="toc-Dots-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Dots-sample">3.4.20 Dots &ndash; пример использования</a></li>
+    </ul></li>
+    <li><a name="toc-_0411_0430_0437_043e_0432_044be-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438" href="mgl_ru_3.html#Basic-features">3.5 Базовые возможности</a>
+    <ul class="toc">
+      <li><a name="toc-_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-1D-_0434_0430_043d_043d_044b_0445" href="mgl_ru_3.html#g_t1D-plot-sample">3.5.1 Пример графиков 1D данных</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-2D-_0434_0430_043d_043d_044b_0445" href="mgl_ru_3.html#g_t2D-plot-sample">3.5.2 Пример графиков 2D данных</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-3D-_0434_0430_043d_043d_044b_0445" href="mgl_ru_3.html#g_t3D-plot-sample">3.5.3 Пример графиков 3D данных</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_043b_0438_043d_0438_0439-_0438-_043c_0430_0440_043ae_0440_043e_0432" href="mgl_ru_3.html#Line-styles-sample">3.5.4 Пример стилей линий и маркеров</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_0441_0442_0440e_043b_043e_043a" href="mgl_ru_3.html#Arrow-styles-sample">3.5.5 Пример стилей стрелок</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_0442e_043a_0441_0442_0430" href="mgl_ru_3.html#Text-styles-sample">3.5.6 Пример стилей текста</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-TeX-_0444_043e_0440_043c_0443_043b_044b" href="mgl_ru_3.html#TeX-parsing-sample">3.5.7 Пример TeX формулы</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440_044b-_043d_0430_0447e_0440_0442_0430_043d_0438_0439-_0448_0440_0438_0444_0442_0430" href="mgl_ru_3.html#Font-faces-sample">3.5.8 Примеры начертаний шрифта</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440_044b-c_0432e_0442_043e_0432" href="mgl_ru_3.html#Colors-sample">3.5.9 Примеры цветов</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440_044b-c_0432e_0442_043e_0432_044b_0445-_0441_0445e_043c" href="mgl_ru_3.html#Color-schemes-sample">3.5.10 Примеры цветовых схем</a></li>
+      <li><a name="toc-_041e_0431_044b_0447_043d_0430ya-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x" href="mgl_ru_3.html#Normal-transparency">3.5.11 Обычная прозрачность</a></li>
+      <li><a name="toc-_0022_0421_0442e_043a_043bya_043d_043d_0430ya_0022-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x" href="mgl_ru_3.html#Glass_002dlike-transparency">3.5.12 &quot;Стеклянная&quot; прозрачность</a></li>
+      <li><a name="toc-_0022_041b_0430_043c_043f_043e_0432_0430ya_0022-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x" href="mgl_ru_3.html#Lamp_002dlike-transparency">3.5.13 &quot;Ламповая&quot; прозрачность</a></li>
+    </ul></li>
+    <li><a name="toc-_0414_043e_043f_043e_043b_043d_0438_0442e_043bx_043d_044be-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438" href="mgl_ru_3.html#Additional-features">3.6 Дополнительные возможности</a>
+    <ul class="toc">
+      <li><a name="toc-Legend-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Legend-sample">3.6.1 Legend &ndash; пример использования</a></li>
+      <li><a name="toc-_0414_043e_0431_0430_0432_043byae_043c-_0441e_0442_043a_0443" href="mgl_ru_3.html#Adding-mesh-sample">3.6.2 Добавляем сетку</a></li>
+      <li><a name="toc-Surf-_0026-Cont-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Surf-_0026-Cont-sample">3.6.3 Surf &amp; Cont &ndash; пример использования</a></li>
+      <li><a name="toc-Flow-_0026-Dens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Flow-_0026-Dens-sample">3.6.4 Flow &amp; Dens &ndash; пример использования</a></li>
+      <li><a name="toc-_041de_0441_043a_043e_043bx_043a_043e-_0438_0441_0442_043e_0447_043d_0438_043a_043e_0432-_0441_0432e_0442_0430" href="mgl_ru_3.html#Several-light-sample">3.6.5 Несколько источников света</a></li>
+      <li><a name="toc-_041e_0442_0440_0430_0436e_043d_0438e-_043f_043e_0432e_0440_0445_043d_043e_0441_0442_0438" href="mgl_ru_3.html#Mirrored-surface-sample">3.6.6 Отражение поверхности</a></li>
+      <li><a name="toc-Cont-_0438-_043f_043e_0434_043f_0438_0441_0438-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Cont-with-labels-sample">3.6.7 Cont и подписи &ndash; пример использования</a></li>
+      <li><a name="toc-Ternary-plot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Ternary-plot-sample">3.6.8 Ternary plot &ndash; пример использования</a></li>
+      <li><a name="toc-_041e_043a_0440_0430_0448_0438_0432_0430_043d_0438e-_043f_043e-_043f_043e_043b_043e_0436e_043d_0438_044e-g_0440_0430_043d_0438" href="mgl_ru_3.html#Coloring-by-coordinates-sample">3.6.9 Окрашивание по положению грани</a></li>
+      <li><a name="toc-Drops-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Drops-sample">3.6.10 Drops &ndash; пример использования</a></li>
+      <li><a name="toc-_0420_0438_0441_043e_0432_0430_043d_0438e-_043c_043e_043be_043a_0443_043b" href="mgl_ru_3.html#Molecules-drawing-sample">3.6.11 Рисование молекул</a></li>
+    </ul></li>
+    <li><a name="toc-_0022_041f_0440_043e_0434_0432_0438_043d_0443_0442_044be_0022-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438" href="mgl_ru_3.html#Advanced-features">3.7 &quot;Продвинутые&quot; возможности</a>
+    <ul class="toc">
+      <li><a name="toc-_041a_0440_0438_0432_043e_043b_0438_043de_0439_043d_044be-_043a_043e_043e_0440_0434_0438_043d_0430_0442_044b" href="mgl_ru_3.html#Curvelinear-coorinates-sample">3.7.1 Криволинейные координаты</a></li>
+      <li><a name="toc-_041de_0441_043a_043e_043bx_043a_043e-_043e_0441e_0439-_043d_0430-_043e_0434_043d_043e_043c-g_0440_0430_0444_0438_043ae" href="mgl_ru_3.html#g_t2_002daxes-sample">3.7.2 Несколько осей на одном графике</a></li>
+      <li><a name="toc-Semi_002dlog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Semi_002dlog-sample">3.7.3 Semi-log &ndash; пример использования</a></li>
+      <li><a name="toc-Log_002dlog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Log_002dlog-sample">3.7.4 Log-log &ndash; пример использования</a></li>
+      <li><a name="toc-Fitting-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Fitting-sample">3.7.5 Fitting &ndash; пример использования</a></li>
+      <li><a name="toc-Envelop-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Envelop-sample">3.7.6 Envelop &ndash; пример использования</a></li>
+      <li><a name="toc-Sew-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Sew-sample">3.7.7 Sew &ndash; пример использования</a></li>
+      <li><a name="toc-STFA-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#STFA-sample">3.7.8 STFA &ndash; пример использования</a></li>
+      <li><a name="toc-PDE-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#PDE-sample">3.7.9 PDE &ndash; пример использования</a></li>
+      <li><a name="toc-Beam-tracing-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Beam-tracing-sample">3.7.10 Beam tracing &ndash; пример использования</a></li>
+      <li><a name="toc-Parser-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Parser-sample">3.7.11 Parser &ndash; пример использования</a></li>
+      <li><a name="toc-_041e_0441_043e_0431_044be-_043ce_0442_043a_0438-_043f_043e-_043e_0441ya_043c" href="mgl_ru_3.html#Manual-ticks-sample">3.7.12 Особые метки по осям</a></li>
+      <li><a name="toc-ColumnPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#ColumnPlot-sample">3.7.13 ColumnPlot &ndash; пример использования</a></li>
+      <li><a name="toc-StickPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#StickPlot-sample">3.7.14 StickPlot &ndash; пример использования</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-_0441_0442e_0440e_043e-_0438_0437_043e_0431_0440_0430_0436e_043d_0438ya" href="mgl_ru_3.html#Stereo-image-sample">3.7.15 Пример стерео изображения</a></li>
+    </ul>
+</li>
+  </ul></li>
+  <li><a name="toc-GNU-Free-Documentation-License" href="mgl_ru_4.html#Copying-This-Manual">A. GNU Free Documentation License</a></li>
+  <li><a name="toc-_0418_043d_0434e_043a_0441" href="mgl_ru_5.html#Index">Индекс</a></li>
+</ul>
+</div>
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/mathgl-doc/usr/share/info/en/mathgl_en.info/mathgl_en.info-1.gz b/debian/mathgl-doc/usr/share/info/en/mathgl_en.info/mathgl_en.info-1.gz
new file mode 100644
index 0000000..7ab7a22
Binary files /dev/null and b/debian/mathgl-doc/usr/share/info/en/mathgl_en.info/mathgl_en.info-1.gz differ
diff --git a/debian/mathgl-doc/usr/share/info/en/mathgl_en.info/mathgl_en.info-2.gz b/debian/mathgl-doc/usr/share/info/en/mathgl_en.info/mathgl_en.info-2.gz
new file mode 100644
index 0000000..fd5b20d
Binary files /dev/null and b/debian/mathgl-doc/usr/share/info/en/mathgl_en.info/mathgl_en.info-2.gz differ
diff --git a/debian/mathgl-doc/usr/share/info/en/mathgl_en.info/mathgl_en.info-3.gz b/debian/mathgl-doc/usr/share/info/en/mathgl_en.info/mathgl_en.info-3.gz
new file mode 100644
index 0000000..bb7f31b
Binary files /dev/null and b/debian/mathgl-doc/usr/share/info/en/mathgl_en.info/mathgl_en.info-3.gz differ
diff --git a/debian/mathgl-doc/usr/share/info/en/mathgl_en.info/mathgl_en.info.gz b/debian/mathgl-doc/usr/share/info/en/mathgl_en.info/mathgl_en.info.gz
new file mode 100644
index 0000000..723585b
Binary files /dev/null and b/debian/mathgl-doc/usr/share/info/en/mathgl_en.info/mathgl_en.info.gz differ
diff --git a/debian/mathgl-doc/usr/share/info/en/mgl_en.info/mgl_en.info.gz b/debian/mathgl-doc/usr/share/info/en/mgl_en.info/mgl_en.info.gz
new file mode 100644
index 0000000..2426d47
Binary files /dev/null and b/debian/mathgl-doc/usr/share/info/en/mgl_en.info/mgl_en.info.gz differ
diff --git a/debian/mathgl-doc/usr/share/info/ru/mathgl_ru.info/mathgl_ru.info-1.gz b/debian/mathgl-doc/usr/share/info/ru/mathgl_ru.info/mathgl_ru.info-1.gz
new file mode 100644
index 0000000..2442f5e
Binary files /dev/null and b/debian/mathgl-doc/usr/share/info/ru/mathgl_ru.info/mathgl_ru.info-1.gz differ
diff --git a/debian/mathgl-doc/usr/share/info/ru/mathgl_ru.info/mathgl_ru.info-2.gz b/debian/mathgl-doc/usr/share/info/ru/mathgl_ru.info/mathgl_ru.info-2.gz
new file mode 100644
index 0000000..576b968
Binary files /dev/null and b/debian/mathgl-doc/usr/share/info/ru/mathgl_ru.info/mathgl_ru.info-2.gz differ
diff --git a/debian/mathgl-doc/usr/share/info/ru/mathgl_ru.info/mathgl_ru.info-3.gz b/debian/mathgl-doc/usr/share/info/ru/mathgl_ru.info/mathgl_ru.info-3.gz
new file mode 100644
index 0000000..563f48a
Binary files /dev/null and b/debian/mathgl-doc/usr/share/info/ru/mathgl_ru.info/mathgl_ru.info-3.gz differ
diff --git a/debian/mathgl-doc/usr/share/info/ru/mathgl_ru.info/mathgl_ru.info-4.gz b/debian/mathgl-doc/usr/share/info/ru/mathgl_ru.info/mathgl_ru.info-4.gz
new file mode 100644
index 0000000..66f8e32
Binary files /dev/null and b/debian/mathgl-doc/usr/share/info/ru/mathgl_ru.info/mathgl_ru.info-4.gz differ
diff --git a/debian/mathgl-doc/usr/share/info/ru/mathgl_ru.info/mathgl_ru.info.gz b/debian/mathgl-doc/usr/share/info/ru/mathgl_ru.info/mathgl_ru.info.gz
new file mode 100644
index 0000000..fee49f5
Binary files /dev/null and b/debian/mathgl-doc/usr/share/info/ru/mathgl_ru.info/mathgl_ru.info.gz differ
diff --git a/debian/mathgl-doc/usr/share/info/ru/mgl_ru.info/mgl_ru.info-1.gz b/debian/mathgl-doc/usr/share/info/ru/mgl_ru.info/mgl_ru.info-1.gz
new file mode 100644
index 0000000..ed125be
Binary files /dev/null and b/debian/mathgl-doc/usr/share/info/ru/mgl_ru.info/mgl_ru.info-1.gz differ
diff --git a/debian/mathgl-doc/usr/share/info/ru/mgl_ru.info/mgl_ru.info-2.gz b/debian/mathgl-doc/usr/share/info/ru/mgl_ru.info/mgl_ru.info-2.gz
new file mode 100644
index 0000000..b381102
Binary files /dev/null and b/debian/mathgl-doc/usr/share/info/ru/mgl_ru.info/mgl_ru.info-2.gz differ
diff --git a/debian/mathgl-doc/usr/share/info/ru/mgl_ru.info/mgl_ru.info.gz b/debian/mathgl-doc/usr/share/info/ru/mgl_ru.info/mgl_ru.info.gz
new file mode 100644
index 0000000..c53bf7d
Binary files /dev/null and b/debian/mathgl-doc/usr/share/info/ru/mgl_ru.info/mgl_ru.info.gz differ
diff --git a/debian/mathgl.debhelper.log b/debian/mathgl.debhelper.log
new file mode 100644
index 0000000..1174084
--- /dev/null
+++ b/debian/mathgl.debhelper.log
@@ -0,0 +1,15 @@
+dh_prep
+dh_installchangelogs
+dh_installdocs
+dh_install
+dh_link
+dh_strip
+dh_compress
+dh_fixperms
+dh_makeshlibs
+dh_installdeb
+dh_installman
+dh_shlibdeps
+dh_gencontrol
+dh_md5sums
+dh_builddeb
diff --git a/debian/mathgl.substvars b/debian/mathgl.substvars
new file mode 100644
index 0000000..588af41
--- /dev/null
+++ b/debian/mathgl.substvars
@@ -0,0 +1,2 @@
+shlibs:Depends=libc6 (>= 2.2.5), libgcc1 (>= 1:4.1.1), libmgl-fltk5 (>= 1.11), libmgl5 (>= 1.11), libstdc++6 (>= 4.1.1)
+misc:Depends=
diff --git a/debian/mathgl/DEBIAN/control b/debian/mathgl/DEBIAN/control
new file mode 100644
index 0000000..9e8ebec
--- /dev/null
+++ b/debian/mathgl/DEBIAN/control
@@ -0,0 +1,17 @@
+Package: mathgl
+Version: 1.11-1
+Architecture: amd64
+Maintainer: Debian Science Maintainers <debian-science-maintainers at lists.alioth.debian.org>
+Installed-Size: 152
+Depends: libc6 (>= 2.2.5), libgcc1 (>= 1:4.1.1), libmgl-fltk5 (>= 1.11), libmgl5 (= 1.11-1), libstdc++6 (>= 4.1.1)
+Section: libs
+Priority: optional
+Homepage: http://mathgl.sourceforge.net/index.html
+Description: library for scientific graphs. (utlities and examples)
+ A free cross-platform library of fast C++ routines for plotting data in up
+ to 3 dimensions. It can export plots to bitmaps and vector EPS, SVG, IDTF
+ files. There are simple window interfaces based on GLUT, FLTK and/or Qt.
+ MathGL can also be used in the console. There are interfaces to a set of
+ languages, such as, C, Fortran, Pascal, Forth, Python, Octave.
+ .
+ This package contains MathGL utilities and examples.
diff --git a/debian/mathgl/DEBIAN/md5sums b/debian/mathgl/DEBIAN/md5sums
new file mode 100644
index 0000000..83cf2a4
--- /dev/null
+++ b/debian/mathgl/DEBIAN/md5sums
@@ -0,0 +1,18 @@
+6560dd6eafa9019aa31a5efa388c0be8  usr/bin/mgl2cpp
+5c34b7d6f3b46b6210162f646dde8f37  usr/bin/mgl2eps
+d7b76eea3bd43f97fd0f05bdcff493ae  usr/bin/mgl2gif
+790ba5daaac14a2f5675e946eac9efd8  usr/bin/mgl2png
+57a2f20d7332ba00675dc11662c3866e  usr/bin/mgl2svg
+a7737736eeba248395af5d1006674cac  usr/bin/mglview
+b0ed4e37dfd8abc894227d3f7a49e3e3  usr/share/doc/mathgl/AUTHORS
+74f7b2ebf70699e326234005fac003b4  usr/share/doc/mathgl/NEWS.gz
+539355629bbd667fda54355c69f1f148  usr/share/doc/mathgl/README
+1c92e8b7f012e099103c470392856dbc  usr/share/doc/mathgl/changelog.Debian.gz
+a280771232296099803f36a37509d1ca  usr/share/doc/mathgl/changelog.gz
+3a712fb4482d591b961d2f1791b6aa63  usr/share/doc/mathgl/copyright
+bee9abfae0e979d39604a8845d13ca98  usr/share/man/man1/mgl2cpp.1.gz
+26890c1f7203d4b475a1d505bf88c92b  usr/share/man/man1/mgl2eps.1.gz
+910d4edcab82cb0fc3172bf24dc653ba  usr/share/man/man1/mgl2gif.1.gz
+646a0aadc862b71e11a0322983f91b54  usr/share/man/man1/mgl2png.1.gz
+cb70c09ba8465a71b1aada8422e575e6  usr/share/man/man1/mgl2svg.1.gz
+b7ebeb6309c5f704cdc780b7bb144dfb  usr/share/man/man1/mglview.1.gz
diff --git a/debian/mathgl/usr/bin/mgl2cpp b/debian/mathgl/usr/bin/mgl2cpp
new file mode 100755
index 0000000..16b58a1
Binary files /dev/null and b/debian/mathgl/usr/bin/mgl2cpp differ
diff --git a/debian/mathgl/usr/bin/mgl2eps b/debian/mathgl/usr/bin/mgl2eps
new file mode 100755
index 0000000..44b7357
Binary files /dev/null and b/debian/mathgl/usr/bin/mgl2eps differ
diff --git a/debian/mathgl/usr/bin/mgl2gif b/debian/mathgl/usr/bin/mgl2gif
new file mode 100755
index 0000000..d17d2c9
Binary files /dev/null and b/debian/mathgl/usr/bin/mgl2gif differ
diff --git a/debian/mathgl/usr/bin/mgl2png b/debian/mathgl/usr/bin/mgl2png
new file mode 100755
index 0000000..c178c21
Binary files /dev/null and b/debian/mathgl/usr/bin/mgl2png differ
diff --git a/debian/mathgl/usr/bin/mgl2svg b/debian/mathgl/usr/bin/mgl2svg
new file mode 100755
index 0000000..ab11c03
Binary files /dev/null and b/debian/mathgl/usr/bin/mgl2svg differ
diff --git a/debian/mathgl/usr/bin/mglview b/debian/mathgl/usr/bin/mglview
new file mode 100755
index 0000000..1f4a930
Binary files /dev/null and b/debian/mathgl/usr/bin/mglview differ
diff --git a/AUTHORS b/debian/mathgl/usr/share/doc/mathgl/AUTHORS
similarity index 100%
copy from AUTHORS
copy to debian/mathgl/usr/share/doc/mathgl/AUTHORS
diff --git a/debian/mathgl/usr/share/doc/mathgl/NEWS.gz b/debian/mathgl/usr/share/doc/mathgl/NEWS.gz
new file mode 100644
index 0000000..f606bf1
Binary files /dev/null and b/debian/mathgl/usr/share/doc/mathgl/NEWS.gz differ
diff --git a/README b/debian/mathgl/usr/share/doc/mathgl/README
similarity index 100%
copy from README
copy to debian/mathgl/usr/share/doc/mathgl/README
diff --git a/debian/mathgl/usr/share/doc/mathgl/changelog.Debian.gz b/debian/mathgl/usr/share/doc/mathgl/changelog.Debian.gz
new file mode 100644
index 0000000..b8480bb
Binary files /dev/null and b/debian/mathgl/usr/share/doc/mathgl/changelog.Debian.gz differ
diff --git a/debian/mathgl/usr/share/doc/mathgl/changelog.gz b/debian/mathgl/usr/share/doc/mathgl/changelog.gz
new file mode 100644
index 0000000..be3de85
Binary files /dev/null and b/debian/mathgl/usr/share/doc/mathgl/changelog.gz differ
diff --git a/debian/copyright b/debian/mathgl/usr/share/doc/mathgl/copyright
similarity index 100%
copy from debian/copyright
copy to debian/mathgl/usr/share/doc/mathgl/copyright
diff --git a/debian/mathgl/usr/share/man/man1/mgl2cpp.1.gz b/debian/mathgl/usr/share/man/man1/mgl2cpp.1.gz
new file mode 100644
index 0000000..893b7ea
Binary files /dev/null and b/debian/mathgl/usr/share/man/man1/mgl2cpp.1.gz differ
diff --git a/debian/mathgl/usr/share/man/man1/mgl2eps.1.gz b/debian/mathgl/usr/share/man/man1/mgl2eps.1.gz
new file mode 100644
index 0000000..4c87419
Binary files /dev/null and b/debian/mathgl/usr/share/man/man1/mgl2eps.1.gz differ
diff --git a/debian/mathgl/usr/share/man/man1/mgl2gif.1.gz b/debian/mathgl/usr/share/man/man1/mgl2gif.1.gz
new file mode 100644
index 0000000..cdbc3ed
Binary files /dev/null and b/debian/mathgl/usr/share/man/man1/mgl2gif.1.gz differ
diff --git a/debian/mathgl/usr/share/man/man1/mgl2png.1.gz b/debian/mathgl/usr/share/man/man1/mgl2png.1.gz
new file mode 100644
index 0000000..b9e44e0
Binary files /dev/null and b/debian/mathgl/usr/share/man/man1/mgl2png.1.gz differ
diff --git a/debian/mathgl/usr/share/man/man1/mgl2svg.1.gz b/debian/mathgl/usr/share/man/man1/mgl2svg.1.gz
new file mode 100644
index 0000000..45ffaa4
Binary files /dev/null and b/debian/mathgl/usr/share/man/man1/mgl2svg.1.gz differ
diff --git a/debian/mathgl/usr/share/man/man1/mglview.1.gz b/debian/mathgl/usr/share/man/man1/mglview.1.gz
new file mode 100644
index 0000000..ab15644
Binary files /dev/null and b/debian/mathgl/usr/share/man/man1/mglview.1.gz differ
diff --git a/debian/patches/debian-changes-1.11-1 b/debian/patches/debian-changes-1.11-1
index a6fa4dc..4fb2d96 100644
--- a/debian/patches/debian-changes-1.11-1
+++ b/debian/patches/debian-changes-1.11-1
@@ -26,9 +26,9 @@ Forwarded: <no|not-needed|url proving that it has been forwarded>
 Reviewed-By: <name and email of someone who approved the patch>
 Last-Update: <YYYY-MM-DD>
 
---- mathgl-1.11.orig/Makefile.in
-+++ mathgl-1.11/Makefile.in
-@@ -46,7 +46,11 @@ DIST_COMMON = README $(am__configure_dep
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -46,7 +46,11 @@
  	config/texinfo.tex
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
@@ -41,9 +41,9 @@ Last-Update: <YYYY-MM-DD>
  am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
  	$(ACLOCAL_M4)
  am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
---- mathgl-1.11.orig/aclocal.m4
-+++ mathgl-1.11/aclocal.m4
-@@ -19,7972 +19,6 @@ You have another version of autoconf.  I
+--- a/aclocal.m4
++++ b/aclocal.m4
+@@ -19,7972 +19,6 @@
  If you have problems, you may need to regenerate the build system entirely.
  To do so, use the procedure documented by the package, typically `autoreconf'.])])
  
@@ -8016,7 +8016,7 @@ Last-Update: <YYYY-MM-DD>
  # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
  #
  # This file is free software; the Free Software Foundation
-@@ -9121,3 +1155,8 @@ AC_SUBST([am__untar])
+@@ -9121,3 +1155,8 @@
  ]) # _AM_PROG_TAR
  
  m4_include([config/autotroll.m4])
@@ -8026,8 +8026,8 @@ Last-Update: <YYYY-MM-DD>
 +m4_include([config/ltversion.m4])
 +m4_include([config/lt~obsolete.m4])
 --- /dev/null
-+++ mathgl-1.11/config.log
-@@ -0,0 +1,1157 @@
++++ b/config.log
+@@ -0,0 +1,1268 @@
 +This file contains any messages produced by compilers while
 +running configure, to aid debugging if configure makes a mistake.
 +
@@ -8445,7 +8445,7 @@ Last-Update: <YYYY-MM-DD>
 +configure:11345: result: immediate
 +configure:11439: checking for shl_load
 +configure:11439: x86_64-linux-gnu-gcc -o conftest -Wall -g -O2   conftest.c  >&5
-+/tmp/ccLWJtYG.o: In function `main':
++/tmp/ccSA276l.o: In function `main':
 +/home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/conftest.c:57: undefined reference to `shl_load'
 +collect2: ld returned 1 exit status
 +configure:11439: $? = 1
@@ -8557,7 +8557,7 @@ Last-Update: <YYYY-MM-DD>
 +configure:11477: result: no
 +configure:11482: checking for dlopen
 +configure:11482: x86_64-linux-gnu-gcc -o conftest -Wall -g -O2   conftest.c  >&5
-+/tmp/cceVLr8J.o: In function `main':
++/tmp/cceMiccu.o: In function `main':
 +/home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/conftest.c:57: undefined reference to `dlopen'
 +collect2: ld returned 1 exit status
 +configure:11482: $? = 1
@@ -8637,7 +8637,7 @@ Last-Update: <YYYY-MM-DD>
 +configure:11805: x86_64-linux-gnu-gcc -o conftest -Wall -g -O2  -DHAVE_DLFCN_H  -Wl,--export-dynamic -static conftest.c -ldl  >&5
 +configure: In function 'fnord':
 +configure:11786: warning: unused variable 'i'
-+/tmp/ccgFut7T.o: In function `main':
++/tmp/cc24n6rB.o: In function `main':
 +/home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/configure:11789: warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
 +/usr/bin/ld: dynamic STT_GNU_IFUNC symbol `strcmp' with pointer equality in `/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib/libc.a(strcmp.o)' can not be used when making an executable; recompile with -fPIE and relink with -pie
 +collect2: ld returned 1 exit status
@@ -8745,99 +8745,179 @@ Last-Update: <YYYY-MM-DD>
 +configure:15338: result: yes
 +configure:15367: checking hdf/mfhdf.h usability
 +configure:15367: x86_64-linux-gnu-gcc -c -Wall -g -O2  conftest.c >&5
-+conftest.c:57:23: error: hdf/mfhdf.h: No such file or directory
-+configure:15367: $? = 1
-+configure: failed program was:
-+| /* confdefs.h */
-+| #define PACKAGE_NAME "mathgl"
-+| #define PACKAGE_TARNAME "mathgl"
-+| #define PACKAGE_VERSION "1.10"
-+| #define PACKAGE_STRING "mathgl 1.10"
-+| #define PACKAGE_BUGREPORT "mathgl.abalakin at gmail.com"
-+| #define PACKAGE_URL ""
-+| #define PACKAGE "mathgl"
-+| #define VERSION "1.10"
-+| #define STDC_HEADERS 1
-+| #define HAVE_SYS_TYPES_H 1
-+| #define HAVE_SYS_STAT_H 1
-+| #define HAVE_STDLIB_H 1
-+| #define HAVE_STRING_H 1
-+| #define HAVE_MEMORY_H 1
-+| #define HAVE_STRINGS_H 1
-+| #define HAVE_INTTYPES_H 1
-+| #define HAVE_STDINT_H 1
-+| #define HAVE_UNISTD_H 1
-+| #define HAVE_DLFCN_H 1
-+| #define LT_OBJDIR ".libs/"
-+| #define MGL_USE_DOUBLE 0
-+| /* end confdefs.h.  */
-+| #include <stdio.h>
-+| #ifdef HAVE_SYS_TYPES_H
-+| # include <sys/types.h>
-+| #endif
-+| #ifdef HAVE_SYS_STAT_H
-+| # include <sys/stat.h>
-+| #endif
-+| #ifdef STDC_HEADERS
-+| # include <stdlib.h>
-+| # include <stddef.h>
-+| #else
-+| # ifdef HAVE_STDLIB_H
-+| #  include <stdlib.h>
-+| # endif
-+| #endif
-+| #ifdef HAVE_STRING_H
-+| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-+| #  include <memory.h>
-+| # endif
-+| # include <string.h>
-+| #endif
-+| #ifdef HAVE_STRINGS_H
-+| # include <strings.h>
-+| #endif
-+| #ifdef HAVE_INTTYPES_H
-+| # include <inttypes.h>
-+| #endif
-+| #ifdef HAVE_STDINT_H
-+| # include <stdint.h>
-+| #endif
-+| #ifdef HAVE_UNISTD_H
-+| # include <unistd.h>
-+| #endif
-+| #include <hdf/mfhdf.h>
-+configure:15367: result: no
++configure:15367: $? = 0
++configure:15367: result: yes
 +configure:15367: checking hdf/mfhdf.h presence
 +configure:15367: x86_64-linux-gnu-gcc -E  conftest.c
-+conftest.c:24:23: error: hdf/mfhdf.h: No such file or directory
-+configure:15367: $? = 1
-+configure: failed program was:
-+| /* confdefs.h */
-+| #define PACKAGE_NAME "mathgl"
-+| #define PACKAGE_TARNAME "mathgl"
-+| #define PACKAGE_VERSION "1.10"
-+| #define PACKAGE_STRING "mathgl 1.10"
-+| #define PACKAGE_BUGREPORT "mathgl.abalakin at gmail.com"
-+| #define PACKAGE_URL ""
-+| #define PACKAGE "mathgl"
-+| #define VERSION "1.10"
-+| #define STDC_HEADERS 1
-+| #define HAVE_SYS_TYPES_H 1
-+| #define HAVE_SYS_STAT_H 1
-+| #define HAVE_STDLIB_H 1
-+| #define HAVE_STRING_H 1
-+| #define HAVE_MEMORY_H 1
-+| #define HAVE_STRINGS_H 1
-+| #define HAVE_INTTYPES_H 1
-+| #define HAVE_STDINT_H 1
-+| #define HAVE_UNISTD_H 1
-+| #define HAVE_DLFCN_H 1
-+| #define LT_OBJDIR ".libs/"
-+| #define MGL_USE_DOUBLE 0
-+| /* end confdefs.h.  */
-+| #include <hdf/mfhdf.h>
-+configure:15367: result: no
++configure:15367: $? = 0
++configure:15367: result: yes
 +configure:15367: checking for hdf/mfhdf.h
-+configure:15367: result: no
++configure:15367: result: yes
++configure:15376: checking for main in -ldf
++configure:15395: x86_64-linux-gnu-gcc -o conftest -Wall -g -O2   conftest.c -ldf   >&5
++configure:15395: $? = 0
++configure:15404: result: yes
++configure:15432: checking gif_lib.h usability
++configure:15432: x86_64-linux-gnu-gcc -c -Wall -g -O2  conftest.c >&5
++configure:15432: $? = 0
++configure:15432: result: yes
++configure:15432: checking gif_lib.h presence
++configure:15432: x86_64-linux-gnu-gcc -E  conftest.c
++configure:15432: $? = 0
++configure:15432: result: yes
++configure:15432: checking for gif_lib.h
++configure:15432: result: yes
++configure:15441: checking for main in -lgif
++configure:15460: x86_64-linux-gnu-gcc -o conftest -Wall -g -O2   conftest.c -lgif   >&5
++configure:15460: $? = 0
++configure:15469: result: yes
++configure:15486: checking png.h usability
++configure:15486: x86_64-linux-gnu-gcc -c -Wall -g -O2  conftest.c >&5
++configure:15486: $? = 0
++configure:15486: result: yes
++configure:15486: checking png.h presence
++configure:15486: x86_64-linux-gnu-gcc -E  conftest.c
++configure:15486: $? = 0
++configure:15486: result: yes
++configure:15486: checking for png.h
++configure:15486: result: yes
++configure:15495: checking for main in -lpng
++configure:15514: x86_64-linux-gnu-gcc -o conftest -Wall -g -O2   conftest.c -lpng   >&5
++configure:15514: $? = 0
++configure:15523: result: yes
++configure:15543: checking jpeglib.h usability
++configure:15543: x86_64-linux-gnu-gcc -c -Wall -g -O2  conftest.c >&5
++configure:15543: $? = 0
++configure:15543: result: yes
++configure:15543: checking jpeglib.h presence
++configure:15543: x86_64-linux-gnu-gcc -E  conftest.c
++configure:15543: $? = 0
++configure:15543: result: yes
++configure:15543: checking for jpeglib.h
++configure:15543: result: yes
++configure:15552: checking for main in -ljpeg
++configure:15571: x86_64-linux-gnu-gcc -o conftest -Wall -g -O2   conftest.c -ljpeg   >&5
++configure:15571: $? = 0
++configure:15580: result: yes
++configure:15612: checking for fltk-config
++configure:15628: found /usr/bin/fltk-config
++configure:15639: result: -I/usr/include/freetype2 -g -O2 -D_THREAD_SAFE -D_REENTRANT
++configure:15649: checking for fltk-config
++configure:15665: found /usr/bin/fltk-config
++configure:15676: result: -lfltk
++configure:15717: checking for wx-config
++configure:15733: found /usr/bin/wx-config
++configure:15744: result: -I/usr/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread
++configure:15754: checking for wx-config
++configure:15770: found /usr/bin/wx-config
++configure:15781: result: -pthread   -lwx_gtk2u_richtext-2.8 -lwx_gtk2u_aui-2.8 -lwx_gtk2u_xrc-2.8 -lwx_gtk2u_qa-2.8 -lwx_gtk2u_html-2.8 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8 
++configure:15845: checking for qmake-qt4
++configure:15864: found /usr/bin/qmake-qt4
++configure:15876: result: /usr/bin/qmake-qt4
++configure:15946: checking for moc-qt4
++configure:15965: found /usr/bin/moc-qt4
++configure:15977: result: /usr/bin/moc-qt4
++configure:16047: checking for uic-qt4
++configure:16066: found /usr/bin/uic-qt4
++configure:16078: result: /usr/bin/uic-qt4
++configure:16148: checking for rcc-qt4
++configure:16182: result: no
++configure:16196: checking for rcc
++configure:16215: found /usr/bin/rcc
++configure:16227: result: /usr/bin/rcc
++configure:16259: no TMPDIR or bad TMPDIR ()
++configure:16265: setting TMPDIR=/tmp
++configure:16339: Invoking /usr/bin/qmake-qt4 on conftest3965.dir.pro
++| ######################################################################
++| # Automatically generated by qmake (2.01a) Thu Nov 11 22:45:21 2010
++| ######################################################################
++| 
++| TEMPLATE = app
++| TARGET = 
++| DEPENDPATH += .
++| INCLUDEPATH += .
++| 
++| # Input
++| HEADERS += conftest.h
++| SOURCES += conftest.cpp
++configure:16346: checking whether we can build a simple Qt app
++make[1]: Entering directory `/tmp/conftest3965.dir'
++g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o conftest.o conftest.cpp
++/usr/bin/moc-qt4 -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. conftest.h -o moc_conftest.cpp
++g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o moc_conftest.o moc_conftest.cpp
++g++ -Wl,-O1 -o conftest3965 conftest.o moc_conftest.o    -L/usr/lib -lQtGui -lQtCore -lpthread 
++make[1]: Leaving directory `/tmp/conftest3965.dir'
++configure:16406: result: ok, looks like Qt 4
++configure:16439: checking for the DEFINES to use with Qt
++configure:16446: result: -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
++configure:16452: checking for the CFLAGS to use with Qt
++configure:16459: result: -pipe -O2 -Wall -W -D_REENTRANT $(QT_DEFINES)
++configure:16465: checking for the CXXFLAGS to use with Qt
++configure:16472: result: -pipe -O2 -Wall -W -D_REENTRANT $(QT_DEFINES)
++configure:16478: checking for the INCPATH to use with Qt
++configure:16485: result: -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I.
++configure:16494: checking for the LDFLAGS to use with Qt
++configure:16501: result: 
++configure:16508: checking whether host operating system is Darwin
++configure:16516: result: no
++configure:16520: checking for the LIBS to use with Qt
++configure:16535: result: -L/usr/lib -lQtGui -lQtCore -lpthread 
++configure:16548: checking for Qt's version
++configure:16553: Running /usr/bin/qmake-qt4 --version:
++QMake version 2.01a
++Using Qt version 4.6.3 in /usr/lib
++configure:16558: result: 4.6.3
++configure:16604: checking for python-config
++configure:16620: found /usr/bin/python-config
++configure:16631: result: -I/usr/include/python2.6 -I/usr/include/python2.6 -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes
++configure:16641: checking for swig
++configure:16657: found /usr/bin/swig
++configure:16668: result: true
++configure:16688: checking for python
++configure:16706: found /usr/bin/python
++configure:16718: result: /usr/bin/python
++configure:16739: checking for python version
++configure:16746: result: 2.6
++configure:16758: checking for python platform
++configure:16765: result: linux2
++configure:16772: checking for python script directory
++configure:16801: result: ${prefix}/lib/python2.6/dist-packages
++configure:16810: checking for python extension module directory
++configure:16839: result: ${exec_prefix}/lib/python2.6/dist-packages
++configure:16880: checking for octave-config
++configure:16896: found /usr/bin/octave-config
++configure:16907: result: octave-config
++configure:16916: checking for Octave arch
++configure:16920: result: x86_64-pc-linux-gnu-api-v37
++configure:17169: creating ./config.status
++
++## ---------------------- ##
++## Running config.status. ##
++## ---------------------- ##
++
++This file was extended by mathgl config.status 1.10, which was
++generated by GNU Autoconf 2.67.  Invocation command line was
++
++  CONFIG_FILES    = 
++  CONFIG_HEADERS  = 
++  CONFIG_LINKS    = 
++  CONFIG_COMMANDS = 
++  $ ./config.status 
++
++on filippos
++
++config.status:1228: creating texinfo/Makefile
++config.status:1228: creating texinfo/png/Makefile
++config.status:1228: creating Makefile
++config.status:1228: creating mgl/Makefile
++config.status:1228: creating examples/Makefile
++config.status:1228: creating include/Makefile
++config.status:1228: creating lang/Makefile
++config.status:1228: creating utils/Makefile
++config.status:1228: creating widgets/Makefile
++config.status:1228: creating include/mgl/config.h
++config.status:1456: executing depfiles commands
++config.status:1456: executing libtool commands
 +
 +## ---------------- ##
 +## Cache variables. ##
@@ -8879,10 +8959,13 @@ Last-Update: <YYYY-MM-DD>
 +ac_cv_header_GL_gl_h=yes
 +ac_cv_header_GL_glut_h=yes
 +ac_cv_header_dlfcn_h=yes
++ac_cv_header_gif_lib_h=yes
 +ac_cv_header_hdf5_h=yes
-+ac_cv_header_hdf_mfhdf_h=no
++ac_cv_header_hdf_mfhdf_h=yes
 +ac_cv_header_inttypes_h=yes
++ac_cv_header_jpeglib_h=yes
 +ac_cv_header_memory_h=yes
++ac_cv_header_png_h=yes
 +ac_cv_header_pthread_h=yes
 +ac_cv_header_stdc=yes
 +ac_cv_header_stdint_h=yes
@@ -8894,16 +8977,25 @@ Last-Update: <YYYY-MM-DD>
 +ac_cv_header_unistd_h=yes
 +ac_cv_host=x86_64-pc-linux-gnu
 +ac_cv_lib_GL___main=yes
++ac_cv_lib_df_main=yes
 +ac_cv_lib_dl_dlopen=yes
 +ac_cv_lib_dld_shl_load=no
++ac_cv_lib_gif_main=yes
 +ac_cv_lib_glut___main=yes
 +ac_cv_lib_hdf5_main=yes
++ac_cv_lib_jpeg_main=yes
++ac_cv_lib_png_main=yes
 +ac_cv_lib_pthread_main=yes
 +ac_cv_objext=o
 +ac_cv_path_EGREP='/bin/grep -E'
 +ac_cv_path_FGREP='/bin/grep -F'
 +ac_cv_path_GREP=/bin/grep
++ac_cv_path_MOC=/usr/bin/moc-qt4
++ac_cv_path_PYTHON=/usr/bin/python
++ac_cv_path_QMAKE=/usr/bin/qmake-qt4
++ac_cv_path_RCC=/usr/bin/rcc
 +ac_cv_path_SED=/bin/sed
++ac_cv_path_UIC=/usr/bin/uic-qt4
 +ac_cv_path_install='/usr/bin/install -c'
 +ac_cv_path_mkdir=/bin/mkdir
 +ac_cv_prog_AWK=gawk
@@ -8911,9 +9003,16 @@ Last-Update: <YYYY-MM-DD>
 +ac_cv_prog_CPP='x86_64-linux-gnu-gcc -E'
 +ac_cv_prog_CXX=x86_64-linux-gnu-g++
 +ac_cv_prog_CXXCPP='x86_64-linux-gnu-g++ -E'
++ac_cv_prog_FLTK_FLAGS='-I/usr/include/freetype2 -g -O2 -D_THREAD_SAFE -D_REENTRANT'
++ac_cv_prog_FLTK_LIBS=-lfltk
 +ac_cv_prog_GSL_FLAGS=-I/usr/include
 +ac_cv_prog_GSL_LIBS='-L/usr/lib -lgsl -lgslcblas -lm'
++ac_cv_prog_HAVE_SWIG=true
 +ac_cv_prog_OBJDUMP=objdump
++ac_cv_prog_OCTAVE=octave-config
++ac_cv_prog_PYTHON_HEADERS='-I/usr/include/python2.6 -I/usr/include/python2.6 -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes'
++ac_cv_prog_WX_FLAGS='-I/usr/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread'
++ac_cv_prog_WX_LIBS='-pthread   -lwx_gtk2u_richtext-2.8 -lwx_gtk2u_aui-2.8 -lwx_gtk2u_xrc-2.8 -lwx_gtk2u_qa-2.8 -lwx_gtk2u_html-2.8 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8 '
 +ac_cv_prog_ac_ct_AR=ar
 +ac_cv_prog_ac_ct_RANLIB=ranlib
 +ac_cv_prog_ac_ct_STRIP=strip
@@ -8923,6 +9022,18 @@ Last-Update: <YYYY-MM-DD>
 +ac_cv_prog_make_make_set=yes
 +am_cv_CC_dependencies_compiler_type=gcc3
 +am_cv_CXX_dependencies_compiler_type=gcc3
++am_cv_python_platform=linux2
++am_cv_python_pyexecdir='${exec_prefix}/lib/python2.6/dist-packages'
++am_cv_python_pythondir='${prefix}/lib/python2.6/dist-packages'
++am_cv_python_version=2.6
++at_cv_QT_VERSION=4.6.3
++at_cv_env_QT_CFLAGS='-pipe -O2 -Wall -W -D_REENTRANT $(QT_DEFINES)'
++at_cv_env_QT_CXXFLAGS='-pipe -O2 -Wall -W -D_REENTRANT $(QT_DEFINES)'
++at_cv_env_QT_DEFINES='-DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED'
++at_cv_env_QT_INCPATH='-I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I.'
++at_cv_env_QT_LDFLAGS=
++at_cv_env_QT_LIBS='-L/usr/lib -lQtGui -lQtCore -lpthread '
++at_cv_qt_build='ok, looks like Qt 4'
 +lt_cv_deplibs_check_method=pass_all
 +lt_cv_dlopen=dlopen
 +lt_cv_dlopen_libs=-ldl
@@ -8960,7 +9071,7 @@ Last-Update: <YYYY-MM-DD>
 +AMDEP_FALSE='#'
 +AMDEP_TRUE=''
 +AMTAR='${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run tar'
-+AM_CXXFLAGS=''
++AM_CXXFLAGS='-Wall -I/usr/include'
 +AR='ar'
 +AS='as'
 +AUTOCONF='${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run autoconf'
@@ -8977,7 +9088,7 @@ Last-Update: <YYYY-MM-DD>
 +CXXDEPMODE='depmode=gcc3'
 +CXXFLAGS='-g -O2'
 +CYGPATH_W='echo'
-+DEFS=''
++DEFS='-DHAVE_CONFIG_H'
 +DEPDIR='.deps'
 +DLLTOOL='dlltool'
 +DSYMUTIL=''
@@ -8988,27 +9099,27 @@ Last-Update: <YYYY-MM-DD>
 +EGREP='/bin/grep -E'
 +EXEEXT=''
 +FGREP='/bin/grep -F'
-+FLTK_FLAGS=''
-+FLTK_LIBS=''
-+GIF_FLAGS=''
-+GIF_LIBS=''
++FLTK_FLAGS='-I/usr/include/freetype2 -g -O2 -D_THREAD_SAFE -D_REENTRANT'
++FLTK_LIBS='-lfltk'
++GIF_FLAGS='-DHAVE_GIF'
++GIF_LIBS='-lgif'
 +GLUT_FLAGS='-DHAVE_GLUT'
 +GLUT_LIBS='-lglut'
 +GL_LIBS='-lGL'
 +GREP='/bin/grep'
 +GSL_FLAGS='-I/usr/include'
 +GSL_LIBS='-L/usr/lib -lgsl -lgslcblas -lm'
-+HAVE_SWIG=''
-+HDF4_FLAGS=''
-+HDF4_LIBS=''
++HAVE_SWIG='true'
++HDF4_FLAGS='-DHAVE_HDF4'
++HDF4_LIBS='-lmfhdf -ldf'
 +HDF5_FLAGS='-DHAVE_HDF5 -DH5_USE_16_API'
 +HDF5_LIBS='-lhdf5'
 +INSTALL_DATA='${INSTALL} -m 644'
 +INSTALL_PROGRAM='${INSTALL}'
 +INSTALL_SCRIPT='${INSTALL}'
 +INSTALL_STRIP_PROGRAM='$(install_sh) -c -s'
-+JPEG_FLAGS=''
-+JPEG_LIBS=''
++JPEG_FLAGS='-DHAVE_JPEG'
++JPEG_LIBS='-ljpeg'
 +LD='/usr/bin/ld -m elf_x86_64'
 +LDFLAGS=''
 +LIBOBJS=''
@@ -9023,14 +9134,14 @@ Last-Update: <YYYY-MM-DD>
 +MGL_RELEASE='1.10'
 +MGL_REVISION='0'
 +MKDIR_P='/bin/mkdir -p'
-+MOC=''
++MOC='/usr/bin/moc-qt4'
 +NM='/usr/bin/nm -B'
 +NMEDIT=''
 +OBJDUMP='objdump'
 +OBJEXT='o'
-+OCTAVE=''
-+OCTAVE_ARCH=''
-+OCTAVE_INCFLAGS=''
++OCTAVE='octave-config'
++OCTAVE_ARCH='x86_64-pc-linux-gnu-api-v37'
++OCTAVE_INCFLAGS='-I/usr/include/octave-3.2.4'
 +OTOOL64=''
 +OTOOL=''
 +PACKAGE='mathgl'
@@ -9041,71 +9152,71 @@ Last-Update: <YYYY-MM-DD>
 +PACKAGE_URL=''
 +PACKAGE_VERSION='1.10'
 +PATH_SEPARATOR=':'
-+PNG_LIBS=''
++PNG_LIBS='-lpng'
 +PTHREAD_FLAGS='-DHAVE_PTHREAD'
 +PTHREAD_LIBS='-lpthread'
-+PYTHON=''
-+PYTHON_EXEC_PREFIX=''
-+PYTHON_HEADERS=''
-+PYTHON_PLATFORM=''
-+PYTHON_PREFIX=''
-+PYTHON_VERSION=''
-+QMAKE=''
-+QT_CFLAGS=''
-+QT_CPPFLAGS=''
-+QT_CXXFLAGS=''
-+QT_DEFINES=''
-+QT_INCPATH=''
++PYTHON='/usr/bin/python'
++PYTHON_EXEC_PREFIX='${exec_prefix}'
++PYTHON_HEADERS='-I/usr/include/python2.6 -I/usr/include/python2.6 -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes'
++PYTHON_PLATFORM='linux2'
++PYTHON_PREFIX='${prefix}'
++PYTHON_VERSION='2.6'
++QMAKE='/usr/bin/qmake-qt4'
++QT_CFLAGS='-pipe -O2 -Wall -W -D_REENTRANT $(QT_DEFINES)'
++QT_CPPFLAGS='-DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I.'
++QT_CXXFLAGS='-pipe -O2 -Wall -W -D_REENTRANT $(QT_DEFINES)'
++QT_DEFINES='-DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED'
++QT_INCPATH='-I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I.'
 +QT_LDFLAGS=''
 +QT_LFLAGS=''
-+QT_LIBS=''
-+QT_PATH=''
-+QT_VERSION=''
-+QT_VERSION_MAJOR=''
++QT_LIBS='-L/usr/lib -lQtGui -lQtCore -lpthread '
++QT_PATH='/usr/bin'
++QT_VERSION='4.6.3'
++QT_VERSION_MAJOR='ok, looks like Qt 4'
 +RANLIB='ranlib'
-+RCC=''
++RCC='/usr/bin/rcc'
 +SED='/bin/sed'
 +SET_MAKE=''
 +SHELL='/bin/bash'
 +STRIP='strip'
-+TMPDIR=''
-+UIC=''
-+USE_DOCS_FALSE=''
++TMPDIR='/tmp'
++UIC='/usr/bin/uic-qt4'
++USE_DOCS_FALSE='#'
 +USE_DOCS_TRUE=''
-+USE_FLTK_FALSE=''
++USE_FLTK_FALSE='#'
 +USE_FLTK_TRUE=''
-+USE_GIF_FALSE=''
++USE_GIF_FALSE='#'
 +USE_GIF_TRUE=''
 +USE_GLUT_FALSE='#'
 +USE_GLUT_TRUE=''
 +USE_GSL_FALSE='#'
 +USE_GSL_TRUE=''
-+USE_HDF4_FALSE=''
++USE_HDF4_FALSE='#'
 +USE_HDF4_TRUE=''
 +USE_HDF5_FALSE='#'
 +USE_HDF5_TRUE=''
-+USE_JPEG_FALSE=''
++USE_JPEG_FALSE='#'
 +USE_JPEG_TRUE=''
-+USE_OCTAVE_FALSE=''
++USE_OCTAVE_FALSE='#'
 +USE_OCTAVE_TRUE=''
 +USE_PTHREAD_FALSE='#'
 +USE_PTHREAD_TRUE=''
-+USE_PYTHON_FALSE=''
++USE_PYTHON_FALSE='#'
 +USE_PYTHON_TRUE=''
-+USE_QT_FALSE=''
++USE_QT_FALSE='#'
 +USE_QT_TRUE=''
 +USE_TESTIO_FALSE=''
-+USE_TESTIO_TRUE=''
-+USE_WX_FALSE=''
++USE_TESTIO_TRUE='#'
++USE_WX_FALSE='#'
 +USE_WX_TRUE=''
 +VERSION='1.10'
-+WX_FLAGS=''
-+WX_LIBS=''
++WX_FLAGS='-I/usr/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread'
++WX_LIBS='-pthread   -lwx_gtk2u_richtext-2.8 -lwx_gtk2u_aui-2.8 -lwx_gtk2u_xrc-2.8 -lwx_gtk2u_qa-2.8 -lwx_gtk2u_html-2.8 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8 '
 +ac_ct_CC=''
 +ac_ct_CXX=''
 +ac_ct_DUMPBIN=''
 +am__EXEEXT_FALSE=''
-+am__EXEEXT_TRUE=''
++am__EXEEXT_TRUE='#'
 +am__fastdepCC_FALSE='#'
 +am__fastdepCC_TRUE=''
 +am__fastdepCXX_FALSE='#'
@@ -9126,7 +9237,7 @@ Last-Update: <YYYY-MM-DD>
 +datarootdir='${prefix}/share'
 +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
 +dvidir='${docdir}'
-+exec_prefix='NONE'
++exec_prefix='${prefix}'
 +host='x86_64-pc-linux-gnu'
 +host_alias='x86_64-linux-gnu'
 +host_cpu='x86_64'
@@ -9145,13 +9256,13 @@ Last-Update: <YYYY-MM-DD>
 +mkdir_p='/bin/mkdir -p'
 +oldincludedir='/usr/include'
 +pdfdir='${docdir}'
-+pkgpyexecdir=''
-+pkgpythondir=''
++pkgpyexecdir='${pyexecdir}/mathgl'
++pkgpythondir='${pythondir}/mathgl'
 +prefix='/usr'
 +program_transform_name='s,x,x,'
 +psdir='${docdir}'
-+pyexecdir=''
-+pythondir=''
++pyexecdir='${exec_prefix}/lib/python2.6/dist-packages'
++pythondir='${prefix}/lib/python2.6/dist-packages'
 +sbindir='${exec_prefix}/sbin'
 +sharedstatedir='${prefix}/com'
 +sysconfdir='${prefix}/etc'
@@ -9185,9 +9296,9 @@ Last-Update: <YYYY-MM-DD>
 +#define MGL_USE_DOUBLE 0
 +
 +configure: exit 0
---- mathgl-1.11.orig/configure
-+++ mathgl-1.11/configure
-@@ -8735,6 +8735,10 @@ _lt_linker_boilerplate=`cat conftest.err
+--- a/configure
++++ b/configure
+@@ -8735,6 +8735,10 @@
  $RM -r conftest*
  
  
@@ -9198,7 +9309,7 @@ Last-Update: <YYYY-MM-DD>
  if test -n "$compiler"; then
  
  lt_prog_compiler_no_builtin_flag=
-@@ -8760,11 +8764,11 @@ else
+@@ -8760,11 +8764,11 @@
     -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
     -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
     -e 's:$: $lt_compiler_flag:'`
@@ -9212,7 +9323,7 @@ Last-Update: <YYYY-MM-DD>
     if (exit $ac_status) && test -s "$ac_outfile"; then
       # The compiler can only warn and ignore the option if not recognized
       # So say no if there are warnings other than the usual output.
-@@ -9099,11 +9103,11 @@ else
+@@ -9099,11 +9103,11 @@
     -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
     -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
     -e 's:$: $lt_compiler_flag:'`
@@ -9226,7 +9337,7 @@ Last-Update: <YYYY-MM-DD>
     if (exit $ac_status) && test -s "$ac_outfile"; then
       # The compiler can only warn and ignore the option if not recognized
       # So say no if there are warnings other than the usual output.
-@@ -9204,11 +9208,11 @@ else
+@@ -9204,11 +9208,11 @@
     -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
     -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
     -e 's:$: $lt_compiler_flag:'`
@@ -9240,7 +9351,7 @@ Last-Update: <YYYY-MM-DD>
     if (exit $ac_status) && test -s out/conftest2.$ac_objext
     then
       # The compiler can only warn and ignore the option if not recognized
-@@ -9259,11 +9263,11 @@ else
+@@ -9259,11 +9263,11 @@
     -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
     -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
     -e 's:$: $lt_compiler_flag:'`
@@ -9254,7 +9365,7 @@ Last-Update: <YYYY-MM-DD>
     if (exit $ac_status) && test -s out/conftest2.$ac_objext
     then
       # The compiler can only warn and ignore the option if not recognized
-@@ -11643,7 +11647,7 @@ else
+@@ -11643,7 +11647,7 @@
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
@@ -9263,7 +9374,7 @@ Last-Update: <YYYY-MM-DD>
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
-@@ -11739,7 +11743,7 @@ else
+@@ -11739,7 +11743,7 @@
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
@@ -9272,7 +9383,7 @@ Last-Update: <YYYY-MM-DD>
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
-@@ -13695,11 +13699,11 @@ else
+@@ -13695,11 +13699,11 @@
     -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
     -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
     -e 's:$: $lt_compiler_flag:'`
@@ -9286,7 +9397,7 @@ Last-Update: <YYYY-MM-DD>
     if (exit $ac_status) && test -s "$ac_outfile"; then
       # The compiler can only warn and ignore the option if not recognized
       # So say no if there are warnings other than the usual output.
-@@ -13794,11 +13798,11 @@ else
+@@ -13794,11 +13798,11 @@
     -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
     -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
     -e 's:$: $lt_compiler_flag:'`
@@ -9300,7 +9411,7 @@ Last-Update: <YYYY-MM-DD>
     if (exit $ac_status) && test -s out/conftest2.$ac_objext
     then
       # The compiler can only warn and ignore the option if not recognized
-@@ -13846,11 +13850,11 @@ else
+@@ -13846,11 +13850,11 @@
     -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
     -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
     -e 's:$: $lt_compiler_flag:'`
@@ -9314,9 +9425,9 @@ Last-Update: <YYYY-MM-DD>
     if (exit $ac_status) && test -s out/conftest2.$ac_objext
     then
       # The compiler can only warn and ignore the option if not recognized
---- mathgl-1.11.orig/widgets/Makefile.in
-+++ mathgl-1.11/widgets/Makefile.in
-@@ -62,7 +62,11 @@ DIST_COMMON = $(srcdir)/Makefile.am $(sr
+--- a/widgets/Makefile.in
++++ b/widgets/Makefile.in
+@@ -62,7 +62,11 @@
  subdir = widgets
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
@@ -9329,9 +9440,6094 @@ Last-Update: <YYYY-MM-DD>
  am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
  	$(ACLOCAL_M4)
  mkinstalldirs = $(install_sh) -d
---- mathgl-1.11.orig/texinfo/Makefile.in
-+++ mathgl-1.11/texinfo/Makefile.in
-@@ -39,7 +39,11 @@ DIST_COMMON = $(mathgl_en_TEXINFOS) $(ma
+--- /dev/null
++++ b/texinfo/mgl_ru.info-1
+@@ -0,0 +1,6072 @@
++This is mgl_ru.info, produced by makeinfo version 4.13 from mgl_ru.texi.
++
++Это документация для MathGL (версии 1.11) - библиотеки классов и
++функций для построения научной графики. Пожалуйста сообщайте о любых
++ошибках в этом руководстве на <mathgl.abalakin at gmail.org>.
++
++   Copyright (C) 2009 Алексей Балакин.
++
++     Permission is granted to copy, distribute and/or modify this
++     document under the terms of the GNU Free Documentation License,
++     Version 1.2 or any later version published by the Free Software
++     Foundation; with no Invariant Sections, with the Front-Cover Texts
++     being "A GNU Manual," and with the Back-Cover Texts as in (a)
++     below.  A copy of the license is included in the section entitled
++     "GNU Free Documentation License."
++
++     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
++     and modify this GNU manual.  Buying copies from the FSF supports
++     it in developing GNU and promoting software freedom."
++
++
++File: mgl_ru.info,  Node: Top,  Next: MGL interface,  Up: (dir)
++
++Язык MGL
++************
++
++Это документация для языка MGL (версии 1.11). Пожалуйста сообщайте о
++любых ошибках в этом руководстве на <mathgl.abalakin at gmail.org>.
++Дополнительную информацию о MGL и MathGL можно найти на домашней
++странице проекта `http://mathgl.sourceforge.net/'.
++
++   Copyright (C) 2010 Алексей Балакин.
++
++     Permission is granted to copy, distribute and/or modify this
++     document under the terms of the GNU Free Documentation License,
++     Version 1.2 or any later version published by the Free Software
++     Foundation; with no Invariant Sections, with the Front-Cover Texts
++     being "A GNU Manual," and with the Back-Cover Texts as in (a)
++     below.  A copy of the license is included in the section entitled
++     "GNU Free Documentation License."
++
++     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
++     and modify this GNU manual.  Buying copies from the FSF supports
++     it in developing GNU and promoting software freedom."
++
++* Menu:
++
++* MGL interface::
++* Examples::
++* Samples::
++* Copying This Manual::
++* Index::
++
++
++File: mgl_ru.info,  Node: MGL interface,  Next: Examples,  Up: Top
++
++1 Язык MGL
++**************
++
++MathGL имеет встроенный скриптовый язык MGL для обработки и отображения
++данных. Скрипты MGL можно использовать как независимо (программами
++UDAV, mgl2png, mgl2eps, mgl2svg и пр., *note Utilities::) так и
++вызовами библиотеки.
++
++   Язык MGL достаточно простой. Каждая строка - отдельная команда.
++Первое слово - имя команды, а все остальные ее аргументы. Команда может
++иметь до 1000 аргументов (по крайней мере сейчас). Слова разделяются
++одно от другого пробелом или символом табуляции. Различий между верхним
++и нижним индексом нет, т.е. переменные A и A идентичны. Символ `#'
++начинает комментарий - все символы после него игнорируются до конца
++строки. Исключением является случай, когда `#' входит в строку. Опции
++команды указываются после символа `;' (*note Command options::). Символ
++`:' начинает новую команду (подобно переводу строки) если он расположен
++не внутри скобок или строки.
++
++   Если строка содержит ссылки на внешние параметры (`$0', `$1' ...
++`$9') или макроопределения (`$a', `$b' ... `$z'), то текущие значения
++параметров/макроопределений подставляются в строку вместо ссылки до
++выполнением команды. Это позволяет использовать один и тот же скрипт
++при различных входных параметрах командной строки или вводить
++макроопределения по ходу исполнения команд скрипта.
++
++   Аргументы команды могут быть строками, переменными или числами.
++   * Строка - произвольный набор символов между метками `''.
++
++   * Обычно переменная имеет имя, состоящее из букв и чисел (должно
++     начинаться с буквы и не быть длиннее 64 символов). В качестве
++     переменной можно использовать временные массивы, включающие в себя:
++        * срезы ("подмассивы") массивов данных (подобно команде *note
++          subdata::). Например, `a(1)' или `a(1,:)' или `a(1,:,:)' -
++          вторая строка массива A, `a(:,2)' или `a(:,2,:)' - третий
++          столбец, `a(:,:,0)' - первый срез и т.д. Также можно выделить
++          часть массива с m-го по n-ый элемент `a(m:n,:,:)' или просто
++          `a(m:n)'.
++
++        * произвольные комбинации столбцов данных (например,
++          `a('n*w^2/exp(t)')'), если столбцы данных были именованы
++          командой *note idset:: или в файле данных (в строке
++          начинающейся с `##').
++
++        * произвольное выражение из существующих переменных и констант.
++          Например, `sqrt(dat(:,5)+1)' даст временный массив данных с
++          элементами равными `tmp[i,j] = sqrt(dat[i,5,j]+1)'.
++
++        * массивы с элементами заданными в квадратных скобках [],
++          разделенные `,'. При этом внутри выражения не должно быть
++          пробелов! Например, `[1,2,3]' даст временный массив из 3
++          элементов {1, 2, 3}; `[[11,12],[21,22]]' даст матрицу 2*2 и
++          т.д. Элементами такой конструкции могут быть и массивы если
++          их размерности одинаковые, например `[v1,v2,...,vn]'.
++
++        * результат команд построения новых данных (*note Make another
++          data::), если они заключены в фигурные скобки {}. Например,
++          `{sum dat 'x'}' даст временный массив, который есть результат
++          суммирования DAT вдоль 'x'. Это такой же массив как и TMP,
++          полученный командой `sum tmp dat 'x''. При этом можно
++          использовать вложенные конструкции, например `{sum {max dat
++          'z'} 'x'}'.
++     Временные массивы не могут стоять в качестве первого аргумента
++     команд, создающих массивы (например, `new', `read', `hist' и т.д.).
++
++   * К скалярным переменным, кроме собственно чисел, относятся:
++     специальные переменные `nan=#QNAN, pi=3.1415926..., on=1, off=0,
++     :=-1', переменные с суффиксами (*note Suffixes::), переменные
++     определенные командой *note define::. Также массивы размером 1x1x1
++     считаются скалярами (например, `pi/dat.nx').
++   Перед первым использованием все переменные должны быть определены с
++помощью команд, создающих массивы (*note new::, *note var::, *note
++list::, *note copy::, *note read::, *note hist::, *note sum:: и др.,
++*note Data create:: и *note Make another data::).
++
++   Команды могут иметь несколько наборов аргументов (например, `plot
++ydat' и `plot xdat ydat'). Все аргументы команды для выбранного набора
++должны быть указаны, однако часть из них могут иметь значения по
++умолчанию. Такие аргументы в описании команд будут помещены в
++квадратные скобки [], например `plot ydat ['stl'='' zval=nan]'. При
++этом запись `[arg1 arg2 arg3 ...]' подразумевает `[arg1 [arg2 [arg3
++...]]]', т.е. опускать можно только аргументы с конца, если вы согласны
++с их значениями по умолчанию. Например, `plot ydat '' 1' или `plot ydat
++''' правильно, а `plot ydat 1' не правильно (аргумент `'stl'' пропущен).
++
++   Все команды MGL можно разделить на несколько групп. В дальнейшем
++будет использованы следующие обозначения при описании команд: имя
++команды выделено жирным, строки заключены в одинарные кавычки ",
++переменные выделены курсивом, числа (скаляры) выделены моноширинным
++шрифтом. Необязательные аргументы будут помещены в квадратные скобки []
++и показаны их значения по умолчанию. Подробную информацию о цвете и
++стиле линий (*note Line styles::), цветовых схемах (*note Color
++scheme::), стиле текста и символах TeX (*note Font styles::), текстовых
++формулах (*note Textual formulas::) можно найти в соответствующих
++разделах.
++
++* Menu:
++
++
++* General concepts::
++* Graphics setup ::
++* Axis settings ::
++* Transformation matrix ::
++* Export to file ::
++* Primitives drawing ::
++* Text printing ::
++* Axis and Colorbar ::
++* Legend ::
++* 1D plotting ::
++* 2D plotting ::
++* 3D plotting ::
++* Dual plotting ::
++* Vector fields ::
++* Other plotting ::
++* Nonlinear fitting ::
++* Data create ::
++* Data filling ::
++* Rearrange data ::
++* File I/O ::
++* Make another data ::
++* Change data ::
++* Operators ::
++* Program flow ::
++* Command options ::
++* Suffixes::
++* Utilities::
++
++
++File: mgl_ru.info,  Node: General concepts,  Prev: Utilities,  Up: MGL interface
++
++1.1 Основные принципы
++=====================================
++
++Возможности библиотеки MathGL довольно богаты - число только основных
++типов графиков превышает 50 видов. Кроме того, есть функции для
++обработки данных, настройки вида графика и пр. и пр. Тем не менее, я
++старался придерживаться единого стиля в порядке аргументов функций и
++способе их "настройки". В основном все ниже сказанное относится к
++функциям рисования различных графиков.
++
++   Всего основных концепций (базисных идей) четыре:
++  1. *Все настройки графиков (стиль линий, цветовые схемы поверхностей,
++     стиль и цвет текста) задаются строками.* Это обеспечивает:
++     удобство для пользователя - короткую строку легче читать и здесь
++     тяжелее ошибиться, чем в большом списке параметров; переносимость
++     - строки выглядят одинаково на всех платформах и не надо
++     заботиться о типе и числе аргументов.
++
++  2. *Все функции имеют "упрощенный" и "продвинутый" варианты.* Сделано
++     опять из-за удобства. В "упрощенном" варианте для построения
++     графика нужны только один-два массив(а) данных, которые
++     автоматически равнораспределяются в заданном диапазоне осей
++     координат. В "продвинутой" версии можно не только указать явно
++     диапазон построения графика, но и задать его параметрически.
++     Последнее позволяет легко строить довольно сложные кривые и
++     поверхности. В обоих вариантах функций порядок аргументов
++     стандартен: сначала идут массивы данных, потом необязательный
++     строковый параметр стиля графика, а далее - второстепенные
++     необязательные параметры для более точной настройки графика.
++
++  3. *Все элементы рисунков векторные.* Изначально библиотека MathGL
++     была ориентированна на работу с научными данными, которые по своей
++     природе векторные (линии, грани, матрицы и т.д.). Поэтому
++     векторность используется во всех рисунках! Причем иногда даже в
++     ущерб производительности (например, при выводе шрифтов). Помимо
++     всего прочего, векторность позволяет легко масштабировать рисунок
++     - измените размер картинки в 2 раза, и рисунок пропорционально
++     растянется.
++
++  4. *Новые графики не удаляют уже нарисованное.* Этот, в чем-то
++     неожиданный, подход позволяет создавать огромное количество
++     "комбинированных" графиков. Например, поверхность с наложенными
++     линиями уровня строится двумя последовательными вызовами функций
++     рисования поверхности и линий уровня (в любом порядке). И
++     совершенно не надо писать специальную функцию (как в Matlab и
++     некоторых других программах) для рисования этого графика. Примеров
++     таких графиков можно привести множество (см. раздел *note Hints::
++     и сайт программы `http://mathgl.sf.net/index.html').
++
++   Кроме основных концепций я хотел бы остановиться на нескольких, как
++оказалось, нетривиальных моментах - способе указания положения графика,
++осей координат и строковых параметров линий, поверхностей, текста.
++
++* Menu:
++
++* Coordinate axes::
++* Line styles::
++* Color scheme::
++* Font styles::
++* Textual formulas::
++
++
++File: mgl_ru.info,  Node: Coordinate axes,  Next: Line styles,  Up: General concepts
++
++1.1.1 Оси координат
++-------------------------------
++
++Представление системы координат в MathGL состоит из двух частей.
++Вначале координаты нормируются в интервал MINxMAX (*note Axis
++settings::). Если флаг CUT установлен, то точки вне интервала
++отбрасываются, в противном случае, они проецируются на ограничивающий
++параллелепипед (*note Cutting::). Кроме того, отбрасываются точки
++внутри границ, определенных переменными CUTMINxCUTMAX и точки, для
++которых значение функции `CutOff'() не равно нулю. После этого формулы
++перехода в криволинейную систему координат `SetFunc()'применяются к
++каждой точке. Наконец, точка данных отображается с помощью одной из
++графических функций.
++
++   Величины MAX, MIN можно изменять вручную. Однако, после этого
++необходимо вызвать функцию `RecalcBorder()' для настройки графика.
++Более удобный и безопасный путь состоит в вызове функций `Axis(),
++SetRanges()' и др. В последнем случае функция `RecalcBorder()'
++вызывается автоматически. Размеры осей можно задавать и автоматически
++по минимальному и максимальному значениям массива данных. Для этого
++предназначены функции `XRange(), YRange(), ZRange()'. Второй не
++обязательный аргумент указывает, заменять ли новые значения диапазона
++изменения оси координат (по умолчанию) или только расширить уже
++существующий диапазон.
++
++   Точка пересечения осей координат задается переменной ORG и действует
++на последующие вызовы функций рисования осей координат и сетки. По
++умолчанию, если точка пересечения осей координат попадает вне диапазона
++осей координат, то она проецируется на границу области. Изменить такое
++поведение можно, задав AUTOORG=`false'. В случае, если одно из значений
++ORG равно NAN, то соответствующее значение будет выбрано автоматически.
++
++   Кроме привычных осей _x, y, z_ есть еще одна ось - цветовая шкала -
++ось _c_. Она используется при окрашивании поверхностей и задает границы
++изменения функции при окрашивании. При вызове `Axis()' ее границы
++автоматически устанавливаются равными Min.z и Max.z. Возможно и ручное
++изменение границ цветового интервала посредством вызова функции
++`CAxis()' или изменение границ по заданному массиву `CRange()'.
++Используйте `Colorbar()' для отображения цветовой шкалы.
++
++   Вид меток по осям определяется функцией `SetTicks()' (*note Axis
++settings::). Она имеет 3 аргумента: первый D задает шаг меток (если
++положительны) или их число (если отрицательны) или логарифмические
++метки (если равны нулю); второ NS задает число "подметок"; последний
++определяет начальную точку для меток (по умолчанию это точка
++пересечения осей). Функция SETTUNETICKS включает/выключает выделение
++общего множителя (большого или малого факторов в диапазоне) для меток
++осей координат. Наконец, если стандартный вид меток не устраивает
++пользователя, то их шаблон можно задать явно (можно использовать и ТеХ
++символы), воспользовавшись функциями  `SetXTT(), SetYTT(). SetZTT().
++SetCTT()'. Кроме того, в качестве меток можно вывести произвольный
++текст использовав функцию `SetTicksVal()'.
++
++
++File: mgl_ru.info,  Node: Line styles,  Next: Color scheme,  Prev: Coordinate axes,  Up: General concepts
++
++1.1.2 Стиль линий
++---------------------------
++
++Стиль линии задается строкой, которая может содержать символ цвета
++(`wkrgbcymhRGBCYMHWlenupqLENUPQ'), тип пунктира (`-|;:ji' или пробел),
++ширину линии (`0123456789') и тип маркера (`o+xsd.^v' и модификатор
++`#'). Если пропущен цвет или тип пунктира, то используется значение по
++умолчанию с последним указанным цветом или значение из палитры (для
++*note 1D plotting::).  По умолчанию палитры содержит следующие цвета:
++темно серый `H', синий `b', зеленый `g', красный `r', голубой `c',
++пурпурный `m', yellow `y', серый `h', сине-зеленый `l', небесно-синий
++`n', оранжевый `q', желто-зеленый `e', сине-фиолетовый `u', фиолетовый
++`p'.
++
++   Символы цвета те же, что и в классе mglColor (*note mglColor
++class::): `k' - черный, `r' - красный, `R' - темно красный, `g' -
++зеленый, `G' - темно зеленый, `b' - синий, `B' - темно синий, `c' -
++голубой, `C' - темно голубой, `m' - пурпурный, `M' - темно пурпурный,
++`y' - желтый, `Y' - темно желтый (золотой), `h' - серый, `H' - темно
++серый, `w' - белый, `W' - светло серый, `l' - сине-зеленый, `L' - темно
++сине-зеленый, `e' - желто-зеленый, `E' - темно желто-зеленый, `n' -
++небесно-синий, `N' - темно небесно-синий, `u' - сине-фиолетовый, `U' -
++темно сине-фиолетовый, `p' - фиолетовый, `P' - темно фиолетовый, `q' -
++оранжевый, `Q' - темно оранжевый (коричневый).
++
++   Тип пунктира: пробел - нет линии (для рисования только маркеров),
++`-' - сплошная линия (################), `|' - длинный пунктир
++(########________), `;' - пунктир (####____####____), `=' - короткий
++пунктир (##__##__##__##__), `:' - точки (#___#___#___#___), `j' -
++пунктир с точками  (#######____#____), `i' - мелкий пунктир с точками
++(###__#__###__#__).
++
++   Типы маркеров: `o' - окружность, `+' - крест, `x' - косой крест, `s'
++- квадрат, `d' - ромб, `.' - точка, `^' - треугольник вверх, `v' -
++треугольник вниз, `<' - треугольник влево, `>' - треугольник вправо,
++`#*' - знак Y, `#+' - крест в квадрате, `#x' - косой крест в квадрате,
++`#.' - точка в окружности. Если в строке присутствует символ `#', то
++используются символы с заполнением.
++
++ [image src="../png/sample5.png" ]
++
++Стили линий и маркеров.
++
++   На конце и в начале линии можно выводить специальный символ
++(стрелку), если в строке указать один из символов: `A' - стрелка
++наружу, `V' - стрелка внутрь, `I' - поперечная черта, `K' - стрелка с
++чертой, `T' - треугольник, `S' - квадрат, `D' - ромб, `O' - круг, `_' -
++нет стрелки (по умолчанию). При этом действует следующее правило:
++первый символ определяет стрелку на конце линии, второй символ -
++стрелку в начале линии. Например, `r-A' - красная сплошная линия со
++стрелкой на конце, `b|AI' - синий пунктир со стрелкой на конце и чертой
++вначале, `_O' - линия с текущим стилем и кружком вначале. Эти стили
++действуют и при построении графиков (например, *note 1D plotting::).
++
++ [image src="../png/sampled.png" ]
++
++Стили стрелок.
++
++
++File: mgl_ru.info,  Node: Color scheme,  Next: Font styles,  Prev: Line styles,  Up: General concepts
++
++1.1.3 Цветовая схема
++---------------------------------
++
++Цветовая схема используется для определения цвета поверхностей, линий
++уровня и пр. Цветовая схема задается строкой _s_, которая содержит
++символы цвета (*note Line styles::) или символы `d#:|'. Символ `d'
++указывает на определение цвета в зависимости от положения точки в
++пространстве, а не по амплитуде данных. Символ `#' переключает
++рисование поверхности на сетчатое (для трехмерных поверхностей) или
++включает рисование сетки на поверхности. Символ `|' отключает
++интерполяцию цвета в цветовой схеме. Это может быть полезно для
++"резких" цветов, например, при рисовании матриц. Если в строке
++встречается символ `:', то он принудительно заканчивает разбор строки
++для стиля поверхности. После этого символа могут идти описание стиля
++текста или оси вращения кривой/линий уровня. Цветовая схема может
++содержать до 32 значений цвета.
++
++   В цветовой схеме можно использовать тональные ("подсвеченные") цвета
++(_не в стиле линий!_). Тональный цвет задается двумя символами: первый
++- обычный цвет, второй - его яркость цифрой. Цифра может быть в
++диапазоне `1'...`9'. При этом `5' соответствует нормальному цвету, `1'
++- очень темная версия цвета (почти черный), `9' - очень светлая версия
++цвета (почти белый). Например цветовая схема может быть `b2b7wr7r2'.
++
++ [image src="../png/colors.png" ]
++
++Цвета и их идентификаторы.
++
++   При определении цвета по _амплитуде_ (наиболее часто используется)
++окончательный цвет определяется путем линейной интерполяции массива
++цветов. Массив цветов формируется из цветов, указанных в строке
++спецификации. Аргумент - амплитуда, нормированная между CMIN - CMAX
++(*note Axis settings::). Например, строка из 4 символов `bcyr'
++соответствует изменению цвета от синего (минимальное значение) через
++голубой и желтый (промежуточные значения) к красному (максимальное
++значение). Строка `kw' соответствует изменению цвета от черного
++(минимальное значение) к белому (максимальное значение). Строка из
++одного символа (например, `g') соответствует однотонному цвету (в
++данному случае зеленому).
++
++   Есть несколько полезных цветовых схем. Строка `kw' дает обычную
++серую (черно-белую) схему, когда большие значения светлее. Строка `wk'
++представляет обратную серую схему, когда большие значения темнее.
++Строки `kRryw', `kGgw', `kBbcw' представляют собой хорошо известные
++схемы _hot_, _summer_ и _winter_. Строки `BbwrR' и `bBkRr' позволяют
++рисовать двухцветные фигуры на белом или черном фоне, когда
++отрицательные значения показаны синим цветом, а положительные -
++красным. Строка `BbcyrR' дает цветовую схему, близкую к хорошо
++известной схеме _jet_.
++
++ [image src="../png/color_schemes.png" ]
++
++Наиболее популярные цветовые схемы.
++
++   При определении цвета по _положению точки в пространстве_
++окончательный цвет определяется по формуле c=x*c[1] + y*c[2] + z*c[3].
++Здесь c[1], c[2], c[3] - первые три цвета в цветовом массиве; x, y, z -
++координаты точки, нормированные на MINxMAX. Такой тип определения цвета
++полезен, например, при построении поверхностей уровня, когда цвет дает
++представление о положении точки в пространстве.
++
++
++File: mgl_ru.info,  Node: Font styles,  Next: Textual formulas,  Prev: Color scheme,  Up: General concepts
++
++1.1.4 Стиль текста
++-----------------------------
++
++Стиль текста задается строкой, которая может содержать несколько
++символов: тип шрифта (`ribwou') и/или выравнивания (`LRC'), а также
++цвет текста `wkrgbcymhRGBCYMHW' (*note Line styles::) после символа
++`:'. Например, `biC:b' соответствует жирному курсиву с выравниванием по
++центру синего цвета.
++
++   Начертания шрифта: `r' - прямой шрифт, `i' - курсив, `b' - жирный.
++По умолчанию используется прямой шрифт. Типы выравнивания текста: `L' -
++по левому краю (по умолчанию), `C' - по центру, `R' - по правому краю.
++Дополнительные эффекты шрифта: `w' - контурный, `o' - надчеркнутый, `u'
++- подчеркнутый.
++
++   Синтаксический разбор LaTeX-их команд по умолчанию включен. Это
++команды смены стиля текста (например, \b для жирного текста): \a или
++\overline - надчеркивание, \b или \textbf - жирный, \i или \textit -
++курсив, \r или \textrm - прямой (отменяет стили жирного и курсива), \u
++или \underline - подчеркнутый, \w или \wire - контурный, \big -
++большего размера, @ - меньшего размера. Нижний и верхний индексы
++задаются символами `_' и `^'. При этом изменение стиля применяется
++только к следующему символу или к символам в фигурных скобках {},
++которые понимаются как единый блок. Например, сравните строки `sin
++(x^{2^3})' и `sin (x^2^3)'. Можно также менять цвет текста внутри
++строки с помощью команд #? или \color?, где `?' - символ цвета (*note
++Line styles::). Например, слова `Blue' и `red' будут окрашены в
++соответствующий цвет в строке `#b{Blue} and \colorr{red} text'.
++Большинство функций понимает символ новой строки `\n' и позволяет
++выводить много строчный текст. Наконец, можно использовать символы с
++произвольным UTF кодом с помощью команды `\utf0x????'. Например,
++`\utf0x3b1' даст символ \alpha.
++
++   Распознаются также большинство символов TeX и AMSTeX, команды смены
++стиля текста (\textrm, \textbf, \textit, \textsc, \overline,
++\underline), акценты (\hat, \tilde, \dot, \ddot, \acute, \check,
++\grave, \bar, \breve) и корни (\sqrt, \sqrt3, \sqrt4). Полный список
++содержит около 2000 символов. Отмечу, что первый пробел (пробел,
++табуляция и пр.) после команды игнорируется, а все остальные пробелы
++печатаются обычным образом. Например, следующие строки дают одинаковый
++результат \tilde a: `\tilde{a}'; `\tilde a'; `\tilde{}a'.
++
++   В частности, распознаются греческие буквы: \alpha - \alpha, \beta -
++\beta, \gamma - \gamma, \delta - \delta, \epsilon - \epsilon, \eta -
++\eta, \iota - \iota, \chi - \chi, \kappa - \kappa, \lambda - \lambda,
++\mu - \mu, \nu - \nu, o - \o, \omega - \omega, \phi - \phi, \pi - \pi,
++\psi - \psi, \rho - \rho, \sigma - \sigma, \theta - \theta, \tau -
++\tau, \upsilon - \upsilon, \xi - \xi, \zeta - \zeta, \varsigma -
++\varsigma, \varepsilon - \varepsilon, \vartheta - \vartheta, \varphi -
++\varphi, A - \Alpha, B - \Beta, \Gamma - \Gamma, \Delta - \Delta, E -
++\Epsilon, H - \Eta, I - \Iota, C - \Chi, K - \Kappa, \Lambda - \Lambda,
++M - \Mu, N - \Nu, O - \O, \Omega - \Omega, \Phi - \Phi, \Pi - \Pi, \Psi
++- \Psi, R - \Rho, \Sigma - \Sigma, \Theta - \Theta, T - \Tau, \Upsilon
++- \Upsilon, \Xi - \Xi, Z - \Zeta.
++
++   Еще примеры наиболее общеупотребительных TeX-их символов: \angle -
++\angle, \aleph - \aleph, \cdot - \cdot, \clubsuit - \clubsuit, \cup -
++\cup, \cap - \cap, \diamondsuit - \diamondsuit, \diamond - \diamond,
++\div - \div, \downarrow - \downarrow, \dag - \dag, \ddag - \ddag,
++\equiv - \equiv, \exists - \exists, \frown - \frown, \flat - \flat, \ge
++- \ge, \geq - \geq, \gets - \gets, \heartsuit - \heartsuit, \infty -
++\infty, \in - \in, \int - \int, \Im - \Im, \langle - \langle, \le -
++\le, \leq - \leq, \leftarrow - \leftarrow, \mp - \mp, \nabla - \nabla,
++\ne - \ne, \neq - \neq, \natural - \natural, \oint - \oint, \odot -
++\odot, \oplus - \oplus, \partial - \partial, \parallel - \parallel,
++\perp - \perp, \pm - \pm, \propto - \propto, \prod - \prod, \Re - \Re,
++\rightarrow - \rightarrow, \rangle - \rangle, \spadesuit - \spadesuit,
++\sim - \sim, \smile - \smile, \subset - \subset, \supset - \supset,
++\surd - \sqrt or \surd, \S - \S, \sharp - \sharp, \sum - \sum, \times -
++\times, \to - \to, \uparrow - \uparrow, \wp - \wp and so on.
++
++   Размер текста может быть задан явно (если SIZE>0) или относительно
++базового размера шрифта для рисунка |SIZE|*FONTSIZE при SIZE<0.
++Значение SIZE=0 указывает, что соответствующая строка выводиться не
++будет. Базовый размер шрифта измеряется во внутренних единицах.
++Специальные функции `SetFontSizePT(), SetFontSizeCM(), SetFontSizeIN()'
++позволяют задавать его в более "привычных" единицах.
++
++
++File: mgl_ru.info,  Node: Textual formulas,  Prev: Font styles,  Up: General concepts
++
++1.1.5 Текстовые формулы
++---------------------------------------
++
++MathGL имеет быстрый парсер текстовых формул , понимающий большое число
++функций и операций. Базовые операции: `+' - сложение, `-' - вычитание,
++`*' - умножение, `/' - деление, `^' - возведение в целосичленную
++степень. Также есть логические операции: `<' - истина если if x<y, `>'
++- истина если x>y, `=' - истина если x=y, `&' - истина если x и y оба
++не равны нулю, `|' - истина если x или y не нуль. Логические операции
++имеют наинизший приоритет и возвращают 1 если истина или 0 если ложно.
++
++   Базовые функции: `sqrt(x)' - квадратный корень из X, `pow(x,y)' - X
++в степени Y, `ln(x)' - натуральный логарифм X, `lg(x)' - десятичный
++логарифм X, `log(a,x)' - логарифм по основанию A от X, `abs(x)' -
++модуль X, `sign(x)' - знак X, `mod(x,y)' - остаток от деления x на y,
++`step(x)' - ступенчатая функция, `int(x)' - целая часть X, `rnd' -
++случайное число, `pi' - число \pi=3.1415926...
++
++   Тригонометрические функции: `sin(x)', `cos(x)', `tan(x)' (или
++`tg(x)'). Обратные тригонометрические функции: `asin(x)', `acos(x)',
++`atan(x)'. Гиперболические функции: `sinh(x)' (или `sh(x)'), `cosh(x)'
++(или `ch(x)'), `tanh(x)' (или `th(x)'). Обратные гиперболические
++функции: `asinh(x)', `acosh(x)', `atanh(x)'.
++
++   Специальные функции: `gamma(x)' - гамма функция \Gamma(x) =
++\int_0^\infty dt t^{x-1} \exp(-t) , `psi(x)' - дигамма функция \psi(x)
++= \Gamma</samp>&rsquo;(x)/\Gamma(x) для x!=0, `ai(x)' - Эйри функция
++Ai(x), `bi(x)' - Эйри функция Bi(x), `cl(x)' - функция Клаузена,
++`li2(x)' (или `dilog(x)') - дилогарифм Li_2(x) = - \Re \int_0^x ds
++\log(1-s)/s, `sinc(x)' - функция sinc(x) = \sin(\pi x) / (\pi x) для
++любых x, `zeta(x)' - зета функция Римана \zeta(s) = \sum_{k=1}^\infty
++k^{-s} для s!=1, `eta(x)' - эта функция \eta(s) = (1-2^{1-s}) \zeta(s)
++для произвольного s, `lp(l,x)' - полином Лежандра P_l(x), (|x|<=1,
++l>=0), `w0(x)', `w1(x)' - функции Ламберта W. Функции W(x) определены
++как решение уравнения W \exp(W) = x.
++
++   Экспоненциальные интегралы: `ci(x)' - cos-интеграл Ci(x) = \int_0^x
++dt \cos(t)/t, `si(x)' - sin-интеграл Si(x) = \int_0^x dt \sin(t)/t,
++`erf(x)' - функция ошибки erf(x) = (2/\sqrt(\pi)) \int_0^x dt
++\exp(-t^2), `ei(x)' - интеграл Ei(x) := - PV(\int_{-x}^\infty dt
++\exp(-t)/t) (где PV обозначает главное значение), `e1(x)' - интеграл
++E_1(x) := Re \int_1^\infty dt \exp(-xt)/t , `e2(x)' - интеграл E_2(x)
++:= Re \int_1^\infty dt \exp(-xt)/t^2, `ei3(x)' - интеграл Ei_3(x) =
++\int_0^x dt \exp(-t^3) для x>=0.
++
++   Функции Бесселя: `j(nu,x)' - функция Бесселя первого рода, `y(nu,x)'
++- функция Бесселя второго рода, `i(nu,x)' - модифицированная функция
++Бесселя первого рода, `k(nu,x)' - модифицированная функция Бесселя
++второго рода.
++
++   Эллиптические интегралы: `ee(k)' - полный эллиптический интеграл
++E(k) = E(\pi/2, k), `ek(k)' - полный эллиптический интеграл K(k) =
++F(\pi/2, k), `e(phi,k)' - эллиптический интеграл E(\phi,k) =
++\int_0^\phi dt \sqrt((1 - k^2 \sin^2(t))), `f(phi,k)' - эллиптический
++интеграл F(\phi,k) = \int_0^\phi dt 1/\sqrt((1 - k^2 \sin^2(t))).
++
++   Функции Якоби: `sn(u,m)', `cn(u,m)', `dn(u,m)', `sc(u,m)',
++`sd(u,m)', `ns(u,m)', `cs(u,m)', `cd(u,m)', `nc(u,m)', `ds(u,m)',
++`dc(u,m)', `nd(u,m)'.
++
++   Некоторые из функций могут быть недоступны если флаг NO_GSL был
++определен при компиляции библиотеки MathGL.
++
++   При разборе формул нет различия между верхним и нижним регистром.
++Если аргумент лежит вне области определения функции, то возвращается
++NaN.
++
++
++File: mgl_ru.info,  Node: Graphics setup,  Next: Axis settings,  Prev: General concepts,  Up: MGL interface
++
++1.2 Настройка графика
++=====================================
++
++Команды в этой группе влияют на вид всего рисунка. Соответственно они
++должны располагаться _перед_ вызовом функций непосредственно рисующих
++графики.
++
++* Menu:
++
++* Transparency ::
++* Lighting ::
++* Fog ::
++* Default sizes ::
++* Zooming ::
++* Cutting ::
++* Other settings ::
++
++
++File: mgl_ru.info,  Node: Transparency,  Next: Lighting,  Up: Graphics setup
++
++1.2.1 Прозрачность
++------------------------------
++
++Эти команды настраивают тип и степень прозрачности поверхностей.
++Главной является функция *note alpha::, которая включает/выключает
++прозрачность для всех графиков, созданных после вызова *note alpha::.
++Функция *note alphadef:: устанавливает величину alpha-канала по
++умолчанию. Прозрачность можно выключить для отдельного графика с
++помощью *note transparent::. Наконец, функция *note transptype:: задает
++тип прозрачности. См. раздел *note Transparent surface sample::, для
++примеров кода и графика.
++
++ -- Команда MGL: alpha `[val=on]'
++     Включает/выключает прозрачность для _всего_ рисунка. По умолчанию
++     прозрачность выключена. Используйте `transparent off' для
++     конкретного графика для выключения прозрачности.
++   
++ -- Команда MGL: alphadef `val'
++     Задает значение прозрачности по умолчанию для всех графиков.
++     Начальное значение 0.5.
++   
++ -- Команда MGL: transparent `val'
++     Временно включает/возвращает прозрачность графиков.
++   
++ -- Команда MGL: transptype `val'
++     Задает тип прозрачности. Обычная прозрачность (`0') - "закрытые"
++     объекты видны меньше чем закрывающие. "Стеклянная" прозрачность
++     (`1') - закрытые и закрывающие объекты единообразно ослабляют
++     интенсивность света (по RGB каналам). "Ламповая" прозрачность
++     (`2') - закрытые и закрывающие объекты являются источниками
++     дополнительного освещения (рекомендую установить `alphadef 0.3'
++     или меньше в этом случае). *Note Normal transparency::, *note
++     Glass-like transparency::, *note Lamp-like transparency::.
++
++
++File: mgl_ru.info,  Node: Lighting,  Next: Fog,  Prev: Transparency,  Up: Graphics setup
++
++1.2.2 Освещение
++------------------------
++
++Эти функции настраивают освещение графика. Главная функция *note
++light:: включает/выключает освещение графиков построенных после ее
++вызова. MathGL  поддерживает до 10 независимых источников света.
++Положение, цвет, яркость каждого источника света можно задавать по
++отдельности. По умолчанию включен только первый (с порядковым номером
++`0') источник света белого цвета, расположенный сверху.
++
++ -- Команда MGL: light `[val=on]'
++     Включает/выключает освещение графика. По умолчанию освещение
++     выключено.
++
++ -- Команда MGL: light `n val'
++     Включает/выключает N-ый источник света.
++
++ -- Команда MGL: light `n xpos ypos zpos' ['col'='w' `br=0.5']
++     Добавляет источник света с номером N в положение {XPOS, YPOS,
++     ZPOS} с цветом COL и яркостью BR, которая должна быть в диапазоне
++     [0,1].
++
++ -- Команда MGL: ambient `val'
++     Задает яркость рассеянного освещения. Значение должно быть в
++     диапазоне [0,1].
++
++
++File: mgl_ru.info,  Node: Fog,  Next: Default sizes,  Prev: Lighting,  Up: Graphics setup
++
++1.2.3 Туман
++----------------
++
++ -- Команда MGL: fog `val [dz=0.25]'
++     Имитирует туман на графике. Туман начинается на относительном
++     расстоянии DZ от точки обзора и его плотность растет
++     экспоненциально вглубь по закону ~1-exp(-d*z). Здесь _z_ -
++     нормализованная на 1 глубина графика. Если D=`0' то туман
++     отсутствует. См. раздел *note Surface in fog sample::, для
++     примеров кода и графика.
++
++
++File: mgl_ru.info,  Node: Default sizes,  Next: Zooming,  Prev: Fog,  Up: Graphics setup
++
++1.2.4 Базовые размеры
++-----------------------------------
++
++Эти команды задают величины большинства параметров графика, включая
++размеры маркеров, стрелок, толщину линий и т.д. Как и любые другие
++настройки, они подействуют только на графики созданные после изменения
++настроек.
++
++ -- Команда MGL: barwidth `val'
++     Относительный размер прямоугольников в `bars, barh, boxplot'.
++     Значение по умолчанию `0.7'.
++
++ -- Команда MGL: marksize `val'
++     Размер маркеров для *note 1D plotting::. Значение по умолчанию `1'.
++
++ -- Команда MGL: arrowsize `val'
++     Размер стрелок для *note 1D plotting::, линий и кривых (*note
++     Primitives drawing::). Значение по умолчанию `1'.
++
++ -- Команда MGL: linewidth `val'
++     Базовая толщина линий. Значения <1 игнорируются. Для значений >1
++     реальная толщина получается перемножением указанной ширины линии
++     на данное значение. Увеличение ширины линии актуально для больших
++     растровых рисунков. Значение по умолчанию `1'.
++
++ -- Команда MGL: ticklen `val' [`stt=1']
++     Относительная длина меток осей координат. Значение по умолчанию
++     `0.1'. Параметр STT>0 задает относительную длину подметок, которые
++     в `sqrt(1+stt)' раз меньше.
++
++ -- Команда MGL: tickstl 'stl' ['sub'="]
++     Стиль меток (STL) и подметок (SUB) осей координат. Если `stl=''',
++     то используется стиль по умолчанию (`k' или `w' в зависимости от
++     типа прозрачности). Если `sub=''', то используется стиль меток
++     (т.е. STL).
++
++
++File: mgl_ru.info,  Node: Zooming,  Next: Cutting,  Prev: Default sizes,  Up: Graphics setup
++
++1.2.5 Масштабирование
++------------------------------------
++
++Эти команды управляют масштабированием всего рисунка (*note zoom::) или
++отдельной картинки (*note plotfactor::). Обычно эти функции
++используются для удаления пустого места вокруг графиков.
++
++ -- Команда MGL: plotfactor `val'
++     Масштаб картинки (значение должно быть больше 1). Не рекомендуется
++     устанавливать значения меньше 1.5. Это аналог *note zoom::, но
++     применяется только к конкретной картинке, заданной *note inplot::.
++     Используйте ноль для включения автоматического масштабирования.
++
++ -- Команда MGL: zoom `x1 y1 x2 y2'
++     Масштабирует весь рисунок. После вызова функции текущий график
++     будет очищен и в дальнейшем рисунок будет содержать только область
++     [x1,x2]*[y1,y2] от исходного рисунка. Координаты X1, X2, Y1, Y2
++     меняются в диапазоне от 0 до 1. Внимание! эти настройки не могут
++     быть переписаны никакими другими функциями. Используйте `zoom 0 0
++     1 1' для перехода в масштаб по умолчанию.
++
++
++File: mgl_ru.info,  Node: Cutting,  Next: Other settings,  Prev: Zooming,  Up: Graphics setup
++
++1.2.6 Обрезание
++------------------------
++
++Эти команды задают условия когда точка будет исключена (вырезана) из
++рисования. Замечу, что все точки со значением(-ями) `nan' по одной из
++координат или амплитуде автоматически исключаются из рисования.
++
++ -- Команда MGL: cut `val'
++     Задает обрезание точек за пределами осей координат. Если `on' то
++     такие точки исключаются из рисования (это по умолчанию) иначе они
++     проецируются на ограничивающий прямоугольник.
++
++ -- Команда MGL: cut `x1 y1 z1 x2 y2 z2'
++     Задает границы параллелепипеда внутри которого точки не рисуются.
++     Если границы одинаковы (переменные равны), то параллелепипеда
++     считается пустым. См. раздел *note CutMinMax sample::, для
++     примеров кода и графика.
++
++ -- Команда MGL: cut 'cond'
++     Задает условие обрезания по формуле COND. Это условие исключает
++     точки из рисования если результат вычисления формулы не равен
++     нулю. Установите аргумент `''' для выключения условия обрезания.
++     См. раздел *note CutOff sample::, для примеров кода и графика.
++
++
++File: mgl_ru.info,  Node: Other settings,  Prev: Cutting,  Up: Graphics setup
++
++1.2.7 Прочие настройки
++-------------------------------------
++
++ -- Команда MGL: font 'fnt' [`val=6']
++     Задает стиль и размер шрифта (*note Text printing::). Вначале
++     используется `rC' - прямой шрифт с выравниванием по центру. По
++     умолчанию размер подписей оси координат в 1.4 раза больше.
++
++ -- Команда MGL: rotatetext `val'
++     Включает/выключает вращение меток и подписей осей координат вдоль
++     оси. Начальное значение `on'.
++
++ -- Команда MGL: palette 'colors'
++     Задает палитру как последовательность цветов. Значение по
++     умолчанию `"Hbgrcmyhlnqeup"', что соответствует цветам: темно
++     серый `H', синий `b', зеленый `g', красный `r', голубой `c',
++     малиновый `m', желтый `y', серый `h', сине-зеленый  `l',
++     небесно-голубой `n', оранжевый `q', желто-зеленый `e',
++     сине-фиолетовый `u', фиолетовый `p'. Палитра в основном
++     используется в 1D графиках (*note 1D plotting::) для кривых с
++     неопределенным стилем линии.
++
++ -- Команда MGL: meshnum `num'
++     Задает ориентировочное число линий в *note mesh::, *note fall::,
++     *note grid::, число стрелок (штрихов) в *note vect::, *note dew::
++     и число ячеек в *note cloud::. По умолчанию (=0) рисуются все
++     линии, стрелки, ячейки.
++
++ -- Команда MGL: axialdir 'dir'
++     Задает ось вращения для *note axial::, *note torus::. По умолчанию
++     это 'z'.
++
++
++File: mgl_ru.info,  Node: Axis settings,  Next: Transformation matrix,  Prev: Graphics setup,  Up: MGL interface
++
++1.3 Параметры осей координат
++==================================================
++
++Этот большой набор команд определяет вид осей и меток координат. Перед
++построением для каждой точки выполняются 3 преобразования: сначала
++определяется возможность рисования точки (*note Cutting::), далее
++применяются формулы перехода к криволинейным координатам и наконец
++точка отображается.
++
++ -- Команда MGL: axis `x1 y1 x2 y2'
++ -- Команда MGL: axis `x1 y1 z1 x2 y2 z2'
++ -- Команда MGL: ranges `x1 x2 y1 y2 [z1=0 z2=0]'
++     Задает диапазон изменения координат. Если минимальное и
++     максимальное значение координаты равны, то они игнорируются по
++     данному направлению. Также устанавливает размер цветовой шкалы,
++     аналогично команде  `caxis z1 z2'. Начальные диапазоны равны [-1,
++     1].
++
++ -- Команда MGL: axis 'fx' 'fy' ['fz'=" 'fa'="]
++     Задает формулы перехода к криволинейным координатам. Каждая строка
++     является математическим выражением, зависящим от старых координат
++     `x', `y', `z' и `a' или `c' для цветовой шкалы. Например, для
++     цилиндрических координат будет `axis 'x*cos(y)' 'x*sin(y)' 'z''.
++     Для удаления формул соответствующий параметр должен быть пустым
++     `'''. Использование формул преобразования слегка замедляет
++     программу, т.е.. `axis '' '' ''' быстрее чем `axis '1*x' '1*y'
++     '1*z''. Параметр FA задает аналогичную формулу для цветовой шкалы.
++     *Note Textual formulas::.
++
++ -- Команда MGL: axis `how'
++     Устанавливает одну из предопределенных систем криволинейных
++     координат в зависимости от параметра HOW: `0' - декартова система
++     (нет преобразования координат, наиболее быстрая); `1' - полярные
++     координаты x_n=x*cos(y),y_n=x*sin(y), z_n=z; `2' - сферические
++     координаты x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y);
++     `3' - параболические координаты x_n=x*y, y_n=(x*x-y*y)/2, z_n=z;
++     `4' - Paraboloidal coordinates x_n=(x*x-y*y)*cos(z)/2,
++     y_n=(x*x-y*y)*sin(z)/2, z_n=x*y; `5' - Oblate coordinates
++     x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z),
++     z_n=sinh(x)*sin(y); `6' - Prolate coordinates
++     x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z),
++     z_n=cosh(x)*cos(y); `7' - эллиптические координаты
++     x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z; `8' - тороидальные
++     координаты x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)),
++     y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y));
++     `9' - бисферические координаты x_n=sin(y)*cos(z)/(cosh(x)-cos(y)),
++     y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y));
++     `10' - биполярные координаты x_n=sinh(x)/(cosh(x)-cos(y)),
++     y_n=sin(y)/(cosh(x)-cos(y)), z_n=z.
++
++ -- Команда MGL: caxis `z1 z2'
++     Задает масштаб цветовой шкалы (c-координаты). Эти значения
++     используются для определения цвета поверхностей и прочих 2D и 3D
++     графиков. Начальный диапазон равен [-1, 1].
++
++ -- Команда MGL: origin `x0 y0 [z0=nan]'
++     Задает центр пересечения осей координат. Если одно из значений
++     равно `nan', то выбрается оптимальное положение осей координат по
++     этому направлению.
++
++ -- Команда MGL: ternary `val'
++     Задает рисование треугольных (Ternary) осей координат. Это
++     специальный тип графика для 3 зависимых координат (компонент) A,
++     B, C таких, что A+B+C=1. MathGL использует только 2 независимые
++     координаты A=x и B=y поскольку их достаточно для построения всех
++     графиков. При этом третья координата z является независимым
++     параметром для построения линий уровня, поверхностей и т.д. См.
++     раздел *note Ternary plot sample::, для примеров кода и графика.
++
++ -- Команда MGL: xrange dat [`add=off fact=0']
++ -- Команда MGL: yrange dat [`add=off fact=0']
++ -- Команда MGL: zrange dat [`add=off fact=0']
++ -- Команда MGL: crange dat [`add=off fact=0']
++     Задает диапазон изменения x-,y-,z-,c- координат как минимальное и
++     максимальное значение массива DAT. Параметр ADD указывает
++     добавлять новый диапазон к существующему или заменять его.
++     Параметр FACT дополнительно расширяет диапазон на величину
++     (MAX-MIN)*FACT.
++
++ -- Команда MGL: xrange `x1 x2'
++ -- Команда MGL: yrange `x1 x2'
++ -- Команда MGL: zrange `x1 x2'
++ -- Команда MGL: crange `x1 x2'
++     Задает диапазон изменения x-,y-,z-,c- координат. См. также *note
++     axis::.
++
++ -- Команда MGL: xtick `val [sub=0 org=nan]'
++ -- Команда MGL: ytick `val [sub=0 org=nan]'
++ -- Команда MGL: ztick `val [sub=0 org=nan]'
++ -- Команда MGL: ctick `val'
++     Задает шаг меток осей VAL, число подметок NS и начальное положение
++     меток ORG. Переменная VAL задает шаг меток (если положительна) или
++     их число на оси (если отрицательна). Нулевое значение задает
++     логарифмические метки. Если ORG=`NAN', то используется значение из
++     *note origin::.
++
++ -- Команда MGL: xtick 'templ'
++ -- Команда MGL: ytick 'templ'
++ -- Команда MGL: ztick 'templ'
++ -- Команда MGL: ctick 'templ'
++     Задает шаблоны для меток вдоль x-,y-,z-оси или colorbar. Шаблон
++     может содержать и символы TeX. Если XTT, YTT, ZTT, CTT=`''', то
++     используется шаблон по умолчанию (в простейшем случае `%.2g').
++     Установка шаблона выключает автоматическое улучшение вида меток.
++
++ -- Команда MGL: xtick `val1' 'lbl1' [`val2' 'lbl2' ...]
++ -- Команда MGL: ytick `val1' 'lbl1' [`val2' 'lbl2' ...]
++ -- Команда MGL: ztick `val1' 'lbl1' [`val2' 'lbl2' ...]
++     Задает явное положение VAL и подписи LBL для меток вдоль оси.
++     Метки могут содержать и символы TeX.
++
++ -- Команда MGL: adjust ['dir'='xyzc']
++     Автоматически задает шаг меток осей, число подметок и начальное
++     положение меток для осей координат DIR в виде наиболее удобном для
++     человека.
++
++
++File: mgl_ru.info,  Node: Transformation matrix,  Next: Export to file,  Prev: Axis settings,  Up: MGL interface
++
++1.4 Матрица преобразования
++===============================================
++
++Эти команды контролируют где и как график будет расположен. Существует
++определенный порядок вызова этих функций для лучшего вида графика.
++Вначале должны вызываться команды *note subplot:: или *note inplot::
++для указания местоположения вывода. После них - команды вращения *note
++rotate:: и сжатия *note aspect::. И наконец любые другие функции для
++рисования графика. Вместо вращения графика можно вызвать команды *note
++columnplot:: для расположения графиков в столбец одного над другим или
++*note stickplot:: для расположения в линейку.
++
++ -- Команда MGL: subplot `nx ny m [dx=0 dy=0]'
++     Помещает последующий вывод в M-ую ячейку сетки размером NX*NY от
++     всего рисунка. Функция сбрасывает матрицу трансформации (повороты
++     и сжатие графика) и должна вызываться первой для создания
++     "подграфика". С эстетической точки зрения не рекомендуется
++     вызывать эту функцию с различными (или не кратными) размерами
++     сетки. Ячейка может быть дополнительно сдвинута относительно
++     своего обычного положения на относительный размер DX, DY.
++
++ -- Команда MGL: subplot `nx ny m' 'style'
++     Аналогично предыдущему, но место для осей/colorbar резервируется
++     только если строка STYLE содержит: `L' или `<' - с левого края,
++     `R' или `>' - с правого края, `A' или `^' - с верхнего края, `U'
++     или `_' - с нижнего края.
++
++ -- Команда MGL: inplot `x1 x2 y1 y2 [rel=off]'
++     Помещает последующий вывод в прямоугольную область [X1, X2]*[Y1,
++     Y2] (исходный размер [0,1]*[0,1]). Эта функция позволяет поместить
++     график в произвольную область рисунка. Если параметр REL=`on', то
++     используется позиция относительно текщего *note subplot:: (или
++     *note inplot:: с REL=`off'). Функция сбрасывает матрицу
++     трансформации (повороты и сжатие графика) и должна вызываться
++     первой для создания "подграфика".
++
++ -- Команда MGL: columnplot `num ind [d=0]'
++     Помещает последующий вывод в IND-ую строку столбца из NUM строк.
++     Положение столбца выбирается относительно последнего вызова *note
++     subplot:: (или *note inplot:: с REL=`off'). Параметр D задает
++     дополнительный зазор между строк. См. раздел *note ColumnPlot
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: stickplot `num ind tet phi'
++     Помещает последующий вывод в IND-ую ячейку "бруска" из NUM ячеек.
++     При этом сам брусок повернут на углы TET, PHI. Положение
++     выбирается относительно последнего вызова *note subplot:: (или
++     *note inplot:: с REL=`off'). См. раздел *note StickPlot sample::,
++     для примеров кода и графика.
++
++ -- Команда MGL: rotate `tetz tetx [tety=0]'
++     Вращает систему координат относительно осей {x, z, y}
++     последовательно на углы TETX, TETZ, TETY.
++
++ -- Команда MGL: rotate `tet x y z'
++     Вращает систему координат относительно вектора {X, Y, Z} на угол
++     TET.
++
++ -- Команда MGL: aspect `ax ay [az=1]'
++     Устанавливает соотношение размеров осей в отношении AX:AY:AZ. Для
++     лучшего вида следует вызывать после функции *note rotate::.
++
++ -- Команда MGL: perspective `val'
++     Добавляет (включает) перспективу для графика. Параметр val ~
++     1/z_{eff} \in [0,1). По умолчанию (`val=0') перспектива отключена.
++
++
++File: mgl_ru.info,  Node: Export to file,  Next: Primitives drawing,  Prev: Transformation matrix,  Up: MGL interface
++
++1.5 Экспорт в файл
++==============================
++
++ -- Команда MGL: write 'fname' [`solid=off']
++     Экспортирует текущий кадр в файл 'fname' (тип определяется по
++     расширению). Параметр SOLID задает вывод картинки на текущем фоне
++     (обычно белом) или полупрозрачной. Если 'fname'=", то используется
++     имя `frame####.jpg', где `####' - текущий номер кадра.
++
++ -- Команда MGL: setsize `w h'
++     Изменяет размер картинки в пикселях. Функция должна вызываться
++     *перед* любыми функциями построения потому что полностью очищает
++     содержимое рисунка. В некоторых программах исполнение этой команды
++     может запрещено.
++
++
++File: mgl_ru.info,  Node: Primitives drawing,  Next: Text printing,  Prev: Export to file,  Up: MGL interface
++
++1.6 Рисование примитивов
++===========================================
++
++Эти команды рисуют рисуют простые объекты типа линий, точек, сфер,
++капель, конусов, и т.д.
++
++ -- Команда MGL: clf
++     Очищает рисунок и заполняет его цветом по умолчанию (обычно белым).
++
++ -- Команда MGL: ball `x y' ['col'='r']
++ -- Команда MGL: ball `x y z' ['col'='r']
++     Рисует точку (шарик) с координатами {X, Y, Z} и цветом COL.
++
++ -- Команда MGL: line `x1 y1 x2 y2' ['stl'="]
++ -- Команда MGL: line `x1 y1 z1 x2 y2 z2' ['stl'="]
++     Рисует геодезическую линию (декартовых координатах - прямую) из
++     точки {X1,Y1,Z1} в {X2,Y2,Z2} использую стиль линии STL. Кривая
++     рисуется даже если часть ее лежит вне диапазона осей координат.
++
++ -- Команда MGL: curve `x1 y1 dx1 dy1 x2 y2 dx2 dy2' ['stl'="]
++ -- Команда MGL: curve `x1 y1 z1 dx1 dy1 dz1 x2 y2 z2 dx2 dy2 dz2'
++          ['stl'="]
++     Рисует кривую Безье из точки {X1,Y1,Z1} в {X2,Y2,Z2} использую
++     стиль линии STL. Касательные в точках пропорциональны
++     {DX1,DY1,DZ1}, {DX2,DY2,DZ2}. Кривая рисуется даже если часть ее
++     лежит вне диапазона осей координат.
++
++ -- Команда MGL: facex `x0 y0 z0 wy wz' ['stl'=" `d1=0 d2=0']
++ -- Команда MGL: facey `x0 y0 z0 wx wz' ['stl'=" `d1=0 d2=0']
++ -- Команда MGL: facez `x0 y0 z0 wx wy' ['stl'=" `d1=0 d2=0']
++     Рисует закрашенный прямоугольник (грань) перпендикулярно оси
++     [x,y,z] в точке {X0, Y0, Z0} цветом STL и шириной WX, WY, WZ вдоль
++     соответствующего направления. При этом цвет может быть один для
++     всей грани, или различным для разных вершин если указаны все 4
++     цвета (полезно для градиента цвета, например `wwrr'). Параметры
++     D1!=0, D2!=0 задают дополнительный сдвиг последней точки (т.е.
++     рисуют четырехугольник). Грань будет нарисована даже если часть ее
++     лежит вне диапазона осей координат.
++
++ -- Команда MGL: sphere `x0 y0 r' ['col'='r']
++ -- Команда MGL: sphere `x0 y0 z0 r' ['col'='r']
++     Рисует сферу радиуса R с центром в точке {X, Y, Z} цветом STL.
++
++ -- Команда MGL: drop `x0 y0 dx dy r' ['col'='b' `sh=1 asp=1']
++ -- Команда MGL: drop `x0 y0 z0 dx dy dz r' ['col'='b' `sh=1 asp=1']
++     Рисует каплю радиуса R в точке {X0,Y0,Z0} вытянутую вдоль
++     направления {DX,DY,DZ} цветом COL. Параметр SH определяет степень
++     вытянутости: `0' - сфера, `1' - классическая капля. Параметр ASP
++     определяет относительную ширину капли (аналог "эллиптичности" для
++     сферы). См. раздел *note Drops sample::, для примеров кода и
++     графика.
++
++ -- Команда MGL: cone `x1 y1 z1 x2 y2 z2 r1' [`r2=-1' 'stl'="
++          `edge=off']
++     Рисует трубу (или усеченный конус если EDGE=`off') между точками
++     {X1,Y1,Z1}, {X2,Y2,Z2} с радиусами на концах R1, R2. Если R2<0, то
++     полагается R2=R1. Цвет конуса задается строкой STL.
++
++ -- Команда MGL: rect `x1 y1 x2 y2' ['st'="]
++ -- Команда MGL: rect `x1 y1 z1 x2 y2 z2' ['st'="]
++     Рисует закрашенный прямоугольник (грань) с противоположными
++     вершинами в точках {X1,Y1,Z1}, {X2,Y2,Z2} цветом STL. При этом
++     цвет может быть один для всей грани, или различным для разных
++     вершин если указаны все 4 цвета (полезно для градиента цвета,
++     например `wwrr'). Грань будет нарисована даже если часть ее лежит
++     вне диапазона осей координат.
++
++
++File: mgl_ru.info,  Node: Text printing,  Next: Axis and Colorbar,  Prev: Primitives drawing,  Up: MGL interface
++
++1.7 Вывод текста
++===========================
++
++Команды для вывода текста позволяют вывести строку текста в
++произвольном месте рисунка, в произвольном направлении и вдоль
++произвольной кривой. Можно использовать произвольное начертание шрифта
++и многие ТеХ-ие команды (детальнее *note Font styles::). Аргумент SIZE
++определяет размер текста: размер шрифта если положителен или
++относительный размер (=-SIZE*FONTSIZE) если отрицателен.
++
++   Параметры шрифта задаются строкой, которая может содержать символы
++стиля (`rbiwou') и/или выравнивания (`LRC'). Также строка может
++содержать символы цвета `wkrgbcymhRGBCYMHW' (*note Line styles::) после
++символа `:'. Стили шрифта: `r' - прямой, `i' - курсив, `b' - жирный,
++`w' - контурный, `o' - надчеркнутый, `u' - подчеркнутый. По умолчанию
++используется прямой шрифт. Типы выравнивания: `L' - по левому краю (по
++умолчанию), `C' - по центру, `R' - по правому краю. Например, строка
++`iC:b' соответствует курсиву синего цвета с выравниванием по центру. По
++умолчанию используются параметры, определенные командой *note font::.
++
++   Если строка содержит символы `aA', то текст выводится в абсолютных
++координатах (полагаются в диапазоне [0,1]). При этом используются
++координаты относительно рисунка (если указано `A') или относительно
++последнего *note subplot::/*note inplot:: (если указано `a').
++
++ -- Команда MGL: text `x y' 'text' ['fnt'=" `size=-1.4']
++ -- Команда MGL: text `x y z' 'text' ['fnt'=" `size=-1.4']
++     Выводит строку TEXT от точки {X,Y,Z} шрифтом FNT и размером SIZE.
++
++ -- Команда MGL: text `x y dx dy' 'text' [`size=-1.4']
++ -- Команда MGL: text `x y z dx dy dz' 'text' [`size=-1.4']
++     Выводит строку TEXT от точки {X,Y,Z} вдоль направления {DX,DY,DZ}
++     шрифтом FNT и размером SIZE.
++
++ -- Команда MGL: text ydat 'text' ['fnt'=" `size=-1 zval=nan']
++ -- Команда MGL: text xdat ydat 'text' ['fnt'=" `size=-1 zval=nan']
++ -- Команда MGL: text xdat ydat zdat 'text' ['fnt'=" `size=-1']
++     Выводит строку TEXT вдоль кривой {XDAT[i], YDAT[i], ZDAT[i]}
++     шрифтом FONT. Строка FONT может содержать символы: `t' для вывода
++     текста под кривой (по умолчанию), или `T' для вывода текста над
++     кривой. Если массив XDAT не указан, то используется массив со
++     значениями равно распределенными вдоль оси x. Если массив ZDAT не
++     указан, то используется ZDAT[i] = ZVAL. См. раздел *note Text
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: title 'text' ['fnt'=" `size=-2']
++     Выводит строку TEXT как заголовок (сверху рисунка). Может
++     использоваться в любом месте (даже внутри *note subplot::).
++
++ -- Команда MGL: fgets `x y' 'fname' [`n=0' 'fnt'=" `size=-1.4']
++ -- Команда MGL: fgets `x y z' 'fname' [`n=0' 'fnt'=" `size=-1.4']
++     Выводит N-ую строку файла FNAME от точки {X,Y,Z} шрифтом FNT и
++     размером SIZE.
++
++
++File: mgl_ru.info,  Node: Axis and Colorbar,  Next: Legend,  Prev: Text printing,  Up: MGL interface
++
++1.8 Оси и Colorbar
++======================
++
++Эти команды рисуют объекты для "измерения" типа осей координат,
++цветовой таблицы (colorbar), сетку по осям, обрамляющий параллелепипед
++и подписи по осям координат. См. также *note Axis settings::.
++
++ -- Команда MGL: axis ['dir'='xyz' `adjust=off']
++     Рисует оси координат и метки на них (*note Axis settings::) в
++     направлениях, указанных строкой DIR. Если строка содержит символ
++     `_', то подписи меток отображаться не будут. Шрифт подписей
++     определяется командой *note font::. Метки будут "подогнаны" если
++     ADJUST=`on' (с помощью вызова `adjust 'dir'').
++
++ -- Команда MGL: colorbar ['sch'=" `pos=0']
++     Рисует полосу соответствия цвета и числовых значений (colorbar)
++     для цветовой схемы SCH (используется текущая для `sch=''') с краю
++     от графика. Параметр POS задает местоположение: `0' - справа (по
++     умолчанию), `1' - слева, `2' - сверху, `3' - снизу. Если строка
++     SCH содержит `<>^_', то параметр POS определяется как: `pos=0' для
++     `>' (справа), `pos=1' для `<' (слева), `pos=2' для `^' (сверху),
++     `pos=3' для `_' (снизу). Если строка содержит `A', то используются
++     абсолютные координаты (относительно рисунка). См. раздел *note
++     Dens sample::, для примеров кода и графика.
++
++ -- Команда MGL: colorbar vdat ['sch'=" `pos=0']
++     Аналогично предыдущему, но для цветовой схемы без сглаживания с
++     заданными значениями VDAT. См. раздел *note ContD sample::, для
++     примеров кода и графика.
++
++ -- Команда MGL: colorbar 'sch' `pos x y w h'
++     Аналогично первому, но в произвольном месте графика {X, Y}
++     (полагаются в диапазоне [0,1]). Параметры W, H задают
++     относительную ширину и высоту colorbar.
++
++ -- Команда MGL: grid ['dir'='xyz' 'pen'='B']
++     Рисует линии сетки в направлениях перпендикулярным DIR. Шаг сетки
++     такой же как у меток осей координат. Стиль линий задается
++     параметром PEN (по умолчанию - сплошная темно синяя линия `B-').
++
++ -- Команда MGL: box ['stl'='k' `ticks=on']
++     Рисует ограничивающий параллелепипед цветом 'stl'. При `ticks=on'
++     рисуются метки в соответствии с текущими настройками осей
++     координат *note axis::.
++
++ -- Команда MGL: xlabel 'text' [`pos=0 size=-1.4 shift=0']
++ -- Команда MGL: ylabel 'text' [`pos=0 size=-1.4 shift=0']
++ -- Команда MGL: zlabel 'text' [`pos=0 size=-1.4 shift=0']
++ -- Команда MGL: tlabel 'text' [`pos=0 size=-1.4 shift=0']
++     Выводит подпись TEXT для x-,y-,z-,t-оси (где `t' - "тернарная" ось
++     t=1-x-y). Параметр POS задает положение подписи: при POS=0 - по
++     центру оси, при POS>0 - около максимальных значений, при POS<0 -
++     около минимальных значений. Параметр SIZE задает размер шрифта (по
++     умолчанию в 1.4 раза больше чем у меток). *Note Text printing::.
++
++
++File: mgl_ru.info,  Node: Legend,  Next: 1D plotting,  Prev: Axis and Colorbar,  Up: MGL interface
++
++1.9 Легенда
++==================
++
++Эти команды обеспечивают рисование легенды графика (полезно для *note
++1D plotting::). Запись в легенде состоит из двух строк: одна для стиля
++линии и маркеров, другая с текстом описания (с включенным разбором
++TeX-их команд), накапливаемые во внутренние массивы с помощью команды
++*note addlegend:: или опции *note legend::. Положение легенды можно
++задать автоматически или вручную. Параметры FONT и SIZE задают стиль и
++размер шрифта. Параметр LLEN задает относительную ширину примера линии.
++Ели стиль линии пустой, то соответствующий текст печатается без
++отступа. Если строка FONT содержит символ `A', то координаты легенды
++считаются относительно картинки (а не текущего subplot). См. раздел
++*note Legend sample::, для примеров кода и графика.
++
++ -- Команда MGL: legend [`pos=3' 'fnt'='rL' `size=-1 llen=0.1']
++     Рисует легенду из накопленных записей шрифтом FNT размером SIZE.
++     Параметр POS задает положение легенды: `0' - в нижнем левом углу,
++     `1' - нижнем правом углу, `2' - верхнем левом углу, `3' - верхнем
++     правом углу (по умолчанию).
++
++ -- Команда MGL: legend `x y' ['fnt'='rL' `size=-1 llen=0.1']
++     Рисует легенду из накопленных записей шрифтом FONT размером SIZE.
++     Положение легенды задается параметрами X, Y, которые полагаются
++     нормированными в диапазоне [0,1].
++
++ -- Команда MGL: addlegend 'text' 'stl'
++     Добавляет описание TEXT кривой со стилем STL (*note Line styles::)
++     во внутренний массив записей легенды. Максимальное число записей
++     100.
++
++ -- Команда MGL: clearlegend
++     Очищает внутренний массив записей легенды.
++
++ -- Команда MGL: legendbox `val'
++     Включает/выключает рисование прямоугольника вокруг легенды. По
++     умолчанию (=`on') прямоугольник рисуется.
++
++ -- Команда MGL: legendmarks `val'
++     Задает число маркеров в легенде. По умолчанию используется 1
++     маркер.
++
++
++File: mgl_ru.info,  Node: 1D plotting,  Next: 2D plotting,  Prev: Legend,  Up: MGL interface
++
++1.10 1D графики
++======================
++
++Эти команды строят графики для одномерных (1D) массивов. Одномерными
++считаются массивы, зависящие только от одного параметра (индекса)
++подобно кривой в параметрической форме {x(i),y(i),z(i)}, i=1...n. Есть
++5 основных типов 1D графиков: линия (*note plot::), линия с заполнением
++(*note area::), ступеньки (*note step::), прямоугольники (*note bars::,
++*note barh::) и вертикальные линии (*note stem::). Все эти типы
++графиков имеют похожий интерфейс. Есть версии для рисования в
++пространстве и на плоскости. В последнем случае имеется возможность
++использования только одного массива. Стиль линии и маркеров указывается
++строковой переменной. Если она равна `'''. Кроме того, есть еще
++несколько типов графиков для одномерных массивов, имеющих другой
++интерфейс и вид: поверхность вращения кривой (*note torus::), диаграмма
++(*note chart::), размер ошибки (*note error::), маркеры переменного
++размера (*note mark::), трубками (*note tube::) и т.д. См. раздел *note
++1D plot sample::, для примеров кода и графика.
++
++   График рисуется для каждой строки если один из массивов матрица.
++Размер по 1-ой координате *должен быть одинаков* для всех массивов
++`xdat.nx=ydat.nx=zdat.nx'. Если массив XDAT не указан, то используется
++массив со значениями равно распределенными вдоль оси x. Если массив
++ZDAT не указан, то используется ZDAT[i] = ZVAL. Строка STL задает цвет
++и стиль линии и маркеров (*note Line styles::). По умолчанию (`stl=''')
++рисуется сплошная линия с текущим цветом из палитры.
++
++ -- Команда MGL: plot ydat ['stl'=" `zval=nan']
++ -- Команда MGL: plot xdat ydat ['stl'=" `zval=nan']
++ -- Команда MGL: plot xdat ydat zdat ['stl'="]
++     Рисует ломанную линию между точками {X[i], Y[i], Z[i]}. См. также
++     *note area::, *note step::, *note stem::, *note tube::, *note
++     mark::, *note error::, *note belt::, *note tens::. См. раздел
++     *note Plot sample::, для примеров кода и графика.
++
++ -- Команда MGL: radar adat ['stl'=" `r=-1']
++     Рисует radar chart, представляющий собой ломанную с вершинами на
++     радиальных линиях (типа ломанной в полярных координатах). График
++     рисуется для каждой строки если один из массивов матрица. Параметр
++     R задает дополнительный сдвиг данных (т.е. используется A+R вместо
++     A). Если `r<0', то `r=max(0, -min(a)'. Если STL содержит символ
++     `#', то также рисуется "сетка" (радиальные линии и круг для R).
++     См. также *note plot::. См. раздел *note Radar sample::, для
++     примеров кода и графика.
++
++ -- Команда MGL: tens ydat cdat ['stl'=" `zval=nan']
++ -- Команда MGL: tens xdat ydat cdat ['stl'=" `zval=nan']
++ -- Команда MGL: tens xdat ydat zdat cdat ['stl'="]
++     Рисует ломанную линию по точкам {X[i], Y[i], Z[i]} с цветом,
++     определяемым массивом C[i] (типа графика натяжений). См. также
++     *note plot::, *note mesh::, *note fall::. См. раздел *note Tens
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: area ydat ['stl'=" `zval=nan']
++ -- Команда MGL: area xdat ydat ['stl'=" `zval=nan']
++ -- Команда MGL: area xdat ydat zdat ['stl'="]
++     Рисует ломанную линию по точками {XDAT[i], YDAT[i], ZDAT[i]} и
++     закрашивает ее вниз до плоскости осей координат. Можно
++     использовать градиентное закрашивание если число указанных цветов
++     в STL равно удвоенному числу кривых для построения. Если строка
++     содержит символ `a', то линии рисуются одна поверх другой (с
++     суммированием) - того же эффекта можно достичь вызовом `cumsum
++     ydat 'y'' перед построением графика. См. также *note plot::, *note
++     bars::, *note stem::, *note region::. См. раздел *note Area
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: region fdat gdat ['stl'=" `inside=off']
++ -- Команда MGL: region xdat fdat gdat ['stl'=" `inside=off']
++     Закрашивает область между 2 кривыми {XDAT[i], FDAT[i]} и {XDAT[i],
++     GDAT[i]}. При  `inside=off' закрашивается только область y1<y<y2,
++     в противном случае также будет закращена область y2<y<y1. Можно
++     использовать градиентное закрашивание если число указанных цветов
++     STL равно удвоенному числу кривых для построения. См. также *note
++     area::, *note bars::, *note stem::. См. раздел *note Region
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: stem ydat ['stl'=" `zval=nan']
++ -- Команда MGL: stem xdat ydat ['stl'=" `zval=nan']
++ -- Команда MGL: stem xdat ydat zdat ['stl'="]
++     Рисует вертикальные линии из точек {XDAT[i], YDAT[i], ZDAT[i]} до
++     плоскости осей координат. См. также *note area::, *note bars::,
++     *note plot::, *note mark::. См. раздел *note Stem sample::, для
++     примеров кода и графика.
++
++ -- Команда MGL: bars ydat ['stl'=" `zval=nan']
++ -- Команда MGL: bars xdat ydat ['stl'=" `zval=nan']
++ -- Команда MGL: bars xdat ydat zdat ['stl'="]
++     Рисует вертикальные полосы (прямоугольники) из точек {XDAT[i],
++     YDAT[i], ZDAT[i]} до плоскости осей координат. Если строка STL
++     содержит символ `a', то линии рисуются одна поверх другой. Если
++     строка содержит символ `f', то рисуется график типа waterfall для
++     определения кумулятивного эффекта последовательности положительных
++     и отрицательных значений. Можно использовать разные цвета для
++     положительных и отрицательных значений если число указанных цветов
++     равно удвоенному числу кривых для построения. См. также *note
++     barh::, *note area::, *note stem::, *note chart::. См. раздел
++     *note Bars sample::, для примеров кода и графика.
++
++ -- Команда MGL: barh xdat ['stl'=" `zval=nan']
++ -- Команда MGL: barh ydat xdat ['stl'=" `zval=nan']
++     Рисует горизонтальные полосы (прямоугольники) из точек {XDAT[i],
++     YDAT[i]} до плоскости оси y. Если массив YDAT не указан, то
++     используется массив со значениями равно распределенными вдоль оси
++     y. Если строка STL содержит символ `a', то линии рисуются одна
++     поверх другой. Если строка содержит символ `f', то рисуется график
++     типа waterfall для определения кумулятивного эффекта
++     последовательности положительных и отрицательных значений. Можно
++     использовать разные цвета для положительных и отрицательных
++     значений если число указанных цветов равно удвоенному числу кривых
++     для построения. См. также *note bars::. См. раздел *note Barh
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: chart adat ['col'="]
++     Рисует цветные полосы (пояса) для массива данных ADAT. Число полос
++     равно числу строк ADAT (равно A.NY). Цвет полос поочередно
++     меняется из цветов указанных в COL или в палитре (если `col=''').
++     Пробел в цветах соответствует прозрачному "цвету", т.е.
++     соответствующая полоса не рисуется. Ширина полосы пропорциональна
++     значению элемента в ADAT. График строится только для массивов не
++     содержащих отрицательных значений. Если строка COL содержит `#',
++     то рисуется также черная граница полос. График выглядит лучше в 3d
++     (после вращения системы координат) и/или в полярной системе
++     координат (становится Pie chart). См. раздел *note Chart sample::,
++     для примеров кода и графика.
++
++ -- Команда MGL: step ydat ['stl'=" `zval=nan']
++ -- Команда MGL: step xdat ydat ['stl'=" `zval=nan']
++ -- Команда MGL: step xdat ydat zdat ['stl'="]
++     Рисует ступеньки для точек массива {XDAT[i], YDAT[i], ZDAT[i]}.
++     См. также *note plot::, *note stem::, *note tile::, *note boxs::.
++     См. раздел *note Step sample::, для примеров кода и графика.
++
++ -- Команда MGL: torus zdat ['stl'="]
++ -- Команда MGL: torus rdat zdat ['stl'="]
++     Рисует поверхность вращения кривой {RDAT[i], ZDAT[i], ZDAT[i]}
++     относительно оси *note axialdir::. Если массив RDAT не указан, то
++     используется массив со значениями равно распределенными вдоль оси
++     x. См. также *note plot::, *note axial::. См. раздел *note Torus
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: tube ydat rdat ['stl'=" `zval=nan']
++ -- Команда MGL: tube ydat `rval' ['stl'=" `zval=nan']
++ -- Команда MGL: tube xdat ydat rdat ['stl'=" `zval=nan']
++ -- Команда MGL: tube xdat ydat `rval' ['stl'=" `zval=nan']
++ -- Команда MGL: tube xdat ydat zdat rdat ['stl'="]
++ -- Команда MGL: tube xdat ydat zdat `rval' ['stl'="]
++     Рисует трубу радиуса RDAT[i] (or RVAL) вдоль кривой между точками
++     {XDAT[i], YDAT[i], ZDAT[i]}. См. также *note plot::. См. раздел
++     *note Tube sample::, для примеров кода и графика.
++
++ -- Команда MGL: mark ydat rdat ['stl'=" `zval=nan']
++ -- Команда MGL: mark xdat ydat rdat ['stl'=" `zval=nan']
++ -- Команда MGL: mark xdat ydat zdat rdat ['stl'="]
++     Рисует маркеры размером RDAT[i]*`marksize' в точках {XDAT[i],
++     YDAT[i], ZDAT[i]}. Для рисования маркеров одинакового размера
++     можно использовать функцию `plot' с невидимой линией (со стилем
++     содержащим ` '). См. также *note plot::, *note textmark::, *note
++     stem::, *note error::. См. раздел *note Mark sample::, для
++     примеров кода и графика.
++
++ -- Команда MGL: textmark ydat 'txt' ['stl'=" `zval=nan']
++ -- Команда MGL: textmark ydat rdat 'txt' ['stl'=" `zval=nan']
++ -- Команда MGL: textmark xdat ydat rdat 'txt' ['stl'=" `zval=nan']
++ -- Команда MGL: textmark xdat ydat zdat rdat 'txt' ['stl'="]
++     Рисует текст TXT как маркер с размером пропорциональным
++     RDAT[i]*`marksize' в точках {XDAT[i], YDAT[i], ZDAT[i]}. Если
++     массив RDAT не указан, то полагается RDAT[i] = 1. См. также *note
++     plot::, *note mark::, *note stem::. См. раздел *note TextMark
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: error ydat yerr ['stl'=" `zval=nan']
++ -- Команда MGL: error xdat ydat yerr ['stl'=" `zval=nan']
++ -- Команда MGL: error xdat ydat xerr yerr ['stl'=" `zval=nan']
++     Рисует размер ошибки {XERR[i], YERR[i]} в точках {XDAT[i],
++     YDAT[i]} на плоскости Z = ZVAL. Такой график полезен для
++     отображения ошибки эксперимента, вычислений и пр. См. также *note
++     plot::. См. раздел *note Error sample::, для примеров кода и
++     графика.
++
++ -- Команда MGL: boxplot adat ['stl'=" `zval=nan']
++ -- Команда MGL: boxplot xdat adat ['stl'=" `zval=nan']
++     Рисует boxplot (называемый также как box-and-whisker diagram или
++     как "ящик с усами") в точках XDAT[i] на плоскости Z = ZVAL. Это
++     график, компактно изображающий распределение вероятностей
++     ADAT[i,j] (минимум, нижний квартиль (Q1), медиана (Q2), верхний
++     квартиль (Q3) и максимум) вдоль второго (j-го) направления. См.
++     также *note plot::, *note error::, *note bars::. См. раздел *note
++     BoxPlot sample::, для примеров кода и графика.
++
++
++File: mgl_ru.info,  Node: 2D plotting,  Next: 3D plotting,  Prev: 1D plotting,  Up: MGL interface
++
++1.11 2D графики
++======================
++
++Эти команды строят графики для двумерных (2D) массивов. Двумерными
++считаются массивы, зависящие только от двух параметров (индексов)
++подобно матрице f(x_i,y_j), i=1...n, j=1...m. Есть несколько основных
++типов 2D графиков: сплошная поверхность (*note surf::), сетчатая
++поверхность (*note mesh::), поверхность из ящиков (*note boxs::),
++поверхность из плиток (*note tile::), водопад (*note fall::), ленточки
++(*note belt::), график плотности (*note dens::), линии уровня (*note
++cont::), линии уровня с заполнением (*note contf::) и результат их
++вращения (*note axial::). В функциях *note cont::, *note contf:: и
++*note axial:: значения уровней можно задавать автоматически и вручную.
++Можно также нарисовать сетку (*note grid::) по массиву данных для
++улучшения вида графика плотности или линий уровня. Каждый тип графика
++имеет похожий интерфейс. Есть версия для рисования одного массива с
++автоматическими координатами и версия для параметрически заданной
++поверхности. См. раздел *note 1D plot sample::, для примеров кода и
++графика.
++
++   Строка SCH задает цветовую схему (*note Color scheme::. Предыдущая
++цветовая схема используется по умолчанию. Младшие размерности массивов
++XDAT, YDAT, ZDAT должны быть одинаковы `xdat.nx=zdat.nx &&
++ydat.nx=zdat.ny' или `xdat.nx=ydat.nx=zdat.nx &&
++xdat.ny=ydat.ny=zdat.ny'. Массивы XDAT и YDAT могут быть векторами (не
++матрицами как ZDAT). Если массивы XDAT, YDAT не указаны, то
++используются массивы со значениями равно распределенными вдоль осей x,
++y. График строится для каждого z среза данных.
++
++ -- Команда MGL: surf zdat ['sch'="]
++ -- Команда MGL: surf xdat ydat zdat ['sch'="]
++     Рисует параметрически заданную поверхность {XDAT[i,j], YDAT[i,j],
++     ZDAT[i,j]}. Если SCH содержит `#', то на поверхности рисуется
++     сетка. См. также *note mesh::, *note dens::, *note belt::, *note
++     tile::, *note boxs::, *note surfc::, *note surfa::. См. раздел
++     *note Surf sample::, для примеров кода и графика.
++
++ -- Команда MGL: mesh zdat ['sch'="]
++ -- Команда MGL: mesh xdat ydat zdat ['sch'="]
++     Рисует сетчатую поверхность, заданную параметрически {XDAT[i,j],
++     YDAT[i,j], ZDAT[i,j]}. См. также *note surf::, *note fall::, *note
++     meshnum::, *note cont::, *note tens::. См. раздел *note Mesh
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: fall zdat ['sch'="]
++ -- Команда MGL: fall xdat ydat zdat ['sch'="]
++     Рисует водопад для параметрически заданной поверхности {XDAT[i,j],
++     YDAT[i,j], ZDAT[i,j]}. График удобен для построения нескольких
++     кривых, сдвинутых вглубь друг относительно друга. Если SCH
++     содержит `x', то линии рисуются вдоль x-оси (по умолчанию линии
++     рисуются вдоль y-оси). См. также *note belt::, *note mesh::, *note
++     tens::, *note meshnum::. См. раздел *note Fall sample::, для
++     примеров кода и графика.
++
++ -- Команда MGL: belt zdat ['sch'="]
++ -- Команда MGL: belt xdat ydat zdat ['sch'="]
++     Рисует ленточки для параметрически заданной поверхности
++     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. Если SCH содержит `x', то линии
++     рисуются вдоль x-оси (по умолчанию линии рисуются вдоль y-оси).
++     См. также *note fall::, *note surf::, *note plot::, *note
++     meshnum::. См. раздел *note Belt sample::, для примеров кода и
++     графика.
++
++ -- Команда MGL: boxs zdat ['sch'="]
++ -- Команда MGL: boxs xdat ydat zdat ['sch'="]
++     Рисует вертикальные ящики для параметрически заданной поверхности
++     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. См. также *note surf::, *note
++     dens::, *note tile::, *note step::. См. раздел *note Boxs
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: tile zdat ['sch'="]
++ -- Команда MGL: tile xdat ydat zdat ['sch'="]
++     Рисует плитки для параметрически заданной поверхности {XDAT[i,j],
++     YDAT[i,j], ZDAT[i,j]}. График может использоваться как 3d
++     обобщение *note step::. См. также *note surf::, *note boxs::,
++     *note step::, *note tiles::. См. раздел *note Tile sample::, для
++     примеров кода и графика.
++
++ -- Команда MGL: dens zdat ['sch'=" `zval=nan']
++ -- Команда MGL: dens xdat ydat zdat ['sch'=" `zval=nan']
++     Рисует график плотности для параметрически заданной поверхности
++     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z = ZVAL. Если SCH содержит
++     `#', то рисуется сетка. См. также *note surf::, *note cont::,
++     *note contf::, *note boxs::, *note tile::, `dens[xyz]'. См. раздел
++     *note Dens sample::, для примеров кода и графика.
++
++ -- Команда MGL: cont vdat zdat ['sch'=" `zval=nan']
++ -- Команда MGL: cont vdat xdat ydat zdat ['sch'=" `zval=nan']
++     Рисует линии уровня для параметрически заданной поверхности
++     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z = ZVAL (или при Z=VDAT[k]
++     если `zval==nan'). Линии уровня рисуются для Z=VDAT[k]. Если SCH
++     содержит `#', то рисуется сетка. Если SCH содержит `t' или `T', то
++     значения VDAT[k] будут выведены вдоль контуров над (или под)
++     кривой. См. также *note dens::, *note contf::, *note contd::,
++     *note axial::, `cont[xyz]'. См. раздел *note Cont sample::, для
++     примеров кода и графика.
++
++ -- Команда MGL: cont zdat ['sch'=" `num=7 zval=nan']
++ -- Команда MGL: cont xdat ydat zdat ['sch'=" `num=7 zval=nan']
++     Как предыдущий с вектором V из NUM элементов равно распределенных
++     в интервале цветовой шкалы (см., *note caxis::).
++
++ -- Команда MGL: contf vdat zdat ['sch'=" `zval=nan']
++ -- Команда MGL: contf vdat xdat ydat zdat ['sch'=" `zval=nan']
++     Рисует закрашенные линии (контуры) уровня для параметрически
++     заданной поверхности {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z =
++     ZVAL (или при Z=V[k] если `zval=nan'). Линии уровня рисуются для
++     Z=VDAT[k]. Если SCH содержит `#', то рисуется сетка. См. также
++     *note dens::, *note cont::, *note contd::, `contf[xyz]'. См.
++     раздел *note ContF sample::, для примеров кода и графика.
++
++ -- Команда MGL: contf zdat ['sch'=" `num=7 zval=nan']
++ -- Команда MGL: contf xdat ydat zdat ['sch'=" `num=7 zval=nan']
++     Как предыдущий с вектором V из NUM элементов равно распределенных
++     в интервале цветовой шкалы (см., *note caxis::).
++
++ -- Команда MGL: contd vdat zdat ['sch'=" `zval=nan']
++ -- Команда MGL: contd vdat xdat ydat zdat ['sch'=" `zval=nan']
++     Рисует закрашенные линии (контуры) уровня для параметрически
++     заданной поверхности {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z =
++     ZVAL (или при Z=V[k] если `zval==nan') цветами заданными явно.
++     Линии уровня рисуются для Z=VDAT[k]. Строка SCH задает цвет
++     контуров: цвет k-го контура определяется символом
++     `sch[k%strlen(sch)]'. См. также *note dens::, *note cont::, *note
++     contf::, `cont[xyz]'. См. раздел *note ContD sample::, для
++     примеров кода и графика.
++
++ -- Команда MGL: contd zdat ['sch'=" `num=7 zval=nan']
++ -- Команда MGL: contd xdat ydat zdat ['sch'=" `num=7 zval=nan']
++     Как предыдущий с вектором V из NUM элементов равно распределенных
++     в интервале цветовой шкалы (см., *note caxis::).
++
++ -- Команда MGL: axial vdat zdat ['sch'="]
++ -- Команда MGL: axial vdat xdat ydat zdat ['sch'="]
++     Рисует поверхность вращения линии уровня для параметрически
++     заданной поверхности {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. Линии
++     уровня рисуются для ZDAT[i,j]=VDAT[k]. Если SCH содержит `#', то
++     рисуется сетчатая поверхность. Если строка содержит символы `x',
++     `y' или `z', то ось вращения устанавливается в указанное
++     направление (по умолчанию вдоль оси *note axialdir::). См. также
++     *note cont::, *note contf::, *note torus::, *note surf3::. См.
++     раздел *note Axial sample::, для примеров кода и графика.
++
++ -- Команда MGL: axial zdat ['sch'=" `num=3']
++ -- Команда MGL: axial xdat ydat zdat ['sch'=" `num=3']
++     Как предыдущий с вектором V из NUM элементов равно распределенных
++     в интервале цветовой шкалы (см., *note caxis::).
++
++ -- Команда MGL: grad pdat ['sch'=" `num=5 zval=nan']
++ -- Команда MGL: grad xdat ydat pdat ['sch'=" `num=5 zval=nan']
++ -- Команда MGL: grad xdat ydat zdat pdat ['sch'=" `num=5']
++     Рисует линии градиента скалярного поля PDAT заданного
++     параметрически {XDAT[i,j], YDAT[i,j]} или {XDAT[i,j,k],
++     YDAT[i,j,k], ZDAT[i,j,k]}. Число линий пропорционально NUM. Линии
++     рисуются только с границ интервала при NUM<0. См. также *note
++     dens::, *note cont::, *note dens3::, *note cont3::, *note flow::.
++     См. раздел *note Grad sample::, для примеров кода и графика.
++
++ -- Команда MGL: grid2 zdat ['sch'=" `zval=nan']
++ -- Команда MGL: grid2 xdat ydat zdat ['sch'=" `zval=nan']
++     Рисует плоскую сету для параметрически заданной поверхности
++     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z = ZVAL. См. также *note
++     dens::, *note cont::, *note contf::.
++
++
++File: mgl_ru.info,  Node: 3D plotting,  Next: Dual plotting,  Prev: 2D plotting,  Up: MGL interface
++
++1.12 3D графики
++======================
++
++Эти функции строят графики для трехмерных (3D) массивов. Трехмерными
++считаются массивы, зависящие от трех параметров (индексов) подобно
++матрице f(x_i,y_j,z_k), i=1...n, j=1...m, k=1...l. Есть 5 основных
++типов 3D графиков: поверхность постоянного уровня (*note surf3::),
++график плотности на срезе (DENS3), линии уровня на срезе (*note
++cont3::), закрашенные контуры уровня на срезе (*note contf3::) и график
++объемной прозрачности типа облака (*note cloud::). В функциях *note
++cont3::, *note contf3:: и *note surf3:: значения уровней можно задавать
++автоматически и вручную. Можно также нарисовать на срезе сетку (*note
++grid3::) по массиву данных для улучшения вида графика плотности или
++линий уровня. Каждый тип графика имеет похожий интерфейс. Есть версия
++для рисования одного массива с автоматическими координатами и версия
++для параметрически заданного массива. См. раздел *note 3D plot
++sample::, для примеров кода и графика.
++
++   Строка SCH задает цветовую схему (*note Color scheme::). Предыдущая
++цветовая схема используется по умолчанию. Массивы X, Y, Z могут быть
++векторами (не 3d массивами как A). Если массивы XDAT, YDAT, ZDAT не
++указаны, то используются массивы со значениями равно распределенными
++вдоль осей x, y, z.
++
++ -- Команда MGL: surf3 adat `val' ['sch'="]
++ -- Команда MGL: surf3 xdat ydat zdat adat `val' ['sch'="]
++     Рисует поверхность уровня для 3d массива, заданного параметрически
++     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) при
++     ADAT(x,y,z)=VAL. Если SCH содержит `#', то рисуется сетчатая
++     поверхность. См. также *note cloud::, *note dens3::, *note
++     surf3c::, *note surf3a::, *note axial::. См. раздел *note Surf3
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: surf3 adat ['sch'=" `num=5']
++ -- Команда MGL: surf3 xdat ydat zdat adat ['sch'=" `num=5']
++     Рисует NUM поверхностей уровня равномерно распределенных в
++     интервале цветовой шкалы (см. *note caxis::).
++
++ -- Команда MGL: dens3 adat 'dir' [`sval=-1' 'sch'="]
++ -- Команда MGL: dens3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="]
++     Рисует график плотности для 3d массива, заданного параметрически
++     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). График
++     рисуется на срезе SVAL в направлении DIR={`x', `y', `z'}. Если STL
++     содержит `#', то на срезе рисуется сетка. См. также *note cont3::,
++     *note contf3::, *note dens::, *note grid3::. См. раздел *note
++     Dens3 sample::, для примеров кода и графика.
++
++ -- Команда MGL: densa adat ['sch'="]
++ -- Команда MGL: densa xdat ydat zdat adat ['sch'="]
++     Рисует графики плотности на всех центральных срезах 3d данных.
++
++ -- Команда MGL: cont3 vdat adat 'dir' [`sval=-1' 'sch'="]
++ -- Команда MGL: cont3 vdat xdat ydat zdat adat 'dir' [`sval=-1'
++          'sch'="]
++     Рисует линии уровня для 3d массива, заданного параметрически
++     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). Линии рисуются
++     для значений из массива V на срезе SVAL в направлении DIR={`x',
++     `y', `z'}. Если STL содержит `#', то на срезе рисуется сетка. Если
++     SCH содержит `t' или `T', то значения VDAT[k] будут выведены вдоль
++     контуров над (или под) кривой. См. также *note dens3::, *note
++     contf3::, *note cont::, *note grid3::. См. раздел *note Cont3
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: cont3 adat 'dir' [`sval=-1' 'sch'=" `num=7']
++ -- Команда MGL: cont3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="
++          `num=7']
++     Как предыдущий с вектором V из NUM элементов равно распределенных
++     в интервале цветовой шкалы (см., *note caxis::).
++
++ -- Команда MGL: conta adat ['sch'=" `num=7']
++ -- Команда MGL: conta xdat ydat zdat adat ['sch'=" `num=7']
++     Рисует линии уровня на всех центральных срезах 3d данных.
++
++ -- Команда MGL: contf3 vdat adat 'dir' [`sval=-1' 'sch'="]
++ -- Команда MGL: contf3 vdat xdat ydat zdat adat 'dir' [`sval=-1'
++          'sch'="]
++     Рисует закрашенные линии (контуры) уровня для 3d массива,
++     заданного параметрически ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k],
++     ZDAT[i,j,k]). Линии рисуются для значений из массива V на срезе
++     SVAL в направлении DIR={`x', `y', `z'}. Если STL содержит `#', то
++     на срезе рисуется сетка. См. также *note dens3::, *note cont3::,
++     *note contf::, *note grid3::. См. раздел *note ContF3 sample::,
++     для примеров кода и графика.
++
++ -- Команда MGL: contf3 adat 'dir' [`sval=-1' 'sch'=" `num=7']
++ -- Команда MGL: contf3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="
++          `num=7']
++     Как предыдущий с вектором V из NUM элементов равно распределенных
++     в интервале цветовой шкалы (см., *note caxis::).
++
++ -- Команда MGL: contfa adat ['sch'=" `num=7']
++ -- Команда MGL: contfa xdat ydat zdat adat ['sch'=" `num=7']
++     Рисует закрашенные линии (контуры) уровня на всех центральных
++     срезах 3d данных.
++
++ -- Команда MGL: grid3 adat 'dir' [`sval=-1' 'sch'="]
++ -- Команда MGL: grid3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="]
++     Рисует сетку для 3d массива, заданного параметрически
++     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). График
++     рисуется на срезе SVAL в направлении DIR={`x', `y', `z'}. См.
++     также *note cont3::, *note contf3::, *note dens3::, *note grid2::.
++
++ -- Команда MGL: grida adat ['sch'="]
++ -- Команда MGL: grida xdat ydat zdat adat ['sch'="]
++     Рисует сетку на всех центральных срезах 3d данных.
++
++ -- Команда MGL: cloud adat ['sch'="]
++ -- Команда MGL: cloud xdat ydat zdat adat ['sch'="]
++     Рисует облачный график для 3d массива, заданного параметрически
++     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). График состоит
++     из кубиков с цветом и прозрачностью пропорциональной значениям
++     ADAT. Результат похож на облако - малые значения прозрачны, а
++     большие нет. Число кубиков зависит от *note meshnum::. Параметр
++     ALPHA меняет общую прозрачность графика. См. также *note surf3::.
++     См. раздел *note Cloud sample::, для примеров кода и графика.
++
++ -- Команда MGL: beam tr g1 g2 adat `rval' ['sch'=" `flag=0 num=3']
++     Рисует поверхность уровня для 3d массива ADAT при постоянном
++     значении ADAT=VAL. Это специальный тип графика для ADAT заданного
++     в сопровождающей системе координат вдоль кривой TR с ортами G1, G2
++     и с поперечным размером RVAL. Переменная FLAG - битовый флаг:
++     `0x1' - рисовать в сопровождающих (не лабораторных) координатах;
++     `0x2' - рисовать проекцию на плоскость \rho-z; `0x4' - рисовать
++     нормированное в каждом сечении поле. Размеры массивов по 1-му
++     индексу TR, G1, G2 должны быть nx>2. Размеры массивов по 2-му
++     индексу TR, G1, G2 и размер по 3-му индексу массива ADAT должны
++     быть одинаковы. См. также *note surf3::.
++
++
++File: mgl_ru.info,  Node: Dual plotting,  Next: Vector fields,  Prev: 3D plotting,  Up: MGL interface
++
++1.13 Парные графики
++================================
++
++Эти команды строят графики для двух связанных массивов. Есть несколько
++основных типов 3D графиков: поверхность и поверхность уровня с окраской
++по второму массиву (*note surfc::, *note surf3c::), поверхность и
++поверхность уровня с прозрачностью по второму массиву (*note surfa::,
++*note surf3a::), плитки переменного размера (*note tiles::), диаграмма
++точечного отображения (*note map::), STFA диаграмма (*note stfa::). В
++командах *note surf3a:: и *note surf3c:: значения уровней можно
++задавать автоматически и вручную. Каждый тип графика имеет похожий
++интерфейс. Есть версия для рисования одного массива с автоматическими
++координатами и версия для параметрически заданного массива.
++
++   Строка SCH задает цветовую схему (*note Color scheme::). Предыдущая
++цветовая схема используется по умолчанию. Массивы X, Y, Z могут быть
++векторами (не 3d массивами как A). Если массивы XDAT, YDAT, ZDAT не
++указаны, то используются массивы со значениями равно распределенными
++вдоль осей x, y, z.
++
++ -- Команда MGL: surfc zdat cdat ['sch'="]
++ -- Команда MGL: surfc xdat ydat zdat cdat ['sch'="]
++     Рисует параметрически заданную поверхность {XDAT[i,j], YDAT[i,j],
++     ZDAT[i,j]} с цветом, заданным массивом CDAT[i,j]. Если SCH
++     содержит `#', то на поверхности рисуется сетка. См. также *note
++     surf::, *note surfa::, *note surf3c::. См. раздел *note SurfC
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: surf3c adat cdat `val' ['sch'="]
++ -- Команда MGL: surf3c xdat ydat zdat adat cdat `val' ['sch'="]
++     Рисует поверхность уровня для 3d массива, заданного параметрически
++     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) при
++     A(x,y,z)=VAL. Аналогично *note surf3::, но цвет задается массивом
++     CDAT. Если SCH содержит `#', то рисуется сетчатая поверхность. См.
++     также *note surf3::, *note surfc::, *note surf3a::. См. раздел
++     *note Surf3C sample::, для примеров кода и графика.
++
++ -- Команда MGL: surf3c adat cdat ['sch'=" `num=5']
++ -- Команда MGL: surf3c xdat ydat zdat adat cdat ['sch'=" `num=5']
++     Рисует NUM поверхностей уровня равномерно распределенных в
++     интервале цветовой шкалы (см. *note caxis::).
++
++ -- Команда MGL: surfa zdat cdat ['sch'="]
++ -- Команда MGL: surfa xdat ydat zdat cdat ['sch'="]
++     Рисует параметрически заданную поверхность {XDAT[i,j], YDAT[i,j],
++     ZDAT[i,j]} с прозрачностью, заданным массивом CDAT[i,j]. Если SCH
++     содержит `#', то на поверхности рисуется сетка. См. также *note
++     surf::, *note surfc::, *note surf3a::. См. раздел *note SurfA
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: surf3a adat cdat `val' ['sch'="]
++ -- Команда MGL: surf3a xdat ydat zdat adat cdat `val' ['sch'="]
++     Рисует поверхность уровня для 3d массива, заданного параметрически
++     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) при
++     A(x,y,z)=VAL. Аналогично *note surf3::, но прозрачность задается
++     массивом CDAT. Если SCH содержит `#', то рисуется сетчатая
++     поверхность. См. также *note surf3::, *note surfa::, *note
++     surf3c::. См. раздел *note Surf3A sample::, для примеров кода и
++     графика.
++
++ -- Команда MGL: surf3a adat cdat ['sch'=" `num=5']
++ -- Команда MGL: surf3a xdat ydat zdat adat cdat ['sch'=" `num=5']
++     Рисует NUM поверхностей уровня равномерно распределенных в
++     интервале цветовой шкалы (см. *note caxis::).
++
++ -- Команда MGL: tiles zdat rdat ['sch'="]
++ -- Команда MGL: tiles xdat ydat zdat rdat ['sch'="]
++     Рисует плитки для параметрически заданной поверхности {XDAT[i,j],
++     YDAT[i,j], ZDAT[i,j]}. Аналогично *note tile::, но размер плиток
++     задается массивов RDAT. Это создает эффект "прозрачности" при
++     экспорте в файлы EPS. См. также *note surfa::, *note tile::. См.
++     раздел *note TileS sample::, для примеров кода и графика.
++
++ -- Команда MGL: map udat vdat ['sch'=" `pnts=on']
++ -- Команда MGL: map xdat ydat udat vdat ['sch'=" `pnts=on']
++     Визуализирует точечное отображение для матриц {UDAT, VDAT }
++     параметрически зависящих от координат XDAT, YDAT. Исходное
++     положение ячейки задает ее цвет. Высота пропорциональна якобиану
++     Jacobian(udat,vdat). График является аналогом диаграммы Арнольда.
++     Если `pnts=off', то рисуются грани, иначе цветные точки рисуются в
++     узлах матриц (полезно для "запутанного" отображения). См. раздел
++     *note Map sample::, для примеров кода и графика.
++
++ -- Команда MGL: stfa re im `dn' ['sch'=" `pnts=on']
++ -- Команда MGL: stfa xdat ydat re im `dn' ['sch'=" `pnts=on']
++     Рисует спектрограмму комплексного массива RE+i*`im' для Фурье
++     размером DN точек. Параметр DN - любое четное число. Например в 1D
++     случае, результатом будет график плотности от массива
++     res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn
++     размером {int(nx/dn), dn, ny}. Массивы RE, IM параметрически
++     зависят от координат XDAT, YDAT. См. раздел *note STFA sample::,
++     для примеров кода и графика.
++
++
++File: mgl_ru.info,  Node: Vector fields,  Next: Other plotting,  Prev: Dual plotting,  Up: MGL interface
++
++1.14 Векторные поля
++================================
++
++Эти функции рисуют графики для 2D и 3D векторных полей. Есть несколько
++типов графиков: просто векторное поле (*note vect::), вектора вдоль
++траектории (*note traj::), векторное поле каплями (*note dew::), нити
++тока (*note flow::), трубки тока (*note pipe::). Каждый тип графика
++имеет похожий интерфейс. Есть версия для рисования одного массива с
++автоматическими координатами и версия для параметрически заданного
++массива.
++
++   Строка SCH задает цветовую схему (*note Color scheme::). Предыдущая
++цветовая схема используется по умолчанию. Все размеры массивов AX и AY
++должны быть одинаковы. Младшие размерности массивов X, Y и AX должны
++быть одинаковы. Массивы X и Y могут быть векторами (не матрицами как
++AX). График строится для каждого z среза AX, AY для 2D случаев.
++
++ -- Команда MGL: traj xdat ydat udat vdat ['sch'=" `zval=nan len=0']
++ -- Команда MGL: traj xdat ydat zdat udat vdat wdat ['sch'=" `len=0']
++     Рисует вектора {UDAT, VDAT, WDAT} вдоль кривой {XDAT, YDAT, ZDAT}.
++     Длина векторов пропорциональна \sqrt{udat^2+vdat^2+wdat^2}. Строка
++     PEN задает цвет (*note Line styles::). По умолчанию (`pen=''').
++     Параметр LEN задает фактор длины векторов (если не нуль) или
++     выбирать длину пропорционально расстоянию между точками кривой
++     (если LEN=0). См. также *note vect::. См. раздел *note Traj
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: vect udat vdat ['sch'=" `zval=nan flag=0']
++ -- Команда MGL: vect xdat ydat udat vdat ['sch'=" `zval=nan flag=0']
++     Рисует векторное поле {UDAT, VDAT} параметрически зависящее от
++     координат XDAT, YDAT на плоскости при Z=ZVAL. Длина и цвет
++     векторов пропорциональна \sqrt{ax^2+ay^2}. Число рисуемых векторов
++     зависит от *note meshnum::. Параметр FLAG побитовый флаг для
++     настройки вид векторов: `1' - двуцветный вектор, `2' - одинаковая
++     длина векторов, `4' - рисует стрелку в точку сетки, `8' - рисует
++     стрелку с серединой в точке сетки, `16' - рисует штрихи вместо
++     стрелок. См. также *note flow::, *note dew::, *note vectc::. См.
++     раздел *note Vect sample::, для примеров кода и графика.
++
++ -- Команда MGL: vect udat vdat wdat ['sch'=" `flag=0']
++ -- Команда MGL: vect xdat ydat zdat udat vdat wdat ['sch'=" `flag=0']
++     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
++     3d массивами, а длина и цвет пропорциональны
++     \sqrt{udat^2+vdat^2+wdat^2}. См. раздел *note Vect 3D sample::,
++     для примеров кода и графика.
++
++ -- Команда MGL: vectc udat vdat ['sch'=" `zval=nan']
++ -- Команда MGL: vectc xdat ydat udat vdat ['sch'=" `zval=nan']
++     Аналогично *note vect:: c `flag=2+16=18'. См. раздел *note VectC
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: vectc udat vdat wdat ['sch'="]
++ -- Команда MGL: vectc xdat ydat zdat udat vdat wdat ['sch'="]
++     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
++     3d массивами, а длина и цвет пропорциональны
++     \sqrt{udat^2+vdat^2+wdat^2}. См. раздел *note VectC 3D sample::,
++     для примеров кода и графика.
++
++ -- Команда MGL: vectl udat vdat ['sch'=" `zval=nan']
++ -- Команда MGL: vectl xdat ydat udat vdat ['sch'=" `zval=nan']
++     Аналогично *note vect:: c `flag=1+16=17'. См. раздел *note VectL
++     sample::, для примеров кода и графика.
++
++ -- Команда MGL: vectl udat vdat wdat ['sch'="]
++ -- Команда MGL: vectl xdat ydat zdat udat vdat wdat ['sch'="]
++     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
++     3d массивами, а длина и цвет пропорциональны
++     \sqrt{udat^2+vdat^2+wdat^2}. См. раздел *note VectL 3D sample::,
++     для примеров кода и графика.
++
++ -- Команда MGL: dew udat vdat ['sch'=" `zval=nan']
++ -- Команда MGL: dew xdat ydat udat vdat ['sch'=" `zval=nan']
++     Рисует капли для векторного поля {UDAT, VDAT}, параметрически
++     зависящего от координат XDAT, YDAT при Z=ZVAL. Замечу, что график
++     требует много памяти и процессорного времени для своего создания!
++     Цвет капель пропорционален \sqrt{ax^2+ay^2}. Число капель
++     определяется *note meshnum::. См. также *note vect::. См. раздел
++     *note Dew sample::, для примеров кода и графика.
++
++ -- Команда MGL: flow udat vdat ['sch'=" `num=5 zval=nan']
++ -- Команда MGL: flow xdat ydat udat vdat ['sch'=" `num=5 zval=nan']
++     Рисует нити тока для векторного поля {UDAT, VDAT}, параметрически
++     зависящего от координат XDAT, YDAT на плоскости при z = ZVAL.
++     Число нитей пропорционально NUM. При NUM>0 нитей могут стартовать
++     и изнутри сетки, в противном случае только с краев. Цвет нитей
++     пропорционален \sqrt{udat^2+vdat^2}. Теплые цвета соответствуют
++     нормальному току (типа стока). Холодные цвета соответствуют
++     обратному току (типа источника). См. также *note pipe::, *note
++     vect::. См. раздел *note Flow sample::, для примеров кода и
++     графика.
++
++ -- Команда MGL: flow udat vdat wdat ['sch'=" `num=3']
++ -- Команда MGL: flow xdat ydat zdat udat vdat wdat ['sch'=" `num=3']
++     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
++     3d массивами, а цвет пропорционален \sqrt{udat^2+vdat^2+wdat^2}.
++     См. раздел *note Flow 3D sample::, для примеров кода и графика.
++
++ -- Команда MGL: flow `x0 y0' udat vdat ['sch'=" `zval=nan']
++ -- Команда MGL: flow `x0 y0' xdat ydat udat vdat ['sch'=" `zval=nan']
++     Рисует нить тока из точки {X0, Y0} для векторного поля {UDAT,
++     VDAT}, параметрически зависящего от координат XDAT, YDAT на
++     плоскости при z = ZVAL. Цвет нити пропорционален
++     \sqrt{udat^2+vdat^2}. Теплые цвета соответствуют нормальному току
++     (типа стока). Холодные цвета соответствуют обратному току (типа
++     источника).
++
++ -- Команда MGL: flow `x0 y0 z0' udat vdat wdat ['sch'="]
++ -- Команда MGL: flow `x0 y0 z0' xdat ydat zdat udat vdat wdat ['sch'="]
++     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
++     3d массивами, а цвет пропорционален \sqrt{udat^2+vdat^2+wdat^2}.
++
++ -- Команда MGL: pipe udat vdat ['sch'=" `r0=0.05 num=5 zval=nan']
++ -- Команда MGL: pipe xdat ydat udat vdat ['sch'=" `r0=0.05 num=5
++          zval=nan']
++     Рисует трубки тока для векторного поля {UDAT, VDAT},
++     параметрически зависящего от координат XDAT, YDAT на плоскости при
++     z = ZVAL. Число трубок пропорционально NUM. При NUM>0 нитей могут
++     стартовать и изнутри сетки, в противном случае только с краев.
++     Цвет и радиус трубок пропорционален \sqrt{udat^2+vdat^2}. Теплые
++     цвета соответствуют нормальному току (типа стока). Холодные цвета
++     соответствуют обратному току (типа источника). Параметр R0 задает
++     радиус трубок. При R0<0 радиус трубок обратно пропорционален их
++     амплитуде. См. также *note flow::, *note vect::. См. раздел *note
++     Pipe sample::, для примеров кода и графика.
++
++ -- Команда MGL: pipe udat vdat wdat ['sch'=" `r0=0.05 num=3']
++ -- Команда MGL: pipe xdat ydat zdat udat vdat wdat ['sch'=" `r0=0.05
++          num=3']
++     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
++     3d массивами, а цвет пропорционален \sqrt{udat^2+vdat^2+wdat^2}.
++     См. раздел *note Pipe 3D sample::, для примеров кода и графика.
++
++
++File: mgl_ru.info,  Node: Other plotting,  Next: Nonlinear fitting,  Prev: Vector fields,  Up: MGL interface
++
++1.15 Прочие графики
++================================
++
++Это команды, не относящиеся к какой-то специальной категории. Сюда
++входят функции построения графиков по текстовым формулам (*note
++fplot::, *note fsurf::), рисования поверхностей из треугольников (*note
++triplot::), произвольных точек в пространстве (*note dots::) и
++реконструкции по ним поверхности (*note crust::), графики плотности и
++линии уровня на плоскостях, перпендикулярных осям x, y или z
++(dens[xyz], cont[xyz], contf[xyz]). Каждый тип графика имеет похожий
++интерфейс. Есть версия для рисования одного массива с автоматическими
++координатами и версия для параметрически заданного массива. Строка SCH
++задает цветовую схему (*note Color scheme::). Предыдущая цветовая схема
++используется по умолчанию.
++
++ -- Команда MGL: densx dat ['sch'=" `val=nan']
++ -- Команда MGL: densy dat ['sch'=" `val=nan']
++ -- Команда MGL: densz dat ['sch'=" `val=nan']
++     Рисуют график плотности на x, y или z плоскостях. Если DAT - 3d
++     массив, то выполняется интерполяция к заданному срезу VAL. Функции
++     полезны для создания проекций 3D массивов на оси координат. См.
++     также `cont[xyz], contf[xyz]', *note dens::. См. раздел *note Dens
++     projection sample::, для примеров кода и графика.
++
++ -- Команда MGL: contx dat ['sch'=" `val=nan num=7']
++ -- Команда MGL: conty dat ['sch'=" `val=nan num=7']
++ -- Команда MGL: contz dat ['sch'=" `val=nan num=7']
++     Рисуют линии уровня на x, y или z плоскостях. Если DAT - 3d
++     массив, то выполняется интерполяция к заданному срезу VAL. Функции
++     полезны для создания проекций 3D массивов на оси координат. См.
++     также `dens[xyz], contf[xyz]', *note cont::. См. раздел *note Cont
++     projection sample::, для примеров кода и графика.
++
++ -- Команда MGL: contfx dat ['sch'=" `val=nan num=7']
++ -- Команда MGL: contfy dat ['sch'=" `val=nan num=7']
++ -- Команда MGL: contfz dat ['sch'=" `val=nan num=7']
++     Рисуют закрашенные контуры уровня на x, y или z плоскостях. Если
++     DAT - 3d массив, то выполняется интерполяция к заданному срезу
++     VAL. Функции полезны для создания проекций 3D массивов на оси
++     координат. См. также `dens[xyz], cont[xyz]', *note contf::.
++
++ -- Команда MGL: dots xdat ydat zdat ['sch'="]
++ -- Команда MGL: dots xdat ydat zdat adat ['sch'="]
++     Рисует произвольно расположенные точки {XDAT[i], YDAT[i],
++     ZDAT[i]}. Если определен массив ADAT[i], то он задает прозрачность
++     точек. См. также *note crust::, *note mark::, *note plot::. См.
++     раздел *note Dots sample::, для примеров кода и графика.
++
++ -- Команда MGL: crust xdat ydat zdat ['sch'="]
++     Реконструирует и рисует поверхность по произвольно расположенным
++     точкам {XDAT[i], YDAT[i], ZDAT[i]}. Если строка содержит `#', то
++     рисуется сетчатая поверхность. См. также *note dots::, *note
++     triplot::. См. раздел *note Crust sample::, для примеров кода и
++     графика.
++
++ -- Команда MGL: triplot idat xdat ydat ['sch'=" `zval=nan']
++ -- Команда MGL: triplot idat xdat ydat zdat ['sch'="]
++ -- Команда MGL: triplot idat xdat ydat zdat cdat ['sch'="]
++     Рисует поверхность из треугольников. Вершины треугольников
++     задаются индексами IDAT в массиве точек {XDAT[i], YDAT[i],
++     ZDAT[i]}. Если строка содержит `#', то рисуется сетчатая
++     поверхность. Размер по 1-му индексу массива IDAT должен быть 3 или
++     больше. Массивы XDAT, YDAT, ZDAT должны иметь одинаковые размеры.
++     Массив CDAT задает цвет треугольников (если IDAT.ny=CDAT.nx) или
++     цвет вершин (если XDAT.nx=CDAT.nx). См. также *note dots::, *note
++     crust::, *note quadplot::, *note tricont::.
++
++ -- Команда MGL: tricont vdat idat xdat ydat zdat cdat ['sch'="
++          `zval=nan']
++ -- Команда MGL: tricont vdat idat xdat ydat zdat ['sch'=" `zval=nan']
++ -- Команда MGL: tricont idat xdat ydat zdat ['sch'=" `num=7 zval=nan']
++     Рисует линии уровня поверхности из треугольников при Z = ZVAL (или
++     для z=VDAT[k] если `zval==NAN'). Вершины треугольников задаются
++     индексами IDAT в массиве точек {XDAT[i], YDAT[i], ZDAT[i]}. Размер
++     по 1-му индексу массива IDAT должен быть 3 или больше. Массивы
++     XDAT, YDAT, ZDAT должны иметь одинаковые размеры. Массив CDAT
++     (если указан) задает цвет треугольников (если IDAT.ny=CDAT.nx) или
++     цвет вершин (если XDAT.nx=CDAT.nx). См. также *note triplot::,
++     *note cont::.
++
++ -- Команда MGL: quadplot idat xdat ydat ['sch'=" `zval=nan']
++ -- Команда MGL: quadplot idat xdat ydat zdat ['sch'="]
++ -- Команда MGL: quadplot idat xdat ydat zdat cdat ['sch'="]
++     Рисует поверхность из четырехугольников. Вершины треугольников
++     задаются индексами IDAT в массиве точек {XDAT[i], YDAT[i],
++     ZDAT[i]}. Если строка содержит `#', то рисуется сетчатая
++     поверхность. Размер по 1-му индексу массива IDAT должен быть 4 или
++     больше. Массивы XDAT, YDAT, ZDAT должны иметь одинаковые размеры.
++     Массив CDAT задает цвет четырехугольников (если IDAT.ny=CDAT.nx)
++     или цвет вершин (если XDAT.nx=CDAT.nx). См. также *note triplot::.
++
++ -- Команда MGL: fplot 'y(x)' ['pen'=" `zval=nan num=100']
++     Рисует функцию `y(x)' в плоскости z=ZVAL с координатой `x' в
++     диапазоне x-оси координат. Параметр NUM задает минимальное число
++     точек по координате для графика. См. также *note plot::.
++
++ -- Команда MGL: fplot 'x(t)' 'y(t)' 'z(t)' ['pen'=" `num=100']
++     Рисует параметрическую кривую {`x(t)', `y(t)', `z(t)'}, где
++     координата `t' меняется в диапазоне [0, 1]. Параметр NUM задает
++     минимальное число точек по координате для графика. См. также *note
++     plot::.
++
++ -- Команда MGL: fsurf 'z(x,y)' ['sch'=" `num=100']
++     Рисует поверхность `z(x,y)' с координатами `x', `y' в диапазоне
++     x-,y-осей координат. Параметр NUM задает минимальное число точек
++     по координатам для графика. См. также *note surf::.
++
++ -- Команда MGL: fsurf 'x(u,v)' 'y(u,v)' 'z(u,v)' ['sch'=" `num=100']
++     Рисует параметрическую поверхность {`x(u,v)', `y(u,v)', `z(u,v)'},
++     где координаты `u', `v' меняются в диапазоне [0, 1]. Параметр NUM
++     задает минимальное число точек по координатам для графика. См.
++     также *note surf::.
++
++
++File: mgl_ru.info,  Node: Nonlinear fitting,  Next: Data create,  Prev: Other plotting,  Up: MGL interface
++
++1.16 Nonlinear fitting
++======================
++
++Эти команды подбирают параметры функций для наилучшей аппроксимации
++данных, т.е. минимизируют сумму \sum_i (f(x_i, y_i, z_i) -
++a_i)^2/s_i^2. При этом аппроксимирующая функция `f' может зависеть от
++одного аргумента `x' (1D случай), от двух аргументов `x,y' (2D случай)
++или от трех аргументов `x,y,z' (3D случай). Функция `f' также может
++зависеть от параметров. Список параметров задается строкой VAR
++(например, `abcd'). Обычно пользователь должен предоставить начальные
++значения параметров в переменной INI. Однако, при его отсутствии
++используются нулевые значения.
++
++   Команды *note fit:: и *note fits:: не рисуют полученные массивы. Они
++заполняют массив FIT по формуле `f' с найденными коэффициентами. При
++этом, координаты `x,y,z' равно распределены в вдоль осей координат.
++Число точек в FIT выбирается максимальным из размера массива FIT и 100.
++Формулу с найденными коэффициентами можно вывести с помощью команды
++*note putsfit::. См. раздел *note Fitting sample::, для примеров кода и
++графика.
++
++   Размерность массивов должны быть не меньше, чем число указанных
++массивов XDAT, YDAT, ZDAT. Также подбор коэффициентов будет
++осуществляться только вдоль указанных направлений (например, вдоль x и
++y если указаны только XDAT и YDAT). Если массив XDAT не указан, то
++используется массив со значениями равно распределенными вдоль оси x.
++
++ -- Команда MGL: fits adat sdat 'func' 'var' [ini=0]
++ -- Команда MGL: fits xdat adat sdat 'func' 'var' [ini=0]
++ -- Команда MGL: fits xdat ydat adat sdat 'func' 'var' [ini=0]
++ -- Команда MGL: fits xdat ydat zdat adat sdat 'func' 'var' [ini=0]
++     "Подгоняют" формулу вдоль x-, y- и z-направлений для массива
++     заданного параметрически A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) с
++     весовыми коэффициентами SDAT[i,j,k].
++
++ -- Команда MGL: fit adat 'func' 'var' [ini=0]
++ -- Команда MGL: fit xdat adat 'func' 'var' [ini=0]
++ -- Команда MGL: fit xdat ydat adat 'func' 'var' [ini=0]
++ -- Команда MGL: fit xdat ydat zdat adat 'func' 'var' [ini=0]
++     "Подгоняют" формулу вдоль x-, y- и z-направлений для массива
++     заданного параметрически A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) с
++     весовыми коэффициентами равными 1.
++
++ -- Команда MGL: putsfit `x y' ['pre'=" 'fnt'=" `size=-1']
++     Печатает последнюю подобранную формулу с найденными коэффициентами
++     в точке {X, Y}. Строка PRE будет напечатана перед формулой. Все
++     другие параметры такие же как в *note Text printing::.
++
++
++File: mgl_ru.info,  Node: Data create,  Next: Data filling,  Prev: Nonlinear fitting,  Up: MGL interface
++
++1.17 Создание данных
++==================================
++
++ -- Команда MGL: new dat [`nx=1 ny=1 nz=1']
++     Создает/пересоздает массив с именем DAT данных указанного размера
++     и заполняет его нулями. Ничего не делает при NX, NY, NZ
++     отрицательных или равных нулю.
++
++ -- Команда MGL: var dat `num v1 [v2=nan]'
++     Создает одномерный массив с именем DAT размером `num' и заполняет
++     его равномерно в диапазоне [V1, V2]. Если V2=`nan', то
++     используется V2=V1.
++
++ -- Команда MGL: list dat `v1 ...'
++     Создает массив с именем DAT и заполняет его числовыми значениями
++     аргументов `v1 ...'. Команда может создавать 1d- и 2d-массивы. Для
++     создания 2d-массивов требуется указать разделитель строк данных
++     `|'. Размер массива будет [максимальное число чисел в строке *
++     число строк]. Например, команда `list 1 | 2 3' создаст массив [1
++     0; 2 3]. Отмечу, что максимальное число аргументов 1000.
++
++ -- Команда MGL: list dat d1 ...
++     Создает массив с именем DAT и заполняет его числами из массивов
++     `d1 ...'. Команда может создавать 2d- и 3d-массивы (если аргументы
++     2d массивы). Младшие размерности всех массивов в аргументах должны
++     быть равны размерности D1. Отмечу, что максимальное число
++     аргументов 1000.
++
++ -- Команда MGL: copy dat dat2 ['eq'=" `on_axis=on']
++ -- Команда MGL: copy dat `val'
++     Создает массив с именем DAT и копирует в него данные из массива
++     DAT2. При этом, если указан параметр EQ, то данные будут изменены
++     по формуле аналогично команде *note fill:: (для `on_axis=on') или
++     *note modify:: (для `on_axis=off').
++
++ -- Команда MGL: idset dat 'ids'
++     Устанавливает символьные обозначения для колонок данных. Строка
++     должна содержать символы 'a'...'z' один на колонку (без пробелов).
++
++ -- Команда MGL: info dat [`detail=off']
++     Выводит информацию о массиве (размер, максимальное/минимальное
++     значение, моменты и пр.). При `detail=off' показывается только
++     краткая информация.
++
++ -- Команда MGL: info 'text'
++     Выводит текст TEXT как информацию (предупреждение).
++
++
++File: mgl_ru.info,  Node: Data filling,  Next: Rearrange data,  Prev: Data create,  Up: MGL interface
++
++1.18 Заполнение данных
++======================================
++
++ -- Команда MGL: fill dat v1 v2 ['dir'='x']
++     Заполняет значениями равно распределенными в диапазоне [V1, V2] в
++     направлении DIR={`x',`y',`z'}.
++
++ -- Команда MGL: fill dat 'eq' [vdat=0 wdat=0]
++     Заполняет значениями вычисленными по формуле EQ. Формула
++     представляет собой произвольное выражение, зависящее от переменных
++     `x', `y', `z', `u', `v', `w'. Координаты `x', `y', `z' полагаются
++     меняющимися в диапазоне осей координат (в отличие от *note
++     modify::). Переменная `u' - значения исходного массива, переменные
++     `v', `w' - значения массивов VDAT, WDAT. Последние могут быть
++     опущены.
++
++ -- Команда MGL: modify dat 'eq' [`dim=0']
++ -- Команда MGL: modify dat 'eq' vdat [wdat=0]
++     Заполняет значениями вычисленными по формуле EQ. Формула
++     представляет собой произвольное выражение, зависящее от переменных
++     `x', `y', `z', `u', `v', `w'. Координаты `x', `y', `z' полагаются
++     меняющимися в диапазоне [0,1] (в отличие от *note fill::).
++     Переменная `u' - значения исходного массива, переменные `v', `w' -
++     значения массивов VDAT, WDAT. Последние могут быть опущены. Если
++     указан DIM>0, то изменяются только слои >=DIM.
++
++ -- MGL command: put dat `val [i=: j=: k=:]'
++     Присваивает значения (под-)массива DAT[I, J, K] = VAL. Индексы I,
++     J, K равные `:' задают значениия VAL для всего диапазона
++     соответствующего направления(ий). Например, `put dat val : 0 :'
++     задает DAT[i,0,j]=VAL для i=0...(DAT.nx-1), j=0...(DAT.nz-1).
++
++ -- MGL command: put dat vdat [`i=: j=: k=:']
++     Копирует значения из массива VDAT в диапазон значений массива DAT.
++     Индексы I, J, K равные `:' задают диапазон изменения значений в
++     соответствующих направление(ях). Младшие размерности массива VDAT
++     должны быть больше выбранного диапазона массива DAT. Например,
++     `put dat v : 0 :' присвоит DAT[i,0,j]=VDAT.ny>DAT.nz ? VDAT[i,j] :
++     VDAT[i], где i=0...(DAT.nx-1), j=0...(DAT.nz-1) и условие
++     vdat.nx>=dat.nx выполнено.
++
++
++File: mgl_ru.info,  Node: Rearrange data,  Next: File I/O,  Prev: Data filling,  Up: MGL interface
++
++1.19 Изменение размеров данных
++=====================================================
++
++ -- Команда MGL: rearrange dat `mx [my=0 mz=0]'
++     Изменяет размерность данных без изменения самого массива данных,
++     так что результирующий массив MX*MY*MZ < nx*ny*nz. Если один из
++     параметров MY или MZ ноль, то он будет выбран оптимальным образом.
++     Например, если MY=0, то будет MY=nx*ny*nz/MX и MZ=1.
++
++ -- Команда MGL: extend dat `n1 [n2=0]'
++     Увеличивает размер данных путем вставки (|N1|+1) новых срезов
++     после (для N1>0) или перед (для N1<0) существующими данными. Можно
++     добавить сразу 2 размерности для 1d массива, используя второй
++     параметр N2. Данные в новые срезы будут скопированы из
++     существующих. Например, для N1>0 новый массив будет a_ij^new =
++     a_i^old where j=0...N1. Соответственно, для N1<0 новый массив
++     будет a_ij^new = a_j^old, где i=0...|N1|.
++
++ -- Команда MGL: transpose dat ['dim'='yxz']
++     Транспонирует (меняет порядок размерностей) массив данных. Новый
++     порядок размерностей задается строкой DIM.
++
++ -- Команда MGL: squeeze dat `rx [ry=1 rz=1 sm=off]'
++     Уменьшает размер данных путем удаления элементов с индексами не
++     кратными RX, RY, RZ соответственно. Параметр SMOOTH задает
++     использовать сглаживания (т.е. out[i]=\sum_{j=i,i+r} a[j]/r) или
++     нет (т.е. out[i]=a[j*r]).
++
++ -- Команда MGL: crop dat `n1 n2' 'dir'
++     Обрезает границы данных при I<N1 и I>N2 (при N2>0) или
++     I>`n[xyz]'-N2 (при N2<=0) вдоль направления DIR.
++
++ -- Команда MGL: delete dat
++     Удаляет массив DAT и освобождает использованную память. Может быть
++     полезно для больших неиспользуемых массивов.
++
++ -- Команда MGL: delete dat 'dir' `[pos=off num=0]'
++     Удаляет NUM срезов вдоль направления DIR с позиции POS.
++
++ -- Команда MGL: insert dat 'dir' `[pos=off num=0]'
++     Вставляет NUM срезов вдоль направления DIR с позиции POS и
++     заполняет их нулями.
++
++
++File: mgl_ru.info,  Node: File I/O,  Next: Make another data,  Prev: Rearrange data,  Up: MGL interface
++
++1.20 Чтение/сохранение данных
++===================================================
++
++ -- Команда MGL: read dat 'fname'
++     Читает данные из текстового файла с разделителями символом
++     пробела/табуляции с автоматическим определением размера массива.
++     Двойной перевод строки начинает новый срез данных (по направлению
++     z).
++
++ -- Команда MGL: read dat 'fname' `mx [my=1 mz=1]'
++     Читает данные из текстового файла с заданными размерами. Ничего не
++     делается если параметры MX, MY или MZ равны нулю или отрицательны.
++
++ -- Команда MGL: readmat dat 'fname' [`dim=2']
++     Читает данные из текстового файла с размерами, указанными в первых
++     DIM числах файла. При этом переменная DIM задает размерность (1d,
++     2d, 3d) данных.
++
++ -- Команда MGL: readall dat 'templ' `v1 v2 [dv=1 slice=off]'
++     Объединяет данные из нескольких текстовых файлов. Имена файлов
++     определяются вызовом функции `sprintf(fname,templ,val);', где VAL
++     меняется от V1 до V2 с шагом DV. Данные загружаются один за другим
++     в один и тот же срез данных (при SLICE=`off') или срез-за-срезом
++     (при SLICE=`on').
++
++ -- Команда MGL: readall dat 'templ' `[slice=off]'
++     Объединяет данные из нескольких текстовых файлов, чьи имена
++     удовлетворяют шаблону TEMPL (например, TEMPL=`"t_*.dat"'). Данные
++     загружаются один за другим в один и тот же срез данных (при
++     SLICE=`off') или срез-за-срезом (при SLICE=`on').
++
++ -- Команда MGL: save dat 'fname'
++     Сохраняет массив данных в текстовый файл.
++
++ -- Команда MGL: readhdf dat 'fname' 'dname'
++     Читает массив с именем DNAME из HDF5 или HDF4 файла FNAME.
++
++ -- Команда MGL: savehdf dat 'fname' 'dname'
++     Сохраняет массив под именем DNAME в HDF5 или HDF4 файл FNAME.
++
++ -- Команда MGL: import dat 'fname' 'sch' [`v1=0 v2=1']
++     Читает данные из растрового файла. RGB значения пикселов
++     преобразуются в число в диапазоне [V1, V2] используя цветовую
++     схему SCH (*note Color scheme::).
++
++ -- Команда MGL: export dat 'fname' 'sch' [`v1=0 v2=0']
++     Сохраняет данные в растровый файл. Числовые значения,
++     нормированные в диапазон [V1, V2], преобразуются в RGB значения
++     пикселов, используя цветовую схему SCH (*note Color scheme::).
++     Если V1>=V2, то значения V1, V2 определяются автоматически как
++     минимальное и максимальное значение данных.
++
++
++File: mgl_ru.info,  Node: Make another data,  Next: Change data,  Prev: File I/O,  Up: MGL interface
++
++1.21 Создание новых данных
++=============================================
++
++ -- Команда MGL: combine res adat bdat
++     Возвращает в массиве данных RES прямое произведение массивов
++     (наподобие, res[i,j] = adat[i]*bdat[j] и т.д.).
++
++ -- Команда MGL: evaluate res dat idat [`norm=on']
++ -- Команда MGL: evaluate res dat idat jdat [`norm=on']
++ -- Команда MGL: evaluate res dat idat jdat kdat [`norm=on']
++     Возвращает массив данных RES, полученный в результате интерполяции
++     исходного массива в точках других массивов (например,
++     res[i,j]=dat[idat[i,j],jdat[i,j]]). Размеры массивов IDAT, JDAT,
++     KDAT должны совпадать. Координаты в IDAT, JDAT, KDAT полагаются
++     нормированными в диапазон [0,1] (при NORM=`on') или в диапазоны
++     [0,nx], [0,ny], [0,nz] соответственно.
++
++ -- Команда MGL: hist res dat `num v1 v2 [nsub=0]'
++ -- Команда MGL: hist res dat wdat `num v1 v2 [nsub=0]'
++     Возвращает распределение (гистограмму) RES из NUM точек от
++     значений массива DAT в диапазоне [V1, V2]. Массив WDAT задает веса
++     элементов (все веса равны 1 если WDAT не указан). Параметр NSUB
++     задает число дополнительных точек интерполяции (для сглаживания
++     получившейся гистограммы).
++
++ -- Команда MGL: hist res xdat adat
++ -- Команда MGL: hist res xdat ydat adat
++ -- Команда MGL: hist res xdat ydat zdat adat
++     Возвращает распределение (гистограмму) RES от значений массива
++     ADAT, параметрически зависящего от координат {XDAT,YDAT,ZDAT} в
++     диапазоне осей координат. Массив ADAT играет роль веса точки.
++     Число точек в результате RES - максимум из размера RES и 100.
++
++ -- Команда MGL: momentum res dat 'how' ['dir'='z']
++     Возвращает в массиве данных RES момент (1d массив) данных DAT
++     вдоль направления DIR. Строка HOW определяет тип момента. Момент
++     определяется как res_k = \sum_ij how(x_i,y_j,z_k) dat_ij/ \sum_ij
++     a_ij если DIR=`z' и т.д. Координаты `x', `y', `z' - индексы
++     массива в диапазоне [0,1].
++
++ -- Команда MGL: sum res dat 'dir'
++     Возвращает в массиве данных RES результат суммирования DAT вдоль
++     направления(ий) DIR.
++
++ -- Команда MGL: max res dat 'dir'
++     Возвращает в массиве данных RES максимальное значение DAT вдоль
++     направления(ий) DIR.  Gets array which is the maximal data values
++     in given direction or direction(s).
++
++ -- Команда MGL: min res dat 'dir'
++     Возвращает в массиве данных RES минимальное значение DAT вдоль
++     направления(ий) DIR.
++
++ -- Команда MGL: resize res dat `mx [my=1 mz=1]'
++     Возвращает массив данных RES размером MX, MY, MZ со значениями
++     полученными интерполяцией значений массива DAT.
++
++ -- Команда MGL: subdata res dat `xx [yy=: zz=:]'
++     Возвращает в RES подмассив массива данных DAT с фиксированными
++     значениями индексов с положительными значениями. Например,
++     `subdata a b : 2' выделяет третью строку (индексы начинаются с
++     нуля), `subdata a b 4 :' выделяет 5-ую колонку, `subdata a b : :
++     3' выделяет 4-ый срез и т.д.
++
++ -- Команда MGL: trace res dat
++     Возвращает массив REF диагональных элементов DAT[i,i] (для 2D
++     данных) или DAT[i,i,i] (для 3D данных) где i=0...nx-1. В 1D случае
++     возвращается сам массив данных DAT. Размеры массива данных должен
++     быть DAT.ny, DAT.nz >= DAT.nx или DAT.ny, DAT.nz = 1.
++
++ -- Команда MGL: transform dat 'type' real imag
++     Выполняет интегральное преобразование комплексных данных REAL,
++     IMAG в выбранном направлении и возвращает модуль результата в RES.
++     Порядок и тип преобразований задается строкой TYPE: первый символ
++     для x-направления, второй для y-направления, третий для
++     z-направления. Возможные символы: `f' - прямое преобразование
++     Фурье, `i' - обратное преобразование Фурье, `s' - синус
++     преобразование, `c' - косинус преобразование, `h' - преобразование
++     Ханкеля, `n' или ` ' - нет преобразования.
++
++ -- Команда MGL: transforma dat 'type' ampl phase
++     Аналогично предыдущему с заданными амплитудой AMPL и фазой PHASE
++     комплексных чисел.
++
++ -- Команда MGL: stfad res real imag `dn' ['dir'='x']
++     Выполняет оконное преобразование Фурье длиной DN для комплексных
++     данных REAL, IMAG и возвращает модуль результата в RES. Например,
++     для DIR=`x' результат будет иметь размер {int(nx/dn), dn, ny} и
++     будет равен res[i,j,k]=|\sum_d^dn
++     exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn.
++
++ -- Команда MGL: pde res 'ham' ini_re ini_im [`dz=0.1 k0=100']
++     Решает уравнение в частных производных du/dz =
++     i*k0*HAM(p,q,x,y,z,|u|)[u], где p=-i/k0*d/dx, q=-i/k0*d/dy -
++     псевдо-дифференциальные операторы. Параметры INI_RE, INI_IM задают
++     начальное распределение поля. Координаты в уравнении и в решении
++     полагаются в диапазоне осей координат. Замечу, что внутри этот
++     диапазон увеличивается в 3/2 раза для уменьшения отражения от
++     границ расчетного интервала. Параметр DZ задает шаг по
++     эволюционной координате z. В данный момент использован упрощенный
++     алгоритм, когда все "смешанные" члена (типа `x*p'->x*d/dx)
++     исключаются. Например, в 2D случае это функции типа ham = f(p,z) +
++     g(x,z,u). При этом допускаются коммутирующие комбинации (типа
++     `x*q'->x*d/dy). Переменная `u' используется для обозначения
++     амплитуды поля |u|. Это позволяет решать нелинейные задачи -
++     например, нелинейное уравнение Шредингера `ham='p^2+q^2-u^2''.
++     Также можно указать мнимую часть для поглощения (типа `ham =
++     'p^2+i*x*(x>0)''), но только если зависимость от `i' линейная,
++     т.е. ham = hre+i*him. См. раздел *note PDE sample::, для примеров
++     кода и графика.
++
++ -- Команда MGL: ray res 'ham' `x0 y0 z0 p0 q0 v0 [dt=0.1 tmax=10]'
++     Решает систему геометрооптических уравнений d_r_/dt = d HAM/d_p_,
++     d_p_/dt = -d HAM/d_r_. Это гамильтоновы уравнения для траектории
++     частицы в 3D случае. Гамильтониан HAM может зависеть от координат
++     `x', `y', `z', импульсов `p'=px, `q'=py, `v'=pz и времени `t': ham
++     = H(x,y,z,p,q,v,t). Начальная точка (при `t=0') задается
++     переменными {X0, Y0, Z0, P0, Q0, V0}. Параметры DT и TMAX задают
++     шаг и максимальное время интегрирования. Результат RES - массив
++     {x,y,z,p,q,v,t} с размером {7 * int(TMAX/DT+1) }. См. раздел *note
++     Beam tracing sample::, для примеров кода и графика.
++
++ -- Команда MGL: qo2d res 'ham' ini_re ini_im ray [`r=1 k0=100' xx=0
++          yy=0]
++     Решает уравнение в частных производных du/dt =
++     i*k0*HAM(p,q,x,y,|u|)[u] в сопровождающей системе координат, где
++     p=-i/k0*d/dx, q=-i/k0*d/dy - псевдо-дифференциальные операторы.
++     Параметры INI_RE, INI_IM задают начальное распределение поля.
++     Параметр RAY задает опорный луч для сопровождающей системы
++     координат. Можно использовать луч найденный с помощью `ray'.
++     Опорный луч должен быть достаточно гладкий, чтобы система
++     координат была однозначной и для исключения ошибок интегрирования.
++     Если массивы XX и YY указаны, то в них записываются декартовы
++     координаты для каждой точки найденного решения. См. также *note
++     pde::. См. раздел *note Beam tracing sample::, для примеров кода и
++     графика.
++
++ -- Команда MGL: jacobian res xdat ydat [zdat=0]
++     Вычисляет якобиан преобразования {i,j,k} в {XDAT,YDAT,ZDAT}, где
++     координаты {i,j,k} полагаются нормированными в интервал [0,1].
++     Якобиан находится по формуле det||dr_\alpha/d\xi_\beta||, где
++     r={XDAT,YDAT,ZDAT} и \xi={i,j,k}. Все размерности всех массивов
++     должны быть одинаковы. Данные должны быть трехмерными если указаны
++     все 3 массива {XDAT,YDAT,ZDAT} или двумерными если только 2
++     массива {XDAT,YDAT}.
++
++
++File: mgl_ru.info,  Node: Change data,  Next: Operators,  Prev: Make another data,  Up: MGL interface
++
++1.22 Изменение данных
++====================================
++
++Эти команды изменяют данные вдоль заданного направления(ий) типа
++например дифференцирования, интегрирования и т.д. Направление
++указывается строкой DIR, которая может содержать символы `x', `y' и/или
++`z', вдоль которых изменения будут применены.
++
++ -- Команда MGL: cumsum dat 'dir'
++     Суммирует с накоплением в выбранном направлении(ях).
++   
++ -- Команда MGL: integrate dat 'dir'
++     Выполняет интегрирование (подобно суммированию с накоплением) в
++     выбранном направлении(ях).
++   
++ -- Команда MGL: diff dat 'dir'
++     Выполняет дифференцирование в выбранном направлении(ях).
++
++ -- Команда MGL: diff dat xdat ydat [zdat=0]
++     Выполняет дифференцирование данных DAT, параметрически зависящих
++     от координат, в направлении XDAT с YDAT, ZDAT=constant. Параметр
++     ZDAT может быть опущен, что соответствует 2D случаю. Используются
++     следующие формулы (2D случай): da/dx =
++     (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j), где a_i=da/di, a_j=da/dj
++     обозначает дифференцирование вдоль 1-ой и 2-ой размерности.
++     Похожие формулы используются и в 3D случае. Порядок аргументов
++     можно менять - например, если данные a(i,j) зависят от координат
++     {x(i,j), y(i,j)}, то обычная производная по `x' будет равна `diff
++     a x y', а обычная производная по `y' будет равна `diff a y x'.
++
++ -- Команда MGL: diff2 dat 'dir'
++     Выполняет двойное дифференцирование (как в операторе Лапласа) в
++     выбранном направлении(ях).
++
++ -- Команда MGL: sinfft dat 'dir'
++     Выполняет синус преобразование в выбранном направлении(ях). Синус
++     преобразование есть \sum a_i \sin(k i).
++   
++ -- Команда MGL: cosfft dat 'dir'
++     Выполняет косинус преобразование в выбранном направлении(ях).
++     Синус преобразование есть \sum a_i \cos(k i).
++   
++ -- Команда MGL: hankel dat 'dir'
++     Выполняет преобразование Ханкеля в выбранном направлении(ях).
++     Преобразование Ханкеля есть \sum a_i J_0(k i).
++
++ -- Команда MGL: swap dat 'dir'
++     Меняет местами левую и правую части данных в выбранном
++     направлении(ях). Полезно для отображения результата FFT.
++   
++ -- Команда MGL: roll dat 'dir' num
++     Сдвигает данные на NUM ячеек в выбранном направлении(ях).
++     Соответствует замене индекса на I->(I+NUM)%N.
++
++ -- Команда MGL: mirror dat 'dir'
++     Отражает данные в выбранном направлении(ях). Соответствует замене
++     индекса на I->N-I.
++
++ -- Команда MGL: sew dat ['dir'='xyz' `da=2*pi']
++     Удаляет скачки данных (например, скачки фазы после обратных
++     тригонометрических функций) с периодом DA в выбранном
++     направлении(ях).
++
++ -- Команда MGL: smooth data `type' ['dir'='xyz']
++     Сглаживает данные в выбранном направлении(ях) методом TYPE. Сейчас
++     поддерживаются 4 метода: `0' ничего не делает, `1' линейное
++     усреднение по 3 точкам, `2' линейное усреднение по 5 точкам, `3'
++     квадратичное усреднение по 5 точкам.
++
++ -- Команда MGL: envelop dat ['dir'='x']
++     Находит огибающую данных в выбранном направлении. Только одно
++     направление может быть выбрано за раз.
++
++ -- Команда MGL: normsl dat `v1 v2' ['dir'='z' `keep=on sym=off']
++     Нормирует данные срез-за-срезом в выбранном направлении DIR в
++     интервал [V1,V2]. Если SYM=`on', то используется симметричный
++     интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Если KEEP=`on', то
++     максимальное значение k-го среза ограничено величиной \sqrt{\sum
++     a_ij(k)/\sum a_ij(0)}.
++
++ -- Команда MGL: norm dat `v1 v2 [sym=off dim=0]'
++     Нормирует данные в интервал [V1,V2]. Если SYM=`on', то
++     используется симметричный интервал [-max(|v1|,|v2|),
++     max(|v1|,|v2|)]. Изменения применяются только к срезам >=DIM.
++
++
++File: mgl_ru.info,  Node: Operators,  Next: Program flow,  Prev: Change data,  Up: MGL interface
++
++1.23 Операторы
++=======================
++
++ -- Команда MGL: multo dat dat2
++     Поэлементно умножает массив DAT на DAT2.
++
++ -- Команда MGL: multo dat `val'
++     Умножает каждый элемент на число.
++
++ -- Команда MGL: divto dat dat2
++     Поэлементно делит массив DAT на DAT2.
++
++ -- Команда MGL: divto dat `val'
++     Делит каждый элемент на число.
++
++ -- Команда MGL: addto dat dat2
++     Поэлементно прибавляет DAT2 к массиву DAT.
++
++ -- Команда MGL: addto dat `val'
++     Прибавляет число к каждому элементу.
++
++ -- Команда MGL: subto dat dat2
++     Поэлементно вычитает DAT2 из массива DAT.
++
++ -- Команда MGL: subto dat `val'
++     Вычитает число из каждого элемента.
++
++
++File: mgl_ru.info,  Node: Program flow,  Next: Command options,  Prev: Operators,  Up: MGL interface
++
++1.24 Программирование
++=====================================
++
++Эти команды управляют порядком выполнения других команд (условия,
++циклы, подпрограммы), (пере-)определяют аргументы скрипта и пр.
++
++ -- Команда MGL: chdir 'path'
++     Переходит в папку PATH.
++
++ -- Команда MGL: define $N smth
++     Задает N-ый аргумент скрипта равным SMTH. Отмечу, что SMTH
++     используется как есть (с символами `'' если присутствуют).
++     Выполняется только подстановка других макроопределений $0...$9,
++     $a...$z. Здесь N это цифра (0...9) или буква (a...z).
++
++ -- Команда MGL: define name smth
++     Определяет константу (скаляр) с именем `name' и числовым значением
++     `smth'. Позднее она может быть использована как обычное число.
++   
++ -- Команда MGL: defchr $N smth
++     Задает N-ый аргумент скрипта равным символу с UTF кодом SMTH.
++     Здесь N это цифра (0...9) или буква (a...z).
++   
++ -- Команда MGL: defnum $N smth
++     Задает N-ый аргумент скрипта равным числовому значению SMTH. Здесь
++     N это цифра (0...9) или буква (a...z).
++   
++ -- Команда MGL: defpal $N smth
++     Задает N-ый аргумент скрипта равным символу палитры с индексом,
++     найденным из SMTH. Здесь N это цифра (0...9) или буква (a...z).
++
++ -- Команда MGL: call 'fname' [ARG1 ARG2 ... ARG9]
++     Переходит к выполнению (вызывает) подпрограммы FNAME (или внешнего
++     скрипта, если функция не была найдена). Опциональные аргументы
++     передаются в подпрограмму. См. также *note func::.
++   
++ -- Команда MGL: func 'fname' [narg=0]
++     Определяет подпрограмму с именем FNAME и задает число требуемых
++     аргументов. Аргументы будут помещены в параметры скрипта $1, $2,
++     ... $9. Отмечу, что выполнение основной программы должно быть
++     остановлено до начала определений подпрограмм. См. также *note
++     stop::,  *note return::.
++   
++ -- Команда MGL: return
++     Возвращается из подпрограммы.
++
++ -- Команда MGL: if dat 'cond'
++     Начинает блок команд, выполняемый если каждый элемент DAT
++     удовлетворяет условию COND.
++
++ -- Команда MGL: if `val'
++     Начинает блок команд, выполняемый если `val' не ноль.
++   
++ -- Команда MGL: elseif dat 'cond'
++     Начинает блок команд, выполняемый если предыдущий `if' или
++     `elseif' не был выполнен и каждый элемент DAT удовлетворяет
++     условию COND.
++
++ -- Команда MGL: elseif `val'
++     Начинает блок команд, выполняемый если предыдущий `if' или
++     `elseif' не был выполнен и `val' не ноль.
++   
++ -- Команда MGL: else
++     Начинает блок команд, выполняемый если предыдущий `if' или
++     `elseif' не был выполнен.
++   
++ -- Команда MGL: endif
++     Заканчивает определение блока `if/elseif/else'.
++
++ -- Команда MGL: for $N `v1 v2 [dv=1]'
++     Начинает блок команд, выполняемый в цикле с $N-ым аргументом
++     изменяющимся от V1 до V2 с шагом DV. Здесь N это цифра (0...9) или
++     буква (a...z).
++
++ -- Команда MGL: for $N dat
++     Начинает блок команд, выполняемый в цикле с $N-ым аргументом
++     пробегающим значения массива DAT. Здесь N это цифра (0...9) или
++     буква (a...z).
++   
++ -- Команда MGL: next
++     Заканчивает блок цикла `for'.
++
++ -- Команда MGL: once `val'
++     Определяет код (между `once on' и `once off') который будет
++     выполнен только один раз. Полезно для работы с большими данными в
++     программах типа UDAV.
++   
++ -- Команда MGL: stop
++     Останавливает выполнение скрипта.
++
++
++File: mgl_ru.info,  Node: Command options,  Next: Suffixes,  Prev: Program flow,  Up: MGL interface
++
++1.25 Опции команд
++============================
++
++Опции команд позволяют легко настроить вид отдельного графика не меняя
++глобальных настроек для все рисунка. Опции указываются после команды.
++Каждая опция отделяется от предыдущей символом `;'. Опции работают так,
++что запоминают текущие настройки рисунка, применяют собственные
++настройки, выполняют команду и возвращают глобальные настройки обратно.
++Поэтому использование опций для команд обработки данных или настройки
++графика бесполезно.
++
++   Наиболее часто используемые опции - `xrange, yrange, zrange',
++устанавливающие границы изменения осей координат (и тем самым
++автоматических массивов). Например, команда `plot y; xrange 0.1 0.9'
++построит кривую с x-координатой равно распределенной в интервале 0.1
++... 0.9, а не вдоль текущей оси x.
++
++   Полный список опций: 
++
++ -- Опция MGL: alpha `val'
++ -- Опция MGL: alphadef `val'
++     Задает величину прозрачности поверхности. Значение должно быть в
++     диапазоне [0, 1]. См. также *note alphadef::
++   
++ -- Опция MGL: ambient `val'
++     Задает яркость фонового освещения. Значение должно быть в
++     диапазоне [0, 1]. См. также *note ambient::
++   
++ -- Опция MGL: crange `val1 val2'
++     Задает границы цветовой шкалы. См. также *note crange::
++   
++ -- Опция MGL: xrange `val1 val2'
++     Задает границы изменения координаты x. См. также *note xrange::
++   
++ -- Опция MGL: yrange `val1 val2'
++     Задает границы изменения координаты y. См. также *note yrange::
++   
++ -- Опция MGL: zrange `val1 val2'
++     Задает границы изменения координаты z. См. также *note zrange::
++   
++ -- Опция MGL: cut `val'
++     Задает обрезание точек за пределами осей координат. См. также
++     *note cut::
++   
++ -- Опция MGL: fontsize `val'
++     Задает размер текста. См. также *note font::
++   
++ -- Опция MGL: marksize `val'
++     Задает размер маркеров. См. также *note marksize::
++   
++ -- Опция MGL: meshnum `val'
++     Задает ориентировочное число линий, стрелок, ячеек и пр. См. также
++     *note meshnum::
++   
++ -- Опция MGL: legend 'txt'
++     Добавляет строку 'txt' во внутренний массив записей легенды. Стиль
++     линии и маркера аргумента последней вызванной команды построения
++     *note 1D plotting::. См. также *note legend::
++
++
++File: mgl_ru.info,  Node: Suffixes,  Next: Utilities,  Prev: Command options,  Up: MGL interface
++
++1.26 Суффиксы переменных
++==========================================
++
++Суффиксы позволяют быстро получить числовую характеристику (размер,
++максимальное или минимальное значение, сумму элементов и т.д.) массива
++данных и использовать ее как число (скаляр) в аргументах. Суффиксы
++начинаются с точки `.' сразу после (без пробелов) имени переменной и
++временного массива. Например, `a.nx' даст размер массива A по оси х,
++`b(1).max' даст максимальное значение второй строки массива B,
++`(c(:,0)^2).sum' даст сумму квадратов элементов первой колонки массива
++C и т.д.
++
++   Полный список суффиксов:
++*nx, ny, nz*
++     Размер массива в направлении x, y, z соответственно.
++
++*max*
++     Максимальное значение массива.
++
++*min*
++     Минимальное значение массива.
++
++*sum*
++     Сумма элементов массива.
++
++*a*
++     Первый элемент массива (элемент с индексами 0,0,0).
++
++*fst*
++     Первое не нулевое значение массива.
++
++*lst*
++     Последнее не нулевое значение массива.
++
++*mx, my, mz*
++     Положение максимума в направлении x, y, z соответственно.
++
++*ax, ay, az, aa*
++     Положение центра масс в направлении x, y, z соответственно или
++     среднее значение массива.
++
++*wx, wy, wz, wa*
++     Ширина в направлении x, y, z соответственно или дисперсия
++     элементов массива.
++
++*sx, sy, sz, sa*
++     Асимметрия в направлении x, y, z соответственно или элементов
++     массива.
++
++*kx, ky, kz, ka*
++     Эксцесс в направлении x, y, z соответственно или элементов массива.
++
++
++File: mgl_ru.info,  Node: Utilities,  Prev: Suffixes,  Up: MGL interface
++
++1.27 Утилиты для MGL
++==============================
++
++MathGL содержит несколько программ для работы со скриптами MGL. Есть
++утилита для сохранения в растровое (`mgl2png', `mgl2gif') или векторное
++(`mgl2eps', `mgl2svg') изображения. Программа `mglview' показывает
++результат выполнения скрипта MGL и позволяет вращать и настраивать
++график. Также можно транслировать MGL скрипт в C++ файл с помощью
++программы `mgl2cpp'.
++
++   Все эти программы имеют схожий набор аргументов. Первым идет имя
++скрипта, а вторым идет имя выходного файлы (может быть опущено),
++последние аргументы - опции скрипта и программы. К опциям относятся
++параметры скрипта (это `$0, $1, ... $9') и настройки локали. Параметры
++скрипта имеют формат `-Nval', где N=0,1...9 - номер параметра, val -
++его значние. Например, опция `-1test' заменит `$1' на `test' в скрипте.
++Опция -Lval устанавливает локаль в значение val. Например, `-Lutf8'
++будет использовать UTF-8 в скрипте.
++
++   Также можно создавать анимированные изображения GIF или набор JPEG
++файлов с именами `frameNNNN.jpg' (где `NNNN' - номер кадра). Для этого
++в скрипте надо указать параметры анимации для каждого кадра (строками с
++коментариями `##a val' или опциями `-Aval') или в цикле (строкой с
++комментарием `##с v1 v2 [dv]' или опцию `-Cn1:n2'), которые будут
++подставлены в качестве параметра `$0' при последовательном вызове
++скрипта. Для сохранения кадров в JPEG просто добавьте команду `write
++''' в конце скрипта.
++
++
++File: mgl_ru.info,  Node: Examples,  Next: Samples,  Prev: MGL interface,  Up: Top
++
++2 MathGL examples
++*****************
++
++This chapter contain information about basic and advanced MathGL, hints
++and samples for all types of graphics. I recommend you read first 2
++sections one after another and at least look on "Hints" section. Also I
++recommend you to look at *note General concepts::. Sample code for some
++of these examples can be found in `http://mathgl.sf.net/pictures.html'
++and in *note Samples::.
++
++* Menu:
++
++* Basic usage::
++* Advanced usage::
++* Data handling::
++* Data plotting::
++* Hints::
++
++
++File: mgl_ru.info,  Node: Basic usage,  Next: Advanced usage,  Up: Examples
++
++2.1 Basic usage
++===============
++
++MGL script can be used by several manners. Each has positive and
++negative sides:
++   * _The using of MGL in UDAV._
++
++     Positive side is the possibility to view the plot at once and to
++     modify it, rotate, zoom or switch on transparency or lighting) by
++     hand or by mouse. Negative sides are: the need of X-terminal.
++
++   * _Direct writing to file in bitmap or vector format without
++     creation of graphical window._
++
++     Positive aspects are: batch processing of similar data set, for
++     example, a set of resulting data files for different calculation
++     parameters), running from the console program, including the
++     cluster calculation), fast and automated drawing, saving pictures
++     for further analysis, or demonstration). Negative sides are: the
++     usage of the external program for picture viewing. Also, the data
++     plotting is non-visual. So, you have to imagine the picture, view
++     angles, lighting and so on) before the plotting. I recommend to
++     use graphical window for determining the optimal parameters of
++     plotting on the base of some typical data set. And later use these
++     parameters for batch processing in console program.
++
++     In this case you can use a set of programs: `mgl2png', `mgl2gif',
++     `mgl2eps', `mgl2svg' or `mglview' for viewing.
++
++   The simplest script is
++box         # draw bounding box
++axis        # draw axis
++fplot 'x^3' # draw some function
++
++   Just type it in UDAV and press F5. Also you can save it in text file
++`test.mgl' and type in the console `mgl2png test.mgl' what produce file
++`test.mgl.png' with resulting picture.
++
++
++File: mgl_ru.info,  Node: Advanced usage,  Next: Data handling,  Prev: Basic usage,  Up: Examples
++
++2.2 Advanced usage
++==================
++
++Now I show several non-obvious features of MGL: several subplots in a
++single picture, curvilinear coordinates, text printing and so on.
++Generally you may miss this section at first reading, but I don't
++recommend it.
++
++* Menu:
++
++* Subplots::
++* Axis and grids::
++* Curvilinear coordinates::
++* Text printing example::
++
++
++File: mgl_ru.info,  Node: Subplots,  Next: Axis and grids,  Up: Advanced usage
++
++2.2.1 Subplots
++--------------
++
++Let me demonstrate possibilities of axes transformation. MathGL has the
++following functions: `SubPlot', `InPlot', `Aspect' and `Rotate', *note
++Transformation matrix::). The order of their calling is strictly
++determined. First, one changes the position of axes in image area,
++functions `SubPlot' and `InPlot'). After that one may rotate the plot,
++function `Rotate'). Finally, one may change aspects of axes, function
++`Aspect'). The following code illustrates the aforesaid it:
++subplot 2 2 0:box
++text -1 1.1 'Just box' 'L'
++inplot 0.2 0.5 0.7 1:box
++text 0 1.2 'Inplot example'
++
++subplot 2 2 1
++rotate 60 40:aspect 1 1 1
++box:text 1 1 1.5 'rotate only' 'R'
++
++subplot 2 2 2
++rotate 60 40:aspect 1 1 2
++box:text 0 0 2 'aspect and rotate'
++
++subplot 2 2 3
++rotate 60 40:aspect 1 2 2
++box:text 0 0 1.5 'Aspect in other direction'
++ Here I used function `text' for printing the text in arbitrary
++position of picture, *note Text printing::). Text coordinates and size
++are connected with axes. However, text coordinates may be everywhere,
++including the outside the bounding box. I shall show its features later
++in *Note Text printing example::.
++
++   Note that several commands can be placed in a string if they are
++separated by `:' symbol.
++
++ [image src="../png/sample1.png" ]
++
++Example of several subplots on the single picture.
++
++
++File: mgl_ru.info,  Node: Axis and grids,  Next: Curvilinear coordinates,  Prev: Subplots,  Up: Advanced usage
++
++2.2.2 Axis and grids
++--------------------
++
++MathGL library can draw not only the bounding box but also the axes,
++grids, labels and so on. The limits of axes and their origin (the point
++of intersection) are determined by function `axis'. Also you can use
++`xrange, yrange, zrange' functions (*note Axis settings::). Ticks on
++axis are specified by functions `xtick, ytick, ztick, ttick'. First
++argument the direction for each change will be applied. Second argument
++gives the step between ticks (if positive) or gives the number of ticks
++on the axis (if negative) or set to use logarithmic ticks (if zero).
++Third argument gives numbers of sub-ticks between ticks (default is
++zero). Last argument define the initial ticks position.
++
++   Function `Axis' draws axes. Its textual string shows in which
++directions the axis or axes will be drawn (by default `'xyz'', function
++draws axes in all directions). Function `Grid' draws grid
++perpendicularly to specified directions. Example of axes and grid
++drawing is:
++subplot 2 2 0
++xtick 0.4 3     # sets tick step to 0.5
++ytick 0.4 3     # and draws 3 subticks
++box             # should be after the ticks change
++axis 'xy': grid
++text 0 1.3 1 'axis and grid'
++
++xtick -5: ytick -5  # restore back
++subplot 2 2 1:rotate 60 40
++origin 0 0 0
++axis
++xlabel 'x' 1
++ylabel 'y' 1
++zlabel 'z' 1
++text 0 0 1.5 'axis and labels'
++
++subplot 2 2 2:rotate 60 40
++xtick 0.2: ytick 0.2: ztick 0.2 # too low step of ticks
++origin -1 -1 -1
++axis:grid
++text 0 0 1.5 'shift origin and add grid'
++text 0 0 1.2 '(note, too many ticks)'
++
++subplot 2 2 3:rotate 60 40
++xtick -6: ytick -6  # decrease the number of ticks
++axis 'yz'
++ylabel 'y axis'
++zlabel 'z axis'
++text 0 0 1.5 'remove x axis, and'
++text 0 0 1.2 'decrease number of ticks'
++
++   This example shows the importance of the correct choosing of the
++number of ticks on axis. If tick step is too small then its text may
++overlap and becomes unreadable. This code has the example of `Label'
++function. It draws label for axis in specified direction. The text
++position on axis is specified by third argument of `Label' function. If
++it is positive then then text is drawn near the axis maximum, if
++negative then the same takes place near the minimum of axis, if zero -
++then at the center of axis.
++
++ [image src="../png/sample2.png" ]
++
++Example of setting up axis range and axis ticks.
++
++
++File: mgl_ru.info,  Node: Curvilinear coordinates,  Next: Text printing example,  Prev: Axis and grids,  Up: Advanced usage
++
++2.2.3 Curvilinear coordinates
++-----------------------------
++
++Now let use curvilinear coordinates. In difference from other systems
++of plot creation, MathGL uses textual formulas for connection of the
++old (data) and new (output) coordinates. This allows one to plot in
++arbitrary coordinates. The following code plots the line Y=0, Z=0 in
++Cartesian, polar, parabolic and spiral coordinates:
++new x 50: new y 50: new z 50
++fill y 0.5 0.5: fill x -1 1 # creates data arrays
++origin -1 1 -1
++
++subplot 2 2 0:rotate 60 40
++plot x y z 'r2'
++axis: grid
++text 0 1.3 1 'cartesian'
++
++subplot 2 2 1:rotate 60 40
++axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
++plot x y z 'r2'
++axis: grid
++text 0 1.3 1 'cylindrical'
++
++subplot 2 2 2:rotate 60 40
++axis '2*y*x' 'y*y - x*x' ''
++plot x y z 'r2'
++axis: grid
++text 0 1.3 1 'parabolic'
++
++subplot 2 2 3:rotate 60 40
++axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
++plot x y z 'r2'
++axis: grid
++text 0 1.3 1 'spiral'
++
++ [image src="../png/sample3.png" ]
++
++Example of curvilinear coordinates
++
++
++File: mgl_ru.info,  Node: Text printing example,  Prev: Curvilinear coordinates,  Up: Advanced usage
++
++2.2.4 Text printing example
++---------------------------
++
++MathGL prints text by vector font. There are functions for manual
++specifying of text position (like `Puts') and for its automatic
++selection (like `Label', `legend' and so on). MathGL prints text always
++in specified position even if it lies outside the bounding box. The
++default size of font is specified by command FONTSIZE. However, the
++actual size of output string depends on position of axes (depends on
++functions `SubPlot', `InPlot'). The switching of the font style
++(italic, bold, wire and so on) can be done for the whole string (by
++function parameter) or inside the string. By default MathGL parses
++TeX-like commands for symbols and indexes (see *note Font styles::).
++Example of MathGL font drawing is:
++text 0 1 'Text can be in ASCII and in Unicode'
++text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
++text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
++text 0 -0.2 'Easy to \a{overline} or \u{underline}'
++text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
++text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
++
++ [image src="../png/sample4.png" ]
++
++Example of text printing with different font effects
++
++   Another example demonstrate the features of TeX formula parsing.
++text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}', 0, -4
++
++ [image src="../png/samplee.png" ]
++
++Example of TeX formula parsing
++
++
++File: mgl_ru.info,  Node: Data handling,  Next: Data plotting,  Prev: Advanced usage,  Up: Examples
++
++2.3 Data handling
++=================
++
++* Menu:
++
++* Array creation::
++* Data changing::
++
++
++File: mgl_ru.info,  Node: Array creation,  Next: Data changing,  Up: Data handling
++
++2.3.1 Array creation
++--------------------
++
++One can put numbers into the data instance by several ways. Let us do
++it for sinus function:
++   * one can create array by `list' command list a 0 0.04 0.16 0.36 0.64 1
++
++   * another way is to copy from "inline" array copy a [0,0.04,0.16,0.36,0.64,1]
++
++   * next way is to fill the data by textual formula with the help of
++     `modify' function new a 6
++     modify a 'x^2'
++
++   * or one may fill the array in some interval and modify it later new a 6
++     fill a 0 1
++     modify a 'u^2'
++
++   * or fill the array using current axis range new a 6
++     fill a '(x+1)^2/4'
++
++   * finally it can be loaded from file new s 6: modify s 'x^2'
++     save s 'sqr.dat'    # create file first
++     read a 'sqr.dat'    # load it
++
++   * at this one can read only part of data new s 6: modify s 'x^2'
++     save s 'sqr.dat'    # create file first
++     read a 'sqr.dat' 5  # load it
++
++   Creation of 2d- and 3d-arrays is mostly the same. One can use direct
++data filling by `list' command
++list a 11 12 13 | 21 22 23 | 31 32 33
++ or by inline arrays
++copy a [[11,12,13],[21,22,23],[31,32,33]]
++ Also data can be filled by formula
++new z 30 40
++fill z 'sin(pi*x)*cos(pi*y)'
++ or loaded from file.
++
++   The only non-obvious thing here is using multidimensional arrays in
++C/C++, i.e. arrays defined like `float dat[40][30];'. Since, formaly
++this arrays element `dat[i]' can address the memory in arbitrary place
++you should use the proper function to convert such arrays to `mglData'
++object. For C++ this is functions like `mglData::Set(float **dat, int
++N1, int N2'. For C this is functions like `mgl_data_set_float2(HMDT d,
++const float **dat, int N1, int N2'. At this, you should keep in mind
++that `nx=N2' and `ny=N1' after conversion.
++
++
++File: mgl_ru.info,  Node: Data changing,  Prev: Array creation,  Up: Data handling
++
++2.3.2 Data changing
++-------------------
++
++MathGL has functions for data processing: differentiating, integrating,
++smoothing and so on. Let us consider some examples. The simplest ones
++are integration and differentiation. The direction in which operation
++will be performed is specified by textual string, which may contain
++symbols `x', `y' or `z'. For example, the call of `diff a 'x'' will
++differentiate data along `x' direction; the call of `integrate a 'xy''
++perform the double integration of data along `x' and `y' directions;
++the call of `diff2 a 'xyz'' will apply 3d Laplace operator to data and
++so on. Example of this operations on 2d array a=x*y is presented in
++code:
++new a 30 40: modify a 'x*y'
++axis 0 0 0 1 1 1
++subplot 2 2 0:rotate 60 40
++surf a: box
++text 0.7 1 1.2 'a(x,y)'
++subplot 2 2 1:rotate 60 40
++diff a 'x': surf a: box
++text 0.7 1 1.2 'da/dx'
++subplot 2 2 2:rotate 60 40
++integrate a 'xy': surf a: box
++text 0.7 1 1.2 '\int da/dx dxdy'
++subplot 2 2 3:rotate 60 40
++diff2 a 'y': surf a: box
++text 0.7 1 1.2 '\int {d^2}a/dxdy dx'
++
++ [image src="../png/sample6.png" ]
++
++Example of data differentiation and integration
++
++   Data smoothing (function `Smooth') is more interesting and
++important. This function has 2 main arguments: type of smoothing and
++its direction. Now 4 methods are supported: `0' does nothing for
++delta=0 or approaches data to zero with the step delta, `1' linear
++averaging by 3 points, `2' linear averaging by 5 points, `3' quadratic
++averaging by 5 points. Let me demonstrate it for 1d case:
++new y0 30
++modify y0 '0.4*sin(2*pi*x)+0.3*cos(3*pi*x)-0.4*sin(4*pi*x)+0.2*rnd'
++copy y1 y0: smooth y1 1
++copy y2 y0: smooth y2 2
++copy y3 y0: smooth y3 3
++
++plot y0 'k': addlegend 'none' 'k'
++plot y1 'r': addlegend 'line 3' 'r'
++plot y2 'g': addlegend 'line 5' 'g'
++plot y3 'b': addlegend 'quad 5' 'b'
++legend: box
++
++ [image src="../png/sample7.png" ]
++
++Example of data smoothing
++
++   Finally one can create new data arrays on base of the existing one:
++extract slice, row or column of data (`SubData'), summarize along some
++of direction(s) (`Sum'), find distribution of data elements (`Hist').
++Note, that all these functions are not thread-safe because they use
++static internal variable for output array. In particular, the using of
++several of them in arguments of the same function will lead to
++unpredictable result.
++
++
++File: mgl_ru.info,  Node: Data plotting,  Next: Hints,  Prev: Data handling,  Up: Examples
++
++2.4 Data plotting
++=================
++
++Let me now show how to plot the data. MathGL generally has 2 types of
++plotting functions. Simple variant requires a single data array for
++plotting, other data (coordinates) are considered uniformly distributed
++in interval MIN*MAX. Second variant requires data arrays for all
++coordinates. It allows one to plot rather complex multivalent curves
++and surfaces (in case of parametric dependencies). Argument setting to
++default values allows one to plot data in standard form. Manual
++arguments setting gives possibility for fine tuning of colors,
++positions and view of graphics. Note, that the call of drawing function
++adds something to picture but does not clear the previous plots (as it
++does in Matlab). Another difference from Matlab is that all setup (like
++transparency, lightning, axis borders and so on) must be specified
++*before* plotting functions.
++
++* Menu:
++
++* Plots for 1D data::
++* Plots for 2D data::
++* Plots for 3D data::
++* Surface transparency::
++
++
++File: mgl_ru.info,  Node: Plots for 1D data,  Next: Plots for 2D data,  Up: Data plotting
++
++2.4.1 Plots for 1D data
++-----------------------
++
++Term "1D data" means that data depend on single index (parameter) like
++curve in parametric form {x(i),y(i),z(i)}, i=1...n. There are 5
++generally different types of data representations: simple line plot,
++line plot with filling under it, stairs plot, bar plot and vertical
++lines (*note 1D plotting::). Each type of plotting has similar
++interface. There are 3D version and two 2D versions. One of last
++requires single array. The parameters of line and marks (*note Line
++styles::) are specified by the string argument. If the string parameter
++is `NULL' then solid line with color from palette is used.
++
++   Below I shall show the features of 1D plotting on base of `plot'
++function (*note 1D plotting::). Let us start from sinus plot:
++new y0 50: modify y0 'sin(pi*(2*x-1))'
++subplot 2 2 0
++plot y0: box
++ Style of line is not specified in `plot' function. So MathGL uses the
++solid line with first color of palette (this is blue). Next subplot
++shows array Y1 with 2 rows:
++subplot 2 2 1
++new y1 50 2
++modify y1 'sin(pi*2*x-pi)'
++modify y1 'cos(pi*2*x-pi)/2' 1
++plot y1: box
++ As previously I did not specify the style of lines. As a result,
++MathGL again uses solid line with next colors in palette (there are
++green and red). Now let us plot a circle on the same subplot. The
++circle is parametric curve x=cos(\pi t), y=sin(\pi t). I will set the
++color of the circle (dark yellow, `Y') and put marks `+' at point
++position:
++new x 50: modify x 'cos(pi*2*x-pi)'
++plot x y0 'Y+'
++ Note that solid line is used because I did not specify the type of
++line. The same picture can be achieved by `Plot2' function. Let us draw
++ellipse by orange dash line:
++plot y1(:,0) y(:,1) 'q|'
++
++   Drawing in 3D space is mostly the same. Let us draw spiral with
++default line style. Now its color is 4-th color from palette (this is
++cyan):
++subplot 2 2 2:rotate 60 40
++new z 50: modify z '2*x-1'
++plot x y0 z 'g':box
++ Function `Plot3' does 3D curve plot but for single array. Use it to
++put circle marks on the previous plot:
++new y2 10 3
++modify y2 'cos(pi*(2*x-1-y))'
++modify y2 '2*x-1' 2
++plot y2(:,0) y2(:,1) y2(:,2) 'bo '
++ Note that line style is empty ` ' here. Usage of other 1D plotting
++functions looks similar:
++subplot 2 2 3:rotate 60 40
++bars x y0 z 'r':box
++
++ [image src="../png/sample8.png" ]
++
++Example of 1D data plot
++
++
++File: mgl_ru.info,  Node: Plots for 2D data,  Next: Plots for 3D data,  Prev: Plots for 1D data,  Up: Data plotting
++
++2.4.2 Plots for 2D data
++-----------------------
++
++Surfaces `Surf' and other 2D plots (*note 2D plotting::) are drown the
++same simpler as 1D one. The difference is that the string parameter
++specifies not by line style but by the color scheme of the plot (*note
++Color scheme::). Here I draw attention on 4 most interesting color
++schemes. There is gray scheme where color is changed from black to
++white (string `kw') or from white to black (string `wk'). Another
++scheme is useful for accentuation of negative (by blue color) and
++positive (by red color) regions on plot (string `'BbwrR''). Last one is
++the popular "jet" scheme (string `'BbcyrR'').
++
++   Now I shall show the example of a surface drawing. At first let us
++switch lightning on
++light on
++ and draw the surface, considering coordinates x,y to be uniformly
++distributed in interval MIN*MAX
++new a0 50 40
++modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
++subplot 2 2 0:rotate 60 40
++surf a0: box
++ Color scheme was not specified. So previous color scheme is used. In
++this case it is default color scheme ("jet") for the first plot. Next
++example is a sphere. The sphere is parametrically specified surface:
++new x 50 40: new y 50 40: new z 50 40
++modify x '0.8*sin(2*pi*x)*sin(pi*y)'
++modify y '0.8*cos(2*pi*x)*sin(pi*y)'
++modify z '0.8*cos(pi*y)'
++subplot 2 2 1:rotate 60 40
++surf x y z 'bbwrr': box
++ I set color scheme to `'BbwrR'' that corresponds to red top and blue
++bottom of the sphere.
++
++   Surfaces will be plotted for each of slice of the data if NZ>1. Next
++example draws surfaces for data arrays with NZ=3:
++new a1 50 40 3
++modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
++modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
++modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
++subplot 2 2 2:rotate 60 40
++alpha on
++surf a1: box
++ Note, that it may entail a confusion. However, if one will use density
++plot then the picture will look better:
++subplot 2 2 3: rotate 60 40
++dens a1: box
++ Note, that the previous color scheme is used in last plots because
++there are no direct specification of the one.
++
++ [image src="../png/sample9.png" ]
++
++Example of surface plot for 2D data
++
++   Drawing of other 2D plots is analogous. The only peculiarity is the
++usage of flag `#'. By default this flag switches on the drawing of a
++grid on plot (`grid' or `mesh' for plots in plain or in volume).
++However, for isosurfaces (including surfaces of rotation `axial') this
++flag switches the  face drawing off. Figure becomes wired. The
++following code gives example of flag `#' using (compare with normal
++function drawing as in its description):
++alpha on: light on: light 0 0 0 1
++new a 30 20
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++
++subplot 2 2 0: rotate 40 60
++surf a 'bbcyrr#': box
++subplot 2 2 1: rotate 40 60
++dens a 'bbcyrr#': box
++subplot 2 2 2: rotate 40 60
++cont a 'bbcyrr#': box
++subplot 2 2 3: rotate 40 60
++axial a 'bbcyrr#': box
++
++ [image src="../png/samplea.png" ]
++
++Example of 2D data plot with color scheme contained `#' symbol
++
++
++File: mgl_ru.info,  Node: Plots for 3D data,  Next: Surface transparency,  Prev: Plots for 2D data,  Up: Data plotting
++
++2.4.3 Plots for 3D data
++-----------------------
++
++Drawing procedures for 3D plot looks similarly to 1D and 2D plots
++described above. There are 3 general types of 3D plots (*note 3D
++plotting::): (i) plots on slices or on projections, (ii) isosurfaces,
++(iii) cloud-like plots. Plots on slice are clear enough - one specifies
++a slice (as its index or as coordinate value) and MathGL draws contour
++lines or density plot on slice plane. Isosurface gives more
++information. Isosurface is 3D analogue of the contour line `cont'. It
++shows the region where data array values exceed specified isosurface
++level. Plot becomes more informative if one adds transparency,
++lightning or sets color scheme depending on coordinates. Generalization
++of isosurface is the cloud-like plot. For this plot the darker color
++and less transparent regions correspond to higher values of data.
++Contrary, the regions with low values are transparent. For plotting of
++the phase of fields (or beams or pulses) one can use isosurface which
++transparency depends on the other data array (see function `surf3a').
++As example of 3D data plots let us draw the Gaussian beam diffraction
++in space. Beam propagates along X axis:
++alpha on: light on
++light 0 0 0 1
++new a 30 30 30: new b 30 30 30
++modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
++modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
++caxis 0 1
++
++subplot 2 2 0: rotate 40 60
++surf3 a 'wgk': box
++subplot 2 2 1: rotate 40 60
++densa a: box: axis
++subplot 2 2 2: rotate 40 60
++cloud a: box
++subplot 2 2 3: rotate 40 60
++surf3a b a 'q': box
++
++ [image src="../png/sampleb.png" ]
++
++Example of Gaussian beam diffraction (3D data)
++
++
++File: mgl_ru.info,  Node: Surface transparency,  Prev: Plots for 3D data,  Up: Data plotting
++
++2.4.4 Surface transparency
++--------------------------
++
++MathGL library has advanced features for setting and handling the
++surface transparency. The simplest way to add transparency is the using
++of function `Alpha'. As a result, all further surfaces (and
++isosurfaces, density plots and so on) become transparent. However,
++their  look can be additionally improved.
++
++   First, the selected surface will be non-transparent if one sets the
++flag `transparent' before the surface drawing and sets it off after the
++drawing.
++
++   Second, the value of transparency can be different from surface to
++surface. To do it just change the value of `alphadef' before the
++drawing of the selected surface. If its value is close to 0 then the
++surface becomes more and more transparent. Contrary, if its value is
++close to 1 then the surface becomes practically non-transparent. This
++is some analogue of `transparent on'.
++
++   Third feature is the changing of the way how the light goes through
++overlapped surfaces. The variable `transptype' defines it. By default
++the usual transparency is used (`transptype 0') - surfaces below is
++less visible than the upper ones. A "glass-like" transparency
++(`transptype 1') has a different look when the surface just decreases
++the background light (the surfaces are commutable in this case).
++
++   A "neon-like" transparency (`transptype 2') has more interesting
++look. In this case a surface is the light source (like a lamp on the
++dark background) and just adds some intensity to the color. At this,
++the library sets automatically the black color for the background and
++changes the default line color to white.
++
++   As example I shall show the variant of plot from *note Plots for 2D
++data:: (grid drawing is disabled) for different types of transparency.
++ [image src="../png/type0.png" ]
++
++Example of `TranspType=0'.
++
++ [image src="../png/type1.png" ]
++
++Example of `TranspType=1'.
++
++ [image src="../png/type2.png" ]
++
++Example of `TranspType=2'.
++
++
++File: mgl_ru.info,  Node: Hints,  Prev: Data plotting,  Up: Examples
++
++2.5 Hints
++=========
++
++In this section I have included some small hints and advices for the
++improving of the quality of plots and for the demonstration of some
++non-trivial features of MathGL library. In contrast to previous
++examples I showed mostly the idea but not the whole drawing function.
++More examples with the source code can be find at
++`http://mathgl.sf.net/' or in section *note Samples::.
++
++* Menu:
++
++* ``Compound'' graphics::
++* Two axes in one plot::
++* Titles for the plot::
++* Changing of the color range::
++* Management of a point cutting::
++* Vector field visualization::
++* Several light sources::
++* CutMin and CutMax features::
++* Mapping visualization::
++* Log-scaled plot::
++* Nonlinear fitting hints::
++* PDE solving hints::
++* Stereo image::
++
++
++File: mgl_ru.info,  Node: ``Compound'' graphics,  Next: Two axes in one plot,  Up: Hints
++
++2.5.1 "Compound" graphics
++-------------------------
++
++As I noted above, MathGL functions (except the special one, like `clf')
++do  not erase the previous plotting but just add the new one. It allows
++one to draw "compound" plots easily. For example, popular Matlab
++command `surfc' can be emulated in MathGL by 2 calls:
++surf a
++cont a 0 7 -1   # draw contours at z = -1
++ Here A is 2-dimensional data for the plotting, `-1' is the value of
++z-coordinate at which the contour should be plotted (at the bottom in
++this example). Analogously, one can draw density plot instead of
++contour lines and so on.
++
++   Another nice plot is contour lines plotted directly on the surface:
++light on        # switch on light for the surface
++surf a 'bbcyrr' # select 'jet' colormap for the surface
++cont a 'y'      # and yellow color for contours
++ The possible difficulties arise in black&white case, when the color of
++the surface can be close to the color of a contour line. In that case I
++may suggest the following code:
++light on        # switch on light for the surface
++surf a 'kw'     # select 'gray' colormap for the surface
++caxis -1 0      # first draw for darker surface colors
++conta 'w'       # white contours
++caxis 0 1       # now draw for brighter surface colors
++cont a 'k'      # black contours
++ The idea is to divide the color range on 2 parts (dark and bright) and
++to select the contrasting color for contour lines for each of part.
++
++   Similarly, one can plot flow thread over density plot of vector
++field amplitude (this is another amusing plot from Matlab) and so on.
++The list of compound graphics can be prolonged but I hope that the
++general idea is clear.
++
++
++File: mgl_ru.info,  Node: Two axes in one plot,  Next: Titles for the plot,  Prev: ``Compound'' graphics,  Up: Hints
++
++2.5.2 Two axes in one plot
++--------------------------
++
++Developing the previous hint one can make a plot with 2 or more axes.
++The idea is that the change of settings does not influence on the
++already drawn graphics. So, for 2-axes plot let us set the first axis
++and draw everything concerning it. Then let us setup the second axis
++and draw things for the second axis. The corresponding code is (*note
++2-axes sample::):
++# set up first axis
++axis -1 -1 1 1: origin -1 -1
++axis:fplot 'sin(pi*x)'      # draw something in first axis
++# set up second axis
++axis 0 0 1 1: origin 1 1
++axis: fplot 'cos(4*pi*x^2)' # draw something in second axis
++ Note, that the first and the second axes look better if being placed
++in different corners. In the code presented above the first axis is
++placed in the left-bottom corner, and the second one is placed in the
++right-top corner.
++
++
++File: mgl_ru.info,  Node: Titles for the plot,  Next: Changing of the color range,  Prev: Two axes in one plot,  Up: Hints
++
++2.5.3 Titles for the plot
++-------------------------
++
++The printing of nice titles for the plot is not so trivial task in
++general case. The problem is that the rotation and aspect change lead
++to different looks for titles of different subplots. So, the resulting
++look is not so good as it could be. The solution is simple - to print
++titles exactly after `subplot' call and before any rotation, aspect
++change and so on! Analogously, the title for the whole picture looks
++better if it is printed first (before any `subplot' calls).
++Alternatively you can use function `title' for plotting title for the
++picture at any time.
++
++
++File: mgl_ru.info,  Node: Changing of the color range,  Next: Management of a point cutting,  Prev: Titles for the plot,  Up: Hints
++
++2.5.4 Changing of the color range
++---------------------------------
++
++By default (for the user comfort), the color range is set equal to
++z-range of the plot. However, there are different ranges. So, one can
++obtain amusing plot by the change of color range manually. For example,
++there are plots with one-color bottom (or top) or practically bi-color
++picture and so on.
++
++   For example, compare 2 surfaces:
++subplot 2 1 0
++surf a          # usual coloring range
++subplot 2 1 1
++caxis 0 1
++surf a          # bottom of the surface have one-colour filling
++
++
++File: mgl_ru.info,  Node: Management of a point cutting,  Next: Vector field visualization,  Prev: Changing of the color range,  Up: Hints
++
++2.5.5 Management of a point cutting
++-----------------------------------
++
++Sometimes an experimental or numerical surface has outstanding points.
++Visualization of such surface will lead to the hole(s) in place of such
++points. The standard method of "fighting" - to change data values - is
++not always good and is not so convenient. MathGL library has another
++method - to set variable `cut off'. As a consequence, all outstanding
++points will be projected on the bounding box.
++
++   Such method is good not only for outstanding points but also for the
++case when one need to plane the bottom or the top of the plot. Exactly
++such case is demonstrated in the code:
++new a 20 30     # create some data
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++# set lower border above the data minimal value
++axis -1 -1 0 1 1 1:rotate 40 60
++cut off         # set off cutting flag
++surf a          # and draw the surface
++ It is an interesting result, is not it?
++
++
++File: mgl_ru.info,  Node: Vector field visualization,  Next: Several light sources,  Prev: Management of a point cutting,  Up: Hints
++
++2.5.6 Vector field visualization
++--------------------------------
++
++Vector field visualization (especially in 3d case `vect3' or `vectc')
++may look tangly - there are too many overlapping lines. I may suggest 2
++ways to solve this problem. The first one is to change `meshnum' for
++decreasing the number of hachures. The second way is to use the flow
++thread chart `Flow'. Unfortunately, I don't know any other methods to
++visualize 3d vector field. If you know any, e-mail me and I shall add
++it to MatGL.
++
++
++File: mgl_ru.info,  Node: Several light sources,  Next: CutMin and CutMax features,  Prev: Vector field visualization,  Up: Hints
++
++2.5.7 Several light sources
++---------------------------
++
++In contrast to the most of other programs, MathGL supports several (up
++to 10) light sources. Moreover, the color each of them can be
++different: white (this is usual), yellow, red, cyan, green and so on.
++The use of several light sources may be interesting for the
++highlighting of some peculiarities of the plot or just to make an
++amusing picture. Note, each light source can be switched on/off
++individually (*note Several light sample::).
++
++
++File: mgl_ru.info,  Node: CutMin and CutMax features,  Next: Mapping visualization,  Prev: Several light sources,  Up: Hints
++
++2.5.8 CutMin and CutMax features
++--------------------------------
++
++MathGL library has a feature for cutting of points in some region
++CUTMIN*CUTMAX. Such an excision can be used to improve the look of the
++graphics. Moreover, this cutting may help to show an internal structure
++of an object (like `isocaps' plot in Matlab). For example, let us use
++the standard 3D data array and show its interior (*note CutMinMax
++sample::).
++
++new c 61 51 40      # create the data
++new v 10: fill v -0.5 1
++modify c '(-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1))'
++cut 0 -1 -1 1 0 1.1
++rotate 40 60:       surf3 c -0.5 'bbcyrr'
++contf3 v c 'x' -1 'bbcyrr': contf3 v c 'y' -1 'bbcyrr'
++contf3 v c 'z' 0 'bbcyrr':  contf3 v c 'z' 39 'bbcyrr'
++
++   One can also exclude points from arbitrary area in space. This area
++defined by textual formula `cut' (*note Cutting::). The algorithm is
++the same as shown for "rectangular cutting".
++
++
++File: mgl_ru.info,  Node: Mapping visualization,  Next: Log-scaled plot,  Prev: CutMin and CutMax features,  Up: Hints
++
++2.5.9 Mapping visualization
++---------------------------
++
++Sometime ago I worked with mapping and have a question about its
++visualization. Let me remember you that mapping is some transformation
++rule for one set of number to another one. The 1d mapping is just an
++ordinary function - it takes a number and transforms it to another one.
++The 2d mapping (which I used) is a pair of functions which take 2
++numbers and transform them to another 2 ones. Except general plots
++(like `surfc', `surfa') there is a special plot - Arnold diagram. It
++shows the area which is the result of mapping of some initial area
++(usually square).
++
++   I tried to make such plot in `map'. It shows the set of points or
++set of faces, which final position is the result of mapping. At this,
++the color gives information about their initial position and the height
++describes Jacobian value of the transformation. Unfortunately, it looks
++good only for the simplest mapping but for the real multivalent
++quasi-chaotic mapping it produces a confusion. So, use it if you like
++:).
++
++
++File: mgl_ru.info,  Node: Log-scaled plot,  Next: Nonlinear fitting hints,  Prev: Mapping visualization,  Up: Hints
++
++2.5.10 Log-scaled plot
++----------------------
++
++Log-scaled plot can be drawn by 2 steps. First, one should change the
++scale of axis by call `axis 'lg(x)' 'lg(y)'' (in this example, x- and
++y-axis will be log-scaled). Second, one should set logarithmic scale
++for axis ticks by changing variables: `xtick 0: yticks 0'. Finally, one
++should check (or change) the axis ranges and origin so that their
++values to be positive. For example of log-log plot *note Log-log
++sample::.
++
++
++File: mgl_ru.info,  Node: Nonlinear fitting hints,  Next: PDE solving hints,  Prev: Log-scaled plot,  Up: Hints
++
++2.5.11 Nonlinear fitting hints
++------------------------------
++
++Nonlinear fitting is rather simple. All that you need is the data to
++fit, the approximation formula and the list of coefficients to fit
++(better with its initial guess values). Let me demonstrate it on the
++following simple example (*note Fitting sample::). First, let us use
++sin function with some random noise:
++new rnd 100: new idl 50 # data to be fitted and ideal data
++modify rnd '0.4*rnd+0.1+sin(4*pi*x)'
++modify idl '0.3+sin(4*pi*x)'
++ and plot it to see that data we will fit
++axis -1 -2 1 2
++plot rnd '. ':plot idl 'b'
++box:text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
++
++   The next step is the fitting itself. For that let me specify an
++initial values INI for coefficients `abc' and do the fitting for
++approximation formula `a+b*sin(c*x)'
++new res     # The data for found formula
++fit res rnd 'a+b*sin(c*x)' 'abc' [1, 1, 3]
++ Now display it
++plot res 'r'
++text -1 -1.3 'fitted:' 'L:r' -1
++putsfit 0 -1.8 'y = ' 'C:r' -1
++
++   NOTE! the fitting results may have strong dependence on initial
++values for coefficients due to algorithm features. The problem is that
++in general case there are several local 'optimums' for coefficients and
++the program returns only first found one! There are no guaranties that
++it will be the best. Try for example to set `ini = [0, 0, 0]' in the
++code above.
++
++
++File: mgl_ru.info,  Node: PDE solving hints,  Next: Stereo image,  Prev: Nonlinear fitting hints,  Up: Hints
++
++2.5.12 PDE solving hints
++------------------------
++
++Solving of Partial Differential Equations (PDE, including beam tracing)
++and ray tracing (or finding particle trajectory) are more or less
++common task. So, MathGL have several functions for that. There are
++`ray' for ray tracing, `pde' for PDE solving, `qo2d' for beam tracing
++in 2D case. Note, that these functions take "Hamiltonian" or equations
++as string values. And I don't plan now to allow one to use user-defined
++functions. There are 2 reasons: the complexity of corresponding
++interface; and the basic nature of used methods which are good for
++samples but may not good for serious scientific calculations.
++
++   The ray tracing can be done by `ray' function. Really ray tracing
++equation is Hamiltonian equation for 3D space. So, the function can be
++also used for finding a particle trajectory (i.e. solve Hamiltonian
++ODE) for 1D, 2D or 3D cases. The function have a set of arguments.
++First of all, it is Hamiltonian which defined the media (or the
++equation) you are planning to use. The Hamiltonian is defined by string
++which may depend on coordinates `x', `y', `z', time `t' (for particle
++dynamics) and momentums `p'=p_x, `q'=p_y, `v'=p_z. Next, you have to
++define the initial conditions for coordinates and momentums at `t'=0
++and set the integrations step (default is 0.1) and its duration
++(default is 10). The Runge-Kutta method of 4-th order is used for
++integration.
++new re 128:new im 128
++ray r 'p^2+q^2-x-1' -0.7 -1 0 0 0.5 0
++plot r(0) r(1)
++ This example calculate the reflection from linear layer (media with
++Hamiltonian `p^2+q^2-x-1'=p_x^2+p_y^2-x-1). This is parabolic curve.
++The resulting array have 7 columns which contain data for
++{x,y,z,p,q,v,t}.
++
++   The solution of PDE is a bit more complicated. As previous you have
++to specify the equation as pseudo-differential operator \hat H(x,
++\nabla) which is called sometime as "Hamiltonian" (for example, in beam
++tracing). As previously, it is defined by string which may depend on
++coordinates `x', `y', `z' (but not time!), momentums `p'=(d/dx)/i k_0,
++`q'=(d/dy)/i k_0 and field amplitude `u'=|u|. The evolutionary
++coordinate is `z' in all cases. So that, the equation look like du/dz =
++ik_0 H(x,y,\hat p, \hat q, |u|)[u]. Dependence on field amplitude
++`u'=|u| allows one to solve nonlinear problems too. For example, for
++nonlinear Shrodinger equation you may set `ham='p^2 + q^2 - u^2''. Also
++you may specify imaginary part for wave absorption, like `ham = 'p^2 +
++i*x*(x>0)'', but only if dependence on variable `i' is linear (i.e. H =
++Hre+i*Him).
++
++   Next step is specifing the initial conditions at `z'=`Min.z'. The
++function need 2 arrays for real and for imaginary part. Note, that
++coordinates x,y,z are supposed to be in specified range [Min, Max]. So,
++the data arrays should have corresponding scales. Finally, you may set
++the integration step and paramter k0=k_0. Also keep in mind, that
++internally the 2 times large box is used (for suppressing numerical
++reflection from boundaries) and the equation should well defined even
++in this extended range.
++
++   Final comment is concerning the possible form of pseudo-differential
++operator H. At this moment, simplified form of operator H is supported
++- all "mixed" terms (like `x*p'->x*d/dx) are excluded. For example, in
++2D case this operator is effectively H = f(p,z) + g(x,z,u). However
++commutable combinations (like `x*q'->x*d/dy) are allowed for 3D case.
++
++   So, for example let solve the equation for beam deflected from
++linear layer and absorbed later. The operator will have the form
++`'p^2+q^2-x-1+i*0.5*(z+x)*(z>-x)'' that correspond to equation ik_0
++\partial_z u + \Delta u + x \cdot u + i (x+z)/2 \cdot u = 0. This is
++typical equation for Electron Cyclotron (EC) absorption in magnetized
++plasmas. For initial conditions let me select the beam with plane phase
++front exp(-48*(x+0.7)^2). The corresponding code looks like this (*note
++PDE sample::):
++new re 128: new im 128
++fill re 'exp(-48*(x+0.7)^2)'
++pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z>-x)' re im 0.01, 30
++transpose a 'yxz'
++caxis 0 1
++dens a 'wyrRk'
++
++   The last example is example of beam tracing. Beam tracing equation
++is special kind of PDE equation written in coordinates accompanied to a
++ray. Generally this is the same parameters and limitation as for PDE
++solving but the coordinates are defined by the ray and by parameter of
++grid width W in direction transverse the ray. So, you don't need to
++specify the range of coordinates. *BUT* there is limitation. The
++accompanied coordinates are well defined only for smooth enough rays,
++i.e. then the ray curvature K (which is defined as 1/K^2 = (|\ddot r|^2
++|\dot r|^2 - (\ddot r, \dot r)^2)/|\dot r|^6) is much large then the
++grid width: K>>w. So, you may receive incorrect results if this
++condition will be broken.
++
++   You may use following code for obtaining the same solution as in
++previous example:
++new re 128: new im 128
++define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y>-x)'
++ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
++# now start beam tracing
++fill re 'exp(-48*x^2)'
++new xx: new yy
++qo2d a $1 re im r 1 30 xx yy
++caxis 0 1
++dens xx yy a 'wyrRk'
++
++
++File: mgl_ru.info,  Node: Stereo image,  Prev: PDE solving hints,  Up: Hints
++
++2.5.13 Stereo image
++-------------------
++
++One can easily create stereo image in MathGL. Stereo image can be
++produced by making two subplots with slightly different rotation
++angles. The corresponding code looks like this (*note Stereo image
++sample::):
++subplot 2 1 0   # left image
++rotate 40 60+3
++# draw something here
++subplot 2 1 1   # right image
++rotate 40 60-3
++# draw the same here
++
++
++File: mgl_ru.info,  Node: Samples,  Next: Copying This Manual,  Prev: Examples,  Up: Top
++
++3 Примеры использования MathGL
++**************************************************
++
++Эта глава содержит множество примеров кода для всех типов графиков,
++наиболее важных возможностей библиотеки и советов. Аналогичные примеры
++(с картинками) можно найти на `http://mathgl.sf.net/pictures.html'.
++
++* Menu:
++
++* 1D plotting samples::
++* 2D plotting samples::
++* 3D plotting samples::
++* Dual plotting samples::
++* Basic features::
++* Additional features::
++* Advanced features::
++
++
++File: mgl_ru.info,  Node: 1D plotting samples,  Next: 2D plotting samples,  Up: Samples
++
++3.1 Примеры 1D графиков
++======================================
++
++* Menu:
++
++* Plot sample::
++* Radar sample::
++* Tens sample::
++* Area sample::
++* Area gradient sample::
++* Bars sample::
++* Bars 2 colors sample::
++* Bars above sample::
++* Bars fall sample::
++* Barh sample::
++* Step sample::
++* Stem sample::
++* Region sample::
++* Region gradient sample::
++* Error sample::
++* BoxPlot sample::
++* Mark sample::
++* TextMark sample::
++* Tube sample::
++* Text sample::
++* Torus sample::
++* Chart sample::
++* Pie chart sample::
++* Ring chart sample::
++
++
++File: mgl_ru.info,  Node: Plot sample,  Next: Radar sample,  Up: 1D plotting samples
++
++3.1.1 Plot - пример использования
++----------------------------------------------------
++
++ [image src="../png/plot.png" ]
++
++new y 50 3
++modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
++modify y 'sin(2*pi*x)' 1
++modify y 'cos(2*pi*x)' 2
++box
++plot y
++
++
++File: mgl_ru.info,  Node: Radar sample,  Next: Tens sample,  Prev: Plot sample,  Up: 1D plotting samples
++
++3.1.2 Radar - пример использования
++-----------------------------------------------------
++
++ [image src="../png/radar.png" ]
++
++new y 10 3
++modify y '0.4*sin(pi*(2*x+y/2))+0.1*rnd'
++radar y '#'
++
++
++File: mgl_ru.info,  Node: Tens sample,  Next: Area sample,  Prev: Radar sample,  Up: 1D plotting samples
++
++3.1.3 Tens - пример использования
++----------------------------------------------------
++
++ [image src="../png/tens.png" ]
++
++new y 50
++new c 50
++modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
++modify c 'sin(2*pi*x)'
++box
++tens y c
++
++
++File: mgl_ru.info,  Node: Area sample,  Next: Area gradient sample,  Prev: Tens sample,  Up: 1D plotting samples
++
++3.1.4 Area - пример использования
++----------------------------------------------------
++
++ [image src="../png/area.png" ]
++
++new y 50 3
++modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
++modify y 'sin(2*pi*x)' 1
++modify y 'cos(2*pi*x)' 2
++origin 0 0
++box
++area y
++
++
++File: mgl_ru.info,  Node: Area gradient sample,  Next: Bars sample,  Prev: Tens sample,  Up: 1D plotting samples
++
++3.1.5 Area с градиентной заливкой - пример использования
++-----------------------------------------------------------------------------------------------
++
++ [image src="../png/area_2.png" ]
++
++new y 50 3
++modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
++modify y 'sin(2*pi*x)' 1
++modify y 'cos(2*pi*x)' 2
++origin 0 0
++box
++area y 'cbgGyr'
++
++
++File: mgl_ru.info,  Node: Bars sample,  Next: Bars 2 colors sample,  Prev: Area gradient sample,  Up: 1D plotting samples
++
++3.1.6 Bars - пример использования
++----------------------------------------------------
++
++ [image src="../png/bars.png" ]
++
++new y 10 3
++modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
++origin 0 0
++box
++bars y
++
++
++File: mgl_ru.info,  Node: Bars 2 colors sample,  Next: Bars above sample,  Prev: Bars sample,  Up: 1D plotting samples
++
++3.1.7 Bars (2 цвета) - пример использования
++-------------------------------------------------------------------
++
++ [image src="../png/bars_2.png" ]
++
++new y 10 3
++modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
++origin 0 0
++box
++bars y 'cbgGyr'
++
++
++File: mgl_ru.info,  Node: Bars above sample,  Next: Bars fall sample,  Prev: Bars 2 colors sample,  Up: 1D plotting samples
++
++3.1.8 Bars (один над другим) - пример использования
++-----------------------------------------------------------------------------------
++
++ [image src="../png/bars_a.png" ]
++
++new y 10 3
++modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
++origin 0 0
++box
++bars y 'a'
++
++
++File: mgl_ru.info,  Node: Bars fall sample,  Next: Bars above sample,  Prev: Bars above sample,  Up: 1D plotting samples
++
++3.1.9 Bars "водопад" - пример использования
++---------------------------------------------------------------------
++
++ [image src="../png/bars_f.png" ]
++
++new y 10 3
++modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
++origin 0 0
++box
++bars y 'f'
++
++
++File: mgl_ru.info,  Node: Barh sample,  Next: Step sample,  Prev: Bars fall sample,  Up: 1D plotting samples
++
++3.1.10 Barh - пример использования
++-----------------------------------------------------
++
++ [image src="../png/barh.png" ]
++
++new y 10 3
++modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
++origin 0 0
++box
++barh y
++
++
++File: mgl_ru.info,  Node: Step sample,  Next: Stem sample,  Prev: Barh sample,  Up: 1D plotting samples
++
++3.1.11 Step - пример использования
++-----------------------------------------------------
++
++ [image src="../png/step.png" ]
++
++new y 50 3
++modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
++modify y 'sin(2*pi*x)' 1
++modify y 'cos(2*pi*x)' 2
++box
++step y
++
++
++File: mgl_ru.info,  Node: Stem sample,  Next: Region sample,  Prev: Step sample,  Up: 1D plotting samples
++
++3.1.12 Stem - пример использования
++-----------------------------------------------------
++
++ [image src="../png/stem.png" ]
++
++new y 50 3
++modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
++modify y 'sin(2*pi*x)' 1
++modify y 'cos(2*pi*x)' 2
++origin 0 0
++box
++stem y 'o'
++
++
++File: mgl_ru.info,  Node: Region sample,  Next: Region gradient sample,  Prev: Stem sample,  Up: 1D plotting samples
++
++3.1.13 Region - пример использования
++-------------------------------------------------------
++
++ [image src="../png/region.png" ]
++
++new y1 50
++new y2 50
++modify y1 '0.3*sin(2*pi*x)'
++modify y2 '0.5+0.3*cos(2*pi*x)'
++box
++region y1 y2 'r'
++plot y1 'k2'
++plot y2 'k2'
++
++
++File: mgl_ru.info,  Node: Region gradient sample,  Next: Error sample,  Prev: Region sample,  Up: 1D plotting samples
++
++3.1.14 Region с градиентной заливкой - пример использования
++--------------------------------------------------------------------------------------------------
++
++ [image src="../png/region_2.png" ]
++
++new y1 50
++new y2 50
++modify y1 '0.3*sin(2*pi*x)'
++modify y2 '0.5+0.3*cos(2*pi*x)'
++box
++region y1 y2 'yr'
++plot y1 'k2'
++plot y2 'k2'
++
++
++File: mgl_ru.info,  Node: Error sample,  Next: BoxPlot sample,  Prev: Region gradient sample,  Up: 1D plotting samples
++
++3.1.15 Error - пример использования
++------------------------------------------------------
++
++ [image src="../png/error.png" ]
++
++new y 50
++new x0 10
++new y0 10
++new ex 10
++new ey 10
++modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
++modify x0 '2*x-1 + 0.1*rnd-0.05'
++modify y0 '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1'
++modify ey '0.2'
++modify ex '0.1'
++box
++plot y
++error x0 y0 ex ey 'ko'
++
++
++File: mgl_ru.info,  Node: BoxPlot sample,  Next: Mark sample,  Prev: Error sample,  Up: 1D plotting samples
++
++3.1.16 BoxPlot - пример использования
++--------------------------------------------------------
++
++ [image src="../png/boxplot.png" ]
++
++new a 10 7
++modify a '(2*rnd-1)^3/2'
++box
++boxplot a
++plot a ' ko'
++
++
++File: mgl_ru.info,  Node: Mark sample,  Next: TextMark sample,  Prev: BoxPlot sample,  Up: 1D plotting samples
++
++3.1.17 Mark - пример использования
++-----------------------------------------------------
++
++ [image src="../png/mark.png" ]
++
++new y 50 3
++modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
++modify y 'sin(2*pi*x)' 1
++modify y 'cos(2*pi*x)' 2
++new y1 50
++modify y1 '0.5+0.3*cos(2*pi*x)'
++box
++mark y y1 'bs'
++
++
++File: mgl_ru.info,  Node: TextMark sample,  Next: Tube sample,  Prev: Mark sample,  Up: 1D plotting samples
++
++3.1.18 TextMark - пример использования
++---------------------------------------------------------
++
++ [image src="../png/textmark.png" ]
++
++new y 50 3
++modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
++modify y 'sin(2*pi*x)' 1
++modify y 'cos(2*pi*x)' 2
++new y1 50
++modify y1 '0.5+0.3*cos(2*pi*x)'
++box
++textmark y y1 '\gamma'
++
++
++File: mgl_ru.info,  Node: Tube sample,  Next: Text sample,  Prev: TextMark sample,  Up: 1D plotting samples
++
++3.1.19 Tube - пример использования
++-----------------------------------------------------
++
++ [image src="../png/tube.png" ]
++
++new y 50 3
++modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
++modify y 'sin(2*pi*x)' 1
++modify y 'cos(2*pi*x)' 2
++rotate 40 60
++light on
++box
++tube y 0.05
++
++
++File: mgl_ru.info,  Node: Text sample,  Next: Torus sample,  Prev: Tube sample,  Up: 1D plotting samples
++
++3.1.20 Text - пример использования
++-----------------------------------------------------
++
++ [image src="../png/text.png" ]
++
++new y 50 3
++modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
++modify y 'sin(2*pi*x)' 1
++modify y 'cos(2*pi*x)' 2
++box
++plot y(:,0)
++text y 'This is very long string drawn along a curve' ':k'
++text y 'Another string drawn above a curve' 'T:r'
++
++
++File: mgl_ru.info,  Node: Torus sample,  Next: Chart sample,  Prev: Text sample,  Up: 1D plotting samples
++
++3.1.21 Torus - пример использования
++------------------------------------------------------
++
++ [image src="../png/torus.png" ]
++
++new y1 50
++new y2 50
++modify y1 '0.5+0.3*cos(2*pi*x)'
++modify y2 '0.3*sin(2*pi*x)'
++rotate 40 60
++light on
++box
++torus y1 y2 'pz'
++
++
++File: mgl_ru.info,  Node: Chart sample,  Next: Pie chart sample,  Prev: Torus sample,  Up: 1D plotting samples
++
++3.1.22 Chart - пример использования
++------------------------------------------------------
++
++ [image src="../png/chart.png" ]
++
++new ch 7 2
++modify ch 'rnd+0.1'
++rotate 40 60
++light on
++box
++chart ch
++
++
++File: mgl_ru.info,  Node: Pie chart sample,  Next: Ring chart sample,  Prev: Chart sample,  Up: 1D plotting samples
++
++3.1.23 Pie chart - пример использования
++----------------------------------------------------------
++
++ [image src="../png/pie_chart.png" ]
++
++new ch 7 2
++modify ch 'rnd+0.1'
++rotate 40 60
++light on
++axis '(y+1)/2*cos(pi*x)' '(y+1)/2*sin(pi*x)' ''
++box
++chart ch 'bgr cmy#'
++
++
++File: mgl_ru.info,  Node: Ring chart sample,  Prev: Pie chart sample,  Up: 1D plotting samples
++
++3.1.24 Ring chart - пример использования
++-----------------------------------------------------------
++
++ [image src="../png/ring_chart.png" ]
++
++new ch 7 2
++modify ch 'rnd+0.1'
++rotate 40 60
++light on
++axis '(y+2)/3*cos(pi*x)' '(y+2)/3*sin(pi*x)' ''
++box
++chart ch 'bgr cmy#'
++
++
++File: mgl_ru.info,  Node: 2D plotting samples,  Next: 3D plotting samples,  Prev: 1D plotting samples,  Up: Samples
++
++3.2 Примеры 2D графиков
++======================================
++
++* Menu:
++
++* Surf sample::
++* Transparent surface sample::
++* Surface in fog sample::
++* Sharp colors sample::
++* Mesh sample::
++* Fall sample::
++* Belt sample::
++* Tile sample::
++* Boxs sample::
++* Dens sample::
++* Cont sample::
++* ContF sample::
++* ContD sample::
++* Axial sample::
++* Grad sample::
++
++
++File: mgl_ru.info,  Node: Surf sample,  Next: Transparent surface sample,  Up: 2D plotting samples
++
++3.2.1 Surf - пример использования
++----------------------------------------------------
++
++ [image src="../png/surf.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++light on
++box
++surf a
++
++
++File: mgl_ru.info,  Node: Transparent surface sample,  Next: Surface in fog sample,  Prev: Surf sample,  Up: 2D plotting samples
++
++3.2.2 Transparent surface - пример использования
++-------------------------------------------------------------------
++
++ [image src="../png/surf_alpha.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++light on
++alpha on
++box
++surf a
++
++
++File: mgl_ru.info,  Node: Surface in fog sample,  Next: Sharp colors sample,  Prev: Transparent surface sample,  Up: 2D plotting samples
++
++3.2.3 Surface in fog - пример использования
++--------------------------------------------------------------
++
++ [image src="../png/surf_fog.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++light on
++fog 1
++box
++surf a
++
++
++File: mgl_ru.info,  Node: Sharp colors sample,  Next: Mesh sample,  Prev: Surface in fog sample,  Up: 2D plotting samples
++
++3.2.4 Sharp colors - пример использования
++------------------------------------------------------------
++
++ [image src="../png/surf_sl.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++light on
++box
++surf a 'BbcyrR|'
++
++
++File: mgl_ru.info,  Node: Mesh sample,  Next: Fall sample,  Prev: Sharp colors sample,  Up: 2D plotting samples
++
++3.2.5 Mesh - пример использования
++----------------------------------------------------
++
++ [image src="../png/mesh.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++box
++mesh a
++
++
++File: mgl_ru.info,  Node: Fall sample,  Next: Belt sample,  Prev: Mesh sample,  Up: 2D plotting samples
++
++3.2.6 Fall - пример использования
++----------------------------------------------------
++
++ [image src="../png/fall.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++box
++fall a
++
++
++File: mgl_ru.info,  Node: Belt sample,  Next: Tile sample,  Prev: Fall sample,  Up: 2D plotting samples
++
++3.2.7 Belt - пример использования
++----------------------------------------------------
++
++ [image src="../png/belt.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++light on
++box
++belt a
++
++
++File: mgl_ru.info,  Node: Tile sample,  Next: Boxs sample,  Prev: Belt sample,  Up: 2D plotting samples
++
++3.2.8 Tile - пример использования
++----------------------------------------------------
++
++ [image src="../png/tile.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++light on
++box
++tile a
++
++
++File: mgl_ru.info,  Node: Boxs sample,  Next: Dens sample,  Prev: Tile sample,  Up: 2D plotting samples
++
++3.2.9 Boxs - пример использования
++----------------------------------------------------
++
++ [image src="../png/boxs.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++light on
++origin 0 0 0
++box
++boxs a
++
++
++File: mgl_ru.info,  Node: Dens sample,  Next: Cont sample,  Prev: Boxs sample,  Up: 2D plotting samples
++
++3.2.10 Dens - пример использования
++-----------------------------------------------------
++
++ [image src="../png/dens.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++box
++dens a
++colorbar
++
++
++File: mgl_ru.info,  Node: Cont sample,  Next: ContF sample,  Prev: Dens sample,  Up: 2D plotting samples
++
++3.2.11 Cont - пример использования
++-----------------------------------------------------
++
++ [image src="../png/cont.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++box
++cont a
++
++
++File: mgl_ru.info,  Node: ContF sample,  Next: ContD sample,  Prev: Cont sample,  Up: 2D plotting samples
++
++3.2.12 ContF - пример использования
++------------------------------------------------------
++
++ [image src="../png/contf.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++light on
++box
++contf a
++
++
++File: mgl_ru.info,  Node: ContD sample,  Next: Axial sample,  Prev: ContF sample,  Up: 2D plotting samples
++
++3.2.13 ContD - пример использования
++------------------------------------------------------
++
++ [image src="../png/contd.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++var v 9 -1 1
++box
++contd v a
++colorbar v
++
++
++File: mgl_ru.info,  Node: Axial sample,  Next: Grad sample,  Prev: ContD sample,  Up: 2D plotting samples
++
++3.2.14 Axial - пример использования
++------------------------------------------------------
++
++ [image src="../png/axial.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++light on
++alpha on
++box
++axial a
++
++
++File: mgl_ru.info,  Node: Grad sample,  Prev: Axial sample,  Up: 2D plotting samples
++
++3.2.15 Grad - пример использования
++-----------------------------------------------------
++
++ [image src="../png/grad.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++box:alpha on:dens a
++grad a
++
++
++File: mgl_ru.info,  Node: 3D plotting samples,  Next: Dual plotting samples,  Prev: 2D plotting samples,  Up: Samples
++
++3.3 Примеры 3D графиков
++======================================
++
++* Menu:
++
++* Surf3 sample::
++* Cloud sample::
++* CloudP sample::
++* Dens3 sample::
++* Cont3 sample::
++* ContF3 sample::
++* Cont projection sample::
++* Dens projection sample::
++* CutMinMax sample::
++* Isocaps sample::
++* CutOff sample::
++
++
++File: mgl_ru.info,  Node: Surf3 sample,  Next: Cloud sample,  Up: 3D plotting samples
++
++3.3.1 Surf3 - пример использования
++-----------------------------------------------------
++
++ [image src="../png/surf3.png" ]
++
++new a 60 50 40
++modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
++rotate 40 60
++light on
++alpha on
++box
++surf3 a
++
++
++File: mgl_ru.info,  Node: Cloud sample,  Next: CloudP sample,  Prev: Surf3 sample,  Up: 3D plotting samples
++
++3.3.2 Cloud - пример использования
++-----------------------------------------------------
++
++ [image src="../png/cloud.png" ]
++
++new a 60 50 40
++modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
++rotate 40 60
++alpha on
++box
++cloud a 'wyrRk'
++
++
++File: mgl_ru.info,  Node: CloudP sample,  Next: Dens3 sample,  Prev: Cloud sample,  Up: 3D plotting samples
++
++3.3.3 CloudP - пример использования
++------------------------------------------------------
++
++ [image src="../png/cloudp.png" ]
++
++Not available.
++
++
++File: mgl_ru.info,  Node: Dens3 sample,  Next: Cont3 sample,  Prev: CloudP sample,  Up: 3D plotting samples
++
++3.3.4 Dens3 - пример использования
++-----------------------------------------------------
++
++ [image src="../png/densa.png" ]
++
++new a 60 50 40
++modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
++rotate 40 60
++alpha on
++origin 0 0 0
++box
++densa a
++axis
++
++
++File: mgl_ru.info,  Node: Cont3 sample,  Next: ContF3 sample,  Prev: Dens3 sample,  Up: 3D plotting samples
++
++3.3.5 Cont3 - пример использования
++-----------------------------------------------------
++
++ [image src="../png/conta.png" ]
++
++new a 60 50 40
++modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
++rotate 40 60
++box
++conta a
++
++
++File: mgl_ru.info,  Node: ContF3 sample,  Next: Cont projection sample,  Prev: Cont3 sample,  Up: 3D plotting samples
++
++3.3.6 ContF3 - пример использования
++------------------------------------------------------
++
++ [image src="../png/contfa.png" ]
++
++new a 60 50 40
++modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
++rotate 40 60
++light on
++box
++contfa a
++
++
++File: mgl_ru.info,  Node: Cont projection sample,  Next: Dens projection sample,  Prev: ContF3 sample,  Up: 3D plotting samples
++
++3.3.7 Cont projection - пример использования
++---------------------------------------------------------------
++
++ [image src="../png/cont_xyz.png" ]
++
++new a 60 50 40
++modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
++rotate 40 60
++box
++sum s a 'x'
++contx s '' -1
++sum s a 'y'
++conty s '' 1
++sum s a 'z'
++contz s '' -1
++
++
++File: mgl_ru.info,  Node: Dens projection sample,  Next: CutMinMax sample,  Prev: Cont projection sample,  Up: 3D plotting samples
++
++3.3.8 Dens projection - пример использования
++---------------------------------------------------------------
++
++ [image src="../png/dens_xyz.png" ]
++
++new a 60 50 40
++modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
++rotate 40 60
++box
++sum s a 'x'
++densx s '' -1
++sum s a 'y'
++densy s '' 1
++sum s a 'z'
++densz s '' -1
++
++
++File: mgl_ru.info,  Node: CutMinMax sample,  Next: Isocaps sample,  Prev: Dens projection sample,  Up: 3D plotting samples
++
++3.3.9 CutMinMax - пример использования
++---------------------------------------------------------
++
++ [image src="../png/cutminmax.png" ]
++
++new a 60 50 40
++modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
++rotate 40 60
++light on
++alpha on
++cut 0 -1 -1 1 0 1
++box
++surf3 a
++
++
++File: mgl_ru.info,  Node: Isocaps sample,  Next: CutOff sample,  Prev: CutMinMax sample,  Up: 3D plotting samples
++
++3.3.10 "Isocaps" - пример использования
++----------------------------------------------------------
++
++ [image src="../png/cutminmax2.png" ]
++
++new a 61 51 40
++modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
++rotate 40 60
++light on
++cut 0 -1 -1 1 0 1.1
++box
++surf3 a -1
++contf3 a 'x' -1
++contf3 a 'y' -1
++contf3 a 'z' 0
++contf3 a 'z' 39
++
++
++File: mgl_ru.info,  Node: CutOff sample,  Prev: Isocaps sample,  Up: 3D plotting samples
++
++3.3.11 CutOff - пример использования
++-------------------------------------------------------
++
++ [image src="../png/surf3_cutoff.png" ]
++
++new a 60 50 40
++modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
++rotate 40 60
++light on
++alpha on
++cut '(z>(x+0.5*y-1)^2-1) & (z>(x-0.5*y-1)^2-1)'
++box
++surf3 a
++
++
++File: mgl_ru.info,  Node: Dual plotting samples,  Next: Basic features,  Prev: 3D plotting samples,  Up: Samples
++
++3.4 Примеры парных/векторных графиков
++===================================================================
++
++* Menu:
++
++* SurfC sample::
++* SurfA sample::
++* TileS sample::
++* Map sample::
++* Traj sample::
++* Vect sample::
++* VectL sample::
++* VectC sample::
++* Flow sample::
++* Pipe sample::
++* Dew sample::
++* Surf3C sample::
++* Surf3A sample::
++* Vect 3D sample::
++* VectL 3D sample::
++* VectC 3D sample::
++* Flow 3D sample::
++* Pipe 3D sample::
++* Crust sample::
++* Dots sample::
++
++
++File: mgl_ru.info,  Node: SurfC sample,  Next: SurfA sample,  Up: Dual plotting samples
++
++3.4.1 SurfC - пример использования
++-----------------------------------------------------
++
++ [image src="../png/surfc.png" ]
++
++new a 50 40
++new b 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++light on
++box
++surfc a b
++
++
++File: mgl_ru.info,  Node: SurfA sample,  Next: TileS sample,  Prev: SurfC sample,  Up: Dual plotting samples
++
++3.4.2 SurfA - пример использования
++-----------------------------------------------------
++
++ [image src="../png/surfa.png" ]
++
++new a 50 40
++new b 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++light on
++alpha on
++box
++surfa a b
++
++
++File: mgl_ru.info,  Node: TileS sample,  Next: Map sample,  Prev: SurfA sample,  Up: Dual plotting samples
++
++3.4.3 TileS - пример использования
++-----------------------------------------------------
++
++ [image src="../png/tiles.png" ]
++
++new a 50 40
++new b 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++box
++tile a b
++
++
++File: mgl_ru.info,  Node: Map sample,  Next: Traj sample,  Prev: TileS sample,  Up: Dual plotting samples
++
++3.4.4 Map - пример использования
++---------------------------------------------------
++
++ [image src="../png/map.png" ]
++
++new a 50 40
++new b 50 40
++text 0 0 '\to'
++zrange -2 2
++subplot 2 1 0
++text 0 1.1 '\{x, y\}' '' -2
++box
++fill a 'x'
++fill b 'y'
++map a b 'brgk' 0 0
++subplot 2 1 1
++text 0 1.1 '\{\frac{x^3+y^3}{2}, \frac{x-y}{2}\}' '' -2
++box
++fill a '(x^3+y^3)/2'
++fill b '(x-y)/2'
++map a b 'brgk' 0 0
++
++
++File: mgl_ru.info,  Node: Traj sample,  Next: Vect sample,  Prev: Map sample,  Up: Dual plotting samples
++
++3.4.5 Traj - пример использования
++----------------------------------------------------
++
++ [image src="../png/traj.png" ]
++
++new y 50 3
++new x 50
++new y1 50
++new y2 50
++modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
++modify y 'sin(2*pi*x)' 1
++modify y 'cos(2*pi*x)' 2
++fill x -1 1
++modify y1 '0.5+0.3*cos(2*pi*x)'
++modify y2 '0.3*sin(2*pi*x)'
++box
++plot x y
++traj x y y1 y2
++
++
++File: mgl_ru.info,  Node: Vect sample,  Next: VectL sample,  Prev: Traj sample,  Up: Dual plotting samples
++
++3.4.6 Vect - пример использования
++----------------------------------------------------
++
++ [image src="../png/vect.png" ]
++
++new a 20 30
++new b 20 30
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++box
++vect a b
++
++
++File: mgl_ru.info,  Node: VectL sample,  Next: VectC sample,  Prev: Vect sample,  Up: Dual plotting samples
++
++3.4.7 VectL - пример использования
++-----------------------------------------------------
++
++ [image src="../png/vectl.png" ]
++
++new a 20 30
++new b 20 30
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++box
++vectl a b
++
++
++File: mgl_ru.info,  Node: VectC sample,  Next: Flow sample,  Prev: VectL sample,  Up: Dual plotting samples
++
++3.4.8 VectC - пример использования
++-----------------------------------------------------
++
++ [image src="../png/vectc.png" ]
++
++new a 20 30
++new b 20 30
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++box
++vectc a b
++
++
++File: mgl_ru.info,  Node: Flow sample,  Next: Pipe sample,  Prev: VectC sample,  Up: Dual plotting samples
++
++3.4.9 Flow - пример использования
++----------------------------------------------------
++
++ [image src="../png/flow.png" ]
++
++new a 20 30
++new b 20 30
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++box
++flow a b
++
++
++File: mgl_ru.info,  Node: Pipe sample,  Next: Dew sample,  Prev: Flow sample,  Up: Dual plotting samples
++
++3.4.10 Pipe - пример использования
++-----------------------------------------------------
++
++ [image src="../png/pipe.png" ]
++
++new a 20 30
++new b 20 30
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++light on
++box
++pipe a b
++
++
++File: mgl_ru.info,  Node: Dew sample,  Next: Surf3C sample,  Prev: Pipe sample,  Up: Dual plotting samples
++
++3.4.11 Dew - пример использования
++----------------------------------------------------
++
++ [image src="../png/dew.png" ]
++
++new a 20 30
++new b 20 30
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++box
++light on
++dew a b
++
++
++File: mgl_ru.info,  Node: Surf3C sample,  Next: Surf3A sample,  Prev: Dew sample,  Up: Dual plotting samples
++
++3.4.12 Surf3C - пример использования
++-------------------------------------------------------
++
++ [image src="../png/surf3c.png" ]
++
++new a 60 50 40
++new b 60 50 40
++modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
++modify b '1-2*tanh(4*(x+y-1)^2)'
++rotate 40 60
++light on
++alpha on
++box
++surf3c a b
++
++
++File: mgl_ru.info,  Node: Surf3A sample,  Next: Vect 3D sample,  Prev: Surf3C sample,  Up: Dual plotting samples
++
++3.4.13 Surf3A - пример использования
++-------------------------------------------------------
++
++ [image src="../png/surf3a.png" ]
++
++new a 60 50 40
++new b 60 50 40
++modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
++modify b '1-2*tanh(4*(x+y-1)^2)'
++rotate 40 60
++light on
++alpha on
++box
++surf3a a b
++
++
++File: mgl_ru.info,  Node: Vect 3D sample,  Next: VectL 3D sample,  Prev: Surf3A sample,  Up: Dual plotting samples
++
++3.4.14 Vect 3D - пример использования
++--------------------------------------------------------
++
++ [image src="../png/vect3.png" ]
++
++new ex 10 10 10
++new ey 10 10 10
++new ez 10 10 10
++fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
++fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
++fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
++rotate 40 60
++box
++vect ex ey ez 'bwr'
++
++
++File: mgl_ru.info,  Node: VectL 3D sample,  Next: VectC 3D sample,  Prev: Vect 3D sample,  Up: Dual plotting samples
++
++3.4.15 VectL 3D - пример использования
++---------------------------------------------------------
++
++ [image src="../png/vectl3.png" ]
++
++new ex 10 10 10
++new ey 10 10 10
++new ez 10 10 10
++fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
++fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
++fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
++rotate 40 60
++box
++vectl ex ey ez 'bwr'
++
++
++File: mgl_ru.info,  Node: VectC 3D sample,  Next: Flow 3D sample,  Prev: VectL 3D sample,  Up: Dual plotting samples
++
++3.4.16 VectC 3D - пример использования
++---------------------------------------------------------
++
++ [image src="../png/vectc3.png" ]
++
++new ex 10 10 10
++new ey 10 10 10
++new ez 10 10 10
++fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
++fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
++fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
++rotate 40 60
++box
++vectc ex ey ez 'bwr'
++
++
++File: mgl_ru.info,  Node: Flow 3D sample,  Next: Pipe 3D sample,  Prev: VectC 3D sample,  Up: Dual plotting samples
++
++3.4.17 Flow 3D - пример использования
++--------------------------------------------------------
++
++ [image src="../png/flow3.png" ]
++
++new ex 30 30 30
++new ey 30 30 30
++new ez 30 30 30
++fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
++fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
++fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
++rotate 40 60
++box
++flow ex ey ez 'bwr'
++
++
++File: mgl_ru.info,  Node: Pipe 3D sample,  Next: Crust sample,  Prev: Flow 3D sample,  Up: Dual plotting samples
++
++3.4.18 Pipe 3D - пример использования
++--------------------------------------------------------
++
++ [image src="../png/pipe3.png" ]
++
++new ex 10 10 10
++new ey 10 10 10
++new ez 10 10 10
++fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
++fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
++fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
++rotate 40 60
++light on
++box
++pipe ex ey ez 'bwr'
++
++
++File: mgl_ru.info,  Node: Crust sample,  Next: Dots sample,  Prev: Pipe 3D sample,  Up: Dual plotting samples
++
++3.4.19 Crust - пример использования
++------------------------------------------------------
++
++ [image src="../png/crust.png" ]
++
++read a 'hotdogs.pts'
++norm a -1 1 on
++rotate 40 60
++light on
++box
++crust a 'p'
++
++
++File: mgl_ru.info,  Node: Dots sample,  Prev: Crust sample,  Up: Dual plotting samples
++
++3.4.20 Dots - пример использования
++-----------------------------------------------------
++
++ [image src="../png/dots.png" ]
++
++read a 'hotdogs.pts'
++norm a -1 1 on
++rotate 40 60
++box
++dots a 'p'
++
++
++File: mgl_ru.info,  Node: Basic features,  Next: Additional features,  Prev: Dual plotting samples,  Up: Samples
++
++3.5 Базовые возможности
++=========================================
++
++* Menu:
++
++* 1D plot sample::
++* 2D plot sample::
++* 3D plot sample::
++* Line styles sample::
++* Arrow styles sample::
++* Text styles sample::
++* TeX parsing sample::
++* Font faces sample::
++* Colors sample::
++* Color schemes sample::
++* Normal transparency::
++* Glass-like transparency::
++* Lamp-like transparency::
++
++
++File: mgl_ru.info,  Node: 1D plot sample,  Next: 2D plot sample,  Up: Basic features
++
++3.5.1 Пример графиков 1D данных
++---------------------------------------------------
++
++ [image src="../png/sample8.png" ]
++
++new y0 50: modify y0 'sin(pi*(2*x-1))'
++subplot 2 2 0
++plot y0: box
++
++subplot 2 2 1
++new y1 50 2
++modify y1 'sin(pi*2*x-pi)'
++modify y1 'cos(pi*2*x-pi)/2' 1
++plot y1: box
++
++new x 50: modify x 'cos(pi*2*x-pi)'
++plot x y0 'Y+'
++plot y1(:,0) y(:,1) 'q|'
++
++subplot 2 2 2:rotate 60 40
++new z 50:   modify z '2*x-1'
++plot x y0 z 'g':box
++new y2 10 3
++modify y2 'cos(pi*(2*x-1-y))'
++modify y2 '2*x-1' 2
++plot y2(:,0) y2(:,1) y2(:,2) 'bo '
++
++subplot 2 2 3:rotate 60 40
++bars x y0 z 'r':box
++
++
++File: mgl_ru.info,  Node: 2D plot sample,  Next: 3D plot sample,  Prev: 1D plot sample,  Up: Basic features
++
++3.5.2 Пример графиков 2D данных
++---------------------------------------------------
++
++ [image src="../png/sample9.png" ]
++
++light on
++
++new a0 50 40
++modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
++subplot 2 2 0:rotate 60 40
++surf a0: box
++
++new x 50 40: new y 50 40: new z 50 40
++modify x '0.8*sin(2*pi*x)*sin(pi*y)'
++modify y '0.8*cos(2*pi*x)*sin(pi*y)'
++modify z '0.8*cos(pi*y)'
++subplot 2 2 1:rotate 60 40
++surf x y z 'bbwrr': box
++
++new a1 50 40 3
++modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
++modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
++modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
++subplot 2 2 2:rotate 60 40
++alpha on
++surf a1: box
++
++subplot 2 2 3: rotate 60 40
++dens a1: box
++
++
++File: mgl_ru.info,  Node: 3D plot sample,  Next: Line styles sample,  Prev: 2D plot sample,  Up: Basic features
++
++3.5.3 Пример графиков 3D данных
++---------------------------------------------------
++
++ [image src="../png/sampleb.png" ]
++
++alpha on: light on
++light 0 0 0 1
++new a 30 30 30: new b 30 30 30
++modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
++modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
++caxis 0 1
++
++subplot 2 2 0: rotate 40 60
++surf3 a 'wgk': box
++subplot 2 2 1: rotate 40 60
++densa a: box: axis
++subplot 2 2 2: rotate 40 60
++cloud a: box
++subplot 2 2 3: rotate 40 60
++surf3a b a 'q': box
++
++
++File: mgl_ru.info,  Node: Line styles sample,  Next: Arrow styles sample,  Prev: 3D plot sample,  Up: Basic features
++
++3.5.4 Пример стилей линий и маркеров
++--------------------------------------------------------------
++
++ [image src="../png/sample5.png" ]
++
++NOT AVAILABLE
++
++
++File: mgl_ru.info,  Node: Arrow styles sample,  Next: Text styles sample,  Prev: Line styles sample,  Up: Basic features
++
++3.5.5 Пример стилей стрелок
++----------------------------------------------
++
++ [image src="../png/sampled.png" ]
++
++NOT AVAILABLE
++
++
++File: mgl_ru.info,  Node: Text styles sample,  Next: TeX parsing sample,  Prev: Arrow styles sample,  Up: Basic features
++
++3.5.6 Пример стилей текста
++--------------------------------------------
++
++ [image src="../png/sample4.png" ]
++
++text 0 1 'Text can be in ASCII and in Unicode'
++text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
++text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
++text 0 -0.2 'Easy to \a{overline} or \u{underline}'
++text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
++text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
++
++
++File: mgl_ru.info,  Node: TeX parsing sample,  Next: Font faces sample,  Prev: Text styles sample,  Up: Basic features
++
++3.5.7 Пример TeX формулы
++-------------------------------------
++
++ [image src="../png/samplee.png" ]
++
++text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}' '' -4
++
++
++File: mgl_ru.info,  Node: Font faces sample,  Next: Colors sample,  Prev: TeX parsing sample,  Up: Basic features
++
++3.5.8 Примеры начертаний шрифта
++------------------------------------------------------
++
++ [image src="../png/fonts.png" ]
++
++NOT AVAILABLE
++
++
++File: mgl_ru.info,  Node: Colors sample,  Next: Color schemes sample,  Prev: Font faces sample,  Up: Basic features
++
++3.5.9 Примеры цветов
++---------------------------------
++
++ [image src="../png/colors.png" ]
++
++#LENUQ
++facez -1   -1 0 0.4 0.3 'L#': text -0.8 -0.9 'L' 'C:w'
++facez -0.6 -1 0 0.4 0.3 'E#': text -0.4 -0.9 'E' 'C:w'
++facez -0.2 -1 0 0.4 0.3 'N#': text  0   -0.9 'N' 'C:w'
++facez  0.2 -1 0 0.4 0.3 'U#': text  0.4 -0.9 'U' 'C:w'
++facez  0.6 -1 0 0.4 0.3 'Q#': text  0.8 -0.9 'Q' 'C:w'
++#lenuq
++facez -1   -0.7 0 0.4 0.3 'l#': text -0.8 -0.6 'l' 'C:k'
++facez -0.6 -0.7 0 0.4 0.3 'e#': text -0.4 -0.6 'e' 'C:k'
++facez -0.2 -0.7 0 0.4 0.3 'n#': text  0   -0.6 'n' 'C:k'
++facez  0.2 -0.7 0 0.4 0.3 'u#': text  0.4 -0.6 'u' 'C:k'
++facez  0.6 -0.7 0 0.4 0.3 'q#': text  0.8 -0.6 'q' 'C:k'
++#CMYkP
++facez -1   -0.4 0 0.4 0.3 'C#': text -0.8 -0.3 'C' 'C:w'
++facez -0.6 -0.4 0 0.4 0.3 'M#': text -0.4 -0.3 'M' 'C:w'
++facez -0.2 -0.4 0 0.4 0.3 'Y#': text  0   -0.3 'Y' 'C:w'
++facez  0.2 -0.4 0 0.4 0.3 'k#': text  0.4 -0.3 'k' 'C:w'
++facez  0.6 -0.4 0 0.4 0.3 'P#': text  0.8 -0.3 'P' 'C:w'
++#lenuq
++facez -1   -0.1 0 0.4 0.3 'c#': text -0.8 0 'c' 'C:k'
++facez -0.6 -0.1 0 0.4 0.3 'm#': text -0.4 0 'm' 'C:k'
++facez -0.2 -0.1 0 0.4 0.3 'y#': text  0   0 'y' 'C:k'
++facez  0.2 -0.1 0 0.4 0.3 'w#': text  0.4 0 'w' 'C:k'
++facez  0.6 -0.1 0 0.4 0.3 'p#': text  0.8 0 'p' 'C:k'
++#BGRHW
++facez -1   0.2 0 0.4 0.3 'B#': text -0.8 0.3 'B' 'C:k'
++facez -0.6 0.2 0 0.4 0.3 'G#': text -0.4 0.3 'G' 'C:k'
++facez -0.2 0.2 0 0.4 0.3 'R#': text  0   0.3 'R' 'C:k'
++facez  0.2 0.2 0 0.4 0.3 'H#': text  0.4 0.3 'H' 'C:k'
++facez  0.6 0.2 0 0.4 0.3 'W#': text  0.8 0.3 'W' 'C:k'
++#bgrhw
++facez -1   0.5 0 0.4 0.3 'b#': text -0.8 0.6 'b' 'C:w'
++facez -0.6 0.5 0 0.4 0.3 'g#': text -0.4 0.6 'g' 'C:w'
++facez -0.2 0.5 0 0.4 0.3 'r#': text  0   0.6 'r' 'C:w'
++facez  0.2 0.5 0 0.4 0.3 'h#': text  0.4 0.6 'h' 'C:w'
++facez  0.6 0.5 0 0.4 0.3 'w#': text  0.8 0.6 'w' 'C:w'
++#brighted
++facez -1   0.8 0 0.4 0.3 'r1#': text -0.8 0.9 'r1' 'C:k'
++facez -0.6 0.8 0 0.4 0.3 'r3#': text -0.4 0.9 'r3' 'C:k'
++facez -0.2 0.8 0 0.4 0.3 'r5#': text  0   0.9 'r5' 'C:k'
++facez  0.2 0.8 0 0.4 0.3 'r7#': text  0.4 0.9 'r7' 'C:k'
++facez  0.6 0.8 0 0.4 0.3 'r9#': text  0.8 0.9 'r9' 'C:k'
++
++
++File: mgl_ru.info,  Node: Color schemes sample,  Next: Normal transparency,  Prev: Colors sample,  Up: Basic features
++
++3.5.10 Примеры цветовых схем
++-----------------------------------------------
++
++ [image src="../png/color_schemes.png" ]
++
++new a 256 2: fill a 'x'
++subplot 2 10 0 0.2:dens a 'kw'
++text -1.4 -0.3 'kw' '' -8
++subplot 2 10 1 0.2:dens a 'wk'
++text -1.4 -0.3 'wk' '' -8
++subplot 2 10 2 0.2:dens a 'kHCcw'
++text -1.4 -0.3 'kHCcw' '' -8
++subplot 2 10 3 0.2:dens a 'kBbcw'
++text -1.4 -0.3 'kBbcw' '' -8
++subplot 2 10 4 0.2:dens a 'kRryw'
++text -1.4 -0.3 'kRryw' '' -8
++subplot 2 10 5 0.2:dens a 'kGgew'
++text -1.4 -0.3 'kGgew' '' -8
++subplot 2 10 6 0.2:dens a 'BbwrR'
++text -1.4 -0.3 'BbwrR' '' -8
++subplot 2 10 7 0.2:dens a 'BbwgG'
++text -1.4 -0.3 'BbwgG' '' -8
++subplot 2 10 8 0.2:dens a 'GgwmM'
++text -1.4 -0.3 'GgwmM' '' -8
++subplot 2 10 9 0.2:dens a 'UuwqR'
++text -1.4 -0.3 'UuwqR' '' -8
++subplot 2 10 10 0.2:dens a 'QqwcC'
++text -1.4 -0.3 'QqwcC' '' -8
++subplot 2 10 11 0.2:dens a 'CcwyY'
++text -1.4 -0.3 'CcwyY' '' -8
++subplot 2 10 12 0.2:dens a 'bcwyr'
++text -1.4 -0.3 'bcwyr' '' -8
++subplot 2 10 13 0.2:dens a 'bwr'
++text -1.4 -0.3 'bwr' '' -8
++subplot 2 10 14 0.2:dens a 'BbcyrR'
++text -1.4 -0.3 'BbcyrR' '' -8
++subplot 2 10 15 0.2:dens a 'UbcyqR'
++text -1.4 -0.3 'UbcyqR' '' -8
++subplot 2 10 16 0.2:dens a 'BbcwyrR'
++text -1.4 -0.3 'BbcwyrR' '' -8
++subplot 2 10 17 0.2:dens a 'bcyr'
++text -1.4 -0.3 'bcyr' '' -8
++subplot 2 10 18 0.2:dens a 'BbcyrR|'
++text -1.4 -0.3 'BbcyrR|' '' -8
++subplot 2 10 19 0.2:dens a 'bgr'
++text -1.4 -0.3 'bgr' '' -8
++
++
++File: mgl_ru.info,  Node: Normal transparency,  Next: Glass-like transparency,  Prev: Color schemes sample,  Up: Basic features
++
++3.5.11 Обычная прозрачность
++----------------------------------------------
++
++ [image src="../png/type0.png" ]
++
++alpha on: light on
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++
++transptype 0: clf
++subplot 2 2 0: rotate 40 60: surf a:  box
++subplot 2 2 1: rotate 40 60: dens a:  box
++subplot 2 2 2: rotate 40 60: cont a:  box
++subplot 2 2 3: rotate 40 60: axial a: box
++
++
++File: mgl_ru.info,  Node: Glass-like transparency,  Next: Lamp-like transparency,  Prev: Normal transparency,  Up: Basic features
++
++3.5.12 "Стеклянная" прозрачность
++------------------------------------------------------
++
++ [image src="../png/type1.png" ]
++
++alpha on: light on
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++
++transptype 1: clf
++subplot 2 2 0: rotate 40 60: surf a:  box
++subplot 2 2 1: rotate 40 60: dens a:  box
++subplot 2 2 2: rotate 40 60: cont a:  box
++subplot 2 2 3: rotate 40 60: axial a: box
++
++
++File: mgl_ru.info,  Node: Lamp-like transparency,  Prev: Glass-like transparency,  Up: Basic features
++
++3.5.13 "Ламповая" прозрачность
++--------------------------------------------------
++
++ [image src="../png/type2.png" ]
++
++alpha on: light on
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++
++transptype 2: clf
++subplot 2 2 0: rotate 40 60: surf a:  box
++subplot 2 2 1: rotate 40 60: dens a:  box
++subplot 2 2 2: rotate 40 60: cont a:  box
++subplot 2 2 3: rotate 40 60: axial a: box
++
++
++File: mgl_ru.info,  Node: Additional features,  Next: Advanced features,  Prev: Basic features,  Up: Samples
++
++3.6 Дополнительные возможности
++=======================================================
++
++* Menu:
++
++* Legend sample::
++* Adding mesh sample::
++* Surf & Cont sample::
++* Flow & Dens sample::
++* Several light sample::
++* Mirrored surface sample::
++* Cont with labels sample::
++* Ternary plot sample::
++* Coloring by coordinates sample::
++* Drops sample::
++* Molecules drawing sample::
++
++
++File: mgl_ru.info,  Node: Legend sample,  Next: Adding mesh sample,  Up: Additional features
++
++3.6.1 Legend - пример использования
++------------------------------------------------------
++
++ [image src="../png/legend.png" ]
++
++new f 50 3
++modify f 'sin(2*pi*x*x)'
++modify f 'sin(2*pi*x)' 1
++modify f 'sin(2*pi*sqrt(x))' 2
++axis 0 -1 1 1
++box
++plot f
++axis
++addlegend 'sin(\pi {x^2})' 'b'
++addlegend 'sin(\pi x)' 'g*'
++addlegend 'sin(\pi \sqrt{\a x})' 'r+'
++legend
++
++
++File: mgl_ru.info,  Node: Adding mesh sample,  Next: Surf & Cont sample,  Prev: Legend sample,  Up: Additional features
++
++3.6.2 Добавляем сетку
++-----------------------------------
++
++ [image src="../png/samplea.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++alpha on
++light on
++subplot 2 2 0
++rotate 40 60
++surf a 'BbcyrR#'
++box
++subplot 2 2 1
++rotate 40 60
++dens a 'BbcyrR#'
++box
++subplot 2 2 2
++rotate 40 60
++cont a 'BbcyrR#'
++box
++subplot 2 2 3
++rotate 40 60
++axial a 'BbcyrR#'
++box
++
++
++File: mgl_ru.info,  Node: Surf & Cont sample,  Next: Flow & Dens sample,  Prev: Adding mesh sample,  Up: Additional features
++
++3.6.3 Surf & Cont - пример использования
++-----------------------------------------------------------
++
++ [image src="../png/surf_cont_y.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++light on
++box
++surf a
++cont a 'y'
++
++
++File: mgl_ru.info,  Node: Flow & Dens sample,  Next: Several light sample,  Prev: Surf & Cont sample,  Up: Additional features
++
++3.6.4 Flow & Dens - пример использования
++-----------------------------------------------------------
++
++ [image src="../png/flow_dens.png" ]
++
++new a 50 40
++new b 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++copy d a
++modify d 'sqrt(v^2+w^2)' a b
++box
++flow a b 'br'
++dens d 'BbcyrR'
++
++
++File: mgl_ru.info,  Node: Several light sample,  Next: Mirrored surface sample,  Prev: Flow & Dens sample,  Up: Additional features
++
++3.6.5 Несколько источников света
++--------------------------------------------------------
++
++ [image src="../png/several_light.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++rotate 40 60
++light on
++light 1 0 1 0 'c'
++light 2 1 0 0 'y'
++light 3 0 -1 0 'm'
++box
++surf a 'h'
++
++
++File: mgl_ru.info,  Node: Mirrored surface sample,  Next: Cont with labels sample,  Prev: Several light sample,  Up: Additional features
++
++3.6.6 Отражение поверхности
++-----------------------------------------------
++
++ [image src="../png/mirror.png" ]
++
++new a 30 40
++modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
++rotate 40 60
++light on
++surf a 'r'; yrange 0 1
++surf a 'b'; yrange 0 -1
++box
++ or
++new a 30 40
++var x 30 -1 1
++var y1 40 0 1
++var y2 40 0 -1
++modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
++rotate 40 60
++light on
++surf x y1 a 'r'
++surf x y2 a 'b'
++box
++
++
++File: mgl_ru.info,  Node: Cont with labels sample,  Next: Ternary plot sample,  Prev: Mirrored surface sample,  Up: Additional features
++
++3.6.7 Cont и подписи - пример использования
++----------------------------------------------------------------------
++
++ [image src="../png/contt.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++box
++cont a 'BbcyrRt'
++
++
++File: mgl_ru.info,  Node: Ternary plot sample,  Next: Coloring by coordinates sample,  Prev: Cont with labels sample,  Up: Additional features
++
++3.6.8 Ternary plot - пример использования
++------------------------------------------------------------
++
++ [image src="../png/ternary.png" ]
++
++new rx 10
++new ry 10
++new x 50
++new y 50
++new a 20 30
++modify a '4*x*y'
++modify x '0.25*(1+cos(2*pi*x))'
++modify y '0.25*(1+sin(2*pi*x))'
++modify rx 'rnd'
++modify ry 'rnd*(1-v)' rx
++text -0.8 1.3 'Ternary plot (x+y+t=1)'
++ternary on
++plot x y 'r2'
++plot rx ry 'q^ '
++cont a
++line 0.5 0 0 0.75 'g2'
++axis
++grid 'xyz' 'B;'
++xlabel 'x comp.'
++ylabel 'y comp.'
++tlabel 't comp.'
++
++
++File: mgl_ru.info,  Node: Coloring by coordinates sample,  Next: Drops sample,  Prev: Ternary plot sample,  Up: Additional features
++
++3.6.9 Окрашивание по положению грани
++---------------------------------------------------------------
++
++ [image src="../png/surf3_rgbd.png" ]
++
++new a 60 50 40
++modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
++rotate 40 60
++box
++surf3 a 'bgrd'
++
++
++File: mgl_ru.info,  Node: Drops sample,  Next: Molecules drawing sample,  Prev: Coloring by coordinates sample,  Up: Additional features
++
++3.6.10 Drops - пример использования
++------------------------------------------------------
++
++ [image src="../png/drops.png" ]
++
++light on
++text -1 1.2 'sh=0'
++drop -1 0 0 1 0.5 'r' 0
++text -0.33 1.2 'sh=0.33'
++drop -0.33 0 0 1 0.5 'r' 0.33
++text 0.33 1.2 'sh=0.67'
++drop 0.33 0 0 1 0.5 'r' 0.67
++text 1 1.2 'sh=1'
++drop 1 0 0 1 0.5 'r' 1
++ball -1 0 1 'k'
++ball -0.33 0 1 'k'
++ball 0.33 0 1 'k'
++ball 1 0 1 'k'
++line -1 0 1 1 0 1 'b'
++new h 100
++modify h '0.25*(1+x)^2'
++plot h 'k|'
++text -1 0.6 'h\sim(1+sh)^2' 'rL'
++
++
++File: mgl_ru.info,  Node: Molecules drawing sample,  Prev: Drops sample,  Up: Additional features
++
++3.6.11 Рисование молекул
++----------------------------------------
++
++ [image src="../png/molecule.png" ]
++
++alpha on
++light on
++subplot 2 2 0
++text 0 1.2 'Methane, CH_4' '' -3
++rotate 60 120
++sphere 0 0 0 0.25 'k'
++drop 0 0 0 0 0 1 0.35 'h' 1 2
++sphere 0 0 0.7 0.25 'g'
++drop 0 0 0 -0.94 0 -0.33 0.35 'h' 1 2
++sphere -0.66 0 -0.23 0.25 'g'
++drop 0 0 0 0.47 0.82 -0.33 0.35 'h' 1 2
++sphere 0.33 0.57 -0.23 0.25 'g'
++drop 0 0 0 0.47 -0.82 -0.33 0.35 'h' 1 2
++sphere 0.33 -0.57 -0.23 0.25 'g'
++subplot 2 2 1
++text 0 1.2 'Water, H{_2}O' '' -3
++rotate 60 100
++sphere 0 0 0 0.25 'r'
++drop 0 0 0 0.3 0.5 0 0.3 'm' 1 2
++sphere 0.3 0.5 0 0.25 'g'
++drop 0 0 0 0.3 -0.5 0 0.3 'm' 1 2
++sphere 0.3 -0.5 0 0.25 'g'
++subplot 2 2 2
++text 0 1.2 'Oxygen, O_2' '' -3
++rotate 60 120
++drop 0 0.5 0 0 -0.3 0 0.3 'm' 1 2
++sphere 0 0.5 0 0.25 'r'
++drop 0 -0.5 0 0 0.3 0 0.3 'm' 1 2
++sphere 0 -0.5 0 0.25 'r'
++subplot 2 2 3
++text 0 1.2 0 'Ammonia, NH_3' '' -3
++rotate 60 120
++sphere 0 0 0 0.25 'b'
++drop 0 0 0 0.33 0.57 0 0.32 'n' 1 2
++sphere 0.33 0.57 0 0.25 'g'
++drop 0 0 0 0.33 -0.57 0 0.32 'n' 1 2
++sphere 0.33 -0.57 0 0.25 'g'
++drop 0 0 0 -0.65 0 0 0.32 'n' 1 2
++sphere -0.65 0 0 0.25 'g'
++
++
++File: mgl_ru.info,  Node: Advanced features,  Prev: Additional features,  Up: Samples
++
++3.7 "Продвинутые" возможности
++===================================================
++
++* Menu:
++
++* Curvelinear coorinates sample::
++* 2-axes sample::
++* Semi-log sample::
++* Log-log sample::
++* Fitting sample::
++* Envelop sample::
++* Sew sample::
++* STFA sample::
++* PDE sample::
++* Beam tracing sample::
++* Parser sample::
++* Manual ticks sample::
++* ColumnPlot sample::
++* StickPlot sample::
++* Stereo image sample::
++
++
++File: mgl_ru.info,  Node: Curvelinear coorinates sample,  Next: 2-axes sample,  Up: Advanced features
++
++3.7.1 Криволинейные координаты
++-----------------------------------------------------
++
++ [image src="../png/sample3.png" ]
++
++origin -1 1 -1
++subplot 2 2 0
++rotate 60 40
++line -1 0.5 0 1 0.5 0 'r2'
++axis
++grid
++text 0 1.3 1 'Cartesian'
++subplot 2 2 1
++rotate 60 40
++axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
++line -1 0.5 0 1 0.5 0 'r2'
++axis
++grid
++text 0 1.3 1 'Cylindrical'
++subplot 2 2 2
++rotate 60 40
++axis '2*y*x' 'y*y - x*x' ''
++line -1 0.5 0 1 0.5 0 'r2'
++axis
++grid
++text 0 1.3 1 'Parabolic'
++subplot 2 2 3
++rotate 60 40
++axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
++line -1 0.5 0 1 0.5 0 'r2'
++axis
++grid
++text 0 1.3 1 'Spiral'
++axis '' '' '' # set to default Cartesian
++
++
++File: mgl_ru.info,  Node: 2-axes sample,  Next: Semi-log sample,  Prev: Curvelinear coorinates sample,  Up: Advanced features
++
++3.7.2 Несколько осей на одном графике
++----------------------------------------------------------------
++
++ [image src="../png/2_axis.png" ]
++
++new y1 50
++new y2 50
++modify y1 '0.3*sin(2*pi*x)'
++modify y2 '0.5+0.3*cos(2*pi*x)'
++axis -1 -1 -1 1 1 1
++origin -1 -1 -1
++axis
++ylabel 'axis 1' 0
++plot y1 'b'
++axis 0 0 0 1 1 1
++origin 1 1 1
++axis
++ylabel 'axis 2' 0
++stem y2 'r'
++
++
++File: mgl_ru.info,  Node: Semi-log sample,  Next: Log-log sample,  Prev: 2-axes sample,  Up: Advanced features
++
++3.7.3 Semi-log - пример использования
++--------------------------------------------------------
++
++ [image src="../png/semilog.png" ]
++
++new x 2000
++new y 2000
++modify x '0.01/(x+10^(-5))'
++modify y 'sin(1/v)' x
++xrange 0.01 1000
++origin 0.01 -1 0
++xtick 0
++axis 'lg(x)' '' ''
++plot x y 'b2'
++axis
++grid 'xy' 'g'
++xlabel 'x' 0
++ylabel 'y = sin 1/x' 0
++box
++
++
++File: mgl_ru.info,  Node: Log-log sample,  Next: Fitting sample,  Prev: Semi-log sample,  Up: Advanced features
++
++3.7.4 Log-log - пример использования
++-------------------------------------------------------
++
++ [image src="../png/loglog.png" ]
++
++new x 100
++new y 100
++modify x 'pow(10,6*x-3)'
++modify y 'sqrt(1+v^2)' x
++axis 0.001 0.1 1000 1000
++xtick 0
++ytick 0
++axis 'lg(x)' 'lg(y)' ''
++plot x y 'b2'
++axis
++grid 'xy' 'g;'
++xlabel 'x' 0
++ylabel 'y=\sqrt{1+x^2}' 0
++box
++
++
++File: mgl_ru.info,  Node: Fitting sample,  Next: Envelop sample,  Prev: Log-log sample,  Up: Advanced features
++
++3.7.5 Fitting - пример использования
++-------------------------------------------------------
++
++ [image src="../png/fit.png" ]
++
++new rnd 100
++fill rnd '0.4*rnd+0.1+sin(2*pi*x)'
++new in 100
++fill in '0.3+sin(2*pi*x)'
++yrange -2 2
++plot rnd '. '
++box
++list ini 1 1 3
++fit res rnd 'a+b*sin(c*x)' 'abc' ini
++plot res 'r'
++plot in 'b'
++text -1 -1.3 'fitted:' 'L:r' -1
++putsfit 0 -1.8 'y = ' 'C:r'
++text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
++
++
++File: mgl_ru.info,  Node: Envelop sample,  Next: Sew sample,  Prev: Fitting sample,  Up: Advanced features
++
++3.7.6 Envelop - пример использования
++-------------------------------------------------------
++
++ [image src="../png/envelop.png" ]
++
++new a 1000
++fill a 'exp(-8*x^2)*sin(10*pi*x)'
++plot a 'b'
++envelop a
++plot a 'r'
++axis
++
++
++File: mgl_ru.info,  Node: Sew sample,  Next: STFA sample,  Prev: Envelop sample,  Up: Advanced features
++
++3.7.7 Sew - пример использования
++---------------------------------------------------
++
++ [image src="../png/sew.png" ]
++
++new a 100 100
++modify a 'mod((y^2-(1-x)^2)/2,0.1)'
++rotate 40 60
++light on
++alpha on
++surf a 'b'
++sew a 'xy' 0.1
++surf a 'r'
++box
++
++
++File: mgl_ru.info,  Node: STFA sample,  Next: PDE sample,  Prev: Sew sample,  Up: Advanced features
++
++3.7.8 STFA - пример использования
++----------------------------------------------------
++
++ [image src="../png/stfa.png" ]
++
++new a 2000
++new b 2000
++fill a 'cos(50*pi*x)*(x<-.5)+cos(100*pi*x)*(x<0)*(x>-.5)+
++        cos(200*pi*x)*(x<.5)*(x>0)+cos(400*pi*x)*(x>.5)'
++subplot 1 2 0
++plot a
++axis
++xlabel '\i t'
++subplot 1 2 1
++stfa a b 64 ''
++axis
++ylabel '\omega' 0
++xlabel '\i t'
++
++
++File: mgl_ru.info,  Node: PDE sample,  Next: Beam tracing sample,  Prev: STFA sample,  Up: Advanced features
++
++3.7.9 PDE - пример использования
++---------------------------------------------------
++
++ [image src="../png/pde.png" ]
++
++axis
++xlabel '\i x'
++ylabel '\i z'
++new re 128
++new im 128
++fill re 'exp(-48*(x+0.7)^2)'
++pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z>-x)' re im 0.01 30
++transpose a
++crange 0 1
++dens a 'wyrRk'
++fplot '-x' 'k|'
++text 0 0.85 'absorption: (x+z)/2 for x+z>0' '' -1
++title 'Equation: ik_0\partial_zu + \Delta u + x\cdot u + i \frac{x+z}{2}\cdot u = 0' 'iC' -1.5
++
++
++File: mgl_ru.info,  Node: Beam tracing sample,  Next: Parser sample,  Prev: PDE sample,  Up: Advanced features
++
++3.7.10 Beam tracing - пример использования
++-------------------------------------------------------------
++
++ [image src="../png/qo2d.png" ]
++
++define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y>-x)'
++ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
++plot r(0) r(1) 'k'
++axis
++xlabel '\i x'
++ylabel '\i z'
++new re 128
++new im 128
++new xx
++new yy
++fill re 'exp(-48*x^2)'
++qo2d a $1 re im r 1 30 xx yy
++crange 0 1
++dens xx yy a 'wyrRk'
++fplot '-x' 'k|'
++text -0.8 0.85 'absorption: (x+y)/2 for x+y>0' 'L' -1
++text 0.5 -0.05 'central ray' 'L' -1
++title 'Beam and ray tracing' 'C' -1.5
++
++
++File: mgl_ru.info,  Node: Parser sample,  Next: Manual ticks sample,  Prev: Beam tracing sample,  Up: Advanced features
++
++3.7.11 Parser - пример использования
++-------------------------------------------------------
++
++
++File: mgl_ru.info,  Node: Manual ticks sample,  Next: ColumnPlot sample,  Prev: Parser sample,  Up: Advanced features
++
++3.7.12 Особые метки по осям
++--------------------------------------------
++
++ [image src="../png/tval.png" ]
++
++axis -pi 0 pi 2
++xtick -pi '-\pi' -1.571 '-\pi/2' 0 '0' 0.886 'x^*' 1.571 '\pi/2' pi '\pi'
++axis
++grid
++fplot '2*cos(x^2)^2' 'r2' nan 300
++
++
++File: mgl_ru.info,  Node: ColumnPlot sample,  Next: StickPlot sample,  Prev: Manual ticks sample,  Up: Advanced features
++
++3.7.13 ColumnPlot - пример использования
++-----------------------------------------------------------
++
++ [image src="../png/column.png" ]
++
++for $1 0 3
++columnplot 4 $1
++box
++text -0.5 0.5 'Plot $1 of 4'
++fplot 'sin(pi*x+pi*$1/2)'
++next
++
++
++File: mgl_ru.info,  Node: StickPlot sample,  Prev: ColumnPlot sample,  Up: Advanced features
++
++3.7.14 StickPlot - пример использования
++----------------------------------------------------------
++
++ [image src="../png/stick.png" ]
++
++ranges -1 1 -1 1 0 1:light on
++stickplot 3 0 40 30 : axis 'xyz_'
++fsurf 'exp(-10*y^2-6*x^2)'
++text 0.2 0 1.2 'z=0' '' -2
++stickplot 3 1 40 30 : axis 'xy_'
++fsurf 'exp(-10*y^2/2-6*x^2)/sqrt(2)'
++text 0.2 0 1.2 'z=1' '' -2
++stickplot 3 2 40 30 : axis 'xy_'
++fsurf 'exp(-10*y^2/5-6*x^2)/sqrt(5)'
++text 0.2 0 1.2 'z=2' '' -2
++xlabel '\tau' 0 : ylabel '\rho'
++
++
++File: mgl_ru.info,  Node: Stereo image sample,  Prev: StickPlot sample,  Up: Advanced features
++
++3.7.15 Пример стерео изображения
++-------------------------------------------------------
++
++ [image src="../png/stereo.png" ]
++
++new a 50 40
++modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
++light on
++subplot 2 1 0
++rotate 40 60+3
++box:surf a
++subplot 2 1 1
++rotate 40 60-3
++box:surf a
++
++
++
++Local Variables:
++coding: utf-8
++End:
+--- a/texinfo/Makefile.am
++++ b/texinfo/Makefile.am
+@@ -37,6 +37,6 @@
+ uninstall-local:
+ #	rm -rf $(mglpng)
+ 
+-#all-local: html pdf
++//all-local: html pdf
+ all-local: html
+ 	./filter.py
+--- a/texinfo/Makefile.in
++++ b/texinfo/Makefile.in
+@@ -39,7 +39,11 @@
  	$(srcdir)/Makefile.in
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
@@ -9344,9 +15540,916 @@ Last-Update: <YYYY-MM-DD>
  am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
  	$(ACLOCAL_M4)
  mkinstalldirs = $(install_sh) -d
---- mathgl-1.11.orig/texinfo/png/Makefile.in
-+++ mathgl-1.11/texinfo/png/Makefile.in
-@@ -38,7 +38,11 @@ subdir = texinfo/png
+@@ -1045,7 +1049,7 @@
+ uninstall-local:
+ #	rm -rf $(mglpng)
+ 
+-#all-local: html pdf
++//all-local: html pdf
+ all-local: html
+ 	./filter.py
+ 
+--- a/texinfo/concept_en.texi
++++ b/texinfo/concept_en.texi
+@@ -153,7 +153,7 @@
+ @end html
+ @end ifhtml
+ @ifnothtml
+-There are a set of special functions: @samp{gamma(x)} -- Gamma function @math{\Gamma(x) = \int_0^\infty dt t^@{x-1@} \exp(-t)} , @samp{psi(x)} -- digamma function @math{\psi(x) = \Gamma</samp>&rsquo;(x)/\Gamma(x)} for x!=0, @samp{ai(x)} -- Airy function Ai(x), @samp{bi(x)} -- Airy function Bi(x), @samp{cl(x)} -- Clausen function, @samp{li2(x)} (or @samp{dilog(x)}) -- dilogarithm @math{Li_2(x) = - \Re \int_0^x ds \log(1-s)/s}, @samp{sinc(x)} -- compute @math{sinc(x) = \sin(\pi x) / (\pi x)} for any value of x, @samp{zeta(x)} -- Riemann zeta function @math{\zeta(s) = \sum_@{k=1@}^\infty k^@{-s@}} for arbitrary s!=1, @samp{eta(x)} -- eta function @math{\eta(s) = (1-2^@{1-s@}) \zeta(s)} for arbitrary s, @samp{lp(l,x)} -- Legendre polynomial @math{P_l(x)}, (|x|<=1, l>=0), @samp{w0(x)}, @samp{w1(x)} -- principal branch of the Lambert @var{W} functions. Function W(x) is defined to be solution of the equation @math{W \exp(W) = x}.
++There are a set of special functions: @samp{gamma(x)} -- Gamma function @math{\Gamma(x) = \int_0^\infty dt t^@{x-1@} \exp(-t)} , @samp{psi(x)} -- digamma function @math{\psi(x) = \Gamma</samp>&rsquo; (x)/ \Gamma(x)} for x!=0, @samp{ai(x)} -- Airy function Ai(x), @samp{bi(x)} -- Airy function Bi(x), @samp{cl(x)} -- Clausen function, @samp{li2(x)} (or @samp{dilog(x)}) -- dilogarithm @math{Li_2(x) = - \Re \int_0^x ds \log(1-s)/s}, @samp{sinc(x)} -- compute @math{sinc(x) = \sin(\pi x) / (\pi x)} for any value of x, @samp{zeta(x)} -- Riemann zeta function @math{\zeta(s) = \sum_@{k=1@}^\infty k^@{-s@}} for arbitrary s!=1, @samp{eta(x)} -- eta function @math{\eta(s) = (1-2^@{1-s@}) \zeta(s)} for arbitrary s, @samp{lp(l,x)} -- Legendre polynomial @math{P_l(x)}, (|x|<=1, l>=0), @samp{w0(x)}, @samp{w1(x)} -- principal branch of the Lambert @var{W} functions. Function W(x) is defined to be solution of the equation @math{W \exp(W) = x}.
+ 
+ The exponent integrals are: @samp{ci(x)} -- Cosine integral @math{Ci(x) = \int_0^x dt \cos(t)/t}, @samp{si(x)} -- Sine integral @math{Si(x) = \int_0^x dt \sin(t)/t}, @samp{erf(x)} -- error function @math{erf(x) = (2/\sqrt(\pi)) \int_0^x dt \exp(-t^2)}, @samp{ei(x)} -- exponential integral @math{Ei(x) := - PV(\int_@{-x@}^\infty dt \exp(-t)/t)} (where PV denotes the principal value of the integral), @samp{e1(x)} -- exponential integral @math{E_1(x) := Re \int_1^\infty dt \exp(-xt)/t} , @samp{e2(x)} -- exponential integral @math{E_2(x) := Re \int_1^\infty dt \exp(-xt)/t^2}, @samp{ei3(x)} -- exponential integral @math{Ei_3(x) = \int_0^x dt \exp(-t^3)} for x>=0.
+ 
+--- /dev/null
++++ b/texinfo/mgl_ru.info-2
+@@ -0,0 +1,884 @@
++This is mgl_ru.info, produced by makeinfo version 4.13 from mgl_ru.texi.
++
++Это документация для MathGL (версии 1.11) - библиотеки классов и
++функций для построения научной графики. Пожалуйста сообщайте о любых
++ошибках в этом руководстве на <mathgl.abalakin at gmail.org>.
++
++   Copyright (C) 2009 Алексей Балакин.
++
++     Permission is granted to copy, distribute and/or modify this
++     document under the terms of the GNU Free Documentation License,
++     Version 1.2 or any later version published by the Free Software
++     Foundation; with no Invariant Sections, with the Front-Cover Texts
++     being "A GNU Manual," and with the Back-Cover Texts as in (a)
++     below.  A copy of the license is included in the section entitled
++     "GNU Free Documentation License."
++
++     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
++     and modify this GNU manual.  Buying copies from the FSF supports
++     it in developing GNU and promoting software freedom."
++
++
++File: mgl_ru.info,  Node: Copying This Manual,  Next: Index,  Prev: Samples,  Up: Top
++
++Appendix A GNU Free Documentation License
++*****************************************
++
++                      Version 1.2, November 2002
++
++     Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
++     51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
++
++     Everyone is permitted to copy and distribute verbatim copies
++     of this license document, but changing it is not allowed.
++
++  0. PREAMBLE
++
++     The purpose of this License is to make a manual, textbook, or other
++     functional and useful document "free" in the sense of freedom: to
++     assure everyone the effective freedom to copy and redistribute it,
++     with or without modifying it, either commercially or
++     noncommercially.  Secondarily, this License preserves for the
++     author and publisher a way to get credit for their work, while not
++     being considered responsible for modifications made by others.
++
++     This License is a kind of "copyleft", which means that derivative
++     works of the document must themselves be free in the same sense.
++     It complements the GNU General Public License, which is a copyleft
++     license designed for free software.
++
++     We have designed this License in order to use it for manuals for
++     free software, because free software needs free documentation: a
++     free program should come with manuals providing the same freedoms
++     that the software does.  But this License is not limited to
++     software manuals; it can be used for any textual work, regardless
++     of subject matter or whether it is published as a printed book.
++     We recommend this License principally for works whose purpose is
++     instruction or reference.
++
++  1. APPLICABILITY AND DEFINITIONS
++
++     This License applies to any manual or other work, in any medium,
++     that contains a notice placed by the copyright holder saying it
++     can be distributed under the terms of this License.  Such a notice
++     grants a world-wide, royalty-free license, unlimited in duration,
++     to use that work under the conditions stated herein.  The
++     "Document", below, refers to any such manual or work.  Any member
++     of the public is a licensee, and is addressed as "you".  You
++     accept the license if you copy, modify or distribute the work in a
++     way requiring permission under copyright law.
++
++     A "Modified Version" of the Document means any work containing the
++     Document or a portion of it, either copied verbatim, or with
++     modifications and/or translated into another language.
++
++     A "Secondary Section" is a named appendix or a front-matter section
++     of the Document that deals exclusively with the relationship of the
++     publishers or authors of the Document to the Document's overall
++     subject (or to related matters) and contains nothing that could
++     fall directly within that overall subject.  (Thus, if the Document
++     is in part a textbook of mathematics, a Secondary Section may not
++     explain any mathematics.)  The relationship could be a matter of
++     historical connection with the subject or with related matters, or
++     of legal, commercial, philosophical, ethical or political position
++     regarding them.
++
++     The "Invariant Sections" are certain Secondary Sections whose
++     titles are designated, as being those of Invariant Sections, in
++     the notice that says that the Document is released under this
++     License.  If a section does not fit the above definition of
++     Secondary then it is not allowed to be designated as Invariant.
++     The Document may contain zero Invariant Sections.  If the Document
++     does not identify any Invariant Sections then there are none.
++
++     The "Cover Texts" are certain short passages of text that are
++     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
++     that says that the Document is released under this License.  A
++     Front-Cover Text may be at most 5 words, and a Back-Cover Text may
++     be at most 25 words.
++
++     A "Transparent" copy of the Document means a machine-readable copy,
++     represented in a format whose specification is available to the
++     general public, that is suitable for revising the document
++     straightforwardly with generic text editors or (for images
++     composed of pixels) generic paint programs or (for drawings) some
++     widely available drawing editor, and that is suitable for input to
++     text formatters or for automatic translation to a variety of
++     formats suitable for input to text formatters.  A copy made in an
++     otherwise Transparent file format whose markup, or absence of
++     markup, has been arranged to thwart or discourage subsequent
++     modification by readers is not Transparent.  An image format is
++     not Transparent if used for any substantial amount of text.  A
++     copy that is not "Transparent" is called "Opaque".
++
++     Examples of suitable formats for Transparent copies include plain
++     ASCII without markup, Texinfo input format, LaTeX input format,
++     SGML or XML using a publicly available DTD, and
++     standard-conforming simple HTML, PostScript or PDF designed for
++     human modification.  Examples of transparent image formats include
++     PNG, XCF and JPG.  Opaque formats include proprietary formats that
++     can be read and edited only by proprietary word processors, SGML or
++     XML for which the DTD and/or processing tools are not generally
++     available, and the machine-generated HTML, PostScript or PDF
++     produced by some word processors for output purposes only.
++
++     The "Title Page" means, for a printed book, the title page itself,
++     plus such following pages as are needed to hold, legibly, the
++     material this License requires to appear in the title page.  For
++     works in formats which do not have any title page as such, "Title
++     Page" means the text near the most prominent appearance of the
++     work's title, preceding the beginning of the body of the text.
++
++     A section "Entitled XYZ" means a named subunit of the Document
++     whose title either is precisely XYZ or contains XYZ in parentheses
++     following text that translates XYZ in another language.  (Here XYZ
++     stands for a specific section name mentioned below, such as
++     "Acknowledgements", "Dedications", "Endorsements", or "History".)
++     To "Preserve the Title" of such a section when you modify the
++     Document means that it remains a section "Entitled XYZ" according
++     to this definition.
++
++     The Document may include Warranty Disclaimers next to the notice
++     which states that this License applies to the Document.  These
++     Warranty Disclaimers are considered to be included by reference in
++     this License, but only as regards disclaiming warranties: any other
++     implication that these Warranty Disclaimers may have is void and
++     has no effect on the meaning of this License.
++
++  2. VERBATIM COPYING
++
++     You may copy and distribute the Document in any medium, either
++     commercially or noncommercially, provided that this License, the
++     copyright notices, and the license notice saying this License
++     applies to the Document are reproduced in all copies, and that you
++     add no other conditions whatsoever to those of this License.  You
++     may not use technical measures to obstruct or control the reading
++     or further copying of the copies you make or distribute.  However,
++     you may accept compensation in exchange for copies.  If you
++     distribute a large enough number of copies you must also follow
++     the conditions in section 3.
++
++     You may also lend copies, under the same conditions stated above,
++     and you may publicly display copies.
++
++  3. COPYING IN QUANTITY
++
++     If you publish printed copies (or copies in media that commonly
++     have printed covers) of the Document, numbering more than 100, and
++     the Document's license notice requires Cover Texts, you must
++     enclose the copies in covers that carry, clearly and legibly, all
++     these Cover Texts: Front-Cover Texts on the front cover, and
++     Back-Cover Texts on the back cover.  Both covers must also clearly
++     and legibly identify you as the publisher of these copies.  The
++     front cover must present the full title with all words of the
++     title equally prominent and visible.  You may add other material
++     on the covers in addition.  Copying with changes limited to the
++     covers, as long as they preserve the title of the Document and
++     satisfy these conditions, can be treated as verbatim copying in
++     other respects.
++
++     If the required texts for either cover are too voluminous to fit
++     legibly, you should put the first ones listed (as many as fit
++     reasonably) on the actual cover, and continue the rest onto
++     adjacent pages.
++
++     If you publish or distribute Opaque copies of the Document
++     numbering more than 100, you must either include a
++     machine-readable Transparent copy along with each Opaque copy, or
++     state in or with each Opaque copy a computer-network location from
++     which the general network-using public has access to download
++     using public-standard network protocols a complete Transparent
++     copy of the Document, free of added material.  If you use the
++     latter option, you must take reasonably prudent steps, when you
++     begin distribution of Opaque copies in quantity, to ensure that
++     this Transparent copy will remain thus accessible at the stated
++     location until at least one year after the last time you
++     distribute an Opaque copy (directly or through your agents or
++     retailers) of that edition to the public.
++
++     It is requested, but not required, that you contact the authors of
++     the Document well before redistributing any large number of
++     copies, to give them a chance to provide you with an updated
++     version of the Document.
++
++  4. MODIFICATIONS
++
++     You may copy and distribute a Modified Version of the Document
++     under the conditions of sections 2 and 3 above, provided that you
++     release the Modified Version under precisely this License, with
++     the Modified Version filling the role of the Document, thus
++     licensing distribution and modification of the Modified Version to
++     whoever possesses a copy of it.  In addition, you must do these
++     things in the Modified Version:
++
++       A. Use in the Title Page (and on the covers, if any) a title
++          distinct from that of the Document, and from those of
++          previous versions (which should, if there were any, be listed
++          in the History section of the Document).  You may use the
++          same title as a previous version if the original publisher of
++          that version gives permission.
++
++       B. List on the Title Page, as authors, one or more persons or
++          entities responsible for authorship of the modifications in
++          the Modified Version, together with at least five of the
++          principal authors of the Document (all of its principal
++          authors, if it has fewer than five), unless they release you
++          from this requirement.
++
++       C. State on the Title page the name of the publisher of the
++          Modified Version, as the publisher.
++
++       D. Preserve all the copyright notices of the Document.
++
++       E. Add an appropriate copyright notice for your modifications
++          adjacent to the other copyright notices.
++
++       F. Include, immediately after the copyright notices, a license
++          notice giving the public permission to use the Modified
++          Version under the terms of this License, in the form shown in
++          the Addendum below.
++
++       G. Preserve in that license notice the full lists of Invariant
++          Sections and required Cover Texts given in the Document's
++          license notice.
++
++       H. Include an unaltered copy of this License.
++
++       I. Preserve the section Entitled "History", Preserve its Title,
++          and add to it an item stating at least the title, year, new
++          authors, and publisher of the Modified Version as given on
++          the Title Page.  If there is no section Entitled "History" in
++          the Document, create one stating the title, year, authors,
++          and publisher of the Document as given on its Title Page,
++          then add an item describing the Modified Version as stated in
++          the previous sentence.
++
++       J. Preserve the network location, if any, given in the Document
++          for public access to a Transparent copy of the Document, and
++          likewise the network locations given in the Document for
++          previous versions it was based on.  These may be placed in
++          the "History" section.  You may omit a network location for a
++          work that was published at least four years before the
++          Document itself, or if the original publisher of the version
++          it refers to gives permission.
++
++       K. For any section Entitled "Acknowledgements" or "Dedications",
++          Preserve the Title of the section, and preserve in the
++          section all the substance and tone of each of the contributor
++          acknowledgements and/or dedications given therein.
++
++       L. Preserve all the Invariant Sections of the Document,
++          unaltered in their text and in their titles.  Section numbers
++          or the equivalent are not considered part of the section
++          titles.
++
++       M. Delete any section Entitled "Endorsements".  Such a section
++          may not be included in the Modified Version.
++
++       N. Do not retitle any existing section to be Entitled
++          "Endorsements" or to conflict in title with any Invariant
++          Section.
++
++       O. Preserve any Warranty Disclaimers.
++
++     If the Modified Version includes new front-matter sections or
++     appendices that qualify as Secondary Sections and contain no
++     material copied from the Document, you may at your option
++     designate some or all of these sections as invariant.  To do this,
++     add their titles to the list of Invariant Sections in the Modified
++     Version's license notice.  These titles must be distinct from any
++     other section titles.
++
++     You may add a section Entitled "Endorsements", provided it contains
++     nothing but endorsements of your Modified Version by various
++     parties--for example, statements of peer review or that the text
++     has been approved by an organization as the authoritative
++     definition of a standard.
++
++     You may add a passage of up to five words as a Front-Cover Text,
++     and a passage of up to 25 words as a Back-Cover Text, to the end
++     of the list of Cover Texts in the Modified Version.  Only one
++     passage of Front-Cover Text and one of Back-Cover Text may be
++     added by (or through arrangements made by) any one entity.  If the
++     Document already includes a cover text for the same cover,
++     previously added by you or by arrangement made by the same entity
++     you are acting on behalf of, you may not add another; but you may
++     replace the old one, on explicit permission from the previous
++     publisher that added the old one.
++
++     The author(s) and publisher(s) of the Document do not by this
++     License give permission to use their names for publicity for or to
++     assert or imply endorsement of any Modified Version.
++
++  5. COMBINING DOCUMENTS
++
++     You may combine the Document with other documents released under
++     this License, under the terms defined in section 4 above for
++     modified versions, provided that you include in the combination
++     all of the Invariant Sections of all of the original documents,
++     unmodified, and list them all as Invariant Sections of your
++     combined work in its license notice, and that you preserve all
++     their Warranty Disclaimers.
++
++     The combined work need only contain one copy of this License, and
++     multiple identical Invariant Sections may be replaced with a single
++     copy.  If there are multiple Invariant Sections with the same name
++     but different contents, make the title of each such section unique
++     by adding at the end of it, in parentheses, the name of the
++     original author or publisher of that section if known, or else a
++     unique number.  Make the same adjustment to the section titles in
++     the list of Invariant Sections in the license notice of the
++     combined work.
++
++     In the combination, you must combine any sections Entitled
++     "History" in the various original documents, forming one section
++     Entitled "History"; likewise combine any sections Entitled
++     "Acknowledgements", and any sections Entitled "Dedications".  You
++     must delete all sections Entitled "Endorsements."
++
++  6. COLLECTIONS OF DOCUMENTS
++
++     You may make a collection consisting of the Document and other
++     documents released under this License, and replace the individual
++     copies of this License in the various documents with a single copy
++     that is included in the collection, provided that you follow the
++     rules of this License for verbatim copying of each of the
++     documents in all other respects.
++
++     You may extract a single document from such a collection, and
++     distribute it individually under this License, provided you insert
++     a copy of this License into the extracted document, and follow
++     this License in all other respects regarding verbatim copying of
++     that document.
++
++  7. AGGREGATION WITH INDEPENDENT WORKS
++
++     A compilation of the Document or its derivatives with other
++     separate and independent documents or works, in or on a volume of
++     a storage or distribution medium, is called an "aggregate" if the
++     copyright resulting from the compilation is not used to limit the
++     legal rights of the compilation's users beyond what the individual
++     works permit.  When the Document is included in an aggregate, this
++     License does not apply to the other works in the aggregate which
++     are not themselves derivative works of the Document.
++
++     If the Cover Text requirement of section 3 is applicable to these
++     copies of the Document, then if the Document is less than one half
++     of the entire aggregate, the Document's Cover Texts may be placed
++     on covers that bracket the Document within the aggregate, or the
++     electronic equivalent of covers if the Document is in electronic
++     form.  Otherwise they must appear on printed covers that bracket
++     the whole aggregate.
++
++  8. TRANSLATION
++
++     Translation is considered a kind of modification, so you may
++     distribute translations of the Document under the terms of section
++     4.  Replacing Invariant Sections with translations requires special
++     permission from their copyright holders, but you may include
++     translations of some or all Invariant Sections in addition to the
++     original versions of these Invariant Sections.  You may include a
++     translation of this License, and all the license notices in the
++     Document, and any Warranty Disclaimers, provided that you also
++     include the original English version of this License and the
++     original versions of those notices and disclaimers.  In case of a
++     disagreement between the translation and the original version of
++     this License or a notice or disclaimer, the original version will
++     prevail.
++
++     If a section in the Document is Entitled "Acknowledgements",
++     "Dedications", or "History", the requirement (section 4) to
++     Preserve its Title (section 1) will typically require changing the
++     actual title.
++
++  9. TERMINATION
++
++     You may not copy, modify, sublicense, or distribute the Document
++     except as expressly provided for under this License.  Any other
++     attempt to copy, modify, sublicense or distribute the Document is
++     void, and will automatically terminate your rights under this
++     License.  However, parties who have received copies, or rights,
++     from you under this License will not have their licenses
++     terminated so long as such parties remain in full compliance.
++
++ 10. FUTURE REVISIONS OF THIS LICENSE
++
++     The Free Software Foundation may publish new, revised versions of
++     the GNU Free Documentation License from time to time.  Such new
++     versions will be similar in spirit to the present version, but may
++     differ in detail to address new problems or concerns.  See
++     `http://www.gnu.org/copyleft/'.
++
++     Each version of the License is given a distinguishing version
++     number.  If the Document specifies that a particular numbered
++     version of this License "or any later version" applies to it, you
++     have the option of following the terms and conditions either of
++     that specified version or of any later version that has been
++     published (not as a draft) by the Free Software Foundation.  If
++     the Document does not specify a version number of this License,
++     you may choose any version ever published (not as a draft) by the
++     Free Software Foundation.
++
++ADDENDUM: How to use this License for your documents
++====================================================
++
++To use this License in a document you have written, include a copy of
++the License in the document and put the following copyright and license
++notices just after the title page:
++
++       Copyright (C)  YEAR  YOUR NAME.
++       Permission is granted to copy, distribute and/or modify this document
++       under the terms of the GNU Free Documentation License, Version 1.2
++       or any later version published by the Free Software Foundation;
++       with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
++       Texts.  A copy of the license is included in the section entitled ``GNU
++       Free Documentation License''.
++
++   If you have Invariant Sections, Front-Cover Texts and Back-Cover
++Texts, replace the "with...Texts." line with this:
++
++         with the Invariant Sections being LIST THEIR TITLES, with
++         the Front-Cover Texts being LIST, and with the Back-Cover Texts
++         being LIST.
++
++   If you have Invariant Sections without Cover Texts, or some other
++combination of the three, merge those two alternatives to suit the
++situation.
++
++   If your document contains nontrivial examples of program code, we
++recommend releasing these examples in parallel under your choice of
++free software license, such as the GNU General Public License, to
++permit their use in free software.
++
++
++File: mgl_ru.info,  Node: Index,  Prev: Copying This Manual,  Up: Top
++
++Индекс
++************
++
++ [index ]
++* Menu:
++
++* AddLegend:                             Legend sample.       (line   6)
++* addlegend:                             Legend.              (line  29)
++* addto:                                 Operators.           (line  18)
++* adjust:                                Axis settings.       (line 114)
++* Alpha <1>:                             3D plot sample.      (line   6)
++* Alpha <2>:                             2D plot sample.      (line   6)
++* Alpha:                                 Transparent surface sample.
++                                                              (line   6)
++* alpha <1>:                             Command options.     (line  20)
++* alpha:                                 Transparency.        (line  15)
++* alphadef <1>:                          Command options.     (line  20)
++* alphadef:                              Transparency.        (line  19)
++* ambient <1>:                           Command options.     (line  26)
++* ambient:                               Lighting.            (line  25)
++* Area <1>:                              Area gradient sample.
++                                                              (line   6)
++* Area:                                  Area sample.         (line   6)
++* area:                                  1D plotting.         (line  56)
++* arrowsize:                             Default sizes.       (line  18)
++* aspect:                                Transformation matrix.
++                                                              (line  61)
++* Axial <1>:                             Adding mesh sample.  (line   6)
++* Axial:                                 Axial sample.        (line   6)
++* axial:                                 2D plotting.         (line 135)
++* axialdir:                              Other settings.      (line  31)
++* Axis <1>:                              Log-log sample.      (line   6)
++* Axis <2>:                              Semi-log sample.     (line   6)
++* Axis <3>:                              2-axes sample.       (line   6)
++* Axis <4>:                              Curvelinear coorinates sample.
++                                                              (line   6)
++* Axis <5>:                              Dens3 sample.        (line   6)
++* Axis <6>:                              Ring chart sample.   (line   6)
++* Axis:                                  Pie chart sample.    (line   6)
++* axis <1>:                              Axis and Colorbar.   (line  10)
++* axis:                                  Axis settings.       (line  12)
++* ball:                                  Primitives drawing.  (line  12)
++* Barh:                                  Barh sample.         (line   6)
++* barh:                                  1D plotting.         (line 101)
++* Bars <1>:                              1D plot sample.      (line   6)
++* Bars <2>:                              Bars fall sample.    (line   6)
++* Bars <3>:                              Bars above sample.   (line   6)
++* Bars <4>:                              Bars 2 colors sample.
++                                                              (line   6)
++* Bars:                                  Bars sample.         (line   6)
++* bars:                                  1D plotting.         (line  87)
++* barwidth:                              Default sizes.       (line  11)
++* beam:                                  3D plotting.         (line 119)
++* Belt:                                  Belt sample.         (line   6)
++* belt:                                  2D plotting.         (line  57)
++* box:                                   Axis and Colorbar.   (line  43)
++* BoxPlot:                               BoxPlot sample.      (line   6)
++* boxplot:                               1D plotting.         (line 182)
++* Boxs:                                  Boxs sample.         (line   6)
++* boxs:                                  2D plotting.         (line  66)
++* call:                                  Program flow.        (line  34)
++* caxis:                                 Axis settings.       (line  53)
++* Chart <1>:                             Ring chart sample.   (line   6)
++* Chart <2>:                             Pie chart sample.    (line   6)
++* Chart:                                 Chart sample.        (line   6)
++* chart:                                 1D plotting.         (line 115)
++* chdir:                                 Program flow.        (line   9)
++* clearlegend:                           Legend.              (line  34)
++* clf:                                   Primitives drawing.  (line   9)
++* Cloud:                                 Cloud sample.        (line   6)
++* cloud:                                 3D plotting.         (line 109)
++* CloudP:                                CloudP sample.       (line   6)
++* Colorbar <1>:                          Color schemes sample.
++                                                              (line   6)
++* Colorbar:                              Dens sample.         (line   6)
++* colorbar:                              Axis and Colorbar.   (line  17)
++* columnplot:                            Transformation matrix.
++                                                              (line  39)
++* combine:                               Make another data.   (line   6)
++* cone:                                  Primitives drawing.  (line  55)
++* Cont <1>:                              Cont with labels sample.
++                                                              (line   6)
++* Cont <2>:                              Surf & Cont sample.  (line   6)
++* Cont <3>:                              Adding mesh sample.  (line   6)
++* Cont:                                  Cont sample.         (line   6)
++* cont:                                  2D plotting.         (line  89)
++* Cont3:                                 Cont3 sample.        (line   6)
++* cont3:                                 3D plotting.         (line  54)
++* conta:                                 3D plotting.         (line  72)
++* ContD:                                 ContD sample.        (line   6)
++* contd:                                 2D plotting.         (line 119)
++* ContF:                                 ContF sample.        (line   6)
++* contf:                                 2D plotting.         (line 105)
++* ContF3 <1>:                            Isocaps sample.      (line   6)
++* ContF3:                                ContF3 sample.       (line   6)
++* contf3:                                3D plotting.         (line  76)
++* contfa:                                3D plotting.         (line  93)
++* contfx:                                Other plotting.      (line  36)
++* contfy:                                Other plotting.      (line  36)
++* contfz:                                Other plotting.      (line  36)
++* ContX:                                 Cont projection sample.
++                                                              (line   6)
++* contx:                                 Other plotting.      (line  27)
++* ContY:                                 Cont projection sample.
++                                                              (line   6)
++* conty:                                 Other plotting.      (line  27)
++* ContZ:                                 Cont projection sample.
++                                                              (line   6)
++* contz:                                 Other plotting.      (line  27)
++* copy:                                  Data create.         (line  31)
++* cosfft:                                Change data.         (line  40)
++* crange <1>:                            Command options.     (line  30)
++* crange:                                Axis settings.       (line  75)
++* crop:                                  Rearrange data.      (line  31)
++* Crust:                                 Crust sample.        (line   6)
++* crust:                                 Other plotting.      (line  51)
++* ctick:                                 Axis settings.       (line  92)
++* cumsum:                                Change data.         (line  11)
++* curve:                                 Primitives drawing.  (line  22)
++* cut <1>:                               Command options.     (line  42)
++* cut:                                   Cutting.             (line  10)
++* CutMax <1>:                            Isocaps sample.      (line   6)
++* CutMax:                                CutMinMax sample.    (line   6)
++* CutMin <1>:                            Isocaps sample.      (line   6)
++* CutMin:                                CutMinMax sample.    (line   6)
++* CutOff:                                CutOff sample.       (line   6)
++* defchr:                                Program flow.        (line  21)
++* define:                                Program flow.        (line  12)
++* defnum:                                Program flow.        (line  25)
++* defpal:                                Program flow.        (line  29)
++* delete:                                Rearrange data.      (line  35)
++* Dens <1>:                              Flow & Dens sample.  (line   6)
++* Dens <2>:                              Adding mesh sample.  (line   6)
++* Dens <3>:                              3D plot sample.      (line   6)
++* Dens <4>:                              2D plot sample.      (line   6)
++* Dens:                                  Dens sample.         (line   6)
++* dens:                                  2D plotting.         (line  81)
++* Dens3:                                 Dens3 sample.        (line   6)
++* dens3:                                 3D plotting.         (line  41)
++* densa:                                 3D plotting.         (line  50)
++* DensX:                                 Dens projection sample.
++                                                              (line   6)
++* densx:                                 Other plotting.      (line  18)
++* DensY:                                 Dens projection sample.
++                                                              (line   6)
++* densy:                                 Other plotting.      (line  18)
++* DensZ:                                 Dens projection sample.
++                                                              (line   6)
++* densz:                                 Other plotting.      (line  18)
++* Dew:                                   Dew sample.          (line   6)
++* dew:                                   Vector fields.       (line  73)
++* diff:                                  Change data.         (line  17)
++* diff2:                                 Change data.         (line  33)
++* divto:                                 Operators.           (line  12)
++* Dots:                                  Dots sample.         (line   6)
++* dots:                                  Other plotting.      (line  44)
++* Drop <1>:                              Molecules drawing sample.
++                                                              (line   6)
++* Drop:                                  Drops sample.        (line   6)
++* drop:                                  Primitives drawing.  (line  46)
++* else:                                  Program flow.        (line  64)
++* elseif:                                Program flow.        (line  55)
++* endif:                                 Program flow.        (line  68)
++* Envelop:                               Envelop sample.      (line   6)
++* envelop:                               Change data.         (line  72)
++* Error:                                 Error sample.        (line   6)
++* error:                                 1D plotting.         (line 173)
++* evaluate:                              Make another data.   (line  10)
++* export:                                File I/O.            (line  48)
++* extend:                                Rearrange data.      (line  12)
++* facex:                                 Primitives drawing.  (line  30)
++* facey:                                 Primitives drawing.  (line  31)
++* facez:                                 Primitives drawing.  (line  32)
++* Fall:                                  Fall sample.         (line   6)
++* fall:                                  2D plotting.         (line  47)
++* fgets:                                 Text printing.       (line  52)
++* fill:                                  Data filling.        (line   6)
++* Fit:                                   Fitting sample.      (line   6)
++* fit:                                   Nonlinear fitting.   (line  38)
++* fits:                                  Nonlinear fitting.   (line  30)
++* Flow <1>:                              Flow & Dens sample.  (line   6)
++* Flow <2>:                              Flow 3D sample.      (line   6)
++* Flow:                                  Flow sample.         (line   6)
++* flow:                                  Vector fields.       (line  82)
++* Fog:                                   Surface in fog sample.
++                                                              (line   6)
++* fog:                                   Fog.                 (line   6)
++* font:                                  Other settings.      (line   6)
++* fontsize:                              Command options.     (line  46)
++* for:                                   Program flow.        (line  72)
++* fplot:                                 Other plotting.      (line  94)
++* fsurf:                                 Other plotting.      (line 105)
++* func:                                  Program flow.        (line  38)
++* Grad:                                  Grad sample.         (line   6)
++* grad:                                  2D plotting.         (line 151)
++* grid:                                  Axis and Colorbar.   (line  38)
++* grid2:                                 2D plotting.         (line 161)
++* grid3:                                 3D plotting.         (line  98)
++* grida:                                 3D plotting.         (line 105)
++* hankel:                                Change data.         (line  44)
++* hist:                                  Make another data.   (line  20)
++* idset:                                 Data create.         (line  38)
++* if:                                    Program flow.        (line  49)
++* import:                                File I/O.            (line  43)
++* info:                                  Data create.         (line  42)
++* inplot:                                Transformation matrix.
++                                                              (line  30)
++* insert:                                Rearrange data.      (line  42)
++* integrate:                             Change data.         (line  13)
++* jacobian:                              Make another data.   (line 140)
++* Legend:                                Legend sample.       (line   6)
++* legend <1>:                            Command options.     (line  56)
++* legend:                                Legend.              (line  18)
++* legendbox:                             Legend.              (line  37)
++* legendmarks:                           Legend.              (line  41)
++* Light:                                 Several light sample.
++                                                              (line   6)
++* light:                                 Lighting.            (line  13)
++* Line <1>:                              Arrow styles sample. (line   6)
++* Line:                                  Line styles sample.  (line   6)
++* line:                                  Primitives drawing.  (line  16)
++* linewidth:                             Default sizes.       (line  22)
++* list:                                  Data create.         (line  16)
++* Map:                                   Map sample.          (line   6)
++* map:                                   Dual plotting.       (line  76)
++* Mark <1>:                              Line styles sample.  (line   6)
++* Mark:                                  Mark sample.         (line   6)
++* mark:                                  1D plotting.         (line 153)
++* marksize <1>:                          Command options.     (line  49)
++* marksize:                              Default sizes.       (line  15)
++* max:                                   Make another data.   (line  47)
++* Mesh:                                  Mesh sample.         (line   6)
++* mesh:                                  2D plotting.         (line  40)
++* meshnum <1>:                           Command options.     (line  52)
++* meshnum:                               Other settings.      (line  25)
++* mglParse:                              Parser sample.       (line   6)
++* mglPDE:                                PDE sample.          (line   6)
++* mglQO2d:                               Beam tracing sample. (line   6)
++* mglRay <1>:                            Beam tracing sample. (line   6)
++* mglRay:                                PDE sample.          (line   6)
++* min:                                   Make another data.   (line  52)
++* mirror:                                Change data.         (line  57)
++* modify:                                Data filling.        (line   6)
++* momentum:                              Make another data.   (line  36)
++* multo:                                 Operators.           (line   6)
++* new:                                   Data create.         (line   6)
++* next:                                  Program flow.        (line  81)
++* norm:                                  Change data.         (line  83)
++* normsl:                                Change data.         (line  76)
++* once:                                  Program flow.        (line  85)
++* origin:                                Axis settings.       (line  58)
++* palette:                               Other settings.      (line  15)
++* pde:                                   Make another data.   (line  94)
++* perspective:                           Transformation matrix.
++                                                              (line  65)
++* Pipe <1>:                              Pipe 3D sample.      (line   6)
++* Pipe:                                  Pipe sample.         (line   6)
++* pipe:                                  Vector fields.       (line 114)
++* Plot <1>:                              Log-log sample.      (line   6)
++* Plot <2>:                              Semi-log sample.     (line   6)
++* Plot <3>:                              Legend sample.       (line   6)
++* Plot <4>:                              1D plot sample.      (line   6)
++* Plot:                                  Plot sample.         (line   6)
++* plot:                                  1D plotting.         (line  30)
++* plotfactor:                            Zooming.             (line  10)
++* put:                                   Data filling.        (line  29)
++* Puts <1>:                              Font faces sample.   (line   6)
++* Puts <2>:                              TeX parsing sample.  (line   6)
++* Puts:                                  Text styles sample.  (line   6)
++* PutsFit:                               Fitting sample.      (line   6)
++* putsfit:                               Nonlinear fitting.   (line  46)
++* qo2d:                                  Make another data.   (line 125)
++* quadplot:                              Other plotting.      (line  83)
++* Radar:                                 Radar sample.        (line   6)
++* radar:                                 1D plotting.         (line  38)
++* ranges:                                Axis settings.       (line  14)
++* ray:                                   Make another data.   (line 114)
++* read:                                  File I/O.            (line   6)
++* readall:                               File I/O.            (line  21)
++* readhdf:                               File I/O.            (line  37)
++* readmat:                               File I/O.            (line  16)
++* rearrange:                             Rearrange data.      (line   6)
++* rect:                                  Primitives drawing.  (line  61)
++* Region <1>:                            Region gradient sample.
++                                                              (line   6)
++* Region:                                Region sample.       (line   6)
++* region:                                1D plotting.         (line  69)
++* resize:                                Make another data.   (line  56)
++* return:                                Program flow.        (line  45)
++* roll:                                  Change data.         (line  52)
++* rotate:                                Transformation matrix.
++                                                              (line  53)
++* rotatetext:                            Other settings.      (line  11)
++* save:                                  File I/O.            (line  34)
++* savehdf:                               File I/O.            (line  40)
++* setsize:                               Export to file.      (line  12)
++* SetTicks <1>:                          Log-log sample.      (line   6)
++* SetTicks:                              Semi-log sample.     (line   6)
++* SetTicksVal <1>:                       StickPlot sample.    (line   6)
++* SetTicksVal <2>:                       ColumnPlot sample.   (line   6)
++* SetTicksVal:                           Manual ticks sample. (line   6)
++* Sew:                                   Sew sample.          (line   6)
++* sew:                                   Change data.         (line  61)
++* sinfft:                                Change data.         (line  37)
++* smooth:                                Change data.         (line  66)
++* Sphere:                                Molecules drawing sample.
++                                                              (line   6)
++* sphere:                                Primitives drawing.  (line  42)
++* squeeze:                               Rearrange data.      (line  25)
++* Stem:                                  Stem sample.         (line   6)
++* stem:                                  1D plotting.         (line  79)
++* Step:                                  Step sample.         (line   6)
++* step:                                  1D plotting.         (line 128)
++* STFA:                                  STFA sample.         (line   6)
++* stfa:                                  Dual plotting.       (line  86)
++* stfad:                                 Make another data.   (line  87)
++* stickplot:                             Transformation matrix.
++                                                              (line  46)
++* stop:                                  Program flow.        (line  89)
++* subdata:                               Make another data.   (line  60)
++* SubPlot <1>:                           Adding mesh sample.  (line   6)
++* SubPlot:                               1D plot sample.      (line   6)
++* subplot:                               Transformation matrix.
++                                                              (line  15)
++* subto:                                 Operators.           (line  24)
++* sum:                                   Make another data.   (line  43)
++* Surf <1>:                              Mirrored surface sample.
++                                                              (line   6)
++* Surf <2>:                              Several light sample.
++                                                              (line   6)
++* Surf <3>:                              Surf & Cont sample.  (line   6)
++* Surf <4>:                              Adding mesh sample.  (line   6)
++* Surf <5>:                              3D plot sample.      (line   6)
++* Surf <6>:                              2D plot sample.      (line   6)
++* Surf <7>:                              Sharp colors sample. (line   6)
++* Surf <8>:                              Surface in fog sample.
++                                                              (line   6)
++* Surf <9>:                              Transparent surface sample.
++                                                              (line   6)
++* Surf:                                  Surf sample.         (line   6)
++* surf:                                  2D plotting.         (line  32)
++* Surf3 <1>:                             Coloring by coordinates sample.
++                                                              (line   6)
++* Surf3 <2>:                             CutOff sample.       (line   6)
++* Surf3 <3>:                             Isocaps sample.      (line   6)
++* Surf3 <4>:                             CutMinMax sample.    (line   6)
++* Surf3:                                 Surf3 sample.        (line   6)
++* surf3:                                 3D plotting.         (line  27)
++* Surf3A:                                Surf3A sample.       (line   6)
++* surf3a:                                Dual plotting.       (line  53)
++* Surf3C:                                Surf3C sample.       (line   6)
++* surf3c:                                Dual plotting.       (line  31)
++* SurfA:                                 SurfA sample.        (line   6)
++* surfa:                                 Dual plotting.       (line  45)
++* SurfC:                                 SurfC sample.        (line   6)
++* surfc:                                 Dual plotting.       (line  23)
++* swap:                                  Change data.         (line  49)
++* Tens:                                  Tens sample.         (line   6)
++* tens:                                  1D plotting.         (line  48)
++* Ternary:                               Ternary plot sample. (line   6)
++* ternary:                               Axis settings.       (line  63)
++* Text:                                  Text sample.         (line   6)
++* text:                                  Text printing.       (line  28)
++* TextMark:                              TextMark sample.     (line   6)
++* textmark:                              1D plotting.         (line 163)
++* ticklen:                               Default sizes.       (line  28)
++* tickstl:                               Default sizes.       (line  33)
++* Tile:                                  Tile sample.         (line   6)
++* tile:                                  2D plotting.         (line  73)
++* TileS:                                 TileS sample.        (line   6)
++* tiles:                                 Dual plotting.       (line  68)
++* title:                                 Text printing.       (line  48)
++* tlabel:                                Axis and Colorbar.   (line  51)
++* Torus:                                 Torus sample.        (line   6)
++* torus:                                 1D plotting.         (line 135)
++* trace:                                 Make another data.   (line  67)
++* Traj:                                  Traj sample.         (line   6)
++* traj:                                  Vector fields.       (line  20)
++* transform:                             Make another data.   (line  73)
++* transforma:                            Make another data.   (line  83)
++* transparent:                           Transparency.        (line  23)
++* transpose:                             Rearrange data.      (line  21)
++* TranspType <1>:                        Lamp-like transparency.
++                                                              (line   6)
++* TranspType <2>:                        Glass-like transparency.
++                                                              (line   6)
++* TranspType:                            Normal transparency. (line   6)
++* transptype:                            Transparency.        (line  26)
++* tricont:                               Other plotting.      (line  70)
++* triplot:                               Other plotting.      (line  58)
++* Tube:                                  Tube sample.         (line   6)
++* tube:                                  1D plotting.         (line 143)
++* var:                                   Data create.         (line  11)
++* Vect <1>:                              Vect 3D sample.      (line   6)
++* Vect:                                  Vect sample.         (line   6)
++* vect:                                  Vector fields.       (line  30)
++* VectC <1>:                             VectC 3D sample.     (line   6)
++* VectC:                                 VectC sample.        (line   6)
++* vectc:                                 Vector fields.       (line  49)
++* VectL <1>:                             VectL 3D sample.     (line   6)
++* VectL:                                 VectL sample.        (line   6)
++* vectl:                                 Vector fields.       (line  61)
++* write:                                 Export to file.      (line   6)
++* xlabel:                                Axis and Colorbar.   (line  48)
++* xrange <1>:                            Command options.     (line  33)
++* xrange:                                Axis settings.       (line  72)
++* xtick:                                 Axis settings.       (line  89)
++* ylabel:                                Axis and Colorbar.   (line  49)
++* yrange <1>:                            Command options.     (line  36)
++* yrange:                                Axis settings.       (line  73)
++* ytick:                                 Axis settings.       (line  90)
++* zlabel:                                Axis and Colorbar.   (line  50)
++* zoom:                                  Zooming.             (line  16)
++* zrange <1>:                            Command options.     (line  39)
++* zrange:                                Axis settings.       (line  74)
++* ztick:                                 Axis settings.       (line  91)
++* Стиль линий:                           Line styles.         (line   6)
++* Стиль маркеров:                        Line styles.         (line   6)
++* Стиль стрелок:                         Line styles.         (line   6)
++* Стиль текста:                          Font styles.         (line   6)
++* Текстовые формулы:                     Textual formulas.    (line   6)
++* Цветовая схема:                        Color scheme.        (line   6)
++
++
++
++
++Local Variables:
++coding: utf-8
++End:
+--- a/texinfo/png/Makefile.in
++++ b/texinfo/png/Makefile.in
+@@ -38,7 +38,11 @@
  DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
@@ -9359,9 +16462,9 @@ Last-Update: <YYYY-MM-DD>
  am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
  	$(ACLOCAL_M4)
  mkinstalldirs = $(install_sh) -d
---- mathgl-1.11.orig/include/Makefile.in
-+++ mathgl-1.11/include/Makefile.in
-@@ -39,7 +39,11 @@ DIST_COMMON = $(am__nobase_include_HEADE
+--- a/include/Makefile.in
++++ b/include/Makefile.in
+@@ -39,7 +39,11 @@
  	$(srcdir)/Makefile.in
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
@@ -9374,9 +16477,9 @@ Last-Update: <YYYY-MM-DD>
  am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
  	$(ACLOCAL_M4)
  mkinstalldirs = $(install_sh) -d
---- mathgl-1.11.orig/lang/Makefile.in
-+++ mathgl-1.11/lang/Makefile.in
-@@ -45,7 +45,11 @@ DIST_COMMON = $(am__dist_octave_DATA_DIS
+--- a/lang/Makefile.in
++++ b/lang/Makefile.in
+@@ -45,7 +45,11 @@
  	$(srcdir)/Makefile.am $(srcdir)/Makefile.in
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
@@ -9389,9 +16492,9 @@ Last-Update: <YYYY-MM-DD>
  am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
  	$(ACLOCAL_M4)
  mkinstalldirs = $(install_sh) -d
---- mathgl-1.11.orig/examples/Makefile.in
-+++ mathgl-1.11/examples/Makefile.in
-@@ -66,7 +66,11 @@ DIST_COMMON = $(srcdir)/Makefile.am $(sr
+--- a/examples/Makefile.in
++++ b/examples/Makefile.in
+@@ -66,7 +66,11 @@
  subdir = examples
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
@@ -9404,9 +16507,9 @@ Last-Update: <YYYY-MM-DD>
  am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
  	$(ACLOCAL_M4)
  mkinstalldirs = $(install_sh) -d
---- mathgl-1.11.orig/mgl/Makefile.in
-+++ mathgl-1.11/mgl/Makefile.in
-@@ -48,7 +48,11 @@ subdir = mgl
+--- a/mgl/Makefile.in
++++ b/mgl/Makefile.in
+@@ -48,7 +48,11 @@
  DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
@@ -9419,9 +16522,9 @@ Last-Update: <YYYY-MM-DD>
  am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
  	$(ACLOCAL_M4)
  mkinstalldirs = $(install_sh) -d
---- mathgl-1.11.orig/utils/Makefile.in
-+++ mathgl-1.11/utils/Makefile.in
-@@ -42,7 +42,11 @@ subdir = utils
+--- a/utils/Makefile.in
++++ b/utils/Makefile.in
+@@ -42,7 +42,11 @@
  DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
diff --git a/debian/python-mathgl.debhelper.log b/debian/python-mathgl.debhelper.log
new file mode 100644
index 0000000..1174084
--- /dev/null
+++ b/debian/python-mathgl.debhelper.log
@@ -0,0 +1,15 @@
+dh_prep
+dh_installchangelogs
+dh_installdocs
+dh_install
+dh_link
+dh_strip
+dh_compress
+dh_fixperms
+dh_makeshlibs
+dh_installdeb
+dh_installman
+dh_shlibdeps
+dh_gencontrol
+dh_md5sums
+dh_builddeb
diff --git a/debian/python-mathgl.substvars b/debian/python-mathgl.substvars
new file mode 100644
index 0000000..e6e79fa
--- /dev/null
+++ b/debian/python-mathgl.substvars
@@ -0,0 +1,2 @@
+shlibs:Depends=libc6 (>= 2.2.5), libgcc1 (>= 1:4.1.1), libmgl5 (>= 1.11), libstdc++6 (>= 4.1.1)
+misc:Depends=
diff --git a/debian/python-mathgl/DEBIAN/control b/debian/python-mathgl/DEBIAN/control
new file mode 100644
index 0000000..0c84205
--- /dev/null
+++ b/debian/python-mathgl/DEBIAN/control
@@ -0,0 +1,18 @@
+Package: python-mathgl
+Source: mathgl
+Version: 1.11-1
+Architecture: amd64
+Maintainer: Debian Science Maintainers <debian-science-maintainers at lists.alioth.debian.org>
+Installed-Size: 11724
+Depends: libc6 (>= 2.2.5), libgcc1 (>= 1:4.1.1), libmgl5 (>= 1.11), libstdc++6 (>= 4.1.1)
+Section: python
+Priority: optional
+Homepage: http://mathgl.sourceforge.net/index.html
+Description: library for scientific graphs. (Python module)
+ A free cross-platform library of fast C++ routines for plotting data in up
+ to 3 dimensions. It can export plots to bitmaps and vector EPS, SVG, IDTF
+ files. There are simple window interfaces based on GLUT, FLTK and/or Qt.
+ MathGL can also be used in the console. There are interfaces to a set of
+ languages, such as, C, Fortran, Pascal, Forth, Python, Octave.
+ .
+ This package provides the Python module for mathgl.
diff --git a/debian/python-mathgl/DEBIAN/md5sums b/debian/python-mathgl/DEBIAN/md5sums
new file mode 100644
index 0000000..259b1a6
--- /dev/null
+++ b/debian/python-mathgl/DEBIAN/md5sums
@@ -0,0 +1,7 @@
+cf8f2b72850d3555af61fc4a67098936  usr/lib/python2.6/dist-packages/_mathgl.a
+8d1b4fb7c157154a76f5a55eafac90c3  usr/lib/python2.6/dist-packages/_mathgl.la
+631c5c93075d8e982ea7530c5264bf25  usr/lib/python2.6/dist-packages/_mathgl.so
+16f47fba3b7b87b86a4f5fcd1b354544  usr/lib/python2.6/dist-packages/mathgl.py
+1c92e8b7f012e099103c470392856dbc  usr/share/doc/python-mathgl/changelog.Debian.gz
+a280771232296099803f36a37509d1ca  usr/share/doc/python-mathgl/changelog.gz
+3a712fb4482d591b961d2f1791b6aa63  usr/share/doc/python-mathgl/copyright
diff --git a/debian/python-mathgl/usr/lib/python2.6/dist-packages/_mathgl.a b/debian/python-mathgl/usr/lib/python2.6/dist-packages/_mathgl.a
new file mode 100644
index 0000000..65f9fdb
Binary files /dev/null and b/debian/python-mathgl/usr/lib/python2.6/dist-packages/_mathgl.a differ
diff --git a/debian/python-mathgl/usr/lib/python2.6/dist-packages/_mathgl.la b/debian/python-mathgl/usr/lib/python2.6/dist-packages/_mathgl.la
new file mode 100644
index 0000000..277debd
--- /dev/null
+++ b/debian/python-mathgl/usr/lib/python2.6/dist-packages/_mathgl.la
@@ -0,0 +1,41 @@
+# _mathgl.la - a libtool library file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='_mathgl.so'
+
+# Names of this library.
+library_names='_mathgl.so _mathgl.so _mathgl.so'
+
+# The name of the static archive.
+old_library='_mathgl.a'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -R/tmp/buildd/libhdf4-4.2r4/HDF4/mfhdf/libsrc/.libs -R/tmp/buildd/libhdf4-4.2r4/HDF4/hdf/src/.libs /usr/lib/libmgl.la -lpng -lGL -L/usr/lib -lgsl -lgslcblas /usr/lib/libmfhdf.la /usr/lib/libdf.la /usr/lib/libhdf5.la -lpthread -lz /usr/lib/libgif.la /usr/lib/libjpeg.la'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for _mathgl.
+current=0
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=yes
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=yes
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/lib/python2.6/dist-packages'
diff --git a/debian/python-mathgl/usr/lib/python2.6/dist-packages/_mathgl.so b/debian/python-mathgl/usr/lib/python2.6/dist-packages/_mathgl.so
new file mode 100644
index 0000000..49ef856
Binary files /dev/null and b/debian/python-mathgl/usr/lib/python2.6/dist-packages/_mathgl.so differ
diff --git a/debian/python-mathgl/usr/lib/python2.6/dist-packages/mathgl.py b/debian/python-mathgl/usr/lib/python2.6/dist-packages/mathgl.py
new file mode 100644
index 0000000..48b73d8
--- /dev/null
+++ b/debian/python-mathgl/usr/lib/python2.6/dist-packages/mathgl.py
@@ -0,0 +1,403 @@
+# This file was automatically generated by SWIG (http://www.swig.org).
+# Version 1.3.40
+#
+# Do not make changes to this file unless you know what you are doing--modify
+# the SWIG interface file instead.
+# This file is compatible with both classic and new-style classes.
+
+from sys import version_info
+if version_info >= (2,6,0):
+    def swig_import_helper():
+        from os.path import dirname
+        import imp
+        fp = None
+        try:
+            fp, pathname, description = imp.find_module('_mathgl', [dirname(__file__)])
+        except ImportError:
+            import _mathgl
+            return _mathgl
+        if fp is not None:
+            try:
+                _mod = imp.load_module('_mathgl', fp, pathname, description)
+            finally:
+                fp.close()
+            return _mod
+    _mathgl = swig_import_helper()
+    del swig_import_helper
+else:
+    import _mathgl
+del version_info
+try:
+    _swig_property = property
+except NameError:
+    pass # Python < 2.2 doesn't have 'property'.
+def _swig_setattr_nondynamic(self,class_type,name,value,static=1):
+    if (name == "thisown"): return self.this.own(value)
+    if (name == "this"):
+        if type(value).__name__ == 'SwigPyObject':
+            self.__dict__[name] = value
+            return
+    method = class_type.__swig_setmethods__.get(name,None)
+    if method: return method(self,value)
+    if (not static) or hasattr(self,name):
+        self.__dict__[name] = value
+    else:
+        raise AttributeError("You cannot add attributes to %s" % self)
+
+def _swig_setattr(self,class_type,name,value):
+    return _swig_setattr_nondynamic(self,class_type,name,value,0)
+
+def _swig_getattr(self,class_type,name):
+    if (name == "thisown"): return self.this.own()
+    method = class_type.__swig_getmethods__.get(name,None)
+    if method: return method(self)
+    raise AttributeError(name)
+
+def _swig_repr(self):
+    try: strthis = "proxy of " + self.this.__repr__()
+    except: strthis = ""
+    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)
+
+try:
+    _object = object
+    _newclass = 1
+except AttributeError:
+    class _object : pass
+    _newclass = 0
+
+
+class mglPoint(_object):
+    __swig_setmethods__ = {}
+    __setattr__ = lambda self, name, value: _swig_setattr(self, mglPoint, name, value)
+    __swig_getmethods__ = {}
+    __getattr__ = lambda self, name: _swig_getattr(self, mglPoint, name)
+    __repr__ = _swig_repr
+    __swig_setmethods__["x"] = _mathgl.mglPoint_x_set
+    __swig_getmethods__["x"] = _mathgl.mglPoint_x_get
+    if _newclass:x = _swig_property(_mathgl.mglPoint_x_get, _mathgl.mglPoint_x_set)
+    __swig_setmethods__["y"] = _mathgl.mglPoint_y_set
+    __swig_getmethods__["y"] = _mathgl.mglPoint_y_get
+    if _newclass:y = _swig_property(_mathgl.mglPoint_y_get, _mathgl.mglPoint_y_set)
+    __swig_setmethods__["z"] = _mathgl.mglPoint_z_set
+    __swig_getmethods__["z"] = _mathgl.mglPoint_z_get
+    if _newclass:z = _swig_property(_mathgl.mglPoint_z_get, _mathgl.mglPoint_z_set)
+    def __init__(self, X = 0, Y = 0, Z = 0): 
+        this = _mathgl.new_mglPoint(X, Y, Z)
+        try: self.this.append(this)
+        except: self.this = this
+    __swig_destroy__ = _mathgl.delete_mglPoint
+    __del__ = lambda self : None;
+mglPoint_swigregister = _mathgl.mglPoint_swigregister
+mglPoint_swigregister(mglPoint)
+cvar = _mathgl.cvar
+NaN = cvar.NaN
+pi = cvar.pi
+
+class mglData(_object):
+    __swig_setmethods__ = {}
+    __setattr__ = lambda self, name, value: _swig_setattr(self, mglData, name, value)
+    __swig_getmethods__ = {}
+    __getattr__ = lambda self, name: _swig_getattr(self, mglData, name)
+    __repr__ = _swig_repr
+    __swig_destroy__ = _mathgl.delete_mglData
+    __del__ = lambda self : None;
+    def __init__(self, *args): 
+        this = _mathgl.new_mglData(*args)
+        try: self.this.append(this)
+        except: self.this = this
+    def Self(self): return _mathgl.mglData_Self(self)
+    def Rearrange(self, *args): return _mathgl.mglData_Rearrange(self, *args)
+    def Set(self, *args): return _mathgl.mglData_Set(self, *args)
+    def Read(self, *args): return _mathgl.mglData_Read(self, *args)
+    def Save(self, *args): return _mathgl.mglData_Save(self, *args)
+    def Export(self, *args): return _mathgl.mglData_Export(self, *args)
+    def Import(self, *args): return _mathgl.mglData_Import(self, *args)
+    def ReadMat(self, *args): return _mathgl.mglData_ReadMat(self, *args)
+    def Create(self, *args): return _mathgl.mglData_Create(self, *args)
+    def Extend(self, *args): return _mathgl.mglData_Extend(self, *args)
+    def Transpose(self, dim = "yx"): return _mathgl.mglData_Transpose(self, dim)
+    def Norm(self, v1 = 0, v2 = 1, sym = False, dim = 0): return _mathgl.mglData_Norm(self, v1, v2, sym, dim)
+    def NormSl(self, v1 = 0, v2 = 1, dir = 'z', keep_en = True, sym = False): return _mathgl.mglData_NormSl(self, v1, v2, dir, keep_en, sym)
+    def Put(self, *args): return _mathgl.mglData_Put(self, *args)
+    def Modify(self, *args): return _mathgl.mglData_Modify(self, *args)
+    def Fill(self, *args): return _mathgl.mglData_Fill(self, *args)
+    def FillSample(self, *args): return _mathgl.mglData_FillSample(self, *args)
+    def Column(self, *args): return _mathgl.mglData_Column(self, *args)
+    def SetColumnId(self, *args): return _mathgl.mglData_SetColumnId(self, *args)
+    def Squeeze(self, *args): return _mathgl.mglData_Squeeze(self, *args)
+    def Crop(self, *args): return _mathgl.mglData_Crop(self, *args)
+    def Envelop(self, dir = 'x'): return _mathgl.mglData_Envelop(self, dir)
+    def Sew(self, dirs = "xyz", da = 2*pi): return _mathgl.mglData_Sew(self, dirs, da)
+    def Smooth(self, *args): return _mathgl.mglData_Smooth(self, *args)
+    def SubData(self, *args): return _mathgl.mglData_SubData(self, *args)
+    def Hist(self, *args): return _mathgl.mglData_Hist(self, *args)
+    def Sum(self, *args): return _mathgl.mglData_Sum(self, *args)
+    def Max(self, *args): return _mathgl.mglData_Max(self, *args)
+    def Min(self, *args): return _mathgl.mglData_Min(self, *args)
+    def Resize(self, *args): return _mathgl.mglData_Resize(self, *args)
+    def Combine(self, *args): return _mathgl.mglData_Combine(self, *args)
+    def Evaluate(self, *args): return _mathgl.mglData_Evaluate(self, *args)
+    def CumSum(self, *args): return _mathgl.mglData_CumSum(self, *args)
+    def Integral(self, *args): return _mathgl.mglData_Integral(self, *args)
+    def Diff(self, *args): return _mathgl.mglData_Diff(self, *args)
+    def Diff2(self, *args): return _mathgl.mglData_Diff2(self, *args)
+    def Swap(self, *args): return _mathgl.mglData_Swap(self, *args)
+    def Roll(self, *args): return _mathgl.mglData_Roll(self, *args)
+    def Mirror(self, *args): return _mathgl.mglData_Mirror(self, *args)
+    def Hankel(self, *args): return _mathgl.mglData_Hankel(self, *args)
+    def SinFFT(self, *args): return _mathgl.mglData_SinFFT(self, *args)
+    def CosFFT(self, *args): return _mathgl.mglData_CosFFT(self, *args)
+    def Spline(self, *args): return _mathgl.mglData_Spline(self, *args)
+    def Spline1(self, *args): return _mathgl.mglData_Spline1(self, *args)
+    def Linear(self, *args): return _mathgl.mglData_Linear(self, *args)
+    def Linear1(self, *args): return _mathgl.mglData_Linear1(self, *args)
+    def Insert(self, *args): return _mathgl.mglData_Insert(self, *args)
+    def Delete(self, *args): return _mathgl.mglData_Delete(self, *args)
+    def Last(self, *args): return _mathgl.mglData_Last(self, *args)
+    def Find(self, *args): return _mathgl.mglData_Find(self, *args)
+    def FindAny(self, *args): return _mathgl.mglData_FindAny(self, *args)
+    def Maximal(self, *args): return _mathgl.mglData_Maximal(self, *args)
+    def Minimal(self, *args): return _mathgl.mglData_Minimal(self, *args)
+    def Momentum(self, *args): return _mathgl.mglData_Momentum(self, *args)
+    def v(self, *args): return _mathgl.mglData_v(self, *args)
+    def GetVal(self, *args): return _mathgl.mglData_GetVal(self, *args)
+    def SetVal(self, *args): return _mathgl.mglData_SetVal(self, *args)
+    def GetNx(self): return _mathgl.mglData_GetNx(self)
+    def GetNy(self): return _mathgl.mglData_GetNy(self)
+    def GetNz(self): return _mathgl.mglData_GetNz(self)
+    def GetData(self): return _mathgl.mglData_GetData(self)
+    def __getitem__(self, *args): return _mathgl.mglData___getitem__(self, *args)
+    def __paren(self, *args): return _mathgl.mglData___paren(self, *args)
+    def __setitem__(self, *args): return _mathgl.mglData___setitem__(self, *args)
+    def __paren_asgn(self, *args): return _mathgl.mglData___paren_asgn(self, *args)
+mglData_swigregister = _mathgl.mglData_swigregister
+mglData_swigregister(mglData)
+
+class mglGraph(_object):
+    __swig_setmethods__ = {}
+    __setattr__ = lambda self, name, value: _swig_setattr(self, mglGraph, name, value)
+    __swig_getmethods__ = {}
+    __getattr__ = lambda self, name: _swig_getattr(self, mglGraph, name)
+    __repr__ = _swig_repr
+    def __init__(self, kind = 0, width = 600, height = 400): 
+        this = _mathgl.new_mglGraph(kind, width, height)
+        try: self.this.append(this)
+        except: self.this = this
+    __swig_destroy__ = _mathgl.delete_mglGraph
+    __del__ = lambda self : None;
+    def Self(self): return _mathgl.mglGraph_Self(self)
+    def GetWarn(self): return _mathgl.mglGraph_GetWarn(self)
+    def DefaultPlotParam(self): return _mathgl.mglGraph_DefaultPlotParam(self)
+    def SetPalColor(self, *args): return _mathgl.mglGraph_SetPalColor(self, *args)
+    def SetPalNum(self, *args): return _mathgl.mglGraph_SetPalNum(self, *args)
+    def SetPalette(self, *args): return _mathgl.mglGraph_SetPalette(self, *args)
+    def SetScheme(self, *args): return _mathgl.mglGraph_SetScheme(self, *args)
+    def SetRotatedText(self, *args): return _mathgl.mglGraph_SetRotatedText(self, *args)
+    def SetCut(self, *args): return _mathgl.mglGraph_SetCut(self, *args)
+    def SetCutBox(self, *args): return _mathgl.mglGraph_SetCutBox(self, *args)
+    def SetTickLen(self, *args): return _mathgl.mglGraph_SetTickLen(self, *args)
+    def SetTickStl(self, *args): return _mathgl.mglGraph_SetTickStl(self, *args)
+    def SetBaseLineWidth(self, *args): return _mathgl.mglGraph_SetBaseLineWidth(self, *args)
+    def SetSize(self, *args): return _mathgl.mglGraph_SetSize(self, *args)
+    def SetBarWidth(self, *args): return _mathgl.mglGraph_SetBarWidth(self, *args)
+    def SetMarkSize(self, *args): return _mathgl.mglGraph_SetMarkSize(self, *args)
+    def SetArrowSize(self, *args): return _mathgl.mglGraph_SetArrowSize(self, *args)
+    def SetFontSize(self, *args): return _mathgl.mglGraph_SetFontSize(self, *args)
+    def SetFontDef(self, *args): return _mathgl.mglGraph_SetFontDef(self, *args)
+    def SetAlphaDef(self, *args): return _mathgl.mglGraph_SetAlphaDef(self, *args)
+    def SetAxialDir(self, *args): return _mathgl.mglGraph_SetAxialDir(self, *args)
+    def SetMeshNum(self, *args): return _mathgl.mglGraph_SetMeshNum(self, *args)
+    def Zoom(self, *args): return _mathgl.mglGraph_Zoom(self, *args)
+    def SetPlotFactor(self, *args): return _mathgl.mglGraph_SetPlotFactor(self, *args)
+    def SetDrawFace(self, *args): return _mathgl.mglGraph_SetDrawFace(self, *args)
+    def SetLegendBox(self, *args): return _mathgl.mglGraph_SetLegendBox(self, *args)
+    def SetLegendMarks(self, *args): return _mathgl.mglGraph_SetLegendMarks(self, *args)
+    def LoadFont(self, *args): return _mathgl.mglGraph_LoadFont(self, *args)
+    def CopyFont(self, *args): return _mathgl.mglGraph_CopyFont(self, *args)
+    def RestoreFont(self): return _mathgl.mglGraph_RestoreFont(self)
+    def ShowImage(self, viewer = None, keep = 0): return _mathgl.mglGraph_ShowImage(self, viewer, keep)
+    def WriteFrame(self, *args): return _mathgl.mglGraph_WriteFrame(self, *args)
+    def WriteIDTF(self, *args): return _mathgl.mglGraph_WriteIDTF(self, *args)
+    def WriteJPEG(self, *args): return _mathgl.mglGraph_WriteJPEG(self, *args)
+    def WritePNG(self, *args): return _mathgl.mglGraph_WritePNG(self, *args)
+    def WriteEPS(self, *args): return _mathgl.mglGraph_WriteEPS(self, *args)
+    def WriteSVG(self, *args): return _mathgl.mglGraph_WriteSVG(self, *args)
+    def WriteGIF(self, *args): return _mathgl.mglGraph_WriteGIF(self, *args)
+    def StartGIF(self, *args): return _mathgl.mglGraph_StartGIF(self, *args)
+    def CloseGIF(self): return _mathgl.mglGraph_CloseGIF(self)
+    def NewFrame(self): return _mathgl.mglGraph_NewFrame(self)
+    def EndFrame(self): return _mathgl.mglGraph_EndFrame(self)
+    def GetNumFrame(self): return _mathgl.mglGraph_GetNumFrame(self)
+    def ResetFrames(self): return _mathgl.mglGraph_ResetFrames(self)
+    def Flush(self): return _mathgl.mglGraph_Flush(self)
+    def GetRGB(self, *args): return _mathgl.mglGraph_GetRGB(self, *args)
+    def GetRGBA(self, *args): return _mathgl.mglGraph_GetRGBA(self, *args)
+    def GetBGRN(self, *args): return _mathgl.mglGraph_GetBGRN(self, *args)
+    def GetWidth(self): return _mathgl.mglGraph_GetWidth(self)
+    def GetHeight(self): return _mathgl.mglGraph_GetHeight(self)
+    def CalcXYZ(self, *args): return _mathgl.mglGraph_CalcXYZ(self, *args)
+    def CalcScr(self, *args): return _mathgl.mglGraph_CalcScr(self, *args)
+    def SetTranspType(self, *args): return _mathgl.mglGraph_SetTranspType(self, *args)
+    def SetTransparent(self, *args): return _mathgl.mglGraph_SetTransparent(self, *args)
+    def Alpha(self, *args): return _mathgl.mglGraph_Alpha(self, *args)
+    def Fog(self, *args): return _mathgl.mglGraph_Fog(self, *args)
+    def Light(self, *args): return _mathgl.mglGraph_Light(self, *args)
+    def AddLight(self, *args): return _mathgl.mglGraph_AddLight(self, *args)
+    def SetAmbient(self, *args): return _mathgl.mglGraph_SetAmbient(self, *args)
+    def Identity(self, rel = False): return _mathgl.mglGraph_Identity(self, rel)
+    def Clf(self, r = 1, g = 1, b = 1): return _mathgl.mglGraph_Clf(self, r, g, b)
+    def SubPlot(self, *args): return _mathgl.mglGraph_SubPlot(self, *args)
+    def InPlot(self, *args): return _mathgl.mglGraph_InPlot(self, *args)
+    def ColumnPlot(self, *args): return _mathgl.mglGraph_ColumnPlot(self, *args)
+    def StickPlot(self, *args): return _mathgl.mglGraph_StickPlot(self, *args)
+    def Aspect(self, *args): return _mathgl.mglGraph_Aspect(self, *args)
+    def Rotate(self, *args): return _mathgl.mglGraph_Rotate(self, *args)
+    def RotateN(self, *args): return _mathgl.mglGraph_RotateN(self, *args)
+    def Perspective(self, *args): return _mathgl.mglGraph_Perspective(self, *args)
+    def SetTicks(self, *args): return _mathgl.mglGraph_SetTicks(self, *args)
+    def AdjustTicks(self, dir = "xyzc"): return _mathgl.mglGraph_AdjustTicks(self, dir)
+    def SetRanges(self, *args): return _mathgl.mglGraph_SetRanges(self, *args)
+    def SetAutoRanges(self, *args): return _mathgl.mglGraph_SetAutoRanges(self, *args)
+    def SetOrigin(self, *args): return _mathgl.mglGraph_SetOrigin(self, *args)
+    def SetCRange(self, *args): return _mathgl.mglGraph_SetCRange(self, *args)
+    def SetXRange(self, *args): return _mathgl.mglGraph_SetXRange(self, *args)
+    def SetYRange(self, *args): return _mathgl.mglGraph_SetYRange(self, *args)
+    def SetZRange(self, *args): return _mathgl.mglGraph_SetZRange(self, *args)
+    def SetFunc(self, *args): return _mathgl.mglGraph_SetFunc(self, *args)
+    def SetCoor(self, *args): return _mathgl.mglGraph_SetCoor(self, *args)
+    def Ternary(self, *args): return _mathgl.mglGraph_Ternary(self, *args)
+    def CutOff(self, *args): return _mathgl.mglGraph_CutOff(self, *args)
+    def Box(self, col = "k", ticks = True): return _mathgl.mglGraph_Box(self, col, ticks)
+    def Axis(self, dir = "xyzt", adjust = False): return _mathgl.mglGraph_Axis(self, dir, adjust)
+    def Label(self, *args): return _mathgl.mglGraph_Label(self, *args)
+    def SetTuneTicks(self, *args): return _mathgl.mglGraph_SetTuneTicks(self, *args)
+    def SetXTT(self, *args): return _mathgl.mglGraph_SetXTT(self, *args)
+    def SetYTT(self, *args): return _mathgl.mglGraph_SetYTT(self, *args)
+    def SetZTT(self, *args): return _mathgl.mglGraph_SetZTT(self, *args)
+    def SetCTT(self, *args): return _mathgl.mglGraph_SetCTT(self, *args)
+    def Ball(self, *args): return _mathgl.mglGraph_Ball(self, *args)
+    def Line(self, *args): return _mathgl.mglGraph_Line(self, *args)
+    def FaceX(self, *args): return _mathgl.mglGraph_FaceX(self, *args)
+    def FaceY(self, *args): return _mathgl.mglGraph_FaceY(self, *args)
+    def FaceZ(self, *args): return _mathgl.mglGraph_FaceZ(self, *args)
+    def Curve(self, *args): return _mathgl.mglGraph_Curve(self, *args)
+    def Drop(self, *args): return _mathgl.mglGraph_Drop(self, *args)
+    def Sphere(self, *args): return _mathgl.mglGraph_Sphere(self, *args)
+    def Cone(self, *args): return _mathgl.mglGraph_Cone(self, *args)
+    def Putsw(self, *args): return _mathgl.mglGraph_Putsw(self, *args)
+    def Puts(self, *args): return _mathgl.mglGraph_Puts(self, *args)
+    def Title(self, *args): return _mathgl.mglGraph_Title(self, *args)
+    def Colorbar(self, *args): return _mathgl.mglGraph_Colorbar(self, *args)
+    def SimplePlot(self, *args): return _mathgl.mglGraph_SimplePlot(self, *args)
+    def AddLegend(self, *args): return _mathgl.mglGraph_AddLegend(self, *args)
+    def AddLegendw(self, *args): return _mathgl.mglGraph_AddLegendw(self, *args)
+    def ClearLegend(self): return _mathgl.mglGraph_ClearLegend(self)
+    def Legend(self, *args): return _mathgl.mglGraph_Legend(self, *args)
+    def Plot(self, *args): return _mathgl.mglGraph_Plot(self, *args)
+    def BoxPlot(self, *args): return _mathgl.mglGraph_BoxPlot(self, *args)
+    def Radar(self, *args): return _mathgl.mglGraph_Radar(self, *args)
+    def Tens(self, *args): return _mathgl.mglGraph_Tens(self, *args)
+    def Area(self, *args): return _mathgl.mglGraph_Area(self, *args)
+    def Stem(self, *args): return _mathgl.mglGraph_Stem(self, *args)
+    def Step(self, *args): return _mathgl.mglGraph_Step(self, *args)
+    def Bars(self, *args): return _mathgl.mglGraph_Bars(self, *args)
+    def Barh(self, *args): return _mathgl.mglGraph_Barh(self, *args)
+    def Region(self, *args): return _mathgl.mglGraph_Region(self, *args)
+    def Torus(self, *args): return _mathgl.mglGraph_Torus(self, *args)
+    def Text(self, *args): return _mathgl.mglGraph_Text(self, *args)
+    def Chart(self, *args): return _mathgl.mglGraph_Chart(self, *args)
+    def Error(self, *args): return _mathgl.mglGraph_Error(self, *args)
+    def Mark(self, *args): return _mathgl.mglGraph_Mark(self, *args)
+    def TextMark(self, *args): return _mathgl.mglGraph_TextMark(self, *args)
+    def Tube(self, *args): return _mathgl.mglGraph_Tube(self, *args)
+    def Grid(self, *args): return _mathgl.mglGraph_Grid(self, *args)
+    def Mesh(self, *args): return _mathgl.mglGraph_Mesh(self, *args)
+    def Fall(self, *args): return _mathgl.mglGraph_Fall(self, *args)
+    def Belt(self, *args): return _mathgl.mglGraph_Belt(self, *args)
+    def Surf(self, *args): return _mathgl.mglGraph_Surf(self, *args)
+    def Tile(self, *args): return _mathgl.mglGraph_Tile(self, *args)
+    def TileS(self, *args): return _mathgl.mglGraph_TileS(self, *args)
+    def Dens(self, *args): return _mathgl.mglGraph_Dens(self, *args)
+    def Boxs(self, *args): return _mathgl.mglGraph_Boxs(self, *args)
+    def Cont(self, *args): return _mathgl.mglGraph_Cont(self, *args)
+    def ContF(self, *args): return _mathgl.mglGraph_ContF(self, *args)
+    def ContD(self, *args): return _mathgl.mglGraph_ContD(self, *args)
+    def Axial(self, *args): return _mathgl.mglGraph_Axial(self, *args)
+    def SurfC(self, *args): return _mathgl.mglGraph_SurfC(self, *args)
+    def SurfA(self, *args): return _mathgl.mglGraph_SurfA(self, *args)
+    def STFA(self, *args): return _mathgl.mglGraph_STFA(self, *args)
+    def Dew(self, *args): return _mathgl.mglGraph_Dew(self, *args)
+    def Traj(self, *args): return _mathgl.mglGraph_Traj(self, *args)
+    def Vect(self, *args): return _mathgl.mglGraph_Vect(self, *args)
+    def VectL(self, *args): return _mathgl.mglGraph_VectL(self, *args)
+    def VectC(self, *args): return _mathgl.mglGraph_VectC(self, *args)
+    def Map(self, *args): return _mathgl.mglGraph_Map(self, *args)
+    def Surf3A(self, *args): return _mathgl.mglGraph_Surf3A(self, *args)
+    def Surf3C(self, *args): return _mathgl.mglGraph_Surf3C(self, *args)
+    def Flow(self, *args): return _mathgl.mglGraph_Flow(self, *args)
+    def FlowP(self, *args): return _mathgl.mglGraph_FlowP(self, *args)
+    def Grad(self, *args): return _mathgl.mglGraph_Grad(self, *args)
+    def Pipe(self, *args): return _mathgl.mglGraph_Pipe(self, *args)
+    def Grid3(self, *args): return _mathgl.mglGraph_Grid3(self, *args)
+    def GridA(self, *args): return _mathgl.mglGraph_GridA(self, *args)
+    def Dens3(self, *args): return _mathgl.mglGraph_Dens3(self, *args)
+    def DensA(self, *args): return _mathgl.mglGraph_DensA(self, *args)
+    def Surf3(self, *args): return _mathgl.mglGraph_Surf3(self, *args)
+    def Cloud(self, *args): return _mathgl.mglGraph_Cloud(self, *args)
+    def Cont3(self, *args): return _mathgl.mglGraph_Cont3(self, *args)
+    def ContA(self, *args): return _mathgl.mglGraph_ContA(self, *args)
+    def ContF3(self, *args): return _mathgl.mglGraph_ContF3(self, *args)
+    def ContFA(self, *args): return _mathgl.mglGraph_ContFA(self, *args)
+    def Beam(self, *args): return _mathgl.mglGraph_Beam(self, *args)
+    def TriPlot(self, *args): return _mathgl.mglGraph_TriPlot(self, *args)
+    def QuadPlot(self, *args): return _mathgl.mglGraph_QuadPlot(self, *args)
+    def TriCont(self, *args): return _mathgl.mglGraph_TriCont(self, *args)
+    def TriContV(self, *args): return _mathgl.mglGraph_TriContV(self, *args)
+    def Dots(self, *args): return _mathgl.mglGraph_Dots(self, *args)
+    def Crust(self, *args): return _mathgl.mglGraph_Crust(self, *args)
+    def DensX(self, *args): return _mathgl.mglGraph_DensX(self, *args)
+    def DensY(self, *args): return _mathgl.mglGraph_DensY(self, *args)
+    def DensZ(self, *args): return _mathgl.mglGraph_DensZ(self, *args)
+    def ContX(self, *args): return _mathgl.mglGraph_ContX(self, *args)
+    def ContY(self, *args): return _mathgl.mglGraph_ContY(self, *args)
+    def ContZ(self, *args): return _mathgl.mglGraph_ContZ(self, *args)
+    def ContFX(self, *args): return _mathgl.mglGraph_ContFX(self, *args)
+    def ContFY(self, *args): return _mathgl.mglGraph_ContFY(self, *args)
+    def ContFZ(self, *args): return _mathgl.mglGraph_ContFZ(self, *args)
+    def Hist(self, *args): return _mathgl.mglGraph_Hist(self, *args)
+    def Fit2(self, *args): return _mathgl.mglGraph_Fit2(self, *args)
+    def Fit3(self, *args): return _mathgl.mglGraph_Fit3(self, *args)
+    def Fit(self, *args): return _mathgl.mglGraph_Fit(self, *args)
+    def FitS(self, *args): return _mathgl.mglGraph_FitS(self, *args)
+    def PutsFit(self, *args): return _mathgl.mglGraph_PutsFit(self, *args)
+    def GetFit(self): return _mathgl.mglGraph_GetFit(self)
+    def PDE(self, *args): return _mathgl.mglGraph_PDE(self, *args)
+    def Fill(self, *args): return _mathgl.mglGraph_Fill(self, *args)
+mglGraph_swigregister = _mathgl.mglGraph_swigregister
+mglGraph_swigregister(mglGraph)
+
+class mglParse(_object):
+    __swig_setmethods__ = {}
+    __setattr__ = lambda self, name, value: _swig_setattr(self, mglParse, name, value)
+    __swig_getmethods__ = {}
+    __getattr__ = lambda self, name: _swig_getattr(self, mglParse, name)
+    __repr__ = _swig_repr
+    def __init__(self): 
+        this = _mathgl.new_mglParse()
+        try: self.this.append(this)
+        except: self.this = this
+    __swig_destroy__ = _mathgl.delete_mglParse
+    __del__ = lambda self : None;
+    def AddParam(self, *args): return _mathgl.mglParse_AddParam(self, *args)
+    def AddVar(self, *args): return _mathgl.mglParse_AddVar(self, *args)
+    def FindVar(self, *args): return _mathgl.mglParse_FindVar(self, *args)
+    def Parse(self, *args): return _mathgl.mglParse_Parse(self, *args)
+    def ScanFunc(self, *args): return _mathgl.mglParse_ScanFunc(self, *args)
+    def Execute(self, *args): return _mathgl.mglParse_Execute(self, *args)
+    def RestoreOnce(self): return _mathgl.mglParse_RestoreOnce(self)
+    def AllowSetSize(self, *args): return _mathgl.mglParse_AllowSetSize(self, *args)
+mglParse_swigregister = _mathgl.mglParse_swigregister
+mglParse_swigregister(mglParse)
+
+
+
diff --git a/debian/python-mathgl/usr/share/doc/python-mathgl/changelog.Debian.gz b/debian/python-mathgl/usr/share/doc/python-mathgl/changelog.Debian.gz
new file mode 100644
index 0000000..b8480bb
Binary files /dev/null and b/debian/python-mathgl/usr/share/doc/python-mathgl/changelog.Debian.gz differ
diff --git a/debian/python-mathgl/usr/share/doc/python-mathgl/changelog.gz b/debian/python-mathgl/usr/share/doc/python-mathgl/changelog.gz
new file mode 100644
index 0000000..be3de85
Binary files /dev/null and b/debian/python-mathgl/usr/share/doc/python-mathgl/changelog.gz differ
diff --git a/debian/copyright b/debian/python-mathgl/usr/share/doc/python-mathgl/copyright
similarity index 100%
copy from debian/copyright
copy to debian/python-mathgl/usr/share/doc/python-mathgl/copyright
diff --git a/debian/rules b/debian/rules
index 74817ea..c6d9e0c 100755
--- a/debian/rules
+++ b/debian/rules
@@ -37,10 +37,10 @@ build-stamp: configure
 clean: unpatch
 	dh_testdir
 	dh_testroot
-	rm -f build-stamp configure-stamp
+	rm -f build-stamp configure-stamp config.status
 	rm -rf build autom4te.cache texinfo/png/*.png
 	rm -f texinfo/mathgl.info-4
-#	[ ! -f Makefile ] || $(MAKE) distclean
+	[ ! -f Makefile ] || $(MAKE) distclean
 	dh_clean
 
 install: build
@@ -48,7 +48,6 @@ install: build
 	dh_testroot
 	dh_prep
 	$(MAKE) install DESTDIR=$(CURDIR)/debian/tmp
-	cp texinfo/*.pdf $(CURDIR)/debian/tmp/usr/share/doc/mathgl/
 	rm -f debian/tmp/usr/bin/*_example
 	rm -f debian/tmp/usr/share/info/dir
 	find debian \( -name mathgl.pyc -o -name mathgl.pyo \) -print0 | xargs -0 -r rm -f \;
diff --git a/debian/rules~ b/debian/rules~
new file mode 100755
index 0000000..c0f4437
--- /dev/null
+++ b/debian/rules~
@@ -0,0 +1,77 @@
+#!/usr/bin/make -f
+
+include /usr/share/quilt/quilt.make
+
+DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+
+CFLAGS = -Wall -g
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+	CFLAGS += -O0
+else
+	CFLAGS += -O2
+endif
+
+ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
+	NUMJOBS=$(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
+	MAKEFLAGS+=-j$(NUMJOBS)
+endif
+
+configure: configure-stamp
+configure-stamp: $(QUILT_STAMPFN)
+	dh_testdir
+	autoreconf
+	CFLAGS="$(CFLAGS)" \
+		./configure --prefix=/usr --mandir=\$${prefix}/share/man \
+		--infodir=\$${prefix}/share/info --host=$(DEB_HOST_GNU_TYPE) \
+		--build=$(DEB_BUILD_GNU_TYPE) --enable-all --enable-octave --enable-python
+	touch $@
+
+build: build-stamp
+build-stamp: configure
+	dh_testdir
+	$(MAKE) 
+	touch $@
+
+clean: unpatch
+	dh_testdir
+	dh_testroot
+	rm -f build-stamp configure-stamp
+	rm -rf build autom4te.cache texinfo/png/*.png
+	rm -f texinfo/mathgl.info-4
+	[ ! -f Makefile ] || $(MAKE) distclean
+	dh_clean
+
+install: build
+	dh_testdir
+	dh_testroot
+	dh_prep
+	$(MAKE) install DESTDIR=$(CURDIR)/debian/tmp
+	rm -f debian/tmp/usr/bin/*_example
+	rm -f debian/tmp/usr/share/info/dir
+	find debian \( -name mathgl.pyc -o -name mathgl.pyo \) -print0 | xargs -0 -r rm -f \;
+
+binary-indep: build install
+
+binary-arch: build install
+	dh_testdir
+	dh_testroot
+	dh_installchangelogs ChangeLog.txt
+	dh_installdocs
+	dh_install --fail-missing
+	dh_link
+	dh_strip
+	dh_compress
+	dh_fixperms
+	dh_makeshlibs
+	dh_installdeb
+	dh_installman
+	gzip -9 debian/mathgl/usr/share/man/man1/*.1
+	dh_shlibdeps
+	dh_gencontrol
+	dh_md5sums
+	dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure
diff --git a/debian/stamp-patched b/debian/stamp-patched
deleted file mode 100644
index e69de29..0000000
diff --git a/debian/tmp/usr/bin/mgl2cpp b/debian/tmp/usr/bin/mgl2cpp
new file mode 100755
index 0000000..542dbb6
Binary files /dev/null and b/debian/tmp/usr/bin/mgl2cpp differ
diff --git a/debian/tmp/usr/bin/mgl2eps b/debian/tmp/usr/bin/mgl2eps
new file mode 100755
index 0000000..b318a1d
Binary files /dev/null and b/debian/tmp/usr/bin/mgl2eps differ
diff --git a/debian/tmp/usr/bin/mgl2gif b/debian/tmp/usr/bin/mgl2gif
new file mode 100755
index 0000000..cf45da9
Binary files /dev/null and b/debian/tmp/usr/bin/mgl2gif differ
diff --git a/debian/tmp/usr/bin/mgl2png b/debian/tmp/usr/bin/mgl2png
new file mode 100755
index 0000000..ea339da
Binary files /dev/null and b/debian/tmp/usr/bin/mgl2png differ
diff --git a/debian/tmp/usr/bin/mgl2svg b/debian/tmp/usr/bin/mgl2svg
new file mode 100755
index 0000000..4f0b5fa
Binary files /dev/null and b/debian/tmp/usr/bin/mgl2svg differ
diff --git a/debian/tmp/usr/bin/mglview b/debian/tmp/usr/bin/mglview
new file mode 100755
index 0000000..2168de0
Binary files /dev/null and b/debian/tmp/usr/bin/mglview differ
diff --git a/debian/tmp/usr/include/mgl/config.h b/debian/tmp/usr/include/mgl/config.h
new file mode 100644
index 0000000..170e463
--- /dev/null
+++ b/debian/tmp/usr/include/mgl/config.h
@@ -0,0 +1,66 @@
+/* include/mgl/config.h.  Generated from config.h.in by configure.  */
+/* include/mgl/config.h.in.  Generated from configure.ac by autoheader.  */
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+   */
+#define LT_OBJDIR ".libs/"
+
+/* This define enables double precision in MathGL */
+#define MGL_USE_DOUBLE 0
+
+/* Name of package */
+#define PACKAGE "mathgl"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "mathgl.abalakin at gmail.com"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "mathgl"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "mathgl 1.10"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "mathgl"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "1.10"
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Version number of package */
+#define VERSION "1.10"
diff --git a/include/mgl/gsl.fs b/debian/tmp/usr/include/mgl/gsl.fs
similarity index 100%
copy from include/mgl/gsl.fs
copy to debian/tmp/usr/include/mgl/gsl.fs
diff --git a/include/mgl/mathgl.fs b/debian/tmp/usr/include/mgl/mathgl.fs
similarity index 100%
copy from include/mgl/mathgl.fs
copy to debian/tmp/usr/include/mgl/mathgl.fs
diff --git a/include/mgl/mgl.h b/debian/tmp/usr/include/mgl/mgl.h
similarity index 100%
copy from include/mgl/mgl.h
copy to debian/tmp/usr/include/mgl/mgl.h
diff --git a/include/mgl/mgl_ab.h b/debian/tmp/usr/include/mgl/mgl_ab.h
similarity index 100%
copy from include/mgl/mgl_ab.h
copy to debian/tmp/usr/include/mgl/mgl_ab.h
diff --git a/include/mgl/mgl_addon.h b/debian/tmp/usr/include/mgl/mgl_addon.h
similarity index 100%
copy from include/mgl/mgl_addon.h
copy to debian/tmp/usr/include/mgl/mgl_addon.h
diff --git a/include/mgl/mgl_c.h b/debian/tmp/usr/include/mgl/mgl_c.h
similarity index 100%
copy from include/mgl/mgl_c.h
copy to debian/tmp/usr/include/mgl/mgl_c.h
diff --git a/include/mgl/mgl_data.h b/debian/tmp/usr/include/mgl/mgl_data.h
similarity index 100%
copy from include/mgl/mgl_data.h
copy to debian/tmp/usr/include/mgl/mgl_data.h
diff --git a/include/mgl/mgl_define.h b/debian/tmp/usr/include/mgl/mgl_define.h
similarity index 100%
copy from include/mgl/mgl_define.h
copy to debian/tmp/usr/include/mgl/mgl_define.h
diff --git a/include/mgl/mgl_eps.h b/debian/tmp/usr/include/mgl/mgl_eps.h
similarity index 100%
copy from include/mgl/mgl_eps.h
copy to debian/tmp/usr/include/mgl/mgl_eps.h
diff --git a/include/mgl/mgl_eval.h b/debian/tmp/usr/include/mgl/mgl_eval.h
similarity index 100%
copy from include/mgl/mgl_eval.h
copy to debian/tmp/usr/include/mgl/mgl_eval.h
diff --git a/include/mgl/mgl_evalc.h b/debian/tmp/usr/include/mgl/mgl_evalc.h
similarity index 100%
copy from include/mgl/mgl_evalc.h
copy to debian/tmp/usr/include/mgl/mgl_evalc.h
diff --git a/include/mgl/mgl_f.h b/debian/tmp/usr/include/mgl/mgl_f.h
similarity index 100%
copy from include/mgl/mgl_f.h
copy to debian/tmp/usr/include/mgl/mgl_f.h
diff --git a/include/mgl/mgl_fltk.h b/debian/tmp/usr/include/mgl/mgl_fltk.h
similarity index 100%
copy from include/mgl/mgl_fltk.h
copy to debian/tmp/usr/include/mgl/mgl_fltk.h
diff --git a/include/mgl/mgl_font.h b/debian/tmp/usr/include/mgl/mgl_font.h
similarity index 100%
copy from include/mgl/mgl_font.h
copy to debian/tmp/usr/include/mgl/mgl_font.h
diff --git a/include/mgl/mgl_gl.h b/debian/tmp/usr/include/mgl/mgl_gl.h
similarity index 100%
copy from include/mgl/mgl_gl.h
copy to debian/tmp/usr/include/mgl/mgl_gl.h
diff --git a/include/mgl/mgl_glut.h b/debian/tmp/usr/include/mgl/mgl_glut.h
similarity index 100%
copy from include/mgl/mgl_glut.h
copy to debian/tmp/usr/include/mgl/mgl_glut.h
diff --git a/include/mgl/mgl_idtf.h b/debian/tmp/usr/include/mgl/mgl_idtf.h
similarity index 100%
copy from include/mgl/mgl_idtf.h
copy to debian/tmp/usr/include/mgl/mgl_idtf.h
diff --git a/include/mgl/mgl_parse.h b/debian/tmp/usr/include/mgl/mgl_parse.h
similarity index 100%
copy from include/mgl/mgl_parse.h
copy to debian/tmp/usr/include/mgl/mgl_parse.h
diff --git a/include/mgl/mgl_pas.pas b/debian/tmp/usr/include/mgl/mgl_pas.pas
similarity index 100%
copy from include/mgl/mgl_pas.pas
copy to debian/tmp/usr/include/mgl/mgl_pas.pas
diff --git a/include/mgl/mgl_qt.h b/debian/tmp/usr/include/mgl/mgl_qt.h
similarity index 100%
copy from include/mgl/mgl_qt.h
copy to debian/tmp/usr/include/mgl/mgl_qt.h
diff --git a/include/mgl/mgl_w.h b/debian/tmp/usr/include/mgl/mgl_w.h
similarity index 100%
copy from include/mgl/mgl_w.h
copy to debian/tmp/usr/include/mgl/mgl_w.h
diff --git a/include/mgl/mgl_wx.h b/debian/tmp/usr/include/mgl/mgl_wx.h
similarity index 100%
copy from include/mgl/mgl_wx.h
copy to debian/tmp/usr/include/mgl/mgl_wx.h
diff --git a/include/mgl/mgl_zb.h b/debian/tmp/usr/include/mgl/mgl_zb.h
similarity index 100%
copy from include/mgl/mgl_zb.h
copy to debian/tmp/usr/include/mgl/mgl_zb.h
diff --git a/include/mgl/mglplot.fs b/debian/tmp/usr/include/mgl/mglplot.fs
similarity index 100%
copy from include/mgl/mglplot.fs
copy to debian/tmp/usr/include/mgl/mglplot.fs
diff --git a/include/mgl/vectors.fs b/debian/tmp/usr/include/mgl/vectors.fs
similarity index 100%
copy from include/mgl/vectors.fs
copy to debian/tmp/usr/include/mgl/vectors.fs
diff --git a/debian/tmp/usr/lib/libmgl-fltk.a b/debian/tmp/usr/lib/libmgl-fltk.a
new file mode 100644
index 0000000..b61cb92
Binary files /dev/null and b/debian/tmp/usr/lib/libmgl-fltk.a differ
diff --git a/debian/tmp/usr/lib/libmgl-fltk.la b/debian/tmp/usr/lib/libmgl-fltk.la
new file mode 100755
index 0000000..c165b8f
--- /dev/null
+++ b/debian/tmp/usr/lib/libmgl-fltk.la
@@ -0,0 +1,41 @@
+# libmgl-fltk.la - a libtool library file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libmgl-fltk.so.5'
+
+# Names of this library.
+library_names='libmgl-fltk.so.5.0.0 libmgl-fltk.so.5 libmgl-fltk.so'
+
+# The name of the static archive.
+old_library='libmgl-fltk.a'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -R/tmp/buildd/libhdf4-4.2r4/HDF4/mfhdf/libsrc/.libs -R/tmp/buildd/libhdf4-4.2r4/HDF4/hdf/src/.libs -lfltk /usr/lib/libmgl.la -lpng -lGL -L/usr/lib -lgsl -lgslcblas /usr/lib/libmfhdf.la /usr/lib/libdf.la /usr/lib/libhdf5.la -lpthread -lz /usr/lib/libgif.la /usr/lib/libjpeg.la'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libmgl-fltk.
+current=5
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=yes
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/lib'
diff --git a/debian/tmp/usr/lib/libmgl-fltk.so b/debian/tmp/usr/lib/libmgl-fltk.so
new file mode 120000
index 0000000..59ab499
--- /dev/null
+++ b/debian/tmp/usr/lib/libmgl-fltk.so
@@ -0,0 +1 @@
+libmgl-fltk.so.5.0.0
\ No newline at end of file
diff --git a/debian/tmp/usr/lib/libmgl-fltk.so.5 b/debian/tmp/usr/lib/libmgl-fltk.so.5
new file mode 120000
index 0000000..59ab499
--- /dev/null
+++ b/debian/tmp/usr/lib/libmgl-fltk.so.5
@@ -0,0 +1 @@
+libmgl-fltk.so.5.0.0
\ No newline at end of file
diff --git a/debian/tmp/usr/lib/libmgl-fltk.so.5.0.0 b/debian/tmp/usr/lib/libmgl-fltk.so.5.0.0
new file mode 100755
index 0000000..6629e1d
Binary files /dev/null and b/debian/tmp/usr/lib/libmgl-fltk.so.5.0.0 differ
diff --git a/debian/tmp/usr/lib/libmgl-glut.a b/debian/tmp/usr/lib/libmgl-glut.a
new file mode 100644
index 0000000..88c1b33
Binary files /dev/null and b/debian/tmp/usr/lib/libmgl-glut.a differ
diff --git a/debian/tmp/usr/lib/libmgl-glut.la b/debian/tmp/usr/lib/libmgl-glut.la
new file mode 100755
index 0000000..f2b0f7b
--- /dev/null
+++ b/debian/tmp/usr/lib/libmgl-glut.la
@@ -0,0 +1,41 @@
+# libmgl-glut.la - a libtool library file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libmgl-glut.so.5'
+
+# Names of this library.
+library_names='libmgl-glut.so.5.0.0 libmgl-glut.so.5 libmgl-glut.so'
+
+# The name of the static archive.
+old_library='libmgl-glut.a'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -R/tmp/buildd/libhdf4-4.2r4/HDF4/mfhdf/libsrc/.libs -R/tmp/buildd/libhdf4-4.2r4/HDF4/hdf/src/.libs -lglut /usr/lib/libmgl.la -lpng -lGL -L/usr/lib -lgsl -lgslcblas /usr/lib/libmfhdf.la /usr/lib/libdf.la /usr/lib/libhdf5.la -lpthread -lz /usr/lib/libgif.la /usr/lib/libjpeg.la'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libmgl-glut.
+current=5
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=yes
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/lib'
diff --git a/debian/tmp/usr/lib/libmgl-glut.so b/debian/tmp/usr/lib/libmgl-glut.so
new file mode 120000
index 0000000..c2e4f34
--- /dev/null
+++ b/debian/tmp/usr/lib/libmgl-glut.so
@@ -0,0 +1 @@
+libmgl-glut.so.5.0.0
\ No newline at end of file
diff --git a/debian/tmp/usr/lib/libmgl-glut.so.5 b/debian/tmp/usr/lib/libmgl-glut.so.5
new file mode 120000
index 0000000..c2e4f34
--- /dev/null
+++ b/debian/tmp/usr/lib/libmgl-glut.so.5
@@ -0,0 +1 @@
+libmgl-glut.so.5.0.0
\ No newline at end of file
diff --git a/debian/tmp/usr/lib/libmgl-glut.so.5.0.0 b/debian/tmp/usr/lib/libmgl-glut.so.5.0.0
new file mode 100755
index 0000000..bc22cfb
Binary files /dev/null and b/debian/tmp/usr/lib/libmgl-glut.so.5.0.0 differ
diff --git a/debian/tmp/usr/lib/libmgl-qt.a b/debian/tmp/usr/lib/libmgl-qt.a
new file mode 100644
index 0000000..27e0381
Binary files /dev/null and b/debian/tmp/usr/lib/libmgl-qt.a differ
diff --git a/debian/tmp/usr/lib/libmgl-qt.la b/debian/tmp/usr/lib/libmgl-qt.la
new file mode 100755
index 0000000..7befe30
--- /dev/null
+++ b/debian/tmp/usr/lib/libmgl-qt.la
@@ -0,0 +1,41 @@
+# libmgl-qt.la - a libtool library file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libmgl-qt.so.5'
+
+# Names of this library.
+library_names='libmgl-qt.so.5.0.0 libmgl-qt.so.5 libmgl-qt.so'
+
+# The name of the static archive.
+old_library='libmgl-qt.a'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -R/tmp/buildd/libhdf4-4.2r4/HDF4/mfhdf/libsrc/.libs -R/tmp/buildd/libhdf4-4.2r4/HDF4/hdf/src/.libs -L/usr/lib -lQtGui -lQtCore /usr/lib/libmgl.la -lpng -lGL -lgsl -lgslcblas /usr/lib/libmfhdf.la /usr/lib/libdf.la /usr/lib/libhdf5.la -lpthread -lz /usr/lib/libgif.la /usr/lib/libjpeg.la'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libmgl-qt.
+current=5
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=yes
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/lib'
diff --git a/debian/tmp/usr/lib/libmgl-qt.so b/debian/tmp/usr/lib/libmgl-qt.so
new file mode 120000
index 0000000..68651a8
--- /dev/null
+++ b/debian/tmp/usr/lib/libmgl-qt.so
@@ -0,0 +1 @@
+libmgl-qt.so.5.0.0
\ No newline at end of file
diff --git a/debian/tmp/usr/lib/libmgl-qt.so.5 b/debian/tmp/usr/lib/libmgl-qt.so.5
new file mode 120000
index 0000000..68651a8
--- /dev/null
+++ b/debian/tmp/usr/lib/libmgl-qt.so.5
@@ -0,0 +1 @@
+libmgl-qt.so.5.0.0
\ No newline at end of file
diff --git a/debian/tmp/usr/lib/libmgl-qt.so.5.0.0 b/debian/tmp/usr/lib/libmgl-qt.so.5.0.0
new file mode 100755
index 0000000..287830e
Binary files /dev/null and b/debian/tmp/usr/lib/libmgl-qt.so.5.0.0 differ
diff --git a/debian/tmp/usr/lib/libmgl-wx.a b/debian/tmp/usr/lib/libmgl-wx.a
new file mode 100644
index 0000000..42ed349
Binary files /dev/null and b/debian/tmp/usr/lib/libmgl-wx.a differ
diff --git a/debian/tmp/usr/lib/libmgl-wx.la b/debian/tmp/usr/lib/libmgl-wx.la
new file mode 100755
index 0000000..45119fa
--- /dev/null
+++ b/debian/tmp/usr/lib/libmgl-wx.la
@@ -0,0 +1,41 @@
+# libmgl-wx.la - a libtool library file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libmgl-wx.so.5'
+
+# Names of this library.
+library_names='libmgl-wx.so.5.0.0 libmgl-wx.so.5 libmgl-wx.so'
+
+# The name of the static archive.
+old_library='libmgl-wx.a'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=' -pthread'
+
+# Libraries that this one depends upon.
+dependency_libs=' -R/tmp/buildd/libhdf4-4.2r4/HDF4/mfhdf/libsrc/.libs -R/tmp/buildd/libhdf4-4.2r4/HDF4/hdf/src/.libs -lwx_gtk2u_richtext-2.8 -lwx_gtk2u_aui-2.8 -lwx_gtk2u_xrc-2.8 -lwx_gtk2u_qa-2.8 -lwx_gtk2u_html-2.8 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8 /usr/lib/libmgl.la -lpng -lGL -L/usr/lib -lgsl -lgslcblas /usr/lib/libmfhdf.la /usr/lib/libdf.la /usr/lib/libhdf5.la -lpthread -lz /usr/lib/libgif.la /usr/lib/libjpeg.la'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libmgl-wx.
+current=5
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=yes
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/lib'
diff --git a/debian/tmp/usr/lib/libmgl-wx.so b/debian/tmp/usr/lib/libmgl-wx.so
new file mode 120000
index 0000000..37b70a5
--- /dev/null
+++ b/debian/tmp/usr/lib/libmgl-wx.so
@@ -0,0 +1 @@
+libmgl-wx.so.5.0.0
\ No newline at end of file
diff --git a/debian/tmp/usr/lib/libmgl-wx.so.5 b/debian/tmp/usr/lib/libmgl-wx.so.5
new file mode 120000
index 0000000..37b70a5
--- /dev/null
+++ b/debian/tmp/usr/lib/libmgl-wx.so.5
@@ -0,0 +1 @@
+libmgl-wx.so.5.0.0
\ No newline at end of file
diff --git a/debian/tmp/usr/lib/libmgl-wx.so.5.0.0 b/debian/tmp/usr/lib/libmgl-wx.so.5.0.0
new file mode 100755
index 0000000..747e4ce
Binary files /dev/null and b/debian/tmp/usr/lib/libmgl-wx.so.5.0.0 differ
diff --git a/debian/tmp/usr/lib/libmgl.a b/debian/tmp/usr/lib/libmgl.a
new file mode 100644
index 0000000..aa54db4
Binary files /dev/null and b/debian/tmp/usr/lib/libmgl.a differ
diff --git a/debian/tmp/usr/lib/libmgl.la b/debian/tmp/usr/lib/libmgl.la
new file mode 100755
index 0000000..c03aae9
--- /dev/null
+++ b/debian/tmp/usr/lib/libmgl.la
@@ -0,0 +1,41 @@
+# libmgl.la - a libtool library file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libmgl.so.5'
+
+# Names of this library.
+library_names='libmgl.so.5.0.0 libmgl.so.5 libmgl.so'
+
+# The name of the static archive.
+old_library='libmgl.a'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -R/tmp/buildd/libhdf4-4.2r4/HDF4/mfhdf/libsrc/.libs -R/tmp/buildd/libhdf4-4.2r4/HDF4/hdf/src/.libs -lpng -lGL -L/usr/lib -lgsl -lgslcblas /usr/lib/libmfhdf.la /usr/lib/libdf.la /usr/lib/libhdf5.la -lpthread -lz /usr/lib/libgif.la /usr/lib/libjpeg.la'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libmgl.
+current=5
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=yes
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/lib'
diff --git a/debian/tmp/usr/lib/libmgl.so b/debian/tmp/usr/lib/libmgl.so
new file mode 120000
index 0000000..3b755b8
--- /dev/null
+++ b/debian/tmp/usr/lib/libmgl.so
@@ -0,0 +1 @@
+libmgl.so.5.0.0
\ No newline at end of file
diff --git a/debian/tmp/usr/lib/libmgl.so.5 b/debian/tmp/usr/lib/libmgl.so.5
new file mode 120000
index 0000000..3b755b8
--- /dev/null
+++ b/debian/tmp/usr/lib/libmgl.so.5
@@ -0,0 +1 @@
+libmgl.so.5.0.0
\ No newline at end of file
diff --git a/debian/tmp/usr/lib/libmgl.so.5.0.0 b/debian/tmp/usr/lib/libmgl.so.5.0.0
new file mode 100755
index 0000000..a9b358a
Binary files /dev/null and b/debian/tmp/usr/lib/libmgl.so.5.0.0 differ
diff --git a/debian/tmp/usr/lib/python2.6/dist-packages/_mathgl.a b/debian/tmp/usr/lib/python2.6/dist-packages/_mathgl.a
new file mode 100644
index 0000000..65f9fdb
Binary files /dev/null and b/debian/tmp/usr/lib/python2.6/dist-packages/_mathgl.a differ
diff --git a/debian/tmp/usr/lib/python2.6/dist-packages/_mathgl.la b/debian/tmp/usr/lib/python2.6/dist-packages/_mathgl.la
new file mode 100755
index 0000000..277debd
--- /dev/null
+++ b/debian/tmp/usr/lib/python2.6/dist-packages/_mathgl.la
@@ -0,0 +1,41 @@
+# _mathgl.la - a libtool library file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='_mathgl.so'
+
+# Names of this library.
+library_names='_mathgl.so _mathgl.so _mathgl.so'
+
+# The name of the static archive.
+old_library='_mathgl.a'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -R/tmp/buildd/libhdf4-4.2r4/HDF4/mfhdf/libsrc/.libs -R/tmp/buildd/libhdf4-4.2r4/HDF4/hdf/src/.libs /usr/lib/libmgl.la -lpng -lGL -L/usr/lib -lgsl -lgslcblas /usr/lib/libmfhdf.la /usr/lib/libdf.la /usr/lib/libhdf5.la -lpthread -lz /usr/lib/libgif.la /usr/lib/libjpeg.la'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for _mathgl.
+current=0
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=yes
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=yes
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/lib/python2.6/dist-packages'
diff --git a/debian/tmp/usr/lib/python2.6/dist-packages/_mathgl.so b/debian/tmp/usr/lib/python2.6/dist-packages/_mathgl.so
new file mode 100755
index 0000000..0eebe20
Binary files /dev/null and b/debian/tmp/usr/lib/python2.6/dist-packages/_mathgl.so differ
diff --git a/debian/tmp/usr/lib/python2.6/dist-packages/mathgl.py b/debian/tmp/usr/lib/python2.6/dist-packages/mathgl.py
new file mode 100644
index 0000000..48b73d8
--- /dev/null
+++ b/debian/tmp/usr/lib/python2.6/dist-packages/mathgl.py
@@ -0,0 +1,403 @@
+# This file was automatically generated by SWIG (http://www.swig.org).
+# Version 1.3.40
+#
+# Do not make changes to this file unless you know what you are doing--modify
+# the SWIG interface file instead.
+# This file is compatible with both classic and new-style classes.
+
+from sys import version_info
+if version_info >= (2,6,0):
+    def swig_import_helper():
+        from os.path import dirname
+        import imp
+        fp = None
+        try:
+            fp, pathname, description = imp.find_module('_mathgl', [dirname(__file__)])
+        except ImportError:
+            import _mathgl
+            return _mathgl
+        if fp is not None:
+            try:
+                _mod = imp.load_module('_mathgl', fp, pathname, description)
+            finally:
+                fp.close()
+            return _mod
+    _mathgl = swig_import_helper()
+    del swig_import_helper
+else:
+    import _mathgl
+del version_info
+try:
+    _swig_property = property
+except NameError:
+    pass # Python < 2.2 doesn't have 'property'.
+def _swig_setattr_nondynamic(self,class_type,name,value,static=1):
+    if (name == "thisown"): return self.this.own(value)
+    if (name == "this"):
+        if type(value).__name__ == 'SwigPyObject':
+            self.__dict__[name] = value
+            return
+    method = class_type.__swig_setmethods__.get(name,None)
+    if method: return method(self,value)
+    if (not static) or hasattr(self,name):
+        self.__dict__[name] = value
+    else:
+        raise AttributeError("You cannot add attributes to %s" % self)
+
+def _swig_setattr(self,class_type,name,value):
+    return _swig_setattr_nondynamic(self,class_type,name,value,0)
+
+def _swig_getattr(self,class_type,name):
+    if (name == "thisown"): return self.this.own()
+    method = class_type.__swig_getmethods__.get(name,None)
+    if method: return method(self)
+    raise AttributeError(name)
+
+def _swig_repr(self):
+    try: strthis = "proxy of " + self.this.__repr__()
+    except: strthis = ""
+    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)
+
+try:
+    _object = object
+    _newclass = 1
+except AttributeError:
+    class _object : pass
+    _newclass = 0
+
+
+class mglPoint(_object):
+    __swig_setmethods__ = {}
+    __setattr__ = lambda self, name, value: _swig_setattr(self, mglPoint, name, value)
+    __swig_getmethods__ = {}
+    __getattr__ = lambda self, name: _swig_getattr(self, mglPoint, name)
+    __repr__ = _swig_repr
+    __swig_setmethods__["x"] = _mathgl.mglPoint_x_set
+    __swig_getmethods__["x"] = _mathgl.mglPoint_x_get
+    if _newclass:x = _swig_property(_mathgl.mglPoint_x_get, _mathgl.mglPoint_x_set)
+    __swig_setmethods__["y"] = _mathgl.mglPoint_y_set
+    __swig_getmethods__["y"] = _mathgl.mglPoint_y_get
+    if _newclass:y = _swig_property(_mathgl.mglPoint_y_get, _mathgl.mglPoint_y_set)
+    __swig_setmethods__["z"] = _mathgl.mglPoint_z_set
+    __swig_getmethods__["z"] = _mathgl.mglPoint_z_get
+    if _newclass:z = _swig_property(_mathgl.mglPoint_z_get, _mathgl.mglPoint_z_set)
+    def __init__(self, X = 0, Y = 0, Z = 0): 
+        this = _mathgl.new_mglPoint(X, Y, Z)
+        try: self.this.append(this)
+        except: self.this = this
+    __swig_destroy__ = _mathgl.delete_mglPoint
+    __del__ = lambda self : None;
+mglPoint_swigregister = _mathgl.mglPoint_swigregister
+mglPoint_swigregister(mglPoint)
+cvar = _mathgl.cvar
+NaN = cvar.NaN
+pi = cvar.pi
+
+class mglData(_object):
+    __swig_setmethods__ = {}
+    __setattr__ = lambda self, name, value: _swig_setattr(self, mglData, name, value)
+    __swig_getmethods__ = {}
+    __getattr__ = lambda self, name: _swig_getattr(self, mglData, name)
+    __repr__ = _swig_repr
+    __swig_destroy__ = _mathgl.delete_mglData
+    __del__ = lambda self : None;
+    def __init__(self, *args): 
+        this = _mathgl.new_mglData(*args)
+        try: self.this.append(this)
+        except: self.this = this
+    def Self(self): return _mathgl.mglData_Self(self)
+    def Rearrange(self, *args): return _mathgl.mglData_Rearrange(self, *args)
+    def Set(self, *args): return _mathgl.mglData_Set(self, *args)
+    def Read(self, *args): return _mathgl.mglData_Read(self, *args)
+    def Save(self, *args): return _mathgl.mglData_Save(self, *args)
+    def Export(self, *args): return _mathgl.mglData_Export(self, *args)
+    def Import(self, *args): return _mathgl.mglData_Import(self, *args)
+    def ReadMat(self, *args): return _mathgl.mglData_ReadMat(self, *args)
+    def Create(self, *args): return _mathgl.mglData_Create(self, *args)
+    def Extend(self, *args): return _mathgl.mglData_Extend(self, *args)
+    def Transpose(self, dim = "yx"): return _mathgl.mglData_Transpose(self, dim)
+    def Norm(self, v1 = 0, v2 = 1, sym = False, dim = 0): return _mathgl.mglData_Norm(self, v1, v2, sym, dim)
+    def NormSl(self, v1 = 0, v2 = 1, dir = 'z', keep_en = True, sym = False): return _mathgl.mglData_NormSl(self, v1, v2, dir, keep_en, sym)
+    def Put(self, *args): return _mathgl.mglData_Put(self, *args)
+    def Modify(self, *args): return _mathgl.mglData_Modify(self, *args)
+    def Fill(self, *args): return _mathgl.mglData_Fill(self, *args)
+    def FillSample(self, *args): return _mathgl.mglData_FillSample(self, *args)
+    def Column(self, *args): return _mathgl.mglData_Column(self, *args)
+    def SetColumnId(self, *args): return _mathgl.mglData_SetColumnId(self, *args)
+    def Squeeze(self, *args): return _mathgl.mglData_Squeeze(self, *args)
+    def Crop(self, *args): return _mathgl.mglData_Crop(self, *args)
+    def Envelop(self, dir = 'x'): return _mathgl.mglData_Envelop(self, dir)
+    def Sew(self, dirs = "xyz", da = 2*pi): return _mathgl.mglData_Sew(self, dirs, da)
+    def Smooth(self, *args): return _mathgl.mglData_Smooth(self, *args)
+    def SubData(self, *args): return _mathgl.mglData_SubData(self, *args)
+    def Hist(self, *args): return _mathgl.mglData_Hist(self, *args)
+    def Sum(self, *args): return _mathgl.mglData_Sum(self, *args)
+    def Max(self, *args): return _mathgl.mglData_Max(self, *args)
+    def Min(self, *args): return _mathgl.mglData_Min(self, *args)
+    def Resize(self, *args): return _mathgl.mglData_Resize(self, *args)
+    def Combine(self, *args): return _mathgl.mglData_Combine(self, *args)
+    def Evaluate(self, *args): return _mathgl.mglData_Evaluate(self, *args)
+    def CumSum(self, *args): return _mathgl.mglData_CumSum(self, *args)
+    def Integral(self, *args): return _mathgl.mglData_Integral(self, *args)
+    def Diff(self, *args): return _mathgl.mglData_Diff(self, *args)
+    def Diff2(self, *args): return _mathgl.mglData_Diff2(self, *args)
+    def Swap(self, *args): return _mathgl.mglData_Swap(self, *args)
+    def Roll(self, *args): return _mathgl.mglData_Roll(self, *args)
+    def Mirror(self, *args): return _mathgl.mglData_Mirror(self, *args)
+    def Hankel(self, *args): return _mathgl.mglData_Hankel(self, *args)
+    def SinFFT(self, *args): return _mathgl.mglData_SinFFT(self, *args)
+    def CosFFT(self, *args): return _mathgl.mglData_CosFFT(self, *args)
+    def Spline(self, *args): return _mathgl.mglData_Spline(self, *args)
+    def Spline1(self, *args): return _mathgl.mglData_Spline1(self, *args)
+    def Linear(self, *args): return _mathgl.mglData_Linear(self, *args)
+    def Linear1(self, *args): return _mathgl.mglData_Linear1(self, *args)
+    def Insert(self, *args): return _mathgl.mglData_Insert(self, *args)
+    def Delete(self, *args): return _mathgl.mglData_Delete(self, *args)
+    def Last(self, *args): return _mathgl.mglData_Last(self, *args)
+    def Find(self, *args): return _mathgl.mglData_Find(self, *args)
+    def FindAny(self, *args): return _mathgl.mglData_FindAny(self, *args)
+    def Maximal(self, *args): return _mathgl.mglData_Maximal(self, *args)
+    def Minimal(self, *args): return _mathgl.mglData_Minimal(self, *args)
+    def Momentum(self, *args): return _mathgl.mglData_Momentum(self, *args)
+    def v(self, *args): return _mathgl.mglData_v(self, *args)
+    def GetVal(self, *args): return _mathgl.mglData_GetVal(self, *args)
+    def SetVal(self, *args): return _mathgl.mglData_SetVal(self, *args)
+    def GetNx(self): return _mathgl.mglData_GetNx(self)
+    def GetNy(self): return _mathgl.mglData_GetNy(self)
+    def GetNz(self): return _mathgl.mglData_GetNz(self)
+    def GetData(self): return _mathgl.mglData_GetData(self)
+    def __getitem__(self, *args): return _mathgl.mglData___getitem__(self, *args)
+    def __paren(self, *args): return _mathgl.mglData___paren(self, *args)
+    def __setitem__(self, *args): return _mathgl.mglData___setitem__(self, *args)
+    def __paren_asgn(self, *args): return _mathgl.mglData___paren_asgn(self, *args)
+mglData_swigregister = _mathgl.mglData_swigregister
+mglData_swigregister(mglData)
+
+class mglGraph(_object):
+    __swig_setmethods__ = {}
+    __setattr__ = lambda self, name, value: _swig_setattr(self, mglGraph, name, value)
+    __swig_getmethods__ = {}
+    __getattr__ = lambda self, name: _swig_getattr(self, mglGraph, name)
+    __repr__ = _swig_repr
+    def __init__(self, kind = 0, width = 600, height = 400): 
+        this = _mathgl.new_mglGraph(kind, width, height)
+        try: self.this.append(this)
+        except: self.this = this
+    __swig_destroy__ = _mathgl.delete_mglGraph
+    __del__ = lambda self : None;
+    def Self(self): return _mathgl.mglGraph_Self(self)
+    def GetWarn(self): return _mathgl.mglGraph_GetWarn(self)
+    def DefaultPlotParam(self): return _mathgl.mglGraph_DefaultPlotParam(self)
+    def SetPalColor(self, *args): return _mathgl.mglGraph_SetPalColor(self, *args)
+    def SetPalNum(self, *args): return _mathgl.mglGraph_SetPalNum(self, *args)
+    def SetPalette(self, *args): return _mathgl.mglGraph_SetPalette(self, *args)
+    def SetScheme(self, *args): return _mathgl.mglGraph_SetScheme(self, *args)
+    def SetRotatedText(self, *args): return _mathgl.mglGraph_SetRotatedText(self, *args)
+    def SetCut(self, *args): return _mathgl.mglGraph_SetCut(self, *args)
+    def SetCutBox(self, *args): return _mathgl.mglGraph_SetCutBox(self, *args)
+    def SetTickLen(self, *args): return _mathgl.mglGraph_SetTickLen(self, *args)
+    def SetTickStl(self, *args): return _mathgl.mglGraph_SetTickStl(self, *args)
+    def SetBaseLineWidth(self, *args): return _mathgl.mglGraph_SetBaseLineWidth(self, *args)
+    def SetSize(self, *args): return _mathgl.mglGraph_SetSize(self, *args)
+    def SetBarWidth(self, *args): return _mathgl.mglGraph_SetBarWidth(self, *args)
+    def SetMarkSize(self, *args): return _mathgl.mglGraph_SetMarkSize(self, *args)
+    def SetArrowSize(self, *args): return _mathgl.mglGraph_SetArrowSize(self, *args)
+    def SetFontSize(self, *args): return _mathgl.mglGraph_SetFontSize(self, *args)
+    def SetFontDef(self, *args): return _mathgl.mglGraph_SetFontDef(self, *args)
+    def SetAlphaDef(self, *args): return _mathgl.mglGraph_SetAlphaDef(self, *args)
+    def SetAxialDir(self, *args): return _mathgl.mglGraph_SetAxialDir(self, *args)
+    def SetMeshNum(self, *args): return _mathgl.mglGraph_SetMeshNum(self, *args)
+    def Zoom(self, *args): return _mathgl.mglGraph_Zoom(self, *args)
+    def SetPlotFactor(self, *args): return _mathgl.mglGraph_SetPlotFactor(self, *args)
+    def SetDrawFace(self, *args): return _mathgl.mglGraph_SetDrawFace(self, *args)
+    def SetLegendBox(self, *args): return _mathgl.mglGraph_SetLegendBox(self, *args)
+    def SetLegendMarks(self, *args): return _mathgl.mglGraph_SetLegendMarks(self, *args)
+    def LoadFont(self, *args): return _mathgl.mglGraph_LoadFont(self, *args)
+    def CopyFont(self, *args): return _mathgl.mglGraph_CopyFont(self, *args)
+    def RestoreFont(self): return _mathgl.mglGraph_RestoreFont(self)
+    def ShowImage(self, viewer = None, keep = 0): return _mathgl.mglGraph_ShowImage(self, viewer, keep)
+    def WriteFrame(self, *args): return _mathgl.mglGraph_WriteFrame(self, *args)
+    def WriteIDTF(self, *args): return _mathgl.mglGraph_WriteIDTF(self, *args)
+    def WriteJPEG(self, *args): return _mathgl.mglGraph_WriteJPEG(self, *args)
+    def WritePNG(self, *args): return _mathgl.mglGraph_WritePNG(self, *args)
+    def WriteEPS(self, *args): return _mathgl.mglGraph_WriteEPS(self, *args)
+    def WriteSVG(self, *args): return _mathgl.mglGraph_WriteSVG(self, *args)
+    def WriteGIF(self, *args): return _mathgl.mglGraph_WriteGIF(self, *args)
+    def StartGIF(self, *args): return _mathgl.mglGraph_StartGIF(self, *args)
+    def CloseGIF(self): return _mathgl.mglGraph_CloseGIF(self)
+    def NewFrame(self): return _mathgl.mglGraph_NewFrame(self)
+    def EndFrame(self): return _mathgl.mglGraph_EndFrame(self)
+    def GetNumFrame(self): return _mathgl.mglGraph_GetNumFrame(self)
+    def ResetFrames(self): return _mathgl.mglGraph_ResetFrames(self)
+    def Flush(self): return _mathgl.mglGraph_Flush(self)
+    def GetRGB(self, *args): return _mathgl.mglGraph_GetRGB(self, *args)
+    def GetRGBA(self, *args): return _mathgl.mglGraph_GetRGBA(self, *args)
+    def GetBGRN(self, *args): return _mathgl.mglGraph_GetBGRN(self, *args)
+    def GetWidth(self): return _mathgl.mglGraph_GetWidth(self)
+    def GetHeight(self): return _mathgl.mglGraph_GetHeight(self)
+    def CalcXYZ(self, *args): return _mathgl.mglGraph_CalcXYZ(self, *args)
+    def CalcScr(self, *args): return _mathgl.mglGraph_CalcScr(self, *args)
+    def SetTranspType(self, *args): return _mathgl.mglGraph_SetTranspType(self, *args)
+    def SetTransparent(self, *args): return _mathgl.mglGraph_SetTransparent(self, *args)
+    def Alpha(self, *args): return _mathgl.mglGraph_Alpha(self, *args)
+    def Fog(self, *args): return _mathgl.mglGraph_Fog(self, *args)
+    def Light(self, *args): return _mathgl.mglGraph_Light(self, *args)
+    def AddLight(self, *args): return _mathgl.mglGraph_AddLight(self, *args)
+    def SetAmbient(self, *args): return _mathgl.mglGraph_SetAmbient(self, *args)
+    def Identity(self, rel = False): return _mathgl.mglGraph_Identity(self, rel)
+    def Clf(self, r = 1, g = 1, b = 1): return _mathgl.mglGraph_Clf(self, r, g, b)
+    def SubPlot(self, *args): return _mathgl.mglGraph_SubPlot(self, *args)
+    def InPlot(self, *args): return _mathgl.mglGraph_InPlot(self, *args)
+    def ColumnPlot(self, *args): return _mathgl.mglGraph_ColumnPlot(self, *args)
+    def StickPlot(self, *args): return _mathgl.mglGraph_StickPlot(self, *args)
+    def Aspect(self, *args): return _mathgl.mglGraph_Aspect(self, *args)
+    def Rotate(self, *args): return _mathgl.mglGraph_Rotate(self, *args)
+    def RotateN(self, *args): return _mathgl.mglGraph_RotateN(self, *args)
+    def Perspective(self, *args): return _mathgl.mglGraph_Perspective(self, *args)
+    def SetTicks(self, *args): return _mathgl.mglGraph_SetTicks(self, *args)
+    def AdjustTicks(self, dir = "xyzc"): return _mathgl.mglGraph_AdjustTicks(self, dir)
+    def SetRanges(self, *args): return _mathgl.mglGraph_SetRanges(self, *args)
+    def SetAutoRanges(self, *args): return _mathgl.mglGraph_SetAutoRanges(self, *args)
+    def SetOrigin(self, *args): return _mathgl.mglGraph_SetOrigin(self, *args)
+    def SetCRange(self, *args): return _mathgl.mglGraph_SetCRange(self, *args)
+    def SetXRange(self, *args): return _mathgl.mglGraph_SetXRange(self, *args)
+    def SetYRange(self, *args): return _mathgl.mglGraph_SetYRange(self, *args)
+    def SetZRange(self, *args): return _mathgl.mglGraph_SetZRange(self, *args)
+    def SetFunc(self, *args): return _mathgl.mglGraph_SetFunc(self, *args)
+    def SetCoor(self, *args): return _mathgl.mglGraph_SetCoor(self, *args)
+    def Ternary(self, *args): return _mathgl.mglGraph_Ternary(self, *args)
+    def CutOff(self, *args): return _mathgl.mglGraph_CutOff(self, *args)
+    def Box(self, col = "k", ticks = True): return _mathgl.mglGraph_Box(self, col, ticks)
+    def Axis(self, dir = "xyzt", adjust = False): return _mathgl.mglGraph_Axis(self, dir, adjust)
+    def Label(self, *args): return _mathgl.mglGraph_Label(self, *args)
+    def SetTuneTicks(self, *args): return _mathgl.mglGraph_SetTuneTicks(self, *args)
+    def SetXTT(self, *args): return _mathgl.mglGraph_SetXTT(self, *args)
+    def SetYTT(self, *args): return _mathgl.mglGraph_SetYTT(self, *args)
+    def SetZTT(self, *args): return _mathgl.mglGraph_SetZTT(self, *args)
+    def SetCTT(self, *args): return _mathgl.mglGraph_SetCTT(self, *args)
+    def Ball(self, *args): return _mathgl.mglGraph_Ball(self, *args)
+    def Line(self, *args): return _mathgl.mglGraph_Line(self, *args)
+    def FaceX(self, *args): return _mathgl.mglGraph_FaceX(self, *args)
+    def FaceY(self, *args): return _mathgl.mglGraph_FaceY(self, *args)
+    def FaceZ(self, *args): return _mathgl.mglGraph_FaceZ(self, *args)
+    def Curve(self, *args): return _mathgl.mglGraph_Curve(self, *args)
+    def Drop(self, *args): return _mathgl.mglGraph_Drop(self, *args)
+    def Sphere(self, *args): return _mathgl.mglGraph_Sphere(self, *args)
+    def Cone(self, *args): return _mathgl.mglGraph_Cone(self, *args)
+    def Putsw(self, *args): return _mathgl.mglGraph_Putsw(self, *args)
+    def Puts(self, *args): return _mathgl.mglGraph_Puts(self, *args)
+    def Title(self, *args): return _mathgl.mglGraph_Title(self, *args)
+    def Colorbar(self, *args): return _mathgl.mglGraph_Colorbar(self, *args)
+    def SimplePlot(self, *args): return _mathgl.mglGraph_SimplePlot(self, *args)
+    def AddLegend(self, *args): return _mathgl.mglGraph_AddLegend(self, *args)
+    def AddLegendw(self, *args): return _mathgl.mglGraph_AddLegendw(self, *args)
+    def ClearLegend(self): return _mathgl.mglGraph_ClearLegend(self)
+    def Legend(self, *args): return _mathgl.mglGraph_Legend(self, *args)
+    def Plot(self, *args): return _mathgl.mglGraph_Plot(self, *args)
+    def BoxPlot(self, *args): return _mathgl.mglGraph_BoxPlot(self, *args)
+    def Radar(self, *args): return _mathgl.mglGraph_Radar(self, *args)
+    def Tens(self, *args): return _mathgl.mglGraph_Tens(self, *args)
+    def Area(self, *args): return _mathgl.mglGraph_Area(self, *args)
+    def Stem(self, *args): return _mathgl.mglGraph_Stem(self, *args)
+    def Step(self, *args): return _mathgl.mglGraph_Step(self, *args)
+    def Bars(self, *args): return _mathgl.mglGraph_Bars(self, *args)
+    def Barh(self, *args): return _mathgl.mglGraph_Barh(self, *args)
+    def Region(self, *args): return _mathgl.mglGraph_Region(self, *args)
+    def Torus(self, *args): return _mathgl.mglGraph_Torus(self, *args)
+    def Text(self, *args): return _mathgl.mglGraph_Text(self, *args)
+    def Chart(self, *args): return _mathgl.mglGraph_Chart(self, *args)
+    def Error(self, *args): return _mathgl.mglGraph_Error(self, *args)
+    def Mark(self, *args): return _mathgl.mglGraph_Mark(self, *args)
+    def TextMark(self, *args): return _mathgl.mglGraph_TextMark(self, *args)
+    def Tube(self, *args): return _mathgl.mglGraph_Tube(self, *args)
+    def Grid(self, *args): return _mathgl.mglGraph_Grid(self, *args)
+    def Mesh(self, *args): return _mathgl.mglGraph_Mesh(self, *args)
+    def Fall(self, *args): return _mathgl.mglGraph_Fall(self, *args)
+    def Belt(self, *args): return _mathgl.mglGraph_Belt(self, *args)
+    def Surf(self, *args): return _mathgl.mglGraph_Surf(self, *args)
+    def Tile(self, *args): return _mathgl.mglGraph_Tile(self, *args)
+    def TileS(self, *args): return _mathgl.mglGraph_TileS(self, *args)
+    def Dens(self, *args): return _mathgl.mglGraph_Dens(self, *args)
+    def Boxs(self, *args): return _mathgl.mglGraph_Boxs(self, *args)
+    def Cont(self, *args): return _mathgl.mglGraph_Cont(self, *args)
+    def ContF(self, *args): return _mathgl.mglGraph_ContF(self, *args)
+    def ContD(self, *args): return _mathgl.mglGraph_ContD(self, *args)
+    def Axial(self, *args): return _mathgl.mglGraph_Axial(self, *args)
+    def SurfC(self, *args): return _mathgl.mglGraph_SurfC(self, *args)
+    def SurfA(self, *args): return _mathgl.mglGraph_SurfA(self, *args)
+    def STFA(self, *args): return _mathgl.mglGraph_STFA(self, *args)
+    def Dew(self, *args): return _mathgl.mglGraph_Dew(self, *args)
+    def Traj(self, *args): return _mathgl.mglGraph_Traj(self, *args)
+    def Vect(self, *args): return _mathgl.mglGraph_Vect(self, *args)
+    def VectL(self, *args): return _mathgl.mglGraph_VectL(self, *args)
+    def VectC(self, *args): return _mathgl.mglGraph_VectC(self, *args)
+    def Map(self, *args): return _mathgl.mglGraph_Map(self, *args)
+    def Surf3A(self, *args): return _mathgl.mglGraph_Surf3A(self, *args)
+    def Surf3C(self, *args): return _mathgl.mglGraph_Surf3C(self, *args)
+    def Flow(self, *args): return _mathgl.mglGraph_Flow(self, *args)
+    def FlowP(self, *args): return _mathgl.mglGraph_FlowP(self, *args)
+    def Grad(self, *args): return _mathgl.mglGraph_Grad(self, *args)
+    def Pipe(self, *args): return _mathgl.mglGraph_Pipe(self, *args)
+    def Grid3(self, *args): return _mathgl.mglGraph_Grid3(self, *args)
+    def GridA(self, *args): return _mathgl.mglGraph_GridA(self, *args)
+    def Dens3(self, *args): return _mathgl.mglGraph_Dens3(self, *args)
+    def DensA(self, *args): return _mathgl.mglGraph_DensA(self, *args)
+    def Surf3(self, *args): return _mathgl.mglGraph_Surf3(self, *args)
+    def Cloud(self, *args): return _mathgl.mglGraph_Cloud(self, *args)
+    def Cont3(self, *args): return _mathgl.mglGraph_Cont3(self, *args)
+    def ContA(self, *args): return _mathgl.mglGraph_ContA(self, *args)
+    def ContF3(self, *args): return _mathgl.mglGraph_ContF3(self, *args)
+    def ContFA(self, *args): return _mathgl.mglGraph_ContFA(self, *args)
+    def Beam(self, *args): return _mathgl.mglGraph_Beam(self, *args)
+    def TriPlot(self, *args): return _mathgl.mglGraph_TriPlot(self, *args)
+    def QuadPlot(self, *args): return _mathgl.mglGraph_QuadPlot(self, *args)
+    def TriCont(self, *args): return _mathgl.mglGraph_TriCont(self, *args)
+    def TriContV(self, *args): return _mathgl.mglGraph_TriContV(self, *args)
+    def Dots(self, *args): return _mathgl.mglGraph_Dots(self, *args)
+    def Crust(self, *args): return _mathgl.mglGraph_Crust(self, *args)
+    def DensX(self, *args): return _mathgl.mglGraph_DensX(self, *args)
+    def DensY(self, *args): return _mathgl.mglGraph_DensY(self, *args)
+    def DensZ(self, *args): return _mathgl.mglGraph_DensZ(self, *args)
+    def ContX(self, *args): return _mathgl.mglGraph_ContX(self, *args)
+    def ContY(self, *args): return _mathgl.mglGraph_ContY(self, *args)
+    def ContZ(self, *args): return _mathgl.mglGraph_ContZ(self, *args)
+    def ContFX(self, *args): return _mathgl.mglGraph_ContFX(self, *args)
+    def ContFY(self, *args): return _mathgl.mglGraph_ContFY(self, *args)
+    def ContFZ(self, *args): return _mathgl.mglGraph_ContFZ(self, *args)
+    def Hist(self, *args): return _mathgl.mglGraph_Hist(self, *args)
+    def Fit2(self, *args): return _mathgl.mglGraph_Fit2(self, *args)
+    def Fit3(self, *args): return _mathgl.mglGraph_Fit3(self, *args)
+    def Fit(self, *args): return _mathgl.mglGraph_Fit(self, *args)
+    def FitS(self, *args): return _mathgl.mglGraph_FitS(self, *args)
+    def PutsFit(self, *args): return _mathgl.mglGraph_PutsFit(self, *args)
+    def GetFit(self): return _mathgl.mglGraph_GetFit(self)
+    def PDE(self, *args): return _mathgl.mglGraph_PDE(self, *args)
+    def Fill(self, *args): return _mathgl.mglGraph_Fill(self, *args)
+mglGraph_swigregister = _mathgl.mglGraph_swigregister
+mglGraph_swigregister(mglGraph)
+
+class mglParse(_object):
+    __swig_setmethods__ = {}
+    __setattr__ = lambda self, name, value: _swig_setattr(self, mglParse, name, value)
+    __swig_getmethods__ = {}
+    __getattr__ = lambda self, name: _swig_getattr(self, mglParse, name)
+    __repr__ = _swig_repr
+    def __init__(self): 
+        this = _mathgl.new_mglParse()
+        try: self.this.append(this)
+        except: self.this = this
+    __swig_destroy__ = _mathgl.delete_mglParse
+    __del__ = lambda self : None;
+    def AddParam(self, *args): return _mathgl.mglParse_AddParam(self, *args)
+    def AddVar(self, *args): return _mathgl.mglParse_AddVar(self, *args)
+    def FindVar(self, *args): return _mathgl.mglParse_FindVar(self, *args)
+    def Parse(self, *args): return _mathgl.mglParse_Parse(self, *args)
+    def ScanFunc(self, *args): return _mathgl.mglParse_ScanFunc(self, *args)
+    def Execute(self, *args): return _mathgl.mglParse_Execute(self, *args)
+    def RestoreOnce(self): return _mathgl.mglParse_RestoreOnce(self)
+    def AllowSetSize(self, *args): return _mathgl.mglParse_AllowSetSize(self, *args)
+mglParse_swigregister = _mathgl.mglParse_swigregister
+mglParse_swigregister(mglParse)
+
+
+
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en.html b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en.html
new file mode 100644
index 0000000..cbf4442
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: MathGL</title>
+
+<meta name="description" content="MathGL 1.11: MathGL">
+<meta name="keywords" content="MathGL 1.11: MathGL">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Top"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL"></a>
+<h1 class="settitle">MathGL</h1>
+
+<p>This file documents the Mathematical Graphic Library (MathGL), a collection of classes and routines for scientific plotting. It corresponds to release 1.11 of the library. Please report any errors in this manual to <a href="mailto:mathgl.abalakin at gmail.org">mathgl.abalakin at gmail.org</a>. More information about MathGL can be found at the project homepage, <a href="http://mathgl.sourceforge.net/">http://mathgl.sourceforge.net/</a>.
+</p>
+<p>Copyright &copy; 2008 Alexey A. Balakin. 
+</p>
+<blockquote><p>Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being &ldquo;A GNU Manual,&rdquo;
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled &ldquo;GNU Free Documentation
+License.&rdquo;
+</p>
+<p>(a) The FSF&rsquo;s Back-Cover Text is: &ldquo;You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom.&rdquo;
+</p></blockquote>
+
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="mathgl_en_1.html#Overview">1. Overview</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_2.html#Examples">2. MathGL examples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_3.html#MathGL-core">3. MathGL core</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_4.html#Plotter-classes">4. Plotter classes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_5.html#Widget-classes">5. Widget classes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_6.html#mglData-class">6. mglData class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_7.html#Other-classes">7. Other classes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_8.html#MGL-interface">8. MGL language</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_9.html#Samples">9. Samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_10.html#TeX_002dlike-symbols">A. TeX-like symbols</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_11.html#Copying-This-Manual">B. GNU Free Documentation License</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_12.html#Index">Index</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+
+
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_1.html b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_1.html
new file mode 100644
index 0000000..4e3a103
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_1.html
@@ -0,0 +1,922 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: 1. Overview</title>
+
+<meta name="description" content="MathGL 1.11: 1. Overview">
+<meta name="keywords" content="MathGL 1.11: 1. Overview">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Overview"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Why-have-I-written-MathGL_003f" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Overview-1"></a>
+<h1 class="chapter">1. Overview</h1>
+
+<a name="index-MathGL-overview"></a>
+
+<p>MathGL is ...
+</p><ul>
+<li>
+a library for making high-quality scientific graphics under Linux and Windows;
+</li><li>
+a library for the fast data plotting and handling of large data arrays;
+</li><li>
+a library for working in window and console modes and for easy embedding into other programs;
+</li><li>
+a library with large and growing set of graphics.
+</li></ul>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Why-have-I-written-MathGL_003f">1.1 Why have I written MathGL?</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#MathGL-features">1.2 MathGL features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Installation-and-usage">1.3 Installation and usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#General-concepts">1.4 General concepts</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#FAQ">1.5 FAQ</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Interfaces">1.6 Interfaces</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Thanks">1.7 Thanks</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Why-have-I-written-MathGL_003f"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Overview" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Why-have-I-written-MathGL_003f-1"></a>
+<h2 class="section">1.1 Why have I written MathGL?</h2>
+
+<p>A code for making high-quality scientific graphics under Linux and Windows. A  code for the fast handling and plotting of large data arrays. A code for working in window and console regimes and for easy including into another program. A code with large and renewal set of graphics. Exactly such a code I was looking for in the last years. Exactly such a code I tried to realize in MathGL library.
+</p>
+<p>At this version (1.11) MathGL has more than 20000 code strings, more than 40 general types of graphics for 1d, 2d and 3d data arrays. It can export graphics to bitmap and vector (EPS or SVG) files. It has OpenGL interface and can be used from console programs. It has functions for data handling and script MGL language for simplification of data plotting. It also has several types of transparency and smoothed lighting, vector fonts and TeX-like symbol parsing, arbitrary curvilinear coordinate system and many other useful things (see pictures section at <a href="http://mathgl.sf.net/">homepage</a>). Finally it is platform-independent and free (under GPL v.2.0 or later license).
+</p>
+<hr size="6">
+<a name="MathGL-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Why-have-I-written-MathGL_003f" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Installation-and-usage" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL-features-1"></a>
+<h2 class="section">1.2 MathGL features</h2>
+
+<p>MathGL can plot a wide range of graphics. It includes:
+</p><ul>
+<li>
+one-dimensional (Plot, Area, Bars, Step, Stem, Torus, Chart, Error, Tube, Mark, see section <a href="mathgl_en_3.html#g_t1D-plotting">1D plotting</a>);
+
+</li><li>
+two-dimensional plots (Mesh, Surf, Dens, Cont, ContF, Boxs, Axial, Fall, Belt, Tile, see section <a href="mathgl_en_3.html#g_t2D-plotting">2D plotting</a>);
+
+</li><li>
+three-dimensional plots (Surf3, Dens3, Cont3, ContF3, Cloud-like, see section <a href="mathgl_en_3.html#g_t3D-plotting">3D plotting</a>);
+
+</li><li>
+dual data plots: vector fields Vect and VectC, flow threads Flow, mapping chart Map, surfaces and isosurfaces, transparent or colored (i.e. with transparency or color varied) by other data SurfA, SurfC, Surf3A, Surf3C (see section <a href="mathgl_en_3.html#Dual-plotting">Dual plotting</a>);
+
+</li><li>
+and so on. For details see see section <a href="mathgl_en_3.html#MathGL-core">MathGL core</a>.
+</li></ul>
+
+<p>In fact, I created the functions for drawing of all the types of scientific plots that I know. The list of plots is growing; if you need some special type of a plot then please email me <a href="mailto:mathgl.abalakin at gmail.com">e-mail</a> and it will appear in the new version.
+</p>
+<p>I tried to make plots as nice looking as possible: e.g., a surface can be transparent and highlighted by several (up to 10) light sources. Most of the drawing functions have 2 variants: simple one for the fast plotting of data, complex one for specifying of the exact position of the plot (including parametric representation). Resulting image can be saved in bitmap (with the help of mglGraphZB, mglGraphGL) PNG, JPEG, TIFF, BMP format or in vector EPS or SVG format (with the help of mglGraphPS), or in IDTF format (with the help of mglGraphIDTF) which can be converted into U3D.
+</p>
+<p>All texts are drawn by vector fonts, which allows for high scalability and portability. Texts may contain commands for: some of the TeX-like symbols, changing index (upper or lower indexes) and the style of font inside the text string (see section <a href="mathgl_en_7.html#mglFont-class">mglFont class</a>). Texts of ticks are rotated with axis rotation. It is possible to create a legend of plot and put text in an arbitrary position on the plot. Arbitrary text encoding (by the help of function <code>setlocale()</code>) and UTF-16 encoding are supported.
+</p>
+<p>Special mglData class is used for data encapsulation (see section <a href="mathgl_en_6.html#mglData-class">mglData class</a>). In addition to a safe creation and deletion of data arrays it includes functions for data processing (smoothing, differentiating, integrating, interpolating and so on) and reading of data files with automatic size determination. Class mglData can handle arrays with up to three dimensions (arrays which depend on up to 3 independent indexes <em>a_ijk</em>). Using an array with higher number of dimensions is not meaningful, because I do not know how it can be plotted. Data filling and modification may be done manually or by textual formulas.
+</p>
+<p>The mglFormula class allows a fast evaluation of a textual mathematical expression (see section <a href="mathgl_en_7.html#mglFormula-class">mglFormula class</a>). It is based on string precompilation to tree-like code at the creation of class instance. At evaluation stage code performs only fast tree-walk and returns the value of the expression. In addition to changing data values, textual formulas are also used for drawing in <em>arbitrary</em> curvilinear coordinates. A set of such curvilinear coordinates is limited only by user&lt;/samp&gt;&amp;rsquo;s imagination rather than a fixed list like: polar, parabolic, spherical, and so on.
+</p>
+<hr size="6">
+<a name="Installation-and-usage"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MathGL-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Installation-and-usage-1"></a>
+<h2 class="section">1.3 Installation and usage</h2>
+
+<p>MathGL can be installed in 3 different ways.
+</p><ol>
+<li>
+Compile from sources. The standard script for autoconf/automake tool is included in the library beginning from version 1.2.1. To run it, one should execute 3 commands: <code>./configure</code> after it <code>make</code> and <code>make install</code> with root/sudo rights. Sometimes after installation you may need to update the library list &ndash; just execute <code>ldconfig</code> with root/sudo rights.
+
+<p>Script <code>./configure</code> have several additional options which are switched off by default. They are: <code>--enable-fltk, --enable-glut, --enable-qt</code> for ebabling FLTK, GLUT and/or Qt windows; <code>--enable-jpeg, --enable-tiff, --enable-hdf5</code> for enabling corresponding file formats; <code>--enable-all</code> for enabling all additional features. For using <code>double</code> as base internal data type use option <code>--enable-double</code>. For enabling language interfaces use <code>--enable-python, --enable-octave</code> or <code>--enable-langall</code> for all languages. The full list of options can be viewed by command <code>./configure --help</code>.
+</p></li><li>
+Use a precompiled binary. There are binaries for MinGW (platform Win32). For a precompiled variant one needs only to unpack the archive to the location of the compiler (or in any other folder and setup paths). By default, precompiled versions include the support of GSL (www.gsl.org) and PNG. So, one needs to have these libraries installed on system.
+</li><li>
+Install precompiled versions from standard packages (RPM, deb, DevPak and so on, see <a href="http://mathgl.sf.net/download.html">Download</a> section at homepage).
+</li></ol>
+
+<p>To compile your own program, you need to specify the linker option <code>-lmgl</code> for a compilation in the console program or with external (non-MathGL) window library. If you want to use FLTK or GLUT windows then you need to add the option <code>-lmgl-fltk</code> or <code>-lmgl-glut</code>. Fortran users also should add C++ library by the option <code>-lstdc++</code>.
+</p>
+<hr size="6">
+<a name="General-concepts"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Installation-and-usage" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Coordinate-axes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="General-concepts-1"></a>
+<h2 class="section">1.4 General concepts</h2>
+
+<p>The set of MathGL features is rather rich &ndash; just the number of basic graphics types 
+is larger than 40. Also there are functions for data handling, plot setup and so on. In spite of it I tried to keep a similar style in function names and in the order of arguments. Mostly it is 
+used for different drawing functions.
+</p>
+<p>There are six most general (base) concepts:
+</p><ol>
+<li>
+<strong>Any picture is created in memory first.</strong> The internal (memory) representation can be different: bitmap picture or the list of vector primitives. After that the user may decide what he/she want: save to file, display on the screen, run animation, do additional editing and so on. This approach assures a high portability of the program &ndash; the source code will produce exactly the same picture in <em>any</em> OS. Another big positive consequence is the ability to create the picture in the console program (using command line, without creating a window)!
+</li><li>
+<strong>Every plot settings (style of lines, font, color scheme) are specified by a string.</strong> It provides convenience for user/programmer &ndash; short string with parameters is more comprehensible than a large set of parameters. Also it provides portability &ndash; the strings are the same in any OS so that it is not necessary to think about argument types.
+</li><li>
+<strong>All functions have &ldquo;simplified&rdquo; and &ldquo;advanced&rdquo; forms.</strong> It is done for user&lt;/samp&gt;&amp;rsquo;s convenience. One needs to specify only one data array in the &ldquo;simplified&rdquo; form in order to see the result. But one may set parametric dependence of coordinates and produce rather complex curves and surfaces in the &ldquo;advanced&rdquo; form. In both cases the order of function arguments is the same: first data arrays, second the string with plot parameters, and later optional arguments for plot tuning.
+</li><li>
+<strong>All data arrays for plotting are encapsulated in mglData class.</strong> This reduces the number of errors while working with memory and provides a uniform interface for data of different types (float, double and so on) or for formula plotting.
+</li><li>
+<strong>All plots are vector plots.</strong> The MathGL library is intended for handling scientific data which have vector nature (lines, faces, matrices and so on). As a result, vector representation is used in all cases! In addition, the vector representation allows one to scale the plot easily &ndash; change the canvas size by a factor of 2, and the picture will be proportionally scaled.
+</li><li>
+<strong>New drawing never clears things drawn already.</strong> This, in some sense, unexpected, idea allows to create a lot of &ldquo;combined&rdquo; graphics. For example, to make a surface with contour lines one needs to call the function for surface plotting and the function for contour lines plotting (in any order). Thus the special functions for making this &ldquo;combined&rdquo; plots (as it is done in Matlab and some other plotting systems) are superfluous. Many more examples of such plots can be found in section <a href="mathgl_en_2.html#Hints">Hints</a> and in home site (<a href="http://mathgl.sf.net/index.html">http://mathgl.sf.net/index.html</a>).
+</li></ol>
+
+<p>In addition to the general concepts I want to comment on some non-trivial or less commonly used general ideas &ndash; plot positioning, axis specification and curvilinear coordinates, styles for lines, text and color scheme.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Coordinate-axes">1.4.1 Coordinate axes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Line-styles">1.4.2 Line styles</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Color-scheme">1.4.3 Color scheme</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-styles">1.4.4 Font styles</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Textual-formulas">1.4.5 Textual formulas</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+
+
+<hr size="6">
+<a name="Coordinate-axes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#General-concepts" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Line-styles" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Coordinate-axes-1"></a>
+<h3 class="subsection">1.4.1 Coordinate axes</h3>
+
+<p>Two axis representations are used in MathGL. The first one consists of normalizing the data point coordinates in a box <var>Min</var>x<var>Max</var> (see section <a href="mathgl_en_3.html#Axis-settings">Axis settings</a>). If <var>Cut</var> is <code>true</code> then the outlier points are omitted, otherwise they are projected to the bounding box (see section <a href="mathgl_en_3.html#Cutting">Cutting</a>). Also, the point will be omitted if it lies inside the box defined by <var>CutMin</var> x <var>CutMax</var> or if the value of formula <code>CutOff</code>() is nonzero for its coordinates. After that, transformation formulas are applied to the data point. Finally, the data point is plotted by one of the functions.
+</p>
+<p>There is a possibility to set members <var>Max</var>, <var>Min</var> directly, but one should call <code>RecalcBorder()</code> function to setup plotting routines. A safer way is to set these values by calling the <code>Axis()</code> function, which calls <code>RecalcBorder()</code> automatically. Another way to specify the scaling of the axis is to set it as a minimal or maximal value of the data array. Functions <code>XRange(), YRange(), ZRange()</code> do it. The second (optional) argument is used to replace the axis range or to join with the existed range.
+</p>
+<p>The axis origin is defined by the variable <var>Org</var> and is applied to all consequent calls of axes or grid drawing. By default, if this point lies outside the bounding box then it is projected onto the one (variable <var>AutoOrg</var> controls it). If one of the values of <var>Org</var> is equal to NAN then the corresponding value will be selected automatically.
+</p>
+<p>There is 4-th axis <em>c</em> (color axis or colorbar) in addition to the usual axes <em>x, y, z</em>. It sets the range of values for the surface coloring. Its borders are automatically set to values of Min.z, Max.z during the call of <code>Axis()</code> function. Also, one can directly change the color range by setting variables <var>Cmax</var>, <var>Cmax</var>, or calling functions <code>CAxis()</code> or <code>CRange()</code>. Use <code>Colorbar()</code> function for showing the colorbar.
+</p>
+<p>The form (appearence) of tick labels is controlled by <code>SetTicks()</code> function (see section <a href="mathgl_en_3.html#Axis-settings">Axis settings</a>). It has 3 arguments: first one <var>d</var> sets the tick step (if positive) or tick number (if negative) or switches logarithmic ticks on (if zero); the second one, <var>ns</var>, sets the number of subticks; the last one is the starting point for ticks (default is axis origin). Function <var>SetTuneTicks</var> switches on/off tick enhancing by factoring out acommon multiplier (for small coordinate values, like 0.001 to 0.002, or large, like from 1000 to 2000) or common component (for narrow range, like from 0.999 to 1.000). Finally, you may use functions <code>SetXTT(), SetYTT(), SetZTT(), SetCTT()</code> for setting templates for tick labels (it supports TeX symbols). Also, there is a possibility to print arbitrary text as tick labels the by help of <code>SetTicksVal()</code> function.
+</p>
+<hr size="6">
+<a name="Line-styles"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Coordinate-axes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Color-scheme" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Line-styles-1"></a>
+<h3 class="subsection">1.4.2 Line styles</h3>
+
+<a name="index-Line-style"></a>
+<a name="index-Mark-style"></a>
+<a name="index-Arrows"></a>
+
+<p>The line style is defined by the string which may contain specifications for color (&lsquo;<samp>wkrgbcymhRGBCYMHWlenupqLENUPQ</samp>&rsquo;), dashing style (&lsquo;<samp>-|;:ji</samp>&rsquo; or space), width (&lsquo;<samp>0123456789</samp>&rsquo;) and marks (&lsquo;<samp>o+xsd.^v</samp>&rsquo; and &lsquo;<samp>#</samp>&rsquo; modifier). If one of the type of information is omitted then default values used with the previous color or one from palette (for see section <a href="mathgl_en_3.html#g_t1D-plotting">1D plotting</a>) are adopted. 
+By default palette contain following colors: <span style="color: rgb(76, 76, 76);">dark gray</span> &lsquo;<samp>H</samp>&rsquo;, <span style="color: rgb(0, 0, 255);">blue</span> &lsquo;<samp>b</samp>&rsquo;, <span style="color: rgb(0, 255, 0);">green</span> &lsquo;<samp>g</samp>&rsquo;, <span style="color: rgb(255, 0, 0);">red</span> &lsquo;<samp>r</samp>&rsquo;, <span style="color: rgb(0, 255, 255);">cyan</span> &lsquo;<samp>c</samp>&rsquo;, <span style="color: rgb(255, 0, 255);">magenta</span> &lsquo;<samp>m</samp>&rsquo;, <span style="color: rgb(255, 255, 0);">yellow</span> &lsquo;<samp>y</samp>&rsquo;, <span style="color: rgb(127, 127, 127);">gray</span> &lsquo;<samp>h</samp>&rsquo;, <span style="color: rgb(0, 255, 127);">green-blue</span> &lsquo;<samp>l</samp>&rsquo;, <span style="color: rgb(0, 127, 255);">sky-blue</span> &lsquo;<samp>n</samp>&rsquo;, <span style="color: rgb(255, 127, 0);">orange</span> &lsquo;<samp>q</samp>&rsquo;, <span style="color: rgb(127, 255, 0);">green-yellow</span> &lsquo;<samp>e</samp>&rsquo;, <span style="color: rgb(127, 0, 255);">blue-violet</span> &lsquo;<samp>u</samp>&rsquo;, <span style="color: rgb(255, 0, 127);">purple</span> &lsquo;<samp>p</samp>&rsquo;.
+
+<p>The color types are: &lsquo;<samp>k</samp>&rsquo; -- black, &lsquo;<samp>r</samp>&rsquo; -- <span style="color: rgb(255, 0, 0);">red</span>, &lsquo;<samp>R</samp>&rsquo; -- <span style="color: rgb(127, 0, 0);">dark red</span>, &lsquo;<samp>g</samp>&rsquo; -- <span style="color: rgb(0, 255, 0);">green</span>, &lsquo;<samp>G</samp>&rsquo; -- <span style="color: rgb(0, 127, 0);">dark green</span>, &lsquo;<samp>b</samp>&rsquo; -- <span style="color: rgb(0, 0, 255);">blue</span>, &lsquo;<samp>B</samp>&rsquo; -- <span style="color: rgb(0, 0, 127);">dark blue</span>, &lsquo;<samp>c</samp>&rsquo; -- <span style="color: rgb(0, 255, 255);">cyan</span>, &lsquo;<samp>C</samp>&rsquo; -- <span style="color: rgb(0, 127, 127);">dark cyan</span>, &lsquo;<samp>m</samp>&rsquo; -- <span style="color: rgb(255, 0, 255);">magenta</span>, &lsquo;<samp>M</samp>&rsquo; -- <span style="color: rgb(127, 0, 127);">dark magenta</span>, &lsquo;<samp>y</samp>&rsquo; -- <span style="color: rgb(255, 255, 0);">yellow</span>, &lsquo;<samp>Y</samp>&rsquo; -- <span style="color: rgb(127, 127, 0);">dark yellow (gold)</span>, &lsquo;<samp>h</samp>&rsquo; -- <span style="color: rgb(127, 127, 127);">gray</span>, &lsquo;<samp>H</samp>&rsquo; -- <span style="color: rgb(76, 76, 76);">dark gray</span>, &lsquo;<samp>w</samp>&rsquo; -- white, &lsquo;<samp>W</samp>&rsquo; -- <span style="color: rgb(178, 178, 178);">bright gray</span>, &lsquo;<samp>l</samp>&rsquo; -- <span style="color: rgb(0, 255, 127);">green-blue</span>, &lsquo;<samp>L</samp>&rsquo; -- <span style="color: rgb(0, 127, 63);">dark green-blue</span>, &lsquo;<samp>e</samp>&rsquo; -- <span style="color: rgb(127, 255, 0);">green-yellow</span>, &lsquo;<samp>E</samp>&rsquo; -- <span style="color: rgb(63, 127, 0);">dark green-yellow</span>, &lsquo;<samp>n</samp>&rsquo; -- <span style="color: rgb(0, 127, 255);">sky-blue</span>, &lsquo;<samp>N</samp>&rsquo; -- <span style="color: rgb(0, 63, 127);">dark sky-blue</span>, &lsquo;<samp>u</samp>&rsquo; -- <span style="color: rgb(127, 0, 255);">blue-violet</span>, &lsquo;<samp>U</samp>&rsquo; -- <span style="color: rgb(63, 0, 127);">dark blue-violet</span>, &lsquo;<samp>p</samp>&rsquo; -- <span style="color: rgb(255, 0, 127);">purple</span>, &lsquo;<samp>P</samp>&rsquo; -- <span style="color: rgb(127, 0, 63);">dark purple</span>, &lsquo;<samp>q</samp>&rsquo; -- <span style="color: rgb(255, 127, 0);">orange</span>, &lsquo;<samp>Q</samp>&rsquo; -- <span style="color: rgb(127, 63, 0);">dark orange (brown)</span>.</p>
+
+Dashing style has the following meaning: space -- no line (usable for plotting only marks), &lsquo;<samp>-</samp>&rsquo; -- solid line (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;), &lsquo;<samp>|</samp>&rsquo; -- long dashed line (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>;</samp>&rsquo; -- dashed line (&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>=</samp>&rsquo; -- small dashed line (&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;), &lsquo;<samp>:</samp>&rsquo; -- dotted line (&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;), &lsquo;<samp>j</samp>&rsquo; -- dash-dotted line (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>i</samp>&rsquo; -- small dash-dotted line (&#9632;&#9632;&#9632;&#9633;&#9633;&#9632;&#9633;&#9633;&#9632;&#9632;&#9632;&#9633;&#9633;&#9632;&#9633;&#9633;).</p>
+<p>Marker types are: &lsquo;<samp>o</samp>&rsquo; &ndash; circle, &lsquo;<samp>+</samp>&rsquo; &ndash; cross, &lsquo;<samp>x</samp>&rsquo; &ndash; skew cross, &lsquo;<samp>s</samp>&rsquo; - square, &lsquo;<samp>d</samp>&rsquo; - rhomb (or diamond), &lsquo;<samp>.</samp>&rsquo; &ndash; dot (point), &lsquo;<samp>^</samp>&rsquo; &ndash; triangle up, &lsquo;<samp>v</samp>&rsquo; &ndash; triangle down, &lsquo;<samp>&lt;</samp>&rsquo; &ndash; triangle left, &lsquo;<samp>&gt;</samp>&rsquo; &ndash; triangle right, &lsquo;<samp>#*</samp>&rsquo; &ndash; Y sign, &lsquo;<samp>#+</samp>&rsquo; &ndash; squared cross, &lsquo;<samp>#x</samp>&rsquo; &ndash; squared skew cross, &lsquo;<samp>#.</samp>&rsquo; &ndash; circled dot. If string contain symbol &lsquo;<samp>#</samp>&rsquo; then the solid versions of markers are used.
+</p>
+<div class="float">
+<img src="../png/sample5.png" alt="../png/sample5">
+
+</div><p><strong>Styles of lines and marks.
+</strong>
+</p>
+<p>One may specify to draw a special symbol (an arrow) at the beginning and at the end of line. This is done if the specification string contains one of the following symbols: &lsquo;<samp>A</samp>&rsquo; &ndash; outer arrow, &lsquo;<samp>V</samp>&rsquo; &ndash; inner arrow, &lsquo;<samp>I</samp>&rsquo; &ndash; transverse hatches, &lsquo;<samp>K</samp>&rsquo; &ndash; arrow with hatches, &lsquo;<samp>T</samp>&rsquo; &ndash; triangle, &lsquo;<samp>S</samp>&rsquo; &ndash; square, &lsquo;<samp>D</samp>&rsquo; &ndash; rhombus, &lsquo;<samp>O</samp>&rsquo; &ndash; circle, &lsquo;<samp>_</samp>&rsquo; &ndash; nothing (the default). The following rule applies: the first symbol specifies the arrow at the end of line, the second specifies the arrow at the beginning of the line. For example, &lsquo;<samp>r-A</samp>&rsquo; defines a red solid line with usual arrow at the end, &lsquo;<samp>b|AI</samp>&rsquo; defines a blue dash line with an arrow at the end and with hatches at the beginning, &lsquo;<samp>_O</samp>&rsquo; defines a line with the current style and with a circle at the beginning. These styles are applicable during the graphics plotting as well (for example, <a href="mathgl_en_3.html#g_t1D-plotting">1D plotting</a>).
+</p>
+<div class="float">
+<img src="../png/sampled.png" alt="../png/sampled">
+
+</div><p><strong>Arrow styles.
+</strong>
+</p>
+<hr size="6">
+<a name="Color-scheme"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Line-styles" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-styles" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Color-scheme-1"></a>
+<h3 class="subsection">1.4.3 Color scheme</h3>
+
+<a name="index-Color-scheme"></a>
+
+<p>The color scheme is used for determining the color of surfaces, isolines, isosurfaces and so on. The color scheme is defined by the string, which may contain several characters that are color id (see section <a href="#Line-styles">Line styles</a>) or characters &lsquo;<samp>d#:|</samp>&rsquo;. Symbol &lsquo;<samp>d</samp>&rsquo; denotes the interpolation by 3d position instead of the coloring by amplitude. Symbol &lsquo;<samp>#</samp>&rsquo; switches to mesh drawing or to a wire plot. Symbol &lsquo;<samp>|</samp>&rsquo; disables color interpolation in color scheme, which can be useful, for example, for sharp colors during matrix plotting. Symbol &lsquo;<samp>:</samp>&rsquo; finishes the color scheme parsing. Following it, the user may put styles for the text, rotation axis for curves/isocontours, and so on. Color scheme may contain up to 32 color values.
+</p>
+<p>You may also use &ldquo;lighted&rdquo; colors in the color scheme specification (<em>not in line style!</em>). The &ldquo;lighted&rdquo; color contain 2 symbols: first one is the usual symbol for color specification, the second one is a digit for its brightness. The digit can be in range &lsquo;<samp>1</samp>&rsquo;...&lsquo;<samp>9</samp>&rsquo;. 
+Number &lsquo;<samp>5</samp>&rsquo; corresponds to a normal color, &lsquo;<samp>1</samp>&rsquo; is a very dark version of the color (practically black), and &lsquo;<samp>9</samp>&rsquo; is a very bright version of the color (practically white). For example, the color scheme can be &lsquo;<samp>b2b7wr7r2</samp>&rsquo;.
+</p>
+<div class="float">
+<img src="../png/colors.png" alt="../png/colors">
+
+</div><p><strong>Colors and its ids.
+</strong>
+</p>
+<p>For coloring by <em>amplitude</em> (most common) the final color is a linear interpolation of color array. The color array is constructed from the string ids. The argument is the amplitude normalized between <var>Cmin</var> &ndash; <var>Cmax</var> (see section <a href="mathgl_en_3.html#Axis-settings">Axis settings</a>). For example, string containing 4 characters &lsquo;<samp>bcyr</samp>&rsquo; corresponds to a colorbar from blue (lowest value) through cyan (next value) through yellow (next value) to the red (highest value). String &lsquo;<samp>kw</samp>&rsquo; corresponds to a colorbar from black (lowest value) to white (highest value). String &lsquo;<samp>m</samp>&rsquo; corresponds to a simple magenta color.
+</p>
+<p>There are several useful combinations. String &lsquo;<samp>kw</samp>&rsquo; corresponds to the simplest gray color scheme where higher values are brighter. String &lsquo;<samp>wk</samp>&rsquo; presents the inverse gray color scheme where higher value is darker. Strings &lsquo;<samp>kRryw</samp>&rsquo;, &lsquo;<samp>kGgw</samp>&rsquo;, &lsquo;<samp>kBbcw</samp>&rsquo; present the well-known <em>hot</em>, <em>summer</em> and <em>winter</em> color schemes. Strings &lsquo;<samp>BbwrR</samp>&rsquo; and &lsquo;<samp>bBkRr</samp>&rsquo; allow to view bi-color figure on white or black background, where negative values are blue and positive values are red. String &lsquo;<samp>BbcyrR</samp>&rsquo; gives a color scheme similar to the well-known <em>jet</em> color scheme.
+</p>
+<div class="float">
+<img src="../png/color_schemes.png" alt="../png/color_schemes">
+
+</div><p><strong>Most popular color schemes.
+</strong>
+</p>
+<p>When coloring by <em>coordinate</em>, the final color is determined by the position of the point in 3d space and is calculated from formula c=x*c[1] + y*c[2] + z*c[3]. Here, c[1], c[2], c[3] are the first three elements of color array; x, y, z are normalized to <var>Min</var> &ndash; <var>Max</var> coordinates of the point. This type of coloring is useful for isosurface plot where color may show the exact position of a piece of surface.
+</p>
+<hr size="6">
+<a name="Font-styles"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Color-scheme" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Textual-formulas" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Font-styles-1"></a>
+<h3 class="subsection">1.4.4 Font styles</h3>
+
+<a name="index-Font-styles"></a>
+
+<p>Text style is specified by the string which may contain several characters of font (&lsquo;<samp>ribwou</samp>&rsquo;) and/or alignment (&lsquo;<samp>LRC</samp>&rsquo;) specifications. The string also may contain the color id characters &lsquo;<samp>wkrgbcymhRGBCYMHW</samp>&rsquo; (see section <a href="#Line-styles">Line styles</a>) after the symbol &lsquo;<samp>:</samp>&rsquo;. For example, &lsquo;<samp>biC:b</samp>&rsquo; sets the bold italic font text aligned at the center and with blue color.
+</p>
+<p>The font types are: &lsquo;<samp>r</samp>&rsquo; &ndash; roman font, &lsquo;<samp>i</samp>&rsquo; &ndash; italic style, &lsquo;<samp>b</samp>&rsquo; &ndash; bold style. By default roman roman font is used. The align types are: &lsquo;<samp>L</samp>&rsquo; &ndash; align left (default), &lsquo;<samp>C</samp>&rsquo; &ndash; align center, &lsquo;<samp>R</samp>&rsquo; &ndash; align right. Additional font effects are: &lsquo;<samp>w</samp>&rsquo; &ndash; wired, &lsquo;<samp>o</samp>&rsquo; &ndash; over-lined, &lsquo;<samp>u</samp>&rsquo; &ndash; underlined. 
+</p>
+<p>Also a parsing of the LaTeX-like syntax is provided. There are commands for the font style changing inside the string (for example, use \b for bold font): \a or \overline &ndash; over-lined, \b or \textbf &ndash; bold, \i or \textit &ndash; italic, \r or \textrm &ndash; roman (disable bold and italic attributes), \u or \underline &ndash; underlined, \w or \wire &ndash; wired, \big &ndash; bigger size, @ &ndash; smaller size. The lower and upper indexes are specified by &lsquo;<samp>_</samp>&rsquo; and &lsquo;<samp>^</samp>&rsquo; symbols. At this the changed font style is applied only on next symbol or symbols in braces {}. The text in braces {} are treated as single symbol that allow one to print the index of index. For example, compare the strings &lsquo;<samp>sin (x^{2^3})</samp>&rsquo; and &lsquo;<samp>sin (x^2^3)</samp>&rsquo;. You may also change text color inside string by command #? or by \color? where &lsquo;<samp>?</samp>&rsquo; is symbolic id of the color (see section <a href="#Line-styles">Line styles</a>). For example, words &lsquo;<samp>Blue</samp>&rsquo; and &lsquo;<samp>red</samp>&rsquo; will be colored in the string &lsquo;<samp>#b{Blue} and \colorr{red} text</samp>&rsquo;. The most of functions understand the newline symbol &lsquo;<samp>\n</samp>&rsquo; and allows to print multi-line text. Finally, you can use arbitrary UTF codes by command <code>\utf0x????</code>. For example, <code>\utf0x3b1</code> will produce
+ &alpha; symbol.</p>
+<p>The most of commands for special TeX or AMSTeX symbols, the commands for font style changing (\textrm, \textbf, \textit, \textsc, \overline, \underline), accents (\hat, \tilde, \dot, \ddot, \acute, \check, \grave, \bar, \breve) and roots (\sqrt, \sqrt3, \sqrt4) are recognized. The full list contain approximately 2000 commands. Note that first space symbol after the command is ignored, but second one is printed as normal symbol (space). For example, the following strings produce the same result <em>\tilde a</em>: &lsquo;<samp>\tilde{a}</samp>&rsquo;; &lsquo;<samp>\tilde a</samp>&rsquo;; &lsquo;<samp>\tilde{}a</samp>&rsquo;.
+</p>
+In particular, the Greek letters are recognizable special symbols: &alpha; &ndash; \alpha, &beta; &ndash; \beta, &gamma; &ndash; \gamma, &delta; &ndash; \delta, &epsilon; &ndash; \epsilon, &eta; &ndash; \eta, &iota; &ndash; \iota, &chi; &ndash; \chi, &kappa; &ndash; \kappa, &lambda; &ndash; \lambda, &mu; &ndash; \mu, &nu; &ndash; \nu, o &ndash; \o, &omega; &ndash; \omega, &#981; &ndash; \phi, &pi; &ndash; \pi, &psi; &ndash; \psi, &rho; &ndash; \rho, &sigma; &ndash; \sigma, &theta; &ndash; \theta, &tau; &ndash; \tau, &upsilon; &ndash; \upsilon, &xi; &ndash; \xi, &zeta; &ndash; \zeta, &sigmaf; &ndash; \varsigma, &#603; &ndash; \varepsilon, &thetasym; &ndash; \vartheta, &phi; &ndash; \varphi, &#1008; &ndash; \varkappa; A &ndash; \Alpha, B &ndash; \Beta, &Gamma; &ndash; \Gamma, &Delta; &ndash; \Delta, E &ndash; \Epsilon, H &ndash; \Eta, I &ndash; \Iota, C &ndash; \Chi, K &ndash; \Kappa, &Lambda; &ndash; \Lambda, M &ndash; \Mu, N &ndash; \Nu, O &ndash; \O, &Omega; &ndash; \Omega, &Phi; &ndash; \Phi, &Pi; &ndash; \Pi, &Psi; &ndash; \Psi, R &ndash; \Rho, &Sigma; &ndash; \Sigma, &Theta; &ndash; \Theta, T &ndash; \Tau, &Upsilon; &ndash; \Upsilon, &Xi; &ndash; \Xi, Z &ndash; \Zeta.
+
+<p>The small part of most common special TeX symbols are: &ang; &ndash; \angle, &sdot; &ndash; \cdot, &clubs; &ndash; \clubsuit, &#10003; &ndash; \checkmark, &cup; &ndash; \cup, &cap; &ndash; \cap, &#9826; &ndash; \diamondsuit, &#9671; &ndash; \diamond, &divide;
+ &ndash; \div, 
+&darr; &ndash; \downarrow, &dagger; &ndash; \dag, &Dagger; &ndash; \ddag, &equiv; &ndash; \equiv, &exist; &ndash; \exists, &#8994; &ndash; \frown, &#9837; &ndash; \flat, &ge; &ndash; \ge, &ge; &ndash; \geq, &#8807; &ndash; \geqq, &larr; &ndash; \gets, &#9825; &ndash; \heartsuit, &infin; &ndash; \infty, &int; &ndash; \int, \Int, &image;  &ndash; \Im, &#9826; &ndash; \lozenge, &#10216; &ndash; \langle, &le; &ndash; \le, &le; &ndash; \leq, &#8806; &ndash; \leqq, &larr; &ndash; \leftarrow, &#8723; &ndash; \mp, &nabla; &ndash; \nabla, &ne; &ndash; \ne, &ne; &ndash; \neq, &#9838; &ndash; \natural, &#8750; &ndash; \oint, &#8857; &ndash; \odot, &oplus; &ndash; \oplus, &part; &ndash; \partial, &#8741; &ndash; \parallel, &perp; &ndash;\perp, &plusmn; &ndash; \pm, &prop; &ndash; \propto, &prod; &ndash; \prod, &real; &ndash; \Re, &rarr; &ndash; \rightarrow, &#10217; &ndash; \rangle, &spades; &ndash; \spadesuit, ~ &ndash; \sim, &#8995; &ndash; \smile, &sub;  &ndash; \subset, &sup; &ndash; \supset, &radic; &ndash; \sqrt or \surd, &sect; &ndash; \S, &#9839; &ndash; \sharp, &sum; &ndash; \sum, &times; &ndash; \times, &rarr; &ndash; \to, &there4; &ndash; \therefore, &uarr; &ndash; \uparrow, &weierp; &ndash; \wp. </p>
+<p>The font size can be defined explicitly (if <var>size</var>&gt;0) or relative to a base font size as |<var>size</var>|*<var>FontSize</var> (if <var>size</var>&lt;0). The value <var>size</var>=0 specifies that the string will not be printed. The base font size is measured in internal &ldquo;MathGL&rdquo; units. Special functions <code>SetFontSizePT(), SetFontSizeCM(), SetFontSizeIN()</code> allow one to set it in more &ldquo;common&rdquo; variables for a given dpi value of the picture.
+</p>
+
+<hr size="6">
+<a name="Textual-formulas"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-styles" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#FAQ" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Textual-formulas-1"></a>
+<h3 class="subsection">1.4.5 Textual formulas</h3>
+
+<a name="index-Textual-formulas"></a>
+
+<p>MathGL have the fast variant of textual formula evaluation 
+ (see section <a href="mathgl_en_7.html#mglFormula-class">mglFormula class</a>)
+. There are a lot of functions and operators available. The operators are: &lsquo;<samp>+</samp>&rsquo; &ndash; addition, &lsquo;<samp>-</samp>&rsquo; &ndash; subtraction, &lsquo;<samp>*</samp>&rsquo; &ndash; multiplication, &lsquo;<samp>/</samp>&rsquo; &ndash; division, &lsquo;<samp>^</samp>&rsquo; &ndash; integer power. Also there are logical &ldquo;operators&rdquo;: &lsquo;<samp>&lt;</samp>&rsquo; &ndash; true if x&lt;y, &lsquo;<samp>&gt;</samp>&rsquo; &ndash; true if x&gt;y, &lsquo;<samp>=</samp>&rsquo; &ndash; true if x=y, &lsquo;<samp>&amp;</samp>&rsquo; &ndash; true if x and y both nonzero, &lsquo;<samp>|</samp>&rsquo; &ndash; true if x or y nonzero. These logical operators have lowest priority and return 1 if true or 0 if false.
+</p>
+<p>The basic functions are: &lsquo;<samp>sqrt(x)</samp>&rsquo; &ndash; square root of <var>x</var>, &lsquo;<samp>pow(x,y)</samp>&rsquo; &ndash; power <var>x</var> in <var>y</var>, &lsquo;<samp>ln(x)</samp>&rsquo; &ndash; natural logarithm of <var>x</var>, &lsquo;<samp>lg(x)</samp>&rsquo; &ndash; decimal logarithm of <var>x</var>, &lsquo;<samp>log(a,x)</samp>&rsquo; &ndash; logarithm base <var>a</var> of <var>x</var>, &lsquo;<samp>abs(x)</samp>&rsquo; &ndash; absolute value of <var>x</var>, &lsquo;<samp>sign(x)</samp>&rsquo; &ndash; sign of <var>x</var>, &lsquo;<samp>mod(x,y)</samp>&rsquo; &ndash; x modulo y, &lsquo;<samp>step(x)</samp>&rsquo; &ndash; step function, &lsquo;<samp>int(x)</samp>&rsquo; &ndash; integer part of <var>x</var>, &lsquo;<samp>rnd</samp>&rsquo; &ndash; random number, &lsquo;<samp>pi</samp>&rsquo; &ndash; number
+&pi; = 3.1415926&hellip;</p>
+
+<p>Trigonometric functions are: &lsquo;<samp>sin(x)</samp>&rsquo;, &lsquo;<samp>cos(x)</samp>&rsquo;, &lsquo;<samp>tan(x)</samp>&rsquo; (or &lsquo;<samp>tg(x)</samp>&rsquo;). Inverse trigonometric functions are: &lsquo;<samp>asin(x)</samp>&rsquo;, &lsquo;<samp>acos(x)</samp>&rsquo;, &lsquo;<samp>atan(x)</samp>&rsquo;. Hyperbolic functions are: &lsquo;<samp>sinh(x)</samp>&rsquo; (or &lsquo;<samp>sh(x)</samp>&rsquo;), &lsquo;<samp>cosh(x)</samp>&rsquo; (or &lsquo;<samp>ch(x)</samp>&rsquo;), &lsquo;<samp>tanh(x)</samp>&rsquo; (or &lsquo;<samp>th(x)</samp>&rsquo;). Inverse hyperbolic functions are: &lsquo;<samp>asinh(x)</samp>&rsquo;, &lsquo;<samp>acosh(x)</samp>&rsquo;, &lsquo;<samp>atanh(x)</samp>&rsquo;.
+</p>
+<p>There are a set of special functions: &lsquo;<samp>gamma(x)</samp>&rsquo; &ndash; Gamma function &Gamma;(x) = &int;<sub>0</sub><sup>&infin;</sup> t<sup>x-1</sup> exp(-t) dt, &lsquo;<samp>psi(x)</samp>&rsquo; &ndash; digamma function &psi;(x) = &Gamma;&prime;(x)/&Gamma;(x) for x&ne;0, &lsquo;<samp>ai(x)</samp>&rsquo; &ndash; Airy function Ai(x), &lsquo;<samp>bi(x)</samp>&rsquo; &ndash; Airy function Bi(x), &lsquo;<samp>cl(x)</samp>&rsquo; &ndash; Clausen function, &lsquo;<samp>li2(x)</samp>&rsquo; (or &lsquo;<samp>dilog(x)</samp>&rsquo;) &ndash; dilogarithm Li<sub>2</sub>(x) = -&real;&int;<sub>0</sub><sup>x</sup>ds log(1-s)/s, &lsquo;<samp>sinc(x)</samp>&rsquo; &ndash; compute sinc(x) = sin(&pi;x)/(&pi;x) for any value of x, &lsquo;<samp>zeta(x)</samp>&rsquo; &ndash; Riemann zeta function &zeta;(s) = &sum;<sub>k=1</sub><sup>&infin;</sup>k<sup>-s</sup> for arbitrary s&ne;1, &lsquo;<samp>eta(x)</samp>&rsquo; &ndash; eta function &eta;(s) = (1 - 2<sup>1-s</sup>)&zeta;(s) for arbitrary s, &lsquo;<samp>lp(l,x)</samp>&rsquo; &ndash; Legendre polynomial P<sub>l</sub>(x), (|x|&le;1, l&ge;0), &lsquo;<samp>w0(x)</samp>&rsquo; &ndash; principal branch of the Lambert W function, &lsquo;<samp>w1(x)</samp>&rsquo; &ndash; principal branch of the Lambert W function. Function W(x) is defined to be solution of the equation: W exp(W) = x. </p>
+
+<p>The exponent integrals are: &lsquo;<samp>ci(x)</samp>&rsquo; &ndash; Cosine integral Ci(x) = &int;<sub>0</sub><sup>x</sup>dt cos(t)/t, &lsquo;<samp>si(x)</samp>&rsquo; &ndash; Sine integral Si(x) = &int;<sub>0</sub><sup>x</sup>dt sin(t)/t, &lsquo;<samp>erf(x)</samp>&rsquo; &ndash; error function erf(x) = (2/&radic;&pi;) &int;<sub>0</sub><sup>x</sup>dt exp(-t<sup>2</sup>) , &lsquo;<samp>ei(x)</samp>&rsquo; &ndash; exponential integral Ei(x) = -PV(&int;<sub>-x</sub><sup>&infin;</sup>dt exp(-t)/t) (where PV denotes the principal value of the integral), &lsquo;<samp>e1(x)</samp>&rsquo; &ndash; exponential integral E<sub>1</sub>(x) = &real;&int;<sub>1</sub><sup>&infin;</sup>dt exp(-xt)/t, &lsquo;<samp>e2(x)</samp>&rsquo; &ndash; exponential integral E<sub>2</sub>(x) = &real;&int;<sub>1</sub>&infin;</sup>dt exp(-xt)/t<sup>2</sup>, &lsquo;<samp>ei3(x)</samp>&rsquo; &ndash; exponential integral Ei<sub>3</sub>(x) = &int;<sub>0</sub><sup>x</sup>dt exp(-t<sup>3</sup>) for x&ge;0. </p>
+
+<p>Bessel functions are: &lsquo;<samp>j(nu,x)</samp>&rsquo; &ndash; regular cylindrical Bessel function of fractional order <em>nu</em>, &lsquo;<samp>y(nu,x)</samp>&rsquo; &ndash; irregular cylindrical Bessel function of fractional order <em>nu</em>, &lsquo;<samp>i(nu,x)</samp>&rsquo; &ndash; regular modified Bessel function of fractional order <em>nu</em>, &lsquo;<samp>k(nu,x)</samp>&rsquo; &ndash; irregular modified Bessel function of fractional order <em>nu</em>. </p>
+
+<p>Elliptic integrals are: &lsquo;<samp>ee(k)</samp>&rsquo; &ndash; complete elliptic integral is denoted by E(k) = E(&pi;/2,k), &lsquo;<samp>ek(k)</samp>&rsquo; &ndash; complete elliptic integral is denoted by K(k) = F(&pi;/2,k), &lsquo;<samp>e(phi,k)</samp>&rsquo; &ndash; elliptic integral E(&phi;,k) = &int;<sub>0</sub><sup>&phi;</sup>dt &radic;(1 - k<sup>2</sup>sin<sup>2</sup>(t)), &lsquo;<samp>f(phi,k)</samp>&rsquo; &ndash; elliptic integral F(&phi;,k) = &int;<sub>0</sub><sup>&phi;</sup>dt 1/&radic;(1 - k<sup>2</sup>sin<sup>2</sup>(t))</p>
+<p>Jacobi elliptic functions are: &lsquo;<samp>sn(u,m)</samp>&rsquo;, &lsquo;<samp>cn(u,m)</samp>&rsquo;, &lsquo;<samp>dn(u,m)</samp>&rsquo;, &lsquo;<samp>sc(u,m)</samp>&rsquo;, &lsquo;<samp>sd(u,m)</samp>&rsquo;, &lsquo;<samp>ns(u,m)</samp>&rsquo;, &lsquo;<samp>cs(u,m)</samp>&rsquo;, &lsquo;<samp>cd(u,m)</samp>&rsquo;, &lsquo;<samp>nc(u,m)</samp>&rsquo;, &lsquo;<samp>ds(u,m)</samp>&rsquo;, &lsquo;<samp>dc(u,m)</samp>&rsquo;, &lsquo;<samp>nd(u,m)</samp>&rsquo;.
+</p>
+<p>Note, some of these functions are unavailable if NO_GSL is defined during compilation of MathGL library. 
+</p>
+<p>There is no difference between lower or upper case in formulas. If argument value lie outside the range of function definition then function returns NaN.
+</p>
+
+
+<hr size="6">
+<a name="FAQ"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Textual-formulas" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Interfaces" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="FAQ-1"></a>
+<h2 class="section">1.5 FAQ</h2>
+
+<dl compact="compact">
+<dt> <strong>The plot does not appear</strong></dt>
+<dd><p>Check that points of the plot lie  inside the bounding box and resize the bounding box using <code>Axis()</code> function. Check that the data have correct dimensions for selected type of plot. Be sure that  <code>Finish()</code> is called after the plotting functions (or be sure that the plot is saved to a file). Sometimes the light reflection from flat surfaces (like, <code>Dens()</code>) can look as if the plot were absent.
+</p>
+</dd>
+<dt> <strong>I can not find some special kind of plot.</strong></dt>
+<dd><p>Most &ldquo;new&rdquo; types of plots can be created by using the existing drawing functions. For example, the surface of curve rotation can be created by a special function <code>Torus()</code>, or as a parametrically specified surface by <code>Surf()</code>. See also, <a href="mathgl_en_2.html#Hints">Hints</a> and <a href="mathgl_en_2.html#Examples">MathGL examples</a> of MathGL. If you can not find a specific type of plot, please e-mail me and this plot will appear in the next version of MathGL library.
+</p>
+</dd>
+<dt> <strong>Should I know some graphical libraries (like OpenGL) before using the MathGL library?</strong></dt>
+<dd><p>No. The MathGL library is self-contained and does not require the knowledge of external libraries.
+</p>
+</dd>
+<dt> <strong>In which language is the library written? For which languages does it have an interface?</strong></dt>
+<dd><p>The core of the MathGL library is written in C++. But there are interfaces for: pure C, Fortran, Pascal, Forth, and its own command language MGL. Also there is a large set of interpreted languages, which are supported (Python, Java,  ALLEGROCL, CHICKEN, Lisp, CFFI, C#, Guile, Lua, Modula 3, Mzscheme, Ocaml, Octave, Perl, PHP, Pike, R, Ruby, Tcl). These interfaces are written using SWIG (both pure C functions and classes) but only the interface for Python and Octave is included in the autoconf/automake script. The reason is that I don&lt;/samp&gt;&amp;rsquo;t know any other interpreted languages :(. Note that most other languages can use (link to) the pure C functions.
+</p>
+</dd>
+<dt> <strong>How can I use MathGL with Fortran?</strong></dt>
+<dd><p>You can use MathGL as is with <code>gfortran</code> because it uses by default the AT&amp;T notation for external functions. For other compilers (like Visual Fortran) you have to switch on the AT&amp;T notation manually. The AT&amp;T notation requires that the symbol &lsquo;<samp>_</samp>&rsquo; is added at the end of each function name, function argument(s) is passed by pointers and the string length(s) is passed at the end of the argument list. For example:
+</p>
+<p><em>C function</em> &ndash; <code>void mgl_fplot(HMGL graph, const char *fy, const char *stl, int n);</code>
+</p>
+<p><em>AT&amp;T function</em> &ndash; <code>void mgl_fplot_(uintptr_t *graph, const char *fy, const char *stl, int *n, int ly, int ls);</code>
+</p>
+</dd>
+<dt> <strong>I have a class Foo and a drawing method Foo::draw(mglGraph *gr). How I can use it in FLTK or GLUT window?</strong></dt>
+<dd><p>The member-functions of classes have a hidden parameter (the pointer to a class instance) in C++. So, their direct usage is impossible. The solution is to write an interface function:
+</p><table><tr><td>&nbsp;</td><td><pre class="example">int foo_draw(mglGraph *gr, void *par)
+{   ((Foo *)foo)-&gt;draw(gr);    }
+</pre></td></tr></table>
+<p>and to use it in the call of <code>Window()</code> function:
+</p><table><tr><td>&nbsp;</td><td><pre class="example">gr-&gt;Window(argc,argv,foo_draw,&quot;Title&quot;,this);
+</pre></td></tr></table>
+
+<p>Alternatively you can inherit your class from <code>mglDraw</code> class and use the functions like <code>gr-&gt;Window(argc, argv, foo, &quot;Title&quot;);</code>.
+</p>
+</dd>
+<dt> <strong>How can I print in Russian/Spanish/Arabic/Japanese, and so on?</strong></dt>
+<dd><p>The standard way is to use Unicode encoding for the text output. But the MathGL library also has interface for 8-bit (char *) strings with internal conversion to Unicode. This conversion depends on the current locale OS. You may change it by <code>setlocale()</code> function. For example, for Russian text in CP1251 encoding you may use <code>setlocale(LC_CTYPE, &quot;ru_RU.cp1251&quot;);</code> (under MS Windows the name of locale may differ &ndash; <code>setlocale(LC_CTYPE, &quot;russian_russia.1251&quot;)</code>). I strongly recommend not to use the constant <code>LC_ALL</code> in the conversion. Since it also changes the number format, it may lead to mistakes in formula writing and reading of the text in data files. For example, the program will await a &lsquo;<samp>,</samp>&rsquo; as a decimal point but the user will enter &lsquo;<samp>.</samp>&rsquo;.
+</p>
+</dd>
+<dt> <strong>How can I exclude a point or a region of plot from the drawing?</strong></dt>
+<dd><p>There are 3 general ways. First, the point with <code>NAN</code> value as one of the coordinates will never be plotted. Second, special variables <var>CutMin</var>, <var>CutMax</var> or function <code>CutOff</code>() define the condition when the points should be omitted (see section <a href="mathgl_en_3.html#Cutting">Cutting</a>). Last, you may change the transparency of a part of the plot by the help of functions <code>SurfA()</code>, <code>Surf3A()</code> (see section <a href="mathgl_en_3.html#Dual-plotting">Dual plotting</a>). In this last case the transparency is switched on smoothly.
+</p>
+</dd>
+<dt> <strong>I use VisualStudio, CBuilder or some other compiler (not MinGW/gcc). How can I link the MathGL library?</strong></dt>
+<dd><p>In version 1.10, you can use the header file <code>#include &lt;mgl/mgl_w.h&gt;</code> which contains wrapper C++ classes, which should be acceptable for any compiler. Note, that wrapper classes are <strong>incompatible</strong> with classes in usual headers and you should use only one of them (wrapper or usual)! However, I recommend to use the usual headers if you use GNU compilers (like MinGW).
+</p>
+
+</dd>
+<dt> <strong>How I can build MathGL under Windows?</strong></dt>
+<dd><p>The simplest way is using the combination CMake+MinGW. Also you need some extra libraries like GSL, PNG, JPEG and so on. All of them can be found at <a href="http://gnuwin32.sourceforge.net/packages.html">http://gnuwin32.sourceforge.net/packages.html</a>. After installing all components, just run CMake configurator and make the MathGL itself.
+</p>
+</dd>
+<dt> <strong>How I can create FLTK/GLUT/Qt window in parallel with calculation?</strong></dt>
+<dd><p>You should create a separate thread for processing window messages. The cross-platform way is using the <code>pthread</code> library. You can update the data by calling <code>mglGraphFLTK::Update()</code> function. The code can look like this:
+</p><pre class="verbatim">//-----------------------------------------------------------------------------
+#include &lt;mgl/mgl_fltk.h&gt;
+#include &lt;pthread.h&gt;
+#include &lt;unistd.h&gt;
+
+mglPoint pnt;  // some global variable for changable data
+//-----------------------------------------------------------------------------
+int sample(mglGraph *gr, void *)
+{
+  gr-&gt;Box();  gr-&gt;Line(mglPoint(),pnt,&quot;Ar2&quot;); // just draw a vector
+  return 0;
+}
+//-----------------------------------------------------------------------------
+void *mgl_fltk_tmp(void *)      {       mglFlRun();     return 0;       }
+int main (int argc, char ** argv)
+{
+  mglGraphFLTK gr;
+  gr.Window(argc,argv,sample,&quot;test&quot;);  // create window
+  static pthread_t tmp;
+  pthread_create(&amp;tmp, 0, mgl_fltk_tmp, 0);
+  pthread_detach(tmp);    // run window handling in the separate thread
+  for(int i=0;i&lt;10;i++)   // do calculation
+  {
+    sleep(1);             // which can be very long
+    pnt = mglPoint(2*mgl_rnd()-1,2*mgl_rnd()-1);
+    gr.Update();          // update window
+  }
+  return 0;   // finish calculations and close the window
+}
+//-----------------------------------------------------------------------------
+</pre>
+
+</dd>
+<dt> <strong>How many people write this library?</strong></dt>
+<dd><p>Most of the library was written by one person. This is a result of nearly a year of work (mostly in the evening and on holidays): I spent half a year to write the kernel and half a year to a year on extending, improving the library and writing documentation. This process continues now :). The autoconf/automake script was written mostly by D.Kulagin, and the export to IDTF was written mostly by M.Vidassov.
+</p>
+</dd>
+<dt> <strong>How can I display a bitmap on the figure?</strong></dt>
+<dd><p>You can import data into a <code>mglData</code> instance and display it by <code>Dens()</code> function. For example, for black-and-white bitmap you can use the code: <code>mglData bmp; bmp.Import(&quot;fname.png&quot;,&quot;wk&quot;); gr-&gt;Dens(bmp,&quot;wk&quot;);</code>.
+</p>
+</dd>
+<dt> <strong>How can I use MathGL in Qt, FLTK, wxWidgets etc.?</strong></dt>
+<dd><p>There are special classes (widgets) for these libraries: QMathGL for Qt, Fl_MathGL for FLTK and so on. If you don&lt;/samp&gt;&amp;rsquo;t find the appropriate class then you can create your own widget that displays a bitmap using mglGraphAB::GetBits().
+</p>
+</dd>
+<dt> <strong>How can I create U3D file (make 3D in PDF)?</strong></dt>
+<dd><p>There are 2 steps: first you should create IDTF file, and later convert it to U3D. You can use <a href="http://sourceforge.net/project/showfiles.php?group_id=152187&amp;package_id=300628">U3D tools</a> for converting IDTF file to U3D. It needs <a href="http://libharu.org">libharu</a> 2.1.0 or later. For installation use <code>./bootstrap, ./configure, make, sudo make install</code>. It provides  IDTFConverter program for converting text files *.idtf to binary files *.u3d. The latter can be included into PDF.
+</p>
+</dd>
+<dt> <strong>How I can change the font family?</strong></dt>
+<dd><p>First, you should download new font files from <a href="http://mathgl.sourceforge.net/download.html">here</a> or from <a href="http://sourceforge.net/project/showfiles.php?group_id=152187&amp;package_id=267177">here</a>. Next, you should load the font files into mglGraph class instance <var>gr</var> by the following command: <code>gr-&gt;SetFont(new mglFont(fontname,path));</code>. Here <var>fontname</var> is the base font name like &lsquo;<samp>STIX</samp>&rsquo; and <var>path</var> sets the location of font files. Use <code>gr-&gt;SetFont(NULL);</code> to start using the default font.
+</p>
+</dd>
+<dt> <strong>How can I draw tick out of a bounding box?</strong></dt>
+<dd><p>Just set a negative value for <var>TickLen</var>. For example, use <code>gr-&gt;SetTickLen(-0.1);</code>.
+</p>
+</dd>
+</dl>
+
+<hr size="6">
+<a name="Interfaces"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#FAQ" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#C-interface" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Interfaces-1"></a>
+<h2 class="section">1.6 Interfaces</h2>
+
+<p>The MathGL library has interfaces for a set of languages. Most of them are based on the C interface via SWIG tool. There are Python, Java, Octave, Lisp, C#, Guile, Lua, Modula 3, Ocaml, Perl, PHP, Pike, R, Ruby, and Tcl interfaces. Also there is a Fortran interface which has a similar set of functions, but slightly different types of arguments (integers instead of pointers). These functions are marked as [C function].
+Some of the languages listed above support classes (like Python). For them, a special wrapper was written. These classes and functions are marked as (Python).
+Finally, a special command language MGL was written for a faster access to C++ plotting functions. Corresponding scripts can be executed separately (by UDAV, mgl2png, mgl2eps and so on) or from the C++ code (see section <a href="mathgl_en_7.html#mglParse-class">mglParse class</a>). These commands are described in <a href="mathgl_en_8.html#MGL-interface">MGL language</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#C-interface">1.6.1 C interface</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Python-interface">1.6.2 Python interface</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="C-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Interfaces" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Python-interface" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Interfaces" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="C-interface-1"></a>
+<h3 class="subsection">1.6.1 C interface</h3>
+
+<p>The C interface is a base for many other interfaces. It contains the pure C functions for most of the methods of MathGL classes. In distinction to C++ classes, C functions must have an argument HMGL (for graphics) and/or HMDT (for data arrays), which specifies the object for drawing or manipulating (changing). So, firstly, the user has to create this object by the function <code>mgl_create_*()</code> and has to delete it after the use by function <code>mgl_delete_*()</code>.
+</p>
+<p>All C functions are described in the header file <code>#include &lt;mgl/mgl_c.h&gt;</code> and use variables of the following types:
+</p><ul>
+<li> 
+<code>HMGL</code> &mdash; Pointer to class <code>mglGraph</code> (see section <a href="mathgl_en_3.html#MathGL-core">MathGL core</a>).
+</li><li> 
+<code>HMDT</code> &mdash; Pointer to class <code>mglData</code> (see section <a href="mathgl_en_6.html#mglData-class">mglData class</a>).
+</li><li> 
+<code>HMPR</code> &mdash; Pointer to class <code>mglParse</code> (see section <a href="mathgl_en_7.html#mglParse-class">mglParse class</a>)..
+</li></ul>
+<p>These variables contain identifiers for graphics drawing objects and for the data objects. 
+</p>
+<p>Fortran functions/subroutines have the same names as C functions. However, there is a difference. Variable of type <code>HMGL, HMDT</code> must be an integer with sufficient size (<code>integer*4</code> in the 32-bit operating system or <code>integer*8</code> in the 64-bit operating system). All C functions are subroutines in Fortran, which are called by operator <code>call</code>. The exceptions are functions, which return variables of types <code>HMGL</code> or <code>HMDT</code>. These functions should be declared as integer in Fortran code. Also, one should keep in mind that strings in Fortran are denoted by <code>&lt;/samp&gt;&amp;rsquo;</code> symbol, not the <code>&quot;</code> symbol.
+</p>
+<p><strong>Create and delete objects</strong>
+</p>
+<ul>
+<li> Functions for non-visual &ldquo;grapher&rdquo; creation:
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fgl"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_gl</b><i> ()</i></dt>
+<dd><p>Create the instance of class mglGraphGL.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fzb"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_zb</b><i> (<code>int</code> width, <code>int</code> height)</i></dt>
+<dd><p>Create the instance of class mglGraphZB with specified sizes.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fps"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_ps</b><i> (<code>int</code> width, <code>int</code> height)</i></dt>
+<dd><p>Create the instance of class mglGraphPS with specified sizes.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fidtf"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_idtf</b><i> ()</i></dt>
+<dd><p>Create the instance of class mglGraphIDTF.
+</p></dd></dl>
+
+</li><li> Function for windowed &ldquo;grapher&rdquo; creation:
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fglut"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_glut</b><i> (<code>int (*</code>draw<code>)(HMGL gr, void *p)</code>, <code>const char *</code>title, <code>void *</code>par)</i></dt>
+<dd><p>Create the instance of class mglGraphGLUT and the connected GLUT window. Only one GLUT window can be opened at once. Argument description can be found in <a href="mathgl_en_4.html#mglGraphAB-class">mglGraphAB class</a>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005ffltk"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_fltk</b><i> (<code>int (*</code>draw<code>)(HMGL gr, void *p)</code>, <code>const char *</code>title, <code>void *</code>par)</i></dt>
+<dd><p>Create the instance of class mglGraphFLTK and the connected FLTK window. Several windows can be opened at the same time. However user must call <code>mgl_fltk_run()</code> function to start the message handling cycle. Argument description can be found in <a href="mathgl_en_4.html#mglGraphAB-class">mglGraphAB class</a>. Note that <var>draw</var> can be <code>NULL</code> for displaying static bitmaps only (no animation or slides).
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fqt"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_qt</b><i> (<code>int (*</code>draw<code>)(HMGL gr, void *p)</code>, <code>const char *</code>title, <code>void *</code>par)</i></dt>
+<dd><p>Create the instance of class mglGraphQT and the connected Qt window. Several windows can be opened at the same time. However user must call <code>mgl_qt_run()</code> function to start the message handling cycle. Arguments description can be found in <a href="mathgl_en_4.html#mglGraphAB-class">mglGraphAB class</a>. Note, that <var>draw</var> can be <code>NULL</code> for displaying static bitmaps only (no animation or slides).
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005ffltk_005frun"></a><u>C function:</u> <code>void</code> <b>mgl_fltk_run</b><i> ()</i></dt>
+<dd><p>Start FLTK message handling cycle. A normal program will end main() function with <code>return mgl_fltk_run();</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005ffltk_005fthread"></a><u>C function:</u> <code>void</code> <b>mgl_fltk_thread</b><i> ()</i></dt>
+<dd><p>Start FLTK message handling cycle. In distinction to <code>mgl_fltk_run()</code> the loop is started in a separate thread, so that program continues immediately.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fqt_005frun"></a><u>C function:</u> <code>void</code> <b>mgl_qt_run</b><i> ()</i></dt>
+<dd><p>Start Qt message handling cycle. A normal program will end main() function with <code>return mgl_qt_run();</code>. Alternatively, the user may setup Qt application by direct Qt function calls.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fqt_005fthread"></a><u>C function:</u> <code>void</code> <b>mgl_qt_thread</b><i> ()</i></dt>
+<dd><p>Start Qt message handling cycle. In distinction to <code>mgl_qt_run()</code> the loop is started in separate thread so that the program continues immediately.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fupdate"></a><u>C function:</u> <code>void</code> <b>mgl_update</b><i> (<code>HMGL</code> graph)</i></dt>
+<dd><p>Manually update contents of the window.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fset_005fshow_005fmouse_005fpos"></a><u>C function:</u> <code>void</code> <b>mgl_set_show_mouse_pos</b><i> (<code>HMGL</code> graph, <code>int</code> enable)</i></dt>
+<dd><p>Switch to show or not in the widget the last mouse click position.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fget_005flast_005fmouse_005fpos"></a><u>C function:</u> <code>void</code> <b>mgl_get_last_mouse_pos</b><i> (<code>HMGL</code> graph, <code>float *</code>x, <code>float *</code>y, <code>float *</code>z)</i></dt>
+<dd><p>Last position of mouse click.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcalc_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_calc_xyz</b><i> (<code>HMGL</code> graph, <code>int</code> xs, <code>int</code> ys, <code>float *</code>x, <code>float *</code>y, <code>float *</code>z)</i></dt>
+<dd><p>Calculate 3D coordinate {x,y,z} for screen point {xs,ys}. At this moment, it ignores perspective and transformation formulas (curvilinear coordinates). The calculations are done for the last used InPlot (see section <a href="mathgl_en_3.html#Transformation-matrix">Transformation matrix</a>).
+</p></dd></dl>
+
+
+</li><li> Functions for data creation:
+<dl>
+<dt><a name="index-mgl_005fcreate_005fdata"></a><u>C function:</u> <code>HMDT</code> <b>mgl_create_data</b><i> ()</i></dt>
+<dd><p>Create a simple instance of class mglData.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fdata_005fsize"></a><u>C function:</u> <code>HMDT</code> <b>mgl_create_data_size</b><i> (<code>int</code> nx, <code>int</code> ny, <code>int</code> nz)</i></dt>
+<dd><p>Create an instance of class mglData with specified sizes.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fdata_005ffile"></a><u>C function:</u> <code>HMDT</code> <b>mgl_create_data_file</b><i> (<code>const char *</code>fname)</i></dt>
+<dd><p>Create an instance of class mglData and fill it by data from text file.
+</p></dd></dl>
+
+</li><li> Each created object <strong>must</strong> be deleted after usage by functions:
+<dl>
+<dt><a name="index-mgl_005fdelete_005fgraph"></a><u>C function:</u> <code>void</code> <b>mgl_delete_graph</b><i> (<code>HMGL</code> graph)</i></dt>
+<dd><p>Delete the instance of a class. Must be used after plotting for every created graphical object.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fdelete_005fdata"></a><u>C function:</u> <code>void</code> <b>mgl_delete_data</b><i> (<code>HMDT</code> dat)</i></dt>
+<dd><p>Delete the instance of a class. Must be used after the use of every created data object.
+</p></dd></dl>
+</li></ul>
+
+<hr size="6">
+<a name="Python-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#C-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Thanks" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Interfaces" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Python-interface-1"></a>
+<h3 class="subsection">1.6.2 Python interface</h3>
+
+<p>MathGL provides the interface to a set of languages via SWIG library. Some of these languages support classes. The typical example is Python &ndash; which is named in this chapter&lt;/samp&gt;&amp;rsquo;s title.
+</p>
+<p>To use Python classes just execute &lsquo;<samp>import mathgl</samp>&rsquo;. The simplest example will be:
+</p><pre class="verbatim">import mathgl
+a=mathgl.mglGraph()
+a.Box()
+a.WritePNG(&lt;/samp&gt;&amp;rsquo;test.png&lt;/samp&gt;&amp;rsquo;)
+</pre><p>Alternatively you can import all classes from <code>mathgl</code> module and easily access MathGL classes like this:
+</p><pre class="verbatim">from mathgl import *
+a=mglGraph()
+a.Box()
+a.WritePNG(&lt;/samp&gt;&amp;rsquo;test.png&lt;/samp&gt;&amp;rsquo;)
+</pre><p>This becomes useful if you create many <code>mglData</code> objects, for example.
+</p>
+<p>There are 2 classes in Python interface:
+</p><ul>
+<li> <code>mglGraph</code>
+&ndash; provide practically the same functionality as C++ class <code>mglGraph</code> (see section <a href="mathgl_en_3.html#MathGL-core">MathGL core</a>). But it is not an abstract class and it allows one to select at construction stage which plotter (ZB or PS and so on) will be used.
+</li><li> <code>mglData</code>
+&ndash; is exactly the same class as C++ <code>mglData</code> (see section <a href="mathgl_en_6.html#mglData-class">mglData class</a>), but an additional feature to access data values is added. You can use a construct like this: <code>dat[i]=sth;</code> or <code>sth=dat[i]</code> where flat representation of data is used (i.e., <var>i</var> can be in range 0...nx*nx*nz-1). You can also import NumPy arrays as input arguments: <code>mgl_dat = mglData(numpy_dat);</code>.
+
+<p>To use Python classes just execute &lsquo;<samp>import mathgl</samp>&rsquo;. The simplest example will be:
+</p><pre class="verbatim">import mathgl
+a=mathgl.mglGraph()
+a.Box()
+a.WritePNG(&lt;/samp&gt;&amp;rsquo;test.png&lt;/samp&gt;&amp;rsquo;)
+</pre><p>Alternatively, you can import all the classes from <code>mathgl</code> module and easily access MathGL classes: 
+</p><pre class="verbatim">from mathgl import *
+a=mglGraph()
+a.Box()
+a.WritePNG(&lt;/samp&gt;&amp;rsquo;test.png&lt;/samp&gt;&amp;rsquo;)
+</pre><p>This is useful if you create many <code>mglData</code> objects, for example.
+</p>
+<p>There are 2 classes in Python interface:
+</p><ul>
+<li> <code>mglGraph</code>
+&ndash; provide practically the same functionality as C++ class <code>mglGraph</code> (see section <a href="mathgl_en_3.html#MathGL-core">MathGL core</a>). But it is not an abstract class and it allows one to select at the construction stage which plotter (ZB or PS and so on) will be used.
+</li><li> <code>mglData</code>
+&ndash; is exactly the same class as C++ <code>mglData</code> (see section <a href="mathgl_en_6.html#mglData-class">mglData class</a>), but an additional feature to access data values is added. You can use a construct like this: <code>dat[i]=sth;</code> or <code>sth=dat[i]</code> where flat representation of data is used (i.e., <var>i</var> can be in range 0...nx*nx*nz-1).
+</li></ul>
+
+<p>There is one main difference from C++ classes &ndash; Python class <code>mglGraph</code> does not have variables (options). All the corresponding features are moved to methods.
+The core of MathGL Python class is the <strong>mglGraph</strong> class. It contains a lot of plotting functions for 1D, 2D and 3D plots. So most of the sections describe its methods. Its constructor has the following arguments:
+</p>
+<dl>
+<dt><a name="index--on-mglGraph-_0028Python_0029"></a><u>Constructor on mglGraph (Python):</u> <b><code></code></b><i> mglGraph (<code>int</code> kind=<code>0</code>, <code>int</code> width=<code>600</code>, <code>int</code> height=<code>400</code>)</i></dt>
+<dd><p>Create the instance of class mglGraph with specified sizes <var>width</var> and <var>height</var>. Parameter <var>type</var> may have following values: &lsquo;<samp>0</samp>&rsquo; &ndash; use <code>mglGraphZB</code> plotter (default), &lsquo;<samp>1</samp>&rsquo; &ndash; use <code>mglGraphPS</code> plotter, &lsquo;<samp>2</samp>&rsquo; &ndash; use <code>mglGraphGL</code> plotter, &lsquo;<samp>3</samp>&rsquo; &ndash; use <code>mglGraphIDTF</code> plotter.
+</p></dd></dl>
+</li></ul>
+
+<p>There is one difference from C++ classes &ndash; Python class <code>mglGraph</code> does not have variables (options). All the corresponding features are moved to methods. 
+The core of MathGL Python class is the <strong>mglGraph</strong> class. It contains a lot of plotting functions for 1D, 2D and 3D plots. So most of the sections describe its methods. Its constructor has the following arguments:
+</p>
+<dl>
+<dt><a name="index--on-mglGraph-_0028Python_0029-1"></a><u>Constructor on mglGraph (Python):</u> <b><code></code></b><i> mglGraph (<code>int</code> kind=<code>0</code>, <code>int</code> width=<code>600</code>, <code>int</code> height=<code>400</code>)</i></dt>
+<dd><p>Create the instance of class mglGraph with specified sizes <var>width</var> and <var>height</var>. Parameter <var>type</var> may have following values: &lsquo;<samp>0</samp>&rsquo; &ndash; use <code>mglGraphZB</code> plotter (default), &lsquo;<samp>1</samp>&rsquo; &ndash; use <code>mglGraphPS</code> plotter, &lsquo;<samp>2</samp>&rsquo; &ndash; use <code>mglGraphGL</code> plotter, &lsquo;<samp>3</samp>&rsquo; &ndash; use <code>mglGraphIDTF</code> plotter.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Thanks"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Python-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Thanks-1"></a>
+<h2 class="section">1.7 Thanks</h2>
+
+<ul>
+<li>
+My special thanks to Marina Balakina for the patience during the writing of this library and for the help in documentation writing and spelling.
+</li><li>
+I&lt;/samp&gt;&amp;rsquo;m thankful to D. Kulagin and S.M. Plis for making Debian packages.
+</li><li>
+I&lt;/samp&gt;&amp;rsquo;m thankful to M. Vidassov for the help in handling solid UTF-8 fonts.
+</li><li>
+I&lt;/samp&gt;&amp;rsquo;m thankful to N. Troickiy and V. Lipatov for making RPM packages.
+</li><li>
+I&lt;/samp&gt;&amp;rsquo;m thankful to S. Skobelev, A. Korotkevich, V. Onuchin, S.M. Plis, R. Kiselev, A. Ivanov, M. Vidiassov and V. Lipatov for fruitful comments.
+</li></ul>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_10.html b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_10.html
new file mode 100644
index 0000000..c673ff5
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_10.html
@@ -0,0 +1,169 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: A. TeX-like symbols</title>
+
+<meta name="description" content="MathGL 1.11: A. TeX-like symbols">
+<meta name="keywords" content="MathGL 1.11: A. TeX-like symbols">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="TeX_002dlike-symbols"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_9.html#Stereo-image-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TeX_002dlike-symbols-1"></a>
+<h1 class="appendix">A. TeX-like symbols</h1>
+<p>The full list of TeX-like commands recognizable by MathGL is shown below. If command is not recognized then it will be printed as is by ommitting &lsquo;<samp>\</samp>&rsquo; symbol. For example, &lsquo;<samp>\#</samp>&rsquo; produce &ldquo;#&rdquo;, &lsquo;<samp>\\</samp>&rsquo; produce &ldquo;\&rdquo;, &lsquo;<samp>\qq</samp>&rsquo; produce &ldquo;qq&rdquo;.
+</p>
+<p><strong>Change case</strong>: _, ^, @.
+</p>
+<p><strong>Text style</strong>: \big, \b, \textbf, \i, \textit, \bi, \r, \textrm, \a, \overline, \u, \underline, \w, \wire, #, \color[wkrgbcymhRGBCYMHWlenupqLENUPQ]
+</p>
+<p><strong>Roots</strong>: \sqrt, \sqrt3, \sqrt4
+</p>
+<p><strong>Fractions</strong>: \frac, \stack, \overset, \underset, \stackr, \stackl
+</p>
+<p><strong>Accents</strong>: \hat, \tilde, \dot, \ddot, \dddot, \ddddot, \acute, \check, \grave, \vec, \bar, \breve
+</p>
+<p><strong>Special symbols</strong>:
+</p>
+<p>\# (#), \% (%), \&amp; (&amp;), \^ (^).
+</p>
+<p>\AA (Å), \AE (Æ), \APLboxquestion (⍰), \APLboxupcaret (⍓), \APLnotbackslash (⍀), \APLnotslash (⌿), \Alpha (Α), \And (&amp;), \Angstrom (Å), \Barv (⫧), \BbbC (ℂ), \BbbGamma (ℾ), \BbbH (ℍ), \BbbN (ℕ), \BbbP (ℙ), \BbbPi (ℿ), \BbbQ (ℚ), \BbbR (ℝ), \BbbZ (ℤ), \Bbbgamma (ℽ), \Bbbpi (ℼ), \Bbbsum (⅀), \Beta (Β), \Bumpeq (≎), \Cap (⋒), \Chi (Χ), \Colon (∷), \Coloneq (⩴), \Cup (⋓), \DDownarrow (⟱), \DH (Ð), \DJ (Đ), \DashV (⫥), \DashVDash (⟚), \Dashv (⫤), \Ddownarrow (⤋), \Delta (Δ), \Digamma (Ϝ), \Doteq (≑), \Downarrow (⇓), \Epsilon (Ε), \Equiv (≣), \Eta (Η), \Eulerconst (ℇ), \Exclam (‼), \Finv (Ⅎ), \Game (⅁), \Gamma (Γ), \Gt (⪢), \Hermaphrodite (⚥), \Im (ℑ), \Iota (Ι), \Kappa (Κ), \Koppa (Ϟ), \L (Ł), \LLeftarrow (⭅), \Lambda (Λ), \Lbrbrak (⟬), \Ldsh (↲), \Leftarrow (⇐), \Leftrightarrow (⇔), \Lleftarrow (⇚), \Longleftarrow (⟸), \Longleftrightarrow (⟺), \Longmapsfrom (⟽), \Longmapsto (⟾), \Longrightarrow (⟹), \Lparengtr (⦕), \Lsh (↰), \Lt (⪡), \Lvzigzag (⧚), \Mapsfrom (⤆), \Mapsto (⤇), \Mu (Μ), \NG (Ŋ), \Nearrow (⇗), \Not (⫬), \Nu (Ν), \Nwarrow (⇖), \O (Ø), \OE (Œ), \Ohorn (Ơ), \Omega (Ω), \Omicron (Ο), \Otimes (⨷), \P (¶), \Phi (Φ), \Pi (Π), \Planckconst (ℎ), \Prec (⪻), \PropertyLine (⅊), \Psi (Ψ), \QED (∎), \Question (⁇), \RRightarrow (⭆), \Rbrbrak (⟭), \Rdsh (↳), \Re (ℜ), \Rho (Ρ), \Rightarrow (⇒), \Rparenless (⦖), \Rrightarrow (⇛), \Rsh (↱), \Rvzigzag (⧛), \S (§), \Sc (⪼), \Searrow (⇘), \Sigma (Σ), \Sqcap (⩎), \Sqcup (⩏), \Stigma (Ϛ), \Subset (⋐), \Supset (⋑), \Swarrow (⇙), \TH (Þ), \Tau (Τ), \Theta (Θ), \UUparrow (⟰), \Uhorn (Ư), \Uparrow (⇑), \Updownarrow (⇕), \Uuparrow (⤊), \VDash (⊫), \Vbar (⫫), \Vdash (⊩), \Vee (⩔), \Vert (‖), \Vvdash (⊪), \Vvert (⦀), \Wedge (⩓), \XBox (☒), \Xi (Ξ), \Yup (⅄), \Zbar (Ƶ), \Zeta (Ζ).
+</p>
+<p>\aa (å), \ac (∾), \accurrent (⏦), \acidfree (♾), \acwcirclearrow (⥀), \acwgapcirclearrow (⟲), \acwleftarcarrow (⤹), \acwopencirclearrow (↺), \acwoverarcarrow (⤺), \acwundercurvearrow (⤻), \adots (⋰), \ae (æ), \aleph (ℵ), \alpha (α), \amalg (⨿), \angdnr (⦟), \angle (∠), \angles (⦞), \angleubar (⦤), \approx (≈), \approxeq (≊), \approxeqq (⩰), \approxident (≋), \arceq (≘), \aries (♈), \assert (⊦), \ast (∗), \asteq (⩮), \astrosun (☉), \asymp (≍), \awint (⨑).
+</p>
+<p>\bNot (⫭), \backcong (≌), \backdprime (‶), \backepsilon (϶), \backprime (‵), \backsim (∽), \backsimeq (⋍), \backslash (\), \backtrprime (‷), \bagmember (⋿), \barV (⫪), \barcap (⩃), \barcup (⩂), \bardownharpoonleft (⥡), \bardownharpoonright (⥝), \barleftarrow (⇤), \barleftarrowrightarrowbar (↹), \barleftharpoondown (⥖), \barleftharpoonup (⥒), \barovernorthwestarrow (↸), \barrightarrowdiamond (⤠), \barrightharpoondown (⥟), \barrightharpoonup (⥛), \baruparrow (⤒), \barupharpoonleft (⥘), \barupharpoonright (⥔), \barvee (⊽), \barwedge (⊼), \bbrktbrk (⎶), \bdHrule (═), \bdVrule (║), \bdbVbH (╬), \bdbVbh (╫), \bdbVlH (╣), \bdbVlh (╢), \bdbVrH (╠), \bdbVrh (╟), \bdbvbH (╪), \bdbvbh (┼), \bdbvlH (╡), \bdbvlh (┤), \bdbvrH (╞), \bdbvrh (├), \bddVbH (╦), \bddVbh (╥), \bddVlH (╗), \bddVlh (╖), \bddVrH (╔), \bddVrh (╓), \bddvbH (╤), \bddvbh (┬), \bddvlH (╕), \bddvlh (┐), \bddvrH (╒), \bddvrh (┌), \bdhrule (─), \bdnesw (╱), \bdnwse (╲), \bdquadhdash (┈), \bdquadvdash (┊), \bdtriplevdash (┆), \bduVbH (╩), \bduVbh (╨), \bduVlH (╝), \bduVlh (╜), \bduVrH (╚), \bduVrh (╙), \bduvbH (╧), \bduvbh (┴), \bduvlH (╛), \bduvlh (┘), \bduvrH (╘), \bduvrh (└), \bdvrule (│), \because (∵), \benzenr (⏣), \beta (β), \beth (ℶ), \between (≬), \bigblacktriangledown (▼), \bigblacktriangleup (▲), \bigbot (⟘), \bigcap (⋂), \bigcup (⋃), \bigslopedvee (⩗), \bigslopedwedge (⩘), \bigstar (★), \bigtop (⟙), \bigtriangledown (▽), \bigtriangleup (△), \bigvee (⋁), \bigwedge (⋀), \bigwhitestar (☆), \blackcircledownarrow (⧭), \blackcircledrightdot (⚈), \blackcircledsanseight (➑), \blackcircledsansfive (➎), \blackcircledsansfour (➍), \blackcircledsansnine (➒), \blackcircledsansone (➊), \blackcircledsansseven (➐), \blackcircledsanssix (➏), \blackcircledsansten (➓), \blackcircledsansthree (➌), \blackcircledsanstwo (➋), \blackcircledtwodots (⚉), \blackcircleulquadwhite (◕), \blackdiamonddownarrow (⧪), \blackhourglass (⧗), \blackinwhitediamond (◈), \blackinwhitesquare (▣), \blacklefthalfcircle (◖), \blackpointerleft (◄), \blackpointerright (►), \blackrighthalfcircle (◗), \blacksmiley (☻), \blacktriangle (▴), \blacktriangledown (▾), \blacktriangleleft (◀), \blacktriangleright (▶), \blkhorzoval (⬬), \blkvertoval (⬮), \blockfull (█), \blockhalfshaded (▒), \blocklefthalf (▌), \blocklowhalf (▄), \blockqtrshaded (░), \blockrighthalf (▐), \blockthreeqtrshaded (▓), \blockuphalf (▀), \bot (⊥), \botsemicircle (◡), \bowtie (⋈), \box (◻), \boxast (⧆), \boxbar (◫), \boxbox (⧈), \boxbslash (⧅), \boxcircle (⧇), \boxdiag (⧄), \boxdot (⊡), \boxminus (⊟), \boxonbox (⧉), \boxplus (⊞), \boxtimes (⊠), \bsimilarleftarrow (⭁), \bsimilarrightarrow (⭇), \bsolhsub (⟈), \btimes (⨲), \bullet (∙), \bullseye (◎), \bumpeq (≏), \bumpeqq (⪮).
+</p>
+<p>\calB (ℬ), \calE (ℰ), \calF (ℱ), \calH (ℋ), \calM (ℳ), \calR (ℛ), \cap (∩), \capdot (⩀), \capwedge (⩄), \caretinsert (‸), \carreturn (⏎), \carriagereturn (↵), \ccwundercurvearrow (⤿), \cdot (⋅), \cdotp (·), \cdots (⋯), \cdprime (ʺ), \checkmark (✓), \chi (χ), \cirE (⧃), \cirbot (⟟), \circ (∘), \circeq (≗), \circfint (⨐), \circlebottomhalfblack (◒), \circledA (Ⓐ), \circledB (Ⓑ), \circledC (Ⓒ), \circledD (Ⓓ), \circledE (Ⓔ), \circledF (Ⓕ), \circledG (Ⓖ), \circledH (Ⓗ), \circledI (Ⓘ), \circledJ (Ⓙ), \circledK (Ⓚ), \circledL (Ⓛ), \circledM (Ⓜ), \circledN (Ⓝ), \circledO (Ⓞ), \circledP (Ⓟ), \circledQ (Ⓠ), \circledR (Ⓡ), \circledS (Ⓢ), \circledT (Ⓣ), \circledU (Ⓤ), \circledV (Ⓥ), \circledW (Ⓦ), \circledX (Ⓧ), \circledY (Ⓨ), \circledZ (Ⓩ), \circleda (ⓐ), \circledast (⊛), \circledb (ⓑ), \circledbullet (⦿), \circledc (ⓒ), \circledcirc (⊚), \circledd (ⓓ), \circleddash (⊝), \circlede (ⓔ), \circledeight (⑧), \circledequal (⊜), \circledf (ⓕ), \circledfive (⑤), \circledfour (④), \circledg (ⓖ), \circledh (ⓗ), \circledi (ⓘ), \circledj (ⓙ), \circledk (ⓚ), \circledl (ⓛ), \circledm (ⓜ), \circledn (ⓝ), \circlednine (⑨), \circledo (ⓞ), \circledone (①), \circledownarrow (⧬), \circledp (ⓟ), \circledparallel (⦷), \circledq (ⓠ), \circledr (ⓡ), \circledrightdot (⚆), \circleds (ⓢ), \circledsanseight (➇), \circledsansfive (➄), \circledsansfour (➃), \circledsansnine (➈), \circledsansone (➀), \circledsansseven (➆), \circledsanssix (➅), \circledsansten (➉), \circledsansthree (➂), \circledsanstwo (➁), \circledseven (⑦), \circledsix (⑥), \circledstar (✪), \circledt (ⓣ), \circledthree (③), \circledtwo (②), \circledtwodots (⚇), \circledu (ⓤ), \circledv (ⓥ), \circledvert (⦶), \circledw (ⓦ), \circledwhitebullet (⦾), \circledx (ⓧ), \circledy (ⓨ), \circledz (ⓩ), \circledzero (⓪), \circlehbar (⦵), \circlelefthalfblack (◐), \circlellquad (◵), \circlelrquad (◶), \circleonleftarrow (⬰), \circleonrightarrow (⇴), \circlerighthalfblack (◑), \circletophalfblack (◓), \circleulquad (◴), \circleurquad (◷), \circleurquadblack (◔), \circlevertfill (◍), \cirmid (⫯), \cirscir (⧂), \clangle (〈), \closedvarcap (⩍), \closedvarcup (⩌), \closedvarcupsmashprod (⩐), \closure (⁐), \cloverleaf (⌘), \clubsuit (♣), \colon (:), \colon (∶), \coloneq (≔), \commaminus (⨩), \complement (∁), \concavediamond (⟡), \concavediamondtickleft (⟢), \concavediamondtickright (⟣), \cong (≅), \congdot (⩭), \conictaper (⌲), \conjunction (☌), \coprod (∐), \cprime (ʹ), \crangle (〉), \csub (⫏), \csube (⫑), \csup (⫐), \csupe (⫒), \cuberoot (∛), \cup (∪), \cupdot (⊍), \cupleftarrow (⊌), \cupvee (⩅), \curlyeqprec (⋞), \curlyeqsucc (⋟), \curlyvee (⋎), \curlywedge (⋏), \curvearrowleft (↶), \curvearrowleftplus (⤽), \curvearrowright (↷), \curvearrowrightminus (⤼), \cwcirclearrow (⥁), \cwgapcirclearrow (⟳), \cwopencirclearrow (↻), \cwrightarcarrow (⤸), \cwundercurvearrow (⤾), \cylcty (⌭).
+</p>
+<p>\dag (†), \dagger (†), \daleth (ℸ), \danger (☡), \dashV (⫣), \dashVdash (⟛), \dashcolon (∹), \dashleftharpoondown (⥫), \dashrightharpoondown (⥭), \dashv (⊣), \dbkarow (⤏), \ddag (‡), \ddagger (‡), \ddots (⋱), \ddotseq (⩷), \delta (δ), \dh (ð), \diameter (⌀), \diamond (◇), \diamondbotblack (⬙), \diamondcdot (⟐), \diamondleftarrow (⤝), \diamondleftarrowbar (⤟), \diamondleftblack (⬖), \diamondrightblack (⬗), \diamondsuit (♢), \diamondtopblack (⬘), \dicei (⚀), \diceii (⚁), \diceiii (⚂), \diceiv (⚃), \dicev (⚄), \dicevi (⚅), \digamma (ϝ), \dingasterisk (✽), \dircurrent (⎓), \disin (⋲), \div (÷), \divideontimes (⋇), \dj (đ), \dlcrop (⌍), \doteq (≐), \dotequiv (⩧), \dotminus (∸), \dotplus (∔), \dots (…), \dotsim (⩪), \dotsminusdots (∺), \dottedcircle (◌), \dottedsquare (⬚), \dottimes (⨰), \doublebarvee (⩢), \doublebarwedge (⩞), \doubleplus (⧺), \downarrow (↓), \downarrowbar (⤓), \downarrowbarred (⤈), \downdasharrow (⇣), \downdownarrows (⇊), \downfishtail (⥿), \downharpoonleft (⇃), \downharpoonleftbar (⥙), \downharpoonright (⇂), \downharpoonrightbar (⥕), \downharpoonsleftright (⥥), \downrightcurvedarrow (⤵), \downtriangleleftblack (⧨), \downtrianglerightblack (⧩), \downuparrows (⇵), \downupharpoonsleftright (⥯), \downwhitearrow (⇩), \downzigzagarrow (↯), \dprime (″), \draftingarrow (➛), \drbkarow (⤐), \drcrop (⌌), \dsol (⧶), \dsub (⩤), \dualmap (⧟).
+</p>
+<p>\earth (♁), \egsdot (⪘), \eighthnote (♪), \elinters (⏧), \ell (ℓ), \elsdot (⪗), \emdash (—), \emptyset (∅), \emptysetoarr (⦳), \emptysetoarrl (⦴), \emptysetobar (⦱), \emptysetocirc (⦲), \endash (–), \enleadertwodots (‥), \envelope (✉), \eparsl (⧣), \epsilon (ϵ), \eqcirc (≖), \eqcolon (≕), \eqdef (≝), \eqdot (⩦), \eqeq (⩵), \eqeqeq (⩶), \eqgtr (⋝), \eqless (⋜), \eqqgtr (⪚), \eqqless (⪙), \eqqplus (⩱), \eqqsim (⩳), \eqqslantgtr (⪜), \eqqslantless (⪛), \eqsim (≂), \eqslantgtr (⪖), \eqslantless (⪕), \equalleftarrow (⭀), \equalparallel (⋕), \equalrightarrow (⥱), \equiv (≡), \equivDD (⩸), \equivVert (⩨), \equivVvert (⩩), \eqvparsl (⧥), \errbarblackcircle (⧳), \errbarblackdiamond (⧱), \errbarblacksquare (⧯), \errbarcircle (⧲), \errbardiamond (⧰), \errbarsquare (⧮), \eta (η), \euro (€), \exists (∃).
+</p>
+<p>\fallingdotseq (≒), \fbowtie (⧓), \fcmp (⨾), \fdiagovnearrow (⤯), \fdiagovrdiag (⤬), \female (♀), \figdash (‒), \fint (⨏), \fisheye (◉), \flat (♭), \fltns (⏥), \forall (∀), \forks (⫝̸), \forksnot (⫝), \forkv (⫙), \fourthroot (∜), \fourvdots (⦙), \fracfiveeighths (⅝), \fracfivesixths (⅚), \fracfourfifths (⅘), \fraconeeighth (⅛), \fraconefifth (⅕), \fraconesixth (⅙), \fraconethird (⅓), \fracseveneights (⅞), \fracslash (⁄), \fracthreeeighths (⅜), \fracthreefifths (⅗), \fractwofifths (⅖), \fractwothirds (⅔), \frakC (ℭ), \frakH (ℌ), \frakZ (ℨ), \frown (⌢), \frownie (☹), \fullouterjoin (⟗).
+</p>
+<p>\gamma (γ), \ge (≥), \geq (≥), \geqq (≧), \geqslant (⩾), \gescc (⪩), \gesdot (⪀), \gesdoto (⪂), \gesdotol (⪄), \gesles (⪔), \gets (←), \gg (≫), \ggg (⋙), \gggnest (⫸), \gimel (ℷ), \glE (⪒), \gla (⪥), \gleichstark (⧦), \glj (⪤), \gnapprox (⪊), \gneq (⪈), \gneqq (≩), \gnsim (⋧), \greater (&gt;), \gsime (⪎), \gsiml (⪐), \gtcc (⪧), \gtcir (⩺), \gtlpar (⦠), \gtquest (⩼), \gtrapprox (⪆), \gtrarr (⥸), \gtrdot (⋗), \gtreqless (⋛), \gtreqqless (⪌), \gtrless (≷), \gtrsim (≳), \guillemotleft («), \guillemotright (»), \guilsinglleft (‹), \guilsinglright (›).
+</p>
+<p>\harrowextender (⎯), \hatapprox (⩯), \hbar (ℏ), \heartsuit (♡), \hermitmatrix (⊹), \hexagon (⎔), \hexagonblack (⬣), \hiraganano (の), \hknearrow (⤤), \hknwarrow (⤣), \hksearow (⤥), \hkswarow (⤦), \hookleftarrow (↩), \hookrightarrow (↪), \horizbar (―), \hourglass (⧖), \house (⌂), \hrectangle (▭), \hrectangleblack (▬), \hslash (ℏ), \hyphenbullet (⁃), \hzigzag (〰).
+</p>
+<p>\iiiint (⨌), \iiint (∭), \iinfin (⧜), \iint (∬), \imageof (⊷), \in (∈), \incare (℅), \increment (∆), \infty (∞), \int (∫), \intBar (⨎), \intbar (⨍), \intbottom (⌡), \intcap (⨙), \intclockwise (∱), \intcup (⨚), \intercal (⊺), \interleave (⫴), \intextender (⎮), \intlharhk (⨗), \intprod (⨼), \intprodr (⨽), \inttop (⌠), \intx (⨘), \inversebullet (◘), \inversewhitecircle (◙), \invnot (⌐), \invwhitelowerhalfcircle (◛), \invwhiteupperhalfcircle (◚), \iota (ι), \ipasupgamma (ˠ), \ipasupl (ˡ), \ipasuprerglotstpp (ˤ), \ipasups (ˢ), \ipasupx (ˣ), \ipaunaspirated (˭), \ipavoicing (ˬ), \isinE (⋹), \isindot (⋵), \isinobar (⋷), \isins (⋴), \isinvb (⋸), \itBbbD (ⅅ), \itBbbd (ⅆ), \itBbbe (ⅇ), \itBbbi (ⅈ), \itBbbj (ⅉ).
+</p>
+<p>\jupiter (♃), \kappa (κ), \kernelcontraction (∻), \koppa (ϟ).
+</p>
+<p>\l (ł), \lAngle (⟪), \lBrace (⦃), \lBrack (⟦), \lParen (⦅), \lambda (λ), \lambdabar (ƛ), \langle (⟨), \langledot (⦑), \laplac (⧠), \lasp (ʽ), \lat (⪫), \late (⪭), \lbag (⟅), \lblkbrbrak (⦗), \lbrace ({), \lbracelend (⎩), \lbracemid (⎨), \lbraceuend (⎧), \lbrack ([), \lbrackextender (⎢), \lbracklend (⎣), \lbracklltick (⦏), \lbrackubar (⦋), \lbrackuend (⎡), \lbrackultick (⦍), \lbrbrak (❲), \lceil (⌈), \lcurvyangle (⧼), \ldasharrhead (⇠), \le (≤), \leadsto (↝), \leftarrow (←), \leftarrowapprox (⭊), \leftarrowbackapprox (⭂), \leftarrowbsimilar (⭋), \leftarrowless (⥷), \leftarrowonoplus (⬲), \leftarrowplus (⥆), \leftarrowshortrightarrow (⥃), \leftarrowsimilar (⥳), \leftarrowsubset (⥺), \leftarrowtail (↢), \leftarrowtriangle (⇽), \leftarrowx (⬾), \leftbkarrow (⤌), \leftcurvedarrow (⬿), \leftdasharrow (⇠), \leftdasharrowhead (⇡), \leftdbkarrow (⤎), \leftdbltail (⤛), \leftdotarrow (⬸), \leftdowncurvedarrow (⤶), \leftfishtail (⥼), \leftharpoondown (↽), \leftharpoondownbar (⥞), \leftharpoonsupdown (⥢), \leftharpoonup (↼), \leftharpoonupbar (⥚), \leftharpoonupdash (⥪), \leftleftarrows (⇇), \leftmoon (☾), \leftouterjoin (⟕), \leftrightarrow (↔), \leftrightarrowcircle (⥈), \leftrightarrows (⇆), \leftrightarrowtriangle (⇿), \leftrightharpoondowndown (⥐), \leftrightharpoondownup (⥋), \leftrightharpoons (⇋), \leftrightharpoonsdown (⥧), \leftrightharpoonsup (⥦), \leftrightharpoonupdown (⥊), \leftrightharpoonupup (⥎), \leftrightsquigarrow (↭), \leftsquigarrow (↜), \leftsquigarrow (⇜), \lefttail (⤙), \leftthreearrows (⬱), \leftthreetimes (⋋), \leftwhitearrow (⇦), \leq (≤), \leqq (≦), \leqqslant (⫹), \leqqslant (⫺), \leqslant (⩽), \lescc (⪨), \lesdot (⩿), \lesdoto (⪁), \lesdotor (⪃), \lesges (⪓), \less (&lt;), \lessapprox (⪅), \lessdot (⋖), \lesseqgtr (⋚), \lesseqqgtr (⪋), \lessgtr (≶), \lesssim (≲), \lfbowtie (⧑), \lfloor (⌊), \lftimes (⧔), \lgE (⪑), \lgblkcircle (⬤), \lgblksquare (⬛), \lgwhtcircle (◯), \lgwhtsquare (⬜), \lhd (⊲), \linefeed (↴), \ll (≪), \llangle (⦉), \llarc (◟), \llblacktriangle (◣), \llcorner (⌞), \lll (⋘), \lllnest (⫷), \llparenthesis (⦇), \lltriangle (◺), \lmoustache (⎰), \lnapprox (⪉), \lneq (⪇), \lneqq (≨), \lnsim (⋦), \longdashv (⟞), \longdivision (⟌), \longleftarrow (⟵), \longleftrightarrow (⟷), \longleftsquigarrow (⬳), \longmapsfrom (⟻), \longmapsto (⟼), \longrightarrow (⟶), \longrightsquigarrow (⟿), \looparrowleft (↫), \looparrowright (↬), \lowint (⨜), \lozenge (◊), \lozengeminus (⟠), \lparenextender (⎜), \lparenlend (⎝), \lparenless (⦓), \lparenuend (⎛), \lq (‘), \lrarc (◞), \lrblacktriangle (◢), \lrcorner (⌟), \lrtriangle (◿), \lrtriangleeq (⧡), \lsime (⪍), \lsimg (⪏), \lsqhook (⫍), \ltcc (⪦), \ltcir (⩹), \ltimes (⋉), \ltlarr (⥶), \ltquest (⩻), \ltrivb (⧏), \lvboxline (⎸), \lvzigzag (⧘).
+</p>
+<p>\male (♂), \maltese (✠), \mapsdown (↧), \mapsfrom (↤), \mapsto (↦), \mapsup (↥), \mdblkdiamond (⬥), \mdblklozenge (⬧), \mdblkrcl (⚫), \mdblksquare (◼), \mdlgblkcircle (●), \mdlgblkdiamond (◆), \mdlgblklozenge (⧫), \mdlgblksquare (■), \mdlgwhtcircle (○), \mdlgwhtdiamond (◇), \mdlgwhtsquare (□), \mdsmblkcircle (⦁), \mdsmblksquare (◾), \mdsmwhtcircl (⚬), \mdsmwhtsquare (◽), \mdwhtcircl (⚪), \mdwhtdiamond (⬦), \mdwhtlozenge (⬨), \mdwhtsquare (◻), \measangledltosw (⦯), \measangledrtose (⦮), \measangleldtosw (⦫), \measanglelutonw (⦩), \measanglerdtose (⦪), \measanglerutone (⦨), \measangleultonw (⦭), \measangleurtone (⦬), \measeq (≞), \measuredangle (∡), \measuredangleleft (⦛), \measuredrightangle (⊾), \medblackstar (⭑), \medmathspace ( ), \medwhitestar (⭐), \mercury (☿), \mho (℧), \mid (∣), \midbarvee (⩝), \midbarwedge (⩜), \midcir (⫰), \minus (−), \minusdot (⨪), \minusfdots (⨫), \minusrdots (⨬), \mlcp (⫛), \models (⊧), \mp (∓), \mu (μ), \multimap (⊸), \multimapinv (⟜).
+</p>
+<p>\nHdownarrow (⇟), \nHuparrow (⇞), \nLeftarrow (⇍), \nLeftrightarrow (⇎), \nRightarrow (⇏), \nVDash (⊯), \nVdash (⊮), \nVleftarrow (⇺), \nVleftarrowtail (⬺), \nVleftrightarrow (⇼), \nVrightarrow (⇻), \nVrightarrowtail (⤕), \nVtwoheadleftarrow (⬵), \nVtwoheadleftarrowtail (⬽), \nVtwoheadrightarrow (⤁), \nVtwoheadrightarrowtail (⤘), \nabla (∇), \napprox (≉), \nasymp (≭), \natural (♮), \ncong (≇), \ne (≠), \nearrow (↗), \neg (¬), \neovnwarrow (⤱), \neovsearrow (⤮), \neptune (♆), \neq (≠), \nequiv (≢), \neswarrow (⤢), \neuter (⚲), \nexists (∄), \ng (ŋ), \ngeq (≱), \ngtr (≯), \ngtrless (≹), \ngtrsim (≵), \nhVvert (⫵), \nhpar (⫲), \ni (∋), \niobar (⋾), \nis (⋼), \nisd (⋺), \nleftarrow (↚), \nleftrightarrow (↮), \nleq (≰), \nless (≮), \nlessgtr (≸), \nlesssim (≴), \nmid (∤), \nni (∌), \nobreakhyphen (‑), \notin (∉), \nparallel (∦), \npolint (⨔), \nprec (⊀), \npreccurlyeq (⋠), \nrightarrow (↛), \nsim (≁), \nsime (≄), \nsqsubseteq (⋢), \nsqsupseteq (⋣), \nsubset (⊄), \nsubseteq (⊈), \nsucc (⊁), \nsucccurlyeq (⋡), \nsupset (⊅), \nsupseteq (⊉), \ntriangleleft (⋪), \ntrianglelefteq (⋬), \ntriangleright (⋫), \ntrianglerighteq (⋭), \nu (ν), \nvDash (⊭), \nvLeftarrow (⤂), \nvLeftrightarrow (⤄), \nvRightarrow (⤃), \nvdash (⊬), \nvinfty (⧞), \nvleftarrow (⇷), \nvleftarrowtail (⬹), \nvleftrightarrow (⇹), \nvrightarrow (⇸), \nvrightarrowtail (⤔), \nvtwoheadleftarrow (⬴), \nvtwoheadleftarrowtail (⬼), \nvtwoheadrightarrow (⤀), \nvtwoheadrightarrowtail (⤗), \nwarrow (↖), \nwovnearrow (⤲), \nwsearrow (⤡).
+</p>
+<p>\o (ø), \obar (⌽), \obot (⦺), \obrbrak (⏠), \obslash (⦸), \odiv (⨸), \odot (⊙), \odotslashdot (⦼), \oe (œ), \ogreaterthan (⧁), \ohorn (ơ), \oiiint (∰), \oiint (∯), \oint (∮), \ointctrclockwise (∳), \olcross (⦻), \oldKoppa (Ϙ), \oldkoppa (ϙ), \olessthan (⧀), \omega (ω), \omicron (ο), \ominus (⊖), \operp (⦹), \oplus (⊕), \opluslhrim (⨭), \oplusrhrim (⨮), \origof (⊶), \oslash (⊘), \otimes (⊗), \otimeshat (⨶), \otimeslhrim (⨴), \otimesrhrim (⨵), \overbrace (⏞), \overbracket (⎴), \overline (‾), \overparen (⏜), \owns (∋).
+</p>
+<p>\parallel (∥), \parallelogram (▱), \parallelogramblack (▰), \parsim (⫳), \partial (∂), \partialmeetcontraction (⪣), \pentagon (⬠), \pentagonblack (⬟), \perp (⟂), \perps (⫡), \phi (ϕ), \phone (☎), \pi (π), \pitchfork (⋔), \plusdot (⨥), \pluseqq (⩲), \plushat (⨣), \plussim (⨦), \plussubtwo (⨧), \plustrif (⨨), \pluto (♇), \pm (±), \pointnt (⨕), \postalmark (〒), \prec (≺), \precapprox (⪷), \preccurlyeq (≼), \preceq (⪯), \preceqq (⪳), \precnapprox (⪹), \precneq (⪱), \precneqq (⪵), \precnsim (⋨), \precsim (≾), \prime (′), \prod (∏), \profalar (⌮), \profline (⌒), \profsurf (⌓), \propto (∝), \prurel (⊰), \psi (ψ), \pullback (⟓), \pushout (⟔).
+</p>
+<p>\qprime (⁗), \quarternote (♩), \questeq (≟), \quotdblbase („), \quotdblright (‟), \quotsinglbase (‚), \quotsinglright (‛).
+</p>
+<p>\rAngle (⟫), \rBrace (⦄), \rBrack (⟧), \rParen (⦆), \rangle (⟩), \rangledot (⦒), \rangledownzigzagarrow (⍼), \rasp (ʼ), \rbag (⟆), \rblkbrbrak (⦘), \rbrace (}), \rbracelend (⎭), \rbracemid (⎬), \rbraceuend (⎫), \rbrack (]), \rbrackextender (⎥), \rbracklend (⎦), \rbracklrtick (⦎), \rbrackubar (⦌), \rbrackuend (⎤), \rbrackurtick (⦐), \rbrbrak (❳), \rceil (⌉), \rcurvyangle (⧽), \rdiagovfdiag (⤫), \rdiagovsearrow (⤰), \recorder (⌕), \revangle (⦣), \revangleubar (⦥), \revemptyset (⦰), \revnmid (⫮), \rfbowtie (⧒), \rfloor (⌋), \rftimes (⧕), \rhd (⊳), \rho (ρ), \righarrowbsimilar (⭌), \rightangle (∟), \rightanglemdot (⦝), \rightanglesqr (⦜), \rightarrow (→), \rightarrowapprox (⥵), \rightarrowbackapprox (⭈), \rightarrowbar (⇥), \rightarrowdiamond (⤞), \rightarrowgtr (⭃), \rightarrowonoplus (⟴), \rightarrowplus (⥅), \rightarrowshortleftarrow (⥂), \rightarrowsimilar (⥴), \rightarrowsupset (⭄), \rightarrowtail (↣), \rightarrowtriangle (⇾), \rightarrowx (⥇), \rightbkarrow (⤍), \rightcurvedarrow (⤳), \rightdasharrow (⇢), \rightdbltail (⤜), \rightdotarrow (⤑), \rightdowncurvedarrow (⤷), \rightfishtail (⥽), \rightharpoondown (⇁), \rightharpoondownbar (⥗), \rightharpoonsupdown (⥤), \rightharpoonup (⇀), \rightharpoonupbar (⥓), \rightharpoonupdash (⥬), \rightimply (⥰), \rightleftarrows (⇄), \rightleftharpoons (⇌), \rightleftharpoonsdown (⥩), \rightleftharpoonsup (⥨), \rightmoon (☽), \rightouterjoin (⟖), \rightpentagon (⭔), \rightpentagonblack (⭓), \rightrightarrows (⇉), \rightsquigarrow (↝), \rightsquigarrow (⇝), \righttail (⤚), \rightthreearrows (⇶), \rightthreetimes (⋌), \rightwhitearrow (⇨), \ringplus (⨢), \risingdotseq (≓), \rmoustache (⎱), \rparenextender (⎟), \rparengtr (⦔), \rparenlend (⎠), \rparenuend (⎞), \rppolint (⨒), \rq (’), \rrangle (⦊), \rrparenthesis (⦈), \rsolbar (⧷), \rsqhook (⫎), \rsub (⩥), \rtimes (⋊), \rtriltri (⧎), \ruledelayed (⧴), \rvboxline (⎹), \rvzigzag (⧙).
+</p>
+<p>\sampi (ϡ), \sansLmirrored (⅃), \sansLturned (⅂), \saturn (♄), \scissors (✂), \scpolint (⨓), \scrB (ℬ), \scrE (ℰ), \scrF (ℱ), \scrH (ℋ), \scrI (ℐ), \scrL (ℒ), \scrM (ℳ), \scrR (ℛ), \scre (ℯ), \scrg (ℊ), \scro (ℴ), \scurel (⊱), \searrow (↘), \seovnearrow (⤭), \setminus (∖), \setminus (⧵), \sharp (♯), \shortdowntack (⫟), \shortleftarrow (←), \shortlefttack (⫞), \shortrightarrow (→), \shortrightarrowleftarrow (⥄), \shortuptack (⫠), \shuffle (⧢), \sigma (σ), \silon (υ), \silon (ϒ), \sim (∼), \simeq (≃), \simgE (⪠), \simgtr (⪞), \similarleftarrow (⭉), \similarrightarrow (⥲), \simlE (⪟), \simless (⪝), \simminussim (⩬), \simneqq (≆), \simplus (⨤), \simrdots (⩫), \sinewave (∿), \slash (∕), \smallblacktriangleleft (◂), \smallblacktriangleright (▸), \smalldiamond (⋄), \smallin (∊), \smallint (∫), \smallni (∍), \smallsetminus (∖), \smalltriangleleft (◃), \smalltriangleright (▹), \smashtimes (⨳), \smblkdiamond (⬩), \smblklozenge (⬪), \smblksquare (▪), \smeparsl (⧤), \smile (⌣), \smiley (☺), \smt (⪪), \smte (⪬), \smwhitestar (⭒), \smwhtcircle (◦), \smwhtlozenge (⬫), \smwhtsquare (▫), \spadesuit (♠), \sphericalangle (∢), \sphericalangleup (⦡), \sqcap (⊓), \sqcup (⊔), \sqint (⨖), \sqlozenge (⌑), \sqrt (√), \sqrt3 (∛), \sqrt4 (∜), \sqrtbottom (⎷), \sqsubset (⊏), \sqsubseteq (⊑), \sqsubsetneq (⋤), \sqsupset (⊐), \sqsupseteq (⊒), \sqsupsetneq (⋥), \squarecrossfill (▩), \squaregrayfill (▩), \squarehfill (▤), \squarehvfill (▦), \squareleftblack (◧), \squareleftblack (◨), \squarellblack (⬕), \squarellquad (◱), \squarelrblack (◪), \squarelrquad (◲), \squareneswfill (▨), \squarenwsefill (▧), \squareulblack (◩), \squareulquad (◰), \squareurblack (⬔), \squareurquad (◳), \squarevfill (▥), \squoval (▢), \ss (ß), \star (⋆), \stareq (≛), \sterling (£), \stigma (ϛ), \strns (⏤), \subedot (⫃), \submult (⫁), \subrarr (⥹), \subset (⊂), \subsetapprox (⫉), \subsetcirc (⟃), \subsetdot (⪽), \subseteq (⊆), \subseteqq (⫅), \subsetneq (⊊), \subsetneqq (⫋), \subsetplus (⪿), \subsim (⫇), \subsub (⫕), \subsup (⫓), \succ (≻), \succapprox (⪸), \succcurlyeq (≽), \succeq (⪰), \succeqq (⪴), \succnapprox (⪺), \succneq (⪲), \succneqq (⪶), \succnsim (⋩), \succsim (≿), \sum (∑), \sumbottom (⎳), \sumint (⨋), \sumtop (⎲), \sun (☼), \supdsub (⫘), \supedot (⫄), \suphsol (⟉), \suphsub (⫗), \suplarr (⥻), \supmult (⫂), \supn (ⁿ), \supset (⊃), \supsetapprox (⫊), \supsetcirc (⟄), \supsetdot (⪾), \supseteq (⊇), \supseteqq (⫆), \supsetneq (⊋), \supsetneqq (⫌), \supsetplus (⫀), \supsim (⫈), \supsub (⫔), \supsup (⫖), \surd (√), \swarrow (↙).
+</p>
+<p>\talloblong (⫾), \target (⌖), \tau (τ), \taurus (♉), \testhookx (ᶍ), \textAsterisks (⁑), \textacute (ˊ), \textadvanced (˖), \textain (ʿ), \textasciiacute (´), \textasciicircum (^), \textasciidieresis (¨), \textasciigrave (&lsquo;), \textasciimacron (¯), \textasciitilde (~), \textasterisklow (⁎), \textbackdprime (‶), \textbackprime (‵), \textbacktrprime (‷), \textbardotlessj (ɟ), \textbardotlessjvar (ʄ), \textbarglotstop (ʡ), \textbari (ɨ), \textbarl (ƚ), \textbaro (ɵ), \textbarrevglotstop (ʢ), \textbaru (ʉ), \textbeltl (ɬ), \textbenttailyogh (ƺ), \textbreve (˘), \textbrokenbar (¦), \textbullet (•), \textbullseye (ʘ), \textcent (¢), \textcircledP (℗), \textcloseepsilon (ʚ), \textcloseomega (ɷ), \textcloserevepsilon (ɞ), \textcopyright (©), \textcrb (ƀ), \textcrh (ħ), \textcrinvglotstop (ƾ), \textcrlambda (ƛ), \textcrtwo (ƻ), \textctc (ɕ), \textctd (ȡ), \textctesh (ʆ), \textctj (ʝ), \textctl (ȴ), \textctn (ȵ), \textctt (ȶ), \textctyogh (ʓ), \textctz (ʑ), \textcurrency (¤), \textdctzlig (ʥ), \textdegree (°), \textdiscount (⁒), \textdollar ($), \textdotaccent (˙), \textdotlessj (ȷ), \textdoubleacute (˝), \textdoublebarpipe (ǂ), \textdoublepipe (ǁ), \textdprime (″), \textdptr (˅), \textdyoghlig (ʤ), \textdzlig (ʣ), \textepsilon (ɛ), \textesh (ʃ), \textestimated (℮), \textexclam (ǃ), \textexclamdown (¡), \textfishhookr (ɾ), \textflorin (ƒ), \textfranc (₣), \textgamma (ɣ), \textglotstop (ʔ), \textgrave (ˋ), \texthalflength (ˑ), \texthamza (ʾ), \texthen (ꜧ), \textheng (ꜧ), \texthooks (ᶊ), \texthookz (ᶎ), \texthtb (ɓ), \texthtc (ƈ), \texthtd (ɗ), \texthtg (ɠ), \texthth (ɦ), \texththeng (ɧ), \texthtk (ƙ), \texthtp (ƥ), \texthtq (ʠ), \texthtscg (ʛ), \texthtt (ƭ), \texthvlig (ƕ), \texthyphen (‐), \textinvglotstop (ʖ), \textinvscr (ʁ), \textiota (ɩ), \textlengthmark (ː), \textlhalfring (˓), \textlhookd (ᶁ), \textlhookk (ᶄ), \textlhookl (ᶅ), \textlhookt (ƫ), \textlhti (ɿ), \textlira (₤), \textlonglegr (ɼ), \textlongy (ʮ), \textlongy (ʯ), \textlooptoprevesh (ƪ), \textlowacute (ˏ), \textlowered (˕), \textlowgrave (ˎ), \textlowmacron (ˍ), \textlptr (˂), \textltailm (ɱ), \textltailn (ɲ), \textltilde (ɫ), \textlyoghlig (ɮ), \textmacron (ˉ), \textmu (µ), \textnumero (№), \textogonek (˛), \textohm (Ω), \textonehalf (½), \textonequarter (¼), \textonesuperior (¹), \textopeno (ɔ), \textordfeminine (ª), \textordmasculine (º), \textovercross (˟), \textoz (℥), \textpertenthousand (‱), \textperthousand (‰), \textpesetas (₧), \textphi (ɸ), \textpipe (ǀ), \textprime (′), \textprimstress (ˈ), \textqprime (⁗), \textquestiondown (¿), \textquotedbl (&quot;), \textquotedblleft (“), \textquotedblright (”), \textraised (˔), \textraiseglotstop (ˀ), \textraiserevglotstop (ˁ), \textramshorns (ɤ), \textrecipe (℞), \textreferencemark (※), \textregistered (®), \textretracted (˗), \textreve (ɘ), \textrevepsilon (ɜ), \textrevglotstop (ʕ), \textrhalfring (˒), \textrhookrevepsilon (ɝ), \textrhookschwa (ɚ), \textrhoticity (˞), \textringaccent (˚), \textrptr (˃), \textrtaild (ɖ), \textrtaill (ɭ), \textrtailn (ɳ), \textrtailr (ɽ), \textrtails (ʂ), \textrtailt (ʈ), \textrtailz (ʐ), \textsca (ᴀ), \textscb (ʙ), \textsce (ᴇ), \textscg (ɢ), \textsch (ʜ), \textschwa (ə), \textsci (ɪ), \textscl (ʟ), \textscn (ɴ), \textscoelig (ɶ), \textscr (ʀ), \textscripta (ɑ), \textscriptg (ɡ), \textscriptv (ʋ), \textscu (ᴜ), \textscy (ʏ), \textsecstress (ˌ), \textsemicolonreversed (⁏), \textsilon (Υ), \textsmalltilde (˜), \textstretchcvar (ʗ), \textsubw (w), \textsuph (ʰ), \textsuphth (ʱ), \textsupinvscr (ʶ), \textsupj (ʲ), \textsupr (ʳ), \textsupturnr (ʴ), \textsupturnrrtail (ʵ), \textsupw (ʷ), \textsupy (ʸ), \texttctctlig (ʧ), \texttctctlig (ʨ), \textthreequarters (¾), \textthreesuperior (³), \texttrademark (™), \texttrprime (‴), \texttslig (ʦ), \textturna (ɐ), \textturncomma (ʻ), \textturnh (ɥ), \textturnk (ʞ), \textturnlonglegr (ɺ), \textturnm (ɯ), \textturnmrleg (ɰ), \textturnr (ɹ), \textturnrrtail (ɻ), \textturnscripta (ɒ), \textturnt (ʇ), \textturnv (ʌ), \textturnw (ʍ), \textturny (ʎ), \texttwosuperior (²), \textupsilon (ʊ), \textuptr (˄), \textvibyi (ʅ), \textvisiblespace (␣), \textyogh (ʒ), \th (þ), \therefore (∴), \thermod (⧧), \theta (θ), \thickapprox (≈), \thicksim (∼), \threedangle (⟀), \threedotcolon (⫶), \tieconcat (⁀), \tieinfty (⧝), \times (×), \timesbar (⨱), \tminus (⧿), \to (→), \toea (⤨), \tona (⤧), \tonebarextrahigh (˥), \tonebarextralow (˩), \tonebarhigh (˦), \tonebarlow (˨), \tonebarmid (˧), \top (⊤), \topbot (⌶), \topcir (⫱), \topfork (⫚), \topsemicircle (◠), \tosa (⤩), \towa (⤪), \tplus (⧾), \trapezium (⏢), \trianglecdot (◬), \triangledown (▿), \triangleexclam (⚠), \triangleleft (◁), \triangleleftblack (◭), \trianglelefteq (⊴), \triangleminus (⨺), \triangleodot (⧊), \triangleplus (⨹), \triangleq (≜), \triangleright (▷), \trianglerightblack (◮), \trianglerighteq (⊵), \triangles (⧌), \triangleserifs (⧍), \triangletimes (⨻), \triangleubar (⧋), \tripleplus (⧻), \trprime (‴), \turnangle (⦢), \turnediota (℩), \turnednot (⌙), \twocaps (⩋), \twocups (⩊), \twoheaddownarrow (↡), \twoheadleftarrow (↞), \twoheadleftarrowtail (⬻), \twoheadleftdbkarrow (⬷), \twoheadmapsfrom (⬶), \twoheadmapsto (⤅), \twoheadrightarrow (↠), \twoheadrightarrowtail (⤖), \twoheaduparrow (↟), \twoheaduparrowcircle (⥉), \twolowline (‗), \twonotes (♫), \typecolon (⦂).
+</p>
+<p>\ubrbrak (⏡), \uhorn (ư), \ularc (◜), \ulblacktriangle (◤), \ulcorner (⌜), \ulcrop (⌏), \ultriangle (◸), \uminus (⩁), \underbrace (⏟), \underbracket (⎵), \underparen (⏝), \unlhd (⊴), \unrhd (⊵), \upand (⅋), \uparrow (↑), \uparrowbarred (⤉), \uparrowoncircle (⦽), \updasharrow (⇢), \updownarrow (↕), \updownarrowbar (↨), \updownarrows (⇅), \updownharpoonleftleft (⥑), \updownharpoonleftright (⥍), \updownharpoonrightleft (⥌), \updownharpoonrightright (⥏), \updownharpoonsleftright (⥮), \upfishtail (⥾), \upharpoonleft (↿), \upharpoonleftbar (⥠), \upharpoonright (↾), \upharpoonrightbar (⥜), \upharpoonsleftright (⥣), \upin (⟒), \upint (⨛), \uplus (⊎), \uprightcurvearrow (⤴), \upuparrows (⇈), \upwhitearrow (⇧), \urarc (◝), \urblacktriangle (◥), \urcorner (⌝), \urcrop (⌎), \urtriangle (◹).
+</p>
+<p>\v (ˇ), \vBar (⫨), \vBarv (⫩), \vDash (⊨), \vDdash (⫢), \varTheta (ϴ), \varVdash (⫦), \varbarwedge (⌅), \varbeta (ϐ), \varclubsuit (♧), \vardiamondsuit (♦), \vardoublebarwedge (⌆), \varepsilon (ε), \varheartsuit (♥), \varhexagon (⬡), \varhexagonblack (⬢), \varhexagonlrbonds (⌬), \varin (∈), \varisinobar (⋶), \varisins (⋳), \varkappa (ϰ), \varlrtriangle (⊿), \varni (∋), \varniobar (⋽), \varnis (⋻), \varnothing (∅), \varointclockwise (∲), \varphi (φ), \varpi (ϖ), \varpropto (∝), \varrho (ϱ), \varrowextender (⏐), \varsigma (ς), \varspadesuit (♤), \varstar (✶), \vartheta (ϑ), \vartriangle (▵), \vartriangleleft (⊲), \vartriangleright (⊳), \varveebar (⩡), \vbraceextender (⎪), \vbrtri (⧐), \vdash (⊢), \vdots (⋮), \vectimes (⨯), \vee (∨), \veebar (⊻), \veedot (⟇), \veedoublebar (⩣), \veeeq (≚), \veemidvert (⩛), \veeodot (⩒), \veeonvee (⩖), \veeonwedge (⩙), \vert (|), \viewdata (⌗), \vlongdash (⟝), \vrectangle (▯), \vrectangleblack (▮), \vysmlblksquare (⬝), \vysmlwhtsquare (⬞), \vzigzag (⦚).
+</p>
+<p>\watchicon (⌚), \wedge (∧), \wedgebar (⩟), \wedgedot (⟑), \wedgedoublebar (⩠), \wedgemidvert (⩚), \wedgeodot (⩑), \wedgeonwedge (⩕), \wedgeq (≙), \whitearrowupfrombar (⇪), \whiteinwhitetriangle (⟁), \whitepointerleft (◅), \whitepointerright (▻), \whitesquaretickleft (⟤), \whitesquaretickright (⟥), \whthorzoval (⬭), \whtvertoval (⬯), \wideangledown (⦦), \wideangleup (⦧), \wp (℘), \wr (≀).
+</p>
+<p>\xbsol (⧹), \xi (ξ), \xsol (⧸), \yen (¥), \zeta (ζ), \zpipe (⨠), 
+</p>
+<p>IF ANYBODY WILL CHECK WHETHER ALL NAMES CORRESPOND TO RIGHT TEX SYMBOLS I SHALL APPRECIATE IT GREATLY. 
+</p>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_11.html b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_11.html
new file mode 100644
index 0000000..c1e2f20
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_11.html
@@ -0,0 +1,542 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: B. GNU Free Documentation License</title>
+
+<meta name="description" content="MathGL 1.11: B. GNU Free Documentation License">
+<meta name="keywords" content="MathGL 1.11: B. GNU Free Documentation License">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Copying-This-Manual"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="GNU-Free-Documentation-License"></a>
+<h1 class="appendix">B. GNU Free Documentation License</h1>
+<p align="center"> Version 1.2, November 2002
+</p>
+
+<table><tr><td>&nbsp;</td><td><pre class="display">Copyright &copy; 2000,2001,2002 Free Software Foundation, Inc.
+51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+</pre></td></tr></table>
+
+<ol>
+<li>
+PREAMBLE
+
+<p>The purpose of this License is to make a manual, textbook, or other
+functional and useful document <em>free</em> in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+</p>
+<p>This License is a kind of &ldquo;copyleft&rdquo;, which means that derivative
+works of the document must themselves be free in the same sense.  It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+</p>
+<p>We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does.  But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book.  We recommend this License
+principally for works whose purpose is instruction or reference.
+</p>
+</li><li>
+APPLICABILITY AND DEFINITIONS
+
+<p>This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License.  Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein.  The &ldquo;Document&rdquo;, below,
+refers to any such manual or work.  Any member of the public is a
+licensee, and is addressed as &ldquo;you&rdquo;.  You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+</p>
+<p>A &ldquo;Modified Version&rdquo; of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+</p>
+<p>A &ldquo;Secondary Section&rdquo; is a named appendix or a front-matter section
+of the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document&rsquo;s overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject.  (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.)  The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+</p>
+<p>The &ldquo;Invariant Sections&rdquo; are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License.  If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant.  The Document may contain zero
+Invariant Sections.  If the Document does not identify any Invariant
+Sections then there are none.
+</p>
+<p>The &ldquo;Cover Texts&rdquo; are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.  A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+</p>
+<p>A &ldquo;Transparent&rdquo; copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters.  A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text.  A copy that is not &ldquo;Transparent&rdquo; is called &ldquo;Opaque&rdquo;.
+</p>
+<p>Examples of suitable formats for Transparent copies include plain
+<small>ASCII</small> without markup, Texinfo input format, LaTeX input
+format, <acronym>SGML</acronym> or <acronym>XML</acronym> using a publicly available
+<acronym>DTD</acronym>, and standard-conforming simple <acronym>HTML</acronym>,
+PostScript or <acronym>PDF</acronym> designed for human modification.  Examples
+of transparent image formats include <acronym>PNG</acronym>, <acronym>XCF</acronym> and
+<acronym>JPG</acronym>.  Opaque formats include proprietary formats that can be
+read and edited only by proprietary word processors, <acronym>SGML</acronym> or
+<acronym>XML</acronym> for which the <acronym>DTD</acronym> and/or processing tools are
+not generally available, and the machine-generated <acronym>HTML</acronym>,
+PostScript or <acronym>PDF</acronym> produced by some word processors for
+output purposes only.
+</p>
+<p>The &ldquo;Title Page&rdquo; means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page.  For works in
+formats which do not have any title page as such, &ldquo;Title Page&rdquo; means
+the text near the most prominent appearance of the work&rsquo;s title,
+preceding the beginning of the body of the text.
+</p>
+<p>A section &ldquo;Entitled XYZ&rdquo; means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language.  (Here XYZ stands for a
+specific section name mentioned below, such as &ldquo;Acknowledgements&rdquo;,
+&ldquo;Dedications&rdquo;, &ldquo;Endorsements&rdquo;, or &ldquo;History&rdquo;.)  To &ldquo;Preserve the Title&rdquo;
+of such a section when you modify the Document means that it remains a
+section &ldquo;Entitled XYZ&rdquo; according to this definition.
+</p>
+<p>The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document.  These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+</p>
+</li><li>
+VERBATIM COPYING
+
+<p>You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License.  You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute.  However, you may accept
+compensation in exchange for copies.  If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+</p>
+<p>You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+</p>
+</li><li>
+COPYING IN QUANTITY
+
+<p>If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document&rsquo;s license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover.  Both covers must also clearly and legibly identify
+you as the publisher of these copies.  The front cover must present
+the full title with all words of the title equally prominent and
+visible.  You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+</p>
+<p>If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+</p>
+<p>If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+</p>
+<p>It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+</p>
+</li><li>
+MODIFICATIONS
+
+<p>You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it.  In addition, you must do these things in the Modified Version:
+</p>
+<ol>
+<li>
+Use in the Title Page (and on the covers, if any) a title distinct
+from that of the Document, and from those of previous versions
+(which should, if there were any, be listed in the History section
+of the Document).  You may use the same title as a previous version
+if the original publisher of that version gives permission.
+
+</li><li>
+List on the Title Page, as authors, one or more persons or entities
+responsible for authorship of the modifications in the Modified
+Version, together with at least five of the principal authors of the
+Document (all of its principal authors, if it has fewer than five),
+unless they release you from this requirement.
+
+</li><li>
+State on the Title page the name of the publisher of the
+Modified Version, as the publisher.
+
+</li><li>
+Preserve all the copyright notices of the Document.
+
+</li><li>
+Add an appropriate copyright notice for your modifications
+adjacent to the other copyright notices.
+
+</li><li>
+Include, immediately after the copyright notices, a license notice
+giving the public permission to use the Modified Version under the
+terms of this License, in the form shown in the Addendum below.
+
+</li><li>
+Preserve in that license notice the full lists of Invariant Sections
+and required Cover Texts given in the Document&rsquo;s license notice.
+
+</li><li>
+Include an unaltered copy of this License.
+
+</li><li>
+Preserve the section Entitled &ldquo;History&rdquo;, Preserve its Title, and add
+to it an item stating at least the title, year, new authors, and
+publisher of the Modified Version as given on the Title Page.  If
+there is no section Entitled &ldquo;History&rdquo; in the Document, create one
+stating the title, year, authors, and publisher of the Document as
+given on its Title Page, then add an item describing the Modified
+Version as stated in the previous sentence.
+
+</li><li>
+Preserve the network location, if any, given in the Document for
+public access to a Transparent copy of the Document, and likewise
+the network locations given in the Document for previous versions
+it was based on.  These may be placed in the &ldquo;History&rdquo; section.
+You may omit a network location for a work that was published at
+least four years before the Document itself, or if the original
+publisher of the version it refers to gives permission.
+
+</li><li>
+For any section Entitled &ldquo;Acknowledgements&rdquo; or &ldquo;Dedications&rdquo;, Preserve
+the Title of the section, and preserve in the section all the
+substance and tone of each of the contributor acknowledgements and/or
+dedications given therein.
+
+</li><li>
+Preserve all the Invariant Sections of the Document,
+unaltered in their text and in their titles.  Section numbers
+or the equivalent are not considered part of the section titles.
+
+</li><li>
+Delete any section Entitled &ldquo;Endorsements&rdquo;.  Such a section
+may not be included in the Modified Version.
+
+</li><li>
+Do not retitle any existing section to be Entitled &ldquo;Endorsements&rdquo; or
+to conflict in title with any Invariant Section.
+
+</li><li>
+Preserve any Warranty Disclaimers.
+</li></ol>
+
+<p>If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant.  To do this, add their titles to the
+list of Invariant Sections in the Modified Version&rsquo;s license notice.
+These titles must be distinct from any other section titles.
+</p>
+<p>You may add a section Entitled &ldquo;Endorsements&rdquo;, provided it contains
+nothing but endorsements of your Modified Version by various
+parties&mdash;for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+</p>
+<p>You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version.  Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity.  If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+</p>
+<p>The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+</p>
+</li><li>
+COMBINING DOCUMENTS
+
+<p>You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+</p>
+<p>The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy.  If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+</p>
+<p>In the combination, you must combine any sections Entitled &ldquo;History&rdquo;
+in the various original documents, forming one section Entitled
+&ldquo;History&rdquo;; likewise combine any sections Entitled &ldquo;Acknowledgements&rdquo;,
+and any sections Entitled &ldquo;Dedications&rdquo;.  You must delete all
+sections Entitled &ldquo;Endorsements.&rdquo;
+</p>
+</li><li>
+COLLECTIONS OF DOCUMENTS
+
+<p>You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+</p>
+<p>You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+</p>
+</li><li>
+AGGREGATION WITH INDEPENDENT WORKS
+
+<p>A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an &ldquo;aggregate&rdquo; if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation&rsquo;s users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+</p>
+<p>If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document&rsquo;s Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+</p>
+</li><li>
+TRANSLATION
+
+<p>Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections.  You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers.  In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+</p>
+<p>If a section in the Document is Entitled &ldquo;Acknowledgements&rdquo;,
+&ldquo;Dedications&rdquo;, or &ldquo;History&rdquo;, the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+</p>
+</li><li>
+TERMINATION
+
+<p>You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License.  Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License.  However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+</p>
+</li><li>
+FUTURE REVISIONS OF THIS LICENSE
+
+<p>The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time.  Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.  See
+<a href="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</a>.
+</p>
+<p>Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License &ldquo;or any later version&rdquo; applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation.  If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+</p></li></ol>
+
+
+<a name="ADDENDUM_003a-How-to-use-this-License-for-your-documents"></a>
+<h2 class="heading">ADDENDUM: How to use this License for your documents</h2>
+
+<p>To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample">  Copyright (C)  <var>year</var>  <var>your name</var>.
+  Permission is granted to copy, distribute and/or modify this document
+  under the terms of the GNU Free Documentation License, Version 1.2
+  or any later version published by the Free Software Foundation;
+  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+  Texts.  A copy of the license is included in the section entitled ``GNU
+  Free Documentation License''.
+</pre></td></tr></table>
+
+<p>If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the &ldquo;with&hellip;Texts.&rdquo; line with this:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample">    with the Invariant Sections being <var>list their titles</var>, with
+    the Front-Cover Texts being <var>list</var>, and with the Back-Cover Texts
+    being <var>list</var>.
+</pre></td></tr></table>
+
+<p>If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+</p>
+<p>If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
+</p>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_12.html b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_12.html
new file mode 100644
index 0000000..f6d83d6
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_12.html
@@ -0,0 +1,375 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: Index</title>
+
+<meta name="description" content="MathGL 1.11: Index">
+<meta name="keywords" content="MathGL 1.11: Index">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Index"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_13.html#index_split-0" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Index-1"></a>
+<h1 class="unnumbered">Index</h1>
+
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Index-1_cp_letter-A">A</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-AddLegend">AddLegend</a></td><td valign="top"><a href="mathgl_en_3.html#Legend">3.8 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-addlegend">addlegend</a></td><td valign="top"><a href="mathgl_en_8.html#Legend-_0028MGL_0029">8.8 Legend (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-AddLegend-3">AddLegend</a></td><td valign="top"><a href="mathgl_en_9.html#Legend-sample">9.6.1 Legend sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-AddLight">AddLight</a></td><td valign="top"><a href="mathgl_en_3.html#Lighting">3.1.2 Lighting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-addto">addto</a></td><td valign="top"><a href="mathgl_en_8.html#Operators-_0028MGL_0029">8.22 Operators (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-adjust">adjust</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-AdjustTicks">AdjustTicks</a></td><td valign="top"><a href="mathgl_en_3.html#Ticks">3.2.3 Ticks</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Alpha">Alpha</a></td><td valign="top"><a href="mathgl_en_3.html#Transparency">3.1.1 Transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-alpha">alpha</a></td><td valign="top"><a href="mathgl_en_8.html#Transparency-_0028MGL_0029">8.1.1 Transparency (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Alpha-2">Alpha</a></td><td valign="top"><a href="mathgl_en_9.html#Transparent-surface-sample">9.2.2 Transparent surface sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-alpha-2">alpha</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Alpha-3">Alpha</a></td><td valign="top"><a href="mathgl_en_9.html#g_t2D-plot-sample">9.5.2 2D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Alpha-4">Alpha</a></td><td valign="top"><a href="mathgl_en_9.html#g_t3D-plot-sample">9.5.3 3D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-alphadef">alphadef</a></td><td valign="top"><a href="mathgl_en_8.html#Transparency-_0028MGL_0029">8.1.1 Transparency (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-alphadef-2">alphadef</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ambient">ambient</a></td><td valign="top"><a href="mathgl_en_8.html#Lighting-_0028MGL_0029">8.1.2 Lighting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Ambient">Ambient</a></td><td valign="top"><a href="mathgl_en_3.html#Lighting">3.1.2 Lighting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ambient-2">ambient</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-area">area</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Area">Area</a></td><td valign="top"><a href="mathgl_en_3.html#Area">3.9.4 Area</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Area-4">Area</a></td><td valign="top"><a href="mathgl_en_9.html#Area-sample">9.1.4 Area sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Area-5">Area</a></td><td valign="top"><a href="mathgl_en_9.html#Area-gradient-sample">9.1.5 Area with gradient filling sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_1.html#index-Arrows">Arrows</a></td><td valign="top"><a href="mathgl_en_1.html#Line-styles">1.4.2 Line styles</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-arrowsize">arrowsize</a></td><td valign="top"><a href="mathgl_en_8.html#Default-sizes-_0028MGL_0029">8.1.4 Default sizes (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Aspect">Aspect</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-aspect">aspect</a></td><td valign="top"><a href="mathgl_en_8.html#Transformation-matrix-_0028MGL_0029">8.3 Transformation matrix (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-AutoOrg">AutoOrg</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Axial">Axial</a></td><td valign="top"><a href="mathgl_en_3.html#Axial">3.10.11 Axial</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-axial">axial</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Axial-5">Axial</a></td><td valign="top"><a href="mathgl_en_9.html#Axial-sample">9.2.14 Axial sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Axial-6">Axial</a></td><td valign="top"><a href="mathgl_en_9.html#Adding-mesh-sample">9.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-axialdir">axialdir</a></td><td valign="top"><a href="mathgl_en_8.html#Other-settings-_0028MGL_0029">8.1.7 Other settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-axis">axis</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Axis">Axis</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Axis-2">Axis</a></td><td valign="top"><a href="mathgl_en_3.html#Axis-and-Colorbar">3.7 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-axis-5">axis</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Axis-4">Axis</a></td><td valign="top"><a href="mathgl_en_9.html#Pie-chart-sample">9.1.23 Pie chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Axis-5">Axis</a></td><td valign="top"><a href="mathgl_en_9.html#Ring-chart-sample">9.1.24 Ring chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Axis-6">Axis</a></td><td valign="top"><a href="mathgl_en_9.html#Dens3-sample">9.3.4 Dens3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Axis-7">Axis</a></td><td valign="top"><a href="mathgl_en_9.html#Curvelinear-coorinates-sample">9.7.1 Curvelinear coorinates sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Axis-8">Axis</a></td><td valign="top"><a href="mathgl_en_9.html#g_t2_002daxes-sample">9.7.2 2-axes sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Axis-9">Axis</a></td><td valign="top"><a href="mathgl_en_9.html#Semi_002dlog-sample">9.7.3 Semi-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Axis-10">Axis</a></td><td valign="top"><a href="mathgl_en_9.html#Log_002dlog-sample">9.7.4 Log-log sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Index-1_cp_letter-B">B</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ball">ball</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Ball">Ball</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-barh">barh</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Barh">Barh</a></td><td valign="top"><a href="mathgl_en_3.html#Barh">3.9.8 Barh</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Barh-3">Barh</a></td><td valign="top"><a href="mathgl_en_9.html#Barh-sample">9.1.10 Barh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-bars">bars</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Bars">Bars</a></td><td valign="top"><a href="mathgl_en_3.html#Bars">3.9.7 Bars</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Bars-4">Bars</a></td><td valign="top"><a href="mathgl_en_9.html#Bars-sample">9.1.6 Bars sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Bars-5">Bars</a></td><td valign="top"><a href="mathgl_en_9.html#Bars-2-colors-sample">9.1.7 Bars 2 colors sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Bars-6">Bars</a></td><td valign="top"><a href="mathgl_en_9.html#Bars-above-sample">9.1.8 Bars above sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Bars-7">Bars</a></td><td valign="top"><a href="mathgl_en_9.html#Bars-fall-sample">9.1.9 Bars fall sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Bars-8">Bars</a></td><td valign="top"><a href="mathgl_en_9.html#g_t1D-plot-sample">9.5.1 1D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-barwidth">barwidth</a></td><td valign="top"><a href="mathgl_en_8.html#Default-sizes-_0028MGL_0029">8.1.4 Default sizes (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Beam">Beam</a></td><td valign="top"><a href="mathgl_en_3.html#Beam">3.11.7 Beam</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-beam">beam</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Belt">Belt</a></td><td valign="top"><a href="mathgl_en_3.html#Belt">3.10.3 Belt</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-belt">belt</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Belt-3">Belt</a></td><td valign="top"><a href="mathgl_en_9.html#Belt-sample">9.2.7 Belt sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Box">Box</a></td><td valign="top"><a href="mathgl_en_3.html#Axis-and-Colorbar">3.7 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-box">box</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-BoxPlot">BoxPlot</a></td><td valign="top"><a href="mathgl_en_3.html#BoxPlot">3.9.16 BoxPlot</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-boxplot">boxplot</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-BoxPlot-3">BoxPlot</a></td><td valign="top"><a href="mathgl_en_9.html#BoxPlot-sample">9.1.16 BoxPlot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-boxs">boxs</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Boxs">Boxs</a></td><td valign="top"><a href="mathgl_en_3.html#Boxs">3.10.5 Boxs</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Boxs-3">Boxs</a></td><td valign="top"><a href="mathgl_en_9.html#Boxs-sample">9.2.9 Boxs sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Index-1_cp_letter-C">C</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-call">call</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-caxis">caxis</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-CAxis">CAxis</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-chart">chart</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Chart">Chart</a></td><td valign="top"><a href="mathgl_en_3.html#Chart">3.9.9 Chart</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Chart-2">Chart</a></td><td valign="top"><a href="mathgl_en_9.html#Chart-sample">9.1.22 Chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Chart-3">Chart</a></td><td valign="top"><a href="mathgl_en_9.html#Pie-chart-sample">9.1.23 Pie chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Chart-4">Chart</a></td><td valign="top"><a href="mathgl_en_9.html#Ring-chart-sample">9.1.24 Ring chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-chdir">chdir</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ClearLegend">ClearLegend</a></td><td valign="top"><a href="mathgl_en_3.html#Legend">3.8 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-clearlegend">clearlegend</a></td><td valign="top"><a href="mathgl_en_8.html#Legend-_0028MGL_0029">8.8 Legend (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-clf">clf</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Clf">Clf</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-cloud">cloud</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Cloud-2">Cloud</a></td><td valign="top"><a href="mathgl_en_9.html#Cloud-sample">9.3.2 Cloud sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-CloudP">CloudP</a></td><td valign="top"><a href="mathgl_en_3.html#Cloud">3.11.6 Cloud</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-CloudP-3">CloudP</a></td><td valign="top"><a href="mathgl_en_9.html#CloudP-sample">9.3.3 CloudP sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-CloudQ">CloudQ</a></td><td valign="top"><a href="mathgl_en_3.html#Cloud">3.11.6 Cloud</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Cmax">Cmax</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Cmin">Cmin</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_1.html#index-Color-scheme">Color scheme</a></td><td valign="top"><a href="mathgl_en_1.html#Color-scheme">1.4.3 Color scheme</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-colorbar">colorbar</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Colorbar">Colorbar</a></td><td valign="top"><a href="mathgl_en_3.html#Axis-and-Colorbar">3.7 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Colorbar-6">Colorbar</a></td><td valign="top"><a href="mathgl_en_9.html#Dens-sample">9.2.10 Dens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Colorbar-7">Colorbar</a></td><td valign="top"><a href="mathgl_en_9.html#Color-schemes-sample">9.5.10 Color schemes sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Column">Column</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ColumnPlot">ColumnPlot</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-columnplot">columnplot</a></td><td valign="top"><a href="mathgl_en_8.html#Transformation-matrix-_0028MGL_0029">8.3 Transformation matrix (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-ColumnPlot-2">ColumnPlot</a></td><td valign="top"><a href="mathgl_en_9.html#ColumnPlot-sample">9.7.13 ColumnPlot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-combine">combine</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Combine">Combine</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Cone">Cone</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-cone">cone</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Cont">Cont</a></td><td valign="top"><a href="mathgl_en_3.html#Cont">3.10.8 Cont</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-cont">cont</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Cont-5">Cont</a></td><td valign="top"><a href="mathgl_en_9.html#Cont-sample">9.2.11 Cont sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Cont-6">Cont</a></td><td valign="top"><a href="mathgl_en_9.html#Adding-mesh-sample">9.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Cont-7">Cont</a></td><td valign="top"><a href="mathgl_en_9.html#Surf-_0026-Cont-sample">9.6.3 Surf &amp; Cont sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Cont-8">Cont</a></td><td valign="top"><a href="mathgl_en_9.html#Cont-with-labels-sample">9.6.7 Cont with labels sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Cont3">Cont3</a></td><td valign="top"><a href="mathgl_en_3.html#Cont3">3.11.3 Cont3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-cont3">cont3</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Cont3-5">Cont3</a></td><td valign="top"><a href="mathgl_en_9.html#Cont3-sample">9.3.5 Cont3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContA">ContA</a></td><td valign="top"><a href="mathgl_en_3.html#Cont3">3.11.3 Cont3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-conta">conta</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-contd">contd</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContD">ContD</a></td><td valign="top"><a href="mathgl_en_3.html#ContD">3.10.10 ContD</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-ContD-5">ContD</a></td><td valign="top"><a href="mathgl_en_9.html#ContD-sample">9.2.13 ContD sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContF">ContF</a></td><td valign="top"><a href="mathgl_en_3.html#ContF">3.10.9 ContF</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-contf">contf</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-ContF-5">ContF</a></td><td valign="top"><a href="mathgl_en_9.html#ContF-sample">9.2.12 ContF sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContF3">ContF3</a></td><td valign="top"><a href="mathgl_en_3.html#ContF3">3.11.4 ContF3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-contf3">contf3</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-ContF3-5">ContF3</a></td><td valign="top"><a href="mathgl_en_9.html#ContF3-sample">9.3.6 ContF3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-ContF3-6">ContF3</a></td><td valign="top"><a href="mathgl_en_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-contfa">contfa</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContFA">ContFA</a></td><td valign="top"><a href="mathgl_en_3.html#ContF3">3.11.4 ContF3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContFX">ContFX</a></td><td valign="top"><a href="mathgl_en_3.html#ContFXYZ">3.14.3 ContFXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-contfx">contfx</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-contfy">contfy</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContFY">ContFY</a></td><td valign="top"><a href="mathgl_en_3.html#ContFXYZ">3.14.3 ContFXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-contfz">contfz</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContFZ">ContFZ</a></td><td valign="top"><a href="mathgl_en_3.html#ContFXYZ">3.14.3 ContFXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContX">ContX</a></td><td valign="top"><a href="mathgl_en_3.html#ContXYZ">3.14.2 ContXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-contx">contx</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-ContX-3">ContX</a></td><td valign="top"><a href="mathgl_en_9.html#Cont-projection-sample">9.3.7 Cont projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContY">ContY</a></td><td valign="top"><a href="mathgl_en_3.html#ContXYZ">3.14.2 ContXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-conty">conty</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-ContY-3">ContY</a></td><td valign="top"><a href="mathgl_en_9.html#Cont-projection-sample">9.3.7 Cont projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-contz">contz</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContZ">ContZ</a></td><td valign="top"><a href="mathgl_en_3.html#ContXYZ">3.14.2 ContXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-ContZ-3">ContZ</a></td><td valign="top"><a href="mathgl_en_9.html#Cont-projection-sample">9.3.7 Cont projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-copy">copy</a></td><td valign="top"><a href="mathgl_en_8.html#Data-create-_0028MGL_0029">8.16 Data create (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-CopyFont">CopyFont</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-cosfft">cosfft</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-CosFFT">CosFFT</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-crange">crange</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-crange-3">crange</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Crop">Crop</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-crop">crop</a></td><td valign="top"><a href="mathgl_en_8.html#Rearrange-data-_0028MGL_0029">8.18 Rearrange data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-crust">crust</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Crust">Crust</a></td><td valign="top"><a href="mathgl_en_3.html#Crust">3.14.5 Crust</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Crust-3">Crust</a></td><td valign="top"><a href="mathgl_en_9.html#Crust-sample">9.4.19 Crust sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ctick">ctick</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-cumsum">cumsum</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-CumSum">CumSum</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Curve">Curve</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-curve">curve</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-cut">cut</a></td><td valign="top"><a href="mathgl_en_8.html#Cutting-_0028MGL_0029">8.1.6 Cutting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-cut-4">cut</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-CutMax">CutMax</a></td><td valign="top"><a href="mathgl_en_9.html#CutMinMax-sample">9.3.9 CutMinMax sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-CutMax-1">CutMax</a></td><td valign="top"><a href="mathgl_en_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-CutMin">CutMin</a></td><td valign="top"><a href="mathgl_en_9.html#CutMinMax-sample">9.3.9 CutMinMax sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-CutMin-1">CutMin</a></td><td valign="top"><a href="mathgl_en_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-CutOff">CutOff</a></td><td valign="top"><a href="mathgl_en_3.html#Cutting">3.1.6 Cutting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-CutOff-2">CutOff</a></td><td valign="top"><a href="mathgl_en_9.html#CutOff-sample">9.3.11 CutOff sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_13.html b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_13.html
new file mode 100644
index 0000000..c98e85e
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_13.html
@@ -0,0 +1,316 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: Index: D &ndash; F</title>
+
+<meta name="description" content="MathGL 1.11: Index: D &ndash; F">
+<meta name="keywords" content="MathGL 1.11: Index: D &ndash; F">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-0"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_14.html#index_split-1" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Index: D &ndash; F</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_en_12.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-D">D</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-defchr">defchr</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-define">define</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-defnum">defnum</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-defpal">defpal</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Delete">Delete</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-delete">delete</a></td><td valign="top"><a href="mathgl_en_8.html#Rearrange-data-_0028MGL_0029">8.18 Rearrange data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-DeleteColumns">DeleteColumns</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-DeleteRows">DeleteRows</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-DeleteSlices">DeleteSlices</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-dens">dens</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Dens">Dens</a></td><td valign="top"><a href="mathgl_en_3.html#Dens">3.10.7 Dens</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Dens-3">Dens</a></td><td valign="top"><a href="mathgl_en_9.html#Dens-sample">9.2.10 Dens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Dens-4">Dens</a></td><td valign="top"><a href="mathgl_en_9.html#g_t2D-plot-sample">9.5.2 2D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Dens-5">Dens</a></td><td valign="top"><a href="mathgl_en_9.html#g_t3D-plot-sample">9.5.3 3D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Dens-6">Dens</a></td><td valign="top"><a href="mathgl_en_9.html#Adding-mesh-sample">9.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Dens-7">Dens</a></td><td valign="top"><a href="mathgl_en_9.html#Flow-_0026-Dens-sample">9.6.4 Flow &amp; Dens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-dens3">dens3</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Dens3">Dens3</a></td><td valign="top"><a href="mathgl_en_3.html#Dens3">3.11.2 Dens3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Dens3-3">Dens3</a></td><td valign="top"><a href="mathgl_en_9.html#Dens3-sample">9.3.4 Dens3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-DensA">DensA</a></td><td valign="top"><a href="mathgl_en_3.html#Dens3">3.11.2 Dens3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-densa">densa</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-DensX">DensX</a></td><td valign="top"><a href="mathgl_en_3.html#DensXYZ">3.14.1 DensXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-densx">densx</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-DensX-2">DensX</a></td><td valign="top"><a href="mathgl_en_9.html#Dens-projection-sample">9.3.8 Dens projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-densy">densy</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-DensY">DensY</a></td><td valign="top"><a href="mathgl_en_3.html#DensXYZ">3.14.1 DensXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-DensY-2">DensY</a></td><td valign="top"><a href="mathgl_en_9.html#Dens-projection-sample">9.3.8 Dens projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-densz">densz</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-DensZ">DensZ</a></td><td valign="top"><a href="mathgl_en_3.html#DensXYZ">3.14.1 DensXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-DensZ-2">DensZ</a></td><td valign="top"><a href="mathgl_en_9.html#Dens-projection-sample">9.3.8 Dens projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Dew">Dew</a></td><td valign="top"><a href="mathgl_en_3.html#Dew">3.13.5 Dew</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-dew">dew</a></td><td valign="top"><a href="mathgl_en_8.html#Vector-fields-_0028MGL_0029">8.13 Vector fields (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Dew-3">Dew</a></td><td valign="top"><a href="mathgl_en_9.html#Dew-sample">9.4.11 Dew sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-diff">diff</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Diff">Diff</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-diff2">diff2</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Diff2">Diff2</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-divto">divto</a></td><td valign="top"><a href="mathgl_en_8.html#Operators-_0028MGL_0029">8.22 Operators (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-dots">dots</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Dots">Dots</a></td><td valign="top"><a href="mathgl_en_3.html#Dots">3.14.4 Dots</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Dots-4">Dots</a></td><td valign="top"><a href="mathgl_en_9.html#Dots-sample">9.4.20 Dots sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-drop">drop</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Drop">Drop</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Drop-4">Drop</a></td><td valign="top"><a href="mathgl_en_9.html#Drops-sample">9.6.10 Drops sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Drop-5">Drop</a></td><td valign="top"><a href="mathgl_en_9.html#Molecules-drawing-sample">9.6.11 Molecules drawing sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-E">E</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-else">else</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-elseif">elseif</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-EndFrame">EndFrame</a></td><td valign="top"><a href="mathgl_en_3.html#Frames_002fAnimation">3.17 Frames/Animation</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-EndFrame-2">EndFrame</a></td><td valign="top"><a href="mathgl_en_3.html#IDTF-functions">3.18 IDTF functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-endif">endif</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Envelop">Envelop</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-envelop">envelop</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Envelop-2">Envelop</a></td><td valign="top"><a href="mathgl_en_9.html#Envelop-sample">9.7.6 Envelop sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Error">Error</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-error">error</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Error-2">Error</a></td><td valign="top"><a href="mathgl_en_3.html#Error">3.9.15 Error</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Error-6">Error</a></td><td valign="top"><a href="mathgl_en_9.html#Error-sample">9.1.15 Error sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-evaluate">evaluate</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Evaluate">Evaluate</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-export">export</a></td><td valign="top"><a href="mathgl_en_8.html#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Export">Export</a></td><td valign="top"><a href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-extend">extend</a></td><td valign="top"><a href="mathgl_en_8.html#Rearrange-data-_0028MGL_0029">8.18 Rearrange data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Extend">Extend</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-F">F</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Face">Face</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-facex">facex</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-FaceX">FaceX</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-facey">facey</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-FaceY">FaceY</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-FaceZ">FaceZ</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-facez">facez</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Fall">Fall</a></td><td valign="top"><a href="mathgl_en_3.html#Fall">3.10.2 Fall</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fall">fall</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Fall-3">Fall</a></td><td valign="top"><a href="mathgl_en_9.html#Fall-sample">9.2.6 Fall sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fgets">fgets</a></td><td valign="top"><a href="mathgl_en_8.html#Text-printing-_0028MGL_0029">8.6 Text printing (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Fill">Fill</a></td><td valign="top"><a href="mathgl_en_6.html#Fill">6.3 Fill</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fill">fill</a></td><td valign="top"><a href="mathgl_en_8.html#Data-filling-_0028MGL_0029">8.17 Data filling (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fill-1">fill</a></td><td valign="top"><a href="mathgl_en_8.html#Data-filling-_0028MGL_0029">8.17 Data filling (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Find">Find</a></td><td valign="top"><a href="mathgl_en_6.html#Informational-functions">6.9 Informational functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-FindAny">FindAny</a></td><td valign="top"><a href="mathgl_en_6.html#Informational-functions">6.9 Informational functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Finish">Finish</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fit">fit</a></td><td valign="top"><a href="mathgl_en_8.html#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Fit">Fit</a></td><td valign="top"><a href="mathgl_en_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Fit-9">Fit</a></td><td valign="top"><a href="mathgl_en_9.html#Fitting-sample">9.7.5 Fitting sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Fit2">Fit2</a></td><td valign="top"><a href="mathgl_en_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Fit3">Fit3</a></td><td valign="top"><a href="mathgl_en_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-FitPnts">FitPnts</a></td><td valign="top"><a href="mathgl_en_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fits">fits</a></td><td valign="top"><a href="mathgl_en_8.html#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-FitS">FitS</a></td><td valign="top"><a href="mathgl_en_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Flow">Flow</a></td><td valign="top"><a href="mathgl_en_3.html#Flow">3.13.6 Flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-flow">flow</a></td><td valign="top"><a href="mathgl_en_8.html#Vector-fields-_0028MGL_0029">8.13 Vector fields (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Flow-5">Flow</a></td><td valign="top"><a href="mathgl_en_9.html#Flow-sample">9.4.9 Flow sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Flow-6">Flow</a></td><td valign="top"><a href="mathgl_en_9.html#Flow-3D-sample">9.4.17 Flow 3D sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Flow-7">Flow</a></td><td valign="top"><a href="mathgl_en_9.html#Flow-_0026-Dens-sample">9.6.4 Flow &amp; Dens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-FlowP">FlowP</a></td><td valign="top"><a href="mathgl_en_3.html#FlowP">3.13.7 FlowP</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Flush">Flush</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-Fl_005fMathGL">Fl_MathGL</a></td><td valign="top"><a href="mathgl_en_5.html#Widget-classes">5. Widget classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-Fl_005fMathGL-2">Fl_MathGL</a></td><td valign="top"><a href="mathgl_en_5.html#Fl_005fMathGL-class">5.1 Fl_MathGL class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fog">fog</a></td><td valign="top"><a href="mathgl_en_8.html#Fog-_0028MGL_0029">8.1.3 Fog (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Fog">Fog</a></td><td valign="top"><a href="mathgl_en_3.html#Fog">3.1.3 Fog</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Fog-2">Fog</a></td><td valign="top"><a href="mathgl_en_9.html#Surface-in-fog-sample">9.2.3 Surface in fog sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-font">font</a></td><td valign="top"><a href="mathgl_en_8.html#Other-settings-_0028MGL_0029">8.1.7 Other settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_1.html#index-Font-styles">Font styles</a></td><td valign="top"><a href="mathgl_en_1.html#Font-styles">1.4.4 Font styles</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fontsize">fontsize</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-for">for</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fplot">fplot</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fsurf">fsurf</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-func">func</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_en_12.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_14.html b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_14.html
new file mode 100644
index 0000000..bb0b4c9
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_14.html
@@ -0,0 +1,333 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: Index: G &ndash; M</title>
+
+<meta name="description" content="MathGL 1.11: Index: G &ndash; M">
+<meta name="keywords" content="MathGL 1.11: Index: G &ndash; M">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-1"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_13.html#index_split-0" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_15.html#index_split-2" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Index: G &ndash; M</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_en_12.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-G">G</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-GetFont">GetFont</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-GetNumFrame">GetNumFrame</a></td><td valign="top"><a href="mathgl_en_3.html#Frames_002fAnimation">3.17 Frames/Animation</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-GetNumFrame-2">GetNumFrame</a></td><td valign="top"><a href="mathgl_en_3.html#IDTF-functions">3.18 IDTF functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-GetWarnCode">GetWarnCode</a></td><td valign="top"><a href="mathgl_en_3.html#Error-handling">3.1.9 Error handling</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Glyph">Glyph</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Grad">Grad</a></td><td valign="top"><a href="mathgl_en_3.html#Grad">3.10.12 Grad</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-grad">grad</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Grad-4">Grad</a></td><td valign="top"><a href="mathgl_en_9.html#Grad-sample">9.2.15 Grad sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Grid">Grid</a></td><td valign="top"><a href="mathgl_en_3.html#Axis-and-Colorbar">3.7 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-grid">grid</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Grid-2">Grid</a></td><td valign="top"><a href="mathgl_en_3.html#Grid">3.10.13 Grid</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-grid2">grid2</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-grid3">grid3</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Grid3">Grid3</a></td><td valign="top"><a href="mathgl_en_3.html#Grid3">3.11.5 Grid3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-GridA">GridA</a></td><td valign="top"><a href="mathgl_en_3.html#Grid3">3.11.5 Grid3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-grida">grida</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-H">H</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Hankel">Hankel</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-hankel">hankel</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Hist">Hist</a></td><td valign="top"><a href="mathgl_en_3.html#Data-distributions">3.16 Data distributions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-hist">hist</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Hist-4">Hist</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-I">I</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Identity">Identity</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-idset">idset</a></td><td valign="top"><a href="mathgl_en_8.html#Data-create-_0028MGL_0029">8.16 Data create (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-if">if</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Import">Import</a></td><td valign="top"><a href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-import">import</a></td><td valign="top"><a href="mathgl_en_8.html#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-info">info</a></td><td valign="top"><a href="mathgl_en_8.html#Data-create-_0028MGL_0029">8.16 Data create (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-InPlot">InPlot</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-inplot">inplot</a></td><td valign="top"><a href="mathgl_en_8.html#Transformation-matrix-_0028MGL_0029">8.3 Transformation matrix (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-insert">insert</a></td><td valign="top"><a href="mathgl_en_8.html#Rearrange-data-_0028MGL_0029">8.18 Rearrange data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Insert">Insert</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-InsertColumns">InsertColumns</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-InsertRows">InsertRows</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-InsertSlices">InsertSlices</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Integral">Integral</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-integrate">integrate</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-J">J</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-jacobian">jacobian</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-L">L</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Label-1">Label</a></td><td valign="top"><a href="mathgl_en_3.html#Axis-and-Colorbar">3.7 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Last">Last</a></td><td valign="top"><a href="mathgl_en_6.html#Informational-functions">6.9 Informational functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Legend">Legend</a></td><td valign="top"><a href="mathgl_en_3.html#Legend">3.8 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-legend">legend</a></td><td valign="top"><a href="mathgl_en_8.html#Legend-_0028MGL_0029">8.8 Legend (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Legend-5">Legend</a></td><td valign="top"><a href="mathgl_en_9.html#Legend-sample">9.6.1 Legend sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-legend-3">legend</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-legendbox">legendbox</a></td><td valign="top"><a href="mathgl_en_8.html#Legend-_0028MGL_0029">8.8 Legend (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-legendmarks">legendmarks</a></td><td valign="top"><a href="mathgl_en_8.html#Legend-_0028MGL_0029">8.8 Legend (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-light">light</a></td><td valign="top"><a href="mathgl_en_8.html#Lighting-_0028MGL_0029">8.1.2 Lighting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Light">Light</a></td><td valign="top"><a href="mathgl_en_3.html#Lighting">3.1.2 Lighting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Light-5">Light</a></td><td valign="top"><a href="mathgl_en_9.html#Several-light-sample">9.6.5 Several light sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-line">line</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Line">Line</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Line-3">Line</a></td><td valign="top"><a href="mathgl_en_9.html#Line-styles-sample">9.5.4 Line styles sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Line-4">Line</a></td><td valign="top"><a href="mathgl_en_9.html#Arrow-styles-sample">9.5.5 Arrow styles sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_1.html#index-Line-style">Line style</a></td><td valign="top"><a href="mathgl_en_1.html#Line-styles">1.4.2 Line styles</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Linear">Linear</a></td><td valign="top"><a href="mathgl_en_6.html#Interpolation">6.8 Interpolation</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Linear1">Linear1</a></td><td valign="top"><a href="mathgl_en_6.html#Interpolation">6.8 Interpolation</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-linewidth">linewidth</a></td><td valign="top"><a href="mathgl_en_8.html#Default-sizes-_0028MGL_0029">8.1.4 Default sizes (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-list">list</a></td><td valign="top"><a href="mathgl_en_8.html#Data-create-_0028MGL_0029">8.16 Data create (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-LoadFont">LoadFont</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-M">M</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-map">map</a></td><td valign="top"><a href="mathgl_en_8.html#Dual-plotting-_0028MGL_0029">8.12 Dual plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Map">Map</a></td><td valign="top"><a href="mathgl_en_3.html#Map">3.12.6 Map</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Map-3">Map</a></td><td valign="top"><a href="mathgl_en_9.html#Map-sample">9.4.4 Map sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-mark">mark</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Mark">Mark</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Mark-3">Mark</a></td><td valign="top"><a href="mathgl_en_3.html#Mark">3.9.13 Mark</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Mark-7">Mark</a></td><td valign="top"><a href="mathgl_en_9.html#Mark-sample">9.1.17 Mark sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Mark-8">Mark</a></td><td valign="top"><a href="mathgl_en_9.html#Line-styles-sample">9.5.4 Line styles sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_1.html#index-Mark-style">Mark style</a></td><td valign="top"><a href="mathgl_en_1.html#Line-styles">1.4.2 Line styles</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-marksize">marksize</a></td><td valign="top"><a href="mathgl_en_8.html#Default-sizes-_0028MGL_0029">8.1.4 Default sizes (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-marksize-2">marksize</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_1.html#index-MathGL-overview">MathGL overview</a></td><td valign="top"><a href="mathgl_en_1.html#Overview">1. Overview</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-MathGL-setup">MathGL setup</a></td><td valign="top"><a href="mathgl_en_3.html#Graphics-setup">3.1 Graphics setup</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-max">max</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Max">Max</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Max-1">Max</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Maximal">Maximal</a></td><td valign="top"><a href="mathgl_en_6.html#Informational-functions">6.9 Informational functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-mesh">mesh</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Mesh">Mesh</a></td><td valign="top"><a href="mathgl_en_3.html#Mesh">3.10.1 Mesh</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Mesh-3">Mesh</a></td><td valign="top"><a href="mathgl_en_9.html#Mesh-sample">9.2.5 Mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-meshnum">meshnum</a></td><td valign="top"><a href="mathgl_en_8.html#Other-settings-_0028MGL_0029">8.1.7 Other settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-meshnum-2">meshnum</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Message">Message</a></td><td valign="top"><a href="mathgl_en_3.html#Error-handling">3.1.9 Error handling</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_7.html#index-mglArg">mglArg</a></td><td valign="top"><a href="mathgl_en_7.html#mglArg-class">7.8 mglArg class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_7.html#index-mglColor">mglColor</a></td><td valign="top"><a href="mathgl_en_7.html#mglColor-class">7.4 mglColor class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_7.html#index-mglCommand">mglCommand</a></td><td valign="top"><a href="mathgl_en_7.html#mglCommand-class">7.7 mglCommand class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-mglData">mglData</a></td><td valign="top"><a href="mathgl_en_6.html#Create-and-delete">6.2 Create and delete</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_7.html#index-mglFont">mglFont</a></td><td valign="top"><a href="mathgl_en_7.html#mglFont-class">7.3 mglFont class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_7.html#index-mglFormula">mglFormula</a></td><td valign="top"><a href="mathgl_en_7.html#mglFormula-class">7.2 mglFormula class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-mglGraph">mglGraph</a></td><td valign="top"><a href="mathgl_en_3.html#MathGL-core">3. MathGL core</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_4.html#index-mglGraphAB">mglGraphAB</a></td><td valign="top"><a href="mathgl_en_4.html#Plotter-classes">4. Plotter classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_4.html#index-mglGraphAB-2">mglGraphAB</a></td><td valign="top"><a href="mathgl_en_4.html#mglGraphAB-class">4.1 mglGraphAB class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-mglGraphFLTK">mglGraphFLTK</a></td><td valign="top"><a href="mathgl_en_5.html#Widget-classes">5. Widget classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_4.html#index-mglGraphGL">mglGraphGL</a></td><td valign="top"><a href="mathgl_en_4.html#Plotter-classes">4. Plotter classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-mglGraphGLUT">mglGraphGLUT</a></td><td valign="top"><a href="mathgl_en_5.html#Widget-classes">5. Widget classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_4.html#index-mglGraphIDTF">mglGraphIDTF</a></td><td valign="top"><a href="mathgl_en_4.html#Plotter-classes">4. Plotter classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_4.html#index-mglGraphPS">mglGraphPS</a></td><td valign="top"><a href="mathgl_en_4.html#Plotter-classes">4. Plotter classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-mglGraphQT">mglGraphQT</a></td><td valign="top"><a href="mathgl_en_5.html#Widget-classes">5. Widget classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_4.html#index-mglGraphZB">mglGraphZB</a></td><td valign="top"><a href="mathgl_en_4.html#Plotter-classes">4. Plotter classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_7.html#index-mglParse">mglParse</a></td><td valign="top"><a href="mathgl_en_7.html#mglParse-class">7.1 mglParse class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-mglParse-2">mglParse</a></td><td valign="top"><a href="mathgl_en_9.html#Parser-sample">9.7.11 Parser sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-mglPDE-1">mglPDE</a></td><td valign="top"><a href="mathgl_en_9.html#PDE-sample">9.7.9 PDE sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_7.html#index-mglPoint">mglPoint</a></td><td valign="top"><a href="mathgl_en_7.html#mglPoint-class">7.5 mglPoint class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-mglQO2d-1">mglQO2d</a></td><td valign="top"><a href="mathgl_en_9.html#Beam-tracing-sample">9.7.10 Beam tracing sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-mglRay-1">mglRay</a></td><td valign="top"><a href="mathgl_en_9.html#PDE-sample">9.7.9 PDE sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-mglRay-2">mglRay</a></td><td valign="top"><a href="mathgl_en_9.html#Beam-tracing-sample">9.7.10 Beam tracing sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_7.html#index-mglVar">mglVar</a></td><td valign="top"><a href="mathgl_en_7.html#mglVar-class">7.6 mglVar class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Min">Min</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-min">min</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Min-1">Min</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Minimal">Minimal</a></td><td valign="top"><a href="mathgl_en_6.html#Informational-functions">6.9 Informational functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Mirror">Mirror</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-mirror">mirror</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Modify">Modify</a></td><td valign="top"><a href="mathgl_en_6.html#Fill">6.3 Fill</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-modify">modify</a></td><td valign="top"><a href="mathgl_en_8.html#Data-filling-_0028MGL_0029">8.17 Data filling (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-modify-1">modify</a></td><td valign="top"><a href="mathgl_en_8.html#Data-filling-_0028MGL_0029">8.17 Data filling (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Momentum">Momentum</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-momentum">momentum</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Momentum-2">Momentum</a></td><td valign="top"><a href="mathgl_en_6.html#Informational-functions">6.9 Informational functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-multo">multo</a></td><td valign="top"><a href="mathgl_en_8.html#Operators-_0028MGL_0029">8.22 Operators (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_en_12.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_15.html b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_15.html
new file mode 100644
index 0000000..338a44e
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_15.html
@@ -0,0 +1,420 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: Index: N &ndash; S</title>
+
+<meta name="description" content="MathGL 1.11: Index: N &ndash; S">
+<meta name="keywords" content="MathGL 1.11: Index: N &ndash; S">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-2"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_14.html#index_split-1" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_16.html#index_split-3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Index: N &ndash; S</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_en_12.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-N">N</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-new">new</a></td><td valign="top"><a href="mathgl_en_8.html#Data-create-_0028MGL_0029">8.16 Data create (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-NewFrame">NewFrame</a></td><td valign="top"><a href="mathgl_en_3.html#Frames_002fAnimation">3.17 Frames/Animation</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-NewFrame-2">NewFrame</a></td><td valign="top"><a href="mathgl_en_3.html#IDTF-functions">3.18 IDTF functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-next">next</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-norm">norm</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Norm">Norm</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-NormSl">NormSl</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-normsl">normsl</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-O">O</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-once">once</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Org">Org</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-origin">origin</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-P">P</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-palette">palette</a></td><td valign="top"><a href="mathgl_en_8.html#Other-settings-_0028MGL_0029">8.1.7 Other settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-pde">pde</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-perspective">perspective</a></td><td valign="top"><a href="mathgl_en_8.html#Transformation-matrix-_0028MGL_0029">8.3 Transformation matrix (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Perspective">Perspective</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-pipe">pipe</a></td><td valign="top"><a href="mathgl_en_8.html#Vector-fields-_0028MGL_0029">8.13 Vector fields (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Pipe">Pipe</a></td><td valign="top"><a href="mathgl_en_3.html#Pipe">3.13.8 Pipe</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Pipe-5">Pipe</a></td><td valign="top"><a href="mathgl_en_9.html#Pipe-sample">9.4.10 Pipe sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Pipe-6">Pipe</a></td><td valign="top"><a href="mathgl_en_9.html#Pipe-3D-sample">9.4.18 Pipe 3D sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Plot">Plot</a></td><td valign="top"><a href="mathgl_en_3.html#Plot">3.9.1 Plot</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-plot">plot</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Plot-4">Plot</a></td><td valign="top"><a href="mathgl_en_3.html#Plots-by-formula">3.14.9 Plots by formula</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Plot-7">Plot</a></td><td valign="top"><a href="mathgl_en_9.html#Plot-sample">9.1.1 Plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Plot-8">Plot</a></td><td valign="top"><a href="mathgl_en_9.html#g_t1D-plot-sample">9.5.1 1D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Plot-9">Plot</a></td><td valign="top"><a href="mathgl_en_9.html#Legend-sample">9.6.1 Legend sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Plot-10">Plot</a></td><td valign="top"><a href="mathgl_en_9.html#Semi_002dlog-sample">9.7.3 Semi-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Plot-11">Plot</a></td><td valign="top"><a href="mathgl_en_9.html#Log_002dlog-sample">9.7.4 Log-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-plotfactor">plotfactor</a></td><td valign="top"><a href="mathgl_en_8.html#Zooming-_0028MGL_0029">8.1.5 Zooming (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-PlotId">PlotId</a></td><td valign="top"><a href="mathgl_en_3.html#Other-settings">3.1.10 Other settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Pop">Pop</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-PrintInfo">PrintInfo</a></td><td valign="top"><a href="mathgl_en_6.html#Informational-functions">6.9 Informational functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Push">Push</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-put">put</a></td><td valign="top"><a href="mathgl_en_8.html#Data-filling-_0028MGL_0029">8.17 Data filling (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Puts">Puts</a></td><td valign="top"><a href="mathgl_en_3.html#Text-printing">3.6 Text printing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Puts-5">Puts</a></td><td valign="top"><a href="mathgl_en_9.html#Text-styles-sample">9.5.6 Text styles sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Puts-6">Puts</a></td><td valign="top"><a href="mathgl_en_9.html#TeX-parsing-sample">9.5.7 TeX parsing sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Puts-7">Puts</a></td><td valign="top"><a href="mathgl_en_9.html#Font-faces-sample">9.5.8 Font faces sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-PutsFit">PutsFit</a></td><td valign="top"><a href="mathgl_en_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-putsfit">putsfit</a></td><td valign="top"><a href="mathgl_en_8.html#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-PutsFit-2">PutsFit</a></td><td valign="top"><a href="mathgl_en_9.html#Fitting-sample">9.7.5 Fitting sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Putsw">Putsw</a></td><td valign="top"><a href="mathgl_en_3.html#Text-printing">3.6 Text printing</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-Q">Q</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-QMathGL">QMathGL</a></td><td valign="top"><a href="mathgl_en_5.html#Widget-classes">5. Widget classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-QMathGL-2">QMathGL</a></td><td valign="top"><a href="mathgl_en_5.html#QMathGL-class">5.2 QMathGL class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-qo2d">qo2d</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-quadplot">quadplot</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-QuadPlot">QuadPlot</a></td><td valign="top"><a href="mathgl_en_3.html#QuadPlot">3.14.8 QuadPlot</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-R">R</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Radar">Radar</a></td><td valign="top"><a href="mathgl_en_3.html#Radar">3.9.2 Radar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-radar">radar</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Radar-2">Radar</a></td><td valign="top"><a href="mathgl_en_9.html#Radar-sample">9.1.2 Radar sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ranges">ranges</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ray">ray</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-read">read</a></td><td valign="top"><a href="mathgl_en_8.html#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Read">Read</a></td><td valign="top"><a href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-ReadAll">ReadAll</a></td><td valign="top"><a href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-readall">readall</a></td><td valign="top"><a href="mathgl_en_8.html#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-readhdf">readhdf</a></td><td valign="top"><a href="mathgl_en_8.html#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-ReadHDF">ReadHDF</a></td><td valign="top"><a href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-ReadMat">ReadMat</a></td><td valign="top"><a href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-readmat">readmat</a></td><td valign="top"><a href="mathgl_en_8.html#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-ReadRange">ReadRange</a></td><td valign="top"><a href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Rearrange">Rearrange</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-rearrange">rearrange</a></td><td valign="top"><a href="mathgl_en_8.html#Rearrange-data-_0028MGL_0029">8.18 Rearrange data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-RecalcBorder">RecalcBorder</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-rect">rect</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Region">Region</a></td><td valign="top"><a href="mathgl_en_3.html#Region">3.9.5 Region</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-region">region</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Region-3">Region</a></td><td valign="top"><a href="mathgl_en_9.html#Region-sample">9.1.13 Region sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Region-4">Region</a></td><td valign="top"><a href="mathgl_en_9.html#Region-gradient-sample">9.1.14 Region gradient sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Resize">Resize</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-resize">resize</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-RestoreFont">RestoreFont</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-RestoreM">RestoreM</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-return">return</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Roll">Roll</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-roll">roll</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-rotate">rotate</a></td><td valign="top"><a href="mathgl_en_8.html#Transformation-matrix-_0028MGL_0029">8.3 Transformation matrix (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Rotate">Rotate</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-RotateN">RotateN</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-rotatetext">rotatetext</a></td><td valign="top"><a href="mathgl_en_8.html#Other-settings-_0028MGL_0029">8.1.7 Other settings (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-S">S</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-save">save</a></td><td valign="top"><a href="mathgl_en_8.html#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Save">Save</a></td><td valign="top"><a href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-SaveHDF">SaveHDF</a></td><td valign="top"><a href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-savehdf">savehdf</a></td><td valign="top"><a href="mathgl_en_8.html#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SelectPen">SelectPen</a></td><td valign="top"><a href="mathgl_en_3.html#Palette-and-colors">3.1.8 Pallete and colors</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Set">Set</a></td><td valign="top"><a href="mathgl_en_6.html#Create-and-delete">6.2 Create and delete</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetAlphaDef">SetAlphaDef</a></td><td valign="top"><a href="mathgl_en_3.html#Transparency">3.1.1 Transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetArrowSize">SetArrowSize</a></td><td valign="top"><a href="mathgl_en_3.html#Default-sizes">3.1.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetAutoRanges">SetAutoRanges</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetAxialDir">SetAxialDir</a></td><td valign="top"><a href="mathgl_en_3.html#Other-settings">3.1.10 Other settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetBarWidth">SetBarWidth</a></td><td valign="top"><a href="mathgl_en_3.html#Default-sizes">3.1.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetBaseLineWidth">SetBaseLineWidth</a></td><td valign="top"><a href="mathgl_en_3.html#Default-sizes">3.1.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-SetColumnId">SetColumnId</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetCoor">SetCoor</a></td><td valign="top"><a href="mathgl_en_3.html#Curved-coordinates">3.2.2 Curved coordinates</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetCTT">SetCTT</a></td><td valign="top"><a href="mathgl_en_3.html#Ticks">3.2.3 Ticks</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetCut">SetCut</a></td><td valign="top"><a href="mathgl_en_3.html#Cutting">3.1.6 Cutting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetCutBox">SetCutBox</a></td><td valign="top"><a href="mathgl_en_3.html#Cutting">3.1.6 Cutting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetDrawFace">SetDrawFace</a></td><td valign="top"><a href="mathgl_en_3.html#Other-settings">3.1.10 Other settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetFont">SetFont</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetFontDef">SetFontDef</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetFontSize">SetFontSize</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetFontSizeCM">SetFontSizeCM</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetFontSizeIN">SetFontSizeIN</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetFontSizePT">SetFontSizePT</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetFunc">SetFunc</a></td><td valign="top"><a href="mathgl_en_3.html#Curved-coordinates">3.2.2 Curved coordinates</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetLegendBox">SetLegendBox</a></td><td valign="top"><a href="mathgl_en_3.html#Legend">3.8 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetLegendMarks">SetLegendMarks</a></td><td valign="top"><a href="mathgl_en_3.html#Legend">3.8 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetMarkSize">SetMarkSize</a></td><td valign="top"><a href="mathgl_en_3.html#Default-sizes">3.1.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetMeshNum">SetMeshNum</a></td><td valign="top"><a href="mathgl_en_3.html#Other-settings">3.1.10 Other settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetPalColor">SetPalColor</a></td><td valign="top"><a href="mathgl_en_3.html#Palette-and-colors">3.1.8 Pallete and colors</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetPalette">SetPalette</a></td><td valign="top"><a href="mathgl_en_3.html#Palette-and-colors">3.1.8 Pallete and colors</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetPalNum">SetPalNum</a></td><td valign="top"><a href="mathgl_en_3.html#Palette-and-colors">3.1.8 Pallete and colors</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetPlotFactor">SetPlotFactor</a></td><td valign="top"><a href="mathgl_en_3.html#Zooming">3.1.5 Zooming</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetRanges">SetRanges</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetRotatedText">SetRotatedText</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetScheme">SetScheme</a></td><td valign="top"><a href="mathgl_en_3.html#Palette-and-colors">3.1.8 Pallete and colors</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-setsize">setsize</a></td><td valign="top"><a href="mathgl_en_8.html#Export-to-file-_0028MGL_0029">8.4 Export to file (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetSize">SetSize</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetTickLen">SetTickLen</a></td><td valign="top"><a href="mathgl_en_3.html#Default-sizes">3.1.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetTicks">SetTicks</a></td><td valign="top"><a href="mathgl_en_3.html#Ticks">3.2.3 Ticks</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-SetTicks-2">SetTicks</a></td><td valign="top"><a href="mathgl_en_9.html#Semi_002dlog-sample">9.7.3 Semi-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-SetTicks-3">SetTicks</a></td><td valign="top"><a href="mathgl_en_9.html#Log_002dlog-sample">9.7.4 Log-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetTickStl">SetTickStl</a></td><td valign="top"><a href="mathgl_en_3.html#Default-sizes">3.1.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetTicksVal">SetTicksVal</a></td><td valign="top"><a href="mathgl_en_3.html#Ticks">3.2.3 Ticks</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-SetTicksVal-4">SetTicksVal</a></td><td valign="top"><a href="mathgl_en_9.html#Manual-ticks-sample">9.7.12 Tick values sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetTransparent">SetTransparent</a></td><td valign="top"><a href="mathgl_en_3.html#Transparency">3.1.1 Transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetTranspType">SetTranspType</a></td><td valign="top"><a href="mathgl_en_3.html#Transparency">3.1.1 Transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetTuneTicks">SetTuneTicks</a></td><td valign="top"><a href="mathgl_en_3.html#Ticks">3.2.3 Ticks</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetWarn">SetWarn</a></td><td valign="top"><a href="mathgl_en_3.html#Error-handling">3.1.9 Error handling</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetXTT">SetXTT</a></td><td valign="top"><a href="mathgl_en_3.html#Ticks">3.2.3 Ticks</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetYTT">SetYTT</a></td><td valign="top"><a href="mathgl_en_3.html#Ticks">3.2.3 Ticks</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetZTT">SetZTT</a></td><td valign="top"><a href="mathgl_en_3.html#Ticks">3.2.3 Ticks</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Sew">Sew</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-sew">sew</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Sew-2">Sew</a></td><td valign="top"><a href="mathgl_en_9.html#Sew-sample">9.7.7 Sew sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ShowImage">ShowImage</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SimplePlot">SimplePlot</a></td><td valign="top"><a href="mathgl_en_3.html#SimplePlot">3.14.10 SimplePlot</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-sinfft">sinfft</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-SinFFT">SinFFT</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-smooth">smooth</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Smooth">Smooth</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Sphere">Sphere</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-sphere">sphere</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Sphere-3">Sphere</a></td><td valign="top"><a href="mathgl_en_9.html#Molecules-drawing-sample">9.6.11 Molecules drawing sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Spline">Spline</a></td><td valign="top"><a href="mathgl_en_6.html#Interpolation">6.8 Interpolation</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Spline1">Spline1</a></td><td valign="top"><a href="mathgl_en_6.html#Interpolation">6.8 Interpolation</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Spline5">Spline5</a></td><td valign="top"><a href="mathgl_en_6.html#Interpolation">6.8 Interpolation</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Squeeze">Squeeze</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-squeeze">squeeze</a></td><td valign="top"><a href="mathgl_en_8.html#Rearrange-data-_0028MGL_0029">8.18 Rearrange data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-stem">stem</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Stem">Stem</a></td><td valign="top"><a href="mathgl_en_3.html#Stem">3.9.6 Stem</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Stem-4">Stem</a></td><td valign="top"><a href="mathgl_en_9.html#Stem-sample">9.1.12 Stem sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-step">step</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Step">Step</a></td><td valign="top"><a href="mathgl_en_3.html#Step">3.9.10 Step</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Step-4">Step</a></td><td valign="top"><a href="mathgl_en_9.html#Step-sample">9.1.11 Step sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-stfa">stfa</a></td><td valign="top"><a href="mathgl_en_8.html#Dual-plotting-_0028MGL_0029">8.12 Dual plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-STFA">STFA</a></td><td valign="top"><a href="mathgl_en_3.html#STFA">3.12.7 STFA</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-STFA-3">STFA</a></td><td valign="top"><a href="mathgl_en_9.html#STFA-sample">9.7.8 STFA sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-stfad">stfad</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-StickPlot">StickPlot</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-stickplot">stickplot</a></td><td valign="top"><a href="mathgl_en_8.html#Transformation-matrix-_0028MGL_0029">8.3 Transformation matrix (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-StickPlot-2">StickPlot</a></td><td valign="top"><a href="mathgl_en_9.html#StickPlot-sample">9.7.14 StickPlot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-stop">stop</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-subdata">subdata</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-SubData">SubData</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SubPlot">SubPlot</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-subplot">subplot</a></td><td valign="top"><a href="mathgl_en_8.html#Transformation-matrix-_0028MGL_0029">8.3 Transformation matrix (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-SubPlot-3">SubPlot</a></td><td valign="top"><a href="mathgl_en_9.html#g_t1D-plot-sample">9.5.1 1D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-SubPlot-4">SubPlot</a></td><td valign="top"><a href="mathgl_en_9.html#Adding-mesh-sample">9.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-subto">subto</a></td><td valign="top"><a href="mathgl_en_8.html#Operators-_0028MGL_0029">8.22 Operators (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-sum">sum</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Sum">Sum</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Surf">Surf</a></td><td valign="top"><a href="mathgl_en_3.html#Surf">3.10.4 Surf</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-surf">surf</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Surf-3">Surf</a></td><td valign="top"><a href="mathgl_en_3.html#Plots-by-formula">3.14.9 Plots by formula</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-6">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#Surf-sample">9.2.1 Surf sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-7">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#Transparent-surface-sample">9.2.2 Transparent surface sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-8">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#Surface-in-fog-sample">9.2.3 Surface in fog sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-9">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#Sharp-colors-sample">9.2.4 Sharp colors sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-10">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#g_t2D-plot-sample">9.5.2 2D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-11">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#g_t3D-plot-sample">9.5.3 3D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-12">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#Adding-mesh-sample">9.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-13">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#Surf-_0026-Cont-sample">9.6.3 Surf &amp; Cont sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-14">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#Several-light-sample">9.6.5 Several light sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-15">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#Mirrored-surface-sample">9.6.6 Mirrored surface sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-surf3">surf3</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Surf3">Surf3</a></td><td valign="top"><a href="mathgl_en_3.html#Surf3">3.11.1 Surf3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf3-5">Surf3</a></td><td valign="top"><a href="mathgl_en_9.html#Surf3-sample">9.3.1 Surf3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf3-6">Surf3</a></td><td valign="top"><a href="mathgl_en_9.html#CutMinMax-sample">9.3.9 CutMinMax sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf3-7">Surf3</a></td><td valign="top"><a href="mathgl_en_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf3-8">Surf3</a></td><td valign="top"><a href="mathgl_en_9.html#CutOff-sample">9.3.11 CutOff sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf3-9">Surf3</a></td><td valign="top"><a href="mathgl_en_9.html#Coloring-by-coordinates-sample">9.6.9 Coloring by coordinates sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Surf3A">Surf3A</a></td><td valign="top"><a href="mathgl_en_3.html#Surf3A">3.12.4 Surf3A</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-surf3a">surf3a</a></td><td valign="top"><a href="mathgl_en_8.html#Dual-plotting-_0028MGL_0029">8.12 Dual plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf3A-5">Surf3A</a></td><td valign="top"><a href="mathgl_en_9.html#Surf3A-sample">9.4.13 Surf3A sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Surf3C">Surf3C</a></td><td valign="top"><a href="mathgl_en_3.html#Surf3C">3.12.2 Surf3C</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-surf3c">surf3c</a></td><td valign="top"><a href="mathgl_en_8.html#Dual-plotting-_0028MGL_0029">8.12 Dual plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf3C-5">Surf3C</a></td><td valign="top"><a href="mathgl_en_9.html#Surf3C-sample">9.4.12 Surf3C sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-surfa">surfa</a></td><td valign="top"><a href="mathgl_en_8.html#Dual-plotting-_0028MGL_0029">8.12 Dual plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SurfA">SurfA</a></td><td valign="top"><a href="mathgl_en_3.html#SurfA">3.12.3 SurfA</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-SurfA-3">SurfA</a></td><td valign="top"><a href="mathgl_en_9.html#SurfA-sample">9.4.2 SurfA sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-surfc">surfc</a></td><td valign="top"><a href="mathgl_en_8.html#Dual-plotting-_0028MGL_0029">8.12 Dual plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SurfC">SurfC</a></td><td valign="top"><a href="mathgl_en_3.html#SurfC">3.12.1 SurfC</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-SurfC-3">SurfC</a></td><td valign="top"><a href="mathgl_en_9.html#SurfC-sample">9.4.1 SurfC sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-swap">swap</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Swap">Swap</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_en_12.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_16.html b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_16.html
new file mode 100644
index 0000000..0cb8c91
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_16.html
@@ -0,0 +1,312 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: Index: T &ndash; Z</title>
+
+<meta name="description" content="MathGL 1.11: Index: T &ndash; Z">
+<meta name="keywords" content="MathGL 1.11: Index: T &ndash; Z">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_15.html#index_split-2" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[ &gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Index: T &ndash; Z</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_en_12.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-T">T</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Tens">Tens</a></td><td valign="top"><a href="mathgl_en_3.html#Tens">3.9.3 Tens</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-tens">tens</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Tens-4">Tens</a></td><td valign="top"><a href="mathgl_en_9.html#Tens-sample">9.1.3 Tens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Ternary">Ternary</a></td><td valign="top"><a href="mathgl_en_3.html#Curved-coordinates">3.2.2 Curved coordinates</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ternary">ternary</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Ternary-2">Ternary</a></td><td valign="top"><a href="mathgl_en_9.html#Ternary-plot-sample">9.6.8 Ternary plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Text">Text</a></td><td valign="top"><a href="mathgl_en_3.html#Text-printing">3.6 Text printing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-text">text</a></td><td valign="top"><a href="mathgl_en_8.html#Text-printing-_0028MGL_0029">8.6 Text printing (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Text-9">Text</a></td><td valign="top"><a href="mathgl_en_9.html#Text-sample">9.1.20 Text sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-textmark">textmark</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-TextMark">TextMark</a></td><td valign="top"><a href="mathgl_en_3.html#TextMark">3.9.14 TextMark</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-TextMark-9">TextMark</a></td><td valign="top"><a href="mathgl_en_9.html#TextMark-sample">9.1.18 TextMark sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_1.html#index-Textual-formulas">Textual formulas</a></td><td valign="top"><a href="mathgl_en_1.html#Textual-formulas">1.4.5 Textual formulas</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ticklen">ticklen</a></td><td valign="top"><a href="mathgl_en_8.html#Default-sizes-_0028MGL_0029">8.1.4 Default sizes (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-tickstl">tickstl</a></td><td valign="top"><a href="mathgl_en_8.html#Default-sizes-_0028MGL_0029">8.1.4 Default sizes (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-tile">tile</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Tile">Tile</a></td><td valign="top"><a href="mathgl_en_3.html#Tile">3.10.6 Tile</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Tile-3">Tile</a></td><td valign="top"><a href="mathgl_en_9.html#Tile-sample">9.2.8 Tile sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-tiles">tiles</a></td><td valign="top"><a href="mathgl_en_8.html#Dual-plotting-_0028MGL_0029">8.12 Dual plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-TileS">TileS</a></td><td valign="top"><a href="mathgl_en_3.html#TileS">3.12.5 TileS</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-TileS-3">TileS</a></td><td valign="top"><a href="mathgl_en_9.html#TileS-sample">9.4.3 TileS sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-title">title</a></td><td valign="top"><a href="mathgl_en_8.html#Text-printing-_0028MGL_0029">8.6 Text printing (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Title">Title</a></td><td valign="top"><a href="mathgl_en_3.html#Text-printing">3.6 Text printing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-tlabel">tlabel</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-torus">torus</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Torus">Torus</a></td><td valign="top"><a href="mathgl_en_3.html#Torus">3.9.11 Torus</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Torus-3">Torus</a></td><td valign="top"><a href="mathgl_en_9.html#Torus-sample">9.1.21 Torus sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-trace">trace</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Trace">Trace</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Traj">Traj</a></td><td valign="top"><a href="mathgl_en_3.html#Traj">3.13.1 Traj</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-traj">traj</a></td><td valign="top"><a href="mathgl_en_8.html#Vector-fields-_0028MGL_0029">8.13 Vector fields (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Traj-3">Traj</a></td><td valign="top"><a href="mathgl_en_9.html#Traj-sample">9.4.5 Traj sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-transform">transform</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-transforma">transforma</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-transparent">transparent</a></td><td valign="top"><a href="mathgl_en_8.html#Transparency-_0028MGL_0029">8.1.1 Transparency (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-transpose">transpose</a></td><td valign="top"><a href="mathgl_en_8.html#Rearrange-data-_0028MGL_0029">8.18 Rearrange data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Transpose">Transpose</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-TranspType">TranspType</a></td><td valign="top"><a href="mathgl_en_9.html#Normal-transparency">9.5.11 Normal transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-transptype">transptype</a></td><td valign="top"><a href="mathgl_en_8.html#Transparency-_0028MGL_0029">8.1.1 Transparency (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-TranspType-1">TranspType</a></td><td valign="top"><a href="mathgl_en_9.html#Glass_002dlike-transparency">9.5.12 Glass-like transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-TranspType-2">TranspType</a></td><td valign="top"><a href="mathgl_en_9.html#Lamp_002dlike-transparency">9.5.13 Lamp-like transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-TriCont">TriCont</a></td><td valign="top"><a href="mathgl_en_3.html#TriCont">3.14.7 TriCont</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-tricont">tricont</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-triplot">triplot</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-TriPlot">TriPlot</a></td><td valign="top"><a href="mathgl_en_3.html#TriPlot">3.14.6 TriPlot</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Tube">Tube</a></td><td valign="top"><a href="mathgl_en_3.html#Tube">3.9.12 Tube</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-tube">tube</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Tube-7">Tube</a></td><td valign="top"><a href="mathgl_en_9.html#Tube-sample">9.1.19 Tube sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-V">V</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-v">v</a></td><td valign="top"><a href="mathgl_en_6.html#Interpolation">6.8 Interpolation</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-var">var</a></td><td valign="top"><a href="mathgl_en_8.html#Data-create-_0028MGL_0029">8.16 Data create (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-vect">vect</a></td><td valign="top"><a href="mathgl_en_8.html#Vector-fields-_0028MGL_0029">8.13 Vector fields (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Vect">Vect</a></td><td valign="top"><a href="mathgl_en_3.html#Vect">3.13.2 Vect</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Vect-5">Vect</a></td><td valign="top"><a href="mathgl_en_9.html#Vect-sample">9.4.6 Vect sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Vect-6">Vect</a></td><td valign="top"><a href="mathgl_en_9.html#Vect-3D-sample">9.4.14 Vect 3D sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-VectC">VectC</a></td><td valign="top"><a href="mathgl_en_3.html#VectC">3.13.4 VectC</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-vectc">vectc</a></td><td valign="top"><a href="mathgl_en_8.html#Vector-fields-_0028MGL_0029">8.13 Vector fields (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-VectC-5">VectC</a></td><td valign="top"><a href="mathgl_en_9.html#VectC-sample">9.4.8 VectC sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-VectC-6">VectC</a></td><td valign="top"><a href="mathgl_en_9.html#VectC-3D-sample">9.4.16 VectC 3D sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-vectl">vectl</a></td><td valign="top"><a href="mathgl_en_8.html#Vector-fields-_0028MGL_0029">8.13 Vector fields (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-VectL">VectL</a></td><td valign="top"><a href="mathgl_en_3.html#VectL">3.13.3 VectL</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-VectL-5">VectL</a></td><td valign="top"><a href="mathgl_en_9.html#VectL-sample">9.4.7 VectL sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-VectL-6">VectL</a></td><td valign="top"><a href="mathgl_en_9.html#VectL-3D-sample">9.4.15 VectL 3D sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-View">View</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-W">W</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_2.html#index-widgets">widgets</a></td><td valign="top"><a href="mathgl_en_2.html#Using-FLTK_002fGLUT-window">2.1.1 Using FLTK/Qt/GLUT window</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-widgets-1">widgets</a></td><td valign="top"><a href="mathgl_en_5.html#Widget-classes">5. Widget classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-widgets-2">widgets</a></td><td valign="top"><a href="mathgl_en_5.html#Fl_005fMathGL-class">5.1 Fl_MathGL class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-widgets-3">widgets</a></td><td valign="top"><a href="mathgl_en_5.html#QMathGL-class">5.2 QMathGL class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_2.html#index-window">window</a></td><td valign="top"><a href="mathgl_en_2.html#Using-FLTK_002fGLUT-window">2.1.1 Using FLTK/Qt/GLUT window</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_4.html#index-window-1">window</a></td><td valign="top"><a href="mathgl_en_4.html#mglGraphAB-class">4.1 mglGraphAB class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-window-2">window</a></td><td valign="top"><a href="mathgl_en_5.html#Widget-classes">5. Widget classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-write">write</a></td><td valign="top"><a href="mathgl_en_8.html#Export-to-file-_0028MGL_0029">8.4 Export to file (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-WriteBMP">WriteBMP</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-WriteEPS">WriteEPS</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-WriteFrame">WriteFrame</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-WriteGIF">WriteGIF</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-WriteIDTF">WriteIDTF</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-WriteJPEG">WriteJPEG</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-WritePNG">WritePNG</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-WriteSVG">WriteSVG</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-X">X</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-xlabel">xlabel</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-XRange">XRange</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-xrange">xrange</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-xrange-3">xrange</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-xtick">xtick</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-Y">Y</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ylabel">ylabel</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-YRange">YRange</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-yrange">yrange</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-yrange-3">yrange</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ytick">ytick</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-Z">Z</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-zlabel">zlabel</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Zoom">Zoom</a></td><td valign="top"><a href="mathgl_en_3.html#Zooming">3.1.5 Zooming</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-zoom">zoom</a></td><td valign="top"><a href="mathgl_en_8.html#Zooming-_0028MGL_0029">8.1.5 Zooming (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ZRange">ZRange</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-zrange">zrange</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-zrange-3">zrange</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ztick">ztick</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_en_12.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_2.html b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_2.html
new file mode 100644
index 0000000..9a182dd
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_2.html
@@ -0,0 +1,2011 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: 2. MathGL examples</title>
+
+<meta name="description" content="MathGL 1.11: 2. MathGL examples">
+<meta name="keywords" content="MathGL 1.11: 2. MathGL examples">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Examples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_1.html#Thanks" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_1.html#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL-examples"></a>
+<h1 class="chapter">2. MathGL examples</h1>
+
+<p>This chapter contain information about basic and advanced MathGL, hints and samples for all types of graphics. I recommend you read first 2 sections one after another and at least look on &ldquo;Hints&rdquo; section. Also I recommend you to look at <a href="mathgl_en_1.html#General-concepts">General concepts</a> and <a href="mathgl_en_1.html#FAQ">FAQ</a>. Sample code for some of these examples can be found in <a href="http://mathgl.sf.net/pictures.html">http://mathgl.sf.net/pictures.html</a> and in <a href="mathgl_en_9.html#Samples">Samples</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Basic-usage">2.1 Basic usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Advanced-usage">2.2 Advanced usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-handling">2.3 Data handling</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-plotting">2.4 Data plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#C_002fFortran-interface">2.5 C/Fortran interface</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#MathGL-and-PyQt">2.6 MathGL and PyQt</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Hints">2.7 Hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Basic-usage"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Examples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Using-FLTK_002fGLUT-window" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Basic-usage-1"></a>
+<h2 class="section">2.1 Basic usage</h2>
+
+<p>MathGL library can be used by several manners. Each has positive and negative sides:
+</p><ul>
+<li>
+<em>The using of MathGL library features for creating graphical window (requires FLTK or GLUT libraries).</em>
+
+<p>Positive side is the possibility to view the plot at once and to modify it (rotate, zoom or switch on transparency or lighting) by hand or by mouse. Negative sides are: the need  of X-terminal and limitation consisting in working with the only one set of data at a time.
+</p></li><li>
+<em>Direct writing to file in bitmap or vector format without creation of graphical window.</em>
+
+<p>Positive aspects are: batch processing of similar data set (for example, a set of resulting data files for different calculation parameters), running from the console program (including the cluster calculation), fast and automated drawing, saving pictures for further analysis (or demonstration). Negative sides are: the usage of the external program for picture viewing. Also, the data plotting is non-visual. So, you have to imagine the picture (view angles, lighting and so on) before the plotting. I recommend to use graphical window for determining the optimal parameters of plotting on the base of some typical data set. And later use these parameters for batch processing in console program.
+</p></li><li>
+<em>Drawing in memory with the following displaying by other graphical program.</em>
+
+<p>In this case the programmer has more freedom in selecting the window libraries (not only FLTK or GLUT), in positioning and surroundings control and so on. I recommend to use such way for &ldquo;settled&rdquo; programs.
+</p></li></ul>
+
+<p>Let me consider the aforesaid in more detail.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Using-FLTK_002fGLUT-window">2.1.1 Using FLTK/Qt/GLUT window</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Drawing-to-file">2.1.2 Drawing to file</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Drawing-in-memory">2.1.3 Drawing in memory</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Using-QMathGL">2.1.4 Using QMathGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+
+
+<hr size="6">
+<a name="Using-FLTK_002fGLUT-window"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Basic-usage" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Drawing-to-file" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Using-FLTK_002fQt_002fGLUT-window"></a>
+<h3 class="subsection">2.1.1 Using FLTK/Qt/GLUT window</h3>
+<a name="index-window"></a>
+<a name="index-widgets"></a>
+
+<p>The &ldquo;interactive&rdquo; way of drawing in MathGL consists in window creation  with help of class <code>mglGraphFLTK</code>, <code>mglGraphQT</code> or <code>mglGraphGLUT</code> (see section <a href="mathgl_en_5.html#Widget-classes">Widget classes</a>) and the following drawing in this window. There is a corresponding code:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Box();
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mglGraphFLTK gr;
+        gr.Window(argc,argv,sample,&quot;MathGL examples&quot;);
+        return mglFlRun();
+    }
+</pre><p>Here function <code>sample</code> is defined. This function does all drawing. Other function <code>main</code> is entry point function for console program. Arguments of <code>main</code> should be transfered to <code>Window()</code> since it may contain OS specific information (see section <a href="mathgl_en_4.html#mglGraphAB-class">mglGraphAB class</a>).
+</p>
+<p>Alternatively you can create yours own class inherited from class <code>mglDraw</code> and re-implement the function <code>Draw()</code> in it:
+</p><pre class="verbatim">    class Foo : public mglDraw
+    {
+    public:
+        int Draw(mglGraph *gr);
+    } foo;
+    //-----------------------------------------------------
+    int Foo::Draw(mglGraph *gr)
+    {
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Box();
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mglGraphFLTK gr;
+        gr.Window(argc,argv,foo,&quot;MathGL examples&quot;);
+        return mglFlRun();
+    }
+</pre>
+<p>The similar code can be written for <code>mglGraphQT</code> or for <code>mglGraphGLUT</code> window (function <code>sample()</code> is the same):
+</p><pre class="verbatim">    int main(int argc,char **argv)
+    {
+        mglGraphGLUT gr;
+        gr.Window(argc,argv,sample,&quot;MathGL examples&quot;);
+        return 0;
+    }
+</pre>
+<p>The rotation, shift, zooming, switching on/off transparency and lighting can be done with help of tool-buttons (for <code>mglGraphFLTK</code> and <code>mglGraphQT</code>) or by hot-keys: &lsquo;<samp>a</samp>&rsquo;, &lsquo;<samp>d</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;, &lsquo;<samp>s</samp>&rsquo; for plot rotation, &lsquo;<samp>r</samp>&rsquo; and &lsquo;<samp>f</samp>&rsquo; switching on/off transparency and lighting. Press &lsquo;<samp>x</samp>&rsquo; for exit (or closing the window).
+</p>
+<p>In this example function <code>sample</code> rotates axes (<code>Rotate()</code>, see section <a href="mathgl_en_3.html#Transformation-matrix">Transformation matrix</a>) and draws the bounding box (<code>Box()</code>). Drawing procedure is separated in a function since it will be used on demand when window canvas needs to be redrawn. Widget classes (<code>mglGraphFLTK</code>, <code>mglGraphGLUT</code> and so on) support a delayed drawing, when all plotting functions are called once at the beginning of writing to memory lists. Further program displays the saved lists faster. Resulting redrawing will be faster but it requires sufficient memory. Several lists (frames) can be displayed one after another (by pressing &lsquo;<samp>,</samp>&rsquo;, &lsquo;<samp>.</samp>&rsquo;) or run as cinema. To switch these feature on one needs to modify function <code>sample</code>:
+</p><pre class="verbatim">    int sample1(mglGraph *gr, void *)
+    {
+        gr-&gt;NewFrame();             // the first frame
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Box();
+        gr-&gt;EndFrame();             // end of the first frame
+        gr-&gt;NewFrame();             // the second frame
+        gr-&gt;Box();
+        gr-&gt;Axis(&quot;xy&quot;);
+        gr-&gt;EndFrame();             // end of the second frame
+        return GetNumFrame();       // returns the frame number
+    }
+</pre><p>First, the function creates a frame <code>NewFrame()</code> for rotated axes and draws the bounding box. After the frame drawing the function <code>EndFrame()</code> <strong>must be</strong> called! The second frame contains the bounding box and axes <code>Axis(&quot;xy&quot;)</code> in the initial (unrotated) coordinates. Function <code>sample</code> returns the number of created frames <code>GetNumFrame()</code>.
+</p>
+<hr size="6">
+<a name="Drawing-to-file"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Using-FLTK_002fGLUT-window" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Drawing-in-memory" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Drawing-to-file-1"></a>
+<h3 class="subsection">2.1.2 Drawing to file</h3>
+
+<p>Another way of using MathGL library is the direct picture writing to file. It is most usable for plot creating during calculation or for using of small programs (like Matlab or Scilab scripts) for visualizing repetitive sets of data. But the speed of drawing is much higher in comparison with a script language. There are two classes for exporting in file: class <code>mglGraphZB</code> saves in bitmap format (like PNG), <code>mglGraphPS</code> saves in vector PostScript format (see section <a href="mathgl_en_4.html#Plotter-classes">Plotter classes</a>).
+</p>
+<p>The following code produces a bitmap PNG picture:
+</p><pre class="verbatim">    int main(int ,char **)
+    {
+        mglGraphZB gr;
+        gr.Alpha(true);
+        gr.Light(true);             gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);           // The same drawing function.
+        gr.WritePNG(&quot;test.png&quot;);    // Don't forget to save the result!
+        return 0;
+    }
+</pre><p>The only difference from the previous (using windows) variant is manual switching the transparency  <code>Alpha</code> and lightning <code>Light</code> on, if the plot requires it. The using of frames is not advisable since the whole image is prepared each time. If function <code>sample</code> contains frames then each frame will be saved to a separate file. In principle, one does not need to separate drawing functions in case of direct file writing in consequence of the single calling of this function for each picture. However, one may use the same drawing procedure to create a plot with changed parameters, to export in different file types, to emphasize the drawing code and so on. So, in future I will put the drawing in separate function.
+</p>
+<p>The code for export in vector EPS file looks the same:
+</p><pre class="verbatim">    int main(int ,char **)
+    {
+        mglGraphPS gr;
+        gr.Light(true);             gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);           // The same drawing function.
+        gr.WriteEPS(&quot;test.eps&quot;);    // Don't forget to save the result!
+        return 0;
+    }
+</pre><p>The differences from the using of bitmap picture are: applying of the other class <code>mglGraphPS</code>, and writing to other format (function <code>WriteEPS()</code> instead of function <code>WritePNG()</code>). Moreover, there is no switching of the plot transparency <code>Alpha</code> since EPS format does not support it. Possibly I shall include transparency in future by program emulation.
+</p>
+<p>Classes <code>mglGraphZB</code> and <code>mglGraphPS</code> have some merits and demerits. Class <code>mglGraphZB</code> draws beautiful surface with transparency, smoothed colors and lightning, but the output picture is <em>bitmap</em>, that leads to a bad scalability. On the contrary, class <code>mglGraphPS</code> creates vector file with excellent scalability. But file has large size (especially for surfaces), it does not support transparency and color smoothing. So, vector picture looks stylish but a bit angularly.
+</p>
+<hr size="6">
+<a name="Drawing-in-memory"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Drawing-to-file" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Using-QMathGL" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Drawing-in-memory-1"></a>
+<h3 class="subsection">2.1.3 Drawing in memory</h3>
+
+<p>The last way of MathGL using is the drawing in memory. Class <code>mglGraphZB</code> allows one  to create a bitmap picture in memory. Further this picture can be displayed in window by some window libraries (like wxWidgets, FLTK, Windows GDI and so on). For example, the code for drawing in wxWidget library looks like:
+</p><pre class="verbatim">    void MyForm::OnPaint(wxPaintEvent&amp; event)
+    {
+        int w,h,x,y;
+        GetClientSize(&amp;w,&amp;h);   // size of the picture
+        mglGraphZB gr(w,h);
+
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);
+
+        wxImage img(w,h,gr.GetBits(),true);
+        ToolBar-&gt;GetSize(&amp;x,&amp;y);    // gets a height of the toolbar if any
+        wxPaintDC dc(this);         // and draws it
+        dc.DrawBitmap(wxBitmap(img),0,y);
+    }
+</pre><p>The drawing in other libraries is most the same.
+</p>
+<p>For example, FLTK code will look like
+</p><pre class="verbatim">    void Fl_MyWidget::draw()
+    {
+        mglGraphZB gr(w(),h());
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);
+        fl_draw_image(gr.GetBits(), x(), y(), gr.GetWidth(), gr.GetHeight(), 3);
+    }
+</pre><p>Qt code will look like
+</p><pre class="verbatim">    void MyWidget::paintEvent(QPaintEvent *)
+    {
+        mglGraphZB gr(w(),h());
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);
+
+        // Qt don't support RGB format as is. So, let convert it to BGRN.
+        const uchar *bb = gr.GetBits();
+        register long i, w=gr.GetWidth(), h=gr.GetHeight();
+        *buf = new uchar[4*w*h];
+        for(i=0;i&lt;w*h;i++)
+        {
+            (*buf)[4*i]   = bb[3*i+2];
+            (*buf)[4*i+1] = bb[3*i+1];
+            (*buf)[4*i+2] = bb[3*i];
+            (*buf)[4*i+3] = 255;
+        }
+        QPixmap pic = QPixmap::fromImage(QImage(*buf, w, h, QImage::Format_RGB32));
+
+        QPainter paint;
+        paint.begin(this);  paint.drawPixmap(0,0,pic);  paint.end();
+        delete []buf;
+    }
+</pre>
+<hr size="6">
+<a name="Using-QMathGL"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Drawing-in-memory" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Using-QMathGL-1"></a>
+<h3 class="subsection">2.1.4 Using QMathGL</h3>
+
+<p>MathGL have several interface widgets for different widget libraries. There are QMathGL for Qt, Fl_MathGL for FLTK in MathGL v.1.8. These classes provide control which display MathGL graphics. Unfortunately there is no uniform interface for widget classes because all libraries have slightly different set of functions, features and so on. However the usage of MathGL widgets is rather simple. Let me show it on the example of QMathGL.
+</p>
+<p>First of all you have to define the drawing function or inherit a class from <code>mglDraw</code> class. After it just create a window and setup QMathGL instance as any other Qt widget:
+</p><pre class="verbatim">    int main(int argc,char **argv)
+    {
+        QApplication a(argc,argv);
+        QMainWindow *Wnd = new QMainWindow;
+        Wnd-&gt;resize(650,480);  // for fill up the QMGL, menu and toolbars
+        Wnd-&gt;setWindowTitle(title);
+        // here I allow to scroll QMathGL -- the case 
+        // then user want to prepare huge picture
+        QScrollArea *scroll = new QScrollArea(Wnd);
+
+        // Create and setup QMathGL
+        QMathGL *QMGL = new QMathGL(Wnd);
+        QMGL-&gt;setPopup(popup); // if you want to setup popup menu for QMGL
+        QMGL-&gt;setDraw(sample, NULL);
+        // or use QMGL-&gt;setDraw(foo); for instance of class Foo:public mglDraw
+        QMGL-&gt;update();
+
+        // continue other setup (menu, toolbar and so on)
+        makeMenu();
+        scroll-&gt;setWidget(QMGL);
+        Wnd-&gt;setCentralWidget(scroll);
+        Wnd-&gt;show();
+        return a.exec();
+    }
+</pre>
+
+<hr size="6">
+<a name="Advanced-usage"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Using-QMathGL" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Subplots" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Advanced-usage-1"></a>
+<h2 class="section">2.2 Advanced usage</h2>
+
+<p>Now I show several non-obvious features of MathGL: several subplots in a single picture, curvilinear coordinates, text printing and so on. Generally you may miss this section at first reading, but I don&rsquo;t recommend it.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Subplots">2.2.1 Subplots</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-grids">2.2.2 Axis and grids</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Curvilinear-coordinates">2.2.3 Curvilinear coordinates</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing-example">2.2.4 Text printing example</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Animation">2.2.5 Animation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Subplots"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Advanced-usage" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-grids" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Subplots-1"></a>
+<h3 class="subsection">2.2.1 Subplots</h3>
+
+<p>Let me demonstrate possibilities of axes transformation. MathGL has the following functions: <code>SubPlot</code>, <code>InPlot</code>, <code>Aspect</code> and <code>Rotate</code> (see section <a href="mathgl_en_3.html#Transformation-matrix">Transformation matrix</a>). The order of their calling is strictly determined. First, one changes the position of axes in image area (functions <code>SubPlot</code> and <code>InPlot</code>). After that one may rotate the plot (function <code>Rotate</code>). Finally, one may change aspects of axes (function <code>Aspect</code>). The following code illustrates the aforesaid it:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;SubPlot(2,2,0);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(-1,1.1,1),&quot;Just box&quot;,&quot;rL&quot;);
+        gr-&gt;InPlot(0.2,0.5,0.7,1);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0,1.2,1),&quot;InPlot example&quot;);
+
+        gr-&gt;SubPlot(2,2,1);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Aspect(1,1,1);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(1,1,1.5),&quot;Rotate only&quot;,&quot;rR&quot;);
+
+        gr-&gt;SubPlot(2,2,2);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Aspect(1,1,2);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0,0,2),&quot;Aspect and Rotate&quot;);
+
+        gr-&gt;SubPlot(2,2,3);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Aspect(1,2,2);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0,0,1.5),&quot;Aspect in other direction&quot;);
+        return 0;
+    }
+</pre><p>Here I used function <code>Puts</code> for printing the text in arbitrary position of picture (see section <a href="mathgl_en_3.html#Text-printing">Text printing</a>). Text coordinates and size are connected with axes. However, text coordinates may be everywhere, including the outside the bounding box. I shall show its features later in See section <a href="#Text-printing-example">Text printing example</a>.
+</p>
+<div class="float">
+<img src="../png/sample1.png" alt="../png/sample1">
+
+</div><p><strong>Example of several subplots on the single picture.
+</strong>
+</p>
+<hr size="6">
+<a name="Axis-and-grids"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Subplots" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Curvilinear-coordinates" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-and-grids-1"></a>
+<h3 class="subsection">2.2.2 Axis and grids</h3>
+
+<p>MathGL library can draw not only the bounding box but also the axes, grids, labels and so on. The limits of axes and their origin (the point of intersection) are determined by function <code>Axis()</code>. Also you can use <code>XRange(), YRange(), ZRange()</code> functions (see section <a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">Ranges (bounding box)</a>). Ticks on axis are specified by function <code>SetTicks</code> (see section <a href="mathgl_en_3.html#Ticks">Ticks</a>). First argument the direction for each change will be applied. Second argument gives the step between ticks (if positive) or gives the number of ticks on the axis (if negative) or set to use logarithmic ticks (if zero). Third argument gives numbers of sub-ticks between ticks (default is zero). Last argument define the initial ticks position.
+</p>
+<p>Function <code>Axis</code> draws axes. Its textual string shows in which directions the axis or axes will be drawn (by default <code>&quot;xyz&quot;</code>, function draws axes in all directions). Function <code>Grid</code> draws grid perpendicularly to specified directions. Example of axes and grid drawing is:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;SubPlot(2,2,0);
+        gr-&gt;SetTicks('x', 0.4, 3);  // sets tick step to 0.5
+        gr-&gt;SetTicks('y', 0.4, 3);  // and draws 3 subticks
+        gr-&gt;Box();                  // should be after the ticks change
+        gr-&gt;Axis(&quot;xy&quot;);
+        gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Axis and grid&quot;);
+
+        gr-&gt;SetTicks('x');  gr-&gt;SetTicks('y'); // restore back
+        gr-&gt;Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(0,0,0));
+
+        gr-&gt;SubPlot(2,2,1);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Axis();
+        gr-&gt;Label('x',&quot;x&quot;);
+        gr-&gt;Label('y',&quot;y&quot;);
+        gr-&gt;Label('z',&quot;z&quot;);
+        gr-&gt;Puts(mglPoint(0,0,1.5),&quot;Axis and labels&quot;);
+
+        gr-&gt;SubPlot(2,2,2);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;SetTicks('x', 0.2); gr-&gt;SetTicks('y', 0.2);
+        gr-&gt;SetTicks('z', 0.2); // too low step of ticks
+        gr-&gt;Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,-1,-1));
+        gr-&gt;Axis();
+        gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,0,1.5),&quot;Shift origin and add grid&quot;);
+        gr-&gt;Puts(mglPoint(0,0,1.2),&quot;(note, too many ticks)&quot;);
+
+        gr-&gt;SubPlot(2,2,3);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;SetTicks('x', -6);  // decrease the number of ticks
+        gr-&gt;SetTicks('y', -6);
+        gr-&gt;Axis(&quot;yz&quot;);
+        gr-&gt;Label('y',&quot;Y axis&quot;,0);
+        gr-&gt;Label('z',&quot;Z axis&quot;,0);
+        gr-&gt;Puts(mglPoint(0,0,1.5),&quot;Remove X axis, and&quot;);
+        gr-&gt;Puts(mglPoint(0,0,1.2),&quot;decrease number of ticks&quot;);
+        return 0;
+    }
+</pre>
+<p>This example shows the importance of the correct choosing of the number of ticks on axis. If tick step is too small then its text may overlap and becomes unreadable. This code has the example of <code>Label</code> function. It draws label for axis in specified direction. The text position on axis is specified by third argument of <code>Label</code> function. If it is positive then then text is drawn near the axis maximum, if negative then the same takes place near the minimum of axis, if zero - then at the center of axis.
+</p>
+<div class="float">
+<img src="../png/sample2.png" alt="../png/sample2">
+
+</div><p><strong>Example of setting up axis range and axis ticks.
+</strong>
+</p>
+<hr size="6">
+<a name="Curvilinear-coordinates"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-grids" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing-example" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Curvilinear-coordinates-1"></a>
+<h3 class="subsection">2.2.3 Curvilinear coordinates</h3>
+
+
+<p>Now let use curvilinear coordinates. In difference from other systems of plot creation, MathGL uses textual formulas for connection of the old (data) and new (output) coordinates. This allows one to plot in arbitrary coordinates. The following code plots the line <var>y</var>=0, <var>z</var>=0 in Cartesian, polar, parabolic and spiral coordinates:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData x(50),y(50),z(50);
+        y.Fill(0.5,0.5);
+        x.Fill(-1,1);           // creates data arrays
+
+        gr-&gt;Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,1,-1));
+        gr-&gt;dz = 0.5;           // sets tick step to 0.5
+
+        gr-&gt;SubPlot(2,2,0);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Plot(x,y,z,&quot;r2&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Cartesian&quot;);
+
+        gr-&gt;SubPlot(2,2,1);
+        gr-&gt;SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,0);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Plot(x,y,z,&quot;r2&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Cylindrical&quot;);
+
+        gr-&gt;SubPlot(2,2,2);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;SetFunc(&quot;2*y*x&quot;,&quot;y*y - x*x&quot;,0);
+        gr-&gt;Plot(x,y,z,&quot;r2&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Parabolic&quot;);
+
+        gr-&gt;SubPlot(2,2,3);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,&quot;x+z&quot;);
+        gr-&gt;Plot(x,y,z,&quot;r2&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Spiral&quot;);
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample3.png" alt="../png/sample3">
+
+</div><p><strong>Example of curvilinear coordinates
+</strong>
+</p>
+
+<hr size="6">
+<a name="Text-printing-example"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Curvilinear-coordinates" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Animation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-printing-example-1"></a>
+<h3 class="subsection">2.2.4 Text printing example</h3>
+
+<p>MathGL prints text by vector font. There are functions for manual specifying of text position (like <code>Puts</code>) and for its automatic selection (like <code>Label</code>, <code>Legend</code> and so on). MathGL prints text always in specified position even if it lies outside the bounding box. The default size of font is specified by variables <var>FontSize</var> (see section <a href="mathgl_en_3.html#Font-settings">Font settings</a>). However, the actual size of output string depends on position of axes (depends on functions <code>SubPlot</code>, <code>InPlot</code>). The switching of the font style (italic, bold, wire and so on) can be done for the whole string (by function parameter) or inside the string. By default MathGL parses TeX-like commands for symbols and indexes (see see section <a href="mathgl_en_1.html#Font-styles">Font styles</a>). Example of MathGL font drawing is:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        setlocale(LC_CTYPE, &quot;ru_RU.cp1251&quot;);
+        gr-&gt;Puts(mglPoint(0,1),&quot;Text can be in ASCII and in Unicode&quot;);
+        gr-&gt;Puts(mglPoint(0,0.6),&quot;It can be \\wire{wire}, \\big{big} &quot;
+            &quot;or #r{colored}&quot;);
+        gr-&gt;Puts(mglPoint(0,0.2),&quot;One can change style in string: &quot;
+            &quot;\\b{bold}, \\i{italic, \\b{both}}&quot;);
+        gr-&gt;Puts(mglPoint(0,-0.2),&quot;Easy to \\a{overline} or &quot;
+            &quot;\\u{underline}&quot;);
+        gr-&gt;Puts(mglPoint(0,-0.6),&quot;Easy to change indexes &quot;
+            &quot;^{up} _{down} @{center}&quot;);
+        gr-&gt;Puts(mglPoint(0,-1),&quot;It parse TeX: \\int \\alpha \\cdot &quot;
+            &quot;\\sqrt3{sin(\\pi x)^2 + \\gamma_{i_k}} dx&quot;);
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample4.png" alt="../png/sample4">
+
+</div><p><strong>Example of text printing with different font effects
+</strong>
+</p>
+<p>Another example demonstrate the features of TeX formula parsing.
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Puts(mglPoint(0), &quot;\\sqrt{\\frac{\\alpha^{\\gamma^2}+&quot;
+            &quot;\\overset 1{\\big\\infty}}{\\sqrt3{2+b}}}&quot;, 0, -4);
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/samplee.png" alt="../png/samplee">
+
+</div><p><strong>Example of TeX formula parsing
+</strong>
+</p>
+<p>Finally you can change font during execution (this work well for mglGraphZB class only).
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        float h=1.1, d=0.25;
+        gr-&gt;LoadFont(&quot;STIX&quot;);       gr-&gt;Puts(mglPoint(0,h), &quot;default font (STIX)&quot;);
+        gr-&gt;LoadFont(&quot;adventor&quot;);   gr-&gt;Puts(mglPoint(0,h-d), &quot;adventor font&quot;);
+        gr-&gt;LoadFont(&quot;bonum&quot;);      gr-&gt;Puts(mglPoint(0,h-2*d), &quot;bonum font&quot;);
+        gr-&gt;LoadFont(&quot;chorus&quot;);     gr-&gt;Puts(mglPoint(0,h-3*d), &quot;chorus font&quot;);
+        gr-&gt;LoadFont(&quot;cursor&quot;);     gr-&gt;Puts(mglPoint(0,h-4*d), &quot;cursor font&quot;);
+        gr-&gt;LoadFont(&quot;heros&quot;);      gr-&gt;Puts(mglPoint(0,h-5*d), &quot;heros font&quot;);
+        gr-&gt;LoadFont(&quot;heroscn&quot;);    gr-&gt;Puts(mglPoint(0,h-6*d), &quot;heroscn font&quot;);
+        gr-&gt;LoadFont(&quot;pagella&quot;);    gr-&gt;Puts(mglPoint(0,h-7*d), &quot;pagella font&quot;);
+        gr-&gt;LoadFont(&quot;schola&quot;);     gr-&gt;Puts(mglPoint(0,h-8*d), &quot;schola font&quot;);
+        gr-&gt;LoadFont(&quot;termes&quot;);     gr-&gt;Puts(mglPoint(0,h-9*d), &quot;termes font&quot;);
+    }
+</pre>
+<div class="float">
+<img src="../png/fonts.png" alt="../png/fonts">
+
+</div><p><strong>Example of font face changing.
+</strong>
+</p>
+<hr size="6">
+<a name="Animation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing-example" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Animation-1"></a>
+<h3 class="subsection">2.2.5 Animation</h3>
+
+<p>You can make animation by several methods in MathGL: by export in animated GIF, or by save each frame in separate file (usually JPEG) and convert these files into movie. Let me show both methods.
+</p>
+<p>The simplest methods is making animated GIF. There are 3 steps: (1) open GIF file by <code>StartGIF()</code> function; (2) create the frames by calling <code>NewFrame()</code> before and <code>EndFrame()</code> after plotting; (3) close GIF by <code>CloseGIF()</code> function. So the simplest code for &ldquo;running&rdquo; sinusoid will look like this:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData dat(100);
+        char str[32];
+        gr-&gt;StartGIF(&quot;sample.gif&quot;);
+        for(int i=0;i&lt;100;i++)
+        {
+            gr-&gt;NewFrame();     // start frame
+            gr-&gt;Box();          // some plotting
+            sprintf(str,&quot;sin(pi*x+%g*pi)&quot;,0.02*i);
+            dat.Modify(str);
+            gr-&gt;Plot(dat,&quot;b&quot;);
+            gr-&gt;EndFrame();     // end frame
+        }
+        gr-&gt;CloseGIF();
+        return 0;
+    }
+</pre>
+<p>The second way is saving each frame in separate file (usually JPEG) and later make the movie from them. MathGL have special function for saving frames &ndash; it is <code>WriteFrame()</code>. This function save each frame with automatic name &lsquo;<samp>frame0001.jpg, frame0002.jpg</samp>&rsquo; and so on. Here prefix &lsquo;<samp>frame</samp>&rsquo; is defined by <var>PlotId</var> variable of <code>mglGraph</code> class. So the similar code will look like this:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData dat(100);
+        char str[32];
+        for(int i=0;i&lt;100;i++)
+        {
+            gr-&gt;NewFrame();     // start frame
+            gr-&gt;Box();          // some plotting
+            sprintf(str,&quot;sin(pi*x+%g*pi)&quot;,0.02*i);
+            dat.Modify(str);
+            gr-&gt;Plot(dat,&quot;b&quot;);
+            gr-&gt;EndFrame();     // end frame
+            gr-&gt;WriteFrame();   // save frame
+        }
+        return 0;
+    }
+</pre>
+<p>Created files can be converted to movie by help of a lot of programs. For example, you can use ImageMagic (command &lsquo;<samp>convert frame*.jpg movie.mpg</samp>&rsquo;), MPEG library, GIMP and so on.
+</p>
+<p>Finally, you can use <code>mgl2gif</code> tool for doing the same with MGL scripts (see section <a href="mathgl_en_8.html#Utilities">Utilities for parsing MGL</a>).
+</p>
+<hr size="6">
+<a name="Data-handling"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Animation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Array-creation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-handling-1"></a>
+<h2 class="section">2.3 Data handling</h2>
+
+<p>Class <code>mglData</code> contains all functions for the data handling in MathGL (see section <a href="mathgl_en_6.html#mglData-class">mglData class</a>). There are several matters why I use class <code>mglData</code> but not a single array: it does not depend on type of data (float or double), sizes of data arrays are kept with data, memory working is simpler and safer.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Array-creation">2.3.1 Array creation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-changing">2.3.2 Data changing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Array-creation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-handling" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-changing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Array-creation-1"></a>
+<h3 class="subsection">2.3.1 Array creation</h3>
+
+<p>One can put the data in <code>mglData</code> instance by several ways. Let us do it for sinus function:
+</p><ul>
+<li>
+one can create external array, fill it and put to <code>mglData</code> variable
+<pre class="verbatim">    double *a = new double[50];
+    for(int i=0;i&lt;50;i++)   a[i] = sin(M_PI*i/49.);
+
+    mglData y;
+    y.Set(a,50);
+</pre>
+</li><li>
+another way is to create <code>mglData</code> instance of the desired size and then to work directly with data in this variable
+<pre class="verbatim">    mglData y(50);
+    for(int i=0;i&lt;50;i++)   y.a[i] = sin(M_PI*i/49.);
+</pre>
+</li><li>
+next way is to fill the data in <code>mglData</code> instance by textual formula with the help of <code>Modify()</code> function
+<pre class="verbatim">    mglData y(50);
+    y.Modify(&quot;sin(pi*x)&quot;);
+</pre>
+</li><li>
+or one may fill the array in some interval and modify it later
+<pre class="verbatim">    mglData y(50);
+    y.Fill(0,M_PI);
+    y.Modify(&quot;sin(u)&quot;);
+</pre>
+</li><li>
+finally it can be loaded from file
+<pre class="verbatim">    FILE *fp=fopen(&quot;sin.dat&quot;,&quot;wt&quot;);   // create file first
+    for(int i=0;i&lt;50;i++)   fprintf(fp,&quot;%g\n&quot;,sin(M_PI*i/49.));
+    fclose(fp);
+
+    mglData y(&quot;sin.dat&quot;);             // load it
+</pre>
+</li><li>
+at this one can read only part of data
+<pre class="verbatim">    FILE *fp-fopen(&quot;sin.dat&quot;,&quot;wt&quot;);   // create large file first
+    for(int i=0;i&lt;70;i++)   fprintf(fp,&quot;%g\n&quot;,sin(M_PI*i/49.));
+    fclose(fp);
+
+    mglData y;
+    y.Read(&quot;sin.dat&quot;,50);             // load it
+</pre></li></ul>
+
+<p>Creation of 2d- and 3d-arrays is mostly the same. But one should keep in mind that class <code>mglData</code> uses flat data representation. For example, matrix 30*40 is presented as flat (1d-) array with length 30*40=1200 (nx=30, ny=40). The element with indexes {i,j} is a[i+nx*j]. So for 2d array we have:
+</p><pre class="verbatim">    mglData z(30,40);
+    for(int i=0;i&lt;30;i++)   for(int j=0;j&lt;40;j++)
+        z.a[i+30*j] = sin(M_PI*i/29.)*sin(M_PI*j/39.);
+</pre><p>or by using <code>Modify()</code> function
+</p><pre class="verbatim">    mglData z(30,40);
+    z.Modify(&quot;sin(pi*x)*cos(pi*y)&quot;);
+</pre>
+<p>The only non-obvious thing here is using multidimensional arrays in C/C++, i.e. arrays defined like <code>float dat[40][30];</code>. Since, formaly this arrays element <code>dat[i]</code> can address the memory in arbitrary place you should use the proper function to convert such arrays to <code>mglData</code> object. For C++ this is functions like <code>mglData::Set(float **dat, int N1, int N2);</code>. For C this is functions like <code>mgl_data_set_float2(HMDT d, const float **dat, int N1, int N2);</code>. At this, you should keep in mind that <code>nx=N2</code> and <code>ny=N1</code> after conversion.
+</p>
+<hr size="6">
+<a name="Data-changing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Array-creation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-changing-1"></a>
+<h3 class="subsection">2.3.2 Data changing</h3>
+
+<p>MathGL has functions for data processing: differentiating, integrating, smoothing and so on (for more detail, see section <a href="mathgl_en_6.html#mglData-class">mglData class</a>). Let us consider some examples. The simplest ones are integration and differentiation. The direction in which operation will be performed is specified by textual string, which may contain symbols &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo;. For example, the call of <code>Diff(&quot;x&quot;)</code> will differentiate data along &lsquo;<samp>x</samp>&rsquo; direction; the call of <code>Integral(&quot;xy&quot;)</code> perform the double integration of data along &lsquo;<samp>x</samp>&rsquo; and &lsquo;<samp>y</samp>&rsquo; directions; the call of <code>Diff2(&quot;xyz&quot;)</code> will apply 3d Laplace operator to data and so on. Example of this operations on 2d array a=x*y is presented in code:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData a(30,40);   a.Modify(&quot;x*y&quot;);
+        gr-&gt;Axis(mglPoint(0,0,0),mglPoint(1,1,1));
+        gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(60,40);
+        gr-&gt;Surf(a);        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0.7,1,1.2),&quot;a(x,y)&quot;);
+        gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(60,40);
+        a.Diff(&quot;x&quot;);        gr-&gt;Surf(a);      gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0.7,1,1.2),&quot;da/dx&quot;);
+        gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(60,40);
+        a.Integral(&quot;xy&quot;);   gr-&gt;Surf(a);      gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0.7,1,1.2),&quot;\\int da/dx dxdy&quot;);
+        gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(60,40);
+        a.Diff2(&quot;y&quot;);       gr-&gt;Surf(a);      gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0.7,1,1.2),&quot;\\int {d^2}a/dxdy dx&quot;);
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample6.png" alt="../png/sample6">
+
+</div><p><strong>Example of data differentiation and integration
+</strong>
+</p>
+<p>Data smoothing (function <code>Smooth()</code>) is more interesting and important. This function has 2 main arguments: type of smoothing and its direction. Now 4 methods are supported: <code>SMOOTH_NONE</code> does nothing for delta=0 or approaches data to zero with the step delta, <code>SMOOTH_LINE_3</code> linear averaging by 3 points, <code>SMOOTH_LINE_5</code> linear averaging by 5 points, <code>SMOOTH_QUAD_5</code> quadratic averaging by 5 points. Let me demonstrate it for 1d case:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData y0(30),y1,y2,y3;
+        y0.Modify(&quot;0.4*sin(2*pi*x)+0.3*cos(3*pi*x)-0.4*sin(4*pi*x)+0.2*rnd&quot;);
+
+        y1=y0;  y1.Smooth(SMOOTH_LINE_3);
+        y2=y0;  y2.Smooth(SMOOTH_LINE_5);
+        y3=y0;  y3.Smooth(SMOOTH_QUAD_5);
+
+        gr-&gt;Plot(y0,&quot;k&quot;);   gr-&gt;AddLegend(&quot;NONE&quot;,&quot;k&quot;);
+        gr-&gt;Plot(y1,&quot;r&quot;);   gr-&gt;AddLegend(&quot;LINE_3&quot;,&quot;r&quot;);
+        gr-&gt;Plot(y2,&quot;g&quot;);   gr-&gt;AddLegend(&quot;LINE_5&quot;,&quot;g&quot;);
+        gr-&gt;Plot(y3,&quot;b&quot;);   gr-&gt;AddLegend(&quot;QUAD_5&quot;,&quot;b&quot;);
+        gr-&gt;Legend();       gr-&gt;Box();
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample7.png" alt="../png/sample7">
+
+</div><p><strong>Example of data smoothing
+</strong>
+</p>
+<p>Finally one can create new data arrays on base of the existing one: extract slice, row or column of data (<code>SubData()</code>), summarize along some of direction(s) (<code>Sum()</code>), find distribution of data elements (<code>Hist()</code>). Note, that all these functions are not thread-safe because they use static internal variable for output array. In particular, the using of several of them in arguments of the same function will lead to unpredictable result.
+</p>
+<hr size="6">
+<a name="Data-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-changing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-1D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-plotting-1"></a>
+<h2 class="section">2.4 Data plotting</h2>
+
+<p>Let me now show how to plot the data. MathGL generally has 2 types of plotting functions. Simple variant requires a single data array for plotting, other data (coordinates) are considered uniformly distributed in interval <var>Min</var>*<var>Max</var>. Second variant requires data arrays for all coordinates. It allows one to plot rather complex multivalent curves and surfaces (in case of parametric dependencies). Argument setting to default values allows one to plot data in standard form. Manual arguments setting gives possibility for fine tuning of colors, positions and view of graphics. Note, that the call of drawing function adds something to picture but does not clear the previous plots (as it does in Matlab). Another difference from Matlab is that all setup (like transparency, lightning, axis borders and so on) must be specified <strong>before</strong> plotting functions.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plots-for-1D-data">2.4.1 Plots for 1D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-for-2D-data">2.4.2 Plots for 2D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-for-3D-data">2.4.3 Plots for 3D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surface-transparency">2.4.4 Surface transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Plots-for-1D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-2D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-1D-data-1"></a>
+<h3 class="subsection">2.4.1 Plots for 1D data</h3>
+
+<p>Term &ldquo;1D data&rdquo; means that data depend on single index (parameter) like curve in parametric form {x(i),y(i),z(i)}, i=1...n. There are 5 generally different types of data representations: simple line plot, line plot with filling under it, stairs plot, bar plot and vertical lines (see section <a href="mathgl_en_3.html#g_t1D-plotting">1D plotting</a>). Each type of plotting has similar interface. There are 3D version and two 2D versions. One of last requires single array. The parameters of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>) are specified by the string argument. If the string parameter is <code>NULL</code> then solid line with color from palette is used (see section <a href="mathgl_en_3.html#Palette-and-colors">Pallete and colors</a>).
+</p>
+<p>Below I shall show the features of 1D plotting on base of <code>Plot()</code> function (see section <a href="mathgl_en_3.html#Plot">Plot</a>). Let us start from sinus plot:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData y0(50); 	y0.Modify(&quot;sin(pi*(2*x-1))&quot;);
+        gr-&gt;SubPlot(2,2,0);
+        gr-&gt;Plot(y0);   	gr-&gt;Box();
+</pre><p>Style of line is not specified in <code>Plot()</code> function. So MathGL uses the solid line with first color of palette (this is blue). Next subplot shows array <var>y1</var> with 2 rows:
+</p><pre class="verbatim">        gr-&gt;SubPlot(2,2,1);
+        mglData y1(50,2);
+        y1.Modify(&quot;sin(pi*2*x-pi)&quot;);
+        y1.Modify(&quot;cos(pi*2*x-pi)/2&quot;,1);
+        gr-&gt;Plot(y1);   	gr-&gt;Box();
+</pre><p>As previously I did not specify the style of lines. As a result, MathGL again uses solid line with next colors in palette (there are green and red). Now let us plot a circle on the same subplot. The circle is parametric curve <em>x=cos(\pi t), y=sin(\pi t)</em>. I will set the color of the circle (dark yellow, &lsquo;<samp>Y</samp>&rsquo;) and put marks &lsquo;<samp>+</samp>&rsquo; at point position:
+</p><pre class="verbatim">        mglData x(50);  	x.Modify(&quot;cos(pi*2*x-pi)&quot;);
+        gr-&gt;Plot(x,y0,&quot;Y+&quot;);
+</pre><p>Note that solid line is used because I did not specify the type of line. The same picture can be achieved by <code>Plot2()</code> function. Let us draw ellipse by orange dash line:
+</p><pre class="verbatim">        gr-&gt;Plot2(y1,&quot;q|&quot;);
+</pre>
+<p>Drawing in 3D space is mostly the same. Let us draw spiral with default line style. Now its color is 4-th color from palette (this is cyan):
+</p><pre class="verbatim">        gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(60,40);
+        mglData z(50);  	z.Modify(&quot;2*x-1&quot;);
+        gr-&gt;Plot(x,y0,z);	gr-&gt;Box();
+</pre><p>Function <code>Plot3()</code> does 3D curve plot but for single array. Use it to put circle marks on the previous plot:
+</p><pre class="verbatim">        mglData y2(10,3);	y2.Modify(&quot;cos(pi*(2*x-1+y))&quot;);
+        y2.Modify(&quot;2*x-1&quot;,2);
+        gr-&gt;Plot3(y2,&quot;bo &quot;);
+</pre><p>Note that line style is empty &lsquo;<samp> </samp>&rsquo; here. Usage of other 1D plotting functions looks similar:
+</p><pre class="verbatim">        gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(60,40);
+        gr-&gt;Bars(x,y0,z,&quot;r&quot;);	gr-&gt;Box();
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample8.png" alt="../png/sample8">
+
+</div><p><strong>Example of 1D data plot
+</strong>
+</p>
+<hr size="6">
+<a name="Plots-for-2D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-1D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-3D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-2D-data-1"></a>
+<h3 class="subsection">2.4.2 Plots for 2D data</h3>
+
+<p>Surfaces <code>Surf()</code> and other 2D plots (see section <a href="mathgl_en_3.html#g_t2D-plotting">2D plotting</a>) are drown the same simpler as 1D one. The difference is that the string parameter specifies not by line style but by the color scheme of the plot (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>). Here I draw attention on 4 most interesting color schemes. There is gray scheme where color is changed from black to white (string &lsquo;<samp>kw</samp>&rsquo;) or from white to black (string &lsquo;<samp>wk</samp>&rsquo;). Another scheme is useful for accentuation of negative (by blue color) and positive (by red color) regions on plot (string &lsquo;<samp>&quot;BbwrR&quot;</samp>&rsquo;). Last one is the popular &ldquo;jet&rdquo; scheme (string &lsquo;<samp>&quot;BbcyrR&quot;</samp>&rsquo;).
+</p>
+<p>Now I shall show the example of a surface drawing. At first let us switch lightning on
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Light(true);	gr-&gt;Light(0,mglPoint(0,0,1));
+</pre><p>and draw the surface, considering coordinates x,y to be uniformly distributed in interval <var>Min</var>*<var>Max</var>
+</p><pre class="verbatim">        mglData a0(50,40);
+        a0.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+        gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(60,40);
+        gr-&gt;Surf(a0);		gr-&gt;Box();
+</pre><p>Color scheme was not specified. So previous color scheme is used. In this case it is default color scheme (&ldquo;jet&rdquo;) for the first plot. Next example is a sphere. The sphere is parametrically specified surface:
+</p><pre class="verbatim">        mglData x(50,40),y(50,40),z(50,40);
+        x.Modify(&quot;0.8*sin(2*pi*x)*sin(pi*y)&quot;);
+        y.Modify(&quot;0.8*cos(2*pi*x)*sin(pi*y)&quot;);
+        z.Modify(&quot;0.8*cos(pi*y)&quot;);
+        gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(60,40);
+        gr-&gt;Surf(x,y,z,&quot;BbwrR&quot;);gr-&gt;Box();
+</pre><p>I set color scheme to <code>&quot;BbwrR&quot;</code> that corresponds to red top and blue bottom of the sphere.
+</p>
+<p>Surfaces will be plotted for each of slice of the data if <var>nz</var>&gt;1. Next example draws surfaces for data arrays with <var>nz</var>=3:
+</p><pre class="verbatim">        mglData a1(50,40,3);
+        a1.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+        a1.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))&quot;,1);
+        a1.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;,2);
+        gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(60,40);
+        gr-&gt;Alpha(true);
+        gr-&gt;Surf(a1);		gr-&gt;Box();
+</pre><p>Note, that it may entail a confusion. However, if one will use density plot then the picture will look better:
+</p><pre class="verbatim">        gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(60,40);
+        gr-&gt;Dens(a1);		gr-&gt;Box();
+        return 0;
+    }
+</pre><p>Note, that the previous color scheme is used in last plots because there are no direct specification of the one.
+</p>
+<div class="float">
+<img src="../png/sample9.png" alt="../png/sample9">
+
+</div><p><strong>Example of surface plot for 2D data
+</strong>
+</p>
+<p>Drawing of other 2D plots is analogous. The only peculiarity is the usage of flag &lsquo;<samp>#</samp>&rsquo;. By default this flag switches on the drawing of a grid on plot (<code>Grid()</code> or <code>Mesh()</code> for plots in plain or in volume). However, for isosurfaces (including surfaces of rotation <code>Axial()</code>) this flag switches the  face drawing off. Figure becomes wired. The following code gives example of flag &lsquo;<samp>#</samp>&rsquo; using (compare with normal function drawing as in its description):
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Alpha(true);	gr-&gt;Light(true);	gr-&gt;Light(0,mglPoint(0,0,1));
+        mglData a(30,20);
+        a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+
+        gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);
+        gr-&gt;Surf(a,&quot;BbcyrR#&quot;);		gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);
+        gr-&gt;Dens(a,&quot;BbcyrR#&quot;);		gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);
+        gr-&gt;Cont(a,&quot;BbcyrR#&quot;);		gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);
+        gr-&gt;Axial(a,&quot;BbcyrR#&quot;);		gr-&gt;Box();
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/samplea.png" alt="../png/samplea">
+
+</div><p><strong>Example of 2D data plot with color scheme contained &lsquo;<samp>#</samp>&rsquo; symbol
+</strong>
+</p>
+<hr size="6">
+<a name="Plots-for-3D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-2D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surface-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-3D-data-1"></a>
+<h3 class="subsection">2.4.3 Plots for 3D data</h3>
+
+<p>Drawing procedures for 3D plot looks similarly to 1D and 2D plots described above. There are 3 general types of 3D plots (see section <a href="mathgl_en_3.html#g_t3D-plotting">3D plotting</a>): (i) plots on slices or on projections, (ii) isosurfaces, (iii) cloud-like plots. Plots on slice are clear enough &ndash; one specifies a slice (as its index or as coordinate value) and MathGL draws contour lines or density plot on slice plane. Isosurface gives more information. Isosurface is 3D analogue of the contour line <code>Cont()</code>. It shows the region where data array values exceed specified isosurface level. Plot becomes more informative if one adds transparency, lightning or sets color scheme depending on coordinates. Generalization of isosurface is the cloud-like plot. For this plot the darker color and less transparent regions correspond to higher values of data. Contrary, the regions with low values are transparent. For plotting of the phase of fields (or beams or pulses) one can use isosurface which transparency depends on the other data array (see function <code>Surf3A()</code>). As example of 3D data plots let us draw the Gaussian beam diffraction in space. Beam propagates along <var>x</var> axis:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Alpha(true);    gr-&gt;Light(true);
+        gr-&gt;Light(0,mglPoint(0,0,1));
+        mglData a(30,30,30),b(30,30,30);
+        a.Modify(&quot;exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))&quot;);
+        b.Modify(&quot;16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)&quot;);
+        gr-&gt;CAxis(0,1);
+
+        gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(40,60);
+        gr-&gt;Surf3(a,&quot;wgk&quot;); gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(40,60);
+        gr-&gt;DensA(a);       gr-&gt;Box();  gr-&gt;Axis();
+        gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(40,60);
+        gr-&gt;CloudQ(a);      gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(40,60);
+        gr-&gt;Surf3A(b,a,&quot;q&quot;);gr-&gt;Box();
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sampleb.png" alt="../png/sampleb">
+
+</div><p><strong>Example of Gaussian beam diffraction (3D data)
+</strong>
+</p>
+
+<hr size="6">
+<a name="Surface-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-3D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#C_002fFortran-interface" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surface-transparency-1"></a>
+<h3 class="subsection">2.4.4 Surface transparency</h3>
+
+<p>MathGL library has advanced features for setting and handling the surface transparency. The simplest way to add transparency is the using of function <code>Alpha()</code>. As a result, all further surfaces (and isosurfaces, density plots and so on) become transparent. However, their  look can be additionally improved.
+</p>
+<p>First, the selected surface will be non-transparent if one sets the flag <code>Transparent</code> before the surface drawing and sets it off after the drawing.
+</p>
+<p>Second, the value of transparency can be different from surface to surface. To do it just change the value of <code>AlphaDef</code> before the drawing of the selected surface. If its value is close to 0 then the surface becomes more and more transparent. Contrary, if its value is close to 1 then the surface becomes practically non-transparent. This is some analogue of <code>Transparent=true</code>.
+</p>
+<p>Third feature is the changing of the way how the light goes through overlapped surfaces. The variable <code>TranspType</code> defines it. By default the usual transparency is used (<code>TranspType=0</code>) &ndash; surfaces below is less visible than the upper ones. A &ldquo;glass-like&rdquo; transparency (<code>TranspType=1</code>) has a different look when the surface just decreases the background light (the surfaces are commutable in this case).
+</p>
+<p>A &ldquo;neon-like&rdquo; transparency (<code>TranspType=2</code>) has more interesting look. In this case a surface is the light source (like a lamp on the dark background) and just adds some intensity to the color. At this, the library sets automatically the black color for the background and changes the default line color to white.
+</p>
+<p>As example I shall show the variant of plot from <a href="#Plots-for-2D-data">Plots for 2D data</a> (grid drawing is disabled) for different types of transparency.
+</p><div class="float">
+<img src="../png/type0.png" alt="../png/type0">
+
+</div><p><strong>Example of <code>TranspType=0</code>.
+</strong>
+</p><div class="float">
+<img src="../png/type1.png" alt="../png/type1">
+
+</div><p><strong>Example of <code>TranspType=1</code>.
+</strong>
+</p><div class="float">
+<img src="../png/type2.png" alt="../png/type2">
+
+</div><p><strong>Example of <code>TranspType=2</code>.
+</strong>
+</p>
+<hr size="6">
+<a name="C_002fFortran-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surface-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-and-PyQt" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="C_002fFortran-interface-1"></a>
+<h2 class="section">2.5 C/Fortran interface</h2>
+
+<p>The usage of pure C or Fortran or any similar interfaces (see section <a href="mathgl_en_1.html#C-interface">C interface</a>) is practically identical to classes usage. But there are some differences. C functions must have argument HMGL (for graphics) and/or HMDT (for data arrays) which specifies the object for drawing or manipulating (changing). Fortran users may regard these variables as integer. So, firstly the user has to create this object by function mgl_create_*() and has to delete it after the using by function mgl_delete_*().
+</p>
+<p>Also, all arguments of C function have to be defined. So there are several functions with practically identical names doing practically the same. But some of them have simplified interface for the quick plotting and some of them have access to all plotting parameters for manual tunning.
+</p>
+<p>As an example of C function usage let me draw the plot from <a href="#Plots-for-2D-data">Plots for 2D data</a>. The C code which does it is shown below:
+</p><pre class="verbatim">    #include &lt;mgl/mgl_c.h&gt;
+    int main()
+    {
+        HMGL gr = mgl_create_graph_zb(600, 400);
+        mgl_set_alpha(gr, true);
+        mgl_set_light(gr, true);
+        HMDT a = mgl_create_data_size(30,20,1);
+        mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+
+        mgl_subplot(gr, 2,2,0);
+        mgl_rotate(gr, 40,60,0);
+        mgl_surf(gr,a,&quot;BbcyrR#&quot;);
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,1);
+        mgl_rotate(gr, 40,60,0);
+        mgl_dens(gr,a,&quot;BbcyrR#&quot;,NAN);
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,2);
+        mgl_rotate(gr, 40,60,0);
+        mgl_cont(gr,a,&quot;BbcyrR#&quot;,7,NAN);
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,3);
+        mgl_rotate(gr, 40,60,0);
+        mgl_axial(gr,a,&quot;BbcyrR#&quot;,3);
+        mgl_box(gr, true);
+
+        /* don't forgot to save graphics */
+        mgl_write_png(gr,&quot;sample.png&quot;,0);
+        return 0;
+    }
+</pre>
+<p>Practically the same simple to create a window. For example let rewrite the code from for window creation (see section <a href="#Using-FLTK_002fGLUT-window">Using FLTK/Qt/GLUT window</a>):
+</p><pre class="verbatim">    int sample(HMGL gr, void *)
+    {
+        mgl_rotate(gr,60,40,0);
+        mgl_box(gr,1);
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mgl_create_graph_fltk(sample, &quot;MathGL examples&quot;, NULL);
+        mgl_fltk_run();
+        return 0;
+    }
+</pre>
+<p>The Fortran code have some peculiarities. Exactly it not allow one to send arbitrary parameter (which was <code>NULL</code> in previous example) to function. This is limitation of Fortran language. So, the corresponding code will be <strong>NOT TESTED NOW!!!</strong>:
+</p><pre class="verbatim">    program TEST
+    integer x,f,func
+        call mgl_create_graph_fltk(sample, 'MathGL examples');
+        call mgl_fltk_run();
+    end program TEST
+ 
+    integer function sample(gr)
+    integer*8 gr
+        call mgl_rotate(gr,60,40,0);
+        call mgl_box(gr,1);
+        sample=0
+    return
+    end
+</pre>
+<hr size="6">
+<a name="MathGL-and-PyQt"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#C_002fFortran-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL-and-PyQt-1"></a>
+<h2 class="section">2.6 MathGL and PyQt</h2>
+
+<p>Generally SWIG based classes (including the Python one) are the same as C++ classes. However, there are few tips for using MathGL with PyQt. Below I place a very simple python code which demonstrate how MathGL can be used with PyQt. This code is mostly written by Prof. Dr. Heino Falcke. You can just copy it to a file <code>mgl-pyqt-test.py</code> and execute it from python shell by command <code>execfile(&quot;mgl-pyqt-test.py&quot;)</code>
+</p>
+<pre class="verbatim">from PyQt4 import QtGui,QtCore
+from mathgl import *
+import sys
+app = QtGui.QApplication(sys.argv)
+qpointf=QtCore.QPointF()
+
+class hfQtPlot(QtGui.QWidget):
+    def __init__(self, parent=None):
+        QtGui.QWidget.__init__(self, parent)
+        self.img=(QtGui.QImage())
+    def setgraph(self,gr):
+        self.buffer='\t' 
+        self.buffer=self.buffer.expandtabs(4*gr.GetWidth()*gr.GetHeight())
+        gr.GetBGRN(self.buffer,len(self.buffer))
+        self.img=QtGui.QImage(self.buffer, gr.GetWidth(),gr.GetHeight(),QtGui.QImage.Format_ARGB32)
+        self.update()
+    def paintEvent(self, event):
+        paint = QtGui.QPainter()
+        paint.begin(self)
+        paint.drawImage(qpointf,self.img)
+        paint.end()
+
+BackgroundColor=[1.0,1.0,1.0]
+size=100
+gr=mglGraph()
+y=mglData(size)
+#y.Modify(&quot;((0.7*cos(2*pi*(x+.2)*500)+0.3)*(rnd*0.5+0.5)+362.135+10000.)&quot;)
+y.Modify(&quot;(cos(2*pi*x*10)+1.1)*1000.*rnd-501&quot;)
+x=mglData(size)
+x.Modify(&quot;x^2&quot;);
+
+def plotpanel(gr,x,y,n):
+    gr.SubPlot(2,2,n)
+    gr.SetXRange(x)
+    gr.SetYRange(y)
+    gr.AdjustTicks()
+    gr.Axis()
+    gr.Box()
+    gr.Label(&quot;x&quot;,&quot;x-Axis&quot;,1)
+    gr.Label(&quot;y&quot;,&quot;y-Axis&quot;,1)
+    gr.ClearLegend()
+    gr.AddLegend(&quot;Legend: &quot;+str(n),&quot;k&quot;)
+    gr.Legend()
+    gr.Plot(x,y)
+
+
+gr.Clf(BackgroundColor[0],BackgroundColor[1],BackgroundColor[2])
+gr.SetPlotFactor(1.5)
+plotpanel(gr,x,y,0)
+y.Modify(&quot;(cos(2*pi*x*10)+1.1)*1000.*rnd-501&quot;)
+plotpanel(gr,x,y,1)
+y.Modify(&quot;(cos(2*pi*x*10)+1.1)*1000.*rnd-501&quot;)
+plotpanel(gr,x,y,2)
+y.Modify(&quot;(cos(2*pi*x*10)+1.1)*1000.*rnd-501&quot;)
+plotpanel(gr,x,y,3)
+
+gr.WritePNG(&quot;test.png&quot;,&quot;Test Plot&quot;)
+
+qw = hfQtPlot()
+qw.show()
+qw.setgraph(gr)
+qw.raise_()
+</pre>
+
+<hr size="6">
+<a name="Hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MathGL-and-PyQt" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t_0060_0060Compound_0027_0027-graphics" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Hints-1"></a>
+<h2 class="section">2.7 Hints</h2>
+
+<p>In this section I have included some small hints and advices for the improving of the quality of plots and for the demonstration of some non-trivial features of MathGL library. In contrast to previous examples I showed mostly the idea but not the whole drawing function. More examples with the source code can be find at <a href="http://mathgl.sf.net/">http://mathgl.sf.net/</a> or in section <a href="mathgl_en_9.html#Samples">Samples</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t_0060_0060Compound_0027_0027-graphics">2.7.1 &ldquo;Compound&rdquo; graphics</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Two-axes-in-one-plot">2.7.2 Two axes in one plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Titles-for-the-plot">2.7.3 Titles for the plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Changing-of-the-color-range">2.7.4 Changing of the color range</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Management-of-a-point-cutting">2.7.5 Management of a point cutting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-field-visualization">2.7.6 Vector field visualization</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Several-light-sources">2.7.7 Several light sources</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutMin-and-CutMax-features">2.7.8 CutMin and CutMax features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mapping-visualization">2.7.9 Mapping visualization</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Log_002dscaled-plot">2.7.10 Log-scaled plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t_0060_0060Templates_0027_0027">2.7.11 &ldquo;Templates&rdquo;</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting-hints">2.7.12 Nonlinear fitting hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#PDE-solving-hints">2.7.13 PDE solving hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#MGL-parser-using">2.7.14 MGL parser using</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stereo-image">2.7.15 Stereo image</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="g_t_0060_0060Compound_0027_0027-graphics"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Two-axes-in-one-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Compound_0027_0027-graphics-1"></a>
+<h3 class="subsection">2.7.1 &ldquo;Compound&rdquo; graphics</h3>
+
+<p>As I noted above, MathGL functions (except the special one, like Clf()) do  not erase the previous plotting but just add the new one. It allows one to draw &ldquo;compound&rdquo; plots easily. For example, popular Matlab command <code>surfc</code> can be emulated in MathGL by 2 calls:
+</p><pre class="verbatim">    Surf(a);
+    Cont(a, 0, 7, -1);     // draw contours at z = -1
+</pre><p>Here <var>a</var> is 2-dimensional data for the plotting, <code>-1</code> is the value of z-coordinate at which the contour should be plotted (at the bottom in this example). Analogously, one can draw density plot instead of contour lines and so on.
+</p>
+<p>Another nice plot is contour lines plotted directly on the surface:
+</p><pre class="verbatim">    Light(true);       // switch on light for the surface
+    Surf(a, &quot;BbcyrR&quot;); // select 'jet' colormap for the surface
+    Cont(a, &quot;y&quot;);      // and yellow color for contours
+</pre><p>The possible difficulties arise in black&amp;white case, when the color of the surface can be close to the color of a contour line. In that case I may suggest the following code:
+</p><pre class="verbatim">    Light(true);       // switch on light for the surface
+    Surf(a, &quot;kw&quot;);     // select 'gray' colormap for the surface
+    CAxis(-1,0);       // first draw for darker surface colors
+    Cont(a, &quot;w&quot;);      // white contours
+    CAxis(0,1);        // now draw for brighter surface colors
+    Cont(a, &quot;k&quot;);      // black contours
+    CAxis(-1,1);       // return color range to original state
+</pre><p>The idea is to divide the color range on 2 parts (dark and bright) and to select the contrasting color for contour lines for each of part.
+</p>
+<p>Similarly, one can plot flow thread over density plot of vector field amplitude (this is another amusing plot from Matlab) and so on. The list of compound graphics can be prolonged but I hope that the general idea is clear.
+</p>
+<hr size="6">
+<a name="Two-axes-in-one-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t_0060_0060Compound_0027_0027-graphics" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Titles-for-the-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Two-axes-in-one-plot-1"></a>
+<h3 class="subsection">2.7.2 Two axes in one plot</h3>
+
+<p>Developing the previous hint one can make a plot with 2 or more axes. The idea is that the change of settings does not influence on the already drawn graphics. So, for 2-axes plot let us set the first axis and draw everything concerning it. Then let us setup the second axis and draw things for the second axis. The corresponding code is (see section <a href="mathgl_en_9.html#g_t2_002daxes-sample">2-axes sample</a>):
+</p><pre class="verbatim">    // set up first axis
+    Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,-1,-1));
+    Axis();            // draw it
+    Plot(y1,&quot;b&quot;);      // draw something in first axis
+    // set up second axis
+    Axis(mglPoint(0,0,0),mglPoint(1,1,1),mglPoint(1,1,1));
+    Axis();            // draw it
+    Stem(y2,&quot;r&quot;);      // draw something in second axis
+</pre><p>Note, that the first and the second axes look better if being placed in different corners. In the code presented above the first axis is placed in the left-bottom corner, and the second one is placed in the right-top corner.
+</p>
+<hr size="6">
+<a name="Titles-for-the-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Two-axes-in-one-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Changing-of-the-color-range" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Titles-for-the-plot-1"></a>
+<h3 class="subsection">2.7.3 Titles for the plot</h3>
+
+<p>The printing of nice titles for the plot is not so trivial task in general case. The problem is that the rotation and aspect change lead to different looks for titles of different subplots. So, the resulting look is not so good as it could be. The solution is simple &ndash; to print titles exactly after <code>SubPlot</code>() call and before any rotation, aspect change and so on! Analogously, the title for the whole picture looks better if it is printed first (before any <code>SubPlot()</code> calls). Alternatively you can use function <code>Title()</code> for plotting title for the picture at any time.
+</p>
+<hr size="6">
+<a name="Changing-of-the-color-range"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Titles-for-the-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Management-of-a-point-cutting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Changing-of-the-color-range-1"></a>
+<h3 class="subsection">2.7.4 Changing of the color range</h3>
+
+<p>By default (for the user comfort), the color range is set equal to z-range of the plot. However, there are different ranges. So, one can obtain amusing plot by the change of color range manually. For example, there are plots with one-color bottom (or top) or practically bi-color picture and so on.
+</p>
+<p>For example, compare 2 surfaces:
+</p><pre class="verbatim">    SubPlot(2,1,0)
+    Surf(a);           // usual coloring range
+    SubPlot(2,1,1)
+    CAxis(0,1);
+    Surf(a);           // bottom of the surface have one-colour filling
+</pre>
+<hr size="6">
+<a name="Management-of-a-point-cutting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Changing-of-the-color-range" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-field-visualization" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Management-of-a-point-cutting-1"></a>
+<h3 class="subsection">2.7.5 Management of a point cutting</h3>
+
+<p>Sometimes an experimental or numerical surface has outstanding points. Visualization of such surface will lead to the hole(s) in place of such points. The standard method of &ldquo;fighting&rdquo;  &ndash; to change data values &ndash; is not always good and is not so convenient. MathGL library has another method &ndash; to set variable <code>Cut=false</code>. As a consequence, all outstanding points will be projected on the bounding box.
+</p>
+<p>Such method is good not only for outstanding points but also for the case when one need to plane the bottom or the top of the plot. Exactly such case is demonstrated in the code:
+</p><pre class="verbatim">        mglData a(20,30);  // create some data
+        a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+        // set lower border above the data minimal value
+        Axis(mglPoint(-1,-1,0),mglPoint(1,1,1));
+        Cut = false;       // set off cutting flag
+`       Surf(a);           // and draw the surface
+</pre><p>It is an interesting result, is not it?
+</p>
+<hr size="6">
+<a name="Vector-field-visualization"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Management-of-a-point-cutting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Several-light-sources" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vector-field-visualization-1"></a>
+<h3 class="subsection">2.7.6 Vector field visualization</h3>
+
+<p>Vector field visualization (especially in 3d case <code>Vect3</code> or <code>VectC</code>) may look tangly &ndash; there are too many overlapping lines. I may suggest 2 ways to solve this problem. The first one is to change <code>MeshNum</code> for decreasing the number of hachures. The second way is to use the flow thread chart <code>Flow</code>. Unfortunately, I don&rsquo;t know any other methods to visualize 3d vector field. If you know any, e-mail me and I shall add it to MatGL.
+</p>
+<hr size="6">
+<a name="Several-light-sources"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-field-visualization" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutMin-and-CutMax-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Several-light-sources-1"></a>
+<h3 class="subsection">2.7.7 Several light sources</h3>
+
+<p>In contrast to the most of other programs, MathGL supports several (up to 10) light sources. Moreover, the color each of them can be different: white (this is usual), yellow, red, cyan, green and so on. The use of several light sources may be interesting for the highlighting of some peculiarities of the plot or just to make an amusing picture. Note, each light source can be switched on/off individually (see section <a href="mathgl_en_9.html#Several-light-sample">Several light sample</a>).
+</p>
+<hr size="6">
+<a name="CutMin-and-CutMax-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Several-light-sources" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mapping-visualization" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutMin-and-CutMax-features-1"></a>
+<h3 class="subsection">2.7.8 CutMin and CutMax features</h3>
+
+<p>MathGL library has a feature for cutting of points in some region <var>CutMin*CutMax</var>. Such an excision can be used to improve the look of the graphics. Moreover, this cutting may help to show an internal structure of an object (like <code>isocaps</code> plot in Matlab). For example, let us use the standard 3D data array and show its interior (see section <a href="mathgl_en_9.html#CutMinMax-sample">CutMinMax sample</a>).
+</p>
+<pre class="verbatim">    mglData  c(61,51,40);      // create the data
+    mglData v(10);	v.Fill(-0.5,1);
+    c.Modify(&quot;(-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1))&quot;);
+    gr-&gt;CutMin = mglPoint(0,-1,-1);     gr-&gt;CutMax = mglPoint(1,0,1.1);
+    gr-&gt;Surf3(-0.5,c,&quot;BbcyrR&quot;);
+    gr-&gt;ContF3(v,c,'x',-1,&quot;BbcyrR&quot;);    gr-&gt;ContF3(v,c,'y',-1,&quot;BbcyrR&quot;);
+    gr-&gt;ContF3(v,c,'z',0,&quot;BbcyrR&quot;);     gr-&gt;ContF3(v,c,'z',39,&quot;BbcyrR&quot;);
+</pre>
+<p>One can also exclude points from arbitrary area in space. This area defined by textual formula <code>CutOff()</code> (see section <a href="mathgl_en_3.html#Cutting">Cutting</a>). The algorithm is the same as shown for &ldquo;rectangular cutting&rdquo;.
+</p>
+<hr size="6">
+<a name="Mapping-visualization"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutMin-and-CutMax-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Log_002dscaled-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mapping-visualization-1"></a>
+<h3 class="subsection">2.7.9 Mapping visualization</h3>
+
+<p>Sometime ago I worked with mapping and have a question about its visualization. Let me remember you that mapping is some transformation rule for one set of number to another one. The 1d mapping is just an ordinary function &ndash; it takes a number and transforms it to another one. The 2d mapping (which I used) is a pair of functions which take 2 numbers and transform them to another 2 ones. Except general plots (like <code>SurfC</code>, <code>SurfA</code>) there is a special plot &ndash; Arnold diagram. It shows the area which is the result of mapping of some initial area (usually square).
+</p>
+<p>I tried to make such plot in <code>Map</code>. It shows the set of points or set of faces, which final position is the result of mapping. At this, the color gives information about their initial position and the height describes Jacobian value of the transformation. Unfortunately, it looks good only for the simplest mapping but for the  real multivalent quasi-chaotic mapping it produces a confusion. So, use it if you like :).
+</p>
+<hr size="6">
+<a name="Log_002dscaled-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mapping-visualization" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t_0060_0060Templates_0027_0027" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Log_002dscaled-plot-1"></a>
+<h3 class="subsection">2.7.10 Log-scaled plot</h3>
+
+<p>Log-scaled plot can be drawn by 2 steps. First, one should change the scale of axis by call <code>SetFunc(&quot;lg(x)&quot;, &quot;lg(y)&quot;);</code> (in this example, x- and y-axis will be log-scaled). Second, one should set logarithmic scale for axis ticks by changing variables: <code>SetTicks('x',0); SetTicks('y',0);</code>. Finally, one should check (or change) the axis ranges and origin so that their values to be positive. For example of log-log plot see section <a href="mathgl_en_9.html#Log_002dlog-sample">Log-log sample</a>.
+</p>
+<hr size="6">
+<a name="g_t_0060_0060Templates_0027_0027"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Log_002dscaled-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting-hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Templates_0027_0027-1"></a>
+<h3 class="subsection">2.7.11 &ldquo;Templates&rdquo;</h3>
+
+<p>As I have noted before, the change of settings will influence only for the further plotting commands. This allows one to create template function which will contain settings and primitive drawing for often used plots. Correspondingly one may call this template-function for drawing simplification.
+</p>
+<p>For example, let one has a set of points (experimental or numerical) and wants to compare it with theoretical law (for example, with exponent law <em>\exp(-x/2), x \in [0, 20]</em>). The template-function for this task is:
+</p><pre class="verbatim">    void template(mglGraph *gr)
+    {
+        mglData  law(100);      // create the law
+        law.Modify(&quot;exp(-10*x)&quot;);
+        gr-&gt;Axis(mglPoint(0,0.0001), mglPoint(20,1), mglPoint(0,0.0001));
+        gr-&gt;SetFunc(0,&quot;lg(y)&quot;,0);   gr-&gt;dy = 0;
+        gr-&gt;Plot(law,&quot;r2&quot;);
+        gr-&gt;Text(mglPoint(10,0.2),&quot;Theoretical law: e^x&quot;,&quot;rL&quot;);
+        gr-&gt;Label('x',&quot;x val.&quot;); gr-&gt;Label('y',&quot;y val.&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid(&quot;xy&quot;,&quot;g;&quot;); gr-&gt;Box();
+    }
+</pre><p>At this, one will only write a few lines for data drawing:
+</p><pre class="verbatim">    template(gr);     // apply settings and default drawing from template
+    mglData dat(&quot;fname.dat&quot;); // load the data
+    // and draw it (suppose that data file have 2 columns)
+    gr-&gt;Plot(dat.SubData(0),dat.SubData(1),&quot;bx &quot;);
+</pre><p>A template-function can also contain settings for font, transparency, lightning, color scheme and so on.
+</p>
+<hr size="6">
+<a name="Nonlinear-fitting-hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t_0060_0060Templates_0027_0027" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#PDE-solving-hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-hints-1"></a>
+<h3 class="subsection">2.7.12 Nonlinear fitting hints</h3>
+
+<p>Nonlinear fitting is rather simple. All that you need is the data to fit, the approximation formula and the list of coefficients to fit (better with its initial guess values). Let me demonstrate it on the following simple example (see section <a href="mathgl_en_9.html#Fitting-sample">Fitting sample</a>). First, let us use sin function with some random noise:
+</p><pre class="verbatim">    mglData rnd(100), idl(50); //data to be fitted and ideal data
+    rnd.Modify(&quot;0.4*rnd+0.1+sin(4*pi*x)&quot;);
+    idl.Modify(&quot;0.3+sin(4*pi*x)&quot;);
+</pre><p>and plot it to see that data we will fit
+</p><pre class="verbatim">    gr-&gt;Axis(mglPoint(-1,-2), mglPoint(1,2));
+    gr-&gt;Plot(rnd, &quot;. &quot;); gr-&gt;Plot(idl, &quot;b&quot;);
+    gr-&gt;Box();
+    gr-&gt;Text(mglPoint(0,2.2), &quot;initial: y = 0.3+sin(2\pi x)&quot;, &quot;C:b&quot;, -1);
+</pre>
+<p>The next step is the fitting itself. For that let me specify an initial values <var>ini</var> for coefficients &lsquo;<samp>abc</samp>&rsquo; and do the fitting for approximation formula &lsquo;<samp>a+b*sin(c*x)</samp>&rsquo;
+</p><pre class="verbatim">    mglData res;   // The data for found formula
+    float ini[3] = {1, 1, 3};
+    gr-&gt;Fit(res, rnd, &quot;a+b*sin(c*x)&quot;, &quot;abc&quot;, ini);
+</pre><p>Now display it
+</p><pre class="verbatim">    gr-&gt;Plot(res, &quot;r&quot;);
+    gr-&gt;Text(mglPoint(-1,-1.3), &quot;fitted:&quot;, &quot;L:r&quot;, -1);
+    gr-&gt;PutsFit(mglPoint(0,-1.8), &quot;y = &quot;, &quot;C:r&quot;, -1);
+</pre>
+<p>NOTE! the fitting results may have strong dependence on initial values for coefficients due to algorithm features. The problem is that in general case there are several local &quot;optimums&quot; for coefficients and the program returns only first found one! There are no guaranties that it will be the best. Try for example to set <code>ini[3] = {0, 0, 0}</code> in the code above.
+</p>
+<hr size="6">
+<a name="PDE-solving-hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting-hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-parser-using" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="PDE-solving-hints-1"></a>
+<h3 class="subsection">2.7.13 PDE solving hints</h3>
+
+<p>Solving of Partial Differential Equations (PDE, including beam tracing) and ray tracing (or finding particle trajectory) are more or less common task. So, MathGL have several functions for that. There are <code>mglRay()</code> for ray tracing, <code>mglPDE()</code> for PDE solving, <code>mglQO2d()</code> for beam tracing in 2D case (see section <a href="mathgl_en_6.html#Global-functions">Global functions</a>). Note, that these functions take &ldquo;Hamiltonian&rdquo; or equations as string values. And I don&rsquo;t plan now to allow one to use user-defined functions. There are 2 reasons: the complexity of corresponding interface; and the basic nature of used methods which are good for samples but may not good for serious scientific calculations.
+</p>
+<p>The ray tracing can be done by <code>mglRay()</code> function. Really ray tracing equation is Hamiltonian equation for 3D space. So, the function can be also used for finding a particle trajectory (i.e. solve Hamiltonian ODE) for 1D, 2D or 3D cases. The function have a set of arguments. First of all, it is Hamiltonian which defined the media (or the equation) you are planning to use. The Hamiltonian is defined by string which may depend on coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, time &lsquo;<samp>t</samp>&rsquo; (for particle dynamics) and momentums &lsquo;<samp>p</samp>&rsquo;=<em>p_x</em>, &lsquo;<samp>q</samp>&rsquo;=<em>p_y</em>, &lsquo;<samp>v</samp>&rsquo;=<em>p_z</em>. Next, you have to define the initial conditions for coordinates and momentums at &lsquo;<samp>t</samp>&rsquo;=0 and set the integrations step (default is 0.1) and its duration (default is 10). The Runge-Kutta method of 4-th order is used for integration.
+</p><pre class="verbatim">    mglData r,a,re(128),im(128);
+    r = mglRay(&quot;p^2+q^2-x-1&quot;, mglPoint(-0.7, -1), mglPoint(0, 0.5));
+    gr-&gt;Plot(r.SubData(0), r.SubData(1));
+</pre><p>This example calculate the reflection from linear layer (media with Hamiltonian &lsquo;<samp>p^2+q^2-x-1</samp>&rsquo;=<em>p_x^2+p_y^2-x-1</em>). This is parabolic curve. The resulting array have 7 columns which contain data for {x,y,z,p,q,v,t}.
+</p>
+<p>The solution of PDE is a bit more complicated. As previous you have to specify the equation as pseudo-differential operator <em>\hat H(x, \nabla)</em> which is called sometime as &ldquo;Hamiltonian&rdquo; (for example, in beam tracing). As previously, it is defined by string which may depend on coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; (but not time!), momentums &lsquo;<samp>p</samp>&rsquo;=<em>(d/dx)/i k_0</em>, &lsquo;<samp>q</samp>&rsquo;=<em>(d/dy)/i k_0</em> and field amplitude &lsquo;<samp>u</samp>&rsquo;=<em>|u|</em>. The evolutionary coordinate is &lsquo;<samp>z</samp>&rsquo; in all cases. So that, the equation look like <em>du/dz = ik_0 H(x,y,\hat p, \hat q, |u|)[u]</em>. Dependence on field amplitude &lsquo;<samp>u</samp>&rsquo;=<em>|u|</em> allows one to solve nonlinear problems too. For example, for nonlinear Shrodinger equation you may set <code>ham=&quot;p^2 + q^2 - u^2&quot;</code>. Also you may specify imaginary part for wave absorption, like <code>ham = &quot;p^2 + i*x*(x&gt;0)&quot;</code>, but only if dependence on variable &lsquo;<samp>i</samp>&rsquo; is linear (i.e. <em>H = Hre+i*Him</em>).
+</p>
+<p>Next step is specifing the initial conditions at &lsquo;<samp>z</samp>&rsquo;=<code>Min.z</code>. The function need 2 arrays for real and for imaginary part. Note, that coordinates x,y,z are supposed to be in specified range [Min, Max]. So, the data arrays should have corresponding scales. Finally, you may set the integration step and paramter k0=<em>k_0</em>. Also keep in mind, that internally the 2 times large box is used (for suppressing numerical reflection from boundaries) and the equation should well defined even in this extended range.
+</p>
+<p>Final comment is concerning the possible form of pseudo-differential operator <em>H</em>. At this moment, simplified form of operator <em>H</em> is supported &ndash; all &ldquo;mixed&rdquo; terms (like &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) are excluded. For example, in 2D case this operator is effectively <em>H = f(p,z) + g(x,z,u)</em>. However commutable combinations (like &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy) are allowed for 3D case. 
+</p>
+<p>So, for example let solve the equation for beam deflected from linear layer and absorbed later. The operator will have the form &lsquo;<samp>&quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;</samp>&rsquo; that correspond to equation <em>ik_0 \partial_z u + \Delta u + x \cdot u + i (x+z)/2 \cdot u = 0</em>. This is typical equation for Electron Cyclotron (EC) absorption in magnetized plasmas. For initial conditions let me select the beam with plane phase front <em>exp(-48*(x+0.7)^2)</em>. The corresponding code looks like this (see section <a href="mathgl_en_9.html#PDE-sample">PDE sample</a>):
+</p><pre class="verbatim">    mglData a,re(128),im(128);
+    re.Fill(&quot;exp(-48*(x+0.7)^2)&quot;, gr-&gt;Min, gr-&gt;Max);
+    a = mglPDE(&quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;, re, im,
+                gr-&gt;Min, gr-&gt;Max, 0.01, 30);
+    a.Transpose(&quot;yxz&quot;);
+    gr-&gt;CAxis(0, 1);
+    gr-&gt;Dens(a,&quot;wyrRk&quot;);
+</pre>
+<p>The last example is example of beam tracing. Beam tracing equation is special kind of PDE equation written in coordinates accompanied to a ray. Generally this is the same parameters and limitation as for PDE solving but the coordinates are defined by the ray and by parameter of grid width <var>w</var> in direction transverse the ray. So, you don&rsquo;t need to specify the range of coordinates. <strong>BUT</strong> there is limitation. The accompanied coordinates are well defined only for smooth enough rays, i.e. then the ray curvature <em>K</em> (which is defined as <em>1/K^2 = (|\ddot r|^2 |\dot r|^2 - (\ddot r, \dot r)^2)/|\dot r|^6</em>) is much large then the grid width: <em>K&gt;&gt;w</em>. So, you may receive incorrect results if this condition will be broken.
+</p>
+<p>You may use following code for obtaining the same solution as in previous example:
+</p><pre class="verbatim">    mglData r, xx, yy, a, im(128), re(128);
+    const char *ham = &quot;p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)&quot;;
+    r = mglRay(ham, mglPoint(-0.7, -1), mglPoint(0, 0.5), 0.02, 2);
+    // now start beam tracing
+    re.Fill(&quot;exp(-48*x^2)&quot;, gr-&gt;Min, gr-&gt;Max);
+    a = mglQO2d(ham, re, im, r, 1, 30, &amp;xx, &amp;yy);
+    gr-&gt;CAxis(0, 1);
+    gr-&gt;Dens(xx, yy, a, &quot;wyrRk&quot;);
+</pre>
+
+<hr size="6">
+<a name="MGL-parser-using"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#PDE-solving-hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stereo-image" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MGL-parser-using-1"></a>
+<h3 class="subsection">2.7.14 MGL parser using</h3>
+
+<p>Sometimes you may prefer to use MGL scripts in yours code. It is simpler (especially in comparison with C/Fortran interfaces) and fast way to plot the data with annotations, labels and so on. Class <code>mglParse</code> (see section <a href="mathgl_en_7.html#mglParse-class">mglParse class</a> parse MGL scripts in C++. It have also the corresponding interface for C/Fortran.
+</p>
+<p>The key function here is <code>mglParse::Parse()</code> (or <code>mgl_parse()</code> for C/Fortran) which execute one command per string. At this the detailed information about the possible errors or warnings is passed as function value. Or you may execute the whole script as long string with lines separated by &lsquo;<samp>\n</samp>&rsquo;. Functions <code>mglParse::Execute()</code> and <code>mgl_parse_text()</code> perform it. Also you may set the values of paramters &lsquo;<samp>$0</samp>&rsquo;...&lsquo;<samp>$9</samp>&rsquo; for the script by functions <code>mglParse::AddParam()</code> or <code>mgl_add_param()</code>, allow/disable picture resizing, check &ldquo;once&rdquo; status and so on. The usage is rather stright-forward.
+</p>
+<p>The only non-obvious thing is data transition between script and yours program. There are 2 stages: add or find variable; and set data to variable. In C++ you may use functions <code>mglParse::AddVar()</code> and <code>mglParse::FindVar()</code> which return pointer to <code>mglVar</code> structure. This structure contain data itself, the variable name and callback function which will be called if variable destroied. Last feature allows you to control the presence of the variable and, for example, close a window with data if this variable is destroyed. In C/Fortran the corresponding functions are <code>mgl_add_var()</code>, <code>mgl_find_var()</code>. But these functions return the data array only. Note, you <strong>must not delete or free</strong> the data obtained from these functions!
+</p>
+<p>So, some simple example at the end. Here I define a data array, create variable, put data into it and plot it. The C++ code looks like this:
+</p><pre class="verbatim">    float a[100];   // let a_i = sin(4*pi*x), x=0...1
+    for(int i=0;i&lt;100;i++)  a[i]=sin(4*M_PI*i/99);
+    mglParse *parser = new mglParse;
+    mglData &amp;d = (parser-&gt;AddVar(&quot;dat&quot;))-&gt;d;
+    d.Set(a,100); // set data to variable
+    parser-&gt;Execute(gr, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+    // you may break script at any line do something 
+    // and continue after that
+    parser-&gt;Execute(gr, &quot;xlabel 'x'\nylabel 'y'&quot;);
+    // also you may use cycles or conditions in script
+    parser-&gt;Execute(gr, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+    gr-&gt;WritePNG(&quot;test.png&quot;);   // don't forgot to save picture
+</pre><p>The code in C/Fortran looks practically the same:
+</p><pre class="verbatim">    float a[100];   // let a_i = sin(4*pi*x), x=0...1
+    int i;
+    for(i=0;i&lt;100;i++)  a[i]=sin(4*M_PI*i/99);
+    HMPR parser = mgl_create_parser();
+    HMDT d = mgl_add_var(parser, &quot;dat&quot;);
+    mgl_data_set_float(d,a,100,1,1);    // set data to variable
+    mgl_parse_text(gr, parser, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+    // you may break script at any line do something 
+    // and continue after that
+    mgl_parse_text(gr, parser, &quot;xlabel 'x'\nylabel 'y'&quot;);
+    // also you may use cycles or conditions in script
+    mgl_parse_text(gr, parser, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+    mgl_write_png(gr, &quot;test.png&quot;, &quot;&quot;);  // don't forgot to save picture
+</pre>
+<hr size="6">
+<a name="Stereo-image"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-parser-using" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stereo-image-1"></a>
+<h3 class="subsection">2.7.15 Stereo image</h3>
+
+<p>One can easily create stereo image in MathGL. Stereo image can be produced by making two subplots with slightly different rotation angles. The corresponding code looks like this (see section <a href="mathgl_en_9.html#Stereo-image-sample">Stereo image sample</a>):
+</p><pre class="verbatim">    gr-&gt;SubPlot(2,1,0);     // left image
+    gr-&gt;Rotate(40,60+3);
+    // draw something here
+    
+    gr-&gt;SubPlot(2,1,1);     // right image
+    gr-&gt;Rotate(40,60-3);
+    // draw the same here
+</pre>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_3.html b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_3.html
new file mode 100644
index 0000000..de9fc46
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_3.html
@@ -0,0 +1,4857 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: 3. MathGL core</title>
+
+<meta name="description" content="MathGL 1.11: 3. MathGL core">
+<meta name="keywords" content="MathGL 1.11: 3. MathGL core">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="MathGL-core"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_2.html#Stereo-image" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL-core-1"></a>
+<h1 class="chapter">3. MathGL core</h1>
+<a name="index-mglGraph"></a>
+
+<p>The core of MathGL is <strong>mglGraph</strong> class defined in <code>#include &lt;mgl/mgl.h&gt;</code>. It contains a lot of plotting functions for 1D, 2D and 3D plots. It also encapsulates parameters for axes drawing. Moreover an arbitrary coordinate transformation may be used for each axis. All plotting functions use data encapsulated in mglData class (see section <a href="mathgl_en_6.html#mglData-class">mglData class</a>) that allows to check sizes of used arrays easily. Also it have many functions for data handling: modify it by formulas, find momentums and distribution (histogram), apply operator (differentiate, integrate, transpose, Fourier and so on), change data sizes (interpolate, squeeze, crop and so on). Additional information about colors, fonts, formula parsing can be found in <a href="mathgl_en_7.html#Other-classes">Other classes</a>.
+</p>
+<p>Note that class mglGraph is abstract and contains only interface functions for plotting but does not make plot by itself. For plotting in specific device (screen, memory or file) one should use derived classes: mglGraphZB &ndash; for bitmap picture in file or in memory; mglGraphPS &ndash; for vector PostScript picture; mglGraphGL &ndash; for drawing using OpenGL, or for GLUT windows interface; and so on, see section <a href="mathgl_en_4.html#Plotter-classes">Plotter classes</a>. If you want not only to create a picture but to view it in a window/widget or to run animation and so on then look at <a href="mathgl_en_5.html#Widget-classes">Widget classes</a>.
+</p>
+<p>There is a C++ wrapper class which have the same name <code>mglGraph</code> and defined in <code>mgl/mgl_graph.h</code>. You can use this class even with non-GNU compilers (i.e. in Borland or Microsoft one), but you <strong>should not include</strong> any <code>mgl/mgl.h</code> or <code>mgl/mgl_parse.h</code> headers in this case! This wrapper class also used as base for all SWIG-based interfaces (Python, Octave and so on). So, later it is refered as &lsquo;<samp>Python</samp>&rsquo; class for distinguish from original &lsquo;<samp>C++</samp>&rsquo; class defined in <code>mgl/mgl.h</code> .
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Graphics-setup">3.1 Graphics setup</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-settings">3.2 Axis settings</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transformation-matrix">3.3 Transformation matrix</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Export-to-file">3.4 Export to file</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Primitives-drawing">3.5 Primitives drawing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing">3.6 Text printing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-Colorbar">3.7 Axis and Colorbar</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Legend">3.8 Legend</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting">3.9 1D plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting">3.10 2D plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting">3.11 3D plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting">3.12 Dual plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-fields">3.13 Vector fields</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-plotting">3.14 Other plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting">3.15 Nonlinear fitting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-distributions">3.16 Data distributions</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Frames_002fAnimation">3.17 Frames/Animation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#IDTF-functions">3.18 IDTF functions</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Graphics-setup"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MathGL-core" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Graphics-setup-1"></a>
+<h2 class="section">3.1 Graphics setup</h2>
+<a name="index-MathGL-setup"></a>
+
+<p>Functions and variables in this group influences on overall graphics appearance. So all of them should be placed <em>before</em> any actual plotting function calls.
+</p>
+<dl>
+<dt><a name="index-DefaultPlotParam"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DefaultPlotParam</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fset_005fdef_005fparam"></a><u>C function:</u> <code>void</code> <b>mgl_set_def_param</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Restore initial values for all of parameters except described in <a href="#Zooming">Zooming</a>.
+</p></dd></dl>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Transparency">3.1.1 Transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lighting">3.1.2 Lighting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fog">3.1.3 Fog</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Default-sizes">3.1.4 Default sizes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Zooming">3.1.5 Zooming</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cutting">3.1.6 Cutting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-settings">3.1.7 Font settings</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Palette-and-colors">3.1.8 Pallete and colors</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Error-handling">3.1.9 Error handling</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-settings">3.1.10 Other settings</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Graphics-setup" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lighting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transparency-1"></a>
+<h3 class="subsection">3.1.1 Transparency</h3>
+<a name="index-Alpha"></a>
+<a name="index-SetAlphaDef"></a>
+<a name="index-SetTransparent"></a>
+<a name="index-SetTranspType"></a>
+
+<p>There are several functions and variables for setup transparency. The general function is <code>Alpha()</code> which switch on/off the transparency for overall plot. It influence only for graphics which created after <code>Alpha()</code> call (with one exception, mglGraphGL). Function <code>SetAlphaDef</code> specify the default value of alpha-channel. You may switch off transparency of selected plot by function <code>SetTransparent</code>. Finally, function <code>SetTranspType</code> set the kind of transparency. See section <a href="mathgl_en_9.html#Transparent-surface-sample">Transparent surface sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Alpha-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>bool</code> <b>Alpha</b><i> (<code>bool</code> enable)</i></dt>
+<dt><a name="index-mgl_005fset_005falpha"></a><u>C function:</u> <code>void</code> <b>mgl_set_alpha</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Sets the transparency on/off and returns previous value of transparency. It is recommended to call this function before any plotting command. In any case it must be called before <code>Finish()</code> function if the last is used. Default value is transparency off. Unfortunately it switches the transparency on/off for all subplots. Use <code>SetTransparent(false)</code> in particular plot to disable its transparency.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetAlphaDef-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetAlphaDef</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005falpha_005fdefault"></a><u>C function:</u> <code>void</code> <b>mgl_set_alpha_default</b><i> (<code>HMGL</code> gr, <code>float</code> alpha)</i></dt>
+<dd><p>Sets default value of alpha channel (transparency) for all plotting functions. Note, that OpenGL (mglGraphGL) has incorrect drawing for large values of alpha in case of several overlapping surfaces.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTransparent-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTransparent</b><i> (<code>bool</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005ftransp"></a><u>C function:</u> <code>void</code> <b>mgl_set_transp</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Flag which temporary switches transparency on/off for the plot. This is the same as <code>Alpha(val)</code> but more correctly work in mglGraphGL class.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTranspType-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTranspType</b><i> (<code>int</code> type)</i></dt>
+<dt><a name="index-mgl_005fset_005ftransp_005ftype"></a><u>C function:</u> <code>void</code> <b>mgl_set_transp_type</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Set the transparency type. Normal transparency (&lsquo;<samp>0</samp>&rsquo;) &ndash; below things is less visible than upper ones. It does not look well in OpenGL mode (mglGraphGL) for several surfaces. Glass-like transparency (&lsquo;<samp>1</samp>&rsquo;) &ndash; below and upper things are commutable and just decrease intensity of light by RGB channel. Lamp-like transparency (&lsquo;<samp>2</samp>&rsquo;) &ndash; below and upper things are commutable and are the source of some additional light. I recommend to set <code>SetAlphaDef(0.3)</code> or less for lamp-like transparency. See section <a href="mathgl_en_9.html#Normal-transparency">Normal transparency</a>, <a href="mathgl_en_9.html#Glass_002dlike-transparency">Glass-like transparency</a>, <a href="mathgl_en_9.html#Lamp_002dlike-transparency">Lamp-like transparency</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AlphaDef-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>float</code> <b>AlphaDef</b></dt>
+<dd><p>Default value of alpha channel. See <code>SetAlphaDef()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Transparent-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>bool</code> <b>Transparent</b></dt>
+<dd><p>Flag which temporary switches transparency on/off for the plot. See <code>SetTransparent()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TranspType-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>int</code> <b>TranspType</b></dt>
+<dd><p>This variable set the transparency type. See <code>SetTranspType()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Lighting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fog" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Lighting-1"></a>
+<h3 class="subsection">3.1.2 Lighting</h3>
+<a name="index-Light"></a>
+<a name="index-Ambient"></a>
+<a name="index-AddLight"></a>
+
+<p>There are several functions for setup lighting. The general function is <code>Light(bool)</code> which switch on/off the lighting for overall plot. It influence only for graphics which created after <code>Light()</code> call (with one exception, mglGraphGL). Generally MathGL support up to 10 independent light sources. But in OpenGL mode only 8 of light sources is used due to OpenGL limitations. The position, color, brightness of each light source can be set separately. By default only one light source is active. It is source number <code>0</code> with white color, located at top of the plot.
+</p>
+<dl>
+<dt><a name="index-Light-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>bool</code> <b>Light</b><i> (<code>bool</code> enable)</i></dt>
+<dt><a name="index-mgl_005fset_005flight"></a><u>C function:</u> <code>void</code> <b>mgl_set_light</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Sets the using of light on/off for overall plot. Function returns previous value of lighting. Default value is lightning off.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Light-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Light</b><i> (<code>int</code> n, <code>bool</code> enable)</i></dt>
+<dt><a name="index-mgl_005fset_005flight_005fn"></a><u>C function:</u> <code>void</code> <b>mgl_set_light_n</b><i> (<code>HMGL</code> gr, <code>int</code> n, <code>int</code> enable)</i></dt>
+<dd><p>Switch on/off <var>n</var>-th light source separately.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AddLight-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>AddLight</b><i> (<code>int</code> n, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> c=<code>'w'</code>)</i></dt>
+<dt><a name="index-Light-3"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Light</b><i> (<code>int</code> n, <code>mglPoint</code> p, <code>char</code> c=<code>'w'</code>, <code>float</code> bright=<code>0.5</code>, <code>bool</code> infty=<code>true</code>)</i></dt>
+<dt><a name="index-Light-4"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Light</b><i> (<code>int</code> n, <code>mglPoint</code> p, <code>mglColor</code> c, <code>float</code> bright=<code>0.5</code>, <code>bool</code> infty=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fadd_005flight"></a><u>C function:</u> <code>void</code> <b>mgl_add_light</b><i> (<code>HMGL</code> gr, <code>int</code> n, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> c)</i></dt>
+<dd><p>The function adds a light source with identification <var>n</var> at position <var>p</var> with color <var>c</var> and with brightness <var>bright</var> (which must be in range [0,1]). Flag <var>infty</var>=<code>true</code> puts the source to infinite distance (for the faster drawing).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Ambient-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Ambient</b><i> (<code>float</code> bright=<code>0.5</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fambbr"></a><u>C function:</u> <code>void</code> <b>mgl_set_ambbr</b><i> (<code>HMGL</code> gr, <code>float</code> bright)</i></dt>
+<dd><p>Sets the brightness of ambient light. The value should be in range [0,1].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fog"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lighting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Default-sizes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fog-1"></a>
+<h3 class="subsection">3.1.3 Fog</h3>
+<a name="index-Fog"></a>
+
+<dl>
+<dt><a name="index-Fog-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Fog</b><i> (<code>float</code> d, <code>float</code> dz=<code>0.25</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005ffog"></a><u>C function:</u> <code>void</code> <b>mgl_set_fog</b><i> (<code>HMGL</code> gr, <code>float</code> d, <code>float</code> dz)</i></dt>
+<dd><p>Function imitate a fog in the plot. Fog start from relative distance <var>dz</var> from view point and its density growths exponentially in depth. So that the fog influence is determined by law ~ 1-exp(-<em>d*z</em>). Here <em>z</em> is normalized to 1 depth of the plot. If value <var>d</var>=<code>0</code> then the fog is absent. See section <a href="mathgl_en_9.html#Surface-in-fog-sample">Surface in fog sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Default-sizes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fog" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Zooming" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Default-sizes-1"></a>
+<h3 class="subsection">3.1.4 Default sizes</h3>
+<a name="index-SetTickLen"></a>
+<a name="index-SetTickStl"></a>
+<a name="index-SetBarWidth"></a>
+<a name="index-SetMarkSize"></a>
+<a name="index-SetArrowSize"></a>
+<a name="index-SetBaseLineWidth"></a>
+
+<p>These variables control the default (initial) values for most graphics parameters including sizes of markers, arrows, linewidth and so on. As any other settings these ones will influence only on plots created after the settings change.
+</p>
+<dl>
+<dt><a name="index-SetBarWidth-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetBarWidth</b><i> ( <code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fbar_005fwidth"></a><u>C function:</u> <code>void</code> <b>mgl_set_bar_width</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Sets relative width of rectangles in Bars, Barh, BoxPlot (see section <a href="#Bars">Bars</a>). Default value is <code>0.7</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetMarkSize-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetMarkSize</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fmark_005fsize"></a><u>C function:</u> <code>void</code> <b>mgl_set_mark_size</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Sets size of marks for <a href="#g_t1D-plotting">1D plotting</a>. Default value is <code>0.02</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetArrowSize-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetArrowSize</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005farrow_005fsize"></a><u>C function:</u> <code>void</code> <b>mgl_set_arrow_size</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Sets size of arrows for <a href="#g_t1D-plotting">1D plotting</a>, lines and curves (see section <a href="#Primitives-drawing">Primitives drawing</a>). Default value is <code>0.03</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetBaseLineWidth-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetBaseLineWidth</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fbase_005fline_005fwidth"></a><u>C function:</u> <code>void</code> <b>mgl_set_base_line_width</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Defines the base width for all lines. The value &lt;1 is ignored. For values &gt; 1 the real line width is result of multiplication of specified line width and the value of <var>BaseLineWidth</var>. Increase of this variables is actual for large bitmap pictures. Default value is <code>1</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTickLen-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTickLen</b><i> (<code>float</code> val, <code>float</code> stt=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005ftick_005flen"></a><u>C function:</u> <code>void</code> <b>mgl_set_tick_len</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>float</code> stt)</i></dt>
+<dd><p>The relative length of axis ticks. Default value is <code>0.1</code>. Parameter <var>stt</var>&gt;0 set relative length of subticks which is in <code>sqrt(1+stt)</code> times smaller.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTickStl-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTickStl</b><i> (<code>const char *</code>stl, <code>const char *</code>sub=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005ftick_005fstl"></a><u>C function:</u> <code>void</code> <b>mgl_set_tick_stl</b><i> (<code>HMGL</code> gr, <code>const char *</code>stl, <code>const char *</code>sub)</i></dt>
+<dd><p>The line style of axis ticks (<var>stl</var>) and subticks (<var>sub</var>). If <var>stl</var> is empty then default style is used (&lsquo;<samp>k</samp>&rsquo; or &lsquo;<samp>w</samp>&rsquo; depending on transparency type). If <var>sub</var> is empty then ticks style is used (i.e. <var>stl</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-BarWidth-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>float</code> <b>BarWidth</b></dt>
+<dd><p>Relative width of rectangles. See <code>SetBarWidth()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-MarkSize-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>float</code> <b>MarkSize</b></dt>
+<dd><p>The size of marks. See <code>SetMarkSize()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ArrowSize-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>float</code> <b>ArrowSize</b></dt>
+<dd><p>The size of arrows. See <code>SetArrowSize()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-BaseLineWidth-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>float</code> <b>BaseLineWidth</b></dt>
+<dd><p>The variable define the base width for all lines. See <code>SetBaseLineWidth()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Zooming"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Default-sizes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cutting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Zooming-1"></a>
+<h3 class="subsection">3.1.5 Zooming</h3>
+<a name="index-SetPlotFactor"></a>
+<a name="index-Zoom"></a>
+
+<p>These variables and functions control the overall zooming of the picture (see Zoom()) or the sub-picture (see PlotFactor). Normally you can use these variables and functions for removing &ldquo;white&rdquo; spaces around a plot.
+</p>
+<dl>
+<dt><a name="index-SetPlotFactor-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetPlotFactor</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fplotfactor"></a><u>C function:</u> <code>void</code> <b>mgl_set_plotfactor</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Sets the factor of plot size. It is not recommended to set it lower then 1.5. This is some analogue of function Zoom() but applied not to overall image but for each InPlot. Use negative value or zero to enable automatic <code>PlotFactor</code> selection.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Zoom-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Zoom</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> x2, <code>float</code> y2)</i></dt>
+<dt><a name="index-mgl_005fset_005fzoom"></a><u>C function:</u> <code>void</code> <b>mgl_set_zoom</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> x2, <code>float</code> y2)</i></dt>
+<dd><p>The function changes the scale of graphics that correspond to zoom in/out of the picture. After function call the current plot will be cleared and further the picture will contain plotting from its part [x1,x2]*[y1,y2]. Here picture coordinates <var>x1</var>, <var>x2</var>, <var>y1</var>, <var>y2</var> changes from 0 to 1. Attention! this settings can not be overwritten by any other functions. Use <code>Zoom(0,0,1,1)</code> to return default view.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-PlotFactor-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>float</code> <b>PlotFactor</b></dt>
+<dd><p>The factor of plot size. See <code>SetPlotFactor()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AutoPlotFactor-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>bool</code> <b>AutoPlotFactor</b></dt>
+<dd><p>Switch on/off automatic change of PlotFactor variable during plot rotation. See <code>SetPlotFactor()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cutting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Zooming" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cutting-1"></a>
+<h3 class="subsection">3.1.6 Cutting</h3>
+<a name="index-SetCut"></a>
+<a name="index-SetCutBox"></a>
+<a name="index-CutOff"></a>
+
+<p>These variables and functions set the condition when the points are excluded (cutted) from the drawing. Note, that a point with NAN value(s) of coordinate or amplitude will be automatically excluded from the drawing.
+</p>
+<dl>
+<dt><a name="index-SetCut-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCut</b><i> (<code>bool</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fcut"></a><u>C function:</u> <code>void</code> <b>mgl_set_cut</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+<dd><p>Flag which determines how points outside bounding box are drawn. If it is <code>true</code> then points are excluded from plot (it is default) otherwise the points are projected to edges of bounding box.
+</p></dd></dl>
+
+<div class="float">
+<img src="cut.png" alt="cut">
+
+</div><p><strong>Left figure is drawn with parameter <code>Cut=false</code>. Right one is drawn with parameter <code>Cut=true</code>.
+</strong>
+</p>
+<dl>
+<dt><a name="index-SetCutBox-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCutBox</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2)</i></dt>
+<dt><a name="index-mgl_005fset_005fcut_005fbox"></a><u>C function:</u> <code>void</code> <b>mgl_set_cut_box</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2)</i></dt>
+<dd><p>Lower and upper edge of the box in which never points are drawn. If both edges are the same (the variables are equal) then the cutting box is empty. See section <a href="mathgl_en_9.html#CutMinMax-sample">CutMinMax sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CutOff-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>CutOff</b><i> (<code>const char *</code>EqC)</i></dt>
+<dt><a name="index-mgl_005fset_005fcutoff"></a><u>C function:</u> <code>void</code> <b>mgl_set_cutoff</b><i> (<code>HMGL</code> gr, <code>const char *</code>EqC)</i></dt>
+<dd><p>Sets the cutting off condition by formula <var>EqC</var>. This condition determine will point be plotted or not. If value of formula is nonzero then point is omitted, otherwise it plotted. Set argument as <code>&quot;&quot;</code> to disable cutting off condition. See section <a href="mathgl_en_9.html#CutOff-sample">CutOff sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cut-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>bool</code> <b>Cut</b></dt>
+<dd><p>Flag which determines how points outside bounding box are drawn. See <code>SetCut()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CutMin_002c-CutMax-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>mglPoint</code> <b>CutMin, CutMax</b></dt>
+<dd><p>Lower and upper edge of the box in which never points are drawn. See <code>SetCutBox()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Font-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cutting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Palette-and-colors" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Font-settings-1"></a>
+<h3 class="subsection">3.1.7 Font settings</h3>
+<a name="index-SetFontSize"></a>
+<a name="index-SetFontDef"></a>
+<a name="index-SetRotatedText"></a>
+<a name="index-SetFontSizePT"></a>
+<a name="index-SetFontSizeCM"></a>
+<a name="index-SetFontSizeIN"></a>
+<a name="index-SetFont"></a>
+<a name="index-GetFont"></a>
+<a name="index-LoadFont"></a>
+<a name="index-CopyFont"></a>
+<a name="index-RestoreFont"></a>
+
+<dl>
+<dt><a name="index-SetFontSize-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetFontSize</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005ffont_005fsize"></a><u>C function:</u> <code>void</code> <b>mgl_set_font_size</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Sets the size of font for tick and axis labels. Default font size of axis labels is 1.4 times large than for tick labels.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetFontDef-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetFontDef</b><i> (<code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005fset_005ffont_005fdef"></a><u>C function:</u> <code>void</code> <b>mgl_set_font_def</b><i> (<code>HMGL</code> gr, <code>const char *</code> val)</i></dt>
+<dd><p>Sets the font specification (see section <a href="#Text-printing">Text printing</a>). Default is &lsquo;<samp>rC</samp>&rsquo; &ndash; Roman font centering.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetRotatedText-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetRotatedText</b><i> (<code>bool</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005frotated_005ftext"></a><u>C function:</u> <code>void</code> <b>mgl_set_rotated_text</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+<dd><p>Sets to use or not text rotation along axis.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-LoadFont-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>LoadFont</b><i> (<code>const char *</code>name, <code>const char *</code>path=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fload_005ffont"></a><u>C function:</u> <code>void</code> <b>mgl_load_font</b><i> (<code>HMGL</code> gr, <code>const char *</code>name, <code>const char *</code>path)</i></dt>
+<dd><p>Load font typeface from <var>path</var>/<var>name</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CopyFont-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>CopyFont</b><i> (<code>mglGraph *</code> from)</i></dt>
+<dt><a name="index-mgl_005fcopy_005ffont"></a><u>C function:</u> <code>void</code> <b>mgl_copy_font</b><i> (<code>HMGL</code> gr, <code>HMGL</code> gr_from)</i></dt>
+<dd><p>Copy font data from another <code>mglGraph</code> object.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-RestoreFont-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>RestoreFont</b><i> ()</i></dt>
+<dt><a name="index-mgl_005frestore_005ffont"></a><u>C function:</u> <code>void</code> <b>mgl_restore_font</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Restore font data to default typeface.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetFontSizePT-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>SetFontSizePT</b><i> (<code>float</code> cm, <code>int</code> dpi=<code>72</code>)</i></dt>
+<dd><p>Set FontSize by size in pt and picture DPI (default is 16 pt for dpi=72).
+</p></dd></dl>
+<dl>
+<dt><a name="index-SetFontSizeCM-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>inline void</code> <b>SetFontSizeCM</b><i> (<code>float</code> cm, <code>int</code> dpi=<code>72</code>)</i></dt>
+<dd><p>Set FontSize by size in centimeters and picture DPI (default is 0.56 cm = 16 pt).
+</p></dd></dl>
+<dl>
+<dt><a name="index-SetFontSizeIN-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>inline void</code> <b>SetFontSizeIN</b><i> (<code>float</code> cm, <code>int</code> dpi=<code>72</code>)</i></dt>
+<dd><p>Set FontSize by size in inch and picture DPI (default is 0.22 in = 16 pt).
+</p></dd></dl>
+<dl>
+<dt><a name="index-SetFont-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>SetFont</b><i> (<code>mglFont *</code>f)</i></dt>
+<dd><p>Sets font typeface. Note that each mglFont instance can be used with <em>ONLY ONE</em> mglGraph instance at a moment of time! If <code>f==&quot;&quot;</code> then default font is used.
+</p></dd></dl>
+<dl>
+<dt><a name="index-GetFont-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>inline mglFont *</code> <b>GetFont</b><i> ()</i></dt>
+<dd><p>Gets current typeface. Note that this variable can be deleted at next SetFont() call!
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FontSize-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>float</code> <b>FontSize</b></dt>
+<dd><p>The font size. See <code>SetFontSize()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-FontDef-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>char</code> <b>FontDef</b><i><code>[32]</code></i></dt>
+<dd><p>Font style. See <code>SetFontDef()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-RotatedText-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>bool</code> <b>RotatedText</b></dt>
+<dd><p>Set to use or not text rotation along axis.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Palette-and-colors"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Error-handling" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pallete-and-colors"></a>
+<h3 class="subsection">3.1.8 Pallete and colors</h3>
+<a name="index-SetPalColor"></a>
+<a name="index-SetPalNum"></a>
+<a name="index-SetPalette"></a>
+<a name="index-SetScheme"></a>
+<a name="index-SelectPen"></a>
+
+<dl>
+<dt><a name="index-SetPalette-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetPalette</b><i> (<code>const char *</code><var>colors</var>)</i></dt>
+<dt><a name="index-mgl_005fset_005fpalette"></a><u>C function:</u> <code>void</code> <b>mgl_set_palette</b><i> (<code>HMGL</code> gr, <code>const char *</code><var>colors</var>)</i></dt>
+<dd><p>Sets the palette as selected colors. Default value is <code>&quot;Hbgrcmyhlnqeup&quot;</code> that corresponds to colors: dark gray &lsquo;<samp>H</samp>&rsquo;, blue &lsquo;<samp>b</samp>&rsquo;, green &lsquo;<samp>g</samp>&rsquo;, red &lsquo;<samp>r</samp>&rsquo;, cyan &lsquo;<samp>c</samp>&rsquo;, magenta &lsquo;<samp>m</samp>&rsquo;, yellow &lsquo;<samp>y</samp>&rsquo;, gray &lsquo;<samp>h</samp>&rsquo;, blue-green &lsquo;<samp>l</samp>&rsquo;, sky-blue &lsquo;<samp>n</samp>&rsquo;, orange &lsquo;<samp>q</samp>&rsquo;, yellow-green &lsquo;<samp>e</samp>&rsquo;, blue-violet &lsquo;<samp>u</samp>&rsquo;, purple &lsquo;<samp>p</samp>&rsquo;. The palette is used mostly in 1D plots (see section <a href="#g_t1D-plotting">1D plotting</a>) for curves which styles are not specified.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetPalColor-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetPalColor</b><i> (<code>int</code> n, <code>float</code> r, <code>float</code> g, <code>float</code> b)</i></dt>
+<dt><a name="index-mgl_005fset_005fpal_005fcolor"></a><u>C function:</u> <code>void</code> <b>mgl_set_pal_color</b><i> (<code>HMGL</code> gr, <code>int</code> n, <code>float</code> r, <code>float</code> g, <code>float</code> b)</i></dt>
+<dd><p>Sets color for individual palette entry. Look at <code>SetPalette()</code> function for simplified palette setting.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetPalNum-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetPalNum</b><i> (<code>int</code> num)</i></dt>
+<dt><a name="index-mgl_005fset_005fpal_005fnum"></a><u>C function:</u> <code>void</code> <b>mgl_set_pal_num</b><i> (<code>HMGL</code> gr, <code>int</code> num)</i></dt>
+<dd><p>Sets the number of actual colors in palette. The value must be less then 100. 
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetScheme-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetScheme</b><i> (<code>const char *</code>sch)</i></dt>
+<dt><a name="index-mgl_005fset_005fscheme"></a><u>C function:</u> <code>void</code> <b>mgl_set_scheme</b><i> (<code>HMGL</code> gr, <code>const char *</code>sch)</i></dt>
+<dd><p>Set the color scheme for following plots. Usually this function is used internally. See section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SelectPen-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>SelectPen</b><i> (<code>const char *</code>sch)</i></dt>
+<dd><p>Set the line and mark styles for following plots. Usually this function is used internally. See section <a href="mathgl_en_1.html#Line-styles">Line styles</a>.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-Pal-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>mglColor</code> <b>Pal</b><i><code>[101]</code></i></dt>
+<dd><p>Color palette for <a href="#g_t1D-plotting">1D plotting</a>. See <code>SetPalette()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-NumPal-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>int</code> <b>NumPal</b></dt>
+<dd><p>Number of actual colors in palette. See <code>SetPalette()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Error-handling"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Palette-and-colors" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Error-handling-1"></a>
+<h3 class="subsection">3.1.9 Error handling</h3>
+
+<a name="index-Message"></a>
+<a name="index-SetWarn"></a>
+<a name="index-GetWarnCode"></a>
+
+<p>There are 2 variables which indicate the warnings/errors presence during plot creation. Normally user should set it to zero by <code>SetWarn(0);</code> before plotting and check if <var>WarnCode</var> is not zero after plotting. Only last warning will be saved. All warnings/errors produced by MathGL is not critical &ndash; the plot just will not be drawn.
+</p>
+<dl>
+<dt><a name="index-SetWarn-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>SetWarn</b><i> (<code>int</code> code, <code>const char *</code>who=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Set warning code and corresponding message from function <var>who</var>. Normally you should call this function only for clearing the warning state, i.e. call <code>SetWarn(0);</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Message-of-mglGraph"></a><u>General option (C++) of mglGraph:</u> <code>char *</code> <b>Message</b></dt>
+<dd><p>Pointer to buffer for writing messages about matters why some plot are not drawn. Set to NULL to disable messages. The buffer length must be at least 1024. If Message[0]==0 then there are no messages
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetWarnCode-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>int</code> <b>GetWarnCode</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fget_005fwarn_005fcode"></a><u>C function:</u> <code>int</code> <b>mgl_get_warn_code</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Return the numerical ID of warning about the not drawn plot. Possible values are:
+</p><dl compact="compact">
+<dt> <code>mglWarnNone=0</code></dt>
+<dd><p>Everything OK
+</p></dd>
+<dt> <code>mglWarnDim</code></dt>
+<dd><p>Data dimension(s) is incompatible
+</p></dd>
+<dt> <code>mglWarnLow</code></dt>
+<dd><p>Data dimension(s) is too small
+</p></dd>
+<dt> <code>mglWarnNeg</code></dt>
+<dd><p>Minimal data value is negative
+</p></dd>
+<dt> <code>mglWarnFile</code></dt>
+<dd><p>No file or wrong data dimensions
+</p></dd>
+<dt> <code>mglWarnMem</code></dt>
+<dd><p>Not enough memory
+</p></dd>
+<dt> <code>mglWarnZero</code></dt>
+<dd><p>Data values are zero
+</p></dd>
+<dt> <code>mglWarnLegA</code></dt>
+<dd><p>Too many legend entries
+</p></dd>
+<dt> <code>mglWarnLeg</code></dt>
+<dd><p>No legend entries
+</p></dd>
+<dt> <code>mglWarnSlc</code></dt>
+<dd><p>Slice value is out of range
+</p></dd>
+<dt> <code>mglWarnCnt</code></dt>
+<dd><p>Number of contours is zero or negative
+</p></dd>
+<dt> <code>mglWarnOpen</code></dt>
+<dd><p>Couldn&rsquo;t open file
+</p></dd>
+<dt> <code>mglWarnLId</code></dt>
+<dd><p>Light: ID is out of range
+</p></dd>
+<dt> <code>mglWarnSize</code></dt>
+<dd><p>Setsize: size(s) is zero or negative
+</p></dd>
+<dt> <code>mglWarnFmt</code></dt>
+<dd><p>Format is not supported for that build
+</p></dd>
+</dl>
+</dd></dl>
+
+<dl>
+<dt><a name="index-WarnCode-of-mglGraph"></a><u>Obsolete option of mglGraph:</u> <code>int</code> <b>WarnCode</b></dt>
+<dd><p>Numerical ID of warning about the not drawn plot.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Other-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Error-handling" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Other-settings-1"></a>
+<h3 class="subsection">3.1.10 Other settings</h3>
+<a name="index-SetMeshNum"></a>
+<a name="index-SetAxialDir"></a>
+<a name="index-SetDrawFace"></a>
+<a name="index-PlotId"></a>
+
+<dl>
+<dt><a name="index-SetMeshNum-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetMeshNum</b><i> (<code>int</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fmeshnum"></a><u>C function:</u> <code>void</code> <b>mgl_set_meshnum</b><i> (<code>HMGL</code> gr, <code>int</code> num)</i></dt>
+<dd><p>Sets approximate number of lines in Mesh(), Fall(), Grid() and also the number of hachures in Vect(), VectC(), Dew() and the number of cells in Cloud*(). By default (=0) it draws all lines/hachures/cells.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetAxialDir-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetAxialDir</b><i> (<code>char</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005faxial_005fdir"></a><u>C function:</u> <code></code> <b>mgl_set_axial_dir</b><i> (<code>HMGL</code> gr, <code>char</code> dir)</i></dt>
+<dd><p>Sets direction around which curve rotated in Axial() and Torus(). Default value is &rsquo;z&rsquo;.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetDrawFace-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetDrawFace</b><i> (<code>bool</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fdraw_005fface"></a><u>C function:</u> <code>void</code> <b>mgl_set_draw_face</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+<dd><p>Enable/disable faces drawing. It is useful for speeding up drawing (for example, during rotation and so on).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-PlotId-of-mglGraph"></a><u>General option (C++) of mglGraph:</u> <code>const char *</code> <b>PlotId</b></dt>
+<dd><p>Id of plot for saving filename (in GLUT window for example).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-MeshNum-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>int</code> <b>MeshNum</b></dt>
+<dd><p>Sets approximate number of lines/hachures/cells. See <code>SetMeshNum()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AxialDir-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>char</code> <b>AxialDir</b></dt>
+<dd><p>Set rotation direction. See <code>SetAxialDir()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DrawFace-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>bool</code> <b>DrawFace</b></dt>
+<dd><p>Flag for preventing faces drawing. See <code>SetDrawFace()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CirclePnts-of-mglGraph"></a><u>General option (C++) of mglGraph:</u> <code>int</code> <b>CirclePnts</b></dt>
+<dd><p>Number of points used for a circle approximation (for example, in <a href="#Primitives-drawing">Primitives drawing</a>, <a href="#Tube">Tube</a>, <a href="#Pipe">Pipe</a> and so on). Default value is 40.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GridPnts-of-mglGraph"></a><u>General option (C++) of mglGraph:</u> <code>int</code> <b>GridPnts</b></dt>
+<dd><p>Number of points used for grid lines drawing (it is important for curved coordinates). Default value is 50.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axis-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ranges-_0028bounding-box_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-settings-1"></a>
+<h2 class="section">3.2 Axis settings</h2>
+
+<p>These large set of variables and functions control how the axis and ticks will be drawn. Note that there is 3-step transformation of data coordinates are performed. Firstly, coordinates are projected if <code>Cut=true</code> (see section <a href="#Cutting">Cutting</a>), after it transformation formulas are applied, and finally the data was normalized in bounding box.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Curved-coordinates">3.2.2 Curved coordinates</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ticks">3.2.3 Ticks</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Ranges-_0028bounding-box_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Curved-coordinates" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ranges-_0028bounding-box_0029-1"></a>
+<h3 class="subsection">3.2.1 Ranges (bounding box)</h3>
+<a name="index-Axis"></a>
+<a name="index-CAxis"></a>
+<a name="index-XRange"></a>
+<a name="index-YRange"></a>
+<a name="index-ZRange"></a>
+<a name="index-Min"></a>
+<a name="index-Max"></a>
+<a name="index-Cmin"></a>
+<a name="index-Cmax"></a>
+<a name="index-RecalcBorder"></a>
+<a name="index-Org"></a>
+<a name="index-AutoOrg"></a>
+<a name="index-SetRanges"></a>
+<a name="index-SetAutoRanges"></a>
+
+<dl>
+<dt><a name="index-SetRanges-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetRanges</b><i> (<code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2, <code>float</code> z1=<code>0</code>, <code>float</code> z2=<code>0</code>)</i></dt>
+<dt><a name="index-Axis-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Axis</b><i> (<code>mglPoint</code> min, <code>mglPoint</code> max, <code>mglPoint</code> org=<code>mglPoint(NAN,NAN,NAN)</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005faxis_005f2d"></a><u>C function:</u> <code>void</code> <b>mgl_set_axis_2d</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> x2, <code>float</code> y2)</i></dt>
+<dt><a name="index-mgl_005fset_005faxis_005f3d"></a><u>C function:</u> <code>void</code> <b>mgl_set_axis_3d</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2)</i></dt>
+<dd><p>Safely sets the value for <var>Min</var>, <var>Max</var> and <var>Org</var> members (options) of the class. If minimal and maximal values of the coordinate are the same then they are ignored. This function also sets <var>Cmin</var>=<code>Min.z</code> and <var>Cmax</var>=<code>Max.z</code>. This is default color range for 2d plots.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetCRange"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCRange</b><i> (<code>float</code> min, <code>float</code> max)</i></dt>
+<dt><a name="index-CAxis-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>CAxis</b><i> (<code>float</code> min, <code>float</code> max)</i></dt>
+<dt><a name="index-mgl_005fset_005fcaxis"></a><u>C function:</u> <code>void</code> <b>mgl_set_caxis</b><i> (<code>HMGL</code> gr, <code>float</code> min, <code>float</code> max)</i></dt>
+<dd><p>Safely sets minimal and maximal values of data for coloring. This values are used later for determining the color of the surface.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-XRange-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>XRange</b><i> (<code>const mglData &amp;</code> dat, <code>bool</code> add=<code>false</code>, <code>float</code> fact=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fxrange"></a><u>C function:</u> <code>void</code> <b>mgl_set_xrange</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> add)</i></dt>
+<dd><p>Sets values of <code>Min.x</code> and <code>Max.x</code> as minimal and maximal values of data <var>a</var>. Parameter <var>add</var> specify to add or not the new range to current one. Parameter <var>fact</var> add additional range increase on value (<var>Max</var>-<var>Min</var>)*<var>fact</var>. See also Axis().
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-YRange-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>YRange</b><i> (<code>const mglData &amp;</code> dat, <code>bool</code> add=<code>false</code>, <code>float</code> fact=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fyrange"></a><u>C function:</u> <code>void</code> <b>mgl_set_yrange</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> add)</i></dt>
+<dd><p>Sets values of <code>Min.y</code> and <code>Max.y</code> as minimal and maximal values of data <var>a</var>. Parameter <var>add</var> specify to add or not the new range to current one. Parameter <var>fact</var> add additional range increase on value (<var>Max</var>-<var>Min</var>)*<var>fact</var>. See also Axis().
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ZRange-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ZRange</b><i> (<code>const mglData &amp;</code> dat, <code>bool</code> add=<code>false</code>, <code>float</code> fact=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fzrange"></a><u>C function:</u> <code>void</code> <b>mgl_set_zrange</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> add)</i></dt>
+<dd><p>Sets values of <code>Min.z</code> and <code>Max.z</code> as minimal and maximal values of data <var>a</var>. Parameter <var>add</var> specify to add or not the new range to current one. Parameter <var>fact</var> add additional range increase on value (<var>Max</var>-<var>Min</var>)*<var>fact</var>. See also Axis().
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CRange"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>CRange</b><i> (<code>const mglData &amp;</code> dat, <code>bool</code> add=<code>false</code>, <code>float</code> fact=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fcrange"></a><u>C function:</u> <code>void</code> <b>mgl_set_crange</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> add)</i></dt>
+<dd><p>Sets values of <code>Cmin</code> and <code>Cmax</code> as minimal and maximal values of data <var>a</var>. Parameter <var>add</var> specify to add or not the new range to current one. Parameter <var>fact</var> add additional range increase on value (<var>Cmax</var>-<var>Cmin</var>)*<var>fact</var>. See also CAxis().
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetAutoRanges-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetAutoRanges</b><i> (<code>float</code> x1, <code>float</code> x2, <code>float</code> y1=<code>0</code>, <code>float</code> y2=<code>0</code>, <code>float</code> z1=<code>0</code>, <code>float</code> z2=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fauto"></a><u>C function:</u> <code>void</code> <b>mgl_set_auto</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2, <code>float</code> z1, <code>float</code> z2)</i></dt>
+<dd><p>Sets ranges for automatic variables of plots. It act as changing of <var>Min</var>, <var>Max</var> proprties without calling of RecalcBorder(). Function don&rsquo;t change the direction if minimal and maximal values are the same. For example, if y<var>y1</var>=<var>y2</var> then ranges along y-direction will not be changed (will be used previous one). Note that the automatic range become axis range after next call of [XYZ]Range() function(s).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetOrigin"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetOrigin</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005forigin"></a><u>C function:</u> <code>void</code> <b>mgl_set_origin</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0)</i></dt>
+<dd><p>Sets center of axis cross section. If one of values is NAN then MathGL library try to select optimal axis position.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-RecalcBorder-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>RecalcBorder</b><i> ()</i></dt>
+<dd><p>Recalculates internal parameter for correct apply of transformation rules. <strong>Must be called</strong> after any direct change of members <var>Min</var>, <var>Max</var>, <var>fx</var>, <var>fy</var>, <var>fz</var> if its changes should be seen on the plot.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Min_002c-Max-of-mglGraph"></a><u>General option (C++) of mglGraph:</u> <code>mglPoint</code> <b>Min, Max</b></dt>
+<dd><p>Lower and upper edges of bounding box for graphics. These variables are used for determining the range of automatic (non-specified) arrays in most of plotting functions. So, you may change it before plot and return it back after it and the plot will have automatic x-(y-,z-)coordinate normalized in this range but not in bounding box. <strong>BUT</strong> if you want to change the bounding box then you <strong>must</strong> call <code>RecalcBorder();</code> after it or use Axis() function.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cmin_002c-Cmax-of-mglGraph"></a><u>General option (C++) of mglGraph:</u> <code>float</code> <b>Cmin, Cmax</b></dt>
+<dd><p>Minimal and maximal value for data (used for coloring).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Org-of-mglGraph"></a><u>General option (C++) of mglGraph:</u> <code>mglPoint</code> <b>Org</b></dt>
+<dd><p>Center of axis cross section. If one of values is NAN then MathGL library try to select optimal axis position.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AutoOrg-of-mglGraph"></a><u>General option (C++) of mglGraph:</u> <code>bool</code> <b>AutoOrg</b></dt>
+<dd><p>Flag for automatic shifting of axes origin <var>Org</var> if it lies out of range <var>Min</var> ... <var>Max</var>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Curved-coordinates"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ranges-_0028bounding-box_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ticks" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Curved-coordinates-1"></a>
+<h3 class="subsection">3.2.2 Curved coordinates</h3>
+<a name="index-SetFunc"></a>
+<a name="index-SetCoor"></a>
+<a name="index-Ternary"></a>
+
+<dl>
+<dt><a name="index-SetFunc-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetFunc</b><i> (<code>const char *</code>EqX, <code>const char *</code>EqY, <code>const char *</code>EqZ=<code>&quot;&quot;</code>, <code>const char *</code>EqA=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005ffunc"></a><u>C function:</u> <code>void</code> <b>mgl_set_func</b><i> (<code>HMGL</code> gr, <code>const char *</code>EqX, <code>const char *</code>EqY, <code>const char *</code>EqZ)</i></dt>
+<dt><a name="index-mgl_005fset_005ffunc_005fext"></a><u>C function:</u> <code>void</code> <b>mgl_set_func_ext</b><i> (<code>HMGL</code> gr, <code>const char *</code>EqX, <code>const char *</code>EqY, <code>const char *</code>EqZ, <code>const char *</code>EqA)</i></dt>
+<dd><p>Sets transformation formulas for curvilinear coordinate. Each string should contain mathematical expression for real coordinate depending on internal coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; and &lsquo;<samp>a</samp>&rsquo; or &lsquo;<samp>c</samp>&rsquo; for colorbar. For example, the cylindrical coordinates are introduced as <code>Axis(&quot;x*cos(y)&quot;, &quot;x*sin(y)&quot;, &quot;z&quot;);</code>. For removing of formulas the corresponding parameter should be empty or <code>NULL</code>. Using transformation formulas will slightly slowing the program. Parameter <var>EqA</var> set the similar transformation formula for color scheme. See section <a href="mathgl_en_1.html#Textual-formulas">Textual formulas</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetCoor-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCoor</b><i> (<code>int</code> how)</i></dt>
+<dt><a name="index-mgl_005fset_005fcoor"></a><u>C function:</u> <code>void</code> <b>mgl_set_coor</b><i> (<code>HMGL</code> gr, <code>int</code> how)</i></dt>
+<dd><p>Sets one of the predefined transformation formulas for curvilinear coordinate. Paramater <var>how</var> define the coordinates: <code>mglCartesian=0</code> &ndash; Cartesian coordinates (no transformation); <code>mglPolar=1</code> &ndash; Polar coordiantes <em>x_n=x*cos(y),y_n=x*sin(y), z_n=z</em>; <code>mglSpherical=2</code> &ndash; Sperical coordinates <em>x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y)</em>; <code>mglParabolic=3</code> &ndash; Parabolic coordinates <em>x_n=x*y, y_n=(x*x-y*y)/2, z_n=z</em>; <code>mglParaboloidal=4</code> &ndash; Paraboloidal coordinates <em>x_n=(x*x-y*y)*cos(z)/2, y_n=(x*x-y*y)*sin(z)/2, z_n=x*y</em>; <code>mglOblate=5</code> &ndash; Oblate coordinates <em>x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z), z_n=sinh(x)*sin(y)</em>; <code>mglProlate=6</code> &ndash; Prolate coordinates <em>x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z), z_n=cosh(x)*cos(y)</em>; <code>mglElliptic=7</code> &ndash; Elliptic coordinates <em>x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z</em>; <code>mglToroidal=8</code> &ndash; Toroidal coordinates <em>x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)), y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y))</em>; <code>mglBispherical=9</code> &ndash; Bispherical coordinates <em>x_n=sin(y)*cos(z)/(cosh(x)-cos(y)), y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y))</em>; <code>mglBipolar=10</code> &ndash; Bipolar coordinates <em>x_n=sinh(x)/(cosh(x)-cos(y)), y_n=sin(y)/(cosh(x)-cos(y)), z_n=z</em>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Ternary-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Ternary</b><i> (<code>bool</code> tern)</i></dt>
+<dt><a name="index-mgl_005fset_005fternary"></a><u>C function:</u> <code>void</code> <b>mgl_set_ternary</b><i> (<code>HMGL</code> gr, <code>int</code> tern)</i></dt>
+<dd><p>The function sets to draws Ternary plot. This special plot is for 3 dependent coordinates (components) <var>a</var>, <var>b</var>, <var>c</var> so that <var>a</var>+<var>b</var>+<var>c</var>=1. MathGL uses only 2 independent coordinates <var>a</var>=x and <var>b</var>=y since it is enough to plot everything. At this third coordinate z act as another parameter to produce contour lines, surfaces and so on. See section <a href="mathgl_en_9.html#Ternary-plot-sample">Ternary plot sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Ticks"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Curved-coordinates" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transformation-matrix" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ticks-1"></a>
+<h3 class="subsection">3.2.3 Ticks</h3>
+
+<a name="index-SetTicks"></a>
+<a name="index-SetTicksVal"></a>
+<a name="index-SetTuneTicks"></a>
+<a name="index-AdjustTicks"></a>
+<a name="index-SetXTT"></a>
+<a name="index-SetYTT"></a>
+<a name="index-SetZTT"></a>
+<a name="index-SetCTT"></a>
+
+<dl>
+<dt><a name="index-AdjustTicks-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>AdjustTicks</b><i> (<code>const char *</code>dir=<code>&quot;xyz&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fadjust_005fticks"></a><u>C function:</u> <code>void</code> <b>mgl_adjust_ticks</b><i> (<code>HMGL</code> gr, <code>const char *</code>dir)</i></dt>
+<dd><p>Set the ticks step, number of sub-ticks and initial ticks position to be the most human readable for the axis along direction(s) <var>dir</var>. Also set <code>SetTuneTicks(true)</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTicks-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTicks</b><i> (<code>char</code> dir, <code>float</code> d=<code>-5</code>, <code>int</code> ns=<code>0</code>, <code>float</code> org=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fticks_005fdir"></a><u>C function:</u> <code>void</code> <b>mgl_set_ticks_dir</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>float</code> d, <code>int</code> ns, <code>float</code> org)</i></dt>
+<dt><a name="index-mgl_005fset_005fticks"></a><u>C function:</u> <code>void</code> <b>mgl_set_ticks</b><i> (<code>HMGL</code> gr, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz)</i></dt>
+<dt><a name="index-mgl_005fset_005fsubticks"></a><u>C function:</u> <code>void</code> <b>mgl_set_subticks</b><i> (<code>HMGL</code> gr, <code>int</code> nx, <code>int</code> ny, <code>int</code> nz)</i></dt>
+<dt><a name="index-mgl_005fset_005ftick_005forigin"></a><u>C function:</u> <code>void</code> <b>mgl_set_tick_origin</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0)</i></dt>
+<dd><p>Set the ticks step <var>d</var>, number of sub-ticks <var>ns</var> and initial ticks position <var>org</var> for the axis along direction <var>dir</var> (use &rsquo;c&rsquo; for colorbar ticks). Variable <var>d</var> set step for axis ticks (if positive) or it&rsquo;s number on the axis range (if negative). Zero value set logarithmic ticks. If <var>org</var> value is NAN then value from <var>Org</var> is used.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTicksVal-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTicksVal</b><i> (<code>char</code> dir, <code>int</code> n, <code>float *</code>val, <code>const char **</code>lbl)</i></dt>
+<dt><a name="index-SetTicksVal-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTicksVal</b><i> (<code>char</code> dir, <code>int</code> n, <code>float *</code>val, <code>const wchar_t **</code>lbl)</i></dt>
+<dt><a name="index-SetTicksVal-3"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>SetTicksVal</b><i> (<code>char</code> dir, <code>int</code> n, <code>float</code> val1, <code>wchar_t *</code>lbl1, ...)</i></dt>
+<dt><a name="index-mgl_005fset_005fticks_005fvals"></a><u>C function:</u> <code>void</code> <b>mgl_set_ticks_vals</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>int</code> n, <code>float *</code>val, <code>const char **</code>lbl)</i></dt>
+<dt><a name="index-mgl_005fset_005fticks_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_set_ticks_val</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>int</code> n, <code>double</code> val, <code>const char *</code>lbl, ...)</i></dt>
+<dd><p>Set the manual positions <var>val</var> and its labels <var>lbl</var> for <var>n</var>-th ticks along axis <var>dir</var>. The arrays <var>val</var> and <var>lbl</var> must contain <var>n</var> elements. Use <code>SetTicks()</code> to restore automatic ticks. Note, you <strong>have to be</strong> very careful to use floating-point (not integer!!!) values as ticks position due to limitations of stdarg library (argument transfer). See section <a href="mathgl_en_9.html#Manual-ticks-sample">Tick values sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTuneTicks-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTuneTicks</b><i> (<code>bool</code> tune, <code>float</code> pos=<code>1.15</code>)</i></dt>
+<dt><a name="index-mgl_005ftune_005fticks"></a><u>C function:</u> <code>void</code> <b>mgl_tune_ticks</b><i> (<code>HMGL</code> gr, <code>bool</code> tune, <code>float</code> pos)</i></dt>
+<dd><p>Switch on/off ticks enhancing by factoring common multiplier (for small, like from 0.001 to 0.002, or large, like from 1000 to 2000, coordinate values) or common component (for narrow range, like from 0.999 to 1.000). Also set the position <var>pos</var> of common multiplier/component on the axis: =0 at minimal axis value, =1 at maximal axis value. Default value is 1.15.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetXTT-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetXTT</b><i> (<code>const char *</code>xtt)</i></dt>
+<dt><a name="index-SetYTT-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetYTT</b><i> (<code>const char *</code>ytt)</i></dt>
+<dt><a name="index-SetZTT-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetZTT</b><i> (<code>const char *</code>ztt)</i></dt>
+<dt><a name="index-SetCTT-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCTT</b><i> (<code>const char *</code>ctt)</i></dt>
+<dt><a name="index-SetXTT-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetXTT</b><i> (<code>const wchar_t *</code>xtt)</i></dt>
+<dt><a name="index-SetYTT-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetYTT</b><i> (<code>const wchar_t *</code>ytt)</i></dt>
+<dt><a name="index-SetZTT-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetZTT</b><i> (<code>const wchar_t *</code>ztt)</i></dt>
+<dt><a name="index-SetCTT-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCTT</b><i> (<code>const wchar_t *</code>ctt)</i></dt>
+<dt><a name="index-mgl_005fset_005fxttw"></a><u>C function:</u> <code>void</code> <b>mgl_set_xttw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>xtt)</i></dt>
+<dt><a name="index-mgl_005fset_005fyttw"></a><u>C function:</u> <code>void</code> <b>mgl_set_yttw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ytt)</i></dt>
+<dt><a name="index-mgl_005fset_005fzttw"></a><u>C function:</u> <code>void</code> <b>mgl_set_zttw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ztt)</i></dt>
+<dt><a name="index-mgl_005fset_005fcttw"></a><u>C function:</u> <code>void</code> <b>mgl_set_cttw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ctt)</i></dt>
+<dt><a name="index-mgl_005fset_005fxtt"></a><u>C function:</u> <code>void</code> <b>mgl_set_xtt</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>xtt)</i></dt>
+<dt><a name="index-mgl_005fset_005fytt"></a><u>C function:</u> <code>void</code> <b>mgl_set_ytt</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ytt)</i></dt>
+<dt><a name="index-mgl_005fset_005fztt"></a><u>C function:</u> <code>void</code> <b>mgl_set_ztt</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ztt)</i></dt>
+<dt><a name="index-mgl_005fset_005fctt"></a><u>C function:</u> <code>void</code> <b>mgl_set_ctt</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ctt)</i></dt>
+<dd><p>The template for x-,y-,z-axis ticks or colorbar ticks. It may contain TeX symbols also. If <var>xtt</var>, <var>ytt</var>, <var>ztt</var>, <var>ctt</var>=<code>&quot;&quot;</code> then default template is used (in simplest case it is &lsquo;<samp>%.2g</samp>&rsquo;). Setting of template switch off automatic ticks tuning (see <code>SetTuneTicks()</code>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-dx_002c-dy_002c-dz-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>float</code> <b>dx, dy, dz</b></dt>
+<dd><p>Step for axis ticks. See <code>SetTicks()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-NSx_002c-NSy_002c-NSz-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>int</code> <b>NSx, NSy, NSz</b></dt>
+<dd><p>Number of axis sub-ticks. See <code>SetTicks()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-OrgT-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>mglPoint</code> <b>OrgT</b></dt>
+<dd><p>Starting point for ticks. See <code>SetTicks()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TuneTicks-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>bool</code> <b>TuneTicks</b></dt>
+<dd><p>Switch on/off ticks enhancing by factoring common multiplier. See <code>SetTuneTicks()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FactorPos-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>float</code> <b>FactorPos</b></dt>
+<dd><p>The position of common multiplier/component on the axis. See <code>SetTuneTicks()</code>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Transformation-matrix"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ticks" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Export-to-file" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transformation-matrix-1"></a>
+<h2 class="section">3.3 Transformation matrix</h2>
+<a name="index-Aspect"></a>
+<a name="index-Rotate"></a>
+<a name="index-RotateN"></a>
+<a name="index-SubPlot"></a>
+<a name="index-StickPlot"></a>
+<a name="index-InPlot"></a>
+<a name="index-Identity"></a>
+<a name="index-Perspective"></a>
+<a name="index-RestoreM"></a>
+<a name="index-View"></a>
+<a name="index-ColumnPlot"></a>
+<a name="index-Push"></a>
+<a name="index-Pop"></a>
+
+<p>These functions control how and where further plotting will be placed. There is a curtain order of calling of these functions for the better plot view. First one should be SubPlot() or InPlot() for specifying the place. After it a Rotate() and Aspect(). And finally any other plotting functions may be called. Alternatevely you can use ColumnPlot() for position plots in the column one by another without gap between plot axis (bounding boxes).
+</p>
+<dl>
+<dt><a name="index-SubPlot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SubPlot</b><i> (<code>int</code> nx, <code>int</code> ny, <code>int</code> m, <code>float</code> dx=<code>0</code>, <code>float</code> dy=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fsubplot"></a><u>C function:</u> <code>void</code> <b>mgl_subplot</b><i> (<code>HMGL</code> gr, <code>int</code> nx, <code>int</code> ny, <code>int</code> m)</i></dt>
+<dt><a name="index-mgl_005fsubplot_005fd"></a><u>C function:</u> <code>void</code> <b>mgl_subplot_d</b><i> (<code>HMGL</code> gr, <code>int</code> nx, <code>int</code> ny, <code>int</code> m, <code>float</code> dx, <code>float</code> dy)</i></dt>
+<dd><p>Puts further plotting in a <var>m</var>-th cell of <var>nx</var>*<var>ny</var> grid of the whole frame area. This function set off any aspects or rotations. So it should be used first for creating the subplot. From the aesthetical point of view it is not recommended to use this function with different matrices in the same frame. The position of the cell can be shifted from its default position by relative size <var>dx</var>, <var>dy</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SubPlot-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SubPlot</b><i> (<code>int</code> nx, <code>int</code> ny, <code>int</code> m, <code>const char *</code>style)</i></dt>
+<dt><a name="index-mgl_005fsubplot_005fs"></a><u>C function:</u> <code>void</code> <b>mgl_subplot_s</b><i> (<code>HMGL</code> gr, <code>int</code> nx, <code>int</code> ny, <code>int</code> m, <code>const char *</code>style)</i></dt>
+<dd><p>The same as previous but space reserved for axis/colorbar is saved only if <var>style</var> contain: &lsquo;<samp>L</samp>&rsquo; or &lsquo;<samp>&lt;</samp>&rsquo; &ndash; at left side, &lsquo;<samp>R</samp>&rsquo; or &lsquo;<samp>&gt;</samp>&rsquo; &ndash; at right side, &lsquo;<samp>A</samp>&rsquo; or &lsquo;<samp>^</samp>&rsquo; &ndash; at top side, &lsquo;<samp>U</samp>&rsquo; or &lsquo;<samp>_</samp>&rsquo; &ndash; at bottom side.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-InPlot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>InPlot</b><i> (<code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2, <code>bool</code> rel=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005finplot"></a><u>C function:</u> <code>void</code> <b>mgl_inplot</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2)</i></dt>
+<dt><a name="index-mgl_005frelplot"></a><u>C function:</u> <code>void</code> <b>mgl_relplot</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2)</i></dt>
+<dd><p>Puts further plotting in some region of the whole frame surface. This function allows one to create a plot in arbitrary place of the screen. The position is defined by rectangular coordinates [<var>x1</var>, <var>x2</var>]*[<var>y1</var>, <var>y2</var>]. The coordinates <var>x1</var>, <var>x2</var>, <var>y1</var>, <var>y2</var> are normalized to interval [0, 1]. If parameter <var>rel</var>=<code>true</code> then the relative position to current SubPlot() (or last InPlot() with <var>rel</var>=<code>false</code>) is used. This function set off any aspects or rotations. So it should be used first for creating subplot.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ColumnPlot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ColumnPlot</b><i> (<code>int</code> num, <code>int</code> ind, <code>float</code> d=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcolumnplot"></a><u>C function:</u> <code>void</code> <b>mgl_columnplot</b><i> (<code>HMGL</code> gr, <code>int</code> num, <code>int</code> ind)</i></dt>
+<dt><a name="index-mgl_005fcolumnplot_005fd"></a><u>C function:</u> <code>void</code> <b>mgl_columnplot_d</b><i> (<code>HMGL</code> gr, <code>int</code> num, <code>int</code> ind, <code>float</code> d)</i></dt>
+<dd><p>Puts further plotting in <var>ind</var>-th cell of column with <var>num</var> cells. The position is relative to previous SubPlot() call (or InPlot() with <var>rel</var>=<code>false</code>). Parameter <var>d</var> set extra gap between cells. See section <a href="mathgl_en_9.html#ColumnPlot-sample">ColumnPlot sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-StickPlot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>StickPlot</b><i> (<code>int</code> num, <code>int</code> ind, <code>float</code> tet, <code>float</code> phi)</i></dt>
+<dt><a name="index-mgl_005fstickplot"></a><u>C function:</u> <code>void</code> <b>mgl_stickplot</b><i> (<code>HMGL</code> gr, <code>int</code> num, <code>int</code> ind, <code>float</code> tet, <code>float</code> phi)</i></dt>
+<dd><p>Puts further plotting in <var>ind</var>-th cell of stick with <var>num</var> cells. At this, stick is rotated on angles <var>tet</var>, <var>phi</var>. The position is relative to previous SubPlot() call (or InPlot() with <var>rel</var>=<code>false</code>). See section <a href="mathgl_en_9.html#StickPlot-sample">StickPlot sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Rotate-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Rotate</b><i> (<code>float</code> TetX, <code>float</code> TetZ, <code>float</code> TetY=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005frotate"></a><u>C function:</u> <code>void</code> <b>mgl_rotate</b><i> (<code>HMGL</code> gr, <code>float</code> TetX, <code>float</code> TetZ, <code>float</code> TetY)</i></dt>
+<dd><p>Rotates a further plotting relative to each axis {x, z, y} consecutively on angles <var>TetX</var>, <var>TetZ</var>, <var>TetY</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-RotateN-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>RotateN</b><i> (<code>float</code> Tet, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dt><a name="index-mgl_005frotate_005fvector"></a><u>C function:</u> <code>void</code> <b>mgl_rotate_vector</b><i> (<code>HMGL</code> gr, <code>float Tet</code>, <code>float x</code>, <code>float y</code>, <code>float z</code>)</i></dt>
+<dd><p>Rotates a further plotting around vector {<var>x</var>, <var>y</var>, <var>z</var>} on angle <var>Tet</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Aspect-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Aspect</b><i> (<code>float</code> Ax, <code>float</code> Ay, <code>float</code> Az)</i></dt>
+<dt><a name="index-mgl_005faspect"></a><u>C function:</u> <code>void</code> <b>mgl_aspect</b><i> (<code>HMGL</code> gr, <code>float</code> Ax, <code>float</code> Ay, <code>float</code> Az)</i></dt>
+<dd><p>Defines aspect ratio for the plot. The viewable axes will be related one to another as the ratio <var>Ax:Ay:Az</var>. For the best effect it should be used after Rotate() function.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Perspective-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Perspective</b><i> (<code>float</code> a)</i></dt>
+<dt><a name="index-mgl_005fperspective"></a><u>C function:</u> <code>void</code> <b>mgl_perspective</b><i> (<code>HMGL</code> gr, <code>float</code> a)</i></dt>
+<dd><p>Add (switch on) the perspective to plot. The parameter <em>a ~ 1/z_eff \in [0,1)</em>. By default (<code>a=0</code>) the perspective is off.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Identity-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Identity</b><i> (<code>bool</code> rel=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fidentity"></a><u>C function:</u> <code>void</code> <b>mgl_identity</b><i> (<code>HMGL</code> gr, <code>int</code> rel)</i></dt>
+<dd><p>Clears transformation matrix. This function clears all previous effects of Aspect(), SubPlot(), InPlot() or Rotate() functions. It is equivalent to the call of <code>InPlot(0,1,0,1,rel)</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Push-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Push</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fmat_005fpush"></a><u>C function:</u> <code>void</code> <b>mgl_mat_push</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Push transformation matrix into stack. Later you can restore its current state by Pop() function. Stack can keep up to 10 matrices.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Pop-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pop</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fmat_005fpop"></a><u>C function:</u> <code>void</code> <b>mgl_mat_pop</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Pop (restore last &rsquo;pushed&rsquo;) transformation matrix into stack.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Export-to-file"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transformation-matrix" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Primitives-drawing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Export-to-file-1"></a>
+<h2 class="section">3.4 Export to file</h2>
+<a name="index-WriteFrame"></a>
+<a name="index-WritePNG"></a>
+<a name="index-WriteGIF"></a>
+<a name="index-WriteIDTF"></a>
+<a name="index-WriteSVG"></a>
+<a name="index-WriteBMP"></a>
+<a name="index-WriteEPS"></a>
+<a name="index-WriteJPEG"></a>
+<a name="index-SetSize"></a>
+<a name="index-Flush"></a>
+<a name="index-Finish"></a>
+<a name="index-ShowImage"></a>
+
+<p>These functions export current view to a graphic file. The filename <var>fname</var> should have appropriate extension. Parameter <var>descr</var> gives the short description of the picture. Just now the transparency is supported in PNG and SVG files.
+</p>
+<dl>
+<dt><a name="index-WriteFrame-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteFrame</b><i> (<code>const char *</code>fname=<code>&quot;&quot;</code>, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fframe"></a><u>C function:</u> <code>void</code> <b>mgl_write_frame</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Exports current frame to a file <var>fname</var> which type is determined by the extension. Parameter <var>descr</var> adds description to file (can be <code>&quot;&quot;</code>). If <var>fname</var>=<code>&quot;&quot;</code> then the file &lsquo;<samp>frame####.jpg</samp>&rsquo; is used, where &lsquo;<samp>####</samp>&rsquo; is current frame id and name &lsquo;<samp>frame</samp>&rsquo; is defined by <var>PlotId</var> class property.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WritePNG-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WritePNG</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>, <code>int</code> compr=<code>&quot;&quot;</code>, <code>bool</code> alpha=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fpng"></a><u>C function:</u> <code>void</code> <b>mgl_write_png</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fpng_005fsolid"></a><u>C function:</u> <code>void</code> <b>mgl_write_png_solid</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Exports current frame to PNG file. Parameter <var>fname</var> specifies the file name, <var>descr</var> adds description to file, <var>alpha</var> gives the transparency type. By default there are no description added and transparent image used. This function does nothing if NO_PNG is defined during compilation of MathGL library.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteJPEG-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteJPEG</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fjpg"></a><u>C function:</u> <code>void</code> <b>mgl_write_jpg</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Exports current frame to JPEG file. Parameter <var>fname</var> specifies the file name, <var>descr</var> adds description to file. By default there is no description added. This function does nothing if NO_JPEG is defined during compilation of MathGL library.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteGIF-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteGIF</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fgif"></a><u>C function:</u> <code>void</code> <b>mgl_write_gif</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Exports current frame to GIF file. Parameter <var>fname</var> specifies the file name, <var>descr</var> adds description to file. By default there is no description added.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteBMP-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteBMP</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fbmp"></a><u>C function:</u> <code>void</code> <b>mgl_write_bmp</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Exports current frame to BMP file. Parameter <var>fname</var> specifies the file name, <var>descr</var> adds description to file. There is no compression used.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteEPS-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteEPS</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005feps"></a><u>C function:</u> <code>void</code> <b>mgl_write_eps</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Exports current frame to EPS file. The vector representation is used if possible. So it is not recommended for the export of large data plot. It is better to use bitmap format (for example PNG or JPEG). However, program has no internal limitations for size of output file. Parameter <var>fname</var> specifies the file name, <var>descr</var> adds description to file. By default there is no description added. If file name is terminated by &lsquo;<samp>z</samp>&rsquo; (for example, &lsquo;<samp>fname.eps.gz</samp>&rsquo;) then file will be compressed in gzip format.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteSVG-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteSVG</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fsvg"></a><u>C function:</u> <code>void</code> <b>mgl_write_svg</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Exports current frame to SVG (Scalable Vector Graphics) file. The vector representation is used. In difference of EPS format, SVG format support transparency that allows to correctly draw half-transparent plot (like SurfA(), Surf3A(), CloudQ() or CloudP()). Note, the output file may be too large for graphic of large data array (especially for surfaces). It is better to use bitmap format (for example PNG or JPEG). However, program has no internal limitations for size of output file. Parameter <var>fname</var> specifies the file name, <var>descr</var> adds description to file (default is file name). If file name is terminated by &lsquo;<samp>z</samp>&rsquo; (for example, &lsquo;<samp>fname.svgz</samp>&rsquo;) then file will be compressed in gzip format.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteIDTF-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteIDTF</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fidtf"></a><u>C function:</u> <code>void</code> <b>mgl_write_idtf</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Exports current frame to IDTF file. Later this file can be converted to U3D format. The vector representation is used. So, the output file may be too large for graphic of large data array (especially for surfaces). However, program has no internal limitations for size of output file. Parameter <var>fname</var> specifies the file name, <var>descr</var> adds description to file (default is file name).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ShowImage-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ShowImage</b><i> (<code>const char *</code>viewer=<code>&quot;kuickshow&quot;</code>, <code>bool</code> nowait=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fshow_005fimage"></a><u>C function:</u> <code>void</code> <b>mgl_show_image</b><i> (<code>const char *</code>viewer, <code>int</code> nowait)</i></dt>
+<dd><p>Displays the current picture using external program <var>viewer</var> for viewing. The function save the picture to temporary file and call <var>viewer</var> to display it. If <var>nowait</var>=<code>true</code> then the function return immediately (it will not wait while window will be closed).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetSize-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetSize</b><i> (<code>int</code> width, <code>int</code> height)</i></dt>
+<dt><a name="index-mgl_005fset_005fsize"></a><u>C function:</u> <code>void</code> <b>mgl_set_size</b><i> (<code>HMGL</code> gr, <code>int</code> width, <code>int</code> height)</i></dt>
+<dd><p>Sets size of picture in pixels. This function <strong>must be</strong> called before any other plotting because it completely remove picture contents.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Flush-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flush</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fflush"></a><u>C function:</u> <code>void</code> <b>mgl_flush</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Flushes the plotting commands to frame. This function may be useful if one wants to remove array before the finishing of the plot (i.e. before calling <code>Finish()</code>). Also call of this function separate the objects in mglGraphIDTF. Most of plots call this function internally.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Finish-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Finish</b><i> ()</i></dt>
+<dd><p>Finishes plotting and create a picture. Normally this function is called internally.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Primitives-drawing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Export-to-file" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Primitives-drawing-2"></a>
+<h2 class="section">3.5 Primitives drawing</h2>
+<a name="index-Ball"></a>
+<a name="index-Clf"></a>
+<a name="index-Line"></a>
+<a name="index-Curve"></a>
+<a name="index-Glyph"></a>
+<a name="index-Mark"></a>
+<a name="index-Error"></a>
+<a name="index-Face"></a>
+<a name="index-FaceX"></a>
+<a name="index-FaceY"></a>
+<a name="index-FaceZ"></a>
+<a name="index-Cone"></a>
+<a name="index-Drop"></a>
+<a name="index-Sphere"></a>
+
+<p>These functions draw some simple objects like line, point, sphere, drop, cone and so on.
+</p>
+<dl>
+<dt><a name="index-Clf-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Clf</b><i> (<code>mglColor</code> Back=<code>WC</code>)</i></dt>
+<dt><a name="index-mgl_005fclf"></a><u>C function:</u> <code>void</code> <b>mgl_clf</b><i> (<code>HMGL</code> gr)</i></dt>
+<dt><a name="index-mgl_005fclf_005frgb"></a><u>C function:</u> <code>void</code> <b>mgl_clf_rgb</b><i> (<code>HMGL</code> gr, <code>float</code> r, <code>float</code> g, <code>float</code> b)</i></dt>
+<dd><p>Clear the picture and fill it by color <var>Back</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Ball-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Ball</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>mglColor</code> col=<code>RC</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-Ball-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Ball</b><i> (<code>mglPoint</code> p, <code>char</code> col=<code>'r'</code>)</i></dt>
+<dt><a name="index-Ball-3"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Ball</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> col=<code>'r'</code>)</i></dt>
+<dt><a name="index-mgl_005fball"></a><u>C function:</u> <code>void</code> <b>mgl_ball</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dt><a name="index-mgl_005fball_005frgb"></a><u>C function:</u> <code>void</code> <b>mgl_ball_rgb</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> r, <code>float</code> g, <code>float</code> b, <code>float</code> alpha)</i></dt>
+<dt><a name="index-mgl_005fball_005fstr"></a><u>C function:</u> <code>void</code> <b>mgl_ball_str</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> col)</i></dt>
+<dd><p>Draws a point (ball) at position <var>p</var>={<var>x</var>, <var>y</var>, <var>z</var>} with color <var>col</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Error-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Error</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> e, <code>char</code> *pen=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Draws a 3d error box at position <var>p</var> with sizes <var>e</var> and style <var>pen</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Line-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Line</b><i> (<code>mglPoint</code> p1, <code>mglPoint</code> p2, <code>char *</code>stl=<code>&quot;B&quot;</code>, <code>int</code>num=<code>2</code>)</i></dt>
+<dt><a name="index-Line-2"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Line</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>char *</code>stl=<code>&quot;B&quot;</code>, <code>int</code>num=<code>2</code>)</i></dt>
+<dt><a name="index-mgl_005fline"></a><u>C function:</u> <code>void</code> <b>mgl_line</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>char *</code>stl, <code>int</code>num)</i></dt>
+<dd><p>Draws a geodesic line (straight line in Cartesian coordinates) from point <var>p1</var> to <var>p2</var> using line style <var>stl</var>. Parameter <var>num</var> define the &ldquo;quality&rdquo; of the line. If <var>num</var>=<code>2</code> then the stright line will be drawn in all coordinate system (independently on transformation formulas (see section <a href="#Curved-coordinates">Curved coordinates</a>). Contrary, for large values (for example, =<code>100</code>) the geodesic line will be drawn in corresponding coordinate system (straight line in Cartesian coordinates, circle in polar coordinates and so on). Line will be drawn even if it lies out of bounding box.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Curve-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Curve</b><i> (<code>mglPoint</code> p1, <code>mglPoint</code> d1, <code>mglPoint</code> p2, <code>mglPoint</code> d2, <code>const char *</code>stl=<code>&quot;B&quot;</code>, <code>int</code> num=<code>100</code>)</i></dt>
+<dt><a name="index-Curve-2"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Curve</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> dx1, <code>float</code> dy1, <code>float</code> dz1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>float</code> dx2, <code>float</code> dy2, <code>float</code> dz2, <code>const char *</code>stl=<code>&quot;B&quot;</code>, <code>int</code> num=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005fcurve"></a><u>C function:</u> <code>void</code> <b>mgl_curve</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> dx1, <code>float</code> dy1, <code>float</code> dz1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>float</code> dx2, <code>float</code> dy2, <code>float</code> dz2, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Draws Bezier-like curve from point <var>p1</var> to <var>p2</var> using line style <var>stl</var>. At this tangent is codirected with <var>d1</var>, <var>d2</var> and proportional to its amplitude. Parameter <var>num</var> define the &ldquo;quality&rdquo; of the curve. If <var>num</var>=<code>2</code> then the straight line will be drawn in all coordinate system (independently on transformation formulas see section <a href="#Curved-coordinates">Curved coordinates</a>). Contrary, for large values (for example, =<code>100</code>) the spline like Bezier curve will be drawn in corresponding coordinate system. Curve will be drawn even if it lies out of bounding box.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Face-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Face</b><i> (<code>mglPoint</code> p1, <code>mglPoint</code> p2, <code>mglPoint</code> p3, <code>mglPoint</code> p4, <code>const char *</code>stl=<code>&quot;w&quot;</code>, <code>int</code> num=<code>2</code>, <code>float</code> val=<code>NAN</code>)</i></dt>
+<dd><p>Draws the solid quadrangle (face) with vertexes <var>p1</var>, <var>p2</var>, <var>p3</var>, <var>p4</var> and with color(s) <var>stl</var>. At this colors can be the same for all vertexes or different if all 4 colors are specified for each vertex. In first case parameter <var>val</var> (if not <code>NAN</code>) set the color according color scheme. Face will be drawn even if it lies out of bounding box.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FaceX-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>FaceX</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wy, <code>float</code> wz, <code>const char *</code>stl=<code>&quot;w&quot;</code>, <code>float</code> dx=<code>0</code>, <code>float</code> dy=<code>0</code>)</i></dt>
+<dt><a name="index-FaceY-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>FaceY</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wx, <code>float</code> wz, <code>const char *</code>stl=<code>&quot;w&quot;</code>, <code>float</code> dx=<code>0</code>, <code>float</code> dy=<code>0</code>)</i></dt>
+<dt><a name="index-FaceZ-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>FaceZ</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wx, <code>float</code> wy, <code>const char *</code>stl=<code>&quot;w&quot;</code>, <code>float</code> dx=<code>0</code>, <code>float</code> dy=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005ffacex"></a><u>C function:</u> <code>void</code> <b>mgl_facex</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wy, <code>float</code> wz, <code>const char *</code>stl, <code>float</code> d1, <code>float</code> d2)</i></dt>
+<dt><a name="index-mgl_005ffacey"></a><u>C function:</u> <code>void</code> <b>mgl_facey</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wx, <code>float</code> wz, <code>const char *</code>stl, <code>float</code> d1, <code>float</code> d2)</i></dt>
+<dt><a name="index-mgl_005ffacez"></a><u>C function:</u> <code>void</code> <b>mgl_facez</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wx, <code>float</code> wy, <code>const char *</code>stl, <code>float</code> d1, <code>float</code> d2)</i></dt>
+<dd><p>Draws the solid rectangle (face) perpendicular to [x,y,z]-axis correspondingly at position {<var>x0</var>, <var>y0</var>, <var>z0</var>} with color <var>stl</var> and with widths <var>wx</var>, <var>wy</var>, <var>wz</var> along corresponding directions. At this colors can be the same for all vertexes or separately if all 4 colors are specified for each vertex. Parameters <var>d1</var>!=0, <var>d2</var>!=0 set additional shift of the last vertex (i.e. to draw quadrangle).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Sphere-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Sphere</b><i> (<code>mglPoint</code> p, <code>float</code> r, <code>const char *</code>stl=<code>&quot;r&quot;</code>)</i></dt>
+<dt><a name="index-Sphere-2"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Sphere</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> r, <code>const char *</code>stl=<code>&quot;r&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsphere"></a><u>C function:</u> <code>void</code> <b>mgl_sphere</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> r, <code>const char *</code>stl)</i></dt>
+<dd><p>Draw the sphere with radius <var>r</var> and center at point <var>p</var>={<var>x</var>, <var>y</var>, <var>z</var>} and color <var>stl</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Drop-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Drop</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> q, <code>float</code> r, <code>mglColor</code> col, <code>float</code> shift=<code>1</code>, <code>float</code> ap=<code>1</code>)</i></dt>
+<dt><a name="index-Drop-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Drop</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> q, <code>float</code> r, <code>const char *</code>col=&quot;r&quot;, <code>float</code> shift=<code>1</code>, <code>float</code> ap=<code>1</code>)</i></dt>
+<dt><a name="index-Drop-3"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Drop</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>float</code> r, <code>const char *</code>col=&quot;r&quot;, <code>float</code> shift=<code>1</code>, <code>float</code> ap=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdrop"></a><u>C function:</u> <code>void</code> <b>mgl_drop</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>float</code> r, <code>const char *</code>col, <code>float</code> shift, <code>float</code> ap)</i></dt>
+<dd><p>Draw the drop with radius <var>r</var> at point <var>p</var> elongated in direction <var>q</var> and with color <var>col</var>. Parameter <var>shift</var> set the degree of drop oblongness: &lsquo;<samp>0</samp>&rsquo; is sphere, &lsquo;<samp>1</samp>&rsquo; is maximally oblongness drop. Parameter <var>ap</var> set relative width of the drop (this is analogue of &ldquo;ellipticity&rdquo; for the sphere). See section <a href="mathgl_en_9.html#Drops-sample">Drops sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cone-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Cone</b><i> (<code>mglPoint</code> p1, <code>mglPoint</code> p2, <code>float</code> r1, <code>float</code> r2=<code>-1</code>, <code>const char *</code>stl=<code>&quot;B&quot;</code>, <code>bool</code> edge=<code>false</code>)</i></dt>
+<dt><a name="index-Cone-2"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Cone</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>float</code> r1, <code>float</code> r2=<code>-1</code>, <code>const char *</code>stl=<code>&quot;B&quot;</code>, <code>bool</code> edge=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fcone"></a><u>C function:</u> <code>void</code> <b>mgl_cone</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>float</code> r1, <code>float</code> r2, <code>const char *</code>stl, <code>int</code> draw_edge)</i></dt>
+<dd><p>Draw tube (or truncated cone if <var>edge</var>=<code>false</code>) between points <var>p1</var>, <var>p2</var> with radius at the edges <var>r1</var>, <var>r2</var>. If <var>r2</var>&lt;0 then it is supposed that <var>r2</var>=<var>r1</var>. The cone color is defined by string <var>stl</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Mark-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Mark</b><i> (<code>mglPoint</code> p, <code>char</code> mark=<code>'.'</code>)</i></dt>
+<dt><a name="index-Mark-2"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Mark</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> mark=<code>'.'</code>)</i></dt>
+<dt><a name="index-mgl_005fmark"></a><u>C function:</u> <code>void</code> <b>mgl_mark</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> mark)</i></dt>
+<dd><p>Draws a marks of different type at position <var>p</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Glyph-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Glyph</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> f, <code>int</code> nt, <code>const short *</code>trig, <code>int</code> nl, <code>const short *</code>line)</i></dt>
+<dd><p>Draw a set of triangles (or lines if <var>trig</var>=<code>NULL</code>) for glyph which is placed at point {<var>x</var>, <var>y</var>}. Values in the arrays are normalized by factor <var>f</var>. Normally this function is used internally.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Text-printing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Primitives-drawing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-Colorbar" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-printing-1"></a>
+<h2 class="section">3.6 Text printing</h2>
+<a name="index-Puts"></a>
+<a name="index-Putsw"></a>
+<a name="index-Text"></a>
+<a name="index-Title"></a>
+
+<p>These functions draw the text. There are functions for drawing text in arbitrary place, in arbitrary direction and along arbitrary curve. The class mglFont (see section <a href="mathgl_en_7.html#mglFont-class">mglFont class</a>) is used for low-level string parsing and printing. It can use arbitrary font-faces and parse many TeX commands (for detail see section <a href="mathgl_en_1.html#Font-styles">Font styles</a>). All these functions have 2 variant: for printing 8-bit text (<code>char *</code>) and for printing Unicode text (<code>wchar_t *</code>). In first case the conversion in current locale is used. So sometimes you need to specify it by <code>setlocale()</code> function. The size argument control the size of text: if positive it give the value, if negative it give the value relative to <var>FontSize</var>. The font type (STIX, arial, courier, times and so on) can be selected by function SetFont(), GetFont(). See section <a href="#Font-settings">Font settings</a>.
+</p>
+<p>The font parameters are described by string. This string may contain several characters of font type (&lsquo;<samp>rbiwou</samp>&rsquo;) and/or align (&lsquo;<samp>LRC</samp>&rsquo;) specification. Also it may contain the text color &lsquo;<samp>wkrgbcymhRGBCYMHW</samp>&rsquo; (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>) after symbol &lsquo;<samp>:</samp>&rsquo;. The font types are: &lsquo;<samp>r</samp>&rsquo; &ndash; roman font, &lsquo;<samp>i</samp>&rsquo; &ndash; italic style, &lsquo;<samp>b</samp>&rsquo; &ndash; bold style, &lsquo;<samp>w</samp>&rsquo; &ndash; wired style, &lsquo;<samp>o</samp>&rsquo; &ndash; over-lined text, &lsquo;<samp>u</samp>&rsquo; &ndash; underlined text. By default roman font is used. The align types are: &lsquo;<samp>L</samp>&rsquo; &ndash; align left (default), &lsquo;<samp>C</samp>&rsquo; &ndash; align center, &lsquo;<samp>R</samp>&rsquo; &ndash; align right. For example, string &lsquo;<samp>iC:b</samp>&rsquo; correspond to italic font style for centered text which printed by blue color.
+</p>
+<p>If string contains symbols &lsquo;<samp>aA</samp>&rsquo; then text is printed at arbitrary position {<var>x</var>, <var>y</var>} (supposed to be in range [0,1]) of subplot (for &lsquo;<samp>a</samp>&rsquo;) or picture (for &lsquo;<samp>A</samp>&rsquo;).
+</p>
+<dl>
+<dt><a name="index-Puts-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Puts</b><i> (<code>mglPoint</code> p, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>, <code>char</code> dir=<code>0</code>, <code>float</code> shift=<code>0</code>)</i></dt>
+<dt><a name="index-Putsw-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Putsw</b><i> (<code>mglPoint</code> p, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>, <code>char</code> dir=<code>0</code>, <code>float</code> shift=<code>0</code>)</i></dt>
+<dt><a name="index-Puts-2"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Puts</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>, <code>char</code> dir=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fputs"></a><u>C function:</u> <code>void</code> <b>mgl_puts</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const char *</code>text)</i></dt>
+<dt><a name="index-mgl_005fputsw"></a><u>C function:</u> <code>void</code> <b>mgl_putsw</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const wchar_t *</code>text)</i></dt>
+<dt><a name="index-mgl_005fputs_005fext"></a><u>C function:</u> <code>void</code> <b>mgl_puts_ext</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const char *</code>text, <code>const char *</code>font, <code>float</code> size, <code>char</code> dir)</i></dt>
+<dt><a name="index-mgl_005fputsw_005fext"></a><u>C function:</u> <code>void</code> <b>mgl_putsw_ext</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const wchar_t *</code>text, <code>const char *</code>font, <code>float</code> size, <code>char</code> dir)</i></dt>
+<dd><p>The function plots the string <var>text</var> at position <var>p</var> with fonts specifying by the criteria <var>how</var>. The size of font is set by <var>size</var> parameter (default is <var>FontSize</var>). Parameter <var>dir</var> specifies the additional string align. The aligns are: &lsquo;<samp>x</samp>&rsquo; &ndash; align as x-label, &lsquo;<samp>y</samp>&rsquo; &ndash; align as y-label, &lsquo;<samp>z</samp>&rsquo; &ndash; align as z-label, &lsquo;<samp>i</samp>&rsquo; &ndash; align as x-label but inverse writing direction, &lsquo;<samp>t</samp>&rsquo; &ndash; no align (default), &lsquo;<samp>n</samp>&rsquo; &ndash; align in x-y plane.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Puts-3"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>float</code> <b>Puts</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> l, <code>const char *</code>text, <code>char</code>where=<code>'t'</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-Putsw-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>float</code> <b>Putsw</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> l, <code>const wchar_t *</code>text, <code>char</code>where=<code>'t'</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-Puts-4"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Puts</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>const char *</code>text, <code>char</code>where=<code>'t'</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fputs_005fdir"></a><u>C function:</u> <code>void</code> <b>mgl_puts_dir</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>const char *</code>text, <code>float</code> size)</i></dt>
+<dt><a name="index-mgl_005fputsw_005fdir"></a><u>C function:</u> <code>void</code> <b>mgl_putsw_dir</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>const wchar_t *</code>text, <code>float</code> size)</i></dt>
+<dd><p>The function plots the string <var>text</var> at position <var>p</var> along direction <var>l</var> with specified <var>size</var>. Parameter <var>where</var> set to print text above the line (&lsquo;<samp>T</samp>&rsquo;) or under the line (&lsquo;<samp>t</samp>&rsquo;). Function return the width of the string.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Text-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Text</b><i> (<code>mglPoint</code> p, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>, <code>char</code> dir=<code>0</code>)</i></dt>
+<dt><a name="index-Text-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Text</b><i> (<code>mglPoint</code> p, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>, <code>char</code> dir=<code>0</code>)</i></dt>
+<dd><p>The function plots the string <var>text</var> at position <var>p</var> with fonts <var>how</var>. These functions are obsolete &ndash; use Puts(), Putsw() functions instead.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Printf"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Printf</b><i> (<code>mglPoint</code> p, <code>const char *</code>arg, ...)</i></dt>
+<dd><p>Print formatted string at point <var>p</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Label"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Label</b><i> (<code>float</code> x, <code>float</code> y, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-Labelw"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Labelw</b><i> (<code>float</code> x, <code>float</code> y, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005flabel_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_label_xy</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>const char *</code>text, <code>const char *</code>font, <code>float</code> size)</i></dt>
+<dt><a name="index-mgl_005flabelw_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_labelw_xy</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>const wchar_t *</code>text, <code>const char *</code>font, <code>float</code> size)</i></dt>
+<dd><p>The function draws the string <var>text</var> at position {<var>x</var>, <var>y</var>} with fonts specifying by <var>font</var>. The size of font is set by <var>size</var> parameter (default is <var>FontSize</var>). Coordiantes <code>x, y</code> are supposed to be in range [0,1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Title-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Title</b><i> (<code>const char *</code>text, <code>const char *</code>font=<code>0</code>, <code>float</code> size=<code>-2</code>)</i></dt>
+<dt><a name="index-Title-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Title</b><i> (<code>const wchar_t *</code>text, <code>const char *</code>font=<code>0</code>, <code>float</code> size=<code>-2</code>)</i></dt>
+<dt><a name="index-Title-3"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Title</b><i> (<code>const char *</code>text, <code>const char *</code>font=<code>0</code>, <code>int</code> size=<code>-2</code>)</i></dt>
+<dt><a name="index-mgl_005ftitle"></a><u>C function:</u> <code>void</code> <b>mgl_title</b><i> (<code>HMGL</code> gr, <code>const char *</code>text, <code>const char *</code>font, <code>int</code> size)</i></dt>
+<dt><a name="index-mgl_005ftitlew"></a><u>C function:</u> <code>void</code> <b>mgl_titlew</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>text, <code>const char *</code>font, <code>int</code> size)</i></dt>
+<dd><p>Print string <var>text</var> as title of the picture (at the top of the picture). Can be used at any place (even inside SubPlot()).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Text-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-4"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>y, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-5"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-6"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-7"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-8"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005ftext_005fy"></a><u>C function:</u> <code>void</code> <b>mgl_text_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>text, <code>const char *</code>font, float size)</i></dt>
+<dt><a name="index-mgl_005ftext_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_text_xy</b><i> (<code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>text, <code>const char *</code>font, float size)</i></dt>
+<dt><a name="index-mgl_005ftext_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_text_xyz</b><i> (<code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>text, <code>const char *</code>font, float size)</i></dt>
+<dd><p>The function draws <var>text</var> along the curve between points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} by font style <var>font</var> and with size <var>size</var>. The string <var>font</var> may contain symbols &lsquo;<samp>t</samp>&rsquo; for printing the text under the curve (default), or &lsquo;<samp>T</samp>&rsquo; for printing the text above the curve. The sizes of 1st dimension must be equal for all arrays <code>x.nx=y.nx=z.nx</code>. If array <var>x</var> is not specified then its an automatic array is used with values equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x] (see section <a href="#Ranges-_0028bounding-box_0029">Ranges (bounding box)</a>). If array <var>z</var> is not specified then <var>z</var>[i] = <var>zVal</var> is used. See section <a href="mathgl_en_9.html#Text-sample">Text sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axis-and-Colorbar"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-and-Colorbar-1"></a>
+<h2 class="section">3.7 Axis and Colorbar</h2>
+<a name="index-Axis-2"></a>
+<a name="index-Box"></a>
+<a name="index-Grid"></a>
+<a name="index-Colorbar"></a>
+<a name="index-Label-1"></a>
+
+<p>These functions draw the &ldquo;things for measuring&rdquo;, like axis with ticks, colorbar with ticks, grid along axis, bounding box and labels for axis. For more information see section <a href="#Axis-settings">Axis settings</a>.
+</p>
+<dl>
+<dt><a name="index-Axis-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axis</b><i> (<code>const char *</code>dir=<code>&quot;xyz&quot;</code>, <code>bool</code> adjust=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005faxis"></a><u>C function:</u> <code>void</code> <b>mgl_axis</b><i> (<code>HMGL</code> gr, <code>const char *</code>dir)</i></dt>
+<dd><p>Draws axes with ticks (see section <a href="#Axis-settings">Axis settings</a>) in directions determined by string parameter <var>dir</var>.If string contain the symbol &lsquo;<samp>_</samp>&rsquo; then tick labels are not printed. Font for ticks labels is determined by <var>FontDef</var> (see section <a href="#Font-settings">Font settings</a>). Ticks will be adjusted if <var>adjust</var>=<code>true</code> (by call of <code>AdjustTicks()</code>). You may specified an arrow at the end of axis (see see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>)
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Colorbar-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Colorbar</b><i> (<code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> where=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcolorbar"></a><u>C function:</u> <code>void</code> <b>mgl_colorbar</b><i> (<code>HMGL</code> gr, <code>const char *</code>sch, <code>int</code> where)</i></dt>
+<dd><p>Draws colorbar with color scheme <var>sch</var> (current scheme if <code>sch=&quot;&quot;</code>) at edge of plot. Parameter <var>where</var> specifies the position of the colorbar: &lsquo;<samp>0</samp>&rsquo; - at right (default), &lsquo;<samp>1</samp>&rsquo; - at left, &lsquo;<samp>2</samp>&rsquo; - at top, &lsquo;<samp>3</samp>&rsquo; - at bottom. If string <var>sch</var> contains &lsquo;<samp>&lt;&gt;^_</samp>&rsquo; then the parameter <var>pos</var> is defined as: <code>pos=0</code> for &lsquo;<samp>&gt;</samp>&rsquo; (right), <code>pos=1</code> for &lsquo;<samp>&lt;</samp>&rsquo; (left), <code>pos=2</code> for &lsquo;<samp>^</samp>&rsquo; (top), <code>pos=3</code> for &lsquo;<samp>_</samp>&rsquo; (bottom). If string have &lsquo;<samp>A</samp>&rsquo; then absolute (relative to picture) coordinates is used. See section <a href="mathgl_en_9.html#Dens-sample">Dens sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Colorbar-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Colorbar</b><i> (<code>const mglData &amp;</code>v, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> where=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcolorbar_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_colorbar_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const char *</code>sch, <code>int</code> where)</i></dt>
+<dd><p>The same as previous but with sharp colors <var>sch</var> (current palette if <code>sch=&quot;&quot;</code>) for values <var>v</var>. See section <a href="mathgl_en_9.html#ContD-sample">ContD sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Colorbar-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Colorbar</b><i> (<code>const char *</code>sch, <code>int</code> where, <code>float</code> x, <code>float</code> y, <code>float</code> w, <code>float</code> h)</i></dt>
+<dt><a name="index-Colorbar-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Colorbar</b><i> (<code>int</code> where, <code>float</code> x, <code>float</code> y, <code>float</code> w, <code>float</code> h)</i></dt>
+<dt><a name="index-mgl_005fcolorbar_005fext"></a><u>C function:</u> <code>void</code> <b>mgl_colorbar_ext</b><i> (<code>HMGL</code> gr, <code>const char *</code>sch, <code>int</code> where, <code>float</code> x, <code>float</code> y, <code>float</code> w, <code>float</code> h)</i></dt>
+<dd><p>The same as first one but at arbitrary position of subplot {<var>x</var>, <var>y</var>} (supposed to be in range [0,1]). Parameters <var>w</var>, <var>h</var> set the relative width and height of the colorbar.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Colorbar-5"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Colorbar</b><i> (<code>const mglData &amp;</code>v, <code>const char *</code>sch, <code>int</code> where, <code>float</code> x, <code>float</code> y, <code>float</code> w, <code>float</code> h)</i></dt>
+<dd><p>The same as previous but with sharp colors <var>sch</var> (current palette if <code>sch=&quot;&quot;</code>) for values <var>v</var>. See section <a href="mathgl_en_9.html#ContD-sample">ContD sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Grid-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid</b><i> (<code>const char *</code>dir=<code>&quot;xyz&quot;</code>, <code>const char *</code>pen=<code>&quot;B-&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005faxis_005fgrid"></a><u>C function:</u> <code>void</code> <b>mgl_axis_grid</b><i> (<code>HMGL</code> gr, <code>const char *</code>dir, <code>const char *</code>pen)</i></dt>
+<dd><p>Draws grid lines perpendicular to direction determined by string parameter <var>dir</var>. The step of grid lines is the same as tick step for an Axis(). The style of lines is determined by <var>pen</var> parameter (default value is dark blue solid line &lsquo;<samp>B-</samp>&rsquo;).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Box-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Box</b><i> (<code>const char *</code>col=<code>&quot;&quot;</code>, <code>bool</code> ticks=<code>true</code>)</i></dt>
+<dt><a name="index-Box-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Box</b><i> (<code>mglColor</code> col, <code>bool</code> ticks=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fbox"></a><u>C function:</u> <code>void</code> <b>mgl_box</b><i> (<code>HMGL</code> gr, <code>int</code> ticks)</i></dt>
+<dt><a name="index-mgl_005fbox_005frgb"></a><u>C function:</u> <code>void</code> <b>mgl_box_rgb</b><i> (<code>HMGL</code> gr, <code>float</code> r, <code>float</code> g, <code>float</code> b, <code>int</code> ticks)</i></dt>
+<dt><a name="index-mgl_005fbox_005fstr"></a><u>C function:</u> <code>void</code> <b>mgl_box_str</b><i> (<code>HMGL</code> gr, <code>const char *</code>col, <code>int</code> ticks)</i></dt>
+<dd><p>Draws bounding box outside the plotting volume with color <var>col</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Label-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Label</b><i> (<code>char</code> dir, <code>const char *</code>text, <code>float</code> pos=<code>0</code>, <code>float</code> size=<code>-1.4</code>, <code>float</code> shift=<code>0</code>)</i></dt>
+<dt><a name="index-Label-3"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Label</b><i> (<code>char</code> dir, <code>const wchar_t *</code>text, <code>float</code> pos=<code>0</code>, <code>float</code> size=<code>-1.4</code>, <code>float</code> shift=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005flabel"></a><u>C function:</u> <code>void</code> <b>mgl_label</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>const char *</code>text)</i></dt>
+<dt><a name="index-mgl_005flabel_005fext"></a><u>C function:</u> <code>void</code> <b>mgl_label_ext</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>const char *</code>text, <code>float</code> pos, <code>float</code> size, <code>float</code> shift)</i></dt>
+<dt><a name="index-mgl_005flabelw_005fext"></a><u>C function:</u> <code>void</code> <b>mgl_labelw_ext</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>const wchar_t *</code>text, <code>float</code> pos, <code>float</code> size, <code>float</code> shift)</i></dt>
+<dd><p>Prints the label <var>text</var> for axis <var>dir</var>=&lsquo;<samp>x</samp>&rsquo;,&lsquo;<samp>y</samp>&rsquo;,&lsquo;<samp>z</samp>&rsquo;,&lsquo;<samp>t</samp>&rsquo; (here &lsquo;<samp>t</samp>&rsquo; is &ldquo;ternary&rdquo; axis <em>t=1-x-y</em>). The position of label is determined by <var>pos</var> parameter. If <var>pos</var>=0 then label is printed at the center of axis. If <var>pos</var>&gt;0 then label is printed at the maximum of axis. If <var>pos</var>&lt;0 then label is printed at the minimum of axis. Parameter <var>size</var> determines the font size for the label. By default the font size is 1.4 times larger than the one for ticks <var>FontSize</var> (see section <a href="#Font-settings">Font settings</a>). See section <a href="#Text-printing">Text printing</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Legend"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-Colorbar" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Legend-1"></a>
+<h2 class="section">3.8 Legend</h2>
+<a name="index-Legend"></a>
+<a name="index-AddLegend"></a>
+<a name="index-ClearLegend"></a>
+<a name="index-SetLegendBox"></a>
+<a name="index-SetLegendMarks"></a>
+
+<p>These functions draw legend to the graph (useful for <a href="#g_t1D-plotting">1D plotting</a>). Legend entry is a pair of strings: one for style of the line, another one with description text (with included TeX parsing). The arrays of strings may be used directly or by accumulating first to the internal arrays (by function AddLegend()) and further plotting it. The position of the legend can be selected automatic or manually. Parameters <var>font</var> and <var>size</var> specify the font style and size (see section <a href="#Font-settings">Font settings</a>). Parameter <var>llen</var> set the relative width of the line sample and the text indent. If line style string for entry is empty then the corresponding text is printed without indent. If string <var>font</var> contains symbol &lsquo;<samp>A</samp>&rsquo; then legend coordinates set position in the picture (not in the current subplot). See section <a href="mathgl_en_9.html#Legend-sample">Legend sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Legend-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Legend</b><i> (<code>int</code> where=<code>0x3</code>, <code>const char *</code>font=<code>&quot;rL&quot;</code>, <code>float</code> size=<code>-0.8</code>, <code>float</code> llen=<code>0.1</code>)</i></dt>
+<dt><a name="index-mgl_005flegend"></a><u>C function:</u> <code>void</code> <b>mgl_legend</b><i> (<code>HMGL</code> gr, <code>int</code> where, <code>const char *</code>font, <code>float</code> size, <code>float</code> llen)</i></dt>
+<dd><p>Draws legend of accumulated legend entries by font <var>font</var> with <var>size</var>. Parameter <var>where</var> sets the position of the legend: &lsquo;<samp>0</samp>&rsquo; is bottom left corner, &lsquo;<samp>1</samp>&rsquo; is bottom right corner, &lsquo;<samp>2</samp>&rsquo; is top left corner, &lsquo;<samp>3</samp>&rsquo; is top right corner (is default).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Legend-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Legend</b><i> (<code>int</code> n, <code>wchar_t **</code>text, <code>char **</code>style, <code>int</code> where=<code>0x3</code>, <code>const char *</code>font=<code>&quot;rL&quot;</code>, <code>float</code> size=<code>-0.8</code>, <code>float</code> llen=<code>0.1</code>)</i></dt>
+<dd><p>Draws legend with <var>n</var>-th elements of string array <var>text</var> by font <var>font</var> with <var>size</var>. Entry strings <var>text</var> describe curves with line style <var>style</var> (including marks). Parameter <var>where</var> sets the position of the legend: &lsquo;<samp>0</samp>&rsquo; is bottom left corner, &lsquo;<samp>1</samp>&rsquo; is bottom right corner, &lsquo;<samp>2</samp>&rsquo; is top left corner, &lsquo;<samp>3</samp>&rsquo; is top right corner (is default).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Legend-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Legend</b><i> (<code>float</code> x, <code>float</code> y, <code>const char *</code>font=<code>&quot;rL&quot;</code>, <code>float</code> size=<code>-0.8</code>, <code>float</code> llen=<code>0.1</code>)</i></dt>
+<dt><a name="index-mgl_005flegend_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_legend_xy</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>const char *</code>font, <code>float</code> size, <code>float</code> llen)</i></dt>
+<dd><p>Draws legend of accumulated legend entries by font <var>font</var> with <var>size</var>. Position of legend is determined by parameter <var>x</var>, <var>y</var> which supposed to be normalized to interval [0,1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Legend-4"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Legend</b><i> (<code>int</code> n, <code>wchar_t **</code>text, <code>char **</code>style, <code>float</code> x, <code>float</code> y, <code>const char *</code>font=<code>&quot;rL&quot;</code>, <code>float</code> size=<code>-0.8</code>, <code>float</code> llen=<code>0.1</code>)</i></dt>
+<dd><p>Draws legend with <var>n</var>-th elements of string array <var>text</var> by font <var>font</var> with <var>size</var>. Entry strings <var>text</var> describe curves with line style <var>style</var> (including marks). Position of legend is determined by parameter <var>x</var>, <var>y</var> which supposed to be normalized to interval [0,1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AddLegend-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>AddLegend</b><i> (<code>const char *</code>text, <code>const char *</code>style)</i></dt>
+<dt><a name="index-AddLegend-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>AddLegend</b><i> (<code>const wchar_t *</code>text, <code>const char *</code>style)</i></dt>
+<dt><a name="index-mgl_005fadd_005flegend"></a><u>C function:</u> <code>void</code> <b>mgl_add_legend</b><i> (<code>HMGL</code> gr, <code>const char *</code>text, <code>const char *</code>style)</i></dt>
+<dt><a name="index-mgl_005fadd_005flegendw"></a><u>C function:</u> <code>void</code> <b>mgl_add_legendw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>text, <code>const char *</code>style)</i></dt>
+<dd><p>Adds string <var>text</var> to internal legend accumulator. The style of described line and mark is specified in string <var>style</var> (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). Maximal number of entries is 100.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ClearLegend-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ClearLegend</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fclear_005flegend"></a><u>C function:</u> <code>void</code> <b>mgl_clear_legend</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Clears saved legend strings.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetLegendBox-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetLegendBox</b><i> (<code>bool</code> enable)</i></dt>
+<dt><a name="index-mgl_005fset_005flegend_005fbox"></a><u>C function:</u> <code>void</code> <b>mgl_set_legend_box</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Switch on/off drawing box near legend. By default (=<code>true</code>) box is drawn.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetLegendMarks-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetLegendMarks</b><i> (<code>int</code> num)</i></dt>
+<dt><a name="index-mgl_005fset_005flegend_005fmarks"></a><u>C function:</u> <code>void</code> <b>mgl_set_legend_marks</b><i> (<code>HMGL</code> gr, <code>int</code> num)</i></dt>
+<dd><p>Set the number of marks in the legend. By default 1 mark is used.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-LegendBox-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>bool</code> <b>LegendBox</b></dt>
+<dd><p>Switch on/off drawing box near legend. See <code>SetLegendBox()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t1D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-plotting-1"></a>
+<h2 class="section">3.9 1D plotting</h2>
+
+<p>These functions perform plotting of 1D data. 1D means that data depended from only 1 parameter like parametric curve {x(i),y(i),z(i)}, i=1...n. There are 5 generally different types of data representations: simple line plot (Plot), line plot with filling under it (Area), stairs plot (Step), bar plot (Bars, Barh) and vertical lines (Stem). Each type of plotting has similar interface. There are 3D version and two 2D versions. One of last requires single array. The parameters of line and marks are specified by the string argument. If the string parameter is &quot;&quot; then solid line with color from palette Pal is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). Also there are some special 1d plots having slightly different interface: surface of curve rotation (Torus), chart (Chart) and error boxes (Error), marks with variable size (Mark), tubes (Tube) and so on. See section <a href="mathgl_en_1.html#Line-styles">Line styles</a>. See section <a href="mathgl_en_9.html#g_t1D-plot-sample">1D plot sample</a>, for sample code and picture.
+</p>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plot">3.9.1 Plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Radar">3.9.2 Radar</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tens">3.9.3 Tens</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area">3.9.4 Area</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region">3.9.5 Region</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stem">3.9.6 Stem</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars">3.9.7 Bars</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Barh">3.9.8 Barh</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Chart">3.9.9 Chart</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Step">3.9.10 Step</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Torus">3.9.11 Torus</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tube">3.9.12 Tube</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mark">3.9.13 Mark</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TextMark">3.9.14 TextMark</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Error">3.9.15 Error</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#BoxPlot">3.9.16 BoxPlot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Radar" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plot-1"></a>
+<h3 class="subsection">3.9.1 Plot</h3>
+<a name="index-Plot"></a>
+
+<p>These functions draw continuous lines between points. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). See also <a href="#Area">Area</a>, <a href="#Step">Step</a>, <a href="#Stem">Stem</a>, <a href="#Tube">Tube</a>, <a href="#Mark">Mark</a>, <a href="#Error">Error</a>, <a href="#Belt">Belt</a>, <a href="#Tens">Tens</a>. See section <a href="mathgl_en_9.html#Plot-sample">Plot sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Plot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fplot_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_plot_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous lines between points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} in 3D space.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Plot-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fplot_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_plot_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous lines between points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Plot-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fplot"></a><u>C function:</u> <code>void</code> <b>mgl_plot</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous lines between points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>), where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Radar"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tens" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Radar-1"></a>
+<h3 class="subsection">3.9.2 Radar</h3>
+<a name="index-Radar"></a>
+
+<dl>
+<dt><a name="index-Radar-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Radar</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>pen=<code>&quot;&quot;</code>, <code>float</code> r=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fradar"></a><u>C function:</u> <code>void</code> <b>mgl_radar</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>pen, <code>float</code> r)</i></dt>
+<dd><p>This functions draws radar chart which is continuous lines between points located on an radial lines (like plot in Polar coordinates). The plots are drawn for each row if one of the data is the matrix. Parameter <var>r</var> set the additional shift of data (i.e. the data <var>a</var>+<var>r</var> is used instead of <var>a</var>). If <code>r&lt;0</code> then <code>r=max(0, -min(a)</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). If <var>pen</var> containt &lsquo;<samp>#</samp>&rsquo; symbol then &quot;grid&quot; (radial lines and circle for <var>r</var>) is drawn See also <a href="#Plot">Plot</a>. See section <a href="mathgl_en_9.html#Radar-sample">Radar sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Tens"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Radar" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tens-1"></a>
+<h3 class="subsection">3.9.3 Tens</h3>
+<a name="index-Tens"></a>
+
+<p>These functions draw continuous lines between points with color defined by the special array (look like tension plot). The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx</code>. String <var>pen</var> specifies the color scheme (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>) and style and/or width of line (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with current color scheme is used. See also <a href="#Plot">Plot</a>, <a href="#Mesh">Mesh</a>, <a href="#Fall">Fall</a>. See section <a href="mathgl_en_9.html#Tens-sample">Tens sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Tens-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tens</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftens_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_tens_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous lines between points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} in 3D space with color defined by <var>c</var>[i].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tens-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tens</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>c, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftens_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_tens_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> c, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous lines between points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>) with color defined by <var>c</var>[i].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tens-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tens</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>c, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftens"></a><u>C function:</u> <code>void</code> <b>mgl_tens</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> c, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous lines between points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>) with color defined by <var>c</var>[i], where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Area"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tens" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-1"></a>
+<h3 class="subsection">3.9.4 Area</h3>
+<a name="index-Area"></a>
+
+<p>These functions draw continuous lines between points and fills it to axis plane. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). Also you can use gradient filling if number of specified colors is equal to 2*number of curves. If string contain symbol &lsquo;<samp>a</samp>&rsquo; then lines are drawn one above another (like summation) &ndash; you can reach the same effect if call <code>y.CumSum(&quot;y&quot;);</code> before plot. See also <a href="#Plot">Plot</a>, <a href="#Bars">Bars</a>, <a href="#Stem">Stem</a>. See section <a href="mathgl_en_9.html#Area-sample">Area sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Area-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Area</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005farea_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_area_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous lines between points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} in 3D space and fills it down to <var>z</var> = Org.z.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Area-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Area</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005farea_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_area_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous lines between points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>) and fills it down to <var>y</var> = Org.y.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Area-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Area</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005farea"></a><u>C function:</u> <code>void</code> <b>mgl_area</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous lines between points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>) and fills it down to <var>y</var> = Org.y, where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Region"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stem" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-1"></a>
+<h3 class="subsection">3.9.5 Region</h3>
+<a name="index-Region"></a>
+
+<p>These functions fill area between 2 curves. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y1.nx=y2.nx</code> and all dimensions of arrays <var>y1</var> and <var>y2</var> must be equal too. String <var>pen</var> specifies the color (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). Also you can use gradient filling if number of specified colors is equal to 2*number of curves. See also <a href="#Area">Area</a>, <a href="#Bars">Bars</a>, <a href="#Stem">Stem</a>. See section <a href="mathgl_en_9.html#Region-sample">Region sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Region-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Region</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y1, <code>const mglData &amp;</code>y2, <code>const char *</code>pen=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>bool</code> inside=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fregion_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_region_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y1, <code>const HMDT</code> y2, <code>const char *</code>pen, <code>int</code> inside)</i></dt>
+<dd><p>The function fills area between curves {<var>x</var>[i], <var>y1</var>[i]} and {<var>x</var>[i], <var>y2</var>[i]} at z=<var>zVal</var>. Parameter <code>inside=false</code> set to fill are with y1&lt;y&lt;y2 else the area with y2&lt;y&lt;y1 will be also filled.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Region-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Region</b><i> (<code>const mglData &amp;</code>y1, <code>const mglData &amp;</code>y2, <code>const char *</code>pen=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>bool</code> inside=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fregion"></a><u>C function:</u> <code>void</code> <b>mgl_region</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y1, <code>const HMDT</code> y2, <code>const char *</code>pen, <code>int</code> inside)</i></dt>
+<dd><p>The function fills area between curves {<var>x</var>[i], <var>y1</var>[i]} and {<var>x</var>[i], <var>y2</var>[i]}, where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x] at z=<var>zVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Stem"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stem-1"></a>
+<h3 class="subsection">3.9.6 Stem</h3>
+<a name="index-Stem"></a>
+
+<p>These functions draw vertical lines from points to axis plane. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). See also <a href="#Area">Area</a>, <a href="#Bars">Bars</a>, <a href="#Plot">Plot</a>, <a href="#Mark">Mark</a>. See section <a href="mathgl_en_9.html#Stem-sample">Stem sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Stem-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Stem</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstem_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_stem_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws vertical lines from points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} down to <var>z</var> = Org.z.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Stem-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Stem</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstem_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_stem_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws vertical lines from points {<var>x</var>[i], <var>y</var>[i]} down to <var>y</var> = Org.y in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Stem-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Stem</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstem"></a><u>C function:</u> <code>void</code> <b>mgl_stem</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws vertical lines from points {<var>x</var>[i], <var>y</var>[i]} down to <var>y</var> = Org.y in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>), where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Bars"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Stem" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Barh" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-1"></a>
+<h3 class="subsection">3.9.7 Bars</h3>
+<a name="index-Bars"></a>
+
+<p>These functions draw vertical bars from points to axis plane. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). If string contain symbol &lsquo;<samp>a</samp>&rsquo; then lines are drawn one above another (like summation). If string contain symbol &lsquo;<samp>f</samp>&rsquo; then waterfall chart is drawn for determining the cumulative effect of sequentially introduced positive or negative values. You can different colors for positive and negative values if number of specified colors is equal to 2*number of curves. See also <a href="#Barh">Barh</a>, <a href="#Area">Area</a>, <a href="#Stem">Stem</a>, <a href="#Chart">Chart</a>, <a href="#Default-sizes">Default sizes</a>. See section <a href="mathgl_en_9.html#Bars-sample">Bars sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Bars-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Bars</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbars_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_bars_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws vertical bars from points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} down to <var>z</var> = Org.z.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Bars-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Bars</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbars_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_bars_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws vertical bars from points {<var>x</var>[i], <var>y</var>[i]} down to <var>y</var> = Org.y in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Bars-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Bars</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbars"></a><u>C function:</u> <code>void</code> <b>mgl_bars</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws vertical bars from points {<var>x</var>[i], <var>y</var>[i]} down to <var>y</var> = Org.y in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>), where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Barh"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Chart" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Barh-1"></a>
+<h3 class="subsection">3.9.8 Barh</h3>
+<a name="index-Barh"></a>
+
+<p>These functions draw horizontal bars from points to axis plane. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). If string contain symbol &lsquo;<samp>a</samp>&rsquo; then lines are drawn one above another (like summation). See also <a href="#Barh">Barh</a>, <a href="#Default-sizes">Default sizes</a>. See section <a href="mathgl_en_9.html#Barh-sample">Barh sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Barh-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Barh</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>v, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbarh_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_barh_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> v, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws horizontal bars from points {<var>v</var>[i], <var>y</var>[i]} down to <var>x</var> = Org.x in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Barh-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Barh</b><i> (<code>const mglData &amp;</code>v, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbarh"></a><u>C function:</u> <code>void</code> <b>mgl_barh</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws horizontal bars from points {<var>v</var>[i], <var>y</var>[i]} down to <var>x</var> = Org.x in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>), where <var>y</var>[i] values are equidistantly distributed in interval [<var>Min</var>.y, <var>Max</var>.y].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Chart"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Barh" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Step" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Chart-1"></a>
+<h3 class="subsection">3.9.9 Chart</h3>
+<a name="index-Chart"></a>
+
+<dl>
+<dt><a name="index-Chart-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Chart</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>col=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fchart"></a><u>C function:</u> <code>void</code> <b>mgl_chart</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>col)</i></dt>
+<dd><p>The function draws colored stripes (boxes) for data in array <var>a</var>. The number of stripes is equal to the number of rows in <var>a</var> (equal to <var>a.ny</var>). The color of each next stripe is cyclically changed from colors specified in string <var>col</var> or in palette Pal (see section <a href="#Palette-and-colors">Pallete and colors</a>). Spaces in colors denote transparent &ldquo;color&rdquo;, i.e. if <var>col</var> contain space(s) then corresponding stripe(s) are not drawn. The stripe width is proportional to value of element in <var>a</var>. Chart is plotted only for data with non-negative elements. If string <var>col</var> have symbol &lsquo;<samp>#</samp>&rsquo; then black border lines are drawn. The most nice form the chart have in 3d (after rotation of coordinates) or in cylindrical coordinates (becomes so called Pie chart). See section <a href="mathgl_en_9.html#Chart-sample">Chart sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Step"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Chart" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Torus" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Step-1"></a>
+<h3 class="subsection">3.9.10 Step</h3>
+<a name="index-Step"></a>
+
+<p>These functions draw continuous stairs for points to axis plane. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). See also <a href="#Plot">Plot</a>, <a href="#Stem">Stem</a>, <a href="#Tile">Tile</a>, <a href="#Boxs">Boxs</a>. See section <a href="mathgl_en_9.html#Step-sample">Step sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Step-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Step</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstep_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_step_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous stairs for points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Step-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Step</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstep_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_step_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous stairs for points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Step-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Step</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstep"></a><u>C function:</u> <code>void</code> <b>mgl_step</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous stairs for points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>), where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Torus"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Step" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tube" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Torus-1"></a>
+<h3 class="subsection">3.9.11 Torus</h3>
+<a name="index-Torus"></a>
+
+<p>These functions draw surface which is result of curve {<var>r</var>, <var>z</var>} rotation around <var>AxialDir</var> axis (see section <a href="#Other-settings">Other settings</a>). The sizes of 1st dimension <strong>must be equal</strong> for all arrays <var>r.nx=z.nx</var>. String <var>pen</var> specifies the color (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). See also <a href="#Plot">Plot</a>, <a href="#Axial">Axial</a>. See section <a href="mathgl_en_9.html#Torus-sample">Torus sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Torus-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Torus</b><i> (<code>const mglData &amp;</code>r, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftorus"></a><u>C function:</u> <code>void</code> <b>mgl_torus</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> r, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws surface which is result of curve {<var>r</var>[i], <var>z</var>[i]} rotation.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Torus-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Torus</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>The function draws surface which is result of curve {<var>r</var>[i], <var>z</var>[i]} rotation, where <var>r</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Tube"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Torus" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mark" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tube-1"></a>
+<h3 class="subsection">3.9.12 Tube</h3>
+<a name="index-Tube"></a>
+
+<p>These functions draw the tube with variable radius <var>r</var>[i] along the curve between points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx=r.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). See also <a href="#Plot">Plot</a>. See section <a href="mathgl_en_9.html#Tube-sample">Tube sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Tube-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-Tube-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>float</code> r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftube_005fxyzr"></a><u>C function:</u> <code>void</code> <b>mgl_tube_xyzr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dt><a name="index-mgl_005ftube_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_tube_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>float</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws tube with radius <var>r</var> between points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} in 3D space.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tube-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-Tube-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>float</code> r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftube_005fxyr"></a><u>C function:</u> <code>void</code> <b>mgl_tube_xyr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dt><a name="index-mgl_005ftube_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_tube_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>float</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws tube with radius <var>r</var> between points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tube-5"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-Tube-6"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>y, <code>float</code> r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftube_005fr"></a><u>C function:</u> <code>void</code> <b>mgl_tube_r</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dt><a name="index-mgl_005ftube"></a><u>C function:</u> <code>void</code> <b>mgl_tube</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>float</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws tube with radius <var>r</var> between points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>), where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Mark"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tube" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TextMark" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mark-1"></a>
+<h3 class="subsection">3.9.13 Mark</h3>
+<a name="index-Mark-3"></a>
+
+<p>These functions draw marks with size <var>r</var>*<var>MarkSize</var> (see section <a href="#Default-sizes">Default sizes</a>) at points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx=r.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). If you need to draw markers of the same size then you may use <a href="#Plot">Plot</a> function. See also <a href="#Plot">Plot</a>, <a href="#TextMark">TextMark</a>, <a href="#Stem">Stem</a>, <a href="#Error">Error</a>. See section <a href="mathgl_en_9.html#Mark-sample">Mark sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Mark-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmark_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_mark_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws marks for points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} in 3D space.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Mark-5"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmark_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_mark_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws marks for points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Mark-6"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mark</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmark_005fy"></a><u>C function:</u> <code>void</code> <b>mgl_mark_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws marks for points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>), where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="TextMark"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mark" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Error" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TextMark-1"></a>
+<h3 class="subsection">3.9.14 TextMark</h3>
+<a name="index-TextMark"></a>
+
+<p>These functions draw string <var>text</var> as marks with size proportional to <var>r</var>*<var>MarkSize</var> (see section <a href="#Default-sizes">Default sizes</a>) at points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx=r.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). See also <a href="#Plot">Plot</a>, <a href="#Mark">Mark</a>, <a href="#Stem">Stem</a>. See section <a href="mathgl_en_9.html#TextMark-sample">TextMark sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-TextMark-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const char *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TextMark-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const wchar_t *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftextmarkw_005fxyzr"></a><u>C function:</u> <code>void</code> <b>mgl_textmarkw_xyzr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const wchar_t *</code>text, <code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005ftextmark_005fxyzr"></a><u>C function:</u> <code>void</code> <b>mgl_textmark_xyzr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const char *</code>text, <code>const char *</code>fnt)</i></dt>
+<dd><p>The function draws textual marks for points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} in 3D space.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TextMark-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TextMark-4"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const wchar_t *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftextmarkw_005fxyr"></a><u>C function:</u> <code>void</code> <b>mgl_textmarkw_xyr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const wchar_t *</code>text, <code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005ftextmark_005fxyr"></a><u>C function:</u> <code>void</code> <b>mgl_textmark_xyr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>text, <code>const char *</code>fnt)</i></dt>
+<dd><p>The function draws textual marks for points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TextMark-5"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TextMark-6"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const wchar_t *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftextmarkw_005fyr"></a><u>C function:</u> <code>void</code> <b>mgl_textmarkw_yr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const wchar_t *</code>text, <code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005ftextmark_005fyr"></a><u>C function:</u> <code>void</code> <b>mgl_textmark_yr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>text, <code>const char *</code>fnt)</i></dt>
+<dd><p>The function draws textual marks for points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>), where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TextMark-7"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TextMark-8"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>y, <code>const wchar_t *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftextmarkw"></a><u>C function:</u> <code>void</code> <b>mgl_textmarkw</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const wchar_t *</code>text, <code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005ftextmark"></a><u>C function:</u> <code>void</code> <b>mgl_textmark</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>text, <code>const char *</code>fnt)</i></dt>
+<dd><p>The function draws textual marks for points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>), where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x]. The mark sizes <var>r</var>[i]=1 for all points.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Error"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TextMark" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#BoxPlot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Error-1"></a>
+<h3 class="subsection">3.9.15 Error</h3>
+<a name="index-Error-2"></a>
+
+<p>These functions draw error boxes at points {<var>x</var>[i], <var>y</var>[i]} on plane <var>z</var> = <var>zVal</var> (by default <var>z</var>=<var>Min.z</var>). This can be useful, for example, in experimental points, or to show numeric error or some estimations and so on. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx=r.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). See also <a href="#Plot">Plot</a>. See section <a href="mathgl_en_9.html#Error-sample">Error sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Error-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Error</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ex, <code>const mglData &amp;</code>ey, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ferror_005fexy"></a><u>C function:</u> <code>void</code> <b>mgl_error_exy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ex, <code>const HMDT</code> ey, <code>const char *</code>pen)</i></dt>
+<dd><p>Draws a error box {<var>ex</var>, <var>ey</var>} in point position {<var>x</var>, <var>y</var>}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Error-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Error</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ey, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ferror_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_error_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ey, <code>const char *</code>pen)</i></dt>
+<dd><p>Draws a error box <var>ey</var> (along only one direction) in point position {<var>x</var>, <var>y</var>}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Error-5"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Error</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ey, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ferror"></a><u>C function:</u> <code>void</code> <b>mgl_error</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> ey, <code>const char *</code>pen)</i></dt>
+<dd><p>Draws a error box <var>ey</var> (along only one direction) in point position {<var>x</var>, <var>y</var>}, where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="BoxPlot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Error" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="BoxPlot-1"></a>
+<h3 class="subsection">3.9.16 BoxPlot</h3>
+<a name="index-BoxPlot"></a>
+
+<p>These functions draw boxplot (also known as a box-and-whisker diagram) at points <var>x</var>[i] on plane <var>z</var> = <var>zVal</var> (by default <var>z</var>=<var>Min.z</var>). This is five-number summaries of data <var>a</var>[i,j] (minimum, lower quartile (Q1), median (Q2), upper quartile (Q3) and maximum) along second (j-th) direction. The sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=a.nx</code>. String <var>pen</var> specifies the color and style of line (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). See also <a href="#Plot">Plot</a>, <a href="#Error">Error</a>, <a href="#Bars">Bars</a>, <a href="#Default-sizes">Default sizes</a>. See section <a href="mathgl_en_9.html#BoxPlot-sample">BoxPlot sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-BoxPlot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>BoxPlot</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fboxplot_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_boxplot_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const char *</code>pen)</i></dt>
+<dd><p>Draws a boxplot with specified values of coordinate <var>x</var>[i].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-BoxPlot-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>BoxPlot</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fboxplot"></a><u>C function:</u> <code>void</code> <b>mgl_boxplot</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>pen)</i></dt>
+<dd><p>Draws a boxplot with <var>x</var>[i] values equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t2D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#BoxPlot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mesh" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-plotting-1"></a>
+<h2 class="section">3.10 2D plotting</h2>
+
+<p>These functions perform plotting of 2D data. 2D means that data depend from 2 independent parameters like matrix <em>f(x_i,y_j), i=1...n, j=1...m</em>. There are several generally different types of data representations: simple mesh lines plot (Mesh), surface plot (Surf), surface plot by boxes (Boxs), surface plot by tiles (Tile), waterfall-like plot (Fall), belt plot (Belt), density plot (Dens), contour lines plot (Cont), solid contours plot (ContF) and its rotational figure (Axial). Cont, ContF and Axial functions have variants for automatic and manual selection of level values for contours. Also there are functions for plotting data grid lines according to the data format (Grid) for enhancing density or contour plots. Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. Parameters of color scheme are specified by the string argument. See section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>. See section <a href="mathgl_en_9.html#g_t2D-plot-sample">2D plot sample</a>, for sample code and picture.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Mesh">3.10.1 Mesh</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fall">3.10.2 Fall</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Belt">3.10.3 Belt</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf">3.10.4 Surf</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Boxs">3.10.5 Boxs</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tile">3.10.6 Tile</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens">3.10.7 Dens</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont">3.10.8 Cont</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF">3.10.9 ContF</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContD">3.10.10 ContD</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axial">3.10.11 Axial</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grad">3.10.12 Grad</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grid">3.10.13 Grid</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Mesh"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fall" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mesh-1"></a>
+<h3 class="subsection">3.10.1 Mesh</h3>
+<a name="index-Mesh"></a>
+
+<dl>
+<dt><a name="index-Mesh-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mesh</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmesh_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_mesh_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws mesh lines for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Mesh lines are plotted for each z slice of the data. See also <a href="#Surf">Surf</a>, <a href="#Fall">Fall</a>, MeshNum (see section <a href="#Other-settings">Other settings</a>), <a href="#Cont">Cont</a>, <a href="#Tens">Tens</a>. See section <a href="mathgl_en_9.html#Mesh-sample">Mesh sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Mesh-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mesh</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmesh"></a><u>C function:</u> <code>void</code> <b>mgl_mesh</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fall"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mesh" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Belt" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fall-1"></a>
+<h3 class="subsection">3.10.2 Fall</h3>
+<a name="index-Fall"></a>
+
+<dl>
+<dt><a name="index-Fall-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Fall</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ffall_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_fall_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws fall lines for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. This plot can be used for plotting several curves shifted in depth one from another. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If <var>sch</var> contain &lsquo;<samp>x</samp>&rsquo; then lines are drawn along x-direction else (by default) lines are drawn along y-direction. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Fall lines are plotted for each z slice of the data. See also <a href="#Belt">Belt</a>, <a href="#Mesh">Mesh</a>, <a href="#Tens">Tens</a>, MeshNum (see section <a href="#Other-settings">Other settings</a>). See section <a href="mathgl_en_9.html#Fall-sample">Fall sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fall-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Fall</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ffall"></a><u>C function:</u> <code>void</code> <b>mgl_fall</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Belt"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fall" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Belt-1"></a>
+<h3 class="subsection">3.10.3 Belt</h3>
+<a name="index-Belt"></a>
+
+<dl>
+<dt><a name="index-Belt-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Belt</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbelt_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_belt_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws belts for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. This plot can be used as 3d generalization of Plot (see section <a href="#Plot">Plot</a>). String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If <var>sch</var> contain &lsquo;<samp>x</samp>&rsquo; then belts are drawn along x-direction else (by default) belts are drawn along y-direction. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Belts are plotted for each z slice of the data. See also <a href="#Fall">Fall</a>, <a href="#Surf">Surf</a>, <a href="#Plot">Plot</a>, MeshNum (see section <a href="#Other-settings">Other settings</a>). See section <a href="mathgl_en_9.html#Belt-sample">Belt sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Belt-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Belt</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbelt"></a><u>C function:</u> <code>void</code> <b>mgl_belt</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Surf"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Belt" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Boxs" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-1"></a>
+<h3 class="subsection">3.10.4 Surf</h3>
+<a name="index-Surf"></a>
+
+<dl>
+<dt><a name="index-Surf-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_surf_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Mesh">Mesh</a>, <a href="#Dens">Dens</a>, <a href="#Belt">Belt</a>, <a href="#Tile">Tile</a>, <a href="#Boxs">Boxs</a>, <a href="#SurfC">SurfC</a>, <a href="#SurfA">SurfA</a>. See section <a href="mathgl_en_9.html#Surf-sample">Surf sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf"></a><u>C function:</u> <code>void</code> <b>mgl_surf</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Boxs"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tile" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Boxs-1"></a>
+<h3 class="subsection">3.10.5 Boxs</h3>
+<a name="index-Boxs"></a>
+
+<dl>
+<dt><a name="index-Boxs-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Boxs</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fboxs_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_boxs_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws vertical boxes for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Surf">Surf</a>, <a href="#Dens">Dens</a>, <a href="#Tile">Tile</a>, <a href="#Step">Step</a>. See section <a href="mathgl_en_9.html#Boxs-sample">Boxs sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Boxs-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Boxs</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fboxs"></a><u>C function:</u> <code>void</code> <b>mgl_boxs</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Tile"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Boxs" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tile-1"></a>
+<h3 class="subsection">3.10.6 Tile</h3>
+<a name="index-Tile"></a>
+
+<dl>
+<dt><a name="index-Tile-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tile</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftile_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_tile_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws horizontal tiles for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. Such plot can be used as 3d generalization of Step (see section <a href="#Step">Step</a>). String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Surf">Surf</a>, <a href="#Boxs">Boxs</a>, <a href="#Step">Step</a>, <a href="#TileS">TileS</a>. See section <a href="mathgl_en_9.html#Tile-sample">Tile sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tile-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tile</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftile"></a><u>C function:</u> <code>void</code> <b>mgl_tile</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Dens"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tile" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-1"></a>
+<h3 class="subsection">3.10.7 Dens</h3>
+<a name="index-Dens"></a>
+
+<dl>
+<dt><a name="index-Dens-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dens</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_dens_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws density plot for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} at <var>z</var> = <var>zVal</var>. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Surf">Surf</a>, <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>, <a href="#Boxs">Boxs</a>, <a href="#Tile">Tile</a>, <a href="#DensXYZ">DensXYZ</a>. See section <a href="mathgl_en_9.html#Dens-sample">Dens sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Dens-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dens</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens"></a><u>C function:</u> <code>void</code> <b>mgl_dens</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cont"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-1"></a>
+<h3 class="subsection">3.10.8 Cont</h3>
+<a name="index-Cont"></a>
+
+<dl>
+<dt><a name="index-Cont-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fxy_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_cont_xy_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws contour lines for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} at <var>z</var> = <var>zVal</var> (or for <var>z=v</var>[k] if <code>zVal==NAN</code>). Contours are plotted for <var>z</var>[i,j]=<var>v</var>[k] where <var>v</var>[k] are values of data array <var>v</var>. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. If string <var>sch</var> have symbol &lsquo;<samp>t</samp>&rsquo; or &lsquo;<samp>T</samp>&rsquo; then contour labels <var>v</var>[k] will be drawn below (or above) the contours. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Dens">Dens</a>, <a href="#ContF">ContF</a>, <a href="#ContD">ContD</a>, <a href="#Axial">Axial</a>, <a href="#ContXYZ">ContXYZ</a>. See section <a href="mathgl_en_9.html#Cont-sample">Cont sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005f_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_cont__val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_cont_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>The same as first one with vector <var>v</var> of <var>num</var>-th elements equidistantly distributed in range [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont"></a><u>C function:</u> <code>void</code> <b>mgl_cont</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContF"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContD" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF-1"></a>
+<h3 class="subsection">3.10.9 ContF</h3>
+<a name="index-ContF"></a>
+
+<dl>
+<dt><a name="index-ContF-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fxy_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_contf_xy_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws solid (or filled) contour lines for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} at <var>z</var> = <var>zVal</var> (or for <var>z=v</var>[k] if <code>zVal==NAN</code>). Contours are plotted for <var>z</var>[i,j]=<var>v</var>[k] where <var>v</var>[k] are values of data array <var>v</var> (must be <code>v.nx&gt;2</code>). String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Dens">Dens</a>, <a href="#Cont">Cont</a>, <a href="#Axial">Axial</a>, <a href="#ContFXYZ">ContFXYZ</a>. See section <a href="mathgl_en_9.html#ContF-sample">ContF sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_contf_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_contf_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>The same as first one with vector <var>v</var> of <var>num</var>-th elements equidistantly distributed in range [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf"></a><u>C function:</u> <code>void</code> <b>mgl_contf</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContD"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axial" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContD-1"></a>
+<h3 class="subsection">3.10.10 ContD</h3>
+<a name="index-ContD"></a>
+
+<dl>
+<dt><a name="index-ContD-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContD</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontd_005fxy_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_contd_xy_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws solid (or filled) contour lines for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} at <var>z</var> = <var>zVal</var> (or for <var>z=v</var>[k] if <code>zVal==NAN</code>) with manual colors. Contours are plotted for <var>z</var>[i,j]=<var>v</var>[k] where <var>v</var>[k] are values of data array <var>v</var> (must be <code>v.nx&gt;2</code>). String <var>sch</var> sets the contour colors: the color of k-th contour is determined by character <code>sch[k%strlen(sch)]</code>. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Dens">Dens</a>, <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>. See section <a href="mathgl_en_9.html#ContD-sample">ContD sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContD-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContD</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontd_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_contd_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContD-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContD</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontd_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_contd_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>The same as first one with vector <var>v</var> of <var>num</var>-th elements equidistantly distributed in range [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContD-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContD</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontd"></a><u>C function:</u> <code>void</code> <b>mgl_contd</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axial"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContD" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grad" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axial-1"></a>
+<h3 class="subsection">3.10.11 Axial</h3>
+<a name="index-Axial"></a>
+
+<dl>
+<dt><a name="index-Axial-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axial</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005faxial_005fxy_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_axial_xy_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws surface which is result of contour plot rotation for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. Contours are plotted for <var>z</var>[i,j]=<var>v</var>[k] where <var>v</var>[k] are values of data array <var>v</var>. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. If string contain symbols &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo; then rotation axis <var>AxialDir</var> (see section <a href="#Other-settings">Other settings</a>) will be set to specified direction. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>, <a href="#Torus">Torus</a>, <a href="#Surf3">Surf3</a>. See section <a href="mathgl_en_9.html#Axial-sample">Axial sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Axial-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axial</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005faxial_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_axial_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Axial-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axial</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005faxial_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_axial_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>The same as first one with vector <var>v</var> of <var>num</var>-th elements equidistantly distributed in range [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Axial-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axial</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005faxial"></a><u>C function:</u> <code>void</code> <b>mgl_axial</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Grad"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axial" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grid" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grad-1"></a>
+<h3 class="subsection">3.10.12 Grad</h3>
+<a name="index-Grad"></a>
+
+<dl>
+<dt><a name="index-Grad-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grad</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>phi, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>)</i></dt>
+<dt><a name="index-mgl_005fgrad_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_grad_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws gradient lines for scalar field <var>phi</var>[i,j,k] specified parametrically {<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]}. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. Number of lines is proportional to <var>num</var>. If <var>num</var>&lt;0 then lines start from borders only. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var>, <var>phi</var> should be equal <code>x.nx=phi.nx &amp;&amp; y.nx=phi.ny &amp;&amp; z.nx=phi.nz</code> or <code>x.nx=y.nx=z.nx=phi.nx &amp;&amp; x.ny=y.ny=z.ny=phi.ny &amp;&amp; x.nz=y.nz=z.nz=phi.nz</code>. Arrays <var>x</var>, <var>y</var> and <var>z</var> can be vectors (not matrices as <var>phi</var>). See also <a href="#Dens3">Dens3</a>, <a href="#Cont3">Cont3</a>, <a href="#Flow">Flow</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Grad-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grad</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fgrad_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_grad_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws gradient lines for scalar field <var>phi</var>[i,j] specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>phi</var>[i,j]} at <var>z</var> = <var>zVal</var>. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. Number of lines is proportional to <var>num</var>. If <var>num</var>&lt;0 then lines start from borders only. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>phi</var> should be equal <code>x.nx=phi.nx &amp;&amp; y.nx=phi.ny</code> or <code>x.nx=y.nx=phi.nx &amp;&amp; x.ny=y.ny=phi.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>phi</var>). Lines are plotted for each z slice of the data. See also <a href="#Dens">Dens</a>, <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>, <a href="#Flow">Flow</a>. See section <a href="mathgl_en_9.html#Grad-sample">Grad sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Grad-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grad</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fgrad"></a><u>C function:</u> <code>void</code> <b>mgl_grad</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Grid"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grad" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grid-1"></a>
+<h3 class="subsection">3.10.13 Grid</h3>
+<a name="index-Grid-2"></a>
+
+<dl>
+<dt><a name="index-Grid-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_grid_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws grid lines for density plot of surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} at <var>z</var> = <var>zVal</var>. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Grid is plotted for each z slice of the data. See also <a href="#Dens">Dens</a>, <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Grid-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid"></a><u>C function:</u> <code>void</code> <b>mgl_grid</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="g_t3D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grid" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-plotting-1"></a>
+<h2 class="section">3.11 3D plotting</h2>
+
+<p>These functions perform plotting of 3D data. 3D means that data depend from 3 independent parameters like matrix <em>f(x_i,y_j,z_k), i=1...n, j=1...m, k=1...l</em>. There are 5 generally different types of data representations: isosurface or surface of constant value (Surf3), density plot at slices (Dens3), contour lines plot at slices (Cont3), solid contours plot at slices (ContF3) and cloud-like plot (Cloud). Surf3, Cont3 and ContF3 functions have variants for automatic and manual selection of level values for surfaces/contours. Also there are functions for plotting data grid lines according to the data format (Grid3) for enhancing density or contour plots. Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. Parameters of color scheme are specified by the string argument. See section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>. See section <a href="mathgl_en_9.html#g_t3D-plot-sample">3D plot sample</a>, for sample code and picture.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf3">3.11.1 Surf3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens3">3.11.2 Dens3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont3">3.11.3 Cont3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF3">3.11.4 ContF3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grid3">3.11.5 Grid3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cloud">3.11.6 Cloud</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Beam">3.11.7 Beam</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Surf3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3-1"></a>
+<h3 class="subsection">3.11.1 Surf3</h3>
+<a name="index-Surf3"></a>
+
+<dl>
+<dt><a name="index-Surf3-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3</b><i> (<code>float</code> val, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3_005fxyz_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_surf3_xyz_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl)</i></dt>
+<dd><p>The function draws isosurface plot for 3d array specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) at <var>a</var>(x,y,z)=<var>val</var>. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). Note, that there is possibility of incorrect plotting due to uncertainty of cross-section defining if there are two or more isosurface intersections inside one cell. See also <a href="#Cloud">Cloud</a>, <a href="#Dens3">Dens3</a>, <a href="#Surf3C">Surf3C</a>, <a href="#Surf3A">Surf3A</a>, <a href="#Axial">Axial</a>. See section <a href="mathgl_en_9.html#Surf3-sample">Surf3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3</b><i> (<code>float</code> val, <code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_surf3_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> a, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_surf3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in range [<var>Cmin</var>, <var>Cmax</var>] isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3"></a><u>C function:</u> <code>void</code> <b>mgl_surf3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Dens3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens3-1"></a>
+<h3 class="subsection">3.11.2 Dens3</h3>
+<a name="index-Dens3"></a>
+<a name="index-DensA"></a>
+
+<dl>
+<dt><a name="index-Dens3-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dens3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdens3_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_dens3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl)</i></dt>
+<dd><p>The function draws density plot for 3d data specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). Density is plotted at slice <var>sVal</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string <var>stl</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> must be equal. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). See also <a href="#Cont3">Cont3</a>, <a href="#ContF3">ContF3</a>, <a href="#Dens">Dens</a>, <a href="#Grid3">Grid3</a>. See section <a href="mathgl_en_9.html#Dens3-sample">Dens3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Dens3-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dens3</b><i> (<code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdens3"></a><u>C function:</u> <code>void</code> <b>mgl_dens3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DensA-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdens3_005fall_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_dens3_all_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl)</i></dt>
+<dd><p>Draws density plots at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DensA-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensA</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdens3_005fall"></a><u>C function:</u> <code>void</code> <b>mgl_dens3_all</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cont3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont3-1"></a>
+<h3 class="subsection">3.11.3 Cont3</h3>
+<a name="index-Cont3"></a>
+<a name="index-ContA"></a>
+
+<dl>
+<dt><a name="index-Cont3-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont3</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fxyz_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_cont3_xyz_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl)</i></dt>
+<dd><p>The function draws contour plot for 3d data specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). Contours are plotted for values specified in array <var>v</var> at slice <var>sVal</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. String <var>stl</var> sets the color scheme. Previous color scheme is used by default. If string <var>stl</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. If string <var>stl</var> have symbol &lsquo;<samp>t</samp>&rsquo; or &lsquo;<samp>T</samp>&rsquo; then contour labels <var>v</var>[k] will be drawn below (or above) the contours. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> must be equal. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). See also <a href="#Dens3">Dens3</a>, <a href="#ContF3">ContF3</a>, <a href="#Cont">Cont</a>, <a href="#Grid3">Grid3</a>. See section <a href="mathgl_en_9.html#Cont3-sample">Cont3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont3-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont3</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_cont3_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont3-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_cont3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>The same as first one with vector <var>v</var> of <var>num</var>-th elements equidistantly distributed in range [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont3-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont3</b><i> (<code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3"></a><u>C function:</u> <code>void</code> <b>mgl_cont3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContA-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fall_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_cont3_all_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Draws contour plots at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContA-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContA</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fall"></a><u>C function:</u> <code>void</code> <b>mgl_cont3_all</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContF3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grid3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF3-1"></a>
+<h3 class="subsection">3.11.4 ContF3</h3>
+<a name="index-ContF3"></a>
+<a name="index-ContFA"></a>
+
+<dl>
+<dt><a name="index-ContF3-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF3</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fxyz_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_contf3_xyz_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl)</i></dt>
+<dd><p>The function draws solid (or filled) contour plot for 3d data specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). Contours are plotted for values specified in array <var>v</var> at slice <var>sVal</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string <var>stl</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> must be equal. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). See also <a href="#Dens3">Dens3</a>, <a href="#Cont3">Cont3</a>, <a href="#ContF">ContF</a>, <a href="#Grid3">Grid3</a>. See section <a href="mathgl_en_9.html#ContF3-sample">ContF3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF3-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF3</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_contf3_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF3-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_contf3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>The same as first one with vector <var>v</var> of <var>num</var>-th elements equidistantly distributed in range [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF3-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF3</b><i> (<code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3"></a><u>C function:</u> <code>void</code> <b>mgl_contf3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFA-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fall_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_contf3_all_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Draws contour plots at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFA-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFA</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fall"></a><u>C function:</u> <code>void</code> <b>mgl_contf3_all</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Grid3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cloud" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grid3-1"></a>
+<h3 class="subsection">3.11.5 Grid3</h3>
+<a name="index-Grid3"></a>
+<a name="index-GridA"></a>
+
+<dl>
+<dt><a name="index-Grid3-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid3_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_grid3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl)</i></dt>
+<dd><p>The function draws grid for 3d data specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). Grid is plotted at slice <var>sVal</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> must be equal. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). See also <a href="#Cont3">Cont3</a>, <a href="#ContF3">ContF3</a>, <a href="#Dens3">Dens3</a>, <a href="#Grid">Grid</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Grid3-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid3</b><i> (<code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid3"></a><u>C function:</u> <code>void</code> <b>mgl_grid3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GridA-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>GridA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid3_005fall_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_grid3_all_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl)</i></dt>
+<dd><p>Draws grids at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GridA-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>GridA</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid3_005fall"></a><u>C function:</u> <code>void</code> <b>mgl_grid3_all</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cloud"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grid3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Beam" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cloud-1"></a>
+<h3 class="subsection">3.11.6 Cloud</h3>
+<a name="index-CloudP"></a>
+<a name="index-CloudQ"></a>
+
+<dl>
+<dt><a name="index-Cloud"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cloud</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fcloud_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_cloud_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dd><p>The function draws cloud plot for 3d data specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). This plot is a set of cubes with color and transparency proportional to value of <var>a</var>. The resulting plot is like cloud &ndash; low value is transparent but higher ones are not. The number of plotting cells depend on MeshNum (see section <a href="#Other-settings">Other settings</a>). String <var>sch</var> sets the color scheme. Previous color scheme is used by default. Parameter <var>alpha</var> changes the overall transparency of plot. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> must be equal. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). See also <a href="#Surf3">Surf3</a>. See section <a href="mathgl_en_9.html#Cloud-sample">Cloud sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cloud-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cloud</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fcloud"></a><u>C function:</u> <code>void</code> <b>mgl_cloud</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CloudP-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>CloudP</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fcloudp_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_cloudp_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dd><p>The same as first one but the semi-transparent points are used instead of cubes. See section <a href="mathgl_en_9.html#CloudP-sample">CloudP sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CloudP-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>CloudP</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fcloudp"></a><u>C function:</u> <code>void</code> <b>mgl_cloudp</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Beam"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cloud" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Beam-1"></a>
+<h3 class="subsection">3.11.7 Beam</h3>
+<a name="index-Beam"></a>
+
+<dl>
+<dt><a name="index-Beam-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Beam</b><i> (<code>float</code> val, <code>const mglData &amp;</code>tr, <code>const mglData &amp;</code>g1, <code>const mglData &amp;</code>g2, <code>const mglData &amp;</code>a, <code>float</code> r, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fbeam_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_beam_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> tr, <code>const HMDT</code> g1, <code>const HMDT</code> g2, <code>const HMDT</code> a, <code>float</code> r, <code>const char *</code>stl, <code>int</code> flag)</i></dt>
+<dd><p>Draws the isosurface for 3d array <var>a</var> at constant values of <var>a</var>=<var>val</var>. This is special kind of plot for <var>a</var> specified in accompanied coordinates along curve <var>tr</var> with orts <var>g1</var>, <var>g2</var> and with transverse scale <var>r</var>. Variable <var>flag</var> is bitwise: &lsquo;<samp>0x1</samp>&rsquo; - draw in accompanied (not laboratory) coordinates; &lsquo;<samp>0x2</samp>&rsquo; - draw projection to <em>\rho-z</em> plane; &lsquo;<samp>0x4</samp>&rsquo; - draw normalized in each slice field. The x-size of data arrays <var>tr</var>, <var>g1</var>, <var>g2</var> must be nx&gt;2. The y-size of data arrays <var>tr</var>, <var>g1</var>, <var>g2</var> and z-size of the data array <var>a</var> must be equal. See section <a href="#Surf3">Surf3</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Beam-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Beam</b><i> (<code>const mglData &amp;</code>tr, <code>const mglData &amp;</code>g1, <code>const mglData &amp;</code>g2, <code>const mglData &amp;</code>a, <code>float</code> r, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> flag=<code>0</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fbeam"></a><u>C function:</u> <code>void</code> <b>mgl_beam</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> tr, <code>const HMDT</code> g1, <code>const HMDT</code> g2, <code>const HMDT</code> a, <code>float</code> r, <code>const char *</code>stl, <code>int</code> flag=<code>0</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in range [<var>Cmin</var>, <var>Cmax</var>] isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Dual-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Beam" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfC" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dual-plotting-1"></a>
+<h2 class="section">3.12 Dual plotting</h2>
+
+<p>These plotting functions draw <em>two matrix</em> simultaneously. There are 5 generally different types of data representations: surface or isosurface colored by other data (SurfC, Surf3C), surface or isosurface transpared by other data (SurfA, Surf3A), tiles with variable size (TileS), mapping diagram (Map), STFA diagram (STFA). Surf3A and Surf3C have variants for automatic and manual selection of level values for isosurfaces. Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. Parameters of color scheme are specified by the string argument. See section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#SurfC">3.12.1 SurfC</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3C">3.12.2 Surf3C</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#SurfA">3.12.3 SurfA</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3A">3.12.4 Surf3A</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TileS">3.12.5 TileS</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Map">3.12.6 Map</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#STFA">3.12.7 STFA</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="SurfC"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3C" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfC-1"></a>
+<h3 class="subsection">3.12.1 SurfC</h3>
+<a name="index-SurfC"></a>
+
+<dl>
+<dt><a name="index-SurfC-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SurfC</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurfc_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_surfc_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} and color it by matrix <var>c</var>[i,j]. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. All dimensions of arrays <var>z</var> and <var>c</var> must be equal. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Surf">Surf</a>, <a href="#SurfA">SurfA</a>, <a href="#Surf3C">Surf3C</a>. See section <a href="mathgl_en_9.html#SurfC-sample">SurfC sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SurfC-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SurfC</b><i> (<code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurfc"></a><u>C function:</u> <code>void</code> <b>mgl_surfc</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Surf3C"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfC" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfA" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3C-1"></a>
+<h3 class="subsection">3.12.2 Surf3C</h3>
+<a name="index-Surf3C"></a>
+
+<dl>
+<dt><a name="index-Surf3C-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3C</b><i> (<code>float</code> val, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3c_005fxyz_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_surf3c_xyz_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>stl)</i></dt>
+<dd><p>The function draws isosurface plot for 3d array specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) at <var>a</var>(x,y,z)=<var>val</var>. It is mostly the same as Surf3() function but the color of isosurface depends on values of array <var>c</var>. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. All dimensions of arrays <var>z</var> and <var>c</var> must be equal. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). Note, that there is possibility of incorrect plotting due to uncertainty of cross-section defining if there are two or more isosurface intersections inside one cell. See also <a href="#Surf3">Surf3</a>, <a href="#SurfC">SurfC</a>, <a href="#Surf3A">Surf3A</a>. See section <a href="mathgl_en_9.html#Surf3C-sample">Surf3C sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3C-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3C</b><i> (<code>float</code> val, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3c_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_surf3c_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3C-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3C</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3c_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_surf3c_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in range [<var>Cmin</var>, <var>Cmax</var>] isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3C-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3C</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3c"></a><u>C function:</u> <code>void</code> <b>mgl_surf3c</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="SurfA"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3C" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3A" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfA-1"></a>
+<h3 class="subsection">3.12.3 SurfA</h3>
+<a name="index-SurfA"></a>
+
+<dl>
+<dt><a name="index-SurfA-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SurfA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurfa_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_surfa_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} and transparent it by matrix <var>c</var>[i,j]. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. All dimensions of arrays <var>z</var> and <var>c</var> must be equal. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Surf">Surf</a>, <a href="#SurfC">SurfC</a>, <a href="#Surf3A">Surf3A</a>, <a href="#TileS">TileS</a>. See section <a href="mathgl_en_9.html#SurfA-sample">SurfA sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SurfA-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SurfA</b><i> (<code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurfa"></a><u>C function:</u> <code>void</code> <b>mgl_surfa</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Surf3A"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfA" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TileS" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3A-1"></a>
+<h3 class="subsection">3.12.4 Surf3A</h3>
+<a name="index-Surf3A"></a>
+
+<dl>
+<dt><a name="index-Surf3A-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3A</b><i> (<code>float</code> val, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3a_005fxyz_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_surf3a_xyz_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>stl)</i></dt>
+<dd><p>The function draws isosurface plot for 3d array specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) at <var>a</var>(x,y,z)=<var>val</var>. It is mostly the same as Surf3() function but the transparency of isosurface depends on values of <var>b</var> array. This allows one to remove the part of isosurface where <var>b</var> is negligibly small (useful for phase plotting of a beam or a pulse). String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. All dimensions of arrays <var>z</var> and <var>c</var> must be equal. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). Note, that there is possibility of incorrect plotting due to uncertainty of cross-section defining if there are two or more isosurface intersections inside one cell. See also <a href="#Surf3">Surf3</a>, <a href="#SurfA">SurfA</a>, <a href="#Surf3C">Surf3C</a>. See section <a href="mathgl_en_9.html#Surf3A-sample">Surf3A sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3A-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3A</b><i> (<code>float</code> val, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3a_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_surf3a_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3A-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3A</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3a_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_surf3a_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in range [<var>Cmin</var>, <var>Cmax</var>] isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3A-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3A</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3a"></a><u>C function:</u> <code>void</code> <b>mgl_surf3a</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="TileS"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3A" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Map" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TileS-1"></a>
+<h3 class="subsection">3.12.5 TileS</h3>
+<a name="index-TileS"></a>
+
+<dl>
+<dt><a name="index-TileS-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TileS</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftiles_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_tiles_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws horizontal tiles for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. It is mostly the same as Tile() but the size of tiles is determined by <var>r</var> array. This is some kind of &ldquo;transparency&rdquo; useful for exporting to EPS files. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#SurfA">SurfA</a>, <a href="#Tile">Tile</a>. See section <a href="mathgl_en_9.html#TileS-sample">TileS sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TileS-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TileS</b><i> (<code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftiles"></a><u>C function:</u> <code>void</code> <b>mgl_tiles</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Map"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TileS" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#STFA" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Map-1"></a>
+<h3 class="subsection">3.12.6 Map</h3>
+<a name="index-Map"></a>
+
+<dl>
+<dt><a name="index-Map-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Map</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> ks=<code>0</code>, <code>bool</code> pnts=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fmap_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_map_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>int</code> ks, <code>int</code> pnts)</i></dt>
+<dd><p>The function draws mapping plot for matrices {<var>ax</var>, <var>ay</var> } which parametrically depend on coordinates <var>x</var>, <var>y</var>. The initial position of the cell (point) is marked by color. Height is proportional to Jacobian(ax,ay). This plot is like Arnold diagram ???. If <code>pnts=false</code> then face is drawn otherwise the color ball at matrix knots are drawn. Parameter <var>ks</var> specifies the slice of matrices which will be used. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The size of <var>ax</var> and <var>ay</var> must be the same. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>ax</var> should be equal. Arrays <var>x</var>, <var>y</var> can be vectors (not matrix as <var>ax</var>). See section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>. See section <a href="mathgl_en_9.html#Map-sample">Map sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Map-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Map</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> ks=<code>0</code>, <code>bool</code> pnts=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fmap"></a><u>C function:</u> <code>void</code> <b>mgl_map</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>int</code> ks, <code>int</code> pnts)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="STFA"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Map" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="STFA-1"></a>
+<h3 class="subsection">3.12.7 STFA</h3>
+<a name="index-STFA"></a>
+
+<dl>
+<dt><a name="index-STFA-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>STFA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>re, <code>const mglData &amp;</code>im, <code>int</code> dn, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fstfa_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_stfa_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> re, <code>const HMDT</code> im, <code>int</code> dn, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Draws spectrogram of complex array <var>re</var>+i*<code>im</code> for Fourier size of <var>dn</var> points at plane <var>z=zVal</var>. Parameter <var>dn</var> is arbitrary even integer. For example in 1D case, result is density plot of data <em>res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn</em> with size {int(nx/dn), dn, ny}. At this array <var>re</var>, <var>im</var> parametrically depend on coordinates <var>x</var>, <var>y</var>. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The size of <var>re</var> and <var>im</var> must be the same. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>re</var> should be equal. Arrays <var>x</var>, <var>y</var> can be vectors (not matrix as <var>re</var>).  See section <a href="mathgl_en_9.html#STFA-sample">STFA sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-STFA-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>STFA</b><i> (<code>const mglData &amp;</code>re, <code>const mglData &amp;</code>im, <code>int</code> dn, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fstfa"></a><u>C function:</u> <code>void</code> <b>mgl_stfa</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> re, <code>const HMDT</code> im, <code>int</code> dn, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Vector-fields"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#STFA" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Traj" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vector-fields-1"></a>
+<h2 class="section">3.13 Vector fields</h2>
+
+<p>These functions perform plotting of 2D and 3D vector fields. There are 5 generally different types of vector fields representations: simple vector field (Vect), vectors along the curve (Traj), vector field by dew-drops (Dew), flow threads (Flow, FlowP), flow pipes (Pipe). Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. Parameters of color scheme are specified by the string argument. See section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Traj">3.13.1 Traj</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect">3.13.2 Vect</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectL">3.13.3 VectL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectC">3.13.4 VectC</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dew">3.13.5 Dew</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow">3.13.6 Flow</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#FlowP">3.13.7 FlowP</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe">3.13.8 Pipe</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Traj"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-fields" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Traj-1"></a>
+<h3 class="subsection">3.13.1 Traj</h3>
+<a name="index-Traj"></a>
+
+<dl>
+<dt><a name="index-Traj-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Traj</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> len=<code>0</code>)</i></dt>
+<dt><a name="index-Traj-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Traj</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>float</code> len=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005ftraj_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_traj_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code>x, <code>const HMDT</code>y, <code>const HMDT</code>z, <code>const HMDT</code>ax, <code>const HMDT</code>ay, <code>const HMDT</code>az, <code>const char *</code>sch, <code>float</code> len)</i></dt>
+<dt><a name="index-mgl_005ftraj_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_traj_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code>x, <code>const HMDT</code>y, <code>const HMDT</code>ax, <code>const HMDT</code>ay, <code>const char *</code>sch, <code>float</code> zVal, <code>float</code> len)</i></dt>
+<dd><p>The function draws vectors {<var>ax</var>, <var>ay</var>, <var>az</var>} along a curve {<var>x</var>, <var>y</var>, <var>z</var>}. The length of arrows are proportional to <em>\sqrtax^2+ay^2+az^2</em>. String <var>pen</var> specifies the color (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). Parameter <var>len</var> set the vector length factor (if non-zero) or vector length to be proportional the distance between curve points (if <var>len</var>=0). The minor sizes of all arrays must be equal and large 2. The plots are drawn for each row if one of the data is the matrix. See also <a href="#Vect">Vect</a>. See section <a href="mathgl_en_9.html#Traj-sample">Traj sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Vect"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Traj" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectL" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-1"></a>
+<h3 class="subsection">3.13.2 Vect</h3>
+<a name="index-Vect"></a>
+
+<dl>
+<dt><a name="index-Vect-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Vect</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fvect_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_vect_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal, <code>int</code> flag)</i></dt>
+<dd><p>The function draws plane vector field plot for the field {<var>ax</var>, <var>ay</var>} depending parametrically on coordinates <var>x</var>, <var>y</var> at level <var>z=zVal</var>. The length and color of arrows are proportional to <em>\sqrtax^2+ay^2</em>. The number of arrows depend on <var>MeshNum</var> (see section <a href="#Other-settings">Other settings</a>). The color is specified by the string argument <var>sch</var>. Previous color scheme is used by default. Parameter <var>flag</var> is bitwise flag for setup the hachures (arrows): <code>MGL_VEC_COL</code> for drawing bi-color arrow, <code>MGL_VEC_LEN</code> for drawing fixed length arrows, <code>MGL_VEC_DOT</code> for drawing hachures with dots instead of arrows, <code>MGL_VEC_END</code> for drawing arrows to the cell point, <code>MGL_VEC_MID</code> for drawing arrows with center at cell point. The size of <var>ax</var> and <var>ay</var> must be equal. The minor dimensions of arrays <var>x</var>, <var>y</var> and <var>ax</var> must be equal too. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>ax</var>). The vector field is plotted for each z slice of <var>ax</var>, <var>ay</var>. See also <a href="#VectL">VectL</a>, <a href="#VectC">VectC</a>, <a href="#Flow">Flow</a>, <a href="#Dew">Dew</a>. See section <a href="mathgl_en_9.html#Vect-sample">Vect sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Vect-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Vect</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fvect_005f2d"></a><u>C function:</u> <code>void</code> <b>mgl_vect_2d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal, <code>int</code> flag)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Vect-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Vect</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fvect_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_vect_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>int</code> flag)</i></dt>
+<dd><p>This is 3D version of the first functions. Here arrays <var>ax</var>, <var>ay</var>, <var>az</var> must be 3-ranged tensors with equal sizes and the length and color of arrows is proportional to <em>\sqrtax^2+ay^2+az^2</em>. See section <a href="mathgl_en_9.html#Vect-3D-sample">Vect 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Vect-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Vect</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fvect_005f3d"></a><u>C function:</u> <code>void</code> <b>mgl_vect_3d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>int</code> flag)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="VectL"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectC" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectL-1"></a>
+<h3 class="subsection">3.13.3 VectL</h3>
+<a name="index-VectL"></a>
+
+<p>These functions are obsolete &ndash; use Vect() functions instead.
+</p>
+<dl>
+<dt><a name="index-VectL-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>VectL</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fvectl_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_vectl_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws plane vector field plot for the field {<var>ax</var>, <var>ay</var>} depending parametrically on coordinates <var>x</var>, <var>y</var> at level <var>z=zVal</var>. The length of hachures is proportional to <em>\sqrtax^2+ay^2</em>. The number of hachures depend on <var>MeshNum</var> (see section <a href="#Other-settings">Other settings</a>). Points are denote the start of hachures. The color is specified by the string argument <var>sch</var>. Previous color scheme is used by default. The size of <var>ax</var> and <var>ay</var> must be equal. The minor dimensions of arrays <var>x</var>, <var>y</var> and <var>ax</var> must be equal too. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>ax</var>). The vector field is plotted for each z slice of <var>ax</var>, <var>ay</var>. See also <a href="#Vect">Vect</a>, <a href="#VectC">VectC</a>, <a href="#Flow">Flow</a>, <a href="#Dew">Dew</a>. See section <a href="mathgl_en_9.html#VectL-sample">VectL sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-VectL-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>VectL</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fvectl_005f2d"></a><u>C function:</u> <code>void</code> <b>mgl_vectl_2d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-VectL-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>VectL</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fvectl_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_vectl_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch)</i></dt>
+<dd><p>This is 3D version of the first functions. Here arrays <var>ax</var>, <var>ay</var>, <var>az</var> must be 3-ranged tensors with equal sizes and the length of hachures is proportional to <em>\sqrtax^2+ay^2+az^2</em>. See section <a href="mathgl_en_9.html#VectL-3D-sample">VectL 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-VectL-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>VectL</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fvectl_005f3d"></a><u>C function:</u> <code>void</code> <b>mgl_vectl_3d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="VectC"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectL" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dew" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectC-1"></a>
+<h3 class="subsection">3.13.4 VectC</h3>
+<a name="index-VectC"></a>
+
+<p>These functions are obsolete &ndash; use Vect() functions instead.
+</p>
+<dl>
+<dt><a name="index-VectC-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>VectC</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fvectc_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_vectc_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws plane vector field plot for the field {<var>ax</var>, <var>ay</var>} depending parametrically on coordinates <var>x</var>, <var>y</var> at level <var>z=zVal</var>. The color of hachures is proportional to <em>\sqrtax^2+ay^2</em>. The number of hachures depend on <var>MeshNum</var> (see section <a href="#Other-settings">Other settings</a>). Points are denote the start of hachures. The color is specified by the string argument <var>sch</var>. Previous color scheme is used by default. The size of <var>ax</var> and <var>ay</var> must be equal. The minor dimensions of arrays <var>x</var>, <var>y</var> and <var>ax</var> must be equal too. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>ax</var>). The vector field is plotted for each z slice of <var>ax</var>, <var>ay</var>. See also <a href="#Vect">Vect</a>, <a href="#VectL">VectL</a>, <a href="#Flow">Flow</a>, <a href="#Dew">Dew</a>. See section <a href="mathgl_en_9.html#VectC-sample">VectC sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-VectC-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>VectC</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fvectc_005f2d"></a><u>C function:</u> <code>void</code> <b>mgl_vectc_2d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-VectC-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>VectC</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fvectc_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_vectc_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch)</i></dt>
+<dd><p>This is 3D version of the first functions. Here arrays <var>ax</var>, <var>ay</var>, <var>az</var> must be 3-ranged tensors with equal sizes and the color of hachures is proportional to <em>\sqrtax^2+ay^2+az^2</em>. See section <a href="mathgl_en_9.html#VectC-3D-sample">VectC 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-VectC-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>VectC</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fvectc_005f3d"></a><u>C function:</u> <code>void</code> <b>mgl_vectc_3d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Dew"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectC" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dew-1"></a>
+<h3 class="subsection">3.13.5 Dew</h3>
+<a name="index-Dew"></a>
+
+<dl>
+<dt><a name="index-Dew-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dew</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdew_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_dew_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws dew-drops for plane vector field {<var>ax</var>, <var>ay</var>} depending parametrically on coordinates <var>x</var>, <var>y</var> at level <var>z=zVal</var>. Note that this is very expensive plot in memory usage and creation time! The color of drops is proportional to <em>\sqrtax^2+ay^2</em>. The number of drops depend on <var>MeshNum</var> (see section <a href="#Other-settings">Other settings</a>). The color is specified by the string argument <var>sch</var>. Previous color scheme is used by default. The size of <var>ax</var> and <var>ay</var> must be equal. The minor dimensions of arrays <var>x</var>, <var>y</var> and <var>ax</var> must be equal too. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>ax</var>). The vector field is plotted for each z slice of <var>ax</var>, <var>ay</var>. See also <a href="#Vect">Vect</a>, <a href="#VectC">VectC</a>. See section <a href="mathgl_en_9.html#Dew-sample">Dew sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Dew-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dew</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdew"></a><u>C function:</u> <code>void</code> <b>mgl_dew</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Flow"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dew" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#FlowP" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-1"></a>
+<h3 class="subsection">3.13.6 Flow</h3>
+<a name="index-Flow"></a>
+
+<dl>
+<dt><a name="index-Flow-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flow</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>, <code>bool</code> central=<code>true</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fflow_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_flow_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>int</code> num, <code>int</code> central, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws flow threads for the plane vector field {<var>ax</var>, <var>ay</var>} parametrically depending on coordinates <var>x</var>, <var>y</var> at level z = <var>zVal</var>. Number of threads is proportional to <var>num</var>. Parameter <var>central</var> sets the thread start from center (if true) or only from edges (if false). From v.1.11 it is ignored and always equal to (<var>num</var>&gt;0). The color of lines is proportional to <em>\sqrtax^2+ay^2</em>. Warm color corresponds to normal flow (like attractor). Cold one corresponds to inverse flow (like source). String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The size of <var>ax</var> and <var>ay</var> must be equal. The minor dimensions of arrays <var>x</var>, <var>y</var> and <var>ax</var> must be equal too. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>ax</var>). The vector field is plotted for each z slice of <var>ax</var>, <var>ay</var>. See also <a href="#Pipe">Pipe</a>, <a href="#VectC">VectC</a>, <a href="#Vect">Vect</a>. See section <a href="mathgl_en_9.html#Flow-sample">Flow sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Flow-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flow</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>, <code>bool</code> central=<code>true</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fflow_005f2d"></a><u>C function:</u> <code>void</code> <b>mgl_flow_2d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>int</code> num, <code>int</code> central, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Flow-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flow</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>, <code>bool</code> central=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fflow_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_flow_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>int</code> num, <code>int</code> central)</i></dt>
+<dd><p>This is 3D version of the first functions. Here arrays <var>ax</var>, <var>ay</var>, <var>az</var> must be 3-ranged tensors with equal sizes and the color of line is proportional to <em>\sqrtax^2+ay^2+az^2</em>. See section <a href="mathgl_en_9.html#Flow-3D-sample">Flow 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Flow-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flow</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>, <code>bool</code> central=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fflow_005f3d"></a><u>C function:</u> <code>void</code> <b>mgl_flow_3d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>int</code> num, <code>int</code> central)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="FlowP"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="FlowP-1"></a>
+<h3 class="subsection">3.13.7 FlowP</h3>
+<a name="index-FlowP"></a>
+
+<dl>
+<dt><a name="index-FlowP-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>FlowP</b><i> (<code>mglPoint</code> p0, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-FlowP-2"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>FlowP</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fflowp_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_flowp_xy</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws flow thread for the plane vector field {<var>ax</var>, <var>ay</var>} parametrically depending on coordinates <var>x</var>, <var>y</var> from point <var>p0</var> at level z = <var>p0</var>.z. The color of lines is proportional to <em>\sqrtax^2+ay^2</em>. Warm color corresponds to normal flow (like attractor). Cold one corresponds to inverse flow (like source). String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The size of <var>ax</var> and <var>ay</var> must be equal. The minor dimensions of arrays <var>x</var>, <var>y</var> and <var>ax</var> must be equal too. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>ax</var>). The vector field is plotted for each z slice of <var>ax</var>, <var>ay</var>. See also <a href="#Pipe">Pipe</a>, <a href="#VectC">VectC</a>, <a href="#Vect">Vect</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FlowP-3"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>FlowP</b><i> (<code>mglPoint</code> p0, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-FlowP-4"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>FlowP</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fflowp_005f2d"></a><u>C function:</u> <code>void</code> <b>mgl_flowp_2d</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FlowP-5"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>FlowP</b><i> (<code>mglPoint</code> p0, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-FlowP-6"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>FlowP</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fflowp_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_flowp_xyz</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch)</i></dt>
+<dd><p>This is 3D version of the first functions. Here arrays <var>ax</var>, <var>ay</var>, <var>az</var> must be 3-ranged tensors with equal sizes and the color of line is proportional to <em>\sqrtax^2+ay^2+az^2</em>. See section <a href="mathgl_en_9.html#Flow-3D-sample">Flow 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FlowP-7"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>FlowP</b><i> (<code>mglPoint</code> p0, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-FlowP-8"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>FlowP</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fflowp_005f3d"></a><u>C function:</u> <code>void</code> <b>mgl_flowp_3d</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Pipe"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#FlowP" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-1"></a>
+<h3 class="subsection">3.13.8 Pipe</h3>
+<a name="index-Pipe"></a>
+
+<dl>
+<dt><a name="index-Pipe-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pipe</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> r0=<code>0.05</code>, <code>int</code> num=<code>5</code>, <code>bool</code> central=<code>true</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fpipe_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_pipe_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> r0, <code>int</code> num, <code>int</code> central, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws flow pipes for the plane vector field {<var>ax</var>, <var>ay</var>} parametrically depending on coordinates <var>x</var>, <var>y</var> at level z = <var>zVal</var>. Number of pipes is proportional to <var>num</var>. Parameter <var>central</var> sets the pipe start from center (if true) or only from edges (if false). From v.1.11 it is ignored and always equal to (<var>num</var>&gt;0). The color of lines is proportional to <em>\sqrtax^2+ay^2</em>. Warm color corresponds to normal flow (like attractor). Cold one corresponds to inverse flow (like source). String <var>sch</var> sets the color scheme. Previous color scheme is used by default. Parameter <var>r0</var> set the base pipe radius. If <var>r0</var>&lt;0 then pipe radius is inverse proportional to amplitude. The size of <var>ax</var> and <var>ay</var> must be equal. The minor dimensions of arrays <var>x</var>, <var>y</var> and <var>ax</var> must be equal too. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>ax</var>). The vector field is plotted for each z slice of <var>ax</var>, <var>ay</var>. See also <a href="#Flow">Flow</a>, <a href="#VectC">VectC</a>, <a href="#Vect">Vect</a>. See section <a href="mathgl_en_9.html#Pipe-sample">Pipe sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Pipe-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pipe</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> r0=<code>0.05</code>, <code>int</code> num=<code>5</code>, <code>bool</code> central=<code>true</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fpipe_005f2d"></a><u>C function:</u> <code>void</code> <b>mgl_pipe_2d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> r0, <code>int</code> num, <code>int</code> central, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Pipe-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pipe</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> r0=<code>0.05</code>, <code>int</code> num=<code>3</code>, <code>bool</code> central=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fpipe_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_pipe_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>float</code> r0, <code>int</code> num, <code>int</code> central)</i></dt>
+<dd><p>This is 3D version of the first functions. Here arrays <var>ax</var>, <var>ay</var>, <var>az</var> must be 3-ranged tensors with equal sizes and the color of line is proportional to <em>\sqrtax^2+ay^2+az^2</em>. See section <a href="mathgl_en_9.html#Pipe-3D-sample">Pipe 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Pipe-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pipe</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> r0=<code>0.05</code>, <code>int</code> num=<code>3</code>, <code>bool</code> central=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fpipe_005f3d"></a><u>C function:</u> <code>void</code> <b>mgl_pipe_3d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>float</code> r0, <code>int</code> num, <code>int</code> central)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Other-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#DensXYZ" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Other-plotting-1"></a>
+<h2 class="section">3.14 Other plotting</h2>
+
+<p>These functions perform miscelaneous plotting. There is unstructured data points plots (Dots), surface reconstruction (Crust), surfaces on the triangular mesh (TriPlot), textual formula plotting (Plots by formula), data plots at edges (Dens[XYZ], Cont[XYZ], ContF[XYZ]), simple plot (SimplePlot). Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. Parameters of color scheme are specified by the string argument. See section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#DensXYZ">3.14.1 DensXYZ</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContXYZ">3.14.2 ContXYZ</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContFXYZ">3.14.3 ContFXYZ</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dots">3.14.4 Dots</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Crust">3.14.5 Crust</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TriPlot">3.14.6 TriPlot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TriCont">3.14.7 TriCont</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#QuadPlot">3.14.8 QuadPlot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-by-formula">3.14.9 Plots by formula</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#SimplePlot">3.14.10 SimplePlot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="DensXYZ"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContXYZ" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="DensXYZ-1"></a>
+<h3 class="subsection">3.14.1 DensXYZ</h3>
+<a name="index-DensX"></a>
+<a name="index-DensY"></a>
+<a name="index-DensZ"></a>
+
+<p>These plotting functions draw density plot in x, y, or z plain. If <var>a</var> is a tensor (3-dimensional data) then interpolation to a given <var>sVal</var> is performed. These functions are useful for creating projections of the 3D data array to the bounding box. For example, code like
+</p><table><tr><td>&nbsp;</td><td><pre class="example">gr-&gt;DensX(c.Sum(&quot;x&quot;),&quot;BbcyrR&quot;,-1);
+gr-&gt;DensY(c.Sum(&quot;y&quot;),0,1);
+gr-&gt;DensZ(c.Sum(&quot;z&quot;),0,-1);
+</pre></td></tr></table>
+<p>will produce the following picture. See also <a href="#ContXYZ">ContXYZ</a>, <a href="#ContFXYZ">ContFXYZ</a>, <a href="#Dens">Dens</a>, <a href="#Data-distributions">Data distributions</a>. See section <a href="mathgl_en_9.html#Dens-projection-sample">Dens projection sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-DensX-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensX</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens_005fx"></a><u>C function:</u> <code>void</code> <b>mgl_dens_x</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Draws density plot for data <var>a</var> at x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DensY-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensY</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens_005fy"></a><u>C function:</u> <code>void</code> <b>mgl_dens_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Draws density plot for data <var>a</var> at y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DensZ-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensZ</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens_005fz"></a><u>C function:</u> <code>void</code> <b>mgl_dens_z</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Draws density plot for data <var>a</var> at z = <var>sVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContXYZ"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#DensXYZ" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContFXYZ" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContXYZ-1"></a>
+<h3 class="subsection">3.14.2 ContXYZ</h3>
+<a name="index-ContX"></a>
+<a name="index-ContY"></a>
+<a name="index-ContZ"></a>
+
+<p>These plotting functions draw contour lines in x, y, or z plain. If <var>a</var> is a tensor (3-dimensional data) then interpolation to a given <var>sVal</var> is performed. These functions are useful for creating projections of the 3D data array to the bounding box. For example, code like
+</p><table><tr><td>&nbsp;</td><td><pre class="example">gr-&gt;ContX(c.Sum(&quot;x&quot;),&quot;BbcyrR&quot;,-1);
+gr-&gt;ContY(c.Sum(&quot;y&quot;),0,1);
+gr-&gt;ContZ(c.Sum(&quot;z&quot;),0,-1);
+</pre></td></tr></table>
+<p>will produce the following picture. See also <a href="#ContFXYZ">ContFXYZ</a>, <a href="#DensXYZ">DensXYZ</a>, <a href="#Cont">Cont</a>, <a href="#Data-distributions">Data distributions</a>. See section <a href="mathgl_en_9.html#Cont-projection-sample">Cont projection sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-ContX-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContX</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fx"></a><u>C function:</u> <code>void</code> <b>mgl_cont_x</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Draws <var>num</var>-th contour lines for data <var>a</var> at x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContY-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContY</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fy"></a><u>C function:</u> <code>void</code> <b>mgl_cont_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Draws <var>num</var>-th contour lines for data <var>a</var> at y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContZ-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContZ</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fz"></a><u>C function:</u> <code>void</code> <b>mgl_cont_z</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Draws <var>num</var>-th contour lines for data <var>a</var> at z = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContX-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContX</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fx_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_cont_x_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Draws contour lines for data <var>a</var>=<var>v</var>[i] at x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContY-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContY</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fy_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_cont_y_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Draws contour lines for data <var>a</var>=<var>v</var>[i] at y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContZ-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContZ</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fz_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_cont_z_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Draws contour lines for data <var>a</var>=<var>v</var>[i] at z = <var>sVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContFXYZ"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContXYZ" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dots" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContFXYZ-1"></a>
+<h3 class="subsection">3.14.3 ContFXYZ</h3>
+<a name="index-ContFX"></a>
+<a name="index-ContFY"></a>
+<a name="index-ContFZ"></a>
+
+<p>These plotting functions draw solid contour lines in x, y, or z plain. If <var>a</var> is a tensor (3-dimensional data) then interpolation to a given <var>sVal</var> is performed. These functions are useful for creating projections of the 3D data array to the bounding box. See also <a href="#ContXYZ">ContXYZ</a>, <a href="#DensXYZ">DensXYZ</a>, <a href="#ContF">ContF</a>, <a href="#Data-distributions">Data distributions</a>.
+</p>
+<dl>
+<dt><a name="index-ContFX-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFX</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fx"></a><u>C function:</u> <code>void</code> <b>mgl_contf_x</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Draws <var>num</var>-th solid contours for data <var>a</var> at x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFY-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFY</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fy"></a><u>C function:</u> <code>void</code> <b>mgl_contf_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Draws <var>num</var>-th solid contours for data <var>a</var> at y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFZ-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFZ</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fz"></a><u>C function:</u> <code>void</code> <b>mgl_contf_z</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Draws <var>num</var>-th solid contours for data <var>a</var> at z = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFX-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFX</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fx_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_contf_x_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Draws solid contours for data <var>a</var>=<var>v</var>[i] at x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFY-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFY</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fy_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_contf_y_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Draws solid contours for data <var>a</var>=<var>v</var>[i] at y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFZ-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFZ</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fz_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_contf_z_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Draws solid contours for data <var>a</var>=<var>v</var>[i] at z = <var>sVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Dots"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContFXYZ" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Crust" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dots-1"></a>
+<h3 class="subsection">3.14.4 Dots</h3>
+<a name="index-Dots"></a>
+
+<dl>
+<dt><a name="index-Dots-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dots</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-Dots-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dots</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdots"></a><u>C function:</u> <code>void</code> <b>mgl_dots</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dt><a name="index-mgl_005fdots_005fa"></a><u>C function:</u> <code>void</code> <b>mgl_dots_a</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws the arbitrary placed points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If array <var>a</var> is specified then it define the transparency of dots. Arrays <var>x</var>, <var>y</var>, <var>z</var>, <var>a</var> must have equal sizes. See also <a href="#Crust">Crust</a>, <a href="#Mark">Mark</a>, <a href="#Plot">Plot</a>. See section <a href="mathgl_en_9.html#Dots-sample">Dots sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Dots-3"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Dots</b><i> (<code>const mglData &amp;</code>tr, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdots_005ftr"></a><u>C function:</u> <code>void</code> <b>mgl_dots_tr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> tr, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x=tr</var>(0,:), <var>y=tr</var>(1,:), <var>z=tr</var>(2,:) and if <var>tr</var>.nx&gt;3 then <var>a=tr</var>(3,:).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Crust"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dots" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TriPlot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Crust-1"></a>
+<h3 class="subsection">3.14.5 Crust</h3>
+<a name="index-Crust"></a>
+
+<dl>
+<dt><a name="index-Crust-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Crust</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> er=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcrust"></a><u>C function:</u> <code>void</code> <b>mgl_crust</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> er)</i></dt>
+<dd><p>The function reconstruct and draws the surface for arbitrary placed points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. Parameter <var>er</var> set relative radius for (increase it for removing holes). String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. Arrays <var>x</var>, <var>y</var>, <var>z</var> must have equal sizes. See also <a href="#Dots">Dots</a>, <a href="#TriPlot">TriPlot</a>. See section <a href="mathgl_en_9.html#Crust-sample">Crust sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Crust-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Crust</b><i> (<code>const mglData &amp;</code>tr, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> er=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcrust_005ftr"></a><u>C function:</u> <code>void</code> <b>mgl_crust_tr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> tr, <code>const char *</code>sch, <code>float</code> er)</i></dt>
+<dd><p>The same as previous with <var>x=tr</var>(0,:), <var>y=tr</var>(1,:), <var>z=tr</var>(2,:).
+</p></dd></dl>
+
+<hr size="6">
+<a name="TriPlot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Crust" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TriCont" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TriPlot-1"></a>
+<h3 class="subsection">3.14.6 TriPlot</h3>
+<a name="index-TriPlot"></a>
+
+<dl>
+<dt><a name="index-TriPlot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TriPlot-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftriplot_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_triplot_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dt><a name="index-mgl_005ftriplot_005fxyzc"></a><u>C function:</u> <code>void</code> <b>mgl_triplot_xyzc</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws the surface of triangles. Triangle vertexes are set by indexes <var>id</var> of data points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. First dimensions of <var>id</var> must be 3 or greater. Arrays <var>x</var>, <var>y</var>, <var>z</var> must have equal sizes. Parameter <var>c</var> set the colors of triangles (if <var>id</var>.ny=<var>c</var>.nx) or colors of vertexes (if <var>x</var>.nx=<var>c</var>.nx). See also <a href="#Dots">Dots</a>, <a href="#Crust">Crust</a>, <a href="#QuadPlot">QuadPlot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TriPlot-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005ftriplot_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_triplot_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>z</var>[i]=<var>zVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="TriCont"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TriPlot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#QuadPlot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TriCont-1"></a>
+<h3 class="subsection">3.14.7 TriCont</h3>
+<a name="index-TriCont"></a>
+
+<dl>
+<dt><a name="index-TriContV"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriContV</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-TriContV-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriContV</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005ftricont_005fxyzcv"></a><u>C function:</u> <code>void</code> <b>mgl_tricont_xyzcv</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dt><a name="index-mgl_005ftricont_005fxyzv"></a><u>C function:</u> <code>void</code> <b>mgl_tricont_xyzv</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws contour lines for surface of triangles at <var>z</var> = <var>zVal</var> (or for <var>z=v</var>[k] if <code>zVal==NAN</code>). Triangle vertexes are set by indexes <var>id</var> of data points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. Contours are plotted for <var>z</var>[i,j]=<var>v</var>[k] where <var>v</var>[k] are values of data array <var>v</var>. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. Array <var>c</var> (if specified) is used for contour coloring. First dimensions of <var>id</var> must be 3 or greater. Arrays <var>x</var>, <var>y</var>, <var>z</var> must have equal sizes. Parameter <var>c</var> set the colors of triangles (if <var>id</var>.ny=<var>c</var>.nx) or colors of vertexes (if <var>x</var>.nx=<var>c</var>.nx). See also <a href="#TriPlot">TriPlot</a>, <a href="#Cont">Cont</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TriCont-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriCont</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>num</code>=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-TriCont-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriCont</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>num</code>=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005ftricont_005fxyzc"></a><u>C function:</u> <code>void</code> <b>mgl_tricont_xyzc</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch, <code>num</code>, <code>float</code> zVal)</i></dt>
+<dt><a name="index-mgl_005ftricont_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_tricont_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>num</code>, <code>float</code> zVal)</i></dt>
+<dd><p>The same as first one with vector <var>v</var> of <var>num</var>-th elements equidistantly distributed in range [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="QuadPlot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TriCont" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-by-formula" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="QuadPlot-1"></a>
+<h3 class="subsection">3.14.8 QuadPlot</h3>
+<a name="index-QuadPlot"></a>
+
+<dl>
+<dt><a name="index-QuadPlot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>QuadPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-QuadPlot-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>QuadPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fquadplot_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_quadplot_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dt><a name="index-mgl_005fquadplot_005fxyzc"></a><u>C function:</u> <code>void</code> <b>mgl_quadplot_xyzc</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws the surface of quadrangles. Quadrangles vertexes are set by indexes <var>id</var> of data points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. First dimensions of <var>id</var> must be 4 or greater. Arrays <var>x</var>, <var>y</var>, <var>z</var> must have equal sizes. Parameter <var>c</var> set the colors of quadrangles (if <var>id</var>.ny=<var>c</var>.nx) or colors of vertexes (if <var>x</var>.nx=<var>c</var>.nx). See also <a href="#TriPlot">TriPlot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-QuadPlot-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>QuadPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fquadplot_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_quadplot_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>z</var>[i]=<var>zVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Plots-by-formula"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#QuadPlot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SimplePlot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-by-formula-1"></a>
+<h3 class="subsection">3.14.9 Plots by formula</h3>
+<a name="index-Plot-4"></a>
+<a name="index-Surf-3"></a>
+
+<p>These functions perform plotting of 1D or 2D functions specified by textual formula. You do not need to create the data arrays to plot it. The parameter <var>stl</var> set the line style (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>) for <code>Plot()</code> or color scheme (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>) for <code>Surf()</code>. The parameter <var>n</var> set the minimal number of points along coordinate(s) for plots. At this time (v. 1.10) there is adaptive increase of data points numbers but only for 1D variant (i.e. for Plot()).
+</p>
+<dl>
+<dt><a name="index-Plot-5"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const char *</code>eqY, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>int</code> n=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005ffplot"></a><u>C function:</u> <code>void</code> <b>mgl_fplot</b><i> (<code>HMGL</code> gr, <code>const char *</code>eqY, <code>const char *</code>stl, <code>float</code> zVal, <code>int</code> n)</i></dt>
+<dd><p>The function draws function &lsquo;<samp>eqY(x)</samp>&rsquo; at plane z=<var>zVal</var> where &lsquo;<samp>x</samp>&rsquo; variable is changed in range [<var>Min</var>.x, <var>Max</var>.x]. See also <a href="#Plot">Plot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Plot-6"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const char *</code>eqX, <code>const char *</code>eqY, <code>const char *</code>eqZ, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>int</code> n=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005ffplot_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_fplot_xyz</b><i> (<code>HMGL</code> gr, <code>const char *</code>eqX, <code>const char *</code>eqY, <code>const char *</code>eqZ, <code>const char *</code>stl, <code>float</code> zVal, <code>int</code> n)</i></dt>
+<dd><p>The function draws parametrical curve {&lsquo;<samp>eqX(t)</samp>&rsquo;, &lsquo;<samp>eqY(t)</samp>&rsquo;, &lsquo;<samp>eqZ(t)</samp>&rsquo;} where &lsquo;<samp>t</samp>&rsquo; variable is changed in range [0, 1]. See also <a href="#Plot">Plot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf</b><i> (<code>const char *</code>eqZ, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> n=<code>100</code>);</i></dt>
+<dt><a name="index-mgl_005ffsurf"></a><u>C function:</u> <code>void</code> <b>mgl_fsurf</b><i> (<code>HMGL</code> gr, <code>const char *</code>eqZ, <code>const char *</code>stl, <code>int</code> n);</i></dt>
+<dd><p>The function draws surface for function &lsquo;<samp>eqY(x,y)</samp>&rsquo; where &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; variables are changed in range [<var>Min</var>, <var>Max</var>]. See also <a href="#Surf">Surf</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf-5"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf</b><i> (<code>const char *</code>eqX, <code>const char *</code>eqY, <code>const char *</code>eqZ, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> n=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005ffsurf_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_fsurf_xyz</b><i> (<code>HMGL</code> gr, <code>const char *</code>eqX, <code>const char *</code>eqY, <code>const char *</code>eqZ, <code>const char *</code>stl, <code>int</code> n)</i></dt>
+<dd><p>The function draws parametrical surface {&lsquo;<samp>eqX(u,v)</samp>&rsquo;, &lsquo;<samp>eqY(u,v)</samp>&rsquo;, &lsquo;<samp>eqZ(u,v)</samp>&rsquo;} where &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo; variables are changed in range [0, 1]. See also <a href="#Surf">Surf</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="SimplePlot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-by-formula" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SimplePlot-1"></a>
+<h3 class="subsection">3.14.10 SimplePlot</h3>
+<a name="index-SimplePlot"></a>
+
+<dl>
+<dt><a name="index-SimplePlot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SimplePlot</b><i> (<code>const mglData &amp;</code>a, <code>int</code> type=<code>0</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsimple_005fplot"></a><u>C function:</u> <code>void</code> <b>mgl_simple_plot</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> type, <code>const char *</code>stl)</i></dt>
+<dd><p>Plots the array <var>a</var> depending on it&rsquo;s dimensions and <var>type</var> parameter. String <var>stl</var> specifies the style of plotting. For 1d data: <code>type=0</code> &ndash; <a href="#Plot">Plot</a>, <code>type=1</code> &ndash; <a href="#Area">Area</a>, <code>type=2</code> &ndash; <a href="#Step">Step</a>, <code>type=3</code> &ndash; <a href="#Stem">Stem</a>, <code>type=4</code> &ndash; <a href="#Bars">Bars</a>. For 2d data: <code>type=0</code> &ndash; <a href="#Surf">Surf</a>, <code>type=1</code> &ndash; <a href="#Dens">Dens</a>, <code>type=2</code> &ndash; <a href="#Mesh">Mesh</a>, <code>type=3</code> &ndash; <a href="#Cont">Cont</a>. For 3d data: <code>type=0</code> &ndash; <a href="#Surf3">Surf3</a>, <code>type=1</code> &ndash; <a href="#Dens3">Dens3</a>, <code>type=2</code> &ndash; <a href="#Cont3">Cont3</a>, <code>type=2</code> &ndash; <a href="#Cloud">Cloud</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Nonlinear-fitting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SimplePlot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-distributions" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-1"></a>
+<h2 class="section">3.15 Nonlinear fitting</h2>
+<a name="index-Fit"></a>
+<a name="index-FitS"></a>
+<a name="index-PutsFit"></a>
+<a name="index-FitPnts"></a>
+<a name="index-Fit2"></a>
+<a name="index-Fit3"></a>
+
+<p>These functions fit data to formula. Fitting goal is to find formula parameters for the best fit the data points, i.e. to minimize the sum <em>\sum_i (f(x_i, y_i, z_i) - a_i)^2/s_i^2</em>. At this, approximation function &lsquo;<samp>f</samp>&rsquo; can depend only on one argument &lsquo;<samp>x</samp>&rsquo; (1D case), on two arguments &lsquo;<samp>x,y</samp>&rsquo; (2D case) and on three arguments &lsquo;<samp>x,y,z</samp>&rsquo; (3D case). The function &lsquo;<samp>f</samp>&rsquo; also may depend on parameters. Normally the list of fitted parameters is specified by <var>var</var> string (like, &lsquo;<samp>abcd</samp>&rsquo;). Usually user should supply initial values for fitted parameters by <var>ini</var> variable. But if he/she don&rsquo;t supply it then the zeros are used. Parameter <var>print</var>=<code>true</code> switch on printing the found coefficients to <var>Message</var> (see section <a href="#Error-handling">Error handling</a>).
+</p>
+<p>Functions Fit() and FitS() do not draw the obtained data themselves. They fill the data <var>fit</var> by formula &lsquo;<samp>f</samp>&rsquo; with found coefficients and return the <em>\chi^2</em> error of approximation. At this, the &lsquo;<samp>x,y,z</samp>&rsquo; coordinates are equidistantly distributed in the interval <var>Min</var>&ndash;<var>Max</var>. Number of points in <var>fit</var> is selected as maximal value of <var>fit</var> size and the value of <var>FitPnts</var>. Note, that this functions use GSL library and do something only if MathGL was compiled with GSL support. See section <a href="mathgl_en_9.html#Fitting-sample">Fitting sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-FitS-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-FitS-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyzas"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xyzas</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyzas_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xyzas_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-, y- and z-directions for 3d array specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FitS-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-FitS-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyzs"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xyzs</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyzs_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xyzs_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-, and y-directions for 2d array specified parametrically <var>a</var>[i,j](<var>x</var>[i,j], <var>y</var>[i,j]) for each data slice.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FitS-5"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-FitS-6"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxys"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xys</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxys_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xys_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-direction for 1d array specified parametrically <var>a</var>[i](<var>x</var>[i]) for each data slice.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FitS-7"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-FitS-8"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fys"></a><u>C function:</u> <code>float</code> <b>mgl_fit_ys</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fys_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_ys_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-direction for 1d array with <var>x</var> equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyza"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xyza</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyza_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xyza_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-, y- and z-directions for 3d array specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) with <var>s</var>[i,j,k]=1.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyz"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xyz</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyz_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xyz_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-, and y-directions for 2d array specified parametrically <var>a</var>[i,j](<var>x</var>[i,j], <var>y</var>[i,j]) with <var>s</var>[i,j]=1 for each data slice.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit-5"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit-6"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxy"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xy</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxy_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xy_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-direction for 1d array specified parametrically <var>a</var>[i](<var>x</var>[i]) with <var>s</var>[i]=1 for each data slice.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit-7"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>&quot;&quot;</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit-8"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005f1"></a><u>C function:</u> <code>float</code> <b>mgl_fit_1</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005f1_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_1_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-direction for 1d array <var>a</var> with <var>s</var>=1 and <var>x</var> equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit2-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit2</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit2-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit2</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005f2"></a><u>C function:</u> <code>float</code> <b>mgl_fit_2</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005f2_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_2_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-, and y-directions for 2d array <var>a</var> with <var>s</var>=1 and <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit3-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit3</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit3-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit3</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005f3"></a><u>C function:</u> <code>float</code> <b>mgl_fit_3</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005f3_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_3_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-, y- and z-directions for 3d array <var>a</var> with <var>s</var>=1 and <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-PutsFit-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>PutsFit</b><i> (<code>mglPoint</code> p, <code>const char *</code>prefix=<code>&quot;&quot;</code>, <code>const char *</code>font=<code>NULL</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fputs_005ffit"></a><u>C function:</u> <code>void</code> <b>mgl_puts_fit</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const char *</code>prefix, <code>const char *</code>font, <code>float</code> size=<code>-1</code>)</i></dt>
+<dd><p>Print last fitted formula with found coefficients (as numbers) at position <var>p0</var>. The string <var>prefix</var> will be printed before formula. All other parameters are the same as in <a href="#Text-printing">Text printing</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetFit"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>const char *</code> <b>GetFit</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fget_005ffit"></a><u>C function:</u> <code>const char *</code> <b>mgl_get_fit</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Get last fitted formula with found coefficients (as numbers).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FitPnts-of-mglGraph"></a><u>General option (C++) of mglGraph:</u> <code>int</code> <b>FitPnts</b></dt>
+<dd><p>Minimal number of points for output array after nonlinear fitting.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Data-distributions"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Frames_002fAnimation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-distributions-1"></a>
+<h2 class="section">3.16 Data distributions</h2>
+<a name="index-Hist"></a>
+
+<p>These functions make distribution (histogram) of data. They do not draw the obtained data themselves. These functions can be useful if user have data defined for random points (for example, after PIC simulation) and he want to produce a plot which require regular data (defined on grid(s)). The range for grids is always selected as axis range Min...Max. Arrays <var>x</var>, <var>y</var>, <var>z</var> define the positions (coordinates) of random points. Array <var>a</var> define the data value. Number of points in output array <var>res</var> is selected as maximal value of <var>res</var> size and the value of <var>FitPnts</var>.
+</p>
+<dl>
+<dt><a name="index-Hist-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Hist</b><i> (<code>mglData &amp;</code>res, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a)</i></dt>
+<dt><a name="index-mgl_005fhist_005fx"></a><u>C function:</u> <code>int</code> <b>mgl_hist_x</b><i> (<code>HMGL</code> gr, <code>HMDT</code> res, <code>const HMDT</code> x, <code>const HMDT</code> a)</i></dt>
+<dd><p>Creates 1D distribution of the data values <var>a</var> in range [Min, Max].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Hist-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Hist</b><i> (<code>mglData &amp;</code>res, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a)</i></dt>
+<dt><a name="index-mgl_005fhist_005fxy"></a><u>C function:</u> <code>int</code> <b>mgl_hist_xy</b><i> (<code>HMGL</code> gr, <code>HMDT</code> res, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a)</i></dt>
+<dd><p>Creates 2D distribution of the data values <var>a</var> in range [Min, Max].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Hist-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Hist</b><i> (<code>mglData &amp;</code>res, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a)</i></dt>
+<dt><a name="index-mgl_005fhist_005fxyz"></a><u>C function:</u> <code>int</code> <b>mgl_hist_xyz</b><i> (<code>HMGL</code> gr, <code>HMDT</code> res, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a)</i></dt>
+<dd><p>Creates 3D distribution of the data values <var>a</var> in range [Min, Max].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Frames_002fAnimation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-distributions" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#IDTF-functions" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Frames_002fAnimation-1"></a>
+<h2 class="section">3.17 Frames/Animation</h2>
+<a name="index-NewFrame"></a>
+<a name="index-EndFrame"></a>
+<a name="index-GetNumFrame"></a>
+
+<p>These functions provide ability to create several pictures simultaneously. For most of cases it is useless but for widget classes (see section <a href="mathgl_en_5.html#Widget-classes">Widget classes</a>) they can provide a way to show animation. Also you can write several frames into animated GIF file.
+</p>
+<dl>
+<dt><a name="index-NewFrame-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>int</code> <b>NewFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fnew_005fframe"></a><u>C function:</u> <code>int</code> <b>mgl_new_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Creates new frame. Function returns current frame id. This is not thread safe function in OpenGL mode! Use direct list creation in multi-threading drawing. The function <code>EndFrame()</code> <strong>must</strong> be call after the finishing of the frame drawing for each call of this function.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-EndFrame-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>EndFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fend_005fframe"></a><u>C function:</u> <code>void</code> <b>mgl_end_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Finishes the frame drawing.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetNumFrame-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>int</code> <b>GetNumFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fget_005fnum_005fframe"></a><u>C function:</u> <code>int</code> <b>mgl_get_num_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Gets the number of created frames.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ResetFrames"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ResetFrames</b><i> ()</i></dt>
+<dt><a name="index-mgl_005freset_005fframes"></a><u>C function:</u> <code>int</code> <b>mgl_reset_frames</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Reset frames counter (start it from zero).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-StartGIF"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>StartGIF</b><i> (<code>const char *</code>fname, <code>int</code> ms=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005fstart_005fgif"></a><u>C function:</u> <code>void</code> <b>mgl_start_gif</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>int</code> ms)</i></dt>
+<dd><p>Start writing frames into animated GIF file <var>fname</var>. Parameter <var>ms</var> set the delay between frames in milliseconds. You <strong>should not</strong> change the picture size during writing the cinema. Use CloseGIF() to finalize writing. Note, that this function is disabled in OpenGL mode.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CloseGIF"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>int</code> <b>CloseGIF</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fclose_005fgif"></a><u>C function:</u> <code>void</code> <b>mgl_close_gif</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Finish writing animated GIF and close connected pointers.
+</p></dd></dl>
+
+<hr size="6">
+<a name="IDTF-functions"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Frames_002fAnimation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="IDTF-functions-1"></a>
+<h2 class="section">3.18 IDTF functions</h2>
+<a name="index-NewFrame-2"></a>
+<a name="index-EndFrame-2"></a>
+<a name="index-GetNumFrame-2"></a>
+
+<p>These functions provide IDTF specific features. In all other cases they do nothing.
+</p>
+<dl>
+<dt><a name="index-VertexColor"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>VertexColor</b><i> (<code>bool</code> enable)</i></dt>
+<dd><p>Enables smooth color change.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Compression"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Compression</b><i> (<code>bool</code> enable)</i></dt>
+<dd><p>Gives smaller files, but quality degrades.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-StartGroup"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>StartGroup</b><i> (const char *name)</i></dt>
+<dd><p>Starts group definition. Groups contain objects and other groups, they are used to select a part of a model to zoom to or to make invizible or to make transparent and so on.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-EndGroup"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>EndGroup</b><i> ()</i></dt>
+<dd><p>Ends group definition.
+</p></dd></dl>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_4.html b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_4.html
new file mode 100644
index 0000000..0ff6ccc
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_4.html
@@ -0,0 +1,320 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: 4. Plotter classes</title>
+
+<meta name="description" content="MathGL 1.11: 4. Plotter classes">
+<meta name="keywords" content="MathGL 1.11: 4. Plotter classes">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Plotter-classes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_3.html#IDTF-functions" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglGraphAB-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_5.html#Widget-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+
+<a name="Plotter-classes-1"></a>
+<h1 class="chapter">4. Plotter classes</h1>
+<a name="index-mglGraphAB"></a>
+<a name="index-mglGraphZB"></a>
+<a name="index-mglGraphPS"></a>
+<a name="index-mglGraphGL"></a>
+<a name="index-mglGraphIDTF"></a>
+
+<p>The class mglGraph (see section <a href="mathgl_en_3.html#MathGL-core">MathGL core</a>) provide the basic tools for creating scientific graphics but it is abstract class. The matter is that there are several possible way to draw a graphics: in bitmap, in vector file, using OpenGL and so on. As result, user should use some of derived classes to do actual drawing. In principle, it is possible to derive a class exactly from mglGraph (and it was in v.1.6). But I recommend to derive from mglGraphAB class for higher compatibility of produced graphics from different classes. Class mglGraphAB is another abstract class which provide basic coordinates transformation, plotting functions and export to bitmap picture. It still require a functions for drawing lines, triangles and quadrangles. So below a set of &ldquo;plotter&rdquo; classes with short comments.
+</p>
+<dl>
+<dt><a name="index-mglGraphAB-1"></a><u>Class:</u> <b>mglGraphAB</b></dt>
+<dd><p>Abstract class mglGraphAB implements plotting function for 1D, 2D and 3D plots using Z-ordering and provides base functionality for to screen coordinate transformation, bitmap creation and so on. Class is defined in <code>#include &lt;mgl/mgl_ab.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglGraphZB-1"></a><u>Class:</u> <b>mglGraphZB</b></dt>
+<dd><p>Class mglGraphZB implements plotting function for 1D, 2D and 3D plots using Z-Buffer. It is useful for off-screen (for console or SSH terminal) programs. Also this class can be used in any other programs which may draw bitmap on the  screen (for example, by using FLTK, Qt, wxWidgets libraries and so on). Note that bitmap picture is saved while exporting to EPS format. The produced graphics have better quality but slower in comparison with graphics in the class mglGraphPS. Class is defined in <code>#include &lt;mgl/mgl_zb.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglGraphPS-1"></a><u>Class:</u> <b>mglGraphPS</b></dt>
+<dd><p>Class mglGraphPS implements plotting functions for 1D, 2D and 3D plots and exports them to PostScript or SVG file. It is useful for off-screen (for console or SSH terminal) programs. Note that there is no transparency support now and color interpolation and lightning support is limited (not so nice as in class mglGraphZB). As result the plots with transparency (SurfA, Surf3A, CloudP, CloudQ) may look not so good. However the speed of drawing is higher in comparison with one in the class mglGraphZB. Class is defined in <code>#include &lt;mgl/mgl_eps.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglGraphGL-1"></a><u>Class:</u> <b>mglGraphGL</b></dt>
+<dd><p>Class mglGraphGL implements plotting function for 1D, 2D and 3D plots under OpenGL. This class can not be used in off-screen applications. Note, that several transparent overlapped surfaces are drawn not so correctly due to OpenGL limitations. Class is defined in <code>#include &lt;mgl/mgl_gl.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglGraphIDTF-1"></a><u>Class:</u> <b>mglGraphIDTF</b></dt>
+<dd><p>Class mglGraphIDTF implements plotting function for 1D, 2D and 3D plots  and export it in IDTF format. Later this file can be converted in U3D format. Class is defined in <code>#include &lt;mgl/mgl_idtf.h&gt;</code>.
+</p></dd></dl>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#mglGraphAB-class">4.1 mglGraphAB class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="mglGraphAB-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plotter-classes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_5.html#Widget-classes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Plotter-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plotter-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_5.html#Widget-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglGraphAB-class-1"></a>
+<h2 class="section">4.1 mglGraphAB class</h2>
+<a name="index-mglGraphAB-2"></a>
+<a name="index-window-1"></a>
+<p>#cindex mglDraw
+</p>
+<p>Generally this class is a bit less abstract class than mglGraph class (see section <a href="mathgl_en_3.html#MathGL-core">MathGL core</a>). It provide many protected methods for handling intermediate data from mglGraph methods and require a few methods to be defined by derived class. The developers of derived classes should look on file &lsquo;<samp>mgl_ab.h</samp>&rsquo; and comments inside it or contact me.
+</p>
+<p>Here I just show main public methods for class mglGraphAB. There are functions returning the created picture (bitmap), its width and height. You may display it by yourself in any graphical library (see also, <a href="mathgl_en_5.html#Widget-classes">Widget classes</a>) or save in file (see also, <a href="mathgl_en_3.html#Export-to-file">Export to file</a>).
+</p>
+<dl>
+<dt><a name="index-GetBits"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>const unsigned char *</code> <b>GetBits</b><i> ()</i></dt>
+<dt><a name="index-GetRGB"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>GetRGB</b><i> (<code>char *</code>buf, <code>int</code> size)</i></dt>
+<dt><a name="index-GetBGRN"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>GetBGRN</b><i> (<code>char *</code>buf, <code>int</code> size)</i></dt>
+<dt><a name="index-mgl_005fget_005frgb"></a><u>C function:</u> <code>const unsigned char *</code> <b>mgl_get_rgb</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Gets RGB bitmap of the current state of the image. Format of each element of bits is: {red, green, blue}. Number of elements is Width*Height. Position of element {i,j} is [3*i + 3*Width*j] (or is [4*i + 4*Width*j] for <code>GetBGRN()</code>). For Python you have to provide the proper <var>size</var> of the buffer, <var>buf</var> i.e. the code should look like 
+</p><pre class="verbatim">from mathgl import *
+gr = mglGraph();
+bits='\t';
+bits=bits.expandtabs(4*gr.GetWidth()*gr.GetHeight());
+gr.GetBGRN(bits, len(bits));
+</pre></dd></dl>
+
+<dl>
+<dt><a name="index-GetRGBA"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>const unsigned char *</code> <b>GetRGBA</b><i> ()</i></dt>
+<dt><a name="index-GetRGBA-1"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>GetRGBA</b><i> (<code>char *</code>buf, <code>int</code> size)</i></dt>
+<dt><a name="index-mgl_005fget_005frgba"></a><u>C function:</u> <code>const unsigned char *</code> <b>mgl_get_rgba</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Gets RGBA bitmap of the current state of the image. Format of each element of bits is: {red, green, blue, alpha}. Number of elements is Width*Height. Position of element {i,j} is [4*i + 4*Width*j].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetWidth"></a><u>Method on <code>mglGraphAB</code> (C++, Python):</u> <code>int</code> <b>GetWidth</b><i> ()</i></dt>
+<dt><a name="index-GetHeight"></a><u>Method on <code>mglGraphAB</code> (C++, Python):</u> <code>int</code> <b>GetHeight</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fget_005fwidth"></a><u>C function:</u> <code>int</code> <b>mgl_get_width</b><i> (<code>HMGL</code> gr)</i></dt>
+<dt><a name="index-mgl_005fget_005fheight"></a><u>C function:</u> <code>int</code> <b>mgl_get_height</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Gets width and height of the image.
+</p></dd></dl>
+
+<p>Class mglGraphAB is the base class for &ldquo;widget classes&rdquo;. So there are set of functions for handling window behavior. Most of them are applicable only for &ldquo;window&rdquo; classes (like mglGraphFLTK and so on, see section <a href="mathgl_en_5.html#Widget-classes">Widget classes</a>). In all other classes these functions just do nothing. You should provide the corresponding interface in derived &ldquo;widget&rdquo; classes for user convenience.
+</p>
+<dl>
+<dt><a name="index-Window-on-mglGraphAB"></a><u>Method on mglGraphAB:</u> <code>void</code> <b>Window</b><i> (<code>int</code> argc, <code>char **</code>argv, <code>int (*</code>draw)(<code>mglGraph *</code>gr, <code>void *</code>p), <code>const char *</code>title, <code>void *</code>par=<code>NULL</code>, <code>void (*</code>reload)(<code>int</code> next, <code>void *</code>p)=<code>NULL</code>, <code>bool</code> maximize=<code>false</code>)</i></dt>
+<dd><p>This function creates a window for plotting. Parameters <var>argc</var>, <var>argv</var> contain OS specific information and should be the same as in function <code>main(int argc,char **argv)</code>. Parameter <var>draw</var> sets a pointer (this is the name of function) to drawing function. There is support of a list of plots (frames). So as one can prepare a set of frames at first and redraw it fast later (but it requires more memory). Function should return positive number of frames for the list or zero if it will plot directly. Note, that <var>draw</var> can be <code>NULL</code> for displaying static bitmaps only (no animation or slides). Parameter <var>title</var> sets the title of the window. Parameter <var>par</var> contains pointer to data for the plotting function <var>draw</var>. Parameter <var>maximize</var>=<code>true</code> open maximized window.
+</p>
+<p>There are some keys handles for manipulating by the plot: &rsquo;a&rsquo;, &rsquo;d&rsquo;, &rsquo;w&rsquo;, &rsquo;s&rsquo; for the rotating; &rsquo;,&rsquo;, &rsquo;.&rsquo; for viewing of the previous or next frames in the list; &rsquo;r&rsquo; for the switching of transparency; &rsquo;f&rsquo; for the switching of lightning; &rsquo;x&rsquo; for hiding (closing) the window.
+</p>
+<p><strong>IMPORTANT!!!</strong> You need to add a call of Rotate() (see section <a href="mathgl_en_3.html#Transformation-matrix">Transformation matrix</a>) function for having possibility of plot rotation. If plot should be unrotated by default just add <code>Rotate(0,0)</code> in drawing function.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Window-on-mglGraphAB-1"></a><u>Method on mglGraphAB:</u> <code>void</code> <b>Window</b><i> (<code>int</code> argc, <code>char **</code>argv, <code>mglDraw *</code>draw, <code>const char *</code>title, <code>bool</code> maximize=<code>false</code>)</i></dt>
+<dd><p>This function is mostly the same as previous one. The only difference is that the drawing function and function for data reloading are specified as methods on a class inherited from class <code>mglDraw</code>. This class is defined in <code>#include &lt;mgl/mgl_define.h&gt;</code> and have only 2 methods:
+</p><pre class="verbatim">class mglDraw
+{
+public:
+    virtual int Draw(mglGraph *) { return 0; };
+    virtual void Reload(int) {};
+};
+</pre><p>You should inherit yours class from <code>mglDraw</code> and reimplement one or both functions for using this function.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-ToggleAlpha"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleAlpha</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005falpha"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_alpha</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Switch on/off transparency but do not overwrite switches in user drawing function.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ToggleLight"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleLight</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005flight"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_light</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Switch on/off lighting but do not overwrite switches in user drawing function.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ToggleZoom"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleZoom</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005fzoom"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_zoom</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Switch on/off zooming by mouse as region selection.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ToggleRotate"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleRotate</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005frotate"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_rotate</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Switch on/off rotation by mouse. Usually, left button is used for rotation, middle button for shift, right button for zoom/perspective.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ToggleNo"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleNo</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005fno"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_no</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Switch off all zooming and rotation and restore initial state.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Update"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>Update</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fupdate"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_update</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Update window contents.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ReLoad"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ReLoad</b><i> (<code>bool</code> o)</i></dt>
+<dt><a name="index-mgl_005fwnd_005freload"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_reload</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+<dd><p>Reload user data and update picture.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Adjust"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>Adjust</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fadjust"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_adjust</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Adjust size of bitmap to window size.
+</p></dd></dl>
+<dl>
+<dt><a name="index-NextFrame"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>NextFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fnext_005fframe"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_next_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Show next frame if one.
+</p></dd></dl>
+<dl>
+<dt><a name="index-PrevFrame"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>PrevFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fprev_005fframe"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_prev_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Show previous frame if one.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Animation"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>Animation</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fanimation"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_animation</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Run/stop slideshow (animation) of frames.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fwnd_005fset_005fauto_005fclf"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_set_auto_clf</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+</dl>
+<dl>
+<dt><a name="index-AutoClf-of-mglGraphAB"></a><u>Widget option of mglGraphAB:</u> <code>bool</code> <b>AutoClf</b></dt>
+<dd><p>Clear canvas between drawing. You may switch it off for accumulate previous drawing (for example some points or parts of a picture).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fwnd_005fset_005fdelay"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_set_delay</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+</dl>
+<dl>
+<dt><a name="index-Delay-of-mglGraphAB"></a><u>Widget option of mglGraphAB:</u> <code>float</code> <b>Delay</b></dt>
+<dd><p>Delay for animation in seconds. Default value is 1 sec.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CalcXYZ"></a><u>Method on <code>mglGraphAB</code> (C++, Python):</u> <code>mglPoint</code> <b>CalcXYZ</b><i> (<code>int</code> xs, <code>int</code> ys)</i></dt>
+<dt><a name="index-mgl_005fcalc_005fxyz-1"></a><u>C function:</u> <code>void</code> <b>mgl_calc_xyz</b><i> (<code>HMGL</code> gr, <code>int</code> xs, <code>int</code> ys, <code>float *</code>x, <code>float *</code>y, <code>float *</code>z)</i></dt>
+<dd><p>Calculate 3D coordinate {x,y,z} for screen point {xs,ys}. At this moment it ignore perspective and transformation formulas (curvilinear coordinates). The calculation are done for the last used InPlot (see section <a href="mathgl_en_3.html#Transformation-matrix">Transformation matrix</a>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CalcScr"></a><u>Method on <code>mglGraphAB</code> (C++, Python):</u> <code>mglPoint</code> <b>CalcScr</b><i> (<code>mglPoint</code> p)</i></dt>
+<dt><a name="index-CalcScr-1"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>CalcScr</b><i> (<code>mglPoint</code> p, <code>int *</code>xs, <code>int *</code>ys)</i></dt>
+<dt><a name="index-mgl_005fcalc_005fscr"></a><u>C function:</u> <code>void</code> <b>mgl_calc_scr</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>int *</code>xs, <code>int *</code>ys)</i></dt>
+<dd><p>Calculate screen point {xs,ys} for 3D coordinate {x,y,z}. The calculation are done for the last used InPlot (see section <a href="mathgl_en_3.html#Transformation-matrix">Transformation matrix</a>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fwnd_005fset_005fshow_005fmouse_005fpos"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_set_show_mouse_pos</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+</dl>
+<dl>
+<dt><a name="index-ShowMousePos-of-mglGraphAB"></a><u>Widget option of mglGraphAB:</u> <code>float</code> <b>ShowMousePos</b></dt>
+<dd><p>Switch to show or not in the widget the last mouse click position.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-LastMousePos-of-mglGraphAB"></a><u>Widget option of mglGraphAB:</u> <code>mglPoint</code> <b>LastMousePos</b></dt>
+<dd><p>Last position of mouse click.
+</p></dd></dl>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plotter-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_5.html#Widget-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_5.html b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_5.html
new file mode 100644
index 0000000..bb55314
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_5.html
@@ -0,0 +1,504 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: 5. Widget classes</title>
+
+<meta name="description" content="MathGL 1.11: 5. Widget classes">
+<meta name="keywords" content="MathGL 1.11: 5. Widget classes">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Widget-classes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_4.html#mglGraphAB-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fl_005fMathGL-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_6.html#mglData-class" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+
+<a name="Widget-classes-1"></a>
+<h1 class="chapter">5. Widget classes</h1>
+<a name="index-mglGraphFLTK"></a>
+<a name="index-mglGraphQT"></a>
+<a name="index-mglGraphGLUT"></a>
+<a name="index-Fl_005fMathGL"></a>
+<a name="index-QMathGL"></a>
+<a name="index-window-2"></a>
+<a name="index-widgets-1"></a>
+
+<p>There are set of &ldquo;window&rdquo; classes for making a window with MathGL graphics: <code>mglGraphFLTK</code>, <code>mglGraphQT</code>, <code>mglGraphGLUT</code>. All these classes allow user to show, rotate, export, and change view of the plot using keyboard. Most of them (except <code>mglGraphGLUT</code>) also have toolbar and menu for simplifying plot manipulation. Usually these classes (except <code>mglGraphGLUT</code>) are derived from <code>mglGraphZB</code> class and have a &ldquo;connected&rdquo; class for widget in corresponding window library. All window classes have the same set of functions (see section <a href="mathgl_en_4.html#mglGraphAB-class">mglGraphAB class</a>). Below the full list of classes with short comments.
+</p>
+<dl>
+<dt><a name="index-mglGraphFLTK-1"></a><u>Class:</u> <b>mglGraphFLTK</b></dt>
+<dd><p>Class <code>mglGraphFLTK</code> adds the possibility to create plotting window with the help of FLTK library. It allows one to show, rotate, export, and change view of the plot by keyboard, menu and toolbar. &ldquo;Corresponding&rdquo; widget class is <code>Fl_MathGL</code>. Class is defined in <code>#include &lt;mgl/mgl_fltk.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fl_005fMathGL-1"></a><u>Class:</u> <b>Fl_MathGL</b></dt>
+<dd><p>Class is FLTK widget for displaying the MathGL output. Class is defined in <code>#include &lt;mgl/mgl_fltk.h&gt;</code>.
+</p></dd></dl>
+
+<div class="float">
+<img src="fltk.png" alt="fltk">
+
+</div><p><strong>Example of FLTK window with MathGL plot.
+</strong>
+</p>
+<dl>
+<dt><a name="index-mglGraphQT-1"></a><u>Class:</u> <b>mglGraphQT</b></dt>
+<dd><p>Class <code>mglGraphQT</code> adds the possibility to create plotting window with the help of QT library. It allows one to show, rotate, export, and change view of the plot by keyboard, menu and toolbar. &ldquo;Corresponding&rdquo; widget class is <code>QMathGL</code>. Class is defined in <code>#include &lt;mgl/mgl_qt.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-QMathGL-1"></a><u>Class:</u> <b>QMathGL</b></dt>
+<dd><p>Class is Qt widget for dysplaying the MathGL output. Class is defined in <code>#include &lt;mgl/mgl_qt.h&gt;</code>.
+</p></dd></dl>
+
+<div class="float">
+<img src="qt.png" alt="qt">
+
+</div><p><strong>Example of Qt window with MathGL plot.
+</strong>
+</p>
+<dl>
+<dt><a name="index-mglGraphGLUT-1"></a><u>Class:</u> <b>mglGraphGLUT</b></dt>
+<dd><p>Class <code>mglGraphGLUT</code> adds the possibility to create plotting window with the help of GLUT library. It allows one to show, rotate, export, and change view of the plot only by keyboard. Class is defined in <code>#include &lt;mgl/mgl_glut.h&gt;</code>.
+</p></dd></dl>
+
+<div class="float">
+<img src="glut.png" alt="glut">
+
+</div><p><strong>Example of GLUT window with MathGL plot.
+</strong>
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Fl_005fMathGL-class">5.1 Fl_MathGL class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#QMathGL-class">5.2 QMathGL class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Fl_005fMathGL-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Widget-classes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#QMathGL-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Widget-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Widget-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_6.html#mglData-class" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fl_005fMathGL-class-1"></a>
+<h2 class="section">5.1 Fl_MathGL class</h2>
+<a name="index-Fl_005fMathGL-2"></a>
+<a name="index-widgets-2"></a>
+
+<p>Class is FLTK widget which display MathGL graphics (defined in <code>#include &lt;mgl/mgl_fltk.h&gt;</code>).
+</p>
+<dl>
+<dt><a name="index-set_005fdraw-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_draw</b><i> (<code>mglDraw *</code>dr)</i></dt>
+<dd><p>Sets drawing function from a class inherited from <code>mglDraw</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-update-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>update</b><i> (<code>mglGraph *</code>gr=<code>NULL</code>)</i></dt>
+<dd><p>Update (redraw) plot using grapher <var>gr</var> (built-in by default).
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fangle-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_angle</b><i> (<code>float</code> t, <code>float</code> p)</i></dt>
+<dd><p>Set angles for additional plot rotation
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fstate-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_state</b><i> (<code>int</code> f)</i></dt>
+<dd><p>Set bitwise flags for general state (1-Alpha, 2-Light)
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fstate-on-Fl_005fMathGL-1"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_state</b><i> (<code>bool</code> z, <code>bool</code> r)</i></dt>
+<dd><p>Set flags for handling mouse: <var>z</var>=<code>true</code> allow zooming, <var>r</var>=<code>true</code> allow rotation/shifting/perspective and so on.
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fzoom-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_zoom</b><i> (<code>float</code> X1, <code>float</code> Y1, <code>float</code> X2, <code>float</code> Y2)</i></dt>
+<dd><p>Set zoom in/out region
+</p></dd></dl>
+<dl>
+<dt><a name="index-get_005fzoom-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>get_zoom</b><i> (<code>float *</code>X1, <code>float *</code>Y1, <code>float *</code>X2, <code>float *</code>Y2)</i></dt>
+<dd><p>Get zoom in/out region
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fpopup-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_popup</b><i> (<code>const Fl_Menu_Item *</code>pmenu, <code>Fl_Widget *</code>w, <code>void *</code>v)</i></dt>
+<dd><p>Set popup menu pointer
+</p></dd></dl>
+<dl>
+<dt><a name="index-get_005fgraph-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>mglGraph *</code> <b>get_graph</b><i> ()</i></dt>
+<dd><p>Get pointer to grapher
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-tet_005fval-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>Fl_Valuator *</code> <b>tet_val</b></dt>
+<dd><p>Pointer to external tet-angle validator.
+</p></dd></dl>
+<dl>
+<dt><a name="index-phi_005fval-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>Fl_Valuator *</code> <b>phi_val</b></dt>
+<dd><p>Pointer to external phi-angle validator.
+</p></dd></dl>
+<dl>
+<dt><a name="index-graph-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>mglGraphAB *</code> <b>graph</b></dt>
+<dd><p>Pointer to grapher
+</p></dd></dl>
+<dl>
+<dt><a name="index-draw_005fpar-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>void *</code> <b>draw_par</b></dt>
+<dd><p>Parameters for drawing function mglGraph::DrawFunc.
+</p></dd></dl>
+<dl>
+<dt><a name="index-draw_005ffunc-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>int (*</code> <b>draw_func</b><i> <code>)(mglGraph *gr, void *par)</code></i></dt>
+<dd><p>Drawing function for window procedure. It should return the number of frames.
+</p></dd></dl>
+
+<hr size="6">
+<a name="QMathGL-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fl_005fMathGL-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_6.html#mglData-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Widget-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Widget-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_6.html#mglData-class" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="QMathGL-class-1"></a>
+<h2 class="section">5.2 QMathGL class</h2>
+<a name="index-QMathGL-2"></a>
+<a name="index-widgets-3"></a>
+
+<p>Class is Qt widget which display MathGL graphics (defined in <code>#include &lt;mgl/mgl_qt.h&gt;</code>).
+</p>
+<dl>
+<dt><a name="index-setDraw-on-QMathGL"></a><u>Method on QMathGL:</u> <code>void</code> <b>setDraw</b><i> (<code>mglDraw *</code>dr)</i></dt>
+<dd><p>Sets drawing functions from a class inherited from <code>mglDraw</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-setDraw-on-QMathGL-1"></a><u>Method on QMathGL:</u> <code>void</code> <b>setDraw</b><i> (<code>int (*</code>draw)(<code>mglGraph *</code>gr, <code>void *</code>p), <code>void *</code>par=<code>NULL</code>)</i></dt>
+<dd><p>Sets the drawing function <var>draw</var>. There is support of a list of plots (frames). So as one can prepare a set of frames at first and redraw it fast later (but it requires more memory). Function should return positive number of frames for the list or zero if it will plot directly. Parameter <var>par</var> contains pointer to data for the plotting function <var>draw</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-setGraph-on-QMathGL"></a><u>Method on QMathGL:</u> <code>void</code> <b>setGraph</b><i> (<code>mglGraphAB *</code>gr)</i></dt>
+<dd><p>Set pointer to external grapher (instead of built-in <code>mglGraphZB</code>). Note that QMathGL will automatically delete this object at destruction or at new <code>setGraph()</code> call.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-setPopup-on-QMathGL"></a><u>Method on QMathGL:</u> <code>void</code> <b>setPopup</b><i> (<code>QMenu *</code>p)</i></dt>
+<dd><p>Set popup menu pointer.
+</p></dd></dl>
+<dl>
+<dt><a name="index-setSize-on-QMathGL"></a><u>Method on QMathGL:</u> <code>void</code> <b>setSize</b><i> (<code>int</code> w, <code>int</code> h)</i></dt>
+<dd><p>Set widget/picture sizes
+</p></dd></dl>
+<dl>
+<dt><a name="index-getRatio-on-QMathGL"></a><u>Method on QMathGL:</u> <code>double</code> <b>getRatio</b><i> ()</i></dt>
+<dd><p>Return aspect ratio of the picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-getPer-on-QMathGL"></a><u>Method on QMathGL:</u> <code>int</code> <b>getPer</b><i> ()</i></dt>
+<dd><p>Get perspective value in percents.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getPhi-on-QMathGL"></a><u>Method on QMathGL:</u> <code>int</code> <b>getPhi</b><i> ()</i></dt>
+<dd><p>Get Phi-angle value in degrees.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getTet-on-QMathGL"></a><u>Method on QMathGL:</u> <code>int</code> <b>getTet</b><i> ()</i></dt>
+<dd><p>Get Theta-angle value in degrees.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getAlpha-on-QMathGL"></a><u>Method on QMathGL:</u> <code>bool</code> <b>getAlpha</b><i> ()</i></dt>
+<dd><p>Get transparency state.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getLight-on-QMathGL"></a><u>Method on QMathGL:</u> <code>bool</code> <b>getLight</b><i> ()</i></dt>
+<dd><p>Get lightning state.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getZoom-on-QMathGL"></a><u>Method on QMathGL:</u> <code>bool</code> <b>getZoom</b><i> ()</i></dt>
+<dd><p>Get mouse zooming state.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getRotate-on-QMathGL"></a><u>Method on QMathGL:</u> <code>bool</code> <b>getRotate</b><i> ()</i></dt>
+<dd><p>Get mouse rotation state.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-void-on-QMathGL"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> refresh ()</i></dt>
+<dd><p>Redraw saved bitmap without executing drawing function.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-1"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> update (<code>mglGraph *</code>gr=<code>NULL</code>)</i></dt>
+<dd><p>Update picture by executing drawing function.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-2"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> copy ()</i></dt>
+<dd><p>Copy graphics to clipboard.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-3"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setPer (<code>int</code> val)</i></dt>
+<dd><p>Set perspective value.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-4"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setPhi (<code>int</code> val)</i></dt>
+<dd><p>Set Phi-angle value.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-5"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setTet (<code>int</code> val)</i></dt>
+<dd><p>Set Theta-angle value.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-6"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setAlpha (<code>bool</code> val)</i></dt>
+<dd><p>Switch on/off transparency.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-7"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setLight (<code>bool</code> val)</i></dt>
+<dd><p>Switch on/off lightning.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-8"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setZoom (<code>bool</code> val)</i></dt>
+<dd><p>Switch on/off mouse zooming.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-9"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setRotate (<code>bool</code> val)</i></dt>
+<dd><p>Switch on/off mouse rotation.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-10"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> zoomIn ()</i></dt>
+<dd><p>Zoom in graphics.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-11"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> zoomOut ()</i></dt>
+<dd><p>Zoom out graphics.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-12"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> restore ()</i></dt>
+<dd><p>Restore zoom and rotation to default values.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-13"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> reload ()</i></dt>
+<dd><p>Reload data and redraw graphics.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-14"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> shiftLeft ()</i></dt>
+<dd><p>Shift graphics to left direction.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-15"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> shiftRight ()</i></dt>
+<dd><p>Shift graphics to right direction.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-16"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i>shiftUp  ()</i></dt>
+<dd><p>Shift graphics to up direction.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-17"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> shiftDown ()</i></dt>
+<dd><p>Shift graphics to down direction.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-18"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportPNG (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Export current picture to PNG file.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-19"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportPNGs (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Export current picture to PNG file (no transparency).
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-20"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportJPG (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Export current picture to JPEG file.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-21"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportBPS (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Export current picture to bitmap EPS file.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-22"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportEPS (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Export current picture to vector EPS file.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-23"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportSVG (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Export current picture to SVG file.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-24"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportIDTF (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Export current picture to IDTF file.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-25"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setMGLFont (<code>QString</code> path)</i></dt>
+<dd><p>Restore (<var>path</var>=<code>&quot;&quot;</code>) or load font for graphics.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-26"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> print ()</i></dt>
+<dd><p>Print current picture
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-27"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> adjust ()</i></dt>
+<dd><p>Adjust plot size to fill entire window. This function is executed only if graph is mglGraphQT instance.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-28"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> nextSlide ()</i></dt>
+<dd><p>Show next slide. This function is executed only if graph is mglGraphQT instance.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-29"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> prevSlide ()</i></dt>
+<dd><p>Show previous slide. This function is executed only if graph is mglGraphQT instance.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-30"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> animation (<code>bool</code> st=<code>true</code>)</i></dt>
+<dd><p>Start animation. This function is executed only if graph is mglGraphQT instance.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-31"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> about ()</i></dt>
+<dd><p>Show about information.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-32"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> aboutQt ()</i></dt>
+<dd><p>Show information about Qt version.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-void-on-QMathGL-33"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> phiChanged (<code>int</code> val)</i></dt>
+<dd><p>Phi angle changed (by mouse or by toolbar).
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-34"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> tetChanged (<code>int</code> val)</i></dt>
+<dd><p>Tet angle changed (by mouse or by toolbar).
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-35"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> perChanged (<code>int</code> val)</i></dt>
+<dd><p>Perspective changed (by mouse or by toolbar).
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-36"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> alphaChanged (<code>bool</code> val)</i></dt>
+<dd><p>Transparency changed (by toolbar).
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-37"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> lightChanged (<code>bool</code> val)</i></dt>
+<dd><p>Lighting changed (by toolbar).
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-38"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> zoomChanged (<code>bool</code> val)</i></dt>
+<dd><p>Zooming changed (by toolbar).
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-39"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> rotateChanged (<code>bool</code> val)</i></dt>
+<dd><p>Rotation changed (by toolbar).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-appName-of-QMathGL"></a><u>Widget option of QMathGL:</u> <code>QString</code> <b>appName</b></dt>
+<dd><p>Application name for message boxes.
+</p></dd></dl>
+<dl>
+<dt><a name="index-autoResize-of-QMathGL"></a><u>Widget option of QMathGL:</u> <code>bool</code> <b>autoResize</b></dt>
+<dd><p>Allow auto resizing (default is false).
+</p></dd></dl>
+<dl>
+<dt><a name="index-animDelay-of-QMathGL"></a><u>Widget option of QMathGL:</u> <code>int</code> <b>animDelay</b></dt>
+<dd><p>Animation delay in ms.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Widget-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_6.html#mglData-class" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_6.html b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_6.html
new file mode 100644
index 0000000..10db6af
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_6.html
@@ -0,0 +1,1140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: 6. mglData class</title>
+
+<meta name="description" content="MathGL 1.11: 6. mglData class">
+<meta name="keywords" content="MathGL 1.11: 6. mglData class">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="mglData-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_5.html#QMathGL-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Public-variables" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_5.html#Widget-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglData-class-1"></a>
+<h1 class="chapter">6. mglData class</h1>
+
+<p>Class for working with data array. This class is defined in <code>#include &lt;mgl/mgl_data.h&gt;</code>. The class has functions for easy and safe allocation, resizing, loading and saving, modifying of data arrays. Also it can numerically differentiate and integrate data, interpolate, fill data by formula and so on. Class supports data with dimensions up to 3 (like function of 3 variables &ndash; x,y,z). The internal representation of numbers is float. Float type was chosen because it has smaller size in memory and usually it has enough precision in plotting purposes.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Public-variables">6.1 Public variables</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Create-and-delete">6.2 Create and delete</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fill">6.3 Fill</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Rearrange">6.4 Rearrange</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#File-I_002fO">6.5 File I/O</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Make-another-data">6.6 Make another data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Change-data">6.7 Change data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Interpolation">6.8 Interpolation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Informational-functions">6.9 Informational functions</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Operators">6.10 Operators</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Global-functions">6.11 Global functions</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Public-variables"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglData-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Create-and-delete" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Public-variables-1"></a>
+<h2 class="section">6.1 Public variables</h2>
+
+<dl>
+<dt><a name="index-a-of-mglData"></a><u>Variable of mglData:</u> <code>float *</code> <b>a</b></dt>
+<dd><p>Data array itself. The flat data representation is used. For example, matrix [nx x ny] is presented as flat (1d-) array with length nx*ny. The element with indexes {i, j, k} is a[i+nx*j+nx*ny*k] (indexes are zero based).
+</p></dd></dl>
+<dl>
+<dt><a name="index-nx-of-mglData"></a><u>Variable of mglData:</u> <code>int</code> <b>nx</b></dt>
+<dd><p>Number of points in 1st dimensions (&rsquo;x&rsquo; dimension).
+</p></dd></dl>
+<dl>
+<dt><a name="index-ny-of-mglData"></a><u>Variable of mglData:</u> <code>int</code> <b>ny</b></dt>
+<dd><p>Number of points in 2nd dimensions (&rsquo;y&rsquo; dimension).
+</p></dd></dl>
+<dl>
+<dt><a name="index-nz-of-mglData"></a><u>Variable of mglData:</u> <code>int</code> <b>nz</b></dt>
+<dd><p>Number of points in 3d dimensions (&rsquo;z&rsquo; dimension).
+</p></dd></dl>
+<dl>
+<dt><a name="index-id-of-mglData"></a><u>Variable of mglData:</u> <code>char *</code> <b>id</b></dt>
+<dd><p>Column (or slice if nz&gt;1) names &ndash; one character per column.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Create-and-delete"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Public-variables" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fill" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Create-and-delete-1"></a>
+<h2 class="section">6.2 Create and delete</h2>
+<a name="index-mglData"></a>
+<a name="index-Set"></a>
+
+<dl>
+<dt><a name="index--on-mglData"></a><u>Constructor on mglData:</u> <b><code></code></b><i> mglData (<code>int</code> mx=<code>1</code>, <code>int</code> my=<code>1</code>, <code>int</code> mz=<code>1</code>)</i></dt>
+<dd><p>Default constructor. Allocates the memory for data array and initializes it by zero.
+</p></dd></dl>
+<dl>
+<dt><a name="index--on-mglData-1"></a><u>Constructor on mglData:</u> <b><code></code></b><i> mglData (<code>const char *</code>fname)</i></dt>
+<dd><p>Initializes the data by reading from file.
+</p></dd></dl>
+<dl>
+<dt><a name="index--on-mglData-2"></a><u>Constructor on mglData:</u> <b><code></code></b><i> mglData (<code>const mglData</code> &amp;dat)</i></dt>
+<dd><p>Initiates by other <code>mglData</code> instance.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Create"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Create</b><i> (<code>int</code> mx, <code>int</code> my=<code>1</code>, <code>int</code> mz=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fcreate"></a><u>C function:</u> <code>void</code> <b>mgl_data_create</b><i> (<code>HMDT</code> dat, <code>int</code> mx, <code>int</code> my, <code>int</code> mz)</i></dt>
+<dd><p>Creates or recreates the array with specified size and fills it by zero. This function does nothing if one of parameters <var>mx</var>, <var>my</var>, <var>mz</var> is zero or negative.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-1"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const float *</code>A, <code>int</code> NX, <code>int</code> NY=<code>1</code>, <code>int</code> NZ=<code>1</code>)</i></dt>
+<dt><a name="index-Set-2"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const double *</code>A, <code>int</code> NX, <code>int</code> NY=<code>1</code>, <code>int</code> NZ=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005ffloat"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_float</b><i> (<code>HMDT</code> dat, <code>const float *</code>A, <code>int</code> NX, <code>int</code> NY, <code>int</code> NZ)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fdouble"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_double</b><i> (<code>HMDT</code> dat, <code>const double *</code>A, <code>int</code> NX, <code>int</code> NY, <code>int</code> NZ)</i></dt>
+<dd><p>Allocates memory and copies the data from the <strong>flat</strong> <code>float*</code> or <code>double*</code> array.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-3"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const float **</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-Set-4"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const double **</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005ffloat2"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_float2</b><i> (<code>HMDT</code> dat, <code>const float **</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fdouble2"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_double2</b><i> (<code>HMDT</code> dat, <code>const double **</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dd><p>Allocates memory and copies the data from the <code>float**</code> or <code>double**</code> array with dimensions <var>N1</var>, <var>N2</var>, i.e. from array defined as <code>float a[N1][N2];</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-5"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const float ***</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-Set-6"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const double ***</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005ffloat3"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_float3</b><i> (<code>HMDT</code> dat, <code>const float ***</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fdouble3"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_double3</b><i> (<code>HMDT</code> dat, <code>const double ***</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dd><p>Allocates memory and copies the data from the <code>float***</code> or <code>double***</code> array with dimensions <var>N1</var>, <var>N2</var>, <var>N3</var>, i.e. from array defined as <code>float a[N1][N2][N3];</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-7"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>gsl_vector *</code>v)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fvector"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_vector</b><i> (<code>HMDT</code> dat, <code>gsl_vector *</code>v)</i></dt>
+<dd><p>Allocates memory and copies the data from the <code>gsl_vector *</code> structure.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-8"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>gsl_matrix *</code>m)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fmatrix"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_matrix</b><i> (<code>HMDT</code> dat, <code>gsl_matrix *</code>m)</i></dt>
+<dd><p>Allocates memory and copies the data from the <code>gsl_matrix *</code> structure.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-9"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>inline void</code> <b>Set</b><i> (<code>const mglData &amp;</code>from)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset"></a><u>C function:</u> <code>void</code> <b>mgl_data_set</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> from)</i></dt>
+<dd><p>Copies the data from mglData instance <var>from</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-10"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const std::vector&lt;int&gt; &amp;</code>d)</i></dt>
+<dt><a name="index-Set-11"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const std::vector&lt;float&gt; &amp;</code>d)</i></dt>
+<dt><a name="index-Set-12"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const std::vector&lt;double&gt; &amp;</code>d)</i></dt>
+<dd><p>Allocates memory and copies the data from the <code>std::vector&lt;T&gt;</code> array.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-Set-13"></a><u>Method on <code>mglData</code> (C+, Python):</u> <code>void</code> <b>Set</b><i> (<code>const char *</code>str, <code>int</code> NX, <code>int</code> NY=<code>1</code>, <code>int</code> NZ=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fvalues"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_values</b><i> (<code>const char *</code>str, <code>int</code> NX, <code>int</code> NY, <code>int</code> NZ)</i></dt>
+<dd><p>Allocates memory and scanf the data from the string.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fill"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Create-and-delete" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Rearrange" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fill-1"></a>
+<h2 class="section">6.3 Fill</h2>
+<a name="index-Fill"></a>
+<a name="index-Modify"></a>
+
+<dl>
+<dt><a name="index-Fill-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Fill</b><i> (<code>float</code> x1, <code>float</code> x2, <code>char</code> dir=<code>'x'</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005ffill"></a><u>C function:</u> <code>void</code> <b>mgl_data_fill</b><i> (<code>HMDT</code> dat, <code>float</code> x1, <code>float</code> x2, <code>char</code> dir)</i></dt>
+<dd><p>Equidistantly fills the data values to range [<var>x1</var>, <var>x2</var>] in direction <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;,&lsquo;<samp>y</samp>&rsquo;,&lsquo;<samp>z</samp>&rsquo;}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fill-2"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Fill</b><i> (<code>const char *</code>eq, <code>mglPoint</code> Min, <code>mglPoint</code> Max, <code>const mglData *</code>vdat=0, <code>const mglData *</code>wdat=0)</i></dt>
+<dt><a name="index-mgl_005fdata_005ffill-1"></a><u>C function:</u> <code>void</code> <b>mgl_data_fill</b><i> (<code>HMGL</code> gr, <code>HMDT</code> dat, <code>const char *</code>eq, <code>const HMDT *</code>vdat, <code>const HMDT *</code>wdat)</i></dt>
+<dd><p>Fills the value of array according to the formula in string <var>eq</var>. Formula is an arbitrary expression depending  on variables &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; are supposed to be normalized in range <var>Min</var> x <var>Max</var> (in difference from <code>Modify</code> functions). Variable &lsquo;<samp>u</samp>&rsquo; is the original value of the array. Variables &lsquo;<samp>v</samp>&rsquo; and &lsquo;<samp>w</samp>&rsquo; are values of <var>vdat</var>, <var>wdat</var> which can be <code>NULL</code> (i.e. can be omitted).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Modify-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Modify</b><i> (<code>const char *</code>eq, <code>int</code> dim=<code>0</code>)</i></dt>
+<dt><a name="index-Modify-2"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Modify</b><i> (<code>const char *</code>eq, <code>const mglData &amp;</code>v)</i></dt>
+<dt><a name="index-Modify-3"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Modify</b><i> (<code>const char *</code>eq, <code>const mglData &amp;</code>v, <code>const mglData &amp;</code>w)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmodify"></a><u>C function:</u> <code>void</code> <b>mgl_data_modify</b><i> (<code>HMDT</code> dat, <code>const char *</code>eq, <code>int</code> dim)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmodify_005fvw"></a><u>C function:</u> <code>void</code> <b>mgl_data_modify_vw</b><i> (<code>HMDT</code> dat, <code>const char *</code>eq, <code>const HMDT</code> v, <code>const HMDT</code> w)</i></dt>
+<dd><p>Fills the value of array according to the formula in string <var>eq</var>. Formula is an arbitrary expression depending  on variables &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; are supposed to be normalized in range [0,1] (in difference from <code>Fill</code> functions). Variable &lsquo;<samp>u</samp>&rsquo; is the original value of the array. Variables &lsquo;<samp>v</samp>&rsquo; and &lsquo;<samp>w</samp>&rsquo; are values of <var>vdat</var>, <var>wdat</var> which can be <code>NULL</code> (i.e. can be omitted). If <var>dim</var>&gt;0 is specified then modification will be fulfilled only for slices &gt;=<var>dim</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Put"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Put</b><i> (<code>float</code> val, <code>int</code> i=<code>-1</code>, <code>int</code> j=<code>-1</code>, <code>int</code> k=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fput_005fval"></a><u>mglData:</u> <code>void</code> <b>mgl_data_put_val</b><i> (<code>HMDT</code> a, <code>float</code> val, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Function sets value(s) of array a[<var>i</var>, <var>j</var>, <var>k</var>] = <var>val</var>. Negative indexes <var>i</var>, <var>j</var>, <var>k</var>=-1 set the value <var>val</var> to whole range in corresponding direction(s). For example, <code>Put(val,-1,0,-1);</code> sets a[i,0,j]=<var>val</var> for i=0...(nx-1), j=0...(nz-1).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Put-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Put</b><i> (<code>const mglData &amp;</code>v, <code>int</code> i=<code>-1</code>, <code>int</code> j=<code>-1</code>, <code>int</code> k=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fput_005fdat"></a><u>mglData:</u> <code>void</code> <b>mgl_data_put_dat</b><i> (<code>HMDT</code> a, <code>const HMDT</code> v, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Function copies value(s) from array <var>v</var> to the range of original array. Negative indexes <var>i</var>, <var>j</var>, <var>k</var>=-1 set the range in corresponding direction(s). At this minor dimensions of array <var>v</var> should be large than corresponding dimensions of this array. For example, <code>Put(v,-1,0,-1);</code> sets a[i,0,j]=v.ny&gt;nz ? v[i,j] : v[i], where i=0...(nx-1), j=0...(nz-1) and condition v.nx&gt;=nx is true.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fdata_005fset_005fvalue"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_value</b><i> (<code>HMDT</code> dat, <code>float</code> v, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Sets the value in specified cell of the data with border checking.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fdata_005fget_005fvalue"></a><u>C function:</u> <code>float</code> <b>mgl_data_get_value</b><i> (<code>HMDT</code> dat, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Gets the value in specified cell of the data with border checking.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetNx"></a><u>Method on <code>mglData</code> (C+, Python):</u> <code>void</code> <b>GetNx</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fdata_005fget_005fnx"></a><u>C function:</u> <code>float</code> <b>mgl_data_get_nx</b><i> (<code>HMDT</code> dat)</i></dt>
+<dd><p>Gets the x-size of the data.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetNy"></a><u>Method on <code>mglData</code> (C+, Python):</u> <code>void</code> <b>GetNy</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fdata_005fget_005fny"></a><u>C function:</u> <code>float</code> <b>mgl_data_get_ny</b><i> (<code>HMDT</code> dat)</i></dt>
+<dd><p>Gets the y-size of the data.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetNz"></a><u>Method on <code>mglData</code> (C+, Python):</u> <code>void</code> <b>GetNz</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fdata_005fget_005fnz"></a><u>C function:</u> <code>float</code> <b>mgl_data_get_nz</b><i> (<code>HMDT</code> dat)</i></dt>
+<dd><p>Gets the z-size of the data.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Rearrange"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fill" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#File-I_002fO" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Rearrange-1"></a>
+<h2 class="section">6.4 Rearrange</h2>
+<a name="index-Rearrange"></a>
+<a name="index-Extend"></a>
+<a name="index-Transpose"></a>
+<a name="index-Squeeze"></a>
+<a name="index-Crop"></a>
+<a name="index-InsertRows"></a>
+<a name="index-InsertColumns"></a>
+<a name="index-InsertSlices"></a>
+<a name="index-DeleteRows"></a>
+<a name="index-DeleteColumns"></a>
+<a name="index-DeleteSlices"></a>
+<a name="index-Insert"></a>
+<a name="index-Delete"></a>
+
+<dl>
+<dt><a name="index-Rearrange-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Rearrange</b><i> (<code>int</code> mx, <code>int</code> my=<code>0</code>, <code>int</code> mz=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005frearrange"></a><u>C function:</u> <code>void</code> <b>mgl_data_rearrange</b><i> (<code>HMDT</code> dat, <code>int</code> mx, <code>int</code> my, <code>int</code> mz)</i></dt>
+<dd><p>Rearrange dimensions without changing data array so that resulting sizes should  be <var>mx</var>*<var>my</var>*<var>mz</var> &lt; nx*ny*nz. If some of parameter <var>my</var> or <var>mz</var> are zero then it will be selected to optimal fill of data array. For example, if <var>my</var>=0 then it will be change to <var>my</var>=nx*ny*nz/<var>mx</var> and <var>mz</var> will be 1.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Extend-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Extend</b><i> (<code>int</code> n1, <code>int</code> n2=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fextend"></a><u>C function:</u> <code>void</code> <b>mgl_data_extend</b><i> (<code>HMDT</code> dat, <code>int</code> n1, <code>int</code> n2)</i></dt>
+<dd><p>Increase the dimensions of the data by inserting new (|<var>n1</var>|+1)-th slices after (for <var>n1</var>&gt;0) or before (for <var>n1</var>&lt;0) of existed one. It is possible to insert 2 dimensions simultaneously for 1d data by using parameter <var>n2</var>. Data to new slices is copy from existed one. For example, for <var>n1</var>&gt;0 new array will be 
+a_ij^new = a_i^old where j=0...<var>n1</var>. Correspondingly, for <var>n1</var>&lt;0 new array will be a_ij^new = a_j^old where i=0...|<var>n1</var>|.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Transpose-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Transpose</b><i> (<code>const char *</code>dim=<code>&quot;yx&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005ftranspose"></a><u>C function:</u> <code>void</code> <b>mgl_data_transpose</b><i> (<code>const char *</code>dim)</i></dt>
+<dd><p>Transposes (shift order of) dimensions of the data. New order of dimensions is specified int string <var>dim</var>. This function may be useful also for the reading of one-dimensional data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Squeeze-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Squeeze</b><i> (<code>int</code> rx, <code>int</code> ry=<code>1</code>, <code>int</code> rz=<code>1</code>, <code>bool</code> smooth=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsqueeze"></a><u>C function:</u> <code>void</code> <b>mgl_data_squeeze</b><i> (<code>HMDT</code> dat, <code>int</code> rx, <code>int</code> ry, <code>int</code> rz, <code>int</code> smooth)</i></dt>
+<dd><p>Reduces the data size by excluding data elements which indexes are not divisible by <var>rx</var>, <var>ry</var>, <var>rz</var> correspondingly. Parameter <var>smooth</var> set to use smoothing
+(i.e. out[i]=\sum_{j=i,i+r} a[j]/r) or not (i.e. out[i]=a[j*r]).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Crop-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Crop</b><i> (<code>int</code> n1, <code>int</code> n2, <code>char</code> dir=<code>'x'</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fcrop"></a><u>C function:</u> <code>void</code> <b>mgl_data_crop</b><i> (<code>HMDT</code> dat, <code>int</code> n1, <code>int</code> n2, <code>char</code> dir)</i></dt>
+<dd><p>Cuts off edges of the data <var>i</var>&lt;<var>n1</var> and <var>i</var>&gt;<var>n2</var> if <var>n2</var>&gt;0 or <var>i</var>&gt;<code>n[xyz]</code>-<var>n2</var> if <var>n2</var>&lt;=0 along direction <var>dir</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-InsertRows-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>InsertRows</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>, <code>const char *</code>eq=<code>NULL</code>)</i></dt>
+<dd><p>Insert <var>num</var> rows (slice along y-direction) at position <var>at</var> and fill it by formula <var>eq</var> (if <var>eq</var>!=0) or by zeros.
+</p></dd></dl>
+<dl>
+<dt><a name="index-InsertColumns-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>InsertColumns</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>, <code>const char *</code>eq=<code>NULL</code>)</i></dt>
+<dd><p>Insert <var>num</var> columns (slice along x-direction) at position <var>at</var> and fill it by formula <var>eq</var> (if <var>eq</var>!=0) or by zeros.
+</p></dd></dl>
+<dl>
+<dt><a name="index-InsertSlices-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>InsertSlices</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>, <code>const char *</code>eq=<code>NULL</code>)</i></dt>
+<dd><p>Insert <var>num</var> slices (slice along z-direction) at position <var>at</var> and fill it by formula <var>eq</var> (if <var>eq</var>!=0) or by zeros.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DeleteRows-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>DeleteRows</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>)</i></dt>
+<dd><p>Delete <var>num</var> rows (slice along y-direction) at position <var>at</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-DeleteColumns-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>DeleteColumns</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>)</i></dt>
+<dd><p>Delete <var>num</var> columns (slice along x-direction) at position <var>at</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-DeleteSlices-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>DeleteSlices</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>)</i></dt>
+<dd><p>Delete <var>num</var> slices (slice along z-direction) at position <var>at</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Insert-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Insert</b><i> (<code>char</code> dir, <code>int</code> pos=<code>0</code>, <code>int</code> num=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005finsert"></a><u>C function:</u> <code>void</code> <b>mgl_data_insert</b><i> (<code>HMDT</code> dat, <code>char</code> dir, <code>int</code> pos, <code>char</code> num)</i></dt>
+<dd><p>Insert <var>num</var> slices along <var>dir</var>-direction at position <var>pos</var> and fill it by zeros.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Delete-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Delete</b><i> (<code>char</code> dir, <code>int</code> pos=<code>0</code>, <code>int</code> num=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdelete"></a><u>C function:</u> <code>void</code> <b>mgl_data_delete</b><i> (<code>HMDT</code> dat, <code>char</code> dir, <code>int</code> pos, <code>char</code> num)</i></dt>
+<dd><p>Delete <var>num</var> slices along <var>dir</var>-direction at position <var>pos</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="File-I_002fO"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Rearrange" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Make-another-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="File-I_002fO-1"></a>
+<h2 class="section">6.5 File I/O</h2>
+<a name="index-Read"></a>
+<dl>
+<dt><a name="index-Read-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Read</b><i> (<code>const char *</code>fname)</i></dt>
+<dt><a name="index-mgl_005fdata_005fread"></a><u>C function:</u> <code>void</code> <b>mgl_data_read</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname)</i></dt>
+<dd><p>Reads data from tab-separated text file with auto determining sizes of the data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Read-2"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Read</b><i> (<code>const char *</code>fname, <code>int</code> mx, <code>int</code> my=<code>1</code>, <code>int</code> mz=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fread_005fdim"></a><u>C function:</u> <code>void</code> <b>mgl_data_read_dim</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname, <code>int</code> mx, <code>int</code> my, <code>int</code> mz)</i></dt>
+<dd><p>Reads data from text file with specified data sizes. This function does nothing if one of parameters <var>mx</var>, <var>my</var> or <var>mz</var> is zero or negative.
+</p></dd></dl>
+<a name="index-ReadMat"></a>
+<dl>
+<dt><a name="index-ReadMat-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>ReadMat</b><i> (<code>const char *</code>fname, <code>int</code> dim=<code>2</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fread_005fmat"></a><u>C function:</u> <code>void</code> <b>mgl_data_read_mat</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname, <code>int</code> dim)</i></dt>
+<dd><p>Read data from text file with size specified at beginning of the file by first <var>dim</var> numbers. At this, variable <var>dim</var> set data dimensions.
+</p></dd></dl>
+
+<a name="index-ReadRange"></a>
+<dl>
+<dt><a name="index-ReadRange-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>ReadRange</b><i> (<code>const char *</code>templ, <code>float</code> from, <code>float</code> to, <code>float</code> step=<code>1.f</code>, <code>bool</code> as_slice=<code>false</code>)</i></dt>
+<dd><p>Join data arrays from several text files. The file names are determined by function call <code>sprintf(fname,templ,val);</code>, where <var>val</var> changes from <var>from</var> to <var>to</var> with step <var>step</var>. The data load one-by-one in the same slice if <var>as_slice</var>=<code>false</code> or as slice-by-slice if <var>as_slice</var>=<code>true</code>.
+</p></dd></dl>
+<a name="index-ReadAll"></a>
+<dl>
+<dt><a name="index-ReadAll-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>ReadAll</b><i> (<code>const char *</code>templ, <code>bool</code> as_slice=<code>false</code>)</i></dt>
+<dd><p>Join data arrays from several text files which filenames satisfied the template <var>templ</var> (for example, <var>templ</var>=<code>&quot;t_*.dat&quot;</code>). The data load one-by-one in the same slice if <var>as_slice</var>=<code>false</code> or as slice-by-slice if <var>as_slice</var>=<code>true</code>.
+</p></dd></dl>
+
+<a name="index-Save"></a>
+<dl>
+<dt><a name="index-Save-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Save</b><i> (<code>const char *</code>fname, <code>int</code> ns=<code>-1</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fsave"></a><u>C function:</u> <code>void</code> <b>mgl_data_save</b><i> (<code>const HMDT</code> dat, <code>const char *</code>fname, <code>int</code> ns)</i></dt>
+<dd><p>Saves the whole data array (for <var>ns</var>=<code>-1</code>) or only <var>ns</var>-th slice to text file.
+</p></dd></dl>
+
+<a name="index-ReadHDF"></a>
+<dl>
+<dt><a name="index-ReadHDF-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>ReadHDF</b><i> (<code>const char *</code>fname, <code>const char *</code>dname)</i></dt>
+<dd><p>Reads data array named <var>dname</var> from HDF5 or HDF4 file. This function does nothing if NO_HDF5|NO_HDF4 was defined during library compilation.
+</p></dd></dl>
+<a name="index-SaveHDF"></a>
+<dl>
+<dt><a name="index-SaveHDF-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>SaveHDF</b><i> (<code>const char *</code>fname, <code>const char *</code>dname, <code>bool</code> rewrite=<code>false</code>) <code>const</code></i></dt>
+<dd><p>Saves data array named <var>dname</var> from HDF5 or HDF4 file. This function does nothing if NO_HDF5|NO_HDF4 was defined during library compilation.
+</p></dd></dl>
+
+<a name="index-Import"></a>
+<dl>
+<dt><a name="index-Import-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Import</b><i> (<code>const char *</code>fname, <code>const char *</code>scheme, <code>float</code> v1=<code>0</code>, float v2=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fimport"></a><u>C function:</u> <code>void</code> <b>mgl_data_import</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname, <code>const char *</code>scheme, <code>float</code> v1, float v2)</i></dt>
+<dd><p>Reads data from bitmap file (now support only PNG format). The RGB values of bitmap pixels are transformed to float values in range [<var>v1</var>, <var>v2</var>] using color scheme <var>scheme</var> (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>).
+</p></dd></dl>
+<a name="index-Export"></a>
+<dl>
+<dt><a name="index-Export-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Export</b><i> (<code>const char *</code>fname, <code>const char *</code>scheme, <code>float</code> v1=<code>0</code>, float v2=<code>0</code>, <code>int</code> ns=<code>-1</code>) const</i></dt>
+<dt><a name="index-mgl_005fdata_005fexport"></a><u>C function:</u> <code>void</code> <b>mgl_data_export</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname, <code>const char *</code>scheme, <code>float</code> v1, float v2, <code>int</code> ns) const</i></dt>
+<dd><p>Saves data matrix (or <code>ns</code>-th slice for 3d data) to bitmap file (now support only PNG format). The data values are transformed from range [<var>v1</var>, <var>v2</var>] to RGB pixels of bitmap using color scheme <var>scheme</var> (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>). If <var>v1</var>&gt;=<var>v2</var> then the values of <var>v1</var>, <var>v2</var> are automatically determined as minimal and maximal value of the data array.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Make-another-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#File-I_002fO" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Change-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Make-another-data-1"></a>
+<h2 class="section">6.6 Make another data</h2>
+
+<a name="index-SubData"></a>
+<dl>
+<dt><a name="index-SubData-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>SubData</b><i> (<code>int</code> xx, <code>int</code> yy=<code>-1</code>, <code>int</code> zz=<code>-1</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fsubdata"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_subdata</b><i> (<code>const HMDT</code> dat, <code>int</code> xx, <code>int</code> yy, <code>int</code> zz)</i></dt>
+<dd><p>Extracts sub-array data from the original data array keeping fixed positive index. For example <code>SubData(-1,2)</code> extracts 3d row (indexes are zero based), <code>SubData(4,-1)</code> extracts 5th column, <code>SubData(-1,-1,3)</code> extracts 4th slice and so on.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SubData-2"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>SubData</b><i> (<code>const mglData &amp;</code>xx, <code>const mglData &amp;</code>yy, <code>const mglData &amp;</code>zz) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fsubdata_005fext"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_subdata_ext</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> xx, <code>const HMDT</code> yy, <code>const HMDT</code> zz)</i></dt>
+<dd><p>Extracts sub-array data from the original data array for indexes specified by arrays <var>xx</var>, <var>yy</var>, <var>zz</var> (indirect access). The resulting array have the same dimensions as input arrays for 2D and 3D arguments. This function work like previous one for 1D arguments (or numbers). The dimensions of all argument must be the same if they are 2D or 3D arrays.
+</p></dd></dl>
+
+<a name="index-Column"></a>
+<dl>
+<dt><a name="index-Column-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Column</b><i> (<code>const char *</code>eq) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fcolumn"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_column</b><i> (<code>const HMDT</code> dat, <code>const char *</code>eq)</i></dt>
+<dd><p>Get column (or slice) of the data filled by formula <var>eq</var> of other named columns. For example, <code>Column(&quot;n*w^2/exp(t)&quot;);</code>. The column ids must be defined first by <code>SetColumnId()</code> function.
+</p></dd></dl>
+
+<a name="index-SetColumnId"></a>
+<dl>
+<dt><a name="index-SetColumnId-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>SetColumnId</b><i> (<code>const char *</code>ids)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fid"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_id</b><i> (<code>HMDT</code> dat, <code>const char *</code>ids)</i></dt>
+<dd><p>Set the symbol id for data columns. The string must contain one symbol &rsquo;a&rsquo;...&rsquo;z&rsquo; per column (without spaces).
+</p></dd></dl>
+
+<a name="index-Trace"></a>
+<dl>
+<dt><a name="index-Trace-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Trace</b><i> () <code>const</code></i></dt>
+<dd><p>Gets array of diagonal elements a[i,i] (for 2D case) or a[i,i,i] (for 3D case) where i=0...nx-1. Function return copy of itself for 1D case. Data array must have dimensions ny,nz &gt;= nx or ny,nz = 1.
+</p></dd></dl>
+
+<a name="index-Hist-4"></a>
+<dl>
+<dt><a name="index-Hist-5"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Hist</b><i> (<code>int</code> n, <code>float</code> v1=<code>0</code>, <code>float</code> v2=<code>1</code>, <code>int</code> nsub=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fhist"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_hist</b><i> (<code>const HMDT</code> dat, <code>int</code> n, <code>float</code> v1, <code>float</code> v2, <code>int</code> nsub)</i></dt>
+<dd><p>Creates <var>n</var>-th points distribution of the data values in range [<var>v1</var>, <var>v2</var>]. Parameter <var>nsub</var> define the number of additional interpolated points (for smoothness of histogram).
+</p></dd></dl>
+<dl>
+<dt><a name="index-Hist-6"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Hist</b><i> (<code>const mglData &amp;</code>w, <code>int</code> n, <code>float</code> v1=<code>0</code>, <code>float</code> v2=<code>1</code>, <code>int</code> nsub=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fhist_005fw"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_hist_w</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> w, <code>int</code> n, <code>float</code> v1, <code>float</code> v2, <code>int</code> nsub)</i></dt>
+<dd><p>Creates <var>n</var>-th points distribution of the data values in range [<var>v1</var>, <var>v2</var>]. Array <var>w</var> specifies weights of the data elements. Parameter <var>nsub</var> define the number of additional interpolated points (for smoothness of histogram).
+</p></dd></dl>
+
+<a name="index-Momentum"></a>
+<dl>
+<dt><a name="index-Momentum-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Momentum</b><i> (<code>char</code> dir, <code>const char *</code>how) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmomentum"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_momentum</b><i> (<code>const HMDT</code> dat, <code>char</code> dir, <code>const char *</code>how)</i></dt>
+<dd><p>Get momentum (1D-array) of the data along direction <var>dir</var>. String <var>how</var> contain kind of momentum. The momentum is defined like as
+res_k = \sum_ij how(x_i,y_j,z_k) a_ij/ \sum_ij a_ij
+if <var>var</var>=&lsquo;<samp>z</samp>&rsquo; and so on. Coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; are data indexes normalized in range [0,1].
+</p></dd></dl>
+
+<a name="index-Sum"></a>
+<dl>
+<dt><a name="index-Sum-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Sum</b><i> (<code>const char *</code>dir) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fsum"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_sum</b><i> (<code>const HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Gets array which is the result of summation in given direction or direction(s).
+</p></dd></dl>
+<a name="index-Max-1"></a>
+<dl>
+<dt><a name="index-Max-2"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Max</b><i> (<code>const char *</code>dir) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmax_005fdir"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_max_dir</b><i> (<code>const HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Gets array which is the maximal data values in given direction or direction(s).
+</p></dd></dl>
+<a name="index-Min-1"></a>
+<dl>
+<dt><a name="index-Min-2"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Min</b><i> (<code>const char *</code>dir) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmin_005fdir"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_min_dir</b><i> (<code>const HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Gets array which is the maximal data values in given direction or direction(s).
+</p></dd></dl>
+
+<a name="index-Combine"></a>
+<dl>
+<dt><a name="index-Combine-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Combine</b><i> (<code>const mglData &amp;</code>a) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fcombine"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_combine</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> a)</i></dt>
+<dd><p>Return direct multiplication of arrays (like, res[i,j] = this[i]*a[j] and so on).
+</p></dd></dl>
+
+<a name="index-Evaluate"></a>
+<dl>
+<dt><a name="index-Evaluate-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Evaluate</b><i> (<code>const mglData &amp;</code>idat, <code>bool</code> norm=<code>true</code>) <code>const</code></i></dt>
+<dt><a name="index-Evaluate-2"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Evaluate</b><i> (<code>const mglData &amp;</code>idat, <code>const mglData &amp;</code>jdat, <code>bool</code> norm=<code>true</code>) <code>const</code></i></dt>
+<dt><a name="index-Evaluate-3"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Evaluate</b><i> (<code>const mglData &amp;</code>idat, <code>const mglData &amp;</code>jdat, <code>const mglData &amp;</code>kdat, <code>bool</code> norm=<code>true</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fevaluate_005fi"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_evaluate_i</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> idat, <code>int</code> norm)</i></dt>
+<dt><a name="index-mgl_005fdata_005fevaluate_005fij"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_evaluate_ij</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> idat, <code>const HMDT</code> jdat, <code>int</code> norm)</i></dt>
+<dt><a name="index-mgl_005fdata_005fevaluate_005fijk"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_evaluate_ijk</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> idat, <code>const HMDT</code> jdat, <code>const HMDT</code> kdat, <code>int</code> norm)</i></dt>
+<dd><p>Get array which values is result of interpolation of original array for coordinates from other arrays. All dimensions must be the same for data <var>idat</var>, <var>jdat</var>, <var>kdat</var>. Coordinates from <var>idat</var>, <var>jdat</var>, <var>kdat</var> are supposed to be normalized in range [0,1] (if <var>norm</var>=<code>true</code>) or in ranges [0,nx], [0,ny], [0,nz] correspondingly.
+</p></dd></dl>
+
+<a name="index-Resize"></a>
+<dl>
+<dt><a name="index-Resize-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Resize</b><i> (<code>int</code> mx, <code>int</code> my=<code>1</code>, <code>int</code> mz=<code>1</code>, <code>float</code> x1=<code>0</code>, <code>float</code> x2=<code>1</code>, <code>float</code> y1=<code>0</code>, <code>float</code> y2=<code>1</code>, <code>float</code> z1=<code>0</code>, <code>float</code> z2=<code>1</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fresize"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_resize</b><i> (<code>const HMDT</code> dat, <code>int</code> mx, <code>int</code> my, <code>int</code> mz)</i></dt>
+<dt><a name="index-mgl_005fdata_005fresize_005fbox"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_resize_box</b><i> (<code>const HMDT</code> dat, <code>int</code> mx, <code>int</code> my, <code>int</code> mz, <code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2, <code>float</code> z1, <code>float</code> z2)</i></dt>
+<dd><p>Resizes the data to new size <var>mx</var>, <var>my</var>, <var>mz</var> from box (part) [<var>x1</var>,<var>x2</var>] x [<var>y1</var>,<var>y2</var>] x [<var>z1</var>,<var>z2</var>] of original array. Initially x,y,z coordinates are supposed to be in [0,1].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Change-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Make-another-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Interpolation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Change-data-1"></a>
+<h2 class="section">6.7 Change data</h2>
+
+<p>These functions change the data in some direction like differentiations, integrations and so on. The direction in which the change will applied is specified by the string parameter, which may contain &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo; characters for 1-st, 2-nd and 3-d dimension correspondengly.
+</p>
+<a name="index-CumSum"></a>
+<dl>
+<dt><a name="index-CumSum-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>CumSum</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fcumsum"></a><u>C function:</u> <code>void</code> <b>mgl_data_cumsum</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Cumulative summation of the data in given direction or directions.
+</p></dd></dl>
+
+<a name="index-Integral"></a>
+<dl>
+<dt><a name="index-Integral-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Integral</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fintegral"></a><u>C function:</u> <code>void</code> <b>mgl_data_integral</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Integrates (like cumulative summation) the data in given direction or directions.
+</p></dd></dl>
+
+<a name="index-Diff"></a>
+<dl>
+<dt><a name="index-Diff-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Diff</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiff"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_diff</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Differentiates the data in given direction or directions.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Diff-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Diff</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y)</i></dt>
+<dt><a name="index-Diff-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Diff</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiff_005fpar"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_diff_par</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> x, <code>const HMDT</code>y, <code>const HMDT</code>z)</i></dt>
+<dd><p>Differentiates the data specified parametrically in direction <var>x</var> with <var>y</var>, <var>z</var>=constant. Parametrical differentiation uses the formula (for 2D case): <em>da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j)</em> where <em>a_i=da/di, a_j=da/dj</em> denotes usual differentiation along 1st and 2nd dimensions. The similar formula is used for 3D case. Note, that you may change the order of arguments &ndash; for example, if you have 2D data a(i,j) which depend on coordinates {x(i,j), y(i,j)} then usual derivative along &lsquo;<samp>x</samp>&rsquo; will be <code>Diff(x,y);</code> and usual derivative along &lsquo;<samp>y</samp>&rsquo; will be <code>Diff(y,x);</code>.
+</p></dd></dl>
+
+
+<a name="index-Diff2"></a>
+<dl>
+<dt><a name="index-Diff2-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Diff2</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiff2"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_diff2</b><i> (<code>const char *</code>dir)</i></dt>
+<dd><p>Double-differentiates (like Laplace operator) the data in given direction.
+</p></dd></dl>
+
+<a name="index-SinFFT"></a>
+<dl>
+<dt><a name="index-SinFFT-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>SinFFT</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsinfft"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_sinfft</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Do Sine transform of the data in given direction or directions. The Sine transform is <em>\sum a_i \sin(k i)</em>.
+</p></dd></dl>
+
+<a name="index-CosFFT"></a>
+<dl>
+<dt><a name="index-CosFFT-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>CosFFT</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fcosfft"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_cosfft</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Do Cosine transform of the data in given direction or directions. The Cosine transform is <em>\sum a_i \cos(k i)</em>.
+</p></dd></dl>
+
+<a name="index-Hankel"></a>
+<dl>
+<dt><a name="index-Hankel-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Hankel</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fhankel"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_hankel</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Do Hankel transform of the data in given direction or directions. The Hankel transform is <em>\sum a_i J_0(k i)</em>.
+</p></dd></dl>
+
+
+<a name="index-Swap"></a>
+<dl>
+<dt><a name="index-Swap-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Swap</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fswap"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_swap</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Swaps the left and right part of the data in given direction (useful for Fourier spectrum).
+</p></dd></dl>
+
+<a name="index-Roll"></a>
+<dl>
+<dt><a name="index-Roll-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Roll</b><i> (<code>char</code> dir, <code>num</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005froll"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_roll</b><i> (<code>HMDT</code> dat, <code>char</code> dir, <code>num</code>)</i></dt>
+<dd><p>Rolls the data along direction <var>dir</var>. Resulting array will be out[i] = ini[(i+num)%nx] if <code>dir='x'</code>.
+</p></dd></dl>
+
+<a name="index-Mirror"></a>
+<dl>
+<dt><a name="index-Mirror-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Mirror</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmirror"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_mirror</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Mirror the left-to-right part of the data in given direction. Looks like change the value index <var>i</var>-&gt;<var>n-i</var>.
+</p></dd></dl>
+
+<a name="index-Sew"></a>
+<dl>
+<dt><a name="index-Sew-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Sew</b><i> (<code>const char *</code>dir, <code>float</code> da=<code>2*M_PI</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsew"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_sew</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir, <code>float</code> da)</i></dt>
+<dd><p>Remove value steps (like phase jumps after inverse trigonometric functions) with period <var>da</var> in given direction.
+</p></dd></dl>
+
+<a name="index-Smooth"></a>
+<dl>
+<dt><a name="index-Smooth-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Smooth</b><i> (<code>int</code> Type, <code>const char *</code>dir, <code>float</code> delta=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsmooth"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_smooth</b><i> (<code>HMDT</code> dat, <code>int</code> Type, <code>float</code> delt, <code>const char *</code>dirs)</i></dt>
+<dd><p>Smooths the data on specified direction or directions by method <var>Type</var>. Now 4 methods are supported: <code>SMOOTH_NONE</code> does nothing for <var>delta</var>=0 or approaches data to zero with the step <var>delta</var>, <code>SMOOTH_LINE_3</code> linear averaging by 3 points, <code>SMOOTH_LINE_5</code> linear averaging by 5 points, <code>SMOOTH_QUAD_5</code> quadratic averaging by 5 points. Parameter <var>delta</var> forbids to change values of array more than <var>delta</var> from the original ones. String <var>dirs</var> specifies the dimensions which will be smoothed. It may contain characters: &rsquo;x&rsquo; for 1st dimension, &rsquo;y&rsquo; for 2nd dimension, &rsquo;z&rsquo; for 3d dimension.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Smooth-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Smooth</b><i> (<code>const char *</code>dir)</i></dt>
+<dd><p>Smooths the data on specified direction(s). This is the same as <code>Smooth()</code> but argument <var>Type</var> is specified in string as &lsquo;<samp>0</samp>&rsquo; for <code>SMOOTH_NONE</code>, &lsquo;<samp>3</samp>&rsquo; for <code>SMOOTH_LINE_3</code>, &lsquo;<samp>5</samp>&rsquo; for <code>SMOOTH_LINE_5</code>. If string <var>dir</var> don&rsquo;t contain digits &lsquo;<samp>035</samp>&rsquo; then <var>Type</var>=<code>SMOOTH_QUAD_5</code> is used.
+</p></dd></dl>
+
+<a name="index-Envelop"></a>
+<dl>
+<dt><a name="index-Envelop-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Envelop</b><i> (<code>char</code> dir=<code>'x'</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fenvelop"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_envelop</b><i> (<code>HMDT</code> dat, <code>char</code> dir)</i></dt>
+<dd><p>Find envelop for data values along direction <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-Norm"></a>
+<dl>
+<dt><a name="index-Norm-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Norm</b><i> (<code>float</code> v1=<code>0</code>, <code>float</code> v2=<code>1</code>, <code>bool</code> sym=<code>false</code>, <code>int</code> dim=<code>0</code>)</i></dt>
+<dd><p>Normalizes the data to range [<var>v1</var>,<var>v2</var>]. If flag <var>sym</var>=<code>true</code> then symmetrical interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used. Modification will be applied only for slices &gt;=<var>dim</var>.
+</p></dd></dl>
+
+<a name="index-NormSl"></a>
+<dl>
+<dt><a name="index-NormSl-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>NormSl</b><i> (<code>float</code> v1=<code>0</code>, <code>float</code> v2=<code>1</code>, <code>char</code> dir=<code>'z'</code>, <code>bool</code> keep_en=<code>true</code>, <code>bool</code> sym=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fnorm_005fslice"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_norm_slice</b><i> (<code>HMDT</code> dat, <code>float</code> v1, <code>float</code> v2, <code>char</code> dir, <code>int</code> keep_en, <code>int</code> sym)</i></dt>
+<dd><p>Normalizes data slice-by-slice along direction <var>dir</var> the data in slices to range [<var>v1</var>,<var>v2</var>]. If flag <var>sym</var>=<code>true</code> then symmetrical interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used. If <var>keep_en</var> is set then maximal value of k-th slice will be limited by 
+<em>\sqrt\sum a_ij(k)/\sum a_ij(0)</em>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Interpolation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Change-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Informational-functions" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Interpolation-1"></a>
+<h2 class="section">6.8 Interpolation</h2>
+<a name="index-Spline"></a>
+<dl>
+<dt><a name="index-Spline-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Spline</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fspline"></a><u>C function:</u> <code>float</code> <b>mgl_data_spline</b><i> (<code>const HMDT</code> dat, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dd><p>Interpolates data by cubic spline to the given point <var>x</var> in [0...nx-1], <var>y</var> in [0...ny-1], <var>z</var> in [0...nz-1].
+</p></dd></dl>
+<a name="index-Spline1"></a>
+<dl>
+<dt><a name="index-Spline1-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Spline1</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fspline1"></a><u>C function:</u> <code>float</code> <b>mgl_data_spline1</b><i> (<code>const HMDT</code> dat, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dd><p>Interpolates data by cubic spline to the given point <var>x</var>, <var>y</var>, <var>z</var> which assumed to be normalized in range [0, 1].
+</p></dd></dl>
+<a name="index-Linear"></a>
+<dl>
+<dt><a name="index-Linear-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Linear</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005flinear"></a><u>C function:</u> <code>float</code> <b>mgl_data_linear</b><i> (<code>const HMDT</code> dat, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dd><p>Interpolates data by linear function to the given point <var>x</var> in [0...nx-1], <var>y</var> in [0...ny-1], <var>z</var> in [0...nz-1].
+</p></dd></dl>
+<a name="index-Linear1"></a>
+<dl>
+<dt><a name="index-Linear1-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Linear1</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005flinear1"></a><u>C function:</u> <code>float</code> <b>mgl_data_linear1</b><i> (<code>const HMDT</code> dat, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dd><p>Interpolates data by linear function to the given point <var>x</var>, <var>y</var>, <var>z</var> which assumed to be normalized in range [0, 1].
+</p></dd></dl>
+<a name="index-v"></a>
+<dl>
+<dt><a name="index-v-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>v</b><i> (<code>int</code> i, <code>int</code> j=<code>0</code>, <code>int</code> k=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fget_005fvalue-1"></a><u>C function:</u> <code>float</code> <b>mgl_data_get_value</b><i> (<code>const HMDT</code> dat, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Gets the value in specified cell of the data with border checking.
+</p></dd></dl>
+<a name="index-Spline5"></a>
+<dl>
+<dt><a name="index-Spline5-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Spline5</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> &amp;dx, <code>float</code> &amp;dy, <code>float</code> &amp;dz) <code>const</code></i></dt>
+<dd><p>Interpolate by 5-th order splain the data to given point <var>x</var>, <var>y</var>, <var>z</var> which normalized in range [0, 1] and evaluate its derivatives.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fdata_005fvalue"></a><u>C function:</u> <code>float *</code> <b>mgl_data_value</b><i> (<code>HMDT</code> dat, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Gets the pointer to data element.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fdata_005fdata"></a><u>C function:</u> <code>const float *</code> <b>mgl_data_data</b><i> (<code>const HMDT</code> dat)</i></dt>
+<dd><p>Gets the pointer to internal data array.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Informational-functions"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Interpolation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Operators" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Informational-functions-1"></a>
+<h2 class="section">6.9 Informational functions</h2>
+<a name="index-PrintInfo"></a>
+<dl>
+<dt><a name="index-PrintInfo-1"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>PrintInfo</b><i> (<code>char *</code>buf, <code>bool</code> all=<code>false</code>) <code>const</code></i></dt>
+<dd><p>Print information about the data (sizes and momentum) to string <var>buf</var>. Parameter <var>all</var> set to print most of information (if <code>true</code>) or just basic one like dimensions, maximal an minimal values.
+</p></dd></dl>
+<dl>
+<dt><a name="index-PrintInfo-2"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>PrintInfo</b><i> (<code>FILE *</code>fp) <code>const</code></i></dt>
+<dd><p>Print information about the data (sizes and momentum) to FILE (for example, stdout).
+</p></dd></dl>
+
+<a name="index-Maximal"></a>
+<dl>
+<dt><a name="index-Maximal-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Maximal</b><i> () <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmax"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_max</b><i> (<code>const HMDT</code> dat)</i></dt>
+<dd><p>Gets maximal value of the data.
+</p></dd></dl>
+<a name="index-Minimal"></a>
+<dl>
+<dt><a name="index-Minimal-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Minimal</b><i> () <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmin"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_min</b><i> (<code>HMDT</code> dat) <code>const</code></i></dt>
+<dd><p>Gets minimal value of the data.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Maximal-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Maximal</b><i> (<code>int</code> &amp;i, <code>int</code> &amp;j, <code>int</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmax_005fint"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_max_int</b><i> (<code>const HMDT</code> dat, <code>int</code> *i, <code>int</code> *j, <code>int</code> *k)</i></dt>
+<dd><p>Gets maximal value of the data and its position in the array to variables <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Minimal-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Minimal</b><i> (<code>int</code> &amp;i, <code>int</code> &amp;j, <code>int</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmin_005fint"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_min_int</b><i> (<code>const HMDT</code> dat, <code>int</code> *i, <code>int</code> *j, <code>int</code> *k)</i></dt>
+<dd><p>Gets minimal value of the data and its position in the array to variables <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Maximal-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Maximal</b><i> (<code>float</code> &amp;i, <code>float</code> &amp;j, <code>float</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmax_005freal"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_max_real</b><i> (<code>const HMDT</code> dat, <code>float</code> *x, <code>float</code> *y, <code>float</code> *z)</i></dt>
+<dd><p>Gets maximal value of the data and its approximated (interpolated) position to variables <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Minimal-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Minimal</b><i> (<code>float</code> &amp;i, <code>float</code> &amp;j, <code>float</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmin_005freal"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_min_real</b><i> (<code>const HMDT</code> dat, <code>float</code> *x, <code>float</code> *y, <code>float</code> *z)</i></dt>
+<dd><p>Gets minimal value of the data and its approximated (interpolated) position to variables <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+
+<a name="index-Momentum-2"></a>
+<dl>
+<dt><a name="index-Momentum-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Momentum</b><i> (<code>char</code> dir, <code>float</code> &amp;m, <code>float</code> &amp;w) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmomentum_005fmw"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_momentum_mw</b><i> (<code>const HMDT</code> dat, <code>char</code> dir, <code>float</code> *m, <code>float</code> *w)</i></dt>
+<dd><p>Gets zero-momentum (energy, <em>I=\sum a_i</em>) and write first momentum (median, <em>m = \sum \xi_i a_i/I</em>) and second momentum (width, <em>w^2 = \sum (\xi_i-m)^2 a_i/I</em>) to variables. Here <em>\xi</em> is corresponding coordinate if <var>dir</var> is &lsquo;<samp>'x'</samp>&rsquo;, &lsquo;<samp>'y'</samp>&rsquo; or &lsquo;<samp>'z'</samp>&rsquo;. Otherwise median is <em>m = \sum a_i/N</em>, width is <em>w^2 = \sum (a_i-m)^2/N</em>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Momentum-4"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>float</code> <b>Momentum</b><i> (<code>char</code> dir, <code>float</code> &amp;m, <code>float</code> &amp;w, <code>float</code> &amp;s, <code>float</code> &amp;k) <code>const</code></i></dt>
+<dd><p>Gets zero-momentum (energy, <em>I=\sum a_i</em>) and write first momentum (median, <em>m = \sum \xi_i a_i/I</em>), second momentum (width, <em>w^2 = \sum (\xi_i-m)^2 a_i/I</em>), third momentum (skewness, <em>s = \sum (\xi_i-m)^3 a_i/ I w^3</em>) and fourth momentum (kurtosis, <em>k = \sum (\xi_i-m)^4 a_i / 3 I w^4</em>) to variables. Here <em>\xi</em> is corresponding coordinate if <var>dir</var> is &lsquo;<samp>'x'</samp>&rsquo;, &lsquo;<samp>'y'</samp>&rsquo; or &lsquo;<samp>'z'</samp>&rsquo;. Otherwise median is <em>m = \sum a_i/N</em>, width is <em>w^2 = \sum (a_i-m)^2/N</em> and so on.
+</p></dd></dl>
+
+<a name="index-Find"></a>
+<dl>
+<dt><a name="index-Find-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Find</b><i> (<code>const char *</code>cond, <code>int</code> &amp;i, <code>int</code> &amp;j, <code>int</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005ffirst"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_first</b><i> (<code>const HMDT</code> dat, <code>const char *</code>cond, <code>int</code> *i, <code>int</code> *j, <code>int</code> *k)</i></dt>
+<dd><p>Find position (after specified in <var>i</var>, <var>j</var>, <var>k</var>) of first nonzero value of formula <var>cond</var>. Function return the data value at found position.
+</p></dd></dl>
+<a name="index-Last"></a>
+<dl>
+<dt><a name="index-Last-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Last</b><i> (<code>const char *</code>cond, <code>int</code> &amp;i, <code>int</code> &amp;j, <code>int</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005flast"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_last</b><i> (<code>const HMDT</code> dat, <code>const char *</code>cond, <code>int</code> *i, <code>int</code> *j, <code>int</code> *k)</i></dt>
+<dd><p>Find position (before specified in <var>i</var>, <var>j</var>, <var>k</var>) of last nonzero value of formula <var>cond</var>. Function return the data value at found position.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Find-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>int</code> <b>Find</b><i> (<code>const char *</code>cond, <code>char</code> dir, <code>int</code> i=<code>0</code>, <code>int</code> j=<code>0</code>, <code>int</code> k=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005ffind"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_find</b><i> (<code>const HMDT</code> dat, <code>const char *</code>cond, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Return position of first in direction <var>dir</var> nonzero value of formula <var>cond</var>. The search is started from point {i,j,k}.
+</p></dd></dl>
+<a name="index-FindAny"></a>
+<dl>
+<dt><a name="index-FindAny-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>bool</code> <b>FindAny</b><i> (<code>const char *</code>cond) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005ffind_005fany"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_find_any</b><i> (<code>const HMDT</code> dat, <code>const char *</code>cond)</i></dt>
+<dd><p>Determines if any nonzero value of formula in the data array.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Operators"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Informational-functions" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Global-functions" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Operators-1"></a>
+<h2 class="section">6.10 Operators</h2>
+
+<dl>
+<dt><a name="index-operator_003d"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dd><p>Copies data from other variable.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a_003d"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator*=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmul_005fdat"></a><u>C function:</u> <code>void</code> <b>mgl_data_mul_dat</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> d)</i></dt>
+<dd><p>Multiplies the data by the other one for each element.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f_003d"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator/=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiv_005fdat"></a><u>C function:</u> <code>void</code> <b>mgl_data_div_dat</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> d)</i></dt>
+<dd><p>Divides the data by the other one for each element.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002b_003d"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator+=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fadd_005fdat"></a><u>C function:</u> <code>void</code> <b>mgl_data_add_dat</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> d)</i></dt>
+<dd><p>Adds the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d_003d"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator-=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsub_005fdat"></a><u>C function:</u> <code>void</code> <b>mgl_data_sub_dat</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> d)</i></dt>
+<dd><p>Subtracts the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a_003d-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator*=</b><i> (<code>float</code> d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmul_005fnum"></a><u>C function:</u> <code>void</code> <b>mgl_data_mul_num</b><i> (<code>HMDT</code> dat, <code>float</code> d)</i></dt>
+<dd><p>Multiplies each element by the number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f_003d-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator/=</b><i> (<code>float</code> d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiv_005fnum"></a><u>C function:</u> <code>void</code> <b>mgl_data_div_num</b><i> (<code>HMDT</code> dat, <code>float</code> d)</i></dt>
+<dd><p>Divides each element by the number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002b_003d-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator+=</b><i> (<code>float</code> d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fadd_005fnum"></a><u>C function:</u> <code>void</code> <b>mgl_data_add_num</b><i> (<code>HMDT</code> dat, <code>float</code> d)</i></dt>
+<dd><p>Adds the number to each element.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d_003d-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator-=</b><i> (<code>float</code> d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsub_005fnum"></a><u>C function:</u> <code>void</code> <b>mgl_data_sub_num</b><i> (<code>HMDT</code> dat, <code>float</code> d)</i></dt>
+<dd><p>Subtracts the number to each element.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-operator_002b"></a><u>Library Function:</u> mglData <b>operator+</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Adds the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002b-1"></a><u>Library Function:</u> mglData <b>operator+</b><i> (<code>float</code> a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Adds the number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002b-2"></a><u>Library Function:</u> mglData <b>operator+</b><i> (<code>const mglData &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Adds the number.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002d"></a><u>Library Function:</u> mglData <b>operator-</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Subtracts the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d-1"></a><u>Library Function:</u> mglData <b>operator-</b><i> (<code>float</code> a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Subtracts from the number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d-2"></a><u>Library Function:</u> mglData <b>operator-</b><i> (<code>const mglData &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Subtracts the number.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002a"></a><u>Library Function:</u> mglData <b>operator*</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Multiplies by the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-1"></a><u>Library Function:</u> mglData <b>operator*</b><i> (<code>float</code> a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Multiplies by the number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-2"></a><u>Library Function:</u> mglData <b>operator*</b><i> (<code>const mglData &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Multiplies by the number.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002f"></a><u>Library Function:</u> mglData <b>operator/</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Divides by the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f-1"></a><u>Library Function:</u> mglData <b>operator/</b><i> (<code>const mglData &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Divides by the number.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Global-functions"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Operators" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Global-functions-1"></a>
+<h2 class="section">6.11 Global functions</h2>
+
+<p>These functions are not methods of <code>mglData</code> class. However it have additional functionality to handle data. So I put it in this chapter.
+</p>
+<dl>
+<dt><a name="index-mglTransform"></a><u>Global function:</u> <code>mglData</code> <b>mglTransform</b><i> (<code>const mglData &amp;</code>real, <code>const mglData &amp;</code>imag, <code>const char *</code>type)</i></dt>
+<dt><a name="index-mgl_005ftransform"></a><u>C function:</u> <code>HMDT</code> <b>mgl_transform</b><i> (<code>const HMDT</code> real, <code>const HMDT</code> imag, <code>const char *</code>type)</i></dt>
+<dd><p>Do integral transformation of complex data <var>real</var>, <var>imag</var> on specified direction. The order of transformations is specified in string <var>type</var>: first character for x-dimension, second one for y-dimension, third one for z-dimension. The possible character are: &lsquo;<samp>f</samp>&rsquo; is forward Fourier transformation, &lsquo;<samp>i</samp>&rsquo; is inverse Fourier transformation, &lsquo;<samp>s</samp>&rsquo; is Sine transform, &lsquo;<samp>c</samp>&rsquo; is Cosine transform, &lsquo;<samp>h</samp>&rsquo; is Hankel transform, &lsquo;<samp>n</samp>&rsquo; or &lsquo;<samp> </samp>&rsquo; is no transformation.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglTransformA"></a><u>Global function:</u> <code>mglData</code> <b>mglTransformA</b><i> <code>const mglData &amp;</code>ampl, <code>const mglData &amp;</code>phase, <code>const char *</code>type)</i></dt>
+<dt><a name="index-mgl_005ftransform_005fa"></a><u>C function:</u> <code>HMDT</code> <b>mgl_transform_a</b><i> <code>const HMDT</code> ampl, <code>const HMDT</code> phase, <code>const char *</code>type)</i></dt>
+<dd><p>The same as previous but with specified amplitude <var>ampl</var> and phase <var>phase</var> of complex numbers.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglSTFA"></a><u>Global function:</u> <code>mglData</code> <b>mglSTFA</b><i> (<code>const mglData &amp;</code>real, <code>const mglData &amp;</code>imag, <code>int</code> dn, <code>char</code> dir=<code>'x'</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fstfa"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_stfa</b><i> (<code>const HMDT</code> real, <code>const HMDT</code> imag, <code>int</code> dn,<code>char</code> dir)</i></dt>
+<dd><p>Short time Fourier transformation for real and imaginary parts. Output  is amplitude of partial Fourier of length <var>dn</var>. For example if <var>dir</var>=&lsquo;<samp>x</samp>&rsquo;, result will have size {int(nx/dn), dn, ny} and it will contain <em>res[i,j,k]=|\sum_d^dn exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn</em>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglPDE"></a><u>Global function:</u> <code>mglData</code> <b>mglPDE</b><i> (<code>const char *</code>ham, <code>const mglData &amp;</code>ini_re, <code>const mglData &amp;</code>ini_im, <code>mglPoint</code> Min, <code>mglPoint</code> Max, <code>float</code> dz=<code>0.1</code>, <code>float</code> k0=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005fpde_005fsolve"></a><u>C function:</u> <code>HMDT</code> <b>mgl_pde_solve</b><i> (<code>HMGL</code> gr, <code>const char *</code>ham, <code>const HMDT</code> ini_re, <code>const HMDT</code> ini_im, <code>float</code> dz, <code>float</code> k0)</i></dt>
+<dd><p>Solves equation du/dz = i*k0*<var>ham</var>(p,q,x,y,z,|u|)[u], where p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators. Parameters <var>ini_re</var>, <var>ini_im</var> specify real and imaginary part of initial field distribution. Parameters <var>Min</var>, <var>Max</var> set the bounding box for the solution. Note, that really this ranges are increased by factor 3/2 for purpose of reducing reflection from boundaries. Parameter <var>dz</var> set the step along evolutionary coordinate z. At this moment, simplified form of function <var>ham</var> is supported &ndash; all &ldquo;mixed&rdquo; terms (like &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) are excluded. For example, in 2D case this function is effectively <em>ham = f(p,z) + g(x,z,u)</em>. However commutable combinations (like &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy) are allowed. Here variable &lsquo;<samp>u</samp>&rsquo; is used for field amplitude |u|. This allow one solve nonlinear problems &ndash; for example, for nonlinear Shrodinger equation you may set <code>ham=&quot;p^2 + q^2 - u^2&quot;</code>. You may specify imaginary part for wave absorption, like <code>ham = &quot;p^2 + i*x*(x&gt;0)&quot;</code>, but only if dependence on variable &lsquo;<samp>i</samp>&rsquo; is linear (i.e. <em>ham = hre+i*him</em>). See section <a href="mathgl_en_9.html#PDE-sample">PDE sample</a>, for sample code and picture.  See section <a href="mathgl_en_9.html#PDE-sample">PDE sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglRay"></a><u>Global function:</u> <code>mglData</code> <b>mglRay</b><i> (<code>const char *</code>ham, <code>mglPoint</code> r0, <code>mglPoint</code> p0, <code>float</code> dt=<code>0.1</code>, <code>float</code> tmax=<code>10</code>)</i></dt>
+<dt><a name="index-mgl_005fray_005ftrace"></a><u>C function:</u> <code>HMDT</code> <b>mgl_ray_trace</b><i> (<code>const char *</code>ham, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> px, <code>float</code> py, <code>float</code> pz, <code>float</code> dt, <code>float</code> tmax)</i></dt>
+<dd><p>Solves GO ray equation like dr/dt = d <var>ham</var>/dp, dp/dt = -d <var>ham</var>/dr. This is Hamiltonian equations for particle trajectory in 3D case. Here <var>ham</var> is Hamiltonian which may depend on coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, momentums &lsquo;<samp>p</samp>&rsquo;=px, &lsquo;<samp>q</samp>&rsquo;=py, &lsquo;<samp>v</samp>&rsquo;=pz and time &lsquo;<samp>t</samp>&rsquo;: <em>ham = H(x,y,z,p,q,v,t)</em>. The starting point (at <code>t=0</code>) is defined by variables <var>r0</var>, <var>p0</var>. Parameters <var>dt</var> and <var>tmax</var> specify the integration step and maximal time for ray tracing. Result is array of {x,y,z,p,q,v,t} with dimensions {7 * int(<var>tmax</var>/<var>dt</var>+1) }. See section <a href="mathgl_en_9.html#Beam-tracing-sample">Beam tracing sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglQO2d"></a><u>Global function:</u> <code>mglData</code> <b>mglQO2d</b><i> (<code>const char *</code>ham, <code>const mglData &amp;</code>ini_re, <code>const mglData &amp;</code>ini_im, <code>const mglData &amp;</code>ray, <code>float</code> r=<code>1</code>, <code>float</code> k0=<code>100</code>, <code>mglData *</code>xx=<code>0</code>, <code>mglData *</code>yy=<code>0</code>, <code>bool</code> UseR=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fqo2d_005fsolve"></a><u>C function:</u> <code>HMDT</code> <b>mgl_qo2d_solve</b><i> (<code>const char *</code>ham, <code>const HMDT</code> ini_re, <code>const HMDT</code> ini_im, <code>const HMDT</code> ray, <code>float</code> r, <code>float</code> k0, <code>HMDT</code> xx, <code>HMDT</code> yy)</i></dt>
+<dd><p>Solves equation du/dt = i*k0*<var>ham</var>(p,q,x,y,|u|)[u], where p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators (see <code>mglPDE()</code> for details). Parameters <var>ini_re</var>, <var>ini_im</var> specify real and imaginary part of initial field distribution. Parameters <var>ray</var> set the reference ray, i.e. the ray around which the accompanied coordinate system will be maked. You may use, for example, the array created by <code>mglRay()</code> function. Note, that the reference ray <strong>must be</strong> smooth enough to make accompanied coodrinates unambiguity. Otherwise errors in the solution may appear. If <var>xx</var> and <var>yy</var> are non-zero then Cartesian coordinates for each point will be written into them. See also <code>mglPDE()</code>. See section <a href="mathgl_en_9.html#Beam-tracing-sample">Beam tracing sample</a>, for sample code and picture. 
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglJacobian"></a><u>Global function:</u> <code>mglData</code> <b>mglJacobian</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y)</i></dt>
+<dt><a name="index-mglJacobian-1"></a><u>Global function:</u> <code>mglData</code> <b>mglJacobian</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z)</i></dt>
+<dt><a name="index-mgl_005fjacobian_005f2d"></a><u>C function:</u> <code>HMDT</code> <b>mgl_jacobian_2d</b><i> (<code>const HMDT</code> x, <code>const HMDT</code> y)</i></dt>
+<dt><a name="index-mgl_005fjacobian_005f3d"></a><u>C function:</u> <code>HMDT</code> <b>mgl_jacobian_3d</b><i> (<code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z)</i></dt>
+<dd><p>Computates the Jacobian for transformation {i,j,k} to {<var>x</var>,<var>y</var>,<var>z</var>} where initial coordinates  {i,j,k} are data indexes normalized in range [0,1]. The Jacobian is determined by formula det||<em>dr_\alpha/d\xi_\beta</em>|| where <em>r</em>={<var>x</var>,<var>y</var>,<var>z</var>} and <em>\xi</em>={i,j,k}. All dimensions must be the same for all data arrays. Data must be 3D if all 3 arrays {<var>x</var>,<var>y</var>,<var>z</var>} are specified or 2D if only 2 arrays {<var>x</var>,<var>y</var>} are specified.
+</p></dd></dl>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_7.html b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_7.html
new file mode 100644
index 0000000..e0276d6
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_7.html
@@ -0,0 +1,797 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: 7. Other classes</title>
+
+<meta name="description" content="MathGL 1.11: 7. Other classes">
+<meta name="keywords" content="MathGL 1.11: 7. Other classes">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Other-classes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_6.html#Global-functions" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglParse-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_6.html#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+
+<a name="Other-classes-1"></a>
+<h1 class="chapter">7. Other classes</h1>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#mglParse-class">7.1 mglParse class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglFormula-class">7.2 mglFormula class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglFont-class">7.3 mglFont class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglColor-class">7.4 mglColor class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglPoint-class">7.5 mglPoint class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglVar-class">7.6 mglVar class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglCommand-class">7.7 mglCommand class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglArg-class">7.8 mglArg class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="mglParse-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-classes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglFormula-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglParse-class-1"></a>
+<h2 class="section">7.1 mglParse class</h2>
+<a name="index-mglParse"></a>
+
+<p>Class for parsing and executing MGL script. This class is defined in <code>#include &lt;mgl/mgl_parse.h&gt;</code>.
+</p>
+<p>Class mglParse is the interpreter for MGL scripts (see section <a href="mathgl_en_8.html#MGL-interface">MGL language</a>). The main function of mglParse class is <code>Parse()</code>. Exactly this function parses and executes the script string-by-string. Also there are two subservient functions for the finding and creation of a variable. These functions can be useful for displaying values of variables (arrays) in some external program (in window, for example). The variable <var>DataList</var> contains full list of variables in script. Flag <var>AllowSetSize</var> allows one to prevent changing the size of the  picture inside the script (forbids the MGL command <code>setsize</code>). 
+</p>
+<p>Note an important feature &ndash; if user defines function <var>func</var> in variable then it will be called before the destroying of this variable (see section <a href="#mglVar-class">mglVar class</a>).
+</p>
+<dl>
+<dt><a name="index-mglParse-1"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code></code> <b>mglParse</b><i> (<code>bool</code> setsize=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fcreate_005fparser"></a><u>C function:</u> <code>HMPR</code> <b>mgl_create_parser</b><i> ()</i></dt>
+<dd><p>Constructor initializes all values with zero and set <var>AllowSetSize</var> value.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-_007emglParse"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code></code> <b>~mglParse</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fdelete_005fparser"></a><u>C function:</u> <code>void</code> <b>mgl_delete_parser</b><i> (<code>HMPR</code> p)</i></dt>
+<dd><p>Destructor delete parser
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Parse"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>int</code> <b>Parse</b><i> (<code>mglGraph *</code>gr, <code>const char *</code>str, <code>long</code> pos=<code>0</code>)</i></dt>
+<dt><a name="index-Parse-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>int</code> <b>Parse</b><i> (<code>mglGraph *</code>gr, <code>const wchar_t *</code>str, <code>long</code> pos=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fparse"></a><u>C function:</u> <code>int</code> <b>mgl_parse</b><i> (<code>HMGL</code> gr, <code>HMPR</code> p, <code>const char *</code>str, <code>int</code> pos)</i></dt>
+<dt><a name="index-mgl_005fparsew"></a><u>C function:</u> <code>int</code> <b>mgl_parsew</b><i> (<code>HMGL</code> gr, <code>HMPR</code> p, <code>const wchar_t *</code>str, <code>int</code> pos)</i></dt>
+<dd><p>Main function in the class. It parses the string <var>str</var> and executes it by  using <var>gr</var> as a graphics plotter. Returns the value depending on an error presence in the string <var>str</var>: 0 &ndash; no error, 1 &ndash; wrong command argument(s), 2 &ndash; unknown command, 3 &ndash; string is too long. Optional argument <var>pos</var> allows to save the string position in the document (or file) for using <code>for|next</code> command.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Export-2"></a><u>Method on <code>mglParse</code> (C++):</u> <code>int</code> <b>Export</b><i> (<code>wchar_t</code> cpp_out<code>[1024]</code>, <code>mglGraph *</code>gr, <code>const wchar_t *</code>str)</i></dt>
+<dd><p>Function parses the string <var>str</var>, executes it by  using <var>gr</var> as a graphics plotter and exports it to C++ code. Returns the value depending on an error presence in the string <var>str</var>: 0 &ndash; no error, 1 &ndash; wrong command argument(s), 2 &ndash; unknown command, 3 &ndash; string is too long. Output C++ text will be placed in <var>out</var> variable. If string <var>str</var> have options (defined after &rsquo;;&rsquo; symbol) then the corresponding C++ texts are placed in variables <var>op1</var>, <var>op2</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Execute"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>Execute</b><i> (<code>mglGraph *</code>gr, <code>FILE *</code>fp, <code>bool</code> print=<code>false</code>)</i></dt>
+<dd><p>Function parse and execute line-by-line MGL script in file <var>fp</var>. If <var>print</var>=<code>true</code> then all warnings and information will be printed in stdout. Also this function support the <code>for|next</code> MGL commands.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Execute-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>Execute</b><i> (<code>mglGraph *</code>gr, <code>int</code> num, <code>const wchar_t **</code>text, <code>void (*</code> error <code>)(int line, int kind)=NULL</code>)</i></dt>
+<dd><p>Function parse and execute line-by-line MGL script in array <var>text</var>. If <var>error</var> is not <code>NULL</code> then this function will be called for all warnings, information and other messages. Also this function support the <code>for|next</code> MGL commands.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Execute-2"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>void</code> <b>Execute</b><i> (<code>mglGraph *</code>gr, <code>const char *</code>text, <code>void (*</code> error <code>)(int line, int kind)=NULL</code>)</i></dt>
+<dt><a name="index-Execute-3"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>Execute</b><i> (<code>mglGraph *</code>gr, <code>const wchar_t *</code>text, <code>void (*</code> error <code>)(int line, int kind)=NULL</code>)</i></dt>
+<dt><a name="index-mgl_005fparse_005ftext"></a><u>C function:</u> <code>void</code> <b>mgl_parse_text</b><i> (<code>HMGL</code> gr, <code>HMPR</code> p, <code>const char *</code>text)</i></dt>
+<dt><a name="index-mgl_005fparsew_005ftext"></a><u>C function:</u> <code>void</code> <b>mgl_parsew_text</b><i> (<code>HMGL</code> gr, <code>HMPR</code> p, <code>const wchar_t *</code>text)</i></dt>
+<dd><p>Function parse and execute line-by-line MGL script in string <var>text</var>. Lines are separated by &lsquo;<samp>\n</samp>&rsquo; symbol as usual. If <var>error</var> is not <code>NULL</code> then this function will be called for all warnings, information and other messages. Also this function support the <code>for|next</code> MGL commands.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AddParam"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>bool</code> <b>AddParam</b><i> (<code>int</code> n, <code>const char *</code>str, <code>bool</code> isstr=<code>true</code>)</i></dt>
+<dt><a name="index-AddParam-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>bool</code> <b>AddParam</b><i> (<code>int</code> n, <code>const wchar_t *</code>str, <code>bool</code> isstr=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fadd_005fparam"></a><u>C function:</u> <code>void</code> <b>mgl_add_param</b><i> (<code>HMPR</code> p, <code>int</code> id, <code>const char *</code>val)</i></dt>
+<dt><a name="index-mgl_005fadd_005fparamw"></a><u>C function:</u> <code>void</code> <b>mgl_add_paramw</b><i> (<code>HMPR</code> p, <code>int</code> id, <code>const wchar_t *</code>val)</i></dt>
+<dd><p>Function set the value of <var>n</var>-th parameter as string <var>str</var> (<var>n</var>=0, 1 ... 9). It return <code>true</code> for success.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FindVar"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>mglVar *</code> <b>FindVar</b><i> (<code>const char *</code>name)</i></dt>
+<dt><a name="index-FindVar-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>mglVar *</code> <b>FindVar</b><i> (<code>const wchar_t *</code>name)</i></dt>
+<dt><a name="index-mgl_005ffind_005fvar"></a><u>C function:</u> <code>const HMDT</code> <b>mgl_find_var</b><i>  (<code>HMPR</code> p, <code>const char *</code>name)</i></dt>
+<dd><p>Function returns the pointer to variable with name <var>name</var> or zero if variable is absent. Use this function to put external data array to the script or get the data from the script.
+</p></dd></dl>
+<dl>
+<dt><a name="index-AddVar"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>mglVar *</code> <b>AddVar</b><i> (<code>const char *</code>name)</i></dt>
+<dt><a name="index-AddVar-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>mglVar *</code> <b>AddVar</b><i> (<code>const wchar_t *</code>name)</i></dt>
+<dt><a name="index-mgl_005fadd_005fvar"></a><u>C function:</u> <code>const HMDT</code> <b>mgl_add_var</b><i> (<code>HMPR</code> p, <code>const char *</code>name)</i></dt>
+<dd><p>Function returns the pointer to variable with name <var>name</var>. If variable is absent then new variable is created with name <var>name</var>. Use this function to put external data array to the script or get the data from the script.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DeleteVar"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>DeleteVar</b><i> (<code>mglVar *</code>v)</i></dt>
+<dt><a name="index-DeleteVar-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>DeleteVar</b><i> (<code>const char *</code>name)</i></dt>
+<dt><a name="index-DeleteVar-2"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>DeleteVar</b><i> (<code>const wchar_t *</code>name)</i></dt>
+<dd><p>Function delete the variable specified by its name or by its pointer.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-RestoreOnce"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>inline void</code> <b>RestoreOnce</b><i> ()</i></dt>
+<dt><a name="index-mgl_005frestore_005fonce"></a><u>C function:</u> <code>void</code> <b>mgl_restore_once</b><i> (<code>HMPR</code> p)</i></dt>
+<dd><p>Restore Once flag.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AllowSetSize"></a><u>Method on <code>mglParse</code> (Python):</u> <code>void</code> <b>AllowSetSize</b><i> (<code>bool</code> a)</i></dt>
+<dt><a name="index-mgl_005fparser_005fallow_005fsetsize"></a><u>C function:</u> <code>void</code> <b>mgl_parser_allow_setsize</b><i> (<code>HMPR</code> p, <code>int</code> a)</i></dt>
+<dd><p>Allow to parse &rsquo;setsize&rsquo; command or not.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AddCommand"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>AddCommand</b><i> (<code>mglCommand *</code>cmd, <code>int</code> num=<code>0</code>)</i></dt>
+<dd><p>Add <var>num</var> commands <var>cmd</var> to the defined MGL commands list. Parameter <var>cmd</var> is array of <code>mglCommand</code> structures. If parameter <var>num</var>=0 then it will be determined automatically. At this, array <var>cmd</var> <strong>must have</strong> last element with <code>name=L&quot;&quot;</code>
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DataList-of-mglParse"></a><u>Option of mglParse:</u> <code>mglVar *</code> <b>DataList</b></dt>
+<dd><p>List of variables defined in script.
+</p></dd></dl>
+<dl>
+<dt><a name="index-AllowSetSize-of-mglParse"></a><u>Option of mglParse:</u> <code>bool</code> <b>AllowSetSize</b></dt>
+<dd><p>Flag which allows/forbids the command <code>setsize</code> in scripts.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Stop-of-mglParse"></a><u>Option of mglParse:</u> <code>bool</code> <b>Stop</b></dt>
+<dd><p>Flag which interrupt script execution.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Cmd-of-mglParse"></a><u>Option of mglParse:</u> <code>mglCommand *</code> <b>Cmd</b></dt>
+<dd><p>Table (array) of recognizable MGL commands (can be changed by user). Items in the table <strong>MUST be sorted</strong> by <var>name</var> field !!! Last items must have empty name (i.e. <code>L&quot;&quot;</code>).
+</p></dd></dl>
+<dl>
+<dt><a name="index-op1-of-mglParse"></a><u>Option of mglParse:</u> <code>wchar_t *</code> <b>op1</b></dt>
+<dd><p>These strings contain command options and should be placed before the command. These variables are used for MGL-&gt;C++ (or other language) conversion.
+</p></dd></dl>
+<dl>
+<dt><a name="index-op2-of-mglParse"></a><u>Option of mglParse:</u> <code>wchar_t *</code> <b>op2</b></dt>
+<dd><p>These strings contain command options and should be placed after the command. These variables are used for MGL-&gt;C++ (or other language) conversion.
+</p></dd></dl>
+
+<hr size="6">
+<a name="mglFormula-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglParse-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglFont-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglFormula-class-1"></a>
+<h2 class="section">7.2 mglFormula class</h2>
+<a name="index-mglFormula"></a>
+
+<p>Class for evaluating of formula specified by the string. This class is defined in <code>#include &lt;mgl/mgl_eval.h&gt;</code>.
+</p>
+<p>It is the fast variant of formula evaluation. At creation it will be recognized and compiled to tree-like internal code. At evaluation stage only fast calculations are performed. There is no difference between lower or upper case in formulas. If argument value lie outside the range of function definition then function returns NaN. See section <a href="mathgl_en_1.html#Textual-formulas">Textual formulas</a>.
+</p>
+<dl>
+<dt><a name="index-mglFormula-on-mglFormula"></a><u>Method on mglFormula:</u> <code></code> <b>mglFormula</b><i> (<code>const char *</code>str)</i></dt>
+<dd><p>Parses the formula <var>str</var> and creates formula-tree. Constructor recursively parses the formula and creates a tree-like structure containing functions and operators for fast further evaluating by <code>Calc()</code> or <code>CalcD()</code> functions.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Calc-on-mglFormula"></a><u>Method on mglFormula:</u> <code>float</code> <b>Calc</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>, <code>float</code> u=<code>0</code>)</i></dt>
+<dd><p>Evaluates the formula for <code>'x','r'</code>=<var>x</var>, <code>'y','n'</code>=<var>y</var>, <code>'z','t'</code>=<var>z</var>, <code>'a','u'</code>=<var>u</var>. Error code (if one) can be obtained from function <code>GetError()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Calc-on-mglFormula-1"></a><u>Method on mglFormula:</u> <code>float</code> <b>Calc</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> u, <code>float</code> v, <code>float</code> w)</i></dt>
+<dd><p>Evaluates the formula for <code>'x'</code>=<var>x</var>, <code>'y'</code>=<var>y</var>, <code>'z'</code>=<var>z</var>, <code>'u'</code>=<var>u</var>, <code>'v'</code>=<var>v</var>, <code>'w'</code>=<var>w</var>. Error code (if one) can be obtained from function <code>GetError()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Calc-on-mglFormula-2"></a><u>Method on mglFormula:</u> <code>float</code> <b>Calc</b><i> (<code>float</code> var<code>['z'-'a'+1]</code>)</i></dt>
+<dd><p>Evaluates the formula for variables in array <var>var</var>[&rsquo;z&rsquo;-&rsquo;a&rsquo;]. Error code (if one) can be obtained from function <code>GetError()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-CalcD-on-mglFormula"></a><u>Method on mglFormula:</u> <code>float</code> <b>CalcD</b><i> (<code>float</code> var<code>['z'-'a'+1]</code>, <code>char</code> diff)</i></dt>
+<dd><p>Evaluates the formula derivation respect to <var>diff</var> for variables in array <var>var</var>[&rsquo;z&rsquo;-&rsquo;a&rsquo;]. Error code (if one) can be obtained from function <code>GetError()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-GetError-on-mglFormula"></a><u>Method on mglFormula:</u> <code>int</code> <b>GetError</b><i> ()</i></dt>
+<dd><p>Returns error code: <code>0</code> means no error; <code>ERR_LOG</code> means error in logarithm or power functions; <code>ERR_ARC</code> means error in inverse functions (like asin); <code>ERR_SQRT</code> means error in sqrt function.
+</p></dd></dl>
+
+<hr size="6">
+<a name="mglFont-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglFormula-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Format-of-font-files" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglFont-class-1"></a>
+<h2 class="section">7.3 mglFont class</h2>
+<a name="index-mglFont"></a>
+
+<p>Class for working with font: load, get metrics, parse and draw strings. This class is defined in <code>#include &lt;mgl/mgl_font.h&gt;</code>.
+</p>
+<p>The class is based on loading and drawing of vector Hershey font. There are two styles of specifying of the font type and aligning: by integer parameters or by string.
+</p>
+<p>The string can be any combination of characters: &lsquo;<samp>rbiLCRwou</samp>&rsquo;. The font types are: &lsquo;<samp>r</samp>&rsquo; &ndash; roman font, &lsquo;<samp>i</samp>&rsquo; &ndash; italic style, &lsquo;<samp>b</samp>&rsquo; &ndash; bold style. By default roman font (that is &lsquo;<samp></samp>&rsquo; or &lsquo;<samp>r</samp>&rsquo;) is used. The align types are: &lsquo;<samp>L</samp>&rsquo; &ndash; align left (default), &lsquo;<samp>C</samp>&rsquo; &ndash; align center, &lsquo;<samp>R</samp>&rsquo; &ndash; align right. Additional font effects are: &lsquo;<samp>w</samp>&rsquo; &ndash; wire, &lsquo;<samp>o</samp>&rsquo; &ndash; over-lined, &lsquo;<samp>u</samp>&rsquo; &ndash; underlined. Parsing of the string to special (TeX-like) commands will be done if variable <var>parse</var> is true (it&rsquo;s default). See also see section <a href="mathgl_en_1.html#Font-styles">Font styles</a>.
+</p>
+<p>The over way of font and alignment setting is the using of the integer constant. Integer font Id can be one of predefined constants: <code>MGL_FONT_ITAL, MGL_FONT_BOLD, MGL_FONT_BOLD_ITAL = MGL_FONT_ITAL+MGL_FONT_BOLD</code>. Default font is <code>MGL_FONT_ROMAN</code>. Also there are flags <code>MGL_FONT_ULINE, MGL_FONT_OLINE, MGL_FONT_WIRE</code> for additional font effects. Align parameter controls the text alignment: 0 &ndash; align left, 1 &ndash; align center, 2 &ndash; align right.
+</p>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Format-of-font-files">7.3.1 Format of font files</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+
+<dl>
+<dt><a name="index-mglFont-on-mglFont"></a><u>Method on mglFont:</u> <code></code> <b>mglFont</b><i> (<code>const char *</code>name=<code>MGL_DEF_FONT_NAME</code>, <code>const char *</code>path=<code>NULL</code>)</i></dt>
+<dd><p>Initialize the font and load data from file <var>name</var> (default name is &quot;STIX&quot; for Linux and MacOS) or if  <var>name</var>=<code>NULL</code> limited data from memory (default for Windows).
+</p></dd></dl>
+<dl>
+<dt><a name="index-Load-on-mglFont"></a><u>Method on mglFont:</u> <code>bool</code> <b>Load</b><i> (<code>const char *</code> base, <code>const char *</code>path=<code>NULL</code>)</i></dt>
+<dd><p>Load font from file <var>path</var>/<var>base</var> into the memory. The font may contain 4 files: <var>base</var>.vfm, <var>base</var>_b.vfm, <var>base</var>_i.vfm, <var>base</var>_bi.vfm. Appendix contain detailed description of font format.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Restore-on-mglFont"></a><u>Method on mglFont:</u> <code>void</code> <b>Restore</b><i> ()</i></dt>
+<dd><p>Restore default font.
+</p></dd></dl>
+<dl>
+<dt><a name="index-_0028-on-mglFont"></a><u>Method on mglFont:</u> <code>void</code> <b>(</b><i><code>mglFont *</code> fnt)</i></dt>
+<dd><p>Copy data from other font instance.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Clear-on-mglFont"></a><u>Method on mglFont:</u> <code>void</code> <b>Clear</b><i> ()</i></dt>
+<dd><p>Clear memory by deleting the loaded font.
+</p></dd></dl>
+<dl>
+<dt><a name="index-GetNumGlyph-on-mglFont"></a><u>Method on mglFont:</u> <code>inline unsigned</code> <b>GetNumGlyph</b><i> ()</i></dt>
+<dd><p>Return the number of glyphs in the font.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Ready-on-mglFont"></a><u>Method on mglFont:</u> <code>inline bool</code> <b>Ready</b><i> ()</i></dt>
+<dd><p>Return true if font is loaded and ready for use.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-Height-on-mglFont"></a><u>Method on mglFont:</u> <code>float</code> <b>Height</b><i> (<code>int</code> font)</i></dt>
+<dd><p>Gets height of text for font specified by integer constant.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Puts-on-mglFont"></a><u>Method on mglFont:</u> <code>float</code> <b>Puts</b><i> (<code>const char *</code>str, <code>int</code> font=<code>0</code>, <code>int</code> align=<code>0</code>)</i></dt>
+<dd><p>Prints 8-bit text string for font specified by integer constant.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Width-on-mglFont"></a><u>Method on mglFont:</u> <code>float</code> <b>Width</b><i> (<code>const char *</code>str, <code>int</code> font=<code>0</code>)</i></dt>
+<dd><p>Gets width of 8-bit text string for font specified by integer constant.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Puts-on-mglFont-1"></a><u>Method on mglFont:</u> <code>float</code> <b>Puts</b><i> (<code>const wchar_t *</code>str, <code>int</code> font=<code>0</code>, <code>int</code> align=<code>0</code>)</i></dt>
+<dd><p>Prints Unicode text string for font specified by integer constant.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Width-on-mglFont-1"></a><u>Method on mglFont:</u> <code>float</code> <b>Width</b><i> (<code>const wchar_t *</code>str, <code>int</code> font=<code>0</code>)</i></dt>
+<dd><p>Gets width of Unicode text string for font specified by integer constant.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-Height-on-mglFont-1"></a><u>Method on mglFont:</u> <code>float</code> <b>Height</b><i> (<code>const char *</code>how)</i></dt>
+<dd><p>Gets height of text for font specified by string.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Puts-on-mglFont-2"></a><u>Method on mglFont:</u> <code>float</code> <b>Puts</b><i> (<code>const char *</code>str, <code>const char *</code>how)</i></dt>
+<dd><p>Prints 8-bit text string for font specified by string.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Width-on-mglFont-2"></a><u>Method on mglFont:</u> <code>float</code> <b>Width</b><i> (<code>const char *</code>str, <code>const char *</code>how)</i></dt>
+<dd><p>Gets width of 8-bit text string for font specified by string.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Puts-on-mglFont-3"></a><u>Method on mglFont:</u> <code>float</code> <b>Puts</b><i> (<code>const wchar_t *</code>str, <code>const char *</code>how)</i></dt>
+<dd><p>Prints Unicode text string for font specified by string.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Width-on-mglFont-3"></a><u>Method on mglFont:</u> <code>float</code> <b>Width</b><i> (<code>const wchar_t *</code>str, <code>const char *</code>how)</i></dt>
+<dd><p>Gets width of Unicode text string for font specified by string.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-gr-of-mglFont"></a><u>Parameter of mglFont:</u> <code>mglGraph *</code> <b>gr</b></dt>
+<dd><p>Instance of mglGraph class which is used for character drawing.
+</p></dd></dl>
+<dl>
+<dt><a name="index-parse-of-mglFont"></a><u>Parameter of mglFont:</u> <code>bool</code> <b>parse</b></dt>
+<dd><p>Flag for switching on/off the parsing of TeX commands. Default value is <code>true</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Format-of-font-files"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglFont-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglColor-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglFont-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Format-of-font-files-1"></a>
+<h3 class="subsection">7.3.1 Format of font files</h3>
+
+<p>Starting from v.1.6 the MathGL library uses new font files. The font is defined in 4 files with suffixes &lsquo;<samp>*.vfm</samp>&rsquo;, &lsquo;<samp>*_b.vfm</samp>&rsquo;, &lsquo;<samp>*_i.vfm</samp>&rsquo;, &lsquo;<samp>*_bi.vfm</samp>&rsquo;. These files are text files containing the data for roman font, bold font, italic font and bold italic font. The files (or some symbols in the files) for bold, italic or bold italic fonts can be absent. In this case the roman glyph will be used for them. By analogy, if the bold italic font is absent but the bold font is present then bold glyph will be used for bold italic. You may create these font files by yourself from *.ttf, *.otf files with the help of program <code>font_tools</code>. This program can be found at MathGL home site.
+</p>
+<p>The format of font files (*.vfm &ndash; vector font for MathGL) is the following.
+</p><ol>
+<li>
+First string contains human readable comment and is always ignored.
+</li><li>
+Second string contains 3 numbers, delimited by space or tabulation. The order of numbers is the following: <var>numg</var> &ndash; the number of glyphs in the file (integer), <var>fact</var> &ndash; the factor for glyph sizing (float), <var>size</var> &ndash; the size of buffer for glyph description (integer).
+</li><li>
+After it <var>numg</var>-th strings with glyphs description are placed. Each string contains 6 positive numbers, delimited by space of tabulation. The order of numbers is the following: Unicode glyph ID, glyph width, number of lines in glyph, position of lines coordinates in the buffer (length is 2*number of lines), number of triangles in glyph, position of triangles coordinates in the buffer (length is 6*number of triangles).
+</li><li>
+The end of file contains the buffer with point coordinates at lines or triangles vertexes. The size of buffer (the number of integer) is <var>size</var>.
+</li></ol>
+
+<p>Each font file can be compressed by gzip.
+</p>
+<p>Note: the closing contour line  is done automatically (so the last segment may be absent). For starting new contour use a point with coordinates <code>{0x3fff, 0x3fff}</code>.
+</p>
+
+<hr size="6">
+<a name="mglColor-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Format-of-font-files" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglPoint-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglColor-class-1"></a>
+<h2 class="section">7.4 mglColor class</h2>
+<a name="index-mglColor"></a>
+
+<p>Structure for working with colors. This structure is defined in <code>#include &lt;mgl/mgl.h&gt;</code>.
+</p>
+<p>There are two ways to set the color in MathGL. First one is using of float values of red, green and blue channels for precise color definition. The second way is the using of character id. There are a set of characters specifying frequently used colors. Normally capital letter gives more dark color than lowercase one. See section <a href="mathgl_en_1.html#Line-styles">Line styles</a>.
+</p>
+<dl>
+<dt><a name="index-r_002c-g_002c-b-of-mglVar"></a><u>Parameter of mglVar:</u> <code>float</code> <b>r, g, b</b></dt>
+<dd><p>Reg, green and blue component of color.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglColor-on-mglColor"></a><u>Method on mglColor:</u> <code></code> <b>mglColor</b><i> (<code>float</code> R, <code>float</code> G, <code>float</code> B)</i></dt>
+<dd><p>Constructor sets the color by float values of Red, Green and Blue channels.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mglColor-on-mglColor-1"></a><u>Method on mglColor:</u> <code></code> <b>mglColor</b><i> (<code>char</code> c=<code>'k'</code>)</i></dt>
+<dd><p>Constructor sets the color from character id. The black color is used by default.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-on-mglColor"></a><u>Method on mglColor:</u> <code>void</code> <b>Set</b><i> (<code>float</code> R, <code>float</code> G, <code>float</code> B)</i></dt>
+<dd><p>Sets color from values of Red, Green and Blue channels. This values should be in interval [0,1].
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-on-mglColor-1"></a><u>Method on mglColor:</u> <code>void</code> <b>Set</b><i> (<code>mglColor</code> c, <code>float</code> bright=<code>1</code>)</i></dt>
+<dd><p>Sets color as &ldquo;lighted&rdquo; version of color <var>c</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-on-mglColor-2"></a><u>Method on mglColor:</u> <code>void</code> <b>Set</b><i> (<code>char</code> p)</i></dt>
+<dd><p>Sets color from symbolic id.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Valid-on-mglColor"></a><u>Method on mglColor:</u> <code>bool</code> <b>Valid</b><i> ()</i></dt>
+<dd><p>Checks correctness of the color.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Norm-on-mglColor"></a><u>Method on mglColor:</u> <code>float</code> <b>Norm</b><i> ()</i></dt>
+<dd><p>Gets maximal of spectral component.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_003d_003d-on-mglColor"></a><u>Method on mglColor:</u> <code>bool</code> <b>operator==</b><i> (<code>const mglColor &amp;</code>c)</i></dt>
+<dd><p>Compare with another color
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002b-3"></a><u>Library Function:</u> inline mglColor <b>operator+</b><i> (<code>const mglColor &amp;</code>a, <code>const mglColor &amp;</code>b)</i></dt>
+<dd><p>Adds colors by its RGB values.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d-3"></a><u>Library Function:</u> inline mglColor <b>operator-</b><i> (<code>const mglColor &amp;</code>a, <code>const mglColor &amp;</code>b)</i></dt>
+<dd><p>Subtracts colors by its RGB values.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-3"></a><u>Library Function:</u> inline mglColor <b>operator*</b><i> (<code>const mglColor &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Multiplies color by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-4"></a><u>Library Function:</u> inline mglColor <b>operator*</b><i> (<code>float</code> a, <code>const mglColor &amp;</code>b)</i></dt>
+<dd><p>Multiplies color by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f-2"></a><u>Library Function:</u> inline mglColor <b>operator/</b><i> (<code>const mglColor &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Divide color by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_0021"></a><u>Library Function:</u> inline mglColor <b>operator!</b><i> (<code>const mglColor &amp;</code>a)</i></dt>
+<dd><p>Return inverted color.
+</p></dd></dl>
+
+<hr size="6">
+<a name="mglPoint-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglColor-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglVar-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglPoint-class-1"></a>
+<h2 class="section">7.5 mglPoint class</h2>
+<a name="index-mglPoint"></a>
+
+<p>Structure describes point in space. This structure is defined in <code>#include &lt;mgl/mgl.h&gt;</code>
+</p>
+<dl>
+<dt><a name="index-x_002c-y_002c-z-of-mglVar"></a><u>Parameter of mglVar:</u> <code>float</code> <b>x, y, z</b></dt>
+<dd><p>Point coordinates. By default all values are zero.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002b-4"></a><u>Library Function:</u> inline mglPoint <b>operator+</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Point of summation (summation of vectors).
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d-4"></a><u>Library Function:</u> inline mglPoint <b>operator-</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Point of difference (difference of vectors).
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-5"></a><u>Library Function:</u> inline mglPoint <b>operator*</b><i> (<code>float</code> a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Multiplies (scale) points by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-6"></a><u>Library Function:</u> inline mglPoint <b>operator*</b><i> (<code>const mglPoint &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Multiplies (scale) points by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f-3"></a><u>Library Function:</u> inline mglPoint <b>operator/</b><i> (<code>const mglPoint &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Multiplies (scale) points by number 1/b.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d-5"></a><u>Library Function:</u> inline float <b>operator-</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Scalar product of vectors.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_005e"></a><u>Library Function:</u> inline mglPoint <b>operator^</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Cross-product of vectors.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_0026"></a><u>Library Function:</u> inline mglPoint <b>operator&amp;</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>The part of <var>a</var> which is perpendicular to vector <var>b</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_007c"></a><u>Library Function:</u> inline mglPoint <b>operator|</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>The part of <var>a</var> which is parallel to vector <var>b</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_0021-1"></a><u>Library Function:</u> inline mglPoint <b>operator!</b><i> (<code>const mglPoint &amp;</code>a)</i></dt>
+<dd><p>Return vector perpendicular to vector <var>a</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Norm-2"></a><u>Library Function:</u> inline bool <b>Norm</b><i> (<code>const mglPoint &amp;</code>a)</i></dt>
+<dd><p>Return the norm |<var>a</var>|^2 of vector <var>a</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_003d_003d"></a><u>Library Function:</u> inline bool <b>operator==</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Return true if points are the same.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_0021_003d"></a><u>Library Function:</u> inline bool <b>operator!=</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Return true if points are different.
+</p></dd></dl>
+
+<hr size="6">
+<a name="mglVar-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglPoint-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglCommand-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglVar-class-1"></a>
+<h2 class="section">7.6 mglVar class</h2>
+<a name="index-mglVar"></a>
+
+<p>Structure describes variable of type <code>mglData</code> and its name in MGL script. This structure is used by <code>mglParse</code> and is defined in <code>#include &lt;mgl/mgl_parse.h&gt;</code>.
+</p>
+<dl>
+<dt><a name="index-d-of-mglVar"></a><u>Parameter of mglVar:</u> <code>mglData</code> <b>d</b></dt>
+<dd><p>Data itself
+</p></dd></dl>
+<dl>
+<dt><a name="index-s-of-mglVar"></a><u>Parameter of mglVar:</u> <code>wchar_t</code> <b>s</b><i>[256]</i></dt>
+<dd><p>Data name
+</p></dd></dl>
+<dl>
+<dt><a name="index-o-of-mglVar"></a><u>Parameter of mglVar:</u> <code>void *</code> <b>o</b></dt>
+<dd><p>Pointer to external object for function <var>func</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-next-of-mglVar"></a><u>Parameter of mglVar:</u> <code>mglVar *</code> <b>next</b></dt>
+<dd><p>Pointer to next instance in list
+</p></dd></dl>
+<dl>
+<dt><a name="index-prev-of-mglVar"></a><u>Parameter of mglVar:</u> <code>mglVar *</code> <b>prev</b></dt>
+<dd><p>Pointer to prev instance in list
+</p></dd></dl>
+<dl>
+<dt><a name="index-temp-of-mglVar"></a><u>Parameter of mglVar:</u> <code>bool</code> <b>temp</b></dt>
+<dd><p>Flag for temporar variable. Temporal variables will be destroyed after script execution.
+</p></dd></dl>
+<dl>
+<dt><a name="index-func-of-mglVar"></a><u>Parameter of mglVar:</u> <code>void (*</code> <b>func</b><i> <code>)(void *)</code></i></dt>
+<dd><p>Callback function for destroying non-temporal variable.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-MoveAfter-on-mglVar"></a><u>Method on mglVar:</u> <code>void</code> <b>MoveAfter</b><i> (<code>mglVar *</code>var)</i></dt>
+<dd><p>Move variable after <var>var</var> and copy <code>func</code> from <code>var</code> (if <code>func</code> is not 0)
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="mglCommand-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglVar-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglArg-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglCommand-class-1"></a>
+<h2 class="section">7.7 mglCommand class</h2>
+<a name="index-mglCommand"></a>
+
+<p>Structure describes MGL command, its name, short description, executable and export functions. The structure is used by <code>mglParse</code> and is defined in <code>#include &lt;mgl/mgl_parse.h&gt;</code>.
+</p>
+<dl>
+<dt><a name="index-name-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>const wchar_t *</code> <b>name</b></dt>
+<dd><p>Name of command.
+</p></dd></dl>
+<dl>
+<dt><a name="index-desc-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>const wchar_t *</code> <b>desc</b></dt>
+<dd><p>Short command description (can be NULL).
+</p></dd></dl>
+<dl>
+<dt><a name="index-form-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>const wchar_t *</code> <b>form</b></dt>
+<dd><p>Format of command arguments (can be NULL).
+</p></dd></dl>
+<dl>
+<dt><a name="index-exec-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>int (*</code> <b>exec</b><i> <code>)(mglGraph *gr, long n, mglArg *a, int k[10])const wchar_t *</code></i></dt>
+<dd><p>Function for executing (plotting) the command using grapher <var>gr</var> and having <var>n</var>-th arguments <var>a</var>. Function must return 0 if all is OK; or 1 if arguments are wrong.
+</p></dd></dl>
+<dl>
+<dt><a name="index-save-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>void (*</code> <b>save</b><i> <code>)(wchar_t out[1024], long n, mglArg *a, int k[10])const wchar_t *</code></i></dt>
+<dd><p>Function for exporting in C++ (can be NULL).
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="mglArg-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglCommand-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglArg-class-1"></a>
+<h2 class="section">7.8 mglArg class</h2>
+<a name="index-mglArg"></a>
+
+<p>Structure describes arguments of functions in the stucture <code>mglCommand</code>. It is defined in <code>#include &lt;mgl/mgl_parse.h&gt;</code>.
+</p>
+<dl>
+<dt><a name="index-type-of-mglArg"></a><u>Parameter of mglArg:</u> <code>int</code> <b>type</b></dt>
+<dd><p>Type of argument: 0-data, 1-string, 2-number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-d-of-mglArg"></a><u>Parameter of mglArg:</u> <code>mglData *</code> <b>d</b></dt>
+<dd><p>Pointer to data (used if type=0).
+</p></dd></dl>
+<dl>
+<dt><a name="index-w-of-mglArg"></a><u>Parameter of mglArg:</u> <code>wchar_t</code> <b>w</b><i>[2048]</i></dt>
+<dd><p>String with parameters (used if type=1 or if type=0 as variable name).
+</p></dd></dl>
+<dl>
+<dt><a name="index-s-of-mglArg"></a><u>Parameter of mglArg:</u> <code>char</code> <b>s</b><i>[2048]</i></dt>
+<dd><p>String with parameters (used if type=1).
+</p></dd></dl>
+<dl>
+<dt><a name="index-v-of-mglArg"></a><u>Parameter of mglArg:</u> <code>float</code> <b>v</b></dt>
+<dd><p>Numerical value (used if type==2)
+</p></dd></dl>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_8.html b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_8.html
new file mode 100644
index 0000000..cc4f05c
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_8.html
@@ -0,0 +1,2921 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: 8. MGL language</title>
+
+<meta name="description" content="MathGL 1.11: 8. MGL language">
+<meta name="keywords" content="MathGL 1.11: 8. MGL language">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="MGL-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_7.html#mglArg-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MGL-language"></a>
+<h1 class="chapter">8. MGL language</h1>
+
+<p>MathGL library supports the simplest scripts for data handling and plotting. These scripts can be used independently (with the help of UDAV, mgl2png, mgl2eps, mgl2svg programs and others, see section <a href="#Utilities">Utilities for parsing MGL</a>) or in the frame of the library using.
+</p>
+<p>MGL script language is rather simple. Each string is a command. First word of string is the name of command. Other words are command arguments. Command may have up to 1000 arguments (at least for now). Words are separated from each other by space or tabulation symbol. The upper or lower case of words is sufficient, i.e. variables <var>a</var> and <var>A</var> are different variables. Symbol &lsquo;<samp>#</samp>&rsquo; starts the comment (all characters after # will be ignored). The exception is situation when &lsquo;<samp>#</samp>&rsquo; is a part of some string. Also options can be specified after symbol &lsquo;<samp>;</samp>&rsquo; (see section <a href="#Command-options-_0028MGL_0029">Command options (MGL)</a>). Symbol &lsquo;<samp>:</samp>&rsquo; starts new command (like new line character) if it is not placed inside a string or inside brackets.
+</p>
+<p>If string contain references to external parameters (substrings &lsquo;<samp>$0</samp>&rsquo;, &lsquo;<samp>$1</samp>&rsquo; ... &lsquo;<samp>$9</samp>&rsquo;) or definitions (substrings &lsquo;<samp>$a</samp>&rsquo;, &lsquo;<samp>$b</samp>&rsquo; ... &lsquo;<samp>$z</samp>&rsquo;) then before execution the values of parameter/definition will be substituted instead of reference. It allows to use the same MGL script for different parameters (filenames, paths, condition and so on).
+</p>
+<p>Argument can be a string, a variable name or a number. 
+</p><ul>
+<li> 
+The string is any symbols between ordinary marks &lsquo;<samp>'</samp>&rsquo;.
+
+</li><li> 
+Usually variable have a name which is arbitrary combination of symbols (except spaces and &lsquo;<samp>'</samp>&rsquo;) started from a letter and with length less than 64. A temporary array can be used as variable:
+<ul>
+<li> 
+sub-arrays (like in <a href="#subdata">subdata</a> command) as command argument. For example, <code>a(1)</code> or <code>a(1,:)</code> or <code>a(1,:,:)</code> is second row, <code>a(:,2)</code> or <code>a(:,2,:)</code> is third column, <code>a(:,:,0)</code> is first slice and so on. Also you can extract a part of array from m-th to n-th element by code <code>a(m:n,:,:)</code> or just <code>a(m:n)</code>.
+
+</li><li> 
+any column combinations defined by formulas, like <code>a('n*w^2/exp(t)')</code> if names for data columns was specified (by <a href="#idset">idset</a> command or in the file at string started with <code>##</code>).
+
+</li><li> 
+any expression (without spaces) of existed variables produce temporary variable. For example, &lsquo;<samp>sqrt(dat(:,5)+1)</samp>&rsquo; will produce temporary variable with data values equal to <code>tmp[i,j] = sqrt(dat[i,5,j]+1)</code>. 
+
+</li><li> 
+temporary variable of higher dimensions by help of []. For example, &lsquo;<samp>[1,2,3]</samp>&rsquo; will produce a temporary vector of 3 elements {1, 2, 3}; &lsquo;<samp>[[11,12],[21,22]]</samp>&rsquo; will produce matrix 2*2 and so on. Here you can join even an arrays of the same dimensions by construction like &lsquo;<samp>[v1,v2,...,vn]</samp>&rsquo;.
+
+</li><li> 
+result of code for making new data (see section <a href="#Make-another-data-_0028MGL_0029">Make another data (MGL)</a>) inside {}. For example, &lsquo;<samp>{sum dat 'x'}</samp>&rsquo; produce temporary variable which contain result of summation of <var>dat</var> along direction &rsquo;x&rsquo;. This is the same array <var>tmp</var> as produced by command &lsquo;<samp>sum tmp dat 'x'</samp>&rsquo;. You can use nested constructions, like &lsquo;<samp>{sum {max dat 'z'} 'x'}</samp>&rsquo;.
+</li></ul>
+<p>Temporary variables can not be used as 1st argument for commands which create (return) the data (like &lsquo;<samp>new</samp>&rsquo;, &lsquo;<samp>read</samp>&rsquo;, &lsquo;<samp>hist</samp>&rsquo; and so on).
+</p>
+</li><li> 
+Special names <code>nan=#QNAN, pi=3.1415926..., on=1, off=0, :=-1</code> are treated as number if they were not redefined by user. Variables with suffixes are treated as numbers (see section <a href="#Suffixes">Suffixes for variable</a>). Names defined by <a href="#define">define</a> command are treated as number. Also results of formulas with sizes 1x1x1 are treated as number (for example, &lsquo;<samp>pi/dat.nx</samp>&rsquo;).
+</li></ul>
+<p>Before the first using all variables must be defined with the help of commands, like, <a href="#new">new</a>, <a href="#var">var</a>, <a href="#list">list</a>, <a href="#copy">copy</a>, <a href="#read">read</a>, <a href="#hist">hist</a>, <a href="#sum">sum</a> and so on (see section <a href="#Data-create-_0028MGL_0029">Data create (MGL)</a> and <a href="#Make-another-data-_0028MGL_0029">Make another data (MGL)</a>). 
+</p>
+<p>Command may have several set of possible arguments (for example, <code>plot ydat</code> and <code>plot xdat ydat</code>). All command arguments for a selected set must be specified. However, some arguments can have default values. These argument are printed in [], like <code>plot ydat ['stl'='' zval=nan]</code>. At this, the record <code>[arg1 arg2 arg3 ...]</code> means <code>[arg1 [arg2 [arg3 ...]]]</code>, i.e. you can omit only tailing arguments if you agree with its default values. For example, <code>plot ydat '' 1</code> or <code>plot ydat ''</code> is correct, but <code>plot ydat 1</code> is incorrect (argument <code>'stl'</code> is missed).
+</p>
+<p>All MGL commands can be divided on several groups. I will use the following notation for a command description: command names are bold, strings are denoted by commas, variable names are italic, numbers are typewriter. Optional arguments are placed in square brackets and default values for them are shown. Detailed description of color, line styles (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>), color schemes (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>), font types, TeX-like symbols (see section <a href="mathgl_en_1.html#Font-styles">Font styles</a>) and formulas (see section <a href="mathgl_en_1.html#Textual-formulas">Textual formulas</a>) can be found in corresponding section.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Graphics-setup-_0028MGL_0029">8.1 Graphics setup (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transformation-matrix-_0028MGL_0029">8.3 Transformation matrix (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Export-to-file-_0028MGL_0029">8.4 Export to file (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing-_0028MGL_0029">8.6 Text printing (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Legend-_0028MGL_0029">8.8 Legend (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting-_0028MGL_0029">8.12 Dual plotting (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-fields-_0028MGL_0029">8.13 Vector fields (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-create-_0028MGL_0029">8.16 Data create (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-filling-_0028MGL_0029">8.17 Data filling (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Rearrange-data-_0028MGL_0029">8.18 Rearrange data (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Operators-_0028MGL_0029">8.22 Operators (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Suffixes">8.25 Suffixes for variable</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Utilities">8.26 Utilities for parsing MGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+</table>
+
+
+<hr size="6">
+<a name="Graphics-setup-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparency-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Graphics-setup-_0028MGL_0029-1"></a>
+<h2 class="section">8.1 Graphics setup (MGL)</h2>
+
+<p>Coomands in this group influences on overall graphics appearance. So all of them should be placed <em>before</em> any actual plotting commands. 
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Transparency-_0028MGL_0029">8.1.1 Transparency (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lighting-_0028MGL_0029">8.1.2 Lighting (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fog-_0028MGL_0029">8.1.3 Fog (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Default-sizes-_0028MGL_0029">8.1.4 Default sizes (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Zooming-_0028MGL_0029">8.1.5 Zooming (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cutting-_0028MGL_0029">8.1.6 Cutting (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-settings-_0028MGL_0029">8.1.7 Other settings (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Transparency-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lighting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transparency-_0028MGL_0029-1"></a>
+<h3 class="subsection">8.1.1 Transparency (MGL)</h3>
+
+<p>There are several commands for setup transparency. The general command is <a href="#alpha">alpha</a> which switch on/off the transparency for overall plot. It influence only for graphics which created after <a href="#alpha">alpha</a> call. Command <a href="#alphadef">alphadef</a> specify the default value of alpha-channel. You may switch off transparency of selected plot by command <a href="#transparent">transparent</a>. Finally, command <a href="#transptype">transptype</a> set the kind of transparency. See section <a href="mathgl_en_9.html#Transparent-surface-sample">Transparent surface sample</a>, for sample code and picture.
+</p>
+<a name="index-alpha"></a>
+<p><a name="alpha"></a>
+</p><dl>
+<dt><a name="index-alpha-1"></a><u>MGL command:</u> <b>alpha</b><i> <code>[val=on]</code></i></dt>
+<dd><p>Sets the transparency on/off. It is recommended to call this command before any plotting command. Default value is <code>off</code>. Use <code>transparent off</code> in particular plot to disable its transparency.
+</p></dd></dl>
+<a name="index-alphadef"></a>
+<p><a name="alphadef"></a>
+</p><dl>
+<dt><a name="index-alphadef-1"></a><u>MGL command:</u> <b>alphadef</b><i> <code>val</code></i></dt>
+<dd><p>Default value of alpha channel (transparency) for all plotting commands. Initial value is 0.5.
+</p></dd></dl>
+<a name="index-transparent"></a>
+<p><a name="transparent"></a>
+</p><dl>
+<dt><a name="index-transparent-1"></a><u>MGL command:</u> <b>transparent</b><i> <code>val</code></i></dt>
+<dd><p>Temporary switches transparency on/off for the plot.
+</p></dd></dl>
+<a name="index-transptype"></a>
+<p><a name="transptype"></a>
+</p><dl>
+<dt><a name="index-transptype-1"></a><u>MGL command:</u> <b>transptype</b><i> <code>val</code></i></dt>
+<dd><p>This command set the transparency type. Normal transparency (&lsquo;<samp>0</samp>&rsquo;) &ndash; below things is less visible than upper ones. Glass-like transparency (&lsquo;<samp>1</samp>&rsquo;) &ndash; below and upper things are commutable and just decrease intensity of light by RGB channel. Lamp-like transparency (&lsquo;<samp>2</samp>&rsquo;) &ndash; below and upper things are commutable and are the source of some additional light. I recommend to set <code>alphadef 0.3</code> or less for lamp-like transparency. See section <a href="mathgl_en_9.html#Normal-transparency">Normal transparency</a>, <a href="mathgl_en_9.html#Glass_002dlike-transparency">Glass-like transparency</a>, <a href="mathgl_en_9.html#Lamp_002dlike-transparency">Lamp-like transparency</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Lighting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparency-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fog-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Lighting-_0028MGL_0029-1"></a>
+<h3 class="subsection">8.1.2 Lighting (MGL)</h3>
+
+<p>There are several commands for setup lighting. The general command is <a href="#light">light</a> which switch on/off the lighting for overall plot. Generally MathGL support up to 10 independent light sources. The position, color, brightness of each light source can be set separately. By default only one light source is active. It is source number <code>0</code> with white color, located at top of the plot.
+</p>
+<a name="index-light"></a>
+<p><a name="light"></a>
+</p><dl>
+<dt><a name="index-light-1"></a><u>MGL command:</u> <b>light</b><i> <code>[val=on]</code></i></dt>
+<dd><p>Sets the using of light on/off for overall plot. It is recommended to call this command before any plotting command. Default value is lightning off.
+</p></dd></dl>
+<dl>
+<dt><a name="index-light-2"></a><u>MGL command:</u> <b>light</b><i> <code>num val</code></i></dt>
+<dd><p>Switch on/off <var>num</var>-th light source separately.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-light-3"></a><u>MGL command:</u> <b>light</b><i> <code>num xpos ypos zpos</code> ['col'='w' <code>br=0.5</code>]</i></dt>
+<dd><p>The command adds a light source with identification <var>num</var> at position {<var>xpos</var>, <var>ypos</var>, <var>zpos</var>}. The color of light is <var>col</var> (white by default). The brightness of light is <var>br</var> which must be in range [0,1].
+</p></dd></dl>
+
+<a name="index-ambient"></a>
+<p><a name="ambient"></a>
+</p><dl>
+<dt><a name="index-ambient-1"></a><u>MGL command:</u> <b>ambient</b><i> <code>val</code></i></dt>
+<dd><p>Sets the brightness of ambient light. The value should be in range [0,1]. Initial value is 0.5. 
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fog-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lighting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Default-sizes-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fog-_0028MGL_0029-1"></a>
+<h3 class="subsection">8.1.3 Fog (MGL)</h3>
+
+<a name="index-fog"></a>
+<p><a name="fog"></a>
+</p><dl>
+<dt><a name="index-fog-1"></a><u>MGL command:</u> <b>fog</b><i> <code>val [dz=0.25]</code></i></dt>
+<dd><p>Command imitate a fog in the plot. Fog start from relative distance <var>dz</var> from view point and its density growths exponentially in depth. So that the fog influence is determined by law ~<em>1-exp(-d*z)</em>. Here <em>z</em> is normalized to 1 depth of the plot. If value <var>val</var>=<code>0</code> then the fog is absent. See section <a href="mathgl_en_9.html#Surface-in-fog-sample">Surface in fog sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Default-sizes-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fog-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Zooming-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Default-sizes-_0028MGL_0029-1"></a>
+<h3 class="subsection">8.1.4 Default sizes (MGL)</h3>
+
+<p>These commands control the default (initial) values for most graphics parameters including sizes of markers, arrows, linewidth and so on. As any other settings these ones will influence only on plots created after the settings change.
+</p>
+<a name="index-barwidth"></a>
+<p><a name="barwidth"></a>
+</p><dl>
+<dt><a name="index-barwidth-1"></a><u>MGL command:</u> <b>barwidth</b><i> <code>val</code></i></dt>
+<dd><p>Sets relative width of rectangles in <code>bars, barh, boxplot</code>. Default value is <code>0.7</code>.
+</p></dd></dl>
+
+<a name="index-marksize"></a>
+<p><a name="marksize"></a>
+</p><dl>
+<dt><a name="index-marksize-1"></a><u>MGL command:</u> <b>marksize</b><i> <code>val</code></i></dt>
+<dd><p>The size of marks. Default value is <code>1</code>.
+</p></dd></dl>
+
+<a name="index-arrowsize"></a>
+<p><a name="arrowsize"></a>
+</p><dl>
+<dt><a name="index-arrowsize-1"></a><u>MGL command:</u> <b>arrowsize</b><i> <code>val</code></i></dt>
+<dd><p>The size of arrows for lines and curves. Default value is <code>1</code>.
+</p></dd></dl>
+
+<a name="index-linewidth"></a>
+<p><a name="linewidth"></a>
+</p><dl>
+<dt><a name="index-linewidth-1"></a><u>MGL command:</u> <b>linewidth</b><i> <code>val</code></i></dt>
+<dd><p>The variable define the base width for all lines. The value &lt;1 is ignored. Increase of this variables is actual for large bitmap pictures. Default value is <code>1</code>.
+</p></dd></dl>
+
+<a name="index-ticklen"></a>
+<p><a name="ticklen"></a>
+</p><dl>
+<dt><a name="index-ticklen-1"></a><u>MGL command:</u> <b>ticklen</b><i> <code>val</code> [<code>stt=1</code>]</i></dt>
+<dd><p>The relative length of axis ticks. Default value is <code>0.1</code>. Parameter <var>stt</var>&gt;0 set relative length of subticks which is in <code>sqrt(1+stt)</code> times smaller.
+</p></dd></dl>
+
+<a name="index-tickstl"></a>
+<p><a name="tickstl"></a>
+</p><dl>
+<dt><a name="index-tickstl-1"></a><u>MGL command:</u> <b>tickstl</b><i> 'stl' ['sub'='']</i></dt>
+<dd><p>The line style of axis ticks (<var>stl</var>) and subticks (<var>sub</var>). If <var>stl</var>=&rdquo; then default style is used (&lsquo;<samp>k</samp>&rsquo; or &lsquo;<samp>w</samp>&rsquo; depending on transparency type). If <var>sub</var>=&rdquo; then ticks style is used (i.e. <var>stl</var>).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Zooming-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Default-sizes-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cutting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Zooming-_0028MGL_0029-1"></a>
+<h3 class="subsection">8.1.5 Zooming (MGL)</h3>
+
+<p>These commands control the overall zooming of the picture or the sub-picture. Normally you can use these variables and commands for removing &ldquo;white&rdquo; spaces around a plot.
+</p>
+<a name="index-plotfactor"></a>
+<p><a name="plotfactor"></a>
+</p><dl>
+<dt><a name="index-plotfactor-1"></a><u>MGL command:</u> <b>plotfactor</b><i> <code>val</code></i></dt>
+<dd><p>The factor of plot size. It is not recommended to set it lower then 1.6. This is some analogue of command <a href="#zoom">zoom</a> but applied not to overall image but for each <a href="#inplot">inplot</a>. Use negative value to enable automatic <a href="#plotfactor">plotfactor</a> selection.
+</p></dd></dl>
+
+<a name="index-zoom"></a>
+<p><a name="zoom"></a>
+</p><dl>
+<dt><a name="index-zoom-1"></a><u>MGL command:</u> <b>zoom</b><i> <code>x1 y1 x2 y2</code></i></dt>
+<dd><p>The command changes the scale of graphics that correspond to zoom in/out of the picture. After command call the current plot will be cleared and further the picture will contain plotting from its part [x1,x2]*[y1,y2]. Here picture coordinates <var>x1</var>, <var>x2</var>, <var>y1</var>, <var>y2</var> changes from 0 to 1. Use <code>zoom 0 0 1 1</code> to return default view.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cutting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Zooming-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-settings-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cutting-_0028MGL_0029-1"></a>
+<h3 class="subsection">8.1.6 Cutting (MGL)</h3>
+
+<p>These commands set the condition when the points are excluded (cutted) from the drawing. Note, that a point with <code>nan</code> value(s) of coordinate or amplitude will be automatically excluded from the drawing.
+</p>
+<a name="index-cut"></a>
+<p><a name="cut"></a>
+</p><dl>
+<dt><a name="index-cut-1"></a><u>MGL command:</u> <b>cut</b><i> <code>val</code></i></dt>
+<dd><p>Determines how points outside bounding box are drawn. If it is <code>on</code> then points are excluded from plot (it is default) otherwise the points are projected to edges of bounding box.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cut-2"></a><u>MGL command:</u> <b>cut</b><i> <code>x1 y1 z1 x2 y2 z2</code></i></dt>
+<dd><p>Lower and upper edge of the box in which never points are drawn. If both edges are the same (the variables are equal) then the cutting box is empty. See section <a href="mathgl_en_9.html#CutMinMax-sample">CutMinMax sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cut-3"></a><u>MGL command:</u> <b>cut</b><i> 'cond'</i></dt>
+<dd><p>Command set the cutting off condition by formula <var>cond</var>. This condition determine will point be plotted or not. If value of formula is nonzero then point is omitted, otherwise it plotted. Set argument as <code>''</code> to disable cutting off condition. See section <a href="mathgl_en_9.html#CutOff-sample">CutOff sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Other-settings-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cutting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Other-settings-_0028MGL_0029-1"></a>
+<h3 class="subsection">8.1.7 Other settings (MGL)</h3>
+
+<a name="index-font"></a>
+<p><a name="font"></a>
+</p><dl>
+<dt><a name="index-font-1"></a><u>MGL command:</u> <b>font</b><i> 'fnt' [<code>val=6</code>]</i></dt>
+<dd><p>Font style for text and labels (see text). Initial style is &rsquo;fnt&rsquo;=&rsquo;rC&rsquo; give Roman font with centering. Parameter <code>val</code> sets the size of font for tick and axis labels. Default font size of axis labels is 1.4 times large than for tick labels. For more detail, see section <a href="mathgl_en_1.html#Font-styles">Font styles</a>.
+</p></dd></dl>
+
+<a name="index-rotatetext"></a>
+<p><a name="rotatetext"></a>
+</p><dl>
+<dt><a name="index-rotatetext-1"></a><u>MGL command:</u> <b>rotatetext</b><i> <code>val</code></i></dt>
+<dd><p>Set to use or not text rotation along axis. Initial value is <code>on</code>.
+</p></dd></dl>
+
+<a name="index-palette"></a>
+<p><a name="palette"></a>
+</p><dl>
+<dt><a name="index-palette-1"></a><u>MGL command:</u> <b>palette</b><i> 'colors'</i></dt>
+<dd><p>Set the palette as selected colors. Default value is <code>'Hbgrcmyhlnqeup'</code>. The palette is used mostly in 1D plots for curves which styles are not specified.
+</p></dd></dl>
+
+<a name="index-meshnum"></a>
+<p><a name="meshnum"></a>
+</p><dl>
+<dt><a name="index-meshnum-1"></a><u>MGL command:</u> <b>meshnum</b><i> <code>num</code></i></dt>
+<dd><p>Sets approximate number of lines in <a href="#mesh">mesh</a>, <a href="#fall">fall</a>, <a href="#grid">grid</a> and also the number of hachures in <a href="#vect">vect</a>, <a href="#vectc">vectc</a>, <a href="#dew">dew</a> and the number of cells in <a href="#cloud">cloud</a>. By default (=0) it draws all lines/hachures/cells.
+</p></dd></dl>
+
+<a name="index-axialdir"></a>
+<p><a name="axialdir"></a>
+</p><dl>
+<dt><a name="index-axialdir-1"></a><u>MGL command:</u> <b>axialdir</b><i> 'dir'</i></dt>
+<dd><p>Set direction around which curve rotated in <a href="#axial">axial</a>, <a href="#torus">torus</a>. Default value is &rsquo;z&rsquo;.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axis-settings-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-settings-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transformation-matrix-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-settings-_0028MGL_0029-1"></a>
+<h2 class="section">8.2 Axis settings (MGL)</h2>
+
+<p>These large set of commands control how the axis and ticks will be drawn. Note that there is 3-step transformation of data coordinates are performed. Firstly, coordinates are projected and cutting is applied (see section <a href="#Cutting-_0028MGL_0029">Cutting (MGL)</a>), after it transformation formulas are applied, and finally the data was normalized in bounding box.
+</p>
+<a name="index-axis"></a>
+<p><a name="axis"></a>
+</p><dl>
+<dt><a name="index-axis-1"></a><u>MGL command:</u> <b>axis</b><i> <code>x1 y1 x2 y2</code></i></dt>
+<dt><a name="index-axis-2"></a><u>MGL command:</u> <b>axis</b><i> <code>x1 y1 z1 x2 y2 z2</code></i></dt>
+<dd><a name="index-ranges"></a>
+<p><a name="ranges"></a>
+</p></dd><dt><a name="index-ranges-1"></a><u>MGL command:</u> <b>ranges</b><i> <code>x1 x2 y1 y2 [z1=0 z2=0]</code></i></dt>
+<dd><p>Sets the ranges of coordinates changing. Also it sets the range for coloring (analogous to <code>caxis z1 z2</code>). Initial ranges are [-1, 1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axis-3"></a><u>MGL command:</u> <b>axis</b><i> 'fx' 'fy' ['fz'='' 'fa'='']</i></dt>
+<dd><p>Sets the transformation formulas for curvilinear coordinates. Each string should contain mathematical expression for real coordinate depending on internal coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; and &lsquo;<samp>a</samp>&rsquo; or &lsquo;<samp>c</samp>&rsquo; for colorbar. For example, the cylindrical coordinates are introduced as <code>axis 'x*cos(y)' 'x*sin(y)' 'z'</code>. For removing of formulas the corresponding parameter should be <code>''</code>. The using of transformation formulas will slightly slowing the program, i.e. <code>axis '' '' ''</code> is faster than <code>axis '1*x' '1*y' '1*z'</code>. Initially all formulas are absent (Cartesian coordinates are used). For more details about functions and formulas, see section <a href="mathgl_en_1.html#Textual-formulas">Textual formulas</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axis-4"></a><u>MGL command:</u> <b>axis</b><i> <code>how</code></i></dt>
+<dd><p>Sets one of the predefined transformation formulas for curvilinear coordinate. Paramater <var>how</var> define the coordinates: &lsquo;<samp>0</samp>&rsquo; &ndash; Cartesian coordinates (no transformation); &lsquo;<samp>1</samp>&rsquo; &ndash; Polar coordiantes <em>x_n=x*cos(y),y_n=x*sin(y), z_n=z</em>; &lsquo;<samp>2</samp>&rsquo; &ndash; Spherical coordinates <em>x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y)</em>; &lsquo;<samp>3</samp>&rsquo; &ndash; Parabolic coordinates <em>x_n=x*y, y_n=(x*x-y*y)/2, z_n=z</em>; &lsquo;<samp>4</samp>&rsquo; &ndash; Paraboloidal coordinates <em>x_n=(x*x-y*y)*cos(z)/2, y_n=(x*x-y*y)*sin(z)/2, z_n=x*y</em>; &lsquo;<samp>5</samp>&rsquo; &ndash; Oblate coordinates <em>x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z), z_n=sinh(x)*sin(y)</em>; &lsquo;<samp>6</samp>&rsquo; &ndash; Prolate coordinates <em>x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z), z_n=cosh(x)*cos(y)</em>; &lsquo;<samp>7</samp>&rsquo; &ndash; Elliptic coordinates <em>x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z</em>; &lsquo;<samp>8</samp>&rsquo; &ndash; Toroidal coordinates <em>x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)), y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y))</em>; &lsquo;<samp>9</samp>&rsquo; &ndash; Bispherical coordinates <em>x_n=sin(y)*cos(z)/(cosh(x)-cos(y)), y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y))</em>; &lsquo;<samp>10</samp>&rsquo; &ndash; Bipolar coordinates <em>x_n=sinh(x)/(cosh(x)-cos(y)), y_n=sin(y)/(cosh(x)-cos(y)), z_n=z</em>.
+</p></dd></dl>
+
+<a name="index-caxis"></a>
+<p><a name="caxis"></a>
+</p><dl>
+<dt><a name="index-caxis-1"></a><u>MGL command:</u> <b>caxis</b><i> <code>z1 z2</code></i></dt>
+<dd><p>Sets the range for surface coloring. Initial range is [-1, 1].
+</p></dd></dl>
+
+<a name="index-origin"></a>
+<p><a name="origin"></a>
+</p><dl>
+<dt><a name="index-origin-1"></a><u>MGL command:</u> <b>origin</b><i> <code>x0 y0 [z0=nan]</code></i></dt>
+<dd><p>Center of axis cross section. If one of values is <code>nan</code> then MathGL library try to select optimal axis position.
+</p></dd></dl>
+
+<a name="index-ternary"></a>
+<p><a name="ternary"></a>
+</p><dl>
+<dt><a name="index-ternary-1"></a><u>MGL command:</u> <b>ternary</b><i> <code>val</code></i></dt>
+<dd><p>The command sets to draws Ternary plot. This special plot is for 3 dependent coordinates (components) <var>a</var>, <var>b</var>, <var>c</var> so that <var>a</var>+<var>b</var>+<var>c</var>=1. MathGL uses only 2 independent coordinates <var>a</var>=x and <var>b</var>=y since it is enough to plot everything. At this third coordinate z act as another parameter to produce contour lines, surfaces and so on. See section <a href="mathgl_en_9.html#Ternary-plot-sample">Ternary plot sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-xrange"></a>
+<p><a name="xrange"></a>
+</p><dl>
+<dt><a name="index-xrange-1"></a><u>MGL command:</u> <b>xrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-yrange"></a>
+<p><a name="yrange"></a>
+</p></dd><dt><a name="index-yrange-1"></a><u>MGL command:</u> <b>yrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-zrange"></a>
+<p><a name="zrange"></a>
+</p></dd><dt><a name="index-zrange-1"></a><u>MGL command:</u> <b>zrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-crange"></a>
+<p><a name="crange"></a>
+</p></dd><dt><a name="index-crange-1"></a><u>MGL command:</u> <b>crange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><p>Sets the range for x-,y-,z- coordinate or coloring as minimal and maximal values of data <var>dat</var>. Parameter <code>add=on</code> shows that the new range will be joined to existed one (nut will not replace it). Parameter <var>fact</var> add additional range increase on value (<var>Max</var>-<var>Min</var>)*<var>fact</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xrange-2"></a><u>MGL command:</u> <b>xrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-yrange-2"></a><u>MGL command:</u> <b>yrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-zrange-2"></a><u>MGL command:</u> <b>zrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-crange-2"></a><u>MGL command:</u> <b>crange</b><i> <code>x1 x2</code></i></dt>
+<dd><p>Sets the range for x-,y-,z- coordinate or coloring. See also <a href="#axis">axis</a>.
+</p></dd></dl>
+
+<a name="index-xtick"></a>
+<p><a name="xtick"></a>
+</p><dl>
+<dt><a name="index-xtick-1"></a><u>MGL command:</u> <b>xtick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ytick"></a>
+<p><a name="ytick"></a>
+</p></dd><dt><a name="index-ytick-1"></a><u>MGL command:</u> <b>ytick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ztick"></a>
+<p><a name="ztick"></a>
+</p></dd><dt><a name="index-ztick-1"></a><u>MGL command:</u> <b>ztick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ctick"></a>
+<p><a name="ctick"></a>
+</p></dd><dt><a name="index-ctick-1"></a><u>MGL command:</u> <b>ctick</b><i> <code>val</code></i></dt>
+<dd><p>Sets step for x-, y-, z-axis ticks or colorbar ticks (if <var>val</var>&gt;0) or it&rsquo;s number (if <var>val</var>&lt;0) in corresponding direction. Zero value <var>val</var>=0 sets logarithmic ticks. Parameter <var>sub</var> sets the number of sub-ticks. Parameter <var>org</var> set the starting points for ticks. If not <code>org=nan</code> then the value from <a href="#origin">origin</a> is used.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xtick-2"></a><u>MGL command:</u> <b>xtick</b><i> 'templ'</i></dt>
+<dt><a name="index-ytick-2"></a><u>MGL command:</u> <b>ytick</b><i> 'templ'</i></dt>
+<dt><a name="index-ztick-2"></a><u>MGL command:</u> <b>ztick</b><i> 'templ'</i></dt>
+<dt><a name="index-ctick-2"></a><u>MGL command:</u> <b>ctick</b><i> 'templ'</i></dt>
+<dd><p>Sets the template for x-, y-, z-axis ticks or colorbar ticks. It may contain TeX symbols also. If <var>templ</var>=<code>''</code> then default template is used (in simplest case it is &lsquo;<samp>%.2g</samp>&rsquo;) with automatic detaching of common multiplier or common component.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xtick-3"></a><u>MGL command:</u> <b>xtick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dt><a name="index-ytick-3"></a><u>MGL command:</u> <b>ytick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dt><a name="index-ztick-3"></a><u>MGL command:</u> <b>ztick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dd><p>Sets manual positions <var>val1</var>,<var>val2</var>,... and labels <var>lbl1</var>,<var>lbl2</var>,... for ticks along x-, y-, z-axis. Labels may contain TeX symbols also.
+</p></dd></dl>
+
+<a name="index-adjust"></a>
+<p><a name="adjust"></a>
+</p><dl>
+<dt><a name="index-adjust-1"></a><u>MGL command:</u> <b>adjust</b><i> ['dir'='xyzc']</i></dt>
+<dd><p>Set the ticks step, number of sub-ticks and initial ticks position to be the most human readable for the axis along direction(s) <var>dir</var>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Transformation-matrix-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-settings-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Export-to-file-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transformation-matrix-_0028MGL_0029-1"></a>
+<h2 class="section">8.3 Transformation matrix (MGL)</h2>
+
+<p>These commands control how and where further plotting will be placed. There is a curtain order of calling of these commands for the better plot view. First one should be <a href="#subplot">subplot</a> or <a href="#inplot">inplot</a> for specifying the place. After it a <a href="#rotate">rotate</a> and <a href="#aspect">aspect</a>. And finally any other plotting commands may be called. Alternatevely you can use <a href="#columnplot">columnplot</a> for position plots in the column one by another without gap between plot axis (bounding boxes).
+</p>
+<a name="index-subplot"></a>
+<p><a name="subplot"></a>
+</p><dl>
+<dt><a name="index-subplot-1"></a><u>MGL command:</u> <b>subplot</b><i> <code>nx ny m [dx=0 dy=0]</code></i></dt>
+<dd><p>Puts further plotting in a <var>m</var>-th cell of <var>nx</var>*<var>ny</var> grid of the whole frame area. This command set off any aspects or rotations. So it should be used first for creating the subplot. From the aesthetical point of view it is not recommended to use this command with different matrices in the same frame. The position of the cell can be shifted from its default position by relative size <var>dx</var>, <var>dy</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-subplot-2"></a><u>MGL command:</u> <b>subplot</b><i> <code>nx ny m</code> 'style'</i></dt>
+<dd><p>The same as previous but space reserved for axis/colorbar is saved only if <var>style</var> contain: &lsquo;<samp>L</samp>&rsquo; or &lsquo;<samp>&lt;</samp>&rsquo; &ndash; at left side, &lsquo;<samp>R</samp>&rsquo; or &lsquo;<samp>&gt;</samp>&rsquo; &ndash; at right side, &lsquo;<samp>A</samp>&rsquo; or &lsquo;<samp>^</samp>&rsquo; &ndash; at top side, &lsquo;<samp>U</samp>&rsquo; or &lsquo;<samp>_</samp>&rsquo; &ndash; at bottom side.
+</p></dd></dl>
+
+<a name="index-inplot"></a>
+<p><a name="inplot"></a>
+</p><dl>
+<dt><a name="index-inplot-1"></a><u>MGL command:</u> <b>inplot</b><i> <code>x1 x2 y1 y2 [rel=off]</code></i></dt>
+<dd><p>Puts further plotting in some region of the whole frame surface. This command allows one to create a plot in arbitrary place of the screen. The position is defined by rectangular coordinates [<var>x1</var>, <var>x2</var>]*[<var>y1</var>, <var>y2</var>]. The coordinates <var>x1</var>, <var>x2</var>, <var>y1</var>, <var>y2</var> are normalized to interval [0, 1]. If parameter <var>rel</var>=<code>on</code> then the relative position to current <a href="#subplot">subplot</a> is used. This command set off any aspects or rotations. So it should be used first for creating subplot.
+</p></dd></dl>
+
+<a name="index-columnplot"></a>
+<p><a name="columnplot"></a>
+</p><dl>
+<dt><a name="index-columnplot-1"></a><u>MGL command:</u> <b>columnplot</b><i> <code>num ind [d=0]</code></i></dt>
+<dd><p>Puts further plotting in <var>ind</var>-th cell of column with <var>num</var> cells. The position is relative to previous <a href="#subplot">subplot</a> call (or <a href="#inplot">inplot</a> with <code>rel=off</code>). Parameter <var>d</var> set extra gap between cells.
+</p></dd></dl>
+
+<a name="index-stickplot"></a>
+<p><a name="stickplot"></a>
+</p><dl>
+<dt><a name="index-stickplot-1"></a><u>MGL command:</u> <b>stickplot</b><i> <code>num ind tet phi</code></i></dt>
+<dd><p>Puts further plotting in <var>ind</var>-th cell of stick with <var>num</var> cells. At this, stick is rotated on angles <var>tet</var>, <var>phi</var>. The position is relative to previous <a href="#subplot">subplot</a> call (or <a href="#inplot">inplot</a> with <code>rel=off</code>).
+</p></dd></dl>
+
+<a name="index-rotate"></a>
+<p><a name="rotate"></a>
+</p><dl>
+<dt><a name="index-rotate-1"></a><u>MGL command:</u> <b>rotate</b><i> <code>tetz tetx [tety=0]</code></i></dt>
+<dd><p>Rotates a further plotting relative to each axis (x, z, y) consecutively on angles <var>tetx</var>, <var>tetz</var>, <var>tety</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-rotate-2"></a><u>MGL command:</u> <b>rotate</b><i> <code>tet x y z</code></i></dt>
+<dd><p>Rotates a further plotting around vector {x,y,z} on angle <var>tet</var>.
+</p></dd></dl>
+
+<a name="index-aspect"></a>
+<p><a name="aspect"></a>
+</p><dl>
+<dt><a name="index-aspect-1"></a><u>MGL command:</u> <b>aspect</b><i> <code>ax ay [az=1]</code></i></dt>
+<dd><p>Defines aspect ratio for the plot. The viewable axes will be related one to another as the ratio <var>ax:ay:az</var>. For the best effect it should be used after <a href="#rotate">rotate</a> command.
+</p></dd></dl>
+
+<a name="index-perspective"></a>
+<p><a name="perspective"></a>
+</p><dl>
+<dt><a name="index-perspective-1"></a><u>MGL command:</u> <b>perspective</b><i> <code>val</code></i></dt>
+<dd><p>Add (switch on) the perspective to plot. The parameter <em>val ~ 1/z_eff \in [0,1)</em>. By default (<code>val=0</code>) the perspective is off.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Export-to-file-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transformation-matrix-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Primitives-drawing-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Export-to-file-_0028MGL_0029-1"></a>
+<h2 class="section">8.4 Export to file (MGL)</h2>
+
+<a name="index-write"></a>
+<p><a name="write"></a>
+</p><dl>
+<dt><a name="index-write-1"></a><u>MGL command:</u> <b>write</b><i> 'fname' [<code>solid=off</code>]</i></dt>
+<dd><p>Exports current picture/frame to file &rsquo;fname&rsquo; (file type is determined by extension). Solid (usually white) background will be used if <code>solid=on</code>. If &rsquo;fname&rsquo;=&rdquo; then the file &lsquo;<samp>frameNNNN.jpg</samp>&rsquo; is used, where &lsquo;<samp>NNNN</samp>&rsquo; is current frame id.
+</p></dd></dl>
+
+<a name="index-setsize"></a>
+<p><a name="setsize"></a>
+</p><dl>
+<dt><a name="index-setsize-1"></a><u>MGL command:</u> <b>setsize</b><i> <code>w h</code></i></dt>
+<dd><p>Sets size of picture in pixels. This function call <strong>must be</strong> placed before any plotting command because it completely remove picture content. In some program the call of this function is forbidden.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Primitives-drawing-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Export-to-file-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Primitives-drawing-1"></a>
+<h2 class="section">8.5 Primitives drawing</h2>
+
+<p>These commands draw some simple objects like line, point, sphere, drop, cone and so on.
+</p>
+<a name="index-clf"></a>
+<p><a name="clf"></a>
+</p><dl>
+<dt><a name="index-clf-1"></a><u>MGL command:</u> <b>clf</b></dt>
+<dd><p>Clear the picture by removes all drawing from it. Does not change transformation matrix. 
+</p></dd></dl>
+
+<a name="index-ball"></a>
+<p><a name="ball"></a>
+</p><dl>
+<dt><a name="index-ball-1"></a><u>MGL command:</u> <b>ball</b><i> <code>x y</code> ['col'='r']</i></dt>
+<dt><a name="index-ball-2"></a><u>MGL command:</u> <b>ball</b><i> <code>x y z</code> ['col'='r']</i></dt>
+<dd><p>Draws a point (ball) at position {<var>x</var>, <var>y</var>, <var>z</var>} with color defined by string <var>col</var>.
+</p></dd></dl>
+
+<a name="index-line"></a>
+<p><a name="line"></a>
+</p><dl>
+<dt><a name="index-line-1"></a><u>MGL command:</u> <b>line</b><i> <code>x1 y1 x2 y2</code> ['stl'='']</i></dt>
+<dt><a name="index-line-2"></a><u>MGL command:</u> <b>line</b><i> <code>x1 y1 z1 x2 y2 z2</code> ['stl'='']</i></dt>
+<dd><p>Draws a geodesic line (straight line in Cartesian coordinates) from point {<var>x1</var>,<var>y1</var>,<var>z1</var>} to {<var>x2</var>,<var>y2</var>,<var>z2</var>} using line style <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-curve"></a>
+<p><a name="curve"></a>
+</p><dl>
+<dt><a name="index-curve-1"></a><u>MGL command:</u> <b>curve</b><i> <code>x1 y1 dx1 dy1 x2 y2 dx2 dy2</code> ['stl'='']</i></dt>
+<dt><a name="index-curve-2"></a><u>MGL command:</u> <b>curve</b><i> <code>x1 y1 z1 dx1 dy1 dz1 x2 y2 z2 dx2 dy2 dz2</code> ['stl'='']</i></dt>
+<dd><p>Draws Bezier-like curve from point {<var>x1</var>,<var>y1</var>,<var>z1</var>} to {<var>x2</var>,<var>y2</var>,<var>z2</var>} using line style <var>stl</var>. At this tangent is co-directed with {<var>dx1</var>,<var>dy1</var>,<var>dz1</var>}, {<var>dx2</var>,<var>dy2</var>,<var>dz2</var>} and proportional to its amplitude.
+</p></dd></dl>
+
+<a name="index-facex"></a>
+<p><a name="facex"></a>
+</p><dl>
+<dt><a name="index-facex-1"></a><u>MGL command:</u> <b>facex</b><i> <code>x0 y0 z0 wy wz</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><a name="index-facey"></a>
+<p><a name="facey"></a>
+</p></dd><dt><a name="index-facey-1"></a><u>MGL command:</u> <b>facey</b><i> <code>x0 y0 z0 wx wz</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><a name="index-facez"></a>
+<p><a name="facez"></a>
+</p></dd><dt><a name="index-facez-1"></a><u>MGL command:</u> <b>facez</b><i> <code>x0 y0 z0 wx wy</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><p>Draws the solid rectangle (face) perpendicular to [x,y,z]-axis correspondingly at position {<var>x0</var>, <var>y0</var>, <var>z0</var>} with color <var>stl</var> and with widths <var>wx</var>, <var>wy</var>, <var>wz</var> along corresponding directions. At this colors can be the same for all vertexes or different if all 4 colors are specified for each vertex. Parameters <var>d1</var>!=0, <var>d2</var>!=0 set additional shift of the last vertex (i.e. to draw quadrangle).
+</p></dd></dl>
+
+<a name="index-sphere"></a>
+<p><a name="sphere"></a>
+</p><dl>
+<dt><a name="index-sphere-1"></a><u>MGL command:</u> <b>sphere</b><i> <code>x0 y0 r</code> ['col'='r']</i></dt>
+<dt><a name="index-sphere-2"></a><u>MGL command:</u> <b>sphere</b><i> <code>x0 y0 z0 r</code> ['col'='r']</i></dt>
+<dd><p>Draw the sphere with radius <var>r</var> and center at point {<var>x0</var>, <var>y0</var>, <var>z0</var>} and color <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-drop"></a>
+<p><a name="drop"></a>
+</p><dl>
+<dt><a name="index-drop-1"></a><u>MGL command:</u> <b>drop</b><i> <code>x0 y0 dx dy r</code> ['col'='b' <code>sh=1 asp=1</code>]</i></dt>
+<dt><a name="index-drop-2"></a><u>MGL command:</u> <b>drop</b><i> <code>x0 y0 z0 dx dy dz r</code> ['col'='b' <code>sh=1 asp=1</code>]</i></dt>
+<dd><p>Draw the drop with radius <var>r</var> at point {<var>x0</var>,<var>y0</var>,<var>z0</var>} elongated in direction {<var>dx</var>,<var>dy</var>,<var>dz</var>} and with color <var>col</var>. Parameter <var>sh</var> set the degree of drop oblongness: &lsquo;<samp>0</samp>&rsquo; is sphere, &lsquo;<samp>1</samp>&rsquo; is maximally oblongness drop. Parameter <var>asp</var> set relative width of the drop (this is analogue of &ldquo;ellipticity&rdquo; for the sphere). See section <a href="mathgl_en_9.html#Drops-sample">Drops sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-cone"></a>
+<p><a name="cone"></a>
+</p><dl>
+<dt><a name="index-cone-1"></a><u>MGL command:</u> <b>cone</b><i> <code>x1 y1 z1 x2 y2 z2 r1</code> [<code>r2=-1</code> 'stl'='' <code>edge=off</code>]</i></dt>
+<dd><p>Draw tube (or truncated cone if <var>edge</var>=<code>off</code>) between points {<var>x1</var>,<var>y1</var>,<var>z1</var>}, {<var>x2</var>,<var>y2</var>,<var>z2</var>} with radiuses at the edges <var>r1</var>, <var>r2</var>. If <var>r2</var>&lt;0 then it is supposed that <var>r2</var>=<var>r1</var>. The cone color is defined by string <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-rect"></a>
+<p><a name="rect"></a>
+</p><dl>
+<dt><a name="index-rect-1"></a><u>MGL command:</u> <b>rect</b><i> <code>x1 y1 x2 y2</code> ['st'='']</i></dt>
+<dt><a name="index-rect-2"></a><u>MGL command:</u> <b>rect</b><i> <code>x1 y1 z1 x2 y2 z2</code> ['st'='']</i></dt>
+<dd><p>Draw rectangle from point {<var>x1</var>,<var>y1</var>,<var>z1</var>} to point {<var>x2</var>,<var>y2</var>,<var>z2</var>} using colors <var>stl</var>. If <var>stl</var> have 4 or more colors then it defines colors for each rectangle vertex (useful for making gradients, like &lsquo;<samp>wwrr</samp>&rsquo;) else first color is used for whole rectangle.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Text-printing-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Primitives-drawing-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-Colorbar-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-printing-_0028MGL_0029-1"></a>
+<h2 class="section">8.6 Text printing (MGL)</h2>
+
+<p>These commands draw the text. There are commands for drawing text in arbitrary place, in arbitrary direction and along arbitrary curve. It is possible to use arbitrary font-faces and parse many TeX commands. The Unicode text is supported. So sometimes you need to specify locale. The <code>size</code> argument control the size of text: if positive it give the value, if negative it give the value relative to defined by <code>font</code> command. See section <a href="mathgl_en_1.html#Font-styles">Font styles</a>.
+</p>
+<a name="index-text"></a>
+<p><a name="text"></a>
+</p><dl>
+<dt><a name="index-text-1"></a><u>MGL command:</u> <b>text</b><i> <code>x y</code> 'text' ['fnt'='' <code>size=-1.4</code>]</i></dt>
+<dt><a name="index-text-2"></a><u>MGL command:</u> <b>text</b><i> <code>x y z</code> 'text' ['fnt'='' <code>size=-1.4</code>]</i></dt>
+<dd><p>Draws unrotated text string <var>text</var> at position {<var>x</var>,<var>y</var>,<var>z</var>} with specified style <var>fnt</var> and <var>size</var>. By default parameters from <code>font</code> command are used.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-text-3"></a><u>MGL command:</u> <b>text</b><i> <code>x y dx dy</code> 'text' [<code>size=-1.4</code>]</i></dt>
+<dt><a name="index-text-4"></a><u>MGL command:</u> <b>text</b><i> <code>x y z dx dy dz</code> 'text' [<code>size=-1.4</code>]</i></dt>
+<dd><p>The command plots the string <var>text</var> at position {<var>x</var>,<var>y</var>,<var>z</var>} along direction {<var>dx</var>,<var>dy</var>,<var>dz</var>} with specified style <var>fnt</var> and <var>size</var>. By default parameters from <code>font</code> command are used.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-text-5"></a><u>MGL command:</u> <b>text</b><i> ydat 'text' ['fnt'='' <code>size=-1 zval=nan</code>]</i></dt>
+<dt><a name="index-text-6"></a><u>MGL command:</u> <b>text</b><i> xdat ydat 'text' ['fnt'='' <code>size=-1 zval=nan</code>]</i></dt>
+<dt><a name="index-text-7"></a><u>MGL command:</u> <b>text</b><i> xdat ydat zdat 'text' ['fnt'='' <code>size=-1</code>]</i></dt>
+<dd><p>The command draws <var>text</var> along the curve between points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} by font style <var>fnt</var> and with size <var>size</var>. The string <var>fnt</var> may contain symbols &lsquo;<samp>t</samp>&rsquo; for printing the text under the curve (default), or &lsquo;<samp>T</samp>&rsquo; for printing the text above the curve. The sizes of 1st dimension must be equal for all arrays <var>xdat.nx=ydat.nx=zdat.nx</var>. If array <var>xdat</var> is not specified then its an automatic array is used with values equidistantly distributed along x. If array <var>zdat</var> is not specified then <var>z</var>[i] = <var>zval</var> is used. See section <a href="mathgl_en_9.html#Text-sample">Text sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-title"></a>
+<p><a name="title"></a>
+</p><dl>
+<dt><a name="index-title-1"></a><u>MGL command:</u> <b>title</b><i> 'text' ['fnt'='' <code>size=-2</code>]</i></dt>
+<dd><p>Print string <var>text</var> as title of the picture (at the top of the picture). Can be used at any place (even inside <a href="#subplot">subplot</a>).
+</p></dd></dl>
+
+<a name="index-fgets"></a>
+<p><a name="fgets"></a>
+</p><dl>
+<dt><a name="index-fgets-1"></a><u>MGL command:</u> <b>fgets</b><i> <code>x y</code> 'fname' [<code>n=0</code> 'fnt'='' <code>size=-1.4</code>]</i></dt>
+<dt><a name="index-fgets-2"></a><u>MGL command:</u> <b>fgets</b><i> <code>x y z</code> 'fname' [<code>n=0</code> 'fnt'='' <code>size=-1.4</code>]</i></dt>
+<dd><p>Draws unrotated <var>n</var>-th line of file <var>fname</var> at position {<var>x</var>,<var>y</var>,<var>z</var>} with specified <var>size</var>. By default parameters from <a href="#font">font</a> command are used.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Axis-and-Colorbar-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-and-Colorbar-_0028MGL_0029-1"></a>
+<h2 class="section">8.7 Axis and Colorbar (MGL)</h2>
+
+<p>These commands draw the &ldquo;things for measuring&rdquo;, like axis with ticks, colorbar with ticks, grid along axis, bounding box and labels for axis. For more information see section <a href="#Axis-settings-_0028MGL_0029">Axis settings (MGL)</a>.
+</p>
+<a name="index-axis-5"></a>
+<dl>
+<dt><a name="index-axis-6"></a><u>MGL command:</u> <b>axis</b><i> ['dir'='xyz' <code>adjust=off</code>]</i></dt>
+<dd><p>Draws axes with ticks (see section <a href="#Axis-settings-_0028MGL_0029">Axis settings (MGL)</a>) in directions determined by string parameter <var>dir</var>.If string contain the symbol &lsquo;<samp>_</samp>&rsquo; then tick labels are not printed. Font for ticks labels is determined by command <a href="#font">font</a>. Ticks will be automatically adjusted if <var>adjust</var>=<code>on</code> (by call of <code>adjust 'dir'</code>).
+</p></dd></dl>
+
+<a name="index-colorbar"></a>
+<p><a name="colorbar"></a>
+</p><dl>
+<dt><a name="index-colorbar-1"></a><u>MGL command:</u> <b>colorbar</b><i> ['sch'='' <code>pos=0</code>]</i></dt>
+<dd><p>Draws colorbar with color scheme <var>sch</var> (current scheme if <code>sch=''</code>) at edge of plot. Parameter <var>pos</var> specifies the position of colorbar: &lsquo;<samp>0</samp>&rsquo; - at right (default), &lsquo;<samp>1</samp>&rsquo; - at left, &lsquo;<samp>2</samp>&rsquo; - at top, &lsquo;<samp>3</samp>&rsquo; - at bottom. If string <var>sch</var> contains &lsquo;<samp>&lt;&gt;^_</samp>&rsquo; then the parameter <var>pos</var> is defined as: <code>pos=0</code> for &lsquo;<samp>&gt;</samp>&rsquo; (right), <code>pos=1</code> for &lsquo;<samp>&lt;</samp>&rsquo; (left), <code>pos=2</code> for &lsquo;<samp>^</samp>&rsquo; (top), <code>pos=3</code> for &lsquo;<samp>_</samp>&rsquo; (bottom). If string have &lsquo;<samp>A</samp>&rsquo; then absolute (relative to picture) coordinates is used. See section <a href="mathgl_en_9.html#Dens-sample">Dens sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-colorbar-2"></a><u>MGL command:</u> <b>colorbar</b><i> vdat ['sch'='' <code>pos=0</code>]</i></dt>
+<dd><p>The same as previous but with sharp colors <var>sch</var> (current palette if <code>sch=&quot;&quot;</code>) for values <var>v</var>. See section <a href="mathgl_en_9.html#ContD-sample">ContD sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-colorbar-3"></a><u>MGL command:</u> <b>colorbar</b><i> 'sch' <code>pos x y w h</code></i></dt>
+<dd><p>The same as first one but at arbitrary position of subplot {<var>x</var>, <var>y</var>} (supposed to be in range [0,1]). Parameters <var>w</var>, <var>h</var> set the relative width and height of the colorbar.
+</p></dd></dl>
+
+<a name="index-grid"></a>
+<p><a name="grid"></a>
+</p><dl>
+<dt><a name="index-grid-1"></a><u>MGL command:</u> <b>grid</b><i> ['dir'='xyz' 'pen'='B']</i></dt>
+<dd><p>Draws grid lines perpendicular to direction determined by string parameter <var>dir</var>. The step of grid lines is the same as tick step for an <code>axis</code>. The style of lines is determined by <var>pen</var> parameter.
+</p></dd></dl>
+
+<a name="index-box"></a>
+<p><a name="box"></a>
+</p><dl>
+<dt><a name="index-box-1"></a><u>MGL command:</u> <b>box</b><i> ['stl'='k' <code>ticks=on</code>]</i></dt>
+<dd><p>Draws bounding box outside the plotting volume with line style &rsquo;stl&rsquo;. If <code>ticks=on</code> then ticks are drawn with current axis setting.
+</p></dd></dl>
+
+<a name="index-xlabel"></a>
+<p><a name="xlabel"></a>
+</p><dl>
+<dt><a name="index-xlabel-1"></a><u>MGL command:</u> <b>xlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-ylabel"></a>
+<p><a name="ylabel"></a>
+</p></dd><dt><a name="index-ylabel-1"></a><u>MGL command:</u> <b>ylabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-zlabel"></a>
+<p><a name="zlabel"></a>
+</p></dd><dt><a name="index-zlabel-1"></a><u>MGL command:</u> <b>zlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-tlabel"></a>
+<p><a name="tlabel"></a>
+</p></dd><dt><a name="index-tlabel-1"></a><u>MGL command:</u> <b>tlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><p>Prints the label <var>text</var> for x-,y-,z-,t-axis (here &lsquo;<samp>t</samp>&rsquo; is &ldquo;ternary&rdquo; axis <em>t=1-x-y</em>). The position of label is determined by <var>pos</var> parameter. If <var>pos</var>=0 then label is printed at the center of axis. If <var>pos</var>&gt;0 then label is printed at the maximum of axis (default). If <var>pos</var>&lt;0 then label is printed at the minimum of axis. The font size is 1.4 times larger than the one for ticks <code>font</code>. Parameter <code>shift</code> specify additional shifting of the label. See section <a href="#Text-printing-_0028MGL_0029">Text printing (MGL)</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Legend-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-Colorbar-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Legend-_0028MGL_0029-1"></a>
+<h2 class="section">8.8 Legend (MGL)</h2>
+
+<p>These commands draw legend to the graph (useful for <a href="#g_t1D-plotting-_0028MGL_0029">1D plotting (MGL)</a>). Legend entry is a pair of strings: one for style of the line, another one with description text (with included LaTeX parsing). The array of string are accumulated first to the internal arrays (by command <a href="#addlegend">addlegend</a>) and are plotted later. The position of the legend can be selected automatic or manually. Parameters <var>fnt</var> and <var>size</var> specify the font style and size. Parameter <var>llen</var> set the relative width of the line sample and the text indent (default value is 0.1). If line style string for entry is empty then the corresponding text is printed without indent. If string contains &lsquo;<samp>A</samp>&rsquo; then legend coordinates set position in the picture. See section <a href="mathgl_en_9.html#Legend-sample">Legend sample</a>, for sample code and picture.
+</p>
+<a name="index-legend"></a>
+<p><a name="legend"></a>
+</p><dl>
+<dt><a name="index-legend-1"></a><u>MGL command:</u> <b>legend</b><i> [<code>pos=3</code> 'fnt'='rL' <code>size=-1 llen=0.1</code>]</i></dt>
+<dd><p>Draws legend of accumulated legend entries by font <var>fnt</var> with specified <var>size</var>. Parameter <var>pos</var> sets the position of the legend: &lsquo;<samp>0</samp>&rsquo; is bottom left corner, &lsquo;<samp>1</samp>&rsquo; is bottom right corner, &lsquo;<samp>2</samp>&rsquo; is top left corner, &lsquo;<samp>3</samp>&rsquo; is top right corner (is default).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-legend-2"></a><u>MGL command:</u> <b>legend</b><i> <code>x y</code> ['fnt'='rL' <code>size=-1 llen=0.1</code>]</i></dt>
+<dd><p>Draws legend of accumulated legend entries by font <var>fnt</var> with <var>size</var>. Position of legend in the current subplot is determined by parameter <var>x</var>, <var>y</var> which supposed to be normalized to interval [0,1].
+</p></dd></dl>
+
+<a name="index-addlegend"></a>
+<p><a name="addlegend"></a>
+</p><dl>
+<dt><a name="index-addlegend-1"></a><u>MGL command:</u> <b>addlegend</b><i> 'text' 'stl'</i></dt>
+<dd><p>Adds string <var>text</var> to internal legend accumulator. The style of described line and mark is specified in string <var>stl</var> (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). Maximal number of entries is 100.
+</p></dd></dl>
+
+<a name="index-clearlegend"></a>
+<p><a name="clearlegend"></a>
+</p><dl>
+<dt><a name="index-clearlegend-1"></a><u>MGL command:</u> <b>clearlegend</b></dt>
+<dd><p>Clears saved legend strings.
+</p></dd></dl>
+
+<a name="index-legendbox"></a>
+<p><a name="legendbox"></a>
+</p><dl>
+<dt><a name="index-legendbox-1"></a><u>MGL command:</u> <b>legendbox</b><i> <code>val</code></i></dt>
+<dd><p>Switches on/off the drawing of a box near legend. By default, the box is drawn.
+</p></dd></dl>
+
+<a name="index-legendmarks"></a>
+<p><a name="legendmarks"></a>
+</p><dl>
+<dt><a name="index-legendmarks-1"></a><u>MGL command:</u> <b>legendmarks</b><i> <code>val</code></i></dt>
+<dd><p>Set the number of marks in the legend. By default 1 mark is used.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t1D-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-plotting-_0028MGL_0029-1"></a>
+<h2 class="section">8.9 1D plotting (MGL)</h2>
+
+<p>These commands perform plotting of 1D data. 1D means that data depended from only 1 parameter like parametric curve {x(i),y(i),z(i)}, i=1...n. There are 5 generally different types of data representations: simple line plot (<a href="#plot">plot</a>), line plot with filling under it (<a href="#area">area</a>), stairs plot (<a href="#step">step</a>), bar plot (<a href="#bars">bars</a>, <a href="#barh">barh</a>) and vertical lines (<a href="#stem">stem</a>). Each type of plotting has similar interface. Most of plotting type has similar interface. There are 3D version and two 2D versions. One of last requires single array. The parameters of line and marks are specified by the string argument. If the string parameter is NULL then solid line with color from palette is used (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). Also there are some special 1d plots having slightly different interface: surface of curve rotation (<a href="#torus">torus</a>), chart (<a href="#chart">chart</a>) and error boxes (<a href="#error">error</a>), marks with variable size (<a href="#mark">mark</a>), tubes (<a href="#tube">tube</a>) and so on. See section <a href="mathgl_en_9.html#g_t1D-plot-sample">1D plot sample</a>, for sample code and picture.
+</p>
+<p>The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <var>xdat.nx=ydat.nx=zdat.nx</var>. If array <var>xdat</var> is not specified then its an automatic array is used with values equidistantly distributed along x. If array <var>zdat</var> is not specified then <var>zdat</var>[i] = <var>zval</var> is used (the default is at the bottom of the bounding box). String <var>stl</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>stl=''</code>) solid line with color from palette is used (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>).
+</p>
+<a name="index-plot"></a>
+<p><a name="plot"></a>
+</p><dl>
+<dt><a name="index-plot-1"></a><u>MGL command:</u> <b>plot</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-plot-2"></a><u>MGL command:</u> <b>plot</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-plot-3"></a><u>MGL command:</u> <b>plot</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws continuous lines between points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. See also <a href="#area">area</a>, <a href="#step">step</a>, <a href="#stem">stem</a>, <a href="#tube">tube</a>, <a href="#mark">mark</a>, <a href="#error">error</a>, <a href="#belt">belt</a>, <a href="#tens">tens</a>. See section <a href="mathgl_en_9.html#Plot-sample">Plot sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+<a name="index-radar"></a>
+<p><a name="radar"></a>
+</p><dl>
+<dt><a name="index-radar-1"></a><u>MGL command:</u> <b>radar</b><i> adat ['stl'='' <code>r=-1</code>]</i></dt>
+<dd><p>Draws radar chart which is continuous lines between points located on an radial lines (like plot in Polar coordinates). The plots are drawn for each row if one of the data is the matrix. Parameter <var>r</var> set the additional shift of data (i.e. the data <var>adat</var>+<var>r</var> is used instead of <var>adat</var>). If <code>r&lt;0</code> then <code>r=max(0, -min(adat)</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>stl=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). If <var>pen</var> containt &lsquo;<samp>#</samp>&rsquo; symbol then &quot;grid&quot; (radial lines and circle for <var>r</var>) is drawn See also <a href="#plot">plot</a>. See section <a href="mathgl_en_9.html#Radar-sample">Radar sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-tens"></a>
+<p><a name="tens"></a>
+</p><dl>
+<dt><a name="index-tens-1"></a><u>MGL command:</u> <b>tens</b><i> ydat cdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tens-2"></a><u>MGL command:</u> <b>tens</b><i> xdat ydat cdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tens-3"></a><u>MGL command:</u> <b>tens</b><i> xdat ydat zdat cdat ['stl'='']</i></dt>
+<dd><p>Draws continuous lines between points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} with color defined by <var>cdat</var>[i] (look like tension plot). See also <a href="#plot">plot</a>, <a href="#mesh">mesh</a>, <a href="#fall">fall</a>. See section <a href="mathgl_en_9.html#Tens-sample">Tens sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-area"></a>
+<p><a name="area"></a>
+</p><dl>
+<dt><a name="index-area-1"></a><u>MGL command:</u> <b>area</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-area-2"></a><u>MGL command:</u> <b>area</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-area-3"></a><u>MGL command:</u> <b>area</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws continuous lines between points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} and fills it down to axis (to axis plane in 3D). You can use gradient filling if number of specified colors is equal to 2*number of curves. If string contain symbol &lsquo;<samp>a</samp>&rsquo; then lines are drawn one above another (like summation). See also <a href="#plot">plot</a>, <a href="#bars">bars</a>, <a href="#stem">stem</a>, <a href="#region">region</a>. See section <a href="mathgl_en_9.html#Area-sample">Area sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-region"></a>
+<p><a name="region"></a>
+</p><dl>
+<dt><a name="index-region-1"></a><u>MGL command:</u> <b>region</b><i> fdat gdat ['stl'='' <code>inside=off</code>]</i></dt>
+<dt><a name="index-region-2"></a><u>MGL command:</u> <b>region</b><i> xdat fdat gdat ['stl'='' <code>inside=off</code>]</i></dt>
+<dd><p>Fills area between curves {<var>xdat</var>[i], <var>fdat</var>[i]} and {<var>xdat</var>[i], <var>gdat</var>[i]}. Parameter  <code>inside=off</code> set to fill are with y1&lt;y&lt;y2 else the area with y2&lt;y&lt;y1 will be also filled. You can use gradient filling if number of specified colors is equal to 2*number of curves. See also <a href="#area">area</a>, <a href="#bars">bars</a>, <a href="#stem">stem</a>. See section <a href="mathgl_en_9.html#Region-sample">Region sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-stem"></a>
+<p><a name="stem"></a>
+</p><dl>
+<dt><a name="index-stem-1"></a><u>MGL command:</u> <b>stem</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-stem-2"></a><u>MGL command:</u> <b>stem</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-stem-3"></a><u>MGL command:</u> <b>stem</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws vertical lines from points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} to axis (to axis plane in 3D). See also <a href="#area">area</a>, <a href="#bars">bars</a>, <a href="#plot">plot</a>, <a href="#mark">mark</a>. See section <a href="mathgl_en_9.html#Stem-sample">Stem sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-bars"></a>
+<p><a name="bars"></a>
+</p><dl>
+<dt><a name="index-bars-1"></a><u>MGL command:</u> <b>bars</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-bars-2"></a><u>MGL command:</u> <b>bars</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-bars-3"></a><u>MGL command:</u> <b>bars</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws vertical bars from points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} to axis (to axis plane in 3D). If style contain symbol &lsquo;<samp>a</samp>&rsquo; then lines are drawn one above another. If string contain symbol &lsquo;<samp>f</samp>&rsquo; then waterfall chart is drawn for determining the cumulative effect of sequentially introduced positive or negative values. You can different colors for positive and negative values if number of specified colors is equal to 2*number of curves. See also <a href="#barh">barh</a>, <a href="#area">area</a>, <a href="#stem">stem</a>, <a href="#chart">chart</a>. See section <a href="mathgl_en_9.html#Bars-sample">Bars sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-barh"></a>
+<p><a name="barh"></a>
+</p><dl>
+<dt><a name="index-barh-1"></a><u>MGL command:</u> <b>barh</b><i> vdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-barh-2"></a><u>MGL command:</u> <b>barh</b><i> ydat vdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws horizontal bars from points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} to y-axis. If array <var>ydat</var> is not specified then its an automatic array is used with values equidistantly distributed along y. Marks at data points are not drawn. If style contain symbol &lsquo;<samp>a</samp>&rsquo; then lines are drawn one above another. If string contain symbol &lsquo;<samp>f</samp>&rsquo; then waterfall chart is drawn for determining the cumulative effect of sequentially introduced positive or negative values. You can different colors for positive and negative values if number of specified colors is equal to 2*number of curves.
+See also <a href="#bars">bars</a>. See section <a href="mathgl_en_9.html#Barh-sample">Barh sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-chart"></a>
+<p><a name="chart"></a>
+</p><dl>
+<dt><a name="index-chart-1"></a><u>MGL command:</u> <b>chart</b><i> adat ['col'='']</i></dt>
+<dd><p>The command draws colored stripes (boxes) for data in array <var>adat</var>. The number of stripes is equal to the number of rows in <var>adat</var> (equal to <var>a.ny</var>). The color of each next stripe is cyclically changed from colors specified in string <var>col</var> or in palette. Spaces in colors denote transparent &ldquo;color&rdquo;, i.e. if <var>col</var> contain space(s) then corresponding stripe(s) are not drawn. The stripe width is proportional to value of element in <var>a</var>. Chart is plotted only for data with non-negative elements. If string <var>col</var> have symbol &lsquo;<samp>#</samp>&rsquo; then black border lines are drawn. The most nice form the chart have in 3d (after rotation of coordinates) or in cylindrical coordinates (becomes so called Pie chart). See section <a href="mathgl_en_9.html#Chart-sample">Chart sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-step"></a>
+<p><a name="step"></a>
+</p><dl>
+<dt><a name="index-step-1"></a><u>MGL command:</u> <b>step</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-step-2"></a><u>MGL command:</u> <b>step</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-step-3"></a><u>MGL command:</u> <b>step</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws continuous stairs for points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. See also <a href="#plot">plot</a>, <a href="#stem">stem</a>, <a href="#tile">tile</a>, <a href="#boxs">boxs</a>. See section <a href="mathgl_en_9.html#Step-sample">Step sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-torus"></a>
+<p><a name="torus"></a>
+</p><dl>
+<dt><a name="index-torus-1"></a><u>MGL command:</u> <b>torus</b><i> zdat ['stl'='']</i></dt>
+<dt><a name="index-torus-2"></a><u>MGL command:</u> <b>torus</b><i> rdat zdat ['stl'='']</i></dt>
+<dd><p>Draws surface which is result of curve {<var>rdat</var>[i], <var>zdat</var>[i], <var>zdat</var>[i]} rotation around <a href="#axialdir">axialdir</a> axis. If array <var>rdat</var> is not specified then its an automatic array is used with values equidistantly distributed along x. See also <a href="#plot">plot</a>, <a href="#axial">axial</a>. See section <a href="mathgl_en_9.html#Torus-sample">Torus sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-tube"></a>
+<p><a name="tube"></a>
+</p><dl>
+<dt><a name="index-tube-1"></a><u>MGL command:</u> <b>tube</b><i> ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-2"></a><u>MGL command:</u> <b>tube</b><i> ydat <code>rval</code> ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-3"></a><u>MGL command:</u> <b>tube</b><i> xdat ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-4"></a><u>MGL command:</u> <b>tube</b><i> xdat ydat <code>rval</code> ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-5"></a><u>MGL command:</u> <b>tube</b><i> xdat ydat zdat rdat ['stl'='']</i></dt>
+<dt><a name="index-tube-6"></a><u>MGL command:</u> <b>tube</b><i> xdat ydat zdat <code>rval</code> ['stl'='']</i></dt>
+<dd><p>Draws tube with variable radius <var>rdat</var>[i] (or <var>rval</var>) at points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. See also <a href="#plot">plot</a>. See section <a href="mathgl_en_9.html#Tube-sample">Tube sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-mark"></a>
+<p><a name="mark"></a>
+</p><dl>
+<dt><a name="index-mark-1"></a><u>MGL command:</u> <b>mark</b><i> ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-mark-2"></a><u>MGL command:</u> <b>mark</b><i> xdat ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-mark-3"></a><u>MGL command:</u> <b>mark</b><i> xdat ydat zdat rdat ['stl'='']</i></dt>
+<dd><p>Draws  marks with size <var>rdat</var>[i]*<code>marksize</code> at points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. See also <a href="#plot">plot</a>, <a href="#textmark">textmark</a>, <a href="#stem">stem</a>, <a href="#error">error</a>. See section <a href="mathgl_en_9.html#Mark-sample">Mark sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-textmark"></a>
+<p><a name="textmark"></a>
+</p><dl>
+<dt><a name="index-textmark-1"></a><u>MGL command:</u> <b>textmark</b><i> ydat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-2"></a><u>MGL command:</u> <b>textmark</b><i> ydat rdat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-3"></a><u>MGL command:</u> <b>textmark</b><i> xdat ydat rdat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-4"></a><u>MGL command:</u> <b>textmark</b><i> xdat ydat zdat rdat 'txt' ['stl'='']</i></dt>
+<dd><p>Draws string <var>txt</var> as marks with size <var>rdat</var>[i]*<code>marksize</code> at points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. If array <var>rdat</var> is not specified then <var>rdat</var>[i] = 1. See also <a href="#plot">plot</a>, <a href="#mark">mark</a>, <a href="#stem">stem</a>. See section <a href="mathgl_en_9.html#Error-sample">Error sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-error"></a>
+<p><a name="error"></a>
+</p><dl>
+<dt><a name="index-error-1"></a><u>MGL command:</u> <b>error</b><i> ydat yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-error-2"></a><u>MGL command:</u> <b>error</b><i> xdat ydat yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-error-3"></a><u>MGL command:</u> <b>error</b><i> xdat ydat xerr yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws error boxes {<var>xerr</var>[i], <var>yerr</var>[i]} at points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zval</var>}. See also <a href="#plot">plot</a>. See section <a href="mathgl_en_9.html#TextMark-sample">TextMark sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-boxplot"></a>
+<p><a name="boxplot"></a>
+</p><dl>
+<dt><a name="index-boxplot-1"></a><u>MGL command:</u> <b>boxplot</b><i> adat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-boxplot-2"></a><u>MGL command:</u> <b>boxplot</b><i> xdat adat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws boxplot (also known as a box-and-whisker diagram) at points <var>xdat</var> in plane z=<code>zval</code> (by default is at the bottom of the bounding box). This is five-number summaries of data &lt;em&gt;adat&lt;/em&gt; (minimum, lower quartile (Q1), median (Q2), upper quartile (Q3) and maximum) along second (j-th) direction. See also <a href="#plot">plot</a>, <a href="#error">error</a>, <a href="#bars">bars</a>. See section <a href="mathgl_en_9.html#BoxPlot-sample">BoxPlot sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t2D-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-plotting-_0028MGL_0029-1"></a>
+<h2 class="section">8.10 2D plotting (MGL)</h2>
+
+<p>These commands perform plotting of 2D data. 2D means that data depend from 2 independent parameters like matrix <em>f(x_i,y_j), i=1...n, j=1...m</em>. There are 6 generally different types of data representations: simple mesh lines plot (<a href="#mesh">mesh</a>), surface plot (<a href="#surf">surf</a>), surface plot by boxes (<a href="#boxs">boxs</a>), surface plot by tiles (<a href="#tile">tile</a>), waterfall-like plot (<a href="#fall">fall</a>), belt plot (<a href="#belt">belt</a>), density plot (<a href="#dens">dens</a>), contour lines plot (<a href="#cont">cont</a>), solid contours plot (<a href="#contf">contf</a>) and its rotational figure (<a href="#axial">axial</a>). Commands <a href="#cont">cont</a>, <a href="#contf">contf</a> and <a href="#axial">axial</a> have variants for automatic and manual selection of level values for contours. Also there are commands for plotting data grid lines according to the data format (<a href="#grid">grid</a>) for enhancing density or contour plots. Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. See section <a href="mathgl_en_9.html#g_t2D-plot-sample">2D plot sample</a>, for sample code and picture.
+</p>
+<p>String parameter <var>sch</var> sets the color scheme (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>). Previous color scheme is used by default. The minor dimensions of arrays <var>xdat</var>, <var>ydat</var>, <var>zdat</var> should be equal <code>xdat.nx=zdat.nx &amp;&amp; ydat.nx=zdat.ny</code> or <code>xdat.nx=ydat.nx=zdat.nx &amp;&amp; xdat.ny=ydat.ny=zdat.ny</code>. Arrays <var>xdat</var> and <var>ydat</var> can be vectors (not matrices as <var>zdat</var>). If array <var>xdat</var>, <var>ydat</var> is not specified then its an automatic arrays are used with values equidistantly distributed along x, y. Graphics are plotted for each z-slice of the data.
+</p>
+<a name="index-surf"></a>
+<p><a name="surf"></a>
+</p><dl>
+<dt><a name="index-surf-1"></a><u>MGL command:</u> <b>surf</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-surf-2"></a><u>MGL command:</u> <b>surf</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. See also <a href="#mesh">mesh</a>, <a href="#dens">dens</a>, <a href="#belt">belt</a>, <a href="#tile">tile</a>, <a href="#boxs">boxs</a>, <a href="#surfc">surfc</a>, <a href="#surfa">surfa</a>. See section <a href="mathgl_en_9.html#Surf-sample">Surf sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-mesh"></a>
+<p><a name="mesh"></a>
+</p><dl>
+<dt><a name="index-mesh-1"></a><u>MGL command:</u> <b>mesh</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-mesh-2"></a><u>MGL command:</u> <b>mesh</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws mesh lines for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. See also <a href="#surf">surf</a>, <a href="#fall">fall</a>, <a href="#meshnum">meshnum</a>, <a href="#cont">cont</a>, <a href="#tens">tens</a>. See section <a href="mathgl_en_9.html#Mesh-sample">Mesh sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-fall"></a>
+<p><a name="fall"></a>
+</p><dl>
+<dt><a name="index-fall-1"></a><u>MGL command:</u> <b>fall</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-fall-2"></a><u>MGL command:</u> <b>fall</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws fall lines for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. If <var>sch</var> contain &lsquo;<samp>x</samp>&rsquo; then lines are drawn along x-direction else (by default) lines are drawn along y-direction. See also <a href="#belt">belt</a>, <a href="#mesh">mesh</a>, <a href="#tens">tens</a>, <a href="#meshnum">meshnum</a>. See section <a href="mathgl_en_9.html#Fall-sample">Fall sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-belt"></a>
+<p><a name="belt"></a>
+</p><dl>
+<dt><a name="index-belt-1"></a><u>MGL command:</u> <b>belt</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-belt-2"></a><u>MGL command:</u> <b>belt</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws belts for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. If <var>sch</var> contain &lsquo;<samp>x</samp>&rsquo; then belts are drawn along x-direction else (by default) lines are drawn along y-direction. See also <a href="#fall">fall</a>, <a href="#surf">surf</a>, <a href="#plot">plot</a>, <a href="#meshnum">meshnum</a>. See section <a href="mathgl_en_9.html#Belt-sample">Belt sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-boxs"></a>
+<p><a name="boxs"></a>
+</p><dl>
+<dt><a name="index-boxs-1"></a><u>MGL command:</u> <b>boxs</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-boxs-2"></a><u>MGL command:</u> <b>boxs</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws vertical boxes for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. See also <a href="#surf">surf</a>, <a href="#dens">dens</a>, <a href="#tile">tile</a>, <a href="#step">step</a>. See section <a href="mathgl_en_9.html#Boxs-sample">Boxs sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-tile"></a>
+<p><a name="tile"></a>
+</p><dl>
+<dt><a name="index-tile-1"></a><u>MGL command:</u> <b>tile</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-tile-2"></a><u>MGL command:</u> <b>tile</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws horizontal tiles for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Such plot can be used as 3d generalization of <a href="#step">step</a>. See also <a href="#surf">surf</a>, <a href="#boxs">boxs</a>, <a href="#step">step</a>, <a href="#tiles">tiles</a>. See section <a href="mathgl_en_9.html#Tile-sample">Tile sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-dens"></a>
+<p><a name="dens"></a>
+</p><dl>
+<dt><a name="index-dens-1"></a><u>MGL command:</u> <b>dens</b><i> zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-dens-2"></a><u>MGL command:</u> <b>dens</b><i> xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws density plot for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var>. See also <a href="#surf">surf</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>, <a href="#boxs">boxs</a>, <a href="#tile">tile</a>, <code>dens[xyz]</code>. See section <a href="mathgl_en_9.html#Dens-sample">Dens sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-cont"></a>
+<p><a name="cont"></a>
+</p><dl>
+<dt><a name="index-cont-1"></a><u>MGL command:</u> <b>cont</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-cont-2"></a><u>MGL command:</u> <b>cont</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws contour lines for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var> (or for <var>z</var>=<var>vdat</var>[k] if <code>zval=nan</code>). Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k. If string <var>stl</var> contain &rsquo;t&rsquo; (or &rsquo;T&rsquo;) symbol then contour labels will be drawn below (or above) the contours. See also <a href="#dens">dens</a>, <a href="#contf">contf</a>, <a href="#contd">contd</a>, <a href="#axial">axial</a>, <code>cont[xyz]</code>. See section <a href="mathgl_en_9.html#Cont-sample">Cont sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cont-3"></a><u>MGL command:</u> <b>cont</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-cont-4"></a><u>MGL command:</u> <b>cont</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see, <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-contf"></a>
+<p><a name="contf"></a>
+</p><dl>
+<dt><a name="index-contf-1"></a><u>MGL command:</u> <b>contf</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-contf-2"></a><u>MGL command:</u> <b>contf</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws solid (or filled) contours for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var> (or for <var>z</var>=<var>vdat</var>[k] if <code>zval=nan</code>). Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k (must be <code>vdat.nx&gt;2</code>). See also <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contd">contd</a>, <code>contf[xyz]</code>. See section <a href="mathgl_en_9.html#ContF-sample">ContF sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contf-3"></a><u>MGL command:</u> <b>contf</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-contf-4"></a><u>MGL command:</u> <b>contf</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see, <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-contd"></a>
+<p><a name="contd"></a>
+</p><dl>
+<dt><a name="index-contd-1"></a><u>MGL command:</u> <b>contd</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-contd-2"></a><u>MGL command:</u> <b>contd</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws solid (or filled) contours for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var> (or for <var>z</var>=<var>vdat</var>[k] if <code>zval=nan</code>) with manual colors. Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k (must be <code>vdat.nx&gt;2</code>). The color of k-th contour is <code>sch[k%strlen(sch)]</code>. See also <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>. See section <a href="mathgl_en_9.html#ContD-sample">ContD sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contd-3"></a><u>MGL command:</u> <b>contd</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-contd-4"></a><u>MGL command:</u> <b>contd</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see, <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-axial"></a>
+<p><a name="axial"></a>
+</p><dl>
+<dt><a name="index-axial-1"></a><u>MGL command:</u> <b>axial</b><i> vdat zdat ['sch'='']</i></dt>
+<dt><a name="index-axial-2"></a><u>MGL command:</u> <b>axial</b><i> vdat xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws surface which is result of contour plot rotation surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. If string <var>sch</var> contain symbols &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo; then rotation axis <code>axialdir</code> will be set to specified direction. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#cont">cont</a>, <a href="#contf">contf</a>, <a href="#torus">torus</a>, <a href="#surf3">surf3</a>. See section <a href="mathgl_en_9.html#Axial-sample">Axial sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axial-3"></a><u>MGL command:</u> <b>axial</b><i> zdat ['sch'='' <code>num=3</code>]</i></dt>
+<dt><a name="index-axial-4"></a><u>MGL command:</u> <b>axial</b><i> xdat ydat zdat ['sch'='' <code>num=3</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see, <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-grad"></a>
+<p><a name="grad"></a>
+</p><dl>
+<dt><a name="index-grad-1"></a><u>MGL command:</u> <b>grad</b><i> pdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-grad-2"></a><u>MGL command:</u> <b>grad</b><i> xdat ydat pdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-grad-3"></a><u>MGL command:</u> <b>grad</b><i> xdat ydat zdat pdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Draws gradient lines for scalar field <var>pdat</var> specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j]} or {<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]}. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. Number of lines is proportional to <var>num</var>. If <var>num</var>&lt;0 then lines start from borders only. See also <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#dens3">dens3</a>, <a href="#cont3">cont3</a>, <a href="#flow">flow</a>. See section <a href="mathgl_en_9.html#Grad-sample">Grad sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+<a name="index-grid2"></a>
+<p><a name="grid2"></a>
+</p><dl>
+<dt><a name="index-grid2-1"></a><u>MGL command:</u> <b>grid2</b><i> zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-grid2-2"></a><u>MGL command:</u> <b>grid2</b><i> xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws grid lines for density plot of surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var>. See also <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="g_t3D-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-plotting-_0028MGL_0029-1"></a>
+<h2 class="section">8.11 3D plotting (MGL)</h2>
+
+<p>These commands perform plotting of 3D data. 3D means that data depend from 3 independent parameters like matrix <em>f(x_i,y_j,z_k), i=1...n, j=1...m, k=1...l</em>. There are 4 generally different types of data representations: isosurface or surface of constant value (<a href="#surf3">surf3</a>), density plot at slices (Dens3), contour lines plot at slices (<a href="#cont3">cont3</a>), solid contours plot at slices (<a href="#contf3">contf3</a>) and cloud-like plot (<a href="#cloud">cloud</a>). Commands <a href="#surf3">surf3</a>, <a href="#cont3">cont3</a> and <a href="#contf3">contf3</a> have variants for automatic and manual selection of level values for surfaces/contours. Also there are commands for plotting data grid lines according to the data format (<a href="#grid3">grid3</a>) for enhancing density or contour plots. Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. See section <a href="mathgl_en_9.html#g_t3D-plot-sample">3D plot sample</a>, for sample code and picture.
+</p>
+<p>String paramter <var>sch</var> sets the color scheme (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>). Previous color scheme is used by default. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). If array <var>xdat</var>, <var>ydat</var>, <var>zdat</var> is not specified then its an automatic arrays are used with values equidistantly distributed along x, y, z.
+</p>
+
+<a name="index-surf3"></a>
+<p><a name="surf3"></a>
+</p><dl>
+<dt><a name="index-surf3-1"></a><u>MGL command:</u> <b>surf3</b><i> adat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3-2"></a><u>MGL command:</u> <b>surf3</b><i> xdat ydat zdat adat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Draws isosurface plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) at <var>a</var>(x,y,z)=<var>val</var>. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#cloud">cloud</a>, <a href="#dens3">dens3</a>, <a href="#surf3c">surf3c</a>, <a href="#surf3a">surf3a</a>, <a href="#axial">axial</a>. See section <a href="mathgl_en_9.html#Surf3-sample">Surf3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3-3"></a><u>MGL command:</u> <b>surf3</b><i> adat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3-4"></a><u>MGL command:</u> <b>surf3</b><i> xdat ydat zdat adat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in color range (see <a href="#caxis">caxis</a>) isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-dens3"></a>
+<p><a name="dens3"></a>
+</p><dl>
+<dt><a name="index-dens3-1"></a><u>MGL command:</u> <b>dens3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-dens3-2"></a><u>MGL command:</u> <b>dens3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Draws density plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Density is plotted at slice <var>sval</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. If string <var>stl</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. See also <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a>, <a href="#dens">dens</a>, <a href="#grid3">grid3</a>. See section <a href="mathgl_en_9.html#Dens3-sample">Dens3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-densa"></a>
+<p><a name="densa"></a>
+</p><dl>
+<dt><a name="index-densa-1"></a><u>MGL command:</u> <b>densa</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-densa-2"></a><u>MGL command:</u> <b>densa</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Draws density plots at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-cont3"></a>
+<p><a name="cont3"></a>
+</p><dl>
+<dt><a name="index-cont3-1"></a><u>MGL command:</u> <b>cont3</b><i> vdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-cont3-2"></a><u>MGL command:</u> <b>cont3</b><i> vdat xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Draws contour plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Contours are plotted for values specified in array <var>vdat</var> at slice <var>sval</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. If string <var>stl</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. If string <var>stl</var> contain &rsquo;t&rsquo; (or &rsquo;T&rsquo;) symbol then contour labels will be drawn below (or above) the contours. See also <a href="#dens3">dens3</a>, <a href="#contf3">contf3</a>, <a href="#cont">cont</a>, <a href="#grid3">grid3</a>. See section <a href="mathgl_en_9.html#Cont3-sample">Cont3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cont3-3"></a><u>MGL command:</u> <b>cont3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-cont3-4"></a><u>MGL command:</u> <b>cont3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-conta"></a>
+<p><a name="conta"></a>
+</p><dl>
+<dt><a name="index-conta-1"></a><u>MGL command:</u> <b>conta</b><i> adat ['sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-conta-2"></a><u>MGL command:</u> <b>conta</b><i> xdat ydat zdat adat ['sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Draws contour plots at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-contf3"></a>
+<p><a name="contf3"></a>
+</p><dl>
+<dt><a name="index-contf3-1"></a><u>MGL command:</u> <b>contf3</b><i> vdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-contf3-2"></a><u>MGL command:</u> <b>contf3</b><i> vdat xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Draws solid contour plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Contours are plotted for values specified in array <var>vdat</var> at slice <var>sval</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. If string <var>stl</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. See also <a href="#dens3">dens3</a>, <a href="#cont3">cont3</a>, <a href="#contf">contf</a>, <a href="#grid3">grid3</a>. See section <a href="mathgl_en_9.html#ContF3-sample">ContF3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contf3-3"></a><u>MGL command:</u> <b>contf3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-contf3-4"></a><u>MGL command:</u> <b>contf3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-contfa"></a>
+<p><a name="contfa"></a>
+</p><dl>
+<dt><a name="index-contfa-1"></a><u>MGL command:</u> <b>contfa</b><i> adat ['sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-contfa-2"></a><u>MGL command:</u> <b>contfa</b><i> xdat ydat zdat adat ['sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Draws solid contour plots at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-grid3"></a>
+<p><a name="grid3"></a>
+</p><dl>
+<dt><a name="index-grid3-1"></a><u>MGL command:</u> <b>grid3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-grid3-2"></a><u>MGL command:</u> <b>grid3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Draws grid for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Grid is plotted at slice <var>sval</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. See also <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a>, <a href="#dens3">dens3</a>, <a href="#grid2">grid2</a>. See section <a href="mathgl_en_9.html#Dens3-sample">Dens3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-grida"></a>
+<p><a name="grida"></a>
+</p><dl>
+<dt><a name="index-grida-1"></a><u>MGL command:</u> <b>grida</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-grida-2"></a><u>MGL command:</u> <b>grida</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Draws grids at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-cloud"></a>
+<p><a name="cloud"></a>
+</p><dl>
+<dt><a name="index-cloud-1"></a><u>MGL command:</u> <b>cloud</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-cloud-2"></a><u>MGL command:</u> <b>cloud</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Draws cloud for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). This plot is a set of cubes with color and transparency proportional to value of <var>adat</var>. The resulting plot is like cloud &ndash; low value is transparent but higher ones are not. The number of plotting cells depend on <a href="#meshnum">meshnum</a>. Paramater <var>alpha</var> changes the overall transparency of plot. See also <a href="#surf3">surf3</a>. See section <a href="mathgl_en_9.html#Cloud-sample">Cloud sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-beam"></a>
+<p><a name="beam"></a>
+</p><dl>
+<dt><a name="index-beam-1"></a><u>MGL command:</u> <b>beam</b><i> tr g1 g2 adat <code>rval</code> ['sch'='' <code>flag=0 num=3</code>]</i></dt>
+<dd><p>Draws  <var>num</var>-th uniformly distributed in color range (see <code>caxis</code>) isosurfaces for 3d array <var>adat</var>. This is special kind of plot for <var>adat</var> specified in accompanied coordinates along curve <var>tr</var> with orts <var>g1</var>, <var>g2</var> and with transverse scale <var>rval</var>. Variable <var>flag</var> is bitwise: &lsquo;<samp>0x1</samp>&rsquo; - draw in accompanied (not laboratory) coordinates; &lsquo;<samp>0x2</samp>&rsquo; - draw projection to <em>\rho-z</em> plane; &lsquo;<samp>0x4</samp>&rsquo; - draw normalized in each slice field. The x-size of data arrays <var>tr</var>, <var>g1</var>, <var>g2</var> must be nx&gt;2. The y-size of data arrays <var>tr</var>, <var>g1</var>, <var>g2</var> and z-size of the data array <var>a</var> must be equal. See also <a href="#surf3">surf3</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Dual-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dual-plotting-_0028MGL_0029-1"></a>
+<h2 class="section">8.12 Dual plotting (MGL)</h2>
+
+<p>These plotting commands draw <em>two matrix</em> simultaneously. There are 5 generally different types of data representations: surface or isosurface colored by other data (<a href="#surfc">surfc</a>, <a href="#surf3c">surf3c</a>), surface or isosurface transpared by other data (<a href="#surfa">surfa</a>, <a href="#surf3a">surf3a</a>), tiles with variable size (<a href="#tiles">tiles</a>), mapping diagram (<a href="#map">map</a>), STFA diagram (<a href="#stfa">stfa</a>). Commands <a href="#surf3a">surf3a</a> and <a href="#surf3c">surf3c</a> have variants for automatic and manual selection of level values for isosurfaces. Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array.
+</p>
+<p>String paramter <var>sch</var> sets the color scheme (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>). Previous color scheme is used by default. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). If array <var>xdat</var>, <var>ydat</var>, <var>zdat</var> is not specified then its an automatic arrays are used with values equidistantly distributed along x, y, z.
+</p>
+<a name="index-surfc"></a>
+<p><a name="surfc"></a>
+</p><dl>
+<dt><a name="index-surfc-1"></a><u>MGL command:</u> <b>surfc</b><i> zdat cdat ['sch'='']</i></dt>
+<dt><a name="index-surfc-2"></a><u>MGL command:</u> <b>surfc</b><i> xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Draws surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} and color it by matrix <var>cdat</var>[i,j]. See also <a href="#surf">surf</a>, <a href="#surfa">surfa</a>, <a href="#surf3c">surf3c</a>. See section <a href="mathgl_en_9.html#SurfC-sample">SurfC sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-surf3c"></a>
+<p><a name="surf3c"></a>
+</p><dl>
+<dt><a name="index-surf3c-1"></a><u>MGL command:</u> <b>surf3c</b><i> adat cdat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3c-2"></a><u>MGL command:</u> <b>surf3c</b><i> xdat ydat zdat adat cdat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Draws isosurface plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) at <var>a</var>(x,y,z)=<var>val</var>. It is mostly the same as <a href="#surf3">surf3</a> command but the color of isosurface depends on values of array <var>cdat</var>. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#surf3">surf3</a>, <a href="#surfc">surfc</a>, <a href="#surf3a">surf3a</a>. See section <a href="mathgl_en_9.html#Surf3C-sample">Surf3C sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3c-3"></a><u>MGL command:</u> <b>surf3c</b><i> adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3c-4"></a><u>MGL command:</u> <b>surf3c</b><i> xdat ydat zdat adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in color range (see <code>caxis</code>) isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-surfa"></a>
+<p><a name="surfa"></a>
+</p><dl>
+<dt><a name="index-surfa-1"></a><u>MGL command:</u> <b>surfa</b><i> zdat cdat ['sch'='']</i></dt>
+<dt><a name="index-surfa-2"></a><u>MGL command:</u> <b>surfa</b><i> xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Draws surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} and transparent it by matrix <var>cdat</var>[i,j]. See also <a href="#surf">surf</a>, <a href="#surfc">surfc</a>, <a href="#surf3a">surf3a</a>, <a href="#tiles">tiles</a>. See section <a href="mathgl_en_9.html#SurfA-sample">SurfA sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-surf3a"></a>
+<p><a name="surf3a"></a>
+</p><dl>
+<dt><a name="index-surf3a-1"></a><u>MGL command:</u> <b>surf3a</b><i> adat cdat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3a-2"></a><u>MGL command:</u> <b>surf3a</b><i> xdat ydat zdat adat cdat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Draws isosurface plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) at <var>a</var>(x,y,z)=<var>val</var>. It is mostly the same as <a href="#surf3">surf3</a> command but the transparency of isosurface depends on values of array <var>cdat</var>. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#surf3">surf3</a>, <a href="#surfa">surfa</a>, <a href="#surf3c">surf3c</a>. See section <a href="mathgl_en_9.html#Surf3A-sample">Surf3A sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3a-3"></a><u>MGL command:</u> <b>surf3a</b><i> adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3a-4"></a><u>MGL command:</u> <b>surf3a</b><i> xdat ydat zdat adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in color range (see <code>caxis</code>) isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-tiles"></a>
+<p><a name="tiles"></a>
+</p><dl>
+<dt><a name="index-tiles-1"></a><u>MGL command:</u> <b>tiles</b><i> zdat rdat ['sch'='']</i></dt>
+<dt><a name="index-tiles-2"></a><u>MGL command:</u> <b>tiles</b><i> xdat ydat zdat rdat ['sch'='']</i></dt>
+<dd><p>Draws horizontal tiles for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. It is mostly the same as <a href="#tile">tile</a> but the size of tiles is determined by <var>rdat</var> array. See also <a href="#surfa">surfa</a>, <a href="#tile">tile</a>. See section <a href="mathgl_en_9.html#TileS-sample">TileS sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-map"></a>
+<p><a name="map"></a>
+</p><dl>
+<dt><a name="index-map-1"></a><u>MGL command:</u> <b>map</b><i> udat vdat ['sch'='' <code>pnts=on</code>]</i></dt>
+<dt><a name="index-map-2"></a><u>MGL command:</u> <b>map</b><i> xdat ydat udat vdat ['sch'='' <code>pnts=on</code>]</i></dt>
+<dd><p>Draws mapping plot for matrixes {<var>udat</var>, <var>vdat</var> } which parametrically depend on coordinates <var>xdat</var>, <var>ydat</var>. The previous position of the cell (point) is marked by color. Height is proportional to Jacobian(udat,vdat). This plot is like Arnold diagram ???. If <code>pnts=off</code> then face is drawn otherwise the color ball at matrix knots are drawn. The size of <var>udat</var> and <var>vdat</var> must be the same. See section <a href="mathgl_en_9.html#Map-sample">Map sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-stfa"></a>
+<p><a name="stfa"></a>
+</p><dl>
+<dt><a name="index-stfa-1"></a><u>MGL command:</u> <b>stfa</b><i> re im <code>dn</code> ['sch'='' <code>pnts=on</code>]</i></dt>
+<dt><a name="index-stfa-2"></a><u>MGL command:</u> <b>stfa</b><i> xdat ydat re im <code>dn</code> ['sch'='' <code>pnts=on</code>]</i></dt>
+<dd><p>Draws spectrogram of complex array <var>re</var>+i*<code>im</code> for Fourier size of <var>dn</var> points at plane <var>z=zVal</var>. Parameter <var>dn</var> is arbitrary even integer. For example in 1D case, result is density plot of data <em>res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn</em> with size {int(nx/dn), dn, ny}. See section <a href="mathgl_en_9.html#STFA-sample">STFA sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+
+
+<hr size="6">
+<a name="Vector-fields-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vector-fields-_0028MGL_0029-1"></a>
+<h2 class="section">8.13 Vector fields (MGL)</h2>
+
+<p>These commands perform plotting of 2D and 3D vector fields. There are 6 generally different types of vector fields representations: simple vector field (<a href="#vect">vect</a>), vector field by dew-drops (<a href="#dew">dew</a>), flow threads (<a href="#flow">flow</a>), flow pipes (<a href="#pipe">pipe</a>), vectors along a curve (<a href="#traj">traj</a>). Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. Parameters of color scheme are specified by the string argument. See section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>.
+</p>
+<p>The color is specified by the string argument <var>sch</var>. Previous color scheme is used by default. Parameter <var>flag</var> setup the hachures (arrows). It is combination of values: <code>1</code> for drawing bi-color arrow, <code>2</code> for drawing fixed length arrows, <code>4</code> for drawing arrows to the cell point, <code>8</code> for drawing arrows with center at cell point, <code>16</code> for drawing hachures with dots instead of arrows. 
+</p>
+<p>The size of <var>udat</var>, <var>vdat</var> and <var>wdat</var> must be equal. The minor dimensions of arrays <var>xdat</var>, <var>ydat</var>, <var>zdat</var> and <var>udat</var> must be equal too. Arrays <var>xdat</var>, <var>ydat</var> and <var>zdat</var> can be vectors (not matrices as <var>udat</var>). The graphics is plotted for each z slice of <var>udat</var>, <var>vdat</var> for 2D case.
+</p>
+<a name="index-traj"></a>
+<p><a name="traj"></a>
+</p><dl>
+<dt><a name="index-traj-1"></a><u>MGL command:</u> <b>traj</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan len=0</code>]</i></dt>
+<dt><a name="index-traj-2"></a><u>MGL command:</u> <b>traj</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>len=0</code>]</i></dt>
+<dd><p>Draws vectors {<var>udat</var>, <var>vdat</var>, <var>wdat</var>} along a curve <var>xdat</var>, <var>ydat</var>, <var>zdat</var>. The length and color of arrows are proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See also <code>vect</code>. See section <a href="mathgl_en_9.html#Traj-sample">Traj sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-vect"></a>
+<p><a name="vect"></a>
+</p><dl>
+<dt><a name="index-vect-1"></a><u>MGL command:</u> <b>vect</b><i> udat vdat ['sch'='' <code>zval=nan flag=0</code>]</i></dt>
+<dt><a name="index-vect-2"></a><u>MGL command:</u> <b>vect</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan flag=0</code>]</i></dt>
+<dd><p>Draws plane vector field plot for the field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zval</var>. The length and color of arrows are proportional to <em>\sqrtudat^2+vdat^2</em>. The number of arrows depend on <a href="#meshnum">meshnum</a>. See also <a href="#flow">flow</a>, <a href="#dew">dew</a>, <a href="#vectc">vectc</a>. See section <a href="mathgl_en_9.html#Vect-sample">Vect sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vect-3"></a><u>MGL command:</u> <b>vect</b><i> udat vdat wdat ['sch'='' <code>flag=0</code>]</i></dt>
+<dt><a name="index-vect-4"></a><u>MGL command:</u> <b>vect</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>flag=0</code>]</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the length and color of arrows are proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mathgl_en_9.html#Vect-3D-sample">Vect 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-vectc"></a>
+<p><a name="vectc"></a>
+</p><dl>
+<dt><a name="index-vectc-1"></a><u>MGL command:</u> <b>vectc</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-vectc-2"></a><u>MGL command:</u> <b>vectc</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws plane vector field plot for the field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zVal</var>. The color of hachures is proportional to <em>\sqrtudat^2+vdat^2</em>. The number of hachures depend on <var>meshnum</var>. See also <code>vect, flow, pipe, dew</code>. See section <a href="mathgl_en_9.html#VectC-sample">VectC sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vectc-3"></a><u>MGL command:</u> <b>vectc</b><i> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-vectc-4"></a><u>MGL command:</u> <b>vectc</b><i> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the color of hachures is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mathgl_en_9.html#VectC-3D-sample">VectC 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-vectl"></a>
+<p><a name="vectl"></a>
+</p><dl>
+<dt><a name="index-vectl-1"></a><u>MGL command:</u> <b>vectl</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-vectl-2"></a><u>MGL command:</u> <b>vectl</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws plane vector field plot for the field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zVal</var>. The length of hachures is proportional to <em>\sqrtudat^2+vdat^2</em>. The number of hachures depend on <var>meshnum</var>. See also <code>vectc, flow, pipe, dew</code>. See section <a href="mathgl_en_9.html#Vect-sample">Vect sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vectl-3"></a><u>MGL command:</u> <b>vectl</b><i> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-vectl-4"></a><u>MGL command:</u> <b>vectl</b><i> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the length of hachures is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mathgl_en_9.html#VectL-3D-sample">VectL 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-dew"></a>
+<p><a name="dew"></a>
+</p><dl>
+<dt><a name="index-dew-1"></a><u>MGL command:</u> <b>dew</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-dew-2"></a><u>MGL command:</u> <b>dew</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws dew-drops for plane vector field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zval</var>. The color of drops is proportional to <em>\sqrtudat^2+vdat^2</em>. The number of drops depend on <a href="#meshnum">meshnum</a>. Note that this is very expensive plot in memory usage and creation time! See also <a href="#vect">vect</a>. See section <a href="mathgl_en_9.html#Dew-sample">Dew sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-flow"></a>
+<p><a name="flow"></a>
+</p><dl>
+<dt><a name="index-flow-1"></a><u>MGL command:</u> <b>flow</b><i> udat vdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-flow-2"></a><u>MGL command:</u> <b>flow</b><i> xdat ydat udat vdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dd><p>Draws plane flow threads for the vector field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zVal</var>. Number of threads is proportional to <var>num</var>. The color of lines is proportional to <em>\sqrtudat^2+vdat^2</em>. Warm color corresponds to normal flow (like attractor). Cold one corresponds to inverse flow (like source). See also <code>vect, vectc, pipe</code>. See section <a href="mathgl_en_9.html#Flow-sample">Flow sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-3"></a><u>MGL command:</u> <b>flow</b><i> udat vdat wdat ['sch'='' <code>num=3</code>]</i></dt>
+<dt><a name="index-flow-4"></a><u>MGL command:</u> <b>flow</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>num=3</code>]</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the color is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mathgl_en_9.html#Flow-3D-sample">Flow 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-5"></a><u>MGL command:</u> <b>flow</b><i> <code>x0 y0</code> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-flow-6"></a><u>MGL command:</u> <b>flow</b><i> <code>x0 y0</code> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws plane flow threads for the vector field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> from point {<var>x0</var>, <var>y0</var>} at level <var>z=zVal</var>. The color of lines is proportional to <em>\sqrtudat^2+vdat^2</em>. Warm color corresponds to normal flow (like attractor). Cold one corresponds to inverse flow (like source). See also <code>vect, vectc, pipe</code>. See section <a href="mathgl_en_9.html#Flow-sample">Flow sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-7"></a><u>MGL command:</u> <b>flow</b><i> <code>x0 y0 z0</code> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-flow-8"></a><u>MGL command:</u> <b>flow</b><i> <code>x0 y0 z0</code> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>Draws flow thread from point {<var>x0</var>, <var>y0</var>, <var>z0</var>}. Arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the color is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mathgl_en_9.html#Flow-3D-sample">Flow 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+<a name="index-pipe"></a>
+<p><a name="pipe"></a>
+</p><dl>
+<dt><a name="index-pipe-1"></a><u>MGL command:</u> <b>pipe</b><i> udat vdat ['sch'='' <code>r0=0.05 num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-pipe-2"></a><u>MGL command:</u> <b>pipe</b><i> xdat ydat udat vdat ['sch'='' <code>r0=0.05 num=5 zval=nan</code>]</i></dt>
+<dd><p>Draws plane flow pipes for the vector field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zVal</var>. Number of pipes is proportional to <var>num</var>. The color of pipes is proportional to <em>\sqrtudat^2+vdat^2</em>. Warm color corresponds to normal flow (like attractor). Cold one corresponds to inverse flow (like source). Parameter <var>r0</var> set the base pipe radius. If <var>r0</var>&lt;0 then pipe radius is inverse proportional to amplitude. The size of <var>ax</var> and <var>ay</var> must be equal. See also <code>vect, vectc, pipe</code>. See section <a href="mathgl_en_9.html#Pipe-sample">Pipe sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-pipe-3"></a><u>MGL command:</u> <b>pipe</b><i> udat vdat wdat ['sch'='' <code>r0=0.05 num=3</code>]</i></dt>
+<dt><a name="index-pipe-4"></a><u>MGL command:</u> <b>pipe</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>r0=0.05 num=3</code>]</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the color is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mathgl_en_9.html#Pipe-3D-sample">Pipe 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Other-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-fields-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Other-plotting-_0028MGL_0029-1"></a>
+<h2 class="section">8.14 Other plotting (MGL)</h2>
+
+<p>These commands perform miscelaneous plotting. There is unstructured data points plots (Dots), surface reconstruction (Crust), surfaces on the triangular mesh (TriPlot) or quadrangular mesh (QuadPlot), textual formula plotting (Plots by formula), data plots at edges (Dens[XYZ], Cont[XYZ], ContF[XYZ]), simple plot (SimplePlot). Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. Parameters of color scheme are specified by the string argument. See section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>.
+</p>
+<a name="index-densx"></a>
+<a name="index-densy"></a>
+<a name="index-densz"></a>
+<p><a name="densz"></a> <a name="densy"></a> <a name="densx"></a>
+</p><dl>
+<dt><a name="index-densx-1"></a><u>MGL command:</u> <b>densx</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dt><a name="index-densy-1"></a><u>MGL command:</u> <b>densy</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dt><a name="index-densz-1"></a><u>MGL command:</u> <b>densz</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dd><p>These plotting commands draw density plot in x, y or z plain. If <var>dat</var> is a tensor (3-dimensional data) then interpolation to a given <var>val</var> is performed. These commands are useful for creating projections of the 3D data array to the bounding box. See also <code>cont[xyz], contf[xyz]</code>, <a href="#dens">dens</a>. See section <a href="mathgl_en_9.html#Dens-projection-sample">Dens projection sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-contx"></a>
+<a name="index-conty"></a>
+<a name="index-contz"></a>
+<p><a name="contz"></a> <a name="conty"></a> <a name="contx"></a>
+</p><dl>
+<dt><a name="index-contx-1"></a><u>MGL command:</u> <b>contx</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-conty-1"></a><u>MGL command:</u> <b>conty</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contz-1"></a><u>MGL command:</u> <b>contz</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dd><p>These plotting commands draw contour lines in x, y or z plain. If <var>dat</var> is a tensor (3-dimensional data) then interpolation to a given <var>val</var> is performed. These commands are useful for creating projections of the 3D data array to the bounding box. See also <code>dens[xyz], contf[xyz]</code>, <a href="#cont">cont</a>. See section <a href="mathgl_en_9.html#Cont-projection-sample">Cont projection sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-contfx"></a>
+<a name="index-contfy"></a>
+<a name="index-contfz"></a>
+<p><a name="contfz"></a> <a name="contfy"></a> <a name="contfx"></a>
+</p><dl>
+<dt><a name="index-contfx-1"></a><u>MGL command:</u> <b>contfx</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contfy-1"></a><u>MGL command:</u> <b>contfy</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contfz-1"></a><u>MGL command:</u> <b>contfz</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dd><p>These plotting commands draw solid contours in x, y or z plain. If <var>dat</var> is a tensor (3-dimensional data) then interpolation to a given <var>val</var> is performed. These commands are useful for creating projections of the 3D data array to the bounding box. See also <code>dens[xyz], cont[xyz]</code>, <a href="#contf">contf</a>.
+</p></dd></dl>
+
+<a name="index-dots"></a>
+<p><a name="dots"></a>
+</p><dl>
+<dt><a name="index-dots-1"></a><u>MGL command:</u> <b>dots</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-dots-2"></a><u>MGL command:</u> <b>dots</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Draws the arbitrary placed points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Variable <var>adat</var>[i] set transparency for dots. See also <a href="#crust">crust</a>, <a href="#mark">mark</a>, <a href="#plot">plot</a>. See section <a href="mathgl_en_9.html#Dots-sample">Dots sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-crust"></a>
+<p><a name="crust"></a>
+</p><dl>
+<dt><a name="index-crust-1"></a><u>MGL command:</u> <b>crust</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Reconstructs and draws the surface for arbitrary placed points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#dots">dots</a>, <a href="#triplot">triplot</a>. See section <a href="mathgl_en_9.html#Crust-sample">Crust sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-triplot"></a>
+<p><a name="triplot"></a>
+</p><dl>
+<dt><a name="index-triplot-1"></a><u>MGL command:</u> <b>triplot</b><i> idat xdat ydat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-triplot-2"></a><u>MGL command:</u> <b>triplot</b><i> idat xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-triplot-3"></a><u>MGL command:</u> <b>triplot</b><i> idat xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Draws the surface of triangles. Triangle vertexes are set by indexes <var>idat</var> of data points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. First dimensions of <var>idat</var> must be 3 or greater. See also <code>dots, crust, quadplot</code>. Parameter <var>cdat</var> set the colors of triangles (if <var>idat</var>.ny=<var>cdat</var>.nx) or colors of vertexes (if <var>xdat</var>.nx=<var>cdat</var>.nx). See also <a href="#dots">dots</a>, <a href="#crust">crust</a>, <a href="#quadplot">quadplot</a>, <a href="#tricont">tricont</a>.
+</p></dd></dl>
+
+<a name="index-tricont"></a>
+<p><a name="tricont"></a>
+</p><dl>
+<dt><a name="index-tricont-1"></a><u>MGL command:</u> <b>tricont</b><i> vdat idat xdat ydat zdat cdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tricont-2"></a><u>MGL command:</u> <b>tricont</b><i> vdat idat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tricont-3"></a><u>MGL command:</u> <b>tricont</b><i> idat xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Draws contour lines for surface of triangles at <var>z</var> = <var>zVal</var> (or for <var>z</var>=<var>vdat</var>[k] if <code>zval=nan</code>). Triangle vertexes are set by indexes <var>idat</var> of data points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k (or <var>num</var> contours equidistantly distributed in range [<var>Cmin</var>, <var>Cmax</var>].). See also <a href="#triplot">triplot</a>, <a href="#cont">cont</a>.
+</p></dd></dl>
+
+<a name="index-quadplot"></a>
+<p><a name="quadplot"></a>
+</p><dl>
+<dt><a name="index-quadplot-1"></a><u>MGL command:</u> <b>quadplot</b><i> idat xdat ydat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-quadplot-2"></a><u>MGL command:</u> <b>quadplot</b><i> idat xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-quadplot-3"></a><u>MGL command:</u> <b>quadplot</b><i> idat xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Draws the surface of quadrangles. Quadrangle vertexes are set by indexes <var>idat</var> of data points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. First dimensions of <var>idat</var> must be 4 or greater. See also <code>triplot, dots, crust</code>. Parameter <var>cdat</var> set the colors of triangles (if <var>idat</var>.ny=<var>cdat</var>.nx) or colors of vertexes (if <var>xdat</var>.nx=<var>cdat</var>.nx). See also <a href="#triplot">triplot</a>.
+</p></dd></dl>
+
+<a name="index-fplot"></a>
+<p><a name="fplot"></a>
+</p><dl>
+<dt><a name="index-fplot-1"></a><u>MGL command:</u> <b>fplot</b><i> 'y(x)' ['pen'='' <code>zval=nan num=100</code>]</i></dt>
+<dd><p>Draws command function &lsquo;<samp>y(x)</samp>&rsquo; at plane z=<var>zval</var> where &lsquo;<samp>x</samp>&rsquo; variable is changed in <code>xrange</code>. You do not need to create the data arrays to plot it. The parameter <var>num</var> set the minimal number of points along coordinate(s) for plots. See also <a href="#plot">plot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fplot-2"></a><u>MGL command:</u> <b>fplot</b><i> 'x(t)' 'y(t)' 'z(t)' ['pen'='' <code>num=100</code>]</i></dt>
+<dd><p>Draws command parametrical curve {&lsquo;<samp>x(t)</samp>&rsquo;, &lsquo;<samp>y(t)</samp>&rsquo;, &lsquo;<samp>z(t)</samp>&rsquo;} where &lsquo;<samp>t</samp>&rsquo; variable is changed in range [0, 1]. You do not need to create the data arrays to plot it. The parameter <var>num</var> set the minimal number of points along coordinate(s) for plots. See also <a href="#plot">plot</a>.
+</p></dd></dl>
+
+<a name="index-fsurf"></a>
+<p><a name="fsurf"></a>
+</p><dl>
+<dt><a name="index-fsurf-1"></a><u>MGL command:</u> <b>fsurf</b><i> 'z(x,y)' ['sch'='' <code>num=100</code>]</i></dt>
+<dd><p>Draws command surface for function &lsquo;<samp>z(x,y)</samp>&rsquo; where &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; variable are changed in <code>xrange, yrange</code>. You do not need to create the data arrays to plot it. The parameter <var>num</var> set the minimal number of points along coordinate(s) for plots. See also <a href="#surf">surf</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fsurf-2"></a><u>MGL command:</u> <b>fsurf</b><i> 'x(u,v)' 'y(u,v)' 'z(u,v)' ['sch'='' <code>num=100</code>]</i></dt>
+<dd><p>Draws command parametrical surface {&lsquo;<samp>x(u,v)</samp>&rsquo;, &lsquo;<samp>y(u,v)</samp>&rsquo;, &lsquo;<samp>z(u,v)</samp>&rsquo;} where &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo; variable are changed in range [0, 1]. You do not need to create the data arrays to plot it. The parameter <var>num</var> set the minimal number of points along coordinate(s) for plots. See also <a href="#surf">surf</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Nonlinear-fitting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-create-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-_0028MGL_0029-1"></a>
+<h2 class="section">8.15 Nonlinear fitting (MGL)</h2>
+
+<p>These commands fit data to formula. Fitting goal is to find formula parameters for the best fit the data points, i.e. to minimize the sum <em>\sum_i (f(x_i, y_i, z_i) - a_i)^2/s_i^2</em>. At this, approximation function &lsquo;<samp>f</samp>&rsquo; can depend only on one argument &lsquo;<samp>x</samp>&rsquo; (1D case), on two arguments &lsquo;<samp>x,y</samp>&rsquo; (2D case) and on three arguments &lsquo;<samp>x,y,z</samp>&rsquo; (3D case). The command &lsquo;<samp>f</samp>&rsquo; also may depend on parameters. Normally the list of fitted parameters is specified by <var>var</var> string (like, &lsquo;<samp>abcd</samp>&rsquo;). Usually user should supply initial values for fitted parameters by <var>ini</var> variable. But if he/she don&rsquo;t supply it then the zeros are used.
+</p>
+<p>Commands <a href="#fit">fit</a> and <a href="#fits">fits</a> do not draw the obtained data themselves. They fill the data <var>out</var> by formula &lsquo;<samp>f</samp>&rsquo; with found coefficients. At this, the &lsquo;<samp>x,y,z</samp>&rsquo; coordinates are equidistantly distributed in the bounding box. Number of points in <var>out</var> is selected as maximal value of <var>out</var> size or 100. Also you may print the last formula with found coefficients by <code>putsfit</code> command. See section <a href="mathgl_en_9.html#Fitting-sample">Fitting sample</a>, for sample code and picture.
+</p>
+<p>The dimensions of arrays must be at least the same as the number of specified arrays <var>xdat</var>, <var>ydat</var>, <var>zdat</var>. Also the fitting only along specified directions will be performed (for example, along x and y if only <var>xdat</var> and <var>ydat</var> are specified). If array <var>xdat</var> is not specified then its an automatic array is used with values equidistantly distributed along x.
+</p>
+
+<a name="index-fits"></a>
+<p><a name="fits"></a>
+</p><dl>
+<dt><a name="index-fits-1"></a><u>MGL command:</u> <b>fits</b><i> adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-2"></a><u>MGL command:</u> <b>fits</b><i> xdat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-3"></a><u>MGL command:</u> <b>fits</b><i> xdat ydat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-4"></a><u>MGL command:</u> <b>fits</b><i> xdat ydat zdat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dd><p>Fit data along x-, y- and z-directions for 1d-,2d- or 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) with weight factor <var>sdat</var>[i,j,k].
+</p></dd></dl>
+
+<a name="index-fit"></a>
+<p><a name="fit"></a>
+</p><dl>
+<dt><a name="index-fit-1"></a><u>MGL command:</u> <b>fit</b><i> adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-2"></a><u>MGL command:</u> <b>fit</b><i> xdat adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-3"></a><u>MGL command:</u> <b>fit</b><i> xdat ydat adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-4"></a><u>MGL command:</u> <b>fit</b><i> xdat ydat zdat adat 'func' 'var' [ini=0]</i></dt>
+<dd><p>Fit data along x-, y- and z-directions for 1d-,2d- or 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) with weight factor =1.
+</p></dd></dl>
+
+<a name="index-putsfit"></a>
+<p><a name="putsfit"></a>
+</p><dl>
+<dt><a name="index-putsfit-1"></a><u>MGL command:</u> <b>putsfit</b><i> <code>x y</code> ['pre'='' 'fnt'='' <code>size=-1</code>]</i></dt>
+<dd><p>Print last fitted formula with found coefficients (as numbers) at position {<var>x</var>, <var>y</var>}. The string <var>pre</var> will be printed before formula. All other parameters are the same as in <a href="#Text-printing-_0028MGL_0029">Text printing (MGL)</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Data-create-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-filling-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-create-_0028MGL_0029-1"></a>
+<h2 class="section">8.16 Data create (MGL)</h2>
+
+<a name="index-new"></a>
+<p><a name="new"></a>
+</p><dl>
+<dt><a name="index-new-1"></a><u>MGL command:</u> <b>new</b><i> dat [<code>nx=1 ny=1 nz=1</code>]</i></dt>
+<dd><p>Creates or recreates the array <var>dat</var> with specified size and fills it by zero. This command does nothing if one of parameters <var>nx</var>, <var>ny</var>, <var>nz</var> is zero or negative.
+</p></dd></dl>
+
+<a name="index-var"></a>
+<p><a name="var"></a>
+</p><dl>
+<dt><a name="index-var-1"></a><u>MGL command:</u> <b>var</b><i> dat <code>num v1 [v2=nan]</code></i></dt>
+<dd><p>Creates new variable with name <var>dat</var> for one-dimensional array of size <var>num</var>. Array elements are equidistantly distributed in range [<var>v1</var>, <var>v2</var>]. If <var>v2</var>=<code>nan</code> then <var>v2=v1</var> is used. 
+</p></dd></dl>
+
+<a name="index-list"></a>
+<p><a name="list"></a>
+</p><dl>
+<dt><a name="index-list-1"></a><u>MGL command:</u> <b>list</b><i> dat <code>v1 ...</code></i></dt>
+<dd><p>Creates new variable with name <var>dat</var> and fills it by numeric values of command arguments <code>v1 ...</code>. Command can create one-dimensional and two-dimensional arrays with arbitrary values. For creating 2d array the user should use delimiter &lsquo;<samp>|</samp>&rsquo; which means that the following values lie in next row. Array sizes are [maximal of row sizes * number of rows]. For example, command <code>list 1 | 2 3</code> creates the array [1 0; 2 3]. Note, that the maximal number of arguments is 1000. 
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-list-2"></a><u>MGL command:</u> <b>list</b><i> dat d1 ...</i></dt>
+<dd><p>Creates new variable with name <var>dat</var> and fills it by data values of arrays of command arguments <var>d1 ...</var>. Command can create two-dimensional or three-dimensional (if arrays in arguments are 2d arrays) arrays with arbitrary values. Minor dimensions of all arrays in arguments should be equal to dimensions of first array d1. In the opposite case the argument will be ignored. Note, that the maximal number of arguments is 1000. 
+</p></dd></dl>
+
+<a name="index-copy"></a>
+<p><a name="copy"></a>
+</p><dl>
+<dt><a name="index-copy-1"></a><u>MGL command:</u> <b>copy</b><i> dat1 dat2 ['eq'='' <code>on_axis=on</code>]</i></dt>
+<dt><a name="index-copy-2"></a><u>MGL command:</u> <b>copy</b><i> dat1 <code>val</code></i></dt>
+<dd><p>Creates new variable with name <var>dat1</var> and fills it by data values of array <var>dat2</var>. At this, if parameter <var>eq</var> is specified then the data will be modified by corresponding formula by the same way as in <a href="#fill">fill</a> command (for <code>on_axis=on</code>) or in <a href="#modify">modify</a> command (for <code>on_axis=off</code>).
+</p></dd></dl>
+
+<a name="index-idset"></a>
+<p><a name="idset"></a>
+</p><dl>
+<dt><a name="index-idset-1"></a><u>MGL command:</u> <b>idset</b><i> dat 'ids'</i></dt>
+<dd><p>Set the symbol id for data columns. The string must contain one symbol &rsquo;a&rsquo;...&rsquo;z&rsquo; per column (without spaces).
+</p></dd></dl>
+
+<a name="index-info"></a>
+<p><a name="info"></a>
+</p><dl>
+<dt><a name="index-info-1"></a><u>MGL command:</u> <b>info</b><i> dat [<code>detail=off</code>]</i></dt>
+<dd><p>Display information (sizes, maximum/minimum, momentums and so on) about the data dat. Show brief information by default (if <code>detail=off</code>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-info-2"></a><u>MGL command:</u> <b>info</b><i> 'text'</i></dt>
+<dd><p>Display <var>text</var> as information (warning).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Data-filling-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-create-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Rearrange-data-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-filling-_0028MGL_0029-1"></a>
+<h2 class="section">8.17 Data filling (MGL)</h2>
+<a name="index-fill"></a>
+<a name="index-modify"></a>
+
+<a name="index-fill-1"></a>
+<p><a name="fill"></a>
+</p><dl>
+<dt><a name="index-fill-2"></a><u>MGL command:</u> <b>fill</b><i> dat v1 v2 ['dir'='x']</i></dt>
+<dd><p>Equidistantly fills the data values to range [<var>x1</var>, <var>x2</var>] in direction <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;,&lsquo;<samp>y</samp>&rsquo;,&lsquo;<samp>z</samp>&rsquo;}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fill-3"></a><u>MGL command:</u> <b>fill</b><i> dat 'eq'</i></dt>
+<dt><a name="index-fill-4"></a><u>MGL command:</u> <b>fill</b><i> dat 'eq' vdat</i></dt>
+<dt><a name="index-fill-5"></a><u>MGL command:</u> <b>fill</b><i> dat 'eq' vdat wdat</i></dt>
+<dd><p>Command fills the value of array according to the formula in string <var>eq</var>. Formula is an arbitrary expression depending  on variables &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; are supposed to be normalized in <em>bounding box</em> (in difference from <code>modify</code> commands). Variable &lsquo;<samp>u</samp>&rsquo; is the original value of the array. Variables &lsquo;<samp>v</samp>&rsquo; and &lsquo;<samp>w</samp>&rsquo; are values of <var>vdat</var>, <var>wdat</var>.
+</p></dd></dl>
+
+<a name="index-modify-1"></a>
+<p><a name="modify"></a>
+</p><dl>
+<dt><a name="index-modify-2"></a><u>MGL command:</u> <b>modify</b><i> dat 'eq' [<code>dim=0</code>]</i></dt>
+<dt><a name="index-modify-3"></a><u>MGL command:</u> <b>modify</b><i> dat 'eq' vdat</i></dt>
+<dt><a name="index-modify-4"></a><u>MGL command:</u> <b>modify</b><i> dat 'eq' vdat wdat</i></dt>
+<dd><p>Command fills the value of array according to the formula in string <var>eq</var>. Formula is an arbitrary expression depending  on variables &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;. Coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; are data indexes normalized in range [0,1]. Variable &lsquo;<samp>u</samp>&rsquo; is the original value of the array. If <var>dim</var>&gt;0 is specified then modification will be fulfilled only for slices &gt;=<var>dim</var>.
+</p></dd></dl>
+
+
+<a name="index-put"></a>
+<p><a name="put"></a>
+</p><dl>
+<dt><a name="index-put-1"></a><u>MGL command:</u> <b>put</b><i> dat <code>val [i=: j=: k=:]</code></i></dt>
+<dd><p>Function sets value(s) of array <var>dat</var>[<var>i</var>, <var>j</var>, <var>k</var>] = <var>val</var>. Negative indexes <var>i</var>, <var>j</var>, <var>k</var>=&lsquo;<samp>:</samp>&rsquo; set the value <var>val</var> to whole range in corresponding direction(s). For example, <code>put dat val : 0 :</code> sets <var>dat</var>[i,0,j]=<var>val</var> for i=0...(<var>dat</var>.nx-1), j=0...(<var>dat</var>.nz-1).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-put-2"></a><u>MGL command:</u> <b>put</b><i> dat vdat [<code>i=: j=: k=:</code>]</i></dt>
+<dd><p>Function copies value(s) from array <var>vdat</var> to the range of array <var>dat</var>. Negative indexes <var>i</var>, <var>j</var>, <var>k</var>=&lsquo;<samp>:</samp>&rsquo; set the range in corresponding direction(s). At this minor dimensions of array <var>vdat</var> should be large than corresponding dimensions of array <var>dat</var>. For example, <code>put dat v : 0 :</code> sets <var>dat</var>[i,0,j]=<var>vdat</var>.ny&gt;<var>dat</var>.nz ? <var>vdat</var>[i,j] : <var>vdat</var>[i], where i=0...(<var>dat</var>.nx-1), j=0...(<var>dat</var>.nz-1) and condition vdat.nx&gt;=dat.nx is true.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Rearrange-data-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-filling-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#File-I_002fO-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Rearrange-data-_0028MGL_0029-1"></a>
+<h2 class="section">8.18 Rearrange data (MGL)</h2>
+
+<a name="index-rearrange"></a>
+<p><a name="rearrange"></a>
+</p><dl>
+<dt><a name="index-rearrange-1"></a><u>MGL command:</u> <b>rearrange</b><i> dat <code>mx [my=0 mz=0]</code></i></dt>
+<dd><p>Rearrange dimensions without changing data array so that resulting sizes should  be <var>mx</var>*<var>my</var>*<var>mz</var> &lt; nx*ny*nz. If some of parameter <var>my</var> or <var>mz</var> are zero then it will be selected to optimal fill of data array. For example, if <var>my</var>=0 then it will be change to <var>my</var>=nx*ny*nz/<var>mx</var> and <var>mz</var> will be 1.
+</p></dd></dl>
+
+<a name="index-extend"></a>
+<p><a name="extend"></a>
+</p><dl>
+<dt><a name="index-extend-1"></a><u>MGL command:</u> <b>extend</b><i> dat <code>n1 [n2=0]</code></i></dt>
+<dd><p>Increase the dimensions of the data by inserting new (|<var>n1</var>|+1)-th slices after (for <var>n1</var>&gt;0) or before (for <var>n1</var>&lt;0) of existed one. It is possible to insert 2 dimensions simultaneously for 1d data by using parameter <var>n2</var>. Data to new slices is copy from existed one. For example, for <var>n1</var>&gt;0 new array will be 
+a_ij^new = a_i^old where j=0...<var>n1</var>. Correspondingly, for <var>n1</var>&lt;0 new array will be a_ij^new = a_j^old where i=0...|<var>n1</var>|.
+</p></dd></dl>
+
+<a name="index-transpose"></a>
+<p><a name="transpose"></a>
+</p><dl>
+<dt><a name="index-transpose-1"></a><u>MGL command:</u> <b>transpose</b><i> dat ['dim'='yxz']</i></dt>
+<dd><p>Transposes (shift order of) dimensions of the data. New order of dimensions is specified int string <var>dim</var>. This command may be useful also for the reading of one-dimensional data.
+</p></dd></dl>
+
+<a name="index-squeeze"></a>
+<p><a name="squeeze"></a>
+</p><dl>
+<dt><a name="index-squeeze-1"></a><u>MGL command:</u> <b>squeeze</b><i> dat <code>rx [ry=1 rz=1 sm=off]</code></i></dt>
+<dd><p>Reduces the data size by excluding data elements which indexes are not divisible by <var>rx</var>, <var>ry</var>, <var>rz</var> correspondingly. Parameter <var>sm</var> set to use smoothing
+(i.e. out[i]=\sum_{j=i}^{i+r} a[j]/r) or not (i.e. out[i]=a[j*r]).
+</p></dd></dl>
+
+<a name="index-crop"></a>
+<p><a name="crop"></a>
+</p><dl>
+<dt><a name="index-crop-1"></a><u>MGL command:</u> <b>crop</b><i> dat <code>n1 n2</code> 'dir'</i></dt>
+<dd><p>Cuts off edges of the data <var>i</var>&lt;<var>n1</var> and <var>i</var>&gt;<var>n2</var> if <var>n2</var>&gt;0 or <var>i</var>&gt;<code>n[xyz]</code>-<var>n2</var> if <var>n2</var>&lt;=0 along direction <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-delete"></a>
+<p><a name="delete"></a>
+</p><dl>
+<dt><a name="index-delete-1"></a><u>MGL command:</u> <b>delete</b><i> dat</i></dt>
+<dd><p>Deletes variable <var>dat</var> and makes its memory free. Can be useful for huge data arrays.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-delete-2"></a><u>MGL command:</u> <b>delete</b><i> dat 'dir' <code>[pos=off num=0]</code></i></dt>
+<dd><p>Delete <var>num</var> slices along <var>dir</var>-direction at position <var>pos</var>.
+</p></dd></dl>
+
+<a name="index-insert"></a>
+<p><a name="insert"></a>
+</p><dl>
+<dt><a name="index-insert-1"></a><u>MGL command:</u> <b>insert</b><i> dat 'dir' <code>[pos=off num=0]</code></i></dt>
+<dd><p>Insert <var>num</var> slices along <var>dir</var>-direction at position <var>pos</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="File-I_002fO-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Rearrange-data-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Make-another-data-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="File-I_002fO-_0028MGL_0029-1"></a>
+<h2 class="section">8.19 File I/O (MGL)</h2>
+
+<a name="index-read"></a>
+<p><a name="read"></a>
+</p><dl>
+<dt><a name="index-read-1"></a><u>MGL command:</u> <b>read</b><i> dat 'fname'</i></dt>
+<dd><p>Reads data from tab-separated text file with auto determining sizes of the data.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-read-2"></a><u>MGL command:</u> <b>read</b><i> dat 'fname' <code>mx [my=1 mz=1]</code></i></dt>
+<dd><p>Reads data from text file with specified data sizes. This command does nothing if one of parameters <var>mx</var>, <var>my</var> or <var>mz</var> is zero or negative.
+</p></dd></dl>
+
+<a name="index-readmat"></a>
+<p><a name="readmat"></a>
+</p><dl>
+<dt><a name="index-readmat-1"></a><u>MGL command:</u> <b>readmat</b><i> dat 'fname' [<code>dim=2</code>]</i></dt>
+<dd><p>Read data from text file with size specified at beginning of the file by first <var>dim</var> numbers. At this, variable <var>dim</var> set data dimensions.
+</p></dd></dl>
+
+<a name="index-readall"></a>
+<p><a name="readall"></a>
+</p><dl>
+<dt><a name="index-readall-1"></a><u>MGL command:</u> <b>readall</b><i> dat 'templ' <code>v1 v2 [dv=1 slice=off]</code></i></dt>
+<dd><p>Join data arrays from several text files. The file names are determined by function call <code>sprintf(fname,templ,val);</code>, where <var>val</var> changes from <var>v1</var> to <var>v2</var> with step <var>dv</var>. The data load one-by-one in the same slice if <var>slice</var>=<code>off</code> or as slice-by-slice if <var>slice</var>=<code>on</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-readall-2"></a><u>MGL command:</u> <b>readall</b><i> dat 'templ' <code>[slice=off]</code></i></dt>
+<dd><p>Join data arrays from several text files which filenames satisfied the template <var>templ</var> (for example, <var>templ</var>=<code>&quot;t_*.dat&quot;</code>). The data load one-by-one in the same slice if <var>slice</var>=<code>off</code> or as slice-by-slice if <var>slice</var>=<code>on</code>.
+</p></dd></dl>
+
+<a name="index-save"></a>
+<p><a name="save"></a>
+</p><dl>
+<dt><a name="index-save-1"></a><u>MGL command:</u> <b>save</b><i> dat 'fname'</i></dt>
+<dd><p>Saves the whole data array to tab-separated text file.
+</p></dd></dl>
+
+<a name="index-readhdf"></a>
+<p><a name="readhdf"></a>
+</p><dl>
+<dt><a name="index-readhdf-1"></a><u>MGL command:</u> <b>readhdf</b><i> dat 'fname' 'dname'</i></dt>
+<dd><p>Reads data array named <var>dname</var> from HDF5 or HDF4 file <var>fname</var>.
+</p></dd></dl>
+
+<a name="index-savehdf"></a>
+<p><a name="savehdf"></a>
+</p><dl>
+<dt><a name="index-savehdf-1"></a><u>MGL command:</u> <b>savehdf</b><i> dat 'fname' 'dname'</i></dt>
+<dd><p>Saves data array named <var>dname</var> from HDF5 or HDF4 file <var>fname</var>.
+</p></dd></dl>
+
+<a name="index-import"></a>
+<p><a name="import"></a>
+</p><dl>
+<dt><a name="index-import-1"></a><u>MGL command:</u> <b>import</b><i> dat 'fname' 'sch' [<code>v1=0 v2=1</code>]</i></dt>
+<dd><p>Reads data from bitmap file. The RGB values of bitmap pixels are transformed to float values in range [<var>v1</var>, <var>v2</var>] using color scheme <var>sch</var> (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>).
+</p></dd></dl>
+
+<a name="index-export"></a>
+<p><a name="export"></a>
+</p><dl>
+<dt><a name="index-export-1"></a><u>MGL command:</u> <b>export</b><i> dat 'fname' 'sch' [<code>v1=0 v2=0</code>]</i></dt>
+<dd><p>Saves data matrix to bitmap file. The data values are transformed from range [<var>v1</var>, <var>v2</var>] to RGB pixels of bitmap using color scheme <var>sch</var> (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>). If <var>v1</var>&gt;=<var>v2</var> then the values of <var>v1</var>, <var>v2</var> are automatically determined as minimal and maximal value of the data array.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Make-another-data-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#File-I_002fO-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Change-data-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Make-another-data-_0028MGL_0029-1"></a>
+<h2 class="section">8.20 Make another data (MGL)</h2>
+
+<a name="index-combine"></a>
+<p><a name="combine"></a>
+</p><dl>
+<dt><a name="index-combine-1"></a><u>MGL command:</u> <b>combine</b><i> res adat bdat</i></dt>
+<dd><p>Returns direct multiplication of arrays (like, res[i,j] = adat[i]*bdat[j] and so on).
+</p></dd></dl>
+
+<a name="index-evaluate"></a>
+<p><a name="evaluate"></a>
+</p><dl>
+<dt><a name="index-evaluate-1"></a><u>MGL command:</u> <b>evaluate</b><i> res dat idat [<code>norm=on</code>]</i></dt>
+<dt><a name="index-evaluate-2"></a><u>MGL command:</u> <b>evaluate</b><i> res dat idat jdat [<code>norm=on</code>]</i></dt>
+<dt><a name="index-evaluate-3"></a><u>MGL command:</u> <b>evaluate</b><i> res dat idat jdat kdat [<code>norm=on</code>]</i></dt>
+<dd><p>Get array which values is result of interpolation of original array for coordinates from other arrays (for example, res[i,j]=dat[idat[i,j],jdat[i,j]]). All dimensions must be the same for data <var>idat</var>, <var>jdat</var>, <var>kdat</var>. Coordinates from <var>idat</var>, <var>jdat</var>, <var>kdat</var> are supposed to be normalized in range [0,1] (if <var>norm</var>=<code>true</code>) or in ranges [0,nx], [0,ny], [0,nz] correspondingly.
+</p></dd></dl>
+
+<a name="index-hist"></a>
+<p><a name="hist"></a>
+</p><dl>
+<dt><a name="index-hist-1"></a><u>MGL command:</u> <b>hist</b><i> res dat <code>num v1 v2 [nsub=0]</code></i></dt>
+<dt><a name="index-hist-2"></a><u>MGL command:</u> <b>hist</b><i> res dat wdat <code>num v1 v2 [nsub=0]</code></i></dt>
+<dd><p>Creates <var>num</var>-th points distribution <var>res</var> of the data values of <var>dat</var> in range [<var>v1</var>, <var>v2</var>]. Array <var>wdat</var> specifies weights of the data elements (all weight is 1 if <var>wdat</var> is not specified). Parameter <var>nsub</var> define the number of additional interpolated points (for smoothness of histogram).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-hist-3"></a><u>MGL command:</u> <b>hist</b><i> res xdat adat</i></dt>
+<dt><a name="index-hist-4"></a><u>MGL command:</u> <b>hist</b><i> res xdat ydat adat</i></dt>
+<dt><a name="index-hist-5"></a><u>MGL command:</u> <b>hist</b><i> res xdat ydat zdat adat</i></dt>
+<dd><p>Creates distribution <var>res</var> of the data values of <var>adat</var> in axis range [Min, Max]. Array <var>adat</var> look like weights of the data points.
+</p></dd></dl>
+
+
+<a name="index-momentum"></a>
+<p><a name="momentum"></a>
+</p><dl>
+<dt><a name="index-momentum-1"></a><u>MGL command:</u> <b>momentum</b><i> res dat 'how' ['dir'='z']</i></dt>
+<dd><p>Get momentum (1D-array) of the data along direction <var>dir</var>. String <var>how</var> contain kind of momentum. The momentum is defined like as
+res_k = \sum_ij how(x_i,y_j,z_k) a_ij/ \sum_ij a_ij
+if <var>var</var>=&lsquo;<samp>z</samp>&rsquo; and so on. Coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; are data indexes normalized in range [0,1].
+</p></dd></dl>
+
+<a name="index-sum"></a>
+<p><a name="sum"></a>
+</p><dl>
+<dt><a name="index-sum-1"></a><u>MGL command:</u> <b>sum</b><i> res dat 'dir'</i></dt>
+<dd><p>Gets array which is the result of summation in given direction or direction(s).
+</p></dd></dl>
+<a name="index-max"></a>
+<p><a name="max"></a>
+</p><dl>
+<dt><a name="index-max-1"></a><u>MGL command:</u> <b>max</b><i> res dat 'dir'</i></dt>
+<dd><p>Gets array which is the maximal data values in given direction or direction(s).
+</p></dd></dl>
+<a name="index-min"></a>
+<p><a name="min"></a>
+</p><dl>
+<dt><a name="index-min-1"></a><u>MGL command:</u> <b>min</b><i> res dat 'dir'</i></dt>
+<dd><p>Gets array which is the minimal data values in given direction or direction(s).
+</p></dd></dl>
+
+<a name="index-resize"></a>
+<p><a name="resize"></a>
+</p><dl>
+<dt><a name="index-resize-1"></a><u>MGL command:</u> <b>resize</b><i> res dat <code>mx [my=1 mz=1]</code></i></dt>
+<dd><p>Makes array <var>res</var> of sizes <var>mx</var>, <var>my</var>, <var>mz</var> with interpolated data of array <var>dat</var>. 
+</p></dd></dl>
+
+<a name="index-subdata"></a>
+<p><a name="subdata"></a>
+</p><dl>
+<dt><a name="index-subdata-1"></a><u>MGL command:</u> <b>subdata</b><i> res dat <code>xx [yy=: zz=:]</code></i></dt>
+<dd><p>Extracts sub-array data <var>res</var> from the original data <var>dat</var> array keeping fixed positive index. For example <code>subdata a b : 2</code> extracts 3d row (indexes are zero based), <code>subdata a b 4 :</code> extracts 5th column, <code>subdata a b : : 3</code> extracts 4th slice and so on. Note that symbol &lsquo;<samp>:</samp>&rsquo; is defined &lsquo;<samp>:</samp>&rsquo;=<code>-1</code> in MGL.
+</p></dd></dl>
+
+<a name="index-trace"></a>
+<p><a name="trace"></a>
+</p><dl>
+<dt><a name="index-trace-1"></a><u>MGL command:</u> <b>trace</b><i> res dat</i></dt>
+<dd><p>Gets array of diagonal elements <var>dat</var>[i,i] (for 2D case) or <var>dat</var>[i,i,i] (for 3D case) where i=0...nx-1. Function return copy of <var>dat</var> for 1D case. Data array must have dimensions <var>dat</var>.ny, <var>dat</var>.nz &gt;= <var>dat</var>.nx or <var>dat</var>.ny, <var>dat</var>.nz = 1.
+</p></dd></dl>
+
+<a name="index-transform"></a>
+<p><a name="transform"></a>
+</p><dl>
+<dt><a name="index-transform-1"></a><u>MGL command:</u> <b>transform</b><i> dat 'type' real imag</i></dt>
+<dd><p>Do integral transformation of complex data <var>real</var>, <var>imag</var> on specified direction. The order of transformations is specified in string <var>type</var>: first character for x-dimension, second one for y-dimension, third one for z-dimension. The possible character are: &lsquo;<samp>f</samp>&rsquo; is forward Fourier transformation, &lsquo;<samp>i</samp>&rsquo; is inverse Fourier transformation, &lsquo;<samp>s</samp>&rsquo; is Sine transform, &lsquo;<samp>c</samp>&rsquo; is Cosine transform, &lsquo;<samp>h</samp>&rsquo; is Hankel transform, &lsquo;<samp>n</samp>&rsquo; or &lsquo;<samp> </samp>&rsquo; is no transformation.
+</p></dd></dl>
+
+<a name="index-transforma"></a>
+<p><a name="transforma"></a>
+</p><dl>
+<dt><a name="index-transforma-1"></a><u>MGL command:</u> <b>transforma</b><i> dat 'type' ampl phase</i></dt>
+<dd><p>The same as previous but with specified amplitude <var>ampl</var> and phase <var>phase</var> of complex numbers.
+</p></dd></dl>
+
+<a name="index-stfad"></a>
+<p><a name="stfad"></a>
+</p><dl>
+<dt><a name="index-stfad-1"></a><u>MGL command:</u> <b>stfad</b><i> res real imag <code>dn</code> ['dir'='x']</i></dt>
+<dd><p>Short time Fourier transformation for real and imaginary parts. Output  is amplitude of partial Fourier of length <var>dn</var>. For example if <var>dir</var>=&lsquo;<samp>x</samp>&rsquo;, result will have size {int(nx/dn), dn, ny} and it will contain <em>res[i,j,k]=|\sum_d^dn exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn</em>.
+</p></dd></dl>
+
+<a name="index-pde"></a>
+<p><a name="pde"></a>
+</p><dl>
+<dt><a name="index-pde-1"></a><u>MGL command:</u> <b>pde</b><i> res 'ham' ini_re ini_im [<code>dz=0.1 k0=100</code>]</i></dt>
+<dd><p>Solves equation du/dz = i*k0*<var>ham</var>(p,q,x,y,z,|u|)[u], where p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators. Parameters <var>ini_re</var>, <var>ini_im</var> specify real and imaginary part of initial field distribution. Coordinates of the equation (and the solution) are supposed to be in the bounding box. Note, that really this ranges are increased by factor 3/2 for purpose of reducing reflection from boundaries. Parameter <var>dz</var> set the step along evolutionary coordinate z. At this moment, simplified form of function <var>ham</var> is supported &ndash; all &ldquo;mixed&rdquo; terms (like &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) are excluded. For example, in 2D case this function is effectively <em>ham = f(p,z) + g(x,z,u)</em>. However commutable combinations (like &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy) are allowed. Here variable &lsquo;<samp>u</samp>&rsquo; is used for field amplitude |u|. This allow one solve nonlinear problems &ndash; for example, for non-linear Shrodinger equation you may set <code>ham='p^2+q^2-u^2'</code>. You may specify imaginary part for wave absorption, like <code>ham = 'p^2+i*x*(x&gt;0)'</code>, but only if dependence on variable &lsquo;<samp>i</samp>&rsquo; is linear (i.e. <em>ham = hre+i*him</em>). See section <a href="mathgl_en_9.html#PDE-sample">PDE sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-ray"></a>
+<p><a name="ray"></a>
+</p><dl>
+<dt><a name="index-ray-1"></a><u>MGL command:</u> <b>ray</b><i> res 'ham' <code>x0 y0 z0 p0 q0 v0 [dt=0.1 tmax=10]</code></i></dt>
+<dd><p>Solves GO ray equation like d<em>r</em>/dt = d <var>ham</var>/d<em>p</em>, d<em>p</em>/dt = -d <var>ham</var>/d<em>r</em>. This is Hamiltonian equations for particle trajectory in 3D case. Here <var>ham</var> is Hamiltonian which may depend on coordiantes &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, momentums &lsquo;<samp>p</samp>&rsquo;=px, &lsquo;<samp>q</samp>&rsquo;=py, &lsquo;<samp>v</samp>&rsquo;=pz and time &lsquo;<samp>t</samp>&rsquo;: <em>ham = H(x,y,z,p,q,v,t)</em>. The starting point (at <code>t=0</code>) is defined by variables {<var>x0</var>, <var>y0</var>, <var>z0</var>, <var>p0</var>, <var>q0</var>, <var>v0</var>}. Parameters <var>dt</var> and <var>tmax</var> specify the integration step and maximal time for ray tracing. Result is array of {x,y,z,p,q,v,t} with dimensions {7 * int(<var>tmax</var>/<var>dt</var>+1) }. See also <a href="#pde">pde</a>. See section <a href="mathgl_en_9.html#Beam-tracing-sample">Beam tracing sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-qo2d"></a>
+<p><a name="qo2d"></a>
+</p><dl>
+<dt><a name="index-qo2d-1"></a><u>MGL command:</u> <b>qo2d</b><i> res 'ham' ini_re ini_im ray [<code>r=1 k0=100</code> xx=0 yy=0]</i></dt>
+<dd><p>Solves equation du/dt = i*k0*<var>ham</var>(p,q,x,y,|u|)[u], where p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators. Parameters <var>ini_re</var>, <var>ini_im</var> specify real and imaginary part of initial field distribution. Parameters <var>ray</var> set the reference ray, i.e. the ray around which the accompanied coordinate system will be maked. You may use, for example, the array created by <a href="#ray">ray</a> function. Note, that the reference ray <strong>must be</strong> smooth enough to make accompanied coodrinates unambiguity. Otherwise errors in the solution may appear. If <var>xx</var> and <var>yy</var> are non-zero then Cartesian coordinates for each point will be written into them. See section <a href="mathgl_en_9.html#Beam-tracing-sample">Beam tracing sample</a>, for sample code and picture. 
+</p></dd></dl>
+
+<a name="index-jacobian"></a>
+<p><a name="jacobian"></a>
+</p><dl>
+<dt><a name="index-jacobian-1"></a><u>MGL command:</u> <b>jacobian</b><i> res xdat ydat [zdat=0]</i></dt>
+<dd><p>Computates the Jacobian for transformation {i,j,k} to {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} where initial coordinates  {i,j,k} are data indexes normalized in range [0,1]. The Jacobian is determined by formula det||<em>dr_\alpha/d\xi_\beta</em>|| where <em>r</em>={<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} and <em>\  xi</em>={i,j,k}. All dimensions must be the same for all data arrays. Data must be 3D if all 3 arrays {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} are specified or 2D if only 2 arrays {<var>xdat</var>,<var>ydat</var>} are specified.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Change-data-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Make-another-data-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Operators-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Change-data-_0028MGL_0029-1"></a>
+<h2 class="section">8.21 Change data (MGL)</h2>
+
+<p>These commands change the data in some direction like differentiations, integrations and so on. The direction in which the change will applied is specified by the string parameter, which may contain &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo; characters for 1-st, 2-nd and 3-d dimension correspondingly.
+</p>
+<a name="index-cumsum"></a>
+<p><a name="cumsum"></a>
+</p><dl>
+<dt><a name="index-cumsum-1"></a><u>MGL command:</u> <b>cumsum</b><i> dat 'dir'</i></dt>
+<dd><p>Cumulative summation of the data in given direction or directions.
+</p></dd></dl>
+<a name="index-integrate"></a>
+<p><a name="integrate"></a>
+</p><dl>
+<dt><a name="index-integrate-1"></a><u>MGL command:</u> <b>integrate</b><i> dat 'dir'</i></dt>
+<dd><p>Integrates (like cumulative summation) the data in given direction or directions.
+</p></dd></dl>
+<a name="index-diff"></a>
+<p><a name="diff"></a>
+</p><dl>
+<dt><a name="index-diff-1"></a><u>MGL command:</u> <b>diff</b><i> dat 'dir'</i></dt>
+<dd><p>Differentiates the data in given direction or directions.
+</p></dd></dl>
+<dl>
+<dt><a name="index-diff-2"></a><u>MGL command:</u> <b>diff</b><i> dat xdat ydat [zdat=0]</i></dt>
+<dd><p>Differentiates the data <var>dat</var> specified parametrically in direction <var>xdat</var> with <var>ydat</var>, <var>zdat</var>=constant. Parameter <var>zdat</var> can be omitted that correspond to 2D case. Parametrical differentiation uses the formula (for 2D case): <em>da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j)</em> where <em>a_i=da/di, a_j=da/dj</em> denotes usual differentiation along 1st and 2nd dimensions. The similar formula is used for 3D case. Note, that you may change the order of arguments &ndash; for example, if you have 2D data a(i,j) which depend on coordinates {x(i,j), y(i,j)} then usual derivative along &lsquo;<samp>x</samp>&rsquo; will be <code>diff a x y</code> and usual derivative along &lsquo;<samp>y</samp>&rsquo; will be <code>diff a y x</code>.
+</p></dd></dl>
+
+<a name="index-diff2"></a>
+<p><a name="diff2"></a>
+</p><dl>
+<dt><a name="index-diff2-1"></a><u>MGL command:</u> <b>diff2</b><i> dat 'dir'</i></dt>
+<dd><p>Double-differentiates (like Laplace operator) the data in given direction.
+</p></dd></dl>
+
+<a name="index-sinfft"></a>
+<p><a name="sinfft"></a>
+</p><dl>
+<dt><a name="index-sinfft-1"></a><u>MGL command:</u> <b>sinfft</b><i> dat 'dir'</i></dt>
+<dd><p>Do Sine transform of the data in given direction or directions. The Sine transform is <em>\sum a_i \sin(k i)</em>.
+</p></dd></dl>
+<a name="index-cosfft"></a>
+<p><a name="cosfft"></a>
+</p><dl>
+<dt><a name="index-cosfft-1"></a><u>MGL command:</u> <b>cosfft</b><i> dat 'dir'</i></dt>
+<dd><p>Do Cosine transform of the data in given direction or directions. The Cosine transform is <em>\sum a_i \cos(k i)</em>.
+</p></dd></dl>
+<a name="index-hankel"></a>
+<p><a name="hankel"></a>
+</p><dl>
+<dt><a name="index-hankel-1"></a><u>MGL command:</u> <b>hankel</b><i> dat 'dir'</i></dt>
+<dd><p>Do Hankel transform of the data in given direction or directions. The Hankel transform is <em>\sum a_i J_0(k i)</em>.
+</p></dd></dl>
+
+
+<a name="index-swap"></a>
+<p><a name="swap"></a>
+</p><dl>
+<dt><a name="index-swap-1"></a><u>MGL command:</u> <b>swap</b><i> dat 'dir'</i></dt>
+<dd><p>Swaps the left and right part of the data in given direction (useful for Fourier spectrum).
+</p></dd></dl>
+<a name="index-roll"></a>
+<p><a name="roll"></a>
+</p><dl>
+<dt><a name="index-roll-1"></a><u>MGL command:</u> <b>roll</b><i> dat 'dir' num</i></dt>
+<dd><p>Rolls the data along direction &rsquo;dir&rsquo;. Resulting array will be out[i] = ini[(i+num)%nx] if <code>dir='x'</code>.
+</p></dd></dl>
+
+<a name="index-mirror"></a>
+<p><a name="mirror"></a>
+</p><dl>
+<dt><a name="index-mirror-1"></a><u>MGL command:</u> <b>mirror</b><i> dat 'dir'</i></dt>
+<dd><p>Mirror the left-to-right part of the data in given direction. Looks like change the value index <var>i</var>-&gt;<var>n-i</var>.
+</p></dd></dl>
+
+<a name="index-sew"></a>
+<p><a name="sew"></a>
+</p><dl>
+<dt><a name="index-sew-1"></a><u>MGL command:</u> <b>sew</b><i> dat ['dir'='xyz' <code>da=2*pi</code>]</i></dt>
+<dd><p>Remove value steps (like phase jumps after inverse trigonometric commands) with period <var>da</var> in given direction.
+</p></dd></dl>
+<a name="index-smooth"></a>
+<p><a name="smooth"></a>
+</p><dl>
+<dt><a name="index-smooth-1"></a><u>MGL command:</u> <b>smooth</b><i> data <code>type</code> ['dir'='xyz']</i></dt>
+<dd><p>Smooths the data on specified direction or directions by method <var>Type</var>. Now 4 methods are supported: &lsquo;<samp>0</samp>&rsquo; does nothing, &lsquo;<samp>1</samp>&rsquo; linear averaging by 3 points, &lsquo;<samp>2</samp>&rsquo; linear averaging by 5 points, &lsquo;<samp>3</samp>&rsquo; quadratic averaging by 5 points.
+</p></dd></dl>
+
+<a name="index-envelop"></a>
+<p><a name="envelop"></a>
+</p><dl>
+<dt><a name="index-envelop-1"></a><u>MGL command:</u> <b>envelop</b><i> dat ['dir'='x']</i></dt>
+<dd><p>Find envelop for data values along direction <var>dir</var>. Only one direction can be specified at once.
+</p></dd></dl>
+
+<a name="index-normsl"></a>
+<p><a name="normsl"></a>
+</p><dl>
+<dt><a name="index-normsl-1"></a><u>MGL command:</u> <b>normsl</b><i> dat <code>v1 v2</code> ['dir'='z' <code>keep=on sym=off</code>]</i></dt>
+<dd><p>Normalizes data slice-by-slice along direction <var>dir</var> the data in slices to range [<var>v1</var>,<var>v2</var>]. If flag <var>sym</var>=<code>on</code> then symmetrical interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used. If <var>keep</var> is set then maximal value of k-th slice will be limited by 
+<em>\sqrt\sum a_ij(k)/\sum a_ij(0)</em>.
+</p></dd></dl>
+
+<a name="index-norm"></a>
+<p><a name="norm"></a>
+</p><dl>
+<dt><a name="index-norm-1"></a><u>MGL command:</u> <b>norm</b><i> dat <code>v1 v2 [sym=off dim=0]</code></i></dt>
+<dd><p>Normalizes the data to range [<var>v1</var>,<var>v2</var>]. If flag <var>sym</var>=<code>on</code> then symmetrical interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used. Modification will be applied only for slices &gt;=<var>dim</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Operators-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Change-data-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Program-flow-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Operators-_0028MGL_0029-1"></a>
+<h2 class="section">8.22 Operators (MGL)</h2>
+
+<a name="index-multo"></a>
+<p><a name="multo"></a>
+</p><dl>
+<dt><a name="index-multo-1"></a><u>MGL command:</u> <b>multo</b><i> dat dat2</i></dt>
+<dd><p>Multiplies the data by the other one for each element.
+</p></dd></dl>
+<dl>
+<dt><a name="index-multo-2"></a><u>MGL command:</u> <b>multo</b><i> dat <code>val</code></i></dt>
+<dd><p>Multiplies each element by the number.
+</p></dd></dl>
+
+<a name="index-divto"></a>
+<p><a name="divto"></a>
+</p><dl>
+<dt><a name="index-divto-1"></a><u>MGL command:</u> <b>divto</b><i> dat dat2</i></dt>
+<dd><p>Divides the data by the other one for each element.
+</p></dd></dl>
+<dl>
+<dt><a name="index-divto-2"></a><u>MGL command:</u> <b>divto</b><i> dat <code>val</code></i></dt>
+<dd><p>Divides each element by the number.
+</p></dd></dl>
+
+<a name="index-addto"></a>
+<p><a name="addto"></a>
+</p><dl>
+<dt><a name="index-addto-1"></a><u>MGL command:</u> <b>addto</b><i> dat dat2</i></dt>
+<dd><p>Adds the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-addto-2"></a><u>MGL command:</u> <b>addto</b><i> dat <code>val</code></i></dt>
+<dd><p>Adds the number to each element.
+</p></dd></dl>
+
+<a name="index-subto"></a>
+<p><a name="subto"></a>
+</p><dl>
+<dt><a name="index-subto-1"></a><u>MGL command:</u> <b>subto</b><i> dat dat2</i></dt>
+<dd><p>Subtracts the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-subto-2"></a><u>MGL command:</u> <b>subto</b><i> dat <code>val</code></i></dt>
+<dd><p>Subtracts the number to each element.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Program-flow-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Operators-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Command-options-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Program-flow-_0028MGL_0029-1"></a>
+<h2 class="section">8.23 Program flow (MGL)</h2>
+
+<p>These commands control program flow, like, conditions, cycles, define script arguments and so on.
+</p>
+<a name="index-chdir"></a>
+<p><a name="chdir"></a>
+</p><dl>
+<dt><a name="index-chdir-1"></a><u>MGL command:</u> <b>chdir</b><i> 'path'</i></dt>
+<dd><p>Changes the current directory to <var>path</var>.
+</p></dd></dl>
+
+<a name="index-define"></a>
+<p><a name="define"></a>
+</p><dl>
+<dt><a name="index-define-1"></a><u>MGL command:</u> <b>define</b><i> $N smth</i></dt>
+<dd><p>Sets <var>N</var>-th script argument to <var>smth</var>. Note, that <var>smth</var> is used as is (with &lsquo;<samp>'</samp>&rsquo; symbols if present). Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<dl>
+<dt><a name="index-define-2"></a><u>MGL command:</u> <b>define</b><i> name smth</i></dt>
+<dd><p>Create scalar variable <code>name</code> which have the numeric value of <code>smth</code>. Later you can use this variable as usual number. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<a name="index-defchr"></a>
+<p><a name="defchr"></a>
+</p><dl>
+<dt><a name="index-defchr-1"></a><u>MGL command:</u> <b>defchr</b><i> $N smth</i></dt>
+<dd><p>Sets <var>N</var>-th script argument to character with value evaluated from <var>smth</var>. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<a name="index-defnum"></a>
+<p><a name="defnum"></a>
+</p><dl>
+<dt><a name="index-defnum-1"></a><u>MGL command:</u> <b>defnum</b><i> $N smth</i></dt>
+<dd><p>Sets <var>N</var>-th script argument to number with value evaluated from <var>smth</var>. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<a name="index-defpal"></a>
+<p><a name="defpal"></a>
+</p><dl>
+<dt><a name="index-defpal-1"></a><u>MGL command:</u> <b>defpal</b><i> $N smth</i></dt>
+<dd><p>Sets <var>N</var>-th script argument to palette character at position evaluated from <var>smth</var>. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+
+<a name="index-call"></a>
+<p><a name="call"></a>
+</p><dl>
+<dt><a name="index-call-1"></a><u>MGL command:</u> <b>call</b><i> 'fname' [ARG1 ARG2 ... ARG9]</i></dt>
+<dd><p>Executes function <var>fname</var> (or script if function is not found). Optional arguments will be passed to functions. See also <a href="#func">func</a>.
+</p></dd></dl>
+<a name="index-func"></a>
+<p><a name="func"></a>
+</p><dl>
+<dt><a name="index-func-1"></a><u>MGL command:</u> <b>func</b><i> 'fname' [narg=0]</i></dt>
+<dd><p>Define the function <var>fname</var> and number of required arguments. The arguments will be placed in script parameters $1, $2, ... $9. Note, you should stop script execution before function definition(s) by command <a href="#stop">stop</a>. See also <a href="#return">return</a>.
+</p></dd></dl>
+<a name="index-return"></a>
+<p><a name="return"></a>
+</p><dl>
+<dt><a name="index-return-1"></a><u>MGL command:</u> <b>return</b></dt>
+<dd><p>Return from the function. See also <a href="#func">func</a>.
+</p></dd></dl>
+
+
+<a name="index-if"></a>
+<p><a name="if"></a>
+</p><dl>
+<dt><a name="index-if-1"></a><u>MGL command:</u> <b>if</b><i> dat 'cond'</i></dt>
+<dd><p>Starts block which will be executed if <var>dat</var> satisfy to <var>cond</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-if-2"></a><u>MGL command:</u> <b>if</b><i> <code>val</code></i></dt>
+<dd><p>Starts block which will be executed if <code>val</code> is nonzero.
+</p></dd></dl>
+<a name="index-elseif"></a>
+<p><a name="elseif"></a>
+</p><dl>
+<dt><a name="index-elseif-1"></a><u>MGL command:</u> <b>elseif</b><i> dat 'cond'</i></dt>
+<dd><p>Starts block which will be executed if previous <code>if</code> or <code>elseif</code> is false and <var>dat</var> satisfy to <var>cond</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-elseif-2"></a><u>MGL command:</u> <b>elseif</b><i> <code>val</code></i></dt>
+<dd><p>Starts block which will be executed if previous <code>if</code> or <code>elseif</code> is false and <code>val</code> is nonzero.
+</p></dd></dl>
+<a name="index-else"></a>
+<p><a name="else"></a>
+</p><dl>
+<dt><a name="index-else-1"></a><u>MGL command:</u> <b>else</b></dt>
+<dd><p>Starts block which will be executed if previous <code>if</code> or <code>elseif</code> is false.
+</p></dd></dl>
+<a name="index-endif"></a>
+<p><a name="endif"></a>
+</p><dl>
+<dt><a name="index-endif-1"></a><u>MGL command:</u> <b>endif</b></dt>
+<dd><p>Finishes <code>if/elseif/else</code> block.
+</p></dd></dl>
+
+<a name="index-for"></a>
+<p><a name="for"></a>
+</p><dl>
+<dt><a name="index-for-1"></a><u>MGL command:</u> <b>for</b><i> $N <code>v1 v2 [dv=1]</code></i></dt>
+<dd><p>Starts cycle with $<var>N</var>-th argument changing from <var>v1</var> to <var>v2</var> with the step <var>dv</var>. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<dl>
+<dt><a name="index-for-2"></a><u>MGL command:</u> <b>for</b><i> $N dat</i></dt>
+<dd><p>Starts cycle with $<var>N</var>-th argument changing for <var>dat</var> values. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<a name="index-next"></a>
+<p><a name="next"></a>
+</p><dl>
+<dt><a name="index-next-1"></a><u>MGL command:</u> <b>next</b></dt>
+<dd><p>Finishes <code>for</code> cycle.
+</p></dd></dl>
+
+<a name="index-once"></a>
+<p><a name="once"></a>
+</p><dl>
+<dt><a name="index-once-1"></a><u>MGL command:</u> <b>once</b><i> <code>val</code></i></dt>
+<dd><p>The code between <code>once on</code> and <code>once off</code> will be executed only once. Useful for large data manipulation in programs like UDAV.
+</p></dd></dl>
+<a name="index-stop"></a>
+<p><a name="stop"></a>
+</p><dl>
+<dt><a name="index-stop-1"></a><u>MGL command:</u> <b>stop</b></dt>
+<dd><p>Terminate execution.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Command-options-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Program-flow-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Suffixes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Command-options-_0028MGL_0029-1"></a>
+<h2 class="section">8.24 Command options (MGL)</h2>
+
+<p>Command options allow the easy setup of the plot by changing of global settings only for this plot. Options are specified at the end of string. Each option is separated from the previous text by symbol &lsquo;<samp>;</samp>&rsquo;. Options work so that them remember the current settings, change settings as it being set in the option, execute command and return the original settings back. So, the options usage for data handling commands or for graphics setup commands is useless.
+</p>
+<p>The most useful options are <code>xrange, yrange, zrange</code>. They sets the boundaries for data change. This boundaries are used for automatically filled variables. So, these options allow one to change the position of some plots. For example, in command <code>plot y; xrange 0.1 0.9</code> the x coordinate will be equidistantly distributed in range 0.1 ... 0.9.
+</p>
+<p>The full list of options are:
+<a name="index-alpha-2"></a>
+<a name="index-alphadef-2"></a>
+</p><dl>
+<dt><a name="index-alpha-3"></a><u>MGL option:</u> <b>alpha</b><i> <code>val</code></i></dt>
+<dt><a name="index-alphadef-3"></a><u>MGL option:</u> <b>alphadef</b><i> <code>val</code></i></dt>
+<dd><p>Sets alpha value (transparency) of the plot. The value should be in range [0, 1]. See also <a href="#alphadef">alphadef</a>.
+</p></dd></dl>
+<a name="index-ambient-2"></a>
+<dl>
+<dt><a name="index-ambient-3"></a><u>MGL option:</u> <b>ambient</b><i> <code>val</code></i></dt>
+<dd><p>Sets brightness of ambient light for the plot. The value should be in range [0, 1]. See also <a href="#ambient">ambient</a>.
+</p></dd></dl>
+<a name="index-crange-3"></a>
+<dl>
+<dt><a name="index-crange-4"></a><u>MGL option:</u> <b>crange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Sets boundaries of color change for the plot. See also <a href="#crange">crange</a>.
+</p></dd></dl>
+<a name="index-xrange-3"></a>
+<dl>
+<dt><a name="index-xrange-4"></a><u>MGL option:</u> <b>xrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Sets boundaries of x coordinate change for the plot. See also <a href="#xrange">xrange</a>.
+</p></dd></dl>
+<a name="index-yrange-3"></a>
+<dl>
+<dt><a name="index-yrange-4"></a><u>MGL option:</u> <b>yrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Sets boundaries of y coordinate change for the plot. See also <a href="#yrange">yrange</a>.
+</p></dd></dl>
+<a name="index-zrange-3"></a>
+<dl>
+<dt><a name="index-zrange-4"></a><u>MGL option:</u> <b>zrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Sets boundaries of z coordinate change for the plot. See also <a href="#zrange">zrange</a>.
+</p></dd></dl>
+<a name="index-cut-4"></a>
+<dl>
+<dt><a name="index-cut-5"></a><u>MGL option:</u> <b>cut</b><i> <code>val</code></i></dt>
+<dd><p>Sets whether to cut or to project the plot points lying outside the bounding box. See also <a href="#cut">cut</a>.
+</p></dd></dl>
+<a name="index-fontsize"></a>
+<dl>
+<dt><a name="index-fontsize-1"></a><u>MGL option:</u> <b>fontsize</b><i> <code>val</code></i></dt>
+<dd><p>Sets the size of text. See also <a href="#font">font</a>.
+</p></dd></dl>
+<a name="index-marksize-2"></a>
+<dl>
+<dt><a name="index-marksize-3"></a><u>MGL option:</u> <b>marksize</b><i> <code>val</code></i></dt>
+<dd><p>Sets the size of marks. See also <a href="#marksize">marksize</a>.
+</p></dd></dl>
+<a name="index-meshnum-2"></a>
+<dl>
+<dt><a name="index-meshnum-3"></a><u>MGL option:</u> <b>meshnum</b><i> <code>val</code></i></dt>
+<dd><p>Work like <a href="#meshnum">meshnum</a> command.
+</p></dd></dl>
+<a name="index-legend-3"></a>
+<dl>
+<dt><a name="index-legend-4"></a><u>MGL option:</u> <b>legend</b><i> 'txt'</i></dt>
+<dd><p>Adds string &rsquo;txt&rsquo; to internal legend accumulator. The style of described line and mark is taken from arguments of the last <a href="#g_t1D-plotting-_0028MGL_0029">1D plotting (MGL)</a> command. See also <a href="#legend">legend</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Suffixes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Command-options-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Utilities" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Suffixes-for-variable"></a>
+<h2 class="section">8.25 Suffixes for variable</h2>
+
+<p>Suffixes can get some numerical value (like its size, maximal or minimal value, the sum of elements and so on) of the data array in variable and use it later as usual number in command arguments. The suffixes start from point &lsquo;<samp>.</samp>&rsquo; right after (without spaces) variable name or its sub-array. For example, <code>a.nx</code> give the x-size of data <var>a</var>, <code>b(1).max</code> give maximal value of second row of variable <var>b</var>, <code>(c(:,0)^2).sum</code> give the sum of squares of elements in the first column of <var>c</var> and so on.
+</p>
+<p>The full list of suffixes are:
+</p><dl compact="compact">
+<dt> <strong>nx, ny, nz</strong></dt>
+<dd><p>Give the data size in x-, y-, z-direction correspondingly.
+</p></dd>
+<dt> <strong>max</strong></dt>
+<dd><p>Give maximal value of the data.
+</p></dd>
+<dt> <strong>min</strong></dt>
+<dd><p>Give minimal value of the data.
+</p></dd>
+<dt> <strong>sum</strong></dt>
+<dd><p>Give sum of data values.
+</p></dd>
+<dt> <strong>a</strong></dt>
+<dd><p>Give first value of data array.
+</p></dd>
+<dt> <strong>fst</strong></dt>
+<dd><p>Give first nonzero value of data array.
+</p></dd>
+<dt> <strong>lst</strong></dt>
+<dd><p>Give last nonzero value of data array.
+</p></dd>
+<dt> <strong>mx, my, mz</strong></dt>
+<dd><p>Give x-, y-, z-position of data maximum.
+</p></dd>
+<dt> <strong>ax, ay, az, aa</strong></dt>
+<dd><p>Give x-, y-, z-position of data mass center or average data value.
+</p></dd>
+<dt> <strong>wx, wy, wz, wa</strong></dt>
+<dd><p>Give width in x-, y-, z-direction or data dispersion value.
+</p></dd>
+<dt> <strong>sx, sy, sz, sa</strong></dt>
+<dd><p>Give skewness in x-, y-, z-direction or data skewness value.
+</p></dd>
+<dt> <strong>kx, ky, kz, ka</strong></dt>
+<dd><p>Give kurtosis in x-, y-, z-direction or data kurtosis value.
+</p></dd>
+</dl>
+
+<hr size="6">
+<a name="Utilities"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Suffixes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Utilities-for-parsing-MGL"></a>
+<h2 class="section">8.26 Utilities for parsing MGL</h2>
+
+<p>MathGL library provides several tools for parsing MGL scripts. There is tools saving it to bitmap (<code>mgl2png</code>, <code>mgl2gif</code>) or vectorial (<code>mgl2eps</code>, <code>mgl2svg</code>) images. Tool <code>mglview</code> show MGL script and allow to rotate and setup the image. Also you can translate MGL script to C++ file by help of <code>mgl2cpp</code> tool.
+</p>
+<p>All of this tools have similar set of arguments. First argument is name of script file, next argument is optional output file name, last arguments are options. There are options for setting script parameters (it is <code>$0, $1, ... $9</code>) and locale settings. The script parameters have format &lsquo;<samp>-Nval</samp>&rsquo;. Here N=0,1...9 is parameter ID and val is its value. For example, option &lsquo;<samp>-1test</samp>&rsquo; set to substitute &lsquo;<samp>test</samp>&rsquo; instead of <code>$1</code> in the script. Option -Lval set locale to val. For example, &lsquo;<samp>-Lutf8</samp>&rsquo; will set UTF-8 locale for script.
+</p>
+<p>Additionally you can create animated GIF file or a set of JPEG files with names &lsquo;<samp>frameNNNN.jpg</samp>&rsquo; (here &lsquo;<samp>NNNN</samp>&rsquo; is frame index). You should use <code>mgl2gif</code> tool and specify the values of <code>$0</code> parameter for making animation. Values of the parameter <code>$0</code> can be specified inside the script by comment <code>##a val</code> for each value <code>val</code> (one comment for one value) or by option(s) &lsquo;<samp>-Aval</samp>&rsquo;. Also you can specify a cycle for animation by comment <code>##c v1 v2 dv</code> or by option <code>-Cn1:n2</code>. Tool <code>mgl2gif</code> will execute script several times (once for each specified value of <code>$0</code>) and save result in animated GIF file. For saving each frame in JPEG just add command <code>write ''</code> at the end of the script.
+</p>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_9.html b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_9.html
new file mode 100644
index 0000000..4ea86a1
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_9.html
@@ -0,0 +1,8219 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: 9. Samples</title>
+
+<meta name="description" content="MathGL 1.11: 9. Samples">
+<meta name="keywords" content="MathGL 1.11: 9. Samples">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_8.html#Utilities" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Samples-1"></a>
+<h1 class="chapter">9. Samples</h1>
+<p>This chapter contain a lot of sample codes for all types of plots and for most important examples and hints. The same sample (with pictures) you can find at <a href="http://mathgl.sf.net/pictures.html">http://mathgl.sf.net/pictures.html</a>. 
+Most of examples have the sample code on 5 languages: C++, MGL, C, Fortran and Python. However, I put only C++ code for some of examples due to a lot of them and clearency how to write code for other languages. All samples are divided on 6 large categories.
+The minimal code to view the samples for different languages are following.
+<strong>C++ code</strong>
+For compilation use: <code>g++ -o sample sample.cpp -lmgl</code>.
+</p><pre class="verbatim">#include &lt;mgl/mgl_zb.h&gt;
+int main()
+{
+    mglGraph *gr = new mglGraphZB;
+    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // put sample code here
+    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    gr-&gt;ShowImage();    delete gr;
+    return 0;
+}
+</pre><p><strong>MGL code</strong>
+For preview use: <code>mglview sample.mgl</code>.
+</p><pre class="verbatim">#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# put sample code here
+#   --&gt;   you may use sample as is :)
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+</pre><p><strong>Pure C code</strong>
+For compilation use: <code>gcc -o sample sample.c -lmgl</code>.
+</p><pre class="verbatim">#include &lt;mgl/mgl_c.h&gt;
+int main()
+{
+    HMGL gr = mgl_create_graph_zb(600,400);
+    /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    /* put sample code here              */
+    /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    mgl_show_image(gr,&quot;&quot;,0);
+    mgl_delete_graph(gr);
+    return 0;
+}
+</pre><p><strong>Fortran code</strong>
+For compilation use: <code>gfortran -o sample sample.f90 -lmgl</code>. Note, fortran don&rsquo;t have argument checking. So you have to take special attention to pass real variables to real arguments of functions and integer variables to integer arguments of functions. There is no other special checking for that!!!
+</p><pre class="verbatim">integer gr, mgl_create_graph_zb
+gr = mgl_create_graph_zb(600,400)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! put sample code here
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+call mgl_show_image(gr,'',0)
+call mgl_delete_graph(gr)
+end
+</pre><p><strong>Python</strong>
+For preview use: <code>python sample.py</code>.
+</p><pre class="verbatim">from mathgl import *
+gr = mglGraph();
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# put sample code here
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+gr.ShowImage();
+</pre><table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting-samples">9.1 1D plotting samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting-samples">9.2 2D plotting samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting-samples">9.3 3D plotting samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting-samples">9.4 Dual plotting samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Basic-features">9.5 Basic features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Additional-features">9.6 Additional features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Advanced-features">9.7 Advanced features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+</table>
+<hr size="6">
+<a name="g_t1D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-plotting-samples-1"></a>
+<h2 class="section">9.1 1D plotting samples</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plot-sample">9.1.1 Plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Radar-sample">9.1.2 Radar sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tens-sample">9.1.3 Tens sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area-sample">9.1.4 Area sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area-gradient-sample">9.1.5 Area with gradient filling sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-sample">9.1.6 Bars sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-2-colors-sample">9.1.7 Bars 2 colors sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-above-sample">9.1.8 Bars above sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-fall-sample">9.1.9 Bars fall sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Barh-sample">9.1.10 Barh sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Step-sample">9.1.11 Step sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stem-sample">9.1.12 Stem sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region-sample">9.1.13 Region sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region-gradient-sample">9.1.14 Region gradient sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Error-sample">9.1.15 Error sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#BoxPlot-sample">9.1.16 BoxPlot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mark-sample">9.1.17 Mark sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TextMark-sample">9.1.18 TextMark sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tube-sample">9.1.19 Tube sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-sample">9.1.20 Text sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Torus-sample">9.1.21 Torus sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Chart-sample">9.1.22 Chart sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pie-chart-sample">9.1.23 Pie chart sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ring-chart-sample">9.1.24 Ring chart sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+<hr size="6">
+<a name="Plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Radar-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plot-sample-1"></a>
+<h3 class="subsection">9.1.1 Plot sample</h3>
+<a name="index-Plot-7"></a>
+<div class="float">
+<img src="../png/plot.png" alt="../png/plot">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Box();
+gr-&gt;Plot(y);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.Box();
+gr.Plot(y);
+</pre><hr size="6">
+<a name="Radar-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Radar-sample-1"></a>
+<h3 class="subsection">9.1.2 Radar sample</h3>
+<a name="index-Radar-2"></a>
+<div class="float">
+<img src="../png/radar.png" alt="../png/radar">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.4*sin(pi*(2*x+y/2))+0.1*rnd&quot;);
+gr-&gt;Radar(y,&quot;#&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.4*sin(pi*(2*x+y/2))+0.1*rnd'
+radar y '#'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.4*sin(pi*(2*x+y/2))+0.1*rnd&quot;,0);
+mgl_radar(gr,y,&quot;#&quot;,-1);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.4*sin(pi*(2*x+y/2))+0.1*rnd',0)
+call mgl_radar(gr,y,'#',-1.)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.4*sin(pi*(2*x+y/2))+0.1*rnd&quot;);
+gr.Radar(y,&quot;#&quot;);
+</pre><hr size="6">
+<a name="Tens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Radar-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tens-sample-1"></a>
+<h3 class="subsection">9.1.3 Tens sample</h3>
+<a name="index-Tens-4"></a>
+<div class="float">
+<img src="../png/tens.png" alt="../png/tens">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50), c(50);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;);
+c.Modify(&quot;sin(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Tens(y,c);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50
+new c 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify c 'sin(2*pi*x)'
+box
+tens y c
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,1,1);
+HMDT c = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(c,&quot;sin(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_tens(gr,y,c,NULL);
+mgl_delete_data(y);
+mgl_delete_data(c);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, c, mgl_create_data_size
+y = mgl_create_data_size(50,1,1)
+c = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(c,'sin(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_tens(gr,y,'')
+call mgl_delete_data(y)
+call mgl_delete_data(c)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50);
+c = mglData(50);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;);
+c.Modify(&quot;sin(2*pi*x)&quot;);
+gr.Box();
+gr.Tens(y,c);
+</pre><hr size="6">
+<a name="Area-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area-gradient-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-sample-1"></a>
+<h3 class="subsection">9.1.4 Area sample</h3>
+<a name="index-Area-4"></a>
+<div class="float">
+<img src="../png/area.png" alt="../png/area">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Area(y);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_area(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_area(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Area(y);
+</pre><hr size="6">
+<a name="Area-gradient-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-with-gradient-filling-sample"></a>
+<h3 class="subsection">9.1.5 Area with gradient filling sample</h3>
+<a name="index-Area-5"></a>
+<div class="float">
+<img src="../png/area_2.png" alt="../png/area_2">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Area(y,&quot;cbgGyr&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y 'cbgGyr'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_area(gr,y,&quot;cbgGyr&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_area(gr,y,'cbgGyr')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Area(y,&quot;cbgGyr&quot;);
+</pre><hr size="6">
+<a name="Bars-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area-gradient-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-2-colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-sample-1"></a>
+<h3 class="subsection">9.1.6 Bars sample</h3>
+<a name="index-Bars-4"></a>
+<div class="float">
+<img src="../png/bars.png" alt="../png/bars">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Bars(y);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y);
+</pre><hr size="6">
+<a name="Bars-2-colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-above-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-2-colors-sample-1"></a>
+<h3 class="subsection">9.1.7 Bars 2 colors sample</h3>
+<a name="index-Bars-5"></a>
+<div class="float">
+<img src="../png/bars_2.png" alt="../png/bars_2">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Bars(y,&quot;cbgGyr&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'cbgGyr'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,&quot;cbgGyr&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'cbgGyr')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,&quot;cbgGyr&quot;);
+</pre><hr size="6">
+<a name="Bars-above-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-2-colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-fall-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-above-sample-1"></a>
+<h3 class="subsection">9.1.8 Bars above sample</h3>
+<a name="index-Bars-6"></a>
+<div class="float">
+<img src="../png/bars_a.png" alt="../png/bars_a">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Bars(y,&quot;a&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'a'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,&quot;a&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'a')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,&quot;a&quot;);
+</pre><hr size="6">
+<a name="Bars-fall-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-above-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Barh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-fall-sample-1"></a>
+<h3 class="subsection">9.1.9 Bars fall sample</h3>
+<a name="index-Bars-7"></a>
+<div class="float">
+<img src="../png/bars_f.png" alt="../png/bars_f">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Bars(y,&quot;f&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'f'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,&quot;f&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'f')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,&quot;f&quot;);
+</pre><hr size="6">
+<a name="Barh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-fall-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Step-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Barh-sample-1"></a>
+<h3 class="subsection">9.1.10 Barh sample</h3>
+<a name="index-Barh-3"></a>
+<div class="float">
+<img src="../png/barh.png" alt="../png/barh">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Barh(y);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+barh y
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_barh(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_barh(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Barh(y);
+</pre><hr size="6">
+<a name="Step-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Barh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stem-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Step-sample-1"></a>
+<h3 class="subsection">9.1.11 Step sample</h3>
+<a name="index-Step-4"></a>
+<div class="float">
+<img src="../png/step.png" alt="../png/step">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Box();
+gr-&gt;Step(y);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+step y
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_box(gr,1);
+mgl_step(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_box(gr,1)
+call mgl_step(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.Box();
+gr.Step(y);
+</pre><hr size="6">
+<a name="Stem-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Step-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stem-sample-1"></a>
+<h3 class="subsection">9.1.12 Stem sample</h3>
+<a name="index-Stem-4"></a>
+<div class="float">
+<img src="../png/stem.png" alt="../png/stem">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Stem(y,&quot;o&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+stem y 'o'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_stem(gr,y,&quot;o&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_stem(gr,y,'o')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Stem(y,&quot;o&quot;);
+</pre><hr size="6">
+<a name="Region-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Stem-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region-gradient-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-sample-1"></a>
+<h3 class="subsection">9.1.13 Region sample</h3>
+<a name="index-Region-3"></a>
+<div class="float">
+<img src="../png/region.png" alt="../png/region">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y1(50), y2(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Region(y1,y2,&quot;r&quot;);
+gr-&gt;Plot(y1,&quot;k2&quot;);
+gr-&gt;Plot(y2,&quot;k2&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'r'
+plot y1 'k2'
+plot y2 'k2'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_region(gr,y1,y2,&quot;r&quot;,1);
+mgl_plot(gr,y1,&quot;k2&quot;);
+mgl_plot(gr,y2,&quot;k2&quot;);
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,'0.3*sin(2*pi*x)',0);
+call mgl_data_modify(y2,'0.5+0.3*cos(2*pi*x)',0);
+call mgl_box(gr,1);
+call mgl_region(gr,y1,y2,'r',1);
+call mgl_plot(gr,y1,'k2');
+call mgl_plot(gr,y2,'k2');
+call mgl_delete_data(y1);
+call mgl_delete_data(y2);
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y1, y2, x = mglData(50), mglData(50), mglData(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.Box();
+gr.Region(y1,y2,&quot;r&quot;);
+gr.Plot(y1,&quot;k2&quot;);
+gr.Plot(y2,&quot;k2&quot;);
+</pre><hr size="6">
+<a name="Region-gradient-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Error-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-gradient-sample-1"></a>
+<h3 class="subsection">9.1.14 Region gradient sample</h3>
+<a name="index-Region-4"></a>
+<div class="float">
+<img src="../png/region_2.png" alt="../png/region_2">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y1(50), y2(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Region(y1,y2,&quot;yr&quot;);
+gr-&gt;Plot(y1,&quot;k2&quot;);
+gr-&gt;Plot(y2,&quot;k2&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'yr'
+plot y1 'k2'
+plot y2 'k2'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_region(gr,y1,y2,&quot;yr&quot;,1);
+mgl_plot(gr,y1,&quot;k2&quot;);
+mgl_plot(gr,y2,&quot;k2&quot;);
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,'0.3*sin(2*pi*x)',0);
+call mgl_data_modify(y2,'0.5+0.3*cos(2*pi*x)',0);
+call mgl_box(gr,1);
+call mgl_region(gr,y1,y2,'yr',1);
+call mgl_plot(gr,y1,'k2');
+call mgl_plot(gr,y2,'k2');
+call mgl_delete_data(y1);
+call mgl_delete_data(y2);
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y1, y2, x = mglData(50), mglData(50), mglData(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.Box();
+gr.Region(y1,y2,&quot;yr&quot;);
+gr.Plot(y1,&quot;k2&quot;);
+gr.Plot(y2,&quot;k2&quot;);
+</pre><hr size="6">
+<a name="Error-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region-gradient-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#BoxPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Error-sample-1"></a>
+<h3 class="subsection">9.1.15 Error sample</h3>
+<a name="index-Error-6"></a>
+<div class="float">
+<img src="../png/error.png" alt="../png/error">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,1), x0(10), y0(10), ex(10), ey(10);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+x0.Modify(&quot;2*x-1 + 0.1*rnd-0.05&quot;);
+y0.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1&quot;);
+ey.Modify(&quot;0.2&quot;); ex.Modify(&quot;0.1&quot;);
+gr-&gt;Box();
+gr-&gt;Plot(y);
+gr-&gt;Error(x0,y0,ex,ey,&quot;ko&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50
+new x0 10
+new y0 10
+new ex 10
+new ey 10
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify x0 '2*x-1 + 0.1*rnd-0.05'
+modify y0 '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1'
+modify ey '0.2'
+modify ex '0.1'
+box
+plot y
+error x0 y0 ex ey 'ko'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,1,1);
+HMDT x0 = mgl_create_data_size(10,1,1);
+HMDT y0 = mgl_create_data_size(10,1,1);
+HMDT ex = mgl_create_data_size(10,1,1);
+HMDT ey = mgl_create_data_size(10,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(x0,&quot;2*x-1 + 0.1*rnd-0.05&quot;,0);
+mgl_data_modify(y0,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1&quot;,0);
+mgl_data_modify(ey,&quot;0.2&quot;,0); mgl_data_modify(ex,&quot;0.1&quot;,0);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_error_exy(gr,x0,y0,ex,ey,&quot;ko&quot;);
+mgl_delete_data(x0); mgl_delete_data(y0);
+mgl_delete_data(ex); mgl_delete_data(ey);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, x0, y0, ex, ey, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+x0 = mgl_create_data_size(10,1,1)
+y0 = mgl_create_data_size(10,1,1)
+ex = mgl_create_data_size(10,1,1)
+ey = mgl_create_data_size(10,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(x0,'2*x-1 + 0.1*rnd-0.05',0);
+call mgl_data_modify(y0,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + &amp;
+                         0.2*sin(pi*x) + 0.2*rnd-0.1',0);
+call mgl_data_modify(ey,'0.2',0)
+call mgl_data_modify(ex,'0.1',0);
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_error_exy(gr,x0,y0,ex,ey,'ko')
+call mgl_delete_data(x0)
+call mgl_delete_data(y0)
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y, x0, y0, ex, ey = mglData(50,1), mglData(10), mglData(10), mglData(10), mglData(10);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+x0.Modify(&quot;2*x-1+0.1*rnd-0.05&quot;);
+y0.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)+0.2*rnd-0.1&quot;);
+ey.Modify(&quot;0.2&quot;);   ex.Modify(&quot;0.1&quot;);
+gr.Box();           gr.Plot(y);
+gr.Error(x0,y0,ex,ey,&quot;ko&quot;);
+</pre><hr size="6">
+<a name="BoxPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Error-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mark-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="BoxPlot-sample-1"></a>
+<h3 class="subsection">9.1.16 BoxPlot sample</h3>
+<a name="index-BoxPlot-3"></a>
+<div class="float">
+<img src="../png/boxplot.png" alt="../png/boxplot">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(10,7);
+a.Modify(&quot;(2*rnd-1)^3/2&quot;);
+gr-&gt;BoxPlot(a);
+gr-&gt;Box();
+gr-&gt;Plot(a,&quot; ko&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 10 7
+modify a '(2*rnd-1)^3/2'
+boxplot a
+box:plot a ' ko'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(10,7,1);
+mgl_data_modify(a,&quot;(2*rnd-1)^3/2&quot;,0);
+mgl_box(gr,1);
+mgl_plot(gr,a,&quot; ko&quot;);
+mgl_boxplot(gr,a,NULL);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+y = mgl_create_data_size(10,7,1)
+call mgl_data_modify(a,'(2*rnd-1)^3/2',0);
+call mgl_box(gr,1)
+call mgl_plot(gr,a,' ko')
+call mgl_boxplot(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(10,7);
+a.Modify(&quot;(2*rnd-1)^3/2&quot;);
+gr.Box();
+gr.Plot(a,&quot; ko&quot;);
+gr.BoxPlot(a);
+</pre><hr size="6">
+<a name="Mark-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#BoxPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TextMark-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mark-sample-1"></a>
+<h3 class="subsection">9.1.17 Mark sample</h3>
+<a name="index-Mark-7"></a>
+<div class="float">
+<img src="../png/mark.png" alt="../png/mark">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3), y1(50);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Mark(y,y1,&quot;bs&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+mark y y1 'bs'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+HMDT y1 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_mark_y(gr,y,y1,&quot;bs&quot;);
+mgl_delete_data(y);
+mgl_delete_data(y1);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, y1, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+y1 = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_data_modify(y1,'0.5+0.3*cos(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_mark_y(gr,y,y1,'bs')
+call mgl_delete_data(y)
+call mgl_delete_data(y1)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y, y1 = mglData(50,3), mglData(50);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);     y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.Box();
+gr.Mark(y,y1,&quot;bs&quot;);
+</pre><hr size="6">
+<a name="TextMark-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mark-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tube-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TextMark-sample-1"></a>
+<h3 class="subsection">9.1.18 TextMark sample</h3>
+<a name="index-TextMark-9"></a>
+<div class="float">
+<img src="../png/textmark.png" alt="../png/textmark">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3), y1(50);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;TextMark(y,y1,&quot;\\gamma&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+textmark y y1 '\gamma'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y, y1;
+y = mgl_create_data_size(50,3,1);
+y1 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_textmark_yr(gr,y,y1,&quot;\\gamma&quot;,&quot;&quot;);
+mgl_delete_data(y);
+mgl_delete_data(y1);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, y1, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+y1 = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_data_modify(y1,'0.5+0.3*cos(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_textmark_yr(gr,y,y1,'\gamma','')
+call mgl_delete_data(y)
+call mgl_delete_data(y1)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y, y1 = mglData(50,3), mglData(50);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);     y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.Box();
+gr.TextMark(y,y1,&quot;\\gamma&quot;);
+</pre><hr size="6">
+<a name="Tube-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TextMark-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tube-sample-1"></a>
+<h3 class="subsection">9.1.19 Tube sample</h3>
+<a name="index-Tube-7"></a>
+<div class="float">
+<img src="../png/tube.png" alt="../png/tube">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Tube(y,0.05);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+rotate 40 60
+light on
+box
+tube y 0.05
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_tube(gr,y,0.05,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_tube(gr,y,0.05,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);  y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Tube(y,0.05);
+</pre><hr size="6">
+<a name="Text-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tube-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Torus-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-sample-1"></a>
+<h3 class="subsection">9.1.20 Text sample</h3>
+<a name="index-Text-9"></a>
+<div class="float">
+<img src="../png/text.png" alt="../png/text">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Box();
+gr-&gt;Plot(y.SubData(-1,0));
+gr-&gt;Text(y,&quot;This is very long string drawn along a curve&quot;,&quot;:k&quot;);
+gr-&gt;Text(y,&quot;Another string drawn above a curve&quot;,&quot;T:r&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y(:,0)
+text y 'This is very long string drawn along a curve' ':k'
+text y 'Another string drawn above a curve' 'T:r'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_text_y(gr,y,&quot;This is very long string drawn along a curve&quot;,&quot;:k&quot;,-1.);
+mgl_text_y(gr,y,&quot;Another string drawn above a curve&quot;,&quot;T:r&quot;,-1.);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_text_y(gr,y,'This is very long string drawn along a curve',':k',-1.)
+call mgl_text_y(gr,y,'Another string drawn above a curve','T:r',-1.)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);     y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.Box();
+gr.Plot(y.SubData(-1,0));
+gr.Text(y,&quot;This is very long string drawn along a curve&quot;,&quot;:k&quot;);
+gr.Text(y,&quot;Another string drawn above a curve&quot;,&quot;T:r&quot;);
+</pre><hr size="6">
+<a name="Torus-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Torus-sample-1"></a>
+<h3 class="subsection">9.1.21 Torus sample</h3>
+<a name="index-Torus-3"></a>
+<div class="float">
+<img src="../png/torus.png" alt="../png/torus">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y1(50), y2(50);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+y2.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Torus(y1,y2,&quot;pz&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+rotate 40 60
+light on
+box
+torus y1 y2 'pz'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_torus(gr,y1,y2,&quot;pz&quot;);
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+call mgl_data_modify(y2,&quot;0.3*sin(2*pi*x)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_torus(gr,y1,y2,'pz')
+call mgl_delete_data(y1)
+call mgl_delete_data(y2)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y1, y2 = mglData(50), mglData(50);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+y2.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+gr.Rotate(40,60);    gr.Light(True);
+gr.Box();
+gr.Torus(y1,y2,&quot;pz&quot;);
+</pre><hr size="6">
+<a name="Chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Torus-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pie-chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Chart-sample-1"></a>
+<h3 class="subsection">9.1.22 Chart sample</h3>
+<a name="index-Chart-2"></a>
+<div class="float">
+<img src="../png/chart.png" alt="../png/chart">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData ch(7,2);
+ch.Modify(&quot;rnd+0.1&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Chart(ch,&quot;#&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+box
+chart ch
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,&quot;rnd+0.1&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_chart(gr,ch,&quot;#&quot;);
+mgl_delete_data(ch);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'#')
+call mgl_delete_data(ch)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ch = mglData(7,2);  ch.Modify(&quot;rnd+0.1&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Chart(ch,&quot;#&quot;);
+</pre><hr size="6">
+<a name="Pie-chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ring-chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pie-chart-sample-1"></a>
+<h3 class="subsection">9.1.23 Pie chart sample</h3>
+<a name="index-Chart-3"></a>
+<a name="index-Axis-4"></a>
+<div class="float">
+<img src="../png/pie_chart.png" alt="../png/pie_chart">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData ch(7,2);
+ch.Modify(&quot;rnd+0.1&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;SetFunc(&quot;(y+1)/2*cos(pi*x)&quot;,&quot;(y+1)/2*sin(pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Chart(ch,&quot;bgr cmy#&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+1)/2*cos(pi*x)' '(y+1)/2*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,&quot;rnd+0.1&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_func(gr,&quot;(y+1)/2*cos(pi*x)&quot;,&quot;(y+1)/2*sin(pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_chart(gr,ch,&quot;bgr cmy#&quot;);
+mgl_delete_data(ch);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_func(gr,'(y+1)/2*cos(pi*x)','(y+1)/2*sin(pi*x)','');
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'bgr cmy#')
+call mgl_delete_data(ch)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ch = mglData(7,2);  ch.Modify(&quot;rnd+0.1&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.SetFunc(&quot;(y+1)/2*cos(pi*x)&quot;,&quot;(y+1)/2*sin(pi*x)&quot;);
+gr.Box();
+gr.Chart(ch,&quot;bgr cmy#&quot;);
+</pre><hr size="6">
+<a name="Ring-chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pie-chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ring-chart-sample-1"></a>
+<h3 class="subsection">9.1.24 Ring chart sample</h3>
+<a name="index-Chart-4"></a>
+<a name="index-Axis-5"></a>
+<div class="float">
+<img src="../png/ring_chart.png" alt="../png/ring_chart">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData ch(7,2);
+ch.Modify(&quot;rnd+0.1&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;SetFunc(&quot;(y+2)/3*cos(pi*x)&quot;,&quot;(y+2)/3*sin(pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Chart(ch,&quot;bgr cmy#&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+2)/3*cos(pi*x)' '(y+2)/3*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,&quot;rnd+0.1&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_func(gr,&quot;(y+2)/3*cos(pi*x)&quot;,&quot;(y+2)/3*sin(pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_chart(gr,ch,&quot;bgr cmy#&quot;);
+mgl_delete_data(ch);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_func(gr,'(y+2)/3*cos(pi*x)','(y+2)/3*sin(pi*x)','');
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'bgr cmy#')
+call mgl_delete_data(ch)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ch = mglData(7,2);  ch.Modify(&quot;rnd+0.1&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.SetFunc(&quot;(y+2)/3*cos(pi*x)&quot;,&quot;(y+2)/3*sin(pi*x)&quot;);
+gr.Box();
+gr.Chart(ch,&quot;bgr cmy#&quot;);
+</pre><hr size="6">
+<a name="g_t2D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ring-chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-plotting-samples-1"></a>
+<h2 class="section">9.2 2D plotting samples</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf-sample">9.2.1 Surf sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transparent-surface-sample">9.2.2 Transparent surface sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surface-in-fog-sample">9.2.3 Surface in fog sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Sharp-colors-sample">9.2.4 Sharp colors sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mesh-sample">9.2.5 Mesh sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fall-sample">9.2.6 Fall sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Belt-sample">9.2.7 Belt sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tile-sample">9.2.8 Tile sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Boxs-sample">9.2.9 Boxs sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens-sample">9.2.10 Dens sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-sample">9.2.11 Cont sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF-sample">9.2.12 ContF sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContD-sample">9.2.13 ContD sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axial-sample">9.2.14 Axial sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grad-sample">9.2.15 Grad sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+</table>
+<hr size="6">
+<a name="Surf-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparent-surface-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-sample-1"></a>
+<h3 class="subsection">9.2.1 Surf sample</h3>
+<a name="index-Surf-6"></a>
+<div class="float">
+<img src="../png/surf.png" alt="../png/surf">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Surf(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Surf(a);
+</pre><hr size="6">
+<a name="Transparent-surface-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surface-in-fog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transparent-surface-sample-1"></a>
+<h3 class="subsection">9.2.2 Transparent surface sample</h3>
+<a name="index-Surf-7"></a>
+<a name="index-Alpha-2"></a>
+<div class="float">
+<img src="../png/surf_alpha.png" alt="../png/surf_alpha">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Surf(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surf a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Alpha(True);
+gr.Surf(a);
+</pre><hr size="6">
+<a name="Surface-in-fog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparent-surface-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Sharp-colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surface-in-fog-sample-1"></a>
+<h3 class="subsection">9.2.3 Surface in fog sample</h3>
+<a name="index-Surf-8"></a>
+<a name="index-Fog-2"></a>
+<div class="float">
+<img src="../png/surf_fog.png" alt="../png/surf_fog">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Fog(1);
+gr-&gt;Box();
+gr-&gt;Surf(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+fog 1
+box
+surf a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_fog(gr,1.,0.25);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_fog(gr,1.,0.25)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Fog(1);
+gr.Surf(a);
+</pre><hr size="6">
+<a name="Sharp-colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surface-in-fog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mesh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Sharp-colors-sample-1"></a>
+<h3 class="subsection">9.2.4 Sharp colors sample</h3>
+<a name="index-Surf-9"></a>
+<div class="float">
+<img src="../png/surf_sl.png" alt="../png/surf_sl">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Surf(a,&quot;BbcyrR|&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a 'BbcyrR|'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,&quot;BbcyrR|&quot;);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'BbcyrR|')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Surf(a,&quot;BbcyrR|&quot;);
+</pre><hr size="6">
+<a name="Mesh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Sharp-colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fall-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mesh-sample-1"></a>
+<h3 class="subsection">9.2.5 Mesh sample</h3>
+<a name="index-Mesh-3"></a>
+<div class="float">
+<img src="../png/mesh.png" alt="../png/mesh">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Mesh(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+mesh a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_mesh(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_mesh(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Mesh(a);
+</pre><hr size="6">
+<a name="Fall-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mesh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Belt-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fall-sample-1"></a>
+<h3 class="subsection">9.2.6 Fall sample</h3>
+<a name="index-Fall-3"></a>
+<div class="float">
+<img src="../png/fall.png" alt="../png/fall">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Fall(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+fall a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_fall(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_fall(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Fall(a);
+</pre><hr size="6">
+<a name="Belt-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fall-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tile-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Belt-sample-1"></a>
+<h3 class="subsection">9.2.7 Belt sample</h3>
+<a name="index-Belt-3"></a>
+<div class="float">
+<img src="../png/belt.png" alt="../png/belt">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Belt(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+belt a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_belt(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_belt(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Belt(a);
+</pre><hr size="6">
+<a name="Tile-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Belt-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Boxs-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tile-sample-1"></a>
+<h3 class="subsection">9.2.8 Tile sample</h3>
+<a name="index-Tile-3"></a>
+<div class="float">
+<img src="../png/tile.png" alt="../png/tile">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Tile(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+tile a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_tile(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_tile(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Tile(a);
+</pre><hr size="6">
+<a name="Boxs-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tile-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Boxs-sample-1"></a>
+<h3 class="subsection">9.2.9 Boxs sample</h3>
+<a name="index-Boxs-3"></a>
+<div class="float">
+<img src="../png/boxs.png" alt="../png/boxs">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);  gr-&gt;Light(true);
+gr-&gt;Org = mglPoint(0,0,0);
+gr-&gt;Box();
+gr-&gt;Boxs(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+origin 0 0 0
+box
+boxs a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_boxs(gr,a,0,0.);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_origin(gr,0.,0.,0.);
+call mgl_box(gr,1)
+call mgl_boxs(gr,a,'',0.)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);       gr.Light(True);
+gr.SetOrigin(0.,0.,0.); gr.Box();
+gr.Boxs(a);
+</pre><hr size="6">
+<a name="Dens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Boxs-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-sample-1"></a>
+<h3 class="subsection">9.2.10 Dens sample</h3>
+<a name="index-Dens-3"></a>
+<a name="index-Colorbar-6"></a>
+<div class="float">
+<img src="../png/dens.png" alt="../png/dens">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Dens(a);
+gr-&gt;Colorbar();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+dens a
+colorbar
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_dens(gr,a,0,0);
+mgl_colorbar(gr,&quot;&quot;,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_dens(gr,a,'',0)
+call mgl_colorbar(gr,'',0)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.Dens(a);
+gr.Colorbar();
+</pre><hr size="6">
+<a name="Cont-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-sample-1"></a>
+<h3 class="subsection">9.2.11 Cont sample</h3>
+<a name="index-Cont-5"></a>
+<div class="float">
+<img src="../png/cont.png" alt="../png/cont">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Cont(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+cont a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_cont(gr,a,0,7,NAN);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+real zero, nan
+! I don't know the NaN symbol in Fortran. So I produce it as zero/zero
+zero = 0; nan = zero/zero 
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_cont(gr,a,'',7,nan)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);
+gr.Box();
+gr.Cont(a);
+</pre><hr size="6">
+<a name="ContF-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContD-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF-sample-1"></a>
+<h3 class="subsection">9.2.12 ContF sample</h3>
+<a name="index-ContF-5"></a>
+<div class="float">
+<img src="../png/contf.png" alt="../png/contf">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);  gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;ContF(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+contf a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_contf(gr,a,0,7,NAN);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+real zero, nan
+! I don't know the NaN symbol in Fortran. So I produce it as zero/zero
+zero = 0; nan = zero/zero
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_contf(gr,a,'',7,nan)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.ContF(a);
+</pre><hr size="6">
+<a name="ContD-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axial-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContD-sample-1"></a>
+<h3 class="subsection">9.2.13 ContD sample</h3>
+<a name="index-ContD-5"></a>
+<div class="float">
+<img src="../png/contd.png" alt="../png/contd">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40), v(9);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+v.Fill(-1,1);
+gr-&gt;Box();
+gr-&gt;ContD(v,a);
+gr-&gt;Colorbar(v);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+var v 9 -1 1
+box
+contd v a
+colorbar v
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+HMDT v = mgl_create_data_size(9,1,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_fill(v,-1.,1.,'x');
+mgl_box(gr,1);
+mgl_contd_val(gr,v,a,0,0);
+mgl_colorbar_val(gr,v,NULL,0);
+mgl_delete_data(a);
+mgl_delete_data(v);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, v, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+v = mgl_create_data_size(9,1,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_fill(v,-1.,1.,'x');
+call mgl_box(gr,1)
+call mgl_contd_val(gr,v,a,'',0);
+call mgl_colorbar_val(gr,v,NULL,0);
+call mgl_delete_data(a)
+call mgl_delete_data(v)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, v = mglData(50,40), mglData(9);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+v.Fill(-1,1);
+gr.Box();
+gr.ContD(v,a);
+gr.Colorbar(v);
+</pre><hr size="6">
+<a name="Axial-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContD-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grad-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axial-sample-1"></a>
+<h3 class="subsection">9.2.14 Axial sample</h3>
+<a name="index-Axial-5"></a>
+<div class="float">
+<img src="../png/axial.png" alt="../png/axial">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Axial(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+axial a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_axial(gr,a,&quot;&quot;,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_axial(gr,a,'',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.Box();
+gr.Axial(a);
+</pre><hr size="6">
+<a name="Grad-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axial-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grad-sample-1"></a>
+<h3 class="subsection">9.2.15 Grad sample</h3>
+<a name="index-Grad-4"></a>
+<div class="float">
+<img src="../png/grad.png" alt="../png/grad">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();  gr-&gt;Alpha(true);    gr-&gt;Dens(a);
+gr-&gt;Grad(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box:alpha on:dens a
+grad a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_set_alpha(gr,1);
+mgl_dens(gr,a,0,0);
+mgl_grad(gr,a,0,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_dens(gr,a,'',0)
+call mgl_grad(gr,a,'',0)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();   gr.Alpha(1);    gr.Dens(a);
+gr.Colorbar();
+</pre><hr size="6">
+<a name="g_t3D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grad-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-plotting-samples-1"></a>
+<h2 class="section">9.3 3D plotting samples</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf3-sample">9.3.1 Surf3 sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cloud-sample">9.3.2 Cloud sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CloudP-sample">9.3.3 CloudP sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens3-sample">9.3.4 Dens3 sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont3-sample">9.3.5 Cont3 sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF3-sample">9.3.6 ContF3 sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-projection-sample">9.3.7 Cont projection sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens-projection-sample">9.3.8 Dens projection sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutMinMax-sample">9.3.9 CutMinMax sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutOff-sample">9.3.11 CutOff sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+<hr size="6">
+<a name="Surf3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cloud-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3-sample-1"></a>
+<h3 class="subsection">9.3.1 Surf3 sample</h3>
+<a name="index-Surf3-5"></a>
+<div class="float">
+<img src="../png/surf3.png" alt="../png/surf3">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Surf3(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+box
+surf3 a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf3(gr,a,0,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.Box();
+gr.Surf3(a);
+</pre><hr size="6">
+<a name="Cloud-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CloudP-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cloud-sample-1"></a>
+<h3 class="subsection">9.3.2 Cloud sample</h3>
+<a name="index-Cloud-2"></a>
+<div class="float">
+<img src="../png/cloud.png" alt="../png/cloud">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Cloud(a,&quot;wyrRk&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+box
+cloud a 'wyrRk'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_cloud(gr,a,&quot;wyrRk&quot;,1.);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_cloud(gr,a,'wyrRk',1.)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Alpha(True);
+gr.Box();
+gr.Cloud(a,&quot;wyrRk&quot;);
+</pre><hr size="6">
+<a name="CloudP-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cloud-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CloudP-sample-1"></a>
+<h3 class="subsection">9.3.3 CloudP sample</h3>
+<a name="index-CloudP-3"></a>
+<div class="float">
+<img src="../png/cloudp.png" alt="../png/cloudp">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;CloudP(a,&quot;wyrRk&quot;);
+</pre><p><strong>MGL code</strong>
+Not available.
+<strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_cloudp(gr,a,&quot;wyrRk&quot;,1.);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_cloudp(gr,a,'wyrRk',1.)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+Not available.
+</p><hr size="6">
+<a name="Dens3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CloudP-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens3-sample-1"></a>
+<h3 class="subsection">9.3.4 Dens3 sample</h3>
+<a name="index-Dens3-3"></a>
+<a name="index-Axis-6"></a>
+<div class="float">
+<img src="../png/densa.png" alt="../png/densa">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);  gr-&gt;Alpha(true);    gr-&gt;Org = mglPoint(0,0,0);
+gr-&gt;Box();
+gr-&gt;DensA(a);
+gr-&gt;Axis();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+origin 0 0 0
+box
+densa a
+axis
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_alpha(gr,1);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_dens3_all(gr,a,0);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_alpha(gr,1)
+call mgl_set_origin(gr,0.,0.,0.);
+call mgl_box(gr,1)
+call mgl_dens3_all(gr,a,'')
+call mgl_axis(gr,&quot;xyz&quot;)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);       gr.Alpha(True);
+gr.SetOrigin(0,0,0);    gr.Box();
+gr.Axis();
+gr.DensA(a);
+</pre><hr size="6">
+<a name="Cont3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont3-sample-1"></a>
+<h3 class="subsection">9.3.5 Cont3 sample</h3>
+<a name="index-Cont3-5"></a>
+<div class="float">
+<img src="../png/conta.png" alt="../png/conta">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;ContA(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+conta a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_cont_all(gr,a,0,7);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_cont_all(gr,a,'',7)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);
+gr.Box();
+gr.ContA(a);
+</pre><hr size="6">
+<a name="ContF3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-projection-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF3-sample-1"></a>
+<h3 class="subsection">9.3.6 ContF3 sample</h3>
+<a name="index-ContF3-5"></a>
+<div class="float">
+<img src="../png/contfa.png" alt="../png/contfa">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);  gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;ContFA(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+box
+contfa a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_contf_all(gr,a,0,7);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_contf_all(gr,a,'',7)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.ContFA(a);
+</pre><hr size="6">
+<a name="Cont-projection-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens-projection-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-projection-sample-1"></a>
+<h3 class="subsection">9.3.7 Cont projection sample</h3>
+<a name="index-ContX-3"></a>
+<a name="index-ContY-3"></a>
+<a name="index-ContZ-3"></a>
+<div class="float">
+<img src="../png/cont_xyz.png" alt="../png/cont_xyz">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;ContX(a.Sum(&quot;x&quot;),&quot;&quot;,-1);
+gr-&gt;ContY(a.Sum(&quot;y&quot;),&quot;&quot;,1);
+gr-&gt;ContZ(a.Sum(&quot;z&quot;),&quot;&quot;,-1);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+contx s '' -1
+sum s a 'y'
+conty s '' 1
+sum s a 'z'
+contz s '' -1
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40), s;
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+s=mgl_data_sum(a,&quot;x&quot;); mgl_cont_x(gr,s,0,-1.,7); mgl_delete_data(s);
+s=mgl_data_sum(a,&quot;y&quot;); mgl_cont_y(gr,s,0,1.,7); mgl_delete_data(s);
+s=mgl_data_sum(a,&quot;z&quot;); mgl_cont_z(gr,s,0,-1.,7); mgl_delete_data(s);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,s, mgl_create_data_size, mgl_data_sum
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+s=mgl_data_sum(a,'x')
+call mgl_cont_x(gr,s,'',-1.,7)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'y')
+call mgl_cont_y(gr,s,'',1.,7)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'z')
+call mgl_cont_z(gr,s,'',-1.,7)
+call mgl_delete_data(s)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);               gr.Box();
+gr.ContX(a.Sum(&quot;x&quot;),&quot;&quot;,-1);
+gr.ContY(a.Sum(&quot;y&quot;),&quot;&quot;,1);
+gr.ContZ(a.Sum(&quot;z&quot;),&quot;&quot;,-1);
+</pre><hr size="6">
+<a name="Dens-projection-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-projection-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutMinMax-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-projection-sample-1"></a>
+<h3 class="subsection">9.3.8 Dens projection sample</h3>
+<a name="index-DensX-2"></a>
+<a name="index-DensY-2"></a>
+<a name="index-DensZ-2"></a>
+<div class="float">
+<img src="../png/dens_xyz.png" alt="../png/dens_xyz">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;DensX(a.Sum(&quot;x&quot;),&quot;&quot;,-1);
+gr-&gt;DensY(a.Sum(&quot;y&quot;),&quot;&quot;,1);
+gr-&gt;DensZ(a.Sum(&quot;z&quot;),&quot;&quot;,-1);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+densx s '' -1
+sum s a 'y'
+densy s '' 1
+sum s a 'z'
+densz s '' -1
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a, s; a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+s=mgl_data_sum(a,&quot;x&quot;); mgl_dens_x(gr,s,0,-1.); mgl_delete_data(s);
+s=mgl_data_sum(a,&quot;y&quot;); mgl_dens_y(gr,s,0,1.); mgl_delete_data(s);
+s=mgl_data_sum(a,&quot;z&quot;); mgl_dens_z(gr,s,0,-1.); mgl_delete_data(s);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,s, mgl_create_data_size, mgl_data_sum
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+s=mgl_data_sum(a,'x')
+call mgl_dens_x(gr,s,'',-1.)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'y')
+call mgl_dens_y(gr,s,'',1.)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'z')
+call mgl_dens_z(gr,s,'',-1.)
+call mgl_delete_data(s)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);               gr.Box();
+gr.DensX(a.Sum(&quot;x&quot;),&quot;&quot;,-1);
+gr.DensY(a.Sum(&quot;y&quot;),&quot;&quot;,1);
+gr.DensZ(a.Sum(&quot;z&quot;),&quot;&quot;,-1);
+</pre><hr size="6">
+<a name="CutMinMax-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens-projection-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Isocaps-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutMinMax-sample-1"></a>
+<h3 class="subsection">9.3.9 CutMinMax sample</h3>
+<a name="index-Surf3-6"></a>
+<a name="index-CutMin"></a>
+<a name="index-CutMax"></a>
+<div class="float">
+<img src="../png/cutminmax.png" alt="../png/cutminmax">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;CutMin = mglPoint(0,-1,-1); gr-&gt;CutMax = mglPoint(1,0,1);
+gr-&gt;Box();
+gr-&gt;Surf3(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut 0 -1 -1 1 0 1
+box
+surf3 a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.);
+mgl_box(gr,1);
+mgl_surf3(gr,a,0,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.);
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.SetCutBox(0,-1,-1,1,0,1);    gr.Box();
+gr.Surf3(a);
+</pre><hr size="6">
+<a name="Isocaps-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutMinMax-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutOff-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Isocaps_0027_0027-sample"></a>
+<h3 class="subsection">9.3.10 &ldquo;Isocaps&rdquo; sample</h3>
+<a name="index-Surf3-7"></a>
+<a name="index-ContF3-6"></a>
+<a name="index-CutMin-1"></a>
+<a name="index-CutMax-1"></a>
+<div class="float">
+<img src="../png/cutminmax2.png" alt="../png/cutminmax2">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(61,51,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;CutMin = mglPoint(0,-1,-1); gr-&gt;CutMax = mglPoint(1,0,1.1);
+gr-&gt;Box();
+gr-&gt;Surf3(-1,a);
+gr-&gt;ContF3(a,'x',-1); gr-&gt;ContF3(a,'y',-1);
+gr-&gt;ContF3(a,'z', 0); gr-&gt;ContF3(a,'z',39);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 61 51 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+cut 0 -1 -1 1 0 1.1
+box
+surf3 a -1
+contf3 a 'x' -1
+contf3 a 'y' -1
+contf3 a 'z' 0
+contf3 a 'z' 39
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(61,51,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.1);
+mgl_box(gr,1);
+mgl_surf3_val(gr,-1.,a,0);
+mgl_contf3(gr,a,'x',-1, &quot;&quot;, 7);
+mgl_contf3(gr,a,'y',-1, &quot;&quot;, 7);
+mgl_contf3(gr,a,'z', 0, &quot;&quot;, 7);
+mgl_contf3(gr,a,'z',39, &quot;&quot;, 7);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">a = mgl_create_data_size(61,51,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.1);
+call mgl_box(gr,1)
+call mgl_surf3_val(gr,-1.,a,'')
+call mgl_contf3(gr,a,'x',-1, '', 7);
+call mgl_contf3(gr,a,'y',-1, '', 7);
+call mgl_contf3(gr,a,'z', 0, '', 7);
+call mgl_contf3(gr,a,'z',39, '', 7);
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(61,51,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.SetCutBox(0,-1,-1,1,0,1.1);    gr.Box();
+gr.Surf3(-1,a);
+gr.ContF3(a,&quot;x&quot;,-1);    gr.ContF3(a,&quot;y&quot;,-1);
+gr.ContF3(a,&quot;z&quot;,0);     gr.ContF3(a,&quot;z&quot;,39);
+</pre><hr size="6">
+<a name="CutOff-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Isocaps-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutOff-sample-1"></a>
+<h3 class="subsection">9.3.11 CutOff sample</h3>
+<a name="index-Surf3-8"></a>
+<a name="index-CutOff-2"></a>
+<div class="float">
+<img src="../png/surf3_cutoff.png" alt="../png/surf3_cutoff">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;CutOff(&quot;(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)&quot;);
+gr-&gt;Box();
+gr-&gt;Surf3(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut '(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)'
+box
+surf3 a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_set_cutoff(gr,&quot;(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)&quot;);
+mgl_box(gr,1);
+mgl_surf3(gr,a,0,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,'-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)',0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_set_cutoff(gr,'(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)')
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(61,51,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.CutOff(&quot;(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)&quot;);
+gr.Box();
+gr.Surf3(a);
+</pre><hr size="6">
+<a name="Dual-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutOff-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfC-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dual-plotting-samples-1"></a>
+<h2 class="section">9.4 Dual plotting samples</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#SurfC-sample">9.4.1 SurfC sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#SurfA-sample">9.4.2 SurfA sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TileS-sample">9.4.3 TileS sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Map-sample">9.4.4 Map sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Traj-sample">9.4.5 Traj sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect-sample">9.4.6 Vect sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectL-sample">9.4.7 VectL sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectC-sample">9.4.8 VectC sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-sample">9.4.9 Flow sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe-sample">9.4.10 Pipe sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dew-sample">9.4.11 Dew sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3C-sample">9.4.12 Surf3C sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3A-sample">9.4.13 Surf3A sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect-3D-sample">9.4.14 Vect 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectL-3D-sample">9.4.15 VectL 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectC-3D-sample">9.4.16 VectC 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-3D-sample">9.4.17 Flow 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe-3D-sample">9.4.18 Pipe 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Crust-sample">9.4.19 Crust sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dots-sample">9.4.20 Dots sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+</table>
+<hr size="6">
+<a name="SurfC-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfA-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfC-sample-1"></a>
+<h3 class="subsection">9.4.1 SurfC sample</h3>
+<a name="index-SurfC-3"></a>
+<div class="float">
+<img src="../png/surfc.png" alt="../png/surfc">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40), b(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;SurfC(a,b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surfc a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+HMDT b = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surfc(gr,a,b,0);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surfc(gr,a,b,'')
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(50,40), mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.SurfC(a,b);
+</pre><hr size="6">
+<a name="SurfA-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfC-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TileS-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfA-sample-1"></a>
+<h3 class="subsection">9.4.2 SurfA sample</h3>
+<a name="index-SurfA-3"></a>
+<div class="float">
+<img src="../png/surfa.png" alt="../png/surfa">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40), b(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;SurfA(a,b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surfa a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a, b;
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surfa(gr,a,b,0);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1);
+call mgl_box(gr,1)
+call mgl_surfa(gr,a,b,'')
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(50,40), mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.Box();
+gr.SurfC(a,b);
+</pre><hr size="6">
+<a name="TileS-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfA-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Map-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TileS-sample-1"></a>
+<h3 class="subsection">9.4.3 TileS sample</h3>
+<a name="index-TileS-3"></a>
+<div class="float">
+<img src="../png/tiles.png" alt="../png/tiles">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40), b(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;TileS(a,b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+tile a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a, b;
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_tiles(gr,a,b,0);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_tiles(gr,a,b,'')
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(50,40), mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.TileS(a,b);
+</pre><hr size="6">
+<a name="Map-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TileS-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Traj-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Map-sample-1"></a>
+<h3 class="subsection">9.4.4 Map sample</h3>
+<a name="index-Map-3"></a>
+<div class="float">
+<img src="../png/map.png" alt="../png/map">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50, 40), b(50, 40);
+gr-&gt;Puts(mglPoint(0, 0), &quot;\\to&quot;, &quot;&quot;, -1.4);
+gr-&gt;Axis(mglPoint(-1,-1,-2),mglPoint(1,1,2));
+gr-&gt;SubPlot(2, 1, 0);
+a.Fill(&quot;x&quot;, gr-&gt;Min, gr-&gt;Max);	b.Fill(&quot;y&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Puts(mglPoint(0, 1.1), &quot;\\{x, y\\}&quot;, &quot;C&quot;, -2);		gr-&gt;Box();
+gr-&gt;Map(a, b, &quot;brgk&quot;, 0, false);
+gr-&gt;SubPlot(2, 1, 1);
+a.Fill(&quot;(x^3+y^3)/2&quot;, gr-&gt;Min, gr-&gt;Max);
+b.Fill(&quot;(x-y)/2&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Puts(mglPoint(0, 1.1), &quot;\\{\\frac{x^3+y^3}{2}, \\frac{x-y}{2}\\}&quot;, &quot;C&quot;, -2);
+gr-&gt;Box();
+gr-&gt;Map(a, b, &quot;brgk&quot;, 0, false);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+text 0 0 '\to'
+zrange -2 2
+subplot 2 1 0
+text 0 1.1 '\{x, y\}' '' -2
+box
+fill a 'x'
+fill b 'y'
+map a b 'brgk' 0 0
+subplot 2 1 1
+text 0 1.1 '\{\frac{x^3+y^3}{2}, \frac{x-y}{2}\}' '' -2
+box
+fill a '(x^3+y^3)/2'
+fill b '(x-y)/2'
+map a b 'brgk' 0 0
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+HMDT b = mgl_create_data_size(50,40,1);
+mgl_puts_ext(gr, 0.,0.,0., &quot;\\to&quot;, &quot;&quot;, -1.4, 't');
+mgl_set_axis_3d(gr,-1.,-1.,-2.,1.,1.,2.);
+mgl_subplot(gr, 2, 1, 0);
+mgl_data_fill_eq(gr, a, &quot;x&quot;, 0, 0);
+mgl_data_fill_eq(gr, b, &quot;y&quot;, 0, 0);
+mgl_puts_ext(gr, 0.,1.1,0., &quot;\\{x, y\\}&quot;, &quot;C&quot;, -2., 't');
+mgl_box(gr,1);
+mgl_map(gr, a, b, &quot;brgk&quot;, 0, 0);
+mgl_subplot(gr, 2, 1, 1);
+mgl_data_fill_eq(gr, a, &quot;(x^3+y^3)/2&quot;, 0, 0);
+mgl_data_fill_eq(gr, b, &quot;(x-y)/2&quot;, 0, 0);
+mgl_puts_ext(gr, 0.,1.1,0., &quot;\\{\\frac{x^3+y^3}{2}, \\frac{x-y}{2}\\}&quot;, &quot;C&quot;, -2., 't');
+mgl_box(gr,1);
+mgl_map(gr, a, b, &quot;brgk&quot;, 0, 0);
+mgl_box(gr,1);
+mgl_map(gr,a,b,0,0,1);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_puts_ext(gr, 0.,0.,0., '\to', '', -1.4, 't');
+call mgl_set_axis_3d(gr,-1.,-1.,-2.,1.,1.,2.);
+call mgl_subplot(gr, 2, 1, 0);
+call mgl_data_fill_eq(gr, a, 'x', 0, 0);
+call mgl_data_fill_eq(gr, b, 'y', 0, 0);
+call mgl_puts_ext(gr, 0.,1.1,0., '\{x, y\}', 'C', -2., 't');
+call mgl_box(gr,1);
+call mgl_map(gr, a, b, 'brgk', 0, 0);
+call mgl_subplot(gr, 2, 1, 1);
+call mgl_data_fill_eq(gr, a, '(x^3+y^3)/2', 0, 0);
+call mgl_data_fill_eq(gr, b, '(x-y)/2', 0, 0);
+call mgl_puts_ext(gr, 0.,1.1,0., '\{\frac{x^3+y^3}{2}, \frac{x-y}{2}\}', 'C', -2., 't');
+call mgl_box(gr,1);
+call mgl_map(gr, a, b, 'brgk', 0, 0);
+call mgl_box(gr,1);
+call mgl_map(gr,a,b,0,0,1);
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(50,40), mglData(50,40);
+gr.Puts(0, 0, 0, &quot;\\to&quot;, &quot;&quot;, -1.4);
+gr.SetRanges(-1,1,-1,1,-2,2);
+gr.SubPlot(2, 1, 0);
+gr.Fill(a, &quot;x&quot;);    gr.Fill(b, &quot;y&quot;);
+gr.Puts(0, 1.1, 0, &quot;\\{x, y\\}&quot;, &quot;C&quot;, -2);
+gr.Box();
+gr.Map(a, b, &quot;brgk&quot;, 0, 0);
+gr.SubPlot(2, 1, 1);
+gr.Fill(a, &quot;(x^3+y^3)/2&quot;);   gr.Fill(b, &quot;(x-y)/2&quot;);
+gr.Puts(0, 1.1, 0, &quot;\\{\\frac{x^3+y^3}{2}, \\frac{x-y}{2}\\}&quot;, &quot;C&quot;, -2);
+gr.Box();
+gr.Map(a, b, &quot;brgk&quot;, 0, 0);
+</pre><hr size="6">
+<a name="Traj-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Map-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Traj-sample-1"></a>
+<h3 class="subsection">9.4.5 Traj sample</h3>
+<a name="index-Traj-3"></a>
+<div class="float">
+<img src="../png/traj.png" alt="../png/traj">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3), x(50), y1(50), y2(50);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+y2.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+x.Fill(-1,1,'x');
+gr-&gt;Box();
+gr-&gt;Plot(x,y);
+gr-&gt;Traj(x,y,y1,y2);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+new x 50
+new y1 50
+new y2 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+fill x -1 1
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+box
+plot x y
+traj x y y1 y2
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+HMDT x= mgl_create_data_size(50,1,1);
+HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_data_modify(x,&quot;2*x-1&quot;,0);
+mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_plot_xy(gr,x,y,NULL);
+mgl_traj_xy(gr,yx,y,y1,y2,NULL,0,0);
+mgl_delete_data(y);  mgl_delete_data(y1);
+mgl_delete_data(x);  mgl_delete_data(y2);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer x,y,y1,y2, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+x= mgl_create_data_size(50,1,1);
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_data_modify(x,'2*x-1',0);
+call mgl_data_modify(y1,'0.5+0.3*cos(2*pi*x)',0);
+call mgl_data_modify(y2,'0.3*sin(2*pi*x)',0);
+call mgl_box(gr,1)
+call mgl_plot_xy(gr,x,y,NULL);
+call mgl_traj_xy(gr,yx,y,y1,y2,NULL,0,0);
+call mgl_delete_data(y)
+call mgl_delete_data(x)
+call mgl_delete_data(y1)
+call mgl_delete_data(y2)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">x,y,y1,y2 = mglData(50), mglData(50,3), mglData(50), mglData(50);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+y2.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+x.Fill(-1,1,'x');
+gr.Box();
+gr.Plot(x,y);
+gr.Traj(x,y,y1,y2);
+</pre><hr size="6">
+<a name="Vect-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Traj-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectL-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-sample-1"></a>
+<h3 class="subsection">9.4.6 Vect sample</h3>
+<a name="index-Vect-5"></a>
+<div class="float">
+<img src="../png/vect.png" alt="../png/vect">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Vect(a,b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vect a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_vect_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_vect_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.Vect(a,b);
+</pre><hr size="6">
+<a name="VectL-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectC-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectL-sample-1"></a>
+<h3 class="subsection">9.4.7 VectL sample</h3>
+<a name="index-VectL-5"></a>
+<div class="float">
+<img src="../png/vectl.png" alt="../png/vectl">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;VectL(a,b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectl a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a, b;
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_vectl_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_vectl_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.VectL(a,b);
+</pre><hr size="6">
+<a name="VectC-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectL-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectC-sample-1"></a>
+<h3 class="subsection">9.4.8 VectC sample</h3>
+<a name="index-VectC-5"></a>
+<div class="float">
+<img src="../png/vectc.png" alt="../png/vectc">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;VectC(a,b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectc a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a, b;
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_vectc_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_vectc_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.VectC(a,b);
+</pre><hr size="6">
+<a name="Flow-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectC-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-sample-1"></a>
+<h3 class="subsection">9.4.9 Flow sample</h3>
+<a name="index-Flow-5"></a>
+<div class="float">
+<img src="../png/flow.png" alt="../png/flow">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Flow(a,b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+flow a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_flow_2d(gr,a,b,0,5,1,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_flow_2d(gr,a,b,'',5,1,0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.Flow(a,b);
+</pre><hr size="6">
+<a name="Pipe-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dew-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-sample-1"></a>
+<h3 class="subsection">9.4.10 Pipe sample</h3>
+<a name="index-Pipe-5"></a>
+<div class="float">
+<img src="../png/pipe.png" alt="../png/pipe">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Pipe(a,b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+box
+pipe a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_pipe_2d(gr,a,b,0,0.05,5,1,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_pipe_2d(gr,a,b,'',0.05,5,1,0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Light(True);    gr.Box();
+gr.Pipe(a,b);
+</pre><hr size="6">
+<a name="Dew-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3C-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dew-sample-1"></a>
+<h3 class="subsection">9.4.11 Dew sample</h3>
+<a name="index-Dew-3"></a>
+<div class="float">
+<img src="../png/dew.png" alt="../png/dew">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Light(true);
+gr-&gt;Dew(a,b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+light on
+dew a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_set_light(gr,1);
+mgl_dew_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_set_light(gr,1);
+call mgl_dew_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Light(True);    gr.Box();
+gr.Dew(a,b);
+</pre><hr size="6">
+<a name="Surf3C-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dew-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3A-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3C-sample-1"></a>
+<h3 class="subsection">9.4.12 Surf3C sample</h3>
+<a name="index-Surf3C-5"></a>
+<div class="float">
+<img src="../png/surf3c.png" alt="../png/surf3c">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40), b(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+b.Modify(&quot;1-2*tanh(4*(x+y-1)^2)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Surf3C(a, b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3c a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+HMDT b = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_data_modify(b,&quot;1-2*tanh(4*(x+y-1)^2)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf3c(gr,a,b,0,3);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+b = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_data_modify(b,&quot;1-2*tanh(4*(x+y-1)^2)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf3c(gr,a,b,'',3)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(60,50,40), mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2+(2*y-1)^2+(2*z-1)^4-(2*z-1)^2-0.1)&quot;);
+b.Modify(&quot;1-2*tanh(4*(x+y-1)^2)&quot;);
+gr.Rotate(40,60);   gr.Light(True);     gr.Alpha(True);
+gr.Box();
+gr.Surf3C(a,b);
+</pre><hr size="6">
+<a name="Surf3A-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3C-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3A-sample-1"></a>
+<h3 class="subsection">9.4.13 Surf3A sample</h3>
+<a name="index-Surf3A-5"></a>
+<div class="float">
+<img src="../png/surf3a.png" alt="../png/surf3a">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40), b(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+b.Modify(&quot;1-2*tanh(4*(x+y-1)^2)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Surf3A(a, b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3a a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a, b; a = mgl_create_data_size(60,50,40);
+b = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_data_modify(b,&quot;1-2*tanh(4*(x+y-1)^2)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf3a(gr,a,b,0,3);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+b = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_data_modify(b,&quot;1-2*tanh(4*(x+y-1)^2)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf3a(gr,a,b,'',3)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(60,50,40), mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2+(2*y-1)^2+(2*z-1)^4-(2*z-1)^2-0.1)&quot;);
+b.Modify(&quot;1-2*tanh(4*(x+y-1)^2)&quot;);
+gr.Rotate(40,60);   gr.Light(True);     gr.Alpha(True);
+gr.Box();
+gr.Surf3A(a,b);
+</pre><hr size="6">
+<a name="Vect-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3A-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectL-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-3D-sample-1"></a>
+<h3 class="subsection">9.4.14 Vect 3D sample</h3>
+<a name="index-Vect-6"></a>
+<div class="float">
+<img src="../png/vect3.png" alt="../png/vect3">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Vect(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vect ex ey ez 'bwr'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_vect_3d(gr,ex,ey,ez,&quot;bwr&quot;);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_vect_3d(gr,ex,ey,ez,'bwr')
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.Vect(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="VectL-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectC-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectL-3D-sample-1"></a>
+<h3 class="subsection">9.4.15 VectL 3D sample</h3>
+<a name="index-VectL-6"></a>
+<div class="float">
+<img src="../png/vectl3.png" alt="../png/vectl3">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;VectL(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectl ex ey ez 'bwr'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_vectl_3d(gr,ex,ey,ez,&quot;bwr&quot;);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_vectl_3d(gr,ex,ey,ez,'bwr')
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.VectL(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="VectC-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectL-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectC-3D-sample-1"></a>
+<h3 class="subsection">9.4.16 VectC 3D sample</h3>
+<a name="index-VectC-6"></a>
+<div class="float">
+<img src="../png/vectc3.png" alt="../png/vectc3">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;VectC(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectc ex ey ez 'bwr'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_vectc_3d(gr,ex,ey,ez,&quot;bwr&quot;);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_vectc_3d(gr,ex,ey,ez,'bwr')
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.VectC(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="Flow-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectC-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-3D-sample-1"></a>
+<h3 class="subsection">9.4.17 Flow 3D sample</h3>
+<a name="index-Flow-6"></a>
+<div class="float">
+<img src="../png/flow3.png" alt="../png/flow3">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData ex(30,30,30), ey(30,30,30), ez(30,30,30);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Flow(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new ex 30 30 30
+new ey 30 30 30
+new ez 30 30 30
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+flow ex ey ez 'bwr'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(30,30,30);
+ey = mgl_create_data_size(30,30,30);
+ez = mgl_create_data_size(30,30,30);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_flow_3d(gr,ex,ey,ez,&quot;bwr&quot;,3,1);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(30,30,30)
+ey = mgl_create_data_size(30,30,30)
+ez = mgl_create_data_size(30,30,30)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_flow_3d(gr,ex,ey,ez,'bwr',3,1)
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.Flow(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="Pipe-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Crust-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-3D-sample-1"></a>
+<h3 class="subsection">9.4.18 Pipe 3D sample</h3>
+<a name="index-Pipe-6"></a>
+<div class="float">
+<img src="../png/pipe3.png" alt="../png/pipe3">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Pipe(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+light on
+box
+pipe ex ey ez 'bwr'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_pipe_3d(gr,ex,ey,ez,&quot;bwr&quot;,0.05,3,1);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1);
+call mgl_box(gr,1);
+call mgl_pipe_3d(gr,ex,ey,ez,'bwr',0.05,3,1)
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Pipe(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="Crust-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dots-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Crust-sample-1"></a>
+<h3 class="subsection">9.4.19 Crust sample</h3>
+<a name="index-Crust-3"></a>
+<div class="float">
+<img src="../png/crust.png" alt="../png/crust">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(&quot;hotdogs.pts&quot;);
+a.Norm(-1,1,true);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Crust(a,&quot;p&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+light on
+box
+crust a 'p'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_file(&quot;hotdogs.pts&quot;);
+mgl_data_norm(a,-1.,1.,1,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_crust_tr(gr,a,&quot;p&quot;,0.);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_file
+a = mgl_create_data_file(&quot;hotdogs.pts&quot;)
+call mgl_data_norm(a,-1.,1.,1,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_crust_tr(gr,a,&quot;p&quot;,0.)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(&quot;hotdogs.pts&quot;);
+a.Norm(-1,1,True);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Crust(a);
+</pre><hr size="6">
+<a name="Dots-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Crust-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dots-sample-1"></a>
+<h3 class="subsection">9.4.20 Dots sample</h3>
+<a name="index-Dots-4"></a>
+<div class="float">
+<img src="../png/dots.png" alt="../png/dots">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(&quot;hotdogs.pts&quot;);
+a.Norm(-1,1,true);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Dots(a,&quot;p&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+box
+dots a 'p'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_file(&quot;hotdogs.pts&quot;);
+mgl_data_norm(a,-1.,1.,1,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_dots_tr(gr,a,&quot;p&quot;);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_file
+a = mgl_create_data_file(&quot;hotdogs.pts&quot;)
+call mgl_data_norm(a,-1.,1.,1,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_dots_tr(gr,a,&quot;p&quot;)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(&quot;hotdogs.pts&quot;);
+a.Norm(-1,1,True);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Dots(a);
+</pre>
+<hr size="6">
+<a name="Basic-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dots-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Basic-features-1"></a>
+<h2 class="section">9.5 Basic features</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t1D-plot-sample">9.5.1 1D plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plot-sample">9.5.2 2D plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plot-sample">9.5.3 3D plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Line-styles-sample">9.5.4 Line styles sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Arrow-styles-sample">9.5.5 Arrow styles sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-styles-sample">9.5.6 Text styles sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TeX-parsing-sample">9.5.7 TeX parsing sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-faces-sample">9.5.8 Font faces sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Colors-sample">9.5.9 Colors sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Color-schemes-sample">9.5.10 Color schemes sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Normal-transparency">9.5.11 Normal transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Glass_002dlike-transparency">9.5.12 Glass-like transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lamp_002dlike-transparency">9.5.13 Lamp-like transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+</table>
+<hr size="6">
+<a name="g_t1D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Basic-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-plot-sample-1"></a>
+<h3 class="subsection">9.5.1 1D plot sample</h3>
+<a name="index-Plot-8"></a>
+<a name="index-Bars-8"></a>
+<a name="index-SubPlot-3"></a>
+<div class="float">
+<img src="../png/sample8.png" alt="../png/sample8">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y0(50);		y0.Modify(&quot;sin(pi*(2*x-1))&quot;);
+gr-&gt;SubPlot(2,2,0);
+gr-&gt;Plot(y0);		gr-&gt;Box();
+
+gr-&gt;SubPlot(2,2,1);
+mglData y1(50,2);
+y1.Modify(&quot;sin(pi*2*x-pi)&quot;);	y1.Modify(&quot;cos(pi*2*x-pi)/2&quot;,1);
+gr-&gt;Plot(y1);		gr-&gt;Box();
+
+mglData x(50);		x.Modify(&quot;cos(pi*2*x-pi)&quot;);
+gr-&gt;Plot(x,y0,&quot;Y+&quot;);
+
+gr-&gt;Plot(y1.SubData(-1,0),y1.SubData(-1,1),&quot;q|&quot;);
+
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(60,40);
+mglData z(50);		z.Modify(&quot;2*x-1&quot;);
+gr-&gt;Plot(x,y0,z);		gr-&gt;Box();
+
+mglData y2(10,3);	y2.Modify(&quot;cos(pi*(2*x-1-y))&quot;);
+y2.Modify(&quot;2*x-1&quot;,2);
+gr-&gt;Plot(y2.SubData(-1,0),y2.SubData(-1,1),y2.SubData(-1,2),&quot;bo &quot;);
+
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(60,40);
+gr-&gt;Bars(x,y0,z,&quot;ri&quot;);		gr-&gt;Box();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y0 50: modify y0 'sin(pi*(2*x-1))'
+subplot 2 2 0
+plot y0: box
+
+subplot 2 2 1
+new y1 50 2
+modify y1 'sin(pi*2*x-pi)'
+modify y1 'cos(pi*2*x-pi)/2' 1
+plot y1: box
+
+new x 50: modify x 'cos(pi*2*x-pi)'
+plot x y0 'Y+'
+plot y1(:,0) y(:,1) 'q|'
+
+subplot 2 2 2:rotate 60 40
+new z 50:   modify z '2*x-1'
+plot x y0 z 'g':box
+new y2 10 3
+modify y2 'cos(pi*(2*x-1-y))'
+modify y2 '2*x-1' 2
+plot y2(:,0) y2(:,1) y2(:,2) 'bo '
+
+subplot 2 2 3:rotate 60 40
+bars x y0 z 'r':box
+</pre><hr size="6">
+<a name="g_t2D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-plot-sample-1"></a>
+<h3 class="subsection">9.5.2 2D plot sample</h3>
+<a name="index-Surf-10"></a>
+<a name="index-Dens-4"></a>
+<a name="index-Alpha-3"></a>
+<div class="float">
+<img src="../png/sample9.png" alt="../png/sample9">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Light(true);
+mglData a0(50,40);
+a0.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(60,40);
+gr-&gt;Surf(a0);       gr-&gt;Box();
+
+mglData x(50,40),y(50,40),z(50,40);
+x.Modify(&quot;0.8*sin(2*pi*x)*sin(pi*y)&quot;);
+y.Modify(&quot;0.8*cos(2*pi*x)*sin(pi*y)&quot;);
+z.Modify(&quot;0.8*cos(pi*y)&quot;);
+gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(60,40);
+gr-&gt;Surf(x,y,z,&quot;BbwrR&quot;);    gr-&gt;Box();
+
+mglData a1(50,40,3);
+a1.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+a1.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*sin(3*pi*(x*y))&quot;,1);
+a1.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,2);
+gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(60,40);
+gr-&gt;Alpha(true);
+gr-&gt;Surf(a1);       gr-&gt;Box();
+
+gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(60,40);
+gr-&gt;Dens(a1);       gr-&gt;Box();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">light on
+
+new a0 50 40
+modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+subplot 2 2 0:rotate 60 40
+surf a0: box
+
+new x 50 40: new y 50 40: new z 50 40
+modify x '0.8*sin(2*pi*x)*sin(pi*y)'
+modify y '0.8*cos(2*pi*x)*sin(pi*y)'
+modify z '0.8*cos(pi*y)'
+subplot 2 2 1:rotate 60 40
+surf x y z 'bbwrr': box
+
+new a1 50 40 3
+modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
+subplot 2 2 2:rotate 60 40
+alpha on
+surf a1: box
+
+subplot 2 2 3: rotate 60 40
+dens a1: box
+</pre><hr size="6">
+<a name="g_t3D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Line-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-plot-sample-1"></a>
+<h3 class="subsection">9.5.3 3D plot sample</h3>
+<a name="index-Surf-11"></a>
+<a name="index-Dens-5"></a>
+<a name="index-Alpha-4"></a>
+<div class="float">
+<img src="../png/sampleb.png" alt="../png/sampleb">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true);	gr-&gt;Light(true);	gr-&gt;Light(0,mglPoint(0,0,1));
+mglData a(30,30,30), b(30,30,30);
+a.Modify(&quot;exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))&quot;);
+b.Modify(&quot;16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)&quot;);
+gr-&gt;CAxis(0,1);
+
+gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);
+gr-&gt;Surf3(a,&quot;wgk&quot;);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);
+gr-&gt;DensA(a);		gr-&gt;Box();	gr-&gt;Axis();
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);
+gr-&gt;Cloud(a);		gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);
+gr-&gt;Surf3A(b,a,&quot;q&quot;);		gr-&gt;Box();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">alpha on: light on
+light 0 0 0 1
+new a 30 30 30: new b 30 30 30
+modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
+modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
+caxis 0 1
+
+subplot 2 2 0: rotate 40 60
+surf3 a 'wgk': box
+subplot 2 2 1: rotate 40 60
+densa a: box: axis
+subplot 2 2 2: rotate 40 60
+cloud a: box
+subplot 2 2 3: rotate 40 60
+surf3a b a 'q': box
+</pre><hr size="6">
+<a name="Line-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Arrow-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Line-styles-sample-1"></a>
+<h3 class="subsection">9.5.4 Line styles sample</h3>
+<a name="index-Mark-8"></a>
+<a name="index-Line-3"></a>
+<div class="float">
+<img src="../png/sample5.png" alt="../png/sample5">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">float d,x1,x2,x0,y=0.95;
+d=0.3, x0=0.2, x1=0.5, x2=0.6;
+gr-&gt;Line(mglPoint(x0,1-0*d),mglPoint(x1,1-0*d),&quot;k-&quot;);	gr-&gt;Puts(mglPoint(x2,y-0*d),&quot;Solid '-'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-1*d),mglPoint(x1,1-1*d),&quot;k|&quot;);	gr-&gt;Puts(mglPoint(x2,y-1*d),&quot;Long Dash '|'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-2*d),mglPoint(x1,1-2*d),&quot;k;&quot;);	gr-&gt;Puts(mglPoint(x2,y-2*d),&quot;Dash ';'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-3*d),mglPoint(x1,1-3*d),&quot;k=&quot;);	gr-&gt;Puts(mglPoint(x2,y-3*d),&quot;Small dash '='&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-4*d),mglPoint(x1,1-4*d),&quot;kj&quot;);	gr-&gt;Puts(mglPoint(x2,y-4*d),&quot;Dash-dot 'j'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-5*d),mglPoint(x1,1-5*d),&quot;ki&quot;);	gr-&gt;Puts(mglPoint(x2,y-5*d),&quot;Small dash-dot 'i'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-6*d),mglPoint(x1,1-6*d),&quot;k:&quot;);	gr-&gt;Puts(mglPoint(x2,y-6*d),&quot;Dots ':'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-7*d),mglPoint(x1,1-7*d),&quot;k &quot;);	gr-&gt;Puts(mglPoint(x2,y-7*d),&quot;None ' '&quot;,&quot;rL&quot;);
+
+d=0.25; x1=-1; x0=-0.8;	y = -0.05;
+gr-&gt;Mark(mglPoint(x1,5*d),'.');		gr-&gt;Puts(mglPoint(x0,y+5*d),&quot;'.'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,4*d),'+');		gr-&gt;Puts(mglPoint(x0,y+4*d),&quot;'+'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,3*d),'x');		gr-&gt;Puts(mglPoint(x0,y+3*d),&quot;'x'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,2*d),'*');		gr-&gt;Puts(mglPoint(x0,y+2*d),&quot;'*'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,d),'s');		gr-&gt;Puts(mglPoint(x0,y+d),&quot;'s'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,0),'d');		gr-&gt;Puts(mglPoint(x0,y),&quot;'d'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-d,0),'o');	gr-&gt;Puts(mglPoint(x0,y-d),&quot;'o'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-2*d,0),'^');	gr-&gt;Puts(mglPoint(x0,y-2*d),&quot;'\\^'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-3*d,0),'v');	gr-&gt;Puts(mglPoint(x0,y-3*d),&quot;'v'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-4*d,0),'&lt;');	gr-&gt;Puts(mglPoint(x0,y-4*d),&quot;'&lt;'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-5*d,0),'&gt;');	gr-&gt;Puts(mglPoint(x0,y-5*d),&quot;'&gt;'&quot;,&quot;rL&quot;);
+
+d=0.25; x1=-0.5; x0=-0.3;	y = -0.05;
+gr-&gt;Mark(mglPoint(x1,5*d),'C');		gr-&gt;Puts(mglPoint(x0,y+5*d),&quot;'\\#.'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,4*d),'P');		gr-&gt;Puts(mglPoint(x0,y+4*d),&quot;'\\#+'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,3*d),'X');		gr-&gt;Puts(mglPoint(x0,y+3*d),&quot;'\\#x'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,2*d),'Y');		gr-&gt;Puts(mglPoint(x0,y+2*d),&quot;'\\#*'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,d),'S');		gr-&gt;Puts(mglPoint(x0,y+d),&quot;'\\#s'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,0),'D');		gr-&gt;Puts(mglPoint(x0,y),&quot;'\\#d'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-d,0),'O');	gr-&gt;Puts(mglPoint(x0,y-d),&quot;'\\#o'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-2*d,0),'T');	gr-&gt;Puts(mglPoint(x0,y-2*d),&quot;'\\#\\^'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-3*d,0),'V');	gr-&gt;Puts(mglPoint(x0,y-3*d),&quot;'\\#v'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-4*d,0),'L');	gr-&gt;Puts(mglPoint(x0,y-4*d),&quot;'\\#&lt;'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-5*d,0),'R');	gr-&gt;Puts(mglPoint(x0,y-5*d),&quot;'\\#&gt;'&quot;,&quot;rL&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Arrow-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Line-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Arrow-styles-sample-1"></a>
+<h3 class="subsection">9.5.5 Arrow styles sample</h3>
+<a name="index-Line-4"></a>
+<div class="float">
+<img src="../png/sampled.png" alt="../png/sampled">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">float a=0.1,b=0.4,c=0.5;
+gr-&gt;Line(mglPoint(a,1),mglPoint(b,1),&quot;k-A&quot;);		gr-&gt;Puts(mglPoint(c,1),&quot;Style 'A' or 'A\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.8),mglPoint(b,0.8),&quot;k-V&quot;);	gr-&gt;Puts(mglPoint(c,0.8),&quot;Style 'V' or 'V\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.6),mglPoint(b,0.6),&quot;k-K&quot;);	gr-&gt;Puts(mglPoint(c,0.6),&quot;Style 'K' or 'K\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.4),mglPoint(b,0.4),&quot;k-I&quot;);	gr-&gt;Puts(mglPoint(c,0.4),&quot;Style 'I' or 'I\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.2),mglPoint(b,0.2),&quot;k-D&quot;);	gr-&gt;Puts(mglPoint(c,0.2),&quot;Style 'D' or 'D\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0),mglPoint(b,0),&quot;k-S&quot;);		gr-&gt;Puts(mglPoint(c,0),&quot;Style 'S' or 'S\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.2),mglPoint(b,-0.2),&quot;k-O&quot;);	gr-&gt;Puts(mglPoint(c,-0.2),&quot;Style 'O' or 'O\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.4),mglPoint(b,-0.4),&quot;k-T&quot;);	gr-&gt;Puts(mglPoint(c,-0.4),&quot;Style 'T' or 'T\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.6),mglPoint(b,-0.6),&quot;k-_&quot;);	gr-&gt;Puts(mglPoint(c,-0.6),&quot;Style '\\_' or none&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.8),mglPoint(b,-0.8),&quot;k-AS&quot;);	gr-&gt;Puts(mglPoint(c,-0.8),&quot;Style 'AS'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-1),mglPoint(b,-1),&quot;k-_A&quot;);		gr-&gt;Puts(mglPoint(c,-1),&quot;Style '\\_A'&quot;,&quot;rL&quot;);
+
+a=-1;	b=-0.7;	c=-0.6;
+gr-&gt;Line(mglPoint(a,1),mglPoint(b,1),&quot;kAA&quot;);		gr-&gt;Puts(mglPoint(c,1),&quot;Style 'AA'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.8),mglPoint(b,0.8),&quot;kVV&quot;);	gr-&gt;Puts(mglPoint(c,0.8),&quot;Style 'VV'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.6),mglPoint(b,0.6),&quot;kKK&quot;);	gr-&gt;Puts(mglPoint(c,0.6),&quot;Style 'KK'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.4),mglPoint(b,0.4),&quot;kII&quot;);	gr-&gt;Puts(mglPoint(c,0.4),&quot;Style 'II'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.2),mglPoint(b,0.2),&quot;kDD&quot;);	gr-&gt;Puts(mglPoint(c,0.2),&quot;Style 'DD'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0),mglPoint(b,0),&quot;kSS&quot;);		gr-&gt;Puts(mglPoint(c,0),&quot;Style 'SS'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.2),mglPoint(b,-0.2),&quot;kOO&quot;);	gr-&gt;Puts(mglPoint(c,-0.2),&quot;Style 'OO'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.4),mglPoint(b,-0.4),&quot;kTT&quot;);	gr-&gt;Puts(mglPoint(c,-0.4),&quot;Style 'TT'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.6),mglPoint(b,-0.6),&quot;k-__&quot;);	gr-&gt;Puts(mglPoint(c,-0.6),&quot;Style '\\_\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.8),mglPoint(b,-0.8),&quot;k-VA&quot;);	gr-&gt;Puts(mglPoint(c,-0.8),&quot;Style 'VA'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-1),mglPoint(b,-1),&quot;k-AV&quot;);		gr-&gt;Puts(mglPoint(c,-1),&quot;Style 'AV'&quot;,&quot;rL&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Text-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Arrow-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TeX-parsing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-styles-sample-1"></a>
+<h3 class="subsection">9.5.6 Text styles sample</h3>
+<a name="index-Puts-5"></a>
+<div class="float">
+<img src="../png/sample4.png" alt="../png/sample4">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Putsw(mglPoint(0,1),L&quot;Text can be in ASCII and in Unicode&quot;);
+gr-&gt;Puts(mglPoint(0,0.6),&quot;It can be \\wire{wire}, \\big{big} or #r{colored}&quot;);
+gr-&gt;Puts(mglPoint(0,0.2),&quot;One can change style in string: &quot;
+        &quot;\\b{bold}, \\i{italic, \\b{both}}&quot;);
+gr-&gt;Puts(mglPoint(0,-0.2),&quot;Easy to \\a{overline} or &quot;
+        &quot;\\u{underline}&quot;);
+gr-&gt;Puts(mglPoint(0,-0.6),&quot;Easy to change indexes ^{up} _{down} @{center}&quot;);
+gr-&gt;Puts(mglPoint(0,-1),&quot;It parse TeX: \\int \\alpha \\cdot &quot;
+        &quot;\\sqrt3{sin(\\pi x)^2 + \\gamma_{i_k}} dx&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">text 0 1 'Text can be in ASCII and in Unicode'
+text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
+text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
+text 0 -0.2 'Easy to \a{overline} or \u{underline}'
+text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
+text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
+</pre><hr size="6">
+<a name="TeX-parsing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-faces-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TeX-parsing-sample-1"></a>
+<h3 class="subsection">9.5.7 TeX parsing sample</h3>
+<a name="index-Puts-6"></a>
+<div class="float">
+<img src="../png/samplee.png" alt="../png/samplee">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Puts(mglPoint(0), &quot;\\sqrt{\\frac{\\alpha^{\\gamma^2}+&quot;
+        &quot;\\overset 1{\\big\\infty}}{\\sqrt3{2+b}}}&quot;, 0, -4);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}' '' -4
+</pre><hr size="6">
+<a name="Font-faces-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TeX-parsing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Font-faces-sample-1"></a>
+<h3 class="subsection">9.5.8 Font faces sample</h3>
+<a name="index-Puts-7"></a>
+<div class="float">
+<img src="../png/fonts.png" alt="../png/fonts">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">float h=1.1, d=0.25;
+gr-&gt;LoadFont(&quot;STIX&quot;);		gr-&gt;Puts(mglPoint(0,h), &quot;default font (STIX)&quot;);
+gr-&gt;LoadFont(&quot;adventor&quot;);	gr-&gt;Puts(mglPoint(0,h-d), &quot;adventor font&quot;);
+gr-&gt;LoadFont(&quot;bonum&quot;);		gr-&gt;Puts(mglPoint(0,h-2*d), &quot;bonum font&quot;);
+gr-&gt;LoadFont(&quot;chorus&quot;);		gr-&gt;Puts(mglPoint(0,h-3*d), &quot;chorus font&quot;);
+gr-&gt;LoadFont(&quot;cursor&quot;);		gr-&gt;Puts(mglPoint(0,h-4*d), &quot;cursor font&quot;);
+gr-&gt;LoadFont(&quot;heros&quot;);		gr-&gt;Puts(mglPoint(0,h-5*d), &quot;heros font&quot;);
+gr-&gt;LoadFont(&quot;heroscn&quot;);	gr-&gt;Puts(mglPoint(0,h-6*d), &quot;heroscn font&quot;);
+gr-&gt;LoadFont(&quot;pagella&quot;);	gr-&gt;Puts(mglPoint(0,h-7*d), &quot;pagella font&quot;);
+gr-&gt;LoadFont(&quot;schola&quot;);		gr-&gt;Puts(mglPoint(0,h-8*d), &quot;schola font&quot;);
+gr-&gt;LoadFont(&quot;termes&quot;);		gr-&gt;Puts(mglPoint(0,h-9*d), &quot;termes font&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-faces-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Color-schemes-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Colors-sample-1"></a>
+<h3 class="subsection">9.5.9 Colors sample</h3>
+<div class="float">
+<img src="../png/colors.png" alt="../png/colors">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">//#LENUQ
+gr-&gt;FaceZ(-1,	-1, 0, 0.4, 0.3, &quot;L#&quot;);	gr-&gt;Puts(mglPoint(-0.8,-0.9), &quot;L&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	-1, 0, 0.4, 0.3, &quot;E#&quot;);	gr-&gt;Puts(mglPoint(-0.4,-0.9), &quot;E&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	-1, 0, 0.4, 0.3, &quot;N#&quot;);	gr-&gt;Puts(mglPoint(0,  -0.9), &quot;N&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	-1, 0, 0.4, 0.3, &quot;U#&quot;);	gr-&gt;Puts(mglPoint(0.4,-0.9), &quot;U&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	-1, 0, 0.4, 0.3, &quot;Q#&quot;);	gr-&gt;Puts(mglPoint(0.8,-0.9), &quot;Q&quot;, &quot;C:w&quot;, -1.4);
+//#lenuq
+gr-&gt;FaceZ(-1,	-0.7, 0, 0.4, 0.3, &quot;l#&quot;);	gr-&gt;Puts(mglPoint(-0.8,-0.6), &quot;l&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	-0.7, 0, 0.4, 0.3, &quot;e#&quot;);	gr-&gt;Puts(mglPoint(-0.4,-0.6), &quot;e&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	-0.7, 0, 0.4, 0.3, &quot;n#&quot;);	gr-&gt;Puts(mglPoint(0,  -0.6), &quot;n&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	-0.7, 0, 0.4, 0.3, &quot;u#&quot;);	gr-&gt;Puts(mglPoint(0.4,-0.6), &quot;u&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	-0.7, 0, 0.4, 0.3, &quot;q#&quot;);	gr-&gt;Puts(mglPoint(0.8,-0.6), &quot;q&quot;, &quot;C:k&quot;, -1.4);
+//#CMYkP
+gr-&gt;FaceZ(-1,	-0.4, 0, 0.4, 0.3, &quot;C#&quot;);	gr-&gt;Puts(mglPoint(-0.8,-0.3), &quot;C&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	-0.4, 0, 0.4, 0.3, &quot;M#&quot;);	gr-&gt;Puts(mglPoint(-0.4,-0.3), &quot;M&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	-0.4, 0, 0.4, 0.3, &quot;Y#&quot;);	gr-&gt;Puts(mglPoint(0,  -0.3), &quot;Y&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	-0.4, 0, 0.4, 0.3, &quot;k#&quot;);	gr-&gt;Puts(mglPoint(0.4,-0.3), &quot;k&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	-0.4, 0, 0.4, 0.3, &quot;P#&quot;);	gr-&gt;Puts(mglPoint(0.8,-0.3), &quot;P&quot;, &quot;C:w&quot;, -1.4);
+//#cmywp
+gr-&gt;FaceZ(-1,	-0.1, 0, 0.4, 0.3, &quot;c#&quot;);	gr-&gt;Puts(mglPoint(-0.8, 0), &quot;c&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	-0.1, 0, 0.4, 0.3, &quot;m#&quot;);	gr-&gt;Puts(mglPoint(-0.4, 0), &quot;m&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	-0.1, 0, 0.4, 0.3, &quot;y#&quot;);	gr-&gt;Puts(mglPoint(0,   0), &quot;y&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	-0.1, 0, 0.4, 0.3, &quot;w#&quot;);	gr-&gt;Puts(mglPoint(0.4, 0), &quot;w&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	-0.1, 0, 0.4, 0.3, &quot;p#&quot;);	gr-&gt;Puts(mglPoint(0.8, 0), &quot;p&quot;, &quot;C:k&quot;, -1.4);
+//#BGRHW
+gr-&gt;FaceZ(-1,	0.2, 0, 0.4, 0.3, &quot;B#&quot;);	gr-&gt;Puts(mglPoint(-0.8, 0.3), &quot;B&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	0.2, 0, 0.4, 0.3, &quot;G#&quot;);	gr-&gt;Puts(mglPoint(-0.4, 0.3), &quot;G&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	0.2, 0, 0.4, 0.3, &quot;R#&quot;);	gr-&gt;Puts(mglPoint(0,   0.3), &quot;R&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	0.2, 0, 0.4, 0.3, &quot;H#&quot;);	gr-&gt;Puts(mglPoint(0.4, 0.3), &quot;H&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	0.2, 0, 0.4, 0.3, &quot;W#&quot;);	gr-&gt;Puts(mglPoint(0.8, 0.3), &quot;W&quot;, &quot;C:w&quot;, -1.4);
+//#bgrhw
+gr-&gt;FaceZ(-1,	0.2, 0, 0.4, 0.3, &quot;b#&quot;);	gr-&gt;Puts(mglPoint(-0.8, 0.6), &quot;b&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	0.5, 0, 0.4, 0.3, &quot;g#&quot;);	gr-&gt;Puts(mglPoint(-0.4, 0.6), &quot;g&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	0.2, 0, 0.4, 0.3, &quot;r#&quot;);	gr-&gt;Puts(mglPoint(0,   0.6), &quot;r&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	0.2, 0, 0.4, 0.3, &quot;h#&quot;);	gr-&gt;Puts(mglPoint(0.4, 0.6), &quot;h&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	0.2, 0, 0.4, 0.3, &quot;w#&quot;);	gr-&gt;Puts(mglPoint(0.8, 0.6), &quot;w&quot;, &quot;C:k&quot;, -1.4);
+//#brighted
+gr-&gt;FaceZ(-1,	0.8, 0, 0.4, 0.3, &quot;r1#&quot;);	gr-&gt;Puts(mglPoint(-0.8, 0.9), &quot;r1&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	0.8, 0, 0.4, 0.3, &quot;r3#&quot;);	gr-&gt;Puts(mglPoint(-0.4, 0.9), &quot;r3&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	0.8, 0, 0.4, 0.3, &quot;r5#&quot;);	gr-&gt;Puts(mglPoint(0,   0.9), &quot;r5&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	0.8, 0, 0.4, 0.3, &quot;r7#&quot;);	gr-&gt;Puts(mglPoint(0.4, 0.9), &quot;r7&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	0.8, 0, 0.4, 0.3, &quot;r9#&quot;);	gr-&gt;Puts(mglPoint(0.8, 0.9), &quot;r9&quot;, &quot;C:k&quot;, -1.4);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">#LENUQ
+facez -1   -1 0 0.4 0.3 'L#': text -0.8 -0.9 'L' 'C:w'
+facez -0.6 -1 0 0.4 0.3 'E#': text -0.4 -0.9 'E' 'C:w'
+facez -0.2 -1 0 0.4 0.3 'N#': text  0   -0.9 'N' 'C:w'
+facez  0.2 -1 0 0.4 0.3 'U#': text  0.4 -0.9 'U' 'C:w'
+facez  0.6 -1 0 0.4 0.3 'Q#': text  0.8 -0.9 'Q' 'C:w'
+#lenuq
+facez -1   -0.7 0 0.4 0.3 'l#': text -0.8 -0.6 'l' 'C:k'
+facez -0.6 -0.7 0 0.4 0.3 'e#': text -0.4 -0.6 'e' 'C:k'
+facez -0.2 -0.7 0 0.4 0.3 'n#': text  0   -0.6 'n' 'C:k'
+facez  0.2 -0.7 0 0.4 0.3 'u#': text  0.4 -0.6 'u' 'C:k'
+facez  0.6 -0.7 0 0.4 0.3 'q#': text  0.8 -0.6 'q' 'C:k'
+#CMYkP
+facez -1   -0.4 0 0.4 0.3 'C#': text -0.8 -0.3 'C' 'C:w'
+facez -0.6 -0.4 0 0.4 0.3 'M#': text -0.4 -0.3 'M' 'C:w'
+facez -0.2 -0.4 0 0.4 0.3 'Y#': text  0   -0.3 'Y' 'C:w'
+facez  0.2 -0.4 0 0.4 0.3 'k#': text  0.4 -0.3 'k' 'C:w'
+facez  0.6 -0.4 0 0.4 0.3 'P#': text  0.8 -0.3 'P' 'C:w'
+#lenuq
+facez -1   -0.1 0 0.4 0.3 'c#': text -0.8 0 'c' 'C:k'
+facez -0.6 -0.1 0 0.4 0.3 'm#': text -0.4 0 'm' 'C:k'
+facez -0.2 -0.1 0 0.4 0.3 'y#': text  0   0 'y' 'C:k'
+facez  0.2 -0.1 0 0.4 0.3 'w#': text  0.4 0 'w' 'C:k'
+facez  0.6 -0.1 0 0.4 0.3 'p#': text  0.8 0 'p' 'C:k'
+#BGRHW
+facez -1   0.2 0 0.4 0.3 'B#': text -0.8 0.3 'B' 'C:k'
+facez -0.6 0.2 0 0.4 0.3 'G#': text -0.4 0.3 'G' 'C:k'
+facez -0.2 0.2 0 0.4 0.3 'R#': text  0   0.3 'R' 'C:k'
+facez  0.2 0.2 0 0.4 0.3 'H#': text  0.4 0.3 'H' 'C:k'
+facez  0.6 0.2 0 0.4 0.3 'W#': text  0.8 0.3 'W' 'C:k'
+#bgrhw
+facez -1   0.5 0 0.4 0.3 'b#': text -0.8 0.6 'b' 'C:w'
+facez -0.6 0.5 0 0.4 0.3 'g#': text -0.4 0.6 'g' 'C:w'
+facez -0.2 0.5 0 0.4 0.3 'r#': text  0   0.6 'r' 'C:w'
+facez  0.2 0.5 0 0.4 0.3 'h#': text  0.4 0.6 'h' 'C:w'
+facez  0.6 0.5 0 0.4 0.3 'w#': text  0.8 0.6 'w' 'C:w'
+#brighted
+facez -1   0.8 0 0.4 0.3 'r1#': text -0.8 0.9 'r1' 'C:k'
+facez -0.6 0.8 0 0.4 0.3 'r3#': text -0.4 0.9 'r3' 'C:k'
+facez -0.2 0.8 0 0.4 0.3 'r5#': text  0   0.9 'r5' 'C:k'
+facez  0.2 0.8 0 0.4 0.3 'r7#': text  0.4 0.9 'r7' 'C:k'
+facez  0.6 0.8 0 0.4 0.3 'r9#': text  0.8 0.9 'r9' 'C:k'
+</pre><hr size="6">
+<a name="Color-schemes-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Normal-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Color-schemes-sample-1"></a>
+<h3 class="subsection">9.5.10 Color schemes sample</h3>
+<a name="index-Colorbar-7"></a>
+<div class="float">
+<img src="../png/color_schemes.png" alt="../png/color_schemes">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(256,2);	a.Fill(-1,1);
+gr-&gt;SubPlot(2,10,0,0.2);	gr-&gt;Dens(a,&quot;kw&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kw&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,1,0.2);	gr-&gt;Dens(a,&quot;wk&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;wk&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,2,0.2);	gr-&gt;Dens(a,&quot;kHCcw&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kHCcw&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,3,0.2);	gr-&gt;Dens(a,&quot;kBbcw&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kBbcw&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,4,0.2);	gr-&gt;Dens(a,&quot;kRryw&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kRryw&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,5,0.2);	gr-&gt;Dens(a,&quot;kGgew&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kGgew&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,6,0.2);	gr-&gt;Dens(a,&quot;BbwrR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbwrR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,7,0.2);	gr-&gt;Dens(a,&quot;BbwgG&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbwgG&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,8,0.2);	gr-&gt;Dens(a,&quot;GgwmM&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;GgwmM&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,9,0.2);	gr-&gt;Dens(a,&quot;UuwqR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;UuwqR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,10,0.2);	gr-&gt;Dens(a,&quot;QqwcC&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;QqwcC&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,11,0.2);	gr-&gt;Dens(a,&quot;CcwyY&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;CcwyY&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,12,0.2);	gr-&gt;Dens(a,&quot;bcwyr&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;bcwyr&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,13,0.2);	gr-&gt;Dens(a,&quot;bwr&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;bwr&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,14,0.2);	gr-&gt;Dens(a,&quot;BbcyrR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbcyrR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,15,0.2);	gr-&gt;Dens(a,&quot;UbcyqR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;UbcyqR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,16,0.2);	gr-&gt;Dens(a,&quot;BbcwyrR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbcwyrR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,17,0.2);	gr-&gt;Dens(a,&quot;bcyr&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;bcyr&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,18,0.2);	gr-&gt;Dens(a,&quot;BbcyrR|&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbcyrR|&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,19,0.2);	gr-&gt;Dens(a,&quot;bgr&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;bgr&quot;, &quot;C&quot;, -8);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 256 2: fill a 'x'
+subplot 2 10 0 0.2:dens a 'kw'
+text -1.4 -0.3 'kw' '' -8
+subplot 2 10 1 0.2:dens a 'wk'
+text -1.4 -0.3 'wk' '' -8
+subplot 2 10 2 0.2:dens a 'kHCcw'
+text -1.4 -0.3 'kHCcw' '' -8
+subplot 2 10 3 0.2:dens a 'kBbcw'
+text -1.4 -0.3 'kBbcw' '' -8
+subplot 2 10 4 0.2:dens a 'kRryw'
+text -1.4 -0.3 'kRryw' '' -8
+subplot 2 10 5 0.2:dens a 'kGgew'
+text -1.4 -0.3 'kGgew' '' -8
+subplot 2 10 6 0.2:dens a 'BbwrR'
+text -1.4 -0.3 'BbwrR' '' -8
+subplot 2 10 7 0.2:dens a 'BbwgG'
+text -1.4 -0.3 'BbwgG' '' -8
+subplot 2 10 8 0.2:dens a 'GgwmM'
+text -1.4 -0.3 'GgwmM' '' -8
+subplot 2 10 9 0.2:dens a 'UuwqR'
+text -1.4 -0.3 'UuwqR' '' -8
+subplot 2 10 10 0.2:dens a 'QqwcC'
+text -1.4 -0.3 'QqwcC' '' -8
+subplot 2 10 11 0.2:dens a 'CcwyY'
+text -1.4 -0.3 'CcwyY' '' -8
+subplot 2 10 12 0.2:dens a 'bcwyr'
+text -1.4 -0.3 'bcwyr' '' -8
+subplot 2 10 13 0.2:dens a 'bwr'
+text -1.4 -0.3 'bwr' '' -8
+subplot 2 10 14 0.2:dens a 'BbcyrR'
+text -1.4 -0.3 'BbcyrR' '' -8
+subplot 2 10 15 0.2:dens a 'UbcyqR'
+text -1.4 -0.3 'UbcyqR' '' -8
+subplot 2 10 16 0.2:dens a 'BbcwyrR'
+text -1.4 -0.3 'BbcwyrR' '' -8
+subplot 2 10 17 0.2:dens a 'bcyr'
+text -1.4 -0.3 'bcyr' '' -8
+subplot 2 10 18 0.2:dens a 'BbcyrR|'
+text -1.4 -0.3 'BbcyrR|' '' -8
+subplot 2 10 19 0.2:dens a 'bgr'
+text -1.4 -0.3 'bgr' '' -8
+</pre><hr size="6">
+<a name="Normal-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Color-schemes-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Glass_002dlike-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Normal-transparency-1"></a>
+<h3 class="subsection">9.5.11 Normal transparency</h3>
+<a name="index-TranspType"></a>
+<div class="float">
+<img src="../png/type0.png" alt="../png/type0">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true);	gr-&gt;Light(true);
+mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+
+gr-&gt;TranspType = 0;	gr-&gt;Clf();
+gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);	gr-&gt;Surf(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);	gr-&gt;Dens(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);	gr-&gt;Cont(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);	gr-&gt;Axial(a);	gr-&gt;Box();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 0: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre><hr size="6">
+<a name="Glass_002dlike-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Normal-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lamp_002dlike-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Glass_002dlike-transparency-1"></a>
+<h3 class="subsection">9.5.12 Glass-like transparency</h3>
+<a name="index-TranspType-1"></a>
+<div class="float">
+<img src="../png/type1.png" alt="../png/type1">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true);	gr-&gt;Light(true);
+mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+
+gr-&gt;TranspType = 1;	gr-&gt;Clf();
+gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);	gr-&gt;Surf(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);	gr-&gt;Dens(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);	gr-&gt;Cont(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);	gr-&gt;Axial(a);	gr-&gt;Box();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 1: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre><hr size="6">
+<a name="Lamp_002dlike-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Glass_002dlike-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Lamp_002dlike-transparency-1"></a>
+<h3 class="subsection">9.5.13 Lamp-like transparency</h3>
+<a name="index-TranspType-2"></a>
+<div class="float">
+<img src="../png/type2.png" alt="../png/type2">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true);	gr-&gt;Light(true);
+mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+
+gr-&gt;TranspType = 2;	gr-&gt;Clf();
+gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);	gr-&gt;Surf(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);	gr-&gt;Dens(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);	gr-&gt;Cont(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);	gr-&gt;Axial(a);	gr-&gt;Box();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 2: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<hr size="6">
+<a name="Additional-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lamp_002dlike-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Additional-features-1"></a>
+<h2 class="section">9.6 Additional features</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Legend-sample">9.6.1 Legend sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Adding-mesh-sample">9.6.2 Adding mesh sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf-_0026-Cont-sample">9.6.3 Surf &amp; Cont sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-_0026-Dens-sample">9.6.4 Flow &amp; Dens sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Several-light-sample">9.6.5 Several light sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mirrored-surface-sample">9.6.6 Mirrored surface sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-with-labels-sample">9.6.7 Cont with labels sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ternary-plot-sample">9.6.8 Ternary plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Coloring-by-coordinates-sample">9.6.9 Coloring by coordinates sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Drops-sample">9.6.10 Drops sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Molecules-drawing-sample">9.6.11 Molecules drawing sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">    
+</td></tr>
+</table>
+<hr size="6">
+<a name="Legend-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Additional-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Adding-mesh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Legend-sample-1"></a>
+<h3 class="subsection">9.6.1 Legend sample</h3>
+<a name="index-Plot-9"></a>
+<a name="index-Legend-5"></a>
+<a name="index-AddLegend-3"></a>
+<div class="float">
+<img src="../png/legend.png" alt="../png/legend">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData f(50,3);
+f.Modify(&quot;sin(2*pi*x*x)&quot;,0);
+f.Modify(&quot;sin(2*pi*x)&quot;,1);
+f.Modify(&quot;sin(2*pi*sqrt(x))&quot;,2);
+gr-&gt;Axis(mglPoint(0,-1),mglPoint(1,1));
+gr-&gt;Box(); gr-&gt;Plot(f); gr-&gt;Axis();
+gr-&gt;AddLegend(&quot;sin(\\pi {x^2})&quot;,&quot;b&quot;);
+gr-&gt;AddLegend(&quot;sin(\\pi x)&quot;,&quot;g*&quot;);
+gr-&gt;AddLegend(&quot;sin(\\pi \\sqrt{\\a x})&quot;,&quot;r+&quot;);
+gr-&gt;Legend();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new f 50 3
+modify f 'sin(2*pi*x*x)'
+modify f 'sin(2*pi*x)' 1
+modify f 'sin(2*pi*sqrt(x))' 2
+axis 0 -1 1 1
+box
+plot f
+axis
+addlegend 'sin(\pi {x^2})' 'b'
+addlegend 'sin(\pi x)' 'g*'
+addlegend 'sin(\pi \sqrt{\a x})' 'r+'
+legend
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT f = mgl_create_data_size(50,3,1);
+mgl_data_modify(f,&quot;sin(2*pi*x*x)&quot;,0);
+mgl_data_modify(f,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(f,&quot;sin(2*pi*sqrt(x))&quot;,2);
+mgl_set_axis(gr, 0.,-1.,0., 1.,1.,1., 0.,0.,0.);
+mgl_box(gr,1);
+mgl_plot(gr,f,NULL);
+mgl_axis(gr,&quot;xy&quot;);
+mgl_add_legend(gr,&quot;sin(\\pi {x^2})&quot;,&quot;b&quot;);
+mgl_add_legend(gr,&quot;sin(\\pi x)&quot;,&quot;g*&quot;);
+mgl_add_legend(gr,&quot;sin(\\pi \\sqrt{\\a x})&quot;,&quot;r+&quot;);
+mgl_legend(gr,3,&quot;rL&quot;,-1.,0.1);
+mgl_delete_data(f);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer f, mgl_create_data_size
+f = mgl_create_data_size(50,3,1)
+call mgl_data_modify(f,'sin(2*pi*x*x)',0)
+call mgl_data_modify(f,'sin(2*pi*x)',1)
+call mgl_data_modify(f,'sin(2*pi*sqrt(x))',2)
+call mgl_set_axis(gr, 0.,-1.,0., 1.,1.,1., 0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_plot(gr,f,'')
+call mgl_axis(gr,'xy')
+call mgl_add_legend(gr,'sin(\pi {x^2})','b');
+call mgl_add_legend(gr,'sin(\pi x)','g*');
+call mgl_add_legend(gr,'sin(\pi \sqrt{\a x})','r+');
+call mgl_legend(gr,3,'rL',-1.,0.1);
+call mgl_delete_data(f)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">f = mglData(50,3);
+f.Modify(&quot;sin(2*pi*x*x)&quot;,0);    f.Modify(&quot;sin(2*pi*x)&quot;,1);      f.Modify(&quot;sin(2*pi*sqrt(x))&quot;,2);
+gr.SetRanges(0,1,-1,1);     gr.Box();   gr.Axis();  gr.Plot(f);
+gr.AddLegend(&quot;sin(\\pi x^2)&quot;,&quot;b&quot;);
+gr.AddLegend(&quot;sin(\\pi x)&quot;,&quot;g*&quot;);
+gr.AddLegend(&quot;sin(\\pi\\sqrt{\\a x})&quot;,&quot;r+&quot;);
+gr.Legend();
+</pre><hr size="6">
+<a name="Adding-mesh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf-_0026-Cont-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Adding-mesh-sample-1"></a>
+<h3 class="subsection">9.6.2 Adding mesh sample</h3>
+<a name="index-SubPlot-4"></a>
+<a name="index-Surf-12"></a>
+<a name="index-Dens-6"></a>
+<a name="index-Cont-6"></a>
+<a name="index-Axial-6"></a>
+<div class="float">
+<img src="../png/samplea.png" alt="../png/samplea">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(40,60);
+gr-&gt;Surf(a,&quot;BbcyrR#&quot;);  gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(40,60);
+gr-&gt;Dens(a,&quot;BbcyrR#&quot;);  gr-&gt;Box();
+gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(40,60);
+gr-&gt;Cont(a,&quot;BbcyrR#&quot;);  gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(40,60);
+gr-&gt;Axial(a,&quot;BbcyrR#&quot;); gr-&gt;Box();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+alpha on
+light on
+subplot 2 2 0
+rotate 40 60
+surf a 'BbcyrR#'
+box
+subplot 2 2 1
+rotate 40 60
+dens a 'BbcyrR#'
+box
+subplot 2 2 2
+rotate 40 60
+cont a 'BbcyrR#'
+box
+subplot 2 2 3
+rotate 40 60
+axial a 'BbcyrR#'
+box
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_set_alpha(gr,1);
+mgl_set_light(gr,1);
+mgl_subplot(gr,2,2,0); mgl_rotate(gr,40.,60.,0.);
+mgl_surf(gr,a,&quot;BbcyrR#&quot;);       mgl_box(gr,1);
+mgl_subplot(gr,2,2,1); mgl_rotate(gr,40.,60.,0.);
+mgl_dens(gr,a,&quot;BbcyrR#&quot;,-1.);   mgl_box(gr,1);
+mgl_subplot(gr,2,2,2); mgl_rotate(gr,40.,60.,0.);
+mgl_cont(gr,a,&quot;BbcyrR#&quot;,7,NAN); mgl_box(gr,1);
+mgl_subplot(gr,2,2,3); mgl_rotate(gr,40.,60.,0.);
+mgl_axial(gr,a,&quot;BbcyrR#&quot;,3);    mgl_box(gr,1);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+real zero, nan
+zero=0; nan=zero/zero
+a = mgl_create_data_size(50,40,1)
+call mgl_data_modify(a,'0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))',0)
+call mgl_set_alpha(gr,1)
+call mgl_set_light(gr,1)
+call mgl_subplot(gr,2,2,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_surf(gr,a,'BbcyrR#')
+call mgl_box(gr,1)
+call mgl_subplot(gr,2,2,1)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_dens(gr,a,'BbcyrR#',-1.)
+call mgl_box(gr,1)
+call mgl_subplot(gr,2,2,2)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_cont(gr,a,'BbcyrR#',7,nan)
+call mgl_box(gr,1)
+call mgl_subplot(gr,2,2,3)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_axial(gr,a,'BbcyrR#',3)
+call mgl_box(gr,1)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Light(True);     gr.Alpha(True);
+gr.SubPlot(2,2,0);
+gr.Rotate(40,60);   gr.Surf(a,&quot;BbcyrR#&quot;);   gr.Box();
+gr.SubPlot(2,2,1);
+gr.Rotate(40,60);   gr.Dens(a,&quot;BbcyrR#&quot;);   gr.Box();
+gr.SubPlot(2,2,2);
+gr.Rotate(40,60);   gr.Cont(a,&quot;BbcyrR#&quot;);   gr.Box();
+gr.SubPlot(2,2,3);
+gr.Rotate(40,60);   gr.Axial(a,&quot;BbcyrR#&quot;);  gr.Box();
+</pre><hr size="6">
+<a name="Surf-_0026-Cont-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Adding-mesh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-_0026-Dens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-_0026-Cont-sample-1"></a>
+<h3 class="subsection">9.6.3 Surf &amp; Cont sample</h3>
+<a name="index-Surf-13"></a>
+<a name="index-Cont-7"></a>
+<div class="float">
+<img src="../png/surf_cont_y.png" alt="../png/surf_cont_y">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Surf(a);
+gr-&gt;Cont(a,&quot;y&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+cont a 'y'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_cont(gr,a,&quot;y&quot;,7,NAN);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+real zero, nan
+zero = 0; nan = zero/zero
+a = mgl_create_data_size(50,40,1)
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_cont(gr,a,'y',7,nan)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Surf(a);         gr.Cont(a,&quot;y&quot;);
+</pre><hr size="6">
+<a name="Flow-_0026-Dens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf-_0026-Cont-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Several-light-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-_0026-Dens-sample-1"></a>
+<h3 class="subsection">9.6.4 Flow &amp; Dens sample</h3>
+<a name="index-Flow-7"></a>
+<a name="index-Dens-7"></a>
+<div class="float">
+<img src="../png/flow_dens.png" alt="../png/flow_dens">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40), b(50,40), d(a);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+d.Modify(&quot;sqrt(v^2+w^2)&quot;,a,b);
+gr-&gt;Box();
+gr-&gt;Flow(a,b,&quot;br&quot;); gr-&gt;Dens(d,&quot;BbcyrR&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+copy d a
+modify d 'sqrt(v^2+w^2)' a b
+box
+flow a b 'br'
+dens d 'BbcyrR'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a, b, d;
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+d = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(d,&quot;sqrt(v^2+w^2)&quot;,a,b);
+mgl_box(gr,1);
+mgl_flow_2d(gr,a,b,&quot;br&quot;,5,1,0.);
+mgl_dens(gr,d,&quot;BbcyrR&quot;,-1.);
+mgl_delete_data(a); mgl_delete_data(b); mgl_delete_data(d);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b,d, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+d = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(d,&quot;sqrt(v^2+w^2)&quot;,a,b);
+call mgl_box(gr,1)
+call mgl_flow_2d(gr,a,b,'br',5,1,0.)
+call mgl_dens(gr,d,'BbcyrR',-1.);
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+call mgl_delete_data(d)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b= mglData(50,40), mglData(50,40);   d = mglData(a)
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+d.Modify(&quot;sqrt(v^2+w^2)&quot;,a,b);
+gr.Box();
+gr.Flow(a,b,&quot;br&quot;);      gr.Dens(d,&quot;BbcyrR&quot;);
+</pre><hr size="6">
+<a name="Several-light-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-_0026-Dens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mirrored-surface-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Several-light-sample-1"></a>
+<h3 class="subsection">9.6.5 Several light sample</h3>
+<a name="index-Surf-14"></a>
+<a name="index-Light-5"></a>
+<div class="float">
+<img src="../png/several_light.png" alt="../png/several_light">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Light(1,mglPoint(0,1,0),'c');
+gr-&gt;Light(2,mglPoint(1,0,0),'y');
+gr-&gt;Light(3,mglPoint(0,-1,0),'m');
+gr-&gt;Box();
+gr-&gt;Surf(a,&quot;h&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+light 1 0 1 0 'c'
+light 2 1 0 0 'y'
+light 3 0 -1 0 'm'
+box
+surf a 'h'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_add_light_rgb(gr,1,0.,1.,0.,1, 0.,1.,1.,0.5);
+mgl_add_light_rgb(gr,2,1.,0.,0.,1, 1.,1.,0.,0.5);
+mgl_add_light_rgb(gr,3,0.,-1.,0.,1, 1.,0.,1.,0.5);
+mgl_box(gr,1);
+mgl_surf(gr,a,&quot;h&quot;);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_add_light_rgb(gr,1,0.,1.,0.,1, 0.,1.,1.,0.5)
+call mgl_add_light_rgb(gr,2,1.,0.,0.,1, 1.,1.,0.,0.5)
+call mgl_add_light_rgb(gr,3,0.,-1.,0.,1, 1.,0.,1.,0.5)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'h')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);       gr.Light(True);
+gr.AddLight(1,0,1,0,&quot;c&quot;);
+gr.AddLight(2,1,0,0,&quot;y&quot;);
+gr.AddLight(3,0,-1,0,&quot;m&quot;);
+gr.Box();
+gr.Surf(a,&quot;h&quot;)
+</pre><hr size="6">
+<a name="Mirrored-surface-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Several-light-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-with-labels-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mirrored-surface-sample-1"></a>
+<h3 class="subsection">9.6.6 Mirrored surface sample</h3>
+<a name="index-Surf-15"></a>
+<div class="float">
+<img src="../png/mirror.png" alt="../png/mirror">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(30,40),x(30),y1(40),y2(40);
+a.Modify(&quot;pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)&quot;);
+x.Fill(-1,1); y1.Fill(0,1); y2.Fill(0,-1);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Surf(x,y1,a,&quot;r&quot;); gr-&gt;Surf(x,y2,a,&quot;b&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 30 40
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf a 'r'; yrange 0 1
+surf a 'b'; yrange 0 -1
+box
+</pre><p>or
+</p><pre class="verbatim">new a 30 40
+var x 30 -1 1
+var y1 40 0 1
+var y2 40 0 -1
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf x y1 a 'r'
+surf x y2 a 'b'
+box
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a,x,y1,y2;
+a = mgl_create_data_size(30,40,1);
+x = mgl_create_data_size(30,1,1);
+y1 = mgl_create_data_size(40,1,1);
+y2 = mgl_create_data_size(40,1,1);
+mgl_data_modify(a,&quot;pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)&quot;,0);
+mgl_data_fill(x,-1.,1.,'x');
+mgl_data_fill(y1,0.,1.,'x');
+mgl_data_fill(y2,0.,-1.,'x');
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf_xy(gr,x,y1,a,&quot;r&quot;); mgl_surf_xy(gr,x,y2,a,&quot;b&quot;);
+mgl_delete_data(a); mgl_delete_data(y1);
+mgl_delete_data(x); mgl_delete_data(y2);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,x,y1,y2, mgl_create_data_size
+a = mgl_create_data_size(30,40,1)
+x = mgl_create_data_size(30,1,1)
+y1 = mgl_create_data_size(40,1,1)
+y2 = mgl_create_data_size(40,1,1)
+call mgl_data_modify(a,'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)',0)
+call mgl_data_fill(x,-1.,1.,'x')
+call mgl_data_fill(y1,0.,1.,'x')
+call mgl_data_fill(y2,0.,-1.,'x')
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf_xy(gr,x,y1,a,'r')
+call mgl_surf_xy(gr,x,y2,a,'b')
+call mgl_delete_data(a)
+call mgl_delete_data(y1)
+call mgl_delete_data(x)
+call mgl_delete_data(y2)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, x, y1, y2 = mglData(30,40), mglData(30), mglData(40), mglData(40);
+a.Modify(&quot;pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)&quot;);
+x.Fill(-1,1);   y1.Fill(0,1);   y2.Fill(0,-1);
+gr.Rotate(40,60);       gr.Light(True);         gr.Box();
+gr.Surf(x,y1,a,&quot;r&quot;);    gr.Surf(x,y2,a,&quot;b&quot;);
+</pre><hr size="6">
+<a name="Cont-with-labels-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mirrored-surface-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ternary-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-with-labels-sample-1"></a>
+<h3 class="subsection">9.6.7 Cont with labels sample</h3>
+<a name="index-Cont-8"></a>
+<div class="float">
+<img src="../png/contt.png" alt="../png/contt">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Cont(a,&quot;BbcyrRt&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+cont a 'BbcyrRt'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_cont(gr,a,&quot;BbcyrRt&quot;,7,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_cont(gr,a,'BbcyrRt',7,0)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.Cont(a,&quot;BbcyrRt&quot;);
+</pre><hr size="6">
+<a name="Ternary-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-with-labels-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Coloring-by-coordinates-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ternary-plot-sample-1"></a>
+<h3 class="subsection">9.6.8 Ternary plot sample</h3>
+<a name="index-Ternary-2"></a>
+<div class="float">
+<img src="../png/ternary.png" alt="../png/ternary">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData x(50),y(50),rx(10),ry(10), a(20,30);
+a.Modify(&quot;4*x*y&quot;);
+x.Modify(&quot;0.25*(1+cos(2*pi*x))&quot;);
+y.Modify(&quot;0.25*(1+sin(2*pi*x))&quot;);
+rx.Modify(&quot;rnd&quot;); ry.Modify(&quot;(1-v)*rnd&quot;,rx);
+gr-&gt;Text(mglPoint(-0.8,1.3), &quot;Ternary plot (x+y+t=1)&quot;);
+gr-&gt;Ternary(true);
+gr-&gt;Plot(x,y,&quot;r2&quot;);
+gr-&gt;Plot(rx,ry,&quot;q^ &quot;);
+gr-&gt;Cont(a);
+gr-&gt;Line(mglPoint(0.5,0), mglPoint(0,0.75), &quot;g2&quot;);
+gr-&gt;Axis(); gr-&gt;Grid(&quot;xyz&quot;,&quot;B;&quot;);
+gr-&gt;Label('x',&quot;x comp.&quot;);
+gr-&gt;Label('y',&quot;y comp.&quot;);
+gr-&gt;Label('t',&quot;t comp.&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new rx 10
+new ry 10
+new x 50
+new y 50
+new a 20 30
+modify a '4*x*y'
+modify x '0.25*(1+cos(2*pi*x))'
+modify y '0.25*(1+sin(2*pi*x))'
+modify rx 'rnd'
+modify ry 'rnd*(1-v)' rx
+text -0.8 1.3 'Ternary plot (x+y+t=1)'
+ternary on
+plot x y 'r2'
+plot rx ry 'q^ '
+cont a
+line 0.5 0 0 0.75 'g2'
+axis
+grid 'xyz' 'B;'
+xlabel 'x comp.'
+ylabel 'y comp.'
+tlabel 't comp.'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT x,y,rx,ry,a;
+x = mgl_create_data_size(50,1,1);
+y = mgl_create_data_size(50,1,1);
+rx = mgl_create_data_size(50,1,1);
+ry = mgl_create_data_size(50,1,1);
+a = mgl_create_data_size(20,30,1);
+mgl_data_modify(x,&quot;0.25*(1+cos(2*pi*x))&quot;,0);
+mgl_data_modify(y,&quot;0.25*(1+sin(2*pi*x))&quot;,0);
+mgl_data_modify(rx,&quot;rnd&quot;,0);
+mgl_data_modify_vw(ry,&quot;(1-v)*rnd&quot;,rx,0);
+mgl_data_modify(a,&quot;4*x*y&quot;,0);
+mgl_puts_ext(gr,-0.8,1.3,0.,&quot;Ternary plot (x+y+t=1)&quot;,&quot;C&quot;,-1.4,'t');
+mgl_set_ternary(gr,1);
+mgl_plot_xy(gr,x,y,&quot;r2&quot;);
+mgl_plot_xy(gr,rx,ry,&quot;q^ &quot;);
+mgl_cont(gr,a,&quot;&quot;,7,0.);
+mgl_line(gr,0.5,0.,0.,0.,0.75,0.,&quot;g2&quot;,2);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B:&quot;);
+mgl_label(gr,'x',&quot;x comp&quot;);
+mgl_label(gr,'y',&quot;y comp&quot;);
+mgl_label(gr,'t',&quot;t comp&quot;);
+mgl_delete_data(a);
+mgl_delete_data(x);     mgl_delete_data(y);
+mgl_delete_data(rx);    mgl_delete_data(ry);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,x,y,rx,ry, mgl_create_data_size
+x = mgl_create_data_size(50,1,1)
+y = mgl_create_data_size(50,1,1)
+rx = mgl_create_data_size(50,1,1)
+ry = mgl_create_data_size(50,1,1)
+a = mgl_create_data_size(20,30,1)
+call mgl_data_modify(x,'0.25*(1+cos(2*pi*x))',0)
+call mgl_data_modify(y,'0.25*(1+sin(2*pi*x))',0)
+call mgl_data_modify(rx,'rnd',0)
+call mgl_data_modify_vw(ry,'(1-v)*rnd',rx,rx)
+call mgl_data_modify(a,'4*x*y',0)
+call mgl_puts_ext(gr,-0.8,1.3,0.,'Ternary plot (x+y+t=1)','C',-1.4,'t')
+call mgl_set_ternary(gr,1)
+call mgl_plot_xy(gr,x,y,'r2')
+call mgl_plot_xy(gr,rx,ry,'q^ ')
+call mgl_cont(gr,a,'',7,0.)
+call mgl_line(gr,0.5,0.,0.,0.,0.75,0.,'g2',2)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B:')
+call mgl_label(gr,'x','x comp')
+call mgl_label(gr,'y','y comp')
+call mgl_label(gr,'t','t comp')
+call mgl_delete_data(a)
+call mgl_delete_data(x)
+call mgl_delete_data(y)
+call mgl_delete_data(rx)
+call mgl_delete_data(ry)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">x, y, rx, ry, a = mglData(50), mglData(50), mglData(10), mglData(10), mglData(20,30);
+a.Modify(&quot;4*x*y&quot;);
+x.Modify(&quot;0.25*(1+cos(2*pi*x))&quot;);   y.Modify(&quot;0.25*(1+sin(2*pi*x))&quot;);
+rx.Modify(&quot;rnd&quot;);   ry.Modify(&quot;(1-v)*rnd&quot;,rx);
+gr.Puts(-0.8,1.3,0,&quot;Ternary plot (x+y+t=1)&quot;,&quot;C&quot;,-1.4);
+gr.Ternary(True);
+gr.Plot(x,y,&quot;r2&quot;);  gr.Plot(rx,ry,&quot;q^ &quot;);   gr.Cont(a);
+gr.Line(0.5,0,0,0,0.75,0,&quot;g2&quot;);
+gr.Axis();          gr.Grid(&quot;xyz&quot;,&quot;B;&quot;);
+gr.Label(&quot;x&quot;,&quot;x comp.&quot;);
+gr.Label(&quot;y&quot;,&quot;y comp.&quot;);
+gr.Label(&quot;t&quot;,&quot;t comp.&quot;);
+</pre><hr size="6">
+<a name="Coloring-by-coordinates-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ternary-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Drops-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Coloring-by-coordinates-sample-1"></a>
+<h3 class="subsection">9.6.9 Coloring by coordinates sample</h3>
+<a name="index-Surf3-9"></a>
+<div class="float">
+<img src="../png/surf3_rgbd.png" alt="../png/surf3_rgbd">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Surf3(a,&quot;bgrd&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+surf3 a 'bgrd'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_surf3(gr,a,&quot;bgrd&quot;,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'bgrd',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2+(2*y-1)^2+(2*z-1)^4-(2*z-1)^2-0.1)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.Surf3(a,&quot;bgrd&quot;);
+</pre><hr size="6">
+<a name="Drops-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Coloring-by-coordinates-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Molecules-drawing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Drops-sample-1"></a>
+<h3 class="subsection">9.6.10 Drops sample</h3>
+<a name="index-Drop-4"></a>
+<div class="float">
+<img src="../png/drops.png" alt="../png/drops">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Light(true);
+gr-&gt;Puts(mglPoint(-1,1.2),&quot;sh=0&quot;);
+gr-&gt;Drop(mglPoint(-1,0),mglPoint(0,1),0.5,&quot;r&quot;,0);
+gr-&gt;Puts(mglPoint(-0.33,1.2),&quot;sh=0.33&quot;);
+gr-&gt;Drop(mglPoint(-0.33,0),mglPoint(0,1),0.5,&quot;r&quot;,0.33);
+gr-&gt;Puts(mglPoint(0.33,1.2),&quot;sh=0.67&quot;);
+gr-&gt;Drop(mglPoint(0.33,0),mglPoint(0,1),0.5,&quot;r&quot;,0.67);
+gr-&gt;Puts(mglPoint(1,1.2),&quot;sh=1&quot;);
+gr-&gt;Drop(mglPoint(1,0),mglPoint(0,1),0.5,&quot;r&quot;,1);
+gr-&gt;Ball(mglPoint(-1,0,1),'k');
+gr-&gt;Ball(mglPoint(-0.33,0,1),'k');
+gr-&gt;Ball(mglPoint(0.33,0,1),'k');
+gr-&gt;Ball(mglPoint(1,0,1),'k');
+gr-&gt;Line(mglPoint(-1,0,1),mglPoint(1,0,1),&quot;b&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">light on
+text -1 1.2 'sh=0'
+drop -1 0 0 1 0.5 'r' 0
+text -0.33 1.2 'sh=0.33'
+drop -0.33 0 0 1 0.5 'r' 0.33
+text 0.33 1.2 'sh=0.67'
+drop 0.33 0 0 1 0.5 'r' 0.67
+text 1 1.2 'sh=1'
+drop 1 0 0 1 0.5 'r' 1
+ball -1 0 1 'k'
+ball -0.33 0 1 'k'
+ball 0.33 0 1 'k'
+ball 1 0 1 'k'
+line -1 0 1 1 0 1 'b'
+new h 100
+modify h '0.25*(1+x)^2'
+plot h 'k|'
+text -1 0.6 'h\sim(1+sh)^2' 'rL'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">mgl_set_light(gr,1);
+mgl_puts(gr,-1.,1.2,0.,&quot;sh=0&quot;); 
+mgl_drop(gr,-1.,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.,1.);
+mgl_puts(gr,-0.33,1.2,0.,&quot;sh=0.33&quot;); 
+mgl_drop(gr,-0.33,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.33,1.);
+mgl_puts(gr,0.33,1.2,0.,&quot;sh=0.67&quot;); 
+mgl_drop(gr,0.33,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.67,1.);
+mgl_puts(gr,1.,1.2,0.,&quot;sh=1&quot;); 
+mgl_drop(gr,1.,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,1.,1.);
+mgl_ball_str(gr,-1.,0.,1.,&quot;k&quot;);
+mgl_ball_str(gr,-0.33,0.,1.,&quot;k&quot;);
+mgl_ball_str(gr,0.33,0.,1.,&quot;k&quot;);
+mgl_ball_str(gr,1.,0.,1.,&quot;k&quot;);
+mgl_line(gr,-1.,0.,1.,1.,0.,1.,&quot;b&quot;,2);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">call mgl_set_light(gr,1);
+call mgl_puts(gr,-1.,1.2,0.,&quot;sh=0&quot;); 
+call mgl_drop(gr,-1.,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.,1.);
+call mgl_puts(gr,-0.33,1.2,0.,&quot;sh=0.33&quot;); 
+call mgl_drop(gr,-0.33,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.33,1.);
+call mgl_puts(gr,0.33,1.2,0.,&quot;sh=0.67&quot;); 
+call mgl_drop(gr,0.33,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.67,1.);
+call mgl_puts(gr,1.,1.2,0.,&quot;sh=1&quot;); 
+call mgl_drop(gr,1.,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,1.,1.);
+call mgl_ball_str(gr,-1.,0.,1.,&quot;k&quot;);
+call mgl_ball_str(gr,-0.33,0.,1.,&quot;k&quot;);
+call mgl_ball_str(gr,0.33,0.,1.,&quot;k&quot;);
+call mgl_ball_str(gr,1.,0.,1.,&quot;k&quot;);
+call mgl_line(gr,-1.,0.,1.,1.,0.,1.,&quot;b&quot;,2);
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">gr.Light(True);
+gr.Puts(-1,1.2,0,&quot;sh=0&quot;,&quot;rC&quot;);
+gr.Drop(-1,0,0,0,1,0,0.5,&quot;r&quot;,0);
+gr.Puts(-0.33,1.2,0,&quot;sh=0.33&quot;,&quot;rC&quot;);
+gr.Drop(-0.33,0,0,0,1,0,0.5,&quot;r&quot;,0.33);
+gr.Puts(0.33,1.2,0,&quot;sh=0.67&quot;,&quot;rC&quot;);
+gr.Drop(0.33,0,0,0,1,0,0.5,&quot;r&quot;,0.67);
+gr.Puts(1,1.2,0,&quot;sh=1&quot;,&quot;rC&quot;);
+gr.Drop(1,0,0,0,1,0,0.5,&quot;r&quot;,1);
+gr.Ball(-1,0,1,&quot;k&quot;);    gr.Ball(-0.33,0,1,&quot;k&quot;);
+gr.Ball(0.33,0,1,&quot;k&quot;);  gr.Ball(1,0,1,&quot;k&quot;);
+gr.Line(-1,0,1,1,0,1,&quot;b&quot;);
+</pre><hr size="6">
+<a name="Molecules-drawing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Drops-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Molecules-drawing-sample-1"></a>
+<h3 class="subsection">9.6.11 Molecules drawing sample</h3>
+<a name="index-Drop-5"></a>
+<a name="index-Sphere-3"></a>
+<div class="float">
+<img src="../png/molecule.png" alt="../png/molecule">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true); gr-&gt;Light(true);
+gr-&gt;SubPlot(2,2,0);
+gr-&gt;Text(mglPoint(0,1.2),&quot;Methane, CH_4&quot;,0,-3); gr-&gt;Rotate(60,120);
+gr-&gt;Sphere(mglPoint(0,0,0),0.25,&quot;k&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0,0,1),0.35,&quot;h&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0,0,0.7),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(-0.94,0,-0.33),0.35,&quot;h&quot;,1,2);
+gr-&gt;Sphere(mglPoint(-0.66,0,-0.23),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.47,0.82,-0.33),0.35,&quot;h&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.33,0.57,-0.23),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.47,-0.82,-0.33),0.35,&quot;h&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.33,-0.57,-0.23),0.25,&quot;g&quot;);
+gr-&gt;SubPlot(2,2,1);
+gr-&gt;Text(mglPoint(0,1.2),&quot;Water, H{_2}O&quot;,0,-3); gr-&gt;Rotate(60,100);
+gr-&gt;Sphere(mglPoint(0,0,0),0.25,&quot;r&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.3,0.5,0),0.3,&quot;m&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.3,0.5,0),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.3,-0.5,0),0.3,&quot;m&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.3,-0.5,0),0.25,&quot;g&quot;);
+gr-&gt;SubPlot(2,2,2);
+gr-&gt;Text(mglPoint(0,1.2),&quot;Oxygen, O_2&quot;,0,-3); gr-&gt;Rotate(60,120);
+gr-&gt;Drop(mglPoint(0,0.5,0),mglPoint(0,-0.3,0),0.3,&quot;m&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0,0.5,0),0.25,&quot;r&quot;);
+gr-&gt;Drop(mglPoint(0,-0.5,0),mglPoint(0,0.3,0),0.3,&quot;m&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0,-0.5,0),0.25,&quot;r&quot;);
+gr-&gt;SubPlot(2,2,3);
+gr-&gt;Text(mglPoint(0,1.2),&quot;Ammonia, NH_3&quot;,0,-3); gr-&gt;Rotate(60,120);
+gr-&gt;Sphere(mglPoint(0,0,0),0.25,&quot;b&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.33,0.57,0),0.32,&quot;n&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.33,0.57,0),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.33,-0.57,0),0.32,&quot;n&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.33,-0.57,0),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(-0.65,0,0),0.32,&quot;n&quot;,1,2);
+gr-&gt;Sphere(mglPoint(-0.65,0,0),0.25,&quot;g&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">alpha on
+light on
+subplot 2 2 0
+text 0 1.2 'Methane, CH_4' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'k'
+drop 0 0 0 0 0 1 0.35 'h' 1 2
+sphere 0 0 0.7 0.25 'g'
+drop 0 0 0 -0.94 0 -0.33 0.35 'h' 1 2
+sphere -0.66 0 -0.23 0.25 'g'
+drop 0 0 0 0.47 0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 0.57 -0.23 0.25 'g'
+drop 0 0 0 0.47 -0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 -0.57 -0.23 0.25 'g'
+subplot 2 2 1
+text 0 1.2 'Water, H{_2}O' '' -3
+rotate 60 100
+sphere 0 0 0 0.25 'r'
+drop 0 0 0 0.3 0.5 0 0.3 'm' 1 2
+sphere 0.3 0.5 0 0.25 'g'
+drop 0 0 0 0.3 -0.5 0 0.3 'm' 1 2
+sphere 0.3 -0.5 0 0.25 'g'
+subplot 2 2 2
+text 0 1.2 'Oxygen, O_2' '' -3
+rotate 60 120
+drop 0 0.5 0 0 -0.3 0 0.3 'm' 1 2
+sphere 0 0.5 0 0.25 'r'
+drop 0 -0.5 0 0 0.3 0 0.3 'm' 1 2
+sphere 0 -0.5 0 0.25 'r'
+subplot 2 2 3
+text 0 1.2 0 'Ammonia, NH_3' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'b'
+drop 0 0 0 0.33 0.57 0 0.32 'n' 1 2
+sphere 0.33 0.57 0 0.25 'g'
+drop 0 0 0 0.33 -0.57 0 0.32 'n' 1 2
+sphere 0.33 -0.57 0 0.25 'g'
+drop 0 0 0 -0.65 0 0 0.32 'n' 1 2
+sphere -0.65 0 0 0.25 'g'
+</pre><hr size="6">
+<a name="Advanced-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Molecules-drawing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Curvelinear-coorinates-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Advanced-features-1"></a>
+<h2 class="section">9.7 Advanced features</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Curvelinear-coorinates-sample">9.7.1 Curvelinear coorinates sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2_002daxes-sample">9.7.2 2-axes sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Semi_002dlog-sample">9.7.3 Semi-log sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Log_002dlog-sample">9.7.4 Log-log sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fitting-sample">9.7.5 Fitting sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Envelop-sample">9.7.6 Envelop sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Sew-sample">9.7.7 Sew sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#STFA-sample">9.7.8 STFA sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#PDE-sample">9.7.9 PDE sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Beam-tracing-sample">9.7.10 Beam tracing sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Parser-sample">9.7.11 Parser sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Manual-ticks-sample">9.7.12 Tick values sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ColumnPlot-sample">9.7.13 ColumnPlot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#StickPlot-sample">9.7.14 StickPlot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stereo-image-sample">9.7.15 Stereo image sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+</table>
+<hr size="6">
+<a name="Curvelinear-coorinates-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Advanced-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2_002daxes-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Curvelinear-coorinates-sample-1"></a>
+<h3 class="subsection">9.7.1 Curvelinear coorinates sample</h3>
+<a name="index-Axis-7"></a>
+<div class="float">
+<img src="../png/sample3.png" alt="../png/sample3">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Org = mglPoint(-1,1,-1);
+gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(60,40);
+gr-&gt;Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),&quot;r2&quot;,100);
+gr-&gt;Axis(); gr-&gt;Grid();
+gr-&gt;Text(mglPoint(0,1.3,1),&quot;Cartesian&quot;);
+gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(60,40);
+gr-&gt;SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;);
+gr-&gt;Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),&quot;r2&quot;,100);
+gr-&gt;Axis(); gr-&gt;Grid();
+gr-&gt;Text(mglPoint(0,1.3,1),&quot;Cylindrical&quot;);
+gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(60,40);
+gr-&gt;SetFunc(&quot;2*y*x&quot;,&quot;y*y - x*x&quot;);
+gr-&gt;Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),&quot;r2&quot;,100);
+gr-&gt;Axis(); gr-&gt;Grid();
+gr-&gt;Text(mglPoint(0,1.3,1),&quot;Parabolic&quot;);
+gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(60,40);
+gr-&gt;SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,&quot;x+z&quot;);
+gr-&gt;Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),&quot;r2&quot;,100);
+gr-&gt;Axis(); gr-&gt;Grid();
+gr-&gt;Text(mglPoint(0,1.3,1),&quot;Spiral&quot;);
+gr-&gt;Axis(0,0,0); // set to default Cartesian
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">origin -1 1 -1
+subplot 2 2 0
+rotate 60 40
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cartesian'
+subplot 2 2 1
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cylindrical'
+subplot 2 2 2
+rotate 60 40
+axis '2*y*x' 'y*y - x*x' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Parabolic'
+subplot 2 2 3
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Spiral'
+axis '' '' '' # set to default Cartesian
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">mgl_set_origin(gr,-1,1,-1);
+mgl_subplot(gr,2,2,0); mgl_rotate(gr,60,40,0);
+mgl_line(gr,-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+mgl_axis(gr,&quot;xyz&quot;); mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B&quot;);
+mgl_text(gr,0,1.3,1,&quot;Cartesian&quot;);
+mgl_subplot(gr,2,2,1); mgl_rotate(gr,60,40,0);
+mgl_set_func(gr,&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,0);
+mgl_line(gr,-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+mgl_axis(gr,&quot;xyz&quot;); mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B&quot;);
+mgl_text(gr,0,1.3,1,&quot;Cylindrical&quot;);
+mgl_subplot(gr,2,2,2); mgl_rotate(gr,60,40,0);
+mgl_set_func(gr,&quot;2*y*x&quot;,&quot;y*y - x*x&quot;,&quot;&quot;);
+mgl_line(gr,-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+mgl_axis(gr,&quot;xyz&quot;); mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B&quot;);
+mgl_text(gr,0,1.3,1,&quot;Parabolic&quot;);
+mgl_subplot(gr,2,2,3); mgl_rotate(gr,60,40,0);
+mgl_set_func(gr,&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,&quot;x+z&quot;);
+mgl_line(gr,-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+mgl_axis(gr,&quot;xyz&quot;); mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B&quot;);
+mgl_text(gr,0,1.3,1,&quot;Spiral&quot;);
+mgl_set_func(gr,0,0,0); /* set to default Cartesian */
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">call mgl_set_origin(gr,-1.,1.,-1.)
+call mgl_subplot(gr,2,2,0)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,'Cartesian')
+call mgl_subplot(gr,2,2,1)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_set_func(gr,'y*sin(pi*x)','y*cos(pi*x)','')
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,'Cylindrical')
+call mgl_subplot(gr,2,2,2)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_set_func(gr,'2*y*x','y*y - x*x','')
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,&quot;Parabolic&quot;)
+call mgl_subplot(gr,2,2,3)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_set_func(gr,'y*sin(pi*x)','y*cos(pi*x)','x+z')
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,'Spiral')
+call mgl_set_func(gr,'','','') ! set to default Cartesian
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">gr.SetOrigin(-1,1,-1);
+gr.SubPlot(2,2,0);              gr.Rotate(60,40);
+gr.Line(-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+gr.Axis();              gr.Grid();
+gr.Puts(0,1.3,1,&quot;Gartesian&quot;,&quot;rC&quot;,-1.5);
+gr.SubPlot(2,2,1);  gr.Rotate(60,40);
+gr.SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;);
+gr.Line(-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+gr.Axis();          gr.Grid();
+gr.Puts(0,1.3,1,&quot;Cylindrical&quot;,&quot;rC&quot;,-1.5);
+gr.SubPlot(2,2,2);  gr.Rotate(60,40);
+gr.SetFunc(&quot;2*y*x&quot;,&quot;y*y-x*x&quot;);
+gr.Line(-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+gr.Axis();          gr.Grid();
+gr.Puts(0,1.3,1,&quot;Parabolic&quot;,&quot;rC&quot;,-1.5);
+gr.SubPlot(2,2,3);  gr.Rotate(60,40);
+gr.SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,&quot;x+z&quot;);
+gr.Line(-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+gr.Axis();          gr.Grid();
+gr.Puts(0,1.3,1,&quot;Spiral&quot;,&quot;rC&quot;,-1.5);
+gr.SetFunc(&quot;&quot;,&quot;&quot;);   # set to default Gartesian
+</pre><hr size="6">
+<a name="g_t2_002daxes-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Curvelinear-coorinates-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Semi_002dlog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2_002daxes-sample-1"></a>
+<h3 class="subsection">9.7.2 2-axes sample</h3>
+<a name="index-Axis-8"></a>
+<div class="float">
+<img src="../png/2_axis.png" alt="../png/2_axis">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y1(50), y2(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;); y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,-1,-1));
+gr-&gt;Axis(); gr-&gt;Label('y',&quot;axis 1&quot;,0);
+gr-&gt;Plot(y1,&quot;b&quot;);
+gr-&gt;Axis(mglPoint(0,0,0),mglPoint(1,1,1),mglPoint(1,1,1));
+gr-&gt;Axis(); gr-&gt;Label('y',&quot;axis 2&quot;,0);
+gr-&gt;Stem(y2,&quot;r&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+axis -1 -1 -1 1 1 1
+origin -1 -1 -1
+axis
+ylabel 'axis 1' 0
+plot y1 'b'
+axis 0 0 0 1 1 1
+origin 1 1 1
+axis
+ylabel 'axis 2' 0
+stem y2 'r'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_set_axis_2d(gr,-1.,1.,-1.,1.);
+mgl_set_origin(gr,-1.,-1.,-1.);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_label_ext(gr,'y',&quot;axis 1&quot;,0,-1.4,0.);
+mgl_plot(gr,y1,&quot;b&quot;);
+mgl_set_axis_2d(gr,0.,0.,1.,1.);
+mgl_set_origin(gr,1.,1.,1.);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_label_ext(gr,'y',&quot;axis 2&quot;,0,-1.4,0.);
+mgl_stem(gr,y2,&quot;r&quot;);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y1,y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1)
+y2 = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y1,'0.3*sin(2*pi*x)',0)
+call mgl_data_modify(y2,'0.5+0.3*cos(2*pi*x)',0)
+call mgl_set_axis_2d(gr,-1.,1.,-1.,1.)
+call mgl_set_origin(gr,-1.,-1.,-1.)
+call mgl_axis(gr,'xyz')
+call mgl_label_ext(gr,'y','axis 1',0,-1.4,0.)
+call mgl_plot(gr,y1,'b')
+call mgl_set_axis_2d(gr,0.,0.,1.,1.)
+call mgl_set_origin(gr,1.,1.,1.)
+call mgl_axis(gr,'xyz')
+call mgl_label_ext(gr,'y','axis 2',0,-1.4,0.)
+call mgl_stem(gr,y2,'r')
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y1, y2 = mglData(50), mglData(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);   y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.SetRanges(-1,1,-1,1);   gr.SetOrigin(-1,-1);
+gr.Axis();      gr.Label(&quot;y&quot;,&quot;axis 1&quot;,0);
+gr.Plot(y1,&quot;b&quot;);
+gr.SetRanges(0,1,0,1);      gr.SetOrigin(1,1);
+gr.Axis();      gr.Label(&quot;y&quot;,&quot;axis 2&quot;,0);
+gr.Stem(y2,&quot;r&quot;);
+</pre><hr size="6">
+<a name="Semi_002dlog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2_002daxes-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Log_002dlog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Semi_002dlog-sample-1"></a>
+<h3 class="subsection">9.7.3 Semi-log sample</h3>
+<a name="index-Axis-9"></a>
+<a name="index-SetTicks-2"></a>
+<a name="index-Plot-10"></a>
+<div class="float">
+<img src="../png/semilog.png" alt="../png/semilog">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData x(2000), y(2000);
+x.Modify(&quot;0.01/(x+10^(-5))&quot;); y.Modify(&quot;sin(1/v)&quot;,x);
+gr-&gt;Axis(mglPoint(0.01,-1),mglPoint(1000,1),mglPoint(0.01,-1));
+gr-&gt;SetFunc(&quot;lg(x)&quot;,0);  gr-&gt;SetTicks('x',0);
+gr-&gt;Box();
+gr-&gt;Plot(x,y,&quot;b2&quot;);
+gr-&gt;Axis(); gr-&gt;Grid(&quot;xy&quot;,&quot;g&quot;);
+gr-&gt;Label('x',&quot;x&quot;,0);   gr-&gt;Label('y', &quot;y = sin 1/x&quot;,0);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new x 2000
+new y 2000
+modify x '0.01/(x+10^(-5))'
+modify y 'sin(1/v)' x
+xrange 0.01 1000
+origin 0.01 -1 0
+xtick 0
+axis 'lg(x)' '' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g'
+xlabel 'x' 0
+ylabel 'y = sin 1/x' 0
+box
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT x = mgl_create_data_size(2000,1,1);
+HMDT y = mgl_create_data_size(2000,1,1);
+mgl_data_modify(x,&quot;0.01/(x+10^(-5))&quot;,0);
+mgl_data_modify_vw(y,&quot;sin(1/v)&quot;,x,0);
+mgl_set_axis(gr,0.01,-1.,0.,1000.,1.,0.,0.01,-1.,0.);
+mgl_set_func(gr,&quot;lg(x)&quot;,0,0);
+mgl_set_ticks(gr,0.,-5.,-5.);
+mgl_box(gr,1);
+mgl_plot_xy(gr,x,y,&quot;b2&quot;);
+mgl_axis(gr,&quot;xy&quot;); mgl_axis_grid(gr,&quot;xy&quot;,&quot;g&quot;);
+mgl_label_ext(gr,'x',&quot;x&quot;,0,-1.4,0);
+mgl_label_ext(gr,'y', &quot;y = sin 1/x&quot;,0,-1.4,0);
+mgl_delete_data(x); mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer x,y, mgl_create_data_size
+x = mgl_create_data_size(2000,1,1)
+y = mgl_create_data_size(2000,1,1)
+call mgl_data_modify(x,'0.01/(x+10^(-5))',0)
+call mgl_data_modify_vw(y,'sin(1/v)',x,x)
+call mgl_set_axis(gr,0.01,-1.,0.,1000.,1.,0.,0.01,-1.,0.)
+call mgl_set_func(gr,'lg(x)','','')
+call mgl_set_ticks(gr,0.,-5.,-5.)
+call mgl_box(gr,1)
+call mgl_plot_xy(gr,x,y,'b2')
+call mgl_axis(gr,'xy')
+call mgl_axis_grid(gr,'xy','g')
+call mgl_label_ext(gr,'x','x',0.,-1.4,0.)
+call mgl_label_ext(gr,'y', 'y = sin 1/x',0.,-1.4,0.)
+call mgl_delete_data(x)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">TO BE DONE
+</pre><hr size="6">
+<a name="Log_002dlog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Semi_002dlog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fitting-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Log_002dlog-sample-1"></a>
+<h3 class="subsection">9.7.4 Log-log sample</h3>
+<a name="index-Axis-10"></a>
+<a name="index-SetTicks-3"></a>
+<a name="index-Plot-11"></a>
+<div class="float">
+<img src="../png/loglog.png" alt="../png/loglog">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData x(100), y(100);
+x.Modify(&quot;pow(10,6*x-3)&quot;); y.Modify(&quot;sqrt(1+v^2)&quot;,x);
+gr-&gt;Axis(mglPoint(0.001,0.1),mglPoint(1000,1000),mglPoint(0.001,0.1));
+gr-&gt;SetFunc(&quot;lg(x)&quot;,&quot;lg(y)&quot;);
+gr-&gt;SetTicks('x',0);    gr-&gt;SetTicks('y',0);
+gr-&gt;Box();
+gr-&gt;Plot(x,y,&quot;b2&quot;);
+gr-&gt;Axis(); gr-&gt;Grid(&quot;xy&quot;,&quot;g;&quot;);
+gr-&gt;Label('x',&quot;x&quot;,0); gr-&gt;Label('y', &quot;y=\\sqrt{1+x^2}&quot;,0);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new x 100
+new y 100
+modify x 'pow(10,6*x-3)'
+modify y 'sqrt(1+v^2)' x
+axis 0.001 0.1 1000 1000
+xtick 0
+ytick 0
+axis 'lg(x)' 'lg(y)' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g;'
+xlabel 'x' 0
+ylabel 'y=\sqrt{1+x^2}' 0
+box
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT x = mgl_create_data_size(100,1,1);
+HMDT y = mgl_create_data_size(100,1,1);
+mgl_data_modify(x,&quot;pow(10,6*x-3)&quot;,0);
+mgl_data_modify_vw(y,&quot;sqrt(1+v^2)&quot;,x,0);
+mgl_set_axis(gr,0.001,0.1,0.,1000.,1000.,0.,0.001,0.1,0.);
+mgl_set_func(gr,&quot;lg(x)&quot;,&quot;lg(y)&quot;,0);
+mgl_set_ticks(gr,0.,0.,-5.);
+mgl_box(gr,1);
+mgl_plot_xy(gr,x,y,&quot;b2&quot;);
+mgl_axis(gr,&quot;xy&quot;); mgl_axis_grid(gr,&quot;xy&quot;,&quot;g;&quot;);
+mgl_label_ext(gr,'x',&quot;x&quot;,0,-1.4,0);
+mgl_label_ext(gr,'y', &quot;y=\\sqrt{1+x^2}&quot;,0,-1.4,0);
+mgl_delete_data(x); mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer x,y, mgl_create_data_size
+x = mgl_create_data_size(100,1,1)
+y = mgl_create_data_size(100,1,1)
+call mgl_data_modify(x,'pow(10,6*x-3)',0)
+call mgl_data_modify_vw(y,'sqrt(1+v^2)',x,x)
+call mgl_set_axis(gr,0.001,0.1,0.,1000.,1000.,0.,0.001,0.1,0.)
+call mgl_set_func(gr,'lg(x)','lg(y)','')
+call mgl_set_ticks(gr,0.,0.,-5.)
+call mgl_box(gr,1)
+call mgl_plot_xy(gr,x,y,'b2')
+call mgl_axis(gr,'xy')
+call mgl_axis_grid(gr,'xy','g;')
+call mgl_label_ext(gr,'x','x',0.,-1.4,0)
+call mgl_label_ext(gr,'y', 'y=\sqrt{1+x^2}',0.,-1.4,0)
+call mgl_delete_data(x)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">x, y = mglData(100), mglData(100);
+x.Modify(&quot;pow(10,6*x-3)&quot;);          y.Modify(&quot;sqrt(1+v^2)&quot;,x);
+gr.SetRanges(0.001,1000,0.1,1000);  gr.SetOrigin(0.001,0.1);
+gr.SetFunc(&quot;lg(x)&quot;,&quot;lg(y)&quot;);
+gr.SetTicks(&quot;x&quot;,0);     gr.SetTicks(&quot;y&quot;,0);
+gr.Box();               gr.Plot(x,y,&quot;b2&quot;);
+gr.Axis();              gr.Grid(&quot;xy&quot;,&quot;g;&quot;);
+gr.Label(&quot;x&quot;,&quot;x&quot;,0);    gr.Label(&quot;y&quot;,&quot;y=\\sqrt{1+x^2}&quot;,0);
+</pre><hr size="6">
+<a name="Fitting-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Log_002dlog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Envelop-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fitting-sample-1"></a>
+<h3 class="subsection">9.7.5 Fitting sample</h3>
+<a name="index-Fit-9"></a>
+<a name="index-PutsFit-2"></a>
+<div class="float">
+<img src="../png/fit.png" alt="../png/fit">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData rnd(100), in(100), res;
+rnd.Fill(&quot;0.4*rnd+0.1+sin(2*pi*x)&quot;, gr-&gt;Min, gr-&gt;Max);
+in.Fill(&quot;0.3+sin(2*pi*x)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Axis(mglPoint(-1,-2), mglPoint(1,2));
+gr-&gt;Plot(rnd, &quot;. &quot;);
+gr-&gt;Box();
+float ini[3] = {1,1,3};
+gr-&gt;Fit(res, rnd, &quot;a+b*sin(c*x)&quot;, &quot;abc&quot;, ini);
+gr-&gt;Plot(res, &quot;r&quot;);
+gr-&gt;Plot(in, &quot;b&quot;);
+gr-&gt;Text(mglPoint(-1, -1.3), &quot;fitted:&quot;, &quot;L:r&quot;, -1);
+gr-&gt;PutsFit(mglPoint(0, -1.8), &quot;y = &quot;, &quot;C:r&quot;, -1);
+gr-&gt;Text(mglPoint(0, 2.2), &quot;initial: y = 0.3+sin(2\\pi x)&quot;, &quot;C:b&quot;, -1);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new rnd 100
+fill rnd '0.4*rnd+0.1+sin(2*pi*x)'
+new in 100
+fill in '0.3+sin(2*pi*x)'
+yrange -2 2
+plot rnd '. '
+box
+list ini 1 1 3
+fit res rnd 'a+b*sin(c*x)' 'abc' ini
+plot res 'r'
+plot in 'b'
+text -1 -1.3 'fitted:' 'L:r' -1
+putsfit 0 -1.8 'y = ' 'C:r'
+text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT rnd,in,res;
+float ini[3] = {1,1,3};
+rnd = mgl_create_data_size(100,1,1);
+in = mgl_create_data_size(100,1,1);
+res = mgl_create_data();
+mgl_data_modify(rnd,&quot;0.4*rnd+0.1+sin(4*pi*x)&quot;,0);
+mgl_data_modify(in,&quot;0.3+sin(4*pi*x)&quot;,0);
+mgl_set_axis_2d(gr,-1.,-2.,1.,2.);
+mgl_plot(gr,rnd,&quot;. &quot;);
+mgl_box(gr,1);
+mgl_fit_1(gr,res,rnd,&quot;a+b*sin(c*x)&quot;,&quot;abc&quot;,ini);
+mgl_plot(gr,res,&quot;r&quot;);   mgl_plot(gr,in,&quot;b&quot;);
+mgl_puts_ext(gr,-1.,-1.3,0.,&quot;fitted:&quot;,&quot;L:r&quot;,-1.,'t');
+mgl_puts_fit(gr,0.,-1.8,0.,&quot;y = &quot;,&quot;C:r&quot;,-1.);
+mgl_puts_ext(gr,0.,2.2,0.,&quot;initial: y = 0.3+sin(2\\pi x)&quot;,&quot;C:b&quot;, -1., 't');
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer rnd,in,res, mgl_create_data_size
+real ini(3)
+ini(1)=1;   ini(2)=1;   ini(3)=3;
+rnd = mgl_create_data_size(100,1,1);
+in = mgl_create_data_size(100,1,1);
+res = mgl_create_data();
+call mgl_data_modify(rnd,&quot;0.4*rnd+0.1+sin(4*pi*x)&quot;,0);
+call mgl_data_modify(in,&quot;0.3+sin(4*pi*x)&quot;,0);
+call mgl_set_axis_2d(gr,-1.,-2.,1.,2.);
+call mgl_plot(gr,rnd,&quot;. &quot;);
+call mgl_box(gr,1);
+call mgl_fit_1(gr,res,rnd,&quot;a+b*sin(c*x)&quot;,&quot;abc&quot;,ini);
+call mgl_plot(gr,res,&quot;r&quot;);
+call mgl_plot(gr,in,&quot;b&quot;);
+call mgl_puts_ext(gr,-1.,-1.3,0.,&quot;fitted:&quot;,&quot;L:r&quot;,-1.,'t');
+call mgl_puts_fit(gr,0.,-1.8,0.,&quot;y = &quot;,&quot;C:r&quot;,-1.);
+call mgl_puts_ext(gr,0.,2.2,0.,&quot;initial: y = 0.3+sin(2\\pi x)&quot;,&quot;C:b&quot;, -1., 't');
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">rnd, In, res, ini = mglData(100), mglData(100), mglData(), mglData(3);
+rnd.Modify(&quot;0.4*rnd+0.1+sin(4*pi*x)&quot;);
+In.Modify(&quot;0.3+sin(4*pi*x)&quot;);
+gr.SetRanges(-1,1,-2,2);
+gr.Plot(rnd,&quot;. &quot;);
+gr.Box();
+ini[0], ini[1], ini[2] = 1, 1, 3;
+gr.Fit(res,rnd,&quot;a+b*sin(c*x)&quot;,&quot;abc&quot;,ini);
+gr.Plot(res,&quot;r&quot;);   gr.Plot(In,&quot;b&quot;);
+gr.Puts(-1,-1.3,0,&quot;fitted:&quot;,&quot;L:r&quot;,-1);
+gr.PutsFit(0,-1.8,0,&quot;y = &quot;,&quot;C:r&quot;,-1);
+gr.Puts(0,2.2,0,&quot;initial: y = 0.3+sin(2\\pi x)&quot;,&quot;C:b&quot;,-1);
+</pre><hr size="6">
+<a name="Envelop-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fitting-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Sew-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Envelop-sample-1"></a>
+<h3 class="subsection">9.7.6 Envelop sample</h3>
+<a name="index-Envelop-2"></a>
+<div class="float">
+<img src="../png/envelop.png" alt="../png/envelop">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(1000);
+a.Fill(&quot;exp(-8*x^2)*sin(10*pi*x)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Plot(a, &quot;b&quot;);
+a.Envelop('x');
+gr-&gt;Plot(a, &quot;r&quot;);
+gr-&gt;Axis();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 1000
+fill a 'exp(-8*x^2)*sin(10*pi*x)'
+plot a 'b'
+envelop a
+plot a 'r'
+axis
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(1000,1,1);
+mgl_data_fill_eq(gr,a, &quot;exp(-8*x^2)*sin(10*pi*x)&quot;, 0,0);
+mgl_plot(gr,a,&quot;b&quot;);
+mgl_data_envelop(a,'x');
+mgl_plot(gr,a,&quot;r&quot;);
+mgl_axis(gr,&quot;xyz&quot;);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(1000,1,1)
+call mgl_data_fill_eq(gr,a, 'exp(-8*x^2)*sin(10*pi*x)', 0,0)
+call mgl_plot(gr,a,'b')
+call mgl_data_envelop(a,'x')
+call mgl_plot(gr,a,'r')
+call mgl_axis(gr,'xyz')
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(1000);
+gr.Fill(a, &quot;exp(-8*x^2)*sin(10*pi*x)&quot;);
+gr.Plot(a,&quot;b&quot;);
+a.Envelop(&quot;x&quot;);
+gr.Plot(a,&quot;r&quot;);
+gr.Axis();
+</pre><hr size="6">
+<a name="Sew-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Envelop-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#STFA-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Sew-sample-1"></a>
+<h3 class="subsection">9.7.7 Sew sample</h3>
+<a name="index-Sew-2"></a>
+<div class="float">
+<img src="../png/sew.png" alt="../png/sew">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(100, 100);
+a.Modify(&quot;mod((y^2-(1-x)^2)/2,0.1)&quot;);
+gr-&gt;Rotate(40, 60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Surf(a, &quot;b&quot;);
+a.Sew(&quot;xy&quot;, 0.1);
+gr-&gt;Surf(a, &quot;r&quot;);
+gr-&gt;Box();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 100 100
+modify a 'mod((y^2-(1-x)^2)/2,0.1)'
+rotate 40 60
+light on
+alpha on
+surf a 'b'
+sew a 'xy' 0.1
+surf a 'r'
+box
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(100,100,1);
+mgl_data_modify(a, &quot;mod((y^2-(1-x)^2)/2, 0.1)&quot;, 0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_surf(gr,a,&quot;b&quot;);
+mgl_data_sew(a,&quot;xy&quot;,0.1);
+mgl_surf(gr,a,&quot;r&quot;);
+mgl_box(gr,1);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(100,100,1)
+call mgl_data_modify(a, 'mod((y^2-(1-x)^2)/2, 0.1)', 0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_surf(gr,a,'b')
+call mgl_data_sew(a,'xy',0.1)
+call mgl_surf(gr,a,'r')
+call mgl_box(gr,1)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(100, 100);
+a.Modify(&quot;mod((y^2-(1-x)^2)/2, 0.1)&quot;);
+gr.Rotate(40, 60);  gr.Light(True);     gr.Alpha(True);
+gr.Surf(a, &quot;b&quot;);
+a.Sew(&quot;xy&quot;, 0.1);
+gr.Surf(a, &quot;r&quot;);
+gr.Box();
+</pre><hr size="6">
+<a name="STFA-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Sew-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#PDE-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="STFA-sample-1"></a>
+<h3 class="subsection">9.7.8 STFA sample</h3>
+<a name="index-STFA-3"></a>
+<div class="float">
+<img src="../png/stfa.png" alt="../png/stfa">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(2000), b(2000);
+a.Fill(&quot;cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+ \
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)&quot;, 
+        gr-&gt;Min, gr-&gt;Max);
+gr-&gt;SubPlot(1, 2, 0);
+gr-&gt;Plot(a);
+gr-&gt;Axis();
+gr-&gt;Label('x', &quot;\\i t&quot;);
+gr-&gt;SubPlot(1, 2, 1);
+gr-&gt;STFA(a, b, 64);
+gr-&gt;Axis();
+gr-&gt;Label('x', &quot;\\i t&quot;);
+gr-&gt;Label('y', &quot;\\omega&quot;, 0);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 2000
+new b 2000
+fill a 'cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)'
+subplot 1 2 0
+plot a
+axis
+xlabel '\i t'
+subplot 1 2 1
+stfa a b 64 ''
+axis
+ylabel '\omega' 0
+xlabel '\i t'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(2000,1,1);
+HMDT b = mgl_create_data_size(2000,1,1);
+mgl_data_fill_eq(gr, a, &quot;cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+ \
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)&quot;,0,0);
+mgl_subplot(gr,1,2,0);
+mgl_plot(gr,a,&quot;&quot;);
+mgl_axis(gr,&quot;xy&quot;);
+mgl_label(gr,'x', &quot;\\i t&quot;);
+mgl_subplot(gr,1,2,1);
+mgl_stfa(gr,a,b,64,&quot;&quot;,0.);
+mgl_axis(gr,&quot;xy&quot;);
+mgl_label(gr,'x', &quot;\\i t&quot;);
+mgl_label(gr,'y', &quot;\\omega&quot;);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(2000,1,1)
+b = mgl_create_data_size(2000,1,1)
+call mgl_data_fill_eq(gr, a, 'cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+ &amp;
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)',0,0)
+call mgl_subplot(gr,1,2,0)
+call mgl_plot(gr,a,'')
+call mgl_axis(gr,'xy')
+call mgl_label(gr,'x', '\i t')
+call mgl_subplot(gr,1,2,1)
+call mgl_stfa(gr,a,b,64,'',0.)
+call mgl_axis(gr,'xy')
+call mgl_label(gr,'x', '\i t')
+call mgl_label(gr,'y', '\omega')
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(2000), mglData(2000);
+gr.Fill(a,&quot;cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+ \
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)&quot;);
+gr.SubPlot(1, 2, 0);
+gr.Plot(a);
+gr.Axis();
+gr.Label('x', &quot;\\i t&quot;);
+gr.SubPlot(1, 2, 1);
+gr.STFA(a, b, 64);
+gr.Axis();
+gr.Label('x', &quot;\\i t&quot;);
+gr.Label('y', &quot;\\omega&quot;, 0);
+</pre><hr size="6">
+<a name="PDE-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#STFA-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Beam-tracing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="PDE-sample-1"></a>
+<h3 class="subsection">9.7.9 PDE sample</h3>
+<a name="index-mglPDE-1"></a>
+<a name="index-mglRay-1"></a>
+<div class="float">
+<img src="../png/pde.png" alt="../png/pde">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a,re(128),im(128);
+gr-&gt;Axis();
+gr-&gt;Label('x', &quot;\\i x&quot;);
+gr-&gt;Label('y', &quot;\\i z&quot;);
+	
+re.Fill(&quot;exp(-48*(x+0.7)^2)&quot;, gr-&gt;Min, gr-&gt;Max);
+a = mglPDE(&quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;, re, im, gr-&gt;Min, gr-&gt;Max, 0.01, 30);
+a.Transpose(&quot;yxz&quot;);
+gr-&gt;CAxis(0, 1);
+gr-&gt;Dens(a,&quot;wyrRk&quot;);
+gr-&gt;Plot(&quot;-x&quot;, &quot;k|&quot;);
+gr-&gt;Puts(mglPoint(0, 0.85), &quot;absorption: (x+z)/2 for x+z&gt;0&quot;);
+gr-&gt;Title(&quot;\\r{Equation:} ik_0\\partial_zu + \\Delta u + x\\cdot u + \
+i \\frac{x+z}{2}\\cdot u = 0&quot;, &quot;iC&quot;, -1.5);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+fill re 'exp(-48*(x+0.7)^2)'
+pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)' re im 0.01 30
+transpose a
+crange 0 1
+dens a 'wyrRk'
+fplot '-x' 'k|'
+text 0 0.85 'absorption: (x+z)/2 for x+z&gt;0' '' -1
+title 'Equation: ik_0\partial_zu + \Delta u + x\cdot u + i \frac{x+z}{2}\cdot u = 0' 'iC' -1.5
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data();
+HMDT re = mgl_create_data_size(128,1,1);
+HMDT im = mgl_create_data_size(128,1,1);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_label(gr,'x', &quot;\\i x&quot;);
+mgl_label(gr,'y', &quot;\\i z&quot;);
+mgl_data_fill_eq(gr,re,&quot;exp(-48*(x+0.7)^2)&quot;, 0, 0);
+a = mgl_pde_solve(gr, &quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;, re, im, 0.01, 30.);
+mgl_data_transpose(a, &quot;yxz&quot;);
+mgl_set_caxis(gr, 0, 1);
+mgl_dens(gr, a,&quot;wyrRk&quot;, -1.);
+mgl_fplot(gr, &quot;-x&quot;, &quot;k|&quot;, 100);
+mgl_puts(gr, 0., 0.85, 0., &quot;absorption: (x+z)/2 for x+z&gt;0&quot;);
+mgl_title(gr, &quot;\\r{Equation:} ik_0\\partial_zu + \\Delta u + x\\cdot u + \
+i \\frac{x+z}{2}\\cdot u = 0&quot;, &quot;iC&quot;, -1.5);
+mgl_delete_data(a);
+mgl_delete_data(im);
+mgl_delete_data(re);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,re,im, mgl_create_data_size
+a = mgl_create_data()
+re = mgl_create_data_size(128,1,1)
+im = mgl_create_data_size(128,1,1)
+call mgl_axis(gr,'xyz')
+call mgl_label(gr,'x', '\i x')
+call mgl_label(gr,'y', '\i z')
+call mgl_data_fill_eq(gr,re,'exp(-48*(x+0.7)^2)', 0, 0)
+a = mgl_pde_solve(gr, 'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)', re, im, 0.01, 30.)
+call mgl_data_transpose(a, 'yxz')
+call mgl_set_caxis(gr, 0., 1.)
+call mgl_dens(gr, a,'wyrRk', -1.)
+call mgl_fplot(gr, '-x', 'k|', 100)
+call mgl_puts(gr, 0., 0.85, 0., 'absorption: (x+z)/2 for x+z&gt;0')
+call mgl_title(gr, '\r{Equation:} ik_0\partial_zu + \Delta u + x\cdot u + &amp;
+i \frac{x+z}{2}\cdot u = 0', 'iC', -1.5)
+call mgl_delete_data(a)
+call mgl_delete_data(im)
+call mgl_delete_data(re)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, re, im = mglData(), mglData(128), mglData(128);
+gr.Axis();
+gr.Label('x', &quot;\\i x&quot;);
+gr.Label('y', &quot;\\i z&quot;);
+	
+gr.Fill(re,&quot;exp(-48*(x+0.7)^2)&quot;);
+a = gr.PDE(&quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;, re, im, 0.01, 30);
+a.Transpose(&quot;yxz&quot;);
+gr.SetCRange(0, 1);
+gr.Dens(a,&quot;wyrRk&quot;);
+gr.Plot(&quot;-x&quot;, &quot;k|&quot;);
+gr.Puts(0, 0.85, 0., &quot;absorption: (x+z)/2 for x+z&gt;0&quot;);
+gr.Title(&quot;\\r{Equation:} ik_0\\partial_zu + \\Delta u + x\\cdot u + \
+i \\frac{x+z}{2}\\cdot u = 0&quot;, &quot;iC&quot;, -1.5);
+</pre><hr size="6">
+<a name="Beam-tracing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#PDE-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Parser-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Beam-tracing-sample-1"></a>
+<h3 class="subsection">9.7.10 Beam tracing sample</h3>
+<a name="index-mglQO2d-1"></a>
+<a name="index-mglRay-2"></a>
+<div class="float">
+<img src="../png/qo2d.png" alt="../png/qo2d">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData r, xx, yy, a, im(128), re(128);
+const char *ham = &quot;p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)&quot;;
+r = mglRay(ham, mglPoint(-0.7, -1), mglPoint(0, 0.5), 0.02, 2);
+gr-&gt;Plot(r.SubData(0), r.SubData(1), &quot;k&quot;);
+gr-&gt;Axis();	gr-&gt;Label('x', &quot;\\i x&quot;);	gr-&gt;Label('y', &quot;\\i z&quot;);
+// now start beam tracing
+re.Fill(&quot;exp(-48*x^2)&quot;, gr-&gt;Min, gr-&gt;Max);
+a = mglQO2d(ham, re, im, r, 1, 30, &amp;xx, &amp;yy);
+gr-&gt;CAxis(0, 1);
+gr-&gt;Dens(xx, yy, a, &quot;wyrRk&quot;);
+gr-&gt;Plot(&quot;-x&quot;, &quot;k|&quot;);
+gr-&gt;Puts(mglPoint(0, 0.85), &quot;absorption: (x+y)/2 for x+y&gt;0&quot;);
+gr-&gt;Puts(mglPoint(0.7, -0.05), &quot;central ray&quot;);
+gr-&gt;Title(&quot;Beam and ray tracing&quot;, &quot;C&quot;, -1.5);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)'
+ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
+plot r(0) r(1) 'k'
+axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+new xx
+new yy
+fill re 'exp(-48*x^2)'
+qo2d a $1 re im r 1 30 xx yy 
+crange 0 1
+dens xx yy a 'wyrRk'
+fplot '-x' 'k|'
+text -0.8 0.85 'absorption: (x+y)/2 for x+y&gt;0' 'L' -1
+text 0.5 -0.05 'central ray' 'L' -1
+title 'Beam and ray tracing' 'C' -1.5
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">const char *ham = &quot;p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)&quot;;
+HMDT r, xx, yy, a, im, re;
+im = mgl_create_data_size(128,1,1);
+re = mgl_create_data_size(128,1,1);
+r = mgl_ray_trace(ham, -0.7, -1., 0., 0., 0.5, 0., 0.02, 2.);
+xx = mgl_data_subdata(r,0,-1,-1);
+yy = mgl_data_subdata(r,1,-1,-1);
+mgl_plot_xy(gr, xx, yy, &quot;k&quot;);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_label(gr,'x',&quot;\\i x&quot;);
+mgl_label(gr,'y',&quot;\\i z&quot;);
+mgl_data_fill_eq(gr,re,&quot;exp(-48*x^2)&quot;, 0, 0);
+a = mgl_qo2d_solve(ham, re, im, r, 1, 30, xx, yy);
+mgl_set_caxis(gr,0.,1.);
+mgl_dens_xy(gr,xx, yy, a, &quot;wyrRk&quot;, -1.);
+mgl_fplot(gr,&quot;-x&quot;, &quot;k|&quot;,100);
+mgl_puts(gr, 0., 0.85, 0., &quot;absorption: (x+y)/2 for x+y&gt;0&quot;);
+mgl_puts(gr, 0.7, -0.05, 0., &quot;central ray&quot;);
+mgl_title(gr, &quot;Beam and ray tracing&quot;, &quot;C&quot;, -1.5);
+mgl_delete_data(a);     mgl_delete_data(r);
+mgl_delete_data(xx);    mgl_delete_data(yy);
+mgl_delete_data(im);    mgl_delete_data(re);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer r, xx, yy, a, im, re, mgl_create_data_size
+integer mgl_data_subdata, mgl_ray_trace, mgl_qo2d_solve
+character*64 ham
+ham = 'p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)'
+im = mgl_create_data_size(128,1,1)
+re = mgl_create_data_size(128,1,1)
+r = mgl_ray_trace(ham, -0.7, -1., 0., 0., 0.5, 0., 0.02, 2.)
+xx = mgl_data_subdata(r,0,-1,-1)
+yy = mgl_data_subdata(r,1,-1,-1)
+call mgl_plot_xy(gr, xx, yy, 'k')
+call mgl_axis(gr,'xyz')
+call mgl_label(gr,'x','\i x')
+call mgl_label(gr,'y','\i z')
+call mgl_data_fill_eq(gr,re,'exp(-48*x^2)', 0, 0)
+a = mgl_qo2d_solve(ham, re, im, r, 1., 30., xx, yy)
+call mgl_set_caxis(gr,0.,1.)
+call mgl_dens_xy(gr,xx, yy, a, 'wyrRk', -1.)
+call mgl_fplot(gr,'-x', 'k|',100)
+call mgl_puts(gr, 0., 0.85, 0., 'absorption: (x+y)/2 for x+y&gt;0')
+call mgl_puts(gr, 0.7, -0.05, 0., 'central ray')
+call mgl_title(gr, 'Beam and ray tracing', 'C', -1.5)
+call mgl_delete_data(a)
+call mgl_delete_data(r)
+call mgl_delete_data(xx)
+call mgl_delete_data(yy)
+call mgl_delete_data(im)
+call mgl_delete_data(re)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ham = &quot;p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)&quot;;
+r, xx, yy, a = mglData(), mglData(), mglData(), mglData();
+im, re = mglData(128), mglData(128);
+r = mglRay(ham, mglPoint(-0.7, -1), mglPoint(0, 0.5), 0.02, 2);
+gr.Plot(r.SubData(0), r.SubData(1), &quot;k&quot;);
+gr.Axis();	gr.Label('x', &quot;\\i x&quot;);	gr.Label('y', &quot;\\i z&quot;);
+gr.Fill(re,&quot;exp(-48*x^2)&quot;);
+a = mglQO2d(ham, re, im, r, 1, 30, xx, yy);
+gr.SetCRange(0, 1);
+gr.Dens(xx, yy, a, &quot;wyrRk&quot;);
+gr.Plot(&quot;-x&quot;, &quot;k|&quot;);
+gr.Puts(0, 0.85, 0, &quot;absorption: (x+y)/2 for x+y&gt;0&quot;);
+gr.Puts(0.7, -0.05, 0, &quot;central ray&quot;);
+gr.Title(&quot;Beam and ray tracing&quot;, &quot;C&quot;, -1.5);
+</pre><hr size="6">
+<a name="Parser-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Beam-tracing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Manual-ticks-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Parser-sample-1"></a>
+<h3 class="subsection">9.7.11 Parser sample</h3>
+<a name="index-mglParse-2"></a>
+<div class="float">
+<img src="../png/parser.png" alt="../png/parser">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">float a[100];   // let a_i = sin(4*pi*x), x=0...1
+for(int i=0;i&lt;100;i++) a[i]=sin(4*M_PI*i/99);
+mglParse *parser = new mglParse;
+mglData &amp;d = (parser-&gt;AddVar(&quot;dat&quot;))-&gt;d;
+d.Set(a,100);   // set data to variable
+parser-&gt;Execute(gr, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+// you may break script at any line do something
+// and continue after that
+parser-&gt;Execute(gr, &quot;xlabel 'x'\nylabel 'y'\nbox&quot;);
+// also you may use cycles or conditions in script
+parser-&gt;Execute(gr, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">float a[100];   /* let a_i = sin(4*pi*x), x=0...1 */
+int i;
+for(i=0;i&lt;100;i++)  a[i]=sin(4*M_PI*i/99);
+HMPR parser = mgl_create_parser();
+HMDT d = mgl_add_var(parser, &quot;dat&quot;);
+mgl_data_set_float(d,a,100,1,1);    /* set data to variable */
+mgl_parse_text(gr, parser, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+/* you may break script at any line do something 
+   and continue after that */
+mgl_parse_text(gr, parser, &quot;xlabel 'x'\nylabel 'y'&quot;);
+/* also you may use cycles or conditions in script */
+mgl_parse_text(gr, parser, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer i,parser,d, mgl_create_data_size, mgl_create_parser
+real a(100)
+! let a_i = sin(4*pi*x), x=0...1
+do i = 1,100
+    a(i)=sin(4*3.1415926*(i-1)/99)
+end do
+parser = mgl_create_parser()
+d = mgl_add_var(parser, &quot;dat&quot;)
+call mgl_data_set_real(d,a,100,1,1)    ! set data to variable
+! I don't know how put new line ('\n') into fortran string
+! So call mgl_parse_text() for each string :(
+call mgl_parse_text(gr, parser, &quot;plot dat; xrange 0 1&quot;)
+call mgl_parse_text(gr, parser, &quot;box&quot;)
+call mgl_parse_text(gr, parser, &quot;axis&quot;)
+! you may break script at any line do something 
+! and continue after that
+call mgl_parse_text(gr, parser, &quot;xlabel 'x'&quot;)
+call mgl_parse_text(gr, parser, &quot;ylabel 'y'&quot;)
+! there is now conditions because I don't know 
+! how to send several string into parser at once :(
+!! also you may use cycles or conditions in script
+!call mgl_parse_text(gr, parser, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;)
+</pre><p><strong>Python</strong>
+You may need to use <code>from numpy import *</code> for defining functions like <code>sin()</code>.
+</p><pre class="verbatim">parser = mglParse();
+dat = parser.AddVar(&quot;dat&quot;);
+dat.Create(100);
+for i in range(100):
+  dat[i] = sin(4*pi*i/99);
+parser.Execute(gr, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+# you may break script at any line do something 
+# and continue after that
+parser.Execute(gr, &quot;xlabel 'x'\nylabel 'y'&quot;);
+# also you may use cycles or conditions in script
+parser.Execute(gr, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+</pre><hr size="6">
+<a name="Manual-ticks-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Parser-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ColumnPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tick-values-sample"></a>
+<h3 class="subsection">9.7.12 Tick values sample</h3>
+<a name="index-SetTicksVal-4"></a>
+<div class="float">
+<img src="../png/tval.png" alt="../png/tval">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Axis(mglPoint(-M_PI, 0), mglPoint(M_PI, 2));
+gr-&gt;SetTicksVal('x', 6, -M_PI, &quot;-\\pi&quot;, -M_PI/2, &quot;-\\pi/2&quot;, 0., &quot;0&quot;, 
+                0.886, &quot;x^*&quot;, M_PI/2, &quot;\\pi/2&quot;, M_PI, &quot;\\pi&quot;);
+gr-&gt;Axis();     gr-&gt;Grid();
+gr-&gt;Plot(&quot;2*cos(x^2)^2&quot;, &quot;r2&quot;, NAN, 300);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">axis -pi 0 pi 2
+xtick -pi '-\pi' -1.571 '-\pi/2' 0 '0' 0.886 'x^*' 1.571 '\pi/2' pi '\pi'
+axis 
+grid
+fplot '2*cos(x^2)^2' 'r2' nan 300
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">mgl_set_axis_2d(gr, -M_PI, 0, M_PI, 2);
+mgl_set_ticks_val(gr, 'x', 6, -M_PI, &quot;-\\pi&quot;, -M_PI/2, &quot;-\\pi/2&quot;,
+            0., &quot;0&quot;, 0.886, &quot;x^*&quot;, M_PI/2, &quot;\\pi/2&quot;, M_PI, &quot;\\pi&quot;);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_axis_grid(gr,&quot;xyz&quot;, &quot;B-&quot;);
+mgl_fplot(gr, &quot;2*cos(x^2)^2&quot;, &quot;r2&quot;, 300);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">gr.SetRanges(-pi, pi, 0, 2);
+parser = mglParse();
+# very &quot;stupid&quot; way because SWIG not support variable arguments
+parser.Execute(gr, &quot;xtick -pi '-\pi' -1.571 '-\pi/2' 0 '0' &quot;
+                    &quot;0.886 'x^*' 1.571 '\pi/2' pi '\pi'&quot;);
+gr.Axis();     gr.Grid();
+gr.Plot(&quot;2*cos(x^2)^2&quot;, &quot;r2&quot;, 300);
+</pre><hr size="6">
+<a name="ColumnPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Manual-ticks-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#StickPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ColumnPlot-sample-1"></a>
+<h3 class="subsection">9.7.13 ColumnPlot sample</h3>
+<a name="index-ColumnPlot-2"></a>
+<div class="float">
+<img src="../png/column.png" alt="../png/column">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">char str[32];
+for(int i=0;i&lt;4;i++)
+{
+        gr-&gt;ColumnPlot(4,i);
+        gr-&gt;Box();
+        sprintf(str,&quot;Plot %d of 4&quot;,i);
+        gr-&gt;Text(mglPoint(-0.5,0.5),str);
+        sprintf(str,&quot;sin(pi*x+pi*%d/2)&quot;,i);
+        gr-&gt;Plot(str);
+}
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">for $1 0 3
+columnplot 4 $1
+box
+text -0.5 0.5 'Plot $1 of 4'
+fplot 'sin(pi*x+pi*$1/2)'
+next
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">int i;
+char str[32];
+for(i=0;i&lt;4;i++)
+{
+        mgl_columnplot(gr,4,i);
+        mgl_box(gr,1);
+        sprintf(str,&quot;Plot %d of 4&quot;,i);
+        mgl_text(gr,-0.5,0.5,0.,str);
+        sprintf(str,&quot;sin(pi*x+pi*%d/2)&quot;,i);
+        mgl_fplot(gr,str,&quot;&quot;,100);
+}
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="StickPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ColumnPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stereo-image-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="StickPlot-sample-1"></a>
+<h3 class="subsection">9.7.14 StickPlot sample</h3>
+<a name="index-StickPlot-2"></a>
+<div class="float">
+<img src="../png/stick.png" alt="../png/stick">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;SetRanges(-1, 1, -1, 1, 0, 1);  gr-&gt;Light(true);
+gr-&gt;StickPlot(3, 0, 40, 30);        gr-&gt;Axis(&quot;xyz_&quot;);
+gr-&gt;Surf(&quot;exp(-10*y^2-6*x^2)&quot;);
+gr-&gt;Text(mglPoint(0.2, 0, 1.2), &quot;z=0&quot;, &quot;&quot;, -2);
+gr-&gt;StickPlot(3, 1, 40, 30);        gr-&gt;Axis(&quot;xyz_&quot;);
+gr-&gt;Surf(&quot;exp(-10*y^2/2-6*x^2)/sqrt(2)&quot;);
+gr-&gt;Text(mglPoint(0.2, 0, 1.2), &quot;z=1&quot;, &quot;&quot;, -2);
+gr-&gt;StickPlot(3, 2, 40, 30);        gr-&gt;Axis(&quot;xyz_&quot;);
+gr-&gt;Surf(&quot;exp(-10*y^2/5-6*x^2)/sqrt(5)&quot;);
+gr-&gt;Text(mglPoint(0.2, 0, 1.2), &quot;z=2&quot;, &quot;&quot;, -2);
+gr-&gt;Label('x',&quot;\\tau&quot;, 0);  gr-&gt;Label('y', &quot;\\rho&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">ranges -1 1 -1 1 0 1:light on
+stickplot 3 0 40 30 : axis 'xyz_'
+fsurf 'exp(-10*y^2-6*x^2)'
+text 0.2 0 1.2 'z=0' '' -2
+stickplot 3 1 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/2-6*x^2)/sqrt(2)'
+text 0.2 0 1.2 'z=1' '' -2
+stickplot 3 2 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/5-6*x^2)/sqrt(5)'
+text 0.2 0 1.2 'z=2' '' -2
+xlabel '\tau' 0 : ylabel '\rho'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">mgl_set_axis_3d(gr, -1, -1, 0, 1, 1, 1);
+mgl_set_light(gr, 1);
+mgl_stickplot(gr, 3, 0, 40, 30);
+mgl_axis(gr, &quot;xyz_&quot;);
+mgl_fsurf(gr,&quot;exp(-10*y^2-6*x^2)&quot;,&quot;&quot;,100);
+mgl_text(gr, 0.2, 0, 1.2, &quot;z=0&quot;);
+mgl_stickplot(gr, 3, 1, 40, 30);
+mgl_axis(gr, &quot;xyz_&quot;);
+mgl_fsurf(gr,&quot;exp(-10*y^2/2-6*x^2)/sqrt(2)&quot;,&quot;&quot;,100);
+mgl_text(gr, 0.2, 0, 1.2, &quot;z=1&quot;);
+mgl_stickplot(gr, 3, 2, 40, 30);
+mgl_axis(gr, &quot;xyz_&quot;);
+mgl_fsurf(gr,&quot;exp(-10*y^2/5-6*x^2)/sqrt(5)&quot;,&quot;&quot;,100);
+mgl_text(gr, 0.2, 0, 1.2, &quot;z=2&quot;);
+mgl_label(gr,'x',&quot;\\tau&quot;);
+mgl_label(gr,'y', &quot;\\rho&quot;);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">gr-&gt;SetRanges(-1, 1, -1, 1, 0, 1);  gr-&gt;Light(true);
+gr-&gt;StickPlot(3, 0, 40, 30);        gr-&gt;Axis(&quot;xyz_&quot;);
+gr-&gt;Surf(&quot;exp(-10*y^2-6*x^2)&quot;);
+gr-&gt;Text(mglPoint(0.2, 0, 1.2), &quot;z=0&quot;, &quot;&quot;, -2);
+gr-&gt;StickPlot(3, 1, 40, 30);        gr-&gt;Axis(&quot;xyz_&quot;);
+gr-&gt;Surf(&quot;exp(-10*y^2/2-6*x^2)/sqrt(2)&quot;);
+gr-&gt;Text(mglPoint(0.2, 0, 1.2), &quot;z=1&quot;, &quot;&quot;, -2);
+gr-&gt;StickPlot(3, 2, 40, 30);        gr-&gt;Axis(&quot;xyz_&quot;);
+gr-&gt;Surf(&quot;exp(-10*y^2/5-6*x^2)/sqrt(5)&quot;);
+gr-&gt;Text(mglPoint(0.2, 0, 1.2), &quot;z=2&quot;, &quot;&quot;, -2);
+gr-&gt;Label('x',&quot;\\tau&quot;, 0);  gr-&gt;Label('y', &quot;\\rho&quot;);
+</pre><hr size="6">
+<a name="Stereo-image-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#StickPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stereo-image-sample-1"></a>
+<h3 class="subsection">9.7.15 Stereo image sample</h3>
+<div class="float">
+<img src="../png/stereo.png" alt="../png/stereo">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Light(true);
+gr-&gt;SubPlot(2,1,0);
+gr-&gt;Rotate(40,60+3);
+gr-&gt;Box();   gr-&gt;Surf(a);
+gr-&gt;SubPlot(2,1,1);
+gr-&gt;Rotate(40,60-3);
+gr-&gt;Box();   gr-&gt;Surf(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+subplot 2 1 0
+rotate 40 60+3
+box:surf a
+subplot 2 1 1
+rotate 40 60-3
+box:surf a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_set_light(gr,1);
+mgl_subplot(gr,2,1,0);
+mgl_rotate(gr,40.,60.+3.,0.);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_subplot(gr,2,1,1);
+mgl_rotate(gr,40.,60.-3.,0.);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_set_light(gr,1)
+call mgl_subplot(gr,2,1,0)
+call mgl_rotate(gr,40.,60.+3.,0.)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_subplot(gr,2,1,1)
+call mgl_rotate(gr,40.,60.-3.,0.)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Light(True);
+gr.SubPlot(2,1,0);
+gr.Rotate(40,60+3);
+gr.Surf(a);  gr.Box();
+gr.SubPlot(2,1,1);
+gr.Rotate(40,60-3);
+gr.Surf(a);  gr.Box();
+</pre>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_abt.html b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_abt.html
new file mode 100644
index 0000000..4eed15e
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_abt.html
@@ -0,0 +1,184 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: About This Document</title>
+
+<meta name="description" content="MathGL 1.11: About This Document">
+<meta name="keywords" content="MathGL 1.11: About This Document">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="SEC_About"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1>About This Document</h1>
+<p>
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+</p>
+<p>
+  The buttons in the navigation panels have the following meaning:
+</p>
+<table border="1">
+  <tr>
+    <th> Button </th>
+    <th> Name </th>
+    <th> Go to </th>
+    <th> From 1.2.3 go to</th>
+  </tr>
+  <tr>
+    <td align="center"> [ &lt; ] </td>
+    <td align="center">Back</td>
+    <td>Previous section in reading order</td>
+    <td>1.2.2</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &gt; ] </td>
+    <td align="center">Forward</td>
+    <td>Next section in reading order</td>
+    <td>1.2.4</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &lt;&lt; ] </td>
+    <td align="center">FastBack</td>
+    <td>Beginning of this chapter or previous chapter</td>
+    <td>1</td>
+  </tr>
+  <tr>
+    <td align="center"> [ Up ] </td>
+    <td align="center">Up</td>
+    <td>Up section</td>
+    <td>1.2</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &gt;&gt; ] </td>
+    <td align="center">FastForward</td>
+    <td>Next chapter</td>
+    <td>2</td>
+  </tr>
+  <tr>
+    <td align="center"> [Top] </td>
+    <td align="center">Top</td>
+    <td>Cover (top) of document</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [Contents] </td>
+    <td align="center">Contents</td>
+    <td>Table of contents</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [Index] </td>
+    <td align="center">Index</td>
+    <td>Index</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [ ? ] </td>
+    <td align="center">About</td>
+    <td>About (help)</td>
+    <td> &nbsp; </td>
+  </tr>
+</table>
+
+<p>
+  where the <strong> Example </strong> assumes that the current position is at <strong> Subsubsection One-Two-Three </strong> of a document of the following structure:
+</p>
+
+<ul>
+  <li> 1. Section One
+    <ul>
+      <li>1.1 Subsection One-One
+        <ul>
+          <li>...</li>
+        </ul>
+      </li>
+      <li>1.2 Subsection One-Two
+        <ul>
+          <li>1.2.1 Subsubsection One-Two-One</li>
+          <li>1.2.2 Subsubsection One-Two-Two</li>
+          <li>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp;
+            <strong>&lt;== Current Position </strong></li>
+          <li>1.2.4 Subsubsection One-Two-Four</li>
+        </ul>
+      </li>
+      <li>1.3 Subsection One-Three
+        <ul>
+          <li>...</li>
+        </ul>
+      </li>
+      <li>1.4 Subsection One-Four</li>
+    </ul>
+  </li>
+</ul>
+
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_toc.html b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_toc.html
new file mode 100644
index 0000000..c519c66
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_en.html/mathgl_en_toc.html
@@ -0,0 +1,484 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: Table of Contents</title>
+
+<meta name="description" content="MathGL 1.11: Table of Contents">
+<meta name="keywords" content="MathGL 1.11: Table of Contents">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="SEC_Contents"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1>Table of Contents</h1>
+<div class="contents">
+
+<ul class="toc">
+  <li><a name="toc-Overview-1" href="mathgl_en_1.html#Overview">1. Overview</a>
+  <ul class="toc">
+    <li><a name="toc-Why-have-I-written-MathGL_003f-1" href="mathgl_en_1.html#Why-have-I-written-MathGL_003f">1.1 Why have I written MathGL?</a></li>
+    <li><a name="toc-MathGL-features-1" href="mathgl_en_1.html#MathGL-features">1.2 MathGL features</a></li>
+    <li><a name="toc-Installation-and-usage-1" href="mathgl_en_1.html#Installation-and-usage">1.3 Installation and usage</a></li>
+    <li><a name="toc-General-concepts-1" href="mathgl_en_1.html#General-concepts">1.4 General concepts</a>
+    <ul class="toc">
+      <li><a name="toc-Coordinate-axes-1" href="mathgl_en_1.html#Coordinate-axes">1.4.1 Coordinate axes</a></li>
+      <li><a name="toc-Line-styles-1" href="mathgl_en_1.html#Line-styles">1.4.2 Line styles</a></li>
+      <li><a name="toc-Color-scheme-1" href="mathgl_en_1.html#Color-scheme">1.4.3 Color scheme</a></li>
+      <li><a name="toc-Font-styles-1" href="mathgl_en_1.html#Font-styles">1.4.4 Font styles</a></li>
+      <li><a name="toc-Textual-formulas-1" href="mathgl_en_1.html#Textual-formulas">1.4.5 Textual formulas</a></li>
+    </ul></li>
+    <li><a name="toc-FAQ-1" href="mathgl_en_1.html#FAQ">1.5 FAQ</a></li>
+    <li><a name="toc-Interfaces-1" href="mathgl_en_1.html#Interfaces">1.6 Interfaces</a>
+    <ul class="toc">
+      <li><a name="toc-C-interface-1" href="mathgl_en_1.html#C-interface">1.6.1 C interface</a></li>
+      <li><a name="toc-Python-interface-1" href="mathgl_en_1.html#Python-interface">1.6.2 Python interface</a></li>
+    </ul></li>
+    <li><a name="toc-Thanks-1" href="mathgl_en_1.html#Thanks">1.7 Thanks</a></li>
+  </ul></li>
+  <li><a name="toc-MathGL-examples" href="mathgl_en_2.html#Examples">2. MathGL examples</a>
+  <ul class="toc">
+    <li><a name="toc-Basic-usage-1" href="mathgl_en_2.html#Basic-usage">2.1 Basic usage</a>
+    <ul class="toc">
+      <li><a name="toc-Using-FLTK_002fQt_002fGLUT-window" href="mathgl_en_2.html#Using-FLTK_002fGLUT-window">2.1.1 Using FLTK/Qt/GLUT window</a></li>
+      <li><a name="toc-Drawing-to-file-1" href="mathgl_en_2.html#Drawing-to-file">2.1.2 Drawing to file</a></li>
+      <li><a name="toc-Drawing-in-memory-1" href="mathgl_en_2.html#Drawing-in-memory">2.1.3 Drawing in memory</a></li>
+      <li><a name="toc-Using-QMathGL-1" href="mathgl_en_2.html#Using-QMathGL">2.1.4 Using QMathGL</a></li>
+    </ul></li>
+    <li><a name="toc-Advanced-usage-1" href="mathgl_en_2.html#Advanced-usage">2.2 Advanced usage</a>
+    <ul class="toc">
+      <li><a name="toc-Subplots-1" href="mathgl_en_2.html#Subplots">2.2.1 Subplots</a></li>
+      <li><a name="toc-Axis-and-grids-1" href="mathgl_en_2.html#Axis-and-grids">2.2.2 Axis and grids</a></li>
+      <li><a name="toc-Curvilinear-coordinates-1" href="mathgl_en_2.html#Curvilinear-coordinates">2.2.3 Curvilinear coordinates</a></li>
+      <li><a name="toc-Text-printing-example-1" href="mathgl_en_2.html#Text-printing-example">2.2.4 Text printing example</a></li>
+      <li><a name="toc-Animation-1" href="mathgl_en_2.html#Animation">2.2.5 Animation</a></li>
+    </ul></li>
+    <li><a name="toc-Data-handling-1" href="mathgl_en_2.html#Data-handling">2.3 Data handling</a>
+    <ul class="toc">
+      <li><a name="toc-Array-creation-1" href="mathgl_en_2.html#Array-creation">2.3.1 Array creation</a></li>
+      <li><a name="toc-Data-changing-1" href="mathgl_en_2.html#Data-changing">2.3.2 Data changing</a></li>
+    </ul></li>
+    <li><a name="toc-Data-plotting-1" href="mathgl_en_2.html#Data-plotting">2.4 Data plotting</a>
+    <ul class="toc">
+      <li><a name="toc-Plots-for-1D-data-1" href="mathgl_en_2.html#Plots-for-1D-data">2.4.1 Plots for 1D data</a></li>
+      <li><a name="toc-Plots-for-2D-data-1" href="mathgl_en_2.html#Plots-for-2D-data">2.4.2 Plots for 2D data</a></li>
+      <li><a name="toc-Plots-for-3D-data-1" href="mathgl_en_2.html#Plots-for-3D-data">2.4.3 Plots for 3D data</a></li>
+      <li><a name="toc-Surface-transparency-1" href="mathgl_en_2.html#Surface-transparency">2.4.4 Surface transparency</a></li>
+    </ul></li>
+    <li><a name="toc-C_002fFortran-interface-1" href="mathgl_en_2.html#C_002fFortran-interface">2.5 C/Fortran interface</a></li>
+    <li><a name="toc-MathGL-and-PyQt-1" href="mathgl_en_2.html#MathGL-and-PyQt">2.6 MathGL and PyQt</a></li>
+    <li><a name="toc-Hints-1" href="mathgl_en_2.html#Hints">2.7 Hints</a>
+    <ul class="toc">
+      <li><a name="toc-_0060_0060Compound_0027_0027-graphics-1" href="mathgl_en_2.html#g_t_0060_0060Compound_0027_0027-graphics">2.7.1 &ldquo;Compound&rdquo; graphics</a></li>
+      <li><a name="toc-Two-axes-in-one-plot-1" href="mathgl_en_2.html#Two-axes-in-one-plot">2.7.2 Two axes in one plot</a></li>
+      <li><a name="toc-Titles-for-the-plot-1" href="mathgl_en_2.html#Titles-for-the-plot">2.7.3 Titles for the plot</a></li>
+      <li><a name="toc-Changing-of-the-color-range-1" href="mathgl_en_2.html#Changing-of-the-color-range">2.7.4 Changing of the color range</a></li>
+      <li><a name="toc-Management-of-a-point-cutting-1" href="mathgl_en_2.html#Management-of-a-point-cutting">2.7.5 Management of a point cutting</a></li>
+      <li><a name="toc-Vector-field-visualization-1" href="mathgl_en_2.html#Vector-field-visualization">2.7.6 Vector field visualization</a></li>
+      <li><a name="toc-Several-light-sources-1" href="mathgl_en_2.html#Several-light-sources">2.7.7 Several light sources</a></li>
+      <li><a name="toc-CutMin-and-CutMax-features-1" href="mathgl_en_2.html#CutMin-and-CutMax-features">2.7.8 CutMin and CutMax features</a></li>
+      <li><a name="toc-Mapping-visualization-1" href="mathgl_en_2.html#Mapping-visualization">2.7.9 Mapping visualization</a></li>
+      <li><a name="toc-Log_002dscaled-plot-1" href="mathgl_en_2.html#Log_002dscaled-plot">2.7.10 Log-scaled plot</a></li>
+      <li><a name="toc-_0060_0060Templates_0027_0027-1" href="mathgl_en_2.html#g_t_0060_0060Templates_0027_0027">2.7.11 &ldquo;Templates&rdquo;</a></li>
+      <li><a name="toc-Nonlinear-fitting-hints-1" href="mathgl_en_2.html#Nonlinear-fitting-hints">2.7.12 Nonlinear fitting hints</a></li>
+      <li><a name="toc-PDE-solving-hints-1" href="mathgl_en_2.html#PDE-solving-hints">2.7.13 PDE solving hints</a></li>
+      <li><a name="toc-MGL-parser-using-1" href="mathgl_en_2.html#MGL-parser-using">2.7.14 MGL parser using</a></li>
+      <li><a name="toc-Stereo-image-1" href="mathgl_en_2.html#Stereo-image">2.7.15 Stereo image</a></li>
+    </ul>
+</li>
+  </ul></li>
+  <li><a name="toc-MathGL-core-1" href="mathgl_en_3.html#MathGL-core">3. MathGL core</a>
+  <ul class="toc">
+    <li><a name="toc-Graphics-setup-1" href="mathgl_en_3.html#Graphics-setup">3.1 Graphics setup</a>
+    <ul class="toc">
+      <li><a name="toc-Transparency-1" href="mathgl_en_3.html#Transparency">3.1.1 Transparency</a></li>
+      <li><a name="toc-Lighting-1" href="mathgl_en_3.html#Lighting">3.1.2 Lighting</a></li>
+      <li><a name="toc-Fog-1" href="mathgl_en_3.html#Fog">3.1.3 Fog</a></li>
+      <li><a name="toc-Default-sizes-1" href="mathgl_en_3.html#Default-sizes">3.1.4 Default sizes</a></li>
+      <li><a name="toc-Zooming-1" href="mathgl_en_3.html#Zooming">3.1.5 Zooming</a></li>
+      <li><a name="toc-Cutting-1" href="mathgl_en_3.html#Cutting">3.1.6 Cutting</a></li>
+      <li><a name="toc-Font-settings-1" href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></li>
+      <li><a name="toc-Pallete-and-colors" href="mathgl_en_3.html#Palette-and-colors">3.1.8 Pallete and colors</a></li>
+      <li><a name="toc-Error-handling-1" href="mathgl_en_3.html#Error-handling">3.1.9 Error handling</a></li>
+      <li><a name="toc-Other-settings-1" href="mathgl_en_3.html#Other-settings">3.1.10 Other settings</a></li>
+    </ul></li>
+    <li><a name="toc-Axis-settings-1" href="mathgl_en_3.html#Axis-settings">3.2 Axis settings</a>
+    <ul class="toc">
+      <li><a name="toc-Ranges-_0028bounding-box_0029-1" href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></li>
+      <li><a name="toc-Curved-coordinates-1" href="mathgl_en_3.html#Curved-coordinates">3.2.2 Curved coordinates</a></li>
+      <li><a name="toc-Ticks-1" href="mathgl_en_3.html#Ticks">3.2.3 Ticks</a></li>
+    </ul></li>
+    <li><a name="toc-Transformation-matrix-1" href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></li>
+    <li><a name="toc-Export-to-file-1" href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></li>
+    <li><a name="toc-Primitives-drawing-2" href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></li>
+    <li><a name="toc-Text-printing-1" href="mathgl_en_3.html#Text-printing">3.6 Text printing</a></li>
+    <li><a name="toc-Axis-and-Colorbar-1" href="mathgl_en_3.html#Axis-and-Colorbar">3.7 Axis and Colorbar</a></li>
+    <li><a name="toc-Legend-1" href="mathgl_en_3.html#Legend">3.8 Legend</a></li>
+    <li><a name="toc-1D-plotting-1" href="mathgl_en_3.html#g_t1D-plotting">3.9 1D plotting</a>
+    <ul class="toc">
+      <li><a name="toc-Plot-1" href="mathgl_en_3.html#Plot">3.9.1 Plot</a></li>
+      <li><a name="toc-Radar-1" href="mathgl_en_3.html#Radar">3.9.2 Radar</a></li>
+      <li><a name="toc-Tens-1" href="mathgl_en_3.html#Tens">3.9.3 Tens</a></li>
+      <li><a name="toc-Area-1" href="mathgl_en_3.html#Area">3.9.4 Area</a></li>
+      <li><a name="toc-Region-1" href="mathgl_en_3.html#Region">3.9.5 Region</a></li>
+      <li><a name="toc-Stem-1" href="mathgl_en_3.html#Stem">3.9.6 Stem</a></li>
+      <li><a name="toc-Bars-1" href="mathgl_en_3.html#Bars">3.9.7 Bars</a></li>
+      <li><a name="toc-Barh-1" href="mathgl_en_3.html#Barh">3.9.8 Barh</a></li>
+      <li><a name="toc-Chart-1" href="mathgl_en_3.html#Chart">3.9.9 Chart</a></li>
+      <li><a name="toc-Step-1" href="mathgl_en_3.html#Step">3.9.10 Step</a></li>
+      <li><a name="toc-Torus-1" href="mathgl_en_3.html#Torus">3.9.11 Torus</a></li>
+      <li><a name="toc-Tube-1" href="mathgl_en_3.html#Tube">3.9.12 Tube</a></li>
+      <li><a name="toc-Mark-1" href="mathgl_en_3.html#Mark">3.9.13 Mark</a></li>
+      <li><a name="toc-TextMark-1" href="mathgl_en_3.html#TextMark">3.9.14 TextMark</a></li>
+      <li><a name="toc-Error-1" href="mathgl_en_3.html#Error">3.9.15 Error</a></li>
+      <li><a name="toc-BoxPlot-1" href="mathgl_en_3.html#BoxPlot">3.9.16 BoxPlot</a></li>
+    </ul></li>
+    <li><a name="toc-2D-plotting-1" href="mathgl_en_3.html#g_t2D-plotting">3.10 2D plotting</a>
+    <ul class="toc">
+      <li><a name="toc-Mesh-1" href="mathgl_en_3.html#Mesh">3.10.1 Mesh</a></li>
+      <li><a name="toc-Fall-1" href="mathgl_en_3.html#Fall">3.10.2 Fall</a></li>
+      <li><a name="toc-Belt-1" href="mathgl_en_3.html#Belt">3.10.3 Belt</a></li>
+      <li><a name="toc-Surf-1" href="mathgl_en_3.html#Surf">3.10.4 Surf</a></li>
+      <li><a name="toc-Boxs-1" href="mathgl_en_3.html#Boxs">3.10.5 Boxs</a></li>
+      <li><a name="toc-Tile-1" href="mathgl_en_3.html#Tile">3.10.6 Tile</a></li>
+      <li><a name="toc-Dens-1" href="mathgl_en_3.html#Dens">3.10.7 Dens</a></li>
+      <li><a name="toc-Cont-1" href="mathgl_en_3.html#Cont">3.10.8 Cont</a></li>
+      <li><a name="toc-ContF-1" href="mathgl_en_3.html#ContF">3.10.9 ContF</a></li>
+      <li><a name="toc-ContD-1" href="mathgl_en_3.html#ContD">3.10.10 ContD</a></li>
+      <li><a name="toc-Axial-1" href="mathgl_en_3.html#Axial">3.10.11 Axial</a></li>
+      <li><a name="toc-Grad-1" href="mathgl_en_3.html#Grad">3.10.12 Grad</a></li>
+      <li><a name="toc-Grid-1" href="mathgl_en_3.html#Grid">3.10.13 Grid</a></li>
+    </ul></li>
+    <li><a name="toc-3D-plotting-1" href="mathgl_en_3.html#g_t3D-plotting">3.11 3D plotting</a>
+    <ul class="toc">
+      <li><a name="toc-Surf3-1" href="mathgl_en_3.html#Surf3">3.11.1 Surf3</a></li>
+      <li><a name="toc-Dens3-1" href="mathgl_en_3.html#Dens3">3.11.2 Dens3</a></li>
+      <li><a name="toc-Cont3-1" href="mathgl_en_3.html#Cont3">3.11.3 Cont3</a></li>
+      <li><a name="toc-ContF3-1" href="mathgl_en_3.html#ContF3">3.11.4 ContF3</a></li>
+      <li><a name="toc-Grid3-1" href="mathgl_en_3.html#Grid3">3.11.5 Grid3</a></li>
+      <li><a name="toc-Cloud-1" href="mathgl_en_3.html#Cloud">3.11.6 Cloud</a></li>
+      <li><a name="toc-Beam-1" href="mathgl_en_3.html#Beam">3.11.7 Beam</a></li>
+    </ul></li>
+    <li><a name="toc-Dual-plotting-1" href="mathgl_en_3.html#Dual-plotting">3.12 Dual plotting</a>
+    <ul class="toc">
+      <li><a name="toc-SurfC-1" href="mathgl_en_3.html#SurfC">3.12.1 SurfC</a></li>
+      <li><a name="toc-Surf3C-1" href="mathgl_en_3.html#Surf3C">3.12.2 Surf3C</a></li>
+      <li><a name="toc-SurfA-1" href="mathgl_en_3.html#SurfA">3.12.3 SurfA</a></li>
+      <li><a name="toc-Surf3A-1" href="mathgl_en_3.html#Surf3A">3.12.4 Surf3A</a></li>
+      <li><a name="toc-TileS-1" href="mathgl_en_3.html#TileS">3.12.5 TileS</a></li>
+      <li><a name="toc-Map-1" href="mathgl_en_3.html#Map">3.12.6 Map</a></li>
+      <li><a name="toc-STFA-1" href="mathgl_en_3.html#STFA">3.12.7 STFA</a></li>
+    </ul></li>
+    <li><a name="toc-Vector-fields-1" href="mathgl_en_3.html#Vector-fields">3.13 Vector fields</a>
+    <ul class="toc">
+      <li><a name="toc-Traj-1" href="mathgl_en_3.html#Traj">3.13.1 Traj</a></li>
+      <li><a name="toc-Vect-1" href="mathgl_en_3.html#Vect">3.13.2 Vect</a></li>
+      <li><a name="toc-VectL-1" href="mathgl_en_3.html#VectL">3.13.3 VectL</a></li>
+      <li><a name="toc-VectC-1" href="mathgl_en_3.html#VectC">3.13.4 VectC</a></li>
+      <li><a name="toc-Dew-1" href="mathgl_en_3.html#Dew">3.13.5 Dew</a></li>
+      <li><a name="toc-Flow-1" href="mathgl_en_3.html#Flow">3.13.6 Flow</a></li>
+      <li><a name="toc-FlowP-1" href="mathgl_en_3.html#FlowP">3.13.7 FlowP</a></li>
+      <li><a name="toc-Pipe-1" href="mathgl_en_3.html#Pipe">3.13.8 Pipe</a></li>
+    </ul></li>
+    <li><a name="toc-Other-plotting-1" href="mathgl_en_3.html#Other-plotting">3.14 Other plotting</a>
+    <ul class="toc">
+      <li><a name="toc-DensXYZ-1" href="mathgl_en_3.html#DensXYZ">3.14.1 DensXYZ</a></li>
+      <li><a name="toc-ContXYZ-1" href="mathgl_en_3.html#ContXYZ">3.14.2 ContXYZ</a></li>
+      <li><a name="toc-ContFXYZ-1" href="mathgl_en_3.html#ContFXYZ">3.14.3 ContFXYZ</a></li>
+      <li><a name="toc-Dots-1" href="mathgl_en_3.html#Dots">3.14.4 Dots</a></li>
+      <li><a name="toc-Crust-1" href="mathgl_en_3.html#Crust">3.14.5 Crust</a></li>
+      <li><a name="toc-TriPlot-1" href="mathgl_en_3.html#TriPlot">3.14.6 TriPlot</a></li>
+      <li><a name="toc-TriCont-1" href="mathgl_en_3.html#TriCont">3.14.7 TriCont</a></li>
+      <li><a name="toc-QuadPlot-1" href="mathgl_en_3.html#QuadPlot">3.14.8 QuadPlot</a></li>
+      <li><a name="toc-Plots-by-formula-1" href="mathgl_en_3.html#Plots-by-formula">3.14.9 Plots by formula</a></li>
+      <li><a name="toc-SimplePlot-1" href="mathgl_en_3.html#SimplePlot">3.14.10 SimplePlot</a></li>
+    </ul></li>
+    <li><a name="toc-Nonlinear-fitting-1" href="mathgl_en_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></li>
+    <li><a name="toc-Data-distributions-1" href="mathgl_en_3.html#Data-distributions">3.16 Data distributions</a></li>
+    <li><a name="toc-Frames_002fAnimation-1" href="mathgl_en_3.html#Frames_002fAnimation">3.17 Frames/Animation</a></li>
+    <li><a name="toc-IDTF-functions-1" href="mathgl_en_3.html#IDTF-functions">3.18 IDTF functions</a></li>
+  </ul></li>
+  <li><a name="toc-Plotter-classes-1" href="mathgl_en_4.html#Plotter-classes">4. Plotter classes</a>
+  <ul class="toc">
+    <li><a name="toc-mglGraphAB-class-1" href="mathgl_en_4.html#mglGraphAB-class">4.1 mglGraphAB class</a></li>
+  </ul></li>
+  <li><a name="toc-Widget-classes-1" href="mathgl_en_5.html#Widget-classes">5. Widget classes</a>
+  <ul class="toc">
+    <li><a name="toc-Fl_005fMathGL-class-1" href="mathgl_en_5.html#Fl_005fMathGL-class">5.1 Fl_MathGL class</a></li>
+    <li><a name="toc-QMathGL-class-1" href="mathgl_en_5.html#QMathGL-class">5.2 QMathGL class</a></li>
+  </ul></li>
+  <li><a name="toc-mglData-class-1" href="mathgl_en_6.html#mglData-class">6. mglData class</a>
+  <ul class="toc">
+    <li><a name="toc-Public-variables-1" href="mathgl_en_6.html#Public-variables">6.1 Public variables</a></li>
+    <li><a name="toc-Create-and-delete-1" href="mathgl_en_6.html#Create-and-delete">6.2 Create and delete</a></li>
+    <li><a name="toc-Fill-1" href="mathgl_en_6.html#Fill">6.3 Fill</a></li>
+    <li><a name="toc-Rearrange-1" href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></li>
+    <li><a name="toc-File-I_002fO-1" href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></li>
+    <li><a name="toc-Make-another-data-1" href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></li>
+    <li><a name="toc-Change-data-1" href="mathgl_en_6.html#Change-data">6.7 Change data</a></li>
+    <li><a name="toc-Interpolation-1" href="mathgl_en_6.html#Interpolation">6.8 Interpolation</a></li>
+    <li><a name="toc-Informational-functions-1" href="mathgl_en_6.html#Informational-functions">6.9 Informational functions</a></li>
+    <li><a name="toc-Operators-1" href="mathgl_en_6.html#Operators">6.10 Operators</a></li>
+    <li><a name="toc-Global-functions-1" href="mathgl_en_6.html#Global-functions">6.11 Global functions</a></li>
+  </ul></li>
+  <li><a name="toc-Other-classes-1" href="mathgl_en_7.html#Other-classes">7. Other classes</a>
+  <ul class="toc">
+    <li><a name="toc-mglParse-class-1" href="mathgl_en_7.html#mglParse-class">7.1 mglParse class</a></li>
+    <li><a name="toc-mglFormula-class-1" href="mathgl_en_7.html#mglFormula-class">7.2 mglFormula class</a></li>
+    <li><a name="toc-mglFont-class-1" href="mathgl_en_7.html#mglFont-class">7.3 mglFont class</a>
+    <ul class="toc">
+      <li><a name="toc-Format-of-font-files-1" href="mathgl_en_7.html#Format-of-font-files">7.3.1 Format of font files</a></li>
+    </ul></li>
+    <li><a name="toc-mglColor-class-1" href="mathgl_en_7.html#mglColor-class">7.4 mglColor class</a></li>
+    <li><a name="toc-mglPoint-class-1" href="mathgl_en_7.html#mglPoint-class">7.5 mglPoint class</a></li>
+    <li><a name="toc-mglVar-class-1" href="mathgl_en_7.html#mglVar-class">7.6 mglVar class</a></li>
+    <li><a name="toc-mglCommand-class-1" href="mathgl_en_7.html#mglCommand-class">7.7 mglCommand class</a></li>
+    <li><a name="toc-mglArg-class-1" href="mathgl_en_7.html#mglArg-class">7.8 mglArg class</a></li>
+  </ul></li>
+  <li><a name="toc-MGL-language" href="mathgl_en_8.html#MGL-interface">8. MGL language</a>
+  <ul class="toc">
+    <li><a name="toc-Graphics-setup-_0028MGL_0029-1" href="mathgl_en_8.html#Graphics-setup-_0028MGL_0029">8.1 Graphics setup (MGL)</a>
+    <ul class="toc">
+      <li><a name="toc-Transparency-_0028MGL_0029-1" href="mathgl_en_8.html#Transparency-_0028MGL_0029">8.1.1 Transparency (MGL)</a></li>
+      <li><a name="toc-Lighting-_0028MGL_0029-1" href="mathgl_en_8.html#Lighting-_0028MGL_0029">8.1.2 Lighting (MGL)</a></li>
+      <li><a name="toc-Fog-_0028MGL_0029-1" href="mathgl_en_8.html#Fog-_0028MGL_0029">8.1.3 Fog (MGL)</a></li>
+      <li><a name="toc-Default-sizes-_0028MGL_0029-1" href="mathgl_en_8.html#Default-sizes-_0028MGL_0029">8.1.4 Default sizes (MGL)</a></li>
+      <li><a name="toc-Zooming-_0028MGL_0029-1" href="mathgl_en_8.html#Zooming-_0028MGL_0029">8.1.5 Zooming (MGL)</a></li>
+      <li><a name="toc-Cutting-_0028MGL_0029-1" href="mathgl_en_8.html#Cutting-_0028MGL_0029">8.1.6 Cutting (MGL)</a></li>
+      <li><a name="toc-Other-settings-_0028MGL_0029-1" href="mathgl_en_8.html#Other-settings-_0028MGL_0029">8.1.7 Other settings (MGL)</a></li>
+    </ul></li>
+    <li><a name="toc-Axis-settings-_0028MGL_0029-1" href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></li>
+    <li><a name="toc-Transformation-matrix-_0028MGL_0029-1" href="mathgl_en_8.html#Transformation-matrix-_0028MGL_0029">8.3 Transformation matrix (MGL)</a></li>
+    <li><a name="toc-Export-to-file-_0028MGL_0029-1" href="mathgl_en_8.html#Export-to-file-_0028MGL_0029">8.4 Export to file (MGL)</a></li>
+    <li><a name="toc-Primitives-drawing-1" href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></li>
+    <li><a name="toc-Text-printing-_0028MGL_0029-1" href="mathgl_en_8.html#Text-printing-_0028MGL_0029">8.6 Text printing (MGL)</a></li>
+    <li><a name="toc-Axis-and-Colorbar-_0028MGL_0029-1" href="mathgl_en_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></li>
+    <li><a name="toc-Legend-_0028MGL_0029-1" href="mathgl_en_8.html#Legend-_0028MGL_0029">8.8 Legend (MGL)</a></li>
+    <li><a name="toc-1D-plotting-_0028MGL_0029-1" href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></li>
+    <li><a name="toc-2D-plotting-_0028MGL_0029-1" href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></li>
+    <li><a name="toc-3D-plotting-_0028MGL_0029-1" href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></li>
+    <li><a name="toc-Dual-plotting-_0028MGL_0029-1" href="mathgl_en_8.html#Dual-plotting-_0028MGL_0029">8.12 Dual plotting (MGL)</a></li>
+    <li><a name="toc-Vector-fields-_0028MGL_0029-1" href="mathgl_en_8.html#Vector-fields-_0028MGL_0029">8.13 Vector fields (MGL)</a></li>
+    <li><a name="toc-Other-plotting-_0028MGL_0029-1" href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></li>
+    <li><a name="toc-Nonlinear-fitting-_0028MGL_0029-1" href="mathgl_en_8.html#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></li>
+    <li><a name="toc-Data-create-_0028MGL_0029-1" href="mathgl_en_8.html#Data-create-_0028MGL_0029">8.16 Data create (MGL)</a></li>
+    <li><a name="toc-Data-filling-_0028MGL_0029-1" href="mathgl_en_8.html#Data-filling-_0028MGL_0029">8.17 Data filling (MGL)</a></li>
+    <li><a name="toc-Rearrange-data-_0028MGL_0029-1" href="mathgl_en_8.html#Rearrange-data-_0028MGL_0029">8.18 Rearrange data (MGL)</a></li>
+    <li><a name="toc-File-I_002fO-_0028MGL_0029-1" href="mathgl_en_8.html#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></li>
+    <li><a name="toc-Make-another-data-_0028MGL_0029-1" href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></li>
+    <li><a name="toc-Change-data-_0028MGL_0029-1" href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></li>
+    <li><a name="toc-Operators-_0028MGL_0029-1" href="mathgl_en_8.html#Operators-_0028MGL_0029">8.22 Operators (MGL)</a></li>
+    <li><a name="toc-Program-flow-_0028MGL_0029-1" href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></li>
+    <li><a name="toc-Command-options-_0028MGL_0029-1" href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></li>
+    <li><a name="toc-Suffixes-for-variable" href="mathgl_en_8.html#Suffixes">8.25 Suffixes for variable</a></li>
+    <li><a name="toc-Utilities-for-parsing-MGL" href="mathgl_en_8.html#Utilities">8.26 Utilities for parsing MGL</a></li>
+  </ul></li>
+  <li><a name="toc-Samples-1" href="mathgl_en_9.html#Samples">9. Samples</a>
+  <ul class="toc">
+    <li><a name="toc-1D-plotting-samples-1" href="mathgl_en_9.html#g_t1D-plotting-samples">9.1 1D plotting samples</a>
+    <ul class="toc">
+      <li><a name="toc-Plot-sample-1" href="mathgl_en_9.html#Plot-sample">9.1.1 Plot sample</a></li>
+      <li><a name="toc-Radar-sample-1" href="mathgl_en_9.html#Radar-sample">9.1.2 Radar sample</a></li>
+      <li><a name="toc-Tens-sample-1" href="mathgl_en_9.html#Tens-sample">9.1.3 Tens sample</a></li>
+      <li><a name="toc-Area-sample-1" href="mathgl_en_9.html#Area-sample">9.1.4 Area sample</a></li>
+      <li><a name="toc-Area-with-gradient-filling-sample" href="mathgl_en_9.html#Area-gradient-sample">9.1.5 Area with gradient filling sample</a></li>
+      <li><a name="toc-Bars-sample-1" href="mathgl_en_9.html#Bars-sample">9.1.6 Bars sample</a></li>
+      <li><a name="toc-Bars-2-colors-sample-1" href="mathgl_en_9.html#Bars-2-colors-sample">9.1.7 Bars 2 colors sample</a></li>
+      <li><a name="toc-Bars-above-sample-1" href="mathgl_en_9.html#Bars-above-sample">9.1.8 Bars above sample</a></li>
+      <li><a name="toc-Bars-fall-sample-1" href="mathgl_en_9.html#Bars-fall-sample">9.1.9 Bars fall sample</a></li>
+      <li><a name="toc-Barh-sample-1" href="mathgl_en_9.html#Barh-sample">9.1.10 Barh sample</a></li>
+      <li><a name="toc-Step-sample-1" href="mathgl_en_9.html#Step-sample">9.1.11 Step sample</a></li>
+      <li><a name="toc-Stem-sample-1" href="mathgl_en_9.html#Stem-sample">9.1.12 Stem sample</a></li>
+      <li><a name="toc-Region-sample-1" href="mathgl_en_9.html#Region-sample">9.1.13 Region sample</a></li>
+      <li><a name="toc-Region-gradient-sample-1" href="mathgl_en_9.html#Region-gradient-sample">9.1.14 Region gradient sample</a></li>
+      <li><a name="toc-Error-sample-1" href="mathgl_en_9.html#Error-sample">9.1.15 Error sample</a></li>
+      <li><a name="toc-BoxPlot-sample-1" href="mathgl_en_9.html#BoxPlot-sample">9.1.16 BoxPlot sample</a></li>
+      <li><a name="toc-Mark-sample-1" href="mathgl_en_9.html#Mark-sample">9.1.17 Mark sample</a></li>
+      <li><a name="toc-TextMark-sample-1" href="mathgl_en_9.html#TextMark-sample">9.1.18 TextMark sample</a></li>
+      <li><a name="toc-Tube-sample-1" href="mathgl_en_9.html#Tube-sample">9.1.19 Tube sample</a></li>
+      <li><a name="toc-Text-sample-1" href="mathgl_en_9.html#Text-sample">9.1.20 Text sample</a></li>
+      <li><a name="toc-Torus-sample-1" href="mathgl_en_9.html#Torus-sample">9.1.21 Torus sample</a></li>
+      <li><a name="toc-Chart-sample-1" href="mathgl_en_9.html#Chart-sample">9.1.22 Chart sample</a></li>
+      <li><a name="toc-Pie-chart-sample-1" href="mathgl_en_9.html#Pie-chart-sample">9.1.23 Pie chart sample</a></li>
+      <li><a name="toc-Ring-chart-sample-1" href="mathgl_en_9.html#Ring-chart-sample">9.1.24 Ring chart sample</a></li>
+    </ul></li>
+    <li><a name="toc-2D-plotting-samples-1" href="mathgl_en_9.html#g_t2D-plotting-samples">9.2 2D plotting samples</a>
+    <ul class="toc">
+      <li><a name="toc-Surf-sample-1" href="mathgl_en_9.html#Surf-sample">9.2.1 Surf sample</a></li>
+      <li><a name="toc-Transparent-surface-sample-1" href="mathgl_en_9.html#Transparent-surface-sample">9.2.2 Transparent surface sample</a></li>
+      <li><a name="toc-Surface-in-fog-sample-1" href="mathgl_en_9.html#Surface-in-fog-sample">9.2.3 Surface in fog sample</a></li>
+      <li><a name="toc-Sharp-colors-sample-1" href="mathgl_en_9.html#Sharp-colors-sample">9.2.4 Sharp colors sample</a></li>
+      <li><a name="toc-Mesh-sample-1" href="mathgl_en_9.html#Mesh-sample">9.2.5 Mesh sample</a></li>
+      <li><a name="toc-Fall-sample-1" href="mathgl_en_9.html#Fall-sample">9.2.6 Fall sample</a></li>
+      <li><a name="toc-Belt-sample-1" href="mathgl_en_9.html#Belt-sample">9.2.7 Belt sample</a></li>
+      <li><a name="toc-Tile-sample-1" href="mathgl_en_9.html#Tile-sample">9.2.8 Tile sample</a></li>
+      <li><a name="toc-Boxs-sample-1" href="mathgl_en_9.html#Boxs-sample">9.2.9 Boxs sample</a></li>
+      <li><a name="toc-Dens-sample-1" href="mathgl_en_9.html#Dens-sample">9.2.10 Dens sample</a></li>
+      <li><a name="toc-Cont-sample-1" href="mathgl_en_9.html#Cont-sample">9.2.11 Cont sample</a></li>
+      <li><a name="toc-ContF-sample-1" href="mathgl_en_9.html#ContF-sample">9.2.12 ContF sample</a></li>
+      <li><a name="toc-ContD-sample-1" href="mathgl_en_9.html#ContD-sample">9.2.13 ContD sample</a></li>
+      <li><a name="toc-Axial-sample-1" href="mathgl_en_9.html#Axial-sample">9.2.14 Axial sample</a></li>
+      <li><a name="toc-Grad-sample-1" href="mathgl_en_9.html#Grad-sample">9.2.15 Grad sample</a></li>
+    </ul></li>
+    <li><a name="toc-3D-plotting-samples-1" href="mathgl_en_9.html#g_t3D-plotting-samples">9.3 3D plotting samples</a>
+    <ul class="toc">
+      <li><a name="toc-Surf3-sample-1" href="mathgl_en_9.html#Surf3-sample">9.3.1 Surf3 sample</a></li>
+      <li><a name="toc-Cloud-sample-1" href="mathgl_en_9.html#Cloud-sample">9.3.2 Cloud sample</a></li>
+      <li><a name="toc-CloudP-sample-1" href="mathgl_en_9.html#CloudP-sample">9.3.3 CloudP sample</a></li>
+      <li><a name="toc-Dens3-sample-1" href="mathgl_en_9.html#Dens3-sample">9.3.4 Dens3 sample</a></li>
+      <li><a name="toc-Cont3-sample-1" href="mathgl_en_9.html#Cont3-sample">9.3.5 Cont3 sample</a></li>
+      <li><a name="toc-ContF3-sample-1" href="mathgl_en_9.html#ContF3-sample">9.3.6 ContF3 sample</a></li>
+      <li><a name="toc-Cont-projection-sample-1" href="mathgl_en_9.html#Cont-projection-sample">9.3.7 Cont projection sample</a></li>
+      <li><a name="toc-Dens-projection-sample-1" href="mathgl_en_9.html#Dens-projection-sample">9.3.8 Dens projection sample</a></li>
+      <li><a name="toc-CutMinMax-sample-1" href="mathgl_en_9.html#CutMinMax-sample">9.3.9 CutMinMax sample</a></li>
+      <li><a name="toc-_0060_0060Isocaps_0027_0027-sample" href="mathgl_en_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; sample</a></li>
+      <li><a name="toc-CutOff-sample-1" href="mathgl_en_9.html#CutOff-sample">9.3.11 CutOff sample</a></li>
+    </ul></li>
+    <li><a name="toc-Dual-plotting-samples-1" href="mathgl_en_9.html#Dual-plotting-samples">9.4 Dual plotting samples</a>
+    <ul class="toc">
+      <li><a name="toc-SurfC-sample-1" href="mathgl_en_9.html#SurfC-sample">9.4.1 SurfC sample</a></li>
+      <li><a name="toc-SurfA-sample-1" href="mathgl_en_9.html#SurfA-sample">9.4.2 SurfA sample</a></li>
+      <li><a name="toc-TileS-sample-1" href="mathgl_en_9.html#TileS-sample">9.4.3 TileS sample</a></li>
+      <li><a name="toc-Map-sample-1" href="mathgl_en_9.html#Map-sample">9.4.4 Map sample</a></li>
+      <li><a name="toc-Traj-sample-1" href="mathgl_en_9.html#Traj-sample">9.4.5 Traj sample</a></li>
+      <li><a name="toc-Vect-sample-1" href="mathgl_en_9.html#Vect-sample">9.4.6 Vect sample</a></li>
+      <li><a name="toc-VectL-sample-1" href="mathgl_en_9.html#VectL-sample">9.4.7 VectL sample</a></li>
+      <li><a name="toc-VectC-sample-1" href="mathgl_en_9.html#VectC-sample">9.4.8 VectC sample</a></li>
+      <li><a name="toc-Flow-sample-1" href="mathgl_en_9.html#Flow-sample">9.4.9 Flow sample</a></li>
+      <li><a name="toc-Pipe-sample-1" href="mathgl_en_9.html#Pipe-sample">9.4.10 Pipe sample</a></li>
+      <li><a name="toc-Dew-sample-1" href="mathgl_en_9.html#Dew-sample">9.4.11 Dew sample</a></li>
+      <li><a name="toc-Surf3C-sample-1" href="mathgl_en_9.html#Surf3C-sample">9.4.12 Surf3C sample</a></li>
+      <li><a name="toc-Surf3A-sample-1" href="mathgl_en_9.html#Surf3A-sample">9.4.13 Surf3A sample</a></li>
+      <li><a name="toc-Vect-3D-sample-1" href="mathgl_en_9.html#Vect-3D-sample">9.4.14 Vect 3D sample</a></li>
+      <li><a name="toc-VectL-3D-sample-1" href="mathgl_en_9.html#VectL-3D-sample">9.4.15 VectL 3D sample</a></li>
+      <li><a name="toc-VectC-3D-sample-1" href="mathgl_en_9.html#VectC-3D-sample">9.4.16 VectC 3D sample</a></li>
+      <li><a name="toc-Flow-3D-sample-1" href="mathgl_en_9.html#Flow-3D-sample">9.4.17 Flow 3D sample</a></li>
+      <li><a name="toc-Pipe-3D-sample-1" href="mathgl_en_9.html#Pipe-3D-sample">9.4.18 Pipe 3D sample</a></li>
+      <li><a name="toc-Crust-sample-1" href="mathgl_en_9.html#Crust-sample">9.4.19 Crust sample</a></li>
+      <li><a name="toc-Dots-sample-1" href="mathgl_en_9.html#Dots-sample">9.4.20 Dots sample</a></li>
+    </ul></li>
+    <li><a name="toc-Basic-features-1" href="mathgl_en_9.html#Basic-features">9.5 Basic features</a>
+    <ul class="toc">
+      <li><a name="toc-1D-plot-sample-1" href="mathgl_en_9.html#g_t1D-plot-sample">9.5.1 1D plot sample</a></li>
+      <li><a name="toc-2D-plot-sample-1" href="mathgl_en_9.html#g_t2D-plot-sample">9.5.2 2D plot sample</a></li>
+      <li><a name="toc-3D-plot-sample-1" href="mathgl_en_9.html#g_t3D-plot-sample">9.5.3 3D plot sample</a></li>
+      <li><a name="toc-Line-styles-sample-1" href="mathgl_en_9.html#Line-styles-sample">9.5.4 Line styles sample</a></li>
+      <li><a name="toc-Arrow-styles-sample-1" href="mathgl_en_9.html#Arrow-styles-sample">9.5.5 Arrow styles sample</a></li>
+      <li><a name="toc-Text-styles-sample-1" href="mathgl_en_9.html#Text-styles-sample">9.5.6 Text styles sample</a></li>
+      <li><a name="toc-TeX-parsing-sample-1" href="mathgl_en_9.html#TeX-parsing-sample">9.5.7 TeX parsing sample</a></li>
+      <li><a name="toc-Font-faces-sample-1" href="mathgl_en_9.html#Font-faces-sample">9.5.8 Font faces sample</a></li>
+      <li><a name="toc-Colors-sample-1" href="mathgl_en_9.html#Colors-sample">9.5.9 Colors sample</a></li>
+      <li><a name="toc-Color-schemes-sample-1" href="mathgl_en_9.html#Color-schemes-sample">9.5.10 Color schemes sample</a></li>
+      <li><a name="toc-Normal-transparency-1" href="mathgl_en_9.html#Normal-transparency">9.5.11 Normal transparency</a></li>
+      <li><a name="toc-Glass_002dlike-transparency-1" href="mathgl_en_9.html#Glass_002dlike-transparency">9.5.12 Glass-like transparency</a></li>
+      <li><a name="toc-Lamp_002dlike-transparency-1" href="mathgl_en_9.html#Lamp_002dlike-transparency">9.5.13 Lamp-like transparency</a></li>
+    </ul></li>
+    <li><a name="toc-Additional-features-1" href="mathgl_en_9.html#Additional-features">9.6 Additional features</a>
+    <ul class="toc">
+      <li><a name="toc-Legend-sample-1" href="mathgl_en_9.html#Legend-sample">9.6.1 Legend sample</a></li>
+      <li><a name="toc-Adding-mesh-sample-1" href="mathgl_en_9.html#Adding-mesh-sample">9.6.2 Adding mesh sample</a></li>
+      <li><a name="toc-Surf-_0026-Cont-sample-1" href="mathgl_en_9.html#Surf-_0026-Cont-sample">9.6.3 Surf &amp; Cont sample</a></li>
+      <li><a name="toc-Flow-_0026-Dens-sample-1" href="mathgl_en_9.html#Flow-_0026-Dens-sample">9.6.4 Flow &amp; Dens sample</a></li>
+      <li><a name="toc-Several-light-sample-1" href="mathgl_en_9.html#Several-light-sample">9.6.5 Several light sample</a></li>
+      <li><a name="toc-Mirrored-surface-sample-1" href="mathgl_en_9.html#Mirrored-surface-sample">9.6.6 Mirrored surface sample</a></li>
+      <li><a name="toc-Cont-with-labels-sample-1" href="mathgl_en_9.html#Cont-with-labels-sample">9.6.7 Cont with labels sample</a></li>
+      <li><a name="toc-Ternary-plot-sample-1" href="mathgl_en_9.html#Ternary-plot-sample">9.6.8 Ternary plot sample</a></li>
+      <li><a name="toc-Coloring-by-coordinates-sample-1" href="mathgl_en_9.html#Coloring-by-coordinates-sample">9.6.9 Coloring by coordinates sample</a></li>
+      <li><a name="toc-Drops-sample-1" href="mathgl_en_9.html#Drops-sample">9.6.10 Drops sample</a></li>
+      <li><a name="toc-Molecules-drawing-sample-1" href="mathgl_en_9.html#Molecules-drawing-sample">9.6.11 Molecules drawing sample</a></li>
+    </ul></li>
+    <li><a name="toc-Advanced-features-1" href="mathgl_en_9.html#Advanced-features">9.7 Advanced features</a>
+    <ul class="toc">
+      <li><a name="toc-Curvelinear-coorinates-sample-1" href="mathgl_en_9.html#Curvelinear-coorinates-sample">9.7.1 Curvelinear coorinates sample</a></li>
+      <li><a name="toc-2_002daxes-sample-1" href="mathgl_en_9.html#g_t2_002daxes-sample">9.7.2 2-axes sample</a></li>
+      <li><a name="toc-Semi_002dlog-sample-1" href="mathgl_en_9.html#Semi_002dlog-sample">9.7.3 Semi-log sample</a></li>
+      <li><a name="toc-Log_002dlog-sample-1" href="mathgl_en_9.html#Log_002dlog-sample">9.7.4 Log-log sample</a></li>
+      <li><a name="toc-Fitting-sample-1" href="mathgl_en_9.html#Fitting-sample">9.7.5 Fitting sample</a></li>
+      <li><a name="toc-Envelop-sample-1" href="mathgl_en_9.html#Envelop-sample">9.7.6 Envelop sample</a></li>
+      <li><a name="toc-Sew-sample-1" href="mathgl_en_9.html#Sew-sample">9.7.7 Sew sample</a></li>
+      <li><a name="toc-STFA-sample-1" href="mathgl_en_9.html#STFA-sample">9.7.8 STFA sample</a></li>
+      <li><a name="toc-PDE-sample-1" href="mathgl_en_9.html#PDE-sample">9.7.9 PDE sample</a></li>
+      <li><a name="toc-Beam-tracing-sample-1" href="mathgl_en_9.html#Beam-tracing-sample">9.7.10 Beam tracing sample</a></li>
+      <li><a name="toc-Parser-sample-1" href="mathgl_en_9.html#Parser-sample">9.7.11 Parser sample</a></li>
+      <li><a name="toc-Tick-values-sample" href="mathgl_en_9.html#Manual-ticks-sample">9.7.12 Tick values sample</a></li>
+      <li><a name="toc-ColumnPlot-sample-1" href="mathgl_en_9.html#ColumnPlot-sample">9.7.13 ColumnPlot sample</a></li>
+      <li><a name="toc-StickPlot-sample-1" href="mathgl_en_9.html#StickPlot-sample">9.7.14 StickPlot sample</a></li>
+      <li><a name="toc-Stereo-image-sample-1" href="mathgl_en_9.html#Stereo-image-sample">9.7.15 Stereo image sample</a></li>
+    </ul>
+</li>
+  </ul></li>
+  <li><a name="toc-TeX_002dlike-symbols-1" href="mathgl_en_10.html#TeX_002dlike-symbols">A. TeX-like symbols</a></li>
+  <li><a name="toc-GNU-Free-Documentation-License" href="mathgl_en_11.html#Copying-This-Manual">B. GNU Free Documentation License</a></li>
+  <li><a name="toc-Index-1" href="mathgl_en_12.html#Index">Index</a></li>
+</ul>
+</div>
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru.html b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru.html
new file mode 100644
index 0000000..366166a
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: MathGL</title>
+
+<meta name="description" content="MathGL 1.11: MathGL">
+<meta name="keywords" content="MathGL 1.11: MathGL">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Top"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL"></a>
+<h1 class="settitle">MathGL</h1>
+
+<p>Это документация для MathGL (версии 1.11) &ndash; библиотеки классов и функций для построения научной графики. Пожалуйста сообщайте о любых ошибках в этом руководстве на <a href="mailto:mathgl.abalakin at gmail.org">mathgl.abalakin at gmail.org</a>. Дополнительную информацию о MathGL можно найти на домашней странице проекта <a href="http://mathgl.sourceforge.net/">http://mathgl.sourceforge.net/</a>.
+</p>
+<p>Copyright &copy; 2009 Алексей Балакин. 
+</p>
+<blockquote><p>Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being &ldquo;A GNU Manual,&rdquo;
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled &ldquo;GNU Free Documentation
+License.&rdquo;
+</p>
+<p>(a) The FSF&rsquo;s Back-Cover Text is: &ldquo;You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom.&rdquo;
+</p></blockquote>
+
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="mathgl_ru_1.html#Overview">1. Обзор MathGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_2.html#Examples">2. MathGL examples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_3.html#MathGL-core">3. Ядро MathGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_4.html#Plotter-classes">4. Классы для отрисовки</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_5.html#Widget-classes">5. &ldquo;Оконные&rdquo; классы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_6.html#mglData-class">6. Класс mglData</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_7.html#Other-classes">7. Other classes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_8.html#MGL-interface">8. Язык MGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_9.html#Samples">9. Примеры использования MathGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_10.html#TeX_002dlike-symbols">A. Символы TeX</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_11.html#Copying-This-Manual">B. GNU Free Documentation License</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_12.html#Index">Индекс</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_1.html b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_1.html
new file mode 100644
index 0000000..e97a614
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_1.html
@@ -0,0 +1,892 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: 1. Обзор MathGL</title>
+
+<meta name="description" content="MathGL 1.11: 1. Обзор MathGL">
+<meta name="keywords" content="MathGL 1.11: 1. Обзор MathGL">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Overview"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Why-I-have-written-MathGL_003f" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+
+<a name="g_t_041e_0431_0437_043e_0440-MathGL"></a>
+<h1 class="chapter">1. Обзор MathGL</h1>
+
+<a name="index-_041e_0431_0437_043e_0440-MathGL"></a>
+
+<p>MathGL это ...
+</p><ul>
+<li>
+библиотека для создания высококачественной научной графики под Linux и Windows;
+</li><li>
+библиотека для быстрого обработки и отображения больших массивов данных;
+</li><li>
+библиотека для работы в оконном и консольном режимах;
+</li><li>
+библиотека с большим набором базовых типов графиков.
+</li></ul>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Why-I-have-written-MathGL_003f">1.1 Зачем написана MathGL?</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#MathGL-features">1.2 Возможности MathGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Installation-and-using">1.3 Установка MathGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#General-concepts">1.4 Основные принципы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#FAQ">1.5 FAQ</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Interfaces">1.6 Интерфейсы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Thanks">1.7 Благодарности</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Why-I-have-written-MathGL_003f"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Overview" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0417_0430_0447e_043c-_043d_0430_043f_0438_0441_0430_043d_0430-MathGL_003f"></a>
+<h2 class="section">1.1 Зачем написана MathGL?</h2>
+
+<p>Код для создания качественной научной графики на различных платформах. Код для быстрой обработки и отображения больших массивов данных. Код для работы в графическом и консольном режимах и легкого интегрирования в другие программы. Код с большим обновляемым набором графиков и инструментами обработки данных. Именно такого кода мне не хватало в последние годы при работе на персональных компьютерах и на кластерах. И именно такой код я постарался создать в библиотеке MathGL.
+</p>
+<p>На данный момент (версия 1.11) MathGL это более 20000 строк кода, более 40 основных типов графиков для одно-, двух- и трехмерных массивов, возможность экспорта в растровые и векторные (EPS или SVG) файлы, интерфейс для OpenGL и возможность запуска в консольном режиме, функции для обработки данных и даже простейший командный (интерпретируемый) язык MGL для упрощения построения графиков. Кроме того, есть несколько типов прозрачности, гладкое освещение, векторные шрифты, TeX-ие команды в надписях, произвольные криволинейные системы координат и прочие полезные мелочи (см. раздел pictures на <a href="http://mathgl.sf.net/">домашней странице</a>). Ну, и, естественно, полная переносимость библиотеки и ее свободное распространение под лицензией GPL v.2.0 или более поздней.
+</p>
+<hr size="6">
+<a name="MathGL-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Why-I-have-written-MathGL_003f" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Installation-and-using" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0412_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438-MathGL"></a>
+<h2 class="section">1.2 Возможности MathGL</h2>
+
+<p>Библиотека MathGL позволяет строить широкий класс графиков, включая:
+</p><ul>
+<li>
+рисование одномерных массивов (Plot, Area, Bars, Step, Stem, Torus, Chart, Error, Tube, Mark, see section <a href="mathgl_ru_3.html#g_t1D-plotting">1D графики</a>);
+
+</li><li>
+рисование двумерных массивов (Mesh, Surf, Dens, Cont, ContF, Boxs, Axial, Fall, Belt, Tile, see section <a href="mathgl_ru_3.html#g_t2D-plotting">2D графики</a>);
+
+</li><li>
+рисование трехмерных массивов (Surf3, Dens3, Cont3, ContF3, Cloud-like, see section <a href="mathgl_ru_3.html#g_t3D-plotting">3D графики</a>);
+
+</li><li>
+рисование нескольких связанных массивов: векторные поля Vect и VectC, линии тока Flow, точечное отображение Map, поверхности с прозрачностью или цветом, определяемым другим массивом SurfA, SurfC, Surf3A, Surf3C (see section <a href="mathgl_ru_3.html#Dual-plotting">Парные графики</a>);
+
+</li><li>
+и другие (см. see section <a href="mathgl_ru_3.html#MathGL-core">Ядро MathGL</a>).
+</li></ul>
+
+<p>Фактически, я постарался реализовать все известные мне типы научных графиков. Список графиков постоянно пополняется, и если Вам нужен какой-то новый вариант, пишите на <a href="mailto:mathgl.abalakin at gmail.com">e-mail</a>, и в новой версии библиотеки этот график появится.
+</p>
+<p>Я постарался сделать графики максимально красивыми &ndash; поверхности могут быть прозрачными и освещены произвольно расположенными источниками света (максимальное их количество 10). Большинство функций рисования имеет два варианта: простой для быстрого построения картинки и более сложный для детальной настройки отображения, включающего в том числе возможность параметрического задания всех массивов. Получившееся изображение можно сохранить в растровом (с помощью классов mglGraphZB, mglGraphGL) формате PNG, JPEG, GIF, TIFF или BMP; в векторном EPS или SVG формате (с помощью класса mglGraphPS) и в IDTF формате (с помощью класса mglGraphIDTF), который можно конвертировать в U3D формат.
+</p>
+<p>Все надписи выводятся векторным шрифтом, что обеспечивает их хорошую масштабируемость и переносимость. Текст может содержать команды для большинства ТеХ-их символов, изменения положения (верхний и нижний индексы) и стиля шрифта внутри строки текста (see section <a href="mathgl_ru_7.html#mglFont-class">mglFont class</a>). Текст меток поворачивается вместе с осями. На график можно вывести описание кривых (легенду) и поместить надпись в произвольную точку экрана или пустить ее вдоль кривой. Поддерживаются произвольные кодировки текста (с помощью стандартной функции <code>setlocale()</code>) и текст в кодировке UTF-16.
+</p>
+<p>Для представления данных используется специальный класс mglData (see section <a href="mathgl_ru_6.html#mglData-class">Класс mglData</a>). Помимо безопасного создания и удаления массивов, он включает функции по их обработке (дифференцированию, интегрированию, сглаживанию, интерполяции и т.д.) и чтению текстового файла с автоматическим определением размеров данных. Класс mglData позволяет работать с массивами размерности вплоть до 3 (массивы, зависящие от трех независимых индексов <em>a_ijk</em>). Использование массивов с большим числом размерностей нецелесообразно, поскольку я не представляю, как их можно отобразить на экране. Заполнение или изменение значений массива можно выполнить как вручную, так и по формуле, заданной текстовой строкой.
+</p>
+<p>Для <em>быстрого</em> вычисления значения выражения, заданного текстовой строкой, используется класс mglFormula (see section <a href="mathgl_ru_7.html#mglFormula-class">mglFormula class</a>). Он основан на компиляции строки в древоподобную структуру при создании экземпляра класса. На этапе вычисления происходит быстрый обход дерева с выдачей результата для конкретных значений переменных. Помимо изменения значений массива данных, текстовые формулы используются для рисования в <em>произвольной</em> криволинейной системе координат. Набор таких координат ограничивается только фантазией пользователя, а не фиксированным числом (типа полярной, параболической, цилиндрической и т.д.).
+</p>
+<hr size="6">
+<a name="Installation-and-using"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MathGL-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0423_0441_0442_0430_043d_043e_0432_043a_0430-MathGL"></a>
+<h2 class="section">1.3 Установка MathGL</h2>
+
+<p>Установка библиотеки возможна тремя способами.
+</p><ol>
+<li>
+Скомпилировать библиотеку непосредственно из исходных файлов. С библиотекой поставляется стандартный скрипт для autoconf/automake. Для его запуска достаточно в командной строке выполнить 3 команды: сначала <code>./configure</code> далее <code>make</code> и, наконец, с правами суперпользователя <code>make install</code>. Иногда после компиляции библиотеки может потребоваться обновление списка библиотека в системе &ndash; выполните команду <code>ldconfig</code> с правами суперпользователя.
+
+<p>Скрипт <code>./configure</code> имеет несколько дополнительных опций, которые по умолчанию отключены. К их числу относятся: <code>--enable-fltk, --enable-glut, --enable-qt</code> для поддержки FLTK, GLUT и/или Qt окон; <code>--enable-jpeg, --enable-tiff, --enable-hdf5</code> для поддержки соответствующих форматов; <code>--enable-all</code> для включения всех возможностей. Для использования типа <code>double</code> для внутреннего хранения данных используйте опцию <code>--enable-double</code>. Для создания интерфейсов к другим языкам (кроме С/Фортран/MGL) используйте опции <code>--enable-python, --enable-octave</code> или <code>--enable-langall</code> для всех поддерживаемых языков. Полный список опций можно увидеть, выполнив <code>./configure --help</code>.
+</p></li><li>
+Использовать предварительно скомпилированные файлы &ndash; с библиотекой поставляются файлы для MinGW (платформа Win32). В скомпилированной версии достаточно распаковать заголовочные файлы в папку с заголовочными файлами и библиотеку libmgl.a в папку с библиотеками. По умолчанию, скомпилированная версия включают поддержку GSL (www.gsl.org) и PNG. Соответственно, при сборке программы эти библиотеки должны быть установлены (их можно найти на <a href="http://gnuwin32.sf.net">http://gnuwin32.sf.net</a>).
+</li><li>
+Установить из стандартных пакетов (RPM, deb, DevPak и пр.). 
+</li></ol>
+
+<p>При сборке пользовательской программы достаточно указать ключ <code>-lmgl</code> для компиляции в консольной программе или с использованием внешней графической библиотеки. При использовании окон FLTK или GLUT надо указать/добавить ключи, включающие соответствующие библиотеки &ndash; <code>-lmgl-fltk</code> или <code>-lmgl-glut</code>. Для использования в Фортране дополнительно надо указать опцию <code>-lstdc++</code> для библиотек C++.
+</p>
+<hr size="6">
+<a name="General-concepts"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Installation-and-using" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Coordinate-axes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_043d_043e_0432_043d_044be-_043f_0440_0438_043dc_0438_043f_044b"></a>
+<h2 class="section">1.4 Основные принципы</h2>
+
+<p>Возможности библиотеки MathGL довольно богаты &ndash; число только основных типов графиков превышает 50 видов. Кроме того, есть функции для обработки данных, настройки вида графика и пр. и пр. Тем не менее, я старался придерживаться единого стиля в порядке аргументов функций и способе их &ldquo;настройки&rdquo;. В основном все ниже сказанное относится к функциям рисования различных графиков.
+</p>
+<p>Всего основных концепций (базисных идей) шесть:
+</p><ol>
+<li>
+<strong>Все рисунки создаются в памяти.</strong> Это могут быть как растровые картинки, так и векторные списки примитивов. Дальнейшая судьба рисунков определяется пользователем: можно сохранить в файл, вывести на экран, создать анимацию/кино, дополнительно отредактировать и т.д. Такой подход обеспечивает высокую переносимость библиотеки &ndash; один и тот же программный код создаст в точности одинаковый рисунок на <em>любой</em> операционной системе. Кроме того, при таком подходе рисунки можно создавать непосредственно в консольной программе &ndash; графическое окно не нужно!
+</li><li>
+<strong>Все настройки графиков (стиль линий, цветовые схемы поверхностей, стиль и цвет текста) задаются строками.</strong> Это обеспечивает: удобство для пользователя &ndash; короткую строку легче читать и здесь тяжелее ошибиться, чем в большом списке параметров; переносимость &ndash; строки выглядят одинаково на всех платформах и не надо заботиться о типе и числе аргументов.
+</li><li>
+<strong>Все функции имеют &ldquo;упрощенный&rdquo; и &ldquo;продвинутый&rdquo; варианты.</strong> Сделано опять из-за удобства. В &ldquo;упрощенном&rdquo; варианте для построения графика нужны только один-два массив(а) данных, которые автоматически равнораспределяются в заданном диапазоне осей координат. В &ldquo;продвинутой&rdquo; версии можно не только указать явно диапазон построения графика, но и задать его параметрически. Последнее позволяет легко строить довольно сложные кривые и поверхности. В обоих вариантах функций порядок аргументов стандартен: сначала идут массивы данных, потом необязательный строковый параметр стиля графика, а далее &ndash; второстепенные необязательные параметры для более точной настройки графика.
+</li><li>
+<strong>Все данные передаются через экземпляры класса mglData.</strong> Такой подход позволяет избежать ошибок при работе с памятью и единообразно передавать данные разных типов (float, double, данные из файла, заполненных пользователем и пр.) в функции рисования.
+</li><li>
+<strong>Все элементы рисунков векторные.</strong> Изначально библиотека MathGL была ориентированна на работу с научными данными, которые по своей природе векторные (линии, грани, матрицы и т.д.). Поэтому векторность используется во всех рисунках! Причем иногда даже в ущерб производительности (например, при выводе шрифтов). Помимо всего прочего, векторность позволяет легко масштабировать рисунок &ndash; измените размер картинки в 2 раза, и рисунок пропорционально растянется.
+</li><li>
+<strong>Новые графики не удаляют уже нарисованное.</strong> Этот, в чем-то неожиданный, подход позволяет создавать огромное количество &ldquo;комбинированных&rdquo; графиков. Например, поверхность с наложенными линиями уровня строится двумя последовательными вызовами функций рисования поверхности и линий уровня (в любом порядке). И совершенно не надо писать специальную функцию (как в Matlab и некоторых других программах) для рисования этого графика. Примеров таких графиков можно привести множество (см. раздел <a href="mathgl_ru_2.html#Hints">Hints</a> и сайт программы <a href="http://mathgl.sf.net/index.html">http://mathgl.sf.net/index.html</a>).
+</li></ol>
+
+<p>Кроме основных концепций я хотел бы остановиться на нескольких, как оказалось, нетривиальных моментах &ndash; способе указания положения графика, осей координат и строковых параметров линий, поверхностей, текста.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Coordinate-axes">1.4.1 Оси координат</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Line-styles">1.4.2 Стиль линий</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Color-scheme">1.4.3 Цветовая схема</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-styles">1.4.4 Стиль текста</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Textual-formulas">1.4.5 Текстовые формулы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+
+
+
+<hr size="6">
+<a name="Coordinate-axes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#General-concepts" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Line-styles" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_0438-_043a_043e_043e_0440_0434_0438_043d_0430_0442"></a>
+<h3 class="subsection">1.4.1 Оси координат</h3>
+
+<p>Представление системы координат в MathGL состоит из двух частей. Вначале координаты нормируются в интервал <var>Min</var>x<var>Max</var> (see section <a href="mathgl_ru_3.html#Axis-settings">Настройки осей координат</a>). Если флаг <var>Cut</var> установлен, то точки вне интервала отбрасываются, в противном случае, они проецируются на ограничивающий параллелепипед (see section <a href="mathgl_ru_3.html#Cutting">Обрезание</a>). Кроме того, отбрасываются точки внутри границ, определенных переменными <var>CutMin</var>x<var>CutMax</var> и точки, для которых значение функции <code>CutOff</code>() не равно нулю. После этого формулы перехода в криволинейную систему координат <code>SetFunc()</code>применяются к каждой точке. Наконец, точка данных отображается с помощью одной из графических функций.
+</p>
+<p>Величины <var>Max</var>, <var>Min</var> можно изменять вручную. Однако, после этого необходимо вызвать функцию <code>RecalcBorder()</code> для настройки графика. Более удобный и безопасный путь состоит в вызове функций <code>Axis(), SetRanges()</code> и др. В последнем случае функция <code>RecalcBorder()</code> вызывается автоматически. Размеры осей можно задавать и автоматически по минимальному и максимальному значениям массива данных. Для этого предназначены функции <code>XRange(), YRange(), ZRange()</code>. Второй не обязательный аргумент указывает, заменять ли новые значения диапазона изменения оси координат (по умолчанию) или только расширить уже существующий диапазон.
+</p>
+<p>Точка пересечения осей координат задается переменной <var>Org</var> и действует на последующие вызовы функций рисования осей координат и сетки. По умолчанию, если точка пересечения осей координат попадает вне диапазона осей координат, то она проецируется на границу области. Изменить такое поведение можно, задав <var>AutoOrg</var>=<code>false</code>. В случае, если одно из значений <var>Org</var> равно NAN, то соответствующее значение будет выбрано автоматически.
+</p>
+<p>Кроме привычных осей <em>x, y, z</em> есть еще одна ось &ndash; цветовая шкала &ndash; ось <em>c</em>. Она используется при окрашивании поверхностей и задает границы изменения функции при окрашивании. При вызове <code>Axis()</code> ее границы автоматически устанавливаются равными Min.z и Max.z. Возможно и ручное изменение границ цветового интервала посредством вызова функции <code>CAxis()</code> или изменение границ по заданному массиву <code>CRange()</code>. Используйте <code>Colorbar()</code> для отображения цветовой шкалы.
+</p>
+<p>Вид меток по осям определяется функцией <code>SetTicks()</code> (see section <a href="mathgl_ru_3.html#Axis-settings">Настройки осей координат</a>). Она имеет 3 аргумента: первый <var>d</var> задает шаг меток (если положительны) или их число (если отрицательны) или логарифмические метки (если равны нулю); второ <var>ns</var> задает число &quot;подметок&quot;; последний определяет начальную точку для меток (по умолчанию это точка пересечения осей). Функция <var>SetTuneTicks</var> включает/выключает выделение общего множителя (большого или малого факторов в диапазоне) для меток осей координат. Наконец, если стандартный вид меток не устраивает пользователя, то их шаблон можно задать явно (можно использовать и ТеХ символы), воспользовавшись функциями  <code>SetXTT(), SetYTT(). SetZTT(). SetCTT()</code>. Кроме того, в качестве меток можно вывести произвольный текст использовав функцию <code>SetTicksVal()</code>.
+</p>
+<hr size="6">
+<a name="Line-styles"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Coordinate-axes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Color-scheme" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_0442_0438_043bx-_043b_0438_043d_0438_0439"></a>
+<h3 class="subsection">1.4.2 Стиль линий</h3>
+
+<a name="index-_0421_0442_0438_043bx-_043b_0438_043d_0438_0439"></a>
+<a name="index-_0421_0442_0438_043bx-_043c_0430_0440_043ae_0440_043e_0432"></a>
+<a name="index-_0421_0442_0438_043bx-_0441_0442_0440e_043b_043e_043a"></a>
+
+<p>Стиль линии задается строкой, которая может содержать символ цвета (&lsquo;<samp>wkrgbcymhRGBCYMHWlenupqLENUPQ</samp>&rsquo;), тип пунктира (&lsquo;<samp>-|;:ji</samp>&rsquo; или пробел), ширину линии (&lsquo;<samp>0123456789</samp>&rsquo;) и тип маркера (&lsquo;<samp>o+xsd.^v</samp>&rsquo; и модификатор &lsquo;<samp>#</samp>&rsquo;). Если пропущен цвет или тип пунктира, то используется значение по умолчанию с последним указанным цветом или значение из палитры (для see section <a href="mathgl_ru_3.html#g_t1D-plotting">1D графики</a>). 
+По умолчанию палитры содержит следующие цвета: <span style="color: rgb(76, 76, 76);">темно серый</span> &lsquo;<samp>H</samp>&rsquo;, <span style="color: rgb(0, 0, 255);">синий</span> &lsquo;<samp>b</samp>&rsquo;, <span style="color: rgb(0, 255, 0);">зеленый</span> &lsquo;<samp>g</samp>&rsquo;, <span style="color: rgb(255, 0, 0);">красный</span> &lsquo;<samp>r</samp>&rsquo;, <span style="color: rgb(0, 255, 255);">голубой</span> &lsquo;<samp>c</samp>&rsquo;, <span style="color: rgb(255, 0, 255);">пурпурный</span> &lsquo;<samp>m</samp>&rsquo;, <span style="color: rgb(255, 255, 0);">yellow</span> &lsquo;<samp>y</samp>&rsquo;, <span style="color: rgb(127, 127, 127);">серый</span> &lsquo;<samp>h</samp>&rsquo;, <span style="color: rgb(0, 255, 127);">сине-зеленый</span> &lsquo;<samp>l</samp>&rsquo;, <span style="color: rgb(0, 127, 255);">небесно-синий</span> &lsquo;<samp>n</samp>&rsquo;, <span style="color: rgb(255, 127, 0);">оранжевый</span> &lsquo;<samp>q</samp>&rsquo;, <span style="color: rgb(127, 255, 0);">желто-зеленый</span> &lsquo;<samp>e</samp>&rsquo;, <span style="color: rgb(127, 0, 255);">сине-фиолетовый</span> &lsquo;<samp>u</samp>&rsquo;, <span style="color: rgb(255, 0, 127);">фиолетовый</span> &lsquo;<samp>p</samp>&rsquo;.
+
+<p>Символы цвета: &lsquo;<samp>k</samp>&rsquo; -- черный, &lsquo;<samp>r</samp>&rsquo; -- <span style="color: rgb(255, 0, 0);">красный</span>, &lsquo;<samp>R</samp>&rsquo; -- <span style="color: rgb(127, 0, 0);">темно красный</span>, &lsquo;<samp>g</samp>&rsquo; -- <span style="color: rgb(0, 255, 0);">зеленый</span>, &lsquo;<samp>G</samp>&rsquo; -- <span style="color: rgb(0, 127, 0);">темно зеленый</span>, &lsquo;<samp>b</samp>&rsquo; -- <span style="color: rgb(0, 0, 255);">синий</span>, &lsquo;<samp>B</samp>&rsquo; -- <span style="color: rgb(0, 0, 127);">темно синий</span>, &lsquo;<samp>c</samp>&rsquo; -- <span style="color: rgb(0, 255, 255);">голубой</span>, &lsquo;<samp>C</samp>&rsquo; -- <span style="color: rgb(0, 127, 127);">темно голубой</span>, &lsquo;<samp>m</samp>&rsquo; -- <span style="color: rgb(255, 0, 255);">пурпурный</span>, &lsquo;<samp>M</samp>&rsquo; -- <span style="color: rgb(127, 0, 127);">темно пурпурный</span>, &lsquo;<samp>y</samp>&rsquo; -- <span style="color: rgb(255, 255, 0);">желтый</span>, &lsquo;<samp>Y</samp>&rsquo; -- <span style="color: rgb(127, 127, 0);">темно желтый (золотой)</span>, &lsquo;<samp>h</samp>&rsquo; -- <span style="color: rgb(127, 127, 127);">серый</span>, &lsquo;<samp>H</samp>&rsquo; -- <span style="color: rgb(76, 76, 76);">темно серый</span>, &lsquo;<samp>w</samp>&rsquo; -- белый, &lsquo;<samp>W</samp>&rsquo; -- <span style="color: rgb(178, 178, 178);">светло серый</span>, &lsquo;<samp>l</samp>&rsquo; -- <span style="color: rgb(0, 255, 127);">сине-зеленый</span>, &lsquo;<samp>L</samp>&rsquo; -- <span style="color: rgb(0, 127, 63);">темно сине-зеленый</span>, &lsquo;<samp>e</samp>&rsquo; -- <span style="color: rgb(127, 255, 0);">желто-зеленый</span>, &lsquo;<samp>E</samp>&rsquo; -- <span style="color: rgb(63, 127, 0);">темно желто-зеленый</span>, &lsquo;<samp>n</samp>&rsquo; -- <span style="color: rgb(0, 127, 255);">небесно-синий</span>, &lsquo;<samp>N</samp>&rsquo; -- <span style="color: rgb(0, 63, 127);">темно небесно-синий</span>, &lsquo;<samp>u</samp>&rsquo; -- <span style="color: rgb(127, 0, 255);">сине-фиолетовый</span>, &lsquo;<samp>U</samp>&rsquo; -- <span style="color: rgb(63, 0, 127);">темно сине-фиолетовый</span>, &lsquo;<samp>p</samp>&rsquo; -- <span style="color: rgb(255, 0, 127);">фиолетовый</span>, &lsquo;<samp>P</samp>&rsquo; -- <span style="color: rgb(127, 0, 63);">темно фиолетовый</span>, &lsquo;<samp>q</samp>&rsquo; -- <span style="color: rgb(255, 127, 0);">оранжевый</span>, &lsquo;<samp>Q</samp>&rsquo; -- <span style="color: rgb(127, 63, 0);">темно оранжевый (коричневый)</span>.</p>
+
+Тип пунктира: пробел -- нет линии (для рисования только маркеров), &lsquo;<samp>-</samp>&rsquo; -- сплошная линия (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;), &lsquo;<samp>|</samp>&rsquo; -- длинный пунктир (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>;</samp>&rsquo; -- пунктир (&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>=</samp>&rsquo; -- короткий пунктир (&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;), &lsquo;<samp>:</samp>&rsquo; -- точки (&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;), &lsquo;<samp>j</samp>&rsquo; -- пунктир с точками  (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>i</samp>&rsquo; -- мелкий пунктир с точками (&#9632;&#9632;&#9632;&#9633;&#9633;&#9632;&#9633;&#9633;&#9632;&#9632;&#9632;&#9633;&#9633;&#9632;&#9633;&#9633;).</p>
+<p>Типы маркеров: &lsquo;<samp>o</samp>&rsquo; &ndash; окружность, &lsquo;<samp>+</samp>&rsquo; &ndash; крест, &lsquo;<samp>x</samp>&rsquo; &ndash; косой крест, &lsquo;<samp>s</samp>&rsquo; - квадрат, &lsquo;<samp>d</samp>&rsquo; - ромб, &lsquo;<samp>.</samp>&rsquo; &ndash; точка, &lsquo;<samp>^</samp>&rsquo; &ndash; треугольник вверх, &lsquo;<samp>v</samp>&rsquo; &ndash; треугольник вниз, &lsquo;<samp>&lt;</samp>&rsquo; &ndash; треугольник влево, &lsquo;<samp>&gt;</samp>&rsquo; &ndash; треугольник вправо, &lsquo;<samp>#*</samp>&rsquo; &ndash; знак Y, &lsquo;<samp>#+</samp>&rsquo; &ndash; крест в квадрате, &lsquo;<samp>#x</samp>&rsquo; &ndash; косой крест в квадрате, &lsquo;<samp>#.</samp>&rsquo; &ndash; точка в окружности. Если в строке присутствует символ &lsquo;<samp>#</samp>&rsquo;, то используются символы с заполнением.
+</p>
+<div class="float">
+<img src="../png/sample5.png" alt="../png/sample5">
+
+</div><p><strong>Стили линий и маркеров.
+</strong>
+</p>
+<p>На конце и в начале линии можно выводить специальный символ (стрелку), если в строке указать один из символов: &lsquo;<samp>A</samp>&rsquo; &ndash; стрелка наружу, &lsquo;<samp>V</samp>&rsquo; &ndash; стрелка внутрь, &lsquo;<samp>I</samp>&rsquo; &ndash; поперечная черта, &lsquo;<samp>K</samp>&rsquo; &ndash; стрелка с чертой, &lsquo;<samp>T</samp>&rsquo; &ndash; треугольник, &lsquo;<samp>S</samp>&rsquo; &ndash; квадрат, &lsquo;<samp>D</samp>&rsquo; &ndash; ромб, &lsquo;<samp>O</samp>&rsquo; &ndash; круг, &lsquo;<samp>_</samp>&rsquo; &ndash; нет стрелки (по умолчанию). При этом действует следующее правило: первый символ определяет стрелку на конце линии, второй символ &ndash; стрелку в начале линии. Например, &lsquo;<samp>r-A</samp>&rsquo; &ndash; красная сплошная линия со стрелкой на конце, &lsquo;<samp>b|AI</samp>&rsquo; &ndash; синий пунктир со стрелкой на конце и чертой вначале, &lsquo;<samp>_O</samp>&rsquo; &ndash; линия с текущим стилем и кружком вначале. Эти стили действуют и при построении графиков (например, <a href="mathgl_ru_3.html#g_t1D-plotting">1D графики</a>).
+</p>
+<div class="float">
+<img src="../png/sampled.png" alt="../png/sampled">
+
+</div><p><strong>Стили стрелок.
+</strong>
+</p>
+<hr size="6">
+<a name="Color-scheme"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Line-styles" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-styles" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="C_0432e_0442_043e_0432_0430ya-_0441_0445e_043c_0430"></a>
+<h3 class="subsection">1.4.3 Цветовая схема</h3>
+
+<a name="index-C_0432e_0442_043e_0432_0430ya-_0441_0445e_043c_0430"></a>
+
+<p>Цветовая схема используется для определения цвета поверхностей, линий уровня и пр. Цветовая схема задается строкой <em>s</em>, которая содержит символы цвета (see section <a href="#Line-styles">Стиль линий</a>) или символы &lsquo;<samp>d#:|</samp>&rsquo;. Символ &lsquo;<samp>d</samp>&rsquo; указывает на определение цвета в зависимости от положения точки в пространстве, а не по амплитуде данных. Символ &lsquo;<samp>#</samp>&rsquo; переключает рисование поверхности на сетчатое (для трехмерных поверхностей) или включает рисование сетки на поверхности. Символ &lsquo;<samp>|</samp>&rsquo; отключает интерполяцию цвета в цветовой схеме. Это может быть полезно для &ldquo;резких&rdquo; цветов, например, при рисовании матриц. Если в строке встречается символ &lsquo;<samp>:</samp>&rsquo;, то он принудительно заканчивает разбор строки для стиля поверхности. После этого символа могут идти описание стиля текста или оси вращения кривой/линий уровня. Цветовая схема может содержать до 32 значений цвета.
+</p>
+<p>В цветовой схеме можно использовать тональные (&ldquo;подсвеченные&rdquo;) цвета (<em>не в стиле линий!</em>). Тональный цвет задается двумя символами: первый &ndash; обычный цвет, второй &ndash; его яркость цифрой. Цифра может быть в диапазоне &lsquo;<samp>1</samp>&rsquo;...&lsquo;<samp>9</samp>&rsquo;. При этом &lsquo;<samp>5</samp>&rsquo; соответствует нормальному цвету, &lsquo;<samp>1</samp>&rsquo; &ndash; очень темная версия цвета (почти черный), &lsquo;<samp>9</samp>&rsquo; &ndash; очень светлая версия цвета (почти белый). Например цветовая схема может быть &lsquo;<samp>b2b7wr7r2</samp>&rsquo;.
+</p>
+<div class="float">
+<img src="../png/colors.png" alt="../png/colors">
+
+</div><p><strong>Цвета и их идентификаторы.
+</strong>
+</p>
+<p>При определении цвета по <em>амплитуде</em> (наиболее часто используется) окончательный цвет определяется путем линейной интерполяции массива цветов. Массив цветов формируется из цветов, указанных в строке спецификации. Аргумент &ndash; амплитуда, нормированная между <var>Cmin</var> &ndash; <var>Cmax</var> (see section <a href="mathgl_ru_3.html#Axis-settings">Настройки осей координат</a>). Например, строка из 4 символов &lsquo;<samp>bcyr</samp>&rsquo; соответствует изменению цвета от синего (минимальное значение) через голубой и желтый (промежуточные значения) к красному (максимальное значение). Строка &lsquo;<samp>kw</samp>&rsquo; соответствует изменению цвета от черного (минимальное значение) к белому (максимальное значение). Строка из одного символа (например, &lsquo;<samp>g</samp>&rsquo;) соответствует однотонному цвету (в данному случае зеленому).
+</p>
+<p>Есть несколько полезных цветовых схем. Строка &lsquo;<samp>kw</samp>&rsquo; дает обычную серую (черно-белую) схему, когда большие значения светлее. Строка &lsquo;<samp>wk</samp>&rsquo; представляет обратную серую схему, когда большие значения темнее. Строки &lsquo;<samp>kRryw</samp>&rsquo;, &lsquo;<samp>kGgw</samp>&rsquo;, &lsquo;<samp>kBbcw</samp>&rsquo; представляют собой хорошо известные схемы <em>hot</em>, <em>summer</em> и <em>winter</em>. Строки &lsquo;<samp>BbwrR</samp>&rsquo; и &lsquo;<samp>bBkRr</samp>&rsquo; позволяют рисовать двухцветные фигуры на белом или черном фоне, когда отрицательные значения показаны синим цветом, а положительные &ndash; красным. Строка &lsquo;<samp>BbcyrR</samp>&rsquo; дает цветовую схему, близкую к хорошо известной схеме <em>jet</em>.
+</p>
+
+<div class="float">
+<img src="../png/color_schemes.png" alt="../png/color_schemes">
+
+</div><p><strong>Наиболее популярные цветовые схемы.
+</strong>
+</p>
+<p>При определении цвета по <em>положению точки в пространстве</em> окончательный цвет определяется по формуле c=x*c[1] + y*c[2] + z*c[3]. Здесь c[1], c[2], c[3] &ndash; первые три цвета в цветовом массиве; x, y, z &ndash; координаты точки, нормированные на <var>Min</var>x<var>Max</var>. Такой тип определения цвета полезен, например, при построении поверхностей уровня, когда цвет дает представление о положении точки в пространстве.
+</p>
+<hr size="6">
+<a name="Font-styles"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Color-scheme" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Textual-formulas" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_0442_0438_043bx-_0442e_043a_0441_0442_0430"></a>
+<h3 class="subsection">1.4.4 Стиль текста</h3>
+
+<a name="index-_0421_0442_0438_043bx-_0442e_043a_0441_0442_0430"></a>
+
+<p>Стиль текста задается строкой, которая может содержать несколько символов: тип шрифта (&lsquo;<samp>ribwou</samp>&rsquo;) и/или выравнивания (&lsquo;<samp>LRC</samp>&rsquo;), а также цвет текста &lsquo;<samp>wkrgbcymhRGBCYMHW</samp>&rsquo; (see section <a href="#Line-styles">Стиль линий</a>) после символа &lsquo;<samp>:</samp>&rsquo;. Например, &lsquo;<samp>biC:b</samp>&rsquo; соответствует жирному курсиву с выравниванием по центру синего цвета.
+</p>
+<p>Начертания шрифта: &lsquo;<samp>r</samp>&rsquo; &ndash; прямой шрифт, &lsquo;<samp>i</samp>&rsquo; &ndash; курсив, &lsquo;<samp>b</samp>&rsquo; &ndash; жирный. По умолчанию используется прямой шрифт. Типы выравнивания текста: &lsquo;<samp>L</samp>&rsquo; &ndash; по левому краю (по умолчанию), &lsquo;<samp>C</samp>&rsquo; &ndash; по центру, &lsquo;<samp>R</samp>&rsquo; &ndash; по правому краю. Дополнительные эффекты шрифта: &lsquo;<samp>w</samp>&rsquo; &ndash; контурный, &lsquo;<samp>o</samp>&rsquo; &ndash; надчеркнутый, &lsquo;<samp>u</samp>&rsquo; &ndash; подчеркнутый. 
+</p>
+<p>Синтаксический разбор LaTeX-их команд по умолчанию включен. Это команды смены стиля текста (например, \b для жирного текста): \a или \overline &ndash; надчеркивание, \b или \textbf &ndash; жирный, \i или \textit &ndash; курсив, \r или \textrm &ndash; прямой (отменяет стили жирного и курсива), \u или \underline &ndash; подчеркнутый, \w или \wire &ndash; контурный, \big &ndash; большего размера, @ &ndash; меньшего размера. Нижний и верхний индексы задаются символами &lsquo;<samp>_</samp>&rsquo; и &lsquo;<samp>^</samp>&rsquo;. При этом изменение стиля применяется только к следующему символу или к символам в фигурных скобках {}, которые понимаются как единый блок. Например, сравните строки &lsquo;<samp>sin (x^{2^3})</samp>&rsquo; и &lsquo;<samp>sin (x^2^3)</samp>&rsquo;. Можно также менять цвет текста внутри строки с помощью команд #? или \color?, где &lsquo;<samp>?</samp>&rsquo; &ndash; символ цвета (see section <a href="#Line-styles">Стиль линий</a>). Например, слова &lsquo;<samp>Blue</samp>&rsquo; и &lsquo;<samp>red</samp>&rsquo; будут окрашены в соответствующий цвет в строке &lsquo;<samp>#b{Blue} and \colorr{red} text</samp>&rsquo;. Большинство функций понимает символ новой строки &lsquo;<samp>\n</samp>&rsquo; и позволяет выводить много строчный текст. Наконец, можно использовать символы с произвольным UTF кодом с помощью команды <code>\utf0x????</code>. Например, <code>\utf0x3b1</code> даст символ 
+&alpha;.</p>
+<p>Распознаются также большинство символов TeX и AMSTeX, команды смены стиля текста (\textrm, \textbf, \textit, \textsc, \overline, \underline), акценты (\hat, \tilde, \dot, \ddot, \acute, \check, \grave, \bar, \breve) и корни (\sqrt, \sqrt3, \sqrt4). Полный список содержит около 2000 символов. Отмечу, что первый пробел (пробел, табуляция и пр.) после команды игнорируется, а все остальные пробелы печатаются обычным образом. Например, следующие строки дают одинаковый результат <em>\tilde a</em>: &lsquo;<samp>\tilde{a}</samp>&rsquo;; &lsquo;<samp>\tilde a</samp>&rsquo;; &lsquo;<samp>\tilde{}a</samp>&rsquo;.
+</p>
+В частности, распознаются греческие буквы: &alpha; &ndash; \alpha, &beta; &ndash; \beta, &gamma; &ndash; \gamma, &delta; &ndash; \delta, &epsilon; &ndash; \epsilon, &eta; &ndash; \eta, &iota; &ndash; \iota, &chi; &ndash; \chi, &kappa; &ndash; \kappa, &lambda; &ndash; \lambda, &mu; &ndash; \mu, &nu; &ndash; \nu, o &ndash; \o, &omega; &ndash; \omega, &#981; &ndash; \phi, &pi; &ndash; \pi, &psi; &ndash; \psi, &rho; &ndash; \rho, &sigma; &ndash; \sigma, &theta; &ndash; \theta, &tau; &ndash; \tau, &upsilon; &ndash; \upsilon, &xi; &ndash; \xi, &zeta; &ndash; \zeta, &sigmaf; &ndash; \varsigma, &#603; &ndash; \varepsilon, &thetasym; &ndash; \vartheta, &phi; &ndash; \varphi, &#1008; &ndash; \varkappa; A &ndash; \Alpha, B &ndash; \Beta, &Gamma; &ndash; \Gamma, &Delta; &ndash; \Delta, E &ndash; \Epsilon, H &ndash; \Eta, I &ndash; \Iota, C &ndash; \Chi, K &ndash; \Kappa, &Lambda; &ndash; \Lambda, M &ndash; \Mu, N &ndash; \Nu, O &ndash; \O, &Omega; &ndash; \Omega, &Phi; &ndash; \Phi, &Pi; &ndash; \Pi, &Psi; &ndash; \Psi, R &ndash; \Rho, &Sigma; &ndash; \Sigma, &Theta; &ndash; \Theta, T &ndash; \Tau, &Upsilon; &ndash; \Upsilon, &Xi; &ndash; \Xi, Z &ndash; \Zeta.
+
+<p>Еще примеры наиболее общеупотребительных TeX-их символов: &ang; &ndash; \angle, &sdot; &ndash; \cdot, &clubs; &ndash; \clubsuit, &#10003; &ndash; \checkmark, &cup; &ndash; \cup, &cap; &ndash; \cap, &#9826; &ndash; \diamondsuit, &#9671; &ndash; \diamond, &divide;
+ &ndash; \div, 
+&darr; &ndash; \downarrow, &dagger; &ndash; \dag, &Dagger; &ndash; \ddag, &equiv; &ndash; \equiv, &exist; &ndash; \exists, &#8994; &ndash; \frown, &#9837; &ndash; \flat, &ge; &ndash; \ge, &ge; &ndash; \geq, &#8807; &ndash; \geqq, &larr; &ndash; \gets, &#9825; &ndash; \heartsuit, &infin; &ndash; \infty, &int; &ndash; \int, \Int, &image;  &ndash; \Im, &#9826; &ndash; \lozenge, &#10216; &ndash; \langle, &le; &ndash; \le, &le; &ndash; \leq, &#8806; &ndash; \leqq, &larr; &ndash; \leftarrow, &#8723; &ndash; \mp, &nabla; &ndash; \nabla, &ne; &ndash; \ne, &ne; &ndash; \neq, &#9838; &ndash; \natural, &#8750; &ndash; \oint, &#8857; &ndash; \odot, &oplus; &ndash; \oplus, &part; &ndash; \partial, &#8741; &ndash; \parallel, &perp; &ndash;\perp, &plusmn; &ndash; \pm, &prop; &ndash; \propto, &prod; &ndash; \prod, &real; &ndash; \Re, &rarr; &ndash; \rightarrow, &#10217; &ndash; \rangle, &spades; &ndash; \spadesuit, ~ &ndash; \sim, &#8995; &ndash; \smile, &sub;  &ndash; \subset, &sup; &ndash; \supset, &radic; &ndash; \sqrt or \surd, &sect; &ndash; \S, &#9839; &ndash; \sharp, &sum; &ndash; \sum, &times; &ndash; \times, &rarr; &ndash; \to, &there4; &ndash; \therefore, &uarr; &ndash; \uparrow, &weierp; &ndash; \wp. </p>
+<p>Размер текста может быть задан явно (если <var>size</var>&gt;0) или относительно базового размера шрифта для рисунка |<var>size</var>|*<var>FontSize</var> при <var>size</var>&lt;0. Значение <var>size</var>=0 указывает, что соответствующая строка выводиться не будет. Базовый размер шрифта измеряется во внутренних единицах. Специальные функции <code>SetFontSizePT(), SetFontSizeCM(), SetFontSizeIN()</code> позволяют задавать его в более &ldquo;привычных&rdquo; единицах.
+</p>
+<hr size="6">
+<a name="Textual-formulas"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-styles" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#FAQ" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0422e_043a_0441_0442_043e_0432_044be-_0444_043e_0440_043c_0443_043b_044b"></a>
+<h3 class="subsection">1.4.5 Текстовые формулы</h3>
+
+<a name="index-_0422e_043a_0441_0442_043e_0432_044be-_0444_043e_0440_043c_0443_043b_044b"></a>
+
+<p>MathGL имеет быстрый парсер текстовых формул
+ (see section <a href="mathgl_ru_7.html#mglFormula-class">mglFormula class</a>)
+, понимающий большое число функций и операций. Базовые операции: &lsquo;<samp>+</samp>&rsquo; &ndash; сложение, &lsquo;<samp>-</samp>&rsquo; &ndash; вычитание, &lsquo;<samp>*</samp>&rsquo; &ndash; умножение, &lsquo;<samp>/</samp>&rsquo; &ndash; деление, &lsquo;<samp>^</samp>&rsquo; &ndash; возведение в целосичленную степень. Также есть логические операции: &lsquo;<samp>&lt;</samp>&rsquo; &ndash; истина если if x&lt;y, &lsquo;<samp>&gt;</samp>&rsquo; &ndash; истина если x&gt;y, &lsquo;<samp>=</samp>&rsquo; &ndash; истина если x=y, &lsquo;<samp>&amp;</samp>&rsquo; &ndash; истина если x и y оба не равны нулю, &lsquo;<samp>|</samp>&rsquo; &ndash; истина если x или y не нуль. Логические операции имеют наинизший приоритет и возвращают 1 если истина или 0 если ложно.
+</p>
+<p>Базовые функции: &lsquo;<samp>sqrt(x)</samp>&rsquo; &ndash; квадратный корень из <var>x</var>, &lsquo;<samp>pow(x,y)</samp>&rsquo; &ndash; <var>x</var> в степени <var>y</var>, &lsquo;<samp>ln(x)</samp>&rsquo; &ndash; натуральный логарифм <var>x</var>, &lsquo;<samp>lg(x)</samp>&rsquo; &ndash; десятичный логарифм <var>x</var>, &lsquo;<samp>log(a,x)</samp>&rsquo; &ndash; логарифм по основанию <var>a</var> от <var>x</var>, &lsquo;<samp>abs(x)</samp>&rsquo; &ndash; модуль <var>x</var>, &lsquo;<samp>sign(x)</samp>&rsquo; &ndash; знак <var>x</var>, &lsquo;<samp>mod(x,y)</samp>&rsquo; &ndash; остаток от деления x на y, &lsquo;<samp>step(x)</samp>&rsquo; &ndash; ступенчатая функция, &lsquo;<samp>int(x)</samp>&rsquo; &ndash; целая часть <var>x</var>, &lsquo;<samp>rnd</samp>&rsquo; &ndash; случайное число, &lsquo;<samp>pi</samp>&rsquo; &ndash; число 
+&pi; = 3.1415926&hellip;</p>
+<p>Тригонометрические функции: &lsquo;<samp>sin(x)</samp>&rsquo;, &lsquo;<samp>cos(x)</samp>&rsquo;, &lsquo;<samp>tan(x)</samp>&rsquo; (или &lsquo;<samp>tg(x)</samp>&rsquo;). Обратные тригонометрические функции: &lsquo;<samp>asin(x)</samp>&rsquo;, &lsquo;<samp>acos(x)</samp>&rsquo;, &lsquo;<samp>atan(x)</samp>&rsquo;. Гиперболические функции: &lsquo;<samp>sinh(x)</samp>&rsquo; (или &lsquo;<samp>sh(x)</samp>&rsquo;), &lsquo;<samp>cosh(x)</samp>&rsquo; (или &lsquo;<samp>ch(x)</samp>&rsquo;), &lsquo;<samp>tanh(x)</samp>&rsquo; (или &lsquo;<samp>th(x)</samp>&rsquo;). Обратные гиперболические функции: &lsquo;<samp>asinh(x)</samp>&rsquo;, &lsquo;<samp>acosh(x)</samp>&rsquo;, &lsquo;<samp>atanh(x)</samp>&rsquo;.
+</p>
+<p>Специальные функции: &lsquo;<samp>gamma(x)</samp>&rsquo; &ndash; гамма функция &Gamma;(x) = &int;<sub>0</sub><sup>&infin;</sup> t<sup>x-1</sup> exp(-t) dt, &lsquo;<samp>psi(x)</samp>&rsquo; &ndash; дигамма функция &psi;(x) = &Gamma;&prime;(x)/&Gamma;(x) для x&ne;0, &lsquo;<samp>ai(x)</samp>&rsquo; &ndash; Эйри функция Ai(x), &lsquo;<samp>bi(x)</samp>&rsquo; &ndash; Эйри функция Bi(x), &lsquo;<samp>cl(x)</samp>&rsquo; &ndash; функция Клаузена, &lsquo;<samp>li2(x)</samp>&rsquo; (или &lsquo;<samp>dilog(x)</samp>&rsquo;) &ndash; дилогарифм Li<sub>2</sub>(x) = -&real;&int;<sub>0</sub><sup>x</sup>ds log(1-s)/s, &lsquo;<samp>sinc(x)</samp>&rsquo; &ndash; функция sinc(x) = sin(&pi;x)/(&pi;x) для любых x, &lsquo;<samp>zeta(x)</samp>&rsquo; &ndash; зета функция Римана &zeta;(s) = &sum;<sub>k=1</sub><sup>&infin;</sup>k<sup>-s</sup> для s&ne;1, &lsquo;<samp>eta(x)</samp>&rsquo; &ndash; эта функция &eta;(s) = (1 - 2<sup>1-s</sup>)&zeta;(s) для произвольного s, &lsquo;<samp>lp(l,x)</samp>&rsquo; &ndash; полином Лежандра P<sub>l</sub>(x), (|x|&le;1, l&ge;0), &lsquo;<samp>w0(x)</samp>&rsquo;, &lsquo;<samp>w1(x)</samp>&rsquo; &ndash; функции Ламберта W. Функции W(x) определены как решение уравнения: W exp(W) = x. </p>
+
+<p>Экспоненциальные интегралы: &lsquo;<samp>ci(x)</samp>&rsquo; &ndash; cos-интеграл Ci(x) = &int;<sub>0</sub><sup>x</sup>dt cos(t)/t, &lsquo;<samp>si(x)</samp>&rsquo; &ndash; sin-интеграл Si(x) = &int;<sub>0</sub><sup>x</sup>dt sin(t)/t, &lsquo;<samp>erf(x)</samp>&rsquo; &ndash; функция ошибки erf(x) = (2/&radic;&pi;) &int;<sub>0</sub><sup>x</sup>dt exp(-t<sup>2</sup>) , &lsquo;<samp>ei(x)</samp>&rsquo; &ndash; интеграл Ei(x) = -PV(&int;<sub>-x</sub><sup>&infin;</sup>dt exp(-t)/t) (где PV обозначает главное значение), &lsquo;<samp>e1(x)</samp>&rsquo; &ndash; интеграл E<sub>1</sub>(x) = &real;&int;<sub>1</sub><sup>&infin;</sup>dt exp(-xt)/t, &lsquo;<samp>e2(x)</samp>&rsquo; &ndash; интеграл E<sub>2</sub>(x) = &real;&int;<sub>1</sub>&infin;</sup>dt exp(-xt)/t<sup>2</sup>, &lsquo;<samp>ei3(x)</samp>&rsquo; &ndash; интеграл Ei<sub>3</sub>(x) = &int;<sub>0</sub><sup>x</sup>dt exp(-t<sup>3</sup>) для x&ge;0. </p>
+
+<p>Функции Бесселя: &lsquo;<samp>j(nu,x)</samp>&rsquo; &ndash; функция Бесселя первого рода, &lsquo;<samp>y(nu,x)</samp>&rsquo; &ndash; функция Бесселя второго рода, &lsquo;<samp>i(nu,x)</samp>&rsquo; &ndash; модифицированная функция Бесселя первого рода, &lsquo;<samp>k(nu,x)</samp>&rsquo; &ndash; модифицированная функция Бесселя второго рода. </p>
+
+<p>Эллиптические интегралы: &lsquo;<samp>ee(k)</samp>&rsquo; &ndash; полный эллиптический интеграл E(k) = E(&pi;/2,k), &lsquo;<samp>ek(k)</samp>&rsquo; &ndash; полный эллиптический интеграл K(k) = F(&pi;/2,k), &lsquo;<samp>e(phi,k)</samp>&rsquo; &ndash; эллиптический интеграл E(&phi;,k) = &int;<sub>0</sub><sup>&phi;</sup>dt &radic;(1 - k<sup>2</sup>sin<sup>2</sup>(t)), &lsquo;<samp>f(phi,k)</samp>&rsquo; &ndash; эллиптический интеграл F(&phi;,k) = &int;<sub>0</sub><sup>&phi;</sup>dt 1/&radic;(1 - k<sup>2</sup>sin<sup>2</sup>(t))</p>
+<p>Функции Якоби: &lsquo;<samp>sn(u,m)</samp>&rsquo;, &lsquo;<samp>cn(u,m)</samp>&rsquo;, &lsquo;<samp>dn(u,m)</samp>&rsquo;, &lsquo;<samp>sc(u,m)</samp>&rsquo;, &lsquo;<samp>sd(u,m)</samp>&rsquo;, &lsquo;<samp>ns(u,m)</samp>&rsquo;, &lsquo;<samp>cs(u,m)</samp>&rsquo;, &lsquo;<samp>cd(u,m)</samp>&rsquo;, &lsquo;<samp>nc(u,m)</samp>&rsquo;, &lsquo;<samp>ds(u,m)</samp>&rsquo;, &lsquo;<samp>dc(u,m)</samp>&rsquo;, &lsquo;<samp>nd(u,m)</samp>&rsquo;.
+</p>
+<p>Некоторые из функций могут быть недоступны если флаг NO_GSL был определен при компиляции библиотеки MathGL. 
+</p>
+<p>При разборе формул нет различия между верхним и нижним регистром. Если аргумент лежит вне области определения функции, то возвращается NaN.
+</p>
+
+
+<hr size="6">
+<a name="FAQ"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Textual-formulas" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Interfaces" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="FAQ-1"></a>
+<h2 class="section">1.5 FAQ</h2>
+
+<dl compact="compact">
+<dt> <strong>График не рисуется?!</strong></dt>
+<dd><p>Проверьте, что точки графика находятся внутри ограничивающего параллелепипеда, при необходимости увеличьте его с помощью функции <code>Axis()</code>. Проверьте, что размерность массива правильная для выбранного типа графика. Убедитесь, что функция  <code>Finish()</code> была вызвана после построения графика (или график был сохранен в файл). Иногда отражение света от плоских поверхностей (типа, <code>Dens()</code>) может выглядеть как отсутствие графика.
+</p>
+</dd>
+<dt> <strong>Не нашел нужного графика?!</strong></dt>
+<dd><p>Многие &ldquo;новые&rdquo; графики можно строить, используя уже существующие функции. Например, поверхность вращения кривой относительно оси можно построить, используя специальную функцию <code>Torus()</code>, а можно построить как параметрически заданную поверхность <code>Surf()</code>. См. также <a href="mathgl_ru_2.html#Hints">Hints</a> и <a href="mathgl_ru_2.html#Examples">MathGL examples</a> MathGL. Если же нужного типа графика все равно нет, то пишите мне <a href="mailto:mathgl.abalakin at gmail.com">e-mail</a> и в следующей версии этот график появится.
+</p>
+</dd>
+<dt> <strong>Требуется ли знание сторонних библиотек (например, OpenGL) для использования библиотеки MathGL?</strong></dt>
+<dd><p>Нет. Библиотека MathGL самодостаточна и не требует знания сторонних библиотек.
+</p>
+</dd>
+<dt> <strong>На каком языке написана библиотека? Для каких языков у нее есть интерфейсы?</strong></dt>
+<dd><p>Ядро библиотеки написано на С++. Кроме него, есть интерфейсы для чистого С, фортрана, паскаля, форта и собственный командный язык MGL. Также есть поддержка большого числа интерпретируемых языков (Python, Java,  ALLEGROCL, CHICKEN, Lisp, CFFI, C#, Guile, Lua, Modula 3, Mzscheme, Ocaml, Octave, Perl, PHP, Pike, R, Ruby, Tcl). Эти интерфейсы написаны с помощью SWIG (и функции чистого С и классы). Однако на данный момент только интерфейсы для Python и Octave включены в скрипты сборки. Причина в том, что я не знаю других языков, чтобы проверить качество интерфейса :(. Замечу, что большинство прочих языков могут использовать С функции напрямую.
+</p>
+</dd>
+<dt> <strong>Как мне использовать MathGL с Фортраном?</strong></dt>
+<dd><p>Библиотеку MathGL можно использовать как есть с компилятором <code>gfortran</code> поскольку он использует по умолчанию AT&amp;T нотацию для внешних функций. Для других компиляторов (например, Visual Fortran) необходимо включить использование AT&amp;T нотации вручную. AT&amp;T нотация требует, чтобы имя функции завершалось символом &lsquo;<samp>_</samp>&rsquo;, аргументы функции передавались по указателю и длины строк передавались в конце списка аргументов. Например:
+</p>
+<p><em>C функция</em> &ndash; <code>void mgl_fplot(HMGL graph, const char *fy, const char *stl, int n);</code>
+</p>
+<p><em>AT&amp;T функция</em> &ndash; <code>void mgl_fplot_(uintptr_t *graph, const char *fy, const char *stl, int *n, int ly, int ls);</code>
+</p>
+</dd>
+<dt> <strong>У меня есть класс Foo и в нем метод рисования Foo::draw(mglGraph *gr). Как мне нарисовать что-то в окне FLTK, GLUT или Qt?</strong></dt>
+<dd><p>Функции-члены класса в С++ имеют &ldquo;скрытый&rdquo; параметр &ndash; указатель на экземпляр класса и их прямое использование невозможно. Решением будет определение интерфейсной функции:
+</p><table><tr><td>&nbsp;</td><td><pre class="example">int foo_draw(mglGraph *gr, void *par)
+{   ((Foo *)foo)-&gt;draw(gr);    }
+</pre></td></tr></table>
+<p>и подстановка именно ее в вызов функции <code>Window()</code>:
+</p><table><tr><td>&nbsp;</td><td><pre class="example">gr-&gt;Window(argc,argv,foo_draw,&quot;Title&quot;,this);
+</pre></td></tr></table>
+
+<p>Можно также наследовать Ваш класс от класса <code>mglDraw</code> и использовать функцию типа <code>gr-&gt;Window(argc, argv, foo, &quot;Title&quot;);</code>.
+</p>
+</dd>
+<dt> <strong>Как мне вывести текст на русском/испанском/арабском/японском и т.д.?</strong></dt>
+<dd><p>Стандартный путь состоит в использовании кодировки UTF-8 для вывода текста. Кроме того, все функции вывода текста имеют интерфейс для 8-битных (char *) строк. Однако в последнем случае Вам может потребоваться установить используемую в исходном тексте локаль. Например, для русского языка в кодировке CP1251 можно использовать <code>setlocale(LC_CTYPE, &quot;ru_RU.cp1251&quot;);</code> (под MS Windows имена локали другие &ndash;  <code>setlocale(LC_CTYPE, &quot;russian_russia.1251&quot;)</code>). Настоятельно не рекомендую использовать константу <code>LC_ALL</code>, поскольку при этом меняется и формат чисел (в частности, десятичная точка), что может, например, вызвать сложности (неудобство) при написании формул и чтении текстовых файлов. Например, программа ожидает &lsquo;<samp>,</samp>&rsquo; в качестве разделителя целой и дробной части, а пользователь вводит &lsquo;<samp>.</samp>&rsquo;.
+</p>
+</dd>
+<dt> <strong>Как мне вырезать (исключить из рисования) точку или область на графике?</strong></dt>
+<dd><p>Есть три основных способа. Во-первых, можно вырезать точку, задав одну из ее координат равной <code>NAN</code>. Во-вторых, можно воспользоваться функцией <code>SetCutBox()</code> или <code>CutOff()</code> для удаления точек из некоторой области (see section <a href="mathgl_ru_3.html#Cutting">Обрезание</a>). Наконец, можно сделать эти точки прозрачными (невидимыми) с помощью функций <code>SurfA()</code>, <code>Surf3A()</code> (see section <a href="mathgl_ru_3.html#Dual-plotting">Парные графики</a>). В последнем случае обеспечивается еще и плавность включения прозрачности.
+</p>
+</dd>
+<dt> <strong>Я использую VisualStudio, CBuilder или другой компилятор (не MinGW/gcc). Как мне подключить библиотеку MathGL?</strong></dt>
+<dd><p>Начиная с версии 1.10, можно использовать заголовочный файл <code>#include &lt;mgl/mgl_w.h&gt;</code>, содержащий C++ классы только с <code>inline</code> функциями. Такие классы должны быть совместимы с любым компилятором. Отмечу, что эти &quot;интерфейсные&quot; классы <strong>не совместимы</strong> с классами в обычных заголовочных файлах и использоваться должны только одни из них! Я рекомендую использовать обычные заголовочные классы для компиляторов GNU (например для MinGW).
+</p>
+
+</dd>
+<dt> <strong>Как мне собрать MathGL под Windows?</strong></dt>
+<dd><p>Простейший путь &ndash; использование комбинации CMake и MinGW. Также Вам может потребоваться дополнительные библиотеки, такие как GSL, PNG, JPEG и пр. Все они могут быть найдены на <a href="http://gnuwin32.sourceforge.net/packages.html">http://gnuwin32.sourceforge.net/packages.html</a>. После установки всех компонент, просто запустите конфигуратор CMake и соберите MathGL командой make.
+</p>
+</dd>
+<dt> <strong>Как создать окно FLTK/GLUT/Qt с текущими результатами параллельно с выполнением основных вычислений?</strong></dt>
+<dd><p>Следует создать отдельный поток для обработки сообщений в окно. Кросс-платформенный путь &ndash; использование библиотеки <code>pthread</code>. Обновление данных в окне можно выполнить вызовом функции <code>mglGraphFLTK::Update()</code>. Пример код имеет вид:
+</p><pre class="verbatim">//-----------------------------------------------------------------------------
+#include &lt;mgl/mgl_fltk.h&gt;
+#include &lt;pthread.h&gt;
+#include &lt;unistd.h&gt;
+
+mglPoint pnt;  // some global variable for changable data
+//-----------------------------------------------------------------------------
+int sample(mglGraph *gr, void *)
+{
+  gr-&gt;Box();  gr-&gt;Line(mglPoint(),pnt,&quot;Ar2&quot;); // just draw a vector
+  return 0;
+}
+//-----------------------------------------------------------------------------
+void *mgl_fltk_tmp(void *)      {       mglFlRun();     return 0;       }
+int main (int argc, char ** argv)
+{
+  mglGraphFLTK gr;
+  gr.Window(argc,argv,sample,&quot;test&quot;);  // create window
+  static pthread_t tmp;
+  pthread_create(&amp;tmp, 0, mgl_fltk_tmp, 0);
+  pthread_detach(tmp);    // run window handling in the separate thread
+  for(int i=0;i&lt;10;i++)   // do calculation
+  {
+    sleep(1);             // which can be very long
+    pnt = mglPoint(2*mgl_rnd()-1,2*mgl_rnd()-1);
+    gr.Update();          // update window
+  }
+  return 0;   // finish calculations and close the window
+}
+//-----------------------------------------------------------------------------
+</pre>
+
+
+</dd>
+<dt> <strong>Сколько человек участвовало в создании библиотеки?</strong></dt>
+<dd><p>Большую часть библиотеки написал один человек. Это результат примерно года работы на написание ядра библиотеки и базовых функций (в основном вечерами и по выходным). Процесс усовершенствования продолжается и теперь :). Скрипты сборки в основном написаны Д.Кулагиным, а экспорт в IDTF написан М.Видассовым.
+</p>
+</dd>
+<dt> <strong>Как мне показать растровую картинку на рисунке?</strong></dt>
+<dd><p>Можно импортировать ее в экземпляр <code>mglData</code> и построить с помощью функции <code>Dens()</code>. Например, для черно-белого рисунка можно использовать код: <code>mglData bmp; bmp.Import(&quot;fname.png&quot;,&quot;wk&quot;); gr-&gt;Dens(bmp,&quot;wk&quot;);</code>.
+</p>
+</dd>
+<dt> <strong>Как использовать MathGL в Qt, FLTK, wxWidgets ...?</strong></dt>
+<dd><p>Есть специальные классы (виджеты) для этих библиотек: QMathGL для Qt, Fl_MathGL для FLTK и т.д. Если Вы не нашли подходящий класс, то можете создать свой собственный виджет, рисующий растровое изображение из mglGraphAB::GetBits().
+</p>
+</dd>
+<dt> <strong>Как мне создать U3D файл (3D in PDF)?</strong></dt>
+<dd><p>Процедура состоит из двух шагов: создания файла IDTF и его конвертация в U3D. Можно использовать <a href="http://sourceforge.net/project/showfiles.php?group_id=152187&amp;package_id=300628">U3D tools</a> для конвертации IDTF в U3D. Ему требуется библиотека <a href="http://libharu.org">libharu</a> 2.1.0 или более поздняя. Для установки используйте обычную процедуру <code>./bootstrap, ./configure, make, sudo make install</code>. В результате появится программа IDTFConverter для конвертации файлов *.idtf в бинарные файлы *.u3d. Последние можно включить в PDF.
+</p>
+</dd>
+<dt> <strong>Как сменить шрифт (семейство шрифтов)?</strong></dt>
+<dd><p>Во-первых, надо загрузить файлы <a href="http://mathgl.sourceforge.net/download.html">отсюда</a> или <a href="http://sourceforge.net/project/showfiles.php?group_id=152187&amp;package_id=267177">отсюда</a>. Далее, в экземпляре mglGraph загружаем шрифты: <code>gr-&gt;SetFont(new mglFont(fontname,path));</code>. Здесь <var>fontname</var> &ndash; базовое имя шрифта, например &lsquo;<samp>STIX</samp>&rsquo;, и <var>path</var> &ndash; путь к папке с файлами шрифтов. Вызовите <code>gr-&gt;SetFont(NULL);</code> для использования шрифта по умолчанию.
+</p>
+</dd>
+<dt> <strong>Как нарисовать метки оси снаружи от графика?</strong></dt>
+<dd><p>Просто используйте отрицательные значения длины меток, например <code>gr-&gt;SetTickLen(-0.1);</code>.
+</p>
+</dd>
+</dl>
+
+<hr size="6">
+<a name="Interfaces"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#FAQ" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#C-interface" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_043d_0442e_0440_0444e_0439_0441_044b"></a>
+<h2 class="section">1.6 Интерфейсы</h2>
+
+<p>Библиотека MathGL имеет интерфейсы к целому ряду языков программирования. Большинство из них базируется на С интерфейсе и построены с помощью инструментария SWIG. Сюда входят Python, Java, Octave, Lisp, C#, Guile, Lua, Modula 3, Ocaml, Perl, PHP, Pike, R, Ruby, Tcl. Кроме того, есть отдельный интерфейс к Фортрану, имеющий похожий набор функций, но со слегка различным типом аргументов (использованы целые вместо указателей). Функции С и Фортран интерфейса помечены [функции С].
+Некоторое из языков представленных выше поддерживают объектное программирование (классы). Для них написан собственная оболочка и соответствующие функции/методы помечены (Python). Функции и методы доступные в С++ помечены (С++).
+Наконец, специальный командный язык MGL был написан для быстрого доступа к функциям C++ со всеми их возможностями. Скрипты MGL могут быть выполнены как из внешних программ (UDAV, mgl2png, mgl2eps и т.д.) так и из кода на C++/C/Python и пр. (see section <a href="mathgl_ru_7.html#mglParse-class">mglParse class</a>). Подробно эти команды описаны в <a href="mathgl_ru_8.html#MGL-interface">Язык MGL</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#C-interface">1.6.1 C интерфейс</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Python-interface">1.6.2 Python интерфейс</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="C-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Interfaces" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Python-interface" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Interfaces" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="C-_0438_043d_0442e_0440_0444e_0439_0441"></a>
+<h3 class="subsection">1.6.1 C интерфейс</h3>
+
+<p>C интерфейс является базовым для большинства других интерфейсов. Он содержит функции на чистом C для большинства методов классов MathGL. В отличие от членов-функций C++ классов, C функции в качестве аргументов должны явно иметь переменные типа HMGL (для графики) и/или HMDT (для массивов данных) для указания объекта рисования или данных. Таким образом, первым вызовом пользователя должно быть создание этих объектов с помощью функций <code>mgl_create_*()</code>, а последним &ndash; их удаление с помощью функций <code>mgl_delete_*()</code>.
+</p>
+<p>Все функции описанны в заголовочном файле <code>#include &lt;mgl/mgl_c.h&gt;</code> и используют переменные для идентификаторов объектов рисования/данных следующих типов:
+</p><ul>
+<li> 
+<code>HMGL</code> &mdash; Указатель на класс <code>mglGraph</code> (see section <a href="mathgl_ru_3.html#MathGL-core">Ядро MathGL</a>).
+</li><li> 
+<code>HMDT</code> &mdash; Указатель на класс <code>mglData</code> (see section <a href="mathgl_ru_6.html#mglData-class">Класс mglData</a>).
+</li><li> 
+<code>HMPR</code> &mdash; Указатель на класс <code>mglParse</code> (see section <a href="mathgl_ru_7.html#mglParse-class">mglParse class</a>)..
+</li></ul>
+<p>Эти переменные содержат идентификаторы объектов графики или данных. 
+</p>
+<p>Фортрановские функции имеют те же имена, что и функции C. Однако, есть различие: переменные типов <code>HMGL, HMDT</code> должны быть объявлены как целые достаточной разрядности (integer*4 на 32-битных системах или integer*8 на 64-битных системах). Все С функции являются процедурами для Фортрана (должны вызываться с помощью оператора call). Исключение составляют функции, возвращающие переменные типа <code>HMGL</code> или <code>HMDT</code>. Последние должны быть объявлены целыми  для использования в фортрановском коде. Также помните, что строки в фортране обозначаются одинарной кавычкой <code>&lt;/samp&gt;&amp;rsquo;</code>, а не двойной <code>&quot;</code> как в С/С++.
+</p>
+<p><strong>Создание и удаление графического объекта</strong>
+</p>
+<ul>
+<li> Функции для рисования в памяти:
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fgl"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_gl</b><i> ()</i></dt>
+<dd><p>Создает экземпляр класса mglGraphGL.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fzb"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_zb</b><i> (<code>int</code> width, <code>int</code> height)</i></dt>
+<dd><p>Создает экземпляр класса mglGraphZB с указанными размерами.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fps"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_ps</b><i> (<code>int</code> width, <code>int</code> height)</i></dt>
+<dd><p>Создает экземпляр класса mglGraphPS с указанными размерами.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fidtf"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_idtf</b><i> ()</i></dt>
+<dd><p>Создает экземпляр класса mglGraphIDTF.
+</p></dd></dl>
+
+</li><li> Функции для рисования в окне:
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fglut"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_glut</b><i> (<code>int (*</code>draw<code>)(HMGL gr, void *p)</code>, <code>const char *</code>title, <code>void *</code>par)</i></dt>
+<dd><p>Создает экземпляр класса mglGraphGLUT  и связанное с ним окно. Одновременно может быть открыто только одно окно. Описание аргументов функции см. в <a href="mathgl_ru_4.html#mglGraphAB-class">Класс mglGraphAB</a>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005ffltk"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_fltk</b><i> (<code>int (*</code>draw<code>)(HMGL gr, void *p)</code>, <code>const char *</code>title, <code>void *</code>par)</i></dt>
+<dd><p>Создает экземпляр класса mglGraphFLTK и связанное с ним окно. Одновременно может быть открыто несколько окно. Однако Вы должны вызвать функцию <code>mgl_fltk_run()</code> для начала обработки сообщений окну. Описание аргументов функции см. в <a href="mathgl_ru_4.html#mglGraphAB-class">Класс mglGraphAB</a>. Замечу, что параметр <var>draw</var> может быть равным <code>NULL</code> для отображения текущей статической картинки (анимация и слайды не доступны).
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fqt"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_qt</b><i> (<code>int (*</code>draw<code>)(HMGL gr, void *p)</code>, <code>const char *</code>title, <code>void *</code>par)</i></dt>
+<dd><p>Создает экземпляр класса mglGraphQT и связанное с ним окно. Одновременно может быть открыто несколько окно. Однако Вы должны вызвать функцию <code>mgl_qt_run()</code> для начала обработки сообщений окну. Описание аргументов функции см. в <a href="mathgl_ru_4.html#mglGraphAB-class">Класс mglGraphAB</a>. Замечу, что параметр <var>draw</var> может быть равным <code>NULL</code> для отображения текущей статической картинки (анимация и слайды не доступны).
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005ffltk_005frun"></a><u>C function:</u> <code>void</code> <b>mgl_fltk_run</b><i> ()</i></dt>
+<dd><p>Запускает цикл обработки сообщений FLTK. Обычно программа завершает функцию main() вызовом <code>return mgl_fltk_run();</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005ffltk_005fthread"></a><u>C function:</u> <code>void</code> <b>mgl_fltk_thread</b><i> ()</i></dt>
+<dd><p>Запускает цикл обработки сообщений FLTK. В отличие от <code>mgl_fltk_run()</code> цикл запускается в отдельном потоке, так что основная программа продолжает выполнение сразу.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fqt_005frun"></a><u>C function:</u> <code>void</code> <b>mgl_qt_run</b><i> ()</i></dt>
+<dd><p>Запускает цикл обработки сообщений Qt. Обычно программа завершает функцию main() вызовом <code>return mgl_qt_run();</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fqt_005fthread"></a><u>C function:</u> <code>void</code> <b>mgl_qt_thread</b><i> ()</i></dt>
+<dd><p>Запускает цикл обработки сообщений Qt. В отличие от <code>mgl_qt_run()</code> цикл запускается в отдельном потоке, так что основная программа продолжает выполнение сразу.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fupdate"></a><u>C function:</u> <code>void</code> <b>mgl_update</b><i> (<code>HMGL</code> graph)</i></dt>
+<dd><p>Обновляет содержимое экрана.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fset_005fshow_005fmouse_005fpos"></a><u>C function:</u> <code>void</code> <b>mgl_set_show_mouse_pos</b><i> (<code>HMGL</code> graph, <code>int</code> enable)</i></dt>
+<dd><p>Switch to show or not in the widget the last mouse click position.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fget_005flast_005fmouse_005fpos"></a><u>C function:</u> <code>void</code> <b>mgl_get_last_mouse_pos</b><i> (<code>HMGL</code> graph, <code>float *</code>x, <code>float *</code>y, <code>float *</code>z)</i></dt>
+<dd><p>Last position of mouse click.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcalc_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_calc_xyz</b><i> (<code>HMGL</code> graph, <code>int</code> xs, <code>int</code> ys, <code>float *</code>x, <code>float *</code>y, <code>float *</code>z)</i></dt>
+<dd><p>Calculate 3D coordinate {x,y,z} for screen point {xs,ys}. At this moment it ignore perspective and transformation formulas (curvilinear coordinates). The calculation are done for the last used InPlot (see section <a href="mathgl_ru_3.html#Transformation-matrix">Матрица преобразования</a>).
+</p></dd></dl>
+
+
+</li><li> Functions for data creation:
+<dl>
+<dt><a name="index-mgl_005fcreate_005fdata"></a><u>C function:</u> <code>HMDT</code> <b>mgl_create_data</b><i> ()</i></dt>
+<dd><p>Create simple instance of class mglData.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fdata_005fsize"></a><u>C function:</u> <code>HMDT</code> <b>mgl_create_data_size</b><i> (<code>int</code> nx, <code>int</code> ny, <code>int</code> nz)</i></dt>
+<dd><p>Create instance of class mglData with specified sizes.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fdata_005ffile"></a><u>C function:</u> <code>HMDT</code> <b>mgl_create_data_file</b><i> (<code>const char *</code>fname)</i></dt>
+<dd><p>Create instance of class mglData and fill it by data from text file.
+</p></dd></dl>
+
+</li><li> Each created object <strong>must</strong> be deleted after usage by functions:
+<dl>
+<dt><a name="index-mgl_005fdelete_005fgraph"></a><u>C function:</u> <code>void</code> <b>mgl_delete_graph</b><i> (<code>HMGL</code> graph)</i></dt>
+<dd><p>Delete the instance of class. Must be used after plotting for every created graphical object.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fdelete_005fdata"></a><u>C function:</u> <code>void</code> <b>mgl_delete_data</b><i> (<code>HMDT</code> dat)</i></dt>
+<dd><p>Delete the instance of class. Must be used after using for every created data object.
+</p></dd></dl>
+</li></ul>
+
+<hr size="6">
+<a name="Python-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#C-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Thanks" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Interfaces" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Python-_0438_043d_0442e_0440_0444e_0439_0441"></a>
+<h3 class="subsection">1.6.2 Python интерфейс</h3>
+
+<p>MathGL provide the interface to a set of languages via SWIG library. Some of these languages support classes. The typical example is Python &ndash; which is denoted in the chapter title.
+</p>
+<p>To use Python classes just execute &lsquo;<samp>import mathgl</samp>&rsquo;. The simplest example will be:
+</p><pre class="verbatim">import mathgl
+a=mathgl.mglGraph()
+a.Box()
+a.WritePNG(&lt;/samp&gt;&amp;rsquo;test.png&lt;/samp&gt;&amp;rsquo;)
+</pre><p>Alternatively you can import all classes from <code>mathgl</code> module and easily access MathGL classes: 
+</p><pre class="verbatim">from mathgl import *
+a=mglGraph()
+a.Box()
+a.WritePNG(&lt;/samp&gt;&amp;rsquo;test.png&lt;/samp&gt;&amp;rsquo;)
+</pre><p>It become useful if you will create many <code>mglData</code> object, for example.
+</p>
+<p>There are 2 classes in Python interface:
+</p><ul>
+<li> <code>mglGraph</code>
+&ndash; provide practically the same functionality as C++ class <code>mglGraph</code> (see section <a href="mathgl_ru_3.html#MathGL-core">Ядро MathGL</a>). But it is not abstract class and it allows one to select at construction stage which plotter (ZB or PS and so on) will be used.
+</li><li> <code>mglData</code>
+&ndash; is absolutely the same class as C++ <code>mglData</code> (see section <a href="mathgl_ru_6.html#mglData-class">Класс mglData</a>). But an additional feature to acess data values is added. You can use construction like this: <code>dat[i]=sth;</code> or <code>sth=dat[i]</code> at this flat representation of data is used (i.e., <var>i</var> can be in range 0...nx*nx*nz-1. Also you can import NumPy arrays as input arguments: <code>mgl_dat = mglData(numpy_dat);</code>.
+
+<p>To use Python classes just execute &lsquo;<samp>import mathgl</samp>&rsquo;. The simplest example will be:
+</p><pre class="verbatim">import mathgl
+a=mathgl.mglGraph()
+a.Box()
+a.WritePNG(&lt;/samp&gt;&amp;rsquo;test.png&lt;/samp&gt;&amp;rsquo;)
+</pre><p>Alternatively you can import all classes from <code>mathgl</code> module and easily access MathGL classes: 
+</p><pre class="verbatim">from mathgl import *
+a=mglGraph()
+a.Box()
+a.WritePNG(&lt;/samp&gt;&amp;rsquo;test.png&lt;/samp&gt;&amp;rsquo;)
+</pre><p>It become useful if you will create many <code>mglData</code> object, for example.
+</p>
+<p>There are 2 classes in Python interface:
+</p><ul>
+<li> <code>mglGraph</code>
+&ndash; provide practically the same functionality as C++ class <code>mglGraph</code> (see section <a href="mathgl_ru_3.html#MathGL-core">Ядро MathGL</a>). But it is not abstract class and it allows one to select at construction stage which plotter (ZB or PS and so on) will be used.
+</li><li> <code>mglData</code>
+&ndash; is absolutely the same class as C++ <code>mglData</code> (see section <a href="mathgl_ru_6.html#mglData-class">Класс mglData</a>). But an additional feature to acess data values is added. You can use construction like this: <code>dat[i]=sth;</code> or <code>sth=dat[i]</code> at this flat representation of data is used (i.e., <var>i</var> can be in range 0...nx*nx*nz-1.
+</li></ul>
+
+<p>There is main difference from C++ classes &ndash; Python class <code>mglGraph</code> don&lt;/samp&gt;&amp;rsquo;t have variables (options). All corresponding features are moved to methods.
+The core of MathGL Python class is <strong>mglGraph</strong> class. It contains a lot of plotting functions for 1D, 2D and 3D plots. So most of sections is describe its methods. Its constructor have following arguments:
+</p>
+<dl>
+<dt><a name="index--on-mglGraph-_0028Python_0029"></a><u>Constructor on mglGraph (Python):</u> <b><code></code></b><i> mglGraph (<code>int</code> kind=<code>0</code>, <code>int</code> width=<code>600</code>, <code>int</code> height=<code>400</code>)</i></dt>
+<dd><p>Create the instance of class mglGraph with specified sizes <var>width</var> and <var>height</var>. Parameter <var>type</var> may have following values: &lsquo;<samp>0</samp>&rsquo; &ndash; use <code>mglGraphZB</code> plotter (default), &lsquo;<samp>1</samp>&rsquo; &ndash; use <code>mglGraphPS</code> plotter, &lsquo;<samp>2</samp>&rsquo; &ndash; use <code>mglGraphGL</code> plotter, &lsquo;<samp>3</samp>&rsquo; &ndash; use <code>mglGraphIDTF</code> plotter.
+</p></dd></dl>
+</li></ul>
+
+<p>There is main difference from C++ classes &ndash; Python class <code>mglGraph</code> don&lt;/samp&gt;&amp;rsquo;t have variables (options). All corresponding features are moved to methods. The core of MathGL Python class is <strong>mglGraph</strong> class. It contains a lot of plotting functions for 1D, 2D and 3D plots. So most of sections is describe its methods. Its constructor have following arguments:
+</p>
+<dl>
+<dt><a name="index--on-mglGraph-_0028Python_0029-1"></a><u>Constructor on mglGraph (Python):</u> <b><code></code></b><i> mglGraph (<code>int</code> kind=<code>0</code>, <code>int</code> width=<code>600</code>, <code>int</code> height=<code>400</code>)</i></dt>
+<dd><p>Create the instance of class mglGraph with specified sizes <var>width</var> and <var>height</var>. Parameter <var>type</var> may have following values: &lsquo;<samp>0</samp>&rsquo; &ndash; use <code>mglGraphZB</code> plotter (default), &lsquo;<samp>1</samp>&rsquo; &ndash; use <code>mglGraphPS</code> plotter, &lsquo;<samp>2</samp>&rsquo; &ndash; use <code>mglGraphGL</code> plotter, &lsquo;<samp>3</samp>&rsquo; &ndash; use <code>mglGraphIDTF</code> plotter.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Thanks"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Python-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0411_043b_0430g_043e_0434_0430_0440_043d_043e_0441_0442_0438"></a>
+<h2 class="section">1.7 Благодарности</h2>
+
+<ul>
+<li>
+My special thanks to Marina Balakina for the patience during library writing and for the help in documentation writing and spelling.
+</li><li>
+I&lt;/samp&gt;&amp;rsquo;m thankful to D. Kulagin and S.M. Plis for making Debian packages.
+</li><li>
+I&lt;/samp&gt;&amp;rsquo;m thankful to M. Vidassov for the help in handling solid UTF-8 fonts.
+</li><li>
+I&lt;/samp&gt;&amp;rsquo;m thankful to N. Troickiy and V. Lipatov for making RPM packages.
+</li><li>
+I&lt;/samp&gt;&amp;rsquo;m thankful to S. Skobelev, A. Korotkevich, V. Onuchin, S.M. Plis, R. Kiselev, A. Ivanov, M. Vidiassov and V. Lipatov for fruitful comments.
+</li></ul>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_10.html b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_10.html
new file mode 100644
index 0000000..c595635
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_10.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: A. Символы TeX</title>
+
+<meta name="description" content="MathGL 1.11: A. Символы TeX">
+<meta name="keywords" content="MathGL 1.11: A. Символы TeX">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="TeX_002dlike-symbols"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_9.html#Stereo-image-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_0438_043c_0432_043e_043b_044b-TeX"></a>
+<h1 class="appendix">A. Символы TeX</h1>
+<p>Ниже приведен полный список TeX-их команд, распознаваемых MathGL. Если команда была не распознана, то она будет напечатана как есть с пропущенным символом &lsquo;<samp>\</samp>&rsquo;. Например, &lsquo;<samp>\#</samp>&rsquo; выдаст &ldquo;#&rdquo;, &lsquo;<samp>\\</samp>&rsquo; выдаст &ldquo;\&rdquo;, &lsquo;<samp>\qq</samp>&rsquo; выдаст &ldquo;qq&rdquo;.
+</p>
+<p><strong>Положение символов</strong>: _, ^, @.
+</p>
+<p><strong>Стиль текста</strong>: \big, \b, \textbf, \i, \textit, \bi, \r, \textrm, \a, \overline, \u, \underline, \w, \wire, #, \color[wkrgbcymhRGBCYMHWlenupqLENUPQ]
+</p>
+<p><strong>Корни</strong>: \sqrt, \sqrt3, \sqrt4
+</p>
+<p><strong>Дроби</strong>: \frac, \stack, \overset, \underset, \stackr, \stackl
+</p>
+<p><strong>Акценты</strong>: \hat, \tilde, \dot, \ddot, \dddot, \ddddot, \acute, \check, \grave, \vec, \bar, \breve
+</p>
+<p><strong>Специальные символы</strong>:
+\# (#), \% (%), \&amp; (&amp;), \^ (^).
+</p>
+<p>\AA (Å), \AE (Æ), \APLboxquestion (⍰), \APLboxupcaret (⍓), \APLnotbackslash (⍀), \APLnotslash (⌿), \Alpha (Α), \And (&amp;), \Angstrom (Å), \Barv (⫧), \BbbC (ℂ), \BbbGamma (ℾ), \BbbH (ℍ), \BbbN (ℕ), \BbbP (ℙ), \BbbPi (ℿ), \BbbQ (ℚ), \BbbR (ℝ), \BbbZ (ℤ), \Bbbgamma (ℽ), \Bbbpi (ℼ), \Bbbsum (⅀), \Beta (Β), \Bumpeq (≎), \Cap (⋒), \Chi (Χ), \Colon (∷), \Coloneq (⩴), \Cup (⋓), \DDownarrow (⟱), \DH (Ð), \DJ (Đ), \DashV (⫥), \DashVDash (⟚), \Dashv (⫤), \Ddownarrow (⤋), \Delta (Δ), \Digamma (Ϝ), \Doteq (≑), \Downarrow (⇓), \Epsilon (Ε), \Equiv (≣), \Eta (Η), \Eulerconst (ℇ), \Exclam (‼), \Finv (Ⅎ), \Game (⅁), \Gamma (Γ), \Gt (⪢), \Hermaphrodite (⚥), \Im (ℑ), \Iota (Ι), \Kappa (Κ), \Koppa (Ϟ), \L (Ł), \LLeftarrow (⭅), \Lambda (Λ), \Lbrbrak (⟬), \Ldsh (↲), \Leftarrow (⇐), \Leftrightarrow (⇔), \Lleftarrow (⇚), \Longleftarrow (⟸), \Longleftrightarrow (⟺), \Longmapsfrom (⟽), \Longmapsto (⟾), \Longrightarrow (⟹), \Lparengtr (⦕), \Lsh (↰), \Lt (⪡), \Lvzigzag (⧚), \Mapsfrom (⤆), \Mapsto (⤇), \Mu (Μ), \NG (Ŋ), \Nearrow (⇗), \Not (⫬), \Nu (Ν), \Nwarrow (⇖), \O (Ø), \OE (Œ), \Ohorn (Ơ), \Omega (Ω), \Omicron (Ο), \Otimes (⨷), \P (¶), \Phi (Φ), \Pi (Π), \Planckconst (ℎ), \Prec (⪻), \PropertyLine (⅊), \Psi (Ψ), \QED (∎), \Question (⁇), \RRightarrow (⭆), \Rbrbrak (⟭), \Rdsh (↳), \Re (ℜ), \Rho (Ρ), \Rightarrow (⇒), \Rparenless (⦖), \Rrightarrow (⇛), \Rsh (↱), \Rvzigzag (⧛), \S (§), \Sc (⪼), \Searrow (⇘), \Sigma (Σ), \Sqcap (⩎), \Sqcup (⩏), \Stigma (Ϛ), \Subset (⋐), \Supset (⋑), \Swarrow (⇙), \TH (Þ), \Tau (Τ), \Theta (Θ), \UUparrow (⟰), \Uhorn (Ư), \Uparrow (⇑), \Updownarrow (⇕), \Uuparrow (⤊), \VDash (⊫), \Vbar (⫫), \Vdash (⊩), \Vee (⩔), \Vert (‖), \Vvdash (⊪), \Vvert (⦀), \Wedge (⩓), \XBox (☒), \Xi (Ξ), \Yup (⅄), \Zbar (Ƶ), \Zeta (Ζ).
+</p>
+<p>\aa (å), \ac (∾), \accurrent (⏦), \acidfree (♾), \acwcirclearrow (⥀), \acwgapcirclearrow (⟲), \acwleftarcarrow (⤹), \acwopencirclearrow (↺), \acwoverarcarrow (⤺), \acwundercurvearrow (⤻), \adots (⋰), \ae (æ), \aleph (ℵ), \alpha (α), \amalg (⨿), \angdnr (⦟), \angle (∠), \angles (⦞), \angleubar (⦤), \approx (≈), \approxeq (≊), \approxeqq (⩰), \approxident (≋), \arceq (≘), \aries (♈), \assert (⊦), \ast (∗), \asteq (⩮), \astrosun (☉), \asymp (≍), \awint (⨑).
+</p>
+<p>\bNot (⫭), \backcong (≌), \backdprime (‶), \backepsilon (϶), \backprime (‵), \backsim (∽), \backsimeq (⋍), \backslash (\), \backtrprime (‷), \bagmember (⋿), \barV (⫪), \barcap (⩃), \barcup (⩂), \bardownharpoonleft (⥡), \bardownharpoonright (⥝), \barleftarrow (⇤), \barleftarrowrightarrowbar (↹), \barleftharpoondown (⥖), \barleftharpoonup (⥒), \barovernorthwestarrow (↸), \barrightarrowdiamond (⤠), \barrightharpoondown (⥟), \barrightharpoonup (⥛), \baruparrow (⤒), \barupharpoonleft (⥘), \barupharpoonright (⥔), \barvee (⊽), \barwedge (⊼), \bbrktbrk (⎶), \bdHrule (═), \bdVrule (║), \bdbVbH (╬), \bdbVbh (╫), \bdbVlH (╣), \bdbVlh (╢), \bdbVrH (╠), \bdbVrh (╟), \bdbvbH (╪), \bdbvbh (┼), \bdbvlH (╡), \bdbvlh (┤), \bdbvrH (╞), \bdbvrh (├), \bddVbH (╦), \bddVbh (╥), \bddVlH (╗), \bddVlh (╖), \bddVrH (╔), \bddVrh (╓), \bddvbH (╤), \bddvbh (┬), \bddvlH (╕), \bddvlh (┐), \bddvrH (╒), \bddvrh (┌), \bdhrule (─), \bdnesw (╱), \bdnwse (╲), \bdquadhdash (┈), \bdquadvdash (┊), \bdtriplevdash (┆), \bduVbH (╩), \bduVbh (╨), \bduVlH (╝), \bduVlh (╜), \bduVrH (╚), \bduVrh (╙), \bduvbH (╧), \bduvbh (┴), \bduvlH (╛), \bduvlh (┘), \bduvrH (╘), \bduvrh (└), \bdvrule (│), \because (∵), \benzenr (⏣), \beta (β), \beth (ℶ), \between (≬), \bigblacktriangledown (▼), \bigblacktriangleup (▲), \bigbot (⟘), \bigcap (⋂), \bigcup (⋃), \bigslopedvee (⩗), \bigslopedwedge (⩘), \bigstar (★), \bigtop (⟙), \bigtriangledown (▽), \bigtriangleup (△), \bigvee (⋁), \bigwedge (⋀), \bigwhitestar (☆), \blackcircledownarrow (⧭), \blackcircledrightdot (⚈), \blackcircledsanseight (➑), \blackcircledsansfive (➎), \blackcircledsansfour (➍), \blackcircledsansnine (➒), \blackcircledsansone (➊), \blackcircledsansseven (➐), \blackcircledsanssix (➏), \blackcircledsansten (➓), \blackcircledsansthree (➌), \blackcircledsanstwo (➋), \blackcircledtwodots (⚉), \blackcircleulquadwhite (◕), \blackdiamonddownarrow (⧪), \blackhourglass (⧗), \blackinwhitediamond (◈), \blackinwhitesquare (▣), \blacklefthalfcircle (◖), \blackpointerleft (◄), \blackpointerright (►), \blackrighthalfcircle (◗), \blacksmiley (☻), \blacktriangle (▴), \blacktriangledown (▾), \blacktriangleleft (◀), \blacktriangleright (▶), \blkhorzoval (⬬), \blkvertoval (⬮), \blockfull (█), \blockhalfshaded (▒), \blocklefthalf (▌), \blocklowhalf (▄), \blockqtrshaded (░), \blockrighthalf (▐), \blockthreeqtrshaded (▓), \blockuphalf (▀), \bot (⊥), \botsemicircle (◡), \bowtie (⋈), \box (◻), \boxast (⧆), \boxbar (◫), \boxbox (⧈), \boxbslash (⧅), \boxcircle (⧇), \boxdiag (⧄), \boxdot (⊡), \boxminus (⊟), \boxonbox (⧉), \boxplus (⊞), \boxtimes (⊠), \bsimilarleftarrow (⭁), \bsimilarrightarrow (⭇), \bsolhsub (⟈), \btimes (⨲), \bullet (∙), \bullseye (◎), \bumpeq (≏), \bumpeqq (⪮).
+</p>
+<p>\calB (ℬ), \calE (ℰ), \calF (ℱ), \calH (ℋ), \calM (ℳ), \calR (ℛ), \cap (∩), \capdot (⩀), \capwedge (⩄), \caretinsert (‸), \carreturn (⏎), \carriagereturn (↵), \ccwundercurvearrow (⤿), \cdot (⋅), \cdotp (·), \cdots (⋯), \cdprime (ʺ), \checkmark (✓), \chi (χ), \cirE (⧃), \cirbot (⟟), \circ (∘), \circeq (≗), \circfint (⨐), \circlebottomhalfblack (◒), \circledA (Ⓐ), \circledB (Ⓑ), \circledC (Ⓒ), \circledD (Ⓓ), \circledE (Ⓔ), \circledF (Ⓕ), \circledG (Ⓖ), \circledH (Ⓗ), \circledI (Ⓘ), \circledJ (Ⓙ), \circledK (Ⓚ), \circledL (Ⓛ), \circledM (Ⓜ), \circledN (Ⓝ), \circledO (Ⓞ), \circledP (Ⓟ), \circledQ (Ⓠ), \circledR (Ⓡ), \circledS (Ⓢ), \circledT (Ⓣ), \circledU (Ⓤ), \circledV (Ⓥ), \circledW (Ⓦ), \circledX (Ⓧ), \circledY (Ⓨ), \circledZ (Ⓩ), \circleda (ⓐ), \circledast (⊛), \circledb (ⓑ), \circledbullet (⦿), \circledc (ⓒ), \circledcirc (⊚), \circledd (ⓓ), \circleddash (⊝), \circlede (ⓔ), \circledeight (⑧), \circledequal (⊜), \circledf (ⓕ), \circledfive (⑤), \circledfour (④), \circledg (ⓖ), \circledh (ⓗ), \circledi (ⓘ), \circledj (ⓙ), \circledk (ⓚ), \circledl (ⓛ), \circledm (ⓜ), \circledn (ⓝ), \circlednine (⑨), \circledo (ⓞ), \circledone (①), \circledownarrow (⧬), \circledp (ⓟ), \circledparallel (⦷), \circledq (ⓠ), \circledr (ⓡ), \circledrightdot (⚆), \circleds (ⓢ), \circledsanseight (➇), \circledsansfive (➄), \circledsansfour (➃), \circledsansnine (➈), \circledsansone (➀), \circledsansseven (➆), \circledsanssix (➅), \circledsansten (➉), \circledsansthree (➂), \circledsanstwo (➁), \circledseven (⑦), \circledsix (⑥), \circledstar (✪), \circledt (ⓣ), \circledthree (③), \circledtwo (②), \circledtwodots (⚇), \circledu (ⓤ), \circledv (ⓥ), \circledvert (⦶), \circledw (ⓦ), \circledwhitebullet (⦾), \circledx (ⓧ), \circledy (ⓨ), \circledz (ⓩ), \circledzero (⓪), \circlehbar (⦵), \circlelefthalfblack (◐), \circlellquad (◵), \circlelrquad (◶), \circleonleftarrow (⬰), \circleonrightarrow (⇴), \circlerighthalfblack (◑), \circletophalfblack (◓), \circleulquad (◴), \circleurquad (◷), \circleurquadblack (◔), \circlevertfill (◍), \cirmid (⫯), \cirscir (⧂), \clangle (〈), \closedvarcap (⩍), \closedvarcup (⩌), \closedvarcupsmashprod (⩐), \closure (⁐), \cloverleaf (⌘), \clubsuit (♣), \colon (:), \colon (∶), \coloneq (≔), \commaminus (⨩), \complement (∁), \concavediamond (⟡), \concavediamondtickleft (⟢), \concavediamondtickright (⟣), \cong (≅), \congdot (⩭), \conictaper (⌲), \conjunction (☌), \coprod (∐), \cprime (ʹ), \crangle (〉), \csub (⫏), \csube (⫑), \csup (⫐), \csupe (⫒), \cuberoot (∛), \cup (∪), \cupdot (⊍), \cupleftarrow (⊌), \cupvee (⩅), \curlyeqprec (⋞), \curlyeqsucc (⋟), \curlyvee (⋎), \curlywedge (⋏), \curvearrowleft (↶), \curvearrowleftplus (⤽), \curvearrowright (↷), \curvearrowrightminus (⤼), \cwcirclearrow (⥁), \cwgapcirclearrow (⟳), \cwopencirclearrow (↻), \cwrightarcarrow (⤸), \cwundercurvearrow (⤾), \cylcty (⌭).
+</p>
+<p>\dag (†), \dagger (†), \daleth (ℸ), \danger (☡), \dashV (⫣), \dashVdash (⟛), \dashcolon (∹), \dashleftharpoondown (⥫), \dashrightharpoondown (⥭), \dashv (⊣), \dbkarow (⤏), \ddag (‡), \ddagger (‡), \ddots (⋱), \ddotseq (⩷), \delta (δ), \dh (ð), \diameter (⌀), \diamond (◇), \diamondbotblack (⬙), \diamondcdot (⟐), \diamondleftarrow (⤝), \diamondleftarrowbar (⤟), \diamondleftblack (⬖), \diamondrightblack (⬗), \diamondsuit (♢), \diamondtopblack (⬘), \dicei (⚀), \diceii (⚁), \diceiii (⚂), \diceiv (⚃), \dicev (⚄), \dicevi (⚅), \digamma (ϝ), \dingasterisk (✽), \dircurrent (⎓), \disin (⋲), \div (÷), \divideontimes (⋇), \dj (đ), \dlcrop (⌍), \doteq (≐), \dotequiv (⩧), \dotminus (∸), \dotplus (∔), \dots (…), \dotsim (⩪), \dotsminusdots (∺), \dottedcircle (◌), \dottedsquare (⬚), \dottimes (⨰), \doublebarvee (⩢), \doublebarwedge (⩞), \doubleplus (⧺), \downarrow (↓), \downarrowbar (⤓), \downarrowbarred (⤈), \downdasharrow (⇣), \downdownarrows (⇊), \downfishtail (⥿), \downharpoonleft (⇃), \downharpoonleftbar (⥙), \downharpoonright (⇂), \downharpoonrightbar (⥕), \downharpoonsleftright (⥥), \downrightcurvedarrow (⤵), \downtriangleleftblack (⧨), \downtrianglerightblack (⧩), \downuparrows (⇵), \downupharpoonsleftright (⥯), \downwhitearrow (⇩), \downzigzagarrow (↯), \dprime (″), \draftingarrow (➛), \drbkarow (⤐), \drcrop (⌌), \dsol (⧶), \dsub (⩤), \dualmap (⧟).
+</p>
+<p>\earth (♁), \egsdot (⪘), \eighthnote (♪), \elinters (⏧), \ell (ℓ), \elsdot (⪗), \emdash (—), \emptyset (∅), \emptysetoarr (⦳), \emptysetoarrl (⦴), \emptysetobar (⦱), \emptysetocirc (⦲), \endash (–), \enleadertwodots (‥), \envelope (✉), \eparsl (⧣), \epsilon (ϵ), \eqcirc (≖), \eqcolon (≕), \eqdef (≝), \eqdot (⩦), \eqeq (⩵), \eqeqeq (⩶), \eqgtr (⋝), \eqless (⋜), \eqqgtr (⪚), \eqqless (⪙), \eqqplus (⩱), \eqqsim (⩳), \eqqslantgtr (⪜), \eqqslantless (⪛), \eqsim (≂), \eqslantgtr (⪖), \eqslantless (⪕), \equalleftarrow (⭀), \equalparallel (⋕), \equalrightarrow (⥱), \equiv (≡), \equivDD (⩸), \equivVert (⩨), \equivVvert (⩩), \eqvparsl (⧥), \errbarblackcircle (⧳), \errbarblackdiamond (⧱), \errbarblacksquare (⧯), \errbarcircle (⧲), \errbardiamond (⧰), \errbarsquare (⧮), \eta (η), \euro (€), \exists (∃).
+</p>
+<p>\fallingdotseq (≒), \fbowtie (⧓), \fcmp (⨾), \fdiagovnearrow (⤯), \fdiagovrdiag (⤬), \female (♀), \figdash (‒), \fint (⨏), \fisheye (◉), \flat (♭), \fltns (⏥), \forall (∀), \forks (⫝̸), \forksnot (⫝), \forkv (⫙), \fourthroot (∜), \fourvdots (⦙), \fracfiveeighths (⅝), \fracfivesixths (⅚), \fracfourfifths (⅘), \fraconeeighth (⅛), \fraconefifth (⅕), \fraconesixth (⅙), \fraconethird (⅓), \fracseveneights (⅞), \fracslash (⁄), \fracthreeeighths (⅜), \fracthreefifths (⅗), \fractwofifths (⅖), \fractwothirds (⅔), \frakC (ℭ), \frakH (ℌ), \frakZ (ℨ), \frown (⌢), \frownie (☹), \fullouterjoin (⟗).
+</p>
+<p>\gamma (γ), \ge (≥), \geq (≥), \geqq (≧), \geqslant (⩾), \gescc (⪩), \gesdot (⪀), \gesdoto (⪂), \gesdotol (⪄), \gesles (⪔), \gets (←), \gg (≫), \ggg (⋙), \gggnest (⫸), \gimel (ℷ), \glE (⪒), \gla (⪥), \gleichstark (⧦), \glj (⪤), \gnapprox (⪊), \gneq (⪈), \gneqq (≩), \gnsim (⋧), \greater (&gt;), \gsime (⪎), \gsiml (⪐), \gtcc (⪧), \gtcir (⩺), \gtlpar (⦠), \gtquest (⩼), \gtrapprox (⪆), \gtrarr (⥸), \gtrdot (⋗), \gtreqless (⋛), \gtreqqless (⪌), \gtrless (≷), \gtrsim (≳), \guillemotleft («), \guillemotright (»), \guilsinglleft (‹), \guilsinglright (›).
+</p>
+<p>\harrowextender (⎯), \hatapprox (⩯), \hbar (ℏ), \heartsuit (♡), \hermitmatrix (⊹), \hexagon (⎔), \hexagonblack (⬣), \hiraganano (の), \hknearrow (⤤), \hknwarrow (⤣), \hksearow (⤥), \hkswarow (⤦), \hookleftarrow (↩), \hookrightarrow (↪), \horizbar (―), \hourglass (⧖), \house (⌂), \hrectangle (▭), \hrectangleblack (▬), \hslash (ℏ), \hyphenbullet (⁃), \hzigzag (〰).
+</p>
+<p>\iiiint (⨌), \iiint (∭), \iinfin (⧜), \iint (∬), \imageof (⊷), \in (∈), \incare (℅), \increment (∆), \infty (∞), \int (∫), \intBar (⨎), \intbar (⨍), \intbottom (⌡), \intcap (⨙), \intclockwise (∱), \intcup (⨚), \intercal (⊺), \interleave (⫴), \intextender (⎮), \intlharhk (⨗), \intprod (⨼), \intprodr (⨽), \inttop (⌠), \intx (⨘), \inversebullet (◘), \inversewhitecircle (◙), \invnot (⌐), \invwhitelowerhalfcircle (◛), \invwhiteupperhalfcircle (◚), \iota (ι), \ipasupgamma (ˠ), \ipasupl (ˡ), \ipasuprerglotstpp (ˤ), \ipasups (ˢ), \ipasupx (ˣ), \ipaunaspirated (˭), \ipavoicing (ˬ), \isinE (⋹), \isindot (⋵), \isinobar (⋷), \isins (⋴), \isinvb (⋸), \itBbbD (ⅅ), \itBbbd (ⅆ), \itBbbe (ⅇ), \itBbbi (ⅈ), \itBbbj (ⅉ).
+</p>
+<p>\jupiter (♃), \kappa (κ), \kernelcontraction (∻), \koppa (ϟ).
+</p>
+<p>\l (ł), \lAngle (⟪), \lBrace (⦃), \lBrack (⟦), \lParen (⦅), \lambda (λ), \lambdabar (ƛ), \langle (⟨), \langledot (⦑), \laplac (⧠), \lasp (ʽ), \lat (⪫), \late (⪭), \lbag (⟅), \lblkbrbrak (⦗), \lbrace ({), \lbracelend (⎩), \lbracemid (⎨), \lbraceuend (⎧), \lbrack ([), \lbrackextender (⎢), \lbracklend (⎣), \lbracklltick (⦏), \lbrackubar (⦋), \lbrackuend (⎡), \lbrackultick (⦍), \lbrbrak (❲), \lceil (⌈), \lcurvyangle (⧼), \ldasharrhead (⇠), \le (≤), \leadsto (↝), \leftarrow (←), \leftarrowapprox (⭊), \leftarrowbackapprox (⭂), \leftarrowbsimilar (⭋), \leftarrowless (⥷), \leftarrowonoplus (⬲), \leftarrowplus (⥆), \leftarrowshortrightarrow (⥃), \leftarrowsimilar (⥳), \leftarrowsubset (⥺), \leftarrowtail (↢), \leftarrowtriangle (⇽), \leftarrowx (⬾), \leftbkarrow (⤌), \leftcurvedarrow (⬿), \leftdasharrow (⇠), \leftdasharrowhead (⇡), \leftdbkarrow (⤎), \leftdbltail (⤛), \leftdotarrow (⬸), \leftdowncurvedarrow (⤶), \leftfishtail (⥼), \leftharpoondown (↽), \leftharpoondownbar (⥞), \leftharpoonsupdown (⥢), \leftharpoonup (↼), \leftharpoonupbar (⥚), \leftharpoonupdash (⥪), \leftleftarrows (⇇), \leftmoon (☾), \leftouterjoin (⟕), \leftrightarrow (↔), \leftrightarrowcircle (⥈), \leftrightarrows (⇆), \leftrightarrowtriangle (⇿), \leftrightharpoondowndown (⥐), \leftrightharpoondownup (⥋), \leftrightharpoons (⇋), \leftrightharpoonsdown (⥧), \leftrightharpoonsup (⥦), \leftrightharpoonupdown (⥊), \leftrightharpoonupup (⥎), \leftrightsquigarrow (↭), \leftsquigarrow (↜), \leftsquigarrow (⇜), \lefttail (⤙), \leftthreearrows (⬱), \leftthreetimes (⋋), \leftwhitearrow (⇦), \leq (≤), \leqq (≦), \leqqslant (⫹), \leqqslant (⫺), \leqslant (⩽), \lescc (⪨), \lesdot (⩿), \lesdoto (⪁), \lesdotor (⪃), \lesges (⪓), \less (&lt;), \lessapprox (⪅), \lessdot (⋖), \lesseqgtr (⋚), \lesseqqgtr (⪋), \lessgtr (≶), \lesssim (≲), \lfbowtie (⧑), \lfloor (⌊), \lftimes (⧔), \lgE (⪑), \lgblkcircle (⬤), \lgblksquare (⬛), \lgwhtcircle (◯), \lgwhtsquare (⬜), \lhd (⊲), \linefeed (↴), \ll (≪), \llangle (⦉), \llarc (◟), \llblacktriangle (◣), \llcorner (⌞), \lll (⋘), \lllnest (⫷), \llparenthesis (⦇), \lltriangle (◺), \lmoustache (⎰), \lnapprox (⪉), \lneq (⪇), \lneqq (≨), \lnsim (⋦), \longdashv (⟞), \longdivision (⟌), \longleftarrow (⟵), \longleftrightarrow (⟷), \longleftsquigarrow (⬳), \longmapsfrom (⟻), \longmapsto (⟼), \longrightarrow (⟶), \longrightsquigarrow (⟿), \looparrowleft (↫), \looparrowright (↬), \lowint (⨜), \lozenge (◊), \lozengeminus (⟠), \lparenextender (⎜), \lparenlend (⎝), \lparenless (⦓), \lparenuend (⎛), \lq (‘), \lrarc (◞), \lrblacktriangle (◢), \lrcorner (⌟), \lrtriangle (◿), \lrtriangleeq (⧡), \lsime (⪍), \lsimg (⪏), \lsqhook (⫍), \ltcc (⪦), \ltcir (⩹), \ltimes (⋉), \ltlarr (⥶), \ltquest (⩻), \ltrivb (⧏), \lvboxline (⎸), \lvzigzag (⧘).
+</p>
+<p>\male (♂), \maltese (✠), \mapsdown (↧), \mapsfrom (↤), \mapsto (↦), \mapsup (↥), \mdblkdiamond (⬥), \mdblklozenge (⬧), \mdblkrcl (⚫), \mdblksquare (◼), \mdlgblkcircle (●), \mdlgblkdiamond (◆), \mdlgblklozenge (⧫), \mdlgblksquare (■), \mdlgwhtcircle (○), \mdlgwhtdiamond (◇), \mdlgwhtsquare (□), \mdsmblkcircle (⦁), \mdsmblksquare (◾), \mdsmwhtcircl (⚬), \mdsmwhtsquare (◽), \mdwhtcircl (⚪), \mdwhtdiamond (⬦), \mdwhtlozenge (⬨), \mdwhtsquare (◻), \measangledltosw (⦯), \measangledrtose (⦮), \measangleldtosw (⦫), \measanglelutonw (⦩), \measanglerdtose (⦪), \measanglerutone (⦨), \measangleultonw (⦭), \measangleurtone (⦬), \measeq (≞), \measuredangle (∡), \measuredangleleft (⦛), \measuredrightangle (⊾), \medblackstar (⭑), \medmathspace ( ), \medwhitestar (⭐), \mercury (☿), \mho (℧), \mid (∣), \midbarvee (⩝), \midbarwedge (⩜), \midcir (⫰), \minus (−), \minusdot (⨪), \minusfdots (⨫), \minusrdots (⨬), \mlcp (⫛), \models (⊧), \mp (∓), \mu (μ), \multimap (⊸), \multimapinv (⟜).
+</p>
+<p>\nHdownarrow (⇟), \nHuparrow (⇞), \nLeftarrow (⇍), \nLeftrightarrow (⇎), \nRightarrow (⇏), \nVDash (⊯), \nVdash (⊮), \nVleftarrow (⇺), \nVleftarrowtail (⬺), \nVleftrightarrow (⇼), \nVrightarrow (⇻), \nVrightarrowtail (⤕), \nVtwoheadleftarrow (⬵), \nVtwoheadleftarrowtail (⬽), \nVtwoheadrightarrow (⤁), \nVtwoheadrightarrowtail (⤘), \nabla (∇), \napprox (≉), \nasymp (≭), \natural (♮), \ncong (≇), \ne (≠), \nearrow (↗), \neg (¬), \neovnwarrow (⤱), \neovsearrow (⤮), \neptune (♆), \neq (≠), \nequiv (≢), \neswarrow (⤢), \neuter (⚲), \nexists (∄), \ng (ŋ), \ngeq (≱), \ngtr (≯), \ngtrless (≹), \ngtrsim (≵), \nhVvert (⫵), \nhpar (⫲), \ni (∋), \niobar (⋾), \nis (⋼), \nisd (⋺), \nleftarrow (↚), \nleftrightarrow (↮), \nleq (≰), \nless (≮), \nlessgtr (≸), \nlesssim (≴), \nmid (∤), \nni (∌), \nobreakhyphen (‑), \notin (∉), \nparallel (∦), \npolint (⨔), \nprec (⊀), \npreccurlyeq (⋠), \nrightarrow (↛), \nsim (≁), \nsime (≄), \nsqsubseteq (⋢), \nsqsupseteq (⋣), \nsubset (⊄), \nsubseteq (⊈), \nsucc (⊁), \nsucccurlyeq (⋡), \nsupset (⊅), \nsupseteq (⊉), \ntriangleleft (⋪), \ntrianglelefteq (⋬), \ntriangleright (⋫), \ntrianglerighteq (⋭), \nu (ν), \nvDash (⊭), \nvLeftarrow (⤂), \nvLeftrightarrow (⤄), \nvRightarrow (⤃), \nvdash (⊬), \nvinfty (⧞), \nvleftarrow (⇷), \nvleftarrowtail (⬹), \nvleftrightarrow (⇹), \nvrightarrow (⇸), \nvrightarrowtail (⤔), \nvtwoheadleftarrow (⬴), \nvtwoheadleftarrowtail (⬼), \nvtwoheadrightarrow (⤀), \nvtwoheadrightarrowtail (⤗), \nwarrow (↖), \nwovnearrow (⤲), \nwsearrow (⤡).
+</p>
+<p>\o (ø), \obar (⌽), \obot (⦺), \obrbrak (⏠), \obslash (⦸), \odiv (⨸), \odot (⊙), \odotslashdot (⦼), \oe (œ), \ogreaterthan (⧁), \ohorn (ơ), \oiiint (∰), \oiint (∯), \oint (∮), \ointctrclockwise (∳), \olcross (⦻), \oldKoppa (Ϙ), \oldkoppa (ϙ), \olessthan (⧀), \omega (ω), \omicron (ο), \ominus (⊖), \operp (⦹), \oplus (⊕), \opluslhrim (⨭), \oplusrhrim (⨮), \origof (⊶), \oslash (⊘), \otimes (⊗), \otimeshat (⨶), \otimeslhrim (⨴), \otimesrhrim (⨵), \overbrace (⏞), \overbracket (⎴), \overline (‾), \overparen (⏜), \owns (∋).
+</p>
+<p>\parallel (∥), \parallelogram (▱), \parallelogramblack (▰), \parsim (⫳), \partial (∂), \partialmeetcontraction (⪣), \pentagon (⬠), \pentagonblack (⬟), \perp (⟂), \perps (⫡), \phi (ϕ), \phone (☎), \pi (π), \pitchfork (⋔), \plusdot (⨥), \pluseqq (⩲), \plushat (⨣), \plussim (⨦), \plussubtwo (⨧), \plustrif (⨨), \pluto (♇), \pm (±), \pointnt (⨕), \postalmark (〒), \prec (≺), \precapprox (⪷), \preccurlyeq (≼), \preceq (⪯), \preceqq (⪳), \precnapprox (⪹), \precneq (⪱), \precneqq (⪵), \precnsim (⋨), \precsim (≾), \prime (′), \prod (∏), \profalar (⌮), \profline (⌒), \profsurf (⌓), \propto (∝), \prurel (⊰), \psi (ψ), \pullback (⟓), \pushout (⟔).
+</p>
+<p>\qprime (⁗), \quarternote (♩), \questeq (≟), \quotdblbase („), \quotdblright (‟), \quotsinglbase (‚), \quotsinglright (‛).
+</p>
+<p>\rAngle (⟫), \rBrace (⦄), \rBrack (⟧), \rParen (⦆), \rangle (⟩), \rangledot (⦒), \rangledownzigzagarrow (⍼), \rasp (ʼ), \rbag (⟆), \rblkbrbrak (⦘), \rbrace (}), \rbracelend (⎭), \rbracemid (⎬), \rbraceuend (⎫), \rbrack (]), \rbrackextender (⎥), \rbracklend (⎦), \rbracklrtick (⦎), \rbrackubar (⦌), \rbrackuend (⎤), \rbrackurtick (⦐), \rbrbrak (❳), \rceil (⌉), \rcurvyangle (⧽), \rdiagovfdiag (⤫), \rdiagovsearrow (⤰), \recorder (⌕), \revangle (⦣), \revangleubar (⦥), \revemptyset (⦰), \revnmid (⫮), \rfbowtie (⧒), \rfloor (⌋), \rftimes (⧕), \rhd (⊳), \rho (ρ), \righarrowbsimilar (⭌), \rightangle (∟), \rightanglemdot (⦝), \rightanglesqr (⦜), \rightarrow (→), \rightarrowapprox (⥵), \rightarrowbackapprox (⭈), \rightarrowbar (⇥), \rightarrowdiamond (⤞), \rightarrowgtr (⭃), \rightarrowonoplus (⟴), \rightarrowplus (⥅), \rightarrowshortleftarrow (⥂), \rightarrowsimilar (⥴), \rightarrowsupset (⭄), \rightarrowtail (↣), \rightarrowtriangle (⇾), \rightarrowx (⥇), \rightbkarrow (⤍), \rightcurvedarrow (⤳), \rightdasharrow (⇢), \rightdbltail (⤜), \rightdotarrow (⤑), \rightdowncurvedarrow (⤷), \rightfishtail (⥽), \rightharpoondown (⇁), \rightharpoondownbar (⥗), \rightharpoonsupdown (⥤), \rightharpoonup (⇀), \rightharpoonupbar (⥓), \rightharpoonupdash (⥬), \rightimply (⥰), \rightleftarrows (⇄), \rightleftharpoons (⇌), \rightleftharpoonsdown (⥩), \rightleftharpoonsup (⥨), \rightmoon (☽), \rightouterjoin (⟖), \rightpentagon (⭔), \rightpentagonblack (⭓), \rightrightarrows (⇉), \rightsquigarrow (↝), \rightsquigarrow (⇝), \righttail (⤚), \rightthreearrows (⇶), \rightthreetimes (⋌), \rightwhitearrow (⇨), \ringplus (⨢), \risingdotseq (≓), \rmoustache (⎱), \rparenextender (⎟), \rparengtr (⦔), \rparenlend (⎠), \rparenuend (⎞), \rppolint (⨒), \rq (’), \rrangle (⦊), \rrparenthesis (⦈), \rsolbar (⧷), \rsqhook (⫎), \rsub (⩥), \rtimes (⋊), \rtriltri (⧎), \ruledelayed (⧴), \rvboxline (⎹), \rvzigzag (⧙).
+</p>
+<p>\sampi (ϡ), \sansLmirrored (⅃), \sansLturned (⅂), \saturn (♄), \scissors (✂), \scpolint (⨓), \scrB (ℬ), \scrE (ℰ), \scrF (ℱ), \scrH (ℋ), \scrI (ℐ), \scrL (ℒ), \scrM (ℳ), \scrR (ℛ), \scre (ℯ), \scrg (ℊ), \scro (ℴ), \scurel (⊱), \searrow (↘), \seovnearrow (⤭), \setminus (∖), \setminus (⧵), \sharp (♯), \shortdowntack (⫟), \shortleftarrow (←), \shortlefttack (⫞), \shortrightarrow (→), \shortrightarrowleftarrow (⥄), \shortuptack (⫠), \shuffle (⧢), \sigma (σ), \silon (υ), \silon (ϒ), \sim (∼), \simeq (≃), \simgE (⪠), \simgtr (⪞), \similarleftarrow (⭉), \similarrightarrow (⥲), \simlE (⪟), \simless (⪝), \simminussim (⩬), \simneqq (≆), \simplus (⨤), \simrdots (⩫), \sinewave (∿), \slash (∕), \smallblacktriangleleft (◂), \smallblacktriangleright (▸), \smalldiamond (⋄), \smallin (∊), \smallint (∫), \smallni (∍), \smallsetminus (∖), \smalltriangleleft (◃), \smalltriangleright (▹), \smashtimes (⨳), \smblkdiamond (⬩), \smblklozenge (⬪), \smblksquare (▪), \smeparsl (⧤), \smile (⌣), \smiley (☺), \smt (⪪), \smte (⪬), \smwhitestar (⭒), \smwhtcircle (◦), \smwhtlozenge (⬫), \smwhtsquare (▫), \spadesuit (♠), \sphericalangle (∢), \sphericalangleup (⦡), \sqcap (⊓), \sqcup (⊔), \sqint (⨖), \sqlozenge (⌑), \sqrt (√), \sqrt3 (∛), \sqrt4 (∜), \sqrtbottom (⎷), \sqsubset (⊏), \sqsubseteq (⊑), \sqsubsetneq (⋤), \sqsupset (⊐), \sqsupseteq (⊒), \sqsupsetneq (⋥), \squarecrossfill (▩), \squaregrayfill (▩), \squarehfill (▤), \squarehvfill (▦), \squareleftblack (◧), \squareleftblack (◨), \squarellblack (⬕), \squarellquad (◱), \squarelrblack (◪), \squarelrquad (◲), \squareneswfill (▨), \squarenwsefill (▧), \squareulblack (◩), \squareulquad (◰), \squareurblack (⬔), \squareurquad (◳), \squarevfill (▥), \squoval (▢), \ss (ß), \star (⋆), \stareq (≛), \sterling (£), \stigma (ϛ), \strns (⏤), \subedot (⫃), \submult (⫁), \subrarr (⥹), \subset (⊂), \subsetapprox (⫉), \subsetcirc (⟃), \subsetdot (⪽), \subseteq (⊆), \subseteqq (⫅), \subsetneq (⊊), \subsetneqq (⫋), \subsetplus (⪿), \subsim (⫇), \subsub (⫕), \subsup (⫓), \succ (≻), \succapprox (⪸), \succcurlyeq (≽), \succeq (⪰), \succeqq (⪴), \succnapprox (⪺), \succneq (⪲), \succneqq (⪶), \succnsim (⋩), \succsim (≿), \sum (∑), \sumbottom (⎳), \sumint (⨋), \sumtop (⎲), \sun (☼), \supdsub (⫘), \supedot (⫄), \suphsol (⟉), \suphsub (⫗), \suplarr (⥻), \supmult (⫂), \supn (ⁿ), \supset (⊃), \supsetapprox (⫊), \supsetcirc (⟄), \supsetdot (⪾), \supseteq (⊇), \supseteqq (⫆), \supsetneq (⊋), \supsetneqq (⫌), \supsetplus (⫀), \supsim (⫈), \supsub (⫔), \supsup (⫖), \surd (√), \swarrow (↙).
+</p>
+<p>\talloblong (⫾), \target (⌖), \tau (τ), \taurus (♉), \testhookx (ᶍ), \textAsterisks (⁑), \textacute (ˊ), \textadvanced (˖), \textain (ʿ), \textasciiacute (´), \textasciicircum (^), \textasciidieresis (¨), \textasciigrave (&lsquo;), \textasciimacron (¯), \textasciitilde (~), \textasterisklow (⁎), \textbackdprime (‶), \textbackprime (‵), \textbacktrprime (‷), \textbardotlessj (ɟ), \textbardotlessjvar (ʄ), \textbarglotstop (ʡ), \textbari (ɨ), \textbarl (ƚ), \textbaro (ɵ), \textbarrevglotstop (ʢ), \textbaru (ʉ), \textbeltl (ɬ), \textbenttailyogh (ƺ), \textbreve (˘), \textbrokenbar (¦), \textbullet (•), \textbullseye (ʘ), \textcent (¢), \textcircledP (℗), \textcloseepsilon (ʚ), \textcloseomega (ɷ), \textcloserevepsilon (ɞ), \textcopyright (©), \textcrb (ƀ), \textcrh (ħ), \textcrinvglotstop (ƾ), \textcrlambda (ƛ), \textcrtwo (ƻ), \textctc (ɕ), \textctd (ȡ), \textctesh (ʆ), \textctj (ʝ), \textctl (ȴ), \textctn (ȵ), \textctt (ȶ), \textctyogh (ʓ), \textctz (ʑ), \textcurrency (¤), \textdctzlig (ʥ), \textdegree (°), \textdiscount (⁒), \textdollar ($), \textdotaccent (˙), \textdotlessj (ȷ), \textdoubleacute (˝), \textdoublebarpipe (ǂ), \textdoublepipe (ǁ), \textdprime (″), \textdptr (˅), \textdyoghlig (ʤ), \textdzlig (ʣ), \textepsilon (ɛ), \textesh (ʃ), \textestimated (℮), \textexclam (ǃ), \textexclamdown (¡), \textfishhookr (ɾ), \textflorin (ƒ), \textfranc (₣), \textgamma (ɣ), \textglotstop (ʔ), \textgrave (ˋ), \texthalflength (ˑ), \texthamza (ʾ), \texthen (ꜧ), \textheng (ꜧ), \texthooks (ᶊ), \texthookz (ᶎ), \texthtb (ɓ), \texthtc (ƈ), \texthtd (ɗ), \texthtg (ɠ), \texthth (ɦ), \texththeng (ɧ), \texthtk (ƙ), \texthtp (ƥ), \texthtq (ʠ), \texthtscg (ʛ), \texthtt (ƭ), \texthvlig (ƕ), \texthyphen (‐), \textinvglotstop (ʖ), \textinvscr (ʁ), \textiota (ɩ), \textlengthmark (ː), \textlhalfring (˓), \textlhookd (ᶁ), \textlhookk (ᶄ), \textlhookl (ᶅ), \textlhookt (ƫ), \textlhti (ɿ), \textlira (₤), \textlonglegr (ɼ), \textlongy (ʮ), \textlongy (ʯ), \textlooptoprevesh (ƪ), \textlowacute (ˏ), \textlowered (˕), \textlowgrave (ˎ), \textlowmacron (ˍ), \textlptr (˂), \textltailm (ɱ), \textltailn (ɲ), \textltilde (ɫ), \textlyoghlig (ɮ), \textmacron (ˉ), \textmu (µ), \textnumero (№), \textogonek (˛), \textohm (Ω), \textonehalf (½), \textonequarter (¼), \textonesuperior (¹), \textopeno (ɔ), \textordfeminine (ª), \textordmasculine (º), \textovercross (˟), \textoz (℥), \textpertenthousand (‱), \textperthousand (‰), \textpesetas (₧), \textphi (ɸ), \textpipe (ǀ), \textprime (′), \textprimstress (ˈ), \textqprime (⁗), \textquestiondown (¿), \textquotedbl (&quot;), \textquotedblleft (“), \textquotedblright (”), \textraised (˔), \textraiseglotstop (ˀ), \textraiserevglotstop (ˁ), \textramshorns (ɤ), \textrecipe (℞), \textreferencemark (※), \textregistered (®), \textretracted (˗), \textreve (ɘ), \textrevepsilon (ɜ), \textrevglotstop (ʕ), \textrhalfring (˒), \textrhookrevepsilon (ɝ), \textrhookschwa (ɚ), \textrhoticity (˞), \textringaccent (˚), \textrptr (˃), \textrtaild (ɖ), \textrtaill (ɭ), \textrtailn (ɳ), \textrtailr (ɽ), \textrtails (ʂ), \textrtailt (ʈ), \textrtailz (ʐ), \textsca (ᴀ), \textscb (ʙ), \textsce (ᴇ), \textscg (ɢ), \textsch (ʜ), \textschwa (ə), \textsci (ɪ), \textscl (ʟ), \textscn (ɴ), \textscoelig (ɶ), \textscr (ʀ), \textscripta (ɑ), \textscriptg (ɡ), \textscriptv (ʋ), \textscu (ᴜ), \textscy (ʏ), \textsecstress (ˌ), \textsemicolonreversed (⁏), \textsilon (Υ), \textsmalltilde (˜), \textstretchcvar (ʗ), \textsubw (w), \textsuph (ʰ), \textsuphth (ʱ), \textsupinvscr (ʶ), \textsupj (ʲ), \textsupr (ʳ), \textsupturnr (ʴ), \textsupturnrrtail (ʵ), \textsupw (ʷ), \textsupy (ʸ), \texttctctlig (ʧ), \texttctctlig (ʨ), \textthreequarters (¾), \textthreesuperior (³), \texttrademark (™), \texttrprime (‴), \texttslig (ʦ), \textturna (ɐ), \textturncomma (ʻ), \textturnh (ɥ), \textturnk (ʞ), \textturnlonglegr (ɺ), \textturnm (ɯ), \textturnmrleg (ɰ), \textturnr (ɹ), \textturnrrtail (ɻ), \textturnscripta (ɒ), \textturnt (ʇ), \textturnv (ʌ), \textturnw (ʍ), \textturny (ʎ), \texttwosuperior (²), \textupsilon (ʊ), \textuptr (˄), \textvibyi (ʅ), \textvisiblespace (␣), \textyogh (ʒ), \th (þ), \therefore (∴), \thermod (⧧), \theta (θ), \thickapprox (≈), \thicksim (∼), \threedangle (⟀), \threedotcolon (⫶), \tieconcat (⁀), \tieinfty (⧝), \times (×), \timesbar (⨱), \tminus (⧿), \to (→), \toea (⤨), \tona (⤧), \tonebarextrahigh (˥), \tonebarextralow (˩), \tonebarhigh (˦), \tonebarlow (˨), \tonebarmid (˧), \top (⊤), \topbot (⌶), \topcir (⫱), \topfork (⫚), \topsemicircle (◠), \tosa (⤩), \towa (⤪), \tplus (⧾), \trapezium (⏢), \trianglecdot (◬), \triangledown (▿), \triangleexclam (⚠), \triangleleft (◁), \triangleleftblack (◭), \trianglelefteq (⊴), \triangleminus (⨺), \triangleodot (⧊), \triangleplus (⨹), \triangleq (≜), \triangleright (▷), \trianglerightblack (◮), \trianglerighteq (⊵), \triangles (⧌), \triangleserifs (⧍), \triangletimes (⨻), \triangleubar (⧋), \tripleplus (⧻), \trprime (‴), \turnangle (⦢), \turnediota (℩), \turnednot (⌙), \twocaps (⩋), \twocups (⩊), \twoheaddownarrow (↡), \twoheadleftarrow (↞), \twoheadleftarrowtail (⬻), \twoheadleftdbkarrow (⬷), \twoheadmapsfrom (⬶), \twoheadmapsto (⤅), \twoheadrightarrow (↠), \twoheadrightarrowtail (⤖), \twoheaduparrow (↟), \twoheaduparrowcircle (⥉), \twolowline (‗), \twonotes (♫), \typecolon (⦂).
+</p>
+<p>\ubrbrak (⏡), \uhorn (ư), \ularc (◜), \ulblacktriangle (◤), \ulcorner (⌜), \ulcrop (⌏), \ultriangle (◸), \uminus (⩁), \underbrace (⏟), \underbracket (⎵), \underparen (⏝), \unlhd (⊴), \unrhd (⊵), \upand (⅋), \uparrow (↑), \uparrowbarred (⤉), \uparrowoncircle (⦽), \updasharrow (⇢), \updownarrow (↕), \updownarrowbar (↨), \updownarrows (⇅), \updownharpoonleftleft (⥑), \updownharpoonleftright (⥍), \updownharpoonrightleft (⥌), \updownharpoonrightright (⥏), \updownharpoonsleftright (⥮), \upfishtail (⥾), \upharpoonleft (↿), \upharpoonleftbar (⥠), \upharpoonright (↾), \upharpoonrightbar (⥜), \upharpoonsleftright (⥣), \upin (⟒), \upint (⨛), \uplus (⊎), \uprightcurvearrow (⤴), \upuparrows (⇈), \upwhitearrow (⇧), \urarc (◝), \urblacktriangle (◥), \urcorner (⌝), \urcrop (⌎), \urtriangle (◹).
+</p>
+<p>\v (ˇ), \vBar (⫨), \vBarv (⫩), \vDash (⊨), \vDdash (⫢), \varTheta (ϴ), \varVdash (⫦), \varbarwedge (⌅), \varbeta (ϐ), \varclubsuit (♧), \vardiamondsuit (♦), \vardoublebarwedge (⌆), \varepsilon (ε), \varheartsuit (♥), \varhexagon (⬡), \varhexagonblack (⬢), \varhexagonlrbonds (⌬), \varin (∈), \varisinobar (⋶), \varisins (⋳), \varkappa (ϰ), \varlrtriangle (⊿), \varni (∋), \varniobar (⋽), \varnis (⋻), \varnothing (∅), \varointclockwise (∲), \varphi (φ), \varpi (ϖ), \varpropto (∝), \varrho (ϱ), \varrowextender (⏐), \varsigma (ς), \varspadesuit (♤), \varstar (✶), \vartheta (ϑ), \vartriangle (▵), \vartriangleleft (⊲), \vartriangleright (⊳), \varveebar (⩡), \vbraceextender (⎪), \vbrtri (⧐), \vdash (⊢), \vdots (⋮), \vectimes (⨯), \vee (∨), \veebar (⊻), \veedot (⟇), \veedoublebar (⩣), \veeeq (≚), \veemidvert (⩛), \veeodot (⩒), \veeonvee (⩖), \veeonwedge (⩙), \vert (|), \viewdata (⌗), \vlongdash (⟝), \vrectangle (▯), \vrectangleblack (▮), \vysmlblksquare (⬝), \vysmlwhtsquare (⬞), \vzigzag (⦚).
+</p>
+<p>\watchicon (⌚), \wedge (∧), \wedgebar (⩟), \wedgedot (⟑), \wedgedoublebar (⩠), \wedgemidvert (⩚), \wedgeodot (⩑), \wedgeonwedge (⩕), \wedgeq (≙), \whitearrowupfrombar (⇪), \whiteinwhitetriangle (⟁), \whitepointerleft (◅), \whitepointerright (▻), \whitesquaretickleft (⟤), \whitesquaretickright (⟥), \whthorzoval (⬭), \whtvertoval (⬯), \wideangledown (⦦), \wideangleup (⦧), \wp (℘), \wr (≀).
+</p>
+<p>\xbsol (⧹), \xi (ξ), \xsol (⧸), \yen (¥), \zeta (ζ), \zpipe (⨠), 
+</p>
+<p>Я БУДУ КРАЙНЕ ПРИЗНАТЕЛЕН ЕСЛИ КТО-НИБУДЬ ПРОВЕРИТ СООТВЕТСТВИЕ ВСЕХ ИМЕН ПРАВИЛЬНЫМ ТЕХ-ИМ СИМВОЛАМ. 
+</p>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_11.html b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_11.html
new file mode 100644
index 0000000..2014b23
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_11.html
@@ -0,0 +1,514 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: B. GNU Free Documentation License</title>
+
+<meta name="description" content="MathGL 1.11: B. GNU Free Documentation License">
+<meta name="keywords" content="MathGL 1.11: B. GNU Free Documentation License">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Copying-This-Manual"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="GNU-Free-Documentation-License"></a>
+<h1 class="appendix">B. GNU Free Documentation License</h1>
+<p align="center"> Version 1.2, November 2002
+</p>
+
+<table><tr><td>&nbsp;</td><td><pre class="display">Copyright &copy; 2000,2001,2002 Free Software Foundation, Inc.
+51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+</pre></td></tr></table>
+
+<ol>
+<li>
+PREAMBLE
+
+<p>The purpose of this License is to make a manual, textbook, or other
+functional and useful document <em>free</em> in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+</p>
+<p>This License is a kind of &ldquo;copyleft&rdquo;, which means that derivative
+works of the document must themselves be free in the same sense.  It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+</p>
+<p>We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does.  But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book.  We recommend this License
+principally for works whose purpose is instruction or reference.
+</p>
+</li><li>
+APPLICABILITY AND DEFINITIONS
+
+<p>This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License.  Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein.  The &ldquo;Document&rdquo;, below,
+refers to any such manual or work.  Any member of the public is a
+licensee, and is addressed as &ldquo;you&rdquo;.  You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+</p>
+<p>A &ldquo;Modified Version&rdquo; of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+</p>
+<p>A &ldquo;Secondary Section&rdquo; is a named appendix or a front-matter section
+of the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document&rsquo;s overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject.  (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.)  The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+</p>
+<p>The &ldquo;Invariant Sections&rdquo; are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License.  If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant.  The Document may contain zero
+Invariant Sections.  If the Document does not identify any Invariant
+Sections then there are none.
+</p>
+<p>The &ldquo;Cover Texts&rdquo; are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.  A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+</p>
+<p>A &ldquo;Transparent&rdquo; copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters.  A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text.  A copy that is not &ldquo;Transparent&rdquo; is called &ldquo;Opaque&rdquo;.
+</p>
+<p>Examples of suitable formats for Transparent copies include plain
+<small>ASCII</small> without markup, Texinfo input format, LaTeX input
+format, <acronym>SGML</acronym> or <acronym>XML</acronym> using a publicly available
+<acronym>DTD</acronym>, and standard-conforming simple <acronym>HTML</acronym>,
+PostScript or <acronym>PDF</acronym> designed for human modification.  Examples
+of transparent image formats include <acronym>PNG</acronym>, <acronym>XCF</acronym> and
+<acronym>JPG</acronym>.  Opaque formats include proprietary formats that can be
+read and edited only by proprietary word processors, <acronym>SGML</acronym> or
+<acronym>XML</acronym> for which the <acronym>DTD</acronym> and/or processing tools are
+not generally available, and the machine-generated <acronym>HTML</acronym>,
+PostScript or <acronym>PDF</acronym> produced by some word processors for
+output purposes only.
+</p>
+<p>The &ldquo;Title Page&rdquo; means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page.  For works in
+formats which do not have any title page as such, &ldquo;Title Page&rdquo; means
+the text near the most prominent appearance of the work&rsquo;s title,
+preceding the beginning of the body of the text.
+</p>
+<p>A section &ldquo;Entitled XYZ&rdquo; means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language.  (Here XYZ stands for a
+specific section name mentioned below, such as &ldquo;Acknowledgements&rdquo;,
+&ldquo;Dedications&rdquo;, &ldquo;Endorsements&rdquo;, or &ldquo;History&rdquo;.)  To &ldquo;Preserve the Title&rdquo;
+of such a section when you modify the Document means that it remains a
+section &ldquo;Entitled XYZ&rdquo; according to this definition.
+</p>
+<p>The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document.  These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+</p>
+</li><li>
+VERBATIM COPYING
+
+<p>You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License.  You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute.  However, you may accept
+compensation in exchange for copies.  If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+</p>
+<p>You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+</p>
+</li><li>
+COPYING IN QUANTITY
+
+<p>If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document&rsquo;s license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover.  Both covers must also clearly and legibly identify
+you as the publisher of these copies.  The front cover must present
+the full title with all words of the title equally prominent and
+visible.  You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+</p>
+<p>If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+</p>
+<p>If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+</p>
+<p>It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+</p>
+</li><li>
+MODIFICATIONS
+
+<p>You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it.  In addition, you must do these things in the Modified Version:
+</p>
+<ol>
+<li>
+Use in the Title Page (and on the covers, if any) a title distinct
+from that of the Document, and from those of previous versions
+(which should, if there were any, be listed in the History section
+of the Document).  You may use the same title as a previous version
+if the original publisher of that version gives permission.
+
+</li><li>
+List on the Title Page, as authors, one or more persons or entities
+responsible for authorship of the modifications in the Modified
+Version, together with at least five of the principal authors of the
+Document (all of its principal authors, if it has fewer than five),
+unless they release you from this requirement.
+
+</li><li>
+State on the Title page the name of the publisher of the
+Modified Version, as the publisher.
+
+</li><li>
+Preserve all the copyright notices of the Document.
+
+</li><li>
+Add an appropriate copyright notice for your modifications
+adjacent to the other copyright notices.
+
+</li><li>
+Include, immediately after the copyright notices, a license notice
+giving the public permission to use the Modified Version under the
+terms of this License, in the form shown in the Addendum below.
+
+</li><li>
+Preserve in that license notice the full lists of Invariant Sections
+and required Cover Texts given in the Document&rsquo;s license notice.
+
+</li><li>
+Include an unaltered copy of this License.
+
+</li><li>
+Preserve the section Entitled &ldquo;History&rdquo;, Preserve its Title, and add
+to it an item stating at least the title, year, new authors, and
+publisher of the Modified Version as given on the Title Page.  If
+there is no section Entitled &ldquo;History&rdquo; in the Document, create one
+stating the title, year, authors, and publisher of the Document as
+given on its Title Page, then add an item describing the Modified
+Version as stated in the previous sentence.
+
+</li><li>
+Preserve the network location, if any, given in the Document for
+public access to a Transparent copy of the Document, and likewise
+the network locations given in the Document for previous versions
+it was based on.  These may be placed in the &ldquo;History&rdquo; section.
+You may omit a network location for a work that was published at
+least four years before the Document itself, or if the original
+publisher of the version it refers to gives permission.
+
+</li><li>
+For any section Entitled &ldquo;Acknowledgements&rdquo; or &ldquo;Dedications&rdquo;, Preserve
+the Title of the section, and preserve in the section all the
+substance and tone of each of the contributor acknowledgements and/or
+dedications given therein.
+
+</li><li>
+Preserve all the Invariant Sections of the Document,
+unaltered in their text and in their titles.  Section numbers
+or the equivalent are not considered part of the section titles.
+
+</li><li>
+Delete any section Entitled &ldquo;Endorsements&rdquo;.  Such a section
+may not be included in the Modified Version.
+
+</li><li>
+Do not retitle any existing section to be Entitled &ldquo;Endorsements&rdquo; or
+to conflict in title with any Invariant Section.
+
+</li><li>
+Preserve any Warranty Disclaimers.
+</li></ol>
+
+<p>If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant.  To do this, add their titles to the
+list of Invariant Sections in the Modified Version&rsquo;s license notice.
+These titles must be distinct from any other section titles.
+</p>
+<p>You may add a section Entitled &ldquo;Endorsements&rdquo;, provided it contains
+nothing but endorsements of your Modified Version by various
+parties&mdash;for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+</p>
+<p>You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version.  Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity.  If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+</p>
+<p>The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+</p>
+</li><li>
+COMBINING DOCUMENTS
+
+<p>You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+</p>
+<p>The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy.  If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+</p>
+<p>In the combination, you must combine any sections Entitled &ldquo;History&rdquo;
+in the various original documents, forming one section Entitled
+&ldquo;History&rdquo;; likewise combine any sections Entitled &ldquo;Acknowledgements&rdquo;,
+and any sections Entitled &ldquo;Dedications&rdquo;.  You must delete all
+sections Entitled &ldquo;Endorsements.&rdquo;
+</p>
+</li><li>
+COLLECTIONS OF DOCUMENTS
+
+<p>You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+</p>
+<p>You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+</p>
+</li><li>
+AGGREGATION WITH INDEPENDENT WORKS
+
+<p>A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an &ldquo;aggregate&rdquo; if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation&rsquo;s users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+</p>
+<p>If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document&rsquo;s Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+</p>
+</li><li>
+TRANSLATION
+
+<p>Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections.  You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers.  In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+</p>
+<p>If a section in the Document is Entitled &ldquo;Acknowledgements&rdquo;,
+&ldquo;Dedications&rdquo;, or &ldquo;History&rdquo;, the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+</p>
+</li><li>
+TERMINATION
+
+<p>You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License.  Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License.  However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+</p>
+</li><li>
+FUTURE REVISIONS OF THIS LICENSE
+
+<p>The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time.  Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.  See
+<a href="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</a>.
+</p>
+<p>Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License &ldquo;or any later version&rdquo; applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation.  If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+</p></li></ol>
+
+
+<a name="ADDENDUM_003a-How-to-use-this-License-for-your-documents"></a>
+<h2 class="heading">ADDENDUM: How to use this License for your documents</h2>
+
+<p>To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample">  Copyright (C)  <var>year</var>  <var>your name</var>.
+  Permission is granted to copy, distribute and/or modify this document
+  under the terms of the GNU Free Documentation License, Version 1.2
+  or any later version published by the Free Software Foundation;
+  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+  Texts.  A copy of the license is included in the section entitled ``GNU
+  Free Documentation License''.
+</pre></td></tr></table>
+
+<p>If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the &ldquo;with&hellip;Texts.&rdquo; line with this:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample">    with the Invariant Sections being <var>list their titles</var>, with
+    the Front-Cover Texts being <var>list</var>, and with the Back-Cover Texts
+    being <var>list</var>.
+</pre></td></tr></table>
+
+<p>If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+</p>
+<p>If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
+</p>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_12.html b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_12.html
new file mode 100644
index 0000000..31d9157
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_12.html
@@ -0,0 +1,366 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: Индекс</title>
+
+<meta name="description" content="MathGL 1.11: Индекс">
+<meta name="keywords" content="MathGL 1.11: Индекс">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Index"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_13.html#index_split-0" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_043d_0434e_043a_0441"></a>
+<h1 class="unnumbered">Индекс</h1>
+
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_ru_16.html#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="g_t_0418_043d_0434e_043a_0441_cp_letter-A">A</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-AddLegend">AddLegend</a></td><td valign="top"><a href="mathgl_ru_3.html#Legend">3.8 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-addlegend">addlegend</a></td><td valign="top"><a href="mathgl_ru_8.html#Legend-_0028MGL_0029">8.8 Легенда (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-AddLegend-3">AddLegend</a></td><td valign="top"><a href="mathgl_ru_9.html#Legend-sample">9.6.1 Legend &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-AddLight">AddLight</a></td><td valign="top"><a href="mathgl_ru_3.html#Lighting">3.1.2 Освещение</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-addto">addto</a></td><td valign="top"><a href="mathgl_ru_8.html#Operators-_0028MGL_0029">8.22 Операторы (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-adjust">adjust</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-AdjustTicks">AdjustTicks</a></td><td valign="top"><a href="mathgl_ru_3.html#Ticks">3.2.3 Метки осей</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Alpha">Alpha</a></td><td valign="top"><a href="mathgl_ru_3.html#Transparency">3.1.1 Прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-alpha">alpha</a></td><td valign="top"><a href="mathgl_ru_8.html#Transparency-_0028MGL_0029">8.1.1 Прозрачность (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Alpha-2">Alpha</a></td><td valign="top"><a href="mathgl_ru_9.html#Transparent-surface-sample">9.2.2 Transparent surface &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-alpha-2">alpha</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Alpha-3">Alpha</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t2D-plot-sample">9.5.2 Пример графиков 2D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Alpha-4">Alpha</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t3D-plot-sample">9.5.3 Пример графиков 3D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-alphadef">alphadef</a></td><td valign="top"><a href="mathgl_ru_8.html#Transparency-_0028MGL_0029">8.1.1 Прозрачность (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-alphadef-2">alphadef</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ambient">ambient</a></td><td valign="top"><a href="mathgl_ru_8.html#Lighting-_0028MGL_0029">8.1.2 Освещение (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Ambient">Ambient</a></td><td valign="top"><a href="mathgl_ru_3.html#Lighting">3.1.2 Освещение</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ambient-2">ambient</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-area">area</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Area">Area</a></td><td valign="top"><a href="mathgl_ru_3.html#Area">3.9.4 Area</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Area-4">Area</a></td><td valign="top"><a href="mathgl_ru_9.html#Area-sample">9.1.4 Area &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Area-5">Area</a></td><td valign="top"><a href="mathgl_ru_9.html#Area-gradient-sample">9.1.5 Area с градиентной заливкой &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-arrowsize">arrowsize</a></td><td valign="top"><a href="mathgl_ru_8.html#Default-sizes-_0028MGL_0029">8.1.4 Базовые размеры (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Aspect">Aspect</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-aspect">aspect</a></td><td valign="top"><a href="mathgl_ru_8.html#Transformation-matrix-_0028MGL_0029">8.3 Матрица преобразования (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-AutoOrg">AutoOrg</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Axial">Axial</a></td><td valign="top"><a href="mathgl_ru_3.html#Axial">3.10.11 Axial</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-axial">axial</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Axial-5">Axial</a></td><td valign="top"><a href="mathgl_ru_9.html#Axial-sample">9.2.14 Axial &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Axial-6">Axial</a></td><td valign="top"><a href="mathgl_ru_9.html#Adding-mesh-sample">9.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-axialdir">axialdir</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-settings-_0028MGL_0029">8.1.7 Прочие настройки (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-axis">axis</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Axis">Axis</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Axis-2">Axis</a></td><td valign="top"><a href="mathgl_ru_3.html#Axis-and-Colorbar">3.7 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-axis-5">axis</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Axis-4">Axis</a></td><td valign="top"><a href="mathgl_ru_9.html#Pie-chart-sample">9.1.23 Pie chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Axis-5">Axis</a></td><td valign="top"><a href="mathgl_ru_9.html#Ring-chart-sample">9.1.24 Ring chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Axis-6">Axis</a></td><td valign="top"><a href="mathgl_ru_9.html#Dens3-sample">9.3.4 Dens3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Axis-7">Axis</a></td><td valign="top"><a href="mathgl_ru_9.html#Curvelinear-coorinates-sample">9.7.1 Криволинейные координаты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Axis-8">Axis</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t2_002daxes-sample">9.7.2 Несколько осей на одном графике</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Axis-9">Axis</a></td><td valign="top"><a href="mathgl_ru_9.html#Semi_002dlog-sample">9.7.3 Semi-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Axis-10">Axis</a></td><td valign="top"><a href="mathgl_ru_9.html#Log_002dlog-sample">9.7.4 Log-log &ndash; пример использования</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="g_t_0418_043d_0434e_043a_0441_cp_letter-B">B</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ball">ball</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Ball">Ball</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-barh">barh</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Barh">Barh</a></td><td valign="top"><a href="mathgl_ru_3.html#Barh">3.9.8 Barh</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Barh-3">Barh</a></td><td valign="top"><a href="mathgl_ru_9.html#Barh-sample">9.1.10 Barh &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-bars">bars</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Bars">Bars</a></td><td valign="top"><a href="mathgl_ru_3.html#Bars">3.9.7 Bars</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Bars-4">Bars</a></td><td valign="top"><a href="mathgl_ru_9.html#Bars-sample">9.1.6 Bars &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Bars-5">Bars</a></td><td valign="top"><a href="mathgl_ru_9.html#Bars-2-colors-sample">9.1.7 Bars (2 цвета) &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Bars-6">Bars</a></td><td valign="top"><a href="mathgl_ru_9.html#Bars-above-sample">9.1.8 Bars (один над другим) &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Bars-7">Bars</a></td><td valign="top"><a href="mathgl_ru_9.html#Bars-fall-sample">9.1.9 Bars &quot;водопад&quot; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Bars-8">Bars</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t1D-plot-sample">9.5.1 Пример графиков 1D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-barwidth">barwidth</a></td><td valign="top"><a href="mathgl_ru_8.html#Default-sizes-_0028MGL_0029">8.1.4 Базовые размеры (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Beam">Beam</a></td><td valign="top"><a href="mathgl_ru_3.html#Beam">3.11.7 Beam</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-beam">beam</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Belt">Belt</a></td><td valign="top"><a href="mathgl_ru_3.html#Belt">3.10.3 Belt</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-belt">belt</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Belt-3">Belt</a></td><td valign="top"><a href="mathgl_ru_9.html#Belt-sample">9.2.7 Belt &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Box">Box</a></td><td valign="top"><a href="mathgl_ru_3.html#Axis-and-Colorbar">3.7 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-box">box</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-BoxPlot">BoxPlot</a></td><td valign="top"><a href="mathgl_ru_3.html#BoxPlot">3.9.16 BoxPlot</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-boxplot">boxplot</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-BoxPlot-3">BoxPlot</a></td><td valign="top"><a href="mathgl_ru_9.html#BoxPlot-sample">9.1.16 BoxPlot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-boxs">boxs</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Boxs">Boxs</a></td><td valign="top"><a href="mathgl_ru_3.html#Boxs">3.10.5 Boxs</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Boxs-3">Boxs</a></td><td valign="top"><a href="mathgl_ru_9.html#Boxs-sample">9.2.9 Boxs &ndash; пример использования</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="g_t_0418_043d_0434e_043a_0441_cp_letter-C">C</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-call">call</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-caxis">caxis</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-CAxis">CAxis</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-chart">chart</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Chart">Chart</a></td><td valign="top"><a href="mathgl_ru_3.html#Chart">3.9.9 Chart</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Chart-2">Chart</a></td><td valign="top"><a href="mathgl_ru_9.html#Chart-sample">9.1.22 Chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Chart-3">Chart</a></td><td valign="top"><a href="mathgl_ru_9.html#Pie-chart-sample">9.1.23 Pie chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Chart-4">Chart</a></td><td valign="top"><a href="mathgl_ru_9.html#Ring-chart-sample">9.1.24 Ring chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-chdir">chdir</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ClearLegend">ClearLegend</a></td><td valign="top"><a href="mathgl_ru_3.html#Legend">3.8 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-clearlegend">clearlegend</a></td><td valign="top"><a href="mathgl_ru_8.html#Legend-_0028MGL_0029">8.8 Легенда (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-clf">clf</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Clf">Clf</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-cloud">cloud</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Cloud-2">Cloud</a></td><td valign="top"><a href="mathgl_ru_9.html#Cloud-sample">9.3.2 Cloud &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-CloudP">CloudP</a></td><td valign="top"><a href="mathgl_ru_3.html#Cloud">3.11.6 Cloud</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-CloudP-3">CloudP</a></td><td valign="top"><a href="mathgl_ru_9.html#CloudP-sample">9.3.3 CloudP &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-CloudQ">CloudQ</a></td><td valign="top"><a href="mathgl_ru_3.html#Cloud">3.11.6 Cloud</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Cmax">Cmax</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Cmin">Cmin</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-colorbar">colorbar</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Colorbar">Colorbar</a></td><td valign="top"><a href="mathgl_ru_3.html#Axis-and-Colorbar">3.7 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Colorbar-6">Colorbar</a></td><td valign="top"><a href="mathgl_ru_9.html#Dens-sample">9.2.10 Dens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Colorbar-7">Colorbar</a></td><td valign="top"><a href="mathgl_ru_9.html#Color-schemes-sample">9.5.10 Примеры цветовых схем</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Column">Column</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ColumnPlot">ColumnPlot</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-columnplot">columnplot</a></td><td valign="top"><a href="mathgl_ru_8.html#Transformation-matrix-_0028MGL_0029">8.3 Матрица преобразования (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-combine">combine</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Combine">Combine</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Cone">Cone</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-cone">cone</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Cont">Cont</a></td><td valign="top"><a href="mathgl_ru_3.html#Cont">3.10.8 Cont</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-cont">cont</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Cont-5">Cont</a></td><td valign="top"><a href="mathgl_ru_9.html#Cont-sample">9.2.11 Cont &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Cont-6">Cont</a></td><td valign="top"><a href="mathgl_ru_9.html#Adding-mesh-sample">9.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Cont-7">Cont</a></td><td valign="top"><a href="mathgl_ru_9.html#Surf-_0026-Cont-sample">9.6.3 Surf &amp; Cont &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Cont-8">Cont</a></td><td valign="top"><a href="mathgl_ru_9.html#Cont-with-labels-sample">9.6.7 Cont и подписи &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Cont3">Cont3</a></td><td valign="top"><a href="mathgl_ru_3.html#Cont3">3.11.3 Cont3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-cont3">cont3</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Cont3-5">Cont3</a></td><td valign="top"><a href="mathgl_ru_9.html#Cont3-sample">9.3.5 Cont3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContA">ContA</a></td><td valign="top"><a href="mathgl_ru_3.html#Cont3">3.11.3 Cont3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-conta">conta</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-contd">contd</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContD">ContD</a></td><td valign="top"><a href="mathgl_ru_3.html#ContD">3.10.10 ContD</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-ContD-5">ContD</a></td><td valign="top"><a href="mathgl_ru_9.html#ContD-sample">9.2.13 ContD &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContF">ContF</a></td><td valign="top"><a href="mathgl_ru_3.html#ContF">3.10.9 ContF</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-contf">contf</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-ContF-5">ContF</a></td><td valign="top"><a href="mathgl_ru_9.html#ContF-sample">9.2.12 ContF &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContF3">ContF3</a></td><td valign="top"><a href="mathgl_ru_3.html#ContF3">3.11.4 ContF3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-contf3">contf3</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-ContF3-5">ContF3</a></td><td valign="top"><a href="mathgl_ru_9.html#ContF3-sample">9.3.6 ContF3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-ContF3-6">ContF3</a></td><td valign="top"><a href="mathgl_ru_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-contfa">contfa</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContFA">ContFA</a></td><td valign="top"><a href="mathgl_ru_3.html#ContF3">3.11.4 ContF3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContFX">ContFX</a></td><td valign="top"><a href="mathgl_ru_3.html#ContFXYZ">3.14.3 ContFXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-contfx">contfx</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-contfy">contfy</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContFY">ContFY</a></td><td valign="top"><a href="mathgl_ru_3.html#ContFXYZ">3.14.3 ContFXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-contfz">contfz</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContFZ">ContFZ</a></td><td valign="top"><a href="mathgl_ru_3.html#ContFXYZ">3.14.3 ContFXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContX">ContX</a></td><td valign="top"><a href="mathgl_ru_3.html#ContXYZ">3.14.2 ContXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-contx">contx</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-ContX-3">ContX</a></td><td valign="top"><a href="mathgl_ru_9.html#Cont-projection-sample">9.3.7 Cont projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContY">ContY</a></td><td valign="top"><a href="mathgl_ru_3.html#ContXYZ">3.14.2 ContXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-conty">conty</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-ContY-3">ContY</a></td><td valign="top"><a href="mathgl_ru_9.html#Cont-projection-sample">9.3.7 Cont projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-contz">contz</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContZ">ContZ</a></td><td valign="top"><a href="mathgl_ru_3.html#ContXYZ">3.14.2 ContXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-ContZ-3">ContZ</a></td><td valign="top"><a href="mathgl_ru_9.html#Cont-projection-sample">9.3.7 Cont projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-copy">copy</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-create-_0028MGL_0029">8.16 Создание данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-CopyFont">CopyFont</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-cosfft">cosfft</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-CosFFT">CosFFT</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-crange">crange</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-crange-3">crange</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Crop">Crop</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-crop">crop</a></td><td valign="top"><a href="mathgl_ru_8.html#Rearrange-data-_0028MGL_0029">8.18 Изменение размеров данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-crust">crust</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Crust">Crust</a></td><td valign="top"><a href="mathgl_ru_3.html#Crust">3.14.5 Crust</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Crust-3">Crust</a></td><td valign="top"><a href="mathgl_ru_9.html#Crust-sample">9.4.19 Crust &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ctick">ctick</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-cumsum">cumsum</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-CumSum">CumSum</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Curve">Curve</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-curve">curve</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-cut">cut</a></td><td valign="top"><a href="mathgl_ru_8.html#Cutting-_0028MGL_0029">8.1.6 Обрезание (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-cut-4">cut</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-CutMax">CutMax</a></td><td valign="top"><a href="mathgl_ru_9.html#CutMinMax-sample">9.3.9 CutMinMax &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-CutMax-1">CutMax</a></td><td valign="top"><a href="mathgl_ru_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-CutMin">CutMin</a></td><td valign="top"><a href="mathgl_ru_9.html#CutMinMax-sample">9.3.9 CutMinMax &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-CutMin-1">CutMin</a></td><td valign="top"><a href="mathgl_ru_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-CutOff">CutOff</a></td><td valign="top"><a href="mathgl_ru_3.html#Cutting">3.1.6 Обрезание</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-CutOff-2">CutOff</a></td><td valign="top"><a href="mathgl_ru_9.html#CutOff-sample">9.3.11 CutOff &ndash; пример использования</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_ru_16.html#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_13.html b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_13.html
new file mode 100644
index 0000000..5a1131a
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_13.html
@@ -0,0 +1,309 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: Индекс: D &ndash; F</title>
+
+<meta name="description" content="MathGL 1.11: Индекс: D &ndash; F">
+<meta name="keywords" content="MathGL 1.11: Индекс: D &ndash; F">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-0"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_14.html#index_split-1" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Индекс: D &ndash; F</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_ru_16.html#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-D">D</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-defchr">defchr</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-define">define</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-defnum">defnum</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-defpal">defpal</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Delete">Delete</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-delete">delete</a></td><td valign="top"><a href="mathgl_ru_8.html#Rearrange-data-_0028MGL_0029">8.18 Изменение размеров данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-DeleteColumns">DeleteColumns</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-DeleteRows">DeleteRows</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-DeleteSlices">DeleteSlices</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-dens">dens</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Dens">Dens</a></td><td valign="top"><a href="mathgl_ru_3.html#Dens">3.10.7 Dens</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Dens-3">Dens</a></td><td valign="top"><a href="mathgl_ru_9.html#Dens-sample">9.2.10 Dens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Dens-4">Dens</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t2D-plot-sample">9.5.2 Пример графиков 2D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Dens-5">Dens</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t3D-plot-sample">9.5.3 Пример графиков 3D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Dens-6">Dens</a></td><td valign="top"><a href="mathgl_ru_9.html#Adding-mesh-sample">9.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Dens-7">Dens</a></td><td valign="top"><a href="mathgl_ru_9.html#Flow-_0026-Dens-sample">9.6.4 Flow &amp; Dens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-dens3">dens3</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Dens3">Dens3</a></td><td valign="top"><a href="mathgl_ru_3.html#Dens3">3.11.2 Dens3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Dens3-3">Dens3</a></td><td valign="top"><a href="mathgl_ru_9.html#Dens3-sample">9.3.4 Dens3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-DensA">DensA</a></td><td valign="top"><a href="mathgl_ru_3.html#Dens3">3.11.2 Dens3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-densa">densa</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-DensX">DensX</a></td><td valign="top"><a href="mathgl_ru_3.html#DensXYZ">3.14.1 DensXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-densx">densx</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-DensX-2">DensX</a></td><td valign="top"><a href="mathgl_ru_9.html#Dens-projection-sample">9.3.8 Dens projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-densy">densy</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-DensY">DensY</a></td><td valign="top"><a href="mathgl_ru_3.html#DensXYZ">3.14.1 DensXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-DensY-2">DensY</a></td><td valign="top"><a href="mathgl_ru_9.html#Dens-projection-sample">9.3.8 Dens projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-densz">densz</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-DensZ">DensZ</a></td><td valign="top"><a href="mathgl_ru_3.html#DensXYZ">3.14.1 DensXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-DensZ-2">DensZ</a></td><td valign="top"><a href="mathgl_ru_9.html#Dens-projection-sample">9.3.8 Dens projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Dew">Dew</a></td><td valign="top"><a href="mathgl_ru_3.html#Dew">3.13.3 Dew</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-dew">dew</a></td><td valign="top"><a href="mathgl_ru_8.html#Vector-fields-_0028MGL_0029">8.13 Векторные поля (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Dew-3">Dew</a></td><td valign="top"><a href="mathgl_ru_9.html#Dew-sample">9.4.11 Dew &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-diff">diff</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Diff">Diff</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-diff2">diff2</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Diff2">Diff2</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-divto">divto</a></td><td valign="top"><a href="mathgl_ru_8.html#Operators-_0028MGL_0029">8.22 Операторы (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-dots">dots</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Dots">Dots</a></td><td valign="top"><a href="mathgl_ru_3.html#Dots">3.14.4 Dots</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Dots-4">Dots</a></td><td valign="top"><a href="mathgl_ru_9.html#Dots-sample">9.4.20 Dots &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-drop">drop</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Drop">Drop</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Drop-4">Drop</a></td><td valign="top"><a href="mathgl_ru_9.html#Drops-sample">9.6.10 Drops &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Drop-5">Drop</a></td><td valign="top"><a href="mathgl_ru_9.html#Molecules-drawing-sample">9.6.11 Рисование молекул</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-E">E</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-else">else</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-elseif">elseif</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-EndFrame">EndFrame</a></td><td valign="top"><a href="mathgl_ru_3.html#Frames_002fAnimation">3.17 Кадры/Анимация</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-EndFrame-2">EndFrame</a></td><td valign="top"><a href="mathgl_ru_3.html#IDTF-functions">3.18 IDTF функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-endif">endif</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Envelop">Envelop</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-envelop">envelop</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Envelop-2">Envelop</a></td><td valign="top"><a href="mathgl_ru_9.html#Envelop-sample">9.7.6 Envelop &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Error">Error</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-error">error</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Error-2">Error</a></td><td valign="top"><a href="mathgl_ru_3.html#Error">3.9.15 Error</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Error-6">Error</a></td><td valign="top"><a href="mathgl_ru_9.html#Error-sample">9.1.15 Error &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-evaluate">evaluate</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Evaluate">Evaluate</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-export">export</a></td><td valign="top"><a href="mathgl_ru_8.html#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Export">Export</a></td><td valign="top"><a href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-extend">extend</a></td><td valign="top"><a href="mathgl_ru_8.html#Rearrange-data-_0028MGL_0029">8.18 Изменение размеров данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Extend">Extend</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-F">F</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Face">Face</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-facex">facex</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-FaceX">FaceX</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-facey">facey</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-FaceY">FaceY</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-FaceZ">FaceZ</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-facez">facez</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Fall">Fall</a></td><td valign="top"><a href="mathgl_ru_3.html#Fall">3.10.2 Fall</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fall">fall</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Fall-3">Fall</a></td><td valign="top"><a href="mathgl_ru_9.html#Fall-sample">9.2.6 Fall &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fgets">fgets</a></td><td valign="top"><a href="mathgl_ru_8.html#Text-printing-_0028MGL_0029">8.6 Вывод текста (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Fill">Fill</a></td><td valign="top"><a href="mathgl_ru_6.html#Fill">6.3 Заполнение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fill">fill</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-filling-_0028MGL_0029">8.17 Заполнение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fill-1">fill</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-filling-_0028MGL_0029">8.17 Заполнение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Find">Find</a></td><td valign="top"><a href="mathgl_ru_6.html#Informational-functions">6.9 Информационные функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-FindAny">FindAny</a></td><td valign="top"><a href="mathgl_ru_6.html#Informational-functions">6.9 Информационные функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Finish">Finish</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fit">fit</a></td><td valign="top"><a href="mathgl_ru_8.html#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Fit">Fit</a></td><td valign="top"><a href="mathgl_ru_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Fit-9">Fit</a></td><td valign="top"><a href="mathgl_ru_9.html#Fitting-sample">9.7.5 Fitting &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Fit2">Fit2</a></td><td valign="top"><a href="mathgl_ru_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Fit3">Fit3</a></td><td valign="top"><a href="mathgl_ru_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-FitPnts">FitPnts</a></td><td valign="top"><a href="mathgl_ru_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fits">fits</a></td><td valign="top"><a href="mathgl_ru_8.html#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-FitS">FitS</a></td><td valign="top"><a href="mathgl_ru_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Flow">Flow</a></td><td valign="top"><a href="mathgl_ru_3.html#Flow">3.13.4 Flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-flow">flow</a></td><td valign="top"><a href="mathgl_ru_8.html#Vector-fields-_0028MGL_0029">8.13 Векторные поля (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Flow-5">Flow</a></td><td valign="top"><a href="mathgl_ru_9.html#Flow-sample">9.4.9 Flow &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Flow-6">Flow</a></td><td valign="top"><a href="mathgl_ru_9.html#Flow-3D-sample">9.4.17 Flow 3D &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Flow-7">Flow</a></td><td valign="top"><a href="mathgl_ru_9.html#Flow-_0026-Dens-sample">9.6.4 Flow &amp; Dens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-FlowP">FlowP</a></td><td valign="top"><a href="mathgl_ru_3.html#FlowP">3.13.5 FlowP</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Flush">Flush</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-Fl_005fMathGL">Fl_MathGL</a></td><td valign="top"><a href="mathgl_ru_5.html#Widget-classes">5. &ldquo;Оконные&rdquo; классы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-Fl_005fMathGL-2">Fl_MathGL</a></td><td valign="top"><a href="mathgl_ru_5.html#Fl_005fMathGL-class">5.1 Класс Fl_MathGL</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fog">fog</a></td><td valign="top"><a href="mathgl_ru_8.html#Fog-_0028MGL_0029">8.1.3 Туман (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Fog">Fog</a></td><td valign="top"><a href="mathgl_ru_3.html#Fog">3.1.3 Туман</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Fog-2">Fog</a></td><td valign="top"><a href="mathgl_ru_9.html#Surface-in-fog-sample">9.2.3 Surface in fog &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-font">font</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-settings-_0028MGL_0029">8.1.7 Прочие настройки (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fontsize">fontsize</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-for">for</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fplot">fplot</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fsurf">fsurf</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-func">func</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_ru_16.html#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_14.html b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_14.html
new file mode 100644
index 0000000..05c4192
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_14.html
@@ -0,0 +1,324 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: Индекс: G &ndash; M</title>
+
+<meta name="description" content="MathGL 1.11: Индекс: G &ndash; M">
+<meta name="keywords" content="MathGL 1.11: Индекс: G &ndash; M">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-1"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_13.html#index_split-0" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_15.html#index_split-2" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Индекс: G &ndash; M</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_ru_16.html#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-G">G</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-GetFont">GetFont</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-GetNumFrame">GetNumFrame</a></td><td valign="top"><a href="mathgl_ru_3.html#Frames_002fAnimation">3.17 Кадры/Анимация</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-GetNumFrame-2">GetNumFrame</a></td><td valign="top"><a href="mathgl_ru_3.html#IDTF-functions">3.18 IDTF функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-GetWarnCode">GetWarnCode</a></td><td valign="top"><a href="mathgl_ru_3.html#Error-handling">3.1.9 Обработка ошибок</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Glyph">Glyph</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Grad">Grad</a></td><td valign="top"><a href="mathgl_ru_3.html#Grad">3.10.12 Grad</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-grad">grad</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Grad-4">Grad</a></td><td valign="top"><a href="mathgl_ru_9.html#Grad-sample">9.2.15 Grad &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Grid">Grid</a></td><td valign="top"><a href="mathgl_ru_3.html#Axis-and-Colorbar">3.7 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-grid">grid</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Grid-2">Grid</a></td><td valign="top"><a href="mathgl_ru_3.html#Grid">3.10.13 Grid</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-grid2">grid2</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-grid3">grid3</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Grid3">Grid3</a></td><td valign="top"><a href="mathgl_ru_3.html#Grid3">3.11.5 Grid3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-GridA">GridA</a></td><td valign="top"><a href="mathgl_ru_3.html#Grid3">3.11.5 Grid3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-grida">grida</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-H">H</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Hankel">Hankel</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-hankel">hankel</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Hist">Hist</a></td><td valign="top"><a href="mathgl_ru_3.html#Data-distributions">3.16 Распределение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-hist">hist</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Hist-4">Hist</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-I">I</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Identity">Identity</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-idset">idset</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-create-_0028MGL_0029">8.16 Создание данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-if">if</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Import">Import</a></td><td valign="top"><a href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-import">import</a></td><td valign="top"><a href="mathgl_ru_8.html#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-info">info</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-create-_0028MGL_0029">8.16 Создание данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-InPlot">InPlot</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-inplot">inplot</a></td><td valign="top"><a href="mathgl_ru_8.html#Transformation-matrix-_0028MGL_0029">8.3 Матрица преобразования (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-insert">insert</a></td><td valign="top"><a href="mathgl_ru_8.html#Rearrange-data-_0028MGL_0029">8.18 Изменение размеров данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Insert">Insert</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-InsertColumns">InsertColumns</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-InsertRows">InsertRows</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-InsertSlices">InsertSlices</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Integral">Integral</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-integrate">integrate</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-J">J</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-jacobian">jacobian</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-L">L</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Label-1">Label</a></td><td valign="top"><a href="mathgl_ru_3.html#Axis-and-Colorbar">3.7 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Last">Last</a></td><td valign="top"><a href="mathgl_ru_6.html#Informational-functions">6.9 Информационные функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Legend">Legend</a></td><td valign="top"><a href="mathgl_ru_3.html#Legend">3.8 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-legend">legend</a></td><td valign="top"><a href="mathgl_ru_8.html#Legend-_0028MGL_0029">8.8 Легенда (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Legend-5">Legend</a></td><td valign="top"><a href="mathgl_ru_9.html#Legend-sample">9.6.1 Legend &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-legend-3">legend</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-legendbox">legendbox</a></td><td valign="top"><a href="mathgl_ru_8.html#Legend-_0028MGL_0029">8.8 Легенда (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-legendmarks">legendmarks</a></td><td valign="top"><a href="mathgl_ru_8.html#Legend-_0028MGL_0029">8.8 Легенда (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-light">light</a></td><td valign="top"><a href="mathgl_ru_8.html#Lighting-_0028MGL_0029">8.1.2 Освещение (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Light">Light</a></td><td valign="top"><a href="mathgl_ru_3.html#Lighting">3.1.2 Освещение</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Light-5">Light</a></td><td valign="top"><a href="mathgl_ru_9.html#Several-light-sample">9.6.5 Несколько источников света</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-line">line</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Line">Line</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Line-3">Line</a></td><td valign="top"><a href="mathgl_ru_9.html#Line-styles-sample">9.5.4 Пример стилей линий и маркеров</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Line-4">Line</a></td><td valign="top"><a href="mathgl_ru_9.html#Arrow-styles-sample">9.5.5 Пример стилей стрелок</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Linear">Linear</a></td><td valign="top"><a href="mathgl_ru_6.html#Interpolation">6.8 Интерполяция</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Linear1">Linear1</a></td><td valign="top"><a href="mathgl_ru_6.html#Interpolation">6.8 Интерполяция</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-linewidth">linewidth</a></td><td valign="top"><a href="mathgl_ru_8.html#Default-sizes-_0028MGL_0029">8.1.4 Базовые размеры (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-list">list</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-create-_0028MGL_0029">8.16 Создание данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-LoadFont">LoadFont</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-M">M</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-map">map</a></td><td valign="top"><a href="mathgl_ru_8.html#Dual-plotting-_0028MGL_0029">8.12 Парные графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Map">Map</a></td><td valign="top"><a href="mathgl_ru_3.html#Map">3.12.6 Map</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Map-3">Map</a></td><td valign="top"><a href="mathgl_ru_9.html#Map-sample">9.4.4 Map &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-mark">mark</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Mark">Mark</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Mark-3">Mark</a></td><td valign="top"><a href="mathgl_ru_3.html#Mark">3.9.13 Mark</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Mark-7">Mark</a></td><td valign="top"><a href="mathgl_ru_9.html#Mark-sample">9.1.17 Mark &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Mark-8">Mark</a></td><td valign="top"><a href="mathgl_ru_9.html#Line-styles-sample">9.5.4 Пример стилей линий и маркеров</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-marksize">marksize</a></td><td valign="top"><a href="mathgl_ru_8.html#Default-sizes-_0028MGL_0029">8.1.4 Базовые размеры (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-marksize-2">marksize</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-max">max</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Max">Max</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Max-1">Max</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Maximal">Maximal</a></td><td valign="top"><a href="mathgl_ru_6.html#Informational-functions">6.9 Информационные функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-mesh">mesh</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Mesh">Mesh</a></td><td valign="top"><a href="mathgl_ru_3.html#Mesh">3.10.1 Mesh</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Mesh-3">Mesh</a></td><td valign="top"><a href="mathgl_ru_9.html#Mesh-sample">9.2.5 Mesh &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-meshnum">meshnum</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-settings-_0028MGL_0029">8.1.7 Прочие настройки (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-meshnum-2">meshnum</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Message">Message</a></td><td valign="top"><a href="mathgl_ru_3.html#Error-handling">3.1.9 Обработка ошибок</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_7.html#index-mglArg">mglArg</a></td><td valign="top"><a href="mathgl_ru_7.html#mglArg-class">7.8 mglArg class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_7.html#index-mglColor">mglColor</a></td><td valign="top"><a href="mathgl_ru_7.html#mglColor-class">7.4 mglColor class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_7.html#index-mglCommand">mglCommand</a></td><td valign="top"><a href="mathgl_ru_7.html#mglCommand-class">7.7 mglCommand class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-mglData">mglData</a></td><td valign="top"><a href="mathgl_ru_6.html#Create-and-delete">6.2 Создание и удаление</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_4.html#index-mglDraw">mglDraw</a></td><td valign="top"><a href="mathgl_ru_4.html#mglGraphAB-class">4.1 Класс mglGraphAB</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_7.html#index-mglFont">mglFont</a></td><td valign="top"><a href="mathgl_ru_7.html#mglFont-class">7.3 mglFont class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_7.html#index-mglFormula">mglFormula</a></td><td valign="top"><a href="mathgl_ru_7.html#mglFormula-class">7.2 mglFormula class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-mglGraph">mglGraph</a></td><td valign="top"><a href="mathgl_ru_3.html#MathGL-core">3. Ядро MathGL</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_4.html#index-mglGraphAB">mglGraphAB</a></td><td valign="top"><a href="mathgl_ru_4.html#Plotter-classes">4. Классы для отрисовки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_4.html#index-mglGraphAB-2">mglGraphAB</a></td><td valign="top"><a href="mathgl_ru_4.html#mglGraphAB-class">4.1 Класс mglGraphAB</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-mglGraphFLTK">mglGraphFLTK</a></td><td valign="top"><a href="mathgl_ru_5.html#Widget-classes">5. &ldquo;Оконные&rdquo; классы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_4.html#index-mglGraphGL">mglGraphGL</a></td><td valign="top"><a href="mathgl_ru_4.html#Plotter-classes">4. Классы для отрисовки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-mglGraphGLUT">mglGraphGLUT</a></td><td valign="top"><a href="mathgl_ru_5.html#Widget-classes">5. &ldquo;Оконные&rdquo; классы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_4.html#index-mglGraphIDTF">mglGraphIDTF</a></td><td valign="top"><a href="mathgl_ru_4.html#Plotter-classes">4. Классы для отрисовки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_4.html#index-mglGraphPS">mglGraphPS</a></td><td valign="top"><a href="mathgl_ru_4.html#Plotter-classes">4. Классы для отрисовки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-mglGraphQT">mglGraphQT</a></td><td valign="top"><a href="mathgl_ru_5.html#Widget-classes">5. &ldquo;Оконные&rdquo; классы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_4.html#index-mglGraphZB">mglGraphZB</a></td><td valign="top"><a href="mathgl_ru_4.html#Plotter-classes">4. Классы для отрисовки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_7.html#index-mglParse">mglParse</a></td><td valign="top"><a href="mathgl_ru_7.html#mglParse-class">7.1 mglParse class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-mglParse-2">mglParse</a></td><td valign="top"><a href="mathgl_ru_9.html#Parser-sample">9.7.11 Parser &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-mglPDE-1">mglPDE</a></td><td valign="top"><a href="mathgl_ru_9.html#PDE-sample">9.7.9 PDE &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_7.html#index-mglPoint">mglPoint</a></td><td valign="top"><a href="mathgl_ru_7.html#mglPoint-class">7.5 mglPoint class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-mglQO2d-1">mglQO2d</a></td><td valign="top"><a href="mathgl_ru_9.html#Beam-tracing-sample">9.7.10 Beam tracing &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-mglRay-1">mglRay</a></td><td valign="top"><a href="mathgl_ru_9.html#PDE-sample">9.7.9 PDE &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-mglRay-2">mglRay</a></td><td valign="top"><a href="mathgl_ru_9.html#Beam-tracing-sample">9.7.10 Beam tracing &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_7.html#index-mglVar">mglVar</a></td><td valign="top"><a href="mathgl_ru_7.html#mglVar-class">7.6 mglVar class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Min">Min</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-min">min</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Min-1">Min</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Minimal">Minimal</a></td><td valign="top"><a href="mathgl_ru_6.html#Informational-functions">6.9 Информационные функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Mirror">Mirror</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-mirror">mirror</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Modify">Modify</a></td><td valign="top"><a href="mathgl_ru_6.html#Fill">6.3 Заполнение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-modify">modify</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-filling-_0028MGL_0029">8.17 Заполнение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-modify-1">modify</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-filling-_0028MGL_0029">8.17 Заполнение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Momentum">Momentum</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-momentum">momentum</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Momentum-2">Momentum</a></td><td valign="top"><a href="mathgl_ru_6.html#Informational-functions">6.9 Информационные функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-multo">multo</a></td><td valign="top"><a href="mathgl_ru_8.html#Operators-_0028MGL_0029">8.22 Операторы (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_ru_16.html#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_15.html b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_15.html
new file mode 100644
index 0000000..dfa0094
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_15.html
@@ -0,0 +1,412 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: Индекс: N &ndash; S</title>
+
+<meta name="description" content="MathGL 1.11: Индекс: N &ndash; S">
+<meta name="keywords" content="MathGL 1.11: Индекс: N &ndash; S">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-2"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_14.html#index_split-1" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_16.html#index_split-3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Индекс: N &ndash; S</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_ru_16.html#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-N">N</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-new">new</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-create-_0028MGL_0029">8.16 Создание данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-NewFrame">NewFrame</a></td><td valign="top"><a href="mathgl_ru_3.html#Frames_002fAnimation">3.17 Кадры/Анимация</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-NewFrame-2">NewFrame</a></td><td valign="top"><a href="mathgl_ru_3.html#IDTF-functions">3.18 IDTF функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-next">next</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-norm">norm</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Norm">Norm</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-NormSl">NormSl</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-normsl">normsl</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-O">O</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-once">once</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Org">Org</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-origin">origin</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-P">P</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-palette">palette</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-settings-_0028MGL_0029">8.1.7 Прочие настройки (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-pde">pde</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-perspective">perspective</a></td><td valign="top"><a href="mathgl_ru_8.html#Transformation-matrix-_0028MGL_0029">8.3 Матрица преобразования (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Perspective">Perspective</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-pipe">pipe</a></td><td valign="top"><a href="mathgl_ru_8.html#Vector-fields-_0028MGL_0029">8.13 Векторные поля (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Pipe">Pipe</a></td><td valign="top"><a href="mathgl_ru_3.html#Pipe">3.13.6 Pipe</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Pipe-5">Pipe</a></td><td valign="top"><a href="mathgl_ru_9.html#Pipe-sample">9.4.10 Pipe &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Pipe-6">Pipe</a></td><td valign="top"><a href="mathgl_ru_9.html#Pipe-3D-sample">9.4.18 Pipe 3D &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Plot">Plot</a></td><td valign="top"><a href="mathgl_ru_3.html#Plot">3.9.1 Plot</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-plot">plot</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Plot-4">Plot</a></td><td valign="top"><a href="mathgl_ru_3.html#Plots-by-formula">3.14.9 Графики функций</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Plot-7">Plot</a></td><td valign="top"><a href="mathgl_ru_9.html#Plot-sample">9.1.1 Plot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Plot-8">Plot</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t1D-plot-sample">9.5.1 Пример графиков 1D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Plot-9">Plot</a></td><td valign="top"><a href="mathgl_ru_9.html#Legend-sample">9.6.1 Legend &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Plot-10">Plot</a></td><td valign="top"><a href="mathgl_ru_9.html#Semi_002dlog-sample">9.7.3 Semi-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Plot-11">Plot</a></td><td valign="top"><a href="mathgl_ru_9.html#Log_002dlog-sample">9.7.4 Log-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-plotfactor">plotfactor</a></td><td valign="top"><a href="mathgl_ru_8.html#Zooming-_0028MGL_0029">8.1.5 Масштабирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-PlotId">PlotId</a></td><td valign="top"><a href="mathgl_ru_3.html#Other-settings">3.1.10 Прочие настройки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-PrintInfo">PrintInfo</a></td><td valign="top"><a href="mathgl_ru_6.html#Informational-functions">6.9 Информационные функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-put">put</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-filling-_0028MGL_0029">8.17 Заполнение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Puts">Puts</a></td><td valign="top"><a href="mathgl_ru_3.html#Text-printing">3.6 Вывод текста</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Puts-5">Puts</a></td><td valign="top"><a href="mathgl_ru_9.html#Text-styles-sample">9.5.6 Пример стилей текста</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Puts-6">Puts</a></td><td valign="top"><a href="mathgl_ru_9.html#TeX-parsing-sample">9.5.7 Пример TeX формулы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Puts-7">Puts</a></td><td valign="top"><a href="mathgl_ru_9.html#Font-faces-sample">9.5.8 Примеры начертаний шрифта</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-PutsFit">PutsFit</a></td><td valign="top"><a href="mathgl_ru_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-putsfit">putsfit</a></td><td valign="top"><a href="mathgl_ru_8.html#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-PutsFit-2">PutsFit</a></td><td valign="top"><a href="mathgl_ru_9.html#Fitting-sample">9.7.5 Fitting &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Putsw">Putsw</a></td><td valign="top"><a href="mathgl_ru_3.html#Text-printing">3.6 Вывод текста</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-Q">Q</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-QMathGL">QMathGL</a></td><td valign="top"><a href="mathgl_ru_5.html#Widget-classes">5. &ldquo;Оконные&rdquo; классы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-QMathGL-2">QMathGL</a></td><td valign="top"><a href="mathgl_ru_5.html#QMathGL-class">5.2 QMathGL class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-qo2d">qo2d</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-quadplot">quadplot</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-QuadPlot">QuadPlot</a></td><td valign="top"><a href="mathgl_ru_3.html#QuadPlot">3.14.8 QuadPlot</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-R">R</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Radar">Radar</a></td><td valign="top"><a href="mathgl_ru_3.html#Radar">3.9.2 Radar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-radar">radar</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Radar-2">Radar</a></td><td valign="top"><a href="mathgl_ru_9.html#Radar-sample">9.1.2 Radar &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ranges">ranges</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ray">ray</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-read">read</a></td><td valign="top"><a href="mathgl_ru_8.html#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Read">Read</a></td><td valign="top"><a href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-ReadAll">ReadAll</a></td><td valign="top"><a href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-readall">readall</a></td><td valign="top"><a href="mathgl_ru_8.html#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-readhdf">readhdf</a></td><td valign="top"><a href="mathgl_ru_8.html#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-ReadHDF">ReadHDF</a></td><td valign="top"><a href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-ReadMat">ReadMat</a></td><td valign="top"><a href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-readmat">readmat</a></td><td valign="top"><a href="mathgl_ru_8.html#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-ReadRange">ReadRange</a></td><td valign="top"><a href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Rearrange">Rearrange</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-rearrange">rearrange</a></td><td valign="top"><a href="mathgl_ru_8.html#Rearrange-data-_0028MGL_0029">8.18 Изменение размеров данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-RecalcBorder">RecalcBorder</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-rect">rect</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Region">Region</a></td><td valign="top"><a href="mathgl_ru_3.html#Region">3.9.5 Region</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-region">region</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Region-3">Region</a></td><td valign="top"><a href="mathgl_ru_9.html#Region-sample">9.1.13 Region &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Region-4">Region</a></td><td valign="top"><a href="mathgl_ru_9.html#Region-gradient-sample">9.1.14 Region с градиентной заливкой &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Resize">Resize</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-resize">resize</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-RestoreFont">RestoreFont</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-RestoreM">RestoreM</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-return">return</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Roll">Roll</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-roll">roll</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-rotate">rotate</a></td><td valign="top"><a href="mathgl_ru_8.html#Transformation-matrix-_0028MGL_0029">8.3 Матрица преобразования (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Rotate">Rotate</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-RotateN">RotateN</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-rotatetext">rotatetext</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-settings-_0028MGL_0029">8.1.7 Прочие настройки (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-S">S</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-save">save</a></td><td valign="top"><a href="mathgl_ru_8.html#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Save">Save</a></td><td valign="top"><a href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-SaveHDF">SaveHDF</a></td><td valign="top"><a href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-savehdf">savehdf</a></td><td valign="top"><a href="mathgl_ru_8.html#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SelectPen">SelectPen</a></td><td valign="top"><a href="mathgl_ru_3.html#Palette-and-colors">3.1.8 Палитра и цвета</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Set">Set</a></td><td valign="top"><a href="mathgl_ru_6.html#Create-and-delete">6.2 Создание и удаление</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetAlphaDef">SetAlphaDef</a></td><td valign="top"><a href="mathgl_ru_3.html#Transparency">3.1.1 Прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetArrowSize">SetArrowSize</a></td><td valign="top"><a href="mathgl_ru_3.html#Default-sizes">3.1.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetAutoRanges">SetAutoRanges</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetAxialDir">SetAxialDir</a></td><td valign="top"><a href="mathgl_ru_3.html#Other-settings">3.1.10 Прочие настройки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetBarWidth">SetBarWidth</a></td><td valign="top"><a href="mathgl_ru_3.html#Default-sizes">3.1.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetBaseLineWidth">SetBaseLineWidth</a></td><td valign="top"><a href="mathgl_ru_3.html#Default-sizes">3.1.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-SetColumnId">SetColumnId</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetCoor">SetCoor</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation">3.2.2 Криволинейные координаты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetCTT">SetCTT</a></td><td valign="top"><a href="mathgl_ru_3.html#Ticks">3.2.3 Метки осей</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetCut">SetCut</a></td><td valign="top"><a href="mathgl_ru_3.html#Cutting">3.1.6 Обрезание</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetCutBox">SetCutBox</a></td><td valign="top"><a href="mathgl_ru_3.html#Cutting">3.1.6 Обрезание</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetDrawFace">SetDrawFace</a></td><td valign="top"><a href="mathgl_ru_3.html#Other-settings">3.1.10 Прочие настройки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetFont">SetFont</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetFontDef">SetFontDef</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetFontSize">SetFontSize</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetFontSizeCM">SetFontSizeCM</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetFontSizeIN">SetFontSizeIN</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetFontSizePT">SetFontSizePT</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetFunc">SetFunc</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation">3.2.2 Криволинейные координаты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetLegendBox">SetLegendBox</a></td><td valign="top"><a href="mathgl_ru_3.html#Legend">3.8 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetLegendMarks">SetLegendMarks</a></td><td valign="top"><a href="mathgl_ru_3.html#Legend">3.8 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetMarkSize">SetMarkSize</a></td><td valign="top"><a href="mathgl_ru_3.html#Default-sizes">3.1.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetMeshNum">SetMeshNum</a></td><td valign="top"><a href="mathgl_ru_3.html#Other-settings">3.1.10 Прочие настройки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetPalColor">SetPalColor</a></td><td valign="top"><a href="mathgl_ru_3.html#Palette-and-colors">3.1.8 Палитра и цвета</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetPalette">SetPalette</a></td><td valign="top"><a href="mathgl_ru_3.html#Palette-and-colors">3.1.8 Палитра и цвета</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetPalNum">SetPalNum</a></td><td valign="top"><a href="mathgl_ru_3.html#Palette-and-colors">3.1.8 Палитра и цвета</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetPlotFactor">SetPlotFactor</a></td><td valign="top"><a href="mathgl_ru_3.html#Zooming">3.1.5 Масштабирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetRanges">SetRanges</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetRotatedText">SetRotatedText</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetScheme">SetScheme</a></td><td valign="top"><a href="mathgl_ru_3.html#Palette-and-colors">3.1.8 Палитра и цвета</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-setsize">setsize</a></td><td valign="top"><a href="mathgl_ru_8.html#Export-to-file-_0028MGL_0029">8.4 Экспорт в файл (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetSize">SetSize</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetTickLen">SetTickLen</a></td><td valign="top"><a href="mathgl_ru_3.html#Default-sizes">3.1.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetTicks">SetTicks</a></td><td valign="top"><a href="mathgl_ru_3.html#Ticks">3.2.3 Метки осей</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-SetTicks-2">SetTicks</a></td><td valign="top"><a href="mathgl_ru_9.html#Semi_002dlog-sample">9.7.3 Semi-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-SetTicks-3">SetTicks</a></td><td valign="top"><a href="mathgl_ru_9.html#Log_002dlog-sample">9.7.4 Log-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetTickStl">SetTickStl</a></td><td valign="top"><a href="mathgl_ru_3.html#Default-sizes">3.1.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetTicksVal">SetTicksVal</a></td><td valign="top"><a href="mathgl_ru_3.html#Ticks">3.2.3 Метки осей</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-SetTicksVal-4">SetTicksVal</a></td><td valign="top"><a href="mathgl_ru_9.html#Manual-ticks-sample">9.7.12 Особые метки по осям</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-SetTicksVal-5">SetTicksVal</a></td><td valign="top"><a href="mathgl_ru_9.html#ColumnPlot-sample">9.7.13 ColumnPlot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-SetTicksVal-6">SetTicksVal</a></td><td valign="top"><a href="mathgl_ru_9.html#StickPlot-sample">9.7.14 StickPlot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetTransparent">SetTransparent</a></td><td valign="top"><a href="mathgl_ru_3.html#Transparency">3.1.1 Прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetTranspType">SetTranspType</a></td><td valign="top"><a href="mathgl_ru_3.html#Transparency">3.1.1 Прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetTuneTicks">SetTuneTicks</a></td><td valign="top"><a href="mathgl_ru_3.html#Ticks">3.2.3 Метки осей</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetWarn">SetWarn</a></td><td valign="top"><a href="mathgl_ru_3.html#Error-handling">3.1.9 Обработка ошибок</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetXTT">SetXTT</a></td><td valign="top"><a href="mathgl_ru_3.html#Ticks">3.2.3 Метки осей</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetYTT">SetYTT</a></td><td valign="top"><a href="mathgl_ru_3.html#Ticks">3.2.3 Метки осей</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetZTT">SetZTT</a></td><td valign="top"><a href="mathgl_ru_3.html#Ticks">3.2.3 Метки осей</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Sew">Sew</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-sew">sew</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Sew-2">Sew</a></td><td valign="top"><a href="mathgl_ru_9.html#Sew-sample">9.7.7 Sew &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ShowImage">ShowImage</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SimplePlot">SimplePlot</a></td><td valign="top"><a href="mathgl_ru_3.html#SimplePlot">3.14.10 SimplePlot</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-sinfft">sinfft</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-SinFFT">SinFFT</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-smooth">smooth</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Smooth">Smooth</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Sphere">Sphere</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-sphere">sphere</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Sphere-3">Sphere</a></td><td valign="top"><a href="mathgl_ru_9.html#Molecules-drawing-sample">9.6.11 Рисование молекул</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Spline">Spline</a></td><td valign="top"><a href="mathgl_ru_6.html#Interpolation">6.8 Интерполяция</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Spline1">Spline1</a></td><td valign="top"><a href="mathgl_ru_6.html#Interpolation">6.8 Интерполяция</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Spline5">Spline5</a></td><td valign="top"><a href="mathgl_ru_6.html#Interpolation">6.8 Интерполяция</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Squeeze">Squeeze</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-squeeze">squeeze</a></td><td valign="top"><a href="mathgl_ru_8.html#Rearrange-data-_0028MGL_0029">8.18 Изменение размеров данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-stem">stem</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Stem">Stem</a></td><td valign="top"><a href="mathgl_ru_3.html#Stem">3.9.6 Stem</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Stem-4">Stem</a></td><td valign="top"><a href="mathgl_ru_9.html#Stem-sample">9.1.12 Stem &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-step">step</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Step">Step</a></td><td valign="top"><a href="mathgl_ru_3.html#Step">3.9.10 Step</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Step-4">Step</a></td><td valign="top"><a href="mathgl_ru_9.html#Step-sample">9.1.11 Step &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-stfa">stfa</a></td><td valign="top"><a href="mathgl_ru_8.html#Dual-plotting-_0028MGL_0029">8.12 Парные графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-STFA">STFA</a></td><td valign="top"><a href="mathgl_ru_3.html#STFA">3.12.7 STFA</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-STFA-3">STFA</a></td><td valign="top"><a href="mathgl_ru_9.html#STFA-sample">9.7.8 STFA &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-stfad">stfad</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-stickplot">stickplot</a></td><td valign="top"><a href="mathgl_ru_8.html#Transformation-matrix-_0028MGL_0029">8.3 Матрица преобразования (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-stop">stop</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-subdata">subdata</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-SubData">SubData</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SubPlot">SubPlot</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-subplot">subplot</a></td><td valign="top"><a href="mathgl_ru_8.html#Transformation-matrix-_0028MGL_0029">8.3 Матрица преобразования (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-SubPlot-3">SubPlot</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t1D-plot-sample">9.5.1 Пример графиков 1D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-SubPlot-4">SubPlot</a></td><td valign="top"><a href="mathgl_ru_9.html#Adding-mesh-sample">9.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-subto">subto</a></td><td valign="top"><a href="mathgl_ru_8.html#Operators-_0028MGL_0029">8.22 Операторы (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-sum">sum</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Sum">Sum</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Surf">Surf</a></td><td valign="top"><a href="mathgl_ru_3.html#Surf">3.10.4 Surf</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-surf">surf</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Surf-3">Surf</a></td><td valign="top"><a href="mathgl_ru_3.html#Plots-by-formula">3.14.9 Графики функций</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-6">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#Surf-sample">9.2.1 Surf &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-7">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#Transparent-surface-sample">9.2.2 Transparent surface &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-8">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#Surface-in-fog-sample">9.2.3 Surface in fog &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-9">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#Sharp-colors-sample">9.2.4 Sharp colors &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-10">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t2D-plot-sample">9.5.2 Пример графиков 2D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-11">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t3D-plot-sample">9.5.3 Пример графиков 3D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-12">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#Adding-mesh-sample">9.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-13">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#Surf-_0026-Cont-sample">9.6.3 Surf &amp; Cont &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-14">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#Several-light-sample">9.6.5 Несколько источников света</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-15">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#Mirrored-surface-sample">9.6.6 Отражение поверхности</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-surf3">surf3</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Surf3">Surf3</a></td><td valign="top"><a href="mathgl_ru_3.html#Surf3">3.11.1 Surf3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf3-5">Surf3</a></td><td valign="top"><a href="mathgl_ru_9.html#Surf3-sample">9.3.1 Surf3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf3-6">Surf3</a></td><td valign="top"><a href="mathgl_ru_9.html#CutMinMax-sample">9.3.9 CutMinMax &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf3-7">Surf3</a></td><td valign="top"><a href="mathgl_ru_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf3-8">Surf3</a></td><td valign="top"><a href="mathgl_ru_9.html#CutOff-sample">9.3.11 CutOff &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf3-9">Surf3</a></td><td valign="top"><a href="mathgl_ru_9.html#Coloring-by-coordinates-sample">9.6.9 Окрашивание по положению грани</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Surf3A">Surf3A</a></td><td valign="top"><a href="mathgl_ru_3.html#Surf3A">3.12.4 Surf3A</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-surf3a">surf3a</a></td><td valign="top"><a href="mathgl_ru_8.html#Dual-plotting-_0028MGL_0029">8.12 Парные графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf3A-5">Surf3A</a></td><td valign="top"><a href="mathgl_ru_9.html#Surf3A-sample">9.4.13 Surf3A &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Surf3C">Surf3C</a></td><td valign="top"><a href="mathgl_ru_3.html#Surf3C">3.12.2 Surf3C</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-surf3c">surf3c</a></td><td valign="top"><a href="mathgl_ru_8.html#Dual-plotting-_0028MGL_0029">8.12 Парные графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf3C-5">Surf3C</a></td><td valign="top"><a href="mathgl_ru_9.html#Surf3C-sample">9.4.12 Surf3C &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-surfa">surfa</a></td><td valign="top"><a href="mathgl_ru_8.html#Dual-plotting-_0028MGL_0029">8.12 Парные графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SurfA">SurfA</a></td><td valign="top"><a href="mathgl_ru_3.html#SurfA">3.12.3 SurfA</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-SurfA-3">SurfA</a></td><td valign="top"><a href="mathgl_ru_9.html#SurfA-sample">9.4.2 SurfA &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-surfc">surfc</a></td><td valign="top"><a href="mathgl_ru_8.html#Dual-plotting-_0028MGL_0029">8.12 Парные графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SurfC">SurfC</a></td><td valign="top"><a href="mathgl_ru_3.html#SurfC">3.12.1 SurfC</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-SurfC-3">SurfC</a></td><td valign="top"><a href="mathgl_ru_9.html#SurfC-sample">9.4.1 SurfC &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-swap">swap</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Swap">Swap</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_ru_16.html#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_16.html b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_16.html
new file mode 100644
index 0000000..f76cdc4
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_16.html
@@ -0,0 +1,321 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: Индекс: T &ndash; Ц</title>
+
+<meta name="description" content="MathGL 1.11: Индекс: T &ndash; Ц">
+<meta name="keywords" content="MathGL 1.11: Индекс: T &ndash; Ц">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_15.html#index_split-2" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[ &gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Индекс: T &ndash; Ц</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-T">T</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Tens">Tens</a></td><td valign="top"><a href="mathgl_ru_3.html#Tens">3.9.3 Tens</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-tens">tens</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Tens-4">Tens</a></td><td valign="top"><a href="mathgl_ru_9.html#Tens-sample">9.1.3 Tens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Ternary">Ternary</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation">3.2.2 Криволинейные координаты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ternary">ternary</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Ternary-2">Ternary</a></td><td valign="top"><a href="mathgl_ru_9.html#Ternary-plot-sample">9.6.8 Ternary plot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Text">Text</a></td><td valign="top"><a href="mathgl_ru_3.html#Text-printing">3.6 Вывод текста</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-text">text</a></td><td valign="top"><a href="mathgl_ru_8.html#Text-printing-_0028MGL_0029">8.6 Вывод текста (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Text-7">Text</a></td><td valign="top"><a href="mathgl_ru_9.html#Text-sample">9.1.20 Text &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-textmark">textmark</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-TextMark">TextMark</a></td><td valign="top"><a href="mathgl_ru_3.html#TextMark">3.9.14 TextMark</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-TextMark-9">TextMark</a></td><td valign="top"><a href="mathgl_ru_9.html#TextMark-sample">9.1.18 TextMark &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ticklen">ticklen</a></td><td valign="top"><a href="mathgl_ru_8.html#Default-sizes-_0028MGL_0029">8.1.4 Базовые размеры (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-tickstl">tickstl</a></td><td valign="top"><a href="mathgl_ru_8.html#Default-sizes-_0028MGL_0029">8.1.4 Базовые размеры (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-tile">tile</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Tile">Tile</a></td><td valign="top"><a href="mathgl_ru_3.html#Tile">3.10.6 Tile</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Tile-3">Tile</a></td><td valign="top"><a href="mathgl_ru_9.html#Tile-sample">9.2.8 Tile &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-tiles">tiles</a></td><td valign="top"><a href="mathgl_ru_8.html#Dual-plotting-_0028MGL_0029">8.12 Парные графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-TileS">TileS</a></td><td valign="top"><a href="mathgl_ru_3.html#TileS">3.12.5 TileS</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-TileS-3">TileS</a></td><td valign="top"><a href="mathgl_ru_9.html#TileS-sample">9.4.3 TileS &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-title">title</a></td><td valign="top"><a href="mathgl_ru_8.html#Text-printing-_0028MGL_0029">8.6 Вывод текста (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Title">Title</a></td><td valign="top"><a href="mathgl_ru_3.html#Text-printing">3.6 Вывод текста</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-tlabel">tlabel</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-torus">torus</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Torus">Torus</a></td><td valign="top"><a href="mathgl_ru_3.html#Torus">3.9.11 Torus</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Torus-3">Torus</a></td><td valign="top"><a href="mathgl_ru_9.html#Torus-sample">9.1.21 Torus &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-trace">trace</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Trace">Trace</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Traj">Traj</a></td><td valign="top"><a href="mathgl_ru_3.html#Traj">3.13.1 Traj</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-traj">traj</a></td><td valign="top"><a href="mathgl_ru_8.html#Vector-fields-_0028MGL_0029">8.13 Векторные поля (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Traj-3">Traj</a></td><td valign="top"><a href="mathgl_ru_9.html#Traj-sample">9.4.5 Traj &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-transform">transform</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-transforma">transforma</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-transparent">transparent</a></td><td valign="top"><a href="mathgl_ru_8.html#Transparency-_0028MGL_0029">8.1.1 Прозрачность (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-transpose">transpose</a></td><td valign="top"><a href="mathgl_ru_8.html#Rearrange-data-_0028MGL_0029">8.18 Изменение размеров данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Transpose">Transpose</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-TranspType">TranspType</a></td><td valign="top"><a href="mathgl_ru_9.html#Normal-transparency">9.5.11 Обычная прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-transptype">transptype</a></td><td valign="top"><a href="mathgl_ru_8.html#Transparency-_0028MGL_0029">8.1.1 Прозрачность (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-TranspType-1">TranspType</a></td><td valign="top"><a href="mathgl_ru_9.html#Glass_002dlike-transparency">9.5.12 &quot;Стеклянная&quot; прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-TranspType-2">TranspType</a></td><td valign="top"><a href="mathgl_ru_9.html#Lamp_002dlike-transparency">9.5.13 &quot;Ламповая&quot; прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-TriCont">TriCont</a></td><td valign="top"><a href="mathgl_ru_3.html#TriCont">3.14.7 TriCont</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-tricont">tricont</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-triplot">triplot</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-TriPlot">TriPlot</a></td><td valign="top"><a href="mathgl_ru_3.html#TriPlot">3.14.6 TriPlot</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Tube">Tube</a></td><td valign="top"><a href="mathgl_ru_3.html#Tube">3.9.12 Tube</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-tube">tube</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Tube-7">Tube</a></td><td valign="top"><a href="mathgl_ru_9.html#Tube-sample">9.1.19 Tube &ndash; пример использования</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-V">V</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-v">v</a></td><td valign="top"><a href="mathgl_ru_6.html#Interpolation">6.8 Интерполяция</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-var">var</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-create-_0028MGL_0029">8.16 Создание данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-vect">vect</a></td><td valign="top"><a href="mathgl_ru_8.html#Vector-fields-_0028MGL_0029">8.13 Векторные поля (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Vect">Vect</a></td><td valign="top"><a href="mathgl_ru_3.html#Vect">3.13.2 Vect</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Vect-5">Vect</a></td><td valign="top"><a href="mathgl_ru_9.html#Vect-sample">9.4.6 Vect &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Vect-6">Vect</a></td><td valign="top"><a href="mathgl_ru_9.html#Vect-3D-sample">9.4.14 Vect 3D &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-VectC">VectC</a></td><td valign="top"><a href="mathgl_ru_9.html#VectC-sample">9.4.8 VectC &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-vectc">vectc</a></td><td valign="top"><a href="mathgl_ru_8.html#Vector-fields-_0028MGL_0029">8.13 Векторные поля (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-VectC-1">VectC</a></td><td valign="top"><a href="mathgl_ru_9.html#VectC-3D-sample">9.4.16 VectC 3D &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-vectl">vectl</a></td><td valign="top"><a href="mathgl_ru_8.html#Vector-fields-_0028MGL_0029">8.13 Векторные поля (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-VectL">VectL</a></td><td valign="top"><a href="mathgl_ru_9.html#VectL-sample">9.4.7 VectL &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-VectL-1">VectL</a></td><td valign="top"><a href="mathgl_ru_9.html#VectL-3D-sample">9.4.15 VectL 3D &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-View">View</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-W">W</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_2.html#index-widgets">widgets</a></td><td valign="top"><a href="mathgl_ru_2.html#Using-FLTK_002fGLUT-window">2.1.1 Using FLTK/Qt/GLUT window</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-widgets-1">widgets</a></td><td valign="top"><a href="mathgl_ru_5.html#Widget-classes">5. &ldquo;Оконные&rdquo; классы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-widgets-2">widgets</a></td><td valign="top"><a href="mathgl_ru_5.html#Fl_005fMathGL-class">5.1 Класс Fl_MathGL</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-widgets-3">widgets</a></td><td valign="top"><a href="mathgl_ru_5.html#QMathGL-class">5.2 QMathGL class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_2.html#index-window">window</a></td><td valign="top"><a href="mathgl_ru_2.html#Using-FLTK_002fGLUT-window">2.1.1 Using FLTK/Qt/GLUT window</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_4.html#index-window-1">window</a></td><td valign="top"><a href="mathgl_ru_4.html#mglGraphAB-class">4.1 Класс mglGraphAB</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-window-2">window</a></td><td valign="top"><a href="mathgl_ru_5.html#Widget-classes">5. &ldquo;Оконные&rdquo; классы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-write">write</a></td><td valign="top"><a href="mathgl_ru_8.html#Export-to-file-_0028MGL_0029">8.4 Экспорт в файл (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-WriteBMP">WriteBMP</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-WriteEPS">WriteEPS</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-WriteFrame">WriteFrame</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-WriteGIF">WriteGIF</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-WriteIDTF">WriteIDTF</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-WriteJPEG">WriteJPEG</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-WritePNG">WritePNG</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-WriteSVG">WriteSVG</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-X">X</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-xlabel">xlabel</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-XRange">XRange</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-xrange">xrange</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-xrange-3">xrange</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-xtick">xtick</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-Y">Y</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ylabel">ylabel</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-YRange">YRange</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-yrange">yrange</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-yrange-3">yrange</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ytick">ytick</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-Z">Z</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-zlabel">zlabel</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Zoom">Zoom</a></td><td valign="top"><a href="mathgl_ru_3.html#Zooming">3.1.5 Масштабирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-zoom">zoom</a></td><td valign="top"><a href="mathgl_ru_8.html#Zooming-_0028MGL_0029">8.1.5 Масштабирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ZRange">ZRange</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-zrange">zrange</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-zrange-3">zrange</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ztick">ztick</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_symbol-1">Н</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-_041d_0430_0441_0442_0440_043e_0439_043a_0430-MathGL">Настройка MathGL</a></td><td valign="top"><a href="mathgl_ru_3.html#Graphics-setup">3.1 Настройка графика</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_symbol-2">О</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_1.html#index-_041e_0431_0437_043e_0440-MathGL">Обзор MathGL</a></td><td valign="top"><a href="mathgl_ru_1.html#Overview">1. Обзор MathGL</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_symbol-3">С</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_1.html#index-_0421_0442_0438_043bx-_043b_0438_043d_0438_0439">Стиль линий</a></td><td valign="top"><a href="mathgl_ru_1.html#Line-styles">1.4.2 Стиль линий</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_1.html#index-_0421_0442_0438_043bx-_043c_0430_0440_043ae_0440_043e_0432">Стиль маркеров</a></td><td valign="top"><a href="mathgl_ru_1.html#Line-styles">1.4.2 Стиль линий</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_1.html#index-_0421_0442_0438_043bx-_0441_0442_0440e_043b_043e_043a">Стиль стрелок</a></td><td valign="top"><a href="mathgl_ru_1.html#Line-styles">1.4.2 Стиль линий</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_1.html#index-_0421_0442_0438_043bx-_0442e_043a_0441_0442_0430">Стиль текста</a></td><td valign="top"><a href="mathgl_ru_1.html#Font-styles">1.4.4 Стиль текста</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_symbol-4">Т</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_1.html#index-_0422e_043a_0441_0442_043e_0432_044be-_0444_043e_0440_043c_0443_043b_044b">Текстовые формулы</a></td><td valign="top"><a href="mathgl_ru_1.html#Textual-formulas">1.4.5 Текстовые формулы</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_symbol-5">Ц</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_1.html#index-C_0432e_0442_043e_0432_0430ya-_0441_0445e_043c_0430">Цветовая схема</a></td><td valign="top"><a href="mathgl_ru_1.html#Color-scheme">1.4.3 Цветовая схема</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_2.html b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_2.html
new file mode 100644
index 0000000..b045955
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_2.html
@@ -0,0 +1,1983 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: 2. MathGL examples</title>
+
+<meta name="description" content="MathGL 1.11: 2. MathGL examples">
+<meta name="keywords" content="MathGL 1.11: 2. MathGL examples">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Examples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_1.html#Thanks" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_1.html#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL-examples"></a>
+<h1 class="chapter">2. MathGL examples</h1>
+
+<p>This chapter contain information about basic and advanced MathGL, hints and samples for all types of graphics. I recommend you read first 2 sections one after another and at least look on &ldquo;Hints&rdquo; section. Also I recommend you to look at <a href="mathgl_ru_1.html#General-concepts">Основные принципы</a> and <a href="mathgl_ru_1.html#FAQ">FAQ</a>. Sample code for some of these examples can be found in <a href="http://mathgl.sf.net/pictures.html">http://mathgl.sf.net/pictures.html</a> and in <a href="mathgl_ru_9.html#Samples">Примеры использования MathGL</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Basic-usage">2.1 Basic usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Advanced-usage">2.2 Advanced usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-handling">2.3 Data handling</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-plotting">2.4 Data plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#C_002fFortran-interface">2.5 C/Fortran interface</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#MathGL-and-PyQt">2.6 MathGL and PyQt</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Hints">2.7 Hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Basic-usage"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Examples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Using-FLTK_002fGLUT-window" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Basic-usage-1"></a>
+<h2 class="section">2.1 Basic usage</h2>
+
+<p>MathGL library can be used by several manners. Each has positive and negative sides:
+</p><ul>
+<li>
+<em>The using of MathGL library features for creating graphical window (requires FLTK or GLUT libraries).</em>
+
+<p>Positive side is the possibility to view the plot at once and to modify it (rotate, zoom or switch on transparency or lighting) by hand or by mouse. Negative sides are: the need  of X-terminal and limitation consisting in working with the only one set of data at a time.
+</p></li><li>
+<em>Direct writing to file in bitmap or vector format without creation of graphical window.</em>
+
+<p>Positive aspects are: batch processing of similar data set (for example, a set of resulting data files for different calculation parameters), running from the console program (including the cluster calculation), fast and automated drawing, saving pictures for further analysis (or demonstration). Negative sides are: the usage of the external program for picture viewing. Also, the data plotting is non-visual. So, you have to imagine the picture (view angles, lighting and so on) before the plotting. I recommend to use graphical window for determining the optimal parameters of plotting on the base of some typical data set. And later use these parameters for batch processing in console program.
+</p></li><li>
+<em>Drawing in memory with the following displaying by other graphical program.</em>
+
+<p>In this case the programmer has more freedom in selecting the window libraries (not only FLTK or GLUT), in positioning and surroundings control and so on. I recommend to use such way for &ldquo;settled&rdquo; programs.
+</p></li></ul>
+
+<p>Let me consider the aforesaid in more detail.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Using-FLTK_002fGLUT-window">2.1.1 Using FLTK/Qt/GLUT window</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Drawing-to-file">2.1.2 Drawing to file</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Drawing-in-memory">2.1.3 Drawing in memory</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Using-QMathGL">2.1.4 Using QMathGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+
+
+<hr size="6">
+<a name="Using-FLTK_002fGLUT-window"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Basic-usage" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Drawing-to-file" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Using-FLTK_002fQt_002fGLUT-window"></a>
+<h3 class="subsection">2.1.1 Using FLTK/Qt/GLUT window</h3>
+<a name="index-window"></a>
+<a name="index-widgets"></a>
+
+<p>The &ldquo;interactive&rdquo; way of drawing in MathGL consists in window creation  with help of class <code>mglGraphFLTK</code>, <code>mglGraphQT</code> or <code>mglGraphGLUT</code> (see section <a href="mathgl_ru_5.html#Widget-classes">&ldquo;Оконные&rdquo; классы</a>) and the following drawing in this window. There is a corresponding code:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Box();
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mglGraphFLTK gr;
+        gr.Window(argc,argv,sample,&quot;MathGL examples&quot;);
+        return mglFlRun();
+    }
+</pre><p>Here function <code>sample</code> is defined. This function does all drawing. Other function <code>main</code> is entry point function for console program. Arguments of <code>main</code> should be transfered to <code>Window()</code> since it may contain OS specific information (see section <a href="mathgl_ru_4.html#mglGraphAB-class">Класс mglGraphAB</a>).
+</p>
+<p>Alternatively you can create yours own class inherited from class <code>mglDraw</code> and re-implement the function <code>Draw()</code> in it:
+</p><pre class="verbatim">    class Foo : public mglDraw
+    {
+    public:
+        int Draw(mglGraph *gr);
+    } foo;
+    //-----------------------------------------------------
+    int Foo::Draw(mglGraph *gr)
+    {
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Box();
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mglGraphFLTK gr;
+        gr.Window(argc,argv,foo,&quot;MathGL examples&quot;);
+        return mglFlRun();
+    }
+</pre>
+<p>The similar code can be written for <code>mglGraphQT</code> or for <code>mglGraphGLUT</code> window (function <code>sample()</code> is the same):
+</p><pre class="verbatim">    int main(int argc,char **argv)
+    {
+        mglGraphGLUT gr;
+        gr.Window(argc,argv,sample,&quot;MathGL examples&quot;);
+        return 0;
+    }
+</pre>
+<p>The rotation, shift, zooming, switching on/off transparency and lighting can be done with help of tool-buttons (for <code>mglGraphFLTK</code> and <code>mglGraphQT</code>) or by hot-keys: &lsquo;<samp>a</samp>&rsquo;, &lsquo;<samp>d</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;, &lsquo;<samp>s</samp>&rsquo; for plot rotation, &lsquo;<samp>r</samp>&rsquo; and &lsquo;<samp>f</samp>&rsquo; switching on/off transparency and lighting. Press &lsquo;<samp>x</samp>&rsquo; for exit (or closing the window).
+</p>
+<p>In this example function <code>sample</code> rotates axes (<code>Rotate()</code>, see section <a href="mathgl_ru_3.html#Transformation-matrix">Матрица преобразования</a>) and draws the bounding box (<code>Box()</code>). Drawing procedure is separated in a function since it will be used on demand when window canvas needs to be redrawn. Widget classes (<code>mglGraphFLTK</code>, <code>mglGraphGLUT</code> and so on) support a delayed drawing, when all plotting functions are called once at the beginning of writing to memory lists. Further program displays the saved lists faster. Resulting redrawing will be faster but it requires sufficient memory. Several lists (frames) can be displayed one after another (by pressing &lsquo;<samp>,</samp>&rsquo;, &lsquo;<samp>.</samp>&rsquo;) or run as cinema. To switch these feature on one needs to modify function <code>sample</code>:
+</p><pre class="verbatim">    int sample1(mglGraph *gr, void *)
+    {
+        gr-&gt;NewFrame();             // the first frame
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Box();
+        gr-&gt;EndFrame();             // end of the first frame
+        gr-&gt;NewFrame();             // the second frame
+        gr-&gt;Box();
+        gr-&gt;Axis(&quot;xy&quot;);
+        gr-&gt;EndFrame();             // end of the second frame
+        return GetNumFrame();       // returns the frame number
+    }
+</pre><p>First, the function creates a frame <code>NewFrame()</code> for rotated axes and draws the bounding box. After the frame drawing the function <code>EndFrame()</code> <strong>must be</strong> called! The second frame contains the bounding box and axes <code>Axis(&quot;xy&quot;)</code> in the initial (unrotated) coordinates. Function <code>sample</code> returns the number of created frames <code>GetNumFrame()</code>.
+</p>
+<hr size="6">
+<a name="Drawing-to-file"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Using-FLTK_002fGLUT-window" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Drawing-in-memory" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Drawing-to-file-1"></a>
+<h3 class="subsection">2.1.2 Drawing to file</h3>
+
+<p>Another way of using MathGL library is the direct picture writing to file. It is most usable for plot creating during calculation or for using of small programs (like Matlab or Scilab scripts) for visualizing repetitive sets of data. But the speed of drawing is much higher in comparison with a script language. There are two classes for exporting in file: class <code>mglGraphZB</code> saves in bitmap format (like PNG), <code>mglGraphPS</code> saves in vector PostScript format (see section <a href="mathgl_ru_4.html#Plotter-classes">Классы для отрисовки</a>).
+</p>
+<p>The following code produces a bitmap PNG picture:
+</p><pre class="verbatim">    int main(int ,char **)
+    {
+        mglGraphZB gr;
+        gr.Alpha(true);
+        gr.Light(true);             gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);           // The same drawing function.
+        gr.WritePNG(&quot;test.png&quot;);    // Don't forget to save the result!
+        return 0;
+    }
+</pre><p>The only difference from the previous (using windows) variant is manual switching the transparency  <code>Alpha</code> and lightning <code>Light</code> on, if the plot requires it. The using of frames is not advisable since the whole image is prepared each time. If function <code>sample</code> contains frames then each frame will be saved to a separate file. In principle, one does not need to separate drawing functions in case of direct file writing in consequence of the single calling of this function for each picture. However, one may use the same drawing procedure to create a plot with changed parameters, to export in different file types, to emphasize the drawing code and so on. So, in future I will put the drawing in separate function.
+</p>
+<p>The code for export in vector EPS file looks the same:
+</p><pre class="verbatim">    int main(int ,char **)
+    {
+        mglGraphPS gr;
+        gr.Light(true);             gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);           // The same drawing function.
+        gr.WriteEPS(&quot;test.eps&quot;);    // Don't forget to save the result!
+        return 0;
+    }
+</pre><p>The differences from the using of bitmap picture are: applying of the other class <code>mglGraphPS</code>, and writing to other format (function <code>WriteEPS()</code> instead of function <code>WritePNG()</code>). Moreover, there is no switching of the plot transparency <code>Alpha</code> since EPS format does not support it. Possibly I shall include transparency in future by program emulation.
+</p>
+<p>Classes <code>mglGraphZB</code> and <code>mglGraphPS</code> have some merits and demerits. Class <code>mglGraphZB</code> draws beautiful surface with transparency, smoothed colors and lightning, but the output picture is <em>bitmap</em>, that leads to a bad scalability. On the contrary, class <code>mglGraphPS</code> creates vector file with excellent scalability. But file has large size (especially for surfaces), it does not support transparency and color smoothing. So, vector picture looks stylish but a bit angularly.
+</p>
+<hr size="6">
+<a name="Drawing-in-memory"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Drawing-to-file" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Using-QMathGL" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Drawing-in-memory-1"></a>
+<h3 class="subsection">2.1.3 Drawing in memory</h3>
+
+<p>The last way of MathGL using is the drawing in memory. Class <code>mglGraphZB</code> allows one  to create a bitmap picture in memory. Further this picture can be displayed in window by some window libraries (like wxWidgets, FLTK, Windows GDI and so on). For example, the code for drawing in wxWidget library looks like:
+</p><pre class="verbatim">    void MyForm::OnPaint(wxPaintEvent&amp; event)
+    {
+        int w,h,x,y;
+        GetClientSize(&amp;w,&amp;h);   // size of the picture
+        mglGraphZB gr(w,h);
+
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);
+
+        wxImage img(w,h,gr.GetBits(),true);
+        ToolBar-&gt;GetSize(&amp;x,&amp;y);    // gets a height of the toolbar if any
+        wxPaintDC dc(this);         // and draws it
+        dc.DrawBitmap(wxBitmap(img),0,y);
+    }
+</pre><p>The drawing in other libraries is most the same.
+</p>
+<p>For example, FLTK code will look like
+</p><pre class="verbatim">    void Fl_MyWidget::draw()
+    {
+        mglGraphZB gr(w(),h());
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);
+        fl_draw_image(gr.GetBits(), x(), y(), gr.GetWidth(), gr.GetHeight(), 3);
+    }
+</pre><p>Qt code will look like
+</p><pre class="verbatim">    void MyWidget::paintEvent(QPaintEvent *)
+    {
+        mglGraphZB gr(w(),h());
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);
+
+        // Qt don't support RGB format as is. So, let convert it to BGRN.
+        const uchar *bb = gr.GetBits();
+        register long i, w=gr.GetWidth(), h=gr.GetHeight();
+        *buf = new uchar[4*w*h];
+        for(i=0;i&lt;w*h;i++)
+        {
+            (*buf)[4*i]   = bb[3*i+2];
+            (*buf)[4*i+1] = bb[3*i+1];
+            (*buf)[4*i+2] = bb[3*i];
+            (*buf)[4*i+3] = 255;
+        }
+        QPixmap pic = QPixmap::fromImage(QImage(*buf, w, h, QImage::Format_RGB32));
+
+        QPainter paint;
+        paint.begin(this);  paint.drawPixmap(0,0,pic);  paint.end();
+        delete []buf;
+    }
+</pre>
+<hr size="6">
+<a name="Using-QMathGL"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Drawing-in-memory" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Using-QMathGL-1"></a>
+<h3 class="subsection">2.1.4 Using QMathGL</h3>
+
+<p>MathGL have several interface widgets for different widget libraries. There are QMathGL for Qt, Fl_MathGL for FLTK in MathGL v.1.8. These classes provide control which display MathGL graphics. Unfortunately there is no uniform interface for widget classes because all libraries have slightly different set of functions, features and so on. However the usage of MathGL widgets is rather simple. Let me show it on the example of QMathGL.
+</p>
+<p>First of all you have to define the drawing function or inherit a class from <code>mglDraw</code> class. After it just create a window and setup QMathGL instance as any other Qt widget:
+</p><pre class="verbatim">    int main(int argc,char **argv)
+    {
+        QApplication a(argc,argv);
+        QMainWindow *Wnd = new QMainWindow;
+        Wnd-&gt;resize(650,480);  // for fill up the QMGL, menu and toolbars
+        Wnd-&gt;setWindowTitle(title);
+        // here I allow to scroll QMathGL -- the case 
+        // then user want to prepare huge picture
+        QScrollArea *scroll = new QScrollArea(Wnd);
+
+        // Create and setup QMathGL
+        QMathGL *QMGL = new QMathGL(Wnd);
+        QMGL-&gt;setPopup(popup); // if you want to setup popup menu for QMGL
+        QMGL-&gt;setDraw(sample, NULL);
+        // or use QMGL-&gt;setDraw(foo); for instance of class Foo:public mglDraw
+        QMGL-&gt;update();
+
+        // continue other setup (menu, toolbar and so on)
+        makeMenu();
+        scroll-&gt;setWidget(QMGL);
+        Wnd-&gt;setCentralWidget(scroll);
+        Wnd-&gt;show();
+        return a.exec();
+    }
+</pre>
+
+<hr size="6">
+<a name="Advanced-usage"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Using-QMathGL" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Subplots" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Advanced-usage-1"></a>
+<h2 class="section">2.2 Advanced usage</h2>
+
+<p>Now I show several non-obvious features of MathGL: several subplots in a single picture, curvilinear coordinates, text printing and so on. Generally you may miss this section at first reading, but I don&rsquo;t recommend it.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Subplots">2.2.1 Subplots</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-grids">2.2.2 Axis and grids</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Curvilinear-coordinates">2.2.3 Curvilinear coordinates</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing-example">2.2.4 Text printing example</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Animation">2.2.5 Animation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Subplots"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Advanced-usage" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-grids" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Subplots-1"></a>
+<h3 class="subsection">2.2.1 Subplots</h3>
+
+<p>Let me demonstrate possibilities of axes transformation. MathGL has the following functions: <code>SubPlot</code>, <code>InPlot</code>, <code>Aspect</code> and <code>Rotate</code> (see section <a href="mathgl_ru_3.html#Transformation-matrix">Матрица преобразования</a>). The order of their calling is strictly determined. First, one changes the position of axes in image area (functions <code>SubPlot</code> and <code>InPlot</code>). After that one may rotate the plot (function <code>Rotate</code>). Finally, one may change aspects of axes (function <code>Aspect</code>). The following code illustrates the aforesaid it:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;SubPlot(2,2,0);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(-1,1.1,1),&quot;Just box&quot;,&quot;rL&quot;);
+        gr-&gt;InPlot(0.2,0.5,0.7,1);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0,1.2,1),&quot;InPlot example&quot;);
+
+        gr-&gt;SubPlot(2,2,1);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Aspect(1,1,1);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(1,1,1.5),&quot;Rotate only&quot;,&quot;rR&quot;);
+
+        gr-&gt;SubPlot(2,2,2);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Aspect(1,1,2);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0,0,2),&quot;Aspect and Rotate&quot;);
+
+        gr-&gt;SubPlot(2,2,3);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Aspect(1,2,2);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0,0,1.5),&quot;Aspect in other direction&quot;);
+        return 0;
+    }
+</pre><p>Here I used function <code>Puts</code> for printing the text in arbitrary position of picture (see section <a href="mathgl_ru_3.html#Text-printing">Вывод текста</a>). Text coordinates and size are connected with axes. However, text coordinates may be everywhere, including the outside the bounding box. I shall show its features later in See section <a href="#Text-printing-example">Text printing example</a>.
+</p>
+<div class="float">
+<img src="../png/sample1.png" alt="../png/sample1">
+
+</div><p><strong>Example of several subplots on the single picture.
+</strong>
+</p>
+<hr size="6">
+<a name="Axis-and-grids"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Subplots" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Curvilinear-coordinates" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-and-grids-1"></a>
+<h3 class="subsection">2.2.2 Axis and grids</h3>
+
+<p>MathGL library can draw not only the bounding box but also the axes, grids, labels and so on. The limits of axes and their origin (the point of intersection) are determined by function <code>Axis()</code>. Also you can use <code>XRange(), YRange(), ZRange()</code> functions (see section <a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">Масштаб осей координат</a>). Ticks on axis are specified by function <code>SetTicks</code> (see section <a href="mathgl_ru_3.html#Ticks">Метки осей</a>). First argument the direction for each change will be applied. Second argument gives the step between ticks (if positive) or gives the number of ticks on the axis (if negative) or set to use logarithmic ticks (if zero). Third argument gives numbers of sub-ticks between ticks (default is zero). Last argument define the initial ticks position.
+</p>
+<p>Function <code>Axis</code> draws axes. Its textual string shows in which directions the axis or axes will be drawn (by default <code>&quot;xyz&quot;</code>, function draws axes in all directions). Function <code>Grid</code> draws grid perpendicularly to specified directions. Example of axes and grid drawing is:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;SubPlot(2,2,0);
+        gr-&gt;SetTicks('x', 0.4, 3);  // sets tick step to 0.5
+        gr-&gt;SetTicks('y', 0.4, 3);  // and draws 3 subticks
+        gr-&gt;Box();                  // should be after the ticks change
+        gr-&gt;Axis(&quot;xy&quot;);
+        gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Axis and grid&quot;);
+
+        gr-&gt;SetTicks('x');  gr-&gt;SetTicks('y'); // restore back
+        gr-&gt;Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(0,0,0));
+
+        gr-&gt;SubPlot(2,2,1);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Axis();
+        gr-&gt;Label('x',&quot;x&quot;);
+        gr-&gt;Label('y',&quot;y&quot;);
+        gr-&gt;Label('z',&quot;z&quot;);
+        gr-&gt;Puts(mglPoint(0,0,1.5),&quot;Axis and labels&quot;);
+
+        gr-&gt;SubPlot(2,2,2);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;SetTicks('x', 0.2); gr-&gt;SetTicks('y', 0.2);
+        gr-&gt;SetTicks('z', 0.2); // too low step of ticks
+        gr-&gt;Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,-1,-1));
+        gr-&gt;Axis();
+        gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,0,1.5),&quot;Shift origin and add grid&quot;);
+        gr-&gt;Puts(mglPoint(0,0,1.2),&quot;(note, too many ticks)&quot;);
+
+        gr-&gt;SubPlot(2,2,3);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;SetTicks('x', -6);  // decrease the number of ticks
+        gr-&gt;SetTicks('y', -6);
+        gr-&gt;Axis(&quot;yz&quot;);
+        gr-&gt;Label('y',&quot;Y axis&quot;,0);
+        gr-&gt;Label('z',&quot;Z axis&quot;,0);
+        gr-&gt;Puts(mglPoint(0,0,1.5),&quot;Remove X axis, and&quot;);
+        gr-&gt;Puts(mglPoint(0,0,1.2),&quot;decrease number of ticks&quot;);
+        return 0;
+    }
+</pre>
+<p>This example shows the importance of the correct choosing of the number of ticks on axis. If tick step is too small then its text may overlap and becomes unreadable. This code has the example of <code>Label</code> function. It draws label for axis in specified direction. The text position on axis is specified by third argument of <code>Label</code> function. If it is positive then then text is drawn near the axis maximum, if negative then the same takes place near the minimum of axis, if zero - then at the center of axis.
+</p>
+<div class="float">
+<img src="../png/sample2.png" alt="../png/sample2">
+
+</div><p><strong>Example of setting up axis range and axis ticks.
+</strong>
+</p>
+<hr size="6">
+<a name="Curvilinear-coordinates"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-grids" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing-example" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Curvilinear-coordinates-1"></a>
+<h3 class="subsection">2.2.3 Curvilinear coordinates</h3>
+
+
+<p>Now let use curvilinear coordinates. In difference from other systems of plot creation, MathGL uses textual formulas for connection of the old (data) and new (output) coordinates. This allows one to plot in arbitrary coordinates. The following code plots the line <var>y</var>=0, <var>z</var>=0 in Cartesian, polar, parabolic and spiral coordinates:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData x(50),y(50),z(50);
+        y.Fill(0.5,0.5);
+        x.Fill(-1,1);           // creates data arrays
+
+        gr-&gt;Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,1,-1));
+        gr-&gt;dz = 0.5;           // sets tick step to 0.5
+
+        gr-&gt;SubPlot(2,2,0);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Plot(x,y,z,&quot;r2&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Cartesian&quot;);
+
+        gr-&gt;SubPlot(2,2,1);
+        gr-&gt;SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,0);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Plot(x,y,z,&quot;r2&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Cylindrical&quot;);
+
+        gr-&gt;SubPlot(2,2,2);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;SetFunc(&quot;2*y*x&quot;,&quot;y*y - x*x&quot;,0);
+        gr-&gt;Plot(x,y,z,&quot;r2&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Parabolic&quot;);
+
+        gr-&gt;SubPlot(2,2,3);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,&quot;x+z&quot;);
+        gr-&gt;Plot(x,y,z,&quot;r2&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Spiral&quot;);
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample3.png" alt="../png/sample3">
+
+</div><p><strong>Example of curvilinear coordinates
+</strong>
+</p>
+
+<hr size="6">
+<a name="Text-printing-example"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Curvilinear-coordinates" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Animation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-printing-example-1"></a>
+<h3 class="subsection">2.2.4 Text printing example</h3>
+
+<p>MathGL prints text by vector font. There are functions for manual specifying of text position (like <code>Puts</code>) and for its automatic selection (like <code>Label</code>, <code>Legend</code> and so on). MathGL prints text always in specified position even if it lies outside the bounding box. The default size of font is specified by variables <var>FontSize</var> (see section <a href="mathgl_ru_3.html#Font-settings">Шрифты</a>). However, the actual size of output string depends on position of axes (depends on functions <code>SubPlot</code>, <code>InPlot</code>). The switching of the font style (italic, bold, wire and so on) can be done for the whole string (by function parameter) or inside the string. By default MathGL parses TeX-like commands for symbols and indexes (see see section <a href="mathgl_ru_1.html#Font-styles">Стиль текста</a>). Example of MathGL font drawing is:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        setlocale(LC_CTYPE, &quot;ru_RU.cp1251&quot;);
+        gr-&gt;Puts(mglPoint(0,1),&quot;Text can be in ASCII and in Unicode&quot;);
+        gr-&gt;Puts(mglPoint(0,0.6),&quot;It can be \\wire{wire}, \\big{big} &quot;
+            &quot;or #r{colored}&quot;);
+        gr-&gt;Puts(mglPoint(0,0.2),&quot;One can change style in string: &quot;
+            &quot;\\b{bold}, \\i{italic, \\b{both}}&quot;);
+        gr-&gt;Puts(mglPoint(0,-0.2),&quot;Easy to \\a{overline} or &quot;
+            &quot;\\u{underline}&quot;);
+        gr-&gt;Puts(mglPoint(0,-0.6),&quot;Easy to change indexes &quot;
+            &quot;^{up} _{down} @{center}&quot;);
+        gr-&gt;Puts(mglPoint(0,-1),&quot;It parse TeX: \\int \\alpha \\cdot &quot;
+            &quot;\\sqrt3{sin(\\pi x)^2 + \\gamma_{i_k}} dx&quot;);
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample4.png" alt="../png/sample4">
+
+</div><p><strong>Example of text printing with different font effects
+</strong>
+</p>
+<p>Another example demonstrate the features of TeX formula parsing.
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Puts(mglPoint(0), &quot;\\sqrt{\\frac{\\alpha^{\\gamma^2}+&quot;
+            &quot;\\overset 1{\\big\\infty}}{\\sqrt3{2+b}}}&quot;, 0, -4);
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/samplee.png" alt="../png/samplee">
+
+</div><p><strong>Example of TeX formula parsing
+</strong>
+</p>
+<p>Finally you can change font during execution (this work well for mglGraphZB class only).
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        float h=1.1, d=0.25;
+        gr-&gt;LoadFont(&quot;STIX&quot;);       gr-&gt;Puts(mglPoint(0,h), &quot;default font (STIX)&quot;);
+        gr-&gt;LoadFont(&quot;adventor&quot;);   gr-&gt;Puts(mglPoint(0,h-d), &quot;adventor font&quot;);
+        gr-&gt;LoadFont(&quot;bonum&quot;);      gr-&gt;Puts(mglPoint(0,h-2*d), &quot;bonum font&quot;);
+        gr-&gt;LoadFont(&quot;chorus&quot;);     gr-&gt;Puts(mglPoint(0,h-3*d), &quot;chorus font&quot;);
+        gr-&gt;LoadFont(&quot;cursor&quot;);     gr-&gt;Puts(mglPoint(0,h-4*d), &quot;cursor font&quot;);
+        gr-&gt;LoadFont(&quot;heros&quot;);      gr-&gt;Puts(mglPoint(0,h-5*d), &quot;heros font&quot;);
+        gr-&gt;LoadFont(&quot;heroscn&quot;);    gr-&gt;Puts(mglPoint(0,h-6*d), &quot;heroscn font&quot;);
+        gr-&gt;LoadFont(&quot;pagella&quot;);    gr-&gt;Puts(mglPoint(0,h-7*d), &quot;pagella font&quot;);
+        gr-&gt;LoadFont(&quot;schola&quot;);     gr-&gt;Puts(mglPoint(0,h-8*d), &quot;schola font&quot;);
+        gr-&gt;LoadFont(&quot;termes&quot;);     gr-&gt;Puts(mglPoint(0,h-9*d), &quot;termes font&quot;);
+    }
+</pre>
+<div class="float">
+<img src="../png/fonts.png" alt="../png/fonts">
+
+</div><p><strong>Example of font face changing.
+</strong>
+</p>
+<hr size="6">
+<a name="Animation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing-example" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Animation-1"></a>
+<h3 class="subsection">2.2.5 Animation</h3>
+
+<p>You can make animation by several methods in MathGL: by export in animated GIF, or by save each frame in separate file (usually JPEG) and convert these files into movie. Let me show both methods.
+</p>
+<p>The simplest methods is making animated GIF. There are 3 steps: (1) open GIF file by <code>StartGIF()</code> function; (2) create the frames by calling <code>NewFrame()</code> before and <code>EndFrame()</code> after plotting; (3) close GIF by <code>CloseGIF()</code> function. So the simplest code for &ldquo;running&rdquo; sinusoid will look like this:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData dat(100);
+        char str[32];
+        gr-&gt;StartGIF(&quot;sample.gif&quot;);
+        for(int i=0;i&lt;100;i++)
+        {
+            gr-&gt;NewFrame();     // start frame
+            gr-&gt;Box();          // some plotting
+            sprintf(str,&quot;sin(pi*x+%g*pi)&quot;,0.02*i);
+            dat.Modify(str);
+            gr-&gt;Plot(dat,&quot;b&quot;);
+            gr-&gt;EndFrame();     // end frame
+        }
+        gr-&gt;CloseGIF();
+        return 0;
+    }
+</pre>
+<p>The second way is saving each frame in separate file (usually JPEG) and later make the movie from them. MathGL have special function for saving frames &ndash; it is <code>WriteFrame()</code>. This function save each frame with automatic name &lsquo;<samp>frame0001.jpg, frame0002.jpg</samp>&rsquo; and so on. Here prefix &lsquo;<samp>frame</samp>&rsquo; is defined by <var>PlotId</var> variable of <code>mglGraph</code> class. So the similar code will look like this:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData dat(100);
+        char str[32];
+        for(int i=0;i&lt;100;i++)
+        {
+            gr-&gt;NewFrame();     // start frame
+            gr-&gt;Box();          // some plotting
+            sprintf(str,&quot;sin(pi*x+%g*pi)&quot;,0.02*i);
+            dat.Modify(str);
+            gr-&gt;Plot(dat,&quot;b&quot;);
+            gr-&gt;EndFrame();     // end frame
+            gr-&gt;WriteFrame();   // save frame
+        }
+        return 0;
+    }
+</pre>
+<p>Created files can be converted to movie by help of a lot of programs. For example, you can use ImageMagic (command &lsquo;<samp>convert frame*.jpg movie.mpg</samp>&rsquo;), MPEG library, GIMP and so on.
+</p>
+<p>Finally, you can use <code>mgl2gif</code> tool for doing the same with MGL scripts (see section <a href="mathgl_ru_8.html#Utilities">Утилиты для MGL</a>).
+</p>
+<hr size="6">
+<a name="Data-handling"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Animation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Array-creation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-handling-1"></a>
+<h2 class="section">2.3 Data handling</h2>
+
+<p>Class <code>mglData</code> contains all functions for the data handling in MathGL (see section <a href="mathgl_ru_6.html#mglData-class">Класс mglData</a>). There are several matters why I use class <code>mglData</code> but not a single array: it does not depend on type of data (float or double), sizes of data arrays are kept with data, memory working is simpler and safer.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Array-creation">2.3.1 Array creation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-changing">2.3.2 Data changing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Array-creation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-handling" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-changing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Array-creation-1"></a>
+<h3 class="subsection">2.3.1 Array creation</h3>
+
+<p>One can put the data in <code>mglData</code> instance by several ways. Let us do it for sinus function:
+</p><ul>
+<li>
+one can create external array, fill it and put to <code>mglData</code> variable
+<pre class="verbatim">    double *a = new double[50];
+    for(int i=0;i&lt;50;i++)   a[i] = sin(M_PI*i/49.);
+
+    mglData y;
+    y.Set(a,50);
+</pre>
+</li><li>
+another way is to create <code>mglData</code> instance of the desired size and then to work directly with data in this variable
+<pre class="verbatim">    mglData y(50);
+    for(int i=0;i&lt;50;i++)   y.a[i] = sin(M_PI*i/49.);
+</pre>
+</li><li>
+next way is to fill the data in <code>mglData</code> instance by textual formula with the help of <code>Modify()</code> function
+<pre class="verbatim">    mglData y(50);
+    y.Modify(&quot;sin(pi*x)&quot;);
+</pre>
+</li><li>
+or one may fill the array in some interval and modify it later
+<pre class="verbatim">    mglData y(50);
+    y.Fill(0,M_PI);
+    y.Modify(&quot;sin(u)&quot;);
+</pre>
+</li><li>
+finally it can be loaded from file
+<pre class="verbatim">    FILE *fp=fopen(&quot;sin.dat&quot;,&quot;wt&quot;);   // create file first
+    for(int i=0;i&lt;50;i++)   fprintf(fp,&quot;%g\n&quot;,sin(M_PI*i/49.));
+    fclose(fp);
+
+    mglData y(&quot;sin.dat&quot;);             // load it
+</pre>
+</li><li>
+at this one can read only part of data
+<pre class="verbatim">    FILE *fp-fopen(&quot;sin.dat&quot;,&quot;wt&quot;);   // create large file first
+    for(int i=0;i&lt;70;i++)   fprintf(fp,&quot;%g\n&quot;,sin(M_PI*i/49.));
+    fclose(fp);
+
+    mglData y;
+    y.Read(&quot;sin.dat&quot;,50);             // load it
+</pre></li></ul>
+
+<p>Creation of 2d- and 3d-arrays is mostly the same. But one should keep in mind that class <code>mglData</code> uses flat data representation. For example, matrix 30*40 is presented as flat (1d-) array with length 30*40=1200 (nx=30, ny=40). The element with indexes {i,j} is a[i+nx*j]. So for 2d array we have:
+</p><pre class="verbatim">    mglData z(30,40);
+    for(int i=0;i&lt;30;i++)   for(int j=0;j&lt;40;j++)
+        z.a[i+30*j] = sin(M_PI*i/29.)*sin(M_PI*j/39.);
+</pre><p>or by using <code>Modify()</code> function
+</p><pre class="verbatim">    mglData z(30,40);
+    z.Modify(&quot;sin(pi*x)*cos(pi*y)&quot;);
+</pre>
+<p>The only non-obvious thing here is using multidimensional arrays in C/C++, i.e. arrays defined like <code>float dat[40][30];</code>. Since, formaly this arrays element <code>dat[i]</code> can address the memory in arbitrary place you should use the proper function to convert such arrays to <code>mglData</code> object. For C++ this is functions like <code>mglData::Set(float **dat, int N1, int N2);</code>. For C this is functions like <code>mgl_data_set_float2(HMDT d, const float **dat, int N1, int N2);</code>. At this, you should keep in mind that <code>nx=N2</code> and <code>ny=N1</code> after conversion.
+</p>
+<hr size="6">
+<a name="Data-changing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Array-creation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-changing-1"></a>
+<h3 class="subsection">2.3.2 Data changing</h3>
+
+<p>MathGL has functions for data processing: differentiating, integrating, smoothing and so on (for more detail, see section <a href="mathgl_ru_6.html#mglData-class">Класс mglData</a>). Let us consider some examples. The simplest ones are integration and differentiation. The direction in which operation will be performed is specified by textual string, which may contain symbols &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo;. For example, the call of <code>Diff(&quot;x&quot;)</code> will differentiate data along &lsquo;<samp>x</samp>&rsquo; direction; the call of <code>Integral(&quot;xy&quot;)</code> perform the double integration of data along &lsquo;<samp>x</samp>&rsquo; and &lsquo;<samp>y</samp>&rsquo; directions; the call of <code>Diff2(&quot;xyz&quot;)</code> will apply 3d Laplace operator to data and so on. Example of this operations on 2d array a=x*y is presented in code:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData a(30,40);   a.Modify(&quot;x*y&quot;);
+        gr-&gt;Axis(mglPoint(0,0,0),mglPoint(1,1,1));
+        gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(60,40);
+        gr-&gt;Surf(a);        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0.7,1,1.2),&quot;a(x,y)&quot;);
+        gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(60,40);
+        a.Diff(&quot;x&quot;);        gr-&gt;Surf(a);      gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0.7,1,1.2),&quot;da/dx&quot;);
+        gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(60,40);
+        a.Integral(&quot;xy&quot;);   gr-&gt;Surf(a);      gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0.7,1,1.2),&quot;\\int da/dx dxdy&quot;);
+        gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(60,40);
+        a.Diff2(&quot;y&quot;);       gr-&gt;Surf(a);      gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0.7,1,1.2),&quot;\\int {d^2}a/dxdy dx&quot;);
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample6.png" alt="../png/sample6">
+
+</div><p><strong>Example of data differentiation and integration
+</strong>
+</p>
+<p>Data smoothing (function <code>Smooth()</code>) is more interesting and important. This function has 2 main arguments: type of smoothing and its direction. Now 4 methods are supported: <code>SMOOTH_NONE</code> does nothing for delta=0 or approaches data to zero with the step delta, <code>SMOOTH_LINE_3</code> linear averaging by 3 points, <code>SMOOTH_LINE_5</code> linear averaging by 5 points, <code>SMOOTH_QUAD_5</code> quadratic averaging by 5 points. Let me demonstrate it for 1d case:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData y0(30),y1,y2,y3;
+        y0.Modify(&quot;0.4*sin(2*pi*x)+0.3*cos(3*pi*x)-0.4*sin(4*pi*x)+0.2*rnd&quot;);
+
+        y1=y0;  y1.Smooth(SMOOTH_LINE_3);
+        y2=y0;  y2.Smooth(SMOOTH_LINE_5);
+        y3=y0;  y3.Smooth(SMOOTH_QUAD_5);
+
+        gr-&gt;Plot(y0,&quot;k&quot;);   gr-&gt;AddLegend(&quot;NONE&quot;,&quot;k&quot;);
+        gr-&gt;Plot(y1,&quot;r&quot;);   gr-&gt;AddLegend(&quot;LINE_3&quot;,&quot;r&quot;);
+        gr-&gt;Plot(y2,&quot;g&quot;);   gr-&gt;AddLegend(&quot;LINE_5&quot;,&quot;g&quot;);
+        gr-&gt;Plot(y3,&quot;b&quot;);   gr-&gt;AddLegend(&quot;QUAD_5&quot;,&quot;b&quot;);
+        gr-&gt;Legend();       gr-&gt;Box();
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample7.png" alt="../png/sample7">
+
+</div><p><strong>Example of data smoothing
+</strong>
+</p>
+<p>Finally one can create new data arrays on base of the existing one: extract slice, row or column of data (<code>SubData()</code>), summarize along some of direction(s) (<code>Sum()</code>), find distribution of data elements (<code>Hist()</code>). Note, that all these functions are not thread-safe because they use static internal variable for output array. In particular, the using of several of them in arguments of the same function will lead to unpredictable result.
+</p>
+<hr size="6">
+<a name="Data-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-changing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-1D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-plotting-1"></a>
+<h2 class="section">2.4 Data plotting</h2>
+
+<p>Let me now show how to plot the data. MathGL generally has 2 types of plotting functions. Simple variant requires a single data array for plotting, other data (coordinates) are considered uniformly distributed in interval <var>Min</var>*<var>Max</var>. Second variant requires data arrays for all coordinates. It allows one to plot rather complex multivalent curves and surfaces (in case of parametric dependencies). Argument setting to default values allows one to plot data in standard form. Manual arguments setting gives possibility for fine tuning of colors, positions and view of graphics. Note, that the call of drawing function adds something to picture but does not clear the previous plots (as it does in Matlab). Another difference from Matlab is that all setup (like transparency, lightning, axis borders and so on) must be specified <strong>before</strong> plotting functions.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plots-for-1D-data">2.4.1 Plots for 1D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-for-2D-data">2.4.2 Plots for 2D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-for-3D-data">2.4.3 Plots for 3D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surface-transparency">2.4.4 Surface transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Plots-for-1D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-2D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-1D-data-1"></a>
+<h3 class="subsection">2.4.1 Plots for 1D data</h3>
+
+<p>Term &ldquo;1D data&rdquo; means that data depend on single index (parameter) like curve in parametric form {x(i),y(i),z(i)}, i=1...n. There are 5 generally different types of data representations: simple line plot, line plot with filling under it, stairs plot, bar plot and vertical lines (see section <a href="mathgl_ru_3.html#g_t1D-plotting">1D графики</a>). Each type of plotting has similar interface. There are 3D version and two 2D versions. One of last requires single array. The parameters of line and marks (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>) are specified by the string argument. If the string parameter is <code>NULL</code> then solid line with color from palette is used (see section <a href="mathgl_ru_3.html#Palette-and-colors">Палитра и цвета</a>).
+</p>
+<p>Below I shall show the features of 1D plotting on base of <code>Plot()</code> function (see section <a href="mathgl_ru_3.html#Plot">Plot</a>). Let us start from sinus plot:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData y0(50); 	y0.Modify(&quot;sin(pi*(2*x-1))&quot;);
+        gr-&gt;SubPlot(2,2,0);
+        gr-&gt;Plot(y0);   	gr-&gt;Box();
+</pre><p>Style of line is not specified in <code>Plot()</code> function. So MathGL uses the solid line with first color of palette (this is blue). Next subplot shows array <var>y1</var> with 2 rows:
+</p><pre class="verbatim">        gr-&gt;SubPlot(2,2,1);
+        mglData y1(50,2);
+        y1.Modify(&quot;sin(pi*2*x-pi)&quot;);
+        y1.Modify(&quot;cos(pi*2*x-pi)/2&quot;,1);
+        gr-&gt;Plot(y1);   	gr-&gt;Box();
+</pre><p>As previously I did not specify the style of lines. As a result, MathGL again uses solid line with next colors in palette (there are green and red). Now let us plot a circle on the same subplot. The circle is parametric curve <em>x=cos(\pi t), y=sin(\pi t)</em>. I will set the color of the circle (dark yellow, &lsquo;<samp>Y</samp>&rsquo;) and put marks &lsquo;<samp>+</samp>&rsquo; at point position:
+</p><pre class="verbatim">        mglData x(50);  	x.Modify(&quot;cos(pi*2*x-pi)&quot;);
+        gr-&gt;Plot(x,y0,&quot;Y+&quot;);
+</pre><p>Note that solid line is used because I did not specify the type of line. The same picture can be achieved by <code>Plot2()</code> function. Let us draw ellipse by orange dash line:
+</p><pre class="verbatim">        gr-&gt;Plot2(y1,&quot;q|&quot;);
+</pre>
+<p>Drawing in 3D space is mostly the same. Let us draw spiral with default line style. Now its color is 4-th color from palette (this is cyan):
+</p><pre class="verbatim">        gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(60,40);
+        mglData z(50);  	z.Modify(&quot;2*x-1&quot;);
+        gr-&gt;Plot(x,y0,z);	gr-&gt;Box();
+</pre><p>Function <code>Plot3()</code> does 3D curve plot but for single array. Use it to put circle marks on the previous plot:
+</p><pre class="verbatim">        mglData y2(10,3);	y2.Modify(&quot;cos(pi*(2*x-1+y))&quot;);
+        y2.Modify(&quot;2*x-1&quot;,2);
+        gr-&gt;Plot3(y2,&quot;bo &quot;);
+</pre><p>Note that line style is empty &lsquo;<samp> </samp>&rsquo; here. Usage of other 1D plotting functions looks similar:
+</p><pre class="verbatim">        gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(60,40);
+        gr-&gt;Bars(x,y0,z,&quot;r&quot;);	gr-&gt;Box();
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample8.png" alt="../png/sample8">
+
+</div><p><strong>Example of 1D data plot
+</strong>
+</p>
+<hr size="6">
+<a name="Plots-for-2D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-1D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-3D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-2D-data-1"></a>
+<h3 class="subsection">2.4.2 Plots for 2D data</h3>
+
+<p>Surfaces <code>Surf()</code> and other 2D plots (see section <a href="mathgl_ru_3.html#g_t2D-plotting">2D графики</a>) are drown the same simpler as 1D one. The difference is that the string parameter specifies not by line style but by the color scheme of the plot (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>). Here I draw attention on 4 most interesting color schemes. There is gray scheme where color is changed from black to white (string &lsquo;<samp>kw</samp>&rsquo;) or from white to black (string &lsquo;<samp>wk</samp>&rsquo;). Another scheme is useful for accentuation of negative (by blue color) and positive (by red color) regions on plot (string &lsquo;<samp>&quot;BbwrR&quot;</samp>&rsquo;). Last one is the popular &ldquo;jet&rdquo; scheme (string &lsquo;<samp>&quot;BbcyrR&quot;</samp>&rsquo;).
+</p>
+<p>Now I shall show the example of a surface drawing. At first let us switch lightning on
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Light(true);	gr-&gt;Light(0,mglPoint(0,0,1));
+</pre><p>and draw the surface, considering coordinates x,y to be uniformly distributed in interval <var>Min</var>*<var>Max</var>
+</p><pre class="verbatim">        mglData a0(50,40);
+        a0.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+        gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(60,40);
+        gr-&gt;Surf(a0);		gr-&gt;Box();
+</pre><p>Color scheme was not specified. So previous color scheme is used. In this case it is default color scheme (&ldquo;jet&rdquo;) for the first plot. Next example is a sphere. The sphere is parametrically specified surface:
+</p><pre class="verbatim">        mglData x(50,40),y(50,40),z(50,40);
+        x.Modify(&quot;0.8*sin(2*pi*x)*sin(pi*y)&quot;);
+        y.Modify(&quot;0.8*cos(2*pi*x)*sin(pi*y)&quot;);
+        z.Modify(&quot;0.8*cos(pi*y)&quot;);
+        gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(60,40);
+        gr-&gt;Surf(x,y,z,&quot;BbwrR&quot;);gr-&gt;Box();
+</pre><p>I set color scheme to <code>&quot;BbwrR&quot;</code> that corresponds to red top and blue bottom of the sphere.
+</p>
+<p>Surfaces will be plotted for each of slice of the data if <var>nz</var>&gt;1. Next example draws surfaces for data arrays with <var>nz</var>=3:
+</p><pre class="verbatim">        mglData a1(50,40,3);
+        a1.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+        a1.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))&quot;,1);
+        a1.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;,2);
+        gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(60,40);
+        gr-&gt;Alpha(true);
+        gr-&gt;Surf(a1);		gr-&gt;Box();
+</pre><p>Note, that it may entail a confusion. However, if one will use density plot then the picture will look better:
+</p><pre class="verbatim">        gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(60,40);
+        gr-&gt;Dens(a1);		gr-&gt;Box();
+        return 0;
+    }
+</pre><p>Note, that the previous color scheme is used in last plots because there are no direct specification of the one.
+</p>
+<div class="float">
+<img src="../png/sample9.png" alt="../png/sample9">
+
+</div><p><strong>Example of surface plot for 2D data
+</strong>
+</p>
+<p>Drawing of other 2D plots is analogous. The only peculiarity is the usage of flag &lsquo;<samp>#</samp>&rsquo;. By default this flag switches on the drawing of a grid on plot (<code>Grid()</code> or <code>Mesh()</code> for plots in plain or in volume). However, for isosurfaces (including surfaces of rotation <code>Axial()</code>) this flag switches the  face drawing off. Figure becomes wired. The following code gives example of flag &lsquo;<samp>#</samp>&rsquo; using (compare with normal function drawing as in its description):
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Alpha(true);	gr-&gt;Light(true);	gr-&gt;Light(0,mglPoint(0,0,1));
+        mglData a(30,20);
+        a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+
+        gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);
+        gr-&gt;Surf(a,&quot;BbcyrR#&quot;);		gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);
+        gr-&gt;Dens(a,&quot;BbcyrR#&quot;);		gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);
+        gr-&gt;Cont(a,&quot;BbcyrR#&quot;);		gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);
+        gr-&gt;Axial(a,&quot;BbcyrR#&quot;);		gr-&gt;Box();
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/samplea.png" alt="../png/samplea">
+
+</div><p><strong>Example of 2D data plot with color scheme contained &lsquo;<samp>#</samp>&rsquo; symbol
+</strong>
+</p>
+<hr size="6">
+<a name="Plots-for-3D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-2D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surface-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-3D-data-1"></a>
+<h3 class="subsection">2.4.3 Plots for 3D data</h3>
+
+<p>Drawing procedures for 3D plot looks similarly to 1D and 2D plots described above. There are 3 general types of 3D plots (see section <a href="mathgl_ru_3.html#g_t3D-plotting">3D графики</a>): (i) plots on slices or on projections, (ii) isosurfaces, (iii) cloud-like plots. Plots on slice are clear enough &ndash; one specifies a slice (as its index or as coordinate value) and MathGL draws contour lines or density plot on slice plane. Isosurface gives more information. Isosurface is 3D analogue of the contour line <code>Cont()</code>. It shows the region where data array values exceed specified isosurface level. Plot becomes more informative if one adds transparency, lightning or sets color scheme depending on coordinates. Generalization of isosurface is the cloud-like plot. For this plot the darker color and less transparent regions correspond to higher values of data. Contrary, the regions with low values are transparent. For plotting of the phase of fields (or beams or pulses) one can use isosurface which transparency depends on the other data array (see function <code>Surf3A()</code>). As example of 3D data plots let us draw the Gaussian beam diffraction in space. Beam propagates along <var>x</var> axis:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Alpha(true);    gr-&gt;Light(true);
+        gr-&gt;Light(0,mglPoint(0,0,1));
+        mglData a(30,30,30),b(30,30,30);
+        a.Modify(&quot;exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))&quot;);
+        b.Modify(&quot;16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)&quot;);
+        gr-&gt;CAxis(0,1);
+
+        gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(40,60);
+        gr-&gt;Surf3(a,&quot;wgk&quot;); gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(40,60);
+        gr-&gt;DensA(a);       gr-&gt;Box();  gr-&gt;Axis();
+        gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(40,60);
+        gr-&gt;CloudQ(a);      gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(40,60);
+        gr-&gt;Surf3A(b,a,&quot;q&quot;);gr-&gt;Box();
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sampleb.png" alt="../png/sampleb">
+
+</div><p><strong>Example of Gaussian beam diffraction (3D data)
+</strong>
+</p>
+
+<hr size="6">
+<a name="Surface-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-3D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#C_002fFortran-interface" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surface-transparency-1"></a>
+<h3 class="subsection">2.4.4 Surface transparency</h3>
+
+<p>MathGL library has advanced features for setting and handling the surface transparency. The simplest way to add transparency is the using of function <code>Alpha()</code>. As a result, all further surfaces (and isosurfaces, density plots and so on) become transparent. However, their  look can be additionally improved.
+</p>
+<p>First, the selected surface will be non-transparent if one sets the flag <code>Transparent</code> before the surface drawing and sets it off after the drawing.
+</p>
+<p>Second, the value of transparency can be different from surface to surface. To do it just change the value of <code>AlphaDef</code> before the drawing of the selected surface. If its value is close to 0 then the surface becomes more and more transparent. Contrary, if its value is close to 1 then the surface becomes practically non-transparent. This is some analogue of <code>Transparent=true</code>.
+</p>
+<p>Third feature is the changing of the way how the light goes through overlapped surfaces. The variable <code>TranspType</code> defines it. By default the usual transparency is used (<code>TranspType=0</code>) &ndash; surfaces below is less visible than the upper ones. A &ldquo;glass-like&rdquo; transparency (<code>TranspType=1</code>) has a different look when the surface just decreases the background light (the surfaces are commutable in this case).
+</p>
+<p>A &ldquo;neon-like&rdquo; transparency (<code>TranspType=2</code>) has more interesting look. In this case a surface is the light source (like a lamp on the dark background) and just adds some intensity to the color. At this, the library sets automatically the black color for the background and changes the default line color to white.
+</p>
+<p>As example I shall show the variant of plot from <a href="#Plots-for-2D-data">Plots for 2D data</a> (grid drawing is disabled) for different types of transparency.
+</p><div class="float">
+<img src="../png/type0.png" alt="../png/type0">
+
+</div><p><strong>Example of <code>TranspType=0</code>.
+</strong>
+</p><div class="float">
+<img src="../png/type1.png" alt="../png/type1">
+
+</div><p><strong>Example of <code>TranspType=1</code>.
+</strong>
+</p><div class="float">
+<img src="../png/type2.png" alt="../png/type2">
+
+</div><p><strong>Example of <code>TranspType=2</code>.
+</strong>
+</p>
+<hr size="6">
+<a name="C_002fFortran-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surface-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-and-PyQt" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="C_002fFortran-interface-1"></a>
+<h2 class="section">2.5 C/Fortran interface</h2>
+
+<p>The usage of pure C or Fortran or any similar interfaces (see section <a href="mathgl_ru_1.html#C-interface">C интерфейс</a>) is practically identical to classes usage. But there are some differences. C functions must have argument HMGL (for graphics) and/or HMDT (for data arrays) which specifies the object for drawing or manipulating (changing). Fortran users may regard these variables as integer. So, firstly the user has to create this object by function mgl_create_*() and has to delete it after the using by function mgl_delete_*().
+</p>
+<p>Also, all arguments of C function have to be defined. So there are several functions with practically identical names doing practically the same. But some of them have simplified interface for the quick plotting and some of them have access to all plotting parameters for manual tunning.
+</p>
+<p>As an example of C function usage let me draw the plot from <a href="#Plots-for-2D-data">Plots for 2D data</a>. The C code which does it is shown below:
+</p><pre class="verbatim">    #include &lt;mgl/mgl_c.h&gt;
+    int main()
+    {
+        HMGL gr = mgl_create_graph_zb(600, 400);
+        mgl_set_alpha(gr, true);
+        mgl_set_light(gr, true);
+        HMDT a = mgl_create_data_size(30,20,1);
+        mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+
+        mgl_subplot(gr, 2,2,0);
+        mgl_rotate(gr, 40,60,0);
+        mgl_surf(gr,a,&quot;BbcyrR#&quot;);
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,1);
+        mgl_rotate(gr, 40,60,0);
+        mgl_dens(gr,a,&quot;BbcyrR#&quot;,NAN);
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,2);
+        mgl_rotate(gr, 40,60,0);
+        mgl_cont(gr,a,&quot;BbcyrR#&quot;,7,NAN);
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,3);
+        mgl_rotate(gr, 40,60,0);
+        mgl_axial(gr,a,&quot;BbcyrR#&quot;,3);
+        mgl_box(gr, true);
+
+        /* don't forgot to save graphics */
+        mgl_write_png(gr,&quot;sample.png&quot;,0);
+        return 0;
+    }
+</pre>
+<p>Practically the same simple to create a window. For example let rewrite the code from for window creation (see section <a href="#Using-FLTK_002fGLUT-window">Using FLTK/Qt/GLUT window</a>):
+</p><pre class="verbatim">    int sample(HMGL gr, void *)
+    {
+        mgl_rotate(gr,60,40,0);
+        mgl_box(gr,1);
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mgl_create_graph_fltk(sample, &quot;MathGL examples&quot;, NULL);
+        mgl_fltk_run();
+        return 0;
+    }
+</pre>
+<p>The Fortran code have some peculiarities. Exactly it not allow one to send arbitrary parameter (which was <code>NULL</code> in previous example) to function. This is limitation of Fortran language. So, the corresponding code will be <strong>NOT TESTED NOW!!!</strong>:
+</p><pre class="verbatim">    program TEST
+    integer x,f,func
+        call mgl_create_graph_fltk(sample, 'MathGL examples');
+        call mgl_fltk_run();
+    end program TEST
+ 
+    integer function sample(gr)
+    integer*8 gr
+        call mgl_rotate(gr,60,40,0);
+        call mgl_box(gr,1);
+        sample=0
+    return
+    end
+</pre>
+<hr size="6">
+<a name="MathGL-and-PyQt"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#C_002fFortran-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL-and-PyQt-1"></a>
+<h2 class="section">2.6 MathGL and PyQt</h2>
+
+<p>Generally SWIG based classes (including the Python one) are the same as C++ classes. However, there are few tips for using MathGL with PyQt. Below I place a very simple python code which demonstrate how MathGL can be used with PyQt. This code is mostly written by Prof. Dr. Heino Falcke. You can just copy it to a file <code>mgl-pyqt-test.py</code> and execute it from python shell by command <code>execfile(&quot;mgl-pyqt-test.py&quot;)</code>
+</p>
+<pre class="verbatim">from PyQt4 import QtGui,QtCore
+from mathgl import *
+import sys
+app = QtGui.QApplication(sys.argv)
+qpointf=QtCore.QPointF()
+
+class hfQtPlot(QtGui.QWidget):
+    def __init__(self, parent=None):
+        QtGui.QWidget.__init__(self, parent)
+        self.img=(QtGui.QImage())
+    def setgraph(self,gr):
+        self.buffer='\t' 
+        self.buffer=self.buffer.expandtabs(4*gr.GetWidth()*gr.GetHeight())
+        gr.GetBGRN(self.buffer,len(self.buffer))
+        self.img=QtGui.QImage(self.buffer, gr.GetWidth(),gr.GetHeight(),QtGui.QImage.Format_ARGB32)
+        self.update()
+    def paintEvent(self, event):
+        paint = QtGui.QPainter()
+        paint.begin(self)
+        paint.drawImage(qpointf,self.img)
+        paint.end()
+
+BackgroundColor=[1.0,1.0,1.0]
+size=100
+gr=mglGraph()
+y=mglData(size)
+#y.Modify(&quot;((0.7*cos(2*pi*(x+.2)*500)+0.3)*(rnd*0.5+0.5)+362.135+10000.)&quot;)
+y.Modify(&quot;(cos(2*pi*x*10)+1.1)*1000.*rnd-501&quot;)
+x=mglData(size)
+x.Modify(&quot;x^2&quot;);
+
+def plotpanel(gr,x,y,n):
+    gr.SubPlot(2,2,n)
+    gr.SetXRange(x)
+    gr.SetYRange(y)
+    gr.AdjustTicks()
+    gr.Axis()
+    gr.Box()
+    gr.Label(&quot;x&quot;,&quot;x-Axis&quot;,1)
+    gr.Label(&quot;y&quot;,&quot;y-Axis&quot;,1)
+    gr.ClearLegend()
+    gr.AddLegend(&quot;Legend: &quot;+str(n),&quot;k&quot;)
+    gr.Legend()
+    gr.Plot(x,y)
+
+
+gr.Clf(BackgroundColor[0],BackgroundColor[1],BackgroundColor[2])
+gr.SetPlotFactor(1.5)
+plotpanel(gr,x,y,0)
+y.Modify(&quot;(cos(2*pi*x*10)+1.1)*1000.*rnd-501&quot;)
+plotpanel(gr,x,y,1)
+y.Modify(&quot;(cos(2*pi*x*10)+1.1)*1000.*rnd-501&quot;)
+plotpanel(gr,x,y,2)
+y.Modify(&quot;(cos(2*pi*x*10)+1.1)*1000.*rnd-501&quot;)
+plotpanel(gr,x,y,3)
+
+gr.WritePNG(&quot;test.png&quot;,&quot;Test Plot&quot;)
+
+qw = hfQtPlot()
+qw.show()
+qw.setgraph(gr)
+qw.raise_()
+</pre>
+
+<hr size="6">
+<a name="Hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MathGL-and-PyQt" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t_0060_0060Compound_0027_0027-graphics" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Hints-1"></a>
+<h2 class="section">2.7 Hints</h2>
+
+<p>In this section I have included some small hints and advices for the improving of the quality of plots and for the demonstration of some non-trivial features of MathGL library. In contrast to previous examples I showed mostly the idea but not the whole drawing function. More examples with the source code can be find at <a href="http://mathgl.sf.net/">http://mathgl.sf.net/</a> or in section <a href="mathgl_ru_9.html#Samples">Примеры использования MathGL</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t_0060_0060Compound_0027_0027-graphics">2.7.1 &ldquo;Compound&rdquo; graphics</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Two-axes-in-one-plot">2.7.2 Two axes in one plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Titles-for-the-plot">2.7.3 Titles for the plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Changing-of-the-color-range">2.7.4 Changing of the color range</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Management-of-a-point-cutting">2.7.5 Management of a point cutting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-field-visualization">2.7.6 Vector field visualization</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Several-light-sources">2.7.7 Several light sources</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutMin-and-CutMax-features">2.7.8 CutMin and CutMax features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mapping-visualization">2.7.9 Mapping visualization</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Log_002dscaled-plot">2.7.10 Log-scaled plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t_0060_0060Templates_0027_0027">2.7.11 &ldquo;Templates&rdquo;</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting-hints">2.7.12 Nonlinear fitting hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#PDE-solving-hints">2.7.13 PDE solving hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#MGL-parser-using">2.7.14 MGL parser using</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stereo-image">2.7.15 Stereo image</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="g_t_0060_0060Compound_0027_0027-graphics"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Two-axes-in-one-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Compound_0027_0027-graphics-1"></a>
+<h3 class="subsection">2.7.1 &ldquo;Compound&rdquo; graphics</h3>
+
+<p>As I noted above, MathGL functions (except the special one, like Clf()) do  not erase the previous plotting but just add the new one. It allows one to draw &ldquo;compound&rdquo; plots easily. For example, popular Matlab command <code>surfc</code> can be emulated in MathGL by 2 calls:
+</p><pre class="verbatim">    Surf(a);
+    Cont(a, 0, 7, -1);     // draw contours at z = -1
+</pre><p>Here <var>a</var> is 2-dimensional data for the plotting, <code>-1</code> is the value of z-coordinate at which the contour should be plotted (at the bottom in this example). Analogously, one can draw density plot instead of contour lines and so on.
+</p>
+<p>Another nice plot is contour lines plotted directly on the surface:
+</p><pre class="verbatim">    Light(true);       // switch on light for the surface
+    Surf(a, &quot;BbcyrR&quot;); // select 'jet' colormap for the surface
+    Cont(a, &quot;y&quot;);      // and yellow color for contours
+</pre><p>The possible difficulties arise in black&amp;white case, when the color of the surface can be close to the color of a contour line. In that case I may suggest the following code:
+</p><pre class="verbatim">    Light(true);       // switch on light for the surface
+    Surf(a, &quot;kw&quot;);     // select 'gray' colormap for the surface
+    CAxis(-1,0);       // first draw for darker surface colors
+    Cont(a, &quot;w&quot;);      // white contours
+    CAxis(0,1);        // now draw for brighter surface colors
+    Cont(a, &quot;k&quot;);      // black contours
+    CAxis(-1,1);       // return color range to original state
+</pre><p>The idea is to divide the color range on 2 parts (dark and bright) and to select the contrasting color for contour lines for each of part.
+</p>
+<p>Similarly, one can plot flow thread over density plot of vector field amplitude (this is another amusing plot from Matlab) and so on. The list of compound graphics can be prolonged but I hope that the general idea is clear.
+</p>
+<hr size="6">
+<a name="Two-axes-in-one-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t_0060_0060Compound_0027_0027-graphics" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Titles-for-the-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Two-axes-in-one-plot-1"></a>
+<h3 class="subsection">2.7.2 Two axes in one plot</h3>
+
+<p>Developing the previous hint one can make a plot with 2 or more axes. The idea is that the change of settings does not influence on the already drawn graphics. So, for 2-axes plot let us set the first axis and draw everything concerning it. Then let us setup the second axis and draw things for the second axis. The corresponding code is (see section <a href="mathgl_ru_9.html#g_t2_002daxes-sample">Несколько осей на одном графике</a>):
+</p><pre class="verbatim">    // set up first axis
+    Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,-1,-1));
+    Axis();            // draw it
+    Plot(y1,&quot;b&quot;);      // draw something in first axis
+    // set up second axis
+    Axis(mglPoint(0,0,0),mglPoint(1,1,1),mglPoint(1,1,1));
+    Axis();            // draw it
+    Stem(y2,&quot;r&quot;);      // draw something in second axis
+</pre><p>Note, that the first and the second axes look better if being placed in different corners. In the code presented above the first axis is placed in the left-bottom corner, and the second one is placed in the right-top corner.
+</p>
+<hr size="6">
+<a name="Titles-for-the-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Two-axes-in-one-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Changing-of-the-color-range" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Titles-for-the-plot-1"></a>
+<h3 class="subsection">2.7.3 Titles for the plot</h3>
+
+<p>The printing of nice titles for the plot is not so trivial task in general case. The problem is that the rotation and aspect change lead to different looks for titles of different subplots. So, the resulting look is not so good as it could be. The solution is simple &ndash; to print titles exactly after <code>SubPlot</code>() call and before any rotation, aspect change and so on! Analogously, the title for the whole picture looks better if it is printed first (before any <code>SubPlot()</code> calls). Alternatively you can use function <code>Title()</code> for plotting title for the picture at any time.
+</p>
+<hr size="6">
+<a name="Changing-of-the-color-range"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Titles-for-the-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Management-of-a-point-cutting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Changing-of-the-color-range-1"></a>
+<h3 class="subsection">2.7.4 Changing of the color range</h3>
+
+<p>By default (for the user comfort), the color range is set equal to z-range of the plot. However, there are different ranges. So, one can obtain amusing plot by the change of color range manually. For example, there are plots with one-color bottom (or top) or practically bi-color picture and so on.
+</p>
+<p>For example, compare 2 surfaces:
+</p><pre class="verbatim">    SubPlot(2,1,0)
+    Surf(a);           // usual coloring range
+    SubPlot(2,1,1)
+    CAxis(0,1);
+    Surf(a);           // bottom of the surface have one-colour filling
+</pre>
+<hr size="6">
+<a name="Management-of-a-point-cutting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Changing-of-the-color-range" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-field-visualization" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Management-of-a-point-cutting-1"></a>
+<h3 class="subsection">2.7.5 Management of a point cutting</h3>
+
+<p>Sometimes an experimental or numerical surface has outstanding points. Visualization of such surface will lead to the hole(s) in place of such points. The standard method of &ldquo;fighting&rdquo;  &ndash; to change data values &ndash; is not always good and is not so convenient. MathGL library has another method &ndash; to set variable <code>Cut=false</code>. As a consequence, all outstanding points will be projected on the bounding box.
+</p>
+<p>Such method is good not only for outstanding points but also for the case when one need to plane the bottom or the top of the plot. Exactly such case is demonstrated in the code:
+</p><pre class="verbatim">        mglData a(20,30);  // create some data
+        a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+        // set lower border above the data minimal value
+        Axis(mglPoint(-1,-1,0),mglPoint(1,1,1));
+        Cut = false;       // set off cutting flag
+`       Surf(a);           // and draw the surface
+</pre><p>It is an interesting result, is not it?
+</p>
+<hr size="6">
+<a name="Vector-field-visualization"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Management-of-a-point-cutting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Several-light-sources" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vector-field-visualization-1"></a>
+<h3 class="subsection">2.7.6 Vector field visualization</h3>
+
+<p>Vector field visualization (especially in 3d case <code>Vect3</code> or <code>VectC</code>) may look tangly &ndash; there are too many overlapping lines. I may suggest 2 ways to solve this problem. The first one is to change <code>MeshNum</code> for decreasing the number of hachures. The second way is to use the flow thread chart <code>Flow</code>. Unfortunately, I don&rsquo;t know any other methods to visualize 3d vector field. If you know any, e-mail me and I shall add it to MatGL.
+</p>
+<hr size="6">
+<a name="Several-light-sources"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-field-visualization" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutMin-and-CutMax-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Several-light-sources-1"></a>
+<h3 class="subsection">2.7.7 Several light sources</h3>
+
+<p>In contrast to the most of other programs, MathGL supports several (up to 10) light sources. Moreover, the color each of them can be different: white (this is usual), yellow, red, cyan, green and so on. The use of several light sources may be interesting for the highlighting of some peculiarities of the plot or just to make an amusing picture. Note, each light source can be switched on/off individually (see section <a href="mathgl_ru_9.html#Several-light-sample">Несколько источников света</a>).
+</p>
+<hr size="6">
+<a name="CutMin-and-CutMax-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Several-light-sources" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mapping-visualization" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutMin-and-CutMax-features-1"></a>
+<h3 class="subsection">2.7.8 CutMin and CutMax features</h3>
+
+<p>MathGL library has a feature for cutting of points in some region <var>CutMin*CutMax</var>. Such an excision can be used to improve the look of the graphics. Moreover, this cutting may help to show an internal structure of an object (like <code>isocaps</code> plot in Matlab). For example, let us use the standard 3D data array and show its interior (see section <a href="mathgl_ru_9.html#CutMinMax-sample">CutMinMax &ndash; пример использования</a>).
+</p>
+<pre class="verbatim">    mglData  c(61,51,40);      // create the data
+    mglData v(10);	v.Fill(-0.5,1);
+    c.Modify(&quot;(-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1))&quot;);
+    gr-&gt;CutMin = mglPoint(0,-1,-1);     gr-&gt;CutMax = mglPoint(1,0,1.1);
+    gr-&gt;Surf3(-0.5,c,&quot;BbcyrR&quot;);
+    gr-&gt;ContF3(v,c,'x',-1,&quot;BbcyrR&quot;);    gr-&gt;ContF3(v,c,'y',-1,&quot;BbcyrR&quot;);
+    gr-&gt;ContF3(v,c,'z',0,&quot;BbcyrR&quot;);     gr-&gt;ContF3(v,c,'z',39,&quot;BbcyrR&quot;);
+</pre>
+<p>One can also exclude points from arbitrary area in space. This area defined by textual formula <code>CutOff()</code> (see section <a href="mathgl_ru_3.html#Cutting">Обрезание</a>). The algorithm is the same as shown for &ldquo;rectangular cutting&rdquo;.
+</p>
+<hr size="6">
+<a name="Mapping-visualization"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutMin-and-CutMax-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Log_002dscaled-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mapping-visualization-1"></a>
+<h3 class="subsection">2.7.9 Mapping visualization</h3>
+
+<p>Sometime ago I worked with mapping and have a question about its visualization. Let me remember you that mapping is some transformation rule for one set of number to another one. The 1d mapping is just an ordinary function &ndash; it takes a number and transforms it to another one. The 2d mapping (which I used) is a pair of functions which take 2 numbers and transform them to another 2 ones. Except general plots (like <code>SurfC</code>, <code>SurfA</code>) there is a special plot &ndash; Arnold diagram. It shows the area which is the result of mapping of some initial area (usually square).
+</p>
+<p>I tried to make such plot in <code>Map</code>. It shows the set of points or set of faces, which final position is the result of mapping. At this, the color gives information about their initial position and the height describes Jacobian value of the transformation. Unfortunately, it looks good only for the simplest mapping but for the  real multivalent quasi-chaotic mapping it produces a confusion. So, use it if you like :).
+</p>
+<hr size="6">
+<a name="Log_002dscaled-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mapping-visualization" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t_0060_0060Templates_0027_0027" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Log_002dscaled-plot-1"></a>
+<h3 class="subsection">2.7.10 Log-scaled plot</h3>
+
+<p>Log-scaled plot can be drawn by 2 steps. First, one should change the scale of axis by call <code>SetFunc(&quot;lg(x)&quot;, &quot;lg(y)&quot;);</code> (in this example, x- and y-axis will be log-scaled). Second, one should set logarithmic scale for axis ticks by changing variables: <code>SetTicks('x',0); SetTicks('y',0);</code>. Finally, one should check (or change) the axis ranges and origin so that their values to be positive. For example of log-log plot see section <a href="mathgl_ru_9.html#Log_002dlog-sample">Log-log &ndash; пример использования</a>.
+</p>
+<hr size="6">
+<a name="g_t_0060_0060Templates_0027_0027"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Log_002dscaled-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting-hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Templates_0027_0027-1"></a>
+<h3 class="subsection">2.7.11 &ldquo;Templates&rdquo;</h3>
+
+<p>As I have noted before, the change of settings will influence only for the further plotting commands. This allows one to create template function which will contain settings and primitive drawing for often used plots. Correspondingly one may call this template-function for drawing simplification.
+</p>
+<p>For example, let one has a set of points (experimental or numerical) and wants to compare it with theoretical law (for example, with exponent law <em>\exp(-x/2), x \in [0, 20]</em>). The template-function for this task is:
+</p><pre class="verbatim">    void template(mglGraph *gr)
+    {
+        mglData  law(100);      // create the law
+        law.Modify(&quot;exp(-10*x)&quot;);
+        gr-&gt;Axis(mglPoint(0,0.0001), mglPoint(20,1), mglPoint(0,0.0001));
+        gr-&gt;SetFunc(0,&quot;lg(y)&quot;,0);   gr-&gt;dy = 0;
+        gr-&gt;Plot(law,&quot;r2&quot;);
+        gr-&gt;Text(mglPoint(10,0.2),&quot;Theoretical law: e^x&quot;,&quot;rL&quot;);
+        gr-&gt;Label('x',&quot;x val.&quot;); gr-&gt;Label('y',&quot;y val.&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid(&quot;xy&quot;,&quot;g;&quot;); gr-&gt;Box();
+    }
+</pre><p>At this, one will only write a few lines for data drawing:
+</p><pre class="verbatim">    template(gr);     // apply settings and default drawing from template
+    mglData dat(&quot;fname.dat&quot;); // load the data
+    // and draw it (suppose that data file have 2 columns)
+    gr-&gt;Plot(dat.SubData(0),dat.SubData(1),&quot;bx &quot;);
+</pre><p>A template-function can also contain settings for font, transparency, lightning, color scheme and so on.
+</p>
+<hr size="6">
+<a name="Nonlinear-fitting-hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t_0060_0060Templates_0027_0027" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#PDE-solving-hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-hints-1"></a>
+<h3 class="subsection">2.7.12 Nonlinear fitting hints</h3>
+
+<p>Nonlinear fitting is rather simple. All that you need is the data to fit, the approximation formula and the list of coefficients to fit (better with its initial guess values). Let me demonstrate it on the following simple example (see section <a href="mathgl_ru_9.html#Fitting-sample">Fitting &ndash; пример использования</a>). First, let us use sin function with some random noise:
+</p><pre class="verbatim">    mglData rnd(100), idl(50); //data to be fitted and ideal data
+    rnd.Modify(&quot;0.4*rnd+0.1+sin(4*pi*x)&quot;);
+    idl.Modify(&quot;0.3+sin(4*pi*x)&quot;);
+</pre><p>and plot it to see that data we will fit
+</p><pre class="verbatim">    gr-&gt;Axis(mglPoint(-1,-2), mglPoint(1,2));
+    gr-&gt;Plot(rnd, &quot;. &quot;); gr-&gt;Plot(idl, &quot;b&quot;);
+    gr-&gt;Box();
+    gr-&gt;Text(mglPoint(0,2.2), &quot;initial: y = 0.3+sin(2\pi x)&quot;, &quot;C:b&quot;, -1);
+</pre>
+<p>The next step is the fitting itself. For that let me specify an initial values <var>ini</var> for coefficients &lsquo;<samp>abc</samp>&rsquo; and do the fitting for approximation formula &lsquo;<samp>a+b*sin(c*x)</samp>&rsquo;
+</p><pre class="verbatim">    mglData res;   // The data for found formula
+    float ini[3] = {1, 1, 3};
+    gr-&gt;Fit(res, rnd, &quot;a+b*sin(c*x)&quot;, &quot;abc&quot;, ini);
+</pre><p>Now display it
+</p><pre class="verbatim">    gr-&gt;Plot(res, &quot;r&quot;);
+    gr-&gt;Text(mglPoint(-1,-1.3), &quot;fitted:&quot;, &quot;L:r&quot;, -1);
+    gr-&gt;PutsFit(mglPoint(0,-1.8), &quot;y = &quot;, &quot;C:r&quot;, -1);
+</pre>
+<p>NOTE! the fitting results may have strong dependence on initial values for coefficients due to algorithm features. The problem is that in general case there are several local &quot;optimums&quot; for coefficients and the program returns only first found one! There are no guaranties that it will be the best. Try for example to set <code>ini[3] = {0, 0, 0}</code> in the code above.
+</p>
+<hr size="6">
+<a name="PDE-solving-hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting-hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-parser-using" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="PDE-solving-hints-1"></a>
+<h3 class="subsection">2.7.13 PDE solving hints</h3>
+
+<p>Solving of Partial Differential Equations (PDE, including beam tracing) and ray tracing (or finding particle trajectory) are more or less common task. So, MathGL have several functions for that. There are <code>mglRay()</code> for ray tracing, <code>mglPDE()</code> for PDE solving, <code>mglQO2d()</code> for beam tracing in 2D case (see section <a href="mathgl_ru_6.html#Global-functions">Глобальные функции</a>). Note, that these functions take &ldquo;Hamiltonian&rdquo; or equations as string values. And I don&rsquo;t plan now to allow one to use user-defined functions. There are 2 reasons: the complexity of corresponding interface; and the basic nature of used methods which are good for samples but may not good for serious scientific calculations.
+</p>
+<p>The ray tracing can be done by <code>mglRay()</code> function. Really ray tracing equation is Hamiltonian equation for 3D space. So, the function can be also used for finding a particle trajectory (i.e. solve Hamiltonian ODE) for 1D, 2D or 3D cases. The function have a set of arguments. First of all, it is Hamiltonian which defined the media (or the equation) you are planning to use. The Hamiltonian is defined by string which may depend on coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, time &lsquo;<samp>t</samp>&rsquo; (for particle dynamics) and momentums &lsquo;<samp>p</samp>&rsquo;=<em>p_x</em>, &lsquo;<samp>q</samp>&rsquo;=<em>p_y</em>, &lsquo;<samp>v</samp>&rsquo;=<em>p_z</em>. Next, you have to define the initial conditions for coordinates and momentums at &lsquo;<samp>t</samp>&rsquo;=0 and set the integrations step (default is 0.1) and its duration (default is 10). The Runge-Kutta method of 4-th order is used for integration.
+</p><pre class="verbatim">    mglData r,a,re(128),im(128);
+    r = mglRay(&quot;p^2+q^2-x-1&quot;, mglPoint(-0.7, -1), mglPoint(0, 0.5));
+    gr-&gt;Plot(r.SubData(0), r.SubData(1));
+</pre><p>This example calculate the reflection from linear layer (media with Hamiltonian &lsquo;<samp>p^2+q^2-x-1</samp>&rsquo;=<em>p_x^2+p_y^2-x-1</em>). This is parabolic curve. The resulting array have 7 columns which contain data for {x,y,z,p,q,v,t}.
+</p>
+<p>The solution of PDE is a bit more complicated. As previous you have to specify the equation as pseudo-differential operator <em>\hat H(x, \nabla)</em> which is called sometime as &ldquo;Hamiltonian&rdquo; (for example, in beam tracing). As previously, it is defined by string which may depend on coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; (but not time!), momentums &lsquo;<samp>p</samp>&rsquo;=<em>(d/dx)/i k_0</em>, &lsquo;<samp>q</samp>&rsquo;=<em>(d/dy)/i k_0</em> and field amplitude &lsquo;<samp>u</samp>&rsquo;=<em>|u|</em>. The evolutionary coordinate is &lsquo;<samp>z</samp>&rsquo; in all cases. So that, the equation look like <em>du/dz = ik_0 H(x,y,\hat p, \hat q, |u|)[u]</em>. Dependence on field amplitude &lsquo;<samp>u</samp>&rsquo;=<em>|u|</em> allows one to solve nonlinear problems too. For example, for nonlinear Shrodinger equation you may set <code>ham=&quot;p^2 + q^2 - u^2&quot;</code>. Also you may specify imaginary part for wave absorption, like <code>ham = &quot;p^2 + i*x*(x&gt;0)&quot;</code>, but only if dependence on variable &lsquo;<samp>i</samp>&rsquo; is linear (i.e. <em>H = Hre+i*Him</em>).
+</p>
+<p>Next step is specifing the initial conditions at &lsquo;<samp>z</samp>&rsquo;=<code>Min.z</code>. The function need 2 arrays for real and for imaginary part. Note, that coordinates x,y,z are supposed to be in specified range [Min, Max]. So, the data arrays should have corresponding scales. Finally, you may set the integration step and paramter k0=<em>k_0</em>. Also keep in mind, that internally the 2 times large box is used (for suppressing numerical reflection from boundaries) and the equation should well defined even in this extended range.
+</p>
+<p>Final comment is concerning the possible form of pseudo-differential operator <em>H</em>. At this moment, simplified form of operator <em>H</em> is supported &ndash; all &ldquo;mixed&rdquo; terms (like &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) are excluded. For example, in 2D case this operator is effectively <em>H = f(p,z) + g(x,z,u)</em>. However commutable combinations (like &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy) are allowed for 3D case. 
+</p>
+<p>So, for example let solve the equation for beam deflected from linear layer and absorbed later. The operator will have the form &lsquo;<samp>&quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;</samp>&rsquo; that correspond to equation <em>ik_0 \partial_z u + \Delta u + x \cdot u + i (x+z)/2 \cdot u = 0</em>. This is typical equation for Electron Cyclotron (EC) absorption in magnetized plasmas. For initial conditions let me select the beam with plane phase front <em>exp(-48*(x+0.7)^2)</em>. The corresponding code looks like this (see section <a href="mathgl_ru_9.html#PDE-sample">PDE &ndash; пример использования</a>):
+</p><pre class="verbatim">    mglData a,re(128),im(128);
+    re.Fill(&quot;exp(-48*(x+0.7)^2)&quot;, gr-&gt;Min, gr-&gt;Max);
+    a = mglPDE(&quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;, re, im,
+                gr-&gt;Min, gr-&gt;Max, 0.01, 30);
+    a.Transpose(&quot;yxz&quot;);
+    gr-&gt;CAxis(0, 1);
+    gr-&gt;Dens(a,&quot;wyrRk&quot;);
+</pre>
+<p>The last example is example of beam tracing. Beam tracing equation is special kind of PDE equation written in coordinates accompanied to a ray. Generally this is the same parameters and limitation as for PDE solving but the coordinates are defined by the ray and by parameter of grid width <var>w</var> in direction transverse the ray. So, you don&rsquo;t need to specify the range of coordinates. <strong>BUT</strong> there is limitation. The accompanied coordinates are well defined only for smooth enough rays, i.e. then the ray curvature <em>K</em> (which is defined as <em>1/K^2 = (|\ddot r|^2 |\dot r|^2 - (\ddot r, \dot r)^2)/|\dot r|^6</em>) is much large then the grid width: <em>K&gt;&gt;w</em>. So, you may receive incorrect results if this condition will be broken.
+</p>
+<p>You may use following code for obtaining the same solution as in previous example:
+</p><pre class="verbatim">    mglData r, xx, yy, a, im(128), re(128);
+    const char *ham = &quot;p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)&quot;;
+    r = mglRay(ham, mglPoint(-0.7, -1), mglPoint(0, 0.5), 0.02, 2);
+    // now start beam tracing
+    re.Fill(&quot;exp(-48*x^2)&quot;, gr-&gt;Min, gr-&gt;Max);
+    a = mglQO2d(ham, re, im, r, 1, 30, &amp;xx, &amp;yy);
+    gr-&gt;CAxis(0, 1);
+    gr-&gt;Dens(xx, yy, a, &quot;wyrRk&quot;);
+</pre>
+
+<hr size="6">
+<a name="MGL-parser-using"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#PDE-solving-hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stereo-image" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MGL-parser-using-1"></a>
+<h3 class="subsection">2.7.14 MGL parser using</h3>
+
+<p>Sometimes you may prefer to use MGL scripts in yours code. It is simpler (especially in comparison with C/Fortran interfaces) and fast way to plot the data with annotations, labels and so on. Class <code>mglParse</code> (see section <a href="mathgl_ru_7.html#mglParse-class">mglParse class</a> parse MGL scripts in C++. It have also the corresponding interface for C/Fortran.
+</p>
+<p>The key function here is <code>mglParse::Parse()</code> (or <code>mgl_parse()</code> for C/Fortran) which execute one command per string. At this the detailed information about the possible errors or warnings is passed as function value. Or you may execute the whole script as long string with lines separated by &lsquo;<samp>\n</samp>&rsquo;. Functions <code>mglParse::Execute()</code> and <code>mgl_parse_text()</code> perform it. Also you may set the values of paramters &lsquo;<samp>$0</samp>&rsquo;...&lsquo;<samp>$9</samp>&rsquo; for the script by functions <code>mglParse::AddParam()</code> or <code>mgl_add_param()</code>, allow/disable picture resizing, check &ldquo;once&rdquo; status and so on. The usage is rather stright-forward.
+</p>
+<p>The only non-obvious thing is data transition between script and yours program. There are 2 stages: add or find variable; and set data to variable. In C++ you may use functions <code>mglParse::AddVar()</code> and <code>mglParse::FindVar()</code> which return pointer to <code>mglVar</code> structure. This structure contain data itself, the variable name and callback function which will be called if variable destroied. Last feature allows you to control the presence of the variable and, for example, close a window with data if this variable is destroyed. In C/Fortran the corresponding functions are <code>mgl_add_var()</code>, <code>mgl_find_var()</code>. But these functions return the data array only. Note, you <strong>must not delete or free</strong> the data obtained from these functions!
+</p>
+<p>So, some simple example at the end. Here I define a data array, create variable, put data into it and plot it. The C++ code looks like this:
+</p><pre class="verbatim">    float a[100];   // let a_i = sin(4*pi*x), x=0...1
+    for(int i=0;i&lt;100;i++)  a[i]=sin(4*M_PI*i/99);
+    mglParse *parser = new mglParse;
+    mglData &amp;d = (parser-&gt;AddVar(&quot;dat&quot;))-&gt;d;
+    d.Set(a,100); // set data to variable
+    parser-&gt;Execute(gr, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+    // you may break script at any line do something 
+    // and continue after that
+    parser-&gt;Execute(gr, &quot;xlabel 'x'\nylabel 'y'&quot;);
+    // also you may use cycles or conditions in script
+    parser-&gt;Execute(gr, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+    gr-&gt;WritePNG(&quot;test.png&quot;);   // don't forgot to save picture
+</pre><p>The code in C/Fortran looks practically the same:
+</p><pre class="verbatim">    float a[100];   // let a_i = sin(4*pi*x), x=0...1
+    int i;
+    for(i=0;i&lt;100;i++)  a[i]=sin(4*M_PI*i/99);
+    HMPR parser = mgl_create_parser();
+    HMDT d = mgl_add_var(parser, &quot;dat&quot;);
+    mgl_data_set_float(d,a,100,1,1);    // set data to variable
+    mgl_parse_text(gr, parser, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+    // you may break script at any line do something 
+    // and continue after that
+    mgl_parse_text(gr, parser, &quot;xlabel 'x'\nylabel 'y'&quot;);
+    // also you may use cycles or conditions in script
+    mgl_parse_text(gr, parser, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+    mgl_write_png(gr, &quot;test.png&quot;, &quot;&quot;);  // don't forgot to save picture
+</pre>
+<hr size="6">
+<a name="Stereo-image"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-parser-using" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stereo-image-1"></a>
+<h3 class="subsection">2.7.15 Stereo image</h3>
+
+<p>One can easily create stereo image in MathGL. Stereo image can be produced by making two subplots with slightly different rotation angles. The corresponding code looks like this (see section <a href="mathgl_ru_9.html#Stereo-image-sample">Пример стерео изображения</a>):
+</p><pre class="verbatim">    gr-&gt;SubPlot(2,1,0);     // left image
+    gr-&gt;Rotate(40,60+3);
+    // draw something here
+    
+    gr-&gt;SubPlot(2,1,1);     // right image
+    gr-&gt;Rotate(40,60-3);
+    // draw the same here
+</pre>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_3.html b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_3.html
new file mode 100644
index 0000000..d2befb9
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_3.html
@@ -0,0 +1,4719 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: 3. Ядро MathGL</title>
+
+<meta name="description" content="MathGL 1.11: 3. Ядро MathGL">
+<meta name="keywords" content="MathGL 1.11: 3. Ядро MathGL">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="MathGL-core"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_2.html#Stereo-image" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="YA_0434_0440_043e-MathGL"></a>
+<h1 class="chapter">3. Ядро MathGL</h1>
+<a name="index-mglGraph"></a>
+
+<p>Основным классом MathGL является класс <strong>mglGraph</strong>, определенный в <code>#include &lt;mgl/mgl.h&gt;</code>. Он включает в себя множество функций для построения графиков от 1D, 2D и 3D массивов. Он также содержит функции вывода текста и построения осей координат. Есть возможность построения в произвольной системе координат, которая  задается строковыми формулами. Все графические функции используют класс mglData (see section <a href="mathgl_ru_6.html#mglData-class">Класс mglData</a>) для хранения массивов данных. Это позволяет легко контролировать размеры, работу с памятью и производить обработку данных. Дополнительная информация о цветах, шрифтах, вычисления формул может быть найдена в <a href="mathgl_ru_7.html#Other-classes">Other classes</a>.
+</p>
+<p>Замечу, что класс mglGraph &ndash; абстрактный класс, содержащий только интерфейсную часть для построения графиков. Он не выполняет собственно построения на конкретное устройство. Для практического использования (при выводе на экран, в память или в файл) используйте производные классы: mglGraphZB для растровых рисунков; mglGraphPS для векторных рисунков (в форматах EPS и/или SVG) и для быстрого, но менее аккуратного рисования растровой картинки; mglGraphGL для рисования с использованием OpenGL; и т.д. see section <a href="mathgl_ru_4.html#Plotter-classes">Классы для отрисовки</a>. Если вы хотите не только построить картинку, но и отобразить ее в окне/органе управления или запустить анимацию, то посмотрите также <a href="mathgl_ru_5.html#Widget-classes">&ldquo;Оконные&rdquo; классы</a>.
+</p>
+<p>Начиная с версии 1.10 есть специальный класс &quot;оболочка&quot; к функциям С-интерфейса. Он также называется <code>mglGraph</code> и определен в файле <code>mgl/mgl_graph.h</code>. Этот класс можно использовать и на не-GNU компиляторах (т.е. в Borland или Microsoft компиляторах), но в этом случае вы <strong>не должны подключать</strong> заголовочные файлы <code>mgl/mgl.h</code> или <code>mgl/mgl_parse.h</code>! Этот класс используется также как базовый класс для интерфейсов на основе SWIG (Python, Octave и пр). Далее в документации функции члены &quot;оболочечного&quot; класса обозначены как &lsquo;<samp>Python</samp>&rsquo; для отделения от оригинального класса &lsquo;<samp>C++</samp>&rsquo;, определенного в <code>mgl/mgl.h</code>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Graphics-setup">3.1 Настройка графика</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-settings">3.2 Настройки осей координат</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transformation-matrix">3.3 Матрица преобразования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Export-to-file">3.4 Экспорт в файл</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Primitives-drawing">3.5 Рисование примитивов</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing">3.6 Вывод текста</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-Colorbar">3.7 Оси и Colorbar</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Legend">3.8 Легенда</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting">3.9 1D графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting">3.10 2D графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting">3.11 3D графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting">3.12 Парные графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-fields">3.13 Векторные поля</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-plotting">3.14 Прочие графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting">3.15 Nonlinear fitting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-distributions">3.16 Распределение данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Frames_002fAnimation">3.17 Кадры/Анимация</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#IDTF-functions">3.18 IDTF функции</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Graphics-setup"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MathGL-core" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041d_0430_0441_0442_0440_043e_0439_043a_0430-g_0440_0430_0444_0438_043a_0430"></a>
+<h2 class="section">3.1 Настройка графика</h2>
+<a name="index-_041d_0430_0441_0442_0440_043e_0439_043a_0430-MathGL"></a>
+
+<p>Функции и переменные в этой группе влияют на вид всего рисунка. Соответственно они должны располагаться <em>перед</em> вызовом функций непосредственно рисующих графики.
+</p>
+<dl>
+<dt><a name="index-DefaultPlotParam"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DefaultPlotParam</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fset_005fdef_005fparam"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_def_param</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Устанавливает все настройки по умолчанию, кроме описанных в <a href="#Zooming">Масштабирование</a>.
+</p></dd></dl>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Transparency">3.1.1 Прозрачность</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lighting">3.1.2 Освещение</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fog">3.1.3 Туман</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Default-sizes">3.1.4 Базовые размеры</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Zooming">3.1.5 Масштабирование</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cutting">3.1.6 Обрезание</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-settings">3.1.7 Шрифты</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Palette-and-colors">3.1.8 Палитра и цвета</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Error-handling">3.1.9 Обработка ошибок</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-settings">3.1.10 Прочие настройки</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Graphics-setup" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lighting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x"></a>
+<h3 class="subsection">3.1.1 Прозрачность</h3>
+<a name="index-Alpha"></a>
+<a name="index-SetAlphaDef"></a>
+<a name="index-SetTransparent"></a>
+<a name="index-SetTranspType"></a>
+
+<p>Эти функции и переменные настраивают тип и степень прозрачности поверхностей. Главной является функция <code>Alpha()</code>, которая включает/выключает прозрачность для всех графиков, созданных после вызова <code>Alpha()</code> (за исключением mglGraphGL). Функция <code>SetAlphaDef</code> устанавливает величину alpha-канала по умолчанию. Прозрачность можно выключить для отдельного графика с помощью <code>SetTransparent</code>. Наконец, функция <code>SetTranspType</code> задает тип прозрачности. См. раздел <a href="mathgl_ru_9.html#Transparent-surface-sample">Transparent surface &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Alpha-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>bool</code> <b>Alpha</b><i> (<code>bool</code> enable)</i></dt>
+<dt><a name="index-mgl_005fset_005falpha"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_alpha</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Включает/выключает прозрачность и возвращает свое предыдущее состояние. По умолчанию прозрачность выключена. Функция включает прозрачность для <em>всего</em> рисунка. Используйте <code>SetTransparent(false)</code> для конкретного графика для выключения прозрачности.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetAlphaDef-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetAlphaDef</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005falpha_005f_043f_043e"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_alpha_по</b><i> умолчанию (<code>HMGL</code> gr, <code>float</code> alpha)</i></dt>
+<dd><p>Задает значение прозрачности по умолчанию для всех графиков. Отмечу, что OpenGL (mglGraphGL) некорректно рисует большое число перекрывающихся прозрачных поверхностей (больше двух).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTransparent-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTransparent</b><i> (<code>bool</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005ftransp"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_transp</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Временно включает/возвращает прозрачность графиков. Это аналог <code>Alpha(val)</code>, но работает более корректно для класса mglGraphGL.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTranspType-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTranspType</b><i> (<code>int</code> type)</i></dt>
+<dt><a name="index-mgl_005fset_005ftransp_005ftype"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_transp_type</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Задает тип прозрачности. Обычная прозрачность (&lsquo;<samp>0</samp>&rsquo;) &ndash; &quot;закрытые&quot; объекты видны меньше чем закрывающие. Этот режим некорректно отображается в OpenGL (mglGraphGL) для нескольких перекрывающихся поверхностей. &quot;Стеклянная&quot; прозрачность (&lsquo;<samp>1</samp>&rsquo;) &ndash; закрытые и закрывающие объекты единообразно ослабляют интенсивность света (по RGB каналам). &quot;Ламповая&quot; прозрачность (&lsquo;<samp>2</samp>&rsquo;) &ndash; закрытые и закрывающие объекты являются источниками дополнительного освещения (рекомендую установить <code>SetAlphaDef(0.3)</code> или меньше в этом случае). See section <a href="mathgl_ru_9.html#Normal-transparency">Обычная прозрачность</a>, <a href="mathgl_ru_9.html#Glass_002dlike-transparency">&quot;Стеклянная&quot; прозрачность</a>, <a href="mathgl_ru_9.html#Lamp_002dlike-transparency">&quot;Ламповая&quot; прозрачность</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AlphaDef-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>float</code> <b>AlphaDef</b></dt>
+<dd><p>Значение прозрачности по умолчанию для всех графиков. См. <code>SetAlphaDef()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Transparent-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>bool</code> <b>Transparent</b></dt>
+<dd><p>Флаг, временно включающий/выключающий прозрачность графиков. См. <code>SetTransparent()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TranspType-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>int</code> <b>TranspType</b></dt>
+<dd><p>Тип прозрачности. См. <code>SetTranspType()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Lighting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fog" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_0432e_0449e_043d_0438e"></a>
+<h3 class="subsection">3.1.2 Освещение</h3>
+<a name="index-Light"></a>
+<a name="index-Ambient"></a>
+<a name="index-AddLight"></a>
+
+<p>Эти функции настраивают освещение графика. Главная функция <code>Light(bool)</code> включает/выключает освещение графиков построенных после ее вызова (в OpenGL работает сразу для всего рисунка). MathGL  поддерживает до 10 независимых источников света. Но в режиме OpenGL можно использовать только первые 8 из них. Положение, цвет, яркость каждого источника света можно задавать по отдельности. По умолчанию включен только первый (с порядковым номером <code>0</code>) источник света белого цвета, расположенный сверху.
+</p>
+<dl>
+<dt><a name="index-Light-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>bool</code> <b>Light</b><i> (<code>bool</code> enable)</i></dt>
+<dt><a name="index-mgl_005fset_005flight"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_light</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Включает/выключает освещение графика и возвращает предыдущее состояние. По умолчанию освещение выключено.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Light-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Light</b><i> (<code>int</code> n, <code>bool</code> enable)</i></dt>
+<dt><a name="index-mgl_005fset_005flight_005fn"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_light_n</b><i> (<code>HMGL</code> gr, <code>int</code> n, <code>int</code> enable)</i></dt>
+<dd><p>Включает/выключает <var>n</var>-ый источник света.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AddLight-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>AddLight</b><i> (<code>int</code> n, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> c=<code>'w'</code>)</i></dt>
+<dt><a name="index-Light-3"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Light</b><i> (<code>int</code> n, <code>mglPoint</code> p, <code>char</code> c=<code>'w'</code>, <code>float</code> bright=<code>0.5</code>, <code>bool</code> infty=<code>true</code>)</i></dt>
+<dt><a name="index-Light-4"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Light</b><i> (<code>int</code> n, <code>mglPoint</code> p, <code>mglColor</code> c, <code>float</code> bright=<code>0.5</code>, <code>bool</code> infty=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fadd_005flight"></a><u>Функция С:</u> <code>void</code> <b>mgl_add_light</b><i> (<code>HMGL</code> gr, <code>int</code> n, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> c)</i></dt>
+<dd><p>Добавляет источник света с номером <var>n</var> в положение <var>p</var> с цветом <var>c</var> и яркостью <var>bright</var>, которая должна быть в диапазоне [0,1]. Флаг <var>infty</var>=<code>true</code> делает источник бесконечно удаленным (для более быстрого рисования).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Ambient-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Ambient</b><i> (<code>float</code> bright=<code>0.5</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fambbr"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_ambbr</b><i> (<code>HMGL</code> gr, <code>float</code> bright)</i></dt>
+<dd><p>Задает яркость рассеянного освещения. Значение должно быть в диапазоне [0,1].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fog"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lighting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Default-sizes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0422_0443_043c_0430_043d"></a>
+<h3 class="subsection">3.1.3 Туман</h3>
+<a name="index-Fog"></a>
+
+<dl>
+<dt><a name="index-Fog-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Fog</b><i> (<code>float</code> d, <code>float</code> dz=<code>0.25</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005ffog"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_fog</b><i> (<code>HMGL</code> gr, <code>float</code> d, <code>float</code> dz)</i></dt>
+<dd><p>Имитирует туман на графике. Туман начинается на относительном расстоянии <var>dz</var> от точки обзора и его плотность растет экспоненциально вглубь по закону ~<em>1-exp(-d*z)</em>. Здесь <em>z</em> &ndash; нормализованная на 1 глубина графика. Если <var>d</var>=<code>0</code> то туман отсутствует. См. раздел <a href="mathgl_ru_9.html#Surface-in-fog-sample">Surface in fog &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Default-sizes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fog" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Zooming" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0411_0430_0437_043e_0432_044be-_0440_0430_0437_043ce_0440_044b"></a>
+<h3 class="subsection">3.1.4 Базовые размеры</h3>
+<a name="index-SetTickLen"></a>
+<a name="index-SetTickStl"></a>
+<a name="index-SetBarWidth"></a>
+<a name="index-SetMarkSize"></a>
+<a name="index-SetArrowSize"></a>
+<a name="index-SetBaseLineWidth"></a>
+
+<p>Эти функции задают величины большинства параметров графика, включая размеры маркеров, стрелок, толщину линий и т.д. Как и любые другие настройки, они подействуют только на графики созданные после изменения настроек.
+</p>
+<dl>
+<dt><a name="index-SetBarWidth-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetBarWidth</b><i> ( <code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fbar_005fwidth"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_bar_width</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Задает относительный размер прямоугольников в Bars, Barh, BoxPlot (see section <a href="#Bars">Bars</a>). Значение по умолчанию <code>0.7</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetMarkSize-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetMarkSize</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fmark_005fsize"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_mark_size</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Задает размер маркеров для <a href="#g_t1D-plotting">1D графики</a>. Значение по умолчанию <code>0.02</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetArrowSize-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetArrowSize</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005farrow_005fsize"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_arrow_size</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Задает размер стрелок для <a href="#g_t1D-plotting">1D графики</a>, линий и кривых (see section <a href="#Primitives-drawing">Рисование примитивов</a>). Значение по умолчанию <code>0.03</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetBaseLineWidth-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetBaseLineWidth</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fbase_005fline_005fwidth"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_base_line_width</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Задает базовую толщину линий. Значения &lt;1 игнорируются. Для значений &gt;1 реальная толщина получается перемножением указанной ширины линии на данное значение. Увеличение ширины линии актуально для больших растровых рисунков. Значение по умолчанию <code>1</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTickLen-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTickLen</b><i> (<code>float</code> val, <code>float</code> stt=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005ftick_005flen"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_tick_len</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>float</code> stt)</i></dt>
+<dd><p>Задает относительную длину меток осей координат. Значение по умолчанию <code>0.1</code>. Параметр <var>stt</var>&gt;0 задает относительную длину подметок, которые в <code>sqrt(1+stt)</code> раз меньше.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTickStl-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTickStl</b><i> (<code>const char *</code>stl, <code>const char *</code>sub=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005ftick_005fstl"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_tick_stl</b><i> (<code>HMGL</code> gr, <code>const char *</code>stl, <code>const char *</code>sub)</i></dt>
+<dd><p>Задает стиль меток (<var>stl</var>) и подметок (<var>sub</var>) осей координат. Если <var>stl</var> пустая или ноль, то используется стиль по умолчанию (&lsquo;<samp>k</samp>&rsquo; или &lsquo;<samp>w</samp>&rsquo; в зависимости от типа прозрачности). Если <var>sub</var> пустая или ноль, то используется стиль меток (т.е. <var>stl</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-BarWidth-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>float</code> <b>BarWidth</b></dt>
+<dd><p>Относительная ширина боксов. См. <code>SetBarWidth()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-MarkSize-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>float</code> <b>MarkSize</b></dt>
+<dd><p>Размер маркеров. См. <code>SetMarkSize()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ArrowSize-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>float</code> <b>ArrowSize</b></dt>
+<dd><p>Размер стрелок. См. <code>SetArrowSize()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-BaseLineWidth-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>float</code> <b>BaseLineWidth</b></dt>
+<dd><p>Базовая ширина линий. См. <code>SetBaseLineWidth()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Zooming"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Default-sizes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cutting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041c_0430_0441_0448_0442_0430_0431_0438_0440_043e_0432_0430_043d_0438e"></a>
+<h3 class="subsection">3.1.5 Масштабирование</h3>
+<a name="index-SetPlotFactor"></a>
+<a name="index-Zoom"></a>
+
+<p>Эти функции управляют масштабированием всего рисунка (см Zoom()) или отдельной картинки (см PlotFactor). Обычно эти функции используются для удаления пустого места вокруг графиков.
+</p>
+<dl>
+<dt><a name="index-SetPlotFactor-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetPlotFactor</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fplotfactor"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_plotfactor</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Задает масштаб картинки (значение должно быть больше 1). Не рекомендуется устанавливать значения меньше 1.5. Это аналог функции Zoom(), но применяется только к конкретной картинке, заданной InPlot. Используйте ноль для включения автоматического масштабирования.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Zoom-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Zoom</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> x2, <code>float</code> y2)</i></dt>
+<dt><a name="index-mgl_005fset_005fzoom"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_zoom</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> x2, <code>float</code> y2)</i></dt>
+<dd><p>Масштабирует весь рисунок. После вызова функции текущий график будет очищен и в дальнейшем рисунок будет содержать только область [x1,x2]*[y1,y2] от исходного рисунка. Координаты <var>x1</var>, <var>x2</var>, <var>y1</var>, <var>y2</var> меняются в диапазоне от 0 до 1. Внимание! эти настройки не могут быть переписаны никакими другими функциями. Используйте <code>Zoom(0,0,1,1)</code> для перехода в масштаб по умолчанию.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-PlotFactor-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>float</code> <b>PlotFactor</b></dt>
+<dd><p>Множитель масштаба картинки. См. <code>SetPlotFactor()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AutoPlotFactor-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>bool</code> <b>AutoPlotFactor</b></dt>
+<dd><p>Включает/выключает автоматическое изменение PlotFactor при вращении графика. См. <code>SetPlotFactor()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cutting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Zooming" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0431_0440e_0437_0430_043d_0438e"></a>
+<h3 class="subsection">3.1.6 Обрезание</h3>
+<a name="index-SetCut"></a>
+<a name="index-SetCutBox"></a>
+<a name="index-CutOff"></a>
+
+<p>Эти функции задают условия когда точка будет исключена (вырезана) из рисования. Замечу, что все точки со значением(-ями) NAN по одной из координат или амплитуде автоматически исключаются из рисования.
+</p>
+<dl>
+<dt><a name="index-SetCut-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCut</b><i> (<code>bool</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fcut"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_cut</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+<dd><p>Задает обрезание точек за пределами осей координат. Если <code>true</code> то такие точки исключаются из рисования (это по умолчанию) иначе они проецируются на ограничивающий прямоугольник.
+</p></dd></dl>
+
+<div class="float">
+<img src="cut.png" alt="cut">
+
+</div><p><strong>Левый рисунок нарисован при <code>Cut=false</code>, правый при <code>Cut=true</code>.
+</strong>
+</p>
+<dl>
+<dt><a name="index-SetCutBox-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCutBox</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2)</i></dt>
+<dt><a name="index-mgl_005fset_005fcut_005fbox"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_cut_box</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2)</i></dt>
+<dd><p>Задает границы параллелепипеда внутри которого точки не рисуются. Если границы одинаковы (переменные равны), то параллелепипеда считается пустым. См. раздел <a href="mathgl_ru_9.html#CutMinMax-sample">CutMinMax &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CutOff-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>CutOff</b><i> (<code>const char *</code>EqC)</i></dt>
+<dt><a name="index-mgl_005fset_005fcutoff"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_cutoff</b><i> (<code>HMGL</code> gr, <code>const char *</code>EqC)</i></dt>
+<dd><p>Задает условие обрезания по формуле <var>EqC</var>. Это условие исключает точки из рисования если результат вычисления формулы не равен нулю. Установите аргумент <code>&quot;&quot;</code> для выключения условия обрезания. См. раздел <a href="mathgl_ru_9.html#CutOff-sample">CutOff &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cut-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>bool</code> <b>Cut</b></dt>
+<dd><p>Флаг рисования точек вне осей координат. См. <code>SetCut()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CutMin_002c-CutMax-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>mglPoint</code> <b>CutMin, CutMax</b></dt>
+<dd><p>Нижний и верхний угол параллелепипеда внутри которого точки не рисуются. См. <code>SetCutBox()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Font-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cutting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Palette-and-colors" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0428_0440_0438_0444_0442_044b"></a>
+<h3 class="subsection">3.1.7 Шрифты</h3>
+<a name="index-SetFontSize"></a>
+<a name="index-SetFontDef"></a>
+<a name="index-SetRotatedText"></a>
+<a name="index-SetFontSizePT"></a>
+<a name="index-SetFontSizeCM"></a>
+<a name="index-SetFontSizeIN"></a>
+<a name="index-SetFont"></a>
+<a name="index-GetFont"></a>
+<a name="index-LoadFont"></a>
+<a name="index-CopyFont"></a>
+<a name="index-RestoreFont"></a>
+
+<dl>
+<dt><a name="index-SetFontSize-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetFontSize</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005ffont_005fsize"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_font_size</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Задает базовый размер шрифта. По умолчанию размер подписей оси координат в 1.4 раза больше.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetFontDef-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetFontDef</b><i> (<code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005fset_005ffont_005fdef"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_font_def</b><i> (<code>HMGL</code> gr, <code>const char *</code> val)</i></dt>
+<dd><p>Задает стиль шрифта (see section <a href="#Text-printing">Вывод текста</a>). По умолчанию используется &lsquo;<samp>rC</samp>&rsquo; &ndash; прямой шрифт с выравниванием по центру.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetRotatedText-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetRotatedText</b><i> (<code>bool</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005frotated_005ftext"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_rotated_text</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+<dd><p>Включает/выключает вращение меток и подписей осей координат вдоль оси.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-LoadFont-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>LoadFont</b><i> (<code>const char *</code>name, <code>const char *</code>path=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fload_005ffont"></a><u>Функция С:</u> <code>void</code> <b>mgl_load_font</b><i> (<code>HMGL</code> gr, <code>const char *</code>name, <code>const char *</code>path)</i></dt>
+<dd><p>Загружает начертание шрифта из файла <var>path</var>/<var>name</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CopyFont-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>CopyFont</b><i> (<code>mglGraph *</code> from)</i></dt>
+<dt><a name="index-mgl_005fcopy_005ffont"></a><u>Функция С:</u> <code>void</code> <b>mgl_copy_font</b><i> (<code>HMGL</code> gr, <code>HMGL</code> gr_from)</i></dt>
+<dd><p>Копирует начертание шрифта из другого объекта <code>mglGraph</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-RestoreFont-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>RestoreFont</b><i> ()</i></dt>
+<dt><a name="index-mgl_005frestore_005ffont"></a><u>Функция С:</u> <code>void</code> <b>mgl_restore_font</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Восстанавливает начертание шрифта по умолчанию.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetFontSizePT-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>SetFontSizePT</b><i> (<code>float</code> cm, <code>int</code> dpi=<code>72</code>)</i></dt>
+<dd><p>Задает размер шрифта в пунктах для заданного DPI (по умолчанию 16 pt для dpi=72).
+</p></dd></dl>
+<dl>
+<dt><a name="index-SetFontSizeCM-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>inline void</code> <b>SetFontSizeCM</b><i> (<code>float</code> cm, <code>int</code> dpi=<code>72</code>)</i></dt>
+<dd><p>Задает размер шрифта в сантиметрах для заданного DPI (по умолчанию 0.56 см = 16 pt).
+</p></dd></dl>
+<dl>
+<dt><a name="index-SetFontSizeIN-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>inline void</code> <b>SetFontSizeIN</b><i> (<code>float</code> cm, <code>int</code> dpi=<code>72</code>)</i></dt>
+<dd><p>Задает размер шрифта в дюймах для заданного DPI (по умолчанию 0.22 in = 16 pt).
+</p></dd></dl>
+<dl>
+<dt><a name="index-SetFont-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>SetFont</b><i> (<code>mglFont *</code>f)</i></dt>
+<dd><p>Задает начертание шрифта. Замечу, что каждый объект mglFont может использоваться <em>только с одним</em> объектом mglGraph в каждый момент времени! Если <code>f==NULL</code>, то используется начертание по умолчанию.
+</p></dd></dl>
+<dl>
+<dt><a name="index-GetFont-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>inline mglFont *</code> <b>GetFont</b><i> ()</i></dt>
+<dd><p>Возвращает текущее начертание шрифта. Указатель правилен только до следующего вызова функции SetFont()!
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FontSize-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>float</code> <b>FontSize</b></dt>
+<dd><p>Размер шрифта. См. <code>SetFontSize()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-FontDef-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>char</code> <b>FontDef</b><i><code>[32]</code></i></dt>
+<dd><p>Стиль шрифта. См. <code>SetFontDef()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-RotatedText-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>bool</code> <b>RotatedText</b></dt>
+<dd><p>Флаг вращения меток и подписей к осям координат.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Palette-and-colors"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Error-handling" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0430_043b_0438_0442_0440_0430-_0438-c_0432e_0442_0430"></a>
+<h3 class="subsection">3.1.8 Палитра и цвета</h3>
+<a name="index-SetPalColor"></a>
+<a name="index-SetPalNum"></a>
+<a name="index-SetPalette"></a>
+<a name="index-SetScheme"></a>
+<a name="index-SelectPen"></a>
+
+<dl>
+<dt><a name="index-SetPalette-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetPalette</b><i> (<code>const char *</code><var>colors</var>)</i></dt>
+<dt><a name="index-mgl_005fset_005fpalette"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_palette</b><i> (<code>HMGL</code> gr, <code>const char *</code><var>colors</var>)</i></dt>
+<dd><p>Задает палитру как последовательность цветов. Значение по умолчанию <code>&quot;Hbgrcmyhlnqeup&quot;</code>, что соответствует цветам: темно серый &lsquo;<samp>H</samp>&rsquo;, синий &lsquo;<samp>b</samp>&rsquo;, зеленый &lsquo;<samp>g</samp>&rsquo;, красный &lsquo;<samp>r</samp>&rsquo;, голубой &lsquo;<samp>c</samp>&rsquo;, малиновый &lsquo;<samp>m</samp>&rsquo;, желтый &lsquo;<samp>y</samp>&rsquo;, серый &lsquo;<samp>h</samp>&rsquo;, сине-зеленый  &lsquo;<samp>l</samp>&rsquo;, небесно-голубой &lsquo;<samp>n</samp>&rsquo;, оранжевый &lsquo;<samp>q</samp>&rsquo;, желто-зеленый &lsquo;<samp>e</samp>&rsquo;, сине-фиолетовый &lsquo;<samp>u</samp>&rsquo;, фиолетовый &lsquo;<samp>p</samp>&rsquo;. Палитра в основном используется в 1D графиках (see section <a href="#g_t1D-plotting">1D графики</a>) для кривых с неопределенным стилем линии.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetPalColor-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetPalColor</b><i> (<code>int</code> n, <code>float</code> r, <code>float</code> g, <code>float</code> b)</i></dt>
+<dt><a name="index-mgl_005fset_005fpal_005fcolor"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_pal_color</b><i> (<code>HMGL</code> gr, <code>int</code> n, <code>float</code> r, <code>float</code> g, <code>float</code> b)</i></dt>
+<dd><p>Задает цвет отдельной ячейки палитры. См. функцию <code>SetPalette()</code> для упрощенного задания палитры.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetPalNum-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetPalNum</b><i> (<code>int</code> num)</i></dt>
+<dt><a name="index-mgl_005fset_005fpal_005fnum"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_pal_num</b><i> (<code>HMGL</code> gr, <code>int</code> num)</i></dt>
+<dd><p>Задает число цветов в палитре. Значение должно быть меньше 100.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetScheme-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetScheme</b><i> (<code>const char *</code>sch)</i></dt>
+<dt><a name="index-mgl_005fset_005fscheme"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_scheme</b><i> (<code>HMGL</code> gr, <code>const char *</code>sch)</i></dt>
+<dd><p>Задает цветовую схему. Обычно функция вызывается внутри библиотеки. See section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SelectPen-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>SelectPen</b><i> (<code>const char *</code>sch)</i></dt>
+<dd><p>Задает стиль линий и маркеров. Обычно функция вызывается внутри библиотеки. See section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-Pal-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>mglColor</code> <b>Pal</b><i><code>[101]</code></i></dt>
+<dd><p>Палитра <a href="#g_t1D-plotting">1D графики</a>. См. <code>SetPalette()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-NumPal-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>int</code> <b>NumPal</b></dt>
+<dd><p>Число цветов в палитре. См. <code>SetPalette()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Error-handling"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Palette-and-colors" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0431_0440_0430_0431_043e_0442_043a_0430-_043e_0448_0438_0431_043e_043a"></a>
+<h3 class="subsection">3.1.9 Обработка ошибок</h3>
+
+<a name="index-Message"></a>
+<a name="index-GetWarnCode"></a>
+<a name="index-SetWarn"></a>
+
+<p>Есть 2 переменные показывающие наличие предупреждения/ошибки при создании графика. Обычно вы должны сбросить их с помощью <code>SetWarn(0);</code> перед построением и проверить переменную <var>WarnCode</var> на наличие ошибок после построения. Только последнее предупреждение сохраняется. Замечу, что все предупреждения/ошибки в MathGL не являются критичными &ndash; в худшем из вариантов соответствующий график просто не будет построен.
+</p>
+<dl>
+<dt><a name="index-SetWarn-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>SetWarn</b><i> (<code>int</code> code, <code>const char *</code>who=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Задает код предупреждения и поясняющее сообщение от функции <var>who</var>. Обычно вызывается только для очистки предупреждений (<code>SetWarn(0);</code>) или внутри библиотеки.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Message-of-mglGraph"></a><u>Переменная(C++) of mglGraph:</u> <code>char *</code> <b>Message</b></dt>
+<dd><p>Указатель на строку для вывода сообщений библиотеки о причине отсутствия графика. Если равен NULL, то сообщения не выводятся. Размер буфера должен быть не менее 1024 байт. Если Message[0]==0, то сообщений нет.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetWarn"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>int</code> <b>GetWarn</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fget_005fwarn"></a><u>C function:</u> <code>int</code> <b>mgl_get_warn</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Возвращает код сообщения о причине отсутствия графика. Возможные значения:
+</p><dl compact="compact">
+<dt> <code>mglWarnNone=0</code></dt>
+<dd><p>Предупреждений нет
+</p></dd>
+<dt> <code>mglWarnDim</code></dt>
+<dd><p>Неправильные или несовместимые размеры данных
+</p></dd>
+<dt> <code>mglWarnLow</code></dt>
+<dd><p>Размеры данных слишком малы
+</p></dd>
+<dt> <code>mglWarnNeg</code></dt>
+<dd><p>Минимальное значение отрицательно
+</p></dd>
+<dt> <code>mglWarnFile</code></dt>
+<dd><p>Файл не найден или указаны неправильные размерности
+</p></dd>
+<dt> <code>mglWarnMem</code></dt>
+<dd><p>Не достаточно памяти
+</p></dd>
+<dt> <code>mglWarnZero</code></dt>
+<dd><p>Значение данных равно нулю
+</p></dd>
+<dt> <code>mglWarnLegA</code></dt>
+<dd><p>Слишком много записей в легенде
+</p></dd>
+<dt> <code>mglWarnLeg</code></dt>
+<dd><p>Нет записей в легенде
+</p></dd>
+<dt> <code>mglWarnSlc</code></dt>
+<dd><p>Индекс среза вне данных
+</p></dd>
+<dt> <code>mglWarnCnt</code></dt>
+<dd><p>Число линий уровня меньше или равно нулю
+</p></dd>
+<dt> <code>mglWarnOpen</code></dt>
+<dd><p>Не могу открыть файл
+</p></dd>
+<dt> <code>mglWarnLId</code></dt>
+<dd><p>Light: ID вне допустимых значений
+</p></dd>
+<dt> <code>mglWarnSize</code></dt>
+<dd><p>Setsize: размер(ы) равны нулю или отрицательны
+</p></dd>
+<dt> <code>mglWarnFmt</code></dt>
+<dd><p>Формат не поддерживается
+</p></dd>
+</dl>
+</dd></dl>
+
+<dl>
+<dt><a name="index-WarnCode-of-mglGraph"></a><u>Устаревшая переменная of mglGraph:</u> <code>int</code> <b>WarnCode</b></dt>
+<dd><p>Код сообщения о причине отсутствия графика. 
+</p></dd></dl>
+
+<hr size="6">
+<a name="Other-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Error-handling" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043e_0447_0438e-_043d_0430_0441_0442_0440_043e_0439_043a_0438"></a>
+<h3 class="subsection">3.1.10 Прочие настройки</h3>
+<a name="index-SetMeshNum"></a>
+<a name="index-SetAxialDir"></a>
+<a name="index-SetDrawFace"></a>
+<a name="index-PlotId"></a>
+
+<dl>
+<dt><a name="index-SetMeshNum-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetMeshNum</b><i> (<code>int</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fmeshnum"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_meshnum</b><i> (<code>HMGL</code> gr, <code>int</code> num)</i></dt>
+<dd><p>Задает ориентировочное число линий в Mesh(), Fall(), Grid() и число стрелок (штрихов) в Vect(), Dew() и число ячеек в Cloud*(). По умолчанию (=0) рисуются все линии, стрелки, ячейки.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetAxialDir-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetAxialDir</b><i> (<code>char</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005faxial_005fdir"></a><u>Функция С:</u> <code></code> <b>mgl_set_axial_dir</b><i> (<code>HMGL</code> gr, <code>char</code> dir)</i></dt>
+<dd><p>Задает ось вращения для Axial() и Torus(). По умолчанию это &rsquo;z&rsquo;.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetDrawFace-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetDrawFace</b><i> (<code>bool</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fdraw_005fface"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_draw_face</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+<dd><p>Запрещает/разрешает рисование граней. Запрет вывода граней позволяет ускорить рисование (например для вращения картинки).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-PlotId-of-mglGraph"></a><u>Переменная(C++) of mglGraph:</u> <code>const char *</code> <b>PlotId</b></dt>
+<dd><p>Идентификатор рисунка для сохранения в файл.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-MeshNum-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>int</code> <b>MeshNum</b></dt>
+<dd><p>Число линий, стрелок, ячеек. См. <code>SetMeshNum()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AxialDir-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>char</code> <b>AxialDir</b></dt>
+<dd><p>Ось вращения. См. <code>SetAxialDir()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DrawFace-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>bool</code> <b>DrawFace</b></dt>
+<dd><p>Флаг запрета рисования граней. См. <code>SetDrawFace()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CirclePnts-of-mglGraph"></a><u>Переменная(C++) of mglGraph:</u> <code>int</code> <b>CirclePnts</b></dt>
+<dd><p>Число точек при аппроксимации окружности в <a href="#Primitives-drawing">Рисование примитивов</a>, <a href="#Tube">Tube</a>, <a href="#Pipe">Pipe</a> и т.д. По умолчанию 40.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GridPnts-of-mglGraph"></a><u>Переменная(C++) of mglGraph:</u> <code>int</code> <b>GridPnts</b></dt>
+<dd><p>Число точек при построении линий сеток &ndash; важно для криволинейных координат. По умолчанию 50.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axis-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ranges-_0028bounding-box_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041d_0430_0441_0442_0440_043e_0439_043a_0438-_043e_0441e_0439-_043a_043e_043e_0440_0434_0438_043d_0430_0442"></a>
+<h2 class="section">3.2 Настройки осей координат</h2>
+
+<p>Эти функции управляет видом и масштабом осей координат. Перед построением для каждой точки выполняются 3 преобразования: сначала определяется возможность рисования точки (see section <a href="#Cutting">Обрезание</a>), далее применяются формулы перехода к криволинейным координатам и наконец точка отображается.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transformation">3.2.2 Криволинейные координаты</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ticks">3.2.3 Метки осей</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Ranges-_0028bounding-box_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transformation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041c_0430_0441_0448_0442_0430_0431-_043e_0441e_0439-_043a_043e_043e_0440_0434_0438_043d_0430_0442"></a>
+<h3 class="subsection">3.2.1 Масштаб осей координат</h3>
+<a name="index-Axis"></a>
+<a name="index-CAxis"></a>
+<a name="index-XRange"></a>
+<a name="index-YRange"></a>
+<a name="index-ZRange"></a>
+<a name="index-Min"></a>
+<a name="index-Max"></a>
+<a name="index-Cmin"></a>
+<a name="index-Cmax"></a>
+<a name="index-RecalcBorder"></a>
+<a name="index-Org"></a>
+<a name="index-AutoOrg"></a>
+<a name="index-SetRanges"></a>
+<a name="index-SetAutoRanges"></a>
+
+<dl>
+<dt><a name="index-SetRanges-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetRanges</b><i> (<code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2, <code>float</code> z1=<code>0</code>, <code>float</code> z2=<code>0</code>)</i></dt>
+<dt><a name="index-Axis-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Axis</b><i> (<code>mglPoint</code> min, <code>mglPoint</code> max, <code>mglPoint</code> org=<code>mglPoint(NAN,NAN,NAN)</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005faxis_005f2d"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_axis_2d</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> x2, <code>float</code> y2)</i></dt>
+<dt><a name="index-mgl_005fset_005faxis_005f3d"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_axis_3d</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2)</i></dt>
+<dd><p>Безопасным образом задает значения переменных <var>Min</var>, <var>Max</var> и <var>Org</var>. Если минимальное и максимальное значение координаты равны, то они игнорируются по данному направлению. Эта функция также устанавливает размер цветовой шкалы <var>Cmin</var>=<code>Min.z</code> и <var>Cmax</var>=<code>Max.z</code> &ndash; это режим по умолчанию для 2d графиков.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetCRange"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCRange</b><i> (<code>float</code> min, <code>float</code> max)</i></dt>
+<dt><a name="index-CAxis-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>CAxis</b><i> (<code>float</code> min, <code>float</code> max)</i></dt>
+<dt><a name="index-mgl_005fset_005fcaxis"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_caxis</b><i> (<code>HMGL</code> gr, <code>float</code> min, <code>float</code> max)</i></dt>
+<dd><p>Задает масштаб цветовой шкалы. Эти значения используются для определения цвета поверхностей и прочих 2D и 3D графиков.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-XRange-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>XRange</b><i> (<code>const mglData &amp;</code> dat, <code>bool</code> add=<code>false</code>, <code>float</code> fact=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fxrange"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_xrange</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> add)</i></dt>
+<dd><p>Задает масштаб по оси X как минимальное и максимальное значение массива <var>a</var>. Параметр <var>add</var> указывает добавлять новый диапазон к существующему или заменять его. Параметр <var>fact</var> дополнительно расширяет диапазон на величину (<var>Max</var>-<var>Min</var>)*<var>fact</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-YRange-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>YRange</b><i> (<code>const mglData &amp;</code> dat, <code>bool</code> add=<code>false</code>, <code>float</code> fact=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fyrange"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_yrange</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> add)</i></dt>
+<dd><p>Задает масштаб по оси Y как минимальное и максимальное значение массива <var>a</var>. Параметр <var>add</var> указывает добавлять новый диапазон к существующему или заменять его. Параметр <var>fact</var> дополнительно расширяет диапазон на величину (<var>Max</var>-<var>Min</var>)*<var>fact</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ZRange-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ZRange</b><i> (<code>const mglData &amp;</code> dat, <code>bool</code> add=<code>false</code>, <code>float</code> fact=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fzrange"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_zrange</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> add)</i></dt>
+<dd><p>Задает масштаб по оси Z как минимальное и максимальное значение массива <var>a</var>. Параметр <var>add</var> указывает добавлять новый диапазон к существующему или заменять его. Параметр <var>fact</var> дополнительно расширяет диапазон на величину (<var>Max</var>-<var>Min</var>)*<var>fact</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CRange"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>CRange</b><i> (<code>const mglData &amp;</code> dat, <code>bool</code> add=<code>false</code>, <code>float</code> fact=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fcrange"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_crange</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> add)</i></dt>
+<dd><p>Задает цветовой масштаб как минимальное и максимальное значение массива <var>a</var>. Параметр <var>add</var> указывает добавлять новый диапазон к существующему или заменять его. Параметр <var>fact</var> дополнительно расширяет диапазон на величину (<var>Max</var>-<var>Min</var>)*<var>fact</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetAutoRanges-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetAutoRanges</b><i> (<code>float</code> x1, <code>float</code> x2, <code>float</code> y1=<code>0</code>, <code>float</code> y2=<code>0</code>, <code>float</code> z1=<code>0</code>, <code>float</code> z2=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fauto"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_auto</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2, <code>float</code> z1, <code>float</code> z2)</i></dt>
+<dd><p>Задает масштаб &quot;автоматических&quot; (не указанных явно) переменных. Функция меняет значения <var>Min</var>, <var>Max</var> буз вызова RecalcBorder(). Если минимальное и максимальное значение координаты равны, то они игнорируются по данному направлению. Замечу, что этот масштаб становится масштабом осей при следующем вызове функций [XYZ]Range().
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetOrigin"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetOrigin</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005forigin"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_origin</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0)</i></dt>
+<dd><p>Задает центр пересечения осей координат. Если одно из значений равно NAN, то MathGL попытается выбрать оптимальное положение осей координат по этому направлению.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-RecalcBorder-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>RecalcBorder</b><i> ()</i></dt>
+<dd><p>Повторно вычисляет внутренние параметры для правильного применения функций перехода в криволинейную систему координат. <strong>Должна быть вызвана</strong> после каждого прямого изменения переменных <var>Min</var>, <var>Max</var>, <var>fx</var>, <var>fy</var>, <var>fz</var> если их изменение должно отразиться на графике.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Min_002c-Max-of-mglGraph"></a><u>Переменная(C++) of mglGraph:</u> <code>mglPoint</code> <b>Min, Max</b></dt>
+<dd><p>Масштаб осей координат. Эти переменные используются также для определения диапазона &quot;автоматических&quot; массивов (массивов не указанных явно при построении графика). Вы можете изменить их перед построением графика и потом вернуть их назад. В результате график будет в указанном диапазоне, а не в диапазоне осей координат. <strong>НО</strong> если вы хотите поменять масштаб осей, то вы <strong>должны</strong> вызвать функцию <code>RecalcBorder();</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cmin_002c-Cmax-of-mglGraph"></a><u>Переменная(C++) of mglGraph:</u> <code>float</code> <b>Cmin, Cmax</b></dt>
+<dd><p>Масштаб цветовой шкалы. См. <code>CAxis(), CRange()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Org-of-mglGraph"></a><u>Переменная(C++) of mglGraph:</u> <code>mglPoint</code> <b>Org</b></dt>
+<dd><p>Центр пересечения осей координат. См. <code>SetOrigin()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AutoOrg-of-mglGraph"></a><u>Переменная(C++) of mglGraph:</u> <code>bool</code> <b>AutoOrg</b></dt>
+<dd><p>Флаг для автоматического сдвига осей координат если их центр пересечения лежит вне диапазона осей координат <var>Min</var> ... <var>Max</var>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Transformation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ranges-_0028bounding-box_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ticks" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041a_0440_0438_0432_043e_043b_0438_043de_0439_043d_044be-_043a_043e_043e_0440_0434_0438_043d_0430_0442_044b"></a>
+<h3 class="subsection">3.2.2 Криволинейные координаты</h3>
+<a name="index-SetFunc"></a>
+<a name="index-SetCoor"></a>
+<a name="index-Ternary"></a>
+
+<dl>
+<dt><a name="index-SetFunc-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetFunc</b><i> (<code>const char *</code>EqX, <code>const char *</code>EqY, <code>const char *</code>EqZ=<code>&quot;&quot;</code>, <code>const char *</code>EqA=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005ffunc"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_func</b><i> (<code>HMGL</code> gr, <code>const char *</code>EqX, <code>const char *</code>EqY, <code>const char *</code>EqZ)</i></dt>
+<dt><a name="index-mgl_005fset_005ffunc_005fext"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_func_ext</b><i> (<code>HMGL</code> gr, <code>const char *</code>EqX, <code>const char *</code>EqY, <code>const char *</code>EqZ, <code>const char *</code>EqA)</i></dt>
+<dd><p>Задает формулы перехода к криволинейным координатам. Каждая строка является математическим выражением, зависящим от старых координат &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; и &lsquo;<samp>a</samp>&rsquo; или &lsquo;<samp>c</samp>&rsquo; для цветовой шкалы. Например, для цилиндрических координат будет <code>Axis(&quot;x*cos(y)&quot;, &quot;x*sin(y)&quot;, &quot;z&quot;);</code>. Для удаления формул соответствующий параметр должен быть пустым или <code>NULL</code>. Использование формул преобразования слегка замедляет программу, т.е.. <code>Axis(&quot;&quot;, &quot;&quot;, &quot;&quot;)</code> быстрее чем <code>Axis(&quot;1*x&quot;, &quot;1*y&quot;, &quot;1*z&quot;)</code>. Параметр <var>EqA</var> задает аналогичную формулу для цветовой шкалы. See section <a href="mathgl_ru_1.html#Textual-formulas">Текстовые формулы</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetCoor-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCoor</b><i> (<code>int</code> how)</i></dt>
+<dt><a name="index-mgl_005fset_005fcoor"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_coor</b><i> (<code>HMGL</code> gr, <code>int</code> how)</i></dt>
+<dd><p>Устанавливает одну из предопределенных систем криволинейных координат в зависимости от параметра <var>how</var>: <code>mglCartesian=0</code> &ndash; декартова система (нет преобразования координат, наиболее быстрая); <code>mglPolar=1</code> &ndash; полярные координаты <em>x_n=x*cos(y),y_n=x*sin(y), z_n=z</em>; <code>mglSpherical=2</code> &ndash; сферические координаты <em>x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y)</em>; <code>mglParabolic=3</code> &ndash; параболические координаты <em>x_n=x*y, y_n=(x*x-y*y)/2, z_n=z</em>; <code>mglParaboloidal=4</code> &ndash; Paraboloidal coordinates <em>x_n=(x*x-y*y)*cos(z)/2, y_n=(x*x-y*y)*sin(z)/2, z_n=x*y</em>; <code>mglOblate=5</code> &ndash; Oblate coordinates <em>x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z), z_n=sinh(x)*sin(y)</em>; <code>mglProlate=6</code> &ndash; Prolate coordinates <em>x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z), z_n=cosh(x)*cos(y)</em>; <code>mglElliptic=7</code> &ndash; эллиптические координаты <em>x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z</em>; <code>mglToroidal=8</code> &ndash; тороидальные координаты <em>x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)), y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y))</em>; <code>mglBispherical=9</code> &ndash; бисферические координаты <em>x_n=sin(y)*cos(z)/(cosh(x)-cos(y)), y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y))</em>; <code>mglBipolar=10</code> &ndash; биполярные координаты <em>x_n=sinh(x)/(cosh(x)-cos(y)), y_n=sin(y)/(cosh(x)-cos(y)), z_n=z</em>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Ternary-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Ternary</b><i> (<code>bool</code> tern)</i></dt>
+<dt><a name="index-mgl_005fset_005fternary"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_ternary</b><i> (<code>HMGL</code> gr, <code>int</code> tern)</i></dt>
+<dd><p>Задает рисование треугольных (Ternary) осей координат. Это специальный тип графика для 3 зависимых координат (компонент) <var>a</var>, <var>b</var>, <var>c</var> таких, что <var>a</var>+<var>b</var>+<var>c</var>=1. MathGL использует только 2 независимые координаты <var>a</var>=x и <var>b</var>=y поскольку их достаточно для построения всех графиков. При этом третья координата z является независимым параметром для построения линий уровня, поверхностей и т.д. См. раздел <a href="mathgl_ru_9.html#Ternary-plot-sample">Ternary plot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Ticks"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transformation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transformation-matrix" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041ce_0442_043a_0438-_043e_0441e_0439"></a>
+<h3 class="subsection">3.2.3 Метки осей</h3>
+
+<a name="index-SetTicks"></a>
+<a name="index-SetTicksVal"></a>
+<a name="index-SetTuneTicks"></a>
+<a name="index-AdjustTicks"></a>
+<a name="index-SetXTT"></a>
+<a name="index-SetYTT"></a>
+<a name="index-SetZTT"></a>
+<a name="index-SetCTT"></a>
+
+<dl>
+<dt><a name="index-AdjustTicks-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>AdjustTicks</b><i> (<code>const char *</code>dir=<code>&quot;xyz&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fadjust_005fticks"></a><u>Функция С:</u> <code>void</code> <b>mgl_adjust_ticks</b><i> (<code>HMGL</code> gr, <code>const char *</code>dir)</i></dt>
+<dd><p>Автоматически задает шаг меток осей, число подметок и начальное положение меток для осей координат <var>dir</var> в виде наиболее удобном для человека. Также задает <code>SetTuneTicks(true)</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTicks-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTicks</b><i> (<code>char</code> dir, <code>float</code> d=<code>-5</code>, <code>int</code> ns=<code>0</code>, <code>float</code> org=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fticks_005fdir"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_ticks_dir</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>float</code> d, <code>int</code> ns, <code>float</code> org)</i></dt>
+<dt><a name="index-mgl_005fset_005fticks"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_ticks</b><i> (<code>HMGL</code> gr, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz)</i></dt>
+<dt><a name="index-mgl_005fset_005fsubticks"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_subticks</b><i> (<code>HMGL</code> gr, <code>int</code> nx, <code>int</code> ny, <code>int</code> nz)</i></dt>
+<dt><a name="index-mgl_005fset_005ftick_005forigin"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_tick_origin</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0)</i></dt>
+<dd><p>Задает шаг меток осей <var>d</var>, число подметок <var>ns</var> и начальное положение меток <var>org</var> для оси вдоль направления <var>dir</var> (используйте &rsquo;c&rsquo; для меток colorbar). Переменная <var>d</var> задает шаг меток (если положительна) или их число на оси (если отрицательна). Нулевое значение задает логарифмические метки. Если <var>org</var>=<code>NAN</code>, то используется значение из переменной <var>Org</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTicksVal-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTicksVal</b><i> (<code>char</code> dir, <code>int</code> n, <code>float *</code>val, <code>const char **</code>lbl)</i></dt>
+<dt><a name="index-SetTicksVal-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTicksVal</b><i> (<code>char</code> dir, <code>int</code> n, <code>float *</code>val, <code>const wchar_t **</code>lbl)</i></dt>
+<dt><a name="index-SetTicksVal-3"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>SetTicksVal</b><i> (<code>char</code> dir, <code>int</code> n, <code>float</code> val1, <code>wchar_t *</code>lbl1, ...)</i></dt>
+<dt><a name="index-mgl_005fset_005fticks_005fvals"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_ticks_vals</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>int</code> n, <code>float *</code>val, <code>const char **</code>lbl)</i></dt>
+<dt><a name="index-mgl_005fset_005fticks_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_ticks_val</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>int</code> n, <code>double</code> val, <code>const char *</code>lbl, ...)</i></dt>
+<dd><p>Задает явное положение <var>val</var> и подписи <var>lbl</var> для <var>n</var> меток вдоль оси <var>dir</var>. Массивы <var>val</var> и <var>lbl</var> должны содержать <var>n</var> элементов. Используйте <code>SetTicks()</code> для восстановления автоматических меток. Вы должны быть <strong>очень осторожны</strong> и использовать числа с плавающей точкой (а <em>не целые!!!</em>) для положения меток &ndash; из-за ограничений передачи аргументов в библиотеке stdarg. См. раздел <a href="mathgl_ru_9.html#Manual-ticks-sample">Особые метки по осям</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTuneTicks-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTuneTicks</b><i> (<code>bool</code> tune, <code>float</code> pos=<code>1.15</code>)</i></dt>
+<dt><a name="index-mgl_005ftune_005fticks"></a><u>Функция С:</u> <code>void</code> <b>mgl_tune_ticks</b><i> (<code>HMGL</code> gr, <code>bool</code> tune, <code>float</code> pos)</i></dt>
+<dd><p>Включает/выключает улучшение вида меток осей путем вынесения общего множителя (для маленьких, типа 0.001...0.002, или больших, типа 1000...2000, значений координат) или общей компоненты (для узкого диапазона, типа 0.999...1.000). Также задает положение <var>pos</var> общего множителя на оси: =0 около минимального значения, =1 около максимального значения.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetXTT-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetXTT</b><i> (<code>const char *</code>xtt)</i></dt>
+<dt><a name="index-SetYTT-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetYTT</b><i> (<code>const char *</code>ytt)</i></dt>
+<dt><a name="index-SetZTT-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetZTT</b><i> (<code>const char *</code>ztt)</i></dt>
+<dt><a name="index-SetCTT-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCTT</b><i> (<code>const char *</code>ctt)</i></dt>
+<dt><a name="index-SetXTT-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetXTT</b><i> (<code>const wchar_t *</code>xtt)</i></dt>
+<dt><a name="index-SetYTT-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetYTT</b><i> (<code>const wchar_t *</code>ytt)</i></dt>
+<dt><a name="index-SetZTT-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetZTT</b><i> (<code>const wchar_t *</code>ztt)</i></dt>
+<dt><a name="index-SetCTT-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCTT</b><i> (<code>const wchar_t *</code>ctt)</i></dt>
+<dt><a name="index-mgl_005fset_005fxttw"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_xttw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>xtt)</i></dt>
+<dt><a name="index-mgl_005fset_005fyttw"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_yttw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ytt)</i></dt>
+<dt><a name="index-mgl_005fset_005fzttw"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_zttw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ztt)</i></dt>
+<dt><a name="index-mgl_005fset_005fcttw"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_cttw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ctt)</i></dt>
+<dt><a name="index-mgl_005fset_005fxtt"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_xtt</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>xtt)</i></dt>
+<dt><a name="index-mgl_005fset_005fytt"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_ytt</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ytt)</i></dt>
+<dt><a name="index-mgl_005fset_005fztt"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_ztt</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ztt)</i></dt>
+<dt><a name="index-mgl_005fset_005fctt"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_ctt</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ctt)</i></dt>
+<dd><p>Задает шаблоны для меток вдоль x-,y-,z-оси или colorbar. Шаблон может содержать и символы TeX. Если <var>xtt</var>, <var>ytt</var>, <var>ztt</var>, <var>ctt</var>=<code>&quot;&quot;</code>, то используется шаблон по умолчанию (в простейшем случае &lsquo;<samp>%.2g</samp>&rsquo;). Установка шаблона выключает автоматическое улучшение вида меток (См. <code>SetTuneTicks()</code>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-dx_002c-dy_002c-dz-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>float</code> <b>dx, dy, dz</b></dt>
+<dd><p>Шаг меток осей. См. <code>SetTicks()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-NSx_002c-NSy_002c-NSz-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>int</code> <b>NSx, NSy, NSz</b></dt>
+<dd><p>Число подметок. См. <code>SetTicks()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-OrgT-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>mglPoint</code> <b>OrgT</b></dt>
+<dd><p>Начальная точка для меток. См. <code>SetTicks()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TuneTicks-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>bool</code> <b>TuneTicks</b></dt>
+<dd><p>Флаг автоматического улучшения меток. См. <code>SetTuneTicks()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FactorPos-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>float</code> <b>FactorPos</b></dt>
+<dd><p>Положение общего множителя. См. <code>SetTuneTicks()</code>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Transformation-matrix"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ticks" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Export-to-file" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041c_0430_0442_0440_0438c_0430-_043f_0440e_043e_0431_0440_0430_0437_043e_0432_0430_043d_0438ya"></a>
+<h2 class="section">3.3 Матрица преобразования</h2>
+<a name="index-Aspect"></a>
+<a name="index-Rotate"></a>
+<a name="index-RotateN"></a>
+<a name="index-SubPlot"></a>
+<a name="index-InPlot"></a>
+<a name="index-Identity"></a>
+<a name="index-Perspective"></a>
+<a name="index-RestoreM"></a>
+<a name="index-View"></a>
+<a name="index-ColumnPlot"></a>
+
+<p>Эти функции контролируют где и как график будет расположен. Существует определенный порядок вызова этих функций для лучшего вида графика. Вначале должны вызываться функции SubPlot() или InPlot() для указания местоположения вывода. После них &ndash; функции вращения Rotate() и сжатия Aspect(). И наконец любые другие функции для рисования графика. Вместо вращения графика можно вызвать функцию ColumnPlot() для расположения графиков в столбец одного над другим без зазора между осями.
+</p>
+<dl>
+<dt><a name="index-SubPlot-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SubPlot</b><i> (<code>int</code> nx, <code>int</code> ny, <code>int</code> m, <code>float</code> dx=<code>0</code>, <code>float</code> dy=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fsubplot"></a><u>Функция С:</u> <code>void</code> <b>mgl_subplot</b><i> (<code>HMGL</code> gr, <code>int</code> nx, <code>int</code> ny, <code>int</code> m)</i></dt>
+<dt><a name="index-mgl_005fsubplot_005fd"></a><u>Функция С:</u> <code>void</code> <b>mgl_subplot_d</b><i> (<code>HMGL</code> gr, <code>int</code> nx, <code>int</code> ny, <code>int</code> m, <code>float</code> dx, <code>float</code> dy)</i></dt>
+<dd><p>Помещает последующий вывод в <var>m</var>-ую ячейку сетки размером <var>nx</var>*<var>ny</var> от всего рисунка. Функция сбрасывает матрицу трансформации (повороты и сжатие графика) и должна вызываться первой для создания &quot;подграфика&quot;. С эстетической точки зрения не рекомендуется вызывать эту функцию с различными (или не кратными) размерами сетки. Ячейка может быть дополнительно сдвинута относительно своего обычного положения на относительный размер <var>dx</var>, <var>dy</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SubPlot-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SubPlot</b><i> (<code>int</code> nx, <code>int</code> ny, <code>int</code> m, <code>const char *</code>style)</i></dt>
+<dt><a name="index-mgl_005fsubplot_005fs"></a><u>C function:</u> <code>void</code> <b>mgl_subplot_s</b><i> (<code>HMGL</code> gr, <code>int</code> nx, <code>int</code> ny, <code>int</code> m, <code>const char *</code>style)</i></dt>
+<dd><p>Аналогично предыдущему, но место для осей/colorbar резервируется только если строка <var>style</var> содержит: &lsquo;<samp>L</samp>&rsquo; или &lsquo;<samp>&lt;</samp>&rsquo; &ndash; с левого края, &lsquo;<samp>R</samp>&rsquo; или &lsquo;<samp>&gt;</samp>&rsquo; &ndash; с правого края, &lsquo;<samp>A</samp>&rsquo; или &lsquo;<samp>^</samp>&rsquo; &ndash; с верхнего края, &lsquo;<samp>U</samp>&rsquo; или &lsquo;<samp>_</samp>&rsquo; &ndash; с нижнего края.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-InPlot-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>InPlot</b><i> (<code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2, <code>bool</code> rel=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005finplot"></a><u>Функция С:</u> <code>void</code> <b>mgl_inplot</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2)</i></dt>
+<dt><a name="index-mgl_005frelplot"></a><u>Функция С:</u> <code>void</code> <b>mgl_relplot</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2)</i></dt>
+<dd><p>Помещает последующий вывод в прямоугольную область [<var>x1</var>, <var>x2</var>]*[<var>y1</var>, <var>y2</var>] (исходный размер [0,1]*[0,1]). Эта функция позволяет поместить график в произвольную область рисунка. Если параметр <var>rel</var>=<code>true</code>, то используется позиция относительно текщего SubPlot() (или InPlot() с <var>rel</var>=<code>false</code>). Функция сбрасывает матрицу трансформации (повороты и сжатие графика) и должна вызываться первой для создания &quot;подграфика&quot;.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ColumnPlot-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ColumnPlot</b><i> (<code>int</code> num, <code>int</code> ind, <code>float</code> d=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcolumnplot"></a><u>Функция С:</u> <code>void</code> <b>mgl_columnplot</b><i> (<code>HMGL</code> gr, <code>int</code> num, <code>int</code> ind)</i></dt>
+<dt><a name="index-mgl_005fcolumnplot-1"></a><u>Функция С:</u> <code>void</code> <b>mgl_columnplot</b><i> (<code>HMGL</code> gr, <code>int</code> num, <code>int</code> ind, <code>float</code> d)</i></dt>
+<dd><p>Помещает последующий вывод в <var>ind</var>-ую строку столбца из <var>num</var> строк. Положение столбца выбирается относительно последнего вызова SubPlot() (или InPlot() с <var>rel</var>=<code>false</code>). Параметр <var>d</var> задает дополнительный зазор между строк. См. раздел <a href="mathgl_ru_9.html#ColumnPlot-sample">ColumnPlot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-StickPlot"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>StickPlot</b><i> (<code>int</code> num, <code>int</code> ind, <code>float</code> tet, <code>float</code> phi)</i></dt>
+<dt><a name="index-mgl_005fstickplot"></a><u>C function:</u> <code>void</code> <b>mgl_stickplot</b><i> (<code>HMGL</code> gr, <code>int</code> num, <code>int</code> ind, <code>float</code> tet, <code>float</code> phi)</i></dt>
+<dd><p>Помещает последующий вывод в <var>ind</var>-ую ячейку &quot;бруска&quot; из <var>num</var> ячеек. При этом сам брусок повернут на углы <var>tet</var>, <var>phi</var>. Положение выбирается относительно последнего вызова SubPlot() (или InPlot() с <var>rel</var>=<code>false</code>). См. раздел <a href="mathgl_ru_9.html#StickPlot-sample">StickPlot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Rotate-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Rotate</b><i> (<code>float</code> TetX, <code>float</code> TetZ, <code>float</code> TetY=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005frotate"></a><u>Функция С:</u> <code>void</code> <b>mgl_rotate</b><i> (<code>HMGL</code> gr, <code>float</code> TetX, <code>float</code> TetZ, <code>float</code> TetY)</i></dt>
+<dd><p>Вращает систему координат относительно осей {x, z, y} последовательно на углы <var>TetX</var>, <var>TetZ</var>, <var>TetY</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-RotateN-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>RotateN</b><i> (<code>float</code> Tet, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dt><a name="index-mgl_005frotate_005fvector"></a><u>Функция С:</u> <code>void</code> <b>mgl_rotate_vector</b><i> (<code>HMGL</code> gr, <code>float Tet</code>, <code>float x</code>, <code>float y</code>, <code>float z</code>)</i></dt>
+<dd><p>Вращает систему координат относительно вектора {<var>x</var>, <var>y</var>, <var>z</var>} на угол <var>Tet</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Aspect-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Aspect</b><i> (<code>float</code> Ax, <code>float</code> Ay, <code>float</code> Az)</i></dt>
+<dt><a name="index-mgl_005faspect"></a><u>Функция С:</u> <code>void</code> <b>mgl_aspect</b><i> (<code>HMGL</code> gr, <code>float</code> Ax, <code>float</code> Ay, <code>float</code> Az)</i></dt>
+<dd><p>Устанавливает соотношение размеров осей в отношении <var>Ax:Ay:Az</var>. Для лучшего вида следует вызывать после функции Rotate().
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Perspective-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Perspective</b><i> (<code>float</code> a)</i></dt>
+<dt><a name="index-mgl_005fperspective"></a><u>Функция С:</u> <code>void</code> <b>mgl_perspective</b><i> (<code>HMGL</code> gr, <code>float</code> a)</i></dt>
+<dd><p>Добавляет (включает) перспективу для графика. Параметр <em>a ~ 1/z_eff \in [0,1)</em>. По умолчанию (<code>a=0</code>) перспектива отключена.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Identity-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Identity</b><i> (<code>bool</code> rel=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fidentity"></a><u>Функция С:</u> <code>void</code> <b>mgl_identity</b><i> (<code>HMGL</code> gr, <code>int</code> rel)</i></dt>
+<dd><p>Сбрасывает матрицу трансформации. Эквивалентно вызову <code>InPlot(0,1,0,1,rel)</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Push"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Push</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fmat_005fpush"></a><u>C function:</u> <code>void</code> <b>mgl_mat_push</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Помещает матрицу преобразования в стек. Позднее вы можете восстановить текущее состояние с помощью функции Pop(). Стек может содержать до 10 матриц.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Pop"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pop</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fmat_005fpop"></a><u>C function:</u> <code>void</code> <b>mgl_mat_pop</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Заменяет (восстанавливает) матрицу преобразования на последнюю помещенную в стек матрицу.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Export-to-file"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transformation-matrix" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Primitives-drawing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_042d_043a_0441_043f_043e_0440_0442-_0432-_0444_0430_0439_043b"></a>
+<h2 class="section">3.4 Экспорт в файл</h2>
+<a name="index-WriteFrame"></a>
+<a name="index-WritePNG"></a>
+<a name="index-WriteGIF"></a>
+<a name="index-WriteIDTF"></a>
+<a name="index-WriteSVG"></a>
+<a name="index-WriteBMP"></a>
+<a name="index-WriteEPS"></a>
+<a name="index-WriteJPEG"></a>
+<a name="index-SetSize"></a>
+<a name="index-Flush"></a>
+<a name="index-Finish"></a>
+<a name="index-ShowImage"></a>
+
+<p>Эти функции экспортируют текущую картинку (кадр) в файл. Имя файла <var>fname</var> должно иметь соответствующее расширение. Параметр <var>descr</var> дает краткое описание картинки. Пока прозрачность поддерживается только для форматов PNG, SVG и IDTF.
+</p>
+<dl>
+<dt><a name="index-WriteFrame-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteFrame</b><i> (<code>const char *</code>fname=<code>&quot;&quot;</code>, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fframe"></a><u>Функция С:</u> <code>void</code> <b>mgl_write_frame</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Экспортирует текущий кадр в файл <var>fname</var> с типом, определяемым по расширению. Параметр <var>descr</var> добавляет описание (может быть пустым). Если <var>fname</var> пустой, то используется имя &lsquo;<samp>frame####.jpg</samp>&rsquo;, где &lsquo;<samp>####</samp>&rsquo; &ndash; текущий номер кадра и имя &lsquo;<samp>frame</samp>&rsquo; определяется переменной <var>PlotId</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WritePNG-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WritePNG</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>, <code>int</code> compr=<code>&quot;&quot;</code>, <code>bool</code> alpha=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fpng"></a><u>Функция С:</u> <code>void</code> <b>mgl_write_png</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fpng_005fsolid"></a><u>Функция С:</u> <code>void</code> <b>mgl_write_png_solid</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Экспортирует текущий кадр в PNG файл. Параметры функции следующие: <var>fname</var> &ndash; имя файла, <var>descr</var> &ndash; описание файла, <var>alpha</var> &ndash; прозрачность фона.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteJPEG-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteJPEG</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fjpg"></a><u>Функция С:</u> <code>void</code> <b>mgl_write_jpg</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Экспортирует текущий кадр в JPEG файл. Параметры функции следующие: <var>fname</var> &ndash; имя файла, <var>descr</var> &ndash; описание файла. Если при компиляции MathGL не был определен флаг HAVE_JPEG, то экспорт в файл не производится.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteGIF-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteGIF</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fgif"></a><u>Функция С:</u> <code>void</code> <b>mgl_write_gif</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Экспортирует текущий кадр в GIF файл. Параметры функции следующие: <var>fname</var> &ndash; имя файла, <var>descr</var> &ndash; описание файла. Если при компиляции MathGL не был определен флаг HAVE_GIF, то экспорт в файл не производится.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteBMP-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteBMP</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fbmp"></a><u>Функция С:</u> <code>void</code> <b>mgl_write_bmp</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Экспортирует текущий кадр в BMP файл. Параметры функции следующие: <var>fname</var> &ndash; имя файла, <var>descr</var> &ndash; описание файла.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteEPS-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteEPS</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005feps"></a><u>Функция С:</u> <code>void</code> <b>mgl_write_eps</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Экспортирует текущий кадр в EPS файл, используя векторное представление графика (класс mglGraphPS). Вследствие чего не рекомендуется сохранять большие графики (поверхности, а особенно поверхности уровня) в формате EPS из-за большого размера файла. Хотя никаких внутренних ограничений на размер выходного файла нет. Для них лучше использовать растровый формат (например, PNG или JPEG). Параметры функции следующие: <var>fname</var> &ndash; имя файла, <var>descr</var> &ndash; описание файла. Если имя файла оканчивается на &lsquo;<samp>z</samp>&rsquo; (например, &lsquo;<samp>fname.eps.gz</samp>&rsquo;), то файл автоматически архивируется в формате gzip.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteSVG-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteSVG</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fsvg"></a><u>Функция С:</u> <code>void</code> <b>mgl_write_svg</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Экспортирует текущий кадр в SVG файл, используя векторное представление графика (класс mglGraphPS). Вследствие чего не рекомендуется сохранять большие графики (поверхности, а особенно поверхности уровня) в формате SVG из-за большого размера файла. Хотя никаких внутренних ограничений на размер выходного файла нет. Для них лучше использовать растровый формат (например, PNG или JPEG). Параметры функции следующие: <var>fname</var> &ndash; имя файла, <var>descr</var> &ndash; описание файла. Если имя файла оканчивается на &lsquo;<samp>z</samp>&rsquo; (например, &lsquo;<samp>fname.svgz</samp>&rsquo;), то файл автоматически архивируется в формате gzip.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteIDTF-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteIDTF</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fidtf"></a><u>Функция С:</u> <code>void</code> <b>mgl_write_idtf</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Экспортирует текущий кадр в IDTF файл, используя векторное представление графика (класс mglGraphIDTF). Параметры функции следующие: <var>fname</var> &ndash; имя файла, <var>descr</var> &ndash; описание файла.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ShowImage-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ShowImage</b><i> (<code>const char *</code>viewer=<code>&quot;kuickshow&quot;</code>, <code>bool</code> nowait=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fshow_005fimage"></a><u>Функция С:</u> <code>void</code> <b>mgl_show_image</b><i> (<code>const char *</code>viewer, <code>int</code> nowait)</i></dt>
+<dd><p>Отображает текущий кадр используя внешнюю программу просмотра <var>viewer</var>. Функция сохраняет картинку во временный файл и вызывает <var>viewer</var> для его отображения. Если <var>nowait</var>=<code>true</code>, то функция возвращает управление немедленно &ndash; не ждет пока окно просмотра будет закрыто.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetSize-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetSize</b><i> (<code>int</code> width, <code>int</code> height)</i></dt>
+<dt><a name="index-mgl_005fset_005fsize"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_size</b><i> (<code>HMGL</code> gr, <code>int</code> width, <code>int</code> height)</i></dt>
+<dd><p>Изменяет размер картинки в пикселях. Функция должна вызываться <strong>перед</strong> любыми функциями построения потому что полностью очищает содержимое рисунка.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Flush-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flush</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fflush"></a><u>Функция С:</u> <code>void</code> <b>mgl_flush</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Завершает рисование текущих графических команд, подготавливает кадр к экспорту в файл и служит для разделения объектов в mglGraphIDTF. Однако обычно данная функция вызывается внутри библиотеки.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Finish-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Finish</b><i> ()</i></dt>
+<dd><p>Завершает рисование и готовит растровое изображение.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Primitives-drawing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Export-to-file" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0420_0438_0441_043e_0432_0430_043d_0438e-_043f_0440_0438_043c_0438_0442_0438_0432_043e_0432-1"></a>
+<h2 class="section">3.5 Рисование примитивов</h2>
+<a name="index-Ball"></a>
+<a name="index-Clf"></a>
+<a name="index-Line"></a>
+<a name="index-Curve"></a>
+<a name="index-Glyph"></a>
+<a name="index-Mark"></a>
+<a name="index-Error"></a>
+<a name="index-Face"></a>
+<a name="index-FaceX"></a>
+<a name="index-FaceY"></a>
+<a name="index-FaceZ"></a>
+<a name="index-Cone"></a>
+<a name="index-Drop"></a>
+<a name="index-Sphere"></a>
+
+<p>Эти функции рисуют рисуют простые объекты типа линий, точек, сфер, капель, конусов, и т.д.
+</p>
+<dl>
+<dt><a name="index-Clf-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Clf</b><i> (<code>mglColor</code> Back=<code>WC</code>)</i></dt>
+<dt><a name="index-mgl_005fclf"></a><u>Функция С:</u> <code>void</code> <b>mgl_clf</b><i> (<code>HMGL</code> gr)</i></dt>
+<dt><a name="index-mgl_005fclf_005frgb"></a><u>Функция С:</u> <code>void</code> <b>mgl_clf_rgb</b><i> (<code>HMGL</code> gr, <code>float</code> r, <code>float</code> g, <code>float</code> b)</i></dt>
+<dd><p>Очищает рисунок и заполняет его цветом <var>Back</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Ball-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Ball</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>mglColor</code> col=<code>RC</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-Ball-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Ball</b><i> (<code>mglPoint</code> p, <code>char</code> col=<code>'r'</code>)</i></dt>
+<dt><a name="index-Ball-3"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Ball</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> col=<code>'r'</code>)</i></dt>
+<dt><a name="index-mgl_005fball"></a><u>Функция С:</u> <code>void</code> <b>mgl_ball</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dt><a name="index-mgl_005fball_005frgb"></a><u>Функция С:</u> <code>void</code> <b>mgl_ball_rgb</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> r, <code>float</code> g, <code>float</code> b, <code>float</code> alpha)</i></dt>
+<dt><a name="index-mgl_005fball_005fstr"></a><u>Функция С:</u> <code>void</code> <b>mgl_ball_str</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> col)</i></dt>
+<dd><p>Рисует точку (шарик) с координатами <var>p</var>={<var>x</var>, <var>y</var>, <var>z</var>} и цветом <var>col</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Error-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Error</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> e, <code>char</code> *pen=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Рисует 3d error box в точке <var>p</var> размером <var>e</var> и стилем <var>pen</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Line-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Line</b><i> (<code>mglPoint</code> p1, <code>mglPoint</code> p2, <code>char *</code>stl=<code>&quot;B&quot;</code>, <code>int</code>num=<code>2</code>)</i></dt>
+<dt><a name="index-Line-2"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Line</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>char *</code>stl=<code>&quot;B&quot;</code>, <code>int</code>num=<code>2</code>)</i></dt>
+<dt><a name="index-mgl_005fline"></a><u>Функция С:</u> <code>void</code> <b>mgl_line</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>char *</code>stl, <code>int</code>num)</i></dt>
+<dd><p>Рисует геодезическую линию (декартовых координатах &ndash; прямую) из точки <var>p1</var> в <var>p2</var> использую стиль линии <var>stl</var>. Параметр <var>num</var> определяет гладкость линии (число точек на линии). Если <var>num</var>=<code>2</code>, то рисуется прямая даже в криволинейных координатах. Наоборот, для больших значений (например, =<code>100</code>) рисуется геодезическая линия (окружность в полярных координатах, парабола в параболических и т.д.). Линия рисуется даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Curve-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Curve</b><i> (<code>mglPoint</code> p1, <code>mglPoint</code> d1, <code>mglPoint</code> p2, <code>mglPoint</code> d2, <code>const char *</code>stl=<code>&quot;B&quot;</code>, <code>int</code> num=<code>100</code>)</i></dt>
+<dt><a name="index-Curve-2"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Curve</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> dx1, <code>float</code> dy1, <code>float</code> dz1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>float</code> dx2, <code>float</code> dy2, <code>float</code> dz2, <code>const char *</code>stl=<code>&quot;B&quot;</code>, <code>int</code> num=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005fcurve"></a><u>Функция С:</u> <code>void</code> <b>mgl_curve</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> dx1, <code>float</code> dy1, <code>float</code> dz1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>float</code> dx2, <code>float</code> dy2, <code>float</code> dz2, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Рисует кривую Безье из точки <var>p1</var> в <var>p2</var> используя стиль линии <var>stl</var>. Касательные в точках пропорциональны <var>d1</var>, <var>d2</var>. Параметр <var>num</var> определяет гладкость линии (число точек на линии). Кривая рисуется даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Face-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Face</b><i> (<code>mglPoint</code> p1, <code>mglPoint</code> p2, <code>mglPoint</code> p3, <code>mglPoint</code> p4, <code>const char *</code>stl=<code>&quot;w&quot;</code>, <code>int</code> num=<code>2</code>, <code>float</code> val=<code>NAN</code>)</i></dt>
+<dd><p>Рисует заполненный четырехугольник (грань) с углами в точках <var>p1</var>, <var>p2</var>, <var>p3</var>, <var>p4</var> и цветом(-ами) <var>stl</var>. При этом цвет может быть один для всей грани, или различным если указаны все 4 цвета. В последнем случае параметр <var>val</var> (если не <code>NAN</code>) задает цвет в соответствии с цветовой схемой. Грань будет нарисована даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FaceX-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>FaceX</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wy, <code>float</code> wz, <code>const char *</code>stl=<code>&quot;w&quot;</code>, <code>float</code> dx=<code>0</code>, <code>float</code> dy=<code>0</code>)</i></dt>
+<dt><a name="index-FaceY-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>FaceY</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wx, <code>float</code> wz, <code>const char *</code>stl=<code>&quot;w&quot;</code>, <code>float</code> dx=<code>0</code>, <code>float</code> dy=<code>0</code>)</i></dt>
+<dt><a name="index-FaceZ-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>FaceZ</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wx, <code>float</code> wy, <code>const char *</code>stl=<code>&quot;w&quot;</code>, <code>float</code> dx=<code>0</code>, <code>float</code> dy=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005ffacex"></a><u>Функция С:</u> <code>void</code> <b>mgl_facex</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wy, <code>float</code> wz, <code>const char *</code>stl, <code>float</code> d1, <code>float</code> d2)</i></dt>
+<dt><a name="index-mgl_005ffacey"></a><u>Функция С:</u> <code>void</code> <b>mgl_facey</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wx, <code>float</code> wz, <code>const char *</code>stl, <code>float</code> d1, <code>float</code> d2)</i></dt>
+<dt><a name="index-mgl_005ffacez"></a><u>Функция С:</u> <code>void</code> <b>mgl_facez</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wx, <code>float</code> wy, <code>const char *</code>stl, <code>float</code> d1, <code>float</code> d2)</i></dt>
+<dd><p>Рисует закрашенный прямоугольник (грань) перпендикулярно оси [x,y,z] в точке {<var>x0</var>, <var>y0</var>, <var>z0</var>} цветом <var>stl</var> и шириной <var>wx</var>, <var>wy</var>, <var>wz</var> вдоль соответствующего направления. При этом цвет может быть один для всей грани, или различным для разных вершин если указаны все 4 цвета. Параметры <var>d1</var>!=0, <var>d2</var>!=0 задают дополнительный сдвиг последней точки (т.е. рисуют четырехугольник).Грань будет нарисована даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Sphere-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Sphere</b><i> (<code>mglPoint</code> p, <code>float</code> r, <code>const char *</code>stl=<code>&quot;r&quot;</code>)</i></dt>
+<dt><a name="index-Sphere-2"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Sphere</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> r, <code>const char *</code>stl=<code>&quot;r&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsphere"></a><u>Функция С:</u> <code>void</code> <b>mgl_sphere</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> r, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует сферу радиуса <var>r</var> с центром в точке <var>p</var>={<var>x</var>, <var>y</var>, <var>z</var>} цветом <var>stl</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Drop-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Drop</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> q, <code>float</code> r, <code>mglColor</code> col, <code>float</code> shift=<code>1</code>, <code>float</code> ap=<code>1</code>)</i></dt>
+<dt><a name="index-Drop-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Drop</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> q, <code>float</code> r, <code>const char *</code>col=&quot;r&quot;, <code>float</code> shift=<code>1</code>, <code>float</code> ap=<code>1</code>)</i></dt>
+<dt><a name="index-Drop-3"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Drop</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>float</code> r, <code>const char *</code>col=&quot;r&quot;, <code>float</code> shift=<code>1</code>, <code>float</code> ap=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdrop"></a><u>Функция С:</u> <code>void</code> <b>mgl_drop</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>float</code> r, <code>const char *</code>col, <code>float</code> shift, <code>float</code> ap)</i></dt>
+<dd><p>Рисует каплю радиуса <var>r</var> в точке <var>p</var> вытянутую вдоль направления <var>q</var> цветом <var>col</var>. Параметр <var>shift</var> определяет степень вытянутости: &lsquo;<samp>0</samp>&rsquo; &ndash; сфера, &lsquo;<samp>1</samp>&rsquo; &ndash; классическая капля. Параметр <var>ap</var> определяет относительную ширину капли (аналог &quot;эллиптичности&quot; для сферы). См. раздел <a href="mathgl_ru_9.html#Drops-sample">Drops &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cone-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Cone</b><i> (<code>mglPoint</code> p1, <code>mglPoint</code> p2, <code>float</code> r1, <code>float</code> r2=<code>-1</code>, <code>const char *</code>stl=<code>&quot;B&quot;</code>, <code>bool</code> edge=<code>false</code>)</i></dt>
+<dt><a name="index-Cone-2"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Cone</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>float</code> r1, <code>float</code> r2=<code>-1</code>, <code>const char *</code>stl=<code>&quot;B&quot;</code>, <code>bool</code> edge=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fcone"></a><u>Функция С:</u> <code>void</code> <b>mgl_cone</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>float</code> r1, <code>float</code> r2, <code>const char *</code>stl, <code>int</code> draw_edge)</i></dt>
+<dd><p>Рисует трубу (или усеченный конус если <var>edge</var>=<code>false</code>) между точками <var>p1</var>, <var>p2</var> с радиусами на концах <var>r1</var>, <var>r2</var>. Если <var>r2</var>&lt;0, то полагается <var>r2</var>=<var>r1</var>. Цвет конуса задается строкой <var>stl</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Mark-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Mark</b><i> (<code>mglPoint</code> p, <code>char</code> mark=<code>'.'</code>)</i></dt>
+<dt><a name="index-Mark-2"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Mark</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> mark=<code>'.'</code>)</i></dt>
+<dt><a name="index-mgl_005fmark"></a><u>Функция С:</u> <code>void</code> <b>mgl_mark</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> mark)</i></dt>
+<dd><p>Рисует маркер типа <var>mark</var> в точке <var>p</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Glyph-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Glyph</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> f, <code>int</code> nt, <code>const short *</code>trig, <code>int</code> nl, <code>const short *</code>line)</i></dt>
+<dd><p>Рисует набор треугольников (или линий если <var>trig</var>=<code>NULL</code>) для буквы расположенной в точке {<var>x</var>, <var>y</var>}. Значения массивов будут нормированы на множитель <var>f</var>. Обычно эта функция используется внутри библиотеки.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Text-printing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Primitives-drawing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-Colorbar" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0412_044b_0432_043e_0434-_0442e_043a_0441_0442_0430"></a>
+<h2 class="section">3.6 Вывод текста</h2>
+<a name="index-Puts"></a>
+<a name="index-Putsw"></a>
+<a name="index-Text"></a>
+<a name="index-Title"></a>
+
+<p>Функции для вывода текста позволяют вывести строку текста в произвольном месте рисунка, в произвольном направлении и вдоль произвольной кривой. Для низкоуровневого вывода и разбора ТеХ-их выражений используется класс mglFont (see section <a href="mathgl_ru_7.html#mglFont-class">mglFont class</a>). Он позволяет использовать произвольное начертание шрифта и многие ТеХ-ие команды (детальнее see section <a href="mathgl_ru_1.html#Font-styles">Стиль текста</a>). Все функции вывода текста имеют варианты для 8-bit строк (<code>char *</code>) и для Unicode строк (<code>wchar_t *</code>). В первом случае используется конверсия из текущей локали, т.е. иногда вам требуется явно указать локаль с помощью функции <code>setlocale()</code>. Аргумент <var>size</var> определяет размер текста: размер шрифта если положителен или относительный размер (=-<var>size</var>*<var>FontSize</var>) если отрицателен. Начертание шрифта (STIX, arial, courier, times и др) можно изменить с помощью функций SetFont(), GetFont(). See section <a href="#Font-settings">Шрифты</a>.
+</p>
+<p>Параметры шрифта задаются строкой, которая может содержать символы стиля (&lsquo;<samp>rbiwou</samp>&rsquo;) и/или выравнивания (&lsquo;<samp>LRC</samp>&rsquo;). Также строка может содержать символы цвета &lsquo;<samp>wkrgbcymhRGBCYMHW</samp>&rsquo; (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>) после символа &lsquo;<samp>:</samp>&rsquo;. Стили шрифта: &lsquo;<samp>r</samp>&rsquo; &ndash; прямой, &lsquo;<samp>i</samp>&rsquo; &ndash; курсив, &lsquo;<samp>b</samp>&rsquo; &ndash; жирный, &lsquo;<samp>w</samp>&rsquo; &ndash; контурный, &lsquo;<samp>o</samp>&rsquo; &ndash; надчеркнутый, &lsquo;<samp>u</samp>&rsquo; &ndash; подчеркнутый. По умолчанию используется прямой шрифт. Типы выравнивания: &lsquo;<samp>L</samp>&rsquo; &ndash; по левому краю (по умолчанию), &lsquo;<samp>C</samp>&rsquo; &ndash; по центру, &lsquo;<samp>R</samp>&rsquo; &ndash; по правому краю. Например, строка &lsquo;<samp>iC:b</samp>&rsquo; соответствует курсиву синего цвета с выравниванием по центру.
+</p>
+<p>Если строка содержит символы &lsquo;<samp>aA</samp>&rsquo;, то текст выводится в абсолютных координатах (полагаются в диапазоне [0,1]). При этом используются координаты относительно рисунка (если указано &lsquo;<samp>A</samp>&rsquo;) или относительно последнего SubPlot()/InPlot() (если указано &lsquo;<samp>a</samp>&rsquo;).
+</p>
+<dl>
+<dt><a name="index-Puts-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Puts</b><i> (<code>mglPoint</code> p, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>, <code>char</code> dir=<code>0</code>, <code>float</code> shift=<code>0</code>)</i></dt>
+<dt><a name="index-Putsw-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Putsw</b><i> (<code>mglPoint</code> p, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>, <code>char</code> dir=<code>0</code>, <code>float</code> shift=<code>0</code>)</i></dt>
+<dt><a name="index-Puts-2"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Puts</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>, <code>char</code> dir=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fputs"></a><u>Функция С:</u> <code>void</code> <b>mgl_puts</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const char *</code>text)</i></dt>
+<dt><a name="index-mgl_005fputsw"></a><u>Функция С:</u> <code>void</code> <b>mgl_putsw</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const wchar_t *</code>text)</i></dt>
+<dt><a name="index-mgl_005fputs_005fext"></a><u>Функция С:</u> <code>void</code> <b>mgl_puts_ext</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const char *</code>text, <code>const char *</code>font, <code>float</code> size, <code>char</code> dir)</i></dt>
+<dt><a name="index-mgl_005fputsw_005fext"></a><u>Функция С:</u> <code>void</code> <b>mgl_putsw_ext</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const wchar_t *</code>text, <code>const char *</code>font, <code>float</code> size, <code>char</code> dir)</i></dt>
+<dd><p>Выводит строку <var>text</var> от точки <var>p</var> шрифтом определяемым строкой <var>how</var>. Параметр <var>dir</var> указывает дополнительное выравнивание строки: &lsquo;<samp>x</samp>&rsquo; &ndash; как метку вдоль оси x, &lsquo;<samp>y</samp>&rsquo; &ndash; как метку вдоль оси y, &lsquo;<samp>z</samp>&rsquo; &ndash; как метку вдоль оси z, &lsquo;<samp>i</samp>&rsquo; &ndash; как метку вдоль оси x с инвертированием, &lsquo;<samp>t</samp>&rsquo; &ndash; без выравнивания (по умолчанию), &lsquo;<samp>n</samp>&rsquo; &ndash; выровнять в плоскости x-y.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Puts-3"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>float</code> <b>Puts</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> l, <code>const char *</code>text, <code>char</code>where=<code>'t'</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-Putsw-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>float</code> <b>Putsw</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> l, <code>const wchar_t *</code>text, <code>char</code>where=<code>'t'</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-Puts-4"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Puts</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>const char *</code>text, <code>char</code>where=<code>'t'</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fputs_005fdir"></a><u>Функция С:</u> <code>void</code> <b>mgl_puts_dir</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>const char *</code>text, <code>float</code> size)</i></dt>
+<dt><a name="index-mgl_005fputsw_005fdir"></a><u>Функция С:</u> <code>void</code> <b>mgl_putsw_dir</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>const wchar_t *</code>text, <code>float</code> size)</i></dt>
+<dd><p>Выводит строку <var>text</var> от точки <var>p</var> вдоль направления <var>l</var>. Параметр <var>where</var> указывает выводить текст над линией (&lsquo;<samp>T</samp>&rsquo;) или под ней (&lsquo;<samp>t</samp>&rsquo;). Функция возвращает ширину строки.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Printf"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Printf</b><i> (<code>mglPoint</code> p, <code>const char *</code>arg, ...)</i></dt>
+<dd><p>Выводит форматированную строку от точки <var>p</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Label"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Label</b><i> (<code>float</code> x, <code>float</code> y, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-Labelw"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Labelw</b><i> (<code>float</code> x, <code>float</code> y, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005flabel_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_label_xy</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>const char *</code>text, <code>const char *</code>font, <code>float</code> size)</i></dt>
+<dt><a name="index-mgl_005flabelw_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_labelw_xy</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>const wchar_t *</code>text, <code>const char *</code>font, <code>float</code> size)</i></dt>
+<dd><p>Выводит строку <var>text</var> в произвольном месте экрана от точки {<var>x</var>, <var>y</var>} шрифтом указанным <var>font</var>. Координаты <code>x, y</code> считаются лежащими в диапазоне [0,1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Title-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Title</b><i> (<code>const char *</code>text, <code>const char *</code>font=<code>0</code>, <code>float</code> size=<code>-2</code>)</i></dt>
+<dt><a name="index-Title-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Title</b><i> (<code>const wchar_t *</code>text, <code>const char *</code>font=<code>0</code>, <code>float</code> size=<code>-2</code>)</i></dt>
+<dt><a name="index-Title-3"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Title</b><i> (<code>const char *</code>text, <code>const char *</code>font=<code>0</code>, <code>int</code> size=<code>-2</code>)</i></dt>
+<dt><a name="index-mgl_005ftitle"></a><u>Функция С:</u> <code>void</code> <b>mgl_title</b><i> (<code>HMGL</code> gr, <code>const char *</code>text, <code>const char *</code>font, <code>int</code> size)</i></dt>
+<dt><a name="index-mgl_005ftitlew"></a><u>Функция С:</u> <code>void</code> <b>mgl_titlew</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>text, <code>const char *</code>font, <code>int</code> size)</i></dt>
+<dd><p>Выводит строку <var>text</var> как заголовок рисунка (по верху рисунка). Может использоваться из любого места (даже изнутри SubPlot()).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Text-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>y, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-4"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-5"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-6"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005ftext_005fy"></a><u>Функция С:</u> <code>void</code> <b>mgl_text_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>text, <code>const char *</code>font, float size)</i></dt>
+<dt><a name="index-mgl_005ftext_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_text_xy</b><i> (<code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>text, <code>const char *</code>font, float size)</i></dt>
+<dt><a name="index-mgl_005ftext_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_text_xyz</b><i> (<code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>text, <code>const char *</code>font, float size)</i></dt>
+<dd><p>Выводит строку <var>text</var> вдоль кривой {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} шрифтом <var>font</var>. Строка <var>font</var> может содержать символы: &lsquo;<samp>t</samp>&rsquo; для вывода текста под кривой (по умолчанию), или &lsquo;<samp>T</samp>&rsquo; для вывода текста над кривой. Размеры по 1-ой размерности должны быть одинаковы для всех массивов <code>x.nx=y.nx=z.nx</code>. Если массив <var>x</var> не указан, то используется &quot;автоматический&quot; массив со значениями в диапазоне [<var>Min</var>.x, <var>Max</var>.x] (see section <a href="#Ranges-_0028bounding-box_0029">Масштаб осей координат</a>). Если массив <var>z</var> не указан, то используется <var>z</var>[i] = <var>zVal</var>. См. раздел <a href="mathgl_ru_9.html#Text-sample">Text &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axis-and-Colorbar"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_0438-_0438-Colorbar"></a>
+<h2 class="section">3.7 Оси и Colorbar</h2>
+<a name="index-Axis-2"></a>
+<a name="index-Box"></a>
+<a name="index-Grid"></a>
+<a name="index-Colorbar"></a>
+<a name="index-Label-1"></a>
+
+<p>Эти функции рисуют объекты для &quot;измерения&quot; типа осей координат, цветовой таблицы (colorbar), сетку по осям, обрамляющий параллелепипед и подписи по осям координат. См. также see section <a href="#Axis-settings">Настройки осей координат</a>.
+</p>
+<dl>
+<dt><a name="index-Axis-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axis</b><i> (<code>const char *</code>dir=<code>&quot;xyz&quot;</code>, <code>bool</code> adjust=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005faxis"></a><u>Функция С:</u> <code>void</code> <b>mgl_axis</b><i> (<code>HMGL</code> gr, <code>const char *</code>dir)</i></dt>
+<dd><p>Рисует оси координат и метки на них (see section <a href="#Axis-settings">Настройки осей координат</a>) в направлениях, указанных строкой <var>dir</var>. Если строка содержит символ &lsquo;<samp>_</samp>&rsquo;, то подписи меток отображаться не будут. Шрифт подписей определяется функцией <code>SetFontDef()</code> (see section <a href="#Font-settings">Шрифты</a>). Метки будут &quot;подогнаны&quot; если <var>adjust</var>=<code>true</code> (с помощью вызова функции <code>AdjustTicks()</code>). 
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Colorbar-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Colorbar</b><i> (<code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> pos=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcolorbar"></a><u>Функция С:</u> <code>void</code> <b>mgl_colorbar</b><i> (<code>HMGL</code> gr, <code>const char *</code>sch, <code>int</code> pos)</i></dt>
+<dd><p>Рисует полосу соответствия цвета и числовых значений (colorbar) для цветовой схемы <var>sch</var> (используется текущая для <code>sch=&quot;&quot;</code>) с краю от графика. Параметр <var>pos</var> задает местоположение: &lsquo;<samp>0</samp>&rsquo; - справа (по умолчанию), &lsquo;<samp>1</samp>&rsquo; - слева, &lsquo;<samp>2</samp>&rsquo; - сверху, &lsquo;<samp>3</samp>&rsquo; - снизу. Если строка <var>sch</var> содержит &lsquo;<samp>&lt;&gt;^_</samp>&rsquo;, то параметр <var>pos</var> определяется как: <code>pos=0</code> для &lsquo;<samp>&gt;</samp>&rsquo; (справа), <code>pos=1</code> для &lsquo;<samp>&lt;</samp>&rsquo; (слева), <code>pos=2</code> для &lsquo;<samp>^</samp>&rsquo; (сверху), <code>pos=3</code> для &lsquo;<samp>_</samp>&rsquo; (снизу). Если строка содержит &lsquo;<samp>A</samp>&rsquo;, то используются абсолютные координаты (относительно рисунка). См. раздел <a href="mathgl_ru_9.html#Dens-sample">Dens &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Colorbar-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Colorbar</b><i> (<code>const mglData &amp;</code>v, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> where=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcolorbar_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_colorbar_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const char *</code>sch, <code>int</code> where)</i></dt>
+<dd><p>Аналогично предыдущему, но для цветовой схемы без сглаживания с заданными значениями <var>v</var>. См. раздел <a href="mathgl_ru_9.html#ContD-sample">ContD &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Colorbar-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Colorbar</b><i> (<code>const char *</code>sch, <code>int</code> where, <code>float</code> x, <code>float</code> y, <code>float</code> w, <code>float</code> h)</i></dt>
+<dt><a name="index-Colorbar-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Colorbar</b><i> (<code>int</code> where, <code>float</code> x, <code>float</code> y, <code>float</code> w, <code>float</code> h)</i></dt>
+<dt><a name="index-mgl_005fcolorbar_005fext"></a><u>Функция С:</u> <code>void</code> <b>mgl_colorbar_ext</b><i> (<code>HMGL</code> gr, <code>const char *</code>sch, <code>int</code> where, <code>float</code> x, <code>float</code> y, <code>float</code> w, <code>float</code> h)</i></dt>
+<dd><p>Аналогично первому, но в произвольном месте графика {<var>x</var>, <var>y</var>} (полагаются в диапазоне [0,1]). Параметры <var>w</var>, <var>h</var> задают относительную ширину и высоту colorbar.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Colorbar-5"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Colorbar</b><i> (<code>const mglData &amp;</code>v, <code>const char *</code>sch, <code>int</code> where, <code>float</code> x, <code>float</code> y, <code>float</code> w, <code>float</code> h)</i></dt>
+<dd><p>Аналогично предыдущему, но для цветовой схемы без сглаживания с заданными значениями <var>v</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Grid-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid</b><i> (<code>const char *</code>dir=<code>&quot;xyz&quot;</code>, <code>const char *</code>pen=<code>&quot;B-&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005faxis_005fgrid"></a><u>Функция С:</u> <code>void</code> <b>mgl_axis_grid</b><i> (<code>HMGL</code> gr, <code>const char *</code>dir, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует линии сетки в направлениях перпендикулярным <var>dir</var>. Шаг сетки такой же как у меток осей координат. Стиль линий задается параметром <var>pen</var> (по умолчанию &ndash; сплошная темно синяя линия &lsquo;<samp>B-</samp>&rsquo;).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Box-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Box</b><i> (<code>const char *</code>col=<code>&quot;&quot;</code>, <code>bool</code> ticks=<code>true</code>)</i></dt>
+<dt><a name="index-Box-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Box</b><i> (<code>mglColor</code> col, <code>bool</code> ticks=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fbox"></a><u>Функция С:</u> <code>void</code> <b>mgl_box</b><i> (<code>HMGL</code> gr, <code>int</code> ticks)</i></dt>
+<dt><a name="index-mgl_005fbox_005frgb"></a><u>Функция С:</u> <code>void</code> <b>mgl_box_rgb</b><i> (<code>HMGL</code> gr, <code>float</code> r, <code>float</code> g, <code>float</code> b, <code>int</code> ticks)</i></dt>
+<dt><a name="index-mgl_005fbox_005fstr"></a><u>Функция С:</u> <code>void</code> <b>mgl_box_str</b><i> (<code>HMGL</code> gr, <code>const char *</code>col, <code>int</code> ticks)</i></dt>
+<dd><p>Рисует ограничивающий параллелепипед цветом <var>col</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Label-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Label</b><i> (<code>char</code> dir, <code>const char *</code>text, <code>float</code> pos=<code>0</code>, <code>float</code> size=<code>-1.4</code>, <code>float</code> shift=<code>0</code>)</i></dt>
+<dt><a name="index-Label-3"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Label</b><i> (<code>char</code> dir, <code>const wchar_t *</code>text, <code>float</code> pos=<code>0</code>, <code>float</code> size=<code>-1.4</code>, <code>float</code> shift=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005flabel"></a><u>Функция С:</u> <code>void</code> <b>mgl_label</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>const char *</code>text)</i></dt>
+<dt><a name="index-mgl_005flabel_005fext"></a><u>Функция С:</u> <code>void</code> <b>mgl_label_ext</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>const char *</code>text, <code>float</code> pos, <code>float</code> size, <code>float</code> shift)</i></dt>
+<dt><a name="index-mgl_005flabelw_005fext"></a><u>Функция С:</u> <code>void</code> <b>mgl_labelw_ext</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>const wchar_t *</code>text, <code>float</code> pos, <code>float</code> size, <code>float</code> shift)</i></dt>
+<dd><p>Выводит подпись <var>text</var> для оси <var>dir</var>=&lsquo;<samp>x</samp>&rsquo;,&lsquo;<samp>y</samp>&rsquo;,&lsquo;<samp>z</samp>&rsquo;,&lsquo;<samp>t</samp>&rsquo; (где &lsquo;<samp>t</samp>&rsquo; &ndash; &ldquo;тернарная&rdquo; ось <em>t=1-x-y</em>). Параметр <var>pos</var> задает положение подписи: при <var>pos</var>=0 &ndash; по центру оси, при <var>pos</var>&gt;0 &ndash; около максимальных значений, при <var>pos</var>&lt;0 &ndash; около минимальных значений. Параметр <var>size</var> задает размер шрифта (по умолчанию в 1.4 раза больше чем у меток, see section <a href="#Font-settings">Шрифты</a>). See section <a href="#Text-printing">Вывод текста</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Legend"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-Colorbar" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041bege_043d_0434_0430"></a>
+<h2 class="section">3.8 Легенда</h2>
+<a name="index-Legend"></a>
+<a name="index-AddLegend"></a>
+<a name="index-ClearLegend"></a>
+<a name="index-SetLegendBox"></a>
+<a name="index-SetLegendMarks"></a>
+
+<p>Эти функции обеспечивают рисование легенды графика (полезно для <a href="#g_t1D-plotting">1D графики</a>). Запись в легенде состоит из двух строк: одна для стиля линии и маркеров, другая с текстом описания (с включенным разбором TeX-их команд). Можно использовать непосредственно массивы строк, или накопление во внутренние массивы с помощью функции AddLegend() с последующим отображением. Положение легенды можно задать автоматически или вручную. Параметры <var>font</var> и <var>size</var> задают стиль и размер шрифта (see section <a href="#Font-settings">Шрифты</a>). Параметр <var>llen</var> задает относительную ширину примера линии. Ели стиль линии пустой, то соответствующий текст печатается без отступа. Если строка <var>font</var> содержит символ &lsquo;<samp>A</samp>&rsquo;, то координаты легенды считаются относительно картинки (а не текущего subplot). См. раздел <a href="mathgl_ru_9.html#Legend-sample">Legend &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Legend-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Legend</b><i> (<code>int</code> where=<code>0x3</code>, <code>const char *</code>font=<code>&quot;rL&quot;</code>, <code>float</code> size=<code>-0.8</code>, <code>float</code> llen=<code>0.1</code>)</i></dt>
+<dt><a name="index-mgl_005flegend"></a><u>Функция С:</u> <code>void</code> <b>mgl_legend</b><i> (<code>HMGL</code> gr, <code>int</code> where, <code>const char *</code>font, <code>float</code> size, <code>float</code> llen)</i></dt>
+<dd><p>Рисует легенду из накопленных записей шрифтом <var>font</var> размером <var>size</var>. Параметр <var>where</var> задает положение легенды: &lsquo;<samp>0</samp>&rsquo; &ndash; в нижнем левом углу, &lsquo;<samp>1</samp>&rsquo; &ndash; нижнем правом углу, &lsquo;<samp>2</samp>&rsquo; &ndash; верхнем левом углу, &lsquo;<samp>3</samp>&rsquo; &ndash; верхнем правом углу (по умолчанию).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Legend-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Legend</b><i> (<code>int</code> n, <code>wchar_t **</code>text, <code>char **</code>style, <code>int</code> where=<code>0x3</code>, <code>const char *</code>font=<code>&quot;rL&quot;</code>, <code>float</code> size=<code>-0.8</code>, <code>float</code> llen=<code>0.1</code>)</i></dt>
+<dd><p>Рисует легенду из <var>n</var> записей шрифтом <var>font</var> размером <var>size</var>. Массив <var>text</var> задает описание кривых со стилем <var>style</var> (включая маркеры). Параметр <var>where</var> задает положение легенды: &lsquo;<samp>0</samp>&rsquo; &ndash; в нижнем левом углу, &lsquo;<samp>1</samp>&rsquo; &ndash; нижнем правом углу, &lsquo;<samp>2</samp>&rsquo; &ndash; верхнем левом углу, &lsquo;<samp>3</samp>&rsquo; &ndash; верхнем правом углу (по умолчанию).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Legend-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Legend</b><i> (<code>float</code> x, <code>float</code> y, <code>const char *</code>font=<code>&quot;rL&quot;</code>, <code>float</code> size=<code>-0.8</code>, <code>float</code> llen=<code>0.1</code>)</i></dt>
+<dt><a name="index-mgl_005flegend_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_legend_xy</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>const char *</code>font, <code>float</code> size, <code>float</code> llen)</i></dt>
+<dd><p>Рисует легенду из накопленных записей шрифтом <var>font</var> размером <var>size</var>. Положение легенды задается параметрами <var>x</var>, <var>y</var>, которые полагаются нормированными в диапазоне [0,1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Legend-4"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Legend</b><i> (<code>int</code> n, <code>wchar_t **</code>text, <code>char **</code>style, <code>float</code> x, <code>float</code> y, <code>const char *</code>font=<code>&quot;rL&quot;</code>, <code>float</code> size=<code>-0.8</code>, <code>float</code> llen=<code>0.1</code>)</i></dt>
+<dd><p>Рисует легенду из <var>n</var> записей шрифтом <var>font</var> размером <var>size</var>. Массив <var>text</var> задает описание кривых со стилем <var>style</var> (включая маркеры). Положение легенды задается параметрами <var>x</var>, <var>y</var>, которые полагаются нормированными в диапазоне [0,1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AddLegend-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>AddLegend</b><i> (<code>const char *</code>text, <code>const char *</code>style)</i></dt>
+<dt><a name="index-AddLegend-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>AddLegend</b><i> (<code>const wchar_t *</code>text, <code>const char *</code>style)</i></dt>
+<dt><a name="index-mgl_005fadd_005flegend"></a><u>Функция С:</u> <code>void</code> <b>mgl_add_legend</b><i> (<code>HMGL</code> gr, <code>const char *</code>text, <code>const char *</code>style)</i></dt>
+<dt><a name="index-mgl_005fadd_005flegendw"></a><u>Функция С:</u> <code>void</code> <b>mgl_add_legendw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>text, <code>const char *</code>style)</i></dt>
+<dd><p>Добавляет описание <var>text</var> кривой со стилем <var>style</var> (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>) во внутренний массив записей легенды. Максимальное число записей 100.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ClearLegend-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ClearLegend</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fclear_005flegend"></a><u>Функция С:</u> <code>void</code> <b>mgl_clear_legend</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Очищает внутренний массив записей легенды.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetLegendBox-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetLegendBox</b><i> (<code>bool</code> enable)</i></dt>
+<dt><a name="index-mgl_005fset_005flegend_005fbox"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_legend_box</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Включает/выключает рисование прямоугольника вокруг легенды. По умолчанию (=<code>true</code>) прямоугольник рисуется.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetLegendMarks-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetLegendMarks</b><i> (<code>int</code> num)</i></dt>
+<dt><a name="index-mgl_005fset_005flegend_005fmarks"></a><u>C function:</u> <code>void</code> <b>mgl_set_legend_marks</b><i> (<code>HMGL</code> gr, <code>int</code> num)</i></dt>
+<dd><p>Задает число маркеров в легенде. По умолчанию используется 1 маркер.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t1D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">3.9 1D графики</h2>
+
+<p>Эти функции строят графики для одномерных (1D) массивов. Одномерными считаются массивы, зависящие только от одного параметра (индекса) подобно кривой в параметрической форме {x(i),y(i),z(i)}, i=1...n. Есть 5 основных типов 1D графиков: линия (Plot), линия с заполнением (Area), ступеньки (Step), прямоугольники (Bars, Barh) и вертикальные линии (Stem). Все эти типы графиков имеют похожий интерфейс. Есть версии для рисования в пространстве и на плоскости. В последнем случае имеется возможность использования только одного массива. Стиль линии и маркеров указывается строковой переменной. Если она равна &quot;&quot;, то используется сплошная линия с цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). Кроме того, есть еще несколько типов графиков для одномерных массивов, имеющих другой интерфейс и вид: поверхность вращения кривой (Torus), диаграмма (Chart), размер ошибки (Error), маркеры переменного размера (Mark), трубками (Tube) и т.д. See section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>. См. раздел <a href="mathgl_ru_9.html#g_t1D-plot-sample">Пример графиков 1D данных</a>, для примеров кода и графика.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plot">3.9.1 Plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Radar">3.9.2 Radar</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tens">3.9.3 Tens</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area">3.9.4 Area</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region">3.9.5 Region</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stem">3.9.6 Stem</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars">3.9.7 Bars</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Barh">3.9.8 Barh</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Chart">3.9.9 Chart</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Step">3.9.10 Step</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Torus">3.9.11 Torus</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tube">3.9.12 Tube</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mark">3.9.13 Mark</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TextMark">3.9.14 TextMark</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Error">3.9.15 Error</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#BoxPlot">3.9.16 BoxPlot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Radar" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plot-1"></a>
+<h3 class="subsection">3.9.1 Plot</h3>
+<a name="index-Plot"></a>
+
+<p>Функции рисуют ломанную линию по точкам. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) рисуется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). См. также <a href="#Area">Area</a>, <a href="#Step">Step</a>, <a href="#Stem">Stem</a>, <a href="#Tube">Tube</a>, <a href="#Mark">Mark</a>, <a href="#Error">Error</a>, <a href="#Belt">Belt</a>, <a href="#Tens">Tens</a>. См. раздел <a href="mathgl_ru_9.html#Plot-sample">Plot &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Plot-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fplot_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_plot_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует в пространстве линию между точками {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Plot-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fplot_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_plot_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует линию между точками {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Plot-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fplot"></a><u>Функция С:</u> <code>void</code> <b>mgl_plot</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует линию между точками {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>), где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Radar"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tens" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Radar-1"></a>
+<h3 class="subsection">3.9.2 Radar</h3>
+<a name="index-Radar"></a>
+
+<dl>
+<dt><a name="index-Radar-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Radar</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>pen=<code>&quot;&quot;</code>, <code>float</code> r=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fradar"></a><u>Функция С:</u> <code>void</code> <b>mgl_radar</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>pen, <code>float</code> r)</i></dt>
+<dd><p>Функции рисуют radar chart, представляющий собой ломанную с вершинами на радиальных линиях (типа ломанной в полярных координатах). График рисуется для каждой строки если один из массивов матрица. Параметр <var>r</var> задает дополнительный сдвиг данных (т.е. используется <var>a</var>+<var>r</var> вместо <var>a</var>). Если <code>r&lt;0</code>, то <code>r=max(0, -min(a)</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). Если <var>pen</var> содержит символ &lsquo;<samp>#</samp>&rsquo;, то также рисуется &quot;сетка&quot; (радиальные линии и круг для <var>r</var>). См. также <a href="#Plot">Plot</a>. См. раздел <a href="mathgl_ru_9.html#Radar-sample">Radar &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Tens"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Radar" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tens-1"></a>
+<h3 class="subsection">3.9.3 Tens</h3>
+<a name="index-Tens"></a>
+
+<p>Функции рисуют ломанную линию по точкам с цветом, определяемым массивом <var>c</var> (типа графика натяжений). График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx=c.nx</code>. Строка <var>pen</var> задает цветовую схему (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>) и стиль и/или толщину линии (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущей цветовой схемой. См. также <a href="#Plot">Plot</a>, <a href="#Mesh">Mesh</a>, <a href="#Fall">Fall</a>. См. раздел <a href="mathgl_ru_9.html#Tens-sample">Tens &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Tens-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tens</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftens_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_tens_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует в пространстве линию между точками {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} с цветом <var>c</var>[i].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tens-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tens</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>c, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftens_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_tens_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> c, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует линию между точками {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>) с цветом <var>c</var>[i].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tens-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tens</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>c, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftens"></a><u>Функция С:</u> <code>void</code> <b>mgl_tens</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> c, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует линию между точками {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>) с цветом <var>c</var>[i], где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Area"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tens" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-1"></a>
+<h3 class="subsection">3.9.4 Area</h3>
+<a name="index-Area"></a>
+
+<p>Функции рисуют ломанную линию между точками и закрашивает ее вниз до плоскости осей координат. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). Также можно использовать градиентное закрашивание если число указанных цветов равно удвоенному числу кривых для построения. Если строка содержит символ &lsquo;<samp>a</samp>&rsquo;, то линии рисуются одна поверх другой (с суммированием) &ndash; того же эффекта можно достичь вызовом <code>y.CumSum(&quot;y&quot;);</code> перед построением графика. См. также <a href="#Plot">Plot</a>, <a href="#Bars">Bars</a>, <a href="#Stem">Stem</a>. См. раздел <a href="mathgl_ru_9.html#Area-sample">Area &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Area-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Area</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005farea_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_area_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует в пространстве линию между точками {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} и закрашивает ее вниз до плоскости <var>z</var> = Org.z.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Area-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Area</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005farea_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_area_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует линию между точками {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>) и закрашивает ее до прямой <var>y</var> = Org.y.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Area-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Area</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>, <code>bool</code> sum=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005farea"></a><u>Функция С:</u> <code>void</code> <b>mgl_area</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dt><a name="index-mgl_005farea_005fs"></a><u>Функция С:</u> <code>void</code> <b>mgl_area_s</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует линию между точками {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>) и закрашивает ее до прямой <var>y</var> = Org.y, где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x]. Параметр <var>sum</var> задает режим рисования линий одна поверх другой (с сумированием). Замечу, что того же эффекта можно достичь вызовом <code>y.CumSum(&quot;y&quot;);</code> перед построением графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Region"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stem" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-1"></a>
+<h3 class="subsection">3.9.5 Region</h3>
+<a name="index-Region"></a>
+
+<p>Функции закрашивают область между 2 кривыми. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y1.nx=y2.nx</code> и размеры массивов <var>y1</var>, <var>y2</var> должны быть также одинаковы. Строка <var>pen</var> задает цвет (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется текущий цвет из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). Также можно использовать градиентное закрашивание если число указанных цветов равно удвоенному числу кривых для построения. См. также <a href="#Area">Area</a>, <a href="#Bars">Bars</a>, <a href="#Stem">Stem</a>. См. раздел <a href="mathgl_ru_9.html#Region-sample">Region &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Region-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Region</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y1, <code>const mglData &amp;</code>y2, <code>const char *</code>pen=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>bool</code> inside=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fregion_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_region_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y1, <code>const HMDT</code> y2, <code>const char *</code>pen, <code>int</code> inside)</i></dt>
+<dd><p>Закрашивает область между кривыми {<var>x</var>[i], <var>y1</var>[i]} и {<var>x</var>[i], <var>y2</var>[i]} при z=<var>zVal</var>. При  <code>inside=off</code> закрашивается только область y1&lt;y&lt;y2, в противном случае также будет закращена область y2&lt;y&lt;y1.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Region-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Region</b><i> (<code>const mglData &amp;</code>y1, <code>const mglData &amp;</code>y2, <code>const char *</code>pen=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>bool</code> inside=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fregion"></a><u>Функция С:</u> <code>void</code> <b>mgl_region</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y1, <code>const HMDT</code> y2, <code>const char *</code>pen, <code>int</code> inside)</i></dt>
+<dd><p>Закрашивает область между кривыми {<var>x</var>[i], <var>y1</var>[i]} и {<var>x</var>[i], <var>y2</var>[i]} при z=<var>zVal</var>, где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Stem"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stem-1"></a>
+<h3 class="subsection">3.9.6 Stem</h3>
+<a name="index-Stem"></a>
+
+<p>Функции рисуют вертикальные линии из точек до плоскости осей координат. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). См. также <a href="#Area">Area</a>, <a href="#Bars">Bars</a>, <a href="#Plot">Plot</a>, <a href="#Mark">Mark</a>. См. раздел <a href="mathgl_ru_9.html#Stem-sample">Stem &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Stem-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Stem</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstem_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_stem_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует вертикальные линии из точек {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} вниз до плоскости <var>z</var> = Org.z.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Stem-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Stem</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstem_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_stem_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует вертикальные линии из точек {<var>x</var>[i], <var>y</var>[i]} до <var>y</var> = Org.y в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Stem-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Stem</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstem"></a><u>Функция С:</u> <code>void</code> <b>mgl_stem</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует вертикальные линии из точек {<var>x</var>[i], <var>y</var>[i]} до <var>y</var> = Org.y в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>), где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Bars"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Stem" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Barh" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-1"></a>
+<h3 class="subsection">3.9.7 Bars</h3>
+<a name="index-Bars"></a>
+
+<p>Функции рисуют вертикальные полосы (прямоугольники) из точек до плоскости осей координат. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). Если строка содержит символ &lsquo;<samp>a</samp>&rsquo;, то линии рисуются одна поверх другой. Если строка содержит символ &lsquo;<samp>f</samp>&rsquo;, то рисуется график типа waterfall для определения кумулятивного эффекта последовательности положительных и отрицательных значений. Можно использовать разные цвета для положительных и отрицательных значений если число указанных цветов равно удвоенному числу кривых для построения. См. также <a href="#Barh">Barh</a>, <a href="#Area">Area</a>, <a href="#Stem">Stem</a>, <a href="#Chart">Chart</a>, <a href="#Default-sizes">Базовые размеры</a>. См. раздел <a href="mathgl_ru_9.html#Bars-sample">Bars &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Bars-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Bars</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbars_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_bars_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует вертикальные полосы из точек {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} вниз до плоскости <var>z</var> = Org.z.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Bars-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Bars</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbars_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_bars_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует вертикальные полосы из точек {<var>x</var>[i], <var>y</var>[i]} до <var>y</var> = Org.y в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Bars-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Bars</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbars"></a><u>Функция С:</u> <code>void</code> <b>mgl_bars</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует вертикальные полосы из точек {<var>x</var>[i], <var>y</var>[i]} до <var>y</var> = Org.y в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>), где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Barh"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Chart" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Barh-1"></a>
+<h3 class="subsection">3.9.8 Barh</h3>
+<a name="index-Barh"></a>
+
+<p>Функции рисуют горизонтальные полосы (прямоугольники) из точек до плоскости осей координат. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). Если строка содержит символ &lsquo;<samp>a</samp>&rsquo;, то линии рисуются одна поверх другой. Если строка содержит символ &lsquo;<samp>f</samp>&rsquo;, то рисуется график типа waterfall для определения кумулятивного эффекта последовательности положительных и отрицательных значений. Можно использовать разные цвета для положительных и отрицательных значений если число указанных цветов равно удвоенному числу кривых для построения. См. также <a href="#Barh">Barh</a>, <a href="#Default-sizes">Базовые размеры</a>. См. раздел <a href="mathgl_ru_9.html#Barh-sample">Barh &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Barh-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Barh</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>v, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbarh_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_barh_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> v, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует горизонтальные полосы из точек {<var>v</var>[i], <var>y</var>[i]} до <var>x</var> = Org.x в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Barh-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Barh</b><i> (<code>const mglData &amp;</code>v, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbarh"></a><u>Функция С:</u> <code>void</code> <b>mgl_barh</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует горизонтальные полосы из точек {<var>v</var>[i], <var>y</var>[i]} до <var>x</var> = Org.x в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>), где значения <var>y</var>[i] равно распределены в интервале [<var>Min</var>.y, <var>Max</var>.y].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Chart"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Barh" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Step" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Chart-1"></a>
+<h3 class="subsection">3.9.9 Chart</h3>
+<a name="index-Chart"></a>
+
+<dl>
+<dt><a name="index-Chart-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Chart</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>col=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fchart"></a><u>Функция С:</u> <code>void</code> <b>mgl_chart</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>col)</i></dt>
+<dd><p>Рисует цветные полосы (пояса) для массива данных <var>a</var>. Число полос равно числу строк <var>a</var> (равно <var>a.ny</var>). Цвет полос поочередно меняется из цветов указанных в <var>col</var> или в палитре (see section <a href="#Palette-and-colors">Палитра и цвета</a>). Пробел в цветах соответствует прозрачному &quot;цвету&quot;, т.е. если <var>col</var> содержит пробел(ы), то соответствующая полоса не рисуется. Ширина полосы пропорциональна значению элемента в <var>a</var>. График строится только для массивов не содержащих отрицательных значений. Если строка <var>col</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется также черная граница полос. График выглядит лучше в (после вращения системы координат) и/или в полярной системе координат (становится Pie chart). См. раздел <a href="mathgl_ru_9.html#Chart-sample">Chart &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Step"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Chart" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Torus" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Step-1"></a>
+<h3 class="subsection">3.9.10 Step</h3>
+<a name="index-Step"></a>
+
+<p>Функции рисуют ступеньки для точек массива. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). См. также <a href="#Plot">Plot</a>, <a href="#Stem">Stem</a>, <a href="#Tile">Tile</a>, <a href="#Boxs">Boxs</a>. См. раздел <a href="mathgl_ru_9.html#Step-sample">Step &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Step-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Step</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstep_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_step_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует ступеньки для точек {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Step-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Step</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstep_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_step_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует ступеньки для точек {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Step-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Step</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstep"></a><u>Функция С:</u> <code>void</code> <b>mgl_step</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует ступеньки для точек {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>), где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Torus"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Step" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tube" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Torus-1"></a>
+<h3 class="subsection">3.9.11 Torus</h3>
+<a name="index-Torus"></a>
+
+<p>Функции рисуют поверхность вращения кривой {<var>r</var>, <var>z</var>} относительно оси, заданной <code>SetAxialDir()</code> (see section <a href="#Other-settings">Прочие настройки</a>). Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <var>r.nx=z.nx</var>. Строка <var>pen</var> задает цвет (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется цвет из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). См. также <a href="#Plot">Plot</a>, <a href="#Axial">Axial</a>. См. раздел <a href="mathgl_ru_9.html#Torus-sample">Torus &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Torus-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Torus</b><i> (<code>const mglData &amp;</code>r, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftorus"></a><u>Функция С:</u> <code>void</code> <b>mgl_torus</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> r, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует поверхность вращения кривой {<var>r</var>[i], <var>z</var>[i]}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Torus-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Torus</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Рисует поверхность вращения кривой {<var>r</var>[i], <var>z</var>[i]}, где значения <var>r</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Tube"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Torus" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mark" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tube-1"></a>
+<h3 class="subsection">3.9.12 Tube</h3>
+<a name="index-Tube"></a>
+
+<p>Функции рисуют трубу радиуса <var>r</var>[i] вдоль кривой между точками {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx=r.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). См. также <a href="#Plot">Plot</a>. См. раздел <a href="mathgl_ru_9.html#Tube-sample">Tube &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Tube-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-Tube-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>float</code> r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftube_005fxyzr"></a><u>Функция С:</u> <code>void</code> <b>mgl_tube_xyzr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dt><a name="index-mgl_005ftube_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_tube_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>float</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует трубу радиуса <var>r</var>  в пространстве между точками {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tube-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-Tube-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>float</code> r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftube_005fxyr"></a><u>Функция С:</u> <code>void</code> <b>mgl_tube_xyr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dt><a name="index-mgl_005ftube_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_tube_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>float</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует трубу радиуса <var>r</var> между точками {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tube-5"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-Tube-6"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>y, <code>float</code> r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftube_005fr"></a><u>Функция С:</u> <code>void</code> <b>mgl_tube_r</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dt><a name="index-mgl_005ftube"></a><u>Функция С:</u> <code>void</code> <b>mgl_tube</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>float</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует трубу радиуса <var>r</var> между точками {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>), где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Mark"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tube" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TextMark" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mark-1"></a>
+<h3 class="subsection">3.9.13 Mark</h3>
+<a name="index-Mark-3"></a>
+
+<p>Функции рисуют маркеры размером <var>r</var>*<var>MarkSize</var> (see section <a href="#Default-sizes">Базовые размеры</a>) в точках {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx=r.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). Для рисования маркеров одинакового размера можно использовать функцию <a href="#Plot">Plot</a> с невидимой линией (со стилем содержащим &lsquo;<samp> </samp>&rsquo;). См. также <a href="#Plot">Plot</a>, <a href="#TextMark">TextMark</a>, <a href="#Stem">Stem</a>, <a href="#Error">Error</a>. См. раздел <a href="mathgl_ru_9.html#Mark-sample">Mark &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Mark-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmark_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_mark_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует маркеры для точек {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Mark-5"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmark_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_mark_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует маркеры для точек {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Mark-6"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mark</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmark_005fy"></a><u>Функция С:</u> <code>void</code> <b>mgl_mark_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует маркеры для точек {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>), где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="TextMark"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mark" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Error" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TextMark-1"></a>
+<h3 class="subsection">3.9.14 TextMark</h3>
+<a name="index-TextMark"></a>
+
+<p>Функции рисуют текст <var>text</var> как маркер с размером пропорциональным <var>r</var>*<var>MarkSize</var> (see section <a href="#Default-sizes">Базовые размеры</a>) в точках {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx=r.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). См. также <a href="#Plot">Plot</a>, <a href="#Mark">Mark</a>, <a href="#Stem">Stem</a>. См. раздел <a href="mathgl_ru_9.html#TextMark-sample">TextMark &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-TextMark-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const char *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TextMark-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const wchar_t *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftextmarkw_005fxyzr"></a><u>Функция С:</u> <code>void</code> <b>mgl_textmarkw_xyzr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const wchar_t *</code>text, <code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005ftextmark_005fxyzr"></a><u>Функция С:</u> <code>void</code> <b>mgl_textmark_xyzr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const char *</code>text, <code>const char *</code>fnt)</i></dt>
+<dd><p>Рисует текстовые маркеры в точках {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TextMark-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TextMark-4"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const wchar_t *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftextmarkw_005fxyr"></a><u>Функция С:</u> <code>void</code> <b>mgl_textmarkw_xyr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const wchar_t *</code>text, <code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005ftextmark_005fxyr"></a><u>Функция С:</u> <code>void</code> <b>mgl_textmark_xyr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>text, <code>const char *</code>fnt)</i></dt>
+<dd><p>Рисует текстовые маркеры в точках {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TextMark-5"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TextMark-6"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const wchar_t *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftextmarkw_005fyr"></a><u>Функция С:</u> <code>void</code> <b>mgl_textmarkw_yr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const wchar_t *</code>text, <code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005ftextmark_005fyr"></a><u>Функция С:</u> <code>void</code> <b>mgl_textmark_yr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>text, <code>const char *</code>fnt)</i></dt>
+<dd><p>Рисует текстовые маркеры в точках {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>), где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TextMark-7"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TextMark-8"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>y, <code>const wchar_t *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftextmarkw"></a><u>Функция С:</u> <code>void</code> <b>mgl_textmarkw</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const wchar_t *</code>text, <code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005ftextmark"></a><u>Функция С:</u> <code>void</code> <b>mgl_textmark</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>text, <code>const char *</code>fnt)</i></dt>
+<dd><p>Рисует текстовые маркеры в точках {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>), где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x]. The mark sizes <var>r</var>[i]=1 for all points.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Error"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TextMark" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#BoxPlot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Error-1"></a>
+<h3 class="subsection">3.9.15 Error</h3>
+<a name="index-Error-2"></a>
+
+<p>Функции рисуют размер ошибки в точках {<var>x</var>[i], <var>y</var>[i]} на плоскости <var>z</var> = <var>zVal</var> (по умолчанию <var>z</var>=<var>Min.z</var>). Такой график полезен для отображения ошибки эксперимента, вычислений и пр. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx=r.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). См. также <a href="#Plot">Plot</a>. См. раздел <a href="mathgl_ru_9.html#Error-sample">Error &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Error-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Error</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ex, <code>const mglData &amp;</code>ey, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ferror_005fexy"></a><u>Функция С:</u> <code>void</code> <b>mgl_error_exy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ex, <code>const HMDT</code> ey, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует размер ошибки {<var>ex</var>, <var>ey</var>} в точках {<var>x</var>, <var>y</var>}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Error-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Error</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ey, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ferror_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_error_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ey, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует размер ошибки <var>ey</var> (только вдоль одного направления) в точках {<var>x</var>, <var>y</var>}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Error-5"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Error</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ey, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ferror"></a><u>Функция С:</u> <code>void</code> <b>mgl_error</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> ey, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует размер ошибки <var>ey</var>  (только вдоль одного направления) в точках {<var>x</var>, <var>y</var>}, где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="BoxPlot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Error" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="BoxPlot-1"></a>
+<h3 class="subsection">3.9.16 BoxPlot</h3>
+<a name="index-BoxPlot"></a>
+
+<p>Функции рисуют boxplot (называемый также как box-and-whisker diagram или как &quot;ящик с усами&quot;) в точках <var>x</var>[i] на плоскости <var>z</var> = <var>zVal</var> (по умолчанию <var>z</var>=<var>Min.z</var>). Это график, компактно изображающий распределение вероятностей <var>a</var>[i,j] (минимум, нижний квартиль (Q1), медиана (Q2), верхний квартиль (Q3) и максимум) вдоль второго (j-го) направления. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=a.nx</code>. Строка <var>pen</var> задает цвет и стиль линий (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). См. также <a href="#Plot">Plot</a>, <a href="#Error">Error</a>, <a href="#Bars">Bars</a>, <a href="#Default-sizes">Базовые размеры</a>. См. раздел <a href="mathgl_ru_9.html#BoxPlot-sample">BoxPlot &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-BoxPlot-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>BoxPlot</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fboxplot_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_boxplot_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует boxplot с заданными значениями координат <var>x</var>[i].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-BoxPlot-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>BoxPlot</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fboxplot"></a><u>Функция С:</u> <code>void</code> <b>mgl_boxplot</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует boxplot со значениями <var>x</var>[i] равно распределенными в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t2D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#BoxPlot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mesh" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">3.10 2D графики</h2>
+
+<p>Эти функции строят графики для двумерных (2D) массивов. Двумерными считаются массивы, зависящие только от двух параметров (индексов) подобно матрице <em>f(x_i,y_j), i=1...n, j=1...m</em>. Есть несколько основных типов 2D графиков: сплошная поверхность (Surf), сетчатая поверхность (Mesh), поверхность из ящиков (Boxs), поверхность из плиток (Tile), водопад (Fall), ленточки (Belt), график плотности (Dens), линии уровня (Cont), линии уровня с заполнением (ContF) и результат их вращения (Axial). В функциях Cont(), ContF() и Axial() значения уровней можно задавать автоматически и вручную. Можно также нарисовать сетку (Grid) по массиву данных для улучшения вида графика плотности или линий уровня. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданной поверхности. Параметры цветовой схемы задаются строкой See section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>. См. раздел <a href="mathgl_ru_9.html#g_t2D-plot-sample">Пример графиков 2D данных</a>, для примеров кода и графика.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Mesh">3.10.1 Mesh</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fall">3.10.2 Fall</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Belt">3.10.3 Belt</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf">3.10.4 Surf</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Boxs">3.10.5 Boxs</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tile">3.10.6 Tile</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens">3.10.7 Dens</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont">3.10.8 Cont</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF">3.10.9 ContF</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContD">3.10.10 ContD</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axial">3.10.11 Axial</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grad">3.10.12 Grad</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grid">3.10.13 Grid</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Mesh"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fall" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mesh-1"></a>
+<h3 class="subsection">3.10.1 Mesh</h3>
+<a name="index-Mesh"></a>
+
+<dl>
+<dt><a name="index-Mesh-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mesh</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmesh_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_mesh_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует сетчатую поверхность, заданную параметрически {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Surf">Surf</a>, <a href="#Fall">Fall</a>, MeshNum (see section <a href="#Other-settings">Прочие настройки</a>), <a href="#Cont">Cont</a>, <a href="#Tens">Tens</a>. См. раздел <a href="mathgl_ru_9.html#Mesh-sample">Mesh &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Mesh-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mesh</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmesh"></a><u>Функция С:</u> <code>void</code> <b>mgl_mesh</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fall"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mesh" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Belt" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fall-1"></a>
+<h3 class="subsection">3.10.2 Fall</h3>
+<a name="index-Fall"></a>
+
+<dl>
+<dt><a name="index-Fall-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Fall</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ffall_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_fall_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует водопад для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. График удобен для построения нескольких кривых, сдвинутых вглубь друг относительно друга. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>x</samp>&rsquo;, то линии рисуются вдоль x-оси (по умолчанию линии рисуются вдоль y-оси). Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Belt">Belt</a>, <a href="#Mesh">Mesh</a>, <a href="#Tens">Tens</a>, MeshNum (see section <a href="#Other-settings">Прочие настройки</a>). См. раздел <a href="mathgl_ru_9.html#Fall-sample">Fall &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fall-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Fall</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ffall"></a><u>Функция С:</u> <code>void</code> <b>mgl_fall</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Belt"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fall" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Belt-1"></a>
+<h3 class="subsection">3.10.3 Belt</h3>
+<a name="index-Belt"></a>
+
+<dl>
+<dt><a name="index-Belt-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Belt</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbelt_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_belt_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует ленточки для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. График может использоваться как 3d обобщение графика Plot() (see section <a href="#Plot">Plot</a>). Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>x</samp>&rsquo;, то линии рисуются вдоль x-оси (по умолчанию линии рисуются вдоль y-оси). Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Fall">Fall</a>, <a href="#Surf">Surf</a>, <a href="#Plot">Plot</a>, MeshNum (see section <a href="#Other-settings">Прочие настройки</a>). См. раздел <a href="mathgl_ru_9.html#Belt-sample">Belt &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Belt-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Belt</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbelt"></a><u>Функция С:</u> <code>void</code> <b>mgl_belt</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Surf"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Belt" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Boxs" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-1"></a>
+<h3 class="subsection">3.10.4 Surf</h3>
+<a name="index-Surf"></a>
+
+<dl>
+<dt><a name="index-Surf-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует параметрически заданную поверхность {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на поверхности рисуется сетка. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Mesh">Mesh</a>, <a href="#Dens">Dens</a>, <a href="#Belt">Belt</a>, <a href="#Tile">Tile</a>, <a href="#Boxs">Boxs</a>, <a href="#SurfC">SurfC</a>, <a href="#SurfA">SurfA</a>. См. раздел <a href="mathgl_ru_9.html#Surf-sample">Surf &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Boxs"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tile" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Boxs-1"></a>
+<h3 class="subsection">3.10.5 Boxs</h3>
+<a name="index-Boxs"></a>
+
+<dl>
+<dt><a name="index-Boxs-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Boxs</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fboxs_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_boxs_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует вертикальные ящики для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Surf">Surf</a>, <a href="#Dens">Dens</a>, <a href="#Tile">Tile</a>, <a href="#Step">Step</a>. См. раздел <a href="mathgl_ru_9.html#Boxs-sample">Boxs &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Boxs-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Boxs</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fboxs"></a><u>Функция С:</u> <code>void</code> <b>mgl_boxs</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Tile"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Boxs" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tile-1"></a>
+<h3 class="subsection">3.10.6 Tile</h3>
+<a name="index-Tile"></a>
+
+<dl>
+<dt><a name="index-Tile-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tile</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftile_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_tile_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует плитки для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. График может использоваться как 3d обобщение Step() (see section <a href="#Step">Step</a>). Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Surf">Surf</a>, <a href="#Boxs">Boxs</a>, <a href="#Step">Step</a>, <a href="#TileS">TileS</a>. См. раздел <a href="mathgl_ru_9.html#Tile-sample">Tile &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tile-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tile</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftile"></a><u>Функция С:</u> <code>void</code> <b>mgl_tile</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Dens"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tile" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-1"></a>
+<h3 class="subsection">3.10.7 Dens</h3>
+<a name="index-Dens"></a>
+
+<dl>
+<dt><a name="index-Dens-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dens</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_dens_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует график плотности для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} при <var>z</var> = <var>zVal</var>. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетка. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Surf">Surf</a>, <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>, <a href="#Boxs">Boxs</a>, <a href="#Tile">Tile</a>, <a href="#DensXYZ">DensXYZ</a>. См. раздел <a href="mathgl_ru_9.html#Dens-sample">Dens &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Dens-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dens</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens"></a><u>Функция С:</u> <code>void</code> <b>mgl_dens</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cont"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-1"></a>
+<h3 class="subsection">3.10.8 Cont</h3>
+<a name="index-Cont"></a>
+
+<dl>
+<dt><a name="index-Cont-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fxy_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont_xy_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует линии уровня для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} при <var>z</var> = <var>zVal</var> (или при <var>z=v</var>[k] если <code>zVal==NAN</code>). Линии уровня рисуются для <var>z</var>[i,j]=<var>v</var>[k]. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетка. Если <var>sch</var> содержит &lsquo;<samp>t</samp>&rsquo; или &lsquo;<samp>T</samp>&rsquo;, то значения <var>v</var>[k] будут выведены вдоль контуров над (или под) кривой. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Dens">Dens</a>, <a href="#ContF">ContF</a>, <a href="#ContD">ContD</a>, <a href="#Axial">Axial</a>, <a href="#ContXYZ">ContXYZ</a>. См. раздел <a href="mathgl_ru_9.html#Cont-sample">Cont &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005f_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont__val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContF"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContD" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF-1"></a>
+<h3 class="subsection">3.10.9 ContF</h3>
+<a name="index-ContF"></a>
+
+<dl>
+<dt><a name="index-ContF-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fxy_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf_xy_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} при <var>z</var> = <var>zVal</var> (или при <var>z=v</var>[k] если <code>zVal==NAN</code>). Линии уровня рисуются для <var>z</var>[i,j]=<var>v</var>[k]. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетка. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Dens">Dens</a>, <a href="#Cont">Cont</a>, <a href="#Axial">Axial</a>, <a href="#ContFXYZ">ContFXYZ</a>. См. раздел <a href="mathgl_ru_9.html#ContF-sample">ContF &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContD"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axial" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContD-1"></a>
+<h3 class="subsection">3.10.10 ContD</h3>
+<a name="index-ContD"></a>
+
+<dl>
+<dt><a name="index-ContD-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContD</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontd_005fxy_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_contd_xy_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} при <var>z</var> = <var>zVal</var> (или при <var>z=v</var>[k] если <code>zVal==NAN</code>) цветами заданными явно. Линии уровня рисуются для <var>z</var>[i,j]=<var>v</var>[k] (должно быть <code>v.nx&gt;2</code>). Строка <var>sch</var> задает цвет контуров: цвет k-го контура определяется символом <code>sch[k%strlen(sch)]</code>. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Dens">Dens</a>, <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>. См. раздел <a href="mathgl_ru_9.html#ContD-sample">ContD &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContD-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContD</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontd_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_contd_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContD-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContD</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontd_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_contd_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContD-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContD</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontd"></a><u>Функция С:</u> <code>void</code> <b>mgl_contd</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axial"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContD" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grad" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axial-1"></a>
+<h3 class="subsection">3.10.11 Axial</h3>
+<a name="index-Axial"></a>
+
+<dl>
+<dt><a name="index-Axial-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axial</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005faxial_005fxy_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_axial_xy_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует поверхность вращения линии уровня для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. Линии уровня рисуются для <var>z</var>[i,j]=<var>v</var>[k]. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Если строка содержит символы &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; или &lsquo;<samp>z</samp>&rsquo;, то ось вращения (see section <a href="#Other-settings">Прочие настройки</a>) устанавливается в указанное направление. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>, <a href="#Torus">Torus</a>, <a href="#Surf3">Surf3</a>. См. раздел <a href="mathgl_ru_9.html#Axial-sample">Axial &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Axial-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axial</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005faxial_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_axial_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Axial-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axial</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005faxial_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_axial_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Axial-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axial</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005faxial"></a><u>Функция С:</u> <code>void</code> <b>mgl_axial</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Grad"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axial" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grid" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grad-1"></a>
+<h3 class="subsection">3.10.12 Grad</h3>
+<a name="index-Grad"></a>
+
+<dl>
+<dt><a name="index-Grad-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grad</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>phi, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>)</i></dt>
+<dt><a name="index-mgl_005fgrad_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_grad_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует линии градиента скалярного поля <var>phi</var>[i,j,k] заданного параметрически {<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Число линий пропорционально <var>num</var>. Линии рисуются только с границ интервала при <var>num</var>&lt;0. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var>, <var>phi</var> должны быть одинаковы <code>x.nx=phi.nx &amp;&amp; y.nx=phi.ny &amp;&amp; z.nx=phi.nz</code> или <code>x.nx=y.nx=z.nx=phi.nx &amp;&amp; x.ny=y.ny=z.ny=phi.ny &amp;&amp; x.nz=y.nz=z.nz=phi.nz</code>. Массивы <var>x</var>, <var>y</var> и <var>z</var> могут быть векторами (не матрицами как <var>phi</var>). См. также <a href="#Dens3">Dens3</a>, <a href="#Cont3">Cont3</a>, <a href="#Flow">Flow</a>.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-Grad-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grad</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fgrad_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_grad_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует линии градиента скалярного поля <var>phi</var>[i,j] заданного параметрически {<var>x</var>[i,j], <var>y</var>[i,j]} при <var>z</var> = <var>zVal</var>. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Число линий пропорционально <var>num</var>. Линии рисуются только с границ интервала при <var>num</var>&lt;0. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>phi</var> должны быть одинаковы <code>x.nx=phi.nx &amp;&amp; y.nx=phi.ny</code> или <code>x.nx=y.nx=phi.nx &amp;&amp; x.ny=y.ny=phi.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>phi</var>). График строится для каждого z среза данных. См. также <a href="#Dens">Dens</a>, <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>, <a href="#Flow">Flow</a>. См. раздел <a href="mathgl_ru_9.html#Grad-sample">Grad &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Grad-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grad</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fgrad"></a><u>Функция С:</u> <code>void</code> <b>mgl_grad</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Grid"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grad" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grid-1"></a>
+<h3 class="subsection">3.10.13 Grid</h3>
+<a name="index-Grid-2"></a>
+
+<dl>
+<dt><a name="index-Grid-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_grid_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует плоскую сету для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} при <var>z</var> = <var>zVal</var>. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Dens">Dens</a>, <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Grid-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid"></a><u>Функция С:</u> <code>void</code> <b>mgl_grid</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="g_t3D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grid" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">3.11 3D графики</h2>
+
+<p>Эти функции строят графики для трехмерных (3D) массивов. Трехмерными считаются массивы, зависящие от трех параметров (индексов) подобно матрице <em>f(x_i,y_j,z_k), i=1...n, j=1...m, k=1...l</em>. Есть 5 основных типов 3D графиков: поверхность постоянного уровня (Surf3), график плотности на срезе (Dens3), линии уровня на срезе (Cont3), закрашенные контуры уровня на срезе (ContF3) и график объемной прозрачности типа облака (Cloud). В функциях Cont3(), ContF3() и Surf3() значения уровней можно задавать автоматически и вручную. Можно также нарисовать на срезе сетку (Grid3) по массиву данных для улучшения вида графика плотности или линий уровня. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива. Параметры цветовой схемы задаются строкой See section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>. См. раздел <a href="mathgl_ru_9.html#g_t3D-plot-sample">Пример графиков 3D данных</a>, для примеров кода и графика.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf3">3.11.1 Surf3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens3">3.11.2 Dens3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont3">3.11.3 Cont3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF3">3.11.4 ContF3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grid3">3.11.5 Grid3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cloud">3.11.6 Cloud</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Beam">3.11.7 Beam</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Surf3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3-1"></a>
+<h3 class="subsection">3.11.1 Surf3</h3>
+<a name="index-Surf3"></a>
+
+<dl>
+<dt><a name="index-Surf3-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3</b><i> (<code>float</code> val, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3_005fxyz_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3_xyz_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива, заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) при <var>a</var>(x,y,z)=<var>val</var>. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). Замечу, что возможно некорректная отрисовка граней вследствие неопределенности построения сечения если поверхность пересекает ячейку данных 2 и более раз. См. также <a href="#Cloud">Cloud</a>, <a href="#Dens3">Dens3</a>, <a href="#Surf3C">Surf3C</a>, <a href="#Surf3A">Surf3A</a>, <a href="#Axial">Axial</a>. См. раздел <a href="mathgl_ru_9.html#Surf3-sample">Surf3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3</b><i> (<code>float</code> val, <code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> a, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Рисует <var>num</var> поверхностей уровня равномерно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Dens3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens3-1"></a>
+<h3 class="subsection">3.11.2 Dens3</h3>
+<a name="index-Dens3"></a>
+<a name="index-DensA"></a>
+
+<dl>
+<dt><a name="index-Dens3-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dens3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdens3_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_dens3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует график плотности для 3d массива, заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). График рисуется на срезе <var>sVal</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>stl</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на срезе рисуется сетка. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). См. также <a href="#Cont3">Cont3</a>, <a href="#ContF3">ContF3</a>, <a href="#Dens">Dens</a>, <a href="#Grid3">Grid3</a>. См. раздел <a href="mathgl_ru_9.html#Dens3-sample">Dens3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Dens3-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dens3</b><i> (<code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdens3"></a><u>Функция С:</u> <code>void</code> <b>mgl_dens3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DensA-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdens3_005fall_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_dens3_all_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует графики плотности на всех центральных срезах 3d данных, заданных параметрически.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DensA-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensA</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdens3_005fall"></a><u>Функция С:</u> <code>void</code> <b>mgl_dens3_all</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cont3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont3-1"></a>
+<h3 class="subsection">3.11.3 Cont3</h3>
+<a name="index-Cont3"></a>
+<a name="index-ContA"></a>
+
+<dl>
+<dt><a name="index-Cont3-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont3</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fxyz_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont3_xyz_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует линии уровня для 3d массива, заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). Линии рисуются для значений из массива <var>v</var> на срезе <var>sVal</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Строка <var>stl</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>stl</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на срезе рисуется сетка. Если <var>sch</var> содержит &lsquo;<samp>t</samp>&rsquo; или &lsquo;<samp>T</samp>&rsquo;, то значения <var>v</var>[k] будут выведены вдоль контуров над (или под) кривой. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). См. также <a href="#Dens3">Dens3</a>, <a href="#ContF3">ContF3</a>, <a href="#Cont">Cont</a>, <a href="#Grid3">Grid3</a>. См. раздел <a href="mathgl_ru_9.html#Cont3-sample">Cont3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont3-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont3</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont3_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont3-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont3-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont3</b><i> (<code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContA-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fall_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont3_all_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Рисует линии уровня на всех центральных срезах 3d данных, заданных параметрически.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContA-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContA</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fall"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont3_all</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContF3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grid3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF3-1"></a>
+<h3 class="subsection">3.11.4 ContF3</h3>
+<a name="index-ContF3"></a>
+<a name="index-ContFA"></a>
+
+<dl>
+<dt><a name="index-ContF3-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF3</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fxyz_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf3_xyz_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня для 3d массива, заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). Линии рисуются для значений из массива <var>v</var> на срезе <var>sVal</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>stl</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на срезе рисуется сетка. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). См. также <a href="#Dens3">Dens3</a>, <a href="#Cont3">Cont3</a>, <a href="#ContF">ContF</a>, <a href="#Grid3">Grid3</a>. См. раздел <a href="mathgl_ru_9.html#ContF3-sample">ContF3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF3-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF3</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf3_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF3-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF3-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF3</b><i> (<code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFA-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fall_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf3_all_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня на всех центральных срезах 3d данных, заданных параметрически.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFA-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFA</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fall"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf3_all</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Grid3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cloud" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grid3-1"></a>
+<h3 class="subsection">3.11.5 Grid3</h3>
+<a name="index-Grid3"></a>
+<a name="index-GridA"></a>
+
+<dl>
+<dt><a name="index-Grid3-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid3_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_grid3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует сетку для 3d массива, заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). График рисуется на срезе <var>sVal</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). См. также <a href="#Cont3">Cont3</a>, <a href="#ContF3">ContF3</a>, <a href="#Dens3">Dens3</a>, <a href="#Grid">Grid</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Grid3-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid3</b><i> (<code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid3"></a><u>Функция С:</u> <code>void</code> <b>mgl_grid3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GridA-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>GridA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid3_005fall_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_grid3_all_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует сетку на всех центральных срезах 3d данных, заданных параметрически.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GridA-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>GridA</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid3_005fall"></a><u>Функция С:</u> <code>void</code> <b>mgl_grid3_all</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cloud"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grid3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Beam" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cloud-1"></a>
+<h3 class="subsection">3.11.6 Cloud</h3>
+<a name="index-CloudP"></a>
+<a name="index-CloudQ"></a>
+
+<dl>
+<dt><a name="index-Cloud"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cloud</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fcloud_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_cloud_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dd><p>Рисует облачный график для 3d массива, заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). График состоит из кубиков с цветом и прозрачностью пропорциональной значениям <var>a</var>. Результат похож на облако &ndash; малые значения прозрачны, а большие нет. Число кубиков зависит от SetMeshNum() (see section <a href="#Other-settings">Прочие настройки</a>). Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Параметр <var>alpha</var> меняет общую прозрачность графика. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). См. также <a href="#Surf3">Surf3</a>. См. раздел <a href="mathgl_ru_9.html#Cloud-sample">Cloud &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cloud-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cloud</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fcloud"></a><u>Функция С:</u> <code>void</code> <b>mgl_cloud</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CloudP-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>CloudP</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fcloudp_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_cloudp_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dd><p>Как первый, но используются полупрозрачные точки вместо кубиков. См. раздел <a href="mathgl_ru_9.html#CloudP-sample">CloudP &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CloudP-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>CloudP</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fcloudp"></a><u>Функция С:</u> <code>void</code> <b>mgl_cloudp</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Beam"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cloud" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Beam-1"></a>
+<h3 class="subsection">3.11.7 Beam</h3>
+<a name="index-Beam"></a>
+
+<dl>
+<dt><a name="index-Beam-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Beam</b><i> (<code>float</code> val, <code>const mglData &amp;</code>tr, <code>const mglData &amp;</code>g1, <code>const mglData &amp;</code>g2, <code>const mglData &amp;</code>a, <code>float</code> r, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fbeam_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_beam_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> tr, <code>const HMDT</code> g1, <code>const HMDT</code> g2, <code>const HMDT</code> a, <code>float</code> r, <code>const char *</code>stl, <code>int</code> flag)</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива <var>a</var> при постоянном значении <var>a</var>=<var>val</var>. Это специальный тип графика для <var>a</var> заданного в сопровождающей системе координат вдоль кривой <var>tr</var> с ортами <var>g1</var>, <var>g2</var> и с поперечным размером <var>r</var>. Переменная <var>flag</var> &ndash; битовый флаг: &lsquo;<samp>0x1</samp>&rsquo; - рисовать в сопровождающих (не лабораторных) координатах; &lsquo;<samp>0x2</samp>&rsquo; - рисовать проекцию на плоскость <em>\rho-z</em>; &lsquo;<samp>0x4</samp>&rsquo; - рисовать нормированное в каждом сечении поле. Размеры массивов по 1-му индексу <var>tr</var>, <var>g1</var>, <var>g2</var> должны быть nx&gt;2. Размеры массивов по 2-му индексу <var>tr</var>, <var>g1</var>, <var>g2</var> и размер по 3-му индексу массива <var>a</var> должны быть одинаковы. См. также <a href="#Surf3">Surf3</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Beam-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Beam</b><i> (<code>const mglData &amp;</code>tr, <code>const mglData &amp;</code>g1, <code>const mglData &amp;</code>g2, <code>const mglData &amp;</code>a, <code>float</code> r, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> flag=<code>0</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fbeam"></a><u>Функция С:</u> <code>void</code> <b>mgl_beam</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> tr, <code>const HMDT</code> g1, <code>const HMDT</code> g2, <code>const HMDT</code> a, <code>float</code> r, <code>const char *</code>stl, <code>int</code> flag=<code>0</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dd><p>Рисует <var>num</var> равномерно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>] поверхностей уровня 3d массива в сопровождающей системе координат.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Dual-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Beam" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfC" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0430_0440_043d_044be-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">3.12 Парные графики</h2>
+
+<p>Эти функции строят графики для двух связанных массивов. Есть несколько основных типов 3D графиков: поверхность и поверхность уровня с окраской по второму массиву (SurfC, Surf3C), поверхность и поверхность уровня с прозрачностью по второму массиву (SurfA, Surf3A), плитки переменного размера (TileS), диаграмма точечного отображения (Map), STFA диаграмма (STFA). В функциях Surf3A() и Surf3C() значения уровней можно задавать автоматически и вручную. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива. Параметры цветовой схемы задаются строкой See section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#SurfC">3.12.1 SurfC</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3C">3.12.2 Surf3C</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#SurfA">3.12.3 SurfA</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3A">3.12.4 Surf3A</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TileS">3.12.5 TileS</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Map">3.12.6 Map</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#STFA">3.12.7 STFA</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="SurfC"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3C" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfC-1"></a>
+<h3 class="subsection">3.12.1 SurfC</h3>
+<a name="index-SurfC"></a>
+
+<dl>
+<dt><a name="index-SurfC-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SurfC</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurfc_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_surfc_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует параметрически заданную поверхность {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} с цветом, заданным массивом <var>c</var>[i,j]. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на поверхности рисуется сетка. Все размеры массивов <var>z</var> и <var>c</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Surf">Surf</a>, <a href="#SurfA">SurfA</a>, <a href="#Surf3C">Surf3C</a>. См. раздел <a href="mathgl_ru_9.html#SurfC-sample">SurfC &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SurfC-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SurfC</b><i> (<code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurfc"></a><u>Функция С:</u> <code>void</code> <b>mgl_surfc</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Surf3C"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfC" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfA" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3C-1"></a>
+<h3 class="subsection">3.12.2 Surf3C</h3>
+<a name="index-Surf3C"></a>
+
+<dl>
+<dt><a name="index-Surf3C-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3C</b><i> (<code>float</code> val, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3c_005fxyz_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3c_xyz_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива, заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) при <var>a</var>(x,y,z)=<var>val</var>. Аналогично Surf3(), но цвет задается массивом <var>c</var>. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Все размеры массивов <var>z</var> и <var>c</var> должны быть одинаковы. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). Замечу, что возможно некорректная отрисовка граней вследствие неопределенности построения сечения если поверхность пересекает ячейку данных 2 и более раз. См. также <a href="#Surf3">Surf3</a>, <a href="#SurfC">SurfC</a>, <a href="#Surf3A">Surf3A</a>. См. раздел <a href="mathgl_ru_9.html#Surf3C-sample">Surf3C &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3C-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3C</b><i> (<code>float</code> val, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3c_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3c_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3C-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3C</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3c_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3c_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Рисует <var>num</var> поверхностей уровня равномерно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3C-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3C</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3c"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3c</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="SurfA"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3C" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3A" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfA-1"></a>
+<h3 class="subsection">3.12.3 SurfA</h3>
+<a name="index-SurfA"></a>
+
+<dl>
+<dt><a name="index-SurfA-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SurfA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurfa_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_surfa_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует параметрически заданную поверхность {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} с прозрачностью, заданным массивом <var>c</var>[i,j]. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на поверхности рисуется сетка. Все размеры массивов <var>z</var> и <var>c</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Surf">Surf</a>, <a href="#SurfC">SurfC</a>, <a href="#Surf3A">Surf3A</a>, <a href="#TileS">TileS</a>. См. раздел <a href="mathgl_ru_9.html#SurfA-sample">SurfA &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SurfA-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SurfA</b><i> (<code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurfa"></a><u>Функция С:</u> <code>void</code> <b>mgl_surfa</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Surf3A"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfA" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TileS" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3A-1"></a>
+<h3 class="subsection">3.12.4 Surf3A</h3>
+<a name="index-Surf3A"></a>
+
+<dl>
+<dt><a name="index-Surf3A-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3A</b><i> (<code>float</code> val, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3a_005fxyz_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3a_xyz_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива, заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) при <var>a</var>(x,y,z)=<var>val</var>. Аналогично Surf3(), но прозрачность задается массивом <var>c</var>. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Все размеры массивов <var>z</var> и <var>c</var> должны быть одинаковы. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). Замечу, что возможно некорректная отрисовка граней вследствие неопределенности построения сечения если поверхность пересекает ячейку данных 2 и более раз. См. также <a href="#Surf3">Surf3</a>, <a href="#SurfA">SurfA</a>, <a href="#Surf3C">Surf3C</a>. См. раздел <a href="mathgl_ru_9.html#Surf3A-sample">Surf3A &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3A-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3A</b><i> (<code>float</code> val, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3a_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3a_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3A-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3A</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3a_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3a_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Рисует <var>num</var> поверхностей уровня равномерно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3A-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3A</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3a"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3a</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="TileS"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3A" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Map" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TileS-1"></a>
+<h3 class="subsection">3.12.5 TileS</h3>
+<a name="index-TileS"></a>
+
+<dl>
+<dt><a name="index-TileS-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TileS</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftiles_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_tiles_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует плитки для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. Аналогично Tile(), но размер плиток задается массивов <var>r</var>. Это создает эффект &quot;прозрачности&quot; при экспорте в файлы EPS. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#SurfA">SurfA</a>, <a href="#Tile">Tile</a>. См. раздел <a href="mathgl_ru_9.html#TileS-sample">TileS &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TileS-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TileS</b><i> (<code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftiles"></a><u>Функция С:</u> <code>void</code> <b>mgl_tiles</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Map"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TileS" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#STFA" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Map-1"></a>
+<h3 class="subsection">3.12.6 Map</h3>
+<a name="index-Map"></a>
+
+<dl>
+<dt><a name="index-Map-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Map</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> ks=<code>0</code>, <code>bool</code> pnts=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fmap_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_map_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>int</code> ks, <code>int</code> pnts)</i></dt>
+<dd><p>Визуализирует точечное отображение для матриц {<var>ax</var>, <var>ay</var> } параметрически зависящих от координат <var>x</var>, <var>y</var>. Исходное положение ячейки задает ее цвет. Высота пропорциональна якобиану J(ax,ay). График является аналогом диаграммы Арнольда. Если <code>pnts=false</code>, то рисуются грани, иначе цветные точки рисуются в узлах матриц (полезно для &quot;запутанного&quot; отображения). Параметр <var>ks</var> задает используемый срез матриц. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Все размеры массивов <var>ax</var> и <var>ay</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>ax</var> должны быть одинаковы. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>ax</var>). See section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>. См. раздел <a href="mathgl_ru_9.html#Map-sample">Map &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Map-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Map</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> ks=<code>0</code>, <code>bool</code> pnts=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fmap"></a><u>Функция С:</u> <code>void</code> <b>mgl_map</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>int</code> ks, <code>int</code> pnts)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="STFA"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Map" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="STFA-1"></a>
+<h3 class="subsection">3.12.7 STFA</h3>
+<a name="index-STFA"></a>
+
+<dl>
+<dt><a name="index-STFA-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>STFA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>re, <code>const mglData &amp;</code>im, <code>int</code> dn, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fstfa_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_stfa_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> re, <code>const HMDT</code> im, <code>int</code> dn, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует спектрограмму комплексного массива <var>re</var>+i*<code>im</code> для Фурье размером <var>dn</var> точек в плоскости <var>z=zVal</var>. Параметр <var>dn</var> &ndash; любое четное число. Например в 1D случае, результатом будет график плотности от массива <em>res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn</em> размером {int(nx/dn), dn, ny}. Массивы <var>re</var>, <var>im</var> параметрически зависят от координат <var>x</var>, <var>y</var>. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Все размеры массивов <var>re</var> и <var>im</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>re</var> должны быть одинаковы. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>re</var>).  См. раздел <a href="mathgl_ru_9.html#STFA-sample">STFA &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-STFA-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>STFA</b><i> (<code>const mglData &amp;</code>re, <code>const mglData &amp;</code>im, <code>int</code> dn, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fstfa"></a><u>Функция С:</u> <code>void</code> <b>mgl_stfa</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> re, <code>const HMDT</code> im, <code>int</code> dn, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Vector-fields"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#STFA" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Traj" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0412e_043a_0442_043e_0440_043d_044be-_043f_043e_043bya"></a>
+<h2 class="section">3.13 Векторные поля</h2>
+
+<p>Эти функции рисуют графики для 2D и 3D векторных полей. Есть несколько типов графиков: просто векторное поле (Vect), вектора вдоль траектории (Traj), векторное поле каплями (Dew), нити тока (Flow, FlowP), трубки тока (Pipe). Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива. Параметры цветовой схемы задаются строкой See section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Traj">3.13.1 Traj</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect">3.13.2 Vect</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dew">3.13.3 Dew</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow">3.13.4 Flow</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#FlowP">3.13.5 FlowP</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe">3.13.6 Pipe</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Traj"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-fields" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Traj-1"></a>
+<h3 class="subsection">3.13.1 Traj</h3>
+<a name="index-Traj"></a>
+
+<dl>
+<dt><a name="index-Traj-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Traj</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> len=<code>0</code>)</i></dt>
+<dt><a name="index-Traj-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Traj</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>float</code> len=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005ftraj_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_traj_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code>x, <code>const HMDT</code>y, <code>const HMDT</code>z, <code>const HMDT</code>ax, <code>const HMDT</code>ay, <code>const HMDT</code>az, <code>const char *</code>sch, <code>float</code> len)</i></dt>
+<dt><a name="index-mgl_005ftraj_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_traj_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code>x, <code>const HMDT</code>y, <code>const HMDT</code>ax, <code>const HMDT</code>ay, <code>const char *</code>sch, <code>float</code> zVal, <code>float</code> len)</i></dt>
+<dd><p>Рисует вектора {<var>ax</var>, <var>ay</var>, <var>az</var>} вдоль кривой {<var>x</var>, <var>y</var>, <var>z</var>}. Длина векторов пропорциональна <em>\sqrtax^2+ay^2+az^2</em>. Строка <var>pen</var> задает цвет (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется текущий цвет из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). Параметр <var>len</var> задает фактор длины векторов (если не нуль) или выбирать длину пропорционально расстоянию между точками кривой (если <var>len</var>=0). Размер по 1-му индексу должен быть 2 или больше. График рисуется для каждой строки если один из массивов матрица. См. также <a href="#Vect">Vect</a>. См. раздел <a href="mathgl_ru_9.html#Traj-sample">Traj &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Vect"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Traj" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dew" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-1"></a>
+<h3 class="subsection">3.13.2 Vect</h3>
+<a name="index-Vect"></a>
+
+<dl>
+<dt><a name="index-Vect-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Vect</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fvect_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_vect_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal, <code>int</code> flag)</i></dt>
+<dd><p>Рисует векторное поле {<var>ax</var>, <var>ay</var>} параметрически зависящее от координат <var>x</var>, <var>y</var> на плоскости при <var>z</var>=<var>zVal</var>. Длина и цвет векторов пропорциональна <em>\sqrtax^2+ay^2</em>. Число рисуемых векторов зависит от <code>SetMeshNum()</code> (see section <a href="#Other-settings">Прочие настройки</a>). Цвет задается строкой <var>sch</var>. Предыдущая цветовая схема используется по умолчанию. Параметр <var>flag</var> побитовый флаг для настройки вид векторов: <code>MGL_VEC_COL</code> &ndash; двуцветный вектор, <code>MGL_VEC_LEN</code> &ndash; одинаковая длина векторов, <code>MGL_VEC_DOT</code> &ndash; рисует штрихи вместо стрелок, <code>MGL_VEC_END</code> &ndash; рисует стрелку в точку сетки, <code>MGL_VEC_MID</code> &ndash; рисует стрелку с серединой в точке сетки. Все размеры массивов <var>ax</var> и <var>ay</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var> и <var>ax</var> должны быть одинаковы. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>ax</var>). График строится для каждого z среза <var>ax</var>, <var>ay</var>. См. также <a href="#Flow">Flow</a>, <a href="#Dew">Dew</a>. См. раздел <a href="mathgl_ru_9.html#Vect-sample">Vect &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Vect-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Vect</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fvect_005f2d"></a><u>Функция С:</u> <code>void</code> <b>mgl_vect_2d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal, <code>int</code> flag)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Vect-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Vect</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fvect_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_vect_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>int</code> flag)</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>ax</var>, <var>ay</var>, <var>az</var> должны быть 3d массивами, а длина и цвет пропорциональны <em>\sqrtax^2+ay^2+az^2</em>. См. раздел <a href="mathgl_ru_9.html#Vect-3D-sample">Vect 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Vect-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Vect</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fvect_005f3d"></a><u>Функция С:</u> <code>void</code> <b>mgl_vect_3d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>int</code> flag)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Dew"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dew-1"></a>
+<h3 class="subsection">3.13.3 Dew</h3>
+<a name="index-Dew"></a>
+
+<dl>
+<dt><a name="index-Dew-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dew</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdew_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_dew_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует капли для векторного поля {<var>ax</var>, <var>ay</var>}, параметрически зависящего от координат <var>x</var>, <var>y</var> при <var>z=zVal</var>. Замечу, что график требует много памяти и процессорного времени для своего создания! Цвет капель пропорционален <em>\sqrtax^2+ay^2</em>. Число капель определяется <code>SetMeshNum()</code> (see section <a href="#Other-settings">Прочие настройки</a>). Цвет задается строкой <var>sch</var>. Предыдущая цветовая схема используется по умолчанию. Все размеры массивов <var>ax</var> и <var>ay</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var> и <var>ax</var> должны быть одинаковы. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>ax</var>). График строится для каждого z среза <var>ax</var>, <var>ay</var>. См. также <a href="#Vect">Vect</a>. См. раздел <a href="mathgl_ru_9.html#Dew-sample">Dew &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Dew-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dew</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdew"></a><u>Функция С:</u> <code>void</code> <b>mgl_dew</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Flow"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dew" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#FlowP" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-1"></a>
+<h3 class="subsection">3.13.4 Flow</h3>
+<a name="index-Flow"></a>
+
+<dl>
+<dt><a name="index-Flow-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flow</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>, <code>bool</code> central=<code>true</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fflow_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_flow_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>int</code> num, <code>int</code> central, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует нити тока для векторного поля {<var>ax</var>, <var>ay</var>}, параметрически зависящего от координат <var>x</var>, <var>y</var> на плоскости при z = <var>zVal</var>. Число нитей пропорционально <var>num</var>. Параметр <var>central</var> задает возможность старта нитей изнутри сетки (если true) или только с краев (если false). С версии 1.11 он игнорируется и всегда равен (<var>num</var>&gt;0). Цвет нитей пропорционален <em>\sqrtax^2+ay^2</em>. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника). Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Все размеры массивов <var>ax</var> и <var>ay</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var> и <var>ax</var> должны быть одинаковы. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>ax</var>). График строится для каждого z среза <var>ax</var>, <var>ay</var>. См. также <a href="#Pipe">Pipe</a>, <a href="#Vect">Vect</a>. См. раздел <a href="mathgl_ru_9.html#Flow-sample">Flow &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Flow-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flow</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>, <code>bool</code> central=<code>true</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fflow_005f2d"></a><u>Функция С:</u> <code>void</code> <b>mgl_flow_2d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>int</code> num, <code>int</code> central, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Flow-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flow</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>, <code>bool</code> central=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fflow_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_flow_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>int</code> num, <code>int</code> central)</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>ax</var>, <var>ay</var>, <var>az</var> должны быть 3d массивами, а цвет пропорционален <em>\sqrtax^2+ay^2+az^2</em>. См. раздел <a href="mathgl_ru_9.html#Flow-3D-sample">Flow 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Flow-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flow</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>, <code>bool</code> central=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fflow_005f3d"></a><u>Функция С:</u> <code>void</code> <b>mgl_flow_3d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>int</code> num, <code>int</code> central)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="FlowP"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="FlowP-1"></a>
+<h3 class="subsection">3.13.5 FlowP</h3>
+<a name="index-FlowP"></a>
+
+<dl>
+<dt><a name="index-FlowP-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>FlowP</b><i> (<code>mglPoint</code> p0, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-FlowP-2"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>FlowP</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fflowp_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_flowp_xy</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует нить тока из точки <var>p0</var> для векторного поля {<var>ax</var>, <var>ay</var>}, параметрически зависящего от координат <var>x</var>, <var>y</var> на плоскости при z = <var>p0</var>.z. Цвет нити пропорционален <em>\sqrtax^2+ay^2</em>. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника). Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Все размеры массивов <var>ax</var> и <var>ay</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var> и <var>ax</var> должны быть одинаковы. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>ax</var>). График строится для каждого z среза <var>ax</var>, <var>ay</var>. См. также <a href="#Pipe">Pipe</a>, <a href="#Vect">Vect</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FlowP-3"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>FlowP</b><i> (<code>mglPoint</code> p0, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-FlowP-4"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>FlowP</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fflowp_005f2d"></a><u>Функция С:</u> <code>void</code> <b>mgl_flowp_2d</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FlowP-5"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>FlowP</b><i> (<code>mglPoint</code> p0, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-FlowP-6"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>FlowP</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fflowp_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_flowp_xyz</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch)</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>ax</var>, <var>ay</var>, <var>az</var> должны быть 3d массивами, а цвет пропорциональны <em>\sqrtax^2+ay^2+az^2</em>. См. раздел <a href="mathgl_ru_9.html#Flow-3D-sample">Flow 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FlowP-7"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>FlowP</b><i> (<code>mglPoint</code> p0, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-FlowP-8"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>FlowP</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fflowp_005f3d"></a><u>Функция С:</u> <code>void</code> <b>mgl_flowp_3d</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Pipe"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#FlowP" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-1"></a>
+<h3 class="subsection">3.13.6 Pipe</h3>
+<a name="index-Pipe"></a>
+
+<dl>
+<dt><a name="index-Pipe-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pipe</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> r0=<code>0.05</code>, <code>int</code> num=<code>5</code>, <code>bool</code> central=<code>true</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fpipe_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_pipe_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> r0, <code>int</code> num, <code>int</code> central, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует трубки тока для векторного поля {<var>ax</var>, <var>ay</var>}, параметрически зависящего от координат <var>x</var>, <var>y</var> на плоскости при z = <var>zVal</var>. Число трубок пропорционально <var>num</var>. Параметр <var>central</var> задает возможность старта трубок изнутри сетки (если true) или только с краев (если false). С версии 1.11 он игнорируется и всегда равен (<var>num</var>&gt;0). Цвет и радиус трубок пропорционален <em>\sqrtax^2+ay^2</em>. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника). Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Параметр <var>r0</var> задает радиус трубок. При <var>r0</var>&lt;0 радиус трубок обратно пропорционален их амплитуде. Все размеры массивов <var>ax</var> и <var>ay</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var> и <var>ax</var> должны быть одинаковы. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>ax</var>). График строится для каждого z среза <var>ax</var>, <var>ay</var>. См. также <a href="#Flow">Flow</a>, <a href="#Vect">Vect</a>. См. раздел <a href="mathgl_ru_9.html#Pipe-sample">Pipe &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Pipe-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pipe</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> r0=<code>0.05</code>, <code>int</code> num=<code>5</code>, <code>bool</code> central=<code>true</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fpipe_005f2d"></a><u>Функция С:</u> <code>void</code> <b>mgl_pipe_2d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> r0, <code>int</code> num, <code>int</code> central, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Pipe-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pipe</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> r0=<code>0.05</code>, <code>int</code> num=<code>3</code>, <code>bool</code> central=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fpipe_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_pipe_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>float</code> r0, <code>int</code> num, <code>int</code> central)</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>ax</var>, <var>ay</var>, <var>az</var> должны быть 3d массивами, а цвет пропорциональны <em>\sqrtax^2+ay^2+az^2</em>. См. раздел <a href="mathgl_ru_9.html#Pipe-3D-sample">Pipe 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Pipe-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pipe</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> r0=<code>0.05</code>, <code>int</code> num=<code>3</code>, <code>bool</code> central=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fpipe_005f3d"></a><u>Функция С:</u> <code>void</code> <b>mgl_pipe_3d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>float</code> r0, <code>int</code> num, <code>int</code> central)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Other-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#DensXYZ" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043e_0447_0438e-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">3.14 Прочие графики</h2>
+
+<p>Это функции, не относящиеся к какой-то специальной категории. Сюда входят функции построения графиков по текстовым формулам (Plots by formula), рисования поверхностей из треугольников (TriPlot), произвольных точек в пространстве (Dots) и реконструкции по ним поверхности (Crust), графики плотности и линии уровня на плоскостях, перпендикулярных осям x, y или z (Dens[XYZ], Cont[XYZ], ContF[XYZ]), функция &quot;упрощенного&quot; рисования (SimplePlot). Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива. Параметры цветовой схемы задаются строкой. See section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#DensXYZ">3.14.1 DensXYZ</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContXYZ">3.14.2 ContXYZ</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContFXYZ">3.14.3 ContFXYZ</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dots">3.14.4 Dots</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Crust">3.14.5 Crust</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TriPlot">3.14.6 TriPlot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TriCont">3.14.7 TriCont</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#QuadPlot">3.14.8 QuadPlot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-by-formula">3.14.9 Графики функций</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#SimplePlot">3.14.10 SimplePlot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="DensXYZ"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContXYZ" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="DensXYZ-1"></a>
+<h3 class="subsection">3.14.1 DensXYZ</h3>
+<a name="index-DensX"></a>
+<a name="index-DensY"></a>
+<a name="index-DensZ"></a>
+
+<p>Эти функции рисуют график плотности на x, y или z плоскостях. Если <var>a</var> &ndash; 3d массив, то выполняется интерполяция к заданному срезу <var>sVal</var>. Функции полезны для создания проекций 3D массивов на оси координат. Например, код
+</p><table><tr><td>&nbsp;</td><td><pre class="example">gr-&gt;DensX(c.Sum(&quot;x&quot;),&quot;BbcyrR&quot;,-1);
+gr-&gt;DensY(c.Sum(&quot;y&quot;),0,1);
+gr-&gt;DensZ(c.Sum(&quot;z&quot;),0,-1);
+</pre></td></tr></table>
+<p>создают такую картинку. См. также <a href="#ContXYZ">ContXYZ</a>, <a href="#ContFXYZ">ContFXYZ</a>, <a href="#Dens">Dens</a>, <a href="#Data-distributions">Распределение данных</a>. См. раздел <a href="mathgl_ru_9.html#Dens-projection-sample">Dens projection &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-DensX-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensX</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens_005fx"></a><u>Функция С:</u> <code>void</code> <b>mgl_dens_x</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Рисует график плотности <var>a</var> при x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DensY-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensY</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens_005fy"></a><u>Функция С:</u> <code>void</code> <b>mgl_dens_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Рисует график плотности <var>a</var> при y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DensZ-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensZ</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens_005fz"></a><u>Функция С:</u> <code>void</code> <b>mgl_dens_z</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Рисует график плотности <var>a</var> при z = <var>sVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContXYZ"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#DensXYZ" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContFXYZ" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContXYZ-1"></a>
+<h3 class="subsection">3.14.2 ContXYZ</h3>
+<a name="index-ContX"></a>
+<a name="index-ContY"></a>
+<a name="index-ContZ"></a>
+
+<p>Эти функции рисуют линии уровня на x, y или z плоскостях. Если <var>a</var> &ndash; 3d массив, то выполняется интерполяция к заданному срезу <var>sVal</var>. Функции полезны для создания проекций 3D массивов на оси координат. Например, код
+</p><table><tr><td>&nbsp;</td><td><pre class="example">gr-&gt;ContX(c.Sum(&quot;x&quot;),&quot;BbcyrR&quot;,-1);
+gr-&gt;ContY(c.Sum(&quot;y&quot;),0,1);
+gr-&gt;ContZ(c.Sum(&quot;z&quot;),0,-1);
+</pre></td></tr></table>
+<p>создают такую картинку. См. также <a href="#ContFXYZ">ContFXYZ</a>, <a href="#DensXYZ">DensXYZ</a>, <a href="#Cont">Cont</a>, <a href="#Data-distributions">Распределение данных</a>. См. раздел <a href="mathgl_ru_9.html#Cont-projection-sample">Cont projection &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-ContX-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContX</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fx"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont_x</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Рисует <var>num</var> линий уровня для массива <var>a</var> при x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContY-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContY</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fy"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Рисует <var>num</var> линий уровня для массива <var>a</var> при y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContZ-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContZ</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fz"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont_z</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Рисует <var>num</var> линий уровня для массива <var>a</var> при z = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContX-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContX</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fx_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont_x_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Рисует линии уровня для массива  <var>a</var>=<var>v</var>[i] при x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContY-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContY</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fy_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont_y_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Рисует линии уровня для массива  <var>a</var>=<var>v</var>[i] при y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContZ-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContZ</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fz_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont_z_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Рисует линии уровня для массива  <var>a</var>=<var>v</var>[i] при z = <var>sVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContFXYZ"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContXYZ" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dots" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContFXYZ-1"></a>
+<h3 class="subsection">3.14.3 ContFXYZ</h3>
+<a name="index-ContFX"></a>
+<a name="index-ContFY"></a>
+<a name="index-ContFZ"></a>
+
+<p>Эти функции рисуют закрашенные контуры уровня на x, y или z плоскостях. Если <var>a</var> &ndash; 3d массив, то выполняется интерполяция к заданному срезу <var>sVal</var>. Функции полезны для создания проекций 3D массивов на оси координат. См. также <a href="#ContXYZ">ContXYZ</a>, <a href="#DensXYZ">DensXYZ</a>, <a href="#ContF">ContF</a>, <a href="#Data-distributions">Распределение данных</a>.
+</p>
+<dl>
+<dt><a name="index-ContFX-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFX</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fx"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf_x</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Рисует <var>num</var> закрашенных контуров уровня для массива <var>a</var> при x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFY-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFY</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fy"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Рисует <var>num</var> закрашенных контуров уровня для массива <var>a</var> при y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFZ-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFZ</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fz"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf_z</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Рисует <var>num</var> закрашенных контуров уровня для массива <var>a</var> при z = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFX-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFX</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fx_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf_x_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Рисует закрашенные конутры уровня для массива <var>a</var>=<var>v</var>[i] при x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFY-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFY</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fy_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf_y_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Рисует закрашенные конутры уровня для массива <var>a</var>=<var>v</var>[i] при y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFZ-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFZ</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fz_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf_z_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Рисует закрашенные конутры уровня для массива <var>a</var>=<var>v</var>[i] при z = <var>sVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Dots"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContFXYZ" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Crust" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dots-1"></a>
+<h3 class="subsection">3.14.4 Dots</h3>
+<a name="index-Dots"></a>
+
+<dl>
+<dt><a name="index-Dots-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dots</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-Dots-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dots</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdots"></a><u>Функция С:</u> <code>void</code> <b>mgl_dots</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dt><a name="index-mgl_005fdots_005fa"></a><u>Функция С:</u> <code>void</code> <b>mgl_dots_a</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует произвольно расположенные точки {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если определен массив <var>a</var>, то он задает прозрачность точек. Массивы <var>x</var>, <var>y</var>, <var>z</var>, <var>a</var> должны иметь одинаковые размеры. См. также <a href="#Crust">Crust</a>, <a href="#Mark">Mark</a>, <a href="#Plot">Plot</a>. См. раздел <a href="mathgl_ru_9.html#Dots-sample">Dots &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Dots-3"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Dots</b><i> (<code>const mglData &amp;</code>tr, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdots_005ftr"></a><u>Функция С:</u> <code>void</code> <b>mgl_dots_tr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> tr, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x=tr</var>(0,:), <var>y=tr</var>(1,:), <var>z=tr</var>(2,:) и если <var>tr</var>.nx&gt;3, то <var>a=tr</var>(3,:).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Crust"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dots" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TriPlot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Crust-1"></a>
+<h3 class="subsection">3.14.5 Crust</h3>
+<a name="index-Crust"></a>
+
+<dl>
+<dt><a name="index-Crust-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Crust</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> er=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcrust"></a><u>Функция С:</u> <code>void</code> <b>mgl_crust</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> er)</i></dt>
+<dd><p>Реконструирует и рисует поверхность по произвольно расположенным точкам {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. Параметр <var>er</var> задает радиус ошибки (увеличте для удаления дыр). Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если строка содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Массивы <var>x</var>, <var>y</var>, <var>z</var> должны иметь одинаковые размеры. См. также <a href="#Dots">Dots</a>, <a href="#TriPlot">TriPlot</a>. См. раздел <a href="mathgl_ru_9.html#Crust-sample">Crust &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Crust-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Crust</b><i> (<code>const mglData &amp;</code>tr, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> er=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcrust_005ftr"></a><u>Функция С:</u> <code>void</code> <b>mgl_crust_tr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> tr, <code>const char *</code>sch, <code>float</code> er)</i></dt>
+<dd><p>Как предыдущий с <var>x=tr</var>(0,:), <var>y=tr</var>(1,:), <var>z=tr</var>(2,:).
+</p></dd></dl>
+
+<hr size="6">
+<a name="TriPlot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Crust" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TriCont" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TriPlot-1"></a>
+<h3 class="subsection">3.14.6 TriPlot</h3>
+<a name="index-TriPlot"></a>
+
+<dl>
+<dt><a name="index-TriPlot-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TriPlot-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftriplot_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_triplot_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dt><a name="index-mgl_005ftriplot_005fxyzc"></a><u>Функция С:</u> <code>void</code> <b>mgl_triplot_xyzc</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует поверхность из треугольников. Вершины треугольников задаются индексами <var>id</var> в массиве точек {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если строка содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Размер по 1-му индексу массива <var>id</var> должен быть 3 или больше. Массивы <var>x</var>, <var>y</var>, <var>z</var> должны иметь одинаковые размеры. Массив <var>c</var> задает цвет треугольников (если <var>id</var>.ny=<var>c</var>.nx) или цвет вершин (если <var>x</var>.nx=<var>c</var>.nx). См. также <a href="#Dots">Dots</a>, <a href="#Crust">Crust</a>, <a href="#QuadPlot">QuadPlot</a>, <a href="#TriCont">TriCont</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TriPlot-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005ftriplot_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_triplot_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>z</var>[i]=<var>zVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="TriCont"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TriPlot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#QuadPlot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TriCont-1"></a>
+<h3 class="subsection">3.14.7 TriCont</h3>
+<a name="index-TriCont"></a>
+
+<dl>
+<dt><a name="index-TriContV"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriContV</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-TriContV-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriContV</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005ftricont_005fxyzcv"></a><u>C function:</u> <code>void</code> <b>mgl_tricont_xyzcv</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dt><a name="index-mgl_005ftricont_005fxyzv"></a><u>C function:</u> <code>void</code> <b>mgl_tricont_xyzv</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует линии уровня поверхности из треугольников при <var>z</var> = <var>zVal</var> (или для <var>z=v</var>[k] если <code>zVal==NAN</code>). Вершины треугольников задаются индексами <var>id</var> в массиве точек {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Размер по 1-му индексу массива <var>id</var> должен быть 3 или больше. Массивы <var>x</var>, <var>y</var>, <var>z</var> должны иметь одинаковые размеры. Массив <var>c</var> задает цвет треугольников (если <var>id</var>.ny=<var>c</var>.nx) или цвет вершин (если <var>x</var>.nx=<var>c</var>.nx). См. также <a href="#TriPlot">TriPlot</a>, <a href="#Cont">Cont</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TriCont-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriCont</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>num</code>=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-TriCont-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriCont</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>num</code>=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005ftricont_005fxyzc"></a><u>C function:</u> <code>void</code> <b>mgl_tricont_xyzc</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch, <code>num</code>, <code>float</code> zVal)</i></dt>
+<dt><a name="index-mgl_005ftricont_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_tricont_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>num</code>, <code>float</code> zVal)</i></dt>
+<dd><p>Аналогично предыдущему с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="QuadPlot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TriCont" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-by-formula" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="QuadPlot-1"></a>
+<h3 class="subsection">3.14.8 QuadPlot</h3>
+<a name="index-QuadPlot"></a>
+
+<dl>
+<dt><a name="index-QuadPlot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>QuadPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-QuadPlot-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>QuadPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fquadplot_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_quadplot_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dt><a name="index-mgl_005fquadplot_005fxyzc"></a><u>C function:</u> <code>void</code> <b>mgl_quadplot_xyzc</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует поверхность из четырехугольников. Вершины четырехугольников задаются индексами <var>id</var> в массиве точек {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если строка содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Размер по 1-му индексу массива <var>id</var> должен быть 4 или больше. Массивы <var>x</var>, <var>y</var>, <var>z</var> должны иметь одинаковые размеры. Массив <var>c</var> задает цвет четырехугольников (если <var>id</var>.ny=<var>c</var>.nx) или цвет вершин (если <var>x</var>.nx=<var>c</var>.nx). См. также <a href="#TriPlot">TriPlot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-QuadPlot-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>QuadPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fquadplot_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_quadplot_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>z</var>[i]=<var>zVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Plots-by-formula"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#QuadPlot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SimplePlot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0413_0440_0430_0444_0438_043a_0438-_0444_0443_043d_043ac_0438_0439"></a>
+<h3 class="subsection">3.14.9 Графики функций</h3>
+<a name="index-Plot-4"></a>
+<a name="index-Surf-3"></a>
+
+<p>Эти функции строят графики 1D или 2D функций, заданный текстовыми формулами. Вам не нужно создавать массивы для их построения. Параметр <var>stl</var> задаект стиль линии (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>) для <code>Plot()</code> или цветовую схему (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>) для <code>Surf()</code>. Параметр <var>n</var> задает минимальное число точек по координате(ам) для графика. В настоящее время (v. 1.10) число точек автоматически увеличивается для области резкого изменения функции, но только для 1D графиков (т.е. для Plot()).
+</p>
+<dl>
+<dt><a name="index-Plot-5"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const char *</code>eqY, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>int</code> n=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005ffplot"></a><u>Функция С:</u> <code>void</code> <b>mgl_fplot</b><i> (<code>HMGL</code> gr, <code>const char *</code>eqY, <code>const char *</code>stl, <code>float</code> zVal, <code>int</code> n)</i></dt>
+<dd><p>Рисует функцию &lsquo;<samp>eqY(x)</samp>&rsquo; в плоскости z=<var>zVal</var> с координатой &lsquo;<samp>x</samp>&rsquo; в диапазоне [<var>Min</var>.x, <var>Max</var>.x]. См. также <a href="#Plot">Plot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Plot-6"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const char *</code>eqX, <code>const char *</code>eqY, <code>const char *</code>eqZ, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>int</code> n=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005ffplot_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_fplot_xyz</b><i> (<code>HMGL</code> gr, <code>const char *</code>eqX, <code>const char *</code>eqY, <code>const char *</code>eqZ, <code>const char *</code>stl, <code>float</code> zVal, <code>int</code> n)</i></dt>
+<dd><p>Рисует параметрическую кривую {&lsquo;<samp>eqX(t)</samp>&rsquo;, &lsquo;<samp>eqY(t)</samp>&rsquo;, &lsquo;<samp>eqZ(t)</samp>&rsquo;}, где координата &lsquo;<samp>t</samp>&rsquo; меняется в диапазоне [0, 1]. См. также <a href="#Plot">Plot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf</b><i> (<code>const char *</code>eqZ, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> n=<code>100</code>);</i></dt>
+<dt><a name="index-mgl_005ffsurf"></a><u>Функция С:</u> <code>void</code> <b>mgl_fsurf</b><i> (<code>HMGL</code> gr, <code>const char *</code>eqZ, <code>const char *</code>stl, <code>int</code> n);</i></dt>
+<dd><p>Рисует поверхность &lsquo;<samp>eqY(x,y)</samp>&rsquo; с координатами &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; в диапазоне [<var>Min</var>, <var>Max</var>]. См. также <a href="#Surf">Surf</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf-5"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf</b><i> (<code>const char *</code>eqX, <code>const char *</code>eqY, <code>const char *</code>eqZ, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> n=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005ffsurf_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_fsurf_xyz</b><i> (<code>HMGL</code> gr, <code>const char *</code>eqX, <code>const char *</code>eqY, <code>const char *</code>eqZ, <code>const char *</code>stl, <code>int</code> n)</i></dt>
+<dd><p>Рисует параметрическую поверхность {&lsquo;<samp>eqX(u,v)</samp>&rsquo;, &lsquo;<samp>eqY(u,v)</samp>&rsquo;, &lsquo;<samp>eqZ(u,v)</samp>&rsquo;}, где координаты &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo; меняются в диапазоне [0, 1]. См. также <a href="#Surf">Surf</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="SimplePlot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-by-formula" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SimplePlot-1"></a>
+<h3 class="subsection">3.14.10 SimplePlot</h3>
+<a name="index-SimplePlot"></a>
+
+<dl>
+<dt><a name="index-SimplePlot-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SimplePlot</b><i> (<code>const mglData &amp;</code>a, <code>int</code> type=<code>0</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsimple_005fplot"></a><u>Функция С:</u> <code>void</code> <b>mgl_simple_plot</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> type, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует график массива <var>a</var> в зависимости от его размерности и параметра <var>type</var>. Строка <var>stl</var> задает стиль графика. Для 1d массивов: <code>type=0</code> &ndash; <a href="#Plot">Plot</a>, <code>type=1</code> &ndash; <a href="#Area">Area</a>, <code>type=2</code> &ndash; <a href="#Step">Step</a>, <code>type=3</code> &ndash; <a href="#Stem">Stem</a>, <code>type=4</code> &ndash; <a href="#Bars">Bars</a>. Для 2d массивов: <code>type=0</code> &ndash; <a href="#Surf">Surf</a>, <code>type=1</code> &ndash; <a href="#Dens">Dens</a>, <code>type=2</code> &ndash; <a href="#Mesh">Mesh</a>, <code>type=3</code> &ndash; <a href="#Cont">Cont</a>. Для 3d массивов: <code>type=0</code> &ndash; <a href="#Surf3">Surf3</a>, <code>type=1</code> &ndash; <a href="#Dens3">Dens3</a>, <code>type=2</code> &ndash; <a href="#Cont3">Cont3</a>, <code>type=2</code> &ndash; <a href="#Cloud">Cloud</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Nonlinear-fitting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SimplePlot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-distributions" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-1"></a>
+<h2 class="section">3.15 Nonlinear fitting</h2>
+<a name="index-Fit"></a>
+<a name="index-FitS"></a>
+<a name="index-PutsFit"></a>
+<a name="index-FitPnts"></a>
+<a name="index-Fit2"></a>
+<a name="index-Fit3"></a>
+
+<p>Эти функции подбирают параметры функции для наилучшей аппроксимации данных, т.е. минимизируют сумму <em>\sum_i (f(x_i, y_i, z_i) - a_i)^2/s_i^2</em>. При этом аппроксимирующая функция &lsquo;<samp>f</samp>&rsquo; может зависеть от одного аргумента &lsquo;<samp>x</samp>&rsquo; (1D случай), от двух аргументов &lsquo;<samp>x,y</samp>&rsquo; (2D случай) или от трех аргументов &lsquo;<samp>x,y,z</samp>&rsquo; (3D случай). Функция &lsquo;<samp>f</samp>&rsquo; также может зависеть от параметров. Список параметров задается строкой <var>var</var> (например, &lsquo;<samp>abcd</samp>&rsquo;). Обычно пользователь должен предоставить начальные значения параметров в переменной <var>ini</var>. Однако, при его отсутствии используются нулевые значения. Параметр <var>print</var>=<code>true</code> включает вывод найденной формулы в <var>Message</var> (see section <a href="#Error-handling">Обработка ошибок</a>).
+</p>
+<p>Функции Fit() и FitS() не рисуют полученные массивы. Они заполняют массив <var>fit</var> по формуле &lsquo;<samp>f</samp>&rsquo; с найденными коэффициентами и возвращают <em>\chi^2</em> ошибку аппроксимации. При этом, координаты &lsquo;<samp>x,y,z</samp>&rsquo; равнораспределены в интервале <var>Min</var>&ndash;<var>Max</var>. Число точек в <var>fit</var> выбирается максимальным из размера массива <var>fit</var> и значения переменной <var>FitPnts</var>. Функции используют библиотеку GSL. См. раздел <a href="mathgl_ru_9.html#Fitting-sample">Fitting &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-FitS-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-FitS-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyzas"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xyzas</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyzas_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xyzas_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-, y- и z-направлений для 3d массива заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FitS-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-FitS-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyzs"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xyzs</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyzs_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xyzs_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x- и y-направлений для 2d массива заданного параметрически <var>a</var>[i,j](<var>x</var>[i,j], <var>y</var>[i,j]) для каждого среза данных.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FitS-5"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-FitS-6"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxys"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xys</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxys_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xys_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-направления для 1d массива заданного параметрически <var>a</var>[i](<var>x</var>[i]) для каждого среза данных.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FitS-7"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-FitS-8"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fys"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_ys</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fys_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_ys_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-направления для 1d массива с <var>x</var> равно распределенным в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyza"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xyza</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyza_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xyza_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-, y- и z-направлений для 3d массива заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) с <var>s</var>[i,j,k]=1.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyz"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xyz</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyz_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xyz_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x- и y-направлений для 2d массива заданного параметрически <var>a</var>[i,j](<var>x</var>[i,j], <var>y</var>[i,j]) с <var>s</var>[i,j]=1 для каждого среза данных.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit-5"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit-6"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxy"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xy</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxy_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xy_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-направления для 1d массива заданного параметрически <var>a</var>[i](<var>x</var>[i]) с <var>s</var>[i]=1 для каждого среза данных.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit-7"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>&quot;&quot;</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit-8"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005f1"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_1</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005f1_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_1_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-направления для 1d массива <var>a</var> с <var>s</var>=1 и <var>x</var> равно распределенным в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit2-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit2</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit2-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit2</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005f2"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_2</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005f2_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_2_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x- и y-направлений для 2d массива <var>a</var> с <var>s</var>=1 и <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit3-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit3</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit3-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit3</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005f3"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_3</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005f3_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_3_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-, y- и z-направлений для 3d массива <var>a</var> с <var>s</var>=1 и <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-PutsFit-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>PutsFit</b><i> (<code>mglPoint</code> p, <code>const char *</code>prefix=<code>&quot;&quot;</code>, <code>const char *</code>font=<code>NULL</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fputs_005ffit"></a><u>Функция С:</u> <code>void</code> <b>mgl_puts_fit</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const char *</code>prefix, <code>const char *</code>font, <code>float</code> size=<code>-1</code>)</i></dt>
+<dd><p>Печатает последнюю подобранную формулу с найденными коэффициентами в точке <var>p0</var>. Строка <var>prefix</var> будет напечатана перед формулой. Все другие параметры такие же как в <a href="#Text-printing">Вывод текста</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetFit"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>const char *</code> <b>GetFit</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fget_005ffit"></a><u>Функция С:</u> <code>const char *</code> <b>mgl_get_fit</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Возвращает последнюю подобранную формулу с найденными коэффициентами.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FitPnts-of-mglGraph"></a><u>Переменная(C++) of mglGraph:</u> <code>int</code> <b>FitPnts</b></dt>
+<dd><p>Минимальное число точек для массива со значениями подобранной формулы.
+</p></dd></dl>
+
+
+
+
+<hr size="6">
+<a name="Data-distributions"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Frames_002fAnimation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0420_0430_0441_043f_0440e_0434e_043be_043d_0438e-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">3.16 Распределение данных</h2>
+<a name="index-Hist"></a>
+
+<p>Эти функции создают распределения данных. Они не выполняют построение сами по себе. Функции могут быть полезны в случае когда данные пользователя определены на случайно расположенных точка (например, после PIC расчетов) и он хочет построить график, требующий регулярных данных (данных на сетках). Диапазон сеток равен диапазону осей координат Min...Max. Массивы <var>x</var>, <var>y</var>, <var>z</var> определяют положение (координаты) точек. Массив <var>a</var> задает значения данных. Число точек в результате <var>res</var> &ndash; максимум из размера <var>res</var> и значения <var>FitPnts</var>.
+</p>
+<dl>
+<dt><a name="index-Hist-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Hist</b><i> (<code>mglData &amp;</code>res, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a)</i></dt>
+<dt><a name="index-mgl_005fhist_005fx"></a><u>C function:</u> <code>int</code> <b>mgl_hist_x</b><i> (<code>HMGL</code> gr, <code>HMDT</code> res, <code>const HMDT</code> x, <code>const HMDT</code> a)</i></dt>
+<dd><p>Создет 1D распределение значений массива <var>a</var> в диапазоне [Min, Max].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Hist-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Hist</b><i> (<code>mglData &amp;</code>res, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a)</i></dt>
+<dt><a name="index-mgl_005fhist_005fxy"></a><u>C function:</u> <code>int</code> <b>mgl_hist_xy</b><i> (<code>HMGL</code> gr, <code>HMDT</code> res, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a)</i></dt>
+<dd><p>Создет 2D распределение значений массива <var>a</var> в диапазоне [Min, Max].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Hist-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Hist</b><i> (<code>mglData &amp;</code>res, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a)</i></dt>
+<dt><a name="index-mgl_005fhist_005fxyz"></a><u>C function:</u> <code>int</code> <b>mgl_hist_xyz</b><i> (<code>HMGL</code> gr, <code>HMDT</code> res, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a)</i></dt>
+<dd><p>Создет 3D распределение значений массива <var>a</var> в диапазоне [Min, Max].
+</p></dd></dl>
+
+
+
+
+<hr size="6">
+<a name="Frames_002fAnimation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-distributions" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#IDTF-functions" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041a_0430_0434_0440_044b_002f_0410_043d_0438_043c_0430c_0438ya"></a>
+<h2 class="section">3.17 Кадры/Анимация</h2>
+<a name="index-NewFrame"></a>
+<a name="index-EndFrame"></a>
+<a name="index-GetNumFrame"></a>
+
+<p>Эти функции позволяют создавать несколько картинок одновременно. В большинстве случаев это бесполезно, но для органов управления (see section <a href="mathgl_ru_5.html#Widget-classes">&ldquo;Оконные&rdquo; классы</a>) это позволяет показывать анимацию. Также можно записать несколько кадров в анимированный GIF файл.
+</p>
+<dl>
+<dt><a name="index-NewFrame-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>int</code> <b>NewFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fnew_005fframe"></a><u>Функция С:</u> <code>int</code> <b>mgl_new_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Создает новый кадр. Функция возвращает номер текущего кадра. В режиме OpenGL функция не должны вызываться в параллельных потоках! &ndash; используйте прямое создание списка. Функция <code>EndFrame()</code> <strong>должна</strong> быть вызвана после рисования кадра для каждого вызова этой функции.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-EndFrame-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>EndFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fend_005fframe"></a><u>Функция С:</u> <code>void</code> <b>mgl_end_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Завершает рисование кадра.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetNumFrame-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>int</code> <b>GetNumFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fget_005fnum_005fframe"></a><u>Функция С:</u> <code>int</code> <b>mgl_get_num_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Возвращает число созданных кадров.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ResetFrames"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ResetFrames</b><i> ()</i></dt>
+<dt><a name="index-mgl_005freset_005fframes"></a><u>Функция С:</u> <code>int</code> <b>mgl_reset_frames</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Сбрасывает счетчик кадров в 0.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-StartGIF"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>StartGIF</b><i> (<code>const char *</code>fname, <code>int</code> ms=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005fstart_005fgif"></a><u>Функция С:</u> <code>void</code> <b>mgl_start_gif</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>int</code> ms)</i></dt>
+<dd><p>Начинает запись кадров в анимированный GIF файл <var>fname</var>. Параметр <var>ms</var> задает задержку между кадрами в миллисекундах. Вы <strong>не должны</strong> менять размер рисунка во время создания кино. Используйте CloseGIF() для завершения записи. Эта функция не работает в режиме OpenGL.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CloseGIF"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>int</code> <b>CloseGIF</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fclose_005fgif"></a><u>Функция С:</u> <code>void</code> <b>mgl_close_gif</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Завершает запись анимированного GIF файла.
+</p></dd></dl>
+
+<hr size="6">
+<a name="IDTF-functions"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Frames_002fAnimation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="IDTF-_0444_0443_043d_043ac_0438_0438"></a>
+<h2 class="section">3.18 IDTF функции</h2>
+<a name="index-NewFrame-2"></a>
+<a name="index-EndFrame-2"></a>
+<a name="index-GetNumFrame-2"></a>
+
+<p>Эти функции обеспечивают поддержку особых возможностей при создании IDTF. Во всех прочих случаях они не делают ничего.
+</p>
+<dl>
+<dt><a name="index-VertexColor"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>VertexColor</b><i> (<code>bool</code> enable)</i></dt>
+<dd><p>Разрешает плавное изменение цвета.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Compression"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Compression</b><i> (<code>bool</code> enable)</i></dt>
+<dd><p>Дает меньший объем файла, но с худшим качеством.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-StartGroup"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>StartGroup</b><i> (const char *name)</i></dt>
+<dd><p>Начинает определение группы. Группа может содержать объекты и другие группы. Они используются для выбора части модели при приближении, изменении прозрачности и т.д.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-EndGroup"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>EndGroup</b><i> ()</i></dt>
+<dd><p>Завершает определение группы.
+</p></dd></dl>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_4.html b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_4.html
new file mode 100644
index 0000000..736b711
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_4.html
@@ -0,0 +1,295 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: 4. Классы для отрисовки</title>
+
+<meta name="description" content="MathGL 1.11: 4. Классы для отрисовки">
+<meta name="keywords" content="MathGL 1.11: 4. Классы для отрисовки">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Plotter-classes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_3.html#IDTF-functions" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglGraphAB-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_5.html#Widget-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+
+<a name="g_t_041a_043b_0430_0441_0441_044b-_0434_043bya-_043e_0442_0440_0438_0441_043e_0432_043a_0438"></a>
+<h1 class="chapter">4. Классы для отрисовки</h1>
+<a name="index-mglGraphAB"></a>
+<a name="index-mglGraphZB"></a>
+<a name="index-mglGraphPS"></a>
+<a name="index-mglGraphGL"></a>
+<a name="index-mglGraphIDTF"></a>
+
+<p>Класс mglGraph (see section <a href="mathgl_ru_3.html#MathGL-core">Ядро MathGL</a>) обеспечивает базовые функции для создания научной графики, но это абстрактный класс. Причина в том, что существует несколько возможностей вывода/отображения получившегося рисунка: в растровый или в векторный файлы, используя OpenGL и т.д. В результате, для конечной отрисовки необходимо использовать производные классы. В принципе, можно наследовать непосредственно mglGraph (и так было до версии 1.6). Однако, я рекомендую использовать в качестве базового класс mglGraphAB для большего единообразия получающейся графики в различных классах. Класс mglGraphAB &ndash; другой абстрактный класс, обеспечивающий преобразование координат, базовые функции рисования и сохранения в растровое изображение. Он требует доопределения функций рисования линий, треугольников и четырехугольников. Ниже приведены классы &ldquo;отрисовки&rdquo; с короткими комментариями.
+</p>
+<dl>
+<dt><a name="index-mglGraphAB-1"></a><u>Класс:</u> <b>mglGraphAB</b></dt>
+<dd><p>Абстрактный класс, обеспечивающий отрисовку по глубине, преобразование к экранным координатам, сохранение в растровое изображение и т.д. Класс определен в <code>#include &lt;mgl/mgl_ab.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglGraphZB-1"></a><u>Класс:</u> <b>mglGraphZB</b></dt>
+<dd><p>Реализует растровую отрисовку изображения используя Z-Buffer. Можно использовать для рисования в памяти (или в консоли/SSH терминале). Также этот класс используется как базовый для рисования в окне (например, используя FLTK, Qt, wxWidgets библиотеки и пр.). При экспорте в EPS формат сохраняется растровая картинка. Получающийся рисунок лучшего качества, но рисуется медленнее чем в классе mglGraphPS. Класс определен в <code>#include &lt;mgl/mgl_zb.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglGraphPS-1"></a><u>Класс:</u> <b>mglGraphPS</b></dt>
+<dd><p>Реализует векторную отрисовку изображения с возможностью сохранения в векторный PostScript или SVG файл. Можно использовать для рисования в памяти (или в консоли/SSH терминале). Замечу, что сглаживание цвета не поддерживается, а при экспорте в EPS не поддерживается и прозрачность (в силу ограничения формата). В результате рисунок получается быстрее, но более низкого качества чем в классе mglGraphZB. Класс определен в <code>#include &lt;mgl/mgl_eps.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglGraphGL-1"></a><u>Класс:</u> <b>mglGraphGL</b></dt>
+<dd><p>Реализует векторную графику с использованием OpenGL. Класс не может быть использован для рисования в консоли. В силу ограничения OpenGL возможна проблема корректного отображения нескольких перекрывающихся поверхностей. Класс определен в <code>#include &lt;mgl/mgl_gl.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglGraphIDTF-1"></a><u>Класс:</u> <b>mglGraphIDTF</b></dt>
+<dd><p>Реализует экспорт графики в IDTF формате, который затем можно преобразовать в формат U3D. Класс определен в <code>#include &lt;mgl/mgl_idtf.h&gt;</code>.
+</p></dd></dl>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#mglGraphAB-class">4.1 Класс mglGraphAB</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="mglGraphAB-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plotter-classes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_5.html#Widget-classes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Plotter-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plotter-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_5.html#Widget-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041a_043b_0430_0441_0441-mglGraphAB"></a>
+<h2 class="section">4.1 Класс mglGraphAB</h2>
+<a name="index-mglGraphAB-2"></a>
+<a name="index-window-1"></a>
+<a name="index-mglDraw"></a>
+
+<p>Вообще говоря это чуть &ldquo;менее абстрактный&rdquo; класс чем mglGraph (see section <a href="mathgl_ru_3.html#MathGL-core">Ядро MathGL</a>). Он предоставляет много методов для обработки промежуточных данных и требует в производных классах определения только нескольких методов для отрисовки примитивов. Разработчикам, наследующим этот класс, следует посмотреть файл &lsquo;<samp>mgl_ab.h</samp>&rsquo; и комментарии в нем или обратиться к автору.
+</p>
+<p>Ниже я только перечислю основные общедоступные методы класса mglGraphAB. В первую очередь это функции, возвращающие созданный растровый рисунок, его ширину и высоту. В дальнейшем его можно использовать в любой графической библиотеке (см. также, <a href="mathgl_ru_5.html#Widget-classes">&ldquo;Оконные&rdquo; классы</a>) или сохранить в файл (см. также, <a href="mathgl_ru_3.html#Export-to-file">Экспорт в файл</a>).
+</p>
+<dl>
+<dt><a name="index-GetBits"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>const unsigned char *</code> <b>GetBits</b><i> ()</i></dt>
+<dt><a name="index-GetRGB"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>GetRGB</b><i> (<code>char *</code>buf, <code>int</code> size)</i></dt>
+<dt><a name="index-GetBGRN"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>GetBGRN</b><i> (<code>char *</code>buf, <code>int</code> size)</i></dt>
+<dt><a name="index-mgl_005fget_005frgb"></a><u>C function:</u> <code>const unsigned char *</code> <b>mgl_get_rgb</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Возвращает растровое изображение в формате RGB для текущего кадра. Формат каждого элемента (пикселя): {red, green, blue}. Число элементов Width*Height. Положение элемента {i,j} есть [3*i + 3*Width*j] (или [4*i + 4*Width*j] для <code>GetBGRN()</code>). В Python вы должны предоставить буфер <var>buf</var> достаточного размера <var>size</var>, т.е. код должен выглядеть следующим образом 
+</p><pre class="verbatim">from mathgl import *
+gr = mglGraph();
+bits='\t';
+bits=bits.expandtabs(4*gr.GetWidth()*gr.GetHeight());
+gr.GetBGRN(bits, len(bits));
+</pre></dd></dl>
+
+<dl>
+<dt><a name="index-GetRGBA"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>const unsigned char *</code> <b>GetRGBA</b><i> ()</i></dt>
+<dt><a name="index-GetRGBA-1"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>GetRGBA</b><i> (<code>char *</code>buf, <code>int</code> size)</i></dt>
+<dt><a name="index-mgl_005fget_005frgba"></a><u>C function:</u> <code>const unsigned char *</code> <b>mgl_get_rgba</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Возвращает растровое изображение в формате RGBA для текущего кадра. Формат каждого элемента (пикселя): {red, green, blue, alpha}. Число элементов Width*Height. Положение элемента {i,j} есть [4*i + 4*Width*j].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetWidth"></a><u>Метод класса <code>mglGraphAB</code> (C++, Python):</u> <code>int</code> <b>GetWidth</b><i> ()</i></dt>
+<dt><a name="index-GetHeight"></a><u>Метод класса <code>mglGraphAB</code> (C++, Python):</u> <code>int</code> <b>GetHeight</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fget_005fwidth"></a><u>C function:</u> <code>int</code> <b>mgl_get_width</b><i> (<code>HMGL</code> gr)</i></dt>
+<dt><a name="index-mgl_005fget_005fheight"></a><u>C function:</u> <code>int</code> <b>mgl_get_height</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Возвращает ширину и высоту изображения.
+</p></dd></dl>
+
+<p>Класс mglGraphAB &ndash; базовый класс для &ldquo;оконных классов&rdquo;. Поэтому он содержит набор функций для создания и управления окном. Большинство из них применимо только в &ldquo;оконных классах&rdquo; (типа mglGraphFLTK и др, see section <a href="mathgl_ru_5.html#Widget-classes">&ldquo;Оконные&rdquo; классы</a>). В остальных случаях функции ничего не делают. Если вы создаете оконный класс, то Вам следует предоставить такой же интерфейс для удобства пользователя.
+</p>
+<dl>
+<dt><a name="index-Window-on-mglGraphAB"></a><u>Method on mglGraphAB:</u> <code>void</code> <b>Window</b><i> (<code>int</code> argc, <code>char **</code>argv, <code>int (*</code>draw)(<code>mglGraph *</code>gr, <code>void *</code>p), <code>const char *</code>title, <code>void *</code>par=<code>NULL</code>, <code>void (*</code>reload)(<code>int</code> next, <code>void *</code>p)=<code>NULL</code>, <code>bool</code> maximize=<code>false</code>)</i></dt>
+<dd><p>Создает окно для вывода графика. Параметры <var>argc</var>, <var>argv</var> содержат информацию операционной системы и их слеудет передать в эту функцию из функции <code>main(int argc,char **argv)</code> (хотя они и могут быть равны <code>NULL</code>). Параметр <var>draw</var> &ndash; указатель (имя) функции рисования. Есть возможность создания нескольких кадров вначале (требует больше памяти) и их быстрая анимации в дальнейшем. В этом случае функция <var>draw</var> должна возвращать число кадров или ноль для рисования по запросу. Замечу, что <var>draw</var> может быть равна <code>NULL</code> для отображения статической (текущей) картинки. Параметр <var>title</var> задает заголовок окна. Параметр <var>par</var> содержит указатель на данные, передаваемые функции рисования <var>draw</var>. Параметр <var>maximize</var>=<code>true</code> открывает окно раскрытым на весь экран.
+</p>
+<p>В окне просмотра можно использовать клавиши: &rsquo;a&rsquo;, &rsquo;d&rsquo;, &rsquo;w&rsquo;, &rsquo;s&rsquo; для вращения; &rsquo;,&rsquo;, &rsquo;.&rsquo; для просмотра предыдущего и следующего кадров; &rsquo;r&rsquo; для переключения прозрачности; &rsquo;f&rsquo; для переключения оспещенности; &rsquo;x&rsquo; для закрытия окна.
+</p>
+<p><strong>ВАЖНО!!!</strong> Вам не следует вызывать функцию Rotate() (see section <a href="mathgl_ru_3.html#Transformation-matrix">Матрица преобразования</a>) если Вы хотите вращать график.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Window-on-mglGraphAB-1"></a><u>Method on mglGraphAB:</u> <code>void</code> <b>Window</b><i> (<code>int</code> argc, <code>char **</code>argv, <code>mglDraw *</code>draw, <code>const char *</code>title, <code>bool</code> maximize=<code>false</code>)</i></dt>
+<dd><p>В основном аналогична предыдущей. Основное отличие в том, что функции рисования и обновления данных определены в классе наследнике класса <code>mglDraw</code>. Этот класс определен в <code>#include &lt;mgl/mgl_define.h&gt;</code> и имеет только 2 метода:
+</p><pre class="verbatim">class mglDraw
+{
+public:
+    virtual int Draw(mglGraph *) { return 0; };
+    virtual void Reload(int) {};
+};
+</pre><p>Вы можете создать класс-наследник <code>mglDraw</code> и переопределить один или оба метода для использования с данной функцией.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-ToggleAlpha"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleAlpha</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005falpha"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_alpha</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Включает/выключает прозрачность, но не перезаписывает настройки пользовательской функции рисования.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ToggleLight"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleLight</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005flight"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_light</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Включает/выключает освещение, но не перезаписывает настройки пользовательской функции рисования.
+Switch on/off lighting but do not overwrite switches in user drawing function.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ToggleZoom"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleZoom</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005fzoom"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_zoom</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Включает/выключает приближение выбранного мышью области рисунка.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ToggleRotate"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleRotate</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005frotate"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_rotate</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Включает/выключает режим вращения мышью. Обычно левая кнопка вращает график, средняя сдвигает, правая приближает и меняет перспективу.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ToggleNo"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleNo</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005fno"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_no</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Выключает режим приближения/вращения и восстанавливает вид по умолчанию.
+Switch off all zooming and rotation and restore initial state.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Update"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>Update</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fupdate"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_update</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Обновляет содержимое окна.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ReLoad"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ReLoad</b><i> (<code>bool</code> o)</i></dt>
+<dt><a name="index-mgl_005fwnd_005freload"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_reload</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+<dd><p>Перезагружает данные пользователя и обновляет картинку.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Adjust"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>Adjust</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fadjust"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_adjust</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Подгоняет размер картинки под размер окна (виджета).
+</p></dd></dl>
+<dl>
+<dt><a name="index-NextFrame"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>NextFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fnext_005fframe"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_next_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Показывает следующий кадр.
+</p></dd></dl>
+<dl>
+<dt><a name="index-PrevFrame"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>PrevFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fprev_005fframe"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_prev_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Показывает предыдущий кадр.
+Show previous frame if one.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Animation"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>Animation</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fanimation"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_animation</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Запускает/останавливает слайд-шоу (анимацию) кадров.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fwnd_005fset_005fauto_005fclf"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_set_auto_clf</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+</dl>
+<dl>
+<dt><a name="index-AutoClf-of-mglGraphAB"></a><u>Widget option of mglGraphAB:</u> <code>bool</code> <b>AutoClf</b></dt>
+<dd><p>Включает/выключает автоматическую очистку рисунка между перерисовкой. Выключение полезно для рисования с накоплением (например, результатов/точек расчета).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fwnd_005fset_005fdelay"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_set_delay</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+</dl>
+<dl>
+<dt><a name="index-Delay-of-mglGraphAB"></a><u>Widget option of mglGraphAB:</u> <code>float</code> <b>Delay</b></dt>
+<dd><p>Задержка анимации в секундах. По умолчанию равно 1 секунде.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CalcXYZ"></a><u>Метод класса <code>mglGraphAB</code> (C++, Python):</u> <code>mglPoint</code> <b>CalcXYZ</b><i> (<code>int</code> xs, <code>int</code> ys)</i></dt>
+<dt><a name="index-mgl_005fcalc_005fxyz-1"></a><u>C function:</u> <code>void</code> <b>mgl_calc_xyz</b><i> (<code>HMGL</code> gr, <code>int</code> xs, <code>int</code> ys, <code>float *</code>x, <code>float *</code>y, <code>float *</code>z)</i></dt>
+<dd><p>Вычисляет 3D координаты {x,y,z} для экранной точки {xs,ys}. В данный момент игнорируется перспектива графика и формулы перехода в криволинейные координаты. Вычисления производятся для последнего использованного InPlot (see section <a href="mathgl_ru_3.html#Transformation-matrix">Матрица преобразования</a>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CalcScr"></a><u>Метод класса <code>mglGraphAB</code> (C++, Python):</u> <code>mglPoint</code> <b>CalcScr</b><i> (<code>mglPoint</code> p)</i></dt>
+<dt><a name="index-CalcScr-1"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>CalcScr</b><i> (<code>mglPoint</code> p, <code>int *</code>xs, <code>int *</code>ys)</i></dt>
+<dt><a name="index-mgl_005fcalc_005fscr"></a><u>C function:</u> <code>void</code> <b>mgl_calc_scr</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>int *</code>xs, <code>int *</code>ys)</i></dt>
+<dd><p>Вычисляет экранные координаты {xs,ys} для 3D координат {x,y,z}. Вычисления производятся для последнего использованного InPlot (see section <a href="mathgl_ru_3.html#Transformation-matrix">Матрица преобразования</a>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fwnd_005fset_005fshow_005fmouse_005fpos"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_set_show_mouse_pos</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+</dl>
+<dl>
+<dt><a name="index-ShowMousePos-of-mglGraphAB"></a><u>Widget option of mglGraphAB:</u> <code>float</code> <b>ShowMousePos</b></dt>
+<dd><p>Включает/выключает показ координат последнего нажатия кнопки мыши на рисунке.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-LastMousePos-of-mglGraphAB"></a><u>Widget option of mglGraphAB:</u> <code>mglPoint</code> <b>LastMousePos</b></dt>
+<dd><p>Последнее положение нажатия кнопки мыши.
+</p></dd></dl>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plotter-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_5.html#Widget-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_5.html b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_5.html
new file mode 100644
index 0000000..a502e42
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_5.html
@@ -0,0 +1,477 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: 5. &ldquo;Оконные&rdquo; классы</title>
+
+<meta name="description" content="MathGL 1.11: 5. &ldquo;Оконные&rdquo; классы">
+<meta name="keywords" content="MathGL 1.11: 5. &ldquo;Оконные&rdquo; классы">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Widget-classes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_4.html#mglGraphAB-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fl_005fMathGL-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_6.html#mglData-class" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+
+<a name="g_t_0060_0060_041e_043a_043e_043d_043d_044be_0027_0027-_043a_043b_0430_0441_0441_044b"></a>
+<h1 class="chapter">5. &ldquo;Оконные&rdquo; классы</h1>
+<a name="index-mglGraphFLTK"></a>
+<a name="index-mglGraphQT"></a>
+<a name="index-mglGraphGLUT"></a>
+<a name="index-Fl_005fMathGL"></a>
+<a name="index-QMathGL"></a>
+<a name="index-window-2"></a>
+<a name="index-widgets-1"></a>
+
+<p>Есть целый набор &ldquo;оконных&rdquo; классов для создания окон с графикой MathGL: <code>mglGraphFLTK</code>, <code>mglGraphQT</code>, <code>mglGraphGLUT</code>. Все эти классы позволяют пользователю просмотривать, вращать, экспортировать рисунок. Большинство из них (кроме <code>mglGraphGLUT</code>) являются наследниками класса <code>mglGraphZB</code> и используют &ldquo;присоединенный&rdquo; класс для центрального виджета окна. Все оконные классы имеют схожий набор функций (see section <a href="mathgl_ru_4.html#mglGraphAB-class">Класс mglGraphAB</a>). Ниже приведен список классов с краткими комментариями.
+</p>
+<dl>
+<dt><a name="index-mglGraphFLTK-1"></a><u>Class:</u> <b>mglGraphFLTK</b></dt>
+<dd><p>Создает окно используя библиотеку FLTK. Окно имеет панель инструментов и меню  для упрощения действий с графиками. &ldquo;Присоединенный&rdquo; класс элемента интерфейса &ndash; <code>Fl_MathGL</code>. Класс определен в <code>#include &lt;mgl/mgl_fltk.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fl_005fMathGL-1"></a><u>Class:</u> <b>Fl_MathGL</b></dt>
+<dd><p>Класс реализует элемент интерфейса FLTK для отображения графики MathGL. Класс определен в <code>#include &lt;mgl/mgl_fltk.h&gt;</code>.
+</p></dd></dl>
+
+<div class="float">
+<img src="fltk.png" alt="fltk">
+
+</div><p><strong>Пример окна FLTK с графикой MathGL.
+</strong>
+</p>
+<dl>
+<dt><a name="index-mglGraphQT-1"></a><u>Class:</u> <b>mglGraphQT</b></dt>
+<dd><p>Создает окно используя библиотеку Qt. Окно имеет панель инструментов и меню  для упрощения действий с графиками. &ldquo;Присоединенный&rdquo; класс элемента интерфейса &ndash; <code>QMathGL</code>. Класс определен в <code>#include &lt;mgl/mgl_qt.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-QMathGL-1"></a><u>Class:</u> <b>QMathGL</b></dt>
+<dd><p>Класс реализует элемент интерфейса Qt для отображения графики MathGL. Класс определен в <code>#include &lt;mgl/mgl_qt.h&gt;</code>.
+</p></dd></dl>
+
+<div class="float">
+<img src="qt.png" alt="qt">
+
+</div><p><strong>Пример окна Qt с графикой MathGL.
+</strong>
+</p>
+<dl>
+<dt><a name="index-mglGraphGLUT-1"></a><u>Class:</u> <b>mglGraphGLUT</b></dt>
+<dd><p>Создает окно используя библиотеку GLUT. Класс определен в <code>#include &lt;mgl/mgl_glut.h&gt;</code>.
+</p></dd></dl>
+
+<div class="float">
+<img src="glut.png" alt="glut">
+
+</div><p><strong>Пример окна GLUT с графикой MathGL.
+</strong>
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Fl_005fMathGL-class">5.1 Класс Fl_MathGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#QMathGL-class">5.2 QMathGL class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Fl_005fMathGL-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Widget-classes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#QMathGL-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Widget-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Widget-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_6.html#mglData-class" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041a_043b_0430_0441_0441-Fl_005fMathGL"></a>
+<h2 class="section">5.1 Класс Fl_MathGL</h2>
+<a name="index-Fl_005fMathGL-2"></a>
+<a name="index-widgets-2"></a>
+
+<p>Класс реализует элемент интерфейса FLTK для отображения графики MathGL (определен в <code>#include &lt;mgl/mgl_fltk.h&gt;</code>).
+</p>
+<dl>
+<dt><a name="index-set_005fdraw-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_draw</b><i> (<code>mglDraw *</code>dr)</i></dt>
+<dd><p>Задает функцию рисования из класса производного от <code>mglDraw</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-update-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>update</b><i> (<code>mglGraph *</code>gr=<code>NULL</code>)</i></dt>
+<dd><p>Обновляет (перерисовывает) график, используя экземпляр класса <var>gr</var> (по умолчанию встроенный).
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fangle-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_angle</b><i> (<code>float</code> t, <code>float</code> p)</i></dt>
+<dd><p>Задает углы для дополнительного вращения графика.
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fstate-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_state</b><i> (<code>int</code> f)</i></dt>
+<dd><p>Задает битовые флаги для: 1 - прозрачности, 2 - освещения.
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fstate-on-Fl_005fMathGL-1"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_state</b><i> (<code>bool</code> z, <code>bool</code> r)</i></dt>
+<dd><p>Задает флаги обработки движений мыши: <var>z</var>=<code>true</code> &ndash; разрешает приближение выделения, <var>r</var>=<code>true</code> разрешает вращение/сдвиг/приближение/перспективу.
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fzoom-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_zoom</b><i> (<code>float</code> X1, <code>float</code> Y1, <code>float</code> X2, <code>float</code> Y2)</i></dt>
+<dd><p>Задает область приближения.
+</p></dd></dl>
+<dl>
+<dt><a name="index-get_005fzoom-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>get_zoom</b><i> (<code>float *</code>X1, <code>float *</code>Y1, <code>float *</code>X2, <code>float *</code>Y2)</i></dt>
+<dd><p>Возвращает область приближения.
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fpopup-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_popup</b><i> (<code>const Fl_Menu_Item *</code>pmenu, <code>Fl_Widget *</code>w, <code>void *</code>v)</i></dt>
+<dd><p>Задает указатель на всплывающее меню.
+</p></dd></dl>
+<dl>
+<dt><a name="index-get_005fgraph-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>mglGraph *</code> <b>get_graph</b><i> ()</i></dt>
+<dd><p>Возвращает указатель на класс, строящий графики.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-tet_005fval-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>Fl_Valuator *</code> <b>tet_val</b></dt>
+<dd><p>Указатель на внешний элемент управления для изменения угла tet.
+</p></dd></dl>
+<dl>
+<dt><a name="index-phi_005fval-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>Fl_Valuator *</code> <b>phi_val</b></dt>
+<dd><p>Указатель на внешний элемент управления для изменения угла phi.
+</p></dd></dl>
+<dl>
+<dt><a name="index-graph-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>mglGraphAB *</code> <b>graph</b></dt>
+<dd><p>Указатель на экземпляр класса для построения графиков.
+</p></dd></dl>
+<dl>
+<dt><a name="index-draw_005fpar-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>void *</code> <b>draw_par</b></dt>
+<dd><p>Параметр для функции рисования.
+</p></dd></dl>
+<dl>
+<dt><a name="index-draw_005ffunc-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>int (*</code> <b>draw_func</b><i> <code>)(mglGraph *gr, void *par)</code></i></dt>
+<dd><p>Указатель на функцию рисования.
+</p></dd></dl>
+
+<hr size="6">
+<a name="QMathGL-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fl_005fMathGL-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_6.html#mglData-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Widget-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Widget-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_6.html#mglData-class" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="QMathGL-class-1"></a>
+<h2 class="section">5.2 QMathGL class</h2>
+<a name="index-QMathGL-2"></a>
+<a name="index-widgets-3"></a>
+
+<p>Класс реализует элемент интерфейса Qt для отображения графики MathGL (определен в <code>#include &lt;mgl/mgl_qt.h&gt;</code>).
+</p>
+<dl>
+<dt><a name="index-setDraw-on-QMathGL"></a><u>Method on QMathGL:</u> <code>void</code> <b>setDraw</b><i> (<code>mglDraw *</code>dr)</i></dt>
+<dd><p>Задает функцию рисования из класса производного от <code>mglDraw</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-setDraw-on-QMathGL-1"></a><u>Method on QMathGL:</u> <code>void</code> <b>setDraw</b><i> (<code>int (*</code>draw)(<code>mglGraph *</code>gr, <code>void *</code>p), <code>void *</code>par=<code>NULL</code>)</i></dt>
+<dd><p>Задает функцию рисования <var>draw</var> и укзатель <var>par</var> на параметр для нее.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-setGraph-on-QMathGL"></a><u>Method on QMathGL:</u> <code>void</code> <b>setGraph</b><i> (<code>mglGraphAB *</code>gr)</i></dt>
+<dd><p>Устанавливает указатель на внешний экземпляр класса для рисования (вместо встроенного <code>mglGraphZB</code>). Отмечу, что QMathGL автоматически удалит этот объект при удалении элемента интерфейса или при новом вызове <code>setGraph()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-setPopup-on-QMathGL"></a><u>Method on QMathGL:</u> <code>void</code> <b>setPopup</b><i> (<code>QMenu *</code>p)</i></dt>
+<dd><p>Задает указатель на всплывающее меню.
+</p></dd></dl>
+<dl>
+<dt><a name="index-setSize-on-QMathGL"></a><u>Method on QMathGL:</u> <code>void</code> <b>setSize</b><i> (<code>int</code> w, <code>int</code> h)</i></dt>
+<dd><p>Задает размеры элемента управления и картинки.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getRatio-on-QMathGL"></a><u>Method on QMathGL:</u> <code>double</code> <b>getRatio</b><i> ()</i></dt>
+<dd><p>Возвращает соотношение сторон рисунка.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-getPer-on-QMathGL"></a><u>Method on QMathGL:</u> <code>int</code> <b>getPer</b><i> ()</i></dt>
+<dd><p>Возвращает величину перспективы в процентах.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getPhi-on-QMathGL"></a><u>Method on QMathGL:</u> <code>int</code> <b>getPhi</b><i> ()</i></dt>
+<dd><p>Возвращает величину угла Phi в градусах.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getTet-on-QMathGL"></a><u>Method on QMathGL:</u> <code>int</code> <b>getTet</b><i> ()</i></dt>
+<dd><p>Возвращает величину угла Theta в градусах.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getAlpha-on-QMathGL"></a><u>Method on QMathGL:</u> <code>bool</code> <b>getAlpha</b><i> ()</i></dt>
+<dd><p>Возвращает состояние переключателя прозрачности.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getLight-on-QMathGL"></a><u>Method on QMathGL:</u> <code>bool</code> <b>getLight</b><i> ()</i></dt>
+<dd><p>Возвращает состояние переключателя освещения.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getZoom-on-QMathGL"></a><u>Method on QMathGL:</u> <code>bool</code> <b>getZoom</b><i> ()</i></dt>
+<dd><p>Возвращает состояние переключателя приближения мышью.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getRotate-on-QMathGL"></a><u>Method on QMathGL:</u> <code>bool</code> <b>getRotate</b><i> ()</i></dt>
+<dd><p>Возвращает состояние переключателя вращения мышью.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-void-on-QMathGL"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> refresh ()</i></dt>
+<dd><p>Перерисовывает (обновляет) элемент управления без вызова функции рисования.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-1"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> update (<code>mglGraph *</code>gr=<code>NULL</code>)</i></dt>
+<dd><p>Обновляет рисунок путем вызова функции рисования.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-2"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> copy ()</i></dt>
+<dd><p>Копирует график в буфер обмена.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-3"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setPer (<code>int</code> val)</i></dt>
+<dd><p>Задает величину перспективы.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-4"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setPhi (<code>int</code> val)</i></dt>
+<dd><p>Задает величину угла Phi.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-5"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setTet (<code>int</code> val)</i></dt>
+<dd><p>Задает величину угла Theta.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-6"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setAlpha (<code>bool</code> val)</i></dt>
+<dd><p>Включает/выключает прозрачность.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-7"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setLight (<code>bool</code> val)</i></dt>
+<dd><p>Включает/выключает освещение.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-8"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setZoom (<code>bool</code> val)</i></dt>
+<dd><p>Включает/выключает приближение мышью.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-9"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setRotate (<code>bool</code> val)</i></dt>
+<dd><p>Включает/выключает вращение мышью.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-10"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> zoomIn ()</i></dt>
+<dd><p>Приблиажет график.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-11"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> zoomOut ()</i></dt>
+<dd><p>Отдаляет график.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-12"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> restore ()</i></dt>
+<dd><p>Восстанавливает приближение и поворот графика в значения по умолчанию.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-13"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> reload ()</i></dt>
+<dd><p>Обновляет данные и перерисовывает график.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-14"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> shiftLeft ()</i></dt>
+<dd><p>Сдвигает график влево.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-15"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> shiftRight ()</i></dt>
+<dd><p>Сдвигает график вправо.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-16"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i>shiftUp  ()</i></dt>
+<dd><p>Сдвигает график вверх.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-17"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> shiftDown ()</i></dt>
+<dd><p>Сдвигает график вниз.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-18"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportPNG (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Сохраняет текущий рисунок в PNG файл.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-19"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportPNGs (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Сохраняет текущий рисунок в PNG файл без прозрачности.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-20"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportJPG (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Сохраняет текущий рисунок в JPEG файл.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-21"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportBPS (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Сохраняет текущий рисунок в растровый EPS файл.
+Export current picture to bitmap EPS file.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-22"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportEPS (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Сохраняет текущий рисунок в векторный EPS файл.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-23"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportSVG (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Сохраняет текущий рисунок в векторный SVG файл.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-24"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportIDTF (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Сохраняет текущий рисунок в IDTF файл.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-25"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setMGLFont (<code>QString</code> path)</i></dt>
+<dd><p>Восстанавливает (<var>path</var>=<code>&quot;&quot;</code>) или загружает файлы шрифтов.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-26"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> print ()</i></dt>
+<dd><p>Печатает текущий рисунок.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-27"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> adjust ()</i></dt>
+<dd><p>Подгоняет размер картинки под размер окна. Функция выполняется только если graph &ndash; экземпляр класса mglGraphQT.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-28"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> nextSlide ()</i></dt>
+<dd><p>Показывает следующий кадр. Функция выполняется только если graph &ndash; экземпляр класса mglGraphQT.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-29"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> prevSlide ()</i></dt>
+<dd><p>Показывает предыдущий кадр. Функция выполняется только если graph &ndash; экземпляр класса mglGraphQT.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-30"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> animation (<code>bool</code> st=<code>true</code>)</i></dt>
+<dd><p>Запускает анимацию. Функция выполняется только если graph &ndash; экземпляр класса mglGraphQT.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-31"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> about ()</i></dt>
+<dd><p>Показывает информацию о программе.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-32"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> aboutQt ()</i></dt>
+<dd><p>Показывает информацию о версии Qt.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-void-on-QMathGL-33"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> phiChanged (<code>int</code> val)</i></dt>
+<dd><p>Угол Phi изменен.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-34"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> tetChanged (<code>int</code> val)</i></dt>
+<dd><p>Угол Tet изменен.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-35"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> perChanged (<code>int</code> val)</i></dt>
+<dd><p>Перспектива изменена.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-36"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> alphaChanged (<code>bool</code> val)</i></dt>
+<dd><p>Прозрачность изменена.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-37"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> lightChanged (<code>bool</code> val)</i></dt>
+<dd><p>Освещение изменено.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-38"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> zoomChanged (<code>bool</code> val)</i></dt>
+<dd><p>Режим приближения мышью изменен.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-39"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> rotateChanged (<code>bool</code> val)</i></dt>
+<dd><p>Режим вращения мышью изменен.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-appName-of-QMathGL"></a><u>Widget option of QMathGL:</u> <code>QString</code> <b>appName</b></dt>
+<dd><p>Имя приложения для окон сообщений.
+</p></dd></dl>
+<dl>
+<dt><a name="index-autoResize-of-QMathGL"></a><u>Widget option of QMathGL:</u> <code>bool</code> <b>autoResize</b></dt>
+<dd><p>Разрешить изменять размер рисунка (по умолчанию false).
+</p></dd></dl>
+<dl>
+<dt><a name="index-animDelay-of-QMathGL"></a><u>Widget option of QMathGL:</u> <code>int</code> <b>animDelay</b></dt>
+<dd><p>Задержка анимации в мсек.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Widget-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_6.html#mglData-class" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_6.html b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_6.html
new file mode 100644
index 0000000..eb2d865
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_6.html
@@ -0,0 +1,1115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: 6. Класс mglData</title>
+
+<meta name="description" content="MathGL 1.11: 6. Класс mglData">
+<meta name="keywords" content="MathGL 1.11: 6. Класс mglData">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="mglData-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_5.html#QMathGL-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Public-variables" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_5.html#Widget-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041a_043b_0430_0441_0441-mglData"></a>
+<h1 class="chapter">6. Класс mglData</h1>
+
+<p>Это класс для работы с массивами данных, определенный в <code>#include &lt;mgl/mgl_data.h&gt;</code>. Он содержит функции для выделения памяти и изменения размера данных, чтения данных из файла, численного дифференцирования/интегрирования/интерполяции и пр., заполнения по текстовой формуле и т.д. Класс позволяет работать с данными размерности не более 3 (как функции от трех переменных &ndash; x,y,z). По умолчанию внутреннее представление данных &ndash; float, выбранный в силу меньшего размера занимаемой памяти и достаточной для построения графиков точности. Базовый тип можно сменить на этапе установки (see section <a href="mathgl_ru_1.html#Installation-and-using">Установка MathGL</a>) указав опцию <code>--enable-double</code>. Однако, в дальнейшем в документации будет использован тип <code>float</code>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Public-variables">6.1 Переменные</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Create-and-delete">6.2 Создание и удаление</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fill">6.3 Заполнение данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Rearrange">6.4 Изменение размеров данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#File-I_002fO">6.5 Чтение/сохранение данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Make-another-data">6.6 Создание новых данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Change-data">6.7 Изменение данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Interpolation">6.8 Интерполяция</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Informational-functions">6.9 Информационные функции</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Operators">6.10 Операторы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Global-functions">6.11 Глобальные функции</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Public-variables"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglData-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Create-and-delete" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041fe_0440e_043ce_043d_043d_044be"></a>
+<h2 class="section">6.1 Переменные</h2>
+
+<dl>
+<dt><a name="index-a-of-mglData"></a><u>Variable of mglData:</u> <code>float *</code> <b>a</b></dt>
+<dd><p>Указатель на массив данных. Это одномерный массив. Например, матрица [nx x ny x nz] представляется одномерным массивом длиной nx*ny*nz, где элемент с индексами {i, j, k} находится как a[i+nx*j+nx*ny*k] (индексы отсчитываются от нуля).
+</p></dd></dl>
+<dl>
+<dt><a name="index-nx-of-mglData"></a><u>Variable of mglData:</u> <code>int</code> <b>nx</b></dt>
+<dd><p>Размер массива по 1-ой размерности (&rsquo;x&rsquo; размерности).
+</p></dd></dl>
+<dl>
+<dt><a name="index-ny-of-mglData"></a><u>Variable of mglData:</u> <code>int</code> <b>ny</b></dt>
+<dd><p>Размер массива по 2-ой размерности (&rsquo;y&rsquo; размерности).
+</p></dd></dl>
+<dl>
+<dt><a name="index-nz-of-mglData"></a><u>Variable of mglData:</u> <code>int</code> <b>nz</b></dt>
+<dd><p>Размер массива по 3-ей размерности (&rsquo;z&rsquo; размерности).
+</p></dd></dl>
+<dl>
+<dt><a name="index-id-of-mglData"></a><u>Variable of mglData:</u> <code>char *</code> <b>id</b></dt>
+<dd><p>Имена колонки (или среза при nz&gt;1) &ndash; один символ на колонку.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Create-and-delete"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Public-variables" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fill" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_043e_0437_0434_0430_043d_0438e-_0438-_0443_0434_0430_043be_043d_0438e"></a>
+<h2 class="section">6.2 Создание и удаление</h2>
+<a name="index-mglData"></a>
+<a name="index-Set"></a>
+
+<dl>
+<dt><a name="index--on-mglData"></a><u>Конструктор on <code>mglData</code>:</u> <b><code></code></b><i> mglData (<code>int</code> mx=<code>1</code>, <code>int</code> my=<code>1</code>, <code>int</code> mz=<code>1</code>)</i></dt>
+<dd><p>Конструктор по умолчанию. Выделяет память для массива данных и заполняет ее нулями.
+</p></dd></dl>
+<dl>
+<dt><a name="index--on-mglData-1"></a><u>Конструктор on <code>mglData</code>:</u> <b><code></code></b><i> mglData (<code>const char *</code>fname)</i></dt>
+<dd><p>Читает данные из файла.
+</p></dd></dl>
+<dl>
+<dt><a name="index--on-mglData-2"></a><u>Конструктор on <code>mglData</code>:</u> <b><code></code></b><i> mglData (<code>const mglData</code> &amp;dat)</i></dt>
+<dd><p>Копирует данные из другого экземпляра <code>mglData</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Create"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Create</b><i> (<code>int</code> mx, <code>int</code> my=<code>1</code>, <code>int</code> mz=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fcreate"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_create</b><i> (<code>HMDT</code> dat, <code>int</code> mx, <code>int</code> my, <code>int</code> mz)</i></dt>
+<dd><p>Создает/пересоздает массив данных указанного размера и заполняет его нулями. Ничего не делает при <var>mx</var>, <var>my</var>, <var>mz</var> отрицательных или равных нулю.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-1"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const float *</code>A, <code>int</code> NX, <code>int</code> NY=<code>1</code>, <code>int</code> NZ=<code>1</code>)</i></dt>
+<dt><a name="index-Set-2"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const double *</code>A, <code>int</code> NX, <code>int</code> NY=<code>1</code>, <code>int</code> NZ=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005ffloat"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_float</b><i> (<code>HMDT</code> dat, <code>const float *</code>A, <code>int</code> NX, <code>int</code> NY, <code>int</code> NZ)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fdouble"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_double</b><i> (<code>HMDT</code> dat, <code>const double *</code>A, <code>int</code> NX, <code>int</code> NY, <code>int</code> NZ)</i></dt>
+<dd><p>Выделяет память и копирует данные из массивов типа <code>float*</code> или <code>double*</code>, т.е. из массивов определенных как <code>float a[NX*NY*NZ];</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-3"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const float **</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-Set-4"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const double **</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005ffloat2"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_float2</b><i> (<code>HMDT</code> dat, <code>const float **</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fdouble2"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_double2</b><i> (<code>HMDT</code> dat, <code>const double **</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dd><p>Выделяет память и копирует данные из массивов типа <code>float**</code> или <code>double**</code> с размерностями <var>N1</var>, <var>N2</var>, т.е. из массивов определенных как <code>float a[N1][N2];</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-5"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const float ***</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-Set-6"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const double ***</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005ffloat3"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_float3</b><i> (<code>HMDT</code> dat, <code>const float ***</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fdouble3"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_double3</b><i> (<code>HMDT</code> dat, <code>const double ***</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dd><p>Выделяет память и копирует данные из массивов типа <code>float***</code> или <code>double***</code> с размерностями <var>N1</var>, <var>N2</var>, <var>N3</var>, т.е. из массивов определенных как <code>float a[N1][N2][N3];</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-7"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>gsl_vector *</code>v)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fvector"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_vector</b><i> (<code>HMDT</code> dat, <code>gsl_vector *</code>v)</i></dt>
+<dd><p>Выделяет память и копирует данные из структуры типа <code>gsl_vector *</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-8"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>gsl_matrix *</code>m)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fmatrix"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_matrix</b><i> (<code>HMDT</code> dat, <code>gsl_matrix *</code>m)</i></dt>
+<dd><p>Выделяет память и копирует данные из структуры типа <code>gsl_matrix *</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-9"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>inline void</code> <b>Set</b><i> (<code>const mglData &amp;</code>from)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> from)</i></dt>
+<dd><p>Выделяет память и копирует данные из другого экземпляра <var>from</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-10"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const std::vector&lt;int&gt; &amp;</code>d)</i></dt>
+<dt><a name="index-Set-11"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const std::vector&lt;float&gt; &amp;</code>d)</i></dt>
+<dt><a name="index-Set-12"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const std::vector&lt;double&gt; &amp;</code>d)</i></dt>
+<dd><p>Выделяет память и копирует данные из массива типа <code>std::vector&lt;T&gt;</code>.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-Set-13"></a><u>Метод класса <code>mglData</code> (C+, Python):</u> <code>void</code> <b>Set</b><i> (<code>const char *</code>str, <code>int</code> NX, <code>int</code> NY=<code>1</code>, <code>int</code> NZ=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fvalues"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_values</b><i> (<code>const char *</code>str, <code>int</code> NX, <code>int</code> NY, <code>int</code> NZ)</i></dt>
+<dd><p>Выделяет память и сканирует (scanf) данные из строки.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fill"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Create-and-delete" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Rearrange" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0417_0430_043f_043e_043b_043de_043d_0438e-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">6.3 Заполнение данных</h2>
+<a name="index-Fill"></a>
+<a name="index-Modify"></a>
+
+<dl>
+<dt><a name="index-Fill-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Fill</b><i> (<code>float</code> x1, <code>float</code> x2, <code>char</code> dir=<code>'x'</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005ffill"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_fill</b><i> (<code>HMDT</code> dat, <code>float</code> x1, <code>float</code> x2, <code>char</code> dir)</i></dt>
+<dd><p>Заполняет значениями равно распределенными в диапазоне [<var>x1</var>, <var>x2</var>] в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;,&lsquo;<samp>y</samp>&rsquo;,&lsquo;<samp>z</samp>&rsquo;}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fill-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Fill</b><i> (<code>const char *</code>eq, <code>mglPoint</code> Min, <code>mglPoint</code> Max, <code>const mglData *</code>vdat=0, <code>const mglData *</code>wdat=0)</i></dt>
+<dt><a name="index-mgl_005fdata_005ffill-1"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_fill</b><i> (<code>HMGL</code> gr, <code>HMDT</code> dat, <code>const char *</code>eq, <code>const HMDT *</code>vdat, <code>const HMDT *</code>wdat)</i></dt>
+<dd><p>Заполняет значениями вычисленными по формуле <var>eq</var>. Формула представляет собой произвольное выражение, зависящее от переменных &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Координаты &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; полагаются меняющимися в диапазоне <var>Min</var> x <var>Max</var> (в отличие от функции <code>Modify</code>). Переменная &lsquo;<samp>u</samp>&rsquo; &ndash; значения исходного массива, переменные &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo; &ndash; значения массивов <var>vdat</var>, <var>wdat</var>. Последние могут быть <code>NULL</code>, т.е. опущены.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Modify-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Modify</b><i> (<code>const char *</code>eq, <code>int</code> dim=<code>0</code>)</i></dt>
+<dt><a name="index-Modify-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Modify</b><i> (<code>const char *</code>eq, <code>const mglData &amp;</code>v)</i></dt>
+<dt><a name="index-Modify-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Modify</b><i> (<code>const char *</code>eq, <code>const mglData &amp;</code>v, <code>const mglData &amp;</code>w)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmodify"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_modify</b><i> (<code>HMDT</code> dat, <code>const char *</code>eq, <code>int</code> dim)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmodify_005fvw"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_modify_vw</b><i> (<code>HMDT</code> dat, <code>const char *</code>eq, <code>const HMDT</code> v, <code>const HMDT</code> w)</i></dt>
+<dd><p>Заполняет значениями вычисленными по формуле <var>eq</var>. Формула представляет собой произвольное выражение, зависящее от переменных &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Координаты &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; полагаются меняющимися в диапазоне [0,1] (в отличие от функции <code>Fill</code>). Переменная &lsquo;<samp>u</samp>&rsquo; &ndash; значения исходного массива, переменные &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo; &ndash; значения массивов <var>vdat</var>, <var>wdat</var>. Последние могут быть <code>NULL</code>, т.е. опущены. Если указан <var>dim</var>&gt;0, то изменяются только слои &gt;=<var>dim</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Put"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Put</b><i> (<code>float</code> val, <code>int</code> i=<code>-1</code>, <code>int</code> j=<code>-1</code>, <code>int</code> k=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fput_005fval"></a><u>mglData:</u> <code>void</code> <b>mgl_data_put_val</b><i> (<code>HMDT</code> a, <code>float</code> val, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Присваивает значения (под-)массива <var>dat</var>[<var>i</var>, <var>j</var>, <var>k</var>] = <var>val</var>. Индексы <var>i</var>, <var>j</var>, <var>k</var> равные &lsquo;<samp>-1</samp>&rsquo; задают значениия <var>val</var> для всего диапазона соответствующего направления(ий). Например, <code>Put(val,-1,0,-1);</code> задает a[i,0,j]=<var>val</var> для i=0...(nx-1), j=0...(nz-1).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Put-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Put</b><i> (<code>const mglData &amp;</code>v, <code>int</code> i=<code>-1</code>, <code>int</code> j=<code>-1</code>, <code>int</code> k=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fput_005fdat"></a><u>mglData:</u> <code>void</code> <b>mgl_data_put_dat</b><i> (<code>HMDT</code> a, <code>const HMDT</code> v, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Копирует значения из массива <var>v</var> в диапазон значений данного массива. Индексы <var>i</var>, <var>j</var>, <var>k</var> равные &lsquo;<samp>-1</samp>&rsquo; задают диапазон изменения значений в соответствующих направление(ях). Младшие размерности массива <var>v</var> должны быть больше выбранного диапазона массива. Например, <code>Put(v,-1,0,-1);</code> присвоитa[i,0,j]=<var>v</var>.ny&gt;nz ? <var>v</var>.a[i,j] : <var>v</var>.a[i], где i=0...(nx-1), j=0...(nz-1) и условие v.nx&gt;=nx выполнено.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fdata_005fset_005fvalue"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_value</b><i> (<code>HMDT</code> dat, <code>float</code> v, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Присваивает значение выбранной ячейке массива данных.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fdata_005fget_005fvalue"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_get_value</b><i> (<code>HMDT</code> dat, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Возвращает значение выбранной ячейки массива данных.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetNx"></a><u>Метод класса <code>mglData</code> (C+, Python):</u> <code>void</code> <b>GetNx</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fdata_005fget_005fnx"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_get_nx</b><i> (<code>HMDT</code> dat)</i></dt>
+<dd><p>Возвращает размер по x-направлению.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetNy"></a><u>Метод класса <code>mglData</code> (C+, Python):</u> <code>void</code> <b>GetNy</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fdata_005fget_005fny"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_get_ny</b><i> (<code>HMDT</code> dat)</i></dt>
+<dd><p>Возвращает размер по y-направлению.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetNz"></a><u>Метод класса <code>mglData</code> (C+, Python):</u> <code>void</code> <b>GetNz</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fdata_005fget_005fnz"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_get_nz</b><i> (<code>HMDT</code> dat)</i></dt>
+<dd><p>Возвращает размер по z-направлению.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Rearrange"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fill" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#File-I_002fO" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_0437_043ce_043de_043d_0438e-_0440_0430_0437_043ce_0440_043e_0432-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">6.4 Изменение размеров данных</h2>
+<a name="index-Rearrange"></a>
+<a name="index-Extend"></a>
+<a name="index-Transpose"></a>
+<a name="index-Squeeze"></a>
+<a name="index-Crop"></a>
+<a name="index-InsertRows"></a>
+<a name="index-InsertColumns"></a>
+<a name="index-InsertSlices"></a>
+<a name="index-DeleteRows"></a>
+<a name="index-DeleteColumns"></a>
+<a name="index-DeleteSlices"></a>
+<a name="index-Insert"></a>
+<a name="index-Delete"></a>
+
+<dl>
+<dt><a name="index-Rearrange-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Rearrange</b><i> (<code>int</code> mx, <code>int</code> my=<code>0</code>, <code>int</code> mz=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005frearrange"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_rearrange</b><i> (<code>HMDT</code> dat, <code>int</code> mx, <code>int</code> my, <code>int</code> mz)</i></dt>
+<dd><p>Изменяет размерность данных без изменения самого массива данных, так что результирующий массив <var>mx</var>*<var>my</var>*<var>mz</var> &lt; nx*ny*nz. Если один из параметров <var>my</var> или <var>mz</var> ноль, то он будет выбран оптимальным образом. Например, если <var>my</var>=0, то будет <var>my</var>=nx*ny*nz/<var>mx</var> и <var>mz</var>=1.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Extend-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Extend</b><i> (<code>int</code> n1, <code>int</code> n2=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fextend"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_extend</b><i> (<code>HMDT</code> dat, <code>int</code> n1, <code>int</code> n2)</i></dt>
+<dd><p>Увеличивает размер данных путем вставки (|<var>n1</var>|+1) новых срезов после (для <var>n1</var>&gt;0) или перед (для <var>n1</var>&lt;0) существующими данными. Можно добавить сразу 2 размерности для 1d массива, используя второй параметр <var>n2</var>. Данные в новые срезы будут скопированы из существующих. Например, для <var>n1</var>&gt;0 новый массив будет
+a_ij^new = a_i^old where j=0...<var>n1</var>. Соответственно, для <var>n1</var>&lt;0 новый массив будет a_ij^new = a_j^old, где i=0...|<var>n1</var>|.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Transpose-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Transpose</b><i> (<code>const char *</code>dim=<code>&quot;yx&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005ftranspose"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_transpose</b><i> (<code>const char *</code>dim)</i></dt>
+<dd><p>Транспонирует (меняет порядок размерностей) массив данных. Новый порядок размерностей задается строкой <var>dim</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Squeeze-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Squeeze</b><i> (<code>int</code> rx, <code>int</code> ry=<code>1</code>, <code>int</code> rz=<code>1</code>, <code>bool</code> smooth=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsqueeze"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_squeeze</b><i> (<code>HMDT</code> dat, <code>int</code> rx, <code>int</code> ry, <code>int</code> rz, <code>int</code> smooth)</i></dt>
+<dd><p>Уменьшает размер данных путем удаления элементов с индексами не кратными <var>rx</var>, <var>ry</var>, <var>rz</var> соответственно. Параметр <var>smooth</var> задает использовать сглаживания
+(т.е. out[i]=\sum_{j=i,i+r} a[j]/r) или нет (т.е. out[i]=a[j*r]).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Crop-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Crop</b><i> (<code>int</code> n1, <code>int</code> n2, <code>char</code> dir=<code>'x'</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fcrop"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_crop</b><i> (<code>HMDT</code> dat, <code>int</code> n1, <code>int</code> n2, <code>char</code> dir)</i></dt>
+<dd><p>Обрезает границы данных при <var>i</var>&lt;<var>n1</var> и <var>i</var>&gt;<var>n2</var> (при <var>n2</var>&gt;0) или <var>i</var>&gt;<code>n[xyz]</code>-<var>n2</var> (при <var>n2</var>&lt;=0) вдоль направления <var>dir</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-InsertRows-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>InsertRows</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>, <code>const char *</code>eq=<code>NULL</code>)</i></dt>
+<dd><p>Вставляет <var>num</var> срезов вдоль направления &rsquo;y&rsquo; (строк) с позиции <var>at</var> и заполняет их по формуле <var>eq</var> (при <var>eq</var>!=0) или нулями.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-InsertColumns-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>InsertColumns</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>, <code>const char *</code>eq=<code>NULL</code>)</i></dt>
+<dd><p>Вставляет <var>num</var> срезов вдоль направления &rsquo;x&rsquo; (колонок) с позиции <var>at</var> и заполняет их по формуле <var>eq</var> (при <var>eq</var>!=0) или нулями.
+</p></dd></dl>
+<dl>
+<dt><a name="index-InsertSlices-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>InsertSlices</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>, <code>const char *</code>eq=<code>NULL</code>)</i></dt>
+<dd><p>Вставляет <var>num</var> срезов вдоль направления &rsquo;z&rsquo; с позиции <var>at</var> и заполняет их по формуле <var>eq</var> (при <var>eq</var>!=0) или нулями.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DeleteRows-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>DeleteRows</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>)</i></dt>
+<dd><p>Удаляет <var>num</var> срезов вдоль направления &rsquo;y&rsquo; (строк) с позиции <var>at</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-DeleteColumns-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>DeleteColumns</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>)</i></dt>
+<dd><p>Удаляет <var>num</var> срезов вдоль направления &rsquo;x&rsquo; (колонок) с позиции <var>at</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-DeleteSlices-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>DeleteSlices</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>)</i></dt>
+<dd><p>Удаляет <var>num</var> срезов вдоль направления &rsquo;z&rsquo; с позиции <var>at</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Insert-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Insert</b><i> (<code>char</code> dir, <code>int</code> pos=<code>0</code>, <code>int</code> num=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005finsert"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_insert</b><i> (<code>HMDT</code> dat, <code>char</code> dir, <code>int</code> pos, <code>char</code> num)</i></dt>
+<dd><p>Вставляет <var>num</var> срезов вдоль направления <var>dir</var> с позиции <var>pos</var> и заполняет их нулями.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Delete-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Delete</b><i> (<code>char</code> dir, <code>int</code> pos=<code>0</code>, <code>int</code> num=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdelete"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_delete</b><i> (<code>HMDT</code> dat, <code>char</code> dir, <code>int</code> pos, <code>char</code> num)</i></dt>
+<dd><p>Удаляет <var>num</var> срезов вдоль направления <var>dir</var> с позиции <var>pos</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="File-I_002fO"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Rearrange" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Make-another-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0427_0442e_043d_0438e_002f_0441_043e_0445_0440_0430_043de_043d_0438e-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">6.5 Чтение/сохранение данных</h2>
+<a name="index-Read"></a>
+<a name="index-ReadMat"></a>
+<a name="index-ReadAll"></a>
+<a name="index-ReadRange"></a>
+<a name="index-ReadHDF"></a>
+<a name="index-Save"></a>
+<a name="index-SaveHDF"></a>
+<a name="index-Export"></a>
+<a name="index-Import"></a>
+
+<dl>
+<dt><a name="index-Read-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Read</b><i> (<code>const char *</code>fname)</i></dt>
+<dt><a name="index-mgl_005fdata_005fread"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_read</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname)</i></dt>
+<dd><p>Читает данные из текстового файла с разделителями символом пробела/табуляции с автоматическим определением размера массива. Двойной перевод строки начинает новый срез данных (по направлению z).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Read-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Read</b><i> (<code>const char *</code>fname, <code>int</code> mx, <code>int</code> my=<code>1</code>, <code>int</code> mz=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fread_005fdim"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_read_dim</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname, <code>int</code> mx, <code>int</code> my, <code>int</code> mz)</i></dt>
+<dd><p>Читает данные из текстового файла с заданными размерами. Ничего не делается если параметры <var>mx</var>, <var>my</var> или <var>mz</var> равны нулю или отрицательны.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ReadMat-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>ReadMat</b><i> (<code>const char *</code>fname, <code>int</code> dim=<code>2</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fread_005fmat"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_read_mat</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname, <code>int</code> dim)</i></dt>
+<dd><p>Читает данные из текстового файла с размерами, указанными в первых <var>dim</var> числах файла. При этом переменная <var>dim</var> задает размерность (1d, 2d, 3d) данных.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ReadRange-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>ReadRange</b><i> (<code>const char *</code>templ, <code>float</code> from, <code>float</code> to, <code>float</code> step=<code>1.f</code>, <code>bool</code> as_slice=<code>false</code>)</i></dt>
+<dd><p>Объединяет данные из нескольких текстовых файлов. Имена файлов определяются вызовом функции <code>sprintf(fname,templ,val);</code>, где <var>val</var> меняется от <var>from</var> до <var>to</var> с шагом <var>step</var>. Данные загружаются один за другим в один и тот же срез данных (при <var>as_slice</var>=<code>false</code>) или срез-за-срезом (при <var>as_slice</var>=<code>true</code>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ReadAll-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>ReadAll</b><i> (<code>const char *</code>templ, <code>bool</code> as_slice=<code>false</code>)</i></dt>
+<dd><p>Объединяет данные из нескольких текстовых файлов, чьи имена удовлетворяют шаблону <var>templ</var> (например, <var>templ</var>=<code>&quot;t_*.dat&quot;</code>). Данные загружаются один за другим в один и тот же срез данных (при <var>as_slice</var>=<code>false</code>) или срез-за-срезом (при <var>as_slice</var>=<code>true</code>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Save-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Save</b><i> (<code>const char *</code>fname, <code>int</code> ns=<code>-1</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fsave"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_save</b><i> (<code>const HMDT</code> dat, <code>const char *</code>fname, <code>int</code> ns)</i></dt>
+<dd><p>Сохраняет весь массив данных при <var>ns</var>=<code>-1</code> или только <var>ns</var>-ый срез в текстовый файл.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ReadHDF-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>ReadHDF</b><i> (<code>const char *</code>fname, <code>const char *</code>dname)</i></dt>
+<dd><p>Читает массив с именем <var>dname</var> из HDF5 или HDF4 файла <var>fname</var>. Функция ничего не делает если библиотека была собрана с флагами NO_HDF5|NO_HDF4.
+</p></dd></dl>
+<dl>
+<dt><a name="index-SaveHDF-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>SaveHDF</b><i> (<code>const char *</code>fname, <code>const char *</code>dname, <code>bool</code> rewrite=<code>false</code>) <code>const</code></i></dt>
+<dd><p>Сохраняет массив под именем <var>dname</var> в HDF5 или HDF4 файл <var>fname</var>. Функция ничего не делает если библиотека была собрана с флагами NO_HDF5|NO_HDF4.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Import-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Import</b><i> (<code>const char *</code>fname, <code>const char *</code>scheme, <code>float</code> v1=<code>0</code>, float v2=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fimport"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_import</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname, <code>const char *</code>scheme, <code>float</code> v1, float v2)</i></dt>
+<dd><p>Читает данные из растрового файла. RGB значения пикселов преобразуются в число в диапазоне [<var>v1</var>, <var>v2</var>] используя цветовую схему <var>sch</var> (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Export-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Export</b><i> (<code>const char *</code>fname, <code>const char *</code>scheme, <code>float</code> v1=<code>0</code>, float v2=<code>0</code>, <code>int</code> ns=<code>-1</code>) const</i></dt>
+<dt><a name="index-mgl_005fdata_005fexport"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_export</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname, <code>const char *</code>scheme, <code>float</code> v1, float v2, <code>int</code> ns) const</i></dt>
+<dd><p>Сохраняет данные в растровый файл. Числовые значения, нормированные в диапазон [<var>v1</var>, <var>v2</var>], преобразуются в RGB значения пикселов, используя цветовую схему <var>sch</var> (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>). Если <var>v1</var>&gt;=<var>v2</var>, то значения <var>v1</var>, <var>v2</var> определяются автоматически как минимальное и максимальное значение данных.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Make-another-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#File-I_002fO" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Change-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_043e_0437_0434_0430_043d_0438e-_043d_043e_0432_044b_0445-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">6.6 Создание новых данных</h2>
+<a name="index-SubData"></a>
+<a name="index-Column"></a>
+<a name="index-SetColumnId"></a>
+<a name="index-Hist-4"></a>
+<a name="index-Momentum"></a>
+<a name="index-Sum"></a>
+<a name="index-Max-1"></a>
+<a name="index-Min-1"></a>
+<a name="index-Combine"></a>
+<a name="index-Evaluate"></a>
+<a name="index-Resize"></a>
+<a name="index-Trace"></a>
+
+<dl>
+<dt><a name="index-SubData-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>SubData</b><i> (<code>int</code> xx, <code>int</code> yy=<code>-1</code>, <code>int</code> zz=<code>-1</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fsubdata"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_subdata</b><i> (<code>const HMDT</code> dat, <code>int</code> xx, <code>int</code> yy, <code>int</code> zz)</i></dt>
+<dd><p>Возвращает в <var>res</var> подмассив массива данных <var>dat</var> с фиксированными значениями индексов с положительными значениями. Например, <code>SubData(-1,2)</code> выделяет третью строку (индексы начинаются с нуля), <code>SubData(4,-1)</code> выделяет 5-ую колонку, <code>SubData(-1,-1,3)</code> выделяет 4-ый срез и т.д.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SubData-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>SubData</b><i> (<code>const mglData &amp;</code>xx, <code>const mglData &amp;</code>yy, <code>const mglData &amp;</code>zz) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fsubdata_005fext"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_subdata_ext</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> xx, <code>const HMDT</code> yy, <code>const HMDT</code> zz)</i></dt>
+<dd><p>Extracts sub-array data from the original data array for indexes specified by arrays <var>xx</var>, <var>yy</var>, <var>zz</var> (indirect access). The resulting array have the same dimensions as input arrays for 2D and 3D arguments. This function work like previous one for 1D arguments (or numbers). The dimensions of all argument must be the same if they are 2D or 3D arrays.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Column-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Column</b><i> (<code>const char *</code>eq) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fcolumn"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_column</b><i> (<code>const HMDT</code> dat, <code>const char *</code>eq)</i></dt>
+<dd><p>Возвращает массив данных заполненный по формуле <var>eq</var>, вычисленной для именованных колонок (или срезов). Например, <code>Column(&quot;n*w^2/exp(t)&quot;);</code>. Имена колонок задается функцией <code>SetColumnId()</code> или при чтении файлов данных.
+</p></dd></dl>
+<dl>
+<dt><a name="index-SetColumnId-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>SetColumnId</b><i> (<code>const char *</code>ids)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fid"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_id</b><i> (<code>HMDT</code> dat, <code>const char *</code>ids)</i></dt>
+<dd><p>Устанавливает символьные обозначения для колонок данных. Строка должна содержать символы &rsquo;a&rsquo;...&rsquo;z&rsquo; один на колонку (без пробелов).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Trace-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Trace</b><i> () <code>const</code></i></dt>
+<dd><p>Возвращает массив диагональных элементов a[i,i] (для 2D данных) или a[i,i,i] (для 3D данных) где i=0...nx-1. В 1D случае возвращается сам массив данных. Размеры массива данных должен быть ny,nz &gt;= nx или ny,nz = 1.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Hist-5"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Hist</b><i> (<code>int</code> n, <code>float</code> v1=<code>0</code>, <code>float</code> v2=<code>1</code>, <code>int</code> nsub=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fhist"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_hist</b><i> (<code>const HMDT</code> dat, <code>int</code> n, <code>float</code> v1, <code>float</code> v2, <code>int</code> nsub)</i></dt>
+<dd><p>Возвращает распределение (гистограмму) из <var>n</var> точек от значений массива в диапазоне [<var>v1</var>, <var>v2</var>]. Параметр <var>nsub</var> задает число дополнительных точек интерполяции (для сглаживания получившейся гистограммы).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Hist-6"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Hist</b><i> (<code>const mglData &amp;</code>w, <code>int</code> n, <code>float</code> v1=<code>0</code>, <code>float</code> v2=<code>1</code>, <code>int</code> nsub=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fhist_005fw"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_hist_w</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> w, <code>int</code> n, <code>float</code> v1, <code>float</code> v2, <code>int</code> nsub)</i></dt>
+<dd><p>Возвращает распределение (гистограмму) из <var>n</var> точек от значений массива в диапазоне [<var>v1</var>, <var>v2</var>]. Массив <var>w</var> задает веса элементов. Параметр <var>nsub</var> задает число дополнительных точек интерполяции (для сглаживания получившейся гистограммы).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Momentum-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Momentum</b><i> (<code>char</code> dir, <code>const char *</code>how) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmomentum"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_momentum</b><i> (<code>const HMDT</code> dat, <code>char</code> dir, <code>const char *</code>how)</i></dt>
+<dd><p>Возвращает момент (1d массив) данных вдоль направления <var>dir</var>. Строка <var>how</var> определяет тип момента. Момент определяется как
+res_k = \sum_ij how(x_i,y_j,z_k) a_ij/ \sum_ij a_ij
+если <var>dir</var>=&lsquo;<samp>z</samp>&rsquo; и т.д. Координаты &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; &ndash; индексы массива в диапазоне [0,1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Sum-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Sum</b><i> (<code>const char *</code>dir) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fsum"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_sum</b><i> (<code>const HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Возвращает результат суммирования данных вдоль направления(ий) <var>dir</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Max-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Max</b><i> (<code>const char *</code>dir) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmax_005fdir"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_max_dir</b><i> (<code>const HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Возвращает максимальное значение данных вдоль направления(ий) <var>dir</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Min-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Min</b><i> (<code>const char *</code>dir) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmin_005fdir"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_min_dir</b><i> (<code>const HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Возвращает минимальное значение данных вдоль направления(ий) <var>dir</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Combine-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Combine</b><i> (<code>const mglData &amp;</code>a) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fcombine"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_combine</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> a)</i></dt>
+<dd><p>Возвращает прямое произведение массивов (наподобие, res[i,j] = adat[i]*bdat[j] и т.д.).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Evaluate-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Evaluate</b><i> (<code>const mglData &amp;</code>idat, <code>bool</code> norm=<code>true</code>) <code>const</code></i></dt>
+<dt><a name="index-Evaluate-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Evaluate</b><i> (<code>const mglData &amp;</code>idat, <code>const mglData &amp;</code>jdat, <code>bool</code> norm=<code>true</code>) <code>const</code></i></dt>
+<dt><a name="index-Evaluate-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Evaluate</b><i> (<code>const mglData &amp;</code>idat, <code>const mglData &amp;</code>jdat, <code>const mglData &amp;</code>kdat, <code>bool</code> norm=<code>true</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fevaluate_005fi"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_evaluate_i</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> idat, <code>int</code> norm)</i></dt>
+<dt><a name="index-mgl_005fdata_005fevaluate_005fij"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_evaluate_ij</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> idat, <code>const HMDT</code> jdat, <code>int</code> norm)</i></dt>
+<dt><a name="index-mgl_005fdata_005fevaluate_005fijk"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_evaluate_ijk</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> idat, <code>const HMDT</code> jdat, <code>const HMDT</code> kdat, <code>int</code> norm)</i></dt>
+<dd><p>Возвращает массив данных, полученный в результате интерполяции исходного массива в точках других массивов (например, res[i,j]=dat[idat[i,j],jdat[i,j]]). Размеры массивов <var>idat</var>, <var>jdat</var>, <var>kdat</var> должны совпадать. Координаты в <var>idat</var>, <var>jdat</var>, <var>kdat</var> полагаются нормированными в диапазон [0,1] (при <var>norm</var>=<code>true</code>) или в диапазоны [0,nx], [0,ny], [0,nz] соответственно.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Resize-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Resize</b><i> (<code>int</code> mx, <code>int</code> my=<code>1</code>, <code>int</code> mz=<code>1</code>, <code>float</code> x1=<code>0</code>, <code>float</code> x2=<code>1</code>, <code>float</code> y1=<code>0</code>, <code>float</code> y2=<code>1</code>, <code>float</code> z1=<code>0</code>, <code>float</code> z2=<code>1</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fresize"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_resize</b><i> (<code>const HMDT</code> dat, <code>int</code> mx, <code>int</code> my, <code>int</code> mz)</i></dt>
+<dt><a name="index-mgl_005fdata_005fresize_005fbox"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_resize_box</b><i> (<code>const HMDT</code> dat, <code>int</code> mx, <code>int</code> my, <code>int</code> mz, <code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2, <code>float</code> z1, <code>float</code> z2)</i></dt>
+<dd><p>Возвращает массив данных размером <var>mx</var>, <var>my</var>, <var>mz</var> со значениями полученными интерполяцией значений из части [<var>x1</var>,<var>x2</var>] x [<var>y1</var>,<var>y2</var>] x [<var>z1</var>,<var>z2</var>] исходного массива. Величины x,y,z полагаются нормированными в диапазоне [0,1].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Change-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Make-another-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Interpolation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_0437_043ce_043de_043d_0438e-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">6.7 Изменение данных</h2>
+
+<p>Эти функции изменяют данные вдоль заданного направления(ий) типа например дифференцирования, интегрирования и т.д. Направление указывается строкой <var>dir</var>, которая может содержать символы &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; и/или &lsquo;<samp>z</samp>&rsquo;, вдоль которых изменения будут применены.
+</p>
+<a name="index-CumSum"></a>
+<dl>
+<dt><a name="index-CumSum-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>CumSum</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fcumsum"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_cumsum</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Суммирует с накоплением в выбранном направлении(ях).
+</p></dd></dl>
+
+<a name="index-Integral"></a>
+<dl>
+<dt><a name="index-Integral-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Integral</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fintegral"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_integral</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Выполняет интегрирование (подобно суммированию с накоплением) в выбранном направлении(ях).
+</p></dd></dl>
+
+<a name="index-Diff"></a>
+<dl>
+<dt><a name="index-Diff-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Diff</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiff"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_diff</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Выполняет дифференцирование в выбранном направлении(ях).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Diff-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Diff</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y)</i></dt>
+<dt><a name="index-Diff-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Diff</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiff_005fpar"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_diff_par</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> x, <code>const HMDT</code>y, <code>const HMDT</code>z)</i></dt>
+<dd><p>Выполняет дифференцирование данных, параметрически зависящих от координат, в направлении <var>x</var> с <var>y</var>, <var>z</var>=constant. Параметр <var>z</var> может быть опущен, что соответствует 2D случаю. Используются следующие формулы (2D случай): <em>da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j)</em>, где <em>a_i=da/di, a_j=da/dj</em> обозначает дифференцирование вдоль 1-ой и 2-ой размерности. Похожие формулы используются и в 3D случае. Порядок аргументов можно менять &ndash; например, если данные a(i,j) зависят от координат {x(i,j), y(i,j)}, то обычная производная по &lsquo;<samp>x</samp>&rsquo; будет равна <code>Diff(x,y);</code>, а обычная производная по &lsquo;<samp>y</samp>&rsquo; будет равна <code>Diff(y,x);</code>.
+</p></dd></dl>
+
+
+<a name="index-Diff2"></a>
+<dl>
+<dt><a name="index-Diff2-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Diff2</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiff2"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_diff2</b><i> (<code>const char *</code>dir)</i></dt>
+<dd><p>Выполняет двойное дифференцирование (как в операторе Лапласа) в выбранном направлении(ях).
+</p></dd></dl>
+
+<a name="index-SinFFT"></a>
+<dl>
+<dt><a name="index-SinFFT-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>SinFFT</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsinfft"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_sinfft</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Выполняет синус преобразование в выбранном направлении(ях). Синус преобразование есть <em>\sum a_i \sin(k i)</em>.
+</p></dd></dl>
+
+<a name="index-CosFFT"></a>
+<dl>
+<dt><a name="index-CosFFT-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>CosFFT</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fcosfft"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_cosfft</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Выполняет косинус преобразование в выбранном направлении(ях). Синус преобразование есть <em>\sum a_i \cos(k i)</em>.
+</p></dd></dl>
+
+<a name="index-Hankel"></a>
+<dl>
+<dt><a name="index-Hankel-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Hankel</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fhankel"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_hankel</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Выполняет преобразование Ханкеля в выбранном направлении(ях). Преобразование Ханкеля есть <em>\sum a_i J_0(k i)</em>.
+</p></dd></dl>
+
+
+<a name="index-Swap"></a>
+<dl>
+<dt><a name="index-Swap-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Swap</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fswap"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_swap</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Меняет местами левую и правую части данных в выбранном направлении(ях). Полезно для отображения результата FFT.
+</p></dd></dl>
+
+<a name="index-Roll"></a>
+<dl>
+<dt><a name="index-Roll-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Roll</b><i> (<code>char</code> dir, <code>num</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005froll"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_roll</b><i> (<code>HMDT</code> dat, <code>char</code> dir, <code>num</code>)</i></dt>
+<dd><p>Сдвигает данные на <var>num</var> ячеек в выбранном направлении(ях). Соответствует замене индекса на <var>i</var>-&gt;(<var>i</var>+<var>num</var>)%<var>n</var>.
+</p></dd></dl>
+
+<a name="index-Mirror"></a>
+<dl>
+<dt><a name="index-Mirror-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Mirror</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmirror"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_mirror</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Отражает данные в выбранном направлении(ях). Соответствует замене индекса на <var>i</var>-&gt;<var>n</var>-<var>i</var>.
+</p></dd></dl>
+
+<a name="index-Sew"></a>
+<dl>
+<dt><a name="index-Sew-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Sew</b><i> (<code>const char *</code>dir, <code>float</code> da=<code>2*M_PI</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsew"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_sew</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir, <code>float</code> da)</i></dt>
+<dd><p>Удаляет скачки данных (например, скачки фазы после обратных тригонометрических функций) с периодом <var>da</var> в выбранном направлении(ях).
+</p></dd></dl>
+
+<a name="index-Smooth"></a>
+<dl>
+<dt><a name="index-Smooth-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Smooth</b><i> (<code>int</code> Type, <code>const char *</code>dir, <code>float</code> delta=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsmooth"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_smooth</b><i> (<code>HMDT</code> dat, <code>int</code> Type, <code>float</code> delt, <code>const char *</code>dirs)</i></dt>
+<dd><p>Сглаживает данные в выбранном направлении(ях) <var>dir</var> методом <var>Type</var>. Сейчас поддерживаются 4 метода: <code>SMOOTH_NONE=0</code> ничего не делает при <var>delta</var>=0 или сдвигает данные к нулю на шагом <var>delta</var>, <code>SMOOTH_LINE_3=1</code> линейное усреднение по 3 точкам, <code>SMOOTH_LINE_5=2</code> линейное усреднение по 5 точкам, <code>SMOOTH_QUAD_5=3</code> квадратичное усреднение по 5 точкам. Параметр <var>delta</var> запрещает изменение значений на величину большую <var>delta</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Smooth-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Smooth</b><i> (<code>const char *</code>dir)</i></dt>
+<dd><p>Smooths the data on specified direction(s). This is the same as <code>Smooth()</code> but argument <var>Type</var> is specified in string as &lsquo;<samp>0</samp>&rsquo; for <code>SMOOTH_NONE</code>, &lsquo;<samp>3</samp>&rsquo; for <code>SMOOTH_LINE_3</code>, &lsquo;<samp>5</samp>&rsquo; for <code>SMOOTH_LINE_5</code>. If string <var>dir</var> don&rsquo;t contain digits &lsquo;<samp>035</samp>&rsquo; then <var>Type</var>=<code>SMOOTH_QUAD_5</code> is used.
+</p></dd></dl>
+
+<a name="index-Envelop"></a>
+<dl>
+<dt><a name="index-Envelop-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Envelop</b><i> (<code>char</code> dir=<code>'x'</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fenvelop"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_envelop</b><i> (<code>HMDT</code> dat, <code>char</code> dir)</i></dt>
+<dd><p>Находит огибающую данных в выбранном направлении <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-Norm"></a>
+<dl>
+<dt><a name="index-Norm-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Norm</b><i> (<code>float</code> v1=<code>0</code>, <code>float</code> v2=<code>1</code>, <code>bool</code> sym=<code>false</code>, <code>int</code> dim=<code>0</code>)</i></dt>
+<dd><p>Нормирует данные в интервал [<var>v1</var>,<var>v2</var>]. Если <var>sym</var>=<code>true</code>, то используется симметричный интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Изменения применяются только к срезам &gt;=<var>dim</var>.
+</p></dd></dl>
+
+<a name="index-NormSl"></a>
+<dl>
+<dt><a name="index-NormSl-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>NormSl</b><i> (<code>float</code> v1=<code>0</code>, <code>float</code> v2=<code>1</code>, <code>char</code> dir=<code>'z'</code>, <code>bool</code> keep_en=<code>true</code>, <code>bool</code> sym=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fnorm_005fslice"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_norm_slice</b><i> (<code>HMDT</code> dat, <code>float</code> v1, <code>float</code> v2, <code>char</code> dir, <code>int</code> keep_en, <code>int</code> sym)</i></dt>
+<dd><p>Нормирует данные срез-за-срезом в выбранном направлении <var>dir</var> в интервал [<var>v1</var>,<var>v2</var>]. Если <var>sym</var>=<code>true</code>, то используется симметричный интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Если <var>keep</var>=<code>true</code>, то максимальное значение k-го среза ограничено величиной
+<em>\sqrt\sum a_ij(k)/\sum a_ij(0)</em>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Interpolation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Change-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Informational-functions" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_043d_0442e_0440_043f_043e_043byac_0438ya"></a>
+<h2 class="section">6.8 Интерполяция</h2>
+<a name="index-Spline"></a>
+<dl>
+<dt><a name="index-Spline-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Spline</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fspline"></a><u>C function:</u> <code>float</code> <b>mgl_data_spline</b><i> (<code>const HMDT</code> dat, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dd><p>Интерполирует данные кубическим сплайном в точке <var>x</var> в [0...nx-1], <var>y</var> в [0...ny-1], <var>z</var> в [0...nz-1].
+</p></dd></dl>
+<a name="index-Spline1"></a>
+<dl>
+<dt><a name="index-Spline1-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Spline1</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fspline1"></a><u>C function:</u> <code>float</code> <b>mgl_data_spline1</b><i> (<code>const HMDT</code> dat, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dd><p>Интерполирует данные кубическим сплайном в точке <var>x</var>, <var>y</var>, <var>z</var>, где координаты полагаются в интервале [0, 1].
+</p></dd></dl>
+<a name="index-Linear"></a>
+<dl>
+<dt><a name="index-Linear-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Linear</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005flinear"></a><u>C function:</u> <code>float</code> <b>mgl_data_linear</b><i> (<code>const HMDT</code> dat, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dd><p>Интерполирует данные линейной функцией в точке <var>x</var> в [0...nx-1], <var>y</var> в [0...ny-1], <var>z</var> в [0...nz-1].
+</p></dd></dl>
+<a name="index-Linear1"></a>
+<dl>
+<dt><a name="index-Linear1-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Linear1</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005flinear1"></a><u>C function:</u> <code>float</code> <b>mgl_data_linear1</b><i> (<code>const HMDT</code> dat, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dd><p>Интерполирует данные линейной функцией в точке <var>x</var>, <var>y</var>, <var>z</var>, где координаты полагаются в интервале [0, 1].
+</p></dd></dl>
+<a name="index-v"></a>
+<dl>
+<dt><a name="index-v-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>v</b><i> (<code>int</code> i, <code>int</code> j=<code>0</code>, <code>int</code> k=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fget_005fvalue-1"></a><u>C function:</u> <code>float</code> <b>mgl_data_get_value</b><i> (<code>const HMDT</code> dat, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Возвращает значение ячейки с проверкой на границы массива данных.
+</p></dd></dl>
+<a name="index-Spline5"></a>
+<dl>
+<dt><a name="index-Spline5-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Spline5</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> &amp;dx, <code>float</code> &amp;dy, <code>float</code> &amp;dz) <code>const</code></i></dt>
+<dd><p>Интерполирует данные сплайном 5-го порядка в точке <var>x</var>, <var>y</var>, <var>z</var>, где координаты полагаются в интервале [0, 1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fdata_005fvalue"></a><u>C function:</u> <code>float *</code> <b>mgl_data_value</b><i> (<code>HMDT</code> dat, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Возвращает указатель на ячейку данных. Может быть не действителен после вызова любой функции изменяющей данные.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fdata_005fdata"></a><u>C function:</u> <code>const float *</code> <b>mgl_data_data</b><i> (<code>const HMDT</code> dat)</i></dt>
+<dd><p>Возвращает указатель на весь массив данных. Может быть не действителен после вызова любой функции изменяющей данные.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Informational-functions"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Interpolation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Operators" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_043d_0444_043e_0440_043c_0430c_0438_043e_043d_043d_044be-_0444_0443_043d_043ac_0438_0438"></a>
+<h2 class="section">6.9 Информационные функции</h2>
+<a name="index-PrintInfo"></a>
+<dl>
+<dt><a name="index-PrintInfo-1"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>PrintInfo</b><i> (<code>char *</code>buf, <code>bool</code> all=<code>false</code>) <code>const</code></i></dt>
+<dd><p>Печатает информацию о данных (размеры, моменты и пр.) в строку <var>buf</var>. Параметр <var>all</var> устанавливает печатать ли подробную информацию (если <code>true</code>) или только базовую информацию.
+</p></dd></dl>
+<dl>
+<dt><a name="index-PrintInfo-2"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>PrintInfo</b><i> (<code>FILE *</code>fp) <code>const</code></i></dt>
+<dd><p>Аналогично, но выводит в файл (или, например, в stdout).
+</p></dd></dl>
+
+<a name="index-Maximal"></a>
+<dl>
+<dt><a name="index-Maximal-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Maximal</b><i> () <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmax"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_max</b><i> (<code>const HMDT</code> dat)</i></dt>
+<dd><p>Возвращает максимальное значение массива данных.
+</p></dd></dl>
+<a name="index-Minimal"></a>
+<dl>
+<dt><a name="index-Minimal-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Minimal</b><i> () <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmin"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_min</b><i> (<code>HMDT</code> dat) <code>const</code></i></dt>
+<dd><p>Возвращает минимальное значение массива данных.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Maximal-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Maximal</b><i> (<code>int</code> &amp;i, <code>int</code> &amp;j, <code>int</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmax_005fint"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_max_int</b><i> (<code>const HMDT</code> dat, <code>int</code> *i, <code>int</code> *j, <code>int</code> *k)</i></dt>
+<dd><p>Возвращает максимальное значение массива данных и его положение в переменные <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Minimal-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Minimal</b><i> (<code>int</code> &amp;i, <code>int</code> &amp;j, <code>int</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmin_005fint"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_min_int</b><i> (<code>const HMDT</code> dat, <code>int</code> *i, <code>int</code> *j, <code>int</code> *k)</i></dt>
+<dd><p>Возвращает минимальное значение массива данных и его положение в переменные <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Maximal-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Maximal</b><i> (<code>float</code> &amp;i, <code>float</code> &amp;j, <code>float</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmax_005freal"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_max_real</b><i> (<code>const HMDT</code> dat, <code>float</code> *x, <code>float</code> *y, <code>float</code> *z)</i></dt>
+<dd><p>Возвращает максимальное значение массива данных и его приближенное (интерполированное) положение в переменные <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Minimal-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Minimal</b><i> (<code>float</code> &amp;i, <code>float</code> &amp;j, <code>float</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmin_005freal"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_min_real</b><i> (<code>const HMDT</code> dat, <code>float</code> *x, <code>float</code> *y, <code>float</code> *z)</i></dt>
+<dd><p>Возвращает минимальное значение массива данных и его приближенное (интерполированное) положение в переменные <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+
+<a name="index-Momentum-2"></a>
+<dl>
+<dt><a name="index-Momentum-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Momentum</b><i> (<code>char</code> dir, <code>float</code> &amp;m, <code>float</code> &amp;w) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmomentum_005fmw"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_momentum_mw</b><i> (<code>const HMDT</code> dat, <code>char</code> dir, <code>float</code> *m, <code>float</code> *w)</i></dt>
+<dd><p>Возвращает нулевой момент (энергию, <em>I=\sum a_i</em>) и записывает первый (среднее, <em>m = \sum \xi_i a_i/I</em>) и второй момент (ширину, <em>w^2 = \sum (\xi_i-m)^2 a_i/I</em>). Здесь <em>\xi</em> &ndash; соответствующая кордината если <var>dir</var> равно &lsquo;<samp>'x'</samp>&rsquo;, &lsquo;<samp>'y'</samp>&rsquo;, &lsquo;<samp>'z'</samp>&rsquo;. В противном случае среднее и ширина равны <em>m = \sum a_i/N</em>, <em>w^2 = \sum (a_i-m)^2/N</em>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Momentum-4"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>float</code> <b>Momentum</b><i> (<code>char</code> dir, <code>float</code> &amp;m, <code>float</code> &amp;w, <code>float</code> &amp;s, <code>float</code> &amp;k) <code>const</code></i></dt>
+<dd><p>Возвращает нулевой момент (энергию, <em>I=\sum a_i</em>) и записывает первый (среднее, <em>m = \sum \xi_i a_i/I</em>), второй (ширину, <em>w^2 = \sum (\xi_i-m)^2 a_i/I</em>), третий (асимметрия, <em>s = \sum (\xi_i-m)^3 a_i/ I w^3</em>) и четвертый моменты (эксцесс, <em>k = \sum (\xi_i-m)^4 a_i / 3 I w^4</em>)). Здесь <em>\xi</em> &ndash; соответствующая кордината если <var>dir</var> равно &lsquo;<samp>'x'</samp>&rsquo;, &lsquo;<samp>'y'</samp>&rsquo;, &lsquo;<samp>'z'</samp>&rsquo;. В противном случае среднее, ширина, асимметрия, эксцесс равны <em>m = \sum a_i/N</em>, <em>w^2 = \sum (a_i-m)^2/N</em> и т.д.
+</p></dd></dl>
+
+<a name="index-Find"></a>
+<dl>
+<dt><a name="index-Find-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Find</b><i> (<code>const char *</code>cond, <code>int</code> &amp;i, <code>int</code> &amp;j, <code>int</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005ffirst"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_first</b><i> (<code>const HMDT</code> dat, <code>const char *</code>cond, <code>int</code> *i, <code>int</code> *j, <code>int</code> *k)</i></dt>
+<dd><p>Находит положение (после заданного в <var>i</var>, <var>j</var>, <var>k</var>) первого не нулевого значения формулы <var>cond</var>. Функция возвращает найденное значение и записывает его положение в <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+<a name="index-Last"></a>
+<dl>
+<dt><a name="index-Last-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Last</b><i> (<code>const char *</code>cond, <code>int</code> &amp;i, <code>int</code> &amp;j, <code>int</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005flast"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_last</b><i> (<code>const HMDT</code> dat, <code>const char *</code>cond, <code>int</code> *i, <code>int</code> *j, <code>int</code> *k)</i></dt>
+<dd><p>Находит положение (перед заданного в <var>i</var>, <var>j</var>, <var>k</var>) последнего не нулевого значения формулы <var>cond</var>. Функция возвращает найденное значение и записывает его положение в <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Find-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>int</code> <b>Find</b><i> (<code>const char *</code>cond, <code>char</code> dir, <code>int</code> i=<code>0</code>, <code>int</code> j=<code>0</code>, <code>int</code> k=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005ffind"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_find</b><i> (<code>const HMDT</code> dat, <code>const char *</code>cond, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Возвращает положение первого в направлении <var>dir</var> не нулевого значения формулы <var>cond</var>. Поиск начинается с точки {i,j,k}.
+</p></dd></dl>
+<a name="index-FindAny"></a>
+<dl>
+<dt><a name="index-FindAny-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>bool</code> <b>FindAny</b><i> (<code>const char *</code>cond) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005ffind_005fany"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_find_any</b><i> (<code>const HMDT</code> dat, <code>const char *</code>cond)</i></dt>
+<dd><p>Определяет есть ли хоть одно значение массива, удовлетворяющее условию <var>cond</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Operators"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Informational-functions" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Global-functions" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_043fe_0440_0430_0442_043e_0440_044b"></a>
+<h2 class="section">6.10 Операторы</h2>
+
+<dl>
+<dt><a name="index-operator_003d"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dd><p>Копирует данные из другого экземпляра.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a_003d"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator*=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmul_005fdat"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_mul_dat</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> d)</i></dt>
+<dd><p>Поэлементно умножает массив <var>d</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f_003d"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator/=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiv_005fdat"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_div_dat</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> d)</i></dt>
+<dd><p>Поэлементно делит массив <var>d</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002b_003d"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator+=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fadd_005fdat"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_add_dat</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> d)</i></dt>
+<dd><p>Поэлементно прибавляет <var>d</var>.
+Adds the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d_003d"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator-=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsub_005fdat"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_sub_dat</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> d)</i></dt>
+<dd><p>Поэлементно вычитает <var>d</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a_003d-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator*=</b><i> (<code>float</code> d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmul_005fnum"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_mul_num</b><i> (<code>HMDT</code> dat, <code>float</code> d)</i></dt>
+<dd><p>Умножает каждый элемент на число.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f_003d-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator/=</b><i> (<code>float</code> d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiv_005fnum"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_div_num</b><i> (<code>HMDT</code> dat, <code>float</code> d)</i></dt>
+<dd><p>Делит каждый элемент на число.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002b_003d-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator+=</b><i> (<code>float</code> d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fadd_005fnum"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_add_num</b><i> (<code>HMDT</code> dat, <code>float</code> d)</i></dt>
+<dd><p>Прибавляет число к каждому элементу.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d_003d-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator-=</b><i> (<code>float</code> d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsub_005fnum"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_sub_num</b><i> (<code>HMDT</code> dat, <code>float</code> d)</i></dt>
+<dd><p>Вычитает число из каждого элемента.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-operator_002b"></a><u>Функция библиотеки:</u> mglData <b>operator+</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Возвращает поэлементную сумму данных.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002b-1"></a><u>Функция библиотеки:</u> mglData <b>operator+</b><i> (<code>float</code> a, <code>const mglData &amp;</code>b)</i></dt>
+<dt><a name="index-operator_002b-2"></a><u>Функция библиотеки:</u> mglData <b>operator+</b><i> (<code>const mglData &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Возвращает поэлементную сумму данных и числа.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002d"></a><u>Функция библиотеки:</u> mglData <b>operator-</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Возвращает поэлементную разность данных.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d-1"></a><u>Функция библиотеки:</u> mglData <b>operator-</b><i> (<code>float</code> a, <code>const mglData &amp;</code>b)</i></dt>
+<dt><a name="index-operator_002d-2"></a><u>Функция библиотеки:</u> mglData <b>operator-</b><i> (<code>const mglData &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Возвращает поэлементную разность числа и данных.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002a"></a><u>Функция библиотеки:</u> mglData <b>operator*</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Возвращает поэлементное произведение данных.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-1"></a><u>Функция библиотеки:</u> mglData <b>operator*</b><i> (<code>float</code> a, <code>const mglData &amp;</code>b)</i></dt>
+<dt><a name="index-operator_002a-2"></a><u>Функция библиотеки:</u> mglData <b>operator*</b><i> (<code>const mglData &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Возвращает поэлементное произведение данных на число.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002f"></a><u>Функция библиотеки:</u> mglData <b>operator/</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Возвращает поэлементное деление данных.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f-1"></a><u>Функция библиотеки:</u> mglData <b>operator/</b><i> (<code>const mglData &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Возвращает поэлементное деление данных на число.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Global-functions"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Operators" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0413_043b_043e_0431_0430_043bx_043d_044be-_0444_0443_043d_043ac_0438_0438"></a>
+<h2 class="section">6.11 Глобальные функции</h2>
+
+<p>Эти функции не методы класса <code>mglData</code>, но они дают дополнительные возможности по обработке данных. Поэтому я поместил их в эту главу.
+</p>
+<dl>
+<dt><a name="index-mglTransform"></a><u>Функция библиотеки:</u> <code>mglData</code> <b>mglTransform</b><i> (<code>const mglData &amp;</code>real, <code>const mglData &amp;</code>imag, <code>const char *</code>type)</i></dt>
+<dt><a name="index-mgl_005ftransform"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_transform</b><i> (<code>const HMDT</code> real, <code>const HMDT</code> imag, <code>const char *</code>type)</i></dt>
+<dd><p>Выполняет интегральное преобразование комплексных данных <var>real</var>, <var>imag</var> в выбранном направлении и возвращает модуль результата. Порядок и тип преобразований задается строкой <var>type</var>: первый символ для x-направления, второй для y-направления, третий для z-направления. Возможные символы: &lsquo;<samp>f</samp>&rsquo; &ndash; прямое преобразование Фурье, &lsquo;<samp>i</samp>&rsquo; &ndash; обратное преобразование Фурье, &lsquo;<samp>s</samp>&rsquo; &ndash; синус преобразование, &lsquo;<samp>c</samp>&rsquo; &ndash; косинус преобразование, &lsquo;<samp>h</samp>&rsquo; &ndash; преобразование Ханкеля, &lsquo;<samp>n</samp>&rsquo; или &lsquo;<samp> </samp>&rsquo; &ndash; нет преобразования.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglTransformA"></a><u>Функция библиотеки:</u> <code>mglData</code> <b>mglTransformA</b><i> <code>const mglData &amp;</code>ampl, <code>const mglData &amp;</code>phase, <code>const char *</code>type)</i></dt>
+<dt><a name="index-mgl_005ftransform_005fa"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_transform_a</b><i> <code>const HMDT</code> ampl, <code>const HMDT</code> phase, <code>const char *</code>type)</i></dt>
+<dd><p>Аналогично предыдущему с заданными амплитудой <var>ampl</var> и фазой <var>phase</var> комплексных чисел.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglSTFA"></a><u>Функция библиотеки:</u> <code>mglData</code> <b>mglSTFA</b><i> (<code>const mglData &amp;</code>real, <code>const mglData &amp;</code>imag, <code>int</code> dn, <code>char</code> dir=<code>'x'</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fstfa"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_stfa</b><i> (<code>const HMDT</code> real, <code>const HMDT</code> imag, <code>int</code> dn,<code>char</code> dir)</i></dt>
+<dd><p>Выполняет оконное преобразование Фурье длиной <var>dn</var> для комплексных данных <var>real</var>, <var>imag</var> и возвращает модуль результата. Например, для <var>dir</var>=&lsquo;<samp>x</samp>&rsquo; результат будет иметь размер {int(nx/dn), dn, ny} и будет равен <em>res[i,j,k]=|\sum_d^dn exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn</em>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglPDE"></a><u>Функция библиотеки:</u> <code>mglData</code> <b>mglPDE</b><i> (<code>const char *</code>ham, <code>const mglData &amp;</code>ini_re, <code>const mglData &amp;</code>ini_im, <code>mglPoint</code> Min, <code>mglPoint</code> Max, <code>float</code> dz=<code>0.1</code>, <code>float</code> k0=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005fpde_005fsolve"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_pde_solve</b><i> (<code>HMGL</code> gr, <code>const char *</code>ham, <code>const HMDT</code> ini_re, <code>const HMDT</code> ini_im, <code>float</code> dz, <code>float</code> k0)</i></dt>
+<dd><p>Решает уравнение в частных производных du/dz = i*k0*<var>ham</var>(p,q,x,y,z,|u|)[u], где p=-i/k0*d/dx, q=-i/k0*d/dy &ndash; псевдо-дифференциальные операторы. Параметры <var>ini_re</var>, <var>ini_im</var> задают начальное распределение поля. Координаты в уравнении и в решении полагаются в диапазоне осей координат. Замечу, что внутри этот диапазон увеличивается в 3/2 раза для уменьшения отражения от границ расчетного интервала. Параметр <var>dz</var> задает шаг по эволюционной координате z. В данный момент использован упрощенный алгоритм, когда все &ldquo;смешанные&rdquo; члена (типа &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) исключаются. Например, в 2D случае это функции типа <em>ham = f(p,z) + g(x,z,u)</em>. При этом допускаются коммутирующие комбинации (типа &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy). Переменная &lsquo;<samp>u</samp>&rsquo; используется для обозначения амплитуды поля |u|. Это позволяет решать нелинейные задачи &ndash; например, нелинейное уравнение Шредингера <code>ham='p^2+q^2-u^2'</code>. Также можно указать мнимую часть для поглощения (типа <code>ham = 'p^2+i*x*(x&gt;0)'</code>), но только если зависимость от &lsquo;<samp>i</samp>&rsquo; линейная, т.е. <em>ham = hre+i*him</em>. См. раздел <a href="mathgl_ru_9.html#PDE-sample">PDE &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglRay"></a><u>Функция библиотеки:</u> <code>mglData</code> <b>mglRay</b><i> (<code>const char *</code>ham, <code>mglPoint</code> r0, <code>mglPoint</code> p0, <code>float</code> dt=<code>0.1</code>, <code>float</code> tmax=<code>10</code>)</i></dt>
+<dt><a name="index-mgl_005fray_005ftrace"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_ray_trace</b><i> (<code>const char *</code>ham, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> px, <code>float</code> py, <code>float</code> pz, <code>float</code> dt, <code>float</code> tmax)</i></dt>
+<dd><p>Решает систему геометрооптических уравнений d<em>r</em>/dt = d <var>ham</var>/d<em>p</em>, d<em>p</em>/dt = -d <var>ham</var>/d<em>r</em>. Это гамильтоновы уравнения для траектории частицы в 3D случае. Гамильтониан <var>ham</var> может зависеть от координат &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, импульсов &lsquo;<samp>p</samp>&rsquo;=px, &lsquo;<samp>q</samp>&rsquo;=py, &lsquo;<samp>v</samp>&rsquo;=pz и времени &lsquo;<samp>t</samp>&rsquo;: <em>ham = H(x,y,z,p,q,v,t)</em>. Начальная точка (при <code>t=0</code>) задается переменными {<var>x0</var>, <var>y0</var>, <var>z0</var>, <var>p0</var>, <var>q0</var>, <var>v0</var>}. Параметры <var>dt</var> и <var>tmax</var> задают шаг и максимальное время интегрирования. Результат &ndash; массив {x,y,z,p,q,v,t} с размером {7 * int(<var>tmax</var>/<var>dt</var>+1) }. См. раздел <a href="mathgl_ru_9.html#Beam-tracing-sample">Beam tracing &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglQO2d"></a><u>Функция библиотеки:</u> <code>mglData</code> <b>mglQO2d</b><i> (<code>const char *</code>ham, <code>const mglData &amp;</code>ini_re, <code>const mglData &amp;</code>ini_im, <code>const mglData &amp;</code>ray, <code>float</code> r=<code>1</code>, <code>float</code> k0=<code>100</code>, <code>mglData *</code>xx=<code>0</code>, <code>mglData *</code>yy=<code>0</code>, <code>bool</code> UseR=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fqo2d_005fsolve"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_qo2d_solve</b><i> (<code>const char *</code>ham, <code>const HMDT</code> ini_re, <code>const HMDT</code> ini_im, <code>const HMDT</code> ray, <code>float</code> r, <code>float</code> k0, <code>HMDT</code> xx, <code>HMDT</code> yy)</i></dt>
+<dd><p>Решает уравнение в частных производных du/dt = i*k0*<var>ham</var>(p,q,x,y,|u|)[u] в сопровождающей системе координат, где p=-i/k0*d/dx, q=-i/k0*d/dy &ndash; псевдо-дифференциальные операторы. Параметры <var>ini_re</var>, <var>ini_im</var> задают начальное распределение поля. Параметр <var>ray</var> задает опорный луч для сопровождающей системы координат. Можно использовать луч найденный с помощью <code>mglRay()</code>. Опорный луч должен быть достаточно гладкий, чтобы система координат была однозначной и для исключения ошибок интегрирования. Если массивы <var>xx</var> и <var>yy</var> указаны, то в них записываются декартовы координаты для каждой точки найденного решения. См. также <code>mglPDE()</code>. См. раздел <a href="mathgl_ru_9.html#Beam-tracing-sample">Beam tracing &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglJacobian"></a><u>Функция библиотеки:</u> <code>mglData</code> <b>mglJacobian</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y)</i></dt>
+<dt><a name="index-mglJacobian-1"></a><u>Функция библиотеки:</u> <code>mglData</code> <b>mglJacobian</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z)</i></dt>
+<dt><a name="index-mgl_005fjacobian_005f2d"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_jacobian_2d</b><i> (<code>const HMDT</code> x, <code>const HMDT</code> y)</i></dt>
+<dt><a name="index-mgl_005fjacobian_005f3d"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_jacobian_3d</b><i> (<code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z)</i></dt>
+<dd><p>Вычисляет якобиан преобразования {i,j,k} в {<var>x</var>,<var>y</var>,<var>z</var>}, где координаты {i,j,k} полагаются нормированными в интервал [0,1]. Якобиан находится по формуле det||<em>dr_\alpha/d\xi_\beta</em>||, где <em>r</em>={<var>x</var>,<var>y</var>,<var>z</var>} и <em>\xi</em>={i,j,k}. Все размерности всех массивов должны быть одинаковы. Данные должны быть трехмерными если указаны все 3 массива {<var>x</var>,<var>y</var>,<var>z</var>} или двумерными если только 2 массива {<var>x</var>,<var>y</var>}.
+</p></dd></dl>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_7.html b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_7.html
new file mode 100644
index 0000000..4ebcaee
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_7.html
@@ -0,0 +1,769 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: 7. Other classes</title>
+
+<meta name="description" content="MathGL 1.11: 7. Other classes">
+<meta name="keywords" content="MathGL 1.11: 7. Other classes">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Other-classes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_6.html#Global-functions" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglParse-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_6.html#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+
+<a name="Other-classes-1"></a>
+<h1 class="chapter">7. Other classes</h1>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#mglParse-class">7.1 mglParse class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglFormula-class">7.2 mglFormula class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglFont-class">7.3 mglFont class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglColor-class">7.4 mglColor class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglPoint-class">7.5 mglPoint class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglVar-class">7.6 mglVar class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglCommand-class">7.7 mglCommand class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglArg-class">7.8 mglArg class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="mglParse-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-classes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglFormula-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglParse-class-1"></a>
+<h2 class="section">7.1 mglParse class</h2>
+<a name="index-mglParse"></a>
+
+<p>Class for parsing and executing MGL script. This class is defined in <code>#include &lt;mgl/mgl_parse.h&gt;</code>.
+</p>
+<p>Class mglParse is the interpreter for MGL scripts (see section <a href="mathgl_ru_8.html#MGL-interface">Язык MGL</a>). The main function of mglParse class is <code>Parse()</code>. Exactly this function parses and executes the script string-by-string. Also there are two subservient functions for the finding and creation of a variable. These functions can be useful for displaying values of variables (arrays) in some external program (in window, for example). The variable <var>DataList</var> contains full list of variables in script. Flag <var>AllowSetSize</var> allows one to prevent changing the size of the  picture inside the script (forbids the MGL command <code>setsize</code>). 
+</p>
+<p>Note an important feature &ndash; if user defines function <var>func</var> in variable then it will be called before the destroying of this variable (see section <a href="#mglVar-class">mglVar class</a>).
+</p>
+<dl>
+<dt><a name="index-mglParse-1"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code></code> <b>mglParse</b><i> (<code>bool</code> setsize=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fcreate_005fparser"></a><u>C function:</u> <code>HMPR</code> <b>mgl_create_parser</b><i> ()</i></dt>
+<dd><p>Constructor initializes all values with zero and set <var>AllowSetSize</var> value.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-_007emglParse"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code></code> <b>~mglParse</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fdelete_005fparser"></a><u>C function:</u> <code>void</code> <b>mgl_delete_parser</b><i> (<code>HMPR</code> p)</i></dt>
+<dd><p>Destructor delete parser
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Parse"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>int</code> <b>Parse</b><i> (<code>mglGraph *</code>gr, <code>const char *</code>str, <code>long</code> pos=<code>0</code>)</i></dt>
+<dt><a name="index-Parse-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>int</code> <b>Parse</b><i> (<code>mglGraph *</code>gr, <code>const wchar_t *</code>str, <code>long</code> pos=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fparse"></a><u>C function:</u> <code>int</code> <b>mgl_parse</b><i> (<code>HMGL</code> gr, <code>HMPR</code> p, <code>const char *</code>str, <code>int</code> pos)</i></dt>
+<dt><a name="index-mgl_005fparsew"></a><u>C function:</u> <code>int</code> <b>mgl_parsew</b><i> (<code>HMGL</code> gr, <code>HMPR</code> p, <code>const wchar_t *</code>str, <code>int</code> pos)</i></dt>
+<dd><p>Main function in the class. It parses the string <var>str</var> and executes it by  using <var>gr</var> as a graphics plotter. Returns the value depending on an error presence in the string <var>str</var>: 0 &ndash; no error, 1 &ndash; wrong command argument(s), 2 &ndash; unknown command, 3 &ndash; string is too long. Optional argument <var>pos</var> allows to save the string position in the document (or file) for using <code>for|next</code> command.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Export-2"></a><u>Method on <code>mglParse</code> (C++):</u> <code>int</code> <b>Export</b><i> (<code>wchar_t</code> cpp_out<code>[1024]</code>, <code>mglGraph *</code>gr, <code>const wchar_t *</code>str)</i></dt>
+<dd><p>Function parses the string <var>str</var>, executes it by  using <var>gr</var> as a graphics plotter and exports it to C++ code. Returns the value depending on an error presence in the string <var>str</var>: 0 &ndash; no error, 1 &ndash; wrong command argument(s), 2 &ndash; unknown command, 3 &ndash; string is too long. Output C++ text will be placed in <var>out</var> variable. If string <var>str</var> have options (defined after &rsquo;;&rsquo; symbol) then the corresponding C++ texts are placed in variables <var>op1</var>, <var>op2</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Execute"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>Execute</b><i> (<code>mglGraph *</code>gr, <code>FILE *</code>fp, <code>bool</code> print=<code>false</code>)</i></dt>
+<dd><p>Function parse and execute line-by-line MGL script in file <var>fp</var>. If <var>print</var>=<code>true</code> then all warnings and information will be printed in stdout. Also this function support the <code>for|next</code> MGL commands.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Execute-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>Execute</b><i> (<code>mglGraph *</code>gr, <code>int</code> num, <code>const wchar_t **</code>text, <code>void (*</code> error <code>)(int line, int kind)=NULL</code>)</i></dt>
+<dd><p>Function parse and execute line-by-line MGL script in array <var>text</var>. If <var>error</var> is not <code>NULL</code> then this function will be called for all warnings, information and other messages. Also this function support the <code>for|next</code> MGL commands.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Execute-2"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>void</code> <b>Execute</b><i> (<code>mglGraph *</code>gr, <code>const char *</code>text, <code>void (*</code> error <code>)(int line, int kind)=NULL</code>)</i></dt>
+<dt><a name="index-Execute-3"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>Execute</b><i> (<code>mglGraph *</code>gr, <code>const wchar_t *</code>text, <code>void (*</code> error <code>)(int line, int kind)=NULL</code>)</i></dt>
+<dt><a name="index-mgl_005fparse_005ftext"></a><u>C function:</u> <code>void</code> <b>mgl_parse_text</b><i> (<code>HMGL</code> gr, <code>HMPR</code> p, <code>const char *</code>text)</i></dt>
+<dt><a name="index-mgl_005fparsew_005ftext"></a><u>C function:</u> <code>void</code> <b>mgl_parsew_text</b><i> (<code>HMGL</code> gr, <code>HMPR</code> p, <code>const wchar_t *</code>text)</i></dt>
+<dd><p>Function parse and execute line-by-line MGL script in string <var>text</var>. Lines are separated by &lsquo;<samp>\n</samp>&rsquo; symbol as usual. If <var>error</var> is not <code>NULL</code> then this function will be called for all warnings, information and other messages. Also this function support the <code>for|next</code> MGL commands.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AddParam"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>bool</code> <b>AddParam</b><i> (<code>int</code> n, <code>const char *</code>str, <code>bool</code> isstr=<code>true</code>)</i></dt>
+<dt><a name="index-AddParam-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>bool</code> <b>AddParam</b><i> (<code>int</code> n, <code>const wchar_t *</code>str, <code>bool</code> isstr=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fadd_005fparam"></a><u>C function:</u> <code>void</code> <b>mgl_add_param</b><i> (<code>HMPR</code> p, <code>int</code> id, <code>const char *</code>val)</i></dt>
+<dt><a name="index-mgl_005fadd_005fparamw"></a><u>C function:</u> <code>void</code> <b>mgl_add_paramw</b><i> (<code>HMPR</code> p, <code>int</code> id, <code>const wchar_t *</code>val)</i></dt>
+<dd><p>Function set the value of <var>n</var>-th parameter as string <var>str</var> (<var>n</var>=0, 1 ... 9). It return <code>true</code> for success.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FindVar"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>mglVar *</code> <b>FindVar</b><i> (<code>const char *</code>name)</i></dt>
+<dt><a name="index-FindVar-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>mglVar *</code> <b>FindVar</b><i> (<code>const wchar_t *</code>name)</i></dt>
+<dt><a name="index-mgl_005ffind_005fvar"></a><u>C function:</u> <code>const HMDT</code> <b>mgl_find_var</b><i>  (<code>HMPR</code> p, <code>const char *</code>name)</i></dt>
+<dd><p>Function returns the pointer to variable with name <var>name</var> or zero if variable is absent. Use this function to put external data array to the script or get the data from the script.
+</p></dd></dl>
+<dl>
+<dt><a name="index-AddVar"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>mglVar *</code> <b>AddVar</b><i> (<code>const char *</code>name)</i></dt>
+<dt><a name="index-AddVar-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>mglVar *</code> <b>AddVar</b><i> (<code>const wchar_t *</code>name)</i></dt>
+<dt><a name="index-mgl_005fadd_005fvar"></a><u>C function:</u> <code>const HMDT</code> <b>mgl_add_var</b><i> (<code>HMPR</code> p, <code>const char *</code>name)</i></dt>
+<dd><p>Function returns the pointer to variable with name <var>name</var>. If variable is absent then new variable is created with name <var>name</var>. Use this function to put external data array to the script or get the data from the script.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DeleteVar"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>DeleteVar</b><i> (<code>mglVar *</code>v)</i></dt>
+<dt><a name="index-DeleteVar-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>DeleteVar</b><i> (<code>const char *</code>name)</i></dt>
+<dt><a name="index-DeleteVar-2"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>DeleteVar</b><i> (<code>const wchar_t *</code>name)</i></dt>
+<dd><p>Function delete the variable specified by its name or by its pointer.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-RestoreOnce"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>inline void</code> <b>RestoreOnce</b><i> ()</i></dt>
+<dt><a name="index-mgl_005frestore_005fonce"></a><u>C function:</u> <code>void</code> <b>mgl_restore_once</b><i> (<code>HMPR</code> p)</i></dt>
+<dd><p>Restore Once flag.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AllowSetSize"></a><u>Method on <code>mglParse</code> (Python):</u> <code>void</code> <b>AllowSetSize</b><i> (<code>bool</code> a)</i></dt>
+<dt><a name="index-mgl_005fparser_005fallow_005fsetsize"></a><u>C function:</u> <code>void</code> <b>mgl_parser_allow_setsize</b><i> (<code>HMPR</code> p, <code>int</code> a)</i></dt>
+<dd><p>Allow to parse &rsquo;setsize&rsquo; command or not.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AddCommand"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>AddCommand</b><i> (<code>mglCommand *</code>cmd, <code>int</code> num=<code>0</code>)</i></dt>
+<dd><p>Add <var>num</var> commands <var>cmd</var> to the defined MGL commands list. Parameter <var>cmd</var> is array of <code>mglCommand</code> structures. If parameter <var>num</var>=0 then it will be determined automatically. At this, array <var>cmd</var> <strong>must have</strong> last element with <code>name=L&quot;&quot;</code>
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DataList-of-mglParse"></a><u>Option of mglParse:</u> <code>mglVar *</code> <b>DataList</b></dt>
+<dd><p>List of variables defined in script.
+</p></dd></dl>
+<dl>
+<dt><a name="index-AllowSetSize-of-mglParse"></a><u>Option of mglParse:</u> <code>bool</code> <b>AllowSetSize</b></dt>
+<dd><p>Flag which allows/forbids the command <code>setsize</code> in scripts.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Stop-of-mglParse"></a><u>Option of mglParse:</u> <code>bool</code> <b>Stop</b></dt>
+<dd><p>Flag which interrupt script execution.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Cmd-of-mglParse"></a><u>Option of mglParse:</u> <code>mglCommand *</code> <b>Cmd</b></dt>
+<dd><p>Table (array) of recognizable MGL commands (can be changed by user). Items in the table <strong>MUST be sorted</strong> by <var>name</var> field !!! Last items must have empty name (i.e. <code>L&quot;&quot;</code>).
+</p></dd></dl>
+<dl>
+<dt><a name="index-op1-of-mglParse"></a><u>Option of mglParse:</u> <code>wchar_t *</code> <b>op1</b></dt>
+<dd><p>These strings contain command options and should be placed before the command. These variables are used for MGL-&gt;C++ (or other language) conversion.
+</p></dd></dl>
+<dl>
+<dt><a name="index-op2-of-mglParse"></a><u>Option of mglParse:</u> <code>wchar_t *</code> <b>op2</b></dt>
+<dd><p>These strings contain command options and should be placed after the command. These variables are used for MGL-&gt;C++ (or other language) conversion.
+</p></dd></dl>
+
+<hr size="6">
+<a name="mglFormula-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglParse-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglFont-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglFormula-class-1"></a>
+<h2 class="section">7.2 mglFormula class</h2>
+<a name="index-mglFormula"></a>
+
+<p>Class for evaluating of formula specified by the string. This class is defined in <code>#include &lt;mgl/mgl_eval.h&gt;</code>.
+</p>
+<p>It is the fast variant of formula evaluation. At creation it will be recognized and compiled to tree-like internal code. At evaluation stage only fast calculations are performed. There is no difference between lower or upper case in formulas. If argument value lie outside the range of function definition then function returns NaN. See section <a href="mathgl_ru_1.html#Textual-formulas">Текстовые формулы</a>.
+</p>
+<dl>
+<dt><a name="index-mglFormula-on-mglFormula"></a><u>Method on mglFormula:</u> <code></code> <b>mglFormula</b><i> (<code>const char *</code>str)</i></dt>
+<dd><p>Parses the formula <var>str</var> and creates formula-tree. Constructor recursively parses the formula and creates a tree-like structure containing functions and operators for fast further evaluating by <code>Calc()</code> or <code>CalcD()</code> functions.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Calc-on-mglFormula"></a><u>Method on mglFormula:</u> <code>float</code> <b>Calc</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>, <code>float</code> u=<code>0</code>)</i></dt>
+<dd><p>Evaluates the formula for <code>'x','r'</code>=<var>x</var>, <code>'y','n'</code>=<var>y</var>, <code>'z','t'</code>=<var>z</var>, <code>'a','u'</code>=<var>u</var>. Error code (if one) can be obtained from function <code>GetError()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Calc-on-mglFormula-1"></a><u>Method on mglFormula:</u> <code>float</code> <b>Calc</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> u, <code>float</code> v, <code>float</code> w)</i></dt>
+<dd><p>Evaluates the formula for <code>'x'</code>=<var>x</var>, <code>'y'</code>=<var>y</var>, <code>'z'</code>=<var>z</var>, <code>'u'</code>=<var>u</var>, <code>'v'</code>=<var>v</var>, <code>'w'</code>=<var>w</var>. Error code (if one) can be obtained from function <code>GetError()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Calc-on-mglFormula-2"></a><u>Method on mglFormula:</u> <code>float</code> <b>Calc</b><i> (<code>float</code> var<code>['z'-'a'+1]</code>)</i></dt>
+<dd><p>Evaluates the formula for variables in array <var>var</var>[&rsquo;z&rsquo;-&rsquo;a&rsquo;]. Error code (if one) can be obtained from function <code>GetError()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-CalcD-on-mglFormula"></a><u>Method on mglFormula:</u> <code>float</code> <b>CalcD</b><i> (<code>float</code> var<code>['z'-'a'+1]</code>, <code>char</code> diff)</i></dt>
+<dd><p>Evaluates the formula derivation respect to <var>diff</var> for variables in array <var>var</var>[&rsquo;z&rsquo;-&rsquo;a&rsquo;]. Error code (if one) can be obtained from function <code>GetError()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-GetError-on-mglFormula"></a><u>Method on mglFormula:</u> <code>int</code> <b>GetError</b><i> ()</i></dt>
+<dd><p>Returns error code: <code>0</code> means no error; <code>ERR_LOG</code> means error in logarithm or power functions; <code>ERR_ARC</code> means error in inverse functions (like asin); <code>ERR_SQRT</code> means error in sqrt function.
+</p></dd></dl>
+
+<hr size="6">
+<a name="mglFont-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglFormula-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Format-of-font-files" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglFont-class-1"></a>
+<h2 class="section">7.3 mglFont class</h2>
+<a name="index-mglFont"></a>
+
+<p>Class for working with font: load, get metrics, parse and draw strings. This class is defined in <code>#include &lt;mgl/mgl_font.h&gt;</code>.
+</p>
+<p>The class is based on loading and drawing of vector Hershey font. There are two styles of specifying of the font type and aligning: by integer parameters or by string.
+</p>
+<p>The string can be any combination of characters: &lsquo;<samp>rbiLCRwou</samp>&rsquo;. The font types are: &lsquo;<samp>r</samp>&rsquo; &ndash; roman font, &lsquo;<samp>i</samp>&rsquo; &ndash; italic style, &lsquo;<samp>b</samp>&rsquo; &ndash; bold style. By default roman font (that is &lsquo;<samp></samp>&rsquo; or &lsquo;<samp>r</samp>&rsquo;) is used. The align types are: &lsquo;<samp>L</samp>&rsquo; &ndash; align left (default), &lsquo;<samp>C</samp>&rsquo; &ndash; align center, &lsquo;<samp>R</samp>&rsquo; &ndash; align right. Additional font effects are: &lsquo;<samp>w</samp>&rsquo; &ndash; wire, &lsquo;<samp>o</samp>&rsquo; &ndash; over-lined, &lsquo;<samp>u</samp>&rsquo; &ndash; underlined. Parsing of the string to special (TeX-like) commands will be done if variable <var>parse</var> is true (it&rsquo;s default). See also see section <a href="mathgl_ru_1.html#Font-styles">Стиль текста</a>.
+</p>
+<p>The over way of font and alignment setting is the using of the integer constant. Integer font Id can be one of predefined constants: <code>MGL_FONT_ITAL, MGL_FONT_BOLD, MGL_FONT_BOLD_ITAL = MGL_FONT_ITAL+MGL_FONT_BOLD</code>. Default font is <code>MGL_FONT_ROMAN</code>. Also there are flags <code>MGL_FONT_ULINE, MGL_FONT_OLINE, MGL_FONT_WIRE</code> for additional font effects. Align parameter controls the text alignment: 0 &ndash; align left, 1 &ndash; align center, 2 &ndash; align right.
+</p>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Format-of-font-files">7.3.1 Format of font files</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+
+<dl>
+<dt><a name="index-mglFont-on-mglFont"></a><u>Method on mglFont:</u> <code></code> <b>mglFont</b><i> (<code>const char *</code>name=<code>MGL_DEF_FONT_NAME</code>, <code>const char *</code>path=<code>NULL</code>)</i></dt>
+<dd><p>Initialize the font and load data from file <var>name</var> (default name is &quot;STIX&quot; for Linux and MacOS) or if  <var>name</var>=<code>NULL</code> limited data from memory (default for Windows).
+</p></dd></dl>
+<dl>
+<dt><a name="index-Load-on-mglFont"></a><u>Method on mglFont:</u> <code>bool</code> <b>Load</b><i> (<code>const char *</code> base, <code>const char *</code>path=<code>NULL</code>)</i></dt>
+<dd><p>Load font from file <var>path</var>/<var>base</var> into the memory. The font may contain 4 files: <var>base</var>.vfm, <var>base</var>_b.vfm, <var>base</var>_i.vfm, <var>base</var>_bi.vfm. Appendix contain detailed description of font format.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Restore-on-mglFont"></a><u>Method on mglFont:</u> <code>void</code> <b>Restore</b><i> ()</i></dt>
+<dd><p>Restore default font.
+</p></dd></dl>
+<dl>
+<dt><a name="index-_0028-on-mglFont"></a><u>Method on mglFont:</u> <code>void</code> <b>(</b><i><code>mglFont *</code> fnt)</i></dt>
+<dd><p>Copy data from other font instance.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Clear-on-mglFont"></a><u>Method on mglFont:</u> <code>void</code> <b>Clear</b><i> ()</i></dt>
+<dd><p>Clear memory by deleting the loaded font.
+</p></dd></dl>
+<dl>
+<dt><a name="index-GetNumGlyph-on-mglFont"></a><u>Method on mglFont:</u> <code>inline unsigned</code> <b>GetNumGlyph</b><i> ()</i></dt>
+<dd><p>Return the number of glyphs in the font.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Ready-on-mglFont"></a><u>Method on mglFont:</u> <code>inline bool</code> <b>Ready</b><i> ()</i></dt>
+<dd><p>Return true if font is loaded and ready for use.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-Height-on-mglFont"></a><u>Method on mglFont:</u> <code>float</code> <b>Height</b><i> (<code>int</code> font)</i></dt>
+<dd><p>Gets height of text for font specified by integer constant.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Puts-on-mglFont"></a><u>Method on mglFont:</u> <code>float</code> <b>Puts</b><i> (<code>const char *</code>str, <code>int</code> font=<code>0</code>, <code>int</code> align=<code>0</code>)</i></dt>
+<dd><p>Prints 8-bit text string for font specified by integer constant.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Width-on-mglFont"></a><u>Method on mglFont:</u> <code>float</code> <b>Width</b><i> (<code>const char *</code>str, <code>int</code> font=<code>0</code>)</i></dt>
+<dd><p>Gets width of 8-bit text string for font specified by integer constant.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Puts-on-mglFont-1"></a><u>Method on mglFont:</u> <code>float</code> <b>Puts</b><i> (<code>const wchar_t *</code>str, <code>int</code> font=<code>0</code>, <code>int</code> align=<code>0</code>)</i></dt>
+<dd><p>Prints Unicode text string for font specified by integer constant.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Width-on-mglFont-1"></a><u>Method on mglFont:</u> <code>float</code> <b>Width</b><i> (<code>const wchar_t *</code>str, <code>int</code> font=<code>0</code>)</i></dt>
+<dd><p>Gets width of Unicode text string for font specified by integer constant.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-Height-on-mglFont-1"></a><u>Method on mglFont:</u> <code>float</code> <b>Height</b><i> (<code>const char *</code>how)</i></dt>
+<dd><p>Gets height of text for font specified by string.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Puts-on-mglFont-2"></a><u>Method on mglFont:</u> <code>float</code> <b>Puts</b><i> (<code>const char *</code>str, <code>const char *</code>how)</i></dt>
+<dd><p>Prints 8-bit text string for font specified by string.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Width-on-mglFont-2"></a><u>Method on mglFont:</u> <code>float</code> <b>Width</b><i> (<code>const char *</code>str, <code>const char *</code>how)</i></dt>
+<dd><p>Gets width of 8-bit text string for font specified by string.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Puts-on-mglFont-3"></a><u>Method on mglFont:</u> <code>float</code> <b>Puts</b><i> (<code>const wchar_t *</code>str, <code>const char *</code>how)</i></dt>
+<dd><p>Prints Unicode text string for font specified by string.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Width-on-mglFont-3"></a><u>Method on mglFont:</u> <code>float</code> <b>Width</b><i> (<code>const wchar_t *</code>str, <code>const char *</code>how)</i></dt>
+<dd><p>Gets width of Unicode text string for font specified by string.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-gr-of-mglFont"></a><u>Parameter of mglFont:</u> <code>mglGraph *</code> <b>gr</b></dt>
+<dd><p>Instance of mglGraph class which is used for character drawing.
+</p></dd></dl>
+<dl>
+<dt><a name="index-parse-of-mglFont"></a><u>Parameter of mglFont:</u> <code>bool</code> <b>parse</b></dt>
+<dd><p>Flag for switching on/off the parsing of TeX commands. Default value is <code>true</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Format-of-font-files"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglFont-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglColor-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglFont-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Format-of-font-files-1"></a>
+<h3 class="subsection">7.3.1 Format of font files</h3>
+
+<p>Starting from v.1.6 the MathGL library uses new font files. The font is defined in 4 files with suffixes &lsquo;<samp>*.vfm</samp>&rsquo;, &lsquo;<samp>*_b.vfm</samp>&rsquo;, &lsquo;<samp>*_i.vfm</samp>&rsquo;, &lsquo;<samp>*_bi.vfm</samp>&rsquo;. These files are text files containing the data for roman font, bold font, italic font and bold italic font. The files (or some symbols in the files) for bold, italic or bold italic fonts can be absent. In this case the roman glyph will be used for them. By analogy, if the bold italic font is absent but the bold font is present then bold glyph will be used for bold italic. You may create these font files by yourself from *.ttf, *.otf files with the help of program <code>font_tools</code>. This program can be found at MathGL home site.
+</p>
+<p>The format of font files (*.vfm &ndash; vector font for MathGL) is the following.
+</p><ol>
+<li>
+First string contains human readable comment and is always ignored.
+</li><li>
+Second string contains 3 numbers, delimited by space or tabulation. The order of numbers is the following: <var>numg</var> &ndash; the number of glyphs in the file (integer), <var>fact</var> &ndash; the factor for glyph sizing (float), <var>size</var> &ndash; the size of buffer for glyph description (integer).
+</li><li>
+After it <var>numg</var>-th strings with glyphs description are placed. Each string contains 6 positive numbers, delimited by space of tabulation. The order of numbers is the following: Unicode glyph ID, glyph width, number of lines in glyph, position of lines coordinates in the buffer (length is 2*number of lines), number of triangles in glyph, position of triangles coordinates in the buffer (length is 6*number of triangles).
+</li><li>
+The end of file contains the buffer with point coordinates at lines or triangles vertexes. The size of buffer (the number of integer) is <var>size</var>.
+</li></ol>
+
+<p>Each font file can be compressed by gzip.
+</p>
+<p>Note: the closing contour line  is done automatically (so the last segment may be absent). For starting new contour use a point with coordinates <code>{0x3fff, 0x3fff}</code>.
+</p>
+
+<hr size="6">
+<a name="mglColor-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Format-of-font-files" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglPoint-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglColor-class-1"></a>
+<h2 class="section">7.4 mglColor class</h2>
+<a name="index-mglColor"></a>
+
+<p>Structure for working with colors. This structure is defined in <code>#include &lt;mgl/mgl.h&gt;</code>.
+</p>
+<p>There are two ways to set the color in MathGL. First one is using of float values of red, green and blue channels for precise color definition. The second way is the using of character id. There are a set of characters specifying frequently used colors. Normally capital letter gives more dark color than lowercase one. See section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>.
+</p>
+<dl>
+<dt><a name="index-r_002c-g_002c-b-of-mglVar"></a><u>Parameter of mglVar:</u> <code>float</code> <b>r, g, b</b></dt>
+<dd><p>Reg, green and blue component of color.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglColor-on-mglColor"></a><u>Method on mglColor:</u> <code></code> <b>mglColor</b><i> (<code>float</code> R, <code>float</code> G, <code>float</code> B)</i></dt>
+<dd><p>Constructor sets the color by float values of Red, Green and Blue channels.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mglColor-on-mglColor-1"></a><u>Method on mglColor:</u> <code></code> <b>mglColor</b><i> (<code>char</code> c=<code>'k'</code>)</i></dt>
+<dd><p>Constructor sets the color from character id. The black color is used by default.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-on-mglColor"></a><u>Method on mglColor:</u> <code>void</code> <b>Set</b><i> (<code>float</code> R, <code>float</code> G, <code>float</code> B)</i></dt>
+<dd><p>Sets color from values of Red, Green and Blue channels. This values should be in interval [0,1].
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-on-mglColor-1"></a><u>Method on mglColor:</u> <code>void</code> <b>Set</b><i> (<code>mglColor</code> c, <code>float</code> bright=<code>1</code>)</i></dt>
+<dd><p>Sets color as &ldquo;lighted&rdquo; version of color <var>c</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-on-mglColor-2"></a><u>Method on mglColor:</u> <code>void</code> <b>Set</b><i> (<code>char</code> p)</i></dt>
+<dd><p>Sets color from symbolic id.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Valid-on-mglColor"></a><u>Method on mglColor:</u> <code>bool</code> <b>Valid</b><i> ()</i></dt>
+<dd><p>Checks correctness of the color.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Norm-on-mglColor"></a><u>Method on mglColor:</u> <code>float</code> <b>Norm</b><i> ()</i></dt>
+<dd><p>Gets maximal of spectral component.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_003d_003d-on-mglColor"></a><u>Method on mglColor:</u> <code>bool</code> <b>operator==</b><i> (<code>const mglColor &amp;</code>c)</i></dt>
+<dd><p>Compare with another color
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002b-3"></a><u>Library Function:</u> inline mglColor <b>operator+</b><i> (<code>const mglColor &amp;</code>a, <code>const mglColor &amp;</code>b)</i></dt>
+<dd><p>Adds colors by its RGB values.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d-3"></a><u>Library Function:</u> inline mglColor <b>operator-</b><i> (<code>const mglColor &amp;</code>a, <code>const mglColor &amp;</code>b)</i></dt>
+<dd><p>Subtracts colors by its RGB values.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-3"></a><u>Library Function:</u> inline mglColor <b>operator*</b><i> (<code>const mglColor &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Multiplies color by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-4"></a><u>Library Function:</u> inline mglColor <b>operator*</b><i> (<code>float</code> a, <code>const mglColor &amp;</code>b)</i></dt>
+<dd><p>Multiplies color by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f-2"></a><u>Library Function:</u> inline mglColor <b>operator/</b><i> (<code>const mglColor &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Divide color by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_0021"></a><u>Library Function:</u> inline mglColor <b>operator!</b><i> (<code>const mglColor &amp;</code>a)</i></dt>
+<dd><p>Return inverted color.
+</p></dd></dl>
+
+<hr size="6">
+<a name="mglPoint-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglColor-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglVar-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglPoint-class-1"></a>
+<h2 class="section">7.5 mglPoint class</h2>
+<a name="index-mglPoint"></a>
+
+<p>Structure describes point in space. This structure is defined in <code>#include &lt;mgl/mgl.h&gt;</code>
+</p>
+<dl>
+<dt><a name="index-x_002c-y_002c-z-of-mglVar"></a><u>Parameter of mglVar:</u> <code>float</code> <b>x, y, z</b></dt>
+<dd><p>Point coordinates. By default all values are zero.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002b-4"></a><u>Library Function:</u> inline mglPoint <b>operator+</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Point of summation (summation of vectors).
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d-4"></a><u>Library Function:</u> inline mglPoint <b>operator-</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Point of difference (difference of vectors).
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-5"></a><u>Library Function:</u> inline mglPoint <b>operator*</b><i> (<code>float</code> a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Multiplies (scale) points by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-6"></a><u>Library Function:</u> inline mglPoint <b>operator*</b><i> (<code>const mglPoint &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Multiplies (scale) points by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f-3"></a><u>Library Function:</u> inline mglPoint <b>operator/</b><i> (<code>const mglPoint &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Multiplies (scale) points by number 1/b.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d-5"></a><u>Library Function:</u> inline float <b>operator-</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Scalar product of vectors.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_005e"></a><u>Library Function:</u> inline mglPoint <b>operator^</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Cross-product of vectors.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_0026"></a><u>Library Function:</u> inline mglPoint <b>operator&amp;</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>The part of <var>a</var> which is perpendicular to vector <var>b</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_007c"></a><u>Library Function:</u> inline mglPoint <b>operator|</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>The part of <var>a</var> which is parallel to vector <var>b</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_0021-1"></a><u>Library Function:</u> inline mglPoint <b>operator!</b><i> (<code>const mglPoint &amp;</code>a)</i></dt>
+<dd><p>Return vector perpendicular to vector <var>a</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Norm-2"></a><u>Library Function:</u> inline bool <b>Norm</b><i> (<code>const mglPoint &amp;</code>a)</i></dt>
+<dd><p>Return the norm |<var>a</var>|^2 of vector <var>a</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_003d_003d"></a><u>Library Function:</u> inline bool <b>operator==</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Return true if points are the same.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_0021_003d"></a><u>Library Function:</u> inline bool <b>operator!=</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Return true if points are different.
+</p></dd></dl>
+
+<hr size="6">
+<a name="mglVar-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglPoint-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglCommand-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglVar-class-1"></a>
+<h2 class="section">7.6 mglVar class</h2>
+<a name="index-mglVar"></a>
+
+<p>Structure describes variable of type <code>mglData</code> and its name in MGL script. This structure is used by <code>mglParse</code> and is defined in <code>#include &lt;mgl/mgl_parse.h&gt;</code>.
+</p>
+<dl>
+<dt><a name="index-d-of-mglVar"></a><u>Parameter of mglVar:</u> <code>mglData</code> <b>d</b></dt>
+<dd><p>Data itself
+</p></dd></dl>
+<dl>
+<dt><a name="index-s-of-mglVar"></a><u>Parameter of mglVar:</u> <code>wchar_t</code> <b>s</b><i>[256]</i></dt>
+<dd><p>Data name
+</p></dd></dl>
+<dl>
+<dt><a name="index-o-of-mglVar"></a><u>Parameter of mglVar:</u> <code>void *</code> <b>o</b></dt>
+<dd><p>Pointer to external object for function <var>func</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-next-of-mglVar"></a><u>Parameter of mglVar:</u> <code>mglVar *</code> <b>next</b></dt>
+<dd><p>Pointer to next instance in list
+</p></dd></dl>
+<dl>
+<dt><a name="index-prev-of-mglVar"></a><u>Parameter of mglVar:</u> <code>mglVar *</code> <b>prev</b></dt>
+<dd><p>Pointer to prev instance in list
+</p></dd></dl>
+<dl>
+<dt><a name="index-temp-of-mglVar"></a><u>Parameter of mglVar:</u> <code>bool</code> <b>temp</b></dt>
+<dd><p>Flag for temporar variable. Temporal variables will be destroyed after script execution.
+</p></dd></dl>
+<dl>
+<dt><a name="index-func-of-mglVar"></a><u>Parameter of mglVar:</u> <code>void (*</code> <b>func</b><i> <code>)(void *)</code></i></dt>
+<dd><p>Callback function for destroying non-temporal variable.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-MoveAfter-on-mglVar"></a><u>Method on mglVar:</u> <code>void</code> <b>MoveAfter</b><i> (<code>mglVar *</code>var)</i></dt>
+<dd><p>Move variable after <var>var</var> and copy <code>func</code> from <code>var</code> (if <code>func</code> is not 0)
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="mglCommand-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglVar-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglArg-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglCommand-class-1"></a>
+<h2 class="section">7.7 mglCommand class</h2>
+<a name="index-mglCommand"></a>
+
+<p>Structure describes MGL command, its name, short description, executable and export functions. The structure is used by <code>mglParse</code> and is defined in <code>#include &lt;mgl/mgl_parse.h&gt;</code>.
+</p>
+<dl>
+<dt><a name="index-name-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>const wchar_t *</code> <b>name</b></dt>
+<dd><p>Name of command.
+</p></dd></dl>
+<dl>
+<dt><a name="index-desc-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>const wchar_t *</code> <b>desc</b></dt>
+<dd><p>Short command description (can be NULL).
+</p></dd></dl>
+<dl>
+<dt><a name="index-form-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>const wchar_t *</code> <b>form</b></dt>
+<dd><p>Format of command arguments (can be NULL).
+</p></dd></dl>
+<dl>
+<dt><a name="index-exec-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>int (*</code> <b>exec</b><i> <code>)(mglGraph *gr, long n, mglArg *a, int k[10])const wchar_t *</code></i></dt>
+<dd><p>Function for executing (plotting) the command using grapher <var>gr</var> and having <var>n</var>-th arguments <var>a</var>. Function must return 0 if all is OK; or 1 if arguments are wrong.
+</p></dd></dl>
+<dl>
+<dt><a name="index-save-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>void (*</code> <b>save</b><i> <code>)(wchar_t out[1024], long n, mglArg *a, int k[10])const wchar_t *</code></i></dt>
+<dd><p>Function for exporting in C++ (can be NULL).
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="mglArg-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglCommand-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglArg-class-1"></a>
+<h2 class="section">7.8 mglArg class</h2>
+<a name="index-mglArg"></a>
+
+<p>Structure describes arguments of functions in the stucture <code>mglCommand</code>. It is defined in <code>#include &lt;mgl/mgl_parse.h&gt;</code>.
+</p>
+<dl>
+<dt><a name="index-type-of-mglArg"></a><u>Parameter of mglArg:</u> <code>int</code> <b>type</b></dt>
+<dd><p>Type of argument: 0-data, 1-string, 2-number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-d-of-mglArg"></a><u>Parameter of mglArg:</u> <code>mglData *</code> <b>d</b></dt>
+<dd><p>Pointer to data (used if type=0).
+</p></dd></dl>
+<dl>
+<dt><a name="index-w-of-mglArg"></a><u>Parameter of mglArg:</u> <code>wchar_t</code> <b>w</b><i>[2048]</i></dt>
+<dd><p>String with parameters (used if type=1 or if type=0 as variable name).
+</p></dd></dl>
+<dl>
+<dt><a name="index-s-of-mglArg"></a><u>Parameter of mglArg:</u> <code>char</code> <b>s</b><i>[2048]</i></dt>
+<dd><p>String with parameters (used if type=1).
+</p></dd></dl>
+<dl>
+<dt><a name="index-v-of-mglArg"></a><u>Parameter of mglArg:</u> <code>float</code> <b>v</b></dt>
+<dd><p>Numerical value (used if type==2)
+</p></dd></dl>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_8.html b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_8.html
new file mode 100644
index 0000000..0d1f712
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_8.html
@@ -0,0 +1,2895 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: 8. Язык MGL</title>
+
+<meta name="description" content="MathGL 1.11: 8. Язык MGL">
+<meta name="keywords" content="MathGL 1.11: 8. Язык MGL">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="MGL-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_7.html#mglArg-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="YA_0437_044b_043a-MGL"></a>
+<h1 class="chapter">8. Язык MGL</h1>
+
+<p>MathGL имеет встроенный скриптовый язык MGL для обработки и отображения данных. Скрипты MGL можно использовать как независимо (программами UDAV, mgl2png, mgl2eps, mgl2svg и пр., see section <a href="#Utilities">Утилиты для MGL</a>) так и вызовами библиотеки.
+</p>
+<p>Язык MGL достаточно простой. Каждая строка &ndash; отдельная команда. Первое слово &ndash; имя команды, а все остальные ее аргументы. Команда может иметь до 1000 аргументов (по крайней мере сейчас). Слова разделяются одно от другого пробелом или символом табуляции. Различий между верхним и нижним индексом нет, т.е. переменные <var>a</var> и <var>A</var> идентичны. Символ &lsquo;<samp>#</samp>&rsquo; начинает комментарий &ndash; все символы после него игнорируются до конца строки. Исключением является случай, когда &lsquo;<samp>#</samp>&rsquo; входит в строку. Опции команды указываются после символа &lsquo;<samp>;</samp>&rsquo; (see section <a href="#Command-options-_0028MGL_0029">Опции команд (MGL)</a>). Символ &lsquo;<samp>:</samp>&rsquo; начинает новую команду (подобно переводу строки) если он расположен не внутри скобок или строки.
+</p>
+<p>Если строка содержит ссылки на внешние параметры (&lsquo;<samp>$0</samp>&rsquo;, &lsquo;<samp>$1</samp>&rsquo; ... &lsquo;<samp>$9</samp>&rsquo;) или макроопределения (&lsquo;<samp>$a</samp>&rsquo;, &lsquo;<samp>$b</samp>&rsquo; ... &lsquo;<samp>$z</samp>&rsquo;), то текущие значения параметров/макроопределений подставляются в строку вместо ссылки до выполнением команды. Это позволяет использовать один и тот же скрипт при различных входных параметрах командной строки или вводить макроопределения по ходу исполнения команд скрипта.
+</p>
+<p>Аргументы команды могут быть строками, переменными или числами. 
+</p><ul>
+<li> 
+Строка &ndash; произвольный набор символов между метками &lsquo;<samp>'</samp>&rsquo;.
+
+</li><li> 
+Обычно переменная имеет имя, состоящее из букв и чисел (должно начинаться с буквы и не быть длиннее 64 символов). В качестве переменной можно использовать временные массивы, включающие в себя:
+<ul>
+<li> 
+срезы (&ldquo;подмассивы&rdquo;) массивов данных (подобно команде <a href="#subdata">subdata</a>). Например, <code>a(1)</code> или <code>a(1,:)</code> или <code>a(1,:,:)</code> &ndash; вторая строка массива <var>a</var>, <code>a(:,2)</code> или <code>a(:,2,:)</code> &ndash; третий столбец, <code>a(:,:,0)</code> &ndash; первый срез и т.д. Также можно выделить часть массива с m-го по n-ый элемент <code>a(m:n,:,:)</code> или просто <code>a(m:n)</code>.
+
+</li><li> 
+произвольные комбинации столбцов данных (например, <code>a('n*w^2/exp(t)')</code>), если столбцы данных были именованы командой <a href="#idset">idset</a> или в файле данных (в строке начинающейся с <code>##</code>).
+
+</li><li> 
+произвольное выражение из существующих переменных и констант. Например, &lsquo;<samp>sqrt(dat(:,5)+1)</samp>&rsquo; даст временный массив данных с элементами равными <code>tmp[i,j] = sqrt(dat[i,5,j]+1)</code>.
+
+</li><li> 
+массивы с элементами заданными в квадратных скобках [], разделенные &lsquo;<samp>,</samp>&rsquo;. При этом внутри выражения не должно быть пробелов! Например, &lsquo;<samp>[1,2,3]</samp>&rsquo; даст временный массив из 3 элементов {1, 2, 3}; &lsquo;<samp>[[11,12],[21,22]]</samp>&rsquo; даст матрицу 2*2 и т.д. Элементами такой конструкции могут быть и массивы если их размерности одинаковые, например &lsquo;<samp>[v1,v2,...,vn]</samp>&rsquo;.
+
+</li><li> 
+результат команд построения новых данных (see section <a href="mathgl_ru_6.html#Make-another-data">Создание новых данных</a>), если они заключены в фигурные скобки {}. Например, &lsquo;<samp>{sum dat 'x'}</samp>&rsquo; даст временный массив, который есть результат суммирования <var>dat</var> вдоль &rsquo;x&rsquo;. Это такой же массив как и <var>tmp</var>, полученный командой &lsquo;<samp>sum tmp dat 'x'</samp>&rsquo;. При этом можно использовать вложенные конструкции, например &lsquo;<samp>{sum {max dat 'z'} 'x'}</samp>&rsquo;.
+</li></ul>
+<p>Временные массивы не могут стоять в качестве первого аргумента команд, создающих массивы (например, &lsquo;<samp>new</samp>&rsquo;, &lsquo;<samp>read</samp>&rsquo;, &lsquo;<samp>hist</samp>&rsquo; и т.д.).
+</p>
+</li><li> 
+К скалярным переменным, кроме собственно чисел, относятся: специальные переменные <code>nan=#QNAN, pi=3.1415926..., on=1, off=0, :=-1</code>, переменные с суффиксами (see section <a href="#Suffixes">Суффиксы переменных</a>), переменные определенные командой <a href="#define">define</a>. Также массивы размером 1x1x1 считаются скалярами (например, &lsquo;<samp>pi/dat.nx</samp>&rsquo;).
+</li></ul>
+<p>Перед первым использованием все переменные должны быть определены с помощью команд, создающих массивы (<a href="#new">new</a>, <a href="#var">var</a>, <a href="#list">list</a>, <a href="#copy">copy</a>, <a href="#read">read</a>, <a href="#hist">hist</a>, <a href="#sum">sum</a> и др., see section <a href="#Data-create-_0028MGL_0029">Создание данных (MGL)</a> и <a href="#Make-another-data-_0028MGL_0029">Создание новых данных (MGL)</a>). 
+</p>
+<p>Команды могут иметь несколько наборов аргументов (например, <code>plot ydat</code> и <code>plot xdat ydat</code>). Все аргументы команды для выбранного набора должны быть указаны, однако часть из них могут иметь значения по умолчанию. Такие аргументы в описании команд будут помещены в квадратные скобки [], например <code>plot ydat ['stl'='' zval=nan]</code>. При этом запись <code>[arg1 arg2 arg3 ...]</code> подразумевает <code>[arg1 [arg2 [arg3 ...]]]</code>, т.е. опускать можно только аргументы с конца, если вы согласны с их значениями по умолчанию. Например, <code>plot ydat '' 1</code> или <code>plot ydat ''</code> правильно, а <code>plot ydat 1</code> не правильно (аргумент <code>'stl'</code> пропущен).
+</p>
+<p>Все команды MGL можно разделить на несколько групп. В дальнейшем будет использованы следующие обозначения при описании команд: имя команды выделено жирным, строки заключены в одинарные кавычки &rdquo;, переменные выделены курсивом, числа (скаляры) выделены моноширинным шрифтом. Необязательные аргументы будут помещены в квадратные скобки [] и показаны их значения по умолчанию. Подробную информацию о цвете и стиле линий (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>), цветовых схемах (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>), стиле текста и символах TeX (see section <a href="mathgl_ru_1.html#Font-styles">Стиль текста</a>), текстовых формулах (see section <a href="mathgl_ru_1.html#Textual-formulas">Текстовые формулы</a>) можно найти в соответствующих разделах.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Graphics-setup-_0028MGL_0029">8.1 Настройка графика (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transformation-matrix-_0028MGL_0029">8.3 Матрица преобразования (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Export-to-file-_0028MGL_0029">8.4 Экспорт в файл (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing-_0028MGL_0029">8.6 Вывод текста (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Legend-_0028MGL_0029">8.8 Легенда (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting-_0028MGL_0029">8.12 Парные графики (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-fields-_0028MGL_0029">8.13 Векторные поля (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-create-_0028MGL_0029">8.16 Создание данных (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-filling-_0028MGL_0029">8.17 Заполнение данных (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Rearrange-data-_0028MGL_0029">8.18 Изменение размеров данных (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Operators-_0028MGL_0029">8.22 Операторы (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Suffixes">8.25 Суффиксы переменных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Utilities">8.26 Утилиты для MGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+</table>
+
+
+<hr size="6">
+<a name="Graphics-setup-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparency-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041d_0430_0441_0442_0440_043e_0439_043a_0430-g_0440_0430_0444_0438_043a_0430-_0028MGL_0029"></a>
+<h2 class="section">8.1 Настройка графика (MGL)</h2>
+
+<p>Команды в этой группе влияют на вид всего рисунка. Соответственно они должны располагаться <em>перед</em> вызовом функций непосредственно рисующих графики.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Transparency-_0028MGL_0029">8.1.1 Прозрачность (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lighting-_0028MGL_0029">8.1.2 Освещение (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fog-_0028MGL_0029">8.1.3 Туман (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Default-sizes-_0028MGL_0029">8.1.4 Базовые размеры (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Zooming-_0028MGL_0029">8.1.5 Масштабирование (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cutting-_0028MGL_0029">8.1.6 Обрезание (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-settings-_0028MGL_0029">8.1.7 Прочие настройки (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Transparency-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lighting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x-_0028MGL_0029"></a>
+<h3 class="subsection">8.1.1 Прозрачность (MGL)</h3>
+
+<p>Эти команды настраивают тип и степень прозрачности поверхностей. Главной является функция <a href="#alpha">alpha</a>, которая включает/выключает прозрачность для всех графиков, созданных после вызова <a href="#alpha">alpha</a>. Функция <a href="#alphadef">alphadef</a> устанавливает величину alpha-канала по умолчанию. Прозрачность можно выключить для отдельного графика с помощью <a href="#transparent">transparent</a>. Наконец, функция <a href="#transptype">transptype</a> задает тип прозрачности. См. раздел <a href="mathgl_ru_9.html#Transparent-surface-sample">Transparent surface &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<a name="index-alpha"></a>
+<p><a name="alpha"></a>
+</p><dl>
+<dt><a name="index-alpha-1"></a><u>Команда MGL:</u> <b>alpha</b><i> <code>[val=on]</code></i></dt>
+<dd><p>Включает/выключает прозрачность для <em>всего</em> рисунка. По умолчанию прозрачность выключена. Используйте <code>transparent off</code> для конкретного графика для выключения прозрачности.
+</p></dd></dl>
+<a name="index-alphadef"></a>
+<p><a name="alphadef"></a>
+</p><dl>
+<dt><a name="index-alphadef-1"></a><u>Команда MGL:</u> <b>alphadef</b><i> <code>val</code></i></dt>
+<dd><p>Задает значение прозрачности по умолчанию для всех графиков. Начальное значение 0.5.
+</p></dd></dl>
+<a name="index-transparent"></a>
+<p><a name="transparent"></a>
+</p><dl>
+<dt><a name="index-transparent-1"></a><u>Команда MGL:</u> <b>transparent</b><i> <code>val</code></i></dt>
+<dd><p>Временно включает/возвращает прозрачность графиков.
+</p></dd></dl>
+<a name="index-transptype"></a>
+<p><a name="transptype"></a>
+</p><dl>
+<dt><a name="index-transptype-1"></a><u>Команда MGL:</u> <b>transptype</b><i> <code>val</code></i></dt>
+<dd><p>Задает тип прозрачности. Обычная прозрачность (&lsquo;<samp>0</samp>&rsquo;) &ndash; &quot;закрытые&quot; объекты видны меньше чем закрывающие. &quot;Стеклянная&quot; прозрачность (&lsquo;<samp>1</samp>&rsquo;) &ndash; закрытые и закрывающие объекты единообразно ослабляют интенсивность света (по RGB каналам). &quot;Ламповая&quot; прозрачность (&lsquo;<samp>2</samp>&rsquo;) &ndash; закрытые и закрывающие объекты являются источниками дополнительного освещения (рекомендую установить <code>alphadef 0.3</code> или меньше в этом случае). See section <a href="mathgl_ru_9.html#Normal-transparency">Обычная прозрачность</a>, <a href="mathgl_ru_9.html#Glass_002dlike-transparency">&quot;Стеклянная&quot; прозрачность</a>, <a href="mathgl_ru_9.html#Lamp_002dlike-transparency">&quot;Ламповая&quot; прозрачность</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Lighting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparency-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fog-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_0432e_0449e_043d_0438e-_0028MGL_0029"></a>
+<h3 class="subsection">8.1.2 Освещение (MGL)</h3>
+
+<p>Эти функции настраивают освещение графика. Главная функция <a href="#light">light</a> включает/выключает освещение графиков построенных после ее вызова. MathGL  поддерживает до 10 независимых источников света. Положение, цвет, яркость каждого источника света можно задавать по отдельности. По умолчанию включен только первый (с порядковым номером <code>0</code>) источник света белого цвета, расположенный сверху.
+</p>
+<a name="index-light"></a>
+<p><a name="light"></a>
+</p><dl>
+<dt><a name="index-light-1"></a><u>Команда MGL:</u> <b>light</b><i> <code>[val=on]</code></i></dt>
+<dd><p>Включает/выключает освещение графика. По умолчанию освещение выключено.
+</p></dd></dl>
+<dl>
+<dt><a name="index-light-2"></a><u>Команда MGL:</u> <b>light</b><i> <code>n val</code></i></dt>
+<dd><p>Включает/выключает <var>n</var>-ый источник света.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-light-3"></a><u>Команда MGL:</u> <b>light</b><i> <code>n xpos ypos zpos</code> ['col'='w' <code>br=0.5</code>]</i></dt>
+<dd><p>Добавляет источник света с номером <var>n</var> в положение {<var>xpos</var>, <var>ypos</var>, <var>zpos</var>} с цветом <var>col</var> и яркостью <var>br</var>, которая должна быть в диапазоне [0,1].
+</p></dd></dl>
+
+<a name="index-ambient"></a>
+<p><a name="ambient"></a>
+</p><dl>
+<dt><a name="index-ambient-1"></a><u>Команда MGL:</u> <b>ambient</b><i> <code>val</code></i></dt>
+<dd><p>Задает яркость рассеянного освещения. Значение должно быть в диапазоне [0,1].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fog-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lighting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Default-sizes-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0422_0443_043c_0430_043d-_0028MGL_0029"></a>
+<h3 class="subsection">8.1.3 Туман (MGL)</h3>
+
+<a name="index-fog"></a>
+<p><a name="fog"></a>
+</p><dl>
+<dt><a name="index-fog-1"></a><u>Команда MGL:</u> <b>fog</b><i> <code>val [dz=0.25]</code></i></dt>
+<dd><p>Имитирует туман на графике. Туман начинается на относительном расстоянии <var>dz</var> от точки обзора и его плотность растет экспоненциально вглубь по закону ~<em>1-exp(-d*z)</em>. Здесь <em>z</em> &ndash; нормализованная на 1 глубина графика. Если <var>d</var>=<code>0</code> то туман отсутствует. См. раздел <a href="mathgl_ru_9.html#Surface-in-fog-sample">Surface in fog &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Default-sizes-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fog-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Zooming-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0411_0430_0437_043e_0432_044be-_0440_0430_0437_043ce_0440_044b-_0028MGL_0029"></a>
+<h3 class="subsection">8.1.4 Базовые размеры (MGL)</h3>
+
+<p>Эти команды задают величины большинства параметров графика, включая размеры маркеров, стрелок, толщину линий и т.д. Как и любые другие настройки, они подействуют только на графики созданные после изменения настроек.
+</p>
+<a name="index-barwidth"></a>
+<p><a name="barwidth"></a>
+</p><dl>
+<dt><a name="index-barwidth-1"></a><u>Команда MGL:</u> <b>barwidth</b><i> <code>val</code></i></dt>
+<dd><p>Относительный размер прямоугольников в <code>bars, barh, boxplot</code>. Значение по умолчанию <code>0.7</code>.
+</p></dd></dl>
+
+<a name="index-marksize"></a>
+<p><a name="marksize"></a>
+</p><dl>
+<dt><a name="index-marksize-1"></a><u>Команда MGL:</u> <b>marksize</b><i> <code>val</code></i></dt>
+<dd><p>Размер маркеров для <a href="mathgl_ru_3.html#g_t1D-plotting">1D графики</a>. Значение по умолчанию <code>1</code>.
+</p></dd></dl>
+
+<a name="index-arrowsize"></a>
+<p><a name="arrowsize"></a>
+</p><dl>
+<dt><a name="index-arrowsize-1"></a><u>Команда MGL:</u> <b>arrowsize</b><i> <code>val</code></i></dt>
+<dd><p>Размер стрелок для <a href="mathgl_ru_3.html#g_t1D-plotting">1D графики</a>, линий и кривых (see section <a href="mathgl_ru_3.html#Primitives-drawing">Рисование примитивов</a>). Значение по умолчанию <code>1</code>.
+</p></dd></dl>
+
+<a name="index-linewidth"></a>
+<p><a name="linewidth"></a>
+</p><dl>
+<dt><a name="index-linewidth-1"></a><u>Команда MGL:</u> <b>linewidth</b><i> <code>val</code></i></dt>
+<dd><p>Базовая толщина линий. Значения &lt;1 игнорируются. Для значений &gt;1 реальная толщина получается перемножением указанной ширины линии на данное значение. Увеличение ширины линии актуально для больших растровых рисунков. Значение по умолчанию <code>1</code>.
+</p></dd></dl>
+
+<a name="index-ticklen"></a>
+<p><a name="ticklen"></a>
+</p><dl>
+<dt><a name="index-ticklen-1"></a><u>Команда MGL:</u> <b>ticklen</b><i> <code>val</code> [<code>stt=1</code>]</i></dt>
+<dd><p>Относительная длина меток осей координат. Значение по умолчанию <code>0.1</code>. Параметр <var>stt</var>&gt;0 задает относительную длину подметок, которые в <code>sqrt(1+stt)</code> раз меньше.
+</p></dd></dl>
+
+<a name="index-tickstl"></a>
+<p><a name="tickstl"></a>
+</p><dl>
+<dt><a name="index-tickstl-1"></a><u>Команда MGL:</u> <b>tickstl</b><i> 'stl' ['sub'='']</i></dt>
+<dd><p>Стиль меток (<var>stl</var>) и подметок (<var>sub</var>) осей координат. Если <code>stl=''</code>, то используется стиль по умолчанию (&lsquo;<samp>k</samp>&rsquo; или &lsquo;<samp>w</samp>&rsquo; в зависимости от типа прозрачности). Если <code>sub=''</code>, то используется стиль меток (т.е. <var>stl</var>).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Zooming-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Default-sizes-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cutting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041c_0430_0441_0448_0442_0430_0431_0438_0440_043e_0432_0430_043d_0438e-_0028MGL_0029"></a>
+<h3 class="subsection">8.1.5 Масштабирование (MGL)</h3>
+
+<p>Эти команды управляют масштабированием всего рисунка (<a href="#zoom">zoom</a>) или отдельной картинки (<a href="#plotfactor">plotfactor</a>). Обычно эти функции используются для удаления пустого места вокруг графиков.
+</p>
+<a name="index-plotfactor"></a>
+<p><a name="plotfactor"></a>
+</p><dl>
+<dt><a name="index-plotfactor-1"></a><u>Команда MGL:</u> <b>plotfactor</b><i> <code>val</code></i></dt>
+<dd><p>Масштаб картинки (значение должно быть больше 1). Не рекомендуется устанавливать значения меньше 1.5. Это аналог <a href="#zoom">zoom</a>, но применяется только к конкретной картинке, заданной <a href="#inplot">inplot</a>. Используйте ноль для включения автоматического масштабирования.
+</p></dd></dl>
+
+<a name="index-zoom"></a>
+<p><a name="zoom"></a>
+</p><dl>
+<dt><a name="index-zoom-1"></a><u>Команда MGL:</u> <b>zoom</b><i> <code>x1 y1 x2 y2</code></i></dt>
+<dd><p>Масштабирует весь рисунок. После вызова функции текущий график будет очищен и в дальнейшем рисунок будет содержать только область [x1,x2]*[y1,y2] от исходного рисунка. Координаты <var>x1</var>, <var>x2</var>, <var>y1</var>, <var>y2</var> меняются в диапазоне от 0 до 1. Внимание! эти настройки не могут быть переписаны никакими другими функциями. Используйте <code>zoom 0 0 1 1</code> для перехода в масштаб по умолчанию.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cutting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Zooming-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-settings-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0431_0440e_0437_0430_043d_0438e-_0028MGL_0029"></a>
+<h3 class="subsection">8.1.6 Обрезание (MGL)</h3>
+
+<p>Эти команды задают условия когда точка будет исключена (вырезана) из рисования. Замечу, что все точки со значением(-ями) <code>nan</code> по одной из координат или амплитуде автоматически исключаются из рисования.
+</p>
+<a name="index-cut"></a>
+<p><a name="cut"></a>
+</p><dl>
+<dt><a name="index-cut-1"></a><u>Команда MGL:</u> <b>cut</b><i> <code>val</code></i></dt>
+<dd><p>Задает обрезание точек за пределами осей координат. Если <code>on</code> то такие точки исключаются из рисования (это по умолчанию) иначе они проецируются на ограничивающий прямоугольник.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cut-2"></a><u>Команда MGL:</u> <b>cut</b><i> <code>x1 y1 z1 x2 y2 z2</code></i></dt>
+<dd><p>Задает границы параллелепипеда внутри которого точки не рисуются. Если границы одинаковы (переменные равны), то параллелепипеда считается пустым. См. раздел <a href="mathgl_ru_9.html#CutMinMax-sample">CutMinMax &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cut-3"></a><u>Команда MGL:</u> <b>cut</b><i> 'cond'</i></dt>
+<dd><p>Задает условие обрезания по формуле <var>cond</var>. Это условие исключает точки из рисования если результат вычисления формулы не равен нулю. Установите аргумент <code>''</code> для выключения условия обрезания. См. раздел <a href="mathgl_ru_9.html#CutOff-sample">CutOff &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Other-settings-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cutting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043e_0447_0438e-_043d_0430_0441_0442_0440_043e_0439_043a_0438-_0028MGL_0029"></a>
+<h3 class="subsection">8.1.7 Прочие настройки (MGL)</h3>
+
+<a name="index-font"></a>
+<p><a name="font"></a>
+</p><dl>
+<dt><a name="index-font-1"></a><u>Команда MGL:</u> <b>font</b><i> 'fnt' [<code>val=6</code>]</i></dt>
+<dd><p>Задает стиль и размер шрифта (see section <a href="mathgl_ru_3.html#Text-printing">Вывод текста</a>). Вначале используется &lsquo;<samp>rC</samp>&rsquo; &ndash; прямой шрифт с выравниванием по центру. По умолчанию размер подписей оси координат в 1.4 раза больше.
+</p></dd></dl>
+
+<a name="index-rotatetext"></a>
+<p><a name="rotatetext"></a>
+</p><dl>
+<dt><a name="index-rotatetext-1"></a><u>Команда MGL:</u> <b>rotatetext</b><i> <code>val</code></i></dt>
+<dd><p>Включает/выключает вращение меток и подписей осей координат вдоль оси. Начальное значение <code>on</code>.
+</p></dd></dl>
+
+<a name="index-palette"></a>
+<p><a name="palette"></a>
+</p><dl>
+<dt><a name="index-palette-1"></a><u>Команда MGL:</u> <b>palette</b><i> 'colors'</i></dt>
+<dd><p>Задает палитру как последовательность цветов. Значение по умолчанию <code>&quot;Hbgrcmyhlnqeup&quot;</code>, что соответствует цветам: темно серый &lsquo;<samp>H</samp>&rsquo;, синий &lsquo;<samp>b</samp>&rsquo;, зеленый &lsquo;<samp>g</samp>&rsquo;, красный &lsquo;<samp>r</samp>&rsquo;, голубой &lsquo;<samp>c</samp>&rsquo;, малиновый &lsquo;<samp>m</samp>&rsquo;, желтый &lsquo;<samp>y</samp>&rsquo;, серый &lsquo;<samp>h</samp>&rsquo;, сине-зеленый  &lsquo;<samp>l</samp>&rsquo;, небесно-голубой &lsquo;<samp>n</samp>&rsquo;, оранжевый &lsquo;<samp>q</samp>&rsquo;, желто-зеленый &lsquo;<samp>e</samp>&rsquo;, сине-фиолетовый &lsquo;<samp>u</samp>&rsquo;, фиолетовый &lsquo;<samp>p</samp>&rsquo;. Палитра в основном используется в 1D графиках (see section <a href="mathgl_ru_3.html#g_t1D-plotting">1D графики</a>) для кривых с неопределенным стилем линии.
+</p></dd></dl>
+
+<a name="index-meshnum"></a>
+<p><a name="meshnum"></a>
+</p><dl>
+<dt><a name="index-meshnum-1"></a><u>Команда MGL:</u> <b>meshnum</b><i> <code>num</code></i></dt>
+<dd><p>Задает ориентировочное число линий в <a href="#mesh">mesh</a>, <a href="#fall">fall</a>, <a href="#grid">grid</a>, число стрелок (штрихов) в <a href="#vect">vect</a>, <a href="#dew">dew</a> и число ячеек в <a href="#cloud">cloud</a>. По умолчанию (=0) рисуются все линии, стрелки, ячейки.
+</p></dd></dl>
+
+<a name="index-axialdir"></a>
+<p><a name="axialdir"></a>
+</p><dl>
+<dt><a name="index-axialdir-1"></a><u>Команда MGL:</u> <b>axialdir</b><i> 'dir'</i></dt>
+<dd><p>Задает ось вращения для <a href="#axial">axial</a>, <a href="#torus">torus</a>. По умолчанию это &rsquo;z&rsquo;.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axis-settings-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-settings-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transformation-matrix-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0430_0440_0430_043ce_0442_0440_044b-_043e_0441e_0439-_043a_043e_043e_0440_0434_0438_043d_0430_0442-_0028MGL_0029"></a>
+<h2 class="section">8.2 Параметры осей координат (MGL)</h2>
+
+<p>Этот большой набор команд определяет вид осей и меток координат. Перед построением для каждой точки выполняются 3 преобразования: сначала определяется возможность рисования точки (see section <a href="#Cutting-_0028MGL_0029">Обрезание (MGL)</a>), далее применяются формулы перехода к криволинейным координатам и наконец точка отображается.
+</p>
+<a name="index-axis"></a>
+<p><a name="axis"></a>
+</p><dl>
+<dt><a name="index-axis-1"></a><u>Команда MGL:</u> <b>axis</b><i> <code>x1 y1 x2 y2</code></i></dt>
+<dt><a name="index-axis-2"></a><u>Команда MGL:</u> <b>axis</b><i> <code>x1 y1 z1 x2 y2 z2</code></i></dt>
+<dd><a name="index-ranges"></a>
+<p><a name="ranges"></a>
+</p></dd><dt><a name="index-ranges-1"></a><u>Команда MGL:</u> <b>ranges</b><i> <code>x1 x2 y1 y2 [z1=0 z2=0]</code></i></dt>
+<dd><p>Задает диапазон изменения координат. Если минимальное и максимальное значение координаты равны, то они игнорируются по данному направлению. Также устанавливает размер цветовой шкалы, аналогично команде  <code>caxis z1 z2</code>. Начальные диапазоны равны [-1, 1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axis-3"></a><u>Команда MGL:</u> <b>axis</b><i> 'fx' 'fy' ['fz'='' 'fa'='']</i></dt>
+<dd><p>Задает формулы перехода к криволинейным координатам. Каждая строка является математическим выражением, зависящим от старых координат &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; и &lsquo;<samp>a</samp>&rsquo; или &lsquo;<samp>c</samp>&rsquo; для цветовой шкалы. Например, для цилиндрических координат будет <code>axis 'x*cos(y)' 'x*sin(y)' 'z'</code>. Для удаления формул соответствующий параметр должен быть пустым <code>''</code>. Использование формул преобразования слегка замедляет программу, т.е.. <code>axis '' '' ''</code> быстрее чем <code>axis '1*x' '1*y' '1*z'</code>. Параметр <var>fa</var> задает аналогичную формулу для цветовой шкалы. See section <a href="mathgl_ru_1.html#Textual-formulas">Текстовые формулы</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axis-4"></a><u>Команда MGL:</u> <b>axis</b><i> <code>how</code></i></dt>
+<dd><p>Устанавливает одну из предопределенных систем криволинейных координат в зависимости от параметра <var>how</var>: &lsquo;<samp>0</samp>&rsquo; &ndash; декартова система (нет преобразования координат, наиболее быстрая); &lsquo;<samp>1</samp>&rsquo; &ndash; полярные координаты <em>x_n=x*cos(y),y_n=x*sin(y), z_n=z</em>; &lsquo;<samp>2</samp>&rsquo; &ndash; сферические координаты <em>x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y)</em>; &lsquo;<samp>3</samp>&rsquo; &ndash; параболические координаты <em>x_n=x*y, y_n=(x*x-y*y)/2, z_n=z</em>; &lsquo;<samp>4</samp>&rsquo; &ndash; Paraboloidal coordinates <em>x_n=(x*x-y*y)*cos(z)/2, y_n=(x*x-y*y)*sin(z)/2, z_n=x*y</em>; &lsquo;<samp>5</samp>&rsquo; &ndash; Oblate coordinates <em>x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z), z_n=sinh(x)*sin(y)</em>; &lsquo;<samp>6</samp>&rsquo; &ndash; Prolate coordinates <em>x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z), z_n=cosh(x)*cos(y)</em>; &lsquo;<samp>7</samp>&rsquo; &ndash; эллиптические координаты <em>x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z</em>; &lsquo;<samp>8</samp>&rsquo; &ndash; тороидальные координаты <em>x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)), y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y))</em>; &lsquo;<samp>9</samp>&rsquo; &ndash; бисферические координаты <em>x_n=sin(y)*cos(z)/(cosh(x)-cos(y)), y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y))</em>; &lsquo;<samp>10</samp>&rsquo; &ndash; биполярные координаты <em>x_n=sinh(x)/(cosh(x)-cos(y)), y_n=sin(y)/(cosh(x)-cos(y)), z_n=z</em>.
+</p></dd></dl>
+
+<a name="index-caxis"></a>
+<p><a name="caxis"></a>
+</p><dl>
+<dt><a name="index-caxis-1"></a><u>Команда MGL:</u> <b>caxis</b><i> <code>z1 z2</code></i></dt>
+<dd><p>Задает масштаб цветовой шкалы (c-координаты). Эти значения используются для определения цвета поверхностей и прочих 2D и 3D графиков. Начальный диапазон равен [-1, 1].
+</p></dd></dl>
+
+<a name="index-origin"></a>
+<p><a name="origin"></a>
+</p><dl>
+<dt><a name="index-origin-1"></a><u>Команда MGL:</u> <b>origin</b><i> <code>x0 y0 [z0=nan]</code></i></dt>
+<dd><p>Задает центр пересечения осей координат. Если одно из значений равно <code>nan</code>, то выбрается оптимальное положение осей координат по этому направлению.
+</p></dd></dl>
+
+<a name="index-ternary"></a>
+<p><a name="ternary"></a>
+</p><dl>
+<dt><a name="index-ternary-1"></a><u>Команда MGL:</u> <b>ternary</b><i> <code>val</code></i></dt>
+<dd><p>Задает рисование треугольных (Ternary) осей координат. Это специальный тип графика для 3 зависимых координат (компонент) <var>a</var>, <var>b</var>, <var>c</var> таких, что <var>a</var>+<var>b</var>+<var>c</var>=1. MathGL использует только 2 независимые координаты <var>a</var>=x и <var>b</var>=y поскольку их достаточно для построения всех графиков. При этом третья координата z является независимым параметром для построения линий уровня, поверхностей и т.д. См. раздел <a href="mathgl_ru_9.html#Ternary-plot-sample">Ternary plot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-xrange"></a>
+<p><a name="xrange"></a>
+</p><dl>
+<dt><a name="index-xrange-1"></a><u>Команда MGL:</u> <b>xrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-yrange"></a>
+<p><a name="yrange"></a>
+</p></dd><dt><a name="index-yrange-1"></a><u>Команда MGL:</u> <b>yrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-zrange"></a>
+<p><a name="zrange"></a>
+</p></dd><dt><a name="index-zrange-1"></a><u>Команда MGL:</u> <b>zrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-crange"></a>
+<p><a name="crange"></a>
+</p></dd><dt><a name="index-crange-1"></a><u>Команда MGL:</u> <b>crange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><p>Задает диапазон изменения x-,y-,z-,c- координат как минимальное и максимальное значение массива <var>dat</var>. Параметр <var>add</var> указывает добавлять новый диапазон к существующему или заменять его. Параметр <var>fact</var> дополнительно расширяет диапазон на величину (<var>Max</var>-<var>Min</var>)*<var>fact</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xrange-2"></a><u>Команда MGL:</u> <b>xrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-yrange-2"></a><u>Команда MGL:</u> <b>yrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-zrange-2"></a><u>Команда MGL:</u> <b>zrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-crange-2"></a><u>Команда MGL:</u> <b>crange</b><i> <code>x1 x2</code></i></dt>
+<dd><p>Задает диапазон изменения x-,y-,z-,c- координат. См. также <a href="#axis">axis</a>.
+</p></dd></dl>
+
+<a name="index-xtick"></a>
+<p><a name="xtick"></a>
+</p><dl>
+<dt><a name="index-xtick-1"></a><u>Команда MGL:</u> <b>xtick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ytick"></a>
+<p><a name="ytick"></a>
+</p></dd><dt><a name="index-ytick-1"></a><u>Команда MGL:</u> <b>ytick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ztick"></a>
+<p><a name="ztick"></a>
+</p></dd><dt><a name="index-ztick-1"></a><u>Команда MGL:</u> <b>ztick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ctick"></a>
+<p><a name="ctick"></a>
+</p></dd><dt><a name="index-ctick-1"></a><u>Команда MGL:</u> <b>ctick</b><i> <code>val</code></i></dt>
+<dd><p>Задает шаг меток осей <var>val</var>, число подметок <var>ns</var> и начальное положение меток <var>org</var>. Переменная <var>val</var> задает шаг меток (если положительна) или их число на оси (если отрицательна). Нулевое значение задает логарифмические метки. Если <var>org</var>=<code>NAN</code>, то используется значение из <a href="#origin">origin</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xtick-2"></a><u>Команда MGL:</u> <b>xtick</b><i> 'templ'</i></dt>
+<dt><a name="index-ytick-2"></a><u>Команда MGL:</u> <b>ytick</b><i> 'templ'</i></dt>
+<dt><a name="index-ztick-2"></a><u>Команда MGL:</u> <b>ztick</b><i> 'templ'</i></dt>
+<dt><a name="index-ctick-2"></a><u>Команда MGL:</u> <b>ctick</b><i> 'templ'</i></dt>
+<dd><p>Задает шаблоны для меток вдоль x-,y-,z-оси или colorbar. Шаблон может содержать и символы TeX. Если <var>xtt</var>, <var>ytt</var>, <var>ztt</var>, <var>ctt</var>=<code>''</code>, то используется шаблон по умолчанию (в простейшем случае &lsquo;<samp>%.2g</samp>&rsquo;). Установка шаблона выключает автоматическое улучшение вида меток.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xtick-3"></a><u>Команда MGL:</u> <b>xtick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dt><a name="index-ytick-3"></a><u>Команда MGL:</u> <b>ytick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dt><a name="index-ztick-3"></a><u>Команда MGL:</u> <b>ztick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dd><p>Задает явное положение <var>val</var> и подписи <var>lbl</var> для меток вдоль оси. Метки могут содержать и символы TeX.
+</p></dd></dl>
+
+<a name="index-adjust"></a>
+<p><a name="adjust"></a>
+</p><dl>
+<dt><a name="index-adjust-1"></a><u>Команда MGL:</u> <b>adjust</b><i> ['dir'='xyzc']</i></dt>
+<dd><p>Автоматически задает шаг меток осей, число подметок и начальное положение меток для осей координат <var>dir</var> в виде наиболее удобном для человека.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Transformation-matrix-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-settings-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Export-to-file-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041c_0430_0442_0440_0438c_0430-_043f_0440e_043e_0431_0440_0430_0437_043e_0432_0430_043d_0438ya-_0028MGL_0029"></a>
+<h2 class="section">8.3 Матрица преобразования (MGL)</h2>
+
+<p>Эти команды контролируют где и как график будет расположен. Существует определенный порядок вызова этих функций для лучшего вида графика. Вначале должны вызываться команды <a href="#subplot">subplot</a> или <a href="#inplot">inplot</a> для указания местоположения вывода. После них &ndash; команды вращения <a href="#rotate">rotate</a> и сжатия <a href="#aspect">aspect</a>. И наконец любые другие функции для рисования графика. Вместо вращения графика можно вызвать команды <a href="#columnplot">columnplot</a> для расположения графиков в столбец одного над другим или <a href="#stickplot">stickplot</a> для расположения в линейку.
+</p>
+<a name="index-subplot"></a>
+<p><a name="subplot"></a>
+</p><dl>
+<dt><a name="index-subplot-1"></a><u>Команда MGL:</u> <b>subplot</b><i> <code>nx ny m [dx=0 dy=0]</code></i></dt>
+<dd><p>Помещает последующий вывод в <var>m</var>-ую ячейку сетки размером <var>nx</var>*<var>ny</var> от всего рисунка. Функция сбрасывает матрицу трансформации (повороты и сжатие графика) и должна вызываться первой для создания &quot;подграфика&quot;. С эстетической точки зрения не рекомендуется вызывать эту функцию с различными (или не кратными) размерами сетки. Ячейка может быть дополнительно сдвинута относительно своего обычного положения на относительный размер <var>dx</var>, <var>dy</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-subplot-2"></a><u>Команда MGL:</u> <b>subplot</b><i> <code>nx ny m</code> 'style'</i></dt>
+<dd><p>Аналогично предыдущему, но место для осей/colorbar резервируется только если строка <var>style</var> содержит: &lsquo;<samp>L</samp>&rsquo; или &lsquo;<samp>&lt;</samp>&rsquo; &ndash; с левого края, &lsquo;<samp>R</samp>&rsquo; или &lsquo;<samp>&gt;</samp>&rsquo; &ndash; с правого края, &lsquo;<samp>A</samp>&rsquo; или &lsquo;<samp>^</samp>&rsquo; &ndash; с верхнего края, &lsquo;<samp>U</samp>&rsquo; или &lsquo;<samp>_</samp>&rsquo; &ndash; с нижнего края.
+</p></dd></dl>
+
+<a name="index-inplot"></a>
+<p><a name="inplot"></a>
+</p><dl>
+<dt><a name="index-inplot-1"></a><u>Команда MGL:</u> <b>inplot</b><i> <code>x1 x2 y1 y2 [rel=off]</code></i></dt>
+<dd><p>Помещает последующий вывод в прямоугольную область [<var>x1</var>, <var>x2</var>]*[<var>y1</var>, <var>y2</var>] (исходный размер [0,1]*[0,1]). Эта функция позволяет поместить график в произвольную область рисунка. Если параметр <var>rel</var>=<code>on</code>, то используется позиция относительно текщего <a href="#subplot">subplot</a> (или <a href="#inplot">inplot</a> с <var>rel</var>=<code>off</code>). Функция сбрасывает матрицу трансформации (повороты и сжатие графика) и должна вызываться первой для создания &quot;подграфика&quot;.
+</p></dd></dl>
+
+<a name="index-columnplot"></a>
+<p><a name="columnplot"></a>
+</p><dl>
+<dt><a name="index-columnplot-1"></a><u>Команда MGL:</u> <b>columnplot</b><i> <code>num ind [d=0]</code></i></dt>
+<dd><p>Помещает последующий вывод в <var>ind</var>-ую строку столбца из <var>num</var> строк. Положение столбца выбирается относительно последнего вызова <a href="#subplot">subplot</a> (или <a href="#inplot">inplot</a> с <var>rel</var>=<code>off</code>). Параметр <var>d</var> задает дополнительный зазор между строк. См. раздел <a href="mathgl_ru_9.html#ColumnPlot-sample">ColumnPlot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-stickplot"></a>
+<p><a name="stickplot"></a>
+</p><dl>
+<dt><a name="index-stickplot-1"></a><u>Команда MGL:</u> <b>stickplot</b><i> <code>num ind tet phi</code></i></dt>
+<dd><p>Помещает последующий вывод в <var>ind</var>-ую ячейку &quot;бруска&quot; из <var>num</var> ячеек. При этом сам брусок повернут на углы <var>tet</var>, <var>phi</var>. Положение выбирается относительно последнего вызова <a href="#subplot">subplot</a> (или <a href="#inplot">inplot</a> с <var>rel</var>=<code>off</code>). См. раздел <a href="mathgl_ru_9.html#StickPlot-sample">StickPlot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-rotate"></a>
+<p><a name="rotate"></a>
+</p><dl>
+<dt><a name="index-rotate-1"></a><u>Команда MGL:</u> <b>rotate</b><i> <code>tetz tetx [tety=0]</code></i></dt>
+<dd><p>Вращает систему координат относительно осей {x, z, y} последовательно на углы <var>tetx</var>, <var>tetz</var>, <var>tety</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-rotate-2"></a><u>Команда MGL:</u> <b>rotate</b><i> <code>tet x y z</code></i></dt>
+<dd><p>Вращает систему координат относительно вектора {<var>x</var>, <var>y</var>, <var>z</var>} на угол <var>tet</var>.
+</p></dd></dl>
+
+<a name="index-aspect"></a>
+<p><a name="aspect"></a>
+</p><dl>
+<dt><a name="index-aspect-1"></a><u>Команда MGL:</u> <b>aspect</b><i> <code>ax ay [az=1]</code></i></dt>
+<dd><p>Устанавливает соотношение размеров осей в отношении <var>ax:ay:az</var>. Для лучшего вида следует вызывать после функции <a href="#rotate">rotate</a>.
+</p></dd></dl>
+
+<a name="index-perspective"></a>
+<p><a name="perspective"></a>
+</p><dl>
+<dt><a name="index-perspective-1"></a><u>Команда MGL:</u> <b>perspective</b><i> <code>val</code></i></dt>
+<dd><p>Добавляет (включает) перспективу для графика. Параметр <em>val ~ 1/z_eff \in [0,1)</em>. По умолчанию (<code>val=0</code>) перспектива отключена.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Export-to-file-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transformation-matrix-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Primitives-drawing-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_042d_043a_0441_043f_043e_0440_0442-_0432-_0444_0430_0439_043b-_0028MGL_0029"></a>
+<h2 class="section">8.4 Экспорт в файл (MGL)</h2>
+
+<a name="index-write"></a>
+<p><a name="write"></a>
+</p><dl>
+<dt><a name="index-write-1"></a><u>Команда MGL:</u> <b>write</b><i> 'fname' [<code>solid=off</code>]</i></dt>
+<dd><p>Экспортирует текущий кадр в файл &rsquo;fname&rsquo; (тип определяется по расширению). Параметр <var>solid</var> задает вывод картинки на текущем фоне (обычно белом) или полупрозрачной. Если &rsquo;fname&rsquo;=&rdquo;, то используется имя &lsquo;<samp>frame####.jpg</samp>&rsquo;, где &lsquo;<samp>####</samp>&rsquo; &ndash; текущий номер кадра.
+</p></dd></dl>
+
+<a name="index-setsize"></a>
+<p><a name="setsize"></a>
+</p><dl>
+<dt><a name="index-setsize-1"></a><u>Команда MGL:</u> <b>setsize</b><i> <code>w h</code></i></dt>
+<dd><p>Изменяет размер картинки в пикселях. Функция должна вызываться <strong>перед</strong> любыми функциями построения потому что полностью очищает содержимое рисунка. В некоторых программах исполнение этой команды может запрещено.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Primitives-drawing-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Export-to-file-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0420_0438_0441_043e_0432_0430_043d_0438e-_043f_0440_0438_043c_0438_0442_0438_0432_043e_0432"></a>
+<h2 class="section">8.5 Рисование примитивов</h2>
+
+<p>Эти команды рисуют рисуют простые объекты типа линий, точек, сфер, капель, конусов, и т.д.
+</p>
+<a name="index-clf"></a>
+<p><a name="clf"></a>
+</p><dl>
+<dt><a name="index-clf-1"></a><u>Команда MGL:</u> <b>clf</b></dt>
+<dd><p>Очищает рисунок и заполняет его цветом по умолчанию (обычно белым). 
+</p></dd></dl>
+
+<a name="index-ball"></a>
+<p><a name="ball"></a>
+</p><dl>
+<dt><a name="index-ball-1"></a><u>Команда MGL:</u> <b>ball</b><i> <code>x y</code> ['col'='r']</i></dt>
+<dt><a name="index-ball-2"></a><u>Команда MGL:</u> <b>ball</b><i> <code>x y z</code> ['col'='r']</i></dt>
+<dd><p>Рисует точку (шарик) с координатами {<var>x</var>, <var>y</var>, <var>z</var>} и цветом <var>col</var>.
+</p></dd></dl>
+
+<a name="index-line"></a>
+<p><a name="line"></a>
+</p><dl>
+<dt><a name="index-line-1"></a><u>Команда MGL:</u> <b>line</b><i> <code>x1 y1 x2 y2</code> ['stl'='']</i></dt>
+<dt><a name="index-line-2"></a><u>Команда MGL:</u> <b>line</b><i> <code>x1 y1 z1 x2 y2 z2</code> ['stl'='']</i></dt>
+<dd><p>Рисует геодезическую линию (декартовых координатах &ndash; прямую) из точки {<var>x1</var>,<var>y1</var>,<var>z1</var>} в {<var>x2</var>,<var>y2</var>,<var>z2</var>} использую стиль линии <var>stl</var>. Кривая рисуется даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<a name="index-curve"></a>
+<p><a name="curve"></a>
+</p><dl>
+<dt><a name="index-curve-1"></a><u>Команда MGL:</u> <b>curve</b><i> <code>x1 y1 dx1 dy1 x2 y2 dx2 dy2</code> ['stl'='']</i></dt>
+<dt><a name="index-curve-2"></a><u>Команда MGL:</u> <b>curve</b><i> <code>x1 y1 z1 dx1 dy1 dz1 x2 y2 z2 dx2 dy2 dz2</code> ['stl'='']</i></dt>
+<dd><p>Рисует кривую Безье из точки {<var>x1</var>,<var>y1</var>,<var>z1</var>} в {<var>x2</var>,<var>y2</var>,<var>z2</var>} использую стиль линии <var>stl</var>. Касательные в точках пропорциональны {<var>dx1</var>,<var>dy1</var>,<var>dz1</var>}, {<var>dx2</var>,<var>dy2</var>,<var>dz2</var>}. Кривая рисуется даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<a name="index-facex"></a>
+<p><a name="facex"></a>
+</p><dl>
+<dt><a name="index-facex-1"></a><u>Команда MGL:</u> <b>facex</b><i> <code>x0 y0 z0 wy wz</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><a name="index-facey"></a>
+<p><a name="facey"></a>
+</p></dd><dt><a name="index-facey-1"></a><u>Команда MGL:</u> <b>facey</b><i> <code>x0 y0 z0 wx wz</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><a name="index-facez"></a>
+<p><a name="facez"></a>
+</p></dd><dt><a name="index-facez-1"></a><u>Команда MGL:</u> <b>facez</b><i> <code>x0 y0 z0 wx wy</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><p>Рисует закрашенный прямоугольник (грань) перпендикулярно оси [x,y,z] в точке {<var>x0</var>, <var>y0</var>, <var>z0</var>} цветом <var>stl</var> и шириной <var>wx</var>, <var>wy</var>, <var>wz</var> вдоль соответствующего направления. При этом цвет может быть один для всей грани, или различным для разных вершин если указаны все 4 цвета (полезно для градиента цвета, например &lsquo;<samp>wwrr</samp>&rsquo;). Параметры <var>d1</var>!=0, <var>d2</var>!=0 задают дополнительный сдвиг последней точки (т.е. рисуют четырехугольник). Грань будет нарисована даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<a name="index-sphere"></a>
+<p><a name="sphere"></a>
+</p><dl>
+<dt><a name="index-sphere-1"></a><u>Команда MGL:</u> <b>sphere</b><i> <code>x0 y0 r</code> ['col'='r']</i></dt>
+<dt><a name="index-sphere-2"></a><u>Команда MGL:</u> <b>sphere</b><i> <code>x0 y0 z0 r</code> ['col'='r']</i></dt>
+<dd><p>Рисует сферу радиуса <var>r</var> с центром в точке {<var>x</var>, <var>y</var>, <var>z</var>} цветом <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-drop"></a>
+<p><a name="drop"></a>
+</p><dl>
+<dt><a name="index-drop-1"></a><u>Команда MGL:</u> <b>drop</b><i> <code>x0 y0 dx dy r</code> ['col'='b' <code>sh=1 asp=1</code>]</i></dt>
+<dt><a name="index-drop-2"></a><u>Команда MGL:</u> <b>drop</b><i> <code>x0 y0 z0 dx dy dz r</code> ['col'='b' <code>sh=1 asp=1</code>]</i></dt>
+<dd><p>Рисует каплю радиуса <var>r</var> в точке {<var>x0</var>,<var>y0</var>,<var>z0</var>} вытянутую вдоль направления {<var>dx</var>,<var>dy</var>,<var>dz</var>} цветом <var>col</var>. Параметр <var>sh</var> определяет степень вытянутости: &lsquo;<samp>0</samp>&rsquo; &ndash; сфера, &lsquo;<samp>1</samp>&rsquo; &ndash; классическая капля. Параметр <var>asp</var> определяет относительную ширину капли (аналог &quot;эллиптичности&quot; для сферы). См. раздел <a href="mathgl_ru_9.html#Drops-sample">Drops &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-cone"></a>
+<p><a name="cone"></a>
+</p><dl>
+<dt><a name="index-cone-1"></a><u>Команда MGL:</u> <b>cone</b><i> <code>x1 y1 z1 x2 y2 z2 r1</code> [<code>r2=-1</code> 'stl'='' <code>edge=off</code>]</i></dt>
+<dd><p>Рисует трубу (или усеченный конус если <var>edge</var>=<code>off</code>) между точками {<var>x1</var>,<var>y1</var>,<var>z1</var>}, {<var>x2</var>,<var>y2</var>,<var>z2</var>} с радиусами на концах <var>r1</var>, <var>r2</var>. Если <var>r2</var>&lt;0, то полагается <var>r2</var>=<var>r1</var>. Цвет конуса задается строкой <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-rect"></a>
+<p><a name="rect"></a>
+</p><dl>
+<dt><a name="index-rect-1"></a><u>Команда MGL:</u> <b>rect</b><i> <code>x1 y1 x2 y2</code> ['st'='']</i></dt>
+<dt><a name="index-rect-2"></a><u>Команда MGL:</u> <b>rect</b><i> <code>x1 y1 z1 x2 y2 z2</code> ['st'='']</i></dt>
+<dd><p>Рисует закрашенный прямоугольник (грань) с противоположными вершинами в точках {<var>x1</var>,<var>y1</var>,<var>z1</var>}, {<var>x2</var>,<var>y2</var>,<var>z2</var>} цветом <var>stl</var>. При этом цвет может быть один для всей грани, или различным для разных вершин если указаны все 4 цвета (полезно для градиента цвета, например &lsquo;<samp>wwrr</samp>&rsquo;). Грань будет нарисована даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Text-printing-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Primitives-drawing-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-Colorbar-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0412_044b_0432_043e_0434-_0442e_043a_0441_0442_0430-_0028MGL_0029"></a>
+<h2 class="section">8.6 Вывод текста (MGL)</h2>
+
+<p>Команды для вывода текста позволяют вывести строку текста в произвольном месте рисунка, в произвольном направлении и вдоль произвольной кривой. Можно использовать произвольное начертание шрифта и многие ТеХ-ие команды (детальнее see section <a href="mathgl_ru_1.html#Font-styles">Стиль текста</a>). Аргумент <var>size</var> определяет размер текста: размер шрифта если положителен или относительный размер (=-<var>size</var>*<var>fontsize</var>) если отрицателен.
+</p>
+<p>Параметры шрифта задаются строкой, которая может содержать символы стиля (&lsquo;<samp>rbiwou</samp>&rsquo;) и/или выравнивания (&lsquo;<samp>LRC</samp>&rsquo;). Также строка может содержать символы цвета &lsquo;<samp>wkrgbcymhRGBCYMHW</samp>&rsquo; (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>) после символа &lsquo;<samp>:</samp>&rsquo;. Стили шрифта: &lsquo;<samp>r</samp>&rsquo; &ndash; прямой, &lsquo;<samp>i</samp>&rsquo; &ndash; курсив, &lsquo;<samp>b</samp>&rsquo; &ndash; жирный, &lsquo;<samp>w</samp>&rsquo; &ndash; контурный, &lsquo;<samp>o</samp>&rsquo; &ndash; надчеркнутый, &lsquo;<samp>u</samp>&rsquo; &ndash; подчеркнутый. По умолчанию используется прямой шрифт. Типы выравнивания: &lsquo;<samp>L</samp>&rsquo; &ndash; по левому краю (по умолчанию), &lsquo;<samp>C</samp>&rsquo; &ndash; по центру, &lsquo;<samp>R</samp>&rsquo; &ndash; по правому краю. Например, строка &lsquo;<samp>iC:b</samp>&rsquo; соответствует курсиву синего цвета с выравниванием по центру. По умолчанию используются параметры, определенные командой <a href="#font">font</a>.
+</p>
+<p>Если строка содержит символы &lsquo;<samp>aA</samp>&rsquo;, то текст выводится в абсолютных координатах (полагаются в диапазоне [0,1]). При этом используются координаты относительно рисунка (если указано &lsquo;<samp>A</samp>&rsquo;) или относительно последнего <a href="#subplot">subplot</a>/<a href="#inplot">inplot</a> (если указано &lsquo;<samp>a</samp>&rsquo;).
+</p>
+<a name="index-text"></a>
+<p><a name="text"></a>
+</p><dl>
+<dt><a name="index-text-1"></a><u>Команда MGL:</u> <b>text</b><i> <code>x y</code> 'text' ['fnt'='' <code>size=-1.4</code>]</i></dt>
+<dt><a name="index-text-2"></a><u>Команда MGL:</u> <b>text</b><i> <code>x y z</code> 'text' ['fnt'='' <code>size=-1.4</code>]</i></dt>
+<dd><p>Выводит строку <var>text</var> от точки {<var>x</var>,<var>y</var>,<var>z</var>} шрифтом <var>fnt</var> и размером <var>size</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-text-3"></a><u>Команда MGL:</u> <b>text</b><i> <code>x y dx dy</code> 'text' [<code>size=-1.4</code>]</i></dt>
+<dt><a name="index-text-4"></a><u>Команда MGL:</u> <b>text</b><i> <code>x y z dx dy dz</code> 'text' [<code>size=-1.4</code>]</i></dt>
+<dd><p>Выводит строку <var>text</var> от точки {<var>x</var>,<var>y</var>,<var>z</var>} вдоль направления {<var>dx</var>,<var>dy</var>,<var>dz</var>} шрифтом <var>fnt</var> и размером <var>size</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-text-5"></a><u>Команда MGL:</u> <b>text</b><i> ydat 'text' ['fnt'='' <code>size=-1 zval=nan</code>]</i></dt>
+<dt><a name="index-text-6"></a><u>Команда MGL:</u> <b>text</b><i> xdat ydat 'text' ['fnt'='' <code>size=-1 zval=nan</code>]</i></dt>
+<dt><a name="index-text-7"></a><u>Команда MGL:</u> <b>text</b><i> xdat ydat zdat 'text' ['fnt'='' <code>size=-1</code>]</i></dt>
+<dd><p>Выводит строку <var>text</var> вдоль кривой {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} шрифтом <var>font</var>. Строка <var>font</var> может содержать символы: &lsquo;<samp>t</samp>&rsquo; для вывода текста под кривой (по умолчанию), или &lsquo;<samp>T</samp>&rsquo; для вывода текста над кривой. Если массив <var>xdat</var> не указан, то используется массив со значениями равно распределенными вдоль оси x. Если массив <var>zdat</var> не указан, то используется <var>zdat</var>[i] = <var>zval</var>. См. раздел <a href="mathgl_ru_9.html#Text-sample">Text &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-title"></a>
+<p><a name="title"></a>
+</p><dl>
+<dt><a name="index-title-1"></a><u>Команда MGL:</u> <b>title</b><i> 'text' ['fnt'='' <code>size=-2</code>]</i></dt>
+<dd><p>Выводит строку <var>text</var> как заголовок (сверху рисунка). Может использоваться в любом месте (даже внутри <a href="#subplot">subplot</a>).
+</p></dd></dl>
+
+<a name="index-fgets"></a>
+<p><a name="fgets"></a>
+</p><dl>
+<dt><a name="index-fgets-1"></a><u>Команда MGL:</u> <b>fgets</b><i> <code>x y</code> 'fname' [<code>n=0</code> 'fnt'='' <code>size=-1.4</code>]</i></dt>
+<dt><a name="index-fgets-2"></a><u>Команда MGL:</u> <b>fgets</b><i> <code>x y z</code> 'fname' [<code>n=0</code> 'fnt'='' <code>size=-1.4</code>]</i></dt>
+<dd><p>Выводит <var>n</var>-ую строку файла <var>fname</var> от точки {<var>x</var>,<var>y</var>,<var>z</var>} шрифтом <var>fnt</var> и размером <var>size</var>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Axis-and-Colorbar-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_0438-_0438-Colorbar-_0028MGL_0029"></a>
+<h2 class="section">8.7 Оси и Colorbar (MGL)</h2>
+
+<p>Эти команды рисуют объекты для &quot;измерения&quot; типа осей координат, цветовой таблицы (colorbar), сетку по осям, обрамляющий параллелепипед и подписи по осям координат. См. также <a href="#Axis-settings-_0028MGL_0029">Параметры осей координат (MGL)</a>.
+</p>
+<a name="index-axis-5"></a>
+<dl>
+<dt><a name="index-axis-6"></a><u>Команда MGL:</u> <b>axis</b><i> ['dir'='xyz' <code>adjust=off</code>]</i></dt>
+<dd><p>Рисует оси координат и метки на них (see section <a href="#Axis-settings-_0028MGL_0029">Параметры осей координат (MGL)</a>) в направлениях, указанных строкой <var>dir</var>. Если строка содержит символ &lsquo;<samp>_</samp>&rsquo;, то подписи меток отображаться не будут. Шрифт подписей определяется командой <a href="#font">font</a>. Метки будут &quot;подогнаны&quot; если <var>adjust</var>=<code>on</code> (с помощью вызова <code>adjust 'dir'</code>). 
+</p></dd></dl>
+
+<a name="index-colorbar"></a>
+<p><a name="colorbar"></a>
+</p><dl>
+<dt><a name="index-colorbar-1"></a><u>Команда MGL:</u> <b>colorbar</b><i> ['sch'='' <code>pos=0</code>]</i></dt>
+<dd><p>Рисует полосу соответствия цвета и числовых значений (colorbar) для цветовой схемы <var>sch</var> (используется текущая для <code>sch=''</code>) с краю от графика. Параметр <var>pos</var> задает местоположение: &lsquo;<samp>0</samp>&rsquo; - справа (по умолчанию), &lsquo;<samp>1</samp>&rsquo; - слева, &lsquo;<samp>2</samp>&rsquo; - сверху, &lsquo;<samp>3</samp>&rsquo; - снизу. Если строка <var>sch</var> содержит &lsquo;<samp>&lt;&gt;^_</samp>&rsquo;, то параметр <var>pos</var> определяется как: <code>pos=0</code> для &lsquo;<samp>&gt;</samp>&rsquo; (справа), <code>pos=1</code> для &lsquo;<samp>&lt;</samp>&rsquo; (слева), <code>pos=2</code> для &lsquo;<samp>^</samp>&rsquo; (сверху), <code>pos=3</code> для &lsquo;<samp>_</samp>&rsquo; (снизу). Если строка содержит &lsquo;<samp>A</samp>&rsquo;, то используются абсолютные координаты (относительно рисунка). См. раздел <a href="mathgl_ru_9.html#Dens-sample">Dens &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-colorbar-2"></a><u>Команда MGL:</u> <b>colorbar</b><i> vdat ['sch'='' <code>pos=0</code>]</i></dt>
+<dd><p>Аналогично предыдущему, но для цветовой схемы без сглаживания с заданными значениями <var>vdat</var>. См. раздел <a href="mathgl_ru_9.html#ContD-sample">ContD &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-colorbar-3"></a><u>Команда MGL:</u> <b>colorbar</b><i> 'sch' <code>pos x y w h</code></i></dt>
+<dd><p>Аналогично первому, но в произвольном месте графика {<var>x</var>, <var>y</var>} (полагаются в диапазоне [0,1]). Параметры <var>w</var>, <var>h</var> задают относительную ширину и высоту colorbar.
+</p></dd></dl>
+
+<a name="index-grid"></a>
+<p><a name="grid"></a>
+</p><dl>
+<dt><a name="index-grid-1"></a><u>Команда MGL:</u> <b>grid</b><i> ['dir'='xyz' 'pen'='B']</i></dt>
+<dd><p>Рисует линии сетки в направлениях перпендикулярным <var>dir</var>. Шаг сетки такой же как у меток осей координат. Стиль линий задается параметром <var>pen</var> (по умолчанию &ndash; сплошная темно синяя линия &lsquo;<samp>B-</samp>&rsquo;).
+</p></dd></dl>
+
+<a name="index-box"></a>
+<p><a name="box"></a>
+</p><dl>
+<dt><a name="index-box-1"></a><u>Команда MGL:</u> <b>box</b><i> ['stl'='k' <code>ticks=on</code>]</i></dt>
+<dd><p>Рисует ограничивающий параллелепипед цветом &rsquo;stl&rsquo;. При <code>ticks=on</code> рисуются метки в соответствии с текущими настройками осей координат <a href="#axis">axis</a>.
+</p></dd></dl>
+
+<a name="index-xlabel"></a>
+<p><a name="xlabel"></a>
+</p><dl>
+<dt><a name="index-xlabel-1"></a><u>Команда MGL:</u> <b>xlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-ylabel"></a>
+<p><a name="ylabel"></a>
+</p></dd><dt><a name="index-ylabel-1"></a><u>Команда MGL:</u> <b>ylabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-zlabel"></a>
+<p><a name="zlabel"></a>
+</p></dd><dt><a name="index-zlabel-1"></a><u>Команда MGL:</u> <b>zlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-tlabel"></a>
+<p><a name="tlabel"></a>
+</p></dd><dt><a name="index-tlabel-1"></a><u>Команда MGL:</u> <b>tlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><p>Выводит подпись <var>text</var> для x-,y-,z-,t-оси (где &lsquo;<samp>t</samp>&rsquo; &ndash; &ldquo;тернарная&rdquo; ось <em>t=1-x-y</em>). Параметр <var>pos</var> задает положение подписи: при <var>pos</var>=0 &ndash; по центру оси, при <var>pos</var>&gt;0 &ndash; около максимальных значений, при <var>pos</var>&lt;0 &ndash; около минимальных значений. Параметр <var>size</var> задает размер шрифта (по умолчанию в 1.4 раза больше чем у меток). See section <a href="#Text-printing-_0028MGL_0029">Вывод текста (MGL)</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Legend-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-Colorbar-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041bege_043d_0434_0430-_0028MGL_0029"></a>
+<h2 class="section">8.8 Легенда (MGL)</h2>
+
+<p>Эти команды обеспечивают рисование легенды графика (полезно для <a href="mathgl_ru_3.html#g_t1D-plotting">1D графики</a>). Запись в легенде состоит из двух строк: одна для стиля линии и маркеров, другая с текстом описания (с включенным разбором TeX-их команд), накапливаемые во внутренние массивы с помощью команды <a href="#addlegend">addlegend</a> или опции <a href="#legend">legend</a>. Положение легенды можно задать автоматически или вручную. Параметры <var>font</var> и <var>size</var> задают стиль и размер шрифта. Параметр <var>llen</var> задает относительную ширину примера линии. Ели стиль линии пустой, то соответствующий текст печатается без отступа. Если строка <var>font</var> содержит символ &lsquo;<samp>A</samp>&rsquo;, то координаты легенды считаются относительно картинки (а не текущего subplot). См. раздел <a href="mathgl_ru_9.html#Legend-sample">Legend &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<a name="index-legend"></a>
+<p><a name="legend"></a>
+</p><dl>
+<dt><a name="index-legend-1"></a><u>Команда MGL:</u> <b>legend</b><i> [<code>pos=3</code> 'fnt'='rL' <code>size=-1 llen=0.1</code>]</i></dt>
+<dd><p>Рисует легенду из накопленных записей шрифтом <var>fnt</var> размером <var>size</var>. Параметр <var>pos</var> задает положение легенды: &lsquo;<samp>0</samp>&rsquo; &ndash; в нижнем левом углу, &lsquo;<samp>1</samp>&rsquo; &ndash; нижнем правом углу, &lsquo;<samp>2</samp>&rsquo; &ndash; верхнем левом углу, &lsquo;<samp>3</samp>&rsquo; &ndash; верхнем правом углу (по умолчанию).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-legend-2"></a><u>Команда MGL:</u> <b>legend</b><i> <code>x y</code> ['fnt'='rL' <code>size=-1 llen=0.1</code>]</i></dt>
+<dd><p>Рисует легенду из накопленных записей шрифтом <var>font</var> размером <var>size</var>. Положение легенды задается параметрами <var>x</var>, <var>y</var>, которые полагаются нормированными в диапазоне [0,1].
+</p></dd></dl>
+
+<a name="index-addlegend"></a>
+<p><a name="addlegend"></a>
+</p><dl>
+<dt><a name="index-addlegend-1"></a><u>Команда MGL:</u> <b>addlegend</b><i> 'text' 'stl'</i></dt>
+<dd><p>Добавляет описание <var>text</var> кривой со стилем <var>stl</var> (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>) во внутренний массив записей легенды. Максимальное число записей 100.
+</p></dd></dl>
+
+<a name="index-clearlegend"></a>
+<p><a name="clearlegend"></a>
+</p><dl>
+<dt><a name="index-clearlegend-1"></a><u>Команда MGL:</u> <b>clearlegend</b></dt>
+<dd><p>Очищает внутренний массив записей легенды.
+</p></dd></dl>
+
+<a name="index-legendbox"></a>
+<p><a name="legendbox"></a>
+</p><dl>
+<dt><a name="index-legendbox-1"></a><u>Команда MGL:</u> <b>legendbox</b><i> <code>val</code></i></dt>
+<dd><p>Включает/выключает рисование прямоугольника вокруг легенды. По умолчанию (=<code>on</code>) прямоугольник рисуется.
+</p></dd></dl>
+
+<a name="index-legendmarks"></a>
+<p><a name="legendmarks"></a>
+</p><dl>
+<dt><a name="index-legendmarks-1"></a><u>Команда MGL:</u> <b>legendmarks</b><i> <code>val</code></i></dt>
+<dd><p>Задает число маркеров в легенде. По умолчанию используется 1 маркер.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t1D-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029"></a>
+<h2 class="section">8.9 1D графики (MGL)</h2>
+
+<p>Эти команды строят графики для одномерных (1D) массивов. Одномерными считаются массивы, зависящие только от одного параметра (индекса) подобно кривой в параметрической форме {x(i),y(i),z(i)}, i=1...n. Есть 5 основных типов 1D графиков: линия (<a href="#plot">plot</a>), линия с заполнением (<a href="#area">area</a>), ступеньки (<a href="#step">step</a>), прямоугольники (<a href="#bars">bars</a>, <a href="#barh">barh</a>) и вертикальные линии (<a href="#stem">stem</a>). Все эти типы графиков имеют похожий интерфейс. Есть версии для рисования в пространстве и на плоскости. В последнем случае имеется возможность использования только одного массива. Стиль линии и маркеров указывается строковой переменной. Если она равна <code>''</code>. Кроме того, есть еще несколько типов графиков для одномерных массивов, имеющих другой интерфейс и вид: поверхность вращения кривой (<a href="#torus">torus</a>), диаграмма (<a href="#chart">chart</a>), размер ошибки (<a href="#error">error</a>), маркеры переменного размера (<a href="#mark">mark</a>), трубками (<a href="#tube">tube</a>) и т.д. См. раздел <a href="mathgl_ru_9.html#g_t1D-plot-sample">Пример графиков 1D данных</a>, для примеров кода и графика.
+</p>
+<p>График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>xdat.nx=ydat.nx=zdat.nx</code>. Если массив <var>xdat</var> не указан, то используется массив со значениями равно распределенными вдоль оси x. Если массив <var>zdat</var> не указан, то используется <var>zdat</var>[i] = <var>zval</var>. Строка <var>stl</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>stl=''</code>) рисуется сплошная линия с текущим цветом из палитры.
+</p>
+<a name="index-plot"></a>
+<p><a name="plot"></a>
+</p><dl>
+<dt><a name="index-plot-1"></a><u>Команда MGL:</u> <b>plot</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-plot-2"></a><u>Команда MGL:</u> <b>plot</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-plot-3"></a><u>Команда MGL:</u> <b>plot</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует ломанную линию между точками {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. См. также <a href="#area">area</a>, <a href="#step">step</a>, <a href="#stem">stem</a>, <a href="#tube">tube</a>, <a href="#mark">mark</a>, <a href="#error">error</a>, <a href="#belt">belt</a>, <a href="#tens">tens</a>. См. раздел <a href="mathgl_ru_9.html#Plot-sample">Plot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+
+<a name="index-radar"></a>
+<p><a name="radar"></a>
+</p><dl>
+<dt><a name="index-radar-1"></a><u>Команда MGL:</u> <b>radar</b><i> adat ['stl'='' <code>r=-1</code>]</i></dt>
+<dd><p>Рисует radar chart, представляющий собой ломанную с вершинами на радиальных линиях (типа ломанной в полярных координатах). График рисуется для каждой строки если один из массивов матрица. Параметр <var>r</var> задает дополнительный сдвиг данных (т.е. используется <var>a</var>+<var>r</var> вместо <var>a</var>). Если <code>r&lt;0</code>, то <code>r=max(0, -min(a)</code>. Если <var>stl</var> содержит символ &lsquo;<samp>#</samp>&rsquo;, то также рисуется &quot;сетка&quot; (радиальные линии и круг для <var>r</var>). См. также <a href="#plot">plot</a>. См. раздел <a href="mathgl_ru_9.html#Radar-sample">Radar &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-tens"></a>
+<p><a name="tens"></a>
+</p><dl>
+<dt><a name="index-tens-1"></a><u>Команда MGL:</u> <b>tens</b><i> ydat cdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tens-2"></a><u>Команда MGL:</u> <b>tens</b><i> xdat ydat cdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tens-3"></a><u>Команда MGL:</u> <b>tens</b><i> xdat ydat zdat cdat ['stl'='']</i></dt>
+<dd><p>Рисует ломанную линию по точкам {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} с цветом, определяемым массивом <var>c</var>[i] (типа графика натяжений). См. также <a href="#plot">plot</a>, <a href="#mesh">mesh</a>, <a href="#fall">fall</a>. См. раздел <a href="mathgl_ru_9.html#Tens-sample">Tens &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-area"></a>
+<p><a name="area"></a>
+</p><dl>
+<dt><a name="index-area-1"></a><u>Команда MGL:</u> <b>area</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-area-2"></a><u>Команда MGL:</u> <b>area</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-area-3"></a><u>Команда MGL:</u> <b>area</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует ломанную линию по точками {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} и закрашивает ее вниз до плоскости осей координат. Можно использовать градиентное закрашивание если число указанных цветов в <var>stl</var> равно удвоенному числу кривых для построения. Если строка содержит символ &lsquo;<samp>a</samp>&rsquo;, то линии рисуются одна поверх другой (с суммированием) &ndash; того же эффекта можно достичь вызовом <code>cumsum ydat 'y'</code> перед построением графика. См. также <a href="#plot">plot</a>, <a href="#bars">bars</a>, <a href="#stem">stem</a>, <a href="#region">region</a>. См. раздел <a href="mathgl_ru_9.html#Area-sample">Area &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-region"></a>
+<p><a name="region"></a>
+</p><dl>
+<dt><a name="index-region-1"></a><u>Команда MGL:</u> <b>region</b><i> fdat gdat ['stl'='' <code>inside=off</code>]</i></dt>
+<dt><a name="index-region-2"></a><u>Команда MGL:</u> <b>region</b><i> xdat fdat gdat ['stl'='' <code>inside=off</code>]</i></dt>
+<dd><p>Закрашивает область между 2 кривыми {<var>xdat</var>[i], <var>fdat</var>[i]} и {<var>xdat</var>[i], <var>gdat</var>[i]}. При  <code>inside=off</code> закрашивается только область y1&lt;y&lt;y2, в противном случае также будет закращена область y2&lt;y&lt;y1. Можно использовать градиентное закрашивание если число указанных цветов <var>stl</var> равно удвоенному числу кривых для построения. См. также <a href="#area">area</a>, <a href="#bars">bars</a>, <a href="#stem">stem</a>. См. раздел <a href="mathgl_ru_9.html#Region-sample">Region &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-stem"></a>
+<p><a name="stem"></a>
+</p><dl>
+<dt><a name="index-stem-1"></a><u>Команда MGL:</u> <b>stem</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-stem-2"></a><u>Команда MGL:</u> <b>stem</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-stem-3"></a><u>Команда MGL:</u> <b>stem</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует вертикальные линии из точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} до плоскости осей координат. См. также <a href="#area">area</a>, <a href="#bars">bars</a>, <a href="#plot">plot</a>, <a href="#mark">mark</a>. См. раздел <a href="mathgl_ru_9.html#Stem-sample">Stem &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-bars"></a>
+<p><a name="bars"></a>
+</p><dl>
+<dt><a name="index-bars-1"></a><u>Команда MGL:</u> <b>bars</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-bars-2"></a><u>Команда MGL:</u> <b>bars</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-bars-3"></a><u>Команда MGL:</u> <b>bars</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует вертикальные полосы (прямоугольники) из точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} до плоскости осей координат. Если строка <var>stl</var> содержит символ &lsquo;<samp>a</samp>&rsquo;, то линии рисуются одна поверх другой. Если строка содержит символ &lsquo;<samp>f</samp>&rsquo;, то рисуется график типа waterfall для определения кумулятивного эффекта последовательности положительных и отрицательных значений. Можно использовать разные цвета для положительных и отрицательных значений если число указанных цветов равно удвоенному числу кривых для построения. См. также <a href="#barh">barh</a>, <a href="#area">area</a>, <a href="#stem">stem</a>, <a href="#chart">chart</a>. См. раздел <a href="mathgl_ru_9.html#Bars-sample">Bars &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-barh"></a>
+<p><a name="barh"></a>
+</p><dl>
+<dt><a name="index-barh-1"></a><u>Команда MGL:</u> <b>barh</b><i> xdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-barh-2"></a><u>Команда MGL:</u> <b>barh</b><i> ydat xdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует горизонтальные полосы (прямоугольники) из точек {<var>xdat</var>[i], <var>ydat</var>[i]} до плоскости оси y. Если массив <var>ydat</var> не указан, то используется массив со значениями равно распределенными вдоль оси y. Если строка <var>stl</var> содержит символ &lsquo;<samp>a</samp>&rsquo;, то линии рисуются одна поверх другой. Если строка содержит символ &lsquo;<samp>f</samp>&rsquo;, то рисуется график типа waterfall для определения кумулятивного эффекта последовательности положительных и отрицательных значений. Можно использовать разные цвета для положительных и отрицательных значений если число указанных цветов равно удвоенному числу кривых для построения. См. также <a href="#bars">bars</a>. См. раздел <a href="mathgl_ru_9.html#Barh-sample">Barh &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-chart"></a>
+<p><a name="chart"></a>
+</p><dl>
+<dt><a name="index-chart-1"></a><u>Команда MGL:</u> <b>chart</b><i> adat ['col'='']</i></dt>
+<dd><p>Рисует цветные полосы (пояса) для массива данных <var>adat</var>. Число полос равно числу строк <var>adat</var> (равно <var>a.ny</var>). Цвет полос поочередно меняется из цветов указанных в <var>col</var> или в палитре (если <code>col=''</code>). Пробел в цветах соответствует прозрачному &quot;цвету&quot;, т.е. соответствующая полоса не рисуется. Ширина полосы пропорциональна значению элемента в <var>adat</var>. График строится только для массивов не содержащих отрицательных значений. Если строка <var>col</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется также черная граница полос. График выглядит лучше в 3d (после вращения системы координат) и/или в полярной системе координат (становится Pie chart). См. раздел <a href="mathgl_ru_9.html#Chart-sample">Chart &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-step"></a>
+<p><a name="step"></a>
+</p><dl>
+<dt><a name="index-step-1"></a><u>Команда MGL:</u> <b>step</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-step-2"></a><u>Команда MGL:</u> <b>step</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-step-3"></a><u>Команда MGL:</u> <b>step</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует ступеньки для точек массива {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. См. также <a href="#plot">plot</a>, <a href="#stem">stem</a>, <a href="#tile">tile</a>, <a href="#boxs">boxs</a>. См. раздел <a href="mathgl_ru_9.html#Step-sample">Step &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-torus"></a>
+<p><a name="torus"></a>
+</p><dl>
+<dt><a name="index-torus-1"></a><u>Команда MGL:</u> <b>torus</b><i> zdat ['stl'='']</i></dt>
+<dt><a name="index-torus-2"></a><u>Команда MGL:</u> <b>torus</b><i> rdat zdat ['stl'='']</i></dt>
+<dd><p>Рисует поверхность вращения кривой {<var>rdat</var>[i], <var>zdat</var>[i], <var>zdat</var>[i]} относительно оси <a href="#axialdir">axialdir</a>. Если массив <var>rdat</var> не указан, то используется массив со значениями равно распределенными вдоль оси x. См. также <a href="#plot">plot</a>, <a href="#axial">axial</a>. См. раздел <a href="mathgl_ru_9.html#Torus-sample">Torus &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-tube"></a>
+<p><a name="tube"></a>
+</p><dl>
+<dt><a name="index-tube-1"></a><u>Команда MGL:</u> <b>tube</b><i> ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-2"></a><u>Команда MGL:</u> <b>tube</b><i> ydat <code>rval</code> ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-3"></a><u>Команда MGL:</u> <b>tube</b><i> xdat ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-4"></a><u>Команда MGL:</u> <b>tube</b><i> xdat ydat <code>rval</code> ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-5"></a><u>Команда MGL:</u> <b>tube</b><i> xdat ydat zdat rdat ['stl'='']</i></dt>
+<dt><a name="index-tube-6"></a><u>Команда MGL:</u> <b>tube</b><i> xdat ydat zdat <code>rval</code> ['stl'='']</i></dt>
+<dd><p>Рисует трубу радиуса <var>rdat</var>[i] (or <var>rval</var>) вдоль кривой между точками {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. См. также <a href="#plot">plot</a>. См. раздел <a href="mathgl_ru_9.html#Tube-sample">Tube &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-mark"></a>
+<p><a name="mark"></a>
+</p><dl>
+<dt><a name="index-mark-1"></a><u>Команда MGL:</u> <b>mark</b><i> ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-mark-2"></a><u>Команда MGL:</u> <b>mark</b><i> xdat ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-mark-3"></a><u>Команда MGL:</u> <b>mark</b><i> xdat ydat zdat rdat ['stl'='']</i></dt>
+<dd><p>Рисует маркеры размером <var>rdat</var>[i]*<code>marksize</code> в точках {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Для рисования маркеров одинакового размера можно использовать функцию <code>plot</code> с невидимой линией (со стилем содержащим &lsquo;<samp> </samp>&rsquo;). См. также <a href="#plot">plot</a>, <a href="#textmark">textmark</a>, <a href="#stem">stem</a>, <a href="#error">error</a>. См. раздел <a href="mathgl_ru_9.html#Mark-sample">Mark &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-textmark"></a>
+<p><a name="textmark"></a>
+</p><dl>
+<dt><a name="index-textmark-1"></a><u>Команда MGL:</u> <b>textmark</b><i> ydat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-2"></a><u>Команда MGL:</u> <b>textmark</b><i> ydat rdat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-3"></a><u>Команда MGL:</u> <b>textmark</b><i> xdat ydat rdat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-4"></a><u>Команда MGL:</u> <b>textmark</b><i> xdat ydat zdat rdat 'txt' ['stl'='']</i></dt>
+<dd><p>Рисует текст <var>txt</var> как маркер с размером пропорциональным <var>rdat</var>[i]*<code>marksize</code> в точках {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если массив <var>rdat</var> не указан, то полагается <var>rdat</var>[i] = 1. См. также <a href="#plot">plot</a>, <a href="#mark">mark</a>, <a href="#stem">stem</a>. См. раздел <a href="mathgl_ru_9.html#TextMark-sample">TextMark &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-error"></a>
+<p><a name="error"></a>
+</p><dl>
+<dt><a name="index-error-1"></a><u>Команда MGL:</u> <b>error</b><i> ydat yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-error-2"></a><u>Команда MGL:</u> <b>error</b><i> xdat ydat yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-error-3"></a><u>Команда MGL:</u> <b>error</b><i> xdat ydat xerr yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует размер ошибки {<var>xerr</var>[i], <var>yerr</var>[i]} в точках {<var>xdat</var>[i], <var>ydat</var>[i]} на плоскости <var>z</var> = <var>zval</var>. Такой график полезен для отображения ошибки эксперимента, вычислений и пр. См. также <a href="#plot">plot</a>. См. раздел <a href="mathgl_ru_9.html#Error-sample">Error &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-boxplot"></a>
+<p><a name="boxplot"></a>
+</p><dl>
+<dt><a name="index-boxplot-1"></a><u>Команда MGL:</u> <b>boxplot</b><i> adat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-boxplot-2"></a><u>Команда MGL:</u> <b>boxplot</b><i> xdat adat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует boxplot (называемый также как box-and-whisker diagram или как &quot;ящик с усами&quot;) в точках <var>xdat</var>[i] на плоскости <var>z</var> = <var>zval</var>. Это график, компактно изображающий распределение вероятностей <var>adat</var>[i,j] (минимум, нижний квартиль (Q1), медиана (Q2), верхний квартиль (Q3) и максимум) вдоль второго (j-го) направления. См. также <a href="#plot">plot</a>, <a href="#error">error</a>, <a href="#bars">bars</a>. См. раздел <a href="mathgl_ru_9.html#BoxPlot-sample">BoxPlot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t2D-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029"></a>
+<h2 class="section">8.10 2D графики (MGL)</h2>
+
+<p>Эти команды строят графики для двумерных (2D) массивов. Двумерными считаются массивы, зависящие только от двух параметров (индексов) подобно матрице <em>f(x_i,y_j), i=1...n, j=1...m</em>. Есть несколько основных типов 2D графиков: сплошная поверхность (<a href="#surf">surf</a>), сетчатая поверхность (<a href="#mesh">mesh</a>), поверхность из ящиков (<a href="#boxs">boxs</a>), поверхность из плиток (<a href="#tile">tile</a>), водопад (<a href="#fall">fall</a>), ленточки (<a href="#belt">belt</a>), график плотности (<a href="#dens">dens</a>), линии уровня (<a href="#cont">cont</a>), линии уровня с заполнением (<a href="#contf">contf</a>) и результат их вращения (<a href="#axial">axial</a>). В функциях <a href="#cont">cont</a>, <a href="#contf">contf</a> и <a href="#axial">axial</a> значения уровней можно задавать автоматически и вручную. Можно также нарисовать сетку (<a href="#grid">grid</a>) по массиву данных для улучшения вида графика плотности или линий уровня. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданной поверхности. См. раздел <a href="mathgl_ru_9.html#g_t1D-plot-sample">Пример графиков 1D данных</a>, для примеров кода и графика.
+</p>
+<p>Строка <var>sch</var> задает цветовую схему (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>. Предыдущая цветовая схема используется по умолчанию. Младшие размерности массивов <var>xdat</var>, <var>ydat</var>, <var>zdat</var> должны быть одинаковы <code>xdat.nx=zdat.nx &amp;&amp; ydat.nx=zdat.ny</code> или <code>xdat.nx=ydat.nx=zdat.nx &amp;&amp; xdat.ny=ydat.ny=zdat.ny</code>. Массивы <var>xdat</var> и <var>ydat</var> могут быть векторами (не матрицами как <var>zdat</var>). Если массивы <var>xdat</var>, <var>ydat</var> не указаны, то используются массивы со значениями равно распределенными вдоль осей x, y. График строится для каждого z среза данных.
+</p>
+<a name="index-surf"></a>
+<p><a name="surf"></a>
+</p><dl>
+<dt><a name="index-surf-1"></a><u>Команда MGL:</u> <b>surf</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-surf-2"></a><u>Команда MGL:</u> <b>surf</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует параметрически заданную поверхность {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на поверхности рисуется сетка. См. также <a href="#mesh">mesh</a>, <a href="#dens">dens</a>, <a href="#belt">belt</a>, <a href="#tile">tile</a>, <a href="#boxs">boxs</a>, <a href="#surfc">surfc</a>, <a href="#surfa">surfa</a>. См. раздел <a href="mathgl_ru_9.html#Surf-sample">Surf &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-mesh"></a>
+<p><a name="mesh"></a>
+</p><dl>
+<dt><a name="index-mesh-1"></a><u>Команда MGL:</u> <b>mesh</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-mesh-2"></a><u>Команда MGL:</u> <b>mesh</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует сетчатую поверхность, заданную параметрически {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. См. также <a href="#surf">surf</a>, <a href="#fall">fall</a>, <a href="#meshnum">meshnum</a>, <a href="#cont">cont</a>, <a href="#tens">tens</a>. См. раздел <a href="mathgl_ru_9.html#Mesh-sample">Mesh &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-fall"></a>
+<p><a name="fall"></a>
+</p><dl>
+<dt><a name="index-fall-1"></a><u>Команда MGL:</u> <b>fall</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-fall-2"></a><u>Команда MGL:</u> <b>fall</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует водопад для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. График удобен для построения нескольких кривых, сдвинутых вглубь друг относительно друга. Если <var>sch</var> содержит &lsquo;<samp>x</samp>&rsquo;, то линии рисуются вдоль x-оси (по умолчанию линии рисуются вдоль y-оси). См. также <a href="#belt">belt</a>, <a href="#mesh">mesh</a>, <a href="#tens">tens</a>, <a href="#meshnum">meshnum</a>. См. раздел <a href="mathgl_ru_9.html#Fall-sample">Fall &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-belt"></a>
+<p><a name="belt"></a>
+</p><dl>
+<dt><a name="index-belt-1"></a><u>Команда MGL:</u> <b>belt</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-belt-2"></a><u>Команда MGL:</u> <b>belt</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует ленточки для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Если <var>sch</var> содержит &lsquo;<samp>x</samp>&rsquo;, то линии рисуются вдоль x-оси (по умолчанию линии рисуются вдоль y-оси). См. также <a href="#fall">fall</a>, <a href="#surf">surf</a>, <a href="#plot">plot</a>, <a href="#meshnum">meshnum</a>. См. раздел <a href="mathgl_ru_9.html#Belt-sample">Belt &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-boxs"></a>
+<p><a name="boxs"></a>
+</p><dl>
+<dt><a name="index-boxs-1"></a><u>Команда MGL:</u> <b>boxs</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-boxs-2"></a><u>Команда MGL:</u> <b>boxs</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует вертикальные ящики для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. См. также <a href="#surf">surf</a>, <a href="#dens">dens</a>, <a href="#tile">tile</a>, <a href="#step">step</a>. См. раздел <a href="mathgl_ru_9.html#Boxs-sample">Boxs &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-tile"></a>
+<p><a name="tile"></a>
+</p><dl>
+<dt><a name="index-tile-1"></a><u>Команда MGL:</u> <b>tile</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-tile-2"></a><u>Команда MGL:</u> <b>tile</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует плитки для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. График может использоваться как 3d обобщение <a href="#step">step</a>. См. также <a href="#surf">surf</a>, <a href="#boxs">boxs</a>, <a href="#step">step</a>, <a href="#tiles">tiles</a>. См. раздел <a href="mathgl_ru_9.html#Tile-sample">Tile &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-dens"></a>
+<p><a name="dens"></a>
+</p><dl>
+<dt><a name="index-dens-1"></a><u>Команда MGL:</u> <b>dens</b><i> zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-dens-2"></a><u>Команда MGL:</u> <b>dens</b><i> xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует график плотности для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zVal</var>. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетка. См. также <a href="#surf">surf</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>, <a href="#boxs">boxs</a>, <a href="#tile">tile</a>, <code>dens[xyz]</code>. См. раздел <a href="mathgl_ru_9.html#Dens-sample">Dens &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-cont"></a>
+<p><a name="cont"></a>
+</p><dl>
+<dt><a name="index-cont-1"></a><u>Команда MGL:</u> <b>cont</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-cont-2"></a><u>Команда MGL:</u> <b>cont</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует линии уровня для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zval</var> (или при <var>z=vdat</var>[k] если <code>zval==nan</code>). Линии уровня рисуются для <var>z</var>=<var>vdat</var>[k]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетка. Если <var>sch</var> содержит &lsquo;<samp>t</samp>&rsquo; или &lsquo;<samp>T</samp>&rsquo;, то значения <var>vdat</var>[k] будут выведены вдоль контуров над (или под) кривой. См. также <a href="#dens">dens</a>, <a href="#contf">contf</a>, <a href="#contd">contd</a>, <a href="#axial">axial</a>, <code>cont[xyz]</code>. См. раздел <a href="mathgl_ru_9.html#Cont-sample">Cont &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cont-3"></a><u>Команда MGL:</u> <b>cont</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-cont-4"></a><u>Команда MGL:</u> <b>cont</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-contf"></a>
+<p><a name="contf"></a>
+</p><dl>
+<dt><a name="index-contf-1"></a><u>Команда MGL:</u> <b>contf</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-contf-2"></a><u>Команда MGL:</u> <b>contf</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zval</var> (или при <var>z=v</var>[k] если <code>zval=nan</code>). Линии уровня рисуются для <var>z</var>=<var>vdat</var>[k]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетка. См. также <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contd">contd</a>, <code>contf[xyz]</code>. См. раздел <a href="mathgl_ru_9.html#ContF-sample">ContF &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contf-3"></a><u>Команда MGL:</u> <b>contf</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-contf-4"></a><u>Команда MGL:</u> <b>contf</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-contd"></a>
+<p><a name="contd"></a>
+</p><dl>
+<dt><a name="index-contd-1"></a><u>Команда MGL:</u> <b>contd</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-contd-2"></a><u>Команда MGL:</u> <b>contd</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zval</var> (или при <var>z=v</var>[k] если <code>zval==nan</code>) цветами заданными явно. Линии уровня рисуются для <var>z</var>=<var>vdat</var>[k]. Строка <var>sch</var> задает цвет контуров: цвет k-го контура определяется символом <code>sch[k%strlen(sch)]</code>. См. также <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>, <code>cont[xyz]</code>. См. раздел <a href="mathgl_ru_9.html#ContD-sample">ContD &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contd-3"></a><u>Команда MGL:</u> <b>contd</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-contd-4"></a><u>Команда MGL:</u> <b>contd</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-axial"></a>
+<p><a name="axial"></a>
+</p><dl>
+<dt><a name="index-axial-1"></a><u>Команда MGL:</u> <b>axial</b><i> vdat zdat ['sch'='']</i></dt>
+<dt><a name="index-axial-2"></a><u>Команда MGL:</u> <b>axial</b><i> vdat xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует поверхность вращения линии уровня для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Линии уровня рисуются для <var>zdat</var>[i,j]=<var>vdat</var>[k]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Если строка содержит символы &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; или &lsquo;<samp>z</samp>&rsquo;, то ось вращения устанавливается в указанное направление (по умолчанию вдоль оси <a href="#axialdir">axialdir</a>). См. также <a href="#cont">cont</a>, <a href="#contf">contf</a>, <a href="#torus">torus</a>, <a href="#surf3">surf3</a>. См. раздел <a href="mathgl_ru_9.html#Axial-sample">Axial &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axial-3"></a><u>Команда MGL:</u> <b>axial</b><i> zdat ['sch'='' <code>num=3</code>]</i></dt>
+<dt><a name="index-axial-4"></a><u>Команда MGL:</u> <b>axial</b><i> xdat ydat zdat ['sch'='' <code>num=3</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-grad"></a>
+<p><a name="grad"></a>
+</p><dl>
+<dt><a name="index-grad-1"></a><u>Команда MGL:</u> <b>grad</b><i> pdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-grad-2"></a><u>Команда MGL:</u> <b>grad</b><i> xdat ydat pdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-grad-3"></a><u>Команда MGL:</u> <b>grad</b><i> xdat ydat zdat pdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Рисует линии градиента скалярного поля <var>pdat</var> заданного параметрически {<var>xdat</var>[i,j], <var>ydat</var>[i,j]} или {<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]}. Число линий пропорционально <var>num</var>. Линии рисуются только с границ интервала при <var>num</var>&lt;0. См. также <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#dens3">dens3</a>, <a href="#cont3">cont3</a>, <a href="#flow">flow</a>. См. раздел <a href="mathgl_ru_9.html#Grad-sample">Grad &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+
+<a name="index-grid2"></a>
+<p><a name="grid2"></a>
+</p><dl>
+<dt><a name="index-grid2-1"></a><u>Команда MGL:</u> <b>grid2</b><i> zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-grid2-2"></a><u>Команда MGL:</u> <b>grid2</b><i> xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует плоскую сету для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zval</var>. См. также <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="g_t3D-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029"></a>
+<h2 class="section">8.11 3D графики (MGL)</h2>
+
+<p>Эти функции строят графики для трехмерных (3D) массивов. Трехмерными считаются массивы, зависящие от трех параметров (индексов) подобно матрице <em>f(x_i,y_j,z_k), i=1...n, j=1...m, k=1...l</em>. Есть 5 основных типов 3D графиков: поверхность постоянного уровня (<a href="#surf3">surf3</a>), график плотности на срезе (<var>dens3</var>), линии уровня на срезе (<a href="#cont3">cont3</a>), закрашенные контуры уровня на срезе (<a href="#contf3">contf3</a>) и график объемной прозрачности типа облака (<a href="#cloud">cloud</a>). В функциях <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a> и <a href="#surf3">surf3</a> значения уровней можно задавать автоматически и вручную. Можно также нарисовать на срезе сетку (<a href="#grid3">grid3</a>) по массиву данных для улучшения вида графика плотности или линий уровня. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива. См. раздел <a href="mathgl_ru_9.html#g_t3D-plot-sample">Пример графиков 3D данных</a>, для примеров кода и графика.
+</p>
+<p>Строка <var>sch</var> задает цветовую схему (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>). Предыдущая цветовая схема используется по умолчанию. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). Если массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> не указаны, то используются массивы со значениями равно распределенными вдоль осей x, y, z.
+</p>
+
+<a name="index-surf3"></a>
+<p><a name="surf3"></a>
+</p><dl>
+<dt><a name="index-surf3-1"></a><u>Команда MGL:</u> <b>surf3</b><i> adat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3-2"></a><u>Команда MGL:</u> <b>surf3</b><i> xdat ydat zdat adat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) при <var>adat</var>(x,y,z)=<var>val</var>. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. См. также <a href="#cloud">cloud</a>, <a href="#dens3">dens3</a>, <a href="#surf3c">surf3c</a>, <a href="#surf3a">surf3a</a>, <a href="#axial">axial</a>. См. раздел <a href="mathgl_ru_9.html#Surf3-sample">Surf3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3-3"></a><u>Команда MGL:</u> <b>surf3</b><i> adat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3-4"></a><u>Команда MGL:</u> <b>surf3</b><i> xdat ydat zdat adat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Рисует <var>num</var> поверхностей уровня равномерно распределенных в интервале цветовой шкалы (см. <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-dens3"></a>
+<p><a name="dens3"></a>
+</p><dl>
+<dt><a name="index-dens3-1"></a><u>Команда MGL:</u> <b>dens3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-dens3-2"></a><u>Команда MGL:</u> <b>dens3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Рисует график плотности для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). График рисуется на срезе <var>sval</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Если <var>stl</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на срезе рисуется сетка. См. также <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a>, <a href="#dens">dens</a>, <a href="#grid3">grid3</a>. См. раздел <a href="mathgl_ru_9.html#Dens3-sample">Dens3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-densa"></a>
+<p><a name="densa"></a>
+</p><dl>
+<dt><a name="index-densa-1"></a><u>Команда MGL:</u> <b>densa</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-densa-2"></a><u>Команда MGL:</u> <b>densa</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Рисует графики плотности на всех центральных срезах 3d данных.
+</p></dd></dl>
+
+<a name="index-cont3"></a>
+<p><a name="cont3"></a>
+</p><dl>
+<dt><a name="index-cont3-1"></a><u>Команда MGL:</u> <b>cont3</b><i> vdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-cont3-2"></a><u>Команда MGL:</u> <b>cont3</b><i> vdat xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Рисует линии уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Линии рисуются для значений из массива <var>v</var> на срезе <var>sval</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Если <var>stl</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на срезе рисуется сетка. Если <var>sch</var> содержит &lsquo;<samp>t</samp>&rsquo; или &lsquo;<samp>T</samp>&rsquo;, то значения <var>vdat</var>[k] будут выведены вдоль контуров над (или под) кривой. См. также <a href="#dens3">dens3</a>, <a href="#contf3">contf3</a>, <a href="#cont">cont</a>, <a href="#grid3">grid3</a>. См. раздел <a href="mathgl_ru_9.html#Cont3-sample">Cont3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cont3-3"></a><u>Команда MGL:</u> <b>cont3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-cont3-4"></a><u>Команда MGL:</u> <b>cont3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-conta"></a>
+<p><a name="conta"></a>
+</p><dl>
+<dt><a name="index-conta-1"></a><u>Команда MGL:</u> <b>conta</b><i> adat ['sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-conta-2"></a><u>Команда MGL:</u> <b>conta</b><i> xdat ydat zdat adat ['sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Рисует линии уровня на всех центральных срезах 3d данных.
+</p></dd></dl>
+
+<a name="index-contf3"></a>
+<p><a name="contf3"></a>
+</p><dl>
+<dt><a name="index-contf3-1"></a><u>Команда MGL:</u> <b>contf3</b><i> vdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-contf3-2"></a><u>Команда MGL:</u> <b>contf3</b><i> vdat xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Линии рисуются для значений из массива <var>v</var> на срезе <var>sval</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Если <var>stl</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на срезе рисуется сетка. См. также <a href="#dens3">dens3</a>, <a href="#cont3">cont3</a>, <a href="#contf">contf</a>, <a href="#grid3">grid3</a>. См. раздел <a href="mathgl_ru_9.html#ContF3-sample">ContF3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contf3-3"></a><u>Команда MGL:</u> <b>contf3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-contf3-4"></a><u>Команда MGL:</u> <b>contf3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-contfa"></a>
+<p><a name="contfa"></a>
+</p><dl>
+<dt><a name="index-contfa-1"></a><u>Команда MGL:</u> <b>contfa</b><i> adat ['sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-contfa-2"></a><u>Команда MGL:</u> <b>contfa</b><i> xdat ydat zdat adat ['sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня на всех центральных срезах 3d данных.
+</p></dd></dl>
+
+<a name="index-grid3"></a>
+<p><a name="grid3"></a>
+</p><dl>
+<dt><a name="index-grid3-1"></a><u>Команда MGL:</u> <b>grid3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-grid3-2"></a><u>Команда MGL:</u> <b>grid3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Рисует сетку для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). График рисуется на срезе <var>sval</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. См. также <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a>, <a href="#dens3">dens3</a>, <a href="#grid2">grid2</a>.
+</p></dd></dl>
+
+<a name="index-grida"></a>
+<p><a name="grida"></a>
+</p><dl>
+<dt><a name="index-grida-1"></a><u>Команда MGL:</u> <b>grida</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-grida-2"></a><u>Команда MGL:</u> <b>grida</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Рисует сетку на всех центральных срезах 3d данных.
+</p></dd></dl>
+
+<a name="index-cloud"></a>
+<p><a name="cloud"></a>
+</p><dl>
+<dt><a name="index-cloud-1"></a><u>Команда MGL:</u> <b>cloud</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-cloud-2"></a><u>Команда MGL:</u> <b>cloud</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Рисует облачный график для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). График состоит из кубиков с цветом и прозрачностью пропорциональной значениям <var>adat</var>. Результат похож на облако &ndash; малые значения прозрачны, а большие нет. Число кубиков зависит от <a href="#meshnum">meshnum</a>. Параметр <var>alpha</var> меняет общую прозрачность графика. См. также <a href="#surf3">surf3</a>. См. раздел <a href="mathgl_ru_9.html#Cloud-sample">Cloud &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-beam"></a>
+<p><a name="beam"></a>
+</p><dl>
+<dt><a name="index-beam-1"></a><u>Команда MGL:</u> <b>beam</b><i> tr g1 g2 adat <code>rval</code> ['sch'='' <code>flag=0 num=3</code>]</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива <var>adat</var> при постоянном значении <var>adat</var>=<var>val</var>. Это специальный тип графика для <var>adat</var> заданного в сопровождающей системе координат вдоль кривой <var>tr</var> с ортами <var>g1</var>, <var>g2</var> и с поперечным размером <var>rval</var>. Переменная <var>flag</var> &ndash; битовый флаг: &lsquo;<samp>0x1</samp>&rsquo; - рисовать в сопровождающих (не лабораторных) координатах; &lsquo;<samp>0x2</samp>&rsquo; - рисовать проекцию на плоскость <em>\rho-z</em>; &lsquo;<samp>0x4</samp>&rsquo; - рисовать нормированное в каждом сечении поле. Размеры массивов по 1-му индексу <var>tr</var>, <var>g1</var>, <var>g2</var> должны быть nx&gt;2. Размеры массивов по 2-му индексу <var>tr</var>, <var>g1</var>, <var>g2</var> и размер по 3-му индексу массива <var>adat</var> должны быть одинаковы. См. также <a href="#surf3">surf3</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Dual-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0430_0440_043d_044be-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029"></a>
+<h2 class="section">8.12 Парные графики (MGL)</h2>
+
+<p>Эти команды строят графики для двух связанных массивов. Есть несколько основных типов 3D графиков: поверхность и поверхность уровня с окраской по второму массиву (<a href="#surfc">surfc</a>, <a href="#surf3c">surf3c</a>), поверхность и поверхность уровня с прозрачностью по второму массиву (<a href="#surfa">surfa</a>, <a href="#surf3a">surf3a</a>), плитки переменного размера (<a href="#tiles">tiles</a>), диаграмма точечного отображения (<a href="#map">map</a>), STFA диаграмма (<a href="#stfa">stfa</a>). В командах <a href="#surf3a">surf3a</a> и <a href="#surf3c">surf3c</a> значения уровней можно задавать автоматически и вручную. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива.
+</p>
+<p>Строка <var>sch</var> задает цветовую схему (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>). Предыдущая цветовая схема используется по умолчанию. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). Если массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> не указаны, то используются массивы со значениями равно распределенными вдоль осей x, y, z.
+</p>
+<a name="index-surfc"></a>
+<p><a name="surfc"></a>
+</p><dl>
+<dt><a name="index-surfc-1"></a><u>Команда MGL:</u> <b>surfc</b><i> zdat cdat ['sch'='']</i></dt>
+<dt><a name="index-surfc-2"></a><u>Команда MGL:</u> <b>surfc</b><i> xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Рисует параметрически заданную поверхность {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} с цветом, заданным массивом <var>cdat</var>[i,j]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на поверхности рисуется сетка. См. также <a href="#surf">surf</a>, <a href="#surfa">surfa</a>, <a href="#surf3c">surf3c</a>. См. раздел <a href="mathgl_ru_9.html#SurfC-sample">SurfC &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-surf3c"></a>
+<p><a name="surf3c"></a>
+</p><dl>
+<dt><a name="index-surf3c-1"></a><u>Команда MGL:</u> <b>surf3c</b><i> adat cdat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3c-2"></a><u>Команда MGL:</u> <b>surf3c</b><i> xdat ydat zdat adat cdat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) при <var>a</var>(x,y,z)=<var>val</var>. Аналогично <a href="#surf3">surf3</a>, но цвет задается массивом <var>cdat</var>. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. См. также <a href="#surf3">surf3</a>, <a href="#surfc">surfc</a>, <a href="#surf3a">surf3a</a>. См. раздел <a href="mathgl_ru_9.html#Surf3C-sample">Surf3C &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3c-3"></a><u>Команда MGL:</u> <b>surf3c</b><i> adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3c-4"></a><u>Команда MGL:</u> <b>surf3c</b><i> xdat ydat zdat adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Рисует <var>num</var> поверхностей уровня равномерно распределенных в интервале цветовой шкалы (см. <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-surfa"></a>
+<p><a name="surfa"></a>
+</p><dl>
+<dt><a name="index-surfa-1"></a><u>Команда MGL:</u> <b>surfa</b><i> zdat cdat ['sch'='']</i></dt>
+<dt><a name="index-surfa-2"></a><u>Команда MGL:</u> <b>surfa</b><i> xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Рисует параметрически заданную поверхность {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} с прозрачностью, заданным массивом <var>cdat</var>[i,j]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на поверхности рисуется сетка. См. также <a href="#surf">surf</a>, <a href="#surfc">surfc</a>, <a href="#surf3a">surf3a</a>. См. раздел <a href="mathgl_ru_9.html#SurfA-sample">SurfA &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-surf3a"></a>
+<p><a name="surf3a"></a>
+</p><dl>
+<dt><a name="index-surf3a-1"></a><u>Команда MGL:</u> <b>surf3a</b><i> adat cdat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3a-2"></a><u>Команда MGL:</u> <b>surf3a</b><i> xdat ydat zdat adat cdat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) при <var>a</var>(x,y,z)=<var>val</var>. Аналогично <a href="#surf3">surf3</a>, но прозрачность задается массивом <var>cdat</var>. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. См. также <a href="#surf3">surf3</a>, <a href="#surfa">surfa</a>, <a href="#surf3c">surf3c</a>. См. раздел <a href="mathgl_ru_9.html#Surf3A-sample">Surf3A &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3a-3"></a><u>Команда MGL:</u> <b>surf3a</b><i> adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3a-4"></a><u>Команда MGL:</u> <b>surf3a</b><i> xdat ydat zdat adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Рисует <var>num</var> поверхностей уровня равномерно распределенных в интервале цветовой шкалы (см. <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-tiles"></a>
+<p><a name="tiles"></a>
+</p><dl>
+<dt><a name="index-tiles-1"></a><u>Команда MGL:</u> <b>tiles</b><i> zdat rdat ['sch'='']</i></dt>
+<dt><a name="index-tiles-2"></a><u>Команда MGL:</u> <b>tiles</b><i> xdat ydat zdat rdat ['sch'='']</i></dt>
+<dd><p>Рисует плитки для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Аналогично <a href="#tile">tile</a>, но размер плиток задается массивов <var>rdat</var>. Это создает эффект &quot;прозрачности&quot; при экспорте в файлы EPS. См. также <a href="#surfa">surfa</a>, <a href="#tile">tile</a>. См. раздел <a href="mathgl_ru_9.html#TileS-sample">TileS &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-map"></a>
+<p><a name="map"></a>
+</p><dl>
+<dt><a name="index-map-1"></a><u>Команда MGL:</u> <b>map</b><i> udat vdat ['sch'='' <code>pnts=on</code>]</i></dt>
+<dt><a name="index-map-2"></a><u>Команда MGL:</u> <b>map</b><i> xdat ydat udat vdat ['sch'='' <code>pnts=on</code>]</i></dt>
+<dd><p>Визуализирует точечное отображение для матриц {<var>udat</var>, <var>vdat</var> } параметрически зависящих от координат <var>xdat</var>, <var>ydat</var>. Исходное положение ячейки задает ее цвет. Высота пропорциональна якобиану Jacobian(udat,vdat). График является аналогом диаграммы Арнольда. Если <code>pnts=off</code>, то рисуются грани, иначе цветные точки рисуются в узлах матриц (полезно для &quot;запутанного&quot; отображения). См. раздел <a href="mathgl_ru_9.html#Map-sample">Map &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-stfa"></a>
+<p><a name="stfa"></a>
+</p><dl>
+<dt><a name="index-stfa-1"></a><u>Команда MGL:</u> <b>stfa</b><i> re im <code>dn</code> ['sch'='' <code>pnts=on</code>]</i></dt>
+<dt><a name="index-stfa-2"></a><u>Команда MGL:</u> <b>stfa</b><i> xdat ydat re im <code>dn</code> ['sch'='' <code>pnts=on</code>]</i></dt>
+<dd><p>Рисует спектрограмму комплексного массива <var>re</var>+i*<code>im</code> для Фурье размером <var>dn</var> точек. Параметр <var>dn</var> &ndash; любое четное число. Например в 1D случае, результатом будет график плотности от массива <em>res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn</em> размером {int(nx/dn), dn, ny}. Массивы <var>re</var>, <var>im</var> параметрически зависят от координат <var>xdat</var>, <var>ydat</var>. См. раздел <a href="mathgl_ru_9.html#STFA-sample">STFA &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+
+
+
+<hr size="6">
+<a name="Vector-fields-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0412e_043a_0442_043e_0440_043d_044be-_043f_043e_043bya-_0028MGL_0029"></a>
+<h2 class="section">8.13 Векторные поля (MGL)</h2>
+
+<p>Эти функции рисуют графики для 2D и 3D векторных полей. Есть несколько типов графиков: просто векторное поле (<a href="#vect">vect</a>), вектора вдоль траектории (<a href="#traj">traj</a>), векторное поле каплями (<a href="#dew">dew</a>), нити тока (<a href="#flow">flow</a>), трубки тока (<a href="#pipe">pipe</a>). Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива.
+</p>
+<p>Строка <var>sch</var> задает цветовую схему (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>). Предыдущая цветовая схема используется по умолчанию. Все размеры массивов <var>ax</var> и <var>ay</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var> и <var>ax</var> должны быть одинаковы. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>ax</var>). График строится для каждого z среза <var>ax</var>, <var>ay</var> для 2D случаев.
+</p>
+<a name="index-traj"></a>
+<p><a name="traj"></a>
+</p><dl>
+<dt><a name="index-traj-1"></a><u>Команда MGL:</u> <b>traj</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan len=0</code>]</i></dt>
+<dt><a name="index-traj-2"></a><u>Команда MGL:</u> <b>traj</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>len=0</code>]</i></dt>
+<dd><p>Рисует вектора {<var>udat</var>, <var>vdat</var>, <var>wdat</var>} вдоль кривой {<var>xdat</var>, <var>ydat</var>, <var>zdat</var>}. Длина векторов пропорциональна <em>\sqrtudat^2+vdat^2+wdat^2</em>. Строка <var>pen</var> задает цвет (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=''</code>). Параметр <var>len</var> задает фактор длины векторов (если не нуль) или выбирать длину пропорционально расстоянию между точками кривой (если <var>len</var>=0). См. также <a href="#vect">vect</a>. См. раздел <a href="mathgl_ru_9.html#Traj-sample">Traj &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-vect"></a>
+<p><a name="vect"></a>
+</p><dl>
+<dt><a name="index-vect-1"></a><u>Команда MGL:</u> <b>vect</b><i> udat vdat ['sch'='' <code>zval=nan flag=0</code>]</i></dt>
+<dt><a name="index-vect-2"></a><u>Команда MGL:</u> <b>vect</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan flag=0</code>]</i></dt>
+<dd><p>Рисует векторное поле {<var>udat</var>, <var>vdat</var>} параметрически зависящее от координат <var>xdat</var>, <var>ydat</var> на плоскости при <var>z</var>=<var>zval</var>. Длина и цвет векторов пропорциональна <em>\sqrtax^2+ay^2</em>. Число рисуемых векторов зависит от <a href="#meshnum">meshnum</a>. Параметр <var>flag</var> побитовый флаг для настройки вид векторов: <code>1</code> &ndash; двуцветный вектор, <code>2</code> &ndash; одинаковая длина векторов, <code>4</code> &ndash; рисует стрелку в точку сетки, <code>8</code> &ndash; рисует стрелку с серединой в точке сетки, <code>16</code> &ndash; рисует штрихи вместо стрелок. См. также <a href="#flow">flow</a>, <a href="#dew">dew</a>, <a href="#vectc">vectc</a>. См. раздел <a href="mathgl_ru_9.html#Vect-sample">Vect &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vect-3"></a><u>Команда MGL:</u> <b>vect</b><i> udat vdat wdat ['sch'='' <code>flag=0</code>]</i></dt>
+<dt><a name="index-vect-4"></a><u>Команда MGL:</u> <b>vect</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>flag=0</code>]</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а длина и цвет пропорциональны <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mathgl_ru_9.html#Vect-3D-sample">Vect 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-vectc"></a>
+<p><a name="vectc"></a>
+</p><dl>
+<dt><a name="index-vectc-1"></a><u>Команда MGL:</u> <b>vectc</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-vectc-2"></a><u>Команда MGL:</u> <b>vectc</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Аналогично <a href="#vect">vect</a> c <code>flag=2+16=18</code>. См. раздел <a href="mathgl_ru_9.html#VectC-sample">VectC &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vectc-3"></a><u>Команда MGL:</u> <b>vectc</b><i> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-vectc-4"></a><u>Команда MGL:</u> <b>vectc</b><i> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а длина и цвет пропорциональны <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mathgl_ru_9.html#VectC-3D-sample">VectC 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-vectl"></a>
+<p><a name="vectl"></a>
+</p><dl>
+<dt><a name="index-vectl-1"></a><u>Команда MGL:</u> <b>vectl</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-vectl-2"></a><u>Команда MGL:</u> <b>vectl</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Аналогично <a href="#vect">vect</a> c <code>flag=1+16=17</code>. См. раздел <a href="mathgl_ru_9.html#VectL-sample">VectL &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vectl-3"></a><u>Команда MGL:</u> <b>vectl</b><i> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-vectl-4"></a><u>Команда MGL:</u> <b>vectl</b><i> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а длина и цвет пропорциональны <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mathgl_ru_9.html#VectL-3D-sample">VectL 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-dew"></a>
+<p><a name="dew"></a>
+</p><dl>
+<dt><a name="index-dew-1"></a><u>Команда MGL:</u> <b>dew</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-dew-2"></a><u>Команда MGL:</u> <b>dew</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует капли для векторного поля {<var>udat</var>, <var>vdat</var>}, параметрически зависящего от координат <var>xdat</var>, <var>ydat</var> при <var>z=zval</var>. Замечу, что график требует много памяти и процессорного времени для своего создания! Цвет капель пропорционален <em>\sqrtax^2+ay^2</em>. Число капель определяется <a href="#meshnum">meshnum</a>. См. также <a href="#vect">vect</a>. См. раздел <a href="mathgl_ru_9.html#Dew-sample">Dew &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-flow"></a>
+<p><a name="flow"></a>
+</p><dl>
+<dt><a name="index-flow-1"></a><u>Команда MGL:</u> <b>flow</b><i> udat vdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-flow-2"></a><u>Команда MGL:</u> <b>flow</b><i> xdat ydat udat vdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dd><p>Рисует нити тока для векторного поля {<var>udat</var>, <var>vdat</var>}, параметрически зависящего от координат <var>xdat</var>, <var>ydat</var> на плоскости при z = <var>zval</var>. Число нитей пропорционально <var>num</var>. При <var>num</var>&gt;0 нитей могут стартовать и изнутри сетки, в противном случае только с краев. Цвет нитей пропорционален <em>\sqrtudat^2+vdat^2</em>. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника). См. также <a href="#pipe">pipe</a>, <a href="#vect">vect</a>. См. раздел <a href="mathgl_ru_9.html#Flow-sample">Flow &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-3"></a><u>Команда MGL:</u> <b>flow</b><i> udat vdat wdat ['sch'='' <code>num=3</code>]</i></dt>
+<dt><a name="index-flow-4"></a><u>Команда MGL:</u> <b>flow</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>num=3</code>]</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а цвет пропорционален <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mathgl_ru_9.html#Flow-3D-sample">Flow 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-5"></a><u>Команда MGL:</u> <b>flow</b><i> <code>x0 y0</code> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-flow-6"></a><u>Команда MGL:</u> <b>flow</b><i> <code>x0 y0</code> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует нить тока из точки {<var>x0</var>, <var>y0</var>} для векторного поля {<var>udat</var>, <var>vdat</var>}, параметрически зависящего от координат <var>xdat</var>, <var>ydat</var> на плоскости при z = <var>zval</var>. Цвет нити пропорционален <em>\sqrtudat^2+vdat^2</em>. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-7"></a><u>Команда MGL:</u> <b>flow</b><i> <code>x0 y0 z0</code> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-flow-8"></a><u>Команда MGL:</u> <b>flow</b><i> <code>x0 y0 z0</code> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а цвет пропорционален <em>\sqrtudat^2+vdat^2+wdat^2</em>.
+</p></dd></dl>
+
+
+<a name="index-pipe"></a>
+<p><a name="pipe"></a>
+</p><dl>
+<dt><a name="index-pipe-1"></a><u>Команда MGL:</u> <b>pipe</b><i> udat vdat ['sch'='' <code>r0=0.05 num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-pipe-2"></a><u>Команда MGL:</u> <b>pipe</b><i> xdat ydat udat vdat ['sch'='' <code>r0=0.05 num=5 zval=nan</code>]</i></dt>
+<dd><p>Рисует трубки тока для векторного поля {<var>udat</var>, <var>vdat</var>}, параметрически зависящего от координат <var>xdat</var>, <var>ydat</var> на плоскости при z = <var>zval</var>. Число трубок пропорционально <var>num</var>. При <var>num</var>&gt;0 нитей могут стартовать и изнутри сетки, в противном случае только с краев. Цвет и радиус трубок пропорционален <em>\sqrtudat^2+vdat^2</em>. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника). Параметр <var>r0</var> задает радиус трубок. При <var>r0</var>&lt;0 радиус трубок обратно пропорционален их амплитуде. См. также <a href="#flow">flow</a>, <a href="#vect">vect</a>. См. раздел <a href="mathgl_ru_9.html#Pipe-sample">Pipe &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-pipe-3"></a><u>Команда MGL:</u> <b>pipe</b><i> udat vdat wdat ['sch'='' <code>r0=0.05 num=3</code>]</i></dt>
+<dt><a name="index-pipe-4"></a><u>Команда MGL:</u> <b>pipe</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>r0=0.05 num=3</code>]</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а цвет пропорционален <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mathgl_ru_9.html#Pipe-3D-sample">Pipe 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Other-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-fields-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043e_0447_0438e-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029"></a>
+<h2 class="section">8.14 Прочие графики (MGL)</h2>
+
+<p>Это команды, не относящиеся к какой-то специальной категории. Сюда входят функции построения графиков по текстовым формулам (<a href="#fplot">fplot</a>, <a href="#fsurf">fsurf</a>), рисования поверхностей из треугольников (<a href="#triplot">triplot</a>), произвольных точек в пространстве (<a href="#dots">dots</a>) и реконструкции по ним поверхности (<a href="#crust">crust</a>), графики плотности и линии уровня на плоскостях, перпендикулярных осям x, y или z (dens[xyz], cont[xyz], contf[xyz]). Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива. Строка <var>sch</var> задает цветовую схему (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>). Предыдущая цветовая схема используется по умолчанию.
+</p>
+<a name="index-densx"></a>
+<a name="index-densy"></a>
+<a name="index-densz"></a>
+<p><a name="densx"></a> <a name="densy"></a> <a name="densz"></a>
+</p><dl>
+<dt><a name="index-densx-1"></a><u>Команда MGL:</u> <b>densx</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dt><a name="index-densy-1"></a><u>Команда MGL:</u> <b>densy</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dt><a name="index-densz-1"></a><u>Команда MGL:</u> <b>densz</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dd><p>Рисуют график плотности на x, y или z плоскостях. Если <var>dat</var> &ndash; 3d массив, то выполняется интерполяция к заданному срезу <var>val</var>. Функции полезны для создания проекций 3D массивов на оси координат. См. также <code>cont[xyz], contf[xyz]</code>, <a href="#dens">dens</a>. См. раздел <a href="mathgl_ru_9.html#Dens-projection-sample">Dens projection &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-contx"></a>
+<a name="index-conty"></a>
+<a name="index-contz"></a>
+<p><a name="contz"></a> <a name="conty"></a> <a name="contx"></a>
+</p><dl>
+<dt><a name="index-contx-1"></a><u>Команда MGL:</u> <b>contx</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-conty-1"></a><u>Команда MGL:</u> <b>conty</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contz-1"></a><u>Команда MGL:</u> <b>contz</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dd><p>Рисуют линии уровня на x, y или z плоскостях. Если <var>dat</var> &ndash; 3d массив, то выполняется интерполяция к заданному срезу <var>val</var>. Функции полезны для создания проекций 3D массивов на оси координат. См. также <code>dens[xyz], contf[xyz]</code>, <a href="#cont">cont</a>. См. раздел <a href="mathgl_ru_9.html#Cont-projection-sample">Cont projection &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-contfx"></a>
+<a name="index-contfy"></a>
+<a name="index-contfz"></a>
+<p><a name="contfz"></a> <a name="contfy"></a> <a name="contfx"></a>
+</p><dl>
+<dt><a name="index-contfx-1"></a><u>Команда MGL:</u> <b>contfx</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contfy-1"></a><u>Команда MGL:</u> <b>contfy</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contfz-1"></a><u>Команда MGL:</u> <b>contfz</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dd><p>Рисуют закрашенные контуры уровня на x, y или z плоскостях. Если <var>dat</var> &ndash; 3d массив, то выполняется интерполяция к заданному срезу <var>val</var>. Функции полезны для создания проекций 3D массивов на оси координат. См. также <code>dens[xyz], cont[xyz]</code>, <a href="#contf">contf</a>.
+</p></dd></dl>
+
+<a name="index-dots"></a>
+<p><a name="dots"></a>
+</p><dl>
+<dt><a name="index-dots-1"></a><u>Команда MGL:</u> <b>dots</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-dots-2"></a><u>Команда MGL:</u> <b>dots</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Рисует произвольно расположенные точки {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если определен массив <var>adat</var>[i], то он задает прозрачность точек. См. также <a href="#crust">crust</a>, <a href="#mark">mark</a>, <a href="#plot">plot</a>. См. раздел <a href="mathgl_ru_9.html#Dots-sample">Dots &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-crust"></a>
+<p><a name="crust"></a>
+</p><dl>
+<dt><a name="index-crust-1"></a><u>Команда MGL:</u> <b>crust</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Реконструирует и рисует поверхность по произвольно расположенным точкам {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если строка содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. См. также <a href="#dots">dots</a>, <a href="#triplot">triplot</a>. См. раздел <a href="mathgl_ru_9.html#Crust-sample">Crust &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-triplot"></a>
+<p><a name="triplot"></a>
+</p><dl>
+<dt><a name="index-triplot-1"></a><u>Команда MGL:</u> <b>triplot</b><i> idat xdat ydat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-triplot-2"></a><u>Команда MGL:</u> <b>triplot</b><i> idat xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-triplot-3"></a><u>Команда MGL:</u> <b>triplot</b><i> idat xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Рисует поверхность из треугольников. Вершины треугольников задаются индексами <var>idat</var> в массиве точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если строка содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Размер по 1-му индексу массива <var>idat</var> должен быть 3 или больше. Массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> должны иметь одинаковые размеры. Массив <var>cdat</var> задает цвет треугольников (если <var>idat</var>.ny=<var>cdat</var>.nx) или цвет вершин (если <var>xdat</var>.nx=<var>cdat</var>.nx). См. также <a href="#dots">dots</a>, <a href="#crust">crust</a>, <a href="#quadplot">quadplot</a>, <a href="#tricont">tricont</a>.
+</p></dd></dl>
+
+<a name="index-tricont"></a>
+<p><a name="tricont"></a>
+</p><dl>
+<dt><a name="index-tricont-1"></a><u>Команда MGL:</u> <b>tricont</b><i> vdat idat xdat ydat zdat cdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tricont-2"></a><u>Команда MGL:</u> <b>tricont</b><i> vdat idat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tricont-3"></a><u>Команда MGL:</u> <b>tricont</b><i> idat xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Рисует линии уровня поверхности из треугольников при <var>z</var> = <var>zval</var> (или для z=<var>vdat</var>[k] если <code>zval==NAN</code>). Вершины треугольников задаются индексами <var>idat</var> в массиве точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Размер по 1-му индексу массива <var>idat</var> должен быть 3 или больше. Массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> должны иметь одинаковые размеры. Массив <var>cdat</var> (если указан) задает цвет треугольников (если <var>idat</var>.ny=<var>cdat</var>.nx) или цвет вершин (если <var>xdat</var>.nx=<var>cdat</var>.nx). См. также <a href="#triplot">triplot</a>, <a href="#cont">cont</a>.
+</p></dd></dl>
+
+<a name="index-quadplot"></a>
+<p><a name="quadplot"></a>
+</p><dl>
+<dt><a name="index-quadplot-1"></a><u>Команда MGL:</u> <b>quadplot</b><i> idat xdat ydat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-quadplot-2"></a><u>Команда MGL:</u> <b>quadplot</b><i> idat xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-quadplot-3"></a><u>Команда MGL:</u> <b>quadplot</b><i> idat xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Рисует поверхность из четырехугольников. Вершины треугольников задаются индексами <var>idat</var> в массиве точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если строка содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Размер по 1-му индексу массива <var>idat</var> должен быть 4 или больше. Массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> должны иметь одинаковые размеры. Массив <var>cdat</var> задает цвет четырехугольников (если <var>idat</var>.ny=<var>cdat</var>.nx) или цвет вершин (если <var>xdat</var>.nx=<var>cdat</var>.nx). См. также <a href="#triplot">triplot</a>.
+</p></dd></dl>
+
+<a name="index-fplot"></a>
+<p><a name="fplot"></a>
+</p><dl>
+<dt><a name="index-fplot-1"></a><u>Команда MGL:</u> <b>fplot</b><i> 'y(x)' ['pen'='' <code>zval=nan num=100</code>]</i></dt>
+<dd><p>Рисует функцию &lsquo;<samp>y(x)</samp>&rsquo; в плоскости z=<var>zval</var> с координатой &lsquo;<samp>x</samp>&rsquo; в диапазоне x-оси координат. Параметр <var>num</var> задает минимальное число точек по координате для графика. См. также <a href="#plot">plot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fplot-2"></a><u>Команда MGL:</u> <b>fplot</b><i> 'x(t)' 'y(t)' 'z(t)' ['pen'='' <code>num=100</code>]</i></dt>
+<dd><p>Рисует параметрическую кривую {&lsquo;<samp>x(t)</samp>&rsquo;, &lsquo;<samp>y(t)</samp>&rsquo;, &lsquo;<samp>z(t)</samp>&rsquo;}, где координата &lsquo;<samp>t</samp>&rsquo; меняется в диапазоне [0, 1]. Параметр <var>num</var> задает минимальное число точек по координате для графика. См. также <a href="#plot">plot</a>.
+</p></dd></dl>
+
+<a name="index-fsurf"></a>
+<p><a name="fsurf"></a>
+</p><dl>
+<dt><a name="index-fsurf-1"></a><u>Команда MGL:</u> <b>fsurf</b><i> 'z(x,y)' ['sch'='' <code>num=100</code>]</i></dt>
+<dd><p>Рисует поверхность &lsquo;<samp>z(x,y)</samp>&rsquo; с координатами &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; в диапазоне x-,y-осей координат. Параметр <var>num</var> задает минимальное число точек по координатам для графика. См. также <a href="#surf">surf</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fsurf-2"></a><u>Команда MGL:</u> <b>fsurf</b><i> 'x(u,v)' 'y(u,v)' 'z(u,v)' ['sch'='' <code>num=100</code>]</i></dt>
+<dd><p>Рисует параметрическую поверхность {&lsquo;<samp>x(u,v)</samp>&rsquo;, &lsquo;<samp>y(u,v)</samp>&rsquo;, &lsquo;<samp>z(u,v)</samp>&rsquo;}, где координаты &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo; меняются в диапазоне [0, 1]. Параметр <var>num</var> задает минимальное число точек по координатам для графика. См. также <a href="#surf">surf</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Nonlinear-fitting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-create-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-_0028MGL_0029-1"></a>
+<h2 class="section">8.15 Nonlinear fitting (MGL)</h2>
+
+<p>Эти команды подбирают параметры функций для наилучшей аппроксимации данных, т.е. минимизируют сумму <em>\sum_i (f(x_i, y_i, z_i) - a_i)^2/s_i^2</em>. При этом аппроксимирующая функция &lsquo;<samp>f</samp>&rsquo; может зависеть от одного аргумента &lsquo;<samp>x</samp>&rsquo; (1D случай), от двух аргументов &lsquo;<samp>x,y</samp>&rsquo; (2D случай) или от трех аргументов &lsquo;<samp>x,y,z</samp>&rsquo; (3D случай). Функция &lsquo;<samp>f</samp>&rsquo; также может зависеть от параметров. Список параметров задается строкой <var>var</var> (например, &lsquo;<samp>abcd</samp>&rsquo;). Обычно пользователь должен предоставить начальные значения параметров в переменной <var>ini</var>. Однако, при его отсутствии используются нулевые значения.
+</p>
+<p>Команды <a href="#fit">fit</a> и <a href="#fits">fits</a> не рисуют полученные массивы. Они заполняют массив <var>fit</var> по формуле &lsquo;<samp>f</samp>&rsquo; с найденными коэффициентами. При этом, координаты &lsquo;<samp>x,y,z</samp>&rsquo; равно распределены в вдоль осей координат. Число точек в <var>fit</var> выбирается максимальным из размера массива <var>fit</var> и 100. Формулу с найденными коэффициентами можно вывести с помощью команды <a href="#putsfit">putsfit</a>. См. раздел <a href="mathgl_ru_9.html#Fitting-sample">Fitting &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<p>Размерность массивов должны быть не меньше, чем число указанных массивов <var>xdat</var>, <var>ydat</var>, <var>zdat</var>. Также подбор коэффициентов будет осуществляться только вдоль указанных направлений (например, вдоль x и y если указаны только <var>xdat</var> и <var>ydat</var>). Если массив <var>xdat</var> не указан, то используется массив со значениями равно распределенными вдоль оси x.
+</p>
+<a name="index-fits"></a>
+<p><a name="fits"></a>
+</p><dl>
+<dt><a name="index-fits-1"></a><u>Команда MGL:</u> <b>fits</b><i> adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-2"></a><u>Команда MGL:</u> <b>fits</b><i> xdat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-3"></a><u>Команда MGL:</u> <b>fits</b><i> xdat ydat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-4"></a><u>Команда MGL:</u> <b>fits</b><i> xdat ydat zdat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-, y- и z-направлений для массива заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) с весовыми коэффициентами <var>sdat</var>[i,j,k].
+</p></dd></dl>
+
+<a name="index-fit"></a>
+<p><a name="fit"></a>
+</p><dl>
+<dt><a name="index-fit-1"></a><u>Команда MGL:</u> <b>fit</b><i> adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-2"></a><u>Команда MGL:</u> <b>fit</b><i> xdat adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-3"></a><u>Команда MGL:</u> <b>fit</b><i> xdat ydat adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-4"></a><u>Команда MGL:</u> <b>fit</b><i> xdat ydat zdat adat 'func' 'var' [ini=0]</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-, y- и z-направлений для массива заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) с весовыми коэффициентами равными 1.
+</p></dd></dl>
+
+<a name="index-putsfit"></a>
+<p><a name="putsfit"></a>
+</p><dl>
+<dt><a name="index-putsfit-1"></a><u>Команда MGL:</u> <b>putsfit</b><i> <code>x y</code> ['pre'='' 'fnt'='' <code>size=-1</code>]</i></dt>
+<dd><p>Печатает последнюю подобранную формулу с найденными коэффициентами в точке {<var>x</var>, <var>y</var>}. Строка <var>pre</var> будет напечатана перед формулой. Все другие параметры такие же как в <a href="#Text-printing-_0028MGL_0029">Вывод текста (MGL)</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Data-create-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-filling-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_043e_0437_0434_0430_043d_0438e-_0434_0430_043d_043d_044b_0445-_0028MGL_0029"></a>
+<h2 class="section">8.16 Создание данных (MGL)</h2>
+
+<a name="index-new"></a>
+<p><a name="new"></a>
+</p><dl>
+<dt><a name="index-new-1"></a><u>Команда MGL:</u> <b>new</b><i> dat [<code>nx=1 ny=1 nz=1</code>]</i></dt>
+<dd><p>Создает/пересоздает массив с именем <var>dat</var> данных указанного размера и заполняет его нулями. Ничего не делает при <var>nx</var>, <var>ny</var>, <var>nz</var> отрицательных или равных нулю.
+</p></dd></dl>
+
+<a name="index-var"></a>
+<p><a name="var"></a>
+</p><dl>
+<dt><a name="index-var-1"></a><u>Команда MGL:</u> <b>var</b><i> dat <code>num v1 [v2=nan]</code></i></dt>
+<dd><p>Создает одномерный массив с именем <var>dat</var> размером <code>num</code> и заполняет его равномерно в диапазоне [<var>v1</var>, <var>v2</var>]. Если <var>v2</var>=<code>nan</code>, то используется <var>v2=v1</var>. 
+</p></dd></dl>
+
+<a name="index-list"></a>
+<p><a name="list"></a>
+</p><dl>
+<dt><a name="index-list-1"></a><u>Команда MGL:</u> <b>list</b><i> dat <code>v1 ...</code></i></dt>
+<dd><p>Создает массив с именем <var>dat</var> и заполняет его числовыми значениями аргументов <code>v1 ...</code>. Команда может создавать 1d- и 2d-массивы. Для создания 2d-массивов требуется указать разделитель строк данных &lsquo;<samp>|</samp>&rsquo;. Размер массива будет [максимальное число чисел в строке * число строк]. Например, команда <code>list 1 | 2 3</code> создаст массив [1 0; 2 3]. Отмечу, что максимальное число аргументов 1000. 
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-list-2"></a><u>Команда MGL:</u> <b>list</b><i> dat d1 ...</i></dt>
+<dd><p>Создает массив с именем <var>dat</var> и заполняет его числами из массивов <code>d1 ...</code>. Команда может создавать 2d- и 3d-массивы (если аргументы 2d массивы). Младшие размерности всех массивов в аргументах должны быть равны размерности <var>d1</var>. Отмечу, что максимальное число аргументов 1000. 
+</p></dd></dl>
+
+<a name="index-copy"></a>
+<p><a name="copy"></a>
+</p><dl>
+<dt><a name="index-copy-1"></a><u>Команда MGL:</u> <b>copy</b><i> dat dat2 ['eq'='' <code>on_axis=on</code>]</i></dt>
+<dt><a name="index-copy-2"></a><u>Команда MGL:</u> <b>copy</b><i> dat <code>val</code></i></dt>
+<dd><p>Создает массив с именем <var>dat</var> и копирует в него данные из массива <var>dat2</var>. При этом, если указан параметр <var>eq</var>, то данные будут изменены по формуле аналогично команде <a href="#fill">fill</a> (для <code>on_axis=on</code>) или <a href="#modify">modify</a> (для <code>on_axis=off</code>).
+</p></dd></dl>
+
+<a name="index-idset"></a>
+<p><a name="idset"></a>
+</p><dl>
+<dt><a name="index-idset-1"></a><u>Команда MGL:</u> <b>idset</b><i> dat 'ids'</i></dt>
+<dd><p>Устанавливает символьные обозначения для колонок данных. Строка должна содержать символы &rsquo;a&rsquo;...&rsquo;z&rsquo; один на колонку (без пробелов).
+</p></dd></dl>
+
+<a name="index-info"></a>
+<p><a name="info"></a>
+</p><dl>
+<dt><a name="index-info-1"></a><u>Команда MGL:</u> <b>info</b><i> dat [<code>detail=off</code>]</i></dt>
+<dd><p>Выводит информацию о массиве (размер, максимальное/минимальное значение, моменты и пр.). При <code>detail=off</code> показывается только краткая информация.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-info-2"></a><u>Команда MGL:</u> <b>info</b><i> 'text'</i></dt>
+<dd><p>Выводит текст <var>text</var> как информацию (предупреждение).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Data-filling-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-create-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Rearrange-data-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0417_0430_043f_043e_043b_043de_043d_0438e-_0434_0430_043d_043d_044b_0445-_0028MGL_0029"></a>
+<h2 class="section">8.17 Заполнение данных (MGL)</h2>
+<a name="index-fill"></a>
+<a name="index-modify"></a>
+
+<a name="index-fill-1"></a>
+<p><a name="fill"></a>
+</p><dl>
+<dt><a name="index-fill-2"></a><u>Команда MGL:</u> <b>fill</b><i> dat v1 v2 ['dir'='x']</i></dt>
+<dd><p>Заполняет значениями равно распределенными в диапазоне [<var>v1</var>, <var>v2</var>] в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;,&lsquo;<samp>y</samp>&rsquo;,&lsquo;<samp>z</samp>&rsquo;}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fill-3"></a><u>Команда MGL:</u> <b>fill</b><i> dat 'eq' [vdat=0 wdat=0]</i></dt>
+<dd><p>Заполняет значениями вычисленными по формуле <var>eq</var>. Формула представляет собой произвольное выражение, зависящее от переменных &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Координаты &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; полагаются меняющимися в диапазоне осей координат (в отличие от <a href="#modify">modify</a>). Переменная &lsquo;<samp>u</samp>&rsquo; &ndash; значения исходного массива, переменные &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo; &ndash; значения массивов <var>vdat</var>, <var>wdat</var>. Последние могут быть опущены.
+</p></dd></dl>
+
+<a name="index-modify-1"></a>
+<p><a name="modify"></a>
+</p><dl>
+<dt><a name="index-modify-2"></a><u>Команда MGL:</u> <b>modify</b><i> dat 'eq' [<code>dim=0</code>]</i></dt>
+<dt><a name="index-modify-3"></a><u>Команда MGL:</u> <b>modify</b><i> dat 'eq' vdat [wdat=0]</i></dt>
+<dd><p>Заполняет значениями вычисленными по формуле <var>eq</var>. Формула представляет собой произвольное выражение, зависящее от переменных &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Координаты &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; полагаются меняющимися в диапазоне [0,1] (в отличие от <a href="#fill">fill</a>). Переменная &lsquo;<samp>u</samp>&rsquo; &ndash; значения исходного массива, переменные &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo; &ndash; значения массивов <var>vdat</var>, <var>wdat</var>. Последние могут быть опущены. Если указан <var>dim</var>&gt;0, то изменяются только слои &gt;=<var>dim</var>.
+</p></dd></dl>
+
+
+<a name="index-put"></a>
+<p><a name="put"></a>
+</p><dl>
+<dt><a name="index-put-1"></a><u>MGL command:</u> <b>put</b><i> dat <code>val [i=: j=: k=:]</code></i></dt>
+<dd><p>Присваивает значения (под-)массива <var>dat</var>[<var>i</var>, <var>j</var>, <var>k</var>] = <var>val</var>. Индексы <var>i</var>, <var>j</var>, <var>k</var> равные &lsquo;<samp>:</samp>&rsquo; задают значениия <var>val</var> для всего диапазона соответствующего направления(ий). Например, <code>put dat val : 0 :</code> задает <var>dat</var>[i,0,j]=<var>val</var> для i=0...(<var>dat</var>.nx-1), j=0...(<var>dat</var>.nz-1).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-put-2"></a><u>MGL command:</u> <b>put</b><i> dat vdat [<code>i=: j=: k=:</code>]</i></dt>
+<dd><p>Копирует значения из массива <var>vdat</var> в диапазон значений массива <var>dat</var>. Индексы <var>i</var>, <var>j</var>, <var>k</var> равные &lsquo;<samp>:</samp>&rsquo; задают диапазон изменения значений в соответствующих направление(ях). Младшие размерности массива <var>vdat</var> должны быть больше выбранного диапазона массива <var>dat</var>. Например, <code>put dat v : 0 :</code> присвоит <var>dat</var>[i,0,j]=<var>vdat</var>.ny&gt;<var>dat</var>.nz ? <var>vdat</var>[i,j] : <var>vdat</var>[i], где i=0...(<var>dat</var>.nx-1), j=0...(<var>dat</var>.nz-1) и условие vdat.nx&gt;=dat.nx выполнено.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Rearrange-data-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-filling-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#File-I_002fO-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_0437_043ce_043de_043d_0438e-_0440_0430_0437_043ce_0440_043e_0432-_0434_0430_043d_043d_044b_0445-_0028MGL_0029"></a>
+<h2 class="section">8.18 Изменение размеров данных (MGL)</h2>
+
+<a name="index-rearrange"></a>
+<p><a name="rearrange"></a>
+</p><dl>
+<dt><a name="index-rearrange-1"></a><u>Команда MGL:</u> <b>rearrange</b><i> dat <code>mx [my=0 mz=0]</code></i></dt>
+<dd><p>Изменяет размерность данных без изменения самого массива данных, так что результирующий массив <var>mx</var>*<var>my</var>*<var>mz</var> &lt; nx*ny*nz. Если один из параметров <var>my</var> или <var>mz</var> ноль, то он будет выбран оптимальным образом. Например, если <var>my</var>=0, то будет <var>my</var>=nx*ny*nz/<var>mx</var> и <var>mz</var>=1.
+</p></dd></dl>
+
+<a name="index-extend"></a>
+<p><a name="extend"></a>
+</p><dl>
+<dt><a name="index-extend-1"></a><u>Команда MGL:</u> <b>extend</b><i> dat <code>n1 [n2=0]</code></i></dt>
+<dd><p>Увеличивает размер данных путем вставки (|<var>n1</var>|+1) новых срезов после (для <var>n1</var>&gt;0) или перед (для <var>n1</var>&lt;0) существующими данными. Можно добавить сразу 2 размерности для 1d массива, используя второй параметр <var>n2</var>. Данные в новые срезы будут скопированы из существующих. Например, для <var>n1</var>&gt;0 новый массив будет
+a_ij^new = a_i^old where j=0...<var>n1</var>. Соответственно, для <var>n1</var>&lt;0 новый массив будет a_ij^new = a_j^old, где i=0...|<var>n1</var>|.
+</p></dd></dl>
+
+<a name="index-transpose"></a>
+<p><a name="transpose"></a>
+</p><dl>
+<dt><a name="index-transpose-1"></a><u>Команда MGL:</u> <b>transpose</b><i> dat ['dim'='yxz']</i></dt>
+<dd><p>Транспонирует (меняет порядок размерностей) массив данных. Новый порядок размерностей задается строкой <var>dim</var>.
+</p></dd></dl>
+
+<a name="index-squeeze"></a>
+<p><a name="squeeze"></a>
+</p><dl>
+<dt><a name="index-squeeze-1"></a><u>Команда MGL:</u> <b>squeeze</b><i> dat <code>rx [ry=1 rz=1 sm=off]</code></i></dt>
+<dd><p>Уменьшает размер данных путем удаления элементов с индексами не кратными <var>rx</var>, <var>ry</var>, <var>rz</var> соответственно. Параметр <var>smooth</var> задает использовать сглаживания
+(т.е. out[i]=\sum_{j=i,i+r} a[j]/r) или нет (т.е. out[i]=a[j*r]).
+</p></dd></dl>
+
+<a name="index-crop"></a>
+<p><a name="crop"></a>
+</p><dl>
+<dt><a name="index-crop-1"></a><u>Команда MGL:</u> <b>crop</b><i> dat <code>n1 n2</code> 'dir'</i></dt>
+<dd><p>Обрезает границы данных при <var>i</var>&lt;<var>n1</var> и <var>i</var>&gt;<var>n2</var> (при <var>n2</var>&gt;0) или <var>i</var>&gt;<code>n[xyz]</code>-<var>n2</var> (при <var>n2</var>&lt;=0) вдоль направления <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-delete"></a>
+<p><a name="delete"></a>
+</p><dl>
+<dt><a name="index-delete-1"></a><u>Команда MGL:</u> <b>delete</b><i> dat</i></dt>
+<dd><p>Удаляет массив <var>dat</var> и освобождает использованную память. Может быть полезно для больших неиспользуемых массивов.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-delete-2"></a><u>Команда MGL:</u> <b>delete</b><i> dat 'dir' <code>[pos=off num=0]</code></i></dt>
+<dd><p>Удаляет <var>num</var> срезов вдоль направления <var>dir</var> с позиции <var>pos</var>.
+</p></dd></dl>
+
+<a name="index-insert"></a>
+<p><a name="insert"></a>
+</p><dl>
+<dt><a name="index-insert-1"></a><u>Команда MGL:</u> <b>insert</b><i> dat 'dir' <code>[pos=off num=0]</code></i></dt>
+<dd><p>Вставляет <var>num</var> срезов вдоль направления <var>dir</var> с позиции <var>pos</var> и заполняет их нулями.
+</p></dd></dl>
+
+<hr size="6">
+<a name="File-I_002fO-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Rearrange-data-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Make-another-data-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0427_0442e_043d_0438e_002f_0441_043e_0445_0440_0430_043de_043d_0438e-_0434_0430_043d_043d_044b_0445-_0028MGL_0029"></a>
+<h2 class="section">8.19 Чтение/сохранение данных (MGL)</h2>
+
+<a name="index-read"></a>
+<p><a name="read"></a>
+</p><dl>
+<dt><a name="index-read-1"></a><u>Команда MGL:</u> <b>read</b><i> dat 'fname'</i></dt>
+<dd><p>Читает данные из текстового файла с разделителями символом пробела/табуляции с автоматическим определением размера массива. Двойной перевод строки начинает новый срез данных (по направлению z).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-read-2"></a><u>Команда MGL:</u> <b>read</b><i> dat 'fname' <code>mx [my=1 mz=1]</code></i></dt>
+<dd><p>Читает данные из текстового файла с заданными размерами. Ничего не делается если параметры <var>mx</var>, <var>my</var> или <var>mz</var> равны нулю или отрицательны.
+</p></dd></dl>
+
+<a name="index-readmat"></a>
+<p><a name="readmat"></a>
+</p><dl>
+<dt><a name="index-readmat-1"></a><u>Команда MGL:</u> <b>readmat</b><i> dat 'fname' [<code>dim=2</code>]</i></dt>
+<dd><p>Читает данные из текстового файла с размерами, указанными в первых <var>dim</var> числах файла. При этом переменная <var>dim</var> задает размерность (1d, 2d, 3d) данных.
+</p></dd></dl>
+
+<a name="index-readall"></a>
+<p><a name="readall"></a>
+</p><dl>
+<dt><a name="index-readall-1"></a><u>Команда MGL:</u> <b>readall</b><i> dat 'templ' <code>v1 v2 [dv=1 slice=off]</code></i></dt>
+<dd><p>Объединяет данные из нескольких текстовых файлов. Имена файлов определяются вызовом функции <code>sprintf(fname,templ,val);</code>, где <var>val</var> меняется от <var>v1</var> до <var>v2</var> с шагом <var>dv</var>. Данные загружаются один за другим в один и тот же срез данных (при <var>slice</var>=<code>off</code>) или срез-за-срезом (при <var>slice</var>=<code>on</code>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-readall-2"></a><u>Команда MGL:</u> <b>readall</b><i> dat 'templ' <code>[slice=off]</code></i></dt>
+<dd><p>Объединяет данные из нескольких текстовых файлов, чьи имена удовлетворяют шаблону <var>templ</var> (например, <var>templ</var>=<code>&quot;t_*.dat&quot;</code>). Данные загружаются один за другим в один и тот же срез данных (при <var>slice</var>=<code>off</code>) или срез-за-срезом (при <var>slice</var>=<code>on</code>).
+</p></dd></dl>
+
+<a name="index-save"></a>
+<p><a name="save"></a>
+</p><dl>
+<dt><a name="index-save-1"></a><u>Команда MGL:</u> <b>save</b><i> dat 'fname'</i></dt>
+<dd><p>Сохраняет массив данных в текстовый файл.
+</p></dd></dl>
+
+<a name="index-readhdf"></a>
+<p><a name="readhdf"></a>
+</p><dl>
+<dt><a name="index-readhdf-1"></a><u>Команда MGL:</u> <b>readhdf</b><i> dat 'fname' 'dname'</i></dt>
+<dd><p>Читает массив с именем <var>dname</var> из HDF5 или HDF4 файла <var>fname</var>.
+</p></dd></dl>
+
+<a name="index-savehdf"></a>
+<p><a name="savehdf"></a>
+</p><dl>
+<dt><a name="index-savehdf-1"></a><u>Команда MGL:</u> <b>savehdf</b><i> dat 'fname' 'dname'</i></dt>
+<dd><p>Сохраняет массив под именем <var>dname</var> в HDF5 или HDF4 файл <var>fname</var>.
+</p></dd></dl>
+
+<a name="index-import"></a>
+<p><a name="import"></a>
+</p><dl>
+<dt><a name="index-import-1"></a><u>Команда MGL:</u> <b>import</b><i> dat 'fname' 'sch' [<code>v1=0 v2=1</code>]</i></dt>
+<dd><p>Читает данные из растрового файла. RGB значения пикселов преобразуются в число в диапазоне [<var>v1</var>, <var>v2</var>] используя цветовую схему <var>sch</var> (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>).
+</p></dd></dl>
+
+<a name="index-export"></a>
+<p><a name="export"></a>
+</p><dl>
+<dt><a name="index-export-1"></a><u>Команда MGL:</u> <b>export</b><i> dat 'fname' 'sch' [<code>v1=0 v2=0</code>]</i></dt>
+<dd><p>Сохраняет данные в растровый файл. Числовые значения, нормированные в диапазон [<var>v1</var>, <var>v2</var>], преобразуются в RGB значения пикселов, используя цветовую схему <var>sch</var> (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>). Если <var>v1</var>&gt;=<var>v2</var>, то значения <var>v1</var>, <var>v2</var> определяются автоматически как минимальное и максимальное значение данных.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Make-another-data-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#File-I_002fO-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Change-data-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_043e_0437_0434_0430_043d_0438e-_043d_043e_0432_044b_0445-_0434_0430_043d_043d_044b_0445-_0028MGL_0029"></a>
+<h2 class="section">8.20 Создание новых данных (MGL)</h2>
+
+<a name="index-combine"></a>
+<p><a name="combine"></a>
+</p><dl>
+<dt><a name="index-combine-1"></a><u>Команда MGL:</u> <b>combine</b><i> res adat bdat</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> прямое произведение массивов (наподобие, res[i,j] = adat[i]*bdat[j] и т.д.).
+</p></dd></dl>
+
+<a name="index-evaluate"></a>
+<p><a name="evaluate"></a>
+</p><dl>
+<dt><a name="index-evaluate-1"></a><u>Команда MGL:</u> <b>evaluate</b><i> res dat idat [<code>norm=on</code>]</i></dt>
+<dt><a name="index-evaluate-2"></a><u>Команда MGL:</u> <b>evaluate</b><i> res dat idat jdat [<code>norm=on</code>]</i></dt>
+<dt><a name="index-evaluate-3"></a><u>Команда MGL:</u> <b>evaluate</b><i> res dat idat jdat kdat [<code>norm=on</code>]</i></dt>
+<dd><p>Возвращает массив данных <var>res</var>, полученный в результате интерполяции исходного массива в точках других массивов (например, res[i,j]=dat[idat[i,j],jdat[i,j]]). Размеры массивов <var>idat</var>, <var>jdat</var>, <var>kdat</var> должны совпадать. Координаты в <var>idat</var>, <var>jdat</var>, <var>kdat</var> полагаются нормированными в диапазон [0,1] (при <var>norm</var>=<code>on</code>) или в диапазоны [0,nx], [0,ny], [0,nz] соответственно.
+</p></dd></dl>
+
+<a name="index-hist"></a>
+<p><a name="hist"></a>
+</p><dl>
+<dt><a name="index-hist-1"></a><u>Команда MGL:</u> <b>hist</b><i> res dat <code>num v1 v2 [nsub=0]</code></i></dt>
+<dt><a name="index-hist-2"></a><u>Команда MGL:</u> <b>hist</b><i> res dat wdat <code>num v1 v2 [nsub=0]</code></i></dt>
+<dd><p>Возвращает распределение (гистограмму) <var>res</var> из <var>num</var> точек от значений массива <var>dat</var> в диапазоне [<var>v1</var>, <var>v2</var>]. Массив <var>wdat</var> задает веса элементов (все веса равны 1 если <var>wdat</var> не указан). Параметр <var>nsub</var> задает число дополнительных точек интерполяции (для сглаживания получившейся гистограммы).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-hist-3"></a><u>Команда MGL:</u> <b>hist</b><i> res xdat adat</i></dt>
+<dt><a name="index-hist-4"></a><u>Команда MGL:</u> <b>hist</b><i> res xdat ydat adat</i></dt>
+<dt><a name="index-hist-5"></a><u>Команда MGL:</u> <b>hist</b><i> res xdat ydat zdat adat</i></dt>
+<dd><p>Возвращает распределение (гистограмму) <var>res</var> от значений массива <var>adat</var>, параметрически зависящего от координат {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} в диапазоне осей координат. Массив <var>adat</var> играет роль веса точки. Число точек в результате <var>res</var> &ndash; максимум из размера <var>res</var> и 100.
+</p></dd></dl>
+
+
+<a name="index-momentum"></a>
+<p><a name="momentum"></a>
+</p><dl>
+<dt><a name="index-momentum-1"></a><u>Команда MGL:</u> <b>momentum</b><i> res dat 'how' ['dir'='z']</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> момент (1d массив) данных <var>dat</var> вдоль направления <var>dir</var>. Строка <var>how</var> определяет тип момента. Момент определяется как
+res_k = \sum_ij how(x_i,y_j,z_k) dat_ij/ \sum_ij a_ij
+если <var>dir</var>=&lsquo;<samp>z</samp>&rsquo; и т.д. Координаты &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; &ndash; индексы массива в диапазоне [0,1].
+</p></dd></dl>
+
+<a name="index-sum"></a>
+<p><a name="sum"></a>
+</p><dl>
+<dt><a name="index-sum-1"></a><u>Команда MGL:</u> <b>sum</b><i> res dat 'dir'</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> результат суммирования <var>dat</var> вдоль направления(ий) <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-max"></a>
+<p><a name="max"></a>
+</p><dl>
+<dt><a name="index-max-1"></a><u>Команда MGL:</u> <b>max</b><i> res dat 'dir'</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> максимальное значение <var>dat</var> вдоль направления(ий) <var>dir</var>.
+Gets array which is the maximal data values in given direction or direction(s).
+</p></dd></dl>
+
+<a name="index-min"></a>
+<p><a name="min"></a>
+</p><dl>
+<dt><a name="index-min-1"></a><u>Команда MGL:</u> <b>min</b><i> res dat 'dir'</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> минимальное значение <var>dat</var> вдоль направления(ий) <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-resize"></a>
+<p><a name="resize"></a>
+</p><dl>
+<dt><a name="index-resize-1"></a><u>Команда MGL:</u> <b>resize</b><i> res dat <code>mx [my=1 mz=1]</code></i></dt>
+<dd><p>Возвращает массив данных <var>res</var> размером <var>mx</var>, <var>my</var>, <var>mz</var> со значениями полученными интерполяцией значений массива <var>dat</var>.
+</p></dd></dl>
+
+<a name="index-subdata"></a>
+<p><a name="subdata"></a>
+</p><dl>
+<dt><a name="index-subdata-1"></a><u>Команда MGL:</u> <b>subdata</b><i> res dat <code>xx [yy=: zz=:]</code></i></dt>
+<dd><p>Возвращает в <var>res</var> подмассив массива данных <var>dat</var> с фиксированными значениями индексов с положительными значениями. Например, <code>subdata a b : 2</code> выделяет третью строку (индексы начинаются с нуля), <code>subdata a b 4 :</code> выделяет 5-ую колонку, <code>subdata a b : : 3</code> выделяет 4-ый срез и т.д.
+</p></dd></dl>
+
+<a name="index-trace"></a>
+<p><a name="trace"></a>
+</p><dl>
+<dt><a name="index-trace-1"></a><u>Команда MGL:</u> <b>trace</b><i> res dat</i></dt>
+<dd><p>Возвращает массив <var>ref</var> диагональных элементов <var>dat</var>[i,i] (для 2D данных) или <var>dat</var>[i,i,i] (для 3D данных) где i=0...nx-1. В 1D случае возвращается сам массив данных <var>dat</var>. Размеры массива данных должен быть <var>dat</var>.ny, <var>dat</var>.nz &gt;= <var>dat</var>.nx или <var>dat</var>.ny, <var>dat</var>.nz = 1.
+</p></dd></dl>
+
+<a name="index-transform"></a>
+<p><a name="transform"></a>
+</p><dl>
+<dt><a name="index-transform-1"></a><u>Команда MGL:</u> <b>transform</b><i> dat 'type' real imag</i></dt>
+<dd><p>Выполняет интегральное преобразование комплексных данных <var>real</var>, <var>imag</var> в выбранном направлении и возвращает модуль результата в <var>res</var>. Порядок и тип преобразований задается строкой <var>type</var>: первый символ для x-направления, второй для y-направления, третий для z-направления. Возможные символы: &lsquo;<samp>f</samp>&rsquo; &ndash; прямое преобразование Фурье, &lsquo;<samp>i</samp>&rsquo; &ndash; обратное преобразование Фурье, &lsquo;<samp>s</samp>&rsquo; &ndash; синус преобразование, &lsquo;<samp>c</samp>&rsquo; &ndash; косинус преобразование, &lsquo;<samp>h</samp>&rsquo; &ndash; преобразование Ханкеля, &lsquo;<samp>n</samp>&rsquo; или &lsquo;<samp> </samp>&rsquo; &ndash; нет преобразования.
+</p></dd></dl>
+
+<a name="index-transforma"></a>
+<p><a name="transforma"></a>
+</p><dl>
+<dt><a name="index-transforma-1"></a><u>Команда MGL:</u> <b>transforma</b><i> dat 'type' ampl phase</i></dt>
+<dd><p>Аналогично предыдущему с заданными амплитудой <var>ampl</var> и фазой <var>phase</var> комплексных чисел.
+</p></dd></dl>
+
+<a name="index-stfad"></a>
+<p><a name="stfad"></a>
+</p><dl>
+<dt><a name="index-stfad-1"></a><u>Команда MGL:</u> <b>stfad</b><i> res real imag <code>dn</code> ['dir'='x']</i></dt>
+<dd><p>Выполняет оконное преобразование Фурье длиной <var>dn</var> для комплексных данных <var>real</var>, <var>imag</var> и возвращает модуль результата в <var>res</var>. Например, для <var>dir</var>=&lsquo;<samp>x</samp>&rsquo; результат будет иметь размер {int(nx/dn), dn, ny} и будет равен <em>res[i,j,k]=|\sum_d^dn exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn</em>.
+</p></dd></dl>
+
+<a name="index-pde"></a>
+<p><a name="pde"></a>
+</p><dl>
+<dt><a name="index-pde-1"></a><u>Команда MGL:</u> <b>pde</b><i> res 'ham' ini_re ini_im [<code>dz=0.1 k0=100</code>]</i></dt>
+<dd><p>Решает уравнение в частных производных du/dz = i*k0*<var>ham</var>(p,q,x,y,z,|u|)[u], где p=-i/k0*d/dx, q=-i/k0*d/dy &ndash; псевдо-дифференциальные операторы. Параметры <var>ini_re</var>, <var>ini_im</var> задают начальное распределение поля. Координаты в уравнении и в решении полагаются в диапазоне осей координат. Замечу, что внутри этот диапазон увеличивается в 3/2 раза для уменьшения отражения от границ расчетного интервала. Параметр <var>dz</var> задает шаг по эволюционной координате z. В данный момент использован упрощенный алгоритм, когда все &ldquo;смешанные&rdquo; члена (типа &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) исключаются. Например, в 2D случае это функции типа <em>ham = f(p,z) + g(x,z,u)</em>. При этом допускаются коммутирующие комбинации (типа &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy). Переменная &lsquo;<samp>u</samp>&rsquo; используется для обозначения амплитуды поля |u|. Это позволяет решать нелинейные задачи &ndash; например, нелинейное уравнение Шредингера <code>ham='p^2+q^2-u^2'</code>. Также можно указать мнимую часть для поглощения (типа <code>ham = 'p^2+i*x*(x&gt;0)'</code>), но только если зависимость от &lsquo;<samp>i</samp>&rsquo; линейная, т.е. <em>ham = hre+i*him</em>. См. раздел <a href="mathgl_ru_9.html#PDE-sample">PDE &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-ray"></a>
+<p><a name="ray"></a>
+</p><dl>
+<dt><a name="index-ray-1"></a><u>Команда MGL:</u> <b>ray</b><i> res 'ham' <code>x0 y0 z0 p0 q0 v0 [dt=0.1 tmax=10]</code></i></dt>
+<dd><p>Решает систему геометрооптических уравнений d<em>r</em>/dt = d <var>ham</var>/d<em>p</em>, d<em>p</em>/dt = -d <var>ham</var>/d<em>r</em>. Это гамильтоновы уравнения для траектории частицы в 3D случае. Гамильтониан <var>ham</var> может зависеть от координат &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, импульсов &lsquo;<samp>p</samp>&rsquo;=px, &lsquo;<samp>q</samp>&rsquo;=py, &lsquo;<samp>v</samp>&rsquo;=pz и времени &lsquo;<samp>t</samp>&rsquo;: <em>ham = H(x,y,z,p,q,v,t)</em>. Начальная точка (при <code>t=0</code>) задается переменными {<var>x0</var>, <var>y0</var>, <var>z0</var>, <var>p0</var>, <var>q0</var>, <var>v0</var>}. Параметры <var>dt</var> и <var>tmax</var> задают шаг и максимальное время интегрирования. Результат <var>res</var> &ndash; массив {x,y,z,p,q,v,t} с размером {7 * int(<var>tmax</var>/<var>dt</var>+1) }. См. раздел <a href="mathgl_ru_9.html#Beam-tracing-sample">Beam tracing &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-qo2d"></a>
+<p><a name="qo2d"></a>
+</p><dl>
+<dt><a name="index-qo2d-1"></a><u>Команда MGL:</u> <b>qo2d</b><i> res 'ham' ini_re ini_im ray [<code>r=1 k0=100</code> xx=0 yy=0]</i></dt>
+<dd><p>Решает уравнение в частных производных du/dt = i*k0*<var>ham</var>(p,q,x,y,|u|)[u] в сопровождающей системе координат, где p=-i/k0*d/dx, q=-i/k0*d/dy &ndash; псевдо-дифференциальные операторы. Параметры <var>ini_re</var>, <var>ini_im</var> задают начальное распределение поля. Параметр <var>ray</var> задает опорный луч для сопровождающей системы координат. Можно использовать луч найденный с помощью <code>ray</code>. Опорный луч должен быть достаточно гладкий, чтобы система координат была однозначной и для исключения ошибок интегрирования. Если массивы <var>xx</var> и <var>yy</var> указаны, то в них записываются декартовы координаты для каждой точки найденного решения. См. также <a href="#pde">pde</a>. См. раздел <a href="mathgl_ru_9.html#Beam-tracing-sample">Beam tracing &ndash; пример использования</a>, для примеров кода и графика. 
+</p></dd></dl>
+
+<a name="index-jacobian"></a>
+<p><a name="jacobian"></a>
+</p><dl>
+<dt><a name="index-jacobian-1"></a><u>Команда MGL:</u> <b>jacobian</b><i> res xdat ydat [zdat=0]</i></dt>
+<dd><p>Вычисляет якобиан преобразования {i,j,k} в {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>}, где координаты {i,j,k} полагаются нормированными в интервал [0,1]. Якобиан находится по формуле det||<em>dr_\alpha/d\xi_\beta</em>||, где <em>r</em>={<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} и <em>\xi</em>={i,j,k}. Все размерности всех массивов должны быть одинаковы. Данные должны быть трехмерными если указаны все 3 массива {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} или двумерными если только 2 массива {<var>xdat</var>,<var>ydat</var>}.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Change-data-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Make-another-data-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Operators-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_0437_043ce_043de_043d_0438e-_0434_0430_043d_043d_044b_0445-_0028MGL_0029"></a>
+<h2 class="section">8.21 Изменение данных (MGL)</h2>
+
+<p>Эти команды изменяют данные вдоль заданного направления(ий) типа например дифференцирования, интегрирования и т.д. Направление указывается строкой <var>dir</var>, которая может содержать символы &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; и/или &lsquo;<samp>z</samp>&rsquo;, вдоль которых изменения будут применены.
+</p>
+<a name="index-cumsum"></a>
+<p><a name="cumsum"></a>
+</p><dl>
+<dt><a name="index-cumsum-1"></a><u>Команда MGL:</u> <b>cumsum</b><i> dat 'dir'</i></dt>
+<dd><p>Суммирует с накоплением в выбранном направлении(ях).
+</p></dd></dl>
+<a name="index-integrate"></a>
+<p><a name="integrate"></a>
+</p><dl>
+<dt><a name="index-integrate-1"></a><u>Команда MGL:</u> <b>integrate</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет интегрирование (подобно суммированию с накоплением) в выбранном направлении(ях).
+</p></dd></dl>
+<a name="index-diff"></a>
+<p><a name="diff"></a>
+</p><dl>
+<dt><a name="index-diff-1"></a><u>Команда MGL:</u> <b>diff</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет дифференцирование в выбранном направлении(ях).
+</p></dd></dl>
+<dl>
+<dt><a name="index-diff-2"></a><u>Команда MGL:</u> <b>diff</b><i> dat xdat ydat [zdat=0]</i></dt>
+<dd><p>Выполняет дифференцирование данных <var>dat</var>, параметрически зависящих от координат, в направлении <var>xdat</var> с <var>ydat</var>, <var>zdat</var>=constant. Параметр <var>zdat</var> может быть опущен, что соответствует 2D случаю. Используются следующие формулы (2D случай): <em>da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j)</em>, где <em>a_i=da/di, a_j=da/dj</em> обозначает дифференцирование вдоль 1-ой и 2-ой размерности. Похожие формулы используются и в 3D случае. Порядок аргументов можно менять &ndash; например, если данные a(i,j) зависят от координат {x(i,j), y(i,j)}, то обычная производная по &lsquo;<samp>x</samp>&rsquo; будет равна <code>diff a x y</code>, а обычная производная по &lsquo;<samp>y</samp>&rsquo; будет равна <code>diff a y x</code>.
+</p></dd></dl>
+
+<a name="index-diff2"></a>
+<p><a name="diff2"></a>
+</p><dl>
+<dt><a name="index-diff2-1"></a><u>Команда MGL:</u> <b>diff2</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет двойное дифференцирование (как в операторе Лапласа) в выбранном направлении(ях).
+</p></dd></dl>
+
+<a name="index-sinfft"></a>
+<p><a name="sinfft"></a>
+</p><dl>
+<dt><a name="index-sinfft-1"></a><u>Команда MGL:</u> <b>sinfft</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет синус преобразование в выбранном направлении(ях). Синус преобразование есть <em>\sum a_i \sin(k i)</em>.
+</p></dd></dl>
+<a name="index-cosfft"></a>
+<p><a name="cosfft"></a>
+</p><dl>
+<dt><a name="index-cosfft-1"></a><u>Команда MGL:</u> <b>cosfft</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет косинус преобразование в выбранном направлении(ях). Синус преобразование есть <em>\sum a_i \cos(k i)</em>.
+</p></dd></dl>
+<a name="index-hankel"></a>
+<p><a name="hankel"></a>
+</p><dl>
+<dt><a name="index-hankel-1"></a><u>Команда MGL:</u> <b>hankel</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет преобразование Ханкеля в выбранном направлении(ях). Преобразование Ханкеля есть <em>\sum a_i J_0(k i)</em>.
+</p></dd></dl>
+
+
+<a name="index-swap"></a>
+<p><a name="swap"></a>
+</p><dl>
+<dt><a name="index-swap-1"></a><u>Команда MGL:</u> <b>swap</b><i> dat 'dir'</i></dt>
+<dd><p>Меняет местами левую и правую части данных в выбранном направлении(ях). Полезно для отображения результата FFT.
+</p></dd></dl>
+<a name="index-roll"></a>
+<p><a name="roll"></a>
+</p><dl>
+<dt><a name="index-roll-1"></a><u>Команда MGL:</u> <b>roll</b><i> dat 'dir' num</i></dt>
+<dd><p>Сдвигает данные на <var>num</var> ячеек в выбранном направлении(ях). Соответствует замене индекса на <var>i</var>-&gt;(<var>i</var>+<var>num</var>)%<var>n</var>.
+</p></dd></dl>
+
+<a name="index-mirror"></a>
+<p><a name="mirror"></a>
+</p><dl>
+<dt><a name="index-mirror-1"></a><u>Команда MGL:</u> <b>mirror</b><i> dat 'dir'</i></dt>
+<dd><p>Отражает данные в выбранном направлении(ях). Соответствует замене индекса на <var>i</var>-&gt;<var>n</var>-<var>i</var>.
+</p></dd></dl>
+
+<a name="index-sew"></a>
+<p><a name="sew"></a>
+</p><dl>
+<dt><a name="index-sew-1"></a><u>Команда MGL:</u> <b>sew</b><i> dat ['dir'='xyz' <code>da=2*pi</code>]</i></dt>
+<dd><p>Удаляет скачки данных (например, скачки фазы после обратных тригонометрических функций) с периодом <var>da</var> в выбранном направлении(ях).
+</p></dd></dl>
+
+<a name="index-smooth"></a>
+<p><a name="smooth"></a>
+</p><dl>
+<dt><a name="index-smooth-1"></a><u>Команда MGL:</u> <b>smooth</b><i> data <code>type</code> ['dir'='xyz']</i></dt>
+<dd><p>Сглаживает данные в выбранном направлении(ях) методом <var>type</var>. Сейчас поддерживаются 4 метода: <code>0</code> ничего не делает, <code>1</code> линейное усреднение по 3 точкам, <code>2</code> линейное усреднение по 5 точкам, <code>3</code> квадратичное усреднение по 5 точкам.
+</p></dd></dl>
+
+<a name="index-envelop"></a>
+<p><a name="envelop"></a>
+</p><dl>
+<dt><a name="index-envelop-1"></a><u>Команда MGL:</u> <b>envelop</b><i> dat ['dir'='x']</i></dt>
+<dd><p>Находит огибающую данных в выбранном направлении. Только одно направление может быть выбрано за раз.
+</p></dd></dl>
+
+<a name="index-normsl"></a>
+<p><a name="normsl"></a>
+</p><dl>
+<dt><a name="index-normsl-1"></a><u>Команда MGL:</u> <b>normsl</b><i> dat <code>v1 v2</code> ['dir'='z' <code>keep=on sym=off</code>]</i></dt>
+<dd><p>Нормирует данные срез-за-срезом в выбранном направлении <var>dir</var> в интервал [<var>v1</var>,<var>v2</var>]. Если <var>sym</var>=<code>on</code>, то используется симметричный интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Если <var>keep</var>=<code>on</code>, то максимальное значение k-го среза ограничено величиной
+<em>\sqrt\sum a_ij(k)/\sum a_ij(0)</em>.
+</p></dd></dl>
+
+<a name="index-norm"></a>
+<p><a name="norm"></a>
+</p><dl>
+<dt><a name="index-norm-1"></a><u>Команда MGL:</u> <b>norm</b><i> dat <code>v1 v2 [sym=off dim=0]</code></i></dt>
+<dd><p>Нормирует данные в интервал [<var>v1</var>,<var>v2</var>]. Если <var>sym</var>=<code>on</code>, то используется симметричный интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Изменения применяются только к срезам &gt;=<var>dim</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Operators-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Change-data-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Program-flow-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_043fe_0440_0430_0442_043e_0440_044b-_0028MGL_0029"></a>
+<h2 class="section">8.22 Операторы (MGL)</h2>
+
+<a name="index-multo"></a>
+<p><a name="multo"></a>
+</p><dl>
+<dt><a name="index-multo-1"></a><u>Команда MGL:</u> <b>multo</b><i> dat dat2</i></dt>
+<dd><p>Поэлементно умножает массив <var>dat</var> на <var>dat2</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-multo-2"></a><u>Команда MGL:</u> <b>multo</b><i> dat <code>val</code></i></dt>
+<dd><p>Умножает каждый элемент на число.
+</p></dd></dl>
+
+<a name="index-divto"></a>
+<p><a name="divto"></a>
+</p><dl>
+<dt><a name="index-divto-1"></a><u>Команда MGL:</u> <b>divto</b><i> dat dat2</i></dt>
+<dd><p>Поэлементно делит массив <var>dat</var> на <var>dat2</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-divto-2"></a><u>Команда MGL:</u> <b>divto</b><i> dat <code>val</code></i></dt>
+<dd><p>Делит каждый элемент на число.
+</p></dd></dl>
+
+<a name="index-addto"></a>
+<p><a name="addto"></a>
+</p><dl>
+<dt><a name="index-addto-1"></a><u>Команда MGL:</u> <b>addto</b><i> dat dat2</i></dt>
+<dd><p>Поэлементно прибавляет <var>dat2</var> к массиву <var>dat</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-addto-2"></a><u>Команда MGL:</u> <b>addto</b><i> dat <code>val</code></i></dt>
+<dd><p>Прибавляет число к каждому элементу.
+</p></dd></dl>
+
+<a name="index-subto"></a>
+<p><a name="subto"></a>
+</p><dl>
+<dt><a name="index-subto-1"></a><u>Команда MGL:</u> <b>subto</b><i> dat dat2</i></dt>
+<dd><p>Поэлементно вычитает <var>dat2</var> из массива <var>dat</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-subto-2"></a><u>Команда MGL:</u> <b>subto</b><i> dat <code>val</code></i></dt>
+<dd><p>Вычитает число из каждого элемента.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Program-flow-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Operators-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Command-options-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043eg_0440_0430_043c_043c_0438_0440_043e_0432_0430_043d_0438e-_0028MGL_0029"></a>
+<h2 class="section">8.23 Программирование (MGL)</h2>
+
+<p>Эти команды управляют порядком выполнения других команд (условия, циклы, подпрограммы), (пере-)определяют аргументы скрипта и пр.
+</p>
+<a name="index-chdir"></a>
+<p><a name="chdir"></a>
+</p><dl>
+<dt><a name="index-chdir-1"></a><u>Команда MGL:</u> <b>chdir</b><i> 'path'</i></dt>
+<dd><p>Переходит в папку <var>path</var>.
+</p></dd></dl>
+
+<a name="index-define"></a>
+<p><a name="define"></a>
+</p><dl>
+<dt><a name="index-define-1"></a><u>Команда MGL:</u> <b>define</b><i> $N smth</i></dt>
+<dd><p>Задает <var>N</var>-ый аргумент скрипта равным <var>smth</var>. Отмечу, что <var>smth</var> используется как есть (с символами &lsquo;<samp>'</samp>&rsquo; если присутствуют). Выполняется только подстановка других макроопределений $0...$9, $a...$z. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<dl>
+<dt><a name="index-define-2"></a><u>Команда MGL:</u> <b>define</b><i> name smth</i></dt>
+<dd><p>Определяет константу (скаляр) с именем <code>name</code> и числовым значением <code>smth</code>. Позднее она может быть использована как обычное число.
+</p></dd></dl>
+<a name="index-defchr"></a>
+<p><a name="defchr"></a>
+</p><dl>
+<dt><a name="index-defchr-1"></a><u>Команда MGL:</u> <b>defchr</b><i> $N smth</i></dt>
+<dd><p>Задает <var>N</var>-ый аргумент скрипта равным символу с UTF кодом <var>smth</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<a name="index-defnum"></a>
+<p><a name="defnum"></a>
+</p><dl>
+<dt><a name="index-defnum-1"></a><u>Команда MGL:</u> <b>defnum</b><i> $N smth</i></dt>
+<dd><p>Задает <var>N</var>-ый аргумент скрипта равным числовому значению <var>smth</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<a name="index-defpal"></a>
+<p><a name="defpal"></a>
+</p><dl>
+<dt><a name="index-defpal-1"></a><u>Команда MGL:</u> <b>defpal</b><i> $N smth</i></dt>
+<dd><p>Задает <var>N</var>-ый аргумент скрипта равным символу палитры с индексом, найденным из <var>smth</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+
+<a name="index-call"></a>
+<p><a name="call"></a>
+</p><dl>
+<dt><a name="index-call-1"></a><u>Команда MGL:</u> <b>call</b><i> 'fname' [ARG1 ARG2 ... ARG9]</i></dt>
+<dd><p>Переходит к выполнению (вызывает) подпрограммы <var>fname</var> (или внешнего скрипта, если функция не была найдена). Опциональные аргументы передаются в подпрограмму. См. также <a href="#func">func</a>.
+</p></dd></dl>
+<a name="index-func"></a>
+<p><a name="func"></a>
+</p><dl>
+<dt><a name="index-func-1"></a><u>Команда MGL:</u> <b>func</b><i> 'fname' [narg=0]</i></dt>
+<dd><p>Определяет подпрограмму с именем <var>fname</var> и задает число требуемых аргументов. Аргументы будут помещены в параметры скрипта $1, $2, ... $9. Отмечу, что выполнение основной программы должно быть остановлено до начала определений подпрограмм. См. также <a href="#stop">stop</a>,  <a href="#return">return</a>.
+</p></dd></dl>
+<a name="index-return"></a>
+<p><a name="return"></a>
+</p><dl>
+<dt><a name="index-return-1"></a><u>Команда MGL:</u> <b>return</b></dt>
+<dd><p>Возвращается из подпрограммы.
+</p></dd></dl>
+
+
+<a name="index-if"></a>
+<p><a name="if"></a>
+</p><dl>
+<dt><a name="index-if-1"></a><u>Команда MGL:</u> <b>if</b><i> dat 'cond'</i></dt>
+<dd><p>Начинает блок команд, выполняемый если каждый элемент <var>dat</var> удовлетворяет условию <var>cond</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-if-2"></a><u>Команда MGL:</u> <b>if</b><i> <code>val</code></i></dt>
+<dd><p>Начинает блок команд, выполняемый если <code>val</code> не ноль.
+</p></dd></dl>
+<a name="index-elseif"></a>
+<p><a name="elseif"></a>
+</p><dl>
+<dt><a name="index-elseif-1"></a><u>Команда MGL:</u> <b>elseif</b><i> dat 'cond'</i></dt>
+<dd><p>Начинает блок команд, выполняемый если предыдущий <code>if</code> или <code>elseif</code> не был выполнен и каждый элемент <var>dat</var> удовлетворяет условию <var>cond</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-elseif-2"></a><u>Команда MGL:</u> <b>elseif</b><i> <code>val</code></i></dt>
+<dd><p>Начинает блок команд, выполняемый если предыдущий <code>if</code> или <code>elseif</code> не был выполнен и <code>val</code> не ноль.
+</p></dd></dl>
+<a name="index-else"></a>
+<p><a name="else"></a>
+</p><dl>
+<dt><a name="index-else-1"></a><u>Команда MGL:</u> <b>else</b></dt>
+<dd><p>Начинает блок команд, выполняемый если предыдущий <code>if</code> или <code>elseif</code> не был выполнен.
+</p></dd></dl>
+<a name="index-endif"></a>
+<p><a name="endif"></a>
+</p><dl>
+<dt><a name="index-endif-1"></a><u>Команда MGL:</u> <b>endif</b></dt>
+<dd><p>Заканчивает определение блока <code>if/elseif/else</code>.
+</p></dd></dl>
+
+<a name="index-for"></a>
+<p><a name="for"></a>
+</p><dl>
+<dt><a name="index-for-1"></a><u>Команда MGL:</u> <b>for</b><i> $N <code>v1 v2 [dv=1]</code></i></dt>
+<dd><p>Начинает блок команд, выполняемый в цикле с $<var>N</var>-ым аргументом изменяющимся от <var>v1</var> до <var>v2</var> с шагом <var>dv</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<dl>
+<dt><a name="index-for-2"></a><u>Команда MGL:</u> <b>for</b><i> $N dat</i></dt>
+<dd><p>Начинает блок команд, выполняемый в цикле с $<var>N</var>-ым аргументом пробегающим значения массива <var>dat</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<a name="index-next"></a>
+<p><a name="next"></a>
+</p><dl>
+<dt><a name="index-next-1"></a><u>Команда MGL:</u> <b>next</b></dt>
+<dd><p>Заканчивает блок цикла <code>for</code>.
+</p></dd></dl>
+
+<a name="index-once"></a>
+<p><a name="once"></a>
+</p><dl>
+<dt><a name="index-once-1"></a><u>Команда MGL:</u> <b>once</b><i> <code>val</code></i></dt>
+<dd><p>Определяет код (между <code>once on</code> и <code>once off</code>) который будет выполнен только один раз. Полезно для работы с большими данными в программах типа UDAV.
+</p></dd></dl>
+<a name="index-stop"></a>
+<p><a name="stop"></a>
+</p><dl>
+<dt><a name="index-stop-1"></a><u>Команда MGL:</u> <b>stop</b></dt>
+<dd><p>Останавливает выполнение скрипта.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Command-options-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Program-flow-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Suffixes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_043fc_0438_0438-_043a_043e_043c_0430_043d_0434-_0028MGL_0029"></a>
+<h2 class="section">8.24 Опции команд (MGL)</h2>
+
+<p>Опции команд позволяют легко настроить вид отдельного графика не меняя глобальных настроек для все рисунка. Опции указываются после команды. Каждая опция отделяется от предыдущей символом &lsquo;<samp>;</samp>&rsquo;. Опции работают так, что запоминают текущие настройки рисунка, применяют собственные настройки, выполняют команду и возвращают глобальные настройки обратно. Поэтому использование опций для команд обработки данных или настройки графика бесполезно.
+</p>
+<p>Наиболее часто используемые опции &ndash; <code>xrange, yrange, zrange</code>, устанавливающие границы изменения осей координат (и тем самым автоматических массивов). Например, команда <code>plot y; xrange 0.1 0.9</code> построит кривую с x-координатой равно распределенной в интервале 0.1 ... 0.9, а не вдоль текущей оси x.
+</p>
+<p>Полный список опций:
+<a name="index-alpha-2"></a>
+<a name="index-alphadef-2"></a>
+</p><dl>
+<dt><a name="index-alpha-3"></a><u>Опция MGL:</u> <b>alpha</b><i> <code>val</code></i></dt>
+<dt><a name="index-alphadef-3"></a><u>Опция MGL:</u> <b>alphadef</b><i> <code>val</code></i></dt>
+<dd><p>Задает величину прозрачности поверхности. Значение должно быть в диапазоне [0, 1]. См. также <a href="#alphadef">alphadef</a>
+</p></dd></dl>
+<a name="index-ambient-2"></a>
+<dl>
+<dt><a name="index-ambient-3"></a><u>Опция MGL:</u> <b>ambient</b><i> <code>val</code></i></dt>
+<dd><p>Задает яркость фонового освещения. Значение должно быть в диапазоне [0, 1]. См. также <a href="#ambient">ambient</a>
+</p></dd></dl>
+<a name="index-crange-3"></a>
+<dl>
+<dt><a name="index-crange-4"></a><u>Опция MGL:</u> <b>crange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Задает границы цветовой шкалы. См. также <a href="#crange">crange</a>
+</p></dd></dl>
+<a name="index-xrange-3"></a>
+<dl>
+<dt><a name="index-xrange-4"></a><u>Опция MGL:</u> <b>xrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Задает границы изменения координаты x. См. также <a href="#xrange">xrange</a>
+</p></dd></dl>
+<a name="index-yrange-3"></a>
+<dl>
+<dt><a name="index-yrange-4"></a><u>Опция MGL:</u> <b>yrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Задает границы изменения координаты y. См. также <a href="#yrange">yrange</a>
+</p></dd></dl>
+<a name="index-zrange-3"></a>
+<dl>
+<dt><a name="index-zrange-4"></a><u>Опция MGL:</u> <b>zrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Задает границы изменения координаты z. См. также <a href="#zrange">zrange</a>
+</p></dd></dl>
+<a name="index-cut-4"></a>
+<dl>
+<dt><a name="index-cut-5"></a><u>Опция MGL:</u> <b>cut</b><i> <code>val</code></i></dt>
+<dd><p>Задает обрезание точек за пределами осей координат. См. также <a href="#cut">cut</a>
+</p></dd></dl>
+<a name="index-fontsize"></a>
+<dl>
+<dt><a name="index-fontsize-1"></a><u>Опция MGL:</u> <b>fontsize</b><i> <code>val</code></i></dt>
+<dd><p>Задает размер текста. См. также <a href="#font">font</a>
+</p></dd></dl>
+<a name="index-marksize-2"></a>
+<dl>
+<dt><a name="index-marksize-3"></a><u>Опция MGL:</u> <b>marksize</b><i> <code>val</code></i></dt>
+<dd><p>Задает размер маркеров. См. также <a href="#marksize">marksize</a>
+</p></dd></dl>
+<a name="index-meshnum-2"></a>
+<dl>
+<dt><a name="index-meshnum-3"></a><u>Опция MGL:</u> <b>meshnum</b><i> <code>val</code></i></dt>
+<dd><p>Задает ориентировочное число линий, стрелок, ячеек и пр. См. также <a href="#meshnum">meshnum</a>
+</p></dd></dl>
+<a name="index-legend-3"></a>
+<dl>
+<dt><a name="index-legend-4"></a><u>Опция MGL:</u> <b>legend</b><i> 'txt'</i></dt>
+<dd><p>Добавляет строку &rsquo;txt&rsquo; во внутренний массив записей легенды. Стиль линии и маркера аргумента последней вызванной команды построения <a href="#g_t1D-plotting-_0028MGL_0029">1D графики (MGL)</a>. См. также <a href="#legend">legend</a>
+</p></dd></dl>
+
+<hr size="6">
+<a name="Suffixes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Command-options-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Utilities" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_0443_0444_0444_0438_043a_0441_044b-_043fe_0440e_043ce_043d_043d_044b_0445"></a>
+<h2 class="section">8.25 Суффиксы переменных</h2>
+
+<p>Суффиксы позволяют быстро получить числовую характеристику (размер, максимальное или минимальное значение, сумму элементов и т.д.) массива данных и использовать ее как число (скаляр) в аргументах. Суффиксы начинаются с точки &lsquo;<samp>.</samp>&rsquo; сразу после (без пробелов) имени переменной и временного массива. Например, <code>a.nx</code> даст размер массива <var>a</var> по оси х, <code>b(1).max</code> даст максимальное значение второй строки массива <var>b</var>, <code>(c(:,0)^2).sum</code> даст сумму квадратов элементов первой колонки массива <var>c</var> и т.д.
+</p>
+<p>Полный список суффиксов:
+</p><dl compact="compact">
+<dt> <strong>nx, ny, nz</strong></dt>
+<dd><p>Размер массива в направлении x, y, z соответственно.
+</p></dd>
+<dt> <strong>max</strong></dt>
+<dd><p>Максимальное значение массива.
+</p></dd>
+<dt> <strong>min</strong></dt>
+<dd><p>Минимальное значение массива.
+</p></dd>
+<dt> <strong>sum</strong></dt>
+<dd><p>Сумма элементов массива.
+</p></dd>
+<dt> <strong>a</strong></dt>
+<dd><p>Первый элемент массива (элемент с индексами 0,0,0).
+</p></dd>
+<dt> <strong>fst</strong></dt>
+<dd><p>Первое не нулевое значение массива.
+</p></dd>
+<dt> <strong>lst</strong></dt>
+<dd><p>Последнее не нулевое значение массива.
+</p></dd>
+<dt> <strong>mx, my, mz</strong></dt>
+<dd><p>Положение максимума в направлении x, y, z соответственно.
+</p></dd>
+<dt> <strong>ax, ay, az, aa</strong></dt>
+<dd><p>Положение центра масс в направлении x, y, z соответственно или среднее значение массива.
+</p></dd>
+<dt> <strong>wx, wy, wz, wa</strong></dt>
+<dd><p>Ширина в направлении x, y, z соответственно или дисперсия элементов массива.
+</p></dd>
+<dt> <strong>sx, sy, sz, sa</strong></dt>
+<dd><p>Асимметрия в направлении x, y, z соответственно или элементов массива.
+</p></dd>
+<dt> <strong>kx, ky, kz, ka</strong></dt>
+<dd><p>Эксцесс в направлении x, y, z соответственно или элементов массива.
+</p></dd>
+</dl>
+
+<hr size="6">
+<a name="Utilities"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Suffixes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0423_0442_0438_043b_0438_0442_044b-_0434_043bya-MGL"></a>
+<h2 class="section">8.26 Утилиты для MGL</h2>
+
+<p>MathGL содержит несколько программ для работы со скриптами MGL. Есть утилита для сохранения в растровое (<code>mgl2png</code>, <code>mgl2gif</code>) или векторное (<code>mgl2eps</code>, <code>mgl2svg</code>) изображения. Программа <code>mglview</code> показывает результат выполнения скрипта MGL и позволяет вращать и настраивать график. Также можно транслировать MGL скрипт в C++ файл с помощью программы <code>mgl2cpp</code>.
+</p>
+<p>Все эти программы имеют схожий набор аргументов. Первым идет имя скрипта, а вторым идет имя выходного файлы (может быть опущено), последние аргументы &ndash; опции скрипта и программы. К опциям относятся параметры скрипта (это <code>$0, $1, ... $9</code>) и настройки локали. Параметры скрипта имеют формат &lsquo;<samp>-Nval</samp>&rsquo;, где N=0,1...9 &ndash; номер параметра, val &ndash; его значние. Например, опция &lsquo;<samp>-1test</samp>&rsquo; заменит <code>$1</code> на &lsquo;<samp>test</samp>&rsquo; в скрипте. Опция -Lval устанавливает локаль в значение val. Например, &lsquo;<samp>-Lutf8</samp>&rsquo; будет использовать UTF-8 в скрипте.
+</p>
+<p>Также можно создавать анимированные изображения GIF или набор JPEG файлов с именами &lsquo;<samp>frameNNNN.jpg</samp>&rsquo; (где &lsquo;<samp>NNNN</samp>&rsquo; &ndash; номер кадра). Для этого в скрипте надо указать параметры анимации для каждого кадра (строками с коментариями <code>##a val</code> или опциями &lsquo;<samp>-Aval</samp>&rsquo;) или в цикле (строкой с комментарием <code>##с v1 v2 [dv]</code> или опцию &lsquo;<samp>-Cn1:n2</samp>&rsquo;), которые будут подставлены в качестве параметра <code>$0</code> при последовательном вызове скрипта. Для сохранения кадров в JPEG просто добавьте команду <code>write ''</code> в конце скрипта.
+</p>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_9.html b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_9.html
new file mode 100644
index 0000000..c2b79df
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_9.html
@@ -0,0 +1,8180 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: 9. Примеры использования MathGL</title>
+
+<meta name="description" content="MathGL 1.11: 9. Примеры использования MathGL">
+<meta name="keywords" content="MathGL 1.11: 9. Примеры использования MathGL">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_8.html#Utilities" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya-MathGL"></a>
+<h1 class="chapter">9. Примеры использования MathGL</h1>
+<p>Эта глава содержит множество примеров кода для всех типов графиков, наиболее важных возможностей библиотеки и советов. Аналогичные примеры (с картинками) можно найти на <a href="http://mathgl.sf.net/pictures.html">http://mathgl.sf.net/pictures.html</a>. 
+MБольшинство примеров содержат код на 5 языках: C++, MGL, C, Fortran и Python. Однако, в некоторых я помещал только C++ код, поскольку соответствующий код слишком большой и ясно как его можно переписать на другие языки.
+Минимальный код для запуска и просмотра примеров на различных языках следующий.
+<strong>C++ код</strong>
+Для компиляции используйте: <code>g++ -o sample sample.cpp -lmgl</code>.
+</p><pre class="verbatim">#include &lt;mgl/mgl_zb.h&gt;
+int main()
+{
+    mglGraph *gr = new mglGraphZB;
+    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // put sample code here
+    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    gr-&gt;ShowImage();    delete gr;
+    return 0;
+}
+</pre><p><strong>MGL скрипт</strong>
+Для просмотра используйте: <code>mglview sample.mgl</code>.
+</p><pre class="verbatim">#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# put sample code here
+#   --&gt;   you may sample as is :)
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+</pre><p><strong>C-ый код</strong>
+Для компиляции используйте: <code>gcc -o sample sample.c -lmgl</code>.
+</p><pre class="verbatim">#include &lt;mgl/mgl_c.h&gt;
+int main()
+{
+    HMGL gr = mgl_create_graph_zb(600,400);
+    /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    /* put sample code here              */
+    /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    mgl_show_image(gr,&quot;&quot;,0);
+    mgl_delete_graph(gr);
+    return 0;
+}
+</pre><p><strong>Fortran</strong>
+Для компиляции используйте: <code>gfortran -o sample sample.f90 -lmgl</code>. Замечу, что фортран не имеет проверки аргументов. Поэтому обратите особое внимание на передаваемые аргументы &ndash; не путайте целые и действительные (с плавающей точкой) числа/аргументы. Никакого контроля в компиляторе для этого не предусмотрено!!!
+</p><pre class="verbatim">integer gr, mgl_create_graph_zb
+gr = mgl_create_graph_zb(600,400)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! put sample code here
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+call mgl_show_image(gr,'',0)
+call mgl_delete_graph(gr)
+end
+</pre><p><strong>Python</strong>
+Для просмотра используйте: <code>python sample.py</code>.
+</p><pre class="verbatim">from mathgl import *
+gr = mglGraph();
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# put sample code here
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+gr.ShowImage();
+</pre><table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting-samples">9.1 Примеры 1D графиков</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting-samples">9.2 Примеры 2D графиков</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting-samples">9.3 Примеры 3D графиков</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting-samples">9.4 Примеры парных/векторных графиков</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Basic-features">9.5 Базовые возможности</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Additional-features">9.6 Дополнительные возможности</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Advanced-features">9.7 &quot;Продвинутые&quot; возможности</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+</table>
+<hr size="6">
+<a name="g_t1D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-1D-g_0440_0430_0444_0438_043a_043e_0432"></a>
+<h2 class="section">9.1 Примеры 1D графиков</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plot-sample">9.1.1 Plot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Radar-sample">9.1.2 Radar &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tens-sample">9.1.3 Tens &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area-sample">9.1.4 Area &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area-gradient-sample">9.1.5 Area с градиентной заливкой &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-sample">9.1.6 Bars &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-2-colors-sample">9.1.7 Bars (2 цвета) &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-above-sample">9.1.8 Bars (один над другим) &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-fall-sample">9.1.9 Bars &quot;водопад&quot; &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Barh-sample">9.1.10 Barh &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Step-sample">9.1.11 Step &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stem-sample">9.1.12 Stem &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region-sample">9.1.13 Region &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region-gradient-sample">9.1.14 Region с градиентной заливкой &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Error-sample">9.1.15 Error &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#BoxPlot-sample">9.1.16 BoxPlot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mark-sample">9.1.17 Mark &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TextMark-sample">9.1.18 TextMark &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tube-sample">9.1.19 Tube &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-sample">9.1.20 Text &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Torus-sample">9.1.21 Torus &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Chart-sample">9.1.22 Chart &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pie-chart-sample">9.1.23 Pie chart &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ring-chart-sample">9.1.24 Ring chart &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+<hr size="6">
+<a name="Plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Radar-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.1 Plot &ndash; пример использования</h3>
+<a name="index-Plot-7"></a>
+<div class="float">
+<img src="../png/plot.png" alt="../png/plot">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Box();
+gr-&gt;Plot(y);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.Box();
+gr.Plot(y);
+</pre><hr size="6">
+<a name="Radar-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Radar-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.2 Radar &ndash; пример использования</h3>
+<a name="index-Radar-2"></a>
+<div class="float">
+<img src="../png/radar.png" alt="../png/radar">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.4*sin(pi*(2*x+y/2))+0.1*rnd&quot;);
+gr-&gt;Radar(y,&quot;#&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.4*sin(pi*(2*x+y/2))+0.1*rnd'
+radar y '#'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.4*sin(pi*(2*x+y/2))+0.1*rnd&quot;,0);
+mgl_radar(gr,y,&quot;#&quot;,-1);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.4*sin(pi*(2*x+y/2))+0.1*rnd',0)
+call mgl_radar(gr,y,'#',-1.)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.4*sin(pi*(2*x+y/2))+0.1*rnd&quot;);
+gr.Radar(y,&quot;#&quot;);
+</pre><hr size="6">
+<a name="Tens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Radar-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.3 Tens &ndash; пример использования</h3>
+<a name="index-Tens-4"></a>
+<div class="float">
+<img src="../png/tens.png" alt="../png/tens">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50), c(50);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;);
+c.Modify(&quot;sin(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Tens(y,c);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50
+new c 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify c 'sin(2*pi*x)'
+box
+tens y c
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,1,1);
+HMDT c = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(c,&quot;sin(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_tens(gr,y,c,NULL);
+mgl_delete_data(y);
+mgl_delete_data(c);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, c, mgl_create_data_size
+y = mgl_create_data_size(50,1,1)
+c = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(c,'sin(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_tens(gr,y,'')
+call mgl_delete_data(y)
+call mgl_delete_data(c)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50);
+c = mglData(50);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;);
+c.Modify(&quot;sin(2*pi*x)&quot;);
+gr.Box();
+gr.Tens(y,c);
+</pre><hr size="6">
+<a name="Area-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area-gradient-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.4 Area &ndash; пример использования</h3>
+<a name="index-Area-4"></a>
+<div class="float">
+<img src="../png/area.png" alt="../png/area">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Area(y);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_area(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_area(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Area(y);
+</pre><hr size="6">
+<a name="Area-gradient-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-_0441-g_0440_0430_0434_0438e_043d_0442_043d_043e_0439-_0437_0430_043b_0438_0432_043a_043e_0439-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.5 Area с градиентной заливкой &ndash; пример использования</h3>
+<a name="index-Area-5"></a>
+<div class="float">
+<img src="../png/area_2.png" alt="../png/area_2">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Area(y,&quot;cbgGyr&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y 'cbgGyr'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_area(gr,y,&quot;cbgGyr&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_area(gr,y,'cbgGyr')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Area(y,&quot;cbgGyr&quot;);
+</pre><hr size="6">
+<a name="Bars-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area-gradient-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-2-colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.6 Bars &ndash; пример использования</h3>
+<a name="index-Bars-4"></a>
+<div class="float">
+<img src="../png/bars.png" alt="../png/bars">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Bars(y);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y);
+</pre>
+<hr size="6">
+<a name="Bars-2-colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-above-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-_00282-c_0432e_0442_0430_0029-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.7 Bars (2 цвета) &ndash; пример использования</h3>
+<a name="index-Bars-5"></a>
+<div class="float">
+<img src="../png/bars_2.png" alt="../png/bars_2">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Bars(y,&quot;cbgGyr&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'cbgGyr'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,&quot;cbgGyr&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'cbgGyr')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,&quot;cbgGyr&quot;);
+</pre><hr size="6">
+<a name="Bars-above-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-2-colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-fall-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-_0028_043e_0434_0438_043d-_043d_0430_0434-_0434_0440_0443g_0438_043c_0029-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.8 Bars (один над другим) &ndash; пример использования</h3>
+<a name="index-Bars-6"></a>
+<div class="float">
+<img src="../png/bars_a.png" alt="../png/bars_a">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Bars(y,&quot;a&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'a'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,&quot;a&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'a')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,&quot;a&quot;);
+</pre><hr size="6">
+<a name="Bars-fall-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-above-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Barh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-_0022_0432_043e_0434_043e_043f_0430_0434_0022-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.9 Bars &quot;водопад&quot; &ndash; пример использования</h3>
+<a name="index-Bars-7"></a>
+<div class="float">
+<img src="../png/bars_f.png" alt="../png/bars_f">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Bars(y,&quot;f&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'f'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,&quot;f&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'f')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,&quot;f&quot;);
+</pre>
+
+<hr size="6">
+<a name="Barh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-fall-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Step-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Barh-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.10 Barh &ndash; пример использования</h3>
+<a name="index-Barh-3"></a>
+<div class="float">
+<img src="../png/barh.png" alt="../png/barh">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Barh(y);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+barh y
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_barh(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_barh(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Barh(y);
+</pre><hr size="6">
+<a name="Step-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Barh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stem-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Step-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.11 Step &ndash; пример использования</h3>
+<a name="index-Step-4"></a>
+<div class="float">
+<img src="../png/step.png" alt="../png/step">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Box();
+gr-&gt;Step(y);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+step y
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_box(gr,1);
+mgl_step(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_box(gr,1)
+call mgl_step(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.Box();
+gr.Step(y);
+</pre><hr size="6">
+<a name="Stem-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Step-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stem-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.12 Stem &ndash; пример использования</h3>
+<a name="index-Stem-4"></a>
+<div class="float">
+<img src="../png/stem.png" alt="../png/stem">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Stem(y,&quot;o&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+stem y 'o'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_stem(gr,y,&quot;o&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_stem(gr,y,'o')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Stem(y,&quot;o&quot;);
+</pre><hr size="6">
+<a name="Region-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Stem-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region-gradient-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.13 Region &ndash; пример использования</h3>
+<a name="index-Region-3"></a>
+<div class="float">
+<img src="../png/region.png" alt="../png/region">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y1(50), y2(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Region(y1,y2,&quot;r&quot;);
+gr-&gt;Plot(y1,&quot;k2&quot;);
+gr-&gt;Plot(y2,&quot;k2&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'r'
+plot y1 'k2'
+plot y2 'k2'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_region(gr,y1,y2,&quot;r&quot;,1);
+mgl_plot(gr,y1,&quot;k2&quot;);
+mgl_plot(gr,y2,&quot;k2&quot;);
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,'0.3*sin(2*pi*x)',0);
+call mgl_data_modify(y2,'0.5+0.3*cos(2*pi*x)',0);
+call mgl_box(gr,1);
+call mgl_region(gr,y1,y2,'r',1);
+call mgl_plot(gr,y1,'k2');
+call mgl_plot(gr,y2,'k2');
+call mgl_delete_data(y1);
+call mgl_delete_data(y2);
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y1, y2, x = mglData(50), mglData(50), mglData(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.Box();
+gr.Region(y1,y2,&quot;r&quot;);
+gr.Plot(y1,&quot;k2&quot;);
+gr.Plot(y2,&quot;k2&quot;);
+</pre><hr size="6">
+<a name="Region-gradient-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Error-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-_0441-g_0440_0430_0434_0438e_043d_0442_043d_043e_0439-_0437_0430_043b_0438_0432_043a_043e_0439-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.14 Region с градиентной заливкой &ndash; пример использования</h3>
+<a name="index-Region-4"></a>
+<div class="float">
+<img src="../png/region_2.png" alt="../png/region_2">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y1(50), y2(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Region(y1,y2,&quot;yr&quot;);
+gr-&gt;Plot(y1,&quot;k2&quot;);
+gr-&gt;Plot(y2,&quot;k2&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'yr'
+plot y1 'k2'
+plot y2 'k2'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_region(gr,y1,y2,&quot;yr&quot;,1);
+mgl_plot(gr,y1,&quot;k2&quot;);
+mgl_plot(gr,y2,&quot;k2&quot;);
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,'0.3*sin(2*pi*x)',0);
+call mgl_data_modify(y2,'0.5+0.3*cos(2*pi*x)',0);
+call mgl_box(gr,1);
+call mgl_region(gr,y1,y2,'yr',1);
+call mgl_plot(gr,y1,'k2');
+call mgl_plot(gr,y2,'k2');
+call mgl_delete_data(y1);
+call mgl_delete_data(y2);
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y1, y2, x = mglData(50), mglData(50), mglData(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.Box();
+gr.Region(y1,y2,&quot;yr&quot;);
+gr.Plot(y1,&quot;k2&quot;);
+gr.Plot(y2,&quot;k2&quot;);
+</pre><hr size="6">
+<a name="Error-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region-gradient-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#BoxPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Error-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.15 Error &ndash; пример использования</h3>
+<a name="index-Error-6"></a>
+<div class="float">
+<img src="../png/error.png" alt="../png/error">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,1), x0(10), y0(10), ex(10), ey(10);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+x0.Modify(&quot;2*x-1 + 0.1*rnd-0.05&quot;);
+y0.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1&quot;);
+ey.Modify(&quot;0.2&quot;); ex.Modify(&quot;0.1&quot;);
+gr-&gt;Box();
+gr-&gt;Plot(y);
+gr-&gt;Error(x0,y0,ex,ey,&quot;ko&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50
+new x0 10
+new y0 10
+new ex 10
+new ey 10
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify x0 '2*x-1 + 0.1*rnd-0.05'
+modify y0 '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1'
+modify ey '0.2'
+modify ex '0.1'
+box
+plot y
+error x0 y0 ex ey 'ko'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,1,1);
+HMDT x0 = mgl_create_data_size(10,1,1);
+HMDT y0 = mgl_create_data_size(10,1,1);
+HMDT ex = mgl_create_data_size(10,1,1);
+HMDT ey = mgl_create_data_size(10,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(x0,&quot;2*x-1 + 0.1*rnd-0.05&quot;,0);
+mgl_data_modify(y0,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1&quot;,0);
+mgl_data_modify(ey,&quot;0.2&quot;,0); mgl_data_modify(ex,&quot;0.1&quot;,0);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_error_exy(gr,x0,y0,ex,ey,&quot;ko&quot;);
+mgl_delete_data(x0); mgl_delete_data(y0);
+mgl_delete_data(ex); mgl_delete_data(ey);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, x0, y0, ex, ey, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+x0 = mgl_create_data_size(10,1,1)
+y0 = mgl_create_data_size(10,1,1)
+ex = mgl_create_data_size(10,1,1)
+ey = mgl_create_data_size(10,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(x0,'2*x-1 + 0.1*rnd-0.05',0);
+call mgl_data_modify(y0,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + &amp;
+                         0.2*sin(pi*x) + 0.2*rnd-0.1',0);
+call mgl_data_modify(ey,'0.2',0)
+call mgl_data_modify(ex,'0.1',0);
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_error_exy(gr,x0,y0,ex,ey,'ko')
+call mgl_delete_data(x0)
+call mgl_delete_data(y0)
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y, x0, y0, ex, ey = mglData(50,1), mglData(10), mglData(10), mglData(10), mglData(10);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+x0.Modify(&quot;2*x-1+0.1*rnd-0.05&quot;);
+y0.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)+0.2*rnd-0.1&quot;);
+ey.Modify(&quot;0.2&quot;);   ex.Modify(&quot;0.1&quot;);
+gr.Box();           gr.Plot(y);
+gr.Error(x0,y0,ex,ey,&quot;ko&quot;);
+</pre><hr size="6">
+<a name="BoxPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Error-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mark-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="BoxPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.16 BoxPlot &ndash; пример использования</h3>
+<a name="index-BoxPlot-3"></a>
+<div class="float">
+<img src="../png/boxplot.png" alt="../png/boxplot">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(10,7);
+a.Modify(&quot;(2*rnd-1)^3/2&quot;);
+gr-&gt;Box();
+gr-&gt;BoxPlot(a);
+gr-&gt;Plot(a,&quot; ko&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 10 7
+modify a '(2*rnd-1)^3/2'
+box
+boxplot a
+plot a ' ko'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(10,7,1);
+mgl_data_modify(a,&quot;(2*rnd-1)^3/2&quot;,0);
+mgl_box(gr,1);
+mgl_plot(gr,a,&quot; ko&quot;);
+mgl_boxplot(gr,a,NULL);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+y = mgl_create_data_size(10,7,1)
+call mgl_data_modify(a,'(2*rnd-1)^3/2',0);
+call mgl_box(gr,1)
+call mgl_plot(gr,a,' ko')
+call mgl_boxplot(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(10,7);
+a.Modify(&quot;(2*rnd-1)^3/2&quot;);
+gr.Box();
+gr.Plot(a,&quot; ko&quot;);
+gr.BoxPlot(a);
+</pre><hr size="6">
+<a name="Mark-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#BoxPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TextMark-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mark-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.17 Mark &ndash; пример использования</h3>
+<a name="index-Mark-7"></a>
+<div class="float">
+<img src="../png/mark.png" alt="../png/mark">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3), y1(50);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Mark(y,y1,&quot;bs&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+mark y y1 'bs'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+HMDT y1 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_mark_y(gr,y,y1,&quot;bs&quot;);
+mgl_delete_data(y);
+mgl_delete_data(y1);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, y1, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+y1 = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_data_modify(y1,'0.5+0.3*cos(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_mark_y(gr,y,y1,'bs')
+call mgl_delete_data(y)
+call mgl_delete_data(y1)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y, y1 = mglData(50,3), mglData(50);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);     y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.Box();
+gr.Mark(y,y1,&quot;bs&quot;);
+</pre><hr size="6">
+<a name="TextMark-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mark-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tube-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TextMark-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.18 TextMark &ndash; пример использования</h3>
+<a name="index-TextMark-9"></a>
+<div class="float">
+<img src="../png/textmark.png" alt="../png/textmark">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3), y1(50);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;TextMark(y,y1,&quot;\\gamma&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+textmark y y1 '\gamma'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y, y1;
+y = mgl_create_data_size(50,3,1);
+y1 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_textmark_yr(gr,y,y1,&quot;\\gamma&quot;,&quot;&quot;);
+mgl_delete_data(y);
+mgl_delete_data(y1);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, y1, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+y1 = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_data_modify(y1,'0.5+0.3*cos(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_textmark_yr(gr,y,y1,'\gamma','')
+call mgl_delete_data(y)
+call mgl_delete_data(y1)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y, y1 = mglData(50,3), mglData(50);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);     y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.Box();
+gr.TextMark(y,y1,&quot;\\gamma&quot;);
+</pre><hr size="6">
+<a name="Tube-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TextMark-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tube-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.19 Tube &ndash; пример использования</h3>
+<a name="index-Tube-7"></a>
+<div class="float">
+<img src="../png/tube.png" alt="../png/tube">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Tube(y,0.05);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+rotate 40 60
+light on
+box
+tube y 0.05
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_tube(gr,y,0.05,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_tube(gr,y,0.05,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);  y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Tube(y,0.05);
+</pre><hr size="6">
+<a name="Text-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tube-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Torus-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.20 Text &ndash; пример использования</h3>
+<a name="index-Text-7"></a>
+<div class="float">
+<img src="../png/text.png" alt="../png/text">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Box();
+gr-&gt;Plot(y.SubData(-1,0));
+gr-&gt;Text(y,&quot;This is very long string drawn along a curve&quot;,&quot;:k&quot;);
+gr-&gt;Text(y,&quot;Another string drawn above a curve&quot;,&quot;T:r&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y(:,0)
+text y 'This is very long string drawn along a curve' ':k'
+text y 'Another string drawn above a curve' 'T:r'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_text_y(gr,y,&quot;This is very long string drawn along a curve&quot;,&quot;:k&quot;,-1.);
+mgl_text_y(gr,y,&quot;Another string drawn above a curve&quot;,&quot;T:r&quot;,-1.);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_text_y(gr,y,'This is very long string drawn along a curve',':k',-1.)
+call mgl_text_y(gr,y,'Another string drawn above a curve','T:r',-1.)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);     y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.Box();
+gr.Plot(y.SubData(-1,0));
+gr.Text(y,&quot;This is very long string drawn along a curve&quot;,&quot;:k&quot;);
+gr.Text(y,&quot;Another string drawn above a curve&quot;,&quot;T:r&quot;);
+</pre><hr size="6">
+<a name="Torus-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Torus-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.21 Torus &ndash; пример использования</h3>
+<a name="index-Torus-3"></a>
+<div class="float">
+<img src="../png/torus.png" alt="../png/torus">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y1(50), y2(50);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+y2.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Torus(y1,y2,&quot;pz&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+rotate 40 60
+light on
+box
+torus y1 y2 'pz'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_torus(gr,y1,y2,&quot;pz&quot;);
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+call mgl_data_modify(y2,&quot;0.3*sin(2*pi*x)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_torus(gr,y1,y2,'pz')
+call mgl_delete_data(y1)
+call mgl_delete_data(y2)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y1, y2 = mglData(50), mglData(50);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+y2.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+gr.Rotate(40,60);    gr.Light(True);
+gr.Box();
+gr.Torus(y1,y2,&quot;pz&quot;);
+</pre><hr size="6">
+<a name="Chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Torus-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pie-chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.22 Chart &ndash; пример использования</h3>
+<a name="index-Chart-2"></a>
+<div class="float">
+<img src="../png/chart.png" alt="../png/chart">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData ch(7,2);
+ch.Modify(&quot;rnd+0.1&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Chart(ch,&quot;#&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+box
+chart ch
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,&quot;rnd+0.1&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_chart(gr,ch,&quot;#&quot;);
+mgl_delete_data(ch);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'#')
+call mgl_delete_data(ch)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ch = mglData(7,2);  ch.Modify(&quot;rnd+0.1&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Chart(ch,&quot;#&quot;);
+</pre><hr size="6">
+<a name="Pie-chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ring-chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pie-chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.23 Pie chart &ndash; пример использования</h3>
+<a name="index-Chart-3"></a>
+<a name="index-Axis-4"></a>
+<div class="float">
+<img src="../png/pie_chart.png" alt="../png/pie_chart">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData ch(7,2);
+ch.Modify(&quot;rnd+0.1&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;SetFunc(&quot;(y+1)/2*cos(pi*x)&quot;,&quot;(y+1)/2*sin(pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Chart(ch,&quot;bgr cmy#&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+1)/2*cos(pi*x)' '(y+1)/2*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,&quot;rnd+0.1&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_func(gr,&quot;(y+1)/2*cos(pi*x)&quot;,&quot;(y+1)/2*sin(pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_chart(gr,ch,&quot;bgr cmy#&quot;);
+mgl_delete_data(ch);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_func(gr,'(y+1)/2*cos(pi*x)','(y+1)/2*sin(pi*x)','');
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'bgr cmy#')
+call mgl_delete_data(ch)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ch = mglData(7,2);  ch.Modify(&quot;rnd+0.1&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.SetFunc(&quot;(y+1)/2*cos(pi*x)&quot;,&quot;(y+1)/2*sin(pi*x)&quot;);
+gr.Box();
+gr.Chart(ch,&quot;bgr cmy#&quot;);
+</pre><hr size="6">
+<a name="Ring-chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pie-chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ring-chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.24 Ring chart &ndash; пример использования</h3>
+<a name="index-Chart-4"></a>
+<a name="index-Axis-5"></a>
+<div class="float">
+<img src="../png/ring_chart.png" alt="../png/ring_chart">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData ch(7,2);
+ch.Modify(&quot;rnd+0.1&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;SetFunc(&quot;(y+2)/3*cos(pi*x)&quot;,&quot;(y+2)/3*sin(pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Chart(ch,&quot;bgr cmy#&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+2)/3*cos(pi*x)' '(y+2)/3*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,&quot;rnd+0.1&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_func(gr,&quot;(y+2)/3*cos(pi*x)&quot;,&quot;(y+2)/3*sin(pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_chart(gr,ch,&quot;bgr cmy#&quot;);
+mgl_delete_data(ch);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_func(gr,'(y+2)/3*cos(pi*x)','(y+2)/3*sin(pi*x)','');
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'bgr cmy#')
+call mgl_delete_data(ch)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ch = mglData(7,2);  ch.Modify(&quot;rnd+0.1&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.SetFunc(&quot;(y+2)/3*cos(pi*x)&quot;,&quot;(y+2)/3*sin(pi*x)&quot;);
+gr.Box();
+gr.Chart(ch,&quot;bgr cmy#&quot;);
+</pre><hr size="6">
+<a name="g_t2D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ring-chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-2D-g_0440_0430_0444_0438_043a_043e_0432"></a>
+<h2 class="section">9.2 Примеры 2D графиков</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf-sample">9.2.1 Surf &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transparent-surface-sample">9.2.2 Transparent surface &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surface-in-fog-sample">9.2.3 Surface in fog &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Sharp-colors-sample">9.2.4 Sharp colors &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mesh-sample">9.2.5 Mesh &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fall-sample">9.2.6 Fall &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Belt-sample">9.2.7 Belt &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tile-sample">9.2.8 Tile &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Boxs-sample">9.2.9 Boxs &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens-sample">9.2.10 Dens &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-sample">9.2.11 Cont &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF-sample">9.2.12 ContF &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContD-sample">9.2.13 ContD &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axial-sample">9.2.14 Axial &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grad-sample">9.2.15 Grad &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+</table>
+<hr size="6">
+<a name="Surf-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparent-surface-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.1 Surf &ndash; пример использования</h3>
+<a name="index-Surf-6"></a>
+<div class="float">
+<img src="../png/surf.png" alt="../png/surf">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Surf(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Surf(a);
+</pre><hr size="6">
+<a name="Transparent-surface-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surface-in-fog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transparent-surface-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.2 Transparent surface &ndash; пример использования</h3>
+<a name="index-Surf-7"></a>
+<a name="index-Alpha-2"></a>
+<div class="float">
+<img src="../png/surf_alpha.png" alt="../png/surf_alpha">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Surf(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surf a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Alpha(True);
+gr.Surf(a);
+</pre><hr size="6">
+<a name="Surface-in-fog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparent-surface-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Sharp-colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surface-in-fog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.3 Surface in fog &ndash; пример использования</h3>
+<a name="index-Surf-8"></a>
+<a name="index-Fog-2"></a>
+<div class="float">
+<img src="../png/surf_fog.png" alt="../png/surf_fog">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Fog(1);
+gr-&gt;Box();
+gr-&gt;Surf(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+fog 1
+box
+surf a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_fog(gr,1.,0.25);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_fog(gr,1.,0.25)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Fog(1);
+gr.Surf(a);
+</pre><hr size="6">
+<a name="Sharp-colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surface-in-fog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mesh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Sharp-colors-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.4 Sharp colors &ndash; пример использования</h3>
+<a name="index-Surf-9"></a>
+<div class="float">
+<img src="../png/surf_sl.png" alt="../png/surf_sl">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Surf(a,&quot;BbcyrR|&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a 'BbcyrR|'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,&quot;BbcyrR|&quot;);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'BbcyrR|')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Surf(a,&quot;BbcyrR|&quot;);
+</pre><hr size="6">
+<a name="Mesh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Sharp-colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fall-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mesh-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.5 Mesh &ndash; пример использования</h3>
+<a name="index-Mesh-3"></a>
+<div class="float">
+<img src="../png/mesh.png" alt="../png/mesh">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Mesh(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+mesh a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_mesh(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_mesh(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Mesh(a);
+</pre><hr size="6">
+<a name="Fall-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mesh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Belt-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fall-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.6 Fall &ndash; пример использования</h3>
+<a name="index-Fall-3"></a>
+<div class="float">
+<img src="../png/fall.png" alt="../png/fall">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Fall(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+fall a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_fall(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_fall(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Fall(a);
+</pre><hr size="6">
+<a name="Belt-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fall-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tile-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Belt-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.7 Belt &ndash; пример использования</h3>
+<a name="index-Belt-3"></a>
+<div class="float">
+<img src="../png/belt.png" alt="../png/belt">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Belt(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+belt a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_belt(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_belt(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Belt(a);
+</pre><hr size="6">
+<a name="Tile-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Belt-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Boxs-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tile-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.8 Tile &ndash; пример использования</h3>
+<a name="index-Tile-3"></a>
+<div class="float">
+<img src="../png/tile.png" alt="../png/tile">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Tile(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+tile a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_tile(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_tile(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Tile(a);
+</pre><hr size="6">
+<a name="Boxs-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tile-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Boxs-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.9 Boxs &ndash; пример использования</h3>
+<a name="index-Boxs-3"></a>
+<div class="float">
+<img src="../png/boxs.png" alt="../png/boxs">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);  gr-&gt;Light(true);
+gr-&gt;Org = mglPoint(0,0,0);
+gr-&gt;Box();
+gr-&gt;Boxs(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+origin 0 0 0
+box
+boxs a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_boxs(gr,a,0,0.);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_origin(gr,0.,0.,0.);
+call mgl_box(gr,1)
+call mgl_boxs(gr,a,'',0.)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);       gr.Light(True);
+gr.SetOrigin(0.,0.,0.); gr.Box();
+gr.Boxs(a);
+</pre><hr size="6">
+<a name="Dens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Boxs-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.10 Dens &ndash; пример использования</h3>
+<a name="index-Dens-3"></a>
+<a name="index-Colorbar-6"></a>
+<div class="float">
+<img src="../png/dens.png" alt="../png/dens">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Dens(a);
+gr-&gt;Colorbar();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+dens a
+colorbar
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_dens(gr,a,0,0);
+mgl_colorbar(gr,&quot;&quot;,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_dens(gr,a,'',0)
+call mgl_colorbar(gr,'',0)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.Dens(a);
+gr.Colorbar();
+</pre><hr size="6">
+<a name="Cont-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.11 Cont &ndash; пример использования</h3>
+<a name="index-Cont-5"></a>
+<div class="float">
+<img src="../png/cont.png" alt="../png/cont">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Cont(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+cont a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_cont(gr,a,0,7,NAN);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+real zero, nan
+! I don't know the NaN symbol in Fortran. So I produce it as zero/zero
+zero = 0; nan = zero/zero 
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_cont(gr,a,'',7,nan)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);
+gr.Box();
+gr.Cont(a);
+</pre><hr size="6">
+<a name="ContF-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContD-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.12 ContF &ndash; пример использования</h3>
+<a name="index-ContF-5"></a>
+<div class="float">
+<img src="../png/contf.png" alt="../png/contf">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);  gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;ContF(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+contf a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_contf(gr,a,0,7,NAN);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+real zero, nan
+! I don't know the NaN symbol in Fortran. So I produce it as zero/zero
+zero = 0; nan = zero/zero
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_contf(gr,a,'',7,nan)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.ContF(a);
+</pre><hr size="6">
+<a name="ContD-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axial-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContD-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.13 ContD &ndash; пример использования</h3>
+<a name="index-ContD-5"></a>
+<div class="float">
+<img src="../png/contd.png" alt="../png/contd">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40), v(9);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+v.Fill(-1,1);
+gr-&gt;Box();
+gr-&gt;ContD(v,a);
+gr-&gt;Colorbar(v);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+var v 9 -1 1
+box
+contd v a
+colorbar v
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+HMDT v = mgl_create_data_size(9,1,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_fill(v,-1.,1.,'x');
+mgl_box(gr,1);
+mgl_contd_val(gr,v,a,0,0);
+mgl_colorbar_val(gr,v,NULL,0);
+mgl_delete_data(a);
+mgl_delete_data(v);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, v, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+v = mgl_create_data_size(9,1,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_fill(v,-1.,1.,'x');
+call mgl_box(gr,1)
+call mgl_contd_val(gr,v,a,'',0);
+call mgl_colorbar_val(gr,v,NULL,0);
+call mgl_delete_data(a)
+call mgl_delete_data(v)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, v = mglData(50,40), mglData(9);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+v.Fill(-1,1);
+gr.Box();
+gr.ContD(v,a);
+gr.Colorbar(v);
+</pre><hr size="6">
+<a name="Axial-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContD-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grad-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axial-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.14 Axial &ndash; пример использования</h3>
+<a name="index-Axial-5"></a>
+<div class="float">
+<img src="../png/axial.png" alt="../png/axial">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Axial(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+axial a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_axial(gr,a,&quot;&quot;,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_axial(gr,a,'',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.Box();
+gr.Axial(a);
+</pre><hr size="6">
+<a name="Grad-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axial-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grad-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.15 Grad &ndash; пример использования</h3>
+<a name="index-Grad-4"></a>
+<div class="float">
+<img src="../png/grad.png" alt="../png/grad">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();  gr-&gt;Alpha(true);    gr-&gt;Dens(a);
+gr-&gt;Grad(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box:alpha on:dens a
+grad a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_set_alpha(gr,1);
+mgl_dens(gr,a,0,0);
+mgl_grad(gr,a,0,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_dens(gr,a,'',0)
+call mgl_grad(gr,a,'',0)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();   gr.Alpha(1);    gr.Dens(a);
+gr.Colorbar();
+</pre><hr size="6">
+<a name="g_t3D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grad-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-3D-g_0440_0430_0444_0438_043a_043e_0432"></a>
+<h2 class="section">9.3 Примеры 3D графиков</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf3-sample">9.3.1 Surf3 &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cloud-sample">9.3.2 Cloud &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CloudP-sample">9.3.3 CloudP &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens3-sample">9.3.4 Dens3 &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont3-sample">9.3.5 Cont3 &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF3-sample">9.3.6 ContF3 &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-projection-sample">9.3.7 Cont projection &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens-projection-sample">9.3.8 Dens projection &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutMinMax-sample">9.3.9 CutMinMax &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutOff-sample">9.3.11 CutOff &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+<hr size="6">
+<a name="Surf3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cloud-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.1 Surf3 &ndash; пример использования</h3>
+<a name="index-Surf3-5"></a>
+<div class="float">
+<img src="../png/surf3.png" alt="../png/surf3">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Surf3(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+box
+surf3 a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf3(gr,a,0,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.Box();
+gr.Surf3(a);
+</pre><hr size="6">
+<a name="Cloud-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CloudP-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cloud-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.2 Cloud &ndash; пример использования</h3>
+<a name="index-Cloud-2"></a>
+<div class="float">
+<img src="../png/cloud.png" alt="../png/cloud">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Cloud(a,&quot;wyrRk&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+box
+cloud a 'wyrRk'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_cloud(gr,a,&quot;wyrRk&quot;,1.);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_cloud(gr,a,'wyrRk',1.)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Alpha(True);
+gr.Box();
+gr.Cloud(a,&quot;wyrRk&quot;);
+</pre><hr size="6">
+<a name="CloudP-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cloud-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CloudP-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.3 CloudP &ndash; пример использования</h3>
+<a name="index-CloudP-3"></a>
+<div class="float">
+<img src="../png/cloudp.png" alt="../png/cloudp">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;CloudP(a,&quot;wyrRk&quot;);
+</pre><p><strong>MGL скрипт</strong>
+Not available.
+<strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_cloudp(gr,a,&quot;wyrRk&quot;,1.);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_cloudp(gr,a,'wyrRk',1.)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+Not available.
+</p><hr size="6">
+<a name="Dens3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CloudP-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.4 Dens3 &ndash; пример использования</h3>
+<a name="index-Dens3-3"></a>
+<a name="index-Axis-6"></a>
+<div class="float">
+<img src="../png/densa.png" alt="../png/densa">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);  gr-&gt;Alpha(true);    gr-&gt;Org = mglPoint(0,0,0);
+gr-&gt;Box();
+gr-&gt;DensA(a);
+gr-&gt;Axis();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+origin 0 0 0
+box
+densa a
+axis
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_alpha(gr,1);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_dens3_all(gr,a,0);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_alpha(gr,1)
+call mgl_set_origin(gr,0.,0.,0.);
+call mgl_box(gr,1)
+call mgl_dens3_all(gr,a,'')
+call mgl_axis(gr,&quot;xyz&quot;)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);       gr.Alpha(True);
+gr.SetOrigin(0,0,0);    gr.Box();
+gr.Axis();
+gr.DensA(a);
+</pre><hr size="6">
+<a name="Cont3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.5 Cont3 &ndash; пример использования</h3>
+<a name="index-Cont3-5"></a>
+<div class="float">
+<img src="../png/conta.png" alt="../png/conta">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;ContA(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+conta a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_cont_all(gr,a,0,7);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_cont_all(gr,a,'',7)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);
+gr.Box();
+gr.ContA(a);
+</pre><hr size="6">
+<a name="ContF3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-projection-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.6 ContF3 &ndash; пример использования</h3>
+<a name="index-ContF3-5"></a>
+<div class="float">
+<img src="../png/contfa.png" alt="../png/contfa">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);  gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;ContFA(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+box
+contfa a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_contf_all(gr,a,0,7);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_contf_all(gr,a,'',7)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.ContFA(a);
+</pre><hr size="6">
+<a name="Cont-projection-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens-projection-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-projection-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.7 Cont projection &ndash; пример использования</h3>
+<a name="index-ContX-3"></a>
+<a name="index-ContY-3"></a>
+<a name="index-ContZ-3"></a>
+<div class="float">
+<img src="../png/cont_xyz.png" alt="../png/cont_xyz">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;ContX(a.Sum(&quot;x&quot;),&quot;&quot;,-1);
+gr-&gt;ContY(a.Sum(&quot;y&quot;),&quot;&quot;,1);
+gr-&gt;ContZ(a.Sum(&quot;z&quot;),&quot;&quot;,-1);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+contx s '' -1
+sum s a 'y'
+conty s '' 1
+sum s a 'z'
+contz s '' -1
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40), s;
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+s=mgl_data_sum(a,&quot;x&quot;); mgl_cont_x(gr,s,0,-1.,7); mgl_delete_data(s);
+s=mgl_data_sum(a,&quot;y&quot;); mgl_cont_y(gr,s,0,1.,7); mgl_delete_data(s);
+s=mgl_data_sum(a,&quot;z&quot;); mgl_cont_z(gr,s,0,-1.,7); mgl_delete_data(s);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,s, mgl_create_data_size, mgl_data_sum
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+s=mgl_data_sum(a,'x')
+call mgl_cont_x(gr,s,'',-1.,7)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'y')
+call mgl_cont_y(gr,s,'',1.,7)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'z')
+call mgl_cont_z(gr,s,'',-1.,7)
+call mgl_delete_data(s)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);               gr.Box();
+gr.ContX(a.Sum(&quot;x&quot;),&quot;&quot;,-1);
+gr.ContY(a.Sum(&quot;y&quot;),&quot;&quot;,1);
+gr.ContZ(a.Sum(&quot;z&quot;),&quot;&quot;,-1);
+</pre><hr size="6">
+<a name="Dens-projection-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-projection-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutMinMax-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-projection-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.8 Dens projection &ndash; пример использования</h3>
+<a name="index-DensX-2"></a>
+<a name="index-DensY-2"></a>
+<a name="index-DensZ-2"></a>
+<div class="float">
+<img src="../png/dens_xyz.png" alt="../png/dens_xyz">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;DensX(a.Sum(&quot;x&quot;),&quot;&quot;,-1);
+gr-&gt;DensY(a.Sum(&quot;y&quot;),&quot;&quot;,1);
+gr-&gt;DensZ(a.Sum(&quot;z&quot;),&quot;&quot;,-1);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+densx s '' -1
+sum s a 'y'
+densy s '' 1
+sum s a 'z'
+densz s '' -1
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a, s; a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+s=mgl_data_sum(a,&quot;x&quot;); mgl_dens_x(gr,s,0,-1.); mgl_delete_data(s);
+s=mgl_data_sum(a,&quot;y&quot;); mgl_dens_y(gr,s,0,1.); mgl_delete_data(s);
+s=mgl_data_sum(a,&quot;z&quot;); mgl_dens_z(gr,s,0,-1.); mgl_delete_data(s);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,s, mgl_create_data_size, mgl_data_sum
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+s=mgl_data_sum(a,'x')
+call mgl_dens_x(gr,s,'',-1.)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'y')
+call mgl_dens_y(gr,s,'',1.)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'z')
+call mgl_dens_z(gr,s,'',-1.)
+call mgl_delete_data(s)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);               gr.Box();
+gr.DensX(a.Sum(&quot;x&quot;),&quot;&quot;,-1);
+gr.DensY(a.Sum(&quot;y&quot;),&quot;&quot;,1);
+gr.DensZ(a.Sum(&quot;z&quot;),&quot;&quot;,-1);
+</pre><hr size="6">
+<a name="CutMinMax-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens-projection-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Isocaps-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutMinMax-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.9 CutMinMax &ndash; пример использования</h3>
+<a name="index-Surf3-6"></a>
+<a name="index-CutMin"></a>
+<a name="index-CutMax"></a>
+<div class="float">
+<img src="../png/cutminmax.png" alt="../png/cutminmax">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;CutMin = mglPoint(0,-1,-1); gr-&gt;CutMax = mglPoint(1,0,1);
+gr-&gt;Box();
+gr-&gt;Surf3(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut 0 -1 -1 1 0 1
+box
+surf3 a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.);
+mgl_box(gr,1);
+mgl_surf3(gr,a,0,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.);
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.SetCutBox(0,-1,-1,1,0,1);    gr.Box();
+gr.Surf3(a);
+</pre><hr size="6">
+<a name="Isocaps-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutMinMax-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutOff-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Isocaps_0027_0027-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</h3>
+<a name="index-Surf3-7"></a>
+<a name="index-ContF3-6"></a>
+<a name="index-CutMin-1"></a>
+<a name="index-CutMax-1"></a>
+<div class="float">
+<img src="../png/cutminmax2.png" alt="../png/cutminmax2">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(61,51,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;CutMin = mglPoint(0,-1,-1); gr-&gt;CutMax = mglPoint(1,0,1.1);
+gr-&gt;Box();
+gr-&gt;Surf3(-1,a);
+gr-&gt;ContF3(a,'x',-1); gr-&gt;ContF3(a,'y',-1);
+gr-&gt;ContF3(a,'z', 0); gr-&gt;ContF3(a,'z',39);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 61 51 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+cut 0 -1 -1 1 0 1.1
+box
+surf3 a -1
+contf3 a 'x' -1
+contf3 a 'y' -1
+contf3 a 'z' 0
+contf3 a 'z' 39
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(61,51,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.1);
+mgl_box(gr,1);
+mgl_surf3_val(gr,-1.,a,0);
+mgl_contf3(gr,a,'x',-1, &quot;&quot;, 7);
+mgl_contf3(gr,a,'y',-1, &quot;&quot;, 7);
+mgl_contf3(gr,a,'z', 0, &quot;&quot;, 7);
+mgl_contf3(gr,a,'z',39, &quot;&quot;, 7);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">a = mgl_create_data_size(61,51,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.1);
+call mgl_box(gr,1)
+call mgl_surf3_val(gr,-1.,a,'')
+call mgl_contf3(gr,a,'x',-1, '', 7);
+call mgl_contf3(gr,a,'y',-1, '', 7);
+call mgl_contf3(gr,a,'z', 0, '', 7);
+call mgl_contf3(gr,a,'z',39, '', 7);
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(61,51,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.SetCutBox(0,-1,-1,1,0,1.1);    gr.Box();
+gr.Surf3(-1,a);
+gr.ContF3(a,&quot;x&quot;,-1);    gr.ContF3(a,&quot;y&quot;,-1);
+gr.ContF3(a,&quot;z&quot;,0);     gr.ContF3(a,&quot;z&quot;,39);
+</pre><hr size="6">
+<a name="CutOff-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Isocaps-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutOff-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.11 CutOff &ndash; пример использования</h3>
+<a name="index-Surf3-8"></a>
+<a name="index-CutOff-2"></a>
+<div class="float">
+<img src="../png/surf3_cutoff.png" alt="../png/surf3_cutoff">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;CutOff(&quot;(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)&quot;);
+gr-&gt;Box();
+gr-&gt;Surf3(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut '(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)'
+box
+surf3 a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_set_cutoff(gr,&quot;(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)&quot;);
+mgl_box(gr,1);
+mgl_surf3(gr,a,0,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,'-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)',0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_set_cutoff(gr,'(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)')
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(61,51,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.CutOff(&quot;(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)&quot;);
+gr.Box();
+gr.Surf3(a);
+</pre><hr size="6">
+<a name="Dual-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutOff-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfC-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-_043f_0430_0440_043d_044b_0445_002f_0432e_043a_0442_043e_0440_043d_044b_0445-g_0440_0430_0444_0438_043a_043e_0432"></a>
+<h2 class="section">9.4 Примеры парных/векторных графиков</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#SurfC-sample">9.4.1 SurfC &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#SurfA-sample">9.4.2 SurfA &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TileS-sample">9.4.3 TileS &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Map-sample">9.4.4 Map &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Traj-sample">9.4.5 Traj &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect-sample">9.4.6 Vect &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectL-sample">9.4.7 VectL &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectC-sample">9.4.8 VectC &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-sample">9.4.9 Flow &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe-sample">9.4.10 Pipe &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dew-sample">9.4.11 Dew &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3C-sample">9.4.12 Surf3C &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3A-sample">9.4.13 Surf3A &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect-3D-sample">9.4.14 Vect 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectL-3D-sample">9.4.15 VectL 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectC-3D-sample">9.4.16 VectC 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-3D-sample">9.4.17 Flow 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe-3D-sample">9.4.18 Pipe 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Crust-sample">9.4.19 Crust &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dots-sample">9.4.20 Dots &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+</table>
+<hr size="6">
+<a name="SurfC-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfA-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfC-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.1 SurfC &ndash; пример использования</h3>
+<a name="index-SurfC-3"></a>
+<div class="float">
+<img src="../png/surfc.png" alt="../png/surfc">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40), b(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;SurfC(a,b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surfc a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+HMDT b = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surfc(gr,a,b,0);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surfc(gr,a,b,'')
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(50,40), mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.SurfC(a,b);
+</pre><hr size="6">
+<a name="SurfA-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfC-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TileS-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfA-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.2 SurfA &ndash; пример использования</h3>
+<a name="index-SurfA-3"></a>
+<div class="float">
+<img src="../png/surfa.png" alt="../png/surfa">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40), b(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;SurfA(a,b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surfa a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a, b;
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surfa(gr,a,b,0);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1);
+call mgl_box(gr,1)
+call mgl_surfa(gr,a,b,'')
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(50,40), mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.Box();
+gr.SurfC(a,b);
+</pre><hr size="6">
+<a name="TileS-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfA-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Map-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TileS-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.3 TileS &ndash; пример использования</h3>
+<a name="index-TileS-3"></a>
+<div class="float">
+<img src="../png/tiles.png" alt="../png/tiles">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40), b(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;TileS(a,b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+tile a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a, b;
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_tiles(gr,a,b,0);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_tiles(gr,a,b,'')
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(50,40), mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.TileS(a,b);
+</pre><hr size="6">
+<a name="Map-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TileS-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Traj-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Map-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.4 Map &ndash; пример использования</h3>
+<a name="index-Map-3"></a>
+<div class="float">
+<img src="../png/map.png" alt="../png/map">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50, 40), b(50, 40);
+gr-&gt;Puts(mglPoint(0, 0), &quot;\\to&quot;, &quot;&quot;, -1.4);
+gr-&gt;Axis(mglPoint(-1,-1,-2),mglPoint(1,1,2));
+gr-&gt;SubPlot(2, 1, 0);
+a.Fill(&quot;x&quot;, gr-&gt;Min, gr-&gt;Max);	b.Fill(&quot;y&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Puts(mglPoint(0, 1.1), &quot;\\{x, y\\}&quot;, &quot;C&quot;, -2);		gr-&gt;Box();
+gr-&gt;Map(a, b, &quot;brgk&quot;, 0, false);
+gr-&gt;SubPlot(2, 1, 1);
+a.Fill(&quot;(x^3+y^3)/2&quot;, gr-&gt;Min, gr-&gt;Max);
+b.Fill(&quot;(x-y)/2&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Puts(mglPoint(0, 1.1), &quot;\\{\\frac{x^3+y^3}{2}, \\frac{x-y}{2}\\}&quot;, &quot;C&quot;, -2);
+gr-&gt;Box();
+gr-&gt;Map(a, b, &quot;brgk&quot;, 0, false);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+text 0 0 '\to'
+zrange -2 2
+subplot 2 1 0
+text 0 1.1 '\{x, y\}' '' -2
+box
+fill a 'x'
+fill b 'y'
+map a b 'brgk' 0 0
+subplot 2 1 1
+text 0 1.1 '\{\frac{x^3+y^3}{2}, \frac{x-y}{2}\}' '' -2
+box
+fill a '(x^3+y^3)/2'
+fill b '(x-y)/2'
+map a b 'brgk' 0 0
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+HMDT b = mgl_create_data_size(50,40,1);
+mgl_puts_ext(gr, 0.,0.,0., &quot;\\to&quot;, &quot;&quot;, -1.4, 't');
+mgl_set_axis_3d(gr,-1.,-1.,-2.,1.,1.,2.);
+mgl_subplot(gr, 2, 1, 0);
+mgl_data_fill_eq(gr, a, &quot;x&quot;, 0, 0);
+mgl_data_fill_eq(gr, b, &quot;y&quot;, 0, 0);
+mgl_puts_ext(gr, 0.,1.1,0., &quot;\\{x, y\\}&quot;, &quot;C&quot;, -2., 't');
+mgl_box(gr,1);
+mgl_map(gr, a, b, &quot;brgk&quot;, 0, 0);
+mgl_subplot(gr, 2, 1, 1);
+mgl_data_fill_eq(gr, a, &quot;(x^3+y^3)/2&quot;, 0, 0);
+mgl_data_fill_eq(gr, b, &quot;(x-y)/2&quot;, 0, 0);
+mgl_puts_ext(gr, 0.,1.1,0., &quot;\\{\\frac{x^3+y^3}{2}, \\frac{x-y}{2}\\}&quot;, &quot;C&quot;, -2., 't');
+mgl_box(gr,1);
+mgl_map(gr, a, b, &quot;brgk&quot;, 0, 0);
+mgl_box(gr,1);
+mgl_map(gr,a,b,0,0,1);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_puts_ext(gr, 0.,0.,0., '\to', '', -1.4, 't');
+call mgl_set_axis_3d(gr,-1.,-1.,-2.,1.,1.,2.);
+call mgl_subplot(gr, 2, 1, 0);
+call mgl_data_fill_eq(gr, a, 'x', 0, 0);
+call mgl_data_fill_eq(gr, b, 'y', 0, 0);
+call mgl_puts_ext(gr, 0.,1.1,0., '\{x, y\}', 'C', -2., 't');
+call mgl_box(gr,1);
+call mgl_map(gr, a, b, 'brgk', 0, 0);
+call mgl_subplot(gr, 2, 1, 1);
+call mgl_data_fill_eq(gr, a, '(x^3+y^3)/2', 0, 0);
+call mgl_data_fill_eq(gr, b, '(x-y)/2', 0, 0);
+call mgl_puts_ext(gr, 0.,1.1,0., '\{\frac{x^3+y^3}{2}, \frac{x-y}{2}\}', 'C', -2., 't');
+call mgl_box(gr,1);
+call mgl_map(gr, a, b, 'brgk', 0, 0);
+call mgl_box(gr,1);
+call mgl_map(gr,a,b,0,0,1);
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(50,40), mglData(50,40);
+gr.Puts(0, 0, 0, &quot;\\to&quot;, &quot;&quot;, -1.4);
+gr.SetRanges(-1,1,-1,1,-2,2);
+gr.SubPlot(2, 1, 0);
+gr.Fill(a, &quot;x&quot;);    gr.Fill(b, &quot;y&quot;);
+gr.Puts(0, 1.1, 0, &quot;\\{x, y\\}&quot;, &quot;C&quot;, -2);
+gr.Box();
+gr.Map(a, b, &quot;brgk&quot;, 0, 0);
+gr.SubPlot(2, 1, 1);
+gr.Fill(a, &quot;(x^3+y^3)/2&quot;);   gr.Fill(b, &quot;(x-y)/2&quot;);
+gr.Puts(0, 1.1, 0, &quot;\\{\\frac{x^3+y^3}{2}, \\frac{x-y}{2}\\}&quot;, &quot;C&quot;, -2);
+gr.Box();
+gr.Map(a, b, &quot;brgk&quot;, 0, 0);
+</pre><hr size="6">
+<a name="Traj-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Map-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Traj-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.5 Traj &ndash; пример использования</h3>
+<a name="index-Traj-3"></a>
+<div class="float">
+<img src="../png/traj.png" alt="../png/traj">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3), x(50), y1(50), y2(50);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+y2.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+x.Fill(-1,1,'x');
+gr-&gt;Box();
+gr-&gt;Plot(x,y);
+gr-&gt;Traj(x,y,y1,y2);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+new x 50
+new y1 50
+new y2 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+fill x -1 1
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+box
+plot x y
+traj x y y1 y2
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+HMDT x= mgl_create_data_size(50,1,1);
+HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_data_modify(x,&quot;2*x-1&quot;,0);
+mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_plot_xy(gr,x,y,NULL);
+mgl_traj_xy(gr,yx,y,y1,y2,NULL,0,0);
+mgl_delete_data(y);  mgl_delete_data(y1);
+mgl_delete_data(x);  mgl_delete_data(y2);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer x,y,y1,y2, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+x= mgl_create_data_size(50,1,1);
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_data_modify(x,'2*x-1',0);
+call mgl_data_modify(y1,'0.5+0.3*cos(2*pi*x)',0);
+call mgl_data_modify(y2,'0.3*sin(2*pi*x)',0);
+call mgl_box(gr,1)
+call mgl_plot_xy(gr,x,y,NULL);
+call mgl_traj_xy(gr,yx,y,y1,y2,NULL,0,0);
+call mgl_delete_data(y)
+call mgl_delete_data(x)
+call mgl_delete_data(y1)
+call mgl_delete_data(y2)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">x,y,y1,y2 = mglData(50), mglData(50,3), mglData(50), mglData(50);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+y2.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+x.Fill(-1,1,'x');
+gr.Box();
+gr.Plot(x,y);
+gr.Traj(x,y,y1,y2);
+</pre><hr size="6">
+<a name="Vect-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Traj-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectL-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.6 Vect &ndash; пример использования</h3>
+<a name="index-Vect-5"></a>
+<div class="float">
+<img src="../png/vect.png" alt="../png/vect">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Vect(a,b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vect a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_vect_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_vect_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.Vect(a,b);
+</pre><hr size="6">
+<a name="VectL-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectC-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectL-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.7 VectL &ndash; пример использования</h3>
+<a name="index-VectL"></a>
+<div class="float">
+<img src="../png/vectl.png" alt="../png/vectl">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;VectL(a,b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectl a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a, b;
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_vectl_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_vectl_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.VectL(a,b);
+</pre><hr size="6">
+<a name="VectC-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectL-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectC-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.8 VectC &ndash; пример использования</h3>
+<a name="index-VectC"></a>
+<div class="float">
+<img src="../png/vectc.png" alt="../png/vectc">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;VectC(a,b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectc a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a, b;
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_vectc_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_vectc_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.VectC(a,b);
+</pre><hr size="6">
+<a name="Flow-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectC-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.9 Flow &ndash; пример использования</h3>
+<a name="index-Flow-5"></a>
+<div class="float">
+<img src="../png/flow.png" alt="../png/flow">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Flow(a,b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+flow a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_flow_2d(gr,a,b,0,5,1,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_flow_2d(gr,a,b,'',5,1,0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.Flow(a,b);
+</pre><hr size="6">
+<a name="Pipe-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dew-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.10 Pipe &ndash; пример использования</h3>
+<a name="index-Pipe-5"></a>
+<div class="float">
+<img src="../png/pipe.png" alt="../png/pipe">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Pipe(a,b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+box
+pipe a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_pipe_2d(gr,a,b,0,0.05,5,1,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_pipe_2d(gr,a,b,'',0.05,5,1,0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Light(True);    gr.Box();
+gr.Pipe(a,b);
+</pre><hr size="6">
+<a name="Dew-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3C-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dew-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.11 Dew &ndash; пример использования</h3>
+<a name="index-Dew-3"></a>
+<div class="float">
+<img src="../png/dew.png" alt="../png/dew">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Light(true);
+gr-&gt;Dew(a,b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+light on
+dew a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_set_light(gr,1);
+mgl_dew_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_set_light(gr,1);
+call mgl_dew_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Light(True);    gr.Box();
+gr.Dew(a,b);
+</pre><hr size="6">
+<a name="Surf3C-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dew-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3A-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3C-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.12 Surf3C &ndash; пример использования</h3>
+<a name="index-Surf3C-5"></a>
+<div class="float">
+<img src="../png/surf3c.png" alt="../png/surf3c">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40), b(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+b.Modify(&quot;1-2*tanh(4*(x+y-1)^2)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Surf3C(a, b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3c a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+HMDT b = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_data_modify(b,&quot;1-2*tanh(4*(x+y-1)^2)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf3c(gr,a,b,0,3);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+b = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_data_modify(b,&quot;1-2*tanh(4*(x+y-1)^2)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf3c(gr,a,b,'',3)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(60,50,40), mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2+(2*y-1)^2+(2*z-1)^4-(2*z-1)^2-0.1)&quot;);
+b.Modify(&quot;1-2*tanh(4*(x+y-1)^2)&quot;);
+gr.Rotate(40,60);   gr.Light(True);     gr.Alpha(True);
+gr.Box();
+gr.Surf3C(a,b);
+</pre><hr size="6">
+<a name="Surf3A-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3C-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3A-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.13 Surf3A &ndash; пример использования</h3>
+<a name="index-Surf3A-5"></a>
+<div class="float">
+<img src="../png/surf3a.png" alt="../png/surf3a">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40), b(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+b.Modify(&quot;1-2*tanh(4*(x+y-1)^2)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Surf3A(a, b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3a a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a, b; a = mgl_create_data_size(60,50,40);
+b = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_data_modify(b,&quot;1-2*tanh(4*(x+y-1)^2)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf3a(gr,a,b,0,3);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+b = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_data_modify(b,&quot;1-2*tanh(4*(x+y-1)^2)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf3a(gr,a,b,'',3)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(60,50,40), mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2+(2*y-1)^2+(2*z-1)^4-(2*z-1)^2-0.1)&quot;);
+b.Modify(&quot;1-2*tanh(4*(x+y-1)^2)&quot;);
+gr.Rotate(40,60);   gr.Light(True);     gr.Alpha(True);
+gr.Box();
+gr.Surf3A(a,b);
+</pre><hr size="6">
+<a name="Vect-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3A-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectL-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.14 Vect 3D &ndash; пример использования</h3>
+<a name="index-Vect-6"></a>
+<div class="float">
+<img src="../png/vect3.png" alt="../png/vect3">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Vect(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vect ex ey ez 'bwr'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_vect_3d(gr,ex,ey,ez,&quot;bwr&quot;);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_vect_3d(gr,ex,ey,ez,'bwr')
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.Vect(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="VectL-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectC-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectL-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.15 VectL 3D &ndash; пример использования</h3>
+<a name="index-VectL-1"></a>
+<div class="float">
+<img src="../png/vectl3.png" alt="../png/vectl3">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;VectL(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectl ex ey ez 'bwr'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_vectl_3d(gr,ex,ey,ez,&quot;bwr&quot;);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_vectl_3d(gr,ex,ey,ez,'bwr')
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.VectL(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="VectC-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectL-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectC-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.16 VectC 3D &ndash; пример использования</h3>
+<a name="index-VectC-1"></a>
+<div class="float">
+<img src="../png/vectc3.png" alt="../png/vectc3">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;VectC(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectc ex ey ez 'bwr'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_vectc_3d(gr,ex,ey,ez,&quot;bwr&quot;);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_vectc_3d(gr,ex,ey,ez,'bwr')
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.VectC(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="Flow-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectC-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.17 Flow 3D &ndash; пример использования</h3>
+<a name="index-Flow-6"></a>
+<div class="float">
+<img src="../png/flow3.png" alt="../png/flow3">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData ex(30,30,30), ey(30,30,30), ez(30,30,30);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Flow(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new ex 30 30 30
+new ey 30 30 30
+new ez 30 30 30
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+flow ex ey ez 'bwr'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(30,30,30);
+ey = mgl_create_data_size(30,30,30);
+ez = mgl_create_data_size(30,30,30);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_flow_3d(gr,ex,ey,ez,&quot;bwr&quot;,3,1);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(30,30,30)
+ey = mgl_create_data_size(30,30,30)
+ez = mgl_create_data_size(30,30,30)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_flow_3d(gr,ex,ey,ez,'bwr',3,1)
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.Flow(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="Pipe-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Crust-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.18 Pipe 3D &ndash; пример использования</h3>
+<a name="index-Pipe-6"></a>
+<div class="float">
+<img src="../png/pipe3.png" alt="../png/pipe3">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Pipe(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+light on
+box
+pipe ex ey ez 'bwr'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_pipe_3d(gr,ex,ey,ez,&quot;bwr&quot;,0.05,3,1);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1);
+call mgl_box(gr,1);
+call mgl_pipe_3d(gr,ex,ey,ez,'bwr',0.05,3,1)
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Pipe(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="Crust-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dots-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Crust-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.19 Crust &ndash; пример использования</h3>
+<a name="index-Crust-3"></a>
+<div class="float">
+<img src="../png/crust.png" alt="../png/crust">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(&quot;hotdogs.pts&quot;);
+a.Norm(-1,1,true);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Crust(a,&quot;p&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+light on
+box
+crust a 'p'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_file(&quot;hotdogs.pts&quot;);
+mgl_data_norm(a,-1.,1.,1,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_crust_tr(gr,a,&quot;p&quot;,0.);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_file
+a = mgl_create_data_file(&quot;hotdogs.pts&quot;)
+call mgl_data_norm(a,-1.,1.,1,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_crust_tr(gr,a,&quot;p&quot;,0.)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(&quot;hotdogs.pts&quot;);
+a.Norm(-1,1,True);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Crust(a);
+</pre><hr size="6">
+<a name="Dots-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Crust-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dots-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.20 Dots &ndash; пример использования</h3>
+<a name="index-Dots-4"></a>
+<div class="float">
+<img src="../png/dots.png" alt="../png/dots">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(&quot;hotdogs.pts&quot;);
+a.Norm(-1,1,true);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Dots(a,&quot;p&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+box
+dots a 'p'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_file(&quot;hotdogs.pts&quot;);
+mgl_data_norm(a,-1.,1.,1,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_dots_tr(gr,a,&quot;p&quot;);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_file
+a = mgl_create_data_file(&quot;hotdogs.pts&quot;)
+call mgl_data_norm(a,-1.,1.,1,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_dots_tr(gr,a,&quot;p&quot;)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(&quot;hotdogs.pts&quot;);
+a.Norm(-1,1,True);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Dots(a);
+</pre>
+
+<hr size="6">
+<a name="Basic-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dots-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0411_0430_0437_043e_0432_044be-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438"></a>
+<h2 class="section">9.5 Базовые возможности</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t1D-plot-sample">9.5.1 Пример графиков 1D данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plot-sample">9.5.2 Пример графиков 2D данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plot-sample">9.5.3 Пример графиков 3D данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Line-styles-sample">9.5.4 Пример стилей линий и маркеров</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Arrow-styles-sample">9.5.5 Пример стилей стрелок</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-styles-sample">9.5.6 Пример стилей текста</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TeX-parsing-sample">9.5.7 Пример TeX формулы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-faces-sample">9.5.8 Примеры начертаний шрифта</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Colors-sample">9.5.9 Примеры цветов</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Color-schemes-sample">9.5.10 Примеры цветовых схем</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Normal-transparency">9.5.11 Обычная прозрачность</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Glass_002dlike-transparency">9.5.12 &quot;Стеклянная&quot; прозрачность</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lamp_002dlike-transparency">9.5.13 &quot;Ламповая&quot; прозрачность</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+</table>
+<hr size="6">
+<a name="g_t1D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Basic-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-1D-_0434_0430_043d_043d_044b_0445"></a>
+<h3 class="subsection">9.5.1 Пример графиков 1D данных</h3>
+<a name="index-Plot-8"></a>
+<a name="index-Bars-8"></a>
+<a name="index-SubPlot-3"></a>
+<div class="float">
+<img src="../png/sample8.png" alt="../png/sample8">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y0(50);		y0.Modify(&quot;sin(pi*(2*x-1))&quot;);
+gr-&gt;SubPlot(2,2,0);
+gr-&gt;Plot(y0);		gr-&gt;Box();
+
+gr-&gt;SubPlot(2,2,1);
+mglData y1(50,2);
+y1.Modify(&quot;sin(pi*2*x-pi)&quot;);	y1.Modify(&quot;cos(pi*2*x-pi)/2&quot;,1);
+gr-&gt;Plot(y1);		gr-&gt;Box();
+
+mglData x(50);		x.Modify(&quot;cos(pi*2*x-pi)&quot;);
+gr-&gt;Plot(x,y0,&quot;Y+&quot;);
+
+gr-&gt;Plot(y1.SubData(-1,0),y1.SubData(-1,1),&quot;q|&quot;);
+
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(60,40);
+mglData z(50);		z.Modify(&quot;2*x-1&quot;);
+gr-&gt;Plot(x,y0,z);		gr-&gt;Box();
+
+mglData y2(10,3);	y2.Modify(&quot;cos(pi*(2*x-1-y))&quot;);
+y2.Modify(&quot;2*x-1&quot;,2);
+gr-&gt;Plot(y2.SubData(-1,0),y2.SubData(-1,1),y2.SubData(-1,2),&quot;bo &quot;);
+
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(60,40);
+gr-&gt;Bars(x,y0,z,&quot;ri&quot;);		gr-&gt;Box();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y0 50: modify y0 'sin(pi*(2*x-1))'
+subplot 2 2 0
+plot y0: box
+
+subplot 2 2 1
+new y1 50 2
+modify y1 'sin(pi*2*x-pi)'
+modify y1 'cos(pi*2*x-pi)/2' 1
+plot y1: box
+
+new x 50: modify x 'cos(pi*2*x-pi)'
+plot x y0 'Y+'
+plot y1(:,0) y(:,1) 'q|'
+
+subplot 2 2 2:rotate 60 40
+new z 50:   modify z '2*x-1'
+plot x y0 z 'g':box
+new y2 10 3
+modify y2 'cos(pi*(2*x-1-y))'
+modify y2 '2*x-1' 2
+plot y2(:,0) y2(:,1) y2(:,2) 'bo '
+
+subplot 2 2 3:rotate 60 40
+bars x y0 z 'r':box
+</pre><hr size="6">
+<a name="g_t2D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-2D-_0434_0430_043d_043d_044b_0445"></a>
+<h3 class="subsection">9.5.2 Пример графиков 2D данных</h3>
+<a name="index-Surf-10"></a>
+<a name="index-Dens-4"></a>
+<a name="index-Alpha-3"></a>
+<div class="float">
+<img src="../png/sample9.png" alt="../png/sample9">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Light(true);
+mglData a0(50,40);
+a0.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(60,40);
+gr-&gt;Surf(a0);       gr-&gt;Box();
+
+mglData x(50,40),y(50,40),z(50,40);
+x.Modify(&quot;0.8*sin(2*pi*x)*sin(pi*y)&quot;);
+y.Modify(&quot;0.8*cos(2*pi*x)*sin(pi*y)&quot;);
+z.Modify(&quot;0.8*cos(pi*y)&quot;);
+gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(60,40);
+gr-&gt;Surf(x,y,z,&quot;BbwrR&quot;);    gr-&gt;Box();
+
+mglData a1(50,40,3);
+a1.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+a1.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*sin(3*pi*(x*y))&quot;,1);
+a1.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,2);
+gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(60,40);
+gr-&gt;Alpha(true);
+gr-&gt;Surf(a1);       gr-&gt;Box();
+
+gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(60,40);
+gr-&gt;Dens(a1);       gr-&gt;Box();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">light on
+
+new a0 50 40
+modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+subplot 2 2 0:rotate 60 40
+surf a0: box
+
+new x 50 40: new y 50 40: new z 50 40
+modify x '0.8*sin(2*pi*x)*sin(pi*y)'
+modify y '0.8*cos(2*pi*x)*sin(pi*y)'
+modify z '0.8*cos(pi*y)'
+subplot 2 2 1:rotate 60 40
+surf x y z 'bbwrr': box
+
+new a1 50 40 3
+modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
+subplot 2 2 2:rotate 60 40
+alpha on
+surf a1: box
+
+subplot 2 2 3: rotate 60 40
+dens a1: box
+</pre><hr size="6">
+<a name="g_t3D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Line-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-3D-_0434_0430_043d_043d_044b_0445"></a>
+<h3 class="subsection">9.5.3 Пример графиков 3D данных</h3>
+<a name="index-Surf-11"></a>
+<a name="index-Dens-5"></a>
+<a name="index-Alpha-4"></a>
+<div class="float">
+<img src="../png/sampleb.png" alt="../png/sampleb">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true);	gr-&gt;Light(true);	gr-&gt;Light(0,mglPoint(0,0,1));
+mglData a(30,30,30), b(30,30,30);
+a.Modify(&quot;exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))&quot;);
+b.Modify(&quot;16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)&quot;);
+gr-&gt;CAxis(0,1);
+
+gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);
+gr-&gt;Surf3(a,&quot;wgk&quot;);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);
+gr-&gt;DensA(a);		gr-&gt;Box();	gr-&gt;Axis();
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);
+gr-&gt;Cloud(a);		gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);
+gr-&gt;Surf3A(b,a,&quot;q&quot;);		gr-&gt;Box();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">alpha on: light on
+light 0 0 0 1
+new a 30 30 30: new b 30 30 30
+modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
+modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
+caxis 0 1
+
+subplot 2 2 0: rotate 40 60
+surf3 a 'wgk': box
+subplot 2 2 1: rotate 40 60
+densa a: box: axis
+subplot 2 2 2: rotate 40 60
+cloud a: box
+subplot 2 2 3: rotate 40 60
+surf3a b a 'q': box
+</pre><hr size="6">
+<a name="Line-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Arrow-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_043b_0438_043d_0438_0439-_0438-_043c_0430_0440_043ae_0440_043e_0432"></a>
+<h3 class="subsection">9.5.4 Пример стилей линий и маркеров</h3>
+<a name="index-Mark-8"></a>
+<a name="index-Line-3"></a>
+<div class="float">
+<img src="../png/sample5.png" alt="../png/sample5">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">float d,x1,x2,x0,y=0.95;
+d=0.3, x0=0.2, x1=0.5, x2=0.6;
+gr-&gt;Line(mglPoint(x0,1-0*d),mglPoint(x1,1-0*d),&quot;k-&quot;);	gr-&gt;Puts(mglPoint(x2,y-0*d),&quot;Solid '-'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-1*d),mglPoint(x1,1-1*d),&quot;k|&quot;);	gr-&gt;Puts(mglPoint(x2,y-1*d),&quot;Long Dash '|'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-2*d),mglPoint(x1,1-2*d),&quot;k;&quot;);	gr-&gt;Puts(mglPoint(x2,y-2*d),&quot;Dash ';'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-3*d),mglPoint(x1,1-3*d),&quot;k=&quot;);	gr-&gt;Puts(mglPoint(x2,y-3*d),&quot;Small dash '='&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-4*d),mglPoint(x1,1-4*d),&quot;kj&quot;);	gr-&gt;Puts(mglPoint(x2,y-4*d),&quot;Dash-dot 'j'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-5*d),mglPoint(x1,1-5*d),&quot;ki&quot;);	gr-&gt;Puts(mglPoint(x2,y-5*d),&quot;Small dash-dot 'i'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-6*d),mglPoint(x1,1-6*d),&quot;k:&quot;);	gr-&gt;Puts(mglPoint(x2,y-6*d),&quot;Dots ':'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-7*d),mglPoint(x1,1-7*d),&quot;k &quot;);	gr-&gt;Puts(mglPoint(x2,y-7*d),&quot;None ' '&quot;,&quot;rL&quot;);
+
+d=0.25; x1=-1; x0=-0.8;	y = -0.05;
+gr-&gt;Mark(mglPoint(x1,5*d),'.');		gr-&gt;Puts(mglPoint(x0,y+5*d),&quot;'.'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,4*d),'+');		gr-&gt;Puts(mglPoint(x0,y+4*d),&quot;'+'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,3*d),'x');		gr-&gt;Puts(mglPoint(x0,y+3*d),&quot;'x'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,2*d),'*');		gr-&gt;Puts(mglPoint(x0,y+2*d),&quot;'*'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,d),'s');		gr-&gt;Puts(mglPoint(x0,y+d),&quot;'s'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,0),'d');		gr-&gt;Puts(mglPoint(x0,y),&quot;'d'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-d,0),'o');	gr-&gt;Puts(mglPoint(x0,y-d),&quot;'o'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-2*d,0),'^');	gr-&gt;Puts(mglPoint(x0,y-2*d),&quot;'\\^'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-3*d,0),'v');	gr-&gt;Puts(mglPoint(x0,y-3*d),&quot;'v'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-4*d,0),'&lt;');	gr-&gt;Puts(mglPoint(x0,y-4*d),&quot;'&lt;'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-5*d,0),'&gt;');	gr-&gt;Puts(mglPoint(x0,y-5*d),&quot;'&gt;'&quot;,&quot;rL&quot;);
+
+d=0.25; x1=-0.5; x0=-0.3;	y = -0.05;
+gr-&gt;Mark(mglPoint(x1,5*d),'C');		gr-&gt;Puts(mglPoint(x0,y+5*d),&quot;'\\#.'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,4*d),'P');		gr-&gt;Puts(mglPoint(x0,y+4*d),&quot;'\\#+'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,3*d),'X');		gr-&gt;Puts(mglPoint(x0,y+3*d),&quot;'\\#x'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,2*d),'Y');		gr-&gt;Puts(mglPoint(x0,y+2*d),&quot;'\\#*'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,d),'S');		gr-&gt;Puts(mglPoint(x0,y+d),&quot;'\\#s'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,0),'D');		gr-&gt;Puts(mglPoint(x0,y),&quot;'\\#d'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-d,0),'O');	gr-&gt;Puts(mglPoint(x0,y-d),&quot;'\\#o'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-2*d,0),'T');	gr-&gt;Puts(mglPoint(x0,y-2*d),&quot;'\\#\\^'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-3*d,0),'V');	gr-&gt;Puts(mglPoint(x0,y-3*d),&quot;'\\#v'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-4*d,0),'L');	gr-&gt;Puts(mglPoint(x0,y-4*d),&quot;'\\#&lt;'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-5*d,0),'R');	gr-&gt;Puts(mglPoint(x0,y-5*d),&quot;'\\#&gt;'&quot;,&quot;rL&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Arrow-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Line-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_0441_0442_0440e_043b_043e_043a"></a>
+<h3 class="subsection">9.5.5 Пример стилей стрелок</h3>
+<a name="index-Line-4"></a>
+<div class="float">
+<img src="../png/sampled.png" alt="../png/sampled">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">float a=0.1,b=0.4,c=0.5;
+gr-&gt;Line(mglPoint(a,1),mglPoint(b,1),&quot;k-A&quot;);		gr-&gt;Puts(mglPoint(c,1),&quot;Style 'A' or 'A\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.8),mglPoint(b,0.8),&quot;k-V&quot;);	gr-&gt;Puts(mglPoint(c,0.8),&quot;Style 'V' or 'V\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.6),mglPoint(b,0.6),&quot;k-K&quot;);	gr-&gt;Puts(mglPoint(c,0.6),&quot;Style 'K' or 'K\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.4),mglPoint(b,0.4),&quot;k-I&quot;);	gr-&gt;Puts(mglPoint(c,0.4),&quot;Style 'I' or 'I\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.2),mglPoint(b,0.2),&quot;k-D&quot;);	gr-&gt;Puts(mglPoint(c,0.2),&quot;Style 'D' or 'D\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0),mglPoint(b,0),&quot;k-S&quot;);		gr-&gt;Puts(mglPoint(c,0),&quot;Style 'S' or 'S\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.2),mglPoint(b,-0.2),&quot;k-O&quot;);	gr-&gt;Puts(mglPoint(c,-0.2),&quot;Style 'O' or 'O\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.4),mglPoint(b,-0.4),&quot;k-T&quot;);	gr-&gt;Puts(mglPoint(c,-0.4),&quot;Style 'T' or 'T\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.6),mglPoint(b,-0.6),&quot;k-_&quot;);	gr-&gt;Puts(mglPoint(c,-0.6),&quot;Style '\\_' or none&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.8),mglPoint(b,-0.8),&quot;k-AS&quot;);	gr-&gt;Puts(mglPoint(c,-0.8),&quot;Style 'AS'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-1),mglPoint(b,-1),&quot;k-_A&quot;);		gr-&gt;Puts(mglPoint(c,-1),&quot;Style '\\_A'&quot;,&quot;rL&quot;);
+
+a=-1;	b=-0.7;	c=-0.6;
+gr-&gt;Line(mglPoint(a,1),mglPoint(b,1),&quot;kAA&quot;);		gr-&gt;Puts(mglPoint(c,1),&quot;Style 'AA'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.8),mglPoint(b,0.8),&quot;kVV&quot;);	gr-&gt;Puts(mglPoint(c,0.8),&quot;Style 'VV'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.6),mglPoint(b,0.6),&quot;kKK&quot;);	gr-&gt;Puts(mglPoint(c,0.6),&quot;Style 'KK'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.4),mglPoint(b,0.4),&quot;kII&quot;);	gr-&gt;Puts(mglPoint(c,0.4),&quot;Style 'II'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.2),mglPoint(b,0.2),&quot;kDD&quot;);	gr-&gt;Puts(mglPoint(c,0.2),&quot;Style 'DD'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0),mglPoint(b,0),&quot;kSS&quot;);		gr-&gt;Puts(mglPoint(c,0),&quot;Style 'SS'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.2),mglPoint(b,-0.2),&quot;kOO&quot;);	gr-&gt;Puts(mglPoint(c,-0.2),&quot;Style 'OO'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.4),mglPoint(b,-0.4),&quot;kTT&quot;);	gr-&gt;Puts(mglPoint(c,-0.4),&quot;Style 'TT'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.6),mglPoint(b,-0.6),&quot;k-__&quot;);	gr-&gt;Puts(mglPoint(c,-0.6),&quot;Style '\\_\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.8),mglPoint(b,-0.8),&quot;k-VA&quot;);	gr-&gt;Puts(mglPoint(c,-0.8),&quot;Style 'VA'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-1),mglPoint(b,-1),&quot;k-AV&quot;);		gr-&gt;Puts(mglPoint(c,-1),&quot;Style 'AV'&quot;,&quot;rL&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Text-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Arrow-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TeX-parsing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_0442e_043a_0441_0442_0430"></a>
+<h3 class="subsection">9.5.6 Пример стилей текста</h3>
+<a name="index-Puts-5"></a>
+<div class="float">
+<img src="../png/sample4.png" alt="../png/sample4">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Putsw(mglPoint(0,1),L&quot;Text can be in ASCII and in Unicode&quot;);
+gr-&gt;Puts(mglPoint(0,0.6),&quot;It can be \\wire{wire}, \\big{big} or #r{colored}&quot;);
+gr-&gt;Puts(mglPoint(0,0.2),&quot;One can change style in string: &quot;
+        &quot;\\b{bold}, \\i{italic, \\b{both}}&quot;);
+gr-&gt;Puts(mglPoint(0,-0.2),&quot;Easy to \\a{overline} or &quot;
+        &quot;\\u{underline}&quot;);
+gr-&gt;Puts(mglPoint(0,-0.6),&quot;Easy to change indexes ^{up} _{down} @{center}&quot;);
+gr-&gt;Puts(mglPoint(0,-1),&quot;It parse TeX: \\int \\alpha \\cdot &quot;
+        &quot;\\sqrt3{sin(\\pi x)^2 + \\gamma_{i_k}} dx&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">text 0 1 'Text can be in ASCII and in Unicode'
+text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
+text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
+text 0 -0.2 'Easy to \a{overline} or \u{underline}'
+text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
+text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
+</pre><hr size="6">
+<a name="TeX-parsing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-faces-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-TeX-_0444_043e_0440_043c_0443_043b_044b"></a>
+<h3 class="subsection">9.5.7 Пример TeX формулы</h3>
+<a name="index-Puts-6"></a>
+<div class="float">
+<img src="../png/samplee.png" alt="../png/samplee">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Puts(mglPoint(0), &quot;\\sqrt{\\frac{\\alpha^{\\gamma^2}+&quot;
+        &quot;\\overset 1{\\big\\infty}}{\\sqrt3{2+b}}}&quot;, 0, -4);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}' '' -4
+</pre><hr size="6">
+<a name="Font-faces-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TeX-parsing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-_043d_0430_0447e_0440_0442_0430_043d_0438_0439-_0448_0440_0438_0444_0442_0430"></a>
+<h3 class="subsection">9.5.8 Примеры начертаний шрифта</h3>
+<a name="index-Puts-7"></a>
+<div class="float">
+<img src="../png/fonts.png" alt="../png/fonts">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">float h=1.1, d=0.25;
+gr-&gt;LoadFont(&quot;STIX&quot;);		gr-&gt;Puts(mglPoint(0,h), &quot;default font (STIX)&quot;);
+gr-&gt;LoadFont(&quot;adventor&quot;);	gr-&gt;Puts(mglPoint(0,h-d), &quot;adventor font&quot;);
+gr-&gt;LoadFont(&quot;bonum&quot;);		gr-&gt;Puts(mglPoint(0,h-2*d), &quot;bonum font&quot;);
+gr-&gt;LoadFont(&quot;chorus&quot;);		gr-&gt;Puts(mglPoint(0,h-3*d), &quot;chorus font&quot;);
+gr-&gt;LoadFont(&quot;cursor&quot;);		gr-&gt;Puts(mglPoint(0,h-4*d), &quot;cursor font&quot;);
+gr-&gt;LoadFont(&quot;heros&quot;);		gr-&gt;Puts(mglPoint(0,h-5*d), &quot;heros font&quot;);
+gr-&gt;LoadFont(&quot;heroscn&quot;);	gr-&gt;Puts(mglPoint(0,h-6*d), &quot;heroscn font&quot;);
+gr-&gt;LoadFont(&quot;pagella&quot;);	gr-&gt;Puts(mglPoint(0,h-7*d), &quot;pagella font&quot;);
+gr-&gt;LoadFont(&quot;schola&quot;);		gr-&gt;Puts(mglPoint(0,h-8*d), &quot;schola font&quot;);
+gr-&gt;LoadFont(&quot;termes&quot;);		gr-&gt;Puts(mglPoint(0,h-9*d), &quot;termes font&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-faces-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Color-schemes-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-c_0432e_0442_043e_0432"></a>
+<h3 class="subsection">9.5.9 Примеры цветов</h3>
+<div class="float">
+<img src="../png/colors.png" alt="../png/colors">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">//#LENUQ
+gr-&gt;FaceZ(-1,	-1, 0, 0.4, 0.3, &quot;L#&quot;);	gr-&gt;Puts(mglPoint(-0.8,-0.9), &quot;L&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	-1, 0, 0.4, 0.3, &quot;E#&quot;);	gr-&gt;Puts(mglPoint(-0.4,-0.9), &quot;E&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	-1, 0, 0.4, 0.3, &quot;N#&quot;);	gr-&gt;Puts(mglPoint(0,  -0.9), &quot;N&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	-1, 0, 0.4, 0.3, &quot;U#&quot;);	gr-&gt;Puts(mglPoint(0.4,-0.9), &quot;U&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	-1, 0, 0.4, 0.3, &quot;Q#&quot;);	gr-&gt;Puts(mglPoint(0.8,-0.9), &quot;Q&quot;, &quot;C:w&quot;, -1.4);
+//#lenuq
+gr-&gt;FaceZ(-1,	-0.7, 0, 0.4, 0.3, &quot;l#&quot;);	gr-&gt;Puts(mglPoint(-0.8,-0.6), &quot;l&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	-0.7, 0, 0.4, 0.3, &quot;e#&quot;);	gr-&gt;Puts(mglPoint(-0.4,-0.6), &quot;e&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	-0.7, 0, 0.4, 0.3, &quot;n#&quot;);	gr-&gt;Puts(mglPoint(0,  -0.6), &quot;n&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	-0.7, 0, 0.4, 0.3, &quot;u#&quot;);	gr-&gt;Puts(mglPoint(0.4,-0.6), &quot;u&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	-0.7, 0, 0.4, 0.3, &quot;q#&quot;);	gr-&gt;Puts(mglPoint(0.8,-0.6), &quot;q&quot;, &quot;C:k&quot;, -1.4);
+//#CMYkP
+gr-&gt;FaceZ(-1,	-0.4, 0, 0.4, 0.3, &quot;C#&quot;);	gr-&gt;Puts(mglPoint(-0.8,-0.3), &quot;C&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	-0.4, 0, 0.4, 0.3, &quot;M#&quot;);	gr-&gt;Puts(mglPoint(-0.4,-0.3), &quot;M&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	-0.4, 0, 0.4, 0.3, &quot;Y#&quot;);	gr-&gt;Puts(mglPoint(0,  -0.3), &quot;Y&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	-0.4, 0, 0.4, 0.3, &quot;k#&quot;);	gr-&gt;Puts(mglPoint(0.4,-0.3), &quot;k&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	-0.4, 0, 0.4, 0.3, &quot;P#&quot;);	gr-&gt;Puts(mglPoint(0.8,-0.3), &quot;P&quot;, &quot;C:w&quot;, -1.4);
+//#cmywp
+gr-&gt;FaceZ(-1,	-0.1, 0, 0.4, 0.3, &quot;c#&quot;);	gr-&gt;Puts(mglPoint(-0.8, 0), &quot;c&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	-0.1, 0, 0.4, 0.3, &quot;m#&quot;);	gr-&gt;Puts(mglPoint(-0.4, 0), &quot;m&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	-0.1, 0, 0.4, 0.3, &quot;y#&quot;);	gr-&gt;Puts(mglPoint(0,   0), &quot;y&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	-0.1, 0, 0.4, 0.3, &quot;w#&quot;);	gr-&gt;Puts(mglPoint(0.4, 0), &quot;w&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	-0.1, 0, 0.4, 0.3, &quot;p#&quot;);	gr-&gt;Puts(mglPoint(0.8, 0), &quot;p&quot;, &quot;C:k&quot;, -1.4);
+//#BGRHW
+gr-&gt;FaceZ(-1,	0.2, 0, 0.4, 0.3, &quot;B#&quot;);	gr-&gt;Puts(mglPoint(-0.8, 0.3), &quot;B&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	0.2, 0, 0.4, 0.3, &quot;G#&quot;);	gr-&gt;Puts(mglPoint(-0.4, 0.3), &quot;G&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	0.2, 0, 0.4, 0.3, &quot;R#&quot;);	gr-&gt;Puts(mglPoint(0,   0.3), &quot;R&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	0.2, 0, 0.4, 0.3, &quot;H#&quot;);	gr-&gt;Puts(mglPoint(0.4, 0.3), &quot;H&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	0.2, 0, 0.4, 0.3, &quot;W#&quot;);	gr-&gt;Puts(mglPoint(0.8, 0.3), &quot;W&quot;, &quot;C:w&quot;, -1.4);
+//#bgrhw
+gr-&gt;FaceZ(-1,	0.2, 0, 0.4, 0.3, &quot;b#&quot;);	gr-&gt;Puts(mglPoint(-0.8, 0.6), &quot;b&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	0.5, 0, 0.4, 0.3, &quot;g#&quot;);	gr-&gt;Puts(mglPoint(-0.4, 0.6), &quot;g&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	0.2, 0, 0.4, 0.3, &quot;r#&quot;);	gr-&gt;Puts(mglPoint(0,   0.6), &quot;r&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	0.2, 0, 0.4, 0.3, &quot;h#&quot;);	gr-&gt;Puts(mglPoint(0.4, 0.6), &quot;h&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	0.2, 0, 0.4, 0.3, &quot;w#&quot;);	gr-&gt;Puts(mglPoint(0.8, 0.6), &quot;w&quot;, &quot;C:k&quot;, -1.4);
+//#brighted
+gr-&gt;FaceZ(-1,	0.8, 0, 0.4, 0.3, &quot;r1#&quot;);	gr-&gt;Puts(mglPoint(-0.8, 0.9), &quot;r1&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	0.8, 0, 0.4, 0.3, &quot;r3#&quot;);	gr-&gt;Puts(mglPoint(-0.4, 0.9), &quot;r3&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	0.8, 0, 0.4, 0.3, &quot;r5#&quot;);	gr-&gt;Puts(mglPoint(0,   0.9), &quot;r5&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	0.8, 0, 0.4, 0.3, &quot;r7#&quot;);	gr-&gt;Puts(mglPoint(0.4, 0.9), &quot;r7&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	0.8, 0, 0.4, 0.3, &quot;r9#&quot;);	gr-&gt;Puts(mglPoint(0.8, 0.9), &quot;r9&quot;, &quot;C:k&quot;, -1.4);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">#LENUQ
+facez -1   -1 0 0.4 0.3 'L#': text -0.8 -0.9 'L' 'C:w'
+facez -0.6 -1 0 0.4 0.3 'E#': text -0.4 -0.9 'E' 'C:w'
+facez -0.2 -1 0 0.4 0.3 'N#': text  0   -0.9 'N' 'C:w'
+facez  0.2 -1 0 0.4 0.3 'U#': text  0.4 -0.9 'U' 'C:w'
+facez  0.6 -1 0 0.4 0.3 'Q#': text  0.8 -0.9 'Q' 'C:w'
+#lenuq
+facez -1   -0.7 0 0.4 0.3 'l#': text -0.8 -0.6 'l' 'C:k'
+facez -0.6 -0.7 0 0.4 0.3 'e#': text -0.4 -0.6 'e' 'C:k'
+facez -0.2 -0.7 0 0.4 0.3 'n#': text  0   -0.6 'n' 'C:k'
+facez  0.2 -0.7 0 0.4 0.3 'u#': text  0.4 -0.6 'u' 'C:k'
+facez  0.6 -0.7 0 0.4 0.3 'q#': text  0.8 -0.6 'q' 'C:k'
+#CMYkP
+facez -1   -0.4 0 0.4 0.3 'C#': text -0.8 -0.3 'C' 'C:w'
+facez -0.6 -0.4 0 0.4 0.3 'M#': text -0.4 -0.3 'M' 'C:w'
+facez -0.2 -0.4 0 0.4 0.3 'Y#': text  0   -0.3 'Y' 'C:w'
+facez  0.2 -0.4 0 0.4 0.3 'k#': text  0.4 -0.3 'k' 'C:w'
+facez  0.6 -0.4 0 0.4 0.3 'P#': text  0.8 -0.3 'P' 'C:w'
+#lenuq
+facez -1   -0.1 0 0.4 0.3 'c#': text -0.8 0 'c' 'C:k'
+facez -0.6 -0.1 0 0.4 0.3 'm#': text -0.4 0 'm' 'C:k'
+facez -0.2 -0.1 0 0.4 0.3 'y#': text  0   0 'y' 'C:k'
+facez  0.2 -0.1 0 0.4 0.3 'w#': text  0.4 0 'w' 'C:k'
+facez  0.6 -0.1 0 0.4 0.3 'p#': text  0.8 0 'p' 'C:k'
+#BGRHW
+facez -1   0.2 0 0.4 0.3 'B#': text -0.8 0.3 'B' 'C:k'
+facez -0.6 0.2 0 0.4 0.3 'G#': text -0.4 0.3 'G' 'C:k'
+facez -0.2 0.2 0 0.4 0.3 'R#': text  0   0.3 'R' 'C:k'
+facez  0.2 0.2 0 0.4 0.3 'H#': text  0.4 0.3 'H' 'C:k'
+facez  0.6 0.2 0 0.4 0.3 'W#': text  0.8 0.3 'W' 'C:k'
+#bgrhw
+facez -1   0.5 0 0.4 0.3 'b#': text -0.8 0.6 'b' 'C:w'
+facez -0.6 0.5 0 0.4 0.3 'g#': text -0.4 0.6 'g' 'C:w'
+facez -0.2 0.5 0 0.4 0.3 'r#': text  0   0.6 'r' 'C:w'
+facez  0.2 0.5 0 0.4 0.3 'h#': text  0.4 0.6 'h' 'C:w'
+facez  0.6 0.5 0 0.4 0.3 'w#': text  0.8 0.6 'w' 'C:w'
+#brighted
+facez -1   0.8 0 0.4 0.3 'r1#': text -0.8 0.9 'r1' 'C:k'
+facez -0.6 0.8 0 0.4 0.3 'r3#': text -0.4 0.9 'r3' 'C:k'
+facez -0.2 0.8 0 0.4 0.3 'r5#': text  0   0.9 'r5' 'C:k'
+facez  0.2 0.8 0 0.4 0.3 'r7#': text  0.4 0.9 'r7' 'C:k'
+facez  0.6 0.8 0 0.4 0.3 'r9#': text  0.8 0.9 'r9' 'C:k'
+</pre><hr size="6">
+<a name="Color-schemes-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Normal-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-c_0432e_0442_043e_0432_044b_0445-_0441_0445e_043c"></a>
+<h3 class="subsection">9.5.10 Примеры цветовых схем</h3>
+<a name="index-Colorbar-7"></a>
+<div class="float">
+<img src="../png/color_schemes.png" alt="../png/color_schemes">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(256,2);	a.Fill(-1,1);
+gr-&gt;SubPlot(2,10,0,0.2);	gr-&gt;Dens(a,&quot;kw&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kw&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,1,0.2);	gr-&gt;Dens(a,&quot;wk&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;wk&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,2,0.2);	gr-&gt;Dens(a,&quot;kHCcw&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kHCcw&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,3,0.2);	gr-&gt;Dens(a,&quot;kBbcw&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kBbcw&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,4,0.2);	gr-&gt;Dens(a,&quot;kRryw&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kRryw&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,5,0.2);	gr-&gt;Dens(a,&quot;kGgew&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kGgew&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,6,0.2);	gr-&gt;Dens(a,&quot;BbwrR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbwrR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,7,0.2);	gr-&gt;Dens(a,&quot;BbwgG&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbwgG&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,8,0.2);	gr-&gt;Dens(a,&quot;GgwmM&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;GgwmM&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,9,0.2);	gr-&gt;Dens(a,&quot;UuwqR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;UuwqR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,10,0.2);	gr-&gt;Dens(a,&quot;QqwcC&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;QqwcC&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,11,0.2);	gr-&gt;Dens(a,&quot;CcwyY&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;CcwyY&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,12,0.2);	gr-&gt;Dens(a,&quot;bcwyr&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;bcwyr&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,13,0.2);	gr-&gt;Dens(a,&quot;bwr&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;bwr&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,14,0.2);	gr-&gt;Dens(a,&quot;BbcyrR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbcyrR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,15,0.2);	gr-&gt;Dens(a,&quot;UbcyqR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;UbcyqR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,16,0.2);	gr-&gt;Dens(a,&quot;BbcwyrR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbcwyrR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,17,0.2);	gr-&gt;Dens(a,&quot;bcyr&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;bcyr&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,18,0.2);	gr-&gt;Dens(a,&quot;BbcyrR|&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbcyrR|&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,19,0.2);	gr-&gt;Dens(a,&quot;bgr&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;bgr&quot;, &quot;C&quot;, -8);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 256 2: fill a 'x'
+subplot 2 10 0 0.2:dens a 'kw'
+text -1.4 -0.3 'kw' '' -8
+subplot 2 10 1 0.2:dens a 'wk'
+text -1.4 -0.3 'wk' '' -8
+subplot 2 10 2 0.2:dens a 'kHCcw'
+text -1.4 -0.3 'kHCcw' '' -8
+subplot 2 10 3 0.2:dens a 'kBbcw'
+text -1.4 -0.3 'kBbcw' '' -8
+subplot 2 10 4 0.2:dens a 'kRryw'
+text -1.4 -0.3 'kRryw' '' -8
+subplot 2 10 5 0.2:dens a 'kGgew'
+text -1.4 -0.3 'kGgew' '' -8
+subplot 2 10 6 0.2:dens a 'BbwrR'
+text -1.4 -0.3 'BbwrR' '' -8
+subplot 2 10 7 0.2:dens a 'BbwgG'
+text -1.4 -0.3 'BbwgG' '' -8
+subplot 2 10 8 0.2:dens a 'GgwmM'
+text -1.4 -0.3 'GgwmM' '' -8
+subplot 2 10 9 0.2:dens a 'UuwqR'
+text -1.4 -0.3 'UuwqR' '' -8
+subplot 2 10 10 0.2:dens a 'QqwcC'
+text -1.4 -0.3 'QqwcC' '' -8
+subplot 2 10 11 0.2:dens a 'CcwyY'
+text -1.4 -0.3 'CcwyY' '' -8
+subplot 2 10 12 0.2:dens a 'bcwyr'
+text -1.4 -0.3 'bcwyr' '' -8
+subplot 2 10 13 0.2:dens a 'bwr'
+text -1.4 -0.3 'bwr' '' -8
+subplot 2 10 14 0.2:dens a 'BbcyrR'
+text -1.4 -0.3 'BbcyrR' '' -8
+subplot 2 10 15 0.2:dens a 'UbcyqR'
+text -1.4 -0.3 'UbcyqR' '' -8
+subplot 2 10 16 0.2:dens a 'BbcwyrR'
+text -1.4 -0.3 'BbcwyrR' '' -8
+subplot 2 10 17 0.2:dens a 'bcyr'
+text -1.4 -0.3 'bcyr' '' -8
+subplot 2 10 18 0.2:dens a 'BbcyrR|'
+text -1.4 -0.3 'BbcyrR|' '' -8
+subplot 2 10 19 0.2:dens a 'bgr'
+text -1.4 -0.3 'bgr' '' -8
+</pre><hr size="6">
+<a name="Normal-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Color-schemes-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Glass_002dlike-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0431_044b_0447_043d_0430ya-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x"></a>
+<h3 class="subsection">9.5.11 Обычная прозрачность</h3>
+<a name="index-TranspType"></a>
+<div class="float">
+<img src="../png/type0.png" alt="../png/type0">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true);	gr-&gt;Light(true);
+mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+
+gr-&gt;TranspType = 0;	gr-&gt;Clf();
+gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);	gr-&gt;Surf(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);	gr-&gt;Dens(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);	gr-&gt;Cont(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);	gr-&gt;Axial(a);	gr-&gt;Box();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 0: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre><hr size="6">
+<a name="Glass_002dlike-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Normal-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lamp_002dlike-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0022_0421_0442e_043a_043bya_043d_043d_0430ya_0022-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x"></a>
+<h3 class="subsection">9.5.12 &quot;Стеклянная&quot; прозрачность</h3>
+<a name="index-TranspType-1"></a>
+<div class="float">
+<img src="../png/type1.png" alt="../png/type1">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true);	gr-&gt;Light(true);
+mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+
+gr-&gt;TranspType = 1;	gr-&gt;Clf();
+gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);	gr-&gt;Surf(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);	gr-&gt;Dens(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);	gr-&gt;Cont(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);	gr-&gt;Axial(a);	gr-&gt;Box();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 1: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre><hr size="6">
+<a name="Lamp_002dlike-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Glass_002dlike-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0022_041b_0430_043c_043f_043e_0432_0430ya_0022-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x"></a>
+<h3 class="subsection">9.5.13 &quot;Ламповая&quot; прозрачность</h3>
+<a name="index-TranspType-2"></a>
+<div class="float">
+<img src="../png/type2.png" alt="../png/type2">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true);	gr-&gt;Light(true);
+mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+
+gr-&gt;TranspType = 2;	gr-&gt;Clf();
+gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);	gr-&gt;Surf(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);	gr-&gt;Dens(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);	gr-&gt;Cont(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);	gr-&gt;Axial(a);	gr-&gt;Box();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 2: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre>
+
+
+
+
+
+
+
+
+<hr size="6">
+<a name="Additional-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lamp_002dlike-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0414_043e_043f_043e_043b_043d_0438_0442e_043bx_043d_044be-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438"></a>
+<h2 class="section">9.6 Дополнительные возможности</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Legend-sample">9.6.1 Legend &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Adding-mesh-sample">9.6.2 Добавляем сетку</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf-_0026-Cont-sample">9.6.3 Surf &amp; Cont &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-_0026-Dens-sample">9.6.4 Flow &amp; Dens &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Several-light-sample">9.6.5 Несколько источников света</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mirrored-surface-sample">9.6.6 Отражение поверхности</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-with-labels-sample">9.6.7 Cont и подписи &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ternary-plot-sample">9.6.8 Ternary plot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Coloring-by-coordinates-sample">9.6.9 Окрашивание по положению грани</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Drops-sample">9.6.10 Drops &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Molecules-drawing-sample">9.6.11 Рисование молекул</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">    
+</td></tr>
+</table>
+<hr size="6">
+<a name="Legend-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Additional-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Adding-mesh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Legend-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.6.1 Legend &ndash; пример использования</h3>
+<a name="index-Plot-9"></a>
+<a name="index-Legend-5"></a>
+<a name="index-AddLegend-3"></a>
+<div class="float">
+<img src="../png/legend.png" alt="../png/legend">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData f(50,3);
+f.Modify(&quot;sin(2*pi*x*x)&quot;,0);
+f.Modify(&quot;sin(2*pi*x)&quot;,1);
+f.Modify(&quot;sin(2*pi*sqrt(x))&quot;,2);
+gr-&gt;Axis(mglPoint(0,-1),mglPoint(1,1));
+gr-&gt;Box(); gr-&gt;Plot(f); gr-&gt;Axis();
+gr-&gt;AddLegend(&quot;sin(\\pi {x^2})&quot;,&quot;b&quot;);
+gr-&gt;AddLegend(&quot;sin(\\pi x)&quot;,&quot;g*&quot;);
+gr-&gt;AddLegend(&quot;sin(\\pi \\sqrt{\\a x})&quot;,&quot;r+&quot;);
+gr-&gt;Legend();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new f 50 3
+modify f 'sin(2*pi*x*x)'
+modify f 'sin(2*pi*x)' 1
+modify f 'sin(2*pi*sqrt(x))' 2
+axis 0 -1 1 1
+box
+plot f
+axis
+addlegend 'sin(\pi {x^2})' 'b'
+addlegend 'sin(\pi x)' 'g*'
+addlegend 'sin(\pi \sqrt{\a x})' 'r+'
+legend
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT f = mgl_create_data_size(50,3,1);
+mgl_data_modify(f,&quot;sin(2*pi*x*x)&quot;,0);
+mgl_data_modify(f,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(f,&quot;sin(2*pi*sqrt(x))&quot;,2);
+mgl_set_axis(gr, 0.,-1.,0., 1.,1.,1., 0.,0.,0.);
+mgl_box(gr,1);
+mgl_plot(gr,f,NULL);
+mgl_axis(gr,&quot;xy&quot;);
+mgl_add_legend(gr,&quot;sin(\\pi {x^2})&quot;,&quot;b&quot;);
+mgl_add_legend(gr,&quot;sin(\\pi x)&quot;,&quot;g*&quot;);
+mgl_add_legend(gr,&quot;sin(\\pi \\sqrt{\\a x})&quot;,&quot;r+&quot;);
+mgl_legend(gr,3,&quot;rL&quot;,-1.,0.1);
+mgl_delete_data(f);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer f, mgl_create_data_size
+f = mgl_create_data_size(50,3,1)
+call mgl_data_modify(f,'sin(2*pi*x*x)',0)
+call mgl_data_modify(f,'sin(2*pi*x)',1)
+call mgl_data_modify(f,'sin(2*pi*sqrt(x))',2)
+call mgl_set_axis(gr, 0.,-1.,0., 1.,1.,1., 0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_plot(gr,f,'')
+call mgl_axis(gr,'xy')
+call mgl_add_legend(gr,'sin(\pi {x^2})','b');
+call mgl_add_legend(gr,'sin(\pi x)','g*');
+call mgl_add_legend(gr,'sin(\pi \sqrt{\a x})','r+');
+call mgl_legend(gr,3,'rL',-1.,0.1);
+call mgl_delete_data(f)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">f = mglData(50,3);
+f.Modify(&quot;sin(2*pi*x*x)&quot;,0);    f.Modify(&quot;sin(2*pi*x)&quot;,1);      f.Modify(&quot;sin(2*pi*sqrt(x))&quot;,2);
+gr.SetRanges(0,1,-1,1);     gr.Box();   gr.Axis();  gr.Plot(f);
+gr.AddLegend(&quot;sin(\\pi x^2)&quot;,&quot;b&quot;);
+gr.AddLegend(&quot;sin(\\pi x)&quot;,&quot;g*&quot;);
+gr.AddLegend(&quot;sin(\\pi\\sqrt{\\a x})&quot;,&quot;r+&quot;);
+gr.Legend();
+</pre><hr size="6">
+<a name="Adding-mesh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf-_0026-Cont-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0414_043e_0431_0430_0432_043byae_043c-_0441e_0442_043a_0443"></a>
+<h3 class="subsection">9.6.2 Добавляем сетку</h3>
+<a name="index-SubPlot-4"></a>
+<a name="index-Surf-12"></a>
+<a name="index-Dens-6"></a>
+<a name="index-Cont-6"></a>
+<a name="index-Axial-6"></a>
+<div class="float">
+<img src="../png/samplea.png" alt="../png/samplea">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(40,60);
+gr-&gt;Surf(a,&quot;BbcyrR#&quot;);  gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(40,60);
+gr-&gt;Dens(a,&quot;BbcyrR#&quot;);  gr-&gt;Box();
+gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(40,60);
+gr-&gt;Cont(a,&quot;BbcyrR#&quot;);  gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(40,60);
+gr-&gt;Axial(a,&quot;BbcyrR#&quot;); gr-&gt;Box();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+alpha on
+light on
+subplot 2 2 0
+rotate 40 60
+surf a 'BbcyrR#'
+box
+subplot 2 2 1
+rotate 40 60
+dens a 'BbcyrR#'
+box
+subplot 2 2 2
+rotate 40 60
+cont a 'BbcyrR#'
+box
+subplot 2 2 3
+rotate 40 60
+axial a 'BbcyrR#'
+box
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_set_alpha(gr,1);
+mgl_set_light(gr,1);
+mgl_subplot(gr,2,2,0); mgl_rotate(gr,40.,60.,0.);
+mgl_surf(gr,a,&quot;BbcyrR#&quot;);       mgl_box(gr,1);
+mgl_subplot(gr,2,2,1); mgl_rotate(gr,40.,60.,0.);
+mgl_dens(gr,a,&quot;BbcyrR#&quot;,-1.);   mgl_box(gr,1);
+mgl_subplot(gr,2,2,2); mgl_rotate(gr,40.,60.,0.);
+mgl_cont(gr,a,&quot;BbcyrR#&quot;,7,NAN); mgl_box(gr,1);
+mgl_subplot(gr,2,2,3); mgl_rotate(gr,40.,60.,0.);
+mgl_axial(gr,a,&quot;BbcyrR#&quot;,3);    mgl_box(gr,1);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+real zero, nan
+zero=0; nan=zero/zero
+a = mgl_create_data_size(50,40,1)
+call mgl_data_modify(a,'0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))',0)
+call mgl_set_alpha(gr,1)
+call mgl_set_light(gr,1)
+call mgl_subplot(gr,2,2,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_surf(gr,a,'BbcyrR#')
+call mgl_box(gr,1)
+call mgl_subplot(gr,2,2,1)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_dens(gr,a,'BbcyrR#',-1.)
+call mgl_box(gr,1)
+call mgl_subplot(gr,2,2,2)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_cont(gr,a,'BbcyrR#',7,nan)
+call mgl_box(gr,1)
+call mgl_subplot(gr,2,2,3)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_axial(gr,a,'BbcyrR#',3)
+call mgl_box(gr,1)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Light(True);     gr.Alpha(True);
+gr.SubPlot(2,2,0);
+gr.Rotate(40,60);   gr.Surf(a,&quot;BbcyrR#&quot;);   gr.Box();
+gr.SubPlot(2,2,1);
+gr.Rotate(40,60);   gr.Dens(a,&quot;BbcyrR#&quot;);   gr.Box();
+gr.SubPlot(2,2,2);
+gr.Rotate(40,60);   gr.Cont(a,&quot;BbcyrR#&quot;);   gr.Box();
+gr.SubPlot(2,2,3);
+gr.Rotate(40,60);   gr.Axial(a,&quot;BbcyrR#&quot;);  gr.Box();
+</pre><hr size="6">
+<a name="Surf-_0026-Cont-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Adding-mesh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-_0026-Dens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-_0026-Cont-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.6.3 Surf &amp; Cont &ndash; пример использования</h3>
+<a name="index-Surf-13"></a>
+<a name="index-Cont-7"></a>
+<div class="float">
+<img src="../png/surf_cont_y.png" alt="../png/surf_cont_y">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Surf(a);
+gr-&gt;Cont(a,&quot;y&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+cont a 'y'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_cont(gr,a,&quot;y&quot;,7,NAN);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+real zero, nan
+zero = 0; nan = zero/zero
+a = mgl_create_data_size(50,40,1)
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_cont(gr,a,'y',7,nan)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Surf(a);         gr.Cont(a,&quot;y&quot;);
+</pre><hr size="6">
+<a name="Flow-_0026-Dens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf-_0026-Cont-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Several-light-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-_0026-Dens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.6.4 Flow &amp; Dens &ndash; пример использования</h3>
+<a name="index-Flow-7"></a>
+<a name="index-Dens-7"></a>
+<div class="float">
+<img src="../png/flow_dens.png" alt="../png/flow_dens">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40), b(50,40), d(a);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+d.Modify(&quot;sqrt(v^2+w^2)&quot;,a,b);
+gr-&gt;Box();
+gr-&gt;Flow(a,b,&quot;br&quot;); gr-&gt;Dens(d,&quot;BbcyrR&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+copy d a
+modify d 'sqrt(v^2+w^2)' a b
+box
+flow a b 'br'
+dens d 'BbcyrR'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a, b, d;
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+d = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(d,&quot;sqrt(v^2+w^2)&quot;,a,b);
+mgl_box(gr,1);
+mgl_flow_2d(gr,a,b,&quot;br&quot;,5,1,0.);
+mgl_dens(gr,d,&quot;BbcyrR&quot;,-1.);
+mgl_delete_data(a); mgl_delete_data(b); mgl_delete_data(d);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b,d, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+d = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(d,&quot;sqrt(v^2+w^2)&quot;,a,b);
+call mgl_box(gr,1)
+call mgl_flow_2d(gr,a,b,'br',5,1,0.)
+call mgl_dens(gr,d,'BbcyrR',-1.);
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+call mgl_delete_data(d)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b= mglData(50,40), mglData(50,40);   d = mglData(a)
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+d.Modify(&quot;sqrt(v^2+w^2)&quot;,a,b);
+gr.Box();
+gr.Flow(a,b,&quot;br&quot;);      gr.Dens(d,&quot;BbcyrR&quot;);
+</pre><hr size="6">
+<a name="Several-light-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-_0026-Dens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mirrored-surface-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041de_0441_043a_043e_043bx_043a_043e-_0438_0441_0442_043e_0447_043d_0438_043a_043e_0432-_0441_0432e_0442_0430"></a>
+<h3 class="subsection">9.6.5 Несколько источников света</h3>
+<a name="index-Surf-14"></a>
+<a name="index-Light-5"></a>
+<div class="float">
+<img src="../png/several_light.png" alt="../png/several_light">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Light(1,mglPoint(0,1,0),'c');
+gr-&gt;Light(2,mglPoint(1,0,0),'y');
+gr-&gt;Light(3,mglPoint(0,-1,0),'m');
+gr-&gt;Box();
+gr-&gt;Surf(a,&quot;h&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+light 1 0 1 0 'c'
+light 2 1 0 0 'y'
+light 3 0 -1 0 'm'
+box
+surf a 'h'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_add_light_rgb(gr,1,0.,1.,0.,1, 0.,1.,1.,0.5);
+mgl_add_light_rgb(gr,2,1.,0.,0.,1, 1.,1.,0.,0.5);
+mgl_add_light_rgb(gr,3,0.,-1.,0.,1, 1.,0.,1.,0.5);
+mgl_box(gr,1);
+mgl_surf(gr,a,&quot;h&quot;);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_add_light_rgb(gr,1,0.,1.,0.,1, 0.,1.,1.,0.5)
+call mgl_add_light_rgb(gr,2,1.,0.,0.,1, 1.,1.,0.,0.5)
+call mgl_add_light_rgb(gr,3,0.,-1.,0.,1, 1.,0.,1.,0.5)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'h')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);       gr.Light(True);
+gr.AddLight(1,0,1,0,&quot;c&quot;);
+gr.AddLight(2,1,0,0,&quot;y&quot;);
+gr.AddLight(3,0,-1,0,&quot;m&quot;);
+gr.Box();
+gr.Surf(a,&quot;h&quot;)
+</pre><hr size="6">
+<a name="Mirrored-surface-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Several-light-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-with-labels-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0442_0440_0430_0436e_043d_0438e-_043f_043e_0432e_0440_0445_043d_043e_0441_0442_0438"></a>
+<h3 class="subsection">9.6.6 Отражение поверхности</h3>
+<a name="index-Surf-15"></a>
+<div class="float">
+<img src="../png/mirror.png" alt="../png/mirror">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(30,40),x(30),y1(40),y2(40);
+a.Modify(&quot;pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)&quot;);
+x.Fill(-1,1); y1.Fill(0,1); y2.Fill(0,-1);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Surf(x,y1,a,&quot;r&quot;); gr-&gt;Surf(x,y2,a,&quot;b&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 30 40
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf a 'r'; yrange 0 1
+surf a 'b'; yrange 0 -1
+box
+</pre><p>or
+</p><pre class="verbatim">new a 30 40
+var x 30 -1 1
+var y1 40 0 1
+var y2 40 0 -1
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf x y1 a 'r'
+surf x y2 a 'b'
+box
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a,x,y1,y2;
+a = mgl_create_data_size(30,40,1);
+x = mgl_create_data_size(30,1,1);
+y1 = mgl_create_data_size(40,1,1);
+y2 = mgl_create_data_size(40,1,1);
+mgl_data_modify(a,&quot;pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)&quot;,0);
+mgl_data_fill(x,-1.,1.,'x');
+mgl_data_fill(y1,0.,1.,'x');
+mgl_data_fill(y2,0.,-1.,'x');
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf_xy(gr,x,y1,a,&quot;r&quot;); mgl_surf_xy(gr,x,y2,a,&quot;b&quot;);
+mgl_delete_data(a); mgl_delete_data(y1);
+mgl_delete_data(x); mgl_delete_data(y2);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,x,y1,y2, mgl_create_data_size
+a = mgl_create_data_size(30,40,1)
+x = mgl_create_data_size(30,1,1)
+y1 = mgl_create_data_size(40,1,1)
+y2 = mgl_create_data_size(40,1,1)
+call mgl_data_modify(a,'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)',0)
+call mgl_data_fill(x,-1.,1.,'x')
+call mgl_data_fill(y1,0.,1.,'x')
+call mgl_data_fill(y2,0.,-1.,'x')
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf_xy(gr,x,y1,a,'r')
+call mgl_surf_xy(gr,x,y2,a,'b')
+call mgl_delete_data(a)
+call mgl_delete_data(y1)
+call mgl_delete_data(x)
+call mgl_delete_data(y2)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, x, y1, y2 = mglData(30,40), mglData(30), mglData(40), mglData(40);
+a.Modify(&quot;pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)&quot;);
+x.Fill(-1,1);   y1.Fill(0,1);   y2.Fill(0,-1);
+gr.Rotate(40,60);       gr.Light(True);         gr.Box();
+gr.Surf(x,y1,a,&quot;r&quot;);    gr.Surf(x,y2,a,&quot;b&quot;);
+</pre><hr size="6">
+<a name="Cont-with-labels-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mirrored-surface-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ternary-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-_0438-_043f_043e_0434_043f_0438_0441_0438-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.6.7 Cont и подписи &ndash; пример использования</h3>
+<a name="index-Cont-8"></a>
+<div class="float">
+<img src="../png/contt.png" alt="../png/contt">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Cont(a,&quot;BbcyrRt&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+cont a 'BbcyrRt'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_cont(gr,a,&quot;BbcyrRt&quot;,7,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_cont(gr,a,'BbcyrRt',7,0)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.Cont(a,&quot;BbcyrRt&quot;);
+</pre><hr size="6">
+<a name="Ternary-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-with-labels-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Coloring-by-coordinates-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ternary-plot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.6.8 Ternary plot &ndash; пример использования</h3>
+<a name="index-Ternary-2"></a>
+<div class="float">
+<img src="../png/ternary.png" alt="../png/ternary">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData x(50),y(50),rx(10),ry(10), a(20,30);
+a.Modify(&quot;4*x*y&quot;);
+x.Modify(&quot;0.25*(1+cos(2*pi*x))&quot;);
+y.Modify(&quot;0.25*(1+sin(2*pi*x))&quot;);
+rx.Modify(&quot;rnd&quot;); ry.Modify(&quot;(1-v)*rnd&quot;,rx);
+gr-&gt;Text(mglPoint(-0.8,1.3), &quot;Ternary plot (x+y+t=1)&quot;);
+gr-&gt;Ternary(true);
+gr-&gt;Plot(x,y,&quot;r2&quot;);
+gr-&gt;Plot(rx,ry,&quot;q^ &quot;);
+gr-&gt;Cont(a);
+gr-&gt;Line(mglPoint(0.5,0), mglPoint(0,0.75), &quot;g2&quot;);
+gr-&gt;Axis(); gr-&gt;Grid(&quot;xyz&quot;,&quot;B;&quot;);
+gr-&gt;Label('x',&quot;x comp.&quot;);
+gr-&gt;Label('y',&quot;y comp.&quot;);
+gr-&gt;Label('t',&quot;t comp.&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new rx 10
+new ry 10
+new x 50
+new y 50
+new a 20 30
+modify a '4*x*y'
+modify x '0.25*(1+cos(2*pi*x))'
+modify y '0.25*(1+sin(2*pi*x))'
+modify rx 'rnd'
+modify ry 'rnd*(1-v)' rx
+text -0.8 1.3 'Ternary plot (x+y+t=1)'
+ternary on
+plot x y 'r2'
+plot rx ry 'q^ '
+cont a
+line 0.5 0 0 0.75 'g2'
+axis
+grid 'xyz' 'B;'
+xlabel 'x comp.'
+ylabel 'y comp.'
+tlabel 't comp.'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT x,y,rx,ry,a;
+x = mgl_create_data_size(50,1,1);
+y = mgl_create_data_size(50,1,1);
+rx = mgl_create_data_size(50,1,1);
+ry = mgl_create_data_size(50,1,1);
+a = mgl_create_data_size(20,30,1);
+mgl_data_modify(x,&quot;0.25*(1+cos(2*pi*x))&quot;,0);
+mgl_data_modify(y,&quot;0.25*(1+sin(2*pi*x))&quot;,0);
+mgl_data_modify(rx,&quot;rnd&quot;,0);
+mgl_data_modify_vw(ry,&quot;(1-v)*rnd&quot;,rx,0);
+mgl_data_modify(a,&quot;4*x*y&quot;,0);
+mgl_puts_ext(gr,-0.8,1.3,0.,&quot;Ternary plot (x+y+t=1)&quot;,&quot;C&quot;,-1.4,'t');
+mgl_set_ternary(gr,1);
+mgl_plot_xy(gr,x,y,&quot;r2&quot;);
+mgl_plot_xy(gr,rx,ry,&quot;q^ &quot;);
+mgl_cont(gr,a,&quot;&quot;,7,0.);
+mgl_line(gr,0.5,0.,0.,0.,0.75,0.,&quot;g2&quot;,2);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B:&quot;);
+mgl_label(gr,'x',&quot;x comp&quot;);
+mgl_label(gr,'y',&quot;y comp&quot;);
+mgl_label(gr,'t',&quot;t comp&quot;);
+mgl_delete_data(a);
+mgl_delete_data(x);     mgl_delete_data(y);
+mgl_delete_data(rx);    mgl_delete_data(ry);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,x,y,rx,ry, mgl_create_data_size
+x = mgl_create_data_size(50,1,1)
+y = mgl_create_data_size(50,1,1)
+rx = mgl_create_data_size(50,1,1)
+ry = mgl_create_data_size(50,1,1)
+a = mgl_create_data_size(20,30,1)
+call mgl_data_modify(x,'0.25*(1+cos(2*pi*x))',0)
+call mgl_data_modify(y,'0.25*(1+sin(2*pi*x))',0)
+call mgl_data_modify(rx,'rnd',0)
+call mgl_data_modify_vw(ry,'(1-v)*rnd',rx,rx)
+call mgl_data_modify(a,'4*x*y',0)
+call mgl_puts_ext(gr,-0.8,1.3,0.,'Ternary plot (x+y+t=1)','C',-1.4,'t')
+call mgl_set_ternary(gr,1)
+call mgl_plot_xy(gr,x,y,'r2')
+call mgl_plot_xy(gr,rx,ry,'q^ ')
+call mgl_cont(gr,a,'',7,0.)
+call mgl_line(gr,0.5,0.,0.,0.,0.75,0.,'g2',2)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B:')
+call mgl_label(gr,'x','x comp')
+call mgl_label(gr,'y','y comp')
+call mgl_label(gr,'t','t comp')
+call mgl_delete_data(a)
+call mgl_delete_data(x)
+call mgl_delete_data(y)
+call mgl_delete_data(rx)
+call mgl_delete_data(ry)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">x, y, rx, ry, a = mglData(50), mglData(50), mglData(10), mglData(10), mglData(20,30);
+a.Modify(&quot;4*x*y&quot;);
+x.Modify(&quot;0.25*(1+cos(2*pi*x))&quot;);   y.Modify(&quot;0.25*(1+sin(2*pi*x))&quot;);
+rx.Modify(&quot;rnd&quot;);   ry.Modify(&quot;(1-v)*rnd&quot;,rx);
+gr.Puts(-0.8,1.3,0,&quot;Ternary plot (x+y+t=1)&quot;,&quot;C&quot;,-1.4);
+gr.Ternary(True);
+gr.Plot(x,y,&quot;r2&quot;);  gr.Plot(rx,ry,&quot;q^ &quot;);   gr.Cont(a);
+gr.Line(0.5,0,0,0,0.75,0,&quot;g2&quot;);
+gr.Axis();          gr.Grid(&quot;xyz&quot;,&quot;B;&quot;);
+gr.Label(&quot;x&quot;,&quot;x comp.&quot;);
+gr.Label(&quot;y&quot;,&quot;y comp.&quot;);
+gr.Label(&quot;t&quot;,&quot;t comp.&quot;);
+</pre><hr size="6">
+<a name="Coloring-by-coordinates-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ternary-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Drops-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_043a_0440_0430_0448_0438_0432_0430_043d_0438e-_043f_043e-_043f_043e_043b_043e_0436e_043d_0438_044e-g_0440_0430_043d_0438"></a>
+<h3 class="subsection">9.6.9 Окрашивание по положению грани</h3>
+<a name="index-Surf3-9"></a>
+<div class="float">
+<img src="../png/surf3_rgbd.png" alt="../png/surf3_rgbd">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Surf3(a,&quot;bgrd&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+surf3 a 'bgrd'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_surf3(gr,a,&quot;bgrd&quot;,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'bgrd',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2+(2*y-1)^2+(2*z-1)^4-(2*z-1)^2-0.1)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.Surf3(a,&quot;bgrd&quot;);
+</pre><hr size="6">
+<a name="Drops-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Coloring-by-coordinates-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Molecules-drawing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Drops-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.6.10 Drops &ndash; пример использования</h3>
+<a name="index-Drop-4"></a>
+<div class="float">
+<img src="../png/drops.png" alt="../png/drops">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Light(true);
+gr-&gt;Puts(mglPoint(-1,1.2),&quot;sh=0&quot;);
+gr-&gt;Drop(mglPoint(-1,0),mglPoint(0,1),0.5,&quot;r&quot;,0);
+gr-&gt;Puts(mglPoint(-0.33,1.2),&quot;sh=0.33&quot;);
+gr-&gt;Drop(mglPoint(-0.33,0),mglPoint(0,1),0.5,&quot;r&quot;,0.33);
+gr-&gt;Puts(mglPoint(0.33,1.2),&quot;sh=0.67&quot;);
+gr-&gt;Drop(mglPoint(0.33,0),mglPoint(0,1),0.5,&quot;r&quot;,0.67);
+gr-&gt;Puts(mglPoint(1,1.2),&quot;sh=1&quot;);
+gr-&gt;Drop(mglPoint(1,0),mglPoint(0,1),0.5,&quot;r&quot;,1);
+gr-&gt;Ball(mglPoint(-1,0,1),'k');
+gr-&gt;Ball(mglPoint(-0.33,0,1),'k');
+gr-&gt;Ball(mglPoint(0.33,0,1),'k');
+gr-&gt;Ball(mglPoint(1,0,1),'k');
+gr-&gt;Line(mglPoint(-1,0,1),mglPoint(1,0,1),&quot;b&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">light on
+text -1 1.2 'sh=0'
+drop -1 0 0 1 0.5 'r' 0
+text -0.33 1.2 'sh=0.33'
+drop -0.33 0 0 1 0.5 'r' 0.33
+text 0.33 1.2 'sh=0.67'
+drop 0.33 0 0 1 0.5 'r' 0.67
+text 1 1.2 'sh=1'
+drop 1 0 0 1 0.5 'r' 1
+ball -1 0 1 'k'
+ball -0.33 0 1 'k'
+ball 0.33 0 1 'k'
+ball 1 0 1 'k'
+line -1 0 1 1 0 1 'b'
+new h 100
+modify h '0.25*(1+x)^2'
+plot h 'k|'
+text -1 0.6 'h\sim(1+sh)^2' 'rL'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">mgl_set_light(gr,1);
+mgl_puts(gr,-1.,1.2,0.,&quot;sh=0&quot;); 
+mgl_drop(gr,-1.,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.,1.);
+mgl_puts(gr,-0.33,1.2,0.,&quot;sh=0.33&quot;); 
+mgl_drop(gr,-0.33,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.33,1.);
+mgl_puts(gr,0.33,1.2,0.,&quot;sh=0.67&quot;); 
+mgl_drop(gr,0.33,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.67,1.);
+mgl_puts(gr,1.,1.2,0.,&quot;sh=1&quot;); 
+mgl_drop(gr,1.,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,1.,1.);
+mgl_ball_str(gr,-1.,0.,1.,&quot;k&quot;);
+mgl_ball_str(gr,-0.33,0.,1.,&quot;k&quot;);
+mgl_ball_str(gr,0.33,0.,1.,&quot;k&quot;);
+mgl_ball_str(gr,1.,0.,1.,&quot;k&quot;);
+mgl_line(gr,-1.,0.,1.,1.,0.,1.,&quot;b&quot;,2);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">call mgl_set_light(gr,1);
+call mgl_puts(gr,-1.,1.2,0.,&quot;sh=0&quot;); 
+call mgl_drop(gr,-1.,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.,1.);
+call mgl_puts(gr,-0.33,1.2,0.,&quot;sh=0.33&quot;); 
+call mgl_drop(gr,-0.33,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.33,1.);
+call mgl_puts(gr,0.33,1.2,0.,&quot;sh=0.67&quot;); 
+call mgl_drop(gr,0.33,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.67,1.);
+call mgl_puts(gr,1.,1.2,0.,&quot;sh=1&quot;); 
+call mgl_drop(gr,1.,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,1.,1.);
+call mgl_ball_str(gr,-1.,0.,1.,&quot;k&quot;);
+call mgl_ball_str(gr,-0.33,0.,1.,&quot;k&quot;);
+call mgl_ball_str(gr,0.33,0.,1.,&quot;k&quot;);
+call mgl_ball_str(gr,1.,0.,1.,&quot;k&quot;);
+call mgl_line(gr,-1.,0.,1.,1.,0.,1.,&quot;b&quot;,2);
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">gr.Light(True);
+gr.Puts(-1,1.2,0,&quot;sh=0&quot;,&quot;rC&quot;);
+gr.Drop(-1,0,0,0,1,0,0.5,&quot;r&quot;,0);
+gr.Puts(-0.33,1.2,0,&quot;sh=0.33&quot;,&quot;rC&quot;);
+gr.Drop(-0.33,0,0,0,1,0,0.5,&quot;r&quot;,0.33);
+gr.Puts(0.33,1.2,0,&quot;sh=0.67&quot;,&quot;rC&quot;);
+gr.Drop(0.33,0,0,0,1,0,0.5,&quot;r&quot;,0.67);
+gr.Puts(1,1.2,0,&quot;sh=1&quot;,&quot;rC&quot;);
+gr.Drop(1,0,0,0,1,0,0.5,&quot;r&quot;,1);
+gr.Ball(-1,0,1,&quot;k&quot;);    gr.Ball(-0.33,0,1,&quot;k&quot;);
+gr.Ball(0.33,0,1,&quot;k&quot;);  gr.Ball(1,0,1,&quot;k&quot;);
+gr.Line(-1,0,1,1,0,1,&quot;b&quot;);
+</pre><hr size="6">
+<a name="Molecules-drawing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Drops-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0420_0438_0441_043e_0432_0430_043d_0438e-_043c_043e_043be_043a_0443_043b"></a>
+<h3 class="subsection">9.6.11 Рисование молекул</h3>
+<a name="index-Drop-5"></a>
+<a name="index-Sphere-3"></a>
+<div class="float">
+<img src="../png/molecule.png" alt="../png/molecule">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true); gr-&gt;Light(true);
+gr-&gt;SubPlot(2,2,0);
+gr-&gt;Text(mglPoint(0,1.2),&quot;Methane, CH_4&quot;,0,-3); gr-&gt;Rotate(60,120);
+gr-&gt;Sphere(mglPoint(0,0,0),0.25,&quot;k&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0,0,1),0.35,&quot;h&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0,0,0.7),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(-0.94,0,-0.33),0.35,&quot;h&quot;,1,2);
+gr-&gt;Sphere(mglPoint(-0.66,0,-0.23),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.47,0.82,-0.33),0.35,&quot;h&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.33,0.57,-0.23),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.47,-0.82,-0.33),0.35,&quot;h&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.33,-0.57,-0.23),0.25,&quot;g&quot;);
+gr-&gt;SubPlot(2,2,1);
+gr-&gt;Text(mglPoint(0,1.2),&quot;Water, H{_2}O&quot;,0,-3); gr-&gt;Rotate(60,100);
+gr-&gt;Sphere(mglPoint(0,0,0),0.25,&quot;r&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.3,0.5,0),0.3,&quot;m&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.3,0.5,0),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.3,-0.5,0),0.3,&quot;m&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.3,-0.5,0),0.25,&quot;g&quot;);
+gr-&gt;SubPlot(2,2,2);
+gr-&gt;Text(mglPoint(0,1.2),&quot;Oxygen, O_2&quot;,0,-3); gr-&gt;Rotate(60,120);
+gr-&gt;Drop(mglPoint(0,0.5,0),mglPoint(0,-0.3,0),0.3,&quot;m&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0,0.5,0),0.25,&quot;r&quot;);
+gr-&gt;Drop(mglPoint(0,-0.5,0),mglPoint(0,0.3,0),0.3,&quot;m&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0,-0.5,0),0.25,&quot;r&quot;);
+gr-&gt;SubPlot(2,2,3);
+gr-&gt;Text(mglPoint(0,1.2),&quot;Ammonia, NH_3&quot;,0,-3); gr-&gt;Rotate(60,120);
+gr-&gt;Sphere(mglPoint(0,0,0),0.25,&quot;b&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.33,0.57,0),0.32,&quot;n&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.33,0.57,0),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.33,-0.57,0),0.32,&quot;n&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.33,-0.57,0),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(-0.65,0,0),0.32,&quot;n&quot;,1,2);
+gr-&gt;Sphere(mglPoint(-0.65,0,0),0.25,&quot;g&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">alpha on
+light on
+subplot 2 2 0
+text 0 1.2 'Methane, CH_4' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'k'
+drop 0 0 0 0 0 1 0.35 'h' 1 2
+sphere 0 0 0.7 0.25 'g'
+drop 0 0 0 -0.94 0 -0.33 0.35 'h' 1 2
+sphere -0.66 0 -0.23 0.25 'g'
+drop 0 0 0 0.47 0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 0.57 -0.23 0.25 'g'
+drop 0 0 0 0.47 -0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 -0.57 -0.23 0.25 'g'
+subplot 2 2 1
+text 0 1.2 'Water, H{_2}O' '' -3
+rotate 60 100
+sphere 0 0 0 0.25 'r'
+drop 0 0 0 0.3 0.5 0 0.3 'm' 1 2
+sphere 0.3 0.5 0 0.25 'g'
+drop 0 0 0 0.3 -0.5 0 0.3 'm' 1 2
+sphere 0.3 -0.5 0 0.25 'g'
+subplot 2 2 2
+text 0 1.2 'Oxygen, O_2' '' -3
+rotate 60 120
+drop 0 0.5 0 0 -0.3 0 0.3 'm' 1 2
+sphere 0 0.5 0 0.25 'r'
+drop 0 -0.5 0 0 0.3 0 0.3 'm' 1 2
+sphere 0 -0.5 0 0.25 'r'
+subplot 2 2 3
+text 0 1.2 0 'Ammonia, NH_3' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'b'
+drop 0 0 0 0.33 0.57 0 0.32 'n' 1 2
+sphere 0.33 0.57 0 0.25 'g'
+drop 0 0 0 0.33 -0.57 0 0.32 'n' 1 2
+sphere 0.33 -0.57 0 0.25 'g'
+drop 0 0 0 -0.65 0 0 0.32 'n' 1 2
+sphere -0.65 0 0 0.25 'g'
+</pre><hr size="6">
+<a name="Advanced-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Molecules-drawing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Curvelinear-coorinates-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0022_041f_0440_043e_0434_0432_0438_043d_0443_0442_044be_0022-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438"></a>
+<h2 class="section">9.7 &quot;Продвинутые&quot; возможности</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Curvelinear-coorinates-sample">9.7.1 Криволинейные координаты</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2_002daxes-sample">9.7.2 Несколько осей на одном графике</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Semi_002dlog-sample">9.7.3 Semi-log &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Log_002dlog-sample">9.7.4 Log-log &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fitting-sample">9.7.5 Fitting &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Envelop-sample">9.7.6 Envelop &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Sew-sample">9.7.7 Sew &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#STFA-sample">9.7.8 STFA &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#PDE-sample">9.7.9 PDE &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Beam-tracing-sample">9.7.10 Beam tracing &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Parser-sample">9.7.11 Parser &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Manual-ticks-sample">9.7.12 Особые метки по осям</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ColumnPlot-sample">9.7.13 ColumnPlot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#StickPlot-sample">9.7.14 StickPlot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stereo-image-sample">9.7.15 Пример стерео изображения</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+</table>
+<hr size="6">
+<a name="Curvelinear-coorinates-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Advanced-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2_002daxes-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041a_0440_0438_0432_043e_043b_0438_043de_0439_043d_044be-_043a_043e_043e_0440_0434_0438_043d_0430_0442_044b-1"></a>
+<h3 class="subsection">9.7.1 Криволинейные координаты</h3>
+<a name="index-Axis-7"></a>
+<div class="float">
+<img src="../png/sample3.png" alt="../png/sample3">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Org = mglPoint(-1,1,-1);
+gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(60,40);
+gr-&gt;Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),&quot;r2&quot;,100);
+gr-&gt;Axis(); gr-&gt;Grid();
+gr-&gt;Text(mglPoint(0,1.3,1),&quot;Cartesian&quot;);
+gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(60,40);
+gr-&gt;SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;);
+gr-&gt;Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),&quot;r2&quot;,100);
+gr-&gt;Axis(); gr-&gt;Grid();
+gr-&gt;Text(mglPoint(0,1.3,1),&quot;Cylindrical&quot;);
+gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(60,40);
+gr-&gt;SetFunc(&quot;2*y*x&quot;,&quot;y*y - x*x&quot;);
+gr-&gt;Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),&quot;r2&quot;,100);
+gr-&gt;Axis(); gr-&gt;Grid();
+gr-&gt;Text(mglPoint(0,1.3,1),&quot;Parabolic&quot;);
+gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(60,40);
+gr-&gt;SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,&quot;x+z&quot;);
+gr-&gt;Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),&quot;r2&quot;,100);
+gr-&gt;Axis(); gr-&gt;Grid();
+gr-&gt;Text(mglPoint(0,1.3,1),&quot;Spiral&quot;);
+gr-&gt;Axis(0,0,0); // set to default Cartesian
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">origin -1 1 -1
+subplot 2 2 0
+rotate 60 40
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cartesian'
+subplot 2 2 1
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cylindrical'
+subplot 2 2 2
+rotate 60 40
+axis '2*y*x' 'y*y - x*x' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Parabolic'
+subplot 2 2 3
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Spiral'
+axis '' '' '' # set to default Cartesian
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">mgl_set_origin(gr,-1,1,-1);
+mgl_subplot(gr,2,2,0); mgl_rotate(gr,60,40,0);
+mgl_line(gr,-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+mgl_axis(gr,&quot;xyz&quot;); mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B&quot;);
+mgl_text(gr,0,1.3,1,&quot;Cartesian&quot;);
+mgl_subplot(gr,2,2,1); mgl_rotate(gr,60,40,0);
+mgl_set_func(gr,&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,0);
+mgl_line(gr,-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+mgl_axis(gr,&quot;xyz&quot;); mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B&quot;);
+mgl_text(gr,0,1.3,1,&quot;Cylindrical&quot;);
+mgl_subplot(gr,2,2,2); mgl_rotate(gr,60,40,0);
+mgl_set_func(gr,&quot;2*y*x&quot;,&quot;y*y - x*x&quot;,&quot;&quot;);
+mgl_line(gr,-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+mgl_axis(gr,&quot;xyz&quot;); mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B&quot;);
+mgl_text(gr,0,1.3,1,&quot;Parabolic&quot;);
+mgl_subplot(gr,2,2,3); mgl_rotate(gr,60,40,0);
+mgl_set_func(gr,&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,&quot;x+z&quot;);
+mgl_line(gr,-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+mgl_axis(gr,&quot;xyz&quot;); mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B&quot;);
+mgl_text(gr,0,1.3,1,&quot;Spiral&quot;);
+mgl_set_func(gr,0,0,0); /* set to default Cartesian */
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">call mgl_set_origin(gr,-1.,1.,-1.)
+call mgl_subplot(gr,2,2,0)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,'Cartesian')
+call mgl_subplot(gr,2,2,1)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_set_func(gr,'y*sin(pi*x)','y*cos(pi*x)','')
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,'Cylindrical')
+call mgl_subplot(gr,2,2,2)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_set_func(gr,'2*y*x','y*y - x*x','')
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,&quot;Parabolic&quot;)
+call mgl_subplot(gr,2,2,3)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_set_func(gr,'y*sin(pi*x)','y*cos(pi*x)','x+z')
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,'Spiral')
+call mgl_set_func(gr,'','','') ! set to default Cartesian
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">gr.SetOrigin(-1,1,-1);
+gr.SubPlot(2,2,0);              gr.Rotate(60,40);
+gr.Line(-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+gr.Axis();              gr.Grid();
+gr.Puts(0,1.3,1,&quot;Gartesian&quot;,&quot;rC&quot;,-1.5);
+gr.SubPlot(2,2,1);  gr.Rotate(60,40);
+gr.SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;);
+gr.Line(-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+gr.Axis();          gr.Grid();
+gr.Puts(0,1.3,1,&quot;Cylindrical&quot;,&quot;rC&quot;,-1.5);
+gr.SubPlot(2,2,2);  gr.Rotate(60,40);
+gr.SetFunc(&quot;2*y*x&quot;,&quot;y*y-x*x&quot;);
+gr.Line(-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+gr.Axis();          gr.Grid();
+gr.Puts(0,1.3,1,&quot;Parabolic&quot;,&quot;rC&quot;,-1.5);
+gr.SubPlot(2,2,3);  gr.Rotate(60,40);
+gr.SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,&quot;x+z&quot;);
+gr.Line(-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+gr.Axis();          gr.Grid();
+gr.Puts(0,1.3,1,&quot;Spiral&quot;,&quot;rC&quot;,-1.5);
+gr.SetFunc(&quot;&quot;,&quot;&quot;);   # set to default Gartesian
+</pre><hr size="6">
+<a name="g_t2_002daxes-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Curvelinear-coorinates-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Semi_002dlog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041de_0441_043a_043e_043bx_043a_043e-_043e_0441e_0439-_043d_0430-_043e_0434_043d_043e_043c-g_0440_0430_0444_0438_043ae"></a>
+<h3 class="subsection">9.7.2 Несколько осей на одном графике</h3>
+<a name="index-Axis-8"></a>
+<div class="float">
+<img src="../png/2_axis.png" alt="../png/2_axis">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y1(50), y2(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;); y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,-1,-1));
+gr-&gt;Axis(); gr-&gt;Label('y',&quot;axis 1&quot;,0);
+gr-&gt;Plot(y1,&quot;b&quot;);
+gr-&gt;Axis(mglPoint(0,0,0),mglPoint(1,1,1),mglPoint(1,1,1));
+gr-&gt;Axis(); gr-&gt;Label('y',&quot;axis 2&quot;,0);
+gr-&gt;Stem(y2,&quot;r&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+axis -1 -1 -1 1 1 1
+origin -1 -1 -1
+axis
+ylabel 'axis 1' 0
+plot y1 'b'
+axis 0 0 0 1 1 1
+origin 1 1 1
+axis
+ylabel 'axis 2' 0
+stem y2 'r'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_set_axis_2d(gr,-1.,1.,-1.,1.);
+mgl_set_origin(gr,-1.,-1.,-1.);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_label_ext(gr,'y',&quot;axis 1&quot;,0,-1.4,0.);
+mgl_plot(gr,y1,&quot;b&quot;);
+mgl_set_axis_2d(gr,0.,0.,1.,1.);
+mgl_set_origin(gr,1.,1.,1.);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_label_ext(gr,'y',&quot;axis 2&quot;,0,-1.4,0.);
+mgl_stem(gr,y2,&quot;r&quot;);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y1,y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1)
+y2 = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y1,'0.3*sin(2*pi*x)',0)
+call mgl_data_modify(y2,'0.5+0.3*cos(2*pi*x)',0)
+call mgl_set_axis_2d(gr,-1.,1.,-1.,1.)
+call mgl_set_origin(gr,-1.,-1.,-1.)
+call mgl_axis(gr,'xyz')
+call mgl_label_ext(gr,'y','axis 1',0,-1.4,0.)
+call mgl_plot(gr,y1,'b')
+call mgl_set_axis_2d(gr,0.,0.,1.,1.)
+call mgl_set_origin(gr,1.,1.,1.)
+call mgl_axis(gr,'xyz')
+call mgl_label_ext(gr,'y','axis 2',0,-1.4,0.)
+call mgl_stem(gr,y2,'r')
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y1, y2 = mglData(50), mglData(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);   y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.SetRanges(-1,1,-1,1);   gr.SetOrigin(-1,-1);
+gr.Axis();      gr.Label(&quot;y&quot;,&quot;axis 1&quot;,0);
+gr.Plot(y1,&quot;b&quot;);
+gr.SetRanges(0,1,0,1);      gr.SetOrigin(1,1);
+gr.Axis();      gr.Label(&quot;y&quot;,&quot;axis 2&quot;,0);
+gr.Stem(y2,&quot;r&quot;);
+</pre><hr size="6">
+<a name="Semi_002dlog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2_002daxes-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Log_002dlog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Semi_002dlog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.3 Semi-log &ndash; пример использования</h3>
+<a name="index-Axis-9"></a>
+<a name="index-SetTicks-2"></a>
+<a name="index-Plot-10"></a>
+<div class="float">
+<img src="../png/semilog.png" alt="../png/semilog">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData x(2000), y(2000);
+x.Modify(&quot;0.01/(x+10^(-5))&quot;); y.Modify(&quot;sin(1/v)&quot;,x);
+gr-&gt;Axis(mglPoint(0.01,-1),mglPoint(1000,1),mglPoint(0.01,-1));
+gr-&gt;SetFunc(&quot;lg(x)&quot;,0);  gr-&gt;SetTicks('x',0);
+gr-&gt;Box();
+gr-&gt;Plot(x,y,&quot;b2&quot;);
+gr-&gt;Axis(); gr-&gt;Grid(&quot;xy&quot;,&quot;g&quot;);
+gr-&gt;Label('x',&quot;x&quot;,0);   gr-&gt;Label('y', &quot;y = sin 1/x&quot;,0);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new x 2000
+new y 2000
+modify x '0.01/(x+10^(-5))'
+modify y 'sin(1/v)' x
+xrange 0.01 1000
+origin 0.01 -1 0
+xtick 0
+axis 'lg(x)' '' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g'
+xlabel 'x' 0
+ylabel 'y = sin 1/x' 0
+box
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT x = mgl_create_data_size(2000,1,1);
+HMDT y = mgl_create_data_size(2000,1,1);
+mgl_data_modify(x,&quot;0.01/(x+10^(-5))&quot;,0);
+mgl_data_modify_vw(y,&quot;sin(1/v)&quot;,x,0);
+mgl_set_axis(gr,0.01,-1.,0.,1000.,1.,0.,0.01,-1.,0.);
+mgl_set_func(gr,&quot;lg(x)&quot;,0,0);
+mgl_set_ticks(gr,0.,-5.,-5.);
+mgl_box(gr,1);
+mgl_plot_xy(gr,x,y,&quot;b2&quot;);
+mgl_axis(gr,&quot;xy&quot;); mgl_axis_grid(gr,&quot;xy&quot;,&quot;g&quot;);
+mgl_label_ext(gr,'x',&quot;x&quot;,0,-1.4,0);
+mgl_label_ext(gr,'y', &quot;y = sin 1/x&quot;,0,-1.4,0);
+mgl_delete_data(x); mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer x,y, mgl_create_data_size
+x = mgl_create_data_size(2000,1,1)
+y = mgl_create_data_size(2000,1,1)
+call mgl_data_modify(x,'0.01/(x+10^(-5))',0)
+call mgl_data_modify_vw(y,'sin(1/v)',x,x)
+call mgl_set_axis(gr,0.01,-1.,0.,1000.,1.,0.,0.01,-1.,0.)
+call mgl_set_func(gr,'lg(x)','','')
+call mgl_set_ticks(gr,0.,-5.,-5.)
+call mgl_box(gr,1)
+call mgl_plot_xy(gr,x,y,'b2')
+call mgl_axis(gr,'xy')
+call mgl_axis_grid(gr,'xy','g')
+call mgl_label_ext(gr,'x','x',0.,-1.4,0.)
+call mgl_label_ext(gr,'y', 'y = sin 1/x',0.,-1.4,0.)
+call mgl_delete_data(x)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">TO BE DONE
+</pre><hr size="6">
+<a name="Log_002dlog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Semi_002dlog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fitting-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Log_002dlog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.4 Log-log &ndash; пример использования</h3>
+<a name="index-Axis-10"></a>
+<a name="index-SetTicks-3"></a>
+<a name="index-Plot-11"></a>
+<div class="float">
+<img src="../png/loglog.png" alt="../png/loglog">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData x(100), y(100);
+x.Modify(&quot;pow(10,6*x-3)&quot;); y.Modify(&quot;sqrt(1+v^2)&quot;,x);
+gr-&gt;Axis(mglPoint(0.001,0.1),mglPoint(1000,1000),mglPoint(0.001,0.1));
+gr-&gt;SetFunc(&quot;lg(x)&quot;,&quot;lg(y)&quot;);
+gr-&gt;SetTicks('x',0);    gr-&gt;SetTicks('y',0);
+gr-&gt;Box();
+gr-&gt;Plot(x,y,&quot;b2&quot;);
+gr-&gt;Axis(); gr-&gt;Grid(&quot;xy&quot;,&quot;g;&quot;);
+gr-&gt;Label('x',&quot;x&quot;,0); gr-&gt;Label('y', &quot;y=\\sqrt{1+x^2}&quot;,0);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new x 100
+new y 100
+modify x 'pow(10,6*x-3)'
+modify y 'sqrt(1+v^2)' x
+axis 0.001 0.1 1000 1000
+xtick 0
+ytick 0
+axis 'lg(x)' 'lg(y)' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g;'
+xlabel 'x' 0
+ylabel 'y=\sqrt{1+x^2}' 0
+box
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT x = mgl_create_data_size(100,1,1);
+HMDT y = mgl_create_data_size(100,1,1);
+mgl_data_modify(x,&quot;pow(10,6*x-3)&quot;,0);
+mgl_data_modify_vw(y,&quot;sqrt(1+v^2)&quot;,x,0);
+mgl_set_axis(gr,0.001,0.1,0.,1000.,1000.,0.,0.001,0.1,0.);
+mgl_set_func(gr,&quot;lg(x)&quot;,&quot;lg(y)&quot;,0);
+mgl_set_ticks(gr,0.,0.,-5.);
+mgl_box(gr,1);
+mgl_plot_xy(gr,x,y,&quot;b2&quot;);
+mgl_axis(gr,&quot;xy&quot;); mgl_axis_grid(gr,&quot;xy&quot;,&quot;g;&quot;);
+mgl_label_ext(gr,'x',&quot;x&quot;,0,-1.4,0);
+mgl_label_ext(gr,'y', &quot;y=\\sqrt{1+x^2}&quot;,0,-1.4,0);
+mgl_delete_data(x); mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer x,y, mgl_create_data_size
+x = mgl_create_data_size(100,1,1)
+y = mgl_create_data_size(100,1,1)
+call mgl_data_modify(x,'pow(10,6*x-3)',0)
+call mgl_data_modify_vw(y,'sqrt(1+v^2)',x,x)
+call mgl_set_axis(gr,0.001,0.1,0.,1000.,1000.,0.,0.001,0.1,0.)
+call mgl_set_func(gr,'lg(x)','lg(y)','')
+call mgl_set_ticks(gr,0.,0.,-5.)
+call mgl_box(gr,1)
+call mgl_plot_xy(gr,x,y,'b2')
+call mgl_axis(gr,'xy')
+call mgl_axis_grid(gr,'xy','g;')
+call mgl_label_ext(gr,'x','x',0.,-1.4,0)
+call mgl_label_ext(gr,'y', 'y=\sqrt{1+x^2}',0.,-1.4,0)
+call mgl_delete_data(x)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">x, y = mglData(100), mglData(100);
+x.Modify(&quot;pow(10,6*x-3)&quot;);          y.Modify(&quot;sqrt(1+v^2)&quot;,x);
+gr.SetRanges(0.001,1000,0.1,1000);  gr.SetOrigin(0.001,0.1);
+gr.SetFunc(&quot;lg(x)&quot;,&quot;lg(y)&quot;);
+gr.SetTicks(&quot;x&quot;,0);     gr.SetTicks(&quot;y&quot;,0);
+gr.Box();               gr.Plot(x,y,&quot;b2&quot;);
+gr.Axis();              gr.Grid(&quot;xy&quot;,&quot;g;&quot;);
+gr.Label(&quot;x&quot;,&quot;x&quot;,0);    gr.Label(&quot;y&quot;,&quot;y=\\sqrt{1+x^2}&quot;,0);
+</pre><hr size="6">
+<a name="Fitting-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Log_002dlog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Envelop-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fitting-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.5 Fitting &ndash; пример использования</h3>
+<a name="index-Fit-9"></a>
+<a name="index-PutsFit-2"></a>
+<div class="float">
+<img src="../png/fit.png" alt="../png/fit">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData rnd(100), in(100), res;
+rnd.Fill(&quot;0.4*rnd+0.1+sin(2*pi*x)&quot;, gr-&gt;Min, gr-&gt;Max);
+in.Fill(&quot;0.3+sin(2*pi*x)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Axis(mglPoint(-1,-2), mglPoint(1,2));
+gr-&gt;Plot(rnd, &quot;. &quot;);
+gr-&gt;Box();
+float ini[3] = {1,1,3};
+gr-&gt;Fit(res, rnd, &quot;a+b*sin(c*x)&quot;, &quot;abc&quot;, ini);
+gr-&gt;Plot(res, &quot;r&quot;);
+gr-&gt;Plot(in, &quot;b&quot;);
+gr-&gt;Text(mglPoint(-1, -1.3), &quot;fitted:&quot;, &quot;L:r&quot;, -1);
+gr-&gt;PutsFit(mglPoint(0, -1.8), &quot;y = &quot;, &quot;C:r&quot;, -1);
+gr-&gt;Text(mglPoint(0, 2.2), &quot;initial: y = 0.3+sin(2\\pi x)&quot;, &quot;C:b&quot;, -1);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new rnd 100
+fill rnd '0.4*rnd+0.1+sin(2*pi*x)'
+new in 100
+fill in '0.3+sin(2*pi*x)'
+yrange -2 2
+plot rnd '. '
+box
+list ini 1 1 3
+fit res rnd 'a+b*sin(c*x)' 'abc' ini
+plot res 'r'
+plot in 'b'
+text -1 -1.3 'fitted:' 'L:r' -1
+putsfit 0 -1.8 'y = ' 'C:r'
+text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT rnd,in,res;
+float ini[3] = {1,1,3};
+rnd = mgl_create_data_size(100,1,1);
+in = mgl_create_data_size(100,1,1);
+res = mgl_create_data();
+mgl_data_modify(rnd,&quot;0.4*rnd+0.1+sin(4*pi*x)&quot;,0);
+mgl_data_modify(in,&quot;0.3+sin(4*pi*x)&quot;,0);
+mgl_set_axis_2d(gr,-1.,-2.,1.,2.);
+mgl_plot(gr,rnd,&quot;. &quot;);
+mgl_box(gr,1);
+mgl_fit_1(gr,res,rnd,&quot;a+b*sin(c*x)&quot;,&quot;abc&quot;,ini);
+mgl_plot(gr,res,&quot;r&quot;);   mgl_plot(gr,in,&quot;b&quot;);
+mgl_puts_ext(gr,-1.,-1.3,0.,&quot;fitted:&quot;,&quot;L:r&quot;,-1.,'t');
+mgl_puts_fit(gr,0.,-1.8,0.,&quot;y = &quot;,&quot;C:r&quot;,-1.);
+mgl_puts_ext(gr,0.,2.2,0.,&quot;initial: y = 0.3+sin(2\\pi x)&quot;,&quot;C:b&quot;, -1., 't');
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer rnd,in,res, mgl_create_data_size
+real ini(3)
+ini(1)=1;   ini(2)=1;   ini(3)=3;
+rnd = mgl_create_data_size(100,1,1);
+in = mgl_create_data_size(100,1,1);
+res = mgl_create_data();
+call mgl_data_modify(rnd,&quot;0.4*rnd+0.1+sin(4*pi*x)&quot;,0);
+call mgl_data_modify(in,&quot;0.3+sin(4*pi*x)&quot;,0);
+call mgl_set_axis_2d(gr,-1.,-2.,1.,2.);
+call mgl_plot(gr,rnd,&quot;. &quot;);
+call mgl_box(gr,1);
+call mgl_fit_1(gr,res,rnd,&quot;a+b*sin(c*x)&quot;,&quot;abc&quot;,ini);
+call mgl_plot(gr,res,&quot;r&quot;);
+call mgl_plot(gr,in,&quot;b&quot;);
+call mgl_puts_ext(gr,-1.,-1.3,0.,&quot;fitted:&quot;,&quot;L:r&quot;,-1.,'t');
+call mgl_puts_fit(gr,0.,-1.8,0.,&quot;y = &quot;,&quot;C:r&quot;,-1.);
+call mgl_puts_ext(gr,0.,2.2,0.,&quot;initial: y = 0.3+sin(2\\pi x)&quot;,&quot;C:b&quot;, -1., 't');
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">rnd, In, res, ini = mglData(100), mglData(100), mglData(), mglData(3);
+rnd.Modify(&quot;0.4*rnd+0.1+sin(4*pi*x)&quot;);
+In.Modify(&quot;0.3+sin(4*pi*x)&quot;);
+gr.SetRanges(-1,1,-2,2);
+gr.Plot(rnd,&quot;. &quot;);
+gr.Box();
+ini[0], ini[1], ini[2] = 1, 1, 3;
+gr.Fit(res,rnd,&quot;a+b*sin(c*x)&quot;,&quot;abc&quot;,ini);
+gr.Plot(res,&quot;r&quot;);   gr.Plot(In,&quot;b&quot;);
+gr.Puts(-1,-1.3,0,&quot;fitted:&quot;,&quot;L:r&quot;,-1);
+gr.PutsFit(0,-1.8,0,&quot;y = &quot;,&quot;C:r&quot;,-1);
+gr.Puts(0,2.2,0,&quot;initial: y = 0.3+sin(2\\pi x)&quot;,&quot;C:b&quot;,-1);
+</pre><hr size="6">
+<a name="Envelop-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fitting-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Sew-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Envelop-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.6 Envelop &ndash; пример использования</h3>
+<a name="index-Envelop-2"></a>
+<div class="float">
+<img src="../png/envelop.png" alt="../png/envelop">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(1000);
+a.Fill(&quot;exp(-8*x^2)*sin(10*pi*x)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Plot(a, &quot;b&quot;);
+a.Envelop('x');
+gr-&gt;Plot(a, &quot;r&quot;);
+gr-&gt;Axis();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 1000
+fill a 'exp(-8*x^2)*sin(10*pi*x)'
+plot a 'b'
+envelop a
+plot a 'r'
+axis
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(1000,1,1);
+mgl_data_fill_eq(gr,a, &quot;exp(-8*x^2)*sin(10*pi*x)&quot;, 0,0);
+mgl_plot(gr,a,&quot;b&quot;);
+mgl_data_envelop(a,'x');
+mgl_plot(gr,a,&quot;r&quot;);
+mgl_axis(gr,&quot;xyz&quot;);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(1000,1,1)
+call mgl_data_fill_eq(gr,a, 'exp(-8*x^2)*sin(10*pi*x)', 0,0)
+call mgl_plot(gr,a,'b')
+call mgl_data_envelop(a,'x')
+call mgl_plot(gr,a,'r')
+call mgl_axis(gr,'xyz')
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(1000);
+gr.Fill(a, &quot;exp(-8*x^2)*sin(10*pi*x)&quot;);
+gr.Plot(a,&quot;b&quot;);
+a.Envelop(&quot;x&quot;);
+gr.Plot(a,&quot;r&quot;);
+gr.Axis();
+</pre><hr size="6">
+<a name="Sew-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Envelop-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#STFA-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Sew-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.7 Sew &ndash; пример использования</h3>
+<a name="index-Sew-2"></a>
+<div class="float">
+<img src="../png/sew.png" alt="../png/sew">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(100, 100);
+a.Modify(&quot;mod((y^2-(1-x)^2)/2,0.1)&quot;);
+gr-&gt;Rotate(40, 60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Surf(a, &quot;b&quot;);
+a.Sew(&quot;xy&quot;, 0.1);
+gr-&gt;Surf(a, &quot;r&quot;);
+gr-&gt;Box();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 100 100
+modify a 'mod((y^2-(1-x)^2)/2,0.1)'
+rotate 40 60
+light on
+alpha on
+surf a 'b'
+sew a 'xy' 0.1
+surf a 'r'
+box
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(100,100,1);
+mgl_data_modify(a, &quot;mod((y^2-(1-x)^2)/2, 0.1)&quot;, 0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_surf(gr,a,&quot;b&quot;);
+mgl_data_sew(a,&quot;xy&quot;,0.1);
+mgl_surf(gr,a,&quot;r&quot;);
+mgl_box(gr,1);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(100,100,1)
+call mgl_data_modify(a, 'mod((y^2-(1-x)^2)/2, 0.1)', 0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_surf(gr,a,'b')
+call mgl_data_sew(a,'xy',0.1)
+call mgl_surf(gr,a,'r')
+call mgl_box(gr,1)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(100, 100);
+a.Modify(&quot;mod((y^2-(1-x)^2)/2, 0.1)&quot;);
+gr.Rotate(40, 60);  gr.Light(True);     gr.Alpha(True);
+gr.Surf(a, &quot;b&quot;);
+a.Sew(&quot;xy&quot;, 0.1);
+gr.Surf(a, &quot;r&quot;);
+gr.Box();
+</pre><hr size="6">
+<a name="STFA-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Sew-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#PDE-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="STFA-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.8 STFA &ndash; пример использования</h3>
+<a name="index-STFA-3"></a>
+<div class="float">
+<img src="../png/stfa.png" alt="../png/stfa">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(2000), b(2000);
+a.Fill(&quot;cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+ \
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)&quot;, 
+        gr-&gt;Min, gr-&gt;Max);
+gr-&gt;SubPlot(1, 2, 0);
+gr-&gt;Plot(a);
+gr-&gt;Axis();
+gr-&gt;Label('x', &quot;\\i t&quot;);
+gr-&gt;SubPlot(1, 2, 1);
+gr-&gt;STFA(a, b, 64);
+gr-&gt;Axis();
+gr-&gt;Label('x', &quot;\\i t&quot;);
+gr-&gt;Label('y', &quot;\\omega&quot;, 0);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 2000
+new b 2000
+fill a 'cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)'
+subplot 1 2 0
+plot a
+axis
+xlabel '\i t'
+subplot 1 2 1
+stfa a b 64 ''
+axis
+ylabel '\omega' 0
+xlabel '\i t'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(2000,1,1);
+HMDT b = mgl_create_data_size(2000,1,1);
+mgl_data_fill_eq(gr, a, &quot;cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+ \
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)&quot;,0,0);
+mgl_subplot(gr,1,2,0);
+mgl_plot(gr,a,&quot;&quot;);
+mgl_axis(gr,&quot;xy&quot;);
+mgl_label(gr,'x', &quot;\\i t&quot;);
+mgl_subplot(gr,1,2,1);
+mgl_stfa(gr,a,b,64,&quot;&quot;,0.);
+mgl_axis(gr,&quot;xy&quot;);
+mgl_label(gr,'x', &quot;\\i t&quot;);
+mgl_label(gr,'y', &quot;\\omega&quot;);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(2000,1,1)
+b = mgl_create_data_size(2000,1,1)
+call mgl_data_fill_eq(gr, a, 'cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+ &amp;
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)',0,0)
+call mgl_subplot(gr,1,2,0)
+call mgl_plot(gr,a,'')
+call mgl_axis(gr,'xy')
+call mgl_label(gr,'x', '\i t')
+call mgl_subplot(gr,1,2,1)
+call mgl_stfa(gr,a,b,64,'',0.)
+call mgl_axis(gr,'xy')
+call mgl_label(gr,'x', '\i t')
+call mgl_label(gr,'y', '\omega')
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(2000), mglData(2000);
+gr.Fill(a,&quot;cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+ \
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)&quot;);
+gr.SubPlot(1, 2, 0);
+gr.Plot(a);
+gr.Axis();
+gr.Label('x', &quot;\\i t&quot;);
+gr.SubPlot(1, 2, 1);
+gr.STFA(a, b, 64);
+gr.Axis();
+gr.Label('x', &quot;\\i t&quot;);
+gr.Label('y', &quot;\\omega&quot;, 0);
+</pre><hr size="6">
+<a name="PDE-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#STFA-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Beam-tracing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="PDE-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.9 PDE &ndash; пример использования</h3>
+<a name="index-mglPDE-1"></a>
+<a name="index-mglRay-1"></a>
+<div class="float">
+<img src="../png/pde.png" alt="../png/pde">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a,re(128),im(128);
+gr-&gt;Axis();
+gr-&gt;Label('x', &quot;\\i x&quot;);
+gr-&gt;Label('y', &quot;\\i z&quot;);
+	
+re.Fill(&quot;exp(-48*(x+0.7)^2)&quot;, gr-&gt;Min, gr-&gt;Max);
+a = mglPDE(&quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;, re, im, gr-&gt;Min, gr-&gt;Max, 0.01, 30);
+a.Transpose(&quot;yxz&quot;);
+gr-&gt;CAxis(0, 1);
+gr-&gt;Dens(a,&quot;wyrRk&quot;);
+gr-&gt;Plot(&quot;-x&quot;, &quot;k|&quot;);
+gr-&gt;Puts(mglPoint(0, 0.85), &quot;absorption: (x+z)/2 for x+z&gt;0&quot;);
+gr-&gt;Title(&quot;\\r{Equation:} ik_0\\partial_zu + \\Delta u + x\\cdot u + \
+i \\frac{x+z}{2}\\cdot u = 0&quot;, &quot;iC&quot;, -1.5);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+fill re 'exp(-48*(x+0.7)^2)'
+pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)' re im 0.01 30
+transpose a
+crange 0 1
+dens a 'wyrRk'
+fplot '-x' 'k|'
+text 0 0.85 'absorption: (x+z)/2 for x+z&gt;0' '' -1
+title 'Equation: ik_0\partial_zu + \Delta u + x\cdot u + i \frac{x+z}{2}\cdot u = 0' 'iC' -1.5
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data();
+HMDT re = mgl_create_data_size(128,1,1);
+HMDT im = mgl_create_data_size(128,1,1);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_label(gr,'x', &quot;\\i x&quot;);
+mgl_label(gr,'y', &quot;\\i z&quot;);
+mgl_data_fill_eq(gr,re,&quot;exp(-48*(x+0.7)^2)&quot;, 0, 0);
+a = mgl_pde_solve(gr, &quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;, re, im, 0.01, 30.);
+mgl_data_transpose(a, &quot;yxz&quot;);
+mgl_set_caxis(gr, 0, 1);
+mgl_dens(gr, a,&quot;wyrRk&quot;, -1.);
+mgl_fplot(gr, &quot;-x&quot;, &quot;k|&quot;, 100);
+mgl_puts(gr, 0., 0.85, 0., &quot;absorption: (x+z)/2 for x+z&gt;0&quot;);
+mgl_title(gr, &quot;\\r{Equation:} ik_0\\partial_zu + \\Delta u + x\\cdot u + \
+i \\frac{x+z}{2}\\cdot u = 0&quot;, &quot;iC&quot;, -1.5);
+mgl_delete_data(a);
+mgl_delete_data(im);
+mgl_delete_data(re);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,re,im, mgl_create_data_size
+a = mgl_create_data()
+re = mgl_create_data_size(128,1,1)
+im = mgl_create_data_size(128,1,1)
+call mgl_axis(gr,'xyz')
+call mgl_label(gr,'x', '\i x')
+call mgl_label(gr,'y', '\i z')
+call mgl_data_fill_eq(gr,re,'exp(-48*(x+0.7)^2)', 0, 0)
+a = mgl_pde_solve(gr, 'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)', re, im, 0.01, 30.)
+call mgl_data_transpose(a, 'yxz')
+call mgl_set_caxis(gr, 0., 1.)
+call mgl_dens(gr, a,'wyrRk', -1.)
+call mgl_fplot(gr, '-x', 'k|', 100)
+call mgl_puts(gr, 0., 0.85, 0., 'absorption: (x+z)/2 for x+z&gt;0')
+call mgl_title(gr, '\r{Equation:} ik_0\partial_zu + \Delta u + x\cdot u + &amp;
+i \frac{x+z}{2}\cdot u = 0', 'iC', -1.5)
+call mgl_delete_data(a)
+call mgl_delete_data(im)
+call mgl_delete_data(re)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, re, im = mglData(), mglData(128), mglData(128);
+gr.Axis();
+gr.Label('x', &quot;\\i x&quot;);
+gr.Label('y', &quot;\\i z&quot;);
+	
+gr.Fill(re,&quot;exp(-48*(x+0.7)^2)&quot;);
+a = gr.PDE(&quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;, re, im, 0.01, 30);
+a.Transpose(&quot;yxz&quot;);
+gr.SetCRange(0, 1);
+gr.Dens(a,&quot;wyrRk&quot;);
+gr.Plot(&quot;-x&quot;, &quot;k|&quot;);
+gr.Puts(0, 0.85, 0., &quot;absorption: (x+z)/2 for x+z&gt;0&quot;);
+gr.Title(&quot;\\r{Equation:} ik_0\\partial_zu + \\Delta u + x\\cdot u + \
+i \\frac{x+z}{2}\\cdot u = 0&quot;, &quot;iC&quot;, -1.5);
+</pre><hr size="6">
+<a name="Beam-tracing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#PDE-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Parser-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Beam-tracing-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.10 Beam tracing &ndash; пример использования</h3>
+<a name="index-mglQO2d-1"></a>
+<a name="index-mglRay-2"></a>
+<div class="float">
+<img src="../png/qo2d.png" alt="../png/qo2d">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData r, xx, yy, a, im(128), re(128);
+const char *ham = &quot;p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)&quot;;
+r = mglRay(ham, mglPoint(-0.7, -1), mglPoint(0, 0.5), 0.02, 2);
+gr-&gt;Plot(r.SubData(0), r.SubData(1), &quot;k&quot;);
+gr-&gt;Axis();	gr-&gt;Label('x', &quot;\\i x&quot;);	gr-&gt;Label('y', &quot;\\i z&quot;);
+// now start beam tracing
+re.Fill(&quot;exp(-48*x^2)&quot;, gr-&gt;Min, gr-&gt;Max);
+a = mglQO2d(ham, re, im, r, 1, 30, &amp;xx, &amp;yy);
+gr-&gt;CAxis(0, 1);
+gr-&gt;Dens(xx, yy, a, &quot;wyrRk&quot;);
+gr-&gt;Plot(&quot;-x&quot;, &quot;k|&quot;);
+gr-&gt;Puts(mglPoint(0, 0.85), &quot;absorption: (x+y)/2 for x+y&gt;0&quot;);
+gr-&gt;Puts(mglPoint(0.7, -0.05), &quot;central ray&quot;);
+gr-&gt;Title(&quot;Beam and ray tracing&quot;, &quot;C&quot;, -1.5);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)'
+ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
+plot r(0) r(1) 'k'
+axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+new xx
+new yy
+fill re 'exp(-48*x^2)'
+qo2d a $1 re im r 1 30 xx yy 
+crange 0 1
+dens xx yy a 'wyrRk'
+fplot '-x' 'k|'
+text -0.8 0.85 'absorption: (x+y)/2 for x+y&gt;0' 'L' -1
+text 0.5 -0.05 'central ray' 'L' -1
+title 'Beam and ray tracing' 'C' -1.5
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">const char *ham = &quot;p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)&quot;;
+HMDT r, xx, yy, a, im, re;
+im = mgl_create_data_size(128,1,1);
+re = mgl_create_data_size(128,1,1);
+r = mgl_ray_trace(ham, -0.7, -1., 0., 0., 0.5, 0., 0.02, 2.);
+xx = mgl_data_subdata(r,0,-1,-1);
+yy = mgl_data_subdata(r,1,-1,-1);
+mgl_plot_xy(gr, xx, yy, &quot;k&quot;);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_label(gr,'x',&quot;\\i x&quot;);
+mgl_label(gr,'y',&quot;\\i z&quot;);
+mgl_data_fill_eq(gr,re,&quot;exp(-48*x^2)&quot;, 0, 0);
+a = mgl_qo2d_solve(ham, re, im, r, 1, 30, xx, yy);
+mgl_set_caxis(gr,0.,1.);
+mgl_dens_xy(gr,xx, yy, a, &quot;wyrRk&quot;, -1.);
+mgl_fplot(gr,&quot;-x&quot;, &quot;k|&quot;,100);
+mgl_puts(gr, 0., 0.85, 0., &quot;absorption: (x+y)/2 for x+y&gt;0&quot;);
+mgl_puts(gr, 0.7, -0.05, 0., &quot;central ray&quot;);
+mgl_title(gr, &quot;Beam and ray tracing&quot;, &quot;C&quot;, -1.5);
+mgl_delete_data(a);     mgl_delete_data(r);
+mgl_delete_data(xx);    mgl_delete_data(yy);
+mgl_delete_data(im);    mgl_delete_data(re);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer r, xx, yy, a, im, re, mgl_create_data_size
+integer mgl_data_subdata, mgl_ray_trace, mgl_qo2d_solve
+character*64 ham
+ham = 'p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)'
+im = mgl_create_data_size(128,1,1)
+re = mgl_create_data_size(128,1,1)
+r = mgl_ray_trace(ham, -0.7, -1., 0., 0., 0.5, 0., 0.02, 2.)
+xx = mgl_data_subdata(r,0,-1,-1)
+yy = mgl_data_subdata(r,1,-1,-1)
+call mgl_plot_xy(gr, xx, yy, 'k')
+call mgl_axis(gr,'xyz')
+call mgl_label(gr,'x','\i x')
+call mgl_label(gr,'y','\i z')
+call mgl_data_fill_eq(gr,re,'exp(-48*x^2)', 0, 0)
+a = mgl_qo2d_solve(ham, re, im, r, 1., 30., xx, yy)
+call mgl_set_caxis(gr,0.,1.)
+call mgl_dens_xy(gr,xx, yy, a, 'wyrRk', -1.)
+call mgl_fplot(gr,'-x', 'k|',100)
+call mgl_puts(gr, 0., 0.85, 0., 'absorption: (x+y)/2 for x+y&gt;0')
+call mgl_puts(gr, 0.7, -0.05, 0., 'central ray')
+call mgl_title(gr, 'Beam and ray tracing', 'C', -1.5)
+call mgl_delete_data(a)
+call mgl_delete_data(r)
+call mgl_delete_data(xx)
+call mgl_delete_data(yy)
+call mgl_delete_data(im)
+call mgl_delete_data(re)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ham = &quot;p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)&quot;;
+r, xx, yy, a = mglData(), mglData(), mglData(), mglData();
+im, re = mglData(128), mglData(128);
+r = mglRay(ham, mglPoint(-0.7, -1), mglPoint(0, 0.5), 0.02, 2);
+gr.Plot(r.SubData(0), r.SubData(1), &quot;k&quot;);
+gr.Axis();	gr.Label('x', &quot;\\i x&quot;);	gr.Label('y', &quot;\\i z&quot;);
+gr.Fill(re,&quot;exp(-48*x^2)&quot;);
+a = mglQO2d(ham, re, im, r, 1, 30, xx, yy);
+gr.SetCRange(0, 1);
+gr.Dens(xx, yy, a, &quot;wyrRk&quot;);
+gr.Plot(&quot;-x&quot;, &quot;k|&quot;);
+gr.Puts(0, 0.85, 0, &quot;absorption: (x+y)/2 for x+y&gt;0&quot;);
+gr.Puts(0.7, -0.05, 0, &quot;central ray&quot;);
+gr.Title(&quot;Beam and ray tracing&quot;, &quot;C&quot;, -1.5);
+</pre><hr size="6">
+<a name="Parser-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Beam-tracing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Manual-ticks-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Parser-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.11 Parser &ndash; пример использования</h3>
+<a name="index-mglParse-2"></a>
+<div class="float">
+<img src="../png/parser.png" alt="../png/parser">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">float a[100];   // let a_i = sin(4*pi*x), x=0...1
+for(int i=0;i&lt;100;i++) a[i]=sin(4*M_PI*i/99);
+mglParse *parser = new mglParse;
+mglData &amp;d = (parser-&gt;AddVar(&quot;dat&quot;))-&gt;d;
+d.Set(a,100);   // set data to variable
+parser-&gt;Execute(gr, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+// you may break script at any line do something
+// and continue after that
+parser-&gt;Execute(gr, &quot;xlabel 'x'\nylabel 'y'\nbox&quot;);
+// also you may use cycles or conditions in script
+parser-&gt;Execute(gr, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">float a[100];   /* let a_i = sin(4*pi*x), x=0...1 */
+int i;
+for(i=0;i&lt;100;i++)  a[i]=sin(4*M_PI*i/99);
+HMPR parser = mgl_create_parser();
+HMDT d = mgl_add_var(parser, &quot;dat&quot;);
+mgl_data_set_float(d,a,100,1,1);    /* set data to variable */
+mgl_parse_text(gr, parser, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+/* you may break script at any line do something 
+   and continue after that */
+mgl_parse_text(gr, parser, &quot;xlabel 'x'\nylabel 'y'&quot;);
+/* also you may use cycles or conditions in script */
+mgl_parse_text(gr, parser, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer i,parser,d, mgl_create_data_size, mgl_create_parser
+real a(100)
+! let a_i = sin(4*pi*x), x=0...1
+do i = 1,100
+    a(i)=sin(4*3.1415926*(i-1)/99)
+end do
+parser = mgl_create_parser()
+d = mgl_add_var(parser, &quot;dat&quot;)
+call mgl_data_set_real(d,a,100,1,1)    ! set data to variable
+! I don't know how put new line ('\n') into fortran string
+! So call mgl_parse_text() for each string :(
+call mgl_parse_text(gr, parser, &quot;plot dat; xrange 0 1&quot;)
+call mgl_parse_text(gr, parser, &quot;box&quot;)
+call mgl_parse_text(gr, parser, &quot;axis&quot;)
+! you may break script at any line do something 
+! and continue after that
+call mgl_parse_text(gr, parser, &quot;xlabel 'x'&quot;)
+call mgl_parse_text(gr, parser, &quot;ylabel 'y'&quot;)
+! there is now conditions because I don't know 
+! how to send several string into parser at once :(
+!! also you may use cycles or conditions in script
+!call mgl_parse_text(gr, parser, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;)
+</pre><p><strong>Python</strong>
+You may need to use <code>from numpy import *</code> for defining functions like <code>sin()</code>.
+</p><pre class="verbatim">parser = mglParse();
+dat = parser.AddVar(&quot;dat&quot;);
+dat.Create(100);
+for i in range(100):
+  dat[i] = sin(4*pi*i/99);
+parser.Execute(gr, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+# you may break script at any line do something 
+# and continue after that
+parser.Execute(gr, &quot;xlabel 'x'\nylabel 'y'&quot;);
+# also you may use cycles or conditions in script
+parser.Execute(gr, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+</pre><hr size="6">
+<a name="Manual-ticks-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Parser-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ColumnPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_043e_0431_044be-_043ce_0442_043a_0438-_043f_043e-_043e_0441ya_043c"></a>
+<h3 class="subsection">9.7.12 Особые метки по осям</h3>
+<a name="index-SetTicksVal-4"></a>
+<div class="float">
+<img src="../png/tval.png" alt="../png/tval">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Axis(mglPoint(-M_PI, 0), mglPoint(M_PI, 2));
+gr-&gt;SetTicksVal('x', 6, -M_PI, &quot;-\\pi&quot;, -M_PI/2, &quot;-\\pi/2&quot;, 0., &quot;0&quot;, 
+                0.886, &quot;x^*&quot;, M_PI/2, &quot;\\pi/2&quot;, M_PI, &quot;\\pi&quot;);
+gr-&gt;Axis();     gr-&gt;Grid();
+gr-&gt;Plot(&quot;2*cos(x^2)^2&quot;, &quot;r2&quot;, NAN, 300);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">axis -pi 0 pi 2
+xtick -pi '-\pi' -1.571 '-\pi/2' 0 '0' 0.886 'x^*' 1.571 '\pi/2' pi '\pi'
+axis 
+grid
+fplot '2*cos(x^2)^2' 'r2' nan 300
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">mgl_set_axis_2d(gr, -M_PI, 0, M_PI, 2);
+mgl_set_ticks_val(gr, 'x', 6, -M_PI, &quot;-\\pi&quot;, -M_PI/2, &quot;-\\pi/2&quot;,
+            0., &quot;0&quot;, 0.886, &quot;x^*&quot;, M_PI/2, &quot;\\pi/2&quot;, M_PI, &quot;\\pi&quot;);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_axis_grid(gr,&quot;xyz&quot;, &quot;B-&quot;);
+mgl_fplot(gr, &quot;2*cos(x^2)^2&quot;, &quot;r2&quot;, 300);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">gr.SetRanges(-pi, pi, 0, 2);
+parser = mglParse();
+# very &quot;stupid&quot; way because SWIG not support variable arguments
+parser.Execute(gr, &quot;xtick -pi '-\pi' -1.571 '-\pi/2' 0 '0' &quot;
+                    &quot;0.886 'x^*' 1.571 '\pi/2' pi '\pi'&quot;);
+gr.Axis();     gr.Grid();
+gr.Plot(&quot;2*cos(x^2)^2&quot;, &quot;r2&quot;, 300);
+</pre><hr size="6">
+<a name="ColumnPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Manual-ticks-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#StickPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ColumnPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.13 ColumnPlot &ndash; пример использования</h3>
+<a name="index-SetTicksVal-5"></a>
+<div class="float">
+<img src="../png/column.png" alt="../png/column">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">char str[32];
+for(int i=0;i&lt;4;i++)
+{
+        gr-&gt;ColumnPlot(4,i);
+        gr-&gt;Box();
+        sprintf(str,&quot;Plot %d of 4&quot;,i);
+        gr-&gt;Text(mglPoint(-0.5,0.5),str);
+        sprintf(str,&quot;sin(pi*x+pi*%d/2)&quot;,i);
+        gr-&gt;Plot(str);
+}
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">for $1 0 3
+columnplot 4 $1
+box
+text -0.5 0.5 'Plot $1 of 4'
+fplot 'sin(pi*x+pi*$1/2)'
+next
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">int i;
+char str[32];
+for(i=0;i&lt;4;i++)
+{
+        mgl_columnplot(gr,4,i);
+        mgl_box(gr,1);
+        sprintf(str,&quot;Plot %d of 4&quot;,i);
+        mgl_text(gr,-0.5,0.5,0.,str);
+        sprintf(str,&quot;sin(pi*x+pi*%d/2)&quot;,i);
+        mgl_fplot(gr,str,&quot;&quot;,100);
+}
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="StickPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ColumnPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stereo-image-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="StickPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.14 StickPlot &ndash; пример использования</h3>
+<a name="index-SetTicksVal-6"></a>
+<div class="float">
+<img src="../png/stick.png" alt="../png/stick">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;SetRanges(-1, 1, -1, 1, 0, 1);  gr-&gt;Light(true);
+gr-&gt;StickPlot(3, 0, 40, 30);        gr-&gt;Axis(&quot;xyz_&quot;);
+gr-&gt;Surf(&quot;exp(-10*y^2-6*x^2)&quot;);
+gr-&gt;Text(mglPoint(0.2, 0, 1.2), &quot;z=0&quot;, &quot;&quot;, -2);
+gr-&gt;StickPlot(3, 1, 40, 30);        gr-&gt;Axis(&quot;xyz_&quot;);
+gr-&gt;Surf(&quot;exp(-10*y^2/2-6*x^2)/sqrt(2)&quot;);
+gr-&gt;Text(mglPoint(0.2, 0, 1.2), &quot;z=1&quot;, &quot;&quot;, -2);
+gr-&gt;StickPlot(3, 2, 40, 30);        gr-&gt;Axis(&quot;xyz_&quot;);
+gr-&gt;Surf(&quot;exp(-10*y^2/5-6*x^2)/sqrt(5)&quot;);
+gr-&gt;Text(mglPoint(0.2, 0, 1.2), &quot;z=2&quot;, &quot;&quot;, -2);
+gr-&gt;Label('x',&quot;\\tau&quot;, 0);  gr-&gt;Label('y', &quot;\\rho&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">ranges -1 1 -1 1 0 1:light on
+stickplot 3 0 40 30 : axis 'xyz_'
+fsurf 'exp(-10*y^2-6*x^2)'
+text 0.2 0 1.2 'z=0' '' -2
+stickplot 3 1 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/2-6*x^2)/sqrt(2)'
+text 0.2 0 1.2 'z=1' '' -2
+stickplot 3 2 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/5-6*x^2)/sqrt(5)'
+text 0.2 0 1.2 'z=2' '' -2
+xlabel '\tau' 0 : ylabel '\rho'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">mgl_set_axis_3d(gr, -1, -1, 0, 1, 1, 1);
+mgl_set_light(gr, 1);
+mgl_stickplot(gr, 3, 0, 40, 30);
+mgl_axis(gr, &quot;xyz_&quot;);
+mgl_fsurf(gr,&quot;exp(-10*y^2-6*x^2)&quot;,&quot;&quot;,100);
+mgl_text(gr, 0.2, 0, 1.2, &quot;z=0&quot;);
+mgl_stickplot(gr, 3, 1, 40, 30);
+mgl_axis(gr, &quot;xyz_&quot;);
+mgl_fsurf(gr,&quot;exp(-10*y^2/2-6*x^2)/sqrt(2)&quot;,&quot;&quot;,100);
+mgl_text(gr, 0.2, 0, 1.2, &quot;z=1&quot;);
+mgl_stickplot(gr, 3, 2, 40, 30);
+mgl_axis(gr, &quot;xyz_&quot;);
+mgl_fsurf(gr,&quot;exp(-10*y^2/5-6*x^2)/sqrt(5)&quot;,&quot;&quot;,100);
+mgl_text(gr, 0.2, 0, 1.2, &quot;z=2&quot;);
+mgl_label(gr,'x',&quot;\\tau&quot;);
+mgl_label(gr,'y', &quot;\\rho&quot;);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Stereo-image-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#StickPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-_0441_0442e_0440e_043e-_0438_0437_043e_0431_0440_0430_0436e_043d_0438ya"></a>
+<h3 class="subsection">9.7.15 Пример стерео изображения</h3>
+<div class="float">
+<img src="../png/stereo.png" alt="../png/stereo">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Light(true);
+gr-&gt;SubPlot(2,1,0);
+gr-&gt;Rotate(40,60+3);
+gr-&gt;Box();   gr-&gt;Surf(a);
+gr-&gt;SubPlot(2,1,1);
+gr-&gt;Rotate(40,60-3);
+gr-&gt;Box();   gr-&gt;Surf(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+subplot 2 1 0
+rotate 40 60+3
+box:surf a
+subplot 2 1 1
+rotate 40 60-3
+box:surf a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_set_light(gr,1);
+mgl_subplot(gr,2,1,0);
+mgl_rotate(gr,40.,60.+3.,0.);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_subplot(gr,2,1,1);
+mgl_rotate(gr,40.,60.-3.,0.);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_set_light(gr,1)
+call mgl_subplot(gr,2,1,0)
+call mgl_rotate(gr,40.,60.+3.,0.)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_subplot(gr,2,1,1)
+call mgl_rotate(gr,40.,60.-3.,0.)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Light(True);
+gr.SubPlot(2,1,0);
+gr.Rotate(40,60+3);
+gr.Surf(a);  gr.Box();
+gr.SubPlot(2,1,1);
+gr.Rotate(40,60-3);
+gr.Surf(a);  gr.Box();
+</pre>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_abt.html b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_abt.html
new file mode 100644
index 0000000..02abc7b
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_abt.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: About This Document</title>
+
+<meta name="description" content="MathGL 1.11: About This Document">
+<meta name="keywords" content="MathGL 1.11: About This Document">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="SEC_About"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1>About This Document</h1>
+<p>
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+</p>
+<p>
+  The buttons in the navigation panels have the following meaning:
+</p>
+<table border="1">
+  <tr>
+    <th> Button </th>
+    <th> Name </th>
+    <th> Go to </th>
+    <th> From 1.2.3 go to</th>
+  </tr>
+  <tr>
+    <td align="center"> [ &lt; ] </td>
+    <td align="center">Back</td>
+    <td>Previous section in reading order</td>
+    <td>1.2.2</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &gt; ] </td>
+    <td align="center">Forward</td>
+    <td>Next section in reading order</td>
+    <td>1.2.4</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &lt;&lt; ] </td>
+    <td align="center">FastBack</td>
+    <td>Beginning of this chapter or previous chapter</td>
+    <td>1</td>
+  </tr>
+  <tr>
+    <td align="center"> [ Up ] </td>
+    <td align="center">Up</td>
+    <td>Up section</td>
+    <td>1.2</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &gt;&gt; ] </td>
+    <td align="center">FastForward</td>
+    <td>Next chapter</td>
+    <td>2</td>
+  </tr>
+  <tr>
+    <td align="center"> [Top] </td>
+    <td align="center">Top</td>
+    <td>Cover (top) of document</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [Contents] </td>
+    <td align="center">Contents</td>
+    <td>Table of contents</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [Index] </td>
+    <td align="center">Index</td>
+    <td>Index</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [ ? ] </td>
+    <td align="center">About</td>
+    <td>About (help)</td>
+    <td> &nbsp; </td>
+  </tr>
+</table>
+
+<p>
+  where the <strong> Example </strong> assumes that the current position is at <strong> Subsubsection One-Two-Three </strong> of a document of the following structure:
+</p>
+
+<ul>
+  <li> 1. Section One
+    <ul>
+      <li>1.1 Subsection One-One
+        <ul>
+          <li>...</li>
+        </ul>
+      </li>
+      <li>1.2 Subsection One-Two
+        <ul>
+          <li>1.2.1 Subsubsection One-Two-One</li>
+          <li>1.2.2 Subsubsection One-Two-Two</li>
+          <li>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp;
+            <strong>&lt;== Current Position </strong></li>
+          <li>1.2.4 Subsubsection One-Two-Four</li>
+        </ul>
+      </li>
+      <li>1.3 Subsection One-Three
+        <ul>
+          <li>...</li>
+        </ul>
+      </li>
+      <li>1.4 Subsection One-Four</li>
+    </ul>
+  </li>
+</ul>
+
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_toc.html b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_toc.html
new file mode 100644
index 0000000..991ca34
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mathgl_ru.html/mathgl_ru_toc.html
@@ -0,0 +1,454 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: Table of Contents</title>
+
+<meta name="description" content="MathGL 1.11: Table of Contents">
+<meta name="keywords" content="MathGL 1.11: Table of Contents">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="SEC_Contents"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1>Table of Contents</h1>
+<div class="contents">
+
+<ul class="toc">
+  <li><a name="toc-_041e_0431_0437_043e_0440-MathGL" href="mathgl_ru_1.html#Overview">1. Обзор MathGL</a>
+  <ul class="toc">
+    <li><a name="toc-_0417_0430_0447e_043c-_043d_0430_043f_0438_0441_0430_043d_0430-MathGL_003f" href="mathgl_ru_1.html#Why-I-have-written-MathGL_003f">1.1 Зачем написана MathGL?</a></li>
+    <li><a name="toc-_0412_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438-MathGL" href="mathgl_ru_1.html#MathGL-features">1.2 Возможности MathGL</a></li>
+    <li><a name="toc-_0423_0441_0442_0430_043d_043e_0432_043a_0430-MathGL" href="mathgl_ru_1.html#Installation-and-using">1.3 Установка MathGL</a></li>
+    <li><a name="toc-_041e_0441_043d_043e_0432_043d_044be-_043f_0440_0438_043dc_0438_043f_044b" href="mathgl_ru_1.html#General-concepts">1.4 Основные принципы</a>
+    <ul class="toc">
+      <li><a name="toc-_041e_0441_0438-_043a_043e_043e_0440_0434_0438_043d_0430_0442" href="mathgl_ru_1.html#Coordinate-axes">1.4.1 Оси координат</a></li>
+      <li><a name="toc-_0421_0442_0438_043bx-_043b_0438_043d_0438_0439" href="mathgl_ru_1.html#Line-styles">1.4.2 Стиль линий</a></li>
+      <li><a name="toc-C_0432e_0442_043e_0432_0430ya-_0441_0445e_043c_0430" href="mathgl_ru_1.html#Color-scheme">1.4.3 Цветовая схема</a></li>
+      <li><a name="toc-_0421_0442_0438_043bx-_0442e_043a_0441_0442_0430" href="mathgl_ru_1.html#Font-styles">1.4.4 Стиль текста</a></li>
+      <li><a name="toc-_0422e_043a_0441_0442_043e_0432_044be-_0444_043e_0440_043c_0443_043b_044b" href="mathgl_ru_1.html#Textual-formulas">1.4.5 Текстовые формулы</a></li>
+    </ul></li>
+    <li><a name="toc-FAQ-1" href="mathgl_ru_1.html#FAQ">1.5 FAQ</a></li>
+    <li><a name="toc-_0418_043d_0442e_0440_0444e_0439_0441_044b" href="mathgl_ru_1.html#Interfaces">1.6 Интерфейсы</a>
+    <ul class="toc">
+      <li><a name="toc-C-_0438_043d_0442e_0440_0444e_0439_0441" href="mathgl_ru_1.html#C-interface">1.6.1 C интерфейс</a></li>
+      <li><a name="toc-Python-_0438_043d_0442e_0440_0444e_0439_0441" href="mathgl_ru_1.html#Python-interface">1.6.2 Python интерфейс</a></li>
+    </ul></li>
+    <li><a name="toc-_0411_043b_0430g_043e_0434_0430_0440_043d_043e_0441_0442_0438" href="mathgl_ru_1.html#Thanks">1.7 Благодарности</a></li>
+  </ul></li>
+  <li><a name="toc-MathGL-examples" href="mathgl_ru_2.html#Examples">2. MathGL examples</a>
+  <ul class="toc">
+    <li><a name="toc-Basic-usage-1" href="mathgl_ru_2.html#Basic-usage">2.1 Basic usage</a>
+    <ul class="toc">
+      <li><a name="toc-Using-FLTK_002fQt_002fGLUT-window" href="mathgl_ru_2.html#Using-FLTK_002fGLUT-window">2.1.1 Using FLTK/Qt/GLUT window</a></li>
+      <li><a name="toc-Drawing-to-file-1" href="mathgl_ru_2.html#Drawing-to-file">2.1.2 Drawing to file</a></li>
+      <li><a name="toc-Drawing-in-memory-1" href="mathgl_ru_2.html#Drawing-in-memory">2.1.3 Drawing in memory</a></li>
+      <li><a name="toc-Using-QMathGL-1" href="mathgl_ru_2.html#Using-QMathGL">2.1.4 Using QMathGL</a></li>
+    </ul></li>
+    <li><a name="toc-Advanced-usage-1" href="mathgl_ru_2.html#Advanced-usage">2.2 Advanced usage</a>
+    <ul class="toc">
+      <li><a name="toc-Subplots-1" href="mathgl_ru_2.html#Subplots">2.2.1 Subplots</a></li>
+      <li><a name="toc-Axis-and-grids-1" href="mathgl_ru_2.html#Axis-and-grids">2.2.2 Axis and grids</a></li>
+      <li><a name="toc-Curvilinear-coordinates-1" href="mathgl_ru_2.html#Curvilinear-coordinates">2.2.3 Curvilinear coordinates</a></li>
+      <li><a name="toc-Text-printing-example-1" href="mathgl_ru_2.html#Text-printing-example">2.2.4 Text printing example</a></li>
+      <li><a name="toc-Animation-1" href="mathgl_ru_2.html#Animation">2.2.5 Animation</a></li>
+    </ul></li>
+    <li><a name="toc-Data-handling-1" href="mathgl_ru_2.html#Data-handling">2.3 Data handling</a>
+    <ul class="toc">
+      <li><a name="toc-Array-creation-1" href="mathgl_ru_2.html#Array-creation">2.3.1 Array creation</a></li>
+      <li><a name="toc-Data-changing-1" href="mathgl_ru_2.html#Data-changing">2.3.2 Data changing</a></li>
+    </ul></li>
+    <li><a name="toc-Data-plotting-1" href="mathgl_ru_2.html#Data-plotting">2.4 Data plotting</a>
+    <ul class="toc">
+      <li><a name="toc-Plots-for-1D-data-1" href="mathgl_ru_2.html#Plots-for-1D-data">2.4.1 Plots for 1D data</a></li>
+      <li><a name="toc-Plots-for-2D-data-1" href="mathgl_ru_2.html#Plots-for-2D-data">2.4.2 Plots for 2D data</a></li>
+      <li><a name="toc-Plots-for-3D-data-1" href="mathgl_ru_2.html#Plots-for-3D-data">2.4.3 Plots for 3D data</a></li>
+      <li><a name="toc-Surface-transparency-1" href="mathgl_ru_2.html#Surface-transparency">2.4.4 Surface transparency</a></li>
+    </ul></li>
+    <li><a name="toc-C_002fFortran-interface-1" href="mathgl_ru_2.html#C_002fFortran-interface">2.5 C/Fortran interface</a></li>
+    <li><a name="toc-MathGL-and-PyQt-1" href="mathgl_ru_2.html#MathGL-and-PyQt">2.6 MathGL and PyQt</a></li>
+    <li><a name="toc-Hints-1" href="mathgl_ru_2.html#Hints">2.7 Hints</a>
+    <ul class="toc">
+      <li><a name="toc-_0060_0060Compound_0027_0027-graphics-1" href="mathgl_ru_2.html#g_t_0060_0060Compound_0027_0027-graphics">2.7.1 &ldquo;Compound&rdquo; graphics</a></li>
+      <li><a name="toc-Two-axes-in-one-plot-1" href="mathgl_ru_2.html#Two-axes-in-one-plot">2.7.2 Two axes in one plot</a></li>
+      <li><a name="toc-Titles-for-the-plot-1" href="mathgl_ru_2.html#Titles-for-the-plot">2.7.3 Titles for the plot</a></li>
+      <li><a name="toc-Changing-of-the-color-range-1" href="mathgl_ru_2.html#Changing-of-the-color-range">2.7.4 Changing of the color range</a></li>
+      <li><a name="toc-Management-of-a-point-cutting-1" href="mathgl_ru_2.html#Management-of-a-point-cutting">2.7.5 Management of a point cutting</a></li>
+      <li><a name="toc-Vector-field-visualization-1" href="mathgl_ru_2.html#Vector-field-visualization">2.7.6 Vector field visualization</a></li>
+      <li><a name="toc-Several-light-sources-1" href="mathgl_ru_2.html#Several-light-sources">2.7.7 Several light sources</a></li>
+      <li><a name="toc-CutMin-and-CutMax-features-1" href="mathgl_ru_2.html#CutMin-and-CutMax-features">2.7.8 CutMin and CutMax features</a></li>
+      <li><a name="toc-Mapping-visualization-1" href="mathgl_ru_2.html#Mapping-visualization">2.7.9 Mapping visualization</a></li>
+      <li><a name="toc-Log_002dscaled-plot-1" href="mathgl_ru_2.html#Log_002dscaled-plot">2.7.10 Log-scaled plot</a></li>
+      <li><a name="toc-_0060_0060Templates_0027_0027-1" href="mathgl_ru_2.html#g_t_0060_0060Templates_0027_0027">2.7.11 &ldquo;Templates&rdquo;</a></li>
+      <li><a name="toc-Nonlinear-fitting-hints-1" href="mathgl_ru_2.html#Nonlinear-fitting-hints">2.7.12 Nonlinear fitting hints</a></li>
+      <li><a name="toc-PDE-solving-hints-1" href="mathgl_ru_2.html#PDE-solving-hints">2.7.13 PDE solving hints</a></li>
+      <li><a name="toc-MGL-parser-using-1" href="mathgl_ru_2.html#MGL-parser-using">2.7.14 MGL parser using</a></li>
+      <li><a name="toc-Stereo-image-1" href="mathgl_ru_2.html#Stereo-image">2.7.15 Stereo image</a></li>
+    </ul>
+</li>
+  </ul></li>
+  <li><a name="toc-YA_0434_0440_043e-MathGL" href="mathgl_ru_3.html#MathGL-core">3. Ядро MathGL</a>
+  <ul class="toc">
+    <li><a name="toc-_041d_0430_0441_0442_0440_043e_0439_043a_0430-g_0440_0430_0444_0438_043a_0430" href="mathgl_ru_3.html#Graphics-setup">3.1 Настройка графика</a>
+    <ul class="toc">
+      <li><a name="toc-_041f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x" href="mathgl_ru_3.html#Transparency">3.1.1 Прозрачность</a></li>
+      <li><a name="toc-_041e_0441_0432e_0449e_043d_0438e" href="mathgl_ru_3.html#Lighting">3.1.2 Освещение</a></li>
+      <li><a name="toc-_0422_0443_043c_0430_043d" href="mathgl_ru_3.html#Fog">3.1.3 Туман</a></li>
+      <li><a name="toc-_0411_0430_0437_043e_0432_044be-_0440_0430_0437_043ce_0440_044b" href="mathgl_ru_3.html#Default-sizes">3.1.4 Базовые размеры</a></li>
+      <li><a name="toc-_041c_0430_0441_0448_0442_0430_0431_0438_0440_043e_0432_0430_043d_0438e" href="mathgl_ru_3.html#Zooming">3.1.5 Масштабирование</a></li>
+      <li><a name="toc-_041e_0431_0440e_0437_0430_043d_0438e" href="mathgl_ru_3.html#Cutting">3.1.6 Обрезание</a></li>
+      <li><a name="toc-_0428_0440_0438_0444_0442_044b" href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></li>
+      <li><a name="toc-_041f_0430_043b_0438_0442_0440_0430-_0438-c_0432e_0442_0430" href="mathgl_ru_3.html#Palette-and-colors">3.1.8 Палитра и цвета</a></li>
+      <li><a name="toc-_041e_0431_0440_0430_0431_043e_0442_043a_0430-_043e_0448_0438_0431_043e_043a" href="mathgl_ru_3.html#Error-handling">3.1.9 Обработка ошибок</a></li>
+      <li><a name="toc-_041f_0440_043e_0447_0438e-_043d_0430_0441_0442_0440_043e_0439_043a_0438" href="mathgl_ru_3.html#Other-settings">3.1.10 Прочие настройки</a></li>
+    </ul></li>
+    <li><a name="toc-_041d_0430_0441_0442_0440_043e_0439_043a_0438-_043e_0441e_0439-_043a_043e_043e_0440_0434_0438_043d_0430_0442" href="mathgl_ru_3.html#Axis-settings">3.2 Настройки осей координат</a>
+    <ul class="toc">
+      <li><a name="toc-_041c_0430_0441_0448_0442_0430_0431-_043e_0441e_0439-_043a_043e_043e_0440_0434_0438_043d_0430_0442" href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></li>
+      <li><a name="toc-_041a_0440_0438_0432_043e_043b_0438_043de_0439_043d_044be-_043a_043e_043e_0440_0434_0438_043d_0430_0442_044b" href="mathgl_ru_3.html#Transformation">3.2.2 Криволинейные координаты</a></li>
+      <li><a name="toc-_041ce_0442_043a_0438-_043e_0441e_0439" href="mathgl_ru_3.html#Ticks">3.2.3 Метки осей</a></li>
+    </ul></li>
+    <li><a name="toc-_041c_0430_0442_0440_0438c_0430-_043f_0440e_043e_0431_0440_0430_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></li>
+    <li><a name="toc-_042d_043a_0441_043f_043e_0440_0442-_0432-_0444_0430_0439_043b" href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></li>
+    <li><a name="toc-_0420_0438_0441_043e_0432_0430_043d_0438e-_043f_0440_0438_043c_0438_0442_0438_0432_043e_0432-1" href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></li>
+    <li><a name="toc-_0412_044b_0432_043e_0434-_0442e_043a_0441_0442_0430" href="mathgl_ru_3.html#Text-printing">3.6 Вывод текста</a></li>
+    <li><a name="toc-_041e_0441_0438-_0438-Colorbar" href="mathgl_ru_3.html#Axis-and-Colorbar">3.7 Оси и Colorbar</a></li>
+    <li><a name="toc-_041bege_043d_0434_0430" href="mathgl_ru_3.html#Legend">3.8 Легенда</a></li>
+    <li><a name="toc-1D-g_0440_0430_0444_0438_043a_0438" href="mathgl_ru_3.html#g_t1D-plotting">3.9 1D графики</a>
+    <ul class="toc">
+      <li><a name="toc-Plot-1" href="mathgl_ru_3.html#Plot">3.9.1 Plot</a></li>
+      <li><a name="toc-Radar-1" href="mathgl_ru_3.html#Radar">3.9.2 Radar</a></li>
+      <li><a name="toc-Tens-1" href="mathgl_ru_3.html#Tens">3.9.3 Tens</a></li>
+      <li><a name="toc-Area-1" href="mathgl_ru_3.html#Area">3.9.4 Area</a></li>
+      <li><a name="toc-Region-1" href="mathgl_ru_3.html#Region">3.9.5 Region</a></li>
+      <li><a name="toc-Stem-1" href="mathgl_ru_3.html#Stem">3.9.6 Stem</a></li>
+      <li><a name="toc-Bars-1" href="mathgl_ru_3.html#Bars">3.9.7 Bars</a></li>
+      <li><a name="toc-Barh-1" href="mathgl_ru_3.html#Barh">3.9.8 Barh</a></li>
+      <li><a name="toc-Chart-1" href="mathgl_ru_3.html#Chart">3.9.9 Chart</a></li>
+      <li><a name="toc-Step-1" href="mathgl_ru_3.html#Step">3.9.10 Step</a></li>
+      <li><a name="toc-Torus-1" href="mathgl_ru_3.html#Torus">3.9.11 Torus</a></li>
+      <li><a name="toc-Tube-1" href="mathgl_ru_3.html#Tube">3.9.12 Tube</a></li>
+      <li><a name="toc-Mark-1" href="mathgl_ru_3.html#Mark">3.9.13 Mark</a></li>
+      <li><a name="toc-TextMark-1" href="mathgl_ru_3.html#TextMark">3.9.14 TextMark</a></li>
+      <li><a name="toc-Error-1" href="mathgl_ru_3.html#Error">3.9.15 Error</a></li>
+      <li><a name="toc-BoxPlot-1" href="mathgl_ru_3.html#BoxPlot">3.9.16 BoxPlot</a></li>
+    </ul></li>
+    <li><a name="toc-2D-g_0440_0430_0444_0438_043a_0438" href="mathgl_ru_3.html#g_t2D-plotting">3.10 2D графики</a>
+    <ul class="toc">
+      <li><a name="toc-Mesh-1" href="mathgl_ru_3.html#Mesh">3.10.1 Mesh</a></li>
+      <li><a name="toc-Fall-1" href="mathgl_ru_3.html#Fall">3.10.2 Fall</a></li>
+      <li><a name="toc-Belt-1" href="mathgl_ru_3.html#Belt">3.10.3 Belt</a></li>
+      <li><a name="toc-Surf-1" href="mathgl_ru_3.html#Surf">3.10.4 Surf</a></li>
+      <li><a name="toc-Boxs-1" href="mathgl_ru_3.html#Boxs">3.10.5 Boxs</a></li>
+      <li><a name="toc-Tile-1" href="mathgl_ru_3.html#Tile">3.10.6 Tile</a></li>
+      <li><a name="toc-Dens-1" href="mathgl_ru_3.html#Dens">3.10.7 Dens</a></li>
+      <li><a name="toc-Cont-1" href="mathgl_ru_3.html#Cont">3.10.8 Cont</a></li>
+      <li><a name="toc-ContF-1" href="mathgl_ru_3.html#ContF">3.10.9 ContF</a></li>
+      <li><a name="toc-ContD-1" href="mathgl_ru_3.html#ContD">3.10.10 ContD</a></li>
+      <li><a name="toc-Axial-1" href="mathgl_ru_3.html#Axial">3.10.11 Axial</a></li>
+      <li><a name="toc-Grad-1" href="mathgl_ru_3.html#Grad">3.10.12 Grad</a></li>
+      <li><a name="toc-Grid-1" href="mathgl_ru_3.html#Grid">3.10.13 Grid</a></li>
+    </ul></li>
+    <li><a name="toc-3D-g_0440_0430_0444_0438_043a_0438" href="mathgl_ru_3.html#g_t3D-plotting">3.11 3D графики</a>
+    <ul class="toc">
+      <li><a name="toc-Surf3-1" href="mathgl_ru_3.html#Surf3">3.11.1 Surf3</a></li>
+      <li><a name="toc-Dens3-1" href="mathgl_ru_3.html#Dens3">3.11.2 Dens3</a></li>
+      <li><a name="toc-Cont3-1" href="mathgl_ru_3.html#Cont3">3.11.3 Cont3</a></li>
+      <li><a name="toc-ContF3-1" href="mathgl_ru_3.html#ContF3">3.11.4 ContF3</a></li>
+      <li><a name="toc-Grid3-1" href="mathgl_ru_3.html#Grid3">3.11.5 Grid3</a></li>
+      <li><a name="toc-Cloud-1" href="mathgl_ru_3.html#Cloud">3.11.6 Cloud</a></li>
+      <li><a name="toc-Beam-1" href="mathgl_ru_3.html#Beam">3.11.7 Beam</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0430_0440_043d_044be-g_0440_0430_0444_0438_043a_0438" href="mathgl_ru_3.html#Dual-plotting">3.12 Парные графики</a>
+    <ul class="toc">
+      <li><a name="toc-SurfC-1" href="mathgl_ru_3.html#SurfC">3.12.1 SurfC</a></li>
+      <li><a name="toc-Surf3C-1" href="mathgl_ru_3.html#Surf3C">3.12.2 Surf3C</a></li>
+      <li><a name="toc-SurfA-1" href="mathgl_ru_3.html#SurfA">3.12.3 SurfA</a></li>
+      <li><a name="toc-Surf3A-1" href="mathgl_ru_3.html#Surf3A">3.12.4 Surf3A</a></li>
+      <li><a name="toc-TileS-1" href="mathgl_ru_3.html#TileS">3.12.5 TileS</a></li>
+      <li><a name="toc-Map-1" href="mathgl_ru_3.html#Map">3.12.6 Map</a></li>
+      <li><a name="toc-STFA-1" href="mathgl_ru_3.html#STFA">3.12.7 STFA</a></li>
+    </ul></li>
+    <li><a name="toc-_0412e_043a_0442_043e_0440_043d_044be-_043f_043e_043bya" href="mathgl_ru_3.html#Vector-fields">3.13 Векторные поля</a>
+    <ul class="toc">
+      <li><a name="toc-Traj-1" href="mathgl_ru_3.html#Traj">3.13.1 Traj</a></li>
+      <li><a name="toc-Vect-1" href="mathgl_ru_3.html#Vect">3.13.2 Vect</a></li>
+      <li><a name="toc-Dew-1" href="mathgl_ru_3.html#Dew">3.13.3 Dew</a></li>
+      <li><a name="toc-Flow-1" href="mathgl_ru_3.html#Flow">3.13.4 Flow</a></li>
+      <li><a name="toc-FlowP-1" href="mathgl_ru_3.html#FlowP">3.13.5 FlowP</a></li>
+      <li><a name="toc-Pipe-1" href="mathgl_ru_3.html#Pipe">3.13.6 Pipe</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0440_043e_0447_0438e-g_0440_0430_0444_0438_043a_0438" href="mathgl_ru_3.html#Other-plotting">3.14 Прочие графики</a>
+    <ul class="toc">
+      <li><a name="toc-DensXYZ-1" href="mathgl_ru_3.html#DensXYZ">3.14.1 DensXYZ</a></li>
+      <li><a name="toc-ContXYZ-1" href="mathgl_ru_3.html#ContXYZ">3.14.2 ContXYZ</a></li>
+      <li><a name="toc-ContFXYZ-1" href="mathgl_ru_3.html#ContFXYZ">3.14.3 ContFXYZ</a></li>
+      <li><a name="toc-Dots-1" href="mathgl_ru_3.html#Dots">3.14.4 Dots</a></li>
+      <li><a name="toc-Crust-1" href="mathgl_ru_3.html#Crust">3.14.5 Crust</a></li>
+      <li><a name="toc-TriPlot-1" href="mathgl_ru_3.html#TriPlot">3.14.6 TriPlot</a></li>
+      <li><a name="toc-TriCont-1" href="mathgl_ru_3.html#TriCont">3.14.7 TriCont</a></li>
+      <li><a name="toc-QuadPlot-1" href="mathgl_ru_3.html#QuadPlot">3.14.8 QuadPlot</a></li>
+      <li><a name="toc-_0413_0440_0430_0444_0438_043a_0438-_0444_0443_043d_043ac_0438_0439" href="mathgl_ru_3.html#Plots-by-formula">3.14.9 Графики функций</a></li>
+      <li><a name="toc-SimplePlot-1" href="mathgl_ru_3.html#SimplePlot">3.14.10 SimplePlot</a></li>
+    </ul></li>
+    <li><a name="toc-Nonlinear-fitting-1" href="mathgl_ru_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></li>
+    <li><a name="toc-_0420_0430_0441_043f_0440e_0434e_043be_043d_0438e-_0434_0430_043d_043d_044b_0445" href="mathgl_ru_3.html#Data-distributions">3.16 Распределение данных</a></li>
+    <li><a name="toc-_041a_0430_0434_0440_044b_002f_0410_043d_0438_043c_0430c_0438ya" href="mathgl_ru_3.html#Frames_002fAnimation">3.17 Кадры/Анимация</a></li>
+    <li><a name="toc-IDTF-_0444_0443_043d_043ac_0438_0438" href="mathgl_ru_3.html#IDTF-functions">3.18 IDTF функции</a></li>
+  </ul></li>
+  <li><a name="toc-_041a_043b_0430_0441_0441_044b-_0434_043bya-_043e_0442_0440_0438_0441_043e_0432_043a_0438" href="mathgl_ru_4.html#Plotter-classes">4. Классы для отрисовки</a>
+  <ul class="toc">
+    <li><a name="toc-_041a_043b_0430_0441_0441-mglGraphAB" href="mathgl_ru_4.html#mglGraphAB-class">4.1 Класс mglGraphAB</a></li>
+  </ul></li>
+  <li><a name="toc-_0060_0060_041e_043a_043e_043d_043d_044be_0027_0027-_043a_043b_0430_0441_0441_044b" href="mathgl_ru_5.html#Widget-classes">5. &ldquo;Оконные&rdquo; классы</a>
+  <ul class="toc">
+    <li><a name="toc-_041a_043b_0430_0441_0441-Fl_005fMathGL" href="mathgl_ru_5.html#Fl_005fMathGL-class">5.1 Класс Fl_MathGL</a></li>
+    <li><a name="toc-QMathGL-class-1" href="mathgl_ru_5.html#QMathGL-class">5.2 QMathGL class</a></li>
+  </ul></li>
+  <li><a name="toc-_041a_043b_0430_0441_0441-mglData" href="mathgl_ru_6.html#mglData-class">6. Класс mglData</a>
+  <ul class="toc">
+    <li><a name="toc-_041fe_0440e_043ce_043d_043d_044be" href="mathgl_ru_6.html#Public-variables">6.1 Переменные</a></li>
+    <li><a name="toc-_0421_043e_0437_0434_0430_043d_0438e-_0438-_0443_0434_0430_043be_043d_0438e" href="mathgl_ru_6.html#Create-and-delete">6.2 Создание и удаление</a></li>
+    <li><a name="toc-_0417_0430_043f_043e_043b_043de_043d_0438e-_0434_0430_043d_043d_044b_0445" href="mathgl_ru_6.html#Fill">6.3 Заполнение данных</a></li>
+    <li><a name="toc-_0418_0437_043ce_043de_043d_0438e-_0440_0430_0437_043ce_0440_043e_0432-_0434_0430_043d_043d_044b_0445" href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></li>
+    <li><a name="toc-_0427_0442e_043d_0438e_002f_0441_043e_0445_0440_0430_043de_043d_0438e-_0434_0430_043d_043d_044b_0445" href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></li>
+    <li><a name="toc-_0421_043e_0437_0434_0430_043d_0438e-_043d_043e_0432_044b_0445-_0434_0430_043d_043d_044b_0445" href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></li>
+    <li><a name="toc-_0418_0437_043ce_043de_043d_0438e-_0434_0430_043d_043d_044b_0445" href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></li>
+    <li><a name="toc-_0418_043d_0442e_0440_043f_043e_043byac_0438ya" href="mathgl_ru_6.html#Interpolation">6.8 Интерполяция</a></li>
+    <li><a name="toc-_0418_043d_0444_043e_0440_043c_0430c_0438_043e_043d_043d_044be-_0444_0443_043d_043ac_0438_0438" href="mathgl_ru_6.html#Informational-functions">6.9 Информационные функции</a></li>
+    <li><a name="toc-_041e_043fe_0440_0430_0442_043e_0440_044b" href="mathgl_ru_6.html#Operators">6.10 Операторы</a></li>
+    <li><a name="toc-_0413_043b_043e_0431_0430_043bx_043d_044be-_0444_0443_043d_043ac_0438_0438" href="mathgl_ru_6.html#Global-functions">6.11 Глобальные функции</a></li>
+  </ul></li>
+  <li><a name="toc-Other-classes-1" href="mathgl_ru_7.html#Other-classes">7. Other classes</a>
+  <ul class="toc">
+    <li><a name="toc-mglParse-class-1" href="mathgl_ru_7.html#mglParse-class">7.1 mglParse class</a></li>
+    <li><a name="toc-mglFormula-class-1" href="mathgl_ru_7.html#mglFormula-class">7.2 mglFormula class</a></li>
+    <li><a name="toc-mglFont-class-1" href="mathgl_ru_7.html#mglFont-class">7.3 mglFont class</a>
+    <ul class="toc">
+      <li><a name="toc-Format-of-font-files-1" href="mathgl_ru_7.html#Format-of-font-files">7.3.1 Format of font files</a></li>
+    </ul></li>
+    <li><a name="toc-mglColor-class-1" href="mathgl_ru_7.html#mglColor-class">7.4 mglColor class</a></li>
+    <li><a name="toc-mglPoint-class-1" href="mathgl_ru_7.html#mglPoint-class">7.5 mglPoint class</a></li>
+    <li><a name="toc-mglVar-class-1" href="mathgl_ru_7.html#mglVar-class">7.6 mglVar class</a></li>
+    <li><a name="toc-mglCommand-class-1" href="mathgl_ru_7.html#mglCommand-class">7.7 mglCommand class</a></li>
+    <li><a name="toc-mglArg-class-1" href="mathgl_ru_7.html#mglArg-class">7.8 mglArg class</a></li>
+  </ul></li>
+  <li><a name="toc-YA_0437_044b_043a-MGL" href="mathgl_ru_8.html#MGL-interface">8. Язык MGL</a>
+  <ul class="toc">
+    <li><a name="toc-_041d_0430_0441_0442_0440_043e_0439_043a_0430-g_0440_0430_0444_0438_043a_0430-_0028MGL_0029" href="mathgl_ru_8.html#Graphics-setup-_0028MGL_0029">8.1 Настройка графика (MGL)</a>
+    <ul class="toc">
+      <li><a name="toc-_041f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x-_0028MGL_0029" href="mathgl_ru_8.html#Transparency-_0028MGL_0029">8.1.1 Прозрачность (MGL)</a></li>
+      <li><a name="toc-_041e_0441_0432e_0449e_043d_0438e-_0028MGL_0029" href="mathgl_ru_8.html#Lighting-_0028MGL_0029">8.1.2 Освещение (MGL)</a></li>
+      <li><a name="toc-_0422_0443_043c_0430_043d-_0028MGL_0029" href="mathgl_ru_8.html#Fog-_0028MGL_0029">8.1.3 Туман (MGL)</a></li>
+      <li><a name="toc-_0411_0430_0437_043e_0432_044be-_0440_0430_0437_043ce_0440_044b-_0028MGL_0029" href="mathgl_ru_8.html#Default-sizes-_0028MGL_0029">8.1.4 Базовые размеры (MGL)</a></li>
+      <li><a name="toc-_041c_0430_0441_0448_0442_0430_0431_0438_0440_043e_0432_0430_043d_0438e-_0028MGL_0029" href="mathgl_ru_8.html#Zooming-_0028MGL_0029">8.1.5 Масштабирование (MGL)</a></li>
+      <li><a name="toc-_041e_0431_0440e_0437_0430_043d_0438e-_0028MGL_0029" href="mathgl_ru_8.html#Cutting-_0028MGL_0029">8.1.6 Обрезание (MGL)</a></li>
+      <li><a name="toc-_041f_0440_043e_0447_0438e-_043d_0430_0441_0442_0440_043e_0439_043a_0438-_0028MGL_0029" href="mathgl_ru_8.html#Other-settings-_0028MGL_0029">8.1.7 Прочие настройки (MGL)</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0430_0440_0430_043ce_0442_0440_044b-_043e_0441e_0439-_043a_043e_043e_0440_0434_0438_043d_0430_0442-_0028MGL_0029" href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></li>
+    <li><a name="toc-_041c_0430_0442_0440_0438c_0430-_043f_0440e_043e_0431_0440_0430_0437_043e_0432_0430_043d_0438ya-_0028MGL_0029" href="mathgl_ru_8.html#Transformation-matrix-_0028MGL_0029">8.3 Матрица преобразования (MGL)</a></li>
+    <li><a name="toc-_042d_043a_0441_043f_043e_0440_0442-_0432-_0444_0430_0439_043b-_0028MGL_0029" href="mathgl_ru_8.html#Export-to-file-_0028MGL_0029">8.4 Экспорт в файл (MGL)</a></li>
+    <li><a name="toc-_0420_0438_0441_043e_0432_0430_043d_0438e-_043f_0440_0438_043c_0438_0442_0438_0432_043e_0432" href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></li>
+    <li><a name="toc-_0412_044b_0432_043e_0434-_0442e_043a_0441_0442_0430-_0028MGL_0029" href="mathgl_ru_8.html#Text-printing-_0028MGL_0029">8.6 Вывод текста (MGL)</a></li>
+    <li><a name="toc-_041e_0441_0438-_0438-Colorbar-_0028MGL_0029" href="mathgl_ru_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></li>
+    <li><a name="toc-_041bege_043d_0434_0430-_0028MGL_0029" href="mathgl_ru_8.html#Legend-_0028MGL_0029">8.8 Легенда (MGL)</a></li>
+    <li><a name="toc-1D-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029" href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></li>
+    <li><a name="toc-2D-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029" href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></li>
+    <li><a name="toc-3D-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029" href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></li>
+    <li><a name="toc-_041f_0430_0440_043d_044be-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029" href="mathgl_ru_8.html#Dual-plotting-_0028MGL_0029">8.12 Парные графики (MGL)</a></li>
+    <li><a name="toc-_0412e_043a_0442_043e_0440_043d_044be-_043f_043e_043bya-_0028MGL_0029" href="mathgl_ru_8.html#Vector-fields-_0028MGL_0029">8.13 Векторные поля (MGL)</a></li>
+    <li><a name="toc-_041f_0440_043e_0447_0438e-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029" href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></li>
+    <li><a name="toc-Nonlinear-fitting-_0028MGL_0029-1" href="mathgl_ru_8.html#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></li>
+    <li><a name="toc-_0421_043e_0437_0434_0430_043d_0438e-_0434_0430_043d_043d_044b_0445-_0028MGL_0029" href="mathgl_ru_8.html#Data-create-_0028MGL_0029">8.16 Создание данных (MGL)</a></li>
+    <li><a name="toc-_0417_0430_043f_043e_043b_043de_043d_0438e-_0434_0430_043d_043d_044b_0445-_0028MGL_0029" href="mathgl_ru_8.html#Data-filling-_0028MGL_0029">8.17 Заполнение данных (MGL)</a></li>
+    <li><a name="toc-_0418_0437_043ce_043de_043d_0438e-_0440_0430_0437_043ce_0440_043e_0432-_0434_0430_043d_043d_044b_0445-_0028MGL_0029" href="mathgl_ru_8.html#Rearrange-data-_0028MGL_0029">8.18 Изменение размеров данных (MGL)</a></li>
+    <li><a name="toc-_0427_0442e_043d_0438e_002f_0441_043e_0445_0440_0430_043de_043d_0438e-_0434_0430_043d_043d_044b_0445-_0028MGL_0029" href="mathgl_ru_8.html#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></li>
+    <li><a name="toc-_0421_043e_0437_0434_0430_043d_0438e-_043d_043e_0432_044b_0445-_0434_0430_043d_043d_044b_0445-_0028MGL_0029" href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></li>
+    <li><a name="toc-_0418_0437_043ce_043de_043d_0438e-_0434_0430_043d_043d_044b_0445-_0028MGL_0029" href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></li>
+    <li><a name="toc-_041e_043fe_0440_0430_0442_043e_0440_044b-_0028MGL_0029" href="mathgl_ru_8.html#Operators-_0028MGL_0029">8.22 Операторы (MGL)</a></li>
+    <li><a name="toc-_041f_0440_043eg_0440_0430_043c_043c_0438_0440_043e_0432_0430_043d_0438e-_0028MGL_0029" href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></li>
+    <li><a name="toc-_041e_043fc_0438_0438-_043a_043e_043c_0430_043d_0434-_0028MGL_0029" href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></li>
+    <li><a name="toc-_0421_0443_0444_0444_0438_043a_0441_044b-_043fe_0440e_043ce_043d_043d_044b_0445" href="mathgl_ru_8.html#Suffixes">8.25 Суффиксы переменных</a></li>
+    <li><a name="toc-_0423_0442_0438_043b_0438_0442_044b-_0434_043bya-MGL" href="mathgl_ru_8.html#Utilities">8.26 Утилиты для MGL</a></li>
+  </ul></li>
+  <li><a name="toc-_041f_0440_0438_043ce_0440_044b-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya-MathGL" href="mathgl_ru_9.html#Samples">9. Примеры использования MathGL</a>
+  <ul class="toc">
+    <li><a name="toc-_041f_0440_0438_043ce_0440_044b-1D-g_0440_0430_0444_0438_043a_043e_0432" href="mathgl_ru_9.html#g_t1D-plotting-samples">9.1 Примеры 1D графиков</a>
+    <ul class="toc">
+      <li><a name="toc-Plot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Plot-sample">9.1.1 Plot &ndash; пример использования</a></li>
+      <li><a name="toc-Radar-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Radar-sample">9.1.2 Radar &ndash; пример использования</a></li>
+      <li><a name="toc-Tens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Tens-sample">9.1.3 Tens &ndash; пример использования</a></li>
+      <li><a name="toc-Area-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Area-sample">9.1.4 Area &ndash; пример использования</a></li>
+      <li><a name="toc-Area-_0441-g_0440_0430_0434_0438e_043d_0442_043d_043e_0439-_0437_0430_043b_0438_0432_043a_043e_0439-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Area-gradient-sample">9.1.5 Area с градиентной заливкой &ndash; пример использования</a></li>
+      <li><a name="toc-Bars-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Bars-sample">9.1.6 Bars &ndash; пример использования</a></li>
+      <li><a name="toc-Bars-_00282-c_0432e_0442_0430_0029-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Bars-2-colors-sample">9.1.7 Bars (2 цвета) &ndash; пример использования</a></li>
+      <li><a name="toc-Bars-_0028_043e_0434_0438_043d-_043d_0430_0434-_0434_0440_0443g_0438_043c_0029-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Bars-above-sample">9.1.8 Bars (один над другим) &ndash; пример использования</a></li>
+      <li><a name="toc-Bars-_0022_0432_043e_0434_043e_043f_0430_0434_0022-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Bars-fall-sample">9.1.9 Bars &quot;водопад&quot; &ndash; пример использования</a></li>
+      <li><a name="toc-Barh-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Barh-sample">9.1.10 Barh &ndash; пример использования</a></li>
+      <li><a name="toc-Step-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Step-sample">9.1.11 Step &ndash; пример использования</a></li>
+      <li><a name="toc-Stem-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Stem-sample">9.1.12 Stem &ndash; пример использования</a></li>
+      <li><a name="toc-Region-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Region-sample">9.1.13 Region &ndash; пример использования</a></li>
+      <li><a name="toc-Region-_0441-g_0440_0430_0434_0438e_043d_0442_043d_043e_0439-_0437_0430_043b_0438_0432_043a_043e_0439-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Region-gradient-sample">9.1.14 Region с градиентной заливкой &ndash; пример использования</a></li>
+      <li><a name="toc-Error-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Error-sample">9.1.15 Error &ndash; пример использования</a></li>
+      <li><a name="toc-BoxPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#BoxPlot-sample">9.1.16 BoxPlot &ndash; пример использования</a></li>
+      <li><a name="toc-Mark-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Mark-sample">9.1.17 Mark &ndash; пример использования</a></li>
+      <li><a name="toc-TextMark-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#TextMark-sample">9.1.18 TextMark &ndash; пример использования</a></li>
+      <li><a name="toc-Tube-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Tube-sample">9.1.19 Tube &ndash; пример использования</a></li>
+      <li><a name="toc-Text-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Text-sample">9.1.20 Text &ndash; пример использования</a></li>
+      <li><a name="toc-Torus-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Torus-sample">9.1.21 Torus &ndash; пример использования</a></li>
+      <li><a name="toc-Chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Chart-sample">9.1.22 Chart &ndash; пример использования</a></li>
+      <li><a name="toc-Pie-chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Pie-chart-sample">9.1.23 Pie chart &ndash; пример использования</a></li>
+      <li><a name="toc-Ring-chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Ring-chart-sample">9.1.24 Ring chart &ndash; пример использования</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0440_0438_043ce_0440_044b-2D-g_0440_0430_0444_0438_043a_043e_0432" href="mathgl_ru_9.html#g_t2D-plotting-samples">9.2 Примеры 2D графиков</a>
+    <ul class="toc">
+      <li><a name="toc-Surf-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Surf-sample">9.2.1 Surf &ndash; пример использования</a></li>
+      <li><a name="toc-Transparent-surface-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Transparent-surface-sample">9.2.2 Transparent surface &ndash; пример использования</a></li>
+      <li><a name="toc-Surface-in-fog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Surface-in-fog-sample">9.2.3 Surface in fog &ndash; пример использования</a></li>
+      <li><a name="toc-Sharp-colors-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Sharp-colors-sample">9.2.4 Sharp colors &ndash; пример использования</a></li>
+      <li><a name="toc-Mesh-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Mesh-sample">9.2.5 Mesh &ndash; пример использования</a></li>
+      <li><a name="toc-Fall-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Fall-sample">9.2.6 Fall &ndash; пример использования</a></li>
+      <li><a name="toc-Belt-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Belt-sample">9.2.7 Belt &ndash; пример использования</a></li>
+      <li><a name="toc-Tile-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Tile-sample">9.2.8 Tile &ndash; пример использования</a></li>
+      <li><a name="toc-Boxs-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Boxs-sample">9.2.9 Boxs &ndash; пример использования</a></li>
+      <li><a name="toc-Dens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Dens-sample">9.2.10 Dens &ndash; пример использования</a></li>
+      <li><a name="toc-Cont-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Cont-sample">9.2.11 Cont &ndash; пример использования</a></li>
+      <li><a name="toc-ContF-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#ContF-sample">9.2.12 ContF &ndash; пример использования</a></li>
+      <li><a name="toc-ContD-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#ContD-sample">9.2.13 ContD &ndash; пример использования</a></li>
+      <li><a name="toc-Axial-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Axial-sample">9.2.14 Axial &ndash; пример использования</a></li>
+      <li><a name="toc-Grad-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Grad-sample">9.2.15 Grad &ndash; пример использования</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0440_0438_043ce_0440_044b-3D-g_0440_0430_0444_0438_043a_043e_0432" href="mathgl_ru_9.html#g_t3D-plotting-samples">9.3 Примеры 3D графиков</a>
+    <ul class="toc">
+      <li><a name="toc-Surf3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Surf3-sample">9.3.1 Surf3 &ndash; пример использования</a></li>
+      <li><a name="toc-Cloud-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Cloud-sample">9.3.2 Cloud &ndash; пример использования</a></li>
+      <li><a name="toc-CloudP-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#CloudP-sample">9.3.3 CloudP &ndash; пример использования</a></li>
+      <li><a name="toc-Dens3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Dens3-sample">9.3.4 Dens3 &ndash; пример использования</a></li>
+      <li><a name="toc-Cont3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Cont3-sample">9.3.5 Cont3 &ndash; пример использования</a></li>
+      <li><a name="toc-ContF3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#ContF3-sample">9.3.6 ContF3 &ndash; пример использования</a></li>
+      <li><a name="toc-Cont-projection-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Cont-projection-sample">9.3.7 Cont projection &ndash; пример использования</a></li>
+      <li><a name="toc-Dens-projection-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Dens-projection-sample">9.3.8 Dens projection &ndash; пример использования</a></li>
+      <li><a name="toc-CutMinMax-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#CutMinMax-sample">9.3.9 CutMinMax &ndash; пример использования</a></li>
+      <li><a name="toc-_0060_0060Isocaps_0027_0027-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></li>
+      <li><a name="toc-CutOff-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#CutOff-sample">9.3.11 CutOff &ndash; пример использования</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0440_0438_043ce_0440_044b-_043f_0430_0440_043d_044b_0445_002f_0432e_043a_0442_043e_0440_043d_044b_0445-g_0440_0430_0444_0438_043a_043e_0432" href="mathgl_ru_9.html#Dual-plotting-samples">9.4 Примеры парных/векторных графиков</a>
+    <ul class="toc">
+      <li><a name="toc-SurfC-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#SurfC-sample">9.4.1 SurfC &ndash; пример использования</a></li>
+      <li><a name="toc-SurfA-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#SurfA-sample">9.4.2 SurfA &ndash; пример использования</a></li>
+      <li><a name="toc-TileS-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#TileS-sample">9.4.3 TileS &ndash; пример использования</a></li>
+      <li><a name="toc-Map-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Map-sample">9.4.4 Map &ndash; пример использования</a></li>
+      <li><a name="toc-Traj-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Traj-sample">9.4.5 Traj &ndash; пример использования</a></li>
+      <li><a name="toc-Vect-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Vect-sample">9.4.6 Vect &ndash; пример использования</a></li>
+      <li><a name="toc-VectL-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#VectL-sample">9.4.7 VectL &ndash; пример использования</a></li>
+      <li><a name="toc-VectC-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#VectC-sample">9.4.8 VectC &ndash; пример использования</a></li>
+      <li><a name="toc-Flow-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Flow-sample">9.4.9 Flow &ndash; пример использования</a></li>
+      <li><a name="toc-Pipe-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Pipe-sample">9.4.10 Pipe &ndash; пример использования</a></li>
+      <li><a name="toc-Dew-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Dew-sample">9.4.11 Dew &ndash; пример использования</a></li>
+      <li><a name="toc-Surf3C-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Surf3C-sample">9.4.12 Surf3C &ndash; пример использования</a></li>
+      <li><a name="toc-Surf3A-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Surf3A-sample">9.4.13 Surf3A &ndash; пример использования</a></li>
+      <li><a name="toc-Vect-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Vect-3D-sample">9.4.14 Vect 3D &ndash; пример использования</a></li>
+      <li><a name="toc-VectL-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#VectL-3D-sample">9.4.15 VectL 3D &ndash; пример использования</a></li>
+      <li><a name="toc-VectC-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#VectC-3D-sample">9.4.16 VectC 3D &ndash; пример использования</a></li>
+      <li><a name="toc-Flow-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Flow-3D-sample">9.4.17 Flow 3D &ndash; пример использования</a></li>
+      <li><a name="toc-Pipe-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Pipe-3D-sample">9.4.18 Pipe 3D &ndash; пример использования</a></li>
+      <li><a name="toc-Crust-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Crust-sample">9.4.19 Crust &ndash; пример использования</a></li>
+      <li><a name="toc-Dots-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Dots-sample">9.4.20 Dots &ndash; пример использования</a></li>
+    </ul></li>
+    <li><a name="toc-_0411_0430_0437_043e_0432_044be-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438" href="mathgl_ru_9.html#Basic-features">9.5 Базовые возможности</a>
+    <ul class="toc">
+      <li><a name="toc-_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-1D-_0434_0430_043d_043d_044b_0445" href="mathgl_ru_9.html#g_t1D-plot-sample">9.5.1 Пример графиков 1D данных</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-2D-_0434_0430_043d_043d_044b_0445" href="mathgl_ru_9.html#g_t2D-plot-sample">9.5.2 Пример графиков 2D данных</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-3D-_0434_0430_043d_043d_044b_0445" href="mathgl_ru_9.html#g_t3D-plot-sample">9.5.3 Пример графиков 3D данных</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_043b_0438_043d_0438_0439-_0438-_043c_0430_0440_043ae_0440_043e_0432" href="mathgl_ru_9.html#Line-styles-sample">9.5.4 Пример стилей линий и маркеров</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_0441_0442_0440e_043b_043e_043a" href="mathgl_ru_9.html#Arrow-styles-sample">9.5.5 Пример стилей стрелок</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_0442e_043a_0441_0442_0430" href="mathgl_ru_9.html#Text-styles-sample">9.5.6 Пример стилей текста</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-TeX-_0444_043e_0440_043c_0443_043b_044b" href="mathgl_ru_9.html#TeX-parsing-sample">9.5.7 Пример TeX формулы</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440_044b-_043d_0430_0447e_0440_0442_0430_043d_0438_0439-_0448_0440_0438_0444_0442_0430" href="mathgl_ru_9.html#Font-faces-sample">9.5.8 Примеры начертаний шрифта</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440_044b-c_0432e_0442_043e_0432" href="mathgl_ru_9.html#Colors-sample">9.5.9 Примеры цветов</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440_044b-c_0432e_0442_043e_0432_044b_0445-_0441_0445e_043c" href="mathgl_ru_9.html#Color-schemes-sample">9.5.10 Примеры цветовых схем</a></li>
+      <li><a name="toc-_041e_0431_044b_0447_043d_0430ya-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x" href="mathgl_ru_9.html#Normal-transparency">9.5.11 Обычная прозрачность</a></li>
+      <li><a name="toc-_0022_0421_0442e_043a_043bya_043d_043d_0430ya_0022-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x" href="mathgl_ru_9.html#Glass_002dlike-transparency">9.5.12 &quot;Стеклянная&quot; прозрачность</a></li>
+      <li><a name="toc-_0022_041b_0430_043c_043f_043e_0432_0430ya_0022-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x" href="mathgl_ru_9.html#Lamp_002dlike-transparency">9.5.13 &quot;Ламповая&quot; прозрачность</a></li>
+    </ul></li>
+    <li><a name="toc-_0414_043e_043f_043e_043b_043d_0438_0442e_043bx_043d_044be-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438" href="mathgl_ru_9.html#Additional-features">9.6 Дополнительные возможности</a>
+    <ul class="toc">
+      <li><a name="toc-Legend-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Legend-sample">9.6.1 Legend &ndash; пример использования</a></li>
+      <li><a name="toc-_0414_043e_0431_0430_0432_043byae_043c-_0441e_0442_043a_0443" href="mathgl_ru_9.html#Adding-mesh-sample">9.6.2 Добавляем сетку</a></li>
+      <li><a name="toc-Surf-_0026-Cont-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Surf-_0026-Cont-sample">9.6.3 Surf &amp; Cont &ndash; пример использования</a></li>
+      <li><a name="toc-Flow-_0026-Dens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Flow-_0026-Dens-sample">9.6.4 Flow &amp; Dens &ndash; пример использования</a></li>
+      <li><a name="toc-_041de_0441_043a_043e_043bx_043a_043e-_0438_0441_0442_043e_0447_043d_0438_043a_043e_0432-_0441_0432e_0442_0430" href="mathgl_ru_9.html#Several-light-sample">9.6.5 Несколько источников света</a></li>
+      <li><a name="toc-_041e_0442_0440_0430_0436e_043d_0438e-_043f_043e_0432e_0440_0445_043d_043e_0441_0442_0438" href="mathgl_ru_9.html#Mirrored-surface-sample">9.6.6 Отражение поверхности</a></li>
+      <li><a name="toc-Cont-_0438-_043f_043e_0434_043f_0438_0441_0438-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Cont-with-labels-sample">9.6.7 Cont и подписи &ndash; пример использования</a></li>
+      <li><a name="toc-Ternary-plot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Ternary-plot-sample">9.6.8 Ternary plot &ndash; пример использования</a></li>
+      <li><a name="toc-_041e_043a_0440_0430_0448_0438_0432_0430_043d_0438e-_043f_043e-_043f_043e_043b_043e_0436e_043d_0438_044e-g_0440_0430_043d_0438" href="mathgl_ru_9.html#Coloring-by-coordinates-sample">9.6.9 Окрашивание по положению грани</a></li>
+      <li><a name="toc-Drops-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Drops-sample">9.6.10 Drops &ndash; пример использования</a></li>
+      <li><a name="toc-_0420_0438_0441_043e_0432_0430_043d_0438e-_043c_043e_043be_043a_0443_043b" href="mathgl_ru_9.html#Molecules-drawing-sample">9.6.11 Рисование молекул</a></li>
+    </ul></li>
+    <li><a name="toc-_0022_041f_0440_043e_0434_0432_0438_043d_0443_0442_044be_0022-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438" href="mathgl_ru_9.html#Advanced-features">9.7 &quot;Продвинутые&quot; возможности</a>
+    <ul class="toc">
+      <li><a name="toc-_041a_0440_0438_0432_043e_043b_0438_043de_0439_043d_044be-_043a_043e_043e_0440_0434_0438_043d_0430_0442_044b-1" href="mathgl_ru_9.html#Curvelinear-coorinates-sample">9.7.1 Криволинейные координаты</a></li>
+      <li><a name="toc-_041de_0441_043a_043e_043bx_043a_043e-_043e_0441e_0439-_043d_0430-_043e_0434_043d_043e_043c-g_0440_0430_0444_0438_043ae" href="mathgl_ru_9.html#g_t2_002daxes-sample">9.7.2 Несколько осей на одном графике</a></li>
+      <li><a name="toc-Semi_002dlog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Semi_002dlog-sample">9.7.3 Semi-log &ndash; пример использования</a></li>
+      <li><a name="toc-Log_002dlog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Log_002dlog-sample">9.7.4 Log-log &ndash; пример использования</a></li>
+      <li><a name="toc-Fitting-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Fitting-sample">9.7.5 Fitting &ndash; пример использования</a></li>
+      <li><a name="toc-Envelop-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Envelop-sample">9.7.6 Envelop &ndash; пример использования</a></li>
+      <li><a name="toc-Sew-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Sew-sample">9.7.7 Sew &ndash; пример использования</a></li>
+      <li><a name="toc-STFA-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#STFA-sample">9.7.8 STFA &ndash; пример использования</a></li>
+      <li><a name="toc-PDE-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#PDE-sample">9.7.9 PDE &ndash; пример использования</a></li>
+      <li><a name="toc-Beam-tracing-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Beam-tracing-sample">9.7.10 Beam tracing &ndash; пример использования</a></li>
+      <li><a name="toc-Parser-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Parser-sample">9.7.11 Parser &ndash; пример использования</a></li>
+      <li><a name="toc-_041e_0441_043e_0431_044be-_043ce_0442_043a_0438-_043f_043e-_043e_0441ya_043c" href="mathgl_ru_9.html#Manual-ticks-sample">9.7.12 Особые метки по осям</a></li>
+      <li><a name="toc-ColumnPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#ColumnPlot-sample">9.7.13 ColumnPlot &ndash; пример использования</a></li>
+      <li><a name="toc-StickPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#StickPlot-sample">9.7.14 StickPlot &ndash; пример использования</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-_0441_0442e_0440e_043e-_0438_0437_043e_0431_0440_0430_0436e_043d_0438ya" href="mathgl_ru_9.html#Stereo-image-sample">9.7.15 Пример стерео изображения</a></li>
+    </ul>
+</li>
+  </ul></li>
+  <li><a name="toc-_0421_0438_043c_0432_043e_043b_044b-TeX" href="mathgl_ru_10.html#TeX_002dlike-symbols">A. Символы TeX</a></li>
+  <li><a name="toc-GNU-Free-Documentation-License" href="mathgl_ru_11.html#Copying-This-Manual">B. GNU Free Documentation License</a></li>
+  <li><a name="toc-_0418_043d_0434e_043a_0441" href="mathgl_ru_12.html#Index">Индекс</a></li>
+</ul>
+</div>
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en.html b/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en.html
new file mode 100644
index 0000000..fd75109
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: MGL script language</title>
+
+<meta name="description" content="MGL script language for version 1.11: MGL script language">
+<meta name="keywords" content="MGL script language for version 1.11: MGL script language">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Top"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MGL-script-language"></a>
+<h1 class="settitle">MGL script language</h1>
+
+<p>This file documents the MGL script language. It corresponds to release 1.11 of the MathGL library. Please report any errors in this manual to <a href="mailto:mathgl.abalakin at gmail.org">mathgl.abalakin at gmail.org</a>. More information about MGL and MathGL can be found at the project homepage, <a href="http://mathgl.sourceforge.net/">http://mathgl.sourceforge.net/</a>.
+</p>
+<p>Copyright &copy; 2008 Alexey A. Balakin. 
+</p>
+<blockquote><p>Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being &ldquo;A GNU Manual,&rdquo;
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled &ldquo;GNU Free Documentation
+License.&rdquo;
+</p>
+<p>(a) The FSF&rsquo;s Back-Cover Text is: &ldquo;You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom.&rdquo;
+</p></blockquote>
+
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="mgl_en_1.html#MGL-interface">1. MGL language</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mgl_en_2.html#Examples">2. MathGL examples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mgl_en_3.html#Samples">3. Samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mgl_en_4.html#Copying-This-Manual">A. GNU Free Documentation License</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mgl_en_5.html#Index">Index</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_1.html b/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_1.html
new file mode 100644
index 0000000..9a08f6f
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_1.html
@@ -0,0 +1,3182 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: 1. MGL language</title>
+
+<meta name="description" content="MGL script language for version 1.11: 1. MGL language">
+<meta name="keywords" content="MGL script language for version 1.11: 1. MGL language">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="MGL-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MGL-language"></a>
+<h1 class="chapter">1. MGL language</h1>
+
+<p>MathGL library supports the simplest scripts for data handling and plotting. These scripts can be used independently (with the help of UDAV, mgl2png, mgl2eps, mgl2svg programs and others, see section <a href="#Utilities">Utilities for parsing MGL</a>) or in the frame of the library using.
+</p>
+<p>MGL script language is rather simple. Each string is a command. First word of string is the name of command. Other words are command arguments. Command may have up to 1000 arguments (at least for now). Words are separated from each other by space or tabulation symbol. The upper or lower case of words is sufficient, i.e. variables <var>a</var> and <var>A</var> are different variables. Symbol &lsquo;<samp>#</samp>&rsquo; starts the comment (all characters after # will be ignored). The exception is situation when &lsquo;<samp>#</samp>&rsquo; is a part of some string. Also options can be specified after symbol &lsquo;<samp>;</samp>&rsquo; (see section <a href="#Command-options">Command options</a>). Symbol &lsquo;<samp>:</samp>&rsquo; starts new command (like new line character) if it is not placed inside a string or inside brackets.
+</p>
+<p>If string contain references to external parameters (substrings &lsquo;<samp>$0</samp>&rsquo;, &lsquo;<samp>$1</samp>&rsquo; ... &lsquo;<samp>$9</samp>&rsquo;) or definitions (substrings &lsquo;<samp>$a</samp>&rsquo;, &lsquo;<samp>$b</samp>&rsquo; ... &lsquo;<samp>$z</samp>&rsquo;) then before execution the values of parameter/definition will be substituted instead of reference. It allows to use the same MGL script for different parameters (filenames, paths, condition and so on).
+</p>
+<p>Argument can be a string, a variable name or a number. 
+</p><ul>
+<li> 
+The string is any symbols between ordinary marks &lsquo;<samp>'</samp>&rsquo;.
+
+</li><li> 
+Usually variable have a name which is arbitrary combination of symbols (except spaces and &lsquo;<samp>'</samp>&rsquo;) started from a letter and with length less than 64. A temporary array can be used as variable:
+<ul>
+<li> 
+sub-arrays (like in <a href="#subdata">subdata</a> command) as command argument. For example, <code>a(1)</code> or <code>a(1,:)</code> or <code>a(1,:,:)</code> is second row, <code>a(:,2)</code> or <code>a(:,2,:)</code> is third column, <code>a(:,:,0)</code> is first slice and so on. Also you can extract a part of array from m-th to n-th element by code <code>a(m:n,:,:)</code> or just <code>a(m:n)</code>.
+
+</li><li> 
+any column combinations defined by formulas, like <code>a('n*w^2/exp(t)')</code> if names for data columns was specified (by <a href="#idset">idset</a> command or in the file at string started with <code>##</code>).
+
+</li><li> 
+any expression (without spaces) of existed variables produce temporary variable. For example, &lsquo;<samp>sqrt(dat(:,5)+1)</samp>&rsquo; will produce temporary variable with data values equal to <code>tmp[i,j] = sqrt(dat[i,5,j]+1)</code>. 
+
+</li><li> 
+temporary variable of higher dimensions by help of []. For example, &lsquo;<samp>[1,2,3]</samp>&rsquo; will produce a temporary vector of 3 elements {1, 2, 3}; &lsquo;<samp>[[11,12],[21,22]]</samp>&rsquo; will produce matrix 2*2 and so on. Here you can join even an arrays of the same dimensions by construction like &lsquo;<samp>[v1,v2,...,vn]</samp>&rsquo;.
+
+</li><li> 
+result of code for making new data (see section <a href="#Make-another-data">Make another data</a>) inside {}. For example, &lsquo;<samp>{sum dat 'x'}</samp>&rsquo; produce temporary variable which contain result of summation of <var>dat</var> along direction &rsquo;x&rsquo;. This is the same array <var>tmp</var> as produced by command &lsquo;<samp>sum tmp dat 'x'</samp>&rsquo;. You can use nested constructions, like &lsquo;<samp>{sum {max dat 'z'} 'x'}</samp>&rsquo;.
+</li></ul>
+<p>Temporary variables can not be used as 1st argument for commands which create (return) the data (like &lsquo;<samp>new</samp>&rsquo;, &lsquo;<samp>read</samp>&rsquo;, &lsquo;<samp>hist</samp>&rsquo; and so on).
+</p>
+</li><li> 
+Special names <code>nan=#QNAN, pi=3.1415926..., on=1, off=0, :=-1</code> are treated as number if they were not redefined by user. Variables with suffixes are treated as numbers (see section <a href="#Suffixes">Suffixes for variable</a>). Names defined by <a href="#define">define</a> command are treated as number. Also results of formulas with sizes 1x1x1 are treated as number (for example, &lsquo;<samp>pi/dat.nx</samp>&rsquo;).
+</li></ul>
+<p>Before the first using all variables must be defined with the help of commands, like, <a href="#new">new</a>, <a href="#var">var</a>, <a href="#list">list</a>, <a href="#copy">copy</a>, <a href="#read">read</a>, <a href="#hist">hist</a>, <a href="#sum">sum</a> and so on (see section <a href="#Data-create">Data create</a> and <a href="#Make-another-data">Make another data</a>). 
+</p>
+<p>Command may have several set of possible arguments (for example, <code>plot ydat</code> and <code>plot xdat ydat</code>). All command arguments for a selected set must be specified. However, some arguments can have default values. These argument are printed in [], like <code>plot ydat ['stl'='' zval=nan]</code>. At this, the record <code>[arg1 arg2 arg3 ...]</code> means <code>[arg1 [arg2 [arg3 ...]]]</code>, i.e. you can omit only tailing arguments if you agree with its default values. For example, <code>plot ydat '' 1</code> or <code>plot ydat ''</code> is correct, but <code>plot ydat 1</code> is incorrect (argument <code>'stl'</code> is missed).
+</p>
+<p>All MGL commands can be divided on several groups. I will use the following notation for a command description: command names are bold, strings are denoted by commas, variable names are italic, numbers are typewriter. Optional arguments are placed in square brackets and default values for them are shown. Detailed description of color, line styles (see section <a href="#Line-styles">Line styles</a>), color schemes (see section <a href="#Color-scheme">Color scheme</a>), font types, TeX-like symbols (see section <a href="#Font-styles">Font styles</a>) and formulas (see section <a href="#Textual-formulas">Textual formulas</a>) can be found in corresponding section.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#General-concepts">1.1 General concepts</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Graphics-setup">1.2 Graphics setup</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-settings">1.3 Axis settings</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transformation-matrix">1.4 Transformation matrix</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Export-to-file">1.5 Export to file</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Primitives-drawing">1.6 Primitives drawing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing">1.7 Text printing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-Colorbar">1.8 Axis and Colorbar</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Legend">1.9 Legend</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting">1.10 1D plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting">1.11 2D plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting">1.12 3D plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting">1.13 Dual plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-fields">1.14 Vector fields</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-plotting">1.15 Other plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting">1.16 Nonlinear fitting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-create">1.17 Data create</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-filling">1.18 Data filling</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Rearrange-data">1.19 Rearrange data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#File-I_002fO">1.20 File I/O</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Make-another-data">1.21 Make another data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Change-data">1.22 Change data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Operators">1.23 Operators</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Program-flow">1.24 Program flow</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Command-options">1.25 Command options</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Suffixes">1.26 Suffixes for variable</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Utilities">1.27 Utilities for parsing MGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="General-concepts"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Coordinate-axes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="General-concepts-1"></a>
+<h2 class="section">1.1 General concepts</h2>
+
+<p>The set of MathGL features is rather rich &ndash; just the number of basic graphics types is larger than 40. Also there are functions for data handling, plot setup and so on. In spite of it I tried to keep a similar style in command names and in the order of arguments. Mostly it is used for different drawing functions.
+</p>
+<p>There are 4 most general (base) concepts:
+</p><ol>
+<li>
+<strong>Every plot settings (style of lines, font, color scheme) are specified by a string.</strong> It provides convenience for user/programmer &ndash; short string with parameters is more comprehensible than a large set of parameters. Also it provides portability &ndash; the strings are the same in any OS so that it is not necessary to think about argument types.
+</li><li>
+<strong>All commands have &ldquo;simplified&rdquo; and &ldquo;advanced&rdquo; forms.</strong> It is done for user&lt;/samp&gt;&amp;rsquo;s convenience. One needs to specify only one data array in the &ldquo;simplified&rdquo; form in order to see the result. But one may set parametric dependence of coordinates and produce rather complex curves and surfaces in the &ldquo;advanced&rdquo; form. In both cases the order of function arguments is the same: first data arrays, second the string with plot parameters, and later optional arguments for plot tuning.
+</li><li>
+<strong>All plots are vector plots.</strong> The MathGL library is intended for handling scientific data which have vector nature (lines, faces, matrices and so on). As a result, vector representation is used in all cases! In addition, the vector representation allows one to scale the plot easily &ndash; change the canvas size by a factor of 2, and the picture will be proportionally scaled.
+</li><li>
+<strong>New drawing never clears things drawn already.</strong> This, in some sense, unexpected, idea allows to create a lot of &ldquo;combined&rdquo; graphics. For example, to make a surface with contour lines one needs to call the function for surface plotting and the function for contour lines plotting (in any order). Thus the special functions for making this &ldquo;combined&rdquo; plots (as it is done in Matlab and some other plotting systems) are superfluous. Many more examples of such plots can be found in section <a href="mgl_en_2.html#Hints">Hints</a> and in home site (<a href="http://mathgl.sf.net/index.html">http://mathgl.sf.net/index.html</a>).
+</li></ol>
+
+<p>In addition to the general concepts I want to comment on some non-trivial or less commonly used general ideas &ndash; plot positioning, axis specification and curvilinear coordinates, styles for lines, text and color scheme.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Coordinate-axes">1.1.1 Coordinate axes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Line-styles">1.1.2 Line styles</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Color-scheme">1.1.3 Color scheme</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-styles">1.1.4 Font styles</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Textual-formulas">1.1.5 Textual formulas</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+
+
+<hr size="6">
+<a name="Coordinate-axes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#General-concepts" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Line-styles" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Coordinate-axes-1"></a>
+<h3 class="subsection">1.1.1 Coordinate axes</h3>
+
+<p>Two axis representations are used in MathGL. The first one consists of normalizing the data point coordinates in a box <var>Min</var>x<var>Max</var> (see section <a href="#Axis-settings">Axis settings</a>). If <var>Cut</var> is <code>true</code> then the outlier points are omitted, otherwise they are projected to the bounding box (see section <a href="#Cutting">Cutting</a>). Also, the point will be omitted if it lies inside the box defined by <var>CutMin</var> x <var>CutMax</var> or if the value of formula <code>CutOff</code>() is nonzero for its coordinates. After that, transformation formulas are applied to the data point. Finally, the data point is plotted by one of the functions.
+</p>
+<p>There is a possibility to set members <var>Max</var>, <var>Min</var> directly, but one should call <code>RecalcBorder()</code> function to setup plotting routines. A safer way is to set these values by calling the <code>Axis()</code> function, which calls <code>RecalcBorder()</code> automatically. Another way to specify the scaling of the axis is to set it as a minimal or maximal value of the data array. Functions <code>XRange(), YRange(), ZRange()</code> do it. The second (optional) argument is used to replace the axis range or to join with the existed range.
+</p>
+<p>The axis origin is defined by the variable <var>Org</var> and is applied to all consequent calls of axes or grid drawing. By default, if this point lies outside the bounding box then it is projected onto the one (variable <var>AutoOrg</var> controls it). If one of the values of <var>Org</var> is equal to NAN then the corresponding value will be selected automatically.
+</p>
+<p>There is 4-th axis <em>c</em> (color axis or colorbar) in addition to the usual axes <em>x, y, z</em>. It sets the range of values for the surface coloring. Its borders are automatically set to values of Min.z, Max.z during the call of <code>Axis()</code> function. Also, one can directly change the color range by setting variables <var>Cmax</var>, <var>Cmax</var>, or calling functions <code>CAxis()</code> or <code>CRange()</code>. Use <code>Colorbar()</code> function for showing the colorbar.
+</p>
+<p>The form (appearence) of tick labels is controlled by <code>SetTicks()</code> function (see section <a href="#Axis-settings">Axis settings</a>). It has 3 arguments: first one <var>d</var> sets the tick step (if positive) or tick number (if negative) or switches logarithmic ticks on (if zero); the second one, <var>ns</var>, sets the number of subticks; the last one is the starting point for ticks (default is axis origin). Function <var>SetTuneTicks</var> switches on/off tick enhancing by factoring out acommon multiplier (for small coordinate values, like 0.001 to 0.002, or large, like from 1000 to 2000) or common component (for narrow range, like from 0.999 to 1.000). Finally, you may use functions <code>SetXTT(), SetYTT(), SetZTT(), SetCTT()</code> for setting templates for tick labels (it supports TeX symbols). Also, there is a possibility to print arbitrary text as tick labels the by help of <code>SetTicksVal()</code> function.
+</p>
+<hr size="6">
+<a name="Line-styles"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Coordinate-axes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Color-scheme" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Line-styles-1"></a>
+<h3 class="subsection">1.1.2 Line styles</h3>
+
+<a name="index-Line-style"></a>
+<a name="index-Mark-style"></a>
+<a name="index-Arrows"></a>
+
+<p>The line style is defined by the string which may contain specifications for color (&lsquo;<samp>wkrgbcymhRGBCYMHWlenupqLENUPQ</samp>&rsquo;), dashing style (&lsquo;<samp>-|;:ji</samp>&rsquo; or space), width (&lsquo;<samp>0123456789</samp>&rsquo;) and marks (&lsquo;<samp>o+xsd.^v</samp>&rsquo; and &lsquo;<samp>#</samp>&rsquo; modifier). If one of the type of information is omitted then default values used with the previous color or one from palette (for see section <a href="#g_t1D-plotting">1D plotting</a>) are adopted. 
+By default palette contain following colors: <span style="color: rgb(76, 76, 76);">dark gray</span> &lsquo;<samp>H</samp>&rsquo;, <span style="color: rgb(0, 0, 255);">blue</span> &lsquo;<samp>b</samp>&rsquo;, <span style="color: rgb(0, 255, 0);">green</span> &lsquo;<samp>g</samp>&rsquo;, <span style="color: rgb(255, 0, 0);">red</span> &lsquo;<samp>r</samp>&rsquo;, <span style="color: rgb(0, 255, 255);">cyan</span> &lsquo;<samp>c</samp>&rsquo;, <span style="color: rgb(255, 0, 255);">magenta</span> &lsquo;<samp>m</samp>&rsquo;, <span style="color: rgb(255, 255, 0);">yellow</span> &lsquo;<samp>y</samp>&rsquo;, <span style="color: rgb(127, 127, 127);">gray</span> &lsquo;<samp>h</samp>&rsquo;, <span style="color: rgb(0, 255, 127);">green-blue</span> &lsquo;<samp>l</samp>&rsquo;, <span style="color: rgb(0, 127, 255);">sky-blue</span> &lsquo;<samp>n</samp>&rsquo;, <span style="color: rgb(255, 127, 0);">orange</span> &lsquo;<samp>q</samp>&rsquo;, <span style="color: rgb(127, 255, 0);">green-yellow</span> &lsquo;<samp>e</samp>&rsquo;, <span style="color: rgb(127, 0, 255);">blue-violet</span> &lsquo;<samp>u</samp>&rsquo;, <span style="color: rgb(255, 0, 127);">purple</span> &lsquo;<samp>p</samp>&rsquo;.
+
+<p>The color types are: &lsquo;<samp>k</samp>&rsquo; -- black, &lsquo;<samp>r</samp>&rsquo; -- <span style="color: rgb(255, 0, 0);">red</span>, &lsquo;<samp>R</samp>&rsquo; -- <span style="color: rgb(127, 0, 0);">dark red</span>, &lsquo;<samp>g</samp>&rsquo; -- <span style="color: rgb(0, 255, 0);">green</span>, &lsquo;<samp>G</samp>&rsquo; -- <span style="color: rgb(0, 127, 0);">dark green</span>, &lsquo;<samp>b</samp>&rsquo; -- <span style="color: rgb(0, 0, 255);">blue</span>, &lsquo;<samp>B</samp>&rsquo; -- <span style="color: rgb(0, 0, 127);">dark blue</span>, &lsquo;<samp>c</samp>&rsquo; -- <span style="color: rgb(0, 255, 255);">cyan</span>, &lsquo;<samp>C</samp>&rsquo; -- <span style="color: rgb(0, 127, 127);">dark cyan</span>, &lsquo;<samp>m</samp>&rsquo; -- <span style="color: rgb(255, 0, 255);">magenta</span>, &lsquo;<samp>M</samp>&rsquo; -- <span style="color: rgb(127, 0, 127);">dark magenta</span>, &lsquo;<samp>y</samp>&rsquo; -- <span style="color: rgb(255, 255, 0);">yellow</span>, &lsquo;<samp>Y</samp>&rsquo; -- <span style="color: rgb(127, 127, 0);">dark yellow (gold)</span>, &lsquo;<samp>h</samp>&rsquo; -- <span style="color: rgb(127, 127, 127);">gray</span>, &lsquo;<samp>H</samp>&rsquo; -- <span style="color: rgb(76, 76, 76);">dark gray</span>, &lsquo;<samp>w</samp>&rsquo; -- white, &lsquo;<samp>W</samp>&rsquo; -- <span style="color: rgb(178, 178, 178);">bright gray</span>, &lsquo;<samp>l</samp>&rsquo; -- <span style="color: rgb(0, 255, 127);">green-blue</span>, &lsquo;<samp>L</samp>&rsquo; -- <span style="color: rgb(0, 127, 63);">dark green-blue</span>, &lsquo;<samp>e</samp>&rsquo; -- <span style="color: rgb(127, 255, 0);">green-yellow</span>, &lsquo;<samp>E</samp>&rsquo; -- <span style="color: rgb(63, 127, 0);">dark green-yellow</span>, &lsquo;<samp>n</samp>&rsquo; -- <span style="color: rgb(0, 127, 255);">sky-blue</span>, &lsquo;<samp>N</samp>&rsquo; -- <span style="color: rgb(0, 63, 127);">dark sky-blue</span>, &lsquo;<samp>u</samp>&rsquo; -- <span style="color: rgb(127, 0, 255);">blue-violet</span>, &lsquo;<samp>U</samp>&rsquo; -- <span style="color: rgb(63, 0, 127);">dark blue-violet</span>, &lsquo;<samp>p</samp>&rsquo; -- <span style="color: rgb(255, 0, 127);">purple</span>, &lsquo;<samp>P</samp>&rsquo; -- <span style="color: rgb(127, 0, 63);">dark purple</span>, &lsquo;<samp>q</samp>&rsquo; -- <span style="color: rgb(255, 127, 0);">orange</span>, &lsquo;<samp>Q</samp>&rsquo; -- <span style="color: rgb(127, 63, 0);">dark orange (brown)</span>.</p>
+
+Dashing style has the following meaning: space -- no line (usable for plotting only marks), &lsquo;<samp>-</samp>&rsquo; -- solid line (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;), &lsquo;<samp>|</samp>&rsquo; -- long dashed line (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>;</samp>&rsquo; -- dashed line (&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>=</samp>&rsquo; -- small dashed line (&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;), &lsquo;<samp>:</samp>&rsquo; -- dotted line (&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;), &lsquo;<samp>j</samp>&rsquo; -- dash-dotted line (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>i</samp>&rsquo; -- small dash-dotted line (&#9632;&#9632;&#9632;&#9633;&#9633;&#9632;&#9633;&#9633;&#9632;&#9632;&#9632;&#9633;&#9633;&#9632;&#9633;&#9633;).</p>
+<p>Marker types are: &lsquo;<samp>o</samp>&rsquo; &ndash; circle, &lsquo;<samp>+</samp>&rsquo; &ndash; cross, &lsquo;<samp>x</samp>&rsquo; &ndash; skew cross, &lsquo;<samp>s</samp>&rsquo; - square, &lsquo;<samp>d</samp>&rsquo; - rhomb (or diamond), &lsquo;<samp>.</samp>&rsquo; &ndash; dot (point), &lsquo;<samp>^</samp>&rsquo; &ndash; triangle up, &lsquo;<samp>v</samp>&rsquo; &ndash; triangle down, &lsquo;<samp>&lt;</samp>&rsquo; &ndash; triangle left, &lsquo;<samp>&gt;</samp>&rsquo; &ndash; triangle right, &lsquo;<samp>#*</samp>&rsquo; &ndash; Y sign, &lsquo;<samp>#+</samp>&rsquo; &ndash; squared cross, &lsquo;<samp>#x</samp>&rsquo; &ndash; squared skew cross, &lsquo;<samp>#.</samp>&rsquo; &ndash; circled dot. If string contain symbol &lsquo;<samp>#</samp>&rsquo; then the solid versions of markers are used.
+</p>
+<div class="float">
+<img src="../png/sample5.png" alt="../png/sample5">
+
+</div><p><strong>Styles of lines and marks.
+</strong>
+</p>
+<p>One may specify to draw a special symbol (an arrow) at the beginning and at the end of line. This is done if the specification string contains one of the following symbols: &lsquo;<samp>A</samp>&rsquo; &ndash; outer arrow, &lsquo;<samp>V</samp>&rsquo; &ndash; inner arrow, &lsquo;<samp>I</samp>&rsquo; &ndash; transverse hatches, &lsquo;<samp>K</samp>&rsquo; &ndash; arrow with hatches, &lsquo;<samp>T</samp>&rsquo; &ndash; triangle, &lsquo;<samp>S</samp>&rsquo; &ndash; square, &lsquo;<samp>D</samp>&rsquo; &ndash; rhombus, &lsquo;<samp>O</samp>&rsquo; &ndash; circle, &lsquo;<samp>_</samp>&rsquo; &ndash; nothing (the default). The following rule applies: the first symbol specifies the arrow at the end of line, the second specifies the arrow at the beginning of the line. For example, &lsquo;<samp>r-A</samp>&rsquo; defines a red solid line with usual arrow at the end, &lsquo;<samp>b|AI</samp>&rsquo; defines a blue dash line with an arrow at the end and with hatches at the beginning, &lsquo;<samp>_O</samp>&rsquo; defines a line with the current style and with a circle at the beginning. These styles are applicable during the graphics plotting as well (for example, <a href="#g_t1D-plotting">1D plotting</a>).
+</p>
+<div class="float">
+<img src="../png/sampled.png" alt="../png/sampled">
+
+</div><p><strong>Arrow styles.
+</strong>
+</p>
+<hr size="6">
+<a name="Color-scheme"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Line-styles" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-styles" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Color-scheme-1"></a>
+<h3 class="subsection">1.1.3 Color scheme</h3>
+
+<a name="index-Color-scheme"></a>
+
+<p>The color scheme is used for determining the color of surfaces, isolines, isosurfaces and so on. The color scheme is defined by the string, which may contain several characters that are color id (see section <a href="#Line-styles">Line styles</a>) or characters &lsquo;<samp>d#:|</samp>&rsquo;. Symbol &lsquo;<samp>d</samp>&rsquo; denotes the interpolation by 3d position instead of the coloring by amplitude. Symbol &lsquo;<samp>#</samp>&rsquo; switches to mesh drawing or to a wire plot. Symbol &lsquo;<samp>|</samp>&rsquo; disables color interpolation in color scheme, which can be useful, for example, for sharp colors during matrix plotting. Symbol &lsquo;<samp>:</samp>&rsquo; finishes the color scheme parsing. Following it, the user may put styles for the text, rotation axis for curves/isocontours, and so on. Color scheme may contain up to 32 color values.
+</p>
+<p>You may also use &ldquo;lighted&rdquo; colors in the color scheme specification (<em>not in line style!</em>). The &ldquo;lighted&rdquo; color contain 2 symbols: first one is the usual symbol for color specification, the second one is a digit for its brightness. The digit can be in range &lsquo;<samp>1</samp>&rsquo;...&lsquo;<samp>9</samp>&rsquo;. 
+Number &lsquo;<samp>5</samp>&rsquo; corresponds to a normal color, &lsquo;<samp>1</samp>&rsquo; is a very dark version of the color (practically black), and &lsquo;<samp>9</samp>&rsquo; is a very bright version of the color (practically white). For example, the color scheme can be &lsquo;<samp>b2b7wr7r2</samp>&rsquo;.
+</p>
+<div class="float">
+<img src="../png/colors.png" alt="../png/colors">
+
+</div><p><strong>Colors and its ids.
+</strong>
+</p>
+<p>For coloring by <em>amplitude</em> (most common) the final color is a linear interpolation of color array. The color array is constructed from the string ids. The argument is the amplitude normalized between <var>Cmin</var> &ndash; <var>Cmax</var> (see section <a href="#Axis-settings">Axis settings</a>). For example, string containing 4 characters &lsquo;<samp>bcyr</samp>&rsquo; corresponds to a colorbar from blue (lowest value) through cyan (next value) through yellow (next value) to the red (highest value). String &lsquo;<samp>kw</samp>&rsquo; corresponds to a colorbar from black (lowest value) to white (highest value). String &lsquo;<samp>m</samp>&rsquo; corresponds to a simple magenta color.
+</p>
+<p>There are several useful combinations. String &lsquo;<samp>kw</samp>&rsquo; corresponds to the simplest gray color scheme where higher values are brighter. String &lsquo;<samp>wk</samp>&rsquo; presents the inverse gray color scheme where higher value is darker. Strings &lsquo;<samp>kRryw</samp>&rsquo;, &lsquo;<samp>kGgw</samp>&rsquo;, &lsquo;<samp>kBbcw</samp>&rsquo; present the well-known <em>hot</em>, <em>summer</em> and <em>winter</em> color schemes. Strings &lsquo;<samp>BbwrR</samp>&rsquo; and &lsquo;<samp>bBkRr</samp>&rsquo; allow to view bi-color figure on white or black background, where negative values are blue and positive values are red. String &lsquo;<samp>BbcyrR</samp>&rsquo; gives a color scheme similar to the well-known <em>jet</em> color scheme.
+</p>
+<div class="float">
+<img src="../png/color_schemes.png" alt="../png/color_schemes">
+
+</div><p><strong>Most popular color schemes.
+</strong>
+</p>
+<p>When coloring by <em>coordinate</em>, the final color is determined by the position of the point in 3d space and is calculated from formula c=x*c[1] + y*c[2] + z*c[3]. Here, c[1], c[2], c[3] are the first three elements of color array; x, y, z are normalized to <var>Min</var> &ndash; <var>Max</var> coordinates of the point. This type of coloring is useful for isosurface plot where color may show the exact position of a piece of surface.
+</p>
+<hr size="6">
+<a name="Font-styles"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Color-scheme" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Textual-formulas" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Font-styles-1"></a>
+<h3 class="subsection">1.1.4 Font styles</h3>
+
+<a name="index-Font-styles"></a>
+
+<p>Text style is specified by the string which may contain several characters of font (&lsquo;<samp>ribwou</samp>&rsquo;) and/or alignment (&lsquo;<samp>LRC</samp>&rsquo;) specifications. The string also may contain the color id characters &lsquo;<samp>wkrgbcymhRGBCYMHW</samp>&rsquo; (see section <a href="#Line-styles">Line styles</a>) after the symbol &lsquo;<samp>:</samp>&rsquo;. For example, &lsquo;<samp>biC:b</samp>&rsquo; sets the bold italic font text aligned at the center and with blue color.
+</p>
+<p>The font types are: &lsquo;<samp>r</samp>&rsquo; &ndash; roman font, &lsquo;<samp>i</samp>&rsquo; &ndash; italic style, &lsquo;<samp>b</samp>&rsquo; &ndash; bold style. By default roman roman font is used. The align types are: &lsquo;<samp>L</samp>&rsquo; &ndash; align left (default), &lsquo;<samp>C</samp>&rsquo; &ndash; align center, &lsquo;<samp>R</samp>&rsquo; &ndash; align right. Additional font effects are: &lsquo;<samp>w</samp>&rsquo; &ndash; wired, &lsquo;<samp>o</samp>&rsquo; &ndash; over-lined, &lsquo;<samp>u</samp>&rsquo; &ndash; underlined. 
+</p>
+<p>Also a parsing of the LaTeX-like syntax is provided. There are commands for the font style changing inside the string (for example, use \b for bold font): \a or \overline &ndash; over-lined, \b or \textbf &ndash; bold, \i or \textit &ndash; italic, \r or \textrm &ndash; roman (disable bold and italic attributes), \u or \underline &ndash; underlined, \w or \wire &ndash; wired, \big &ndash; bigger size, @ &ndash; smaller size. The lower and upper indexes are specified by &lsquo;<samp>_</samp>&rsquo; and &lsquo;<samp>^</samp>&rsquo; symbols. At this the changed font style is applied only on next symbol or symbols in braces {}. The text in braces {} are treated as single symbol that allow one to print the index of index. For example, compare the strings &lsquo;<samp>sin (x^{2^3})</samp>&rsquo; and &lsquo;<samp>sin (x^2^3)</samp>&rsquo;. You may also change text color inside string by command #? or by \color? where &lsquo;<samp>?</samp>&rsquo; is symbolic id of the color (see section <a href="#Line-styles">Line styles</a>). For example, words &lsquo;<samp>Blue</samp>&rsquo; and &lsquo;<samp>red</samp>&rsquo; will be colored in the string &lsquo;<samp>#b{Blue} and \colorr{red} text</samp>&rsquo;. The most of functions understand the newline symbol &lsquo;<samp>\n</samp>&rsquo; and allows to print multi-line text. Finally, you can use arbitrary UTF codes by command <code>\utf0x????</code>. For example, <code>\utf0x3b1</code> will produce
+ &alpha; symbol.</p>
+<p>The most of commands for special TeX or AMSTeX symbols, the commands for font style changing (\textrm, \textbf, \textit, \textsc, \overline, \underline), accents (\hat, \tilde, \dot, \ddot, \acute, \check, \grave, \bar, \breve) and roots (\sqrt, \sqrt3, \sqrt4) are recognized. The full list contain approximately 2000 commands. Note that first space symbol after the command is ignored, but second one is printed as normal symbol (space). For example, the following strings produce the same result <em>\tilde a</em>: &lsquo;<samp>\tilde{a}</samp>&rsquo;; &lsquo;<samp>\tilde a</samp>&rsquo;; &lsquo;<samp>\tilde{}a</samp>&rsquo;.
+</p>
+In particular, the Greek letters are recognizable special symbols: &alpha; &ndash; \alpha, &beta; &ndash; \beta, &gamma; &ndash; \gamma, &delta; &ndash; \delta, &epsilon; &ndash; \epsilon, &eta; &ndash; \eta, &iota; &ndash; \iota, &chi; &ndash; \chi, &kappa; &ndash; \kappa, &lambda; &ndash; \lambda, &mu; &ndash; \mu, &nu; &ndash; \nu, o &ndash; \o, &omega; &ndash; \omega, &#981; &ndash; \phi, &pi; &ndash; \pi, &psi; &ndash; \psi, &rho; &ndash; \rho, &sigma; &ndash; \sigma, &theta; &ndash; \theta, &tau; &ndash; \tau, &upsilon; &ndash; \upsilon, &xi; &ndash; \xi, &zeta; &ndash; \zeta, &sigmaf; &ndash; \varsigma, &#603; &ndash; \varepsilon, &thetasym; &ndash; \vartheta, &phi; &ndash; \varphi, &#1008; &ndash; \varkappa; A &ndash; \Alpha, B &ndash; \Beta, &Gamma; &ndash; \Gamma, &Delta; &ndash; \Delta, E &ndash; \Epsilon, H &ndash; \Eta, I &ndash; \Iota, C &ndash; \Chi, K &ndash; \Kappa, &Lambda; &ndash; \Lambda, M &ndash; \Mu, N &ndash; \Nu, O &ndash; \O, &Omega; &ndash; \Omega, &Phi; &ndash; \Phi, &Pi; &ndash; \Pi, &Psi; &ndash; \Psi, R &ndash; \Rho, &Sigma; &ndash; \Sigma, &Theta; &ndash; \Theta, T &ndash; \Tau, &Upsilon; &ndash; \Upsilon, &Xi; &ndash; \Xi, Z &ndash; \Zeta.
+
+<p>The small part of most common special TeX symbols are: &ang; &ndash; \angle, &sdot; &ndash; \cdot, &clubs; &ndash; \clubsuit, &#10003; &ndash; \checkmark, &cup; &ndash; \cup, &cap; &ndash; \cap, &#9826; &ndash; \diamondsuit, &#9671; &ndash; \diamond, &divide;
+ &ndash; \div, 
+&darr; &ndash; \downarrow, &dagger; &ndash; \dag, &Dagger; &ndash; \ddag, &equiv; &ndash; \equiv, &exist; &ndash; \exists, &#8994; &ndash; \frown, &#9837; &ndash; \flat, &ge; &ndash; \ge, &ge; &ndash; \geq, &#8807; &ndash; \geqq, &larr; &ndash; \gets, &#9825; &ndash; \heartsuit, &infin; &ndash; \infty, &int; &ndash; \int, \Int, &image;  &ndash; \Im, &#9826; &ndash; \lozenge, &#10216; &ndash; \langle, &le; &ndash; \le, &le; &ndash; \leq, &#8806; &ndash; \leqq, &larr; &ndash; \leftarrow, &#8723; &ndash; \mp, &nabla; &ndash; \nabla, &ne; &ndash; \ne, &ne; &ndash; \neq, &#9838; &ndash; \natural, &#8750; &ndash; \oint, &#8857; &ndash; \odot, &oplus; &ndash; \oplus, &part; &ndash; \partial, &#8741; &ndash; \parallel, &perp; &ndash;\perp, &plusmn; &ndash; \pm, &prop; &ndash; \propto, &prod; &ndash; \prod, &real; &ndash; \Re, &rarr; &ndash; \rightarrow, &#10217; &ndash; \rangle, &spades; &ndash; \spadesuit, ~ &ndash; \sim, &#8995; &ndash; \smile, &sub;  &ndash; \subset, &sup; &ndash; \supset, &radic; &ndash; \sqrt or \surd, &sect; &ndash; \S, &#9839; &ndash; \sharp, &sum; &ndash; \sum, &times; &ndash; \times, &rarr; &ndash; \to, &there4; &ndash; \therefore, &uarr; &ndash; \uparrow, &weierp; &ndash; \wp. </p>
+<p>The font size can be defined explicitly (if <var>size</var>&gt;0) or relative to a base font size as |<var>size</var>|*<var>FontSize</var> (if <var>size</var>&lt;0). The value <var>size</var>=0 specifies that the string will not be printed. The base font size is measured in internal &ldquo;MathGL&rdquo; units. Special functions <code>SetFontSizePT(), SetFontSizeCM(), SetFontSizeIN()</code> allow one to set it in more &ldquo;common&rdquo; variables for a given dpi value of the picture.
+</p>
+
+<hr size="6">
+<a name="Textual-formulas"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-styles" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Textual-formulas-1"></a>
+<h3 class="subsection">1.1.5 Textual formulas</h3>
+
+<a name="index-Textual-formulas"></a>
+
+<p>MathGL have the fast variant of textual formula evaluation 
+. There are a lot of functions and operators available. The operators are: &lsquo;<samp>+</samp>&rsquo; &ndash; addition, &lsquo;<samp>-</samp>&rsquo; &ndash; subtraction, &lsquo;<samp>*</samp>&rsquo; &ndash; multiplication, &lsquo;<samp>/</samp>&rsquo; &ndash; division, &lsquo;<samp>^</samp>&rsquo; &ndash; integer power. Also there are logical &ldquo;operators&rdquo;: &lsquo;<samp>&lt;</samp>&rsquo; &ndash; true if x&lt;y, &lsquo;<samp>&gt;</samp>&rsquo; &ndash; true if x&gt;y, &lsquo;<samp>=</samp>&rsquo; &ndash; true if x=y, &lsquo;<samp>&amp;</samp>&rsquo; &ndash; true if x and y both nonzero, &lsquo;<samp>|</samp>&rsquo; &ndash; true if x or y nonzero. These logical operators have lowest priority and return 1 if true or 0 if false.
+</p>
+<p>The basic functions are: &lsquo;<samp>sqrt(x)</samp>&rsquo; &ndash; square root of <var>x</var>, &lsquo;<samp>pow(x,y)</samp>&rsquo; &ndash; power <var>x</var> in <var>y</var>, &lsquo;<samp>ln(x)</samp>&rsquo; &ndash; natural logarithm of <var>x</var>, &lsquo;<samp>lg(x)</samp>&rsquo; &ndash; decimal logarithm of <var>x</var>, &lsquo;<samp>log(a,x)</samp>&rsquo; &ndash; logarithm base <var>a</var> of <var>x</var>, &lsquo;<samp>abs(x)</samp>&rsquo; &ndash; absolute value of <var>x</var>, &lsquo;<samp>sign(x)</samp>&rsquo; &ndash; sign of <var>x</var>, &lsquo;<samp>mod(x,y)</samp>&rsquo; &ndash; x modulo y, &lsquo;<samp>step(x)</samp>&rsquo; &ndash; step function, &lsquo;<samp>int(x)</samp>&rsquo; &ndash; integer part of <var>x</var>, &lsquo;<samp>rnd</samp>&rsquo; &ndash; random number, &lsquo;<samp>pi</samp>&rsquo; &ndash; number
+&pi; = 3.1415926&hellip;</p>
+
+<p>Trigonometric functions are: &lsquo;<samp>sin(x)</samp>&rsquo;, &lsquo;<samp>cos(x)</samp>&rsquo;, &lsquo;<samp>tan(x)</samp>&rsquo; (or &lsquo;<samp>tg(x)</samp>&rsquo;). Inverse trigonometric functions are: &lsquo;<samp>asin(x)</samp>&rsquo;, &lsquo;<samp>acos(x)</samp>&rsquo;, &lsquo;<samp>atan(x)</samp>&rsquo;. Hyperbolic functions are: &lsquo;<samp>sinh(x)</samp>&rsquo; (or &lsquo;<samp>sh(x)</samp>&rsquo;), &lsquo;<samp>cosh(x)</samp>&rsquo; (or &lsquo;<samp>ch(x)</samp>&rsquo;), &lsquo;<samp>tanh(x)</samp>&rsquo; (or &lsquo;<samp>th(x)</samp>&rsquo;). Inverse hyperbolic functions are: &lsquo;<samp>asinh(x)</samp>&rsquo;, &lsquo;<samp>acosh(x)</samp>&rsquo;, &lsquo;<samp>atanh(x)</samp>&rsquo;.
+</p>
+<p>There are a set of special functions: &lsquo;<samp>gamma(x)</samp>&rsquo; &ndash; Gamma function &Gamma;(x) = &int;<sub>0</sub><sup>&infin;</sup> t<sup>x-1</sup> exp(-t) dt, &lsquo;<samp>psi(x)</samp>&rsquo; &ndash; digamma function &psi;(x) = &Gamma;&prime;(x)/&Gamma;(x) for x&ne;0, &lsquo;<samp>ai(x)</samp>&rsquo; &ndash; Airy function Ai(x), &lsquo;<samp>bi(x)</samp>&rsquo; &ndash; Airy function Bi(x), &lsquo;<samp>cl(x)</samp>&rsquo; &ndash; Clausen function, &lsquo;<samp>li2(x)</samp>&rsquo; (or &lsquo;<samp>dilog(x)</samp>&rsquo;) &ndash; dilogarithm Li<sub>2</sub>(x) = -&real;&int;<sub>0</sub><sup>x</sup>ds log(1-s)/s, &lsquo;<samp>sinc(x)</samp>&rsquo; &ndash; compute sinc(x) = sin(&pi;x)/(&pi;x) for any value of x, &lsquo;<samp>zeta(x)</samp>&rsquo; &ndash; Riemann zeta function &zeta;(s) = &sum;<sub>k=1</sub><sup>&infin;</sup>k<sup>-s</sup> for arbitrary s&ne;1, &lsquo;<samp>eta(x)</samp>&rsquo; &ndash; eta function &eta;(s) = (1 - 2<sup>1-s</sup>)&zeta;(s) for arbitrary s, &lsquo;<samp>lp(l,x)</samp>&rsquo; &ndash; Legendre polynomial P<sub>l</sub>(x), (|x|&le;1, l&ge;0), &lsquo;<samp>w0(x)</samp>&rsquo; &ndash; principal branch of the Lambert W function, &lsquo;<samp>w1(x)</samp>&rsquo; &ndash; principal branch of the Lambert W function. Function W(x) is defined to be solution of the equation: W exp(W) = x. </p>
+
+<p>The exponent integrals are: &lsquo;<samp>ci(x)</samp>&rsquo; &ndash; Cosine integral Ci(x) = &int;<sub>0</sub><sup>x</sup>dt cos(t)/t, &lsquo;<samp>si(x)</samp>&rsquo; &ndash; Sine integral Si(x) = &int;<sub>0</sub><sup>x</sup>dt sin(t)/t, &lsquo;<samp>erf(x)</samp>&rsquo; &ndash; error function erf(x) = (2/&radic;&pi;) &int;<sub>0</sub><sup>x</sup>dt exp(-t<sup>2</sup>) , &lsquo;<samp>ei(x)</samp>&rsquo; &ndash; exponential integral Ei(x) = -PV(&int;<sub>-x</sub><sup>&infin;</sup>dt exp(-t)/t) (where PV denotes the principal value of the integral), &lsquo;<samp>e1(x)</samp>&rsquo; &ndash; exponential integral E<sub>1</sub>(x) = &real;&int;<sub>1</sub><sup>&infin;</sup>dt exp(-xt)/t, &lsquo;<samp>e2(x)</samp>&rsquo; &ndash; exponential integral E<sub>2</sub>(x) = &real;&int;<sub>1</sub>&infin;</sup>dt exp(-xt)/t<sup>2</sup>, &lsquo;<samp>ei3(x)</samp>&rsquo; &ndash; exponential integral Ei<sub>3</sub>(x) = &int;<sub>0</sub><sup>x</sup>dt exp(-t<sup>3</sup>) for x&ge;0. </p>
+
+<p>Bessel functions are: &lsquo;<samp>j(nu,x)</samp>&rsquo; &ndash; regular cylindrical Bessel function of fractional order <em>nu</em>, &lsquo;<samp>y(nu,x)</samp>&rsquo; &ndash; irregular cylindrical Bessel function of fractional order <em>nu</em>, &lsquo;<samp>i(nu,x)</samp>&rsquo; &ndash; regular modified Bessel function of fractional order <em>nu</em>, &lsquo;<samp>k(nu,x)</samp>&rsquo; &ndash; irregular modified Bessel function of fractional order <em>nu</em>. </p>
+
+<p>Elliptic integrals are: &lsquo;<samp>ee(k)</samp>&rsquo; &ndash; complete elliptic integral is denoted by E(k) = E(&pi;/2,k), &lsquo;<samp>ek(k)</samp>&rsquo; &ndash; complete elliptic integral is denoted by K(k) = F(&pi;/2,k), &lsquo;<samp>e(phi,k)</samp>&rsquo; &ndash; elliptic integral E(&phi;,k) = &int;<sub>0</sub><sup>&phi;</sup>dt &radic;(1 - k<sup>2</sup>sin<sup>2</sup>(t)), &lsquo;<samp>f(phi,k)</samp>&rsquo; &ndash; elliptic integral F(&phi;,k) = &int;<sub>0</sub><sup>&phi;</sup>dt 1/&radic;(1 - k<sup>2</sup>sin<sup>2</sup>(t))</p>
+<p>Jacobi elliptic functions are: &lsquo;<samp>sn(u,m)</samp>&rsquo;, &lsquo;<samp>cn(u,m)</samp>&rsquo;, &lsquo;<samp>dn(u,m)</samp>&rsquo;, &lsquo;<samp>sc(u,m)</samp>&rsquo;, &lsquo;<samp>sd(u,m)</samp>&rsquo;, &lsquo;<samp>ns(u,m)</samp>&rsquo;, &lsquo;<samp>cs(u,m)</samp>&rsquo;, &lsquo;<samp>cd(u,m)</samp>&rsquo;, &lsquo;<samp>nc(u,m)</samp>&rsquo;, &lsquo;<samp>ds(u,m)</samp>&rsquo;, &lsquo;<samp>dc(u,m)</samp>&rsquo;, &lsquo;<samp>nd(u,m)</samp>&rsquo;.
+</p>
+<p>Note, some of these functions are unavailable if NO_GSL is defined during compilation of MathGL library. 
+</p>
+<p>There is no difference between lower or upper case in formulas. If argument value lie outside the range of function definition then function returns NaN.
+</p>
+
+
+<hr size="6">
+<a name="Graphics-setup"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Textual-formulas" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Graphics-setup-1"></a>
+<h2 class="section">1.2 Graphics setup</h2>
+
+<p>Coomands in this group influences on overall graphics appearance. So all of them should be placed <em>before</em> any actual plotting commands. 
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Transparency">1.2.1 Transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lighting">1.2.2 Lighting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fog">1.2.3 Fog</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Default-sizes">1.2.4 Default sizes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Zooming">1.2.5 Zooming</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cutting">1.2.6 Cutting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-settings">1.2.7 Other settings</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Graphics-setup" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lighting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transparency-1"></a>
+<h3 class="subsection">1.2.1 Transparency</h3>
+
+<p>There are several commands for setup transparency. The general command is <a href="#alpha">alpha</a> which switch on/off the transparency for overall plot. It influence only for graphics which created after <a href="#alpha">alpha</a> call. Command <a href="#alphadef">alphadef</a> specify the default value of alpha-channel. You may switch off transparency of selected plot by command <a href="#transparent">transparent</a>. Finally, command <a href="#transptype">transptype</a> set the kind of transparency. See section <a href="mgl_en_3.html#Transparent-surface-sample">Transparent surface sample</a>, for sample code and picture.
+</p>
+<a name="index-alpha"></a>
+<p><a name="alpha"></a>
+</p><dl>
+<dt><a name="index-alpha-1"></a><u>MGL command:</u> <b>alpha</b><i> <code>[val=on]</code></i></dt>
+<dd><p>Sets the transparency on/off. It is recommended to call this command before any plotting command. Default value is <code>off</code>. Use <code>transparent off</code> in particular plot to disable its transparency.
+</p></dd></dl>
+<a name="index-alphadef"></a>
+<p><a name="alphadef"></a>
+</p><dl>
+<dt><a name="index-alphadef-1"></a><u>MGL command:</u> <b>alphadef</b><i> <code>val</code></i></dt>
+<dd><p>Default value of alpha channel (transparency) for all plotting commands. Initial value is 0.5.
+</p></dd></dl>
+<a name="index-transparent"></a>
+<p><a name="transparent"></a>
+</p><dl>
+<dt><a name="index-transparent-1"></a><u>MGL command:</u> <b>transparent</b><i> <code>val</code></i></dt>
+<dd><p>Temporary switches transparency on/off for the plot.
+</p></dd></dl>
+<a name="index-transptype"></a>
+<p><a name="transptype"></a>
+</p><dl>
+<dt><a name="index-transptype-1"></a><u>MGL command:</u> <b>transptype</b><i> <code>val</code></i></dt>
+<dd><p>This command set the transparency type. Normal transparency (&lsquo;<samp>0</samp>&rsquo;) &ndash; below things is less visible than upper ones. Glass-like transparency (&lsquo;<samp>1</samp>&rsquo;) &ndash; below and upper things are commutable and just decrease intensity of light by RGB channel. Lamp-like transparency (&lsquo;<samp>2</samp>&rsquo;) &ndash; below and upper things are commutable and are the source of some additional light. I recommend to set <code>alphadef 0.3</code> or less for lamp-like transparency. See section <a href="mgl_en_3.html#Normal-transparency">Normal transparency</a>, <a href="mgl_en_3.html#Glass_002dlike-transparency">Glass-like transparency</a>, <a href="mgl_en_3.html#Lamp_002dlike-transparency">Lamp-like transparency</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Lighting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fog" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Lighting-1"></a>
+<h3 class="subsection">1.2.2 Lighting</h3>
+
+<p>There are several commands for setup lighting. The general command is <a href="#light">light</a> which switch on/off the lighting for overall plot. Generally MathGL support up to 10 independent light sources. The position, color, brightness of each light source can be set separately. By default only one light source is active. It is source number <code>0</code> with white color, located at top of the plot.
+</p>
+<a name="index-light"></a>
+<p><a name="light"></a>
+</p><dl>
+<dt><a name="index-light-1"></a><u>MGL command:</u> <b>light</b><i> <code>[val=on]</code></i></dt>
+<dd><p>Sets the using of light on/off for overall plot. It is recommended to call this command before any plotting command. Default value is lightning off.
+</p></dd></dl>
+<dl>
+<dt><a name="index-light-2"></a><u>MGL command:</u> <b>light</b><i> <code>num val</code></i></dt>
+<dd><p>Switch on/off <var>num</var>-th light source separately.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-light-3"></a><u>MGL command:</u> <b>light</b><i> <code>num xpos ypos zpos</code> ['col'='w' <code>br=0.5</code>]</i></dt>
+<dd><p>The command adds a light source with identification <var>num</var> at position {<var>xpos</var>, <var>ypos</var>, <var>zpos</var>}. The color of light is <var>col</var> (white by default). The brightness of light is <var>br</var> which must be in range [0,1].
+</p></dd></dl>
+
+<a name="index-ambient"></a>
+<p><a name="ambient"></a>
+</p><dl>
+<dt><a name="index-ambient-1"></a><u>MGL command:</u> <b>ambient</b><i> <code>val</code></i></dt>
+<dd><p>Sets the brightness of ambient light. The value should be in range [0,1]. Initial value is 0.5. 
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fog"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lighting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Default-sizes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fog-1"></a>
+<h3 class="subsection">1.2.3 Fog</h3>
+
+<a name="index-fog"></a>
+<p><a name="fog"></a>
+</p><dl>
+<dt><a name="index-fog-1"></a><u>MGL command:</u> <b>fog</b><i> <code>val [dz=0.25]</code></i></dt>
+<dd><p>Command imitate a fog in the plot. Fog start from relative distance <var>dz</var> from view point and its density growths exponentially in depth. So that the fog influence is determined by law ~<em>1-exp(-d*z)</em>. Here <em>z</em> is normalized to 1 depth of the plot. If value <var>val</var>=<code>0</code> then the fog is absent. See section <a href="mgl_en_3.html#Surface-in-fog-sample">Surface in fog sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Default-sizes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fog" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Zooming" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Default-sizes-1"></a>
+<h3 class="subsection">1.2.4 Default sizes</h3>
+
+<p>These commands control the default (initial) values for most graphics parameters including sizes of markers, arrows, linewidth and so on. As any other settings these ones will influence only on plots created after the settings change.
+</p>
+<a name="index-barwidth"></a>
+<p><a name="barwidth"></a>
+</p><dl>
+<dt><a name="index-barwidth-1"></a><u>MGL command:</u> <b>barwidth</b><i> <code>val</code></i></dt>
+<dd><p>Sets relative width of rectangles in <code>bars, barh, boxplot</code>. Default value is <code>0.7</code>.
+</p></dd></dl>
+
+<a name="index-marksize"></a>
+<p><a name="marksize"></a>
+</p><dl>
+<dt><a name="index-marksize-1"></a><u>MGL command:</u> <b>marksize</b><i> <code>val</code></i></dt>
+<dd><p>The size of marks. Default value is <code>1</code>.
+</p></dd></dl>
+
+<a name="index-arrowsize"></a>
+<p><a name="arrowsize"></a>
+</p><dl>
+<dt><a name="index-arrowsize-1"></a><u>MGL command:</u> <b>arrowsize</b><i> <code>val</code></i></dt>
+<dd><p>The size of arrows for lines and curves. Default value is <code>1</code>.
+</p></dd></dl>
+
+<a name="index-linewidth"></a>
+<p><a name="linewidth"></a>
+</p><dl>
+<dt><a name="index-linewidth-1"></a><u>MGL command:</u> <b>linewidth</b><i> <code>val</code></i></dt>
+<dd><p>The variable define the base width for all lines. The value &lt;1 is ignored. Increase of this variables is actual for large bitmap pictures. Default value is <code>1</code>.
+</p></dd></dl>
+
+<a name="index-ticklen"></a>
+<p><a name="ticklen"></a>
+</p><dl>
+<dt><a name="index-ticklen-1"></a><u>MGL command:</u> <b>ticklen</b><i> <code>val</code> [<code>stt=1</code>]</i></dt>
+<dd><p>The relative length of axis ticks. Default value is <code>0.1</code>. Parameter <var>stt</var>&gt;0 set relative length of subticks which is in <code>sqrt(1+stt)</code> times smaller.
+</p></dd></dl>
+
+<a name="index-tickstl"></a>
+<p><a name="tickstl"></a>
+</p><dl>
+<dt><a name="index-tickstl-1"></a><u>MGL command:</u> <b>tickstl</b><i> 'stl' ['sub'='']</i></dt>
+<dd><p>The line style of axis ticks (<var>stl</var>) and subticks (<var>sub</var>). If <var>stl</var>=&rdquo; then default style is used (&lsquo;<samp>k</samp>&rsquo; or &lsquo;<samp>w</samp>&rsquo; depending on transparency type). If <var>sub</var>=&rdquo; then ticks style is used (i.e. <var>stl</var>).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Zooming"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Default-sizes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cutting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Zooming-1"></a>
+<h3 class="subsection">1.2.5 Zooming</h3>
+
+<p>These commands control the overall zooming of the picture or the sub-picture. Normally you can use these variables and commands for removing &ldquo;white&rdquo; spaces around a plot.
+</p>
+<a name="index-plotfactor"></a>
+<p><a name="plotfactor"></a>
+</p><dl>
+<dt><a name="index-plotfactor-1"></a><u>MGL command:</u> <b>plotfactor</b><i> <code>val</code></i></dt>
+<dd><p>The factor of plot size. It is not recommended to set it lower then 1.6. This is some analogue of command <a href="#zoom">zoom</a> but applied not to overall image but for each <a href="#inplot">inplot</a>. Use negative value to enable automatic <a href="#plotfactor">plotfactor</a> selection.
+</p></dd></dl>
+
+<a name="index-zoom"></a>
+<p><a name="zoom"></a>
+</p><dl>
+<dt><a name="index-zoom-1"></a><u>MGL command:</u> <b>zoom</b><i> <code>x1 y1 x2 y2</code></i></dt>
+<dd><p>The command changes the scale of graphics that correspond to zoom in/out of the picture. After command call the current plot will be cleared and further the picture will contain plotting from its part [x1,x2]*[y1,y2]. Here picture coordinates <var>x1</var>, <var>x2</var>, <var>y1</var>, <var>y2</var> changes from 0 to 1. Use <code>zoom 0 0 1 1</code> to return default view.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cutting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Zooming" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cutting-1"></a>
+<h3 class="subsection">1.2.6 Cutting</h3>
+
+<p>These commands set the condition when the points are excluded (cutted) from the drawing. Note, that a point with <code>nan</code> value(s) of coordinate or amplitude will be automatically excluded from the drawing.
+</p>
+<a name="index-cut"></a>
+<p><a name="cut"></a>
+</p><dl>
+<dt><a name="index-cut-1"></a><u>MGL command:</u> <b>cut</b><i> <code>val</code></i></dt>
+<dd><p>Determines how points outside bounding box are drawn. If it is <code>on</code> then points are excluded from plot (it is default) otherwise the points are projected to edges of bounding box.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cut-2"></a><u>MGL command:</u> <b>cut</b><i> <code>x1 y1 z1 x2 y2 z2</code></i></dt>
+<dd><p>Lower and upper edge of the box in which never points are drawn. If both edges are the same (the variables are equal) then the cutting box is empty. See section <a href="mgl_en_3.html#CutMinMax-sample">CutMinMax sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cut-3"></a><u>MGL command:</u> <b>cut</b><i> 'cond'</i></dt>
+<dd><p>Command set the cutting off condition by formula <var>cond</var>. This condition determine will point be plotted or not. If value of formula is nonzero then point is omitted, otherwise it plotted. Set argument as <code>''</code> to disable cutting off condition. See section <a href="mgl_en_3.html#CutOff-sample">CutOff sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Other-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cutting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Other-settings-1"></a>
+<h3 class="subsection">1.2.7 Other settings</h3>
+
+<a name="index-font"></a>
+<p><a name="font"></a>
+</p><dl>
+<dt><a name="index-font-1"></a><u>MGL command:</u> <b>font</b><i> 'fnt' [<code>val=6</code>]</i></dt>
+<dd><p>Font style for text and labels (see text). Initial style is &rsquo;fnt&rsquo;=&rsquo;rC&rsquo; give Roman font with centering. Parameter <code>val</code> sets the size of font for tick and axis labels. Default font size of axis labels is 1.4 times large than for tick labels. For more detail, see section <a href="#Font-styles">Font styles</a>.
+</p></dd></dl>
+
+<a name="index-rotatetext"></a>
+<p><a name="rotatetext"></a>
+</p><dl>
+<dt><a name="index-rotatetext-1"></a><u>MGL command:</u> <b>rotatetext</b><i> <code>val</code></i></dt>
+<dd><p>Set to use or not text rotation along axis. Initial value is <code>on</code>.
+</p></dd></dl>
+
+<a name="index-palette"></a>
+<p><a name="palette"></a>
+</p><dl>
+<dt><a name="index-palette-1"></a><u>MGL command:</u> <b>palette</b><i> 'colors'</i></dt>
+<dd><p>Set the palette as selected colors. Default value is <code>'Hbgrcmyhlnqeup'</code>. The palette is used mostly in 1D plots for curves which styles are not specified.
+</p></dd></dl>
+
+<a name="index-meshnum"></a>
+<p><a name="meshnum"></a>
+</p><dl>
+<dt><a name="index-meshnum-1"></a><u>MGL command:</u> <b>meshnum</b><i> <code>num</code></i></dt>
+<dd><p>Sets approximate number of lines in <a href="#mesh">mesh</a>, <a href="#fall">fall</a>, <a href="#grid">grid</a> and also the number of hachures in <a href="#vect">vect</a>, <a href="#vectc">vectc</a>, <a href="#dew">dew</a> and the number of cells in <a href="#cloud">cloud</a>. By default (=0) it draws all lines/hachures/cells.
+</p></dd></dl>
+
+<a name="index-axialdir"></a>
+<p><a name="axialdir"></a>
+</p><dl>
+<dt><a name="index-axialdir-1"></a><u>MGL command:</u> <b>axialdir</b><i> 'dir'</i></dt>
+<dd><p>Set direction around which curve rotated in <a href="#axial">axial</a>, <a href="#torus">torus</a>. Default value is &rsquo;z&rsquo;.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axis-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transformation-matrix" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-settings-1"></a>
+<h2 class="section">1.3 Axis settings</h2>
+
+<p>These large set of commands control how the axis and ticks will be drawn. Note that there is 3-step transformation of data coordinates are performed. Firstly, coordinates are projected and cutting is applied (see section <a href="#Cutting">Cutting</a>), after it transformation formulas are applied, and finally the data was normalized in bounding box.
+</p>
+<a name="index-axis"></a>
+<p><a name="axis"></a>
+</p><dl>
+<dt><a name="index-axis-1"></a><u>MGL command:</u> <b>axis</b><i> <code>x1 y1 x2 y2</code></i></dt>
+<dt><a name="index-axis-2"></a><u>MGL command:</u> <b>axis</b><i> <code>x1 y1 z1 x2 y2 z2</code></i></dt>
+<dd><a name="index-ranges"></a>
+<p><a name="ranges"></a>
+</p></dd><dt><a name="index-ranges-1"></a><u>MGL command:</u> <b>ranges</b><i> <code>x1 x2 y1 y2 [z1=0 z2=0]</code></i></dt>
+<dd><p>Sets the ranges of coordinates changing. Also it sets the range for coloring (analogous to <code>caxis z1 z2</code>). Initial ranges are [-1, 1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axis-3"></a><u>MGL command:</u> <b>axis</b><i> 'fx' 'fy' ['fz'='' 'fa'='']</i></dt>
+<dd><p>Sets the transformation formulas for curvilinear coordinates. Each string should contain mathematical expression for real coordinate depending on internal coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; and &lsquo;<samp>a</samp>&rsquo; or &lsquo;<samp>c</samp>&rsquo; for colorbar. For example, the cylindrical coordinates are introduced as <code>axis 'x*cos(y)' 'x*sin(y)' 'z'</code>. For removing of formulas the corresponding parameter should be <code>''</code>. The using of transformation formulas will slightly slowing the program, i.e. <code>axis '' '' ''</code> is faster than <code>axis '1*x' '1*y' '1*z'</code>. Initially all formulas are absent (Cartesian coordinates are used). For more details about functions and formulas, see section <a href="#Textual-formulas">Textual formulas</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axis-4"></a><u>MGL command:</u> <b>axis</b><i> <code>how</code></i></dt>
+<dd><p>Sets one of the predefined transformation formulas for curvilinear coordinate. Paramater <var>how</var> define the coordinates: &lsquo;<samp>0</samp>&rsquo; &ndash; Cartesian coordinates (no transformation); &lsquo;<samp>1</samp>&rsquo; &ndash; Polar coordiantes <em>x_n=x*cos(y),y_n=x*sin(y), z_n=z</em>; &lsquo;<samp>2</samp>&rsquo; &ndash; Spherical coordinates <em>x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y)</em>; &lsquo;<samp>3</samp>&rsquo; &ndash; Parabolic coordinates <em>x_n=x*y, y_n=(x*x-y*y)/2, z_n=z</em>; &lsquo;<samp>4</samp>&rsquo; &ndash; Paraboloidal coordinates <em>x_n=(x*x-y*y)*cos(z)/2, y_n=(x*x-y*y)*sin(z)/2, z_n=x*y</em>; &lsquo;<samp>5</samp>&rsquo; &ndash; Oblate coordinates <em>x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z), z_n=sinh(x)*sin(y)</em>; &lsquo;<samp>6</samp>&rsquo; &ndash; Prolate coordinates <em>x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z), z_n=cosh(x)*cos(y)</em>; &lsquo;<samp>7</samp>&rsquo; &ndash; Elliptic coordinates <em>x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z</em>; &lsquo;<samp>8</samp>&rsquo; &ndash; Toroidal coordinates <em>x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)), y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y))</em>; &lsquo;<samp>9</samp>&rsquo; &ndash; Bispherical coordinates <em>x_n=sin(y)*cos(z)/(cosh(x)-cos(y)), y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y))</em>; &lsquo;<samp>10</samp>&rsquo; &ndash; Bipolar coordinates <em>x_n=sinh(x)/(cosh(x)-cos(y)), y_n=sin(y)/(cosh(x)-cos(y)), z_n=z</em>.
+</p></dd></dl>
+
+<a name="index-caxis"></a>
+<p><a name="caxis"></a>
+</p><dl>
+<dt><a name="index-caxis-1"></a><u>MGL command:</u> <b>caxis</b><i> <code>z1 z2</code></i></dt>
+<dd><p>Sets the range for surface coloring. Initial range is [-1, 1].
+</p></dd></dl>
+
+<a name="index-origin"></a>
+<p><a name="origin"></a>
+</p><dl>
+<dt><a name="index-origin-1"></a><u>MGL command:</u> <b>origin</b><i> <code>x0 y0 [z0=nan]</code></i></dt>
+<dd><p>Center of axis cross section. If one of values is <code>nan</code> then MathGL library try to select optimal axis position.
+</p></dd></dl>
+
+<a name="index-ternary"></a>
+<p><a name="ternary"></a>
+</p><dl>
+<dt><a name="index-ternary-1"></a><u>MGL command:</u> <b>ternary</b><i> <code>val</code></i></dt>
+<dd><p>The command sets to draws Ternary plot. This special plot is for 3 dependent coordinates (components) <var>a</var>, <var>b</var>, <var>c</var> so that <var>a</var>+<var>b</var>+<var>c</var>=1. MathGL uses only 2 independent coordinates <var>a</var>=x and <var>b</var>=y since it is enough to plot everything. At this third coordinate z act as another parameter to produce contour lines, surfaces and so on. See section <a href="mgl_en_3.html#Ternary-plot-sample">Ternary plot sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-xrange"></a>
+<p><a name="xrange"></a>
+</p><dl>
+<dt><a name="index-xrange-1"></a><u>MGL command:</u> <b>xrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-yrange"></a>
+<p><a name="yrange"></a>
+</p></dd><dt><a name="index-yrange-1"></a><u>MGL command:</u> <b>yrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-zrange"></a>
+<p><a name="zrange"></a>
+</p></dd><dt><a name="index-zrange-1"></a><u>MGL command:</u> <b>zrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-crange"></a>
+<p><a name="crange"></a>
+</p></dd><dt><a name="index-crange-1"></a><u>MGL command:</u> <b>crange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><p>Sets the range for x-,y-,z- coordinate or coloring as minimal and maximal values of data <var>dat</var>. Parameter <code>add=on</code> shows that the new range will be joined to existed one (nut will not replace it). Parameter <var>fact</var> add additional range increase on value (<var>Max</var>-<var>Min</var>)*<var>fact</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xrange-2"></a><u>MGL command:</u> <b>xrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-yrange-2"></a><u>MGL command:</u> <b>yrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-zrange-2"></a><u>MGL command:</u> <b>zrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-crange-2"></a><u>MGL command:</u> <b>crange</b><i> <code>x1 x2</code></i></dt>
+<dd><p>Sets the range for x-,y-,z- coordinate or coloring. See also <a href="#axis">axis</a>.
+</p></dd></dl>
+
+<a name="index-xtick"></a>
+<p><a name="xtick"></a>
+</p><dl>
+<dt><a name="index-xtick-1"></a><u>MGL command:</u> <b>xtick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ytick"></a>
+<p><a name="ytick"></a>
+</p></dd><dt><a name="index-ytick-1"></a><u>MGL command:</u> <b>ytick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ztick"></a>
+<p><a name="ztick"></a>
+</p></dd><dt><a name="index-ztick-1"></a><u>MGL command:</u> <b>ztick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ctick"></a>
+<p><a name="ctick"></a>
+</p></dd><dt><a name="index-ctick-1"></a><u>MGL command:</u> <b>ctick</b><i> <code>val</code></i></dt>
+<dd><p>Sets step for x-, y-, z-axis ticks or colorbar ticks (if <var>val</var>&gt;0) or it&rsquo;s number (if <var>val</var>&lt;0) in corresponding direction. Zero value <var>val</var>=0 sets logarithmic ticks. Parameter <var>sub</var> sets the number of sub-ticks. Parameter <var>org</var> set the starting points for ticks. If not <code>org=nan</code> then the value from <a href="#origin">origin</a> is used.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xtick-2"></a><u>MGL command:</u> <b>xtick</b><i> 'templ'</i></dt>
+<dt><a name="index-ytick-2"></a><u>MGL command:</u> <b>ytick</b><i> 'templ'</i></dt>
+<dt><a name="index-ztick-2"></a><u>MGL command:</u> <b>ztick</b><i> 'templ'</i></dt>
+<dt><a name="index-ctick-2"></a><u>MGL command:</u> <b>ctick</b><i> 'templ'</i></dt>
+<dd><p>Sets the template for x-, y-, z-axis ticks or colorbar ticks. It may contain TeX symbols also. If <var>templ</var>=<code>''</code> then default template is used (in simplest case it is &lsquo;<samp>%.2g</samp>&rsquo;) with automatic detaching of common multiplier or common component.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xtick-3"></a><u>MGL command:</u> <b>xtick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dt><a name="index-ytick-3"></a><u>MGL command:</u> <b>ytick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dt><a name="index-ztick-3"></a><u>MGL command:</u> <b>ztick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dd><p>Sets manual positions <var>val1</var>,<var>val2</var>,... and labels <var>lbl1</var>,<var>lbl2</var>,... for ticks along x-, y-, z-axis. Labels may contain TeX symbols also.
+</p></dd></dl>
+
+<a name="index-adjust"></a>
+<p><a name="adjust"></a>
+</p><dl>
+<dt><a name="index-adjust-1"></a><u>MGL command:</u> <b>adjust</b><i> ['dir'='xyzc']</i></dt>
+<dd><p>Set the ticks step, number of sub-ticks and initial ticks position to be the most human readable for the axis along direction(s) <var>dir</var>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Transformation-matrix"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Export-to-file" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transformation-matrix-1"></a>
+<h2 class="section">1.4 Transformation matrix</h2>
+
+<p>These commands control how and where further plotting will be placed. There is a curtain order of calling of these commands for the better plot view. First one should be <a href="#subplot">subplot</a> or <a href="#inplot">inplot</a> for specifying the place. After it a <a href="#rotate">rotate</a> and <a href="#aspect">aspect</a>. And finally any other plotting commands may be called. Alternatevely you can use <a href="#columnplot">columnplot</a> for position plots in the column one by another without gap between plot axis (bounding boxes).
+</p>
+<a name="index-subplot"></a>
+<p><a name="subplot"></a>
+</p><dl>
+<dt><a name="index-subplot-1"></a><u>MGL command:</u> <b>subplot</b><i> <code>nx ny m [dx=0 dy=0]</code></i></dt>
+<dd><p>Puts further plotting in a <var>m</var>-th cell of <var>nx</var>*<var>ny</var> grid of the whole frame area. This command set off any aspects or rotations. So it should be used first for creating the subplot. From the aesthetical point of view it is not recommended to use this command with different matrices in the same frame. The position of the cell can be shifted from its default position by relative size <var>dx</var>, <var>dy</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-subplot-2"></a><u>MGL command:</u> <b>subplot</b><i> <code>nx ny m</code> 'style'</i></dt>
+<dd><p>The same as previous but space reserved for axis/colorbar is saved only if <var>style</var> contain: &lsquo;<samp>L</samp>&rsquo; or &lsquo;<samp>&lt;</samp>&rsquo; &ndash; at left side, &lsquo;<samp>R</samp>&rsquo; or &lsquo;<samp>&gt;</samp>&rsquo; &ndash; at right side, &lsquo;<samp>A</samp>&rsquo; or &lsquo;<samp>^</samp>&rsquo; &ndash; at top side, &lsquo;<samp>U</samp>&rsquo; or &lsquo;<samp>_</samp>&rsquo; &ndash; at bottom side.
+</p></dd></dl>
+
+<a name="index-inplot"></a>
+<p><a name="inplot"></a>
+</p><dl>
+<dt><a name="index-inplot-1"></a><u>MGL command:</u> <b>inplot</b><i> <code>x1 x2 y1 y2 [rel=off]</code></i></dt>
+<dd><p>Puts further plotting in some region of the whole frame surface. This command allows one to create a plot in arbitrary place of the screen. The position is defined by rectangular coordinates [<var>x1</var>, <var>x2</var>]*[<var>y1</var>, <var>y2</var>]. The coordinates <var>x1</var>, <var>x2</var>, <var>y1</var>, <var>y2</var> are normalized to interval [0, 1]. If parameter <var>rel</var>=<code>on</code> then the relative position to current <a href="#subplot">subplot</a> is used. This command set off any aspects or rotations. So it should be used first for creating subplot.
+</p></dd></dl>
+
+<a name="index-columnplot"></a>
+<p><a name="columnplot"></a>
+</p><dl>
+<dt><a name="index-columnplot-1"></a><u>MGL command:</u> <b>columnplot</b><i> <code>num ind [d=0]</code></i></dt>
+<dd><p>Puts further plotting in <var>ind</var>-th cell of column with <var>num</var> cells. The position is relative to previous <a href="#subplot">subplot</a> call (or <a href="#inplot">inplot</a> with <code>rel=off</code>). Parameter <var>d</var> set extra gap between cells.
+</p></dd></dl>
+
+<a name="index-stickplot"></a>
+<p><a name="stickplot"></a>
+</p><dl>
+<dt><a name="index-stickplot-1"></a><u>MGL command:</u> <b>stickplot</b><i> <code>num ind tet phi</code></i></dt>
+<dd><p>Puts further plotting in <var>ind</var>-th cell of stick with <var>num</var> cells. At this, stick is rotated on angles <var>tet</var>, <var>phi</var>. The position is relative to previous <a href="#subplot">subplot</a> call (or <a href="#inplot">inplot</a> with <code>rel=off</code>).
+</p></dd></dl>
+
+<a name="index-rotate"></a>
+<p><a name="rotate"></a>
+</p><dl>
+<dt><a name="index-rotate-1"></a><u>MGL command:</u> <b>rotate</b><i> <code>tetz tetx [tety=0]</code></i></dt>
+<dd><p>Rotates a further plotting relative to each axis (x, z, y) consecutively on angles <var>tetx</var>, <var>tetz</var>, <var>tety</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-rotate-2"></a><u>MGL command:</u> <b>rotate</b><i> <code>tet x y z</code></i></dt>
+<dd><p>Rotates a further plotting around vector {x,y,z} on angle <var>tet</var>.
+</p></dd></dl>
+
+<a name="index-aspect"></a>
+<p><a name="aspect"></a>
+</p><dl>
+<dt><a name="index-aspect-1"></a><u>MGL command:</u> <b>aspect</b><i> <code>ax ay [az=1]</code></i></dt>
+<dd><p>Defines aspect ratio for the plot. The viewable axes will be related one to another as the ratio <var>ax:ay:az</var>. For the best effect it should be used after <a href="#rotate">rotate</a> command.
+</p></dd></dl>
+
+<a name="index-perspective"></a>
+<p><a name="perspective"></a>
+</p><dl>
+<dt><a name="index-perspective-1"></a><u>MGL command:</u> <b>perspective</b><i> <code>val</code></i></dt>
+<dd><p>Add (switch on) the perspective to plot. The parameter <em>val ~ 1/z_eff \in [0,1)</em>. By default (<code>val=0</code>) the perspective is off.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Export-to-file"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transformation-matrix" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Primitives-drawing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Export-to-file-1"></a>
+<h2 class="section">1.5 Export to file</h2>
+
+<a name="index-write"></a>
+<p><a name="write"></a>
+</p><dl>
+<dt><a name="index-write-1"></a><u>MGL command:</u> <b>write</b><i> 'fname' [<code>solid=off</code>]</i></dt>
+<dd><p>Exports current picture/frame to file &rsquo;fname&rsquo; (file type is determined by extension). Solid (usually white) background will be used if <code>solid=on</code>. If &rsquo;fname&rsquo;=&rdquo; then the file &lsquo;<samp>frameNNNN.jpg</samp>&rsquo; is used, where &lsquo;<samp>NNNN</samp>&rsquo; is current frame id.
+</p></dd></dl>
+
+<a name="index-setsize"></a>
+<p><a name="setsize"></a>
+</p><dl>
+<dt><a name="index-setsize-1"></a><u>MGL command:</u> <b>setsize</b><i> <code>w h</code></i></dt>
+<dd><p>Sets size of picture in pixels. This function call <strong>must be</strong> placed before any plotting command because it completely remove picture content. In some program the call of this function is forbidden.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Primitives-drawing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Export-to-file" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Primitives-drawing-1"></a>
+<h2 class="section">1.6 Primitives drawing</h2>
+
+<p>These commands draw some simple objects like line, point, sphere, drop, cone and so on.
+</p>
+<a name="index-clf"></a>
+<p><a name="clf"></a>
+</p><dl>
+<dt><a name="index-clf-1"></a><u>MGL command:</u> <b>clf</b></dt>
+<dd><p>Clear the picture by removes all drawing from it. Does not change transformation matrix. 
+</p></dd></dl>
+
+<a name="index-ball"></a>
+<p><a name="ball"></a>
+</p><dl>
+<dt><a name="index-ball-1"></a><u>MGL command:</u> <b>ball</b><i> <code>x y</code> ['col'='r']</i></dt>
+<dt><a name="index-ball-2"></a><u>MGL command:</u> <b>ball</b><i> <code>x y z</code> ['col'='r']</i></dt>
+<dd><p>Draws a point (ball) at position {<var>x</var>, <var>y</var>, <var>z</var>} with color defined by string <var>col</var>.
+</p></dd></dl>
+
+<a name="index-line"></a>
+<p><a name="line"></a>
+</p><dl>
+<dt><a name="index-line-1"></a><u>MGL command:</u> <b>line</b><i> <code>x1 y1 x2 y2</code> ['stl'='']</i></dt>
+<dt><a name="index-line-2"></a><u>MGL command:</u> <b>line</b><i> <code>x1 y1 z1 x2 y2 z2</code> ['stl'='']</i></dt>
+<dd><p>Draws a geodesic line (straight line in Cartesian coordinates) from point {<var>x1</var>,<var>y1</var>,<var>z1</var>} to {<var>x2</var>,<var>y2</var>,<var>z2</var>} using line style <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-curve"></a>
+<p><a name="curve"></a>
+</p><dl>
+<dt><a name="index-curve-1"></a><u>MGL command:</u> <b>curve</b><i> <code>x1 y1 dx1 dy1 x2 y2 dx2 dy2</code> ['stl'='']</i></dt>
+<dt><a name="index-curve-2"></a><u>MGL command:</u> <b>curve</b><i> <code>x1 y1 z1 dx1 dy1 dz1 x2 y2 z2 dx2 dy2 dz2</code> ['stl'='']</i></dt>
+<dd><p>Draws Bezier-like curve from point {<var>x1</var>,<var>y1</var>,<var>z1</var>} to {<var>x2</var>,<var>y2</var>,<var>z2</var>} using line style <var>stl</var>. At this tangent is co-directed with {<var>dx1</var>,<var>dy1</var>,<var>dz1</var>}, {<var>dx2</var>,<var>dy2</var>,<var>dz2</var>} and proportional to its amplitude.
+</p></dd></dl>
+
+<a name="index-facex"></a>
+<p><a name="facex"></a>
+</p><dl>
+<dt><a name="index-facex-1"></a><u>MGL command:</u> <b>facex</b><i> <code>x0 y0 z0 wy wz</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><a name="index-facey"></a>
+<p><a name="facey"></a>
+</p></dd><dt><a name="index-facey-1"></a><u>MGL command:</u> <b>facey</b><i> <code>x0 y0 z0 wx wz</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><a name="index-facez"></a>
+<p><a name="facez"></a>
+</p></dd><dt><a name="index-facez-1"></a><u>MGL command:</u> <b>facez</b><i> <code>x0 y0 z0 wx wy</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><p>Draws the solid rectangle (face) perpendicular to [x,y,z]-axis correspondingly at position {<var>x0</var>, <var>y0</var>, <var>z0</var>} with color <var>stl</var> and with widths <var>wx</var>, <var>wy</var>, <var>wz</var> along corresponding directions. At this colors can be the same for all vertexes or different if all 4 colors are specified for each vertex. Parameters <var>d1</var>!=0, <var>d2</var>!=0 set additional shift of the last vertex (i.e. to draw quadrangle).
+</p></dd></dl>
+
+<a name="index-sphere"></a>
+<p><a name="sphere"></a>
+</p><dl>
+<dt><a name="index-sphere-1"></a><u>MGL command:</u> <b>sphere</b><i> <code>x0 y0 r</code> ['col'='r']</i></dt>
+<dt><a name="index-sphere-2"></a><u>MGL command:</u> <b>sphere</b><i> <code>x0 y0 z0 r</code> ['col'='r']</i></dt>
+<dd><p>Draw the sphere with radius <var>r</var> and center at point {<var>x0</var>, <var>y0</var>, <var>z0</var>} and color <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-drop"></a>
+<p><a name="drop"></a>
+</p><dl>
+<dt><a name="index-drop-1"></a><u>MGL command:</u> <b>drop</b><i> <code>x0 y0 dx dy r</code> ['col'='b' <code>sh=1 asp=1</code>]</i></dt>
+<dt><a name="index-drop-2"></a><u>MGL command:</u> <b>drop</b><i> <code>x0 y0 z0 dx dy dz r</code> ['col'='b' <code>sh=1 asp=1</code>]</i></dt>
+<dd><p>Draw the drop with radius <var>r</var> at point {<var>x0</var>,<var>y0</var>,<var>z0</var>} elongated in direction {<var>dx</var>,<var>dy</var>,<var>dz</var>} and with color <var>col</var>. Parameter <var>sh</var> set the degree of drop oblongness: &lsquo;<samp>0</samp>&rsquo; is sphere, &lsquo;<samp>1</samp>&rsquo; is maximally oblongness drop. Parameter <var>asp</var> set relative width of the drop (this is analogue of &ldquo;ellipticity&rdquo; for the sphere). See section <a href="mgl_en_3.html#Drops-sample">Drops sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-cone"></a>
+<p><a name="cone"></a>
+</p><dl>
+<dt><a name="index-cone-1"></a><u>MGL command:</u> <b>cone</b><i> <code>x1 y1 z1 x2 y2 z2 r1</code> [<code>r2=-1</code> 'stl'='' <code>edge=off</code>]</i></dt>
+<dd><p>Draw tube (or truncated cone if <var>edge</var>=<code>off</code>) between points {<var>x1</var>,<var>y1</var>,<var>z1</var>}, {<var>x2</var>,<var>y2</var>,<var>z2</var>} with radiuses at the edges <var>r1</var>, <var>r2</var>. If <var>r2</var>&lt;0 then it is supposed that <var>r2</var>=<var>r1</var>. The cone color is defined by string <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-rect"></a>
+<p><a name="rect"></a>
+</p><dl>
+<dt><a name="index-rect-1"></a><u>MGL command:</u> <b>rect</b><i> <code>x1 y1 x2 y2</code> ['st'='']</i></dt>
+<dt><a name="index-rect-2"></a><u>MGL command:</u> <b>rect</b><i> <code>x1 y1 z1 x2 y2 z2</code> ['st'='']</i></dt>
+<dd><p>Draw rectangle from point {<var>x1</var>,<var>y1</var>,<var>z1</var>} to point {<var>x2</var>,<var>y2</var>,<var>z2</var>} using colors <var>stl</var>. If <var>stl</var> have 4 or more colors then it defines colors for each rectangle vertex (useful for making gradients, like &lsquo;<samp>wwrr</samp>&rsquo;) else first color is used for whole rectangle.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Text-printing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Primitives-drawing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-Colorbar" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-printing-1"></a>
+<h2 class="section">1.7 Text printing</h2>
+
+<p>These commands draw the text. There are commands for drawing text in arbitrary place, in arbitrary direction and along arbitrary curve. It is possible to use arbitrary font-faces and parse many TeX commands. The Unicode text is supported. So sometimes you need to specify locale. The <code>size</code> argument control the size of text: if positive it give the value, if negative it give the value relative to defined by <code>font</code> command. See section <a href="#Font-styles">Font styles</a>.
+</p>
+<a name="index-text"></a>
+<p><a name="text"></a>
+</p><dl>
+<dt><a name="index-text-1"></a><u>MGL command:</u> <b>text</b><i> <code>x y</code> 'text' ['fnt'='' <code>size=-1.4</code>]</i></dt>
+<dt><a name="index-text-2"></a><u>MGL command:</u> <b>text</b><i> <code>x y z</code> 'text' ['fnt'='' <code>size=-1.4</code>]</i></dt>
+<dd><p>Draws unrotated text string <var>text</var> at position {<var>x</var>,<var>y</var>,<var>z</var>} with specified style <var>fnt</var> and <var>size</var>. By default parameters from <code>font</code> command are used.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-text-3"></a><u>MGL command:</u> <b>text</b><i> <code>x y dx dy</code> 'text' [<code>size=-1.4</code>]</i></dt>
+<dt><a name="index-text-4"></a><u>MGL command:</u> <b>text</b><i> <code>x y z dx dy dz</code> 'text' [<code>size=-1.4</code>]</i></dt>
+<dd><p>The command plots the string <var>text</var> at position {<var>x</var>,<var>y</var>,<var>z</var>} along direction {<var>dx</var>,<var>dy</var>,<var>dz</var>} with specified style <var>fnt</var> and <var>size</var>. By default parameters from <code>font</code> command are used.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-text-5"></a><u>MGL command:</u> <b>text</b><i> ydat 'text' ['fnt'='' <code>size=-1 zval=nan</code>]</i></dt>
+<dt><a name="index-text-6"></a><u>MGL command:</u> <b>text</b><i> xdat ydat 'text' ['fnt'='' <code>size=-1 zval=nan</code>]</i></dt>
+<dt><a name="index-text-7"></a><u>MGL command:</u> <b>text</b><i> xdat ydat zdat 'text' ['fnt'='' <code>size=-1</code>]</i></dt>
+<dd><p>The command draws <var>text</var> along the curve between points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} by font style <var>fnt</var> and with size <var>size</var>. The string <var>fnt</var> may contain symbols &lsquo;<samp>t</samp>&rsquo; for printing the text under the curve (default), or &lsquo;<samp>T</samp>&rsquo; for printing the text above the curve. The sizes of 1st dimension must be equal for all arrays <var>xdat.nx=ydat.nx=zdat.nx</var>. If array <var>xdat</var> is not specified then its an automatic array is used with values equidistantly distributed along x. If array <var>zdat</var> is not specified then <var>z</var>[i] = <var>zval</var> is used. See section <a href="mgl_en_3.html#Text-sample">Text sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-title"></a>
+<p><a name="title"></a>
+</p><dl>
+<dt><a name="index-title-1"></a><u>MGL command:</u> <b>title</b><i> 'text' ['fnt'='' <code>size=-2</code>]</i></dt>
+<dd><p>Print string <var>text</var> as title of the picture (at the top of the picture). Can be used at any place (even inside <a href="#subplot">subplot</a>).
+</p></dd></dl>
+
+<a name="index-fgets"></a>
+<p><a name="fgets"></a>
+</p><dl>
+<dt><a name="index-fgets-1"></a><u>MGL command:</u> <b>fgets</b><i> <code>x y</code> 'fname' [<code>n=0</code> 'fnt'='' <code>size=-1.4</code>]</i></dt>
+<dt><a name="index-fgets-2"></a><u>MGL command:</u> <b>fgets</b><i> <code>x y z</code> 'fname' [<code>n=0</code> 'fnt'='' <code>size=-1.4</code>]</i></dt>
+<dd><p>Draws unrotated <var>n</var>-th line of file <var>fname</var> at position {<var>x</var>,<var>y</var>,<var>z</var>} with specified <var>size</var>. By default parameters from <a href="#font">font</a> command are used.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Axis-and-Colorbar"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-and-Colorbar-1"></a>
+<h2 class="section">1.8 Axis and Colorbar</h2>
+
+<p>These commands draw the &ldquo;things for measuring&rdquo;, like axis with ticks, colorbar with ticks, grid along axis, bounding box and labels for axis. For more information see section <a href="#Axis-settings">Axis settings</a>.
+</p>
+<a name="index-axis-5"></a>
+<dl>
+<dt><a name="index-axis-6"></a><u>MGL command:</u> <b>axis</b><i> ['dir'='xyz' <code>adjust=off</code>]</i></dt>
+<dd><p>Draws axes with ticks (see section <a href="#Axis-settings">Axis settings</a>) in directions determined by string parameter <var>dir</var>.If string contain the symbol &lsquo;<samp>_</samp>&rsquo; then tick labels are not printed. Font for ticks labels is determined by command <a href="#font">font</a>. Ticks will be automatically adjusted if <var>adjust</var>=<code>on</code> (by call of <code>adjust 'dir'</code>).
+</p></dd></dl>
+
+<a name="index-colorbar"></a>
+<p><a name="colorbar"></a>
+</p><dl>
+<dt><a name="index-colorbar-1"></a><u>MGL command:</u> <b>colorbar</b><i> ['sch'='' <code>pos=0</code>]</i></dt>
+<dd><p>Draws colorbar with color scheme <var>sch</var> (current scheme if <code>sch=''</code>) at edge of plot. Parameter <var>pos</var> specifies the position of colorbar: &lsquo;<samp>0</samp>&rsquo; - at right (default), &lsquo;<samp>1</samp>&rsquo; - at left, &lsquo;<samp>2</samp>&rsquo; - at top, &lsquo;<samp>3</samp>&rsquo; - at bottom. If string <var>sch</var> contains &lsquo;<samp>&lt;&gt;^_</samp>&rsquo; then the parameter <var>pos</var> is defined as: <code>pos=0</code> for &lsquo;<samp>&gt;</samp>&rsquo; (right), <code>pos=1</code> for &lsquo;<samp>&lt;</samp>&rsquo; (left), <code>pos=2</code> for &lsquo;<samp>^</samp>&rsquo; (top), <code>pos=3</code> for &lsquo;<samp>_</samp>&rsquo; (bottom). If string have &lsquo;<samp>A</samp>&rsquo; then absolute (relative to picture) coordinates is used. See section <a href="mgl_en_3.html#Dens-sample">Dens sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-colorbar-2"></a><u>MGL command:</u> <b>colorbar</b><i> vdat ['sch'='' <code>pos=0</code>]</i></dt>
+<dd><p>The same as previous but with sharp colors <var>sch</var> (current palette if <code>sch=&quot;&quot;</code>) for values <var>v</var>. See section <a href="mgl_en_3.html#ContD-sample">ContD sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-colorbar-3"></a><u>MGL command:</u> <b>colorbar</b><i> 'sch' <code>pos x y w h</code></i></dt>
+<dd><p>The same as first one but at arbitrary position of subplot {<var>x</var>, <var>y</var>} (supposed to be in range [0,1]). Parameters <var>w</var>, <var>h</var> set the relative width and height of the colorbar.
+</p></dd></dl>
+
+<a name="index-grid"></a>
+<p><a name="grid"></a>
+</p><dl>
+<dt><a name="index-grid-1"></a><u>MGL command:</u> <b>grid</b><i> ['dir'='xyz' 'pen'='B']</i></dt>
+<dd><p>Draws grid lines perpendicular to direction determined by string parameter <var>dir</var>. The step of grid lines is the same as tick step for an <code>axis</code>. The style of lines is determined by <var>pen</var> parameter.
+</p></dd></dl>
+
+<a name="index-box"></a>
+<p><a name="box"></a>
+</p><dl>
+<dt><a name="index-box-1"></a><u>MGL command:</u> <b>box</b><i> ['stl'='k' <code>ticks=on</code>]</i></dt>
+<dd><p>Draws bounding box outside the plotting volume with line style &rsquo;stl&rsquo;. If <code>ticks=on</code> then ticks are drawn with current axis setting.
+</p></dd></dl>
+
+<a name="index-xlabel"></a>
+<p><a name="xlabel"></a>
+</p><dl>
+<dt><a name="index-xlabel-1"></a><u>MGL command:</u> <b>xlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-ylabel"></a>
+<p><a name="ylabel"></a>
+</p></dd><dt><a name="index-ylabel-1"></a><u>MGL command:</u> <b>ylabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-zlabel"></a>
+<p><a name="zlabel"></a>
+</p></dd><dt><a name="index-zlabel-1"></a><u>MGL command:</u> <b>zlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-tlabel"></a>
+<p><a name="tlabel"></a>
+</p></dd><dt><a name="index-tlabel-1"></a><u>MGL command:</u> <b>tlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><p>Prints the label <var>text</var> for x-,y-,z-,t-axis (here &lsquo;<samp>t</samp>&rsquo; is &ldquo;ternary&rdquo; axis <em>t=1-x-y</em>). The position of label is determined by <var>pos</var> parameter. If <var>pos</var>=0 then label is printed at the center of axis. If <var>pos</var>&gt;0 then label is printed at the maximum of axis (default). If <var>pos</var>&lt;0 then label is printed at the minimum of axis. The font size is 1.4 times larger than the one for ticks <code>font</code>. Parameter <code>shift</code> specify additional shifting of the label. See section <a href="#Text-printing">Text printing</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Legend"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-Colorbar" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Legend-1"></a>
+<h2 class="section">1.9 Legend</h2>
+
+<p>These commands draw legend to the graph (useful for <a href="#g_t1D-plotting">1D plotting</a>). Legend entry is a pair of strings: one for style of the line, another one with description text (with included LaTeX parsing). The array of string are accumulated first to the internal arrays (by command <a href="#addlegend">addlegend</a>) and are plotted later. The position of the legend can be selected automatic or manually. Parameters <var>fnt</var> and <var>size</var> specify the font style and size. Parameter <var>llen</var> set the relative width of the line sample and the text indent (default value is 0.1). If line style string for entry is empty then the corresponding text is printed without indent. If string contains &lsquo;<samp>A</samp>&rsquo; then legend coordinates set position in the picture. See section <a href="mgl_en_3.html#Legend-sample">Legend sample</a>, for sample code and picture.
+</p>
+<a name="index-legend"></a>
+<p><a name="legend"></a>
+</p><dl>
+<dt><a name="index-legend-1"></a><u>MGL command:</u> <b>legend</b><i> [<code>pos=3</code> 'fnt'='rL' <code>size=-1 llen=0.1</code>]</i></dt>
+<dd><p>Draws legend of accumulated legend entries by font <var>fnt</var> with specified <var>size</var>. Parameter <var>pos</var> sets the position of the legend: &lsquo;<samp>0</samp>&rsquo; is bottom left corner, &lsquo;<samp>1</samp>&rsquo; is bottom right corner, &lsquo;<samp>2</samp>&rsquo; is top left corner, &lsquo;<samp>3</samp>&rsquo; is top right corner (is default).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-legend-2"></a><u>MGL command:</u> <b>legend</b><i> <code>x y</code> ['fnt'='rL' <code>size=-1 llen=0.1</code>]</i></dt>
+<dd><p>Draws legend of accumulated legend entries by font <var>fnt</var> with <var>size</var>. Position of legend in the current subplot is determined by parameter <var>x</var>, <var>y</var> which supposed to be normalized to interval [0,1].
+</p></dd></dl>
+
+<a name="index-addlegend"></a>
+<p><a name="addlegend"></a>
+</p><dl>
+<dt><a name="index-addlegend-1"></a><u>MGL command:</u> <b>addlegend</b><i> 'text' 'stl'</i></dt>
+<dd><p>Adds string <var>text</var> to internal legend accumulator. The style of described line and mark is specified in string <var>stl</var> (see section <a href="#Line-styles">Line styles</a>). Maximal number of entries is 100.
+</p></dd></dl>
+
+<a name="index-clearlegend"></a>
+<p><a name="clearlegend"></a>
+</p><dl>
+<dt><a name="index-clearlegend-1"></a><u>MGL command:</u> <b>clearlegend</b></dt>
+<dd><p>Clears saved legend strings.
+</p></dd></dl>
+
+<a name="index-legendbox"></a>
+<p><a name="legendbox"></a>
+</p><dl>
+<dt><a name="index-legendbox-1"></a><u>MGL command:</u> <b>legendbox</b><i> <code>val</code></i></dt>
+<dd><p>Switches on/off the drawing of a box near legend. By default, the box is drawn.
+</p></dd></dl>
+
+<a name="index-legendmarks"></a>
+<p><a name="legendmarks"></a>
+</p><dl>
+<dt><a name="index-legendmarks-1"></a><u>MGL command:</u> <b>legendmarks</b><i> <code>val</code></i></dt>
+<dd><p>Set the number of marks in the legend. By default 1 mark is used.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t1D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-plotting-1"></a>
+<h2 class="section">1.10 1D plotting</h2>
+
+<p>These commands perform plotting of 1D data. 1D means that data depended from only 1 parameter like parametric curve {x(i),y(i),z(i)}, i=1...n. There are 5 generally different types of data representations: simple line plot (<a href="#plot">plot</a>), line plot with filling under it (<a href="#area">area</a>), stairs plot (<a href="#step">step</a>), bar plot (<a href="#bars">bars</a>, <a href="#barh">barh</a>) and vertical lines (<a href="#stem">stem</a>). Each type of plotting has similar interface. Most of plotting type has similar interface. There are 3D version and two 2D versions. One of last requires single array. The parameters of line and marks are specified by the string argument. If the string parameter is NULL then solid line with color from palette is used (see section <a href="#Line-styles">Line styles</a>). Also there are some special 1d plots having slightly different interface: surface of curve rotation (<a href="#torus">torus</a>), chart (<a href="#chart">chart</a>) and error boxes (<a href="#error">error</a>), marks with variable size (<a href="#mark">mark</a>), tubes (<a href="#tube">tube</a>) and so on. See section <a href="mgl_en_3.html#g_t1D-plot-sample">1D plot sample</a>, for sample code and picture.
+</p>
+<p>The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <var>xdat.nx=ydat.nx=zdat.nx</var>. If array <var>xdat</var> is not specified then its an automatic array is used with values equidistantly distributed along x. If array <var>zdat</var> is not specified then <var>zdat</var>[i] = <var>zval</var> is used (the default is at the bottom of the bounding box). String <var>stl</var> specifies the color and style of line and marks (see section <a href="#Line-styles">Line styles</a>). By default (<code>stl=''</code>) solid line with color from palette is used (see section <a href="#Line-styles">Line styles</a>).
+</p>
+<a name="index-plot"></a>
+<p><a name="plot"></a>
+</p><dl>
+<dt><a name="index-plot-1"></a><u>MGL command:</u> <b>plot</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-plot-2"></a><u>MGL command:</u> <b>plot</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-plot-3"></a><u>MGL command:</u> <b>plot</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws continuous lines between points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. See also <a href="#area">area</a>, <a href="#step">step</a>, <a href="#stem">stem</a>, <a href="#tube">tube</a>, <a href="#mark">mark</a>, <a href="#error">error</a>, <a href="#belt">belt</a>, <a href="#tens">tens</a>. See section <a href="mgl_en_3.html#Plot-sample">Plot sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+<a name="index-radar"></a>
+<p><a name="radar"></a>
+</p><dl>
+<dt><a name="index-radar-1"></a><u>MGL command:</u> <b>radar</b><i> adat ['stl'='' <code>r=-1</code>]</i></dt>
+<dd><p>Draws radar chart which is continuous lines between points located on an radial lines (like plot in Polar coordinates). The plots are drawn for each row if one of the data is the matrix. Parameter <var>r</var> set the additional shift of data (i.e. the data <var>adat</var>+<var>r</var> is used instead of <var>adat</var>). If <code>r&lt;0</code> then <code>r=max(0, -min(adat)</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="#Line-styles">Line styles</a>). By default (<code>stl=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Line-styles">Line styles</a>). If <var>pen</var> containt &lsquo;<samp>#</samp>&rsquo; symbol then &quot;grid&quot; (radial lines and circle for <var>r</var>) is drawn See also <a href="#plot">plot</a>. See section <a href="mgl_en_3.html#Radar-sample">Radar sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-tens"></a>
+<p><a name="tens"></a>
+</p><dl>
+<dt><a name="index-tens-1"></a><u>MGL command:</u> <b>tens</b><i> ydat cdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tens-2"></a><u>MGL command:</u> <b>tens</b><i> xdat ydat cdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tens-3"></a><u>MGL command:</u> <b>tens</b><i> xdat ydat zdat cdat ['stl'='']</i></dt>
+<dd><p>Draws continuous lines between points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} with color defined by <var>cdat</var>[i] (look like tension plot). See also <a href="#plot">plot</a>, <a href="#mesh">mesh</a>, <a href="#fall">fall</a>. See section <a href="mgl_en_3.html#Tens-sample">Tens sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-area"></a>
+<p><a name="area"></a>
+</p><dl>
+<dt><a name="index-area-1"></a><u>MGL command:</u> <b>area</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-area-2"></a><u>MGL command:</u> <b>area</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-area-3"></a><u>MGL command:</u> <b>area</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws continuous lines between points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} and fills it down to axis (to axis plane in 3D). You can use gradient filling if number of specified colors is equal to 2*number of curves. If string contain symbol &lsquo;<samp>a</samp>&rsquo; then lines are drawn one above another (like summation). See also <a href="#plot">plot</a>, <a href="#bars">bars</a>, <a href="#stem">stem</a>, <a href="#region">region</a>. See section <a href="mgl_en_3.html#Area-sample">Area sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-region"></a>
+<p><a name="region"></a>
+</p><dl>
+<dt><a name="index-region-1"></a><u>MGL command:</u> <b>region</b><i> fdat gdat ['stl'='' <code>inside=off</code>]</i></dt>
+<dt><a name="index-region-2"></a><u>MGL command:</u> <b>region</b><i> xdat fdat gdat ['stl'='' <code>inside=off</code>]</i></dt>
+<dd><p>Fills area between curves {<var>xdat</var>[i], <var>fdat</var>[i]} and {<var>xdat</var>[i], <var>gdat</var>[i]}. Parameter  <code>inside=off</code> set to fill are with y1&lt;y&lt;y2 else the area with y2&lt;y&lt;y1 will be also filled. You can use gradient filling if number of specified colors is equal to 2*number of curves. See also <a href="#area">area</a>, <a href="#bars">bars</a>, <a href="#stem">stem</a>. See section <a href="mgl_en_3.html#Region-sample">Region sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-stem"></a>
+<p><a name="stem"></a>
+</p><dl>
+<dt><a name="index-stem-1"></a><u>MGL command:</u> <b>stem</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-stem-2"></a><u>MGL command:</u> <b>stem</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-stem-3"></a><u>MGL command:</u> <b>stem</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws vertical lines from points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} to axis (to axis plane in 3D). See also <a href="#area">area</a>, <a href="#bars">bars</a>, <a href="#plot">plot</a>, <a href="#mark">mark</a>. See section <a href="mgl_en_3.html#Stem-sample">Stem sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-bars"></a>
+<p><a name="bars"></a>
+</p><dl>
+<dt><a name="index-bars-1"></a><u>MGL command:</u> <b>bars</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-bars-2"></a><u>MGL command:</u> <b>bars</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-bars-3"></a><u>MGL command:</u> <b>bars</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws vertical bars from points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} to axis (to axis plane in 3D). If style contain symbol &lsquo;<samp>a</samp>&rsquo; then lines are drawn one above another. If string contain symbol &lsquo;<samp>f</samp>&rsquo; then waterfall chart is drawn for determining the cumulative effect of sequentially introduced positive or negative values. You can different colors for positive and negative values if number of specified colors is equal to 2*number of curves. See also <a href="#barh">barh</a>, <a href="#area">area</a>, <a href="#stem">stem</a>, <a href="#chart">chart</a>. See section <a href="mgl_en_3.html#Bars-sample">Bars sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-barh"></a>
+<p><a name="barh"></a>
+</p><dl>
+<dt><a name="index-barh-1"></a><u>MGL command:</u> <b>barh</b><i> vdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-barh-2"></a><u>MGL command:</u> <b>barh</b><i> ydat vdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws horizontal bars from points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} to y-axis. If array <var>ydat</var> is not specified then its an automatic array is used with values equidistantly distributed along y. Marks at data points are not drawn. If style contain symbol &lsquo;<samp>a</samp>&rsquo; then lines are drawn one above another. If string contain symbol &lsquo;<samp>f</samp>&rsquo; then waterfall chart is drawn for determining the cumulative effect of sequentially introduced positive or negative values. You can different colors for positive and negative values if number of specified colors is equal to 2*number of curves.
+See also <a href="#bars">bars</a>. See section <a href="mgl_en_3.html#Barh-sample">Barh sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-chart"></a>
+<p><a name="chart"></a>
+</p><dl>
+<dt><a name="index-chart-1"></a><u>MGL command:</u> <b>chart</b><i> adat ['col'='']</i></dt>
+<dd><p>The command draws colored stripes (boxes) for data in array <var>adat</var>. The number of stripes is equal to the number of rows in <var>adat</var> (equal to <var>a.ny</var>). The color of each next stripe is cyclically changed from colors specified in string <var>col</var> or in palette. Spaces in colors denote transparent &ldquo;color&rdquo;, i.e. if <var>col</var> contain space(s) then corresponding stripe(s) are not drawn. The stripe width is proportional to value of element in <var>a</var>. Chart is plotted only for data with non-negative elements. If string <var>col</var> have symbol &lsquo;<samp>#</samp>&rsquo; then black border lines are drawn. The most nice form the chart have in 3d (after rotation of coordinates) or in cylindrical coordinates (becomes so called Pie chart). See section <a href="mgl_en_3.html#Chart-sample">Chart sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-step"></a>
+<p><a name="step"></a>
+</p><dl>
+<dt><a name="index-step-1"></a><u>MGL command:</u> <b>step</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-step-2"></a><u>MGL command:</u> <b>step</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-step-3"></a><u>MGL command:</u> <b>step</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws continuous stairs for points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. See also <a href="#plot">plot</a>, <a href="#stem">stem</a>, <a href="#tile">tile</a>, <a href="#boxs">boxs</a>. See section <a href="mgl_en_3.html#Step-sample">Step sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-torus"></a>
+<p><a name="torus"></a>
+</p><dl>
+<dt><a name="index-torus-1"></a><u>MGL command:</u> <b>torus</b><i> zdat ['stl'='']</i></dt>
+<dt><a name="index-torus-2"></a><u>MGL command:</u> <b>torus</b><i> rdat zdat ['stl'='']</i></dt>
+<dd><p>Draws surface which is result of curve {<var>rdat</var>[i], <var>zdat</var>[i], <var>zdat</var>[i]} rotation around <a href="#axialdir">axialdir</a> axis. If array <var>rdat</var> is not specified then its an automatic array is used with values equidistantly distributed along x. See also <a href="#plot">plot</a>, <a href="#axial">axial</a>. See section <a href="mgl_en_3.html#Torus-sample">Torus sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-tube"></a>
+<p><a name="tube"></a>
+</p><dl>
+<dt><a name="index-tube-1"></a><u>MGL command:</u> <b>tube</b><i> ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-2"></a><u>MGL command:</u> <b>tube</b><i> ydat <code>rval</code> ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-3"></a><u>MGL command:</u> <b>tube</b><i> xdat ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-4"></a><u>MGL command:</u> <b>tube</b><i> xdat ydat <code>rval</code> ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-5"></a><u>MGL command:</u> <b>tube</b><i> xdat ydat zdat rdat ['stl'='']</i></dt>
+<dt><a name="index-tube-6"></a><u>MGL command:</u> <b>tube</b><i> xdat ydat zdat <code>rval</code> ['stl'='']</i></dt>
+<dd><p>Draws tube with variable radius <var>rdat</var>[i] (or <var>rval</var>) at points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. See also <a href="#plot">plot</a>. See section <a href="mgl_en_3.html#Tube-sample">Tube sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-mark"></a>
+<p><a name="mark"></a>
+</p><dl>
+<dt><a name="index-mark-1"></a><u>MGL command:</u> <b>mark</b><i> ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-mark-2"></a><u>MGL command:</u> <b>mark</b><i> xdat ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-mark-3"></a><u>MGL command:</u> <b>mark</b><i> xdat ydat zdat rdat ['stl'='']</i></dt>
+<dd><p>Draws  marks with size <var>rdat</var>[i]*<code>marksize</code> at points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. See also <a href="#plot">plot</a>, <a href="#textmark">textmark</a>, <a href="#stem">stem</a>, <a href="#error">error</a>. See section <a href="mgl_en_3.html#Mark-sample">Mark sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-textmark"></a>
+<p><a name="textmark"></a>
+</p><dl>
+<dt><a name="index-textmark-1"></a><u>MGL command:</u> <b>textmark</b><i> ydat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-2"></a><u>MGL command:</u> <b>textmark</b><i> ydat rdat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-3"></a><u>MGL command:</u> <b>textmark</b><i> xdat ydat rdat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-4"></a><u>MGL command:</u> <b>textmark</b><i> xdat ydat zdat rdat 'txt' ['stl'='']</i></dt>
+<dd><p>Draws string <var>txt</var> as marks with size <var>rdat</var>[i]*<code>marksize</code> at points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. If array <var>rdat</var> is not specified then <var>rdat</var>[i] = 1. See also <a href="#plot">plot</a>, <a href="#mark">mark</a>, <a href="#stem">stem</a>. See section <a href="mgl_en_3.html#Error-sample">Error sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-error"></a>
+<p><a name="error"></a>
+</p><dl>
+<dt><a name="index-error-1"></a><u>MGL command:</u> <b>error</b><i> ydat yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-error-2"></a><u>MGL command:</u> <b>error</b><i> xdat ydat yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-error-3"></a><u>MGL command:</u> <b>error</b><i> xdat ydat xerr yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws error boxes {<var>xerr</var>[i], <var>yerr</var>[i]} at points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zval</var>}. See also <a href="#plot">plot</a>. See section <a href="mgl_en_3.html#TextMark-sample">TextMark sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-boxplot"></a>
+<p><a name="boxplot"></a>
+</p><dl>
+<dt><a name="index-boxplot-1"></a><u>MGL command:</u> <b>boxplot</b><i> adat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-boxplot-2"></a><u>MGL command:</u> <b>boxplot</b><i> xdat adat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws boxplot (also known as a box-and-whisker diagram) at points <var>xdat</var> in plane z=<code>zval</code> (by default is at the bottom of the bounding box). This is five-number summaries of data &lt;em&gt;adat&lt;/em&gt; (minimum, lower quartile (Q1), median (Q2), upper quartile (Q3) and maximum) along second (j-th) direction. See also <a href="#plot">plot</a>, <a href="#error">error</a>, <a href="#bars">bars</a>. See section <a href="mgl_en_3.html#BoxPlot-sample">BoxPlot sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t2D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-plotting-1"></a>
+<h2 class="section">1.11 2D plotting</h2>
+
+<p>These commands perform plotting of 2D data. 2D means that data depend from 2 independent parameters like matrix <em>f(x_i,y_j), i=1...n, j=1...m</em>. There are 6 generally different types of data representations: simple mesh lines plot (<a href="#mesh">mesh</a>), surface plot (<a href="#surf">surf</a>), surface plot by boxes (<a href="#boxs">boxs</a>), surface plot by tiles (<a href="#tile">tile</a>), waterfall-like plot (<a href="#fall">fall</a>), belt plot (<a href="#belt">belt</a>), density plot (<a href="#dens">dens</a>), contour lines plot (<a href="#cont">cont</a>), solid contours plot (<a href="#contf">contf</a>) and its rotational figure (<a href="#axial">axial</a>). Commands <a href="#cont">cont</a>, <a href="#contf">contf</a> and <a href="#axial">axial</a> have variants for automatic and manual selection of level values for contours. Also there are commands for plotting data grid lines according to the data format (<a href="#grid">grid</a>) for enhancing density or contour plots. Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. See section <a href="mgl_en_3.html#g_t2D-plot-sample">2D plot sample</a>, for sample code and picture.
+</p>
+<p>String parameter <var>sch</var> sets the color scheme (see section <a href="#Color-scheme">Color scheme</a>). Previous color scheme is used by default. The minor dimensions of arrays <var>xdat</var>, <var>ydat</var>, <var>zdat</var> should be equal <code>xdat.nx=zdat.nx &amp;&amp; ydat.nx=zdat.ny</code> or <code>xdat.nx=ydat.nx=zdat.nx &amp;&amp; xdat.ny=ydat.ny=zdat.ny</code>. Arrays <var>xdat</var> and <var>ydat</var> can be vectors (not matrices as <var>zdat</var>). If array <var>xdat</var>, <var>ydat</var> is not specified then its an automatic arrays are used with values equidistantly distributed along x, y. Graphics are plotted for each z-slice of the data.
+</p>
+<a name="index-surf"></a>
+<p><a name="surf"></a>
+</p><dl>
+<dt><a name="index-surf-1"></a><u>MGL command:</u> <b>surf</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-surf-2"></a><u>MGL command:</u> <b>surf</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. See also <a href="#mesh">mesh</a>, <a href="#dens">dens</a>, <a href="#belt">belt</a>, <a href="#tile">tile</a>, <a href="#boxs">boxs</a>, <a href="#surfc">surfc</a>, <a href="#surfa">surfa</a>. See section <a href="mgl_en_3.html#Surf-sample">Surf sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-mesh"></a>
+<p><a name="mesh"></a>
+</p><dl>
+<dt><a name="index-mesh-1"></a><u>MGL command:</u> <b>mesh</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-mesh-2"></a><u>MGL command:</u> <b>mesh</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws mesh lines for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. See also <a href="#surf">surf</a>, <a href="#fall">fall</a>, <a href="#meshnum">meshnum</a>, <a href="#cont">cont</a>, <a href="#tens">tens</a>. See section <a href="mgl_en_3.html#Mesh-sample">Mesh sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-fall"></a>
+<p><a name="fall"></a>
+</p><dl>
+<dt><a name="index-fall-1"></a><u>MGL command:</u> <b>fall</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-fall-2"></a><u>MGL command:</u> <b>fall</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws fall lines for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. If <var>sch</var> contain &lsquo;<samp>x</samp>&rsquo; then lines are drawn along x-direction else (by default) lines are drawn along y-direction. See also <a href="#belt">belt</a>, <a href="#mesh">mesh</a>, <a href="#tens">tens</a>, <a href="#meshnum">meshnum</a>. See section <a href="mgl_en_3.html#Fall-sample">Fall sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-belt"></a>
+<p><a name="belt"></a>
+</p><dl>
+<dt><a name="index-belt-1"></a><u>MGL command:</u> <b>belt</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-belt-2"></a><u>MGL command:</u> <b>belt</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws belts for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. If <var>sch</var> contain &lsquo;<samp>x</samp>&rsquo; then belts are drawn along x-direction else (by default) lines are drawn along y-direction. See also <a href="#fall">fall</a>, <a href="#surf">surf</a>, <a href="#plot">plot</a>, <a href="#meshnum">meshnum</a>. See section <a href="mgl_en_3.html#Belt-sample">Belt sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-boxs"></a>
+<p><a name="boxs"></a>
+</p><dl>
+<dt><a name="index-boxs-1"></a><u>MGL command:</u> <b>boxs</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-boxs-2"></a><u>MGL command:</u> <b>boxs</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws vertical boxes for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. See also <a href="#surf">surf</a>, <a href="#dens">dens</a>, <a href="#tile">tile</a>, <a href="#step">step</a>. See section <a href="mgl_en_3.html#Boxs-sample">Boxs sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-tile"></a>
+<p><a name="tile"></a>
+</p><dl>
+<dt><a name="index-tile-1"></a><u>MGL command:</u> <b>tile</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-tile-2"></a><u>MGL command:</u> <b>tile</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws horizontal tiles for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Such plot can be used as 3d generalization of <a href="#step">step</a>. See also <a href="#surf">surf</a>, <a href="#boxs">boxs</a>, <a href="#step">step</a>, <a href="#tiles">tiles</a>. See section <a href="mgl_en_3.html#Tile-sample">Tile sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-dens"></a>
+<p><a name="dens"></a>
+</p><dl>
+<dt><a name="index-dens-1"></a><u>MGL command:</u> <b>dens</b><i> zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-dens-2"></a><u>MGL command:</u> <b>dens</b><i> xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws density plot for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var>. See also <a href="#surf">surf</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>, <a href="#boxs">boxs</a>, <a href="#tile">tile</a>, <code>dens[xyz]</code>. See section <a href="mgl_en_3.html#Dens-sample">Dens sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-cont"></a>
+<p><a name="cont"></a>
+</p><dl>
+<dt><a name="index-cont-1"></a><u>MGL command:</u> <b>cont</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-cont-2"></a><u>MGL command:</u> <b>cont</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws contour lines for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var> (or for <var>z</var>=<var>vdat</var>[k] if <code>zval=nan</code>). Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k. If string <var>stl</var> contain &rsquo;t&rsquo; (or &rsquo;T&rsquo;) symbol then contour labels will be drawn below (or above) the contours. See also <a href="#dens">dens</a>, <a href="#contf">contf</a>, <a href="#contd">contd</a>, <a href="#axial">axial</a>, <code>cont[xyz]</code>. See section <a href="mgl_en_3.html#Cont-sample">Cont sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cont-3"></a><u>MGL command:</u> <b>cont</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-cont-4"></a><u>MGL command:</u> <b>cont</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see, <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-contf"></a>
+<p><a name="contf"></a>
+</p><dl>
+<dt><a name="index-contf-1"></a><u>MGL command:</u> <b>contf</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-contf-2"></a><u>MGL command:</u> <b>contf</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws solid (or filled) contours for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var> (or for <var>z</var>=<var>vdat</var>[k] if <code>zval=nan</code>). Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k (must be <code>vdat.nx&gt;2</code>). See also <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contd">contd</a>, <code>contf[xyz]</code>. See section <a href="mgl_en_3.html#ContF-sample">ContF sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contf-3"></a><u>MGL command:</u> <b>contf</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-contf-4"></a><u>MGL command:</u> <b>contf</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see, <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-contd"></a>
+<p><a name="contd"></a>
+</p><dl>
+<dt><a name="index-contd-1"></a><u>MGL command:</u> <b>contd</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-contd-2"></a><u>MGL command:</u> <b>contd</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws solid (or filled) contours for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var> (or for <var>z</var>=<var>vdat</var>[k] if <code>zval=nan</code>) with manual colors. Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k (must be <code>vdat.nx&gt;2</code>). The color of k-th contour is <code>sch[k%strlen(sch)]</code>. See also <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>. See section <a href="mgl_en_3.html#ContD-sample">ContD sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contd-3"></a><u>MGL command:</u> <b>contd</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-contd-4"></a><u>MGL command:</u> <b>contd</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see, <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-axial"></a>
+<p><a name="axial"></a>
+</p><dl>
+<dt><a name="index-axial-1"></a><u>MGL command:</u> <b>axial</b><i> vdat zdat ['sch'='']</i></dt>
+<dt><a name="index-axial-2"></a><u>MGL command:</u> <b>axial</b><i> vdat xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws surface which is result of contour plot rotation surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. If string <var>sch</var> contain symbols &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo; then rotation axis <code>axialdir</code> will be set to specified direction. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#cont">cont</a>, <a href="#contf">contf</a>, <a href="#torus">torus</a>, <a href="#surf3">surf3</a>. See section <a href="mgl_en_3.html#Axial-sample">Axial sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axial-3"></a><u>MGL command:</u> <b>axial</b><i> zdat ['sch'='' <code>num=3</code>]</i></dt>
+<dt><a name="index-axial-4"></a><u>MGL command:</u> <b>axial</b><i> xdat ydat zdat ['sch'='' <code>num=3</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see, <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-grad"></a>
+<p><a name="grad"></a>
+</p><dl>
+<dt><a name="index-grad-1"></a><u>MGL command:</u> <b>grad</b><i> pdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-grad-2"></a><u>MGL command:</u> <b>grad</b><i> xdat ydat pdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-grad-3"></a><u>MGL command:</u> <b>grad</b><i> xdat ydat zdat pdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Draws gradient lines for scalar field <var>pdat</var> specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j]} or {<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]}. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. Number of lines is proportional to <var>num</var>. If <var>num</var>&lt;0 then lines start from borders only. See also <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#dens3">dens3</a>, <a href="#cont3">cont3</a>, <a href="#flow">flow</a>. See section <a href="mgl_en_3.html#Grad-sample">Grad sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+<a name="index-grid2"></a>
+<p><a name="grid2"></a>
+</p><dl>
+<dt><a name="index-grid2-1"></a><u>MGL command:</u> <b>grid2</b><i> zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-grid2-2"></a><u>MGL command:</u> <b>grid2</b><i> xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws grid lines for density plot of surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var>. See also <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="g_t3D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-plotting-1"></a>
+<h2 class="section">1.12 3D plotting</h2>
+
+<p>These commands perform plotting of 3D data. 3D means that data depend from 3 independent parameters like matrix <em>f(x_i,y_j,z_k), i=1...n, j=1...m, k=1...l</em>. There are 4 generally different types of data representations: isosurface or surface of constant value (<a href="#surf3">surf3</a>), density plot at slices (Dens3), contour lines plot at slices (<a href="#cont3">cont3</a>), solid contours plot at slices (<a href="#contf3">contf3</a>) and cloud-like plot (<a href="#cloud">cloud</a>). Commands <a href="#surf3">surf3</a>, <a href="#cont3">cont3</a> and <a href="#contf3">contf3</a> have variants for automatic and manual selection of level values for surfaces/contours. Also there are commands for plotting data grid lines according to the data format (<a href="#grid3">grid3</a>) for enhancing density or contour plots. Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. See section <a href="mgl_en_3.html#g_t3D-plot-sample">3D plot sample</a>, for sample code and picture.
+</p>
+<p>String paramter <var>sch</var> sets the color scheme (see section <a href="#Color-scheme">Color scheme</a>). Previous color scheme is used by default. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). If array <var>xdat</var>, <var>ydat</var>, <var>zdat</var> is not specified then its an automatic arrays are used with values equidistantly distributed along x, y, z.
+</p>
+
+<a name="index-surf3"></a>
+<p><a name="surf3"></a>
+</p><dl>
+<dt><a name="index-surf3-1"></a><u>MGL command:</u> <b>surf3</b><i> adat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3-2"></a><u>MGL command:</u> <b>surf3</b><i> xdat ydat zdat adat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Draws isosurface plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) at <var>a</var>(x,y,z)=<var>val</var>. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#cloud">cloud</a>, <a href="#dens3">dens3</a>, <a href="#surf3c">surf3c</a>, <a href="#surf3a">surf3a</a>, <a href="#axial">axial</a>. See section <a href="mgl_en_3.html#Surf3-sample">Surf3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3-3"></a><u>MGL command:</u> <b>surf3</b><i> adat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3-4"></a><u>MGL command:</u> <b>surf3</b><i> xdat ydat zdat adat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in color range (see <a href="#caxis">caxis</a>) isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-dens3"></a>
+<p><a name="dens3"></a>
+</p><dl>
+<dt><a name="index-dens3-1"></a><u>MGL command:</u> <b>dens3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-dens3-2"></a><u>MGL command:</u> <b>dens3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Draws density plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Density is plotted at slice <var>sval</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. If string <var>stl</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. See also <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a>, <a href="#dens">dens</a>, <a href="#grid3">grid3</a>. See section <a href="mgl_en_3.html#Dens3-sample">Dens3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-densa"></a>
+<p><a name="densa"></a>
+</p><dl>
+<dt><a name="index-densa-1"></a><u>MGL command:</u> <b>densa</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-densa-2"></a><u>MGL command:</u> <b>densa</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Draws density plots at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-cont3"></a>
+<p><a name="cont3"></a>
+</p><dl>
+<dt><a name="index-cont3-1"></a><u>MGL command:</u> <b>cont3</b><i> vdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-cont3-2"></a><u>MGL command:</u> <b>cont3</b><i> vdat xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Draws contour plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Contours are plotted for values specified in array <var>vdat</var> at slice <var>sval</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. If string <var>stl</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. If string <var>stl</var> contain &rsquo;t&rsquo; (or &rsquo;T&rsquo;) symbol then contour labels will be drawn below (or above) the contours. See also <a href="#dens3">dens3</a>, <a href="#contf3">contf3</a>, <a href="#cont">cont</a>, <a href="#grid3">grid3</a>. See section <a href="mgl_en_3.html#Cont3-sample">Cont3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cont3-3"></a><u>MGL command:</u> <b>cont3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-cont3-4"></a><u>MGL command:</u> <b>cont3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-conta"></a>
+<p><a name="conta"></a>
+</p><dl>
+<dt><a name="index-conta-1"></a><u>MGL command:</u> <b>conta</b><i> adat ['sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-conta-2"></a><u>MGL command:</u> <b>conta</b><i> xdat ydat zdat adat ['sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Draws contour plots at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-contf3"></a>
+<p><a name="contf3"></a>
+</p><dl>
+<dt><a name="index-contf3-1"></a><u>MGL command:</u> <b>contf3</b><i> vdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-contf3-2"></a><u>MGL command:</u> <b>contf3</b><i> vdat xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Draws solid contour plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Contours are plotted for values specified in array <var>vdat</var> at slice <var>sval</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. If string <var>stl</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. See also <a href="#dens3">dens3</a>, <a href="#cont3">cont3</a>, <a href="#contf">contf</a>, <a href="#grid3">grid3</a>. See section <a href="mgl_en_3.html#ContF3-sample">ContF3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contf3-3"></a><u>MGL command:</u> <b>contf3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-contf3-4"></a><u>MGL command:</u> <b>contf3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-contfa"></a>
+<p><a name="contfa"></a>
+</p><dl>
+<dt><a name="index-contfa-1"></a><u>MGL command:</u> <b>contfa</b><i> adat ['sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-contfa-2"></a><u>MGL command:</u> <b>contfa</b><i> xdat ydat zdat adat ['sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Draws solid contour plots at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-grid3"></a>
+<p><a name="grid3"></a>
+</p><dl>
+<dt><a name="index-grid3-1"></a><u>MGL command:</u> <b>grid3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-grid3-2"></a><u>MGL command:</u> <b>grid3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Draws grid for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Grid is plotted at slice <var>sval</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. See also <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a>, <a href="#dens3">dens3</a>, <a href="#grid2">grid2</a>. See section <a href="mgl_en_3.html#Dens3-sample">Dens3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-grida"></a>
+<p><a name="grida"></a>
+</p><dl>
+<dt><a name="index-grida-1"></a><u>MGL command:</u> <b>grida</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-grida-2"></a><u>MGL command:</u> <b>grida</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Draws grids at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-cloud"></a>
+<p><a name="cloud"></a>
+</p><dl>
+<dt><a name="index-cloud-1"></a><u>MGL command:</u> <b>cloud</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-cloud-2"></a><u>MGL command:</u> <b>cloud</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Draws cloud for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). This plot is a set of cubes with color and transparency proportional to value of <var>adat</var>. The resulting plot is like cloud &ndash; low value is transparent but higher ones are not. The number of plotting cells depend on <a href="#meshnum">meshnum</a>. Paramater <var>alpha</var> changes the overall transparency of plot. See also <a href="#surf3">surf3</a>. See section <a href="mgl_en_3.html#Cloud-sample">Cloud sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-beam"></a>
+<p><a name="beam"></a>
+</p><dl>
+<dt><a name="index-beam-1"></a><u>MGL command:</u> <b>beam</b><i> tr g1 g2 adat <code>rval</code> ['sch'='' <code>flag=0 num=3</code>]</i></dt>
+<dd><p>Draws  <var>num</var>-th uniformly distributed in color range (see <code>caxis</code>) isosurfaces for 3d array <var>adat</var>. This is special kind of plot for <var>adat</var> specified in accompanied coordinates along curve <var>tr</var> with orts <var>g1</var>, <var>g2</var> and with transverse scale <var>rval</var>. Variable <var>flag</var> is bitwise: &lsquo;<samp>0x1</samp>&rsquo; - draw in accompanied (not laboratory) coordinates; &lsquo;<samp>0x2</samp>&rsquo; - draw projection to <em>\rho-z</em> plane; &lsquo;<samp>0x4</samp>&rsquo; - draw normalized in each slice field. The x-size of data arrays <var>tr</var>, <var>g1</var>, <var>g2</var> must be nx&gt;2. The y-size of data arrays <var>tr</var>, <var>g1</var>, <var>g2</var> and z-size of the data array <var>a</var> must be equal. See also <a href="#surf3">surf3</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Dual-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dual-plotting-1"></a>
+<h2 class="section">1.13 Dual plotting</h2>
+
+<p>These plotting commands draw <em>two matrix</em> simultaneously. There are 5 generally different types of data representations: surface or isosurface colored by other data (<a href="#surfc">surfc</a>, <a href="#surf3c">surf3c</a>), surface or isosurface transpared by other data (<a href="#surfa">surfa</a>, <a href="#surf3a">surf3a</a>), tiles with variable size (<a href="#tiles">tiles</a>), mapping diagram (<a href="#map">map</a>), STFA diagram (<a href="#stfa">stfa</a>). Commands <a href="#surf3a">surf3a</a> and <a href="#surf3c">surf3c</a> have variants for automatic and manual selection of level values for isosurfaces. Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array.
+</p>
+<p>String paramter <var>sch</var> sets the color scheme (see section <a href="#Color-scheme">Color scheme</a>). Previous color scheme is used by default. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). If array <var>xdat</var>, <var>ydat</var>, <var>zdat</var> is not specified then its an automatic arrays are used with values equidistantly distributed along x, y, z.
+</p>
+<a name="index-surfc"></a>
+<p><a name="surfc"></a>
+</p><dl>
+<dt><a name="index-surfc-1"></a><u>MGL command:</u> <b>surfc</b><i> zdat cdat ['sch'='']</i></dt>
+<dt><a name="index-surfc-2"></a><u>MGL command:</u> <b>surfc</b><i> xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Draws surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} and color it by matrix <var>cdat</var>[i,j]. See also <a href="#surf">surf</a>, <a href="#surfa">surfa</a>, <a href="#surf3c">surf3c</a>. See section <a href="mgl_en_3.html#SurfC-sample">SurfC sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-surf3c"></a>
+<p><a name="surf3c"></a>
+</p><dl>
+<dt><a name="index-surf3c-1"></a><u>MGL command:</u> <b>surf3c</b><i> adat cdat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3c-2"></a><u>MGL command:</u> <b>surf3c</b><i> xdat ydat zdat adat cdat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Draws isosurface plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) at <var>a</var>(x,y,z)=<var>val</var>. It is mostly the same as <a href="#surf3">surf3</a> command but the color of isosurface depends on values of array <var>cdat</var>. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#surf3">surf3</a>, <a href="#surfc">surfc</a>, <a href="#surf3a">surf3a</a>. See section <a href="mgl_en_3.html#Surf3C-sample">Surf3C sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3c-3"></a><u>MGL command:</u> <b>surf3c</b><i> adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3c-4"></a><u>MGL command:</u> <b>surf3c</b><i> xdat ydat zdat adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in color range (see <code>caxis</code>) isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-surfa"></a>
+<p><a name="surfa"></a>
+</p><dl>
+<dt><a name="index-surfa-1"></a><u>MGL command:</u> <b>surfa</b><i> zdat cdat ['sch'='']</i></dt>
+<dt><a name="index-surfa-2"></a><u>MGL command:</u> <b>surfa</b><i> xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Draws surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} and transparent it by matrix <var>cdat</var>[i,j]. See also <a href="#surf">surf</a>, <a href="#surfc">surfc</a>, <a href="#surf3a">surf3a</a>, <a href="#tiles">tiles</a>. See section <a href="mgl_en_3.html#SurfA-sample">SurfA sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-surf3a"></a>
+<p><a name="surf3a"></a>
+</p><dl>
+<dt><a name="index-surf3a-1"></a><u>MGL command:</u> <b>surf3a</b><i> adat cdat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3a-2"></a><u>MGL command:</u> <b>surf3a</b><i> xdat ydat zdat adat cdat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Draws isosurface plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) at <var>a</var>(x,y,z)=<var>val</var>. It is mostly the same as <a href="#surf3">surf3</a> command but the transparency of isosurface depends on values of array <var>cdat</var>. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#surf3">surf3</a>, <a href="#surfa">surfa</a>, <a href="#surf3c">surf3c</a>. See section <a href="mgl_en_3.html#Surf3A-sample">Surf3A sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3a-3"></a><u>MGL command:</u> <b>surf3a</b><i> adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3a-4"></a><u>MGL command:</u> <b>surf3a</b><i> xdat ydat zdat adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in color range (see <code>caxis</code>) isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-tiles"></a>
+<p><a name="tiles"></a>
+</p><dl>
+<dt><a name="index-tiles-1"></a><u>MGL command:</u> <b>tiles</b><i> zdat rdat ['sch'='']</i></dt>
+<dt><a name="index-tiles-2"></a><u>MGL command:</u> <b>tiles</b><i> xdat ydat zdat rdat ['sch'='']</i></dt>
+<dd><p>Draws horizontal tiles for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. It is mostly the same as <a href="#tile">tile</a> but the size of tiles is determined by <var>rdat</var> array. See also <a href="#surfa">surfa</a>, <a href="#tile">tile</a>. See section <a href="mgl_en_3.html#TileS-sample">TileS sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-map"></a>
+<p><a name="map"></a>
+</p><dl>
+<dt><a name="index-map-1"></a><u>MGL command:</u> <b>map</b><i> udat vdat ['sch'='' <code>pnts=on</code>]</i></dt>
+<dt><a name="index-map-2"></a><u>MGL command:</u> <b>map</b><i> xdat ydat udat vdat ['sch'='' <code>pnts=on</code>]</i></dt>
+<dd><p>Draws mapping plot for matrixes {<var>udat</var>, <var>vdat</var> } which parametrically depend on coordinates <var>xdat</var>, <var>ydat</var>. The previous position of the cell (point) is marked by color. Height is proportional to Jacobian(udat,vdat). This plot is like Arnold diagram ???. If <code>pnts=off</code> then face is drawn otherwise the color ball at matrix knots are drawn. The size of <var>udat</var> and <var>vdat</var> must be the same. See section <a href="mgl_en_3.html#Map-sample">Map sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-stfa"></a>
+<p><a name="stfa"></a>
+</p><dl>
+<dt><a name="index-stfa-1"></a><u>MGL command:</u> <b>stfa</b><i> re im <code>dn</code> ['sch'='' <code>pnts=on</code>]</i></dt>
+<dt><a name="index-stfa-2"></a><u>MGL command:</u> <b>stfa</b><i> xdat ydat re im <code>dn</code> ['sch'='' <code>pnts=on</code>]</i></dt>
+<dd><p>Draws spectrogram of complex array <var>re</var>+i*<code>im</code> for Fourier size of <var>dn</var> points at plane <var>z=zVal</var>. Parameter <var>dn</var> is arbitrary even integer. For example in 1D case, result is density plot of data <em>res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn</em> with size {int(nx/dn), dn, ny}. See section <a href="mgl_en_3.html#STFA-sample">STFA sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+
+
+<hr size="6">
+<a name="Vector-fields"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vector-fields-1"></a>
+<h2 class="section">1.14 Vector fields</h2>
+
+<p>These commands perform plotting of 2D and 3D vector fields. There are 6 generally different types of vector fields representations: simple vector field (<a href="#vect">vect</a>), vector field by dew-drops (<a href="#dew">dew</a>), flow threads (<a href="#flow">flow</a>), flow pipes (<a href="#pipe">pipe</a>), vectors along a curve (<a href="#traj">traj</a>). Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. Parameters of color scheme are specified by the string argument. See section <a href="#Color-scheme">Color scheme</a>.
+</p>
+<p>The color is specified by the string argument <var>sch</var>. Previous color scheme is used by default. Parameter <var>flag</var> setup the hachures (arrows). It is combination of values: <code>1</code> for drawing bi-color arrow, <code>2</code> for drawing fixed length arrows, <code>4</code> for drawing arrows to the cell point, <code>8</code> for drawing arrows with center at cell point, <code>16</code> for drawing hachures with dots instead of arrows. 
+</p>
+<p>The size of <var>udat</var>, <var>vdat</var> and <var>wdat</var> must be equal. The minor dimensions of arrays <var>xdat</var>, <var>ydat</var>, <var>zdat</var> and <var>udat</var> must be equal too. Arrays <var>xdat</var>, <var>ydat</var> and <var>zdat</var> can be vectors (not matrices as <var>udat</var>). The graphics is plotted for each z slice of <var>udat</var>, <var>vdat</var> for 2D case.
+</p>
+<a name="index-traj"></a>
+<p><a name="traj"></a>
+</p><dl>
+<dt><a name="index-traj-1"></a><u>MGL command:</u> <b>traj</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan len=0</code>]</i></dt>
+<dt><a name="index-traj-2"></a><u>MGL command:</u> <b>traj</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>len=0</code>]</i></dt>
+<dd><p>Draws vectors {<var>udat</var>, <var>vdat</var>, <var>wdat</var>} along a curve <var>xdat</var>, <var>ydat</var>, <var>zdat</var>. The length and color of arrows are proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See also <code>vect</code>. See section <a href="mgl_en_3.html#Traj-sample">Traj sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-vect"></a>
+<p><a name="vect"></a>
+</p><dl>
+<dt><a name="index-vect-1"></a><u>MGL command:</u> <b>vect</b><i> udat vdat ['sch'='' <code>zval=nan flag=0</code>]</i></dt>
+<dt><a name="index-vect-2"></a><u>MGL command:</u> <b>vect</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan flag=0</code>]</i></dt>
+<dd><p>Draws plane vector field plot for the field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zval</var>. The length and color of arrows are proportional to <em>\sqrtudat^2+vdat^2</em>. The number of arrows depend on <a href="#meshnum">meshnum</a>. See also <a href="#flow">flow</a>, <a href="#dew">dew</a>, <a href="#vectc">vectc</a>. See section <a href="mgl_en_3.html#Vect-sample">Vect sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vect-3"></a><u>MGL command:</u> <b>vect</b><i> udat vdat wdat ['sch'='' <code>flag=0</code>]</i></dt>
+<dt><a name="index-vect-4"></a><u>MGL command:</u> <b>vect</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>flag=0</code>]</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the length and color of arrows are proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mgl_en_3.html#Vect-3D-sample">Vect 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-vectc"></a>
+<p><a name="vectc"></a>
+</p><dl>
+<dt><a name="index-vectc-1"></a><u>MGL command:</u> <b>vectc</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-vectc-2"></a><u>MGL command:</u> <b>vectc</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws plane vector field plot for the field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zVal</var>. The color of hachures is proportional to <em>\sqrtudat^2+vdat^2</em>. The number of hachures depend on <var>meshnum</var>. See also <code>vect, flow, pipe, dew</code>. See section <a href="mgl_en_3.html#VectC-sample">VectC sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vectc-3"></a><u>MGL command:</u> <b>vectc</b><i> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-vectc-4"></a><u>MGL command:</u> <b>vectc</b><i> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the color of hachures is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mgl_en_3.html#VectC-3D-sample">VectC 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-vectl"></a>
+<p><a name="vectl"></a>
+</p><dl>
+<dt><a name="index-vectl-1"></a><u>MGL command:</u> <b>vectl</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-vectl-2"></a><u>MGL command:</u> <b>vectl</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws plane vector field plot for the field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zVal</var>. The length of hachures is proportional to <em>\sqrtudat^2+vdat^2</em>. The number of hachures depend on <var>meshnum</var>. See also <code>vectc, flow, pipe, dew</code>. See section <a href="mgl_en_3.html#Vect-sample">Vect sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vectl-3"></a><u>MGL command:</u> <b>vectl</b><i> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-vectl-4"></a><u>MGL command:</u> <b>vectl</b><i> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the length of hachures is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mgl_en_3.html#VectL-3D-sample">VectL 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-dew"></a>
+<p><a name="dew"></a>
+</p><dl>
+<dt><a name="index-dew-1"></a><u>MGL command:</u> <b>dew</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-dew-2"></a><u>MGL command:</u> <b>dew</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws dew-drops for plane vector field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zval</var>. The color of drops is proportional to <em>\sqrtudat^2+vdat^2</em>. The number of drops depend on <a href="#meshnum">meshnum</a>. Note that this is very expensive plot in memory usage and creation time! See also <a href="#vect">vect</a>. See section <a href="mgl_en_3.html#Dew-sample">Dew sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-flow"></a>
+<p><a name="flow"></a>
+</p><dl>
+<dt><a name="index-flow-1"></a><u>MGL command:</u> <b>flow</b><i> udat vdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-flow-2"></a><u>MGL command:</u> <b>flow</b><i> xdat ydat udat vdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dd><p>Draws plane flow threads for the vector field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zVal</var>. Number of threads is proportional to <var>num</var>. The color of lines is proportional to <em>\sqrtudat^2+vdat^2</em>. Warm color corresponds to normal flow (like attractor). Cold one corresponds to inverse flow (like source). See also <code>vect, vectc, pipe</code>. See section <a href="mgl_en_3.html#Flow-sample">Flow sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-3"></a><u>MGL command:</u> <b>flow</b><i> udat vdat wdat ['sch'='' <code>num=3</code>]</i></dt>
+<dt><a name="index-flow-4"></a><u>MGL command:</u> <b>flow</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>num=3</code>]</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the color is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mgl_en_3.html#Flow-3D-sample">Flow 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-5"></a><u>MGL command:</u> <b>flow</b><i> <code>x0 y0</code> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-flow-6"></a><u>MGL command:</u> <b>flow</b><i> <code>x0 y0</code> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws plane flow threads for the vector field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> from point {<var>x0</var>, <var>y0</var>} at level <var>z=zVal</var>. The color of lines is proportional to <em>\sqrtudat^2+vdat^2</em>. Warm color corresponds to normal flow (like attractor). Cold one corresponds to inverse flow (like source). See also <code>vect, vectc, pipe</code>. See section <a href="mgl_en_3.html#Flow-sample">Flow sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-7"></a><u>MGL command:</u> <b>flow</b><i> <code>x0 y0 z0</code> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-flow-8"></a><u>MGL command:</u> <b>flow</b><i> <code>x0 y0 z0</code> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>Draws flow thread from point {<var>x0</var>, <var>y0</var>, <var>z0</var>}. Arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the color is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mgl_en_3.html#Flow-3D-sample">Flow 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+<a name="index-pipe"></a>
+<p><a name="pipe"></a>
+</p><dl>
+<dt><a name="index-pipe-1"></a><u>MGL command:</u> <b>pipe</b><i> udat vdat ['sch'='' <code>r0=0.05 num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-pipe-2"></a><u>MGL command:</u> <b>pipe</b><i> xdat ydat udat vdat ['sch'='' <code>r0=0.05 num=5 zval=nan</code>]</i></dt>
+<dd><p>Draws plane flow pipes for the vector field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zVal</var>. Number of pipes is proportional to <var>num</var>. The color of pipes is proportional to <em>\sqrtudat^2+vdat^2</em>. Warm color corresponds to normal flow (like attractor). Cold one corresponds to inverse flow (like source). Parameter <var>r0</var> set the base pipe radius. If <var>r0</var>&lt;0 then pipe radius is inverse proportional to amplitude. The size of <var>ax</var> and <var>ay</var> must be equal. See also <code>vect, vectc, pipe</code>. See section <a href="mgl_en_3.html#Pipe-sample">Pipe sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-pipe-3"></a><u>MGL command:</u> <b>pipe</b><i> udat vdat wdat ['sch'='' <code>r0=0.05 num=3</code>]</i></dt>
+<dt><a name="index-pipe-4"></a><u>MGL command:</u> <b>pipe</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>r0=0.05 num=3</code>]</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the color is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mgl_en_3.html#Pipe-3D-sample">Pipe 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Other-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-fields" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Other-plotting-1"></a>
+<h2 class="section">1.15 Other plotting</h2>
+
+<p>These commands perform miscelaneous plotting. There is unstructured data points plots (Dots), surface reconstruction (Crust), surfaces on the triangular mesh (TriPlot) or quadrangular mesh (QuadPlot), textual formula plotting (Plots by formula), data plots at edges (Dens[XYZ], Cont[XYZ], ContF[XYZ]), simple plot (SimplePlot). Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. Parameters of color scheme are specified by the string argument. See section <a href="#Color-scheme">Color scheme</a>.
+</p>
+<a name="index-densx"></a>
+<a name="index-densy"></a>
+<a name="index-densz"></a>
+<p><a name="densz"></a> <a name="densy"></a> <a name="densx"></a>
+</p><dl>
+<dt><a name="index-densx-1"></a><u>MGL command:</u> <b>densx</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dt><a name="index-densy-1"></a><u>MGL command:</u> <b>densy</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dt><a name="index-densz-1"></a><u>MGL command:</u> <b>densz</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dd><p>These plotting commands draw density plot in x, y or z plain. If <var>dat</var> is a tensor (3-dimensional data) then interpolation to a given <var>val</var> is performed. These commands are useful for creating projections of the 3D data array to the bounding box. See also <code>cont[xyz], contf[xyz]</code>, <a href="#dens">dens</a>. See section <a href="mgl_en_3.html#Dens-projection-sample">Dens projection sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-contx"></a>
+<a name="index-conty"></a>
+<a name="index-contz"></a>
+<p><a name="contz"></a> <a name="conty"></a> <a name="contx"></a>
+</p><dl>
+<dt><a name="index-contx-1"></a><u>MGL command:</u> <b>contx</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-conty-1"></a><u>MGL command:</u> <b>conty</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contz-1"></a><u>MGL command:</u> <b>contz</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dd><p>These plotting commands draw contour lines in x, y or z plain. If <var>dat</var> is a tensor (3-dimensional data) then interpolation to a given <var>val</var> is performed. These commands are useful for creating projections of the 3D data array to the bounding box. See also <code>dens[xyz], contf[xyz]</code>, <a href="#cont">cont</a>. See section <a href="mgl_en_3.html#Cont-projection-sample">Cont projection sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-contfx"></a>
+<a name="index-contfy"></a>
+<a name="index-contfz"></a>
+<p><a name="contfz"></a> <a name="contfy"></a> <a name="contfx"></a>
+</p><dl>
+<dt><a name="index-contfx-1"></a><u>MGL command:</u> <b>contfx</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contfy-1"></a><u>MGL command:</u> <b>contfy</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contfz-1"></a><u>MGL command:</u> <b>contfz</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dd><p>These plotting commands draw solid contours in x, y or z plain. If <var>dat</var> is a tensor (3-dimensional data) then interpolation to a given <var>val</var> is performed. These commands are useful for creating projections of the 3D data array to the bounding box. See also <code>dens[xyz], cont[xyz]</code>, <a href="#contf">contf</a>.
+</p></dd></dl>
+
+<a name="index-dots"></a>
+<p><a name="dots"></a>
+</p><dl>
+<dt><a name="index-dots-1"></a><u>MGL command:</u> <b>dots</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-dots-2"></a><u>MGL command:</u> <b>dots</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Draws the arbitrary placed points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Variable <var>adat</var>[i] set transparency for dots. See also <a href="#crust">crust</a>, <a href="#mark">mark</a>, <a href="#plot">plot</a>. See section <a href="mgl_en_3.html#Dots-sample">Dots sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-crust"></a>
+<p><a name="crust"></a>
+</p><dl>
+<dt><a name="index-crust-1"></a><u>MGL command:</u> <b>crust</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Reconstructs and draws the surface for arbitrary placed points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#dots">dots</a>, <a href="#triplot">triplot</a>. See section <a href="mgl_en_3.html#Crust-sample">Crust sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-triplot"></a>
+<p><a name="triplot"></a>
+</p><dl>
+<dt><a name="index-triplot-1"></a><u>MGL command:</u> <b>triplot</b><i> idat xdat ydat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-triplot-2"></a><u>MGL command:</u> <b>triplot</b><i> idat xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-triplot-3"></a><u>MGL command:</u> <b>triplot</b><i> idat xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Draws the surface of triangles. Triangle vertexes are set by indexes <var>idat</var> of data points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. First dimensions of <var>idat</var> must be 3 or greater. See also <code>dots, crust, quadplot</code>. Parameter <var>cdat</var> set the colors of triangles (if <var>idat</var>.ny=<var>cdat</var>.nx) or colors of vertexes (if <var>xdat</var>.nx=<var>cdat</var>.nx). See also <a href="#dots">dots</a>, <a href="#crust">crust</a>, <a href="#quadplot">quadplot</a>, <a href="#tricont">tricont</a>.
+</p></dd></dl>
+
+<a name="index-tricont"></a>
+<p><a name="tricont"></a>
+</p><dl>
+<dt><a name="index-tricont-1"></a><u>MGL command:</u> <b>tricont</b><i> vdat idat xdat ydat zdat cdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tricont-2"></a><u>MGL command:</u> <b>tricont</b><i> vdat idat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tricont-3"></a><u>MGL command:</u> <b>tricont</b><i> idat xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Draws contour lines for surface of triangles at <var>z</var> = <var>zVal</var> (or for <var>z</var>=<var>vdat</var>[k] if <code>zval=nan</code>). Triangle vertexes are set by indexes <var>idat</var> of data points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k (or <var>num</var> contours equidistantly distributed in range [<var>Cmin</var>, <var>Cmax</var>].). See also <a href="#triplot">triplot</a>, <a href="#cont">cont</a>.
+</p></dd></dl>
+
+<a name="index-quadplot"></a>
+<p><a name="quadplot"></a>
+</p><dl>
+<dt><a name="index-quadplot-1"></a><u>MGL command:</u> <b>quadplot</b><i> idat xdat ydat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-quadplot-2"></a><u>MGL command:</u> <b>quadplot</b><i> idat xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-quadplot-3"></a><u>MGL command:</u> <b>quadplot</b><i> idat xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Draws the surface of quadrangles. Quadrangle vertexes are set by indexes <var>idat</var> of data points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. First dimensions of <var>idat</var> must be 4 or greater. See also <code>triplot, dots, crust</code>. Parameter <var>cdat</var> set the colors of triangles (if <var>idat</var>.ny=<var>cdat</var>.nx) or colors of vertexes (if <var>xdat</var>.nx=<var>cdat</var>.nx). See also <a href="#triplot">triplot</a>.
+</p></dd></dl>
+
+<a name="index-fplot"></a>
+<p><a name="fplot"></a>
+</p><dl>
+<dt><a name="index-fplot-1"></a><u>MGL command:</u> <b>fplot</b><i> 'y(x)' ['pen'='' <code>zval=nan num=100</code>]</i></dt>
+<dd><p>Draws command function &lsquo;<samp>y(x)</samp>&rsquo; at plane z=<var>zval</var> where &lsquo;<samp>x</samp>&rsquo; variable is changed in <code>xrange</code>. You do not need to create the data arrays to plot it. The parameter <var>num</var> set the minimal number of points along coordinate(s) for plots. See also <a href="#plot">plot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fplot-2"></a><u>MGL command:</u> <b>fplot</b><i> 'x(t)' 'y(t)' 'z(t)' ['pen'='' <code>num=100</code>]</i></dt>
+<dd><p>Draws command parametrical curve {&lsquo;<samp>x(t)</samp>&rsquo;, &lsquo;<samp>y(t)</samp>&rsquo;, &lsquo;<samp>z(t)</samp>&rsquo;} where &lsquo;<samp>t</samp>&rsquo; variable is changed in range [0, 1]. You do not need to create the data arrays to plot it. The parameter <var>num</var> set the minimal number of points along coordinate(s) for plots. See also <a href="#plot">plot</a>.
+</p></dd></dl>
+
+<a name="index-fsurf"></a>
+<p><a name="fsurf"></a>
+</p><dl>
+<dt><a name="index-fsurf-1"></a><u>MGL command:</u> <b>fsurf</b><i> 'z(x,y)' ['sch'='' <code>num=100</code>]</i></dt>
+<dd><p>Draws command surface for function &lsquo;<samp>z(x,y)</samp>&rsquo; where &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; variable are changed in <code>xrange, yrange</code>. You do not need to create the data arrays to plot it. The parameter <var>num</var> set the minimal number of points along coordinate(s) for plots. See also <a href="#surf">surf</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fsurf-2"></a><u>MGL command:</u> <b>fsurf</b><i> 'x(u,v)' 'y(u,v)' 'z(u,v)' ['sch'='' <code>num=100</code>]</i></dt>
+<dd><p>Draws command parametrical surface {&lsquo;<samp>x(u,v)</samp>&rsquo;, &lsquo;<samp>y(u,v)</samp>&rsquo;, &lsquo;<samp>z(u,v)</samp>&rsquo;} where &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo; variable are changed in range [0, 1]. You do not need to create the data arrays to plot it. The parameter <var>num</var> set the minimal number of points along coordinate(s) for plots. See also <a href="#surf">surf</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Nonlinear-fitting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-create" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-1"></a>
+<h2 class="section">1.16 Nonlinear fitting</h2>
+
+<p>These commands fit data to formula. Fitting goal is to find formula parameters for the best fit the data points, i.e. to minimize the sum <em>\sum_i (f(x_i, y_i, z_i) - a_i)^2/s_i^2</em>. At this, approximation function &lsquo;<samp>f</samp>&rsquo; can depend only on one argument &lsquo;<samp>x</samp>&rsquo; (1D case), on two arguments &lsquo;<samp>x,y</samp>&rsquo; (2D case) and on three arguments &lsquo;<samp>x,y,z</samp>&rsquo; (3D case). The command &lsquo;<samp>f</samp>&rsquo; also may depend on parameters. Normally the list of fitted parameters is specified by <var>var</var> string (like, &lsquo;<samp>abcd</samp>&rsquo;). Usually user should supply initial values for fitted parameters by <var>ini</var> variable. But if he/she don&rsquo;t supply it then the zeros are used.
+</p>
+<p>Commands <a href="#fit">fit</a> and <a href="#fits">fits</a> do not draw the obtained data themselves. They fill the data <var>out</var> by formula &lsquo;<samp>f</samp>&rsquo; with found coefficients. At this, the &lsquo;<samp>x,y,z</samp>&rsquo; coordinates are equidistantly distributed in the bounding box. Number of points in <var>out</var> is selected as maximal value of <var>out</var> size or 100. Also you may print the last formula with found coefficients by <code>putsfit</code> command. See section <a href="mgl_en_3.html#Fitting-sample">Fitting sample</a>, for sample code and picture.
+</p>
+<p>The dimensions of arrays must be at least the same as the number of specified arrays <var>xdat</var>, <var>ydat</var>, <var>zdat</var>. Also the fitting only along specified directions will be performed (for example, along x and y if only <var>xdat</var> and <var>ydat</var> are specified). If array <var>xdat</var> is not specified then its an automatic array is used with values equidistantly distributed along x.
+</p>
+
+<a name="index-fits"></a>
+<p><a name="fits"></a>
+</p><dl>
+<dt><a name="index-fits-1"></a><u>MGL command:</u> <b>fits</b><i> adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-2"></a><u>MGL command:</u> <b>fits</b><i> xdat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-3"></a><u>MGL command:</u> <b>fits</b><i> xdat ydat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-4"></a><u>MGL command:</u> <b>fits</b><i> xdat ydat zdat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dd><p>Fit data along x-, y- and z-directions for 1d-,2d- or 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) with weight factor <var>sdat</var>[i,j,k].
+</p></dd></dl>
+
+<a name="index-fit"></a>
+<p><a name="fit"></a>
+</p><dl>
+<dt><a name="index-fit-1"></a><u>MGL command:</u> <b>fit</b><i> adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-2"></a><u>MGL command:</u> <b>fit</b><i> xdat adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-3"></a><u>MGL command:</u> <b>fit</b><i> xdat ydat adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-4"></a><u>MGL command:</u> <b>fit</b><i> xdat ydat zdat adat 'func' 'var' [ini=0]</i></dt>
+<dd><p>Fit data along x-, y- and z-directions for 1d-,2d- or 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) with weight factor =1.
+</p></dd></dl>
+
+<a name="index-putsfit"></a>
+<p><a name="putsfit"></a>
+</p><dl>
+<dt><a name="index-putsfit-1"></a><u>MGL command:</u> <b>putsfit</b><i> <code>x y</code> ['pre'='' 'fnt'='' <code>size=-1</code>]</i></dt>
+<dd><p>Print last fitted formula with found coefficients (as numbers) at position {<var>x</var>, <var>y</var>}. The string <var>pre</var> will be printed before formula. All other parameters are the same as in <a href="#Text-printing">Text printing</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Data-create"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-filling" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-create-1"></a>
+<h2 class="section">1.17 Data create</h2>
+
+<a name="index-new"></a>
+<p><a name="new"></a>
+</p><dl>
+<dt><a name="index-new-1"></a><u>MGL command:</u> <b>new</b><i> dat [<code>nx=1 ny=1 nz=1</code>]</i></dt>
+<dd><p>Creates or recreates the array <var>dat</var> with specified size and fills it by zero. This command does nothing if one of parameters <var>nx</var>, <var>ny</var>, <var>nz</var> is zero or negative.
+</p></dd></dl>
+
+<a name="index-var"></a>
+<p><a name="var"></a>
+</p><dl>
+<dt><a name="index-var-1"></a><u>MGL command:</u> <b>var</b><i> dat <code>num v1 [v2=nan]</code></i></dt>
+<dd><p>Creates new variable with name <var>dat</var> for one-dimensional array of size <var>num</var>. Array elements are equidistantly distributed in range [<var>v1</var>, <var>v2</var>]. If <var>v2</var>=<code>nan</code> then <var>v2=v1</var> is used. 
+</p></dd></dl>
+
+<a name="index-list"></a>
+<p><a name="list"></a>
+</p><dl>
+<dt><a name="index-list-1"></a><u>MGL command:</u> <b>list</b><i> dat <code>v1 ...</code></i></dt>
+<dd><p>Creates new variable with name <var>dat</var> and fills it by numeric values of command arguments <code>v1 ...</code>. Command can create one-dimensional and two-dimensional arrays with arbitrary values. For creating 2d array the user should use delimiter &lsquo;<samp>|</samp>&rsquo; which means that the following values lie in next row. Array sizes are [maximal of row sizes * number of rows]. For example, command <code>list 1 | 2 3</code> creates the array [1 0; 2 3]. Note, that the maximal number of arguments is 1000. 
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-list-2"></a><u>MGL command:</u> <b>list</b><i> dat d1 ...</i></dt>
+<dd><p>Creates new variable with name <var>dat</var> and fills it by data values of arrays of command arguments <var>d1 ...</var>. Command can create two-dimensional or three-dimensional (if arrays in arguments are 2d arrays) arrays with arbitrary values. Minor dimensions of all arrays in arguments should be equal to dimensions of first array d1. In the opposite case the argument will be ignored. Note, that the maximal number of arguments is 1000. 
+</p></dd></dl>
+
+<a name="index-copy"></a>
+<p><a name="copy"></a>
+</p><dl>
+<dt><a name="index-copy-1"></a><u>MGL command:</u> <b>copy</b><i> dat1 dat2 ['eq'='' <code>on_axis=on</code>]</i></dt>
+<dt><a name="index-copy-2"></a><u>MGL command:</u> <b>copy</b><i> dat1 <code>val</code></i></dt>
+<dd><p>Creates new variable with name <var>dat1</var> and fills it by data values of array <var>dat2</var>. At this, if parameter <var>eq</var> is specified then the data will be modified by corresponding formula by the same way as in <a href="#fill">fill</a> command (for <code>on_axis=on</code>) or in <a href="#modify">modify</a> command (for <code>on_axis=off</code>).
+</p></dd></dl>
+
+<a name="index-idset"></a>
+<p><a name="idset"></a>
+</p><dl>
+<dt><a name="index-idset-1"></a><u>MGL command:</u> <b>idset</b><i> dat 'ids'</i></dt>
+<dd><p>Set the symbol id for data columns. The string must contain one symbol &rsquo;a&rsquo;...&rsquo;z&rsquo; per column (without spaces).
+</p></dd></dl>
+
+<a name="index-info"></a>
+<p><a name="info"></a>
+</p><dl>
+<dt><a name="index-info-1"></a><u>MGL command:</u> <b>info</b><i> dat [<code>detail=off</code>]</i></dt>
+<dd><p>Display information (sizes, maximum/minimum, momentums and so on) about the data dat. Show brief information by default (if <code>detail=off</code>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-info-2"></a><u>MGL command:</u> <b>info</b><i> 'text'</i></dt>
+<dd><p>Display <var>text</var> as information (warning).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Data-filling"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-create" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Rearrange-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-filling-1"></a>
+<h2 class="section">1.18 Data filling</h2>
+<a name="index-fill"></a>
+<a name="index-modify"></a>
+
+<a name="index-fill-1"></a>
+<p><a name="fill"></a>
+</p><dl>
+<dt><a name="index-fill-2"></a><u>MGL command:</u> <b>fill</b><i> dat v1 v2 ['dir'='x']</i></dt>
+<dd><p>Equidistantly fills the data values to range [<var>x1</var>, <var>x2</var>] in direction <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;,&lsquo;<samp>y</samp>&rsquo;,&lsquo;<samp>z</samp>&rsquo;}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fill-3"></a><u>MGL command:</u> <b>fill</b><i> dat 'eq'</i></dt>
+<dt><a name="index-fill-4"></a><u>MGL command:</u> <b>fill</b><i> dat 'eq' vdat</i></dt>
+<dt><a name="index-fill-5"></a><u>MGL command:</u> <b>fill</b><i> dat 'eq' vdat wdat</i></dt>
+<dd><p>Command fills the value of array according to the formula in string <var>eq</var>. Formula is an arbitrary expression depending  on variables &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; are supposed to be normalized in <em>bounding box</em> (in difference from <code>modify</code> commands). Variable &lsquo;<samp>u</samp>&rsquo; is the original value of the array. Variables &lsquo;<samp>v</samp>&rsquo; and &lsquo;<samp>w</samp>&rsquo; are values of <var>vdat</var>, <var>wdat</var>.
+</p></dd></dl>
+
+<a name="index-modify-1"></a>
+<p><a name="modify"></a>
+</p><dl>
+<dt><a name="index-modify-2"></a><u>MGL command:</u> <b>modify</b><i> dat 'eq' [<code>dim=0</code>]</i></dt>
+<dt><a name="index-modify-3"></a><u>MGL command:</u> <b>modify</b><i> dat 'eq' vdat</i></dt>
+<dt><a name="index-modify-4"></a><u>MGL command:</u> <b>modify</b><i> dat 'eq' vdat wdat</i></dt>
+<dd><p>Command fills the value of array according to the formula in string <var>eq</var>. Formula is an arbitrary expression depending  on variables &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;. Coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; are data indexes normalized in range [0,1]. Variable &lsquo;<samp>u</samp>&rsquo; is the original value of the array. If <var>dim</var>&gt;0 is specified then modification will be fulfilled only for slices &gt;=<var>dim</var>.
+</p></dd></dl>
+
+
+<a name="index-put"></a>
+<p><a name="put"></a>
+</p><dl>
+<dt><a name="index-put-1"></a><u>MGL command:</u> <b>put</b><i> dat <code>val [i=: j=: k=:]</code></i></dt>
+<dd><p>Function sets value(s) of array <var>dat</var>[<var>i</var>, <var>j</var>, <var>k</var>] = <var>val</var>. Negative indexes <var>i</var>, <var>j</var>, <var>k</var>=&lsquo;<samp>:</samp>&rsquo; set the value <var>val</var> to whole range in corresponding direction(s). For example, <code>put dat val : 0 :</code> sets <var>dat</var>[i,0,j]=<var>val</var> for i=0...(<var>dat</var>.nx-1), j=0...(<var>dat</var>.nz-1).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-put-2"></a><u>MGL command:</u> <b>put</b><i> dat vdat [<code>i=: j=: k=:</code>]</i></dt>
+<dd><p>Function copies value(s) from array <var>vdat</var> to the range of array <var>dat</var>. Negative indexes <var>i</var>, <var>j</var>, <var>k</var>=&lsquo;<samp>:</samp>&rsquo; set the range in corresponding direction(s). At this minor dimensions of array <var>vdat</var> should be large than corresponding dimensions of array <var>dat</var>. For example, <code>put dat v : 0 :</code> sets <var>dat</var>[i,0,j]=<var>vdat</var>.ny&gt;<var>dat</var>.nz ? <var>vdat</var>[i,j] : <var>vdat</var>[i], where i=0...(<var>dat</var>.nx-1), j=0...(<var>dat</var>.nz-1) and condition vdat.nx&gt;=dat.nx is true.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Rearrange-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-filling" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#File-I_002fO" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Rearrange-data-1"></a>
+<h2 class="section">1.19 Rearrange data</h2>
+
+<a name="index-rearrange"></a>
+<p><a name="rearrange"></a>
+</p><dl>
+<dt><a name="index-rearrange-1"></a><u>MGL command:</u> <b>rearrange</b><i> dat <code>mx [my=0 mz=0]</code></i></dt>
+<dd><p>Rearrange dimensions without changing data array so that resulting sizes should  be <var>mx</var>*<var>my</var>*<var>mz</var> &lt; nx*ny*nz. If some of parameter <var>my</var> or <var>mz</var> are zero then it will be selected to optimal fill of data array. For example, if <var>my</var>=0 then it will be change to <var>my</var>=nx*ny*nz/<var>mx</var> and <var>mz</var> will be 1.
+</p></dd></dl>
+
+<a name="index-extend"></a>
+<p><a name="extend"></a>
+</p><dl>
+<dt><a name="index-extend-1"></a><u>MGL command:</u> <b>extend</b><i> dat <code>n1 [n2=0]</code></i></dt>
+<dd><p>Increase the dimensions of the data by inserting new (|<var>n1</var>|+1)-th slices after (for <var>n1</var>&gt;0) or before (for <var>n1</var>&lt;0) of existed one. It is possible to insert 2 dimensions simultaneously for 1d data by using parameter <var>n2</var>. Data to new slices is copy from existed one. For example, for <var>n1</var>&gt;0 new array will be 
+a_ij^new = a_i^old where j=0...<var>n1</var>. Correspondingly, for <var>n1</var>&lt;0 new array will be a_ij^new = a_j^old where i=0...|<var>n1</var>|.
+</p></dd></dl>
+
+<a name="index-transpose"></a>
+<p><a name="transpose"></a>
+</p><dl>
+<dt><a name="index-transpose-1"></a><u>MGL command:</u> <b>transpose</b><i> dat ['dim'='yxz']</i></dt>
+<dd><p>Transposes (shift order of) dimensions of the data. New order of dimensions is specified int string <var>dim</var>. This command may be useful also for the reading of one-dimensional data.
+</p></dd></dl>
+
+<a name="index-squeeze"></a>
+<p><a name="squeeze"></a>
+</p><dl>
+<dt><a name="index-squeeze-1"></a><u>MGL command:</u> <b>squeeze</b><i> dat <code>rx [ry=1 rz=1 sm=off]</code></i></dt>
+<dd><p>Reduces the data size by excluding data elements which indexes are not divisible by <var>rx</var>, <var>ry</var>, <var>rz</var> correspondingly. Parameter <var>sm</var> set to use smoothing
+(i.e. out[i]=\sum_{j=i}^{i+r} a[j]/r) or not (i.e. out[i]=a[j*r]).
+</p></dd></dl>
+
+<a name="index-crop"></a>
+<p><a name="crop"></a>
+</p><dl>
+<dt><a name="index-crop-1"></a><u>MGL command:</u> <b>crop</b><i> dat <code>n1 n2</code> 'dir'</i></dt>
+<dd><p>Cuts off edges of the data <var>i</var>&lt;<var>n1</var> and <var>i</var>&gt;<var>n2</var> if <var>n2</var>&gt;0 or <var>i</var>&gt;<code>n[xyz]</code>-<var>n2</var> if <var>n2</var>&lt;=0 along direction <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-delete"></a>
+<p><a name="delete"></a>
+</p><dl>
+<dt><a name="index-delete-1"></a><u>MGL command:</u> <b>delete</b><i> dat</i></dt>
+<dd><p>Deletes variable <var>dat</var> and makes its memory free. Can be useful for huge data arrays.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-delete-2"></a><u>MGL command:</u> <b>delete</b><i> dat 'dir' <code>[pos=off num=0]</code></i></dt>
+<dd><p>Delete <var>num</var> slices along <var>dir</var>-direction at position <var>pos</var>.
+</p></dd></dl>
+
+<a name="index-insert"></a>
+<p><a name="insert"></a>
+</p><dl>
+<dt><a name="index-insert-1"></a><u>MGL command:</u> <b>insert</b><i> dat 'dir' <code>[pos=off num=0]</code></i></dt>
+<dd><p>Insert <var>num</var> slices along <var>dir</var>-direction at position <var>pos</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="File-I_002fO"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Rearrange-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Make-another-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="File-I_002fO-1"></a>
+<h2 class="section">1.20 File I/O</h2>
+
+<a name="index-read"></a>
+<p><a name="read"></a>
+</p><dl>
+<dt><a name="index-read-1"></a><u>MGL command:</u> <b>read</b><i> dat 'fname'</i></dt>
+<dd><p>Reads data from tab-separated text file with auto determining sizes of the data.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-read-2"></a><u>MGL command:</u> <b>read</b><i> dat 'fname' <code>mx [my=1 mz=1]</code></i></dt>
+<dd><p>Reads data from text file with specified data sizes. This command does nothing if one of parameters <var>mx</var>, <var>my</var> or <var>mz</var> is zero or negative.
+</p></dd></dl>
+
+<a name="index-readmat"></a>
+<p><a name="readmat"></a>
+</p><dl>
+<dt><a name="index-readmat-1"></a><u>MGL command:</u> <b>readmat</b><i> dat 'fname' [<code>dim=2</code>]</i></dt>
+<dd><p>Read data from text file with size specified at beginning of the file by first <var>dim</var> numbers. At this, variable <var>dim</var> set data dimensions.
+</p></dd></dl>
+
+<a name="index-readall"></a>
+<p><a name="readall"></a>
+</p><dl>
+<dt><a name="index-readall-1"></a><u>MGL command:</u> <b>readall</b><i> dat 'templ' <code>v1 v2 [dv=1 slice=off]</code></i></dt>
+<dd><p>Join data arrays from several text files. The file names are determined by function call <code>sprintf(fname,templ,val);</code>, where <var>val</var> changes from <var>v1</var> to <var>v2</var> with step <var>dv</var>. The data load one-by-one in the same slice if <var>slice</var>=<code>off</code> or as slice-by-slice if <var>slice</var>=<code>on</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-readall-2"></a><u>MGL command:</u> <b>readall</b><i> dat 'templ' <code>[slice=off]</code></i></dt>
+<dd><p>Join data arrays from several text files which filenames satisfied the template <var>templ</var> (for example, <var>templ</var>=<code>&quot;t_*.dat&quot;</code>). The data load one-by-one in the same slice if <var>slice</var>=<code>off</code> or as slice-by-slice if <var>slice</var>=<code>on</code>.
+</p></dd></dl>
+
+<a name="index-save"></a>
+<p><a name="save"></a>
+</p><dl>
+<dt><a name="index-save-1"></a><u>MGL command:</u> <b>save</b><i> dat 'fname'</i></dt>
+<dd><p>Saves the whole data array to tab-separated text file.
+</p></dd></dl>
+
+<a name="index-readhdf"></a>
+<p><a name="readhdf"></a>
+</p><dl>
+<dt><a name="index-readhdf-1"></a><u>MGL command:</u> <b>readhdf</b><i> dat 'fname' 'dname'</i></dt>
+<dd><p>Reads data array named <var>dname</var> from HDF5 or HDF4 file <var>fname</var>.
+</p></dd></dl>
+
+<a name="index-savehdf"></a>
+<p><a name="savehdf"></a>
+</p><dl>
+<dt><a name="index-savehdf-1"></a><u>MGL command:</u> <b>savehdf</b><i> dat 'fname' 'dname'</i></dt>
+<dd><p>Saves data array named <var>dname</var> from HDF5 or HDF4 file <var>fname</var>.
+</p></dd></dl>
+
+<a name="index-import"></a>
+<p><a name="import"></a>
+</p><dl>
+<dt><a name="index-import-1"></a><u>MGL command:</u> <b>import</b><i> dat 'fname' 'sch' [<code>v1=0 v2=1</code>]</i></dt>
+<dd><p>Reads data from bitmap file. The RGB values of bitmap pixels are transformed to float values in range [<var>v1</var>, <var>v2</var>] using color scheme <var>sch</var> (see section <a href="#Color-scheme">Color scheme</a>).
+</p></dd></dl>
+
+<a name="index-export"></a>
+<p><a name="export"></a>
+</p><dl>
+<dt><a name="index-export-1"></a><u>MGL command:</u> <b>export</b><i> dat 'fname' 'sch' [<code>v1=0 v2=0</code>]</i></dt>
+<dd><p>Saves data matrix to bitmap file. The data values are transformed from range [<var>v1</var>, <var>v2</var>] to RGB pixels of bitmap using color scheme <var>sch</var> (see section <a href="#Color-scheme">Color scheme</a>). If <var>v1</var>&gt;=<var>v2</var> then the values of <var>v1</var>, <var>v2</var> are automatically determined as minimal and maximal value of the data array.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Make-another-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#File-I_002fO" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Change-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Make-another-data-1"></a>
+<h2 class="section">1.21 Make another data</h2>
+
+<a name="index-combine"></a>
+<p><a name="combine"></a>
+</p><dl>
+<dt><a name="index-combine-1"></a><u>MGL command:</u> <b>combine</b><i> res adat bdat</i></dt>
+<dd><p>Returns direct multiplication of arrays (like, res[i,j] = adat[i]*bdat[j] and so on).
+</p></dd></dl>
+
+<a name="index-evaluate"></a>
+<p><a name="evaluate"></a>
+</p><dl>
+<dt><a name="index-evaluate-1"></a><u>MGL command:</u> <b>evaluate</b><i> res dat idat [<code>norm=on</code>]</i></dt>
+<dt><a name="index-evaluate-2"></a><u>MGL command:</u> <b>evaluate</b><i> res dat idat jdat [<code>norm=on</code>]</i></dt>
+<dt><a name="index-evaluate-3"></a><u>MGL command:</u> <b>evaluate</b><i> res dat idat jdat kdat [<code>norm=on</code>]</i></dt>
+<dd><p>Get array which values is result of interpolation of original array for coordinates from other arrays (for example, res[i,j]=dat[idat[i,j],jdat[i,j]]). All dimensions must be the same for data <var>idat</var>, <var>jdat</var>, <var>kdat</var>. Coordinates from <var>idat</var>, <var>jdat</var>, <var>kdat</var> are supposed to be normalized in range [0,1] (if <var>norm</var>=<code>true</code>) or in ranges [0,nx], [0,ny], [0,nz] correspondingly.
+</p></dd></dl>
+
+<a name="index-hist"></a>
+<p><a name="hist"></a>
+</p><dl>
+<dt><a name="index-hist-1"></a><u>MGL command:</u> <b>hist</b><i> res dat <code>num v1 v2 [nsub=0]</code></i></dt>
+<dt><a name="index-hist-2"></a><u>MGL command:</u> <b>hist</b><i> res dat wdat <code>num v1 v2 [nsub=0]</code></i></dt>
+<dd><p>Creates <var>num</var>-th points distribution <var>res</var> of the data values of <var>dat</var> in range [<var>v1</var>, <var>v2</var>]. Array <var>wdat</var> specifies weights of the data elements (all weight is 1 if <var>wdat</var> is not specified). Parameter <var>nsub</var> define the number of additional interpolated points (for smoothness of histogram).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-hist-3"></a><u>MGL command:</u> <b>hist</b><i> res xdat adat</i></dt>
+<dt><a name="index-hist-4"></a><u>MGL command:</u> <b>hist</b><i> res xdat ydat adat</i></dt>
+<dt><a name="index-hist-5"></a><u>MGL command:</u> <b>hist</b><i> res xdat ydat zdat adat</i></dt>
+<dd><p>Creates distribution <var>res</var> of the data values of <var>adat</var> in axis range [Min, Max]. Array <var>adat</var> look like weights of the data points.
+</p></dd></dl>
+
+
+<a name="index-momentum"></a>
+<p><a name="momentum"></a>
+</p><dl>
+<dt><a name="index-momentum-1"></a><u>MGL command:</u> <b>momentum</b><i> res dat 'how' ['dir'='z']</i></dt>
+<dd><p>Get momentum (1D-array) of the data along direction <var>dir</var>. String <var>how</var> contain kind of momentum. The momentum is defined like as
+res_k = \sum_ij how(x_i,y_j,z_k) a_ij/ \sum_ij a_ij
+if <var>var</var>=&lsquo;<samp>z</samp>&rsquo; and so on. Coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; are data indexes normalized in range [0,1].
+</p></dd></dl>
+
+<a name="index-sum"></a>
+<p><a name="sum"></a>
+</p><dl>
+<dt><a name="index-sum-1"></a><u>MGL command:</u> <b>sum</b><i> res dat 'dir'</i></dt>
+<dd><p>Gets array which is the result of summation in given direction or direction(s).
+</p></dd></dl>
+<a name="index-max"></a>
+<p><a name="max"></a>
+</p><dl>
+<dt><a name="index-max-1"></a><u>MGL command:</u> <b>max</b><i> res dat 'dir'</i></dt>
+<dd><p>Gets array which is the maximal data values in given direction or direction(s).
+</p></dd></dl>
+<a name="index-min"></a>
+<p><a name="min"></a>
+</p><dl>
+<dt><a name="index-min-1"></a><u>MGL command:</u> <b>min</b><i> res dat 'dir'</i></dt>
+<dd><p>Gets array which is the minimal data values in given direction or direction(s).
+</p></dd></dl>
+
+<a name="index-resize"></a>
+<p><a name="resize"></a>
+</p><dl>
+<dt><a name="index-resize-1"></a><u>MGL command:</u> <b>resize</b><i> res dat <code>mx [my=1 mz=1]</code></i></dt>
+<dd><p>Makes array <var>res</var> of sizes <var>mx</var>, <var>my</var>, <var>mz</var> with interpolated data of array <var>dat</var>. 
+</p></dd></dl>
+
+<a name="index-subdata"></a>
+<p><a name="subdata"></a>
+</p><dl>
+<dt><a name="index-subdata-1"></a><u>MGL command:</u> <b>subdata</b><i> res dat <code>xx [yy=: zz=:]</code></i></dt>
+<dd><p>Extracts sub-array data <var>res</var> from the original data <var>dat</var> array keeping fixed positive index. For example <code>subdata a b : 2</code> extracts 3d row (indexes are zero based), <code>subdata a b 4 :</code> extracts 5th column, <code>subdata a b : : 3</code> extracts 4th slice and so on. Note that symbol &lsquo;<samp>:</samp>&rsquo; is defined &lsquo;<samp>:</samp>&rsquo;=<code>-1</code> in MGL.
+</p></dd></dl>
+
+<a name="index-trace"></a>
+<p><a name="trace"></a>
+</p><dl>
+<dt><a name="index-trace-1"></a><u>MGL command:</u> <b>trace</b><i> res dat</i></dt>
+<dd><p>Gets array of diagonal elements <var>dat</var>[i,i] (for 2D case) or <var>dat</var>[i,i,i] (for 3D case) where i=0...nx-1. Function return copy of <var>dat</var> for 1D case. Data array must have dimensions <var>dat</var>.ny, <var>dat</var>.nz &gt;= <var>dat</var>.nx or <var>dat</var>.ny, <var>dat</var>.nz = 1.
+</p></dd></dl>
+
+<a name="index-transform"></a>
+<p><a name="transform"></a>
+</p><dl>
+<dt><a name="index-transform-1"></a><u>MGL command:</u> <b>transform</b><i> dat 'type' real imag</i></dt>
+<dd><p>Do integral transformation of complex data <var>real</var>, <var>imag</var> on specified direction. The order of transformations is specified in string <var>type</var>: first character for x-dimension, second one for y-dimension, third one for z-dimension. The possible character are: &lsquo;<samp>f</samp>&rsquo; is forward Fourier transformation, &lsquo;<samp>i</samp>&rsquo; is inverse Fourier transformation, &lsquo;<samp>s</samp>&rsquo; is Sine transform, &lsquo;<samp>c</samp>&rsquo; is Cosine transform, &lsquo;<samp>h</samp>&rsquo; is Hankel transform, &lsquo;<samp>n</samp>&rsquo; or &lsquo;<samp> </samp>&rsquo; is no transformation.
+</p></dd></dl>
+
+<a name="index-transforma"></a>
+<p><a name="transforma"></a>
+</p><dl>
+<dt><a name="index-transforma-1"></a><u>MGL command:</u> <b>transforma</b><i> dat 'type' ampl phase</i></dt>
+<dd><p>The same as previous but with specified amplitude <var>ampl</var> and phase <var>phase</var> of complex numbers.
+</p></dd></dl>
+
+<a name="index-stfad"></a>
+<p><a name="stfad"></a>
+</p><dl>
+<dt><a name="index-stfad-1"></a><u>MGL command:</u> <b>stfad</b><i> res real imag <code>dn</code> ['dir'='x']</i></dt>
+<dd><p>Short time Fourier transformation for real and imaginary parts. Output  is amplitude of partial Fourier of length <var>dn</var>. For example if <var>dir</var>=&lsquo;<samp>x</samp>&rsquo;, result will have size {int(nx/dn), dn, ny} and it will contain <em>res[i,j,k]=|\sum_d^dn exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn</em>.
+</p></dd></dl>
+
+<a name="index-pde"></a>
+<p><a name="pde"></a>
+</p><dl>
+<dt><a name="index-pde-1"></a><u>MGL command:</u> <b>pde</b><i> res 'ham' ini_re ini_im [<code>dz=0.1 k0=100</code>]</i></dt>
+<dd><p>Solves equation du/dz = i*k0*<var>ham</var>(p,q,x,y,z,|u|)[u], where p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators. Parameters <var>ini_re</var>, <var>ini_im</var> specify real and imaginary part of initial field distribution. Coordinates of the equation (and the solution) are supposed to be in the bounding box. Note, that really this ranges are increased by factor 3/2 for purpose of reducing reflection from boundaries. Parameter <var>dz</var> set the step along evolutionary coordinate z. At this moment, simplified form of function <var>ham</var> is supported &ndash; all &ldquo;mixed&rdquo; terms (like &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) are excluded. For example, in 2D case this function is effectively <em>ham = f(p,z) + g(x,z,u)</em>. However commutable combinations (like &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy) are allowed. Here variable &lsquo;<samp>u</samp>&rsquo; is used for field amplitude |u|. This allow one solve nonlinear problems &ndash; for example, for non-linear Shrodinger equation you may set <code>ham='p^2+q^2-u^2'</code>. You may specify imaginary part for wave absorption, like <code>ham = 'p^2+i*x*(x&gt;0)'</code>, but only if dependence on variable &lsquo;<samp>i</samp>&rsquo; is linear (i.e. <em>ham = hre+i*him</em>). See section <a href="mgl_en_3.html#PDE-sample">PDE sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-ray"></a>
+<p><a name="ray"></a>
+</p><dl>
+<dt><a name="index-ray-1"></a><u>MGL command:</u> <b>ray</b><i> res 'ham' <code>x0 y0 z0 p0 q0 v0 [dt=0.1 tmax=10]</code></i></dt>
+<dd><p>Solves GO ray equation like d<em>r</em>/dt = d <var>ham</var>/d<em>p</em>, d<em>p</em>/dt = -d <var>ham</var>/d<em>r</em>. This is Hamiltonian equations for particle trajectory in 3D case. Here <var>ham</var> is Hamiltonian which may depend on coordiantes &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, momentums &lsquo;<samp>p</samp>&rsquo;=px, &lsquo;<samp>q</samp>&rsquo;=py, &lsquo;<samp>v</samp>&rsquo;=pz and time &lsquo;<samp>t</samp>&rsquo;: <em>ham = H(x,y,z,p,q,v,t)</em>. The starting point (at <code>t=0</code>) is defined by variables {<var>x0</var>, <var>y0</var>, <var>z0</var>, <var>p0</var>, <var>q0</var>, <var>v0</var>}. Parameters <var>dt</var> and <var>tmax</var> specify the integration step and maximal time for ray tracing. Result is array of {x,y,z,p,q,v,t} with dimensions {7 * int(<var>tmax</var>/<var>dt</var>+1) }. See also <a href="#pde">pde</a>. See section <a href="mgl_en_3.html#Beam-tracing-sample">Beam tracing sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-qo2d"></a>
+<p><a name="qo2d"></a>
+</p><dl>
+<dt><a name="index-qo2d-1"></a><u>MGL command:</u> <b>qo2d</b><i> res 'ham' ini_re ini_im ray [<code>r=1 k0=100</code> xx=0 yy=0]</i></dt>
+<dd><p>Solves equation du/dt = i*k0*<var>ham</var>(p,q,x,y,|u|)[u], where p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators. Parameters <var>ini_re</var>, <var>ini_im</var> specify real and imaginary part of initial field distribution. Parameters <var>ray</var> set the reference ray, i.e. the ray around which the accompanied coordinate system will be maked. You may use, for example, the array created by <a href="#ray">ray</a> function. Note, that the reference ray <strong>must be</strong> smooth enough to make accompanied coodrinates unambiguity. Otherwise errors in the solution may appear. If <var>xx</var> and <var>yy</var> are non-zero then Cartesian coordinates for each point will be written into them. See section <a href="mgl_en_3.html#Beam-tracing-sample">Beam tracing sample</a>, for sample code and picture. 
+</p></dd></dl>
+
+<a name="index-jacobian"></a>
+<p><a name="jacobian"></a>
+</p><dl>
+<dt><a name="index-jacobian-1"></a><u>MGL command:</u> <b>jacobian</b><i> res xdat ydat [zdat=0]</i></dt>
+<dd><p>Computates the Jacobian for transformation {i,j,k} to {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} where initial coordinates  {i,j,k} are data indexes normalized in range [0,1]. The Jacobian is determined by formula det||<em>dr_\alpha/d\xi_\beta</em>|| where <em>r</em>={<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} and <em>\  xi</em>={i,j,k}. All dimensions must be the same for all data arrays. Data must be 3D if all 3 arrays {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} are specified or 2D if only 2 arrays {<var>xdat</var>,<var>ydat</var>} are specified.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Change-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Make-another-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Operators" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Change-data-1"></a>
+<h2 class="section">1.22 Change data</h2>
+
+<p>These commands change the data in some direction like differentiations, integrations and so on. The direction in which the change will applied is specified by the string parameter, which may contain &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo; characters for 1-st, 2-nd and 3-d dimension correspondingly.
+</p>
+<a name="index-cumsum"></a>
+<p><a name="cumsum"></a>
+</p><dl>
+<dt><a name="index-cumsum-1"></a><u>MGL command:</u> <b>cumsum</b><i> dat 'dir'</i></dt>
+<dd><p>Cumulative summation of the data in given direction or directions.
+</p></dd></dl>
+<a name="index-integrate"></a>
+<p><a name="integrate"></a>
+</p><dl>
+<dt><a name="index-integrate-1"></a><u>MGL command:</u> <b>integrate</b><i> dat 'dir'</i></dt>
+<dd><p>Integrates (like cumulative summation) the data in given direction or directions.
+</p></dd></dl>
+<a name="index-diff"></a>
+<p><a name="diff"></a>
+</p><dl>
+<dt><a name="index-diff-1"></a><u>MGL command:</u> <b>diff</b><i> dat 'dir'</i></dt>
+<dd><p>Differentiates the data in given direction or directions.
+</p></dd></dl>
+<dl>
+<dt><a name="index-diff-2"></a><u>MGL command:</u> <b>diff</b><i> dat xdat ydat [zdat=0]</i></dt>
+<dd><p>Differentiates the data <var>dat</var> specified parametrically in direction <var>xdat</var> with <var>ydat</var>, <var>zdat</var>=constant. Parameter <var>zdat</var> can be omitted that correspond to 2D case. Parametrical differentiation uses the formula (for 2D case): <em>da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j)</em> where <em>a_i=da/di, a_j=da/dj</em> denotes usual differentiation along 1st and 2nd dimensions. The similar formula is used for 3D case. Note, that you may change the order of arguments &ndash; for example, if you have 2D data a(i,j) which depend on coordinates {x(i,j), y(i,j)} then usual derivative along &lsquo;<samp>x</samp>&rsquo; will be <code>diff a x y</code> and usual derivative along &lsquo;<samp>y</samp>&rsquo; will be <code>diff a y x</code>.
+</p></dd></dl>
+
+<a name="index-diff2"></a>
+<p><a name="diff2"></a>
+</p><dl>
+<dt><a name="index-diff2-1"></a><u>MGL command:</u> <b>diff2</b><i> dat 'dir'</i></dt>
+<dd><p>Double-differentiates (like Laplace operator) the data in given direction.
+</p></dd></dl>
+
+<a name="index-sinfft"></a>
+<p><a name="sinfft"></a>
+</p><dl>
+<dt><a name="index-sinfft-1"></a><u>MGL command:</u> <b>sinfft</b><i> dat 'dir'</i></dt>
+<dd><p>Do Sine transform of the data in given direction or directions. The Sine transform is <em>\sum a_i \sin(k i)</em>.
+</p></dd></dl>
+<a name="index-cosfft"></a>
+<p><a name="cosfft"></a>
+</p><dl>
+<dt><a name="index-cosfft-1"></a><u>MGL command:</u> <b>cosfft</b><i> dat 'dir'</i></dt>
+<dd><p>Do Cosine transform of the data in given direction or directions. The Cosine transform is <em>\sum a_i \cos(k i)</em>.
+</p></dd></dl>
+<a name="index-hankel"></a>
+<p><a name="hankel"></a>
+</p><dl>
+<dt><a name="index-hankel-1"></a><u>MGL command:</u> <b>hankel</b><i> dat 'dir'</i></dt>
+<dd><p>Do Hankel transform of the data in given direction or directions. The Hankel transform is <em>\sum a_i J_0(k i)</em>.
+</p></dd></dl>
+
+
+<a name="index-swap"></a>
+<p><a name="swap"></a>
+</p><dl>
+<dt><a name="index-swap-1"></a><u>MGL command:</u> <b>swap</b><i> dat 'dir'</i></dt>
+<dd><p>Swaps the left and right part of the data in given direction (useful for Fourier spectrum).
+</p></dd></dl>
+<a name="index-roll"></a>
+<p><a name="roll"></a>
+</p><dl>
+<dt><a name="index-roll-1"></a><u>MGL command:</u> <b>roll</b><i> dat 'dir' num</i></dt>
+<dd><p>Rolls the data along direction &rsquo;dir&rsquo;. Resulting array will be out[i] = ini[(i+num)%nx] if <code>dir='x'</code>.
+</p></dd></dl>
+
+<a name="index-mirror"></a>
+<p><a name="mirror"></a>
+</p><dl>
+<dt><a name="index-mirror-1"></a><u>MGL command:</u> <b>mirror</b><i> dat 'dir'</i></dt>
+<dd><p>Mirror the left-to-right part of the data in given direction. Looks like change the value index <var>i</var>-&gt;<var>n-i</var>.
+</p></dd></dl>
+
+<a name="index-sew"></a>
+<p><a name="sew"></a>
+</p><dl>
+<dt><a name="index-sew-1"></a><u>MGL command:</u> <b>sew</b><i> dat ['dir'='xyz' <code>da=2*pi</code>]</i></dt>
+<dd><p>Remove value steps (like phase jumps after inverse trigonometric commands) with period <var>da</var> in given direction.
+</p></dd></dl>
+<a name="index-smooth"></a>
+<p><a name="smooth"></a>
+</p><dl>
+<dt><a name="index-smooth-1"></a><u>MGL command:</u> <b>smooth</b><i> data <code>type</code> ['dir'='xyz']</i></dt>
+<dd><p>Smooths the data on specified direction or directions by method <var>Type</var>. Now 4 methods are supported: &lsquo;<samp>0</samp>&rsquo; does nothing, &lsquo;<samp>1</samp>&rsquo; linear averaging by 3 points, &lsquo;<samp>2</samp>&rsquo; linear averaging by 5 points, &lsquo;<samp>3</samp>&rsquo; quadratic averaging by 5 points.
+</p></dd></dl>
+
+<a name="index-envelop"></a>
+<p><a name="envelop"></a>
+</p><dl>
+<dt><a name="index-envelop-1"></a><u>MGL command:</u> <b>envelop</b><i> dat ['dir'='x']</i></dt>
+<dd><p>Find envelop for data values along direction <var>dir</var>. Only one direction can be specified at once.
+</p></dd></dl>
+
+<a name="index-normsl"></a>
+<p><a name="normsl"></a>
+</p><dl>
+<dt><a name="index-normsl-1"></a><u>MGL command:</u> <b>normsl</b><i> dat <code>v1 v2</code> ['dir'='z' <code>keep=on sym=off</code>]</i></dt>
+<dd><p>Normalizes data slice-by-slice along direction <var>dir</var> the data in slices to range [<var>v1</var>,<var>v2</var>]. If flag <var>sym</var>=<code>on</code> then symmetrical interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used. If <var>keep</var> is set then maximal value of k-th slice will be limited by 
+<em>\sqrt\sum a_ij(k)/\sum a_ij(0)</em>.
+</p></dd></dl>
+
+<a name="index-norm"></a>
+<p><a name="norm"></a>
+</p><dl>
+<dt><a name="index-norm-1"></a><u>MGL command:</u> <b>norm</b><i> dat <code>v1 v2 [sym=off dim=0]</code></i></dt>
+<dd><p>Normalizes the data to range [<var>v1</var>,<var>v2</var>]. If flag <var>sym</var>=<code>on</code> then symmetrical interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used. Modification will be applied only for slices &gt;=<var>dim</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Operators"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Change-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Program-flow" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Operators-1"></a>
+<h2 class="section">1.23 Operators</h2>
+
+<a name="index-multo"></a>
+<p><a name="multo"></a>
+</p><dl>
+<dt><a name="index-multo-1"></a><u>MGL command:</u> <b>multo</b><i> dat dat2</i></dt>
+<dd><p>Multiplies the data by the other one for each element.
+</p></dd></dl>
+<dl>
+<dt><a name="index-multo-2"></a><u>MGL command:</u> <b>multo</b><i> dat <code>val</code></i></dt>
+<dd><p>Multiplies each element by the number.
+</p></dd></dl>
+
+<a name="index-divto"></a>
+<p><a name="divto"></a>
+</p><dl>
+<dt><a name="index-divto-1"></a><u>MGL command:</u> <b>divto</b><i> dat dat2</i></dt>
+<dd><p>Divides the data by the other one for each element.
+</p></dd></dl>
+<dl>
+<dt><a name="index-divto-2"></a><u>MGL command:</u> <b>divto</b><i> dat <code>val</code></i></dt>
+<dd><p>Divides each element by the number.
+</p></dd></dl>
+
+<a name="index-addto"></a>
+<p><a name="addto"></a>
+</p><dl>
+<dt><a name="index-addto-1"></a><u>MGL command:</u> <b>addto</b><i> dat dat2</i></dt>
+<dd><p>Adds the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-addto-2"></a><u>MGL command:</u> <b>addto</b><i> dat <code>val</code></i></dt>
+<dd><p>Adds the number to each element.
+</p></dd></dl>
+
+<a name="index-subto"></a>
+<p><a name="subto"></a>
+</p><dl>
+<dt><a name="index-subto-1"></a><u>MGL command:</u> <b>subto</b><i> dat dat2</i></dt>
+<dd><p>Subtracts the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-subto-2"></a><u>MGL command:</u> <b>subto</b><i> dat <code>val</code></i></dt>
+<dd><p>Subtracts the number to each element.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Program-flow"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Operators" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Command-options" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Program-flow-1"></a>
+<h2 class="section">1.24 Program flow</h2>
+
+<p>These commands control program flow, like, conditions, cycles, define script arguments and so on.
+</p>
+<a name="index-chdir"></a>
+<p><a name="chdir"></a>
+</p><dl>
+<dt><a name="index-chdir-1"></a><u>MGL command:</u> <b>chdir</b><i> 'path'</i></dt>
+<dd><p>Changes the current directory to <var>path</var>.
+</p></dd></dl>
+
+<a name="index-define"></a>
+<p><a name="define"></a>
+</p><dl>
+<dt><a name="index-define-1"></a><u>MGL command:</u> <b>define</b><i> $N smth</i></dt>
+<dd><p>Sets <var>N</var>-th script argument to <var>smth</var>. Note, that <var>smth</var> is used as is (with &lsquo;<samp>'</samp>&rsquo; symbols if present). Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<dl>
+<dt><a name="index-define-2"></a><u>MGL command:</u> <b>define</b><i> name smth</i></dt>
+<dd><p>Create scalar variable <code>name</code> which have the numeric value of <code>smth</code>. Later you can use this variable as usual number. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<a name="index-defchr"></a>
+<p><a name="defchr"></a>
+</p><dl>
+<dt><a name="index-defchr-1"></a><u>MGL command:</u> <b>defchr</b><i> $N smth</i></dt>
+<dd><p>Sets <var>N</var>-th script argument to character with value evaluated from <var>smth</var>. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<a name="index-defnum"></a>
+<p><a name="defnum"></a>
+</p><dl>
+<dt><a name="index-defnum-1"></a><u>MGL command:</u> <b>defnum</b><i> $N smth</i></dt>
+<dd><p>Sets <var>N</var>-th script argument to number with value evaluated from <var>smth</var>. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<a name="index-defpal"></a>
+<p><a name="defpal"></a>
+</p><dl>
+<dt><a name="index-defpal-1"></a><u>MGL command:</u> <b>defpal</b><i> $N smth</i></dt>
+<dd><p>Sets <var>N</var>-th script argument to palette character at position evaluated from <var>smth</var>. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+
+<a name="index-call"></a>
+<p><a name="call"></a>
+</p><dl>
+<dt><a name="index-call-1"></a><u>MGL command:</u> <b>call</b><i> 'fname' [ARG1 ARG2 ... ARG9]</i></dt>
+<dd><p>Executes function <var>fname</var> (or script if function is not found). Optional arguments will be passed to functions. See also <a href="#func">func</a>.
+</p></dd></dl>
+<a name="index-func"></a>
+<p><a name="func"></a>
+</p><dl>
+<dt><a name="index-func-1"></a><u>MGL command:</u> <b>func</b><i> 'fname' [narg=0]</i></dt>
+<dd><p>Define the function <var>fname</var> and number of required arguments. The arguments will be placed in script parameters $1, $2, ... $9. Note, you should stop script execution before function definition(s) by command <a href="#stop">stop</a>. See also <a href="#return">return</a>.
+</p></dd></dl>
+<a name="index-return"></a>
+<p><a name="return"></a>
+</p><dl>
+<dt><a name="index-return-1"></a><u>MGL command:</u> <b>return</b></dt>
+<dd><p>Return from the function. See also <a href="#func">func</a>.
+</p></dd></dl>
+
+
+<a name="index-if"></a>
+<p><a name="if"></a>
+</p><dl>
+<dt><a name="index-if-1"></a><u>MGL command:</u> <b>if</b><i> dat 'cond'</i></dt>
+<dd><p>Starts block which will be executed if <var>dat</var> satisfy to <var>cond</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-if-2"></a><u>MGL command:</u> <b>if</b><i> <code>val</code></i></dt>
+<dd><p>Starts block which will be executed if <code>val</code> is nonzero.
+</p></dd></dl>
+<a name="index-elseif"></a>
+<p><a name="elseif"></a>
+</p><dl>
+<dt><a name="index-elseif-1"></a><u>MGL command:</u> <b>elseif</b><i> dat 'cond'</i></dt>
+<dd><p>Starts block which will be executed if previous <code>if</code> or <code>elseif</code> is false and <var>dat</var> satisfy to <var>cond</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-elseif-2"></a><u>MGL command:</u> <b>elseif</b><i> <code>val</code></i></dt>
+<dd><p>Starts block which will be executed if previous <code>if</code> or <code>elseif</code> is false and <code>val</code> is nonzero.
+</p></dd></dl>
+<a name="index-else"></a>
+<p><a name="else"></a>
+</p><dl>
+<dt><a name="index-else-1"></a><u>MGL command:</u> <b>else</b></dt>
+<dd><p>Starts block which will be executed if previous <code>if</code> or <code>elseif</code> is false.
+</p></dd></dl>
+<a name="index-endif"></a>
+<p><a name="endif"></a>
+</p><dl>
+<dt><a name="index-endif-1"></a><u>MGL command:</u> <b>endif</b></dt>
+<dd><p>Finishes <code>if/elseif/else</code> block.
+</p></dd></dl>
+
+<a name="index-for"></a>
+<p><a name="for"></a>
+</p><dl>
+<dt><a name="index-for-1"></a><u>MGL command:</u> <b>for</b><i> $N <code>v1 v2 [dv=1]</code></i></dt>
+<dd><p>Starts cycle with $<var>N</var>-th argument changing from <var>v1</var> to <var>v2</var> with the step <var>dv</var>. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<dl>
+<dt><a name="index-for-2"></a><u>MGL command:</u> <b>for</b><i> $N dat</i></dt>
+<dd><p>Starts cycle with $<var>N</var>-th argument changing for <var>dat</var> values. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<a name="index-next"></a>
+<p><a name="next"></a>
+</p><dl>
+<dt><a name="index-next-1"></a><u>MGL command:</u> <b>next</b></dt>
+<dd><p>Finishes <code>for</code> cycle.
+</p></dd></dl>
+
+<a name="index-once"></a>
+<p><a name="once"></a>
+</p><dl>
+<dt><a name="index-once-1"></a><u>MGL command:</u> <b>once</b><i> <code>val</code></i></dt>
+<dd><p>The code between <code>once on</code> and <code>once off</code> will be executed only once. Useful for large data manipulation in programs like UDAV.
+</p></dd></dl>
+<a name="index-stop"></a>
+<p><a name="stop"></a>
+</p><dl>
+<dt><a name="index-stop-1"></a><u>MGL command:</u> <b>stop</b></dt>
+<dd><p>Terminate execution.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Command-options"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Program-flow" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Suffixes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Command-options-1"></a>
+<h2 class="section">1.25 Command options</h2>
+
+<p>Command options allow the easy setup of the plot by changing of global settings only for this plot. Options are specified at the end of string. Each option is separated from the previous text by symbol &lsquo;<samp>;</samp>&rsquo;. Options work so that them remember the current settings, change settings as it being set in the option, execute command and return the original settings back. So, the options usage for data handling commands or for graphics setup commands is useless.
+</p>
+<p>The most useful options are <code>xrange, yrange, zrange</code>. They sets the boundaries for data change. This boundaries are used for automatically filled variables. So, these options allow one to change the position of some plots. For example, in command <code>plot y; xrange 0.1 0.9</code> the x coordinate will be equidistantly distributed in range 0.1 ... 0.9.
+</p>
+<p>The full list of options are:
+<a name="index-alpha-2"></a>
+<a name="index-alphadef-2"></a>
+</p><dl>
+<dt><a name="index-alpha-3"></a><u>MGL option:</u> <b>alpha</b><i> <code>val</code></i></dt>
+<dt><a name="index-alphadef-3"></a><u>MGL option:</u> <b>alphadef</b><i> <code>val</code></i></dt>
+<dd><p>Sets alpha value (transparency) of the plot. The value should be in range [0, 1]. See also <a href="#alphadef">alphadef</a>.
+</p></dd></dl>
+<a name="index-ambient-2"></a>
+<dl>
+<dt><a name="index-ambient-3"></a><u>MGL option:</u> <b>ambient</b><i> <code>val</code></i></dt>
+<dd><p>Sets brightness of ambient light for the plot. The value should be in range [0, 1]. See also <a href="#ambient">ambient</a>.
+</p></dd></dl>
+<a name="index-crange-3"></a>
+<dl>
+<dt><a name="index-crange-4"></a><u>MGL option:</u> <b>crange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Sets boundaries of color change for the plot. See also <a href="#crange">crange</a>.
+</p></dd></dl>
+<a name="index-xrange-3"></a>
+<dl>
+<dt><a name="index-xrange-4"></a><u>MGL option:</u> <b>xrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Sets boundaries of x coordinate change for the plot. See also <a href="#xrange">xrange</a>.
+</p></dd></dl>
+<a name="index-yrange-3"></a>
+<dl>
+<dt><a name="index-yrange-4"></a><u>MGL option:</u> <b>yrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Sets boundaries of y coordinate change for the plot. See also <a href="#yrange">yrange</a>.
+</p></dd></dl>
+<a name="index-zrange-3"></a>
+<dl>
+<dt><a name="index-zrange-4"></a><u>MGL option:</u> <b>zrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Sets boundaries of z coordinate change for the plot. See also <a href="#zrange">zrange</a>.
+</p></dd></dl>
+<a name="index-cut-4"></a>
+<dl>
+<dt><a name="index-cut-5"></a><u>MGL option:</u> <b>cut</b><i> <code>val</code></i></dt>
+<dd><p>Sets whether to cut or to project the plot points lying outside the bounding box. See also <a href="#cut">cut</a>.
+</p></dd></dl>
+<a name="index-fontsize"></a>
+<dl>
+<dt><a name="index-fontsize-1"></a><u>MGL option:</u> <b>fontsize</b><i> <code>val</code></i></dt>
+<dd><p>Sets the size of text. See also <a href="#font">font</a>.
+</p></dd></dl>
+<a name="index-marksize-2"></a>
+<dl>
+<dt><a name="index-marksize-3"></a><u>MGL option:</u> <b>marksize</b><i> <code>val</code></i></dt>
+<dd><p>Sets the size of marks. See also <a href="#marksize">marksize</a>.
+</p></dd></dl>
+<a name="index-meshnum-2"></a>
+<dl>
+<dt><a name="index-meshnum-3"></a><u>MGL option:</u> <b>meshnum</b><i> <code>val</code></i></dt>
+<dd><p>Work like <a href="#meshnum">meshnum</a> command.
+</p></dd></dl>
+<a name="index-legend-3"></a>
+<dl>
+<dt><a name="index-legend-4"></a><u>MGL option:</u> <b>legend</b><i> 'txt'</i></dt>
+<dd><p>Adds string &rsquo;txt&rsquo; to internal legend accumulator. The style of described line and mark is taken from arguments of the last <a href="#g_t1D-plotting">1D plotting</a> command. See also <a href="#legend">legend</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Suffixes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Command-options" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Utilities" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Suffixes-for-variable"></a>
+<h2 class="section">1.26 Suffixes for variable</h2>
+
+<p>Suffixes can get some numerical value (like its size, maximal or minimal value, the sum of elements and so on) of the data array in variable and use it later as usual number in command arguments. The suffixes start from point &lsquo;<samp>.</samp>&rsquo; right after (without spaces) variable name or its sub-array. For example, <code>a.nx</code> give the x-size of data <var>a</var>, <code>b(1).max</code> give maximal value of second row of variable <var>b</var>, <code>(c(:,0)^2).sum</code> give the sum of squares of elements in the first column of <var>c</var> and so on.
+</p>
+<p>The full list of suffixes are:
+</p><dl compact="compact">
+<dt> <strong>nx, ny, nz</strong></dt>
+<dd><p>Give the data size in x-, y-, z-direction correspondingly.
+</p></dd>
+<dt> <strong>max</strong></dt>
+<dd><p>Give maximal value of the data.
+</p></dd>
+<dt> <strong>min</strong></dt>
+<dd><p>Give minimal value of the data.
+</p></dd>
+<dt> <strong>sum</strong></dt>
+<dd><p>Give sum of data values.
+</p></dd>
+<dt> <strong>a</strong></dt>
+<dd><p>Give first value of data array.
+</p></dd>
+<dt> <strong>fst</strong></dt>
+<dd><p>Give first nonzero value of data array.
+</p></dd>
+<dt> <strong>lst</strong></dt>
+<dd><p>Give last nonzero value of data array.
+</p></dd>
+<dt> <strong>mx, my, mz</strong></dt>
+<dd><p>Give x-, y-, z-position of data maximum.
+</p></dd>
+<dt> <strong>ax, ay, az, aa</strong></dt>
+<dd><p>Give x-, y-, z-position of data mass center or average data value.
+</p></dd>
+<dt> <strong>wx, wy, wz, wa</strong></dt>
+<dd><p>Give width in x-, y-, z-direction or data dispersion value.
+</p></dd>
+<dt> <strong>sx, sy, sz, sa</strong></dt>
+<dd><p>Give skewness in x-, y-, z-direction or data skewness value.
+</p></dd>
+<dt> <strong>kx, ky, kz, ka</strong></dt>
+<dd><p>Give kurtosis in x-, y-, z-direction or data kurtosis value.
+</p></dd>
+</dl>
+
+<hr size="6">
+<a name="Utilities"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Suffixes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Utilities-for-parsing-MGL"></a>
+<h2 class="section">1.27 Utilities for parsing MGL</h2>
+
+<p>MathGL library provides several tools for parsing MGL scripts. There is tools saving it to bitmap (<code>mgl2png</code>, <code>mgl2gif</code>) or vectorial (<code>mgl2eps</code>, <code>mgl2svg</code>) images. Tool <code>mglview</code> show MGL script and allow to rotate and setup the image. Also you can translate MGL script to C++ file by help of <code>mgl2cpp</code> tool.
+</p>
+<p>All of this tools have similar set of arguments. First argument is name of script file, next argument is optional output file name, last arguments are options. There are options for setting script parameters (it is <code>$0, $1, ... $9</code>) and locale settings. The script parameters have format &lsquo;<samp>-Nval</samp>&rsquo;. Here N=0,1...9 is parameter ID and val is its value. For example, option &lsquo;<samp>-1test</samp>&rsquo; set to substitute &lsquo;<samp>test</samp>&rsquo; instead of <code>$1</code> in the script. Option -Lval set locale to val. For example, &lsquo;<samp>-Lutf8</samp>&rsquo; will set UTF-8 locale for script.
+</p>
+<p>Additionally you can create animated GIF file or a set of JPEG files with names &lsquo;<samp>frameNNNN.jpg</samp>&rsquo; (here &lsquo;<samp>NNNN</samp>&rsquo; is frame index). You should use <code>mgl2gif</code> tool and specify the values of <code>$0</code> parameter for making animation. Values of the parameter <code>$0</code> can be specified inside the script by comment <code>##a val</code> for each value <code>val</code> (one comment for one value) or by option(s) &lsquo;<samp>-Aval</samp>&rsquo;. Also you can specify a cycle for animation by comment <code>##c v1 v2 dv</code> or by option <code>-Cn1:n2</code>. Tool <code>mgl2gif</code> will execute script several times (once for each specified value of <code>$0</code>) and save result in animated GIF file. For saving each frame in JPEG just add command <code>write ''</code> at the end of the script.
+</p>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_2.html b/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_2.html
new file mode 100644
index 0000000..2e91670
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_2.html
@@ -0,0 +1,1298 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: 2. MathGL examples</title>
+
+<meta name="description" content="MGL script language for version 1.11: 2. MathGL examples">
+<meta name="keywords" content="MGL script language for version 1.11: 2. MathGL examples">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Examples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_1.html#Utilities" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en_1.html#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL-examples"></a>
+<h1 class="chapter">2. MathGL examples</h1>
+
+<p>This chapter contain information about basic and advanced MathGL, hints and samples for all types of graphics. I recommend you read first 2 sections one after another and at least look on &ldquo;Hints&rdquo; section. Also I recommend you to look at <a href="mgl_en_1.html#General-concepts">General concepts</a>. Sample code for some of these examples can be found in <a href="http://mathgl.sf.net/pictures.html">http://mathgl.sf.net/pictures.html</a> and in <a href="mgl_en_3.html#Samples">Samples</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Basic-usage">2.1 Basic usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Advanced-usage">2.2 Advanced usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-handling">2.3 Data handling</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-plotting">2.4 Data plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Hints">2.5 Hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Basic-usage"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Examples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Basic-usage-1"></a>
+<h2 class="section">2.1 Basic usage</h2>
+
+<p>MGL script can be used by several manners. Each has positive and negative sides:
+</p><ul>
+<li>
+<em>The using of MGL in UDAV.</em>
+
+<p>Positive side is the possibility to view the plot at once and to modify it, rotate, zoom or switch on transparency or lighting) by hand or by mouse. Negative sides are: the need of X-terminal.
+</p>
+</li><li>
+<em>Direct writing to file in bitmap or vector format without creation of graphical window.</em>
+
+<p>Positive aspects are: batch processing of similar data set, for example, a set of resulting data files for different calculation parameters), running from the console program, including the cluster calculation), fast and automated drawing, saving pictures for further analysis, or demonstration). Negative sides are: the usage of the external program for picture viewing. Also, the data plotting is non-visual. So, you have to imagine the picture, view angles, lighting and so on) before the plotting. I recommend to use graphical window for determining the optimal parameters of plotting on the base of some typical data set. And later use these parameters for batch processing in console program.
+</p>
+<p>In this case you can use a set of programs: <code>mgl2png</code>, <code>mgl2gif</code>, <code>mgl2eps</code>, <code>mgl2svg</code> or <code>mglview</code> for viewing.
+</p></li></ul>
+
+<p>The simplest script is
+</p><pre class="verbatim">box         # draw bounding box
+axis        # draw axis
+fplot 'x^3' # draw some function
+</pre>
+<p>Just type it in UDAV and press F5. Also you can save it in text file &lsquo;<samp>test.mgl</samp>&rsquo; and type in the console <code>mgl2png test.mgl</code> what produce file &lsquo;<samp>test.mgl.png</samp>&rsquo; with resulting picture.
+</p>
+<hr size="6">
+<a name="Advanced-usage"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Basic-usage" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Subplots" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Advanced-usage-1"></a>
+<h2 class="section">2.2 Advanced usage</h2>
+
+<p>Now I show several non-obvious features of MGL: several subplots in a single picture, curvilinear coordinates, text printing and so on. Generally you may miss this section at first reading, but I don&rsquo;t recommend it.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Subplots">2.2.1 Subplots</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-grids">2.2.2 Axis and grids</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Curvilinear-coordinates">2.2.3 Curvilinear coordinates</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing-example">2.2.4 Text printing example</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Subplots"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Advanced-usage" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-grids" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Subplots-1"></a>
+<h3 class="subsection">2.2.1 Subplots</h3>
+
+<p>Let me demonstrate possibilities of axes transformation. MathGL has the following functions: <code>SubPlot</code>, <code>InPlot</code>, <code>Aspect</code> and <code>Rotate</code>, see section <a href="mgl_en_1.html#Transformation-matrix">Transformation matrix</a>). The order of their calling is strictly determined. First, one changes the position of axes in image area, functions <code>SubPlot</code> and <code>InPlot</code>). After that one may rotate the plot, function <code>Rotate</code>). Finally, one may change aspects of axes, function <code>Aspect</code>). The following code illustrates the aforesaid it:
+</p><pre class="verbatim">subplot 2 2 0:box
+text -1 1.1 'Just box' 'L'
+inplot 0.2 0.5 0.7 1:box
+text 0 1.2 'Inplot example'
+
+subplot 2 2 1
+rotate 60 40:aspect 1 1 1
+box:text 1 1 1.5 'rotate only' 'R'
+
+subplot 2 2 2
+rotate 60 40:aspect 1 1 2
+box:text 0 0 2 'aspect and rotate'
+
+subplot 2 2 3
+rotate 60 40:aspect 1 2 2
+box:text 0 0 1.5 'Aspect in other direction'
+</pre><p>Here I used function <code>text</code> for printing the text in arbitrary position of picture, see section <a href="mgl_en_1.html#Text-printing">Text printing</a>). Text coordinates and size are connected with axes. However, text coordinates may be everywhere, including the outside the bounding box. I shall show its features later in See section <a href="#Text-printing-example">Text printing example</a>.
+</p>
+<p>Note that several commands can be placed in a string if they are separated by &lsquo;<samp>:</samp>&rsquo; symbol.
+</p>
+<div class="float">
+<img src="../png/sample1.png" alt="../png/sample1">
+
+</div><p><strong>Example of several subplots on the single picture.
+</strong>
+</p>
+<hr size="6">
+<a name="Axis-and-grids"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Subplots" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Curvilinear-coordinates" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-and-grids-1"></a>
+<h3 class="subsection">2.2.2 Axis and grids</h3>
+
+<p>MathGL library can draw not only the bounding box but also the axes, grids, labels and so on. The limits of axes and their origin (the point of intersection) are determined by function <code>axis</code>. Also you can use <code>xrange, yrange, zrange</code> functions (see section <a href="mgl_en_1.html#Axis-settings">Axis settings</a>). Ticks on axis are specified by functions <code>xtick, ytick, ztick, ttick</code>. First argument the direction for each change will be applied. Second argument gives the step between ticks (if positive) or gives the number of ticks on the axis (if negative) or set to use logarithmic ticks (if zero). Third argument gives numbers of sub-ticks between ticks (default is zero). Last argument define the initial ticks position.
+</p>
+<p>Function <code>Axis</code> draws axes. Its textual string shows in which directions the axis or axes will be drawn (by default <code>'xyz'</code>, function draws axes in all directions). Function <code>Grid</code> draws grid perpendicularly to specified directions. Example of axes and grid drawing is:
+</p><pre class="verbatim">subplot 2 2 0
+xtick 0.4 3     # sets tick step to 0.5
+ytick 0.4 3     # and draws 3 subticks
+box             # should be after the ticks change
+axis 'xy': grid
+text 0 1.3 1 'axis and grid'
+
+xtick -5: ytick -5  # restore back
+subplot 2 2 1:rotate 60 40
+origin 0 0 0
+axis
+xlabel 'x' 1
+ylabel 'y' 1
+zlabel 'z' 1
+text 0 0 1.5 'axis and labels'
+
+subplot 2 2 2:rotate 60 40
+xtick 0.2: ytick 0.2: ztick 0.2 # too low step of ticks
+origin -1 -1 -1
+axis:grid
+text 0 0 1.5 'shift origin and add grid'
+text 0 0 1.2 '(note, too many ticks)'
+
+subplot 2 2 3:rotate 60 40
+xtick -6: ytick -6  # decrease the number of ticks
+axis 'yz'
+ylabel 'y axis'
+zlabel 'z axis'
+text 0 0 1.5 'remove x axis, and'
+text 0 0 1.2 'decrease number of ticks'
+</pre>
+<p>This example shows the importance of the correct choosing of the number of ticks on axis. If tick step is too small then its text may overlap and becomes unreadable. This code has the example of <code>Label</code> function. It draws label for axis in specified direction. The text position on axis is specified by third argument of <code>Label</code> function. If it is positive then then text is drawn near the axis maximum, if negative then the same takes place near the minimum of axis, if zero - then at the center of axis.
+</p>
+<div class="float">
+<img src="../png/sample2.png" alt="../png/sample2">
+
+</div><p><strong>Example of setting up axis range and axis ticks.
+</strong>
+</p>
+<hr size="6">
+<a name="Curvilinear-coordinates"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-grids" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing-example" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Curvilinear-coordinates-1"></a>
+<h3 class="subsection">2.2.3 Curvilinear coordinates</h3>
+
+
+<p>Now let use curvilinear coordinates. In difference from other systems of plot creation, MathGL uses textual formulas for connection of the old (data) and new (output) coordinates. This allows one to plot in arbitrary coordinates. The following code plots the line <var>y</var>=0, <var>z</var>=0 in Cartesian, polar, parabolic and spiral coordinates:
+</p><pre class="verbatim">new x 50: new y 50: new z 50
+fill y 0.5 0.5: fill x -1 1 # creates data arrays
+origin -1 1 -1
+
+subplot 2 2 0:rotate 60 40
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'cartesian'
+
+subplot 2 2 1:rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'cylindrical'
+
+subplot 2 2 2:rotate 60 40
+axis '2*y*x' 'y*y - x*x' ''
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'parabolic'
+
+subplot 2 2 3:rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'spiral'
+</pre>
+<div class="float">
+<img src="../png/sample3.png" alt="../png/sample3">
+
+</div><p><strong>Example of curvilinear coordinates
+</strong>
+</p>
+
+<hr size="6">
+<a name="Text-printing-example"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Curvilinear-coordinates" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-printing-example-1"></a>
+<h3 class="subsection">2.2.4 Text printing example</h3>
+
+<p>MathGL prints text by vector font. There are functions for manual specifying of text position (like <code>Puts</code>) and for its automatic selection (like <code>Label</code>, <code>legend</code> and so on). MathGL prints text always in specified position even if it lies outside the bounding box. The default size of font is specified by command <var>fontsize</var>. However, the actual size of output string depends on position of axes (depends on functions <code>SubPlot</code>, <code>InPlot</code>). The switching of the font style (italic, bold, wire and so on) can be done for the whole string (by function parameter) or inside the string. By default MathGL parses TeX-like commands for symbols and indexes (see see section <a href="mgl_en_1.html#Font-styles">Font styles</a>). Example of MathGL font drawing is:
+</p><pre class="verbatim">text 0 1 'Text can be in ASCII and in Unicode'
+text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
+text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
+text 0 -0.2 'Easy to \a{overline} or \u{underline}'
+text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
+text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
+</pre>
+<div class="float">
+<img src="../png/sample4.png" alt="../png/sample4">
+
+</div><p><strong>Example of text printing with different font effects
+</strong>
+</p>
+<p>Another example demonstrate the features of TeX formula parsing.
+</p><pre class="verbatim">text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}', 0, -4
+</pre>
+<div class="float">
+<img src="../png/samplee.png" alt="../png/samplee">
+
+</div><p><strong>Example of TeX formula parsing
+</strong>
+</p>
+
+<hr size="6">
+<a name="Data-handling"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing-example" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Array-creation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-handling-1"></a>
+<h2 class="section">2.3 Data handling</h2>
+
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Array-creation">2.3.1 Array creation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-changing">2.3.2 Data changing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Array-creation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-handling" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-changing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Array-creation-1"></a>
+<h3 class="subsection">2.3.1 Array creation</h3>
+
+<p>One can put numbers into the data instance by several ways. Let us do it for sinus function:
+</p><ul>
+<li>
+one can create array by <code>list</code> command
+<pre class="verbatim">list a 0 0.04 0.16 0.36 0.64 1
+</pre>
+</li><li>
+another way is to copy from &ldquo;inline&rdquo; array
+<pre class="verbatim">copy a [0,0.04,0.16,0.36,0.64,1]
+</pre>
+</li><li>
+next way is to fill the data by textual formula with the help of <code>modify</code> function
+<pre class="verbatim">new a 6
+modify a 'x^2'
+</pre>
+</li><li>
+or one may fill the array in some interval and modify it later
+<pre class="verbatim">new a 6
+fill a 0 1
+modify a 'u^2'
+</pre>
+</li><li>
+or fill the array using current axis range
+<pre class="verbatim">new a 6
+fill a '(x+1)^2/4'
+</pre>
+</li><li>
+finally it can be loaded from file
+<pre class="verbatim">new s 6: modify s 'x^2'
+save s 'sqr.dat'    # create file first
+read a 'sqr.dat'    # load it
+</pre>
+</li><li>
+at this one can read only part of data
+<pre class="verbatim">new s 6: modify s 'x^2'
+save s 'sqr.dat'    # create file first
+read a 'sqr.dat' 5  # load it
+</pre></li></ul>
+
+<p>Creation of 2d- and 3d-arrays is mostly the same. One can use direct data filling by <code>list</code> command
+</p><pre class="verbatim">list a 11 12 13 | 21 22 23 | 31 32 33
+</pre><p>or by inline arrays
+</p><pre class="verbatim">copy a [[11,12,13],[21,22,23],[31,32,33]]
+</pre><p>Also data can be filled by formula
+</p><pre class="verbatim">new z 30 40
+fill z 'sin(pi*x)*cos(pi*y)'
+</pre><p>or loaded from file.
+</p>
+<p>The only non-obvious thing here is using multidimensional arrays in C/C++, i.e. arrays defined like <code>float dat[40][30];</code>. Since, formaly this arrays element <code>dat[i]</code> can address the memory in arbitrary place you should use the proper function to convert such arrays to <code>mglData</code> object. For C++ this is functions like <code>mglData::Set(float **dat, int N1, int N2</code>. For C this is functions like <code>mgl_data_set_float2(HMDT d, const float **dat, int N1, int N2</code>. At this, you should keep in mind that <code>nx=N2</code> and <code>ny=N1</code> after conversion.
+</p>
+<hr size="6">
+<a name="Data-changing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Array-creation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-changing-1"></a>
+<h3 class="subsection">2.3.2 Data changing</h3>
+
+<p>MathGL has functions for data processing: differentiating, integrating, smoothing and so on. Let us consider some examples. The simplest ones are integration and differentiation. The direction in which operation will be performed is specified by textual string, which may contain symbols &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo;. For example, the call of <code>diff a 'x'</code> will differentiate data along &lsquo;<samp>x</samp>&rsquo; direction; the call of <code>integrate a 'xy'</code> perform the double integration of data along &lsquo;<samp>x</samp>&rsquo; and &lsquo;<samp>y</samp>&rsquo; directions; the call of <code>diff2 a 'xyz'</code> will apply 3d Laplace operator to data and so on. Example of this operations on 2d array a=x*y is presented in code:
+</p><pre class="verbatim">new a 30 40: modify a 'x*y'
+axis 0 0 0 1 1 1
+subplot 2 2 0:rotate 60 40
+surf a: box
+text 0.7 1 1.2 'a(x,y)'
+subplot 2 2 1:rotate 60 40
+diff a 'x': surf a: box
+text 0.7 1 1.2 'da/dx'
+subplot 2 2 2:rotate 60 40
+integrate a 'xy': surf a: box
+text 0.7 1 1.2 '\int da/dx dxdy'
+subplot 2 2 3:rotate 60 40
+diff2 a 'y': surf a: box
+text 0.7 1 1.2 '\int {d^2}a/dxdy dx'
+</pre>
+<div class="float">
+<img src="../png/sample6.png" alt="../png/sample6">
+
+</div><p><strong>Example of data differentiation and integration
+</strong>
+</p>
+<p>Data smoothing (function <code>Smooth</code>) is more interesting and important. This function has 2 main arguments: type of smoothing and its direction. Now 4 methods are supported: <code>0</code> does nothing for delta=0 or approaches data to zero with the step delta, <code>1</code> linear averaging by 3 points, <code>2</code> linear averaging by 5 points, <code>3</code> quadratic averaging by 5 points. Let me demonstrate it for 1d case:
+</p><pre class="verbatim">new y0 30
+modify y0 '0.4*sin(2*pi*x)+0.3*cos(3*pi*x)-0.4*sin(4*pi*x)+0.2*rnd'
+copy y1 y0: smooth y1 1
+copy y2 y0: smooth y2 2
+copy y3 y0: smooth y3 3
+
+plot y0 'k': addlegend 'none' 'k'
+plot y1 'r': addlegend 'line 3' 'r'
+plot y2 'g': addlegend 'line 5' 'g'
+plot y3 'b': addlegend 'quad 5' 'b'
+legend: box
+</pre>
+<div class="float">
+<img src="../png/sample7.png" alt="../png/sample7">
+
+</div><p><strong>Example of data smoothing
+</strong>
+</p>
+<p>Finally one can create new data arrays on base of the existing one: extract slice, row or column of data (<code>SubData</code>), summarize along some of direction(s) (<code>Sum</code>), find distribution of data elements (<code>Hist</code>). Note, that all these functions are not thread-safe because they use static internal variable for output array. In particular, the using of several of them in arguments of the same function will lead to unpredictable result.
+</p>
+<hr size="6">
+<a name="Data-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-changing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-1D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-plotting-1"></a>
+<h2 class="section">2.4 Data plotting</h2>
+
+<p>Let me now show how to plot the data. MathGL generally has 2 types of plotting functions. Simple variant requires a single data array for plotting, other data (coordinates) are considered uniformly distributed in interval <var>Min</var>*<var>Max</var>. Second variant requires data arrays for all coordinates. It allows one to plot rather complex multivalent curves and surfaces (in case of parametric dependencies). Argument setting to default values allows one to plot data in standard form. Manual arguments setting gives possibility for fine tuning of colors, positions and view of graphics. Note, that the call of drawing function adds something to picture but does not clear the previous plots (as it does in Matlab). Another difference from Matlab is that all setup (like transparency, lightning, axis borders and so on) must be specified <strong>before</strong> plotting functions.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plots-for-1D-data">2.4.1 Plots for 1D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-for-2D-data">2.4.2 Plots for 2D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-for-3D-data">2.4.3 Plots for 3D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surface-transparency">2.4.4 Surface transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Plots-for-1D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-2D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-1D-data-1"></a>
+<h3 class="subsection">2.4.1 Plots for 1D data</h3>
+
+<p>Term &ldquo;1D data&rdquo; means that data depend on single index (parameter) like curve in parametric form {x(i),y(i),z(i)}, i=1...n. There are 5 generally different types of data representations: simple line plot, line plot with filling under it, stairs plot, bar plot and vertical lines (see section <a href="mgl_en_1.html#g_t1D-plotting">1D plotting</a>). Each type of plotting has similar interface. There are 3D version and two 2D versions. One of last requires single array. The parameters of line and marks (see section <a href="mgl_en_1.html#Line-styles">Line styles</a>) are specified by the string argument. If the string parameter is <code>NULL</code> then solid line with color from palette is used.
+</p>
+<p>Below I shall show the features of 1D plotting on base of <code>plot</code> function (see section <a href="mgl_en_1.html#g_t1D-plotting">1D plotting</a>). Let us start from sinus plot:
+</p><pre class="verbatim">new y0 50: modify y0 'sin(pi*(2*x-1))'
+subplot 2 2 0
+plot y0: box
+</pre><p>Style of line is not specified in <code>plot</code> function. So MathGL uses the solid line with first color of palette (this is blue). Next subplot shows array <var>y1</var> with 2 rows:
+</p><pre class="verbatim">subplot 2 2 1
+new y1 50 2
+modify y1 'sin(pi*2*x-pi)'
+modify y1 'cos(pi*2*x-pi)/2' 1
+plot y1: box
+</pre><p>As previously I did not specify the style of lines. As a result, MathGL again uses solid line with next colors in palette (there are green and red). Now let us plot a circle on the same subplot. The circle is parametric curve <em>x=cos(\pi t), y=sin(\pi t)</em>. I will set the color of the circle (dark yellow, &lsquo;<samp>Y</samp>&rsquo;) and put marks &lsquo;<samp>+</samp>&rsquo; at point position:
+</p><pre class="verbatim">new x 50: modify x 'cos(pi*2*x-pi)'
+plot x y0 'Y+'
+</pre><p>Note that solid line is used because I did not specify the type of line. The same picture can be achieved by <code>Plot2</code> function. Let us draw ellipse by orange dash line:
+</p><pre class="verbatim">plot y1(:,0) y(:,1) 'q|'
+</pre>
+<p>Drawing in 3D space is mostly the same. Let us draw spiral with default line style. Now its color is 4-th color from palette (this is cyan):
+</p><pre class="verbatim">subplot 2 2 2:rotate 60 40
+new z 50: modify z '2*x-1'
+plot x y0 z:box
+</pre><p>Function <code>Plot3</code> does 3D curve plot but for single array. Use it to put circle marks on the previous plot:
+</p><pre class="verbatim">new y2 10 3:modify y2 'cos(pi*(2*x-1+y))'
+modify y2 '2*x-1' 2
+plot y2(:,0) y2(:,1) y2(:,2) 'bo '
+</pre><p>Note that line style is empty &lsquo;<samp> </samp>&rsquo; here. Usage of other 1D plotting functions looks similar:
+</p><pre class="verbatim">subplot 2 2 3:rotate 60 40
+bars x y0 z 'r':box
+</pre>
+<div class="float">
+<img src="../png/sample8.png" alt="../png/sample8">
+
+</div><p><strong>Example of 1D data plot
+</strong>
+</p>
+<hr size="6">
+<a name="Plots-for-2D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-1D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-3D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-2D-data-1"></a>
+<h3 class="subsection">2.4.2 Plots for 2D data</h3>
+
+<p>Surfaces <code>Surf</code> and other 2D plots (see section <a href="mgl_en_1.html#g_t2D-plotting">2D plotting</a>) are drown the same simpler as 1D one. The difference is that the string parameter specifies not by line style but by the color scheme of the plot (see section <a href="mgl_en_1.html#Color-scheme">Color scheme</a>). Here I draw attention on 4 most interesting color schemes. There is gray scheme where color is changed from black to white (string &lsquo;<samp>kw</samp>&rsquo;) or from white to black (string &lsquo;<samp>wk</samp>&rsquo;). Another scheme is useful for accentuation of negative (by blue color) and positive (by red color) regions on plot (string &lsquo;<samp>'BbwrR'</samp>&rsquo;). Last one is the popular &ldquo;jet&rdquo; scheme (string &lsquo;<samp>'BbcyrR'</samp>&rsquo;).
+</p>
+<p>Now I shall show the example of a surface drawing. At first let us switch lightning on
+</p><pre class="verbatim">light on: light 0 0 0 1
+</pre><p>and draw the surface, considering coordinates x,y to be uniformly distributed in interval <var>Min</var>*<var>Max</var>
+</p><pre class="verbatim">new a0 50 40
+modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+subplot 2 2 0:rotate 60 40
+surf a0: box
+</pre><p>Color scheme was not specified. So previous color scheme is used. In this case it is default color scheme (&ldquo;jet&rdquo;) for the first plot. Next example is a sphere. The sphere is parametrically specified surface:
+</p><pre class="verbatim">new x 50 40: new y 50 40: new z 50 40
+modify x '0.8*sin(2*pi*x)*sin(pi*y)'
+modify y '0.8*cos(2*pi*x)*sin(pi*y)'
+modify z '0.8*cos(pi*y)'
+subplot 2 2 1:rotate 60 40
+surf x y z 'bbwrr': box
+</pre><p>I set color scheme to <code>'BbwrR'</code> that corresponds to red top and blue bottom of the sphere.
+</p>
+<p>Surfaces will be plotted for each of slice of the data if <var>nz</var>&gt;1. Next example draws surfaces for data arrays with <var>nz</var>=3:
+</p><pre class="verbatim">new a1 50 40 3
+modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
+subplot 2 2 2:rotate 60 40
+alpha on
+surf a1: box
+</pre><p>Note, that it may entail a confusion. However, if one will use density plot then the picture will look better:
+</p><pre class="verbatim">subplot 2 2 3: rotate 60 40
+dens a1: box
+</pre><p>Note, that the previous color scheme is used in last plots because there are no direct specification of the one.
+</p>
+<div class="float">
+<img src="../png/sample9.png" alt="../png/sample9">
+
+</div><p><strong>Example of surface plot for 2D data
+</strong>
+</p>
+<p>Drawing of other 2D plots is analogous. The only peculiarity is the usage of flag &lsquo;<samp>#</samp>&rsquo;. By default this flag switches on the drawing of a grid on plot (<code>grid</code> or <code>mesh</code> for plots in plain or in volume). However, for isosurfaces (including surfaces of rotation <code>axial</code>) this flag switches the  face drawing off. Figure becomes wired. The following code gives example of flag &lsquo;<samp>#</samp>&rsquo; using (compare with normal function drawing as in its description):
+</p><pre class="verbatim">alpha on: light on: light 0 0 0 1
+new a 30 20
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+subplot 2 2 0: rotate 40 60
+surf a 'bbcyrr#': box
+subplot 2 2 1: rotate 40 60
+dens a 'bbcyrr#': box
+subplot 2 2 2: rotate 40 60
+cont a 'bbcyrr#': box
+subplot 2 2 3: rotate 40 60
+axial a 'bbcyrr#': box
+</pre>
+<div class="float">
+<img src="../png/samplea.png" alt="../png/samplea">
+
+</div><p><strong>Example of 2D data plot with color scheme contained &lsquo;<samp>#</samp>&rsquo; symbol
+</strong>
+</p>
+<hr size="6">
+<a name="Plots-for-3D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-2D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surface-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-3D-data-1"></a>
+<h3 class="subsection">2.4.3 Plots for 3D data</h3>
+
+<p>Drawing procedures for 3D plot looks similarly to 1D and 2D plots described above. There are 3 general types of 3D plots (see section <a href="mgl_en_1.html#g_t3D-plotting">3D plotting</a>): (i) plots on slices or on projections, (ii) isosurfaces, (iii) cloud-like plots. Plots on slice are clear enough &ndash; one specifies a slice (as its index or as coordinate value) and MathGL draws contour lines or density plot on slice plane. Isosurface gives more information. Isosurface is 3D analogue of the contour line <code>cont</code>. It shows the region where data array values exceed specified isosurface level. Plot becomes more informative if one adds transparency, lightning or sets color scheme depending on coordinates. Generalization of isosurface is the cloud-like plot. For this plot the darker color and less transparent regions correspond to higher values of data. Contrary, the regions with low values are transparent. For plotting of the phase of fields (or beams or pulses) one can use isosurface which transparency depends on the other data array (see function <code>surf3a</code>). As example of 3D data plots let us draw the Gaussian beam diffraction in space. Beam propagates along <var>x</var> axis:
+</p><pre class="verbatim">alpha on: light on
+light 0 0 0 1
+new a 30 30 30: new b 30 30 30
+modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
+modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
+caxis 0 1
+
+subplot 2 2 0: rotate 40 60
+surf3 a 'wgk': box
+subplot 2 2 1: rotate 40 60
+densa a: box: axis
+subplot 2 2 2: rotate 40 60
+cloud a: box
+subplot 2 2 3: rotate 40 60
+surf3a b a 'q': box
+</pre>
+<div class="float">
+<img src="../png/sampleb.png" alt="../png/sampleb">
+
+</div><p><strong>Example of Gaussian beam diffraction (3D data)
+</strong>
+</p>
+
+<hr size="6">
+<a name="Surface-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-3D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surface-transparency-1"></a>
+<h3 class="subsection">2.4.4 Surface transparency</h3>
+
+<p>MathGL library has advanced features for setting and handling the surface transparency. The simplest way to add transparency is the using of function <code>Alpha</code>. As a result, all further surfaces (and isosurfaces, density plots and so on) become transparent. However, their  look can be additionally improved.
+</p>
+<p>First, the selected surface will be non-transparent if one sets the flag <code>transparent</code> before the surface drawing and sets it off after the drawing.
+</p>
+<p>Second, the value of transparency can be different from surface to surface. To do it just change the value of <code>alphadef</code> before the drawing of the selected surface. If its value is close to 0 then the surface becomes more and more transparent. Contrary, if its value is close to 1 then the surface becomes practically non-transparent. This is some analogue of <code>transparent on</code>.
+</p>
+<p>Third feature is the changing of the way how the light goes through overlapped surfaces. The variable <code>transptype</code> defines it. By default the usual transparency is used (<code>transptype 0</code>) &ndash; surfaces below is less visible than the upper ones. A &ldquo;glass-like&rdquo; transparency (<code>transptype 1</code>) has a different look when the surface just decreases the background light (the surfaces are commutable in this case).
+</p>
+<p>A &ldquo;neon-like&rdquo; transparency (<code>transptype 2</code>) has more interesting look. In this case a surface is the light source (like a lamp on the dark background) and just adds some intensity to the color. At this, the library sets automatically the black color for the background and changes the default line color to white.
+</p>
+<p>As example I shall show the variant of plot from <a href="#Plots-for-2D-data">Plots for 2D data</a> (grid drawing is disabled) for different types of transparency.
+</p><div class="float">
+<img src="../png/type0.png" alt="../png/type0">
+
+</div><p><strong>Example of <code>TranspType=0</code>.
+</strong>
+</p><div class="float">
+<img src="../png/type1.png" alt="../png/type1">
+
+</div><p><strong>Example of <code>TranspType=1</code>.
+</strong>
+</p><div class="float">
+<img src="../png/type2.png" alt="../png/type2">
+
+</div><p><strong>Example of <code>TranspType=2</code>.
+</strong>
+</p>
+
+
+<hr size="6">
+<a name="Hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surface-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t_0060_0060Compound_0027_0027-graphics" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Hints-1"></a>
+<h2 class="section">2.5 Hints</h2>
+
+<p>In this section I have included some small hints and advices for the improving of the quality of plots and for the demonstration of some non-trivial features of MathGL library. In contrast to previous examples I showed mostly the idea but not the whole drawing function. More examples with the source code can be find at <a href="http://mathgl.sf.net/">http://mathgl.sf.net/</a> or in section <a href="mgl_en_3.html#Samples">Samples</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t_0060_0060Compound_0027_0027-graphics">2.5.1 &ldquo;Compound&rdquo; graphics</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Two-axes-in-one-plot">2.5.2 Two axes in one plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Titles-for-the-plot">2.5.3 Titles for the plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Changing-of-the-color-range">2.5.4 Changing of the color range</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Management-of-a-point-cutting">2.5.5 Management of a point cutting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-field-visualization">2.5.6 Vector field visualization</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Several-light-sources">2.5.7 Several light sources</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutMin-and-CutMax-features">2.5.8 CutMin and CutMax features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mapping-visualization">2.5.9 Mapping visualization</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Log_002dscaled-plot">2.5.10 Log-scaled plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting-hints">2.5.11 Nonlinear fitting hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#PDE-solving-hints">2.5.12 PDE solving hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stereo-image">2.5.13 Stereo image</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="g_t_0060_0060Compound_0027_0027-graphics"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Two-axes-in-one-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Compound_0027_0027-graphics-1"></a>
+<h3 class="subsection">2.5.1 &ldquo;Compound&rdquo; graphics</h3>
+
+<p>As I noted above, MathGL functions (except the special one, like <code>clf</code>) do  not erase the previous plotting but just add the new one. It allows one to draw &ldquo;compound&rdquo; plots easily. For example, popular Matlab command <code>surfc</code> can be emulated in MathGL by 2 calls:
+</p><pre class="verbatim">surf a
+cont a 0 7 -1   # draw contours at z = -1
+</pre><p>Here <var>a</var> is 2-dimensional data for the plotting, <code>-1</code> is the value of z-coordinate at which the contour should be plotted (at the bottom in this example). Analogously, one can draw density plot instead of contour lines and so on.
+</p>
+<p>Another nice plot is contour lines plotted directly on the surface:
+</p><pre class="verbatim">light on        # switch on light for the surface
+surf a 'bbcyrr' # select 'jet' colormap for the surface
+cont a 'y'      # and yellow color for contours
+</pre><p>The possible difficulties arise in black&amp;white case, when the color of the surface can be close to the color of a contour line. In that case I may suggest the following code:
+</p><pre class="verbatim">light on        # switch on light for the surface
+surf a 'kw'     # select 'gray' colormap for the surface
+caxis -1 0      # first draw for darker surface colors
+conta 'w'       # white contours
+caxis 0 1       # now draw for brighter surface colors
+cont a 'k'      # black contours
+</pre><p>The idea is to divide the color range on 2 parts (dark and bright) and to select the contrasting color for contour lines for each of part.
+</p>
+<p>Similarly, one can plot flow thread over density plot of vector field amplitude (this is another amusing plot from Matlab) and so on. The list of compound graphics can be prolonged but I hope that the general idea is clear.
+</p>
+<hr size="6">
+<a name="Two-axes-in-one-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t_0060_0060Compound_0027_0027-graphics" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Titles-for-the-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Two-axes-in-one-plot-1"></a>
+<h3 class="subsection">2.5.2 Two axes in one plot</h3>
+
+<p>Developing the previous hint one can make a plot with 2 or more axes. The idea is that the change of settings does not influence on the already drawn graphics. So, for 2-axes plot let us set the first axis and draw everything concerning it. Then let us setup the second axis and draw things for the second axis. The corresponding code is (see section <a href="mgl_en_3.html#g_t2_002daxes-sample">2-axes sample</a>):
+</p><pre class="verbatim"># set up first axis
+axis -1 -1 1 1: origin -1 -1
+axis:fplot 'sin(pi*x)'      # draw something in first axis
+# set up second axis
+axis 0 0 1 1: origin 1 1
+axis: fplot 'cos(4*pi*x^2)' # draw something in second axis
+</pre><p>Note, that the first and the second axes look better if being placed in different corners. In the code presented above the first axis is placed in the left-bottom corner, and the second one is placed in the right-top corner.
+</p>
+<hr size="6">
+<a name="Titles-for-the-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Two-axes-in-one-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Changing-of-the-color-range" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Titles-for-the-plot-1"></a>
+<h3 class="subsection">2.5.3 Titles for the plot</h3>
+
+<p>The printing of nice titles for the plot is not so trivial task in general case. The problem is that the rotation and aspect change lead to different looks for titles of different subplots. So, the resulting look is not so good as it could be. The solution is simple &ndash; to print titles exactly after <code>subplot</code> call and before any rotation, aspect change and so on! Analogously, the title for the whole picture looks better if it is printed first (before any <code>subplot</code> calls). Alternatively you can use function <code>title</code> for plotting title for the picture at any time.
+</p>
+<hr size="6">
+<a name="Changing-of-the-color-range"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Titles-for-the-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Management-of-a-point-cutting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Changing-of-the-color-range-1"></a>
+<h3 class="subsection">2.5.4 Changing of the color range</h3>
+
+<p>By default (for the user comfort), the color range is set equal to z-range of the plot. However, there are different ranges. So, one can obtain amusing plot by the change of color range manually. For example, there are plots with one-color bottom (or top) or practically bi-color picture and so on.
+</p>
+<p>For example, compare 2 surfaces:
+</p><pre class="verbatim">subplot 2 1 0
+surf a          # usual coloring range
+subplot 2 1 1
+caxis 0 1
+surf a          # bottom of the surface have one-colour filling
+</pre>
+<hr size="6">
+<a name="Management-of-a-point-cutting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Changing-of-the-color-range" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-field-visualization" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Management-of-a-point-cutting-1"></a>
+<h3 class="subsection">2.5.5 Management of a point cutting</h3>
+
+<p>Sometimes an experimental or numerical surface has outstanding points. Visualization of such surface will lead to the hole(s) in place of such points. The standard method of &ldquo;fighting&rdquo; &ndash; to change data values &ndash; is not always good and is not so convenient. MathGL library has another method &ndash; to set variable <code>cut off</code>. As a consequence, all outstanding points will be projected on the bounding box.
+</p>
+<p>Such method is good not only for outstanding points but also for the case when one need to plane the bottom or the top of the plot. Exactly such case is demonstrated in the code:
+</p><pre class="verbatim">new a 20 30     # create some data
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+# set lower border above the data minimal value
+axis -1 -1 0 1 1 1:rotate 40 60
+cut off         # set off cutting flag
+surf a          # and draw the surface
+</pre><p>It is an interesting result, is not it?
+</p>
+<hr size="6">
+<a name="Vector-field-visualization"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Management-of-a-point-cutting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Several-light-sources" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vector-field-visualization-1"></a>
+<h3 class="subsection">2.5.6 Vector field visualization</h3>
+
+<p>Vector field visualization (especially in 3d case <code>vect3</code> or <code>vectc</code>) may look tangly &ndash; there are too many overlapping lines. I may suggest 2 ways to solve this problem. The first one is to change <code>meshnum</code> for decreasing the number of hachures. The second way is to use the flow thread chart <code>Flow</code>. Unfortunately, I don&rsquo;t know any other methods to visualize 3d vector field. If you know any, e-mail me and I shall add it to MatGL.
+</p>
+<hr size="6">
+<a name="Several-light-sources"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-field-visualization" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutMin-and-CutMax-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Several-light-sources-1"></a>
+<h3 class="subsection">2.5.7 Several light sources</h3>
+
+<p>In contrast to the most of other programs, MathGL supports several (up to 10) light sources. Moreover, the color each of them can be different: white (this is usual), yellow, red, cyan, green and so on. The use of several light sources may be interesting for the highlighting of some peculiarities of the plot or just to make an amusing picture. Note, each light source can be switched on/off individually (see section <a href="mgl_en_3.html#Several-light-sample">Several light sample</a>).
+</p>
+<hr size="6">
+<a name="CutMin-and-CutMax-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Several-light-sources" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mapping-visualization" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutMin-and-CutMax-features-1"></a>
+<h3 class="subsection">2.5.8 CutMin and CutMax features</h3>
+
+<p>MathGL library has a feature for cutting of points in some region <var>CutMin*CutMax</var>. Such an excision can be used to improve the look of the graphics. Moreover, this cutting may help to show an internal structure of an object (like <code>isocaps</code> plot in Matlab). For example, let us use the standard 3D data array and show its interior (see section <a href="mgl_en_3.html#CutMinMax-sample">CutMinMax sample</a>).
+</p>
+<pre class="verbatim">new c 61 51 40      # create the data
+new v 10: fill v -0.5 1
+modify c '(-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1))'
+cut 0 -1 -1 1 0 1.1
+rotate 40 60:       surf3 c -0.5 'bbcyrr'
+contf3 v c 'x' -1 'bbcyrr': contf3 v c 'y' -1 'bbcyrr'
+contf3 v c 'z' 0 'bbcyrr':  contf3 v c 'z' 39 'bbcyrr'
+</pre>
+<p>One can also exclude points from arbitrary area in space. This area defined by textual formula <code>cut</code> (see section <a href="mgl_en_1.html#Cutting">Cutting</a>). The algorithm is the same as shown for &ldquo;rectangular cutting&rdquo;.
+</p>
+<hr size="6">
+<a name="Mapping-visualization"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutMin-and-CutMax-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Log_002dscaled-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mapping-visualization-1"></a>
+<h3 class="subsection">2.5.9 Mapping visualization</h3>
+
+<p>Sometime ago I worked with mapping and have a question about its visualization. Let me remember you that mapping is some transformation rule for one set of number to another one. The 1d mapping is just an ordinary function &ndash; it takes a number and transforms it to another one. The 2d mapping (which I used) is a pair of functions which take 2 numbers and transform them to another 2 ones. Except general plots (like <code>surfc</code>, <code>surfa</code>) there is a special plot &ndash; Arnold diagram. It shows the area which is the result of mapping of some initial area (usually square).
+</p>
+<p>I tried to make such plot in <code>map</code>. It shows the set of points or set of faces, which final position is the result of mapping. At this, the color gives information about their initial position and the height describes Jacobian value of the transformation. Unfortunately, it looks good only for the simplest mapping but for the real multivalent quasi-chaotic mapping it produces a confusion. So, use it if you like :).
+</p>
+<hr size="6">
+<a name="Log_002dscaled-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mapping-visualization" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting-hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Log_002dscaled-plot-1"></a>
+<h3 class="subsection">2.5.10 Log-scaled plot</h3>
+
+<p>Log-scaled plot can be drawn by 2 steps. First, one should change the scale of axis by call <code>axis 'lg(x)' 'lg(y)'</code> (in this example, x- and y-axis will be log-scaled). Second, one should set logarithmic scale for axis ticks by changing variables: <code>xtick 0: yticks 0</code>. Finally, one should check (or change) the axis ranges and origin so that their values to be positive. For example of log-log plot see section <a href="mgl_en_3.html#Log_002dlog-sample">Log-log sample</a>.
+</p>
+<hr size="6">
+<a name="Nonlinear-fitting-hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Log_002dscaled-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#PDE-solving-hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-hints-1"></a>
+<h3 class="subsection">2.5.11 Nonlinear fitting hints</h3>
+
+<p>Nonlinear fitting is rather simple. All that you need is the data to fit, the approximation formula and the list of coefficients to fit (better with its initial guess values). Let me demonstrate it on the following simple example (see section <a href="mgl_en_3.html#Fitting-sample">Fitting sample</a>). First, let us use sin function with some random noise:
+</p><pre class="verbatim">new rnd 100: new idl 50 # data to be fitted and ideal data
+modify rnd '0.4*rnd+0.1+sin(4*pi*x)'
+modify idl '0.3+sin(4*pi*x)'
+</pre><p>and plot it to see that data we will fit
+</p><pre class="verbatim">axis -1 -2 1 2
+plot rnd '. ':plot idl 'b'
+box:text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
+</pre>
+<p>The next step is the fitting itself. For that let me specify an initial values <var>ini</var> for coefficients &lsquo;<samp>abc</samp>&rsquo; and do the fitting for approximation formula &lsquo;<samp>a+b*sin(c*x)</samp>&rsquo;
+</p><pre class="verbatim">new res     # The data for found formula
+fit res rnd 'a+b*sin(c*x)' 'abc' [1, 1, 3]
+</pre><p>Now display it
+</p><pre class="verbatim">plot res 'r'
+text -1 -1.3 'fitted:' 'L:r' -1
+putsfit 0 -1.8 'y = ' 'C:r' -1
+</pre>
+<p>NOTE! the fitting results may have strong dependence on initial values for coefficients due to algorithm features. The problem is that in general case there are several local &rsquo;optimums&rsquo; for coefficients and the program returns only first found one! There are no guaranties that it will be the best. Try for example to set <code>ini = [0, 0, 0]</code> in the code above.
+</p>
+<hr size="6">
+<a name="PDE-solving-hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting-hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stereo-image" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="PDE-solving-hints-1"></a>
+<h3 class="subsection">2.5.12 PDE solving hints</h3>
+
+<p>Solving of Partial Differential Equations (PDE, including beam tracing) and ray tracing (or finding particle trajectory) are more or less common task. So, MathGL have several functions for that. There are <code>ray</code> for ray tracing, <code>pde</code> for PDE solving, <code>qo2d</code> for beam tracing in 2D case. Note, that these functions take &ldquo;Hamiltonian&rdquo; or equations as string values. And I don&rsquo;t plan now to allow one to use user-defined functions. There are 2 reasons: the complexity of corresponding interface; and the basic nature of used methods which are good for samples but may not good for serious scientific calculations.
+</p>
+<p>The ray tracing can be done by <code>ray</code> function. Really ray tracing equation is Hamiltonian equation for 3D space. So, the function can be also used for finding a particle trajectory (i.e. solve Hamiltonian ODE) for 1D, 2D or 3D cases. The function have a set of arguments. First of all, it is Hamiltonian which defined the media (or the equation) you are planning to use. The Hamiltonian is defined by string which may depend on coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, time &lsquo;<samp>t</samp>&rsquo; (for particle dynamics) and momentums &lsquo;<samp>p</samp>&rsquo;=<em>p_x</em>, &lsquo;<samp>q</samp>&rsquo;=<em>p_y</em>, &lsquo;<samp>v</samp>&rsquo;=<em>p_z</em>. Next, you have to define the initial conditions for coordinates and momentums at &lsquo;<samp>t</samp>&rsquo;=0 and set the integrations step (default is 0.1) and its duration (default is 10). The Runge-Kutta method of 4-th order is used for integration.
+</p><pre class="verbatim">new re 128:new im 128
+ray r 'p^2+q^2-x-1' -0.7 -1 0 0 0.5 0
+plot r(0) r(1)
+</pre><p>This example calculate the reflection from linear layer (media with Hamiltonian &lsquo;<samp>p^2+q^2-x-1</samp>&rsquo;=<em>p_x^2+p_y^2-x-1</em>). This is parabolic curve. The resulting array have 7 columns which contain data for {x,y,z,p,q,v,t}.
+</p>
+<p>The solution of PDE is a bit more complicated. As previous you have to specify the equation as pseudo-differential operator <em>\hat H(x, \nabla)</em> which is called sometime as &ldquo;Hamiltonian&rdquo; (for example, in beam tracing). As previously, it is defined by string which may depend on coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; (but not time!), momentums &lsquo;<samp>p</samp>&rsquo;=<em>(d/dx)/i k_0</em>, &lsquo;<samp>q</samp>&rsquo;=<em>(d/dy)/i k_0</em> and field amplitude &lsquo;<samp>u</samp>&rsquo;=<em>|u|</em>. The evolutionary coordinate is &lsquo;<samp>z</samp>&rsquo; in all cases. So that, the equation look like <em>du/dz = ik_0 H(x,y,\hat p, \hat q, |u|)[u]</em>. Dependence on field amplitude &lsquo;<samp>u</samp>&rsquo;=<em>|u|</em> allows one to solve nonlinear problems too. For example, for nonlinear Shrodinger equation you may set <code>ham='p^2 + q^2 - u^2'</code>. Also you may specify imaginary part for wave absorption, like <code>ham = 'p^2 + i*x*(x&gt;0)'</code>, but only if dependence on variable &lsquo;<samp>i</samp>&rsquo; is linear (i.e. <em>H = Hre+i*Him</em>).
+</p>
+<p>Next step is specifing the initial conditions at &lsquo;<samp>z</samp>&rsquo;=<code>Min.z</code>. The function need 2 arrays for real and for imaginary part. Note, that coordinates x,y,z are supposed to be in specified range [Min, Max]. So, the data arrays should have corresponding scales. Finally, you may set the integration step and paramter k0=<em>k_0</em>. Also keep in mind, that internally the 2 times large box is used (for suppressing numerical reflection from boundaries) and the equation should well defined even in this extended range.
+</p>
+<p>Final comment is concerning the possible form of pseudo-differential operator <em>H</em>. At this moment, simplified form of operator <em>H</em> is supported &ndash; all &ldquo;mixed&rdquo; terms (like &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) are excluded. For example, in 2D case this operator is effectively <em>H = f(p,z) + g(x,z,u)</em>. However commutable combinations (like &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy) are allowed for 3D case. 
+</p>
+<p>So, for example let solve the equation for beam deflected from linear layer and absorbed later. The operator will have the form &lsquo;<samp>'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)'</samp>&rsquo; that correspond to equation <em>ik_0 \partial_z u + \Delta u + x \cdot u + i (x+z)/2 \cdot u = 0</em>. This is typical equation for Electron Cyclotron (EC) absorption in magnetized plasmas. For initial conditions let me select the beam with plane phase front <em>exp(-48*(x+0.7)^2)</em>. The corresponding code looks like this (see section <a href="mgl_en_3.html#PDE-sample">PDE sample</a>):
+</p><pre class="verbatim">new re 128: new im 128
+fill re 'exp(-48*(x+0.7)^2)'
+pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)' re im 0.01, 30
+transpose a 'yxz'
+caxis 0 1
+dens a 'wyrRk'
+</pre>
+<p>The last example is example of beam tracing. Beam tracing equation is special kind of PDE equation written in coordinates accompanied to a ray. Generally this is the same parameters and limitation as for PDE solving but the coordinates are defined by the ray and by parameter of grid width <var>w</var> in direction transverse the ray. So, you don&rsquo;t need to specify the range of coordinates. <strong>BUT</strong> there is limitation. The accompanied coordinates are well defined only for smooth enough rays, i.e. then the ray curvature <em>K</em> (which is defined as <em>1/K^2 = (|\ddot r|^2 |\dot r|^2 - (\ddot r, \dot r)^2)/|\dot r|^6</em>) is much large then the grid width: <em>K&gt;&gt;w</em>. So, you may receive incorrect results if this condition will be broken.
+</p>
+<p>You may use following code for obtaining the same solution as in previous example:
+</p><pre class="verbatim">new re 128: new im 128
+define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)'
+ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
+# now start beam tracing
+fill re 'exp(-48*x^2)'
+new xx: new yy
+qo2d a $1 re im r 1 30 xx yy
+caxis 0 1
+dens xx yy a 'wyrRk'
+</pre>
+
+<hr size="6">
+<a name="Stereo-image"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#PDE-solving-hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stereo-image-1"></a>
+<h3 class="subsection">2.5.13 Stereo image</h3>
+
+<p>One can easily create stereo image in MathGL. Stereo image can be produced by making two subplots with slightly different rotation angles. The corresponding code looks like this (see section <a href="mgl_en_3.html#Stereo-image-sample">Stereo image sample</a>):
+</p><pre class="verbatim">subplot 2 1 0   # left image
+rotate 40 60+3
+# draw something here
+subplot 2 1 1   # right image
+rotate 40 60-3
+# draw the same here
+</pre>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_3.html b/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_3.html
new file mode 100644
index 0000000..382de68
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_3.html
@@ -0,0 +1,4065 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: 3. Samples</title>
+
+<meta name="description" content="MGL script language for version 1.11: 3. Samples">
+<meta name="keywords" content="MGL script language for version 1.11: 3. Samples">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_2.html#Stereo-image" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Samples-1"></a>
+<h1 class="chapter">3. Samples</h1>
+<p>This chapter contain a lot of sample codes for all types of plots and for most important examples and hints. The same sample (with pictures) you can find at <a href="http://mathgl.sf.net/pictures.html">http://mathgl.sf.net/pictures.html</a>. 
+</p><table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting-samples">3.1 1D plotting samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting-samples">3.2 2D plotting samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting-samples">3.3 3D plotting samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting-samples">3.4 Dual plotting samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Basic-features">3.5 Basic features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Additional-features">3.6 Additional features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Advanced-features">3.7 Advanced features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+</table>
+<hr size="6">
+<a name="g_t1D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-plotting-samples-1"></a>
+<h2 class="section">3.1 1D plotting samples</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plot-sample">3.1.1 Plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Radar-sample">3.1.2 Radar sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tens-sample">3.1.3 Tens sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area-sample">3.1.4 Area sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area-gradient-sample">3.1.5 Area with gradient filling sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-sample">3.1.6 Bars sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-2-colors-sample">3.1.7 Bars 2 colors sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-above-sample">3.1.8 Bars above sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-fall-sample">3.1.9 Bars fall sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Barh-sample">3.1.10 Barh sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Step-sample">3.1.11 Step sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stem-sample">3.1.12 Stem sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region-sample">3.1.13 Region sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region-gradient-sample">3.1.14 Region gradient sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Error-sample">3.1.15 Error sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#BoxPlot-sample">3.1.16 BoxPlot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mark-sample">3.1.17 Mark sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TextMark-sample">3.1.18 TextMark sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tube-sample">3.1.19 Tube sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-sample">3.1.20 Text sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Torus-sample">3.1.21 Torus sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Chart-sample">3.1.22 Chart sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pie-chart-sample">3.1.23 Pie chart sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ring-chart-sample">3.1.24 Ring chart sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+<hr size="6">
+<a name="Plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Radar-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plot-sample-1"></a>
+<h3 class="subsection">3.1.1 Plot sample</h3>
+<a name="index-Plot"></a>
+<div class="float">
+<img src="../png/plot.png" alt="../png/plot">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y
+</pre><hr size="6">
+<a name="Radar-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Radar-sample-1"></a>
+<h3 class="subsection">3.1.2 Radar sample</h3>
+<a name="index-Radar"></a>
+<div class="float">
+<img src="../png/radar.png" alt="../png/radar">
+</div><pre class="verbatim">new y 10 3
+modify y '0.4*sin(pi*(2*x+y/2))+0.1*rnd'
+radar y '#'
+</pre><hr size="6">
+<a name="Tens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Radar-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tens-sample-1"></a>
+<h3 class="subsection">3.1.3 Tens sample</h3>
+<a name="index-Tens"></a>
+<div class="float">
+<img src="../png/tens.png" alt="../png/tens">
+</div><pre class="verbatim">new y 50
+new c 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify c 'sin(2*pi*x)'
+box
+tens y c
+</pre><hr size="6">
+<a name="Area-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area-gradient-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-sample-1"></a>
+<h3 class="subsection">3.1.4 Area sample</h3>
+<a name="index-Area"></a>
+<div class="float">
+<img src="../png/area.png" alt="../png/area">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y
+</pre><hr size="6">
+<a name="Area-gradient-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-with-gradient-filling-sample"></a>
+<h3 class="subsection">3.1.5 Area with gradient filling sample</h3>
+<a name="index-Area-1"></a>
+<div class="float">
+<img src="../png/area_2.png" alt="../png/area_2">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y 'cbgGyr'
+</pre><hr size="6">
+<a name="Bars-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area-gradient-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-2-colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-sample-1"></a>
+<h3 class="subsection">3.1.6 Bars sample</h3>
+<a name="index-Bars"></a>
+<div class="float">
+<img src="../png/bars.png" alt="../png/bars">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y
+</pre><hr size="6">
+<a name="Bars-2-colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-above-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-2-colors-sample-1"></a>
+<h3 class="subsection">3.1.7 Bars 2 colors sample</h3>
+<a name="index-Bars-1"></a>
+<div class="float">
+<img src="../png/bars_2.png" alt="../png/bars_2">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'cbgGyr'
+</pre><hr size="6">
+<a name="Bars-above-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-2-colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-fall-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-above-sample-1"></a>
+<h3 class="subsection">3.1.8 Bars above sample</h3>
+<a name="index-Bars-2"></a>
+<div class="float">
+<img src="../png/bars_a.png" alt="../png/bars_a">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'a'
+</pre><hr size="6">
+<a name="Bars-fall-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-above-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Barh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-fall-sample-1"></a>
+<h3 class="subsection">3.1.9 Bars fall sample</h3>
+<a name="index-Bars-3"></a>
+<div class="float">
+<img src="../png/bars_f.png" alt="../png/bars_f">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'f'
+</pre><hr size="6">
+<a name="Barh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-fall-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Step-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Barh-sample-1"></a>
+<h3 class="subsection">3.1.10 Barh sample</h3>
+<a name="index-Barh"></a>
+<div class="float">
+<img src="../png/barh.png" alt="../png/barh">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+barh y
+</pre><hr size="6">
+<a name="Step-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Barh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stem-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Step-sample-1"></a>
+<h3 class="subsection">3.1.11 Step sample</h3>
+<a name="index-Step"></a>
+<div class="float">
+<img src="../png/step.png" alt="../png/step">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+step y
+</pre><hr size="6">
+<a name="Stem-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Step-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stem-sample-1"></a>
+<h3 class="subsection">3.1.12 Stem sample</h3>
+<a name="index-Stem"></a>
+<div class="float">
+<img src="../png/stem.png" alt="../png/stem">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+stem y 'o'
+</pre><hr size="6">
+<a name="Region-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Stem-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region-gradient-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-sample-1"></a>
+<h3 class="subsection">3.1.13 Region sample</h3>
+<a name="index-Region"></a>
+<div class="float">
+<img src="../png/region.png" alt="../png/region">
+</div><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'r'
+plot y1 'k2'
+plot y2 'k2'
+</pre><hr size="6">
+<a name="Region-gradient-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Error-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-gradient-sample-1"></a>
+<h3 class="subsection">3.1.14 Region gradient sample</h3>
+<a name="index-Region-1"></a>
+<div class="float">
+<img src="../png/region_2.png" alt="../png/region_2">
+</div><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'yr'
+plot y1 'k2'
+plot y2 'k2'
+</pre><hr size="6">
+<a name="Error-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region-gradient-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#BoxPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Error-sample-1"></a>
+<h3 class="subsection">3.1.15 Error sample</h3>
+<a name="index-Error"></a>
+<div class="float">
+<img src="../png/error.png" alt="../png/error">
+</div><pre class="verbatim">new y 50
+new x0 10
+new y0 10
+new ex 10
+new ey 10
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify x0 '2*x-1 + 0.1*rnd-0.05'
+modify y0 '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1'
+modify ey '0.2'
+modify ex '0.1'
+box
+plot y
+error x0 y0 ex ey 'ko'
+</pre><hr size="6">
+<a name="BoxPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Error-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mark-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="BoxPlot-sample-1"></a>
+<h3 class="subsection">3.1.16 BoxPlot sample</h3>
+<a name="index-BoxPlot"></a>
+<div class="float">
+<img src="../png/boxplot.png" alt="../png/boxplot">
+</div><pre class="verbatim">new a 10 7
+modify a '(2*rnd-1)^3/2'
+boxplot a
+box:plot a ' ko'
+</pre><hr size="6">
+<a name="Mark-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#BoxPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TextMark-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mark-sample-1"></a>
+<h3 class="subsection">3.1.17 Mark sample</h3>
+<a name="index-Mark"></a>
+<div class="float">
+<img src="../png/mark.png" alt="../png/mark">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+mark y y1 'bs'
+</pre><hr size="6">
+<a name="TextMark-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mark-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tube-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TextMark-sample-1"></a>
+<h3 class="subsection">3.1.18 TextMark sample</h3>
+<a name="index-TextMark"></a>
+<div class="float">
+<img src="../png/textmark.png" alt="../png/textmark">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+textmark y y1 '\gamma'
+</pre><hr size="6">
+<a name="Tube-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TextMark-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tube-sample-1"></a>
+<h3 class="subsection">3.1.19 Tube sample</h3>
+<a name="index-Tube"></a>
+<div class="float">
+<img src="../png/tube.png" alt="../png/tube">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+rotate 40 60
+light on
+box
+tube y 0.05
+</pre><hr size="6">
+<a name="Text-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tube-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Torus-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-sample-1"></a>
+<h3 class="subsection">3.1.20 Text sample</h3>
+<a name="index-Text"></a>
+<div class="float">
+<img src="../png/text.png" alt="../png/text">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y(:,0)
+text y 'This is very long string drawn along a curve' ':k'
+text y 'Another string drawn above a curve' 'T:r'
+</pre><hr size="6">
+<a name="Torus-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Torus-sample-1"></a>
+<h3 class="subsection">3.1.21 Torus sample</h3>
+<a name="index-Torus"></a>
+<div class="float">
+<img src="../png/torus.png" alt="../png/torus">
+</div><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+rotate 40 60
+light on
+box
+torus y1 y2 'pz'
+</pre><hr size="6">
+<a name="Chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Torus-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pie-chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Chart-sample-1"></a>
+<h3 class="subsection">3.1.22 Chart sample</h3>
+<a name="index-Chart"></a>
+<div class="float">
+<img src="../png/chart.png" alt="../png/chart">
+</div><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+box
+chart ch
+</pre><hr size="6">
+<a name="Pie-chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ring-chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pie-chart-sample-1"></a>
+<h3 class="subsection">3.1.23 Pie chart sample</h3>
+<a name="index-Chart-1"></a>
+<a name="index-Axis"></a>
+<div class="float">
+<img src="../png/pie_chart.png" alt="../png/pie_chart">
+</div><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+1)/2*cos(pi*x)' '(y+1)/2*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+</pre><hr size="6">
+<a name="Ring-chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pie-chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ring-chart-sample-1"></a>
+<h3 class="subsection">3.1.24 Ring chart sample</h3>
+<a name="index-Chart-2"></a>
+<a name="index-Axis-1"></a>
+<div class="float">
+<img src="../png/ring_chart.png" alt="../png/ring_chart">
+</div><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+2)/3*cos(pi*x)' '(y+2)/3*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+</pre><hr size="6">
+<a name="g_t2D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ring-chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-plotting-samples-1"></a>
+<h2 class="section">3.2 2D plotting samples</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf-sample">3.2.1 Surf sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transparent-surface-sample">3.2.2 Transparent surface sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surface-in-fog-sample">3.2.3 Surface in fog sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Sharp-colors-sample">3.2.4 Sharp colors sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mesh-sample">3.2.5 Mesh sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fall-sample">3.2.6 Fall sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Belt-sample">3.2.7 Belt sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tile-sample">3.2.8 Tile sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Boxs-sample">3.2.9 Boxs sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens-sample">3.2.10 Dens sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-sample">3.2.11 Cont sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF-sample">3.2.12 ContF sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContD-sample">3.2.13 ContD sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axial-sample">3.2.14 Axial sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grad-sample">3.2.15 Grad sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+</table>
+<hr size="6">
+<a name="Surf-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparent-surface-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-sample-1"></a>
+<h3 class="subsection">3.2.1 Surf sample</h3>
+<a name="index-Surf"></a>
+<div class="float">
+<img src="../png/surf.png" alt="../png/surf">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+</pre><hr size="6">
+<a name="Transparent-surface-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surface-in-fog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transparent-surface-sample-1"></a>
+<h3 class="subsection">3.2.2 Transparent surface sample</h3>
+<a name="index-Surf-1"></a>
+<a name="index-Alpha"></a>
+<div class="float">
+<img src="../png/surf_alpha.png" alt="../png/surf_alpha">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surf a
+</pre><hr size="6">
+<a name="Surface-in-fog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparent-surface-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Sharp-colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surface-in-fog-sample-1"></a>
+<h3 class="subsection">3.2.3 Surface in fog sample</h3>
+<a name="index-Surf-2"></a>
+<a name="index-Fog"></a>
+<div class="float">
+<img src="../png/surf_fog.png" alt="../png/surf_fog">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+fog 1
+box
+surf a
+</pre><hr size="6">
+<a name="Sharp-colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surface-in-fog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mesh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Sharp-colors-sample-1"></a>
+<h3 class="subsection">3.2.4 Sharp colors sample</h3>
+<a name="index-Surf-3"></a>
+<div class="float">
+<img src="../png/surf_sl.png" alt="../png/surf_sl">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a 'BbcyrR|'
+</pre><hr size="6">
+<a name="Mesh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Sharp-colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fall-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mesh-sample-1"></a>
+<h3 class="subsection">3.2.5 Mesh sample</h3>
+<a name="index-Mesh"></a>
+<div class="float">
+<img src="../png/mesh.png" alt="../png/mesh">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+mesh a
+</pre><hr size="6">
+<a name="Fall-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mesh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Belt-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fall-sample-1"></a>
+<h3 class="subsection">3.2.6 Fall sample</h3>
+<a name="index-Fall"></a>
+<div class="float">
+<img src="../png/fall.png" alt="../png/fall">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+fall a
+</pre><hr size="6">
+<a name="Belt-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fall-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tile-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Belt-sample-1"></a>
+<h3 class="subsection">3.2.7 Belt sample</h3>
+<a name="index-Belt"></a>
+<div class="float">
+<img src="../png/belt.png" alt="../png/belt">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+belt a
+</pre><hr size="6">
+<a name="Tile-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Belt-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Boxs-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tile-sample-1"></a>
+<h3 class="subsection">3.2.8 Tile sample</h3>
+<a name="index-Tile"></a>
+<div class="float">
+<img src="../png/tile.png" alt="../png/tile">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+tile a
+</pre><hr size="6">
+<a name="Boxs-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tile-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Boxs-sample-1"></a>
+<h3 class="subsection">3.2.9 Boxs sample</h3>
+<a name="index-Boxs"></a>
+<div class="float">
+<img src="../png/boxs.png" alt="../png/boxs">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+origin 0 0 0
+box
+boxs a
+</pre><hr size="6">
+<a name="Dens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Boxs-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-sample-1"></a>
+<h3 class="subsection">3.2.10 Dens sample</h3>
+<a name="index-Dens"></a>
+<a name="index-Colorbar"></a>
+<div class="float">
+<img src="../png/dens.png" alt="../png/dens">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+dens a
+colorbar
+</pre><hr size="6">
+<a name="Cont-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-sample-1"></a>
+<h3 class="subsection">3.2.11 Cont sample</h3>
+<a name="index-Cont"></a>
+<div class="float">
+<img src="../png/cont.png" alt="../png/cont">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+cont a
+</pre><hr size="6">
+<a name="ContF-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContD-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF-sample-1"></a>
+<h3 class="subsection">3.2.12 ContF sample</h3>
+<a name="index-ContF"></a>
+<div class="float">
+<img src="../png/contf.png" alt="../png/contf">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+contf a
+</pre><hr size="6">
+<a name="ContD-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axial-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContD-sample-1"></a>
+<h3 class="subsection">3.2.13 ContD sample</h3>
+<a name="index-ContD"></a>
+<div class="float">
+<img src="../png/contd.png" alt="../png/contd">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+var v 9 -1 1
+box
+contd v a
+colorbar v
+</pre><hr size="6">
+<a name="Axial-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContD-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grad-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axial-sample-1"></a>
+<h3 class="subsection">3.2.14 Axial sample</h3>
+<a name="index-Axial"></a>
+<div class="float">
+<img src="../png/axial.png" alt="../png/axial">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+axial a
+</pre><hr size="6">
+<a name="Grad-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axial-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grad-sample-1"></a>
+<h3 class="subsection">3.2.15 Grad sample</h3>
+<a name="index-Grad"></a>
+<div class="float">
+<img src="../png/grad.png" alt="../png/grad">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box:alpha on:dens a
+grad a
+</pre><hr size="6">
+<a name="g_t3D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grad-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-plotting-samples-1"></a>
+<h2 class="section">3.3 3D plotting samples</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf3-sample">3.3.1 Surf3 sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cloud-sample">3.3.2 Cloud sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CloudP-sample">3.3.3 CloudP sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens3-sample">3.3.4 Dens3 sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont3-sample">3.3.5 Cont3 sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF3-sample">3.3.6 ContF3 sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-projection-sample">3.3.7 Cont projection sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens-projection-sample">3.3.8 Dens projection sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutMinMax-sample">3.3.9 CutMinMax sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutOff-sample">3.3.11 CutOff sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+<hr size="6">
+<a name="Surf3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cloud-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3-sample-1"></a>
+<h3 class="subsection">3.3.1 Surf3 sample</h3>
+<a name="index-Surf3"></a>
+<div class="float">
+<img src="../png/surf3.png" alt="../png/surf3">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+box
+surf3 a
+</pre><hr size="6">
+<a name="Cloud-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CloudP-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cloud-sample-1"></a>
+<h3 class="subsection">3.3.2 Cloud sample</h3>
+<a name="index-Cloud"></a>
+<div class="float">
+<img src="../png/cloud.png" alt="../png/cloud">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+box
+cloud a 'wyrRk'
+</pre><hr size="6">
+<a name="CloudP-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cloud-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CloudP-sample-1"></a>
+<h3 class="subsection">3.3.3 CloudP sample</h3>
+<a name="index-CloudP"></a>
+<div class="float">
+<img src="../png/cloudp.png" alt="../png/cloudp">
+</div><p>Not available.
+</p><hr size="6">
+<a name="Dens3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CloudP-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens3-sample-1"></a>
+<h3 class="subsection">3.3.4 Dens3 sample</h3>
+<a name="index-Dens3"></a>
+<a name="index-Axis-2"></a>
+<div class="float">
+<img src="../png/densa.png" alt="../png/densa">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+origin 0 0 0
+box
+densa a
+axis
+</pre><hr size="6">
+<a name="Cont3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont3-sample-1"></a>
+<h3 class="subsection">3.3.5 Cont3 sample</h3>
+<a name="index-Cont3"></a>
+<div class="float">
+<img src="../png/conta.png" alt="../png/conta">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+conta a
+</pre><hr size="6">
+<a name="ContF3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-projection-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF3-sample-1"></a>
+<h3 class="subsection">3.3.6 ContF3 sample</h3>
+<a name="index-ContF3"></a>
+<div class="float">
+<img src="../png/contfa.png" alt="../png/contfa">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+box
+contfa a
+</pre><hr size="6">
+<a name="Cont-projection-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens-projection-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-projection-sample-1"></a>
+<h3 class="subsection">3.3.7 Cont projection sample</h3>
+<a name="index-ContX"></a>
+<a name="index-ContY"></a>
+<a name="index-ContZ"></a>
+<div class="float">
+<img src="../png/cont_xyz.png" alt="../png/cont_xyz">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+contx s '' -1
+sum s a 'y'
+conty s '' 1
+sum s a 'z'
+contz s '' -1
+</pre><hr size="6">
+<a name="Dens-projection-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-projection-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutMinMax-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-projection-sample-1"></a>
+<h3 class="subsection">3.3.8 Dens projection sample</h3>
+<a name="index-DensX"></a>
+<a name="index-DensY"></a>
+<a name="index-DensZ"></a>
+<div class="float">
+<img src="../png/dens_xyz.png" alt="../png/dens_xyz">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+densx s '' -1
+sum s a 'y'
+densy s '' 1
+sum s a 'z'
+densz s '' -1
+</pre><hr size="6">
+<a name="CutMinMax-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens-projection-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Isocaps-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutMinMax-sample-1"></a>
+<h3 class="subsection">3.3.9 CutMinMax sample</h3>
+<a name="index-Surf3-1"></a>
+<a name="index-CutMin"></a>
+<a name="index-CutMax"></a>
+<div class="float">
+<img src="../png/cutminmax.png" alt="../png/cutminmax">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut 0 -1 -1 1 0 1
+box
+surf3 a
+</pre><hr size="6">
+<a name="Isocaps-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutMinMax-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutOff-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Isocaps_0027_0027-sample"></a>
+<h3 class="subsection">3.3.10 &ldquo;Isocaps&rdquo; sample</h3>
+<a name="index-Surf3-2"></a>
+<a name="index-ContF3-1"></a>
+<a name="index-CutMin-1"></a>
+<a name="index-CutMax-1"></a>
+<div class="float">
+<img src="../png/cutminmax2.png" alt="../png/cutminmax2">
+</div><pre class="verbatim">new a 61 51 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+cut 0 -1 -1 1 0 1.1
+box
+surf3 a -1
+contf3 a 'x' -1
+contf3 a 'y' -1
+contf3 a 'z' 0
+contf3 a 'z' 39
+</pre><hr size="6">
+<a name="CutOff-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Isocaps-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutOff-sample-1"></a>
+<h3 class="subsection">3.3.11 CutOff sample</h3>
+<a name="index-Surf3-3"></a>
+<a name="index-CutOff"></a>
+<div class="float">
+<img src="../png/surf3_cutoff.png" alt="../png/surf3_cutoff">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut '(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)'
+box
+surf3 a
+</pre><hr size="6">
+<a name="Dual-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutOff-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfC-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dual-plotting-samples-1"></a>
+<h2 class="section">3.4 Dual plotting samples</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#SurfC-sample">3.4.1 SurfC sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#SurfA-sample">3.4.2 SurfA sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TileS-sample">3.4.3 TileS sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Map-sample">3.4.4 Map sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Traj-sample">3.4.5 Traj sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect-sample">3.4.6 Vect sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectL-sample">3.4.7 VectL sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectC-sample">3.4.8 VectC sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-sample">3.4.9 Flow sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe-sample">3.4.10 Pipe sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dew-sample">3.4.11 Dew sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3C-sample">3.4.12 Surf3C sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3A-sample">3.4.13 Surf3A sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect-3D-sample">3.4.14 Vect 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectL-3D-sample">3.4.15 VectL 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectC-3D-sample">3.4.16 VectC 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-3D-sample">3.4.17 Flow 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe-3D-sample">3.4.18 Pipe 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Crust-sample">3.4.19 Crust sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dots-sample">3.4.20 Dots sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+</table>
+<hr size="6">
+<a name="SurfC-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfA-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfC-sample-1"></a>
+<h3 class="subsection">3.4.1 SurfC sample</h3>
+<a name="index-SurfC"></a>
+<div class="float">
+<img src="../png/surfc.png" alt="../png/surfc">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surfc a b
+</pre><hr size="6">
+<a name="SurfA-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfC-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TileS-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfA-sample-1"></a>
+<h3 class="subsection">3.4.2 SurfA sample</h3>
+<a name="index-SurfA"></a>
+<div class="float">
+<img src="../png/surfa.png" alt="../png/surfa">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surfa a b
+</pre><hr size="6">
+<a name="TileS-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfA-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Map-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TileS-sample-1"></a>
+<h3 class="subsection">3.4.3 TileS sample</h3>
+<a name="index-TileS"></a>
+<div class="float">
+<img src="../png/tiles.png" alt="../png/tiles">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+tile a b
+</pre><hr size="6">
+<a name="Map-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TileS-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Traj-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Map-sample-1"></a>
+<h3 class="subsection">3.4.4 Map sample</h3>
+<a name="index-Map"></a>
+<div class="float">
+<img src="../png/map.png" alt="../png/map">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+text 0 0 '\to'
+zrange -2 2
+subplot 2 1 0
+text 0 1.1 '\{x, y\}' '' -2
+box
+fill a 'x'
+fill b 'y'
+map a b 'brgk' 0 0
+subplot 2 1 1
+text 0 1.1 '\{\frac{x^3+y^3}{2}, \frac{x-y}{2}\}' '' -2
+box
+fill a '(x^3+y^3)/2'
+fill b '(x-y)/2'
+map a b 'brgk' 0 0
+</pre><hr size="6">
+<a name="Traj-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Map-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Traj-sample-1"></a>
+<h3 class="subsection">3.4.5 Traj sample</h3>
+<a name="index-Traj"></a>
+<div class="float">
+<img src="../png/traj.png" alt="../png/traj">
+</div><pre class="verbatim">new y 50 3
+new x 50
+new y1 50
+new y2 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+fill x -1 1
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+box
+plot x y
+traj x y y1 y2
+</pre><hr size="6">
+<a name="Vect-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Traj-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectL-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-sample-1"></a>
+<h3 class="subsection">3.4.6 Vect sample</h3>
+<a name="index-Vect"></a>
+<div class="float">
+<img src="../png/vect.png" alt="../png/vect">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vect a b
+</pre><hr size="6">
+<a name="VectL-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectC-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectL-sample-1"></a>
+<h3 class="subsection">3.4.7 VectL sample</h3>
+<a name="index-VectL"></a>
+<div class="float">
+<img src="../png/vectl.png" alt="../png/vectl">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectl a b
+</pre><hr size="6">
+<a name="VectC-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectL-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectC-sample-1"></a>
+<h3 class="subsection">3.4.8 VectC sample</h3>
+<a name="index-VectC"></a>
+<div class="float">
+<img src="../png/vectc.png" alt="../png/vectc">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectc a b
+</pre><hr size="6">
+<a name="Flow-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectC-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-sample-1"></a>
+<h3 class="subsection">3.4.9 Flow sample</h3>
+<a name="index-Flow"></a>
+<div class="float">
+<img src="../png/flow.png" alt="../png/flow">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+flow a b
+</pre><hr size="6">
+<a name="Pipe-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dew-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-sample-1"></a>
+<h3 class="subsection">3.4.10 Pipe sample</h3>
+<a name="index-Pipe"></a>
+<div class="float">
+<img src="../png/pipe.png" alt="../png/pipe">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+box
+pipe a b
+</pre><hr size="6">
+<a name="Dew-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3C-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dew-sample-1"></a>
+<h3 class="subsection">3.4.11 Dew sample</h3>
+<a name="index-Dew"></a>
+<div class="float">
+<img src="../png/dew.png" alt="../png/dew">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+light on
+dew a b
+</pre><hr size="6">
+<a name="Surf3C-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dew-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3A-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3C-sample-1"></a>
+<h3 class="subsection">3.4.12 Surf3C sample</h3>
+<a name="index-Surf3C"></a>
+<div class="float">
+<img src="../png/surf3c.png" alt="../png/surf3c">
+</div><pre class="verbatim">new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3c a b
+</pre><hr size="6">
+<a name="Surf3A-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3C-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3A-sample-1"></a>
+<h3 class="subsection">3.4.13 Surf3A sample</h3>
+<a name="index-Surf3A"></a>
+<div class="float">
+<img src="../png/surf3a.png" alt="../png/surf3a">
+</div><pre class="verbatim">new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3a a b
+</pre><hr size="6">
+<a name="Vect-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3A-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectL-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-3D-sample-1"></a>
+<h3 class="subsection">3.4.14 Vect 3D sample</h3>
+<a name="index-Vect-1"></a>
+<div class="float">
+<img src="../png/vect3.png" alt="../png/vect3">
+</div><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vect ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="VectL-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectC-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectL-3D-sample-1"></a>
+<h3 class="subsection">3.4.15 VectL 3D sample</h3>
+<a name="index-VectL-1"></a>
+<div class="float">
+<img src="../png/vectl3.png" alt="../png/vectl3">
+</div><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectl ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="VectC-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectL-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectC-3D-sample-1"></a>
+<h3 class="subsection">3.4.16 VectC 3D sample</h3>
+<a name="index-VectC-1"></a>
+<div class="float">
+<img src="../png/vectc3.png" alt="../png/vectc3">
+</div><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectc ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="Flow-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectC-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-3D-sample-1"></a>
+<h3 class="subsection">3.4.17 Flow 3D sample</h3>
+<a name="index-Flow-1"></a>
+<div class="float">
+<img src="../png/flow3.png" alt="../png/flow3">
+</div><pre class="verbatim">new ex 30 30 30
+new ey 30 30 30
+new ez 30 30 30
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+flow ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="Pipe-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Crust-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-3D-sample-1"></a>
+<h3 class="subsection">3.4.18 Pipe 3D sample</h3>
+<a name="index-Pipe-1"></a>
+<div class="float">
+<img src="../png/pipe3.png" alt="../png/pipe3">
+</div><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+light on
+box
+pipe ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="Crust-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dots-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Crust-sample-1"></a>
+<h3 class="subsection">3.4.19 Crust sample</h3>
+<a name="index-Crust"></a>
+<div class="float">
+<img src="../png/crust.png" alt="../png/crust">
+</div><pre class="verbatim">read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+light on
+box
+crust a 'p'
+</pre><hr size="6">
+<a name="Dots-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Crust-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dots-sample-1"></a>
+<h3 class="subsection">3.4.20 Dots sample</h3>
+<a name="index-Dots"></a>
+<div class="float">
+<img src="../png/dots.png" alt="../png/dots">
+</div><pre class="verbatim">read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+box
+dots a 'p'
+</pre>
+<hr size="6">
+<a name="Basic-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dots-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Basic-features-1"></a>
+<h2 class="section">3.5 Basic features</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t1D-plot-sample">3.5.1 1D plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plot-sample">3.5.2 2D plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plot-sample">3.5.3 3D plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Line-styles-sample">3.5.4 Line styles sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Arrow-styles-sample">3.5.5 Arrow styles sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-styles-sample">3.5.6 Text styles sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TeX-parsing-sample">3.5.7 TeX parsing sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-faces-sample">3.5.8 Font faces sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Colors-sample">3.5.9 Colors sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Color-schemes-sample">3.5.10 Color schemes sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Normal-transparency">3.5.11 Normal transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Glass_002dlike-transparency">3.5.12 Glass-like transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lamp_002dlike-transparency">3.5.13 Lamp-like transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+</table>
+<hr size="6">
+<a name="g_t1D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Basic-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-plot-sample-1"></a>
+<h3 class="subsection">3.5.1 1D plot sample</h3>
+<a name="index-Plot-1"></a>
+<a name="index-Bars-4"></a>
+<a name="index-SubPlot"></a>
+<div class="float">
+<img src="../png/sample8.png" alt="../png/sample8">
+</div><pre class="verbatim">new y0 50: modify y0 'sin(pi*(2*x-1))'
+subplot 2 2 0
+plot y0: box
+
+subplot 2 2 1
+new y1 50 2
+modify y1 'sin(pi*2*x-pi)'
+modify y1 'cos(pi*2*x-pi)/2' 1
+plot y1: box
+
+new x 50: modify x 'cos(pi*2*x-pi)'
+plot x y0 'Y+'
+plot y1(:,0) y(:,1) 'q|'
+
+subplot 2 2 2:rotate 60 40
+new z 50:   modify z '2*x-1'
+plot x y0 z 'g':box
+new y2 10 3
+modify y2 'cos(pi*(2*x-1-y))'
+modify y2 '2*x-1' 2
+plot y2(:,0) y2(:,1) y2(:,2) 'bo '
+
+subplot 2 2 3:rotate 60 40
+bars x y0 z 'r':box
+</pre><hr size="6">
+<a name="g_t2D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-plot-sample-1"></a>
+<h3 class="subsection">3.5.2 2D plot sample</h3>
+<a name="index-Surf-4"></a>
+<a name="index-Dens-1"></a>
+<a name="index-Alpha-1"></a>
+<div class="float">
+<img src="../png/sample9.png" alt="../png/sample9">
+</div><pre class="verbatim">light on
+
+new a0 50 40
+modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+subplot 2 2 0:rotate 60 40
+surf a0: box
+
+new x 50 40: new y 50 40: new z 50 40
+modify x '0.8*sin(2*pi*x)*sin(pi*y)'
+modify y '0.8*cos(2*pi*x)*sin(pi*y)'
+modify z '0.8*cos(pi*y)'
+subplot 2 2 1:rotate 60 40
+surf x y z 'bbwrr': box
+
+new a1 50 40 3
+modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
+subplot 2 2 2:rotate 60 40
+alpha on
+surf a1: box
+
+subplot 2 2 3: rotate 60 40
+dens a1: box
+</pre><hr size="6">
+<a name="g_t3D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Line-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-plot-sample-1"></a>
+<h3 class="subsection">3.5.3 3D plot sample</h3>
+<a name="index-Surf-5"></a>
+<a name="index-Dens-2"></a>
+<a name="index-Alpha-2"></a>
+<div class="float">
+<img src="../png/sampleb.png" alt="../png/sampleb">
+</div><pre class="verbatim">alpha on: light on
+light 0 0 0 1
+new a 30 30 30: new b 30 30 30
+modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
+modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
+caxis 0 1
+
+subplot 2 2 0: rotate 40 60
+surf3 a 'wgk': box
+subplot 2 2 1: rotate 40 60
+densa a: box: axis
+subplot 2 2 2: rotate 40 60
+cloud a: box
+subplot 2 2 3: rotate 40 60
+surf3a b a 'q': box
+</pre><hr size="6">
+<a name="Line-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Arrow-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Line-styles-sample-1"></a>
+<h3 class="subsection">3.5.4 Line styles sample</h3>
+<a name="index-Mark-1"></a>
+<a name="index-Line"></a>
+<div class="float">
+<img src="../png/sample5.png" alt="../png/sample5">
+</div><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Arrow-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Line-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Arrow-styles-sample-1"></a>
+<h3 class="subsection">3.5.5 Arrow styles sample</h3>
+<a name="index-Line-1"></a>
+<div class="float">
+<img src="../png/sampled.png" alt="../png/sampled">
+</div><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Text-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Arrow-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TeX-parsing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-styles-sample-1"></a>
+<h3 class="subsection">3.5.6 Text styles sample</h3>
+<a name="index-Puts"></a>
+<div class="float">
+<img src="../png/sample4.png" alt="../png/sample4">
+</div><pre class="verbatim">text 0 1 'Text can be in ASCII and in Unicode'
+text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
+text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
+text 0 -0.2 'Easy to \a{overline} or \u{underline}'
+text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
+text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
+</pre><hr size="6">
+<a name="TeX-parsing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-faces-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TeX-parsing-sample-1"></a>
+<h3 class="subsection">3.5.7 TeX parsing sample</h3>
+<a name="index-Puts-1"></a>
+<div class="float">
+<img src="../png/samplee.png" alt="../png/samplee">
+</div><pre class="verbatim">text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}' '' -4
+</pre><hr size="6">
+<a name="Font-faces-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TeX-parsing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Font-faces-sample-1"></a>
+<h3 class="subsection">3.5.8 Font faces sample</h3>
+<a name="index-Puts-2"></a>
+<div class="float">
+<img src="../png/fonts.png" alt="../png/fonts">
+</div><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-faces-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Color-schemes-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Colors-sample-1"></a>
+<h3 class="subsection">3.5.9 Colors sample</h3>
+<div class="float">
+<img src="../png/colors.png" alt="../png/colors">
+</div><pre class="verbatim">#LENUQ
+facez -1   -1 0 0.4 0.3 'L#': text -0.8 -0.9 'L' 'C:w'
+facez -0.6 -1 0 0.4 0.3 'E#': text -0.4 -0.9 'E' 'C:w'
+facez -0.2 -1 0 0.4 0.3 'N#': text  0   -0.9 'N' 'C:w'
+facez  0.2 -1 0 0.4 0.3 'U#': text  0.4 -0.9 'U' 'C:w'
+facez  0.6 -1 0 0.4 0.3 'Q#': text  0.8 -0.9 'Q' 'C:w'
+#lenuq
+facez -1   -0.7 0 0.4 0.3 'l#': text -0.8 -0.6 'l' 'C:k'
+facez -0.6 -0.7 0 0.4 0.3 'e#': text -0.4 -0.6 'e' 'C:k'
+facez -0.2 -0.7 0 0.4 0.3 'n#': text  0   -0.6 'n' 'C:k'
+facez  0.2 -0.7 0 0.4 0.3 'u#': text  0.4 -0.6 'u' 'C:k'
+facez  0.6 -0.7 0 0.4 0.3 'q#': text  0.8 -0.6 'q' 'C:k'
+#CMYkP
+facez -1   -0.4 0 0.4 0.3 'C#': text -0.8 -0.3 'C' 'C:w'
+facez -0.6 -0.4 0 0.4 0.3 'M#': text -0.4 -0.3 'M' 'C:w'
+facez -0.2 -0.4 0 0.4 0.3 'Y#': text  0   -0.3 'Y' 'C:w'
+facez  0.2 -0.4 0 0.4 0.3 'k#': text  0.4 -0.3 'k' 'C:w'
+facez  0.6 -0.4 0 0.4 0.3 'P#': text  0.8 -0.3 'P' 'C:w'
+#lenuq
+facez -1   -0.1 0 0.4 0.3 'c#': text -0.8 0 'c' 'C:k'
+facez -0.6 -0.1 0 0.4 0.3 'm#': text -0.4 0 'm' 'C:k'
+facez -0.2 -0.1 0 0.4 0.3 'y#': text  0   0 'y' 'C:k'
+facez  0.2 -0.1 0 0.4 0.3 'w#': text  0.4 0 'w' 'C:k'
+facez  0.6 -0.1 0 0.4 0.3 'p#': text  0.8 0 'p' 'C:k'
+#BGRHW
+facez -1   0.2 0 0.4 0.3 'B#': text -0.8 0.3 'B' 'C:k'
+facez -0.6 0.2 0 0.4 0.3 'G#': text -0.4 0.3 'G' 'C:k'
+facez -0.2 0.2 0 0.4 0.3 'R#': text  0   0.3 'R' 'C:k'
+facez  0.2 0.2 0 0.4 0.3 'H#': text  0.4 0.3 'H' 'C:k'
+facez  0.6 0.2 0 0.4 0.3 'W#': text  0.8 0.3 'W' 'C:k'
+#bgrhw
+facez -1   0.5 0 0.4 0.3 'b#': text -0.8 0.6 'b' 'C:w'
+facez -0.6 0.5 0 0.4 0.3 'g#': text -0.4 0.6 'g' 'C:w'
+facez -0.2 0.5 0 0.4 0.3 'r#': text  0   0.6 'r' 'C:w'
+facez  0.2 0.5 0 0.4 0.3 'h#': text  0.4 0.6 'h' 'C:w'
+facez  0.6 0.5 0 0.4 0.3 'w#': text  0.8 0.6 'w' 'C:w'
+#brighted
+facez -1   0.8 0 0.4 0.3 'r1#': text -0.8 0.9 'r1' 'C:k'
+facez -0.6 0.8 0 0.4 0.3 'r3#': text -0.4 0.9 'r3' 'C:k'
+facez -0.2 0.8 0 0.4 0.3 'r5#': text  0   0.9 'r5' 'C:k'
+facez  0.2 0.8 0 0.4 0.3 'r7#': text  0.4 0.9 'r7' 'C:k'
+facez  0.6 0.8 0 0.4 0.3 'r9#': text  0.8 0.9 'r9' 'C:k'
+</pre><hr size="6">
+<a name="Color-schemes-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Normal-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Color-schemes-sample-1"></a>
+<h3 class="subsection">3.5.10 Color schemes sample</h3>
+<a name="index-Colorbar-1"></a>
+<div class="float">
+<img src="../png/color_schemes.png" alt="../png/color_schemes">
+</div><pre class="verbatim">new a 256 2: fill a 'x'
+subplot 2 10 0 0.2:dens a 'kw'
+text -1.4 -0.3 'kw' '' -8
+subplot 2 10 1 0.2:dens a 'wk'
+text -1.4 -0.3 'wk' '' -8
+subplot 2 10 2 0.2:dens a 'kHCcw'
+text -1.4 -0.3 'kHCcw' '' -8
+subplot 2 10 3 0.2:dens a 'kBbcw'
+text -1.4 -0.3 'kBbcw' '' -8
+subplot 2 10 4 0.2:dens a 'kRryw'
+text -1.4 -0.3 'kRryw' '' -8
+subplot 2 10 5 0.2:dens a 'kGgew'
+text -1.4 -0.3 'kGgew' '' -8
+subplot 2 10 6 0.2:dens a 'BbwrR'
+text -1.4 -0.3 'BbwrR' '' -8
+subplot 2 10 7 0.2:dens a 'BbwgG'
+text -1.4 -0.3 'BbwgG' '' -8
+subplot 2 10 8 0.2:dens a 'GgwmM'
+text -1.4 -0.3 'GgwmM' '' -8
+subplot 2 10 9 0.2:dens a 'UuwqR'
+text -1.4 -0.3 'UuwqR' '' -8
+subplot 2 10 10 0.2:dens a 'QqwcC'
+text -1.4 -0.3 'QqwcC' '' -8
+subplot 2 10 11 0.2:dens a 'CcwyY'
+text -1.4 -0.3 'CcwyY' '' -8
+subplot 2 10 12 0.2:dens a 'bcwyr'
+text -1.4 -0.3 'bcwyr' '' -8
+subplot 2 10 13 0.2:dens a 'bwr'
+text -1.4 -0.3 'bwr' '' -8
+subplot 2 10 14 0.2:dens a 'BbcyrR'
+text -1.4 -0.3 'BbcyrR' '' -8
+subplot 2 10 15 0.2:dens a 'UbcyqR'
+text -1.4 -0.3 'UbcyqR' '' -8
+subplot 2 10 16 0.2:dens a 'BbcwyrR'
+text -1.4 -0.3 'BbcwyrR' '' -8
+subplot 2 10 17 0.2:dens a 'bcyr'
+text -1.4 -0.3 'bcyr' '' -8
+subplot 2 10 18 0.2:dens a 'BbcyrR|'
+text -1.4 -0.3 'BbcyrR|' '' -8
+subplot 2 10 19 0.2:dens a 'bgr'
+text -1.4 -0.3 'bgr' '' -8
+</pre><hr size="6">
+<a name="Normal-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Color-schemes-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Glass_002dlike-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Normal-transparency-1"></a>
+<h3 class="subsection">3.5.11 Normal transparency</h3>
+<a name="index-TranspType"></a>
+<div class="float">
+<img src="../png/type0.png" alt="../png/type0">
+</div><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 0: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre><hr size="6">
+<a name="Glass_002dlike-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Normal-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lamp_002dlike-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Glass_002dlike-transparency-1"></a>
+<h3 class="subsection">3.5.12 Glass-like transparency</h3>
+<a name="index-TranspType-1"></a>
+<div class="float">
+<img src="../png/type1.png" alt="../png/type1">
+</div><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 1: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre><hr size="6">
+<a name="Lamp_002dlike-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Glass_002dlike-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Lamp_002dlike-transparency-1"></a>
+<h3 class="subsection">3.5.13 Lamp-like transparency</h3>
+<a name="index-TranspType-2"></a>
+<div class="float">
+<img src="../png/type2.png" alt="../png/type2">
+</div><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 2: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<hr size="6">
+<a name="Additional-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lamp_002dlike-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Additional-features-1"></a>
+<h2 class="section">3.6 Additional features</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Legend-sample">3.6.1 Legend sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Adding-mesh-sample">3.6.2 Adding mesh sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf-_0026-Cont-sample">3.6.3 Surf &amp; Cont sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-_0026-Dens-sample">3.6.4 Flow &amp; Dens sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Several-light-sample">3.6.5 Several light sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mirrored-surface-sample">3.6.6 Mirrored surface sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-with-labels-sample">3.6.7 Cont with labels sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ternary-plot-sample">3.6.8 Ternary plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Coloring-by-coordinates-sample">3.6.9 Coloring by coordinates sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Drops-sample">3.6.10 Drops sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Molecules-drawing-sample">3.6.11 Molecules drawing sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">    
+</td></tr>
+</table>
+<hr size="6">
+<a name="Legend-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Additional-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Adding-mesh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Legend-sample-1"></a>
+<h3 class="subsection">3.6.1 Legend sample</h3>
+<a name="index-Plot-2"></a>
+<a name="index-Legend"></a>
+<a name="index-AddLegend"></a>
+<div class="float">
+<img src="../png/legend.png" alt="../png/legend">
+</div><pre class="verbatim">new f 50 3
+modify f 'sin(2*pi*x*x)'
+modify f 'sin(2*pi*x)' 1
+modify f 'sin(2*pi*sqrt(x))' 2
+axis 0 -1 1 1
+box
+plot f
+axis
+addlegend 'sin(\pi {x^2})' 'b'
+addlegend 'sin(\pi x)' 'g*'
+addlegend 'sin(\pi \sqrt{\a x})' 'r+'
+legend
+</pre><hr size="6">
+<a name="Adding-mesh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf-_0026-Cont-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Adding-mesh-sample-1"></a>
+<h3 class="subsection">3.6.2 Adding mesh sample</h3>
+<a name="index-SubPlot-1"></a>
+<a name="index-Surf-6"></a>
+<a name="index-Dens-3"></a>
+<a name="index-Cont-1"></a>
+<a name="index-Axial-1"></a>
+<div class="float">
+<img src="../png/samplea.png" alt="../png/samplea">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+alpha on
+light on
+subplot 2 2 0
+rotate 40 60
+surf a 'BbcyrR#'
+box
+subplot 2 2 1
+rotate 40 60
+dens a 'BbcyrR#'
+box
+subplot 2 2 2
+rotate 40 60
+cont a 'BbcyrR#'
+box
+subplot 2 2 3
+rotate 40 60
+axial a 'BbcyrR#'
+box
+</pre><hr size="6">
+<a name="Surf-_0026-Cont-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Adding-mesh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-_0026-Dens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-_0026-Cont-sample-1"></a>
+<h3 class="subsection">3.6.3 Surf &amp; Cont sample</h3>
+<a name="index-Surf-7"></a>
+<a name="index-Cont-2"></a>
+<div class="float">
+<img src="../png/surf_cont_y.png" alt="../png/surf_cont_y">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+cont a 'y'
+</pre><hr size="6">
+<a name="Flow-_0026-Dens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf-_0026-Cont-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Several-light-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-_0026-Dens-sample-1"></a>
+<h3 class="subsection">3.6.4 Flow &amp; Dens sample</h3>
+<a name="index-Flow-2"></a>
+<a name="index-Dens-4"></a>
+<div class="float">
+<img src="../png/flow_dens.png" alt="../png/flow_dens">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+copy d a
+modify d 'sqrt(v^2+w^2)' a b
+box
+flow a b 'br'
+dens d 'BbcyrR'
+</pre><hr size="6">
+<a name="Several-light-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-_0026-Dens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mirrored-surface-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Several-light-sample-1"></a>
+<h3 class="subsection">3.6.5 Several light sample</h3>
+<a name="index-Surf-8"></a>
+<a name="index-Light"></a>
+<div class="float">
+<img src="../png/several_light.png" alt="../png/several_light">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+light 1 0 1 0 'c'
+light 2 1 0 0 'y'
+light 3 0 -1 0 'm'
+box
+surf a 'h'
+</pre><hr size="6">
+<a name="Mirrored-surface-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Several-light-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-with-labels-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mirrored-surface-sample-1"></a>
+<h3 class="subsection">3.6.6 Mirrored surface sample</h3>
+<a name="index-Surf-9"></a>
+<div class="float">
+<img src="../png/mirror.png" alt="../png/mirror">
+</div><pre class="verbatim">new a 30 40
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf a 'r'; yrange 0 1
+surf a 'b'; yrange 0 -1
+box
+</pre><p>or
+</p><pre class="verbatim">new a 30 40
+var x 30 -1 1
+var y1 40 0 1
+var y2 40 0 -1
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf x y1 a 'r'
+surf x y2 a 'b'
+box
+</pre><hr size="6">
+<a name="Cont-with-labels-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mirrored-surface-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ternary-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-with-labels-sample-1"></a>
+<h3 class="subsection">3.6.7 Cont with labels sample</h3>
+<a name="index-Cont-3"></a>
+<div class="float">
+<img src="../png/contt.png" alt="../png/contt">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+cont a 'BbcyrRt'
+</pre><hr size="6">
+<a name="Ternary-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-with-labels-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Coloring-by-coordinates-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ternary-plot-sample-1"></a>
+<h3 class="subsection">3.6.8 Ternary plot sample</h3>
+<a name="index-Ternary"></a>
+<div class="float">
+<img src="../png/ternary.png" alt="../png/ternary">
+</div><pre class="verbatim">new rx 10
+new ry 10
+new x 50
+new y 50
+new a 20 30
+modify a '4*x*y'
+modify x '0.25*(1+cos(2*pi*x))'
+modify y '0.25*(1+sin(2*pi*x))'
+modify rx 'rnd'
+modify ry 'rnd*(1-v)' rx
+text -0.8 1.3 'Ternary plot (x+y+t=1)'
+ternary on
+plot x y 'r2'
+plot rx ry 'q^ '
+cont a
+line 0.5 0 0 0.75 'g2'
+axis
+grid 'xyz' 'B;'
+xlabel 'x comp.'
+ylabel 'y comp.'
+tlabel 't comp.'
+</pre><hr size="6">
+<a name="Coloring-by-coordinates-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ternary-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Drops-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Coloring-by-coordinates-sample-1"></a>
+<h3 class="subsection">3.6.9 Coloring by coordinates sample</h3>
+<a name="index-Surf3-4"></a>
+<div class="float">
+<img src="../png/surf3_rgbd.png" alt="../png/surf3_rgbd">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+surf3 a 'bgrd'
+</pre><hr size="6">
+<a name="Drops-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Coloring-by-coordinates-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Molecules-drawing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Drops-sample-1"></a>
+<h3 class="subsection">3.6.10 Drops sample</h3>
+<a name="index-Drop"></a>
+<div class="float">
+<img src="../png/drops.png" alt="../png/drops">
+</div><pre class="verbatim">light on
+text -1 1.2 'sh=0'
+drop -1 0 0 1 0.5 'r' 0
+text -0.33 1.2 'sh=0.33'
+drop -0.33 0 0 1 0.5 'r' 0.33
+text 0.33 1.2 'sh=0.67'
+drop 0.33 0 0 1 0.5 'r' 0.67
+text 1 1.2 'sh=1'
+drop 1 0 0 1 0.5 'r' 1
+ball -1 0 1 'k'
+ball -0.33 0 1 'k'
+ball 0.33 0 1 'k'
+ball 1 0 1 'k'
+line -1 0 1 1 0 1 'b'
+new h 100
+modify h '0.25*(1+x)^2'
+plot h 'k|'
+text -1 0.6 'h\sim(1+sh)^2' 'rL'
+</pre><hr size="6">
+<a name="Molecules-drawing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Drops-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Molecules-drawing-sample-1"></a>
+<h3 class="subsection">3.6.11 Molecules drawing sample</h3>
+<a name="index-Drop-1"></a>
+<a name="index-Sphere"></a>
+<div class="float">
+<img src="../png/molecule.png" alt="../png/molecule">
+</div><pre class="verbatim">alpha on
+light on
+subplot 2 2 0
+text 0 1.2 'Methane, CH_4' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'k'
+drop 0 0 0 0 0 1 0.35 'h' 1 2
+sphere 0 0 0.7 0.25 'g'
+drop 0 0 0 -0.94 0 -0.33 0.35 'h' 1 2
+sphere -0.66 0 -0.23 0.25 'g'
+drop 0 0 0 0.47 0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 0.57 -0.23 0.25 'g'
+drop 0 0 0 0.47 -0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 -0.57 -0.23 0.25 'g'
+subplot 2 2 1
+text 0 1.2 'Water, H{_2}O' '' -3
+rotate 60 100
+sphere 0 0 0 0.25 'r'
+drop 0 0 0 0.3 0.5 0 0.3 'm' 1 2
+sphere 0.3 0.5 0 0.25 'g'
+drop 0 0 0 0.3 -0.5 0 0.3 'm' 1 2
+sphere 0.3 -0.5 0 0.25 'g'
+subplot 2 2 2
+text 0 1.2 'Oxygen, O_2' '' -3
+rotate 60 120
+drop 0 0.5 0 0 -0.3 0 0.3 'm' 1 2
+sphere 0 0.5 0 0.25 'r'
+drop 0 -0.5 0 0 0.3 0 0.3 'm' 1 2
+sphere 0 -0.5 0 0.25 'r'
+subplot 2 2 3
+text 0 1.2 0 'Ammonia, NH_3' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'b'
+drop 0 0 0 0.33 0.57 0 0.32 'n' 1 2
+sphere 0.33 0.57 0 0.25 'g'
+drop 0 0 0 0.33 -0.57 0 0.32 'n' 1 2
+sphere 0.33 -0.57 0 0.25 'g'
+drop 0 0 0 -0.65 0 0 0.32 'n' 1 2
+sphere -0.65 0 0 0.25 'g'
+</pre><hr size="6">
+<a name="Advanced-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Molecules-drawing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Curvelinear-coorinates-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Advanced-features-1"></a>
+<h2 class="section">3.7 Advanced features</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Curvelinear-coorinates-sample">3.7.1 Curvelinear coorinates sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2_002daxes-sample">3.7.2 2-axes sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Semi_002dlog-sample">3.7.3 Semi-log sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Log_002dlog-sample">3.7.4 Log-log sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fitting-sample">3.7.5 Fitting sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Envelop-sample">3.7.6 Envelop sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Sew-sample">3.7.7 Sew sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#STFA-sample">3.7.8 STFA sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#PDE-sample">3.7.9 PDE sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Beam-tracing-sample">3.7.10 Beam tracing sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Parser-sample">3.7.11 Parser sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Manual-ticks-sample">3.7.12 Tick values sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ColumnPlot-sample">3.7.13 ColumnPlot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#StickPlot-sample">3.7.14 StickPlot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stereo-image-sample">3.7.15 Stereo image sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+</table>
+<hr size="6">
+<a name="Curvelinear-coorinates-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Advanced-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2_002daxes-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Curvelinear-coorinates-sample-1"></a>
+<h3 class="subsection">3.7.1 Curvelinear coorinates sample</h3>
+<a name="index-Axis-3"></a>
+<div class="float">
+<img src="../png/sample3.png" alt="../png/sample3">
+</div><pre class="verbatim">origin -1 1 -1
+subplot 2 2 0
+rotate 60 40
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cartesian'
+subplot 2 2 1
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cylindrical'
+subplot 2 2 2
+rotate 60 40
+axis '2*y*x' 'y*y - x*x' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Parabolic'
+subplot 2 2 3
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Spiral'
+axis '' '' '' # set to default Cartesian
+</pre><hr size="6">
+<a name="g_t2_002daxes-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Curvelinear-coorinates-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Semi_002dlog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2_002daxes-sample-1"></a>
+<h3 class="subsection">3.7.2 2-axes sample</h3>
+<a name="index-Axis-4"></a>
+<div class="float">
+<img src="../png/2_axis.png" alt="../png/2_axis">
+</div><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+axis -1 -1 -1 1 1 1
+origin -1 -1 -1
+axis
+ylabel 'axis 1' 0
+plot y1 'b'
+axis 0 0 0 1 1 1
+origin 1 1 1
+axis
+ylabel 'axis 2' 0
+stem y2 'r'
+</pre><hr size="6">
+<a name="Semi_002dlog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2_002daxes-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Log_002dlog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Semi_002dlog-sample-1"></a>
+<h3 class="subsection">3.7.3 Semi-log sample</h3>
+<a name="index-Axis-5"></a>
+<a name="index-SetTicks"></a>
+<a name="index-Plot-3"></a>
+<div class="float">
+<img src="../png/semilog.png" alt="../png/semilog">
+</div><pre class="verbatim">new x 2000
+new y 2000
+modify x '0.01/(x+10^(-5))'
+modify y 'sin(1/v)' x
+xrange 0.01 1000
+origin 0.01 -1 0
+xtick 0
+axis 'lg(x)' '' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g'
+xlabel 'x' 0
+ylabel 'y = sin 1/x' 0
+box
+</pre><hr size="6">
+<a name="Log_002dlog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Semi_002dlog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fitting-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Log_002dlog-sample-1"></a>
+<h3 class="subsection">3.7.4 Log-log sample</h3>
+<a name="index-Axis-6"></a>
+<a name="index-SetTicks-1"></a>
+<a name="index-Plot-4"></a>
+<div class="float">
+<img src="../png/loglog.png" alt="../png/loglog">
+</div><pre class="verbatim">new x 100
+new y 100
+modify x 'pow(10,6*x-3)'
+modify y 'sqrt(1+v^2)' x
+axis 0.001 0.1 1000 1000
+xtick 0
+ytick 0
+axis 'lg(x)' 'lg(y)' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g;'
+xlabel 'x' 0
+ylabel 'y=\sqrt{1+x^2}' 0
+box
+</pre><hr size="6">
+<a name="Fitting-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Log_002dlog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Envelop-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fitting-sample-1"></a>
+<h3 class="subsection">3.7.5 Fitting sample</h3>
+<a name="index-Fit"></a>
+<a name="index-PutsFit"></a>
+<div class="float">
+<img src="../png/fit.png" alt="../png/fit">
+</div><pre class="verbatim">new rnd 100
+fill rnd '0.4*rnd+0.1+sin(2*pi*x)'
+new in 100
+fill in '0.3+sin(2*pi*x)'
+yrange -2 2
+plot rnd '. '
+box
+list ini 1 1 3
+fit res rnd 'a+b*sin(c*x)' 'abc' ini
+plot res 'r'
+plot in 'b'
+text -1 -1.3 'fitted:' 'L:r' -1
+putsfit 0 -1.8 'y = ' 'C:r'
+text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
+</pre><hr size="6">
+<a name="Envelop-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fitting-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Sew-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Envelop-sample-1"></a>
+<h3 class="subsection">3.7.6 Envelop sample</h3>
+<a name="index-Envelop"></a>
+<div class="float">
+<img src="../png/envelop.png" alt="../png/envelop">
+</div><pre class="verbatim">new a 1000
+fill a 'exp(-8*x^2)*sin(10*pi*x)'
+plot a 'b'
+envelop a
+plot a 'r'
+axis
+</pre><hr size="6">
+<a name="Sew-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Envelop-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#STFA-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Sew-sample-1"></a>
+<h3 class="subsection">3.7.7 Sew sample</h3>
+<a name="index-Sew"></a>
+<div class="float">
+<img src="../png/sew.png" alt="../png/sew">
+</div><pre class="verbatim">new a 100 100
+modify a 'mod((y^2-(1-x)^2)/2,0.1)'
+rotate 40 60
+light on
+alpha on
+surf a 'b'
+sew a 'xy' 0.1
+surf a 'r'
+box
+</pre><hr size="6">
+<a name="STFA-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Sew-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#PDE-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="STFA-sample-1"></a>
+<h3 class="subsection">3.7.8 STFA sample</h3>
+<a name="index-STFA"></a>
+<div class="float">
+<img src="../png/stfa.png" alt="../png/stfa">
+</div><pre class="verbatim">new a 2000
+new b 2000
+fill a 'cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)'
+subplot 1 2 0
+plot a
+axis
+xlabel '\i t'
+subplot 1 2 1
+stfa a b 64 ''
+axis
+ylabel '\omega' 0
+xlabel '\i t'
+</pre><hr size="6">
+<a name="PDE-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#STFA-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Beam-tracing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="PDE-sample-1"></a>
+<h3 class="subsection">3.7.9 PDE sample</h3>
+<a name="index-mglPDE"></a>
+<a name="index-mglRay"></a>
+<div class="float">
+<img src="../png/pde.png" alt="../png/pde">
+</div><pre class="verbatim">axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+fill re 'exp(-48*(x+0.7)^2)'
+pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)' re im 0.01 30
+transpose a
+crange 0 1
+dens a 'wyrRk'
+fplot '-x' 'k|'
+text 0 0.85 'absorption: (x+z)/2 for x+z&gt;0' '' -1
+title 'Equation: ik_0\partial_zu + \Delta u + x\cdot u + i \frac{x+z}{2}\cdot u = 0' 'iC' -1.5
+</pre><hr size="6">
+<a name="Beam-tracing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#PDE-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Parser-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Beam-tracing-sample-1"></a>
+<h3 class="subsection">3.7.10 Beam tracing sample</h3>
+<a name="index-mglQO2d"></a>
+<a name="index-mglRay-1"></a>
+<div class="float">
+<img src="../png/qo2d.png" alt="../png/qo2d">
+</div><pre class="verbatim">define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)'
+ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
+plot r(0) r(1) 'k'
+axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+new xx
+new yy
+fill re 'exp(-48*x^2)'
+qo2d a $1 re im r 1 30 xx yy 
+crange 0 1
+dens xx yy a 'wyrRk'
+fplot '-x' 'k|'
+text -0.8 0.85 'absorption: (x+y)/2 for x+y&gt;0' 'L' -1
+text 0.5 -0.05 'central ray' 'L' -1
+title 'Beam and ray tracing' 'C' -1.5
+</pre><hr size="6">
+<a name="Parser-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Beam-tracing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Manual-ticks-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Parser-sample-1"></a>
+<h3 class="subsection">3.7.11 Parser sample</h3>
+<a name="index-mglParse"></a>
+<hr size="6">
+<a name="Manual-ticks-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Parser-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ColumnPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tick-values-sample"></a>
+<h3 class="subsection">3.7.12 Tick values sample</h3>
+<a name="index-SetTicksVal"></a>
+<div class="float">
+<img src="../png/tval.png" alt="../png/tval">
+</div><pre class="verbatim">axis -pi 0 pi 2
+xtick -pi '-\pi' -1.571 '-\pi/2' 0 '0' 0.886 'x^*' 1.571 '\pi/2' pi '\pi'
+axis 
+grid
+fplot '2*cos(x^2)^2' 'r2' nan 300
+</pre><hr size="6">
+<a name="ColumnPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Manual-ticks-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#StickPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ColumnPlot-sample-1"></a>
+<h3 class="subsection">3.7.13 ColumnPlot sample</h3>
+<a name="index-ColumnPlot"></a>
+<div class="float">
+<img src="../png/column.png" alt="../png/column">
+</div><pre class="verbatim">for $1 0 3
+columnplot 4 $1
+box
+text -0.5 0.5 'Plot $1 of 4'
+fplot 'sin(pi*x+pi*$1/2)'
+next
+</pre><hr size="6">
+<a name="StickPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ColumnPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stereo-image-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="StickPlot-sample-1"></a>
+<h3 class="subsection">3.7.14 StickPlot sample</h3>
+<a name="index-StickPlot"></a>
+<div class="float">
+<img src="../png/stick.png" alt="../png/stick">
+</div><pre class="verbatim">ranges -1 1 -1 1 0 1:light on
+stickplot 3 0 40 30 : axis 'xyz_'
+fsurf 'exp(-10*y^2-6*x^2)'
+text 0.2 0 1.2 'z=0' '' -2
+stickplot 3 1 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/2-6*x^2)/sqrt(2)'
+text 0.2 0 1.2 'z=1' '' -2
+stickplot 3 2 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/5-6*x^2)/sqrt(5)'
+text 0.2 0 1.2 'z=2' '' -2
+xlabel '\tau' 0 : ylabel '\rho'
+</pre><hr size="6">
+<a name="Stereo-image-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#StickPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stereo-image-sample-1"></a>
+<h3 class="subsection">3.7.15 Stereo image sample</h3>
+<div class="float">
+<img src="../png/stereo.png" alt="../png/stereo">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+subplot 2 1 0
+rotate 40 60+3
+box:surf a
+subplot 2 1 1
+rotate 40 60-3
+box:surf a
+</pre>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_4.html b/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_4.html
new file mode 100644
index 0000000..e114376
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_4.html
@@ -0,0 +1,542 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: A. GNU Free Documentation License</title>
+
+<meta name="description" content="MGL script language for version 1.11: A. GNU Free Documentation License">
+<meta name="keywords" content="MGL script language for version 1.11: A. GNU Free Documentation License">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Copying-This-Manual"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_3.html#Stereo-image-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="GNU-Free-Documentation-License"></a>
+<h1 class="appendix">A. GNU Free Documentation License</h1>
+<p align="center"> Version 1.2, November 2002
+</p>
+
+<table><tr><td>&nbsp;</td><td><pre class="display">Copyright &copy; 2000,2001,2002 Free Software Foundation, Inc.
+51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+</pre></td></tr></table>
+
+<ol>
+<li>
+PREAMBLE
+
+<p>The purpose of this License is to make a manual, textbook, or other
+functional and useful document <em>free</em> in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+</p>
+<p>This License is a kind of &ldquo;copyleft&rdquo;, which means that derivative
+works of the document must themselves be free in the same sense.  It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+</p>
+<p>We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does.  But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book.  We recommend this License
+principally for works whose purpose is instruction or reference.
+</p>
+</li><li>
+APPLICABILITY AND DEFINITIONS
+
+<p>This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License.  Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein.  The &ldquo;Document&rdquo;, below,
+refers to any such manual or work.  Any member of the public is a
+licensee, and is addressed as &ldquo;you&rdquo;.  You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+</p>
+<p>A &ldquo;Modified Version&rdquo; of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+</p>
+<p>A &ldquo;Secondary Section&rdquo; is a named appendix or a front-matter section
+of the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document&rsquo;s overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject.  (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.)  The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+</p>
+<p>The &ldquo;Invariant Sections&rdquo; are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License.  If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant.  The Document may contain zero
+Invariant Sections.  If the Document does not identify any Invariant
+Sections then there are none.
+</p>
+<p>The &ldquo;Cover Texts&rdquo; are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.  A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+</p>
+<p>A &ldquo;Transparent&rdquo; copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters.  A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text.  A copy that is not &ldquo;Transparent&rdquo; is called &ldquo;Opaque&rdquo;.
+</p>
+<p>Examples of suitable formats for Transparent copies include plain
+<small>ASCII</small> without markup, Texinfo input format, LaTeX input
+format, <acronym>SGML</acronym> or <acronym>XML</acronym> using a publicly available
+<acronym>DTD</acronym>, and standard-conforming simple <acronym>HTML</acronym>,
+PostScript or <acronym>PDF</acronym> designed for human modification.  Examples
+of transparent image formats include <acronym>PNG</acronym>, <acronym>XCF</acronym> and
+<acronym>JPG</acronym>.  Opaque formats include proprietary formats that can be
+read and edited only by proprietary word processors, <acronym>SGML</acronym> or
+<acronym>XML</acronym> for which the <acronym>DTD</acronym> and/or processing tools are
+not generally available, and the machine-generated <acronym>HTML</acronym>,
+PostScript or <acronym>PDF</acronym> produced by some word processors for
+output purposes only.
+</p>
+<p>The &ldquo;Title Page&rdquo; means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page.  For works in
+formats which do not have any title page as such, &ldquo;Title Page&rdquo; means
+the text near the most prominent appearance of the work&rsquo;s title,
+preceding the beginning of the body of the text.
+</p>
+<p>A section &ldquo;Entitled XYZ&rdquo; means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language.  (Here XYZ stands for a
+specific section name mentioned below, such as &ldquo;Acknowledgements&rdquo;,
+&ldquo;Dedications&rdquo;, &ldquo;Endorsements&rdquo;, or &ldquo;History&rdquo;.)  To &ldquo;Preserve the Title&rdquo;
+of such a section when you modify the Document means that it remains a
+section &ldquo;Entitled XYZ&rdquo; according to this definition.
+</p>
+<p>The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document.  These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+</p>
+</li><li>
+VERBATIM COPYING
+
+<p>You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License.  You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute.  However, you may accept
+compensation in exchange for copies.  If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+</p>
+<p>You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+</p>
+</li><li>
+COPYING IN QUANTITY
+
+<p>If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document&rsquo;s license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover.  Both covers must also clearly and legibly identify
+you as the publisher of these copies.  The front cover must present
+the full title with all words of the title equally prominent and
+visible.  You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+</p>
+<p>If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+</p>
+<p>If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+</p>
+<p>It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+</p>
+</li><li>
+MODIFICATIONS
+
+<p>You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it.  In addition, you must do these things in the Modified Version:
+</p>
+<ol>
+<li>
+Use in the Title Page (and on the covers, if any) a title distinct
+from that of the Document, and from those of previous versions
+(which should, if there were any, be listed in the History section
+of the Document).  You may use the same title as a previous version
+if the original publisher of that version gives permission.
+
+</li><li>
+List on the Title Page, as authors, one or more persons or entities
+responsible for authorship of the modifications in the Modified
+Version, together with at least five of the principal authors of the
+Document (all of its principal authors, if it has fewer than five),
+unless they release you from this requirement.
+
+</li><li>
+State on the Title page the name of the publisher of the
+Modified Version, as the publisher.
+
+</li><li>
+Preserve all the copyright notices of the Document.
+
+</li><li>
+Add an appropriate copyright notice for your modifications
+adjacent to the other copyright notices.
+
+</li><li>
+Include, immediately after the copyright notices, a license notice
+giving the public permission to use the Modified Version under the
+terms of this License, in the form shown in the Addendum below.
+
+</li><li>
+Preserve in that license notice the full lists of Invariant Sections
+and required Cover Texts given in the Document&rsquo;s license notice.
+
+</li><li>
+Include an unaltered copy of this License.
+
+</li><li>
+Preserve the section Entitled &ldquo;History&rdquo;, Preserve its Title, and add
+to it an item stating at least the title, year, new authors, and
+publisher of the Modified Version as given on the Title Page.  If
+there is no section Entitled &ldquo;History&rdquo; in the Document, create one
+stating the title, year, authors, and publisher of the Document as
+given on its Title Page, then add an item describing the Modified
+Version as stated in the previous sentence.
+
+</li><li>
+Preserve the network location, if any, given in the Document for
+public access to a Transparent copy of the Document, and likewise
+the network locations given in the Document for previous versions
+it was based on.  These may be placed in the &ldquo;History&rdquo; section.
+You may omit a network location for a work that was published at
+least four years before the Document itself, or if the original
+publisher of the version it refers to gives permission.
+
+</li><li>
+For any section Entitled &ldquo;Acknowledgements&rdquo; or &ldquo;Dedications&rdquo;, Preserve
+the Title of the section, and preserve in the section all the
+substance and tone of each of the contributor acknowledgements and/or
+dedications given therein.
+
+</li><li>
+Preserve all the Invariant Sections of the Document,
+unaltered in their text and in their titles.  Section numbers
+or the equivalent are not considered part of the section titles.
+
+</li><li>
+Delete any section Entitled &ldquo;Endorsements&rdquo;.  Such a section
+may not be included in the Modified Version.
+
+</li><li>
+Do not retitle any existing section to be Entitled &ldquo;Endorsements&rdquo; or
+to conflict in title with any Invariant Section.
+
+</li><li>
+Preserve any Warranty Disclaimers.
+</li></ol>
+
+<p>If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant.  To do this, add their titles to the
+list of Invariant Sections in the Modified Version&rsquo;s license notice.
+These titles must be distinct from any other section titles.
+</p>
+<p>You may add a section Entitled &ldquo;Endorsements&rdquo;, provided it contains
+nothing but endorsements of your Modified Version by various
+parties&mdash;for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+</p>
+<p>You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version.  Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity.  If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+</p>
+<p>The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+</p>
+</li><li>
+COMBINING DOCUMENTS
+
+<p>You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+</p>
+<p>The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy.  If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+</p>
+<p>In the combination, you must combine any sections Entitled &ldquo;History&rdquo;
+in the various original documents, forming one section Entitled
+&ldquo;History&rdquo;; likewise combine any sections Entitled &ldquo;Acknowledgements&rdquo;,
+and any sections Entitled &ldquo;Dedications&rdquo;.  You must delete all
+sections Entitled &ldquo;Endorsements.&rdquo;
+</p>
+</li><li>
+COLLECTIONS OF DOCUMENTS
+
+<p>You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+</p>
+<p>You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+</p>
+</li><li>
+AGGREGATION WITH INDEPENDENT WORKS
+
+<p>A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an &ldquo;aggregate&rdquo; if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation&rsquo;s users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+</p>
+<p>If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document&rsquo;s Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+</p>
+</li><li>
+TRANSLATION
+
+<p>Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections.  You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers.  In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+</p>
+<p>If a section in the Document is Entitled &ldquo;Acknowledgements&rdquo;,
+&ldquo;Dedications&rdquo;, or &ldquo;History&rdquo;, the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+</p>
+</li><li>
+TERMINATION
+
+<p>You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License.  Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License.  However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+</p>
+</li><li>
+FUTURE REVISIONS OF THIS LICENSE
+
+<p>The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time.  Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.  See
+<a href="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</a>.
+</p>
+<p>Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License &ldquo;or any later version&rdquo; applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation.  If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+</p></li></ol>
+
+
+<a name="ADDENDUM_003a-How-to-use-this-License-for-your-documents"></a>
+<h2 class="heading">ADDENDUM: How to use this License for your documents</h2>
+
+<p>To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample">  Copyright (C)  <var>year</var>  <var>your name</var>.
+  Permission is granted to copy, distribute and/or modify this document
+  under the terms of the GNU Free Documentation License, Version 1.2
+  or any later version published by the Free Software Foundation;
+  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+  Texts.  A copy of the license is included in the section entitled ``GNU
+  Free Documentation License''.
+</pre></td></tr></table>
+
+<p>If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the &ldquo;with&hellip;Texts.&rdquo; line with this:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample">    with the Invariant Sections being <var>list their titles</var>, with
+    the Front-Cover Texts being <var>list</var>, and with the Back-Cover Texts
+    being <var>list</var>.
+</pre></td></tr></table>
+
+<p>If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+</p>
+<p>If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
+</p>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_5.html b/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_5.html
new file mode 100644
index 0000000..b13f39f
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_5.html
@@ -0,0 +1,323 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: Index</title>
+
+<meta name="description" content="MGL script language for version 1.11: Index">
+<meta name="keywords" content="MGL script language for version 1.11: Index">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Index"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_6.html#index_split-0" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Index-1"></a>
+<h1 class="unnumbered">Index</h1>
+
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Index-1_cp_letter-A">A</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-AddLegend">AddLegend</a></td><td valign="top"><a href="mgl_en_3.html#Legend-sample">3.6.1 Legend sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-addlegend">addlegend</a></td><td valign="top"><a href="mgl_en_1.html#Legend">1.9 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-addto">addto</a></td><td valign="top"><a href="mgl_en_1.html#Operators">1.23 Operators</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-adjust">adjust</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Alpha">Alpha</a></td><td valign="top"><a href="mgl_en_3.html#Transparent-surface-sample">3.2.2 Transparent surface sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-alpha">alpha</a></td><td valign="top"><a href="mgl_en_1.html#Transparency">1.2.1 Transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Alpha-1">Alpha</a></td><td valign="top"><a href="mgl_en_3.html#g_t2D-plot-sample">3.5.2 2D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-alpha-2">alpha</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Alpha-2">Alpha</a></td><td valign="top"><a href="mgl_en_3.html#g_t3D-plot-sample">3.5.3 3D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-alphadef">alphadef</a></td><td valign="top"><a href="mgl_en_1.html#Transparency">1.2.1 Transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-alphadef-2">alphadef</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ambient">ambient</a></td><td valign="top"><a href="mgl_en_1.html#Lighting">1.2.2 Lighting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ambient-2">ambient</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-area">area</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Area">Area</a></td><td valign="top"><a href="mgl_en_3.html#Area-sample">3.1.4 Area sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Area-1">Area</a></td><td valign="top"><a href="mgl_en_3.html#Area-gradient-sample">3.1.5 Area with gradient filling sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-Arrows">Arrows</a></td><td valign="top"><a href="mgl_en_1.html#Line-styles">1.1.2 Line styles</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-arrowsize">arrowsize</a></td><td valign="top"><a href="mgl_en_1.html#Default-sizes">1.2.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-aspect">aspect</a></td><td valign="top"><a href="mgl_en_1.html#Transformation-matrix">1.4 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Axial">Axial</a></td><td valign="top"><a href="mgl_en_3.html#Axial-sample">3.2.14 Axial sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-axial">axial</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Axial-1">Axial</a></td><td valign="top"><a href="mgl_en_3.html#Adding-mesh-sample">3.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-axialdir">axialdir</a></td><td valign="top"><a href="mgl_en_1.html#Other-settings">1.2.7 Other settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-axis">axis</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Axis">Axis</a></td><td valign="top"><a href="mgl_en_3.html#Pie-chart-sample">3.1.23 Pie chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Axis-1">Axis</a></td><td valign="top"><a href="mgl_en_3.html#Ring-chart-sample">3.1.24 Ring chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-axis-5">axis</a></td><td valign="top"><a href="mgl_en_1.html#Axis-and-Colorbar">1.8 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Axis-2">Axis</a></td><td valign="top"><a href="mgl_en_3.html#Dens3-sample">3.3.4 Dens3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Axis-3">Axis</a></td><td valign="top"><a href="mgl_en_3.html#Curvelinear-coorinates-sample">3.7.1 Curvelinear coorinates sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Axis-4">Axis</a></td><td valign="top"><a href="mgl_en_3.html#g_t2_002daxes-sample">3.7.2 2-axes sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Axis-5">Axis</a></td><td valign="top"><a href="mgl_en_3.html#Semi_002dlog-sample">3.7.3 Semi-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Axis-6">Axis</a></td><td valign="top"><a href="mgl_en_3.html#Log_002dlog-sample">3.7.4 Log-log sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Index-1_cp_letter-B">B</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ball">ball</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-barh">barh</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Barh">Barh</a></td><td valign="top"><a href="mgl_en_3.html#Barh-sample">3.1.10 Barh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-bars">bars</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Bars">Bars</a></td><td valign="top"><a href="mgl_en_3.html#Bars-sample">3.1.6 Bars sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Bars-1">Bars</a></td><td valign="top"><a href="mgl_en_3.html#Bars-2-colors-sample">3.1.7 Bars 2 colors sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Bars-2">Bars</a></td><td valign="top"><a href="mgl_en_3.html#Bars-above-sample">3.1.8 Bars above sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Bars-3">Bars</a></td><td valign="top"><a href="mgl_en_3.html#Bars-fall-sample">3.1.9 Bars fall sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Bars-4">Bars</a></td><td valign="top"><a href="mgl_en_3.html#g_t1D-plot-sample">3.5.1 1D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-barwidth">barwidth</a></td><td valign="top"><a href="mgl_en_1.html#Default-sizes">1.2.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-beam">beam</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Belt">Belt</a></td><td valign="top"><a href="mgl_en_3.html#Belt-sample">3.2.7 Belt sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-belt">belt</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-box">box</a></td><td valign="top"><a href="mgl_en_1.html#Axis-and-Colorbar">1.8 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-BoxPlot">BoxPlot</a></td><td valign="top"><a href="mgl_en_3.html#BoxPlot-sample">3.1.16 BoxPlot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-boxplot">boxplot</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-boxs">boxs</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Boxs">Boxs</a></td><td valign="top"><a href="mgl_en_3.html#Boxs-sample">3.2.9 Boxs sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Index-1_cp_letter-C">C</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-call">call</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-caxis">caxis</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-chart">chart</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Chart">Chart</a></td><td valign="top"><a href="mgl_en_3.html#Chart-sample">3.1.22 Chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Chart-1">Chart</a></td><td valign="top"><a href="mgl_en_3.html#Pie-chart-sample">3.1.23 Pie chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Chart-2">Chart</a></td><td valign="top"><a href="mgl_en_3.html#Ring-chart-sample">3.1.24 Ring chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-chdir">chdir</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-clearlegend">clearlegend</a></td><td valign="top"><a href="mgl_en_1.html#Legend">1.9 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-clf">clf</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-cloud">cloud</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Cloud">Cloud</a></td><td valign="top"><a href="mgl_en_3.html#Cloud-sample">3.3.2 Cloud sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-CloudP">CloudP</a></td><td valign="top"><a href="mgl_en_3.html#CloudP-sample">3.3.3 CloudP sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-Color-scheme">Color scheme</a></td><td valign="top"><a href="mgl_en_1.html#Color-scheme">1.1.3 Color scheme</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-colorbar">colorbar</a></td><td valign="top"><a href="mgl_en_1.html#Axis-and-Colorbar">1.8 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Colorbar">Colorbar</a></td><td valign="top"><a href="mgl_en_3.html#Dens-sample">3.2.10 Dens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Colorbar-1">Colorbar</a></td><td valign="top"><a href="mgl_en_3.html#Color-schemes-sample">3.5.10 Color schemes sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-ColumnPlot">ColumnPlot</a></td><td valign="top"><a href="mgl_en_3.html#ColumnPlot-sample">3.7.13 ColumnPlot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-columnplot">columnplot</a></td><td valign="top"><a href="mgl_en_1.html#Transformation-matrix">1.4 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-combine">combine</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-cone">cone</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Cont">Cont</a></td><td valign="top"><a href="mgl_en_3.html#Cont-sample">3.2.11 Cont sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-cont">cont</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Cont-1">Cont</a></td><td valign="top"><a href="mgl_en_3.html#Adding-mesh-sample">3.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Cont-2">Cont</a></td><td valign="top"><a href="mgl_en_3.html#Surf-_0026-Cont-sample">3.6.3 Surf &amp; Cont sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Cont-3">Cont</a></td><td valign="top"><a href="mgl_en_3.html#Cont-with-labels-sample">3.6.7 Cont with labels sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Cont3">Cont3</a></td><td valign="top"><a href="mgl_en_3.html#Cont3-sample">3.3.5 Cont3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-cont3">cont3</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-conta">conta</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-contd">contd</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-ContD">ContD</a></td><td valign="top"><a href="mgl_en_3.html#ContD-sample">3.2.13 ContD sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-contf">contf</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-ContF">ContF</a></td><td valign="top"><a href="mgl_en_3.html#ContF-sample">3.2.12 ContF sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-ContF3">ContF3</a></td><td valign="top"><a href="mgl_en_3.html#ContF3-sample">3.3.6 ContF3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-contf3">contf3</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-ContF3-1">ContF3</a></td><td valign="top"><a href="mgl_en_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-contfa">contfa</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-contfx">contfx</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-contfy">contfy</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-contfz">contfz</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-ContX">ContX</a></td><td valign="top"><a href="mgl_en_3.html#Cont-projection-sample">3.3.7 Cont projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-contx">contx</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-ContY">ContY</a></td><td valign="top"><a href="mgl_en_3.html#Cont-projection-sample">3.3.7 Cont projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-conty">conty</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-contz">contz</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-ContZ">ContZ</a></td><td valign="top"><a href="mgl_en_3.html#Cont-projection-sample">3.3.7 Cont projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-copy">copy</a></td><td valign="top"><a href="mgl_en_1.html#Data-create">1.17 Data create</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-cosfft">cosfft</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-crange">crange</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-crange-3">crange</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-crop">crop</a></td><td valign="top"><a href="mgl_en_1.html#Rearrange-data">1.19 Rearrange data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-crust">crust</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Crust">Crust</a></td><td valign="top"><a href="mgl_en_3.html#Crust-sample">3.4.19 Crust sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ctick">ctick</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-cumsum">cumsum</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-curve">curve</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-cut">cut</a></td><td valign="top"><a href="mgl_en_1.html#Cutting">1.2.6 Cutting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-cut-4">cut</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-CutMax">CutMax</a></td><td valign="top"><a href="mgl_en_3.html#CutMinMax-sample">3.3.9 CutMinMax sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-CutMax-1">CutMax</a></td><td valign="top"><a href="mgl_en_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-CutMin">CutMin</a></td><td valign="top"><a href="mgl_en_3.html#CutMinMax-sample">3.3.9 CutMinMax sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-CutMin-1">CutMin</a></td><td valign="top"><a href="mgl_en_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-CutOff">CutOff</a></td><td valign="top"><a href="mgl_en_3.html#CutOff-sample">3.3.11 CutOff sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_6.html b/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_6.html
new file mode 100644
index 0000000..59b4d96
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_6.html
@@ -0,0 +1,338 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: Index: D &ndash; M</title>
+
+<meta name="description" content="MGL script language for version 1.11: Index: D &ndash; M">
+<meta name="keywords" content="MGL script language for version 1.11: Index: D &ndash; M">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-0"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_7.html#index_split-1" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Index: D &ndash; M</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_en_5.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-D">D</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-defchr">defchr</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-define">define</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-defnum">defnum</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-defpal">defpal</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-delete">delete</a></td><td valign="top"><a href="mgl_en_1.html#Rearrange-data">1.19 Rearrange data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-dens">dens</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Dens">Dens</a></td><td valign="top"><a href="mgl_en_3.html#Dens-sample">3.2.10 Dens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Dens-1">Dens</a></td><td valign="top"><a href="mgl_en_3.html#g_t2D-plot-sample">3.5.2 2D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Dens-2">Dens</a></td><td valign="top"><a href="mgl_en_3.html#g_t3D-plot-sample">3.5.3 3D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Dens-3">Dens</a></td><td valign="top"><a href="mgl_en_3.html#Adding-mesh-sample">3.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Dens-4">Dens</a></td><td valign="top"><a href="mgl_en_3.html#Flow-_0026-Dens-sample">3.6.4 Flow &amp; Dens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-dens3">dens3</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Dens3">Dens3</a></td><td valign="top"><a href="mgl_en_3.html#Dens3-sample">3.3.4 Dens3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-densa">densa</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-densx">densx</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-DensX">DensX</a></td><td valign="top"><a href="mgl_en_3.html#Dens-projection-sample">3.3.8 Dens projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-DensY">DensY</a></td><td valign="top"><a href="mgl_en_3.html#Dens-projection-sample">3.3.8 Dens projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-densy">densy</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-densz">densz</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-DensZ">DensZ</a></td><td valign="top"><a href="mgl_en_3.html#Dens-projection-sample">3.3.8 Dens projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Dew">Dew</a></td><td valign="top"><a href="mgl_en_3.html#Dew-sample">3.4.11 Dew sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-dew">dew</a></td><td valign="top"><a href="mgl_en_1.html#Vector-fields">1.14 Vector fields</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-diff">diff</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-diff2">diff2</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-divto">divto</a></td><td valign="top"><a href="mgl_en_1.html#Operators">1.23 Operators</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-dots">dots</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Dots">Dots</a></td><td valign="top"><a href="mgl_en_3.html#Dots-sample">3.4.20 Dots sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-drop">drop</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Drop">Drop</a></td><td valign="top"><a href="mgl_en_3.html#Drops-sample">3.6.10 Drops sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Drop-1">Drop</a></td><td valign="top"><a href="mgl_en_3.html#Molecules-drawing-sample">3.6.11 Molecules drawing sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-E">E</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-else">else</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-elseif">elseif</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-endif">endif</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-envelop">envelop</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Envelop">Envelop</a></td><td valign="top"><a href="mgl_en_3.html#Envelop-sample">3.7.6 Envelop sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Error">Error</a></td><td valign="top"><a href="mgl_en_3.html#Error-sample">3.1.15 Error sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-error">error</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-evaluate">evaluate</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-export">export</a></td><td valign="top"><a href="mgl_en_1.html#File-I_002fO">1.20 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-extend">extend</a></td><td valign="top"><a href="mgl_en_1.html#Rearrange-data">1.19 Rearrange data</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-F">F</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-facex">facex</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-facey">facey</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-facez">facez</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fall">fall</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Fall">Fall</a></td><td valign="top"><a href="mgl_en_3.html#Fall-sample">3.2.6 Fall sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fgets">fgets</a></td><td valign="top"><a href="mgl_en_1.html#Text-printing">1.7 Text printing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fill">fill</a></td><td valign="top"><a href="mgl_en_1.html#Data-filling">1.18 Data filling</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fill-1">fill</a></td><td valign="top"><a href="mgl_en_1.html#Data-filling">1.18 Data filling</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fit">fit</a></td><td valign="top"><a href="mgl_en_1.html#Nonlinear-fitting">1.16 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Fit">Fit</a></td><td valign="top"><a href="mgl_en_3.html#Fitting-sample">3.7.5 Fitting sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fits">fits</a></td><td valign="top"><a href="mgl_en_1.html#Nonlinear-fitting">1.16 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Flow">Flow</a></td><td valign="top"><a href="mgl_en_3.html#Flow-sample">3.4.9 Flow sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-flow">flow</a></td><td valign="top"><a href="mgl_en_1.html#Vector-fields">1.14 Vector fields</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Flow-1">Flow</a></td><td valign="top"><a href="mgl_en_3.html#Flow-3D-sample">3.4.17 Flow 3D sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Flow-2">Flow</a></td><td valign="top"><a href="mgl_en_3.html#Flow-_0026-Dens-sample">3.6.4 Flow &amp; Dens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fog">fog</a></td><td valign="top"><a href="mgl_en_1.html#Fog">1.2.3 Fog</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Fog">Fog</a></td><td valign="top"><a href="mgl_en_3.html#Surface-in-fog-sample">3.2.3 Surface in fog sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-font">font</a></td><td valign="top"><a href="mgl_en_1.html#Other-settings">1.2.7 Other settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-Font-styles">Font styles</a></td><td valign="top"><a href="mgl_en_1.html#Font-styles">1.1.4 Font styles</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fontsize">fontsize</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-for">for</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fplot">fplot</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fsurf">fsurf</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-func">func</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-G">G</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-grad">grad</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Grad">Grad</a></td><td valign="top"><a href="mgl_en_3.html#Grad-sample">3.2.15 Grad sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-grid">grid</a></td><td valign="top"><a href="mgl_en_1.html#Axis-and-Colorbar">1.8 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-grid2">grid2</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-grid3">grid3</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-grida">grida</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-H">H</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-hankel">hankel</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-hist">hist</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-I">I</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-idset">idset</a></td><td valign="top"><a href="mgl_en_1.html#Data-create">1.17 Data create</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-if">if</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-import">import</a></td><td valign="top"><a href="mgl_en_1.html#File-I_002fO">1.20 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-info">info</a></td><td valign="top"><a href="mgl_en_1.html#Data-create">1.17 Data create</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-inplot">inplot</a></td><td valign="top"><a href="mgl_en_1.html#Transformation-matrix">1.4 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-insert">insert</a></td><td valign="top"><a href="mgl_en_1.html#Rearrange-data">1.19 Rearrange data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-integrate">integrate</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-J">J</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-jacobian">jacobian</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-L">L</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Legend">Legend</a></td><td valign="top"><a href="mgl_en_3.html#Legend-sample">3.6.1 Legend sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-legend">legend</a></td><td valign="top"><a href="mgl_en_1.html#Legend">1.9 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-legend-3">legend</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-legendbox">legendbox</a></td><td valign="top"><a href="mgl_en_1.html#Legend">1.9 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-legendmarks">legendmarks</a></td><td valign="top"><a href="mgl_en_1.html#Legend">1.9 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-light">light</a></td><td valign="top"><a href="mgl_en_1.html#Lighting">1.2.2 Lighting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Light">Light</a></td><td valign="top"><a href="mgl_en_3.html#Several-light-sample">3.6.5 Several light sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Line">Line</a></td><td valign="top"><a href="mgl_en_3.html#Line-styles-sample">3.5.4 Line styles sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-line">line</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Line-1">Line</a></td><td valign="top"><a href="mgl_en_3.html#Arrow-styles-sample">3.5.5 Arrow styles sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-Line-style">Line style</a></td><td valign="top"><a href="mgl_en_1.html#Line-styles">1.1.2 Line styles</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-linewidth">linewidth</a></td><td valign="top"><a href="mgl_en_1.html#Default-sizes">1.2.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-list">list</a></td><td valign="top"><a href="mgl_en_1.html#Data-create">1.17 Data create</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-M">M</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-map">map</a></td><td valign="top"><a href="mgl_en_1.html#Dual-plotting">1.13 Dual plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Map">Map</a></td><td valign="top"><a href="mgl_en_3.html#Map-sample">3.4.4 Map sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-mark">mark</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Mark">Mark</a></td><td valign="top"><a href="mgl_en_3.html#Mark-sample">3.1.17 Mark sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Mark-1">Mark</a></td><td valign="top"><a href="mgl_en_3.html#Line-styles-sample">3.5.4 Line styles sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-Mark-style">Mark style</a></td><td valign="top"><a href="mgl_en_1.html#Line-styles">1.1.2 Line styles</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-marksize">marksize</a></td><td valign="top"><a href="mgl_en_1.html#Default-sizes">1.2.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-marksize-2">marksize</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-max">max</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-mesh">mesh</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Mesh">Mesh</a></td><td valign="top"><a href="mgl_en_3.html#Mesh-sample">3.2.5 Mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-meshnum">meshnum</a></td><td valign="top"><a href="mgl_en_1.html#Other-settings">1.2.7 Other settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-meshnum-2">meshnum</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-mglParse">mglParse</a></td><td valign="top"><a href="mgl_en_3.html#Parser-sample">3.7.11 Parser sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-mglPDE">mglPDE</a></td><td valign="top"><a href="mgl_en_3.html#PDE-sample">3.7.9 PDE sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-mglQO2d">mglQO2d</a></td><td valign="top"><a href="mgl_en_3.html#Beam-tracing-sample">3.7.10 Beam tracing sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-mglRay">mglRay</a></td><td valign="top"><a href="mgl_en_3.html#PDE-sample">3.7.9 PDE sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-mglRay-1">mglRay</a></td><td valign="top"><a href="mgl_en_3.html#Beam-tracing-sample">3.7.10 Beam tracing sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-min">min</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-mirror">mirror</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-modify">modify</a></td><td valign="top"><a href="mgl_en_1.html#Data-filling">1.18 Data filling</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-modify-1">modify</a></td><td valign="top"><a href="mgl_en_1.html#Data-filling">1.18 Data filling</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-momentum">momentum</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-multo">multo</a></td><td valign="top"><a href="mgl_en_1.html#Operators">1.23 Operators</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_en_5.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_7.html b/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_7.html
new file mode 100644
index 0000000..8ef3996
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_7.html
@@ -0,0 +1,351 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: Index: N &ndash; T</title>
+
+<meta name="description" content="MGL script language for version 1.11: Index: N &ndash; T">
+<meta name="keywords" content="MGL script language for version 1.11: Index: N &ndash; T">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-1"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_6.html#index_split-0" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_8.html#index_split-2" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Index: N &ndash; T</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_en_5.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-N">N</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-new">new</a></td><td valign="top"><a href="mgl_en_1.html#Data-create">1.17 Data create</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-next">next</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-norm">norm</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-normsl">normsl</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-O">O</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-once">once</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-origin">origin</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-P">P</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-palette">palette</a></td><td valign="top"><a href="mgl_en_1.html#Other-settings">1.2.7 Other settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-pde">pde</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-perspective">perspective</a></td><td valign="top"><a href="mgl_en_1.html#Transformation-matrix">1.4 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-pipe">pipe</a></td><td valign="top"><a href="mgl_en_1.html#Vector-fields">1.14 Vector fields</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Pipe">Pipe</a></td><td valign="top"><a href="mgl_en_3.html#Pipe-sample">3.4.10 Pipe sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Pipe-1">Pipe</a></td><td valign="top"><a href="mgl_en_3.html#Pipe-3D-sample">3.4.18 Pipe 3D sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Plot">Plot</a></td><td valign="top"><a href="mgl_en_3.html#Plot-sample">3.1.1 Plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-plot">plot</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Plot-1">Plot</a></td><td valign="top"><a href="mgl_en_3.html#g_t1D-plot-sample">3.5.1 1D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Plot-2">Plot</a></td><td valign="top"><a href="mgl_en_3.html#Legend-sample">3.6.1 Legend sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Plot-3">Plot</a></td><td valign="top"><a href="mgl_en_3.html#Semi_002dlog-sample">3.7.3 Semi-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Plot-4">Plot</a></td><td valign="top"><a href="mgl_en_3.html#Log_002dlog-sample">3.7.4 Log-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-plotfactor">plotfactor</a></td><td valign="top"><a href="mgl_en_1.html#Zooming">1.2.5 Zooming</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-put">put</a></td><td valign="top"><a href="mgl_en_1.html#Data-filling">1.18 Data filling</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Puts">Puts</a></td><td valign="top"><a href="mgl_en_3.html#Text-styles-sample">3.5.6 Text styles sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Puts-1">Puts</a></td><td valign="top"><a href="mgl_en_3.html#TeX-parsing-sample">3.5.7 TeX parsing sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Puts-2">Puts</a></td><td valign="top"><a href="mgl_en_3.html#Font-faces-sample">3.5.8 Font faces sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-PutsFit">PutsFit</a></td><td valign="top"><a href="mgl_en_3.html#Fitting-sample">3.7.5 Fitting sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-putsfit">putsfit</a></td><td valign="top"><a href="mgl_en_1.html#Nonlinear-fitting">1.16 Nonlinear fitting</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-Q">Q</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-qo2d">qo2d</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-quadplot">quadplot</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-R">R</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Radar">Radar</a></td><td valign="top"><a href="mgl_en_3.html#Radar-sample">3.1.2 Radar sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-radar">radar</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ranges">ranges</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ray">ray</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-read">read</a></td><td valign="top"><a href="mgl_en_1.html#File-I_002fO">1.20 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-readall">readall</a></td><td valign="top"><a href="mgl_en_1.html#File-I_002fO">1.20 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-readhdf">readhdf</a></td><td valign="top"><a href="mgl_en_1.html#File-I_002fO">1.20 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-readmat">readmat</a></td><td valign="top"><a href="mgl_en_1.html#File-I_002fO">1.20 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-rearrange">rearrange</a></td><td valign="top"><a href="mgl_en_1.html#Rearrange-data">1.19 Rearrange data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-rect">rect</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Region">Region</a></td><td valign="top"><a href="mgl_en_3.html#Region-sample">3.1.13 Region sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-region">region</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Region-1">Region</a></td><td valign="top"><a href="mgl_en_3.html#Region-gradient-sample">3.1.14 Region gradient sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-resize">resize</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-return">return</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-roll">roll</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-rotate">rotate</a></td><td valign="top"><a href="mgl_en_1.html#Transformation-matrix">1.4 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-rotatetext">rotatetext</a></td><td valign="top"><a href="mgl_en_1.html#Other-settings">1.2.7 Other settings</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-S">S</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-save">save</a></td><td valign="top"><a href="mgl_en_1.html#File-I_002fO">1.20 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-savehdf">savehdf</a></td><td valign="top"><a href="mgl_en_1.html#File-I_002fO">1.20 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-setsize">setsize</a></td><td valign="top"><a href="mgl_en_1.html#Export-to-file">1.5 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-SetTicks">SetTicks</a></td><td valign="top"><a href="mgl_en_3.html#Semi_002dlog-sample">3.7.3 Semi-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-SetTicks-1">SetTicks</a></td><td valign="top"><a href="mgl_en_3.html#Log_002dlog-sample">3.7.4 Log-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-SetTicksVal">SetTicksVal</a></td><td valign="top"><a href="mgl_en_3.html#Manual-ticks-sample">3.7.12 Tick values sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Sew">Sew</a></td><td valign="top"><a href="mgl_en_3.html#Sew-sample">3.7.7 Sew sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-sew">sew</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-sinfft">sinfft</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-smooth">smooth</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Sphere">Sphere</a></td><td valign="top"><a href="mgl_en_3.html#Molecules-drawing-sample">3.6.11 Molecules drawing sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-sphere">sphere</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-squeeze">squeeze</a></td><td valign="top"><a href="mgl_en_1.html#Rearrange-data">1.19 Rearrange data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-stem">stem</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Stem">Stem</a></td><td valign="top"><a href="mgl_en_3.html#Stem-sample">3.1.12 Stem sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-step">step</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Step">Step</a></td><td valign="top"><a href="mgl_en_3.html#Step-sample">3.1.11 Step sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-stfa">stfa</a></td><td valign="top"><a href="mgl_en_1.html#Dual-plotting">1.13 Dual plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-STFA">STFA</a></td><td valign="top"><a href="mgl_en_3.html#STFA-sample">3.7.8 STFA sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-stfad">stfad</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-StickPlot">StickPlot</a></td><td valign="top"><a href="mgl_en_3.html#StickPlot-sample">3.7.14 StickPlot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-stickplot">stickplot</a></td><td valign="top"><a href="mgl_en_1.html#Transformation-matrix">1.4 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-stop">stop</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-subdata">subdata</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-SubPlot">SubPlot</a></td><td valign="top"><a href="mgl_en_3.html#g_t1D-plot-sample">3.5.1 1D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-subplot">subplot</a></td><td valign="top"><a href="mgl_en_1.html#Transformation-matrix">1.4 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-SubPlot-1">SubPlot</a></td><td valign="top"><a href="mgl_en_3.html#Adding-mesh-sample">3.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-subto">subto</a></td><td valign="top"><a href="mgl_en_1.html#Operators">1.23 Operators</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-sum">sum</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf">Surf</a></td><td valign="top"><a href="mgl_en_3.html#Surf-sample">3.2.1 Surf sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-surf">surf</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf-1">Surf</a></td><td valign="top"><a href="mgl_en_3.html#Transparent-surface-sample">3.2.2 Transparent surface sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf-2">Surf</a></td><td valign="top"><a href="mgl_en_3.html#Surface-in-fog-sample">3.2.3 Surface in fog sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf-3">Surf</a></td><td valign="top"><a href="mgl_en_3.html#Sharp-colors-sample">3.2.4 Sharp colors sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf-4">Surf</a></td><td valign="top"><a href="mgl_en_3.html#g_t2D-plot-sample">3.5.2 2D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf-5">Surf</a></td><td valign="top"><a href="mgl_en_3.html#g_t3D-plot-sample">3.5.3 3D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf-6">Surf</a></td><td valign="top"><a href="mgl_en_3.html#Adding-mesh-sample">3.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf-7">Surf</a></td><td valign="top"><a href="mgl_en_3.html#Surf-_0026-Cont-sample">3.6.3 Surf &amp; Cont sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf-8">Surf</a></td><td valign="top"><a href="mgl_en_3.html#Several-light-sample">3.6.5 Several light sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf-9">Surf</a></td><td valign="top"><a href="mgl_en_3.html#Mirrored-surface-sample">3.6.6 Mirrored surface sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-surf3">surf3</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf3">Surf3</a></td><td valign="top"><a href="mgl_en_3.html#Surf3-sample">3.3.1 Surf3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf3-1">Surf3</a></td><td valign="top"><a href="mgl_en_3.html#CutMinMax-sample">3.3.9 CutMinMax sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf3-2">Surf3</a></td><td valign="top"><a href="mgl_en_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf3-3">Surf3</a></td><td valign="top"><a href="mgl_en_3.html#CutOff-sample">3.3.11 CutOff sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf3-4">Surf3</a></td><td valign="top"><a href="mgl_en_3.html#Coloring-by-coordinates-sample">3.6.9 Coloring by coordinates sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf3A">Surf3A</a></td><td valign="top"><a href="mgl_en_3.html#Surf3A-sample">3.4.13 Surf3A sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-surf3a">surf3a</a></td><td valign="top"><a href="mgl_en_1.html#Dual-plotting">1.13 Dual plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf3C">Surf3C</a></td><td valign="top"><a href="mgl_en_3.html#Surf3C-sample">3.4.12 Surf3C sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-surf3c">surf3c</a></td><td valign="top"><a href="mgl_en_1.html#Dual-plotting">1.13 Dual plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-surfa">surfa</a></td><td valign="top"><a href="mgl_en_1.html#Dual-plotting">1.13 Dual plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-SurfA">SurfA</a></td><td valign="top"><a href="mgl_en_3.html#SurfA-sample">3.4.2 SurfA sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-SurfC">SurfC</a></td><td valign="top"><a href="mgl_en_3.html#SurfC-sample">3.4.1 SurfC sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-surfc">surfc</a></td><td valign="top"><a href="mgl_en_1.html#Dual-plotting">1.13 Dual plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-swap">swap</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-T">T</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Tens">Tens</a></td><td valign="top"><a href="mgl_en_3.html#Tens-sample">3.1.3 Tens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-tens">tens</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Ternary">Ternary</a></td><td valign="top"><a href="mgl_en_3.html#Ternary-plot-sample">3.6.8 Ternary plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ternary">ternary</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Text">Text</a></td><td valign="top"><a href="mgl_en_3.html#Text-sample">3.1.20 Text sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-text">text</a></td><td valign="top"><a href="mgl_en_1.html#Text-printing">1.7 Text printing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-textmark">textmark</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-TextMark">TextMark</a></td><td valign="top"><a href="mgl_en_3.html#TextMark-sample">3.1.18 TextMark sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-Textual-formulas">Textual formulas</a></td><td valign="top"><a href="mgl_en_1.html#Textual-formulas">1.1.5 Textual formulas</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ticklen">ticklen</a></td><td valign="top"><a href="mgl_en_1.html#Default-sizes">1.2.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-tickstl">tickstl</a></td><td valign="top"><a href="mgl_en_1.html#Default-sizes">1.2.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-tile">tile</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Tile">Tile</a></td><td valign="top"><a href="mgl_en_3.html#Tile-sample">3.2.8 Tile sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-tiles">tiles</a></td><td valign="top"><a href="mgl_en_1.html#Dual-plotting">1.13 Dual plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-TileS">TileS</a></td><td valign="top"><a href="mgl_en_3.html#TileS-sample">3.4.3 TileS sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-title">title</a></td><td valign="top"><a href="mgl_en_1.html#Text-printing">1.7 Text printing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-tlabel">tlabel</a></td><td valign="top"><a href="mgl_en_1.html#Axis-and-Colorbar">1.8 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-torus">torus</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Torus">Torus</a></td><td valign="top"><a href="mgl_en_3.html#Torus-sample">3.1.21 Torus sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-trace">trace</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Traj">Traj</a></td><td valign="top"><a href="mgl_en_3.html#Traj-sample">3.4.5 Traj sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-traj">traj</a></td><td valign="top"><a href="mgl_en_1.html#Vector-fields">1.14 Vector fields</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-transform">transform</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-transforma">transforma</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-transparent">transparent</a></td><td valign="top"><a href="mgl_en_1.html#Transparency">1.2.1 Transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-transpose">transpose</a></td><td valign="top"><a href="mgl_en_1.html#Rearrange-data">1.19 Rearrange data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-TranspType">TranspType</a></td><td valign="top"><a href="mgl_en_3.html#Normal-transparency">3.5.11 Normal transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-transptype">transptype</a></td><td valign="top"><a href="mgl_en_1.html#Transparency">1.2.1 Transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-TranspType-1">TranspType</a></td><td valign="top"><a href="mgl_en_3.html#Glass_002dlike-transparency">3.5.12 Glass-like transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-TranspType-2">TranspType</a></td><td valign="top"><a href="mgl_en_3.html#Lamp_002dlike-transparency">3.5.13 Lamp-like transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-tricont">tricont</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-triplot">triplot</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Tube">Tube</a></td><td valign="top"><a href="mgl_en_3.html#Tube-sample">3.1.19 Tube sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-tube">tube</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_en_5.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_8.html b/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_8.html
new file mode 100644
index 0000000..3c2a725
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_8.html
@@ -0,0 +1,238 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: Index: V &ndash; Z</title>
+
+<meta name="description" content="MGL script language for version 1.11: Index: V &ndash; Z">
+<meta name="keywords" content="MGL script language for version 1.11: Index: V &ndash; Z">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-2"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_7.html#index_split-1" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[ &gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Index: V &ndash; Z</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_en_5.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-V">V</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-var">var</a></td><td valign="top"><a href="mgl_en_1.html#Data-create">1.17 Data create</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-vect">vect</a></td><td valign="top"><a href="mgl_en_1.html#Vector-fields">1.14 Vector fields</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Vect">Vect</a></td><td valign="top"><a href="mgl_en_3.html#Vect-sample">3.4.6 Vect sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Vect-1">Vect</a></td><td valign="top"><a href="mgl_en_3.html#Vect-3D-sample">3.4.14 Vect 3D sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-VectC">VectC</a></td><td valign="top"><a href="mgl_en_3.html#VectC-sample">3.4.8 VectC sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-vectc">vectc</a></td><td valign="top"><a href="mgl_en_1.html#Vector-fields">1.14 Vector fields</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-VectC-1">VectC</a></td><td valign="top"><a href="mgl_en_3.html#VectC-3D-sample">3.4.16 VectC 3D sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-vectl">vectl</a></td><td valign="top"><a href="mgl_en_1.html#Vector-fields">1.14 Vector fields</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-VectL">VectL</a></td><td valign="top"><a href="mgl_en_3.html#VectL-sample">3.4.7 VectL sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-VectL-1">VectL</a></td><td valign="top"><a href="mgl_en_3.html#VectL-3D-sample">3.4.15 VectL 3D sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-W">W</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-write">write</a></td><td valign="top"><a href="mgl_en_1.html#Export-to-file">1.5 Export to file</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-X">X</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-xlabel">xlabel</a></td><td valign="top"><a href="mgl_en_1.html#Axis-and-Colorbar">1.8 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-xrange">xrange</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-xrange-3">xrange</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-xtick">xtick</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-Y">Y</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ylabel">ylabel</a></td><td valign="top"><a href="mgl_en_1.html#Axis-and-Colorbar">1.8 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-yrange">yrange</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-yrange-3">yrange</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ytick">ytick</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-Z">Z</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-zlabel">zlabel</a></td><td valign="top"><a href="mgl_en_1.html#Axis-and-Colorbar">1.8 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-zoom">zoom</a></td><td valign="top"><a href="mgl_en_1.html#Zooming">1.2.5 Zooming</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-zrange">zrange</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-zrange-3">zrange</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ztick">ztick</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_en_5.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_abt.html b/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_abt.html
new file mode 100644
index 0000000..474dbc9
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_abt.html
@@ -0,0 +1,184 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: About This Document</title>
+
+<meta name="description" content="MGL script language for version 1.11: About This Document">
+<meta name="keywords" content="MGL script language for version 1.11: About This Document">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="SEC_About"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1>About This Document</h1>
+<p>
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+</p>
+<p>
+  The buttons in the navigation panels have the following meaning:
+</p>
+<table border="1">
+  <tr>
+    <th> Button </th>
+    <th> Name </th>
+    <th> Go to </th>
+    <th> From 1.2.3 go to</th>
+  </tr>
+  <tr>
+    <td align="center"> [ &lt; ] </td>
+    <td align="center">Back</td>
+    <td>Previous section in reading order</td>
+    <td>1.2.2</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &gt; ] </td>
+    <td align="center">Forward</td>
+    <td>Next section in reading order</td>
+    <td>1.2.4</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &lt;&lt; ] </td>
+    <td align="center">FastBack</td>
+    <td>Beginning of this chapter or previous chapter</td>
+    <td>1</td>
+  </tr>
+  <tr>
+    <td align="center"> [ Up ] </td>
+    <td align="center">Up</td>
+    <td>Up section</td>
+    <td>1.2</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &gt;&gt; ] </td>
+    <td align="center">FastForward</td>
+    <td>Next chapter</td>
+    <td>2</td>
+  </tr>
+  <tr>
+    <td align="center"> [Top] </td>
+    <td align="center">Top</td>
+    <td>Cover (top) of document</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [Contents] </td>
+    <td align="center">Contents</td>
+    <td>Table of contents</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [Index] </td>
+    <td align="center">Index</td>
+    <td>Index</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [ ? ] </td>
+    <td align="center">About</td>
+    <td>About (help)</td>
+    <td> &nbsp; </td>
+  </tr>
+</table>
+
+<p>
+  where the <strong> Example </strong> assumes that the current position is at <strong> Subsubsection One-Two-Three </strong> of a document of the following structure:
+</p>
+
+<ul>
+  <li> 1. Section One
+    <ul>
+      <li>1.1 Subsection One-One
+        <ul>
+          <li>...</li>
+        </ul>
+      </li>
+      <li>1.2 Subsection One-Two
+        <ul>
+          <li>1.2.1 Subsubsection One-Two-One</li>
+          <li>1.2.2 Subsubsection One-Two-Two</li>
+          <li>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp;
+            <strong>&lt;== Current Position </strong></li>
+          <li>1.2.4 Subsubsection One-Two-Four</li>
+        </ul>
+      </li>
+      <li>1.3 Subsection One-Three
+        <ul>
+          <li>...</li>
+        </ul>
+      </li>
+      <li>1.4 Subsection One-Four</li>
+    </ul>
+  </li>
+</ul>
+
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_toc.html b/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_toc.html
new file mode 100644
index 0000000..2566415
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mgl_en.html/mgl_en_toc.html
@@ -0,0 +1,311 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: Table of Contents</title>
+
+<meta name="description" content="MGL script language for version 1.11: Table of Contents">
+<meta name="keywords" content="MGL script language for version 1.11: Table of Contents">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="SEC_Contents"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1>Table of Contents</h1>
+<div class="contents">
+
+<ul class="toc">
+  <li><a name="toc-MGL-language" href="mgl_en_1.html#MGL-interface">1. MGL language</a>
+  <ul class="toc">
+    <li><a name="toc-General-concepts-1" href="mgl_en_1.html#General-concepts">1.1 General concepts</a>
+    <ul class="toc">
+      <li><a name="toc-Coordinate-axes-1" href="mgl_en_1.html#Coordinate-axes">1.1.1 Coordinate axes</a></li>
+      <li><a name="toc-Line-styles-1" href="mgl_en_1.html#Line-styles">1.1.2 Line styles</a></li>
+      <li><a name="toc-Color-scheme-1" href="mgl_en_1.html#Color-scheme">1.1.3 Color scheme</a></li>
+      <li><a name="toc-Font-styles-1" href="mgl_en_1.html#Font-styles">1.1.4 Font styles</a></li>
+      <li><a name="toc-Textual-formulas-1" href="mgl_en_1.html#Textual-formulas">1.1.5 Textual formulas</a></li>
+    </ul></li>
+    <li><a name="toc-Graphics-setup-1" href="mgl_en_1.html#Graphics-setup">1.2 Graphics setup</a>
+    <ul class="toc">
+      <li><a name="toc-Transparency-1" href="mgl_en_1.html#Transparency">1.2.1 Transparency</a></li>
+      <li><a name="toc-Lighting-1" href="mgl_en_1.html#Lighting">1.2.2 Lighting</a></li>
+      <li><a name="toc-Fog-1" href="mgl_en_1.html#Fog">1.2.3 Fog</a></li>
+      <li><a name="toc-Default-sizes-1" href="mgl_en_1.html#Default-sizes">1.2.4 Default sizes</a></li>
+      <li><a name="toc-Zooming-1" href="mgl_en_1.html#Zooming">1.2.5 Zooming</a></li>
+      <li><a name="toc-Cutting-1" href="mgl_en_1.html#Cutting">1.2.6 Cutting</a></li>
+      <li><a name="toc-Other-settings-1" href="mgl_en_1.html#Other-settings">1.2.7 Other settings</a></li>
+    </ul></li>
+    <li><a name="toc-Axis-settings-1" href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></li>
+    <li><a name="toc-Transformation-matrix-1" href="mgl_en_1.html#Transformation-matrix">1.4 Transformation matrix</a></li>
+    <li><a name="toc-Export-to-file-1" href="mgl_en_1.html#Export-to-file">1.5 Export to file</a></li>
+    <li><a name="toc-Primitives-drawing-1" href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></li>
+    <li><a name="toc-Text-printing-1" href="mgl_en_1.html#Text-printing">1.7 Text printing</a></li>
+    <li><a name="toc-Axis-and-Colorbar-1" href="mgl_en_1.html#Axis-and-Colorbar">1.8 Axis and Colorbar</a></li>
+    <li><a name="toc-Legend-1" href="mgl_en_1.html#Legend">1.9 Legend</a></li>
+    <li><a name="toc-1D-plotting-1" href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></li>
+    <li><a name="toc-2D-plotting-1" href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></li>
+    <li><a name="toc-3D-plotting-1" href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></li>
+    <li><a name="toc-Dual-plotting-1" href="mgl_en_1.html#Dual-plotting">1.13 Dual plotting</a></li>
+    <li><a name="toc-Vector-fields-1" href="mgl_en_1.html#Vector-fields">1.14 Vector fields</a></li>
+    <li><a name="toc-Other-plotting-1" href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></li>
+    <li><a name="toc-Nonlinear-fitting-1" href="mgl_en_1.html#Nonlinear-fitting">1.16 Nonlinear fitting</a></li>
+    <li><a name="toc-Data-create-1" href="mgl_en_1.html#Data-create">1.17 Data create</a></li>
+    <li><a name="toc-Data-filling-1" href="mgl_en_1.html#Data-filling">1.18 Data filling</a></li>
+    <li><a name="toc-Rearrange-data-1" href="mgl_en_1.html#Rearrange-data">1.19 Rearrange data</a></li>
+    <li><a name="toc-File-I_002fO-1" href="mgl_en_1.html#File-I_002fO">1.20 File I/O</a></li>
+    <li><a name="toc-Make-another-data-1" href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></li>
+    <li><a name="toc-Change-data-1" href="mgl_en_1.html#Change-data">1.22 Change data</a></li>
+    <li><a name="toc-Operators-1" href="mgl_en_1.html#Operators">1.23 Operators</a></li>
+    <li><a name="toc-Program-flow-1" href="mgl_en_1.html#Program-flow">1.24 Program flow</a></li>
+    <li><a name="toc-Command-options-1" href="mgl_en_1.html#Command-options">1.25 Command options</a></li>
+    <li><a name="toc-Suffixes-for-variable" href="mgl_en_1.html#Suffixes">1.26 Suffixes for variable</a></li>
+    <li><a name="toc-Utilities-for-parsing-MGL" href="mgl_en_1.html#Utilities">1.27 Utilities for parsing MGL</a></li>
+  </ul></li>
+  <li><a name="toc-MathGL-examples" href="mgl_en_2.html#Examples">2. MathGL examples</a>
+  <ul class="toc">
+    <li><a name="toc-Basic-usage-1" href="mgl_en_2.html#Basic-usage">2.1 Basic usage</a></li>
+    <li><a name="toc-Advanced-usage-1" href="mgl_en_2.html#Advanced-usage">2.2 Advanced usage</a>
+    <ul class="toc">
+      <li><a name="toc-Subplots-1" href="mgl_en_2.html#Subplots">2.2.1 Subplots</a></li>
+      <li><a name="toc-Axis-and-grids-1" href="mgl_en_2.html#Axis-and-grids">2.2.2 Axis and grids</a></li>
+      <li><a name="toc-Curvilinear-coordinates-1" href="mgl_en_2.html#Curvilinear-coordinates">2.2.3 Curvilinear coordinates</a></li>
+      <li><a name="toc-Text-printing-example-1" href="mgl_en_2.html#Text-printing-example">2.2.4 Text printing example</a></li>
+    </ul></li>
+    <li><a name="toc-Data-handling-1" href="mgl_en_2.html#Data-handling">2.3 Data handling</a>
+    <ul class="toc">
+      <li><a name="toc-Array-creation-1" href="mgl_en_2.html#Array-creation">2.3.1 Array creation</a></li>
+      <li><a name="toc-Data-changing-1" href="mgl_en_2.html#Data-changing">2.3.2 Data changing</a></li>
+    </ul></li>
+    <li><a name="toc-Data-plotting-1" href="mgl_en_2.html#Data-plotting">2.4 Data plotting</a>
+    <ul class="toc">
+      <li><a name="toc-Plots-for-1D-data-1" href="mgl_en_2.html#Plots-for-1D-data">2.4.1 Plots for 1D data</a></li>
+      <li><a name="toc-Plots-for-2D-data-1" href="mgl_en_2.html#Plots-for-2D-data">2.4.2 Plots for 2D data</a></li>
+      <li><a name="toc-Plots-for-3D-data-1" href="mgl_en_2.html#Plots-for-3D-data">2.4.3 Plots for 3D data</a></li>
+      <li><a name="toc-Surface-transparency-1" href="mgl_en_2.html#Surface-transparency">2.4.4 Surface transparency</a></li>
+    </ul></li>
+    <li><a name="toc-Hints-1" href="mgl_en_2.html#Hints">2.5 Hints</a>
+    <ul class="toc">
+      <li><a name="toc-_0060_0060Compound_0027_0027-graphics-1" href="mgl_en_2.html#g_t_0060_0060Compound_0027_0027-graphics">2.5.1 &ldquo;Compound&rdquo; graphics</a></li>
+      <li><a name="toc-Two-axes-in-one-plot-1" href="mgl_en_2.html#Two-axes-in-one-plot">2.5.2 Two axes in one plot</a></li>
+      <li><a name="toc-Titles-for-the-plot-1" href="mgl_en_2.html#Titles-for-the-plot">2.5.3 Titles for the plot</a></li>
+      <li><a name="toc-Changing-of-the-color-range-1" href="mgl_en_2.html#Changing-of-the-color-range">2.5.4 Changing of the color range</a></li>
+      <li><a name="toc-Management-of-a-point-cutting-1" href="mgl_en_2.html#Management-of-a-point-cutting">2.5.5 Management of a point cutting</a></li>
+      <li><a name="toc-Vector-field-visualization-1" href="mgl_en_2.html#Vector-field-visualization">2.5.6 Vector field visualization</a></li>
+      <li><a name="toc-Several-light-sources-1" href="mgl_en_2.html#Several-light-sources">2.5.7 Several light sources</a></li>
+      <li><a name="toc-CutMin-and-CutMax-features-1" href="mgl_en_2.html#CutMin-and-CutMax-features">2.5.8 CutMin and CutMax features</a></li>
+      <li><a name="toc-Mapping-visualization-1" href="mgl_en_2.html#Mapping-visualization">2.5.9 Mapping visualization</a></li>
+      <li><a name="toc-Log_002dscaled-plot-1" href="mgl_en_2.html#Log_002dscaled-plot">2.5.10 Log-scaled plot</a></li>
+      <li><a name="toc-Nonlinear-fitting-hints-1" href="mgl_en_2.html#Nonlinear-fitting-hints">2.5.11 Nonlinear fitting hints</a></li>
+      <li><a name="toc-PDE-solving-hints-1" href="mgl_en_2.html#PDE-solving-hints">2.5.12 PDE solving hints</a></li>
+      <li><a name="toc-Stereo-image-1" href="mgl_en_2.html#Stereo-image">2.5.13 Stereo image</a></li>
+    </ul>
+</li>
+  </ul></li>
+  <li><a name="toc-Samples-1" href="mgl_en_3.html#Samples">3. Samples</a>
+  <ul class="toc">
+    <li><a name="toc-1D-plotting-samples-1" href="mgl_en_3.html#g_t1D-plotting-samples">3.1 1D plotting samples</a>
+    <ul class="toc">
+      <li><a name="toc-Plot-sample-1" href="mgl_en_3.html#Plot-sample">3.1.1 Plot sample</a></li>
+      <li><a name="toc-Radar-sample-1" href="mgl_en_3.html#Radar-sample">3.1.2 Radar sample</a></li>
+      <li><a name="toc-Tens-sample-1" href="mgl_en_3.html#Tens-sample">3.1.3 Tens sample</a></li>
+      <li><a name="toc-Area-sample-1" href="mgl_en_3.html#Area-sample">3.1.4 Area sample</a></li>
+      <li><a name="toc-Area-with-gradient-filling-sample" href="mgl_en_3.html#Area-gradient-sample">3.1.5 Area with gradient filling sample</a></li>
+      <li><a name="toc-Bars-sample-1" href="mgl_en_3.html#Bars-sample">3.1.6 Bars sample</a></li>
+      <li><a name="toc-Bars-2-colors-sample-1" href="mgl_en_3.html#Bars-2-colors-sample">3.1.7 Bars 2 colors sample</a></li>
+      <li><a name="toc-Bars-above-sample-1" href="mgl_en_3.html#Bars-above-sample">3.1.8 Bars above sample</a></li>
+      <li><a name="toc-Bars-fall-sample-1" href="mgl_en_3.html#Bars-fall-sample">3.1.9 Bars fall sample</a></li>
+      <li><a name="toc-Barh-sample-1" href="mgl_en_3.html#Barh-sample">3.1.10 Barh sample</a></li>
+      <li><a name="toc-Step-sample-1" href="mgl_en_3.html#Step-sample">3.1.11 Step sample</a></li>
+      <li><a name="toc-Stem-sample-1" href="mgl_en_3.html#Stem-sample">3.1.12 Stem sample</a></li>
+      <li><a name="toc-Region-sample-1" href="mgl_en_3.html#Region-sample">3.1.13 Region sample</a></li>
+      <li><a name="toc-Region-gradient-sample-1" href="mgl_en_3.html#Region-gradient-sample">3.1.14 Region gradient sample</a></li>
+      <li><a name="toc-Error-sample-1" href="mgl_en_3.html#Error-sample">3.1.15 Error sample</a></li>
+      <li><a name="toc-BoxPlot-sample-1" href="mgl_en_3.html#BoxPlot-sample">3.1.16 BoxPlot sample</a></li>
+      <li><a name="toc-Mark-sample-1" href="mgl_en_3.html#Mark-sample">3.1.17 Mark sample</a></li>
+      <li><a name="toc-TextMark-sample-1" href="mgl_en_3.html#TextMark-sample">3.1.18 TextMark sample</a></li>
+      <li><a name="toc-Tube-sample-1" href="mgl_en_3.html#Tube-sample">3.1.19 Tube sample</a></li>
+      <li><a name="toc-Text-sample-1" href="mgl_en_3.html#Text-sample">3.1.20 Text sample</a></li>
+      <li><a name="toc-Torus-sample-1" href="mgl_en_3.html#Torus-sample">3.1.21 Torus sample</a></li>
+      <li><a name="toc-Chart-sample-1" href="mgl_en_3.html#Chart-sample">3.1.22 Chart sample</a></li>
+      <li><a name="toc-Pie-chart-sample-1" href="mgl_en_3.html#Pie-chart-sample">3.1.23 Pie chart sample</a></li>
+      <li><a name="toc-Ring-chart-sample-1" href="mgl_en_3.html#Ring-chart-sample">3.1.24 Ring chart sample</a></li>
+    </ul></li>
+    <li><a name="toc-2D-plotting-samples-1" href="mgl_en_3.html#g_t2D-plotting-samples">3.2 2D plotting samples</a>
+    <ul class="toc">
+      <li><a name="toc-Surf-sample-1" href="mgl_en_3.html#Surf-sample">3.2.1 Surf sample</a></li>
+      <li><a name="toc-Transparent-surface-sample-1" href="mgl_en_3.html#Transparent-surface-sample">3.2.2 Transparent surface sample</a></li>
+      <li><a name="toc-Surface-in-fog-sample-1" href="mgl_en_3.html#Surface-in-fog-sample">3.2.3 Surface in fog sample</a></li>
+      <li><a name="toc-Sharp-colors-sample-1" href="mgl_en_3.html#Sharp-colors-sample">3.2.4 Sharp colors sample</a></li>
+      <li><a name="toc-Mesh-sample-1" href="mgl_en_3.html#Mesh-sample">3.2.5 Mesh sample</a></li>
+      <li><a name="toc-Fall-sample-1" href="mgl_en_3.html#Fall-sample">3.2.6 Fall sample</a></li>
+      <li><a name="toc-Belt-sample-1" href="mgl_en_3.html#Belt-sample">3.2.7 Belt sample</a></li>
+      <li><a name="toc-Tile-sample-1" href="mgl_en_3.html#Tile-sample">3.2.8 Tile sample</a></li>
+      <li><a name="toc-Boxs-sample-1" href="mgl_en_3.html#Boxs-sample">3.2.9 Boxs sample</a></li>
+      <li><a name="toc-Dens-sample-1" href="mgl_en_3.html#Dens-sample">3.2.10 Dens sample</a></li>
+      <li><a name="toc-Cont-sample-1" href="mgl_en_3.html#Cont-sample">3.2.11 Cont sample</a></li>
+      <li><a name="toc-ContF-sample-1" href="mgl_en_3.html#ContF-sample">3.2.12 ContF sample</a></li>
+      <li><a name="toc-ContD-sample-1" href="mgl_en_3.html#ContD-sample">3.2.13 ContD sample</a></li>
+      <li><a name="toc-Axial-sample-1" href="mgl_en_3.html#Axial-sample">3.2.14 Axial sample</a></li>
+      <li><a name="toc-Grad-sample-1" href="mgl_en_3.html#Grad-sample">3.2.15 Grad sample</a></li>
+    </ul></li>
+    <li><a name="toc-3D-plotting-samples-1" href="mgl_en_3.html#g_t3D-plotting-samples">3.3 3D plotting samples</a>
+    <ul class="toc">
+      <li><a name="toc-Surf3-sample-1" href="mgl_en_3.html#Surf3-sample">3.3.1 Surf3 sample</a></li>
+      <li><a name="toc-Cloud-sample-1" href="mgl_en_3.html#Cloud-sample">3.3.2 Cloud sample</a></li>
+      <li><a name="toc-CloudP-sample-1" href="mgl_en_3.html#CloudP-sample">3.3.3 CloudP sample</a></li>
+      <li><a name="toc-Dens3-sample-1" href="mgl_en_3.html#Dens3-sample">3.3.4 Dens3 sample</a></li>
+      <li><a name="toc-Cont3-sample-1" href="mgl_en_3.html#Cont3-sample">3.3.5 Cont3 sample</a></li>
+      <li><a name="toc-ContF3-sample-1" href="mgl_en_3.html#ContF3-sample">3.3.6 ContF3 sample</a></li>
+      <li><a name="toc-Cont-projection-sample-1" href="mgl_en_3.html#Cont-projection-sample">3.3.7 Cont projection sample</a></li>
+      <li><a name="toc-Dens-projection-sample-1" href="mgl_en_3.html#Dens-projection-sample">3.3.8 Dens projection sample</a></li>
+      <li><a name="toc-CutMinMax-sample-1" href="mgl_en_3.html#CutMinMax-sample">3.3.9 CutMinMax sample</a></li>
+      <li><a name="toc-_0060_0060Isocaps_0027_0027-sample" href="mgl_en_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; sample</a></li>
+      <li><a name="toc-CutOff-sample-1" href="mgl_en_3.html#CutOff-sample">3.3.11 CutOff sample</a></li>
+    </ul></li>
+    <li><a name="toc-Dual-plotting-samples-1" href="mgl_en_3.html#Dual-plotting-samples">3.4 Dual plotting samples</a>
+    <ul class="toc">
+      <li><a name="toc-SurfC-sample-1" href="mgl_en_3.html#SurfC-sample">3.4.1 SurfC sample</a></li>
+      <li><a name="toc-SurfA-sample-1" href="mgl_en_3.html#SurfA-sample">3.4.2 SurfA sample</a></li>
+      <li><a name="toc-TileS-sample-1" href="mgl_en_3.html#TileS-sample">3.4.3 TileS sample</a></li>
+      <li><a name="toc-Map-sample-1" href="mgl_en_3.html#Map-sample">3.4.4 Map sample</a></li>
+      <li><a name="toc-Traj-sample-1" href="mgl_en_3.html#Traj-sample">3.4.5 Traj sample</a></li>
+      <li><a name="toc-Vect-sample-1" href="mgl_en_3.html#Vect-sample">3.4.6 Vect sample</a></li>
+      <li><a name="toc-VectL-sample-1" href="mgl_en_3.html#VectL-sample">3.4.7 VectL sample</a></li>
+      <li><a name="toc-VectC-sample-1" href="mgl_en_3.html#VectC-sample">3.4.8 VectC sample</a></li>
+      <li><a name="toc-Flow-sample-1" href="mgl_en_3.html#Flow-sample">3.4.9 Flow sample</a></li>
+      <li><a name="toc-Pipe-sample-1" href="mgl_en_3.html#Pipe-sample">3.4.10 Pipe sample</a></li>
+      <li><a name="toc-Dew-sample-1" href="mgl_en_3.html#Dew-sample">3.4.11 Dew sample</a></li>
+      <li><a name="toc-Surf3C-sample-1" href="mgl_en_3.html#Surf3C-sample">3.4.12 Surf3C sample</a></li>
+      <li><a name="toc-Surf3A-sample-1" href="mgl_en_3.html#Surf3A-sample">3.4.13 Surf3A sample</a></li>
+      <li><a name="toc-Vect-3D-sample-1" href="mgl_en_3.html#Vect-3D-sample">3.4.14 Vect 3D sample</a></li>
+      <li><a name="toc-VectL-3D-sample-1" href="mgl_en_3.html#VectL-3D-sample">3.4.15 VectL 3D sample</a></li>
+      <li><a name="toc-VectC-3D-sample-1" href="mgl_en_3.html#VectC-3D-sample">3.4.16 VectC 3D sample</a></li>
+      <li><a name="toc-Flow-3D-sample-1" href="mgl_en_3.html#Flow-3D-sample">3.4.17 Flow 3D sample</a></li>
+      <li><a name="toc-Pipe-3D-sample-1" href="mgl_en_3.html#Pipe-3D-sample">3.4.18 Pipe 3D sample</a></li>
+      <li><a name="toc-Crust-sample-1" href="mgl_en_3.html#Crust-sample">3.4.19 Crust sample</a></li>
+      <li><a name="toc-Dots-sample-1" href="mgl_en_3.html#Dots-sample">3.4.20 Dots sample</a></li>
+    </ul></li>
+    <li><a name="toc-Basic-features-1" href="mgl_en_3.html#Basic-features">3.5 Basic features</a>
+    <ul class="toc">
+      <li><a name="toc-1D-plot-sample-1" href="mgl_en_3.html#g_t1D-plot-sample">3.5.1 1D plot sample</a></li>
+      <li><a name="toc-2D-plot-sample-1" href="mgl_en_3.html#g_t2D-plot-sample">3.5.2 2D plot sample</a></li>
+      <li><a name="toc-3D-plot-sample-1" href="mgl_en_3.html#g_t3D-plot-sample">3.5.3 3D plot sample</a></li>
+      <li><a name="toc-Line-styles-sample-1" href="mgl_en_3.html#Line-styles-sample">3.5.4 Line styles sample</a></li>
+      <li><a name="toc-Arrow-styles-sample-1" href="mgl_en_3.html#Arrow-styles-sample">3.5.5 Arrow styles sample</a></li>
+      <li><a name="toc-Text-styles-sample-1" href="mgl_en_3.html#Text-styles-sample">3.5.6 Text styles sample</a></li>
+      <li><a name="toc-TeX-parsing-sample-1" href="mgl_en_3.html#TeX-parsing-sample">3.5.7 TeX parsing sample</a></li>
+      <li><a name="toc-Font-faces-sample-1" href="mgl_en_3.html#Font-faces-sample">3.5.8 Font faces sample</a></li>
+      <li><a name="toc-Colors-sample-1" href="mgl_en_3.html#Colors-sample">3.5.9 Colors sample</a></li>
+      <li><a name="toc-Color-schemes-sample-1" href="mgl_en_3.html#Color-schemes-sample">3.5.10 Color schemes sample</a></li>
+      <li><a name="toc-Normal-transparency-1" href="mgl_en_3.html#Normal-transparency">3.5.11 Normal transparency</a></li>
+      <li><a name="toc-Glass_002dlike-transparency-1" href="mgl_en_3.html#Glass_002dlike-transparency">3.5.12 Glass-like transparency</a></li>
+      <li><a name="toc-Lamp_002dlike-transparency-1" href="mgl_en_3.html#Lamp_002dlike-transparency">3.5.13 Lamp-like transparency</a></li>
+    </ul></li>
+    <li><a name="toc-Additional-features-1" href="mgl_en_3.html#Additional-features">3.6 Additional features</a>
+    <ul class="toc">
+      <li><a name="toc-Legend-sample-1" href="mgl_en_3.html#Legend-sample">3.6.1 Legend sample</a></li>
+      <li><a name="toc-Adding-mesh-sample-1" href="mgl_en_3.html#Adding-mesh-sample">3.6.2 Adding mesh sample</a></li>
+      <li><a name="toc-Surf-_0026-Cont-sample-1" href="mgl_en_3.html#Surf-_0026-Cont-sample">3.6.3 Surf &amp; Cont sample</a></li>
+      <li><a name="toc-Flow-_0026-Dens-sample-1" href="mgl_en_3.html#Flow-_0026-Dens-sample">3.6.4 Flow &amp; Dens sample</a></li>
+      <li><a name="toc-Several-light-sample-1" href="mgl_en_3.html#Several-light-sample">3.6.5 Several light sample</a></li>
+      <li><a name="toc-Mirrored-surface-sample-1" href="mgl_en_3.html#Mirrored-surface-sample">3.6.6 Mirrored surface sample</a></li>
+      <li><a name="toc-Cont-with-labels-sample-1" href="mgl_en_3.html#Cont-with-labels-sample">3.6.7 Cont with labels sample</a></li>
+      <li><a name="toc-Ternary-plot-sample-1" href="mgl_en_3.html#Ternary-plot-sample">3.6.8 Ternary plot sample</a></li>
+      <li><a name="toc-Coloring-by-coordinates-sample-1" href="mgl_en_3.html#Coloring-by-coordinates-sample">3.6.9 Coloring by coordinates sample</a></li>
+      <li><a name="toc-Drops-sample-1" href="mgl_en_3.html#Drops-sample">3.6.10 Drops sample</a></li>
+      <li><a name="toc-Molecules-drawing-sample-1" href="mgl_en_3.html#Molecules-drawing-sample">3.6.11 Molecules drawing sample</a></li>
+    </ul></li>
+    <li><a name="toc-Advanced-features-1" href="mgl_en_3.html#Advanced-features">3.7 Advanced features</a>
+    <ul class="toc">
+      <li><a name="toc-Curvelinear-coorinates-sample-1" href="mgl_en_3.html#Curvelinear-coorinates-sample">3.7.1 Curvelinear coorinates sample</a></li>
+      <li><a name="toc-2_002daxes-sample-1" href="mgl_en_3.html#g_t2_002daxes-sample">3.7.2 2-axes sample</a></li>
+      <li><a name="toc-Semi_002dlog-sample-1" href="mgl_en_3.html#Semi_002dlog-sample">3.7.3 Semi-log sample</a></li>
+      <li><a name="toc-Log_002dlog-sample-1" href="mgl_en_3.html#Log_002dlog-sample">3.7.4 Log-log sample</a></li>
+      <li><a name="toc-Fitting-sample-1" href="mgl_en_3.html#Fitting-sample">3.7.5 Fitting sample</a></li>
+      <li><a name="toc-Envelop-sample-1" href="mgl_en_3.html#Envelop-sample">3.7.6 Envelop sample</a></li>
+      <li><a name="toc-Sew-sample-1" href="mgl_en_3.html#Sew-sample">3.7.7 Sew sample</a></li>
+      <li><a name="toc-STFA-sample-1" href="mgl_en_3.html#STFA-sample">3.7.8 STFA sample</a></li>
+      <li><a name="toc-PDE-sample-1" href="mgl_en_3.html#PDE-sample">3.7.9 PDE sample</a></li>
+      <li><a name="toc-Beam-tracing-sample-1" href="mgl_en_3.html#Beam-tracing-sample">3.7.10 Beam tracing sample</a></li>
+      <li><a name="toc-Parser-sample-1" href="mgl_en_3.html#Parser-sample">3.7.11 Parser sample</a></li>
+      <li><a name="toc-Tick-values-sample" href="mgl_en_3.html#Manual-ticks-sample">3.7.12 Tick values sample</a></li>
+      <li><a name="toc-ColumnPlot-sample-1" href="mgl_en_3.html#ColumnPlot-sample">3.7.13 ColumnPlot sample</a></li>
+      <li><a name="toc-StickPlot-sample-1" href="mgl_en_3.html#StickPlot-sample">3.7.14 StickPlot sample</a></li>
+      <li><a name="toc-Stereo-image-sample-1" href="mgl_en_3.html#Stereo-image-sample">3.7.15 Stereo image sample</a></li>
+    </ul>
+</li>
+  </ul></li>
+  <li><a name="toc-GNU-Free-Documentation-License" href="mgl_en_4.html#Copying-This-Manual">A. GNU Free Documentation License</a></li>
+  <li><a name="toc-Index-1" href="mgl_en_5.html#Index">Index</a></li>
+</ul>
+</div>
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru.html b/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru.html
new file mode 100644
index 0000000..1096480
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: Язык MGL</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: Язык MGL">
+<meta name="keywords" content="Язык MGL для версии 1.11: Язык MGL">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Top"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="YA_0437_044b_043a-MGL"></a>
+<h1 class="settitle">Язык MGL</h1>
+
+<p>Это документация для языка MGL (версии 1.11). Пожалуйста сообщайте о любых ошибках в этом руководстве на <a href="mailto:mathgl.abalakin at gmail.org">mathgl.abalakin at gmail.org</a>. Дополнительную информацию о MGL и MathGL можно найти на домашней странице проекта <a href="http://mathgl.sourceforge.net/">http://mathgl.sourceforge.net/</a>.
+</p>
+<p>Copyright &copy; 2010 Алексей Балакин. 
+</p>
+<blockquote><p>Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being &ldquo;A GNU Manual,&rdquo;
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled &ldquo;GNU Free Documentation
+License.&rdquo;
+</p>
+<p>(a) The FSF&rsquo;s Back-Cover Text is: &ldquo;You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom.&rdquo;
+</p></blockquote>
+
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="mgl_ru_1.html#MGL-interface">1. Язык MGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mgl_ru_2.html#Examples">2. MathGL examples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mgl_ru_3.html#Samples">3. Примеры использования MathGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mgl_ru_4.html#Copying-This-Manual">A. GNU Free Documentation License</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mgl_ru_5.html#Index">Индекс</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_1.html b/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_1.html
new file mode 100644
index 0000000..94434cd
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_1.html
@@ -0,0 +1,3154 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: 1. Язык MGL</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: 1. Язык MGL">
+<meta name="keywords" content="Язык MGL для версии 1.11: 1. Язык MGL">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="MGL-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="YA_0437_044b_043a-MGL-1"></a>
+<h1 class="chapter">1. Язык MGL</h1>
+
+<p>MathGL имеет встроенный скриптовый язык MGL для обработки и отображения данных. Скрипты MGL можно использовать как независимо (программами UDAV, mgl2png, mgl2eps, mgl2svg и пр., see section <a href="#Utilities">Утилиты для MGL</a>) так и вызовами библиотеки.
+</p>
+<p>Язык MGL достаточно простой. Каждая строка &ndash; отдельная команда. Первое слово &ndash; имя команды, а все остальные ее аргументы. Команда может иметь до 1000 аргументов (по крайней мере сейчас). Слова разделяются одно от другого пробелом или символом табуляции. Различий между верхним и нижним индексом нет, т.е. переменные <var>a</var> и <var>A</var> идентичны. Символ &lsquo;<samp>#</samp>&rsquo; начинает комментарий &ndash; все символы после него игнорируются до конца строки. Исключением является случай, когда &lsquo;<samp>#</samp>&rsquo; входит в строку. Опции команды указываются после символа &lsquo;<samp>;</samp>&rsquo; (see section <a href="#Command-options">Опции команд</a>). Символ &lsquo;<samp>:</samp>&rsquo; начинает новую команду (подобно переводу строки) если он расположен не внутри скобок или строки.
+</p>
+<p>Если строка содержит ссылки на внешние параметры (&lsquo;<samp>$0</samp>&rsquo;, &lsquo;<samp>$1</samp>&rsquo; ... &lsquo;<samp>$9</samp>&rsquo;) или макроопределения (&lsquo;<samp>$a</samp>&rsquo;, &lsquo;<samp>$b</samp>&rsquo; ... &lsquo;<samp>$z</samp>&rsquo;), то текущие значения параметров/макроопределений подставляются в строку вместо ссылки до выполнением команды. Это позволяет использовать один и тот же скрипт при различных входных параметрах командной строки или вводить макроопределения по ходу исполнения команд скрипта.
+</p>
+<p>Аргументы команды могут быть строками, переменными или числами. 
+</p><ul>
+<li> 
+Строка &ndash; произвольный набор символов между метками &lsquo;<samp>'</samp>&rsquo;.
+
+</li><li> 
+Обычно переменная имеет имя, состоящее из букв и чисел (должно начинаться с буквы и не быть длиннее 64 символов). В качестве переменной можно использовать временные массивы, включающие в себя:
+<ul>
+<li> 
+срезы (&ldquo;подмассивы&rdquo;) массивов данных (подобно команде <a href="#subdata">subdata</a>). Например, <code>a(1)</code> или <code>a(1,:)</code> или <code>a(1,:,:)</code> &ndash; вторая строка массива <var>a</var>, <code>a(:,2)</code> или <code>a(:,2,:)</code> &ndash; третий столбец, <code>a(:,:,0)</code> &ndash; первый срез и т.д. Также можно выделить часть массива с m-го по n-ый элемент <code>a(m:n,:,:)</code> или просто <code>a(m:n)</code>.
+
+</li><li> 
+произвольные комбинации столбцов данных (например, <code>a('n*w^2/exp(t)')</code>), если столбцы данных были именованы командой <a href="#idset">idset</a> или в файле данных (в строке начинающейся с <code>##</code>).
+
+</li><li> 
+произвольное выражение из существующих переменных и констант. Например, &lsquo;<samp>sqrt(dat(:,5)+1)</samp>&rsquo; даст временный массив данных с элементами равными <code>tmp[i,j] = sqrt(dat[i,5,j]+1)</code>.
+
+</li><li> 
+массивы с элементами заданными в квадратных скобках [], разделенные &lsquo;<samp>,</samp>&rsquo;. При этом внутри выражения не должно быть пробелов! Например, &lsquo;<samp>[1,2,3]</samp>&rsquo; даст временный массив из 3 элементов {1, 2, 3}; &lsquo;<samp>[[11,12],[21,22]]</samp>&rsquo; даст матрицу 2*2 и т.д. Элементами такой конструкции могут быть и массивы если их размерности одинаковые, например &lsquo;<samp>[v1,v2,...,vn]</samp>&rsquo;.
+
+</li><li> 
+результат команд построения новых данных (see section <a href="#Make-another-data">Создание новых данных</a>), если они заключены в фигурные скобки {}. Например, &lsquo;<samp>{sum dat 'x'}</samp>&rsquo; даст временный массив, который есть результат суммирования <var>dat</var> вдоль &rsquo;x&rsquo;. Это такой же массив как и <var>tmp</var>, полученный командой &lsquo;<samp>sum tmp dat 'x'</samp>&rsquo;. При этом можно использовать вложенные конструкции, например &lsquo;<samp>{sum {max dat 'z'} 'x'}</samp>&rsquo;.
+</li></ul>
+<p>Временные массивы не могут стоять в качестве первого аргумента команд, создающих массивы (например, &lsquo;<samp>new</samp>&rsquo;, &lsquo;<samp>read</samp>&rsquo;, &lsquo;<samp>hist</samp>&rsquo; и т.д.).
+</p>
+</li><li> 
+К скалярным переменным, кроме собственно чисел, относятся: специальные переменные <code>nan=#QNAN, pi=3.1415926..., on=1, off=0, :=-1</code>, переменные с суффиксами (see section <a href="#Suffixes">Суффиксы переменных</a>), переменные определенные командой <a href="#define">define</a>. Также массивы размером 1x1x1 считаются скалярами (например, &lsquo;<samp>pi/dat.nx</samp>&rsquo;).
+</li></ul>
+<p>Перед первым использованием все переменные должны быть определены с помощью команд, создающих массивы (<a href="#new">new</a>, <a href="#var">var</a>, <a href="#list">list</a>, <a href="#copy">copy</a>, <a href="#read">read</a>, <a href="#hist">hist</a>, <a href="#sum">sum</a> и др., see section <a href="#Data-create">Создание данных</a> и <a href="#Make-another-data">Создание новых данных</a>). 
+</p>
+<p>Команды могут иметь несколько наборов аргументов (например, <code>plot ydat</code> и <code>plot xdat ydat</code>). Все аргументы команды для выбранного набора должны быть указаны, однако часть из них могут иметь значения по умолчанию. Такие аргументы в описании команд будут помещены в квадратные скобки [], например <code>plot ydat ['stl'='' zval=nan]</code>. При этом запись <code>[arg1 arg2 arg3 ...]</code> подразумевает <code>[arg1 [arg2 [arg3 ...]]]</code>, т.е. опускать можно только аргументы с конца, если вы согласны с их значениями по умолчанию. Например, <code>plot ydat '' 1</code> или <code>plot ydat ''</code> правильно, а <code>plot ydat 1</code> не правильно (аргумент <code>'stl'</code> пропущен).
+</p>
+<p>Все команды MGL можно разделить на несколько групп. В дальнейшем будет использованы следующие обозначения при описании команд: имя команды выделено жирным, строки заключены в одинарные кавычки &rdquo;, переменные выделены курсивом, числа (скаляры) выделены моноширинным шрифтом. Необязательные аргументы будут помещены в квадратные скобки [] и показаны их значения по умолчанию. Подробную информацию о цвете и стиле линий (see section <a href="#Line-styles">Стиль линий</a>), цветовых схемах (see section <a href="#Color-scheme">Цветовая схема</a>), стиле текста и символах TeX (see section <a href="#Font-styles">Стиль текста</a>), текстовых формулах (see section <a href="#Textual-formulas">Текстовые формулы</a>) можно найти в соответствующих разделах.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#General-concepts">1.1 Основные принципы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Graphics-setup">1.2 Настройка графика</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-settings">1.3 Параметры осей координат</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transformation-matrix">1.4 Матрица преобразования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Export-to-file">1.5 Экспорт в файл</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Primitives-drawing">1.6 Рисование примитивов</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing">1.7 Вывод текста</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-Colorbar">1.8 Оси и Colorbar</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Legend">1.9 Легенда</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting">1.10 1D графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting">1.11 2D графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting">1.12 3D графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting">1.13 Парные графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-fields">1.14 Векторные поля</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-plotting">1.15 Прочие графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting">1.16 Nonlinear fitting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-create">1.17 Создание данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-filling">1.18 Заполнение данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Rearrange-data">1.19 Изменение размеров данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#File-I_002fO">1.20 Чтение/сохранение данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Make-another-data">1.21 Создание новых данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Change-data">1.22 Изменение данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Operators">1.23 Операторы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Program-flow">1.24 Программирование</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Command-options">1.25 Опции команд</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Suffixes">1.26 Суффиксы переменных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Utilities">1.27 Утилиты для MGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="General-concepts"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Coordinate-axes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_043d_043e_0432_043d_044be-_043f_0440_0438_043dc_0438_043f_044b"></a>
+<h2 class="section">1.1 Основные принципы</h2>
+
+<p>Возможности библиотеки MathGL довольно богаты &ndash; число только основных типов графиков превышает 50 видов. Кроме того, есть функции для обработки данных, настройки вида графика и пр. и пр. Тем не менее, я старался придерживаться единого стиля в порядке аргументов функций и способе их &ldquo;настройки&rdquo;. В основном все ниже сказанное относится к функциям рисования различных графиков.
+</p>
+<p>Всего основных концепций (базисных идей) четыре:
+</p><ol>
+<li>
+<strong>Все настройки графиков (стиль линий, цветовые схемы поверхностей, стиль и цвет текста) задаются строками.</strong> Это обеспечивает: удобство для пользователя &ndash; короткую строку легче читать и здесь тяжелее ошибиться, чем в большом списке параметров; переносимость &ndash; строки выглядят одинаково на всех платформах и не надо заботиться о типе и числе аргументов.
+</li><li>
+<strong>Все функции имеют &ldquo;упрощенный&rdquo; и &ldquo;продвинутый&rdquo; варианты.</strong> Сделано опять из-за удобства. В &ldquo;упрощенном&rdquo; варианте для построения графика нужны только один-два массив(а) данных, которые автоматически равнораспределяются в заданном диапазоне осей координат. В &ldquo;продвинутой&rdquo; версии можно не только указать явно диапазон построения графика, но и задать его параметрически. Последнее позволяет легко строить довольно сложные кривые и поверхности. В обоих вариантах функций порядок аргументов стандартен: сначала идут массивы данных, потом необязательный строковый параметр стиля графика, а далее &ndash; второстепенные необязательные параметры для более точной настройки графика.
+</li><li>
+<strong>Все элементы рисунков векторные.</strong> Изначально библиотека MathGL была ориентированна на работу с научными данными, которые по своей природе векторные (линии, грани, матрицы и т.д.). Поэтому векторность используется во всех рисунках! Причем иногда даже в ущерб производительности (например, при выводе шрифтов). Помимо всего прочего, векторность позволяет легко масштабировать рисунок &ndash; измените размер картинки в 2 раза, и рисунок пропорционально растянется.
+</li><li>
+<strong>Новые графики не удаляют уже нарисованное.</strong> Этот, в чем-то неожиданный, подход позволяет создавать огромное количество &ldquo;комбинированных&rdquo; графиков. Например, поверхность с наложенными линиями уровня строится двумя последовательными вызовами функций рисования поверхности и линий уровня (в любом порядке). И совершенно не надо писать специальную функцию (как в Matlab и некоторых других программах) для рисования этого графика. Примеров таких графиков можно привести множество (см. раздел <a href="mgl_ru_2.html#Hints">Hints</a> и сайт программы <a href="http://mathgl.sf.net/index.html">http://mathgl.sf.net/index.html</a>).
+</li></ol>
+
+<p>Кроме основных концепций я хотел бы остановиться на нескольких, как оказалось, нетривиальных моментах &ndash; способе указания положения графика, осей координат и строковых параметров линий, поверхностей, текста.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Coordinate-axes">1.1.1 Оси координат</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Line-styles">1.1.2 Стиль линий</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Color-scheme">1.1.3 Цветовая схема</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-styles">1.1.4 Стиль текста</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Textual-formulas">1.1.5 Текстовые формулы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+
+
+
+<hr size="6">
+<a name="Coordinate-axes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#General-concepts" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Line-styles" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_0438-_043a_043e_043e_0440_0434_0438_043d_0430_0442"></a>
+<h3 class="subsection">1.1.1 Оси координат</h3>
+
+<p>Представление системы координат в MathGL состоит из двух частей. Вначале координаты нормируются в интервал <var>Min</var>x<var>Max</var> (see section <a href="#Axis-settings">Параметры осей координат</a>). Если флаг <var>Cut</var> установлен, то точки вне интервала отбрасываются, в противном случае, они проецируются на ограничивающий параллелепипед (see section <a href="#Cutting">Обрезание</a>). Кроме того, отбрасываются точки внутри границ, определенных переменными <var>CutMin</var>x<var>CutMax</var> и точки, для которых значение функции <code>CutOff</code>() не равно нулю. После этого формулы перехода в криволинейную систему координат <code>SetFunc()</code>применяются к каждой точке. Наконец, точка данных отображается с помощью одной из графических функций.
+</p>
+<p>Величины <var>Max</var>, <var>Min</var> можно изменять вручную. Однако, после этого необходимо вызвать функцию <code>RecalcBorder()</code> для настройки графика. Более удобный и безопасный путь состоит в вызове функций <code>Axis(), SetRanges()</code> и др. В последнем случае функция <code>RecalcBorder()</code> вызывается автоматически. Размеры осей можно задавать и автоматически по минимальному и максимальному значениям массива данных. Для этого предназначены функции <code>XRange(), YRange(), ZRange()</code>. Второй не обязательный аргумент указывает, заменять ли новые значения диапазона изменения оси координат (по умолчанию) или только расширить уже существующий диапазон.
+</p>
+<p>Точка пересечения осей координат задается переменной <var>Org</var> и действует на последующие вызовы функций рисования осей координат и сетки. По умолчанию, если точка пересечения осей координат попадает вне диапазона осей координат, то она проецируется на границу области. Изменить такое поведение можно, задав <var>AutoOrg</var>=<code>false</code>. В случае, если одно из значений <var>Org</var> равно NAN, то соответствующее значение будет выбрано автоматически.
+</p>
+<p>Кроме привычных осей <em>x, y, z</em> есть еще одна ось &ndash; цветовая шкала &ndash; ось <em>c</em>. Она используется при окрашивании поверхностей и задает границы изменения функции при окрашивании. При вызове <code>Axis()</code> ее границы автоматически устанавливаются равными Min.z и Max.z. Возможно и ручное изменение границ цветового интервала посредством вызова функции <code>CAxis()</code> или изменение границ по заданному массиву <code>CRange()</code>. Используйте <code>Colorbar()</code> для отображения цветовой шкалы.
+</p>
+<p>Вид меток по осям определяется функцией <code>SetTicks()</code> (see section <a href="#Axis-settings">Параметры осей координат</a>). Она имеет 3 аргумента: первый <var>d</var> задает шаг меток (если положительны) или их число (если отрицательны) или логарифмические метки (если равны нулю); второ <var>ns</var> задает число &quot;подметок&quot;; последний определяет начальную точку для меток (по умолчанию это точка пересечения осей). Функция <var>SetTuneTicks</var> включает/выключает выделение общего множителя (большого или малого факторов в диапазоне) для меток осей координат. Наконец, если стандартный вид меток не устраивает пользователя, то их шаблон можно задать явно (можно использовать и ТеХ символы), воспользовавшись функциями  <code>SetXTT(), SetYTT(). SetZTT(). SetCTT()</code>. Кроме того, в качестве меток можно вывести произвольный текст использовав функцию <code>SetTicksVal()</code>.
+</p>
+<hr size="6">
+<a name="Line-styles"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Coordinate-axes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Color-scheme" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_0442_0438_043bx-_043b_0438_043d_0438_0439"></a>
+<h3 class="subsection">1.1.2 Стиль линий</h3>
+
+<a name="index-_0421_0442_0438_043bx-_043b_0438_043d_0438_0439"></a>
+<a name="index-_0421_0442_0438_043bx-_043c_0430_0440_043ae_0440_043e_0432"></a>
+<a name="index-_0421_0442_0438_043bx-_0441_0442_0440e_043b_043e_043a"></a>
+
+<p>Стиль линии задается строкой, которая может содержать символ цвета (&lsquo;<samp>wkrgbcymhRGBCYMHWlenupqLENUPQ</samp>&rsquo;), тип пунктира (&lsquo;<samp>-|;:ji</samp>&rsquo; или пробел), ширину линии (&lsquo;<samp>0123456789</samp>&rsquo;) и тип маркера (&lsquo;<samp>o+xsd.^v</samp>&rsquo; и модификатор &lsquo;<samp>#</samp>&rsquo;). Если пропущен цвет или тип пунктира, то используется значение по умолчанию с последним указанным цветом или значение из палитры (для see section <a href="#g_t1D-plotting">1D графики</a>). 
+По умолчанию палитры содержит следующие цвета: <span style="color: rgb(76, 76, 76);">темно серый</span> &lsquo;<samp>H</samp>&rsquo;, <span style="color: rgb(0, 0, 255);">синий</span> &lsquo;<samp>b</samp>&rsquo;, <span style="color: rgb(0, 255, 0);">зеленый</span> &lsquo;<samp>g</samp>&rsquo;, <span style="color: rgb(255, 0, 0);">красный</span> &lsquo;<samp>r</samp>&rsquo;, <span style="color: rgb(0, 255, 255);">голубой</span> &lsquo;<samp>c</samp>&rsquo;, <span style="color: rgb(255, 0, 255);">пурпурный</span> &lsquo;<samp>m</samp>&rsquo;, <span style="color: rgb(255, 255, 0);">yellow</span> &lsquo;<samp>y</samp>&rsquo;, <span style="color: rgb(127, 127, 127);">серый</span> &lsquo;<samp>h</samp>&rsquo;, <span style="color: rgb(0, 255, 127);">сине-зеленый</span> &lsquo;<samp>l</samp>&rsquo;, <span style="color: rgb(0, 127, 255);">небесно-синий</span> &lsquo;<samp>n</samp>&rsquo;, <span style="color: rgb(255, 127, 0);">оранжевый</span> &lsquo;<samp>q</samp>&rsquo;, <span style="color: rgb(127, 255, 0);">желто-зеленый</span> &lsquo;<samp>e</samp>&rsquo;, <span style="color: rgb(127, 0, 255);">сине-фиолетовый</span> &lsquo;<samp>u</samp>&rsquo;, <span style="color: rgb(255, 0, 127);">фиолетовый</span> &lsquo;<samp>p</samp>&rsquo;.
+
+<p>Символы цвета: &lsquo;<samp>k</samp>&rsquo; -- черный, &lsquo;<samp>r</samp>&rsquo; -- <span style="color: rgb(255, 0, 0);">красный</span>, &lsquo;<samp>R</samp>&rsquo; -- <span style="color: rgb(127, 0, 0);">темно красный</span>, &lsquo;<samp>g</samp>&rsquo; -- <span style="color: rgb(0, 255, 0);">зеленый</span>, &lsquo;<samp>G</samp>&rsquo; -- <span style="color: rgb(0, 127, 0);">темно зеленый</span>, &lsquo;<samp>b</samp>&rsquo; -- <span style="color: rgb(0, 0, 255);">синий</span>, &lsquo;<samp>B</samp>&rsquo; -- <span style="color: rgb(0, 0, 127);">темно синий</span>, &lsquo;<samp>c</samp>&rsquo; -- <span style="color: rgb(0, 255, 255);">голубой</span>, &lsquo;<samp>C</samp>&rsquo; -- <span style="color: rgb(0, 127, 127);">темно голубой</span>, &lsquo;<samp>m</samp>&rsquo; -- <span style="color: rgb(255, 0, 255);">пурпурный</span>, &lsquo;<samp>M</samp>&rsquo; -- <span style="color: rgb(127, 0, 127);">темно пурпурный</span>, &lsquo;<samp>y</samp>&rsquo; -- <span style="color: rgb(255, 255, 0);">желтый</span>, &lsquo;<samp>Y</samp>&rsquo; -- <span style="color: rgb(127, 127, 0);">темно желтый (золотой)</span>, &lsquo;<samp>h</samp>&rsquo; -- <span style="color: rgb(127, 127, 127);">серый</span>, &lsquo;<samp>H</samp>&rsquo; -- <span style="color: rgb(76, 76, 76);">темно серый</span>, &lsquo;<samp>w</samp>&rsquo; -- белый, &lsquo;<samp>W</samp>&rsquo; -- <span style="color: rgb(178, 178, 178);">светло серый</span>, &lsquo;<samp>l</samp>&rsquo; -- <span style="color: rgb(0, 255, 127);">сине-зеленый</span>, &lsquo;<samp>L</samp>&rsquo; -- <span style="color: rgb(0, 127, 63);">темно сине-зеленый</span>, &lsquo;<samp>e</samp>&rsquo; -- <span style="color: rgb(127, 255, 0);">желто-зеленый</span>, &lsquo;<samp>E</samp>&rsquo; -- <span style="color: rgb(63, 127, 0);">темно желто-зеленый</span>, &lsquo;<samp>n</samp>&rsquo; -- <span style="color: rgb(0, 127, 255);">небесно-синий</span>, &lsquo;<samp>N</samp>&rsquo; -- <span style="color: rgb(0, 63, 127);">темно небесно-синий</span>, &lsquo;<samp>u</samp>&rsquo; -- <span style="color: rgb(127, 0, 255);">сине-фиолетовый</span>, &lsquo;<samp>U</samp>&rsquo; -- <span style="color: rgb(63, 0, 127);">темно сине-фиолетовый</span>, &lsquo;<samp>p</samp>&rsquo; -- <span style="color: rgb(255, 0, 127);">фиолетовый</span>, &lsquo;<samp>P</samp>&rsquo; -- <span style="color: rgb(127, 0, 63);">темно фиолетовый</span>, &lsquo;<samp>q</samp>&rsquo; -- <span style="color: rgb(255, 127, 0);">оранжевый</span>, &lsquo;<samp>Q</samp>&rsquo; -- <span style="color: rgb(127, 63, 0);">темно оранжевый (коричневый)</span>.</p>
+
+Тип пунктира: пробел -- нет линии (для рисования только маркеров), &lsquo;<samp>-</samp>&rsquo; -- сплошная линия (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;), &lsquo;<samp>|</samp>&rsquo; -- длинный пунктир (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>;</samp>&rsquo; -- пунктир (&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>=</samp>&rsquo; -- короткий пунктир (&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;), &lsquo;<samp>:</samp>&rsquo; -- точки (&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;), &lsquo;<samp>j</samp>&rsquo; -- пунктир с точками  (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>i</samp>&rsquo; -- мелкий пунктир с точками (&#9632;&#9632;&#9632;&#9633;&#9633;&#9632;&#9633;&#9633;&#9632;&#9632;&#9632;&#9633;&#9633;&#9632;&#9633;&#9633;).</p>
+<p>Типы маркеров: &lsquo;<samp>o</samp>&rsquo; &ndash; окружность, &lsquo;<samp>+</samp>&rsquo; &ndash; крест, &lsquo;<samp>x</samp>&rsquo; &ndash; косой крест, &lsquo;<samp>s</samp>&rsquo; - квадрат, &lsquo;<samp>d</samp>&rsquo; - ромб, &lsquo;<samp>.</samp>&rsquo; &ndash; точка, &lsquo;<samp>^</samp>&rsquo; &ndash; треугольник вверх, &lsquo;<samp>v</samp>&rsquo; &ndash; треугольник вниз, &lsquo;<samp>&lt;</samp>&rsquo; &ndash; треугольник влево, &lsquo;<samp>&gt;</samp>&rsquo; &ndash; треугольник вправо, &lsquo;<samp>#*</samp>&rsquo; &ndash; знак Y, &lsquo;<samp>#+</samp>&rsquo; &ndash; крест в квадрате, &lsquo;<samp>#x</samp>&rsquo; &ndash; косой крест в квадрате, &lsquo;<samp>#.</samp>&rsquo; &ndash; точка в окружности. Если в строке присутствует символ &lsquo;<samp>#</samp>&rsquo;, то используются символы с заполнением.
+</p>
+<div class="float">
+<img src="../png/sample5.png" alt="../png/sample5">
+
+</div><p><strong>Стили линий и маркеров.
+</strong>
+</p>
+<p>На конце и в начале линии можно выводить специальный символ (стрелку), если в строке указать один из символов: &lsquo;<samp>A</samp>&rsquo; &ndash; стрелка наружу, &lsquo;<samp>V</samp>&rsquo; &ndash; стрелка внутрь, &lsquo;<samp>I</samp>&rsquo; &ndash; поперечная черта, &lsquo;<samp>K</samp>&rsquo; &ndash; стрелка с чертой, &lsquo;<samp>T</samp>&rsquo; &ndash; треугольник, &lsquo;<samp>S</samp>&rsquo; &ndash; квадрат, &lsquo;<samp>D</samp>&rsquo; &ndash; ромб, &lsquo;<samp>O</samp>&rsquo; &ndash; круг, &lsquo;<samp>_</samp>&rsquo; &ndash; нет стрелки (по умолчанию). При этом действует следующее правило: первый символ определяет стрелку на конце линии, второй символ &ndash; стрелку в начале линии. Например, &lsquo;<samp>r-A</samp>&rsquo; &ndash; красная сплошная линия со стрелкой на конце, &lsquo;<samp>b|AI</samp>&rsquo; &ndash; синий пунктир со стрелкой на конце и чертой вначале, &lsquo;<samp>_O</samp>&rsquo; &ndash; линия с текущим стилем и кружком вначале. Эти стили действуют и при построении графиков (например, <a href="#g_t1D-plotting">1D графики</a>).
+</p>
+<div class="float">
+<img src="../png/sampled.png" alt="../png/sampled">
+
+</div><p><strong>Стили стрелок.
+</strong>
+</p>
+<hr size="6">
+<a name="Color-scheme"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Line-styles" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-styles" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="C_0432e_0442_043e_0432_0430ya-_0441_0445e_043c_0430"></a>
+<h3 class="subsection">1.1.3 Цветовая схема</h3>
+
+<a name="index-C_0432e_0442_043e_0432_0430ya-_0441_0445e_043c_0430"></a>
+
+<p>Цветовая схема используется для определения цвета поверхностей, линий уровня и пр. Цветовая схема задается строкой <em>s</em>, которая содержит символы цвета (see section <a href="#Line-styles">Стиль линий</a>) или символы &lsquo;<samp>d#:|</samp>&rsquo;. Символ &lsquo;<samp>d</samp>&rsquo; указывает на определение цвета в зависимости от положения точки в пространстве, а не по амплитуде данных. Символ &lsquo;<samp>#</samp>&rsquo; переключает рисование поверхности на сетчатое (для трехмерных поверхностей) или включает рисование сетки на поверхности. Символ &lsquo;<samp>|</samp>&rsquo; отключает интерполяцию цвета в цветовой схеме. Это может быть полезно для &ldquo;резких&rdquo; цветов, например, при рисовании матриц. Если в строке встречается символ &lsquo;<samp>:</samp>&rsquo;, то он принудительно заканчивает разбор строки для стиля поверхности. После этого символа могут идти описание стиля текста или оси вращения кривой/линий уровня. Цветовая схема может содержать до 32 значений цвета.
+</p>
+<p>В цветовой схеме можно использовать тональные (&ldquo;подсвеченные&rdquo;) цвета (<em>не в стиле линий!</em>). Тональный цвет задается двумя символами: первый &ndash; обычный цвет, второй &ndash; его яркость цифрой. Цифра может быть в диапазоне &lsquo;<samp>1</samp>&rsquo;...&lsquo;<samp>9</samp>&rsquo;. При этом &lsquo;<samp>5</samp>&rsquo; соответствует нормальному цвету, &lsquo;<samp>1</samp>&rsquo; &ndash; очень темная версия цвета (почти черный), &lsquo;<samp>9</samp>&rsquo; &ndash; очень светлая версия цвета (почти белый). Например цветовая схема может быть &lsquo;<samp>b2b7wr7r2</samp>&rsquo;.
+</p>
+<div class="float">
+<img src="../png/colors.png" alt="../png/colors">
+
+</div><p><strong>Цвета и их идентификаторы.
+</strong>
+</p>
+<p>При определении цвета по <em>амплитуде</em> (наиболее часто используется) окончательный цвет определяется путем линейной интерполяции массива цветов. Массив цветов формируется из цветов, указанных в строке спецификации. Аргумент &ndash; амплитуда, нормированная между <var>Cmin</var> &ndash; <var>Cmax</var> (see section <a href="#Axis-settings">Параметры осей координат</a>). Например, строка из 4 символов &lsquo;<samp>bcyr</samp>&rsquo; соответствует изменению цвета от синего (минимальное значение) через голубой и желтый (промежуточные значения) к красному (максимальное значение). Строка &lsquo;<samp>kw</samp>&rsquo; соответствует изменению цвета от черного (минимальное значение) к белому (максимальное значение). Строка из одного символа (например, &lsquo;<samp>g</samp>&rsquo;) соответствует однотонному цвету (в данному случае зеленому).
+</p>
+<p>Есть несколько полезных цветовых схем. Строка &lsquo;<samp>kw</samp>&rsquo; дает обычную серую (черно-белую) схему, когда большие значения светлее. Строка &lsquo;<samp>wk</samp>&rsquo; представляет обратную серую схему, когда большие значения темнее. Строки &lsquo;<samp>kRryw</samp>&rsquo;, &lsquo;<samp>kGgw</samp>&rsquo;, &lsquo;<samp>kBbcw</samp>&rsquo; представляют собой хорошо известные схемы <em>hot</em>, <em>summer</em> и <em>winter</em>. Строки &lsquo;<samp>BbwrR</samp>&rsquo; и &lsquo;<samp>bBkRr</samp>&rsquo; позволяют рисовать двухцветные фигуры на белом или черном фоне, когда отрицательные значения показаны синим цветом, а положительные &ndash; красным. Строка &lsquo;<samp>BbcyrR</samp>&rsquo; дает цветовую схему, близкую к хорошо известной схеме <em>jet</em>.
+</p>
+
+<div class="float">
+<img src="../png/color_schemes.png" alt="../png/color_schemes">
+
+</div><p><strong>Наиболее популярные цветовые схемы.
+</strong>
+</p>
+<p>При определении цвета по <em>положению точки в пространстве</em> окончательный цвет определяется по формуле c=x*c[1] + y*c[2] + z*c[3]. Здесь c[1], c[2], c[3] &ndash; первые три цвета в цветовом массиве; x, y, z &ndash; координаты точки, нормированные на <var>Min</var>x<var>Max</var>. Такой тип определения цвета полезен, например, при построении поверхностей уровня, когда цвет дает представление о положении точки в пространстве.
+</p>
+<hr size="6">
+<a name="Font-styles"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Color-scheme" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Textual-formulas" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_0442_0438_043bx-_0442e_043a_0441_0442_0430"></a>
+<h3 class="subsection">1.1.4 Стиль текста</h3>
+
+<a name="index-_0421_0442_0438_043bx-_0442e_043a_0441_0442_0430"></a>
+
+<p>Стиль текста задается строкой, которая может содержать несколько символов: тип шрифта (&lsquo;<samp>ribwou</samp>&rsquo;) и/или выравнивания (&lsquo;<samp>LRC</samp>&rsquo;), а также цвет текста &lsquo;<samp>wkrgbcymhRGBCYMHW</samp>&rsquo; (see section <a href="#Line-styles">Стиль линий</a>) после символа &lsquo;<samp>:</samp>&rsquo;. Например, &lsquo;<samp>biC:b</samp>&rsquo; соответствует жирному курсиву с выравниванием по центру синего цвета.
+</p>
+<p>Начертания шрифта: &lsquo;<samp>r</samp>&rsquo; &ndash; прямой шрифт, &lsquo;<samp>i</samp>&rsquo; &ndash; курсив, &lsquo;<samp>b</samp>&rsquo; &ndash; жирный. По умолчанию используется прямой шрифт. Типы выравнивания текста: &lsquo;<samp>L</samp>&rsquo; &ndash; по левому краю (по умолчанию), &lsquo;<samp>C</samp>&rsquo; &ndash; по центру, &lsquo;<samp>R</samp>&rsquo; &ndash; по правому краю. Дополнительные эффекты шрифта: &lsquo;<samp>w</samp>&rsquo; &ndash; контурный, &lsquo;<samp>o</samp>&rsquo; &ndash; надчеркнутый, &lsquo;<samp>u</samp>&rsquo; &ndash; подчеркнутый. 
+</p>
+<p>Синтаксический разбор LaTeX-их команд по умолчанию включен. Это команды смены стиля текста (например, \b для жирного текста): \a или \overline &ndash; надчеркивание, \b или \textbf &ndash; жирный, \i или \textit &ndash; курсив, \r или \textrm &ndash; прямой (отменяет стили жирного и курсива), \u или \underline &ndash; подчеркнутый, \w или \wire &ndash; контурный, \big &ndash; большего размера, @ &ndash; меньшего размера. Нижний и верхний индексы задаются символами &lsquo;<samp>_</samp>&rsquo; и &lsquo;<samp>^</samp>&rsquo;. При этом изменение стиля применяется только к следующему символу или к символам в фигурных скобках {}, которые понимаются как единый блок. Например, сравните строки &lsquo;<samp>sin (x^{2^3})</samp>&rsquo; и &lsquo;<samp>sin (x^2^3)</samp>&rsquo;. Можно также менять цвет текста внутри строки с помощью команд #? или \color?, где &lsquo;<samp>?</samp>&rsquo; &ndash; символ цвета (see section <a href="#Line-styles">Стиль линий</a>). Например, слова &lsquo;<samp>Blue</samp>&rsquo; и &lsquo;<samp>red</samp>&rsquo; будут окрашены в соответствующий цвет в строке &lsquo;<samp>#b{Blue} and \colorr{red} text</samp>&rsquo;. Большинство функций понимает символ новой строки &lsquo;<samp>\n</samp>&rsquo; и позволяет выводить много строчный текст. Наконец, можно использовать символы с произвольным UTF кодом с помощью команды <code>\utf0x????</code>. Например, <code>\utf0x3b1</code> даст символ 
+&alpha;.</p>
+<p>Распознаются также большинство символов TeX и AMSTeX, команды смены стиля текста (\textrm, \textbf, \textit, \textsc, \overline, \underline), акценты (\hat, \tilde, \dot, \ddot, \acute, \check, \grave, \bar, \breve) и корни (\sqrt, \sqrt3, \sqrt4). Полный список содержит около 2000 символов. Отмечу, что первый пробел (пробел, табуляция и пр.) после команды игнорируется, а все остальные пробелы печатаются обычным образом. Например, следующие строки дают одинаковый результат <em>\tilde a</em>: &lsquo;<samp>\tilde{a}</samp>&rsquo;; &lsquo;<samp>\tilde a</samp>&rsquo;; &lsquo;<samp>\tilde{}a</samp>&rsquo;.
+</p>
+В частности, распознаются греческие буквы: &alpha; &ndash; \alpha, &beta; &ndash; \beta, &gamma; &ndash; \gamma, &delta; &ndash; \delta, &epsilon; &ndash; \epsilon, &eta; &ndash; \eta, &iota; &ndash; \iota, &chi; &ndash; \chi, &kappa; &ndash; \kappa, &lambda; &ndash; \lambda, &mu; &ndash; \mu, &nu; &ndash; \nu, o &ndash; \o, &omega; &ndash; \omega, &#981; &ndash; \phi, &pi; &ndash; \pi, &psi; &ndash; \psi, &rho; &ndash; \rho, &sigma; &ndash; \sigma, &theta; &ndash; \theta, &tau; &ndash; \tau, &upsilon; &ndash; \upsilon, &xi; &ndash; \xi, &zeta; &ndash; \zeta, &sigmaf; &ndash; \varsigma, &#603; &ndash; \varepsilon, &thetasym; &ndash; \vartheta, &phi; &ndash; \varphi, &#1008; &ndash; \varkappa; A &ndash; \Alpha, B &ndash; \Beta, &Gamma; &ndash; \Gamma, &Delta; &ndash; \Delta, E &ndash; \Epsilon, H &ndash; \Eta, I &ndash; \Iota, C &ndash; \Chi, K &ndash; \Kappa, &Lambda; &ndash; \Lambda, M &ndash; \Mu, N &ndash; \Nu, O &ndash; \O, &Omega; &ndash; \Omega, &Phi; &ndash; \Phi, &Pi; &ndash; \Pi, &Psi; &ndash; \Psi, R &ndash; \Rho, &Sigma; &ndash; \Sigma, &Theta; &ndash; \Theta, T &ndash; \Tau, &Upsilon; &ndash; \Upsilon, &Xi; &ndash; \Xi, Z &ndash; \Zeta.
+
+<p>Еще примеры наиболее общеупотребительных TeX-их символов: &ang; &ndash; \angle, &sdot; &ndash; \cdot, &clubs; &ndash; \clubsuit, &#10003; &ndash; \checkmark, &cup; &ndash; \cup, &cap; &ndash; \cap, &#9826; &ndash; \diamondsuit, &#9671; &ndash; \diamond, &divide;
+ &ndash; \div, 
+&darr; &ndash; \downarrow, &dagger; &ndash; \dag, &Dagger; &ndash; \ddag, &equiv; &ndash; \equiv, &exist; &ndash; \exists, &#8994; &ndash; \frown, &#9837; &ndash; \flat, &ge; &ndash; \ge, &ge; &ndash; \geq, &#8807; &ndash; \geqq, &larr; &ndash; \gets, &#9825; &ndash; \heartsuit, &infin; &ndash; \infty, &int; &ndash; \int, \Int, &image;  &ndash; \Im, &#9826; &ndash; \lozenge, &#10216; &ndash; \langle, &le; &ndash; \le, &le; &ndash; \leq, &#8806; &ndash; \leqq, &larr; &ndash; \leftarrow, &#8723; &ndash; \mp, &nabla; &ndash; \nabla, &ne; &ndash; \ne, &ne; &ndash; \neq, &#9838; &ndash; \natural, &#8750; &ndash; \oint, &#8857; &ndash; \odot, &oplus; &ndash; \oplus, &part; &ndash; \partial, &#8741; &ndash; \parallel, &perp; &ndash;\perp, &plusmn; &ndash; \pm, &prop; &ndash; \propto, &prod; &ndash; \prod, &real; &ndash; \Re, &rarr; &ndash; \rightarrow, &#10217; &ndash; \rangle, &spades; &ndash; \spadesuit, ~ &ndash; \sim, &#8995; &ndash; \smile, &sub;  &ndash; \subset, &sup; &ndash; \supset, &radic; &ndash; \sqrt or \surd, &sect; &ndash; \S, &#9839; &ndash; \sharp, &sum; &ndash; \sum, &times; &ndash; \times, &rarr; &ndash; \to, &there4; &ndash; \therefore, &uarr; &ndash; \uparrow, &weierp; &ndash; \wp. </p>
+<p>Размер текста может быть задан явно (если <var>size</var>&gt;0) или относительно базового размера шрифта для рисунка |<var>size</var>|*<var>FontSize</var> при <var>size</var>&lt;0. Значение <var>size</var>=0 указывает, что соответствующая строка выводиться не будет. Базовый размер шрифта измеряется во внутренних единицах. Специальные функции <code>SetFontSizePT(), SetFontSizeCM(), SetFontSizeIN()</code> позволяют задавать его в более &ldquo;привычных&rdquo; единицах.
+</p>
+<hr size="6">
+<a name="Textual-formulas"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-styles" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0422e_043a_0441_0442_043e_0432_044be-_0444_043e_0440_043c_0443_043b_044b"></a>
+<h3 class="subsection">1.1.5 Текстовые формулы</h3>
+
+<a name="index-_0422e_043a_0441_0442_043e_0432_044be-_0444_043e_0440_043c_0443_043b_044b"></a>
+
+<p>MathGL имеет быстрый парсер текстовых формул
+, понимающий большое число функций и операций. Базовые операции: &lsquo;<samp>+</samp>&rsquo; &ndash; сложение, &lsquo;<samp>-</samp>&rsquo; &ndash; вычитание, &lsquo;<samp>*</samp>&rsquo; &ndash; умножение, &lsquo;<samp>/</samp>&rsquo; &ndash; деление, &lsquo;<samp>^</samp>&rsquo; &ndash; возведение в целосичленную степень. Также есть логические операции: &lsquo;<samp>&lt;</samp>&rsquo; &ndash; истина если if x&lt;y, &lsquo;<samp>&gt;</samp>&rsquo; &ndash; истина если x&gt;y, &lsquo;<samp>=</samp>&rsquo; &ndash; истина если x=y, &lsquo;<samp>&amp;</samp>&rsquo; &ndash; истина если x и y оба не равны нулю, &lsquo;<samp>|</samp>&rsquo; &ndash; истина если x или y не нуль. Логические операции имеют наинизший приоритет и возвращают 1 если истина или 0 если ложно.
+</p>
+<p>Базовые функции: &lsquo;<samp>sqrt(x)</samp>&rsquo; &ndash; квадратный корень из <var>x</var>, &lsquo;<samp>pow(x,y)</samp>&rsquo; &ndash; <var>x</var> в степени <var>y</var>, &lsquo;<samp>ln(x)</samp>&rsquo; &ndash; натуральный логарифм <var>x</var>, &lsquo;<samp>lg(x)</samp>&rsquo; &ndash; десятичный логарифм <var>x</var>, &lsquo;<samp>log(a,x)</samp>&rsquo; &ndash; логарифм по основанию <var>a</var> от <var>x</var>, &lsquo;<samp>abs(x)</samp>&rsquo; &ndash; модуль <var>x</var>, &lsquo;<samp>sign(x)</samp>&rsquo; &ndash; знак <var>x</var>, &lsquo;<samp>mod(x,y)</samp>&rsquo; &ndash; остаток от деления x на y, &lsquo;<samp>step(x)</samp>&rsquo; &ndash; ступенчатая функция, &lsquo;<samp>int(x)</samp>&rsquo; &ndash; целая часть <var>x</var>, &lsquo;<samp>rnd</samp>&rsquo; &ndash; случайное число, &lsquo;<samp>pi</samp>&rsquo; &ndash; число 
+&pi; = 3.1415926&hellip;</p>
+<p>Тригонометрические функции: &lsquo;<samp>sin(x)</samp>&rsquo;, &lsquo;<samp>cos(x)</samp>&rsquo;, &lsquo;<samp>tan(x)</samp>&rsquo; (или &lsquo;<samp>tg(x)</samp>&rsquo;). Обратные тригонометрические функции: &lsquo;<samp>asin(x)</samp>&rsquo;, &lsquo;<samp>acos(x)</samp>&rsquo;, &lsquo;<samp>atan(x)</samp>&rsquo;. Гиперболические функции: &lsquo;<samp>sinh(x)</samp>&rsquo; (или &lsquo;<samp>sh(x)</samp>&rsquo;), &lsquo;<samp>cosh(x)</samp>&rsquo; (или &lsquo;<samp>ch(x)</samp>&rsquo;), &lsquo;<samp>tanh(x)</samp>&rsquo; (или &lsquo;<samp>th(x)</samp>&rsquo;). Обратные гиперболические функции: &lsquo;<samp>asinh(x)</samp>&rsquo;, &lsquo;<samp>acosh(x)</samp>&rsquo;, &lsquo;<samp>atanh(x)</samp>&rsquo;.
+</p>
+<p>Специальные функции: &lsquo;<samp>gamma(x)</samp>&rsquo; &ndash; гамма функция &Gamma;(x) = &int;<sub>0</sub><sup>&infin;</sup> t<sup>x-1</sup> exp(-t) dt, &lsquo;<samp>psi(x)</samp>&rsquo; &ndash; дигамма функция &psi;(x) = &Gamma;&prime;(x)/&Gamma;(x) для x&ne;0, &lsquo;<samp>ai(x)</samp>&rsquo; &ndash; Эйри функция Ai(x), &lsquo;<samp>bi(x)</samp>&rsquo; &ndash; Эйри функция Bi(x), &lsquo;<samp>cl(x)</samp>&rsquo; &ndash; функция Клаузена, &lsquo;<samp>li2(x)</samp>&rsquo; (или &lsquo;<samp>dilog(x)</samp>&rsquo;) &ndash; дилогарифм Li<sub>2</sub>(x) = -&real;&int;<sub>0</sub><sup>x</sup>ds log(1-s)/s, &lsquo;<samp>sinc(x)</samp>&rsquo; &ndash; функция sinc(x) = sin(&pi;x)/(&pi;x) для любых x, &lsquo;<samp>zeta(x)</samp>&rsquo; &ndash; зета функция Римана &zeta;(s) = &sum;<sub>k=1</sub><sup>&infin;</sup>k<sup>-s</sup> для s&ne;1, &lsquo;<samp>eta(x)</samp>&rsquo; &ndash; эта функция &eta;(s) = (1 - 2<sup>1-s</sup>)&zeta;(s) для произвольного s, &lsquo;<samp>lp(l,x)</samp>&rsquo; &ndash; полином Лежандра P<sub>l</sub>(x), (|x|&le;1, l&ge;0), &lsquo;<samp>w0(x)</samp>&rsquo;, &lsquo;<samp>w1(x)</samp>&rsquo; &ndash; функции Ламберта W. Функции W(x) определены как решение уравнения: W exp(W) = x. </p>
+
+<p>Экспоненциальные интегралы: &lsquo;<samp>ci(x)</samp>&rsquo; &ndash; cos-интеграл Ci(x) = &int;<sub>0</sub><sup>x</sup>dt cos(t)/t, &lsquo;<samp>si(x)</samp>&rsquo; &ndash; sin-интеграл Si(x) = &int;<sub>0</sub><sup>x</sup>dt sin(t)/t, &lsquo;<samp>erf(x)</samp>&rsquo; &ndash; функция ошибки erf(x) = (2/&radic;&pi;) &int;<sub>0</sub><sup>x</sup>dt exp(-t<sup>2</sup>) , &lsquo;<samp>ei(x)</samp>&rsquo; &ndash; интеграл Ei(x) = -PV(&int;<sub>-x</sub><sup>&infin;</sup>dt exp(-t)/t) (где PV обозначает главное значение), &lsquo;<samp>e1(x)</samp>&rsquo; &ndash; интеграл E<sub>1</sub>(x) = &real;&int;<sub>1</sub><sup>&infin;</sup>dt exp(-xt)/t, &lsquo;<samp>e2(x)</samp>&rsquo; &ndash; интеграл E<sub>2</sub>(x) = &real;&int;<sub>1</sub>&infin;</sup>dt exp(-xt)/t<sup>2</sup>, &lsquo;<samp>ei3(x)</samp>&rsquo; &ndash; интеграл Ei<sub>3</sub>(x) = &int;<sub>0</sub><sup>x</sup>dt exp(-t<sup>3</sup>) для x&ge;0. </p>
+
+<p>Функции Бесселя: &lsquo;<samp>j(nu,x)</samp>&rsquo; &ndash; функция Бесселя первого рода, &lsquo;<samp>y(nu,x)</samp>&rsquo; &ndash; функция Бесселя второго рода, &lsquo;<samp>i(nu,x)</samp>&rsquo; &ndash; модифицированная функция Бесселя первого рода, &lsquo;<samp>k(nu,x)</samp>&rsquo; &ndash; модифицированная функция Бесселя второго рода. </p>
+
+<p>Эллиптические интегралы: &lsquo;<samp>ee(k)</samp>&rsquo; &ndash; полный эллиптический интеграл E(k) = E(&pi;/2,k), &lsquo;<samp>ek(k)</samp>&rsquo; &ndash; полный эллиптический интеграл K(k) = F(&pi;/2,k), &lsquo;<samp>e(phi,k)</samp>&rsquo; &ndash; эллиптический интеграл E(&phi;,k) = &int;<sub>0</sub><sup>&phi;</sup>dt &radic;(1 - k<sup>2</sup>sin<sup>2</sup>(t)), &lsquo;<samp>f(phi,k)</samp>&rsquo; &ndash; эллиптический интеграл F(&phi;,k) = &int;<sub>0</sub><sup>&phi;</sup>dt 1/&radic;(1 - k<sup>2</sup>sin<sup>2</sup>(t))</p>
+<p>Функции Якоби: &lsquo;<samp>sn(u,m)</samp>&rsquo;, &lsquo;<samp>cn(u,m)</samp>&rsquo;, &lsquo;<samp>dn(u,m)</samp>&rsquo;, &lsquo;<samp>sc(u,m)</samp>&rsquo;, &lsquo;<samp>sd(u,m)</samp>&rsquo;, &lsquo;<samp>ns(u,m)</samp>&rsquo;, &lsquo;<samp>cs(u,m)</samp>&rsquo;, &lsquo;<samp>cd(u,m)</samp>&rsquo;, &lsquo;<samp>nc(u,m)</samp>&rsquo;, &lsquo;<samp>ds(u,m)</samp>&rsquo;, &lsquo;<samp>dc(u,m)</samp>&rsquo;, &lsquo;<samp>nd(u,m)</samp>&rsquo;.
+</p>
+<p>Некоторые из функций могут быть недоступны если флаг NO_GSL был определен при компиляции библиотеки MathGL. 
+</p>
+<p>При разборе формул нет различия между верхним и нижним регистром. Если аргумент лежит вне области определения функции, то возвращается NaN.
+</p>
+
+<hr size="6">
+<a name="Graphics-setup"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Textual-formulas" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041d_0430_0441_0442_0440_043e_0439_043a_0430-g_0440_0430_0444_0438_043a_0430"></a>
+<h2 class="section">1.2 Настройка графика</h2>
+
+<p>Команды в этой группе влияют на вид всего рисунка. Соответственно они должны располагаться <em>перед</em> вызовом функций непосредственно рисующих графики.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Transparency">1.2.1 Прозрачность</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lighting">1.2.2 Освещение</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fog">1.2.3 Туман</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Default-sizes">1.2.4 Базовые размеры</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Zooming">1.2.5 Масштабирование</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cutting">1.2.6 Обрезание</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-settings">1.2.7 Прочие настройки</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Graphics-setup" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lighting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x"></a>
+<h3 class="subsection">1.2.1 Прозрачность</h3>
+
+<p>Эти команды настраивают тип и степень прозрачности поверхностей. Главной является функция <a href="#alpha">alpha</a>, которая включает/выключает прозрачность для всех графиков, созданных после вызова <a href="#alpha">alpha</a>. Функция <a href="#alphadef">alphadef</a> устанавливает величину alpha-канала по умолчанию. Прозрачность можно выключить для отдельного графика с помощью <a href="#transparent">transparent</a>. Наконец, функция <a href="#transptype">transptype</a> задает тип прозрачности. См. раздел <a href="mgl_ru_3.html#Transparent-surface-sample">Transparent surface &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<a name="index-alpha"></a>
+<p><a name="alpha"></a>
+</p><dl>
+<dt><a name="index-alpha-1"></a><u>Команда MGL:</u> <b>alpha</b><i> <code>[val=on]</code></i></dt>
+<dd><p>Включает/выключает прозрачность для <em>всего</em> рисунка. По умолчанию прозрачность выключена. Используйте <code>transparent off</code> для конкретного графика для выключения прозрачности.
+</p></dd></dl>
+<a name="index-alphadef"></a>
+<p><a name="alphadef"></a>
+</p><dl>
+<dt><a name="index-alphadef-1"></a><u>Команда MGL:</u> <b>alphadef</b><i> <code>val</code></i></dt>
+<dd><p>Задает значение прозрачности по умолчанию для всех графиков. Начальное значение 0.5.
+</p></dd></dl>
+<a name="index-transparent"></a>
+<p><a name="transparent"></a>
+</p><dl>
+<dt><a name="index-transparent-1"></a><u>Команда MGL:</u> <b>transparent</b><i> <code>val</code></i></dt>
+<dd><p>Временно включает/возвращает прозрачность графиков.
+</p></dd></dl>
+<a name="index-transptype"></a>
+<p><a name="transptype"></a>
+</p><dl>
+<dt><a name="index-transptype-1"></a><u>Команда MGL:</u> <b>transptype</b><i> <code>val</code></i></dt>
+<dd><p>Задает тип прозрачности. Обычная прозрачность (&lsquo;<samp>0</samp>&rsquo;) &ndash; &quot;закрытые&quot; объекты видны меньше чем закрывающие. &quot;Стеклянная&quot; прозрачность (&lsquo;<samp>1</samp>&rsquo;) &ndash; закрытые и закрывающие объекты единообразно ослабляют интенсивность света (по RGB каналам). &quot;Ламповая&quot; прозрачность (&lsquo;<samp>2</samp>&rsquo;) &ndash; закрытые и закрывающие объекты являются источниками дополнительного освещения (рекомендую установить <code>alphadef 0.3</code> или меньше в этом случае). See section <a href="mgl_ru_3.html#Normal-transparency">Обычная прозрачность</a>, <a href="mgl_ru_3.html#Glass_002dlike-transparency">&quot;Стеклянная&quot; прозрачность</a>, <a href="mgl_ru_3.html#Lamp_002dlike-transparency">&quot;Ламповая&quot; прозрачность</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Lighting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fog" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_0432e_0449e_043d_0438e"></a>
+<h3 class="subsection">1.2.2 Освещение</h3>
+
+<p>Эти функции настраивают освещение графика. Главная функция <a href="#light">light</a> включает/выключает освещение графиков построенных после ее вызова. MathGL  поддерживает до 10 независимых источников света. Положение, цвет, яркость каждого источника света можно задавать по отдельности. По умолчанию включен только первый (с порядковым номером <code>0</code>) источник света белого цвета, расположенный сверху.
+</p>
+<a name="index-light"></a>
+<p><a name="light"></a>
+</p><dl>
+<dt><a name="index-light-1"></a><u>Команда MGL:</u> <b>light</b><i> <code>[val=on]</code></i></dt>
+<dd><p>Включает/выключает освещение графика. По умолчанию освещение выключено.
+</p></dd></dl>
+<dl>
+<dt><a name="index-light-2"></a><u>Команда MGL:</u> <b>light</b><i> <code>n val</code></i></dt>
+<dd><p>Включает/выключает <var>n</var>-ый источник света.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-light-3"></a><u>Команда MGL:</u> <b>light</b><i> <code>n xpos ypos zpos</code> ['col'='w' <code>br=0.5</code>]</i></dt>
+<dd><p>Добавляет источник света с номером <var>n</var> в положение {<var>xpos</var>, <var>ypos</var>, <var>zpos</var>} с цветом <var>col</var> и яркостью <var>br</var>, которая должна быть в диапазоне [0,1].
+</p></dd></dl>
+
+<a name="index-ambient"></a>
+<p><a name="ambient"></a>
+</p><dl>
+<dt><a name="index-ambient-1"></a><u>Команда MGL:</u> <b>ambient</b><i> <code>val</code></i></dt>
+<dd><p>Задает яркость рассеянного освещения. Значение должно быть в диапазоне [0,1].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fog"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lighting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Default-sizes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0422_0443_043c_0430_043d"></a>
+<h3 class="subsection">1.2.3 Туман</h3>
+
+<a name="index-fog"></a>
+<p><a name="fog"></a>
+</p><dl>
+<dt><a name="index-fog-1"></a><u>Команда MGL:</u> <b>fog</b><i> <code>val [dz=0.25]</code></i></dt>
+<dd><p>Имитирует туман на графике. Туман начинается на относительном расстоянии <var>dz</var> от точки обзора и его плотность растет экспоненциально вглубь по закону ~<em>1-exp(-d*z)</em>. Здесь <em>z</em> &ndash; нормализованная на 1 глубина графика. Если <var>d</var>=<code>0</code> то туман отсутствует. См. раздел <a href="mgl_ru_3.html#Surface-in-fog-sample">Surface in fog &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Default-sizes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fog" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Zooming" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0411_0430_0437_043e_0432_044be-_0440_0430_0437_043ce_0440_044b"></a>
+<h3 class="subsection">1.2.4 Базовые размеры</h3>
+
+<p>Эти команды задают величины большинства параметров графика, включая размеры маркеров, стрелок, толщину линий и т.д. Как и любые другие настройки, они подействуют только на графики созданные после изменения настроек.
+</p>
+<a name="index-barwidth"></a>
+<p><a name="barwidth"></a>
+</p><dl>
+<dt><a name="index-barwidth-1"></a><u>Команда MGL:</u> <b>barwidth</b><i> <code>val</code></i></dt>
+<dd><p>Относительный размер прямоугольников в <code>bars, barh, boxplot</code>. Значение по умолчанию <code>0.7</code>.
+</p></dd></dl>
+
+<a name="index-marksize"></a>
+<p><a name="marksize"></a>
+</p><dl>
+<dt><a name="index-marksize-1"></a><u>Команда MGL:</u> <b>marksize</b><i> <code>val</code></i></dt>
+<dd><p>Размер маркеров для <a href="#g_t1D-plotting">1D графики</a>. Значение по умолчанию <code>1</code>.
+</p></dd></dl>
+
+<a name="index-arrowsize"></a>
+<p><a name="arrowsize"></a>
+</p><dl>
+<dt><a name="index-arrowsize-1"></a><u>Команда MGL:</u> <b>arrowsize</b><i> <code>val</code></i></dt>
+<dd><p>Размер стрелок для <a href="#g_t1D-plotting">1D графики</a>, линий и кривых (see section <a href="#Primitives-drawing">Рисование примитивов</a>). Значение по умолчанию <code>1</code>.
+</p></dd></dl>
+
+<a name="index-linewidth"></a>
+<p><a name="linewidth"></a>
+</p><dl>
+<dt><a name="index-linewidth-1"></a><u>Команда MGL:</u> <b>linewidth</b><i> <code>val</code></i></dt>
+<dd><p>Базовая толщина линий. Значения &lt;1 игнорируются. Для значений &gt;1 реальная толщина получается перемножением указанной ширины линии на данное значение. Увеличение ширины линии актуально для больших растровых рисунков. Значение по умолчанию <code>1</code>.
+</p></dd></dl>
+
+<a name="index-ticklen"></a>
+<p><a name="ticklen"></a>
+</p><dl>
+<dt><a name="index-ticklen-1"></a><u>Команда MGL:</u> <b>ticklen</b><i> <code>val</code> [<code>stt=1</code>]</i></dt>
+<dd><p>Относительная длина меток осей координат. Значение по умолчанию <code>0.1</code>. Параметр <var>stt</var>&gt;0 задает относительную длину подметок, которые в <code>sqrt(1+stt)</code> раз меньше.
+</p></dd></dl>
+
+<a name="index-tickstl"></a>
+<p><a name="tickstl"></a>
+</p><dl>
+<dt><a name="index-tickstl-1"></a><u>Команда MGL:</u> <b>tickstl</b><i> 'stl' ['sub'='']</i></dt>
+<dd><p>Стиль меток (<var>stl</var>) и подметок (<var>sub</var>) осей координат. Если <code>stl=''</code>, то используется стиль по умолчанию (&lsquo;<samp>k</samp>&rsquo; или &lsquo;<samp>w</samp>&rsquo; в зависимости от типа прозрачности). Если <code>sub=''</code>, то используется стиль меток (т.е. <var>stl</var>).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Zooming"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Default-sizes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cutting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041c_0430_0441_0448_0442_0430_0431_0438_0440_043e_0432_0430_043d_0438e"></a>
+<h3 class="subsection">1.2.5 Масштабирование</h3>
+
+<p>Эти команды управляют масштабированием всего рисунка (<a href="#zoom">zoom</a>) или отдельной картинки (<a href="#plotfactor">plotfactor</a>). Обычно эти функции используются для удаления пустого места вокруг графиков.
+</p>
+<a name="index-plotfactor"></a>
+<p><a name="plotfactor"></a>
+</p><dl>
+<dt><a name="index-plotfactor-1"></a><u>Команда MGL:</u> <b>plotfactor</b><i> <code>val</code></i></dt>
+<dd><p>Масштаб картинки (значение должно быть больше 1). Не рекомендуется устанавливать значения меньше 1.5. Это аналог <a href="#zoom">zoom</a>, но применяется только к конкретной картинке, заданной <a href="#inplot">inplot</a>. Используйте ноль для включения автоматического масштабирования.
+</p></dd></dl>
+
+<a name="index-zoom"></a>
+<p><a name="zoom"></a>
+</p><dl>
+<dt><a name="index-zoom-1"></a><u>Команда MGL:</u> <b>zoom</b><i> <code>x1 y1 x2 y2</code></i></dt>
+<dd><p>Масштабирует весь рисунок. После вызова функции текущий график будет очищен и в дальнейшем рисунок будет содержать только область [x1,x2]*[y1,y2] от исходного рисунка. Координаты <var>x1</var>, <var>x2</var>, <var>y1</var>, <var>y2</var> меняются в диапазоне от 0 до 1. Внимание! эти настройки не могут быть переписаны никакими другими функциями. Используйте <code>zoom 0 0 1 1</code> для перехода в масштаб по умолчанию.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cutting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Zooming" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0431_0440e_0437_0430_043d_0438e"></a>
+<h3 class="subsection">1.2.6 Обрезание</h3>
+
+<p>Эти команды задают условия когда точка будет исключена (вырезана) из рисования. Замечу, что все точки со значением(-ями) <code>nan</code> по одной из координат или амплитуде автоматически исключаются из рисования.
+</p>
+<a name="index-cut"></a>
+<p><a name="cut"></a>
+</p><dl>
+<dt><a name="index-cut-1"></a><u>Команда MGL:</u> <b>cut</b><i> <code>val</code></i></dt>
+<dd><p>Задает обрезание точек за пределами осей координат. Если <code>on</code> то такие точки исключаются из рисования (это по умолчанию) иначе они проецируются на ограничивающий прямоугольник.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cut-2"></a><u>Команда MGL:</u> <b>cut</b><i> <code>x1 y1 z1 x2 y2 z2</code></i></dt>
+<dd><p>Задает границы параллелепипеда внутри которого точки не рисуются. Если границы одинаковы (переменные равны), то параллелепипеда считается пустым. См. раздел <a href="mgl_ru_3.html#CutMinMax-sample">CutMinMax &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cut-3"></a><u>Команда MGL:</u> <b>cut</b><i> 'cond'</i></dt>
+<dd><p>Задает условие обрезания по формуле <var>cond</var>. Это условие исключает точки из рисования если результат вычисления формулы не равен нулю. Установите аргумент <code>''</code> для выключения условия обрезания. См. раздел <a href="mgl_ru_3.html#CutOff-sample">CutOff &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Other-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cutting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043e_0447_0438e-_043d_0430_0441_0442_0440_043e_0439_043a_0438"></a>
+<h3 class="subsection">1.2.7 Прочие настройки</h3>
+
+<a name="index-font"></a>
+<p><a name="font"></a>
+</p><dl>
+<dt><a name="index-font-1"></a><u>Команда MGL:</u> <b>font</b><i> 'fnt' [<code>val=6</code>]</i></dt>
+<dd><p>Задает стиль и размер шрифта (see section <a href="#Text-printing">Вывод текста</a>). Вначале используется &lsquo;<samp>rC</samp>&rsquo; &ndash; прямой шрифт с выравниванием по центру. По умолчанию размер подписей оси координат в 1.4 раза больше.
+</p></dd></dl>
+
+<a name="index-rotatetext"></a>
+<p><a name="rotatetext"></a>
+</p><dl>
+<dt><a name="index-rotatetext-1"></a><u>Команда MGL:</u> <b>rotatetext</b><i> <code>val</code></i></dt>
+<dd><p>Включает/выключает вращение меток и подписей осей координат вдоль оси. Начальное значение <code>on</code>.
+</p></dd></dl>
+
+<a name="index-palette"></a>
+<p><a name="palette"></a>
+</p><dl>
+<dt><a name="index-palette-1"></a><u>Команда MGL:</u> <b>palette</b><i> 'colors'</i></dt>
+<dd><p>Задает палитру как последовательность цветов. Значение по умолчанию <code>&quot;Hbgrcmyhlnqeup&quot;</code>, что соответствует цветам: темно серый &lsquo;<samp>H</samp>&rsquo;, синий &lsquo;<samp>b</samp>&rsquo;, зеленый &lsquo;<samp>g</samp>&rsquo;, красный &lsquo;<samp>r</samp>&rsquo;, голубой &lsquo;<samp>c</samp>&rsquo;, малиновый &lsquo;<samp>m</samp>&rsquo;, желтый &lsquo;<samp>y</samp>&rsquo;, серый &lsquo;<samp>h</samp>&rsquo;, сине-зеленый  &lsquo;<samp>l</samp>&rsquo;, небесно-голубой &lsquo;<samp>n</samp>&rsquo;, оранжевый &lsquo;<samp>q</samp>&rsquo;, желто-зеленый &lsquo;<samp>e</samp>&rsquo;, сине-фиолетовый &lsquo;<samp>u</samp>&rsquo;, фиолетовый &lsquo;<samp>p</samp>&rsquo;. Палитра в основном используется в 1D графиках (see section <a href="#g_t1D-plotting">1D графики</a>) для кривых с неопределенным стилем линии.
+</p></dd></dl>
+
+<a name="index-meshnum"></a>
+<p><a name="meshnum"></a>
+</p><dl>
+<dt><a name="index-meshnum-1"></a><u>Команда MGL:</u> <b>meshnum</b><i> <code>num</code></i></dt>
+<dd><p>Задает ориентировочное число линий в <a href="#mesh">mesh</a>, <a href="#fall">fall</a>, <a href="#grid">grid</a>, число стрелок (штрихов) в <a href="#vect">vect</a>, <a href="#dew">dew</a> и число ячеек в <a href="#cloud">cloud</a>. По умолчанию (=0) рисуются все линии, стрелки, ячейки.
+</p></dd></dl>
+
+<a name="index-axialdir"></a>
+<p><a name="axialdir"></a>
+</p><dl>
+<dt><a name="index-axialdir-1"></a><u>Команда MGL:</u> <b>axialdir</b><i> 'dir'</i></dt>
+<dd><p>Задает ось вращения для <a href="#axial">axial</a>, <a href="#torus">torus</a>. По умолчанию это &rsquo;z&rsquo;.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axis-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transformation-matrix" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0430_0440_0430_043ce_0442_0440_044b-_043e_0441e_0439-_043a_043e_043e_0440_0434_0438_043d_0430_0442"></a>
+<h2 class="section">1.3 Параметры осей координат</h2>
+
+<p>Этот большой набор команд определяет вид осей и меток координат. Перед построением для каждой точки выполняются 3 преобразования: сначала определяется возможность рисования точки (see section <a href="#Cutting">Обрезание</a>), далее применяются формулы перехода к криволинейным координатам и наконец точка отображается.
+</p>
+<a name="index-axis"></a>
+<p><a name="axis"></a>
+</p><dl>
+<dt><a name="index-axis-1"></a><u>Команда MGL:</u> <b>axis</b><i> <code>x1 y1 x2 y2</code></i></dt>
+<dt><a name="index-axis-2"></a><u>Команда MGL:</u> <b>axis</b><i> <code>x1 y1 z1 x2 y2 z2</code></i></dt>
+<dd><a name="index-ranges"></a>
+<p><a name="ranges"></a>
+</p></dd><dt><a name="index-ranges-1"></a><u>Команда MGL:</u> <b>ranges</b><i> <code>x1 x2 y1 y2 [z1=0 z2=0]</code></i></dt>
+<dd><p>Задает диапазон изменения координат. Если минимальное и максимальное значение координаты равны, то они игнорируются по данному направлению. Также устанавливает размер цветовой шкалы, аналогично команде  <code>caxis z1 z2</code>. Начальные диапазоны равны [-1, 1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axis-3"></a><u>Команда MGL:</u> <b>axis</b><i> 'fx' 'fy' ['fz'='' 'fa'='']</i></dt>
+<dd><p>Задает формулы перехода к криволинейным координатам. Каждая строка является математическим выражением, зависящим от старых координат &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; и &lsquo;<samp>a</samp>&rsquo; или &lsquo;<samp>c</samp>&rsquo; для цветовой шкалы. Например, для цилиндрических координат будет <code>axis 'x*cos(y)' 'x*sin(y)' 'z'</code>. Для удаления формул соответствующий параметр должен быть пустым <code>''</code>. Использование формул преобразования слегка замедляет программу, т.е.. <code>axis '' '' ''</code> быстрее чем <code>axis '1*x' '1*y' '1*z'</code>. Параметр <var>fa</var> задает аналогичную формулу для цветовой шкалы. See section <a href="#Textual-formulas">Текстовые формулы</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axis-4"></a><u>Команда MGL:</u> <b>axis</b><i> <code>how</code></i></dt>
+<dd><p>Устанавливает одну из предопределенных систем криволинейных координат в зависимости от параметра <var>how</var>: &lsquo;<samp>0</samp>&rsquo; &ndash; декартова система (нет преобразования координат, наиболее быстрая); &lsquo;<samp>1</samp>&rsquo; &ndash; полярные координаты <em>x_n=x*cos(y),y_n=x*sin(y), z_n=z</em>; &lsquo;<samp>2</samp>&rsquo; &ndash; сферические координаты <em>x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y)</em>; &lsquo;<samp>3</samp>&rsquo; &ndash; параболические координаты <em>x_n=x*y, y_n=(x*x-y*y)/2, z_n=z</em>; &lsquo;<samp>4</samp>&rsquo; &ndash; Paraboloidal coordinates <em>x_n=(x*x-y*y)*cos(z)/2, y_n=(x*x-y*y)*sin(z)/2, z_n=x*y</em>; &lsquo;<samp>5</samp>&rsquo; &ndash; Oblate coordinates <em>x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z), z_n=sinh(x)*sin(y)</em>; &lsquo;<samp>6</samp>&rsquo; &ndash; Prolate coordinates <em>x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z), z_n=cosh(x)*cos(y)</em>; &lsquo;<samp>7</samp>&rsquo; &ndash; эллиптические координаты <em>x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z</em>; &lsquo;<samp>8</samp>&rsquo; &ndash; тороидальные координаты <em>x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)), y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y))</em>; &lsquo;<samp>9</samp>&rsquo; &ndash; бисферические координаты <em>x_n=sin(y)*cos(z)/(cosh(x)-cos(y)), y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y))</em>; &lsquo;<samp>10</samp>&rsquo; &ndash; биполярные координаты <em>x_n=sinh(x)/(cosh(x)-cos(y)), y_n=sin(y)/(cosh(x)-cos(y)), z_n=z</em>.
+</p></dd></dl>
+
+<a name="index-caxis"></a>
+<p><a name="caxis"></a>
+</p><dl>
+<dt><a name="index-caxis-1"></a><u>Команда MGL:</u> <b>caxis</b><i> <code>z1 z2</code></i></dt>
+<dd><p>Задает масштаб цветовой шкалы (c-координаты). Эти значения используются для определения цвета поверхностей и прочих 2D и 3D графиков. Начальный диапазон равен [-1, 1].
+</p></dd></dl>
+
+<a name="index-origin"></a>
+<p><a name="origin"></a>
+</p><dl>
+<dt><a name="index-origin-1"></a><u>Команда MGL:</u> <b>origin</b><i> <code>x0 y0 [z0=nan]</code></i></dt>
+<dd><p>Задает центр пересечения осей координат. Если одно из значений равно <code>nan</code>, то выбрается оптимальное положение осей координат по этому направлению.
+</p></dd></dl>
+
+<a name="index-ternary"></a>
+<p><a name="ternary"></a>
+</p><dl>
+<dt><a name="index-ternary-1"></a><u>Команда MGL:</u> <b>ternary</b><i> <code>val</code></i></dt>
+<dd><p>Задает рисование треугольных (Ternary) осей координат. Это специальный тип графика для 3 зависимых координат (компонент) <var>a</var>, <var>b</var>, <var>c</var> таких, что <var>a</var>+<var>b</var>+<var>c</var>=1. MathGL использует только 2 независимые координаты <var>a</var>=x и <var>b</var>=y поскольку их достаточно для построения всех графиков. При этом третья координата z является независимым параметром для построения линий уровня, поверхностей и т.д. См. раздел <a href="mgl_ru_3.html#Ternary-plot-sample">Ternary plot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-xrange"></a>
+<p><a name="xrange"></a>
+</p><dl>
+<dt><a name="index-xrange-1"></a><u>Команда MGL:</u> <b>xrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-yrange"></a>
+<p><a name="yrange"></a>
+</p></dd><dt><a name="index-yrange-1"></a><u>Команда MGL:</u> <b>yrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-zrange"></a>
+<p><a name="zrange"></a>
+</p></dd><dt><a name="index-zrange-1"></a><u>Команда MGL:</u> <b>zrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-crange"></a>
+<p><a name="crange"></a>
+</p></dd><dt><a name="index-crange-1"></a><u>Команда MGL:</u> <b>crange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><p>Задает диапазон изменения x-,y-,z-,c- координат как минимальное и максимальное значение массива <var>dat</var>. Параметр <var>add</var> указывает добавлять новый диапазон к существующему или заменять его. Параметр <var>fact</var> дополнительно расширяет диапазон на величину (<var>Max</var>-<var>Min</var>)*<var>fact</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xrange-2"></a><u>Команда MGL:</u> <b>xrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-yrange-2"></a><u>Команда MGL:</u> <b>yrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-zrange-2"></a><u>Команда MGL:</u> <b>zrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-crange-2"></a><u>Команда MGL:</u> <b>crange</b><i> <code>x1 x2</code></i></dt>
+<dd><p>Задает диапазон изменения x-,y-,z-,c- координат. См. также <a href="#axis">axis</a>.
+</p></dd></dl>
+
+<a name="index-xtick"></a>
+<p><a name="xtick"></a>
+</p><dl>
+<dt><a name="index-xtick-1"></a><u>Команда MGL:</u> <b>xtick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ytick"></a>
+<p><a name="ytick"></a>
+</p></dd><dt><a name="index-ytick-1"></a><u>Команда MGL:</u> <b>ytick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ztick"></a>
+<p><a name="ztick"></a>
+</p></dd><dt><a name="index-ztick-1"></a><u>Команда MGL:</u> <b>ztick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ctick"></a>
+<p><a name="ctick"></a>
+</p></dd><dt><a name="index-ctick-1"></a><u>Команда MGL:</u> <b>ctick</b><i> <code>val</code></i></dt>
+<dd><p>Задает шаг меток осей <var>val</var>, число подметок <var>ns</var> и начальное положение меток <var>org</var>. Переменная <var>val</var> задает шаг меток (если положительна) или их число на оси (если отрицательна). Нулевое значение задает логарифмические метки. Если <var>org</var>=<code>NAN</code>, то используется значение из <a href="#origin">origin</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xtick-2"></a><u>Команда MGL:</u> <b>xtick</b><i> 'templ'</i></dt>
+<dt><a name="index-ytick-2"></a><u>Команда MGL:</u> <b>ytick</b><i> 'templ'</i></dt>
+<dt><a name="index-ztick-2"></a><u>Команда MGL:</u> <b>ztick</b><i> 'templ'</i></dt>
+<dt><a name="index-ctick-2"></a><u>Команда MGL:</u> <b>ctick</b><i> 'templ'</i></dt>
+<dd><p>Задает шаблоны для меток вдоль x-,y-,z-оси или colorbar. Шаблон может содержать и символы TeX. Если <var>xtt</var>, <var>ytt</var>, <var>ztt</var>, <var>ctt</var>=<code>''</code>, то используется шаблон по умолчанию (в простейшем случае &lsquo;<samp>%.2g</samp>&rsquo;). Установка шаблона выключает автоматическое улучшение вида меток.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xtick-3"></a><u>Команда MGL:</u> <b>xtick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dt><a name="index-ytick-3"></a><u>Команда MGL:</u> <b>ytick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dt><a name="index-ztick-3"></a><u>Команда MGL:</u> <b>ztick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dd><p>Задает явное положение <var>val</var> и подписи <var>lbl</var> для меток вдоль оси. Метки могут содержать и символы TeX.
+</p></dd></dl>
+
+<a name="index-adjust"></a>
+<p><a name="adjust"></a>
+</p><dl>
+<dt><a name="index-adjust-1"></a><u>Команда MGL:</u> <b>adjust</b><i> ['dir'='xyzc']</i></dt>
+<dd><p>Автоматически задает шаг меток осей, число подметок и начальное положение меток для осей координат <var>dir</var> в виде наиболее удобном для человека.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Transformation-matrix"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Export-to-file" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041c_0430_0442_0440_0438c_0430-_043f_0440e_043e_0431_0440_0430_0437_043e_0432_0430_043d_0438ya"></a>
+<h2 class="section">1.4 Матрица преобразования</h2>
+
+<p>Эти команды контролируют где и как график будет расположен. Существует определенный порядок вызова этих функций для лучшего вида графика. Вначале должны вызываться команды <a href="#subplot">subplot</a> или <a href="#inplot">inplot</a> для указания местоположения вывода. После них &ndash; команды вращения <a href="#rotate">rotate</a> и сжатия <a href="#aspect">aspect</a>. И наконец любые другие функции для рисования графика. Вместо вращения графика можно вызвать команды <a href="#columnplot">columnplot</a> для расположения графиков в столбец одного над другим или <a href="#stickplot">stickplot</a> для расположения в линейку.
+</p>
+<a name="index-subplot"></a>
+<p><a name="subplot"></a>
+</p><dl>
+<dt><a name="index-subplot-1"></a><u>Команда MGL:</u> <b>subplot</b><i> <code>nx ny m [dx=0 dy=0]</code></i></dt>
+<dd><p>Помещает последующий вывод в <var>m</var>-ую ячейку сетки размером <var>nx</var>*<var>ny</var> от всего рисунка. Функция сбрасывает матрицу трансформации (повороты и сжатие графика) и должна вызываться первой для создания &quot;подграфика&quot;. С эстетической точки зрения не рекомендуется вызывать эту функцию с различными (или не кратными) размерами сетки. Ячейка может быть дополнительно сдвинута относительно своего обычного положения на относительный размер <var>dx</var>, <var>dy</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-subplot-2"></a><u>Команда MGL:</u> <b>subplot</b><i> <code>nx ny m</code> 'style'</i></dt>
+<dd><p>Аналогично предыдущему, но место для осей/colorbar резервируется только если строка <var>style</var> содержит: &lsquo;<samp>L</samp>&rsquo; или &lsquo;<samp>&lt;</samp>&rsquo; &ndash; с левого края, &lsquo;<samp>R</samp>&rsquo; или &lsquo;<samp>&gt;</samp>&rsquo; &ndash; с правого края, &lsquo;<samp>A</samp>&rsquo; или &lsquo;<samp>^</samp>&rsquo; &ndash; с верхнего края, &lsquo;<samp>U</samp>&rsquo; или &lsquo;<samp>_</samp>&rsquo; &ndash; с нижнего края.
+</p></dd></dl>
+
+<a name="index-inplot"></a>
+<p><a name="inplot"></a>
+</p><dl>
+<dt><a name="index-inplot-1"></a><u>Команда MGL:</u> <b>inplot</b><i> <code>x1 x2 y1 y2 [rel=off]</code></i></dt>
+<dd><p>Помещает последующий вывод в прямоугольную область [<var>x1</var>, <var>x2</var>]*[<var>y1</var>, <var>y2</var>] (исходный размер [0,1]*[0,1]). Эта функция позволяет поместить график в произвольную область рисунка. Если параметр <var>rel</var>=<code>on</code>, то используется позиция относительно текщего <a href="#subplot">subplot</a> (или <a href="#inplot">inplot</a> с <var>rel</var>=<code>off</code>). Функция сбрасывает матрицу трансформации (повороты и сжатие графика) и должна вызываться первой для создания &quot;подграфика&quot;.
+</p></dd></dl>
+
+<a name="index-columnplot"></a>
+<p><a name="columnplot"></a>
+</p><dl>
+<dt><a name="index-columnplot-1"></a><u>Команда MGL:</u> <b>columnplot</b><i> <code>num ind [d=0]</code></i></dt>
+<dd><p>Помещает последующий вывод в <var>ind</var>-ую строку столбца из <var>num</var> строк. Положение столбца выбирается относительно последнего вызова <a href="#subplot">subplot</a> (или <a href="#inplot">inplot</a> с <var>rel</var>=<code>off</code>). Параметр <var>d</var> задает дополнительный зазор между строк. См. раздел <a href="mgl_ru_3.html#ColumnPlot-sample">ColumnPlot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-stickplot"></a>
+<p><a name="stickplot"></a>
+</p><dl>
+<dt><a name="index-stickplot-1"></a><u>Команда MGL:</u> <b>stickplot</b><i> <code>num ind tet phi</code></i></dt>
+<dd><p>Помещает последующий вывод в <var>ind</var>-ую ячейку &quot;бруска&quot; из <var>num</var> ячеек. При этом сам брусок повернут на углы <var>tet</var>, <var>phi</var>. Положение выбирается относительно последнего вызова <a href="#subplot">subplot</a> (или <a href="#inplot">inplot</a> с <var>rel</var>=<code>off</code>). См. раздел <a href="mgl_ru_3.html#StickPlot-sample">StickPlot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-rotate"></a>
+<p><a name="rotate"></a>
+</p><dl>
+<dt><a name="index-rotate-1"></a><u>Команда MGL:</u> <b>rotate</b><i> <code>tetz tetx [tety=0]</code></i></dt>
+<dd><p>Вращает систему координат относительно осей {x, z, y} последовательно на углы <var>tetx</var>, <var>tetz</var>, <var>tety</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-rotate-2"></a><u>Команда MGL:</u> <b>rotate</b><i> <code>tet x y z</code></i></dt>
+<dd><p>Вращает систему координат относительно вектора {<var>x</var>, <var>y</var>, <var>z</var>} на угол <var>tet</var>.
+</p></dd></dl>
+
+<a name="index-aspect"></a>
+<p><a name="aspect"></a>
+</p><dl>
+<dt><a name="index-aspect-1"></a><u>Команда MGL:</u> <b>aspect</b><i> <code>ax ay [az=1]</code></i></dt>
+<dd><p>Устанавливает соотношение размеров осей в отношении <var>ax:ay:az</var>. Для лучшего вида следует вызывать после функции <a href="#rotate">rotate</a>.
+</p></dd></dl>
+
+<a name="index-perspective"></a>
+<p><a name="perspective"></a>
+</p><dl>
+<dt><a name="index-perspective-1"></a><u>Команда MGL:</u> <b>perspective</b><i> <code>val</code></i></dt>
+<dd><p>Добавляет (включает) перспективу для графика. Параметр <em>val ~ 1/z_eff \in [0,1)</em>. По умолчанию (<code>val=0</code>) перспектива отключена.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Export-to-file"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transformation-matrix" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Primitives-drawing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_042d_043a_0441_043f_043e_0440_0442-_0432-_0444_0430_0439_043b"></a>
+<h2 class="section">1.5 Экспорт в файл</h2>
+
+<a name="index-write"></a>
+<p><a name="write"></a>
+</p><dl>
+<dt><a name="index-write-1"></a><u>Команда MGL:</u> <b>write</b><i> 'fname' [<code>solid=off</code>]</i></dt>
+<dd><p>Экспортирует текущий кадр в файл &rsquo;fname&rsquo; (тип определяется по расширению). Параметр <var>solid</var> задает вывод картинки на текущем фоне (обычно белом) или полупрозрачной. Если &rsquo;fname&rsquo;=&rdquo;, то используется имя &lsquo;<samp>frame####.jpg</samp>&rsquo;, где &lsquo;<samp>####</samp>&rsquo; &ndash; текущий номер кадра.
+</p></dd></dl>
+
+<a name="index-setsize"></a>
+<p><a name="setsize"></a>
+</p><dl>
+<dt><a name="index-setsize-1"></a><u>Команда MGL:</u> <b>setsize</b><i> <code>w h</code></i></dt>
+<dd><p>Изменяет размер картинки в пикселях. Функция должна вызываться <strong>перед</strong> любыми функциями построения потому что полностью очищает содержимое рисунка. В некоторых программах исполнение этой команды может запрещено.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Primitives-drawing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Export-to-file" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0420_0438_0441_043e_0432_0430_043d_0438e-_043f_0440_0438_043c_0438_0442_0438_0432_043e_0432"></a>
+<h2 class="section">1.6 Рисование примитивов</h2>
+
+<p>Эти команды рисуют рисуют простые объекты типа линий, точек, сфер, капель, конусов, и т.д.
+</p>
+<a name="index-clf"></a>
+<p><a name="clf"></a>
+</p><dl>
+<dt><a name="index-clf-1"></a><u>Команда MGL:</u> <b>clf</b></dt>
+<dd><p>Очищает рисунок и заполняет его цветом по умолчанию (обычно белым). 
+</p></dd></dl>
+
+<a name="index-ball"></a>
+<p><a name="ball"></a>
+</p><dl>
+<dt><a name="index-ball-1"></a><u>Команда MGL:</u> <b>ball</b><i> <code>x y</code> ['col'='r']</i></dt>
+<dt><a name="index-ball-2"></a><u>Команда MGL:</u> <b>ball</b><i> <code>x y z</code> ['col'='r']</i></dt>
+<dd><p>Рисует точку (шарик) с координатами {<var>x</var>, <var>y</var>, <var>z</var>} и цветом <var>col</var>.
+</p></dd></dl>
+
+<a name="index-line"></a>
+<p><a name="line"></a>
+</p><dl>
+<dt><a name="index-line-1"></a><u>Команда MGL:</u> <b>line</b><i> <code>x1 y1 x2 y2</code> ['stl'='']</i></dt>
+<dt><a name="index-line-2"></a><u>Команда MGL:</u> <b>line</b><i> <code>x1 y1 z1 x2 y2 z2</code> ['stl'='']</i></dt>
+<dd><p>Рисует геодезическую линию (декартовых координатах &ndash; прямую) из точки {<var>x1</var>,<var>y1</var>,<var>z1</var>} в {<var>x2</var>,<var>y2</var>,<var>z2</var>} использую стиль линии <var>stl</var>. Кривая рисуется даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<a name="index-curve"></a>
+<p><a name="curve"></a>
+</p><dl>
+<dt><a name="index-curve-1"></a><u>Команда MGL:</u> <b>curve</b><i> <code>x1 y1 dx1 dy1 x2 y2 dx2 dy2</code> ['stl'='']</i></dt>
+<dt><a name="index-curve-2"></a><u>Команда MGL:</u> <b>curve</b><i> <code>x1 y1 z1 dx1 dy1 dz1 x2 y2 z2 dx2 dy2 dz2</code> ['stl'='']</i></dt>
+<dd><p>Рисует кривую Безье из точки {<var>x1</var>,<var>y1</var>,<var>z1</var>} в {<var>x2</var>,<var>y2</var>,<var>z2</var>} использую стиль линии <var>stl</var>. Касательные в точках пропорциональны {<var>dx1</var>,<var>dy1</var>,<var>dz1</var>}, {<var>dx2</var>,<var>dy2</var>,<var>dz2</var>}. Кривая рисуется даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<a name="index-facex"></a>
+<p><a name="facex"></a>
+</p><dl>
+<dt><a name="index-facex-1"></a><u>Команда MGL:</u> <b>facex</b><i> <code>x0 y0 z0 wy wz</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><a name="index-facey"></a>
+<p><a name="facey"></a>
+</p></dd><dt><a name="index-facey-1"></a><u>Команда MGL:</u> <b>facey</b><i> <code>x0 y0 z0 wx wz</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><a name="index-facez"></a>
+<p><a name="facez"></a>
+</p></dd><dt><a name="index-facez-1"></a><u>Команда MGL:</u> <b>facez</b><i> <code>x0 y0 z0 wx wy</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><p>Рисует закрашенный прямоугольник (грань) перпендикулярно оси [x,y,z] в точке {<var>x0</var>, <var>y0</var>, <var>z0</var>} цветом <var>stl</var> и шириной <var>wx</var>, <var>wy</var>, <var>wz</var> вдоль соответствующего направления. При этом цвет может быть один для всей грани, или различным для разных вершин если указаны все 4 цвета (полезно для градиента цвета, например &lsquo;<samp>wwrr</samp>&rsquo;). Параметры <var>d1</var>!=0, <var>d2</var>!=0 задают дополнительный сдвиг последней точки (т.е. рисуют четырехугольник). Грань будет нарисована даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<a name="index-sphere"></a>
+<p><a name="sphere"></a>
+</p><dl>
+<dt><a name="index-sphere-1"></a><u>Команда MGL:</u> <b>sphere</b><i> <code>x0 y0 r</code> ['col'='r']</i></dt>
+<dt><a name="index-sphere-2"></a><u>Команда MGL:</u> <b>sphere</b><i> <code>x0 y0 z0 r</code> ['col'='r']</i></dt>
+<dd><p>Рисует сферу радиуса <var>r</var> с центром в точке {<var>x</var>, <var>y</var>, <var>z</var>} цветом <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-drop"></a>
+<p><a name="drop"></a>
+</p><dl>
+<dt><a name="index-drop-1"></a><u>Команда MGL:</u> <b>drop</b><i> <code>x0 y0 dx dy r</code> ['col'='b' <code>sh=1 asp=1</code>]</i></dt>
+<dt><a name="index-drop-2"></a><u>Команда MGL:</u> <b>drop</b><i> <code>x0 y0 z0 dx dy dz r</code> ['col'='b' <code>sh=1 asp=1</code>]</i></dt>
+<dd><p>Рисует каплю радиуса <var>r</var> в точке {<var>x0</var>,<var>y0</var>,<var>z0</var>} вытянутую вдоль направления {<var>dx</var>,<var>dy</var>,<var>dz</var>} цветом <var>col</var>. Параметр <var>sh</var> определяет степень вытянутости: &lsquo;<samp>0</samp>&rsquo; &ndash; сфера, &lsquo;<samp>1</samp>&rsquo; &ndash; классическая капля. Параметр <var>asp</var> определяет относительную ширину капли (аналог &quot;эллиптичности&quot; для сферы). См. раздел <a href="mgl_ru_3.html#Drops-sample">Drops &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-cone"></a>
+<p><a name="cone"></a>
+</p><dl>
+<dt><a name="index-cone-1"></a><u>Команда MGL:</u> <b>cone</b><i> <code>x1 y1 z1 x2 y2 z2 r1</code> [<code>r2=-1</code> 'stl'='' <code>edge=off</code>]</i></dt>
+<dd><p>Рисует трубу (или усеченный конус если <var>edge</var>=<code>off</code>) между точками {<var>x1</var>,<var>y1</var>,<var>z1</var>}, {<var>x2</var>,<var>y2</var>,<var>z2</var>} с радиусами на концах <var>r1</var>, <var>r2</var>. Если <var>r2</var>&lt;0, то полагается <var>r2</var>=<var>r1</var>. Цвет конуса задается строкой <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-rect"></a>
+<p><a name="rect"></a>
+</p><dl>
+<dt><a name="index-rect-1"></a><u>Команда MGL:</u> <b>rect</b><i> <code>x1 y1 x2 y2</code> ['st'='']</i></dt>
+<dt><a name="index-rect-2"></a><u>Команда MGL:</u> <b>rect</b><i> <code>x1 y1 z1 x2 y2 z2</code> ['st'='']</i></dt>
+<dd><p>Рисует закрашенный прямоугольник (грань) с противоположными вершинами в точках {<var>x1</var>,<var>y1</var>,<var>z1</var>}, {<var>x2</var>,<var>y2</var>,<var>z2</var>} цветом <var>stl</var>. При этом цвет может быть один для всей грани, или различным для разных вершин если указаны все 4 цвета (полезно для градиента цвета, например &lsquo;<samp>wwrr</samp>&rsquo;). Грань будет нарисована даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Text-printing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Primitives-drawing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-Colorbar" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0412_044b_0432_043e_0434-_0442e_043a_0441_0442_0430"></a>
+<h2 class="section">1.7 Вывод текста</h2>
+
+<p>Команды для вывода текста позволяют вывести строку текста в произвольном месте рисунка, в произвольном направлении и вдоль произвольной кривой. Можно использовать произвольное начертание шрифта и многие ТеХ-ие команды (детальнее see section <a href="#Font-styles">Стиль текста</a>). Аргумент <var>size</var> определяет размер текста: размер шрифта если положителен или относительный размер (=-<var>size</var>*<var>fontsize</var>) если отрицателен.
+</p>
+<p>Параметры шрифта задаются строкой, которая может содержать символы стиля (&lsquo;<samp>rbiwou</samp>&rsquo;) и/или выравнивания (&lsquo;<samp>LRC</samp>&rsquo;). Также строка может содержать символы цвета &lsquo;<samp>wkrgbcymhRGBCYMHW</samp>&rsquo; (see section <a href="#Line-styles">Стиль линий</a>) после символа &lsquo;<samp>:</samp>&rsquo;. Стили шрифта: &lsquo;<samp>r</samp>&rsquo; &ndash; прямой, &lsquo;<samp>i</samp>&rsquo; &ndash; курсив, &lsquo;<samp>b</samp>&rsquo; &ndash; жирный, &lsquo;<samp>w</samp>&rsquo; &ndash; контурный, &lsquo;<samp>o</samp>&rsquo; &ndash; надчеркнутый, &lsquo;<samp>u</samp>&rsquo; &ndash; подчеркнутый. По умолчанию используется прямой шрифт. Типы выравнивания: &lsquo;<samp>L</samp>&rsquo; &ndash; по левому краю (по умолчанию), &lsquo;<samp>C</samp>&rsquo; &ndash; по центру, &lsquo;<samp>R</samp>&rsquo; &ndash; по правому краю. Например, строка &lsquo;<samp>iC:b</samp>&rsquo; соответствует курсиву синего цвета с выравниванием по центру. По умолчанию используются параметры, определенные командой <a href="#font">font</a>.
+</p>
+<p>Если строка содержит символы &lsquo;<samp>aA</samp>&rsquo;, то текст выводится в абсолютных координатах (полагаются в диапазоне [0,1]). При этом используются координаты относительно рисунка (если указано &lsquo;<samp>A</samp>&rsquo;) или относительно последнего <a href="#subplot">subplot</a>/<a href="#inplot">inplot</a> (если указано &lsquo;<samp>a</samp>&rsquo;).
+</p>
+<a name="index-text"></a>
+<p><a name="text"></a>
+</p><dl>
+<dt><a name="index-text-1"></a><u>Команда MGL:</u> <b>text</b><i> <code>x y</code> 'text' ['fnt'='' <code>size=-1.4</code>]</i></dt>
+<dt><a name="index-text-2"></a><u>Команда MGL:</u> <b>text</b><i> <code>x y z</code> 'text' ['fnt'='' <code>size=-1.4</code>]</i></dt>
+<dd><p>Выводит строку <var>text</var> от точки {<var>x</var>,<var>y</var>,<var>z</var>} шрифтом <var>fnt</var> и размером <var>size</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-text-3"></a><u>Команда MGL:</u> <b>text</b><i> <code>x y dx dy</code> 'text' [<code>size=-1.4</code>]</i></dt>
+<dt><a name="index-text-4"></a><u>Команда MGL:</u> <b>text</b><i> <code>x y z dx dy dz</code> 'text' [<code>size=-1.4</code>]</i></dt>
+<dd><p>Выводит строку <var>text</var> от точки {<var>x</var>,<var>y</var>,<var>z</var>} вдоль направления {<var>dx</var>,<var>dy</var>,<var>dz</var>} шрифтом <var>fnt</var> и размером <var>size</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-text-5"></a><u>Команда MGL:</u> <b>text</b><i> ydat 'text' ['fnt'='' <code>size=-1 zval=nan</code>]</i></dt>
+<dt><a name="index-text-6"></a><u>Команда MGL:</u> <b>text</b><i> xdat ydat 'text' ['fnt'='' <code>size=-1 zval=nan</code>]</i></dt>
+<dt><a name="index-text-7"></a><u>Команда MGL:</u> <b>text</b><i> xdat ydat zdat 'text' ['fnt'='' <code>size=-1</code>]</i></dt>
+<dd><p>Выводит строку <var>text</var> вдоль кривой {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} шрифтом <var>font</var>. Строка <var>font</var> может содержать символы: &lsquo;<samp>t</samp>&rsquo; для вывода текста под кривой (по умолчанию), или &lsquo;<samp>T</samp>&rsquo; для вывода текста над кривой. Если массив <var>xdat</var> не указан, то используется массив со значениями равно распределенными вдоль оси x. Если массив <var>zdat</var> не указан, то используется <var>zdat</var>[i] = <var>zval</var>. См. раздел <a href="mgl_ru_3.html#Text-sample">Text &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-title"></a>
+<p><a name="title"></a>
+</p><dl>
+<dt><a name="index-title-1"></a><u>Команда MGL:</u> <b>title</b><i> 'text' ['fnt'='' <code>size=-2</code>]</i></dt>
+<dd><p>Выводит строку <var>text</var> как заголовок (сверху рисунка). Может использоваться в любом месте (даже внутри <a href="#subplot">subplot</a>).
+</p></dd></dl>
+
+<a name="index-fgets"></a>
+<p><a name="fgets"></a>
+</p><dl>
+<dt><a name="index-fgets-1"></a><u>Команда MGL:</u> <b>fgets</b><i> <code>x y</code> 'fname' [<code>n=0</code> 'fnt'='' <code>size=-1.4</code>]</i></dt>
+<dt><a name="index-fgets-2"></a><u>Команда MGL:</u> <b>fgets</b><i> <code>x y z</code> 'fname' [<code>n=0</code> 'fnt'='' <code>size=-1.4</code>]</i></dt>
+<dd><p>Выводит <var>n</var>-ую строку файла <var>fname</var> от точки {<var>x</var>,<var>y</var>,<var>z</var>} шрифтом <var>fnt</var> и размером <var>size</var>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Axis-and-Colorbar"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_0438-_0438-Colorbar"></a>
+<h2 class="section">1.8 Оси и Colorbar</h2>
+
+<p>Эти команды рисуют объекты для &quot;измерения&quot; типа осей координат, цветовой таблицы (colorbar), сетку по осям, обрамляющий параллелепипед и подписи по осям координат. См. также <a href="#Axis-settings">Параметры осей координат</a>.
+</p>
+<a name="index-axis-5"></a>
+<dl>
+<dt><a name="index-axis-6"></a><u>Команда MGL:</u> <b>axis</b><i> ['dir'='xyz' <code>adjust=off</code>]</i></dt>
+<dd><p>Рисует оси координат и метки на них (see section <a href="#Axis-settings">Параметры осей координат</a>) в направлениях, указанных строкой <var>dir</var>. Если строка содержит символ &lsquo;<samp>_</samp>&rsquo;, то подписи меток отображаться не будут. Шрифт подписей определяется командой <a href="#font">font</a>. Метки будут &quot;подогнаны&quot; если <var>adjust</var>=<code>on</code> (с помощью вызова <code>adjust 'dir'</code>). 
+</p></dd></dl>
+
+<a name="index-colorbar"></a>
+<p><a name="colorbar"></a>
+</p><dl>
+<dt><a name="index-colorbar-1"></a><u>Команда MGL:</u> <b>colorbar</b><i> ['sch'='' <code>pos=0</code>]</i></dt>
+<dd><p>Рисует полосу соответствия цвета и числовых значений (colorbar) для цветовой схемы <var>sch</var> (используется текущая для <code>sch=''</code>) с краю от графика. Параметр <var>pos</var> задает местоположение: &lsquo;<samp>0</samp>&rsquo; - справа (по умолчанию), &lsquo;<samp>1</samp>&rsquo; - слева, &lsquo;<samp>2</samp>&rsquo; - сверху, &lsquo;<samp>3</samp>&rsquo; - снизу. Если строка <var>sch</var> содержит &lsquo;<samp>&lt;&gt;^_</samp>&rsquo;, то параметр <var>pos</var> определяется как: <code>pos=0</code> для &lsquo;<samp>&gt;</samp>&rsquo; (справа), <code>pos=1</code> для &lsquo;<samp>&lt;</samp>&rsquo; (слева), <code>pos=2</code> для &lsquo;<samp>^</samp>&rsquo; (сверху), <code>pos=3</code> для &lsquo;<samp>_</samp>&rsquo; (снизу). Если строка содержит &lsquo;<samp>A</samp>&rsquo;, то используются абсолютные координаты (относительно рисунка). См. раздел <a href="mgl_ru_3.html#Dens-sample">Dens &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-colorbar-2"></a><u>Команда MGL:</u> <b>colorbar</b><i> vdat ['sch'='' <code>pos=0</code>]</i></dt>
+<dd><p>Аналогично предыдущему, но для цветовой схемы без сглаживания с заданными значениями <var>vdat</var>. См. раздел <a href="mgl_ru_3.html#ContD-sample">ContD &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-colorbar-3"></a><u>Команда MGL:</u> <b>colorbar</b><i> 'sch' <code>pos x y w h</code></i></dt>
+<dd><p>Аналогично первому, но в произвольном месте графика {<var>x</var>, <var>y</var>} (полагаются в диапазоне [0,1]). Параметры <var>w</var>, <var>h</var> задают относительную ширину и высоту colorbar.
+</p></dd></dl>
+
+<a name="index-grid"></a>
+<p><a name="grid"></a>
+</p><dl>
+<dt><a name="index-grid-1"></a><u>Команда MGL:</u> <b>grid</b><i> ['dir'='xyz' 'pen'='B']</i></dt>
+<dd><p>Рисует линии сетки в направлениях перпендикулярным <var>dir</var>. Шаг сетки такой же как у меток осей координат. Стиль линий задается параметром <var>pen</var> (по умолчанию &ndash; сплошная темно синяя линия &lsquo;<samp>B-</samp>&rsquo;).
+</p></dd></dl>
+
+<a name="index-box"></a>
+<p><a name="box"></a>
+</p><dl>
+<dt><a name="index-box-1"></a><u>Команда MGL:</u> <b>box</b><i> ['stl'='k' <code>ticks=on</code>]</i></dt>
+<dd><p>Рисует ограничивающий параллелепипед цветом &rsquo;stl&rsquo;. При <code>ticks=on</code> рисуются метки в соответствии с текущими настройками осей координат <a href="#axis">axis</a>.
+</p></dd></dl>
+
+<a name="index-xlabel"></a>
+<p><a name="xlabel"></a>
+</p><dl>
+<dt><a name="index-xlabel-1"></a><u>Команда MGL:</u> <b>xlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-ylabel"></a>
+<p><a name="ylabel"></a>
+</p></dd><dt><a name="index-ylabel-1"></a><u>Команда MGL:</u> <b>ylabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-zlabel"></a>
+<p><a name="zlabel"></a>
+</p></dd><dt><a name="index-zlabel-1"></a><u>Команда MGL:</u> <b>zlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-tlabel"></a>
+<p><a name="tlabel"></a>
+</p></dd><dt><a name="index-tlabel-1"></a><u>Команда MGL:</u> <b>tlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><p>Выводит подпись <var>text</var> для x-,y-,z-,t-оси (где &lsquo;<samp>t</samp>&rsquo; &ndash; &ldquo;тернарная&rdquo; ось <em>t=1-x-y</em>). Параметр <var>pos</var> задает положение подписи: при <var>pos</var>=0 &ndash; по центру оси, при <var>pos</var>&gt;0 &ndash; около максимальных значений, при <var>pos</var>&lt;0 &ndash; около минимальных значений. Параметр <var>size</var> задает размер шрифта (по умолчанию в 1.4 раза больше чем у меток). See section <a href="#Text-printing">Вывод текста</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Legend"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-Colorbar" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041bege_043d_0434_0430"></a>
+<h2 class="section">1.9 Легенда</h2>
+
+<p>Эти команды обеспечивают рисование легенды графика (полезно для <a href="#g_t1D-plotting">1D графики</a>). Запись в легенде состоит из двух строк: одна для стиля линии и маркеров, другая с текстом описания (с включенным разбором TeX-их команд), накапливаемые во внутренние массивы с помощью команды <a href="#addlegend">addlegend</a> или опции <a href="#legend">legend</a>. Положение легенды можно задать автоматически или вручную. Параметры <var>font</var> и <var>size</var> задают стиль и размер шрифта. Параметр <var>llen</var> задает относительную ширину примера линии. Ели стиль линии пустой, то соответствующий текст печатается без отступа. Если строка <var>font</var> содержит символ &lsquo;<samp>A</samp>&rsquo;, то координаты легенды считаются относительно картинки (а не текущего subplot). См. раздел <a href="mgl_ru_3.html#Legend-sample">Legend &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<a name="index-legend"></a>
+<p><a name="legend"></a>
+</p><dl>
+<dt><a name="index-legend-1"></a><u>Команда MGL:</u> <b>legend</b><i> [<code>pos=3</code> 'fnt'='rL' <code>size=-1 llen=0.1</code>]</i></dt>
+<dd><p>Рисует легенду из накопленных записей шрифтом <var>fnt</var> размером <var>size</var>. Параметр <var>pos</var> задает положение легенды: &lsquo;<samp>0</samp>&rsquo; &ndash; в нижнем левом углу, &lsquo;<samp>1</samp>&rsquo; &ndash; нижнем правом углу, &lsquo;<samp>2</samp>&rsquo; &ndash; верхнем левом углу, &lsquo;<samp>3</samp>&rsquo; &ndash; верхнем правом углу (по умолчанию).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-legend-2"></a><u>Команда MGL:</u> <b>legend</b><i> <code>x y</code> ['fnt'='rL' <code>size=-1 llen=0.1</code>]</i></dt>
+<dd><p>Рисует легенду из накопленных записей шрифтом <var>font</var> размером <var>size</var>. Положение легенды задается параметрами <var>x</var>, <var>y</var>, которые полагаются нормированными в диапазоне [0,1].
+</p></dd></dl>
+
+<a name="index-addlegend"></a>
+<p><a name="addlegend"></a>
+</p><dl>
+<dt><a name="index-addlegend-1"></a><u>Команда MGL:</u> <b>addlegend</b><i> 'text' 'stl'</i></dt>
+<dd><p>Добавляет описание <var>text</var> кривой со стилем <var>stl</var> (see section <a href="#Line-styles">Стиль линий</a>) во внутренний массив записей легенды. Максимальное число записей 100.
+</p></dd></dl>
+
+<a name="index-clearlegend"></a>
+<p><a name="clearlegend"></a>
+</p><dl>
+<dt><a name="index-clearlegend-1"></a><u>Команда MGL:</u> <b>clearlegend</b></dt>
+<dd><p>Очищает внутренний массив записей легенды.
+</p></dd></dl>
+
+<a name="index-legendbox"></a>
+<p><a name="legendbox"></a>
+</p><dl>
+<dt><a name="index-legendbox-1"></a><u>Команда MGL:</u> <b>legendbox</b><i> <code>val</code></i></dt>
+<dd><p>Включает/выключает рисование прямоугольника вокруг легенды. По умолчанию (=<code>on</code>) прямоугольник рисуется.
+</p></dd></dl>
+
+<a name="index-legendmarks"></a>
+<p><a name="legendmarks"></a>
+</p><dl>
+<dt><a name="index-legendmarks-1"></a><u>Команда MGL:</u> <b>legendmarks</b><i> <code>val</code></i></dt>
+<dd><p>Задает число маркеров в легенде. По умолчанию используется 1 маркер.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t1D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">1.10 1D графики</h2>
+
+<p>Эти команды строят графики для одномерных (1D) массивов. Одномерными считаются массивы, зависящие только от одного параметра (индекса) подобно кривой в параметрической форме {x(i),y(i),z(i)}, i=1...n. Есть 5 основных типов 1D графиков: линия (<a href="#plot">plot</a>), линия с заполнением (<a href="#area">area</a>), ступеньки (<a href="#step">step</a>), прямоугольники (<a href="#bars">bars</a>, <a href="#barh">barh</a>) и вертикальные линии (<a href="#stem">stem</a>). Все эти типы графиков имеют похожий интерфейс. Есть версии для рисования в пространстве и на плоскости. В последнем случае имеется возможность использования только одного массива. Стиль линии и маркеров указывается строковой переменной. Если она равна <code>''</code>. Кроме того, есть еще несколько типов графиков для одномерных массивов, имеющих другой интерфейс и вид: поверхность вращения кривой (<a href="#torus">torus</a>), диаграмма (<a href="#chart">chart</a>), размер ошибки (<a href="#error">error</a>), маркеры переменного размера (<a href="#mark">mark</a>), трубками (<a href="#tube">tube</a>) и т.д. См. раздел <a href="mgl_ru_3.html#g_t1D-plot-sample">Пример графиков 1D данных</a>, для примеров кода и графика.
+</p>
+<p>График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>xdat.nx=ydat.nx=zdat.nx</code>. Если массив <var>xdat</var> не указан, то используется массив со значениями равно распределенными вдоль оси x. Если массив <var>zdat</var> не указан, то используется <var>zdat</var>[i] = <var>zval</var>. Строка <var>stl</var> задает цвет и стиль линии и маркеров (see section <a href="#Line-styles">Стиль линий</a>). По умолчанию (<code>stl=''</code>) рисуется сплошная линия с текущим цветом из палитры.
+</p>
+<a name="index-plot"></a>
+<p><a name="plot"></a>
+</p><dl>
+<dt><a name="index-plot-1"></a><u>Команда MGL:</u> <b>plot</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-plot-2"></a><u>Команда MGL:</u> <b>plot</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-plot-3"></a><u>Команда MGL:</u> <b>plot</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует ломанную линию между точками {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. См. также <a href="#area">area</a>, <a href="#step">step</a>, <a href="#stem">stem</a>, <a href="#tube">tube</a>, <a href="#mark">mark</a>, <a href="#error">error</a>, <a href="#belt">belt</a>, <a href="#tens">tens</a>. См. раздел <a href="mgl_ru_3.html#Plot-sample">Plot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+
+<a name="index-radar"></a>
+<p><a name="radar"></a>
+</p><dl>
+<dt><a name="index-radar-1"></a><u>Команда MGL:</u> <b>radar</b><i> adat ['stl'='' <code>r=-1</code>]</i></dt>
+<dd><p>Рисует radar chart, представляющий собой ломанную с вершинами на радиальных линиях (типа ломанной в полярных координатах). График рисуется для каждой строки если один из массивов матрица. Параметр <var>r</var> задает дополнительный сдвиг данных (т.е. используется <var>a</var>+<var>r</var> вместо <var>a</var>). Если <code>r&lt;0</code>, то <code>r=max(0, -min(a)</code>. Если <var>stl</var> содержит символ &lsquo;<samp>#</samp>&rsquo;, то также рисуется &quot;сетка&quot; (радиальные линии и круг для <var>r</var>). См. также <a href="#plot">plot</a>. См. раздел <a href="mgl_ru_3.html#Radar-sample">Radar &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-tens"></a>
+<p><a name="tens"></a>
+</p><dl>
+<dt><a name="index-tens-1"></a><u>Команда MGL:</u> <b>tens</b><i> ydat cdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tens-2"></a><u>Команда MGL:</u> <b>tens</b><i> xdat ydat cdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tens-3"></a><u>Команда MGL:</u> <b>tens</b><i> xdat ydat zdat cdat ['stl'='']</i></dt>
+<dd><p>Рисует ломанную линию по точкам {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} с цветом, определяемым массивом <var>c</var>[i] (типа графика натяжений). См. также <a href="#plot">plot</a>, <a href="#mesh">mesh</a>, <a href="#fall">fall</a>. См. раздел <a href="mgl_ru_3.html#Tens-sample">Tens &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-area"></a>
+<p><a name="area"></a>
+</p><dl>
+<dt><a name="index-area-1"></a><u>Команда MGL:</u> <b>area</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-area-2"></a><u>Команда MGL:</u> <b>area</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-area-3"></a><u>Команда MGL:</u> <b>area</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует ломанную линию по точками {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} и закрашивает ее вниз до плоскости осей координат. Можно использовать градиентное закрашивание если число указанных цветов в <var>stl</var> равно удвоенному числу кривых для построения. Если строка содержит символ &lsquo;<samp>a</samp>&rsquo;, то линии рисуются одна поверх другой (с суммированием) &ndash; того же эффекта можно достичь вызовом <code>cumsum ydat 'y'</code> перед построением графика. См. также <a href="#plot">plot</a>, <a href="#bars">bars</a>, <a href="#stem">stem</a>, <a href="#region">region</a>. См. раздел <a href="mgl_ru_3.html#Area-sample">Area &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-region"></a>
+<p><a name="region"></a>
+</p><dl>
+<dt><a name="index-region-1"></a><u>Команда MGL:</u> <b>region</b><i> fdat gdat ['stl'='' <code>inside=off</code>]</i></dt>
+<dt><a name="index-region-2"></a><u>Команда MGL:</u> <b>region</b><i> xdat fdat gdat ['stl'='' <code>inside=off</code>]</i></dt>
+<dd><p>Закрашивает область между 2 кривыми {<var>xdat</var>[i], <var>fdat</var>[i]} и {<var>xdat</var>[i], <var>gdat</var>[i]}. При  <code>inside=off</code> закрашивается только область y1&lt;y&lt;y2, в противном случае также будет закращена область y2&lt;y&lt;y1. Можно использовать градиентное закрашивание если число указанных цветов <var>stl</var> равно удвоенному числу кривых для построения. См. также <a href="#area">area</a>, <a href="#bars">bars</a>, <a href="#stem">stem</a>. См. раздел <a href="mgl_ru_3.html#Region-sample">Region &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-stem"></a>
+<p><a name="stem"></a>
+</p><dl>
+<dt><a name="index-stem-1"></a><u>Команда MGL:</u> <b>stem</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-stem-2"></a><u>Команда MGL:</u> <b>stem</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-stem-3"></a><u>Команда MGL:</u> <b>stem</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует вертикальные линии из точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} до плоскости осей координат. См. также <a href="#area">area</a>, <a href="#bars">bars</a>, <a href="#plot">plot</a>, <a href="#mark">mark</a>. См. раздел <a href="mgl_ru_3.html#Stem-sample">Stem &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-bars"></a>
+<p><a name="bars"></a>
+</p><dl>
+<dt><a name="index-bars-1"></a><u>Команда MGL:</u> <b>bars</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-bars-2"></a><u>Команда MGL:</u> <b>bars</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-bars-3"></a><u>Команда MGL:</u> <b>bars</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует вертикальные полосы (прямоугольники) из точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} до плоскости осей координат. Если строка <var>stl</var> содержит символ &lsquo;<samp>a</samp>&rsquo;, то линии рисуются одна поверх другой. Если строка содержит символ &lsquo;<samp>f</samp>&rsquo;, то рисуется график типа waterfall для определения кумулятивного эффекта последовательности положительных и отрицательных значений. Можно использовать разные цвета для положительных и отрицательных значений если число указанных цветов равно удвоенному числу кривых для построения. См. также <a href="#barh">barh</a>, <a href="#area">area</a>, <a href="#stem">stem</a>, <a href="#chart">chart</a>. См. раздел <a href="mgl_ru_3.html#Bars-sample">Bars &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-barh"></a>
+<p><a name="barh"></a>
+</p><dl>
+<dt><a name="index-barh-1"></a><u>Команда MGL:</u> <b>barh</b><i> xdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-barh-2"></a><u>Команда MGL:</u> <b>barh</b><i> ydat xdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует горизонтальные полосы (прямоугольники) из точек {<var>xdat</var>[i], <var>ydat</var>[i]} до плоскости оси y. Если массив <var>ydat</var> не указан, то используется массив со значениями равно распределенными вдоль оси y. Если строка <var>stl</var> содержит символ &lsquo;<samp>a</samp>&rsquo;, то линии рисуются одна поверх другой. Если строка содержит символ &lsquo;<samp>f</samp>&rsquo;, то рисуется график типа waterfall для определения кумулятивного эффекта последовательности положительных и отрицательных значений. Можно использовать разные цвета для положительных и отрицательных значений если число указанных цветов равно удвоенному числу кривых для построения. См. также <a href="#bars">bars</a>. См. раздел <a href="mgl_ru_3.html#Barh-sample">Barh &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-chart"></a>
+<p><a name="chart"></a>
+</p><dl>
+<dt><a name="index-chart-1"></a><u>Команда MGL:</u> <b>chart</b><i> adat ['col'='']</i></dt>
+<dd><p>Рисует цветные полосы (пояса) для массива данных <var>adat</var>. Число полос равно числу строк <var>adat</var> (равно <var>a.ny</var>). Цвет полос поочередно меняется из цветов указанных в <var>col</var> или в палитре (если <code>col=''</code>). Пробел в цветах соответствует прозрачному &quot;цвету&quot;, т.е. соответствующая полоса не рисуется. Ширина полосы пропорциональна значению элемента в <var>adat</var>. График строится только для массивов не содержащих отрицательных значений. Если строка <var>col</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется также черная граница полос. График выглядит лучше в 3d (после вращения системы координат) и/или в полярной системе координат (становится Pie chart). См. раздел <a href="mgl_ru_3.html#Chart-sample">Chart &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-step"></a>
+<p><a name="step"></a>
+</p><dl>
+<dt><a name="index-step-1"></a><u>Команда MGL:</u> <b>step</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-step-2"></a><u>Команда MGL:</u> <b>step</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-step-3"></a><u>Команда MGL:</u> <b>step</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует ступеньки для точек массива {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. См. также <a href="#plot">plot</a>, <a href="#stem">stem</a>, <a href="#tile">tile</a>, <a href="#boxs">boxs</a>. См. раздел <a href="mgl_ru_3.html#Step-sample">Step &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-torus"></a>
+<p><a name="torus"></a>
+</p><dl>
+<dt><a name="index-torus-1"></a><u>Команда MGL:</u> <b>torus</b><i> zdat ['stl'='']</i></dt>
+<dt><a name="index-torus-2"></a><u>Команда MGL:</u> <b>torus</b><i> rdat zdat ['stl'='']</i></dt>
+<dd><p>Рисует поверхность вращения кривой {<var>rdat</var>[i], <var>zdat</var>[i], <var>zdat</var>[i]} относительно оси <a href="#axialdir">axialdir</a>. Если массив <var>rdat</var> не указан, то используется массив со значениями равно распределенными вдоль оси x. См. также <a href="#plot">plot</a>, <a href="#axial">axial</a>. См. раздел <a href="mgl_ru_3.html#Torus-sample">Torus &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-tube"></a>
+<p><a name="tube"></a>
+</p><dl>
+<dt><a name="index-tube-1"></a><u>Команда MGL:</u> <b>tube</b><i> ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-2"></a><u>Команда MGL:</u> <b>tube</b><i> ydat <code>rval</code> ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-3"></a><u>Команда MGL:</u> <b>tube</b><i> xdat ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-4"></a><u>Команда MGL:</u> <b>tube</b><i> xdat ydat <code>rval</code> ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-5"></a><u>Команда MGL:</u> <b>tube</b><i> xdat ydat zdat rdat ['stl'='']</i></dt>
+<dt><a name="index-tube-6"></a><u>Команда MGL:</u> <b>tube</b><i> xdat ydat zdat <code>rval</code> ['stl'='']</i></dt>
+<dd><p>Рисует трубу радиуса <var>rdat</var>[i] (or <var>rval</var>) вдоль кривой между точками {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. См. также <a href="#plot">plot</a>. См. раздел <a href="mgl_ru_3.html#Tube-sample">Tube &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-mark"></a>
+<p><a name="mark"></a>
+</p><dl>
+<dt><a name="index-mark-1"></a><u>Команда MGL:</u> <b>mark</b><i> ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-mark-2"></a><u>Команда MGL:</u> <b>mark</b><i> xdat ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-mark-3"></a><u>Команда MGL:</u> <b>mark</b><i> xdat ydat zdat rdat ['stl'='']</i></dt>
+<dd><p>Рисует маркеры размером <var>rdat</var>[i]*<code>marksize</code> в точках {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Для рисования маркеров одинакового размера можно использовать функцию <code>plot</code> с невидимой линией (со стилем содержащим &lsquo;<samp> </samp>&rsquo;). См. также <a href="#plot">plot</a>, <a href="#textmark">textmark</a>, <a href="#stem">stem</a>, <a href="#error">error</a>. См. раздел <a href="mgl_ru_3.html#Mark-sample">Mark &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-textmark"></a>
+<p><a name="textmark"></a>
+</p><dl>
+<dt><a name="index-textmark-1"></a><u>Команда MGL:</u> <b>textmark</b><i> ydat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-2"></a><u>Команда MGL:</u> <b>textmark</b><i> ydat rdat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-3"></a><u>Команда MGL:</u> <b>textmark</b><i> xdat ydat rdat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-4"></a><u>Команда MGL:</u> <b>textmark</b><i> xdat ydat zdat rdat 'txt' ['stl'='']</i></dt>
+<dd><p>Рисует текст <var>txt</var> как маркер с размером пропорциональным <var>rdat</var>[i]*<code>marksize</code> в точках {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если массив <var>rdat</var> не указан, то полагается <var>rdat</var>[i] = 1. См. также <a href="#plot">plot</a>, <a href="#mark">mark</a>, <a href="#stem">stem</a>. См. раздел <a href="mgl_ru_3.html#TextMark-sample">TextMark &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-error"></a>
+<p><a name="error"></a>
+</p><dl>
+<dt><a name="index-error-1"></a><u>Команда MGL:</u> <b>error</b><i> ydat yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-error-2"></a><u>Команда MGL:</u> <b>error</b><i> xdat ydat yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-error-3"></a><u>Команда MGL:</u> <b>error</b><i> xdat ydat xerr yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует размер ошибки {<var>xerr</var>[i], <var>yerr</var>[i]} в точках {<var>xdat</var>[i], <var>ydat</var>[i]} на плоскости <var>z</var> = <var>zval</var>. Такой график полезен для отображения ошибки эксперимента, вычислений и пр. См. также <a href="#plot">plot</a>. См. раздел <a href="mgl_ru_3.html#Error-sample">Error &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-boxplot"></a>
+<p><a name="boxplot"></a>
+</p><dl>
+<dt><a name="index-boxplot-1"></a><u>Команда MGL:</u> <b>boxplot</b><i> adat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-boxplot-2"></a><u>Команда MGL:</u> <b>boxplot</b><i> xdat adat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует boxplot (называемый также как box-and-whisker diagram или как &quot;ящик с усами&quot;) в точках <var>xdat</var>[i] на плоскости <var>z</var> = <var>zval</var>. Это график, компактно изображающий распределение вероятностей <var>adat</var>[i,j] (минимум, нижний квартиль (Q1), медиана (Q2), верхний квартиль (Q3) и максимум) вдоль второго (j-го) направления. См. также <a href="#plot">plot</a>, <a href="#error">error</a>, <a href="#bars">bars</a>. См. раздел <a href="mgl_ru_3.html#BoxPlot-sample">BoxPlot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t2D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">1.11 2D графики</h2>
+
+<p>Эти команды строят графики для двумерных (2D) массивов. Двумерными считаются массивы, зависящие только от двух параметров (индексов) подобно матрице <em>f(x_i,y_j), i=1...n, j=1...m</em>. Есть несколько основных типов 2D графиков: сплошная поверхность (<a href="#surf">surf</a>), сетчатая поверхность (<a href="#mesh">mesh</a>), поверхность из ящиков (<a href="#boxs">boxs</a>), поверхность из плиток (<a href="#tile">tile</a>), водопад (<a href="#fall">fall</a>), ленточки (<a href="#belt">belt</a>), график плотности (<a href="#dens">dens</a>), линии уровня (<a href="#cont">cont</a>), линии уровня с заполнением (<a href="#contf">contf</a>) и результат их вращения (<a href="#axial">axial</a>). В функциях <a href="#cont">cont</a>, <a href="#contf">contf</a> и <a href="#axial">axial</a> значения уровней можно задавать автоматически и вручную. Можно также нарисовать сетку (<a href="#grid">grid</a>) по массиву данных для улучшения вида графика плотности или линий уровня. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданной поверхности. См. раздел <a href="mgl_ru_3.html#g_t1D-plot-sample">Пример графиков 1D данных</a>, для примеров кода и графика.
+</p>
+<p>Строка <var>sch</var> задает цветовую схему (see section <a href="#Color-scheme">Цветовая схема</a>. Предыдущая цветовая схема используется по умолчанию. Младшие размерности массивов <var>xdat</var>, <var>ydat</var>, <var>zdat</var> должны быть одинаковы <code>xdat.nx=zdat.nx &amp;&amp; ydat.nx=zdat.ny</code> или <code>xdat.nx=ydat.nx=zdat.nx &amp;&amp; xdat.ny=ydat.ny=zdat.ny</code>. Массивы <var>xdat</var> и <var>ydat</var> могут быть векторами (не матрицами как <var>zdat</var>). Если массивы <var>xdat</var>, <var>ydat</var> не указаны, то используются массивы со значениями равно распределенными вдоль осей x, y. График строится для каждого z среза данных.
+</p>
+<a name="index-surf"></a>
+<p><a name="surf"></a>
+</p><dl>
+<dt><a name="index-surf-1"></a><u>Команда MGL:</u> <b>surf</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-surf-2"></a><u>Команда MGL:</u> <b>surf</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует параметрически заданную поверхность {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на поверхности рисуется сетка. См. также <a href="#mesh">mesh</a>, <a href="#dens">dens</a>, <a href="#belt">belt</a>, <a href="#tile">tile</a>, <a href="#boxs">boxs</a>, <a href="#surfc">surfc</a>, <a href="#surfa">surfa</a>. См. раздел <a href="mgl_ru_3.html#Surf-sample">Surf &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-mesh"></a>
+<p><a name="mesh"></a>
+</p><dl>
+<dt><a name="index-mesh-1"></a><u>Команда MGL:</u> <b>mesh</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-mesh-2"></a><u>Команда MGL:</u> <b>mesh</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует сетчатую поверхность, заданную параметрически {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. См. также <a href="#surf">surf</a>, <a href="#fall">fall</a>, <a href="#meshnum">meshnum</a>, <a href="#cont">cont</a>, <a href="#tens">tens</a>. См. раздел <a href="mgl_ru_3.html#Mesh-sample">Mesh &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-fall"></a>
+<p><a name="fall"></a>
+</p><dl>
+<dt><a name="index-fall-1"></a><u>Команда MGL:</u> <b>fall</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-fall-2"></a><u>Команда MGL:</u> <b>fall</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует водопад для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. График удобен для построения нескольких кривых, сдвинутых вглубь друг относительно друга. Если <var>sch</var> содержит &lsquo;<samp>x</samp>&rsquo;, то линии рисуются вдоль x-оси (по умолчанию линии рисуются вдоль y-оси). См. также <a href="#belt">belt</a>, <a href="#mesh">mesh</a>, <a href="#tens">tens</a>, <a href="#meshnum">meshnum</a>. См. раздел <a href="mgl_ru_3.html#Fall-sample">Fall &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-belt"></a>
+<p><a name="belt"></a>
+</p><dl>
+<dt><a name="index-belt-1"></a><u>Команда MGL:</u> <b>belt</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-belt-2"></a><u>Команда MGL:</u> <b>belt</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует ленточки для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Если <var>sch</var> содержит &lsquo;<samp>x</samp>&rsquo;, то линии рисуются вдоль x-оси (по умолчанию линии рисуются вдоль y-оси). См. также <a href="#fall">fall</a>, <a href="#surf">surf</a>, <a href="#plot">plot</a>, <a href="#meshnum">meshnum</a>. См. раздел <a href="mgl_ru_3.html#Belt-sample">Belt &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-boxs"></a>
+<p><a name="boxs"></a>
+</p><dl>
+<dt><a name="index-boxs-1"></a><u>Команда MGL:</u> <b>boxs</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-boxs-2"></a><u>Команда MGL:</u> <b>boxs</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует вертикальные ящики для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. См. также <a href="#surf">surf</a>, <a href="#dens">dens</a>, <a href="#tile">tile</a>, <a href="#step">step</a>. См. раздел <a href="mgl_ru_3.html#Boxs-sample">Boxs &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-tile"></a>
+<p><a name="tile"></a>
+</p><dl>
+<dt><a name="index-tile-1"></a><u>Команда MGL:</u> <b>tile</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-tile-2"></a><u>Команда MGL:</u> <b>tile</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует плитки для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. График может использоваться как 3d обобщение <a href="#step">step</a>. См. также <a href="#surf">surf</a>, <a href="#boxs">boxs</a>, <a href="#step">step</a>, <a href="#tiles">tiles</a>. См. раздел <a href="mgl_ru_3.html#Tile-sample">Tile &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-dens"></a>
+<p><a name="dens"></a>
+</p><dl>
+<dt><a name="index-dens-1"></a><u>Команда MGL:</u> <b>dens</b><i> zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-dens-2"></a><u>Команда MGL:</u> <b>dens</b><i> xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует график плотности для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zVal</var>. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетка. См. также <a href="#surf">surf</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>, <a href="#boxs">boxs</a>, <a href="#tile">tile</a>, <code>dens[xyz]</code>. См. раздел <a href="mgl_ru_3.html#Dens-sample">Dens &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-cont"></a>
+<p><a name="cont"></a>
+</p><dl>
+<dt><a name="index-cont-1"></a><u>Команда MGL:</u> <b>cont</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-cont-2"></a><u>Команда MGL:</u> <b>cont</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует линии уровня для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zval</var> (или при <var>z=vdat</var>[k] если <code>zval==nan</code>). Линии уровня рисуются для <var>z</var>=<var>vdat</var>[k]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетка. Если <var>sch</var> содержит &lsquo;<samp>t</samp>&rsquo; или &lsquo;<samp>T</samp>&rsquo;, то значения <var>vdat</var>[k] будут выведены вдоль контуров над (или под) кривой. См. также <a href="#dens">dens</a>, <a href="#contf">contf</a>, <a href="#contd">contd</a>, <a href="#axial">axial</a>, <code>cont[xyz]</code>. См. раздел <a href="mgl_ru_3.html#Cont-sample">Cont &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cont-3"></a><u>Команда MGL:</u> <b>cont</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-cont-4"></a><u>Команда MGL:</u> <b>cont</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-contf"></a>
+<p><a name="contf"></a>
+</p><dl>
+<dt><a name="index-contf-1"></a><u>Команда MGL:</u> <b>contf</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-contf-2"></a><u>Команда MGL:</u> <b>contf</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zval</var> (или при <var>z=v</var>[k] если <code>zval=nan</code>). Линии уровня рисуются для <var>z</var>=<var>vdat</var>[k]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетка. См. также <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contd">contd</a>, <code>contf[xyz]</code>. См. раздел <a href="mgl_ru_3.html#ContF-sample">ContF &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contf-3"></a><u>Команда MGL:</u> <b>contf</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-contf-4"></a><u>Команда MGL:</u> <b>contf</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-contd"></a>
+<p><a name="contd"></a>
+</p><dl>
+<dt><a name="index-contd-1"></a><u>Команда MGL:</u> <b>contd</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-contd-2"></a><u>Команда MGL:</u> <b>contd</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zval</var> (или при <var>z=v</var>[k] если <code>zval==nan</code>) цветами заданными явно. Линии уровня рисуются для <var>z</var>=<var>vdat</var>[k]. Строка <var>sch</var> задает цвет контуров: цвет k-го контура определяется символом <code>sch[k%strlen(sch)]</code>. См. также <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>, <code>cont[xyz]</code>. См. раздел <a href="mgl_ru_3.html#ContD-sample">ContD &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contd-3"></a><u>Команда MGL:</u> <b>contd</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-contd-4"></a><u>Команда MGL:</u> <b>contd</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-axial"></a>
+<p><a name="axial"></a>
+</p><dl>
+<dt><a name="index-axial-1"></a><u>Команда MGL:</u> <b>axial</b><i> vdat zdat ['sch'='']</i></dt>
+<dt><a name="index-axial-2"></a><u>Команда MGL:</u> <b>axial</b><i> vdat xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует поверхность вращения линии уровня для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Линии уровня рисуются для <var>zdat</var>[i,j]=<var>vdat</var>[k]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Если строка содержит символы &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; или &lsquo;<samp>z</samp>&rsquo;, то ось вращения устанавливается в указанное направление (по умолчанию вдоль оси <a href="#axialdir">axialdir</a>). См. также <a href="#cont">cont</a>, <a href="#contf">contf</a>, <a href="#torus">torus</a>, <a href="#surf3">surf3</a>. См. раздел <a href="mgl_ru_3.html#Axial-sample">Axial &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axial-3"></a><u>Команда MGL:</u> <b>axial</b><i> zdat ['sch'='' <code>num=3</code>]</i></dt>
+<dt><a name="index-axial-4"></a><u>Команда MGL:</u> <b>axial</b><i> xdat ydat zdat ['sch'='' <code>num=3</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-grad"></a>
+<p><a name="grad"></a>
+</p><dl>
+<dt><a name="index-grad-1"></a><u>Команда MGL:</u> <b>grad</b><i> pdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-grad-2"></a><u>Команда MGL:</u> <b>grad</b><i> xdat ydat pdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-grad-3"></a><u>Команда MGL:</u> <b>grad</b><i> xdat ydat zdat pdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Рисует линии градиента скалярного поля <var>pdat</var> заданного параметрически {<var>xdat</var>[i,j], <var>ydat</var>[i,j]} или {<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]}. Число линий пропорционально <var>num</var>. Линии рисуются только с границ интервала при <var>num</var>&lt;0. См. также <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#dens3">dens3</a>, <a href="#cont3">cont3</a>, <a href="#flow">flow</a>. См. раздел <a href="mgl_ru_3.html#Grad-sample">Grad &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+
+<a name="index-grid2"></a>
+<p><a name="grid2"></a>
+</p><dl>
+<dt><a name="index-grid2-1"></a><u>Команда MGL:</u> <b>grid2</b><i> zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-grid2-2"></a><u>Команда MGL:</u> <b>grid2</b><i> xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует плоскую сету для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zval</var>. См. также <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="g_t3D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">1.12 3D графики</h2>
+
+<p>Эти функции строят графики для трехмерных (3D) массивов. Трехмерными считаются массивы, зависящие от трех параметров (индексов) подобно матрице <em>f(x_i,y_j,z_k), i=1...n, j=1...m, k=1...l</em>. Есть 5 основных типов 3D графиков: поверхность постоянного уровня (<a href="#surf3">surf3</a>), график плотности на срезе (<var>dens3</var>), линии уровня на срезе (<a href="#cont3">cont3</a>), закрашенные контуры уровня на срезе (<a href="#contf3">contf3</a>) и график объемной прозрачности типа облака (<a href="#cloud">cloud</a>). В функциях <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a> и <a href="#surf3">surf3</a> значения уровней можно задавать автоматически и вручную. Можно также нарисовать на срезе сетку (<a href="#grid3">grid3</a>) по массиву данных для улучшения вида графика плотности или линий уровня. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива. См. раздел <a href="mgl_ru_3.html#g_t3D-plot-sample">Пример графиков 3D данных</a>, для примеров кода и графика.
+</p>
+<p>Строка <var>sch</var> задает цветовую схему (see section <a href="#Color-scheme">Цветовая схема</a>). Предыдущая цветовая схема используется по умолчанию. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). Если массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> не указаны, то используются массивы со значениями равно распределенными вдоль осей x, y, z.
+</p>
+
+<a name="index-surf3"></a>
+<p><a name="surf3"></a>
+</p><dl>
+<dt><a name="index-surf3-1"></a><u>Команда MGL:</u> <b>surf3</b><i> adat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3-2"></a><u>Команда MGL:</u> <b>surf3</b><i> xdat ydat zdat adat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) при <var>adat</var>(x,y,z)=<var>val</var>. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. См. также <a href="#cloud">cloud</a>, <a href="#dens3">dens3</a>, <a href="#surf3c">surf3c</a>, <a href="#surf3a">surf3a</a>, <a href="#axial">axial</a>. См. раздел <a href="mgl_ru_3.html#Surf3-sample">Surf3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3-3"></a><u>Команда MGL:</u> <b>surf3</b><i> adat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3-4"></a><u>Команда MGL:</u> <b>surf3</b><i> xdat ydat zdat adat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Рисует <var>num</var> поверхностей уровня равномерно распределенных в интервале цветовой шкалы (см. <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-dens3"></a>
+<p><a name="dens3"></a>
+</p><dl>
+<dt><a name="index-dens3-1"></a><u>Команда MGL:</u> <b>dens3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-dens3-2"></a><u>Команда MGL:</u> <b>dens3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Рисует график плотности для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). График рисуется на срезе <var>sval</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Если <var>stl</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на срезе рисуется сетка. См. также <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a>, <a href="#dens">dens</a>, <a href="#grid3">grid3</a>. См. раздел <a href="mgl_ru_3.html#Dens3-sample">Dens3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-densa"></a>
+<p><a name="densa"></a>
+</p><dl>
+<dt><a name="index-densa-1"></a><u>Команда MGL:</u> <b>densa</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-densa-2"></a><u>Команда MGL:</u> <b>densa</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Рисует графики плотности на всех центральных срезах 3d данных.
+</p></dd></dl>
+
+<a name="index-cont3"></a>
+<p><a name="cont3"></a>
+</p><dl>
+<dt><a name="index-cont3-1"></a><u>Команда MGL:</u> <b>cont3</b><i> vdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-cont3-2"></a><u>Команда MGL:</u> <b>cont3</b><i> vdat xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Рисует линии уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Линии рисуются для значений из массива <var>v</var> на срезе <var>sval</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Если <var>stl</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на срезе рисуется сетка. Если <var>sch</var> содержит &lsquo;<samp>t</samp>&rsquo; или &lsquo;<samp>T</samp>&rsquo;, то значения <var>vdat</var>[k] будут выведены вдоль контуров над (или под) кривой. См. также <a href="#dens3">dens3</a>, <a href="#contf3">contf3</a>, <a href="#cont">cont</a>, <a href="#grid3">grid3</a>. См. раздел <a href="mgl_ru_3.html#Cont3-sample">Cont3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cont3-3"></a><u>Команда MGL:</u> <b>cont3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-cont3-4"></a><u>Команда MGL:</u> <b>cont3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-conta"></a>
+<p><a name="conta"></a>
+</p><dl>
+<dt><a name="index-conta-1"></a><u>Команда MGL:</u> <b>conta</b><i> adat ['sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-conta-2"></a><u>Команда MGL:</u> <b>conta</b><i> xdat ydat zdat adat ['sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Рисует линии уровня на всех центральных срезах 3d данных.
+</p></dd></dl>
+
+<a name="index-contf3"></a>
+<p><a name="contf3"></a>
+</p><dl>
+<dt><a name="index-contf3-1"></a><u>Команда MGL:</u> <b>contf3</b><i> vdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-contf3-2"></a><u>Команда MGL:</u> <b>contf3</b><i> vdat xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Линии рисуются для значений из массива <var>v</var> на срезе <var>sval</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Если <var>stl</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на срезе рисуется сетка. См. также <a href="#dens3">dens3</a>, <a href="#cont3">cont3</a>, <a href="#contf">contf</a>, <a href="#grid3">grid3</a>. См. раздел <a href="mgl_ru_3.html#ContF3-sample">ContF3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contf3-3"></a><u>Команда MGL:</u> <b>contf3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-contf3-4"></a><u>Команда MGL:</u> <b>contf3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-contfa"></a>
+<p><a name="contfa"></a>
+</p><dl>
+<dt><a name="index-contfa-1"></a><u>Команда MGL:</u> <b>contfa</b><i> adat ['sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-contfa-2"></a><u>Команда MGL:</u> <b>contfa</b><i> xdat ydat zdat adat ['sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня на всех центральных срезах 3d данных.
+</p></dd></dl>
+
+<a name="index-grid3"></a>
+<p><a name="grid3"></a>
+</p><dl>
+<dt><a name="index-grid3-1"></a><u>Команда MGL:</u> <b>grid3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-grid3-2"></a><u>Команда MGL:</u> <b>grid3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Рисует сетку для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). График рисуется на срезе <var>sval</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. См. также <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a>, <a href="#dens3">dens3</a>, <a href="#grid2">grid2</a>.
+</p></dd></dl>
+
+<a name="index-grida"></a>
+<p><a name="grida"></a>
+</p><dl>
+<dt><a name="index-grida-1"></a><u>Команда MGL:</u> <b>grida</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-grida-2"></a><u>Команда MGL:</u> <b>grida</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Рисует сетку на всех центральных срезах 3d данных.
+</p></dd></dl>
+
+<a name="index-cloud"></a>
+<p><a name="cloud"></a>
+</p><dl>
+<dt><a name="index-cloud-1"></a><u>Команда MGL:</u> <b>cloud</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-cloud-2"></a><u>Команда MGL:</u> <b>cloud</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Рисует облачный график для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). График состоит из кубиков с цветом и прозрачностью пропорциональной значениям <var>adat</var>. Результат похож на облако &ndash; малые значения прозрачны, а большие нет. Число кубиков зависит от <a href="#meshnum">meshnum</a>. Параметр <var>alpha</var> меняет общую прозрачность графика. См. также <a href="#surf3">surf3</a>. См. раздел <a href="mgl_ru_3.html#Cloud-sample">Cloud &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-beam"></a>
+<p><a name="beam"></a>
+</p><dl>
+<dt><a name="index-beam-1"></a><u>Команда MGL:</u> <b>beam</b><i> tr g1 g2 adat <code>rval</code> ['sch'='' <code>flag=0 num=3</code>]</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива <var>adat</var> при постоянном значении <var>adat</var>=<var>val</var>. Это специальный тип графика для <var>adat</var> заданного в сопровождающей системе координат вдоль кривой <var>tr</var> с ортами <var>g1</var>, <var>g2</var> и с поперечным размером <var>rval</var>. Переменная <var>flag</var> &ndash; битовый флаг: &lsquo;<samp>0x1</samp>&rsquo; - рисовать в сопровождающих (не лабораторных) координатах; &lsquo;<samp>0x2</samp>&rsquo; - рисовать проекцию на плоскость <em>\rho-z</em>; &lsquo;<samp>0x4</samp>&rsquo; - рисовать нормированное в каждом сечении поле. Размеры массивов по 1-му индексу <var>tr</var>, <var>g1</var>, <var>g2</var> должны быть nx&gt;2. Размеры массивов по 2-му индексу <var>tr</var>, <var>g1</var>, <var>g2</var> и размер по 3-му индексу массива <var>adat</var> должны быть одинаковы. См. также <a href="#surf3">surf3</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Dual-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0430_0440_043d_044be-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">1.13 Парные графики</h2>
+
+<p>Эти команды строят графики для двух связанных массивов. Есть несколько основных типов 3D графиков: поверхность и поверхность уровня с окраской по второму массиву (<a href="#surfc">surfc</a>, <a href="#surf3c">surf3c</a>), поверхность и поверхность уровня с прозрачностью по второму массиву (<a href="#surfa">surfa</a>, <a href="#surf3a">surf3a</a>), плитки переменного размера (<a href="#tiles">tiles</a>), диаграмма точечного отображения (<a href="#map">map</a>), STFA диаграмма (<a href="#stfa">stfa</a>). В командах <a href="#surf3a">surf3a</a> и <a href="#surf3c">surf3c</a> значения уровней можно задавать автоматически и вручную. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива.
+</p>
+<p>Строка <var>sch</var> задает цветовую схему (see section <a href="#Color-scheme">Цветовая схема</a>). Предыдущая цветовая схема используется по умолчанию. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). Если массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> не указаны, то используются массивы со значениями равно распределенными вдоль осей x, y, z.
+</p>
+<a name="index-surfc"></a>
+<p><a name="surfc"></a>
+</p><dl>
+<dt><a name="index-surfc-1"></a><u>Команда MGL:</u> <b>surfc</b><i> zdat cdat ['sch'='']</i></dt>
+<dt><a name="index-surfc-2"></a><u>Команда MGL:</u> <b>surfc</b><i> xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Рисует параметрически заданную поверхность {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} с цветом, заданным массивом <var>cdat</var>[i,j]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на поверхности рисуется сетка. См. также <a href="#surf">surf</a>, <a href="#surfa">surfa</a>, <a href="#surf3c">surf3c</a>. См. раздел <a href="mgl_ru_3.html#SurfC-sample">SurfC &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-surf3c"></a>
+<p><a name="surf3c"></a>
+</p><dl>
+<dt><a name="index-surf3c-1"></a><u>Команда MGL:</u> <b>surf3c</b><i> adat cdat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3c-2"></a><u>Команда MGL:</u> <b>surf3c</b><i> xdat ydat zdat adat cdat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) при <var>a</var>(x,y,z)=<var>val</var>. Аналогично <a href="#surf3">surf3</a>, но цвет задается массивом <var>cdat</var>. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. См. также <a href="#surf3">surf3</a>, <a href="#surfc">surfc</a>, <a href="#surf3a">surf3a</a>. См. раздел <a href="mgl_ru_3.html#Surf3C-sample">Surf3C &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3c-3"></a><u>Команда MGL:</u> <b>surf3c</b><i> adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3c-4"></a><u>Команда MGL:</u> <b>surf3c</b><i> xdat ydat zdat adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Рисует <var>num</var> поверхностей уровня равномерно распределенных в интервале цветовой шкалы (см. <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-surfa"></a>
+<p><a name="surfa"></a>
+</p><dl>
+<dt><a name="index-surfa-1"></a><u>Команда MGL:</u> <b>surfa</b><i> zdat cdat ['sch'='']</i></dt>
+<dt><a name="index-surfa-2"></a><u>Команда MGL:</u> <b>surfa</b><i> xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Рисует параметрически заданную поверхность {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} с прозрачностью, заданным массивом <var>cdat</var>[i,j]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на поверхности рисуется сетка. См. также <a href="#surf">surf</a>, <a href="#surfc">surfc</a>, <a href="#surf3a">surf3a</a>. См. раздел <a href="mgl_ru_3.html#SurfA-sample">SurfA &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-surf3a"></a>
+<p><a name="surf3a"></a>
+</p><dl>
+<dt><a name="index-surf3a-1"></a><u>Команда MGL:</u> <b>surf3a</b><i> adat cdat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3a-2"></a><u>Команда MGL:</u> <b>surf3a</b><i> xdat ydat zdat adat cdat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) при <var>a</var>(x,y,z)=<var>val</var>. Аналогично <a href="#surf3">surf3</a>, но прозрачность задается массивом <var>cdat</var>. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. См. также <a href="#surf3">surf3</a>, <a href="#surfa">surfa</a>, <a href="#surf3c">surf3c</a>. См. раздел <a href="mgl_ru_3.html#Surf3A-sample">Surf3A &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3a-3"></a><u>Команда MGL:</u> <b>surf3a</b><i> adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3a-4"></a><u>Команда MGL:</u> <b>surf3a</b><i> xdat ydat zdat adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Рисует <var>num</var> поверхностей уровня равномерно распределенных в интервале цветовой шкалы (см. <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-tiles"></a>
+<p><a name="tiles"></a>
+</p><dl>
+<dt><a name="index-tiles-1"></a><u>Команда MGL:</u> <b>tiles</b><i> zdat rdat ['sch'='']</i></dt>
+<dt><a name="index-tiles-2"></a><u>Команда MGL:</u> <b>tiles</b><i> xdat ydat zdat rdat ['sch'='']</i></dt>
+<dd><p>Рисует плитки для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Аналогично <a href="#tile">tile</a>, но размер плиток задается массивов <var>rdat</var>. Это создает эффект &quot;прозрачности&quot; при экспорте в файлы EPS. См. также <a href="#surfa">surfa</a>, <a href="#tile">tile</a>. См. раздел <a href="mgl_ru_3.html#TileS-sample">TileS &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-map"></a>
+<p><a name="map"></a>
+</p><dl>
+<dt><a name="index-map-1"></a><u>Команда MGL:</u> <b>map</b><i> udat vdat ['sch'='' <code>pnts=on</code>]</i></dt>
+<dt><a name="index-map-2"></a><u>Команда MGL:</u> <b>map</b><i> xdat ydat udat vdat ['sch'='' <code>pnts=on</code>]</i></dt>
+<dd><p>Визуализирует точечное отображение для матриц {<var>udat</var>, <var>vdat</var> } параметрически зависящих от координат <var>xdat</var>, <var>ydat</var>. Исходное положение ячейки задает ее цвет. Высота пропорциональна якобиану Jacobian(udat,vdat). График является аналогом диаграммы Арнольда. Если <code>pnts=off</code>, то рисуются грани, иначе цветные точки рисуются в узлах матриц (полезно для &quot;запутанного&quot; отображения). См. раздел <a href="mgl_ru_3.html#Map-sample">Map &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-stfa"></a>
+<p><a name="stfa"></a>
+</p><dl>
+<dt><a name="index-stfa-1"></a><u>Команда MGL:</u> <b>stfa</b><i> re im <code>dn</code> ['sch'='' <code>pnts=on</code>]</i></dt>
+<dt><a name="index-stfa-2"></a><u>Команда MGL:</u> <b>stfa</b><i> xdat ydat re im <code>dn</code> ['sch'='' <code>pnts=on</code>]</i></dt>
+<dd><p>Рисует спектрограмму комплексного массива <var>re</var>+i*<code>im</code> для Фурье размером <var>dn</var> точек. Параметр <var>dn</var> &ndash; любое четное число. Например в 1D случае, результатом будет график плотности от массива <em>res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn</em> размером {int(nx/dn), dn, ny}. Массивы <var>re</var>, <var>im</var> параметрически зависят от координат <var>xdat</var>, <var>ydat</var>. См. раздел <a href="mgl_ru_3.html#STFA-sample">STFA &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+
+
+
+<hr size="6">
+<a name="Vector-fields"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0412e_043a_0442_043e_0440_043d_044be-_043f_043e_043bya"></a>
+<h2 class="section">1.14 Векторные поля</h2>
+
+<p>Эти функции рисуют графики для 2D и 3D векторных полей. Есть несколько типов графиков: просто векторное поле (<a href="#vect">vect</a>), вектора вдоль траектории (<a href="#traj">traj</a>), векторное поле каплями (<a href="#dew">dew</a>), нити тока (<a href="#flow">flow</a>), трубки тока (<a href="#pipe">pipe</a>). Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива.
+</p>
+<p>Строка <var>sch</var> задает цветовую схему (see section <a href="#Color-scheme">Цветовая схема</a>). Предыдущая цветовая схема используется по умолчанию. Все размеры массивов <var>ax</var> и <var>ay</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var> и <var>ax</var> должны быть одинаковы. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>ax</var>). График строится для каждого z среза <var>ax</var>, <var>ay</var> для 2D случаев.
+</p>
+<a name="index-traj"></a>
+<p><a name="traj"></a>
+</p><dl>
+<dt><a name="index-traj-1"></a><u>Команда MGL:</u> <b>traj</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan len=0</code>]</i></dt>
+<dt><a name="index-traj-2"></a><u>Команда MGL:</u> <b>traj</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>len=0</code>]</i></dt>
+<dd><p>Рисует вектора {<var>udat</var>, <var>vdat</var>, <var>wdat</var>} вдоль кривой {<var>xdat</var>, <var>ydat</var>, <var>zdat</var>}. Длина векторов пропорциональна <em>\sqrtudat^2+vdat^2+wdat^2</em>. Строка <var>pen</var> задает цвет (see section <a href="#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=''</code>). Параметр <var>len</var> задает фактор длины векторов (если не нуль) или выбирать длину пропорционально расстоянию между точками кривой (если <var>len</var>=0). См. также <a href="#vect">vect</a>. См. раздел <a href="mgl_ru_3.html#Traj-sample">Traj &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-vect"></a>
+<p><a name="vect"></a>
+</p><dl>
+<dt><a name="index-vect-1"></a><u>Команда MGL:</u> <b>vect</b><i> udat vdat ['sch'='' <code>zval=nan flag=0</code>]</i></dt>
+<dt><a name="index-vect-2"></a><u>Команда MGL:</u> <b>vect</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan flag=0</code>]</i></dt>
+<dd><p>Рисует векторное поле {<var>udat</var>, <var>vdat</var>} параметрически зависящее от координат <var>xdat</var>, <var>ydat</var> на плоскости при <var>z</var>=<var>zval</var>. Длина и цвет векторов пропорциональна <em>\sqrtax^2+ay^2</em>. Число рисуемых векторов зависит от <a href="#meshnum">meshnum</a>. Параметр <var>flag</var> побитовый флаг для настройки вид векторов: <code>1</code> &ndash; двуцветный вектор, <code>2</code> &ndash; одинаковая длина векторов, <code>4</code> &ndash; рисует стрелку в точку сетки, <code>8</code> &ndash; рисует стрелку с серединой в точке сетки, <code>16</code> &ndash; рисует штрихи вместо стрелок. См. также <a href="#flow">flow</a>, <a href="#dew">dew</a>, <a href="#vectc">vectc</a>. См. раздел <a href="mgl_ru_3.html#Vect-sample">Vect &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vect-3"></a><u>Команда MGL:</u> <b>vect</b><i> udat vdat wdat ['sch'='' <code>flag=0</code>]</i></dt>
+<dt><a name="index-vect-4"></a><u>Команда MGL:</u> <b>vect</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>flag=0</code>]</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а длина и цвет пропорциональны <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mgl_ru_3.html#Vect-3D-sample">Vect 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-vectc"></a>
+<p><a name="vectc"></a>
+</p><dl>
+<dt><a name="index-vectc-1"></a><u>Команда MGL:</u> <b>vectc</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-vectc-2"></a><u>Команда MGL:</u> <b>vectc</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Аналогично <a href="#vect">vect</a> c <code>flag=2+16=18</code>. См. раздел <a href="mgl_ru_3.html#VectC-sample">VectC &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vectc-3"></a><u>Команда MGL:</u> <b>vectc</b><i> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-vectc-4"></a><u>Команда MGL:</u> <b>vectc</b><i> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а длина и цвет пропорциональны <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mgl_ru_3.html#VectC-3D-sample">VectC 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-vectl"></a>
+<p><a name="vectl"></a>
+</p><dl>
+<dt><a name="index-vectl-1"></a><u>Команда MGL:</u> <b>vectl</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-vectl-2"></a><u>Команда MGL:</u> <b>vectl</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Аналогично <a href="#vect">vect</a> c <code>flag=1+16=17</code>. См. раздел <a href="mgl_ru_3.html#VectL-sample">VectL &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vectl-3"></a><u>Команда MGL:</u> <b>vectl</b><i> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-vectl-4"></a><u>Команда MGL:</u> <b>vectl</b><i> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а длина и цвет пропорциональны <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mgl_ru_3.html#VectL-3D-sample">VectL 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-dew"></a>
+<p><a name="dew"></a>
+</p><dl>
+<dt><a name="index-dew-1"></a><u>Команда MGL:</u> <b>dew</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-dew-2"></a><u>Команда MGL:</u> <b>dew</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует капли для векторного поля {<var>udat</var>, <var>vdat</var>}, параметрически зависящего от координат <var>xdat</var>, <var>ydat</var> при <var>z=zval</var>. Замечу, что график требует много памяти и процессорного времени для своего создания! Цвет капель пропорционален <em>\sqrtax^2+ay^2</em>. Число капель определяется <a href="#meshnum">meshnum</a>. См. также <a href="#vect">vect</a>. См. раздел <a href="mgl_ru_3.html#Dew-sample">Dew &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-flow"></a>
+<p><a name="flow"></a>
+</p><dl>
+<dt><a name="index-flow-1"></a><u>Команда MGL:</u> <b>flow</b><i> udat vdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-flow-2"></a><u>Команда MGL:</u> <b>flow</b><i> xdat ydat udat vdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dd><p>Рисует нити тока для векторного поля {<var>udat</var>, <var>vdat</var>}, параметрически зависящего от координат <var>xdat</var>, <var>ydat</var> на плоскости при z = <var>zval</var>. Число нитей пропорционально <var>num</var>. При <var>num</var>&gt;0 нитей могут стартовать и изнутри сетки, в противном случае только с краев. Цвет нитей пропорционален <em>\sqrtudat^2+vdat^2</em>. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника). См. также <a href="#pipe">pipe</a>, <a href="#vect">vect</a>. См. раздел <a href="mgl_ru_3.html#Flow-sample">Flow &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-3"></a><u>Команда MGL:</u> <b>flow</b><i> udat vdat wdat ['sch'='' <code>num=3</code>]</i></dt>
+<dt><a name="index-flow-4"></a><u>Команда MGL:</u> <b>flow</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>num=3</code>]</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а цвет пропорционален <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mgl_ru_3.html#Flow-3D-sample">Flow 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-5"></a><u>Команда MGL:</u> <b>flow</b><i> <code>x0 y0</code> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-flow-6"></a><u>Команда MGL:</u> <b>flow</b><i> <code>x0 y0</code> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует нить тока из точки {<var>x0</var>, <var>y0</var>} для векторного поля {<var>udat</var>, <var>vdat</var>}, параметрически зависящего от координат <var>xdat</var>, <var>ydat</var> на плоскости при z = <var>zval</var>. Цвет нити пропорционален <em>\sqrtudat^2+vdat^2</em>. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-7"></a><u>Команда MGL:</u> <b>flow</b><i> <code>x0 y0 z0</code> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-flow-8"></a><u>Команда MGL:</u> <b>flow</b><i> <code>x0 y0 z0</code> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а цвет пропорционален <em>\sqrtudat^2+vdat^2+wdat^2</em>.
+</p></dd></dl>
+
+
+<a name="index-pipe"></a>
+<p><a name="pipe"></a>
+</p><dl>
+<dt><a name="index-pipe-1"></a><u>Команда MGL:</u> <b>pipe</b><i> udat vdat ['sch'='' <code>r0=0.05 num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-pipe-2"></a><u>Команда MGL:</u> <b>pipe</b><i> xdat ydat udat vdat ['sch'='' <code>r0=0.05 num=5 zval=nan</code>]</i></dt>
+<dd><p>Рисует трубки тока для векторного поля {<var>udat</var>, <var>vdat</var>}, параметрически зависящего от координат <var>xdat</var>, <var>ydat</var> на плоскости при z = <var>zval</var>. Число трубок пропорционально <var>num</var>. При <var>num</var>&gt;0 нитей могут стартовать и изнутри сетки, в противном случае только с краев. Цвет и радиус трубок пропорционален <em>\sqrtudat^2+vdat^2</em>. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника). Параметр <var>r0</var> задает радиус трубок. При <var>r0</var>&lt;0 радиус трубок обратно пропорционален их амплитуде. См. также <a href="#flow">flow</a>, <a href="#vect">vect</a>. См. раздел <a href="mgl_ru_3.html#Pipe-sample">Pipe &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-pipe-3"></a><u>Команда MGL:</u> <b>pipe</b><i> udat vdat wdat ['sch'='' <code>r0=0.05 num=3</code>]</i></dt>
+<dt><a name="index-pipe-4"></a><u>Команда MGL:</u> <b>pipe</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>r0=0.05 num=3</code>]</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а цвет пропорционален <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mgl_ru_3.html#Pipe-3D-sample">Pipe 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Other-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-fields" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043e_0447_0438e-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">1.15 Прочие графики</h2>
+
+<p>Это команды, не относящиеся к какой-то специальной категории. Сюда входят функции построения графиков по текстовым формулам (<a href="#fplot">fplot</a>, <a href="#fsurf">fsurf</a>), рисования поверхностей из треугольников (<a href="#triplot">triplot</a>), произвольных точек в пространстве (<a href="#dots">dots</a>) и реконструкции по ним поверхности (<a href="#crust">crust</a>), графики плотности и линии уровня на плоскостях, перпендикулярных осям x, y или z (dens[xyz], cont[xyz], contf[xyz]). Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива. Строка <var>sch</var> задает цветовую схему (see section <a href="#Color-scheme">Цветовая схема</a>). Предыдущая цветовая схема используется по умолчанию.
+</p>
+<a name="index-densx"></a>
+<a name="index-densy"></a>
+<a name="index-densz"></a>
+<p><a name="densx"></a> <a name="densy"></a> <a name="densz"></a>
+</p><dl>
+<dt><a name="index-densx-1"></a><u>Команда MGL:</u> <b>densx</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dt><a name="index-densy-1"></a><u>Команда MGL:</u> <b>densy</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dt><a name="index-densz-1"></a><u>Команда MGL:</u> <b>densz</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dd><p>Рисуют график плотности на x, y или z плоскостях. Если <var>dat</var> &ndash; 3d массив, то выполняется интерполяция к заданному срезу <var>val</var>. Функции полезны для создания проекций 3D массивов на оси координат. См. также <code>cont[xyz], contf[xyz]</code>, <a href="#dens">dens</a>. См. раздел <a href="mgl_ru_3.html#Dens-projection-sample">Dens projection &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-contx"></a>
+<a name="index-conty"></a>
+<a name="index-contz"></a>
+<p><a name="contz"></a> <a name="conty"></a> <a name="contx"></a>
+</p><dl>
+<dt><a name="index-contx-1"></a><u>Команда MGL:</u> <b>contx</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-conty-1"></a><u>Команда MGL:</u> <b>conty</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contz-1"></a><u>Команда MGL:</u> <b>contz</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dd><p>Рисуют линии уровня на x, y или z плоскостях. Если <var>dat</var> &ndash; 3d массив, то выполняется интерполяция к заданному срезу <var>val</var>. Функции полезны для создания проекций 3D массивов на оси координат. См. также <code>dens[xyz], contf[xyz]</code>, <a href="#cont">cont</a>. См. раздел <a href="mgl_ru_3.html#Cont-projection-sample">Cont projection &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-contfx"></a>
+<a name="index-contfy"></a>
+<a name="index-contfz"></a>
+<p><a name="contfz"></a> <a name="contfy"></a> <a name="contfx"></a>
+</p><dl>
+<dt><a name="index-contfx-1"></a><u>Команда MGL:</u> <b>contfx</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contfy-1"></a><u>Команда MGL:</u> <b>contfy</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contfz-1"></a><u>Команда MGL:</u> <b>contfz</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dd><p>Рисуют закрашенные контуры уровня на x, y или z плоскостях. Если <var>dat</var> &ndash; 3d массив, то выполняется интерполяция к заданному срезу <var>val</var>. Функции полезны для создания проекций 3D массивов на оси координат. См. также <code>dens[xyz], cont[xyz]</code>, <a href="#contf">contf</a>.
+</p></dd></dl>
+
+<a name="index-dots"></a>
+<p><a name="dots"></a>
+</p><dl>
+<dt><a name="index-dots-1"></a><u>Команда MGL:</u> <b>dots</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-dots-2"></a><u>Команда MGL:</u> <b>dots</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Рисует произвольно расположенные точки {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если определен массив <var>adat</var>[i], то он задает прозрачность точек. См. также <a href="#crust">crust</a>, <a href="#mark">mark</a>, <a href="#plot">plot</a>. См. раздел <a href="mgl_ru_3.html#Dots-sample">Dots &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-crust"></a>
+<p><a name="crust"></a>
+</p><dl>
+<dt><a name="index-crust-1"></a><u>Команда MGL:</u> <b>crust</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Реконструирует и рисует поверхность по произвольно расположенным точкам {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если строка содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. См. также <a href="#dots">dots</a>, <a href="#triplot">triplot</a>. См. раздел <a href="mgl_ru_3.html#Crust-sample">Crust &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-triplot"></a>
+<p><a name="triplot"></a>
+</p><dl>
+<dt><a name="index-triplot-1"></a><u>Команда MGL:</u> <b>triplot</b><i> idat xdat ydat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-triplot-2"></a><u>Команда MGL:</u> <b>triplot</b><i> idat xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-triplot-3"></a><u>Команда MGL:</u> <b>triplot</b><i> idat xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Рисует поверхность из треугольников. Вершины треугольников задаются индексами <var>idat</var> в массиве точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если строка содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Размер по 1-му индексу массива <var>idat</var> должен быть 3 или больше. Массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> должны иметь одинаковые размеры. Массив <var>cdat</var> задает цвет треугольников (если <var>idat</var>.ny=<var>cdat</var>.nx) или цвет вершин (если <var>xdat</var>.nx=<var>cdat</var>.nx). См. также <a href="#dots">dots</a>, <a href="#crust">crust</a>, <a href="#quadplot">quadplot</a>, <a href="#tricont">tricont</a>.
+</p></dd></dl>
+
+<a name="index-tricont"></a>
+<p><a name="tricont"></a>
+</p><dl>
+<dt><a name="index-tricont-1"></a><u>Команда MGL:</u> <b>tricont</b><i> vdat idat xdat ydat zdat cdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tricont-2"></a><u>Команда MGL:</u> <b>tricont</b><i> vdat idat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tricont-3"></a><u>Команда MGL:</u> <b>tricont</b><i> idat xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Рисует линии уровня поверхности из треугольников при <var>z</var> = <var>zval</var> (или для z=<var>vdat</var>[k] если <code>zval==NAN</code>). Вершины треугольников задаются индексами <var>idat</var> в массиве точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Размер по 1-му индексу массива <var>idat</var> должен быть 3 или больше. Массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> должны иметь одинаковые размеры. Массив <var>cdat</var> (если указан) задает цвет треугольников (если <var>idat</var>.ny=<var>cdat</var>.nx) или цвет вершин (если <var>xdat</var>.nx=<var>cdat</var>.nx). См. также <a href="#triplot">triplot</a>, <a href="#cont">cont</a>.
+</p></dd></dl>
+
+<a name="index-quadplot"></a>
+<p><a name="quadplot"></a>
+</p><dl>
+<dt><a name="index-quadplot-1"></a><u>Команда MGL:</u> <b>quadplot</b><i> idat xdat ydat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-quadplot-2"></a><u>Команда MGL:</u> <b>quadplot</b><i> idat xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-quadplot-3"></a><u>Команда MGL:</u> <b>quadplot</b><i> idat xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Рисует поверхность из четырехугольников. Вершины треугольников задаются индексами <var>idat</var> в массиве точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если строка содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Размер по 1-му индексу массива <var>idat</var> должен быть 4 или больше. Массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> должны иметь одинаковые размеры. Массив <var>cdat</var> задает цвет четырехугольников (если <var>idat</var>.ny=<var>cdat</var>.nx) или цвет вершин (если <var>xdat</var>.nx=<var>cdat</var>.nx). См. также <a href="#triplot">triplot</a>.
+</p></dd></dl>
+
+<a name="index-fplot"></a>
+<p><a name="fplot"></a>
+</p><dl>
+<dt><a name="index-fplot-1"></a><u>Команда MGL:</u> <b>fplot</b><i> 'y(x)' ['pen'='' <code>zval=nan num=100</code>]</i></dt>
+<dd><p>Рисует функцию &lsquo;<samp>y(x)</samp>&rsquo; в плоскости z=<var>zval</var> с координатой &lsquo;<samp>x</samp>&rsquo; в диапазоне x-оси координат. Параметр <var>num</var> задает минимальное число точек по координате для графика. См. также <a href="#plot">plot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fplot-2"></a><u>Команда MGL:</u> <b>fplot</b><i> 'x(t)' 'y(t)' 'z(t)' ['pen'='' <code>num=100</code>]</i></dt>
+<dd><p>Рисует параметрическую кривую {&lsquo;<samp>x(t)</samp>&rsquo;, &lsquo;<samp>y(t)</samp>&rsquo;, &lsquo;<samp>z(t)</samp>&rsquo;}, где координата &lsquo;<samp>t</samp>&rsquo; меняется в диапазоне [0, 1]. Параметр <var>num</var> задает минимальное число точек по координате для графика. См. также <a href="#plot">plot</a>.
+</p></dd></dl>
+
+<a name="index-fsurf"></a>
+<p><a name="fsurf"></a>
+</p><dl>
+<dt><a name="index-fsurf-1"></a><u>Команда MGL:</u> <b>fsurf</b><i> 'z(x,y)' ['sch'='' <code>num=100</code>]</i></dt>
+<dd><p>Рисует поверхность &lsquo;<samp>z(x,y)</samp>&rsquo; с координатами &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; в диапазоне x-,y-осей координат. Параметр <var>num</var> задает минимальное число точек по координатам для графика. См. также <a href="#surf">surf</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fsurf-2"></a><u>Команда MGL:</u> <b>fsurf</b><i> 'x(u,v)' 'y(u,v)' 'z(u,v)' ['sch'='' <code>num=100</code>]</i></dt>
+<dd><p>Рисует параметрическую поверхность {&lsquo;<samp>x(u,v)</samp>&rsquo;, &lsquo;<samp>y(u,v)</samp>&rsquo;, &lsquo;<samp>z(u,v)</samp>&rsquo;}, где координаты &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo; меняются в диапазоне [0, 1]. Параметр <var>num</var> задает минимальное число точек по координатам для графика. См. также <a href="#surf">surf</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Nonlinear-fitting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-create" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-1"></a>
+<h2 class="section">1.16 Nonlinear fitting</h2>
+
+<p>Эти команды подбирают параметры функций для наилучшей аппроксимации данных, т.е. минимизируют сумму <em>\sum_i (f(x_i, y_i, z_i) - a_i)^2/s_i^2</em>. При этом аппроксимирующая функция &lsquo;<samp>f</samp>&rsquo; может зависеть от одного аргумента &lsquo;<samp>x</samp>&rsquo; (1D случай), от двух аргументов &lsquo;<samp>x,y</samp>&rsquo; (2D случай) или от трех аргументов &lsquo;<samp>x,y,z</samp>&rsquo; (3D случай). Функция &lsquo;<samp>f</samp>&rsquo; также может зависеть от параметров. Список параметров задается строкой <var>var</var> (например, &lsquo;<samp>abcd</samp>&rsquo;). Обычно пользователь должен предоставить начальные значения параметров в переменной <var>ini</var>. Однако, при его отсутствии используются нулевые значения.
+</p>
+<p>Команды <a href="#fit">fit</a> и <a href="#fits">fits</a> не рисуют полученные массивы. Они заполняют массив <var>fit</var> по формуле &lsquo;<samp>f</samp>&rsquo; с найденными коэффициентами. При этом, координаты &lsquo;<samp>x,y,z</samp>&rsquo; равно распределены в вдоль осей координат. Число точек в <var>fit</var> выбирается максимальным из размера массива <var>fit</var> и 100. Формулу с найденными коэффициентами можно вывести с помощью команды <a href="#putsfit">putsfit</a>. См. раздел <a href="mgl_ru_3.html#Fitting-sample">Fitting &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<p>Размерность массивов должны быть не меньше, чем число указанных массивов <var>xdat</var>, <var>ydat</var>, <var>zdat</var>. Также подбор коэффициентов будет осуществляться только вдоль указанных направлений (например, вдоль x и y если указаны только <var>xdat</var> и <var>ydat</var>). Если массив <var>xdat</var> не указан, то используется массив со значениями равно распределенными вдоль оси x.
+</p>
+<a name="index-fits"></a>
+<p><a name="fits"></a>
+</p><dl>
+<dt><a name="index-fits-1"></a><u>Команда MGL:</u> <b>fits</b><i> adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-2"></a><u>Команда MGL:</u> <b>fits</b><i> xdat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-3"></a><u>Команда MGL:</u> <b>fits</b><i> xdat ydat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-4"></a><u>Команда MGL:</u> <b>fits</b><i> xdat ydat zdat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-, y- и z-направлений для массива заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) с весовыми коэффициентами <var>sdat</var>[i,j,k].
+</p></dd></dl>
+
+<a name="index-fit"></a>
+<p><a name="fit"></a>
+</p><dl>
+<dt><a name="index-fit-1"></a><u>Команда MGL:</u> <b>fit</b><i> adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-2"></a><u>Команда MGL:</u> <b>fit</b><i> xdat adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-3"></a><u>Команда MGL:</u> <b>fit</b><i> xdat ydat adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-4"></a><u>Команда MGL:</u> <b>fit</b><i> xdat ydat zdat adat 'func' 'var' [ini=0]</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-, y- и z-направлений для массива заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) с весовыми коэффициентами равными 1.
+</p></dd></dl>
+
+<a name="index-putsfit"></a>
+<p><a name="putsfit"></a>
+</p><dl>
+<dt><a name="index-putsfit-1"></a><u>Команда MGL:</u> <b>putsfit</b><i> <code>x y</code> ['pre'='' 'fnt'='' <code>size=-1</code>]</i></dt>
+<dd><p>Печатает последнюю подобранную формулу с найденными коэффициентами в точке {<var>x</var>, <var>y</var>}. Строка <var>pre</var> будет напечатана перед формулой. Все другие параметры такие же как в <a href="#Text-printing">Вывод текста</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Data-create"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-filling" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_043e_0437_0434_0430_043d_0438e-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">1.17 Создание данных</h2>
+
+<a name="index-new"></a>
+<p><a name="new"></a>
+</p><dl>
+<dt><a name="index-new-1"></a><u>Команда MGL:</u> <b>new</b><i> dat [<code>nx=1 ny=1 nz=1</code>]</i></dt>
+<dd><p>Создает/пересоздает массив с именем <var>dat</var> данных указанного размера и заполняет его нулями. Ничего не делает при <var>nx</var>, <var>ny</var>, <var>nz</var> отрицательных или равных нулю.
+</p></dd></dl>
+
+<a name="index-var"></a>
+<p><a name="var"></a>
+</p><dl>
+<dt><a name="index-var-1"></a><u>Команда MGL:</u> <b>var</b><i> dat <code>num v1 [v2=nan]</code></i></dt>
+<dd><p>Создает одномерный массив с именем <var>dat</var> размером <code>num</code> и заполняет его равномерно в диапазоне [<var>v1</var>, <var>v2</var>]. Если <var>v2</var>=<code>nan</code>, то используется <var>v2=v1</var>. 
+</p></dd></dl>
+
+<a name="index-list"></a>
+<p><a name="list"></a>
+</p><dl>
+<dt><a name="index-list-1"></a><u>Команда MGL:</u> <b>list</b><i> dat <code>v1 ...</code></i></dt>
+<dd><p>Создает массив с именем <var>dat</var> и заполняет его числовыми значениями аргументов <code>v1 ...</code>. Команда может создавать 1d- и 2d-массивы. Для создания 2d-массивов требуется указать разделитель строк данных &lsquo;<samp>|</samp>&rsquo;. Размер массива будет [максимальное число чисел в строке * число строк]. Например, команда <code>list 1 | 2 3</code> создаст массив [1 0; 2 3]. Отмечу, что максимальное число аргументов 1000. 
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-list-2"></a><u>Команда MGL:</u> <b>list</b><i> dat d1 ...</i></dt>
+<dd><p>Создает массив с именем <var>dat</var> и заполняет его числами из массивов <code>d1 ...</code>. Команда может создавать 2d- и 3d-массивы (если аргументы 2d массивы). Младшие размерности всех массивов в аргументах должны быть равны размерности <var>d1</var>. Отмечу, что максимальное число аргументов 1000. 
+</p></dd></dl>
+
+<a name="index-copy"></a>
+<p><a name="copy"></a>
+</p><dl>
+<dt><a name="index-copy-1"></a><u>Команда MGL:</u> <b>copy</b><i> dat dat2 ['eq'='' <code>on_axis=on</code>]</i></dt>
+<dt><a name="index-copy-2"></a><u>Команда MGL:</u> <b>copy</b><i> dat <code>val</code></i></dt>
+<dd><p>Создает массив с именем <var>dat</var> и копирует в него данные из массива <var>dat2</var>. При этом, если указан параметр <var>eq</var>, то данные будут изменены по формуле аналогично команде <a href="#fill">fill</a> (для <code>on_axis=on</code>) или <a href="#modify">modify</a> (для <code>on_axis=off</code>).
+</p></dd></dl>
+
+<a name="index-idset"></a>
+<p><a name="idset"></a>
+</p><dl>
+<dt><a name="index-idset-1"></a><u>Команда MGL:</u> <b>idset</b><i> dat 'ids'</i></dt>
+<dd><p>Устанавливает символьные обозначения для колонок данных. Строка должна содержать символы &rsquo;a&rsquo;...&rsquo;z&rsquo; один на колонку (без пробелов).
+</p></dd></dl>
+
+<a name="index-info"></a>
+<p><a name="info"></a>
+</p><dl>
+<dt><a name="index-info-1"></a><u>Команда MGL:</u> <b>info</b><i> dat [<code>detail=off</code>]</i></dt>
+<dd><p>Выводит информацию о массиве (размер, максимальное/минимальное значение, моменты и пр.). При <code>detail=off</code> показывается только краткая информация.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-info-2"></a><u>Команда MGL:</u> <b>info</b><i> 'text'</i></dt>
+<dd><p>Выводит текст <var>text</var> как информацию (предупреждение).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Data-filling"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-create" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Rearrange-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0417_0430_043f_043e_043b_043de_043d_0438e-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">1.18 Заполнение данных</h2>
+<a name="index-fill"></a>
+<a name="index-modify"></a>
+
+<a name="index-fill-1"></a>
+<p><a name="fill"></a>
+</p><dl>
+<dt><a name="index-fill-2"></a><u>Команда MGL:</u> <b>fill</b><i> dat v1 v2 ['dir'='x']</i></dt>
+<dd><p>Заполняет значениями равно распределенными в диапазоне [<var>v1</var>, <var>v2</var>] в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;,&lsquo;<samp>y</samp>&rsquo;,&lsquo;<samp>z</samp>&rsquo;}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fill-3"></a><u>Команда MGL:</u> <b>fill</b><i> dat 'eq' [vdat=0 wdat=0]</i></dt>
+<dd><p>Заполняет значениями вычисленными по формуле <var>eq</var>. Формула представляет собой произвольное выражение, зависящее от переменных &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Координаты &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; полагаются меняющимися в диапазоне осей координат (в отличие от <a href="#modify">modify</a>). Переменная &lsquo;<samp>u</samp>&rsquo; &ndash; значения исходного массива, переменные &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo; &ndash; значения массивов <var>vdat</var>, <var>wdat</var>. Последние могут быть опущены.
+</p></dd></dl>
+
+<a name="index-modify-1"></a>
+<p><a name="modify"></a>
+</p><dl>
+<dt><a name="index-modify-2"></a><u>Команда MGL:</u> <b>modify</b><i> dat 'eq' [<code>dim=0</code>]</i></dt>
+<dt><a name="index-modify-3"></a><u>Команда MGL:</u> <b>modify</b><i> dat 'eq' vdat [wdat=0]</i></dt>
+<dd><p>Заполняет значениями вычисленными по формуле <var>eq</var>. Формула представляет собой произвольное выражение, зависящее от переменных &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Координаты &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; полагаются меняющимися в диапазоне [0,1] (в отличие от <a href="#fill">fill</a>). Переменная &lsquo;<samp>u</samp>&rsquo; &ndash; значения исходного массива, переменные &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo; &ndash; значения массивов <var>vdat</var>, <var>wdat</var>. Последние могут быть опущены. Если указан <var>dim</var>&gt;0, то изменяются только слои &gt;=<var>dim</var>.
+</p></dd></dl>
+
+
+<a name="index-put"></a>
+<p><a name="put"></a>
+</p><dl>
+<dt><a name="index-put-1"></a><u>MGL command:</u> <b>put</b><i> dat <code>val [i=: j=: k=:]</code></i></dt>
+<dd><p>Присваивает значения (под-)массива <var>dat</var>[<var>i</var>, <var>j</var>, <var>k</var>] = <var>val</var>. Индексы <var>i</var>, <var>j</var>, <var>k</var> равные &lsquo;<samp>:</samp>&rsquo; задают значениия <var>val</var> для всего диапазона соответствующего направления(ий). Например, <code>put dat val : 0 :</code> задает <var>dat</var>[i,0,j]=<var>val</var> для i=0...(<var>dat</var>.nx-1), j=0...(<var>dat</var>.nz-1).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-put-2"></a><u>MGL command:</u> <b>put</b><i> dat vdat [<code>i=: j=: k=:</code>]</i></dt>
+<dd><p>Копирует значения из массива <var>vdat</var> в диапазон значений массива <var>dat</var>. Индексы <var>i</var>, <var>j</var>, <var>k</var> равные &lsquo;<samp>:</samp>&rsquo; задают диапазон изменения значений в соответствующих направление(ях). Младшие размерности массива <var>vdat</var> должны быть больше выбранного диапазона массива <var>dat</var>. Например, <code>put dat v : 0 :</code> присвоит <var>dat</var>[i,0,j]=<var>vdat</var>.ny&gt;<var>dat</var>.nz ? <var>vdat</var>[i,j] : <var>vdat</var>[i], где i=0...(<var>dat</var>.nx-1), j=0...(<var>dat</var>.nz-1) и условие vdat.nx&gt;=dat.nx выполнено.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Rearrange-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-filling" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#File-I_002fO" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_0437_043ce_043de_043d_0438e-_0440_0430_0437_043ce_0440_043e_0432-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">1.19 Изменение размеров данных</h2>
+
+<a name="index-rearrange"></a>
+<p><a name="rearrange"></a>
+</p><dl>
+<dt><a name="index-rearrange-1"></a><u>Команда MGL:</u> <b>rearrange</b><i> dat <code>mx [my=0 mz=0]</code></i></dt>
+<dd><p>Изменяет размерность данных без изменения самого массива данных, так что результирующий массив <var>mx</var>*<var>my</var>*<var>mz</var> &lt; nx*ny*nz. Если один из параметров <var>my</var> или <var>mz</var> ноль, то он будет выбран оптимальным образом. Например, если <var>my</var>=0, то будет <var>my</var>=nx*ny*nz/<var>mx</var> и <var>mz</var>=1.
+</p></dd></dl>
+
+<a name="index-extend"></a>
+<p><a name="extend"></a>
+</p><dl>
+<dt><a name="index-extend-1"></a><u>Команда MGL:</u> <b>extend</b><i> dat <code>n1 [n2=0]</code></i></dt>
+<dd><p>Увеличивает размер данных путем вставки (|<var>n1</var>|+1) новых срезов после (для <var>n1</var>&gt;0) или перед (для <var>n1</var>&lt;0) существующими данными. Можно добавить сразу 2 размерности для 1d массива, используя второй параметр <var>n2</var>. Данные в новые срезы будут скопированы из существующих. Например, для <var>n1</var>&gt;0 новый массив будет
+a_ij^new = a_i^old where j=0...<var>n1</var>. Соответственно, для <var>n1</var>&lt;0 новый массив будет a_ij^new = a_j^old, где i=0...|<var>n1</var>|.
+</p></dd></dl>
+
+<a name="index-transpose"></a>
+<p><a name="transpose"></a>
+</p><dl>
+<dt><a name="index-transpose-1"></a><u>Команда MGL:</u> <b>transpose</b><i> dat ['dim'='yxz']</i></dt>
+<dd><p>Транспонирует (меняет порядок размерностей) массив данных. Новый порядок размерностей задается строкой <var>dim</var>.
+</p></dd></dl>
+
+<a name="index-squeeze"></a>
+<p><a name="squeeze"></a>
+</p><dl>
+<dt><a name="index-squeeze-1"></a><u>Команда MGL:</u> <b>squeeze</b><i> dat <code>rx [ry=1 rz=1 sm=off]</code></i></dt>
+<dd><p>Уменьшает размер данных путем удаления элементов с индексами не кратными <var>rx</var>, <var>ry</var>, <var>rz</var> соответственно. Параметр <var>smooth</var> задает использовать сглаживания
+(т.е. out[i]=\sum_{j=i,i+r} a[j]/r) или нет (т.е. out[i]=a[j*r]).
+</p></dd></dl>
+
+<a name="index-crop"></a>
+<p><a name="crop"></a>
+</p><dl>
+<dt><a name="index-crop-1"></a><u>Команда MGL:</u> <b>crop</b><i> dat <code>n1 n2</code> 'dir'</i></dt>
+<dd><p>Обрезает границы данных при <var>i</var>&lt;<var>n1</var> и <var>i</var>&gt;<var>n2</var> (при <var>n2</var>&gt;0) или <var>i</var>&gt;<code>n[xyz]</code>-<var>n2</var> (при <var>n2</var>&lt;=0) вдоль направления <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-delete"></a>
+<p><a name="delete"></a>
+</p><dl>
+<dt><a name="index-delete-1"></a><u>Команда MGL:</u> <b>delete</b><i> dat</i></dt>
+<dd><p>Удаляет массив <var>dat</var> и освобождает использованную память. Может быть полезно для больших неиспользуемых массивов.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-delete-2"></a><u>Команда MGL:</u> <b>delete</b><i> dat 'dir' <code>[pos=off num=0]</code></i></dt>
+<dd><p>Удаляет <var>num</var> срезов вдоль направления <var>dir</var> с позиции <var>pos</var>.
+</p></dd></dl>
+
+<a name="index-insert"></a>
+<p><a name="insert"></a>
+</p><dl>
+<dt><a name="index-insert-1"></a><u>Команда MGL:</u> <b>insert</b><i> dat 'dir' <code>[pos=off num=0]</code></i></dt>
+<dd><p>Вставляет <var>num</var> срезов вдоль направления <var>dir</var> с позиции <var>pos</var> и заполняет их нулями.
+</p></dd></dl>
+
+<hr size="6">
+<a name="File-I_002fO"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Rearrange-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Make-another-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0427_0442e_043d_0438e_002f_0441_043e_0445_0440_0430_043de_043d_0438e-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">1.20 Чтение/сохранение данных</h2>
+
+<a name="index-read"></a>
+<p><a name="read"></a>
+</p><dl>
+<dt><a name="index-read-1"></a><u>Команда MGL:</u> <b>read</b><i> dat 'fname'</i></dt>
+<dd><p>Читает данные из текстового файла с разделителями символом пробела/табуляции с автоматическим определением размера массива. Двойной перевод строки начинает новый срез данных (по направлению z).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-read-2"></a><u>Команда MGL:</u> <b>read</b><i> dat 'fname' <code>mx [my=1 mz=1]</code></i></dt>
+<dd><p>Читает данные из текстового файла с заданными размерами. Ничего не делается если параметры <var>mx</var>, <var>my</var> или <var>mz</var> равны нулю или отрицательны.
+</p></dd></dl>
+
+<a name="index-readmat"></a>
+<p><a name="readmat"></a>
+</p><dl>
+<dt><a name="index-readmat-1"></a><u>Команда MGL:</u> <b>readmat</b><i> dat 'fname' [<code>dim=2</code>]</i></dt>
+<dd><p>Читает данные из текстового файла с размерами, указанными в первых <var>dim</var> числах файла. При этом переменная <var>dim</var> задает размерность (1d, 2d, 3d) данных.
+</p></dd></dl>
+
+<a name="index-readall"></a>
+<p><a name="readall"></a>
+</p><dl>
+<dt><a name="index-readall-1"></a><u>Команда MGL:</u> <b>readall</b><i> dat 'templ' <code>v1 v2 [dv=1 slice=off]</code></i></dt>
+<dd><p>Объединяет данные из нескольких текстовых файлов. Имена файлов определяются вызовом функции <code>sprintf(fname,templ,val);</code>, где <var>val</var> меняется от <var>v1</var> до <var>v2</var> с шагом <var>dv</var>. Данные загружаются один за другим в один и тот же срез данных (при <var>slice</var>=<code>off</code>) или срез-за-срезом (при <var>slice</var>=<code>on</code>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-readall-2"></a><u>Команда MGL:</u> <b>readall</b><i> dat 'templ' <code>[slice=off]</code></i></dt>
+<dd><p>Объединяет данные из нескольких текстовых файлов, чьи имена удовлетворяют шаблону <var>templ</var> (например, <var>templ</var>=<code>&quot;t_*.dat&quot;</code>). Данные загружаются один за другим в один и тот же срез данных (при <var>slice</var>=<code>off</code>) или срез-за-срезом (при <var>slice</var>=<code>on</code>).
+</p></dd></dl>
+
+<a name="index-save"></a>
+<p><a name="save"></a>
+</p><dl>
+<dt><a name="index-save-1"></a><u>Команда MGL:</u> <b>save</b><i> dat 'fname'</i></dt>
+<dd><p>Сохраняет массив данных в текстовый файл.
+</p></dd></dl>
+
+<a name="index-readhdf"></a>
+<p><a name="readhdf"></a>
+</p><dl>
+<dt><a name="index-readhdf-1"></a><u>Команда MGL:</u> <b>readhdf</b><i> dat 'fname' 'dname'</i></dt>
+<dd><p>Читает массив с именем <var>dname</var> из HDF5 или HDF4 файла <var>fname</var>.
+</p></dd></dl>
+
+<a name="index-savehdf"></a>
+<p><a name="savehdf"></a>
+</p><dl>
+<dt><a name="index-savehdf-1"></a><u>Команда MGL:</u> <b>savehdf</b><i> dat 'fname' 'dname'</i></dt>
+<dd><p>Сохраняет массив под именем <var>dname</var> в HDF5 или HDF4 файл <var>fname</var>.
+</p></dd></dl>
+
+<a name="index-import"></a>
+<p><a name="import"></a>
+</p><dl>
+<dt><a name="index-import-1"></a><u>Команда MGL:</u> <b>import</b><i> dat 'fname' 'sch' [<code>v1=0 v2=1</code>]</i></dt>
+<dd><p>Читает данные из растрового файла. RGB значения пикселов преобразуются в число в диапазоне [<var>v1</var>, <var>v2</var>] используя цветовую схему <var>sch</var> (see section <a href="#Color-scheme">Цветовая схема</a>).
+</p></dd></dl>
+
+<a name="index-export"></a>
+<p><a name="export"></a>
+</p><dl>
+<dt><a name="index-export-1"></a><u>Команда MGL:</u> <b>export</b><i> dat 'fname' 'sch' [<code>v1=0 v2=0</code>]</i></dt>
+<dd><p>Сохраняет данные в растровый файл. Числовые значения, нормированные в диапазон [<var>v1</var>, <var>v2</var>], преобразуются в RGB значения пикселов, используя цветовую схему <var>sch</var> (see section <a href="#Color-scheme">Цветовая схема</a>). Если <var>v1</var>&gt;=<var>v2</var>, то значения <var>v1</var>, <var>v2</var> определяются автоматически как минимальное и максимальное значение данных.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Make-another-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#File-I_002fO" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Change-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_043e_0437_0434_0430_043d_0438e-_043d_043e_0432_044b_0445-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">1.21 Создание новых данных</h2>
+
+<a name="index-combine"></a>
+<p><a name="combine"></a>
+</p><dl>
+<dt><a name="index-combine-1"></a><u>Команда MGL:</u> <b>combine</b><i> res adat bdat</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> прямое произведение массивов (наподобие, res[i,j] = adat[i]*bdat[j] и т.д.).
+</p></dd></dl>
+
+<a name="index-evaluate"></a>
+<p><a name="evaluate"></a>
+</p><dl>
+<dt><a name="index-evaluate-1"></a><u>Команда MGL:</u> <b>evaluate</b><i> res dat idat [<code>norm=on</code>]</i></dt>
+<dt><a name="index-evaluate-2"></a><u>Команда MGL:</u> <b>evaluate</b><i> res dat idat jdat [<code>norm=on</code>]</i></dt>
+<dt><a name="index-evaluate-3"></a><u>Команда MGL:</u> <b>evaluate</b><i> res dat idat jdat kdat [<code>norm=on</code>]</i></dt>
+<dd><p>Возвращает массив данных <var>res</var>, полученный в результате интерполяции исходного массива в точках других массивов (например, res[i,j]=dat[idat[i,j],jdat[i,j]]). Размеры массивов <var>idat</var>, <var>jdat</var>, <var>kdat</var> должны совпадать. Координаты в <var>idat</var>, <var>jdat</var>, <var>kdat</var> полагаются нормированными в диапазон [0,1] (при <var>norm</var>=<code>on</code>) или в диапазоны [0,nx], [0,ny], [0,nz] соответственно.
+</p></dd></dl>
+
+<a name="index-hist"></a>
+<p><a name="hist"></a>
+</p><dl>
+<dt><a name="index-hist-1"></a><u>Команда MGL:</u> <b>hist</b><i> res dat <code>num v1 v2 [nsub=0]</code></i></dt>
+<dt><a name="index-hist-2"></a><u>Команда MGL:</u> <b>hist</b><i> res dat wdat <code>num v1 v2 [nsub=0]</code></i></dt>
+<dd><p>Возвращает распределение (гистограмму) <var>res</var> из <var>num</var> точек от значений массива <var>dat</var> в диапазоне [<var>v1</var>, <var>v2</var>]. Массив <var>wdat</var> задает веса элементов (все веса равны 1 если <var>wdat</var> не указан). Параметр <var>nsub</var> задает число дополнительных точек интерполяции (для сглаживания получившейся гистограммы).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-hist-3"></a><u>Команда MGL:</u> <b>hist</b><i> res xdat adat</i></dt>
+<dt><a name="index-hist-4"></a><u>Команда MGL:</u> <b>hist</b><i> res xdat ydat adat</i></dt>
+<dt><a name="index-hist-5"></a><u>Команда MGL:</u> <b>hist</b><i> res xdat ydat zdat adat</i></dt>
+<dd><p>Возвращает распределение (гистограмму) <var>res</var> от значений массива <var>adat</var>, параметрически зависящего от координат {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} в диапазоне осей координат. Массив <var>adat</var> играет роль веса точки. Число точек в результате <var>res</var> &ndash; максимум из размера <var>res</var> и 100.
+</p></dd></dl>
+
+
+<a name="index-momentum"></a>
+<p><a name="momentum"></a>
+</p><dl>
+<dt><a name="index-momentum-1"></a><u>Команда MGL:</u> <b>momentum</b><i> res dat 'how' ['dir'='z']</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> момент (1d массив) данных <var>dat</var> вдоль направления <var>dir</var>. Строка <var>how</var> определяет тип момента. Момент определяется как
+res_k = \sum_ij how(x_i,y_j,z_k) dat_ij/ \sum_ij a_ij
+если <var>dir</var>=&lsquo;<samp>z</samp>&rsquo; и т.д. Координаты &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; &ndash; индексы массива в диапазоне [0,1].
+</p></dd></dl>
+
+<a name="index-sum"></a>
+<p><a name="sum"></a>
+</p><dl>
+<dt><a name="index-sum-1"></a><u>Команда MGL:</u> <b>sum</b><i> res dat 'dir'</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> результат суммирования <var>dat</var> вдоль направления(ий) <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-max"></a>
+<p><a name="max"></a>
+</p><dl>
+<dt><a name="index-max-1"></a><u>Команда MGL:</u> <b>max</b><i> res dat 'dir'</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> максимальное значение <var>dat</var> вдоль направления(ий) <var>dir</var>.
+Gets array which is the maximal data values in given direction or direction(s).
+</p></dd></dl>
+
+<a name="index-min"></a>
+<p><a name="min"></a>
+</p><dl>
+<dt><a name="index-min-1"></a><u>Команда MGL:</u> <b>min</b><i> res dat 'dir'</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> минимальное значение <var>dat</var> вдоль направления(ий) <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-resize"></a>
+<p><a name="resize"></a>
+</p><dl>
+<dt><a name="index-resize-1"></a><u>Команда MGL:</u> <b>resize</b><i> res dat <code>mx [my=1 mz=1]</code></i></dt>
+<dd><p>Возвращает массив данных <var>res</var> размером <var>mx</var>, <var>my</var>, <var>mz</var> со значениями полученными интерполяцией значений массива <var>dat</var>.
+</p></dd></dl>
+
+<a name="index-subdata"></a>
+<p><a name="subdata"></a>
+</p><dl>
+<dt><a name="index-subdata-1"></a><u>Команда MGL:</u> <b>subdata</b><i> res dat <code>xx [yy=: zz=:]</code></i></dt>
+<dd><p>Возвращает в <var>res</var> подмассив массива данных <var>dat</var> с фиксированными значениями индексов с положительными значениями. Например, <code>subdata a b : 2</code> выделяет третью строку (индексы начинаются с нуля), <code>subdata a b 4 :</code> выделяет 5-ую колонку, <code>subdata a b : : 3</code> выделяет 4-ый срез и т.д.
+</p></dd></dl>
+
+<a name="index-trace"></a>
+<p><a name="trace"></a>
+</p><dl>
+<dt><a name="index-trace-1"></a><u>Команда MGL:</u> <b>trace</b><i> res dat</i></dt>
+<dd><p>Возвращает массив <var>ref</var> диагональных элементов <var>dat</var>[i,i] (для 2D данных) или <var>dat</var>[i,i,i] (для 3D данных) где i=0...nx-1. В 1D случае возвращается сам массив данных <var>dat</var>. Размеры массива данных должен быть <var>dat</var>.ny, <var>dat</var>.nz &gt;= <var>dat</var>.nx или <var>dat</var>.ny, <var>dat</var>.nz = 1.
+</p></dd></dl>
+
+<a name="index-transform"></a>
+<p><a name="transform"></a>
+</p><dl>
+<dt><a name="index-transform-1"></a><u>Команда MGL:</u> <b>transform</b><i> dat 'type' real imag</i></dt>
+<dd><p>Выполняет интегральное преобразование комплексных данных <var>real</var>, <var>imag</var> в выбранном направлении и возвращает модуль результата в <var>res</var>. Порядок и тип преобразований задается строкой <var>type</var>: первый символ для x-направления, второй для y-направления, третий для z-направления. Возможные символы: &lsquo;<samp>f</samp>&rsquo; &ndash; прямое преобразование Фурье, &lsquo;<samp>i</samp>&rsquo; &ndash; обратное преобразование Фурье, &lsquo;<samp>s</samp>&rsquo; &ndash; синус преобразование, &lsquo;<samp>c</samp>&rsquo; &ndash; косинус преобразование, &lsquo;<samp>h</samp>&rsquo; &ndash; преобразование Ханкеля, &lsquo;<samp>n</samp>&rsquo; или &lsquo;<samp> </samp>&rsquo; &ndash; нет преобразования.
+</p></dd></dl>
+
+<a name="index-transforma"></a>
+<p><a name="transforma"></a>
+</p><dl>
+<dt><a name="index-transforma-1"></a><u>Команда MGL:</u> <b>transforma</b><i> dat 'type' ampl phase</i></dt>
+<dd><p>Аналогично предыдущему с заданными амплитудой <var>ampl</var> и фазой <var>phase</var> комплексных чисел.
+</p></dd></dl>
+
+<a name="index-stfad"></a>
+<p><a name="stfad"></a>
+</p><dl>
+<dt><a name="index-stfad-1"></a><u>Команда MGL:</u> <b>stfad</b><i> res real imag <code>dn</code> ['dir'='x']</i></dt>
+<dd><p>Выполняет оконное преобразование Фурье длиной <var>dn</var> для комплексных данных <var>real</var>, <var>imag</var> и возвращает модуль результата в <var>res</var>. Например, для <var>dir</var>=&lsquo;<samp>x</samp>&rsquo; результат будет иметь размер {int(nx/dn), dn, ny} и будет равен <em>res[i,j,k]=|\sum_d^dn exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn</em>.
+</p></dd></dl>
+
+<a name="index-pde"></a>
+<p><a name="pde"></a>
+</p><dl>
+<dt><a name="index-pde-1"></a><u>Команда MGL:</u> <b>pde</b><i> res 'ham' ini_re ini_im [<code>dz=0.1 k0=100</code>]</i></dt>
+<dd><p>Решает уравнение в частных производных du/dz = i*k0*<var>ham</var>(p,q,x,y,z,|u|)[u], где p=-i/k0*d/dx, q=-i/k0*d/dy &ndash; псевдо-дифференциальные операторы. Параметры <var>ini_re</var>, <var>ini_im</var> задают начальное распределение поля. Координаты в уравнении и в решении полагаются в диапазоне осей координат. Замечу, что внутри этот диапазон увеличивается в 3/2 раза для уменьшения отражения от границ расчетного интервала. Параметр <var>dz</var> задает шаг по эволюционной координате z. В данный момент использован упрощенный алгоритм, когда все &ldquo;смешанные&rdquo; члена (типа &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) исключаются. Например, в 2D случае это функции типа <em>ham = f(p,z) + g(x,z,u)</em>. При этом допускаются коммутирующие комбинации (типа &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy). Переменная &lsquo;<samp>u</samp>&rsquo; используется для обозначения амплитуды поля |u|. Это позволяет решать нелинейные задачи &ndash; например, нелинейное уравнение Шредингера <code>ham='p^2+q^2-u^2'</code>. Также можно указать мнимую часть для поглощения (типа <code>ham = 'p^2+i*x*(x&gt;0)'</code>), но только если зависимость от &lsquo;<samp>i</samp>&rsquo; линейная, т.е. <em>ham = hre+i*him</em>. См. раздел <a href="mgl_ru_3.html#PDE-sample">PDE &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-ray"></a>
+<p><a name="ray"></a>
+</p><dl>
+<dt><a name="index-ray-1"></a><u>Команда MGL:</u> <b>ray</b><i> res 'ham' <code>x0 y0 z0 p0 q0 v0 [dt=0.1 tmax=10]</code></i></dt>
+<dd><p>Решает систему геометрооптических уравнений d<em>r</em>/dt = d <var>ham</var>/d<em>p</em>, d<em>p</em>/dt = -d <var>ham</var>/d<em>r</em>. Это гамильтоновы уравнения для траектории частицы в 3D случае. Гамильтониан <var>ham</var> может зависеть от координат &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, импульсов &lsquo;<samp>p</samp>&rsquo;=px, &lsquo;<samp>q</samp>&rsquo;=py, &lsquo;<samp>v</samp>&rsquo;=pz и времени &lsquo;<samp>t</samp>&rsquo;: <em>ham = H(x,y,z,p,q,v,t)</em>. Начальная точка (при <code>t=0</code>) задается переменными {<var>x0</var>, <var>y0</var>, <var>z0</var>, <var>p0</var>, <var>q0</var>, <var>v0</var>}. Параметры <var>dt</var> и <var>tmax</var> задают шаг и максимальное время интегрирования. Результат <var>res</var> &ndash; массив {x,y,z,p,q,v,t} с размером {7 * int(<var>tmax</var>/<var>dt</var>+1) }. См. раздел <a href="mgl_ru_3.html#Beam-tracing-sample">Beam tracing &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-qo2d"></a>
+<p><a name="qo2d"></a>
+</p><dl>
+<dt><a name="index-qo2d-1"></a><u>Команда MGL:</u> <b>qo2d</b><i> res 'ham' ini_re ini_im ray [<code>r=1 k0=100</code> xx=0 yy=0]</i></dt>
+<dd><p>Решает уравнение в частных производных du/dt = i*k0*<var>ham</var>(p,q,x,y,|u|)[u] в сопровождающей системе координат, где p=-i/k0*d/dx, q=-i/k0*d/dy &ndash; псевдо-дифференциальные операторы. Параметры <var>ini_re</var>, <var>ini_im</var> задают начальное распределение поля. Параметр <var>ray</var> задает опорный луч для сопровождающей системы координат. Можно использовать луч найденный с помощью <code>ray</code>. Опорный луч должен быть достаточно гладкий, чтобы система координат была однозначной и для исключения ошибок интегрирования. Если массивы <var>xx</var> и <var>yy</var> указаны, то в них записываются декартовы координаты для каждой точки найденного решения. См. также <a href="#pde">pde</a>. См. раздел <a href="mgl_ru_3.html#Beam-tracing-sample">Beam tracing &ndash; пример использования</a>, для примеров кода и графика. 
+</p></dd></dl>
+
+<a name="index-jacobian"></a>
+<p><a name="jacobian"></a>
+</p><dl>
+<dt><a name="index-jacobian-1"></a><u>Команда MGL:</u> <b>jacobian</b><i> res xdat ydat [zdat=0]</i></dt>
+<dd><p>Вычисляет якобиан преобразования {i,j,k} в {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>}, где координаты {i,j,k} полагаются нормированными в интервал [0,1]. Якобиан находится по формуле det||<em>dr_\alpha/d\xi_\beta</em>||, где <em>r</em>={<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} и <em>\xi</em>={i,j,k}. Все размерности всех массивов должны быть одинаковы. Данные должны быть трехмерными если указаны все 3 массива {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} или двумерными если только 2 массива {<var>xdat</var>,<var>ydat</var>}.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Change-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Make-another-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Operators" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_0437_043ce_043de_043d_0438e-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">1.22 Изменение данных</h2>
+
+<p>Эти команды изменяют данные вдоль заданного направления(ий) типа например дифференцирования, интегрирования и т.д. Направление указывается строкой <var>dir</var>, которая может содержать символы &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; и/или &lsquo;<samp>z</samp>&rsquo;, вдоль которых изменения будут применены.
+</p>
+<a name="index-cumsum"></a>
+<p><a name="cumsum"></a>
+</p><dl>
+<dt><a name="index-cumsum-1"></a><u>Команда MGL:</u> <b>cumsum</b><i> dat 'dir'</i></dt>
+<dd><p>Суммирует с накоплением в выбранном направлении(ях).
+</p></dd></dl>
+<a name="index-integrate"></a>
+<p><a name="integrate"></a>
+</p><dl>
+<dt><a name="index-integrate-1"></a><u>Команда MGL:</u> <b>integrate</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет интегрирование (подобно суммированию с накоплением) в выбранном направлении(ях).
+</p></dd></dl>
+<a name="index-diff"></a>
+<p><a name="diff"></a>
+</p><dl>
+<dt><a name="index-diff-1"></a><u>Команда MGL:</u> <b>diff</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет дифференцирование в выбранном направлении(ях).
+</p></dd></dl>
+<dl>
+<dt><a name="index-diff-2"></a><u>Команда MGL:</u> <b>diff</b><i> dat xdat ydat [zdat=0]</i></dt>
+<dd><p>Выполняет дифференцирование данных <var>dat</var>, параметрически зависящих от координат, в направлении <var>xdat</var> с <var>ydat</var>, <var>zdat</var>=constant. Параметр <var>zdat</var> может быть опущен, что соответствует 2D случаю. Используются следующие формулы (2D случай): <em>da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j)</em>, где <em>a_i=da/di, a_j=da/dj</em> обозначает дифференцирование вдоль 1-ой и 2-ой размерности. Похожие формулы используются и в 3D случае. Порядок аргументов можно менять &ndash; например, если данные a(i,j) зависят от координат {x(i,j), y(i,j)}, то обычная производная по &lsquo;<samp>x</samp>&rsquo; будет равна <code>diff a x y</code>, а обычная производная по &lsquo;<samp>y</samp>&rsquo; будет равна <code>diff a y x</code>.
+</p></dd></dl>
+
+<a name="index-diff2"></a>
+<p><a name="diff2"></a>
+</p><dl>
+<dt><a name="index-diff2-1"></a><u>Команда MGL:</u> <b>diff2</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет двойное дифференцирование (как в операторе Лапласа) в выбранном направлении(ях).
+</p></dd></dl>
+
+<a name="index-sinfft"></a>
+<p><a name="sinfft"></a>
+</p><dl>
+<dt><a name="index-sinfft-1"></a><u>Команда MGL:</u> <b>sinfft</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет синус преобразование в выбранном направлении(ях). Синус преобразование есть <em>\sum a_i \sin(k i)</em>.
+</p></dd></dl>
+<a name="index-cosfft"></a>
+<p><a name="cosfft"></a>
+</p><dl>
+<dt><a name="index-cosfft-1"></a><u>Команда MGL:</u> <b>cosfft</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет косинус преобразование в выбранном направлении(ях). Синус преобразование есть <em>\sum a_i \cos(k i)</em>.
+</p></dd></dl>
+<a name="index-hankel"></a>
+<p><a name="hankel"></a>
+</p><dl>
+<dt><a name="index-hankel-1"></a><u>Команда MGL:</u> <b>hankel</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет преобразование Ханкеля в выбранном направлении(ях). Преобразование Ханкеля есть <em>\sum a_i J_0(k i)</em>.
+</p></dd></dl>
+
+
+<a name="index-swap"></a>
+<p><a name="swap"></a>
+</p><dl>
+<dt><a name="index-swap-1"></a><u>Команда MGL:</u> <b>swap</b><i> dat 'dir'</i></dt>
+<dd><p>Меняет местами левую и правую части данных в выбранном направлении(ях). Полезно для отображения результата FFT.
+</p></dd></dl>
+<a name="index-roll"></a>
+<p><a name="roll"></a>
+</p><dl>
+<dt><a name="index-roll-1"></a><u>Команда MGL:</u> <b>roll</b><i> dat 'dir' num</i></dt>
+<dd><p>Сдвигает данные на <var>num</var> ячеек в выбранном направлении(ях). Соответствует замене индекса на <var>i</var>-&gt;(<var>i</var>+<var>num</var>)%<var>n</var>.
+</p></dd></dl>
+
+<a name="index-mirror"></a>
+<p><a name="mirror"></a>
+</p><dl>
+<dt><a name="index-mirror-1"></a><u>Команда MGL:</u> <b>mirror</b><i> dat 'dir'</i></dt>
+<dd><p>Отражает данные в выбранном направлении(ях). Соответствует замене индекса на <var>i</var>-&gt;<var>n</var>-<var>i</var>.
+</p></dd></dl>
+
+<a name="index-sew"></a>
+<p><a name="sew"></a>
+</p><dl>
+<dt><a name="index-sew-1"></a><u>Команда MGL:</u> <b>sew</b><i> dat ['dir'='xyz' <code>da=2*pi</code>]</i></dt>
+<dd><p>Удаляет скачки данных (например, скачки фазы после обратных тригонометрических функций) с периодом <var>da</var> в выбранном направлении(ях).
+</p></dd></dl>
+
+<a name="index-smooth"></a>
+<p><a name="smooth"></a>
+</p><dl>
+<dt><a name="index-smooth-1"></a><u>Команда MGL:</u> <b>smooth</b><i> data <code>type</code> ['dir'='xyz']</i></dt>
+<dd><p>Сглаживает данные в выбранном направлении(ях) методом <var>type</var>. Сейчас поддерживаются 4 метода: <code>0</code> ничего не делает, <code>1</code> линейное усреднение по 3 точкам, <code>2</code> линейное усреднение по 5 точкам, <code>3</code> квадратичное усреднение по 5 точкам.
+</p></dd></dl>
+
+<a name="index-envelop"></a>
+<p><a name="envelop"></a>
+</p><dl>
+<dt><a name="index-envelop-1"></a><u>Команда MGL:</u> <b>envelop</b><i> dat ['dir'='x']</i></dt>
+<dd><p>Находит огибающую данных в выбранном направлении. Только одно направление может быть выбрано за раз.
+</p></dd></dl>
+
+<a name="index-normsl"></a>
+<p><a name="normsl"></a>
+</p><dl>
+<dt><a name="index-normsl-1"></a><u>Команда MGL:</u> <b>normsl</b><i> dat <code>v1 v2</code> ['dir'='z' <code>keep=on sym=off</code>]</i></dt>
+<dd><p>Нормирует данные срез-за-срезом в выбранном направлении <var>dir</var> в интервал [<var>v1</var>,<var>v2</var>]. Если <var>sym</var>=<code>on</code>, то используется симметричный интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Если <var>keep</var>=<code>on</code>, то максимальное значение k-го среза ограничено величиной
+<em>\sqrt\sum a_ij(k)/\sum a_ij(0)</em>.
+</p></dd></dl>
+
+<a name="index-norm"></a>
+<p><a name="norm"></a>
+</p><dl>
+<dt><a name="index-norm-1"></a><u>Команда MGL:</u> <b>norm</b><i> dat <code>v1 v2 [sym=off dim=0]</code></i></dt>
+<dd><p>Нормирует данные в интервал [<var>v1</var>,<var>v2</var>]. Если <var>sym</var>=<code>on</code>, то используется симметричный интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Изменения применяются только к срезам &gt;=<var>dim</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Operators"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Change-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Program-flow" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_043fe_0440_0430_0442_043e_0440_044b"></a>
+<h2 class="section">1.23 Операторы</h2>
+
+<a name="index-multo"></a>
+<p><a name="multo"></a>
+</p><dl>
+<dt><a name="index-multo-1"></a><u>Команда MGL:</u> <b>multo</b><i> dat dat2</i></dt>
+<dd><p>Поэлементно умножает массив <var>dat</var> на <var>dat2</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-multo-2"></a><u>Команда MGL:</u> <b>multo</b><i> dat <code>val</code></i></dt>
+<dd><p>Умножает каждый элемент на число.
+</p></dd></dl>
+
+<a name="index-divto"></a>
+<p><a name="divto"></a>
+</p><dl>
+<dt><a name="index-divto-1"></a><u>Команда MGL:</u> <b>divto</b><i> dat dat2</i></dt>
+<dd><p>Поэлементно делит массив <var>dat</var> на <var>dat2</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-divto-2"></a><u>Команда MGL:</u> <b>divto</b><i> dat <code>val</code></i></dt>
+<dd><p>Делит каждый элемент на число.
+</p></dd></dl>
+
+<a name="index-addto"></a>
+<p><a name="addto"></a>
+</p><dl>
+<dt><a name="index-addto-1"></a><u>Команда MGL:</u> <b>addto</b><i> dat dat2</i></dt>
+<dd><p>Поэлементно прибавляет <var>dat2</var> к массиву <var>dat</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-addto-2"></a><u>Команда MGL:</u> <b>addto</b><i> dat <code>val</code></i></dt>
+<dd><p>Прибавляет число к каждому элементу.
+</p></dd></dl>
+
+<a name="index-subto"></a>
+<p><a name="subto"></a>
+</p><dl>
+<dt><a name="index-subto-1"></a><u>Команда MGL:</u> <b>subto</b><i> dat dat2</i></dt>
+<dd><p>Поэлементно вычитает <var>dat2</var> из массива <var>dat</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-subto-2"></a><u>Команда MGL:</u> <b>subto</b><i> dat <code>val</code></i></dt>
+<dd><p>Вычитает число из каждого элемента.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Program-flow"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Operators" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Command-options" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043eg_0440_0430_043c_043c_0438_0440_043e_0432_0430_043d_0438e"></a>
+<h2 class="section">1.24 Программирование</h2>
+
+<p>Эти команды управляют порядком выполнения других команд (условия, циклы, подпрограммы), (пере-)определяют аргументы скрипта и пр.
+</p>
+<a name="index-chdir"></a>
+<p><a name="chdir"></a>
+</p><dl>
+<dt><a name="index-chdir-1"></a><u>Команда MGL:</u> <b>chdir</b><i> 'path'</i></dt>
+<dd><p>Переходит в папку <var>path</var>.
+</p></dd></dl>
+
+<a name="index-define"></a>
+<p><a name="define"></a>
+</p><dl>
+<dt><a name="index-define-1"></a><u>Команда MGL:</u> <b>define</b><i> $N smth</i></dt>
+<dd><p>Задает <var>N</var>-ый аргумент скрипта равным <var>smth</var>. Отмечу, что <var>smth</var> используется как есть (с символами &lsquo;<samp>'</samp>&rsquo; если присутствуют). Выполняется только подстановка других макроопределений $0...$9, $a...$z. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<dl>
+<dt><a name="index-define-2"></a><u>Команда MGL:</u> <b>define</b><i> name smth</i></dt>
+<dd><p>Определяет константу (скаляр) с именем <code>name</code> и числовым значением <code>smth</code>. Позднее она может быть использована как обычное число.
+</p></dd></dl>
+<a name="index-defchr"></a>
+<p><a name="defchr"></a>
+</p><dl>
+<dt><a name="index-defchr-1"></a><u>Команда MGL:</u> <b>defchr</b><i> $N smth</i></dt>
+<dd><p>Задает <var>N</var>-ый аргумент скрипта равным символу с UTF кодом <var>smth</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<a name="index-defnum"></a>
+<p><a name="defnum"></a>
+</p><dl>
+<dt><a name="index-defnum-1"></a><u>Команда MGL:</u> <b>defnum</b><i> $N smth</i></dt>
+<dd><p>Задает <var>N</var>-ый аргумент скрипта равным числовому значению <var>smth</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<a name="index-defpal"></a>
+<p><a name="defpal"></a>
+</p><dl>
+<dt><a name="index-defpal-1"></a><u>Команда MGL:</u> <b>defpal</b><i> $N smth</i></dt>
+<dd><p>Задает <var>N</var>-ый аргумент скрипта равным символу палитры с индексом, найденным из <var>smth</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+
+<a name="index-call"></a>
+<p><a name="call"></a>
+</p><dl>
+<dt><a name="index-call-1"></a><u>Команда MGL:</u> <b>call</b><i> 'fname' [ARG1 ARG2 ... ARG9]</i></dt>
+<dd><p>Переходит к выполнению (вызывает) подпрограммы <var>fname</var> (или внешнего скрипта, если функция не была найдена). Опциональные аргументы передаются в подпрограмму. См. также <a href="#func">func</a>.
+</p></dd></dl>
+<a name="index-func"></a>
+<p><a name="func"></a>
+</p><dl>
+<dt><a name="index-func-1"></a><u>Команда MGL:</u> <b>func</b><i> 'fname' [narg=0]</i></dt>
+<dd><p>Определяет подпрограмму с именем <var>fname</var> и задает число требуемых аргументов. Аргументы будут помещены в параметры скрипта $1, $2, ... $9. Отмечу, что выполнение основной программы должно быть остановлено до начала определений подпрограмм. См. также <a href="#stop">stop</a>,  <a href="#return">return</a>.
+</p></dd></dl>
+<a name="index-return"></a>
+<p><a name="return"></a>
+</p><dl>
+<dt><a name="index-return-1"></a><u>Команда MGL:</u> <b>return</b></dt>
+<dd><p>Возвращается из подпрограммы.
+</p></dd></dl>
+
+
+<a name="index-if"></a>
+<p><a name="if"></a>
+</p><dl>
+<dt><a name="index-if-1"></a><u>Команда MGL:</u> <b>if</b><i> dat 'cond'</i></dt>
+<dd><p>Начинает блок команд, выполняемый если каждый элемент <var>dat</var> удовлетворяет условию <var>cond</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-if-2"></a><u>Команда MGL:</u> <b>if</b><i> <code>val</code></i></dt>
+<dd><p>Начинает блок команд, выполняемый если <code>val</code> не ноль.
+</p></dd></dl>
+<a name="index-elseif"></a>
+<p><a name="elseif"></a>
+</p><dl>
+<dt><a name="index-elseif-1"></a><u>Команда MGL:</u> <b>elseif</b><i> dat 'cond'</i></dt>
+<dd><p>Начинает блок команд, выполняемый если предыдущий <code>if</code> или <code>elseif</code> не был выполнен и каждый элемент <var>dat</var> удовлетворяет условию <var>cond</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-elseif-2"></a><u>Команда MGL:</u> <b>elseif</b><i> <code>val</code></i></dt>
+<dd><p>Начинает блок команд, выполняемый если предыдущий <code>if</code> или <code>elseif</code> не был выполнен и <code>val</code> не ноль.
+</p></dd></dl>
+<a name="index-else"></a>
+<p><a name="else"></a>
+</p><dl>
+<dt><a name="index-else-1"></a><u>Команда MGL:</u> <b>else</b></dt>
+<dd><p>Начинает блок команд, выполняемый если предыдущий <code>if</code> или <code>elseif</code> не был выполнен.
+</p></dd></dl>
+<a name="index-endif"></a>
+<p><a name="endif"></a>
+</p><dl>
+<dt><a name="index-endif-1"></a><u>Команда MGL:</u> <b>endif</b></dt>
+<dd><p>Заканчивает определение блока <code>if/elseif/else</code>.
+</p></dd></dl>
+
+<a name="index-for"></a>
+<p><a name="for"></a>
+</p><dl>
+<dt><a name="index-for-1"></a><u>Команда MGL:</u> <b>for</b><i> $N <code>v1 v2 [dv=1]</code></i></dt>
+<dd><p>Начинает блок команд, выполняемый в цикле с $<var>N</var>-ым аргументом изменяющимся от <var>v1</var> до <var>v2</var> с шагом <var>dv</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<dl>
+<dt><a name="index-for-2"></a><u>Команда MGL:</u> <b>for</b><i> $N dat</i></dt>
+<dd><p>Начинает блок команд, выполняемый в цикле с $<var>N</var>-ым аргументом пробегающим значения массива <var>dat</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<a name="index-next"></a>
+<p><a name="next"></a>
+</p><dl>
+<dt><a name="index-next-1"></a><u>Команда MGL:</u> <b>next</b></dt>
+<dd><p>Заканчивает блок цикла <code>for</code>.
+</p></dd></dl>
+
+<a name="index-once"></a>
+<p><a name="once"></a>
+</p><dl>
+<dt><a name="index-once-1"></a><u>Команда MGL:</u> <b>once</b><i> <code>val</code></i></dt>
+<dd><p>Определяет код (между <code>once on</code> и <code>once off</code>) который будет выполнен только один раз. Полезно для работы с большими данными в программах типа UDAV.
+</p></dd></dl>
+<a name="index-stop"></a>
+<p><a name="stop"></a>
+</p><dl>
+<dt><a name="index-stop-1"></a><u>Команда MGL:</u> <b>stop</b></dt>
+<dd><p>Останавливает выполнение скрипта.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Command-options"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Program-flow" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Suffixes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_043fc_0438_0438-_043a_043e_043c_0430_043d_0434"></a>
+<h2 class="section">1.25 Опции команд</h2>
+
+<p>Опции команд позволяют легко настроить вид отдельного графика не меняя глобальных настроек для все рисунка. Опции указываются после команды. Каждая опция отделяется от предыдущей символом &lsquo;<samp>;</samp>&rsquo;. Опции работают так, что запоминают текущие настройки рисунка, применяют собственные настройки, выполняют команду и возвращают глобальные настройки обратно. Поэтому использование опций для команд обработки данных или настройки графика бесполезно.
+</p>
+<p>Наиболее часто используемые опции &ndash; <code>xrange, yrange, zrange</code>, устанавливающие границы изменения осей координат (и тем самым автоматических массивов). Например, команда <code>plot y; xrange 0.1 0.9</code> построит кривую с x-координатой равно распределенной в интервале 0.1 ... 0.9, а не вдоль текущей оси x.
+</p>
+<p>Полный список опций:
+<a name="index-alpha-2"></a>
+<a name="index-alphadef-2"></a>
+</p><dl>
+<dt><a name="index-alpha-3"></a><u>Опция MGL:</u> <b>alpha</b><i> <code>val</code></i></dt>
+<dt><a name="index-alphadef-3"></a><u>Опция MGL:</u> <b>alphadef</b><i> <code>val</code></i></dt>
+<dd><p>Задает величину прозрачности поверхности. Значение должно быть в диапазоне [0, 1]. См. также <a href="#alphadef">alphadef</a>
+</p></dd></dl>
+<a name="index-ambient-2"></a>
+<dl>
+<dt><a name="index-ambient-3"></a><u>Опция MGL:</u> <b>ambient</b><i> <code>val</code></i></dt>
+<dd><p>Задает яркость фонового освещения. Значение должно быть в диапазоне [0, 1]. См. также <a href="#ambient">ambient</a>
+</p></dd></dl>
+<a name="index-crange-3"></a>
+<dl>
+<dt><a name="index-crange-4"></a><u>Опция MGL:</u> <b>crange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Задает границы цветовой шкалы. См. также <a href="#crange">crange</a>
+</p></dd></dl>
+<a name="index-xrange-3"></a>
+<dl>
+<dt><a name="index-xrange-4"></a><u>Опция MGL:</u> <b>xrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Задает границы изменения координаты x. См. также <a href="#xrange">xrange</a>
+</p></dd></dl>
+<a name="index-yrange-3"></a>
+<dl>
+<dt><a name="index-yrange-4"></a><u>Опция MGL:</u> <b>yrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Задает границы изменения координаты y. См. также <a href="#yrange">yrange</a>
+</p></dd></dl>
+<a name="index-zrange-3"></a>
+<dl>
+<dt><a name="index-zrange-4"></a><u>Опция MGL:</u> <b>zrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Задает границы изменения координаты z. См. также <a href="#zrange">zrange</a>
+</p></dd></dl>
+<a name="index-cut-4"></a>
+<dl>
+<dt><a name="index-cut-5"></a><u>Опция MGL:</u> <b>cut</b><i> <code>val</code></i></dt>
+<dd><p>Задает обрезание точек за пределами осей координат. См. также <a href="#cut">cut</a>
+</p></dd></dl>
+<a name="index-fontsize"></a>
+<dl>
+<dt><a name="index-fontsize-1"></a><u>Опция MGL:</u> <b>fontsize</b><i> <code>val</code></i></dt>
+<dd><p>Задает размер текста. См. также <a href="#font">font</a>
+</p></dd></dl>
+<a name="index-marksize-2"></a>
+<dl>
+<dt><a name="index-marksize-3"></a><u>Опция MGL:</u> <b>marksize</b><i> <code>val</code></i></dt>
+<dd><p>Задает размер маркеров. См. также <a href="#marksize">marksize</a>
+</p></dd></dl>
+<a name="index-meshnum-2"></a>
+<dl>
+<dt><a name="index-meshnum-3"></a><u>Опция MGL:</u> <b>meshnum</b><i> <code>val</code></i></dt>
+<dd><p>Задает ориентировочное число линий, стрелок, ячеек и пр. См. также <a href="#meshnum">meshnum</a>
+</p></dd></dl>
+<a name="index-legend-3"></a>
+<dl>
+<dt><a name="index-legend-4"></a><u>Опция MGL:</u> <b>legend</b><i> 'txt'</i></dt>
+<dd><p>Добавляет строку &rsquo;txt&rsquo; во внутренний массив записей легенды. Стиль линии и маркера аргумента последней вызванной команды построения <a href="#g_t1D-plotting">1D графики</a>. См. также <a href="#legend">legend</a>
+</p></dd></dl>
+
+<hr size="6">
+<a name="Suffixes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Command-options" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Utilities" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_0443_0444_0444_0438_043a_0441_044b-_043fe_0440e_043ce_043d_043d_044b_0445"></a>
+<h2 class="section">1.26 Суффиксы переменных</h2>
+
+<p>Суффиксы позволяют быстро получить числовую характеристику (размер, максимальное или минимальное значение, сумму элементов и т.д.) массива данных и использовать ее как число (скаляр) в аргументах. Суффиксы начинаются с точки &lsquo;<samp>.</samp>&rsquo; сразу после (без пробелов) имени переменной и временного массива. Например, <code>a.nx</code> даст размер массива <var>a</var> по оси х, <code>b(1).max</code> даст максимальное значение второй строки массива <var>b</var>, <code>(c(:,0)^2).sum</code> даст сумму квадратов элементов первой колонки массива <var>c</var> и т.д.
+</p>
+<p>Полный список суффиксов:
+</p><dl compact="compact">
+<dt> <strong>nx, ny, nz</strong></dt>
+<dd><p>Размер массива в направлении x, y, z соответственно.
+</p></dd>
+<dt> <strong>max</strong></dt>
+<dd><p>Максимальное значение массива.
+</p></dd>
+<dt> <strong>min</strong></dt>
+<dd><p>Минимальное значение массива.
+</p></dd>
+<dt> <strong>sum</strong></dt>
+<dd><p>Сумма элементов массива.
+</p></dd>
+<dt> <strong>a</strong></dt>
+<dd><p>Первый элемент массива (элемент с индексами 0,0,0).
+</p></dd>
+<dt> <strong>fst</strong></dt>
+<dd><p>Первое не нулевое значение массива.
+</p></dd>
+<dt> <strong>lst</strong></dt>
+<dd><p>Последнее не нулевое значение массива.
+</p></dd>
+<dt> <strong>mx, my, mz</strong></dt>
+<dd><p>Положение максимума в направлении x, y, z соответственно.
+</p></dd>
+<dt> <strong>ax, ay, az, aa</strong></dt>
+<dd><p>Положение центра масс в направлении x, y, z соответственно или среднее значение массива.
+</p></dd>
+<dt> <strong>wx, wy, wz, wa</strong></dt>
+<dd><p>Ширина в направлении x, y, z соответственно или дисперсия элементов массива.
+</p></dd>
+<dt> <strong>sx, sy, sz, sa</strong></dt>
+<dd><p>Асимметрия в направлении x, y, z соответственно или элементов массива.
+</p></dd>
+<dt> <strong>kx, ky, kz, ka</strong></dt>
+<dd><p>Эксцесс в направлении x, y, z соответственно или элементов массива.
+</p></dd>
+</dl>
+
+<hr size="6">
+<a name="Utilities"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Suffixes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0423_0442_0438_043b_0438_0442_044b-_0434_043bya-MGL"></a>
+<h2 class="section">1.27 Утилиты для MGL</h2>
+
+<p>MathGL содержит несколько программ для работы со скриптами MGL. Есть утилита для сохранения в растровое (<code>mgl2png</code>, <code>mgl2gif</code>) или векторное (<code>mgl2eps</code>, <code>mgl2svg</code>) изображения. Программа <code>mglview</code> показывает результат выполнения скрипта MGL и позволяет вращать и настраивать график. Также можно транслировать MGL скрипт в C++ файл с помощью программы <code>mgl2cpp</code>.
+</p>
+<p>Все эти программы имеют схожий набор аргументов. Первым идет имя скрипта, а вторым идет имя выходного файлы (может быть опущено), последние аргументы &ndash; опции скрипта и программы. К опциям относятся параметры скрипта (это <code>$0, $1, ... $9</code>) и настройки локали. Параметры скрипта имеют формат &lsquo;<samp>-Nval</samp>&rsquo;, где N=0,1...9 &ndash; номер параметра, val &ndash; его значние. Например, опция &lsquo;<samp>-1test</samp>&rsquo; заменит <code>$1</code> на &lsquo;<samp>test</samp>&rsquo; в скрипте. Опция -Lval устанавливает локаль в значение val. Например, &lsquo;<samp>-Lutf8</samp>&rsquo; будет использовать UTF-8 в скрипте.
+</p>
+<p>Также можно создавать анимированные изображения GIF или набор JPEG файлов с именами &lsquo;<samp>frameNNNN.jpg</samp>&rsquo; (где &lsquo;<samp>NNNN</samp>&rsquo; &ndash; номер кадра). Для этого в скрипте надо указать параметры анимации для каждого кадра (строками с коментариями <code>##a val</code> или опциями &lsquo;<samp>-Aval</samp>&rsquo;) или в цикле (строкой с комментарием <code>##с v1 v2 [dv]</code> или опцию &lsquo;<samp>-Cn1:n2</samp>&rsquo;), которые будут подставлены в качестве параметра <code>$0</code> при последовательном вызове скрипта. Для сохранения кадров в JPEG просто добавьте команду <code>write ''</code> в конце скрипта.
+</p>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_2.html b/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_2.html
new file mode 100644
index 0000000..efe2978
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_2.html
@@ -0,0 +1,1271 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: 2. MathGL examples</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: 2. MathGL examples">
+<meta name="keywords" content="Язык MGL для версии 1.11: 2. MathGL examples">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Examples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_1.html#Utilities" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru_1.html#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL-examples"></a>
+<h1 class="chapter">2. MathGL examples</h1>
+
+<p>This chapter contain information about basic and advanced MathGL, hints and samples for all types of graphics. I recommend you read first 2 sections one after another and at least look on &ldquo;Hints&rdquo; section. Also I recommend you to look at <a href="mgl_ru_1.html#General-concepts">Основные принципы</a>. Sample code for some of these examples can be found in <a href="http://mathgl.sf.net/pictures.html">http://mathgl.sf.net/pictures.html</a> and in <a href="mgl_ru_3.html#Samples">Примеры использования MathGL</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Basic-usage">2.1 Basic usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Advanced-usage">2.2 Advanced usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-handling">2.3 Data handling</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-plotting">2.4 Data plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Hints">2.5 Hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Basic-usage"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Examples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Basic-usage-1"></a>
+<h2 class="section">2.1 Basic usage</h2>
+
+<p>MGL script can be used by several manners. Each has positive and negative sides:
+</p><ul>
+<li>
+<em>The using of MGL in UDAV.</em>
+
+<p>Positive side is the possibility to view the plot at once and to modify it, rotate, zoom or switch on transparency or lighting) by hand or by mouse. Negative sides are: the need of X-terminal.
+</p>
+</li><li>
+<em>Direct writing to file in bitmap or vector format without creation of graphical window.</em>
+
+<p>Positive aspects are: batch processing of similar data set, for example, a set of resulting data files for different calculation parameters), running from the console program, including the cluster calculation), fast and automated drawing, saving pictures for further analysis, or demonstration). Negative sides are: the usage of the external program for picture viewing. Also, the data plotting is non-visual. So, you have to imagine the picture, view angles, lighting and so on) before the plotting. I recommend to use graphical window for determining the optimal parameters of plotting on the base of some typical data set. And later use these parameters for batch processing in console program.
+</p>
+<p>In this case you can use a set of programs: <code>mgl2png</code>, <code>mgl2gif</code>, <code>mgl2eps</code>, <code>mgl2svg</code> or <code>mglview</code> for viewing.
+</p></li></ul>
+
+<p>The simplest script is
+</p><pre class="verbatim">box         # draw bounding box
+axis        # draw axis
+fplot 'x^3' # draw some function
+</pre>
+<p>Just type it in UDAV and press F5. Also you can save it in text file &lsquo;<samp>test.mgl</samp>&rsquo; and type in the console <code>mgl2png test.mgl</code> what produce file &lsquo;<samp>test.mgl.png</samp>&rsquo; with resulting picture.
+</p>
+<hr size="6">
+<a name="Advanced-usage"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Basic-usage" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Subplots" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Advanced-usage-1"></a>
+<h2 class="section">2.2 Advanced usage</h2>
+
+<p>Now I show several non-obvious features of MGL: several subplots in a single picture, curvilinear coordinates, text printing and so on. Generally you may miss this section at first reading, but I don&rsquo;t recommend it.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Subplots">2.2.1 Subplots</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-grids">2.2.2 Axis and grids</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Curvilinear-coordinates">2.2.3 Curvilinear coordinates</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing-example">2.2.4 Text printing example</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Subplots"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Advanced-usage" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-grids" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Subplots-1"></a>
+<h3 class="subsection">2.2.1 Subplots</h3>
+
+<p>Let me demonstrate possibilities of axes transformation. MathGL has the following functions: <code>SubPlot</code>, <code>InPlot</code>, <code>Aspect</code> and <code>Rotate</code>, see section <a href="mgl_ru_1.html#Transformation-matrix">Матрица преобразования</a>). The order of their calling is strictly determined. First, one changes the position of axes in image area, functions <code>SubPlot</code> and <code>InPlot</code>). After that one may rotate the plot, function <code>Rotate</code>). Finally, one may change aspects of axes, function <code>Aspect</code>). The following code illustrates the aforesaid it:
+</p><pre class="verbatim">subplot 2 2 0:box
+text -1 1.1 'Just box' 'L'
+inplot 0.2 0.5 0.7 1:box
+text 0 1.2 'Inplot example'
+
+subplot 2 2 1
+rotate 60 40:aspect 1 1 1
+box:text 1 1 1.5 'rotate only' 'R'
+
+subplot 2 2 2
+rotate 60 40:aspect 1 1 2
+box:text 0 0 2 'aspect and rotate'
+
+subplot 2 2 3
+rotate 60 40:aspect 1 2 2
+box:text 0 0 1.5 'Aspect in other direction'
+</pre><p>Here I used function <code>text</code> for printing the text in arbitrary position of picture, see section <a href="mgl_ru_1.html#Text-printing">Вывод текста</a>). Text coordinates and size are connected with axes. However, text coordinates may be everywhere, including the outside the bounding box. I shall show its features later in See section <a href="#Text-printing-example">Text printing example</a>.
+</p>
+<p>Note that several commands can be placed in a string if they are separated by &lsquo;<samp>:</samp>&rsquo; symbol.
+</p>
+<div class="float">
+<img src="../png/sample1.png" alt="../png/sample1">
+
+</div><p><strong>Example of several subplots on the single picture.
+</strong>
+</p>
+<hr size="6">
+<a name="Axis-and-grids"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Subplots" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Curvilinear-coordinates" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-and-grids-1"></a>
+<h3 class="subsection">2.2.2 Axis and grids</h3>
+
+<p>MathGL library can draw not only the bounding box but also the axes, grids, labels and so on. The limits of axes and their origin (the point of intersection) are determined by function <code>axis</code>. Also you can use <code>xrange, yrange, zrange</code> functions (see section <a href="mgl_ru_1.html#Axis-settings">Параметры осей координат</a>). Ticks on axis are specified by functions <code>xtick, ytick, ztick, ttick</code>. First argument the direction for each change will be applied. Second argument gives the step between ticks (if positive) or gives the number of ticks on the axis (if negative) or set to use logarithmic ticks (if zero). Third argument gives numbers of sub-ticks between ticks (default is zero). Last argument define the initial ticks position.
+</p>
+<p>Function <code>Axis</code> draws axes. Its textual string shows in which directions the axis or axes will be drawn (by default <code>'xyz'</code>, function draws axes in all directions). Function <code>Grid</code> draws grid perpendicularly to specified directions. Example of axes and grid drawing is:
+</p><pre class="verbatim">subplot 2 2 0
+xtick 0.4 3     # sets tick step to 0.5
+ytick 0.4 3     # and draws 3 subticks
+box             # should be after the ticks change
+axis 'xy': grid
+text 0 1.3 1 'axis and grid'
+
+xtick -5: ytick -5  # restore back
+subplot 2 2 1:rotate 60 40
+origin 0 0 0
+axis
+xlabel 'x' 1
+ylabel 'y' 1
+zlabel 'z' 1
+text 0 0 1.5 'axis and labels'
+
+subplot 2 2 2:rotate 60 40
+xtick 0.2: ytick 0.2: ztick 0.2 # too low step of ticks
+origin -1 -1 -1
+axis:grid
+text 0 0 1.5 'shift origin and add grid'
+text 0 0 1.2 '(note, too many ticks)'
+
+subplot 2 2 3:rotate 60 40
+xtick -6: ytick -6  # decrease the number of ticks
+axis 'yz'
+ylabel 'y axis'
+zlabel 'z axis'
+text 0 0 1.5 'remove x axis, and'
+text 0 0 1.2 'decrease number of ticks'
+</pre>
+<p>This example shows the importance of the correct choosing of the number of ticks on axis. If tick step is too small then its text may overlap and becomes unreadable. This code has the example of <code>Label</code> function. It draws label for axis in specified direction. The text position on axis is specified by third argument of <code>Label</code> function. If it is positive then then text is drawn near the axis maximum, if negative then the same takes place near the minimum of axis, if zero - then at the center of axis.
+</p>
+<div class="float">
+<img src="../png/sample2.png" alt="../png/sample2">
+
+</div><p><strong>Example of setting up axis range and axis ticks.
+</strong>
+</p>
+<hr size="6">
+<a name="Curvilinear-coordinates"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-grids" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing-example" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Curvilinear-coordinates-1"></a>
+<h3 class="subsection">2.2.3 Curvilinear coordinates</h3>
+
+
+<p>Now let use curvilinear coordinates. In difference from other systems of plot creation, MathGL uses textual formulas for connection of the old (data) and new (output) coordinates. This allows one to plot in arbitrary coordinates. The following code plots the line <var>y</var>=0, <var>z</var>=0 in Cartesian, polar, parabolic and spiral coordinates:
+</p><pre class="verbatim">new x 50: new y 50: new z 50
+fill y 0.5 0.5: fill x -1 1 # creates data arrays
+origin -1 1 -1
+
+subplot 2 2 0:rotate 60 40
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'cartesian'
+
+subplot 2 2 1:rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'cylindrical'
+
+subplot 2 2 2:rotate 60 40
+axis '2*y*x' 'y*y - x*x' ''
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'parabolic'
+
+subplot 2 2 3:rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'spiral'
+</pre>
+<div class="float">
+<img src="../png/sample3.png" alt="../png/sample3">
+
+</div><p><strong>Example of curvilinear coordinates
+</strong>
+</p>
+
+<hr size="6">
+<a name="Text-printing-example"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Curvilinear-coordinates" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-printing-example-1"></a>
+<h3 class="subsection">2.2.4 Text printing example</h3>
+
+<p>MathGL prints text by vector font. There are functions for manual specifying of text position (like <code>Puts</code>) and for its automatic selection (like <code>Label</code>, <code>legend</code> and so on). MathGL prints text always in specified position even if it lies outside the bounding box. The default size of font is specified by command <var>fontsize</var>. However, the actual size of output string depends on position of axes (depends on functions <code>SubPlot</code>, <code>InPlot</code>). The switching of the font style (italic, bold, wire and so on) can be done for the whole string (by function parameter) or inside the string. By default MathGL parses TeX-like commands for symbols and indexes (see see section <a href="mgl_ru_1.html#Font-styles">Стиль текста</a>). Example of MathGL font drawing is:
+</p><pre class="verbatim">text 0 1 'Text can be in ASCII and in Unicode'
+text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
+text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
+text 0 -0.2 'Easy to \a{overline} or \u{underline}'
+text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
+text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
+</pre>
+<div class="float">
+<img src="../png/sample4.png" alt="../png/sample4">
+
+</div><p><strong>Example of text printing with different font effects
+</strong>
+</p>
+<p>Another example demonstrate the features of TeX formula parsing.
+</p><pre class="verbatim">text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}', 0, -4
+</pre>
+<div class="float">
+<img src="../png/samplee.png" alt="../png/samplee">
+
+</div><p><strong>Example of TeX formula parsing
+</strong>
+</p>
+
+<hr size="6">
+<a name="Data-handling"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing-example" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Array-creation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-handling-1"></a>
+<h2 class="section">2.3 Data handling</h2>
+
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Array-creation">2.3.1 Array creation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-changing">2.3.2 Data changing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Array-creation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-handling" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-changing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Array-creation-1"></a>
+<h3 class="subsection">2.3.1 Array creation</h3>
+
+<p>One can put numbers into the data instance by several ways. Let us do it for sinus function:
+</p><ul>
+<li>
+one can create array by <code>list</code> command
+<pre class="verbatim">list a 0 0.04 0.16 0.36 0.64 1
+</pre>
+</li><li>
+another way is to copy from &ldquo;inline&rdquo; array
+<pre class="verbatim">copy a [0,0.04,0.16,0.36,0.64,1]
+</pre>
+</li><li>
+next way is to fill the data by textual formula with the help of <code>modify</code> function
+<pre class="verbatim">new a 6
+modify a 'x^2'
+</pre>
+</li><li>
+or one may fill the array in some interval and modify it later
+<pre class="verbatim">new a 6
+fill a 0 1
+modify a 'u^2'
+</pre>
+</li><li>
+or fill the array using current axis range
+<pre class="verbatim">new a 6
+fill a '(x+1)^2/4'
+</pre>
+</li><li>
+finally it can be loaded from file
+<pre class="verbatim">new s 6: modify s 'x^2'
+save s 'sqr.dat'    # create file first
+read a 'sqr.dat'    # load it
+</pre>
+</li><li>
+at this one can read only part of data
+<pre class="verbatim">new s 6: modify s 'x^2'
+save s 'sqr.dat'    # create file first
+read a 'sqr.dat' 5  # load it
+</pre></li></ul>
+
+<p>Creation of 2d- and 3d-arrays is mostly the same. One can use direct data filling by <code>list</code> command
+</p><pre class="verbatim">list a 11 12 13 | 21 22 23 | 31 32 33
+</pre><p>or by inline arrays
+</p><pre class="verbatim">copy a [[11,12,13],[21,22,23],[31,32,33]]
+</pre><p>Also data can be filled by formula
+</p><pre class="verbatim">new z 30 40
+fill z 'sin(pi*x)*cos(pi*y)'
+</pre><p>or loaded from file.
+</p>
+<p>The only non-obvious thing here is using multidimensional arrays in C/C++, i.e. arrays defined like <code>float dat[40][30];</code>. Since, formaly this arrays element <code>dat[i]</code> can address the memory in arbitrary place you should use the proper function to convert such arrays to <code>mglData</code> object. For C++ this is functions like <code>mglData::Set(float **dat, int N1, int N2</code>. For C this is functions like <code>mgl_data_set_float2(HMDT d, const float **dat, int N1, int N2</code>. At this, you should keep in mind that <code>nx=N2</code> and <code>ny=N1</code> after conversion.
+</p>
+<hr size="6">
+<a name="Data-changing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Array-creation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-changing-1"></a>
+<h3 class="subsection">2.3.2 Data changing</h3>
+
+<p>MathGL has functions for data processing: differentiating, integrating, smoothing and so on. Let us consider some examples. The simplest ones are integration and differentiation. The direction in which operation will be performed is specified by textual string, which may contain symbols &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo;. For example, the call of <code>diff a 'x'</code> will differentiate data along &lsquo;<samp>x</samp>&rsquo; direction; the call of <code>integrate a 'xy'</code> perform the double integration of data along &lsquo;<samp>x</samp>&rsquo; and &lsquo;<samp>y</samp>&rsquo; directions; the call of <code>diff2 a 'xyz'</code> will apply 3d Laplace operator to data and so on. Example of this operations on 2d array a=x*y is presented in code:
+</p><pre class="verbatim">new a 30 40: modify a 'x*y'
+axis 0 0 0 1 1 1
+subplot 2 2 0:rotate 60 40
+surf a: box
+text 0.7 1 1.2 'a(x,y)'
+subplot 2 2 1:rotate 60 40
+diff a 'x': surf a: box
+text 0.7 1 1.2 'da/dx'
+subplot 2 2 2:rotate 60 40
+integrate a 'xy': surf a: box
+text 0.7 1 1.2 '\int da/dx dxdy'
+subplot 2 2 3:rotate 60 40
+diff2 a 'y': surf a: box
+text 0.7 1 1.2 '\int {d^2}a/dxdy dx'
+</pre>
+<div class="float">
+<img src="../png/sample6.png" alt="../png/sample6">
+
+</div><p><strong>Example of data differentiation and integration
+</strong>
+</p>
+<p>Data smoothing (function <code>Smooth</code>) is more interesting and important. This function has 2 main arguments: type of smoothing and its direction. Now 4 methods are supported: <code>0</code> does nothing for delta=0 or approaches data to zero with the step delta, <code>1</code> linear averaging by 3 points, <code>2</code> linear averaging by 5 points, <code>3</code> quadratic averaging by 5 points. Let me demonstrate it for 1d case:
+</p><pre class="verbatim">new y0 30
+modify y0 '0.4*sin(2*pi*x)+0.3*cos(3*pi*x)-0.4*sin(4*pi*x)+0.2*rnd'
+copy y1 y0: smooth y1 1
+copy y2 y0: smooth y2 2
+copy y3 y0: smooth y3 3
+
+plot y0 'k': addlegend 'none' 'k'
+plot y1 'r': addlegend 'line 3' 'r'
+plot y2 'g': addlegend 'line 5' 'g'
+plot y3 'b': addlegend 'quad 5' 'b'
+legend: box
+</pre>
+<div class="float">
+<img src="../png/sample7.png" alt="../png/sample7">
+
+</div><p><strong>Example of data smoothing
+</strong>
+</p>
+<p>Finally one can create new data arrays on base of the existing one: extract slice, row or column of data (<code>SubData</code>), summarize along some of direction(s) (<code>Sum</code>), find distribution of data elements (<code>Hist</code>). Note, that all these functions are not thread-safe because they use static internal variable for output array. In particular, the using of several of them in arguments of the same function will lead to unpredictable result.
+</p>
+<hr size="6">
+<a name="Data-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-changing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-1D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-plotting-1"></a>
+<h2 class="section">2.4 Data plotting</h2>
+
+<p>Let me now show how to plot the data. MathGL generally has 2 types of plotting functions. Simple variant requires a single data array for plotting, other data (coordinates) are considered uniformly distributed in interval <var>Min</var>*<var>Max</var>. Second variant requires data arrays for all coordinates. It allows one to plot rather complex multivalent curves and surfaces (in case of parametric dependencies). Argument setting to default values allows one to plot data in standard form. Manual arguments setting gives possibility for fine tuning of colors, positions and view of graphics. Note, that the call of drawing function adds something to picture but does not clear the previous plots (as it does in Matlab). Another difference from Matlab is that all setup (like transparency, lightning, axis borders and so on) must be specified <strong>before</strong> plotting functions.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plots-for-1D-data">2.4.1 Plots for 1D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-for-2D-data">2.4.2 Plots for 2D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-for-3D-data">2.4.3 Plots for 3D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surface-transparency">2.4.4 Surface transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Plots-for-1D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-2D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-1D-data-1"></a>
+<h3 class="subsection">2.4.1 Plots for 1D data</h3>
+
+<p>Term &ldquo;1D data&rdquo; means that data depend on single index (parameter) like curve in parametric form {x(i),y(i),z(i)}, i=1...n. There are 5 generally different types of data representations: simple line plot, line plot with filling under it, stairs plot, bar plot and vertical lines (see section <a href="mgl_ru_1.html#g_t1D-plotting">1D графики</a>). Each type of plotting has similar interface. There are 3D version and two 2D versions. One of last requires single array. The parameters of line and marks (see section <a href="mgl_ru_1.html#Line-styles">Стиль линий</a>) are specified by the string argument. If the string parameter is <code>NULL</code> then solid line with color from palette is used.
+</p>
+<p>Below I shall show the features of 1D plotting on base of <code>plot</code> function (see section <a href="mgl_ru_1.html#g_t1D-plotting">1D графики</a>). Let us start from sinus plot:
+</p><pre class="verbatim">new y0 50: modify y0 'sin(pi*(2*x-1))'
+subplot 2 2 0
+plot y0: box
+</pre><p>Style of line is not specified in <code>plot</code> function. So MathGL uses the solid line with first color of palette (this is blue). Next subplot shows array <var>y1</var> with 2 rows:
+</p><pre class="verbatim">subplot 2 2 1
+new y1 50 2
+modify y1 'sin(pi*2*x-pi)'
+modify y1 'cos(pi*2*x-pi)/2' 1
+plot y1: box
+</pre><p>As previously I did not specify the style of lines. As a result, MathGL again uses solid line with next colors in palette (there are green and red). Now let us plot a circle on the same subplot. The circle is parametric curve <em>x=cos(\pi t), y=sin(\pi t)</em>. I will set the color of the circle (dark yellow, &lsquo;<samp>Y</samp>&rsquo;) and put marks &lsquo;<samp>+</samp>&rsquo; at point position:
+</p><pre class="verbatim">new x 50: modify x 'cos(pi*2*x-pi)'
+plot x y0 'Y+'
+</pre><p>Note that solid line is used because I did not specify the type of line. The same picture can be achieved by <code>Plot2</code> function. Let us draw ellipse by orange dash line:
+</p><pre class="verbatim">plot y1(:,0) y(:,1) 'q|'
+</pre>
+<p>Drawing in 3D space is mostly the same. Let us draw spiral with default line style. Now its color is 4-th color from palette (this is cyan):
+</p><pre class="verbatim">subplot 2 2 2:rotate 60 40
+new z 50: modify z '2*x-1'
+plot x y0 z 'g':box
+</pre><p>Function <code>Plot3</code> does 3D curve plot but for single array. Use it to put circle marks on the previous plot:
+</p><pre class="verbatim">new y2 10 3
+modify y2 'cos(pi*(2*x-1-y))'
+modify y2 '2*x-1' 2
+plot y2(:,0) y2(:,1) y2(:,2) 'bo '
+</pre><p>Note that line style is empty &lsquo;<samp> </samp>&rsquo; here. Usage of other 1D plotting functions looks similar:
+</p><pre class="verbatim">subplot 2 2 3:rotate 60 40
+bars x y0 z 'r':box
+</pre>
+<div class="float">
+<img src="../png/sample8.png" alt="../png/sample8">
+
+</div><p><strong>Example of 1D data plot
+</strong>
+</p>
+<hr size="6">
+<a name="Plots-for-2D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-1D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-3D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-2D-data-1"></a>
+<h3 class="subsection">2.4.2 Plots for 2D data</h3>
+
+<p>Surfaces <code>Surf</code> and other 2D plots (see section <a href="mgl_ru_1.html#g_t2D-plotting">2D графики</a>) are drown the same simpler as 1D one. The difference is that the string parameter specifies not by line style but by the color scheme of the plot (see section <a href="mgl_ru_1.html#Color-scheme">Цветовая схема</a>). Here I draw attention on 4 most interesting color schemes. There is gray scheme where color is changed from black to white (string &lsquo;<samp>kw</samp>&rsquo;) or from white to black (string &lsquo;<samp>wk</samp>&rsquo;). Another scheme is useful for accentuation of negative (by blue color) and positive (by red color) regions on plot (string &lsquo;<samp>'BbwrR'</samp>&rsquo;). Last one is the popular &ldquo;jet&rdquo; scheme (string &lsquo;<samp>'BbcyrR'</samp>&rsquo;).
+</p>
+<p>Now I shall show the example of a surface drawing. At first let us switch lightning on
+</p><pre class="verbatim">light on
+</pre><p>and draw the surface, considering coordinates x,y to be uniformly distributed in interval <var>Min</var>*<var>Max</var>
+</p><pre class="verbatim">new a0 50 40
+modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+subplot 2 2 0:rotate 60 40
+surf a0: box
+</pre><p>Color scheme was not specified. So previous color scheme is used. In this case it is default color scheme (&ldquo;jet&rdquo;) for the first plot. Next example is a sphere. The sphere is parametrically specified surface:
+</p><pre class="verbatim">new x 50 40: new y 50 40: new z 50 40
+modify x '0.8*sin(2*pi*x)*sin(pi*y)'
+modify y '0.8*cos(2*pi*x)*sin(pi*y)'
+modify z '0.8*cos(pi*y)'
+subplot 2 2 1:rotate 60 40
+surf x y z 'bbwrr': box
+</pre><p>I set color scheme to <code>'BbwrR'</code> that corresponds to red top and blue bottom of the sphere.
+</p>
+<p>Surfaces will be plotted for each of slice of the data if <var>nz</var>&gt;1. Next example draws surfaces for data arrays with <var>nz</var>=3:
+</p><pre class="verbatim">new a1 50 40 3
+modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
+subplot 2 2 2:rotate 60 40
+alpha on
+surf a1: box
+</pre><p>Note, that it may entail a confusion. However, if one will use density plot then the picture will look better:
+</p><pre class="verbatim">subplot 2 2 3: rotate 60 40
+dens a1: box
+</pre><p>Note, that the previous color scheme is used in last plots because there are no direct specification of the one.
+</p>
+<div class="float">
+<img src="../png/sample9.png" alt="../png/sample9">
+
+</div><p><strong>Example of surface plot for 2D data
+</strong>
+</p>
+<p>Drawing of other 2D plots is analogous. The only peculiarity is the usage of flag &lsquo;<samp>#</samp>&rsquo;. By default this flag switches on the drawing of a grid on plot (<code>grid</code> or <code>mesh</code> for plots in plain or in volume). However, for isosurfaces (including surfaces of rotation <code>axial</code>) this flag switches the  face drawing off. Figure becomes wired. The following code gives example of flag &lsquo;<samp>#</samp>&rsquo; using (compare with normal function drawing as in its description):
+</p><pre class="verbatim">alpha on: light on: light 0 0 0 1
+new a 30 20
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+subplot 2 2 0: rotate 40 60
+surf a 'bbcyrr#': box
+subplot 2 2 1: rotate 40 60
+dens a 'bbcyrr#': box
+subplot 2 2 2: rotate 40 60
+cont a 'bbcyrr#': box
+subplot 2 2 3: rotate 40 60
+axial a 'bbcyrr#': box
+</pre>
+<div class="float">
+<img src="../png/samplea.png" alt="../png/samplea">
+
+</div><p><strong>Example of 2D data plot with color scheme contained &lsquo;<samp>#</samp>&rsquo; symbol
+</strong>
+</p>
+<hr size="6">
+<a name="Plots-for-3D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-2D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surface-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-3D-data-1"></a>
+<h3 class="subsection">2.4.3 Plots for 3D data</h3>
+
+<p>Drawing procedures for 3D plot looks similarly to 1D and 2D plots described above. There are 3 general types of 3D plots (see section <a href="mgl_ru_1.html#g_t3D-plotting">3D графики</a>): (i) plots on slices or on projections, (ii) isosurfaces, (iii) cloud-like plots. Plots on slice are clear enough &ndash; one specifies a slice (as its index or as coordinate value) and MathGL draws contour lines or density plot on slice plane. Isosurface gives more information. Isosurface is 3D analogue of the contour line <code>cont</code>. It shows the region where data array values exceed specified isosurface level. Plot becomes more informative if one adds transparency, lightning or sets color scheme depending on coordinates. Generalization of isosurface is the cloud-like plot. For this plot the darker color and less transparent regions correspond to higher values of data. Contrary, the regions with low values are transparent. For plotting of the phase of fields (or beams or pulses) one can use isosurface which transparency depends on the other data array (see function <code>surf3a</code>). As example of 3D data plots let us draw the Gaussian beam diffraction in space. Beam propagates along <var>x</var> axis:
+</p><pre class="verbatim">alpha on: light on
+light 0 0 0 1
+new a 30 30 30: new b 30 30 30
+modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
+modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
+caxis 0 1
+
+subplot 2 2 0: rotate 40 60
+surf3 a 'wgk': box
+subplot 2 2 1: rotate 40 60
+densa a: box: axis
+subplot 2 2 2: rotate 40 60
+cloud a: box
+subplot 2 2 3: rotate 40 60
+surf3a b a 'q': box
+</pre>
+<div class="float">
+<img src="../png/sampleb.png" alt="../png/sampleb">
+
+</div><p><strong>Example of Gaussian beam diffraction (3D data)
+</strong>
+</p>
+
+<hr size="6">
+<a name="Surface-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-3D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surface-transparency-1"></a>
+<h3 class="subsection">2.4.4 Surface transparency</h3>
+
+<p>MathGL library has advanced features for setting and handling the surface transparency. The simplest way to add transparency is the using of function <code>Alpha</code>. As a result, all further surfaces (and isosurfaces, density plots and so on) become transparent. However, their  look can be additionally improved.
+</p>
+<p>First, the selected surface will be non-transparent if one sets the flag <code>transparent</code> before the surface drawing and sets it off after the drawing.
+</p>
+<p>Second, the value of transparency can be different from surface to surface. To do it just change the value of <code>alphadef</code> before the drawing of the selected surface. If its value is close to 0 then the surface becomes more and more transparent. Contrary, if its value is close to 1 then the surface becomes practically non-transparent. This is some analogue of <code>transparent on</code>.
+</p>
+<p>Third feature is the changing of the way how the light goes through overlapped surfaces. The variable <code>transptype</code> defines it. By default the usual transparency is used (<code>transptype 0</code>) &ndash; surfaces below is less visible than the upper ones. A &ldquo;glass-like&rdquo; transparency (<code>transptype 1</code>) has a different look when the surface just decreases the background light (the surfaces are commutable in this case).
+</p>
+<p>A &ldquo;neon-like&rdquo; transparency (<code>transptype 2</code>) has more interesting look. In this case a surface is the light source (like a lamp on the dark background) and just adds some intensity to the color. At this, the library sets automatically the black color for the background and changes the default line color to white.
+</p>
+<p>As example I shall show the variant of plot from <a href="#Plots-for-2D-data">Plots for 2D data</a> (grid drawing is disabled) for different types of transparency.
+</p><div class="float">
+<img src="../png/type0.png" alt="../png/type0">
+
+</div><p><strong>Example of <code>TranspType=0</code>.
+</strong>
+</p><div class="float">
+<img src="../png/type1.png" alt="../png/type1">
+
+</div><p><strong>Example of <code>TranspType=1</code>.
+</strong>
+</p><div class="float">
+<img src="../png/type2.png" alt="../png/type2">
+
+</div><p><strong>Example of <code>TranspType=2</code>.
+</strong>
+</p>
+
+
+<hr size="6">
+<a name="Hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surface-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t_0060_0060Compound_0027_0027-graphics" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Hints-1"></a>
+<h2 class="section">2.5 Hints</h2>
+
+<p>In this section I have included some small hints and advices for the improving of the quality of plots and for the demonstration of some non-trivial features of MathGL library. In contrast to previous examples I showed mostly the idea but not the whole drawing function. More examples with the source code can be find at <a href="http://mathgl.sf.net/">http://mathgl.sf.net/</a> or in section <a href="mgl_ru_3.html#Samples">Примеры использования MathGL</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t_0060_0060Compound_0027_0027-graphics">2.5.1 &ldquo;Compound&rdquo; graphics</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Two-axes-in-one-plot">2.5.2 Two axes in one plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Titles-for-the-plot">2.5.3 Titles for the plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Changing-of-the-color-range">2.5.4 Changing of the color range</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Management-of-a-point-cutting">2.5.5 Management of a point cutting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-field-visualization">2.5.6 Vector field visualization</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Several-light-sources">2.5.7 Several light sources</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutMin-and-CutMax-features">2.5.8 CutMin and CutMax features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mapping-visualization">2.5.9 Mapping visualization</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Log_002dscaled-plot">2.5.10 Log-scaled plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting-hints">2.5.11 Nonlinear fitting hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#PDE-solving-hints">2.5.12 PDE solving hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stereo-image">2.5.13 Stereo image</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="g_t_0060_0060Compound_0027_0027-graphics"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Two-axes-in-one-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Compound_0027_0027-graphics-1"></a>
+<h3 class="subsection">2.5.1 &ldquo;Compound&rdquo; graphics</h3>
+
+<p>As I noted above, MathGL functions (except the special one, like <code>clf</code>) do  not erase the previous plotting but just add the new one. It allows one to draw &ldquo;compound&rdquo; plots easily. For example, popular Matlab command <code>surfc</code> can be emulated in MathGL by 2 calls:
+</p><pre class="verbatim">surf a
+cont a 0 7 -1   # draw contours at z = -1
+</pre><p>Here <var>a</var> is 2-dimensional data for the plotting, <code>-1</code> is the value of z-coordinate at which the contour should be plotted (at the bottom in this example). Analogously, one can draw density plot instead of contour lines and so on.
+</p>
+<p>Another nice plot is contour lines plotted directly on the surface:
+</p><pre class="verbatim">light on        # switch on light for the surface
+surf a 'bbcyrr' # select 'jet' colormap for the surface
+cont a 'y'      # and yellow color for contours
+</pre><p>The possible difficulties arise in black&amp;white case, when the color of the surface can be close to the color of a contour line. In that case I may suggest the following code:
+</p><pre class="verbatim">light on        # switch on light for the surface
+surf a 'kw'     # select 'gray' colormap for the surface
+caxis -1 0      # first draw for darker surface colors
+conta 'w'       # white contours
+caxis 0 1       # now draw for brighter surface colors
+cont a 'k'      # black contours
+</pre><p>The idea is to divide the color range on 2 parts (dark and bright) and to select the contrasting color for contour lines for each of part.
+</p>
+<p>Similarly, one can plot flow thread over density plot of vector field amplitude (this is another amusing plot from Matlab) and so on. The list of compound graphics can be prolonged but I hope that the general idea is clear.
+</p>
+<hr size="6">
+<a name="Two-axes-in-one-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t_0060_0060Compound_0027_0027-graphics" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Titles-for-the-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Two-axes-in-one-plot-1"></a>
+<h3 class="subsection">2.5.2 Two axes in one plot</h3>
+
+<p>Developing the previous hint one can make a plot with 2 or more axes. The idea is that the change of settings does not influence on the already drawn graphics. So, for 2-axes plot let us set the first axis and draw everything concerning it. Then let us setup the second axis and draw things for the second axis. The corresponding code is (see section <a href="mgl_ru_3.html#g_t2_002daxes-sample">Несколько осей на одном графике</a>):
+</p><pre class="verbatim"># set up first axis
+axis -1 -1 1 1: origin -1 -1
+axis:fplot 'sin(pi*x)'      # draw something in first axis
+# set up second axis
+axis 0 0 1 1: origin 1 1
+axis: fplot 'cos(4*pi*x^2)' # draw something in second axis
+</pre><p>Note, that the first and the second axes look better if being placed in different corners. In the code presented above the first axis is placed in the left-bottom corner, and the second one is placed in the right-top corner.
+</p>
+<hr size="6">
+<a name="Titles-for-the-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Two-axes-in-one-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Changing-of-the-color-range" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Titles-for-the-plot-1"></a>
+<h3 class="subsection">2.5.3 Titles for the plot</h3>
+
+<p>The printing of nice titles for the plot is not so trivial task in general case. The problem is that the rotation and aspect change lead to different looks for titles of different subplots. So, the resulting look is not so good as it could be. The solution is simple &ndash; to print titles exactly after <code>subplot</code> call and before any rotation, aspect change and so on! Analogously, the title for the whole picture looks better if it is printed first (before any <code>subplot</code> calls). Alternatively you can use function <code>title</code> for plotting title for the picture at any time.
+</p>
+<hr size="6">
+<a name="Changing-of-the-color-range"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Titles-for-the-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Management-of-a-point-cutting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Changing-of-the-color-range-1"></a>
+<h3 class="subsection">2.5.4 Changing of the color range</h3>
+
+<p>By default (for the user comfort), the color range is set equal to z-range of the plot. However, there are different ranges. So, one can obtain amusing plot by the change of color range manually. For example, there are plots with one-color bottom (or top) or practically bi-color picture and so on.
+</p>
+<p>For example, compare 2 surfaces:
+</p><pre class="verbatim">subplot 2 1 0
+surf a          # usual coloring range
+subplot 2 1 1
+caxis 0 1
+surf a          # bottom of the surface have one-colour filling
+</pre>
+<hr size="6">
+<a name="Management-of-a-point-cutting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Changing-of-the-color-range" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-field-visualization" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Management-of-a-point-cutting-1"></a>
+<h3 class="subsection">2.5.5 Management of a point cutting</h3>
+
+<p>Sometimes an experimental or numerical surface has outstanding points. Visualization of such surface will lead to the hole(s) in place of such points. The standard method of &ldquo;fighting&rdquo; &ndash; to change data values &ndash; is not always good and is not so convenient. MathGL library has another method &ndash; to set variable <code>cut off</code>. As a consequence, all outstanding points will be projected on the bounding box.
+</p>
+<p>Such method is good not only for outstanding points but also for the case when one need to plane the bottom or the top of the plot. Exactly such case is demonstrated in the code:
+</p><pre class="verbatim">new a 20 30     # create some data
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+# set lower border above the data minimal value
+axis -1 -1 0 1 1 1:rotate 40 60
+cut off         # set off cutting flag
+surf a          # and draw the surface
+</pre><p>It is an interesting result, is not it?
+</p>
+<hr size="6">
+<a name="Vector-field-visualization"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Management-of-a-point-cutting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Several-light-sources" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vector-field-visualization-1"></a>
+<h3 class="subsection">2.5.6 Vector field visualization</h3>
+
+<p>Vector field visualization (especially in 3d case <code>vect3</code> or <code>vectc</code>) may look tangly &ndash; there are too many overlapping lines. I may suggest 2 ways to solve this problem. The first one is to change <code>meshnum</code> for decreasing the number of hachures. The second way is to use the flow thread chart <code>Flow</code>. Unfortunately, I don&rsquo;t know any other methods to visualize 3d vector field. If you know any, e-mail me and I shall add it to MatGL.
+</p>
+<hr size="6">
+<a name="Several-light-sources"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-field-visualization" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutMin-and-CutMax-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Several-light-sources-1"></a>
+<h3 class="subsection">2.5.7 Several light sources</h3>
+
+<p>In contrast to the most of other programs, MathGL supports several (up to 10) light sources. Moreover, the color each of them can be different: white (this is usual), yellow, red, cyan, green and so on. The use of several light sources may be interesting for the highlighting of some peculiarities of the plot or just to make an amusing picture. Note, each light source can be switched on/off individually (see section <a href="mgl_ru_3.html#Several-light-sample">Несколько источников света</a>).
+</p>
+<hr size="6">
+<a name="CutMin-and-CutMax-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Several-light-sources" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mapping-visualization" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutMin-and-CutMax-features-1"></a>
+<h3 class="subsection">2.5.8 CutMin and CutMax features</h3>
+
+<p>MathGL library has a feature for cutting of points in some region <var>CutMin*CutMax</var>. Such an excision can be used to improve the look of the graphics. Moreover, this cutting may help to show an internal structure of an object (like <code>isocaps</code> plot in Matlab). For example, let us use the standard 3D data array and show its interior (see section <a href="mgl_ru_3.html#CutMinMax-sample">CutMinMax &ndash; пример использования</a>).
+</p>
+<pre class="verbatim">new c 61 51 40      # create the data
+new v 10: fill v -0.5 1
+modify c '(-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1))'
+cut 0 -1 -1 1 0 1.1
+rotate 40 60:       surf3 c -0.5 'bbcyrr'
+contf3 v c 'x' -1 'bbcyrr': contf3 v c 'y' -1 'bbcyrr'
+contf3 v c 'z' 0 'bbcyrr':  contf3 v c 'z' 39 'bbcyrr'
+</pre>
+<p>One can also exclude points from arbitrary area in space. This area defined by textual formula <code>cut</code> (see section <a href="mgl_ru_1.html#Cutting">Обрезание</a>). The algorithm is the same as shown for &ldquo;rectangular cutting&rdquo;.
+</p>
+<hr size="6">
+<a name="Mapping-visualization"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutMin-and-CutMax-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Log_002dscaled-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mapping-visualization-1"></a>
+<h3 class="subsection">2.5.9 Mapping visualization</h3>
+
+<p>Sometime ago I worked with mapping and have a question about its visualization. Let me remember you that mapping is some transformation rule for one set of number to another one. The 1d mapping is just an ordinary function &ndash; it takes a number and transforms it to another one. The 2d mapping (which I used) is a pair of functions which take 2 numbers and transform them to another 2 ones. Except general plots (like <code>surfc</code>, <code>surfa</code>) there is a special plot &ndash; Arnold diagram. It shows the area which is the result of mapping of some initial area (usually square).
+</p>
+<p>I tried to make such plot in <code>map</code>. It shows the set of points or set of faces, which final position is the result of mapping. At this, the color gives information about their initial position and the height describes Jacobian value of the transformation. Unfortunately, it looks good only for the simplest mapping but for the real multivalent quasi-chaotic mapping it produces a confusion. So, use it if you like :).
+</p>
+<hr size="6">
+<a name="Log_002dscaled-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mapping-visualization" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting-hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Log_002dscaled-plot-1"></a>
+<h3 class="subsection">2.5.10 Log-scaled plot</h3>
+
+<p>Log-scaled plot can be drawn by 2 steps. First, one should change the scale of axis by call <code>axis 'lg(x)' 'lg(y)'</code> (in this example, x- and y-axis will be log-scaled). Second, one should set logarithmic scale for axis ticks by changing variables: <code>xtick 0: yticks 0</code>. Finally, one should check (or change) the axis ranges and origin so that their values to be positive. For example of log-log plot see section <a href="mgl_ru_3.html#Log_002dlog-sample">Log-log &ndash; пример использования</a>.
+</p>
+<hr size="6">
+<a name="Nonlinear-fitting-hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Log_002dscaled-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#PDE-solving-hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-hints-1"></a>
+<h3 class="subsection">2.5.11 Nonlinear fitting hints</h3>
+
+<p>Nonlinear fitting is rather simple. All that you need is the data to fit, the approximation formula and the list of coefficients to fit (better with its initial guess values). Let me demonstrate it on the following simple example (see section <a href="mgl_ru_3.html#Fitting-sample">Fitting &ndash; пример использования</a>). First, let us use sin function with some random noise:
+</p><pre class="verbatim">new rnd 100: new idl 50 # data to be fitted and ideal data
+modify rnd '0.4*rnd+0.1+sin(4*pi*x)'
+modify idl '0.3+sin(4*pi*x)'
+</pre><p>and plot it to see that data we will fit
+</p><pre class="verbatim">axis -1 -2 1 2
+plot rnd '. ':plot idl 'b'
+box:text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
+</pre>
+<p>The next step is the fitting itself. For that let me specify an initial values <var>ini</var> for coefficients &lsquo;<samp>abc</samp>&rsquo; and do the fitting for approximation formula &lsquo;<samp>a+b*sin(c*x)</samp>&rsquo;
+</p><pre class="verbatim">new res     # The data for found formula
+fit res rnd 'a+b*sin(c*x)' 'abc' [1, 1, 3]
+</pre><p>Now display it
+</p><pre class="verbatim">plot res 'r'
+text -1 -1.3 'fitted:' 'L:r' -1
+putsfit 0 -1.8 'y = ' 'C:r' -1
+</pre>
+<p>NOTE! the fitting results may have strong dependence on initial values for coefficients due to algorithm features. The problem is that in general case there are several local &rsquo;optimums&rsquo; for coefficients and the program returns only first found one! There are no guaranties that it will be the best. Try for example to set <code>ini = [0, 0, 0]</code> in the code above.
+</p>
+<hr size="6">
+<a name="PDE-solving-hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting-hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stereo-image" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="PDE-solving-hints-1"></a>
+<h3 class="subsection">2.5.12 PDE solving hints</h3>
+
+<p>Solving of Partial Differential Equations (PDE, including beam tracing) and ray tracing (or finding particle trajectory) are more or less common task. So, MathGL have several functions for that. There are <code>ray</code> for ray tracing, <code>pde</code> for PDE solving, <code>qo2d</code> for beam tracing in 2D case. Note, that these functions take &ldquo;Hamiltonian&rdquo; or equations as string values. And I don&rsquo;t plan now to allow one to use user-defined functions. There are 2 reasons: the complexity of corresponding interface; and the basic nature of used methods which are good for samples but may not good for serious scientific calculations.
+</p>
+<p>The ray tracing can be done by <code>ray</code> function. Really ray tracing equation is Hamiltonian equation for 3D space. So, the function can be also used for finding a particle trajectory (i.e. solve Hamiltonian ODE) for 1D, 2D or 3D cases. The function have a set of arguments. First of all, it is Hamiltonian which defined the media (or the equation) you are planning to use. The Hamiltonian is defined by string which may depend on coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, time &lsquo;<samp>t</samp>&rsquo; (for particle dynamics) and momentums &lsquo;<samp>p</samp>&rsquo;=<em>p_x</em>, &lsquo;<samp>q</samp>&rsquo;=<em>p_y</em>, &lsquo;<samp>v</samp>&rsquo;=<em>p_z</em>. Next, you have to define the initial conditions for coordinates and momentums at &lsquo;<samp>t</samp>&rsquo;=0 and set the integrations step (default is 0.1) and its duration (default is 10). The Runge-Kutta method of 4-th order is used for integration.
+</p><pre class="verbatim">new re 128:new im 128
+ray r 'p^2+q^2-x-1' -0.7 -1 0 0 0.5 0
+plot r(0) r(1)
+</pre><p>This example calculate the reflection from linear layer (media with Hamiltonian &lsquo;<samp>p^2+q^2-x-1</samp>&rsquo;=<em>p_x^2+p_y^2-x-1</em>). This is parabolic curve. The resulting array have 7 columns which contain data for {x,y,z,p,q,v,t}.
+</p>
+<p>The solution of PDE is a bit more complicated. As previous you have to specify the equation as pseudo-differential operator <em>\hat H(x, \nabla)</em> which is called sometime as &ldquo;Hamiltonian&rdquo; (for example, in beam tracing). As previously, it is defined by string which may depend on coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; (but not time!), momentums &lsquo;<samp>p</samp>&rsquo;=<em>(d/dx)/i k_0</em>, &lsquo;<samp>q</samp>&rsquo;=<em>(d/dy)/i k_0</em> and field amplitude &lsquo;<samp>u</samp>&rsquo;=<em>|u|</em>. The evolutionary coordinate is &lsquo;<samp>z</samp>&rsquo; in all cases. So that, the equation look like <em>du/dz = ik_0 H(x,y,\hat p, \hat q, |u|)[u]</em>. Dependence on field amplitude &lsquo;<samp>u</samp>&rsquo;=<em>|u|</em> allows one to solve nonlinear problems too. For example, for nonlinear Shrodinger equation you may set <code>ham='p^2 + q^2 - u^2'</code>. Also you may specify imaginary part for wave absorption, like <code>ham = 'p^2 + i*x*(x&gt;0)'</code>, but only if dependence on variable &lsquo;<samp>i</samp>&rsquo; is linear (i.e. <em>H = Hre+i*Him</em>).
+</p>
+<p>Next step is specifing the initial conditions at &lsquo;<samp>z</samp>&rsquo;=<code>Min.z</code>. The function need 2 arrays for real and for imaginary part. Note, that coordinates x,y,z are supposed to be in specified range [Min, Max]. So, the data arrays should have corresponding scales. Finally, you may set the integration step and paramter k0=<em>k_0</em>. Also keep in mind, that internally the 2 times large box is used (for suppressing numerical reflection from boundaries) and the equation should well defined even in this extended range.
+</p>
+<p>Final comment is concerning the possible form of pseudo-differential operator <em>H</em>. At this moment, simplified form of operator <em>H</em> is supported &ndash; all &ldquo;mixed&rdquo; terms (like &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) are excluded. For example, in 2D case this operator is effectively <em>H = f(p,z) + g(x,z,u)</em>. However commutable combinations (like &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy) are allowed for 3D case. 
+</p>
+<p>So, for example let solve the equation for beam deflected from linear layer and absorbed later. The operator will have the form &lsquo;<samp>'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)'</samp>&rsquo; that correspond to equation <em>ik_0 \partial_z u + \Delta u + x \cdot u + i (x+z)/2 \cdot u = 0</em>. This is typical equation for Electron Cyclotron (EC) absorption in magnetized plasmas. For initial conditions let me select the beam with plane phase front <em>exp(-48*(x+0.7)^2)</em>. The corresponding code looks like this (see section <a href="mgl_ru_3.html#PDE-sample">PDE &ndash; пример использования</a>):
+</p><pre class="verbatim">new re 128: new im 128
+fill re 'exp(-48*(x+0.7)^2)'
+pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)' re im 0.01, 30
+transpose a 'yxz'
+caxis 0 1
+dens a 'wyrRk'
+</pre>
+<p>The last example is example of beam tracing. Beam tracing equation is special kind of PDE equation written in coordinates accompanied to a ray. Generally this is the same parameters and limitation as for PDE solving but the coordinates are defined by the ray and by parameter of grid width <var>w</var> in direction transverse the ray. So, you don&rsquo;t need to specify the range of coordinates. <strong>BUT</strong> there is limitation. The accompanied coordinates are well defined only for smooth enough rays, i.e. then the ray curvature <em>K</em> (which is defined as <em>1/K^2 = (|\ddot r|^2 |\dot r|^2 - (\ddot r, \dot r)^2)/|\dot r|^6</em>) is much large then the grid width: <em>K&gt;&gt;w</em>. So, you may receive incorrect results if this condition will be broken.
+</p>
+<p>You may use following code for obtaining the same solution as in previous example:
+</p><pre class="verbatim">new re 128: new im 128
+define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)'
+ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
+# now start beam tracing
+fill re 'exp(-48*x^2)'
+new xx: new yy
+qo2d a $1 re im r 1 30 xx yy
+caxis 0 1
+dens xx yy a 'wyrRk'
+</pre>
+
+<hr size="6">
+<a name="Stereo-image"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#PDE-solving-hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stereo-image-1"></a>
+<h3 class="subsection">2.5.13 Stereo image</h3>
+
+<p>One can easily create stereo image in MathGL. Stereo image can be produced by making two subplots with slightly different rotation angles. The corresponding code looks like this (see section <a href="mgl_ru_3.html#Stereo-image-sample">Пример стерео изображения</a>):
+</p><pre class="verbatim">subplot 2 1 0   # left image
+rotate 40 60+3
+# draw something here
+subplot 2 1 1   # right image
+rotate 40 60-3
+# draw the same here
+</pre>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_3.html b/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_3.html
new file mode 100644
index 0000000..1a9f861
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_3.html
@@ -0,0 +1,4036 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: 3. Примеры использования MathGL</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: 3. Примеры использования MathGL">
+<meta name="keywords" content="Язык MGL для версии 1.11: 3. Примеры использования MathGL">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_2.html#Stereo-image" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya-MathGL"></a>
+<h1 class="chapter">3. Примеры использования MathGL</h1>
+<p>Эта глава содержит множество примеров кода для всех типов графиков, наиболее важных возможностей библиотеки и советов. Аналогичные примеры (с картинками) можно найти на <a href="http://mathgl.sf.net/pictures.html">http://mathgl.sf.net/pictures.html</a>. 
+</p><table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting-samples">3.1 Примеры 1D графиков</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting-samples">3.2 Примеры 2D графиков</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting-samples">3.3 Примеры 3D графиков</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting-samples">3.4 Примеры парных/векторных графиков</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Basic-features">3.5 Базовые возможности</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Additional-features">3.6 Дополнительные возможности</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Advanced-features">3.7 &quot;Продвинутые&quot; возможности</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+</table>
+<hr size="6">
+<a name="g_t1D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-1D-g_0440_0430_0444_0438_043a_043e_0432"></a>
+<h2 class="section">3.1 Примеры 1D графиков</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plot-sample">3.1.1 Plot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Radar-sample">3.1.2 Radar &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tens-sample">3.1.3 Tens &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area-sample">3.1.4 Area &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area-gradient-sample">3.1.5 Area с градиентной заливкой &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-sample">3.1.6 Bars &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-2-colors-sample">3.1.7 Bars (2 цвета) &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-above-sample">3.1.8 Bars (один над другим) &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-fall-sample">3.1.9 Bars &quot;водопад&quot; &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Barh-sample">3.1.10 Barh &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Step-sample">3.1.11 Step &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stem-sample">3.1.12 Stem &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region-sample">3.1.13 Region &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region-gradient-sample">3.1.14 Region с градиентной заливкой &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Error-sample">3.1.15 Error &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#BoxPlot-sample">3.1.16 BoxPlot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mark-sample">3.1.17 Mark &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TextMark-sample">3.1.18 TextMark &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tube-sample">3.1.19 Tube &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-sample">3.1.20 Text &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Torus-sample">3.1.21 Torus &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Chart-sample">3.1.22 Chart &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pie-chart-sample">3.1.23 Pie chart &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ring-chart-sample">3.1.24 Ring chart &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+<hr size="6">
+<a name="Plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Radar-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.1 Plot &ndash; пример использования</h3>
+<a name="index-Plot"></a>
+<div class="float">
+<img src="../png/plot.png" alt="../png/plot">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y
+</pre><hr size="6">
+<a name="Radar-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Radar-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.2 Radar &ndash; пример использования</h3>
+<a name="index-Radar"></a>
+<div class="float">
+<img src="../png/radar.png" alt="../png/radar">
+</div><pre class="verbatim">new y 10 3
+modify y '0.4*sin(pi*(2*x+y/2))+0.1*rnd'
+radar y '#'
+</pre><hr size="6">
+<a name="Tens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Radar-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.3 Tens &ndash; пример использования</h3>
+<a name="index-Tens"></a>
+<div class="float">
+<img src="../png/tens.png" alt="../png/tens">
+</div><pre class="verbatim">new y 50
+new c 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify c 'sin(2*pi*x)'
+box
+tens y c
+</pre><hr size="6">
+<a name="Area-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area-gradient-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.4 Area &ndash; пример использования</h3>
+<a name="index-Area"></a>
+<div class="float">
+<img src="../png/area.png" alt="../png/area">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y
+</pre><hr size="6">
+<a name="Area-gradient-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-_0441-g_0440_0430_0434_0438e_043d_0442_043d_043e_0439-_0437_0430_043b_0438_0432_043a_043e_0439-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.5 Area с градиентной заливкой &ndash; пример использования</h3>
+<a name="index-Area-1"></a>
+<div class="float">
+<img src="../png/area_2.png" alt="../png/area_2">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y 'cbgGyr'
+</pre><hr size="6">
+<a name="Bars-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area-gradient-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-2-colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.6 Bars &ndash; пример использования</h3>
+<a name="index-Bars"></a>
+<div class="float">
+<img src="../png/bars.png" alt="../png/bars">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y
+</pre>
+<hr size="6">
+<a name="Bars-2-colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-above-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-_00282-c_0432e_0442_0430_0029-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.7 Bars (2 цвета) &ndash; пример использования</h3>
+<a name="index-Bars-1"></a>
+<div class="float">
+<img src="../png/bars_2.png" alt="../png/bars_2">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'cbgGyr'
+</pre><hr size="6">
+<a name="Bars-above-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-2-colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-fall-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-_0028_043e_0434_0438_043d-_043d_0430_0434-_0434_0440_0443g_0438_043c_0029-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.8 Bars (один над другим) &ndash; пример использования</h3>
+<a name="index-Bars-2"></a>
+<div class="float">
+<img src="../png/bars_a.png" alt="../png/bars_a">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'a'
+</pre><hr size="6">
+<a name="Bars-fall-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-above-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Barh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-_0022_0432_043e_0434_043e_043f_0430_0434_0022-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.9 Bars &quot;водопад&quot; &ndash; пример использования</h3>
+<a name="index-Bars-3"></a>
+<div class="float">
+<img src="../png/bars_f.png" alt="../png/bars_f">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'f'
+</pre>
+
+<hr size="6">
+<a name="Barh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-fall-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Step-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Barh-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.10 Barh &ndash; пример использования</h3>
+<a name="index-Barh"></a>
+<div class="float">
+<img src="../png/barh.png" alt="../png/barh">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+barh y
+</pre><hr size="6">
+<a name="Step-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Barh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stem-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Step-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.11 Step &ndash; пример использования</h3>
+<a name="index-Step"></a>
+<div class="float">
+<img src="../png/step.png" alt="../png/step">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+step y
+</pre><hr size="6">
+<a name="Stem-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Step-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stem-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.12 Stem &ndash; пример использования</h3>
+<a name="index-Stem"></a>
+<div class="float">
+<img src="../png/stem.png" alt="../png/stem">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+stem y 'o'
+</pre><hr size="6">
+<a name="Region-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Stem-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region-gradient-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.13 Region &ndash; пример использования</h3>
+<a name="index-Region"></a>
+<div class="float">
+<img src="../png/region.png" alt="../png/region">
+</div><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'r'
+plot y1 'k2'
+plot y2 'k2'
+</pre><hr size="6">
+<a name="Region-gradient-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Error-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-_0441-g_0440_0430_0434_0438e_043d_0442_043d_043e_0439-_0437_0430_043b_0438_0432_043a_043e_0439-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.14 Region с градиентной заливкой &ndash; пример использования</h3>
+<a name="index-Region-1"></a>
+<div class="float">
+<img src="../png/region_2.png" alt="../png/region_2">
+</div><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'yr'
+plot y1 'k2'
+plot y2 'k2'
+</pre><hr size="6">
+<a name="Error-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region-gradient-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#BoxPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Error-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.15 Error &ndash; пример использования</h3>
+<a name="index-Error"></a>
+<div class="float">
+<img src="../png/error.png" alt="../png/error">
+</div><pre class="verbatim">new y 50
+new x0 10
+new y0 10
+new ex 10
+new ey 10
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify x0 '2*x-1 + 0.1*rnd-0.05'
+modify y0 '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1'
+modify ey '0.2'
+modify ex '0.1'
+box
+plot y
+error x0 y0 ex ey 'ko'
+</pre><hr size="6">
+<a name="BoxPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Error-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mark-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="BoxPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.16 BoxPlot &ndash; пример использования</h3>
+<a name="index-BoxPlot"></a>
+<div class="float">
+<img src="../png/boxplot.png" alt="../png/boxplot">
+</div><pre class="verbatim">new a 10 7
+modify a '(2*rnd-1)^3/2'
+box
+boxplot a
+plot a ' ko'
+</pre><hr size="6">
+<a name="Mark-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#BoxPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TextMark-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mark-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.17 Mark &ndash; пример использования</h3>
+<a name="index-Mark"></a>
+<div class="float">
+<img src="../png/mark.png" alt="../png/mark">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+mark y y1 'bs'
+</pre><hr size="6">
+<a name="TextMark-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mark-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tube-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TextMark-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.18 TextMark &ndash; пример использования</h3>
+<a name="index-TextMark"></a>
+<div class="float">
+<img src="../png/textmark.png" alt="../png/textmark">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+textmark y y1 '\gamma'
+</pre><hr size="6">
+<a name="Tube-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TextMark-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tube-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.19 Tube &ndash; пример использования</h3>
+<a name="index-Tube"></a>
+<div class="float">
+<img src="../png/tube.png" alt="../png/tube">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+rotate 40 60
+light on
+box
+tube y 0.05
+</pre><hr size="6">
+<a name="Text-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tube-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Torus-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.20 Text &ndash; пример использования</h3>
+<a name="index-Text"></a>
+<div class="float">
+<img src="../png/text.png" alt="../png/text">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y(:,0)
+text y 'This is very long string drawn along a curve' ':k'
+text y 'Another string drawn above a curve' 'T:r'
+</pre><hr size="6">
+<a name="Torus-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Torus-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.21 Torus &ndash; пример использования</h3>
+<a name="index-Torus"></a>
+<div class="float">
+<img src="../png/torus.png" alt="../png/torus">
+</div><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+rotate 40 60
+light on
+box
+torus y1 y2 'pz'
+</pre><hr size="6">
+<a name="Chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Torus-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pie-chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.22 Chart &ndash; пример использования</h3>
+<a name="index-Chart"></a>
+<div class="float">
+<img src="../png/chart.png" alt="../png/chart">
+</div><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+box
+chart ch
+</pre><hr size="6">
+<a name="Pie-chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ring-chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pie-chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.23 Pie chart &ndash; пример использования</h3>
+<a name="index-Chart-1"></a>
+<a name="index-Axis"></a>
+<div class="float">
+<img src="../png/pie_chart.png" alt="../png/pie_chart">
+</div><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+1)/2*cos(pi*x)' '(y+1)/2*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+</pre><hr size="6">
+<a name="Ring-chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pie-chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ring-chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.24 Ring chart &ndash; пример использования</h3>
+<a name="index-Chart-2"></a>
+<a name="index-Axis-1"></a>
+<div class="float">
+<img src="../png/ring_chart.png" alt="../png/ring_chart">
+</div><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+2)/3*cos(pi*x)' '(y+2)/3*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+</pre><hr size="6">
+<a name="g_t2D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ring-chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-2D-g_0440_0430_0444_0438_043a_043e_0432"></a>
+<h2 class="section">3.2 Примеры 2D графиков</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf-sample">3.2.1 Surf &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transparent-surface-sample">3.2.2 Transparent surface &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surface-in-fog-sample">3.2.3 Surface in fog &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Sharp-colors-sample">3.2.4 Sharp colors &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mesh-sample">3.2.5 Mesh &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fall-sample">3.2.6 Fall &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Belt-sample">3.2.7 Belt &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tile-sample">3.2.8 Tile &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Boxs-sample">3.2.9 Boxs &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens-sample">3.2.10 Dens &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-sample">3.2.11 Cont &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF-sample">3.2.12 ContF &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContD-sample">3.2.13 ContD &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axial-sample">3.2.14 Axial &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grad-sample">3.2.15 Grad &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+</table>
+<hr size="6">
+<a name="Surf-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparent-surface-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.1 Surf &ndash; пример использования</h3>
+<a name="index-Surf"></a>
+<div class="float">
+<img src="../png/surf.png" alt="../png/surf">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+</pre><hr size="6">
+<a name="Transparent-surface-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surface-in-fog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transparent-surface-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.2 Transparent surface &ndash; пример использования</h3>
+<a name="index-Surf-1"></a>
+<a name="index-Alpha"></a>
+<div class="float">
+<img src="../png/surf_alpha.png" alt="../png/surf_alpha">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surf a
+</pre><hr size="6">
+<a name="Surface-in-fog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparent-surface-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Sharp-colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surface-in-fog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.3 Surface in fog &ndash; пример использования</h3>
+<a name="index-Surf-2"></a>
+<a name="index-Fog"></a>
+<div class="float">
+<img src="../png/surf_fog.png" alt="../png/surf_fog">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+fog 1
+box
+surf a
+</pre><hr size="6">
+<a name="Sharp-colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surface-in-fog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mesh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Sharp-colors-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.4 Sharp colors &ndash; пример использования</h3>
+<a name="index-Surf-3"></a>
+<div class="float">
+<img src="../png/surf_sl.png" alt="../png/surf_sl">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a 'BbcyrR|'
+</pre><hr size="6">
+<a name="Mesh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Sharp-colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fall-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mesh-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.5 Mesh &ndash; пример использования</h3>
+<a name="index-Mesh"></a>
+<div class="float">
+<img src="../png/mesh.png" alt="../png/mesh">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+mesh a
+</pre><hr size="6">
+<a name="Fall-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mesh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Belt-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fall-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.6 Fall &ndash; пример использования</h3>
+<a name="index-Fall"></a>
+<div class="float">
+<img src="../png/fall.png" alt="../png/fall">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+fall a
+</pre><hr size="6">
+<a name="Belt-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fall-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tile-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Belt-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.7 Belt &ndash; пример использования</h3>
+<a name="index-Belt"></a>
+<div class="float">
+<img src="../png/belt.png" alt="../png/belt">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+belt a
+</pre><hr size="6">
+<a name="Tile-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Belt-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Boxs-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tile-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.8 Tile &ndash; пример использования</h3>
+<a name="index-Tile"></a>
+<div class="float">
+<img src="../png/tile.png" alt="../png/tile">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+tile a
+</pre><hr size="6">
+<a name="Boxs-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tile-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Boxs-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.9 Boxs &ndash; пример использования</h3>
+<a name="index-Boxs"></a>
+<div class="float">
+<img src="../png/boxs.png" alt="../png/boxs">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+origin 0 0 0
+box
+boxs a
+</pre><hr size="6">
+<a name="Dens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Boxs-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.10 Dens &ndash; пример использования</h3>
+<a name="index-Dens"></a>
+<a name="index-Colorbar"></a>
+<div class="float">
+<img src="../png/dens.png" alt="../png/dens">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+dens a
+colorbar
+</pre><hr size="6">
+<a name="Cont-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.11 Cont &ndash; пример использования</h3>
+<a name="index-Cont"></a>
+<div class="float">
+<img src="../png/cont.png" alt="../png/cont">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+cont a
+</pre><hr size="6">
+<a name="ContF-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContD-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.12 ContF &ndash; пример использования</h3>
+<a name="index-ContF"></a>
+<div class="float">
+<img src="../png/contf.png" alt="../png/contf">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+contf a
+</pre><hr size="6">
+<a name="ContD-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axial-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContD-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.13 ContD &ndash; пример использования</h3>
+<a name="index-ContD"></a>
+<div class="float">
+<img src="../png/contd.png" alt="../png/contd">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+var v 9 -1 1
+box
+contd v a
+colorbar v
+</pre><hr size="6">
+<a name="Axial-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContD-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grad-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axial-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.14 Axial &ndash; пример использования</h3>
+<a name="index-Axial"></a>
+<div class="float">
+<img src="../png/axial.png" alt="../png/axial">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+axial a
+</pre><hr size="6">
+<a name="Grad-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axial-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grad-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.15 Grad &ndash; пример использования</h3>
+<a name="index-Grad"></a>
+<div class="float">
+<img src="../png/grad.png" alt="../png/grad">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box:alpha on:dens a
+grad a
+</pre><hr size="6">
+<a name="g_t3D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grad-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-3D-g_0440_0430_0444_0438_043a_043e_0432"></a>
+<h2 class="section">3.3 Примеры 3D графиков</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf3-sample">3.3.1 Surf3 &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cloud-sample">3.3.2 Cloud &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CloudP-sample">3.3.3 CloudP &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens3-sample">3.3.4 Dens3 &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont3-sample">3.3.5 Cont3 &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF3-sample">3.3.6 ContF3 &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-projection-sample">3.3.7 Cont projection &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens-projection-sample">3.3.8 Dens projection &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutMinMax-sample">3.3.9 CutMinMax &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutOff-sample">3.3.11 CutOff &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+<hr size="6">
+<a name="Surf3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cloud-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.1 Surf3 &ndash; пример использования</h3>
+<a name="index-Surf3"></a>
+<div class="float">
+<img src="../png/surf3.png" alt="../png/surf3">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+box
+surf3 a
+</pre><hr size="6">
+<a name="Cloud-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CloudP-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cloud-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.2 Cloud &ndash; пример использования</h3>
+<a name="index-Cloud"></a>
+<div class="float">
+<img src="../png/cloud.png" alt="../png/cloud">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+box
+cloud a 'wyrRk'
+</pre><hr size="6">
+<a name="CloudP-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cloud-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CloudP-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.3 CloudP &ndash; пример использования</h3>
+<a name="index-CloudP"></a>
+<div class="float">
+<img src="../png/cloudp.png" alt="../png/cloudp">
+</div><p>Not available.
+</p><hr size="6">
+<a name="Dens3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CloudP-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.4 Dens3 &ndash; пример использования</h3>
+<a name="index-Dens3"></a>
+<a name="index-Axis-2"></a>
+<div class="float">
+<img src="../png/densa.png" alt="../png/densa">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+origin 0 0 0
+box
+densa a
+axis
+</pre><hr size="6">
+<a name="Cont3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.5 Cont3 &ndash; пример использования</h3>
+<a name="index-Cont3"></a>
+<div class="float">
+<img src="../png/conta.png" alt="../png/conta">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+conta a
+</pre><hr size="6">
+<a name="ContF3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-projection-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.6 ContF3 &ndash; пример использования</h3>
+<a name="index-ContF3"></a>
+<div class="float">
+<img src="../png/contfa.png" alt="../png/contfa">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+box
+contfa a
+</pre><hr size="6">
+<a name="Cont-projection-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens-projection-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-projection-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.7 Cont projection &ndash; пример использования</h3>
+<a name="index-ContX"></a>
+<a name="index-ContY"></a>
+<a name="index-ContZ"></a>
+<div class="float">
+<img src="../png/cont_xyz.png" alt="../png/cont_xyz">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+contx s '' -1
+sum s a 'y'
+conty s '' 1
+sum s a 'z'
+contz s '' -1
+</pre><hr size="6">
+<a name="Dens-projection-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-projection-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutMinMax-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-projection-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.8 Dens projection &ndash; пример использования</h3>
+<a name="index-DensX"></a>
+<a name="index-DensY"></a>
+<a name="index-DensZ"></a>
+<div class="float">
+<img src="../png/dens_xyz.png" alt="../png/dens_xyz">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+densx s '' -1
+sum s a 'y'
+densy s '' 1
+sum s a 'z'
+densz s '' -1
+</pre><hr size="6">
+<a name="CutMinMax-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens-projection-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Isocaps-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutMinMax-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.9 CutMinMax &ndash; пример использования</h3>
+<a name="index-Surf3-1"></a>
+<a name="index-CutMin"></a>
+<a name="index-CutMax"></a>
+<div class="float">
+<img src="../png/cutminmax.png" alt="../png/cutminmax">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut 0 -1 -1 1 0 1
+box
+surf3 a
+</pre><hr size="6">
+<a name="Isocaps-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutMinMax-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutOff-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Isocaps_0027_0027-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</h3>
+<a name="index-Surf3-2"></a>
+<a name="index-ContF3-1"></a>
+<a name="index-CutMin-1"></a>
+<a name="index-CutMax-1"></a>
+<div class="float">
+<img src="../png/cutminmax2.png" alt="../png/cutminmax2">
+</div><pre class="verbatim">new a 61 51 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+cut 0 -1 -1 1 0 1.1
+box
+surf3 a -1
+contf3 a 'x' -1
+contf3 a 'y' -1
+contf3 a 'z' 0
+contf3 a 'z' 39
+</pre><hr size="6">
+<a name="CutOff-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Isocaps-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutOff-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.11 CutOff &ndash; пример использования</h3>
+<a name="index-Surf3-3"></a>
+<a name="index-CutOff"></a>
+<div class="float">
+<img src="../png/surf3_cutoff.png" alt="../png/surf3_cutoff">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut '(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)'
+box
+surf3 a
+</pre><hr size="6">
+<a name="Dual-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutOff-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfC-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-_043f_0430_0440_043d_044b_0445_002f_0432e_043a_0442_043e_0440_043d_044b_0445-g_0440_0430_0444_0438_043a_043e_0432"></a>
+<h2 class="section">3.4 Примеры парных/векторных графиков</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#SurfC-sample">3.4.1 SurfC &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#SurfA-sample">3.4.2 SurfA &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TileS-sample">3.4.3 TileS &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Map-sample">3.4.4 Map &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Traj-sample">3.4.5 Traj &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect-sample">3.4.6 Vect &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectL-sample">3.4.7 VectL &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectC-sample">3.4.8 VectC &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-sample">3.4.9 Flow &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe-sample">3.4.10 Pipe &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dew-sample">3.4.11 Dew &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3C-sample">3.4.12 Surf3C &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3A-sample">3.4.13 Surf3A &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect-3D-sample">3.4.14 Vect 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectL-3D-sample">3.4.15 VectL 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectC-3D-sample">3.4.16 VectC 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-3D-sample">3.4.17 Flow 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe-3D-sample">3.4.18 Pipe 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Crust-sample">3.4.19 Crust &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dots-sample">3.4.20 Dots &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+</table>
+<hr size="6">
+<a name="SurfC-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfA-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfC-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.1 SurfC &ndash; пример использования</h3>
+<a name="index-SurfC"></a>
+<div class="float">
+<img src="../png/surfc.png" alt="../png/surfc">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surfc a b
+</pre><hr size="6">
+<a name="SurfA-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfC-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TileS-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfA-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.2 SurfA &ndash; пример использования</h3>
+<a name="index-SurfA"></a>
+<div class="float">
+<img src="../png/surfa.png" alt="../png/surfa">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surfa a b
+</pre><hr size="6">
+<a name="TileS-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfA-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Map-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TileS-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.3 TileS &ndash; пример использования</h3>
+<a name="index-TileS"></a>
+<div class="float">
+<img src="../png/tiles.png" alt="../png/tiles">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+tile a b
+</pre><hr size="6">
+<a name="Map-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TileS-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Traj-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Map-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.4 Map &ndash; пример использования</h3>
+<a name="index-Map"></a>
+<div class="float">
+<img src="../png/map.png" alt="../png/map">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+text 0 0 '\to'
+zrange -2 2
+subplot 2 1 0
+text 0 1.1 '\{x, y\}' '' -2
+box
+fill a 'x'
+fill b 'y'
+map a b 'brgk' 0 0
+subplot 2 1 1
+text 0 1.1 '\{\frac{x^3+y^3}{2}, \frac{x-y}{2}\}' '' -2
+box
+fill a '(x^3+y^3)/2'
+fill b '(x-y)/2'
+map a b 'brgk' 0 0
+</pre><hr size="6">
+<a name="Traj-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Map-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Traj-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.5 Traj &ndash; пример использования</h3>
+<a name="index-Traj"></a>
+<div class="float">
+<img src="../png/traj.png" alt="../png/traj">
+</div><pre class="verbatim">new y 50 3
+new x 50
+new y1 50
+new y2 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+fill x -1 1
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+box
+plot x y
+traj x y y1 y2
+</pre><hr size="6">
+<a name="Vect-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Traj-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectL-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.6 Vect &ndash; пример использования</h3>
+<a name="index-Vect"></a>
+<div class="float">
+<img src="../png/vect.png" alt="../png/vect">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vect a b
+</pre><hr size="6">
+<a name="VectL-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectC-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectL-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.7 VectL &ndash; пример использования</h3>
+<a name="index-VectL"></a>
+<div class="float">
+<img src="../png/vectl.png" alt="../png/vectl">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectl a b
+</pre><hr size="6">
+<a name="VectC-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectL-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectC-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.8 VectC &ndash; пример использования</h3>
+<a name="index-VectC"></a>
+<div class="float">
+<img src="../png/vectc.png" alt="../png/vectc">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectc a b
+</pre><hr size="6">
+<a name="Flow-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectC-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.9 Flow &ndash; пример использования</h3>
+<a name="index-Flow"></a>
+<div class="float">
+<img src="../png/flow.png" alt="../png/flow">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+flow a b
+</pre><hr size="6">
+<a name="Pipe-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dew-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.10 Pipe &ndash; пример использования</h3>
+<a name="index-Pipe"></a>
+<div class="float">
+<img src="../png/pipe.png" alt="../png/pipe">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+box
+pipe a b
+</pre><hr size="6">
+<a name="Dew-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3C-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dew-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.11 Dew &ndash; пример использования</h3>
+<a name="index-Dew"></a>
+<div class="float">
+<img src="../png/dew.png" alt="../png/dew">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+light on
+dew a b
+</pre><hr size="6">
+<a name="Surf3C-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dew-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3A-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3C-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.12 Surf3C &ndash; пример использования</h3>
+<a name="index-Surf3C"></a>
+<div class="float">
+<img src="../png/surf3c.png" alt="../png/surf3c">
+</div><pre class="verbatim">new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3c a b
+</pre><hr size="6">
+<a name="Surf3A-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3C-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3A-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.13 Surf3A &ndash; пример использования</h3>
+<a name="index-Surf3A"></a>
+<div class="float">
+<img src="../png/surf3a.png" alt="../png/surf3a">
+</div><pre class="verbatim">new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3a a b
+</pre><hr size="6">
+<a name="Vect-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3A-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectL-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.14 Vect 3D &ndash; пример использования</h3>
+<a name="index-Vect-1"></a>
+<div class="float">
+<img src="../png/vect3.png" alt="../png/vect3">
+</div><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vect ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="VectL-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectC-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectL-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.15 VectL 3D &ndash; пример использования</h3>
+<a name="index-VectL-1"></a>
+<div class="float">
+<img src="../png/vectl3.png" alt="../png/vectl3">
+</div><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectl ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="VectC-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectL-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectC-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.16 VectC 3D &ndash; пример использования</h3>
+<a name="index-VectC-1"></a>
+<div class="float">
+<img src="../png/vectc3.png" alt="../png/vectc3">
+</div><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectc ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="Flow-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectC-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.17 Flow 3D &ndash; пример использования</h3>
+<a name="index-Flow-1"></a>
+<div class="float">
+<img src="../png/flow3.png" alt="../png/flow3">
+</div><pre class="verbatim">new ex 30 30 30
+new ey 30 30 30
+new ez 30 30 30
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+flow ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="Pipe-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Crust-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.18 Pipe 3D &ndash; пример использования</h3>
+<a name="index-Pipe-1"></a>
+<div class="float">
+<img src="../png/pipe3.png" alt="../png/pipe3">
+</div><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+light on
+box
+pipe ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="Crust-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dots-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Crust-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.19 Crust &ndash; пример использования</h3>
+<a name="index-Crust"></a>
+<div class="float">
+<img src="../png/crust.png" alt="../png/crust">
+</div><pre class="verbatim">read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+light on
+box
+crust a 'p'
+</pre><hr size="6">
+<a name="Dots-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Crust-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dots-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.20 Dots &ndash; пример использования</h3>
+<a name="index-Dots"></a>
+<div class="float">
+<img src="../png/dots.png" alt="../png/dots">
+</div><pre class="verbatim">read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+box
+dots a 'p'
+</pre>
+
+<hr size="6">
+<a name="Basic-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dots-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0411_0430_0437_043e_0432_044be-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438"></a>
+<h2 class="section">3.5 Базовые возможности</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t1D-plot-sample">3.5.1 Пример графиков 1D данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plot-sample">3.5.2 Пример графиков 2D данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plot-sample">3.5.3 Пример графиков 3D данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Line-styles-sample">3.5.4 Пример стилей линий и маркеров</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Arrow-styles-sample">3.5.5 Пример стилей стрелок</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-styles-sample">3.5.6 Пример стилей текста</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TeX-parsing-sample">3.5.7 Пример TeX формулы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-faces-sample">3.5.8 Примеры начертаний шрифта</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Colors-sample">3.5.9 Примеры цветов</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Color-schemes-sample">3.5.10 Примеры цветовых схем</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Normal-transparency">3.5.11 Обычная прозрачность</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Glass_002dlike-transparency">3.5.12 &quot;Стеклянная&quot; прозрачность</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lamp_002dlike-transparency">3.5.13 &quot;Ламповая&quot; прозрачность</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+</table>
+<hr size="6">
+<a name="g_t1D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Basic-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-1D-_0434_0430_043d_043d_044b_0445"></a>
+<h3 class="subsection">3.5.1 Пример графиков 1D данных</h3>
+<a name="index-Plot-1"></a>
+<a name="index-Bars-4"></a>
+<a name="index-SubPlot"></a>
+<div class="float">
+<img src="../png/sample8.png" alt="../png/sample8">
+</div><pre class="verbatim">new y0 50: modify y0 'sin(pi*(2*x-1))'
+subplot 2 2 0
+plot y0: box
+
+subplot 2 2 1
+new y1 50 2
+modify y1 'sin(pi*2*x-pi)'
+modify y1 'cos(pi*2*x-pi)/2' 1
+plot y1: box
+
+new x 50: modify x 'cos(pi*2*x-pi)'
+plot x y0 'Y+'
+plot y1(:,0) y(:,1) 'q|'
+
+subplot 2 2 2:rotate 60 40
+new z 50:   modify z '2*x-1'
+plot x y0 z 'g':box
+new y2 10 3
+modify y2 'cos(pi*(2*x-1-y))'
+modify y2 '2*x-1' 2
+plot y2(:,0) y2(:,1) y2(:,2) 'bo '
+
+subplot 2 2 3:rotate 60 40
+bars x y0 z 'r':box
+</pre><hr size="6">
+<a name="g_t2D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-2D-_0434_0430_043d_043d_044b_0445"></a>
+<h3 class="subsection">3.5.2 Пример графиков 2D данных</h3>
+<a name="index-Surf-4"></a>
+<a name="index-Dens-1"></a>
+<a name="index-Alpha-1"></a>
+<div class="float">
+<img src="../png/sample9.png" alt="../png/sample9">
+</div><pre class="verbatim">light on
+
+new a0 50 40
+modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+subplot 2 2 0:rotate 60 40
+surf a0: box
+
+new x 50 40: new y 50 40: new z 50 40
+modify x '0.8*sin(2*pi*x)*sin(pi*y)'
+modify y '0.8*cos(2*pi*x)*sin(pi*y)'
+modify z '0.8*cos(pi*y)'
+subplot 2 2 1:rotate 60 40
+surf x y z 'bbwrr': box
+
+new a1 50 40 3
+modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
+subplot 2 2 2:rotate 60 40
+alpha on
+surf a1: box
+
+subplot 2 2 3: rotate 60 40
+dens a1: box
+</pre><hr size="6">
+<a name="g_t3D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Line-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-3D-_0434_0430_043d_043d_044b_0445"></a>
+<h3 class="subsection">3.5.3 Пример графиков 3D данных</h3>
+<a name="index-Surf-5"></a>
+<a name="index-Dens-2"></a>
+<a name="index-Alpha-2"></a>
+<div class="float">
+<img src="../png/sampleb.png" alt="../png/sampleb">
+</div><pre class="verbatim">alpha on: light on
+light 0 0 0 1
+new a 30 30 30: new b 30 30 30
+modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
+modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
+caxis 0 1
+
+subplot 2 2 0: rotate 40 60
+surf3 a 'wgk': box
+subplot 2 2 1: rotate 40 60
+densa a: box: axis
+subplot 2 2 2: rotate 40 60
+cloud a: box
+subplot 2 2 3: rotate 40 60
+surf3a b a 'q': box
+</pre><hr size="6">
+<a name="Line-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Arrow-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_043b_0438_043d_0438_0439-_0438-_043c_0430_0440_043ae_0440_043e_0432"></a>
+<h3 class="subsection">3.5.4 Пример стилей линий и маркеров</h3>
+<a name="index-Mark-1"></a>
+<a name="index-Line"></a>
+<div class="float">
+<img src="../png/sample5.png" alt="../png/sample5">
+</div><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Arrow-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Line-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_0441_0442_0440e_043b_043e_043a"></a>
+<h3 class="subsection">3.5.5 Пример стилей стрелок</h3>
+<a name="index-Line-1"></a>
+<div class="float">
+<img src="../png/sampled.png" alt="../png/sampled">
+</div><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Text-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Arrow-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TeX-parsing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_0442e_043a_0441_0442_0430"></a>
+<h3 class="subsection">3.5.6 Пример стилей текста</h3>
+<a name="index-Puts"></a>
+<div class="float">
+<img src="../png/sample4.png" alt="../png/sample4">
+</div><pre class="verbatim">text 0 1 'Text can be in ASCII and in Unicode'
+text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
+text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
+text 0 -0.2 'Easy to \a{overline} or \u{underline}'
+text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
+text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
+</pre><hr size="6">
+<a name="TeX-parsing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-faces-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-TeX-_0444_043e_0440_043c_0443_043b_044b"></a>
+<h3 class="subsection">3.5.7 Пример TeX формулы</h3>
+<a name="index-Puts-1"></a>
+<div class="float">
+<img src="../png/samplee.png" alt="../png/samplee">
+</div><pre class="verbatim">text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}' '' -4
+</pre><hr size="6">
+<a name="Font-faces-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TeX-parsing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-_043d_0430_0447e_0440_0442_0430_043d_0438_0439-_0448_0440_0438_0444_0442_0430"></a>
+<h3 class="subsection">3.5.8 Примеры начертаний шрифта</h3>
+<a name="index-Puts-2"></a>
+<div class="float">
+<img src="../png/fonts.png" alt="../png/fonts">
+</div><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-faces-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Color-schemes-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-c_0432e_0442_043e_0432"></a>
+<h3 class="subsection">3.5.9 Примеры цветов</h3>
+<div class="float">
+<img src="../png/colors.png" alt="../png/colors">
+</div><pre class="verbatim">#LENUQ
+facez -1   -1 0 0.4 0.3 'L#': text -0.8 -0.9 'L' 'C:w'
+facez -0.6 -1 0 0.4 0.3 'E#': text -0.4 -0.9 'E' 'C:w'
+facez -0.2 -1 0 0.4 0.3 'N#': text  0   -0.9 'N' 'C:w'
+facez  0.2 -1 0 0.4 0.3 'U#': text  0.4 -0.9 'U' 'C:w'
+facez  0.6 -1 0 0.4 0.3 'Q#': text  0.8 -0.9 'Q' 'C:w'
+#lenuq
+facez -1   -0.7 0 0.4 0.3 'l#': text -0.8 -0.6 'l' 'C:k'
+facez -0.6 -0.7 0 0.4 0.3 'e#': text -0.4 -0.6 'e' 'C:k'
+facez -0.2 -0.7 0 0.4 0.3 'n#': text  0   -0.6 'n' 'C:k'
+facez  0.2 -0.7 0 0.4 0.3 'u#': text  0.4 -0.6 'u' 'C:k'
+facez  0.6 -0.7 0 0.4 0.3 'q#': text  0.8 -0.6 'q' 'C:k'
+#CMYkP
+facez -1   -0.4 0 0.4 0.3 'C#': text -0.8 -0.3 'C' 'C:w'
+facez -0.6 -0.4 0 0.4 0.3 'M#': text -0.4 -0.3 'M' 'C:w'
+facez -0.2 -0.4 0 0.4 0.3 'Y#': text  0   -0.3 'Y' 'C:w'
+facez  0.2 -0.4 0 0.4 0.3 'k#': text  0.4 -0.3 'k' 'C:w'
+facez  0.6 -0.4 0 0.4 0.3 'P#': text  0.8 -0.3 'P' 'C:w'
+#lenuq
+facez -1   -0.1 0 0.4 0.3 'c#': text -0.8 0 'c' 'C:k'
+facez -0.6 -0.1 0 0.4 0.3 'm#': text -0.4 0 'm' 'C:k'
+facez -0.2 -0.1 0 0.4 0.3 'y#': text  0   0 'y' 'C:k'
+facez  0.2 -0.1 0 0.4 0.3 'w#': text  0.4 0 'w' 'C:k'
+facez  0.6 -0.1 0 0.4 0.3 'p#': text  0.8 0 'p' 'C:k'
+#BGRHW
+facez -1   0.2 0 0.4 0.3 'B#': text -0.8 0.3 'B' 'C:k'
+facez -0.6 0.2 0 0.4 0.3 'G#': text -0.4 0.3 'G' 'C:k'
+facez -0.2 0.2 0 0.4 0.3 'R#': text  0   0.3 'R' 'C:k'
+facez  0.2 0.2 0 0.4 0.3 'H#': text  0.4 0.3 'H' 'C:k'
+facez  0.6 0.2 0 0.4 0.3 'W#': text  0.8 0.3 'W' 'C:k'
+#bgrhw
+facez -1   0.5 0 0.4 0.3 'b#': text -0.8 0.6 'b' 'C:w'
+facez -0.6 0.5 0 0.4 0.3 'g#': text -0.4 0.6 'g' 'C:w'
+facez -0.2 0.5 0 0.4 0.3 'r#': text  0   0.6 'r' 'C:w'
+facez  0.2 0.5 0 0.4 0.3 'h#': text  0.4 0.6 'h' 'C:w'
+facez  0.6 0.5 0 0.4 0.3 'w#': text  0.8 0.6 'w' 'C:w'
+#brighted
+facez -1   0.8 0 0.4 0.3 'r1#': text -0.8 0.9 'r1' 'C:k'
+facez -0.6 0.8 0 0.4 0.3 'r3#': text -0.4 0.9 'r3' 'C:k'
+facez -0.2 0.8 0 0.4 0.3 'r5#': text  0   0.9 'r5' 'C:k'
+facez  0.2 0.8 0 0.4 0.3 'r7#': text  0.4 0.9 'r7' 'C:k'
+facez  0.6 0.8 0 0.4 0.3 'r9#': text  0.8 0.9 'r9' 'C:k'
+</pre><hr size="6">
+<a name="Color-schemes-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Normal-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-c_0432e_0442_043e_0432_044b_0445-_0441_0445e_043c"></a>
+<h3 class="subsection">3.5.10 Примеры цветовых схем</h3>
+<a name="index-Colorbar-1"></a>
+<div class="float">
+<img src="../png/color_schemes.png" alt="../png/color_schemes">
+</div><pre class="verbatim">new a 256 2: fill a 'x'
+subplot 2 10 0 0.2:dens a 'kw'
+text -1.4 -0.3 'kw' '' -8
+subplot 2 10 1 0.2:dens a 'wk'
+text -1.4 -0.3 'wk' '' -8
+subplot 2 10 2 0.2:dens a 'kHCcw'
+text -1.4 -0.3 'kHCcw' '' -8
+subplot 2 10 3 0.2:dens a 'kBbcw'
+text -1.4 -0.3 'kBbcw' '' -8
+subplot 2 10 4 0.2:dens a 'kRryw'
+text -1.4 -0.3 'kRryw' '' -8
+subplot 2 10 5 0.2:dens a 'kGgew'
+text -1.4 -0.3 'kGgew' '' -8
+subplot 2 10 6 0.2:dens a 'BbwrR'
+text -1.4 -0.3 'BbwrR' '' -8
+subplot 2 10 7 0.2:dens a 'BbwgG'
+text -1.4 -0.3 'BbwgG' '' -8
+subplot 2 10 8 0.2:dens a 'GgwmM'
+text -1.4 -0.3 'GgwmM' '' -8
+subplot 2 10 9 0.2:dens a 'UuwqR'
+text -1.4 -0.3 'UuwqR' '' -8
+subplot 2 10 10 0.2:dens a 'QqwcC'
+text -1.4 -0.3 'QqwcC' '' -8
+subplot 2 10 11 0.2:dens a 'CcwyY'
+text -1.4 -0.3 'CcwyY' '' -8
+subplot 2 10 12 0.2:dens a 'bcwyr'
+text -1.4 -0.3 'bcwyr' '' -8
+subplot 2 10 13 0.2:dens a 'bwr'
+text -1.4 -0.3 'bwr' '' -8
+subplot 2 10 14 0.2:dens a 'BbcyrR'
+text -1.4 -0.3 'BbcyrR' '' -8
+subplot 2 10 15 0.2:dens a 'UbcyqR'
+text -1.4 -0.3 'UbcyqR' '' -8
+subplot 2 10 16 0.2:dens a 'BbcwyrR'
+text -1.4 -0.3 'BbcwyrR' '' -8
+subplot 2 10 17 0.2:dens a 'bcyr'
+text -1.4 -0.3 'bcyr' '' -8
+subplot 2 10 18 0.2:dens a 'BbcyrR|'
+text -1.4 -0.3 'BbcyrR|' '' -8
+subplot 2 10 19 0.2:dens a 'bgr'
+text -1.4 -0.3 'bgr' '' -8
+</pre><hr size="6">
+<a name="Normal-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Color-schemes-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Glass_002dlike-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0431_044b_0447_043d_0430ya-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x"></a>
+<h3 class="subsection">3.5.11 Обычная прозрачность</h3>
+<a name="index-TranspType"></a>
+<div class="float">
+<img src="../png/type0.png" alt="../png/type0">
+</div><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 0: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre><hr size="6">
+<a name="Glass_002dlike-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Normal-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lamp_002dlike-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0022_0421_0442e_043a_043bya_043d_043d_0430ya_0022-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x"></a>
+<h3 class="subsection">3.5.12 &quot;Стеклянная&quot; прозрачность</h3>
+<a name="index-TranspType-1"></a>
+<div class="float">
+<img src="../png/type1.png" alt="../png/type1">
+</div><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 1: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre><hr size="6">
+<a name="Lamp_002dlike-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Glass_002dlike-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0022_041b_0430_043c_043f_043e_0432_0430ya_0022-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x"></a>
+<h3 class="subsection">3.5.13 &quot;Ламповая&quot; прозрачность</h3>
+<a name="index-TranspType-2"></a>
+<div class="float">
+<img src="../png/type2.png" alt="../png/type2">
+</div><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 2: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre>
+
+
+
+
+
+
+
+
+<hr size="6">
+<a name="Additional-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lamp_002dlike-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0414_043e_043f_043e_043b_043d_0438_0442e_043bx_043d_044be-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438"></a>
+<h2 class="section">3.6 Дополнительные возможности</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Legend-sample">3.6.1 Legend &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Adding-mesh-sample">3.6.2 Добавляем сетку</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf-_0026-Cont-sample">3.6.3 Surf &amp; Cont &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-_0026-Dens-sample">3.6.4 Flow &amp; Dens &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Several-light-sample">3.6.5 Несколько источников света</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mirrored-surface-sample">3.6.6 Отражение поверхности</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-with-labels-sample">3.6.7 Cont и подписи &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ternary-plot-sample">3.6.8 Ternary plot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Coloring-by-coordinates-sample">3.6.9 Окрашивание по положению грани</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Drops-sample">3.6.10 Drops &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Molecules-drawing-sample">3.6.11 Рисование молекул</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">    
+</td></tr>
+</table>
+<hr size="6">
+<a name="Legend-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Additional-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Adding-mesh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Legend-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.6.1 Legend &ndash; пример использования</h3>
+<a name="index-Plot-2"></a>
+<a name="index-Legend"></a>
+<a name="index-AddLegend"></a>
+<div class="float">
+<img src="../png/legend.png" alt="../png/legend">
+</div><pre class="verbatim">new f 50 3
+modify f 'sin(2*pi*x*x)'
+modify f 'sin(2*pi*x)' 1
+modify f 'sin(2*pi*sqrt(x))' 2
+axis 0 -1 1 1
+box
+plot f
+axis
+addlegend 'sin(\pi {x^2})' 'b'
+addlegend 'sin(\pi x)' 'g*'
+addlegend 'sin(\pi \sqrt{\a x})' 'r+'
+legend
+</pre><hr size="6">
+<a name="Adding-mesh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf-_0026-Cont-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0414_043e_0431_0430_0432_043byae_043c-_0441e_0442_043a_0443"></a>
+<h3 class="subsection">3.6.2 Добавляем сетку</h3>
+<a name="index-SubPlot-1"></a>
+<a name="index-Surf-6"></a>
+<a name="index-Dens-3"></a>
+<a name="index-Cont-1"></a>
+<a name="index-Axial-1"></a>
+<div class="float">
+<img src="../png/samplea.png" alt="../png/samplea">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+alpha on
+light on
+subplot 2 2 0
+rotate 40 60
+surf a 'BbcyrR#'
+box
+subplot 2 2 1
+rotate 40 60
+dens a 'BbcyrR#'
+box
+subplot 2 2 2
+rotate 40 60
+cont a 'BbcyrR#'
+box
+subplot 2 2 3
+rotate 40 60
+axial a 'BbcyrR#'
+box
+</pre><hr size="6">
+<a name="Surf-_0026-Cont-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Adding-mesh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-_0026-Dens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-_0026-Cont-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.6.3 Surf &amp; Cont &ndash; пример использования</h3>
+<a name="index-Surf-7"></a>
+<a name="index-Cont-2"></a>
+<div class="float">
+<img src="../png/surf_cont_y.png" alt="../png/surf_cont_y">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+cont a 'y'
+</pre><hr size="6">
+<a name="Flow-_0026-Dens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf-_0026-Cont-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Several-light-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-_0026-Dens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.6.4 Flow &amp; Dens &ndash; пример использования</h3>
+<a name="index-Flow-2"></a>
+<a name="index-Dens-4"></a>
+<div class="float">
+<img src="../png/flow_dens.png" alt="../png/flow_dens">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+copy d a
+modify d 'sqrt(v^2+w^2)' a b
+box
+flow a b 'br'
+dens d 'BbcyrR'
+</pre><hr size="6">
+<a name="Several-light-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-_0026-Dens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mirrored-surface-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041de_0441_043a_043e_043bx_043a_043e-_0438_0441_0442_043e_0447_043d_0438_043a_043e_0432-_0441_0432e_0442_0430"></a>
+<h3 class="subsection">3.6.5 Несколько источников света</h3>
+<a name="index-Surf-8"></a>
+<a name="index-Light"></a>
+<div class="float">
+<img src="../png/several_light.png" alt="../png/several_light">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+light 1 0 1 0 'c'
+light 2 1 0 0 'y'
+light 3 0 -1 0 'm'
+box
+surf a 'h'
+</pre><hr size="6">
+<a name="Mirrored-surface-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Several-light-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-with-labels-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0442_0440_0430_0436e_043d_0438e-_043f_043e_0432e_0440_0445_043d_043e_0441_0442_0438"></a>
+<h3 class="subsection">3.6.6 Отражение поверхности</h3>
+<a name="index-Surf-9"></a>
+<div class="float">
+<img src="../png/mirror.png" alt="../png/mirror">
+</div><pre class="verbatim">new a 30 40
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf a 'r'; yrange 0 1
+surf a 'b'; yrange 0 -1
+box
+</pre><p>or
+</p><pre class="verbatim">new a 30 40
+var x 30 -1 1
+var y1 40 0 1
+var y2 40 0 -1
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf x y1 a 'r'
+surf x y2 a 'b'
+box
+</pre><hr size="6">
+<a name="Cont-with-labels-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mirrored-surface-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ternary-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-_0438-_043f_043e_0434_043f_0438_0441_0438-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.6.7 Cont и подписи &ndash; пример использования</h3>
+<a name="index-Cont-3"></a>
+<div class="float">
+<img src="../png/contt.png" alt="../png/contt">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+cont a 'BbcyrRt'
+</pre><hr size="6">
+<a name="Ternary-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-with-labels-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Coloring-by-coordinates-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ternary-plot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.6.8 Ternary plot &ndash; пример использования</h3>
+<a name="index-Ternary"></a>
+<div class="float">
+<img src="../png/ternary.png" alt="../png/ternary">
+</div><pre class="verbatim">new rx 10
+new ry 10
+new x 50
+new y 50
+new a 20 30
+modify a '4*x*y'
+modify x '0.25*(1+cos(2*pi*x))'
+modify y '0.25*(1+sin(2*pi*x))'
+modify rx 'rnd'
+modify ry 'rnd*(1-v)' rx
+text -0.8 1.3 'Ternary plot (x+y+t=1)'
+ternary on
+plot x y 'r2'
+plot rx ry 'q^ '
+cont a
+line 0.5 0 0 0.75 'g2'
+axis
+grid 'xyz' 'B;'
+xlabel 'x comp.'
+ylabel 'y comp.'
+tlabel 't comp.'
+</pre><hr size="6">
+<a name="Coloring-by-coordinates-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ternary-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Drops-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_043a_0440_0430_0448_0438_0432_0430_043d_0438e-_043f_043e-_043f_043e_043b_043e_0436e_043d_0438_044e-g_0440_0430_043d_0438"></a>
+<h3 class="subsection">3.6.9 Окрашивание по положению грани</h3>
+<a name="index-Surf3-4"></a>
+<div class="float">
+<img src="../png/surf3_rgbd.png" alt="../png/surf3_rgbd">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+surf3 a 'bgrd'
+</pre><hr size="6">
+<a name="Drops-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Coloring-by-coordinates-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Molecules-drawing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Drops-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.6.10 Drops &ndash; пример использования</h3>
+<a name="index-Drop"></a>
+<div class="float">
+<img src="../png/drops.png" alt="../png/drops">
+</div><pre class="verbatim">light on
+text -1 1.2 'sh=0'
+drop -1 0 0 1 0.5 'r' 0
+text -0.33 1.2 'sh=0.33'
+drop -0.33 0 0 1 0.5 'r' 0.33
+text 0.33 1.2 'sh=0.67'
+drop 0.33 0 0 1 0.5 'r' 0.67
+text 1 1.2 'sh=1'
+drop 1 0 0 1 0.5 'r' 1
+ball -1 0 1 'k'
+ball -0.33 0 1 'k'
+ball 0.33 0 1 'k'
+ball 1 0 1 'k'
+line -1 0 1 1 0 1 'b'
+new h 100
+modify h '0.25*(1+x)^2'
+plot h 'k|'
+text -1 0.6 'h\sim(1+sh)^2' 'rL'
+</pre><hr size="6">
+<a name="Molecules-drawing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Drops-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0420_0438_0441_043e_0432_0430_043d_0438e-_043c_043e_043be_043a_0443_043b"></a>
+<h3 class="subsection">3.6.11 Рисование молекул</h3>
+<a name="index-Drop-1"></a>
+<a name="index-Sphere"></a>
+<div class="float">
+<img src="../png/molecule.png" alt="../png/molecule">
+</div><pre class="verbatim">alpha on
+light on
+subplot 2 2 0
+text 0 1.2 'Methane, CH_4' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'k'
+drop 0 0 0 0 0 1 0.35 'h' 1 2
+sphere 0 0 0.7 0.25 'g'
+drop 0 0 0 -0.94 0 -0.33 0.35 'h' 1 2
+sphere -0.66 0 -0.23 0.25 'g'
+drop 0 0 0 0.47 0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 0.57 -0.23 0.25 'g'
+drop 0 0 0 0.47 -0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 -0.57 -0.23 0.25 'g'
+subplot 2 2 1
+text 0 1.2 'Water, H{_2}O' '' -3
+rotate 60 100
+sphere 0 0 0 0.25 'r'
+drop 0 0 0 0.3 0.5 0 0.3 'm' 1 2
+sphere 0.3 0.5 0 0.25 'g'
+drop 0 0 0 0.3 -0.5 0 0.3 'm' 1 2
+sphere 0.3 -0.5 0 0.25 'g'
+subplot 2 2 2
+text 0 1.2 'Oxygen, O_2' '' -3
+rotate 60 120
+drop 0 0.5 0 0 -0.3 0 0.3 'm' 1 2
+sphere 0 0.5 0 0.25 'r'
+drop 0 -0.5 0 0 0.3 0 0.3 'm' 1 2
+sphere 0 -0.5 0 0.25 'r'
+subplot 2 2 3
+text 0 1.2 0 'Ammonia, NH_3' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'b'
+drop 0 0 0 0.33 0.57 0 0.32 'n' 1 2
+sphere 0.33 0.57 0 0.25 'g'
+drop 0 0 0 0.33 -0.57 0 0.32 'n' 1 2
+sphere 0.33 -0.57 0 0.25 'g'
+drop 0 0 0 -0.65 0 0 0.32 'n' 1 2
+sphere -0.65 0 0 0.25 'g'
+</pre><hr size="6">
+<a name="Advanced-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Molecules-drawing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Curvelinear-coorinates-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0022_041f_0440_043e_0434_0432_0438_043d_0443_0442_044be_0022-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438"></a>
+<h2 class="section">3.7 &quot;Продвинутые&quot; возможности</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Curvelinear-coorinates-sample">3.7.1 Криволинейные координаты</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2_002daxes-sample">3.7.2 Несколько осей на одном графике</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Semi_002dlog-sample">3.7.3 Semi-log &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Log_002dlog-sample">3.7.4 Log-log &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fitting-sample">3.7.5 Fitting &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Envelop-sample">3.7.6 Envelop &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Sew-sample">3.7.7 Sew &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#STFA-sample">3.7.8 STFA &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#PDE-sample">3.7.9 PDE &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Beam-tracing-sample">3.7.10 Beam tracing &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Parser-sample">3.7.11 Parser &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Manual-ticks-sample">3.7.12 Особые метки по осям</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ColumnPlot-sample">3.7.13 ColumnPlot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#StickPlot-sample">3.7.14 StickPlot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stereo-image-sample">3.7.15 Пример стерео изображения</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+</table>
+<hr size="6">
+<a name="Curvelinear-coorinates-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Advanced-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2_002daxes-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041a_0440_0438_0432_043e_043b_0438_043de_0439_043d_044be-_043a_043e_043e_0440_0434_0438_043d_0430_0442_044b"></a>
+<h3 class="subsection">3.7.1 Криволинейные координаты</h3>
+<a name="index-Axis-3"></a>
+<div class="float">
+<img src="../png/sample3.png" alt="../png/sample3">
+</div><pre class="verbatim">origin -1 1 -1
+subplot 2 2 0
+rotate 60 40
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cartesian'
+subplot 2 2 1
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cylindrical'
+subplot 2 2 2
+rotate 60 40
+axis '2*y*x' 'y*y - x*x' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Parabolic'
+subplot 2 2 3
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Spiral'
+axis '' '' '' # set to default Cartesian
+</pre><hr size="6">
+<a name="g_t2_002daxes-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Curvelinear-coorinates-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Semi_002dlog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041de_0441_043a_043e_043bx_043a_043e-_043e_0441e_0439-_043d_0430-_043e_0434_043d_043e_043c-g_0440_0430_0444_0438_043ae"></a>
+<h3 class="subsection">3.7.2 Несколько осей на одном графике</h3>
+<a name="index-Axis-4"></a>
+<div class="float">
+<img src="../png/2_axis.png" alt="../png/2_axis">
+</div><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+axis -1 -1 -1 1 1 1
+origin -1 -1 -1
+axis
+ylabel 'axis 1' 0
+plot y1 'b'
+axis 0 0 0 1 1 1
+origin 1 1 1
+axis
+ylabel 'axis 2' 0
+stem y2 'r'
+</pre><hr size="6">
+<a name="Semi_002dlog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2_002daxes-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Log_002dlog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Semi_002dlog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.3 Semi-log &ndash; пример использования</h3>
+<a name="index-Axis-5"></a>
+<a name="index-SetTicks"></a>
+<a name="index-Plot-3"></a>
+<div class="float">
+<img src="../png/semilog.png" alt="../png/semilog">
+</div><pre class="verbatim">new x 2000
+new y 2000
+modify x '0.01/(x+10^(-5))'
+modify y 'sin(1/v)' x
+xrange 0.01 1000
+origin 0.01 -1 0
+xtick 0
+axis 'lg(x)' '' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g'
+xlabel 'x' 0
+ylabel 'y = sin 1/x' 0
+box
+</pre><hr size="6">
+<a name="Log_002dlog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Semi_002dlog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fitting-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Log_002dlog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.4 Log-log &ndash; пример использования</h3>
+<a name="index-Axis-6"></a>
+<a name="index-SetTicks-1"></a>
+<a name="index-Plot-4"></a>
+<div class="float">
+<img src="../png/loglog.png" alt="../png/loglog">
+</div><pre class="verbatim">new x 100
+new y 100
+modify x 'pow(10,6*x-3)'
+modify y 'sqrt(1+v^2)' x
+axis 0.001 0.1 1000 1000
+xtick 0
+ytick 0
+axis 'lg(x)' 'lg(y)' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g;'
+xlabel 'x' 0
+ylabel 'y=\sqrt{1+x^2}' 0
+box
+</pre><hr size="6">
+<a name="Fitting-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Log_002dlog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Envelop-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fitting-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.5 Fitting &ndash; пример использования</h3>
+<a name="index-Fit"></a>
+<a name="index-PutsFit"></a>
+<div class="float">
+<img src="../png/fit.png" alt="../png/fit">
+</div><pre class="verbatim">new rnd 100
+fill rnd '0.4*rnd+0.1+sin(2*pi*x)'
+new in 100
+fill in '0.3+sin(2*pi*x)'
+yrange -2 2
+plot rnd '. '
+box
+list ini 1 1 3
+fit res rnd 'a+b*sin(c*x)' 'abc' ini
+plot res 'r'
+plot in 'b'
+text -1 -1.3 'fitted:' 'L:r' -1
+putsfit 0 -1.8 'y = ' 'C:r'
+text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
+</pre><hr size="6">
+<a name="Envelop-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fitting-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Sew-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Envelop-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.6 Envelop &ndash; пример использования</h3>
+<a name="index-Envelop"></a>
+<div class="float">
+<img src="../png/envelop.png" alt="../png/envelop">
+</div><pre class="verbatim">new a 1000
+fill a 'exp(-8*x^2)*sin(10*pi*x)'
+plot a 'b'
+envelop a
+plot a 'r'
+axis
+</pre><hr size="6">
+<a name="Sew-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Envelop-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#STFA-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Sew-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.7 Sew &ndash; пример использования</h3>
+<a name="index-Sew"></a>
+<div class="float">
+<img src="../png/sew.png" alt="../png/sew">
+</div><pre class="verbatim">new a 100 100
+modify a 'mod((y^2-(1-x)^2)/2,0.1)'
+rotate 40 60
+light on
+alpha on
+surf a 'b'
+sew a 'xy' 0.1
+surf a 'r'
+box
+</pre><hr size="6">
+<a name="STFA-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Sew-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#PDE-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="STFA-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.8 STFA &ndash; пример использования</h3>
+<a name="index-STFA"></a>
+<div class="float">
+<img src="../png/stfa.png" alt="../png/stfa">
+</div><pre class="verbatim">new a 2000
+new b 2000
+fill a 'cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)'
+subplot 1 2 0
+plot a
+axis
+xlabel '\i t'
+subplot 1 2 1
+stfa a b 64 ''
+axis
+ylabel '\omega' 0
+xlabel '\i t'
+</pre><hr size="6">
+<a name="PDE-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#STFA-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Beam-tracing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="PDE-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.9 PDE &ndash; пример использования</h3>
+<a name="index-mglPDE"></a>
+<a name="index-mglRay"></a>
+<div class="float">
+<img src="../png/pde.png" alt="../png/pde">
+</div><pre class="verbatim">axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+fill re 'exp(-48*(x+0.7)^2)'
+pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)' re im 0.01 30
+transpose a
+crange 0 1
+dens a 'wyrRk'
+fplot '-x' 'k|'
+text 0 0.85 'absorption: (x+z)/2 for x+z&gt;0' '' -1
+title 'Equation: ik_0\partial_zu + \Delta u + x\cdot u + i \frac{x+z}{2}\cdot u = 0' 'iC' -1.5
+</pre><hr size="6">
+<a name="Beam-tracing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#PDE-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Parser-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Beam-tracing-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.10 Beam tracing &ndash; пример использования</h3>
+<a name="index-mglQO2d"></a>
+<a name="index-mglRay-1"></a>
+<div class="float">
+<img src="../png/qo2d.png" alt="../png/qo2d">
+</div><pre class="verbatim">define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)'
+ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
+plot r(0) r(1) 'k'
+axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+new xx
+new yy
+fill re 'exp(-48*x^2)'
+qo2d a $1 re im r 1 30 xx yy 
+crange 0 1
+dens xx yy a 'wyrRk'
+fplot '-x' 'k|'
+text -0.8 0.85 'absorption: (x+y)/2 for x+y&gt;0' 'L' -1
+text 0.5 -0.05 'central ray' 'L' -1
+title 'Beam and ray tracing' 'C' -1.5
+</pre><hr size="6">
+<a name="Parser-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Beam-tracing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Manual-ticks-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Parser-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.11 Parser &ndash; пример использования</h3>
+<a name="index-mglParse"></a>
+<hr size="6">
+<a name="Manual-ticks-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Parser-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ColumnPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_043e_0431_044be-_043ce_0442_043a_0438-_043f_043e-_043e_0441ya_043c"></a>
+<h3 class="subsection">3.7.12 Особые метки по осям</h3>
+<a name="index-SetTicksVal"></a>
+<div class="float">
+<img src="../png/tval.png" alt="../png/tval">
+</div><pre class="verbatim">axis -pi 0 pi 2
+xtick -pi '-\pi' -1.571 '-\pi/2' 0 '0' 0.886 'x^*' 1.571 '\pi/2' pi '\pi'
+axis 
+grid
+fplot '2*cos(x^2)^2' 'r2' nan 300
+</pre><hr size="6">
+<a name="ColumnPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Manual-ticks-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#StickPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ColumnPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.13 ColumnPlot &ndash; пример использования</h3>
+<a name="index-SetTicksVal-1"></a>
+<div class="float">
+<img src="../png/column.png" alt="../png/column">
+</div><pre class="verbatim">for $1 0 3
+columnplot 4 $1
+box
+text -0.5 0.5 'Plot $1 of 4'
+fplot 'sin(pi*x+pi*$1/2)'
+next
+</pre><hr size="6">
+<a name="StickPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ColumnPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stereo-image-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="StickPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.14 StickPlot &ndash; пример использования</h3>
+<a name="index-SetTicksVal-2"></a>
+<div class="float">
+<img src="../png/stick.png" alt="../png/stick">
+</div><pre class="verbatim">ranges -1 1 -1 1 0 1:light on
+stickplot 3 0 40 30 : axis 'xyz_'
+fsurf 'exp(-10*y^2-6*x^2)'
+text 0.2 0 1.2 'z=0' '' -2
+stickplot 3 1 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/2-6*x^2)/sqrt(2)'
+text 0.2 0 1.2 'z=1' '' -2
+stickplot 3 2 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/5-6*x^2)/sqrt(5)'
+text 0.2 0 1.2 'z=2' '' -2
+xlabel '\tau' 0 : ylabel '\rho'
+</pre><hr size="6">
+<a name="Stereo-image-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#StickPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-_0441_0442e_0440e_043e-_0438_0437_043e_0431_0440_0430_0436e_043d_0438ya"></a>
+<h3 class="subsection">3.7.15 Пример стерео изображения</h3>
+<div class="float">
+<img src="../png/stereo.png" alt="../png/stereo">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+subplot 2 1 0
+rotate 40 60+3
+box:surf a
+subplot 2 1 1
+rotate 40 60-3
+box:surf a
+</pre>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_4.html b/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_4.html
new file mode 100644
index 0000000..4c76bcc
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_4.html
@@ -0,0 +1,514 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: A. GNU Free Documentation License</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: A. GNU Free Documentation License">
+<meta name="keywords" content="Язык MGL для версии 1.11: A. GNU Free Documentation License">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Copying-This-Manual"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_3.html#Stereo-image-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="GNU-Free-Documentation-License"></a>
+<h1 class="appendix">A. GNU Free Documentation License</h1>
+<p align="center"> Version 1.2, November 2002
+</p>
+
+<table><tr><td>&nbsp;</td><td><pre class="display">Copyright &copy; 2000,2001,2002 Free Software Foundation, Inc.
+51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+</pre></td></tr></table>
+
+<ol>
+<li>
+PREAMBLE
+
+<p>The purpose of this License is to make a manual, textbook, or other
+functional and useful document <em>free</em> in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+</p>
+<p>This License is a kind of &ldquo;copyleft&rdquo;, which means that derivative
+works of the document must themselves be free in the same sense.  It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+</p>
+<p>We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does.  But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book.  We recommend this License
+principally for works whose purpose is instruction or reference.
+</p>
+</li><li>
+APPLICABILITY AND DEFINITIONS
+
+<p>This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License.  Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein.  The &ldquo;Document&rdquo;, below,
+refers to any such manual or work.  Any member of the public is a
+licensee, and is addressed as &ldquo;you&rdquo;.  You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+</p>
+<p>A &ldquo;Modified Version&rdquo; of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+</p>
+<p>A &ldquo;Secondary Section&rdquo; is a named appendix or a front-matter section
+of the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document&rsquo;s overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject.  (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.)  The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+</p>
+<p>The &ldquo;Invariant Sections&rdquo; are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License.  If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant.  The Document may contain zero
+Invariant Sections.  If the Document does not identify any Invariant
+Sections then there are none.
+</p>
+<p>The &ldquo;Cover Texts&rdquo; are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.  A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+</p>
+<p>A &ldquo;Transparent&rdquo; copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters.  A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text.  A copy that is not &ldquo;Transparent&rdquo; is called &ldquo;Opaque&rdquo;.
+</p>
+<p>Examples of suitable formats for Transparent copies include plain
+<small>ASCII</small> without markup, Texinfo input format, LaTeX input
+format, <acronym>SGML</acronym> or <acronym>XML</acronym> using a publicly available
+<acronym>DTD</acronym>, and standard-conforming simple <acronym>HTML</acronym>,
+PostScript or <acronym>PDF</acronym> designed for human modification.  Examples
+of transparent image formats include <acronym>PNG</acronym>, <acronym>XCF</acronym> and
+<acronym>JPG</acronym>.  Opaque formats include proprietary formats that can be
+read and edited only by proprietary word processors, <acronym>SGML</acronym> or
+<acronym>XML</acronym> for which the <acronym>DTD</acronym> and/or processing tools are
+not generally available, and the machine-generated <acronym>HTML</acronym>,
+PostScript or <acronym>PDF</acronym> produced by some word processors for
+output purposes only.
+</p>
+<p>The &ldquo;Title Page&rdquo; means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page.  For works in
+formats which do not have any title page as such, &ldquo;Title Page&rdquo; means
+the text near the most prominent appearance of the work&rsquo;s title,
+preceding the beginning of the body of the text.
+</p>
+<p>A section &ldquo;Entitled XYZ&rdquo; means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language.  (Here XYZ stands for a
+specific section name mentioned below, such as &ldquo;Acknowledgements&rdquo;,
+&ldquo;Dedications&rdquo;, &ldquo;Endorsements&rdquo;, or &ldquo;History&rdquo;.)  To &ldquo;Preserve the Title&rdquo;
+of such a section when you modify the Document means that it remains a
+section &ldquo;Entitled XYZ&rdquo; according to this definition.
+</p>
+<p>The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document.  These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+</p>
+</li><li>
+VERBATIM COPYING
+
+<p>You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License.  You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute.  However, you may accept
+compensation in exchange for copies.  If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+</p>
+<p>You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+</p>
+</li><li>
+COPYING IN QUANTITY
+
+<p>If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document&rsquo;s license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover.  Both covers must also clearly and legibly identify
+you as the publisher of these copies.  The front cover must present
+the full title with all words of the title equally prominent and
+visible.  You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+</p>
+<p>If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+</p>
+<p>If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+</p>
+<p>It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+</p>
+</li><li>
+MODIFICATIONS
+
+<p>You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it.  In addition, you must do these things in the Modified Version:
+</p>
+<ol>
+<li>
+Use in the Title Page (and on the covers, if any) a title distinct
+from that of the Document, and from those of previous versions
+(which should, if there were any, be listed in the History section
+of the Document).  You may use the same title as a previous version
+if the original publisher of that version gives permission.
+
+</li><li>
+List on the Title Page, as authors, one or more persons or entities
+responsible for authorship of the modifications in the Modified
+Version, together with at least five of the principal authors of the
+Document (all of its principal authors, if it has fewer than five),
+unless they release you from this requirement.
+
+</li><li>
+State on the Title page the name of the publisher of the
+Modified Version, as the publisher.
+
+</li><li>
+Preserve all the copyright notices of the Document.
+
+</li><li>
+Add an appropriate copyright notice for your modifications
+adjacent to the other copyright notices.
+
+</li><li>
+Include, immediately after the copyright notices, a license notice
+giving the public permission to use the Modified Version under the
+terms of this License, in the form shown in the Addendum below.
+
+</li><li>
+Preserve in that license notice the full lists of Invariant Sections
+and required Cover Texts given in the Document&rsquo;s license notice.
+
+</li><li>
+Include an unaltered copy of this License.
+
+</li><li>
+Preserve the section Entitled &ldquo;History&rdquo;, Preserve its Title, and add
+to it an item stating at least the title, year, new authors, and
+publisher of the Modified Version as given on the Title Page.  If
+there is no section Entitled &ldquo;History&rdquo; in the Document, create one
+stating the title, year, authors, and publisher of the Document as
+given on its Title Page, then add an item describing the Modified
+Version as stated in the previous sentence.
+
+</li><li>
+Preserve the network location, if any, given in the Document for
+public access to a Transparent copy of the Document, and likewise
+the network locations given in the Document for previous versions
+it was based on.  These may be placed in the &ldquo;History&rdquo; section.
+You may omit a network location for a work that was published at
+least four years before the Document itself, or if the original
+publisher of the version it refers to gives permission.
+
+</li><li>
+For any section Entitled &ldquo;Acknowledgements&rdquo; or &ldquo;Dedications&rdquo;, Preserve
+the Title of the section, and preserve in the section all the
+substance and tone of each of the contributor acknowledgements and/or
+dedications given therein.
+
+</li><li>
+Preserve all the Invariant Sections of the Document,
+unaltered in their text and in their titles.  Section numbers
+or the equivalent are not considered part of the section titles.
+
+</li><li>
+Delete any section Entitled &ldquo;Endorsements&rdquo;.  Such a section
+may not be included in the Modified Version.
+
+</li><li>
+Do not retitle any existing section to be Entitled &ldquo;Endorsements&rdquo; or
+to conflict in title with any Invariant Section.
+
+</li><li>
+Preserve any Warranty Disclaimers.
+</li></ol>
+
+<p>If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant.  To do this, add their titles to the
+list of Invariant Sections in the Modified Version&rsquo;s license notice.
+These titles must be distinct from any other section titles.
+</p>
+<p>You may add a section Entitled &ldquo;Endorsements&rdquo;, provided it contains
+nothing but endorsements of your Modified Version by various
+parties&mdash;for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+</p>
+<p>You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version.  Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity.  If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+</p>
+<p>The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+</p>
+</li><li>
+COMBINING DOCUMENTS
+
+<p>You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+</p>
+<p>The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy.  If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+</p>
+<p>In the combination, you must combine any sections Entitled &ldquo;History&rdquo;
+in the various original documents, forming one section Entitled
+&ldquo;History&rdquo;; likewise combine any sections Entitled &ldquo;Acknowledgements&rdquo;,
+and any sections Entitled &ldquo;Dedications&rdquo;.  You must delete all
+sections Entitled &ldquo;Endorsements.&rdquo;
+</p>
+</li><li>
+COLLECTIONS OF DOCUMENTS
+
+<p>You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+</p>
+<p>You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+</p>
+</li><li>
+AGGREGATION WITH INDEPENDENT WORKS
+
+<p>A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an &ldquo;aggregate&rdquo; if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation&rsquo;s users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+</p>
+<p>If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document&rsquo;s Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+</p>
+</li><li>
+TRANSLATION
+
+<p>Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections.  You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers.  In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+</p>
+<p>If a section in the Document is Entitled &ldquo;Acknowledgements&rdquo;,
+&ldquo;Dedications&rdquo;, or &ldquo;History&rdquo;, the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+</p>
+</li><li>
+TERMINATION
+
+<p>You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License.  Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License.  However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+</p>
+</li><li>
+FUTURE REVISIONS OF THIS LICENSE
+
+<p>The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time.  Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.  See
+<a href="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</a>.
+</p>
+<p>Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License &ldquo;or any later version&rdquo; applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation.  If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+</p></li></ol>
+
+
+<a name="ADDENDUM_003a-How-to-use-this-License-for-your-documents"></a>
+<h2 class="heading">ADDENDUM: How to use this License for your documents</h2>
+
+<p>To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample">  Copyright (C)  <var>year</var>  <var>your name</var>.
+  Permission is granted to copy, distribute and/or modify this document
+  under the terms of the GNU Free Documentation License, Version 1.2
+  or any later version published by the Free Software Foundation;
+  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+  Texts.  A copy of the license is included in the section entitled ``GNU
+  Free Documentation License''.
+</pre></td></tr></table>
+
+<p>If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the &ldquo;with&hellip;Texts.&rdquo; line with this:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample">    with the Invariant Sections being <var>list their titles</var>, with
+    the Front-Cover Texts being <var>list</var>, and with the Back-Cover Texts
+    being <var>list</var>.
+</pre></td></tr></table>
+
+<p>If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+</p>
+<p>If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
+</p>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_5.html b/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_5.html
new file mode 100644
index 0000000..2c51cbe
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_5.html
@@ -0,0 +1,306 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: Индекс</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: Индекс">
+<meta name="keywords" content="Язык MGL для версии 1.11: Индекс">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Index"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_6.html#index_split-0" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_043d_0434e_043a_0441"></a>
+<h1 class="unnumbered">Индекс</h1>
+
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_ru_8.html#index_split-2_cp_symbol-1" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-2" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-3" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="g_t_0418_043d_0434e_043a_0441_cp_letter-A">A</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-addlegend">addlegend</a></td><td valign="top"><a href="mgl_ru_1.html#Legend">1.9 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-AddLegend">AddLegend</a></td><td valign="top"><a href="mgl_ru_3.html#Legend-sample">3.6.1 Legend &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-addto">addto</a></td><td valign="top"><a href="mgl_ru_1.html#Operators">1.23 Операторы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-adjust">adjust</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-alpha">alpha</a></td><td valign="top"><a href="mgl_ru_1.html#Transparency">1.2.1 Прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Alpha">Alpha</a></td><td valign="top"><a href="mgl_ru_3.html#Transparent-surface-sample">3.2.2 Transparent surface &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Alpha-1">Alpha</a></td><td valign="top"><a href="mgl_ru_3.html#g_t2D-plot-sample">3.5.2 Пример графиков 2D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-alpha-2">alpha</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Alpha-2">Alpha</a></td><td valign="top"><a href="mgl_ru_3.html#g_t3D-plot-sample">3.5.3 Пример графиков 3D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-alphadef">alphadef</a></td><td valign="top"><a href="mgl_ru_1.html#Transparency">1.2.1 Прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-alphadef-2">alphadef</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ambient">ambient</a></td><td valign="top"><a href="mgl_ru_1.html#Lighting">1.2.2 Освещение</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ambient-2">ambient</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-area">area</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Area">Area</a></td><td valign="top"><a href="mgl_ru_3.html#Area-sample">3.1.4 Area &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Area-1">Area</a></td><td valign="top"><a href="mgl_ru_3.html#Area-gradient-sample">3.1.5 Area с градиентной заливкой &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-arrowsize">arrowsize</a></td><td valign="top"><a href="mgl_ru_1.html#Default-sizes">1.2.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-aspect">aspect</a></td><td valign="top"><a href="mgl_ru_1.html#Transformation-matrix">1.4 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Axial">Axial</a></td><td valign="top"><a href="mgl_ru_3.html#Axial-sample">3.2.14 Axial &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-axial">axial</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Axial-1">Axial</a></td><td valign="top"><a href="mgl_ru_3.html#Adding-mesh-sample">3.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-axialdir">axialdir</a></td><td valign="top"><a href="mgl_ru_1.html#Other-settings">1.2.7 Прочие настройки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-axis">axis</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Axis">Axis</a></td><td valign="top"><a href="mgl_ru_3.html#Pie-chart-sample">3.1.23 Pie chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-axis-5">axis</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-and-Colorbar">1.8 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Axis-1">Axis</a></td><td valign="top"><a href="mgl_ru_3.html#Ring-chart-sample">3.1.24 Ring chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Axis-2">Axis</a></td><td valign="top"><a href="mgl_ru_3.html#Dens3-sample">3.3.4 Dens3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Axis-3">Axis</a></td><td valign="top"><a href="mgl_ru_3.html#Curvelinear-coorinates-sample">3.7.1 Криволинейные координаты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Axis-4">Axis</a></td><td valign="top"><a href="mgl_ru_3.html#g_t2_002daxes-sample">3.7.2 Несколько осей на одном графике</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Axis-5">Axis</a></td><td valign="top"><a href="mgl_ru_3.html#Semi_002dlog-sample">3.7.3 Semi-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Axis-6">Axis</a></td><td valign="top"><a href="mgl_ru_3.html#Log_002dlog-sample">3.7.4 Log-log &ndash; пример использования</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="g_t_0418_043d_0434e_043a_0441_cp_letter-B">B</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ball">ball</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-barh">barh</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Barh">Barh</a></td><td valign="top"><a href="mgl_ru_3.html#Barh-sample">3.1.10 Barh &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-bars">bars</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Bars">Bars</a></td><td valign="top"><a href="mgl_ru_3.html#Bars-sample">3.1.6 Bars &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Bars-1">Bars</a></td><td valign="top"><a href="mgl_ru_3.html#Bars-2-colors-sample">3.1.7 Bars (2 цвета) &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Bars-2">Bars</a></td><td valign="top"><a href="mgl_ru_3.html#Bars-above-sample">3.1.8 Bars (один над другим) &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Bars-3">Bars</a></td><td valign="top"><a href="mgl_ru_3.html#Bars-fall-sample">3.1.9 Bars &quot;водопад&quot; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Bars-4">Bars</a></td><td valign="top"><a href="mgl_ru_3.html#g_t1D-plot-sample">3.5.1 Пример графиков 1D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-barwidth">barwidth</a></td><td valign="top"><a href="mgl_ru_1.html#Default-sizes">1.2.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-beam">beam</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Belt">Belt</a></td><td valign="top"><a href="mgl_ru_3.html#Belt-sample">3.2.7 Belt &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-belt">belt</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-box">box</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-and-Colorbar">1.8 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-BoxPlot">BoxPlot</a></td><td valign="top"><a href="mgl_ru_3.html#BoxPlot-sample">3.1.16 BoxPlot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-boxplot">boxplot</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-boxs">boxs</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Boxs">Boxs</a></td><td valign="top"><a href="mgl_ru_3.html#Boxs-sample">3.2.9 Boxs &ndash; пример использования</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="g_t_0418_043d_0434e_043a_0441_cp_letter-C">C</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-call">call</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-caxis">caxis</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-chart">chart</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Chart">Chart</a></td><td valign="top"><a href="mgl_ru_3.html#Chart-sample">3.1.22 Chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Chart-1">Chart</a></td><td valign="top"><a href="mgl_ru_3.html#Pie-chart-sample">3.1.23 Pie chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Chart-2">Chart</a></td><td valign="top"><a href="mgl_ru_3.html#Ring-chart-sample">3.1.24 Ring chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-chdir">chdir</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-clearlegend">clearlegend</a></td><td valign="top"><a href="mgl_ru_1.html#Legend">1.9 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-clf">clf</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-cloud">cloud</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Cloud">Cloud</a></td><td valign="top"><a href="mgl_ru_3.html#Cloud-sample">3.3.2 Cloud &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-CloudP">CloudP</a></td><td valign="top"><a href="mgl_ru_3.html#CloudP-sample">3.3.3 CloudP &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-colorbar">colorbar</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-and-Colorbar">1.8 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Colorbar">Colorbar</a></td><td valign="top"><a href="mgl_ru_3.html#Dens-sample">3.2.10 Dens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Colorbar-1">Colorbar</a></td><td valign="top"><a href="mgl_ru_3.html#Color-schemes-sample">3.5.10 Примеры цветовых схем</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-columnplot">columnplot</a></td><td valign="top"><a href="mgl_ru_1.html#Transformation-matrix">1.4 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-combine">combine</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-cone">cone</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Cont">Cont</a></td><td valign="top"><a href="mgl_ru_3.html#Cont-sample">3.2.11 Cont &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-cont">cont</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Cont-1">Cont</a></td><td valign="top"><a href="mgl_ru_3.html#Adding-mesh-sample">3.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Cont-2">Cont</a></td><td valign="top"><a href="mgl_ru_3.html#Surf-_0026-Cont-sample">3.6.3 Surf &amp; Cont &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Cont-3">Cont</a></td><td valign="top"><a href="mgl_ru_3.html#Cont-with-labels-sample">3.6.7 Cont и подписи &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Cont3">Cont3</a></td><td valign="top"><a href="mgl_ru_3.html#Cont3-sample">3.3.5 Cont3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-cont3">cont3</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-conta">conta</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-contd">contd</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-ContD">ContD</a></td><td valign="top"><a href="mgl_ru_3.html#ContD-sample">3.2.13 ContD &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-contf">contf</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-ContF">ContF</a></td><td valign="top"><a href="mgl_ru_3.html#ContF-sample">3.2.12 ContF &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-ContF3">ContF3</a></td><td valign="top"><a href="mgl_ru_3.html#ContF3-sample">3.3.6 ContF3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-contf3">contf3</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-ContF3-1">ContF3</a></td><td valign="top"><a href="mgl_ru_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-contfa">contfa</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-contfx">contfx</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-contfy">contfy</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-contfz">contfz</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-ContX">ContX</a></td><td valign="top"><a href="mgl_ru_3.html#Cont-projection-sample">3.3.7 Cont projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-contx">contx</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-ContY">ContY</a></td><td valign="top"><a href="mgl_ru_3.html#Cont-projection-sample">3.3.7 Cont projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-conty">conty</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-contz">contz</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-ContZ">ContZ</a></td><td valign="top"><a href="mgl_ru_3.html#Cont-projection-sample">3.3.7 Cont projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-copy">copy</a></td><td valign="top"><a href="mgl_ru_1.html#Data-create">1.17 Создание данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-cosfft">cosfft</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-crange">crange</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-crange-3">crange</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-crop">crop</a></td><td valign="top"><a href="mgl_ru_1.html#Rearrange-data">1.19 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-crust">crust</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Crust">Crust</a></td><td valign="top"><a href="mgl_ru_3.html#Crust-sample">3.4.19 Crust &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ctick">ctick</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-cumsum">cumsum</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-curve">curve</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-cut">cut</a></td><td valign="top"><a href="mgl_ru_1.html#Cutting">1.2.6 Обрезание</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-cut-4">cut</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-CutMax">CutMax</a></td><td valign="top"><a href="mgl_ru_3.html#CutMinMax-sample">3.3.9 CutMinMax &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-CutMax-1">CutMax</a></td><td valign="top"><a href="mgl_ru_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-CutMin">CutMin</a></td><td valign="top"><a href="mgl_ru_3.html#CutMinMax-sample">3.3.9 CutMinMax &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-CutMin-1">CutMin</a></td><td valign="top"><a href="mgl_ru_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-CutOff">CutOff</a></td><td valign="top"><a href="mgl_ru_3.html#CutOff-sample">3.3.11 CutOff &ndash; пример использования</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_ru_8.html#index_split-2_cp_symbol-1" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-2" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-3" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_6.html b/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_6.html
new file mode 100644
index 0000000..63c02ec
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_6.html
@@ -0,0 +1,321 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: Индекс: D &ndash; M</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: Индекс: D &ndash; M">
+<meta name="keywords" content="Язык MGL для версии 1.11: Индекс: D &ndash; M">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-0"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_7.html#index_split-1" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Индекс: D &ndash; M</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_ru_8.html#index_split-2_cp_symbol-1" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-2" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-3" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-D">D</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-defchr">defchr</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-define">define</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-defnum">defnum</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-defpal">defpal</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-delete">delete</a></td><td valign="top"><a href="mgl_ru_1.html#Rearrange-data">1.19 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-dens">dens</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Dens">Dens</a></td><td valign="top"><a href="mgl_ru_3.html#Dens-sample">3.2.10 Dens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Dens-1">Dens</a></td><td valign="top"><a href="mgl_ru_3.html#g_t2D-plot-sample">3.5.2 Пример графиков 2D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Dens-2">Dens</a></td><td valign="top"><a href="mgl_ru_3.html#g_t3D-plot-sample">3.5.3 Пример графиков 3D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Dens-3">Dens</a></td><td valign="top"><a href="mgl_ru_3.html#Adding-mesh-sample">3.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Dens-4">Dens</a></td><td valign="top"><a href="mgl_ru_3.html#Flow-_0026-Dens-sample">3.6.4 Flow &amp; Dens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-dens3">dens3</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Dens3">Dens3</a></td><td valign="top"><a href="mgl_ru_3.html#Dens3-sample">3.3.4 Dens3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-densa">densa</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-densx">densx</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-DensX">DensX</a></td><td valign="top"><a href="mgl_ru_3.html#Dens-projection-sample">3.3.8 Dens projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-DensY">DensY</a></td><td valign="top"><a href="mgl_ru_3.html#Dens-projection-sample">3.3.8 Dens projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-densy">densy</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-densz">densz</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-DensZ">DensZ</a></td><td valign="top"><a href="mgl_ru_3.html#Dens-projection-sample">3.3.8 Dens projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Dew">Dew</a></td><td valign="top"><a href="mgl_ru_3.html#Dew-sample">3.4.11 Dew &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-dew">dew</a></td><td valign="top"><a href="mgl_ru_1.html#Vector-fields">1.14 Векторные поля</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-diff">diff</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-diff2">diff2</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-divto">divto</a></td><td valign="top"><a href="mgl_ru_1.html#Operators">1.23 Операторы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-dots">dots</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Dots">Dots</a></td><td valign="top"><a href="mgl_ru_3.html#Dots-sample">3.4.20 Dots &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-drop">drop</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Drop">Drop</a></td><td valign="top"><a href="mgl_ru_3.html#Drops-sample">3.6.10 Drops &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Drop-1">Drop</a></td><td valign="top"><a href="mgl_ru_3.html#Molecules-drawing-sample">3.6.11 Рисование молекул</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-E">E</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-else">else</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-elseif">elseif</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-endif">endif</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-envelop">envelop</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Envelop">Envelop</a></td><td valign="top"><a href="mgl_ru_3.html#Envelop-sample">3.7.6 Envelop &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Error">Error</a></td><td valign="top"><a href="mgl_ru_3.html#Error-sample">3.1.15 Error &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-error">error</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-evaluate">evaluate</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-export">export</a></td><td valign="top"><a href="mgl_ru_1.html#File-I_002fO">1.20 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-extend">extend</a></td><td valign="top"><a href="mgl_ru_1.html#Rearrange-data">1.19 Изменение размеров данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-F">F</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-facex">facex</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-facey">facey</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-facez">facez</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fall">fall</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Fall">Fall</a></td><td valign="top"><a href="mgl_ru_3.html#Fall-sample">3.2.6 Fall &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fgets">fgets</a></td><td valign="top"><a href="mgl_ru_1.html#Text-printing">1.7 Вывод текста</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fill">fill</a></td><td valign="top"><a href="mgl_ru_1.html#Data-filling">1.18 Заполнение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fill-1">fill</a></td><td valign="top"><a href="mgl_ru_1.html#Data-filling">1.18 Заполнение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fit">fit</a></td><td valign="top"><a href="mgl_ru_1.html#Nonlinear-fitting">1.16 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Fit">Fit</a></td><td valign="top"><a href="mgl_ru_3.html#Fitting-sample">3.7.5 Fitting &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fits">fits</a></td><td valign="top"><a href="mgl_ru_1.html#Nonlinear-fitting">1.16 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Flow">Flow</a></td><td valign="top"><a href="mgl_ru_3.html#Flow-sample">3.4.9 Flow &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-flow">flow</a></td><td valign="top"><a href="mgl_ru_1.html#Vector-fields">1.14 Векторные поля</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Flow-1">Flow</a></td><td valign="top"><a href="mgl_ru_3.html#Flow-3D-sample">3.4.17 Flow 3D &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Flow-2">Flow</a></td><td valign="top"><a href="mgl_ru_3.html#Flow-_0026-Dens-sample">3.6.4 Flow &amp; Dens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fog">fog</a></td><td valign="top"><a href="mgl_ru_1.html#Fog">1.2.3 Туман</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Fog">Fog</a></td><td valign="top"><a href="mgl_ru_3.html#Surface-in-fog-sample">3.2.3 Surface in fog &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-font">font</a></td><td valign="top"><a href="mgl_ru_1.html#Other-settings">1.2.7 Прочие настройки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fontsize">fontsize</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-for">for</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fplot">fplot</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fsurf">fsurf</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-func">func</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-G">G</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-grad">grad</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Grad">Grad</a></td><td valign="top"><a href="mgl_ru_3.html#Grad-sample">3.2.15 Grad &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-grid">grid</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-and-Colorbar">1.8 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-grid2">grid2</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-grid3">grid3</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-grida">grida</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-H">H</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-hankel">hankel</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-hist">hist</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-I">I</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-idset">idset</a></td><td valign="top"><a href="mgl_ru_1.html#Data-create">1.17 Создание данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-if">if</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-import">import</a></td><td valign="top"><a href="mgl_ru_1.html#File-I_002fO">1.20 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-info">info</a></td><td valign="top"><a href="mgl_ru_1.html#Data-create">1.17 Создание данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-inplot">inplot</a></td><td valign="top"><a href="mgl_ru_1.html#Transformation-matrix">1.4 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-insert">insert</a></td><td valign="top"><a href="mgl_ru_1.html#Rearrange-data">1.19 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-integrate">integrate</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-J">J</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-jacobian">jacobian</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-L">L</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Legend">Legend</a></td><td valign="top"><a href="mgl_ru_3.html#Legend-sample">3.6.1 Legend &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-legend">legend</a></td><td valign="top"><a href="mgl_ru_1.html#Legend">1.9 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-legend-3">legend</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-legendbox">legendbox</a></td><td valign="top"><a href="mgl_ru_1.html#Legend">1.9 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-legendmarks">legendmarks</a></td><td valign="top"><a href="mgl_ru_1.html#Legend">1.9 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-light">light</a></td><td valign="top"><a href="mgl_ru_1.html#Lighting">1.2.2 Освещение</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Light">Light</a></td><td valign="top"><a href="mgl_ru_3.html#Several-light-sample">3.6.5 Несколько источников света</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Line">Line</a></td><td valign="top"><a href="mgl_ru_3.html#Line-styles-sample">3.5.4 Пример стилей линий и маркеров</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-line">line</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Line-1">Line</a></td><td valign="top"><a href="mgl_ru_3.html#Arrow-styles-sample">3.5.5 Пример стилей стрелок</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-linewidth">linewidth</a></td><td valign="top"><a href="mgl_ru_1.html#Default-sizes">1.2.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-list">list</a></td><td valign="top"><a href="mgl_ru_1.html#Data-create">1.17 Создание данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-M">M</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-map">map</a></td><td valign="top"><a href="mgl_ru_1.html#Dual-plotting">1.13 Парные графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Map">Map</a></td><td valign="top"><a href="mgl_ru_3.html#Map-sample">3.4.4 Map &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-mark">mark</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Mark">Mark</a></td><td valign="top"><a href="mgl_ru_3.html#Mark-sample">3.1.17 Mark &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Mark-1">Mark</a></td><td valign="top"><a href="mgl_ru_3.html#Line-styles-sample">3.5.4 Пример стилей линий и маркеров</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-marksize">marksize</a></td><td valign="top"><a href="mgl_ru_1.html#Default-sizes">1.2.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-marksize-2">marksize</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-max">max</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-mesh">mesh</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Mesh">Mesh</a></td><td valign="top"><a href="mgl_ru_3.html#Mesh-sample">3.2.5 Mesh &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-meshnum">meshnum</a></td><td valign="top"><a href="mgl_ru_1.html#Other-settings">1.2.7 Прочие настройки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-meshnum-2">meshnum</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-mglParse">mglParse</a></td><td valign="top"><a href="mgl_ru_3.html#Parser-sample">3.7.11 Parser &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-mglPDE">mglPDE</a></td><td valign="top"><a href="mgl_ru_3.html#PDE-sample">3.7.9 PDE &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-mglQO2d">mglQO2d</a></td><td valign="top"><a href="mgl_ru_3.html#Beam-tracing-sample">3.7.10 Beam tracing &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-mglRay">mglRay</a></td><td valign="top"><a href="mgl_ru_3.html#PDE-sample">3.7.9 PDE &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-mglRay-1">mglRay</a></td><td valign="top"><a href="mgl_ru_3.html#Beam-tracing-sample">3.7.10 Beam tracing &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-min">min</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-mirror">mirror</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-modify">modify</a></td><td valign="top"><a href="mgl_ru_1.html#Data-filling">1.18 Заполнение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-modify-1">modify</a></td><td valign="top"><a href="mgl_ru_1.html#Data-filling">1.18 Заполнение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-momentum">momentum</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-multo">multo</a></td><td valign="top"><a href="mgl_ru_1.html#Operators">1.23 Операторы</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_ru_8.html#index_split-2_cp_symbol-1" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-2" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-3" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_7.html b/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_7.html
new file mode 100644
index 0000000..d197eb2
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_7.html
@@ -0,0 +1,302 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: Индекс: N &ndash; S</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: Индекс: N &ndash; S">
+<meta name="keywords" content="Язык MGL для версии 1.11: Индекс: N &ndash; S">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-1"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_6.html#index_split-0" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_8.html#index_split-2" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Индекс: N &ndash; S</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_ru_8.html#index_split-2_cp_symbol-1" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-2" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-3" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-N">N</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-new">new</a></td><td valign="top"><a href="mgl_ru_1.html#Data-create">1.17 Создание данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-next">next</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-norm">norm</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-normsl">normsl</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-O">O</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-once">once</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-origin">origin</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-P">P</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-palette">palette</a></td><td valign="top"><a href="mgl_ru_1.html#Other-settings">1.2.7 Прочие настройки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-pde">pde</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-perspective">perspective</a></td><td valign="top"><a href="mgl_ru_1.html#Transformation-matrix">1.4 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-pipe">pipe</a></td><td valign="top"><a href="mgl_ru_1.html#Vector-fields">1.14 Векторные поля</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Pipe">Pipe</a></td><td valign="top"><a href="mgl_ru_3.html#Pipe-sample">3.4.10 Pipe &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Pipe-1">Pipe</a></td><td valign="top"><a href="mgl_ru_3.html#Pipe-3D-sample">3.4.18 Pipe 3D &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Plot">Plot</a></td><td valign="top"><a href="mgl_ru_3.html#Plot-sample">3.1.1 Plot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-plot">plot</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Plot-1">Plot</a></td><td valign="top"><a href="mgl_ru_3.html#g_t1D-plot-sample">3.5.1 Пример графиков 1D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Plot-2">Plot</a></td><td valign="top"><a href="mgl_ru_3.html#Legend-sample">3.6.1 Legend &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Plot-3">Plot</a></td><td valign="top"><a href="mgl_ru_3.html#Semi_002dlog-sample">3.7.3 Semi-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Plot-4">Plot</a></td><td valign="top"><a href="mgl_ru_3.html#Log_002dlog-sample">3.7.4 Log-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-plotfactor">plotfactor</a></td><td valign="top"><a href="mgl_ru_1.html#Zooming">1.2.5 Масштабирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-put">put</a></td><td valign="top"><a href="mgl_ru_1.html#Data-filling">1.18 Заполнение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Puts">Puts</a></td><td valign="top"><a href="mgl_ru_3.html#Text-styles-sample">3.5.6 Пример стилей текста</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Puts-1">Puts</a></td><td valign="top"><a href="mgl_ru_3.html#TeX-parsing-sample">3.5.7 Пример TeX формулы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Puts-2">Puts</a></td><td valign="top"><a href="mgl_ru_3.html#Font-faces-sample">3.5.8 Примеры начертаний шрифта</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-PutsFit">PutsFit</a></td><td valign="top"><a href="mgl_ru_3.html#Fitting-sample">3.7.5 Fitting &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-putsfit">putsfit</a></td><td valign="top"><a href="mgl_ru_1.html#Nonlinear-fitting">1.16 Nonlinear fitting</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-Q">Q</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-qo2d">qo2d</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-quadplot">quadplot</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-R">R</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Radar">Radar</a></td><td valign="top"><a href="mgl_ru_3.html#Radar-sample">3.1.2 Radar &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-radar">radar</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ranges">ranges</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ray">ray</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-read">read</a></td><td valign="top"><a href="mgl_ru_1.html#File-I_002fO">1.20 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-readall">readall</a></td><td valign="top"><a href="mgl_ru_1.html#File-I_002fO">1.20 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-readhdf">readhdf</a></td><td valign="top"><a href="mgl_ru_1.html#File-I_002fO">1.20 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-readmat">readmat</a></td><td valign="top"><a href="mgl_ru_1.html#File-I_002fO">1.20 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-rearrange">rearrange</a></td><td valign="top"><a href="mgl_ru_1.html#Rearrange-data">1.19 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-rect">rect</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Region">Region</a></td><td valign="top"><a href="mgl_ru_3.html#Region-sample">3.1.13 Region &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-region">region</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Region-1">Region</a></td><td valign="top"><a href="mgl_ru_3.html#Region-gradient-sample">3.1.14 Region с градиентной заливкой &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-resize">resize</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-return">return</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-roll">roll</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-rotate">rotate</a></td><td valign="top"><a href="mgl_ru_1.html#Transformation-matrix">1.4 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-rotatetext">rotatetext</a></td><td valign="top"><a href="mgl_ru_1.html#Other-settings">1.2.7 Прочие настройки</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-S">S</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-save">save</a></td><td valign="top"><a href="mgl_ru_1.html#File-I_002fO">1.20 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-savehdf">savehdf</a></td><td valign="top"><a href="mgl_ru_1.html#File-I_002fO">1.20 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-setsize">setsize</a></td><td valign="top"><a href="mgl_ru_1.html#Export-to-file">1.5 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-SetTicks">SetTicks</a></td><td valign="top"><a href="mgl_ru_3.html#Semi_002dlog-sample">3.7.3 Semi-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-SetTicks-1">SetTicks</a></td><td valign="top"><a href="mgl_ru_3.html#Log_002dlog-sample">3.7.4 Log-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-SetTicksVal">SetTicksVal</a></td><td valign="top"><a href="mgl_ru_3.html#Manual-ticks-sample">3.7.12 Особые метки по осям</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-SetTicksVal-1">SetTicksVal</a></td><td valign="top"><a href="mgl_ru_3.html#ColumnPlot-sample">3.7.13 ColumnPlot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-SetTicksVal-2">SetTicksVal</a></td><td valign="top"><a href="mgl_ru_3.html#StickPlot-sample">3.7.14 StickPlot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Sew">Sew</a></td><td valign="top"><a href="mgl_ru_3.html#Sew-sample">3.7.7 Sew &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-sew">sew</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-sinfft">sinfft</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-smooth">smooth</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Sphere">Sphere</a></td><td valign="top"><a href="mgl_ru_3.html#Molecules-drawing-sample">3.6.11 Рисование молекул</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-sphere">sphere</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-squeeze">squeeze</a></td><td valign="top"><a href="mgl_ru_1.html#Rearrange-data">1.19 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-stem">stem</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Stem">Stem</a></td><td valign="top"><a href="mgl_ru_3.html#Stem-sample">3.1.12 Stem &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-step">step</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Step">Step</a></td><td valign="top"><a href="mgl_ru_3.html#Step-sample">3.1.11 Step &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-stfa">stfa</a></td><td valign="top"><a href="mgl_ru_1.html#Dual-plotting">1.13 Парные графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-STFA">STFA</a></td><td valign="top"><a href="mgl_ru_3.html#STFA-sample">3.7.8 STFA &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-stfad">stfad</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-stickplot">stickplot</a></td><td valign="top"><a href="mgl_ru_1.html#Transformation-matrix">1.4 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-stop">stop</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-subdata">subdata</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-SubPlot">SubPlot</a></td><td valign="top"><a href="mgl_ru_3.html#g_t1D-plot-sample">3.5.1 Пример графиков 1D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-subplot">subplot</a></td><td valign="top"><a href="mgl_ru_1.html#Transformation-matrix">1.4 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-SubPlot-1">SubPlot</a></td><td valign="top"><a href="mgl_ru_3.html#Adding-mesh-sample">3.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-subto">subto</a></td><td valign="top"><a href="mgl_ru_1.html#Operators">1.23 Операторы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-sum">sum</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#Surf-sample">3.2.1 Surf &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-surf">surf</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf-1">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#Transparent-surface-sample">3.2.2 Transparent surface &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf-2">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#Surface-in-fog-sample">3.2.3 Surface in fog &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf-3">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#Sharp-colors-sample">3.2.4 Sharp colors &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf-4">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#g_t2D-plot-sample">3.5.2 Пример графиков 2D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf-5">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#g_t3D-plot-sample">3.5.3 Пример графиков 3D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf-6">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#Adding-mesh-sample">3.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf-7">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#Surf-_0026-Cont-sample">3.6.3 Surf &amp; Cont &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf-8">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#Several-light-sample">3.6.5 Несколько источников света</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf-9">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#Mirrored-surface-sample">3.6.6 Отражение поверхности</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-surf3">surf3</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf3">Surf3</a></td><td valign="top"><a href="mgl_ru_3.html#Surf3-sample">3.3.1 Surf3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf3-1">Surf3</a></td><td valign="top"><a href="mgl_ru_3.html#CutMinMax-sample">3.3.9 CutMinMax &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf3-2">Surf3</a></td><td valign="top"><a href="mgl_ru_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf3-3">Surf3</a></td><td valign="top"><a href="mgl_ru_3.html#CutOff-sample">3.3.11 CutOff &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf3-4">Surf3</a></td><td valign="top"><a href="mgl_ru_3.html#Coloring-by-coordinates-sample">3.6.9 Окрашивание по положению грани</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf3A">Surf3A</a></td><td valign="top"><a href="mgl_ru_3.html#Surf3A-sample">3.4.13 Surf3A &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-surf3a">surf3a</a></td><td valign="top"><a href="mgl_ru_1.html#Dual-plotting">1.13 Парные графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf3C">Surf3C</a></td><td valign="top"><a href="mgl_ru_3.html#Surf3C-sample">3.4.12 Surf3C &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-surf3c">surf3c</a></td><td valign="top"><a href="mgl_ru_1.html#Dual-plotting">1.13 Парные графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-surfa">surfa</a></td><td valign="top"><a href="mgl_ru_1.html#Dual-plotting">1.13 Парные графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-SurfA">SurfA</a></td><td valign="top"><a href="mgl_ru_3.html#SurfA-sample">3.4.2 SurfA &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-SurfC">SurfC</a></td><td valign="top"><a href="mgl_ru_3.html#SurfC-sample">3.4.1 SurfC &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-surfc">surfc</a></td><td valign="top"><a href="mgl_ru_1.html#Dual-plotting">1.13 Парные графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-swap">swap</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_ru_8.html#index_split-2_cp_symbol-1" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-2" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-3" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_8.html b/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_8.html
new file mode 100644
index 0000000..1f8da49
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_8.html
@@ -0,0 +1,271 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: Индекс: T &ndash; Ц</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: Индекс: T &ndash; Ц">
+<meta name="keywords" content="Язык MGL для версии 1.11: Индекс: T &ndash; Ц">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-2"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_7.html#index_split-1" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[ &gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Индекс: T &ndash; Ц</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#index_split-2_cp_symbol-1" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_symbol-2" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_symbol-3" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-T">T</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Tens">Tens</a></td><td valign="top"><a href="mgl_ru_3.html#Tens-sample">3.1.3 Tens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-tens">tens</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Ternary">Ternary</a></td><td valign="top"><a href="mgl_ru_3.html#Ternary-plot-sample">3.6.8 Ternary plot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ternary">ternary</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Text">Text</a></td><td valign="top"><a href="mgl_ru_3.html#Text-sample">3.1.20 Text &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-text">text</a></td><td valign="top"><a href="mgl_ru_1.html#Text-printing">1.7 Вывод текста</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-textmark">textmark</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-TextMark">TextMark</a></td><td valign="top"><a href="mgl_ru_3.html#TextMark-sample">3.1.18 TextMark &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ticklen">ticklen</a></td><td valign="top"><a href="mgl_ru_1.html#Default-sizes">1.2.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-tickstl">tickstl</a></td><td valign="top"><a href="mgl_ru_1.html#Default-sizes">1.2.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-tile">tile</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Tile">Tile</a></td><td valign="top"><a href="mgl_ru_3.html#Tile-sample">3.2.8 Tile &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-tiles">tiles</a></td><td valign="top"><a href="mgl_ru_1.html#Dual-plotting">1.13 Парные графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-TileS">TileS</a></td><td valign="top"><a href="mgl_ru_3.html#TileS-sample">3.4.3 TileS &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-title">title</a></td><td valign="top"><a href="mgl_ru_1.html#Text-printing">1.7 Вывод текста</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-tlabel">tlabel</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-and-Colorbar">1.8 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-torus">torus</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Torus">Torus</a></td><td valign="top"><a href="mgl_ru_3.html#Torus-sample">3.1.21 Torus &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-trace">trace</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Traj">Traj</a></td><td valign="top"><a href="mgl_ru_3.html#Traj-sample">3.4.5 Traj &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-traj">traj</a></td><td valign="top"><a href="mgl_ru_1.html#Vector-fields">1.14 Векторные поля</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-transform">transform</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-transforma">transforma</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-transparent">transparent</a></td><td valign="top"><a href="mgl_ru_1.html#Transparency">1.2.1 Прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-transpose">transpose</a></td><td valign="top"><a href="mgl_ru_1.html#Rearrange-data">1.19 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-TranspType">TranspType</a></td><td valign="top"><a href="mgl_ru_3.html#Normal-transparency">3.5.11 Обычная прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-transptype">transptype</a></td><td valign="top"><a href="mgl_ru_1.html#Transparency">1.2.1 Прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-TranspType-1">TranspType</a></td><td valign="top"><a href="mgl_ru_3.html#Glass_002dlike-transparency">3.5.12 &quot;Стеклянная&quot; прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-TranspType-2">TranspType</a></td><td valign="top"><a href="mgl_ru_3.html#Lamp_002dlike-transparency">3.5.13 &quot;Ламповая&quot; прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-tricont">tricont</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-triplot">triplot</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Tube">Tube</a></td><td valign="top"><a href="mgl_ru_3.html#Tube-sample">3.1.19 Tube &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-tube">tube</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-V">V</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-var">var</a></td><td valign="top"><a href="mgl_ru_1.html#Data-create">1.17 Создание данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-vect">vect</a></td><td valign="top"><a href="mgl_ru_1.html#Vector-fields">1.14 Векторные поля</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Vect">Vect</a></td><td valign="top"><a href="mgl_ru_3.html#Vect-sample">3.4.6 Vect &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Vect-1">Vect</a></td><td valign="top"><a href="mgl_ru_3.html#Vect-3D-sample">3.4.14 Vect 3D &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-VectC">VectC</a></td><td valign="top"><a href="mgl_ru_3.html#VectC-sample">3.4.8 VectC &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-vectc">vectc</a></td><td valign="top"><a href="mgl_ru_1.html#Vector-fields">1.14 Векторные поля</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-VectC-1">VectC</a></td><td valign="top"><a href="mgl_ru_3.html#VectC-3D-sample">3.4.16 VectC 3D &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-vectl">vectl</a></td><td valign="top"><a href="mgl_ru_1.html#Vector-fields">1.14 Векторные поля</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-VectL">VectL</a></td><td valign="top"><a href="mgl_ru_3.html#VectL-sample">3.4.7 VectL &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-VectL-1">VectL</a></td><td valign="top"><a href="mgl_ru_3.html#VectL-3D-sample">3.4.15 VectL 3D &ndash; пример использования</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-W">W</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-write">write</a></td><td valign="top"><a href="mgl_ru_1.html#Export-to-file">1.5 Экспорт в файл</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-X">X</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-xlabel">xlabel</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-and-Colorbar">1.8 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-xrange">xrange</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-xrange-3">xrange</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-xtick">xtick</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-Y">Y</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ylabel">ylabel</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-and-Colorbar">1.8 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-yrange">yrange</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-yrange-3">yrange</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ytick">ytick</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-Z">Z</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-zlabel">zlabel</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-and-Colorbar">1.8 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-zoom">zoom</a></td><td valign="top"><a href="mgl_ru_1.html#Zooming">1.2.5 Масштабирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-zrange">zrange</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-zrange-3">zrange</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ztick">ztick</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_symbol-1">С</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-_0421_0442_0438_043bx-_043b_0438_043d_0438_0439">Стиль линий</a></td><td valign="top"><a href="mgl_ru_1.html#Line-styles">1.1.2 Стиль линий</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-_0421_0442_0438_043bx-_043c_0430_0440_043ae_0440_043e_0432">Стиль маркеров</a></td><td valign="top"><a href="mgl_ru_1.html#Line-styles">1.1.2 Стиль линий</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-_0421_0442_0438_043bx-_0441_0442_0440e_043b_043e_043a">Стиль стрелок</a></td><td valign="top"><a href="mgl_ru_1.html#Line-styles">1.1.2 Стиль линий</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-_0421_0442_0438_043bx-_0442e_043a_0441_0442_0430">Стиль текста</a></td><td valign="top"><a href="mgl_ru_1.html#Font-styles">1.1.4 Стиль текста</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_symbol-2">Т</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-_0422e_043a_0441_0442_043e_0432_044be-_0444_043e_0440_043c_0443_043b_044b">Текстовые формулы</a></td><td valign="top"><a href="mgl_ru_1.html#Textual-formulas">1.1.5 Текстовые формулы</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_symbol-3">Ц</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-C_0432e_0442_043e_0432_0430ya-_0441_0445e_043c_0430">Цветовая схема</a></td><td valign="top"><a href="mgl_ru_1.html#Color-scheme">1.1.3 Цветовая схема</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#index_split-2_cp_symbol-1" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_symbol-2" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_symbol-3" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_abt.html b/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_abt.html
new file mode 100644
index 0000000..7a872c7
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_abt.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: About This Document</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: About This Document">
+<meta name="keywords" content="Язык MGL для версии 1.11: About This Document">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="SEC_About"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1>About This Document</h1>
+<p>
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+</p>
+<p>
+  The buttons in the navigation panels have the following meaning:
+</p>
+<table border="1">
+  <tr>
+    <th> Button </th>
+    <th> Name </th>
+    <th> Go to </th>
+    <th> From 1.2.3 go to</th>
+  </tr>
+  <tr>
+    <td align="center"> [ &lt; ] </td>
+    <td align="center">Back</td>
+    <td>Previous section in reading order</td>
+    <td>1.2.2</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &gt; ] </td>
+    <td align="center">Forward</td>
+    <td>Next section in reading order</td>
+    <td>1.2.4</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &lt;&lt; ] </td>
+    <td align="center">FastBack</td>
+    <td>Beginning of this chapter or previous chapter</td>
+    <td>1</td>
+  </tr>
+  <tr>
+    <td align="center"> [ Up ] </td>
+    <td align="center">Up</td>
+    <td>Up section</td>
+    <td>1.2</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &gt;&gt; ] </td>
+    <td align="center">FastForward</td>
+    <td>Next chapter</td>
+    <td>2</td>
+  </tr>
+  <tr>
+    <td align="center"> [Top] </td>
+    <td align="center">Top</td>
+    <td>Cover (top) of document</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [Contents] </td>
+    <td align="center">Contents</td>
+    <td>Table of contents</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [Index] </td>
+    <td align="center">Index</td>
+    <td>Index</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [ ? ] </td>
+    <td align="center">About</td>
+    <td>About (help)</td>
+    <td> &nbsp; </td>
+  </tr>
+</table>
+
+<p>
+  where the <strong> Example </strong> assumes that the current position is at <strong> Subsubsection One-Two-Three </strong> of a document of the following structure:
+</p>
+
+<ul>
+  <li> 1. Section One
+    <ul>
+      <li>1.1 Subsection One-One
+        <ul>
+          <li>...</li>
+        </ul>
+      </li>
+      <li>1.2 Subsection One-Two
+        <ul>
+          <li>1.2.1 Subsubsection One-Two-One</li>
+          <li>1.2.2 Subsubsection One-Two-Two</li>
+          <li>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp;
+            <strong>&lt;== Current Position </strong></li>
+          <li>1.2.4 Subsubsection One-Two-Four</li>
+        </ul>
+      </li>
+      <li>1.3 Subsection One-Three
+        <ul>
+          <li>...</li>
+        </ul>
+      </li>
+      <li>1.4 Subsection One-Four</li>
+    </ul>
+  </li>
+</ul>
+
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_toc.html b/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_toc.html
new file mode 100644
index 0000000..62d91e3
--- /dev/null
+++ b/debian/tmp/usr/share/doc/mathgl/mgl_ru.html/mgl_ru_toc.html
@@ -0,0 +1,283 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: Table of Contents</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: Table of Contents">
+<meta name="keywords" content="Язык MGL для версии 1.11: Table of Contents">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="SEC_Contents"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1>Table of Contents</h1>
+<div class="contents">
+
+<ul class="toc">
+  <li><a name="toc-YA_0437_044b_043a-MGL-1" href="mgl_ru_1.html#MGL-interface">1. Язык MGL</a>
+  <ul class="toc">
+    <li><a name="toc-_041e_0441_043d_043e_0432_043d_044be-_043f_0440_0438_043dc_0438_043f_044b" href="mgl_ru_1.html#General-concepts">1.1 Основные принципы</a>
+    <ul class="toc">
+      <li><a name="toc-_041e_0441_0438-_043a_043e_043e_0440_0434_0438_043d_0430_0442" href="mgl_ru_1.html#Coordinate-axes">1.1.1 Оси координат</a></li>
+      <li><a name="toc-_0421_0442_0438_043bx-_043b_0438_043d_0438_0439" href="mgl_ru_1.html#Line-styles">1.1.2 Стиль линий</a></li>
+      <li><a name="toc-C_0432e_0442_043e_0432_0430ya-_0441_0445e_043c_0430" href="mgl_ru_1.html#Color-scheme">1.1.3 Цветовая схема</a></li>
+      <li><a name="toc-_0421_0442_0438_043bx-_0442e_043a_0441_0442_0430" href="mgl_ru_1.html#Font-styles">1.1.4 Стиль текста</a></li>
+      <li><a name="toc-_0422e_043a_0441_0442_043e_0432_044be-_0444_043e_0440_043c_0443_043b_044b" href="mgl_ru_1.html#Textual-formulas">1.1.5 Текстовые формулы</a></li>
+    </ul></li>
+    <li><a name="toc-_041d_0430_0441_0442_0440_043e_0439_043a_0430-g_0440_0430_0444_0438_043a_0430" href="mgl_ru_1.html#Graphics-setup">1.2 Настройка графика</a>
+    <ul class="toc">
+      <li><a name="toc-_041f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x" href="mgl_ru_1.html#Transparency">1.2.1 Прозрачность</a></li>
+      <li><a name="toc-_041e_0441_0432e_0449e_043d_0438e" href="mgl_ru_1.html#Lighting">1.2.2 Освещение</a></li>
+      <li><a name="toc-_0422_0443_043c_0430_043d" href="mgl_ru_1.html#Fog">1.2.3 Туман</a></li>
+      <li><a name="toc-_0411_0430_0437_043e_0432_044be-_0440_0430_0437_043ce_0440_044b" href="mgl_ru_1.html#Default-sizes">1.2.4 Базовые размеры</a></li>
+      <li><a name="toc-_041c_0430_0441_0448_0442_0430_0431_0438_0440_043e_0432_0430_043d_0438e" href="mgl_ru_1.html#Zooming">1.2.5 Масштабирование</a></li>
+      <li><a name="toc-_041e_0431_0440e_0437_0430_043d_0438e" href="mgl_ru_1.html#Cutting">1.2.6 Обрезание</a></li>
+      <li><a name="toc-_041f_0440_043e_0447_0438e-_043d_0430_0441_0442_0440_043e_0439_043a_0438" href="mgl_ru_1.html#Other-settings">1.2.7 Прочие настройки</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0430_0440_0430_043ce_0442_0440_044b-_043e_0441e_0439-_043a_043e_043e_0440_0434_0438_043d_0430_0442" href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></li>
+    <li><a name="toc-_041c_0430_0442_0440_0438c_0430-_043f_0440e_043e_0431_0440_0430_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_1.html#Transformation-matrix">1.4 Матрица преобразования</a></li>
+    <li><a name="toc-_042d_043a_0441_043f_043e_0440_0442-_0432-_0444_0430_0439_043b" href="mgl_ru_1.html#Export-to-file">1.5 Экспорт в файл</a></li>
+    <li><a name="toc-_0420_0438_0441_043e_0432_0430_043d_0438e-_043f_0440_0438_043c_0438_0442_0438_0432_043e_0432" href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></li>
+    <li><a name="toc-_0412_044b_0432_043e_0434-_0442e_043a_0441_0442_0430" href="mgl_ru_1.html#Text-printing">1.7 Вывод текста</a></li>
+    <li><a name="toc-_041e_0441_0438-_0438-Colorbar" href="mgl_ru_1.html#Axis-and-Colorbar">1.8 Оси и Colorbar</a></li>
+    <li><a name="toc-_041bege_043d_0434_0430" href="mgl_ru_1.html#Legend">1.9 Легенда</a></li>
+    <li><a name="toc-1D-g_0440_0430_0444_0438_043a_0438" href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></li>
+    <li><a name="toc-2D-g_0440_0430_0444_0438_043a_0438" href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></li>
+    <li><a name="toc-3D-g_0440_0430_0444_0438_043a_0438" href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></li>
+    <li><a name="toc-_041f_0430_0440_043d_044be-g_0440_0430_0444_0438_043a_0438" href="mgl_ru_1.html#Dual-plotting">1.13 Парные графики</a></li>
+    <li><a name="toc-_0412e_043a_0442_043e_0440_043d_044be-_043f_043e_043bya" href="mgl_ru_1.html#Vector-fields">1.14 Векторные поля</a></li>
+    <li><a name="toc-_041f_0440_043e_0447_0438e-g_0440_0430_0444_0438_043a_0438" href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></li>
+    <li><a name="toc-Nonlinear-fitting-1" href="mgl_ru_1.html#Nonlinear-fitting">1.16 Nonlinear fitting</a></li>
+    <li><a name="toc-_0421_043e_0437_0434_0430_043d_0438e-_0434_0430_043d_043d_044b_0445" href="mgl_ru_1.html#Data-create">1.17 Создание данных</a></li>
+    <li><a name="toc-_0417_0430_043f_043e_043b_043de_043d_0438e-_0434_0430_043d_043d_044b_0445" href="mgl_ru_1.html#Data-filling">1.18 Заполнение данных</a></li>
+    <li><a name="toc-_0418_0437_043ce_043de_043d_0438e-_0440_0430_0437_043ce_0440_043e_0432-_0434_0430_043d_043d_044b_0445" href="mgl_ru_1.html#Rearrange-data">1.19 Изменение размеров данных</a></li>
+    <li><a name="toc-_0427_0442e_043d_0438e_002f_0441_043e_0445_0440_0430_043de_043d_0438e-_0434_0430_043d_043d_044b_0445" href="mgl_ru_1.html#File-I_002fO">1.20 Чтение/сохранение данных</a></li>
+    <li><a name="toc-_0421_043e_0437_0434_0430_043d_0438e-_043d_043e_0432_044b_0445-_0434_0430_043d_043d_044b_0445" href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></li>
+    <li><a name="toc-_0418_0437_043ce_043de_043d_0438e-_0434_0430_043d_043d_044b_0445" href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></li>
+    <li><a name="toc-_041e_043fe_0440_0430_0442_043e_0440_044b" href="mgl_ru_1.html#Operators">1.23 Операторы</a></li>
+    <li><a name="toc-_041f_0440_043eg_0440_0430_043c_043c_0438_0440_043e_0432_0430_043d_0438e" href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></li>
+    <li><a name="toc-_041e_043fc_0438_0438-_043a_043e_043c_0430_043d_0434" href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></li>
+    <li><a name="toc-_0421_0443_0444_0444_0438_043a_0441_044b-_043fe_0440e_043ce_043d_043d_044b_0445" href="mgl_ru_1.html#Suffixes">1.26 Суффиксы переменных</a></li>
+    <li><a name="toc-_0423_0442_0438_043b_0438_0442_044b-_0434_043bya-MGL" href="mgl_ru_1.html#Utilities">1.27 Утилиты для MGL</a></li>
+  </ul></li>
+  <li><a name="toc-MathGL-examples" href="mgl_ru_2.html#Examples">2. MathGL examples</a>
+  <ul class="toc">
+    <li><a name="toc-Basic-usage-1" href="mgl_ru_2.html#Basic-usage">2.1 Basic usage</a></li>
+    <li><a name="toc-Advanced-usage-1" href="mgl_ru_2.html#Advanced-usage">2.2 Advanced usage</a>
+    <ul class="toc">
+      <li><a name="toc-Subplots-1" href="mgl_ru_2.html#Subplots">2.2.1 Subplots</a></li>
+      <li><a name="toc-Axis-and-grids-1" href="mgl_ru_2.html#Axis-and-grids">2.2.2 Axis and grids</a></li>
+      <li><a name="toc-Curvilinear-coordinates-1" href="mgl_ru_2.html#Curvilinear-coordinates">2.2.3 Curvilinear coordinates</a></li>
+      <li><a name="toc-Text-printing-example-1" href="mgl_ru_2.html#Text-printing-example">2.2.4 Text printing example</a></li>
+    </ul></li>
+    <li><a name="toc-Data-handling-1" href="mgl_ru_2.html#Data-handling">2.3 Data handling</a>
+    <ul class="toc">
+      <li><a name="toc-Array-creation-1" href="mgl_ru_2.html#Array-creation">2.3.1 Array creation</a></li>
+      <li><a name="toc-Data-changing-1" href="mgl_ru_2.html#Data-changing">2.3.2 Data changing</a></li>
+    </ul></li>
+    <li><a name="toc-Data-plotting-1" href="mgl_ru_2.html#Data-plotting">2.4 Data plotting</a>
+    <ul class="toc">
+      <li><a name="toc-Plots-for-1D-data-1" href="mgl_ru_2.html#Plots-for-1D-data">2.4.1 Plots for 1D data</a></li>
+      <li><a name="toc-Plots-for-2D-data-1" href="mgl_ru_2.html#Plots-for-2D-data">2.4.2 Plots for 2D data</a></li>
+      <li><a name="toc-Plots-for-3D-data-1" href="mgl_ru_2.html#Plots-for-3D-data">2.4.3 Plots for 3D data</a></li>
+      <li><a name="toc-Surface-transparency-1" href="mgl_ru_2.html#Surface-transparency">2.4.4 Surface transparency</a></li>
+    </ul></li>
+    <li><a name="toc-Hints-1" href="mgl_ru_2.html#Hints">2.5 Hints</a>
+    <ul class="toc">
+      <li><a name="toc-_0060_0060Compound_0027_0027-graphics-1" href="mgl_ru_2.html#g_t_0060_0060Compound_0027_0027-graphics">2.5.1 &ldquo;Compound&rdquo; graphics</a></li>
+      <li><a name="toc-Two-axes-in-one-plot-1" href="mgl_ru_2.html#Two-axes-in-one-plot">2.5.2 Two axes in one plot</a></li>
+      <li><a name="toc-Titles-for-the-plot-1" href="mgl_ru_2.html#Titles-for-the-plot">2.5.3 Titles for the plot</a></li>
+      <li><a name="toc-Changing-of-the-color-range-1" href="mgl_ru_2.html#Changing-of-the-color-range">2.5.4 Changing of the color range</a></li>
+      <li><a name="toc-Management-of-a-point-cutting-1" href="mgl_ru_2.html#Management-of-a-point-cutting">2.5.5 Management of a point cutting</a></li>
+      <li><a name="toc-Vector-field-visualization-1" href="mgl_ru_2.html#Vector-field-visualization">2.5.6 Vector field visualization</a></li>
+      <li><a name="toc-Several-light-sources-1" href="mgl_ru_2.html#Several-light-sources">2.5.7 Several light sources</a></li>
+      <li><a name="toc-CutMin-and-CutMax-features-1" href="mgl_ru_2.html#CutMin-and-CutMax-features">2.5.8 CutMin and CutMax features</a></li>
+      <li><a name="toc-Mapping-visualization-1" href="mgl_ru_2.html#Mapping-visualization">2.5.9 Mapping visualization</a></li>
+      <li><a name="toc-Log_002dscaled-plot-1" href="mgl_ru_2.html#Log_002dscaled-plot">2.5.10 Log-scaled plot</a></li>
+      <li><a name="toc-Nonlinear-fitting-hints-1" href="mgl_ru_2.html#Nonlinear-fitting-hints">2.5.11 Nonlinear fitting hints</a></li>
+      <li><a name="toc-PDE-solving-hints-1" href="mgl_ru_2.html#PDE-solving-hints">2.5.12 PDE solving hints</a></li>
+      <li><a name="toc-Stereo-image-1" href="mgl_ru_2.html#Stereo-image">2.5.13 Stereo image</a></li>
+    </ul>
+</li>
+  </ul></li>
+  <li><a name="toc-_041f_0440_0438_043ce_0440_044b-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya-MathGL" href="mgl_ru_3.html#Samples">3. Примеры использования MathGL</a>
+  <ul class="toc">
+    <li><a name="toc-_041f_0440_0438_043ce_0440_044b-1D-g_0440_0430_0444_0438_043a_043e_0432" href="mgl_ru_3.html#g_t1D-plotting-samples">3.1 Примеры 1D графиков</a>
+    <ul class="toc">
+      <li><a name="toc-Plot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Plot-sample">3.1.1 Plot &ndash; пример использования</a></li>
+      <li><a name="toc-Radar-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Radar-sample">3.1.2 Radar &ndash; пример использования</a></li>
+      <li><a name="toc-Tens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Tens-sample">3.1.3 Tens &ndash; пример использования</a></li>
+      <li><a name="toc-Area-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Area-sample">3.1.4 Area &ndash; пример использования</a></li>
+      <li><a name="toc-Area-_0441-g_0440_0430_0434_0438e_043d_0442_043d_043e_0439-_0437_0430_043b_0438_0432_043a_043e_0439-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Area-gradient-sample">3.1.5 Area с градиентной заливкой &ndash; пример использования</a></li>
+      <li><a name="toc-Bars-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Bars-sample">3.1.6 Bars &ndash; пример использования</a></li>
+      <li><a name="toc-Bars-_00282-c_0432e_0442_0430_0029-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Bars-2-colors-sample">3.1.7 Bars (2 цвета) &ndash; пример использования</a></li>
+      <li><a name="toc-Bars-_0028_043e_0434_0438_043d-_043d_0430_0434-_0434_0440_0443g_0438_043c_0029-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Bars-above-sample">3.1.8 Bars (один над другим) &ndash; пример использования</a></li>
+      <li><a name="toc-Bars-_0022_0432_043e_0434_043e_043f_0430_0434_0022-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Bars-fall-sample">3.1.9 Bars &quot;водопад&quot; &ndash; пример использования</a></li>
+      <li><a name="toc-Barh-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Barh-sample">3.1.10 Barh &ndash; пример использования</a></li>
+      <li><a name="toc-Step-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Step-sample">3.1.11 Step &ndash; пример использования</a></li>
+      <li><a name="toc-Stem-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Stem-sample">3.1.12 Stem &ndash; пример использования</a></li>
+      <li><a name="toc-Region-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Region-sample">3.1.13 Region &ndash; пример использования</a></li>
+      <li><a name="toc-Region-_0441-g_0440_0430_0434_0438e_043d_0442_043d_043e_0439-_0437_0430_043b_0438_0432_043a_043e_0439-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Region-gradient-sample">3.1.14 Region с градиентной заливкой &ndash; пример использования</a></li>
+      <li><a name="toc-Error-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Error-sample">3.1.15 Error &ndash; пример использования</a></li>
+      <li><a name="toc-BoxPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#BoxPlot-sample">3.1.16 BoxPlot &ndash; пример использования</a></li>
+      <li><a name="toc-Mark-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Mark-sample">3.1.17 Mark &ndash; пример использования</a></li>
+      <li><a name="toc-TextMark-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#TextMark-sample">3.1.18 TextMark &ndash; пример использования</a></li>
+      <li><a name="toc-Tube-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Tube-sample">3.1.19 Tube &ndash; пример использования</a></li>
+      <li><a name="toc-Text-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Text-sample">3.1.20 Text &ndash; пример использования</a></li>
+      <li><a name="toc-Torus-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Torus-sample">3.1.21 Torus &ndash; пример использования</a></li>
+      <li><a name="toc-Chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Chart-sample">3.1.22 Chart &ndash; пример использования</a></li>
+      <li><a name="toc-Pie-chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Pie-chart-sample">3.1.23 Pie chart &ndash; пример использования</a></li>
+      <li><a name="toc-Ring-chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Ring-chart-sample">3.1.24 Ring chart &ndash; пример использования</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0440_0438_043ce_0440_044b-2D-g_0440_0430_0444_0438_043a_043e_0432" href="mgl_ru_3.html#g_t2D-plotting-samples">3.2 Примеры 2D графиков</a>
+    <ul class="toc">
+      <li><a name="toc-Surf-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Surf-sample">3.2.1 Surf &ndash; пример использования</a></li>
+      <li><a name="toc-Transparent-surface-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Transparent-surface-sample">3.2.2 Transparent surface &ndash; пример использования</a></li>
+      <li><a name="toc-Surface-in-fog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Surface-in-fog-sample">3.2.3 Surface in fog &ndash; пример использования</a></li>
+      <li><a name="toc-Sharp-colors-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Sharp-colors-sample">3.2.4 Sharp colors &ndash; пример использования</a></li>
+      <li><a name="toc-Mesh-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Mesh-sample">3.2.5 Mesh &ndash; пример использования</a></li>
+      <li><a name="toc-Fall-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Fall-sample">3.2.6 Fall &ndash; пример использования</a></li>
+      <li><a name="toc-Belt-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Belt-sample">3.2.7 Belt &ndash; пример использования</a></li>
+      <li><a name="toc-Tile-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Tile-sample">3.2.8 Tile &ndash; пример использования</a></li>
+      <li><a name="toc-Boxs-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Boxs-sample">3.2.9 Boxs &ndash; пример использования</a></li>
+      <li><a name="toc-Dens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Dens-sample">3.2.10 Dens &ndash; пример использования</a></li>
+      <li><a name="toc-Cont-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Cont-sample">3.2.11 Cont &ndash; пример использования</a></li>
+      <li><a name="toc-ContF-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#ContF-sample">3.2.12 ContF &ndash; пример использования</a></li>
+      <li><a name="toc-ContD-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#ContD-sample">3.2.13 ContD &ndash; пример использования</a></li>
+      <li><a name="toc-Axial-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Axial-sample">3.2.14 Axial &ndash; пример использования</a></li>
+      <li><a name="toc-Grad-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Grad-sample">3.2.15 Grad &ndash; пример использования</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0440_0438_043ce_0440_044b-3D-g_0440_0430_0444_0438_043a_043e_0432" href="mgl_ru_3.html#g_t3D-plotting-samples">3.3 Примеры 3D графиков</a>
+    <ul class="toc">
+      <li><a name="toc-Surf3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Surf3-sample">3.3.1 Surf3 &ndash; пример использования</a></li>
+      <li><a name="toc-Cloud-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Cloud-sample">3.3.2 Cloud &ndash; пример использования</a></li>
+      <li><a name="toc-CloudP-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#CloudP-sample">3.3.3 CloudP &ndash; пример использования</a></li>
+      <li><a name="toc-Dens3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Dens3-sample">3.3.4 Dens3 &ndash; пример использования</a></li>
+      <li><a name="toc-Cont3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Cont3-sample">3.3.5 Cont3 &ndash; пример использования</a></li>
+      <li><a name="toc-ContF3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#ContF3-sample">3.3.6 ContF3 &ndash; пример использования</a></li>
+      <li><a name="toc-Cont-projection-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Cont-projection-sample">3.3.7 Cont projection &ndash; пример использования</a></li>
+      <li><a name="toc-Dens-projection-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Dens-projection-sample">3.3.8 Dens projection &ndash; пример использования</a></li>
+      <li><a name="toc-CutMinMax-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#CutMinMax-sample">3.3.9 CutMinMax &ndash; пример использования</a></li>
+      <li><a name="toc-_0060_0060Isocaps_0027_0027-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></li>
+      <li><a name="toc-CutOff-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#CutOff-sample">3.3.11 CutOff &ndash; пример использования</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0440_0438_043ce_0440_044b-_043f_0430_0440_043d_044b_0445_002f_0432e_043a_0442_043e_0440_043d_044b_0445-g_0440_0430_0444_0438_043a_043e_0432" href="mgl_ru_3.html#Dual-plotting-samples">3.4 Примеры парных/векторных графиков</a>
+    <ul class="toc">
+      <li><a name="toc-SurfC-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#SurfC-sample">3.4.1 SurfC &ndash; пример использования</a></li>
+      <li><a name="toc-SurfA-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#SurfA-sample">3.4.2 SurfA &ndash; пример использования</a></li>
+      <li><a name="toc-TileS-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#TileS-sample">3.4.3 TileS &ndash; пример использования</a></li>
+      <li><a name="toc-Map-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Map-sample">3.4.4 Map &ndash; пример использования</a></li>
+      <li><a name="toc-Traj-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Traj-sample">3.4.5 Traj &ndash; пример использования</a></li>
+      <li><a name="toc-Vect-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Vect-sample">3.4.6 Vect &ndash; пример использования</a></li>
+      <li><a name="toc-VectL-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#VectL-sample">3.4.7 VectL &ndash; пример использования</a></li>
+      <li><a name="toc-VectC-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#VectC-sample">3.4.8 VectC &ndash; пример использования</a></li>
+      <li><a name="toc-Flow-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Flow-sample">3.4.9 Flow &ndash; пример использования</a></li>
+      <li><a name="toc-Pipe-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Pipe-sample">3.4.10 Pipe &ndash; пример использования</a></li>
+      <li><a name="toc-Dew-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Dew-sample">3.4.11 Dew &ndash; пример использования</a></li>
+      <li><a name="toc-Surf3C-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Surf3C-sample">3.4.12 Surf3C &ndash; пример использования</a></li>
+      <li><a name="toc-Surf3A-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Surf3A-sample">3.4.13 Surf3A &ndash; пример использования</a></li>
+      <li><a name="toc-Vect-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Vect-3D-sample">3.4.14 Vect 3D &ndash; пример использования</a></li>
+      <li><a name="toc-VectL-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#VectL-3D-sample">3.4.15 VectL 3D &ndash; пример использования</a></li>
+      <li><a name="toc-VectC-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#VectC-3D-sample">3.4.16 VectC 3D &ndash; пример использования</a></li>
+      <li><a name="toc-Flow-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Flow-3D-sample">3.4.17 Flow 3D &ndash; пример использования</a></li>
+      <li><a name="toc-Pipe-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Pipe-3D-sample">3.4.18 Pipe 3D &ndash; пример использования</a></li>
+      <li><a name="toc-Crust-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Crust-sample">3.4.19 Crust &ndash; пример использования</a></li>
+      <li><a name="toc-Dots-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Dots-sample">3.4.20 Dots &ndash; пример использования</a></li>
+    </ul></li>
+    <li><a name="toc-_0411_0430_0437_043e_0432_044be-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438" href="mgl_ru_3.html#Basic-features">3.5 Базовые возможности</a>
+    <ul class="toc">
+      <li><a name="toc-_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-1D-_0434_0430_043d_043d_044b_0445" href="mgl_ru_3.html#g_t1D-plot-sample">3.5.1 Пример графиков 1D данных</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-2D-_0434_0430_043d_043d_044b_0445" href="mgl_ru_3.html#g_t2D-plot-sample">3.5.2 Пример графиков 2D данных</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-3D-_0434_0430_043d_043d_044b_0445" href="mgl_ru_3.html#g_t3D-plot-sample">3.5.3 Пример графиков 3D данных</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_043b_0438_043d_0438_0439-_0438-_043c_0430_0440_043ae_0440_043e_0432" href="mgl_ru_3.html#Line-styles-sample">3.5.4 Пример стилей линий и маркеров</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_0441_0442_0440e_043b_043e_043a" href="mgl_ru_3.html#Arrow-styles-sample">3.5.5 Пример стилей стрелок</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_0442e_043a_0441_0442_0430" href="mgl_ru_3.html#Text-styles-sample">3.5.6 Пример стилей текста</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-TeX-_0444_043e_0440_043c_0443_043b_044b" href="mgl_ru_3.html#TeX-parsing-sample">3.5.7 Пример TeX формулы</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440_044b-_043d_0430_0447e_0440_0442_0430_043d_0438_0439-_0448_0440_0438_0444_0442_0430" href="mgl_ru_3.html#Font-faces-sample">3.5.8 Примеры начертаний шрифта</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440_044b-c_0432e_0442_043e_0432" href="mgl_ru_3.html#Colors-sample">3.5.9 Примеры цветов</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440_044b-c_0432e_0442_043e_0432_044b_0445-_0441_0445e_043c" href="mgl_ru_3.html#Color-schemes-sample">3.5.10 Примеры цветовых схем</a></li>
+      <li><a name="toc-_041e_0431_044b_0447_043d_0430ya-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x" href="mgl_ru_3.html#Normal-transparency">3.5.11 Обычная прозрачность</a></li>
+      <li><a name="toc-_0022_0421_0442e_043a_043bya_043d_043d_0430ya_0022-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x" href="mgl_ru_3.html#Glass_002dlike-transparency">3.5.12 &quot;Стеклянная&quot; прозрачность</a></li>
+      <li><a name="toc-_0022_041b_0430_043c_043f_043e_0432_0430ya_0022-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x" href="mgl_ru_3.html#Lamp_002dlike-transparency">3.5.13 &quot;Ламповая&quot; прозрачность</a></li>
+    </ul></li>
+    <li><a name="toc-_0414_043e_043f_043e_043b_043d_0438_0442e_043bx_043d_044be-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438" href="mgl_ru_3.html#Additional-features">3.6 Дополнительные возможности</a>
+    <ul class="toc">
+      <li><a name="toc-Legend-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Legend-sample">3.6.1 Legend &ndash; пример использования</a></li>
+      <li><a name="toc-_0414_043e_0431_0430_0432_043byae_043c-_0441e_0442_043a_0443" href="mgl_ru_3.html#Adding-mesh-sample">3.6.2 Добавляем сетку</a></li>
+      <li><a name="toc-Surf-_0026-Cont-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Surf-_0026-Cont-sample">3.6.3 Surf &amp; Cont &ndash; пример использования</a></li>
+      <li><a name="toc-Flow-_0026-Dens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Flow-_0026-Dens-sample">3.6.4 Flow &amp; Dens &ndash; пример использования</a></li>
+      <li><a name="toc-_041de_0441_043a_043e_043bx_043a_043e-_0438_0441_0442_043e_0447_043d_0438_043a_043e_0432-_0441_0432e_0442_0430" href="mgl_ru_3.html#Several-light-sample">3.6.5 Несколько источников света</a></li>
+      <li><a name="toc-_041e_0442_0440_0430_0436e_043d_0438e-_043f_043e_0432e_0440_0445_043d_043e_0441_0442_0438" href="mgl_ru_3.html#Mirrored-surface-sample">3.6.6 Отражение поверхности</a></li>
+      <li><a name="toc-Cont-_0438-_043f_043e_0434_043f_0438_0441_0438-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Cont-with-labels-sample">3.6.7 Cont и подписи &ndash; пример использования</a></li>
+      <li><a name="toc-Ternary-plot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Ternary-plot-sample">3.6.8 Ternary plot &ndash; пример использования</a></li>
+      <li><a name="toc-_041e_043a_0440_0430_0448_0438_0432_0430_043d_0438e-_043f_043e-_043f_043e_043b_043e_0436e_043d_0438_044e-g_0440_0430_043d_0438" href="mgl_ru_3.html#Coloring-by-coordinates-sample">3.6.9 Окрашивание по положению грани</a></li>
+      <li><a name="toc-Drops-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Drops-sample">3.6.10 Drops &ndash; пример использования</a></li>
+      <li><a name="toc-_0420_0438_0441_043e_0432_0430_043d_0438e-_043c_043e_043be_043a_0443_043b" href="mgl_ru_3.html#Molecules-drawing-sample">3.6.11 Рисование молекул</a></li>
+    </ul></li>
+    <li><a name="toc-_0022_041f_0440_043e_0434_0432_0438_043d_0443_0442_044be_0022-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438" href="mgl_ru_3.html#Advanced-features">3.7 &quot;Продвинутые&quot; возможности</a>
+    <ul class="toc">
+      <li><a name="toc-_041a_0440_0438_0432_043e_043b_0438_043de_0439_043d_044be-_043a_043e_043e_0440_0434_0438_043d_0430_0442_044b" href="mgl_ru_3.html#Curvelinear-coorinates-sample">3.7.1 Криволинейные координаты</a></li>
+      <li><a name="toc-_041de_0441_043a_043e_043bx_043a_043e-_043e_0441e_0439-_043d_0430-_043e_0434_043d_043e_043c-g_0440_0430_0444_0438_043ae" href="mgl_ru_3.html#g_t2_002daxes-sample">3.7.2 Несколько осей на одном графике</a></li>
+      <li><a name="toc-Semi_002dlog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Semi_002dlog-sample">3.7.3 Semi-log &ndash; пример использования</a></li>
+      <li><a name="toc-Log_002dlog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Log_002dlog-sample">3.7.4 Log-log &ndash; пример использования</a></li>
+      <li><a name="toc-Fitting-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Fitting-sample">3.7.5 Fitting &ndash; пример использования</a></li>
+      <li><a name="toc-Envelop-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Envelop-sample">3.7.6 Envelop &ndash; пример использования</a></li>
+      <li><a name="toc-Sew-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Sew-sample">3.7.7 Sew &ndash; пример использования</a></li>
+      <li><a name="toc-STFA-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#STFA-sample">3.7.8 STFA &ndash; пример использования</a></li>
+      <li><a name="toc-PDE-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#PDE-sample">3.7.9 PDE &ndash; пример использования</a></li>
+      <li><a name="toc-Beam-tracing-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Beam-tracing-sample">3.7.10 Beam tracing &ndash; пример использования</a></li>
+      <li><a name="toc-Parser-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Parser-sample">3.7.11 Parser &ndash; пример использования</a></li>
+      <li><a name="toc-_041e_0441_043e_0431_044be-_043ce_0442_043a_0438-_043f_043e-_043e_0441ya_043c" href="mgl_ru_3.html#Manual-ticks-sample">3.7.12 Особые метки по осям</a></li>
+      <li><a name="toc-ColumnPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#ColumnPlot-sample">3.7.13 ColumnPlot &ndash; пример использования</a></li>
+      <li><a name="toc-StickPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#StickPlot-sample">3.7.14 StickPlot &ndash; пример использования</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-_0441_0442e_0440e_043e-_0438_0437_043e_0431_0440_0430_0436e_043d_0438ya" href="mgl_ru_3.html#Stereo-image-sample">3.7.15 Пример стерео изображения</a></li>
+    </ul>
+</li>
+  </ul></li>
+  <li><a name="toc-GNU-Free-Documentation-License" href="mgl_ru_4.html#Copying-This-Manual">A. GNU Free Documentation License</a></li>
+  <li><a name="toc-_0418_043d_0434e_043a_0441" href="mgl_ru_5.html#Index">Индекс</a></li>
+</ul>
+</div>
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/debian/tmp/usr/share/doc/mathgl/png/2_axis.png b/debian/tmp/usr/share/doc/mathgl/png/2_axis.png
new file mode 100644
index 0000000..34752bd
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/2_axis.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/area.png b/debian/tmp/usr/share/doc/mathgl/png/area.png
new file mode 100644
index 0000000..8a2d27c
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/area.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/area_2.png b/debian/tmp/usr/share/doc/mathgl/png/area_2.png
new file mode 100644
index 0000000..1bbb061
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/area_2.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/axial.png b/debian/tmp/usr/share/doc/mathgl/png/axial.png
new file mode 100644
index 0000000..f9edfb8
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/axial.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/barh.png b/debian/tmp/usr/share/doc/mathgl/png/barh.png
new file mode 100644
index 0000000..c616c62
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/barh.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/bars.png b/debian/tmp/usr/share/doc/mathgl/png/bars.png
new file mode 100644
index 0000000..d290ee7
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/bars.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/bars_2.png b/debian/tmp/usr/share/doc/mathgl/png/bars_2.png
new file mode 100644
index 0000000..dc6330c
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/bars_2.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/bars_a.png b/debian/tmp/usr/share/doc/mathgl/png/bars_a.png
new file mode 100644
index 0000000..22a8c7c
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/bars_a.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/bars_f.png b/debian/tmp/usr/share/doc/mathgl/png/bars_f.png
new file mode 100644
index 0000000..8a706fb
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/bars_f.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/belt.png b/debian/tmp/usr/share/doc/mathgl/png/belt.png
new file mode 100644
index 0000000..229e367
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/belt.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/boxplot.png b/debian/tmp/usr/share/doc/mathgl/png/boxplot.png
new file mode 100644
index 0000000..3f1fb95
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/boxplot.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/boxs.png b/debian/tmp/usr/share/doc/mathgl/png/boxs.png
new file mode 100644
index 0000000..50f4cc8
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/boxs.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/chart.png b/debian/tmp/usr/share/doc/mathgl/png/chart.png
new file mode 100644
index 0000000..4db792b
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/chart.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/cloud.png b/debian/tmp/usr/share/doc/mathgl/png/cloud.png
new file mode 100644
index 0000000..6de180e
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/cloud.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/cloudp.png b/debian/tmp/usr/share/doc/mathgl/png/cloudp.png
new file mode 100644
index 0000000..6cb838e
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/cloudp.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/color_schemes.png b/debian/tmp/usr/share/doc/mathgl/png/color_schemes.png
new file mode 100644
index 0000000..9705b6e
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/color_schemes.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/colors.png b/debian/tmp/usr/share/doc/mathgl/png/colors.png
new file mode 100644
index 0000000..f75fbdb
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/colors.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/column.png b/debian/tmp/usr/share/doc/mathgl/png/column.png
new file mode 100644
index 0000000..080bbd2
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/column.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/cont.png b/debian/tmp/usr/share/doc/mathgl/png/cont.png
new file mode 100644
index 0000000..6a49e8f
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/cont.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/cont_xyz.png b/debian/tmp/usr/share/doc/mathgl/png/cont_xyz.png
new file mode 100644
index 0000000..8bfc42f
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/cont_xyz.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/conta.png b/debian/tmp/usr/share/doc/mathgl/png/conta.png
new file mode 100644
index 0000000..e01405f
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/conta.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/contd.png b/debian/tmp/usr/share/doc/mathgl/png/contd.png
new file mode 100644
index 0000000..40ec776
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/contd.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/contf.png b/debian/tmp/usr/share/doc/mathgl/png/contf.png
new file mode 100644
index 0000000..242dca2
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/contf.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/contfa.png b/debian/tmp/usr/share/doc/mathgl/png/contfa.png
new file mode 100644
index 0000000..a4e8309
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/contfa.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/contt.png b/debian/tmp/usr/share/doc/mathgl/png/contt.png
new file mode 100644
index 0000000..f38c3f7
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/contt.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/crust.png b/debian/tmp/usr/share/doc/mathgl/png/crust.png
new file mode 100644
index 0000000..1f0d5db
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/crust.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/cutminmax.png b/debian/tmp/usr/share/doc/mathgl/png/cutminmax.png
new file mode 100644
index 0000000..58784cc
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/cutminmax.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/cutminmax2.png b/debian/tmp/usr/share/doc/mathgl/png/cutminmax2.png
new file mode 100644
index 0000000..2f14129
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/cutminmax2.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/dens.png b/debian/tmp/usr/share/doc/mathgl/png/dens.png
new file mode 100644
index 0000000..8d37166
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/dens.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/dens_xyz.png b/debian/tmp/usr/share/doc/mathgl/png/dens_xyz.png
new file mode 100644
index 0000000..e6a3437
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/dens_xyz.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/densa.png b/debian/tmp/usr/share/doc/mathgl/png/densa.png
new file mode 100644
index 0000000..5631a88
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/densa.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/dew.png b/debian/tmp/usr/share/doc/mathgl/png/dew.png
new file mode 100644
index 0000000..475093f
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/dew.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/dew2.png b/debian/tmp/usr/share/doc/mathgl/png/dew2.png
new file mode 100644
index 0000000..218778a
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/dew2.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/dots.png b/debian/tmp/usr/share/doc/mathgl/png/dots.png
new file mode 100644
index 0000000..2a887c0
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/dots.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/drops.png b/debian/tmp/usr/share/doc/mathgl/png/drops.png
new file mode 100644
index 0000000..064778d
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/drops.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/envelop.png b/debian/tmp/usr/share/doc/mathgl/png/envelop.png
new file mode 100644
index 0000000..566c2bd
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/envelop.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/error.png b/debian/tmp/usr/share/doc/mathgl/png/error.png
new file mode 100644
index 0000000..04b0993
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/error.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/fall.png b/debian/tmp/usr/share/doc/mathgl/png/fall.png
new file mode 100644
index 0000000..113059f
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/fall.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/fish.png b/debian/tmp/usr/share/doc/mathgl/png/fish.png
new file mode 100644
index 0000000..20d3c3c
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/fish.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/fit.png b/debian/tmp/usr/share/doc/mathgl/png/fit.png
new file mode 100644
index 0000000..548d1c0
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/fit.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/flow.png b/debian/tmp/usr/share/doc/mathgl/png/flow.png
new file mode 100644
index 0000000..ffeafb4
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/flow.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/flow3.png b/debian/tmp/usr/share/doc/mathgl/png/flow3.png
new file mode 100644
index 0000000..7b6bbcd
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/flow3.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/flow_dens.png b/debian/tmp/usr/share/doc/mathgl/png/flow_dens.png
new file mode 100644
index 0000000..f6c55b1
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/flow_dens.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/fonts.png b/debian/tmp/usr/share/doc/mathgl/png/fonts.png
new file mode 100644
index 0000000..dc4e9c3
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/fonts.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/grad.png b/debian/tmp/usr/share/doc/mathgl/png/grad.png
new file mode 100644
index 0000000..1ef4bd8
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/grad.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/legend.png b/debian/tmp/usr/share/doc/mathgl/png/legend.png
new file mode 100644
index 0000000..ae5b170
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/legend.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/loglog.png b/debian/tmp/usr/share/doc/mathgl/png/loglog.png
new file mode 100644
index 0000000..568ccf8
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/loglog.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/map.png b/debian/tmp/usr/share/doc/mathgl/png/map.png
new file mode 100644
index 0000000..fbdbbf9
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/map.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/mark.png b/debian/tmp/usr/share/doc/mathgl/png/mark.png
new file mode 100644
index 0000000..0b79a03
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/mark.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/mesh.png b/debian/tmp/usr/share/doc/mathgl/png/mesh.png
new file mode 100644
index 0000000..56e454d
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/mesh.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/mesh_cont.png b/debian/tmp/usr/share/doc/mathgl/png/mesh_cont.png
new file mode 100644
index 0000000..fa2c0b5
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/mesh_cont.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/mirror.png b/debian/tmp/usr/share/doc/mathgl/png/mirror.png
new file mode 100644
index 0000000..13ca100
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/mirror.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/molecule.png b/debian/tmp/usr/share/doc/mathgl/png/molecule.png
new file mode 100644
index 0000000..977c78e
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/molecule.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/parser.png b/debian/tmp/usr/share/doc/mathgl/png/parser.png
new file mode 100644
index 0000000..d55e743
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/parser.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/pde.png b/debian/tmp/usr/share/doc/mathgl/png/pde.png
new file mode 100644
index 0000000..5c5b38e
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/pde.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/pie_chart.png b/debian/tmp/usr/share/doc/mathgl/png/pie_chart.png
new file mode 100644
index 0000000..54e1e38
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/pie_chart.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/pipe.png b/debian/tmp/usr/share/doc/mathgl/png/pipe.png
new file mode 100644
index 0000000..e0ffbf8
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/pipe.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/pipe2.png b/debian/tmp/usr/share/doc/mathgl/png/pipe2.png
new file mode 100644
index 0000000..fa71e9c
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/pipe2.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/pipe3.png b/debian/tmp/usr/share/doc/mathgl/png/pipe3.png
new file mode 100644
index 0000000..c50e9b4
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/pipe3.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/plot.png b/debian/tmp/usr/share/doc/mathgl/png/plot.png
new file mode 100644
index 0000000..421e038
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/plot.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/qo2d.png b/debian/tmp/usr/share/doc/mathgl/png/qo2d.png
new file mode 100644
index 0000000..d7f726f
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/qo2d.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/radar.png b/debian/tmp/usr/share/doc/mathgl/png/radar.png
new file mode 100644
index 0000000..c69b848
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/radar.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/region.png b/debian/tmp/usr/share/doc/mathgl/png/region.png
new file mode 100644
index 0000000..3e3fb6e
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/region.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/region_2.png b/debian/tmp/usr/share/doc/mathgl/png/region_2.png
new file mode 100644
index 0000000..683b080
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/region_2.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/ring_chart.png b/debian/tmp/usr/share/doc/mathgl/png/ring_chart.png
new file mode 100644
index 0000000..af749bc
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/ring_chart.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/sample1.png b/debian/tmp/usr/share/doc/mathgl/png/sample1.png
new file mode 100644
index 0000000..ba8ca5c
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/sample1.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/sample2.png b/debian/tmp/usr/share/doc/mathgl/png/sample2.png
new file mode 100644
index 0000000..1de07bf
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/sample2.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/sample3.png b/debian/tmp/usr/share/doc/mathgl/png/sample3.png
new file mode 100644
index 0000000..5d3e2d9
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/sample3.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/sample4.png b/debian/tmp/usr/share/doc/mathgl/png/sample4.png
new file mode 100644
index 0000000..47f4a29
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/sample4.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/sample5.png b/debian/tmp/usr/share/doc/mathgl/png/sample5.png
new file mode 100644
index 0000000..b240d15
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/sample5.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/sample6.png b/debian/tmp/usr/share/doc/mathgl/png/sample6.png
new file mode 100644
index 0000000..c5124f6
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/sample6.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/sample7.png b/debian/tmp/usr/share/doc/mathgl/png/sample7.png
new file mode 100644
index 0000000..e7ea650
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/sample7.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/sample8.png b/debian/tmp/usr/share/doc/mathgl/png/sample8.png
new file mode 100644
index 0000000..7f920ea
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/sample8.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/sample9.png b/debian/tmp/usr/share/doc/mathgl/png/sample9.png
new file mode 100644
index 0000000..fe30eb2
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/sample9.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/samplea.png b/debian/tmp/usr/share/doc/mathgl/png/samplea.png
new file mode 100644
index 0000000..24664e7
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/samplea.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/sampleb.png b/debian/tmp/usr/share/doc/mathgl/png/sampleb.png
new file mode 100644
index 0000000..c2aeccf
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/sampleb.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/samplec.png b/debian/tmp/usr/share/doc/mathgl/png/samplec.png
new file mode 100644
index 0000000..0892038
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/samplec.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/sampled.png b/debian/tmp/usr/share/doc/mathgl/png/sampled.png
new file mode 100644
index 0000000..a0c3d68
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/sampled.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/samplee.png b/debian/tmp/usr/share/doc/mathgl/png/samplee.png
new file mode 100644
index 0000000..26753e0
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/samplee.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/semilog.png b/debian/tmp/usr/share/doc/mathgl/png/semilog.png
new file mode 100644
index 0000000..9fb57c4
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/semilog.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/several_light.png b/debian/tmp/usr/share/doc/mathgl/png/several_light.png
new file mode 100644
index 0000000..7f27600
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/several_light.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/sew.png b/debian/tmp/usr/share/doc/mathgl/png/sew.png
new file mode 100644
index 0000000..146c9ef
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/sew.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/stem.png b/debian/tmp/usr/share/doc/mathgl/png/stem.png
new file mode 100644
index 0000000..6a5fc97
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/stem.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/step.png b/debian/tmp/usr/share/doc/mathgl/png/step.png
new file mode 100644
index 0000000..2728eeb
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/step.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/stereo.png b/debian/tmp/usr/share/doc/mathgl/png/stereo.png
new file mode 100644
index 0000000..da19d3e
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/stereo.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/stfa.png b/debian/tmp/usr/share/doc/mathgl/png/stfa.png
new file mode 100644
index 0000000..9c69520
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/stfa.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/stick.png b/debian/tmp/usr/share/doc/mathgl/png/stick.png
new file mode 100644
index 0000000..53b57c1
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/stick.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/surf.png b/debian/tmp/usr/share/doc/mathgl/png/surf.png
new file mode 100644
index 0000000..6031bd1
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/surf.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/surf3.png b/debian/tmp/usr/share/doc/mathgl/png/surf3.png
new file mode 100644
index 0000000..b7c5eba
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/surf3.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/surf3_cutoff.png b/debian/tmp/usr/share/doc/mathgl/png/surf3_cutoff.png
new file mode 100644
index 0000000..cd09a1a
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/surf3_cutoff.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/surf3_rgbd.png b/debian/tmp/usr/share/doc/mathgl/png/surf3_rgbd.png
new file mode 100644
index 0000000..b471999
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/surf3_rgbd.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/surf3a.png b/debian/tmp/usr/share/doc/mathgl/png/surf3a.png
new file mode 100644
index 0000000..464e247
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/surf3a.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/surf3c.png b/debian/tmp/usr/share/doc/mathgl/png/surf3c.png
new file mode 100644
index 0000000..d957b92
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/surf3c.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/surf_alpha.png b/debian/tmp/usr/share/doc/mathgl/png/surf_alpha.png
new file mode 100644
index 0000000..2e99593
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/surf_alpha.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/surf_caxis.png b/debian/tmp/usr/share/doc/mathgl/png/surf_caxis.png
new file mode 100644
index 0000000..f9a3477
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/surf_caxis.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/surf_cont.png b/debian/tmp/usr/share/doc/mathgl/png/surf_cont.png
new file mode 100644
index 0000000..715e6db
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/surf_cont.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/surf_cont_fog.png b/debian/tmp/usr/share/doc/mathgl/png/surf_cont_fog.png
new file mode 100644
index 0000000..a2d57ea
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/surf_cont_fog.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/surf_cont_y.png b/debian/tmp/usr/share/doc/mathgl/png/surf_cont_y.png
new file mode 100644
index 0000000..4294290
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/surf_cont_y.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/surf_cut.png b/debian/tmp/usr/share/doc/mathgl/png/surf_cut.png
new file mode 100644
index 0000000..0d581ab
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/surf_cut.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/surf_fog.png b/debian/tmp/usr/share/doc/mathgl/png/surf_fog.png
new file mode 100644
index 0000000..1b206d5
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/surf_fog.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/surf_sl.png b/debian/tmp/usr/share/doc/mathgl/png/surf_sl.png
new file mode 100644
index 0000000..6935b81
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/surf_sl.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/surfa.png b/debian/tmp/usr/share/doc/mathgl/png/surfa.png
new file mode 100644
index 0000000..86c4d83
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/surfa.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/surfc.png b/debian/tmp/usr/share/doc/mathgl/png/surfc.png
new file mode 100644
index 0000000..b4c44fb
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/surfc.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/tens.png b/debian/tmp/usr/share/doc/mathgl/png/tens.png
new file mode 100644
index 0000000..0bb66d0
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/tens.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/ternary.png b/debian/tmp/usr/share/doc/mathgl/png/ternary.png
new file mode 100644
index 0000000..bca7903
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/ternary.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/text.png b/debian/tmp/usr/share/doc/mathgl/png/text.png
new file mode 100644
index 0000000..de4813d
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/text.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/textmark.png b/debian/tmp/usr/share/doc/mathgl/png/textmark.png
new file mode 100644
index 0000000..2b4670b
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/textmark.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/tile.png b/debian/tmp/usr/share/doc/mathgl/png/tile.png
new file mode 100644
index 0000000..43ae465
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/tile.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/tiles.png b/debian/tmp/usr/share/doc/mathgl/png/tiles.png
new file mode 100644
index 0000000..dadf463
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/tiles.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/torus.png b/debian/tmp/usr/share/doc/mathgl/png/torus.png
new file mode 100644
index 0000000..e313809
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/torus.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/traj.png b/debian/tmp/usr/share/doc/mathgl/png/traj.png
new file mode 100644
index 0000000..91fa665
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/traj.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/tube.png b/debian/tmp/usr/share/doc/mathgl/png/tube.png
new file mode 100644
index 0000000..ae81695
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/tube.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/tube_3d.png b/debian/tmp/usr/share/doc/mathgl/png/tube_3d.png
new file mode 100644
index 0000000..caab082
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/tube_3d.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/tval.png b/debian/tmp/usr/share/doc/mathgl/png/tval.png
new file mode 100644
index 0000000..d55b629
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/tval.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/type0.png b/debian/tmp/usr/share/doc/mathgl/png/type0.png
new file mode 100644
index 0000000..cf74747
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/type0.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/type1.png b/debian/tmp/usr/share/doc/mathgl/png/type1.png
new file mode 100644
index 0000000..469f7b3
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/type1.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/type2.png b/debian/tmp/usr/share/doc/mathgl/png/type2.png
new file mode 100644
index 0000000..5b8893e
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/type2.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/vect.png b/debian/tmp/usr/share/doc/mathgl/png/vect.png
new file mode 100644
index 0000000..f45d494
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/vect.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/vect3.png b/debian/tmp/usr/share/doc/mathgl/png/vect3.png
new file mode 100644
index 0000000..2586809
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/vect3.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/vectc.png b/debian/tmp/usr/share/doc/mathgl/png/vectc.png
new file mode 100644
index 0000000..7b6591c
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/vectc.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/vectc3.png b/debian/tmp/usr/share/doc/mathgl/png/vectc3.png
new file mode 100644
index 0000000..e132e56
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/vectc3.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/vectl.png b/debian/tmp/usr/share/doc/mathgl/png/vectl.png
new file mode 100644
index 0000000..db065f2
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/vectl.png differ
diff --git a/debian/tmp/usr/share/doc/mathgl/png/vectl3.png b/debian/tmp/usr/share/doc/mathgl/png/vectl3.png
new file mode 100644
index 0000000..922e91a
Binary files /dev/null and b/debian/tmp/usr/share/doc/mathgl/png/vectl3.png differ
diff --git a/debian/tmp/usr/share/info/mathgl_en.info b/debian/tmp/usr/share/info/mathgl_en.info
new file mode 100644
index 0000000..1eadf9b
--- /dev/null
+++ b/debian/tmp/usr/share/info/mathgl_en.info
@@ -0,0 +1,578 @@
+This is mathgl_en.info, produced by makeinfo version 4.13 from
+mathgl_en.texi.
+
+This manual is for MathGL (version 1.11), a collection of classes and
+routines for scientific plotting. Please report any errors in this
+manual to <mathgl.abalakin at gmail.org>.
+
+   Copyright (C) 2008 Alexey Balakin.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with the Front-Cover Texts
+     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+     below.  A copy of the license is included in the section entitled
+     "GNU Free Documentation License."
+
+     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+     and modify this GNU manual.  Buying copies from the FSF supports
+     it in developing GNU and promoting software freedom."
+
+
+Indirect:
+mathgl_en.info-1: 949
+mathgl_en.info-2: 300534
+mathgl_en.info-3: 600101
+
+Tag Table:
+(Indirect)
+Node: Top949
+Node: Overview2283
+Node: Why have I written MathGL?2865
+Node: MathGL features4101
+Node: Installation and usage7527
+Node: General concepts9660
+Node: Coordinate axes13254
+Node: Line styles16065
+Node: Color scheme19425
+Node: Font styles22432
+Node: Textual formulas27170
+Node: FAQ30965
+Node: Interfaces40605
+Node: C interface41640
+Node: Python interface47973
+Node: Thanks52230
+Node: Examples52939
+Node: Basic usage53595
+Node: Using FLTK/GLUT window55527
+Node: Drawing to file59168
+Node: Drawing in memory62080
+Node: Using QMathGL64349
+Node: Advanced usage65979
+Node: Subplots66452
+Node: Axis and grids68204
+Node: Curvilinear coordinates71444
+Node: Text printing example73169
+Node: Animation76285
+Node: Data handling78515
+Node: Array creation79010
+Node: Data changing81545
+Node: Data plotting84729
+Node: Plots for 1D data85832
+Node: Plots for 2D data88626
+Node: Plots for 3D data92457
+Node: Surface transparency94551
+Node: C/Fortran interface96611
+Node: MathGL and PyQt99637
+Node: Hints101836
+Node: ``Compound'' graphics102702
+Node: Two axes in one plot104598
+Node: Titles for the plot105720
+Node: Changing of the color range106475
+Node: Management of a point cutting107192
+Node: Vector field visualization108363
+Node: Several light sources109003
+Node: CutMin and CutMax features109635
+Node: Mapping visualization110793
+Node: Log-scaled plot111963
+Node: ``Templates''112567
+Node: Nonlinear fitting hints114086
+Node: PDE solving hints115758
+Node: MGL parser using121323
+Node: Stereo image124602
+Node: MathGL core125124
+Node: Graphics setup127391
+Node: Transparency128058
+Node: Lighting131118
+Node: Fog133293
+Node: Default sizes133949
+Node: Zooming136763
+Node: Cutting138451
+Node: Font settings140510
+Node: Palette and colors143255
+Node: Error handling145258
+Node: Other settings147443
+Node: Axis settings149293
+Node: Ranges (bounding box)149849
+Node: Curved coordinates155382
+Node: Ticks158545
+Node: Transformation matrix163607
+Node: Export to file169341
+Node: Primitives drawing175886
+Node: Text printing184657
+Node: Axis and Colorbar193200
+Node: Legend198373
+Node: 1D plotting202699
+Node: Plot203922
+Node: Radar205699
+Node: Tens206741
+Node: Area208735
+Node: Region210836
+Node: Stem212562
+Node: Bars214332
+Node: Barh216479
+Node: Chart217946
+Node: Step219072
+Node: Torus220793
+Node: Tube221898
+Node: Mark224556
+Node: TextMark226507
+Node: Error230334
+Node: BoxPlot232226
+Node: 2D plotting233580
+Node: Mesh234859
+Node: Fall236108
+Node: Belt237567
+Node: Surf238993
+Node: Boxs240308
+Node: Tile241536
+Node: Dens242839
+Node: Cont244239
+Node: ContF246783
+Node: ContD249248
+Node: Axial251690
+Node: Grad254081
+Node: Grid256558
+Node: 3D plotting257796
+Node: Surf3258964
+Node: Dens3261198
+Node: Cont3263344
+Node: ContF3266710
+Node: Grid3269997
+Node: Cloud272007
+Node: Beam274372
+Node: Dual plotting275986
+Node: SurfC276872
+Node: Surf3C278281
+Node: SurfA280854
+Node: Surf3A282299
+Node: TileS285016
+Node: Map286458
+Node: STFA288086
+Node: Vector fields289623
+Node: Traj290365
+Node: Vect291950
+Node: VectL295063
+Node: VectC297800
+Node: Dew300534
+Node: Flow302137
+Node: FlowP305254
+Node: Pipe308824
+Node: Other plotting312194
+Node: DensXYZ313021
+Node: ContXYZ314535
+Node: ContFXYZ317213
+Node: Dots319686
+Node: Crust321069
+Node: TriPlot322237
+Node: TriCont323964
+Node: QuadPlot326550
+Node: Plots by formula328274
+Node: SimplePlot330662
+Node: Nonlinear fitting331547
+Node: Data distributions343029
+Node: Frames/Animation344748
+Node: IDTF functions346684
+Node: Plotter classes347457
+Node: mglGraphAB class350509
+Node: Widget classes358980
+Node: Fl_MathGL class361193
+Node: QMathGL class363132
+Node: mglData class369037
+Node: Public variables369933
+Node: Create and delete370728
+Node: Fill374565
+Node: Rearrange378636
+Node: File I/O382745
+Node: Make another data386680
+Node: Change data393284
+Node: Interpolation400130
+Node: Informational functions402454
+Node: Operators407515
+Node: Global functions410495
+Node: Other classes416846
+Node: mglParse class417140
+Node: mglFormula class424736
+Node: mglFont class426922
+Node: Format of font files431132
+Node: mglColor class433208
+Node: mglPoint class435570
+Node: mglVar class437688
+Node: mglCommand class438745
+Node: mglArg class439796
+Node: MGL interface440515
+Node: Graphics setup (MGL)446311
+Node: Transparency (MGL)446752
+Ref: alpha447400
+Ref: alphadef447644
+Ref: transparent447785
+Ref: transptype447882
+Node: Lighting (MGL)448478
+Ref: light449027
+Ref: ambient449591
+Node: Fog (MGL)449729
+Ref: fog449882
+Node: Default sizes (MGL)450294
+Ref: barwidth450702
+Ref: marksize450829
+Ref: arrowsize450908
+Ref: linewidth451010
+Ref: ticklen451220
+Ref: tickstl451425
+Node: Zooming (MGL)451664
+Ref: plotfactor452000
+Ref: zoom452305
+Node: Cutting (MGL)452689
+Ref: cut453059
+Node: Other settings (MGL)453895
+Ref: font454052
+Ref: rotatetext454395
+Ref: palette454502
+Ref: meshnum454707
+Ref: axialdir455005
+Node: Axis settings (MGL)455144
+Ref: axis455663
+Ref: ranges455741
+Ref: caxis457897
+Ref: origin457997
+Ref: ternary458162
+Ref: xrange458601
+Ref: yrange458648
+Ref: zrange458695
+Ref: crange458742
+Ref: xtick459294
+Ref: ytick459339
+Ref: ztick459384
+Ref: ctick459429
+Ref: adjust460492
+Node: Transformation matrix (MGL)460676
+Ref: subplot461351
+Ref: inplot462080
+Ref: columnplot462626
+Ref: stickplot462884
+Ref: rotate463152
+Ref: aspect463414
+Ref: perspective463644
+Node: Export to file (MGL)463817
+Ref: write464010
+Ref: setsize464309
+Node: Primitives drawing (MGL)464559
+Ref: clf464829
+Ref: ball464950
+Ref: line465120
+Ref: curve465350
+Ref: facex465698
+Ref: facey465760
+Ref: facez465822
+Ref: sphere466292
+Ref: drop466476
+Ref: cone466986
+Ref: rect467289
+Node: Text printing (MGL)467648
+Ref: text468282
+Ref: title469650
+Ref: fgets469838
+Node: Axis and Colorbar (MGL)470125
+Ref: colorbar470885
+Ref: grid471902
+Ref: box472158
+Ref: xlabel472350
+Ref: ylabel472409
+Ref: zlabel472468
+Ref: tlabel472527
+Node: Legend (MGL)473089
+Ref: legend474021
+Ref: addlegend474615
+Ref: clearlegend474841
+Ref: legendbox474905
+Ref: legendmarks475029
+Node: 1D plotting (MGL)475136
+Ref: plot476887
+Ref: radar477295
+Ref: tens478032
+Ref: area478439
+Ref: region479032
+Ref: stem479546
+Ref: bars479922
+Ref: barh480664
+Ref: chart481454
+Ref: step482285
+Ref: torus482628
+Ref: tube483044
+Ref: mark483554
+Ref: textmark483939
+Ref: error484456
+Ref: boxplot484799
+Node: 2D plotting (MGL)485347
+Ref: surf487051
+Ref: mesh487389
+Ref: fall487715
+Ref: belt488143
+Ref: boxs488566
+Ref: tile488879
+Ref: dens489260
+Ref: cont489633
+Ref: contf490461
+Ref: contd491202
+Ref: axial492004
+Ref: grad492901
+Ref: grid2493542
+Node: 3D plotting (MGL)493835
+Ref: surf3495227
+Ref: dens3495914
+Ref: densa496421
+Ref: cont3496606
+Ref: conta497564
+Ref: contf3497765
+Ref: contfa498628
+Ref: grid3498837
+Ref: grida499272
+Ref: cloud499449
+Ref: beam500044
+Node: Dual plotting (MGL)500721
+Ref: surfc501851
+Ref: surf3c502180
+Ref: surfa502968
+Ref: surf3a503318
+Ref: tiles504113
+Ref: map504508
+Ref: stfa505082
+Node: Vector fields (MGL)505559
+Ref: traj506926
+Ref: vect507298
+Ref: vectc508211
+Ref: vectl509045
+Ref: dew509881
+Ref: flow510398
+Ref: pipe512294
+Node: Other plotting (MGL)513448
+Ref: densz514199
+Ref: densy514199
+Ref: densx514199
+Ref: contz514723
+Ref: conty514723
+Ref: contx514723
+Ref: contfz515266
+Ref: contfy515266
+Ref: contfx515266
+Ref: dots515747
+Ref: crust516076
+Ref: triplot516378
+Ref: tricont517020
+Ref: quadplot517618
+Ref: fplot518214
+Ref: fsurf518896
+Node: Nonlinear fitting (MGL)519608
+Ref: fits521194
+Ref: fit521623
+Ref: putsfit522019
+Node: Data create (MGL)522298
+Ref: new522474
+Ref: var522690
+Ref: list522919
+Ref: copy523955
+Ref: idset524353
+Ref: info524507
+Node: Data filling (MGL)524777
+Ref: fill524952
+Ref: modify525604
+Ref: put526110
+Node: Rearrange data (MGL)526902
+Ref: rearrange527078
+Ref: extend527432
+Ref: transpose527923
+Ref: squeeze528162
+Ref: crop528449
+Ref: delete528596
+Ref: insert528832
+Node: File I/O (MGL)528945
+Ref: read529114
+Ref: readmat529436
+Ref: readall529634
+Ref: save530261
+Ref: readhdf530356
+Ref: savehdf530466
+Ref: import530576
+Ref: export530806
+Node: Make another data (MGL)531158
+Ref: combine531342
+Ref: evaluate531478
+Ref: hist532037
+Ref: momentum532707
+Ref: sum533055
+Ref: max533183
+Ref: min533312
+Ref: resize533439
+Ref: subdata533572
+Ref: trace533949
+Ref: transform534223
+Ref: transforma534743
+Ref: stfad534895
+Ref: pde535252
+Ref: ray536509
+Ref: qo2d537229
+Ref: jacobian538055
+Node: Change data (MGL)538565
+Ref: cumsum539015
+Ref: integrate539124
+Ref: diff539257
+Ref: diff2540080
+Ref: sinfft540199
+Ref: cosfft540352
+Ref: hankel540510
+Ref: swap540665
+Ref: roll540802
+Ref: mirror540951
+Ref: sew541100
+Ref: smooth541272
+Ref: envelop541566
+Ref: normsl541713
+Ref: norm542080
+Node: Operators (MGL)542322
+Ref: multo542486
+Ref: divto542657
+Ref: addto542822
+Ref: subto542953
+Node: Program flow (MGL)543094
+Ref: chdir543367
+Ref: define543442
+Ref: defchr543841
+Ref: defnum544000
+Ref: defpal544156
+Ref: call544322
+Ref: func544524
+Ref: return544832
+Ref: if544912
+Ref: elseif545100
+Ref: else545385
+Ref: endif545496
+Ref: for545559
+Ref: next545866
+Ref: once545917
+Ref: stop546086
+Node: Command options (MGL)546136
+Node: Suffixes548612
+Node: Utilities550046
+Node: Samples551712
+Node: 1D plotting samples554131
+Node: Plot sample554732
+Node: Radar sample555939
+Node: Tens sample556724
+Node: Area sample557940
+Node: Area gradient sample559292
+Node: Bars sample560727
+Node: Bars 2 colors sample561674
+Node: Bars above sample562675
+Node: Bars fall sample563650
+Node: Barh sample564614
+Node: Step sample565550
+Node: Stem sample566778
+Node: Region sample568137
+Node: Region gradient sample569532
+Node: Error sample570953
+Node: BoxPlot sample573554
+Node: Mark sample574419
+Node: TextMark sample576047
+Node: Tube sample577737
+Node: Text sample579196
+Node: Torus sample580945
+Node: Chart sample582303
+Node: Pie chart sample583246
+Node: Ring chart sample584526
+Node: 2D plotting samples585788
+Node: Surf sample586245
+Node: Transparent surface sample587359
+Node: Surface in fog sample588627
+Node: Sharp colors sample589886
+Node: Mesh sample591087
+Node: Fall sample592142
+Node: Belt sample593189
+Node: Tile sample594308
+Node: Boxs sample595427
+Node: Dens sample596681
+Node: Cont sample597695
+Node: ContF sample598848
+Node: ContD sample600101
+Node: Axial sample601409
+Node: Grad sample602633
+Node: 3D plotting samples603712
+Node: Surf3 sample604111
+Node: Cloud sample605360
+Node: CloudP sample606577
+Node: Dens3 sample607545
+Node: Cont3 sample608936
+Node: ContF3 sample610032
+Node: Cont projection sample611237
+Node: Dens projection sample613003
+Node: CutMinMax sample614763
+Node: Isocaps sample616260
+Node: CutOff sample618174
+Node: Dual plotting samples619730
+Node: SurfC sample620257
+Node: SurfA sample621875
+Node: TileS sample623607
+Node: Map sample625046
+Node: Traj sample628029
+Node: Vect sample630359
+Node: VectL sample631802
+Node: VectC sample633255
+Node: Flow sample634708
+Node: Pipe sample636159
+Node: Dew sample637711
+Node: Surf3C sample639240
+Node: Surf3A sample640899
+Node: Vect 3D sample642563
+Node: VectL 3D sample645316
+Node: VectC 3D sample648079
+Node: Flow 3D sample650842
+Node: Pipe 3D sample653604
+Node: Crust sample656461
+Node: Dots sample657429
+Node: Basic features658288
+Node: 1D plot sample658750
+Node: 2D plot sample660067
+Node: 3D plot sample661655
+Node: Line styles sample662743
+Node: Arrow styles sample665606
+Node: Text styles sample668070
+Node: TeX parsing sample669214
+Node: Font faces sample669657
+Node: Colors sample670612
+Node: Color schemes sample676015
+Node: Normal transparency679600
+Node: Glass-like transparency680528
+Node: Lamp-like transparency681466
+Node: Additional features682374
+Node: Legend sample682828
+Node: Adding mesh sample684874
+Node: Surf & Cont sample687518
+Node: Flow & Dens sample688823
+Node: Several light sample690787
+Node: Mirrored surface sample692527
+Node: Cont with labels sample694693
+Node: Ternary plot sample695721
+Node: Coloring by coordinates sample699120
+Node: Drops sample700303
+Node: Molecules drawing sample703036
+Node: Advanced features705946
+Node: Curvelinear coorinates sample706401
+Node: 2-axes sample710786
+Node: Semi-log sample712911
+Node: Log-log sample714755
+Node: Fitting sample717029
+Node: Envelop sample719768
+Node: Sew sample720774
+Node: STFA sample722044
+Node: PDE sample724148
+Node: Beam tracing sample727081
+Node: Parser sample730799
+Node: Manual ticks sample733556
+Node: ColumnPlot sample734795
+Node: StickPlot sample735681
+Node: Stereo image sample737906
+Node: TeX-like symbols739507
+Node: Copying This Manual774558
+Node: Index796985
+
+End Tag Table
diff --git a/debian/tmp/usr/share/info/mathgl_en.info-1 b/debian/tmp/usr/share/info/mathgl_en.info-1
new file mode 100644
index 0000000..f389c54
--- /dev/null
+++ b/debian/tmp/usr/share/info/mathgl_en.info-1
@@ -0,0 +1,6555 @@
+This is mathgl_en.info, produced by makeinfo version 4.13 from
+mathgl_en.texi.
+
+This manual is for MathGL (version 1.11), a collection of classes and
+routines for scientific plotting. Please report any errors in this
+manual to <mathgl.abalakin at gmail.org>.
+
+   Copyright (C) 2008 Alexey Balakin.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with the Front-Cover Texts
+     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+     below.  A copy of the license is included in the section entitled
+     "GNU Free Documentation License."
+
+     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+     and modify this GNU manual.  Buying copies from the FSF supports
+     it in developing GNU and promoting software freedom."
+
+
+File: mathgl_en.info,  Node: Top,  Next: Overview,  Up: (dir)
+
+MathGL
+******
+
+This file documents the Mathematical Graphic Library (MathGL), a
+collection of classes and routines for scientific plotting. It
+corresponds to release 1.11 of the library. Please report any errors in
+this manual to <mathgl.abalakin at gmail.org>. More information about
+MathGL can be found at the project homepage,
+`http://mathgl.sourceforge.net/'.
+
+   Copyright (C) 2008 Alexey A. Balakin.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with the Front-Cover Texts
+     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+     below.  A copy of the license is included in the section entitled
+     "GNU Free Documentation License."
+
+     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+     and modify this GNU manual.  Buying copies from the FSF supports
+     it in developing GNU and promoting software freedom."
+
+* Menu:
+
+* Overview::
+* Examples::
+* MathGL core::
+* Plotter classes::
+* Widget classes::
+* mglData class::
+* Other classes::
+* MGL interface::
+* Samples::
+* TeX-like symbols::
+* Copying This Manual::
+* Index::
+
+
+File: mathgl_en.info,  Node: Overview,  Next: Examples,  Up: Top
+
+1 Overview
+**********
+
+MathGL is ...
+   * a library for making high-quality scientific graphics under Linux
+     and Windows;
+
+   * a library for the fast data plotting and handling of large data
+     arrays;
+
+   * a library for working in window and console modes and for easy
+     embedding into other programs;
+
+   * a library with large and growing set of graphics.
+
+* Menu:
+
+* Why have I written MathGL?::
+* MathGL features::
+* Installation and usage::
+* General concepts::
+* FAQ::
+* Interfaces::
+* Thanks::
+
+
+File: mathgl_en.info,  Node: Why have I written MathGL?,  Next: MathGL features,  Up: Overview
+
+1.1 Why have I written MathGL?
+==============================
+
+A code for making high-quality scientific graphics under Linux and
+Windows. A  code for the fast handling and plotting of large data
+arrays. A code for working in window and console regimes and for easy
+including into another program. A code with large and renewal set of
+graphics. Exactly such a code I was looking for in the last years.
+Exactly such a code I tried to realize in MathGL library.
+
+   At this version (1.11) MathGL has more than 20000 code strings, more
+than 40 general types of graphics for 1d, 2d and 3d data arrays. It can
+export graphics to bitmap and vector (EPS or SVG) files. It has OpenGL
+interface and can be used from console programs. It has functions for
+data handling and script MGL language for simplification of data
+plotting. It also has several types of transparency and smoothed
+lighting, vector fonts and TeX-like symbol parsing, arbitrary
+curvilinear coordinate system and many other useful things (see
+pictures section at homepage (http://mathgl.sf.net/)). Finally it is
+platform-independent and free (under GPL v.2.0 or later license).
+
+
+File: mathgl_en.info,  Node: MathGL features,  Next: Installation and usage,  Prev: Why have I written MathGL?,  Up: Overview
+
+1.2 MathGL features
+===================
+
+MathGL can plot a wide range of graphics. It includes:
+   * one-dimensional (Plot, Area, Bars, Step, Stem, Torus, Chart,
+     Error, Tube, Mark, *note 1D plotting::);
+
+   * two-dimensional plots (Mesh, Surf, Dens, Cont, ContF, Boxs, Axial,
+     Fall, Belt, Tile, *note 2D plotting::);
+
+   * three-dimensional plots (Surf3, Dens3, Cont3, ContF3, Cloud-like,
+     *note 3D plotting::);
+
+   * dual data plots: vector fields Vect and VectC, flow threads Flow,
+     mapping chart Map, surfaces and isosurfaces, transparent or
+     colored (i.e. with transparency or color varied) by other data
+     SurfA, SurfC, Surf3A, Surf3C (*note Dual plotting::);
+
+   * and so on. For details see *note MathGL core::.
+
+   In fact, I created the functions for drawing of all the types of
+scientific plots that I know. The list of plots is growing; if you need
+some special type of a plot then please email me e-mail
+<mathgl.abalakin at gmail.com> and it will appear in the new version.
+
+   I tried to make plots as nice looking as possible: e.g., a surface
+can be transparent and highlighted by several (up to 10) light sources.
+Most of the drawing functions have 2 variants: simple one for the fast
+plotting of data, complex one for specifying of the exact position of
+the plot (including parametric representation). Resulting image can be
+saved in bitmap (with the help of mglGraphZB, mglGraphGL) PNG, JPEG,
+TIFF, BMP format or in vector EPS or SVG format (with the help of
+mglGraphPS), or in IDTF format (with the help of mglGraphIDTF) which
+can be converted into U3D.
+
+   All texts are drawn by vector fonts, which allows for high
+scalability and portability. Texts may contain commands for: some of
+the TeX-like symbols, changing index (upper or lower indexes) and the
+style of font inside the text string (*note mglFont class::). Texts of
+ticks are rotated with axis rotation. It is possible to create a legend
+of plot and put text in an arbitrary position on the plot. Arbitrary
+text encoding (by the help of function `setlocale()') and UTF-16
+encoding are supported.
+
+   Special mglData class is used for data encapsulation (*note mglData
+class::). In addition to a safe creation and deletion of data arrays it
+includes functions for data processing (smoothing, differentiating,
+integrating, interpolating and so on) and reading of data files with
+automatic size determination. Class mglData can handle arrays with up
+to three dimensions (arrays which depend on up to 3 independent indexes
+a_{ijk}). Using an array with higher number of dimensions is not
+meaningful, because I do not know how it can be plotted. Data filling
+and modification may be done manually or by textual formulas.
+
+   The mglFormula class allows a fast evaluation of a textual
+mathematical expression (*note mglFormula class::). It is based on
+string precompilation to tree-like code at the creation of class
+instance. At evaluation stage code performs only fast tree-walk and
+returns the value of the expression. In addition to changing data
+values, textual formulas are also used for drawing in _arbitrary_
+curvilinear coordinates. A set of such curvilinear coordinates is
+limited only by user</samp>&rsquo;s imagination rather than a fixed
+list like: polar, parabolic, spherical, and so on.
+
+
+File: mathgl_en.info,  Node: Installation and usage,  Next: General concepts,  Prev: MathGL features,  Up: Overview
+
+1.3 Installation and usage
+==========================
+
+MathGL can be installed in 3 different ways.
+  1. Compile from sources. The standard script for autoconf/automake
+     tool is included in the library beginning from version 1.2.1. To
+     run it, one should execute 3 commands: `./configure' after it
+     `make' and `make install' with root/sudo rights. Sometimes after
+     installation you may need to update the library list - just
+     execute `ldconfig' with root/sudo rights.
+
+     Script `./configure' have several additional options which are
+     switched off by default. They are: `--enable-fltk, --enable-glut,
+     --enable-qt' for ebabling FLTK, GLUT and/or Qt windows;
+     `--enable-jpeg, --enable-tiff, --enable-hdf5' for enabling
+     corresponding file formats; `--enable-all' for enabling all
+     additional features. For using `double' as base internal data type
+     use option `--enable-double'. For enabling language interfaces use
+     `--enable-python, --enable-octave' or `--enable-langall' for all
+     languages. The full list of options can be viewed by command
+     `./configure --help'.
+
+  2. Use a precompiled binary. There are binaries for MinGW (platform
+     Win32). For a precompiled variant one needs only to unpack the
+     archive to the location of the compiler (or in any other folder
+     and setup paths). By default, precompiled versions include the
+     support of GSL (www.gsl.org) and PNG. So, one needs to have these
+     libraries installed on system.
+
+  3. Install precompiled versions from standard packages (RPM, deb,
+     DevPak and so on, see Download
+     (http://mathgl.sf.net/download.html) section at homepage).
+
+   To compile your own program, you need to specify the linker option
+`-lmgl' for a compilation in the console program or with external
+(non-MathGL) window library. If you want to use FLTK or GLUT windows
+then you need to add the option `-lmgl-fltk' or `-lmgl-glut'. Fortran
+users also should add C++ library by the option `-lstdc++'.
+
+
+File: mathgl_en.info,  Node: General concepts,  Next: FAQ,  Prev: Installation and usage,  Up: Overview
+
+1.4 General concepts
+====================
+
+The set of MathGL features is rather rich - just the number of basic
+graphics types is larger than 40. Also there are functions for data
+handling, plot setup and so on. In spite of it I tried to keep a
+similar style in function names and in the order of arguments. Mostly
+it is used for different drawing functions.
+
+   There are six most general (base) concepts:
+  1. *Any picture is created in memory first.* The internal (memory)
+     representation can be different: bitmap picture or the list of
+     vector primitives. After that the user may decide what he/she
+     want: save to file, display on the screen, run animation, do
+     additional editing and so on. This approach assures a high
+     portability of the program - the source code will produce exactly
+     the same picture in _any_ OS. Another big positive consequence is
+     the ability to create the picture in the console program (using
+     command line, without creating a window)!
+
+  2. *Every plot settings (style of lines, font, color scheme) are
+     specified by a string.* It provides convenience for
+     user/programmer - short string with parameters is more
+     comprehensible than a large set of parameters. Also it provides
+     portability - the strings are the same in any OS so that it is not
+     necessary to think about argument types.
+
+  3. *All functions have "simplified" and "advanced" forms.* It is done
+     for user</samp>&rsquo;s convenience. One needs to specify only one
+     data array in the "simplified" form in order to see the result.
+     But one may set parametric dependence of coordinates and produce
+     rather complex curves and surfaces in the "advanced" form. In both
+     cases the order of function arguments is the same: first data
+     arrays, second the string with plot parameters, and later optional
+     arguments for plot tuning.
+
+  4. *All data arrays for plotting are encapsulated in mglData class.*
+     This reduces the number of errors while working with memory and
+     provides a uniform interface for data of different types (float,
+     double and so on) or for formula plotting.
+
+  5. *All plots are vector plots.* The MathGL library is intended for
+     handling scientific data which have vector nature (lines, faces,
+     matrices and so on). As a result, vector representation is used in
+     all cases! In addition, the vector representation allows one to
+     scale the plot easily - change the canvas size by a factor of 2,
+     and the picture will be proportionally scaled.
+
+  6. *New drawing never clears things drawn already.* This, in some
+     sense, unexpected, idea allows to create a lot of "combined"
+     graphics. For example, to make a surface with contour lines one
+     needs to call the function for surface plotting and the function
+     for contour lines plotting (in any order). Thus the special
+     functions for making this "combined" plots (as it is done in
+     Matlab and some other plotting systems) are superfluous. Many more
+     examples of such plots can be found in section *note Hints:: and
+     in home site (`http://mathgl.sf.net/index.html').
+
+   In addition to the general concepts I want to comment on some
+non-trivial or less commonly used general ideas - plot positioning,
+axis specification and curvilinear coordinates, styles for lines, text
+and color scheme.
+
+* Menu:
+
+* Coordinate axes::
+* Line styles::
+* Color scheme::
+* Font styles::
+* Textual formulas::
+
+
+File: mathgl_en.info,  Node: Coordinate axes,  Next: Line styles,  Up: General concepts
+
+1.4.1 Coordinate axes
+---------------------
+
+Two axis representations are used in MathGL. The first one consists of
+normalizing the data point coordinates in a box MINxMAX (*note Axis
+settings::). If CUT is `true' then the outlier points are omitted,
+otherwise they are projected to the bounding box (*note Cutting::).
+Also, the point will be omitted if it lies inside the box defined by
+CUTMIN x CUTMAX or if the value of formula `CutOff'() is nonzero for
+its coordinates. After that, transformation formulas are applied to the
+data point. Finally, the data point is plotted by one of the functions.
+
+   There is a possibility to set members MAX, MIN directly, but one
+should call `RecalcBorder()' function to setup plotting routines. A
+safer way is to set these values by calling the `Axis()' function,
+which calls `RecalcBorder()' automatically. Another way to specify the
+scaling of the axis is to set it as a minimal or maximal value of the
+data array. Functions `XRange(), YRange(), ZRange()' do it. The second
+(optional) argument is used to replace the axis range or to join with
+the existed range.
+
+   The axis origin is defined by the variable ORG and is applied to all
+consequent calls of axes or grid drawing. By default, if this point
+lies outside the bounding box then it is projected onto the one
+(variable AUTOORG controls it). If one of the values of ORG is equal to
+NAN then the corresponding value will be selected automatically.
+
+   There is 4-th axis _c_ (color axis or colorbar) in addition to the
+usual axes _x, y, z_. It sets the range of values for the surface
+coloring. Its borders are automatically set to values of Min.z, Max.z
+during the call of `Axis()' function. Also, one can directly change the
+color range by setting variables CMAX, CMAX, or calling functions
+`CAxis()' or `CRange()'. Use `Colorbar()' function for showing the
+colorbar.
+
+   The form (appearence) of tick labels is controlled by `SetTicks()'
+function (*note Axis settings::). It has 3 arguments: first one D sets
+the tick step (if positive) or tick number (if negative) or switches
+logarithmic ticks on (if zero); the second one, NS, sets the number of
+subticks; the last one is the starting point for ticks (default is axis
+origin). Function SETTUNETICKS switches on/off tick enhancing by
+factoring out acommon multiplier (for small coordinate values, like
+0.001 to 0.002, or large, like from 1000 to 2000) or common component
+(for narrow range, like from 0.999 to 1.000). Finally, you may use
+functions `SetXTT(), SetYTT(), SetZTT(), SetCTT()' for setting
+templates for tick labels (it supports TeX symbols). Also, there is a
+possibility to print arbitrary text as tick labels the by help of
+`SetTicksVal()' function.
+
+
+File: mathgl_en.info,  Node: Line styles,  Next: Color scheme,  Prev: Coordinate axes,  Up: General concepts
+
+1.4.2 Line styles
+-----------------
+
+The line style is defined by the string which may contain
+specifications for color (`wkrgbcymhRGBCYMHWlenupqLENUPQ'), dashing
+style (`-|;:ji' or space), width (`0123456789') and marks (`o+xsd.^v'
+and `#' modifier). If one of the type of information is omitted then
+default values used with the previous color or one from palette (for
+*note 1D plotting::) are adopted.  The line style is defined by the
+string which may contain specifications for color
+(`wkrgbcymhRGBCYMHWlenupqLENUPQ'), dashing style (`-|;:ji' or space),
+width (`0123456789') and marks (`o+xsd.^v' and `#' modifier). If one of
+the type of information is omitted then default values used with the
+previous color or one from palette (for *note 1D plotting::) are
+adopted. By default palette contain following colors: dark gray `H',
+blue `b', green `g', red `r', cyan `c', magenta `m', yellow `y', gray
+`h', blue-green `l', sky-blue `n', orange `q', yellow-green `e',
+blue-violet `u', purple `p'.
+
+   The color types are: `k' - black, `r' - red, `R' - dark red, `g' -
+green, `G' - dark green, `b' - blue, `B' - dark blue, `c' - cyan, `C' -
+dark cyan, `m' - magenta, `M' - dark magenta, `y' - yellow, `Y' - dark
+yellow (gold), `h' - gray, `H' - dark gray, `w' - white, `W' - bright
+gray, `l' - green-blue, `L' - dark green-blue, `e' - green-yellow, `E'
+- dark green-yellow, `n' - sky-blue, `N' - dark sky-blue, `u' -
+blue-violet, `U' - dark blue-violet, `p' - purple, `P' - dark purple,
+`q' - orange, `Q' - dark orange (brown).
+
+   Dashing style has the following meaning: space - no line (usable for
+plotting only marks), `-' - solid line (################), `|' - long
+dashed line (########________), `;' - dashed line (####____####____),
+`=' - small dashed line (##__##__##__##__), `:' - dotted line
+(#___#___#___#___), `j' - dash-dotted line (#######____#____), `i' -
+small dash-dotted line (###__#__###__#__).
+
+   Marker types are: `o' - circle, `+' - cross, `x' - skew cross, `s' -
+square, `d' - rhomb (or diamond), `.' - dot (point), `^' - triangle up,
+`v' - triangle down, `<' - triangle left, `>' - triangle right, `#*' -
+Y sign, `#+' - squared cross, `#x' - squared skew cross, `#.' - circled
+dot. If string contain symbol `#' then the solid versions of markers
+are used.
+
+ [image src="../png/sample5.png" ]
+
+Styles of lines and marks.
+
+   One may specify to draw a special symbol (an arrow) at the beginning
+and at the end of line. This is done if the specification string
+contains one of the following symbols: `A' - outer arrow, `V' - inner
+arrow, `I' - transverse hatches, `K' - arrow with hatches, `T' -
+triangle, `S' - square, `D' - rhombus, `O' - circle, `_' - nothing (the
+default). The following rule applies: the first symbol specifies the
+arrow at the end of line, the second specifies the arrow at the
+beginning of the line. For example, `r-A' defines a red solid line with
+usual arrow at the end, `b|AI' defines a blue dash line with an arrow
+at the end and with hatches at the beginning, `_O' defines a line with
+the current style and with a circle at the beginning. These styles are
+applicable during the graphics plotting as well (for example, *note 1D
+plotting::).
+
+ [image src="../png/sampled.png" ]
+
+Arrow styles.
+
+
+File: mathgl_en.info,  Node: Color scheme,  Next: Font styles,  Prev: Line styles,  Up: General concepts
+
+1.4.3 Color scheme
+------------------
+
+The color scheme is used for determining the color of surfaces,
+isolines, isosurfaces and so on. The color scheme is defined by the
+string, which may contain several characters that are color id (*note
+Line styles::) or characters `d#:|'. Symbol `d' denotes the
+interpolation by 3d position instead of the coloring by amplitude.
+Symbol `#' switches to mesh drawing or to a wire plot. Symbol `|'
+disables color interpolation in color scheme, which can be useful, for
+example, for sharp colors during matrix plotting. Symbol `:' finishes
+the color scheme parsing. Following it, the user may put styles for the
+text, rotation axis for curves/isocontours, and so on. Color scheme may
+contain up to 32 color values.
+
+   You may also use "lighted" colors in the color scheme specification
+(_not in line style!_). The "lighted" color contain 2 symbols: first
+one is the usual symbol for color specification, the second one is a
+digit for its brightness. The digit can be in range `1'...`9'.  Number
+`5' corresponds to a normal color, `1' is a very dark version of the
+color (practically black), and `9' is a very bright version of the
+color (practically white). For example, the color scheme can be
+`b2b7wr7r2'.
+
+ [image src="../png/colors.png" ]
+
+Colors and its ids.
+
+   For coloring by _amplitude_ (most common) the final color is a
+linear interpolation of color array. The color array is constructed
+from the string ids. The argument is the amplitude normalized between
+CMIN - CMAX (*note Axis settings::). For example, string containing 4
+characters `bcyr' corresponds to a colorbar from blue (lowest value)
+through cyan (next value) through yellow (next value) to the red
+(highest value). String `kw' corresponds to a colorbar from black
+(lowest value) to white (highest value). String `m' corresponds to a
+simple magenta color.
+
+   There are several useful combinations. String `kw' corresponds to
+the simplest gray color scheme where higher values are brighter. String
+`wk' presents the inverse gray color scheme where higher value is
+darker. Strings `kRryw', `kGgw', `kBbcw' present the well-known _hot_,
+_summer_ and _winter_ color schemes. Strings `BbwrR' and `bBkRr' allow
+to view bi-color figure on white or black background, where negative
+values are blue and positive values are red. String `BbcyrR' gives a
+color scheme similar to the well-known _jet_ color scheme.
+
+ [image src="../png/color_schemes.png" ]
+
+Most popular color schemes.
+
+   When coloring by _coordinate_, the final color is determined by the
+position of the point in 3d space and is calculated from formula
+c=x*c[1] + y*c[2] + z*c[3]. Here, c[1], c[2], c[3] are the first three
+elements of color array; x, y, z are normalized to MIN - MAX
+coordinates of the point. This type of coloring is useful for
+isosurface plot where color may show the exact position of a piece of
+surface.
+
+
+File: mathgl_en.info,  Node: Font styles,  Next: Textual formulas,  Prev: Color scheme,  Up: General concepts
+
+1.4.4 Font styles
+-----------------
+
+Text style is specified by the string which may contain several
+characters of font (`ribwou') and/or alignment (`LRC') specifications.
+The string also may contain the color id characters `wkrgbcymhRGBCYMHW'
+(*note Line styles::) after the symbol `:'. For example, `biC:b' sets
+the bold italic font text aligned at the center and with blue color.
+
+   The font types are: `r' - roman font, `i' - italic style, `b' - bold
+style. By default roman roman font is used. The align types are: `L' -
+align left (default), `C' - align center, `R' - align right. Additional
+font effects are: `w' - wired, `o' - over-lined, `u' - underlined.
+
+   Also a parsing of the LaTeX-like syntax is provided. There are
+commands for the font style changing inside the string (for example,
+use \b for bold font): \a or \overline - over-lined, \b or \textbf -
+bold, \i or \textit - italic, \r or \textrm - roman (disable bold and
+italic attributes), \u or \underline - underlined, \w or \wire - wired,
+\big - bigger size, @ - smaller size. The lower and upper indexes are
+specified by `_' and `^' symbols. At this the changed font style is
+applied only on next symbol or symbols in braces {}. The text in braces
+{} are treated as single symbol that allow one to print the index of
+index. For example, compare the strings `sin (x^{2^3})' and `sin
+(x^2^3)'. You may also change text color inside string by command #? or
+by \color? where `?' is symbolic id of the color (*note Line styles::).
+For example, words `Blue' and `red' will be colored in the string
+`#b{Blue} and \colorr{red} text'. The most of functions understand the
+newline symbol `\n' and allows to print multi-line text. Finally, you
+can use arbitrary UTF codes by command `\utf0x????'. For example,
+`\utf0x3b1' will produce  \alpha symbol.
+
+   The most of commands for special TeX or AMSTeX symbols, the commands
+for font style changing (\textrm, \textbf, \textit, \textsc, \overline,
+\underline), accents (\hat, \tilde, \dot, \ddot, \acute, \check,
+\grave, \bar, \breve) and roots (\sqrt, \sqrt3, \sqrt4) are recognized.
+The full list contain approximately 2000 commands. Note that first
+space symbol after the command is ignored, but second one is printed as
+normal symbol (space). For example, the following strings produce the
+same result \tilde a: `\tilde{a}'; `\tilde a'; `\tilde{}a'.
+
+   In particular, the Greek letters are recognizable special symbols:
+\alpha - \alpha, \beta - \beta, \gamma - \gamma, \delta - \delta,
+\epsilon - \epsilon, \eta - \eta, \iota - \iota, \chi - \chi, \kappa -
+\kappa, \lambda - \lambda, \mu - \mu, \nu - \nu, o - \o, \omega -
+\omega, \phi - \phi, \pi - \pi, \psi - \psi, \rho - \rho, \sigma -
+\sigma, \theta - \theta, \tau - \tau, \upsilon - \upsilon, \xi - \xi,
+\zeta - \zeta, \varsigma - \varsigma, \varepsilon - \varepsilon,
+\vartheta - \vartheta, \varphi - \varphi, A - \Alpha, B - \Beta, \Gamma
+- \Gamma, \Delta - \Delta, E - \Epsilon, H - \Eta, I - \Iota, C - \Chi,
+K - \Kappa, \Lambda - \Lambda, M - \Mu, N - \Nu, O - \O, \Omega -
+\Omega, \Phi - \Phi, \Pi - \Pi, \Psi - \Psi, R - \Rho, \Sigma - \Sigma,
+\Theta - \Theta, T - \Tau, \Upsilon - \Upsilon, \Xi - \Xi, Z - \Zeta.
+
+   The small part of most common special TeX symbols are: \angle -
+\angle, \aleph - \aleph, \cdot - \cdot, \clubsuit - \clubsuit, \cup -
+\cup, \cap - \cap, \diamondsuit - \diamondsuit, \diamond - \diamond,
+\div - \div, \downarrow - \downarrow, \dag - \dag, \ddag - \ddag,
+\equiv - \equiv, \exists - \exists, \frown - \frown, \flat - \flat, \ge
+- \ge, \geq - \geq, \gets - \gets, \heartsuit - \heartsuit, \infty -
+\infty, \in - \in, \int - \int, \Im - \Im, \langle - \langle, \le -
+\le, \leq - \leq, \leftarrow - \leftarrow, \mp - \mp, \nabla - \nabla,
+\ne - \ne, \neq - \neq, \natural - \natural, \oint - \oint, \odot -
+\odot, \oplus - \oplus, \partial - \partial, \parallel - \parallel,
+\perp - \perp, \pm - \pm, \propto - \propto, \prod - \prod, \Re - \Re,
+\rightarrow - \rightarrow, \rangle - \rangle, \spadesuit - \spadesuit,
+\sim - \sim, \smile - \smile, \subset - \subset, \supset - \supset,
+\surd - \sqrt or \surd, \S - \S, \sharp - \sharp, \sum - \sum, \times -
+\times, \to - \to, \uparrow - \uparrow, \wp - \wp and so on.
+
+   The font size can be defined explicitly (if SIZE>0) or relative to a
+base font size as |SIZE|*FONTSIZE (if SIZE<0). The value SIZE=0
+specifies that the string will not be printed. The base font size is
+measured in internal "MathGL" units. Special functions
+`SetFontSizePT(), SetFontSizeCM(), SetFontSizeIN()' allow one to set it
+in more "common" variables for a given dpi value of the picture.
+
+
+File: mathgl_en.info,  Node: Textual formulas,  Prev: Font styles,  Up: General concepts
+
+1.4.5 Textual formulas
+----------------------
+
+MathGL have the fast variant of textual formula evaluation  (*note
+mglFormula class::) . There are a lot of functions and operators
+available. The operators are: `+' - addition, `-' - subtraction, `*' -
+multiplication, `/' - division, `^' - integer power. Also there are
+logical "operators": `<' - true if x<y, `>' - true if x>y, `=' - true
+if x=y, `&' - true if x and y both nonzero, `|' - true if x or y
+nonzero. These logical operators have lowest priority and return 1 if
+true or 0 if false.
+
+   The basic functions are: `sqrt(x)' - square root of X, `pow(x,y)' -
+power X in Y, `ln(x)' - natural logarithm of X, `lg(x)' - decimal
+logarithm of X, `log(a,x)' - logarithm base A of X, `abs(x)' - absolute
+value of X, `sign(x)' - sign of X, `mod(x,y)' - x modulo y, `step(x)' -
+step function, `int(x)' - integer part of X, `rnd' - random number,
+`pi' - number \pi=3.1415926...
+
+   Trigonometric functions are: `sin(x)', `cos(x)', `tan(x)' (or
+`tg(x)'). Inverse trigonometric functions are: `asin(x)', `acos(x)',
+`atan(x)'. Hyperbolic functions are: `sinh(x)' (or `sh(x)'), `cosh(x)'
+(or `ch(x)'), `tanh(x)' (or `th(x)'). Inverse hyperbolic functions are:
+`asinh(x)', `acosh(x)', `atanh(x)'.
+
+   There are a set of special functions: `gamma(x)' - Gamma function
+\Gamma(x) = \int_0^\infty dt t^{x-1} \exp(-t) , `psi(x)' - digamma
+function \psi(x) = \Gamma</samp>&rsquo; (x)/ \Gamma(x) for x!=0,
+`ai(x)' - Airy function Ai(x), `bi(x)' - Airy function Bi(x), `cl(x)' -
+Clausen function, `li2(x)' (or `dilog(x)') - dilogarithm Li_2(x) = -
+\Re \int_0^x ds \log(1-s)/s, `sinc(x)' - compute sinc(x) = \sin(\pi x)
+/ (\pi x) for any value of x, `zeta(x)' - Riemann zeta function
+\zeta(s) = \sum_{k=1}^\infty k^{-s} for arbitrary s!=1, `eta(x)' - eta
+function \eta(s) = (1-2^{1-s}) \zeta(s) for arbitrary s, `lp(l,x)' -
+Legendre polynomial P_l(x), (|x|<=1, l>=0), `w0(x)', `w1(x)' -
+principal branch of the Lambert W functions. Function W(x) is defined
+to be solution of the equation W \exp(W) = x.
+
+   The exponent integrals are: `ci(x)' - Cosine integral Ci(x) =
+\int_0^x dt \cos(t)/t, `si(x)' - Sine integral Si(x) = \int_0^x dt
+\sin(t)/t, `erf(x)' - error function erf(x) = (2/\sqrt(\pi)) \int_0^x
+dt \exp(-t^2), `ei(x)' - exponential integral Ei(x) := -
+PV(\int_{-x}^\infty dt \exp(-t)/t) (where PV denotes the principal
+value of the integral), `e1(x)' - exponential integral E_1(x) := Re
+\int_1^\infty dt \exp(-xt)/t , `e2(x)' - exponential integral E_2(x) :=
+Re \int_1^\infty dt \exp(-xt)/t^2, `ei3(x)' - exponential integral
+Ei_3(x) = \int_0^x dt \exp(-t^3) for x>=0.
+
+   Bessel functions are: `j(nu,x)' - regular cylindrical Bessel
+function of fractional order NU, `y(nu,x)' - irregular cylindrical
+Bessel function of fractional order NU, `i(nu,x)' - regular modified
+Bessel function of fractional order NU, `k(nu,x)' - irregular modified
+Bessel function of fractional order NU.
+
+   Elliptic integrals are: `ee(k)' - complete elliptic integral is
+denoted by E(k) = E(\pi/2, k), `ek(k)' - complete elliptic integral is
+denoted by K(k) = F(\pi/2, k), `e(phi,k)' - elliptic integral E(\phi,k)
+= \int_0^\phi dt \sqrt((1 - k^2 \sin^2(t))), `f(phi,k)' - elliptic
+integral F(\phi,k) = \int_0^\phi dt 1/\sqrt((1 - k^2 \sin^2(t))).
+
+   Jacobi elliptic functions are: `sn(u,m)', `cn(u,m)', `dn(u,m)',
+`sc(u,m)', `sd(u,m)', `ns(u,m)', `cs(u,m)', `cd(u,m)', `nc(u,m)',
+`ds(u,m)', `dc(u,m)', `nd(u,m)'.
+
+   Note, some of these functions are unavailable if NO_GSL is defined
+during compilation of MathGL library.
+
+   There is no difference between lower or upper case in formulas. If
+argument value lie outside the range of function definition then
+function returns NaN.
+
+
+File: mathgl_en.info,  Node: FAQ,  Next: Interfaces,  Prev: General concepts,  Up: Overview
+
+1.5 FAQ
+=======
+
+*The plot does not appear*
+     Check that points of the plot lie  inside the bounding box and
+     resize the bounding box using `Axis()' function. Check that the
+     data have correct dimensions for selected type of plot. Be sure
+     that  `Finish()' is called after the plotting functions (or be
+     sure that the plot is saved to a file). Sometimes the light
+     reflection from flat surfaces (like, `Dens()') can look as if the
+     plot were absent.
+
+*I can not find some special kind of plot.*
+     Most "new" types of plots can be created by using the existing
+     drawing functions. For example, the surface of curve rotation can
+     be created by a special function `Torus()', or as a parametrically
+     specified surface by `Surf()'. See also, *note Hints:: and *note
+     Examples:: of MathGL. If you can not find a specific type of plot,
+     please e-mail me and this plot will appear in the next version of
+     MathGL library.
+
+*Should I know some graphical libraries (like OpenGL) before using the MathGL library?*
+     No. The MathGL library is self-contained and does not require the
+     knowledge of external libraries.
+
+*In which language is the library written? For which languages does it have an interface?*
+     The core of the MathGL library is written in C++. But there are
+     interfaces for: pure C, Fortran, Pascal, Forth, and its own
+     command language MGL. Also there is a large set of interpreted
+     languages, which are supported (Python, Java,  ALLEGROCL, CHICKEN,
+     Lisp, CFFI, C#, Guile, Lua, Modula 3, Mzscheme, Ocaml, Octave,
+     Perl, PHP, Pike, R, Ruby, Tcl). These interfaces are written using
+     SWIG (both pure C functions and classes) but only the interface
+     for Python and Octave is included in the autoconf/automake script.
+     The reason is that I don</samp>&rsquo;t know any other interpreted
+     languages :(. Note that most other languages can use (link to) the
+     pure C functions.
+
+*How can I use MathGL with Fortran?*
+     You can use MathGL as is with `gfortran' because it uses by
+     default the AT&T notation for external functions. For other
+     compilers (like Visual Fortran) you have to switch on the AT&T
+     notation manually. The AT&T notation requires that the symbol `_'
+     is added at the end of each function name, function argument(s) is
+     passed by pointers and the string length(s) is passed at the end
+     of the argument list. For example:
+
+     _C function_ - `void mgl_fplot(HMGL graph, const char *fy, const
+     char *stl, int n);'
+
+     _AT&T function_ - `void mgl_fplot_(uintptr_t *graph, const char
+     *fy, const char *stl, int *n, int ly, int ls);'
+
+*I have a class Foo and a drawing method Foo::draw(mglGraph *gr). How I can use it in FLTK or GLUT window?*
+     The member-functions of classes have a hidden parameter (the
+     pointer to a class instance) in C++. So, their direct usage is
+     impossible. The solution is to write an interface function:
+          int foo_draw(mglGraph *gr, void *par)
+          {   ((Foo *)foo)->draw(gr);    }
+     and to use it in the call of `Window()' function:
+          gr->Window(argc,argv,foo_draw,"Title",this);
+
+     Alternatively you can inherit your class from `mglDraw' class and
+     use the functions like `gr->Window(argc, argv, foo, "Title");'.
+
+*How can I print in Russian/Spanish/Arabic/Japanese, and so on?*
+     The standard way is to use Unicode encoding for the text output.
+     But the MathGL library also has interface for 8-bit (char *)
+     strings with internal conversion to Unicode. This conversion
+     depends on the current locale OS. You may change it by
+     `setlocale()' function. For example, for Russian text in CP1251
+     encoding you may use `setlocale(LC_CTYPE, "ru_RU.cp1251");' (under
+     MS Windows the name of locale may differ - `setlocale(LC_CTYPE,
+     "russian_russia.1251")'). I strongly recommend not to use the
+     constant `LC_ALL' in the conversion. Since it also changes the
+     number format, it may lead to mistakes in formula writing and
+     reading of the text in data files. For example, the program will
+     await a `,' as a decimal point but the user will enter `.'.
+
+*How can I exclude a point or a region of plot from the drawing?*
+     There are 3 general ways. First, the point with `NAN' value as one
+     of the coordinates will never be plotted. Second, special
+     variables CUTMIN, CUTMAX or function `CutOff'() define the
+     condition when the points should be omitted (*note Cutting::).
+     Last, you may change the transparency of a part of the plot by the
+     help of functions `SurfA()', `Surf3A()' (*note Dual plotting::).
+     In this last case the transparency is switched on smoothly.
+
+*I use VisualStudio, CBuilder or some other compiler (not MinGW/gcc). How can I link the MathGL library?*
+     In version 1.10, you can use the header file `#include
+     <mgl/mgl_w.h>' which contains wrapper C++ classes, which should be
+     acceptable for any compiler. Note, that wrapper classes are
+     *incompatible* with classes in usual headers and you should use
+     only one of them (wrapper or usual)! However, I recommend to use
+     the usual headers if you use GNU compilers (like MinGW).
+
+*How I can build MathGL under Windows?*
+     The simplest way is using the combination CMake+MinGW. Also you
+     need some extra libraries like GSL, PNG, JPEG and so on. All of
+     them can be found at
+     `http://gnuwin32.sourceforge.net/packages.html'. After installing
+     all components, just run CMake configurator and make the MathGL
+     itself.
+
+*How I can create FLTK/GLUT/Qt window in parallel with calculation?*
+     You should create a separate thread for processing window
+     messages. The cross-platform way is using the `pthread' library.
+     You can update the data by calling `mglGraphFLTK::Update()'
+     function. The code can look like this: //-----------------------------------------------------------------------------
+     #include <mgl/mgl_fltk.h>
+     #include <pthread.h>
+     #include <unistd.h>
+
+     mglPoint pnt;  // some global variable for changable data
+     //-----------------------------------------------------------------------------
+     int sample(mglGraph *gr, void *)
+     {
+       gr->Box();  gr->Line(mglPoint(),pnt,"Ar2"); // just draw a vector
+       return 0;
+     }
+     //-----------------------------------------------------------------------------
+     void *mgl_fltk_tmp(void *)      {       mglFlRun();     return 0;       }
+     int main (int argc, char ** argv)
+     {
+       mglGraphFLTK gr;
+       gr.Window(argc,argv,sample,"test");  // create window
+       static pthread_t tmp;
+       pthread_create(&tmp, 0, mgl_fltk_tmp, 0);
+       pthread_detach(tmp);    // run window handling in the separate thread
+       for(int i=0;i<10;i++)   // do calculation
+       {
+         sleep(1);             // which can be very long
+         pnt = mglPoint(2*mgl_rnd()-1,2*mgl_rnd()-1);
+         gr.Update();          // update window
+       }
+       return 0;   // finish calculations and close the window
+     }
+     //-----------------------------------------------------------------------------
+
+*How many people write this library?*
+     Most of the library was written by one person. This is a result of
+     nearly a year of work (mostly in the evening and on holidays): I
+     spent half a year to write the kernel and half a year to a year on
+     extending, improving the library and writing documentation. This
+     process continues now :). The autoconf/automake script was written
+     mostly by D.Kulagin, and the export to IDTF was written mostly by
+     M.Vidassov.
+
+*How can I display a bitmap on the figure?*
+     You can import data into a `mglData' instance and display it by
+     `Dens()' function. For example, for black-and-white bitmap you can
+     use the code: `mglData bmp; bmp.Import("fname.png","wk");
+     gr->Dens(bmp,"wk");'.
+
+*How can I use MathGL in Qt, FLTK, wxWidgets etc.?*
+     There are special classes (widgets) for these libraries: QMathGL
+     for Qt, Fl_MathGL for FLTK and so on. If you don</samp>&rsquo;t
+     find the appropriate class then you can create your own widget
+     that displays a bitmap using mglGraphAB::GetBits().
+
+*How can I create U3D file (make 3D in PDF)?*
+     There are 2 steps: first you should create IDTF file, and later
+     convert it to U3D. You can use U3D tools
+     (http://sourceforge.net/project/showfiles.php?group_id=152187&package_id=300628)
+     for converting IDTF file to U3D. It needs libharu
+     (http://libharu.org) 2.1.0 or later. For installation use
+     `./bootstrap, ./configure, make, sudo make install'. It provides
+     IDTFConverter program for converting text files *.idtf to binary
+     files *.u3d. The latter can be included into PDF.
+
+*How I can change the font family?*
+     First, you should download new font files from here
+     (http://mathgl.sourceforge.net/download.html) or from here
+     (http://sourceforge.net/project/showfiles.php?group_id=152187&package_id=267177).
+     Next, you should load the font files into mglGraph class instance
+     GR by the following command: `gr->SetFont(new
+     mglFont(fontname,path));'. Here FONTNAME is the base font name
+     like `STIX' and PATH sets the location of font files. Use
+     `gr->SetFont(NULL);' to start using the default font.
+
+*How can I draw tick out of a bounding box?*
+     Just set a negative value for TICKLEN. For example, use
+     `gr->SetTickLen(-0.1);'.
+
+
+
+File: mathgl_en.info,  Node: Interfaces,  Next: Thanks,  Prev: FAQ,  Up: Overview
+
+1.6 Interfaces
+==============
+
+The MathGL library has interfaces for a set of languages. Most of them
+are based on the C interface via SWIG tool. There are Python, Java,
+Octave, Lisp, C#, Guile, Lua, Modula 3, Ocaml, Perl, PHP, Pike, R,
+Ruby, and Tcl interfaces. Also there is a Fortran interface which has a
+similar set of functions, but slightly different types of arguments
+(integers instead of pointers). These functions are marked as [C
+function].  Some of the languages listed above support classes (like
+Python). For them, a special wrapper was written. These classes and
+functions are marked as (Python).  Finally, a special command language
+MGL was written for a faster access to C++ plotting functions.
+Corresponding scripts can be executed separately (by UDAV, mgl2png,
+mgl2eps and so on) or from the C++ code (*note mglParse class::). These
+commands are described in *note MGL interface::.
+
+* Menu:
+
+* C interface::
+* Python interface::
+
+
+File: mathgl_en.info,  Node: C interface,  Next: Python interface,  Up: Interfaces
+
+1.6.1 C interface
+-----------------
+
+The C interface is a base for many other interfaces. It contains the
+pure C functions for most of the methods of MathGL classes. In
+distinction to C++ classes, C functions must have an argument HMGL (for
+graphics) and/or HMDT (for data arrays), which specifies the object for
+drawing or manipulating (changing). So, firstly, the user has to create
+this object by the function `mgl_create_*()' and has to delete it after
+the use by function `mgl_delete_*()'.
+
+   All C functions are described in the header file `#include
+<mgl/mgl_c.h>' and use variables of the following types:
+   * `HMGL' -- Pointer to class `mglGraph' (*note MathGL core::).
+
+   * `HMDT' -- Pointer to class `mglData' (*note mglData class::).
+
+   * `HMPR' -- Pointer to class `mglParse' (*note mglParse class::)..
+   These variables contain identifiers for graphics drawing objects and
+for the data objects.
+
+   Fortran functions/subroutines have the same names as C functions.
+However, there is a difference. Variable of type `HMGL, HMDT' must be
+an integer with sufficient size (`integer*4' in the 32-bit operating
+system or `integer*8' in the 64-bit operating system). All C functions
+are subroutines in Fortran, which are called by operator `call'. The
+exceptions are functions, which return variables of types `HMGL' or
+`HMDT'. These functions should be declared as integer in Fortran code.
+Also, one should keep in mind that strings in Fortran are denoted by
+`</samp>&rsquo;' symbol, not the `"' symbol.
+
+   *Create and delete objects*
+
+   * Functions for non-visual "grapher" creation:
+
+      -- C function: `HMGL' mgl_create_graph_gl ()
+          Create the instance of class mglGraphGL.
+
+      -- C function: `HMGL' mgl_create_graph_zb (`int' width, `int'
+               height)
+          Create the instance of class mglGraphZB with specified sizes.
+
+      -- C function: `HMGL' mgl_create_graph_ps (`int' width, `int'
+               height)
+          Create the instance of class mglGraphPS with specified sizes.
+
+      -- C function: `HMGL' mgl_create_graph_idtf ()
+          Create the instance of class mglGraphIDTF.
+
+   * Function for windowed "grapher" creation:
+
+      -- C function: `HMGL' mgl_create_graph_glut (`int (*'draw`)(HMGL
+               gr, void *p)', `const char *'title, `void *'par)
+          Create the instance of class mglGraphGLUT and the connected
+          GLUT window. Only one GLUT window can be opened at once.
+          Argument description can be found in *note mglGraphAB class::.
+
+      -- C function: `HMGL' mgl_create_graph_fltk (`int (*'draw`)(HMGL
+               gr, void *p)', `const char *'title, `void *'par)
+          Create the instance of class mglGraphFLTK and the connected
+          FLTK window. Several windows can be opened at the same time.
+          However user must call `mgl_fltk_run()' function to start the
+          message handling cycle. Argument description can be found in
+          *note mglGraphAB class::. Note that DRAW can be `NULL' for
+          displaying static bitmaps only (no animation or slides).
+
+      -- C function: `HMGL' mgl_create_graph_qt (`int (*'draw`)(HMGL
+               gr, void *p)', `const char *'title, `void *'par)
+          Create the instance of class mglGraphQT and the connected Qt
+          window. Several windows can be opened at the same time.
+          However user must call `mgl_qt_run()' function to start the
+          message handling cycle. Arguments description can be found in
+          *note mglGraphAB class::. Note, that DRAW can be `NULL' for
+          displaying static bitmaps only (no animation or slides).
+
+      -- C function: `void' mgl_fltk_run ()
+          Start FLTK message handling cycle. A normal program will end
+          main() function with `return mgl_fltk_run();'.
+
+      -- C function: `void' mgl_fltk_thread ()
+          Start FLTK message handling cycle. In distinction to
+          `mgl_fltk_run()' the loop is started in a separate thread, so
+          that program continues immediately.
+
+      -- C function: `void' mgl_qt_run ()
+          Start Qt message handling cycle. A normal program will end
+          main() function with `return mgl_qt_run();'. Alternatively,
+          the user may setup Qt application by direct Qt function calls.
+
+      -- C function: `void' mgl_qt_thread ()
+          Start Qt message handling cycle. In distinction to
+          `mgl_qt_run()' the loop is started in separate thread so that
+          the program continues immediately.
+
+      -- C function: `void' mgl_update (`HMGL' graph)
+          Manually update contents of the window.
+
+      -- C function: `void' mgl_set_show_mouse_pos (`HMGL' graph, `int'
+               enable)
+          Switch to show or not in the widget the last mouse click
+          position.
+
+      -- C function: `void' mgl_get_last_mouse_pos (`HMGL' graph,
+               `float *'x, `float *'y, `float *'z)
+          Last position of mouse click.
+
+      -- C function: `void' mgl_calc_xyz (`HMGL' graph, `int' xs, `int'
+               ys, `float *'x, `float *'y, `float *'z)
+          Calculate 3D coordinate {x,y,z} for screen point {xs,ys}. At
+          this moment, it ignores perspective and transformation
+          formulas (curvilinear coordinates). The calculations are done
+          for the last used InPlot (*note Transformation matrix::).
+
+   * Functions for data creation:
+
+      -- C function: `HMDT' mgl_create_data ()
+          Create a simple instance of class mglData.
+
+      -- C function: `HMDT' mgl_create_data_size (`int' nx, `int' ny,
+               `int' nz)
+          Create an instance of class mglData with specified sizes.
+
+      -- C function: `HMDT' mgl_create_data_file (`const char *'fname)
+          Create an instance of class mglData and fill it by data from
+          text file.
+
+   * Each created object *must* be deleted after usage by functions:
+
+      -- C function: `void' mgl_delete_graph (`HMGL' graph)
+          Delete the instance of a class. Must be used after plotting
+          for every created graphical object.
+
+      -- C function: `void' mgl_delete_data (`HMDT' dat)
+          Delete the instance of a class. Must be used after the use of
+          every created data object.
+
+
+File: mathgl_en.info,  Node: Python interface,  Prev: C interface,  Up: Interfaces
+
+1.6.2 Python interface
+----------------------
+
+MathGL provides the interface to a set of languages via SWIG library.
+Some of these languages support classes. The typical example is Python
+- which is named in this chapter</samp>&rsquo;s title.
+
+   To use Python classes just execute `import mathgl'. The simplest
+example will be:
+import mathgl
+a=mathgl.mglGraph()
+a.Box()
+a.WritePNG(</samp>&rsquo;test.png</samp>&rsquo;)
+ Alternatively you can import all classes from `mathgl' module and
+easily access MathGL classes like this:
+from mathgl import *
+a=mglGraph()
+a.Box()
+a.WritePNG(</samp>&rsquo;test.png</samp>&rsquo;)
+ This becomes useful if you create many `mglData' objects, for example.
+
+   There are 2 classes in Python interface:
+   * `mglGraph' - provide practically the same functionality as C++
+     class `mglGraph' (*note MathGL core::). But it is not an abstract
+     class and it allows one to select at construction stage which
+     plotter (ZB or PS and so on) will be used.
+
+   * `mglData' - is exactly the same class as C++ `mglData' (*note
+     mglData class::), but an additional feature to access data values
+     is added. You can use a construct like this: `dat[i]=sth;' or
+     `sth=dat[i]' where flat representation of data is used (i.e., I
+     can be in range 0...nx*nx*nz-1). You can also import NumPy arrays
+     as input arguments: `mgl_dat = mglData(numpy_dat);'.
+
+     To use Python classes just execute `import mathgl'. The simplest
+     example will be: import mathgl
+     a=mathgl.mglGraph()
+     a.Box()
+     a.WritePNG(</samp>&rsquo;test.png</samp>&rsquo;)
+      Alternatively, you can import all the classes from `mathgl'
+     module and easily access MathGL classes: from mathgl import *
+     a=mglGraph()
+     a.Box()
+     a.WritePNG(</samp>&rsquo;test.png</samp>&rsquo;)
+      This is useful if you create many `mglData' objects, for example.
+
+     There are 2 classes in Python interface:
+        * `mglGraph' - provide practically the same functionality as
+          C++ class `mglGraph' (*note MathGL core::). But it is not an
+          abstract class and it allows one to select at the
+          construction stage which plotter (ZB or PS and so on) will be
+          used.
+
+        * `mglData' - is exactly the same class as C++ `mglData' (*note
+          mglData class::), but an additional feature to access data
+          values is added. You can use a construct like this:
+          `dat[i]=sth;' or `sth=dat[i]' where flat representation of
+          data is used (i.e., I can be in range 0...nx*nx*nz-1).
+
+     There is one main difference from C++ classes - Python class
+     `mglGraph' does not have variables (options). All the
+     corresponding features are moved to methods.  The core of MathGL
+     Python class is the *mglGraph* class. It contains a lot of
+     plotting functions for 1D, 2D and 3D plots. So most of the
+     sections describe its methods. Its constructor has the following
+     arguments:
+
+      -- Constructor on mglGraph (Python): `' mglGraph (`int' kind=`0',
+               `int' width=`600', `int' height=`400')
+          Create the instance of class mglGraph with specified sizes
+          WIDTH and HEIGHT. Parameter TYPE may have following values:
+          `0' - use `mglGraphZB' plotter (default), `1' - use
+          `mglGraphPS' plotter, `2' - use `mglGraphGL' plotter, `3' -
+          use `mglGraphIDTF' plotter.
+
+   There is one difference from C++ classes - Python class `mglGraph'
+does not have variables (options). All the corresponding features are
+moved to methods.  The core of MathGL Python class is the *mglGraph*
+class. It contains a lot of plotting functions for 1D, 2D and 3D plots.
+So most of the sections describe its methods. Its constructor has the
+following arguments:
+
+ -- Constructor on mglGraph (Python): `' mglGraph (`int' kind=`0',
+          `int' width=`600', `int' height=`400')
+     Create the instance of class mglGraph with specified sizes WIDTH
+     and HEIGHT. Parameter TYPE may have following values: `0' - use
+     `mglGraphZB' plotter (default), `1' - use `mglGraphPS' plotter,
+     `2' - use `mglGraphGL' plotter, `3' - use `mglGraphIDTF' plotter.
+
+
+File: mathgl_en.info,  Node: Thanks,  Prev: Interfaces,  Up: Overview
+
+1.7 Thanks
+==========
+
+   * My special thanks to Marina Balakina for the patience during the
+     writing of this library and for the help in documentation writing
+     and spelling.
+
+   * I</samp>&rsquo;m thankful to D. Kulagin and S.M. Plis for making
+     Debian packages.
+
+   * I</samp>&rsquo;m thankful to M. Vidassov for the help in handling
+     solid UTF-8 fonts.
+
+   * I</samp>&rsquo;m thankful to N. Troickiy and V. Lipatov for making
+     RPM packages.
+
+   * I</samp>&rsquo;m thankful to S. Skobelev, A. Korotkevich, V.
+     Onuchin, S.M. Plis, R. Kiselev, A. Ivanov, M. Vidiassov and V.
+     Lipatov for fruitful comments.
+
+
+File: mathgl_en.info,  Node: Examples,  Next: MathGL core,  Prev: Overview,  Up: Top
+
+2 MathGL examples
+*****************
+
+This chapter contain information about basic and advanced MathGL, hints
+and samples for all types of graphics. I recommend you read first 2
+sections one after another and at least look on "Hints" section. Also I
+recommend you to look at *note General concepts:: and *note FAQ::.
+Sample code for some of these examples can be found in
+`http://mathgl.sf.net/pictures.html' and in *note Samples::.
+
+* Menu:
+
+* Basic usage::
+* Advanced usage::
+* Data handling::
+* Data plotting::
+* C/Fortran interface::
+* MathGL and PyQt::
+* Hints::
+
+
+File: mathgl_en.info,  Node: Basic usage,  Next: Advanced usage,  Up: Examples
+
+2.1 Basic usage
+===============
+
+MathGL library can be used by several manners. Each has positive and
+negative sides:
+   * _The using of MathGL library features for creating graphical
+     window (requires FLTK or GLUT libraries)._
+
+     Positive side is the possibility to view the plot at once and to
+     modify it (rotate, zoom or switch on transparency or lighting) by
+     hand or by mouse. Negative sides are: the need  of X-terminal and
+     limitation consisting in working with the only one set of data at
+     a time.
+
+   * _Direct writing to file in bitmap or vector format without
+     creation of graphical window._
+
+     Positive aspects are: batch processing of similar data set (for
+     example, a set of resulting data files for different calculation
+     parameters), running from the console program (including the
+     cluster calculation), fast and automated drawing, saving pictures
+     for further analysis (or demonstration). Negative sides are: the
+     usage of the external program for picture viewing. Also, the data
+     plotting is non-visual. So, you have to imagine the picture (view
+     angles, lighting and so on) before the plotting. I recommend to
+     use graphical window for determining the optimal parameters of
+     plotting on the base of some typical data set. And later use these
+     parameters for batch processing in console program.
+
+   * _Drawing in memory with the following displaying by other
+     graphical program._
+
+     In this case the programmer has more freedom in selecting the
+     window libraries (not only FLTK or GLUT), in positioning and
+     surroundings control and so on. I recommend to use such way for
+     "settled" programs.
+
+   Let me consider the aforesaid in more detail.
+
+* Menu:
+
+* Using FLTK/GLUT window::
+* Drawing to file::
+* Drawing in memory::
+* Using QMathGL::
+
+
+File: mathgl_en.info,  Node: Using FLTK/GLUT window,  Next: Drawing to file,  Up: Basic usage
+
+2.1.1 Using FLTK/Qt/GLUT window
+-------------------------------
+
+The "interactive" way of drawing in MathGL consists in window creation
+with help of class `mglGraphFLTK', `mglGraphQT' or `mglGraphGLUT'
+(*note Widget classes::) and the following drawing in this window.
+There is a corresponding code:
+    int sample(mglGraph *gr, void *)
+    {
+        gr->Rotate(60,40);
+        gr->Box();
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mglGraphFLTK gr;
+        gr.Window(argc,argv,sample,"MathGL examples");
+        return mglFlRun();
+    }
+ Here function `sample' is defined. This function does all drawing.
+Other function `main' is entry point function for console program.
+Arguments of `main' should be transfered to `Window()' since it may
+contain OS specific information (*note mglGraphAB class::).
+
+   Alternatively you can create yours own class inherited from class
+`mglDraw' and re-implement the function `Draw()' in it:
+    class Foo : public mglDraw
+    {
+    public:
+        int Draw(mglGraph *gr);
+    } foo;
+    //-----------------------------------------------------
+    int Foo::Draw(mglGraph *gr)
+    {
+        gr->Rotate(60,40);
+        gr->Box();
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mglGraphFLTK gr;
+        gr.Window(argc,argv,foo,"MathGL examples");
+        return mglFlRun();
+    }
+
+   The similar code can be written for `mglGraphQT' or for
+`mglGraphGLUT' window (function `sample()' is the same):
+    int main(int argc,char **argv)
+    {
+        mglGraphGLUT gr;
+        gr.Window(argc,argv,sample,"MathGL examples");
+        return 0;
+    }
+
+   The rotation, shift, zooming, switching on/off transparency and
+lighting can be done with help of tool-buttons (for `mglGraphFLTK' and
+`mglGraphQT') or by hot-keys: `a', `d', `w', `s' for plot rotation, `r'
+and `f' switching on/off transparency and lighting. Press `x' for exit
+(or closing the window).
+
+   In this example function `sample' rotates axes (`Rotate()', *note
+Transformation matrix::) and draws the bounding box (`Box()'). Drawing
+procedure is separated in a function since it will be used on demand
+when window canvas needs to be redrawn. Widget classes (`mglGraphFLTK',
+`mglGraphGLUT' and so on) support a delayed drawing, when all plotting
+functions are called once at the beginning of writing to memory lists.
+Further program displays the saved lists faster. Resulting redrawing
+will be faster but it requires sufficient memory. Several lists
+(frames) can be displayed one after another (by pressing `,', `.') or
+run as cinema. To switch these feature on one needs to modify function
+`sample':
+    int sample1(mglGraph *gr, void *)
+    {
+        gr->NewFrame();             // the first frame
+        gr->Rotate(60,40);
+        gr->Box();
+        gr->EndFrame();             // end of the first frame
+        gr->NewFrame();             // the second frame
+        gr->Box();
+        gr->Axis("xy");
+        gr->EndFrame();             // end of the second frame
+        return GetNumFrame();       // returns the frame number
+    }
+ First, the function creates a frame `NewFrame()' for rotated axes and
+draws the bounding box. After the frame drawing the function
+`EndFrame()' *must be* called! The second frame contains the bounding
+box and axes `Axis("xy")' in the initial (unrotated) coordinates.
+Function `sample' returns the number of created frames `GetNumFrame()'.
+
+
+File: mathgl_en.info,  Node: Drawing to file,  Next: Drawing in memory,  Prev: Using FLTK/GLUT window,  Up: Basic usage
+
+2.1.2 Drawing to file
+---------------------
+
+Another way of using MathGL library is the direct picture writing to
+file. It is most usable for plot creating during calculation or for
+using of small programs (like Matlab or Scilab scripts) for visualizing
+repetitive sets of data. But the speed of drawing is much higher in
+comparison with a script language. There are two classes for exporting
+in file: class `mglGraphZB' saves in bitmap format (like PNG),
+`mglGraphPS' saves in vector PostScript format (*note Plotter
+classes::).
+
+   The following code produces a bitmap PNG picture:
+    int main(int ,char **)
+    {
+        mglGraphZB gr;
+        gr.Alpha(true);
+        gr.Light(true);             gr.Light(0,mglPoint(1,0,-1));
+        sample(&gr,NULL);           // The same drawing function.
+        gr.WritePNG("test.png");    // Don't forget to save the result!
+        return 0;
+    }
+ The only difference from the previous (using windows) variant is
+manual switching the transparency  `Alpha' and lightning `Light' on, if
+the plot requires it. The using of frames is not advisable since the
+whole image is prepared each time. If function `sample' contains frames
+then each frame will be saved to a separate file. In principle, one
+does not need to separate drawing functions in case of direct file
+writing in consequence of the single calling of this function for each
+picture. However, one may use the same drawing procedure to create a
+plot with changed parameters, to export in different file types, to
+emphasize the drawing code and so on. So, in future I will put the
+drawing in separate function.
+
+   The code for export in vector EPS file looks the same:
+    int main(int ,char **)
+    {
+        mglGraphPS gr;
+        gr.Light(true);             gr.Light(0,mglPoint(1,0,-1));
+        sample(&gr,NULL);           // The same drawing function.
+        gr.WriteEPS("test.eps");    // Don't forget to save the result!
+        return 0;
+    }
+ The differences from the using of bitmap picture are: applying of the
+other class `mglGraphPS', and writing to other format (function
+`WriteEPS()' instead of function `WritePNG()'). Moreover, there is no
+switching of the plot transparency `Alpha' since EPS format does not
+support it. Possibly I shall include transparency in future by program
+emulation.
+
+   Classes `mglGraphZB' and `mglGraphPS' have some merits and demerits.
+Class `mglGraphZB' draws beautiful surface with transparency, smoothed
+colors and lightning, but the output picture is _bitmap_, that leads to
+a bad scalability. On the contrary, class `mglGraphPS' creates vector
+file with excellent scalability. But file has large size (especially
+for surfaces), it does not support transparency and color smoothing.
+So, vector picture looks stylish but a bit angularly.
+
+
+File: mathgl_en.info,  Node: Drawing in memory,  Next: Using QMathGL,  Prev: Drawing to file,  Up: Basic usage
+
+2.1.3 Drawing in memory
+-----------------------
+
+The last way of MathGL using is the drawing in memory. Class
+`mglGraphZB' allows one  to create a bitmap picture in memory. Further
+this picture can be displayed in window by some window libraries (like
+wxWidgets, FLTK, Windows GDI and so on). For example, the code for
+drawing in wxWidget library looks like:
+    void MyForm::OnPaint(wxPaintEvent& event)
+    {
+        int w,h,x,y;
+        GetClientSize(&w,&h);   // size of the picture
+        mglGraphZB gr(w,h);
+
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&gr,NULL);
+
+        wxImage img(w,h,gr.GetBits(),true);
+        ToolBar->GetSize(&x,&y);    // gets a height of the toolbar if any
+        wxPaintDC dc(this);         // and draws it
+        dc.DrawBitmap(wxBitmap(img),0,y);
+    }
+ The drawing in other libraries is most the same.
+
+   For example, FLTK code will look like
+    void Fl_MyWidget::draw()
+    {
+        mglGraphZB gr(w(),h());
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&gr,NULL);
+        fl_draw_image(gr.GetBits(), x(), y(), gr.GetWidth(), gr.GetHeight(), 3);
+    }
+ Qt code will look like
+    void MyWidget::paintEvent(QPaintEvent *)
+    {
+        mglGraphZB gr(w(),h());
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&gr,NULL);
+
+        // Qt don't support RGB format as is. So, let convert it to BGRN.
+        const uchar *bb = gr.GetBits();
+        register long i, w=gr.GetWidth(), h=gr.GetHeight();
+        *buf = new uchar[4*w*h];
+        for(i=0;i<w*h;i++)
+        {
+            (*buf)[4*i]   = bb[3*i+2];
+            (*buf)[4*i+1] = bb[3*i+1];
+            (*buf)[4*i+2] = bb[3*i];
+            (*buf)[4*i+3] = 255;
+        }
+        QPixmap pic = QPixmap::fromImage(QImage(*buf, w, h, QImage::Format_RGB32));
+
+        QPainter paint;
+        paint.begin(this);  paint.drawPixmap(0,0,pic);  paint.end();
+        delete []buf;
+    }
+
+
+File: mathgl_en.info,  Node: Using QMathGL,  Prev: Drawing in memory,  Up: Basic usage
+
+2.1.4 Using QMathGL
+-------------------
+
+MathGL have several interface widgets for different widget libraries.
+There are QMathGL for Qt, Fl_MathGL for FLTK in MathGL v.1.8. These
+classes provide control which display MathGL graphics. Unfortunately
+there is no uniform interface for widget classes because all libraries
+have slightly different set of functions, features and so on. However
+the usage of MathGL widgets is rather simple. Let me show it on the
+example of QMathGL.
+
+   First of all you have to define the drawing function or inherit a
+class from `mglDraw' class. After it just create a window and setup
+QMathGL instance as any other Qt widget:
+    int main(int argc,char **argv)
+    {
+        QApplication a(argc,argv);
+        QMainWindow *Wnd = new QMainWindow;
+        Wnd->resize(650,480);  // for fill up the QMGL, menu and toolbars
+        Wnd->setWindowTitle(title);
+        // here I allow to scroll QMathGL -- the case
+        // then user want to prepare huge picture
+        QScrollArea *scroll = new QScrollArea(Wnd);
+
+        // Create and setup QMathGL
+        QMathGL *QMGL = new QMathGL(Wnd);
+        QMGL->setPopup(popup); // if you want to setup popup menu for QMGL
+        QMGL->setDraw(sample, NULL);
+        // or use QMGL->setDraw(foo); for instance of class Foo:public mglDraw
+        QMGL->update();
+
+        // continue other setup (menu, toolbar and so on)
+        makeMenu();
+        scroll->setWidget(QMGL);
+        Wnd->setCentralWidget(scroll);
+        Wnd->show();
+        return a.exec();
+    }
+
+
+File: mathgl_en.info,  Node: Advanced usage,  Next: Data handling,  Prev: Basic usage,  Up: Examples
+
+2.2 Advanced usage
+==================
+
+Now I show several non-obvious features of MathGL: several subplots in
+a single picture, curvilinear coordinates, text printing and so on.
+Generally you may miss this section at first reading, but I don't
+recommend it.
+
+* Menu:
+
+* Subplots::
+* Axis and grids::
+* Curvilinear coordinates::
+* Text printing example::
+* Animation::
+
+
+File: mathgl_en.info,  Node: Subplots,  Next: Axis and grids,  Up: Advanced usage
+
+2.2.1 Subplots
+--------------
+
+Let me demonstrate possibilities of axes transformation. MathGL has the
+following functions: `SubPlot', `InPlot', `Aspect' and `Rotate' (*note
+Transformation matrix::). The order of their calling is strictly
+determined. First, one changes the position of axes in image area
+(functions `SubPlot' and `InPlot'). After that one may rotate the plot
+(function `Rotate'). Finally, one may change aspects of axes (function
+`Aspect'). The following code illustrates the aforesaid it:
+    int sample(mglGraph *gr, void *)
+    {
+        gr->SubPlot(2,2,0);
+        gr->Box();
+        gr->Puts(mglPoint(-1,1.1,1),"Just box","rL");
+        gr->InPlot(0.2,0.5,0.7,1);
+        gr->Box();
+        gr->Puts(mglPoint(0,1.2,1),"InPlot example");
+
+        gr->SubPlot(2,2,1);
+        gr->Rotate(60,40);
+        gr->Aspect(1,1,1);
+        gr->Box();
+        gr->Puts(mglPoint(1,1,1.5),"Rotate only","rR");
+
+        gr->SubPlot(2,2,2);
+        gr->Rotate(60,40);
+        gr->Aspect(1,1,2);
+        gr->Box();
+        gr->Puts(mglPoint(0,0,2),"Aspect and Rotate");
+
+        gr->SubPlot(2,2,3);
+        gr->Rotate(60,40);
+        gr->Aspect(1,2,2);
+        gr->Box();
+        gr->Puts(mglPoint(0,0,1.5),"Aspect in other direction");
+        return 0;
+    }
+ Here I used function `Puts' for printing the text in arbitrary
+position of picture (*note Text printing::). Text coordinates and size
+are connected with axes. However, text coordinates may be everywhere,
+including the outside the bounding box. I shall show its features later
+in *Note Text printing example::.
+
+ [image src="../png/sample1.png" ]
+
+Example of several subplots on the single picture.
+
+
+File: mathgl_en.info,  Node: Axis and grids,  Next: Curvilinear coordinates,  Prev: Subplots,  Up: Advanced usage
+
+2.2.2 Axis and grids
+--------------------
+
+MathGL library can draw not only the bounding box but also the axes,
+grids, labels and so on. The limits of axes and their origin (the point
+of intersection) are determined by function `Axis()'. Also you can use
+`XRange(), YRange(), ZRange()' functions (*note Ranges (bounding
+box)::). Ticks on axis are specified by function `SetTicks' (*note
+Ticks::). First argument the direction for each change will be applied.
+Second argument gives the step between ticks (if positive) or gives the
+number of ticks on the axis (if negative) or set to use logarithmic
+ticks (if zero). Third argument gives numbers of sub-ticks between
+ticks (default is zero). Last argument define the initial ticks
+position.
+
+   Function `Axis' draws axes. Its textual string shows in which
+directions the axis or axes will be drawn (by default `"xyz"', function
+draws axes in all directions). Function `Grid' draws grid
+perpendicularly to specified directions. Example of axes and grid
+drawing is:
+    int sample(mglGraph *gr, void *)
+    {
+        gr->SubPlot(2,2,0);
+        gr->SetTicks('x', 0.4, 3);  // sets tick step to 0.5
+        gr->SetTicks('y', 0.4, 3);  // and draws 3 subticks
+        gr->Box();                  // should be after the ticks change
+        gr->Axis("xy");
+        gr->Grid();
+        gr->Puts(mglPoint(0,1.3,1),"Axis and grid");
+
+        gr->SetTicks('x');  gr->SetTicks('y'); // restore back
+        gr->Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(0,0,0));
+
+        gr->SubPlot(2,2,1);
+        gr->Rotate(60,40);
+        gr->Axis();
+        gr->Label('x',"x");
+        gr->Label('y',"y");
+        gr->Label('z',"z");
+        gr->Puts(mglPoint(0,0,1.5),"Axis and labels");
+
+        gr->SubPlot(2,2,2);
+        gr->Rotate(60,40);
+        gr->SetTicks('x', 0.2); gr->SetTicks('y', 0.2);
+        gr->SetTicks('z', 0.2); // too low step of ticks
+        gr->Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,-1,-1));
+        gr->Axis();
+        gr->Grid();
+        gr->Puts(mglPoint(0,0,1.5),"Shift origin and add grid");
+        gr->Puts(mglPoint(0,0,1.2),"(note, too many ticks)");
+
+        gr->SubPlot(2,2,3);
+        gr->Rotate(60,40);
+        gr->SetTicks('x', -6);  // decrease the number of ticks
+        gr->SetTicks('y', -6);
+        gr->Axis("yz");
+        gr->Label('y',"Y axis",0);
+        gr->Label('z',"Z axis",0);
+        gr->Puts(mglPoint(0,0,1.5),"Remove X axis, and");
+        gr->Puts(mglPoint(0,0,1.2),"decrease number of ticks");
+        return 0;
+    }
+
+   This example shows the importance of the correct choosing of the
+number of ticks on axis. If tick step is too small then its text may
+overlap and becomes unreadable. This code has the example of `Label'
+function. It draws label for axis in specified direction. The text
+position on axis is specified by third argument of `Label' function. If
+it is positive then then text is drawn near the axis maximum, if
+negative then the same takes place near the minimum of axis, if zero -
+then at the center of axis.
+
+ [image src="../png/sample2.png" ]
+
+Example of setting up axis range and axis ticks.
+
+
+File: mathgl_en.info,  Node: Curvilinear coordinates,  Next: Text printing example,  Prev: Axis and grids,  Up: Advanced usage
+
+2.2.3 Curvilinear coordinates
+-----------------------------
+
+Now let use curvilinear coordinates. In difference from other systems
+of plot creation, MathGL uses textual formulas for connection of the
+old (data) and new (output) coordinates. This allows one to plot in
+arbitrary coordinates. The following code plots the line Y=0, Z=0 in
+Cartesian, polar, parabolic and spiral coordinates:
+    int sample(mglGraph *gr, void *)
+    {
+        mglData x(50),y(50),z(50);
+        y.Fill(0.5,0.5);
+        x.Fill(-1,1);           // creates data arrays
+
+        gr->Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,1,-1));
+        gr->dz = 0.5;           // sets tick step to 0.5
+
+        gr->SubPlot(2,2,0);
+        gr->Rotate(60,40);
+        gr->Plot(x,y,z,"r2");
+        gr->Axis(); gr->Grid();
+        gr->Puts(mglPoint(0,1.3,1),"Cartesian");
+
+        gr->SubPlot(2,2,1);
+        gr->SetFunc("y*sin(pi*x)","y*cos(pi*x)",0);
+        gr->Rotate(60,40);
+        gr->Plot(x,y,z,"r2");
+        gr->Axis(); gr->Grid();
+        gr->Puts(mglPoint(0,1.3,1),"Cylindrical");
+
+        gr->SubPlot(2,2,2);
+        gr->Rotate(60,40);
+        gr->SetFunc("2*y*x","y*y - x*x",0);
+        gr->Plot(x,y,z,"r2");
+        gr->Axis(); gr->Grid();
+        gr->Puts(mglPoint(0,1.3,1),"Parabolic");
+
+        gr->SubPlot(2,2,3);
+        gr->Rotate(60,40);
+        gr->SetFunc("y*sin(pi*x)","y*cos(pi*x)","x+z");
+        gr->Plot(x,y,z,"r2");
+        gr->Axis(); gr->Grid();
+        gr->Puts(mglPoint(0,1.3,1),"Spiral");
+        return 0;
+    }
+
+ [image src="../png/sample3.png" ]
+
+Example of curvilinear coordinates
+
+
+File: mathgl_en.info,  Node: Text printing example,  Next: Animation,  Prev: Curvilinear coordinates,  Up: Advanced usage
+
+2.2.4 Text printing example
+---------------------------
+
+MathGL prints text by vector font. There are functions for manual
+specifying of text position (like `Puts') and for its automatic
+selection (like `Label', `Legend' and so on). MathGL prints text always
+in specified position even if it lies outside the bounding box. The
+default size of font is specified by variables FONTSIZE (*note Font
+settings::). However, the actual size of output string depends on
+position of axes (depends on functions `SubPlot', `InPlot'). The
+switching of the font style (italic, bold, wire and so on) can be done
+for the whole string (by function parameter) or inside the string. By
+default MathGL parses TeX-like commands for symbols and indexes (see
+*note Font styles::). Example of MathGL font drawing is:
+    int sample(mglGraph *gr, void *)
+    {
+        setlocale(LC_CTYPE, "ru_RU.cp1251");
+        gr->Puts(mglPoint(0,1),"Text can be in ASCII and in Unicode");
+        gr->Puts(mglPoint(0,0.6),"It can be \\wire{wire}, \\big{big} "
+            "or #r{colored}");
+        gr->Puts(mglPoint(0,0.2),"One can change style in string: "
+            "\\b{bold}, \\i{italic, \\b{both}}");
+        gr->Puts(mglPoint(0,-0.2),"Easy to \\a{overline} or "
+            "\\u{underline}");
+        gr->Puts(mglPoint(0,-0.6),"Easy to change indexes "
+            "^{up} _{down} @{center}");
+        gr->Puts(mglPoint(0,-1),"It parse TeX: \\int \\alpha \\cdot "
+            "\\sqrt3{sin(\\pi x)^2 + \\gamma_{i_k}} dx");
+        return 0;
+    }
+
+ [image src="../png/sample4.png" ]
+
+Example of text printing with different font effects
+
+   Another example demonstrate the features of TeX formula parsing.
+    int sample(mglGraph *gr, void *)
+    {
+        gr->Puts(mglPoint(0), "\\sqrt{\\frac{\\alpha^{\\gamma^2}+"
+            "\\overset 1{\\big\\infty}}{\\sqrt3{2+b}}}", 0, -4);
+        return 0;
+    }
+
+ [image src="../png/samplee.png" ]
+
+Example of TeX formula parsing
+
+   Finally you can change font during execution (this work well for
+mglGraphZB class only).
+    int sample(mglGraph *gr, void *)
+    {
+        float h=1.1, d=0.25;
+        gr->LoadFont("STIX");       gr->Puts(mglPoint(0,h), "default font (STIX)");
+        gr->LoadFont("adventor");   gr->Puts(mglPoint(0,h-d), "adventor font");
+        gr->LoadFont("bonum");      gr->Puts(mglPoint(0,h-2*d), "bonum font");
+        gr->LoadFont("chorus");     gr->Puts(mglPoint(0,h-3*d), "chorus font");
+        gr->LoadFont("cursor");     gr->Puts(mglPoint(0,h-4*d), "cursor font");
+        gr->LoadFont("heros");      gr->Puts(mglPoint(0,h-5*d), "heros font");
+        gr->LoadFont("heroscn");    gr->Puts(mglPoint(0,h-6*d), "heroscn font");
+        gr->LoadFont("pagella");    gr->Puts(mglPoint(0,h-7*d), "pagella font");
+        gr->LoadFont("schola");     gr->Puts(mglPoint(0,h-8*d), "schola font");
+        gr->LoadFont("termes");     gr->Puts(mglPoint(0,h-9*d), "termes font");
+    }
+
+ [image src="../png/fonts.png" ]
+
+Example of font face changing.
+
+
+File: mathgl_en.info,  Node: Animation,  Prev: Text printing example,  Up: Advanced usage
+
+2.2.5 Animation
+---------------
+
+You can make animation by several methods in MathGL: by export in
+animated GIF, or by save each frame in separate file (usually JPEG) and
+convert these files into movie. Let me show both methods.
+
+   The simplest methods is making animated GIF. There are 3 steps: (1)
+open GIF file by `StartGIF()' function; (2) create the frames by
+calling `NewFrame()' before and `EndFrame()' after plotting; (3) close
+GIF by `CloseGIF()' function. So the simplest code for "running"
+sinusoid will look like this:
+    int sample(mglGraph *gr, void *)
+    {
+        mglData dat(100);
+        char str[32];
+        gr->StartGIF("sample.gif");
+        for(int i=0;i<100;i++)
+        {
+            gr->NewFrame();     // start frame
+            gr->Box();          // some plotting
+            sprintf(str,"sin(pi*x+%g*pi)",0.02*i);
+            dat.Modify(str);
+            gr->Plot(dat,"b");
+            gr->EndFrame();     // end frame
+        }
+        gr->CloseGIF();
+        return 0;
+    }
+
+   The second way is saving each frame in separate file (usually JPEG)
+and later make the movie from them. MathGL have special function for
+saving frames - it is `WriteFrame()'. This function save each frame
+with automatic name `frame0001.jpg, frame0002.jpg' and so on. Here
+prefix `frame' is defined by PLOTID variable of `mglGraph' class. So
+the similar code will look like this:
+    int sample(mglGraph *gr, void *)
+    {
+        mglData dat(100);
+        char str[32];
+        for(int i=0;i<100;i++)
+        {
+            gr->NewFrame();     // start frame
+            gr->Box();          // some plotting
+            sprintf(str,"sin(pi*x+%g*pi)",0.02*i);
+            dat.Modify(str);
+            gr->Plot(dat,"b");
+            gr->EndFrame();     // end frame
+            gr->WriteFrame();   // save frame
+        }
+        return 0;
+    }
+
+   Created files can be converted to movie by help of a lot of
+programs. For example, you can use ImageMagic (command `convert
+frame*.jpg movie.mpg'), MPEG library, GIMP and so on.
+
+   Finally, you can use `mgl2gif' tool for doing the same with MGL
+scripts (*note Utilities::).
+
+
+File: mathgl_en.info,  Node: Data handling,  Next: Data plotting,  Prev: Advanced usage,  Up: Examples
+
+2.3 Data handling
+=================
+
+Class `mglData' contains all functions for the data handling in MathGL
+(*note mglData class::). There are several matters why I use class
+`mglData' but not a single array: it does not depend on type of data
+(float or double), sizes of data arrays are kept with data, memory
+working is simpler and safer.
+
+* Menu:
+
+* Array creation::
+* Data changing::
+
+
+File: mathgl_en.info,  Node: Array creation,  Next: Data changing,  Up: Data handling
+
+2.3.1 Array creation
+--------------------
+
+One can put the data in `mglData' instance by several ways. Let us do
+it for sinus function:
+   * one can create external array, fill it and put to `mglData'
+     variable     double *a = new double[50];
+         for(int i=0;i<50;i++)   a[i] = sin(M_PI*i/49.);
+
+         mglData y;
+         y.Set(a,50);
+
+   * another way is to create `mglData' instance of the desired size
+     and then to work directly with data in this variable     mglData y(50);
+         for(int i=0;i<50;i++)   y.a[i] = sin(M_PI*i/49.);
+
+   * next way is to fill the data in `mglData' instance by textual
+     formula with the help of `Modify()' function     mglData y(50);
+         y.Modify("sin(pi*x)");
+
+   * or one may fill the array in some interval and modify it later     mglData y(50);
+         y.Fill(0,M_PI);
+         y.Modify("sin(u)");
+
+   * finally it can be loaded from file     FILE *fp=fopen("sin.dat","wt");   // create file first
+         for(int i=0;i<50;i++)   fprintf(fp,"%g\n",sin(M_PI*i/49.));
+         fclose(fp);
+
+         mglData y("sin.dat");             // load it
+
+   * at this one can read only part of data     FILE *fp-fopen("sin.dat","wt");   // create large file first
+         for(int i=0;i<70;i++)   fprintf(fp,"%g\n",sin(M_PI*i/49.));
+         fclose(fp);
+
+         mglData y;
+         y.Read("sin.dat",50);             // load it
+
+   Creation of 2d- and 3d-arrays is mostly the same. But one should
+keep in mind that class `mglData' uses flat data representation. For
+example, matrix 30*40 is presented as flat (1d-) array with length
+30*40=1200 (nx=30, ny=40). The element with indexes {i,j} is a[i+nx*j].
+So for 2d array we have:
+    mglData z(30,40);
+    for(int i=0;i<30;i++)   for(int j=0;j<40;j++)
+        z.a[i+30*j] = sin(M_PI*i/29.)*sin(M_PI*j/39.);
+ or by using `Modify()' function
+    mglData z(30,40);
+    z.Modify("sin(pi*x)*cos(pi*y)");
+
+   The only non-obvious thing here is using multidimensional arrays in
+C/C++, i.e. arrays defined like `float dat[40][30];'. Since, formaly
+this arrays element `dat[i]' can address the memory in arbitrary place
+you should use the proper function to convert such arrays to `mglData'
+object. For C++ this is functions like `mglData::Set(float **dat, int
+N1, int N2);'. For C this is functions like `mgl_data_set_float2(HMDT
+d, const float **dat, int N1, int N2);'. At this, you should keep in
+mind that `nx=N2' and `ny=N1' after conversion.
+
+
+File: mathgl_en.info,  Node: Data changing,  Prev: Array creation,  Up: Data handling
+
+2.3.2 Data changing
+-------------------
+
+MathGL has functions for data processing: differentiating, integrating,
+smoothing and so on (for more detail, *note mglData class::). Let us
+consider some examples. The simplest ones are integration and
+differentiation. The direction in which operation will be performed is
+specified by textual string, which may contain symbols `x', `y' or `z'.
+For example, the call of `Diff("x")' will differentiate data along `x'
+direction; the call of `Integral("xy")' perform the double integration
+of data along `x' and `y' directions; the call of `Diff2("xyz")' will
+apply 3d Laplace operator to data and so on. Example of this operations
+on 2d array a=x*y is presented in code:
+    int sample(mglGraph *gr, void *)
+    {
+        mglData a(30,40);   a.Modify("x*y");
+        gr->Axis(mglPoint(0,0,0),mglPoint(1,1,1));
+        gr->SubPlot(2,2,0); gr->Rotate(60,40);
+        gr->Surf(a);        gr->Box();
+        gr->Puts(mglPoint(0.7,1,1.2),"a(x,y)");
+        gr->SubPlot(2,2,1); gr->Rotate(60,40);
+        a.Diff("x");        gr->Surf(a);      gr->Box();
+        gr->Puts(mglPoint(0.7,1,1.2),"da/dx");
+        gr->SubPlot(2,2,2); gr->Rotate(60,40);
+        a.Integral("xy");   gr->Surf(a);      gr->Box();
+        gr->Puts(mglPoint(0.7,1,1.2),"\\int da/dx dxdy");
+        gr->SubPlot(2,2,3); gr->Rotate(60,40);
+        a.Diff2("y");       gr->Surf(a);      gr->Box();
+        gr->Puts(mglPoint(0.7,1,1.2),"\\int {d^2}a/dxdy dx");
+        return 0;
+    }
+
+ [image src="../png/sample6.png" ]
+
+Example of data differentiation and integration
+
+   Data smoothing (function `Smooth()') is more interesting and
+important. This function has 2 main arguments: type of smoothing and
+its direction. Now 4 methods are supported: `SMOOTH_NONE' does nothing
+for delta=0 or approaches data to zero with the step delta,
+`SMOOTH_LINE_3' linear averaging by 3 points, `SMOOTH_LINE_5' linear
+averaging by 5 points, `SMOOTH_QUAD_5' quadratic averaging by 5 points.
+Let me demonstrate it for 1d case:
+    int sample(mglGraph *gr, void *)
+    {
+        mglData y0(30),y1,y2,y3;
+        y0.Modify("0.4*sin(2*pi*x)+0.3*cos(3*pi*x)-0.4*sin(4*pi*x)+0.2*rnd");
+
+        y1=y0;  y1.Smooth(SMOOTH_LINE_3);
+        y2=y0;  y2.Smooth(SMOOTH_LINE_5);
+        y3=y0;  y3.Smooth(SMOOTH_QUAD_5);
+
+        gr->Plot(y0,"k");   gr->AddLegend("NONE","k");
+        gr->Plot(y1,"r");   gr->AddLegend("LINE_3","r");
+        gr->Plot(y2,"g");   gr->AddLegend("LINE_5","g");
+        gr->Plot(y3,"b");   gr->AddLegend("QUAD_5","b");
+        gr->Legend();       gr->Box();
+        return 0;
+    }
+
+ [image src="../png/sample7.png" ]
+
+Example of data smoothing
+
+   Finally one can create new data arrays on base of the existing one:
+extract slice, row or column of data (`SubData()'), summarize along
+some of direction(s) (`Sum()'), find distribution of data elements
+(`Hist()'). Note, that all these functions are not thread-safe because
+they use static internal variable for output array. In particular, the
+using of several of them in arguments of the same function will lead to
+unpredictable result.
+
+
+File: mathgl_en.info,  Node: Data plotting,  Next: C/Fortran interface,  Prev: Data handling,  Up: Examples
+
+2.4 Data plotting
+=================
+
+Let me now show how to plot the data. MathGL generally has 2 types of
+plotting functions. Simple variant requires a single data array for
+plotting, other data (coordinates) are considered uniformly distributed
+in interval MIN*MAX. Second variant requires data arrays for all
+coordinates. It allows one to plot rather complex multivalent curves
+and surfaces (in case of parametric dependencies). Argument setting to
+default values allows one to plot data in standard form. Manual
+arguments setting gives possibility for fine tuning of colors,
+positions and view of graphics. Note, that the call of drawing function
+adds something to picture but does not clear the previous plots (as it
+does in Matlab). Another difference from Matlab is that all setup (like
+transparency, lightning, axis borders and so on) must be specified
+*before* plotting functions.
+
+* Menu:
+
+* Plots for 1D data::
+* Plots for 2D data::
+* Plots for 3D data::
+* Surface transparency::
+
+
+File: mathgl_en.info,  Node: Plots for 1D data,  Next: Plots for 2D data,  Up: Data plotting
+
+2.4.1 Plots for 1D data
+-----------------------
+
+Term "1D data" means that data depend on single index (parameter) like
+curve in parametric form {x(i),y(i),z(i)}, i=1...n. There are 5
+generally different types of data representations: simple line plot,
+line plot with filling under it, stairs plot, bar plot and vertical
+lines (*note 1D plotting::). Each type of plotting has similar
+interface. There are 3D version and two 2D versions. One of last
+requires single array. The parameters of line and marks (*note Line
+styles::) are specified by the string argument. If the string parameter
+is `NULL' then solid line with color from palette is used (*note
+Palette and colors::).
+
+   Below I shall show the features of 1D plotting on base of `Plot()'
+function (*note Plot::). Let us start from sinus plot:
+    int sample(mglGraph *gr, void *)
+    {
+        mglData y0(50); 	y0.Modify("sin(pi*(2*x-1))");
+        gr->SubPlot(2,2,0);
+        gr->Plot(y0);   	gr->Box();
+ Style of line is not specified in `Plot()' function. So MathGL uses
+the solid line with first color of palette (this is blue). Next subplot
+shows array Y1 with 2 rows:
+        gr->SubPlot(2,2,1);
+        mglData y1(50,2);
+        y1.Modify("sin(pi*2*x-pi)");
+        y1.Modify("cos(pi*2*x-pi)/2",1);
+        gr->Plot(y1);   	gr->Box();
+ As previously I did not specify the style of lines. As a result,
+MathGL again uses solid line with next colors in palette (there are
+green and red). Now let us plot a circle on the same subplot. The
+circle is parametric curve x=cos(\pi t), y=sin(\pi t). I will set the
+color of the circle (dark yellow, `Y') and put marks `+' at point
+position:
+        mglData x(50);  	x.Modify("cos(pi*2*x-pi)");
+        gr->Plot(x,y0,"Y+");
+ Note that solid line is used because I did not specify the type of
+line. The same picture can be achieved by `Plot2()' function. Let us
+draw ellipse by orange dash line:
+        gr->Plot2(y1,"q|");
+
+   Drawing in 3D space is mostly the same. Let us draw spiral with
+default line style. Now its color is 4-th color from palette (this is
+cyan):
+        gr->SubPlot(2,2,2);	gr->Rotate(60,40);
+        mglData z(50);  	z.Modify("2*x-1");
+        gr->Plot(x,y0,z);	gr->Box();
+ Function `Plot3()' does 3D curve plot but for single array. Use it to
+put circle marks on the previous plot:
+        mglData y2(10,3);	y2.Modify("cos(pi*(2*x-1+y))");
+        y2.Modify("2*x-1",2);
+        gr->Plot3(y2,"bo ");
+ Note that line style is empty ` ' here. Usage of other 1D plotting
+functions looks similar:
+        gr->SubPlot(2,2,3);	gr->Rotate(60,40);
+        gr->Bars(x,y0,z,"r");	gr->Box();
+        return 0;
+    }
+
+ [image src="../png/sample8.png" ]
+
+Example of 1D data plot
+
+
+File: mathgl_en.info,  Node: Plots for 2D data,  Next: Plots for 3D data,  Prev: Plots for 1D data,  Up: Data plotting
+
+2.4.2 Plots for 2D data
+-----------------------
+
+Surfaces `Surf()' and other 2D plots (*note 2D plotting::) are drown
+the same simpler as 1D one. The difference is that the string parameter
+specifies not by line style but by the color scheme of the plot (*note
+Color scheme::). Here I draw attention on 4 most interesting color
+schemes. There is gray scheme where color is changed from black to
+white (string `kw') or from white to black (string `wk'). Another
+scheme is useful for accentuation of negative (by blue color) and
+positive (by red color) regions on plot (string `"BbwrR"'). Last one is
+the popular "jet" scheme (string `"BbcyrR"').
+
+   Now I shall show the example of a surface drawing. At first let us
+switch lightning on
+    int sample(mglGraph *gr, void *)
+    {
+        gr->Light(true);	gr->Light(0,mglPoint(0,0,1));
+ and draw the surface, considering coordinates x,y to be uniformly
+distributed in interval MIN*MAX
+        mglData a0(50,40);
+        a0.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+        gr->SubPlot(2,2,0);	gr->Rotate(60,40);
+        gr->Surf(a0);		gr->Box();
+ Color scheme was not specified. So previous color scheme is used. In
+this case it is default color scheme ("jet") for the first plot. Next
+example is a sphere. The sphere is parametrically specified surface:
+        mglData x(50,40),y(50,40),z(50,40);
+        x.Modify("0.8*sin(2*pi*x)*sin(pi*y)");
+        y.Modify("0.8*cos(2*pi*x)*sin(pi*y)");
+        z.Modify("0.8*cos(pi*y)");
+        gr->SubPlot(2,2,1);	gr->Rotate(60,40);
+        gr->Surf(x,y,z,"BbwrR");gr->Box();
+ I set color scheme to `"BbwrR"' that corresponds to red top and blue
+bottom of the sphere.
+
+   Surfaces will be plotted for each of slice of the data if NZ>1. Next
+example draws surfaces for data arrays with NZ=3:
+        mglData a1(50,40,3);
+        a1.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+        a1.Modify("0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))",1);
+        a1.Modify("0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))",2);
+        gr->SubPlot(2,2,2);	gr->Rotate(60,40);
+        gr->Alpha(true);
+        gr->Surf(a1);		gr->Box();
+ Note, that it may entail a confusion. However, if one will use density
+plot then the picture will look better:
+        gr->SubPlot(2,2,3);	gr->Rotate(60,40);
+        gr->Dens(a1);		gr->Box();
+        return 0;
+    }
+ Note, that the previous color scheme is used in last plots because
+there are no direct specification of the one.
+
+ [image src="../png/sample9.png" ]
+
+Example of surface plot for 2D data
+
+   Drawing of other 2D plots is analogous. The only peculiarity is the
+usage of flag `#'. By default this flag switches on the drawing of a
+grid on plot (`Grid()' or `Mesh()' for plots in plain or in volume).
+However, for isosurfaces (including surfaces of rotation `Axial()')
+this flag switches the  face drawing off. Figure becomes wired. The
+following code gives example of flag `#' using (compare with normal
+function drawing as in its description):
+    int sample(mglGraph *gr, void *)
+    {
+        gr->Alpha(true);	gr->Light(true);	gr->Light(0,mglPoint(0,0,1));
+        mglData a(30,20);
+        a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+
+        gr->SubPlot(2,2,0);	gr->Rotate(40,60);
+        gr->Surf(a,"BbcyrR#");		gr->Box();
+        gr->SubPlot(2,2,1);	gr->Rotate(40,60);
+        gr->Dens(a,"BbcyrR#");		gr->Box();
+        gr->SubPlot(2,2,2);	gr->Rotate(40,60);
+        gr->Cont(a,"BbcyrR#");		gr->Box();
+        gr->SubPlot(2,2,3);	gr->Rotate(40,60);
+        gr->Axial(a,"BbcyrR#");		gr->Box();
+        return 0;
+    }
+
+ [image src="../png/samplea.png" ]
+
+Example of 2D data plot with color scheme contained `#' symbol
+
+
+File: mathgl_en.info,  Node: Plots for 3D data,  Next: Surface transparency,  Prev: Plots for 2D data,  Up: Data plotting
+
+2.4.3 Plots for 3D data
+-----------------------
+
+Drawing procedures for 3D plot looks similarly to 1D and 2D plots
+described above. There are 3 general types of 3D plots (*note 3D
+plotting::): (i) plots on slices or on projections, (ii) isosurfaces,
+(iii) cloud-like plots. Plots on slice are clear enough - one specifies
+a slice (as its index or as coordinate value) and MathGL draws contour
+lines or density plot on slice plane. Isosurface gives more
+information. Isosurface is 3D analogue of the contour line `Cont()'. It
+shows the region where data array values exceed specified isosurface
+level. Plot becomes more informative if one adds transparency,
+lightning or sets color scheme depending on coordinates. Generalization
+of isosurface is the cloud-like plot. For this plot the darker color
+and less transparent regions correspond to higher values of data.
+Contrary, the regions with low values are transparent. For plotting of
+the phase of fields (or beams or pulses) one can use isosurface which
+transparency depends on the other data array (see function `Surf3A()').
+As example of 3D data plots let us draw the Gaussian beam diffraction
+in space. Beam propagates along X axis:
+    int sample(mglGraph *gr, void *)
+    {
+        gr->Alpha(true);    gr->Light(true);
+        gr->Light(0,mglPoint(0,0,1));
+        mglData a(30,30,30),b(30,30,30);
+        a.Modify("exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))");
+        b.Modify("16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)");
+        gr->CAxis(0,1);
+
+        gr->SubPlot(2,2,0); gr->Rotate(40,60);
+        gr->Surf3(a,"wgk"); gr->Box();
+        gr->SubPlot(2,2,1); gr->Rotate(40,60);
+        gr->DensA(a);       gr->Box();  gr->Axis();
+        gr->SubPlot(2,2,2); gr->Rotate(40,60);
+        gr->CloudQ(a);      gr->Box();
+        gr->SubPlot(2,2,3); gr->Rotate(40,60);
+        gr->Surf3A(b,a,"q");gr->Box();
+        return 0;
+    }
+
+ [image src="../png/sampleb.png" ]
+
+Example of Gaussian beam diffraction (3D data)
+
+
+File: mathgl_en.info,  Node: Surface transparency,  Prev: Plots for 3D data,  Up: Data plotting
+
+2.4.4 Surface transparency
+--------------------------
+
+MathGL library has advanced features for setting and handling the
+surface transparency. The simplest way to add transparency is the using
+of function `Alpha()'. As a result, all further surfaces (and
+isosurfaces, density plots and so on) become transparent. However,
+their  look can be additionally improved.
+
+   First, the selected surface will be non-transparent if one sets the
+flag `Transparent' before the surface drawing and sets it off after the
+drawing.
+
+   Second, the value of transparency can be different from surface to
+surface. To do it just change the value of `AlphaDef' before the
+drawing of the selected surface. If its value is close to 0 then the
+surface becomes more and more transparent. Contrary, if its value is
+close to 1 then the surface becomes practically non-transparent. This
+is some analogue of `Transparent=true'.
+
+   Third feature is the changing of the way how the light goes through
+overlapped surfaces. The variable `TranspType' defines it. By default
+the usual transparency is used (`TranspType=0') - surfaces below is
+less visible than the upper ones. A "glass-like" transparency
+(`TranspType=1') has a different look when the surface just decreases
+the background light (the surfaces are commutable in this case).
+
+   A "neon-like" transparency (`TranspType=2') has more interesting
+look. In this case a surface is the light source (like a lamp on the
+dark background) and just adds some intensity to the color. At this,
+the library sets automatically the black color for the background and
+changes the default line color to white.
+
+   As example I shall show the variant of plot from *note Plots for 2D
+data:: (grid drawing is disabled) for different types of transparency.
+ [image src="../png/type0.png" ]
+
+Example of `TranspType=0'.
+
+ [image src="../png/type1.png" ]
+
+Example of `TranspType=1'.
+
+ [image src="../png/type2.png" ]
+
+Example of `TranspType=2'.
+
+
+File: mathgl_en.info,  Node: C/Fortran interface,  Next: MathGL and PyQt,  Prev: Data plotting,  Up: Examples
+
+2.5 C/Fortran interface
+=======================
+
+The usage of pure C or Fortran or any similar interfaces (*note C
+interface::) is practically identical to classes usage. But there are
+some differences. C functions must have argument HMGL (for graphics)
+and/or HMDT (for data arrays) which specifies the object for drawing or
+manipulating (changing). Fortran users may regard these variables as
+integer. So, firstly the user has to create this object by function
+mgl_create_*() and has to delete it after the using by function
+mgl_delete_*().
+
+   Also, all arguments of C function have to be defined. So there are
+several functions with practically identical names doing practically
+the same. But some of them have simplified interface for the quick
+plotting and some of them have access to all plotting parameters for
+manual tunning.
+
+   As an example of C function usage let me draw the plot from *note
+Plots for 2D data::. The C code which does it is shown below:
+    #include <mgl/mgl_c.h>
+    int main()
+    {
+        HMGL gr = mgl_create_graph_zb(600, 400);
+        mgl_set_alpha(gr, true);
+        mgl_set_light(gr, true);
+        HMDT a = mgl_create_data_size(30,20,1);
+        mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+
+        mgl_subplot(gr, 2,2,0);
+        mgl_rotate(gr, 40,60,0);
+        mgl_surf(gr,a,"BbcyrR#");
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,1);
+        mgl_rotate(gr, 40,60,0);
+        mgl_dens(gr,a,"BbcyrR#",NAN);
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,2);
+        mgl_rotate(gr, 40,60,0);
+        mgl_cont(gr,a,"BbcyrR#",7,NAN);
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,3);
+        mgl_rotate(gr, 40,60,0);
+        mgl_axial(gr,a,"BbcyrR#",3);
+        mgl_box(gr, true);
+
+        /* don't forgot to save graphics */
+        mgl_write_png(gr,"sample.png",0);
+        return 0;
+    }
+
+   Practically the same simple to create a window. For example let
+rewrite the code from for window creation (*note Using FLTK/GLUT
+window::):
+    int sample(HMGL gr, void *)
+    {
+        mgl_rotate(gr,60,40,0);
+        mgl_box(gr,1);
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mgl_create_graph_fltk(sample, "MathGL examples", NULL);
+        mgl_fltk_run();
+        return 0;
+    }
+
+   The Fortran code have some peculiarities. Exactly it not allow one
+to send arbitrary parameter (which was `NULL' in previous example) to
+function. This is limitation of Fortran language. So, the corresponding
+code will be *NOT TESTED NOW!!!*:
+    program TEST
+    integer x,f,func
+        call mgl_create_graph_fltk(sample, 'MathGL examples');
+        call mgl_fltk_run();
+    end program TEST
+
+    integer function sample(gr)
+    integer*8 gr
+        call mgl_rotate(gr,60,40,0);
+        call mgl_box(gr,1);
+        sample=0
+    return
+    end
+
+
+File: mathgl_en.info,  Node: MathGL and PyQt,  Next: Hints,  Prev: C/Fortran interface,  Up: Examples
+
+2.6 MathGL and PyQt
+===================
+
+Generally SWIG based classes (including the Python one) are the same as
+C++ classes. However, there are few tips for using MathGL with PyQt.
+Below I place a very simple python code which demonstrate how MathGL
+can be used with PyQt. This code is mostly written by Prof. Dr. Heino
+Falcke. You can just copy it to a file `mgl-pyqt-test.py' and execute
+it from python shell by command `execfile("mgl-pyqt-test.py")'
+
+from PyQt4 import QtGui,QtCore
+from mathgl import *
+import sys
+app = QtGui.QApplication(sys.argv)
+qpointf=QtCore.QPointF()
+
+class hfQtPlot(QtGui.QWidget):
+    def __init__(self, parent=None):
+        QtGui.QWidget.__init__(self, parent)
+        self.img=(QtGui.QImage())
+    def setgraph(self,gr):
+        self.buffer='\t'
+        self.buffer=self.buffer.expandtabs(4*gr.GetWidth()*gr.GetHeight())
+        gr.GetBGRN(self.buffer,len(self.buffer))
+        self.img=QtGui.QImage(self.buffer, gr.GetWidth(),gr.GetHeight(),QtGui.QImage.Format_ARGB32)
+        self.update()
+    def paintEvent(self, event):
+        paint = QtGui.QPainter()
+        paint.begin(self)
+        paint.drawImage(qpointf,self.img)
+        paint.end()
+
+BackgroundColor=[1.0,1.0,1.0]
+size=100
+gr=mglGraph()
+y=mglData(size)
+#y.Modify("((0.7*cos(2*pi*(x+.2)*500)+0.3)*(rnd*0.5+0.5)+362.135+10000.)")
+y.Modify("(cos(2*pi*x*10)+1.1)*1000.*rnd-501")
+x=mglData(size)
+x.Modify("x^2");
+
+def plotpanel(gr,x,y,n):
+    gr.SubPlot(2,2,n)
+    gr.SetXRange(x)
+    gr.SetYRange(y)
+    gr.AdjustTicks()
+    gr.Axis()
+    gr.Box()
+    gr.Label("x","x-Axis",1)
+    gr.Label("y","y-Axis",1)
+    gr.ClearLegend()
+    gr.AddLegend("Legend: "+str(n),"k")
+    gr.Legend()
+    gr.Plot(x,y)
+
+
+gr.Clf(BackgroundColor[0],BackgroundColor[1],BackgroundColor[2])
+gr.SetPlotFactor(1.5)
+plotpanel(gr,x,y,0)
+y.Modify("(cos(2*pi*x*10)+1.1)*1000.*rnd-501")
+plotpanel(gr,x,y,1)
+y.Modify("(cos(2*pi*x*10)+1.1)*1000.*rnd-501")
+plotpanel(gr,x,y,2)
+y.Modify("(cos(2*pi*x*10)+1.1)*1000.*rnd-501")
+plotpanel(gr,x,y,3)
+
+gr.WritePNG("test.png","Test Plot")
+
+qw = hfQtPlot()
+qw.show()
+qw.setgraph(gr)
+qw.raise_()
+
+
+File: mathgl_en.info,  Node: Hints,  Prev: MathGL and PyQt,  Up: Examples
+
+2.7 Hints
+=========
+
+In this section I have included some small hints and advices for the
+improving of the quality of plots and for the demonstration of some
+non-trivial features of MathGL library. In contrast to previous
+examples I showed mostly the idea but not the whole drawing function.
+More examples with the source code can be find at
+`http://mathgl.sf.net/' or in section *note Samples::.
+
+* Menu:
+
+* ``Compound'' graphics::
+* Two axes in one plot::
+* Titles for the plot::
+* Changing of the color range::
+* Management of a point cutting::
+* Vector field visualization::
+* Several light sources::
+* CutMin and CutMax features::
+* Mapping visualization::
+* Log-scaled plot::
+* ``Templates''::
+* Nonlinear fitting hints::
+* PDE solving hints::
+* MGL parser using::
+* Stereo image::
+
+
+File: mathgl_en.info,  Node: ``Compound'' graphics,  Next: Two axes in one plot,  Up: Hints
+
+2.7.1 "Compound" graphics
+-------------------------
+
+As I noted above, MathGL functions (except the special one, like Clf())
+do  not erase the previous plotting but just add the new one. It allows
+one to draw "compound" plots easily. For example, popular Matlab
+command `surfc' can be emulated in MathGL by 2 calls:
+    Surf(a);
+    Cont(a, 0, 7, -1);     // draw contours at z = -1
+ Here A is 2-dimensional data for the plotting, `-1' is the value of
+z-coordinate at which the contour should be plotted (at the bottom in
+this example). Analogously, one can draw density plot instead of
+contour lines and so on.
+
+   Another nice plot is contour lines plotted directly on the surface:
+    Light(true);       // switch on light for the surface
+    Surf(a, "BbcyrR"); // select 'jet' colormap for the surface
+    Cont(a, "y");      // and yellow color for contours
+ The possible difficulties arise in black&white case, when the color of
+the surface can be close to the color of a contour line. In that case I
+may suggest the following code:
+    Light(true);       // switch on light for the surface
+    Surf(a, "kw");     // select 'gray' colormap for the surface
+    CAxis(-1,0);       // first draw for darker surface colors
+    Cont(a, "w");      // white contours
+    CAxis(0,1);        // now draw for brighter surface colors
+    Cont(a, "k");      // black contours
+    CAxis(-1,1);       // return color range to original state
+ The idea is to divide the color range on 2 parts (dark and bright) and
+to select the contrasting color for contour lines for each of part.
+
+   Similarly, one can plot flow thread over density plot of vector
+field amplitude (this is another amusing plot from Matlab) and so on.
+The list of compound graphics can be prolonged but I hope that the
+general idea is clear.
+
+
+File: mathgl_en.info,  Node: Two axes in one plot,  Next: Titles for the plot,  Prev: ``Compound'' graphics,  Up: Hints
+
+2.7.2 Two axes in one plot
+--------------------------
+
+Developing the previous hint one can make a plot with 2 or more axes.
+The idea is that the change of settings does not influence on the
+already drawn graphics. So, for 2-axes plot let us set the first axis
+and draw everything concerning it. Then let us setup the second axis
+and draw things for the second axis. The corresponding code is (*note
+2-axes sample::):
+    // set up first axis
+    Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,-1,-1));
+    Axis();            // draw it
+    Plot(y1,"b");      // draw something in first axis
+    // set up second axis
+    Axis(mglPoint(0,0,0),mglPoint(1,1,1),mglPoint(1,1,1));
+    Axis();            // draw it
+    Stem(y2,"r");      // draw something in second axis
+ Note, that the first and the second axes look better if being placed
+in different corners. In the code presented above the first axis is
+placed in the left-bottom corner, and the second one is placed in the
+right-top corner.
+
+
+File: mathgl_en.info,  Node: Titles for the plot,  Next: Changing of the color range,  Prev: Two axes in one plot,  Up: Hints
+
+2.7.3 Titles for the plot
+-------------------------
+
+The printing of nice titles for the plot is not so trivial task in
+general case. The problem is that the rotation and aspect change lead
+to different looks for titles of different subplots. So, the resulting
+look is not so good as it could be. The solution is simple - to print
+titles exactly after `SubPlot'() call and before any rotation, aspect
+change and so on! Analogously, the title for the whole picture looks
+better if it is printed first (before any `SubPlot()' calls).
+Alternatively you can use function `Title()' for plotting title for the
+picture at any time.
+
+
+File: mathgl_en.info,  Node: Changing of the color range,  Next: Management of a point cutting,  Prev: Titles for the plot,  Up: Hints
+
+2.7.4 Changing of the color range
+---------------------------------
+
+By default (for the user comfort), the color range is set equal to
+z-range of the plot. However, there are different ranges. So, one can
+obtain amusing plot by the change of color range manually. For example,
+there are plots with one-color bottom (or top) or practically bi-color
+picture and so on.
+
+   For example, compare 2 surfaces:
+    SubPlot(2,1,0)
+    Surf(a);           // usual coloring range
+    SubPlot(2,1,1)
+    CAxis(0,1);
+    Surf(a);           // bottom of the surface have one-colour filling
+
+
+File: mathgl_en.info,  Node: Management of a point cutting,  Next: Vector field visualization,  Prev: Changing of the color range,  Up: Hints
+
+2.7.5 Management of a point cutting
+-----------------------------------
+
+Sometimes an experimental or numerical surface has outstanding points.
+Visualization of such surface will lead to the hole(s) in place of such
+points. The standard method of "fighting"  - to change data values - is
+not always good and is not so convenient. MathGL library has another
+method - to set variable `Cut=false'. As a consequence, all outstanding
+points will be projected on the bounding box.
+
+   Such method is good not only for outstanding points but also for the
+case when one need to plane the bottom or the top of the plot. Exactly
+such case is demonstrated in the code:
+        mglData a(20,30);  // create some data
+        a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+        // set lower border above the data minimal value
+        Axis(mglPoint(-1,-1,0),mglPoint(1,1,1));
+        Cut = false;       // set off cutting flag
+`       Surf(a);           // and draw the surface
+ It is an interesting result, is not it?
+
+
+File: mathgl_en.info,  Node: Vector field visualization,  Next: Several light sources,  Prev: Management of a point cutting,  Up: Hints
+
+2.7.6 Vector field visualization
+--------------------------------
+
+Vector field visualization (especially in 3d case `Vect3' or `VectC')
+may look tangly - there are too many overlapping lines. I may suggest 2
+ways to solve this problem. The first one is to change `MeshNum' for
+decreasing the number of hachures. The second way is to use the flow
+thread chart `Flow'. Unfortunately, I don't know any other methods to
+visualize 3d vector field. If you know any, e-mail me and I shall add
+it to MatGL.
+
+
+File: mathgl_en.info,  Node: Several light sources,  Next: CutMin and CutMax features,  Prev: Vector field visualization,  Up: Hints
+
+2.7.7 Several light sources
+---------------------------
+
+In contrast to the most of other programs, MathGL supports several (up
+to 10) light sources. Moreover, the color each of them can be
+different: white (this is usual), yellow, red, cyan, green and so on.
+The use of several light sources may be interesting for the
+highlighting of some peculiarities of the plot or just to make an
+amusing picture. Note, each light source can be switched on/off
+individually (*note Several light sample::).
+
+
+File: mathgl_en.info,  Node: CutMin and CutMax features,  Next: Mapping visualization,  Prev: Several light sources,  Up: Hints
+
+2.7.8 CutMin and CutMax features
+--------------------------------
+
+MathGL library has a feature for cutting of points in some region
+CUTMIN*CUTMAX. Such an excision can be used to improve the look of the
+graphics. Moreover, this cutting may help to show an internal structure
+of an object (like `isocaps' plot in Matlab). For example, let us use
+the standard 3D data array and show its interior (*note CutMinMax
+sample::).
+
+    mglData  c(61,51,40);      // create the data
+    mglData v(10);	v.Fill(-0.5,1);
+    c.Modify("(-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1))");
+    gr->CutMin = mglPoint(0,-1,-1);     gr->CutMax = mglPoint(1,0,1.1);
+    gr->Surf3(-0.5,c,"BbcyrR");
+    gr->ContF3(v,c,'x',-1,"BbcyrR");    gr->ContF3(v,c,'y',-1,"BbcyrR");
+    gr->ContF3(v,c,'z',0,"BbcyrR");     gr->ContF3(v,c,'z',39,"BbcyrR");
+
+   One can also exclude points from arbitrary area in space. This area
+defined by textual formula `CutOff()' (*note Cutting::). The algorithm
+is the same as shown for "rectangular cutting".
+
+
+File: mathgl_en.info,  Node: Mapping visualization,  Next: Log-scaled plot,  Prev: CutMin and CutMax features,  Up: Hints
+
+2.7.9 Mapping visualization
+---------------------------
+
+Sometime ago I worked with mapping and have a question about its
+visualization. Let me remember you that mapping is some transformation
+rule for one set of number to another one. The 1d mapping is just an
+ordinary function - it takes a number and transforms it to another one.
+The 2d mapping (which I used) is a pair of functions which take 2
+numbers and transform them to another 2 ones. Except general plots
+(like `SurfC', `SurfA') there is a special plot - Arnold diagram. It
+shows the area which is the result of mapping of some initial area
+(usually square).
+
+   I tried to make such plot in `Map'. It shows the set of points or
+set of faces, which final position is the result of mapping. At this,
+the color gives information about their initial position and the height
+describes Jacobian value of the transformation. Unfortunately, it looks
+good only for the simplest mapping but for the  real multivalent
+quasi-chaotic mapping it produces a confusion. So, use it if you like
+:).
+
+
+File: mathgl_en.info,  Node: Log-scaled plot,  Next: ``Templates'',  Prev: Mapping visualization,  Up: Hints
+
+2.7.10 Log-scaled plot
+----------------------
+
+Log-scaled plot can be drawn by 2 steps. First, one should change the
+scale of axis by call `SetFunc("lg(x)", "lg(y)");' (in this example, x-
+and y-axis will be log-scaled). Second, one should set logarithmic
+scale for axis ticks by changing variables: `SetTicks('x',0);
+SetTicks('y',0);'. Finally, one should check (or change) the axis
+ranges and origin so that their values to be positive. For example of
+log-log plot *note Log-log sample::.
+
+
+File: mathgl_en.info,  Node: ``Templates'',  Next: Nonlinear fitting hints,  Prev: Log-scaled plot,  Up: Hints
+
+2.7.11 "Templates"
+------------------
+
+As I have noted before, the change of settings will influence only for
+the further plotting commands. This allows one to create template
+function which will contain settings and primitive drawing for often
+used plots. Correspondingly one may call this template-function for
+drawing simplification.
+
+   For example, let one has a set of points (experimental or numerical)
+and wants to compare it with theoretical law (for example, with
+exponent law \exp(-x/2), x \in [0, 20]). The template-function for this
+task is:
+    void template(mglGraph *gr)
+    {
+        mglData  law(100);      // create the law
+        law.Modify("exp(-10*x)");
+        gr->Axis(mglPoint(0,0.0001), mglPoint(20,1), mglPoint(0,0.0001));
+        gr->SetFunc(0,"lg(y)",0);   gr->dy = 0;
+        gr->Plot(law,"r2");
+        gr->Text(mglPoint(10,0.2),"Theoretical law: e^x","rL");
+        gr->Label('x',"x val."); gr->Label('y',"y val.");
+        gr->Axis(); gr->Grid("xy","g;"); gr->Box();
+    }
+ At this, one will only write a few lines for data drawing:
+    template(gr);     // apply settings and default drawing from template
+    mglData dat("fname.dat"); // load the data
+    // and draw it (suppose that data file have 2 columns)
+    gr->Plot(dat.SubData(0),dat.SubData(1),"bx ");
+ A template-function can also contain settings for font, transparency,
+lightning, color scheme and so on.
+
+
+File: mathgl_en.info,  Node: Nonlinear fitting hints,  Next: PDE solving hints,  Prev: ``Templates'',  Up: Hints
+
+2.7.12 Nonlinear fitting hints
+------------------------------
+
+Nonlinear fitting is rather simple. All that you need is the data to
+fit, the approximation formula and the list of coefficients to fit
+(better with its initial guess values). Let me demonstrate it on the
+following simple example (*note Fitting sample::). First, let us use
+sin function with some random noise:
+    mglData rnd(100), idl(50); //data to be fitted and ideal data
+    rnd.Modify("0.4*rnd+0.1+sin(4*pi*x)");
+    idl.Modify("0.3+sin(4*pi*x)");
+ and plot it to see that data we will fit
+    gr->Axis(mglPoint(-1,-2), mglPoint(1,2));
+    gr->Plot(rnd, ". "); gr->Plot(idl, "b");
+    gr->Box();
+    gr->Text(mglPoint(0,2.2), "initial: y = 0.3+sin(2\pi x)", "C:b", -1);
+
+   The next step is the fitting itself. For that let me specify an
+initial values INI for coefficients `abc' and do the fitting for
+approximation formula `a+b*sin(c*x)'
+    mglData res;   // The data for found formula
+    float ini[3] = {1, 1, 3};
+    gr->Fit(res, rnd, "a+b*sin(c*x)", "abc", ini);
+ Now display it
+    gr->Plot(res, "r");
+    gr->Text(mglPoint(-1,-1.3), "fitted:", "L:r", -1);
+    gr->PutsFit(mglPoint(0,-1.8), "y = ", "C:r", -1);
+
+   NOTE! the fitting results may have strong dependence on initial
+values for coefficients due to algorithm features. The problem is that
+in general case there are several local "optimums" for coefficients and
+the program returns only first found one! There are no guaranties that
+it will be the best. Try for example to set `ini[3] = {0, 0, 0}' in the
+code above.
+
+
+File: mathgl_en.info,  Node: PDE solving hints,  Next: MGL parser using,  Prev: Nonlinear fitting hints,  Up: Hints
+
+2.7.13 PDE solving hints
+------------------------
+
+Solving of Partial Differential Equations (PDE, including beam tracing)
+and ray tracing (or finding particle trajectory) are more or less
+common task. So, MathGL have several functions for that. There are
+`mglRay()' for ray tracing, `mglPDE()' for PDE solving, `mglQO2d()' for
+beam tracing in 2D case (*note Global functions::). Note, that these
+functions take "Hamiltonian" or equations as string values. And I don't
+plan now to allow one to use user-defined functions. There are 2
+reasons: the complexity of corresponding interface; and the basic
+nature of used methods which are good for samples but may not good for
+serious scientific calculations.
+
+   The ray tracing can be done by `mglRay()' function. Really ray
+tracing equation is Hamiltonian equation for 3D space. So, the function
+can be also used for finding a particle trajectory (i.e. solve
+Hamiltonian ODE) for 1D, 2D or 3D cases. The function have a set of
+arguments. First of all, it is Hamiltonian which defined the media (or
+the equation) you are planning to use. The Hamiltonian is defined by
+string which may depend on coordinates `x', `y', `z', time `t' (for
+particle dynamics) and momentums `p'=p_x, `q'=p_y, `v'=p_z. Next, you
+have to define the initial conditions for coordinates and momentums at
+`t'=0 and set the integrations step (default is 0.1) and its duration
+(default is 10). The Runge-Kutta method of 4-th order is used for
+integration.
+    mglData r,a,re(128),im(128);
+    r = mglRay("p^2+q^2-x-1", mglPoint(-0.7, -1), mglPoint(0, 0.5));
+    gr->Plot(r.SubData(0), r.SubData(1));
+ This example calculate the reflection from linear layer (media with
+Hamiltonian `p^2+q^2-x-1'=p_x^2+p_y^2-x-1). This is parabolic curve.
+The resulting array have 7 columns which contain data for
+{x,y,z,p,q,v,t}.
+
+   The solution of PDE is a bit more complicated. As previous you have
+to specify the equation as pseudo-differential operator \hat H(x,
+\nabla) which is called sometime as "Hamiltonian" (for example, in beam
+tracing). As previously, it is defined by string which may depend on
+coordinates `x', `y', `z' (but not time!), momentums `p'=(d/dx)/i k_0,
+`q'=(d/dy)/i k_0 and field amplitude `u'=|u|. The evolutionary
+coordinate is `z' in all cases. So that, the equation look like du/dz =
+ik_0 H(x,y,\hat p, \hat q, |u|)[u]. Dependence on field amplitude
+`u'=|u| allows one to solve nonlinear problems too. For example, for
+nonlinear Shrodinger equation you may set `ham="p^2 + q^2 - u^2"'. Also
+you may specify imaginary part for wave absorption, like `ham = "p^2 +
+i*x*(x>0)"', but only if dependence on variable `i' is linear (i.e. H =
+Hre+i*Him).
+
+   Next step is specifing the initial conditions at `z'=`Min.z'. The
+function need 2 arrays for real and for imaginary part. Note, that
+coordinates x,y,z are supposed to be in specified range [Min, Max]. So,
+the data arrays should have corresponding scales. Finally, you may set
+the integration step and paramter k0=k_0. Also keep in mind, that
+internally the 2 times large box is used (for suppressing numerical
+reflection from boundaries) and the equation should well defined even
+in this extended range.
+
+   Final comment is concerning the possible form of pseudo-differential
+operator H. At this moment, simplified form of operator H is supported
+- all "mixed" terms (like `x*p'->x*d/dx) are excluded. For example, in
+2D case this operator is effectively H = f(p,z) + g(x,z,u). However
+commutable combinations (like `x*q'->x*d/dy) are allowed for 3D case.
+
+   So, for example let solve the equation for beam deflected from
+linear layer and absorbed later. The operator will have the form
+`"p^2+q^2-x-1+i*0.5*(z+x)*(z>-x)"' that correspond to equation ik_0
+\partial_z u + \Delta u + x \cdot u + i (x+z)/2 \cdot u = 0. This is
+typical equation for Electron Cyclotron (EC) absorption in magnetized
+plasmas. For initial conditions let me select the beam with plane phase
+front exp(-48*(x+0.7)^2). The corresponding code looks like this (*note
+PDE sample::):
+    mglData a,re(128),im(128);
+    re.Fill("exp(-48*(x+0.7)^2)", gr->Min, gr->Max);
+    a = mglPDE("p^2+q^2-x-1+i*0.5*(z+x)*(z>-x)", re, im,
+                gr->Min, gr->Max, 0.01, 30);
+    a.Transpose("yxz");
+    gr->CAxis(0, 1);
+    gr->Dens(a,"wyrRk");
+
+   The last example is example of beam tracing. Beam tracing equation
+is special kind of PDE equation written in coordinates accompanied to a
+ray. Generally this is the same parameters and limitation as for PDE
+solving but the coordinates are defined by the ray and by parameter of
+grid width W in direction transverse the ray. So, you don't need to
+specify the range of coordinates. *BUT* there is limitation. The
+accompanied coordinates are well defined only for smooth enough rays,
+i.e. then the ray curvature K (which is defined as 1/K^2 = (|\ddot r|^2
+|\dot r|^2 - (\ddot r, \dot r)^2)/|\dot r|^6) is much large then the
+grid width: K>>w. So, you may receive incorrect results if this
+condition will be broken.
+
+   You may use following code for obtaining the same solution as in
+previous example:
+    mglData r, xx, yy, a, im(128), re(128);
+    const char *ham = "p^2+q^2-x-1+i*0.5*(y+x)*(y>-x)";
+    r = mglRay(ham, mglPoint(-0.7, -1), mglPoint(0, 0.5), 0.02, 2);
+    // now start beam tracing
+    re.Fill("exp(-48*x^2)", gr->Min, gr->Max);
+    a = mglQO2d(ham, re, im, r, 1, 30, &xx, &yy);
+    gr->CAxis(0, 1);
+    gr->Dens(xx, yy, a, "wyrRk");
+
+
+File: mathgl_en.info,  Node: MGL parser using,  Next: Stereo image,  Prev: PDE solving hints,  Up: Hints
+
+2.7.14 MGL parser using
+-----------------------
+
+Sometimes you may prefer to use MGL scripts in yours code. It is
+simpler (especially in comparison with C/Fortran interfaces) and fast
+way to plot the data with annotations, labels and so on. Class
+`mglParse' (*note mglParse class:: parse MGL scripts in C++. It have
+also the corresponding interface for C/Fortran.
+
+   The key function here is `mglParse::Parse()' (or `mgl_parse()' for
+C/Fortran) which execute one command per string. At this the detailed
+information about the possible errors or warnings is passed as function
+value. Or you may execute the whole script as long string with lines
+separated by `\n'. Functions `mglParse::Execute()' and
+`mgl_parse_text()' perform it. Also you may set the values of paramters
+`$0'...`$9' for the script by functions `mglParse::AddParam()' or
+`mgl_add_param()', allow/disable picture resizing, check "once" status
+and so on. The usage is rather stright-forward.
+
+   The only non-obvious thing is data transition between script and
+yours program. There are 2 stages: add or find variable; and set data
+to variable. In C++ you may use functions `mglParse::AddVar()' and
+`mglParse::FindVar()' which return pointer to `mglVar' structure. This
+structure contain data itself, the variable name and callback function
+which will be called if variable destroied. Last feature allows you to
+control the presence of the variable and, for example, close a window
+with data if this variable is destroyed. In C/Fortran the corresponding
+functions are `mgl_add_var()', `mgl_find_var()'. But these functions
+return the data array only. Note, you *must not delete or free* the
+data obtained from these functions!
+
+   So, some simple example at the end. Here I define a data array,
+create variable, put data into it and plot it. The C++ code looks like
+this:
+    float a[100];   // let a_i = sin(4*pi*x), x=0...1
+    for(int i=0;i<100;i++)  a[i]=sin(4*M_PI*i/99);
+    mglParse *parser = new mglParse;
+    mglData &d = (parser->AddVar("dat"))->d;
+    d.Set(a,100); // set data to variable
+    parser->Execute(gr, "plot dat; xrange 0 1\nbox\naxis");
+    // you may break script at any line do something
+    // and continue after that
+    parser->Execute(gr, "xlabel 'x'\nylabel 'y'");
+    // also you may use cycles or conditions in script
+    parser->Execute(gr, "for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext");
+    gr->WritePNG("test.png");   // don't forgot to save picture
+ The code in C/Fortran looks practically the same:
+    float a[100];   // let a_i = sin(4*pi*x), x=0...1
+    int i;
+    for(i=0;i<100;i++)  a[i]=sin(4*M_PI*i/99);
+    HMPR parser = mgl_create_parser();
+    HMDT d = mgl_add_var(parser, "dat");
+    mgl_data_set_float(d,a,100,1,1);    // set data to variable
+    mgl_parse_text(gr, parser, "plot dat; xrange 0 1\nbox\naxis");
+    // you may break script at any line do something
+    // and continue after that
+    mgl_parse_text(gr, parser, "xlabel 'x'\nylabel 'y'");
+    // also you may use cycles or conditions in script
+    mgl_parse_text(gr, parser, "for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext");
+    mgl_write_png(gr, "test.png", "");  // don't forgot to save picture
+
+
+File: mathgl_en.info,  Node: Stereo image,  Prev: MGL parser using,  Up: Hints
+
+2.7.15 Stereo image
+-------------------
+
+One can easily create stereo image in MathGL. Stereo image can be
+produced by making two subplots with slightly different rotation
+angles. The corresponding code looks like this (*note Stereo image
+sample::):
+    gr->SubPlot(2,1,0);     // left image
+    gr->Rotate(40,60+3);
+    // draw something here
+
+    gr->SubPlot(2,1,1);     // right image
+    gr->Rotate(40,60-3);
+    // draw the same here
+
+
+File: mathgl_en.info,  Node: MathGL core,  Next: Plotter classes,  Prev: Examples,  Up: Top
+
+3 MathGL core
+*************
+
+The core of MathGL is *mglGraph* class defined in `#include
+<mgl/mgl.h>'. It contains a lot of plotting functions for 1D, 2D and 3D
+plots. It also encapsulates parameters for axes drawing. Moreover an
+arbitrary coordinate transformation may be used for each axis. All
+plotting functions use data encapsulated in mglData class (*note
+mglData class::) that allows to check sizes of used arrays easily. Also
+it have many functions for data handling: modify it by formulas, find
+momentums and distribution (histogram), apply operator (differentiate,
+integrate, transpose, Fourier and so on), change data sizes
+(interpolate, squeeze, crop and so on). Additional information about
+colors, fonts, formula parsing can be found in *note Other classes::.
+
+   Note that class mglGraph is abstract and contains only interface
+functions for plotting but does not make plot by itself. For plotting
+in specific device (screen, memory or file) one should use derived
+classes: mglGraphZB - for bitmap picture in file or in memory;
+mglGraphPS - for vector PostScript picture; mglGraphGL - for drawing
+using OpenGL, or for GLUT windows interface; and so on, *note Plotter
+classes::. If you want not only to create a picture but to view it in a
+window/widget or to run animation and so on then look at *note Widget
+classes::.
+
+   There is a C++ wrapper class which have the same name `mglGraph' and
+defined in `mgl/mgl_graph.h'. You can use this class even with non-GNU
+compilers (i.e. in Borland or Microsoft one), but you *should not
+include* any `mgl/mgl.h' or `mgl/mgl_parse.h' headers in this case!
+This wrapper class also used as base for all SWIG-based interfaces
+(Python, Octave and so on). So, later it is refered as `Python' class
+for distinguish from original `C++' class defined in `mgl/mgl.h' .
+
+* Menu:
+
+* Graphics setup::
+* Axis settings::
+* Transformation matrix::
+* Export to file::
+* Primitives drawing::
+* Text printing::
+* Axis and Colorbar::
+* Legend::
+* 1D plotting::
+* 2D plotting::
+* 3D plotting::
+* Dual plotting::
+* Vector fields::
+* Other plotting::
+* Nonlinear fitting::
+* Data distributions::
+* Frames/Animation::
+* IDTF functions::
+
+
+File: mathgl_en.info,  Node: Graphics setup,  Next: Axis settings,  Up: MathGL core
+
+3.1 Graphics setup
+==================
+
+Functions and variables in this group influences on overall graphics
+appearance. So all of them should be placed _before_ any actual
+plotting function calls.
+
+ -- Method on `mglGraph' (C++, Python): `void' DefaultPlotParam ()
+ -- C function: `void' mgl_set_def_param (`HMGL' gr)
+     Restore initial values for all of parameters except described in
+     *note Zooming::.
+
+* Menu:
+
+* Transparency::
+* Lighting::
+* Fog::
+* Default sizes::
+* Zooming::
+* Cutting::
+* Font settings::
+* Palette and colors::
+* Error handling::
+* Other settings::
+
+
+File: mathgl_en.info,  Node: Transparency,  Next: Lighting,  Up: Graphics setup
+
+3.1.1 Transparency
+------------------
+
+There are several functions and variables for setup transparency. The
+general function is `Alpha()' which switch on/off the transparency for
+overall plot. It influence only for graphics which created after
+`Alpha()' call (with one exception, mglGraphGL). Function `SetAlphaDef'
+specify the default value of alpha-channel. You may switch off
+transparency of selected plot by function `SetTransparent'. Finally,
+function `SetTranspType' set the kind of transparency. *Note
+Transparent surface sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `bool' Alpha (`bool' enable)
+ -- C function: `void' mgl_set_alpha (`HMGL' gr, `int' enable)
+     Sets the transparency on/off and returns previous value of
+     transparency. It is recommended to call this function before any
+     plotting command. In any case it must be called before `Finish()'
+     function if the last is used. Default value is transparency off.
+     Unfortunately it switches the transparency on/off for all
+     subplots. Use `SetTransparent(false)' in particular plot to
+     disable its transparency.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetAlphaDef (`float' val)
+ -- C function: `void' mgl_set_alpha_default (`HMGL' gr, `float' alpha)
+     Sets default value of alpha channel (transparency) for all
+     plotting functions. Note, that OpenGL (mglGraphGL) has incorrect
+     drawing for large values of alpha in case of several overlapping
+     surfaces.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetTransparent (`bool'
+          val)
+ -- C function: `void' mgl_set_transp (`HMGL' gr, `int' enable)
+     Flag which temporary switches transparency on/off for the plot.
+     This is the same as `Alpha(val)' but more correctly work in
+     mglGraphGL class.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetTranspType (`int'
+          type)
+ -- C function: `void' mgl_set_transp_type (`HMGL' gr, `int' enable)
+     Set the transparency type. Normal transparency (`0') - below
+     things is less visible than upper ones. It does not look well in
+     OpenGL mode (mglGraphGL) for several surfaces. Glass-like
+     transparency (`1') - below and upper things are commutable and
+     just decrease intensity of light by RGB channel. Lamp-like
+     transparency (`2') - below and upper things are commutable and are
+     the source of some additional light. I recommend to set
+     `SetAlphaDef(0.3)' or less for lamp-like transparency. *Note
+     Normal transparency::, *note Glass-like transparency::, *note
+     Lamp-like transparency::.
+
+ -- _Obsolete option_ of mglGraph: `float' AlphaDef
+     Default value of alpha channel. See `SetAlphaDef()'.
+
+ -- _Obsolete option_ of mglGraph: `bool' Transparent
+     Flag which temporary switches transparency on/off for the plot.
+     See `SetTransparent()'.
+
+ -- _Obsolete option_ of mglGraph: `int' TranspType
+     This variable set the transparency type. See `SetTranspType()'.
+
+
+File: mathgl_en.info,  Node: Lighting,  Next: Fog,  Prev: Transparency,  Up: Graphics setup
+
+3.1.2 Lighting
+--------------
+
+There are several functions for setup lighting. The general function is
+`Light(bool)' which switch on/off the lighting for overall plot. It
+influence only for graphics which created after `Light()' call (with
+one exception, mglGraphGL). Generally MathGL support up to 10
+independent light sources. But in OpenGL mode only 8 of light sources
+is used due to OpenGL limitations. The position, color, brightness of
+each light source can be set separately. By default only one light
+source is active. It is source number `0' with white color, located at
+top of the plot.
+
+ -- Method on `mglGraph' (C++, Python): `bool' Light (`bool' enable)
+ -- C function: `void' mgl_set_light (`HMGL' gr, `int' enable)
+     Sets the using of light on/off for overall plot. Function returns
+     previous value of lighting. Default value is lightning off.
+
+ -- Method on `mglGraph' (C++, Python): `void' Light (`int' n, `bool'
+          enable)
+ -- C function: `void' mgl_set_light_n (`HMGL' gr, `int' n, `int'
+          enable)
+     Switch on/off N-th light source separately.
+
+ -- Method on `mglGraph' (C++, Python): `void' AddLight (`int' n,
+          `float' x, `float' y, `float' z, `char' c=`'w'')
+ -- Method on `mglGraph' (C++): `void' Light (`int' n, `mglPoint' p,
+          `char' c=`'w'', `float' bright=`0.5', `bool' infty=`true')
+ -- Method on `mglGraph' (C++): `void' Light (`int' n, `mglPoint' p,
+          `mglColor' c, `float' bright=`0.5', `bool' infty=`true')
+ -- C function: `void' mgl_add_light (`HMGL' gr, `int' n, `float' x,
+          `float' y, `float' z, `char' c)
+     The function adds a light source with identification N at position
+     P with color C and with brightness BRIGHT (which must be in range
+     [0,1]). Flag INFTY=`true' puts the source to infinite distance
+     (for the faster drawing).
+
+ -- Method on `mglGraph' (C++, Python): `void' Ambient (`float'
+          bright=`0.5')
+ -- C function: `void' mgl_set_ambbr (`HMGL' gr, `float' bright)
+     Sets the brightness of ambient light. The value should be in range
+     [0,1].
+
+
+File: mathgl_en.info,  Node: Fog,  Next: Default sizes,  Prev: Lighting,  Up: Graphics setup
+
+3.1.3 Fog
+---------
+
+ -- Method on `mglGraph' (C++, Python): `void' Fog (`float' d, `float'
+          dz=`0.25')
+ -- C function: `void' mgl_set_fog (`HMGL' gr, `float' d, `float' dz)
+     Function imitate a fog in the plot. Fog start from relative
+     distance DZ from view point and its density growths exponentially
+     in depth. So that the fog influence is determined by law ~
+     1-exp(-_d*z_). Here _z_ is normalized to 1 depth of the plot. If
+     value D=`0' then the fog is absent. *Note Surface in fog sample::,
+     for sample code and picture.
+
+
+File: mathgl_en.info,  Node: Default sizes,  Next: Zooming,  Prev: Fog,  Up: Graphics setup
+
+3.1.4 Default sizes
+-------------------
+
+These variables control the default (initial) values for most graphics
+parameters including sizes of markers, arrows, linewidth and so on. As
+any other settings these ones will influence only on plots created
+after the settings change.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetBarWidth ( `float'
+          val)
+ -- C function: `void' mgl_set_bar_width (`HMGL' gr, `float' val)
+     Sets relative width of rectangles in Bars, Barh, BoxPlot (*note
+     Bars::). Default value is `0.7'.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetMarkSize (`float' val)
+ -- C function: `void' mgl_set_mark_size (`HMGL' gr, `float' val)
+     Sets size of marks for *note 1D plotting::. Default value is
+     `0.02'.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetArrowSize (`float'
+          val)
+ -- C function: `void' mgl_set_arrow_size (`HMGL' gr, `float' val)
+     Sets size of arrows for *note 1D plotting::, lines and curves
+     (*note Primitives drawing::). Default value is `0.03'.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetBaseLineWidth
+          (`float' val)
+ -- C function: `void' mgl_set_base_line_width (`HMGL' gr, `float' val)
+     Defines the base width for all lines. The value <1 is ignored. For
+     values > 1 the real line width is result of multiplication of
+     specified line width and the value of BASELINEWIDTH. Increase of
+     this variables is actual for large bitmap pictures. Default value
+     is `1'.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetTickLen (`float' val,
+          `float' stt=`1')
+ -- C function: `void' mgl_set_tick_len (`HMGL' gr, `float' val,
+          `float' stt)
+     The relative length of axis ticks. Default value is `0.1'.
+     Parameter STT>0 set relative length of subticks which is in
+     `sqrt(1+stt)' times smaller.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetTickStl (`const char
+          *'stl, `const char *'sub=`0')
+ -- C function: `void' mgl_set_tick_stl (`HMGL' gr, `const char *'stl,
+          `const char *'sub)
+     The line style of axis ticks (STL) and subticks (SUB). If STL is
+     empty then default style is used (`k' or `w' depending on
+     transparency type). If SUB is empty then ticks style is used (i.e.
+     STL).
+
+ -- _Obsolete option_ of mglGraph: `float' BarWidth
+     Relative width of rectangles. See `SetBarWidth()'.
+
+ -- _Obsolete option_ of mglGraph: `float' MarkSize
+     The size of marks. See `SetMarkSize()'.
+
+ -- _Obsolete option_ of mglGraph: `float' ArrowSize
+     The size of arrows. See `SetArrowSize()'.
+
+ -- _Obsolete option_ of mglGraph: `float' BaseLineWidth
+     The variable define the base width for all lines. See
+     `SetBaseLineWidth()'.
+
+
+File: mathgl_en.info,  Node: Zooming,  Next: Cutting,  Prev: Default sizes,  Up: Graphics setup
+
+3.1.5 Zooming
+-------------
+
+These variables and functions control the overall zooming of the
+picture (see Zoom()) or the sub-picture (see PlotFactor). Normally you
+can use these variables and functions for removing "white" spaces
+around a plot.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetPlotFactor (`float'
+          val)
+ -- C function: `void' mgl_set_plotfactor (`HMGL' gr, `float' val)
+     Sets the factor of plot size. It is not recommended to set it
+     lower then 1.5. This is some analogue of function Zoom() but
+     applied not to overall image but for each InPlot. Use negative
+     value or zero to enable automatic `PlotFactor' selection.
+
+ -- Method on `mglGraph' (C++, Python): `void' Zoom (`float' x1,
+          `float' y1, `float' x2, `float' y2)
+ -- C function: `void' mgl_set_zoom (`HMGL' gr, `float' x1, `float' y1,
+          `float' x2, `float' y2)
+     The function changes the scale of graphics that correspond to zoom
+     in/out of the picture. After function call the current plot will
+     be cleared and further the picture will contain plotting from its
+     part [x1,x2]*[y1,y2]. Here picture coordinates X1, X2, Y1, Y2
+     changes from 0 to 1. Attention! this settings can not be
+     overwritten by any other functions. Use `Zoom(0,0,1,1)' to return
+     default view.
+
+ -- _Obsolete option_ of mglGraph: `float' PlotFactor
+     The factor of plot size. See `SetPlotFactor()'.
+
+ -- _Obsolete option_ of mglGraph: `bool' AutoPlotFactor
+     Switch on/off automatic change of PlotFactor variable during plot
+     rotation. See `SetPlotFactor()'.
+
+
+File: mathgl_en.info,  Node: Cutting,  Next: Font settings,  Prev: Zooming,  Up: Graphics setup
+
+3.1.6 Cutting
+-------------
+
+These variables and functions set the condition when the points are
+excluded (cutted) from the drawing. Note, that a point with NAN
+value(s) of coordinate or amplitude will be automatically excluded from
+the drawing.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetCut (`bool' val)
+ -- C function: `void' mgl_set_cut (`HMGL' gr, `int' val)
+     Flag which determines how points outside bounding box are drawn.
+     If it is `true' then points are excluded from plot (it is default)
+     otherwise the points are projected to edges of bounding box.
+
+ [image src="cut.png" ]
+
+Left figure is drawn with parameter `Cut=false'. Right one is drawn
+with parameter `Cut=true'.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetCutBox (`float' x1,
+          `float' y1, `float' z1, `float' x2, `float' y2, `float' z2)
+ -- C function: `void' mgl_set_cut_box (`HMGL' gr, `float' x1, `float'
+          y1, `float' z1, `float' x2, `float' y2, `float' z2)
+     Lower and upper edge of the box in which never points are drawn.
+     If both edges are the same (the variables are equal) then the
+     cutting box is empty. *Note CutMinMax sample::, for sample code
+     and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' CutOff (`const char
+          *'EqC)
+ -- C function: `void' mgl_set_cutoff (`HMGL' gr, `const char *'EqC)
+     Sets the cutting off condition by formula EQC. This condition
+     determine will point be plotted or not. If value of formula is
+     nonzero then point is omitted, otherwise it plotted. Set argument
+     as `""' to disable cutting off condition. *Note CutOff sample::,
+     for sample code and picture.
+
+ -- _Obsolete option_ of mglGraph: `bool' Cut
+     Flag which determines how points outside bounding box are drawn.
+     See `SetCut()'.
+
+ -- _Obsolete option_ of mglGraph: `mglPoint' CutMin, CutMax
+     Lower and upper edge of the box in which never points are drawn.
+     See `SetCutBox()'.
+
+
+File: mathgl_en.info,  Node: Font settings,  Next: Palette and colors,  Prev: Cutting,  Up: Graphics setup
+
+3.1.7 Font settings
+-------------------
+
+ -- Method on `mglGraph' (C++, Python): `void' SetFontSize (`float' val)
+ -- C function: `void' mgl_set_font_size (`HMGL' gr, `float' val)
+     Sets the size of font for tick and axis labels. Default font size
+     of axis labels is 1.4 times large than for tick labels.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetFontDef (`const char
+          *'fnt)
+ -- C function: `void' mgl_set_font_def (`HMGL' gr, `const char *' val)
+     Sets the font specification (*note Text printing::). Default is
+     `rC' - Roman font centering.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetRotatedText (`bool'
+          val)
+ -- C function: `void' mgl_set_rotated_text (`HMGL' gr, `int' val)
+     Sets to use or not text rotation along axis.
+
+ -- Method on `mglGraph' (C++, Python): `void' LoadFont (`const char
+          *'name, `const char *'path=`""')
+ -- C function: `void' mgl_load_font (`HMGL' gr, `const char *'name,
+          `const char *'path)
+     Load font typeface from PATH/NAME.
+
+ -- Method on `mglGraph' (C++, Python): `void' CopyFont (`mglGraph *'
+          from)
+ -- C function: `void' mgl_copy_font (`HMGL' gr, `HMGL' gr_from)
+     Copy font data from another `mglGraph' object.
+
+ -- Method on `mglGraph' (C++, Python): `void' RestoreFont ()
+ -- C function: `void' mgl_restore_font (`HMGL' gr)
+     Restore font data to default typeface.
+
+ -- Method on `mglGraph' (C++): `void' SetFontSizePT (`float' cm, `int'
+          dpi=`72')
+     Set FontSize by size in pt and picture DPI (default is 16 pt for
+     dpi=72).
+
+ -- Method on `mglGraph' (C++): `inline void' SetFontSizeCM (`float'
+          cm, `int' dpi=`72')
+     Set FontSize by size in centimeters and picture DPI (default is
+     0.56 cm = 16 pt).
+
+ -- Method on `mglGraph' (C++): `inline void' SetFontSizeIN (`float'
+          cm, `int' dpi=`72')
+     Set FontSize by size in inch and picture DPI (default is 0.22 in =
+     16 pt).
+
+ -- Method on `mglGraph' (C++): `void' SetFont (`mglFont *'f)
+     Sets font typeface. Note that each mglFont instance can be used
+     with _ONLY ONE_ mglGraph instance at a moment of time! If `f==""'
+     then default font is used.
+
+ -- Method on `mglGraph' (C++): `inline mglFont *' GetFont ()
+     Gets current typeface. Note that this variable can be deleted at
+     next SetFont() call!
+
+ -- _Obsolete option_ of mglGraph: `float' FontSize
+     The font size. See `SetFontSize()'.
+
+ -- _Obsolete option_ of mglGraph: `char' FontDef`[32]'
+     Font style. See `SetFontDef()'.
+
+ -- _Obsolete option_ of mglGraph: `bool' RotatedText
+     Set to use or not text rotation along axis.
+
+
+File: mathgl_en.info,  Node: Palette and colors,  Next: Error handling,  Prev: Font settings,  Up: Graphics setup
+
+3.1.8 Pallete and colors
+------------------------
+
+ -- Method on `mglGraph' (C++, Python): `void' SetPalette (`const char
+          *'COLORS)
+ -- C function: `void' mgl_set_palette (`HMGL' gr, `const char *'COLORS)
+     Sets the palette as selected colors. Default value is
+     `"Hbgrcmyhlnqeup"' that corresponds to colors: dark gray `H', blue
+     `b', green `g', red `r', cyan `c', magenta `m', yellow `y', gray
+     `h', blue-green `l', sky-blue `n', orange `q', yellow-green `e',
+     blue-violet `u', purple `p'. The palette is used mostly in 1D
+     plots (*note 1D plotting::) for curves which styles are not
+     specified.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetPalColor (`int' n,
+          `float' r, `float' g, `float' b)
+ -- C function: `void' mgl_set_pal_color (`HMGL' gr, `int' n, `float'
+          r, `float' g, `float' b)
+     Sets color for individual palette entry. Look at `SetPalette()'
+     function for simplified palette setting.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetPalNum (`int' num)
+ -- C function: `void' mgl_set_pal_num (`HMGL' gr, `int' num)
+     Sets the number of actual colors in palette. The value must be
+     less then 100.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetScheme (`const char
+          *'sch)
+ -- C function: `void' mgl_set_scheme (`HMGL' gr, `const char *'sch)
+     Set the color scheme for following plots. Usually this function is
+     used internally. *Note Color scheme::.
+
+ -- Method on `mglGraph' (C++): `void' SelectPen (`const char *'sch)
+     Set the line and mark styles for following plots. Usually this
+     function is used internally. *Note Line styles::.
+
+ -- _Obsolete option_ of mglGraph: `mglColor' Pal`[101]'
+     Color palette for *note 1D plotting::. See `SetPalette()'.
+
+ -- _Obsolete option_ of mglGraph: `int' NumPal
+     Number of actual colors in palette. See `SetPalette()'.
+
+
+File: mathgl_en.info,  Node: Error handling,  Next: Other settings,  Prev: Palette and colors,  Up: Graphics setup
+
+3.1.9 Error handling
+--------------------
+
+There are 2 variables which indicate the warnings/errors presence
+during plot creation. Normally user should set it to zero by
+`SetWarn(0);' before plotting and check if WARNCODE is not zero after
+plotting. Only last warning will be saved. All warnings/errors produced
+by MathGL is not critical - the plot just will not be drawn.
+
+ -- Method on `mglGraph' (C++): `void' SetWarn (`int' code, `const char
+          *'who=`""')
+     Set warning code and corresponding message from function WHO.
+     Normally you should call this function only for clearing the
+     warning state, i.e. call `SetWarn(0);'.
+
+ -- General option (C++) of mglGraph: `char *' Message
+     Pointer to buffer for writing messages about matters why some plot
+     are not drawn. Set to NULL to disable messages. The buffer length
+     must be at least 1024. If Message[0]==0 then there are no messages
+
+ -- Method on `mglGraph' (C++, Python): `int' GetWarnCode ()
+ -- C function: `int' mgl_get_warn_code (`HMGL' gr)
+     Return the numerical ID of warning about the not drawn plot.
+     Possible values are:
+    `mglWarnNone=0'
+          Everything OK
+
+    `mglWarnDim'
+          Data dimension(s) is incompatible
+
+    `mglWarnLow'
+          Data dimension(s) is too small
+
+    `mglWarnNeg'
+          Minimal data value is negative
+
+    `mglWarnFile'
+          No file or wrong data dimensions
+
+    `mglWarnMem'
+          Not enough memory
+
+    `mglWarnZero'
+          Data values are zero
+
+    `mglWarnLegA'
+          Too many legend entries
+
+    `mglWarnLeg'
+          No legend entries
+
+    `mglWarnSlc'
+          Slice value is out of range
+
+    `mglWarnCnt'
+          Number of contours is zero or negative
+
+    `mglWarnOpen'
+          Couldn't open file
+
+    `mglWarnLId'
+          Light: ID is out of range
+
+    `mglWarnSize'
+          Setsize: size(s) is zero or negative
+
+    `mglWarnFmt'
+          Format is not supported for that build
+
+ -- Obsolete option of mglGraph: `int' WarnCode
+     Numerical ID of warning about the not drawn plot.
+
+
+File: mathgl_en.info,  Node: Other settings,  Prev: Error handling,  Up: Graphics setup
+
+3.1.10 Other settings
+---------------------
+
+ -- Method on `mglGraph' (C++, Python): `void' SetMeshNum (`int' val)
+ -- C function: `void' mgl_set_meshnum (`HMGL' gr, `int' num)
+     Sets approximate number of lines in Mesh(), Fall(), Grid() and
+     also the number of hachures in Vect(), VectC(), Dew() and the
+     number of cells in Cloud*(). By default (=0) it draws all
+     lines/hachures/cells.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetAxialDir (`char' val)
+ -- C function: `' mgl_set_axial_dir (`HMGL' gr, `char' dir)
+     Sets direction around which curve rotated in Axial() and Torus().
+     Default value is 'z'.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetDrawFace (`bool' val)
+ -- C function: `void' mgl_set_draw_face (`HMGL' gr, `int' val)
+     Enable/disable faces drawing. It is useful for speeding up drawing
+     (for example, during rotation and so on).
+
+ -- General option (C++) of mglGraph: `const char *' PlotId
+     Id of plot for saving filename (in GLUT window for example).
+
+ -- _Obsolete option_ of mglGraph: `int' MeshNum
+     Sets approximate number of lines/hachures/cells. See
+     `SetMeshNum()'.
+
+ -- _Obsolete option_ of mglGraph: `char' AxialDir
+     Set rotation direction. See `SetAxialDir()'.
+
+ -- _Obsolete option_ of mglGraph: `bool' DrawFace
+     Flag for preventing faces drawing. See `SetDrawFace()'.
+
+ -- General option (C++) of mglGraph: `int' CirclePnts
+     Number of points used for a circle approximation (for example, in
+     *note Primitives drawing::, *note Tube::, *note Pipe:: and so on).
+     Default value is 40.
+
+ -- General option (C++) of mglGraph: `int' GridPnts
+     Number of points used for grid lines drawing (it is important for
+     curved coordinates). Default value is 50.
+
+
+File: mathgl_en.info,  Node: Axis settings,  Next: Transformation matrix,  Prev: Graphics setup,  Up: MathGL core
+
+3.2 Axis settings
+=================
+
+These large set of variables and functions control how the axis and
+ticks will be drawn. Note that there is 3-step transformation of data
+coordinates are performed. Firstly, coordinates are projected if
+`Cut=true' (*note Cutting::), after it transformation formulas are
+applied, and finally the data was normalized in bounding box.
+
+* Menu:
+
+* Ranges (bounding box)::
+* Curved coordinates::
+* Ticks::
+
+
+File: mathgl_en.info,  Node: Ranges (bounding box),  Next: Curved coordinates,  Up: Axis settings
+
+3.2.1 Ranges (bounding box)
+---------------------------
+
+ -- Method on `mglGraph' (C++, Python): `void' SetRanges (`float' x1,
+          `float' x2, `float' y1, `float' y2, `float' z1=`0', `float'
+          z2=`0')
+ -- Method on `mglGraph' (C++): `void' Axis (`mglPoint' min, `mglPoint'
+          max, `mglPoint' org=`mglPoint(NAN,NAN,NAN)')
+ -- C function: `void' mgl_set_axis_2d (`HMGL' gr, `float' x1, `float'
+          y1, `float' x2, `float' y2)
+ -- C function: `void' mgl_set_axis_3d (`HMGL' gr, `float' x1, `float'
+          y1, `float' z1, `float' x2, `float' y2, `float' z2)
+     Safely sets the value for MIN, MAX and ORG members (options) of
+     the class. If minimal and maximal values of the coordinate are the
+     same then they are ignored. This function also sets CMIN=`Min.z'
+     and CMAX=`Max.z'. This is default color range for 2d plots.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetCRange (`float' min,
+          `float' max)
+ -- Method on `mglGraph' (C++): `void' CAxis (`float' min, `float' max)
+ -- C function: `void' mgl_set_caxis (`HMGL' gr, `float' min, `float'
+          max)
+     Safely sets minimal and maximal values of data for coloring. This
+     values are used later for determining the color of the surface.
+
+ -- Method on `mglGraph' (C++, Python): `void' XRange (`const mglData
+          &' dat, `bool' add=`false', `float' fact=`0')
+ -- C function: `void' mgl_set_xrange (`HMGL' gr, `const HMDT' a, `int'
+          add)
+     Sets values of `Min.x' and `Max.x' as minimal and maximal values
+     of data A. Parameter ADD specify to add or not the new range to
+     current one. Parameter FACT add additional range increase on value
+     (MAX-MIN)*FACT. See also Axis().
+
+ -- Method on `mglGraph' (C++, Python): `void' YRange (`const mglData
+          &' dat, `bool' add=`false', `float' fact=`0')
+ -- C function: `void' mgl_set_yrange (`HMGL' gr, `const HMDT' a, `int'
+          add)
+     Sets values of `Min.y' and `Max.y' as minimal and maximal values
+     of data A. Parameter ADD specify to add or not the new range to
+     current one. Parameter FACT add additional range increase on value
+     (MAX-MIN)*FACT. See also Axis().
+
+ -- Method on `mglGraph' (C++, Python): `void' ZRange (`const mglData
+          &' dat, `bool' add=`false', `float' fact=`0')
+ -- C function: `void' mgl_set_zrange (`HMGL' gr, `const HMDT' a, `int'
+          add)
+     Sets values of `Min.z' and `Max.z' as minimal and maximal values
+     of data A. Parameter ADD specify to add or not the new range to
+     current one. Parameter FACT add additional range increase on value
+     (MAX-MIN)*FACT. See also Axis().
+
+ -- Method on `mglGraph' (C++, Python): `void' CRange (`const mglData
+          &' dat, `bool' add=`false', `float' fact=`0')
+ -- C function: `void' mgl_set_crange (`HMGL' gr, `const HMDT' a, `int'
+          add)
+     Sets values of `Cmin' and `Cmax' as minimal and maximal values of
+     data A. Parameter ADD specify to add or not the new range to
+     current one. Parameter FACT add additional range increase on value
+     (CMAX-CMIN)*FACT. See also CAxis().
+
+ -- Method on `mglGraph' (C++, Python): `void' SetAutoRanges (`float'
+          x1, `float' x2, `float' y1=`0', `float' y2=`0', `float'
+          z1=`0', `float' z2=`0')
+ -- C function: `void' mgl_set_auto (`HMGL' gr, `float' x1, `float' x2,
+          `float' y1, `float' y2, `float' z1, `float' z2)
+     Sets ranges for automatic variables of plots. It act as changing
+     of MIN, MAX proprties without calling of RecalcBorder(). Function
+     don't change the direction if minimal and maximal values are the
+     same. For example, if yY1=Y2 then ranges along y-direction will
+     not be changed (will be used previous one). Note that the
+     automatic range become axis range after next call of [XYZ]Range()
+     function(s).
+
+ -- Method on `mglGraph' (C++, Python): `void' SetOrigin (`float' x0,
+          `float' y0, `float' z0=`NAN')
+ -- C function: `void' mgl_set_origin (`HMGL' gr, `float' x0, `float'
+          y0, `float' z0)
+     Sets center of axis cross section. If one of values is NAN then
+     MathGL library try to select optimal axis position.
+
+ -- Method on `mglGraph' (C++): `void' RecalcBorder ()
+     Recalculates internal parameter for correct apply of
+     transformation rules. *Must be called* after any direct change of
+     members MIN, MAX, FX, FY, FZ if its changes should be seen on the
+     plot.
+
+ -- General option (C++) of mglGraph: `mglPoint' Min, Max
+     Lower and upper edges of bounding box for graphics. These
+     variables are used for determining the range of automatic
+     (non-specified) arrays in most of plotting functions. So, you may
+     change it before plot and return it back after it and the plot
+     will have automatic x-(y-,z-)coordinate normalized in this range
+     but not in bounding box. *BUT* if you want to change the bounding
+     box then you *must* call `RecalcBorder();' after it or use Axis()
+     function.
+
+ -- General option (C++) of mglGraph: `float' Cmin, Cmax
+     Minimal and maximal value for data (used for coloring).
+
+ -- General option (C++) of mglGraph: `mglPoint' Org
+     Center of axis cross section. If one of values is NAN then MathGL
+     library try to select optimal axis position.
+
+ -- General option (C++) of mglGraph: `bool' AutoOrg
+     Flag for automatic shifting of axes origin ORG if it lies out of
+     range MIN ... MAX.
+
+
+File: mathgl_en.info,  Node: Curved coordinates,  Next: Ticks,  Prev: Ranges (bounding box),  Up: Axis settings
+
+3.2.2 Curved coordinates
+------------------------
+
+ -- Method on `mglGraph' (C++, Python): `void' SetFunc (`const char
+          *'EqX, `const char *'EqY, `const char *'EqZ=`""', `const char
+          *'EqA=`""')
+ -- C function: `void' mgl_set_func (`HMGL' gr, `const char *'EqX,
+          `const char *'EqY, `const char *'EqZ)
+ -- C function: `void' mgl_set_func_ext (`HMGL' gr, `const char *'EqX,
+          `const char *'EqY, `const char *'EqZ, `const char *'EqA)
+     Sets transformation formulas for curvilinear coordinate. Each
+     string should contain mathematical expression for real coordinate
+     depending on internal coordinates `x', `y', `z' and `a' or `c' for
+     colorbar. For example, the cylindrical coordinates are introduced
+     as `Axis("x*cos(y)", "x*sin(y)", "z");'. For removing of formulas
+     the corresponding parameter should be empty or `NULL'. Using
+     transformation formulas will slightly slowing the program.
+     Parameter EQA set the similar transformation formula for color
+     scheme. *Note Textual formulas::.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetCoor (`int' how)
+ -- C function: `void' mgl_set_coor (`HMGL' gr, `int' how)
+     Sets one of the predefined transformation formulas for curvilinear
+     coordinate. Paramater HOW define the coordinates: `mglCartesian=0'
+     - Cartesian coordinates (no transformation); `mglPolar=1' - Polar
+     coordiantes x_n=x*cos(y),y_n=x*sin(y), z_n=z; `mglSpherical=2' -
+     Sperical coordinates x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z),
+     z_n=x*cos(y); `mglParabolic=3' - Parabolic coordinates x_n=x*y,
+     y_n=(x*x-y*y)/2, z_n=z; `mglParaboloidal=4' - Paraboloidal
+     coordinates x_n=(x*x-y*y)*cos(z)/2, y_n=(x*x-y*y)*sin(z)/2,
+     z_n=x*y; `mglOblate=5' - Oblate coordinates
+     x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z),
+     z_n=sinh(x)*sin(y); `mglProlate=6' - Prolate coordinates
+     x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z),
+     z_n=cosh(x)*cos(y); `mglElliptic=7' - Elliptic coordinates
+     x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z; `mglToroidal=8' -
+     Toroidal coordinates x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)),
+     y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y));
+     `mglBispherical=9' - Bispherical coordinates
+     x_n=sin(y)*cos(z)/(cosh(x)-cos(y)),
+     y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y));
+     `mglBipolar=10' - Bipolar coordinates
+     x_n=sinh(x)/(cosh(x)-cos(y)), y_n=sin(y)/(cosh(x)-cos(y)), z_n=z.
+
+ -- Method on `mglGraph' (C++, Python): `void' Ternary (`bool' tern)
+ -- C function: `void' mgl_set_ternary (`HMGL' gr, `int' tern)
+     The function sets to draws Ternary plot. This special plot is for
+     3 dependent coordinates (components) A, B, C so that A+B+C=1.
+     MathGL uses only 2 independent coordinates A=x and B=y since it is
+     enough to plot everything. At this third coordinate z act as
+     another parameter to produce contour lines, surfaces and so on.
+     *Note Ternary plot sample::, for sample code and picture.
+
+
+File: mathgl_en.info,  Node: Ticks,  Prev: Curved coordinates,  Up: Axis settings
+
+3.2.3 Ticks
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' AdjustTicks (`const char
+          *'dir=`"xyz"')
+ -- C function: `void' mgl_adjust_ticks (`HMGL' gr, `const char *'dir)
+     Set the ticks step, number of sub-ticks and initial ticks position
+     to be the most human readable for the axis along direction(s) DIR.
+     Also set `SetTuneTicks(true)'.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetTicks (`char' dir,
+          `float' d=`-5', `int' ns=`0', `float' org=`NAN')
+ -- C function: `void' mgl_set_ticks_dir (`HMGL' gr, `char' dir,
+          `float' d, `int' ns, `float' org)
+ -- C function: `void' mgl_set_ticks (`HMGL' gr, `float' dx, `float'
+          dy, `float' dz)
+ -- C function: `void' mgl_set_subticks (`HMGL' gr, `int' nx, `int' ny,
+          `int' nz)
+ -- C function: `void' mgl_set_tick_origin (`HMGL' gr, `float' x0,
+          `float' y0, `float' z0)
+     Set the ticks step D, number of sub-ticks NS and initial ticks
+     position ORG for the axis along direction DIR (use 'c' for
+     colorbar ticks). Variable D set step for axis ticks (if positive)
+     or it's number on the axis range (if negative). Zero value set
+     logarithmic ticks. If ORG value is NAN then value from ORG is used.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetTicksVal (`char' dir,
+          `int' n, `float *'val, `const char **'lbl)
+ -- Method on `mglGraph' (C++, Python): `void' SetTicksVal (`char' dir,
+          `int' n, `float *'val, `const wchar_t **'lbl)
+ -- Method on `mglGraph' (C++): `void' SetTicksVal (`char' dir, `int'
+          n, `float' val1, `wchar_t *'lbl1, ...)
+ -- C function: `void' mgl_set_ticks_vals (`HMGL' gr, `char' dir, `int'
+          n, `float *'val, `const char **'lbl)
+ -- C function: `void' mgl_set_ticks_val (`HMGL' gr, `char' dir, `int'
+          n, `double' val, `const char *'lbl, ...)
+     Set the manual positions VAL and its labels LBL for N-th ticks
+     along axis DIR. The arrays VAL and LBL must contain N elements.
+     Use `SetTicks()' to restore automatic ticks. Note, you *have to
+     be* very careful to use floating-point (not integer!!!) values as
+     ticks position due to limitations of stdarg library (argument
+     transfer). *Note Manual ticks sample::, for sample code and
+     picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetTuneTicks (`bool'
+          tune, `float' pos=`1.15')
+ -- C function: `void' mgl_tune_ticks (`HMGL' gr, `bool' tune, `float'
+          pos)
+     Switch on/off ticks enhancing by factoring common multiplier (for
+     small, like from 0.001 to 0.002, or large, like from 1000 to 2000,
+     coordinate values) or common component (for narrow range, like
+     from 0.999 to 1.000). Also set the position POS of common
+     multiplier/component on the axis: =0 at minimal axis value, =1 at
+     maximal axis value. Default value is 1.15.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetXTT (`const char
+          *'xtt)
+ -- Method on `mglGraph' (C++, Python): `void' SetYTT (`const char
+          *'ytt)
+ -- Method on `mglGraph' (C++, Python): `void' SetZTT (`const char
+          *'ztt)
+ -- Method on `mglGraph' (C++, Python): `void' SetCTT (`const char
+          *'ctt)
+ -- Method on `mglGraph' (C++, Python): `void' SetXTT (`const wchar_t
+          *'xtt)
+ -- Method on `mglGraph' (C++, Python): `void' SetYTT (`const wchar_t
+          *'ytt)
+ -- Method on `mglGraph' (C++, Python): `void' SetZTT (`const wchar_t
+          *'ztt)
+ -- Method on `mglGraph' (C++, Python): `void' SetCTT (`const wchar_t
+          *'ctt)
+ -- C function: `void' mgl_set_xttw (`HMGL' gr, `const wchar_t *'xtt)
+ -- C function: `void' mgl_set_yttw (`HMGL' gr, `const wchar_t *'ytt)
+ -- C function: `void' mgl_set_zttw (`HMGL' gr, `const wchar_t *'ztt)
+ -- C function: `void' mgl_set_cttw (`HMGL' gr, `const wchar_t *'ctt)
+ -- C function: `void' mgl_set_xtt (`HMGL' gr, `const wchar_t *'xtt)
+ -- C function: `void' mgl_set_ytt (`HMGL' gr, `const wchar_t *'ytt)
+ -- C function: `void' mgl_set_ztt (`HMGL' gr, `const wchar_t *'ztt)
+ -- C function: `void' mgl_set_ctt (`HMGL' gr, `const wchar_t *'ctt)
+     The template for x-,y-,z-axis ticks or colorbar ticks. It may
+     contain TeX symbols also. If XTT, YTT, ZTT, CTT=`""' then default
+     template is used (in simplest case it is `%.2g'). Setting of
+     template switch off automatic ticks tuning (see `SetTuneTicks()').
+
+ -- _Obsolete option_ of mglGraph: `float' dx, dy, dz
+     Step for axis ticks. See `SetTicks()'.
+
+ -- _Obsolete option_ of mglGraph: `int' NSx, NSy, NSz
+     Number of axis sub-ticks. See `SetTicks()'.
+
+ -- _Obsolete option_ of mglGraph: `mglPoint' OrgT
+     Starting point for ticks. See `SetTicks()'.
+
+ -- _Obsolete option_ of mglGraph: `bool' TuneTicks
+     Switch on/off ticks enhancing by factoring common multiplier. See
+     `SetTuneTicks()'.
+
+ -- _Obsolete option_ of mglGraph: `float' FactorPos
+     The position of common multiplier/component on the axis. See
+     `SetTuneTicks()'.
+
+
+File: mathgl_en.info,  Node: Transformation matrix,  Next: Export to file,  Prev: Axis settings,  Up: MathGL core
+
+3.3 Transformation matrix
+=========================
+
+These functions control how and where further plotting will be placed.
+There is a curtain order of calling of these functions for the better
+plot view. First one should be SubPlot() or InPlot() for specifying the
+place. After it a Rotate() and Aspect(). And finally any other plotting
+functions may be called. Alternatevely you can use ColumnPlot() for
+position plots in the column one by another without gap between plot
+axis (bounding boxes).
+
+ -- Method on `mglGraph' (C++, Python): `void' SubPlot (`int' nx, `int'
+          ny, `int' m, `float' dx=`0', `float' dy=`0')
+ -- C function: `void' mgl_subplot (`HMGL' gr, `int' nx, `int' ny,
+          `int' m)
+ -- C function: `void' mgl_subplot_d (`HMGL' gr, `int' nx, `int' ny,
+          `int' m, `float' dx, `float' dy)
+     Puts further plotting in a M-th cell of NX*NY grid of the whole
+     frame area. This function set off any aspects or rotations. So it
+     should be used first for creating the subplot. From the
+     aesthetical point of view it is not recommended to use this
+     function with different matrices in the same frame. The position
+     of the cell can be shifted from its default position by relative
+     size DX, DY.
+
+ -- Method on `mglGraph' (C++, Python): `void' SubPlot (`int' nx, `int'
+          ny, `int' m, `const char *'style)
+ -- C function: `void' mgl_subplot_s (`HMGL' gr, `int' nx, `int' ny,
+          `int' m, `const char *'style)
+     The same as previous but space reserved for axis/colorbar is saved
+     only if STYLE contain: `L' or `<' - at left side, `R' or `>' - at
+     right side, `A' or `^' - at top side, `U' or `_' - at bottom side.
+
+ -- Method on `mglGraph' (C++, Python): `void' InPlot (`float' x1,
+          `float' x2, `float' y1, `float' y2, `bool' rel=`false')
+ -- C function: `void' mgl_inplot (`HMGL' gr, `float' x1, `float' x2,
+          `float' y1, `float' y2)
+ -- C function: `void' mgl_relplot (`HMGL' gr, `float' x1, `float' x2,
+          `float' y1, `float' y2)
+     Puts further plotting in some region of the whole frame surface.
+     This function allows one to create a plot in arbitrary place of
+     the screen. The position is defined by rectangular coordinates
+     [X1, X2]*[Y1, Y2]. The coordinates X1, X2, Y1, Y2 are normalized
+     to interval [0, 1]. If parameter REL=`true' then the relative
+     position to current SubPlot() (or last InPlot() with REL=`false')
+     is used. This function set off any aspects or rotations. So it
+     should be used first for creating subplot.
+
+ -- Method on `mglGraph' (C++, Python): `void' ColumnPlot (`int' num,
+          `int' ind, `float' d=`0')
+ -- C function: `void' mgl_columnplot (`HMGL' gr, `int' num, `int' ind)
+ -- C function: `void' mgl_columnplot_d (`HMGL' gr, `int' num, `int'
+          ind, `float' d)
+     Puts further plotting in IND-th cell of column with NUM cells. The
+     position is relative to previous SubPlot() call (or InPlot() with
+     REL=`false'). Parameter D set extra gap between cells. *Note
+     ColumnPlot sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' StickPlot (`int' num,
+          `int' ind, `float' tet, `float' phi)
+ -- C function: `void' mgl_stickplot (`HMGL' gr, `int' num, `int' ind,
+          `float' tet, `float' phi)
+     Puts further plotting in IND-th cell of stick with NUM cells. At
+     this, stick is rotated on angles TET, PHI. The position is
+     relative to previous SubPlot() call (or InPlot() with
+     REL=`false'). *Note StickPlot sample::, for sample code and
+     picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Rotate (`float' TetX,
+          `float' TetZ, `float' TetY=`0')
+ -- C function: `void' mgl_rotate (`HMGL' gr, `float' TetX, `float'
+          TetZ, `float' TetY)
+     Rotates a further plotting relative to each axis {x, z, y}
+     consecutively on angles TETX, TETZ, TETY.
+
+ -- Method on `mglGraph' (C++, Python): `void' RotateN (`float' Tet,
+          `float' x, `float' y, `float' z)
+ -- C function: `void' mgl_rotate_vector (`HMGL' gr, `float Tet',
+          `float x', `float y', `float z')
+     Rotates a further plotting around vector {X, Y, Z} on angle TET.
+
+ -- Method on `mglGraph' (C++, Python): `void' Aspect (`float' Ax,
+          `float' Ay, `float' Az)
+ -- C function: `void' mgl_aspect (`HMGL' gr, `float' Ax, `float' Ay,
+          `float' Az)
+     Defines aspect ratio for the plot. The viewable axes will be
+     related one to another as the ratio AX:AY:AZ. For the best effect
+     it should be used after Rotate() function.
+
+ -- Method on `mglGraph' (C++, Python): `void' Perspective (`float' a)
+ -- C function: `void' mgl_perspective (`HMGL' gr, `float' a)
+     Add (switch on) the perspective to plot. The parameter a ~
+     1/z_{eff} \in [0,1). By default (`a=0') the perspective is off.
+
+ -- Method on `mglGraph' (C++, Python): `void' Identity (`bool'
+          rel=`false')
+ -- C function: `void' mgl_identity (`HMGL' gr, `int' rel)
+     Clears transformation matrix. This function clears all previous
+     effects of Aspect(), SubPlot(), InPlot() or Rotate() functions. It
+     is equivalent to the call of `InPlot(0,1,0,1,rel)'.
+
+ -- Method on `mglGraph' (C++, Python): `void' Push ()
+ -- C function: `void' mgl_mat_push (`HMGL' gr)
+     Push transformation matrix into stack. Later you can restore its
+     current state by Pop() function. Stack can keep up to 10 matrices.
+
+ -- Method on `mglGraph' (C++, Python): `void' Pop ()
+ -- C function: `void' mgl_mat_pop (`HMGL' gr)
+     Pop (restore last 'pushed') transformation matrix into stack.
+
+
+File: mathgl_en.info,  Node: Export to file,  Next: Primitives drawing,  Prev: Transformation matrix,  Up: MathGL core
+
+3.4 Export to file
+==================
+
+These functions export current view to a graphic file. The filename
+FNAME should have appropriate extension. Parameter DESCR gives the
+short description of the picture. Just now the transparency is
+supported in PNG and SVG files.
+
+ -- Method on `mglGraph' (C++, Python): `void' WriteFrame (`const char
+          *'fname=`""', `const char *'descr=`""')
+ -- C function: `void' mgl_write_frame (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+     Exports current frame to a file FNAME which type is determined by
+     the extension. Parameter DESCR adds description to file (can be
+     `""'). If FNAME=`""' then the file `frame####.jpg' is used, where
+     `####' is current frame id and name `frame' is defined by PLOTID
+     class property.
+
+ -- Method on `mglGraph' (C++, Python): `void' WritePNG (`const char
+          *'fname, `const char *'descr=`""', `int' compr=`""', `bool'
+          alpha=`true')
+ -- C function: `void' mgl_write_png (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+ -- C function: `void' mgl_write_png_solid (`HMGL' gr, `const char
+          *'fname, `const char *'descr)
+     Exports current frame to PNG file. Parameter FNAME specifies the
+     file name, DESCR adds description to file, ALPHA gives the
+     transparency type. By default there are no description added and
+     transparent image used. This function does nothing if NO_PNG is
+     defined during compilation of MathGL library.
+
+ -- Method on `mglGraph' (C++, Python): `void' WriteJPEG (`const char
+          *'fname, `const char *'descr=`""')
+ -- C function: `void' mgl_write_jpg (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+     Exports current frame to JPEG file. Parameter FNAME specifies the
+     file name, DESCR adds description to file. By default there is no
+     description added. This function does nothing if NO_JPEG is
+     defined during compilation of MathGL library.
+
+ -- Method on `mglGraph' (C++, Python): `void' WriteGIF (`const char
+          *'fname, `const char *'descr=`""')
+ -- C function: `void' mgl_write_gif (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+     Exports current frame to GIF file. Parameter FNAME specifies the
+     file name, DESCR adds description to file. By default there is no
+     description added.
+
+ -- Method on `mglGraph' (C++, Python): `void' WriteBMP (`const char
+          *'fname, `const char *'descr=`""')
+ -- C function: `void' mgl_write_bmp (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+     Exports current frame to BMP file. Parameter FNAME specifies the
+     file name, DESCR adds description to file. There is no compression
+     used.
+
+ -- Method on `mglGraph' (C++, Python): `void' WriteEPS (`const char
+          *'fname, `const char *'descr=`""')
+ -- C function: `void' mgl_write_eps (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+     Exports current frame to EPS file. The vector representation is
+     used if possible. So it is not recommended for the export of large
+     data plot. It is better to use bitmap format (for example PNG or
+     JPEG). However, program has no internal limitations for size of
+     output file. Parameter FNAME specifies the file name, DESCR adds
+     description to file. By default there is no description added. If
+     file name is terminated by `z' (for example, `fname.eps.gz') then
+     file will be compressed in gzip format.
+
+ -- Method on `mglGraph' (C++, Python): `void' WriteSVG (`const char
+          *'fname, `const char *'descr=`""')
+ -- C function: `void' mgl_write_svg (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+     Exports current frame to SVG (Scalable Vector Graphics) file. The
+     vector representation is used. In difference of EPS format, SVG
+     format support transparency that allows to correctly draw
+     half-transparent plot (like SurfA(), Surf3A(), CloudQ() or
+     CloudP()). Note, the output file may be too large for graphic of
+     large data array (especially for surfaces). It is better to use
+     bitmap format (for example PNG or JPEG). However, program has no
+     internal limitations for size of output file. Parameter FNAME
+     specifies the file name, DESCR adds description to file (default
+     is file name). If file name is terminated by `z' (for example,
+     `fname.svgz') then file will be compressed in gzip format.
+
+ -- Method on `mglGraph' (C++, Python): `void' WriteIDTF (`const char
+          *'fname, `const char *'descr=`""')
+ -- C function: `void' mgl_write_idtf (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+     Exports current frame to IDTF file. Later this file can be
+     converted to U3D format. The vector representation is used. So,
+     the output file may be too large for graphic of large data array
+     (especially for surfaces). However, program has no internal
+     limitations for size of output file. Parameter FNAME specifies the
+     file name, DESCR adds description to file (default is file name).
+
+ -- Method on `mglGraph' (C++, Python): `void' ShowImage (`const char
+          *'viewer=`"kuickshow"', `bool' nowait=`false')
+ -- C function: `void' mgl_show_image (`const char *'viewer, `int'
+          nowait)
+     Displays the current picture using external program VIEWER for
+     viewing. The function save the picture to temporary file and call
+     VIEWER to display it. If NOWAIT=`true' then the function return
+     immediately (it will not wait while window will be closed).
+
+ -- Method on `mglGraph' (C++, Python): `void' SetSize (`int' width,
+          `int' height)
+ -- C function: `void' mgl_set_size (`HMGL' gr, `int' width, `int'
+          height)
+     Sets size of picture in pixels. This function *must be* called
+     before any other plotting because it completely remove picture
+     contents.
+
+ -- Method on `mglGraph' (C++, Python): `void' Flush ()
+ -- C function: `void' mgl_flush (`HMGL' gr)
+     Flushes the plotting commands to frame. This function may be
+     useful if one wants to remove array before the finishing of the
+     plot (i.e. before calling `Finish()'). Also call of this function
+     separate the objects in mglGraphIDTF. Most of plots call this
+     function internally.
+
+ -- Method on `mglGraph' (C++): `void' Finish ()
+     Finishes plotting and create a picture. Normally this function is
+     called internally.
+
+
+File: mathgl_en.info,  Node: Primitives drawing,  Next: Text printing,  Prev: Export to file,  Up: MathGL core
+
+3.5 Primitives drawing
+======================
+
+These functions draw some simple objects like line, point, sphere,
+drop, cone and so on.
+
+ -- Method on `mglGraph' (C++, Python): `void' Clf (`mglColor'
+          Back=`WC')
+ -- C function: `void' mgl_clf (`HMGL' gr)
+ -- C function: `void' mgl_clf_rgb (`HMGL' gr, `float' r, `float' g,
+          `float' b)
+     Clear the picture and fill it by color BACK.
+
+ -- Method on `mglGraph' (C++): `void' Ball (`float' x, `float' y,
+          `float' z, `mglColor' col=`RC', `float' alpha=`1')
+ -- Method on `mglGraph' (C++): `void' Ball (`mglPoint' p, `char'
+          col=`'r'')
+ -- Method on `mglGraph' (Python): `void' Ball (`float' x, `float' y,
+          `float' z, `char' col=`'r'')
+ -- C function: `void' mgl_ball (`HMGL' gr, `float' x, `float' y,
+          `float' z)
+ -- C function: `void' mgl_ball_rgb (`HMGL' gr, `float' x, `float' y,
+          `float' z, `float' r, `float' g, `float' b, `float' alpha)
+ -- C function: `void' mgl_ball_str (`HMGL' gr, `float' x, `float' y,
+          `float' z, `char' col)
+     Draws a point (ball) at position P={X, Y, Z} with color COL.
+
+ -- Method on `mglGraph' (C++): `void' Error (`mglPoint' p, `mglPoint'
+          e, `char' *pen=`""')
+     Draws a 3d error box at position P with sizes E and style PEN.
+
+ -- Method on `mglGraph' (C++): `void' Line (`mglPoint' p1, `mglPoint'
+          p2, `char *'stl=`"B"', `int'num=`2')
+ -- Method on `mglGraph' (Python): `void' Line (`float' x1, `float' y1,
+          `float' z1, `float' x2, `float' y2, `float' z2, `char
+          *'stl=`"B"', `int'num=`2')
+ -- C function: `void' mgl_line (`HMGL' gr, `float' x1, `float' y1,
+          `float' z1, `float' x2, `float' y2, `float' z2, `char *'stl,
+          `int'num)
+     Draws a geodesic line (straight line in Cartesian coordinates)
+     from point P1 to P2 using line style STL. Parameter NUM define the
+     "quality" of the line. If NUM=`2' then the stright line will be
+     drawn in all coordinate system (independently on transformation
+     formulas (*note Curved coordinates::). Contrary, for large values
+     (for example, =`100') the geodesic line will be drawn in
+     corresponding coordinate system (straight line in Cartesian
+     coordinates, circle in polar coordinates and so on). Line will be
+     drawn even if it lies out of bounding box.
+
+ -- Method on `mglGraph' (C++): `void' Curve (`mglPoint' p1, `mglPoint'
+          d1, `mglPoint' p2, `mglPoint' d2, `const char *'stl=`"B"',
+          `int' num=`100')
+ -- Method on `mglGraph' (Python): `void' Curve (`float' x1, `float'
+          y1, `float' z1, `float' dx1, `float' dy1, `float' dz1,
+          `float' x2, `float' y2, `float' z2, `float' dx2, `float' dy2,
+          `float' dz2, `const char *'stl=`"B"', `int' num=`100')
+ -- C function: `void' mgl_curve (`HMGL' gr, `float' x1, `float' y1,
+          `float' z1, `float' dx1, `float' dy1, `float' dz1, `float'
+          x2, `float' y2, `float' z2, `float' dx2, `float' dy2, `float'
+          dz2, `const char *'stl, `int' num)
+     Draws Bezier-like curve from point P1 to P2 using line style STL.
+     At this tangent is codirected with D1, D2 and proportional to its
+     amplitude. Parameter NUM define the "quality" of the curve. If
+     NUM=`2' then the straight line will be drawn in all coordinate
+     system (independently on transformation formulas *note Curved
+     coordinates::). Contrary, for large values (for example, =`100')
+     the spline like Bezier curve will be drawn in corresponding
+     coordinate system. Curve will be drawn even if it lies out of
+     bounding box.
+
+ -- Method on `mglGraph' (C++): `void' Face (`mglPoint' p1, `mglPoint'
+          p2, `mglPoint' p3, `mglPoint' p4, `const char *'stl=`"w"',
+          `int' num=`2', `float' val=`NAN')
+     Draws the solid quadrangle (face) with vertexes P1, P2, P3, P4 and
+     with color(s) STL. At this colors can be the same for all vertexes
+     or different if all 4 colors are specified for each vertex. In
+     first case parameter VAL (if not `NAN') set the color according
+     color scheme. Face will be drawn even if it lies out of bounding
+     box.
+
+ -- Method on `mglGraph' (C++, Python): `void' FaceX (`float' x0,
+          `float' y0, `float' z0, `float' wy, `float' wz, `const char
+          *'stl=`"w"', `float' dx=`0', `float' dy=`0')
+ -- Method on `mglGraph' (C++, Python): `void' FaceY (`float' x0,
+          `float' y0, `float' z0, `float' wx, `float' wz, `const char
+          *'stl=`"w"', `float' dx=`0', `float' dy=`0')
+ -- Method on `mglGraph' (C++, Python): `void' FaceZ (`float' x0,
+          `float' y0, `float' z0, `float' wx, `float' wy, `const char
+          *'stl=`"w"', `float' dx=`0', `float' dy=`0')
+ -- C function: `void' mgl_facex (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `float' wy, `float' wz, `const char *'stl,
+          `float' d1, `float' d2)
+ -- C function: `void' mgl_facey (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `float' wx, `float' wz, `const char *'stl,
+          `float' d1, `float' d2)
+ -- C function: `void' mgl_facez (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `float' wx, `float' wy, `const char *'stl,
+          `float' d1, `float' d2)
+     Draws the solid rectangle (face) perpendicular to [x,y,z]-axis
+     correspondingly at position {X0, Y0, Z0} with color STL and with
+     widths WX, WY, WZ along corresponding directions. At this colors
+     can be the same for all vertexes or separately if all 4 colors are
+     specified for each vertex. Parameters D1!=0, D2!=0 set additional
+     shift of the last vertex (i.e. to draw quadrangle).
+
+ -- Method on `mglGraph' (C++): `void' Sphere (`mglPoint' p, `float' r,
+          `const char *'stl=`"r"')
+ -- Method on `mglGraph' (Python): `void' Sphere (`float' x0, `float'
+          y0, `float' z0, `float' r, `const char *'stl=`"r"')
+ -- C function: `void' mgl_sphere (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `float' r, `const char *'stl)
+     Draw the sphere with radius R and center at point P={X, Y, Z} and
+     color STL.
+
+ -- Method on `mglGraph' (C++): `void' Drop (`mglPoint' p, `mglPoint'
+          q, `float' r, `mglColor' col, `float' shift=`1', `float'
+          ap=`1')
+ -- Method on `mglGraph' (C++): `void' Drop (`mglPoint' p, `mglPoint'
+          q, `float' r, `const char *'col="r", `float' shift=`1',
+          `float' ap=`1')
+ -- Method on `mglGraph' (Python): `void' Drop (`float' x0, `float' y0,
+          `float' z0, `float' dx, `float' dy, `float' dz, `float' r,
+          `const char *'col="r", `float' shift=`1', `float' ap=`1')
+ -- C function: `void' mgl_drop (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `float' dx, `float' dy, `float' dz, `float' r,
+          `const char *'col, `float' shift, `float' ap)
+     Draw the drop with radius R at point P elongated in direction Q
+     and with color COL. Parameter SHIFT set the degree of drop
+     oblongness: `0' is sphere, `1' is maximally oblongness drop.
+     Parameter AP set relative width of the drop (this is analogue of
+     "ellipticity" for the sphere). *Note Drops sample::, for sample
+     code and picture.
+
+ -- Method on `mglGraph' (C++): `void' Cone (`mglPoint' p1, `mglPoint'
+          p2, `float' r1, `float' r2=`-1', `const char *'stl=`"B"',
+          `bool' edge=`false')
+ -- Method on `mglGraph' (Python): `void' Cone (`float' x1, `float' y1,
+          `float' z1, `float' x2, `float' y2, `float' z2, `float' r1,
+          `float' r2=`-1', `const char *'stl=`"B"', `bool' edge=`false')
+ -- C function: `void' mgl_cone (`HMGL' gr, `float' x1, `float' y1,
+          `float' z1, `float' x2, `float' y2, `float' z2, `float' r1,
+          `float' r2, `const char *'stl, `int' draw_edge)
+     Draw tube (or truncated cone if EDGE=`false') between points P1,
+     P2 with radius at the edges R1, R2. If R2<0 then it is supposed
+     that R2=R1. The cone color is defined by string STL.
+
+ -- Method on `mglGraph' (C++): `void' Mark (`mglPoint' p, `char'
+          mark=`'.'')
+ -- Method on `mglGraph' (Python): `void' Mark (`float' x, `float' y,
+          `float' z, `char' mark=`'.'')
+ -- C function: `void' mgl_mark (`HMGL' gr, `float' x, `float' y,
+          `float' z, `char' mark)
+     Draws a marks of different type at position P.
+
+ -- Method on `mglGraph' (C++): `void' Glyph (`float' x, `float' y,
+          `float' f, `int' nt, `const short *'trig, `int' nl, `const
+          short *'line)
+     Draw a set of triangles (or lines if TRIG=`NULL') for glyph which
+     is placed at point {X, Y}. Values in the arrays are normalized by
+     factor F. Normally this function is used internally.
+
+
+File: mathgl_en.info,  Node: Text printing,  Next: Axis and Colorbar,  Prev: Primitives drawing,  Up: MathGL core
+
+3.6 Text printing
+=================
+
+These functions draw the text. There are functions for drawing text in
+arbitrary place, in arbitrary direction and along arbitrary curve. The
+class mglFont (*note mglFont class::) is used for low-level string
+parsing and printing. It can use arbitrary font-faces and parse many
+TeX commands (for detail *note Font styles::). All these functions have
+2 variant: for printing 8-bit text (`char *') and for printing Unicode
+text (`wchar_t *'). In first case the conversion in current locale is
+used. So sometimes you need to specify it by `setlocale()' function.
+The size argument control the size of text: if positive it give the
+value, if negative it give the value relative to FONTSIZE. The font
+type (STIX, arial, courier, times and so on) can be selected by
+function SetFont(), GetFont(). *Note Font settings::.
+
+   The font parameters are described by string. This string may contain
+several characters of font type (`rbiwou') and/or align (`LRC')
+specification. Also it may contain the text color `wkrgbcymhRGBCYMHW'
+(*note Line styles::) after symbol `:'. The font types are: `r' - roman
+font, `i' - italic style, `b' - bold style, `w' - wired style, `o' -
+over-lined text, `u' - underlined text. By default roman font is used.
+The align types are: `L' - align left (default), `C' - align center,
+`R' - align right. For example, string `iC:b' correspond to italic font
+style for centered text which printed by blue color.
+
+   If string contains symbols `aA' then text is printed at arbitrary
+position {X, Y} (supposed to be in range [0,1]) of subplot (for `a') or
+picture (for `A').
+
+ -- Method on `mglGraph' (C++): `void' Puts (`mglPoint' p, `const char
+          *'text, `const char *'font=`""', `float' size=`-1', `char'
+          dir=`0', `float' shift=`0')
+ -- Method on `mglGraph' (C++): `void' Putsw (`mglPoint' p, `const
+          wchar_t *'text, `const char *'font=`""', `float' size=`-1',
+          `char' dir=`0', `float' shift=`0')
+ -- Method on `mglGraph' (Python): `void' Puts (`float' x, `float' y,
+          `float' z, `const char *'text, `const char *'font=`""',
+          `float' size=`-1', `char' dir=`0')
+ -- C function: `void' mgl_puts (`HMGL' gr, `float' x, `float' y,
+          `float' z, `const char *'text)
+ -- C function: `void' mgl_putsw (`HMGL' gr, `float' x, `float' y,
+          `float' z, `const wchar_t *'text)
+ -- C function: `void' mgl_puts_ext (`HMGL' gr, `float' x, `float' y,
+          `float' z, `const char *'text, `const char *'font, `float'
+          size, `char' dir)
+ -- C function: `void' mgl_putsw_ext (`HMGL' gr, `float' x, `float' y,
+          `float' z, `const wchar_t *'text, `const char *'font, `float'
+          size, `char' dir)
+     The function plots the string TEXT at position P with fonts
+     specifying by the criteria HOW. The size of font is set by SIZE
+     parameter (default is FONTSIZE). Parameter DIR specifies the
+     additional string align. The aligns are: `x' - align as x-label,
+     `y' - align as y-label, `z' - align as z-label, `i' - align as
+     x-label but inverse writing direction, `t' - no align (default),
+     `n' - align in x-y plane.
+
+ -- Method on `mglGraph' (C++): `float' Puts (`mglPoint' p, `mglPoint'
+          l, `const char *'text, `char'where=`'t'', `float' size=`-1')
+ -- Method on `mglGraph' (C++): `float' Putsw (`mglPoint' p, `mglPoint'
+          l, `const wchar_t *'text, `char'where=`'t'', `float'
+          size=`-1')
+ -- Method on `mglGraph' (Python): `void' Puts (`float' x, `float' y,
+          `float' z, `float' dx, `float' dy, `float' dz, `const char
+          *'text, `char'where=`'t'', `float' size=`-1')
+ -- C function: `void' mgl_puts_dir (`HMGL' gr, `float' x, `float' y,
+          `float' z, `float' dx, `float' dy, `float' dz, `const char
+          *'text, `float' size)
+ -- C function: `void' mgl_putsw_dir (`HMGL' gr, `float' x, `float' y,
+          `float' z, `float' dx, `float' dy, `float' dz, `const wchar_t
+          *'text, `float' size)
+     The function plots the string TEXT at position P along direction L
+     with specified SIZE. Parameter WHERE set to print text above the
+     line (`T') or under the line (`t'). Function return the width of
+     the string.
+
+ -- Method on `mglGraph' (C++): `void' Text (`mglPoint' p, `const char
+          *'text, `const char *'font=`""', `float' size=`-1', `char'
+          dir=`0')
+ -- Method on `mglGraph' (C++): `void' Text (`mglPoint' p, `const
+          wchar_t *'text, `const char *'font=`""', `float' size=`-1',
+          `char' dir=`0')
+     The function plots the string TEXT at position P with fonts HOW.
+     These functions are obsolete - use Puts(), Putsw() functions
+     instead.
+
+ -- Method on `mglGraph' (C++): `void' Printf (`mglPoint' p, `const
+          char *'arg, ...)
+     Print formatted string at point P.
+
+ -- Method on `mglGraph' (C++): `void' Label (`float' x, `float' y,
+          `const char *'text, `const char *'font=`""', `float'
+          size=`-1')
+ -- Method on `mglGraph' (C++): `void' Labelw (`float' x, `float' y,
+          `const wchar_t *'text, `const char *'font=`""', `float'
+          size=`-1')
+ -- C function: `void' mgl_label_xy (`HMGL' gr, `float' x, `float' y,
+          `const char *'text, `const char *'font, `float' size)
+ -- C function: `void' mgl_labelw_xy (`HMGL' gr, `float' x, `float' y,
+          `const wchar_t *'text, `const char *'font, `float' size)
+     The function draws the string TEXT at position {X, Y} with fonts
+     specifying by FONT. The size of font is set by SIZE parameter
+     (default is FONTSIZE). Coordiantes `x, y' are supposed to be in
+     range [0,1].
+
+ -- Method on `mglGraph' (C++): `void' Title (`const char *'text,
+          `const char *'font=`0', `float' size=`-2')
+ -- Method on `mglGraph' (C++): `void' Title (`const wchar_t *'text,
+          `const char *'font=`0', `float' size=`-2')
+ -- Method on `mglGraph' (Python): `void' Title (`const char *'text,
+          `const char *'font=`0', `int' size=`-2')
+ -- C function: `void' mgl_title (`HMGL' gr, `const char *'text, `const
+          char *'font, `int' size)
+ -- C function: `void' mgl_titlew (`HMGL' gr, `const wchar_t *'text,
+          `const char *'font, `int' size)
+     Print string TEXT as title of the picture (at the top of the
+     picture). Can be used at any place (even inside SubPlot()).
+
+ -- Method on `mglGraph' (C++, Python): `void' Text (`const mglData
+          &'y, `const char *'text, `const char *'font=`""', float
+          size=`-1')
+ -- Method on `mglGraph' (C++): `void' Text (`const mglData &'y, `const
+          wchar_t *'text, `const char *'font=`""', float size=`-1')
+ -- Method on `mglGraph' (C++, Python): `void' Text (`const mglData
+          &'x, `const mglData &'y, `const char *'text, `const char
+          *'font=`""', float size=`-1')
+ -- Method on `mglGraph' (C++): `void' Text (`const mglData &'x, `const
+          mglData &'y, `const wchar_t *'text, `const char *'font=`""',
+          float size=`-1')
+ -- Method on `mglGraph' (C++, Python): `void' Text (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'text, `const char *'font=`""', float size=`-1')
+ -- Method on `mglGraph' (C++): `void' Text (`const mglData &'x, `const
+          mglData &'y, `const mglData &'z, `const wchar_t *'text,
+          `const char *'font=`""', float size=`-1')
+ -- C function: `void' mgl_text_y (`HMGL' gr, `const HMDT' y, `const
+          char *'text, `const char *'font, float size)
+ -- C function: `void' mgl_text_xy (`const HMDT' x, `const HMDT' y,
+          `const char *'text, `const char *'font, float size)
+ -- C function: `void' mgl_text_xyz (`const HMDT' x, `const HMDT' y,
+          `const HMDT' z, `const char *'text, `const char *'font, float
+          size)
+     The function draws TEXT along the curve between points {X[i],
+     Y[i], Z[i]} by font style FONT and with size SIZE. The string FONT
+     may contain symbols `t' for printing the text under the curve
+     (default), or `T' for printing the text above the curve. The sizes
+     of 1st dimension must be equal for all arrays `x.nx=y.nx=z.nx'. If
+     array X is not specified then its an automatic array is used with
+     values equidistantly distributed in interval [MIN.x, MAX.x] (*note
+     Ranges (bounding box)::). If array Z is not specified then Z[i] =
+     ZVAL is used. *Note Text sample::, for sample code and picture.
+
+
+File: mathgl_en.info,  Node: Axis and Colorbar,  Next: Legend,  Prev: Text printing,  Up: MathGL core
+
+3.7 Axis and Colorbar
+=====================
+
+These functions draw the "things for measuring", like axis with ticks,
+colorbar with ticks, grid along axis, bounding box and labels for axis.
+For more information *note Axis settings::.
+
+ -- Method on `mglGraph' (C++, Python): `void' Axis (`const char
+          *'dir=`"xyz"', `bool' adjust=`false')
+ -- C function: `void' mgl_axis (`HMGL' gr, `const char *'dir)
+     Draws axes with ticks (*note Axis settings::) in directions
+     determined by string parameter DIR.If string contain the symbol
+     `_' then tick labels are not printed. Font for ticks labels is
+     determined by FONTDEF (*note Font settings::). Ticks will be
+     adjusted if ADJUST=`true' (by call of `AdjustTicks()'). You may
+     specified an arrow at the end of axis (see *note Line styles::)
+
+ -- Method on `mglGraph' (C++, Python): `void' Colorbar (`const char
+          *'sch=`""', `int' where=`0')
+ -- C function: `void' mgl_colorbar (`HMGL' gr, `const char *'sch,
+          `int' where)
+     Draws colorbar with color scheme SCH (current scheme if `sch=""')
+     at edge of plot. Parameter WHERE specifies the position of the
+     colorbar: `0' - at right (default), `1' - at left, `2' - at top,
+     `3' - at bottom. If string SCH contains `<>^_' then the parameter
+     POS is defined as: `pos=0' for `>' (right), `pos=1' for `<'
+     (left), `pos=2' for `^' (top), `pos=3' for `_' (bottom). If string
+     have `A' then absolute (relative to picture) coordinates is used.
+     *Note Dens sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Colorbar (`const mglData
+          &'v, `const char *'sch=`""', `int' where=`0')
+ -- C function: `void' mgl_colorbar_val (`HMGL' gr, `const HMDT' v,
+          `const char *'sch, `int' where)
+     The same as previous but with sharp colors SCH (current palette if
+     `sch=""') for values V. *Note ContD sample::, for sample code and
+     picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Colorbar (`const char
+          *'sch, `int' where, `float' x, `float' y, `float' w, `float'
+          h)
+ -- Method on `mglGraph' (C++, Python): `void' Colorbar (`int' where,
+          `float' x, `float' y, `float' w, `float' h)
+ -- C function: `void' mgl_colorbar_ext (`HMGL' gr, `const char *'sch,
+          `int' where, `float' x, `float' y, `float' w, `float' h)
+     The same as first one but at arbitrary position of subplot {X, Y}
+     (supposed to be in range [0,1]). Parameters W, H set the relative
+     width and height of the colorbar.
+
+ -- Method on `mglGraph' (C++): `void' Colorbar (`const mglData &'v,
+          `const char *'sch, `int' where, `float' x, `float' y, `float'
+          w, `float' h)
+     The same as previous but with sharp colors SCH (current palette if
+     `sch=""') for values V. *Note ContD sample::, for sample code and
+     picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Grid (`const char
+          *'dir=`"xyz"', `const char *'pen=`"B-"')
+ -- C function: `void' mgl_axis_grid (`HMGL' gr, `const char *'dir,
+          `const char *'pen)
+     Draws grid lines perpendicular to direction determined by string
+     parameter DIR. The step of grid lines is the same as tick step for
+     an Axis(). The style of lines is determined by PEN parameter
+     (default value is dark blue solid line `B-').
+
+ -- Method on `mglGraph' (C++, Python): `void' Box (`const char
+          *'col=`""', `bool' ticks=`true')
+ -- Method on `mglGraph' (C++): `void' Box (`mglColor' col, `bool'
+          ticks=`true')
+ -- C function: `void' mgl_box (`HMGL' gr, `int' ticks)
+ -- C function: `void' mgl_box_rgb (`HMGL' gr, `float' r, `float' g,
+          `float' b, `int' ticks)
+ -- C function: `void' mgl_box_str (`HMGL' gr, `const char *'col, `int'
+          ticks)
+     Draws bounding box outside the plotting volume with color COL.
+
+ -- Method on `mglGraph' (C++, Python): `void' Label (`char' dir,
+          `const char *'text, `float' pos=`0', `float' size=`-1.4',
+          `float' shift=`0')
+ -- Method on `mglGraph' (C++): `void' Label (`char' dir, `const
+          wchar_t *'text, `float' pos=`0', `float' size=`-1.4', `float'
+          shift=`0')
+ -- C function: `void' mgl_label (`HMGL' gr, `char' dir, `const char
+          *'text)
+ -- C function: `void' mgl_label_ext (`HMGL' gr, `char' dir, `const
+          char *'text, `float' pos, `float' size, `float' shift)
+ -- C function: `void' mgl_labelw_ext (`HMGL' gr, `char' dir, `const
+          wchar_t *'text, `float' pos, `float' size, `float' shift)
+     Prints the label TEXT for axis DIR=`x',`y',`z',`t' (here `t' is
+     "ternary" axis t=1-x-y). The position of label is determined by
+     POS parameter. If POS=0 then label is printed at the center of
+     axis. If POS>0 then label is printed at the maximum of axis. If
+     POS<0 then label is printed at the minimum of axis. Parameter SIZE
+     determines the font size for the label. By default the font size
+     is 1.4 times larger than the one for ticks FONTSIZE (*note Font
+     settings::). *Note Text printing::.
+
+
+File: mathgl_en.info,  Node: Legend,  Next: 1D plotting,  Prev: Axis and Colorbar,  Up: MathGL core
+
+3.8 Legend
+==========
+
+These functions draw legend to the graph (useful for *note 1D
+plotting::). Legend entry is a pair of strings: one for style of the
+line, another one with description text (with included TeX parsing).
+The arrays of strings may be used directly or by accumulating first to
+the internal arrays (by function AddLegend()) and further plotting it.
+The position of the legend can be selected automatic or manually.
+Parameters FONT and SIZE specify the font style and size (*note Font
+settings::). Parameter LLEN set the relative width of the line sample
+and the text indent. If line style string for entry is empty then the
+corresponding text is printed without indent. If string FONT contains
+symbol `A' then legend coordinates set position in the picture (not in
+the current subplot). *Note Legend sample::, for sample code and
+picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Legend (`int'
+          where=`0x3', `const char *'font=`"rL"', `float' size=`-0.8',
+          `float' llen=`0.1')
+ -- C function: `void' mgl_legend (`HMGL' gr, `int' where, `const char
+          *'font, `float' size, `float' llen)
+     Draws legend of accumulated legend entries by font FONT with SIZE.
+     Parameter WHERE sets the position of the legend: `0' is bottom
+     left corner, `1' is bottom right corner, `2' is top left corner,
+     `3' is top right corner (is default).
+
+ -- Method on `mglGraph' (C++): `void' Legend (`int' n, `wchar_t
+          **'text, `char **'style, `int' where=`0x3', `const char
+          *'font=`"rL"', `float' size=`-0.8', `float' llen=`0.1')
+     Draws legend with N-th elements of string array TEXT by font FONT
+     with SIZE. Entry strings TEXT describe curves with line style
+     STYLE (including marks). Parameter WHERE sets the position of the
+     legend: `0' is bottom left corner, `1' is bottom right corner, `2'
+     is top left corner, `3' is top right corner (is default).
+
+ -- Method on `mglGraph' (C++, Python): `void' Legend (`float' x,
+          `float' y, `const char *'font=`"rL"', `float' size=`-0.8',
+          `float' llen=`0.1')
+ -- C function: `void' mgl_legend_xy (`HMGL' gr, `float' x, `float' y,
+          `const char *'font, `float' size, `float' llen)
+     Draws legend of accumulated legend entries by font FONT with SIZE.
+     Position of legend is determined by parameter X, Y which supposed
+     to be normalized to interval [0,1].
+
+ -- Method on `mglGraph' (C++): `void' Legend (`int' n, `wchar_t
+          **'text, `char **'style, `float' x, `float' y, `const char
+          *'font=`"rL"', `float' size=`-0.8', `float' llen=`0.1')
+     Draws legend with N-th elements of string array TEXT by font FONT
+     with SIZE. Entry strings TEXT describe curves with line style
+     STYLE (including marks). Position of legend is determined by
+     parameter X, Y which supposed to be normalized to interval [0,1].
+
+ -- Method on `mglGraph' (C++, Python): `void' AddLegend (`const char
+          *'text, `const char *'style)
+ -- Method on `mglGraph' (C++): `void' AddLegend (`const wchar_t
+          *'text, `const char *'style)
+ -- C function: `void' mgl_add_legend (`HMGL' gr, `const char *'text,
+          `const char *'style)
+ -- C function: `void' mgl_add_legendw (`HMGL' gr, `const wchar_t
+          *'text, `const char *'style)
+     Adds string TEXT to internal legend accumulator. The style of
+     described line and mark is specified in string STYLE (*note Line
+     styles::). Maximal number of entries is 100.
+
+ -- Method on `mglGraph' (C++, Python): `void' ClearLegend ()
+ -- C function: `void' mgl_clear_legend (`HMGL' gr)
+     Clears saved legend strings.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetLegendBox (`bool'
+          enable)
+ -- C function: `void' mgl_set_legend_box (`HMGL' gr, `int' enable)
+     Switch on/off drawing box near legend. By default (=`true') box is
+     drawn.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetLegendMarks (`int'
+          num)
+ -- C function: `void' mgl_set_legend_marks (`HMGL' gr, `int' num)
+     Set the number of marks in the legend. By default 1 mark is used.
+
+ -- _Obsolete option_ of mglGraph: `bool' LegendBox
+     Switch on/off drawing box near legend. See `SetLegendBox()'.
+
+
+File: mathgl_en.info,  Node: 1D plotting,  Next: 2D plotting,  Prev: Legend,  Up: MathGL core
+
+3.9 1D plotting
+===============
+
+These functions perform plotting of 1D data. 1D means that data
+depended from only 1 parameter like parametric curve {x(i),y(i),z(i)},
+i=1...n. There are 5 generally different types of data representations:
+simple line plot (Plot), line plot with filling under it (Area), stairs
+plot (Step), bar plot (Bars, Barh) and vertical lines (Stem). Each type
+of plotting has similar interface. There are 3D version and two 2D
+versions. One of last requires single array. The parameters of line and
+marks are specified by the string argument. If the string parameter is
+"" then solid line with color from palette Pal is used (*note Palette
+and colors::). Also there are some special 1d plots having slightly
+different interface: surface of curve rotation (Torus), chart (Chart)
+and error boxes (Error), marks with variable size (Mark), tubes (Tube)
+and so on. *Note Line styles::. *Note 1D plot sample::, for sample code
+and picture.
+
+* Menu:
+
+* Plot::
+* Radar::
+* Tens::
+* Area::
+* Region::
+* Stem::
+* Bars::
+* Barh::
+* Chart::
+* Step::
+* Torus::
+* Tube::
+* Mark::
+* TextMark::
+* Error::
+* BoxPlot::
+
+
+File: mathgl_en.info,  Node: Plot,  Next: Radar,  Up: 1D plotting
+
+3.9.1 Plot
+----------
+
+These functions draw continuous lines between points. The plots are
+drawn for each row if one of the data is the matrix. By any case the
+sizes of 1st dimension *must be equal* for all arrays `x.nx=y.nx=z.nx'.
+String PEN specifies the color and style of line and marks (*note Line
+styles::). By default (`pen=""') solid line with color from palette is
+used (*note Palette and colors::). See also *note Area::, *note Step::,
+*note Stem::, *note Tube::, *note Mark::, *note Error::, *note Belt::,
+*note Tens::. *Note Plot sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Plot (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'pen=`""')
+ -- C function: `void' mgl_plot_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'pen)
+     The function draws continuous lines between points {X[i], Y[i],
+     Z[i]} in 3D space.
+
+ -- Method on `mglGraph' (C++, Python): `void' Plot (`const mglData
+          &'x, `const mglData &'y, `const char *'pen=`""')
+ -- C function: `void' mgl_plot_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const char *'pen)
+     The function draws continuous lines between points {X[i], Y[i]} in
+     plane Z=ZVAL (default in plane Z=MIN.Z).
+
+ -- Method on `mglGraph' (C++, Python): `void' Plot (`const mglData
+          &'y, `const char *'pen=`""')
+ -- C function: `void' mgl_plot (`HMGL' gr, `const HMDT' y, `const char
+          *'pen)
+     The function draws continuous lines between points {X[i], Y[i]} in
+     plane Z=ZVAL (default in plane Z=MIN.Z), where X[i] values are
+     equidistantly distributed in interval [MIN.x, MAX.x].
+
+
+File: mathgl_en.info,  Node: Radar,  Next: Tens,  Prev: Plot,  Up: 1D plotting
+
+3.9.2 Radar
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Radar (`const mglData
+          &'a, `const char *'pen=`""', `float' r=`-1')
+ -- C function: `void' mgl_radar (`HMGL' gr, `const HMDT' a, `const
+          char *'pen, `float' r)
+     This functions draws radar chart which is continuous lines between
+     points located on an radial lines (like plot in Polar
+     coordinates). The plots are drawn for each row if one of the data
+     is the matrix. Parameter R set the additional shift of data (i.e.
+     the data A+R is used instead of A). If `r<0' then `r=max(0,
+     -min(a)'. String PEN specifies the color and style of line and
+     marks (*note Line styles::). By default (`pen=""') solid line with
+     color from palette is used (*note Palette and colors::). If PEN
+     containt `#' symbol then "grid" (radial lines and circle for R) is
+     drawn See also *note Plot::. *Note Radar sample::, for sample code
+     and picture.
+
+
+File: mathgl_en.info,  Node: Tens,  Next: Area,  Prev: Radar,  Up: 1D plotting
+
+3.9.3 Tens
+----------
+
+These functions draw continuous lines between points with color defined
+by the special array (look like tension plot). The plots are drawn for
+each row if one of the data is the matrix. By any case the sizes of 1st
+dimension *must be equal* for all arrays `x.nx=y.nx=z.nx'. String PEN
+specifies the color scheme (*note Color scheme::) and style and/or
+width of line (*note Line styles::). By default (`pen=""') solid line
+with current color scheme is used. See also *note Plot::, *note Mesh::,
+*note Fall::. *Note Tens sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Tens (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'c, `const char *'pen=`""')
+ -- C function: `void' mgl_tens_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' c, `const char *'pen)
+     The function draws continuous lines between points {X[i], Y[i],
+     Z[i]} in 3D space with color defined by C[i].
+
+ -- Method on `mglGraph' (C++, Python): `void' Tens (`const mglData
+          &'x, `const mglData &'y, `const mglData &'c, `const char
+          *'pen=`""')
+ -- C function: `void' mgl_tens_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' c, `const char *'pen)
+     The function draws continuous lines between points {X[i], Y[i]} in
+     plane Z=ZVAL (default in plane Z=MIN.Z) with color defined by C[i].
+
+ -- Method on `mglGraph' (C++, Python): `void' Tens (`const mglData
+          &'y, `const mglData &'c, `const char *'pen=`""')
+ -- C function: `void' mgl_tens (`HMGL' gr, `const HMDT' y, `const
+          HMDT' c, `const char *'pen)
+     The function draws continuous lines between points {X[i], Y[i]} in
+     plane Z=ZVAL (default in plane Z=MIN.Z) with color defined by
+     C[i], where X[i] values are equidistantly distributed in interval
+     [MIN.x, MAX.x].
+
+
+File: mathgl_en.info,  Node: Area,  Next: Region,  Prev: Tens,  Up: 1D plotting
+
+3.9.4 Area
+----------
+
+These functions draw continuous lines between points and fills it to
+axis plane. The plots are drawn for each row if one of the data is the
+matrix. By any case the sizes of 1st dimension *must be equal* for all
+arrays `x.nx=y.nx=z.nx'. String PEN specifies the color and style of
+line and marks (*note Line styles::). By default (`pen=""') solid line
+with color from palette is used (*note Palette and colors::). Also you
+can use gradient filling if number of specified colors is equal to
+2*number of curves. If string contain symbol `a' then lines are drawn
+one above another (like summation) - you can reach the same effect if
+call `y.CumSum("y");' before plot. See also *note Plot::, *note Bars::,
+*note Stem::. *Note Area sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Area (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'pen=`""')
+ -- C function: `void' mgl_area_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'pen)
+     The function draws continuous lines between points {X[i], Y[i],
+     Z[i]} in 3D space and fills it down to Z = Org.z.
+
+ -- Method on `mglGraph' (C++, Python): `void' Area (`const mglData
+          &'x, `const mglData &'y, `const char *'pen=`""')
+ -- C function: `void' mgl_area_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const char *'pen)
+     The function draws continuous lines between points {X[i], Y[i]} in
+     plane Z=ZVAL (default in plane Z=MIN.Z) and fills it down to Y =
+     Org.y.
+
+ -- Method on `mglGraph' (C++, Python): `void' Area (`const mglData
+          &'y, `const char *'pen=`""')
+ -- C function: `void' mgl_area (`HMGL' gr, `const HMDT' y, `const char
+          *'pen)
+     The function draws continuous lines between points {X[i], Y[i]} in
+     plane Z=ZVAL (default in plane Z=MIN.Z) and fills it down to Y =
+     Org.y, where X[i] values are equidistantly distributed in interval
+     [MIN.x, MAX.x].
+
+
+File: mathgl_en.info,  Node: Region,  Next: Stem,  Prev: Area,  Up: 1D plotting
+
+3.9.5 Region
+------------
+
+These functions fill area between 2 curves. The plots are drawn for
+each row if one of the data is the matrix. By any case the sizes of 1st
+dimension *must be equal* for all arrays `x.nx=y1.nx=y2.nx' and all
+dimensions of arrays Y1 and Y2 must be equal too. String PEN specifies
+the color (*note Line styles::). By default (`pen=""') color from
+palette is used (*note Palette and colors::). Also you can use gradient
+filling if number of specified colors is equal to 2*number of curves.
+See also *note Area::, *note Bars::, *note Stem::. *Note Region
+sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Region (`const mglData
+          &'x, `const mglData &'y1, `const mglData &'y2, `const char
+          *'pen=`""', `float' zVal=`NAN', `bool' inside=`true')
+ -- C function: `void' mgl_region_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y1, `const HMDT' y2, `const char *'pen, `int' inside)
+     The function fills area between curves {X[i], Y1[i]} and {X[i],
+     Y2[i]} at z=ZVAL. Parameter `inside=false' set to fill are with
+     y1<y<y2 else the area with y2<y<y1 will be also filled.
+
+ -- Method on `mglGraph' (C++, Python): `void' Region (`const mglData
+          &'y1, `const mglData &'y2, `const char *'pen=`""', `float'
+          zVal=`NAN', `bool' inside=`true')
+ -- C function: `void' mgl_region (`HMGL' gr, `const HMDT' y1, `const
+          HMDT' y2, `const char *'pen, `int' inside)
+     The function fills area between curves {X[i], Y1[i]} and {X[i],
+     Y2[i]}, where X[i] values are equidistantly distributed in
+     interval [MIN.x, MAX.x] at z=ZVAL.
+
+
+File: mathgl_en.info,  Node: Stem,  Next: Bars,  Prev: Region,  Up: 1D plotting
+
+3.9.6 Stem
+----------
+
+These functions draw vertical lines from points to axis plane. The
+plots are drawn for each row if one of the data is the matrix. By any
+case the sizes of 1st dimension *must be equal* for all arrays
+`x.nx=y.nx=z.nx'. String PEN specifies the color and style of line and
+marks (*note Line styles::). By default (`pen=""') solid line with
+color from palette is used (*note Palette and colors::). See also *note
+Area::, *note Bars::, *note Plot::, *note Mark::. *Note Stem sample::,
+for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Stem (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'pen=`""')
+ -- C function: `void' mgl_stem_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'pen)
+     The function draws vertical lines from points {X[i], Y[i], Z[i]}
+     down to Z = Org.z.
+
+ -- Method on `mglGraph' (C++, Python): `void' Stem (`const mglData
+          &'x, `const mglData &'y, `const char *'pen=`""')
+ -- C function: `void' mgl_stem_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const char *'pen)
+     The function draws vertical lines from points {X[i], Y[i]} down to
+     Y = Org.y in plane Z=ZVAL (default in plane Z=MIN.Z).
+
+ -- Method on `mglGraph' (C++, Python): `void' Stem (`const mglData
+          &'y, `const char *'pen=`""')
+ -- C function: `void' mgl_stem (`HMGL' gr, `const HMDT' y, `const char
+          *'pen)
+     The function draws vertical lines from points {X[i], Y[i]} down to
+     Y = Org.y in plane Z=ZVAL (default in plane Z=MIN.Z), where X[i]
+     values are equidistantly distributed in interval [MIN.x, MAX.x].
+
+
+File: mathgl_en.info,  Node: Bars,  Next: Barh,  Prev: Stem,  Up: 1D plotting
+
+3.9.7 Bars
+----------
+
+These functions draw vertical bars from points to axis plane. The plots
+are drawn for each row if one of the data is the matrix. By any case
+the sizes of 1st dimension *must be equal* for all arrays
+`x.nx=y.nx=z.nx'. String PEN specifies the color and style of line and
+marks (*note Line styles::). By default (`pen=""') solid line with
+color from palette is used (*note Palette and colors::). If string
+contain symbol `a' then lines are drawn one above another (like
+summation). If string contain symbol `f' then waterfall chart is drawn
+for determining the cumulative effect of sequentially introduced
+positive or negative values. You can different colors for positive and
+negative values if number of specified colors is equal to 2*number of
+curves. See also *note Barh::, *note Area::, *note Stem::, *note
+Chart::, *note Default sizes::. *Note Bars sample::, for sample code
+and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Bars (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'pen=`""')
+ -- C function: `void' mgl_bars_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'pen)
+     The function draws vertical bars from points {X[i], Y[i], Z[i]}
+     down to Z = Org.z.
+
+ -- Method on `mglGraph' (C++, Python): `void' Bars (`const mglData
+          &'x, `const mglData &'y, `const char *'pen=`""')
+ -- C function: `void' mgl_bars_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const char *'pen)
+     The function draws vertical bars from points {X[i], Y[i]} down to
+     Y = Org.y in plane Z=ZVAL (default in plane Z=MIN.Z).
+
+ -- Method on `mglGraph' (C++, Python): `void' Bars (`const mglData
+          &'y, `const char *'pen=`""')
+ -- C function: `void' mgl_bars (`HMGL' gr, `const HMDT' y, `const char
+          *'pen)
+     The function draws vertical bars from points {X[i], Y[i]} down to
+     Y = Org.y in plane Z=ZVAL (default in plane Z=MIN.Z), where X[i]
+     values are equidistantly distributed in interval [MIN.x, MAX.x].
+
+
+File: mathgl_en.info,  Node: Barh,  Next: Chart,  Prev: Bars,  Up: 1D plotting
+
+3.9.8 Barh
+----------
+
+These functions draw horizontal bars from points to axis plane. The
+plots are drawn for each row if one of the data is the matrix. By any
+case the sizes of 1st dimension *must be equal* for all arrays
+`x.nx=y.nx=z.nx'. String PEN specifies the color and style of line and
+marks (*note Line styles::). By default (`pen=""') solid line with
+color from palette is used (*note Palette and colors::). If string
+contain symbol `a' then lines are drawn one above another (like
+summation). See also *note Barh::, *note Default sizes::. *Note Barh
+sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Barh (`const mglData
+          &'y, `const mglData &'v, `const char *'pen=`""')
+ -- C function: `void' mgl_barh_xy (`HMGL' gr, `const HMDT' y, `const
+          HMDT' v, `const char *'pen)
+     The function draws horizontal bars from points {V[i], Y[i]} down
+     to X = Org.x in plane Z=ZVAL (default in plane Z=MIN.Z).
+
+ -- Method on `mglGraph' (C++, Python): `void' Barh (`const mglData
+          &'v, `const char *'pen=`""')
+ -- C function: `void' mgl_barh (`HMGL' gr, `const HMDT' v, `const char
+          *'pen)
+     The function draws horizontal bars from points {V[i], Y[i]} down
+     to X = Org.x in plane Z=ZVAL (default in plane Z=MIN.Z), where
+     Y[i] values are equidistantly distributed in interval [MIN.y,
+     MAX.y].
+
+
+File: mathgl_en.info,  Node: Chart,  Next: Step,  Prev: Barh,  Up: 1D plotting
+
+3.9.9 Chart
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Chart (`const mglData
+          &'a, `const char *'col=`""')
+ -- C function: `void' mgl_chart (`HMGL' gr, `const HMDT' a, `const
+          char *'col)
+     The function draws colored stripes (boxes) for data in array A.
+     The number of stripes is equal to the number of rows in A (equal
+     to A.NY). The color of each next stripe is cyclically changed from
+     colors specified in string COL or in palette Pal (*note Palette
+     and colors::). Spaces in colors denote transparent "color", i.e.
+     if COL contain space(s) then corresponding stripe(s) are not
+     drawn. The stripe width is proportional to value of element in A.
+     Chart is plotted only for data with non-negative elements. If
+     string COL have symbol `#' then black border lines are drawn. The
+     most nice form the chart have in 3d (after rotation of
+     coordinates) or in cylindrical coordinates (becomes so called Pie
+     chart). *Note Chart sample::, for sample code and picture.
+
+
+File: mathgl_en.info,  Node: Step,  Next: Torus,  Prev: Chart,  Up: 1D plotting
+
+3.9.10 Step
+-----------
+
+These functions draw continuous stairs for points to axis plane. The
+plots are drawn for each row if one of the data is the matrix. By any
+case the sizes of 1st dimension *must be equal* for all arrays
+`x.nx=y.nx=z.nx'. String PEN specifies the color and style of line and
+marks (*note Line styles::). By default (`pen=""') solid line with
+color from palette is used (*note Palette and colors::). See also *note
+Plot::, *note Stem::, *note Tile::, *note Boxs::. *Note Step sample::,
+for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Step (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'pen=`""')
+ -- C function: `void' mgl_step_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'pen)
+     The function draws continuous stairs for points {X[i], Y[i], Z[i]}.
+
+ -- Method on `mglGraph' (C++, Python): `void' Step (`const mglData
+          &'x, `const mglData &'y, `const char *'pen=`""')
+ -- C function: `void' mgl_step_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const char *'pen)
+     The function draws continuous stairs for points {X[i], Y[i]} in
+     plane Z=ZVAL (default in plane Z=MIN.Z).
+
+ -- Method on `mglGraph' (C++, Python): `void' Step (`const mglData
+          &'y, `const char *'pen=`""')
+ -- C function: `void' mgl_step (`HMGL' gr, `const HMDT' y, `const char
+          *'pen)
+     The function draws continuous stairs for points {X[i], Y[i]} in
+     plane Z=ZVAL (default in plane Z=MIN.Z), where X[i] values are
+     equidistantly distributed in interval [MIN.x, MAX.x].
+
+
+File: mathgl_en.info,  Node: Torus,  Next: Tube,  Prev: Step,  Up: 1D plotting
+
+3.9.11 Torus
+------------
+
+These functions draw surface which is result of curve {R, Z} rotation
+around AXIALDIR axis (*note Other settings::). The sizes of 1st
+dimension *must be equal* for all arrays R.NX=Z.NX. String PEN
+specifies the color (*note Line styles::). By default (`pen=""') color
+from palette is used (*note Palette and colors::). See also *note
+Plot::, *note Axial::. *Note Torus sample::, for sample code and
+picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Torus (`const mglData
+          &'r, `const mglData &'z, `const char *'pen=`""')
+ -- C function: `void' mgl_torus (`HMGL' gr, `const HMDT' r, `const
+          HMDT' z, `const char *'pen)
+     The function draws surface which is result of curve {R[i], Z[i]}
+     rotation.
+
+ -- Method on `mglGraph' (C++): `void' Torus (`const mglData &'z,
+          `const char *'pen=`""')
+     The function draws surface which is result of curve {R[i], Z[i]}
+     rotation, where R[i] values are equidistantly distributed in
+     interval [MIN.x, MAX.x].
+
+
+File: mathgl_en.info,  Node: Tube,  Next: Mark,  Prev: Torus,  Up: 1D plotting
+
+3.9.12 Tube
+-----------
+
+These functions draw the tube with variable radius R[i] along the curve
+between points {X[i], Y[i], Z[i]}. The plots are drawn for each row if
+one of the data is the matrix. By any case the sizes of 1st dimension
+*must be equal* for all arrays `x.nx=y.nx=z.nx=r.nx'. String PEN
+specifies the color and style of line and marks (*note Line styles::).
+By default (`pen=""') solid line with color from palette is used (*note
+Palette and colors::). See also *note Plot::. *Note Tube sample::, for
+sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Tube (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'r, `const char *'pen=`""')
+ -- Method on `mglGraph' (C++, Python): `void' Tube (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `float' r,
+          `const char *'pen=`""')
+ -- C function: `void' mgl_tube_xyzr (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' r, `const char *'pen)
+ -- C function: `void' mgl_tube_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `float' r, `const char *'pen)
+     The function draws tube with radius R between points {X[i], Y[i],
+     Z[i]} in 3D space.
+
+ -- Method on `mglGraph' (C++, Python): `void' Tube (`const mglData
+          &'x, `const mglData &'y, `const mglData &'r, `const char
+          *'pen=`""')
+ -- Method on `mglGraph' (C++, Python): `void' Tube (`const mglData
+          &'x, `const mglData &'y, `float' r, `const char *'pen=`""')
+ -- C function: `void' mgl_tube_xyr (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' r, `const char *'pen)
+ -- C function: `void' mgl_tube_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `float' r, `const char *'pen)
+     The function draws tube with radius R between points {X[i], Y[i]}
+     in plane Z=ZVAL (default in plane Z=MIN.Z).
+
+ -- Method on `mglGraph' (C++, Python): `void' Tube (`const mglData
+          &'y, `const mglData &'r, `const char *'pen=`""')
+ -- Method on `mglGraph' (C++, Python): `void' Tube (`const mglData
+          &'y, `float' r, `const char *'pen=`""')
+ -- C function: `void' mgl_tube_r (`HMGL' gr, `const HMDT' y, `const
+          HMDT' r, `const char *'pen)
+ -- C function: `void' mgl_tube (`HMGL' gr, `const HMDT' y, `float' r,
+          `const char *'pen)
+     The function draws tube with radius R between points {X[i], Y[i]}
+     in plane Z=ZVAL (default in plane Z=MIN.Z), where X[i] values are
+     equidistantly distributed in interval [MIN.x, MAX.x].
+
+
+File: mathgl_en.info,  Node: Mark,  Next: TextMark,  Prev: Tube,  Up: 1D plotting
+
+3.9.13 Mark
+-----------
+
+These functions draw marks with size R*MARKSIZE (*note Default sizes::)
+at points {X[i], Y[i], Z[i]}. The plots are drawn for each row if one
+of the data is the matrix. By any case the sizes of 1st dimension *must
+be equal* for all arrays `x.nx=y.nx=z.nx=r.nx'. String PEN specifies
+the color and style of line and marks (*note Line styles::). By default
+(`pen=""') solid line with color from palette is used (*note Palette
+and colors::). If you need to draw markers of the same size then you
+may use *note Plot:: function. See also *note Plot::, *note TextMark::,
+*note Stem::, *note Error::. *Note Mark sample::, for sample code and
+picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Mark (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'r, `const char *'pen=`""')
+ -- C function: `void' mgl_mark_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' r, `const char *'pen)
+     The function draws marks for points {X[i], Y[i], Z[i]} in 3D space.
+
+ -- Method on `mglGraph' (C++, Python): `void' Mark (`const mglData
+          &'x, `const mglData &'y, `const mglData &'r, `const char
+          *'pen=`""')
+ -- C function: `void' mgl_mark_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' r, `const char *'pen)
+     The function draws marks for points {X[i], Y[i]} in plane Z=ZVAL
+     (default in plane Z=MIN.Z).
+
+ -- Method on `mglGraph' (C++, Python): `void' Mark (`const mglData
+          &'y, `const mglData &'r, `const char *'pen=`""')
+ -- C function: `void' mgl_mark_y (`HMGL' gr, `const HMDT' y, `const
+          HMDT' r, `const char *'pen)
+     The function draws marks for points {X[i], Y[i]} in plane Z=ZVAL
+     (default in plane Z=MIN.Z), where X[i] values are equidistantly
+     distributed in interval [MIN.x, MAX.x].
+
+
+File: mathgl_en.info,  Node: TextMark,  Next: Error,  Prev: Mark,  Up: 1D plotting
+
+3.9.14 TextMark
+---------------
+
+These functions draw string TEXT as marks with size proportional to
+R*MARKSIZE (*note Default sizes::) at points {X[i], Y[i], Z[i]}. The
+plots are drawn for each row if one of the data is the matrix. By any
+case the sizes of 1st dimension *must be equal* for all arrays
+`x.nx=y.nx=z.nx=r.nx'. String PEN specifies the color and style of line
+and marks (*note Line styles::). By default (`pen=""') solid line with
+color from palette is used (*note Palette and colors::). See also *note
+Plot::, *note Mark::, *note Stem::. *Note TextMark sample::, for sample
+code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' TextMark (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'r, `const char *'text, `const char *'fnt=`""')
+ -- Method on `mglGraph' (C++): `void' TextMark (`const mglData &'x,
+          `const mglData &'y, `const mglData &'z, `const mglData &'r,
+          `const wchar_t *'text, `const char *'fnt=`""')
+ -- C function: `void' mgl_textmarkw_xyzr (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' r, `const
+          wchar_t *'text, `const char *'fnt)
+ -- C function: `void' mgl_textmark_xyzr (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' r, `const char
+          *'text, `const char *'fnt)
+     The function draws textual marks for points {X[i], Y[i], Z[i]} in
+     3D space.
+
+ -- Method on `mglGraph' (C++, Python): `void' TextMark (`const mglData
+          &'x, `const mglData &'y, `const mglData &'r, `const char
+          *'text, `const char *'fnt=`""')
+ -- Method on `mglGraph' (C++): `void' TextMark (`const mglData &'x,
+          `const mglData &'y, `const mglData &'r, `const wchar_t
+          *'text, `const char *'fnt=`""')
+ -- C function: `void' mgl_textmarkw_xyr (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' r, `const wchar_t *'text, `const
+          char *'fnt)
+ -- C function: `void' mgl_textmark_xyr (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' r, `const char *'text, `const
+          char *'fnt)
+     The function draws textual marks for points {X[i], Y[i]} in plane
+     Z=ZVAL (default in plane Z=MIN.Z).
+
+ -- Method on `mglGraph' (C++, Python): `void' TextMark (`const mglData
+          &'y, `const mglData &'r, `const char *'text, `const char
+          *'fnt=`""')
+ -- Method on `mglGraph' (C++): `void' TextMark (`const mglData &'y,
+          `const mglData &'r, `const wchar_t *'text, `const char
+          *'fnt=`""')
+ -- C function: `void' mgl_textmarkw_yr (`HMGL' gr, `const HMDT' y,
+          `const HMDT' r, `const wchar_t *'text, `const char *'fnt)
+ -- C function: `void' mgl_textmark_yr (`HMGL' gr, `const HMDT' y,
+          `const HMDT' r, `const char *'text, `const char *'fnt)
+     The function draws textual marks for points {X[i], Y[i]} in plane
+     Z=ZVAL (default in plane Z=MIN.Z), where X[i] values are
+     equidistantly distributed in interval [MIN.x, MAX.x].
+
+ -- Method on `mglGraph' (C++, Python): `void' TextMark (`const mglData
+          &'y, `const char *'text, `const char *'fnt=`""')
+ -- Method on `mglGraph' (C++): `void' TextMark (`const mglData &'y,
+          `const wchar_t *'text, `const char *'fnt=`""')
+ -- C function: `void' mgl_textmarkw (`HMGL' gr, `const HMDT' y, `const
+          wchar_t *'text, `const char *'fnt)
+ -- C function: `void' mgl_textmark (`HMGL' gr, `const HMDT' y, `const
+          char *'text, `const char *'fnt)
+     The function draws textual marks for points {X[i], Y[i]} in plane
+     Z=ZVAL (default in plane Z=MIN.Z), where X[i] values are
+     equidistantly distributed in interval [MIN.x, MAX.x]. The mark
+     sizes R[i]=1 for all points.
+
+
+File: mathgl_en.info,  Node: Error,  Next: BoxPlot,  Prev: TextMark,  Up: 1D plotting
+
+3.9.15 Error
+------------
+
+These functions draw error boxes at points {X[i], Y[i]} on plane Z =
+ZVAL (by default Z=MIN.Z). This can be useful, for example, in
+experimental points, or to show numeric error or some estimations and
+so on. The plots are drawn for each row if one of the data is the
+matrix. By any case the sizes of 1st dimension *must be equal* for all
+arrays `x.nx=y.nx=z.nx=r.nx'. String PEN specifies the color and style
+of line and marks (*note Line styles::). By default (`pen=""') solid
+line with color from palette is used (*note Palette and colors::). See
+also *note Plot::. *Note Error sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Error (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ex, `const mglData
+          &'ey, `const char *'pen=`""')
+ -- C function: `void' mgl_error_exy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ex, `const HMDT' ey, `const char *'pen)
+     Draws a error box {EX, EY} in point position {X, Y}.
+
+ -- Method on `mglGraph' (C++, Python): `void' Error (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ey, `const char
+          *'pen=`""')
+ -- C function: `void' mgl_error_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ey, `const char *'pen)
+     Draws a error box EY (along only one direction) in point position
+     {X, Y}.
+
+ -- Method on `mglGraph' (C++, Python): `void' Error (`const mglData
+          &'y, `const mglData &'ey, `const char *'pen=`""')
+ -- C function: `void' mgl_error (`HMGL' gr, `const HMDT' y, `const
+          HMDT' ey, `const char *'pen)
+     Draws a error box EY (along only one direction) in point position
+     {X, Y}, where X[i] values are equidistantly distributed in
+     interval [MIN.x, MAX.x].
+
+
+File: mathgl_en.info,  Node: BoxPlot,  Prev: Error,  Up: 1D plotting
+
+3.9.16 BoxPlot
+--------------
+
+These functions draw boxplot (also known as a box-and-whisker diagram)
+at points X[i] on plane Z = ZVAL (by default Z=MIN.Z). This is
+five-number summaries of data A[i,j] (minimum, lower quartile (Q1),
+median (Q2), upper quartile (Q3) and maximum) along second (j-th)
+direction. The sizes of 1st dimension *must be equal* for all arrays
+`x.nx=a.nx'. String PEN specifies the color and style of line (*note
+Line styles::). By default (`pen=""') solid line with color from
+palette is used (*note Palette and colors::). See also *note Plot::,
+*note Error::, *note Bars::, *note Default sizes::. *Note BoxPlot
+sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' BoxPlot (`const mglData
+          &'x, `const mglData &'a, `const char *'pen=`""')
+ -- C function: `void' mgl_boxplot_xy (`HMGL' gr, `const HMDT' x,
+          `const HMDT' a, `const char *'pen)
+     Draws a boxplot with specified values of coordinate X[i].
+
+ -- Method on `mglGraph' (C++, Python): `void' BoxPlot (`const mglData
+          &'a, `const char *'pen=`""')
+ -- C function: `void' mgl_boxplot (`HMGL' gr, `const HMDT' a, `const
+          char *'pen)
+     Draws a boxplot with X[i] values equidistantly distributed in
+     interval [MIN.x, MAX.x].
+
+
+File: mathgl_en.info,  Node: 2D plotting,  Next: 3D plotting,  Prev: 1D plotting,  Up: MathGL core
+
+3.10 2D plotting
+================
+
+These functions perform plotting of 2D data. 2D means that data depend
+from 2 independent parameters like matrix f(x_i,y_j), i=1...n, j=1...m.
+There are several generally different types of data representations:
+simple mesh lines plot (Mesh), surface plot (Surf), surface plot by
+boxes (Boxs), surface plot by tiles (Tile), waterfall-like plot (Fall),
+belt plot (Belt), density plot (Dens), contour lines plot (Cont), solid
+contours plot (ContF) and its rotational figure (Axial). Cont, ContF
+and Axial functions have variants for automatic and manual selection of
+level values for contours. Also there are functions for plotting data
+grid lines according to the data format (Grid) for enhancing density or
+contour plots. Each type of plotting has similar interface. There are 2
+kind of versions which handle the arrays of data and coordinates or
+only single data array. Parameters of color scheme are specified by the
+string argument. *Note Color scheme::. *Note 2D plot sample::, for
+sample code and picture.
+
+* Menu:
+
+* Mesh::
+* Fall::
+* Belt::
+* Surf::
+* Boxs::
+* Tile::
+* Dens::
+* Cont::
+* ContF::
+* ContD::
+* Axial::
+* Grad::
+* Grid::
+
+
+File: mathgl_en.info,  Node: Mesh,  Next: Fall,  Up: 2D plotting
+
+3.10.1 Mesh
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Mesh (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""')
+ -- C function: `void' mgl_mesh_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch)
+     The function draws mesh lines for surface specified parametrically
+     {X[i,j], Y[i,j], Z[i,j]}. String SCH sets the color scheme.
+     Previous color scheme is used by default. The minor dimensions of
+     arrays X, Y, Z should be equal `x.nx=z.nx && y.nx=z.ny' or
+     `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Arrays X and Y can be vectors
+     (not matrices as Z). Mesh lines are plotted for each z slice of
+     the data. See also *note Surf::, *note Fall::, MeshNum (*note
+     Other settings::), *note Cont::, *note Tens::. *Note Mesh
+     sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Mesh (`const mglData
+          &'z, `const char *'sch=`""')
+ -- C function: `void' mgl_mesh (`HMGL' gr, `const HMDT' z, `const char
+          *'sch)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Fall,  Next: Belt,  Prev: Mesh,  Up: 2D plotting
+
+3.10.2 Fall
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Fall (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""')
+ -- C function: `void' mgl_fall_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch)
+     The function draws fall lines for surface specified parametrically
+     {X[i,j], Y[i,j], Z[i,j]}. This plot can be used for plotting
+     several curves shifted in depth one from another. String SCH sets
+     the color scheme. Previous color scheme is used by default. If SCH
+     contain `x' then lines are drawn along x-direction else (by
+     default) lines are drawn along y-direction. The minor dimensions
+     of arrays X, Y, Z should be equal `x.nx=z.nx && y.nx=z.ny' or
+     `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Arrays X and Y can be vectors
+     (not matrices as Z). Fall lines are plotted for each z slice of
+     the data. See also *note Belt::, *note Mesh::, *note Tens::,
+     MeshNum (*note Other settings::). *Note Fall sample::, for sample
+     code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Fall (`const mglData
+          &'z, `const char *'sch=`""')
+ -- C function: `void' mgl_fall (`HMGL' gr, `const HMDT' z, `const char
+          *'sch)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Belt,  Next: Surf,  Prev: Fall,  Up: 2D plotting
+
+3.10.3 Belt
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Belt (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""')
+ -- C function: `void' mgl_belt_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch)
+     The function draws belts for surface specified parametrically
+     {X[i,j], Y[i,j], Z[i,j]}. This plot can be used as 3d
+     generalization of Plot (*note Plot::). String SCH sets the color
+     scheme. Previous color scheme is used by default. If SCH contain
+     `x' then belts are drawn along x-direction else (by default) belts
+     are drawn along y-direction. The minor dimensions of arrays X, Y,
+     Z should be equal `x.nx=z.nx && y.nx=z.ny' or `x.nx=y.nx=z.nx &&
+     x.ny=y.ny=z.ny'. Arrays X and Y can be vectors (not matrices as
+     Z). Belts are plotted for each z slice of the data. See also *note
+     Fall::, *note Surf::, *note Plot::, MeshNum (*note Other
+     settings::). *Note Belt sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Belt (`const mglData
+          &'z, `const char *'sch=`""')
+ -- C function: `void' mgl_belt (`HMGL' gr, `const HMDT' z, `const char
+          *'sch)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Surf,  Next: Boxs,  Prev: Belt,  Up: 2D plotting
+
+3.10.4 Surf
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""')
+ -- C function: `void' mgl_surf_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch)
+     The function draws surface specified parametrically {X[i,j],
+     Y[i,j], Z[i,j]}. String SCH sets the color scheme. Previous color
+     scheme is used by default. If string SCH have symbol `#' then grid
+     lines are drawn. The minor dimensions of arrays X, Y, Z should be
+     equal `x.nx=z.nx && y.nx=z.ny' or `x.nx=y.nx=z.nx &&
+     x.ny=y.ny=z.ny'. Arrays X and Y can be vectors (not matrices as
+     Z). Surface is plotted for each z slice of the data. See also
+     *note Mesh::, *note Dens::, *note Belt::, *note Tile::, *note
+     Boxs::, *note SurfC::, *note SurfA::. *Note Surf sample::, for
+     sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf (`const mglData
+          &'z, `const char *'sch=`""')
+ -- C function: `void' mgl_surf (`HMGL' gr, `const HMDT' z, `const char
+          *'sch)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Boxs,  Next: Tile,  Prev: Surf,  Up: 2D plotting
+
+3.10.5 Boxs
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Boxs (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""')
+ -- C function: `void' mgl_boxs_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch)
+     The function draws vertical boxes for surface specified
+     parametrically {X[i,j], Y[i,j], Z[i,j]}. String SCH sets the color
+     scheme. Previous color scheme is used by default. The minor
+     dimensions of arrays X, Y, Z should be equal `x.nx=z.nx &&
+     y.nx=z.ny' or `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Arrays X and Y
+     can be vectors (not matrices as Z). Surface is plotted for each z
+     slice of the data. See also *note Surf::, *note Dens::, *note
+     Tile::, *note Step::. *Note Boxs sample::, for sample code and
+     picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Boxs (`const mglData
+          &'z, `const char *'sch=`""')
+ -- C function: `void' mgl_boxs (`HMGL' gr, `const HMDT' z, `const char
+          *'sch)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Tile,  Next: Dens,  Prev: Boxs,  Up: 2D plotting
+
+3.10.6 Tile
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Tile (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""')
+ -- C function: `void' mgl_tile_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch)
+     The function draws horizontal tiles for surface specified
+     parametrically {X[i,j], Y[i,j], Z[i,j]}. Such plot can be used as
+     3d generalization of Step (*note Step::). String SCH sets the
+     color scheme. Previous color scheme is used by default. The minor
+     dimensions of arrays X, Y, Z should be equal `x.nx=z.nx &&
+     y.nx=z.ny' or `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Arrays X and Y
+     can be vectors (not matrices as Z). Surface is plotted for each z
+     slice of the data. See also *note Surf::, *note Boxs::, *note
+     Step::, *note TileS::. *Note Tile sample::, for sample code and
+     picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Tile (`const mglData
+          &'z, `const char *'sch=`""')
+ -- C function: `void' mgl_tile (`HMGL' gr, `const HMDT' z, `const char
+          *'sch)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Dens,  Next: Cont,  Prev: Tile,  Up: 2D plotting
+
+3.10.7 Dens
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Dens (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `float' zVal=`NAN')
+ -- C function: `void' mgl_dens_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `float' zVal)
+     The function draws density plot for surface specified
+     parametrically {X[i,j], Y[i,j], Z[i,j]} at Z = ZVAL. String SCH
+     sets the color scheme. Previous color scheme is used by default.
+     If string SCH have symbol `#' then grid lines are drawn. The minor
+     dimensions of arrays X, Y, Z should be equal `x.nx=z.nx &&
+     y.nx=z.ny' or `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Arrays X and Y
+     can be vectors (not matrices as Z). Surface is plotted for each z
+     slice of the data. See also *note Surf::, *note Cont::, *note
+     ContF::, *note Boxs::, *note Tile::, *note DensXYZ::. *Note Dens
+     sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Dens (`const mglData
+          &'z, `const char *'sch=`""', `float' zVal=`NAN')
+ -- C function: `void' mgl_dens (`HMGL' gr, `const HMDT' z, `const char
+          *'sch, `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Cont,  Next: ContF,  Prev: Dens,  Up: 2D plotting
+
+3.10.8 Cont
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Cont (`const mglData
+          &'v, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const char *'sch=`""', `float' zVal=`NAN')
+ -- C function: `void' mgl_cont_xy_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const char
+          *'sch, `float' zVal)
+     The function draws contour lines for surface specified
+     parametrically {X[i,j], Y[i,j], Z[i,j]} at Z = ZVAL (or for Z=V[k]
+     if `zVal==NAN'). Contours are plotted for Z[i,j]=V[k] where V[k]
+     are values of data array V. String SCH sets the color scheme.
+     Previous color scheme is used by default. If string SCH have
+     symbol `#' then grid lines are drawn. If string SCH have symbol
+     `t' or `T' then contour labels V[k] will be drawn below (or above)
+     the contours. The minor dimensions of arrays X, Y, Z should be
+     equal `x.nx=z.nx && y.nx=z.ny' or `x.nx=y.nx=z.nx &&
+     x.ny=y.ny=z.ny'. Arrays X and Y can be vectors (not matrices as
+     Z). Surface is plotted for each z slice of the data. See also
+     *note Dens::, *note ContF::, *note ContD::, *note Axial::, *note
+     ContXYZ::. *Note Cont sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Cont (`const mglData
+          &'v, `const mglData &'z, `const char *'sch=`""', `float'
+          zVal=`NAN')
+ -- C function: `void' mgl_cont__val (`HMGL' gr, `const HMDT' v, `const
+          HMDT' z, `const char *'sch, `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' Cont (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `int' num=`7', `float' zVal=`NAN')
+ -- C function: `void' mgl_cont_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `int' num,
+          `float' zVal)
+     The same as first one with vector V of NUM-th elements
+     equidistantly distributed in range [CMIN, CMAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' Cont (`const mglData
+          &'z, `const char *'sch=`""', `int' num=`7', `float'
+          zVal=`NAN')
+ -- C function: `void' mgl_cont (`HMGL' gr, `const HMDT' z, `const char
+          *'sch, `int' num, `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: ContF,  Next: ContD,  Prev: Cont,  Up: 2D plotting
+
+3.10.9 ContF
+------------
+
+ -- Method on `mglGraph' (C++, Python): `void' ContF (`const mglData
+          &'v, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const char *'sch=`""', `float' zVal=`NAN')
+ -- C function: `void' mgl_contf_xy_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const char
+          *'sch, `float' zVal)
+     The function draws solid (or filled) contour lines for surface
+     specified parametrically {X[i,j], Y[i,j], Z[i,j]} at Z = ZVAL (or
+     for Z=V[k] if `zVal==NAN'). Contours are plotted for Z[i,j]=V[k]
+     where V[k] are values of data array V (must be `v.nx>2'). String
+     SCH sets the color scheme. Previous color scheme is used by
+     default. If string SCH have symbol `#' then grid lines are drawn.
+     The minor dimensions of arrays X, Y, Z should be equal `x.nx=z.nx
+     && y.nx=z.ny' or `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Arrays X and
+     Y can be vectors (not matrices as Z). Surface is plotted for each
+     z slice of the data. See also *note Dens::, *note Cont::, *note
+     Axial::, *note ContFXYZ::. *Note ContF sample::, for sample code
+     and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContF (`const mglData
+          &'v, `const mglData &'z, `const char *'sch=`""', `float'
+          zVal=`NAN')
+ -- C function: `void' mgl_contf_val (`HMGL' gr, `const HMDT' v, `const
+          HMDT' z, `const char *'sch, `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' ContF (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `int' num=`7', `float' zVal=`NAN')
+ -- C function: `void' mgl_contf_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `int' num,
+          `float' zVal)
+     The same as first one with vector V of NUM-th elements
+     equidistantly distributed in range [CMIN, CMAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' ContF (`const mglData
+          &'z, `const char *'sch=`""', `int' num=`7', `float'
+          zVal=`NAN')
+ -- C function: `void' mgl_contf (`HMGL' gr, `const HMDT' z, `const
+          char *'sch, `int' num, `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: ContD,  Next: Axial,  Prev: ContF,  Up: 2D plotting
+
+3.10.10 ContD
+-------------
+
+ -- Method on `mglGraph' (C++, Python): `void' ContD (`const mglData
+          &'v, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const char *'sch=`""', `float' zVal=`NAN')
+ -- C function: `void' mgl_contd_xy_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const char
+          *'sch, `float' zVal)
+     The function draws solid (or filled) contour lines for surface
+     specified parametrically {X[i,j], Y[i,j], Z[i,j]} at Z = ZVAL (or
+     for Z=V[k] if `zVal==NAN') with manual colors. Contours are
+     plotted for Z[i,j]=V[k] where V[k] are values of data array V
+     (must be `v.nx>2'). String SCH sets the contour colors: the color
+     of k-th contour is determined by character `sch[k%strlen(sch)]'.
+     The minor dimensions of arrays X, Y, Z should be equal `x.nx=z.nx
+     && y.nx=z.ny' or `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Arrays X and
+     Y can be vectors (not matrices as Z). Surface is plotted for each
+     z slice of the data. See also *note Dens::, *note Cont::, *note
+     ContF::. *Note ContD sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContD (`const mglData
+          &'v, `const mglData &'z, `const char *'sch=`""', `float'
+          zVal=`NAN')
+ -- C function: `void' mgl_contd_val (`HMGL' gr, `const HMDT' v, `const
+          HMDT' z, `const char *'sch, `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' ContD (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `int' num=`7', `float' zVal=`NAN')
+ -- C function: `void' mgl_contd_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `int' num,
+          `float' zVal)
+     The same as first one with vector V of NUM-th elements
+     equidistantly distributed in range [CMIN, CMAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' ContD (`const mglData
+          &'z, `const char *'sch=`""', `int' num=`7', `float'
+          zVal=`NAN')
+ -- C function: `void' mgl_contd (`HMGL' gr, `const HMDT' z, `const
+          char *'sch, `int' num, `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Axial,  Next: Grad,  Prev: ContD,  Up: 2D plotting
+
+3.10.11 Axial
+-------------
+
+ -- Method on `mglGraph' (C++, Python): `void' Axial (`const mglData
+          &'v, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const char *'sch=`""')
+ -- C function: `void' mgl_axial_xy_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const char
+          *'sch)
+     The function draws surface which is result of contour plot
+     rotation for surface specified parametrically {X[i,j], Y[i,j],
+     Z[i,j]}. Contours are plotted for Z[i,j]=V[k] where V[k] are
+     values of data array V. String SCH sets the color scheme. Previous
+     color scheme is used by default. If string SCH have symbol `#'
+     then wire plot is produced. If string contain symbols `x', `y' or
+     `z' then rotation axis AXIALDIR (*note Other settings::) will be
+     set to specified direction. The minor dimensions of arrays X, Y, Z
+     should be equal `x.nx=z.nx && y.nx=z.ny' or `x.nx=y.nx=z.nx &&
+     x.ny=y.ny=z.ny'. Arrays X and Y can be vectors (not matrices as
+     Z). Surface is plotted for each z slice of the data. See also
+     *note Cont::, *note ContF::, *note Torus::, *note Surf3::. *Note
+     Axial sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Axial (`const mglData
+          &'v, `const mglData &'z, `const char *'sch=`""')
+ -- C function: `void' mgl_axial_val (`HMGL' gr, `const HMDT' v, `const
+          HMDT' z, `const char *'sch)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' Axial (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `int' num=`3')
+ -- C function: `void' mgl_axial_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `int' num)
+     The same as first one with vector V of NUM-th elements
+     equidistantly distributed in range [CMIN, CMAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' Axial (`const mglData
+          &'z, `const char *'sch=`""', `int' num=`3')
+ -- C function: `void' mgl_axial (`HMGL' gr, `const HMDT' z, `const
+          char *'sch, `int' num)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Grad,  Next: Grid,  Prev: Axial,  Up: 2D plotting
+
+3.10.12 Grad
+------------
+
+ -- Method on `mglGraph' (C++, Python): `void' Grad (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'phi, `const char *'sch=`""', `int' num=`5')
+ -- C function: `void' mgl_grad_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `int' num,
+          `float' zVal)
+     The function draws gradient lines for scalar field PHI[i,j,k]
+     specified parametrically {X[i,j,k], Y[i,j,k], Z[i,j,k]}. String
+     SCH sets the color scheme. Previous color scheme is used by
+     default. Number of lines is proportional to NUM. If NUM<0 then
+     lines start from borders only. The minor dimensions of arrays X,
+     Y, Z, PHI should be equal `x.nx=phi.nx && y.nx=phi.ny &&
+     z.nx=phi.nz' or `x.nx=y.nx=z.nx=phi.nx && x.ny=y.ny=z.ny=phi.ny &&
+     x.nz=y.nz=z.nz=phi.nz'. Arrays X, Y and Z can be vectors (not
+     matrices as PHI). See also *note Dens3::, *note Cont3::, *note
+     Flow::.
+
+ -- Method on `mglGraph' (C++, Python): `void' Grad (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `int' num=`5', `float' zVal=`NAN')
+ -- C function: `void' mgl_grad_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `int' num,
+          `float' zVal)
+     The function draws gradient lines for scalar field PHI[i,j]
+     specified parametrically {X[i,j], Y[i,j], PHI[i,j]} at Z = ZVAL.
+     String SCH sets the color scheme. Previous color scheme is used by
+     default. Number of lines is proportional to NUM. If NUM<0 then
+     lines start from borders only. The minor dimensions of arrays X,
+     Y, PHI should be equal `x.nx=phi.nx && y.nx=phi.ny' or
+     `x.nx=y.nx=phi.nx && x.ny=y.ny=phi.ny'. Arrays X and Y can be
+     vectors (not matrices as PHI). Lines are plotted for each z slice
+     of the data. See also *note Dens::, *note Cont::, *note ContF::,
+     *note Flow::. *Note Grad sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Grad (`const mglData
+          &'z, `const char *'sch=`""', `int' num=`5', `float'
+          zVal=`NAN')
+ -- C function: `void' mgl_grad (`HMGL' gr, `const HMDT' z, `const char
+          *'sch, `int' num, `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Grid,  Prev: Grad,  Up: 2D plotting
+
+3.10.13 Grid
+------------
+
+ -- Method on `mglGraph' (C++, Python): `void' Grid (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `float' zVal=`NAN')
+ -- C function: `void' mgl_grid_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `float' zVal)
+     The function draws grid lines for density plot of surface
+     specified parametrically {X[i,j], Y[i,j], Z[i,j]} at Z = ZVAL.
+     String SCH sets the color scheme. Previous color scheme is used by
+     default. The minor dimensions of arrays X, Y, Z should be equal
+     `x.nx=z.nx && y.nx=z.ny' or `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'.
+     Arrays X and Y can be vectors (not matrices as Z). Grid is plotted
+     for each z slice of the data. See also *note Dens::, *note Cont::,
+     *note ContF::.
+
+ -- Method on `mglGraph' (C++, Python): `void' Grid (`const mglData
+          &'z, `const char *'sch=`""', `float' zVal=`NAN')
+ -- C function: `void' mgl_grid (`HMGL' gr, `const HMDT' z, `const char
+          *'sch, `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: 3D plotting,  Next: Dual plotting,  Prev: 2D plotting,  Up: MathGL core
+
+3.11 3D plotting
+================
+
+These functions perform plotting of 3D data. 3D means that data depend
+from 3 independent parameters like matrix f(x_i,y_j,z_k), i=1...n,
+j=1...m, k=1...l. There are 5 generally different types of data
+representations: isosurface or surface of constant value (Surf3),
+density plot at slices (Dens3), contour lines plot at slices (Cont3),
+solid contours plot at slices (ContF3) and cloud-like plot (Cloud).
+Surf3, Cont3 and ContF3 functions have variants for automatic and
+manual selection of level values for surfaces/contours. Also there are
+functions for plotting data grid lines according to the data format
+(Grid3) for enhancing density or contour plots. Each type of plotting
+has similar interface. There are 2 kind of versions which handle the
+arrays of data and coordinates or only single data array. Parameters of
+color scheme are specified by the string argument. *Note Color
+scheme::. *Note 3D plot sample::, for sample code and picture.
+
+* Menu:
+
+* Surf3::
+* Dens3::
+* Cont3::
+* ContF3::
+* Grid3::
+* Cloud::
+* Beam::
+
+
+File: mathgl_en.info,  Node: Surf3,  Next: Dens3,  Up: 3D plotting
+
+3.11.1 Surf3
+------------
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf3 (`float' val,
+          `const mglData &'x, `const mglData &'y, `const mglData &'z,
+          `const mglData &'a, `const char *'stl=`""')
+ -- C function: `void' mgl_surf3_xyz_val (`HMGL' gr, `float' val,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          a, `const char *'stl)
+     The function draws isosurface plot for 3d array specified
+     parametrically A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) at
+     A(x,y,z)=VAL. String SCH sets the color scheme. Previous color
+     scheme is used by default. If string contain `#' then wire plot is
+     produced. Arrays X, Y, Z can be vectors (not 3d arrays as A).
+     Note, that there is possibility of incorrect plotting due to
+     uncertainty of cross-section defining if there are two or more
+     isosurface intersections inside one cell. See also *note Cloud::,
+     *note Dens3::, *note Surf3C::, *note Surf3A::, *note Axial::.
+     *Note Surf3 sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf3 (`float' val,
+          `const mglData &'a, `const char *'sch=`""')
+ -- C function: `void' mgl_surf3_val (`HMGL' gr, `float' val, `const
+          HMDT' a, `const char *'sch)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf3 (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const char *'stl=`""', `int' num=`3')
+ -- C function: `void' mgl_surf3_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `const char *'stl,
+          `int' num)
+     Draws NUM-th uniformly distributed in range [CMIN, CMAX]
+     isosurfaces for 3d data specified parametrically.
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf3 (`const mglData
+          &'a, `const char *'sch=`""', `int' num=`3')
+ -- C function: `void' mgl_surf3 (`HMGL' gr, `const HMDT' a, `const
+          char *'sch, `int' num)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Dens3,  Next: Cont3,  Prev: Surf3,  Up: 3D plotting
+
+3.11.2 Dens3
+------------
+
+ -- Method on `mglGraph' (C++, Python): `void' Dens3 (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `char' dir, `int' sVal=`-1', `const char *'stl=`""')
+ -- C function: `void' mgl_dens3_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `char' dir, `int'
+          sVal, `const char *'stl)
+     The function draws density plot for 3d data specified
+     parametrically A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]). Density is
+     plotted at slice SVAL in DIR={`x', `y', `z'} direction. String SCH
+     sets the color scheme. Previous color scheme is used by default.
+     If string STL have symbol `#' then grid lines are drawn. The minor
+     dimensions of arrays X, Y, Z must be equal. Arrays X, Y, Z can be
+     vectors (not 3d arrays as A). See also *note Cont3::, *note
+     ContF3::, *note Dens::, *note Grid3::. *Note Dens3 sample::, for
+     sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Dens3 (`const mglData
+          &'a, `char' dir, `int' sVal=`-1', `const char *'sch=`""')
+ -- C function: `void' mgl_dens3 (`HMGL' gr, `const HMDT' a, `char'
+          dir, `int' sVal, `const char *'sch)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' DensA (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const char *'stl=`""')
+ -- C function: `void' mgl_dens3_all_xyz (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' a, `const char
+          *'stl)
+     Draws density plots at all central slices of the 3d data specified
+     parametrically.
+
+ -- Method on `mglGraph' (C++, Python): `void' DensA (`const mglData
+          &'a, `const char *'sch=`""')
+ -- C function: `void' mgl_dens3_all (`HMGL' gr, `const HMDT' a, `const
+          char *'sch)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Cont3,  Next: ContF3,  Prev: Dens3,  Up: 3D plotting
+
+3.11.3 Cont3
+------------
+
+ -- Method on `mglGraph' (C++, Python): `void' Cont3 (`const mglData
+          &'v, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const mglData &'a, `char' dir, `int' sVal=`-1', `const
+          char *'stl=`""')
+ -- C function: `void' mgl_cont3_xyz_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          a, `char' dir, `int' sVal, `const char *'stl)
+     The function draws contour plot for 3d data specified
+     parametrically A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]). Contours
+     are plotted for values specified in array V at slice SVAL in
+     DIR={`x', `y', `z'} direction. String STL sets the color scheme.
+     Previous color scheme is used by default. If string STL have
+     symbol `#' then grid lines are drawn. If string STL have symbol
+     `t' or `T' then contour labels V[k] will be drawn below (or above)
+     the contours. The minor dimensions of arrays X, Y, Z must be
+     equal. Arrays X, Y, Z can be vectors (not 3d arrays as A). See
+     also *note Dens3::, *note ContF3::, *note Cont::, *note Grid3::.
+     *Note Cont3 sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Cont3 (`const mglData
+          &'v, `const mglData &'a, `char' dir, `int' sVal=`-1', `const
+          char *'sch=`""')
+ -- C function: `void' mgl_cont3_val (`HMGL' gr, `const HMDT' v, `const
+          HMDT' a, `char' dir, `int' sVal, `const char *'sch)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' Cont3 (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `char' dir, `int' sVal=`-1', `const char *'stl=`""',
+          `int' num=`7')
+ -- C function: `void' mgl_cont3_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `char' dir, `int'
+          sVal, `const char *'stl, `int' num)
+     The same as first one with vector V of NUM-th elements
+     equidistantly distributed in range [CMIN, CMAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' Cont3 (`const mglData
+          &'a, `char' dir, `int' sVal=`-1', `const char *'sch=`""',
+          `int' num=`7')
+ -- C function: `void' mgl_cont3 (`HMGL' gr, `const HMDT' a, `char'
+          dir, `int' sVal, `const char *'sch, `int' num)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' ContA (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const char *'stl=`""', `int' num=`7')
+ -- C function: `void' mgl_cont3_all_xyz (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' a, `const char
+          *'stl, `int' num)
+     Draws contour plots at all central slices of the 3d data specified
+     parametrically.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContA (`const mglData
+          &'a, `const char *'sch=`""', `int' num=`7')
+ -- C function: `void' mgl_cont3_all (`HMGL' gr, `const HMDT' a, `const
+          char *'sch, `int' num)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: ContF3,  Next: Grid3,  Prev: Cont3,  Up: 3D plotting
+
+3.11.4 ContF3
+-------------
+
+ -- Method on `mglGraph' (C++, Python): `void' ContF3 (`const mglData
+          &'v, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const mglData &'a, `char' dir, `int' sVal=`-1', `const
+          char *'stl=`""')
+ -- C function: `void' mgl_contf3_xyz_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          a, `char' dir, `int' sVal, `const char *'stl)
+     The function draws solid (or filled) contour plot for 3d data
+     specified parametrically A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]).
+     Contours are plotted for values specified in array V at slice SVAL
+     in DIR={`x', `y', `z'} direction. String SCH sets the color
+     scheme. Previous color scheme is used by default. If string STL
+     have symbol `#' then grid lines are drawn. The minor dimensions of
+     arrays X, Y, Z must be equal. Arrays X, Y, Z can be vectors (not
+     3d arrays as A). See also *note Dens3::, *note Cont3::, *note
+     ContF::, *note Grid3::. *Note ContF3 sample::, for sample code and
+     picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContF3 (`const mglData
+          &'v, `const mglData &'a, `char' dir, `int' sVal=`-1', `const
+          char *'sch=`""')
+ -- C function: `void' mgl_contf3_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' a, `char' dir, `int' sVal, `const char *'sch)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' ContF3 (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `char' dir, `int' sVal=`-1', `const char *'stl=`""',
+          `int' num=`7')
+ -- C function: `void' mgl_contf3_xyz (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' a, `char' dir,
+          `int' sVal, `const char *'stl, `int' num)
+     The same as first one with vector V of NUM-th elements
+     equidistantly distributed in range [CMIN, CMAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' ContF3 (`const mglData
+          &'a, `char' dir, `int' sVal=`-1', `const char *'sch=`""',
+          `int' num=`7')
+ -- C function: `void' mgl_contf3 (`HMGL' gr, `const HMDT' a, `char'
+          dir, `int' sVal, `const char *'sch, `int' num)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' ContFA (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const char *'stl=`""', `int' num=`7')
+ -- C function: `void' mgl_contf3_all_xyz (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' a, `const char
+          *'stl, `int' num)
+     Draws contour plots at all central slices of the 3d data specified
+     parametrically.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContFA (`const mglData
+          &'a, `const char *'sch=`""', `int' num=`7')
+ -- C function: `void' mgl_contf3_all (`HMGL' gr, `const HMDT' a,
+          `const char *'sch, `int' num)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Grid3,  Next: Cloud,  Prev: ContF3,  Up: 3D plotting
+
+3.11.5 Grid3
+------------
+
+ -- Method on `mglGraph' (C++, Python): `void' Grid3 (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `char' dir, `int' sVal=`-1', `const char *'stl=`""')
+ -- C function: `void' mgl_grid3_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `char' dir, `int'
+          sVal, `const char *'stl)
+     The function draws grid for 3d data specified parametrically
+     A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]). Grid is plotted at slice
+     SVAL in DIR={`x', `y', `z'} direction. String SCH sets the color
+     scheme. Previous color scheme is used by default. The minor
+     dimensions of arrays X, Y, Z must be equal. Arrays X, Y, Z can be
+     vectors (not 3d arrays as A). See also *note Cont3::, *note
+     ContF3::, *note Dens3::, *note Grid::.
+
+ -- Method on `mglGraph' (C++, Python): `void' Grid3 (`const mglData
+          &'a, `char' dir, `int' sVal=`-1', `const char *'sch=`""')
+ -- C function: `void' mgl_grid3 (`HMGL' gr, `const HMDT' a, `char'
+          dir, `int' sVal, `const char *'sch)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' GridA (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const char *'stl=`""')
+ -- C function: `void' mgl_grid3_all_xyz (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' a, `const char
+          *'stl)
+     Draws grids at all central slices of the 3d data specified
+     parametrically.
+
+ -- Method on `mglGraph' (C++, Python): `void' GridA (`const mglData
+          &'a, `const char *'sch=`""')
+ -- C function: `void' mgl_grid3_all (`HMGL' gr, `const HMDT' a, `const
+          char *'sch)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Cloud,  Next: Beam,  Prev: Grid3,  Up: 3D plotting
+
+3.11.6 Cloud
+------------
+
+ -- Method on `mglGraph' (C++, Python): `void' Cloud (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const char *'stl=`""', `float' alpha=`1')
+ -- C function: `void' mgl_cloud_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `const char *'stl,
+          `float' alpha=`1')
+     The function draws cloud plot for 3d data specified parametrically
+     A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]). This plot is a set of
+     cubes with color and transparency proportional to value of A. The
+     resulting plot is like cloud - low value is transparent but higher
+     ones are not. The number of plotting cells depend on MeshNum
+     (*note Other settings::). String SCH sets the color scheme.
+     Previous color scheme is used by default. Parameter ALPHA changes
+     the overall transparency of plot. The minor dimensions of arrays
+     X, Y, Z must be equal. Arrays X, Y, Z can be vectors (not 3d
+     arrays as A). See also *note Surf3::. *Note Cloud sample::, for
+     sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Cloud (`const mglData
+          &'a, `const char *'stl=`""', `float' alpha=`1')
+ -- C function: `void' mgl_cloud (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' alpha=`1')
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++): `void' CloudP (`const mglData &'x,
+          `const mglData &'y, `const mglData &'z, `const mglData &'a,
+          `const char *'stl=`""', `float' alpha=`1')
+ -- C function: `void' mgl_cloudp_xyz (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' a, `const char
+          *'stl, `float' alpha=`1')
+     The same as first one but the semi-transparent points are used
+     instead of cubes. *Note CloudP sample::, for sample code and
+     picture.
+
+ -- Method on `mglGraph' (C++): `void' CloudP (`const mglData &'a,
+          `const char *'stl=`""', `float' alpha=`1')
+ -- C function: `void' mgl_cloudp (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' alpha=`1')
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Beam,  Prev: Cloud,  Up: 3D plotting
+
+3.11.7 Beam
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Beam (`float' val,
+          `const mglData &'tr, `const mglData &'g1, `const mglData
+          &'g2, `const mglData &'a, `float' r, `const char *'stl=`""',
+          `int' flag=`0')
+ -- C function: `void' mgl_beam_val (`HMGL' gr, `float' val, `const
+          HMDT' tr, `const HMDT' g1, `const HMDT' g2, `const HMDT' a,
+          `float' r, `const char *'stl, `int' flag)
+     Draws the isosurface for 3d array A at constant values of A=VAL.
+     This is special kind of plot for A specified in accompanied
+     coordinates along curve TR with orts G1, G2 and with transverse
+     scale R. Variable FLAG is bitwise: `0x1' - draw in accompanied
+     (not laboratory) coordinates; `0x2' - draw projection to \rho-z
+     plane; `0x4' - draw normalized in each slice field. The x-size of
+     data arrays TR, G1, G2 must be nx>2. The y-size of data arrays TR,
+     G1, G2 and z-size of the data array A must be equal. *Note Surf3::.
+
+ -- Method on `mglGraph' (C++, Python): `void' Beam (`const mglData
+          &'tr, `const mglData &'g1, `const mglData &'g2, `const
+          mglData &'a, `float' r, `const char *'stl=`""', `int'
+          flag=`0', `int' num=`3')
+ -- C function: `void' mgl_beam (`HMGL' gr, `const HMDT' tr, `const
+          HMDT' g1, `const HMDT' g2, `const HMDT' a, `float' r, `const
+          char *'stl, `int' flag=`0', `int' num=`3')
+     Draws NUM-th uniformly distributed in range [CMIN, CMAX]
+     isosurfaces for 3d data specified parametrically.
+
+
+File: mathgl_en.info,  Node: Dual plotting,  Next: Vector fields,  Prev: 3D plotting,  Up: MathGL core
+
+3.12 Dual plotting
+==================
+
+These plotting functions draw _two matrix_ simultaneously. There are 5
+generally different types of data representations: surface or
+isosurface colored by other data (SurfC, Surf3C), surface or isosurface
+transpared by other data (SurfA, Surf3A), tiles with variable size
+(TileS), mapping diagram (Map), STFA diagram (STFA). Surf3A and Surf3C
+have variants for automatic and manual selection of level values for
+isosurfaces. Each type of plotting has similar interface. There are 2
+kind of versions which handle the arrays of data and coordinates or
+only single data array. Parameters of color scheme are specified by the
+string argument. *Note Color scheme::.
+
+* Menu:
+
+* SurfC::
+* Surf3C::
+* SurfA::
+* Surf3A::
+* TileS::
+* Map::
+* STFA::
+
+
+File: mathgl_en.info,  Node: SurfC,  Next: Surf3C,  Up: Dual plotting
+
+3.12.1 SurfC
+------------
+
+ -- Method on `mglGraph' (C++, Python): `void' SurfC (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'c, `const char *'sch=`""')
+ -- C function: `void' mgl_surfc_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' c, `const char *'sch)
+     The function draws surface specified parametrically {X[i,j],
+     Y[i,j], Z[i,j]} and color it by matrix C[i,j]. String SCH sets the
+     color scheme. Previous color scheme is used by default. If string
+     SCH have symbol `#' then grid lines are drawn. All dimensions of
+     arrays Z and C must be equal. The minor dimensions of arrays X, Y,
+     Z should be equal `x.nx=z.nx && y.nx=z.ny' or `x.nx=y.nx=z.nx &&
+     x.ny=y.ny=z.ny'. Arrays X and Y can be vectors (not matrices as
+     Z). Surface is plotted for each z slice of the data. See also
+     *note Surf::, *note SurfA::, *note Surf3C::. *Note SurfC sample::,
+     for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' SurfC (`const mglData
+          &'z, `const mglData &'c, `const char *'sch=`""')
+ -- C function: `void' mgl_surfc (`HMGL' gr, `const HMDT' z, `const
+          HMDT' c, `const char *'sch)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Surf3C,  Next: SurfA,  Prev: SurfC,  Up: Dual plotting
+
+3.12.2 Surf3C
+-------------
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf3C (`float' val,
+          `const mglData &'x, `const mglData &'y, `const mglData &'z,
+          `const mglData &'a, `const mglData &'c, `const char
+          *'stl=`""')
+ -- C function: `void' mgl_surf3c_xyz_val (`HMGL' gr, `float' val,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          a, `const HMDT' c, `const char *'stl)
+     The function draws isosurface plot for 3d array specified
+     parametrically A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) at
+     A(x,y,z)=VAL. It is mostly the same as Surf3() function but the
+     color of isosurface depends on values of array C. String SCH sets
+     the color scheme. Previous color scheme is used by default. If
+     string contain `#' then wire plot is produced. All dimensions of
+     arrays Z and C must be equal. Arrays X, Y, Z can be vectors (not
+     3d arrays as A). Note, that there is possibility of incorrect
+     plotting due to uncertainty of cross-section defining if there are
+     two or more isosurface intersections inside one cell. See also
+     *note Surf3::, *note SurfC::, *note Surf3A::. *Note Surf3C
+     sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf3C (`float' val,
+          `const mglData &'a, `const mglData &'c, `const char
+          *'sch=`""')
+ -- C function: `void' mgl_surf3c_val (`HMGL' gr, `float' val, `const
+          HMDT' a, `const HMDT' c, `const char *'sch)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf3C (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const mglData &'c, `const char *'stl=`""', `int'
+          num=`3')
+ -- C function: `void' mgl_surf3c_xyz (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' a, `const HMDT'
+          c, `const char *'stl, `int' num)
+     Draws NUM-th uniformly distributed in range [CMIN, CMAX]
+     isosurfaces for 3d data specified parametrically.
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf3C (`const mglData
+          &'a, `const mglData &'c, `const char *'sch=`""', `int'
+          num=`3')
+ -- C function: `void' mgl_surf3c (`HMGL' gr, `const HMDT' a, `const
+          HMDT' c, `const char *'sch, `int' num)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: SurfA,  Next: Surf3A,  Prev: Surf3C,  Up: Dual plotting
+
+3.12.3 SurfA
+------------
+
+ -- Method on `mglGraph' (C++, Python): `void' SurfA (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'c, `const char *'sch=`""')
+ -- C function: `void' mgl_surfa_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' c, `const char *'sch)
+     The function draws surface specified parametrically {X[i,j],
+     Y[i,j], Z[i,j]} and transparent it by matrix C[i,j]. String SCH
+     sets the color scheme. Previous color scheme is used by default.
+     If string SCH have symbol `#' then grid lines are drawn. All
+     dimensions of arrays Z and C must be equal. The minor dimensions
+     of arrays X, Y, Z should be equal `x.nx=z.nx && y.nx=z.ny' or
+     `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Arrays X and Y can be vectors
+     (not matrices as Z). Surface is plotted for each z slice of the
+     data. See also *note Surf::, *note SurfC::, *note Surf3A::, *note
+     TileS::. *Note SurfA sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' SurfA (`const mglData
+          &'z, `const mglData &'c, `const char *'sch=`""')
+ -- C function: `void' mgl_surfa (`HMGL' gr, `const HMDT' z, `const
+          HMDT' c, `const char *'sch)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Surf3A,  Next: TileS,  Prev: SurfA,  Up: Dual plotting
+
+3.12.4 Surf3A
+-------------
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf3A (`float' val,
+          `const mglData &'x, `const mglData &'y, `const mglData &'z,
+          `const mglData &'a, `const mglData &'c, `const char
+          *'stl=`""')
+ -- C function: `void' mgl_surf3a_xyz_val (`HMGL' gr, `float' val,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          a, `const HMDT' c, `const char *'stl)
+     The function draws isosurface plot for 3d array specified
+     parametrically A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) at
+     A(x,y,z)=VAL. It is mostly the same as Surf3() function but the
+     transparency of isosurface depends on values of B array. This
+     allows one to remove the part of isosurface where B is negligibly
+     small (useful for phase plotting of a beam or a pulse). String SCH
+     sets the color scheme. Previous color scheme is used by default.
+     If string contain `#' then wire plot is produced. All dimensions
+     of arrays Z and C must be equal. Arrays X, Y, Z can be vectors
+     (not 3d arrays as A). Note, that there is possibility of incorrect
+     plotting due to uncertainty of cross-section defining if there are
+     two or more isosurface intersections inside one cell. See also
+     *note Surf3::, *note SurfA::, *note Surf3C::. *Note Surf3A
+     sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf3A (`float' val,
+          `const mglData &'a, `const mglData &'c, `const char
+          *'sch=`""')
+ -- C function: `void' mgl_surf3a_val (`HMGL' gr, `float' val, `const
+          HMDT' a, `const HMDT' c, `const char *'sch)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf3A (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const mglData &'c, `const char *'stl=`""', `int'
+          num=`3')
+ -- C function: `void' mgl_surf3a_xyz (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' a, `const HMDT'
+          c, `const char *'stl, `int' num)
+     Draws NUM-th uniformly distributed in range [CMIN, CMAX]
+     isosurfaces for 3d data specified parametrically.
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf3A (`const mglData
+          &'a, `const mglData &'c, `const char *'sch=`""', `int'
+          num=`3')
+ -- C function: `void' mgl_surf3a (`HMGL' gr, `const HMDT' a, `const
+          HMDT' c, `const char *'sch, `int' num)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: TileS,  Next: Map,  Prev: Surf3A,  Up: Dual plotting
+
+3.12.5 TileS
+------------
+
+ -- Method on `mglGraph' (C++, Python): `void' TileS (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'r, `const char *'sch=`""')
+ -- C function: `void' mgl_tiles_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' r, `const char *'sch)
+     The function draws horizontal tiles for surface specified
+     parametrically {X[i,j], Y[i,j], Z[i,j]}. It is mostly the same as
+     Tile() but the size of tiles is determined by R array. This is
+     some kind of "transparency" useful for exporting to EPS files.
+     String SCH sets the color scheme. Previous color scheme is used by
+     default. The minor dimensions of arrays X, Y, Z should be equal
+     `x.nx=z.nx && y.nx=z.ny' or `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'.
+     Arrays X and Y can be vectors (not matrices as Z). Surface is
+     plotted for each z slice of the data. See also *note SurfA::,
+     *note Tile::. *Note TileS sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' TileS (`const mglData
+          &'z, `const mglData &'c, `const char *'sch=`""')
+ -- C function: `void' mgl_tiles (`HMGL' gr, `const HMDT' z, `const
+          HMDT' c, `const char *'sch)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Map,  Next: STFA,  Prev: TileS,  Up: Dual plotting
+
+3.12.6 Map
+----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Map (`const mglData &'x,
+          `const mglData &'y, `const mglData &'ax, `const mglData &'ay,
+          `const char *'sch=`""', `int' ks=`0', `bool' pnts=`true')
+ -- C function: `void' mgl_map_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ax, `const HMDT' ay, `const char *'sch,
+          `int' ks, `int' pnts)
+     The function draws mapping plot for matrices {AX, AY } which
+     parametrically depend on coordinates X, Y. The initial position of
+     the cell (point) is marked by color. Height is proportional to
+     Jacobian(ax,ay). This plot is like Arnold diagram ???. If
+     `pnts=false' then face is drawn otherwise the color ball at matrix
+     knots are drawn. Parameter KS specifies the slice of matrices
+     which will be used. String SCH sets the color scheme. Previous
+     color scheme is used by default. The size of AX and AY must be the
+     same. The minor dimensions of arrays X, Y, AX should be equal.
+     Arrays X, Y can be vectors (not matrix as AX). *Note Color
+     scheme::. *Note Map sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Map (`const mglData
+          &'ax, `const mglData &'ay, `const char *'sch=`""', `int'
+          ks=`0', `bool' pnts=`true')
+ -- C function: `void' mgl_map (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const char *'sch, `int' ks, `int' pnts)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: STFA,  Prev: Map,  Up: Dual plotting
+
+3.12.7 STFA
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' STFA (`const mglData
+          &'x, `const mglData &'y, `const mglData &'re, `const mglData
+          &'im, `int' dn, `const char *'sch=`""', `float' zVal=`NAN')
+ -- C function: `void' mgl_stfa_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' re, `const HMDT' im, `int' dn, `const
+          char *'sch, `float' zVal)
+     Draws spectrogram of complex array RE+i*`im' for Fourier size of
+     DN points at plane Z=ZVAL. Parameter DN is arbitrary even integer.
+     For example in 1D case, result is density plot of data
+     res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn with
+     size {int(nx/dn), dn, ny}. At this array RE, IM parametrically
+     depend on coordinates X, Y. String SCH sets the color scheme.
+     Previous color scheme is used by default. The size of RE and IM
+     must be the same. The minor dimensions of arrays X, Y, RE should
+     be equal. Arrays X, Y can be vectors (not matrix as RE).  *Note
+     STFA sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' STFA (`const mglData
+          &'re, `const mglData &'im, `int' dn, `const char *'sch=`""',
+          `float' zVal=`NAN')
+ -- C function: `void' mgl_stfa (`HMGL' gr, `const HMDT' re, `const
+          HMDT' im, `int' dn, `const char *'sch, `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Vector fields,  Next: Other plotting,  Prev: Dual plotting,  Up: MathGL core
+
+3.13 Vector fields
+==================
+
+These functions perform plotting of 2D and 3D vector fields. There are
+5 generally different types of vector fields representations: simple
+vector field (Vect), vectors along the curve (Traj), vector field by
+dew-drops (Dew), flow threads (Flow, FlowP), flow pipes (Pipe). Each
+type of plotting has similar interface. There are 2 kind of versions
+which handle the arrays of data and coordinates or only single data
+array. Parameters of color scheme are specified by the string argument.
+*Note Color scheme::.
+
+* Menu:
+
+* Traj::
+* Vect::
+* VectL::
+* VectC::
+* Dew::
+* Flow::
+* FlowP::
+* Pipe::
+
+
+File: mathgl_en.info,  Node: Traj,  Next: Vect,  Up: Vector fields
+
+3.13.1 Traj
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Traj (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""', `float' len=`0')
+ -- Method on `mglGraph' (C++, Python): `void' Traj (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ax, `const mglData
+          &'ay, `const char *'sch=`""', `float' zVal=`NAN', `float'
+          len=`0')
+ -- C function: `void' mgl_traj_xyz (`HMGL' gr, `const HMDT'x, `const
+          HMDT'y, `const HMDT'z, `const HMDT'ax, `const HMDT'ay, `const
+          HMDT'az, `const char *'sch, `float' len)
+ -- C function: `void' mgl_traj_xy (`HMGL' gr, `const HMDT'x, `const
+          HMDT'y, `const HMDT'ax, `const HMDT'ay, `const char *'sch,
+          `float' zVal, `float' len)
+     The function draws vectors {AX, AY, AZ} along a curve {X, Y, Z}.
+     The length of arrows are proportional to \sqrt{ax^2+ay^2+az^2}.
+     String PEN specifies the color (*note Line styles::). By default
+     (`pen=""') color from palette is used (*note Palette and
+     colors::). Parameter LEN set the vector length factor (if
+     non-zero) or vector length to be proportional the distance between
+     curve points (if LEN=0). The minor sizes of all arrays must be
+     equal and large 2. The plots are drawn for each row if one of the
+     data is the matrix. See also *note Vect::. *Note Traj sample::,
+     for sample code and picture.
+
+
+File: mathgl_en.info,  Node: Vect,  Next: VectL,  Prev: Traj,  Up: Vector fields
+
+3.13.2 Vect
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Vect (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ax, `const mglData
+          &'ay, `const char *'sch=`""', `float' zVal=`NAN', `int'
+          flag=`0')
+ -- C function: `void' mgl_vect_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ax, `const HMDT' ay, `const char *'sch,
+          `float' zVal, `int' flag)
+     The function draws plane vector field plot for the field {AX, AY}
+     depending parametrically on coordinates X, Y at level Z=ZVAL. The
+     length and color of arrows are proportional to \sqrt{ax^2+ay^2}.
+     The number of arrows depend on MESHNUM (*note Other settings::).
+     The color is specified by the string argument SCH. Previous color
+     scheme is used by default. Parameter FLAG is bitwise flag for
+     setup the hachures (arrows): `MGL_VEC_COL' for drawing bi-color
+     arrow, `MGL_VEC_LEN' for drawing fixed length arrows,
+     `MGL_VEC_DOT' for drawing hachures with dots instead of arrows,
+     `MGL_VEC_END' for drawing arrows to the cell point, `MGL_VEC_MID'
+     for drawing arrows with center at cell point. The size of AX and
+     AY must be equal. The minor dimensions of arrays X, Y and AX must
+     be equal too. Arrays X and Y can be vectors (not matrices as AX).
+     The vector field is plotted for each z slice of AX, AY. See also
+     *note VectL::, *note VectC::, *note Flow::, *note Dew::. *Note
+     Vect sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Vect (`const mglData
+          &'ax, `const mglData &'ay, `const char *'sch=`""', `float'
+          zVal=`NAN', `int' flag=`0')
+ -- C function: `void' mgl_vect_2d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const char *'sch, `float' zVal, `int' flag)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' Vect (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""', `int' flag=`0')
+ -- C function: `void' mgl_vect_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' ax, `const HMDT' ay,
+          `const HMDT' az, `const char *'sch, `int' flag)
+     This is 3D version of the first functions. Here arrays AX, AY, AZ
+     must be 3-ranged tensors with equal sizes and the length and color
+     of arrows is proportional to \sqrt{ax^2+ay^2+az^2}. *Note Vect 3D
+     sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Vect (`const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""', `int' flag=`0')
+ -- C function: `void' mgl_vect_3d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const HMDT' az, `const char *'sch, `int' flag)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: VectL,  Next: VectC,  Prev: Vect,  Up: Vector fields
+
+3.13.3 VectL
+------------
+
+These functions are obsolete - use Vect() functions instead.
+
+ -- Method on `mglGraph' (C++, Python): `void' VectL (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ax, `const mglData
+          &'ay, `const char *'sch=`""', `float' zVal=`NAN')
+ -- C function: `void' mgl_vectl_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ax, `const HMDT' ay, `const char *'sch,
+          `float' zVal)
+     The function draws plane vector field plot for the field {AX, AY}
+     depending parametrically on coordinates X, Y at level Z=ZVAL. The
+     length of hachures is proportional to \sqrt{ax^2+ay^2}. The number
+     of hachures depend on MESHNUM (*note Other settings::). Points are
+     denote the start of hachures. The color is specified by the string
+     argument SCH. Previous color scheme is used by default. The size
+     of AX and AY must be equal. The minor dimensions of arrays X, Y
+     and AX must be equal too. Arrays X and Y can be vectors (not
+     matrices as AX). The vector field is plotted for each z slice of
+     AX, AY. See also *note Vect::, *note VectC::, *note Flow::, *note
+     Dew::. *Note VectL sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' VectL (`const mglData
+          &'ax, `const mglData &'ay, `const char *'sch=`""', `float'
+          zVal=`NAN')
+ -- C function: `void' mgl_vectl_2d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const char *'sch, `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' VectL (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""')
+ -- C function: `void' mgl_vectl_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' ax, `const HMDT' ay,
+          `const HMDT' az, `const char *'sch)
+     This is 3D version of the first functions. Here arrays AX, AY, AZ
+     must be 3-ranged tensors with equal sizes and the length of
+     hachures is proportional to \sqrt{ax^2+ay^2+az^2}. *Note VectL 3D
+     sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' VectL (`const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""')
+ -- C function: `void' mgl_vectl_3d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const HMDT' az, `const char *'sch)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: VectC,  Next: Dew,  Prev: VectL,  Up: Vector fields
+
+3.13.4 VectC
+------------
+
+These functions are obsolete - use Vect() functions instead.
+
+ -- Method on `mglGraph' (C++, Python): `void' VectC (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ax, `const mglData
+          &'ay, `const char *'sch=`""', `float' zVal=`NAN')
+ -- C function: `void' mgl_vectc_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ax, `const HMDT' ay, `const char *'sch,
+          `float' zVal)
+     The function draws plane vector field plot for the field {AX, AY}
+     depending parametrically on coordinates X, Y at level Z=ZVAL. The
+     color of hachures is proportional to \sqrt{ax^2+ay^2}. The number
+     of hachures depend on MESHNUM (*note Other settings::). Points are
+     denote the start of hachures. The color is specified by the string
+     argument SCH. Previous color scheme is used by default. The size
+     of AX and AY must be equal. The minor dimensions of arrays X, Y
+     and AX must be equal too. Arrays X and Y can be vectors (not
+     matrices as AX). The vector field is plotted for each z slice of
+     AX, AY. See also *note Vect::, *note VectL::, *note Flow::, *note
+     Dew::. *Note VectC sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' VectC (`const mglData
+          &'ax, `const mglData &'ay, `const char *'sch=`""', `float'
+          zVal=`NAN')
+ -- C function: `void' mgl_vectc_2d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const char *'sch, `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' VectC (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""')
+ -- C function: `void' mgl_vectc_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' ax, `const HMDT' ay,
+          `const HMDT' az, `const char *'sch)
+     This is 3D version of the first functions. Here arrays AX, AY, AZ
+     must be 3-ranged tensors with equal sizes and the color of
+     hachures is proportional to \sqrt{ax^2+ay^2+az^2}. *Note VectC 3D
+     sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' VectC (`const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""')
+ -- C function: `void' mgl_vectc_3d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const HMDT' az, `const char *'sch)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
diff --git a/debian/tmp/usr/share/info/mathgl_en.info-2 b/debian/tmp/usr/share/info/mathgl_en.info-2
new file mode 100644
index 0000000..438c81a
--- /dev/null
+++ b/debian/tmp/usr/share/info/mathgl_en.info-2
@@ -0,0 +1,7211 @@
+This is mathgl_en.info, produced by makeinfo version 4.13 from
+mathgl_en.texi.
+
+This manual is for MathGL (version 1.11), a collection of classes and
+routines for scientific plotting. Please report any errors in this
+manual to <mathgl.abalakin at gmail.org>.
+
+   Copyright (C) 2008 Alexey Balakin.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with the Front-Cover Texts
+     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+     below.  A copy of the license is included in the section entitled
+     "GNU Free Documentation License."
+
+     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+     and modify this GNU manual.  Buying copies from the FSF supports
+     it in developing GNU and promoting software freedom."
+
+
+File: mathgl_en.info,  Node: Dew,  Next: Flow,  Prev: VectC,  Up: Vector fields
+
+3.13.5 Dew
+----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Dew (`const mglData &'x,
+          `const mglData &'y, `const mglData &'ax, `const mglData &'ay,
+          `const char *'sch=`""', `float' zVal=`NAN')
+ -- C function: `void' mgl_dew_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ax, `const HMDT' ay, `const char *'sch,
+          `float' zVal)
+     The function draws dew-drops for plane vector field {AX, AY}
+     depending parametrically on coordinates X, Y at level Z=ZVAL. Note
+     that this is very expensive plot in memory usage and creation
+     time! The color of drops is proportional to \sqrt{ax^2+ay^2}. The
+     number of drops depend on MESHNUM (*note Other settings::). The
+     color is specified by the string argument SCH. Previous color
+     scheme is used by default. The size of AX and AY must be equal.
+     The minor dimensions of arrays X, Y and AX must be equal too.
+     Arrays X and Y can be vectors (not matrices as AX). The vector
+     field is plotted for each z slice of AX, AY. See also *note
+     Vect::, *note VectC::. *Note Dew sample::, for sample code and
+     picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Dew (`const mglData
+          &'ax, `const mglData &'ay, `const char *'sch=`""', `float'
+          zVal=`NAN')
+ -- C function: `void' mgl_dew (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const char *'sch, `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Flow,  Next: FlowP,  Prev: Dew,  Up: Vector fields
+
+3.13.6 Flow
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Flow (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ax, `const mglData
+          &'ay, `const char *'sch=`""', `int' num=`5', `bool'
+          central=`true', `float' zVal=`NAN')
+ -- C function: `void' mgl_flow_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ax, `const HMDT' ay, `const char *'sch,
+          `int' num, `int' central, `float' zVal)
+     The function draws flow threads for the plane vector field {AX,
+     AY} parametrically depending on coordinates X, Y at level z =
+     ZVAL. Number of threads is proportional to NUM. Parameter CENTRAL
+     sets the thread start from center (if true) or only from edges (if
+     false). From v.1.11 it is ignored and always equal to (NUM>0). The
+     color of lines is proportional to \sqrt{ax^2+ay^2}. Warm color
+     corresponds to normal flow (like attractor). Cold one corresponds
+     to inverse flow (like source). String SCH sets the color scheme.
+     Previous color scheme is used by default. The size of AX and AY
+     must be equal. The minor dimensions of arrays X, Y and AX must be
+     equal too. Arrays X and Y can be vectors (not matrices as AX). The
+     vector field is plotted for each z slice of AX, AY. See also *note
+     Pipe::, *note VectC::, *note Vect::. *Note Flow sample::, for
+     sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Flow (`const mglData
+          &'ax, `const mglData &'ay, `const char *'sch=`""', `int'
+          num=`5', `bool' central=`true', `float' zVal=`NAN')
+ -- C function: `void' mgl_flow_2d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const char *'sch, `int' num, `int' central,
+          `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' Flow (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""', `int' num=`3', `bool' central=`true')
+ -- C function: `void' mgl_flow_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' ax, `const HMDT' ay,
+          `const HMDT' az, `const char *'sch, `int' num, `int' central)
+     This is 3D version of the first functions. Here arrays AX, AY, AZ
+     must be 3-ranged tensors with equal sizes and the color of line is
+     proportional to \sqrt{ax^2+ay^2+az^2}. *Note Flow 3D sample::, for
+     sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Flow (`const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""', `int' num=`3', `bool' central=`true')
+ -- C function: `void' mgl_flow_3d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const HMDT' az, `const char *'sch, `int' num,
+          `int' central)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: FlowP,  Next: Pipe,  Prev: Flow,  Up: Vector fields
+
+3.13.7 FlowP
+------------
+
+ -- Method on `mglGraph' (C++): `void' FlowP (`mglPoint' p0, `const
+          mglData &'x, `const mglData &'y, `const mglData &'ax, `const
+          mglData &'ay, `const char *'sch=`""')
+ -- Method on `mglGraph' (Python): `void' FlowP (`float' x0, `float'
+          y0, `float' z0, `const mglData &'x, `const mglData &'y,
+          `const mglData &'ax, `const mglData &'ay, `const char
+          *'sch=`""')
+ -- C function: `void' mgl_flowp_xy (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `const HMDT' x, `const HMDT' y, `const HMDT' ax,
+          `const HMDT' ay, `const char *'sch)
+     The function draws flow thread for the plane vector field {AX, AY}
+     parametrically depending on coordinates X, Y from point P0 at
+     level z = P0.z. The color of lines is proportional to
+     \sqrt{ax^2+ay^2}. Warm color corresponds to normal flow (like
+     attractor). Cold one corresponds to inverse flow (like source).
+     String SCH sets the color scheme. Previous color scheme is used by
+     default. The size of AX and AY must be equal. The minor dimensions
+     of arrays X, Y and AX must be equal too. Arrays X and Y can be
+     vectors (not matrices as AX). The vector field is plotted for each
+     z slice of AX, AY. See also *note Pipe::, *note VectC::, *note
+     Vect::.
+
+ -- Method on `mglGraph' (C++): `void' FlowP (`mglPoint' p0, `const
+          mglData &'ax, `const mglData &'ay, `const char *'sch=`""')
+ -- Method on `mglGraph' (Python): `void' FlowP (`float' x0, `float'
+          y0, `float' z0, `const mglData &'ax, `const mglData &'ay,
+          `const char *'sch=`""')
+ -- C function: `void' mgl_flowp_2d (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `const HMDT' ax, `const HMDT' ay, `const char
+          *'sch)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++): `void' FlowP (`mglPoint' p0, `const
+          mglData &'x, `const mglData &'y, `const mglData &'z, `const
+          mglData &'ax, `const mglData &'ay, `const mglData &'az,
+          `const char *'sch=`""')
+ -- Method on `mglGraph' (Python): `void' FlowP (`float' x0, `float'
+          y0, `float' z0, `const mglData &'x, `const mglData &'y,
+          `const mglData &'z, `const mglData &'ax, `const mglData &'ay,
+          `const mglData &'az, `const char *'sch=`""')
+ -- C function: `void' mgl_flowp_xyz (`HMGL' gr, `float' x0, `float'
+          y0, `float' z0, `const HMDT' x, `const HMDT' y, `const HMDT'
+          z, `const HMDT' ax, `const HMDT' ay, `const HMDT' az, `const
+          char *'sch)
+     This is 3D version of the first functions. Here arrays AX, AY, AZ
+     must be 3-ranged tensors with equal sizes and the color of line is
+     proportional to \sqrt{ax^2+ay^2+az^2}. *Note Flow 3D sample::, for
+     sample code and picture.
+
+ -- Method on `mglGraph' (C++): `void' FlowP (`mglPoint' p0, `const
+          mglData &'ax, `const mglData &'ay, `const mglData &'az,
+          `const char *'sch=`""')
+ -- Method on `mglGraph' (Python): `void' FlowP (`float' x0, `float'
+          y0, `float' z0, `const mglData &'ax, `const mglData &'ay,
+          `const mglData &'az, `const char *'sch=`""')
+ -- C function: `void' mgl_flowp_3d (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `const HMDT' ax, `const HMDT' ay, `const HMDT'
+          az, `const char *'sch)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Pipe,  Prev: FlowP,  Up: Vector fields
+
+3.13.8 Pipe
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Pipe (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ax, `const mglData
+          &'ay, `const char *'sch=`""', `float' r0=`0.05', `int'
+          num=`5', `bool' central=`true', `float' zVal=`NAN')
+ -- C function: `void' mgl_pipe_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ax, `const HMDT' ay, `const char *'sch,
+          `float' r0, `int' num, `int' central, `float' zVal)
+     The function draws flow pipes for the plane vector field {AX, AY}
+     parametrically depending on coordinates X, Y at level z = ZVAL.
+     Number of pipes is proportional to NUM. Parameter CENTRAL sets the
+     pipe start from center (if true) or only from edges (if false).
+     From v.1.11 it is ignored and always equal to (NUM>0). The color
+     of lines is proportional to \sqrt{ax^2+ay^2}. Warm color
+     corresponds to normal flow (like attractor). Cold one corresponds
+     to inverse flow (like source). String SCH sets the color scheme.
+     Previous color scheme is used by default. Parameter R0 set the
+     base pipe radius. If R0<0 then pipe radius is inverse proportional
+     to amplitude. The size of AX and AY must be equal. The minor
+     dimensions of arrays X, Y and AX must be equal too. Arrays X and Y
+     can be vectors (not matrices as AX). The vector field is plotted
+     for each z slice of AX, AY. See also *note Flow::, *note VectC::,
+     *note Vect::. *Note Pipe sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Pipe (`const mglData
+          &'ax, `const mglData &'ay, `const char *'sch=`""', `float'
+          r0=`0.05', `int' num=`5', `bool' central=`true', `float'
+          zVal=`NAN')
+ -- C function: `void' mgl_pipe_2d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const char *'sch, `float' r0, `int' num, `int'
+          central, `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' Pipe (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""', `float' r0=`0.05', `int' num=`3', `bool'
+          central=`true')
+ -- C function: `void' mgl_pipe_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' ax, `const HMDT' ay,
+          `const HMDT' az, `const char *'sch, `float' r0, `int' num,
+          `int' central)
+     This is 3D version of the first functions. Here arrays AX, AY, AZ
+     must be 3-ranged tensors with equal sizes and the color of line is
+     proportional to \sqrt{ax^2+ay^2+az^2}. *Note Pipe 3D sample::, for
+     sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Pipe (`const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""', `float' r0=`0.05', `int' num=`3', `bool'
+          central=`true')
+ -- C function: `void' mgl_pipe_3d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const HMDT' az, `const char *'sch, `float' r0,
+          `int' num, `int' central)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Other plotting,  Next: Nonlinear fitting,  Prev: Vector fields,  Up: MathGL core
+
+3.14 Other plotting
+===================
+
+These functions perform miscelaneous plotting. There is unstructured
+data points plots (Dots), surface reconstruction (Crust), surfaces on
+the triangular mesh (TriPlot), textual formula plotting (Plots by
+formula), data plots at edges (Dens[XYZ], Cont[XYZ], ContF[XYZ]),
+simple plot (SimplePlot). Each type of plotting has similar interface.
+There are 2 kind of versions which handle the arrays of data and
+coordinates or only single data array. Parameters of color scheme are
+specified by the string argument. *Note Color scheme::.
+
+* Menu:
+
+* DensXYZ::
+* ContXYZ::
+* ContFXYZ::
+* Dots::
+* Crust::
+* TriPlot::
+* TriCont::
+* QuadPlot::
+* Plots by formula::
+* SimplePlot::
+
+
+File: mathgl_en.info,  Node: DensXYZ,  Next: ContXYZ,  Up: Other plotting
+
+3.14.1 DensXYZ
+--------------
+
+These plotting functions draw density plot in x, y, or z plain. If A is
+a tensor (3-dimensional data) then interpolation to a given SVAL is
+performed. These functions are useful for creating projections of the
+3D data array to the bounding box. For example, code like
+     gr->DensX(c.Sum("x"),"BbcyrR",-1);
+     gr->DensY(c.Sum("y"),0,1);
+     gr->DensZ(c.Sum("z"),0,-1);
+   will produce the following picture. See also *note ContXYZ::, *note
+ContFXYZ::, *note Dens::, *note Data distributions::. *Note Dens
+projection sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' DensX (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN')
+ -- C function: `void' mgl_dens_x (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal)
+     Draws density plot for data A at x = SVAL.
+
+ -- Method on `mglGraph' (C++, Python): `void' DensY (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN')
+ -- C function: `void' mgl_dens_y (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal)
+     Draws density plot for data A at y = SVAL.
+
+ -- Method on `mglGraph' (C++, Python): `void' DensZ (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN')
+ -- C function: `void' mgl_dens_z (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal)
+     Draws density plot for data A at z = SVAL.
+
+
+File: mathgl_en.info,  Node: ContXYZ,  Next: ContFXYZ,  Prev: DensXYZ,  Up: Other plotting
+
+3.14.2 ContXYZ
+--------------
+
+These plotting functions draw contour lines in x, y, or z plain. If A
+is a tensor (3-dimensional data) then interpolation to a given SVAL is
+performed. These functions are useful for creating projections of the
+3D data array to the bounding box. For example, code like
+     gr->ContX(c.Sum("x"),"BbcyrR",-1);
+     gr->ContY(c.Sum("y"),0,1);
+     gr->ContZ(c.Sum("z"),0,-1);
+   will produce the following picture. See also *note ContFXYZ::, *note
+DensXYZ::, *note Cont::, *note Data distributions::. *Note Cont
+projection sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContX (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN', `int'
+          num=`7')
+ -- C function: `void' mgl_cont_x (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal, `int' num)
+     Draws NUM-th contour lines for data A at x = SVAL.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContY (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN', `int'
+          num=`7')
+ -- C function: `void' mgl_cont_y (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal, `int' num)
+     Draws NUM-th contour lines for data A at y = SVAL.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContZ (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN', `int'
+          num=`7')
+ -- C function: `void' mgl_cont_z (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal, `int' num)
+     Draws NUM-th contour lines for data A at z = SVAL.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContX (`const mglData
+          &'v, `const mglData &'a, `const char *'stl=`""', `float'
+          sVal=`NAN')
+ -- C function: `void' mgl_cont_x_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' a, `const char *'stl, `float' sVal)
+     Draws contour lines for data A=V[i] at x = SVAL.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContY (`const mglData
+          &'v, `const mglData &'a, `const char *'stl=`""', `float'
+          sVal=`NAN')
+ -- C function: `void' mgl_cont_y_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' a, `const char *'stl, `float' sVal)
+     Draws contour lines for data A=V[i] at y = SVAL.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContZ (`const mglData
+          &'v, `const mglData &'a, `const char *'stl=`""', `float'
+          sVal=`NAN')
+ -- C function: `void' mgl_cont_z_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' a, `const char *'stl, `float' sVal)
+     Draws contour lines for data A=V[i] at z = SVAL.
+
+
+File: mathgl_en.info,  Node: ContFXYZ,  Next: Dots,  Prev: ContXYZ,  Up: Other plotting
+
+3.14.3 ContFXYZ
+---------------
+
+These plotting functions draw solid contour lines in x, y, or z plain.
+If A is a tensor (3-dimensional data) then interpolation to a given
+SVAL is performed. These functions are useful for creating projections
+of the 3D data array to the bounding box. See also *note ContXYZ::,
+*note DensXYZ::, *note ContF::, *note Data distributions::.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContFX (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN', `int'
+          num=`7')
+ -- C function: `void' mgl_contf_x (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal, `int' num)
+     Draws NUM-th solid contours for data A at x = SVAL.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContFY (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN', `int'
+          num=`7')
+ -- C function: `void' mgl_contf_y (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal, `int' num)
+     Draws NUM-th solid contours for data A at y = SVAL.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContFZ (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN', `int'
+          num=`7')
+ -- C function: `void' mgl_contf_z (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal, `int' num)
+     Draws NUM-th solid contours for data A at z = SVAL.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContFX (`const mglData
+          &'v, `const mglData &'a, `const char *'stl=`""', `float'
+          sVal=`NAN')
+ -- C function: `void' mgl_contf_x_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' a, `const char *'stl, `float' sVal)
+     Draws solid contours for data A=V[i] at x = SVAL.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContFY (`const mglData
+          &'v, `const mglData &'a, `const char *'stl=`""', `float'
+          sVal=`NAN')
+ -- C function: `void' mgl_contf_y_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' a, `const char *'stl, `float' sVal)
+     Draws solid contours for data A=V[i] at y = SVAL.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContFZ (`const mglData
+          &'v, `const mglData &'a, `const char *'stl=`""', `float'
+          sVal=`NAN')
+ -- C function: `void' mgl_contf_z_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' a, `const char *'stl, `float' sVal)
+     Draws solid contours for data A=V[i] at z = SVAL.
+
+
+File: mathgl_en.info,  Node: Dots,  Next: Crust,  Prev: ContFXYZ,  Up: Other plotting
+
+3.14.4 Dots
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Dots (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""')
+ -- Method on `mglGraph' (C++, Python): `void' Dots (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const char *'sch=`""')
+ -- C function: `void' mgl_dots (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch)
+ -- C function: `void' mgl_dots_a (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `const char *'sch)
+     The function draws the arbitrary placed points {X[i], Y[i], Z[i]}.
+     String SCH sets the color scheme. Previous color scheme is used by
+     default. If array A is specified then it define the transparency
+     of dots. Arrays X, Y, Z, A must have equal sizes. See also *note
+     Crust::, *note Mark::, *note Plot::. *Note Dots sample::, for
+     sample code and picture.
+
+ -- Method on `mglGraph' (C++): `void' Dots (`const mglData &'tr,
+          `const char *'sch=`""')
+ -- C function: `void' mgl_dots_tr (`HMGL' gr, `const HMDT' tr, `const
+          char *'sch)
+     The same as previous with X=TR(0,:), Y=TR(1,:), Z=TR(2,:) and if
+     TR.nx>3 then A=TR(3,:).
+
+
+File: mathgl_en.info,  Node: Crust,  Next: TriPlot,  Prev: Dots,  Up: Other plotting
+
+3.14.5 Crust
+------------
+
+ -- Method on `mglGraph' (C++, Python): `void' Crust (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `float' er=`0')
+ -- C function: `void' mgl_crust (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `float' er)
+     The function reconstruct and draws the surface for arbitrary
+     placed points {X[i], Y[i], Z[i]}. Parameter ER set relative radius
+     for (increase it for removing holes). String SCH sets the color
+     scheme. Previous color scheme is used by default. If string
+     contain `#' then wire plot is produced. Arrays X, Y, Z must have
+     equal sizes. See also *note Dots::, *note TriPlot::. *Note Crust
+     sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++): `void' Crust (`const mglData &'tr,
+          `const char *'sch=`""', `float' er=`0')
+ -- C function: `void' mgl_crust_tr (`HMGL' gr, `const HMDT' tr, `const
+          char *'sch, `float' er)
+     The same as previous with X=TR(0,:), Y=TR(1,:), Z=TR(2,:).
+
+
+File: mathgl_en.info,  Node: TriPlot,  Next: TriCont,  Prev: Crust,  Up: Other plotting
+
+3.14.6 TriPlot
+--------------
+
+ -- Method on `mglGraph' (C++, Python): `void' TriPlot (`const mglData
+          &'id, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const mglData &'c, `const char *'sch=`""')
+ -- Method on `mglGraph' (C++, Python): `void' TriPlot (`const mglData
+          &'id, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const char *'sch=`""')
+ -- C function: `void' mgl_triplot_xyz (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const char
+          *'sch)
+ -- C function: `void' mgl_triplot_xyzc (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          c, `const char *'sch)
+     The function draws the surface of triangles. Triangle vertexes are
+     set by indexes ID of data points {X[i], Y[i], Z[i]}. String SCH
+     sets the color scheme. Previous color scheme is used by default.
+     If string contain `#' then wire plot is produced. First dimensions
+     of ID must be 3 or greater. Arrays X, Y, Z must have equal sizes.
+     Parameter C set the colors of triangles (if ID.ny=C.nx) or colors
+     of vertexes (if X.nx=C.nx). See also *note Dots::, *note Crust::,
+     *note QuadPlot::.
+
+ -- Method on `mglGraph' (C++, Python): `void' TriPlot (`const mglData
+          &'id, `const mglData &'x, `const mglData &'y, `const char
+          *'sch=`""', `float' zVal=`NAN')
+ -- C function: `void' mgl_triplot_xy (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const char *'sch, `float'
+          zVal)
+     The same as previous with Z[i]=ZVAL.
+
+
+File: mathgl_en.info,  Node: TriCont,  Next: QuadPlot,  Prev: TriPlot,  Up: Other plotting
+
+3.14.7 TriCont
+--------------
+
+ -- Method on `mglGraph' (C++, Python): `void' TriContV (`const mglData
+          &'v, `const mglData &'id, `const mglData &'x, `const mglData
+          &'y, `const mglData &'z, `const mglData &'c, `const char
+          *'sch=`""', `float' zVal=`NAN')
+ -- Method on `mglGraph' (C++, Python): `void' TriContV (`const mglData
+          &'v, `const mglData &'id, `const mglData &'x, `const mglData
+          &'y, `const mglData &'z, `const char *'sch=`""', `float'
+          zVal=`NAN')
+ -- C function: `void' mgl_tricont_xyzcv (`HMGL' gr, `const HMDT' v,
+          `const HMDT' id, `const HMDT' x, `const HMDT' y, `const HMDT'
+          z, `const HMDT' c, `const char *'sch, `float' zVal)
+ -- C function: `void' mgl_tricont_xyzv (`HMGL' gr, `const HMDT' v,
+          `const HMDT' id, `const HMDT' x, `const HMDT' y, `const HMDT'
+          z, `const char *'sch, `float' zVal)
+     The function draws contour lines for surface of triangles at Z =
+     ZVAL (or for Z=V[k] if `zVal==NAN'). Triangle vertexes are set by
+     indexes ID of data points {X[i], Y[i], Z[i]}. Contours are plotted
+     for Z[i,j]=V[k] where V[k] are values of data array V. String SCH
+     sets the color scheme. Previous color scheme is used by default.
+     Array C (if specified) is used for contour coloring. First
+     dimensions of ID must be 3 or greater. Arrays X, Y, Z must have
+     equal sizes. Parameter C set the colors of triangles (if
+     ID.ny=C.nx) or colors of vertexes (if X.nx=C.nx). See also *note
+     TriPlot::, *note Cont::.
+
+ -- Method on `mglGraph' (C++, Python): `void' TriCont (`const mglData
+          &'id, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const mglData &'c, `const char *'sch=`""', `num'=`7',
+          `float' zVal=`NAN')
+ -- Method on `mglGraph' (C++, Python): `void' TriCont (`const mglData
+          &'id, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const char *'sch=`""', `num'=`7', `float' zVal=`NAN')
+ -- C function: `void' mgl_tricont_xyzc (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          c, `const char *'sch, `num', `float' zVal)
+ -- C function: `void' mgl_tricont_xyz (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const char
+          *'sch, `num', `float' zVal)
+     The same as first one with vector V of NUM-th elements
+     equidistantly distributed in range [CMIN, CMAX].
+
+
+File: mathgl_en.info,  Node: QuadPlot,  Next: Plots by formula,  Prev: TriCont,  Up: Other plotting
+
+3.14.8 QuadPlot
+---------------
+
+ -- Method on `mglGraph' (C++, Python): `void' QuadPlot (`const mglData
+          &'id, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const mglData &'c, `const char *'sch=`""')
+ -- Method on `mglGraph' (C++, Python): `void' QuadPlot (`const mglData
+          &'id, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const char *'sch=`""')
+ -- C function: `void' mgl_quadplot_xyz (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const char
+          *'sch)
+ -- C function: `void' mgl_quadplot_xyzc (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          c, `const char *'sch)
+     The function draws the surface of quadrangles. Quadrangles
+     vertexes are set by indexes ID of data points {X[i], Y[i], Z[i]}.
+     String SCH sets the color scheme. Previous color scheme is used by
+     default. If string contain `#' then wire plot is produced. First
+     dimensions of ID must be 4 or greater. Arrays X, Y, Z must have
+     equal sizes. Parameter C set the colors of quadrangles (if
+     ID.ny=C.nx) or colors of vertexes (if X.nx=C.nx). See also *note
+     TriPlot::.
+
+ -- Method on `mglGraph' (C++, Python): `void' QuadPlot (`const mglData
+          &'id, `const mglData &'x, `const mglData &'y, `const char
+          *'sch=`""', `float' zVal=`NAN')
+ -- C function: `void' mgl_quadplot_xy (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const char *'sch, `float'
+          zVal)
+     The same as previous with Z[i]=ZVAL.
+
+
+File: mathgl_en.info,  Node: Plots by formula,  Next: SimplePlot,  Prev: QuadPlot,  Up: Other plotting
+
+3.14.9 Plots by formula
+-----------------------
+
+These functions perform plotting of 1D or 2D functions specified by
+textual formula. You do not need to create the data arrays to plot it.
+The parameter STL set the line style (*note Line styles::) for `Plot()'
+or color scheme (*note Color scheme::) for `Surf()'. The parameter N
+set the minimal number of points along coordinate(s) for plots. At this
+time (v. 1.10) there is adaptive increase of data points numbers but
+only for 1D variant (i.e. for Plot()).
+
+ -- Method on `mglGraph' (C++, Python): `void' Plot (`const char *'eqY,
+          `const char *'stl=`""', `float' zVal=`NAN', `int' n=`100')
+ -- C function: `void' mgl_fplot (`HMGL' gr, `const char *'eqY, `const
+          char *'stl, `float' zVal, `int' n)
+     The function draws function `eqY(x)' at plane z=ZVAL where `x'
+     variable is changed in range [MIN.x, MAX.x]. See also *note Plot::.
+
+ -- Method on `mglGraph' (C++, Python): `void' Plot (`const char *'eqX,
+          `const char *'eqY, `const char *'eqZ, `const char *'stl=`""',
+          `float' zVal=`NAN', `int' n=`100')
+ -- C function: `void' mgl_fplot_xyz (`HMGL' gr, `const char *'eqX,
+          `const char *'eqY, `const char *'eqZ, `const char *'stl,
+          `float' zVal, `int' n)
+     The function draws parametrical curve {`eqX(t)', `eqY(t)',
+     `eqZ(t)'} where `t' variable is changed in range [0, 1]. See also
+     *note Plot::.
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf (`const char *'eqZ,
+          `const char *'stl=`""', `int' n=`100');
+ -- C function: `void' mgl_fsurf (`HMGL' gr, `const char *'eqZ, `const
+          char *'stl, `int' n);
+     The function draws surface for function `eqY(x,y)' where `x', `y'
+     variables are changed in range [MIN, MAX]. See also *note Surf::.
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf (`const char *'eqX,
+          `const char *'eqY, `const char *'eqZ, `const char *'stl=`""',
+          `int' n=`100')
+ -- C function: `void' mgl_fsurf_xyz (`HMGL' gr, `const char *'eqX,
+          `const char *'eqY, `const char *'eqZ, `const char *'stl,
+          `int' n)
+     The function draws parametrical surface {`eqX(u,v)', `eqY(u,v)',
+     `eqZ(u,v)'} where `u', `v' variables are changed in range [0, 1].
+     See also *note Surf::.
+
+
+File: mathgl_en.info,  Node: SimplePlot,  Prev: Plots by formula,  Up: Other plotting
+
+3.14.10 SimplePlot
+------------------
+
+ -- Method on `mglGraph' (C++, Python): `void' SimplePlot (`const
+          mglData &'a, `int' type=`0', `const char *'stl=`""')
+ -- C function: `void' mgl_simple_plot (`HMGL' gr, `const HMDT' a,
+          `int' type, `const char *'stl)
+     Plots the array A depending on it's dimensions and TYPE parameter.
+     String STL specifies the style of plotting. For 1d data: `type=0'
+     - *note Plot::, `type=1' - *note Area::, `type=2' - *note Step::,
+     `type=3' - *note Stem::, `type=4' - *note Bars::. For 2d data:
+     `type=0' - *note Surf::, `type=1' - *note Dens::, `type=2' - *note
+     Mesh::, `type=3' - *note Cont::. For 3d data: `type=0' - *note
+     Surf3::, `type=1' - *note Dens3::, `type=2' - *note Cont3::,
+     `type=2' - *note Cloud::.
+
+
+File: mathgl_en.info,  Node: Nonlinear fitting,  Next: Data distributions,  Prev: Other plotting,  Up: MathGL core
+
+3.15 Nonlinear fitting
+======================
+
+These functions fit data to formula. Fitting goal is to find formula
+parameters for the best fit the data points, i.e. to minimize the sum
+\sum_i (f(x_i, y_i, z_i) - a_i)^2/s_i^2. At this, approximation
+function `f' can depend only on one argument `x' (1D case), on two
+arguments `x,y' (2D case) and on three arguments `x,y,z' (3D case). The
+function `f' also may depend on parameters. Normally the list of fitted
+parameters is specified by VAR string (like, `abcd'). Usually user
+should supply initial values for fitted parameters by INI variable. But
+if he/she don't supply it then the zeros are used. Parameter
+PRINT=`true' switch on printing the found coefficients to MESSAGE
+(*note Error handling::).
+
+   Functions Fit() and FitS() do not draw the obtained data themselves.
+They fill the data FIT by formula `f' with found coefficients and
+return the \chi^2 error of approximation. At this, the `x,y,z'
+coordinates are equidistantly distributed in the interval MIN-MAX.
+Number of points in FIT is selected as maximal value of FIT size and
+the value of FITPNTS. Note, that this functions use GSL library and do
+something only if MathGL was compiled with GSL support. *Note Fitting
+sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `float' FitS (`mglData &'fit,
+          `const mglData &'x, `const mglData &'y, `const mglData &'z,
+          `const mglData &'a, `const mglData &'s, `const char *'func,
+          `const char *'var, `float *'ini=`NULL', `bool' print=`false')
+ -- Method on `mglGraph' (C++, Python): `float' FitS (`mglData &'fit,
+          `const mglData &'x, `const mglData &'y, `const mglData &'z,
+          `const mglData &'a, `const mglData &'s, `const char *'func,
+          `const char *'var, `mglData &'ini, `bool' print=`false')
+ -- C function: `float' mgl_fit_xyzas (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT' a,
+          `const HMDT' s, `const char *'func, `const char *'var, `float
+          *'ini)
+ -- C function: `float' mgl_fit_xyzas_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT' a,
+          `const HMDT' s, `const char *'func, `const char *'var, `HMDT'
+          ini)
+     Fit data along x-, y- and z-directions for 3d array specified
+     parametrically A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]).
+
+ -- Method on `mglGraph' (C++, Python): `float' FitS (`mglData &'fit,
+          `const mglData &'x, `const mglData &'y, `const mglData &'a,
+          `const mglData &'s, `const char *'func, `const char *'var,
+          `float *'ini=`NULL', `bool' print=`false')
+ -- Method on `mglGraph' (C++, Python): `float' FitS (`mglData &'fit,
+          `const mglData &'x, `const mglData &'y, `const mglData &'a,
+          `const mglData &'s, `const char *'func, `const char *'var,
+          `mglData &'ini, `bool' print=`false')
+ -- C function: `float' mgl_fit_xyzs (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' a, `const HMDT' s,
+          `const char *'func, `const char *'var, `float *'ini)
+ -- C function: `float' mgl_fit_xyzs_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' a, `const HMDT' s,
+          `const char *'func, `const char *'var, `HMDT' ini)
+     Fit data along x-, and y-directions for 2d array specified
+     parametrically A[i,j](X[i,j], Y[i,j]) for each data slice.
+
+ -- Method on `mglGraph' (C++, Python): `float' FitS (`mglData &'fit,
+          `const mglData &'x, `const mglData &'a, `const mglData &'s,
+          `const char *'func, `const char *'var, `float *'ini=`NULL',
+          `bool' print=`false')
+ -- Method on `mglGraph' (C++, Python): `float' FitS (`mglData &'fit,
+          `const mglData &'x, `const mglData &'a, `const mglData &'s,
+          `const char *'func, `const char *'var, `mglData &'ini, `bool'
+          print=`false')
+ -- C function: `float' mgl_fit_xys (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' a, `const HMDT' s, `const char *'func,
+          `const char *'var, `float *'ini)
+ -- C function: `float' mgl_fit_xys_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' a, `const HMDT' s, `const char *'func,
+          `const char *'var, `HMDT' ini)
+     Fit data along x-direction for 1d array specified parametrically
+     A[i](X[i]) for each data slice.
+
+ -- Method on `mglGraph' (C++, Python): `float' FitS (`mglData &'fit,
+          `const mglData &'a, `const mglData &'s, `const char *'func,
+          `const char *'var, `float *'ini=`NULL', `bool' print=`false')
+ -- Method on `mglGraph' (C++, Python): `float' FitS (`mglData &'fit,
+          `const mglData &'a, `const mglData &'s, `const char *'func,
+          `const char *'var, `mglData &'ini, `bool' print=`false')
+ -- C function: `float' mgl_fit_ys (`HMGL' gr, `HMDT' fit, `const HMDT'
+          a, `const HMDT' s, `const char *'func, `const char *'var,
+          `float *'ini)
+ -- C function: `float' mgl_fit_ys_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' a, `const HMDT' s, `const char *'func, `const char
+          *'var, `HMDT' ini)
+     Fit data along x-direction for 1d array with X equidistantly
+     distributed in interval [MIN.x, MAX.x].
+
+ -- Method on `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'x, `const mglData &'y, `const mglData &'z,
+          `const mglData &'a, `const char *'func, `const char *'var,
+          `float *'ini=`NULL', `bool' print=`false')
+ -- Method on `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'x, `const mglData &'y, `const mglData &'z,
+          `const mglData &'a, `const char *'func, `const char *'var,
+          `mglData &'ini, `bool' print=`false')
+ -- C function: `float' mgl_fit_xyza (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT' a,
+          `const char *'func, `const char *'var, `float *'ini)
+ -- C function: `float' mgl_fit_xyza_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT' a,
+          `const char *'func, `const char *'var, `HMDT' ini)
+     Fit data along x-, y- and z-directions for 3d array specified
+     parametrically A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) with
+     S[i,j,k]=1.
+
+ -- Method on `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'x, `const mglData &'y, `const mglData &'a,
+          `const char *'func, `const char *'var, `float *'ini=`NULL',
+          `bool' print=`false')
+ -- Method on `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'x, `const mglData &'y, `const mglData &'a,
+          `const char *'func, `const char *'var, `mglData &'ini, `bool'
+          print=`false')
+ -- C function: `float' mgl_fit_xyz (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' a, `const char *'func,
+          `const char *'var, `float *'ini)
+ -- C function: `float' mgl_fit_xyz_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' a, `const char *'func,
+          `const char *'var, `HMDT' ini)
+     Fit data along x-, and y-directions for 2d array specified
+     parametrically A[i,j](X[i,j], Y[i,j]) with S[i,j]=1 for each data
+     slice.
+
+ -- Method on `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'x, `const mglData &'a, `const char *'func,
+          `const char *'var, `float *'ini=`NULL', `bool' print=`false')
+ -- Method on `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'x, `const mglData &'a, `const char *'func,
+          `const char *'var, `mglData &'ini, `bool' print=`false')
+ -- C function: `float' mgl_fit_xy (`HMGL' gr, `HMDT' fit, `const HMDT'
+          x, `const HMDT' a, `const char *'func, `const char *'var,
+          `float *'ini)
+ -- C function: `float' mgl_fit_xy_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' a, `const char *'func, `const char
+          *'var, `HMDT' ini)
+     Fit data along x-direction for 1d array specified parametrically
+     A[i](X[i]) with S[i]=1 for each data slice.
+
+ -- Method on `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'a, `const char *'func, `const char *'var,
+          `float *'ini=`""', `bool' print=`false')
+ -- Method on `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'a, `const char *'func, `const char *'var,
+          `mglData &'ini, `bool' print=`false')
+ -- C function: `float' mgl_fit_1 (`HMGL' gr, `HMDT' fit, `const HMDT'
+          a, `const char *'func, `const char *'var, `float *'ini)
+ -- C function: `float' mgl_fit_1_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' a, `const char *'func, `const char *'var, `HMDT' ini)
+     Fit data along x-direction for 1d array A with S=1 and X
+     equidistantly distributed in interval [MIN.x, MAX.x].
+
+ -- Method on `mglGraph' (C++, Python): `float' Fit2 (`mglData &'fit,
+          `const mglData &'a, `const char *'func, `const char *'var,
+          `float *'ini=`NULL', `bool' print=`false')
+ -- Method on `mglGraph' (C++, Python): `float' Fit2 (`mglData &'fit,
+          `const mglData &'a, `const char *'func, `const char *'var,
+          `mglData &'ini, `bool' print=`false')
+ -- C function: `float' mgl_fit_2 (`HMGL' gr, `HMDT' fit, `const HMDT'
+          a, `const char *'func, `const char *'var, `float *'ini)
+ -- C function: `float' mgl_fit_2_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' a, `const char *'func, `const char *'var, `HMDT' ini)
+     Fit data along x-, and y-directions for 2d array A with S=1 and X,
+     Y equidistantly distributed in interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `float' Fit3 (`mglData &'fit,
+          `const mglData &'a, `const char *'func, `const char *'var,
+          `float *'ini=`NULL', `bool' print=`false')
+ -- Method on `mglGraph' (C++, Python): `float' Fit3 (`mglData &'fit,
+          `const mglData &'a, `const char *'func, `const char *'var,
+          `mglData &'ini, `bool' print=`false')
+ -- C function: `float' mgl_fit_3 (`HMGL' gr, `HMDT' fit, `const HMDT'
+          a, `const char *'func, `const char *'var, `float *'ini)
+ -- C function: `float' mgl_fit_3_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' a, `const char *'func, `const char *'var, `HMDT' ini)
+     Fit data along x-, y- and z-directions for 3d array A with S=1 and
+     X, Y, Z equidistantly distributed in interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' PutsFit (`mglPoint' p,
+          `const char *'prefix=`""', `const char *'font=`NULL', `float'
+          size=`-1')
+ -- C function: `void' mgl_puts_fit (`HMGL' gr, `float' x, `float' y,
+          `float' z, `const char *'prefix, `const char *'font, `float'
+          size=`-1')
+     Print last fitted formula with found coefficients (as numbers) at
+     position P0. The string PREFIX will be printed before formula. All
+     other parameters are the same as in *note Text printing::.
+
+ -- Method on `mglGraph' (C++, Python): `const char *' GetFit ()
+ -- C function: `const char *' mgl_get_fit (`HMGL' gr)
+     Get last fitted formula with found coefficients (as numbers).
+
+ -- General option (C++) of mglGraph: `int' FitPnts
+     Minimal number of points for output array after nonlinear fitting.
+
+
+File: mathgl_en.info,  Node: Data distributions,  Next: Frames/Animation,  Prev: Nonlinear fitting,  Up: MathGL core
+
+3.16 Data distributions
+=======================
+
+These functions make distribution (histogram) of data. They do not draw
+the obtained data themselves. These functions can be useful if user
+have data defined for random points (for example, after PIC simulation)
+and he want to produce a plot which require regular data (defined on
+grid(s)). The range for grids is always selected as axis range
+Min...Max. Arrays X, Y, Z define the positions (coordinates) of random
+points. Array A define the data value. Number of points in output array
+RES is selected as maximal value of RES size and the value of FITPNTS.
+
+ -- Method on `mglGraph' (C++, Python): `void' Hist (`mglData &'res,
+          `const mglData &'x, `const mglData &'a)
+ -- C function: `int' mgl_hist_x (`HMGL' gr, `HMDT' res, `const HMDT'
+          x, `const HMDT' a)
+     Creates 1D distribution of the data values A in range [Min, Max].
+
+ -- Method on `mglGraph' (C++, Python): `void' Hist (`mglData &'res,
+          `const mglData &'x, `const mglData &'y, `const mglData &'a)
+ -- C function: `int' mgl_hist_xy (`HMGL' gr, `HMDT' res, `const HMDT'
+          x, `const HMDT' y, `const HMDT' a)
+     Creates 2D distribution of the data values A in range [Min, Max].
+
+ -- Method on `mglGraph' (C++, Python): `void' Hist (`mglData &'res,
+          `const mglData &'x, `const mglData &'y, `const mglData &'z,
+          `const mglData &'a)
+ -- C function: `int' mgl_hist_xyz (`HMGL' gr, `HMDT' res, `const HMDT'
+          x, `const HMDT' y, `const HMDT' z, `const HMDT' a)
+     Creates 3D distribution of the data values A in range [Min, Max].
+
+
+File: mathgl_en.info,  Node: Frames/Animation,  Next: IDTF functions,  Prev: Data distributions,  Up: MathGL core
+
+3.17 Frames/Animation
+=====================
+
+These functions provide ability to create several pictures
+simultaneously. For most of cases it is useless but for widget classes
+(*note Widget classes::) they can provide a way to show animation. Also
+you can write several frames into animated GIF file.
+
+ -- Method on `mglGraph' (C++, Python): `int' NewFrame ()
+ -- C function: `int' mgl_new_frame (`HMGL' gr)
+     Creates new frame. Function returns current frame id. This is not
+     thread safe function in OpenGL mode! Use direct list creation in
+     multi-threading drawing. The function `EndFrame()' *must* be call
+     after the finishing of the frame drawing for each call of this
+     function.
+
+ -- Method on `mglGraph' (C++, Python): `void' EndFrame ()
+ -- C function: `void' mgl_end_frame (`HMGL' gr)
+     Finishes the frame drawing.
+
+ -- Method on `mglGraph' (C++, Python): `int' GetNumFrame ()
+ -- C function: `int' mgl_get_num_frame (`HMGL' gr)
+     Gets the number of created frames.
+
+ -- Method on `mglGraph' (C++, Python): `void' ResetFrames ()
+ -- C function: `int' mgl_reset_frames (`HMGL' gr)
+     Reset frames counter (start it from zero).
+
+ -- Method on `mglGraph' (C++, Python): `void' StartGIF (`const char
+          *'fname, `int' ms=`100')
+ -- C function: `void' mgl_start_gif (`HMGL' gr, `const char *'fname,
+          `int' ms)
+     Start writing frames into animated GIF file FNAME. Parameter MS
+     set the delay between frames in milliseconds. You *should not*
+     change the picture size during writing the cinema. Use CloseGIF()
+     to finalize writing. Note, that this function is disabled in
+     OpenGL mode.
+
+ -- Method on `mglGraph' (C++, Python): `int' CloseGIF ()
+ -- C function: `void' mgl_close_gif (`HMGL' gr)
+     Finish writing animated GIF and close connected pointers.
+
+
+File: mathgl_en.info,  Node: IDTF functions,  Prev: Frames/Animation,  Up: MathGL core
+
+3.18 IDTF functions
+===================
+
+These functions provide IDTF specific features. In all other cases they
+do nothing.
+
+ -- Method on `mglGraph' (C++): `void' VertexColor (`bool' enable)
+     Enables smooth color change.
+
+ -- Method on `mglGraph' (C++): `void' Compression (`bool' enable)
+     Gives smaller files, but quality degrades.
+
+ -- Method on `mglGraph' (C++): `void' StartGroup (const char *name)
+     Starts group definition. Groups contain objects and other groups,
+     they are used to select a part of a model to zoom to or to make
+     invizible or to make transparent and so on.
+
+ -- Method on `mglGraph' (C++): `void' EndGroup ()
+     Ends group definition.
+
+
+File: mathgl_en.info,  Node: Plotter classes,  Next: Widget classes,  Prev: MathGL core,  Up: Top
+
+4 Plotter classes
+*****************
+
+The class mglGraph (*note MathGL core::) provide the basic tools for
+creating scientific graphics but it is abstract class. The matter is
+that there are several possible way to draw a graphics: in bitmap, in
+vector file, using OpenGL and so on. As result, user should use some of
+derived classes to do actual drawing. In principle, it is possible to
+derive a class exactly from mglGraph (and it was in v.1.6). But I
+recommend to derive from mglGraphAB class for higher compatibility of
+produced graphics from different classes. Class mglGraphAB is another
+abstract class which provide basic coordinates transformation, plotting
+functions and export to bitmap picture. It still require a functions
+for drawing lines, triangles and quadrangles. So below a set of
+"plotter" classes with short comments.
+
+ -- Class: mglGraphAB
+     Abstract class mglGraphAB implements plotting function for 1D, 2D
+     and 3D plots using Z-ordering and provides base functionality for
+     to screen coordinate transformation, bitmap creation and so on.
+     Class is defined in `#include <mgl/mgl_ab.h>'.
+
+ -- Class: mglGraphZB
+     Class mglGraphZB implements plotting function for 1D, 2D and 3D
+     plots using Z-Buffer. It is useful for off-screen (for console or
+     SSH terminal) programs. Also this class can be used in any other
+     programs which may draw bitmap on the  screen (for example, by
+     using FLTK, Qt, wxWidgets libraries and so on). Note that bitmap
+     picture is saved while exporting to EPS format. The produced
+     graphics have better quality but slower in comparison with
+     graphics in the class mglGraphPS. Class is defined in `#include
+     <mgl/mgl_zb.h>'.
+
+ -- Class: mglGraphPS
+     Class mglGraphPS implements plotting functions for 1D, 2D and 3D
+     plots and exports them to PostScript or SVG file. It is useful for
+     off-screen (for console or SSH terminal) programs. Note that there
+     is no transparency support now and color interpolation and
+     lightning support is limited (not so nice as in class mglGraphZB).
+     As result the plots with transparency (SurfA, Surf3A, CloudP,
+     CloudQ) may look not so good. However the speed of drawing is
+     higher in comparison with one in the class mglGraphZB. Class is
+     defined in `#include <mgl/mgl_eps.h>'.
+
+ -- Class: mglGraphGL
+     Class mglGraphGL implements plotting function for 1D, 2D and 3D
+     plots under OpenGL. This class can not be used in off-screen
+     applications. Note, that several transparent overlapped surfaces
+     are drawn not so correctly due to OpenGL limitations. Class is
+     defined in `#include <mgl/mgl_gl.h>'.
+
+ -- Class: mglGraphIDTF
+     Class mglGraphIDTF implements plotting function for 1D, 2D and 3D
+     plots  and export it in IDTF format. Later this file can be
+     converted in U3D format. Class is defined in `#include
+     <mgl/mgl_idtf.h>'.
+
+* Menu:
+
+* mglGraphAB class::
+
+
+File: mathgl_en.info,  Node: mglGraphAB class,  Up: Plotter classes
+
+4.1 mglGraphAB class
+====================
+
+#cindex mglDraw
+
+   Generally this class is a bit less abstract class than mglGraph
+class (*note MathGL core::). It provide many protected methods for
+handling intermediate data from mglGraph methods and require a few
+methods to be defined by derived class. The developers of derived
+classes should look on file `mgl_ab.h' and comments inside it or
+contact me.
+
+   Here I just show main public methods for class mglGraphAB. There are
+functions returning the created picture (bitmap), its width and height.
+You may display it by yourself in any graphical library (see also,
+*note Widget classes::) or save in file (see also, *note Export to
+file::).
+
+ -- Method on `mglGraphAB' (C++): `const unsigned char *' GetBits ()
+ -- Method on `mglGraph' (Python): `void' GetRGB (`char *'buf, `int'
+          size)
+ -- Method on `mglGraph' (Python): `void' GetBGRN (`char *'buf, `int'
+          size)
+ -- C function: `const unsigned char *' mgl_get_rgb (`HMGL' gr)
+     Gets RGB bitmap of the current state of the image. Format of each
+     element of bits is: {red, green, blue}. Number of elements is
+     Width*Height. Position of element {i,j} is [3*i + 3*Width*j] (or
+     is [4*i + 4*Width*j] for `GetBGRN()'). For Python you have to
+     provide the proper SIZE of the buffer, BUF i.e. the code should
+     look like from mathgl import *
+     gr = mglGraph();
+     bits='\t';
+     bits=bits.expandtabs(4*gr.GetWidth()*gr.GetHeight());
+     gr.GetBGRN(bits, len(bits));
+
+ -- Method on `mglGraphAB' (C++): `const unsigned char *' GetRGBA ()
+ -- Method on `mglGraph' (Python): `void' GetRGBA (`char *'buf, `int'
+          size)
+ -- C function: `const unsigned char *' mgl_get_rgba (`HMGL' gr)
+     Gets RGBA bitmap of the current state of the image. Format of each
+     element of bits is: {red, green, blue, alpha}. Number of elements
+     is Width*Height. Position of element {i,j} is [4*i + 4*Width*j].
+
+ -- Method on `mglGraphAB' (C++, Python): `int' GetWidth ()
+ -- Method on `mglGraphAB' (C++, Python): `int' GetHeight ()
+ -- C function: `int' mgl_get_width (`HMGL' gr)
+ -- C function: `int' mgl_get_height (`HMGL' gr)
+     Gets width and height of the image.
+
+   Class mglGraphAB is the base class for "widget classes". So there
+are set of functions for handling window behavior. Most of them are
+applicable only for "window" classes (like mglGraphFLTK and so on,
+*note Widget classes::). In all other classes these functions just do
+nothing. You should provide the corresponding interface in derived
+"widget" classes for user convenience.
+
+ -- Method on mglGraphAB: `void' Window (`int' argc, `char **'argv,
+          `int (*'draw)(`mglGraph *'gr, `void *'p), `const char
+          *'title, `void *'par=`NULL', `void (*'reload)(`int' next,
+          `void *'p)=`NULL', `bool' maximize=`false')
+     This function creates a window for plotting. Parameters ARGC, ARGV
+     contain OS specific information and should be the same as in
+     function `main(int argc,char **argv)'. Parameter DRAW sets a
+     pointer (this is the name of function) to drawing function. There
+     is support of a list of plots (frames). So as one can prepare a
+     set of frames at first and redraw it fast later (but it requires
+     more memory). Function should return positive number of frames for
+     the list or zero if it will plot directly. Note, that DRAW can be
+     `NULL' for displaying static bitmaps only (no animation or
+     slides). Parameter TITLE sets the title of the window. Parameter
+     PAR contains pointer to data for the plotting function DRAW.
+     Parameter MAXIMIZE=`true' open maximized window.
+
+     There are some keys handles for manipulating by the plot: 'a',
+     'd', 'w', 's' for the rotating; ',', '.' for viewing of the
+     previous or next frames in the list; 'r' for the switching of
+     transparency; 'f' for the switching of lightning; 'x' for hiding
+     (closing) the window.
+
+     *IMPORTANT!!!* You need to add a call of Rotate() (*note
+     Transformation matrix::) function for having possibility of plot
+     rotation. If plot should be unrotated by default just add
+     `Rotate(0,0)' in drawing function.
+
+ -- Method on mglGraphAB: `void' Window (`int' argc, `char **'argv,
+          `mglDraw *'draw, `const char *'title, `bool' maximize=`false')
+     This function is mostly the same as previous one. The only
+     difference is that the drawing function and function for data
+     reloading are specified as methods on a class inherited from class
+     `mglDraw'. This class is defined in `#include <mgl/mgl_define.h>'
+     and have only 2 methods: class mglDraw
+     {
+     public:
+         virtual int Draw(mglGraph *) { return 0; };
+         virtual void Reload(int) {};
+     };
+      You should inherit yours class from `mglDraw' and reimplement one
+     or both functions for using this function.
+
+ -- Method on `mglGraphAB' (C++): `void' ToggleAlpha ()
+ -- C function: `int' mgl_wnd_toggle_alpha (`HMGL' gr)
+     Switch on/off transparency but do not overwrite switches in user
+     drawing function.
+
+ -- Method on `mglGraphAB' (C++): `void' ToggleLight ()
+ -- C function: `int' mgl_wnd_toggle_light (`HMGL' gr)
+     Switch on/off lighting but do not overwrite switches in user
+     drawing function.
+
+ -- Method on `mglGraphAB' (C++): `void' ToggleZoom ()
+ -- C function: `int' mgl_wnd_toggle_zoom (`HMGL' gr)
+     Switch on/off zooming by mouse as region selection.
+
+ -- Method on `mglGraphAB' (C++): `void' ToggleRotate ()
+ -- C function: `int' mgl_wnd_toggle_rotate (`HMGL' gr)
+     Switch on/off rotation by mouse. Usually, left button is used for
+     rotation, middle button for shift, right button for
+     zoom/perspective.
+
+ -- Method on `mglGraphAB' (C++): `void' ToggleNo ()
+ -- C function: `int' mgl_wnd_toggle_no (`HMGL' gr)
+     Switch off all zooming and rotation and restore initial state.
+
+ -- Method on `mglGraphAB' (C++): `void' Update ()
+ -- C function: `int' mgl_wnd_update (`HMGL' gr)
+     Update window contents.
+
+ -- Method on `mglGraphAB' (C++): `void' ReLoad (`bool' o)
+ -- C function: `int' mgl_wnd_reload (`HMGL' gr, `int' val)
+     Reload user data and update picture.
+
+ -- Method on `mglGraphAB' (C++): `void' Adjust ()
+ -- C function: `int' mgl_wnd_adjust (`HMGL' gr)
+     Adjust size of bitmap to window size.
+
+ -- Method on `mglGraphAB' (C++): `void' NextFrame ()
+ -- C function: `int' mgl_wnd_next_frame (`HMGL' gr)
+     Show next frame if one.
+
+ -- Method on `mglGraphAB' (C++): `void' PrevFrame ()
+ -- C function: `int' mgl_wnd_prev_frame (`HMGL' gr)
+     Show previous frame if one.
+
+ -- Method on `mglGraphAB' (C++): `void' Animation ()
+ -- C function: `int' mgl_wnd_animation (`HMGL' gr)
+     Run/stop slideshow (animation) of frames.
+
+ -- C function: `int' mgl_wnd_set_auto_clf (`HMGL' gr, `int' val)
+
+ -- Widget option of mglGraphAB: `bool' AutoClf
+     Clear canvas between drawing. You may switch it off for accumulate
+     previous drawing (for example some points or parts of a picture).
+
+ -- C function: `int' mgl_wnd_set_delay (`HMGL' gr, `int' val)
+
+ -- Widget option of mglGraphAB: `float' Delay
+     Delay for animation in seconds. Default value is 1 sec.
+
+ -- Method on `mglGraphAB' (C++, Python): `mglPoint' CalcXYZ (`int' xs,
+          `int' ys)
+ -- C function: `void' mgl_calc_xyz (`HMGL' gr, `int' xs, `int' ys,
+          `float *'x, `float *'y, `float *'z)
+     Calculate 3D coordinate {x,y,z} for screen point {xs,ys}. At this
+     moment it ignore perspective and transformation formulas
+     (curvilinear coordinates). The calculation are done for the last
+     used InPlot (*note Transformation matrix::).
+
+ -- Method on `mglGraphAB' (C++, Python): `mglPoint' CalcScr
+          (`mglPoint' p)
+ -- Method on `mglGraphAB' (C++): `void' CalcScr (`mglPoint' p, `int
+          *'xs, `int *'ys)
+ -- C function: `void' mgl_calc_scr (`HMGL' gr, `float' x, `float' y,
+          `float' z, `int *'xs, `int *'ys)
+     Calculate screen point {xs,ys} for 3D coordinate {x,y,z}. The
+     calculation are done for the last used InPlot (*note
+     Transformation matrix::).
+
+ -- C function: `int' mgl_wnd_set_show_mouse_pos (`HMGL' gr, `int' val)
+
+ -- Widget option of mglGraphAB: `float' ShowMousePos
+     Switch to show or not in the widget the last mouse click position.
+
+ -- Widget option of mglGraphAB: `mglPoint' LastMousePos
+     Last position of mouse click.
+
+
+File: mathgl_en.info,  Node: Widget classes,  Next: mglData class,  Prev: Plotter classes,  Up: Top
+
+5 Widget classes
+****************
+
+There are set of "window" classes for making a window with MathGL
+graphics: `mglGraphFLTK', `mglGraphQT', `mglGraphGLUT'. All these
+classes allow user to show, rotate, export, and change view of the plot
+using keyboard. Most of them (except `mglGraphGLUT') also have toolbar
+and menu for simplifying plot manipulation. Usually these classes
+(except `mglGraphGLUT') are derived from `mglGraphZB' class and have a
+"connected" class for widget in corresponding window library. All
+window classes have the same set of functions (*note mglGraphAB
+class::). Below the full list of classes with short comments.
+
+ -- Class: mglGraphFLTK
+     Class `mglGraphFLTK' adds the possibility to create plotting
+     window with the help of FLTK library. It allows one to show,
+     rotate, export, and change view of the plot by keyboard, menu and
+     toolbar. "Corresponding" widget class is `Fl_MathGL'. Class is
+     defined in `#include <mgl/mgl_fltk.h>'.
+
+ -- Class: Fl_MathGL
+     Class is FLTK widget for displaying the MathGL output. Class is
+     defined in `#include <mgl/mgl_fltk.h>'.
+
+ [image src="fltk.png" ]
+
+Example of FLTK window with MathGL plot.
+
+ -- Class: mglGraphQT
+     Class `mglGraphQT' adds the possibility to create plotting window
+     with the help of QT library. It allows one to show, rotate,
+     export, and change view of the plot by keyboard, menu and toolbar.
+     "Corresponding" widget class is `QMathGL'. Class is defined in
+     `#include <mgl/mgl_qt.h>'.
+
+ -- Class: QMathGL
+     Class is Qt widget for dysplaying the MathGL output. Class is
+     defined in `#include <mgl/mgl_qt.h>'.
+
+ [image src="qt.png" ]
+
+Example of Qt window with MathGL plot.
+
+ -- Class: mglGraphGLUT
+     Class `mglGraphGLUT' adds the possibility to create plotting
+     window with the help of GLUT library. It allows one to show,
+     rotate, export, and change view of the plot only by keyboard.
+     Class is defined in `#include <mgl/mgl_glut.h>'.
+
+ [image src="glut.png" ]
+
+Example of GLUT window with MathGL plot.
+
+* Menu:
+
+* Fl_MathGL class::
+* QMathGL class::
+
+
+File: mathgl_en.info,  Node: Fl_MathGL class,  Next: QMathGL class,  Up: Widget classes
+
+5.1 Fl_MathGL class
+===================
+
+Class is FLTK widget which display MathGL graphics (defined in
+`#include <mgl/mgl_fltk.h>').
+
+ -- Method on Fl_MathGL: `void' set_draw (`mglDraw *'dr)
+     Sets drawing function from a class inherited from `mglDraw'.
+
+ -- Method on Fl_MathGL: `void' update (`mglGraph *'gr=`NULL')
+     Update (redraw) plot using grapher GR (built-in by default).
+
+ -- Method on Fl_MathGL: `void' set_angle (`float' t, `float' p)
+     Set angles for additional plot rotation
+
+ -- Method on Fl_MathGL: `void' set_state (`int' f)
+     Set bitwise flags for general state (1-Alpha, 2-Light)
+
+ -- Method on Fl_MathGL: `void' set_state (`bool' z, `bool' r)
+     Set flags for handling mouse: Z=`true' allow zooming, R=`true'
+     allow rotation/shifting/perspective and so on.
+
+ -- Method on Fl_MathGL: `void' set_zoom (`float' X1, `float' Y1,
+          `float' X2, `float' Y2)
+     Set zoom in/out region
+
+ -- Method on Fl_MathGL: `void' get_zoom (`float *'X1, `float *'Y1,
+          `float *'X2, `float *'Y2)
+     Get zoom in/out region
+
+ -- Method on Fl_MathGL: `void' set_popup (`const Fl_Menu_Item *'pmenu,
+          `Fl_Widget *'w, `void *'v)
+     Set popup menu pointer
+
+ -- Method on Fl_MathGL: `mglGraph *' get_graph ()
+     Get pointer to grapher
+
+ -- Widget option of Fl_MathGL: `Fl_Valuator *' tet_val
+     Pointer to external tet-angle validator.
+
+ -- Widget option of Fl_MathGL: `Fl_Valuator *' phi_val
+     Pointer to external phi-angle validator.
+
+ -- Widget option of Fl_MathGL: `mglGraphAB *' graph
+     Pointer to grapher
+
+ -- Widget option of Fl_MathGL: `void *' draw_par
+     Parameters for drawing function mglGraph::DrawFunc.
+
+ -- Widget option of Fl_MathGL: `int (*' draw_func `)(mglGraph *gr,
+          void *par)'
+     Drawing function for window procedure. It should return the number
+     of frames.
+
+
+File: mathgl_en.info,  Node: QMathGL class,  Prev: Fl_MathGL class,  Up: Widget classes
+
+5.2 QMathGL class
+=================
+
+Class is Qt widget which display MathGL graphics (defined in `#include
+<mgl/mgl_qt.h>').
+
+ -- Method on QMathGL: `void' setDraw (`mglDraw *'dr)
+     Sets drawing functions from a class inherited from `mglDraw'.
+
+ -- Method on QMathGL: `void' setDraw (`int (*'draw)(`mglGraph *'gr,
+          `void *'p), `void *'par=`NULL')
+     Sets the drawing function DRAW. There is support of a list of
+     plots (frames). So as one can prepare a set of frames at first and
+     redraw it fast later (but it requires more memory). Function
+     should return positive number of frames for the list or zero if it
+     will plot directly. Parameter PAR contains pointer to data for the
+     plotting function DRAW.
+
+ -- Method on QMathGL: `void' setGraph (`mglGraphAB *'gr)
+     Set pointer to external grapher (instead of built-in
+     `mglGraphZB'). Note that QMathGL will automatically delete this
+     object at destruction or at new `setGraph()' call.
+
+ -- Method on QMathGL: `void' setPopup (`QMenu *'p)
+     Set popup menu pointer.
+
+ -- Method on QMathGL: `void' setSize (`int' w, `int' h)
+     Set widget/picture sizes
+
+ -- Method on QMathGL: `double' getRatio ()
+     Return aspect ratio of the picture.
+
+ -- Method on QMathGL: `int' getPer ()
+     Get perspective value in percents.
+
+ -- Method on QMathGL: `int' getPhi ()
+     Get Phi-angle value in degrees.
+
+ -- Method on QMathGL: `int' getTet ()
+     Get Theta-angle value in degrees.
+
+ -- Method on QMathGL: `bool' getAlpha ()
+     Get transparency state.
+
+ -- Method on QMathGL: `bool' getLight ()
+     Get lightning state.
+
+ -- Method on QMathGL: `bool' getZoom ()
+     Get mouse zooming state.
+
+ -- Method on QMathGL: `bool' getRotate ()
+     Get mouse rotation state.
+
+ -- Slot on QMathGL: `void' refresh ()
+     Redraw saved bitmap without executing drawing function.
+
+ -- Slot on QMathGL: `void' update (`mglGraph *'gr=`NULL')
+     Update picture by executing drawing function.
+
+ -- Slot on QMathGL: `void' copy ()
+     Copy graphics to clipboard.
+
+ -- Slot on QMathGL: `void' setPer (`int' val)
+     Set perspective value.
+
+ -- Slot on QMathGL: `void' setPhi (`int' val)
+     Set Phi-angle value.
+
+ -- Slot on QMathGL: `void' setTet (`int' val)
+     Set Theta-angle value.
+
+ -- Slot on QMathGL: `void' setAlpha (`bool' val)
+     Switch on/off transparency.
+
+ -- Slot on QMathGL: `void' setLight (`bool' val)
+     Switch on/off lightning.
+
+ -- Slot on QMathGL: `void' setZoom (`bool' val)
+     Switch on/off mouse zooming.
+
+ -- Slot on QMathGL: `void' setRotate (`bool' val)
+     Switch on/off mouse rotation.
+
+ -- Slot on QMathGL: `void' zoomIn ()
+     Zoom in graphics.
+
+ -- Slot on QMathGL: `void' zoomOut ()
+     Zoom out graphics.
+
+ -- Slot on QMathGL: `void' restore ()
+     Restore zoom and rotation to default values.
+
+ -- Slot on QMathGL: `void' reload ()
+     Reload data and redraw graphics.
+
+ -- Slot on QMathGL: `void' shiftLeft ()
+     Shift graphics to left direction.
+
+ -- Slot on QMathGL: `void' shiftRight ()
+     Shift graphics to right direction.
+
+ -- Slot on QMathGL: `void'shiftUp ()
+     Shift graphics to up direction.
+
+ -- Slot on QMathGL: `void' shiftDown ()
+     Shift graphics to down direction.
+
+ -- Slot on QMathGL: `void' exportPNG (`QString' fname=`""')
+     Export current picture to PNG file.
+
+ -- Slot on QMathGL: `void' exportPNGs (`QString' fname=`""')
+     Export current picture to PNG file (no transparency).
+
+ -- Slot on QMathGL: `void' exportJPG (`QString' fname=`""')
+     Export current picture to JPEG file.
+
+ -- Slot on QMathGL: `void' exportBPS (`QString' fname=`""')
+     Export current picture to bitmap EPS file.
+
+ -- Slot on QMathGL: `void' exportEPS (`QString' fname=`""')
+     Export current picture to vector EPS file.
+
+ -- Slot on QMathGL: `void' exportSVG (`QString' fname=`""')
+     Export current picture to SVG file.
+
+ -- Slot on QMathGL: `void' exportIDTF (`QString' fname=`""')
+     Export current picture to IDTF file.
+
+ -- Slot on QMathGL: `void' setMGLFont (`QString' path)
+     Restore (PATH=`""') or load font for graphics.
+
+ -- Slot on QMathGL: `void' print ()
+     Print current picture
+
+ -- Slot on QMathGL: `void' adjust ()
+     Adjust plot size to fill entire window. This function is executed
+     only if graph is mglGraphQT instance.
+
+ -- Slot on QMathGL: `void' nextSlide ()
+     Show next slide. This function is executed only if graph is
+     mglGraphQT instance.
+
+ -- Slot on QMathGL: `void' prevSlide ()
+     Show previous slide. This function is executed only if graph is
+     mglGraphQT instance.
+
+ -- Slot on QMathGL: `void' animation (`bool' st=`true')
+     Start animation. This function is executed only if graph is
+     mglGraphQT instance.
+
+ -- Slot on QMathGL: `void' about ()
+     Show about information.
+
+ -- Slot on QMathGL: `void' aboutQt ()
+     Show information about Qt version.
+
+ -- Signal on QMathGL: `void' phiChanged (`int' val)
+     Phi angle changed (by mouse or by toolbar).
+
+ -- Signal on QMathGL: `void' tetChanged (`int' val)
+     Tet angle changed (by mouse or by toolbar).
+
+ -- Signal on QMathGL: `void' perChanged (`int' val)
+     Perspective changed (by mouse or by toolbar).
+
+ -- Signal on QMathGL: `void' alphaChanged (`bool' val)
+     Transparency changed (by toolbar).
+
+ -- Signal on QMathGL: `void' lightChanged (`bool' val)
+     Lighting changed (by toolbar).
+
+ -- Signal on QMathGL: `void' zoomChanged (`bool' val)
+     Zooming changed (by toolbar).
+
+ -- Signal on QMathGL: `void' rotateChanged (`bool' val)
+     Rotation changed (by toolbar).
+
+ -- Widget option of QMathGL: `QString' appName
+     Application name for message boxes.
+
+ -- Widget option of QMathGL: `bool' autoResize
+     Allow auto resizing (default is false).
+
+ -- Widget option of QMathGL: `int' animDelay
+     Animation delay in ms.
+
+
+File: mathgl_en.info,  Node: mglData class,  Next: Other classes,  Prev: Widget classes,  Up: Top
+
+6 mglData class
+***************
+
+Class for working with data array. This class is defined in `#include
+<mgl/mgl_data.h>'. The class has functions for easy and safe
+allocation, resizing, loading and saving, modifying of data arrays.
+Also it can numerically differentiate and integrate data, interpolate,
+fill data by formula and so on. Class supports data with dimensions up
+to 3 (like function of 3 variables - x,y,z). The internal
+representation of numbers is float. Float type was chosen because it
+has smaller size in memory and usually it has enough precision in
+plotting purposes.
+
+* Menu:
+
+* Public variables::
+* Create and delete::
+* Fill::
+* Rearrange::
+* File I/O::
+* Make another data::
+* Change data::
+* Interpolation::
+* Informational functions::
+* Operators::
+* Global functions::
+
+
+File: mathgl_en.info,  Node: Public variables,  Next: Create and delete,  Up: mglData class
+
+6.1 Public variables
+====================
+
+ -- Variable of mglData: `float *' a
+     Data array itself. The flat data representation is used. For
+     example, matrix [nx x ny] is presented as flat (1d-) array with
+     length nx*ny. The element with indexes {i, j, k} is
+     a[i+nx*j+nx*ny*k] (indexes are zero based).
+
+ -- Variable of mglData: `int' nx
+     Number of points in 1st dimensions ('x' dimension).
+
+ -- Variable of mglData: `int' ny
+     Number of points in 2nd dimensions ('y' dimension).
+
+ -- Variable of mglData: `int' nz
+     Number of points in 3d dimensions ('z' dimension).
+
+ -- Variable of mglData: `char *' id
+     Column (or slice if nz>1) names - one character per column.
+
+
+File: mathgl_en.info,  Node: Create and delete,  Next: Fill,  Prev: Public variables,  Up: mglData class
+
+6.2 Create and delete
+=====================
+
+ -- Constructor on mglData: `' mglData (`int' mx=`1', `int' my=`1',
+          `int' mz=`1')
+     Default constructor. Allocates the memory for data array and
+     initializes it by zero.
+
+ -- Constructor on mglData: `' mglData (`const char *'fname)
+     Initializes the data by reading from file.
+
+ -- Constructor on mglData: `' mglData (`const mglData' &dat)
+     Initiates by other `mglData' instance.
+
+ -- Method on `mglData' (C++, Python): `void' Create (`int' mx, `int'
+          my=`1', `int' mz=`1')
+ -- C function: `void' mgl_data_create (`HMDT' dat, `int' mx, `int' my,
+          `int' mz)
+     Creates or recreates the array with specified size and fills it by
+     zero. This function does nothing if one of parameters MX, MY, MZ
+     is zero or negative.
+
+ -- Method on `mglData' (C++): `void' Set (`const float *'A, `int' NX,
+          `int' NY=`1', `int' NZ=`1')
+ -- Method on `mglData' (C++): `void' Set (`const double *'A, `int' NX,
+          `int' NY=`1', `int' NZ=`1')
+ -- C function: `void' mgl_data_set_float (`HMDT' dat, `const float
+          *'A, `int' NX, `int' NY, `int' NZ)
+ -- C function: `void' mgl_data_set_double (`HMDT' dat, `const double
+          *'A, `int' NX, `int' NY, `int' NZ)
+     Allocates memory and copies the data from the *flat* `float*' or
+     `double*' array.
+
+ -- Method on `mglData' (C++): `void' Set (`const float **'A, `int' N1,
+          `int' N2)
+ -- Method on `mglData' (C++): `void' Set (`const double **'A, `int'
+          N1, `int' N2)
+ -- C function: `void' mgl_data_set_float2 (`HMDT' dat, `const float
+          **'A, `int' N1, `int' N2)
+ -- C function: `void' mgl_data_set_double2 (`HMDT' dat, `const double
+          **'A, `int' N1, `int' N2)
+     Allocates memory and copies the data from the `float**' or
+     `double**' array with dimensions N1, N2, i.e. from array defined
+     as `float a[N1][N2];'.
+
+ -- Method on `mglData' (C++): `void' Set (`const float ***'A, `int'
+          N1, `int' N2)
+ -- Method on `mglData' (C++): `void' Set (`const double ***'A, `int'
+          N1, `int' N2)
+ -- C function: `void' mgl_data_set_float3 (`HMDT' dat, `const float
+          ***'A, `int' N1, `int' N2)
+ -- C function: `void' mgl_data_set_double3 (`HMDT' dat, `const double
+          ***'A, `int' N1, `int' N2)
+     Allocates memory and copies the data from the `float***' or
+     `double***' array with dimensions N1, N2, N3, i.e. from array
+     defined as `float a[N1][N2][N3];'.
+
+ -- Method on `mglData' (C++): `void' Set (`gsl_vector *'v)
+ -- C function: `void' mgl_data_set_vector (`HMDT' dat, `gsl_vector *'v)
+     Allocates memory and copies the data from the `gsl_vector *'
+     structure.
+
+ -- Method on `mglData' (C++): `void' Set (`gsl_matrix *'m)
+ -- C function: `void' mgl_data_set_matrix (`HMDT' dat, `gsl_matrix *'m)
+     Allocates memory and copies the data from the `gsl_matrix *'
+     structure.
+
+ -- Method on `mglData' (C++, Python): `inline void' Set (`const
+          mglData &'from)
+ -- C function: `void' mgl_data_set (`HMDT' dat, `const HMDT' from)
+     Copies the data from mglData instance FROM.
+
+ -- Method on `mglData' (C++): `void' Set (`const std::vector<int> &'d)
+ -- Method on `mglData' (C++): `void' Set (`const std::vector<float>
+          &'d)
+ -- Method on `mglData' (C++): `void' Set (`const std::vector<double>
+          &'d)
+     Allocates memory and copies the data from the `std::vector<T>'
+     array.
+
+ -- Method on `mglData' (C+, Python): `void' Set (`const char *'str,
+          `int' NX, `int' NY=`1', `int' NZ=`1')
+ -- C function: `void' mgl_data_set_values (`const char *'str, `int'
+          NX, `int' NY, `int' NZ)
+     Allocates memory and scanf the data from the string.
+
+
+File: mathgl_en.info,  Node: Fill,  Next: Rearrange,  Prev: Create and delete,  Up: mglData class
+
+6.3 Fill
+========
+
+ -- Method on `mglData' (C++, Python): `void' Fill (`float' x1, `float'
+          x2, `char' dir=`'x'')
+ -- C function: `void' mgl_data_fill (`HMDT' dat, `float' x1, `float'
+          x2, `char' dir)
+     Equidistantly fills the data values to range [X1, X2] in direction
+     DIR={`x',`y',`z'}.
+
+ -- Method on `mglData' (C++, Python): `void' Fill (`const char *'eq,
+          `mglPoint' Min, `mglPoint' Max, `const mglData *'vdat=0,
+          `const mglData *'wdat=0)
+ -- C function: `void' mgl_data_fill (`HMGL' gr, `HMDT' dat, `const
+          char *'eq, `const HMDT *'vdat, `const HMDT *'wdat)
+     Fills the value of array according to the formula in string EQ.
+     Formula is an arbitrary expression depending  on variables `x',
+     `y', `z', `u', `v', `w'. Coordinates `x', `y', `z' are supposed to
+     be normalized in range MIN x MAX (in difference from `Modify'
+     functions). Variable `u' is the original value of the array.
+     Variables `v' and `w' are values of VDAT, WDAT which can be `NULL'
+     (i.e. can be omitted).
+
+ -- Method on `mglData' (C++, Python): `void' Modify (`const char *'eq,
+          `int' dim=`0')
+ -- Method on `mglData' (C++, Python): `void' Modify (`const char *'eq,
+          `const mglData &'v)
+ -- Method on `mglData' (C++, Python): `void' Modify (`const char *'eq,
+          `const mglData &'v, `const mglData &'w)
+ -- C function: `void' mgl_data_modify (`HMDT' dat, `const char *'eq,
+          `int' dim)
+ -- C function: `void' mgl_data_modify_vw (`HMDT' dat, `const char
+          *'eq, `const HMDT' v, `const HMDT' w)
+     Fills the value of array according to the formula in string EQ.
+     Formula is an arbitrary expression depending  on variables `x',
+     `y', `z', `u', `v', `w'. Coordinates `x', `y', `z' are supposed to
+     be normalized in range [0,1] (in difference from `Fill'
+     functions). Variable `u' is the original value of the array.
+     Variables `v' and `w' are values of VDAT, WDAT which can be `NULL'
+     (i.e. can be omitted). If DIM>0 is specified then modification
+     will be fulfilled only for slices >=DIM.
+
+ -- Method on `mglData' (C++, Python): `void' Put (`float' val, `int'
+          i=`-1', `int' j=`-1', `int' k=`-1')
+ -- mglData: `void' mgl_data_put_val (`HMDT' a, `float' val, `int' i,
+          `int' j, `int' k)
+     Function sets value(s) of array a[I, J, K] = VAL. Negative indexes
+     I, J, K=-1 set the value VAL to whole range in corresponding
+     direction(s). For example, `Put(val,-1,0,-1);' sets a[i,0,j]=VAL
+     for i=0...(nx-1), j=0...(nz-1).
+
+ -- Method on `mglData' (C++, Python): `void' Put (`const mglData &'v,
+          `int' i=`-1', `int' j=`-1', `int' k=`-1')
+ -- mglData: `void' mgl_data_put_dat (`HMDT' a, `const HMDT' v, `int'
+          i, `int' j, `int' k)
+     Function copies value(s) from array V to the range of original
+     array. Negative indexes I, J, K=-1 set the range in corresponding
+     direction(s). At this minor dimensions of array V should be large
+     than corresponding dimensions of this array. For example,
+     `Put(v,-1,0,-1);' sets a[i,0,j]=v.ny>nz ? v[i,j] : v[i], where
+     i=0...(nx-1), j=0...(nz-1) and condition v.nx>=nx is true.
+
+ -- C function: `void' mgl_data_set_value (`HMDT' dat, `float' v, `int'
+          i, `int' j, `int' k)
+     Sets the value in specified cell of the data with border checking.
+
+ -- C function: `float' mgl_data_get_value (`HMDT' dat, `int' i, `int'
+          j, `int' k)
+     Gets the value in specified cell of the data with border checking.
+
+ -- Method on `mglData' (C+, Python): `void' GetNx ()
+ -- C function: `float' mgl_data_get_nx (`HMDT' dat)
+     Gets the x-size of the data.
+
+ -- Method on `mglData' (C+, Python): `void' GetNy ()
+ -- C function: `float' mgl_data_get_ny (`HMDT' dat)
+     Gets the y-size of the data.
+
+ -- Method on `mglData' (C+, Python): `void' GetNz ()
+ -- C function: `float' mgl_data_get_nz (`HMDT' dat)
+     Gets the z-size of the data.
+
+
+File: mathgl_en.info,  Node: Rearrange,  Next: File I/O,  Prev: Fill,  Up: mglData class
+
+6.4 Rearrange
+=============
+
+ -- Method on `mglData' (C++, Python): `void' Rearrange (`int' mx,
+          `int' my=`0', `int' mz=`0')
+ -- C function: `void' mgl_data_rearrange (`HMDT' dat, `int' mx, `int'
+          my, `int' mz)
+     Rearrange dimensions without changing data array so that resulting
+     sizes should  be MX*MY*MZ < nx*ny*nz. If some of parameter MY or
+     MZ are zero then it will be selected to optimal fill of data
+     array. For example, if MY=0 then it will be change to
+     MY=nx*ny*nz/MX and MZ will be 1.
+
+ -- Method on `mglData' (C++, Python): `void' Extend (`int' n1, `int'
+          n2=`0')
+ -- C function: `void' mgl_data_extend (`HMDT' dat, `int' n1, `int' n2)
+     Increase the dimensions of the data by inserting new (|N1|+1)-th
+     slices after (for N1>0) or before (for N1<0) of existed one. It is
+     possible to insert 2 dimensions simultaneously for 1d data by
+     using parameter N2. Data to new slices is copy from existed one.
+     For example, for N1>0 new array will be a_ij^new = a_i^old where
+     j=0...N1. Correspondingly, for N1<0 new array will be a_ij^new =
+     a_j^old where i=0...|N1|.
+
+ -- Method on `mglData' (C++, Python): `void' Transpose (`const char
+          *'dim=`"yx"')
+ -- C function: `void' mgl_data_transpose (`const char *'dim)
+     Transposes (shift order of) dimensions of the data. New order of
+     dimensions is specified int string DIM. This function may be
+     useful also for the reading of one-dimensional data.
+
+ -- Method on `mglData' (C++, Python): `void' Squeeze (`int' rx, `int'
+          ry=`1', `int' rz=`1', `bool' smooth=`false')
+ -- C function: `void' mgl_data_squeeze (`HMDT' dat, `int' rx, `int'
+          ry, `int' rz, `int' smooth)
+     Reduces the data size by excluding data elements which indexes are
+     not divisible by RX, RY, RZ correspondingly. Parameter SMOOTH set
+     to use smoothing (i.e. out[i]=\sum_{j=i,i+r} a[j]/r) or not (i.e.
+     out[i]=a[j*r]).
+
+ -- Method on `mglData' (C++, Python): `void' Crop (`int' n1, `int' n2,
+          `char' dir=`'x'')
+ -- C function: `void' mgl_data_crop (`HMDT' dat, `int' n1, `int' n2,
+          `char' dir)
+     Cuts off edges of the data I<N1 and I>N2 if N2>0 or I>`n[xyz]'-N2
+     if N2<=0 along direction DIR.
+
+ -- Method on `mglData' (C++, Python): `void' InsertRows (`int' at,
+          `int' num=`1', `const char *'eq=`NULL')
+     Insert NUM rows (slice along y-direction) at position AT and fill
+     it by formula EQ (if EQ!=0) or by zeros.
+
+ -- Method on `mglData' (C++, Python): `void' InsertColumns (`int' at,
+          `int' num=`1', `const char *'eq=`NULL')
+     Insert NUM columns (slice along x-direction) at position AT and
+     fill it by formula EQ (if EQ!=0) or by zeros.
+
+ -- Method on `mglData' (C++, Python): `void' InsertSlices (`int' at,
+          `int' num=`1', `const char *'eq=`NULL')
+     Insert NUM slices (slice along z-direction) at position AT and
+     fill it by formula EQ (if EQ!=0) or by zeros.
+
+ -- Method on `mglData' (C++, Python): `void' DeleteRows (`int' at,
+          `int' num=`1')
+     Delete NUM rows (slice along y-direction) at position AT.
+
+ -- Method on `mglData' (C++, Python): `void' DeleteColumns (`int' at,
+          `int' num=`1')
+     Delete NUM columns (slice along x-direction) at position AT.
+
+ -- Method on `mglData' (C++, Python): `void' DeleteSlices (`int' at,
+          `int' num=`1')
+     Delete NUM slices (slice along z-direction) at position AT.
+
+ -- Method on `mglData' (C++, Python): `void' Insert (`char' dir, `int'
+          pos=`0', `int' num=`1')
+ -- C function: `void' mgl_data_insert (`HMDT' dat, `char' dir, `int'
+          pos, `char' num)
+     Insert NUM slices along DIR-direction at position POS and fill it
+     by zeros.
+
+ -- Method on `mglData' (C++, Python): `void' Delete (`char' dir, `int'
+          pos=`0', `int' num=`1')
+ -- C function: `void' mgl_data_delete (`HMDT' dat, `char' dir, `int'
+          pos, `char' num)
+     Delete NUM slices along DIR-direction at position POS.
+
+
+File: mathgl_en.info,  Node: File I/O,  Next: Make another data,  Prev: Rearrange,  Up: mglData class
+
+6.5 File I/O
+============
+
+ -- Method on `mglData' (C++, Python): `void' Read (`const char *'fname)
+ -- C function: `void' mgl_data_read (`HMDT' dat, `const char *'fname)
+     Reads data from tab-separated text file with auto determining
+     sizes of the data.
+
+ -- Method on `mglData' (C++, Python): `void' Read (`const char
+          *'fname, `int' mx, `int' my=`1', `int' mz=`1')
+ -- C function: `void' mgl_data_read_dim (`HMDT' dat, `const char
+          *'fname, `int' mx, `int' my, `int' mz)
+     Reads data from text file with specified data sizes. This function
+     does nothing if one of parameters MX, MY or MZ is zero or negative.
+   
+ -- Method on `mglData' (C++, Python): `void' ReadMat (`const char
+          *'fname, `int' dim=`2')
+ -- C function: `void' mgl_data_read_mat (`HMDT' dat, `const char
+          *'fname, `int' dim)
+     Read data from text file with size specified at beginning of the
+     file by first DIM numbers. At this, variable DIM set data
+     dimensions.
+
+ -- Method on `mglData' (C++, Python): `void' ReadRange (`const char
+          *'templ, `float' from, `float' to, `float' step=`1.f', `bool'
+          as_slice=`false')
+     Join data arrays from several text files. The file names are
+     determined by function call `sprintf(fname,templ,val);', where VAL
+     changes from FROM to TO with step STEP. The data load one-by-one
+     in the same slice if AS_SLICE=`false' or as slice-by-slice if
+     AS_SLICE=`true'.
+   
+ -- Method on `mglData' (C++, Python): `void' ReadAll (`const char
+          *'templ, `bool' as_slice=`false')
+     Join data arrays from several text files which filenames satisfied
+     the template TEMPL (for example, TEMPL=`"t_*.dat"'). The data load
+     one-by-one in the same slice if AS_SLICE=`false' or as
+     slice-by-slice if AS_SLICE=`true'.
+
+ -- Method on `mglData' (C++, Python): `void' Save (`const char
+          *'fname, `int' ns=`-1') `const'
+ -- C function: `void' mgl_data_save (`const HMDT' dat, `const char
+          *'fname, `int' ns)
+     Saves the whole data array (for NS=`-1') or only NS-th slice to
+     text file.
+
+ -- Method on `mglData' (C++, Python): `void' ReadHDF (`const char
+          *'fname, `const char *'dname)
+     Reads data array named DNAME from HDF5 or HDF4 file. This function
+     does nothing if NO_HDF5|NO_HDF4 was defined during library
+     compilation.
+   
+ -- Method on `mglData' (C++, Python): `void' SaveHDF (`const char
+          *'fname, `const char *'dname, `bool' rewrite=`false') `const'
+     Saves data array named DNAME from HDF5 or HDF4 file. This function
+     does nothing if NO_HDF5|NO_HDF4 was defined during library
+     compilation.
+
+ -- Method on `mglData' (C++, Python): `void' Import (`const char
+          *'fname, `const char *'scheme, `float' v1=`0', float v2=`1')
+ -- C function: `void' mgl_data_import (`HMDT' dat, `const char
+          *'fname, `const char *'scheme, `float' v1, float v2)
+     Reads data from bitmap file (now support only PNG format). The RGB
+     values of bitmap pixels are transformed to float values in range
+     [V1, V2] using color scheme SCHEME (*note Color scheme::).
+   
+ -- Method on `mglData' (C++, Python): `void' Export (`const char
+          *'fname, `const char *'scheme, `float' v1=`0', float v2=`0',
+          `int' ns=`-1') const
+ -- C function: `void' mgl_data_export (`HMDT' dat, `const char
+          *'fname, `const char *'scheme, `float' v1, float v2, `int'
+          ns) const
+     Saves data matrix (or `ns'-th slice for 3d data) to bitmap file
+     (now support only PNG format). The data values are transformed
+     from range [V1, V2] to RGB pixels of bitmap using color scheme
+     SCHEME (*note Color scheme::). If V1>=V2 then the values of V1, V2
+     are automatically determined as minimal and maximal value of the
+     data array.
+
+
+File: mathgl_en.info,  Node: Make another data,  Next: Change data,  Prev: File I/O,  Up: mglData class
+
+6.6 Make another data
+=====================
+
+ -- Method on `mglData' (C++, Python): `mglData' SubData (`int' xx,
+          `int' yy=`-1', `int' zz=`-1') `const'
+ -- C function: `HMDT' mgl_data_subdata (`const HMDT' dat, `int' xx,
+          `int' yy, `int' zz)
+     Extracts sub-array data from the original data array keeping fixed
+     positive index. For example `SubData(-1,2)' extracts 3d row
+     (indexes are zero based), `SubData(4,-1)' extracts 5th column,
+     `SubData(-1,-1,3)' extracts 4th slice and so on.
+
+ -- Method on `mglData' (C++, Python): `mglData' SubData (`const
+          mglData &'xx, `const mglData &'yy, `const mglData &'zz)
+          `const'
+ -- C function: `HMDT' mgl_data_subdata_ext (`const HMDT' dat, `const
+          HMDT' xx, `const HMDT' yy, `const HMDT' zz)
+     Extracts sub-array data from the original data array for indexes
+     specified by arrays XX, YY, ZZ (indirect access). The resulting
+     array have the same dimensions as input arrays for 2D and 3D
+     arguments. This function work like previous one for 1D arguments
+     (or numbers). The dimensions of all argument must be the same if
+     they are 2D or 3D arrays.
+
+ -- Method on `mglData' (C++, Python): `mglData' Column (`const char
+          *'eq) `const'
+ -- C function: `HMDT' mgl_data_column (`const HMDT' dat, `const char
+          *'eq)
+     Get column (or slice) of the data filled by formula EQ of other
+     named columns. For example, `Column("n*w^2/exp(t)");'. The column
+     ids must be defined first by `SetColumnId()' function.
+
+ -- Method on `mglData' (C++, Python): `void' SetColumnId (`const char
+          *'ids)
+ -- C function: `void' mgl_data_set_id (`HMDT' dat, `const char *'ids)
+     Set the symbol id for data columns. The string must contain one
+     symbol 'a'...'z' per column (without spaces).
+
+ -- Method on `mglData' (C++, Python): `mglData' Trace () `const'
+     Gets array of diagonal elements a[i,i] (for 2D case) or a[i,i,i]
+     (for 3D case) where i=0...nx-1. Function return copy of itself for
+     1D case. Data array must have dimensions ny,nz >= nx or ny,nz = 1.
+
+ -- Method on `mglData' (C++, Python): `mglData' Hist (`int' n, `float'
+          v1=`0', `float' v2=`1', `int' nsub=`0') `const'
+ -- C function: `HMDT' mgl_data_hist (`const HMDT' dat, `int' n,
+          `float' v1, `float' v2, `int' nsub)
+     Creates N-th points distribution of the data values in range [V1,
+     V2]. Parameter NSUB define the number of additional interpolated
+     points (for smoothness of histogram).
+
+ -- Method on `mglData' (C++, Python): `mglData' Hist (`const mglData
+          &'w, `int' n, `float' v1=`0', `float' v2=`1', `int' nsub=`0')
+          `const'
+ -- C function: `HMDT' mgl_data_hist_w (`const HMDT' dat, `const HMDT'
+          w, `int' n, `float' v1, `float' v2, `int' nsub)
+     Creates N-th points distribution of the data values in range [V1,
+     V2]. Array W specifies weights of the data elements. Parameter
+     NSUB define the number of additional interpolated points (for
+     smoothness of histogram).
+
+ -- Method on `mglData' (C++, Python): `mglData' Momentum (`char' dir,
+          `const char *'how) `const'
+ -- C function: `HMDT' mgl_data_momentum (`const HMDT' dat, `char' dir,
+          `const char *'how)
+     Get momentum (1D-array) of the data along direction DIR. String
+     HOW contain kind of momentum. The momentum is defined like as
+     res_k = \sum_ij how(x_i,y_j,z_k) a_ij/ \sum_ij a_ij if VAR=`z' and
+     so on. Coordinates `x', `y', `z' are data indexes normalized in
+     range [0,1].
+
+ -- Method on `mglData' (C++, Python): `mglData' Sum (`const char
+          *'dir) `const'
+ -- C function: `HMDT' mgl_data_sum (`const HMDT' dat, `const char
+          *'dir)
+     Gets array which is the result of summation in given direction or
+     direction(s).
+   
+ -- Method on `mglData' (C++, Python): `mglData' Max (`const char
+          *'dir) `const'
+ -- C function: `HMDT' mgl_data_max_dir (`const HMDT' dat, `const char
+          *'dir)
+     Gets array which is the maximal data values in given direction or
+     direction(s).
+   
+ -- Method on `mglData' (C++, Python): `mglData' Min (`const char
+          *'dir) `const'
+ -- C function: `HMDT' mgl_data_min_dir (`const HMDT' dat, `const char
+          *'dir)
+     Gets array which is the maximal data values in given direction or
+     direction(s).
+
+ -- Method on `mglData' (C++, Python): `mglData' Combine (`const
+          mglData &'a) `const'
+ -- C function: `HMDT' mgl_data_combine (`const HMDT' dat, `const HMDT'
+          a)
+     Return direct multiplication of arrays (like, res[i,j] =
+     this[i]*a[j] and so on).
+
+ -- Method on `mglData' (C++, Python): `mglData' Evaluate (`const
+          mglData &'idat, `bool' norm=`true') `const'
+ -- Method on `mglData' (C++, Python): `mglData' Evaluate (`const
+          mglData &'idat, `const mglData &'jdat, `bool' norm=`true')
+          `const'
+ -- Method on `mglData' (C++, Python): `mglData' Evaluate (`const
+          mglData &'idat, `const mglData &'jdat, `const mglData &'kdat,
+          `bool' norm=`true') `const'
+ -- C function: `HMDT' mgl_data_evaluate_i (`const HMDT' dat, `const
+          HMDT' idat, `int' norm)
+ -- C function: `HMDT' mgl_data_evaluate_ij (`const HMDT' dat, `const
+          HMDT' idat, `const HMDT' jdat, `int' norm)
+ -- C function: `HMDT' mgl_data_evaluate_ijk (`const HMDT' dat, `const
+          HMDT' idat, `const HMDT' jdat, `const HMDT' kdat, `int' norm)
+     Get array which values is result of interpolation of original
+     array for coordinates from other arrays. All dimensions must be
+     the same for data IDAT, JDAT, KDAT. Coordinates from IDAT, JDAT,
+     KDAT are supposed to be normalized in range [0,1] (if NORM=`true')
+     or in ranges [0,nx], [0,ny], [0,nz] correspondingly.
+
+ -- Method on `mglData' (C++, Python): `mglData' Resize (`int' mx,
+          `int' my=`1', `int' mz=`1', `float' x1=`0', `float' x2=`1',
+          `float' y1=`0', `float' y2=`1', `float' z1=`0', `float'
+          z2=`1') `const'
+ -- C function: `HMDT' mgl_data_resize (`const HMDT' dat, `int' mx,
+          `int' my, `int' mz)
+ -- C function: `HMDT' mgl_data_resize_box (`const HMDT' dat, `int' mx,
+          `int' my, `int' mz, `float' x1, `float' x2, `float' y1,
+          `float' y2, `float' z1, `float' z2)
+     Resizes the data to new size MX, MY, MZ from box (part) [X1,X2] x
+     [Y1,Y2] x [Z1,Z2] of original array. Initially x,y,z coordinates
+     are supposed to be in [0,1].
+
+
+File: mathgl_en.info,  Node: Change data,  Next: Interpolation,  Prev: Make another data,  Up: mglData class
+
+6.7 Change data
+===============
+
+These functions change the data in some direction like
+differentiations, integrations and so on. The direction in which the
+change will applied is specified by the string parameter, which may
+contain `x', `y' or `z' characters for 1-st, 2-nd and 3-d dimension
+correspondengly.
+
+ -- Method on `mglData' (C++, Python): `void' CumSum (`const char *'dir)
+ -- C function: `void' mgl_data_cumsum (`HMDT' dat, `const char *'dir)
+     Cumulative summation of the data in given direction or directions.
+
+ -- Method on `mglData' (C++, Python): `void' Integral (`const char
+          *'dir)
+ -- C function: `void' mgl_data_integral (`HMDT' dat, `const char *'dir)
+     Integrates (like cumulative summation) the data in given direction
+     or directions.
+
+ -- Метод класса `mglData' (C++, Python): `void' Diff (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_diff (`HMDT' dat, `const char *'dir)
+     Differentiates the data in given direction or directions.
+
+ -- Метод класса `mglData' (C++, Python): `void' Diff (`const mglData
+          &'x, `const mglData &'y)
+ -- Метод класса `mglData' (C++, Python): `void' Diff (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z)
+ -- Функция С: `void' mgl_data_diff_par (`HMDT' dat, `const HMDT' x,
+          `const HMDT'y, `const HMDT'z)
+     Differentiates the data specified parametrically in direction X
+     with Y, Z=constant. Parametrical differentiation uses the formula
+     (for 2D case): da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j) where
+     a_i=da/di, a_j=da/dj denotes usual differentiation along 1st and
+     2nd dimensions. The similar formula is used for 3D case. Note,
+     that you may change the order of arguments - for example, if you
+     have 2D data a(i,j) which depend on coordinates {x(i,j), y(i,j)}
+     then usual derivative along `x' will be `Diff(x,y);' and usual
+     derivative along `y' will be `Diff(y,x);'.
+
+ -- Метод класса `mglData' (C++, Python): `void' Diff2 (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_diff2 (`const char *'dir)
+     Double-differentiates (like Laplace operator) the data in given
+     direction.
+
+ -- Метод класса `mglData' (C++, Python): `void' SinFFT (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_sinfft (`HMDT' dat, `const char *'dir)
+     Do Sine transform of the data in given direction or directions.
+     The Sine transform is \sum a_i \sin(k i).
+
+ -- Метод класса `mglData' (C++, Python): `void' CosFFT (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_cosfft (`HMDT' dat, `const char *'dir)
+     Do Cosine transform of the data in given direction or directions.
+     The Cosine transform is \sum a_i \cos(k i).
+
+ -- Метод класса `mglData' (C++, Python): `void' Hankel (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_hankel (`HMDT' dat, `const char *'dir)
+     Do Hankel transform of the data in given direction or directions.
+     The Hankel transform is \sum a_i J_0(k i).
+
+ -- Метод класса `mglData' (C++, Python): `void' Swap (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_swap (`HMDT' dat, `const char *'dir)
+     Swaps the left and right part of the data in given direction
+     (useful for Fourier spectrum).
+
+ -- Метод класса `mglData' (C++, Python): `void' Roll (`char' dir,
+          `num')
+ -- Функция С: `void' mgl_data_roll (`HMDT' dat, `char' dir, `num')
+     Rolls the data along direction DIR. Resulting array will be out[i]
+     = ini[(i+num)%nx] if `dir='x''.
+
+ -- Метод класса `mglData' (C++, Python): `void' Mirror (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_mirror (`HMDT' dat, `const char *'dir)
+     Mirror the left-to-right part of the data in given direction.
+     Looks like change the value index I->N-I.
+
+ -- Метод класса `mglData' (C++, Python): `void' Sew (`const char
+          *'dir, `float' da=`2*M_PI')
+ -- Функция С: `void' mgl_data_sew (`HMDT' dat, `const char *'dir,
+          `float' da)
+     Remove value steps (like phase jumps after inverse trigonometric
+     functions) with period DA in given direction.
+
+ -- Метод класса `mglData' (C++, Python): `void' Smooth (`int' Type,
+          `const char *'dir, `float' delta=`0')
+ -- Функция С: `void' mgl_data_smooth (`HMDT' dat, `int' Type, `float'
+          delt, `const char *'dirs)
+     Smooths the data on specified direction or directions by method
+     TYPE. Now 4 methods are supported: `SMOOTH_NONE' does nothing for
+     DELTA=0 or approaches data to zero with the step DELTA,
+     `SMOOTH_LINE_3' linear averaging by 3 points, `SMOOTH_LINE_5'
+     linear averaging by 5 points, `SMOOTH_QUAD_5' quadratic averaging
+     by 5 points. Parameter DELTA forbids to change values of array
+     more than DELTA from the original ones. String DIRS specifies the
+     dimensions which will be smoothed. It may contain characters: 'x'
+     for 1st dimension, 'y' for 2nd dimension, 'z' for 3d dimension.
+
+ -- Метод класса `mglData' (C++, Python): `void' Smooth (`const char
+          *'dir)
+     Smooths the data on specified direction(s). This is the same as
+     `Smooth()' but argument TYPE is specified in string as `0' for
+     `SMOOTH_NONE', `3' for `SMOOTH_LINE_3', `5' for `SMOOTH_LINE_5'.
+     If string DIR don't contain digits `035' then TYPE=`SMOOTH_QUAD_5'
+     is used.
+
+ -- Метод класса `mglData' (C++, Python): `void' Envelop (`char'
+          dir=`'x'')
+ -- Функция С: `void' mgl_data_envelop (`HMDT' dat, `char' dir)
+     Find envelop for data values along direction DIR.
+
+ -- Метод класса `mglData' (C++, Python): `void' Norm (`float' v1=`0',
+          `float' v2=`1', `bool' sym=`false', `int' dim=`0')
+     Normalizes the data to range [V1,V2]. If flag SYM=`true' then
+     symmetrical interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used.
+     Modification will be applied only for slices >=DIM.
+
+ -- Метод класса `mglData' (C++, Python): `void' NormSl (`float'
+          v1=`0', `float' v2=`1', `char' dir=`'z'', `bool'
+          keep_en=`true', `bool' sym=`false')
+ -- Функция С: `void' mgl_data_norm_slice (`HMDT' dat, `float' v1,
+          `float' v2, `char' dir, `int' keep_en, `int' sym)
+     Normalizes data slice-by-slice along direction DIR the data in
+     slices to range [V1,V2]. If flag SYM=`true' then symmetrical
+     interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used. If KEEP_EN is
+     set then maximal value of k-th slice will be limited by \sqrt{\sum
+     a_ij(k)/\sum a_ij(0)}.
+
+
+File: mathgl_en.info,  Node: Interpolation,  Next: Informational functions,  Prev: Change data,  Up: mglData class
+
+6.8 Interpolation
+=================
+
+ -- Method on `mglData' (C++, Python): `float' Spline (`float' x,
+          `float' y=`0', `float' z=`0') `const'
+ -- C function: `float' mgl_data_spline (`const HMDT' dat, `float' x,
+          `float' y, `float' z)
+     Interpolates data by cubic spline to the given point X in
+     [0...nx-1], Y in [0...ny-1], Z in [0...nz-1].
+
+ -- Method on `mglData' (C++, Python): `float' Spline1 (`float' x,
+          `float' y=`0', `float' z=`0') `const'
+ -- C function: `float' mgl_data_spline1 (`const HMDT' dat, `float' x,
+          `float' y, `float' z)
+     Interpolates data by cubic spline to the given point X, Y, Z which
+     assumed to be normalized in range [0, 1].
+   
+ -- Method on `mglData' (C++, Python): `float' Linear (`float' x,
+          `float' y=`0', `float' z=`0') `const'
+ -- C function: `float' mgl_data_linear (`const HMDT' dat, `float' x,
+          `float' y, `float' z)
+     Interpolates data by linear function to the given point X in
+     [0...nx-1], Y in [0...ny-1], Z in [0...nz-1].
+   
+ -- Method on `mglData' (C++, Python): `float' Linear1 (`float' x,
+          `float' y=`0', `float' z=`0') `const'
+ -- C function: `float' mgl_data_linear1 (`const HMDT' dat, `float' x,
+          `float' y, `float' z)
+     Interpolates data by linear function to the given point X, Y, Z
+     which assumed to be normalized in range [0, 1].
+   
+ -- Method on `mglData' (C++, Python): `float' v (`int' i, `int' j=`0',
+          `int' k=`0') `const'
+ -- C function: `float' mgl_data_get_value (`const HMDT' dat, `int' i,
+          `int' j, `int' k)
+     Gets the value in specified cell of the data with border checking.
+   
+ -- Method on `mglData' (C++, Python): `float' Spline5 (`float' x,
+          `float' y, `float' z, `float' &dx, `float' &dy, `float' &dz)
+          `const'
+     Interpolate by 5-th order splain the data to given point X, Y, Z
+     which normalized in range [0, 1] and evaluate its derivatives.
+
+ -- C function: `float *' mgl_data_value (`HMDT' dat, `int' i, `int' j,
+          `int' k)
+     Gets the pointer to data element.
+
+ -- C function: `const float *' mgl_data_data (`const HMDT' dat)
+     Gets the pointer to internal data array.
+
+
+File: mathgl_en.info,  Node: Informational functions,  Next: Operators,  Prev: Interpolation,  Up: mglData class
+
+6.9 Informational functions
+===========================
+
+ -- Метод класса `mglData' (C++): `void' PrintInfo (`char *'buf, `bool'
+          all=`false') `const'
+     Print information about the data (sizes and momentum) to string
+     BUF. Parameter ALL set to print most of information (if `true') or
+     just basic one like dimensions, maximal an minimal values.
+
+ -- Метод класса `mglData' (C++): `void' PrintInfo (`FILE *'fp) `const'
+     Print information about the data (sizes and momentum) to FILE (for
+     example, stdout).
+
+ -- Метод класса `mglData' (C++, Python): `float' Maximal () `const'
+ -- Функция С: `float' mgl_data_max (`const HMDT' dat)
+     Gets maximal value of the data.
+   
+ -- Метод класса `mglData' (C++, Python): `float' Minimal () `const'
+ -- Функция С: `float' mgl_data_min (`HMDT' dat) `const'
+     Gets minimal value of the data.
+
+ -- Метод класса `mglData' (C++, Python): `float' Maximal (`int' &i,
+          `int' &j, `int' &k) `const'
+ -- Функция С: `float' mgl_data_max_int (`const HMDT' dat, `int' *i,
+          `int' *j, `int' *k)
+     Gets maximal value of the data and its position in the array to
+     variables I, J, K.
+
+ -- Метод класса `mglData' (C++, Python): `float' Minimal (`int' &i,
+          `int' &j, `int' &k) `const'
+ -- Функция С: `float' mgl_data_min_int (`const HMDT' dat, `int' *i,
+          `int' *j, `int' *k)
+     Gets minimal value of the data and its position in the array to
+     variables I, J, K.
+
+ -- Метод класса `mglData' (C++, Python): `float' Maximal (`float' &i,
+          `float' &j, `float' &k) `const'
+ -- Функция С: `float' mgl_data_max_real (`const HMDT' dat, `float' *x,
+          `float' *y, `float' *z)
+     Gets maximal value of the data and its approximated (interpolated)
+     position to variables I, J, K.
+
+ -- Метод класса `mglData' (C++, Python): `float' Minimal (`float' &i,
+          `float' &j, `float' &k) `const'
+ -- Функция С: `float' mgl_data_min_real (`const HMDT' dat, `float' *x,
+          `float' *y, `float' *z)
+     Gets minimal value of the data and its approximated (interpolated)
+     position to variables I, J, K.
+
+ -- Метод класса `mglData' (C++, Python): `float' Momentum (`char' dir,
+          `float' &m, `float' &w) `const'
+ -- Функция С: `float' mgl_data_momentum_mw (`const HMDT' dat, `char'
+          dir, `float' *m, `float' *w)
+     Gets zero-momentum (energy, I=\sum a_i) and write first momentum
+     (median, m = \sum \xi_i a_i/I) and second momentum (width, w^2 =
+     \sum (\xi_i-m)^2 a_i/I) to variables. Here \xi is corresponding
+     coordinate if DIR is `'x'', `'y'' or `'z''. Otherwise median is m
+     = \sum a_i/N, width is w^2 = \sum (a_i-m)^2/N.
+
+ -- Метод класса `mglData' (C++): `float' Momentum (`char' dir, `float'
+          &m, `float' &w, `float' &s, `float' &k) `const'
+     Gets zero-momentum (energy, I=\sum a_i) and write first momentum
+     (median, m = \sum \xi_i a_i/I), second momentum (width, w^2 = \sum
+     (\xi_i-m)^2 a_i/I), third momentum (skewness, s = \sum (\xi_i-m)^3
+     a_i/ I w^3) and fourth momentum (kurtosis, k = \sum (\xi_i-m)^4
+     a_i / 3 I w^4) to variables. Here \xi is corresponding coordinate
+     if DIR is `'x'', `'y'' or `'z''. Otherwise median is m = \sum
+     a_i/N, width is w^2 = \sum (a_i-m)^2/N and so on.
+
+ -- Метод класса `mglData' (C++, Python): `float' Find (`const char
+          *'cond, `int' &i, `int' &j, `int' &k) `const'
+ -- Функция С: `float' mgl_data_first (`const HMDT' dat, `const char
+          *'cond, `int' *i, `int' *j, `int' *k)
+     Find position (after specified in I, J, K) of first nonzero value
+     of formula COND. Function return the data value at found position.
+   
+ -- Метод класса `mglData' (C++, Python): `float' Last (`const char
+          *'cond, `int' &i, `int' &j, `int' &k) `const'
+ -- Функция С: `float' mgl_data_last (`const HMDT' dat, `const char
+          *'cond, `int' *i, `int' *j, `int' *k)
+     Find position (before specified in I, J, K) of last nonzero value
+     of formula COND. Function return the data value at found position.
+
+ -- Метод класса `mglData' (C++, Python): `int' Find (`const char
+          *'cond, `char' dir, `int' i=`0', `int' j=`0', `int' k=`0')
+          `const'
+ -- Функция С: `float' mgl_data_find (`const HMDT' dat, `const char
+          *'cond, `int' i, `int' j, `int' k)
+     Return position of first in direction DIR nonzero value of formula
+     COND. The search is started from point {i,j,k}.
+   
+ -- Метод класса `mglData' (C++, Python): `bool' FindAny (`const char
+          *'cond) `const'
+ -- Функция С: `float' mgl_data_find_any (`const HMDT' dat, `const char
+          *'cond)
+     Determines if any nonzero value of formula in the data array.
+
+
+File: mathgl_en.info,  Node: Operators,  Next: Global functions,  Prev: Informational functions,  Up: mglData class
+
+6.10 Operators
+==============
+
+ -- Method on `mglData' (C++, Python): `void' operator= (`const mglData
+          &'d)
+     Copies data from other variable.
+
+ -- Method on `mglData' (C++, Python): `void' operator*= (`const
+          mglData &'d)
+ -- C function: `void' mgl_data_mul_dat (`HMDT' dat, `const HMDT' d)
+     Multiplies the data by the other one for each element.
+
+ -- Method on `mglData' (C++, Python): `void' operator/= (`const
+          mglData &'d)
+ -- C function: `void' mgl_data_div_dat (`HMDT' dat, `const HMDT' d)
+     Divides the data by the other one for each element.
+
+ -- Method on `mglData' (C++, Python): `void' operator+= (`const
+          mglData &'d)
+ -- C function: `void' mgl_data_add_dat (`HMDT' dat, `const HMDT' d)
+     Adds the other data.
+
+ -- Method on `mglData' (C++, Python): `void' operator-= (`const
+          mglData &'d)
+ -- C function: `void' mgl_data_sub_dat (`HMDT' dat, `const HMDT' d)
+     Subtracts the other data.
+
+ -- Method on `mglData' (C++, Python): `void' operator*= (`float' d)
+ -- C function: `void' mgl_data_mul_num (`HMDT' dat, `float' d)
+     Multiplies each element by the number.
+
+ -- Method on `mglData' (C++, Python): `void' operator/= (`float' d)
+ -- C function: `void' mgl_data_div_num (`HMDT' dat, `float' d)
+     Divides each element by the number.
+
+ -- Method on `mglData' (C++, Python): `void' operator+= (`float' d)
+ -- C function: `void' mgl_data_add_num (`HMDT' dat, `float' d)
+     Adds the number to each element.
+
+ -- Method on `mglData' (C++, Python): `void' operator-= (`float' d)
+ -- C function: `void' mgl_data_sub_num (`HMDT' dat, `float' d)
+     Subtracts the number to each element.
+
+ -- Library Function: mglData operator+ (`const mglData &'a, `const
+          mglData &'b)
+     Adds the other data.
+
+ -- Library Function: mglData operator+ (`float' a, `const mglData &'b)
+     Adds the number.
+
+ -- Library Function: mglData operator+ (`const mglData &'a, `float' b)
+     Adds the number.
+
+ -- Library Function: mglData operator- (`const mglData &'a, `const
+          mglData &'b)
+     Subtracts the other data.
+
+ -- Library Function: mglData operator- (`float' a, `const mglData &'b)
+     Subtracts from the number.
+
+ -- Library Function: mglData operator- (`const mglData &'a, `float' b)
+     Subtracts the number.
+
+ -- Library Function: mglData operator* (`const mglData &'a, `const
+          mglData &'b)
+     Multiplies by the other data.
+
+ -- Library Function: mglData operator* (`float' a, `const mglData &'b)
+     Multiplies by the number.
+
+ -- Library Function: mglData operator* (`const mglData &'a, `float' b)
+     Multiplies by the number.
+
+ -- Library Function: mglData operator/ (`const mglData &'a, `const
+          mglData &'b)
+     Divides by the other data.
+
+ -- Library Function: mglData operator/ (`const mglData &'a, `float' b)
+     Divides by the number.
+
+
+File: mathgl_en.info,  Node: Global functions,  Prev: Operators,  Up: mglData class
+
+6.11 Global functions
+=====================
+
+These functions are not methods of `mglData' class. However it have
+additional functionality to handle data. So I put it in this chapter.
+
+ -- Global function: `mglData' mglTransform (`const mglData &'real,
+          `const mglData &'imag, `const char *'type)
+ -- C function: `HMDT' mgl_transform (`const HMDT' real, `const HMDT'
+          imag, `const char *'type)
+     Do integral transformation of complex data REAL, IMAG on specified
+     direction. The order of transformations is specified in string
+     TYPE: first character for x-dimension, second one for y-dimension,
+     third one for z-dimension. The possible character are: `f' is
+     forward Fourier transformation, `i' is inverse Fourier
+     transformation, `s' is Sine transform, `c' is Cosine transform,
+     `h' is Hankel transform, `n' or ` ' is no transformation.
+
+ -- Global function: `mglData' mglTransformA `const mglData &'ampl,
+          `const mglData &'phase, `const char *'type)
+ -- C function: `HMDT' mgl_transform_a `const HMDT' ampl, `const HMDT'
+          phase, `const char *'type)
+     The same as previous but with specified amplitude AMPL and phase
+     PHASE of complex numbers.
+
+ -- Global function: `mglData' mglSTFA (`const mglData &'real, `const
+          mglData &'imag, `int' dn, `char' dir=`'x'')
+ -- C function: `HMDT' mgl_data_stfa (`const HMDT' real, `const HMDT'
+          imag, `int' dn,`char' dir)
+     Short time Fourier transformation for real and imaginary parts.
+     Output  is amplitude of partial Fourier of length DN. For example
+     if DIR=`x', result will have size {int(nx/dn), dn, ny} and it will
+     contain res[i,j,k]=|\sum_d^dn
+     exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn.
+
+ -- Global function: `mglData' mglPDE (`const char *'ham, `const
+          mglData &'ini_re, `const mglData &'ini_im, `mglPoint' Min,
+          `mglPoint' Max, `float' dz=`0.1', `float' k0=`100')
+ -- C function: `HMDT' mgl_pde_solve (`HMGL' gr, `const char *'ham,
+          `const HMDT' ini_re, `const HMDT' ini_im, `float' dz, `float'
+          k0)
+     Solves equation du/dz = i*k0*HAM(p,q,x,y,z,|u|)[u], where
+     p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators.
+     Parameters INI_RE, INI_IM specify real and imaginary part of
+     initial field distribution. Parameters MIN, MAX set the bounding
+     box for the solution. Note, that really this ranges are increased
+     by factor 3/2 for purpose of reducing reflection from boundaries.
+     Parameter DZ set the step along evolutionary coordinate z. At this
+     moment, simplified form of function HAM is supported - all "mixed"
+     terms (like `x*p'->x*d/dx) are excluded. For example, in 2D case
+     this function is effectively ham = f(p,z) + g(x,z,u). However
+     commutable combinations (like `x*q'->x*d/dy) are allowed. Here
+     variable `u' is used for field amplitude |u|. This allow one solve
+     nonlinear problems - for example, for nonlinear Shrodinger
+     equation you may set `ham="p^2 + q^2 - u^2"'. You may specify
+     imaginary part for wave absorption, like `ham = "p^2 +
+     i*x*(x>0)"', but only if dependence on variable `i' is linear
+     (i.e. ham = hre+i*him). *Note PDE sample::, for sample code and
+     picture.  *Note PDE sample::, for sample code and picture.
+
+ -- Global function: `mglData' mglRay (`const char *'ham, `mglPoint'
+          r0, `mglPoint' p0, `float' dt=`0.1', `float' tmax=`10')
+ -- C function: `HMDT' mgl_ray_trace (`const char *'ham, `float' x0,
+          `float' y0, `float' z0, `float' px, `float' py, `float' pz,
+          `float' dt, `float' tmax)
+     Solves GO ray equation like dr/dt = d HAM/dp, dp/dt = -d HAM/dr.
+     This is Hamiltonian equations for particle trajectory in 3D case.
+     Here HAM is Hamiltonian which may depend on coordinates `x', `y',
+     `z', momentums `p'=px, `q'=py, `v'=pz and time `t': ham =
+     H(x,y,z,p,q,v,t). The starting point (at `t=0') is defined by
+     variables R0, P0. Parameters DT and TMAX specify the integration
+     step and maximal time for ray tracing. Result is array of
+     {x,y,z,p,q,v,t} with dimensions {7 * int(TMAX/DT+1) }. *Note Beam
+     tracing sample::, for sample code and picture.
+
+ -- Global function: `mglData' mglQO2d (`const char *'ham, `const
+          mglData &'ini_re, `const mglData &'ini_im, `const mglData
+          &'ray, `float' r=`1', `float' k0=`100', `mglData *'xx=`0',
+          `mglData *'yy=`0', `bool' UseR=`true')
+ -- C function: `HMDT' mgl_qo2d_solve (`const char *'ham, `const HMDT'
+          ini_re, `const HMDT' ini_im, `const HMDT' ray, `float' r,
+          `float' k0, `HMDT' xx, `HMDT' yy)
+     Solves equation du/dt = i*k0*HAM(p,q,x,y,|u|)[u], where
+     p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators (see
+     `mglPDE()' for details). Parameters INI_RE, INI_IM specify real
+     and imaginary part of initial field distribution. Parameters RAY
+     set the reference ray, i.e. the ray around which the accompanied
+     coordinate system will be maked. You may use, for example, the
+     array created by `mglRay()' function. Note, that the reference ray
+     *must be* smooth enough to make accompanied coodrinates
+     unambiguity. Otherwise errors in the solution may appear. If XX
+     and YY are non-zero then Cartesian coordinates for each point will
+     be written into them. See also `mglPDE()'. *Note Beam tracing
+     sample::, for sample code and picture.
+
+ -- Global function: `mglData' mglJacobian (`const mglData &'x, `const
+          mglData &'y)
+ -- Global function: `mglData' mglJacobian (`const mglData &'x, `const
+          mglData &'y, `const mglData &'z)
+ -- C function: `HMDT' mgl_jacobian_2d (`const HMDT' x, `const HMDT' y)
+ -- C function: `HMDT' mgl_jacobian_3d (`const HMDT' x, `const HMDT' y,
+          `const HMDT' z)
+     Computates the Jacobian for transformation {i,j,k} to {X,Y,Z}
+     where initial coordinates  {i,j,k} are data indexes normalized in
+     range [0,1]. The Jacobian is determined by formula
+     det||dr_\alpha/d\xi_\beta|| where r={X,Y,Z} and \xi={i,j,k}. All
+     dimensions must be the same for all data arrays. Data must be 3D
+     if all 3 arrays {X,Y,Z} are specified or 2D if only 2 arrays {X,Y}
+     are specified.
+
+
+File: mathgl_en.info,  Node: Other classes,  Next: MGL interface,  Prev: mglData class,  Up: Top
+
+7 Other classes
+***************
+
+* Menu:
+
+* mglParse class::
+* mglFormula class::
+* mglFont class::
+* mglColor class::
+* mglPoint class::
+* mglVar class::
+* mglCommand class::
+* mglArg class::
+
+
+File: mathgl_en.info,  Node: mglParse class,  Next: mglFormula class,  Up: Other classes
+
+7.1 mglParse class
+==================
+
+Class for parsing and executing MGL script. This class is defined in
+`#include <mgl/mgl_parse.h>'.
+
+   Class mglParse is the interpreter for MGL scripts (*note MGL
+interface::). The main function of mglParse class is `Parse()'. Exactly
+this function parses and executes the script string-by-string. Also
+there are two subservient functions for the finding and creation of a
+variable. These functions can be useful for displaying values of
+variables (arrays) in some external program (in window, for example).
+The variable DATALIST contains full list of variables in script. Flag
+ALLOWSETSIZE allows one to prevent changing the size of the  picture
+inside the script (forbids the MGL command `setsize').
+
+   Note an important feature - if user defines function FUNC in
+variable then it will be called before the destroying of this variable
+(*note mglVar class::).
+
+ -- Method on `mglParse' (C++, Python): `' mglParse (`bool'
+          setsize=`false')
+ -- C function: `HMPR' mgl_create_parser ()
+     Constructor initializes all values with zero and set ALLOWSETSIZE
+     value.
+
+ -- Method on `mglParse' (C++, Python): `' ~mglParse ()
+ -- C function: `void' mgl_delete_parser (`HMPR' p)
+     Destructor delete parser
+
+ -- Method on `mglParse' (C++, Python): `int' Parse (`mglGraph *'gr,
+          `const char *'str, `long' pos=`0')
+ -- Method on `mglParse' (C++): `int' Parse (`mglGraph *'gr, `const
+          wchar_t *'str, `long' pos=`0')
+ -- C function: `int' mgl_parse (`HMGL' gr, `HMPR' p, `const char
+          *'str, `int' pos)
+ -- C function: `int' mgl_parsew (`HMGL' gr, `HMPR' p, `const wchar_t
+          *'str, `int' pos)
+     Main function in the class. It parses the string STR and executes
+     it by  using GR as a graphics plotter. Returns the value depending
+     on an error presence in the string STR: 0 - no error, 1 - wrong
+     command argument(s), 2 - unknown command, 3 - string is too long.
+     Optional argument POS allows to save the string position in the
+     document (or file) for using `for|next' command.
+
+ -- Method on `mglParse' (C++): `int' Export (`wchar_t'
+          cpp_out`[1024]', `mglGraph *'gr, `const wchar_t *'str)
+     Function parses the string STR, executes it by  using GR as a
+     graphics plotter and exports it to C++ code. Returns the value
+     depending on an error presence in the string STR: 0 - no error, 1
+     - wrong command argument(s), 2 - unknown command, 3 - string is
+     too long. Output C++ text will be placed in OUT variable. If
+     string STR have options (defined after ';' symbol) then the
+     corresponding C++ texts are placed in variables OP1, OP2.
+
+ -- Method on `mglParse' (C++): `void' Execute (`mglGraph *'gr, `FILE
+          *'fp, `bool' print=`false')
+     Function parse and execute line-by-line MGL script in file FP. If
+     PRINT=`true' then all warnings and information will be printed in
+     stdout. Also this function support the `for|next' MGL commands.
+
+ -- Method on `mglParse' (C++): `void' Execute (`mglGraph *'gr, `int'
+          num, `const wchar_t **'text, `void (*' error `)(int line, int
+          kind)=NULL')
+     Function parse and execute line-by-line MGL script in array TEXT.
+     If ERROR is not `NULL' then this function will be called for all
+     warnings, information and other messages. Also this function
+     support the `for|next' MGL commands.
+
+ -- Method on `mglParse' (C++, Python): `void' Execute (`mglGraph *'gr,
+          `const char *'text, `void (*' error `)(int line, int
+          kind)=NULL')
+ -- Method on `mglParse' (C++): `void' Execute (`mglGraph *'gr, `const
+          wchar_t *'text, `void (*' error `)(int line, int kind)=NULL')
+ -- C function: `void' mgl_parse_text (`HMGL' gr, `HMPR' p, `const char
+          *'text)
+ -- C function: `void' mgl_parsew_text (`HMGL' gr, `HMPR' p, `const
+          wchar_t *'text)
+     Function parse and execute line-by-line MGL script in string TEXT.
+     Lines are separated by `\n' symbol as usual. If ERROR is not
+     `NULL' then this function will be called for all warnings,
+     information and other messages. Also this function support the
+     `for|next' MGL commands.
+
+ -- Method on `mglParse' (C++, Python): `bool' AddParam (`int' n,
+          `const char *'str, `bool' isstr=`true')
+ -- Method on `mglParse' (C++): `bool' AddParam (`int' n, `const
+          wchar_t *'str, `bool' isstr=`true')
+ -- C function: `void' mgl_add_param (`HMPR' p, `int' id, `const char
+          *'val)
+ -- C function: `void' mgl_add_paramw (`HMPR' p, `int' id, `const
+          wchar_t *'val)
+     Function set the value of N-th parameter as string STR (N=0, 1 ...
+     9). It return `true' for success.
+
+ -- Method on `mglParse' (C++, Python): `mglVar *' FindVar (`const char
+          *'name)
+ -- Method on `mglParse' (C++): `mglVar *' FindVar (`const wchar_t
+          *'name)
+ -- C function: `const HMDT' mgl_find_var (`HMPR' p, `const char *'name)
+     Function returns the pointer to variable with name NAME or zero if
+     variable is absent. Use this function to put external data array
+     to the script or get the data from the script.
+
+ -- Method on `mglParse' (C++, Python): `mglVar *' AddVar (`const char
+          *'name)
+ -- Method on `mglParse' (C++): `mglVar *' AddVar (`const wchar_t
+          *'name)
+ -- C function: `const HMDT' mgl_add_var (`HMPR' p, `const char *'name)
+     Function returns the pointer to variable with name NAME. If
+     variable is absent then new variable is created with name NAME.
+     Use this function to put external data array to the script or get
+     the data from the script.
+
+ -- Method on `mglParse' (C++): `void' DeleteVar (`mglVar *'v)
+ -- Method on `mglParse' (C++): `void' DeleteVar (`const char *'name)
+ -- Method on `mglParse' (C++): `void' DeleteVar (`const wchar_t *'name)
+     Function delete the variable specified by its name or by its
+     pointer.
+
+ -- Method on `mglParse' (C++, Python): `inline void' RestoreOnce ()
+ -- C function: `void' mgl_restore_once (`HMPR' p)
+     Restore Once flag.
+
+ -- Method on `mglParse' (Python): `void' AllowSetSize (`bool' a)
+ -- C function: `void' mgl_parser_allow_setsize (`HMPR' p, `int' a)
+     Allow to parse 'setsize' command or not.
+
+ -- Method on `mglParse' (C++): `void' AddCommand (`mglCommand *'cmd,
+          `int' num=`0')
+     Add NUM commands CMD to the defined MGL commands list. Parameter
+     CMD is array of `mglCommand' structures. If parameter NUM=0 then
+     it will be determined automatically. At this, array CMD *must
+     have* last element with `name=L""'
+
+ -- Option of mglParse: `mglVar *' DataList
+     List of variables defined in script.
+
+ -- Option of mglParse: `bool' AllowSetSize
+     Flag which allows/forbids the command `setsize' in scripts.
+
+ -- Option of mglParse: `bool' Stop
+     Flag which interrupt script execution.
+
+ -- Option of mglParse: `mglCommand *' Cmd
+     Table (array) of recognizable MGL commands (can be changed by
+     user). Items in the table *MUST be sorted* by NAME field !!! Last
+     items must have empty name (i.e. `L""').
+
+ -- Option of mglParse: `wchar_t *' op1
+     These strings contain command options and should be placed before
+     the command. These variables are used for MGL->C++ (or other
+     language) conversion.
+
+ -- Option of mglParse: `wchar_t *' op2
+     These strings contain command options and should be placed after
+     the command. These variables are used for MGL->C++ (or other
+     language) conversion.
+
+
+File: mathgl_en.info,  Node: mglFormula class,  Next: mglFont class,  Prev: mglParse class,  Up: Other classes
+
+7.2 mglFormula class
+====================
+
+Class for evaluating of formula specified by the string. This class is
+defined in `#include <mgl/mgl_eval.h>'.
+
+   It is the fast variant of formula evaluation. At creation it will be
+recognized and compiled to tree-like internal code. At evaluation stage
+only fast calculations are performed. There is no difference between
+lower or upper case in formulas. If argument value lie outside the
+range of function definition then function returns NaN. *Note Textual
+formulas::.
+
+ -- Method on mglFormula: `' mglFormula (`const char *'str)
+     Parses the formula STR and creates formula-tree. Constructor
+     recursively parses the formula and creates a tree-like structure
+     containing functions and operators for fast further evaluating by
+     `Calc()' or `CalcD()' functions.
+
+ -- Method on mglFormula: `float' Calc (`float' x, `float' y=`0',
+          `float' z=`0', `float' u=`0')
+     Evaluates the formula for `'x','r''=X, `'y','n''=Y, `'z','t''=Z,
+     `'a','u''=U. Error code (if one) can be obtained from function
+     `GetError()'.
+
+ -- Method on mglFormula: `float' Calc (`float' x, `float' y, `float'
+          z, `float' u, `float' v, `float' w)
+     Evaluates the formula for `'x''=X, `'y''=Y, `'z''=Z, `'u''=U,
+     `'v''=V, `'w''=W. Error code (if one) can be obtained from
+     function `GetError()'.
+
+ -- Method on mglFormula: `float' Calc (`float' var`['z'-'a'+1]')
+     Evaluates the formula for variables in array VAR['z'-'a']. Error
+     code (if one) can be obtained from function `GetError()'.
+
+ -- Method on mglFormula: `float' CalcD (`float' var`['z'-'a'+1]',
+          `char' diff)
+     Evaluates the formula derivation respect to DIFF for variables in
+     array VAR['z'-'a']. Error code (if one) can be obtained from
+     function `GetError()'.
+
+ -- Method on mglFormula: `int' GetError ()
+     Returns error code: `0' means no error; `ERR_LOG' means error in
+     logarithm or power functions; `ERR_ARC' means error in inverse
+     functions (like asin); `ERR_SQRT' means error in sqrt function.
+
+
+File: mathgl_en.info,  Node: mglFont class,  Next: mglColor class,  Prev: mglFormula class,  Up: Other classes
+
+7.3 mglFont class
+=================
+
+Class for working with font: load, get metrics, parse and draw strings.
+This class is defined in `#include <mgl/mgl_font.h>'.
+
+   The class is based on loading and drawing of vector Hershey font.
+There are two styles of specifying of the font type and aligning: by
+integer parameters or by string.
+
+   The string can be any combination of characters: `rbiLCRwou'. The
+font types are: `r' - roman font, `i' - italic style, `b' - bold style.
+By default roman font (that is `' or `r') is used. The align types are:
+`L' - align left (default), `C' - align center, `R' - align right.
+Additional font effects are: `w' - wire, `o' - over-lined, `u' -
+underlined. Parsing of the string to special (TeX-like) commands will
+be done if variable PARSE is true (it's default). See also *note Font
+styles::.
+
+   The over way of font and alignment setting is the using of the
+integer constant. Integer font Id can be one of predefined constants:
+`MGL_FONT_ITAL, MGL_FONT_BOLD, MGL_FONT_BOLD_ITAL =
+MGL_FONT_ITAL+MGL_FONT_BOLD'. Default font is `MGL_FONT_ROMAN'. Also
+there are flags `MGL_FONT_ULINE, MGL_FONT_OLINE, MGL_FONT_WIRE' for
+additional font effects. Align parameter controls the text alignment: 0
+- align left, 1 - align center, 2 - align right.
+
+* Menu:
+
+* Format of font files::
+
+ -- Method on mglFont: `' mglFont (`const char
+          *'name=`MGL_DEF_FONT_NAME', `const char *'path=`NULL')
+     Initialize the font and load data from file NAME (default name is
+     "STIX" for Linux and MacOS) or if  NAME=`NULL' limited data from
+     memory (default for Windows).
+
+ -- Method on mglFont: `bool' Load (`const char *' base, `const char
+          *'path=`NULL')
+     Load font from file PATH/BASE into the memory. The font may
+     contain 4 files: BASE.vfm, BASE_b.vfm, BASE_i.vfm, BASE_bi.vfm.
+     Appendix contain detailed description of font format.
+
+ -- Method on mglFont: `void' Restore ()
+     Restore default font.
+
+ -- Method on mglFont: `void' (`mglFont *' fnt)
+     Copy data from other font instance.
+
+ -- Method on mglFont: `void' Clear ()
+     Clear memory by deleting the loaded font.
+
+ -- Method on mglFont: `inline unsigned' GetNumGlyph ()
+     Return the number of glyphs in the font.
+
+ -- Method on mglFont: `inline bool' Ready ()
+     Return true if font is loaded and ready for use.
+
+ -- Method on mglFont: `float' Height (`int' font)
+     Gets height of text for font specified by integer constant.
+
+ -- Method on mglFont: `float' Puts (`const char *'str, `int' font=`0',
+          `int' align=`0')
+     Prints 8-bit text string for font specified by integer constant.
+
+ -- Method on mglFont: `float' Width (`const char *'str, `int' font=`0')
+     Gets width of 8-bit text string for font specified by integer
+     constant.
+
+ -- Method on mglFont: `float' Puts (`const wchar_t *'str, `int'
+          font=`0', `int' align=`0')
+     Prints Unicode text string for font specified by integer constant.
+
+ -- Method on mglFont: `float' Width (`const wchar_t *'str, `int'
+          font=`0')
+     Gets width of Unicode text string for font specified by integer
+     constant.
+
+ -- Method on mglFont: `float' Height (`const char *'how)
+     Gets height of text for font specified by string.
+
+ -- Method on mglFont: `float' Puts (`const char *'str, `const char
+          *'how)
+     Prints 8-bit text string for font specified by string.
+
+ -- Method on mglFont: `float' Width (`const char *'str, `const char
+          *'how)
+     Gets width of 8-bit text string for font specified by string.
+
+ -- Method on mglFont: `float' Puts (`const wchar_t *'str, `const char
+          *'how)
+     Prints Unicode text string for font specified by string.
+
+ -- Method on mglFont: `float' Width (`const wchar_t *'str, `const char
+          *'how)
+     Gets width of Unicode text string for font specified by string.
+
+ -- Parameter of mglFont: `mglGraph *' gr
+     Instance of mglGraph class which is used for character drawing.
+
+ -- Parameter of mglFont: `bool' parse
+     Flag for switching on/off the parsing of TeX commands. Default
+     value is `true'.
+
+
+File: mathgl_en.info,  Node: Format of font files,  Up: mglFont class
+
+7.3.1 Format of font files
+--------------------------
+
+Starting from v.1.6 the MathGL library uses new font files. The font is
+defined in 4 files with suffixes `*.vfm', `*_b.vfm', `*_i.vfm',
+`*_bi.vfm'. These files are text files containing the data for roman
+font, bold font, italic font and bold italic font. The files (or some
+symbols in the files) for bold, italic or bold italic fonts can be
+absent. In this case the roman glyph will be used for them. By analogy,
+if the bold italic font is absent but the bold font is present then
+bold glyph will be used for bold italic. You may create these font
+files by yourself from *.ttf, *.otf files with the help of program
+`font_tools'. This program can be found at MathGL home site.
+
+   The format of font files (*.vfm - vector font for MathGL) is the
+following.
+  1. First string contains human readable comment and is always ignored.
+
+  2. Second string contains 3 numbers, delimited by space or
+     tabulation. The order of numbers is the following: NUMG - the
+     number of glyphs in the file (integer), FACT - the factor for
+     glyph sizing (float), SIZE - the size of buffer for glyph
+     description (integer).
+
+  3. After it NUMG-th strings with glyphs description are placed. Each
+     string contains 6 positive numbers, delimited by space of
+     tabulation. The order of numbers is the following: Unicode glyph
+     ID, glyph width, number of lines in glyph, position of lines
+     coordinates in the buffer (length is 2*number of lines), number of
+     triangles in glyph, position of triangles coordinates in the
+     buffer (length is 6*number of triangles).
+
+  4. The end of file contains the buffer with point coordinates at
+     lines or triangles vertexes. The size of buffer (the number of
+     integer) is SIZE.
+
+   Each font file can be compressed by gzip.
+
+   Note: the closing contour line  is done automatically (so the last
+segment may be absent). For starting new contour use a point with
+coordinates `{0x3fff, 0x3fff}'.
+
+
+File: mathgl_en.info,  Node: mglColor class,  Next: mglPoint class,  Prev: mglFont class,  Up: Other classes
+
+7.4 mglColor class
+==================
+
+Structure for working with colors. This structure is defined in
+`#include <mgl/mgl.h>'.
+
+   There are two ways to set the color in MathGL. First one is using of
+float values of red, green and blue channels for precise color
+definition. The second way is the using of character id. There are a
+set of characters specifying frequently used colors. Normally capital
+letter gives more dark color than lowercase one. *Note Line styles::.
+
+ -- Parameter of mglVar: `float' r, g, b
+     Reg, green and blue component of color.
+
+ -- Method on mglColor: `' mglColor (`float' R, `float' G, `float' B)
+     Constructor sets the color by float values of Red, Green and Blue
+     channels.
+
+ -- Method on mglColor: `' mglColor (`char' c=`'k'')
+     Constructor sets the color from character id. The black color is
+     used by default.
+
+ -- Method on mglColor: `void' Set (`float' R, `float' G, `float' B)
+     Sets color from values of Red, Green and Blue channels. This
+     values should be in interval [0,1].
+
+ -- Method on mglColor: `void' Set (`mglColor' c, `float' bright=`1')
+     Sets color as "lighted" version of color C.
+
+ -- Method on mglColor: `void' Set (`char' p)
+     Sets color from symbolic id.
+
+ -- Method on mglColor: `bool' Valid ()
+     Checks correctness of the color.
+
+ -- Method on mglColor: `float' Norm ()
+     Gets maximal of spectral component.
+
+ -- Method on mglColor: `bool' operator== (`const mglColor &'c)
+     Compare with another color
+
+ -- Library Function: inline mglColor operator+ (`const mglColor &'a,
+          `const mglColor &'b)
+     Adds colors by its RGB values.
+
+ -- Library Function: inline mglColor operator- (`const mglColor &'a,
+          `const mglColor &'b)
+     Subtracts colors by its RGB values.
+
+ -- Library Function: inline mglColor operator* (`const mglColor &'a,
+          `float' b)
+     Multiplies color by number.
+
+ -- Library Function: inline mglColor operator* (`float' a, `const
+          mglColor &'b)
+     Multiplies color by number.
+
+ -- Library Function: inline mglColor operator/ (`const mglColor &'a,
+          `float' b)
+     Divide color by number.
+
+ -- Library Function: inline mglColor operator! (`const mglColor &'a)
+     Return inverted color.
+
+
+File: mathgl_en.info,  Node: mglPoint class,  Next: mglArg class,  Prev: mglColor class,  Up: Other classes
+
+7.5 mglPoint class
+==================
+
+Structure describes point in space. This structure is defined in
+`#include <mgl/mgl.h>'
+
+ -- Parameter of mglVar: `float' x, y, z
+     Point coordinates. By default all values are zero.
+
+ -- Library Function: inline mglPoint operator+ (`const mglPoint &'a,
+          `const mglPoint &'b)
+     Point of summation (summation of vectors).
+
+ -- Library Function: inline mglPoint operator- (`const mglPoint &'a,
+          `const mglPoint &'b)
+     Point of difference (difference of vectors).
+
+ -- Library Function: inline mglPoint operator* (`float' a, `const
+          mglPoint &'b)
+     Multiplies (scale) points by number.
+
+ -- Library Function: inline mglPoint operator* (`const mglPoint &'a,
+          `float' b)
+     Multiplies (scale) points by number.
+
+ -- Library Function: inline mglPoint operator/ (`const mglPoint &'a,
+          `float' b)
+     Multiplies (scale) points by number 1/b.
+
+ -- Library Function: inline float operator- (`const mglPoint &'a,
+          `const mglPoint &'b)
+     Scalar product of vectors.
+
+ -- Library Function: inline mglPoint operator^ (`const mglPoint &'a,
+          `const mglPoint &'b)
+     Cross-product of vectors.
+
+ -- Library Function: inline mglPoint operator& (`const mglPoint &'a,
+          `const mglPoint &'b)
+     The part of A which is perpendicular to vector B.
+
+ -- Library Function: inline mglPoint operator| (`const mglPoint &'a,
+          `const mglPoint &'b)
+     The part of A which is parallel to vector B.
+
+ -- Library Function: inline mglPoint operator! (`const mglPoint &'a)
+     Return vector perpendicular to vector A.
+
+ -- Library Function: inline bool Norm (`const mglPoint &'a)
+     Return the norm |A|^2 of vector A.
+
+ -- Library Function: inline bool operator== (`const mglPoint &'a,
+          `const mglPoint &'b)
+     Return true if points are the same.
+
+ -- Library Function: inline bool operator!= (`const mglPoint &'a,
+          `const mglPoint &'b)
+     Return true if points are different.
+
+
+File: mathgl_en.info,  Node: mglVar class,  Next: mglCommand class,  Prev: mglArg class,  Up: Other classes
+
+7.6 mglVar class
+================
+
+Structure describes variable of type `mglData' and its name in MGL
+script. This structure is used by `mglParse' and is defined in
+`#include <mgl/mgl_parse.h>'.
+
+ -- Parameter of mglVar: `mglData' d
+     Data itself
+
+ -- Parameter of mglVar: `wchar_t' s[256]
+     Data name
+
+ -- Parameter of mglVar: `void *' o
+     Pointer to external object for function FUNC.
+
+ -- Parameter of mglVar: `mglVar *' next
+     Pointer to next instance in list
+
+ -- Parameter of mglVar: `mglVar *' prev
+     Pointer to prev instance in list
+
+ -- Parameter of mglVar: `bool' temp
+     Flag for temporar variable. Temporal variables will be destroyed
+     after script execution.
+
+ -- Parameter of mglVar: `void (*' func `)(void *)'
+     Callback function for destroying non-temporal variable.
+
+ -- Method on mglVar: `void' MoveAfter (`mglVar *'var)
+     Move variable after VAR and copy `func' from `var' (if `func' is
+     not 0)
+
+
+File: mathgl_en.info,  Node: mglCommand class,  Prev: mglVar class,  Up: Other classes
+
+7.7 mglCommand class
+====================
+
+Structure describes MGL command, its name, short description,
+executable and export functions. The structure is used by `mglParse'
+and is defined in `#include <mgl/mgl_parse.h>'.
+
+ -- Parameter of mglCommand: `const wchar_t *' name
+     Name of command.
+
+ -- Parameter of mglCommand: `const wchar_t *' desc
+     Short command description (can be NULL).
+
+ -- Parameter of mglCommand: `const wchar_t *' form
+     Format of command arguments (can be NULL).
+
+ -- Parameter of mglCommand: `int (*' exec `)(mglGraph *gr, long n,
+          mglArg *a, int k[10])const wchar_t *'
+     Function for executing (plotting) the command using grapher GR and
+     having N-th arguments A. Function must return 0 if all is OK; or 1
+     if arguments are wrong.
+
+ -- Parameter of mglCommand: `void (*' save `)(wchar_t out[1024], long
+          n, mglArg *a, int k[10])const wchar_t *'
+     Function for exporting in C++ (can be NULL).
+
+
+File: mathgl_en.info,  Node: mglArg class,  Next: mglVar class,  Prev: mglPoint class,  Up: Other classes
+
+7.8 mglArg class
+================
+
+Structure describes arguments of functions in the stucture
+`mglCommand'. It is defined in `#include <mgl/mgl_parse.h>'.
+
+ -- Parameter of mglArg: `int' type
+     Type of argument: 0-data, 1-string, 2-number.
+
+ -- Parameter of mglArg: `mglData *' d
+     Pointer to data (used if type=0).
+
+ -- Parameter of mglArg: `wchar_t' w[2048]
+     String with parameters (used if type=1 or if type=0 as variable
+     name).
+
+ -- Parameter of mglArg: `char' s[2048]
+     String with parameters (used if type=1).
+
+ -- Parameter of mglArg: `float' v
+     Numerical value (used if type==2)
+
+
+File: mathgl_en.info,  Node: MGL interface,  Next: Samples,  Prev: Other classes,  Up: Top
+
+8 MGL language
+**************
+
+MathGL library supports the simplest scripts for data handling and
+plotting. These scripts can be used independently (with the help of
+UDAV, mgl2png, mgl2eps, mgl2svg programs and others, *note Utilities::)
+or in the frame of the library using.
+
+   MGL script language is rather simple. Each string is a command.
+First word of string is the name of command. Other words are command
+arguments. Command may have up to 1000 arguments (at least for now).
+Words are separated from each other by space or tabulation symbol. The
+upper or lower case of words is sufficient, i.e. variables A and A are
+different variables. Symbol `#' starts the comment (all characters
+after # will be ignored). The exception is situation when `#' is a part
+of some string. Also options can be specified after symbol `;' (*note
+Command options (MGL)::). Symbol `:' starts new command (like new line
+character) if it is not placed inside a string or inside brackets.
+
+   If string contain references to external parameters (substrings
+`$0', `$1' ... `$9') or definitions (substrings `$a', `$b' ... `$z')
+then before execution the values of parameter/definition will be
+substituted instead of reference. It allows to use the same MGL script
+for different parameters (filenames, paths, condition and so on).
+
+   Argument can be a string, a variable name or a number.
+   * The string is any symbols between ordinary marks `''.
+
+   * Usually variable have a name which is arbitrary combination of
+     symbols (except spaces and `'') started from a letter and with
+     length less than 64. A temporary array can be used as variable:
+        * sub-arrays (like in *note subdata:: command) as command
+          argument. For example, `a(1)' or `a(1,:)' or `a(1,:,:)' is
+          second row, `a(:,2)' or `a(:,2,:)' is third column,
+          `a(:,:,0)' is first slice and so on. Also you can extract a
+          part of array from m-th to n-th element by code `a(m:n,:,:)'
+          or just `a(m:n)'.
+
+        * any column combinations defined by formulas, like
+          `a('n*w^2/exp(t)')' if names for data columns was specified
+          (by *note idset:: command or in the file at string started
+          with `##').
+
+        * any expression (without spaces) of existed variables produce
+          temporary variable. For example, `sqrt(dat(:,5)+1)' will
+          produce temporary variable with data values equal to
+          `tmp[i,j] = sqrt(dat[i,5,j]+1)'.
+
+        * temporary variable of higher dimensions by help of []. For
+          example, `[1,2,3]' will produce a temporary vector of 3
+          elements {1, 2, 3}; `[[11,12],[21,22]]' will produce matrix
+          2*2 and so on. Here you can join even an arrays of the same
+          dimensions by construction like `[v1,v2,...,vn]'.
+
+        * result of code for making new data (*note Make another data
+          (MGL)::) inside {}. For example, `{sum dat 'x'}' produce
+          temporary variable which contain result of summation of DAT
+          along direction 'x'. This is the same array TMP as produced
+          by command `sum tmp dat 'x''. You can use nested
+          constructions, like `{sum {max dat 'z'} 'x'}'.
+     Temporary variables can not be used as 1st argument for commands
+     which create (return) the data (like `new', `read', `hist' and so
+     on).
+
+   * Special names `nan=#QNAN, pi=3.1415926..., on=1, off=0, :=-1' are
+     treated as number if they were not redefined by user. Variables
+     with suffixes are treated as numbers (*note Suffixes::). Names
+     defined by *note define:: command are treated as number. Also
+     results of formulas with sizes 1x1x1 are treated as number (for
+     example, `pi/dat.nx').
+   Before the first using all variables must be defined with the help
+of commands, like, *note new::, *note var::, *note list::, *note
+copy::, *note read::, *note hist::, *note sum:: and so on (*note Data
+create (MGL):: and *note Make another data (MGL)::).
+
+   Command may have several set of possible arguments (for example,
+`plot ydat' and `plot xdat ydat'). All command arguments for a selected
+set must be specified. However, some arguments can have default values.
+These argument are printed in [], like `plot ydat ['stl'='' zval=nan]'.
+At this, the record `[arg1 arg2 arg3 ...]' means `[arg1 [arg2 [arg3
+...]]]', i.e. you can omit only tailing arguments if you agree with its
+default values. For example, `plot ydat '' 1' or `plot ydat ''' is
+correct, but `plot ydat 1' is incorrect (argument `'stl'' is missed).
+
+   All MGL commands can be divided on several groups. I will use the
+following notation for a command description: command names are bold,
+strings are denoted by commas, variable names are italic, numbers are
+typewriter. Optional arguments are placed in square brackets and
+default values for them are shown. Detailed description of color, line
+styles (*note Line styles::), color schemes (*note Color scheme::),
+font types, TeX-like symbols (*note Font styles::) and formulas (*note
+Textual formulas::) can be found in corresponding section.
+
+* Menu:
+
+* Graphics setup (MGL)::
+* Axis settings (MGL)::
+* Transformation matrix (MGL)::
+* Export to file (MGL)::
+* Primitives drawing (MGL)::
+* Text printing (MGL)::
+* Axis and Colorbar (MGL)::
+* Legend (MGL)::
+* 1D plotting (MGL)::
+* 2D plotting (MGL)::
+* 3D plotting (MGL)::
+* Dual plotting (MGL)::
+* Vector fields (MGL)::
+* Other plotting (MGL)::
+* Nonlinear fitting (MGL)::
+* Data create (MGL)::
+* Data filling (MGL)::
+* Rearrange data (MGL)::
+* File I/O (MGL)::
+* Make another data (MGL)::
+* Change data (MGL)::
+* Operators (MGL)::
+* Program flow (MGL)::
+* Command options (MGL)::
+* Suffixes::
+* Utilities::
+
+
+File: mathgl_en.info,  Node: Graphics setup (MGL),  Next: Axis settings (MGL),  Up: MGL interface
+
+8.1 Graphics setup (MGL)
+========================
+
+Coomands in this group influences on overall graphics appearance. So
+all of them should be placed _before_ any actual plotting commands.
+
+* Menu:
+
+* Transparency (MGL)::
+* Lighting (MGL)::
+* Fog (MGL)::
+* Default sizes (MGL)::
+* Zooming (MGL)::
+* Cutting (MGL)::
+* Other settings (MGL)::
+
+
+File: mathgl_en.info,  Node: Transparency (MGL),  Next: Lighting (MGL),  Up: Graphics setup (MGL)
+
+8.1.1 Transparency (MGL)
+------------------------
+
+There are several commands for setup transparency. The general command
+is *note alpha:: which switch on/off the transparency for overall plot.
+It influence only for graphics which created after *note alpha:: call.
+Command *note alphadef:: specify the default value of alpha-channel.
+You may switch off transparency of selected plot by command *note
+transparent::. Finally, command *note transptype:: set the kind of
+transparency. *Note Transparent surface sample::, for sample code and
+picture.
+
+ -- MGL command: alpha `[val=on]'
+     Sets the transparency on/off. It is recommended to call this
+     command before any plotting command. Default value is `off'. Use
+     `transparent off' in particular plot to disable its transparency.
+   
+ -- MGL command: alphadef `val'
+     Default value of alpha channel (transparency) for all plotting
+     commands. Initial value is 0.5.
+   
+ -- MGL command: transparent `val'
+     Temporary switches transparency on/off for the plot.
+   
+ -- MGL command: transptype `val'
+     This command set the transparency type. Normal transparency (`0')
+     - below things is less visible than upper ones. Glass-like
+     transparency (`1') - below and upper things are commutable and
+     just decrease intensity of light by RGB channel. Lamp-like
+     transparency (`2') - below and upper things are commutable and are
+     the source of some additional light. I recommend to set `alphadef
+     0.3' or less for lamp-like transparency. *Note Normal
+     transparency::, *note Glass-like transparency::, *note Lamp-like
+     transparency::.
+
+
+File: mathgl_en.info,  Node: Lighting (MGL),  Next: Fog (MGL),  Prev: Transparency (MGL),  Up: Graphics setup (MGL)
+
+8.1.2 Lighting (MGL)
+--------------------
+
+There are several commands for setup lighting. The general command is
+*note light:: which switch on/off the lighting for overall plot.
+Generally MathGL support up to 10 independent light sources. The
+position, color, brightness of each light source can be set separately.
+By default only one light source is active. It is source number `0'
+with white color, located at top of the plot.
+
+ -- MGL command: light `[val=on]'
+     Sets the using of light on/off for overall plot. It is recommended
+     to call this command before any plotting command. Default value is
+     lightning off.
+
+ -- MGL command: light `num val'
+     Switch on/off NUM-th light source separately.
+
+ -- MGL command: light `num xpos ypos zpos' ['col'='w' `br=0.5']
+     The command adds a light source with identification NUM at
+     position {XPOS, YPOS, ZPOS}. The color of light is COL (white by
+     default). The brightness of light is BR which must be in range
+     [0,1].
+
+ -- MGL command: ambient `val'
+     Sets the brightness of ambient light. The value should be in range
+     [0,1]. Initial value is 0.5.
+
+
+File: mathgl_en.info,  Node: Fog (MGL),  Next: Default sizes (MGL),  Prev: Lighting (MGL),  Up: Graphics setup (MGL)
+
+8.1.3 Fog (MGL)
+---------------
+
+ -- MGL command: fog `val [dz=0.25]'
+     Command imitate a fog in the plot. Fog start from relative
+     distance DZ from view point and its density growths exponentially
+     in depth. So that the fog influence is determined by law
+     ~1-exp(-d*z). Here _z_ is normalized to 1 depth of the plot. If
+     value VAL=`0' then the fog is absent. *Note Surface in fog
+     sample::, for sample code and picture.
+
+
+File: mathgl_en.info,  Node: Default sizes (MGL),  Next: Zooming (MGL),  Prev: Fog (MGL),  Up: Graphics setup (MGL)
+
+8.1.4 Default sizes (MGL)
+-------------------------
+
+These commands control the default (initial) values for most graphics
+parameters including sizes of markers, arrows, linewidth and so on. As
+any other settings these ones will influence only on plots created
+after the settings change.
+
+ -- MGL command: barwidth `val'
+     Sets relative width of rectangles in `bars, barh, boxplot'.
+     Default value is `0.7'.
+
+ -- MGL command: marksize `val'
+     The size of marks. Default value is `1'.
+
+ -- MGL command: arrowsize `val'
+     The size of arrows for lines and curves. Default value is `1'.
+
+ -- MGL command: linewidth `val'
+     The variable define the base width for all lines. The value <1 is
+     ignored. Increase of this variables is actual for large bitmap
+     pictures. Default value is `1'.
+
+ -- MGL command: ticklen `val' [`stt=1']
+     The relative length of axis ticks. Default value is `0.1'.
+     Parameter STT>0 set relative length of subticks which is in
+     `sqrt(1+stt)' times smaller.
+
+ -- MGL command: tickstl 'stl' ['sub'="]
+     The line style of axis ticks (STL) and subticks (SUB). If STL="
+     then default style is used (`k' or `w' depending on transparency
+     type). If SUB=" then ticks style is used (i.e. STL).
+
+
+File: mathgl_en.info,  Node: Zooming (MGL),  Next: Cutting (MGL),  Prev: Default sizes (MGL),  Up: Graphics setup (MGL)
+
+8.1.5 Zooming (MGL)
+-------------------
+
+These commands control the overall zooming of the picture or the
+sub-picture. Normally you can use these variables and commands for
+removing "white" spaces around a plot.
+
+ -- MGL command: plotfactor `val'
+     The factor of plot size. It is not recommended to set it lower
+     then 1.6. This is some analogue of command *note zoom:: but
+     applied not to overall image but for each *note inplot::. Use
+     negative value to enable automatic *note plotfactor:: selection.
+
+ -- MGL command: zoom `x1 y1 x2 y2'
+     The command changes the scale of graphics that correspond to zoom
+     in/out of the picture. After command call the current plot will be
+     cleared and further the picture will contain plotting from its
+     part [x1,x2]*[y1,y2]. Here picture coordinates X1, X2, Y1, Y2
+     changes from 0 to 1. Use `zoom 0 0 1 1' to return default view.
+
+
+File: mathgl_en.info,  Node: Cutting (MGL),  Next: Other settings (MGL),  Prev: Zooming (MGL),  Up: Graphics setup (MGL)
+
+8.1.6 Cutting (MGL)
+-------------------
+
+These commands set the condition when the points are excluded (cutted)
+from the drawing. Note, that a point with `nan' value(s) of coordinate
+or amplitude will be automatically excluded from the drawing.
+
+ -- MGL command: cut `val'
+     Determines how points outside bounding box are drawn. If it is
+     `on' then points are excluded from plot (it is default) otherwise
+     the points are projected to edges of bounding box.
+
+ -- MGL command: cut `x1 y1 z1 x2 y2 z2'
+     Lower and upper edge of the box in which never points are drawn.
+     If both edges are the same (the variables are equal) then the
+     cutting box is empty. *Note CutMinMax sample::, for sample code
+     and picture.
+
+ -- MGL command: cut 'cond'
+     Command set the cutting off condition by formula COND. This
+     condition determine will point be plotted or not. If value of
+     formula is nonzero then point is omitted, otherwise it plotted.
+     Set argument as `''' to disable cutting off condition. *Note
+     CutOff sample::, for sample code and picture.
+
+
+File: mathgl_en.info,  Node: Other settings (MGL),  Prev: Cutting (MGL),  Up: Graphics setup (MGL)
+
+8.1.7 Other settings (MGL)
+--------------------------
+
+ -- MGL command: font 'fnt' [`val=6']
+     Font style for text and labels (see text). Initial style is
+     'fnt'='rC' give Roman font with centering. Parameter `val' sets
+     the size of font for tick and axis labels. Default font size of
+     axis labels is 1.4 times large than for tick labels. For more
+     detail, *note Font styles::.
+
+ -- MGL command: rotatetext `val'
+     Set to use or not text rotation along axis. Initial value is `on'.
+
+ -- MGL command: palette 'colors'
+     Set the palette as selected colors. Default value is
+     `'Hbgrcmyhlnqeup''. The palette is used mostly in 1D plots for
+     curves which styles are not specified.
+
+ -- MGL command: meshnum `num'
+     Sets approximate number of lines in *note mesh::, *note fall::,
+     *note grid:: and also the number of hachures in *note vect::,
+     *note vectc::, *note dew:: and the number of cells in *note
+     cloud::. By default (=0) it draws all lines/hachures/cells.
+
+ -- MGL command: axialdir 'dir'
+     Set direction around which curve rotated in *note axial::, *note
+     torus::. Default value is 'z'.
+
+
+File: mathgl_en.info,  Node: Axis settings (MGL),  Next: Transformation matrix (MGL),  Prev: Graphics setup (MGL),  Up: MGL interface
+
+8.2 Axis settings (MGL)
+=======================
+
+These large set of commands control how the axis and ticks will be
+drawn. Note that there is 3-step transformation of data coordinates are
+performed. Firstly, coordinates are projected and cutting is applied
+(*note Cutting (MGL)::), after it transformation formulas are applied,
+and finally the data was normalized in bounding box.
+
+ -- MGL command: axis `x1 y1 x2 y2'
+ -- MGL command: axis `x1 y1 z1 x2 y2 z2'
+ -- MGL command: ranges `x1 x2 y1 y2 [z1=0 z2=0]'
+     Sets the ranges of coordinates changing. Also it sets the range
+     for coloring (analogous to `caxis z1 z2'). Initial ranges are [-1,
+     1].
+
+ -- MGL command: axis 'fx' 'fy' ['fz'=" 'fa'="]
+     Sets the transformation formulas for curvilinear coordinates. Each
+     string should contain mathematical expression for real coordinate
+     depending on internal coordinates `x', `y', `z' and `a' or `c' for
+     colorbar. For example, the cylindrical coordinates are introduced
+     as `axis 'x*cos(y)' 'x*sin(y)' 'z''. For removing of formulas the
+     corresponding parameter should be `'''. The using of
+     transformation formulas will slightly slowing the program, i.e.
+     `axis '' '' ''' is faster than `axis '1*x' '1*y' '1*z''. Initially
+     all formulas are absent (Cartesian coordinates are used). For more
+     details about functions and formulas, *note Textual formulas::.
+
+ -- MGL command: axis `how'
+     Sets one of the predefined transformation formulas for curvilinear
+     coordinate. Paramater HOW define the coordinates: `0' - Cartesian
+     coordinates (no transformation); `1' - Polar coordiantes
+     x_n=x*cos(y),y_n=x*sin(y), z_n=z; `2' - Spherical coordinates
+     x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y); `3' -
+     Parabolic coordinates x_n=x*y, y_n=(x*x-y*y)/2, z_n=z; `4' -
+     Paraboloidal coordinates x_n=(x*x-y*y)*cos(z)/2,
+     y_n=(x*x-y*y)*sin(z)/2, z_n=x*y; `5' - Oblate coordinates
+     x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z),
+     z_n=sinh(x)*sin(y); `6' - Prolate coordinates
+     x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z),
+     z_n=cosh(x)*cos(y); `7' - Elliptic coordinates x_n=cosh(x)*cos(y),
+     y_n=sinh(x)*sin(y), z_n=z; `8' - Toroidal coordinates
+     x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)),
+     y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y));
+     `9' - Bispherical coordinates x_n=sin(y)*cos(z)/(cosh(x)-cos(y)),
+     y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y));
+     `10' - Bipolar coordinates x_n=sinh(x)/(cosh(x)-cos(y)),
+     y_n=sin(y)/(cosh(x)-cos(y)), z_n=z.
+
+ -- MGL command: caxis `z1 z2'
+     Sets the range for surface coloring. Initial range is [-1, 1].
+
+ -- MGL command: origin `x0 y0 [z0=nan]'
+     Center of axis cross section. If one of values is `nan' then
+     MathGL library try to select optimal axis position.
+
+ -- MGL command: ternary `val'
+     The command sets to draws Ternary plot. This special plot is for 3
+     dependent coordinates (components) A, B, C so that A+B+C=1. MathGL
+     uses only 2 independent coordinates A=x and B=y since it is enough
+     to plot everything. At this third coordinate z act as another
+     parameter to produce contour lines, surfaces and so on. *Note
+     Ternary plot sample::, for sample code and picture.
+
+ -- MGL command: xrange dat [`add=off fact=0']
+ -- MGL command: yrange dat [`add=off fact=0']
+ -- MGL command: zrange dat [`add=off fact=0']
+ -- MGL command: crange dat [`add=off fact=0']
+     Sets the range for x-,y-,z- coordinate or coloring as minimal and
+     maximal values of data DAT. Parameter `add=on' shows that the new
+     range will be joined to existed one (nut will not replace it).
+     Parameter FACT add additional range increase on value
+     (MAX-MIN)*FACT.
+
+ -- MGL command: xrange `x1 x2'
+ -- MGL command: yrange `x1 x2'
+ -- MGL command: zrange `x1 x2'
+ -- MGL command: crange `x1 x2'
+     Sets the range for x-,y-,z- coordinate or coloring. See also *note
+     axis::.
+
+ -- MGL command: xtick `val [sub=0 org=nan]'
+ -- MGL command: ytick `val [sub=0 org=nan]'
+ -- MGL command: ztick `val [sub=0 org=nan]'
+ -- MGL command: ctick `val'
+     Sets step for x-, y-, z-axis ticks or colorbar ticks (if VAL>0) or
+     it's number (if VAL<0) in corresponding direction. Zero value
+     VAL=0 sets logarithmic ticks. Parameter SUB sets the number of
+     sub-ticks. Parameter ORG set the starting points for ticks. If not
+     `org=nan' then the value from *note origin:: is used.
+
+ -- MGL command: xtick 'templ'
+ -- MGL command: ytick 'templ'
+ -- MGL command: ztick 'templ'
+ -- MGL command: ctick 'templ'
+     Sets the template for x-, y-, z-axis ticks or colorbar ticks. It
+     may contain TeX symbols also. If TEMPL=`''' then default template
+     is used (in simplest case it is `%.2g') with automatic detaching
+     of common multiplier or common component.
+
+ -- MGL command: xtick `val1' 'lbl1' [`val2' 'lbl2' ...]
+ -- MGL command: ytick `val1' 'lbl1' [`val2' 'lbl2' ...]
+ -- MGL command: ztick `val1' 'lbl1' [`val2' 'lbl2' ...]
+     Sets manual positions VAL1,VAL2,... and labels LBL1,LBL2,... for
+     ticks along x-, y-, z-axis. Labels may contain TeX symbols also.
+
+ -- MGL command: adjust ['dir'='xyzc']
+     Set the ticks step, number of sub-ticks and initial ticks position
+     to be the most human readable for the axis along direction(s) DIR.
+
+
+File: mathgl_en.info,  Node: Transformation matrix (MGL),  Next: Export to file (MGL),  Prev: Axis settings (MGL),  Up: MGL interface
+
+8.3 Transformation matrix (MGL)
+===============================
+
+These commands control how and where further plotting will be placed.
+There is a curtain order of calling of these commands for the better
+plot view. First one should be *note subplot:: or *note inplot:: for
+specifying the place. After it a *note rotate:: and *note aspect::. And
+finally any other plotting commands may be called. Alternatevely you
+can use *note columnplot:: for position plots in the column one by
+another without gap between plot axis (bounding boxes).
+
+ -- MGL command: subplot `nx ny m [dx=0 dy=0]'
+     Puts further plotting in a M-th cell of NX*NY grid of the whole
+     frame area. This command set off any aspects or rotations. So it
+     should be used first for creating the subplot. From the
+     aesthetical point of view it is not recommended to use this
+     command with different matrices in the same frame. The position of
+     the cell can be shifted from its default position by relative size
+     DX, DY.
+
+ -- MGL command: subplot `nx ny m' 'style'
+     The same as previous but space reserved for axis/colorbar is saved
+     only if STYLE contain: `L' or `<' - at left side, `R' or `>' - at
+     right side, `A' or `^' - at top side, `U' or `_' - at bottom side.
+
+ -- MGL command: inplot `x1 x2 y1 y2 [rel=off]'
+     Puts further plotting in some region of the whole frame surface.
+     This command allows one to create a plot in arbitrary place of the
+     screen. The position is defined by rectangular coordinates [X1,
+     X2]*[Y1, Y2]. The coordinates X1, X2, Y1, Y2 are normalized to
+     interval [0, 1]. If parameter REL=`on' then the relative position
+     to current *note subplot:: is used. This command set off any
+     aspects or rotations. So it should be used first for creating
+     subplot.
+
+ -- MGL command: columnplot `num ind [d=0]'
+     Puts further plotting in IND-th cell of column with NUM cells. The
+     position is relative to previous *note subplot:: call (or *note
+     inplot:: with `rel=off'). Parameter D set extra gap between cells.
+
+ -- MGL command: stickplot `num ind tet phi'
+     Puts further plotting in IND-th cell of stick with NUM cells. At
+     this, stick is rotated on angles TET, PHI. The position is
+     relative to previous *note subplot:: call (or *note inplot:: with
+     `rel=off').
+
+ -- MGL command: rotate `tetz tetx [tety=0]'
+     Rotates a further plotting relative to each axis (x, z, y)
+     consecutively on angles TETX, TETZ, TETY.
+
+ -- MGL command: rotate `tet x y z'
+     Rotates a further plotting around vector {x,y,z} on angle TET.
+
+ -- MGL command: aspect `ax ay [az=1]'
+     Defines aspect ratio for the plot. The viewable axes will be
+     related one to another as the ratio AX:AY:AZ. For the best effect
+     it should be used after *note rotate:: command.
+
+ -- MGL command: perspective `val'
+     Add (switch on) the perspective to plot. The parameter val ~
+     1/z_{eff} \in [0,1). By default (`val=0') the perspective is off.
+
+
+File: mathgl_en.info,  Node: Export to file (MGL),  Next: Primitives drawing (MGL),  Prev: Transformation matrix (MGL),  Up: MGL interface
+
+8.4 Export to file (MGL)
+========================
+
+ -- MGL command: write 'fname' [`solid=off']
+     Exports current picture/frame to file 'fname' (file type is
+     determined by extension). Solid (usually white) background will be
+     used if `solid=on'. If 'fname'=" then the file `frameNNNN.jpg' is
+     used, where `NNNN' is current frame id.
+
+ -- MGL command: setsize `w h'
+     Sets size of picture in pixels. This function call *must be*
+     placed before any plotting command because it completely remove
+     picture content. In some program the call of this function is
+     forbidden.
+
+
+File: mathgl_en.info,  Node: Primitives drawing (MGL),  Next: Text printing (MGL),  Prev: Export to file (MGL),  Up: MGL interface
+
+8.5 Primitives drawing
+======================
+
+These commands draw some simple objects like line, point, sphere, drop,
+cone and so on.
+
+ -- MGL command: clf
+     Clear the picture by removes all drawing from it. Does not change
+     transformation matrix.
+
+ -- MGL command: ball `x y' ['col'='r']
+ -- MGL command: ball `x y z' ['col'='r']
+     Draws a point (ball) at position {X, Y, Z} with color defined by
+     string COL.
+
+ -- MGL command: line `x1 y1 x2 y2' ['stl'="]
+ -- MGL command: line `x1 y1 z1 x2 y2 z2' ['stl'="]
+     Draws a geodesic line (straight line in Cartesian coordinates)
+     from point {X1,Y1,Z1} to {X2,Y2,Z2} using line style STL.
+
+ -- MGL command: curve `x1 y1 dx1 dy1 x2 y2 dx2 dy2' ['stl'="]
+ -- MGL command: curve `x1 y1 z1 dx1 dy1 dz1 x2 y2 z2 dx2 dy2 dz2'
+          ['stl'="]
+     Draws Bezier-like curve from point {X1,Y1,Z1} to {X2,Y2,Z2} using
+     line style STL. At this tangent is co-directed with {DX1,DY1,DZ1},
+     {DX2,DY2,DZ2} and proportional to its amplitude.
+
+ -- MGL command: facex `x0 y0 z0 wy wz' ['stl'=" `d1=0 d2=0']
+ -- MGL command: facey `x0 y0 z0 wx wz' ['stl'=" `d1=0 d2=0']
+ -- MGL command: facez `x0 y0 z0 wx wy' ['stl'=" `d1=0 d2=0']
+     Draws the solid rectangle (face) perpendicular to [x,y,z]-axis
+     correspondingly at position {X0, Y0, Z0} with color STL and with
+     widths WX, WY, WZ along corresponding directions. At this colors
+     can be the same for all vertexes or different if all 4 colors are
+     specified for each vertex. Parameters D1!=0, D2!=0 set additional
+     shift of the last vertex (i.e. to draw quadrangle).
+
+ -- MGL command: sphere `x0 y0 r' ['col'='r']
+ -- MGL command: sphere `x0 y0 z0 r' ['col'='r']
+     Draw the sphere with radius R and center at point {X0, Y0, Z0} and
+     color STL.
+
+ -- MGL command: drop `x0 y0 dx dy r' ['col'='b' `sh=1 asp=1']
+ -- MGL command: drop `x0 y0 z0 dx dy dz r' ['col'='b' `sh=1 asp=1']
+     Draw the drop with radius R at point {X0,Y0,Z0} elongated in
+     direction {DX,DY,DZ} and with color COL. Parameter SH set the
+     degree of drop oblongness: `0' is sphere, `1' is maximally
+     oblongness drop. Parameter ASP set relative width of the drop
+     (this is analogue of "ellipticity" for the sphere). *Note Drops
+     sample::, for sample code and picture.
+
+ -- MGL command: cone `x1 y1 z1 x2 y2 z2 r1' [`r2=-1' 'stl'="
+          `edge=off']
+     Draw tube (or truncated cone if EDGE=`off') between points
+     {X1,Y1,Z1}, {X2,Y2,Z2} with radiuses at the edges R1, R2. If R2<0
+     then it is supposed that R2=R1. The cone color is defined by
+     string STL.
+
+ -- MGL command: rect `x1 y1 x2 y2' ['st'="]
+ -- MGL command: rect `x1 y1 z1 x2 y2 z2' ['st'="]
+     Draw rectangle from point {X1,Y1,Z1} to point {X2,Y2,Z2} using
+     colors STL. If STL have 4 or more colors then it defines colors
+     for each rectangle vertex (useful for making gradients, like
+     `wwrr') else first color is used for whole rectangle.
+
+
+File: mathgl_en.info,  Node: Text printing (MGL),  Next: Axis and Colorbar (MGL),  Prev: Primitives drawing (MGL),  Up: MGL interface
+
+8.6 Text printing (MGL)
+=======================
+
+These commands draw the text. There are commands for drawing text in
+arbitrary place, in arbitrary direction and along arbitrary curve. It
+is possible to use arbitrary font-faces and parse many TeX commands.
+The Unicode text is supported. So sometimes you need to specify locale.
+The `size' argument control the size of text: if positive it give the
+value, if negative it give the value relative to defined by `font'
+command. *Note Font styles::.
+
+ -- MGL command: text `x y' 'text' ['fnt'=" `size=-1.4']
+ -- MGL command: text `x y z' 'text' ['fnt'=" `size=-1.4']
+     Draws unrotated text string TEXT at position {X,Y,Z} with
+     specified style FNT and SIZE. By default parameters from `font'
+     command are used.
+
+ -- MGL command: text `x y dx dy' 'text' [`size=-1.4']
+ -- MGL command: text `x y z dx dy dz' 'text' [`size=-1.4']
+     The command plots the string TEXT at position {X,Y,Z} along
+     direction {DX,DY,DZ} with specified style FNT and SIZE. By default
+     parameters from `font' command are used.
+
+ -- MGL command: text ydat 'text' ['fnt'=" `size=-1 zval=nan']
+ -- MGL command: text xdat ydat 'text' ['fnt'=" `size=-1 zval=nan']
+ -- MGL command: text xdat ydat zdat 'text' ['fnt'=" `size=-1']
+     The command draws TEXT along the curve between points {XDAT[i],
+     YDAT[i], ZDAT[i]} by font style FNT and with size SIZE. The string
+     FNT may contain symbols `t' for printing the text under the curve
+     (default), or `T' for printing the text above the curve. The sizes
+     of 1st dimension must be equal for all arrays
+     XDAT.NX=YDAT.NX=ZDAT.NX. If array XDAT is not specified then its
+     an automatic array is used with values equidistantly distributed
+     along x. If array ZDAT is not specified then Z[i] = ZVAL is used.
+     *Note Text sample::, for sample code and picture.
+
+ -- MGL command: title 'text' ['fnt'=" `size=-2']
+     Print string TEXT as title of the picture (at the top of the
+     picture). Can be used at any place (even inside *note subplot::).
+
+ -- MGL command: fgets `x y' 'fname' [`n=0' 'fnt'=" `size=-1.4']
+ -- MGL command: fgets `x y z' 'fname' [`n=0' 'fnt'=" `size=-1.4']
+     Draws unrotated N-th line of file FNAME at position {X,Y,Z} with
+     specified SIZE. By default parameters from *note font:: command
+     are used.
+
+
+File: mathgl_en.info,  Node: Axis and Colorbar (MGL),  Next: Legend (MGL),  Prev: Text printing (MGL),  Up: MGL interface
+
+8.7 Axis and Colorbar (MGL)
+===========================
+
+These commands draw the "things for measuring", like axis with ticks,
+colorbar with ticks, grid along axis, bounding box and labels for axis.
+For more information *note Axis settings (MGL)::.
+
+ -- MGL command: axis ['dir'='xyz' `adjust=off']
+     Draws axes with ticks (*note Axis settings (MGL)::) in directions
+     determined by string parameter DIR.If string contain the symbol
+     `_' then tick labels are not printed. Font for ticks labels is
+     determined by command *note font::. Ticks will be automatically
+     adjusted if ADJUST=`on' (by call of `adjust 'dir'').
+
+ -- MGL command: colorbar ['sch'=" `pos=0']
+     Draws colorbar with color scheme SCH (current scheme if `sch=''')
+     at edge of plot. Parameter POS specifies the position of colorbar:
+     `0' - at right (default), `1' - at left, `2' - at top, `3' - at
+     bottom. If string SCH contains `<>^_' then the parameter POS is
+     defined as: `pos=0' for `>' (right), `pos=1' for `<' (left),
+     `pos=2' for `^' (top), `pos=3' for `_' (bottom). If string have
+     `A' then absolute (relative to picture) coordinates is used. *Note
+     Dens sample::, for sample code and picture.
+
+ -- MGL command: colorbar vdat ['sch'=" `pos=0']
+     The same as previous but with sharp colors SCH (current palette if
+     `sch=""') for values V. *Note ContD sample::, for sample code and
+     picture.
+
+ -- MGL command: colorbar 'sch' `pos x y w h'
+     The same as first one but at arbitrary position of subplot {X, Y}
+     (supposed to be in range [0,1]). Parameters W, H set the relative
+     width and height of the colorbar.
+
+ -- MGL command: grid ['dir'='xyz' 'pen'='B']
+     Draws grid lines perpendicular to direction determined by string
+     parameter DIR. The step of grid lines is the same as tick step for
+     an `axis'. The style of lines is determined by PEN parameter.
+
+ -- MGL command: box ['stl'='k' `ticks=on']
+     Draws bounding box outside the plotting volume with line style
+     'stl'. If `ticks=on' then ticks are drawn with current axis
+     setting.
+
+ -- MGL command: xlabel 'text' [`pos=0 size=-1.4 shift=0']
+ -- MGL command: ylabel 'text' [`pos=0 size=-1.4 shift=0']
+ -- MGL command: zlabel 'text' [`pos=0 size=-1.4 shift=0']
+ -- MGL command: tlabel 'text' [`pos=0 size=-1.4 shift=0']
+     Prints the label TEXT for x-,y-,z-,t-axis (here `t' is "ternary"
+     axis t=1-x-y). The position of label is determined by POS
+     parameter. If POS=0 then label is printed at the center of axis.
+     If POS>0 then label is printed at the maximum of axis (default).
+     If POS<0 then label is printed at the minimum of axis. The font
+     size is 1.4 times larger than the one for ticks `font'. Parameter
+     `shift' specify additional shifting of the label. *Note Text
+     printing (MGL)::.
+
+
+File: mathgl_en.info,  Node: Legend (MGL),  Next: 1D plotting (MGL),  Prev: Axis and Colorbar (MGL),  Up: MGL interface
+
+8.8 Legend (MGL)
+================
+
+These commands draw legend to the graph (useful for *note 1D plotting
+(MGL)::). Legend entry is a pair of strings: one for style of the line,
+another one with description text (with included LaTeX parsing). The
+array of string are accumulated first to the internal arrays (by
+command *note addlegend::) and are plotted later. The position of the
+legend can be selected automatic or manually. Parameters FNT and SIZE
+specify the font style and size. Parameter LLEN set the relative width
+of the line sample and the text indent (default value is 0.1). If line
+style string for entry is empty then the corresponding text is printed
+without indent. If string contains `A' then legend coordinates set
+position in the picture. *Note Legend sample::, for sample code and
+picture.
+
+ -- MGL command: legend [`pos=3' 'fnt'='rL' `size=-1 llen=0.1']
+     Draws legend of accumulated legend entries by font FNT with
+     specified SIZE. Parameter POS sets the position of the legend: `0'
+     is bottom left corner, `1' is bottom right corner, `2' is top left
+     corner, `3' is top right corner (is default).
+
+ -- MGL command: legend `x y' ['fnt'='rL' `size=-1 llen=0.1']
+     Draws legend of accumulated legend entries by font FNT with SIZE.
+     Position of legend in the current subplot is determined by
+     parameter X, Y which supposed to be normalized to interval [0,1].
+
+ -- MGL command: addlegend 'text' 'stl'
+     Adds string TEXT to internal legend accumulator. The style of
+     described line and mark is specified in string STL (*note Line
+     styles::). Maximal number of entries is 100.
+
+ -- MGL command: clearlegend
+     Clears saved legend strings.
+
+ -- MGL command: legendbox `val'
+     Switches on/off the drawing of a box near legend. By default, the
+     box is drawn.
+
+ -- MGL command: legendmarks `val'
+     Set the number of marks in the legend. By default 1 mark is used.
+
+
+File: mathgl_en.info,  Node: 1D plotting (MGL),  Next: 2D plotting (MGL),  Prev: Legend (MGL),  Up: MGL interface
+
+8.9 1D plotting (MGL)
+=====================
+
+These commands perform plotting of 1D data. 1D means that data depended
+from only 1 parameter like parametric curve {x(i),y(i),z(i)}, i=1...n.
+There are 5 generally different types of data representations: simple
+line plot (*note plot::), line plot with filling under it (*note
+area::), stairs plot (*note step::), bar plot (*note bars::, *note
+barh::) and vertical lines (*note stem::). Each type of plotting has
+similar interface. Most of plotting type has similar interface. There
+are 3D version and two 2D versions. One of last requires single array.
+The parameters of line and marks are specified by the string argument.
+If the string parameter is NULL then solid line with color from palette
+is used (*note Line styles::). Also there are some special 1d plots
+having slightly different interface: surface of curve rotation (*note
+torus::), chart (*note chart::) and error boxes (*note error::), marks
+with variable size (*note mark::), tubes (*note tube::) and so on.
+*Note 1D plot sample::, for sample code and picture.
+
+   The plots are drawn for each row if one of the data is the matrix.
+By any case the sizes of 1st dimension *must be equal* for all arrays
+XDAT.NX=YDAT.NX=ZDAT.NX. If array XDAT is not specified then its an
+automatic array is used with values equidistantly distributed along x.
+If array ZDAT is not specified then ZDAT[i] = ZVAL is used (the default
+is at the bottom of the bounding box). String STL specifies the color
+and style of line and marks (*note Line styles::). By default
+(`stl=''') solid line with color from palette is used (*note Line
+styles::).
+
+ -- MGL command: plot ydat ['stl'=" `zval=nan']
+ -- MGL command: plot xdat ydat ['stl'=" `zval=nan']
+ -- MGL command: plot xdat ydat zdat ['stl'="]
+     Draws continuous lines between points {XDAT[i], YDAT[i], ZDAT[i]}.
+     See also *note area::, *note step::, *note stem::, *note tube::,
+     *note mark::, *note error::, *note belt::, *note tens::. *Note
+     Plot sample::, for sample code and picture.
+
+ -- MGL command: radar adat ['stl'=" `r=-1']
+     Draws radar chart which is continuous lines between points located
+     on an radial lines (like plot in Polar coordinates). The plots are
+     drawn for each row if one of the data is the matrix. Parameter R
+     set the additional shift of data (i.e. the data ADAT+R is used
+     instead of ADAT). If `r<0' then `r=max(0, -min(adat)'. String PEN
+     specifies the color and style of line and marks (*note Line
+     styles::). By default (`stl=""') solid line with color from
+     palette is used (*note Line styles::). If PEN containt `#' symbol
+     then "grid" (radial lines and circle for R) is drawn See also
+     *note plot::. *Note Radar sample::, for sample code and picture.
+
+ -- MGL command: tens ydat cdat ['stl'=" `zval=nan']
+ -- MGL command: tens xdat ydat cdat ['stl'=" `zval=nan']
+ -- MGL command: tens xdat ydat zdat cdat ['stl'="]
+     Draws continuous lines between points {XDAT[i], YDAT[i], ZDAT[i]}
+     with color defined by CDAT[i] (look like tension plot). See also
+     *note plot::, *note mesh::, *note fall::. *Note Tens sample::, for
+     sample code and picture.
+
+ -- MGL command: area ydat ['stl'=" `zval=nan']
+ -- MGL command: area xdat ydat ['stl'=" `zval=nan']
+ -- MGL command: area xdat ydat zdat ['stl'="]
+     Draws continuous lines between points {XDAT[i], YDAT[i], ZDAT[i]}
+     and fills it down to axis (to axis plane in 3D). You can use
+     gradient filling if number of specified colors is equal to
+     2*number of curves. If string contain symbol `a' then lines are
+     drawn one above another (like summation). See also *note plot::,
+     *note bars::, *note stem::, *note region::. *Note Area sample::,
+     for sample code and picture.
+
+ -- MGL command: region fdat gdat ['stl'=" `inside=off']
+ -- MGL command: region xdat fdat gdat ['stl'=" `inside=off']
+     Fills area between curves {XDAT[i], FDAT[i]} and {XDAT[i],
+     GDAT[i]}. Parameter  `inside=off' set to fill are with y1<y<y2
+     else the area with y2<y<y1 will be also filled. You can use
+     gradient filling if number of specified colors is equal to
+     2*number of curves. See also *note area::, *note bars::, *note
+     stem::. *Note Region sample::, for sample code and picture.
+
+ -- MGL command: stem ydat ['stl'=" `zval=nan']
+ -- MGL command: stem xdat ydat ['stl'=" `zval=nan']
+ -- MGL command: stem xdat ydat zdat ['stl'="]
+     Draws vertical lines from points {XDAT[i], YDAT[i], ZDAT[i]} to
+     axis (to axis plane in 3D). See also *note area::, *note bars::,
+     *note plot::, *note mark::. *Note Stem sample::, for sample code
+     and picture.
+
+ -- MGL command: bars ydat ['stl'=" `zval=nan']
+ -- MGL command: bars xdat ydat ['stl'=" `zval=nan']
+ -- MGL command: bars xdat ydat zdat ['stl'="]
+     Draws vertical bars from points {XDAT[i], YDAT[i], ZDAT[i]} to
+     axis (to axis plane in 3D). If style contain symbol `a' then lines
+     are drawn one above another. If string contain symbol `f' then
+     waterfall chart is drawn for determining the cumulative effect of
+     sequentially introduced positive or negative values. You can
+     different colors for positive and negative values if number of
+     specified colors is equal to 2*number of curves. See also *note
+     barh::, *note area::, *note stem::, *note chart::. *Note Bars
+     sample::, for sample code and picture.
+
+ -- MGL command: barh vdat ['stl'=" `zval=nan']
+ -- MGL command: barh ydat vdat ['stl'=" `zval=nan']
+     Draws horizontal bars from points {XDAT[i], YDAT[i], ZDAT[i]} to
+     y-axis. If array YDAT is not specified then its an automatic array
+     is used with values equidistantly distributed along y. Marks at
+     data points are not drawn. If style contain symbol `a' then lines
+     are drawn one above another. If string contain symbol `f' then
+     waterfall chart is drawn for determining the cumulative effect of
+     sequentially introduced positive or negative values. You can
+     different colors for positive and negative values if number of
+     specified colors is equal to 2*number of curves.  See also *note
+     bars::. *Note Barh sample::, for sample code and picture.
+
+ -- MGL command: chart adat ['col'="]
+     The command draws colored stripes (boxes) for data in array ADAT.
+     The number of stripes is equal to the number of rows in ADAT
+     (equal to A.NY). The color of each next stripe is cyclically
+     changed from colors specified in string COL or in palette. Spaces
+     in colors denote transparent "color", i.e. if COL contain space(s)
+     then corresponding stripe(s) are not drawn. The stripe width is
+     proportional to value of element in A. Chart is plotted only for
+     data with non-negative elements. If string COL have symbol `#'
+     then black border lines are drawn. The most nice form the chart
+     have in 3d (after rotation of coordinates) or in cylindrical
+     coordinates (becomes so called Pie chart). *Note Chart sample::,
+     for sample code and picture.
+
+ -- MGL command: step ydat ['stl'=" `zval=nan']
+ -- MGL command: step xdat ydat ['stl'=" `zval=nan']
+ -- MGL command: step xdat ydat zdat ['stl'="]
+     Draws continuous stairs for points {XDAT[i], YDAT[i], ZDAT[i]}.
+     See also *note plot::, *note stem::, *note tile::, *note boxs::.
+     *Note Step sample::, for sample code and picture.
+
+ -- MGL command: torus zdat ['stl'="]
+ -- MGL command: torus rdat zdat ['stl'="]
+     Draws surface which is result of curve {RDAT[i], ZDAT[i], ZDAT[i]}
+     rotation around *note axialdir:: axis. If array RDAT is not
+     specified then its an automatic array is used with values
+     equidistantly distributed along x. See also *note plot::, *note
+     axial::. *Note Torus sample::, for sample code and picture.
+
+ -- MGL command: tube ydat rdat ['stl'=" `zval=nan']
+ -- MGL command: tube ydat `rval' ['stl'=" `zval=nan']
+ -- MGL command: tube xdat ydat rdat ['stl'=" `zval=nan']
+ -- MGL command: tube xdat ydat `rval' ['stl'=" `zval=nan']
+ -- MGL command: tube xdat ydat zdat rdat ['stl'="]
+ -- MGL command: tube xdat ydat zdat `rval' ['stl'="]
+     Draws tube with variable radius RDAT[i] (or RVAL) at points
+     {XDAT[i], YDAT[i], ZDAT[i]}. See also *note plot::. *Note Tube
+     sample::, for sample code and picture.
+
+ -- MGL command: mark ydat rdat ['stl'=" `zval=nan']
+ -- MGL command: mark xdat ydat rdat ['stl'=" `zval=nan']
+ -- MGL command: mark xdat ydat zdat rdat ['stl'="]
+     Draws  marks with size RDAT[i]*`marksize' at points {XDAT[i],
+     YDAT[i], ZDAT[i]}. See also *note plot::, *note textmark::, *note
+     stem::, *note error::. *Note Mark sample::, for sample code and
+     picture.
+
+ -- MGL command: textmark ydat 'txt' ['stl'=" `zval=nan']
+ -- MGL command: textmark ydat rdat 'txt' ['stl'=" `zval=nan']
+ -- MGL command: textmark xdat ydat rdat 'txt' ['stl'=" `zval=nan']
+ -- MGL command: textmark xdat ydat zdat rdat 'txt' ['stl'="]
+     Draws string TXT as marks with size RDAT[i]*`marksize' at points
+     {XDAT[i], YDAT[i], ZDAT[i]}. If array RDAT is not specified then
+     RDAT[i] = 1. See also *note plot::, *note mark::, *note stem::.
+     *Note Error sample::, for sample code and picture.
+
+ -- MGL command: error ydat yerr ['stl'=" `zval=nan']
+ -- MGL command: error xdat ydat yerr ['stl'=" `zval=nan']
+ -- MGL command: error xdat ydat xerr yerr ['stl'=" `zval=nan']
+     Draws error boxes {XERR[i], YERR[i]} at points {XDAT[i], YDAT[i],
+     ZVAL}. See also *note plot::. *Note TextMark sample::, for sample
+     code and picture.
+
+ -- MGL command: boxplot adat ['stl'=" `zval=nan']
+ -- MGL command: boxplot xdat adat ['stl'=" `zval=nan']
+     Draws boxplot (also known as a box-and-whisker diagram) at points
+     XDAT in plane z=`zval' (by default is at the bottom of the
+     bounding box). This is five-number summaries of data <em>adat</em>
+     (minimum, lower quartile (Q1), median (Q2), upper quartile (Q3)
+     and maximum) along second (j-th) direction. See also *note plot::,
+     *note error::, *note bars::. *Note BoxPlot sample::, for sample
+     code and picture.
+
+
+File: mathgl_en.info,  Node: 2D plotting (MGL),  Next: 3D plotting (MGL),  Prev: 1D plotting (MGL),  Up: MGL interface
+
+8.10 2D plotting (MGL)
+======================
+
+These commands perform plotting of 2D data. 2D means that data depend
+from 2 independent parameters like matrix f(x_i,y_j), i=1...n, j=1...m.
+There are 6 generally different types of data representations: simple
+mesh lines plot (*note mesh::), surface plot (*note surf::), surface
+plot by boxes (*note boxs::), surface plot by tiles (*note tile::),
+waterfall-like plot (*note fall::), belt plot (*note belt::), density
+plot (*note dens::), contour lines plot (*note cont::), solid contours
+plot (*note contf::) and its rotational figure (*note axial::).
+Commands *note cont::, *note contf:: and *note axial:: have variants
+for automatic and manual selection of level values for contours. Also
+there are commands for plotting data grid lines according to the data
+format (*note grid::) for enhancing density or contour plots. Each type
+of plotting has similar interface. There are 2 kind of versions which
+handle the arrays of data and coordinates or only single data array.
+*Note 2D plot sample::, for sample code and picture.
+
+   String parameter SCH sets the color scheme (*note Color scheme::).
+Previous color scheme is used by default. The minor dimensions of
+arrays XDAT, YDAT, ZDAT should be equal `xdat.nx=zdat.nx &&
+ydat.nx=zdat.ny' or `xdat.nx=ydat.nx=zdat.nx &&
+xdat.ny=ydat.ny=zdat.ny'. Arrays XDAT and YDAT can be vectors (not
+matrices as ZDAT). If array XDAT, YDAT is not specified then its an
+automatic arrays are used with values equidistantly distributed along
+x, y. Graphics are plotted for each z-slice of the data.
+
+ -- MGL command: surf zdat ['sch'="]
+ -- MGL command: surf xdat ydat zdat ['sch'="]
+     Draws surface specified parametrically {XDAT[i,j], YDAT[i,j],
+     ZDAT[i,j]}. See also *note mesh::, *note dens::, *note belt::,
+     *note tile::, *note boxs::, *note surfc::, *note surfa::. *Note
+     Surf sample::, for sample code and picture.
+
+ -- MGL command: mesh zdat ['sch'="]
+ -- MGL command: mesh xdat ydat zdat ['sch'="]
+     Draws mesh lines for surface specified parametrically {XDAT[i,j],
+     YDAT[i,j], ZDAT[i,j]}. See also *note surf::, *note fall::, *note
+     meshnum::, *note cont::, *note tens::. *Note Mesh sample::, for
+     sample code and picture.
+
+ -- MGL command: fall zdat ['sch'="]
+ -- MGL command: fall xdat ydat zdat ['sch'="]
+     Draws fall lines for surface specified parametrically {XDAT[i,j],
+     YDAT[i,j], ZDAT[i,j]}. If SCH contain `x' then lines are drawn
+     along x-direction else (by default) lines are drawn along
+     y-direction. See also *note belt::, *note mesh::, *note tens::,
+     *note meshnum::. *Note Fall sample::, for sample code and picture.
+
+ -- MGL command: belt zdat ['sch'="]
+ -- MGL command: belt xdat ydat zdat ['sch'="]
+     Draws belts for surface specified parametrically {XDAT[i,j],
+     YDAT[i,j], ZDAT[i,j]}. If SCH contain `x' then belts are drawn
+     along x-direction else (by default) lines are drawn along
+     y-direction. See also *note fall::, *note surf::, *note plot::,
+     *note meshnum::. *Note Belt sample::, for sample code and picture.
+
+ -- MGL command: boxs zdat ['sch'="]
+ -- MGL command: boxs xdat ydat zdat ['sch'="]
+     Draws vertical boxes for surface specified parametrically
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. See also *note surf::, *note
+     dens::, *note tile::, *note step::. *Note Boxs sample::, for
+     sample code and picture.
+
+ -- MGL command: tile zdat ['sch'="]
+ -- MGL command: tile xdat ydat zdat ['sch'="]
+     Draws horizontal tiles for surface specified parametrically
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. Such plot can be used as 3d
+     generalization of *note step::. See also *note surf::, *note
+     boxs::, *note step::, *note tiles::. *Note Tile sample::, for
+     sample code and picture.
+
+ -- MGL command: dens zdat ['sch'=" `zval=nan']
+ -- MGL command: dens xdat ydat zdat ['sch'=" `zval=nan']
+     Draws density plot for surface specified parametrically
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} at Z = ZVAL. See also *note
+     surf::, *note cont::, *note contf::, *note boxs::, *note tile::,
+     `dens[xyz]'. *Note Dens sample::, for sample code and picture.
+
+ -- MGL command: cont vdat zdat ['sch'=" `zval=nan']
+ -- MGL command: cont vdat xdat ydat zdat ['sch'=" `zval=nan']
+     Draws contour lines for surface specified parametrically
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} at Z = ZVAL (or for Z=VDAT[k] if
+     `zval=nan'). Contours are plotted for ZDAT[i,j]=VDAT[k] for all k.
+     If string STL contain 't' (or 'T') symbol then contour labels will
+     be drawn below (or above) the contours. See also *note dens::,
+     *note contf::, *note contd::, *note axial::, `cont[xyz]'. *Note
+     Cont sample::, for sample code and picture.
+
+ -- MGL command: cont zdat ['sch'=" `num=7 zval=nan']
+ -- MGL command: cont xdat ydat zdat ['sch'=" `num=7 zval=nan']
+     The same as previous one with vector VDAT of NUM-th elements
+     equidistantly distributed in color range (see, `caxis').
+
+ -- MGL command: contf vdat zdat ['sch'=" `zval=nan']
+ -- MGL command: contf vdat xdat ydat zdat ['sch'=" `zval=nan']
+     Draws solid (or filled) contours for surface specified
+     parametrically {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} at Z = ZVAL (or
+     for Z=VDAT[k] if `zval=nan'). Contours are plotted for
+     ZDAT[i,j]=VDAT[k] for all k (must be `vdat.nx>2'). See also *note
+     dens::, *note cont::, *note contd::, `contf[xyz]'. *Note ContF
+     sample::, for sample code and picture.
+
+ -- MGL command: contf zdat ['sch'=" `num=7 zval=nan']
+ -- MGL command: contf xdat ydat zdat ['sch'=" `num=7 zval=nan']
+     The same as previous one with vector VDAT of NUM-th elements
+     equidistantly distributed in color range (see, `caxis').
+
+ -- MGL command: contd vdat zdat ['sch'=" `zval=nan']
+ -- MGL command: contd vdat xdat ydat zdat ['sch'=" `zval=nan']
+     Draws solid (or filled) contours for surface specified
+     parametrically {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} at Z = ZVAL (or
+     for Z=VDAT[k] if `zval=nan') with manual colors. Contours are
+     plotted for ZDAT[i,j]=VDAT[k] for all k (must be `vdat.nx>2'). The
+     color of k-th contour is `sch[k%strlen(sch)]'. See also *note
+     dens::, *note cont::, *note contf::. *Note ContD sample::, for
+     sample code and picture.
+
+ -- MGL command: contd zdat ['sch'=" `num=7 zval=nan']
+ -- MGL command: contd xdat ydat zdat ['sch'=" `num=7 zval=nan']
+     The same as previous one with vector VDAT of NUM-th elements
+     equidistantly distributed in color range (see, `caxis').
+
+ -- MGL command: axial vdat zdat ['sch'="]
+ -- MGL command: axial vdat xdat ydat zdat ['sch'="]
+     Draws surface which is result of contour plot rotation surface
+     specified parametrically {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}.
+     Contours are plotted for ZDAT[i,j]=VDAT[k] for all k. If string
+     SCH have symbol `#' then wire plot is produced. If string SCH
+     contain symbols `x', `y' or `z' then rotation axis `axialdir' will
+     be set to specified direction. If string SCH have symbol `#' then
+     wire plot is produced. See also *note cont::, *note contf::, *note
+     torus::, *note surf3::. *Note Axial sample::, for sample code and
+     picture.
+
+ -- MGL command: axial zdat ['sch'=" `num=3']
+ -- MGL command: axial xdat ydat zdat ['sch'=" `num=3']
+     The same as previous one with vector VDAT of NUM-th elements
+     equidistantly distributed in color range (see, `caxis').
+
+ -- MGL command: grad pdat ['sch'=" `num=5 zval=nan']
+ -- MGL command: grad xdat ydat pdat ['sch'=" `num=5 zval=nan']
+ -- MGL command: grad xdat ydat zdat pdat ['sch'=" `num=5']
+     Draws gradient lines for scalar field PDAT specified
+     parametrically {XDAT[i,j], YDAT[i,j]} or {XDAT[i,j,k],
+     YDAT[i,j,k], ZDAT[i,j,k]}. String SCH sets the color scheme.
+     Previous color scheme is used by default. Number of lines is
+     proportional to NUM. If NUM<0 then lines start from borders only.
+     See also *note dens::, *note cont::, *note dens3::, *note cont3::,
+     *note flow::. *Note Grad sample::, for sample code and picture.
+
+ -- MGL command: grid2 zdat ['sch'=" `zval=nan']
+ -- MGL command: grid2 xdat ydat zdat ['sch'=" `zval=nan']
+     Draws grid lines for density plot of surface specified
+     parametrically {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} at Z = ZVAL. See
+     also *note dens::, *note cont::, *note contf::.
+
+
+File: mathgl_en.info,  Node: 3D plotting (MGL),  Next: Dual plotting (MGL),  Prev: 2D plotting (MGL),  Up: MGL interface
+
+8.11 3D plotting (MGL)
+======================
+
+These commands perform plotting of 3D data. 3D means that data depend
+from 3 independent parameters like matrix f(x_i,y_j,z_k), i=1...n,
+j=1...m, k=1...l. There are 4 generally different types of data
+representations: isosurface or surface of constant value (*note
+surf3::), density plot at slices (Dens3), contour lines plot at slices
+(*note cont3::), solid contours plot at slices (*note contf3::) and
+cloud-like plot (*note cloud::). Commands *note surf3::, *note cont3::
+and *note contf3:: have variants for automatic and manual selection of
+level values for surfaces/contours. Also there are commands for
+plotting data grid lines according to the data format (*note grid3::)
+for enhancing density or contour plots. Each type of plotting has
+similar interface. There are 2 kind of versions which handle the arrays
+of data and coordinates or only single data array. *Note 3D plot
+sample::, for sample code and picture.
+
+   String paramter SCH sets the color scheme (*note Color scheme::).
+Previous color scheme is used by default. Arrays X, Y, Z can be vectors
+(not 3d arrays as A). If array XDAT, YDAT, ZDAT is not specified then
+its an automatic arrays are used with values equidistantly distributed
+along x, y, z.
+
+ -- MGL command: surf3 adat `val' ['sch'="]
+ -- MGL command: surf3 xdat ydat zdat adat `val' ['sch'="]
+     Draws isosurface plot for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) at
+     A(x,y,z)=VAL. If string contain `#' then wire plot is produced.
+     See also *note cloud::, *note dens3::, *note surf3c::, *note
+     surf3a::, *note axial::. *Note Surf3 sample::, for sample code and
+     picture.
+
+ -- MGL command: surf3 adat ['sch'=" `num=5']
+ -- MGL command: surf3 xdat ydat zdat adat ['sch'=" `num=5']
+     Draws NUM-th uniformly distributed in color range (see *note
+     caxis::) isosurfaces for 3d data specified parametrically.
+
+ -- MGL command: dens3 adat 'dir' [`sval=-1' 'sch'="]
+ -- MGL command: dens3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="]
+     Draws density plot for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). Density is
+     plotted at slice SVAL in DIR={`x', `y', `z'} direction. If string
+     STL have symbol `#' then grid lines are drawn. See also *note
+     cont3::, *note contf3::, *note dens::, *note grid3::. *Note Dens3
+     sample::, for sample code and picture.
+
+ -- MGL command: densa adat ['sch'="]
+ -- MGL command: densa xdat ydat zdat adat ['sch'="]
+     Draws density plots at all central slices of the 3d data specified
+     parametrically.
+
+ -- MGL command: cont3 vdat adat 'dir' [`sval=-1' 'sch'="]
+ -- MGL command: cont3 vdat xdat ydat zdat adat 'dir' [`sval=-1'
+          'sch'="]
+     Draws contour plot for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). Contours are
+     plotted for values specified in array VDAT at slice SVAL in
+     DIR={`x', `y', `z'} direction. If string STL have symbol `#' then
+     grid lines are drawn. If string STL contain 't' (or 'T') symbol
+     then contour labels will be drawn below (or above) the contours.
+     See also *note dens3::, *note contf3::, *note cont::, *note
+     grid3::. *Note Cont3 sample::, for sample code and picture.
+
+ -- MGL command: cont3 adat 'dir' [`sval=-1' 'sch'=" `num=7']
+ -- MGL command: cont3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="
+          `num=7']
+     The same as previous one with vector VDAT of NUM-th elements
+     equidistantly distributed in color range (see `caxis').
+
+ -- MGL command: conta adat ['sch'=" `num=7']
+ -- MGL command: conta xdat ydat zdat adat ['sch'=" `num=7']
+     Draws contour plots at all central slices of the 3d data specified
+     parametrically.
+
+ -- MGL command: contf3 vdat adat 'dir' [`sval=-1' 'sch'="]
+ -- MGL command: contf3 vdat xdat ydat zdat adat 'dir' [`sval=-1'
+          'sch'="]
+     Draws solid contour plot for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). Contours are
+     plotted for values specified in array VDAT at slice SVAL in
+     DIR={`x', `y', `z'} direction. If string STL have symbol `#' then
+     grid lines are drawn. See also *note dens3::, *note cont3::, *note
+     contf::, *note grid3::. *Note ContF3 sample::, for sample code and
+     picture.
+
+ -- MGL command: contf3 adat 'dir' [`sval=-1' 'sch'=" `num=7']
+ -- MGL command: contf3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="
+          `num=7']
+     The same as previous one with vector VDAT of NUM-th elements
+     equidistantly distributed in color range (see *note caxis::).
+
+ -- MGL command: contfa adat ['sch'=" `num=7']
+ -- MGL command: contfa xdat ydat zdat adat ['sch'=" `num=7']
+     Draws solid contour plots at all central slices of the 3d data
+     specified parametrically.
+
+ -- MGL command: grid3 adat 'dir' [`sval=-1' 'sch'="]
+ -- MGL command: grid3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="]
+     Draws grid for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). Grid is
+     plotted at slice SVAL in DIR={`x', `y', `z'} direction. See also
+     *note cont3::, *note contf3::, *note dens3::, *note grid2::. *Note
+     Dens3 sample::, for sample code and picture.
+
+ -- MGL command: grida adat ['sch'="]
+ -- MGL command: grida xdat ydat zdat adat ['sch'="]
+     Draws grids at all central slices of the 3d data specified
+     parametrically.
+
+ -- MGL command: cloud adat ['sch'="]
+ -- MGL command: cloud xdat ydat zdat adat ['sch'="]
+     Draws cloud for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). This plot is a
+     set of cubes with color and transparency proportional to value of
+     ADAT. The resulting plot is like cloud - low value is transparent
+     but higher ones are not. The number of plotting cells depend on
+     *note meshnum::. Paramater ALPHA changes the overall transparency
+     of plot. See also *note surf3::. *Note Cloud sample::, for sample
+     code and picture.
+
+ -- MGL command: beam tr g1 g2 adat `rval' ['sch'=" `flag=0 num=3']
+     Draws  NUM-th uniformly distributed in color range (see `caxis')
+     isosurfaces for 3d array ADAT. This is special kind of plot for
+     ADAT specified in accompanied coordinates along curve TR with orts
+     G1, G2 and with transverse scale RVAL. Variable FLAG is bitwise:
+     `0x1' - draw in accompanied (not laboratory) coordinates; `0x2' -
+     draw projection to \rho-z plane; `0x4' - draw normalized in each
+     slice field. The x-size of data arrays TR, G1, G2 must be nx>2.
+     The y-size of data arrays TR, G1, G2 and z-size of the data array
+     A must be equal. See also *note surf3::.
+
+
+File: mathgl_en.info,  Node: Dual plotting (MGL),  Next: Vector fields (MGL),  Prev: 3D plotting (MGL),  Up: MGL interface
+
+8.12 Dual plotting (MGL)
+========================
+
+These plotting commands draw _two matrix_ simultaneously. There are 5
+generally different types of data representations: surface or
+isosurface colored by other data (*note surfc::, *note surf3c::),
+surface or isosurface transpared by other data (*note surfa::, *note
+surf3a::), tiles with variable size (*note tiles::), mapping diagram
+(*note map::), STFA diagram (*note stfa::). Commands *note surf3a:: and
+*note surf3c:: have variants for automatic and manual selection of
+level values for isosurfaces. Each type of plotting has similar
+interface. There are 2 kind of versions which handle the arrays of data
+and coordinates or only single data array.
+
+   String paramter SCH sets the color scheme (*note Color scheme::).
+Previous color scheme is used by default. Arrays X, Y, Z can be vectors
+(not 3d arrays as A). If array XDAT, YDAT, ZDAT is not specified then
+its an automatic arrays are used with values equidistantly distributed
+along x, y, z.
+
+ -- MGL command: surfc zdat cdat ['sch'="]
+ -- MGL command: surfc xdat ydat zdat cdat ['sch'="]
+     Draws surface specified parametrically {XDAT[i,j], YDAT[i,j],
+     ZDAT[i,j]} and color it by matrix CDAT[i,j]. See also *note
+     surf::, *note surfa::, *note surf3c::. *Note SurfC sample::, for
+     sample code and picture.
+
+ -- MGL command: surf3c adat cdat `val' ['sch'="]
+ -- MGL command: surf3c xdat ydat zdat adat cdat `val' ['sch'="]
+     Draws isosurface plot for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) at
+     A(x,y,z)=VAL. It is mostly the same as *note surf3:: command but
+     the color of isosurface depends on values of array CDAT. If string
+     contain `#' then wire plot is produced. See also *note surf3::,
+     *note surfc::, *note surf3a::. *Note Surf3C sample::, for sample
+     code and picture.
+
+ -- MGL command: surf3c adat cdat ['sch'=" `num=5']
+ -- MGL command: surf3c xdat ydat zdat adat cdat ['sch'=" `num=5']
+     Draws NUM-th uniformly distributed in color range (see `caxis')
+     isosurfaces for 3d data specified parametrically.
+
+ -- MGL command: surfa zdat cdat ['sch'="]
+ -- MGL command: surfa xdat ydat zdat cdat ['sch'="]
+     Draws surface specified parametrically {XDAT[i,j], YDAT[i,j],
+     ZDAT[i,j]} and transparent it by matrix CDAT[i,j]. See also *note
+     surf::, *note surfc::, *note surf3a::, *note tiles::. *Note SurfA
+     sample::, for sample code and picture.
+
+ -- MGL command: surf3a adat cdat `val' ['sch'="]
+ -- MGL command: surf3a xdat ydat zdat adat cdat `val' ['sch'="]
+     Draws isosurface plot for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) at
+     A(x,y,z)=VAL. It is mostly the same as *note surf3:: command but
+     the transparency of isosurface depends on values of array CDAT. If
+     string contain `#' then wire plot is produced. See also *note
+     surf3::, *note surfa::, *note surf3c::. *Note Surf3A sample::, for
+     sample code and picture.
+
+ -- MGL command: surf3a adat cdat ['sch'=" `num=5']
+ -- MGL command: surf3a xdat ydat zdat adat cdat ['sch'=" `num=5']
+     Draws NUM-th uniformly distributed in color range (see `caxis')
+     isosurfaces for 3d data specified parametrically.
+
+ -- MGL command: tiles zdat rdat ['sch'="]
+ -- MGL command: tiles xdat ydat zdat rdat ['sch'="]
+     Draws horizontal tiles for surface specified parametrically
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. It is mostly the same as *note
+     tile:: but the size of tiles is determined by RDAT array. See also
+     *note surfa::, *note tile::. *Note TileS sample::, for sample code
+     and picture.
+
+ -- MGL command: map udat vdat ['sch'=" `pnts=on']
+ -- MGL command: map xdat ydat udat vdat ['sch'=" `pnts=on']
+     Draws mapping plot for matrixes {UDAT, VDAT } which parametrically
+     depend on coordinates XDAT, YDAT. The previous position of the
+     cell (point) is marked by color. Height is proportional to
+     Jacobian(udat,vdat). This plot is like Arnold diagram ???. If
+     `pnts=off' then face is drawn otherwise the color ball at matrix
+     knots are drawn. The size of UDAT and VDAT must be the same. *Note
+     Map sample::, for sample code and picture.
+
+ -- MGL command: stfa re im `dn' ['sch'=" `pnts=on']
+ -- MGL command: stfa xdat ydat re im `dn' ['sch'=" `pnts=on']
+     Draws spectrogram of complex array RE+i*`im' for Fourier size of
+     DN points at plane Z=ZVAL. Parameter DN is arbitrary even integer.
+     For example in 1D case, result is density plot of data
+     res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn with
+     size {int(nx/dn), dn, ny}. *Note STFA sample::, for sample code
+     and picture.
+
+
+File: mathgl_en.info,  Node: Vector fields (MGL),  Next: Other plotting (MGL),  Prev: Dual plotting (MGL),  Up: MGL interface
+
+8.13 Vector fields (MGL)
+========================
+
+These commands perform plotting of 2D and 3D vector fields. There are 6
+generally different types of vector fields representations: simple
+vector field (*note vect::), vector field by dew-drops (*note dew::),
+flow threads (*note flow::), flow pipes (*note pipe::), vectors along a
+curve (*note traj::). Each type of plotting has similar interface.
+There are 2 kind of versions which handle the arrays of data and
+coordinates or only single data array. Parameters of color scheme are
+specified by the string argument. *Note Color scheme::.
+
+   The color is specified by the string argument SCH. Previous color
+scheme is used by default. Parameter FLAG setup the hachures (arrows).
+It is combination of values: `1' for drawing bi-color arrow, `2' for
+drawing fixed length arrows, `4' for drawing arrows to the cell point,
+`8' for drawing arrows with center at cell point, `16' for drawing
+hachures with dots instead of arrows.
+
+   The size of UDAT, VDAT and WDAT must be equal. The minor dimensions
+of arrays XDAT, YDAT, ZDAT and UDAT must be equal too. Arrays XDAT,
+YDAT and ZDAT can be vectors (not matrices as UDAT). The graphics is
+plotted for each z slice of UDAT, VDAT for 2D case.
+
+ -- MGL command: traj xdat ydat udat vdat ['sch'=" `zval=nan len=0']
+ -- MGL command: traj xdat ydat zdat udat vdat wdat ['sch'=" `len=0']
+     Draws vectors {UDAT, VDAT, WDAT} along a curve XDAT, YDAT, ZDAT.
+     The length and color of arrows are proportional to
+     \sqrt{udat^2+vdat^2+wdat^2}. See also `vect'. *Note Traj sample::,
+     for sample code and picture.
+
+ -- MGL command: vect udat vdat ['sch'=" `zval=nan flag=0']
+ -- MGL command: vect xdat ydat udat vdat ['sch'=" `zval=nan flag=0']
+     Draws plane vector field plot for the field {UDAT, VDAT} depending
+     parametrically on coordinates XDAT, YDAT at level Z=ZVAL. The
+     length and color of arrows are proportional to
+     \sqrt{udat^2+vdat^2}. The number of arrows depend on *note
+     meshnum::. See also *note flow::, *note dew::, *note vectc::.
+     *Note Vect sample::, for sample code and picture.
+
+ -- MGL command: vect udat vdat wdat ['sch'=" `flag=0']
+ -- MGL command: vect xdat ydat zdat udat vdat wdat ['sch'=" `flag=0']
+     This is 3D version of the previous command. Here arrays UDAT,
+     VDAT, WDAT must be 3-ranged tensors with equal sizes and the
+     length and color of arrows are proportional to
+     \sqrt{udat^2+vdat^2+wdat^2}. *Note Vect 3D sample::, for sample
+     code and picture.
+
+ -- MGL command: vectc udat vdat ['sch'=" `zval=nan']
+ -- MGL command: vectc xdat ydat udat vdat ['sch'=" `zval=nan']
+     Draws plane vector field plot for the field {UDAT, VDAT} depending
+     parametrically on coordinates XDAT, YDAT at level Z=ZVAL. The
+     color of hachures is proportional to \sqrt{udat^2+vdat^2}. The
+     number of hachures depend on MESHNUM. See also `vect, flow, pipe,
+     dew'. *Note VectC sample::, for sample code and picture.
+
+ -- MGL command: vectc udat vdat wdat ['sch'="]
+ -- MGL command: vectc xdat ydat zdat udat vdat wdat ['sch'="]
+     This is 3D version of the previous command. Here arrays UDAT,
+     VDAT, WDAT must be 3-ranged tensors with equal sizes and the color
+     of hachures is proportional to \sqrt{udat^2+vdat^2+wdat^2}. *Note
+     VectC 3D sample::, for sample code and picture.
+
+ -- MGL command: vectl udat vdat ['sch'=" `zval=nan']
+ -- MGL command: vectl xdat ydat udat vdat ['sch'=" `zval=nan']
+     Draws plane vector field plot for the field {UDAT, VDAT} depending
+     parametrically on coordinates XDAT, YDAT at level Z=ZVAL. The
+     length of hachures is proportional to \sqrt{udat^2+vdat^2}. The
+     number of hachures depend on MESHNUM. See also `vectc, flow, pipe,
+     dew'. *Note Vect sample::, for sample code and picture.
+
+ -- MGL command: vectl udat vdat wdat ['sch'="]
+ -- MGL command: vectl xdat ydat zdat udat vdat wdat ['sch'="]
+     This is 3D version of the previous command. Here arrays UDAT,
+     VDAT, WDAT must be 3-ranged tensors with equal sizes and the
+     length of hachures is proportional to \sqrt{udat^2+vdat^2+wdat^2}.
+     *Note VectL 3D sample::, for sample code and picture.
+
+ -- MGL command: dew udat vdat ['sch'=" `zval=nan']
+ -- MGL command: dew xdat ydat udat vdat ['sch'=" `zval=nan']
+     Draws dew-drops for plane vector field {UDAT, VDAT} depending
+     parametrically on coordinates XDAT, YDAT at level Z=ZVAL. The
+     color of drops is proportional to \sqrt{udat^2+vdat^2}. The number
+     of drops depend on *note meshnum::. Note that this is very
+     expensive plot in memory usage and creation time! See also *note
+     vect::. *Note Dew sample::, for sample code and picture.
+
+ -- MGL command: flow udat vdat ['sch'=" `num=5 zval=nan']
+ -- MGL command: flow xdat ydat udat vdat ['sch'=" `num=5 zval=nan']
+     Draws plane flow threads for the vector field {UDAT, VDAT}
+     depending parametrically on coordinates XDAT, YDAT at level
+     Z=ZVAL. Number of threads is proportional to NUM. The color of
+     lines is proportional to \sqrt{udat^2+vdat^2}. Warm color
+     corresponds to normal flow (like attractor). Cold one corresponds
+     to inverse flow (like source). See also `vect, vectc, pipe'. *Note
+     Flow sample::, for sample code and picture.
+
+ -- MGL command: flow udat vdat wdat ['sch'=" `num=3']
+ -- MGL command: flow xdat ydat zdat udat vdat wdat ['sch'=" `num=3']
+     This is 3D version of the previous command. Here arrays UDAT,
+     VDAT, WDAT must be 3-ranged tensors with equal sizes and the color
+     is proportional to \sqrt{udat^2+vdat^2+wdat^2}. *Note Flow 3D
+     sample::, for sample code and picture.
+
+ -- MGL command: flow `x0 y0' udat vdat ['sch'=" `zval=nan']
+ -- MGL command: flow `x0 y0' xdat ydat udat vdat ['sch'=" `zval=nan']
+     Draws plane flow threads for the vector field {UDAT, VDAT}
+     depending parametrically on coordinates XDAT, YDAT from point {X0,
+     Y0} at level Z=ZVAL. The color of lines is proportional to
+     \sqrt{udat^2+vdat^2}. Warm color corresponds to normal flow (like
+     attractor). Cold one corresponds to inverse flow (like source).
+     See also `vect, vectc, pipe'. *Note Flow sample::, for sample code
+     and picture.
+
+ -- MGL command: flow `x0 y0 z0' udat vdat wdat ['sch'="]
+ -- MGL command: flow `x0 y0 z0' xdat ydat zdat udat vdat wdat ['sch'="]
+     Draws flow thread from point {X0, Y0, Z0}. Arrays UDAT, VDAT, WDAT
+     must be 3-ranged tensors with equal sizes and the color is
+     proportional to \sqrt{udat^2+vdat^2+wdat^2}. *Note Flow 3D
+     sample::, for sample code and picture.
+
+ -- MGL command: pipe udat vdat ['sch'=" `r0=0.05 num=5 zval=nan']
+ -- MGL command: pipe xdat ydat udat vdat ['sch'=" `r0=0.05 num=5
+          zval=nan']
+     Draws plane flow pipes for the vector field {UDAT, VDAT} depending
+     parametrically on coordinates XDAT, YDAT at level Z=ZVAL. Number
+     of pipes is proportional to NUM. The color of pipes is
+     proportional to \sqrt{udat^2+vdat^2}. Warm color corresponds to
+     normal flow (like attractor). Cold one corresponds to inverse flow
+     (like source). Parameter R0 set the base pipe radius. If R0<0 then
+     pipe radius is inverse proportional to amplitude. The size of AX
+     and AY must be equal. See also `vect, vectc, pipe'. *Note Pipe
+     sample::, for sample code and picture.
+
+ -- MGL command: pipe udat vdat wdat ['sch'=" `r0=0.05 num=3']
+ -- MGL command: pipe xdat ydat zdat udat vdat wdat ['sch'=" `r0=0.05
+          num=3']
+     This is 3D version of the previous command. Here arrays UDAT,
+     VDAT, WDAT must be 3-ranged tensors with equal sizes and the color
+     is proportional to \sqrt{udat^2+vdat^2+wdat^2}. *Note Pipe 3D
+     sample::, for sample code and picture.
+
+
+File: mathgl_en.info,  Node: Other plotting (MGL),  Next: Nonlinear fitting (MGL),  Prev: Vector fields (MGL),  Up: MGL interface
+
+8.14 Other plotting (MGL)
+=========================
+
+These commands perform miscelaneous plotting. There is unstructured
+data points plots (Dots), surface reconstruction (Crust), surfaces on
+the triangular mesh (TriPlot) or quadrangular mesh (QuadPlot), textual
+formula plotting (Plots by formula), data plots at edges (Dens[XYZ],
+Cont[XYZ], ContF[XYZ]), simple plot (SimplePlot). Each type of plotting
+has similar interface. There are 2 kind of versions which handle the
+arrays of data and coordinates or only single data array. Parameters of
+color scheme are specified by the string argument. *Note Color scheme::.
+
+ -- MGL command: densx dat ['sch'=" `val=nan']
+ -- MGL command: densy dat ['sch'=" `val=nan']
+ -- MGL command: densz dat ['sch'=" `val=nan']
+     These plotting commands draw density plot in x, y or z plain. If
+     DAT is a tensor (3-dimensional data) then interpolation to a given
+     VAL is performed. These commands are useful for creating
+     projections of the 3D data array to the bounding box. See also
+     `cont[xyz], contf[xyz]', *note dens::. *Note Dens projection
+     sample::, for sample code and picture.
+
+ -- MGL command: contx dat ['sch'=" `val=nan num=7']
+ -- MGL command: conty dat ['sch'=" `val=nan num=7']
+ -- MGL command: contz dat ['sch'=" `val=nan num=7']
+     These plotting commands draw contour lines in x, y or z plain. If
+     DAT is a tensor (3-dimensional data) then interpolation to a given
+     VAL is performed. These commands are useful for creating
+     projections of the 3D data array to the bounding box. See also
+     `dens[xyz], contf[xyz]', *note cont::. *Note Cont projection
+     sample::, for sample code and picture.
+
+ -- MGL command: contfx dat ['sch'=" `val=nan num=7']
+ -- MGL command: contfy dat ['sch'=" `val=nan num=7']
+ -- MGL command: contfz dat ['sch'=" `val=nan num=7']
+     These plotting commands draw solid contours in x, y or z plain. If
+     DAT is a tensor (3-dimensional data) then interpolation to a given
+     VAL is performed. These commands are useful for creating
+     projections of the 3D data array to the bounding box. See also
+     `dens[xyz], cont[xyz]', *note contf::.
+
+ -- MGL command: dots xdat ydat zdat ['sch'="]
+ -- MGL command: dots xdat ydat zdat adat ['sch'="]
+     Draws the arbitrary placed points {XDAT[i], YDAT[i], ZDAT[i]}.
+     Variable ADAT[i] set transparency for dots. See also *note
+     crust::, *note mark::, *note plot::. *Note Dots sample::, for
+     sample code and picture.
+
+ -- MGL command: crust xdat ydat zdat ['sch'="]
+     Reconstructs and draws the surface for arbitrary placed points
+     {XDAT[i], YDAT[i], ZDAT[i]}. If string contain `#' then wire plot
+     is produced. See also *note dots::, *note triplot::. *Note Crust
+     sample::, for sample code and picture.
+
+ -- MGL command: triplot idat xdat ydat ['sch'=" `zval=nan']
+ -- MGL command: triplot idat xdat ydat zdat ['sch'="]
+ -- MGL command: triplot idat xdat ydat zdat cdat ['sch'="]
+     Draws the surface of triangles. Triangle vertexes are set by
+     indexes IDAT of data points {XDAT[i], YDAT[i], ZDAT[i]}. If string
+     contain `#' then wire plot is produced. First dimensions of IDAT
+     must be 3 or greater. See also `dots, crust, quadplot'. Parameter
+     CDAT set the colors of triangles (if IDAT.ny=CDAT.nx) or colors of
+     vertexes (if XDAT.nx=CDAT.nx). See also *note dots::, *note
+     crust::, *note quadplot::, *note tricont::.
+
+ -- MGL command: tricont vdat idat xdat ydat zdat cdat ['sch'="
+          `zval=nan']
+ -- MGL command: tricont vdat idat xdat ydat zdat ['sch'=" `zval=nan']
+ -- MGL command: tricont idat xdat ydat zdat ['sch'=" `num=7 zval=nan']
+     Draws contour lines for surface of triangles at Z = ZVAL (or for
+     Z=VDAT[k] if `zval=nan'). Triangle vertexes are set by indexes
+     IDAT of data points {XDAT[i], YDAT[i], ZDAT[i]}. Contours are
+     plotted for ZDAT[i,j]=VDAT[k] for all k (or NUM contours
+     equidistantly distributed in range [CMIN, CMAX].). See also *note
+     triplot::, *note cont::.
+
+ -- MGL command: quadplot idat xdat ydat ['sch'=" `zval=nan']
+ -- MGL command: quadplot idat xdat ydat zdat ['sch'="]
+ -- MGL command: quadplot idat xdat ydat zdat cdat ['sch'="]
+     Draws the surface of quadrangles. Quadrangle vertexes are set by
+     indexes IDAT of data points {XDAT[i], YDAT[i], ZDAT[i]}. If string
+     contain `#' then wire plot is produced. First dimensions of IDAT
+     must be 4 or greater. See also `triplot, dots, crust'. Parameter
+     CDAT set the colors of triangles (if IDAT.ny=CDAT.nx) or colors of
+     vertexes (if XDAT.nx=CDAT.nx). See also *note triplot::.
+
+ -- MGL command: fplot 'y(x)' ['pen'=" `zval=nan num=100']
+     Draws command function `y(x)' at plane z=ZVAL where `x' variable
+     is changed in `xrange'. You do not need to create the data arrays
+     to plot it. The parameter NUM set the minimal number of points
+     along coordinate(s) for plots. See also *note plot::.
+
+ -- MGL command: fplot 'x(t)' 'y(t)' 'z(t)' ['pen'=" `num=100']
+     Draws command parametrical curve {`x(t)', `y(t)', `z(t)'} where
+     `t' variable is changed in range [0, 1]. You do not need to create
+     the data arrays to plot it. The parameter NUM set the minimal
+     number of points along coordinate(s) for plots. See also *note
+     plot::.
+
+ -- MGL command: fsurf 'z(x,y)' ['sch'=" `num=100']
+     Draws command surface for function `z(x,y)' where `x', `y'
+     variable are changed in `xrange, yrange'. You do not need to
+     create the data arrays to plot it. The parameter NUM set the
+     minimal number of points along coordinate(s) for plots. See also
+     *note surf::.
+
+ -- MGL command: fsurf 'x(u,v)' 'y(u,v)' 'z(u,v)' ['sch'=" `num=100']
+     Draws command parametrical surface {`x(u,v)', `y(u,v)', `z(u,v)'}
+     where `u', `v' variable are changed in range [0, 1]. You do not
+     need to create the data arrays to plot it. The parameter NUM set
+     the minimal number of points along coordinate(s) for plots. See
+     also *note surf::.
+
+
+File: mathgl_en.info,  Node: Nonlinear fitting (MGL),  Next: Data create (MGL),  Prev: Other plotting (MGL),  Up: MGL interface
+
+8.15 Nonlinear fitting (MGL)
+============================
+
+These commands fit data to formula. Fitting goal is to find formula
+parameters for the best fit the data points, i.e. to minimize the sum
+\sum_i (f(x_i, y_i, z_i) - a_i)^2/s_i^2. At this, approximation
+function `f' can depend only on one argument `x' (1D case), on two
+arguments `x,y' (2D case) and on three arguments `x,y,z' (3D case). The
+command `f' also may depend on parameters. Normally the list of fitted
+parameters is specified by VAR string (like, `abcd'). Usually user
+should supply initial values for fitted parameters by INI variable. But
+if he/she don't supply it then the zeros are used.
+
+   Commands *note fit:: and *note fits:: do not draw the obtained data
+themselves. They fill the data OUT by formula `f' with found
+coefficients. At this, the `x,y,z' coordinates are equidistantly
+distributed in the bounding box. Number of points in OUT is selected as
+maximal value of OUT size or 100. Also you may print the last formula
+with found coefficients by `putsfit' command. *Note Fitting sample::,
+for sample code and picture.
+
+   The dimensions of arrays must be at least the same as the number of
+specified arrays XDAT, YDAT, ZDAT. Also the fitting only along
+specified directions will be performed (for example, along x and y if
+only XDAT and YDAT are specified). If array XDAT is not specified then
+its an automatic array is used with values equidistantly distributed
+along x.
+
+ -- MGL command: fits adat sdat 'func' 'var' [ini=0]
+ -- MGL command: fits xdat adat sdat 'func' 'var' [ini=0]
+ -- MGL command: fits xdat ydat adat sdat 'func' 'var' [ini=0]
+ -- MGL command: fits xdat ydat zdat adat sdat 'func' 'var' [ini=0]
+     Fit data along x-, y- and z-directions for 1d-,2d- or 3d array
+     specified parametrically ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k],
+     ZDAT[i,j,k]) with weight factor SDAT[i,j,k].
+
+ -- MGL command: fit adat 'func' 'var' [ini=0]
+ -- MGL command: fit xdat adat 'func' 'var' [ini=0]
+ -- MGL command: fit xdat ydat adat 'func' 'var' [ini=0]
+ -- MGL command: fit xdat ydat zdat adat 'func' 'var' [ini=0]
+     Fit data along x-, y- and z-directions for 1d-,2d- or 3d array
+     specified parametrically ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k],
+     ZDAT[i,j,k]) with weight factor =1.
+
+ -- MGL command: putsfit `x y' ['pre'=" 'fnt'=" `size=-1']
+     Print last fitted formula with found coefficients (as numbers) at
+     position {X, Y}. The string PRE will be printed before formula.
+     All other parameters are the same as in *note Text printing
+     (MGL)::.
+
+
+File: mathgl_en.info,  Node: Data create (MGL),  Next: Data filling (MGL),  Prev: Nonlinear fitting (MGL),  Up: MGL interface
+
+8.16 Data create (MGL)
+======================
+
+ -- MGL command: new dat [`nx=1 ny=1 nz=1']
+     Creates or recreates the array DAT with specified size and fills
+     it by zero. This command does nothing if one of parameters NX, NY,
+     NZ is zero or negative.
+
+ -- MGL command: var dat `num v1 [v2=nan]'
+     Creates new variable with name DAT for one-dimensional array of
+     size NUM. Array elements are equidistantly distributed in range
+     [V1, V2]. If V2=`nan' then V2=V1 is used.
+
+ -- MGL command: list dat `v1 ...'
+     Creates new variable with name DAT and fills it by numeric values
+     of command arguments `v1 ...'. Command can create one-dimensional
+     and two-dimensional arrays with arbitrary values. For creating 2d
+     array the user should use delimiter `|' which means that the
+     following values lie in next row. Array sizes are [maximal of row
+     sizes * number of rows]. For example, command `list 1 | 2 3'
+     creates the array [1 0; 2 3]. Note, that the maximal number of
+     arguments is 1000.
+
+ -- MGL command: list dat d1 ...
+     Creates new variable with name DAT and fills it by data values of
+     arrays of command arguments D1 .... Command can create
+     two-dimensional or three-dimensional (if arrays in arguments are
+     2d arrays) arrays with arbitrary values. Minor dimensions of all
+     arrays in arguments should be equal to dimensions of first array
+     d1. In the opposite case the argument will be ignored. Note, that
+     the maximal number of arguments is 1000.
+
+ -- MGL command: copy dat1 dat2 ['eq'=" `on_axis=on']
+ -- MGL command: copy dat1 `val'
+     Creates new variable with name DAT1 and fills it by data values of
+     array DAT2. At this, if parameter EQ is specified then the data
+     will be modified by corresponding formula by the same way as in
+     *note fill:: command (for `on_axis=on') or in *note modify::
+     command (for `on_axis=off').
+
+ -- MGL command: idset dat 'ids'
+     Set the symbol id for data columns. The string must contain one
+     symbol 'a'...'z' per column (without spaces).
+
+ -- MGL command: info dat [`detail=off']
+     Display information (sizes, maximum/minimum, momentums and so on)
+     about the data dat. Show brief information by default (if
+     `detail=off').
+
+ -- MGL command: info 'text'
+     Display TEXT as information (warning).
+
+
+File: mathgl_en.info,  Node: Data filling (MGL),  Next: Rearrange data (MGL),  Prev: Data create (MGL),  Up: MGL interface
+
+8.17 Data filling (MGL)
+=======================
+
+ -- MGL command: fill dat v1 v2 ['dir'='x']
+     Equidistantly fills the data values to range [X1, X2] in direction
+     DIR={`x',`y',`z'}.
+
+ -- MGL command: fill dat 'eq'
+ -- MGL command: fill dat 'eq' vdat
+ -- MGL command: fill dat 'eq' vdat wdat
+     Command fills the value of array according to the formula in
+     string EQ. Formula is an arbitrary expression depending  on
+     variables `x', `y', `z', `u', `v', `w'. Coordinates `x', `y', `z'
+     are supposed to be normalized in _bounding box_ (in difference
+     from `modify' commands). Variable `u' is the original value of the
+     array. Variables `v' and `w' are values of VDAT, WDAT.
+
+ -- MGL command: modify dat 'eq' [`dim=0']
+ -- MGL command: modify dat 'eq' vdat
+ -- MGL command: modify dat 'eq' vdat wdat
+     Command fills the value of array according to the formula in
+     string EQ. Formula is an arbitrary expression depending  on
+     variables `x', `y', `z', `u'. Coordinates `x', `y', `z' are data
+     indexes normalized in range [0,1]. Variable `u' is the original
+     value of the array. If DIM>0 is specified then modification will
+     be fulfilled only for slices >=DIM.
+
+ -- MGL command: put dat `val [i=: j=: k=:]'
+     Function sets value(s) of array DAT[I, J, K] = VAL. Negative
+     indexes I, J, K=`:' set the value VAL to whole range in
+     corresponding direction(s). For example, `put dat val : 0 :' sets
+     DAT[i,0,j]=VAL for i=0...(DAT.nx-1), j=0...(DAT.nz-1).
+
+ -- MGL command: put dat vdat [`i=: j=: k=:']
+     Function copies value(s) from array VDAT to the range of array
+     DAT. Negative indexes I, J, K=`:' set the range in corresponding
+     direction(s). At this minor dimensions of array VDAT should be
+     large than corresponding dimensions of array DAT. For example,
+     `put dat v : 0 :' sets DAT[i,0,j]=VDAT.ny>DAT.nz ? VDAT[i,j] :
+     VDAT[i], where i=0...(DAT.nx-1), j=0...(DAT.nz-1) and condition
+     vdat.nx>=dat.nx is true.
+
+
+File: mathgl_en.info,  Node: Rearrange data (MGL),  Next: File I/O (MGL),  Prev: Data filling (MGL),  Up: MGL interface
+
+8.18 Rearrange data (MGL)
+=========================
+
+ -- MGL command: rearrange dat `mx [my=0 mz=0]'
+     Rearrange dimensions without changing data array so that resulting
+     sizes should  be MX*MY*MZ < nx*ny*nz. If some of parameter MY or
+     MZ are zero then it will be selected to optimal fill of data
+     array. For example, if MY=0 then it will be change to
+     MY=nx*ny*nz/MX and MZ will be 1.
+
+ -- MGL command: extend dat `n1 [n2=0]'
+     Increase the dimensions of the data by inserting new (|N1|+1)-th
+     slices after (for N1>0) or before (for N1<0) of existed one. It is
+     possible to insert 2 dimensions simultaneously for 1d data by
+     using parameter N2. Data to new slices is copy from existed one.
+     For example, for N1>0 new array will be a_ij^new = a_i^old where
+     j=0...N1. Correspondingly, for N1<0 new array will be a_ij^new =
+     a_j^old where i=0...|N1|.
+
+ -- MGL command: transpose dat ['dim'='yxz']
+     Transposes (shift order of) dimensions of the data. New order of
+     dimensions is specified int string DIM. This command may be useful
+     also for the reading of one-dimensional data.
+
+ -- MGL command: squeeze dat `rx [ry=1 rz=1 sm=off]'
+     Reduces the data size by excluding data elements which indexes are
+     not divisible by RX, RY, RZ correspondingly. Parameter SM set to
+     use smoothing (i.e. out[i]=\sum_{j=i}^{i+r} a[j]/r) or not (i.e.
+     out[i]=a[j*r]).
+
+ -- MGL command: crop dat `n1 n2' 'dir'
+     Cuts off edges of the data I<N1 and I>N2 if N2>0 or I>`n[xyz]'-N2
+     if N2<=0 along direction DIR.
+
+ -- MGL command: delete dat
+     Deletes variable DAT and makes its memory free. Can be useful for
+     huge data arrays.
+
+ -- MGL command: delete dat 'dir' `[pos=off num=0]'
+     Delete NUM slices along DIR-direction at position POS.
+
+ -- MGL command: insert dat 'dir' `[pos=off num=0]'
+     Insert NUM slices along DIR-direction at position POS.
+
+
+File: mathgl_en.info,  Node: File I/O (MGL),  Next: Make another data (MGL),  Prev: Rearrange data (MGL),  Up: MGL interface
+
+8.19 File I/O (MGL)
+===================
+
+ -- MGL command: read dat 'fname'
+     Reads data from tab-separated text file with auto determining
+     sizes of the data.
+
+ -- MGL command: read dat 'fname' `mx [my=1 mz=1]'
+     Reads data from text file with specified data sizes. This command
+     does nothing if one of parameters MX, MY or MZ is zero or negative.
+
+ -- MGL command: readmat dat 'fname' [`dim=2']
+     Read data from text file with size specified at beginning of the
+     file by first DIM numbers. At this, variable DIM set data
+     dimensions.
+
+ -- MGL command: readall dat 'templ' `v1 v2 [dv=1 slice=off]'
+     Join data arrays from several text files. The file names are
+     determined by function call `sprintf(fname,templ,val);', where VAL
+     changes from V1 to V2 with step DV. The data load one-by-one in
+     the same slice if SLICE=`off' or as slice-by-slice if SLICE=`on'.
+
+ -- MGL command: readall dat 'templ' `[slice=off]'
+     Join data arrays from several text files which filenames satisfied
+     the template TEMPL (for example, TEMPL=`"t_*.dat"'). The data load
+     one-by-one in the same slice if SLICE=`off' or as slice-by-slice
+     if SLICE=`on'.
+
+ -- MGL command: save dat 'fname'
+     Saves the whole data array to tab-separated text file.
+
+ -- MGL command: readhdf dat 'fname' 'dname'
+     Reads data array named DNAME from HDF5 or HDF4 file FNAME.
+
+ -- MGL command: savehdf dat 'fname' 'dname'
+     Saves data array named DNAME from HDF5 or HDF4 file FNAME.
+
+ -- MGL command: import dat 'fname' 'sch' [`v1=0 v2=1']
+     Reads data from bitmap file. The RGB values of bitmap pixels are
+     transformed to float values in range [V1, V2] using color scheme
+     SCH (*note Color scheme::).
+
+ -- MGL command: export dat 'fname' 'sch' [`v1=0 v2=0']
+     Saves data matrix to bitmap file. The data values are transformed
+     from range [V1, V2] to RGB pixels of bitmap using color scheme SCH
+     (*note Color scheme::). If V1>=V2 then the values of V1, V2 are
+     automatically determined as minimal and maximal value of the data
+     array.
+
+
+File: mathgl_en.info,  Node: Make another data (MGL),  Next: Change data (MGL),  Prev: File I/O (MGL),  Up: MGL interface
+
+8.20 Make another data (MGL)
+============================
+
+ -- MGL command: combine res adat bdat
+     Returns direct multiplication of arrays (like, res[i,j] =
+     adat[i]*bdat[j] and so on).
+
+ -- MGL command: evaluate res dat idat [`norm=on']
+ -- MGL command: evaluate res dat idat jdat [`norm=on']
+ -- MGL command: evaluate res dat idat jdat kdat [`norm=on']
+     Get array which values is result of interpolation of original
+     array for coordinates from other arrays (for example,
+     res[i,j]=dat[idat[i,j],jdat[i,j]]). All dimensions must be the
+     same for data IDAT, JDAT, KDAT. Coordinates from IDAT, JDAT, KDAT
+     are supposed to be normalized in range [0,1] (if NORM=`true') or
+     in ranges [0,nx], [0,ny], [0,nz] correspondingly.
+
+ -- MGL command: hist res dat `num v1 v2 [nsub=0]'
+ -- MGL command: hist res dat wdat `num v1 v2 [nsub=0]'
+     Creates NUM-th points distribution RES of the data values of DAT
+     in range [V1, V2]. Array WDAT specifies weights of the data
+     elements (all weight is 1 if WDAT is not specified). Parameter
+     NSUB define the number of additional interpolated points (for
+     smoothness of histogram).
+
+ -- MGL command: hist res xdat adat
+ -- MGL command: hist res xdat ydat adat
+ -- MGL command: hist res xdat ydat zdat adat
+     Creates distribution RES of the data values of ADAT in axis range
+     [Min, Max]. Array ADAT look like weights of the data points.
+
+ -- MGL command: momentum res dat 'how' ['dir'='z']
+     Get momentum (1D-array) of the data along direction DIR. String
+     HOW contain kind of momentum. The momentum is defined like as
+     res_k = \sum_ij how(x_i,y_j,z_k) a_ij/ \sum_ij a_ij if VAR=`z' and
+     so on. Coordinates `x', `y', `z' are data indexes normalized in
+     range [0,1].
+
+ -- MGL command: sum res dat 'dir'
+     Gets array which is the result of summation in given direction or
+     direction(s).
+   
+ -- MGL command: max res dat 'dir'
+     Gets array which is the maximal data values in given direction or
+     direction(s).
+   
+ -- MGL command: min res dat 'dir'
+     Gets array which is the minimal data values in given direction or
+     direction(s).
+
+ -- MGL command: resize res dat `mx [my=1 mz=1]'
+     Makes array RES of sizes MX, MY, MZ with interpolated data of
+     array DAT.
+
+ -- MGL command: subdata res dat `xx [yy=: zz=:]'
+     Extracts sub-array data RES from the original data DAT array
+     keeping fixed positive index. For example `subdata a b : 2'
+     extracts 3d row (indexes are zero based), `subdata a b 4 :'
+     extracts 5th column, `subdata a b : : 3' extracts 4th slice and so
+     on. Note that symbol `:' is defined `:'=`-1' in MGL.
+
+ -- MGL command: trace res dat
+     Gets array of diagonal elements DAT[i,i] (for 2D case) or
+     DAT[i,i,i] (for 3D case) where i=0...nx-1. Function return copy of
+     DAT for 1D case. Data array must have dimensions DAT.ny, DAT.nz >=
+     DAT.nx or DAT.ny, DAT.nz = 1.
+
+ -- MGL command: transform dat 'type' real imag
+     Do integral transformation of complex data REAL, IMAG on specified
+     direction. The order of transformations is specified in string
+     TYPE: first character for x-dimension, second one for y-dimension,
+     third one for z-dimension. The possible character are: `f' is
+     forward Fourier transformation, `i' is inverse Fourier
+     transformation, `s' is Sine transform, `c' is Cosine transform,
+     `h' is Hankel transform, `n' or ` ' is no transformation.
+
+ -- MGL command: transforma dat 'type' ampl phase
+     The same as previous but with specified amplitude AMPL and phase
+     PHASE of complex numbers.
+
+ -- MGL command: stfad res real imag `dn' ['dir'='x']
+     Short time Fourier transformation for real and imaginary parts.
+     Output  is amplitude of partial Fourier of length DN. For example
+     if DIR=`x', result will have size {int(nx/dn), dn, ny} and it will
+     contain res[i,j,k]=|\sum_d^dn
+     exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn.
+
+ -- MGL command: pde res 'ham' ini_re ini_im [`dz=0.1 k0=100']
+     Solves equation du/dz = i*k0*HAM(p,q,x,y,z,|u|)[u], where
+     p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators.
+     Parameters INI_RE, INI_IM specify real and imaginary part of
+     initial field distribution. Coordinates of the equation (and the
+     solution) are supposed to be in the bounding box. Note, that
+     really this ranges are increased by factor 3/2 for purpose of
+     reducing reflection from boundaries. Parameter DZ set the step
+     along evolutionary coordinate z. At this moment, simplified form
+     of function HAM is supported - all "mixed" terms (like
+     `x*p'->x*d/dx) are excluded. For example, in 2D case this function
+     is effectively ham = f(p,z) + g(x,z,u). However commutable
+     combinations (like `x*q'->x*d/dy) are allowed. Here variable `u'
+     is used for field amplitude |u|. This allow one solve nonlinear
+     problems - for example, for non-linear Shrodinger equation you may
+     set `ham='p^2+q^2-u^2''. You may specify imaginary part for wave
+     absorption, like `ham = 'p^2+i*x*(x>0)'', but only if dependence
+     on variable `i' is linear (i.e. ham = hre+i*him). *Note PDE
+     sample::, for sample code and picture.
+
+ -- MGL command: ray res 'ham' `x0 y0 z0 p0 q0 v0 [dt=0.1 tmax=10]'
+     Solves GO ray equation like d_r_/dt = d HAM/d_p_, d_p_/dt = -d
+     HAM/d_r_. This is Hamiltonian equations for particle trajectory in
+     3D case. Here HAM is Hamiltonian which may depend on coordiantes
+     `x', `y', `z', momentums `p'=px, `q'=py, `v'=pz and time `t': ham
+     = H(x,y,z,p,q,v,t). The starting point (at `t=0') is defined by
+     variables {X0, Y0, Z0, P0, Q0, V0}. Parameters DT and TMAX specify
+     the integration step and maximal time for ray tracing. Result is
+     array of {x,y,z,p,q,v,t} with dimensions {7 * int(TMAX/DT+1) }.
+     See also *note pde::. *Note Beam tracing sample::, for sample code
+     and picture.
+
+ -- MGL command: qo2d res 'ham' ini_re ini_im ray [`r=1 k0=100' xx=0
+          yy=0]
+     Solves equation du/dt = i*k0*HAM(p,q,x,y,|u|)[u], where
+     p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators.
+     Parameters INI_RE, INI_IM specify real and imaginary part of
+     initial field distribution. Parameters RAY set the reference ray,
+     i.e. the ray around which the accompanied coordinate system will
+     be maked. You may use, for example, the array created by *note
+     ray:: function. Note, that the reference ray *must be* smooth
+     enough to make accompanied coodrinates unambiguity. Otherwise
+     errors in the solution may appear. If XX and YY are non-zero then
+     Cartesian coordinates for each point will be written into them.
+     *Note Beam tracing sample::, for sample code and picture.
+
+ -- MGL command: jacobian res xdat ydat [zdat=0]
+     Computates the Jacobian for transformation {i,j,k} to
+     {XDAT,YDAT,ZDAT} where initial coordinates  {i,j,k} are data
+     indexes normalized in range [0,1]. The Jacobian is determined by
+     formula det||dr_\alpha/d\xi_\beta|| where r={XDAT,YDAT,ZDAT} and \
+     xi={i,j,k}. All dimensions must be the same for all data arrays.
+     Data must be 3D if all 3 arrays {XDAT,YDAT,ZDAT} are specified or
+     2D if only 2 arrays {XDAT,YDAT} are specified.
+
+
+File: mathgl_en.info,  Node: Change data (MGL),  Next: Operators (MGL),  Prev: Make another data (MGL),  Up: MGL interface
+
+8.21 Change data (MGL)
+======================
+
+These commands change the data in some direction like differentiations,
+integrations and so on. The direction in which the change will applied
+is specified by the string parameter, which may contain `x', `y' or `z'
+characters for 1-st, 2-nd and 3-d dimension correspondingly.
+
+ -- MGL command: cumsum dat 'dir'
+     Cumulative summation of the data in given direction or directions.
+   
+ -- MGL command: integrate dat 'dir'
+     Integrates (like cumulative summation) the data in given direction
+     or directions.
+   
+ -- MGL command: diff dat 'dir'
+     Differentiates the data in given direction or directions.
+
+ -- MGL command: diff dat xdat ydat [zdat=0]
+     Differentiates the data DAT specified parametrically in direction
+     XDAT with YDAT, ZDAT=constant. Parameter ZDAT can be omitted that
+     correspond to 2D case. Parametrical differentiation uses the
+     formula (for 2D case): da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j)
+     where a_i=da/di, a_j=da/dj denotes usual differentiation along 1st
+     and 2nd dimensions. The similar formula is used for 3D case. Note,
+     that you may change the order of arguments - for example, if you
+     have 2D data a(i,j) which depend on coordinates {x(i,j), y(i,j)}
+     then usual derivative along `x' will be `diff a x y' and usual
+     derivative along `y' will be `diff a y x'.
+
+ -- MGL command: diff2 dat 'dir'
+     Double-differentiates (like Laplace operator) the data in given
+     direction.
+
+ -- MGL command: sinfft dat 'dir'
+     Do Sine transform of the data in given direction or directions.
+     The Sine transform is \sum a_i \sin(k i).
+   
+ -- MGL command: cosfft dat 'dir'
+     Do Cosine transform of the data in given direction or directions.
+     The Cosine transform is \sum a_i \cos(k i).
+   
+ -- MGL command: hankel dat 'dir'
+     Do Hankel transform of the data in given direction or directions.
+     The Hankel transform is \sum a_i J_0(k i).
+
+ -- MGL command: swap dat 'dir'
+     Swaps the left and right part of the data in given direction
+     (useful for Fourier spectrum).
+   
+ -- MGL command: roll dat 'dir' num
+     Rolls the data along direction 'dir'. Resulting array will be
+     out[i] = ini[(i+num)%nx] if `dir='x''.
+
+ -- MGL command: mirror dat 'dir'
+     Mirror the left-to-right part of the data in given direction.
+     Looks like change the value index I->N-I.
+
+ -- MGL command: sew dat ['dir'='xyz' `da=2*pi']
+     Remove value steps (like phase jumps after inverse trigonometric
+     commands) with period DA in given direction.
+   
+ -- MGL command: smooth data `type' ['dir'='xyz']
+     Smooths the data on specified direction or directions by method
+     TYPE. Now 4 methods are supported: `0' does nothing, `1' linear
+     averaging by 3 points, `2' linear averaging by 5 points, `3'
+     quadratic averaging by 5 points.
+
+ -- MGL command: envelop dat ['dir'='x']
+     Find envelop for data values along direction DIR. Only one
+     direction can be specified at once.
+
+ -- MGL command: normsl dat `v1 v2' ['dir'='z' `keep=on sym=off']
+     Normalizes data slice-by-slice along direction DIR the data in
+     slices to range [V1,V2]. If flag SYM=`on' then symmetrical
+     interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used. If KEEP is set
+     then maximal value of k-th slice will be limited by \sqrt{\sum
+     a_ij(k)/\sum a_ij(0)}.
+
+ -- MGL command: norm dat `v1 v2 [sym=off dim=0]'
+     Normalizes the data to range [V1,V2]. If flag SYM=`on' then
+     symmetrical interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used.
+     Modification will be applied only for slices >=DIM.
+
+
+File: mathgl_en.info,  Node: Operators (MGL),  Next: Program flow (MGL),  Prev: Change data (MGL),  Up: MGL interface
+
+8.22 Operators (MGL)
+====================
+
+ -- MGL command: multo dat dat2
+     Multiplies the data by the other one for each element.
+
+ -- MGL command: multo dat `val'
+     Multiplies each element by the number.
+
+ -- MGL command: divto dat dat2
+     Divides the data by the other one for each element.
+
+ -- MGL command: divto dat `val'
+     Divides each element by the number.
+
+ -- MGL command: addto dat dat2
+     Adds the other data.
+
+ -- MGL command: addto dat `val'
+     Adds the number to each element.
+
+ -- MGL command: subto dat dat2
+     Subtracts the other data.
+
+ -- MGL command: subto dat `val'
+     Subtracts the number to each element.
+
+
+File: mathgl_en.info,  Node: Program flow (MGL),  Next: Command options (MGL),  Prev: Operators (MGL),  Up: MGL interface
+
+8.23 Program flow (MGL)
+=======================
+
+These commands control program flow, like, conditions, cycles, define
+script arguments and so on.
+
+ -- MGL command: chdir 'path'
+     Changes the current directory to PATH.
+
+ -- MGL command: define $N smth
+     Sets N-th script argument to SMTH. Note, that SMTH is used as is
+     (with `'' symbols if present). Here N is digit (0...9) or alpha
+     (a...z).
+
+ -- MGL command: define name smth
+     Create scalar variable `name' which have the numeric value of
+     `smth'. Later you can use this variable as usual number. Here N is
+     digit (0...9) or alpha (a...z).
+   
+ -- MGL command: defchr $N smth
+     Sets N-th script argument to character with value evaluated from
+     SMTH. Here N is digit (0...9) or alpha (a...z).
+   
+ -- MGL command: defnum $N smth
+     Sets N-th script argument to number with value evaluated from
+     SMTH. Here N is digit (0...9) or alpha (a...z).
+   
+ -- MGL command: defpal $N smth
+     Sets N-th script argument to palette character at position
+     evaluated from SMTH. Here N is digit (0...9) or alpha (a...z).
+
+ -- MGL command: call 'fname' [ARG1 ARG2 ... ARG9]
+     Executes function FNAME (or script if function is not found).
+     Optional arguments will be passed to functions. See also *note
+     func::.
+   
+ -- MGL command: func 'fname' [narg=0]
+     Define the function FNAME and number of required arguments. The
+     arguments will be placed in script parameters $1, $2, ... $9.
+     Note, you should stop script execution before function
+     definition(s) by command *note stop::. See also *note return::.
+   
+ -- MGL command: return
+     Return from the function. See also *note func::.
+
+ -- MGL command: if dat 'cond'
+     Starts block which will be executed if DAT satisfy to COND.
+
+ -- MGL command: if `val'
+     Starts block which will be executed if `val' is nonzero.
+   
+ -- MGL command: elseif dat 'cond'
+     Starts block which will be executed if previous `if' or `elseif'
+     is false and DAT satisfy to COND.
+
+ -- MGL command: elseif `val'
+     Starts block which will be executed if previous `if' or `elseif'
+     is false and `val' is nonzero.
+   
+ -- MGL command: else
+     Starts block which will be executed if previous `if' or `elseif'
+     is false.
+   
+ -- MGL command: endif
+     Finishes `if/elseif/else' block.
+
+ -- MGL command: for $N `v1 v2 [dv=1]'
+     Starts cycle with $N-th argument changing from V1 to V2 with the
+     step DV. Here N is digit (0...9) or alpha (a...z).
+
+ -- MGL command: for $N dat
+     Starts cycle with $N-th argument changing for DAT values. Here N
+     is digit (0...9) or alpha (a...z).
+   
+ -- MGL command: next
+     Finishes `for' cycle.
+
+ -- MGL command: once `val'
+     The code between `once on' and `once off' will be executed only
+     once. Useful for large data manipulation in programs like UDAV.
+   
+ -- MGL command: stop
+     Terminate execution.
+
+
+File: mathgl_en.info,  Node: Command options (MGL),  Next: Suffixes,  Prev: Program flow (MGL),  Up: MGL interface
+
+8.24 Command options (MGL)
+==========================
+
+Command options allow the easy setup of the plot by changing of global
+settings only for this plot. Options are specified at the end of
+string. Each option is separated from the previous text by symbol `;'.
+Options work so that them remember the current settings, change
+settings as it being set in the option, execute command and return the
+original settings back. So, the options usage for data handling
+commands or for graphics setup commands is useless.
+
+   The most useful options are `xrange, yrange, zrange'. They sets the
+boundaries for data change. This boundaries are used for automatically
+filled variables. So, these options allow one to change the position of
+some plots. For example, in command `plot y; xrange 0.1 0.9' the x
+coordinate will be equidistantly distributed in range 0.1 ... 0.9.
+
+   The full list of options are: 
+
+ -- MGL option: alpha `val'
+ -- MGL option: alphadef `val'
+     Sets alpha value (transparency) of the plot. The value should be
+     in range [0, 1]. See also *note alphadef::.
+   
+ -- MGL option: ambient `val'
+     Sets brightness of ambient light for the plot. The value should be
+     in range [0, 1]. See also *note ambient::.
+   
+ -- MGL option: crange `val1 val2'
+     Sets boundaries of color change for the plot. See also *note
+     crange::.
+   
+ -- MGL option: xrange `val1 val2'
+     Sets boundaries of x coordinate change for the plot. See also
+     *note xrange::.
+   
+ -- MGL option: yrange `val1 val2'
+     Sets boundaries of y coordinate change for the plot. See also
+     *note yrange::.
+   
+ -- MGL option: zrange `val1 val2'
+     Sets boundaries of z coordinate change for the plot. See also
+     *note zrange::.
+   
+ -- MGL option: cut `val'
+     Sets whether to cut or to project the plot points lying outside
+     the bounding box. See also *note cut::.
+   
+ -- MGL option: fontsize `val'
+     Sets the size of text. See also *note font::.
+   
+ -- MGL option: marksize `val'
+     Sets the size of marks. See also *note marksize::.
+   
+ -- MGL option: meshnum `val'
+     Work like *note meshnum:: command.
+   
+ -- MGL option: legend 'txt'
+     Adds string 'txt' to internal legend accumulator. The style of
+     described line and mark is taken from arguments of the last *note
+     1D plotting (MGL):: command. See also *note legend::.
+
+
+File: mathgl_en.info,  Node: Suffixes,  Next: Utilities,  Prev: Command options (MGL),  Up: MGL interface
+
+8.25 Suffixes for variable
+==========================
+
+Suffixes can get some numerical value (like its size, maximal or
+minimal value, the sum of elements and so on) of the data array in
+variable and use it later as usual number in command arguments. The
+suffixes start from point `.' right after (without spaces) variable
+name or its sub-array. For example, `a.nx' give the x-size of data A,
+`b(1).max' give maximal value of second row of variable B,
+`(c(:,0)^2).sum' give the sum of squares of elements in the first
+column of C and so on.
+
+   The full list of suffixes are:
+*nx, ny, nz*
+     Give the data size in x-, y-, z-direction correspondingly.
+
+*max*
+     Give maximal value of the data.
+
+*min*
+     Give minimal value of the data.
+
+*sum*
+     Give sum of data values.
+
+*a*
+     Give first value of data array.
+
+*fst*
+     Give first nonzero value of data array.
+
+*lst*
+     Give last nonzero value of data array.
+
+*mx, my, mz*
+     Give x-, y-, z-position of data maximum.
+
+*ax, ay, az, aa*
+     Give x-, y-, z-position of data mass center or average data value.
+
+*wx, wy, wz, wa*
+     Give width in x-, y-, z-direction or data dispersion value.
+
+*sx, sy, sz, sa*
+     Give skewness in x-, y-, z-direction or data skewness value.
+
+*kx, ky, kz, ka*
+     Give kurtosis in x-, y-, z-direction or data kurtosis value.
+
+
+File: mathgl_en.info,  Node: Utilities,  Prev: Suffixes,  Up: MGL interface
+
+8.26 Utilities for parsing MGL
+==============================
+
+MathGL library provides several tools for parsing MGL scripts. There is
+tools saving it to bitmap (`mgl2png', `mgl2gif') or vectorial
+(`mgl2eps', `mgl2svg') images. Tool `mglview' show MGL script and allow
+to rotate and setup the image. Also you can translate MGL script to C++
+file by help of `mgl2cpp' tool.
+
+   All of this tools have similar set of arguments. First argument is
+name of script file, next argument is optional output file name, last
+arguments are options. There are options for setting script parameters
+(it is `$0, $1, ... $9') and locale settings. The script parameters
+have format `-Nval'. Here N=0,1...9 is parameter ID and val is its
+value. For example, option `-1test' set to substitute `test' instead of
+`$1' in the script. Option -Lval set locale to val. For example,
+`-Lutf8' will set UTF-8 locale for script.
+
+   Additionally you can create animated GIF file or a set of JPEG files
+with names `frameNNNN.jpg' (here `NNNN' is frame index). You should use
+`mgl2gif' tool and specify the values of `$0' parameter for making
+animation. Values of the parameter `$0' can be specified inside the
+script by comment `##a val' for each value `val' (one comment for one
+value) or by option(s) `-Aval'. Also you can specify a cycle for
+animation by comment `##c v1 v2 dv' or by option `-Cn1:n2'. Tool
+`mgl2gif' will execute script several times (once for each specified
+value of `$0') and save result in animated GIF file. For saving each
+frame in JPEG just add command `write ''' at the end of the script.
+
+
+File: mathgl_en.info,  Node: Samples,  Next: TeX-like symbols,  Prev: MGL interface,  Up: Top
+
+9 Samples
+*********
+
+This chapter contain a lot of sample codes for all types of plots and
+for most important examples and hints. The same sample (with pictures)
+you can find at `http://mathgl.sf.net/pictures.html'.  Most of examples
+have the sample code on 5 languages: C++, MGL, C, Fortran and Python.
+However, I put only C++ code for some of examples due to a lot of them
+and clearency how to write code for other languages. All samples are
+divided on 6 large categories.  The minimal code to view the samples
+for different languages are following.  *C++ code* For compilation use:
+`g++ -o sample sample.cpp -lmgl'.  #include <mgl/mgl_zb.h>
+int main()
+{
+    mglGraph *gr = new mglGraphZB;
+    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // put sample code here
+    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    gr->ShowImage();    delete gr;
+    return 0;
+}
+ *MGL code* For preview use: `mglview sample.mgl'.  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# put sample code here
+#   -->   you may use sample as is :)
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ *Pure C code* For compilation use: `gcc -o sample sample.c -lmgl'.  #include <mgl/mgl_c.h>
+int main()
+{
+    HMGL gr = mgl_create_graph_zb(600,400);
+    /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    /* put sample code here              */
+    /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    mgl_show_image(gr,"",0);
+    mgl_delete_graph(gr);
+    return 0;
+}
+ *Fortran code* For compilation use: `gfortran -o sample sample.f90
+-lmgl'. Note, fortran don't have argument checking. So you have to take
+special attention to pass real variables to real arguments of functions
+and integer variables to integer arguments of functions. There is no
+other special checking for that!!!  integer gr, mgl_create_graph_zb
+gr = mgl_create_graph_zb(600,400)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! put sample code here
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+call mgl_show_image(gr,'',0)
+call mgl_delete_graph(gr)
+end
+ *Python* For preview use: `python sample.py'.  from mathgl import *
+gr = mglGraph();
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# put sample code here
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+gr.ShowImage();
+
+* Menu:
+
+* 1D plotting samples::
+* 2D plotting samples::
+* 3D plotting samples::
+* Dual plotting samples::
+* Basic features::
+* Additional features::
+* Advanced features::
+
+
+File: mathgl_en.info,  Node: 1D plotting samples,  Next: 2D plotting samples,  Up: Samples
+
+9.1 1D plotting samples
+=======================
+
+* Menu:
+
+* Plot sample::
+* Radar sample::
+* Tens sample::
+* Area sample::
+* Area gradient sample::
+* Bars sample::
+* Bars 2 colors sample::
+* Bars above sample::
+* Bars fall sample::
+* Barh sample::
+* Step sample::
+* Stem sample::
+* Region sample::
+* Region gradient sample::
+* Error sample::
+* BoxPlot sample::
+* Mark sample::
+* TextMark sample::
+* Tube sample::
+* Text sample::
+* Torus sample::
+* Chart sample::
+* Pie chart sample::
+* Ring chart sample::
+
+
+File: mathgl_en.info,  Node: Plot sample,  Next: Radar sample,  Up: 1D plotting samples
+
+9.1.1 Plot sample
+-----------------
+
+ [image src="../png/plot.png" ]
+
+*C++ code* mglData y(50,3);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr->Box();
+gr->Plot(y);
+ *MGL code*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y
+ *Pure C code* HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_delete_data(y);
+ *Fortran code* integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_delete_data(y)
+ *Python* y = mglData(50,3);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr.Box();
+gr.Plot(y);
+
+
+File: mathgl_en.info,  Node: Radar sample,  Next: Tens sample,  Prev: Plot sample,  Up: 1D plotting samples
+
+9.1.2 Radar sample
+------------------
+
+ [image src="../png/radar.png" ]
+
+*C++ code* mglData y(10,3);
+y.Modify("0.4*sin(pi*(2*x+y/2))+0.1*rnd");
+gr->Radar(y,"#");
+ *MGL code*
+new y 10 3
+modify y '0.4*sin(pi*(2*x+y/2))+0.1*rnd'
+radar y '#'
+ *Pure C code* HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,"0.4*sin(pi*(2*x+y/2))+0.1*rnd",0);
+mgl_radar(gr,y,"#",-1);
+mgl_delete_data(y);
+ *Fortran code* integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.4*sin(pi*(2*x+y/2))+0.1*rnd',0)
+call mgl_radar(gr,y,'#',-1.)
+call mgl_delete_data(y)
+ *Python* y = mglData(10,3);
+y.Modify("0.4*sin(pi*(2*x+y/2))+0.1*rnd");
+gr.Radar(y,"#");
+
+
+File: mathgl_en.info,  Node: Tens sample,  Next: Area sample,  Prev: Radar sample,  Up: 1D plotting samples
+
+9.1.3 Tens sample
+-----------------
+
+ [image src="../png/tens.png" ]
+
+*C++ code* mglData y(50), c(50);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)");
+c.Modify("sin(2*pi*x)");
+gr->Box();
+gr->Tens(y,c);
+ *MGL code*
+new y 50
+new c 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify c 'sin(2*pi*x)'
+box
+tens y c
+ *Pure C code* HMDT y = mgl_create_data_size(50,1,1);
+HMDT c = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(c,"sin(2*pi*x)",0);
+mgl_box(gr,1);
+mgl_tens(gr,y,c,NULL);
+mgl_delete_data(y);
+mgl_delete_data(c);
+ *Fortran code* integer y, c, mgl_create_data_size
+y = mgl_create_data_size(50,1,1)
+c = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(c,'sin(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_tens(gr,y,'')
+call mgl_delete_data(y)
+call mgl_delete_data(c)
+ *Python* y = mglData(50);
+c = mglData(50);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)");
+c.Modify("sin(2*pi*x)");
+gr.Box();
+gr.Tens(y,c);
+
+
+File: mathgl_en.info,  Node: Area sample,  Next: Area gradient sample,  Prev: Tens sample,  Up: 1D plotting samples
+
+9.1.4 Area sample
+-----------------
+
+ [image src="../png/area.png" ]
+
+*C++ code* mglData y(50,3);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Area(y);
+ *MGL code*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y
+ *Pure C code* HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_area(gr,y,NULL);
+mgl_delete_data(y);
+ *Fortran code* integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_area(gr,y,'')
+call mgl_delete_data(y)
+ *Python* y = mglData(50,3);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Area(y);
+
+
+File: mathgl_en.info,  Node: Area gradient sample,  Next: Bars sample,  Prev: Area sample,  Up: 1D plotting samples
+
+9.1.5 Area with gradient filling sample
+---------------------------------------
+
+ [image src="../png/area_2.png" ]
+
+*C++ code* mglData y(50,3);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Area(y,"cbgGyr");
+ *MGL code*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y 'cbgGyr'
+ *Pure C code* HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_area(gr,y,"cbgGyr");
+mgl_delete_data(y);
+ *Fortran code* integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_area(gr,y,'cbgGyr')
+call mgl_delete_data(y)
+ *Python* y = mglData(50,3);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Area(y,"cbgGyr");
+
+
+File: mathgl_en.info,  Node: Bars sample,  Next: Bars 2 colors sample,  Prev: Area gradient sample,  Up: 1D plotting samples
+
+9.1.6 Bars sample
+-----------------
+
+ [image src="../png/bars.png" ]
+
+*C++ code* mglData y(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Bars(y);
+ *MGL code*
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y
+ *Pure C code* HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,"0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,NULL);
+mgl_delete_data(y);
+ *Fortran code* integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'')
+call mgl_delete_data(y)
+ *Python* y = mglData(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y);
+
+
+File: mathgl_en.info,  Node: Bars 2 colors sample,  Next: Bars above sample,  Prev: Bars sample,  Up: 1D plotting samples
+
+9.1.7 Bars 2 colors sample
+--------------------------
+
+ [image src="../png/bars_2.png" ]
+
+*C++ code* mglData y(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Bars(y,"cbgGyr");
+ *MGL code*
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'cbgGyr'
+ *Pure C code* HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,"0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,"cbgGyr");
+mgl_delete_data(y);
+ *Fortran code* integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'cbgGyr')
+call mgl_delete_data(y)
+ *Python* y = mglData(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,"cbgGyr");
+
+
+File: mathgl_en.info,  Node: Bars above sample,  Next: Bars fall sample,  Prev: Bars 2 colors sample,  Up: 1D plotting samples
+
+9.1.8 Bars above sample
+-----------------------
+
+ [image src="../png/bars_a.png" ]
+
+*C++ code* mglData y(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Bars(y,"a");
+ *MGL code*
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'a'
+ *Pure C code* HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,"0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,"a");
+mgl_delete_data(y);
+ *Fortran code* integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'a')
+call mgl_delete_data(y)
+ *Python* y = mglData(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,"a");
+
+
+File: mathgl_en.info,  Node: Bars fall sample,  Next: Barh sample,  Prev: Bars above sample,  Up: 1D plotting samples
+
+9.1.9 Bars fall sample
+----------------------
+
+ [image src="../png/bars_f.png" ]
+
+*C++ code* mglData y(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Bars(y,"f");
+ *MGL code*
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'f'
+ *Pure C code* HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,"0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,"f");
+mgl_delete_data(y);
+ *Fortran code* integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'f')
+call mgl_delete_data(y)
+ *Python* y = mglData(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,"f");
+
+
+File: mathgl_en.info,  Node: Barh sample,  Next: Step sample,  Prev: Bars fall sample,  Up: 1D plotting samples
+
+9.1.10 Barh sample
+------------------
+
+ [image src="../png/barh.png" ]
+
+*C++ code* mglData y(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Barh(y);
+ *MGL code*
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+barh y
+ *Pure C code* HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,"0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_barh(gr,y,NULL);
+mgl_delete_data(y);
+ *Fortran code* integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_barh(gr,y,'')
+call mgl_delete_data(y)
+ *Python* y = mglData(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Barh(y);
+
+
+File: mathgl_en.info,  Node: Step sample,  Next: Stem sample,  Prev: Barh sample,  Up: 1D plotting samples
+
+9.1.11 Step sample
+------------------
+
+ [image src="../png/step.png" ]
+
+*C++ code* mglData y(50,3);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr->Box();
+gr->Step(y);
+ *MGL code*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+step y
+ *Pure C code* HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_box(gr,1);
+mgl_step(gr,y,NULL);
+mgl_delete_data(y);
+ *Fortran code* integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_box(gr,1)
+call mgl_step(gr,y,'')
+call mgl_delete_data(y)
+ *Python* y = mglData(50,3);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr.Box();
+gr.Step(y);
+
+
+File: mathgl_en.info,  Node: Stem sample,  Next: Region sample,  Prev: Step sample,  Up: 1D plotting samples
+
+9.1.12 Stem sample
+------------------
+
+ [image src="../png/stem.png" ]
+
+*C++ code* mglData y(50,3);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Stem(y,"o");
+ *MGL code*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+stem y 'o'
+ *Pure C code* HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_stem(gr,y,"o");
+mgl_delete_data(y);
+ *Fortran code* integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_stem(gr,y,'o')
+call mgl_delete_data(y)
+ *Python* y = mglData(50,3);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Stem(y,"o");
+
+
+File: mathgl_en.info,  Node: Region sample,  Next: Region gradient sample,  Prev: Stem sample,  Up: 1D plotting samples
+
+9.1.13 Region sample
+--------------------
+
+ [image src="../png/region.png" ]
+
+*C++ code* mglData y1(50), y2(50);
+y1.Modify("0.3*sin(2*pi*x)");
+y2.Modify("0.5+0.3*cos(2*pi*x)");
+gr->Box();
+gr->Region(y1,y2,"r");
+gr->Plot(y1,"k2");
+gr->Plot(y2,"k2");
+ *MGL code*
+new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'r'
+plot y1 'k2'
+plot y2 'k2'
+ *Pure C code* HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,"0.3*sin(2*pi*x)",0);
+mgl_data_modify(y2,"0.5+0.3*cos(2*pi*x)",0);
+mgl_box(gr,1);
+mgl_region(gr,y1,y2,"r",1);
+mgl_plot(gr,y1,"k2");
+mgl_plot(gr,y2,"k2");
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+ *Fortran code* integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,'0.3*sin(2*pi*x)',0);
+call mgl_data_modify(y2,'0.5+0.3*cos(2*pi*x)',0);
+call mgl_box(gr,1);
+call mgl_region(gr,y1,y2,'r',1);
+call mgl_plot(gr,y1,'k2');
+call mgl_plot(gr,y2,'k2');
+call mgl_delete_data(y1);
+call mgl_delete_data(y2);
+ *Python* y1, y2, x = mglData(50), mglData(50), mglData(50);
+y1.Modify("0.3*sin(2*pi*x)");
+y2.Modify("0.5+0.3*cos(2*pi*x)");
+gr.Box();
+gr.Region(y1,y2,"r");
+gr.Plot(y1,"k2");
+gr.Plot(y2,"k2");
+
+
+File: mathgl_en.info,  Node: Region gradient sample,  Next: Error sample,  Prev: Region sample,  Up: 1D plotting samples
+
+9.1.14 Region gradient sample
+-----------------------------
+
+ [image src="../png/region_2.png" ]
+
+*C++ code* mglData y1(50), y2(50);
+y1.Modify("0.3*sin(2*pi*x)");
+y2.Modify("0.5+0.3*cos(2*pi*x)");
+gr->Box();
+gr->Region(y1,y2,"yr");
+gr->Plot(y1,"k2");
+gr->Plot(y2,"k2");
+ *MGL code*
+new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'yr'
+plot y1 'k2'
+plot y2 'k2'
+ *Pure C code* HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,"0.3*sin(2*pi*x)",0);
+mgl_data_modify(y2,"0.5+0.3*cos(2*pi*x)",0);
+mgl_box(gr,1);
+mgl_region(gr,y1,y2,"yr",1);
+mgl_plot(gr,y1,"k2");
+mgl_plot(gr,y2,"k2");
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+ *Fortran code* integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,'0.3*sin(2*pi*x)',0);
+call mgl_data_modify(y2,'0.5+0.3*cos(2*pi*x)',0);
+call mgl_box(gr,1);
+call mgl_region(gr,y1,y2,'yr',1);
+call mgl_plot(gr,y1,'k2');
+call mgl_plot(gr,y2,'k2');
+call mgl_delete_data(y1);
+call mgl_delete_data(y2);
+ *Python* y1, y2, x = mglData(50), mglData(50), mglData(50);
+y1.Modify("0.3*sin(2*pi*x)");
+y2.Modify("0.5+0.3*cos(2*pi*x)");
+gr.Box();
+gr.Region(y1,y2,"yr");
+gr.Plot(y1,"k2");
+gr.Plot(y2,"k2");
+
+
+File: mathgl_en.info,  Node: Error sample,  Next: BoxPlot sample,  Prev: Region gradient sample,  Up: 1D plotting samples
+
+9.1.15 Error sample
+-------------------
+
+ [image src="../png/error.png" ]
+
+*C++ code* mglData y(50,1), x0(10), y0(10), ex(10), ey(10);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+x0.Modify("2*x-1 + 0.1*rnd-0.05");
+y0.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1");
+ey.Modify("0.2"); ex.Modify("0.1");
+gr->Box();
+gr->Plot(y);
+gr->Error(x0,y0,ex,ey,"ko");
+ *MGL code*
+new y 50
+new x0 10
+new y0 10
+new ex 10
+new ey 10
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify x0 '2*x-1 + 0.1*rnd-0.05'
+modify y0 '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1'
+modify ey '0.2'
+modify ex '0.1'
+box
+plot y
+error x0 y0 ex ey 'ko'
+ *Pure C code* HMDT y = mgl_create_data_size(50,1,1);
+HMDT x0 = mgl_create_data_size(10,1,1);
+HMDT y0 = mgl_create_data_size(10,1,1);
+HMDT ex = mgl_create_data_size(10,1,1);
+HMDT ey = mgl_create_data_size(10,1,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(x0,"2*x-1 + 0.1*rnd-0.05",0);
+mgl_data_modify(y0,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1",0);
+mgl_data_modify(ey,"0.2",0); mgl_data_modify(ex,"0.1",0);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_error_exy(gr,x0,y0,ex,ey,"ko");
+mgl_delete_data(x0); mgl_delete_data(y0);
+mgl_delete_data(ex); mgl_delete_data(ey);
+mgl_delete_data(y);
+ *Fortran code* integer y, x0, y0, ex, ey, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+x0 = mgl_create_data_size(10,1,1)
+y0 = mgl_create_data_size(10,1,1)
+ex = mgl_create_data_size(10,1,1)
+ey = mgl_create_data_size(10,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(x0,'2*x-1 + 0.1*rnd-0.05',0);
+call mgl_data_modify(y0,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + &
+                         0.2*sin(pi*x) + 0.2*rnd-0.1',0);
+call mgl_data_modify(ey,'0.2',0)
+call mgl_data_modify(ex,'0.1',0);
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_error_exy(gr,x0,y0,ex,ey,'ko')
+call mgl_delete_data(x0)
+call mgl_delete_data(y0)
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(y)
+ *Python* y, x0, y0, ex, ey = mglData(50,1), mglData(10), mglData(10), mglData(10), mglData(10);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+x0.Modify("2*x-1+0.1*rnd-0.05");
+y0.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)+0.2*rnd-0.1");
+ey.Modify("0.2");   ex.Modify("0.1");
+gr.Box();           gr.Plot(y);
+gr.Error(x0,y0,ex,ey,"ko");
+
+
+File: mathgl_en.info,  Node: BoxPlot sample,  Next: Mark sample,  Prev: Error sample,  Up: 1D plotting samples
+
+9.1.16 BoxPlot sample
+---------------------
+
+ [image src="../png/boxplot.png" ]
+
+*C++ code* mglData a(10,7);
+a.Modify("(2*rnd-1)^3/2");
+gr->BoxPlot(a);
+gr->Box();
+gr->Plot(a," ko");
+ *MGL code*
+new a 10 7
+modify a '(2*rnd-1)^3/2'
+boxplot a
+box:plot a ' ko'
+ *Pure C code* HMDT a = mgl_create_data_size(10,7,1);
+mgl_data_modify(a,"(2*rnd-1)^3/2",0);
+mgl_box(gr,1);
+mgl_plot(gr,a," ko");
+mgl_boxplot(gr,a,NULL);
+mgl_delete_data(a);
+ *Fortran code* integer a, mgl_create_data_size
+y = mgl_create_data_size(10,7,1)
+call mgl_data_modify(a,'(2*rnd-1)^3/2',0);
+call mgl_box(gr,1)
+call mgl_plot(gr,a,' ko')
+call mgl_boxplot(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(10,7);
+a.Modify("(2*rnd-1)^3/2");
+gr.Box();
+gr.Plot(a," ko");
+gr.BoxPlot(a);
+
+
+File: mathgl_en.info,  Node: Mark sample,  Next: TextMark sample,  Prev: BoxPlot sample,  Up: 1D plotting samples
+
+9.1.17 Mark sample
+------------------
+
+ [image src="../png/mark.png" ]
+
+*C++ code* mglData y(50,3), y1(50);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+y1.Modify("0.5+0.3*cos(2*pi*x)");
+gr->Box();
+gr->Mark(y,y1,"bs");
+ *MGL code*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+mark y y1 'bs'
+ *Pure C code* HMDT y = mgl_create_data_size(50,3,1);
+HMDT y1 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_data_modify(y1,"0.5+0.3*cos(2*pi*x)",0);
+mgl_box(gr,1);
+mgl_mark_y(gr,y,y1,"bs");
+mgl_delete_data(y);
+mgl_delete_data(y1);
+ *Fortran code* integer y, y1, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+y1 = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_data_modify(y1,'0.5+0.3*cos(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_mark_y(gr,y,y1,'bs')
+call mgl_delete_data(y)
+call mgl_delete_data(y1)
+ *Python* y, y1 = mglData(50,3), mglData(50);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);     y.Modify("cos(2*pi*x)",2);
+y1.Modify("0.5+0.3*cos(2*pi*x)");
+gr.Box();
+gr.Mark(y,y1,"bs");
+
+
+File: mathgl_en.info,  Node: TextMark sample,  Next: Tube sample,  Prev: Mark sample,  Up: 1D plotting samples
+
+9.1.18 TextMark sample
+----------------------
+
+ [image src="../png/textmark.png" ]
+
+*C++ code* mglData y(50,3), y1(50);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+y1.Modify("0.5+0.3*cos(2*pi*x)");
+gr->Box();
+gr->TextMark(y,y1,"\\gamma");
+ *MGL code*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+textmark y y1 '\gamma'
+ *Pure C code* HMDT y, y1;
+y = mgl_create_data_size(50,3,1);
+y1 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_data_modify(y1,"0.5+0.3*cos(2*pi*x)",0);
+mgl_box(gr,1);
+mgl_textmark_yr(gr,y,y1,"\\gamma","");
+mgl_delete_data(y);
+mgl_delete_data(y1);
+ *Fortran code* integer y, y1, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+y1 = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_data_modify(y1,'0.5+0.3*cos(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_textmark_yr(gr,y,y1,'\gamma','')
+call mgl_delete_data(y)
+call mgl_delete_data(y1)
+ *Python* y, y1 = mglData(50,3), mglData(50);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);     y.Modify("cos(2*pi*x)",2);
+y1.Modify("0.5+0.3*cos(2*pi*x)");
+gr.Box();
+gr.TextMark(y,y1,"\\gamma");
+
+
+File: mathgl_en.info,  Node: Tube sample,  Next: Text sample,  Prev: TextMark sample,  Up: 1D plotting samples
+
+9.1.19 Tube sample
+------------------
+
+ [image src="../png/tube.png" ]
+
+*C++ code* mglData y(50,3);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Tube(y,0.05);
+ *MGL code*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+rotate 40 60
+light on
+box
+tube y 0.05
+ *Pure C code* HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_tube(gr,y,0.05,NULL);
+mgl_delete_data(y);
+ *Fortran code* integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_tube(gr,y,0.05,'')
+call mgl_delete_data(y)
+ *Python* y = mglData(50,3);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);  y.Modify("cos(2*pi*x)",2);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Tube(y,0.05);
+
+
+File: mathgl_en.info,  Node: Text sample,  Next: Torus sample,  Prev: Tube sample,  Up: 1D plotting samples
+
+9.1.20 Text sample
+------------------
+
+ [image src="../png/text.png" ]
+
+*C++ code* mglData y(50,3);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr->Box();
+gr->Plot(y.SubData(-1,0));
+gr->Text(y,"This is very long string drawn along a curve",":k");
+gr->Text(y,"Another string drawn above a curve","T:r");
+ *MGL code*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y(:,0)
+text y 'This is very long string drawn along a curve' ':k'
+text y 'Another string drawn above a curve' 'T:r'
+ *Pure C code* HMDT y = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_text_y(gr,y,"This is very long string drawn along a curve",":k",-1.);
+mgl_text_y(gr,y,"Another string drawn above a curve","T:r",-1.);
+mgl_delete_data(y);
+ *Fortran code* integer y, mgl_create_data_size
+y = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_text_y(gr,y,'This is very long string drawn along a curve',':k',-1.)
+call mgl_text_y(gr,y,'Another string drawn above a curve','T:r',-1.)
+call mgl_delete_data(y)
+ *Python* y = mglData(50,3);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);     y.Modify("cos(2*pi*x)",2);
+gr.Box();
+gr.Plot(y.SubData(-1,0));
+gr.Text(y,"This is very long string drawn along a curve",":k");
+gr.Text(y,"Another string drawn above a curve","T:r");
+
+
+File: mathgl_en.info,  Node: Torus sample,  Next: Chart sample,  Prev: Text sample,  Up: 1D plotting samples
+
+9.1.21 Torus sample
+-------------------
+
+ [image src="../png/torus.png" ]
+
+*C++ code* mglData y1(50), y2(50);
+y1.Modify("0.5+0.3*cos(2*pi*x)");
+y2.Modify("0.3*sin(2*pi*x)");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Torus(y1,y2,"pz");
+ *MGL code*
+new y1 50
+new y2 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+rotate 40 60
+light on
+box
+torus y1 y2 'pz'
+ *Pure C code* HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,"0.5+0.3*cos(2*pi*x)",0);
+mgl_data_modify(y2,"0.3*sin(2*pi*x)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_torus(gr,y1,y2,"pz");
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+ *Fortran code* integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,"0.5+0.3*cos(2*pi*x)",0);
+call mgl_data_modify(y2,"0.3*sin(2*pi*x)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_torus(gr,y1,y2,'pz')
+call mgl_delete_data(y1)
+call mgl_delete_data(y2)
+ *Python* y1, y2 = mglData(50), mglData(50);
+y1.Modify("0.5+0.3*cos(2*pi*x)");
+y2.Modify("0.3*sin(2*pi*x)");
+gr.Rotate(40,60);    gr.Light(True);
+gr.Box();
+gr.Torus(y1,y2,"pz");
+
+
+File: mathgl_en.info,  Node: Chart sample,  Next: Pie chart sample,  Prev: Torus sample,  Up: 1D plotting samples
+
+9.1.22 Chart sample
+-------------------
+
+ [image src="../png/chart.png" ]
+
+*C++ code* mglData ch(7,2);
+ch.Modify("rnd+0.1");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Chart(ch,"#");
+ *MGL code*
+new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+box
+chart ch
+ *Pure C code* HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,"rnd+0.1",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_chart(gr,ch,"#");
+mgl_delete_data(ch);
+ *Fortran code* integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'#')
+call mgl_delete_data(ch)
+ *Python* ch = mglData(7,2);  ch.Modify("rnd+0.1");
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Chart(ch,"#");
+
+
+File: mathgl_en.info,  Node: Pie chart sample,  Next: Ring chart sample,  Prev: Chart sample,  Up: 1D plotting samples
+
+9.1.23 Pie chart sample
+-----------------------
+
+ [image src="../png/pie_chart.png" ]
+
+*C++ code* mglData ch(7,2);
+ch.Modify("rnd+0.1");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->SetFunc("(y+1)/2*cos(pi*x)","(y+1)/2*sin(pi*x)");
+gr->Box();
+gr->Chart(ch,"bgr cmy#");
+ *MGL code*
+new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+1)/2*cos(pi*x)' '(y+1)/2*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+ *Pure C code* HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,"rnd+0.1",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_func(gr,"(y+1)/2*cos(pi*x)","(y+1)/2*sin(pi*x)",0);
+mgl_box(gr,1);
+mgl_chart(gr,ch,"bgr cmy#");
+mgl_delete_data(ch);
+ *Fortran code* integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_func(gr,'(y+1)/2*cos(pi*x)','(y+1)/2*sin(pi*x)','');
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'bgr cmy#')
+call mgl_delete_data(ch)
+ *Python* ch = mglData(7,2);  ch.Modify("rnd+0.1");
+gr.Rotate(40,60);   gr.Light(True);
+gr.SetFunc("(y+1)/2*cos(pi*x)","(y+1)/2*sin(pi*x)");
+gr.Box();
+gr.Chart(ch,"bgr cmy#");
+
+
+File: mathgl_en.info,  Node: Ring chart sample,  Prev: Pie chart sample,  Up: 1D plotting samples
+
+9.1.24 Ring chart sample
+------------------------
+
+ [image src="../png/ring_chart.png" ]
+
+*C++ code* mglData ch(7,2);
+ch.Modify("rnd+0.1");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->SetFunc("(y+2)/3*cos(pi*x)","(y+2)/3*sin(pi*x)");
+gr->Box();
+gr->Chart(ch,"bgr cmy#");
+ *MGL code*
+new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+2)/3*cos(pi*x)' '(y+2)/3*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+ *Pure C code* HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,"rnd+0.1",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_func(gr,"(y+2)/3*cos(pi*x)","(y+2)/3*sin(pi*x)",0);
+mgl_box(gr,1);
+mgl_chart(gr,ch,"bgr cmy#");
+mgl_delete_data(ch);
+ *Fortran code* integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_func(gr,'(y+2)/3*cos(pi*x)','(y+2)/3*sin(pi*x)','');
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'bgr cmy#')
+call mgl_delete_data(ch)
+ *Python* ch = mglData(7,2);  ch.Modify("rnd+0.1");
+gr.Rotate(40,60);   gr.Light(True);
+gr.SetFunc("(y+2)/3*cos(pi*x)","(y+2)/3*sin(pi*x)");
+gr.Box();
+gr.Chart(ch,"bgr cmy#");
+
+
+File: mathgl_en.info,  Node: 2D plotting samples,  Next: 3D plotting samples,  Prev: 1D plotting samples,  Up: Samples
+
+9.2 2D plotting samples
+=======================
+
+* Menu:
+
+* Surf sample::
+* Transparent surface sample::
+* Surface in fog sample::
+* Sharp colors sample::
+* Mesh sample::
+* Fall sample::
+* Belt sample::
+* Tile sample::
+* Boxs sample::
+* Dens sample::
+* Cont sample::
+* ContF sample::
+* ContD sample::
+* Axial sample::
+* Grad sample::
+
+
+File: mathgl_en.info,  Node: Surf sample,  Next: Transparent surface sample,  Up: 2D plotting samples
+
+9.2.1 Surf sample
+-----------------
+
+ [image src="../png/surf.png" ]
+
+*C++ code* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Surf(a);
+ *MGL code*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+ *Pure C code* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+ *Fortran code* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Surf(a);
+
+
+File: mathgl_en.info,  Node: Transparent surface sample,  Next: Surface in fog sample,  Prev: Surf sample,  Up: 2D plotting samples
+
+9.2.2 Transparent surface sample
+--------------------------------
+
+ [image src="../png/surf_alpha.png" ]
+
+*C++ code* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Alpha(true);
+gr->Box();
+gr->Surf(a);
+ *MGL code*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surf a
+ *Pure C code* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+ *Fortran code* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Alpha(True);
+gr.Surf(a);
+
+
+File: mathgl_en.info,  Node: Surface in fog sample,  Next: Sharp colors sample,  Prev: Transparent surface sample,  Up: 2D plotting samples
+
+9.2.3 Surface in fog sample
+---------------------------
+
+ [image src="../png/surf_fog.png" ]
+
+*C++ code* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Fog(1);
+gr->Box();
+gr->Surf(a);
+ *MGL code*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+fog 1
+box
+surf a
+ *Pure C code* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_fog(gr,1.,0.25);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+ *Fortran code* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_fog(gr,1.,0.25)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Fog(1);
+gr.Surf(a);
+
+
+File: mathgl_en.info,  Node: Sharp colors sample,  Next: Mesh sample,  Prev: Surface in fog sample,  Up: 2D plotting samples
+
+9.2.4 Sharp colors sample
+-------------------------
+
+ [image src="../png/surf_sl.png" ]
+
+*C++ code* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Surf(a,"BbcyrR|");
+ *MGL code*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a 'BbcyrR|'
+ *Pure C code* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,"BbcyrR|");
+mgl_delete_data(a);
+ *Fortran code* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'BbcyrR|')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Surf(a,"BbcyrR|");
+
+
+File: mathgl_en.info,  Node: Mesh sample,  Next: Fall sample,  Prev: Sharp colors sample,  Up: 2D plotting samples
+
+9.2.5 Mesh sample
+-----------------
+
+ [image src="../png/mesh.png" ]
+
+*C++ code* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Box();
+gr->Mesh(a);
+ *MGL code*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+mesh a
+ *Pure C code* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_mesh(gr,a,0);
+mgl_delete_data(a);
+ *Fortran code* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_mesh(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Mesh(a);
+
+
+File: mathgl_en.info,  Node: Fall sample,  Next: Belt sample,  Prev: Mesh sample,  Up: 2D plotting samples
+
+9.2.6 Fall sample
+-----------------
+
+ [image src="../png/fall.png" ]
+
+*C++ code* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Box();
+gr->Fall(a);
+ *MGL code*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+fall a
+ *Pure C code* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_fall(gr,a,0);
+mgl_delete_data(a);
+ *Fortran code* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_fall(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Fall(a);
+
+
+File: mathgl_en.info,  Node: Belt sample,  Next: Tile sample,  Prev: Fall sample,  Up: 2D plotting samples
+
+9.2.7 Belt sample
+-----------------
+
+ [image src="../png/belt.png" ]
+
+*C++ code* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Belt(a);
+ *MGL code*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+belt a
+ *Pure C code* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_belt(gr,a,0);
+mgl_delete_data(a);
+ *Fortran code* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_belt(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Belt(a);
+
+
+File: mathgl_en.info,  Node: Tile sample,  Next: Boxs sample,  Prev: Belt sample,  Up: 2D plotting samples
+
+9.2.8 Tile sample
+-----------------
+
+ [image src="../png/tile.png" ]
+
+*C++ code* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Tile(a);
+ *MGL code*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+tile a
+ *Pure C code* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_tile(gr,a,0);
+mgl_delete_data(a);
+ *Fortran code* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_tile(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Tile(a);
+
+
+File: mathgl_en.info,  Node: Boxs sample,  Next: Dens sample,  Prev: Tile sample,  Up: 2D plotting samples
+
+9.2.9 Boxs sample
+-----------------
+
+ [image src="../png/boxs.png" ]
+
+*C++ code* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);  gr->Light(true);
+gr->Org = mglPoint(0,0,0);
+gr->Box();
+gr->Boxs(a);
+ *MGL code*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+origin 0 0 0
+box
+boxs a
+ *Pure C code* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_boxs(gr,a,0,0.);
+mgl_delete_data(a);
+ *Fortran code* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_origin(gr,0.,0.,0.);
+call mgl_box(gr,1)
+call mgl_boxs(gr,a,'',0.)
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);       gr.Light(True);
+gr.SetOrigin(0.,0.,0.); gr.Box();
+gr.Boxs(a);
+
+
+File: mathgl_en.info,  Node: Dens sample,  Next: Cont sample,  Prev: Boxs sample,  Up: 2D plotting samples
+
+9.2.10 Dens sample
+------------------
+
+ [image src="../png/dens.png" ]
+
+*C++ code* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Box();
+gr->Dens(a);
+gr->Colorbar();
+ *MGL code*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+dens a
+colorbar
+ *Pure C code* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_box(gr,1);
+mgl_dens(gr,a,0,0);
+mgl_colorbar(gr,"",0);
+mgl_delete_data(a);
+ *Fortran code* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_box(gr,1)
+call mgl_dens(gr,a,'',0)
+call mgl_colorbar(gr,'',0)
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Box();
+gr.Dens(a);
+gr.Colorbar();
+
+
+File: mathgl_en.info,  Node: Cont sample,  Next: ContF sample,  Prev: Dens sample,  Up: 2D plotting samples
+
+9.2.11 Cont sample
+------------------
+
+ [image src="../png/cont.png" ]
+
+*C++ code* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Box();
+gr->Cont(a);
+ *MGL code*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+cont a
+ *Pure C code* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_cont(gr,a,0,7,NAN);
+mgl_delete_data(a);
+ *Fortran code* integer a, mgl_create_data_size
+real zero, nan
+! I don't know the NaN symbol in Fortran. So I produce it as zero/zero
+zero = 0; nan = zero/zero
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_cont(gr,a,'',7,nan)
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);
+gr.Box();
+gr.Cont(a);
+
+
+File: mathgl_en.info,  Node: ContF sample,  Next: ContD sample,  Prev: Cont sample,  Up: 2D plotting samples
+
+9.2.12 ContF sample
+-------------------
+
+ [image src="../png/contf.png" ]
+
+*C++ code* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);  gr->Light(true);
+gr->Box();
+gr->ContF(a);
+ *MGL code*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+contf a
+ *Pure C code* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_contf(gr,a,0,7,NAN);
+mgl_delete_data(a);
+ *Fortran code* integer a, mgl_create_data_size
+real zero, nan
+! I don't know the NaN symbol in Fortran. So I produce it as zero/zero
+zero = 0; nan = zero/zero
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_contf(gr,a,'',7,nan)
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.ContF(a);
+
diff --git a/debian/tmp/usr/share/info/mathgl_en.info-3 b/debian/tmp/usr/share/info/mathgl_en.info-3
new file mode 100644
index 0000000..c894f54
Binary files /dev/null and b/debian/tmp/usr/share/info/mathgl_en.info-3 differ
diff --git a/debian/tmp/usr/share/info/mathgl_ru.info b/debian/tmp/usr/share/info/mathgl_ru.info
new file mode 100644
index 0000000..04d758d
--- /dev/null
+++ b/debian/tmp/usr/share/info/mathgl_ru.info
@@ -0,0 +1,582 @@
+This is mathgl_ru.info, produced by makeinfo version 4.13 from
+mathgl_ru.texi.
+
+Это документация для MathGL (версии 1.11) - библиотеки классов и
+функций для построения научной графики. Пожалуйста сообщайте о любых
+ошибках в этом руководстве на <mathgl.abalakin at gmail.org>.
+
+   Copyright (C) 2009 Алексей Балакин.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with the Front-Cover Texts
+     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+     below.  A copy of the license is included in the section entitled
+     "GNU Free Documentation License."
+
+     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+     and modify this GNU manual.  Buying copies from the FSF supports
+     it in developing GNU and promoting software freedom."
+
+
+Indirect:
+mathgl_ru.info-1: 1107
+mathgl_ru.info-2: 300827
+mathgl_ru.info-3: 603738
+mathgl_ru.info-4: 900992
+
+Tag Table:
+(Indirect)
+Node: Top1107
+Node: Overview2596
+Node: Why I have written MathGL?3370
+Node: MathGL features5747
+Node: Installation and using11944
+Node: General concepts15721
+Node: Coordinate axes22515
+Node: Line styles27699
+Node: Color scheme32310
+Node: Font styles37711
+Node: Textual formulas44006
+Node: FAQ49025
+Node: Interfaces63620
+Node: C interface65508
+Node: Python interface74206
+Node: Thanks78438
+Node: Examples79175
+Node: Basic usage79831
+Node: Using FLTK/GLUT window81763
+Node: Drawing to file85404
+Node: Drawing in memory88316
+Node: Using QMathGL90585
+Node: Advanced usage92215
+Node: Subplots92688
+Node: Axis and grids94440
+Node: Curvilinear coordinates97680
+Node: Text printing example99405
+Node: Animation102521
+Node: Data handling104751
+Node: Array creation105246
+Node: Data changing107781
+Node: Data plotting110965
+Node: Plots for 1D data112068
+Node: Plots for 2D data114862
+Node: Plots for 3D data118693
+Node: Surface transparency120787
+Node: C/Fortran interface122847
+Node: MathGL and PyQt125873
+Node: Hints128072
+Node: ``Compound'' graphics128938
+Node: Two axes in one plot130834
+Node: Titles for the plot131956
+Node: Changing of the color range132711
+Node: Management of a point cutting133428
+Node: Vector field visualization134599
+Node: Several light sources135239
+Node: CutMin and CutMax features135871
+Node: Mapping visualization137029
+Node: Log-scaled plot138199
+Node: ``Templates''138803
+Node: Nonlinear fitting hints140322
+Node: PDE solving hints141994
+Node: MGL parser using147559
+Node: Stereo image150838
+Node: MathGL core151360
+Node: Graphics setup155113
+Node: Transparency156026
+Node: Lighting160382
+Node: Fog163282
+Node: Default sizes164156
+Node: Zooming168142
+Node: Cutting170624
+Node: Font settings173499
+Node: Palette and colors177431
+Node: Error handling180134
+Node: Other settings183606
+Node: Axis settings185989
+Node: Ranges (bounding box)186784
+Node: Transformation194636
+Node: Ticks198989
+Node: Transformation matrix205707
+Node: Export to file213628
+Node: Primitives drawing222145
+Node: Text printing232826
+Node: Axis and Colorbar243082
+Node: Legend249571
+Node: 1D plotting255355
+Node: Plot257367
+Node: Radar259590
+Node: Tens261079
+Node: Area263564
+Node: Region267000
+Node: Stem269360
+Node: Bars271701
+Node: Barh274802
+Node: Chart277429
+Node: Step279016
+Node: Torus281184
+Node: Tube282574
+Node: Mark285801
+Node: TextMark288365
+Node: Error292905
+Node: BoxPlot295346
+Node: 2D plotting297284
+Node: Mesh299220
+Node: Fall300827
+Node: Belt302782
+Node: Surf304692
+Node: Boxs306406
+Node: Tile308017
+Node: Dens309716
+Node: Cont311513
+Node: ContF314620
+Node: ContD317587
+Node: Axial320540
+Node: Grad323526
+Node: Grid326758
+Node: 3D plotting328320
+Node: Surf3330122
+Node: Dens3332941
+Node: Cont3335652
+Node: ContF3339757
+Node: Grid3343786
+Node: Cloud346266
+Node: Beam349281
+Node: Dual plotting351554
+Node: SurfC352976
+Node: Surf3C354857
+Node: SurfA358036
+Node: Surf3A359961
+Node: TileS363156
+Node: Map365007
+Node: STFA367293
+Node: Vector fields369379
+Node: Traj370395
+Node: Vect372349
+Node: Dew376107
+Node: Flow378185
+Node: FlowP382090
+Node: Pipe386334
+Node: Other plotting390596
+Node: DensXYZ392055
+Node: ContXYZ393863
+Node: ContFXYZ397024
+Node: Dots400108
+Node: Crust401809
+Node: TriPlot403364
+Node: TriCont405554
+Node: QuadPlot408410
+Node: Plots by formula410529
+Node: SimplePlot413540
+Node: Nonlinear fitting414569
+Node: Data distributions428292
+Node: Frames/Animation430547
+Node: IDTF functions433290
+Node: Plotter classes434503
+Node: mglGraphAB class439068
+Node: Widget classes451369
+Node: Fl_MathGL class454040
+Node: QMathGL class456861
+Node: mglData class464909
+Node: Public variables466482
+Node: Create and delete467619
+Node: Fill472544
+Node: Rearrange477977
+Node: File I/O483443
+Node: Make another data488943
+Node: Change data497675
+Node: Interpolation506397
+Node: Informational functions509415
+Node: Operators515971
+Node: Global functions520035
+Node: Other classes528869
+Node: mglParse class529163
+Node: mglFormula class536759
+Node: mglFont class538945
+Node: Format of font files543155
+Node: mglColor class545231
+Node: mglPoint class547593
+Node: mglVar class549711
+Node: mglCommand class550768
+Node: mglArg class551819
+Node: MGL interface552538
+Node: Graphics setup (MGL)561659
+Node: Transparency (MGL)562276
+Ref: alpha563264
+Ref: alphadef563629
+Ref: transparent563836
+Ref: transptype563985
+Node: Lighting (MGL)564873
+Ref: light565753
+Ref: ambient566359
+Node: Fog (MGL)566547
+Ref: fog566714
+Node: Default sizes (MGL)567318
+Ref: barwidth567919
+Ref: marksize568114
+Ref: arrowsize568263
+Ref: linewidth568473
+Ref: ticklen568977
+Ref: tickstl569312
+Node: Zooming (MGL)569716
+Ref: plotfactor570248
+Ref: zoom570764
+Node: Cutting (MGL)571472
+Ref: cut572025
+Node: Other settings (MGL)573328
+Ref: font573519
+Ref: rotatetext573888
+Ref: palette574113
+Ref: meshnum574914
+Ref: axialdir575294
+Node: Axis settings (MGL)575454
+Ref: axis576238
+Ref: ranges576330
+Ref: caxis579388
+Ref: origin579738
+Ref: ternary580070
+Ref: xrange580893
+Ref: yrange580947
+Ref: zrange581001
+Ref: crange581055
+Ref: xtick581861
+Ref: ytick581913
+Ref: ztick581965
+Ref: ctick582017
+Ref: adjust583523
+Node: Transformation matrix (MGL)583841
+Ref: subplot584991
+Ref: inplot586283
+Ref: columnplot587066
+Ref: stickplot587616
+Ref: rotate588133
+Ref: aspect588524
+Ref: perspective588794
+Node: Export to file (MGL)589052
+Ref: write589269
+Ref: setsize589756
+Node: Primitives drawing (MGL)590208
+Ref: clf590593
+Ref: ball590750
+Ref: line590948
+Ref: curve591405
+Ref: facex591944
+Ref: facey592013
+Ref: facez592082
+Ref: sphere593032
+Ref: drop593248
+Ref: cone593963
+Ref: rect594357
+Node: Text printing (MGL)595094
+Ref: text597450
+Ref: title598908
+Ref: fgets599172
+Node: Axis and Colorbar (MGL)599450
+Ref: colorbar600543
+Ref: grid602199
+Ref: box602601
+Ref: xlabel602918
+Ref: ylabel602984
+Ref: zlabel603050
+Ref: tlabel603116
+Node: Legend (MGL)603738
+Ref: legend605176
+Ref: addlegend606020
+Ref: clearlegend606307
+Ref: legendbox606429
+Ref: legendmarks606670
+Node: 1D plotting (MGL)606848
+Ref: plot609449
+Ref: radar609948
+Ref: tens610830
+Ref: area611374
+Ref: region612463
+Ref: stem613303
+Ref: bars613804
+Ref: barh615072
+Ref: chart616402
+Ref: step617653
+Ref: torus618097
+Ref: tube618679
+Ref: mark619328
+Ref: textmark620042
+Ref: error620752
+Ref: boxplot621365
+Node: 2D plotting (MGL)622178
+Ref: surf624796
+Ref: mesh625343
+Ref: fall625779
+Ref: belt626550
+Ref: boxs627151
+Ref: tile627595
+Ref: dens628118
+Ref: cont628698
+Ref: contf629893
+Ref: contd630935
+Ref: axial632113
+Ref: grad633347
+Ref: grid2634103
+Node: 3D plotting (MGL)634465
+Ref: surf3636666
+Ref: dens3637607
+Ref: densa638299
+Ref: cont3638524
+Ref: conta639817
+Ref: contf3640048
+Ref: contfa641212
+Ref: grid3641490
+Ref: grida641974
+Ref: cloud642176
+Ref: beam643038
+Node: Dual plotting (MGL)644185
+Ref: surfc646017
+Ref: surf3c646583
+Ref: surfa647605
+Ref: surf3a648185
+Ref: tiles649228
+Ref: map649851
+Ref: stfa650741
+Node: Vector fields (MGL)651522
+Ref: traj653017
+Ref: vect653850
+Ref: vectc655410
+Ref: vectl656153
+Ref: dew656896
+Ref: flow657643
+Ref: pipe660173
+Node: Other plotting (MGL)661899
+Ref: densx663293
+Ref: densy663293
+Ref: densz663293
+Ref: contz663972
+Ref: conty663972
+Ref: contx663972
+Ref: contfz664661
+Ref: contfy664661
+Ref: contfx664661
+Ref: dots665272
+Ref: crust665771
+Ref: triplot666265
+Ref: tricont667250
+Ref: quadplot668259
+Ref: fplot669211
+Ref: fsurf670010
+Node: Nonlinear fitting (MGL)670826
+Ref: fits673269
+Ref: fit673808
+Ref: putsfit674328
+Node: Data create (MGL)674731
+Ref: new674943
+Ref: var675279
+Ref: list675575
+Ref: copy676839
+Ref: idset677321
+Ref: info677605
+Node: Data filling (MGL)678058
+Ref: fill678275
+Ref: modify679227
+Ref: put680069
+Node: Rearrange data (MGL)681223
+Ref: rearrange681467
+Ref: extend681954
+Ref: transpose682707
+Ref: squeeze682967
+Ref: crop683386
+Ref: delete683598
+Ref: insert684007
+Node: File I/O (MGL)684214
+Ref: read684459
+Ref: readmat685186
+Ref: readall685512
+Ref: save686523
+Ref: readhdf686647
+Ref: savehdf686793
+Ref: import686945
+Ref: export687273
+Node: Make another data (MGL)687849
+Ref: combine688079
+Ref: evaluate688307
+Ref: hist689084
+Ref: momentum690305
+Ref: sum690816
+Ref: max691018
+Ref: min691304
+Ref: resize691502
+Ref: subdata691761
+Ref: trace692298
+Ref: transform692734
+Ref: transforma693666
+Ref: stfad693881
+Ref: pde694383
+Ref: ray696298
+Ref: qo2d697274
+Ref: jacobian698578
+Node: Change data (MGL)699301
+Ref: cumsum699953
+Ref: integrate700099
+Ref: diff700325
+Ref: diff2701564
+Ref: sinfft701782
+Ref: cosfft702016
+Ref: hankel702255
+Ref: swap702495
+Ref: roll702749
+Ref: mirror702980
+Ref: sew703182
+Ref: smooth703492
+Ref: envelop703967
+Ref: normsl704212
+Ref: norm704733
+Node: Operators (MGL)705071
+Ref: multo705253
+Ref: divto705474
+Ref: addto705683
+Ref: subto705914
+Node: Program flow (MGL)706141
+Ref: chdir706592
+Ref: define706674
+Ref: defchr707404
+Ref: defnum707627
+Ref: defpal707853
+Ref: call708116
+Ref: func708506
+Ref: return709053
+Ref: if709147
+Ref: elseif709482
+Ref: else709984
+Ref: endif710171
+Ref: for710283
+Ref: next710867
+Ref: once710953
+Ref: stop711253
+Node: Command options (MGL)711353
+Node: Suffixes714898
+Node: Utilities717334
+Node: Samples719772
+Node: 1D plotting samples722982
+Node: Plot sample723613
+Node: Radar sample724897
+Node: Tens sample725759
+Node: Area sample727052
+Node: Area gradient sample728481
+Node: Bars sample730035
+Node: Bars 2 colors sample731059
+Node: Bars above sample732149
+Node: Bars fall sample733251
+Node: Barh sample734322
+Node: Step sample735335
+Node: Stem sample736640
+Node: Region sample738076
+Node: Region gradient sample739548
+Node: Error sample741114
+Node: BoxPlot sample743792
+Node: Mark sample744734
+Node: TextMark sample746439
+Node: Tube sample748206
+Node: Text sample749742
+Node: Torus sample751568
+Node: Chart sample753003
+Node: Pie chart sample754023
+Node: Ring chart sample755380
+Node: 2D plotting samples756719
+Node: Surf sample757206
+Node: Transparent surface sample758397
+Node: Surface in fog sample759742
+Node: Sharp colors sample761078
+Node: Mesh sample762356
+Node: Fall sample763488
+Node: Belt sample764612
+Node: Tile sample765808
+Node: Boxs sample767004
+Node: Dens sample768335
+Node: Cont sample769426
+Node: ContF sample770656
+Node: ContD sample771986
+Node: Axial sample773371
+Node: Grad sample774672
+Node: 3D plotting samples775828
+Node: Surf3 sample776257
+Node: Cloud sample777583
+Node: CloudP sample778877
+Node: Dens3 sample779922
+Node: Cont3 sample781390
+Node: ContF3 sample782563
+Node: Cont projection sample783845
+Node: Dens projection sample785688
+Node: CutMinMax sample787525
+Node: Isocaps sample789099
+Node: CutOff sample791090
+Node: Dual plotting samples792723
+Node: SurfC sample793334
+Node: SurfA sample795029
+Node: TileS sample796838
+Node: Map sample798354
+Node: Traj sample801414
+Node: Vect sample803821
+Node: VectL sample805341
+Node: VectC sample806871
+Node: Flow sample808401
+Node: Pipe sample809929
+Node: Dew sample811558
+Node: Surf3C sample813164
+Node: Surf3A sample814900
+Node: Vect 3D sample816641
+Node: VectL 3D sample819471
+Node: VectC 3D sample822311
+Node: Flow 3D sample825151
+Node: Pipe 3D sample827990
+Node: Crust sample830924
+Node: Dots sample831969
+Node: Basic features832905
+Node: 1D plot sample833413
+Node: 2D plot sample834802
+Node: 3D plot sample836462
+Node: Line styles sample837622
+Node: Arrow styles sample840571
+Node: Text styles sample843087
+Node: TeX parsing sample844281
+Node: Font faces sample844760
+Node: Colors sample845787
+Node: Color schemes sample851228
+Node: Normal transparency854863
+Node: Glass-like transparency855841
+Node: Lamp-like transparency856837
+Node: Additional features857797
+Node: Legend sample858308
+Node: Adding mesh sample860431
+Node: Surf & Cont sample863104
+Node: Flow & Dens sample864486
+Node: Several light sample866527
+Node: Mirrored surface sample868334
+Node: Cont with labels sample870543
+Node: Ternary plot sample871660
+Node: Coloring by coordinates sample875136
+Node: Drops sample876380
+Node: Molecules drawing sample879190
+Node: Advanced features882128
+Node: Curvelinear coorinates sample882643
+Node: 2-axes sample887071
+Node: Semi-log sample889293
+Node: Log-log sample891214
+Node: Fitting sample893565
+Node: Envelop sample896381
+Node: Sew sample897464
+Node: STFA sample898811
+Node: PDE sample900992
+Node: Beam tracing sample904002
+Node: Parser sample907797
+Node: Manual ticks sample910631
+Node: ColumnPlot sample911915
+Node: StickPlot sample912878
+Node: Stereo image sample914638
+Node: TeX-like symbols916304
+Node: Copying This Manual951654
+Node: Index974081
+
+End Tag Table
+
+
+Local Variables:
+coding: utf-8
+End:
diff --git a/debian/tmp/usr/share/info/mathgl_ru.info-1 b/debian/tmp/usr/share/info/mathgl_ru.info-1
new file mode 100644
index 0000000..1353b0d
--- /dev/null
+++ b/debian/tmp/usr/share/info/mathgl_ru.info-1
@@ -0,0 +1,5224 @@
+This is mathgl_ru.info, produced by makeinfo version 4.13 from
+mathgl_ru.texi.
+
+Это документация для MathGL (версии 1.11) - библиотеки классов и
+функций для построения научной графики. Пожалуйста сообщайте о любых
+ошибках в этом руководстве на <mathgl.abalakin at gmail.org>.
+
+   Copyright (C) 2009 Алексей Балакин.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with the Front-Cover Texts
+     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+     below.  A copy of the license is included in the section entitled
+     "GNU Free Documentation License."
+
+     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+     and modify this GNU manual.  Buying copies from the FSF supports
+     it in developing GNU and promoting software freedom."
+
+
+File: mathgl_ru.info,  Node: Top,  Next: Overview,  Up: (dir)
+
+MathGL
+******
+
+Это документация для MathGL (версии 1.11) - библиотеки классов и
+функций для построения научной графики. Пожалуйста сообщайте о любых
+ошибках в этом руководстве на <mathgl.abalakin at gmail.org>.
+Дополнительную информацию о MathGL можно найти на домашней странице
+проекта `http://mathgl.sourceforge.net/'.
+
+   Copyright (C) 2009 Алексей Балакин.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with the Front-Cover Texts
+     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+     below.  A copy of the license is included in the section entitled
+     "GNU Free Documentation License."
+
+     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+     and modify this GNU manual.  Buying copies from the FSF supports
+     it in developing GNU and promoting software freedom."
+
+* Menu:
+
+* Overview::
+* Examples::
+* MathGL core::
+* Plotter classes::
+* Widget classes::
+* mglData class::
+* Other classes::
+* MGL interface::
+* Samples::
+* TeX-like symbols::
+* Copying This Manual::
+* Index::
+
+
+File: mathgl_ru.info,  Node: Overview,  Next: Examples,  Up: Top
+
+1 Обзор MathGL
+*******************
+
+MathGL это ...
+   * библиотека для создания высококачественной научной графики под
+     Linux и Windows;
+
+   * библиотека для быстрого обработки и отображения больших массивов
+     данных;
+
+   * библиотека для работы в оконном и консольном режимах;
+
+   * библиотека с большим набором базовых типов графиков.
+
+* Menu:
+
+* Why I have written MathGL?::
+* MathGL features::
+* Installation and using::
+* General concepts::
+* FAQ::
+* Interfaces::
+* Thanks::
+
+
+File: mathgl_ru.info,  Node: Why I have written MathGL?,  Next: MathGL features,  Up: Overview
+
+1.1 Зачем написана MathGL?
+=======================================
+
+Код для создания качественной научной графики на различных платформах.
+Код для быстрой обработки и отображения больших массивов данных. Код
+для работы в графическом и консольном режимах и легкого интегрирования
+в другие программы. Код с большим обновляемым набором графиков и
+инструментами обработки данных. Именно такого кода мне не хватало в
+последние годы при работе на персональных компьютерах и на кластерах. И
+именно такой код я постарался создать в библиотеке MathGL.
+
+   На данный момент (версия 1.11) MathGL это более 20000 строк кода,
+более 40 основных типов графиков для одно-, двух- и трехмерных
+массивов, возможность экспорта в растровые и векторные (EPS или SVG)
+файлы, интерфейс для OpenGL и возможность запуска в консольном режиме,
+функции для обработки данных и даже простейший командный
+(интерпретируемый) язык MGL для упрощения построения графиков. Кроме
+того, есть несколько типов прозрачности, гладкое освещение, векторные
+шрифты, TeX-ие команды в надписях, произвольные криволинейные системы
+координат и прочие полезные мелочи (см. раздел pictures на домашней
+странице (http://mathgl.sf.net/)). Ну, и, естественно, полная
+переносимость библиотеки и ее свободное распространение под лицензией
+GPL v.2.0 или более поздней.
+
+
+File: mathgl_ru.info,  Node: MathGL features,  Next: Installation and using,  Prev: Why I have written MathGL?,  Up: Overview
+
+1.2 Возможности MathGL
+=================================
+
+Библиотека MathGL позволяет строить широкий класс графиков, включая:
+   * рисование одномерных массивов (Plot, Area, Bars, Step, Stem,
+     Torus, Chart, Error, Tube, Mark, *note 1D plotting::);
+
+   * рисование двумерных массивов (Mesh, Surf, Dens, Cont, ContF, Boxs,
+     Axial, Fall, Belt, Tile, *note 2D plotting::);
+
+   * рисование трехмерных массивов (Surf3, Dens3, Cont3, ContF3,
+     Cloud-like, *note 3D plotting::);
+
+   * рисование нескольких связанных массивов: векторные поля Vect и
+     VectC, линии тока Flow, точечное отображение Map, поверхности с
+     прозрачностью или цветом, определяемым другим массивом SurfA,
+     SurfC, Surf3A, Surf3C (*note Dual plotting::);
+
+   * и другие (см. *note MathGL core::).
+
+   Фактически, я постарался реализовать все известные мне типы научных
+графиков. Список графиков постоянно пополняется, и если Вам нужен
+какой-то новый вариант, пишите на e-mail <mathgl.abalakin at gmail.com>, и
+в новой версии библиотеки этот график появится.
+
+   Я постарался сделать графики максимально красивыми - поверхности
+могут быть прозрачными и освещены произвольно расположенными
+источниками света (максимальное их количество 10). Большинство функций
+рисования имеет два варианта: простой для быстрого построения картинки
+и более сложный для детальной настройки отображения, включающего в том
+числе возможность параметрического задания всех массивов. Получившееся
+изображение можно сохранить в растровом (с помощью классов mglGraphZB,
+mglGraphGL) формате PNG, JPEG, GIF, TIFF или BMP; в векторном EPS или
+SVG формате (с помощью класса mglGraphPS) и в IDTF формате (с помощью
+класса mglGraphIDTF), который можно конвертировать в U3D формат.
+
+   Все надписи выводятся векторным шрифтом, что обеспечивает их хорошую
+масштабируемость и переносимость. Текст может содержать команды для
+большинства ТеХ-их символов, изменения положения (верхний и нижний
+индексы) и стиля шрифта внутри строки текста (*note mglFont class::).
+Текст меток поворачивается вместе с осями. На график можно вывести
+описание кривых (легенду) и поместить надпись в произвольную точку
+экрана или пустить ее вдоль кривой. Поддерживаются произвольные
+кодировки текста (с помощью стандартной функции `setlocale()') и текст
+в кодировке UTF-16.
+
+   Для представления данных используется специальный класс mglData
+(*note mglData class::). Помимо безопасного создания и удаления
+массивов, он включает функции по их обработке (дифференцированию,
+интегрированию, сглаживанию, интерполяции и т.д.) и чтению текстового
+файла с автоматическим определением размеров данных. Класс mglData
+позволяет работать с массивами размерности вплоть до 3 (массивы,
+зависящие от трех независимых индексов a_{ijk}). Использование массивов
+с большим числом размерностей нецелесообразно, поскольку я не
+представляю, как их можно отобразить на экране. Заполнение или
+изменение значений массива можно выполнить как вручную, так и по
+формуле, заданной текстовой строкой.
+
+   Для _быстрого_ вычисления значения выражения, заданного текстовой
+строкой, используется класс mglFormula (*note mglFormula class::). Он
+основан на компиляции строки в древоподобную структуру при создании
+экземпляра класса. На этапе вычисления происходит быстрый обход дерева
+с выдачей результата для конкретных значений переменных. Помимо
+изменения значений массива данных, текстовые формулы используются для
+рисования в _произвольной_ криволинейной системе координат. Набор таких
+координат ограничивается только фантазией пользователя, а не
+фиксированным числом (типа полярной, параболической, цилиндрической и
+т.д.).
+
+
+File: mathgl_ru.info,  Node: Installation and using,  Next: General concepts,  Prev: MathGL features,  Up: Overview
+
+1.3 Установка MathGL
+=============================
+
+Установка библиотеки возможна тремя способами.
+  1. Скомпилировать библиотеку непосредственно из исходных файлов. С
+     библиотекой поставляется стандартный скрипт для autoconf/automake.
+     Для его запуска достаточно в командной строке выполнить 3 команды:
+     сначала `./configure' далее `make' и, наконец, с правами
+     суперпользователя `make install'. Иногда после компиляции
+     библиотеки может потребоваться обновление списка библиотека в
+     системе - выполните команду `ldconfig' с правами суперпользователя.
+
+     Скрипт `./configure' имеет несколько дополнительных опций, которые
+     по умолчанию отключены. К их числу относятся: `--enable-fltk,
+     --enable-glut, --enable-qt' для поддержки FLTK, GLUT и/или Qt
+     окон; `--enable-jpeg, --enable-tiff, --enable-hdf5' для поддержки
+     соответствующих форматов; `--enable-all' для включения всех
+     возможностей. Для использования типа `double' для внутреннего
+     хранения данных используйте опцию `--enable-double'. Для создания
+     интерфейсов к другим языкам (кроме С/Фортран/MGL) используйте
+     опции `--enable-python, --enable-octave' или `--enable-langall'
+     для всех поддерживаемых языков. Полный список опций можно увидеть,
+     выполнив `./configure --help'.
+
+  2. Использовать предварительно скомпилированные файлы - с библиотекой
+     поставляются файлы для MinGW (платформа Win32). В скомпилированной
+     версии достаточно распаковать заголовочные файлы в папку с
+     заголовочными файлами и библиотеку libmgl.a в папку с
+     библиотеками. По умолчанию, скомпилированная версия включают
+     поддержку GSL (www.gsl.org) и PNG. Соответственно, при сборке
+     программы эти библиотеки должны быть установлены (их можно найти
+     на `http://gnuwin32.sf.net').
+
+  3. Установить из стандартных пакетов (RPM, deb, DevPak и пр.).
+
+   При сборке пользовательской программы достаточно указать ключ
+`-lmgl' для компиляции в консольной программе или с использованием
+внешней графической библиотеки. При использовании окон FLTK или GLUT
+надо указать/добавить ключи, включающие соответствующие библиотеки -
+`-lmgl-fltk' или `-lmgl-glut'. Для использования в Фортране
+дополнительно надо указать опцию `-lstdc++' для библиотек C++.
+
+
+File: mathgl_ru.info,  Node: General concepts,  Next: FAQ,  Prev: Installation and using,  Up: Overview
+
+1.4 Основные принципы
+=====================================
+
+Возможности библиотеки MathGL довольно богаты - число только основных
+типов графиков превышает 50 видов. Кроме того, есть функции для
+обработки данных, настройки вида графика и пр. и пр. Тем не менее, я
+старался придерживаться единого стиля в порядке аргументов функций и
+способе их "настройки". В основном все ниже сказанное относится к
+функциям рисования различных графиков.
+
+   Всего основных концепций (базисных идей) шесть:
+  1. *Все рисунки создаются в памяти.* Это могут быть как растровые
+     картинки, так и векторные списки примитивов. Дальнейшая судьба
+     рисунков определяется пользователем: можно сохранить в файл,
+     вывести на экран, создать анимацию/кино, дополнительно
+     отредактировать и т.д. Такой подход обеспечивает высокую
+     переносимость библиотеки - один и тот же программный код создаст в
+     точности одинаковый рисунок на _любой_ операционной системе. Кроме
+     того, при таком подходе рисунки можно создавать непосредственно в
+     консольной программе - графическое окно не нужно!
+
+  2. *Все настройки графиков (стиль линий, цветовые схемы поверхностей,
+     стиль и цвет текста) задаются строками.* Это обеспечивает:
+     удобство для пользователя - короткую строку легче читать и здесь
+     тяжелее ошибиться, чем в большом списке параметров; переносимость
+     - строки выглядят одинаково на всех платформах и не надо
+     заботиться о типе и числе аргументов.
+
+  3. *Все функции имеют "упрощенный" и "продвинутый" варианты.* Сделано
+     опять из-за удобства. В "упрощенном" варианте для построения
+     графика нужны только один-два массив(а) данных, которые
+     автоматически равнораспределяются в заданном диапазоне осей
+     координат. В "продвинутой" версии можно не только указать явно
+     диапазон построения графика, но и задать его параметрически.
+     Последнее позволяет легко строить довольно сложные кривые и
+     поверхности. В обоих вариантах функций порядок аргументов
+     стандартен: сначала идут массивы данных, потом необязательный
+     строковый параметр стиля графика, а далее - второстепенные
+     необязательные параметры для более точной настройки графика.
+
+  4. *Все данные передаются через экземпляры класса mglData.* Такой
+     подход позволяет избежать ошибок при работе с памятью и
+     единообразно передавать данные разных типов (float, double, данные
+     из файла, заполненных пользователем и пр.) в функции рисования.
+
+  5. *Все элементы рисунков векторные.* Изначально библиотека MathGL
+     была ориентированна на работу с научными данными, которые по своей
+     природе векторные (линии, грани, матрицы и т.д.). Поэтому
+     векторность используется во всех рисунках! Причем иногда даже в
+     ущерб производительности (например, при выводе шрифтов). Помимо
+     всего прочего, векторность позволяет легко масштабировать рисунок
+     - измените размер картинки в 2 раза, и рисунок пропорционально
+     растянется.
+
+  6. *Новые графики не удаляют уже нарисованное.* Этот, в чем-то
+     неожиданный, подход позволяет создавать огромное количество
+     "комбинированных" графиков. Например, поверхность с наложенными
+     линиями уровня строится двумя последовательными вызовами функций
+     рисования поверхности и линий уровня (в любом порядке). И
+     совершенно не надо писать специальную функцию (как в Matlab и
+     некоторых других программах) для рисования этого графика. Примеров
+     таких графиков можно привести множество (см. раздел *note Hints::
+     и сайт программы `http://mathgl.sf.net/index.html').
+
+   Кроме основных концепций я хотел бы остановиться на нескольких, как
+оказалось, нетривиальных моментах - способе указания положения графика,
+осей координат и строковых параметров линий, поверхностей, текста.
+
+* Menu:
+
+* Coordinate axes::
+* Line styles::
+* Color scheme::
+* Font styles::
+* Textual formulas::
+
+
+File: mathgl_ru.info,  Node: Coordinate axes,  Next: Line styles,  Up: General concepts
+
+1.4.1 Оси координат
+-------------------------------
+
+Представление системы координат в MathGL состоит из двух частей.
+Вначале координаты нормируются в интервал MINxMAX (*note Axis
+settings::). Если флаг CUT установлен, то точки вне интервала
+отбрасываются, в противном случае, они проецируются на ограничивающий
+параллелепипед (*note Cutting::). Кроме того, отбрасываются точки
+внутри границ, определенных переменными CUTMINxCUTMAX и точки, для
+которых значение функции `CutOff'() не равно нулю. После этого формулы
+перехода в криволинейную систему координат `SetFunc()'применяются к
+каждой точке. Наконец, точка данных отображается с помощью одной из
+графических функций.
+
+   Величины MAX, MIN можно изменять вручную. Однако, после этого
+необходимо вызвать функцию `RecalcBorder()' для настройки графика.
+Более удобный и безопасный путь состоит в вызове функций `Axis(),
+SetRanges()' и др. В последнем случае функция `RecalcBorder()'
+вызывается автоматически. Размеры осей можно задавать и автоматически
+по минимальному и максимальному значениям массива данных. Для этого
+предназначены функции `XRange(), YRange(), ZRange()'. Второй не
+обязательный аргумент указывает, заменять ли новые значения диапазона
+изменения оси координат (по умолчанию) или только расширить уже
+существующий диапазон.
+
+   Точка пересечения осей координат задается переменной ORG и действует
+на последующие вызовы функций рисования осей координат и сетки. По
+умолчанию, если точка пересечения осей координат попадает вне диапазона
+осей координат, то она проецируется на границу области. Изменить такое
+поведение можно, задав AUTOORG=`false'. В случае, если одно из значений
+ORG равно NAN, то соответствующее значение будет выбрано автоматически.
+
+   Кроме привычных осей _x, y, z_ есть еще одна ось - цветовая шкала -
+ось _c_. Она используется при окрашивании поверхностей и задает границы
+изменения функции при окрашивании. При вызове `Axis()' ее границы
+автоматически устанавливаются равными Min.z и Max.z. Возможно и ручное
+изменение границ цветового интервала посредством вызова функции
+`CAxis()' или изменение границ по заданному массиву `CRange()'.
+Используйте `Colorbar()' для отображения цветовой шкалы.
+
+   Вид меток по осям определяется функцией `SetTicks()' (*note Axis
+settings::). Она имеет 3 аргумента: первый D задает шаг меток (если
+положительны) или их число (если отрицательны) или логарифмические
+метки (если равны нулю); второ NS задает число "подметок"; последний
+определяет начальную точку для меток (по умолчанию это точка
+пересечения осей). Функция SETTUNETICKS включает/выключает выделение
+общего множителя (большого или малого факторов в диапазоне) для меток
+осей координат. Наконец, если стандартный вид меток не устраивает
+пользователя, то их шаблон можно задать явно (можно использовать и ТеХ
+символы), воспользовавшись функциями  `SetXTT(), SetYTT(). SetZTT().
+SetCTT()'. Кроме того, в качестве меток можно вывести произвольный
+текст использовав функцию `SetTicksVal()'.
+
+
+File: mathgl_ru.info,  Node: Line styles,  Next: Color scheme,  Prev: Coordinate axes,  Up: General concepts
+
+1.4.2 Стиль линий
+---------------------------
+
+Стиль линии задается строкой, которая может содержать символ цвета
+(`wkrgbcymhRGBCYMHWlenupqLENUPQ'), тип пунктира (`-|;:ji' или пробел),
+ширину линии (`0123456789') и тип маркера (`o+xsd.^v' и модификатор
+`#'). Если пропущен цвет или тип пунктира, то используется значение по
+умолчанию с последним указанным цветом или значение из палитры (для
+*note 1D plotting::).  По умолчанию палитры содержит следующие цвета:
+темно серый `H', синий `b', зеленый `g', красный `r', голубой `c',
+пурпурный `m', yellow `y', серый `h', сине-зеленый `l', небесно-синий
+`n', оранжевый `q', желто-зеленый `e', сине-фиолетовый `u', фиолетовый
+`p'.
+
+   Символы цвета те же, что и в классе mglColor (*note mglColor
+class::): `k' - черный, `r' - красный, `R' - темно красный, `g' -
+зеленый, `G' - темно зеленый, `b' - синий, `B' - темно синий, `c' -
+голубой, `C' - темно голубой, `m' - пурпурный, `M' - темно пурпурный,
+`y' - желтый, `Y' - темно желтый (золотой), `h' - серый, `H' - темно
+серый, `w' - белый, `W' - светло серый, `l' - сине-зеленый, `L' - темно
+сине-зеленый, `e' - желто-зеленый, `E' - темно желто-зеленый, `n' -
+небесно-синий, `N' - темно небесно-синий, `u' - сине-фиолетовый, `U' -
+темно сине-фиолетовый, `p' - фиолетовый, `P' - темно фиолетовый, `q' -
+оранжевый, `Q' - темно оранжевый (коричневый).
+
+   Тип пунктира: пробел - нет линии (для рисования только маркеров),
+`-' - сплошная линия (################), `|' - длинный пунктир
+(########________), `;' - пунктир (####____####____), `=' - короткий
+пунктир (##__##__##__##__), `:' - точки (#___#___#___#___), `j' -
+пунктир с точками  (#######____#____), `i' - мелкий пунктир с точками
+(###__#__###__#__).
+
+   Типы маркеров: `o' - окружность, `+' - крест, `x' - косой крест, `s'
+- квадрат, `d' - ромб, `.' - точка, `^' - треугольник вверх, `v' -
+треугольник вниз, `<' - треугольник влево, `>' - треугольник вправо,
+`#*' - знак Y, `#+' - крест в квадрате, `#x' - косой крест в квадрате,
+`#.' - точка в окружности. Если в строке присутствует символ `#', то
+используются символы с заполнением.
+
+ [image src="../png/sample5.png" ]
+
+Стили линий и маркеров.
+
+   На конце и в начале линии можно выводить специальный символ
+(стрелку), если в строке указать один из символов: `A' - стрелка
+наружу, `V' - стрелка внутрь, `I' - поперечная черта, `K' - стрелка с
+чертой, `T' - треугольник, `S' - квадрат, `D' - ромб, `O' - круг, `_' -
+нет стрелки (по умолчанию). При этом действует следующее правило:
+первый символ определяет стрелку на конце линии, второй символ -
+стрелку в начале линии. Например, `r-A' - красная сплошная линия со
+стрелкой на конце, `b|AI' - синий пунктир со стрелкой на конце и чертой
+вначале, `_O' - линия с текущим стилем и кружком вначале. Эти стили
+действуют и при построении графиков (например, *note 1D plotting::).
+
+ [image src="../png/sampled.png" ]
+
+Стили стрелок.
+
+
+File: mathgl_ru.info,  Node: Color scheme,  Next: Font styles,  Prev: Line styles,  Up: General concepts
+
+1.4.3 Цветовая схема
+---------------------------------
+
+Цветовая схема используется для определения цвета поверхностей, линий
+уровня и пр. Цветовая схема задается строкой _s_, которая содержит
+символы цвета (*note Line styles::) или символы `d#:|'. Символ `d'
+указывает на определение цвета в зависимости от положения точки в
+пространстве, а не по амплитуде данных. Символ `#' переключает
+рисование поверхности на сетчатое (для трехмерных поверхностей) или
+включает рисование сетки на поверхности. Символ `|' отключает
+интерполяцию цвета в цветовой схеме. Это может быть полезно для
+"резких" цветов, например, при рисовании матриц. Если в строке
+встречается символ `:', то он принудительно заканчивает разбор строки
+для стиля поверхности. После этого символа могут идти описание стиля
+текста или оси вращения кривой/линий уровня. Цветовая схема может
+содержать до 32 значений цвета.
+
+   В цветовой схеме можно использовать тональные ("подсвеченные") цвета
+(_не в стиле линий!_). Тональный цвет задается двумя символами: первый
+- обычный цвет, второй - его яркость цифрой. Цифра может быть в
+диапазоне `1'...`9'. При этом `5' соответствует нормальному цвету, `1'
+- очень темная версия цвета (почти черный), `9' - очень светлая версия
+цвета (почти белый). Например цветовая схема может быть `b2b7wr7r2'.
+
+ [image src="../png/colors.png" ]
+
+Цвета и их идентификаторы.
+
+   При определении цвета по _амплитуде_ (наиболее часто используется)
+окончательный цвет определяется путем линейной интерполяции массива
+цветов. Массив цветов формируется из цветов, указанных в строке
+спецификации. Аргумент - амплитуда, нормированная между CMIN - CMAX
+(*note Axis settings::). Например, строка из 4 символов `bcyr'
+соответствует изменению цвета от синего (минимальное значение) через
+голубой и желтый (промежуточные значения) к красному (максимальное
+значение). Строка `kw' соответствует изменению цвета от черного
+(минимальное значение) к белому (максимальное значение). Строка из
+одного символа (например, `g') соответствует однотонному цвету (в
+данному случае зеленому).
+
+   Есть несколько полезных цветовых схем. Строка `kw' дает обычную
+серую (черно-белую) схему, когда большие значения светлее. Строка `wk'
+представляет обратную серую схему, когда большие значения темнее.
+Строки `kRryw', `kGgw', `kBbcw' представляют собой хорошо известные
+схемы _hot_, _summer_ и _winter_. Строки `BbwrR' и `bBkRr' позволяют
+рисовать двухцветные фигуры на белом или черном фоне, когда
+отрицательные значения показаны синим цветом, а положительные -
+красным. Строка `BbcyrR' дает цветовую схему, близкую к хорошо
+известной схеме _jet_.
+
+ [image src="../png/color_schemes.png" ]
+
+Наиболее популярные цветовые схемы.
+
+   При определении цвета по _положению точки в пространстве_
+окончательный цвет определяется по формуле c=x*c[1] + y*c[2] + z*c[3].
+Здесь c[1], c[2], c[3] - первые три цвета в цветовом массиве; x, y, z -
+координаты точки, нормированные на MINxMAX. Такой тип определения цвета
+полезен, например, при построении поверхностей уровня, когда цвет дает
+представление о положении точки в пространстве.
+
+
+File: mathgl_ru.info,  Node: Font styles,  Next: Textual formulas,  Prev: Color scheme,  Up: General concepts
+
+1.4.4 Стиль текста
+-----------------------------
+
+Стиль текста задается строкой, которая может содержать несколько
+символов: тип шрифта (`ribwou') и/или выравнивания (`LRC'), а также
+цвет текста `wkrgbcymhRGBCYMHW' (*note Line styles::) после символа
+`:'. Например, `biC:b' соответствует жирному курсиву с выравниванием по
+центру синего цвета.
+
+   Начертания шрифта: `r' - прямой шрифт, `i' - курсив, `b' - жирный.
+По умолчанию используется прямой шрифт. Типы выравнивания текста: `L' -
+по левому краю (по умолчанию), `C' - по центру, `R' - по правому краю.
+Дополнительные эффекты шрифта: `w' - контурный, `o' - надчеркнутый, `u'
+- подчеркнутый.
+
+   Синтаксический разбор LaTeX-их команд по умолчанию включен. Это
+команды смены стиля текста (например, \b для жирного текста): \a или
+\overline - надчеркивание, \b или \textbf - жирный, \i или \textit -
+курсив, \r или \textrm - прямой (отменяет стили жирного и курсива), \u
+или \underline - подчеркнутый, \w или \wire - контурный, \big -
+большего размера, @ - меньшего размера. Нижний и верхний индексы
+задаются символами `_' и `^'. При этом изменение стиля применяется
+только к следующему символу или к символам в фигурных скобках {},
+которые понимаются как единый блок. Например, сравните строки `sin
+(x^{2^3})' и `sin (x^2^3)'. Можно также менять цвет текста внутри
+строки с помощью команд #? или \color?, где `?' - символ цвета (*note
+Line styles::). Например, слова `Blue' и `red' будут окрашены в
+соответствующий цвет в строке `#b{Blue} and \colorr{red} text'.
+Большинство функций понимает символ новой строки `\n' и позволяет
+выводить много строчный текст. Наконец, можно использовать символы с
+произвольным UTF кодом с помощью команды `\utf0x????'. Например,
+`\utf0x3b1' даст символ \alpha.
+
+   Распознаются также большинство символов TeX и AMSTeX, команды смены
+стиля текста (\textrm, \textbf, \textit, \textsc, \overline,
+\underline), акценты (\hat, \tilde, \dot, \ddot, \acute, \check,
+\grave, \bar, \breve) и корни (\sqrt, \sqrt3, \sqrt4). Полный список
+содержит около 2000 символов. Отмечу, что первый пробел (пробел,
+табуляция и пр.) после команды игнорируется, а все остальные пробелы
+печатаются обычным образом. Например, следующие строки дают одинаковый
+результат \tilde a: `\tilde{a}'; `\tilde a'; `\tilde{}a'.
+
+   В частности, распознаются греческие буквы: \alpha - \alpha, \beta -
+\beta, \gamma - \gamma, \delta - \delta, \epsilon - \epsilon, \eta -
+\eta, \iota - \iota, \chi - \chi, \kappa - \kappa, \lambda - \lambda,
+\mu - \mu, \nu - \nu, o - \o, \omega - \omega, \phi - \phi, \pi - \pi,
+\psi - \psi, \rho - \rho, \sigma - \sigma, \theta - \theta, \tau -
+\tau, \upsilon - \upsilon, \xi - \xi, \zeta - \zeta, \varsigma -
+\varsigma, \varepsilon - \varepsilon, \vartheta - \vartheta, \varphi -
+\varphi, A - \Alpha, B - \Beta, \Gamma - \Gamma, \Delta - \Delta, E -
+\Epsilon, H - \Eta, I - \Iota, C - \Chi, K - \Kappa, \Lambda - \Lambda,
+M - \Mu, N - \Nu, O - \O, \Omega - \Omega, \Phi - \Phi, \Pi - \Pi, \Psi
+- \Psi, R - \Rho, \Sigma - \Sigma, \Theta - \Theta, T - \Tau, \Upsilon
+- \Upsilon, \Xi - \Xi, Z - \Zeta.
+
+   Еще примеры наиболее общеупотребительных TeX-их символов: \angle -
+\angle, \aleph - \aleph, \cdot - \cdot, \clubsuit - \clubsuit, \cup -
+\cup, \cap - \cap, \diamondsuit - \diamondsuit, \diamond - \diamond,
+\div - \div, \downarrow - \downarrow, \dag - \dag, \ddag - \ddag,
+\equiv - \equiv, \exists - \exists, \frown - \frown, \flat - \flat, \ge
+- \ge, \geq - \geq, \gets - \gets, \heartsuit - \heartsuit, \infty -
+\infty, \in - \in, \int - \int, \Im - \Im, \langle - \langle, \le -
+\le, \leq - \leq, \leftarrow - \leftarrow, \mp - \mp, \nabla - \nabla,
+\ne - \ne, \neq - \neq, \natural - \natural, \oint - \oint, \odot -
+\odot, \oplus - \oplus, \partial - \partial, \parallel - \parallel,
+\perp - \perp, \pm - \pm, \propto - \propto, \prod - \prod, \Re - \Re,
+\rightarrow - \rightarrow, \rangle - \rangle, \spadesuit - \spadesuit,
+\sim - \sim, \smile - \smile, \subset - \subset, \supset - \supset,
+\surd - \sqrt or \surd, \S - \S, \sharp - \sharp, \sum - \sum, \times -
+\times, \to - \to, \uparrow - \uparrow, \wp - \wp and so on.
+
+   Размер текста может быть задан явно (если SIZE>0) или относительно
+базового размера шрифта для рисунка |SIZE|*FONTSIZE при SIZE<0.
+Значение SIZE=0 указывает, что соответствующая строка выводиться не
+будет. Базовый размер шрифта измеряется во внутренних единицах.
+Специальные функции `SetFontSizePT(), SetFontSizeCM(), SetFontSizeIN()'
+позволяют задавать его в более "привычных" единицах.
+
+
+File: mathgl_ru.info,  Node: Textual formulas,  Prev: Font styles,  Up: General concepts
+
+1.4.5 Текстовые формулы
+---------------------------------------
+
+MathGL имеет быстрый парсер текстовых формул  (*note mglFormula class::)
+, понимающий большое число функций и операций. Базовые операции: `+' -
+сложение, `-' - вычитание, `*' - умножение, `/' - деление, `^' -
+возведение в целосичленную степень. Также есть логические операции: `<'
+- истина если if x<y, `>' - истина если x>y, `=' - истина если x=y, `&'
+- истина если x и y оба не равны нулю, `|' - истина если x или y не
+нуль. Логические операции имеют наинизший приоритет и возвращают 1 если
+истина или 0 если ложно.
+
+   Базовые функции: `sqrt(x)' - квадратный корень из X, `pow(x,y)' - X
+в степени Y, `ln(x)' - натуральный логарифм X, `lg(x)' - десятичный
+логарифм X, `log(a,x)' - логарифм по основанию A от X, `abs(x)' -
+модуль X, `sign(x)' - знак X, `mod(x,y)' - остаток от деления x на y,
+`step(x)' - ступенчатая функция, `int(x)' - целая часть X, `rnd' -
+случайное число, `pi' - число \pi=3.1415926...
+
+   Тригонометрические функции: `sin(x)', `cos(x)', `tan(x)' (или
+`tg(x)'). Обратные тригонометрические функции: `asin(x)', `acos(x)',
+`atan(x)'. Гиперболические функции: `sinh(x)' (или `sh(x)'), `cosh(x)'
+(или `ch(x)'), `tanh(x)' (или `th(x)'). Обратные гиперболические
+функции: `asinh(x)', `acosh(x)', `atanh(x)'.
+
+   Специальные функции: `gamma(x)' - гамма функция \Gamma(x) =
+\int_0^\infty dt t^{x-1} \exp(-t) , `psi(x)' - дигамма функция \psi(x)
+= \Gamma</samp>&rsquo;(x)/\Gamma(x) для x!=0, `ai(x)' - Эйри функция
+Ai(x), `bi(x)' - Эйри функция Bi(x), `cl(x)' - функция Клаузена,
+`li2(x)' (или `dilog(x)') - дилогарифм Li_2(x) = - \Re \int_0^x ds
+\log(1-s)/s, `sinc(x)' - функция sinc(x) = \sin(\pi x) / (\pi x) для
+любых x, `zeta(x)' - зета функция Римана \zeta(s) = \sum_{k=1}^\infty
+k^{-s} для s!=1, `eta(x)' - эта функция \eta(s) = (1-2^{1-s}) \zeta(s)
+для произвольного s, `lp(l,x)' - полином Лежандра P_l(x), (|x|<=1,
+l>=0), `w0(x)', `w1(x)' - функции Ламберта W. Функции W(x) определены
+как решение уравнения W \exp(W) = x.
+
+   Экспоненциальные интегралы: `ci(x)' - cos-интеграл Ci(x) = \int_0^x
+dt \cos(t)/t, `si(x)' - sin-интеграл Si(x) = \int_0^x dt \sin(t)/t,
+`erf(x)' - функция ошибки erf(x) = (2/\sqrt(\pi)) \int_0^x dt
+\exp(-t^2), `ei(x)' - интеграл Ei(x) := - PV(\int_{-x}^\infty dt
+\exp(-t)/t) (где PV обозначает главное значение), `e1(x)' - интеграл
+E_1(x) := Re \int_1^\infty dt \exp(-xt)/t , `e2(x)' - интеграл E_2(x)
+:= Re \int_1^\infty dt \exp(-xt)/t^2, `ei3(x)' - интеграл Ei_3(x) =
+\int_0^x dt \exp(-t^3) для x>=0.
+
+   Функции Бесселя: `j(nu,x)' - функция Бесселя первого рода, `y(nu,x)'
+- функция Бесселя второго рода, `i(nu,x)' - модифицированная функция
+Бесселя первого рода, `k(nu,x)' - модифицированная функция Бесселя
+второго рода.
+
+   Эллиптические интегралы: `ee(k)' - полный эллиптический интеграл
+E(k) = E(\pi/2, k), `ek(k)' - полный эллиптический интеграл K(k) =
+F(\pi/2, k), `e(phi,k)' - эллиптический интеграл E(\phi,k) =
+\int_0^\phi dt \sqrt((1 - k^2 \sin^2(t))), `f(phi,k)' - эллиптический
+интеграл F(\phi,k) = \int_0^\phi dt 1/\sqrt((1 - k^2 \sin^2(t))).
+
+   Функции Якоби: `sn(u,m)', `cn(u,m)', `dn(u,m)', `sc(u,m)',
+`sd(u,m)', `ns(u,m)', `cs(u,m)', `cd(u,m)', `nc(u,m)', `ds(u,m)',
+`dc(u,m)', `nd(u,m)'.
+
+   Некоторые из функций могут быть недоступны если флаг NO_GSL был
+определен при компиляции библиотеки MathGL.
+
+   При разборе формул нет различия между верхним и нижним регистром.
+Если аргумент лежит вне области определения функции, то возвращается
+NaN.
+
+
+File: mathgl_ru.info,  Node: FAQ,  Next: Interfaces,  Prev: General concepts,  Up: Overview
+
+1.5 FAQ
+=======
+
+*График не рисуется?!*
+     Проверьте, что точки графика находятся внутри ограничивающего
+     параллелепипеда, при необходимости увеличьте его с помощью функции
+     `Axis()'. Проверьте, что размерность массива правильная для
+     выбранного типа графика. Убедитесь, что функция  `Finish()' была
+     вызвана после построения графика (или график был сохранен в файл).
+     Иногда отражение света от плоских поверхностей (типа, `Dens()')
+     может выглядеть как отсутствие графика.
+
+*Не нашел нужного графика?!*
+     Многие "новые" графики можно строить, используя уже существующие
+     функции. Например, поверхность вращения кривой относительно оси
+     можно построить, используя специальную функцию `Torus()', а можно
+     построить как параметрически заданную поверхность `Surf()'. См.
+     также *note Hints:: и *note Examples:: MathGL. Если же нужного
+     типа графика все равно нет, то пишите мне e-mail
+     <mathgl.abalakin at gmail.com> и в следующей версии этот график
+     появится.
+
+*Требуется ли знание сторонних библиотек (например, OpenGL) для использования библиотеки MathGL?*
+     Нет. Библиотека MathGL самодостаточна и не требует знания
+     сторонних библиотек.
+
+*На каком языке написана библиотека? Для каких языков у нее есть интерфейсы?*
+     Ядро библиотеки написано на С++. Кроме него, есть интерфейсы для
+     чистого С, фортрана, паскаля, форта и собственный командный язык
+     MGL. Также есть поддержка большого числа интерпретируемых языков
+     (Python, Java,  ALLEGROCL, CHICKEN, Lisp, CFFI, C#, Guile, Lua,
+     Modula 3, Mzscheme, Ocaml, Octave, Perl, PHP, Pike, R, Ruby, Tcl).
+     Эти интерфейсы написаны с помощью SWIG (и функции чистого С и
+     классы). Однако на данный момент только интерфейсы для Python и
+     Octave включены в скрипты сборки. Причина в том, что я не знаю
+     других языков, чтобы проверить качество интерфейса :(. Замечу, что
+     большинство прочих языков могут использовать С функции напрямую.
+
+*Как мне использовать MathGL с Фортраном?*
+     Библиотеку MathGL можно использовать как есть с компилятором
+     `gfortran' поскольку он использует по умолчанию AT&T нотацию для
+     внешних функций. Для других компиляторов (например, Visual
+     Fortran) необходимо включить использование AT&T нотации вручную.
+     AT&T нотация требует, чтобы имя функции завершалось символом `_',
+     аргументы функции передавались по указателю и длины строк
+     передавались в конце списка аргументов. Например:
+
+     _C функция_ - `void mgl_fplot(HMGL graph, const char *fy, const
+     char *stl, int n);'
+
+     _AT&T функция_ - `void mgl_fplot_(uintptr_t *graph, const char
+     *fy, const char *stl, int *n, int ly, int ls);'
+
+*У меня есть класс Foo и в нем метод рисования Foo::draw(mglGraph *gr). Как мне нарисовать что-то в окне FLTK, GLUT или Qt?*
+     Функции-члены класса в С++ имеют "скрытый" параметр - указатель на
+     экземпляр класса и их прямое использование невозможно. Решением
+     будет определение интерфейсной функции:
+          int foo_draw(mglGraph *gr, void *par)
+          {   ((Foo *)foo)->draw(gr);    }
+     и подстановка именно ее в вызов функции `Window()':
+          gr->Window(argc,argv,foo_draw,"Title",this);
+
+     Можно также наследовать Ваш класс от класса `mglDraw' и
+     использовать функцию типа `gr->Window(argc, argv, foo, "Title");'.
+
+*Как мне вывести текст на русском/испанском/арабском/японском и т.д.?*
+     Стандартный путь состоит в использовании кодировки UTF-8 для
+     вывода текста. Кроме того, все функции вывода текста имеют
+     интерфейс для 8-битных (char *) строк. Однако в последнем случае
+     Вам может потребоваться установить используемую в исходном тексте
+     локаль. Например, для русского языка в кодировке CP1251 можно
+     использовать `setlocale(LC_CTYPE, "ru_RU.cp1251");' (под MS
+     Windows имена локали другие -  `setlocale(LC_CTYPE,
+     "russian_russia.1251")'). Настоятельно не рекомендую использовать
+     константу `LC_ALL', поскольку при этом меняется и формат чисел (в
+     частности, десятичная точка), что может, например, вызвать
+     сложности (неудобство) при написании формул и чтении текстовых
+     файлов. Например, программа ожидает `,' в качестве разделителя
+     целой и дробной части, а пользователь вводит `.'.
+
+*Как мне вырезать (исключить из рисования) точку или область на графике?*
+     Есть три основных способа. Во-первых, можно вырезать точку, задав
+     одну из ее координат равной `NAN'. Во-вторых, можно
+     воспользоваться функцией `SetCutBox()' или `CutOff()' для удаления
+     точек из некоторой области (*note Cutting::). Наконец, можно
+     сделать эти точки прозрачными (невидимыми) с помощью функций
+     `SurfA()', `Surf3A()' (*note Dual plotting::). В последнем случае
+     обеспечивается еще и плавность включения прозрачности.
+
+*Я использую VisualStudio, CBuilder или другой компилятор (не MinGW/gcc). Как мне подключить библиотеку MathGL?*
+     Начиная с версии 1.10, можно использовать заголовочный файл
+     `#include <mgl/mgl_w.h>', содержащий C++ классы только с `inline'
+     функциями. Такие классы должны быть совместимы с любым
+     компилятором. Отмечу, что эти "интерфейсные" классы *не
+     совместимы* с классами в обычных заголовочных файлах и
+     использоваться должны только одни из них! Я рекомендую
+     использовать обычные заголовочные классы для компиляторов GNU
+     (например для MinGW).
+
+*Как мне собрать MathGL под Windows?*
+     Простейший путь - использование комбинации CMake и MinGW. Также
+     Вам может потребоваться дополнительные библиотеки, такие как GSL,
+     PNG, JPEG и пр. Все они могут быть найдены на
+     `http://gnuwin32.sourceforge.net/packages.html'. После установки
+     всех компонент, просто запустите конфигуратор CMake и соберите
+     MathGL командой make.
+
+*Как создать окно FLTK/GLUT/Qt с текущими результатами параллельно с выполнением основных вычислений?*
+     Следует создать отдельный поток для обработки сообщений в окно.
+     Кросс-платформенный путь - использование библиотеки `pthread'.
+     Обновление данных в окне можно выполнить вызовом функции
+     `mglGraphFLTK::Update()'. Пример код имеет вид: //-----------------------------------------------------------------------------
+     #include <mgl/mgl_fltk.h>
+     #include <pthread.h>
+     #include <unistd.h>
+
+     mglPoint pnt;  // some global variable for changable data
+     //-----------------------------------------------------------------------------
+     int sample(mglGraph *gr, void *)
+     {
+       gr->Box();  gr->Line(mglPoint(),pnt,"Ar2"); // just draw a vector
+       return 0;
+     }
+     //-----------------------------------------------------------------------------
+     void *mgl_fltk_tmp(void *)      {       mglFlRun();     return 0;       }
+     int main (int argc, char ** argv)
+     {
+       mglGraphFLTK gr;
+       gr.Window(argc,argv,sample,"test");  // create window
+       static pthread_t tmp;
+       pthread_create(&tmp, 0, mgl_fltk_tmp, 0);
+       pthread_detach(tmp);    // run window handling in the separate thread
+       for(int i=0;i<10;i++)   // do calculation
+       {
+         sleep(1);             // which can be very long
+         pnt = mglPoint(2*mgl_rnd()-1,2*mgl_rnd()-1);
+         gr.Update();          // update window
+       }
+       return 0;   // finish calculations and close the window
+     }
+     //-----------------------------------------------------------------------------
+
+*Сколько человек участвовало в создании библиотеки?*
+     Большую часть библиотеки написал один человек. Это результат
+     примерно года работы на написание ядра библиотеки и базовых
+     функций (в основном вечерами и по выходным). Процесс
+     усовершенствования продолжается и теперь :). Скрипты сборки в
+     основном написаны Д.Кулагиным, а экспорт в IDTF написан
+     М.Видассовым.
+
+*Как мне показать растровую картинку на рисунке?*
+     Можно импортировать ее в экземпляр `mglData' и построить с помощью
+     функции `Dens()'. Например, для черно-белого рисунка можно
+     использовать код: `mglData bmp; bmp.Import("fname.png","wk");
+     gr->Dens(bmp,"wk");'.
+
+*Как использовать MathGL в Qt, FLTK, wxWidgets ...?*
+     Есть специальные классы (виджеты) для этих библиотек: QMathGL для
+     Qt, Fl_MathGL для FLTK и т.д. Если Вы не нашли подходящий класс,
+     то можете создать свой собственный виджет, рисующий растровое
+     изображение из mglGraphAB::GetBits().
+
+*Как мне создать U3D файл (3D in PDF)?*
+     Процедура состоит из двух шагов: создания файла IDTF и его
+     конвертация в U3D. Можно использовать U3D tools
+     (http://sourceforge.net/project/showfiles.php?group_id=152187&package_id=300628)
+     для конвертации IDTF в U3D. Ему требуется библиотека libharu
+     (http://libharu.org) 2.1.0 или более поздняя. Для установки
+     используйте обычную процедуру `./bootstrap, ./configure, make,
+     sudo make install'. В результате появится программа IDTFConverter
+     для конвертации файлов *.idtf в бинарные файлы *.u3d. Последние
+     можно включить в PDF.
+
+*Как сменить шрифт (семейство шрифтов)?*
+     Во-первых, надо загрузить файлы отсюда
+     (http://mathgl.sourceforge.net/download.html) или отсюда
+     (http://sourceforge.net/project/showfiles.php?group_id=152187&package_id=267177).
+     Далее, в экземпляре mglGraph загружаем шрифты: `gr->SetFont(new
+     mglFont(fontname,path));'. Здесь FONTNAME - базовое имя шрифта,
+     например `STIX', и PATH - путь к папке с файлами шрифтов. Вызовите
+     `gr->SetFont(NULL);' для использования шрифта по умолчанию.
+
+*Как нарисовать метки оси снаружи от графика?*
+     Просто используйте отрицательные значения длины меток, например
+     `gr->SetTickLen(-0.1);'.
+
+
+
+File: mathgl_ru.info,  Node: Interfaces,  Next: Thanks,  Prev: FAQ,  Up: Overview
+
+1.6 Интерфейсы
+========================
+
+Библиотека MathGL имеет интерфейсы к целому ряду языков
+программирования. Большинство из них базируется на С интерфейсе и
+построены с помощью инструментария SWIG. Сюда входят Python, Java,
+Octave, Lisp, C#, Guile, Lua, Modula 3, Ocaml, Perl, PHP, Pike, R,
+Ruby, Tcl. Кроме того, есть отдельный интерфейс к Фортрану, имеющий
+похожий набор функций, но со слегка различным типом аргументов
+(использованы целые вместо указателей). Функции С и Фортран интерфейса
+помечены [функции С].  Некоторое из языков представленных выше
+поддерживают объектное программирование (классы). Для них написан
+собственная оболочка и соответствующие функции/методы помечены
+(Python). Функции и методы доступные в С++ помечены (С++).  Наконец,
+специальный командный язык MGL был написан для быстрого доступа к
+функциям C++ со всеми их возможностями. Скрипты MGL могут быть
+выполнены как из внешних программ (UDAV, mgl2png, mgl2eps и т.д.) так и
+из кода на C++/C/Python и пр. (*note mglParse class::). Подробно эти
+команды описаны в *note MGL interface::.
+
+* Menu:
+
+* C interface::
+* Python interface::
+
+
+File: mathgl_ru.info,  Node: C interface,  Next: Python interface,  Up: Interfaces
+
+1.6.1 C интерфейс
+--------------------------
+
+C интерфейс является базовым для большинства других интерфейсов. Он
+содержит функции на чистом C для большинства методов классов MathGL. В
+отличие от членов-функций C++ классов, C функции в качестве аргументов
+должны явно иметь переменные типа HMGL (для графики) и/или HMDT (для
+массивов данных) для указания объекта рисования или данных. Таким
+образом, первым вызовом пользователя должно быть создание этих объектов
+с помощью функций `mgl_create_*()', а последним - их удаление с помощью
+функций `mgl_delete_*()'.
+
+   Все функции описанны в заголовочном файле `#include <mgl/mgl_c.h>' и
+используют переменные для идентификаторов объектов рисования/данных
+следующих типов:
+   * `HMGL' -- Указатель на класс `mglGraph' (*note MathGL core::).
+
+   * `HMDT' -- Указатель на класс `mglData' (*note mglData class::).
+
+   * `HMPR' -- Указатель на класс `mglParse' (*note mglParse class::)..
+   Эти переменные содержат идентификаторы объектов графики или данных.
+
+   Фортрановские функции имеют те же имена, что и функции C. Однако,
+есть различие: переменные типов `HMGL, HMDT' должны быть объявлены как
+целые достаточной разрядности (integer*4 на 32-битных системах или
+integer*8 на 64-битных системах). Все С функции являются процедурами
+для Фортрана (должны вызываться с помощью оператора call). Исключение
+составляют функции, возвращающие переменные типа `HMGL' или `HMDT'.
+Последние должны быть объявлены целыми  для использования в
+фортрановском коде. Также помните, что строки в фортране обозначаются
+одинарной кавычкой `</samp>&rsquo;', а не двойной `"' как в С/С++.
+
+   *Создание и удаление графического объекта*
+
+   * Функции для рисования в памяти:
+
+      -- C function: `HMGL' mgl_create_graph_gl ()
+          Создает экземпляр класса mglGraphGL.
+
+      -- C function: `HMGL' mgl_create_graph_zb (`int' width, `int'
+               height)
+          Создает экземпляр класса mglGraphZB с указанными размерами.
+
+      -- C function: `HMGL' mgl_create_graph_ps (`int' width, `int'
+               height)
+          Создает экземпляр класса mglGraphPS с указанными размерами.
+
+      -- C function: `HMGL' mgl_create_graph_idtf ()
+          Создает экземпляр класса mglGraphIDTF.
+
+   * Функции для рисования в окне:
+
+      -- C function: `HMGL' mgl_create_graph_glut (`int (*'draw`)(HMGL
+               gr, void *p)', `const char *'title, `void *'par)
+          Создает экземпляр класса mglGraphGLUT  и связанное с ним
+          окно. Одновременно может быть открыто только одно окно.
+          Описание аргументов функции см. в *note mglGraphAB class::.
+
+      -- C function: `HMGL' mgl_create_graph_fltk (`int (*'draw`)(HMGL
+               gr, void *p)', `const char *'title, `void *'par)
+          Создает экземпляр класса mglGraphFLTK и связанное с ним окно.
+          Одновременно может быть открыто несколько окно. Однако Вы
+          должны вызвать функцию `mgl_fltk_run()' для начала обработки
+          сообщений окну. Описание аргументов функции см. в *note
+          mglGraphAB class::. Замечу, что параметр DRAW может быть
+          равным `NULL' для отображения текущей статической картинки
+          (анимация и слайды не доступны).
+
+      -- C function: `HMGL' mgl_create_graph_qt (`int (*'draw`)(HMGL
+               gr, void *p)', `const char *'title, `void *'par)
+          Создает экземпляр класса mglGraphQT и связанное с ним окно.
+          Одновременно может быть открыто несколько окно. Однако Вы
+          должны вызвать функцию `mgl_qt_run()' для начала обработки
+          сообщений окну. Описание аргументов функции см. в *note
+          mglGraphAB class::. Замечу, что параметр DRAW может быть
+          равным `NULL' для отображения текущей статической картинки
+          (анимация и слайды не доступны).
+
+      -- C function: `void' mgl_fltk_run ()
+          Запускает цикл обработки сообщений FLTK. Обычно программа
+          завершает функцию main() вызовом `return mgl_fltk_run();'.
+
+      -- C function: `void' mgl_fltk_thread ()
+          Запускает цикл обработки сообщений FLTK. В отличие от
+          `mgl_fltk_run()' цикл запускается в отдельном потоке, так что
+          основная программа продолжает выполнение сразу.
+
+      -- C function: `void' mgl_qt_run ()
+          Запускает цикл обработки сообщений Qt. Обычно программа
+          завершает функцию main() вызовом `return mgl_qt_run();'.
+
+      -- C function: `void' mgl_qt_thread ()
+          Запускает цикл обработки сообщений Qt. В отличие от
+          `mgl_qt_run()' цикл запускается в отдельном потоке, так что
+          основная программа продолжает выполнение сразу.
+
+      -- C function: `void' mgl_update (`HMGL' graph)
+          Обновляет содержимое экрана.
+
+      -- C function: `void' mgl_set_show_mouse_pos (`HMGL' graph, `int'
+               enable)
+          Switch to show or not in the widget the last mouse click
+          position.
+
+      -- C function: `void' mgl_get_last_mouse_pos (`HMGL' graph,
+               `float *'x, `float *'y, `float *'z)
+          Last position of mouse click.
+
+      -- C function: `void' mgl_calc_xyz (`HMGL' graph, `int' xs, `int'
+               ys, `float *'x, `float *'y, `float *'z)
+          Calculate 3D coordinate {x,y,z} for screen point {xs,ys}. At
+          this moment it ignore perspective and transformation formulas
+          (curvilinear coordinates). The calculation are done for the
+          last used InPlot (*note Transformation matrix::).
+
+   * Functions for data creation:
+
+      -- C function: `HMDT' mgl_create_data ()
+          Create simple instance of class mglData.
+
+      -- C function: `HMDT' mgl_create_data_size (`int' nx, `int' ny,
+               `int' nz)
+          Create instance of class mglData with specified sizes.
+
+      -- C function: `HMDT' mgl_create_data_file (`const char *'fname)
+          Create instance of class mglData and fill it by data from
+          text file.
+
+   * Each created object *must* be deleted after usage by functions:
+
+      -- C function: `void' mgl_delete_graph (`HMGL' graph)
+          Delete the instance of class. Must be used after plotting for
+          every created graphical object.
+
+      -- C function: `void' mgl_delete_data (`HMDT' dat)
+          Delete the instance of class. Must be used after using for
+          every created data object.
+
+
+File: mathgl_ru.info,  Node: Python interface,  Prev: C interface,  Up: Interfaces
+
+1.6.2 Python интерфейс
+-------------------------------
+
+MathGL provide the interface to a set of languages via SWIG library.
+Some of these languages support classes. The typical example is Python
+- which is denoted in the chapter title.
+
+   To use Python classes just execute `import mathgl'. The simplest
+example will be:
+import mathgl
+a=mathgl.mglGraph()
+a.Box()
+a.WritePNG(</samp>&rsquo;test.png</samp>&rsquo;)
+ Alternatively you can import all classes from `mathgl' module and
+easily access MathGL classes:
+from mathgl import *
+a=mglGraph()
+a.Box()
+a.WritePNG(</samp>&rsquo;test.png</samp>&rsquo;)
+ It become useful if you will create many `mglData' object, for example.
+
+   There are 2 classes in Python interface:
+   * `mglGraph' - provide practically the same functionality as C++
+     class `mglGraph' (*note MathGL core::). But it is not abstract
+     class and it allows one to select at construction stage which
+     plotter (ZB or PS and so on) will be used.
+
+   * `mglData' - is absolutely the same class as C++ `mglData' (*note
+     mglData class::). But an additional feature to acess data values
+     is added. You can use construction like this: `dat[i]=sth;' or
+     `sth=dat[i]' at this flat representation of data is used (i.e., I
+     can be in range 0...nx*nx*nz-1. Also you can import NumPy arrays
+     as input arguments: `mgl_dat = mglData(numpy_dat);'.
+
+     To use Python classes just execute `import mathgl'. The simplest
+     example will be: import mathgl
+     a=mathgl.mglGraph()
+     a.Box()
+     a.WritePNG(</samp>&rsquo;test.png</samp>&rsquo;)
+      Alternatively you can import all classes from `mathgl' module and
+     easily access MathGL classes: from mathgl import *
+     a=mglGraph()
+     a.Box()
+     a.WritePNG(</samp>&rsquo;test.png</samp>&rsquo;)
+      It become useful if you will create many `mglData' object, for
+     example.
+
+     There are 2 classes in Python interface:
+        * `mglGraph' - provide practically the same functionality as
+          C++ class `mglGraph' (*note MathGL core::). But it is not
+          abstract class and it allows one to select at construction
+          stage which plotter (ZB or PS and so on) will be used.
+
+        * `mglData' - is absolutely the same class as C++ `mglData'
+          (*note mglData class::). But an additional feature to acess
+          data values is added. You can use construction like this:
+          `dat[i]=sth;' or `sth=dat[i]' at this flat representation of
+          data is used (i.e., I can be in range 0...nx*nx*nz-1.
+
+     There is main difference from C++ classes - Python class
+     `mglGraph' don</samp>&rsquo;t have variables (options). All
+     corresponding features are moved to methods.  The core of MathGL
+     Python class is *mglGraph* class. It contains a lot of plotting
+     functions for 1D, 2D and 3D plots. So most of sections is describe
+     its methods. Its constructor have following arguments:
+
+      -- Constructor on mglGraph (Python): `' mglGraph (`int' kind=`0',
+               `int' width=`600', `int' height=`400')
+          Create the instance of class mglGraph with specified sizes
+          WIDTH and HEIGHT. Parameter TYPE may have following values:
+          `0' - use `mglGraphZB' plotter (default), `1' - use
+          `mglGraphPS' plotter, `2' - use `mglGraphGL' plotter, `3' -
+          use `mglGraphIDTF' plotter.
+
+   There is main difference from C++ classes - Python class `mglGraph'
+don</samp>&rsquo;t have variables (options). All corresponding features
+are moved to methods. The core of MathGL Python class is *mglGraph*
+class. It contains a lot of plotting functions for 1D, 2D and 3D plots.
+So most of sections is describe its methods. Its constructor have
+following arguments:
+
+ -- Constructor on mglGraph (Python): `' mglGraph (`int' kind=`0',
+          `int' width=`600', `int' height=`400')
+     Create the instance of class mglGraph with specified sizes WIDTH
+     and HEIGHT. Parameter TYPE may have following values: `0' - use
+     `mglGraphZB' plotter (default), `1' - use `mglGraphPS' plotter,
+     `2' - use `mglGraphGL' plotter, `3' - use `mglGraphIDTF' plotter.
+
+
+File: mathgl_ru.info,  Node: Thanks,  Prev: Interfaces,  Up: Overview
+
+1.7 Благодарности
+==============================
+
+   * My special thanks to Marina Balakina for the patience during
+     library writing and for the help in documentation writing and
+     spelling.
+
+   * I</samp>&rsquo;m thankful to D. Kulagin and S.M. Plis for making
+     Debian packages.
+
+   * I</samp>&rsquo;m thankful to M. Vidassov for the help in handling
+     solid UTF-8 fonts.
+
+   * I</samp>&rsquo;m thankful to N. Troickiy and V. Lipatov for making
+     RPM packages.
+
+   * I</samp>&rsquo;m thankful to S. Skobelev, A. Korotkevich, V.
+     Onuchin, S.M. Plis, R. Kiselev, A. Ivanov, M. Vidiassov and V.
+     Lipatov for fruitful comments.
+
+
+File: mathgl_ru.info,  Node: Examples,  Next: MathGL core,  Prev: Overview,  Up: Top
+
+2 MathGL examples
+*****************
+
+This chapter contain information about basic and advanced MathGL, hints
+and samples for all types of graphics. I recommend you read first 2
+sections one after another and at least look on "Hints" section. Also I
+recommend you to look at *note General concepts:: and *note FAQ::.
+Sample code for some of these examples can be found in
+`http://mathgl.sf.net/pictures.html' and in *note Samples::.
+
+* Menu:
+
+* Basic usage::
+* Advanced usage::
+* Data handling::
+* Data plotting::
+* C/Fortran interface::
+* MathGL and PyQt::
+* Hints::
+
+
+File: mathgl_ru.info,  Node: Basic usage,  Next: Advanced usage,  Up: Examples
+
+2.1 Basic usage
+===============
+
+MathGL library can be used by several manners. Each has positive and
+negative sides:
+   * _The using of MathGL library features for creating graphical
+     window (requires FLTK or GLUT libraries)._
+
+     Positive side is the possibility to view the plot at once and to
+     modify it (rotate, zoom or switch on transparency or lighting) by
+     hand or by mouse. Negative sides are: the need  of X-terminal and
+     limitation consisting in working with the only one set of data at
+     a time.
+
+   * _Direct writing to file in bitmap or vector format without
+     creation of graphical window._
+
+     Positive aspects are: batch processing of similar data set (for
+     example, a set of resulting data files for different calculation
+     parameters), running from the console program (including the
+     cluster calculation), fast and automated drawing, saving pictures
+     for further analysis (or demonstration). Negative sides are: the
+     usage of the external program for picture viewing. Also, the data
+     plotting is non-visual. So, you have to imagine the picture (view
+     angles, lighting and so on) before the plotting. I recommend to
+     use graphical window for determining the optimal parameters of
+     plotting on the base of some typical data set. And later use these
+     parameters for batch processing in console program.
+
+   * _Drawing in memory with the following displaying by other
+     graphical program._
+
+     In this case the programmer has more freedom in selecting the
+     window libraries (not only FLTK or GLUT), in positioning and
+     surroundings control and so on. I recommend to use such way for
+     "settled" programs.
+
+   Let me consider the aforesaid in more detail.
+
+* Menu:
+
+* Using FLTK/GLUT window::
+* Drawing to file::
+* Drawing in memory::
+* Using QMathGL::
+
+
+File: mathgl_ru.info,  Node: Using FLTK/GLUT window,  Next: Drawing to file,  Up: Basic usage
+
+2.1.1 Using FLTK/Qt/GLUT window
+-------------------------------
+
+The "interactive" way of drawing in MathGL consists in window creation
+with help of class `mglGraphFLTK', `mglGraphQT' or `mglGraphGLUT'
+(*note Widget classes::) and the following drawing in this window.
+There is a corresponding code:
+    int sample(mglGraph *gr, void *)
+    {
+        gr->Rotate(60,40);
+        gr->Box();
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mglGraphFLTK gr;
+        gr.Window(argc,argv,sample,"MathGL examples");
+        return mglFlRun();
+    }
+ Here function `sample' is defined. This function does all drawing.
+Other function `main' is entry point function for console program.
+Arguments of `main' should be transfered to `Window()' since it may
+contain OS specific information (*note mglGraphAB class::).
+
+   Alternatively you can create yours own class inherited from class
+`mglDraw' and re-implement the function `Draw()' in it:
+    class Foo : public mglDraw
+    {
+    public:
+        int Draw(mglGraph *gr);
+    } foo;
+    //-----------------------------------------------------
+    int Foo::Draw(mglGraph *gr)
+    {
+        gr->Rotate(60,40);
+        gr->Box();
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mglGraphFLTK gr;
+        gr.Window(argc,argv,foo,"MathGL examples");
+        return mglFlRun();
+    }
+
+   The similar code can be written for `mglGraphQT' or for
+`mglGraphGLUT' window (function `sample()' is the same):
+    int main(int argc,char **argv)
+    {
+        mglGraphGLUT gr;
+        gr.Window(argc,argv,sample,"MathGL examples");
+        return 0;
+    }
+
+   The rotation, shift, zooming, switching on/off transparency and
+lighting can be done with help of tool-buttons (for `mglGraphFLTK' and
+`mglGraphQT') or by hot-keys: `a', `d', `w', `s' for plot rotation, `r'
+and `f' switching on/off transparency and lighting. Press `x' for exit
+(or closing the window).
+
+   In this example function `sample' rotates axes (`Rotate()', *note
+Transformation matrix::) and draws the bounding box (`Box()'). Drawing
+procedure is separated in a function since it will be used on demand
+when window canvas needs to be redrawn. Widget classes (`mglGraphFLTK',
+`mglGraphGLUT' and so on) support a delayed drawing, when all plotting
+functions are called once at the beginning of writing to memory lists.
+Further program displays the saved lists faster. Resulting redrawing
+will be faster but it requires sufficient memory. Several lists
+(frames) can be displayed one after another (by pressing `,', `.') or
+run as cinema. To switch these feature on one needs to modify function
+`sample':
+    int sample1(mglGraph *gr, void *)
+    {
+        gr->NewFrame();             // the first frame
+        gr->Rotate(60,40);
+        gr->Box();
+        gr->EndFrame();             // end of the first frame
+        gr->NewFrame();             // the second frame
+        gr->Box();
+        gr->Axis("xy");
+        gr->EndFrame();             // end of the second frame
+        return GetNumFrame();       // returns the frame number
+    }
+ First, the function creates a frame `NewFrame()' for rotated axes and
+draws the bounding box. After the frame drawing the function
+`EndFrame()' *must be* called! The second frame contains the bounding
+box and axes `Axis("xy")' in the initial (unrotated) coordinates.
+Function `sample' returns the number of created frames `GetNumFrame()'.
+
+
+File: mathgl_ru.info,  Node: Drawing to file,  Next: Drawing in memory,  Prev: Using FLTK/GLUT window,  Up: Basic usage
+
+2.1.2 Drawing to file
+---------------------
+
+Another way of using MathGL library is the direct picture writing to
+file. It is most usable for plot creating during calculation or for
+using of small programs (like Matlab or Scilab scripts) for visualizing
+repetitive sets of data. But the speed of drawing is much higher in
+comparison with a script language. There are two classes for exporting
+in file: class `mglGraphZB' saves in bitmap format (like PNG),
+`mglGraphPS' saves in vector PostScript format (*note Plotter
+classes::).
+
+   The following code produces a bitmap PNG picture:
+    int main(int ,char **)
+    {
+        mglGraphZB gr;
+        gr.Alpha(true);
+        gr.Light(true);             gr.Light(0,mglPoint(1,0,-1));
+        sample(&gr,NULL);           // The same drawing function.
+        gr.WritePNG("test.png");    // Don't forget to save the result!
+        return 0;
+    }
+ The only difference from the previous (using windows) variant is
+manual switching the transparency  `Alpha' and lightning `Light' on, if
+the plot requires it. The using of frames is not advisable since the
+whole image is prepared each time. If function `sample' contains frames
+then each frame will be saved to a separate file. In principle, one
+does not need to separate drawing functions in case of direct file
+writing in consequence of the single calling of this function for each
+picture. However, one may use the same drawing procedure to create a
+plot with changed parameters, to export in different file types, to
+emphasize the drawing code and so on. So, in future I will put the
+drawing in separate function.
+
+   The code for export in vector EPS file looks the same:
+    int main(int ,char **)
+    {
+        mglGraphPS gr;
+        gr.Light(true);             gr.Light(0,mglPoint(1,0,-1));
+        sample(&gr,NULL);           // The same drawing function.
+        gr.WriteEPS("test.eps");    // Don't forget to save the result!
+        return 0;
+    }
+ The differences from the using of bitmap picture are: applying of the
+other class `mglGraphPS', and writing to other format (function
+`WriteEPS()' instead of function `WritePNG()'). Moreover, there is no
+switching of the plot transparency `Alpha' since EPS format does not
+support it. Possibly I shall include transparency in future by program
+emulation.
+
+   Classes `mglGraphZB' and `mglGraphPS' have some merits and demerits.
+Class `mglGraphZB' draws beautiful surface with transparency, smoothed
+colors and lightning, but the output picture is _bitmap_, that leads to
+a bad scalability. On the contrary, class `mglGraphPS' creates vector
+file with excellent scalability. But file has large size (especially
+for surfaces), it does not support transparency and color smoothing.
+So, vector picture looks stylish but a bit angularly.
+
+
+File: mathgl_ru.info,  Node: Drawing in memory,  Next: Using QMathGL,  Prev: Drawing to file,  Up: Basic usage
+
+2.1.3 Drawing in memory
+-----------------------
+
+The last way of MathGL using is the drawing in memory. Class
+`mglGraphZB' allows one  to create a bitmap picture in memory. Further
+this picture can be displayed in window by some window libraries (like
+wxWidgets, FLTK, Windows GDI and so on). For example, the code for
+drawing in wxWidget library looks like:
+    void MyForm::OnPaint(wxPaintEvent& event)
+    {
+        int w,h,x,y;
+        GetClientSize(&w,&h);   // size of the picture
+        mglGraphZB gr(w,h);
+
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&gr,NULL);
+
+        wxImage img(w,h,gr.GetBits(),true);
+        ToolBar->GetSize(&x,&y);    // gets a height of the toolbar if any
+        wxPaintDC dc(this);         // and draws it
+        dc.DrawBitmap(wxBitmap(img),0,y);
+    }
+ The drawing in other libraries is most the same.
+
+   For example, FLTK code will look like
+    void Fl_MyWidget::draw()
+    {
+        mglGraphZB gr(w(),h());
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&gr,NULL);
+        fl_draw_image(gr.GetBits(), x(), y(), gr.GetWidth(), gr.GetHeight(), 3);
+    }
+ Qt code will look like
+    void MyWidget::paintEvent(QPaintEvent *)
+    {
+        mglGraphZB gr(w(),h());
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&gr,NULL);
+
+        // Qt don't support RGB format as is. So, let convert it to BGRN.
+        const uchar *bb = gr.GetBits();
+        register long i, w=gr.GetWidth(), h=gr.GetHeight();
+        *buf = new uchar[4*w*h];
+        for(i=0;i<w*h;i++)
+        {
+            (*buf)[4*i]   = bb[3*i+2];
+            (*buf)[4*i+1] = bb[3*i+1];
+            (*buf)[4*i+2] = bb[3*i];
+            (*buf)[4*i+3] = 255;
+        }
+        QPixmap pic = QPixmap::fromImage(QImage(*buf, w, h, QImage::Format_RGB32));
+
+        QPainter paint;
+        paint.begin(this);  paint.drawPixmap(0,0,pic);  paint.end();
+        delete []buf;
+    }
+
+
+File: mathgl_ru.info,  Node: Using QMathGL,  Prev: Drawing in memory,  Up: Basic usage
+
+2.1.4 Using QMathGL
+-------------------
+
+MathGL have several interface widgets for different widget libraries.
+There are QMathGL for Qt, Fl_MathGL for FLTK in MathGL v.1.8. These
+classes provide control which display MathGL graphics. Unfortunately
+there is no uniform interface for widget classes because all libraries
+have slightly different set of functions, features and so on. However
+the usage of MathGL widgets is rather simple. Let me show it on the
+example of QMathGL.
+
+   First of all you have to define the drawing function or inherit a
+class from `mglDraw' class. After it just create a window and setup
+QMathGL instance as any other Qt widget:
+    int main(int argc,char **argv)
+    {
+        QApplication a(argc,argv);
+        QMainWindow *Wnd = new QMainWindow;
+        Wnd->resize(650,480);  // for fill up the QMGL, menu and toolbars
+        Wnd->setWindowTitle(title);
+        // here I allow to scroll QMathGL -- the case
+        // then user want to prepare huge picture
+        QScrollArea *scroll = new QScrollArea(Wnd);
+
+        // Create and setup QMathGL
+        QMathGL *QMGL = new QMathGL(Wnd);
+        QMGL->setPopup(popup); // if you want to setup popup menu for QMGL
+        QMGL->setDraw(sample, NULL);
+        // or use QMGL->setDraw(foo); for instance of class Foo:public mglDraw
+        QMGL->update();
+
+        // continue other setup (menu, toolbar and so on)
+        makeMenu();
+        scroll->setWidget(QMGL);
+        Wnd->setCentralWidget(scroll);
+        Wnd->show();
+        return a.exec();
+    }
+
+
+File: mathgl_ru.info,  Node: Advanced usage,  Next: Data handling,  Prev: Basic usage,  Up: Examples
+
+2.2 Advanced usage
+==================
+
+Now I show several non-obvious features of MathGL: several subplots in
+a single picture, curvilinear coordinates, text printing and so on.
+Generally you may miss this section at first reading, but I don't
+recommend it.
+
+* Menu:
+
+* Subplots::
+* Axis and grids::
+* Curvilinear coordinates::
+* Text printing example::
+* Animation::
+
+
+File: mathgl_ru.info,  Node: Subplots,  Next: Axis and grids,  Up: Advanced usage
+
+2.2.1 Subplots
+--------------
+
+Let me demonstrate possibilities of axes transformation. MathGL has the
+following functions: `SubPlot', `InPlot', `Aspect' and `Rotate' (*note
+Transformation matrix::). The order of their calling is strictly
+determined. First, one changes the position of axes in image area
+(functions `SubPlot' and `InPlot'). After that one may rotate the plot
+(function `Rotate'). Finally, one may change aspects of axes (function
+`Aspect'). The following code illustrates the aforesaid it:
+    int sample(mglGraph *gr, void *)
+    {
+        gr->SubPlot(2,2,0);
+        gr->Box();
+        gr->Puts(mglPoint(-1,1.1,1),"Just box","rL");
+        gr->InPlot(0.2,0.5,0.7,1);
+        gr->Box();
+        gr->Puts(mglPoint(0,1.2,1),"InPlot example");
+
+        gr->SubPlot(2,2,1);
+        gr->Rotate(60,40);
+        gr->Aspect(1,1,1);
+        gr->Box();
+        gr->Puts(mglPoint(1,1,1.5),"Rotate only","rR");
+
+        gr->SubPlot(2,2,2);
+        gr->Rotate(60,40);
+        gr->Aspect(1,1,2);
+        gr->Box();
+        gr->Puts(mglPoint(0,0,2),"Aspect and Rotate");
+
+        gr->SubPlot(2,2,3);
+        gr->Rotate(60,40);
+        gr->Aspect(1,2,2);
+        gr->Box();
+        gr->Puts(mglPoint(0,0,1.5),"Aspect in other direction");
+        return 0;
+    }
+ Here I used function `Puts' for printing the text in arbitrary
+position of picture (*note Text printing::). Text coordinates and size
+are connected with axes. However, text coordinates may be everywhere,
+including the outside the bounding box. I shall show its features later
+in *Note Text printing example::.
+
+ [image src="../png/sample1.png" ]
+
+Example of several subplots on the single picture.
+
+
+File: mathgl_ru.info,  Node: Axis and grids,  Next: Curvilinear coordinates,  Prev: Subplots,  Up: Advanced usage
+
+2.2.2 Axis and grids
+--------------------
+
+MathGL library can draw not only the bounding box but also the axes,
+grids, labels and so on. The limits of axes and their origin (the point
+of intersection) are determined by function `Axis()'. Also you can use
+`XRange(), YRange(), ZRange()' functions (*note Ranges (bounding
+box)::). Ticks on axis are specified by function `SetTicks' (*note
+Ticks::). First argument the direction for each change will be applied.
+Second argument gives the step between ticks (if positive) or gives the
+number of ticks on the axis (if negative) or set to use logarithmic
+ticks (if zero). Third argument gives numbers of sub-ticks between
+ticks (default is zero). Last argument define the initial ticks
+position.
+
+   Function `Axis' draws axes. Its textual string shows in which
+directions the axis or axes will be drawn (by default `"xyz"', function
+draws axes in all directions). Function `Grid' draws grid
+perpendicularly to specified directions. Example of axes and grid
+drawing is:
+    int sample(mglGraph *gr, void *)
+    {
+        gr->SubPlot(2,2,0);
+        gr->SetTicks('x', 0.4, 3);  // sets tick step to 0.5
+        gr->SetTicks('y', 0.4, 3);  // and draws 3 subticks
+        gr->Box();                  // should be after the ticks change
+        gr->Axis("xy");
+        gr->Grid();
+        gr->Puts(mglPoint(0,1.3,1),"Axis and grid");
+
+        gr->SetTicks('x');  gr->SetTicks('y'); // restore back
+        gr->Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(0,0,0));
+
+        gr->SubPlot(2,2,1);
+        gr->Rotate(60,40);
+        gr->Axis();
+        gr->Label('x',"x");
+        gr->Label('y',"y");
+        gr->Label('z',"z");
+        gr->Puts(mglPoint(0,0,1.5),"Axis and labels");
+
+        gr->SubPlot(2,2,2);
+        gr->Rotate(60,40);
+        gr->SetTicks('x', 0.2); gr->SetTicks('y', 0.2);
+        gr->SetTicks('z', 0.2); // too low step of ticks
+        gr->Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,-1,-1));
+        gr->Axis();
+        gr->Grid();
+        gr->Puts(mglPoint(0,0,1.5),"Shift origin and add grid");
+        gr->Puts(mglPoint(0,0,1.2),"(note, too many ticks)");
+
+        gr->SubPlot(2,2,3);
+        gr->Rotate(60,40);
+        gr->SetTicks('x', -6);  // decrease the number of ticks
+        gr->SetTicks('y', -6);
+        gr->Axis("yz");
+        gr->Label('y',"Y axis",0);
+        gr->Label('z',"Z axis",0);
+        gr->Puts(mglPoint(0,0,1.5),"Remove X axis, and");
+        gr->Puts(mglPoint(0,0,1.2),"decrease number of ticks");
+        return 0;
+    }
+
+   This example shows the importance of the correct choosing of the
+number of ticks on axis. If tick step is too small then its text may
+overlap and becomes unreadable. This code has the example of `Label'
+function. It draws label for axis in specified direction. The text
+position on axis is specified by third argument of `Label' function. If
+it is positive then then text is drawn near the axis maximum, if
+negative then the same takes place near the minimum of axis, if zero -
+then at the center of axis.
+
+ [image src="../png/sample2.png" ]
+
+Example of setting up axis range and axis ticks.
+
+
+File: mathgl_ru.info,  Node: Curvilinear coordinates,  Next: Text printing example,  Prev: Axis and grids,  Up: Advanced usage
+
+2.2.3 Curvilinear coordinates
+-----------------------------
+
+Now let use curvilinear coordinates. In difference from other systems
+of plot creation, MathGL uses textual formulas for connection of the
+old (data) and new (output) coordinates. This allows one to plot in
+arbitrary coordinates. The following code plots the line Y=0, Z=0 in
+Cartesian, polar, parabolic and spiral coordinates:
+    int sample(mglGraph *gr, void *)
+    {
+        mglData x(50),y(50),z(50);
+        y.Fill(0.5,0.5);
+        x.Fill(-1,1);           // creates data arrays
+
+        gr->Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,1,-1));
+        gr->dz = 0.5;           // sets tick step to 0.5
+
+        gr->SubPlot(2,2,0);
+        gr->Rotate(60,40);
+        gr->Plot(x,y,z,"r2");
+        gr->Axis(); gr->Grid();
+        gr->Puts(mglPoint(0,1.3,1),"Cartesian");
+
+        gr->SubPlot(2,2,1);
+        gr->SetFunc("y*sin(pi*x)","y*cos(pi*x)",0);
+        gr->Rotate(60,40);
+        gr->Plot(x,y,z,"r2");
+        gr->Axis(); gr->Grid();
+        gr->Puts(mglPoint(0,1.3,1),"Cylindrical");
+
+        gr->SubPlot(2,2,2);
+        gr->Rotate(60,40);
+        gr->SetFunc("2*y*x","y*y - x*x",0);
+        gr->Plot(x,y,z,"r2");
+        gr->Axis(); gr->Grid();
+        gr->Puts(mglPoint(0,1.3,1),"Parabolic");
+
+        gr->SubPlot(2,2,3);
+        gr->Rotate(60,40);
+        gr->SetFunc("y*sin(pi*x)","y*cos(pi*x)","x+z");
+        gr->Plot(x,y,z,"r2");
+        gr->Axis(); gr->Grid();
+        gr->Puts(mglPoint(0,1.3,1),"Spiral");
+        return 0;
+    }
+
+ [image src="../png/sample3.png" ]
+
+Example of curvilinear coordinates
+
+
+File: mathgl_ru.info,  Node: Text printing example,  Next: Animation,  Prev: Curvilinear coordinates,  Up: Advanced usage
+
+2.2.4 Text printing example
+---------------------------
+
+MathGL prints text by vector font. There are functions for manual
+specifying of text position (like `Puts') and for its automatic
+selection (like `Label', `Legend' and so on). MathGL prints text always
+in specified position even if it lies outside the bounding box. The
+default size of font is specified by variables FONTSIZE (*note Font
+settings::). However, the actual size of output string depends on
+position of axes (depends on functions `SubPlot', `InPlot'). The
+switching of the font style (italic, bold, wire and so on) can be done
+for the whole string (by function parameter) or inside the string. By
+default MathGL parses TeX-like commands for symbols and indexes (see
+*note Font styles::). Example of MathGL font drawing is:
+    int sample(mglGraph *gr, void *)
+    {
+        setlocale(LC_CTYPE, "ru_RU.cp1251");
+        gr->Puts(mglPoint(0,1),"Text can be in ASCII and in Unicode");
+        gr->Puts(mglPoint(0,0.6),"It can be \\wire{wire}, \\big{big} "
+            "or #r{colored}");
+        gr->Puts(mglPoint(0,0.2),"One can change style in string: "
+            "\\b{bold}, \\i{italic, \\b{both}}");
+        gr->Puts(mglPoint(0,-0.2),"Easy to \\a{overline} or "
+            "\\u{underline}");
+        gr->Puts(mglPoint(0,-0.6),"Easy to change indexes "
+            "^{up} _{down} @{center}");
+        gr->Puts(mglPoint(0,-1),"It parse TeX: \\int \\alpha \\cdot "
+            "\\sqrt3{sin(\\pi x)^2 + \\gamma_{i_k}} dx");
+        return 0;
+    }
+
+ [image src="../png/sample4.png" ]
+
+Example of text printing with different font effects
+
+   Another example demonstrate the features of TeX formula parsing.
+    int sample(mglGraph *gr, void *)
+    {
+        gr->Puts(mglPoint(0), "\\sqrt{\\frac{\\alpha^{\\gamma^2}+"
+            "\\overset 1{\\big\\infty}}{\\sqrt3{2+b}}}", 0, -4);
+        return 0;
+    }
+
+ [image src="../png/samplee.png" ]
+
+Example of TeX formula parsing
+
+   Finally you can change font during execution (this work well for
+mglGraphZB class only).
+    int sample(mglGraph *gr, void *)
+    {
+        float h=1.1, d=0.25;
+        gr->LoadFont("STIX");       gr->Puts(mglPoint(0,h), "default font (STIX)");
+        gr->LoadFont("adventor");   gr->Puts(mglPoint(0,h-d), "adventor font");
+        gr->LoadFont("bonum");      gr->Puts(mglPoint(0,h-2*d), "bonum font");
+        gr->LoadFont("chorus");     gr->Puts(mglPoint(0,h-3*d), "chorus font");
+        gr->LoadFont("cursor");     gr->Puts(mglPoint(0,h-4*d), "cursor font");
+        gr->LoadFont("heros");      gr->Puts(mglPoint(0,h-5*d), "heros font");
+        gr->LoadFont("heroscn");    gr->Puts(mglPoint(0,h-6*d), "heroscn font");
+        gr->LoadFont("pagella");    gr->Puts(mglPoint(0,h-7*d), "pagella font");
+        gr->LoadFont("schola");     gr->Puts(mglPoint(0,h-8*d), "schola font");
+        gr->LoadFont("termes");     gr->Puts(mglPoint(0,h-9*d), "termes font");
+    }
+
+ [image src="../png/fonts.png" ]
+
+Example of font face changing.
+
+
+File: mathgl_ru.info,  Node: Animation,  Prev: Text printing example,  Up: Advanced usage
+
+2.2.5 Animation
+---------------
+
+You can make animation by several methods in MathGL: by export in
+animated GIF, or by save each frame in separate file (usually JPEG) and
+convert these files into movie. Let me show both methods.
+
+   The simplest methods is making animated GIF. There are 3 steps: (1)
+open GIF file by `StartGIF()' function; (2) create the frames by
+calling `NewFrame()' before and `EndFrame()' after plotting; (3) close
+GIF by `CloseGIF()' function. So the simplest code for "running"
+sinusoid will look like this:
+    int sample(mglGraph *gr, void *)
+    {
+        mglData dat(100);
+        char str[32];
+        gr->StartGIF("sample.gif");
+        for(int i=0;i<100;i++)
+        {
+            gr->NewFrame();     // start frame
+            gr->Box();          // some plotting
+            sprintf(str,"sin(pi*x+%g*pi)",0.02*i);
+            dat.Modify(str);
+            gr->Plot(dat,"b");
+            gr->EndFrame();     // end frame
+        }
+        gr->CloseGIF();
+        return 0;
+    }
+
+   The second way is saving each frame in separate file (usually JPEG)
+and later make the movie from them. MathGL have special function for
+saving frames - it is `WriteFrame()'. This function save each frame
+with automatic name `frame0001.jpg, frame0002.jpg' and so on. Here
+prefix `frame' is defined by PLOTID variable of `mglGraph' class. So
+the similar code will look like this:
+    int sample(mglGraph *gr, void *)
+    {
+        mglData dat(100);
+        char str[32];
+        for(int i=0;i<100;i++)
+        {
+            gr->NewFrame();     // start frame
+            gr->Box();          // some plotting
+            sprintf(str,"sin(pi*x+%g*pi)",0.02*i);
+            dat.Modify(str);
+            gr->Plot(dat,"b");
+            gr->EndFrame();     // end frame
+            gr->WriteFrame();   // save frame
+        }
+        return 0;
+    }
+
+   Created files can be converted to movie by help of a lot of
+programs. For example, you can use ImageMagic (command `convert
+frame*.jpg movie.mpg'), MPEG library, GIMP and so on.
+
+   Finally, you can use `mgl2gif' tool for doing the same with MGL
+scripts (*note Utilities::).
+
+
+File: mathgl_ru.info,  Node: Data handling,  Next: Data plotting,  Prev: Advanced usage,  Up: Examples
+
+2.3 Data handling
+=================
+
+Class `mglData' contains all functions for the data handling in MathGL
+(*note mglData class::). There are several matters why I use class
+`mglData' but not a single array: it does not depend on type of data
+(float or double), sizes of data arrays are kept with data, memory
+working is simpler and safer.
+
+* Menu:
+
+* Array creation::
+* Data changing::
+
+
+File: mathgl_ru.info,  Node: Array creation,  Next: Data changing,  Up: Data handling
+
+2.3.1 Array creation
+--------------------
+
+One can put the data in `mglData' instance by several ways. Let us do
+it for sinus function:
+   * one can create external array, fill it and put to `mglData'
+     variable     double *a = new double[50];
+         for(int i=0;i<50;i++)   a[i] = sin(M_PI*i/49.);
+
+         mglData y;
+         y.Set(a,50);
+
+   * another way is to create `mglData' instance of the desired size
+     and then to work directly with data in this variable     mglData y(50);
+         for(int i=0;i<50;i++)   y.a[i] = sin(M_PI*i/49.);
+
+   * next way is to fill the data in `mglData' instance by textual
+     formula with the help of `Modify()' function     mglData y(50);
+         y.Modify("sin(pi*x)");
+
+   * or one may fill the array in some interval and modify it later     mglData y(50);
+         y.Fill(0,M_PI);
+         y.Modify("sin(u)");
+
+   * finally it can be loaded from file     FILE *fp=fopen("sin.dat","wt");   // create file first
+         for(int i=0;i<50;i++)   fprintf(fp,"%g\n",sin(M_PI*i/49.));
+         fclose(fp);
+
+         mglData y("sin.dat");             // load it
+
+   * at this one can read only part of data     FILE *fp-fopen("sin.dat","wt");   // create large file first
+         for(int i=0;i<70;i++)   fprintf(fp,"%g\n",sin(M_PI*i/49.));
+         fclose(fp);
+
+         mglData y;
+         y.Read("sin.dat",50);             // load it
+
+   Creation of 2d- and 3d-arrays is mostly the same. But one should
+keep in mind that class `mglData' uses flat data representation. For
+example, matrix 30*40 is presented as flat (1d-) array with length
+30*40=1200 (nx=30, ny=40). The element with indexes {i,j} is a[i+nx*j].
+So for 2d array we have:
+    mglData z(30,40);
+    for(int i=0;i<30;i++)   for(int j=0;j<40;j++)
+        z.a[i+30*j] = sin(M_PI*i/29.)*sin(M_PI*j/39.);
+ or by using `Modify()' function
+    mglData z(30,40);
+    z.Modify("sin(pi*x)*cos(pi*y)");
+
+   The only non-obvious thing here is using multidimensional arrays in
+C/C++, i.e. arrays defined like `float dat[40][30];'. Since, formaly
+this arrays element `dat[i]' can address the memory in arbitrary place
+you should use the proper function to convert such arrays to `mglData'
+object. For C++ this is functions like `mglData::Set(float **dat, int
+N1, int N2);'. For C this is functions like `mgl_data_set_float2(HMDT
+d, const float **dat, int N1, int N2);'. At this, you should keep in
+mind that `nx=N2' and `ny=N1' after conversion.
+
+
+File: mathgl_ru.info,  Node: Data changing,  Prev: Array creation,  Up: Data handling
+
+2.3.2 Data changing
+-------------------
+
+MathGL has functions for data processing: differentiating, integrating,
+smoothing and so on (for more detail, *note mglData class::). Let us
+consider some examples. The simplest ones are integration and
+differentiation. The direction in which operation will be performed is
+specified by textual string, which may contain symbols `x', `y' or `z'.
+For example, the call of `Diff("x")' will differentiate data along `x'
+direction; the call of `Integral("xy")' perform the double integration
+of data along `x' and `y' directions; the call of `Diff2("xyz")' will
+apply 3d Laplace operator to data and so on. Example of this operations
+on 2d array a=x*y is presented in code:
+    int sample(mglGraph *gr, void *)
+    {
+        mglData a(30,40);   a.Modify("x*y");
+        gr->Axis(mglPoint(0,0,0),mglPoint(1,1,1));
+        gr->SubPlot(2,2,0); gr->Rotate(60,40);
+        gr->Surf(a);        gr->Box();
+        gr->Puts(mglPoint(0.7,1,1.2),"a(x,y)");
+        gr->SubPlot(2,2,1); gr->Rotate(60,40);
+        a.Diff("x");        gr->Surf(a);      gr->Box();
+        gr->Puts(mglPoint(0.7,1,1.2),"da/dx");
+        gr->SubPlot(2,2,2); gr->Rotate(60,40);
+        a.Integral("xy");   gr->Surf(a);      gr->Box();
+        gr->Puts(mglPoint(0.7,1,1.2),"\\int da/dx dxdy");
+        gr->SubPlot(2,2,3); gr->Rotate(60,40);
+        a.Diff2("y");       gr->Surf(a);      gr->Box();
+        gr->Puts(mglPoint(0.7,1,1.2),"\\int {d^2}a/dxdy dx");
+        return 0;
+    }
+
+ [image src="../png/sample6.png" ]
+
+Example of data differentiation and integration
+
+   Data smoothing (function `Smooth()') is more interesting and
+important. This function has 2 main arguments: type of smoothing and
+its direction. Now 4 methods are supported: `SMOOTH_NONE' does nothing
+for delta=0 or approaches data to zero with the step delta,
+`SMOOTH_LINE_3' linear averaging by 3 points, `SMOOTH_LINE_5' linear
+averaging by 5 points, `SMOOTH_QUAD_5' quadratic averaging by 5 points.
+Let me demonstrate it for 1d case:
+    int sample(mglGraph *gr, void *)
+    {
+        mglData y0(30),y1,y2,y3;
+        y0.Modify("0.4*sin(2*pi*x)+0.3*cos(3*pi*x)-0.4*sin(4*pi*x)+0.2*rnd");
+
+        y1=y0;  y1.Smooth(SMOOTH_LINE_3);
+        y2=y0;  y2.Smooth(SMOOTH_LINE_5);
+        y3=y0;  y3.Smooth(SMOOTH_QUAD_5);
+
+        gr->Plot(y0,"k");   gr->AddLegend("NONE","k");
+        gr->Plot(y1,"r");   gr->AddLegend("LINE_3","r");
+        gr->Plot(y2,"g");   gr->AddLegend("LINE_5","g");
+        gr->Plot(y3,"b");   gr->AddLegend("QUAD_5","b");
+        gr->Legend();       gr->Box();
+        return 0;
+    }
+
+ [image src="../png/sample7.png" ]
+
+Example of data smoothing
+
+   Finally one can create new data arrays on base of the existing one:
+extract slice, row or column of data (`SubData()'), summarize along
+some of direction(s) (`Sum()'), find distribution of data elements
+(`Hist()'). Note, that all these functions are not thread-safe because
+they use static internal variable for output array. In particular, the
+using of several of them in arguments of the same function will lead to
+unpredictable result.
+
+
+File: mathgl_ru.info,  Node: Data plotting,  Next: C/Fortran interface,  Prev: Data handling,  Up: Examples
+
+2.4 Data plotting
+=================
+
+Let me now show how to plot the data. MathGL generally has 2 types of
+plotting functions. Simple variant requires a single data array for
+plotting, other data (coordinates) are considered uniformly distributed
+in interval MIN*MAX. Second variant requires data arrays for all
+coordinates. It allows one to plot rather complex multivalent curves
+and surfaces (in case of parametric dependencies). Argument setting to
+default values allows one to plot data in standard form. Manual
+arguments setting gives possibility for fine tuning of colors,
+positions and view of graphics. Note, that the call of drawing function
+adds something to picture but does not clear the previous plots (as it
+does in Matlab). Another difference from Matlab is that all setup (like
+transparency, lightning, axis borders and so on) must be specified
+*before* plotting functions.
+
+* Menu:
+
+* Plots for 1D data::
+* Plots for 2D data::
+* Plots for 3D data::
+* Surface transparency::
+
+
+File: mathgl_ru.info,  Node: Plots for 1D data,  Next: Plots for 2D data,  Up: Data plotting
+
+2.4.1 Plots for 1D data
+-----------------------
+
+Term "1D data" means that data depend on single index (parameter) like
+curve in parametric form {x(i),y(i),z(i)}, i=1...n. There are 5
+generally different types of data representations: simple line plot,
+line plot with filling under it, stairs plot, bar plot and vertical
+lines (*note 1D plotting::). Each type of plotting has similar
+interface. There are 3D version and two 2D versions. One of last
+requires single array. The parameters of line and marks (*note Line
+styles::) are specified by the string argument. If the string parameter
+is `NULL' then solid line with color from palette is used (*note
+Palette and colors::).
+
+   Below I shall show the features of 1D plotting on base of `Plot()'
+function (*note Plot::). Let us start from sinus plot:
+    int sample(mglGraph *gr, void *)
+    {
+        mglData y0(50); 	y0.Modify("sin(pi*(2*x-1))");
+        gr->SubPlot(2,2,0);
+        gr->Plot(y0);   	gr->Box();
+ Style of line is not specified in `Plot()' function. So MathGL uses
+the solid line with first color of palette (this is blue). Next subplot
+shows array Y1 with 2 rows:
+        gr->SubPlot(2,2,1);
+        mglData y1(50,2);
+        y1.Modify("sin(pi*2*x-pi)");
+        y1.Modify("cos(pi*2*x-pi)/2",1);
+        gr->Plot(y1);   	gr->Box();
+ As previously I did not specify the style of lines. As a result,
+MathGL again uses solid line with next colors in palette (there are
+green and red). Now let us plot a circle on the same subplot. The
+circle is parametric curve x=cos(\pi t), y=sin(\pi t). I will set the
+color of the circle (dark yellow, `Y') and put marks `+' at point
+position:
+        mglData x(50);  	x.Modify("cos(pi*2*x-pi)");
+        gr->Plot(x,y0,"Y+");
+ Note that solid line is used because I did not specify the type of
+line. The same picture can be achieved by `Plot2()' function. Let us
+draw ellipse by orange dash line:
+        gr->Plot2(y1,"q|");
+
+   Drawing in 3D space is mostly the same. Let us draw spiral with
+default line style. Now its color is 4-th color from palette (this is
+cyan):
+        gr->SubPlot(2,2,2);	gr->Rotate(60,40);
+        mglData z(50);  	z.Modify("2*x-1");
+        gr->Plot(x,y0,z);	gr->Box();
+ Function `Plot3()' does 3D curve plot but for single array. Use it to
+put circle marks on the previous plot:
+        mglData y2(10,3);	y2.Modify("cos(pi*(2*x-1+y))");
+        y2.Modify("2*x-1",2);
+        gr->Plot3(y2,"bo ");
+ Note that line style is empty ` ' here. Usage of other 1D plotting
+functions looks similar:
+        gr->SubPlot(2,2,3);	gr->Rotate(60,40);
+        gr->Bars(x,y0,z,"r");	gr->Box();
+        return 0;
+    }
+
+ [image src="../png/sample8.png" ]
+
+Example of 1D data plot
+
+
+File: mathgl_ru.info,  Node: Plots for 2D data,  Next: Plots for 3D data,  Prev: Plots for 1D data,  Up: Data plotting
+
+2.4.2 Plots for 2D data
+-----------------------
+
+Surfaces `Surf()' and other 2D plots (*note 2D plotting::) are drown
+the same simpler as 1D one. The difference is that the string parameter
+specifies not by line style but by the color scheme of the plot (*note
+Color scheme::). Here I draw attention on 4 most interesting color
+schemes. There is gray scheme where color is changed from black to
+white (string `kw') or from white to black (string `wk'). Another
+scheme is useful for accentuation of negative (by blue color) and
+positive (by red color) regions on plot (string `"BbwrR"'). Last one is
+the popular "jet" scheme (string `"BbcyrR"').
+
+   Now I shall show the example of a surface drawing. At first let us
+switch lightning on
+    int sample(mglGraph *gr, void *)
+    {
+        gr->Light(true);	gr->Light(0,mglPoint(0,0,1));
+ and draw the surface, considering coordinates x,y to be uniformly
+distributed in interval MIN*MAX
+        mglData a0(50,40);
+        a0.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+        gr->SubPlot(2,2,0);	gr->Rotate(60,40);
+        gr->Surf(a0);		gr->Box();
+ Color scheme was not specified. So previous color scheme is used. In
+this case it is default color scheme ("jet") for the first plot. Next
+example is a sphere. The sphere is parametrically specified surface:
+        mglData x(50,40),y(50,40),z(50,40);
+        x.Modify("0.8*sin(2*pi*x)*sin(pi*y)");
+        y.Modify("0.8*cos(2*pi*x)*sin(pi*y)");
+        z.Modify("0.8*cos(pi*y)");
+        gr->SubPlot(2,2,1);	gr->Rotate(60,40);
+        gr->Surf(x,y,z,"BbwrR");gr->Box();
+ I set color scheme to `"BbwrR"' that corresponds to red top and blue
+bottom of the sphere.
+
+   Surfaces will be plotted for each of slice of the data if NZ>1. Next
+example draws surfaces for data arrays with NZ=3:
+        mglData a1(50,40,3);
+        a1.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+        a1.Modify("0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))",1);
+        a1.Modify("0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))",2);
+        gr->SubPlot(2,2,2);	gr->Rotate(60,40);
+        gr->Alpha(true);
+        gr->Surf(a1);		gr->Box();
+ Note, that it may entail a confusion. However, if one will use density
+plot then the picture will look better:
+        gr->SubPlot(2,2,3);	gr->Rotate(60,40);
+        gr->Dens(a1);		gr->Box();
+        return 0;
+    }
+ Note, that the previous color scheme is used in last plots because
+there are no direct specification of the one.
+
+ [image src="../png/sample9.png" ]
+
+Example of surface plot for 2D data
+
+   Drawing of other 2D plots is analogous. The only peculiarity is the
+usage of flag `#'. By default this flag switches on the drawing of a
+grid on plot (`Grid()' or `Mesh()' for plots in plain or in volume).
+However, for isosurfaces (including surfaces of rotation `Axial()')
+this flag switches the  face drawing off. Figure becomes wired. The
+following code gives example of flag `#' using (compare with normal
+function drawing as in its description):
+    int sample(mglGraph *gr, void *)
+    {
+        gr->Alpha(true);	gr->Light(true);	gr->Light(0,mglPoint(0,0,1));
+        mglData a(30,20);
+        a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+
+        gr->SubPlot(2,2,0);	gr->Rotate(40,60);
+        gr->Surf(a,"BbcyrR#");		gr->Box();
+        gr->SubPlot(2,2,1);	gr->Rotate(40,60);
+        gr->Dens(a,"BbcyrR#");		gr->Box();
+        gr->SubPlot(2,2,2);	gr->Rotate(40,60);
+        gr->Cont(a,"BbcyrR#");		gr->Box();
+        gr->SubPlot(2,2,3);	gr->Rotate(40,60);
+        gr->Axial(a,"BbcyrR#");		gr->Box();
+        return 0;
+    }
+
+ [image src="../png/samplea.png" ]
+
+Example of 2D data plot with color scheme contained `#' symbol
+
+
+File: mathgl_ru.info,  Node: Plots for 3D data,  Next: Surface transparency,  Prev: Plots for 2D data,  Up: Data plotting
+
+2.4.3 Plots for 3D data
+-----------------------
+
+Drawing procedures for 3D plot looks similarly to 1D and 2D plots
+described above. There are 3 general types of 3D plots (*note 3D
+plotting::): (i) plots on slices or on projections, (ii) isosurfaces,
+(iii) cloud-like plots. Plots on slice are clear enough - one specifies
+a slice (as its index or as coordinate value) and MathGL draws contour
+lines or density plot on slice plane. Isosurface gives more
+information. Isosurface is 3D analogue of the contour line `Cont()'. It
+shows the region where data array values exceed specified isosurface
+level. Plot becomes more informative if one adds transparency,
+lightning or sets color scheme depending on coordinates. Generalization
+of isosurface is the cloud-like plot. For this plot the darker color
+and less transparent regions correspond to higher values of data.
+Contrary, the regions with low values are transparent. For plotting of
+the phase of fields (or beams or pulses) one can use isosurface which
+transparency depends on the other data array (see function `Surf3A()').
+As example of 3D data plots let us draw the Gaussian beam diffraction
+in space. Beam propagates along X axis:
+    int sample(mglGraph *gr, void *)
+    {
+        gr->Alpha(true);    gr->Light(true);
+        gr->Light(0,mglPoint(0,0,1));
+        mglData a(30,30,30),b(30,30,30);
+        a.Modify("exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))");
+        b.Modify("16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)");
+        gr->CAxis(0,1);
+
+        gr->SubPlot(2,2,0); gr->Rotate(40,60);
+        gr->Surf3(a,"wgk"); gr->Box();
+        gr->SubPlot(2,2,1); gr->Rotate(40,60);
+        gr->DensA(a);       gr->Box();  gr->Axis();
+        gr->SubPlot(2,2,2); gr->Rotate(40,60);
+        gr->CloudQ(a);      gr->Box();
+        gr->SubPlot(2,2,3); gr->Rotate(40,60);
+        gr->Surf3A(b,a,"q");gr->Box();
+        return 0;
+    }
+
+ [image src="../png/sampleb.png" ]
+
+Example of Gaussian beam diffraction (3D data)
+
+
+File: mathgl_ru.info,  Node: Surface transparency,  Prev: Plots for 3D data,  Up: Data plotting
+
+2.4.4 Surface transparency
+--------------------------
+
+MathGL library has advanced features for setting and handling the
+surface transparency. The simplest way to add transparency is the using
+of function `Alpha()'. As a result, all further surfaces (and
+isosurfaces, density plots and so on) become transparent. However,
+their  look can be additionally improved.
+
+   First, the selected surface will be non-transparent if one sets the
+flag `Transparent' before the surface drawing and sets it off after the
+drawing.
+
+   Second, the value of transparency can be different from surface to
+surface. To do it just change the value of `AlphaDef' before the
+drawing of the selected surface. If its value is close to 0 then the
+surface becomes more and more transparent. Contrary, if its value is
+close to 1 then the surface becomes practically non-transparent. This
+is some analogue of `Transparent=true'.
+
+   Third feature is the changing of the way how the light goes through
+overlapped surfaces. The variable `TranspType' defines it. By default
+the usual transparency is used (`TranspType=0') - surfaces below is
+less visible than the upper ones. A "glass-like" transparency
+(`TranspType=1') has a different look when the surface just decreases
+the background light (the surfaces are commutable in this case).
+
+   A "neon-like" transparency (`TranspType=2') has more interesting
+look. In this case a surface is the light source (like a lamp on the
+dark background) and just adds some intensity to the color. At this,
+the library sets automatically the black color for the background and
+changes the default line color to white.
+
+   As example I shall show the variant of plot from *note Plots for 2D
+data:: (grid drawing is disabled) for different types of transparency.
+ [image src="../png/type0.png" ]
+
+Example of `TranspType=0'.
+
+ [image src="../png/type1.png" ]
+
+Example of `TranspType=1'.
+
+ [image src="../png/type2.png" ]
+
+Example of `TranspType=2'.
+
+
+File: mathgl_ru.info,  Node: C/Fortran interface,  Next: MathGL and PyQt,  Prev: Data plotting,  Up: Examples
+
+2.5 C/Fortran interface
+=======================
+
+The usage of pure C or Fortran or any similar interfaces (*note C
+interface::) is practically identical to classes usage. But there are
+some differences. C functions must have argument HMGL (for graphics)
+and/or HMDT (for data arrays) which specifies the object for drawing or
+manipulating (changing). Fortran users may regard these variables as
+integer. So, firstly the user has to create this object by function
+mgl_create_*() and has to delete it after the using by function
+mgl_delete_*().
+
+   Also, all arguments of C function have to be defined. So there are
+several functions with practically identical names doing practically
+the same. But some of them have simplified interface for the quick
+plotting and some of them have access to all plotting parameters for
+manual tunning.
+
+   As an example of C function usage let me draw the plot from *note
+Plots for 2D data::. The C code which does it is shown below:
+    #include <mgl/mgl_c.h>
+    int main()
+    {
+        HMGL gr = mgl_create_graph_zb(600, 400);
+        mgl_set_alpha(gr, true);
+        mgl_set_light(gr, true);
+        HMDT a = mgl_create_data_size(30,20,1);
+        mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+
+        mgl_subplot(gr, 2,2,0);
+        mgl_rotate(gr, 40,60,0);
+        mgl_surf(gr,a,"BbcyrR#");
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,1);
+        mgl_rotate(gr, 40,60,0);
+        mgl_dens(gr,a,"BbcyrR#",NAN);
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,2);
+        mgl_rotate(gr, 40,60,0);
+        mgl_cont(gr,a,"BbcyrR#",7,NAN);
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,3);
+        mgl_rotate(gr, 40,60,0);
+        mgl_axial(gr,a,"BbcyrR#",3);
+        mgl_box(gr, true);
+
+        /* don't forgot to save graphics */
+        mgl_write_png(gr,"sample.png",0);
+        return 0;
+    }
+
+   Practically the same simple to create a window. For example let
+rewrite the code from for window creation (*note Using FLTK/GLUT
+window::):
+    int sample(HMGL gr, void *)
+    {
+        mgl_rotate(gr,60,40,0);
+        mgl_box(gr,1);
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mgl_create_graph_fltk(sample, "MathGL examples", NULL);
+        mgl_fltk_run();
+        return 0;
+    }
+
+   The Fortran code have some peculiarities. Exactly it not allow one
+to send arbitrary parameter (which was `NULL' in previous example) to
+function. This is limitation of Fortran language. So, the corresponding
+code will be *NOT TESTED NOW!!!*:
+    program TEST
+    integer x,f,func
+        call mgl_create_graph_fltk(sample, 'MathGL examples');
+        call mgl_fltk_run();
+    end program TEST
+
+    integer function sample(gr)
+    integer*8 gr
+        call mgl_rotate(gr,60,40,0);
+        call mgl_box(gr,1);
+        sample=0
+    return
+    end
+
+
+File: mathgl_ru.info,  Node: MathGL and PyQt,  Next: Hints,  Prev: C/Fortran interface,  Up: Examples
+
+2.6 MathGL and PyQt
+===================
+
+Generally SWIG based classes (including the Python one) are the same as
+C++ classes. However, there are few tips for using MathGL with PyQt.
+Below I place a very simple python code which demonstrate how MathGL
+can be used with PyQt. This code is mostly written by Prof. Dr. Heino
+Falcke. You can just copy it to a file `mgl-pyqt-test.py' and execute
+it from python shell by command `execfile("mgl-pyqt-test.py")'
+
+from PyQt4 import QtGui,QtCore
+from mathgl import *
+import sys
+app = QtGui.QApplication(sys.argv)
+qpointf=QtCore.QPointF()
+
+class hfQtPlot(QtGui.QWidget):
+    def __init__(self, parent=None):
+        QtGui.QWidget.__init__(self, parent)
+        self.img=(QtGui.QImage())
+    def setgraph(self,gr):
+        self.buffer='\t'
+        self.buffer=self.buffer.expandtabs(4*gr.GetWidth()*gr.GetHeight())
+        gr.GetBGRN(self.buffer,len(self.buffer))
+        self.img=QtGui.QImage(self.buffer, gr.GetWidth(),gr.GetHeight(),QtGui.QImage.Format_ARGB32)
+        self.update()
+    def paintEvent(self, event):
+        paint = QtGui.QPainter()
+        paint.begin(self)
+        paint.drawImage(qpointf,self.img)
+        paint.end()
+
+BackgroundColor=[1.0,1.0,1.0]
+size=100
+gr=mglGraph()
+y=mglData(size)
+#y.Modify("((0.7*cos(2*pi*(x+.2)*500)+0.3)*(rnd*0.5+0.5)+362.135+10000.)")
+y.Modify("(cos(2*pi*x*10)+1.1)*1000.*rnd-501")
+x=mglData(size)
+x.Modify("x^2");
+
+def plotpanel(gr,x,y,n):
+    gr.SubPlot(2,2,n)
+    gr.SetXRange(x)
+    gr.SetYRange(y)
+    gr.AdjustTicks()
+    gr.Axis()
+    gr.Box()
+    gr.Label("x","x-Axis",1)
+    gr.Label("y","y-Axis",1)
+    gr.ClearLegend()
+    gr.AddLegend("Legend: "+str(n),"k")
+    gr.Legend()
+    gr.Plot(x,y)
+
+
+gr.Clf(BackgroundColor[0],BackgroundColor[1],BackgroundColor[2])
+gr.SetPlotFactor(1.5)
+plotpanel(gr,x,y,0)
+y.Modify("(cos(2*pi*x*10)+1.1)*1000.*rnd-501")
+plotpanel(gr,x,y,1)
+y.Modify("(cos(2*pi*x*10)+1.1)*1000.*rnd-501")
+plotpanel(gr,x,y,2)
+y.Modify("(cos(2*pi*x*10)+1.1)*1000.*rnd-501")
+plotpanel(gr,x,y,3)
+
+gr.WritePNG("test.png","Test Plot")
+
+qw = hfQtPlot()
+qw.show()
+qw.setgraph(gr)
+qw.raise_()
+
+
+File: mathgl_ru.info,  Node: Hints,  Prev: MathGL and PyQt,  Up: Examples
+
+2.7 Hints
+=========
+
+In this section I have included some small hints and advices for the
+improving of the quality of plots and for the demonstration of some
+non-trivial features of MathGL library. In contrast to previous
+examples I showed mostly the idea but not the whole drawing function.
+More examples with the source code can be find at
+`http://mathgl.sf.net/' or in section *note Samples::.
+
+* Menu:
+
+* ``Compound'' graphics::
+* Two axes in one plot::
+* Titles for the plot::
+* Changing of the color range::
+* Management of a point cutting::
+* Vector field visualization::
+* Several light sources::
+* CutMin and CutMax features::
+* Mapping visualization::
+* Log-scaled plot::
+* ``Templates''::
+* Nonlinear fitting hints::
+* PDE solving hints::
+* MGL parser using::
+* Stereo image::
+
+
+File: mathgl_ru.info,  Node: ``Compound'' graphics,  Next: Two axes in one plot,  Up: Hints
+
+2.7.1 "Compound" graphics
+-------------------------
+
+As I noted above, MathGL functions (except the special one, like Clf())
+do  not erase the previous plotting but just add the new one. It allows
+one to draw "compound" plots easily. For example, popular Matlab
+command `surfc' can be emulated in MathGL by 2 calls:
+    Surf(a);
+    Cont(a, 0, 7, -1);     // draw contours at z = -1
+ Here A is 2-dimensional data for the plotting, `-1' is the value of
+z-coordinate at which the contour should be plotted (at the bottom in
+this example). Analogously, one can draw density plot instead of
+contour lines and so on.
+
+   Another nice plot is contour lines plotted directly on the surface:
+    Light(true);       // switch on light for the surface
+    Surf(a, "BbcyrR"); // select 'jet' colormap for the surface
+    Cont(a, "y");      // and yellow color for contours
+ The possible difficulties arise in black&white case, when the color of
+the surface can be close to the color of a contour line. In that case I
+may suggest the following code:
+    Light(true);       // switch on light for the surface
+    Surf(a, "kw");     // select 'gray' colormap for the surface
+    CAxis(-1,0);       // first draw for darker surface colors
+    Cont(a, "w");      // white contours
+    CAxis(0,1);        // now draw for brighter surface colors
+    Cont(a, "k");      // black contours
+    CAxis(-1,1);       // return color range to original state
+ The idea is to divide the color range on 2 parts (dark and bright) and
+to select the contrasting color for contour lines for each of part.
+
+   Similarly, one can plot flow thread over density plot of vector
+field amplitude (this is another amusing plot from Matlab) and so on.
+The list of compound graphics can be prolonged but I hope that the
+general idea is clear.
+
+
+File: mathgl_ru.info,  Node: Two axes in one plot,  Next: Titles for the plot,  Prev: ``Compound'' graphics,  Up: Hints
+
+2.7.2 Two axes in one plot
+--------------------------
+
+Developing the previous hint one can make a plot with 2 or more axes.
+The idea is that the change of settings does not influence on the
+already drawn graphics. So, for 2-axes plot let us set the first axis
+and draw everything concerning it. Then let us setup the second axis
+and draw things for the second axis. The corresponding code is (*note
+2-axes sample::):
+    // set up first axis
+    Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,-1,-1));
+    Axis();            // draw it
+    Plot(y1,"b");      // draw something in first axis
+    // set up second axis
+    Axis(mglPoint(0,0,0),mglPoint(1,1,1),mglPoint(1,1,1));
+    Axis();            // draw it
+    Stem(y2,"r");      // draw something in second axis
+ Note, that the first and the second axes look better if being placed
+in different corners. In the code presented above the first axis is
+placed in the left-bottom corner, and the second one is placed in the
+right-top corner.
+
+
+File: mathgl_ru.info,  Node: Titles for the plot,  Next: Changing of the color range,  Prev: Two axes in one plot,  Up: Hints
+
+2.7.3 Titles for the plot
+-------------------------
+
+The printing of nice titles for the plot is not so trivial task in
+general case. The problem is that the rotation and aspect change lead
+to different looks for titles of different subplots. So, the resulting
+look is not so good as it could be. The solution is simple - to print
+titles exactly after `SubPlot'() call and before any rotation, aspect
+change and so on! Analogously, the title for the whole picture looks
+better if it is printed first (before any `SubPlot()' calls).
+Alternatively you can use function `Title()' for plotting title for the
+picture at any time.
+
+
+File: mathgl_ru.info,  Node: Changing of the color range,  Next: Management of a point cutting,  Prev: Titles for the plot,  Up: Hints
+
+2.7.4 Changing of the color range
+---------------------------------
+
+By default (for the user comfort), the color range is set equal to
+z-range of the plot. However, there are different ranges. So, one can
+obtain amusing plot by the change of color range manually. For example,
+there are plots with one-color bottom (or top) or practically bi-color
+picture and so on.
+
+   For example, compare 2 surfaces:
+    SubPlot(2,1,0)
+    Surf(a);           // usual coloring range
+    SubPlot(2,1,1)
+    CAxis(0,1);
+    Surf(a);           // bottom of the surface have one-colour filling
+
+
+File: mathgl_ru.info,  Node: Management of a point cutting,  Next: Vector field visualization,  Prev: Changing of the color range,  Up: Hints
+
+2.7.5 Management of a point cutting
+-----------------------------------
+
+Sometimes an experimental or numerical surface has outstanding points.
+Visualization of such surface will lead to the hole(s) in place of such
+points. The standard method of "fighting"  - to change data values - is
+not always good and is not so convenient. MathGL library has another
+method - to set variable `Cut=false'. As a consequence, all outstanding
+points will be projected on the bounding box.
+
+   Such method is good not only for outstanding points but also for the
+case when one need to plane the bottom or the top of the plot. Exactly
+such case is demonstrated in the code:
+        mglData a(20,30);  // create some data
+        a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+        // set lower border above the data minimal value
+        Axis(mglPoint(-1,-1,0),mglPoint(1,1,1));
+        Cut = false;       // set off cutting flag
+`       Surf(a);           // and draw the surface
+ It is an interesting result, is not it?
+
+
+File: mathgl_ru.info,  Node: Vector field visualization,  Next: Several light sources,  Prev: Management of a point cutting,  Up: Hints
+
+2.7.6 Vector field visualization
+--------------------------------
+
+Vector field visualization (especially in 3d case `Vect3' or `VectC')
+may look tangly - there are too many overlapping lines. I may suggest 2
+ways to solve this problem. The first one is to change `MeshNum' for
+decreasing the number of hachures. The second way is to use the flow
+thread chart `Flow'. Unfortunately, I don't know any other methods to
+visualize 3d vector field. If you know any, e-mail me and I shall add
+it to MatGL.
+
+
+File: mathgl_ru.info,  Node: Several light sources,  Next: CutMin and CutMax features,  Prev: Vector field visualization,  Up: Hints
+
+2.7.7 Several light sources
+---------------------------
+
+In contrast to the most of other programs, MathGL supports several (up
+to 10) light sources. Moreover, the color each of them can be
+different: white (this is usual), yellow, red, cyan, green and so on.
+The use of several light sources may be interesting for the
+highlighting of some peculiarities of the plot or just to make an
+amusing picture. Note, each light source can be switched on/off
+individually (*note Several light sample::).
+
+
+File: mathgl_ru.info,  Node: CutMin and CutMax features,  Next: Mapping visualization,  Prev: Several light sources,  Up: Hints
+
+2.7.8 CutMin and CutMax features
+--------------------------------
+
+MathGL library has a feature for cutting of points in some region
+CUTMIN*CUTMAX. Such an excision can be used to improve the look of the
+graphics. Moreover, this cutting may help to show an internal structure
+of an object (like `isocaps' plot in Matlab). For example, let us use
+the standard 3D data array and show its interior (*note CutMinMax
+sample::).
+
+    mglData  c(61,51,40);      // create the data
+    mglData v(10);	v.Fill(-0.5,1);
+    c.Modify("(-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1))");
+    gr->CutMin = mglPoint(0,-1,-1);     gr->CutMax = mglPoint(1,0,1.1);
+    gr->Surf3(-0.5,c,"BbcyrR");
+    gr->ContF3(v,c,'x',-1,"BbcyrR");    gr->ContF3(v,c,'y',-1,"BbcyrR");
+    gr->ContF3(v,c,'z',0,"BbcyrR");     gr->ContF3(v,c,'z',39,"BbcyrR");
+
+   One can also exclude points from arbitrary area in space. This area
+defined by textual formula `CutOff()' (*note Cutting::). The algorithm
+is the same as shown for "rectangular cutting".
+
+
+File: mathgl_ru.info,  Node: Mapping visualization,  Next: Log-scaled plot,  Prev: CutMin and CutMax features,  Up: Hints
+
+2.7.9 Mapping visualization
+---------------------------
+
+Sometime ago I worked with mapping and have a question about its
+visualization. Let me remember you that mapping is some transformation
+rule for one set of number to another one. The 1d mapping is just an
+ordinary function - it takes a number and transforms it to another one.
+The 2d mapping (which I used) is a pair of functions which take 2
+numbers and transform them to another 2 ones. Except general plots
+(like `SurfC', `SurfA') there is a special plot - Arnold diagram. It
+shows the area which is the result of mapping of some initial area
+(usually square).
+
+   I tried to make such plot in `Map'. It shows the set of points or
+set of faces, which final position is the result of mapping. At this,
+the color gives information about their initial position and the height
+describes Jacobian value of the transformation. Unfortunately, it looks
+good only for the simplest mapping but for the  real multivalent
+quasi-chaotic mapping it produces a confusion. So, use it if you like
+:).
+
+
+File: mathgl_ru.info,  Node: Log-scaled plot,  Next: ``Templates'',  Prev: Mapping visualization,  Up: Hints
+
+2.7.10 Log-scaled plot
+----------------------
+
+Log-scaled plot can be drawn by 2 steps. First, one should change the
+scale of axis by call `SetFunc("lg(x)", "lg(y)");' (in this example, x-
+and y-axis will be log-scaled). Second, one should set logarithmic
+scale for axis ticks by changing variables: `SetTicks('x',0);
+SetTicks('y',0);'. Finally, one should check (or change) the axis
+ranges and origin so that their values to be positive. For example of
+log-log plot *note Log-log sample::.
+
+
+File: mathgl_ru.info,  Node: ``Templates'',  Next: Nonlinear fitting hints,  Prev: Log-scaled plot,  Up: Hints
+
+2.7.11 "Templates"
+------------------
+
+As I have noted before, the change of settings will influence only for
+the further plotting commands. This allows one to create template
+function which will contain settings and primitive drawing for often
+used plots. Correspondingly one may call this template-function for
+drawing simplification.
+
+   For example, let one has a set of points (experimental or numerical)
+and wants to compare it with theoretical law (for example, with
+exponent law \exp(-x/2), x \in [0, 20]). The template-function for this
+task is:
+    void template(mglGraph *gr)
+    {
+        mglData  law(100);      // create the law
+        law.Modify("exp(-10*x)");
+        gr->Axis(mglPoint(0,0.0001), mglPoint(20,1), mglPoint(0,0.0001));
+        gr->SetFunc(0,"lg(y)",0);   gr->dy = 0;
+        gr->Plot(law,"r2");
+        gr->Text(mglPoint(10,0.2),"Theoretical law: e^x","rL");
+        gr->Label('x',"x val."); gr->Label('y',"y val.");
+        gr->Axis(); gr->Grid("xy","g;"); gr->Box();
+    }
+ At this, one will only write a few lines for data drawing:
+    template(gr);     // apply settings and default drawing from template
+    mglData dat("fname.dat"); // load the data
+    // and draw it (suppose that data file have 2 columns)
+    gr->Plot(dat.SubData(0),dat.SubData(1),"bx ");
+ A template-function can also contain settings for font, transparency,
+lightning, color scheme and so on.
+
+
+File: mathgl_ru.info,  Node: Nonlinear fitting hints,  Next: PDE solving hints,  Prev: ``Templates'',  Up: Hints
+
+2.7.12 Nonlinear fitting hints
+------------------------------
+
+Nonlinear fitting is rather simple. All that you need is the data to
+fit, the approximation formula and the list of coefficients to fit
+(better with its initial guess values). Let me demonstrate it on the
+following simple example (*note Fitting sample::). First, let us use
+sin function with some random noise:
+    mglData rnd(100), idl(50); //data to be fitted and ideal data
+    rnd.Modify("0.4*rnd+0.1+sin(4*pi*x)");
+    idl.Modify("0.3+sin(4*pi*x)");
+ and plot it to see that data we will fit
+    gr->Axis(mglPoint(-1,-2), mglPoint(1,2));
+    gr->Plot(rnd, ". "); gr->Plot(idl, "b");
+    gr->Box();
+    gr->Text(mglPoint(0,2.2), "initial: y = 0.3+sin(2\pi x)", "C:b", -1);
+
+   The next step is the fitting itself. For that let me specify an
+initial values INI for coefficients `abc' and do the fitting for
+approximation formula `a+b*sin(c*x)'
+    mglData res;   // The data for found formula
+    float ini[3] = {1, 1, 3};
+    gr->Fit(res, rnd, "a+b*sin(c*x)", "abc", ini);
+ Now display it
+    gr->Plot(res, "r");
+    gr->Text(mglPoint(-1,-1.3), "fitted:", "L:r", -1);
+    gr->PutsFit(mglPoint(0,-1.8), "y = ", "C:r", -1);
+
+   NOTE! the fitting results may have strong dependence on initial
+values for coefficients due to algorithm features. The problem is that
+in general case there are several local "optimums" for coefficients and
+the program returns only first found one! There are no guaranties that
+it will be the best. Try for example to set `ini[3] = {0, 0, 0}' in the
+code above.
+
+
+File: mathgl_ru.info,  Node: PDE solving hints,  Next: MGL parser using,  Prev: Nonlinear fitting hints,  Up: Hints
+
+2.7.13 PDE solving hints
+------------------------
+
+Solving of Partial Differential Equations (PDE, including beam tracing)
+and ray tracing (or finding particle trajectory) are more or less
+common task. So, MathGL have several functions for that. There are
+`mglRay()' for ray tracing, `mglPDE()' for PDE solving, `mglQO2d()' for
+beam tracing in 2D case (*note Global functions::). Note, that these
+functions take "Hamiltonian" or equations as string values. And I don't
+plan now to allow one to use user-defined functions. There are 2
+reasons: the complexity of corresponding interface; and the basic
+nature of used methods which are good for samples but may not good for
+serious scientific calculations.
+
+   The ray tracing can be done by `mglRay()' function. Really ray
+tracing equation is Hamiltonian equation for 3D space. So, the function
+can be also used for finding a particle trajectory (i.e. solve
+Hamiltonian ODE) for 1D, 2D or 3D cases. The function have a set of
+arguments. First of all, it is Hamiltonian which defined the media (or
+the equation) you are planning to use. The Hamiltonian is defined by
+string which may depend on coordinates `x', `y', `z', time `t' (for
+particle dynamics) and momentums `p'=p_x, `q'=p_y, `v'=p_z. Next, you
+have to define the initial conditions for coordinates and momentums at
+`t'=0 and set the integrations step (default is 0.1) and its duration
+(default is 10). The Runge-Kutta method of 4-th order is used for
+integration.
+    mglData r,a,re(128),im(128);
+    r = mglRay("p^2+q^2-x-1", mglPoint(-0.7, -1), mglPoint(0, 0.5));
+    gr->Plot(r.SubData(0), r.SubData(1));
+ This example calculate the reflection from linear layer (media with
+Hamiltonian `p^2+q^2-x-1'=p_x^2+p_y^2-x-1). This is parabolic curve.
+The resulting array have 7 columns which contain data for
+{x,y,z,p,q,v,t}.
+
+   The solution of PDE is a bit more complicated. As previous you have
+to specify the equation as pseudo-differential operator \hat H(x,
+\nabla) which is called sometime as "Hamiltonian" (for example, in beam
+tracing). As previously, it is defined by string which may depend on
+coordinates `x', `y', `z' (but not time!), momentums `p'=(d/dx)/i k_0,
+`q'=(d/dy)/i k_0 and field amplitude `u'=|u|. The evolutionary
+coordinate is `z' in all cases. So that, the equation look like du/dz =
+ik_0 H(x,y,\hat p, \hat q, |u|)[u]. Dependence on field amplitude
+`u'=|u| allows one to solve nonlinear problems too. For example, for
+nonlinear Shrodinger equation you may set `ham="p^2 + q^2 - u^2"'. Also
+you may specify imaginary part for wave absorption, like `ham = "p^2 +
+i*x*(x>0)"', but only if dependence on variable `i' is linear (i.e. H =
+Hre+i*Him).
+
+   Next step is specifing the initial conditions at `z'=`Min.z'. The
+function need 2 arrays for real and for imaginary part. Note, that
+coordinates x,y,z are supposed to be in specified range [Min, Max]. So,
+the data arrays should have corresponding scales. Finally, you may set
+the integration step and paramter k0=k_0. Also keep in mind, that
+internally the 2 times large box is used (for suppressing numerical
+reflection from boundaries) and the equation should well defined even
+in this extended range.
+
+   Final comment is concerning the possible form of pseudo-differential
+operator H. At this moment, simplified form of operator H is supported
+- all "mixed" terms (like `x*p'->x*d/dx) are excluded. For example, in
+2D case this operator is effectively H = f(p,z) + g(x,z,u). However
+commutable combinations (like `x*q'->x*d/dy) are allowed for 3D case.
+
+   So, for example let solve the equation for beam deflected from
+linear layer and absorbed later. The operator will have the form
+`"p^2+q^2-x-1+i*0.5*(z+x)*(z>-x)"' that correspond to equation ik_0
+\partial_z u + \Delta u + x \cdot u + i (x+z)/2 \cdot u = 0. This is
+typical equation for Electron Cyclotron (EC) absorption in magnetized
+plasmas. For initial conditions let me select the beam with plane phase
+front exp(-48*(x+0.7)^2). The corresponding code looks like this (*note
+PDE sample::):
+    mglData a,re(128),im(128);
+    re.Fill("exp(-48*(x+0.7)^2)", gr->Min, gr->Max);
+    a = mglPDE("p^2+q^2-x-1+i*0.5*(z+x)*(z>-x)", re, im,
+                gr->Min, gr->Max, 0.01, 30);
+    a.Transpose("yxz");
+    gr->CAxis(0, 1);
+    gr->Dens(a,"wyrRk");
+
+   The last example is example of beam tracing. Beam tracing equation
+is special kind of PDE equation written in coordinates accompanied to a
+ray. Generally this is the same parameters and limitation as for PDE
+solving but the coordinates are defined by the ray and by parameter of
+grid width W in direction transverse the ray. So, you don't need to
+specify the range of coordinates. *BUT* there is limitation. The
+accompanied coordinates are well defined only for smooth enough rays,
+i.e. then the ray curvature K (which is defined as 1/K^2 = (|\ddot r|^2
+|\dot r|^2 - (\ddot r, \dot r)^2)/|\dot r|^6) is much large then the
+grid width: K>>w. So, you may receive incorrect results if this
+condition will be broken.
+
+   You may use following code for obtaining the same solution as in
+previous example:
+    mglData r, xx, yy, a, im(128), re(128);
+    const char *ham = "p^2+q^2-x-1+i*0.5*(y+x)*(y>-x)";
+    r = mglRay(ham, mglPoint(-0.7, -1), mglPoint(0, 0.5), 0.02, 2);
+    // now start beam tracing
+    re.Fill("exp(-48*x^2)", gr->Min, gr->Max);
+    a = mglQO2d(ham, re, im, r, 1, 30, &xx, &yy);
+    gr->CAxis(0, 1);
+    gr->Dens(xx, yy, a, "wyrRk");
+
+
+File: mathgl_ru.info,  Node: MGL parser using,  Next: Stereo image,  Prev: PDE solving hints,  Up: Hints
+
+2.7.14 MGL parser using
+-----------------------
+
+Sometimes you may prefer to use MGL scripts in yours code. It is
+simpler (especially in comparison with C/Fortran interfaces) and fast
+way to plot the data with annotations, labels and so on. Class
+`mglParse' (*note mglParse class:: parse MGL scripts in C++. It have
+also the corresponding interface for C/Fortran.
+
+   The key function here is `mglParse::Parse()' (or `mgl_parse()' for
+C/Fortran) which execute one command per string. At this the detailed
+information about the possible errors or warnings is passed as function
+value. Or you may execute the whole script as long string with lines
+separated by `\n'. Functions `mglParse::Execute()' and
+`mgl_parse_text()' perform it. Also you may set the values of paramters
+`$0'...`$9' for the script by functions `mglParse::AddParam()' or
+`mgl_add_param()', allow/disable picture resizing, check "once" status
+and so on. The usage is rather stright-forward.
+
+   The only non-obvious thing is data transition between script and
+yours program. There are 2 stages: add or find variable; and set data
+to variable. In C++ you may use functions `mglParse::AddVar()' and
+`mglParse::FindVar()' which return pointer to `mglVar' structure. This
+structure contain data itself, the variable name and callback function
+which will be called if variable destroied. Last feature allows you to
+control the presence of the variable and, for example, close a window
+with data if this variable is destroyed. In C/Fortran the corresponding
+functions are `mgl_add_var()', `mgl_find_var()'. But these functions
+return the data array only. Note, you *must not delete or free* the
+data obtained from these functions!
+
+   So, some simple example at the end. Here I define a data array,
+create variable, put data into it and plot it. The C++ code looks like
+this:
+    float a[100];   // let a_i = sin(4*pi*x), x=0...1
+    for(int i=0;i<100;i++)  a[i]=sin(4*M_PI*i/99);
+    mglParse *parser = new mglParse;
+    mglData &d = (parser->AddVar("dat"))->d;
+    d.Set(a,100); // set data to variable
+    parser->Execute(gr, "plot dat; xrange 0 1\nbox\naxis");
+    // you may break script at any line do something
+    // and continue after that
+    parser->Execute(gr, "xlabel 'x'\nylabel 'y'");
+    // also you may use cycles or conditions in script
+    parser->Execute(gr, "for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext");
+    gr->WritePNG("test.png");   // don't forgot to save picture
+ The code in C/Fortran looks practically the same:
+    float a[100];   // let a_i = sin(4*pi*x), x=0...1
+    int i;
+    for(i=0;i<100;i++)  a[i]=sin(4*M_PI*i/99);
+    HMPR parser = mgl_create_parser();
+    HMDT d = mgl_add_var(parser, "dat");
+    mgl_data_set_float(d,a,100,1,1);    // set data to variable
+    mgl_parse_text(gr, parser, "plot dat; xrange 0 1\nbox\naxis");
+    // you may break script at any line do something
+    // and continue after that
+    mgl_parse_text(gr, parser, "xlabel 'x'\nylabel 'y'");
+    // also you may use cycles or conditions in script
+    mgl_parse_text(gr, parser, "for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext");
+    mgl_write_png(gr, "test.png", "");  // don't forgot to save picture
+
+
+File: mathgl_ru.info,  Node: Stereo image,  Prev: MGL parser using,  Up: Hints
+
+2.7.15 Stereo image
+-------------------
+
+One can easily create stereo image in MathGL. Stereo image can be
+produced by making two subplots with slightly different rotation
+angles. The corresponding code looks like this (*note Stereo image
+sample::):
+    gr->SubPlot(2,1,0);     // left image
+    gr->Rotate(40,60+3);
+    // draw something here
+
+    gr->SubPlot(2,1,1);     // right image
+    gr->Rotate(40,60-3);
+    // draw the same here
+
+
+File: mathgl_ru.info,  Node: MathGL core,  Next: Plotter classes,  Prev: Examples,  Up: Top
+
+3 Ядро MathGL
+*****************
+
+Основным классом MathGL является класс *mglGraph*, определенный в
+`#include <mgl/mgl.h>'. Он включает в себя множество функций для
+построения графиков от 1D, 2D и 3D массивов. Он также содержит функции
+вывода текста и построения осей координат. Есть возможность построения
+в произвольной системе координат, которая  задается строковыми
+формулами. Все графические функции используют класс mglData (*note
+mglData class::) для хранения массивов данных. Это позволяет легко
+контролировать размеры, работу с памятью и производить обработку
+данных. Дополнительная информация о цветах, шрифтах, вычисления формул
+может быть найдена в *note Other classes::.
+
+   Замечу, что класс mglGraph - абстрактный класс, содержащий только
+интерфейсную часть для построения графиков. Он не выполняет собственно
+построения на конкретное устройство. Для практического использования
+(при выводе на экран, в память или в файл) используйте производные
+классы: mglGraphZB для растровых рисунков; mglGraphPS для векторных
+рисунков (в форматах EPS и/или SVG) и для быстрого, но менее
+аккуратного рисования растровой картинки; mglGraphGL для рисования с
+использованием OpenGL; и т.д. *note Plotter classes::. Если вы хотите
+не только построить картинку, но и отобразить ее в окне/органе
+управления или запустить анимацию, то посмотрите также *note Widget
+classes::.
+
+   Начиная с версии 1.10 есть специальный класс "оболочка" к функциям
+С-интерфейса. Он также называется `mglGraph' и определен в файле
+`mgl/mgl_graph.h'. Этот класс можно использовать и на не-GNU
+компиляторах (т.е. в Borland или Microsoft компиляторах), но в этом
+случае вы *не должны подключать* заголовочные файлы `mgl/mgl.h' или
+`mgl/mgl_parse.h'! Этот класс используется также как базовый класс для
+интерфейсов на основе SWIG (Python, Octave и пр). Далее в документации
+функции члены "оболочечного" класса обозначены как `Python' для
+отделения от оригинального класса `C++', определенного в `mgl/mgl.h'.
+
+* Menu:
+
+* Graphics setup::
+* Axis settings::
+* Transformation matrix::
+* Export to file::
+* Primitives drawing::
+* Text printing::
+* Axis and Colorbar::
+* Legend::
+* 1D plotting::
+* 2D plotting::
+* 3D plotting::
+* Dual plotting::
+* Vector fields::
+* Other plotting::
+* Nonlinear fitting::
+* Data distributions::
+* Frames/Animation::
+* IDTF functions::
+
+
+File: mathgl_ru.info,  Node: Graphics setup,  Next: Axis settings,  Up: MathGL core
+
+3.1 Настройка графика
+=====================================
+
+Функции и переменные в этой группе влияют на вид всего рисунка.
+Соответственно они должны располагаться _перед_ вызовом функций
+непосредственно рисующих графики.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' DefaultPlotParam ()
+ -- Функция С: `void' mgl_set_def_param (`HMGL' gr)
+     Устанавливает все настройки по умолчанию, кроме описанных в *note
+     Zooming::.
+
+* Menu:
+
+* Transparency::
+* Lighting::
+* Fog::
+* Default sizes::
+* Zooming::
+* Cutting::
+* Font settings::
+* Palette and colors::
+* Error handling::
+* Other settings::
+
+
+File: mathgl_ru.info,  Node: Transparency,  Next: Lighting,  Up: Graphics setup
+
+3.1.1 Прозрачность
+------------------------------
+
+Эти функции и переменные настраивают тип и степень прозрачности
+поверхностей. Главной является функция `Alpha()', которая
+включает/выключает прозрачность для всех графиков, созданных после
+вызова `Alpha()' (за исключением mglGraphGL). Функция `SetAlphaDef'
+устанавливает величину alpha-канала по умолчанию. Прозрачность можно
+выключить для отдельного графика с помощью `SetTransparent'. Наконец,
+функция `SetTranspType' задает тип прозрачности. См. раздел *note
+Transparent surface sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `bool' Alpha (`bool' enable)
+ -- Функция С: `void' mgl_set_alpha (`HMGL' gr, `int' enable)
+     Включает/выключает прозрачность и возвращает свое предыдущее
+     состояние. По умолчанию прозрачность выключена. Функция включает
+     прозрачность для _всего_ рисунка. Используйте
+     `SetTransparent(false)' для конкретного графика для выключения
+     прозрачности.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetAlphaDef (`float'
+          val)
+ -- Функция С: `void' mgl_set_alpha_по умолчанию (`HMGL' gr, `float'
+          alpha)
+     Задает значение прозрачности по умолчанию для всех графиков.
+     Отмечу, что OpenGL (mglGraphGL) некорректно рисует большое число
+     перекрывающихся прозрачных поверхностей (больше двух).
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetTransparent
+          (`bool' val)
+ -- Функция С: `void' mgl_set_transp (`HMGL' gr, `int' enable)
+     Временно включает/возвращает прозрачность графиков. Это аналог
+     `Alpha(val)', но работает более корректно для класса mglGraphGL.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetTranspType (`int'
+          type)
+ -- Функция С: `void' mgl_set_transp_type (`HMGL' gr, `int' enable)
+     Задает тип прозрачности. Обычная прозрачность (`0') - "закрытые"
+     объекты видны меньше чем закрывающие. Этот режим некорректно
+     отображается в OpenGL (mglGraphGL) для нескольких перекрывающихся
+     поверхностей. "Стеклянная" прозрачность (`1') - закрытые и
+     закрывающие объекты единообразно ослабляют интенсивность света (по
+     RGB каналам). "Ламповая" прозрачность (`2') - закрытые и
+     закрывающие объекты являются источниками дополнительного освещения
+     (рекомендую установить `SetAlphaDef(0.3)' или меньше в этом
+     случае). *Note Normal transparency::, *note Glass-like
+     transparency::, *note Lamp-like transparency::.
+
+ -- _Устаревшая переменная_ of mglGraph: `float' AlphaDef
+     Значение прозрачности по умолчанию для всех графиков. См.
+     `SetAlphaDef()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `bool' Transparent
+     Флаг, временно включающий/выключающий прозрачность графиков. См.
+     `SetTransparent()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `int' TranspType
+     Тип прозрачности. См. `SetTranspType()'.
+
+
+File: mathgl_ru.info,  Node: Lighting,  Next: Fog,  Prev: Transparency,  Up: Graphics setup
+
+3.1.2 Освещение
+------------------------
+
+Эти функции настраивают освещение графика. Главная функция
+`Light(bool)' включает/выключает освещение графиков построенных после
+ее вызова (в OpenGL работает сразу для всего рисунка). MathGL
+поддерживает до 10 независимых источников света. Но в режиме OpenGL
+можно использовать только первые 8 из них. Положение, цвет, яркость
+каждого источника света можно задавать по отдельности. По умолчанию
+включен только первый (с порядковым номером `0') источник света белого
+цвета, расположенный сверху.
+
+ -- Метод класса `mglGraph' (C++, Python): `bool' Light (`bool' enable)
+ -- Функция С: `void' mgl_set_light (`HMGL' gr, `int' enable)
+     Включает/выключает освещение графика и возвращает предыдущее
+     состояние. По умолчанию освещение выключено.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Light (`int' n,
+          `bool' enable)
+ -- Функция С: `void' mgl_set_light_n (`HMGL' gr, `int' n, `int' enable)
+     Включает/выключает N-ый источник света.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' AddLight (`int' n,
+          `float' x, `float' y, `float' z, `char' c=`'w'')
+ -- Метод класса `mglGraph' (C++): `void' Light (`int' n, `mglPoint' p,
+          `char' c=`'w'', `float' bright=`0.5', `bool' infty=`true')
+ -- Метод класса `mglGraph' (C++): `void' Light (`int' n, `mglPoint' p,
+          `mglColor' c, `float' bright=`0.5', `bool' infty=`true')
+ -- Функция С: `void' mgl_add_light (`HMGL' gr, `int' n, `float' x,
+          `float' y, `float' z, `char' c)
+     Добавляет источник света с номером N в положение P с цветом C и
+     яркостью BRIGHT, которая должна быть в диапазоне [0,1]. Флаг
+     INFTY=`true' делает источник бесконечно удаленным (для более
+     быстрого рисования).
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Ambient (`float'
+          bright=`0.5')
+ -- Функция С: `void' mgl_set_ambbr (`HMGL' gr, `float' bright)
+     Задает яркость рассеянного освещения. Значение должно быть в
+     диапазоне [0,1].
+
+
+File: mathgl_ru.info,  Node: Fog,  Next: Default sizes,  Prev: Lighting,  Up: Graphics setup
+
+3.1.3 Туман
+----------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Fog (`float' d,
+          `float' dz=`0.25')
+ -- Функция С: `void' mgl_set_fog (`HMGL' gr, `float' d, `float' dz)
+     Имитирует туман на графике. Туман начинается на относительном
+     расстоянии DZ от точки обзора и его плотность растет
+     экспоненциально вглубь по закону ~1-exp(-d*z). Здесь _z_ -
+     нормализованная на 1 глубина графика. Если D=`0' то туман
+     отсутствует. См. раздел *note Surface in fog sample::, для
+     примеров кода и графика.
+
+
+File: mathgl_ru.info,  Node: Default sizes,  Next: Zooming,  Prev: Fog,  Up: Graphics setup
+
+3.1.4 Базовые размеры
+-----------------------------------
+
+Эти функции задают величины большинства параметров графика, включая
+размеры маркеров, стрелок, толщину линий и т.д. Как и любые другие
+настройки, они подействуют только на графики созданные после изменения
+настроек.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetBarWidth ( `float'
+          val)
+ -- Функция С: `void' mgl_set_bar_width (`HMGL' gr, `float' val)
+     Задает относительный размер прямоугольников в Bars, Barh, BoxPlot
+     (*note Bars::). Значение по умолчанию `0.7'.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetMarkSize (`float'
+          val)
+ -- Функция С: `void' mgl_set_mark_size (`HMGL' gr, `float' val)
+     Задает размер маркеров для *note 1D plotting::. Значение по
+     умолчанию `0.02'.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetArrowSize (`float'
+          val)
+ -- Функция С: `void' mgl_set_arrow_size (`HMGL' gr, `float' val)
+     Задает размер стрелок для *note 1D plotting::, линий и кривых
+     (*note Primitives drawing::). Значение по умолчанию `0.03'.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetBaseLineWidth
+          (`float' val)
+ -- Функция С: `void' mgl_set_base_line_width (`HMGL' gr, `float' val)
+     Задает базовую толщину линий. Значения <1 игнорируются. Для
+     значений >1 реальная толщина получается перемножением указанной
+     ширины линии на данное значение. Увеличение ширины линии актуально
+     для больших растровых рисунков. Значение по умолчанию `1'.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetTickLen (`float'
+          val, `float' stt=`1')
+ -- Функция С: `void' mgl_set_tick_len (`HMGL' gr, `float' val, `float'
+          stt)
+     Задает относительную длину меток осей координат. Значение по
+     умолчанию `0.1'. Параметр STT>0 задает относительную длину
+     подметок, которые в `sqrt(1+stt)' раз меньше.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetTickStl (`const
+          char *'stl, `const char *'sub=`0')
+ -- Функция С: `void' mgl_set_tick_stl (`HMGL' gr, `const char *'stl,
+          `const char *'sub)
+     Задает стиль меток (STL) и подметок (SUB) осей координат. Если STL
+     пустая или ноль, то используется стиль по умолчанию (`k' или `w' в
+     зависимости от типа прозрачности). Если SUB пустая или ноль, то
+     используется стиль меток (т.е. STL).
+
+ -- _Устаревшая переменная_ of mglGraph: `float' BarWidth
+     Относительная ширина боксов. См. `SetBarWidth()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `float' MarkSize
+     Размер маркеров. См. `SetMarkSize()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `float' ArrowSize
+     Размер стрелок. См. `SetArrowSize()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `float' BaseLineWidth
+     Базовая ширина линий. См. `SetBaseLineWidth()'.
+
+
+File: mathgl_ru.info,  Node: Zooming,  Next: Cutting,  Prev: Default sizes,  Up: Graphics setup
+
+3.1.5 Масштабирование
+------------------------------------
+
+Эти функции управляют масштабированием всего рисунка (см Zoom()) или
+отдельной картинки (см PlotFactor). Обычно эти функции используются для
+удаления пустого места вокруг графиков.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetPlotFactor
+          (`float' val)
+ -- Функция С: `void' mgl_set_plotfactor (`HMGL' gr, `float' val)
+     Задает масштаб картинки (значение должно быть больше 1). Не
+     рекомендуется устанавливать значения меньше 1.5. Это аналог
+     функции Zoom(), но применяется только к конкретной картинке,
+     заданной InPlot. Используйте ноль для включения автоматического
+     масштабирования.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Zoom (`float' x1,
+          `float' y1, `float' x2, `float' y2)
+ -- Функция С: `void' mgl_set_zoom (`HMGL' gr, `float' x1, `float' y1,
+          `float' x2, `float' y2)
+     Масштабирует весь рисунок. После вызова функции текущий график
+     будет очищен и в дальнейшем рисунок будет содержать только область
+     [x1,x2]*[y1,y2] от исходного рисунка. Координаты X1, X2, Y1, Y2
+     меняются в диапазоне от 0 до 1. Внимание! эти настройки не могут
+     быть переписаны никакими другими функциями. Используйте
+     `Zoom(0,0,1,1)' для перехода в масштаб по умолчанию.
+
+ -- _Устаревшая переменная_ of mglGraph: `float' PlotFactor
+     Множитель масштаба картинки. См. `SetPlotFactor()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `bool' AutoPlotFactor
+     Включает/выключает автоматическое изменение PlotFactor при
+     вращении графика. См. `SetPlotFactor()'.
+
+
+File: mathgl_ru.info,  Node: Cutting,  Next: Font settings,  Prev: Zooming,  Up: Graphics setup
+
+3.1.6 Обрезание
+------------------------
+
+Эти функции задают условия когда точка будет исключена (вырезана) из
+рисования. Замечу, что все точки со значением(-ями) NAN по одной из
+координат или амплитуде автоматически исключаются из рисования.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetCut (`bool' val)
+ -- Функция С: `void' mgl_set_cut (`HMGL' gr, `int' val)
+     Задает обрезание точек за пределами осей координат. Если `true' то
+     такие точки исключаются из рисования (это по умолчанию) иначе они
+     проецируются на ограничивающий прямоугольник.
+
+ [image src="cut.png" ]
+
+Левый рисунок нарисован при `Cut=false', правый при `Cut=true'.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetCutBox (`float'
+          x1, `float' y1, `float' z1, `float' x2, `float' y2, `float'
+          z2)
+ -- Функция С: `void' mgl_set_cut_box (`HMGL' gr, `float' x1, `float'
+          y1, `float' z1, `float' x2, `float' y2, `float' z2)
+     Задает границы параллелепипеда внутри которого точки не рисуются.
+     Если границы одинаковы (переменные равны), то параллелепипеда
+     считается пустым. См. раздел *note CutMinMax sample::, для
+     примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' CutOff (`const char
+          *'EqC)
+ -- Функция С: `void' mgl_set_cutoff (`HMGL' gr, `const char *'EqC)
+     Задает условие обрезания по формуле EQC. Это условие исключает
+     точки из рисования если результат вычисления формулы не равен
+     нулю. Установите аргумент `""' для выключения условия обрезания.
+     См. раздел *note CutOff sample::, для примеров кода и графика.
+
+ -- _Устаревшая переменная_ of mglGraph: `bool' Cut
+     Флаг рисования точек вне осей координат. См. `SetCut()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `mglPoint' CutMin, CutMax
+     Нижний и верхний угол параллелепипеда внутри которого точки не
+     рисуются. См. `SetCutBox()'.
+
+
+File: mathgl_ru.info,  Node: Font settings,  Next: Palette and colors,  Prev: Cutting,  Up: Graphics setup
+
+3.1.7 Шрифты
+------------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetFontSize (`float'
+          val)
+ -- Функция С: `void' mgl_set_font_size (`HMGL' gr, `float' val)
+     Задает базовый размер шрифта. По умолчанию размер подписей оси
+     координат в 1.4 раза больше.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetFontDef (`const
+          char *'fnt)
+ -- Функция С: `void' mgl_set_font_def (`HMGL' gr, `const char *' val)
+     Задает стиль шрифта (*note Text printing::). По умолчанию
+     используется `rC' - прямой шрифт с выравниванием по центру.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetRotatedText
+          (`bool' val)
+ -- Функция С: `void' mgl_set_rotated_text (`HMGL' gr, `int' val)
+     Включает/выключает вращение меток и подписей осей координат вдоль
+     оси.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' LoadFont (`const char
+          *'name, `const char *'path=`""')
+ -- Функция С: `void' mgl_load_font (`HMGL' gr, `const char *'name,
+          `const char *'path)
+     Загружает начертание шрифта из файла PATH/NAME.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' CopyFont (`mglGraph
+          *' from)
+ -- Функция С: `void' mgl_copy_font (`HMGL' gr, `HMGL' gr_from)
+     Копирует начертание шрифта из другого объекта `mglGraph'.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' RestoreFont ()
+ -- Функция С: `void' mgl_restore_font (`HMGL' gr)
+     Восстанавливает начертание шрифта по умолчанию.
+
+ -- Метод класса `mglGraph' (C++): `void' SetFontSizePT (`float' cm,
+          `int' dpi=`72')
+     Задает размер шрифта в пунктах для заданного DPI (по умолчанию 16
+     pt для dpi=72).
+
+ -- Метод класса `mglGraph' (C++): `inline void' SetFontSizeCM (`float'
+          cm, `int' dpi=`72')
+     Задает размер шрифта в сантиметрах для заданного DPI (по умолчанию
+     0.56 см = 16 pt).
+
+ -- Метод класса `mglGraph' (C++): `inline void' SetFontSizeIN (`float'
+          cm, `int' dpi=`72')
+     Задает размер шрифта в дюймах для заданного DPI (по умолчанию 0.22
+     in = 16 pt).
+
+ -- Метод класса `mglGraph' (C++): `void' SetFont (`mglFont *'f)
+     Задает начертание шрифта. Замечу, что каждый объект mglFont может
+     использоваться _только с одним_ объектом mglGraph в каждый момент
+     времени! Если `f==NULL', то используется начертание по умолчанию.
+
+ -- Метод класса `mglGraph' (C++): `inline mglFont *' GetFont ()
+     Возвращает текущее начертание шрифта. Указатель правилен только до
+     следующего вызова функции SetFont()!
+
+ -- _Устаревшая переменная_ of mglGraph: `float' FontSize
+     Размер шрифта. См. `SetFontSize()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `char' FontDef`[32]'
+     Стиль шрифта. См. `SetFontDef()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `bool' RotatedText
+     Флаг вращения меток и подписей к осям координат.
+
+
+File: mathgl_ru.info,  Node: Palette and colors,  Next: Error handling,  Prev: Font settings,  Up: Graphics setup
+
+3.1.8 Палитра и цвета
+----------------------------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetPalette (`const
+          char *'COLORS)
+ -- Функция С: `void' mgl_set_palette (`HMGL' gr, `const char *'COLORS)
+     Задает палитру как последовательность цветов. Значение по
+     умолчанию `"Hbgrcmyhlnqeup"', что соответствует цветам: темно
+     серый `H', синий `b', зеленый `g', красный `r', голубой `c',
+     малиновый `m', желтый `y', серый `h', сине-зеленый  `l',
+     небесно-голубой `n', оранжевый `q', желто-зеленый `e',
+     сине-фиолетовый `u', фиолетовый `p'. Палитра в основном
+     используется в 1D графиках (*note 1D plotting::) для кривых с
+     неопределенным стилем линии.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetPalColor (`int' n,
+          `float' r, `float' g, `float' b)
+ -- Функция С: `void' mgl_set_pal_color (`HMGL' gr, `int' n, `float' r,
+          `float' g, `float' b)
+     Задает цвет отдельной ячейки палитры. См. функцию `SetPalette()'
+     для упрощенного задания палитры.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetPalNum (`int' num)
+ -- Функция С: `void' mgl_set_pal_num (`HMGL' gr, `int' num)
+     Задает число цветов в палитре. Значение должно быть меньше 100.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetScheme (`const
+          char *'sch)
+ -- Функция С: `void' mgl_set_scheme (`HMGL' gr, `const char *'sch)
+     Задает цветовую схему. Обычно функция вызывается внутри
+     библиотеки. *Note Color scheme::.
+
+ -- Метод класса `mglGraph' (C++): `void' SelectPen (`const char *'sch)
+     Задает стиль линий и маркеров. Обычно функция вызывается внутри
+     библиотеки. *Note Line styles::.
+
+ -- _Устаревшая переменная_ of mglGraph: `mglColor' Pal`[101]'
+     Палитра *note 1D plotting::. См. `SetPalette()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `int' NumPal
+     Число цветов в палитре. См. `SetPalette()'.
+
+
+File: mathgl_ru.info,  Node: Error handling,  Next: Other settings,  Prev: Palette and colors,  Up: Graphics setup
+
+3.1.9 Обработка ошибок
+-------------------------------------
+
+Есть 2 переменные показывающие наличие предупреждения/ошибки при
+создании графика. Обычно вы должны сбросить их с помощью `SetWarn(0);'
+перед построением и проверить переменную WARNCODE на наличие ошибок
+после построения. Только последнее предупреждение сохраняется. Замечу,
+что все предупреждения/ошибки в MathGL не являются критичными - в
+худшем из вариантов соответствующий график просто не будет построен.
+
+ -- Метод класса `mglGraph' (C++): `void' SetWarn (`int' code, `const
+          char *'who=`""')
+     Задает код предупреждения и поясняющее сообщение от функции WHO.
+     Обычно вызывается только для очистки предупреждений
+     (`SetWarn(0);') или внутри библиотеки.
+
+ -- Переменная(C++) of mglGraph: `char *' Message
+     Указатель на строку для вывода сообщений библиотеки о причине
+     отсутствия графика. Если равен NULL, то сообщения не выводятся.
+     Размер буфера должен быть не менее 1024 байт. Если Message[0]==0,
+     то сообщений нет.
+
+ -- Method on `mglGraph' (C++, Python): `int' GetWarn ()
+ -- C function: `int' mgl_get_warn (`HMGL' gr)
+     Возвращает код сообщения о причине отсутствия графика. Возможные
+     значения:
+    `mglWarnNone=0'
+          Предупреждений нет
+
+    `mglWarnDim'
+          Неправильные или несовместимые размеры данных
+
+    `mglWarnLow'
+          Размеры данных слишком малы
+
+    `mglWarnNeg'
+          Минимальное значение отрицательно
+
+    `mglWarnFile'
+          Файл не найден или указаны неправильные размерности
+
+    `mglWarnMem'
+          Не достаточно памяти
+
+    `mglWarnZero'
+          Значение данных равно нулю
+
+    `mglWarnLegA'
+          Слишком много записей в легенде
+
+    `mglWarnLeg'
+          Нет записей в легенде
+
+    `mglWarnSlc'
+          Индекс среза вне данных
+
+    `mglWarnCnt'
+          Число линий уровня меньше или равно нулю
+
+    `mglWarnOpen'
+          Не могу открыть файл
+
+    `mglWarnLId'
+          Light: ID вне допустимых значений
+
+    `mglWarnSize'
+          Setsize: размер(ы) равны нулю или отрицательны
+
+    `mglWarnFmt'
+          Формат не поддерживается
+
+ -- Устаревшая переменная of mglGraph: `int' WarnCode
+     Код сообщения о причине отсутствия графика.
+
+
+File: mathgl_ru.info,  Node: Other settings,  Prev: Error handling,  Up: Graphics setup
+
+3.1.10 Прочие настройки
+--------------------------------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetMeshNum (`int' val)
+ -- Функция С: `void' mgl_set_meshnum (`HMGL' gr, `int' num)
+     Задает ориентировочное число линий в Mesh(), Fall(), Grid() и
+     число стрелок (штрихов) в Vect(), Dew() и число ячеек в Cloud*().
+     По умолчанию (=0) рисуются все линии, стрелки, ячейки.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetAxialDir (`char'
+          val)
+ -- Функция С: `' mgl_set_axial_dir (`HMGL' gr, `char' dir)
+     Задает ось вращения для Axial() и Torus(). По умолчанию это 'z'.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetDrawFace (`bool'
+          val)
+ -- Функция С: `void' mgl_set_draw_face (`HMGL' gr, `int' val)
+     Запрещает/разрешает рисование граней. Запрет вывода граней
+     позволяет ускорить рисование (например для вращения картинки).
+
+ -- Переменная(C++) of mglGraph: `const char *' PlotId
+     Идентификатор рисунка для сохранения в файл.
+
+ -- _Устаревшая переменная_ of mglGraph: `int' MeshNum
+     Число линий, стрелок, ячеек. См. `SetMeshNum()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `char' AxialDir
+     Ось вращения. См. `SetAxialDir()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `bool' DrawFace
+     Флаг запрета рисования граней. См. `SetDrawFace()'.
+
+ -- Переменная(C++) of mglGraph: `int' CirclePnts
+     Число точек при аппроксимации окружности в *note Primitives
+     drawing::, *note Tube::, *note Pipe:: и т.д. По умолчанию 40.
+
+ -- Переменная(C++) of mglGraph: `int' GridPnts
+     Число точек при построении линий сеток - важно для криволинейных
+     координат. По умолчанию 50.
+
+
+File: mathgl_ru.info,  Node: Axis settings,  Next: Transformation matrix,  Prev: Graphics setup,  Up: MathGL core
+
+3.2 Настройки осей координат
+==================================================
+
+Эти функции управляет видом и масштабом осей координат. Перед
+построением для каждой точки выполняются 3 преобразования: сначала
+определяется возможность рисования точки (*note Cutting::), далее
+применяются формулы перехода к криволинейным координатам и наконец
+точка отображается.
+
+* Menu:
+
+* Ranges (bounding box)::
+* Transformation::
+* Ticks::
+
+
+File: mathgl_ru.info,  Node: Ranges (bounding box),  Next: Transformation,  Up: Axis settings
+
+3.2.1 Масштаб осей координат
+------------------------------------------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetRanges (`float'
+          x1, `float' x2, `float' y1, `float' y2, `float' z1=`0',
+          `float' z2=`0')
+ -- Метод класса `mglGraph' (C++): `void' Axis (`mglPoint' min,
+          `mglPoint' max, `mglPoint' org=`mglPoint(NAN,NAN,NAN)')
+ -- Функция С: `void' mgl_set_axis_2d (`HMGL' gr, `float' x1, `float'
+          y1, `float' x2, `float' y2)
+ -- Функция С: `void' mgl_set_axis_3d (`HMGL' gr, `float' x1, `float'
+          y1, `float' z1, `float' x2, `float' y2, `float' z2)
+     Безопасным образом задает значения переменных MIN, MAX и ORG. Если
+     минимальное и максимальное значение координаты равны, то они
+     игнорируются по данному направлению. Эта функция также
+     устанавливает размер цветовой шкалы CMIN=`Min.z' и CMAX=`Max.z' -
+     это режим по умолчанию для 2d графиков.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetCRange (`float'
+          min, `float' max)
+ -- Метод класса `mglGraph' (C++): `void' CAxis (`float' min, `float'
+          max)
+ -- Функция С: `void' mgl_set_caxis (`HMGL' gr, `float' min, `float'
+          max)
+     Задает масштаб цветовой шкалы. Эти значения используются для
+     определения цвета поверхностей и прочих 2D и 3D графиков.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' XRange (`const
+          mglData &' dat, `bool' add=`false', `float' fact=`0')
+ -- Функция С: `void' mgl_set_xrange (`HMGL' gr, `const HMDT' a, `int'
+          add)
+     Задает масштаб по оси X как минимальное и максимальное значение
+     массива A. Параметр ADD указывает добавлять новый диапазон к
+     существующему или заменять его. Параметр FACT дополнительно
+     расширяет диапазон на величину (MAX-MIN)*FACT.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' YRange (`const
+          mglData &' dat, `bool' add=`false', `float' fact=`0')
+ -- Функция С: `void' mgl_set_yrange (`HMGL' gr, `const HMDT' a, `int'
+          add)
+     Задает масштаб по оси Y как минимальное и максимальное значение
+     массива A. Параметр ADD указывает добавлять новый диапазон к
+     существующему или заменять его. Параметр FACT дополнительно
+     расширяет диапазон на величину (MAX-MIN)*FACT.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ZRange (`const
+          mglData &' dat, `bool' add=`false', `float' fact=`0')
+ -- Функция С: `void' mgl_set_zrange (`HMGL' gr, `const HMDT' a, `int'
+          add)
+     Задает масштаб по оси Z как минимальное и максимальное значение
+     массива A. Параметр ADD указывает добавлять новый диапазон к
+     существующему или заменять его. Параметр FACT дополнительно
+     расширяет диапазон на величину (MAX-MIN)*FACT.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' CRange (`const
+          mglData &' dat, `bool' add=`false', `float' fact=`0')
+ -- Функция С: `void' mgl_set_crange (`HMGL' gr, `const HMDT' a, `int'
+          add)
+     Задает цветовой масштаб как минимальное и максимальное значение
+     массива A. Параметр ADD указывает добавлять новый диапазон к
+     существующему или заменять его. Параметр FACT дополнительно
+     расширяет диапазон на величину (MAX-MIN)*FACT.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetAutoRanges
+          (`float' x1, `float' x2, `float' y1=`0', `float' y2=`0',
+          `float' z1=`0', `float' z2=`0')
+ -- Функция С: `void' mgl_set_auto (`HMGL' gr, `float' x1, `float' x2,
+          `float' y1, `float' y2, `float' z1, `float' z2)
+     Задает масштаб "автоматических" (не указанных явно) переменных.
+     Функция меняет значения MIN, MAX буз вызова RecalcBorder(). Если
+     минимальное и максимальное значение координаты равны, то они
+     игнорируются по данному направлению. Замечу, что этот масштаб
+     становится масштабом осей при следующем вызове функций
+     [XYZ]Range().
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetOrigin (`float'
+          x0, `float' y0, `float' z0=`NAN')
+ -- Функция С: `void' mgl_set_origin (`HMGL' gr, `float' x0, `float'
+          y0, `float' z0)
+     Задает центр пересечения осей координат. Если одно из значений
+     равно NAN, то MathGL попытается выбрать оптимальное положение осей
+     координат по этому направлению.
+
+ -- Метод класса `mglGraph' (C++): `void' RecalcBorder ()
+     Повторно вычисляет внутренние параметры для правильного применения
+     функций перехода в криволинейную систему координат. *Должна быть
+     вызвана* после каждого прямого изменения переменных MIN, MAX, FX,
+     FY, FZ если их изменение должно отразиться на графике.
+
+ -- Переменная(C++) of mglGraph: `mglPoint' Min, Max
+     Масштаб осей координат. Эти переменные используются также для
+     определения диапазона "автоматических" массивов (массивов не
+     указанных явно при построении графика). Вы можете изменить их
+     перед построением графика и потом вернуть их назад. В результате
+     график будет в указанном диапазоне, а не в диапазоне осей
+     координат. *НО* если вы хотите поменять масштаб осей, то вы
+     *должны* вызвать функцию `RecalcBorder();'.
+
+ -- Переменная(C++) of mglGraph: `float' Cmin, Cmax
+     Масштаб цветовой шкалы. См. `CAxis(), CRange()'.
+
+ -- Переменная(C++) of mglGraph: `mglPoint' Org
+     Центр пересечения осей координат. См. `SetOrigin()'.
+
+ -- Переменная(C++) of mglGraph: `bool' AutoOrg
+     Флаг для автоматического сдвига осей координат если их центр
+     пересечения лежит вне диапазона осей координат MIN ... MAX.
+
+
+File: mathgl_ru.info,  Node: Transformation,  Next: Ticks,  Prev: Ranges (bounding box),  Up: Axis settings
+
+3.2.2 Криволинейные координаты
+-----------------------------------------------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetFunc (`const char
+          *'EqX, `const char *'EqY, `const char *'EqZ=`""', `const char
+          *'EqA=`""')
+ -- Функция С: `void' mgl_set_func (`HMGL' gr, `const char *'EqX,
+          `const char *'EqY, `const char *'EqZ)
+ -- Функция С: `void' mgl_set_func_ext (`HMGL' gr, `const char *'EqX,
+          `const char *'EqY, `const char *'EqZ, `const char *'EqA)
+     Задает формулы перехода к криволинейным координатам. Каждая строка
+     является математическим выражением, зависящим от старых координат
+     `x', `y', `z' и `a' или `c' для цветовой шкалы. Например, для
+     цилиндрических координат будет `Axis("x*cos(y)", "x*sin(y)",
+     "z");'. Для удаления формул соответствующий параметр должен быть
+     пустым или `NULL'. Использование формул преобразования слегка
+     замедляет программу, т.е.. `Axis("", "", "")' быстрее чем
+     `Axis("1*x", "1*y", "1*z")'. Параметр EQA задает аналогичную
+     формулу для цветовой шкалы. *Note Textual formulas::.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetCoor (`int' how)
+ -- Функция С: `void' mgl_set_coor (`HMGL' gr, `int' how)
+     Устанавливает одну из предопределенных систем криволинейных
+     координат в зависимости от параметра HOW: `mglCartesian=0' -
+     декартова система (нет преобразования координат, наиболее
+     быстрая); `mglPolar=1' - полярные координаты
+     x_n=x*cos(y),y_n=x*sin(y), z_n=z; `mglSpherical=2' - сферические
+     координаты x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y);
+     `mglParabolic=3' - параболические координаты x_n=x*y,
+     y_n=(x*x-y*y)/2, z_n=z; `mglParaboloidal=4' - Paraboloidal
+     coordinates x_n=(x*x-y*y)*cos(z)/2, y_n=(x*x-y*y)*sin(z)/2,
+     z_n=x*y; `mglOblate=5' - Oblate coordinates
+     x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z),
+     z_n=sinh(x)*sin(y); `mglProlate=6' - Prolate coordinates
+     x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z),
+     z_n=cosh(x)*cos(y); `mglElliptic=7' - эллиптические координаты
+     x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z; `mglToroidal=8' -
+     тороидальные координаты x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)),
+     y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y));
+     `mglBispherical=9' - бисферические координаты
+     x_n=sin(y)*cos(z)/(cosh(x)-cos(y)),
+     y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y));
+     `mglBipolar=10' - биполярные координаты
+     x_n=sinh(x)/(cosh(x)-cos(y)), y_n=sin(y)/(cosh(x)-cos(y)), z_n=z.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Ternary (`bool' tern)
+ -- Функция С: `void' mgl_set_ternary (`HMGL' gr, `int' tern)
+     Задает рисование треугольных (Ternary) осей координат. Это
+     специальный тип графика для 3 зависимых координат (компонент) A,
+     B, C таких, что A+B+C=1. MathGL использует только 2 независимые
+     координаты A=x и B=y поскольку их достаточно для построения всех
+     графиков. При этом третья координата z является независимым
+     параметром для построения линий уровня, поверхностей и т.д. См.
+     раздел *note Ternary plot sample::, для примеров кода и графика.
+
+
+File: mathgl_ru.info,  Node: Ticks,  Prev: Transformation,  Up: Axis settings
+
+3.2.3 Метки осей
+-------------------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' AdjustTicks (`const
+          char *'dir=`"xyz"')
+ -- Функция С: `void' mgl_adjust_ticks (`HMGL' gr, `const char *'dir)
+     Автоматически задает шаг меток осей, число подметок и начальное
+     положение меток для осей координат DIR в виде наиболее удобном для
+     человека. Также задает `SetTuneTicks(true)'.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetTicks (`char' dir,
+          `float' d=`-5', `int' ns=`0', `float' org=`NAN')
+ -- Функция С: `void' mgl_set_ticks_dir (`HMGL' gr, `char' dir, `float'
+          d, `int' ns, `float' org)
+ -- Функция С: `void' mgl_set_ticks (`HMGL' gr, `float' dx, `float' dy,
+          `float' dz)
+ -- Функция С: `void' mgl_set_subticks (`HMGL' gr, `int' nx, `int' ny,
+          `int' nz)
+ -- Функция С: `void' mgl_set_tick_origin (`HMGL' gr, `float' x0,
+          `float' y0, `float' z0)
+     Задает шаг меток осей D, число подметок NS и начальное положение
+     меток ORG для оси вдоль направления DIR (используйте 'c' для меток
+     colorbar). Переменная D задает шаг меток (если положительна) или
+     их число на оси (если отрицательна). Нулевое значение задает
+     логарифмические метки. Если ORG=`NAN', то используется значение из
+     переменной ORG.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetTicksVal (`char'
+          dir, `int' n, `float *'val, `const char **'lbl)
+ -- Метод класса `mglGraph' (C++, Python): `void' SetTicksVal (`char'
+          dir, `int' n, `float *'val, `const wchar_t **'lbl)
+ -- Метод класса `mglGraph' (C++): `void' SetTicksVal (`char' dir,
+          `int' n, `float' val1, `wchar_t *'lbl1, ...)
+ -- Функция С: `void' mgl_set_ticks_vals (`HMGL' gr, `char' dir, `int'
+          n, `float *'val, `const char **'lbl)
+ -- Функция С: `void' mgl_set_ticks_val (`HMGL' gr, `char' dir, `int'
+          n, `double' val, `const char *'lbl, ...)
+     Задает явное положение VAL и подписи LBL для N меток вдоль оси
+     DIR. Массивы VAL и LBL должны содержать N элементов. Используйте
+     `SetTicks()' для восстановления автоматических меток. Вы должны
+     быть *очень осторожны* и использовать числа с плавающей точкой (а
+     _не целые!!!_) для положения меток - из-за ограничений передачи
+     аргументов в библиотеке stdarg. См. раздел *note Manual ticks
+     sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetTuneTicks (`bool'
+          tune, `float' pos=`1.15')
+ -- Функция С: `void' mgl_tune_ticks (`HMGL' gr, `bool' tune, `float'
+          pos)
+     Включает/выключает улучшение вида меток осей путем вынесения
+     общего множителя (для маленьких, типа 0.001...0.002, или больших,
+     типа 1000...2000, значений координат) или общей компоненты (для
+     узкого диапазона, типа 0.999...1.000). Также задает положение POS
+     общего множителя на оси: =0 около минимального значения, =1 около
+     максимального значения.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetXTT (`const char
+          *'xtt)
+ -- Метод класса `mglGraph' (C++, Python): `void' SetYTT (`const char
+          *'ytt)
+ -- Метод класса `mglGraph' (C++, Python): `void' SetZTT (`const char
+          *'ztt)
+ -- Метод класса `mglGraph' (C++, Python): `void' SetCTT (`const char
+          *'ctt)
+ -- Метод класса `mglGraph' (C++, Python): `void' SetXTT (`const
+          wchar_t *'xtt)
+ -- Метод класса `mglGraph' (C++, Python): `void' SetYTT (`const
+          wchar_t *'ytt)
+ -- Метод класса `mglGraph' (C++, Python): `void' SetZTT (`const
+          wchar_t *'ztt)
+ -- Метод класса `mglGraph' (C++, Python): `void' SetCTT (`const
+          wchar_t *'ctt)
+ -- Функция С: `void' mgl_set_xttw (`HMGL' gr, `const wchar_t *'xtt)
+ -- Функция С: `void' mgl_set_yttw (`HMGL' gr, `const wchar_t *'ytt)
+ -- Функция С: `void' mgl_set_zttw (`HMGL' gr, `const wchar_t *'ztt)
+ -- Функция С: `void' mgl_set_cttw (`HMGL' gr, `const wchar_t *'ctt)
+ -- Функция С: `void' mgl_set_xtt (`HMGL' gr, `const wchar_t *'xtt)
+ -- Функция С: `void' mgl_set_ytt (`HMGL' gr, `const wchar_t *'ytt)
+ -- Функция С: `void' mgl_set_ztt (`HMGL' gr, `const wchar_t *'ztt)
+ -- Функция С: `void' mgl_set_ctt (`HMGL' gr, `const wchar_t *'ctt)
+     Задает шаблоны для меток вдоль x-,y-,z-оси или colorbar. Шаблон
+     может содержать и символы TeX. Если XTT, YTT, ZTT, CTT=`""', то
+     используется шаблон по умолчанию (в простейшем случае `%.2g').
+     Установка шаблона выключает автоматическое улучшение вида меток
+     (См. `SetTuneTicks()').
+
+ -- _Устаревшая переменная_ of mglGraph: `float' dx, dy, dz
+     Шаг меток осей. См. `SetTicks()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `int' NSx, NSy, NSz
+     Число подметок. См. `SetTicks()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `mglPoint' OrgT
+     Начальная точка для меток. См. `SetTicks()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `bool' TuneTicks
+     Флаг автоматического улучшения меток. См. `SetTuneTicks()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `float' FactorPos
+     Положение общего множителя. См. `SetTuneTicks()'.
+
+
+File: mathgl_ru.info,  Node: Transformation matrix,  Next: Export to file,  Prev: Axis settings,  Up: MathGL core
+
+3.3 Матрица преобразования
+===============================================
+
+Эти функции контролируют где и как график будет расположен. Существует
+определенный порядок вызова этих функций для лучшего вида графика.
+Вначале должны вызываться функции SubPlot() или InPlot() для указания
+местоположения вывода. После них - функции вращения Rotate() и сжатия
+Aspect(). И наконец любые другие функции для рисования графика. Вместо
+вращения графика можно вызвать функцию ColumnPlot() для расположения
+графиков в столбец одного над другим без зазора между осями.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SubPlot (`int' nx,
+          `int' ny, `int' m, `float' dx=`0', `float' dy=`0')
+ -- Функция С: `void' mgl_subplot (`HMGL' gr, `int' nx, `int' ny, `int'
+          m)
+ -- Функция С: `void' mgl_subplot_d (`HMGL' gr, `int' nx, `int' ny,
+          `int' m, `float' dx, `float' dy)
+     Помещает последующий вывод в M-ую ячейку сетки размером NX*NY от
+     всего рисунка. Функция сбрасывает матрицу трансформации (повороты
+     и сжатие графика) и должна вызываться первой для создания
+     "подграфика". С эстетической точки зрения не рекомендуется
+     вызывать эту функцию с различными (или не кратными) размерами
+     сетки. Ячейка может быть дополнительно сдвинута относительно
+     своего обычного положения на относительный размер DX, DY.
+
+ -- Method on `mglGraph' (C++, Python): `void' SubPlot (`int' nx, `int'
+          ny, `int' m, `const char *'style)
+ -- C function: `void' mgl_subplot_s (`HMGL' gr, `int' nx, `int' ny,
+          `int' m, `const char *'style)
+     Аналогично предыдущему, но место для осей/colorbar резервируется
+     только если строка STYLE содержит: `L' или `<' - с левого края,
+     `R' или `>' - с правого края, `A' или `^' - с верхнего края, `U'
+     или `_' - с нижнего края.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' InPlot (`float' x1,
+          `float' x2, `float' y1, `float' y2, `bool' rel=`false')
+ -- Функция С: `void' mgl_inplot (`HMGL' gr, `float' x1, `float' x2,
+          `float' y1, `float' y2)
+ -- Функция С: `void' mgl_relplot (`HMGL' gr, `float' x1, `float' x2,
+          `float' y1, `float' y2)
+     Помещает последующий вывод в прямоугольную область [X1, X2]*[Y1,
+     Y2] (исходный размер [0,1]*[0,1]). Эта функция позволяет поместить
+     график в произвольную область рисунка. Если параметр REL=`true',
+     то используется позиция относительно текщего SubPlot() (или
+     InPlot() с REL=`false'). Функция сбрасывает матрицу трансформации
+     (повороты и сжатие графика) и должна вызываться первой для
+     создания "подграфика".
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ColumnPlot (`int'
+          num, `int' ind, `float' d=`0')
+ -- Функция С: `void' mgl_columnplot (`HMGL' gr, `int' num, `int' ind)
+ -- Функция С: `void' mgl_columnplot (`HMGL' gr, `int' num, `int' ind,
+          `float' d)
+     Помещает последующий вывод в IND-ую строку столбца из NUM строк.
+     Положение столбца выбирается относительно последнего вызова
+     SubPlot() (или InPlot() с REL=`false'). Параметр D задает
+     дополнительный зазор между строк. См. раздел *note ColumnPlot
+     sample::, для примеров кода и графика.
+
+ -- Method on `mglGraph' (C++, Python): `void' StickPlot (`int' num,
+          `int' ind, `float' tet, `float' phi)
+ -- C function: `void' mgl_stickplot (`HMGL' gr, `int' num, `int' ind,
+          `float' tet, `float' phi)
+     Помещает последующий вывод в IND-ую ячейку "бруска" из NUM ячеек.
+     При этом сам брусок повернут на углы TET, PHI. Положение
+     выбирается относительно последнего вызова SubPlot() (или InPlot()
+     с REL=`false'). См. раздел *note StickPlot sample::, для примеров
+     кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Rotate (`float' TetX,
+          `float' TetZ, `float' TetY=`0')
+ -- Функция С: `void' mgl_rotate (`HMGL' gr, `float' TetX, `float'
+          TetZ, `float' TetY)
+     Вращает систему координат относительно осей {x, z, y}
+     последовательно на углы TETX, TETZ, TETY.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' RotateN (`float' Tet,
+          `float' x, `float' y, `float' z)
+ -- Функция С: `void' mgl_rotate_vector (`HMGL' gr, `float Tet', `float
+          x', `float y', `float z')
+     Вращает систему координат относительно вектора {X, Y, Z} на угол
+     TET.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Aspect (`float' Ax,
+          `float' Ay, `float' Az)
+ -- Функция С: `void' mgl_aspect (`HMGL' gr, `float' Ax, `float' Ay,
+          `float' Az)
+     Устанавливает соотношение размеров осей в отношении AX:AY:AZ. Для
+     лучшего вида следует вызывать после функции Rotate().
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Perspective (`float'
+          a)
+ -- Функция С: `void' mgl_perspective (`HMGL' gr, `float' a)
+     Добавляет (включает) перспективу для графика. Параметр a ~
+     1/z_{eff} \in [0,1). По умолчанию (`a=0') перспектива отключена.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Identity (`bool'
+          rel=`false')
+ -- Функция С: `void' mgl_identity (`HMGL' gr, `int' rel)
+     Сбрасывает матрицу трансформации. Эквивалентно вызову
+     `InPlot(0,1,0,1,rel)'.
+
+ -- Method on `mglGraph' (C++, Python): `void' Push ()
+ -- C function: `void' mgl_mat_push (`HMGL' gr)
+     Помещает матрицу преобразования в стек. Позднее вы можете
+     восстановить текущее состояние с помощью функции Pop(). Стек может
+     содержать до 10 матриц.
+
+ -- Method on `mglGraph' (C++, Python): `void' Pop ()
+ -- C function: `void' mgl_mat_pop (`HMGL' gr)
+     Заменяет (восстанавливает) матрицу преобразования на последнюю
+     помещенную в стек матрицу.
+
+
+File: mathgl_ru.info,  Node: Export to file,  Next: Primitives drawing,  Prev: Transformation matrix,  Up: MathGL core
+
+3.4 Экспорт в файл
+==============================
+
+Эти функции экспортируют текущую картинку (кадр) в файл. Имя файла
+FNAME должно иметь соответствующее расширение. Параметр DESCR дает
+краткое описание картинки. Пока прозрачность поддерживается только для
+форматов PNG, SVG и IDTF.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' WriteFrame (`const
+          char *'fname=`""', `const char *'descr=`""')
+ -- Функция С: `void' mgl_write_frame (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+     Экспортирует текущий кадр в файл FNAME с типом, определяемым по
+     расширению. Параметр DESCR добавляет описание (может быть пустым).
+     Если FNAME пустой, то используется имя `frame####.jpg', где `####'
+     - текущий номер кадра и имя `frame' определяется переменной PLOTID.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' WritePNG (`const char
+          *'fname, `const char *'descr=`""', `int' compr=`""', `bool'
+          alpha=`true')
+ -- Функция С: `void' mgl_write_png (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+ -- Функция С: `void' mgl_write_png_solid (`HMGL' gr, `const char
+          *'fname, `const char *'descr)
+     Экспортирует текущий кадр в PNG файл. Параметры функции следующие:
+     FNAME - имя файла, DESCR - описание файла, ALPHA - прозрачность
+     фона.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' WriteJPEG (`const
+          char *'fname, `const char *'descr=`""')
+ -- Функция С: `void' mgl_write_jpg (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+     Экспортирует текущий кадр в JPEG файл. Параметры функции
+     следующие: FNAME - имя файла, DESCR - описание файла. Если при
+     компиляции MathGL не был определен флаг HAVE_JPEG, то экспорт в
+     файл не производится.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' WriteGIF (`const char
+          *'fname, `const char *'descr=`""')
+ -- Функция С: `void' mgl_write_gif (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+     Экспортирует текущий кадр в GIF файл. Параметры функции следующие:
+     FNAME - имя файла, DESCR - описание файла. Если при компиляции
+     MathGL не был определен флаг HAVE_GIF, то экспорт в файл не
+     производится.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' WriteBMP (`const char
+          *'fname, `const char *'descr=`""')
+ -- Функция С: `void' mgl_write_bmp (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+     Экспортирует текущий кадр в BMP файл. Параметры функции следующие:
+     FNAME - имя файла, DESCR - описание файла.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' WriteEPS (`const char
+          *'fname, `const char *'descr=`""')
+ -- Функция С: `void' mgl_write_eps (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+     Экспортирует текущий кадр в EPS файл, используя векторное
+     представление графика (класс mglGraphPS). Вследствие чего не
+     рекомендуется сохранять большие графики (поверхности, а особенно
+     поверхности уровня) в формате EPS из-за большого размера файла.
+     Хотя никаких внутренних ограничений на размер выходного файла нет.
+     Для них лучше использовать растровый формат (например, PNG или
+     JPEG). Параметры функции следующие: FNAME - имя файла, DESCR -
+     описание файла. Если имя файла оканчивается на `z' (например,
+     `fname.eps.gz'), то файл автоматически архивируется в формате gzip.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' WriteSVG (`const char
+          *'fname, `const char *'descr=`""')
+ -- Функция С: `void' mgl_write_svg (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+     Экспортирует текущий кадр в SVG файл, используя векторное
+     представление графика (класс mglGraphPS). Вследствие чего не
+     рекомендуется сохранять большие графики (поверхности, а особенно
+     поверхности уровня) в формате SVG из-за большого размера файла.
+     Хотя никаких внутренних ограничений на размер выходного файла нет.
+     Для них лучше использовать растровый формат (например, PNG или
+     JPEG). Параметры функции следующие: FNAME - имя файла, DESCR -
+     описание файла. Если имя файла оканчивается на `z' (например,
+     `fname.svgz'), то файл автоматически архивируется в формате gzip.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' WriteIDTF (`const
+          char *'fname, `const char *'descr=`""')
+ -- Функция С: `void' mgl_write_idtf (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+     Экспортирует текущий кадр в IDTF файл, используя векторное
+     представление графика (класс mglGraphIDTF). Параметры функции
+     следующие: FNAME - имя файла, DESCR - описание файла.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ShowImage (`const
+          char *'viewer=`"kuickshow"', `bool' nowait=`false')
+ -- Функция С: `void' mgl_show_image (`const char *'viewer, `int'
+          nowait)
+     Отображает текущий кадр используя внешнюю программу просмотра
+     VIEWER. Функция сохраняет картинку во временный файл и вызывает
+     VIEWER для его отображения. Если NOWAIT=`true', то функция
+     возвращает управление немедленно - не ждет пока окно просмотра
+     будет закрыто.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetSize (`int' width,
+          `int' height)
+ -- Функция С: `void' mgl_set_size (`HMGL' gr, `int' width, `int'
+          height)
+     Изменяет размер картинки в пикселях. Функция должна вызываться
+     *перед* любыми функциями построения потому что полностью очищает
+     содержимое рисунка.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Flush ()
+ -- Функция С: `void' mgl_flush (`HMGL' gr)
+     Завершает рисование текущих графических команд, подготавливает
+     кадр к экспорту в файл и служит для разделения объектов в
+     mglGraphIDTF. Однако обычно данная функция вызывается внутри
+     библиотеки.
+
+ -- Метод класса `mglGraph' (C++): `void' Finish ()
+     Завершает рисование и готовит растровое изображение.
+
+
+File: mathgl_ru.info,  Node: Primitives drawing,  Next: Text printing,  Prev: Export to file,  Up: MathGL core
+
+3.5 Рисование примитивов
+===========================================
+
+Эти функции рисуют рисуют простые объекты типа линий, точек, сфер,
+капель, конусов, и т.д.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Clf (`mglColor'
+          Back=`WC')
+ -- Функция С: `void' mgl_clf (`HMGL' gr)
+ -- Функция С: `void' mgl_clf_rgb (`HMGL' gr, `float' r, `float' g,
+          `float' b)
+     Очищает рисунок и заполняет его цветом BACK.
+
+ -- Метод класса `mglGraph' (C++): `void' Ball (`float' x, `float' y,
+          `float' z, `mglColor' col=`RC', `float' alpha=`1')
+ -- Метод класса `mglGraph' (C++): `void' Ball (`mglPoint' p, `char'
+          col=`'r'')
+ -- Метод класса `mglGraph' (Python): `void' Ball (`float' x, `float'
+          y, `float' z, `char' col=`'r'')
+ -- Функция С: `void' mgl_ball (`HMGL' gr, `float' x, `float' y,
+          `float' z)
+ -- Функция С: `void' mgl_ball_rgb (`HMGL' gr, `float' x, `float' y,
+          `float' z, `float' r, `float' g, `float' b, `float' alpha)
+ -- Функция С: `void' mgl_ball_str (`HMGL' gr, `float' x, `float' y,
+          `float' z, `char' col)
+     Рисует точку (шарик) с координатами P={X, Y, Z} и цветом COL.
+
+ -- Метод класса `mglGraph' (C++): `void' Error (`mglPoint' p,
+          `mglPoint' e, `char' *pen=`""')
+     Рисует 3d error box в точке P размером E и стилем PEN.
+
+ -- Метод класса `mglGraph' (C++): `void' Line (`mglPoint' p1,
+          `mglPoint' p2, `char *'stl=`"B"', `int'num=`2')
+ -- Метод класса `mglGraph' (Python): `void' Line (`float' x1, `float'
+          y1, `float' z1, `float' x2, `float' y2, `float' z2, `char
+          *'stl=`"B"', `int'num=`2')
+ -- Функция С: `void' mgl_line (`HMGL' gr, `float' x1, `float' y1,
+          `float' z1, `float' x2, `float' y2, `float' z2, `char *'stl,
+          `int'num)
+     Рисует геодезическую линию (декартовых координатах - прямую) из
+     точки P1 в P2 использую стиль линии STL. Параметр NUM определяет
+     гладкость линии (число точек на линии). Если NUM=`2', то рисуется
+     прямая даже в криволинейных координатах. Наоборот, для больших
+     значений (например, =`100') рисуется геодезическая линия
+     (окружность в полярных координатах, парабола в параболических и
+     т.д.). Линия рисуется даже если часть ее лежит вне диапазона осей
+     координат.
+
+ -- Метод класса `mglGraph' (C++): `void' Curve (`mglPoint' p1,
+          `mglPoint' d1, `mglPoint' p2, `mglPoint' d2, `const char
+          *'stl=`"B"', `int' num=`100')
+ -- Метод класса `mglGraph' (Python): `void' Curve (`float' x1, `float'
+          y1, `float' z1, `float' dx1, `float' dy1, `float' dz1,
+          `float' x2, `float' y2, `float' z2, `float' dx2, `float' dy2,
+          `float' dz2, `const char *'stl=`"B"', `int' num=`100')
+ -- Функция С: `void' mgl_curve (`HMGL' gr, `float' x1, `float' y1,
+          `float' z1, `float' dx1, `float' dy1, `float' dz1, `float'
+          x2, `float' y2, `float' z2, `float' dx2, `float' dy2, `float'
+          dz2, `const char *'stl, `int' num)
+     Рисует кривую Безье из точки P1 в P2 используя стиль линии STL.
+     Касательные в точках пропорциональны D1, D2. Параметр NUM
+     определяет гладкость линии (число точек на линии). Кривая рисуется
+     даже если часть ее лежит вне диапазона осей координат.
+
+ -- Метод класса `mglGraph' (C++): `void' Face (`mglPoint' p1,
+          `mglPoint' p2, `mglPoint' p3, `mglPoint' p4, `const char
+          *'stl=`"w"', `int' num=`2', `float' val=`NAN')
+     Рисует заполненный четырехугольник (грань) с углами в точках P1,
+     P2, P3, P4 и цветом(-ами) STL. При этом цвет может быть один для
+     всей грани, или различным если указаны все 4 цвета. В последнем
+     случае параметр VAL (если не `NAN') задает цвет в соответствии с
+     цветовой схемой. Грань будет нарисована даже если часть ее лежит
+     вне диапазона осей координат.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' FaceX (`float' x0,
+          `float' y0, `float' z0, `float' wy, `float' wz, `const char
+          *'stl=`"w"', `float' dx=`0', `float' dy=`0')
+ -- Метод класса `mglGraph' (C++, Python): `void' FaceY (`float' x0,
+          `float' y0, `float' z0, `float' wx, `float' wz, `const char
+          *'stl=`"w"', `float' dx=`0', `float' dy=`0')
+ -- Метод класса `mglGraph' (C++, Python): `void' FaceZ (`float' x0,
+          `float' y0, `float' z0, `float' wx, `float' wy, `const char
+          *'stl=`"w"', `float' dx=`0', `float' dy=`0')
+ -- Функция С: `void' mgl_facex (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `float' wy, `float' wz, `const char *'stl,
+          `float' d1, `float' d2)
+ -- Функция С: `void' mgl_facey (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `float' wx, `float' wz, `const char *'stl,
+          `float' d1, `float' d2)
+ -- Функция С: `void' mgl_facez (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `float' wx, `float' wy, `const char *'stl,
+          `float' d1, `float' d2)
+     Рисует закрашенный прямоугольник (грань) перпендикулярно оси
+     [x,y,z] в точке {X0, Y0, Z0} цветом STL и шириной WX, WY, WZ вдоль
+     соответствующего направления. При этом цвет может быть один для
+     всей грани, или различным для разных вершин если указаны все 4
+     цвета. Параметры D1!=0, D2!=0 задают дополнительный сдвиг
+     последней точки (т.е. рисуют четырехугольник).Грань будет
+     нарисована даже если часть ее лежит вне диапазона осей координат.
+
+ -- Метод класса `mglGraph' (C++): `void' Sphere (`mglPoint' p, `float'
+          r, `const char *'stl=`"r"')
+ -- Метод класса `mglGraph' (Python): `void' Sphere (`float' x0,
+          `float' y0, `float' z0, `float' r, `const char *'stl=`"r"')
+ -- Функция С: `void' mgl_sphere (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `float' r, `const char *'stl)
+     Рисует сферу радиуса R с центром в точке P={X, Y, Z} цветом STL.
+
+ -- Метод класса `mglGraph' (C++): `void' Drop (`mglPoint' p,
+          `mglPoint' q, `float' r, `mglColor' col, `float' shift=`1',
+          `float' ap=`1')
+ -- Метод класса `mglGraph' (C++): `void' Drop (`mglPoint' p,
+          `mglPoint' q, `float' r, `const char *'col="r", `float'
+          shift=`1', `float' ap=`1')
+ -- Метод класса `mglGraph' (Python): `void' Drop (`float' x0, `float'
+          y0, `float' z0, `float' dx, `float' dy, `float' dz, `float'
+          r, `const char *'col="r", `float' shift=`1', `float' ap=`1')
+ -- Функция С: `void' mgl_drop (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `float' dx, `float' dy, `float' dz, `float' r,
+          `const char *'col, `float' shift, `float' ap)
+     Рисует каплю радиуса R в точке P вытянутую вдоль направления Q
+     цветом COL. Параметр SHIFT определяет степень вытянутости: `0' -
+     сфера, `1' - классическая капля. Параметр AP определяет
+     относительную ширину капли (аналог "эллиптичности" для сферы). См.
+     раздел *note Drops sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++): `void' Cone (`mglPoint' p1,
+          `mglPoint' p2, `float' r1, `float' r2=`-1', `const char
+          *'stl=`"B"', `bool' edge=`false')
+ -- Метод класса `mglGraph' (Python): `void' Cone (`float' x1, `float'
+          y1, `float' z1, `float' x2, `float' y2, `float' z2, `float'
+          r1, `float' r2=`-1', `const char *'stl=`"B"', `bool'
+          edge=`false')
+ -- Функция С: `void' mgl_cone (`HMGL' gr, `float' x1, `float' y1,
+          `float' z1, `float' x2, `float' y2, `float' z2, `float' r1,
+          `float' r2, `const char *'stl, `int' draw_edge)
+     Рисует трубу (или усеченный конус если EDGE=`false') между точками
+     P1, P2 с радиусами на концах R1, R2. Если R2<0, то полагается
+     R2=R1. Цвет конуса задается строкой STL.
+
+ -- Метод класса `mglGraph' (C++): `void' Mark (`mglPoint' p, `char'
+          mark=`'.'')
+ -- Метод класса `mglGraph' (Python): `void' Mark (`float' x, `float'
+          y, `float' z, `char' mark=`'.'')
+ -- Функция С: `void' mgl_mark (`HMGL' gr, `float' x, `float' y,
+          `float' z, `char' mark)
+     Рисует маркер типа MARK в точке P.
+
+ -- Метод класса `mglGraph' (C++): `void' Glyph (`float' x, `float' y,
+          `float' f, `int' nt, `const short *'trig, `int' nl, `const
+          short *'line)
+     Рисует набор треугольников (или линий если TRIG=`NULL') для буквы
+     расположенной в точке {X, Y}. Значения массивов будут нормированы
+     на множитель F. Обычно эта функция используется внутри библиотеки.
+
+
+File: mathgl_ru.info,  Node: Text printing,  Next: Axis and Colorbar,  Prev: Primitives drawing,  Up: MathGL core
+
+3.6 Вывод текста
+===========================
+
+Функции для вывода текста позволяют вывести строку текста в
+произвольном месте рисунка, в произвольном направлении и вдоль
+произвольной кривой. Для низкоуровневого вывода и разбора ТеХ-их
+выражений используется класс mglFont (*note mglFont class::). Он
+позволяет использовать произвольное начертание шрифта и многие ТеХ-ие
+команды (детальнее *note Font styles::). Все функции вывода текста
+имеют варианты для 8-bit строк (`char *') и для Unicode строк (`wchar_t
+*'). В первом случае используется конверсия из текущей локали, т.е.
+иногда вам требуется явно указать локаль с помощью функции
+`setlocale()'. Аргумент SIZE определяет размер текста: размер шрифта
+если положителен или относительный размер (=-SIZE*FONTSIZE) если
+отрицателен. Начертание шрифта (STIX, arial, courier, times и др) можно
+изменить с помощью функций SetFont(), GetFont(). *Note Font settings::.
+
+   Параметры шрифта задаются строкой, которая может содержать символы
+стиля (`rbiwou') и/или выравнивания (`LRC'). Также строка может
+содержать символы цвета `wkrgbcymhRGBCYMHW' (*note Line styles::) после
+символа `:'. Стили шрифта: `r' - прямой, `i' - курсив, `b' - жирный,
+`w' - контурный, `o' - надчеркнутый, `u' - подчеркнутый. По умолчанию
+используется прямой шрифт. Типы выравнивания: `L' - по левому краю (по
+умолчанию), `C' - по центру, `R' - по правому краю. Например, строка
+`iC:b' соответствует курсиву синего цвета с выравниванием по центру.
+
+   Если строка содержит символы `aA', то текст выводится в абсолютных
+координатах (полагаются в диапазоне [0,1]). При этом используются
+координаты относительно рисунка (если указано `A') или относительно
+последнего SubPlot()/InPlot() (если указано `a').
+
+ -- Метод класса `mglGraph' (C++): `void' Puts (`mglPoint' p, `const
+          char *'text, `const char *'font=`""', `float' size=`-1',
+          `char' dir=`0', `float' shift=`0')
+ -- Метод класса `mglGraph' (C++): `void' Putsw (`mglPoint' p, `const
+          wchar_t *'text, `const char *'font=`""', `float' size=`-1',
+          `char' dir=`0', `float' shift=`0')
+ -- Метод класса `mglGraph' (Python): `void' Puts (`float' x, `float'
+          y, `float' z, `const char *'text, `const char *'font=`""',
+          `float' size=`-1', `char' dir=`0')
+ -- Функция С: `void' mgl_puts (`HMGL' gr, `float' x, `float' y,
+          `float' z, `const char *'text)
+ -- Функция С: `void' mgl_putsw (`HMGL' gr, `float' x, `float' y,
+          `float' z, `const wchar_t *'text)
+ -- Функция С: `void' mgl_puts_ext (`HMGL' gr, `float' x, `float' y,
+          `float' z, `const char *'text, `const char *'font, `float'
+          size, `char' dir)
+ -- Функция С: `void' mgl_putsw_ext (`HMGL' gr, `float' x, `float' y,
+          `float' z, `const wchar_t *'text, `const char *'font, `float'
+          size, `char' dir)
+     Выводит строку TEXT от точки P шрифтом определяемым строкой HOW.
+     Параметр DIR указывает дополнительное выравнивание строки: `x' -
+     как метку вдоль оси x, `y' - как метку вдоль оси y, `z' - как
+     метку вдоль оси z, `i' - как метку вдоль оси x с инвертированием,
+     `t' - без выравнивания (по умолчанию), `n' - выровнять в плоскости
+     x-y.
+
+ -- Метод класса `mglGraph' (C++): `float' Puts (`mglPoint' p,
+          `mglPoint' l, `const char *'text, `char'where=`'t'', `float'
+          size=`-1')
+ -- Метод класса `mglGraph' (C++): `float' Putsw (`mglPoint' p,
+          `mglPoint' l, `const wchar_t *'text, `char'where=`'t'',
+          `float' size=`-1')
+ -- Метод класса `mglGraph' (Python): `void' Puts (`float' x, `float'
+          y, `float' z, `float' dx, `float' dy, `float' dz, `const char
+          *'text, `char'where=`'t'', `float' size=`-1')
+ -- Функция С: `void' mgl_puts_dir (`HMGL' gr, `float' x, `float' y,
+          `float' z, `float' dx, `float' dy, `float' dz, `const char
+          *'text, `float' size)
+ -- Функция С: `void' mgl_putsw_dir (`HMGL' gr, `float' x, `float' y,
+          `float' z, `float' dx, `float' dy, `float' dz, `const wchar_t
+          *'text, `float' size)
+     Выводит строку TEXT от точки P вдоль направления L. Параметр WHERE
+     указывает выводить текст над линией (`T') или под ней (`t').
+     Функция возвращает ширину строки.
+
+ -- Метод класса `mglGraph' (C++): `void' Printf (`mglPoint' p, `const
+          char *'arg, ...)
+     Выводит форматированную строку от точки P.
+
+ -- Метод класса `mglGraph' (C++): `void' Label (`float' x, `float' y,
+          `const char *'text, `const char *'font=`""', `float'
+          size=`-1')
+ -- Метод класса `mglGraph' (C++): `void' Labelw (`float' x, `float' y,
+          `const wchar_t *'text, `const char *'font=`""', `float'
+          size=`-1')
+ -- Функция С: `void' mgl_label_xy (`HMGL' gr, `float' x, `float' y,
+          `const char *'text, `const char *'font, `float' size)
+ -- Функция С: `void' mgl_labelw_xy (`HMGL' gr, `float' x, `float' y,
+          `const wchar_t *'text, `const char *'font, `float' size)
+     Выводит строку TEXT в произвольном месте экрана от точки {X, Y}
+     шрифтом указанным FONT. Координаты `x, y' считаются лежащими в
+     диапазоне [0,1].
+
+ -- Метод класса `mglGraph' (C++): `void' Title (`const char *'text,
+          `const char *'font=`0', `float' size=`-2')
+ -- Метод класса `mglGraph' (C++): `void' Title (`const wchar_t *'text,
+          `const char *'font=`0', `float' size=`-2')
+ -- Метод класса `mglGraph' (Python): `void' Title (`const char *'text,
+          `const char *'font=`0', `int' size=`-2')
+ -- Функция С: `void' mgl_title (`HMGL' gr, `const char *'text, `const
+          char *'font, `int' size)
+ -- Функция С: `void' mgl_titlew (`HMGL' gr, `const wchar_t *'text,
+          `const char *'font, `int' size)
+     Выводит строку TEXT как заголовок рисунка (по верху рисунка).
+     Может использоваться из любого места (даже изнутри SubPlot()).
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Text (`const mglData
+          &'y, `const char *'text, `const char *'font=`""', float
+          size=`-1')
+ -- Метод класса `mglGraph' (C++): `void' Text (`const mglData &'y,
+          `const wchar_t *'text, `const char *'font=`""', float
+          size=`-1')
+ -- Метод класса `mglGraph' (C++, Python): `void' Text (`const mglData
+          &'x, `const mglData &'y, `const char *'text, `const char
+          *'font=`""', float size=`-1')
+ -- Метод класса `mglGraph' (C++): `void' Text (`const mglData &'x,
+          `const mglData &'y, `const wchar_t *'text, `const char
+          *'font=`""', float size=`-1')
+ -- Метод класса `mglGraph' (C++, Python): `void' Text (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'text, `const char *'font=`""', float size=`-1')
+ -- Метод класса `mglGraph' (C++): `void' Text (`const mglData &'x,
+          `const mglData &'y, `const mglData &'z, `const wchar_t
+          *'text, `const char *'font=`""', float size=`-1')
+ -- Функция С: `void' mgl_text_y (`HMGL' gr, `const HMDT' y, `const
+          char *'text, `const char *'font, float size)
+ -- Функция С: `void' mgl_text_xy (`const HMDT' x, `const HMDT' y,
+          `const char *'text, `const char *'font, float size)
+ -- Функция С: `void' mgl_text_xyz (`const HMDT' x, `const HMDT' y,
+          `const HMDT' z, `const char *'text, `const char *'font, float
+          size)
+     Выводит строку TEXT вдоль кривой {X[i], Y[i], Z[i]} шрифтом FONT.
+     Строка FONT может содержать символы: `t' для вывода текста под
+     кривой (по умолчанию), или `T' для вывода текста над кривой.
+     Размеры по 1-ой размерности должны быть одинаковы для всех
+     массивов `x.nx=y.nx=z.nx'. Если массив X не указан, то
+     используется "автоматический" массив со значениями в диапазоне
+     [MIN.x, MAX.x] (*note Ranges (bounding box)::). Если массив Z не
+     указан, то используется Z[i] = ZVAL. См. раздел *note Text
+     sample::, для примеров кода и графика.
+
+
+File: mathgl_ru.info,  Node: Axis and Colorbar,  Next: Legend,  Prev: Text printing,  Up: MathGL core
+
+3.7 Оси и Colorbar
+======================
+
+Эти функции рисуют объекты для "измерения" типа осей координат,
+цветовой таблицы (colorbar), сетку по осям, обрамляющий параллелепипед
+и подписи по осям координат. См. также *note Axis settings::.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Axis (`const char
+          *'dir=`"xyz"', `bool' adjust=`false')
+ -- Функция С: `void' mgl_axis (`HMGL' gr, `const char *'dir)
+     Рисует оси координат и метки на них (*note Axis settings::) в
+     направлениях, указанных строкой DIR. Если строка содержит символ
+     `_', то подписи меток отображаться не будут. Шрифт подписей
+     определяется функцией `SetFontDef()' (*note Font settings::).
+     Метки будут "подогнаны" если ADJUST=`true' (с помощью вызова
+     функции `AdjustTicks()').
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Colorbar (`const char
+          *'sch=`""', `int' pos=`0')
+ -- Функция С: `void' mgl_colorbar (`HMGL' gr, `const char *'sch, `int'
+          pos)
+     Рисует полосу соответствия цвета и числовых значений (colorbar)
+     для цветовой схемы SCH (используется текущая для `sch=""') с краю
+     от графика. Параметр POS задает местоположение: `0' - справа (по
+     умолчанию), `1' - слева, `2' - сверху, `3' - снизу. Если строка
+     SCH содержит `<>^_', то параметр POS определяется как: `pos=0' для
+     `>' (справа), `pos=1' для `<' (слева), `pos=2' для `^' (сверху),
+     `pos=3' для `_' (снизу). Если строка содержит `A', то используются
+     абсолютные координаты (относительно рисунка). См. раздел *note
+     Dens sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Colorbar (`const
+          mglData &'v, `const char *'sch=`""', `int' where=`0')
+ -- Функция С: `void' mgl_colorbar_val (`HMGL' gr, `const HMDT' v,
+          `const char *'sch, `int' where)
+     Аналогично предыдущему, но для цветовой схемы без сглаживания с
+     заданными значениями V. См. раздел *note ContD sample::, для
+     примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Colorbar (`const char
+          *'sch, `int' where, `float' x, `float' y, `float' w, `float'
+          h)
+ -- Метод класса `mglGraph' (C++, Python): `void' Colorbar (`int'
+          where, `float' x, `float' y, `float' w, `float' h)
+ -- Функция С: `void' mgl_colorbar_ext (`HMGL' gr, `const char *'sch,
+          `int' where, `float' x, `float' y, `float' w, `float' h)
+     Аналогично первому, но в произвольном месте графика {X, Y}
+     (полагаются в диапазоне [0,1]). Параметры W, H задают
+     относительную ширину и высоту colorbar.
+
+ -- Метод класса `mglGraph' (C++): `void' Colorbar (`const mglData &'v,
+          `const char *'sch, `int' where, `float' x, `float' y, `float'
+          w, `float' h)
+     Аналогично предыдущему, но для цветовой схемы без сглаживания с
+     заданными значениями V.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Grid (`const char
+          *'dir=`"xyz"', `const char *'pen=`"B-"')
+ -- Функция С: `void' mgl_axis_grid (`HMGL' gr, `const char *'dir,
+          `const char *'pen)
+     Рисует линии сетки в направлениях перпендикулярным DIR. Шаг сетки
+     такой же как у меток осей координат. Стиль линий задается
+     параметром PEN (по умолчанию - сплошная темно синяя линия `B-').
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Box (`const char
+          *'col=`""', `bool' ticks=`true')
+ -- Метод класса `mglGraph' (C++): `void' Box (`mglColor' col, `bool'
+          ticks=`true')
+ -- Функция С: `void' mgl_box (`HMGL' gr, `int' ticks)
+ -- Функция С: `void' mgl_box_rgb (`HMGL' gr, `float' r, `float' g,
+          `float' b, `int' ticks)
+ -- Функция С: `void' mgl_box_str (`HMGL' gr, `const char *'col, `int'
+          ticks)
+     Рисует ограничивающий параллелепипед цветом COL.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Label (`char' dir,
+          `const char *'text, `float' pos=`0', `float' size=`-1.4',
+          `float' shift=`0')
+ -- Метод класса `mglGraph' (C++): `void' Label (`char' dir, `const
+          wchar_t *'text, `float' pos=`0', `float' size=`-1.4', `float'
+          shift=`0')
+ -- Функция С: `void' mgl_label (`HMGL' gr, `char' dir, `const char
+          *'text)
+ -- Функция С: `void' mgl_label_ext (`HMGL' gr, `char' dir, `const char
+          *'text, `float' pos, `float' size, `float' shift)
+ -- Функция С: `void' mgl_labelw_ext (`HMGL' gr, `char' dir, `const
+          wchar_t *'text, `float' pos, `float' size, `float' shift)
+     Выводит подпись TEXT для оси DIR=`x',`y',`z',`t' (где `t' -
+     "тернарная" ось t=1-x-y). Параметр POS задает положение подписи:
+     при POS=0 - по центру оси, при POS>0 - около максимальных
+     значений, при POS<0 - около минимальных значений. Параметр SIZE
+     задает размер шрифта (по умолчанию в 1.4 раза больше чем у меток,
+     *note Font settings::). *Note Text printing::.
+
+
+File: mathgl_ru.info,  Node: Legend,  Next: 1D plotting,  Prev: Axis and Colorbar,  Up: MathGL core
+
+3.8 Легенда
+==================
+
+Эти функции обеспечивают рисование легенды графика (полезно для *note
+1D plotting::). Запись в легенде состоит из двух строк: одна для стиля
+линии и маркеров, другая с текстом описания (с включенным разбором
+TeX-их команд). Можно использовать непосредственно массивы строк, или
+накопление во внутренние массивы с помощью функции AddLegend() с
+последующим отображением. Положение легенды можно задать автоматически
+или вручную. Параметры FONT и SIZE задают стиль и размер шрифта (*note
+Font settings::). Параметр LLEN задает относительную ширину примера
+линии. Ели стиль линии пустой, то соответствующий текст печатается без
+отступа. Если строка FONT содержит символ `A', то координаты легенды
+считаются относительно картинки (а не текущего subplot). См. раздел
+*note Legend sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Legend (`int'
+          where=`0x3', `const char *'font=`"rL"', `float' size=`-0.8',
+          `float' llen=`0.1')
+ -- Функция С: `void' mgl_legend (`HMGL' gr, `int' where, `const char
+          *'font, `float' size, `float' llen)
+     Рисует легенду из накопленных записей шрифтом FONT размером SIZE.
+     Параметр WHERE задает положение легенды: `0' - в нижнем левом
+     углу, `1' - нижнем правом углу, `2' - верхнем левом углу, `3' -
+     верхнем правом углу (по умолчанию).
+
+ -- Метод класса `mglGraph' (C++): `void' Legend (`int' n, `wchar_t
+          **'text, `char **'style, `int' where=`0x3', `const char
+          *'font=`"rL"', `float' size=`-0.8', `float' llen=`0.1')
+     Рисует легенду из N записей шрифтом FONT размером SIZE. Массив
+     TEXT задает описание кривых со стилем STYLE (включая маркеры).
+     Параметр WHERE задает положение легенды: `0' - в нижнем левом
+     углу, `1' - нижнем правом углу, `2' - верхнем левом углу, `3' -
+     верхнем правом углу (по умолчанию).
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Legend (`float' x,
+          `float' y, `const char *'font=`"rL"', `float' size=`-0.8',
+          `float' llen=`0.1')
+ -- Функция С: `void' mgl_legend_xy (`HMGL' gr, `float' x, `float' y,
+          `const char *'font, `float' size, `float' llen)
+     Рисует легенду из накопленных записей шрифтом FONT размером SIZE.
+     Положение легенды задается параметрами X, Y, которые полагаются
+     нормированными в диапазоне [0,1].
+
+ -- Метод класса `mglGraph' (C++): `void' Legend (`int' n, `wchar_t
+          **'text, `char **'style, `float' x, `float' y, `const char
+          *'font=`"rL"', `float' size=`-0.8', `float' llen=`0.1')
+     Рисует легенду из N записей шрифтом FONT размером SIZE. Массив
+     TEXT задает описание кривых со стилем STYLE (включая маркеры).
+     Положение легенды задается параметрами X, Y, которые полагаются
+     нормированными в диапазоне [0,1].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' AddLegend (`const
+          char *'text, `const char *'style)
+ -- Метод класса `mglGraph' (C++): `void' AddLegend (`const wchar_t
+          *'text, `const char *'style)
+ -- Функция С: `void' mgl_add_legend (`HMGL' gr, `const char *'text,
+          `const char *'style)
+ -- Функция С: `void' mgl_add_legendw (`HMGL' gr, `const wchar_t
+          *'text, `const char *'style)
+     Добавляет описание TEXT кривой со стилем STYLE (*note Line
+     styles::) во внутренний массив записей легенды. Максимальное число
+     записей 100.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ClearLegend ()
+ -- Функция С: `void' mgl_clear_legend (`HMGL' gr)
+     Очищает внутренний массив записей легенды.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetLegendBox (`bool'
+          enable)
+ -- Функция С: `void' mgl_set_legend_box (`HMGL' gr, `int' enable)
+     Включает/выключает рисование прямоугольника вокруг легенды. По
+     умолчанию (=`true') прямоугольник рисуется.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetLegendMarks (`int'
+          num)
+ -- C function: `void' mgl_set_legend_marks (`HMGL' gr, `int' num)
+     Задает число маркеров в легенде. По умолчанию используется 1
+     маркер.
+
+
+File: mathgl_ru.info,  Node: 1D plotting,  Next: 2D plotting,  Prev: Legend,  Up: MathGL core
+
+3.9 1D графики
+=====================
+
+Эти функции строят графики для одномерных (1D) массивов. Одномерными
+считаются массивы, зависящие только от одного параметра (индекса)
+подобно кривой в параметрической форме {x(i),y(i),z(i)}, i=1...n. Есть
+5 основных типов 1D графиков: линия (Plot), линия с заполнением (Area),
+ступеньки (Step), прямоугольники (Bars, Barh) и вертикальные линии
+(Stem). Все эти типы графиков имеют похожий интерфейс. Есть версии для
+рисования в пространстве и на плоскости. В последнем случае имеется
+возможность использования только одного массива. Стиль линии и маркеров
+указывается строковой переменной. Если она равна "", то используется
+сплошная линия с цветом из палитры (*note Palette and colors::). Кроме
+того, есть еще несколько типов графиков для одномерных массивов,
+имеющих другой интерфейс и вид: поверхность вращения кривой (Torus),
+диаграмма (Chart), размер ошибки (Error), маркеры переменного размера
+(Mark), трубками (Tube) и т.д. *Note Line styles::. См. раздел *note 1D
+plot sample::, для примеров кода и графика.
+
+* Menu:
+
+* Plot::
+* Radar::
+* Tens::
+* Area::
+* Region::
+* Stem::
+* Bars::
+* Barh::
+* Chart::
+* Step::
+* Torus::
+* Tube::
+* Mark::
+* TextMark::
+* Error::
+* BoxPlot::
+
+
+File: mathgl_ru.info,  Node: Plot,  Next: Radar,  Up: 1D plotting
+
+3.9.1 Plot
+----------
+
+Функции рисуют ломанную линию по точкам. График рисуется для каждой
+строки если один из массивов матрица. Размер по 1-ой координате *должен
+быть одинаков* для всех массивов `x.nx=y.nx=z.nx'. Строка PEN задает
+цвет и стиль линии и маркеров (*note Line styles::). По умолчанию
+(`pen=""') рисуется сплошная линия с текущим цветом из палитры (*note
+Palette and colors::). См. также *note Area::, *note Step::, *note
+Stem::, *note Tube::, *note Mark::, *note Error::, *note Belt::, *note
+Tens::. См. раздел *note Plot sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Plot (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'pen=`""')
+ -- Функция С: `void' mgl_plot_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'pen)
+     Рисует в пространстве линию между точками {X[i], Y[i], Z[i]}.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Plot (`const mglData
+          &'x, `const mglData &'y, `const char *'pen=`""')
+ -- Функция С: `void' mgl_plot_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const char *'pen)
+     Рисует линию между точками {X[i], Y[i]} в плоскости Z=ZVAL (по
+     умолчанию в плоскости Z=MIN.Z).
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Plot (`const mglData
+          &'y, `const char *'pen=`""')
+ -- Функция С: `void' mgl_plot (`HMGL' gr, `const HMDT' y, `const char
+          *'pen)
+     Рисует линию между точками {X[i], Y[i]} в плоскости Z=ZVAL (по
+     умолчанию в плоскости Z=MIN.Z), где значения X[i] равно
+     распределены в интервале [MIN.x, MAX.x].
+
+
+File: mathgl_ru.info,  Node: Radar,  Next: Tens,  Prev: Plot,  Up: 1D plotting
+
+3.9.2 Radar
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Radar (`const mglData
+          &'a, `const char *'pen=`""', `float' r=`-1')
+ -- Функция С: `void' mgl_radar (`HMGL' gr, `const HMDT' a, `const char
+          *'pen, `float' r)
+     Функции рисуют radar chart, представляющий собой ломанную с
+     вершинами на радиальных линиях (типа ломанной в полярных
+     координатах). График рисуется для каждой строки если один из
+     массивов матрица. Параметр R задает дополнительный сдвиг данных
+     (т.е. используется A+R вместо A). Если `r<0', то `r=max(0,
+     -min(a)'. Строка PEN задает цвет и стиль линии и маркеров (*note
+     Line styles::). По умолчанию (`pen=""') используется сплошная
+     линия с текущим цветом из палитры (*note Palette and colors::).
+     Если PEN содержит символ `#', то также рисуется "сетка"
+     (радиальные линии и круг для R). См. также *note Plot::. См.
+     раздел *note Radar sample::, для примеров кода и графика.
+
+
+File: mathgl_ru.info,  Node: Tens,  Next: Area,  Prev: Radar,  Up: 1D plotting
+
+3.9.3 Tens
+----------
+
+Функции рисуют ломанную линию по точкам с цветом, определяемым массивом
+C (типа графика натяжений). График рисуется для каждой строки если один
+из массивов матрица. Размер по 1-ой координате *должен быть одинаков*
+для всех массивов `x.nx=y.nx=z.nx=c.nx'. Строка PEN задает цветовую
+схему (*note Color scheme::) и стиль и/или толщину линии (*note Line
+styles::). По умолчанию (`pen=""') используется сплошная линия с
+текущей цветовой схемой. См. также *note Plot::, *note Mesh::, *note
+Fall::. См. раздел *note Tens sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Tens (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'c, `const char *'pen=`""')
+ -- Функция С: `void' mgl_tens_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' c, `const char *'pen)
+     Рисует в пространстве линию между точками {X[i], Y[i], Z[i]} с
+     цветом C[i].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Tens (`const mglData
+          &'x, `const mglData &'y, `const mglData &'c, `const char
+          *'pen=`""')
+ -- Функция С: `void' mgl_tens_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' c, `const char *'pen)
+     Рисует линию между точками {X[i], Y[i]} в плоскости Z=ZVAL (по
+     умолчанию в плоскости Z=MIN.Z) с цветом C[i].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Tens (`const mglData
+          &'y, `const mglData &'c, `const char *'pen=`""')
+ -- Функция С: `void' mgl_tens (`HMGL' gr, `const HMDT' y, `const HMDT'
+          c, `const char *'pen)
+     Рисует линию между точками {X[i], Y[i]} в плоскости Z=ZVAL (по
+     умолчанию в плоскости Z=MIN.Z) с цветом C[i], где значения X[i]
+     равно распределены в интервале [MIN.x, MAX.x].
+
+
+File: mathgl_ru.info,  Node: Area,  Next: Region,  Prev: Tens,  Up: 1D plotting
+
+3.9.4 Area
+----------
+
+Функции рисуют ломанную линию между точками и закрашивает ее вниз до
+плоскости осей координат. График рисуется для каждой строки если один
+из массивов матрица. Размер по 1-ой координате *должен быть одинаков*
+для всех массивов `x.nx=y.nx=z.nx'. Строка PEN задает цвет и стиль
+линии и маркеров (*note Line styles::). По умолчанию (`pen=""')
+используется сплошная линия с текущим цветом из палитры (*note Palette
+and colors::). Также можно использовать градиентное закрашивание если
+число указанных цветов равно удвоенному числу кривых для построения.
+Если строка содержит символ `a', то линии рисуются одна поверх другой
+(с суммированием) - того же эффекта можно достичь вызовом
+`y.CumSum("y");' перед построением графика. См. также *note Plot::,
+*note Bars::, *note Stem::. См. раздел *note Area sample::, для
+примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Area (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'pen=`""')
+ -- Функция С: `void' mgl_area_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'pen)
+     Рисует в пространстве линию между точками {X[i], Y[i], Z[i]} и
+     закрашивает ее вниз до плоскости Z = Org.z.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Area (`const mglData
+          &'x, `const mglData &'y, `const char *'pen=`""')
+ -- Функция С: `void' mgl_area_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const char *'pen)
+     Рисует линию между точками {X[i], Y[i]} в плоскости Z=ZVAL (по
+     умолчанию в плоскости Z=MIN.Z) и закрашивает ее до прямой Y =
+     Org.y.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Area (`const mglData
+          &'y, `const char *'pen=`""', `bool' sum=`false')
+ -- Функция С: `void' mgl_area (`HMGL' gr, `const HMDT' y, `const char
+          *'pen)
+ -- Функция С: `void' mgl_area_s (`HMGL' gr, `const HMDT' y, `const
+          char *'pen)
+     Рисует линию между точками {X[i], Y[i]} в плоскости Z=ZVAL (по
+     умолчанию в плоскости Z=MIN.Z) и закрашивает ее до прямой Y =
+     Org.y, где значения X[i] равно распределены в интервале [MIN.x,
+     MAX.x]. Параметр SUM задает режим рисования линий одна поверх
+     другой (с сумированием). Замечу, что того же эффекта можно достичь
+     вызовом `y.CumSum("y");' перед построением графика.
+
+
+File: mathgl_ru.info,  Node: Region,  Next: Stem,  Prev: Area,  Up: 1D plotting
+
+3.9.5 Region
+------------
+
+Функции закрашивают область между 2 кривыми. График рисуется для каждой
+строки если один из массивов матрица. Размер по 1-ой координате *должен
+быть одинаков* для всех массивов `x.nx=y1.nx=y2.nx' и размеры массивов
+Y1, Y2 должны быть также одинаковы. Строка PEN задает цвет (*note Line
+styles::). По умолчанию (`pen=""') используется текущий цвет из палитры
+(*note Palette and colors::). Также можно использовать градиентное
+закрашивание если число указанных цветов равно удвоенному числу кривых
+для построения. См. также *note Area::, *note Bars::, *note Stem::. См.
+раздел *note Region sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Region (`const
+          mglData &'x, `const mglData &'y1, `const mglData &'y2, `const
+          char *'pen=`""', `float' zVal=`NAN', `bool' inside=`true')
+ -- Функция С: `void' mgl_region_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y1, `const HMDT' y2, `const char *'pen, `int' inside)
+     Закрашивает область между кривыми {X[i], Y1[i]} и {X[i], Y2[i]}
+     при z=ZVAL. При  `inside=off' закрашивается только область
+     y1<y<y2, в противном случае также будет закращена область y2<y<y1.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Region (`const
+          mglData &'y1, `const mglData &'y2, `const char *'pen=`""',
+          `float' zVal=`NAN', `bool' inside=`true')
+ -- Функция С: `void' mgl_region (`HMGL' gr, `const HMDT' y1, `const
+          HMDT' y2, `const char *'pen, `int' inside)
+     Закрашивает область между кривыми {X[i], Y1[i]} и {X[i], Y2[i]}
+     при z=ZVAL, где значения X[i] равно распределены в интервале
+     [MIN.x, MAX.x].
+
+
+File: mathgl_ru.info,  Node: Stem,  Next: Bars,  Prev: Region,  Up: 1D plotting
+
+3.9.6 Stem
+----------
+
+Функции рисуют вертикальные линии из точек до плоскости осей координат.
+График рисуется для каждой строки если один из массивов матрица. Размер
+по 1-ой координате *должен быть одинаков* для всех массивов
+`x.nx=y.nx=z.nx'. Строка PEN задает цвет и стиль линии и маркеров
+(*note Line styles::). По умолчанию (`pen=""') используется сплошная
+линия с текущим цветом из палитры (*note Palette and colors::). См.
+также *note Area::, *note Bars::, *note Plot::, *note Mark::. См.
+раздел *note Stem sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Stem (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'pen=`""')
+ -- Функция С: `void' mgl_stem_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'pen)
+     Рисует вертикальные линии из точек {X[i], Y[i], Z[i]} вниз до
+     плоскости Z = Org.z.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Stem (`const mglData
+          &'x, `const mglData &'y, `const char *'pen=`""')
+ -- Функция С: `void' mgl_stem_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const char *'pen)
+     Рисует вертикальные линии из точек {X[i], Y[i]} до Y = Org.y в
+     плоскости Z=ZVAL (по умолчанию в плоскости Z=MIN.Z).
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Stem (`const mglData
+          &'y, `const char *'pen=`""')
+ -- Функция С: `void' mgl_stem (`HMGL' gr, `const HMDT' y, `const char
+          *'pen)
+     Рисует вертикальные линии из точек {X[i], Y[i]} до Y = Org.y в
+     плоскости Z=ZVAL (по умолчанию в плоскости Z=MIN.Z), где значения
+     X[i] равно распределены в интервале [MIN.x, MAX.x].
+
+
+File: mathgl_ru.info,  Node: Bars,  Next: Barh,  Prev: Stem,  Up: 1D plotting
+
+3.9.7 Bars
+----------
+
+Функции рисуют вертикальные полосы (прямоугольники) из точек до
+плоскости осей координат. График рисуется для каждой строки если один
+из массивов матрица. Размер по 1-ой координате *должен быть одинаков*
+для всех массивов `x.nx=y.nx=z.nx'. Строка PEN задает цвет и стиль
+линии и маркеров (*note Line styles::). По умолчанию (`pen=""')
+используется сплошная линия с текущим цветом из палитры (*note Palette
+and colors::). Если строка содержит символ `a', то линии рисуются одна
+поверх другой. Если строка содержит символ `f', то рисуется график типа
+waterfall для определения кумулятивного эффекта последовательности
+положительных и отрицательных значений. Можно использовать разные цвета
+для положительных и отрицательных значений если число указанных цветов
+равно удвоенному числу кривых для построения. См. также *note Barh::,
+*note Area::, *note Stem::, *note Chart::, *note Default sizes::. См.
+раздел *note Bars sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Bars (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'pen=`""')
+ -- Функция С: `void' mgl_bars_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'pen)
+     Рисует вертикальные полосы из точек {X[i], Y[i], Z[i]} вниз до
+     плоскости Z = Org.z.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Bars (`const mglData
+          &'x, `const mglData &'y, `const char *'pen=`""')
+ -- Функция С: `void' mgl_bars_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const char *'pen)
+     Рисует вертикальные полосы из точек {X[i], Y[i]} до Y = Org.y в
+     плоскости Z=ZVAL (по умолчанию в плоскости Z=MIN.Z).
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Bars (`const mglData
+          &'y, `const char *'pen=`""')
+ -- Функция С: `void' mgl_bars (`HMGL' gr, `const HMDT' y, `const char
+          *'pen)
+     Рисует вертикальные полосы из точек {X[i], Y[i]} до Y = Org.y в
+     плоскости Z=ZVAL (по умолчанию в плоскости Z=MIN.Z), где значения
+     X[i] равно распределены в интервале [MIN.x, MAX.x].
+
+
+File: mathgl_ru.info,  Node: Barh,  Next: Chart,  Prev: Bars,  Up: 1D plotting
+
+3.9.8 Barh
+----------
+
+Функции рисуют горизонтальные полосы (прямоугольники) из точек до
+плоскости осей координат. График рисуется для каждой строки если один
+из массивов матрица. Размер по 1-ой координате *должен быть одинаков*
+для всех массивов `x.nx=y.nx=z.nx'. Строка PEN задает цвет и стиль
+линии и маркеров (*note Line styles::). По умолчанию (`pen=""')
+используется сплошная линия с текущим цветом из палитры (*note Palette
+and colors::). Если строка содержит символ `a', то линии рисуются одна
+поверх другой. Если строка содержит символ `f', то рисуется график типа
+waterfall для определения кумулятивного эффекта последовательности
+положительных и отрицательных значений. Можно использовать разные цвета
+для положительных и отрицательных значений если число указанных цветов
+равно удвоенному числу кривых для построения. См. также *note Barh::,
+*note Default sizes::. См. раздел *note Barh sample::, для примеров
+кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Barh (`const mglData
+          &'y, `const mglData &'v, `const char *'pen=`""')
+ -- Функция С: `void' mgl_barh_xy (`HMGL' gr, `const HMDT' y, `const
+          HMDT' v, `const char *'pen)
+     Рисует горизонтальные полосы из точек {V[i], Y[i]} до X = Org.x в
+     плоскости Z=ZVAL (по умолчанию в плоскости Z=MIN.Z).
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Barh (`const mglData
+          &'v, `const char *'pen=`""')
+ -- Функция С: `void' mgl_barh (`HMGL' gr, `const HMDT' v, `const char
+          *'pen)
+     Рисует горизонтальные полосы из точек {V[i], Y[i]} до X = Org.x в
+     плоскости Z=ZVAL (по умолчанию в плоскости Z=MIN.Z), где значения
+     Y[i] равно распределены в интервале [MIN.y, MAX.y].
+
+
+File: mathgl_ru.info,  Node: Chart,  Next: Step,  Prev: Barh,  Up: 1D plotting
+
+3.9.9 Chart
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Chart (`const mglData
+          &'a, `const char *'col=`""')
+ -- Функция С: `void' mgl_chart (`HMGL' gr, `const HMDT' a, `const char
+          *'col)
+     Рисует цветные полосы (пояса) для массива данных A. Число полос
+     равно числу строк A (равно A.NY). Цвет полос поочередно меняется
+     из цветов указанных в COL или в палитре (*note Palette and
+     colors::). Пробел в цветах соответствует прозрачному "цвету", т.е.
+     если COL содержит пробел(ы), то соответствующая полоса не
+     рисуется. Ширина полосы пропорциональна значению элемента в A.
+     График строится только для массивов не содержащих отрицательных
+     значений. Если строка COL содержит `#', то рисуется также черная
+     граница полос. График выглядит лучше в (после вращения системы
+     координат) и/или в полярной системе координат (становится Pie
+     chart). См. раздел *note Chart sample::, для примеров кода и
+     графика.
+
+
+File: mathgl_ru.info,  Node: Step,  Next: Torus,  Prev: Chart,  Up: 1D plotting
+
+3.9.10 Step
+-----------
+
+Функции рисуют ступеньки для точек массива. График рисуется для каждой
+строки если один из массивов матрица. Размер по 1-ой координате *должен
+быть одинаков* для всех массивов `x.nx=y.nx=z.nx'. Строка PEN задает
+цвет и стиль линии и маркеров (*note Line styles::). По умолчанию
+(`pen=""') используется сплошная линия с текущим цветом из палитры
+(*note Palette and colors::). См. также *note Plot::, *note Stem::,
+*note Tile::, *note Boxs::. См. раздел *note Step sample::, для
+примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Step (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'pen=`""')
+ -- Функция С: `void' mgl_step_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'pen)
+     Рисует ступеньки для точек {X[i], Y[i], Z[i]}.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Step (`const mglData
+          &'x, `const mglData &'y, `const char *'pen=`""')
+ -- Функция С: `void' mgl_step_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const char *'pen)
+     Рисует ступеньки для точек {X[i], Y[i]} в плоскости Z=ZVAL (по
+     умолчанию в плоскости Z=MIN.Z).
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Step (`const mglData
+          &'y, `const char *'pen=`""')
+ -- Функция С: `void' mgl_step (`HMGL' gr, `const HMDT' y, `const char
+          *'pen)
+     Рисует ступеньки для точек {X[i], Y[i]} в плоскости Z=ZVAL (по
+     умолчанию в плоскости Z=MIN.Z), где значения X[i] равно
+     распределены в интервале [MIN.x, MAX.x].
+
+
+File: mathgl_ru.info,  Node: Torus,  Next: Tube,  Prev: Step,  Up: 1D plotting
+
+3.9.11 Torus
+------------
+
+Функции рисуют поверхность вращения кривой {R, Z} относительно оси,
+заданной `SetAxialDir()' (*note Other settings::). Размер по 1-ой
+координате *должен быть одинаков* для всех массивов R.NX=Z.NX. Строка
+PEN задает цвет (*note Line styles::). По умолчанию (`pen=""')
+используется цвет из палитры (*note Palette and colors::). См. также
+*note Plot::, *note Axial::. См. раздел *note Torus sample::, для
+примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Torus (`const mglData
+          &'r, `const mglData &'z, `const char *'pen=`""')
+ -- Функция С: `void' mgl_torus (`HMGL' gr, `const HMDT' r, `const
+          HMDT' z, `const char *'pen)
+     Рисует поверхность вращения кривой {R[i], Z[i]}.
+
+ -- Метод класса `mglGraph' (C++): `void' Torus (`const mglData &'z,
+          `const char *'pen=`""')
+     Рисует поверхность вращения кривой {R[i], Z[i]}, где значения R[i]
+     равно распределены в интервале [MIN.x, MAX.x].
+
+
+File: mathgl_ru.info,  Node: Tube,  Next: Mark,  Prev: Torus,  Up: 1D plotting
+
+3.9.12 Tube
+-----------
+
+Функции рисуют трубу радиуса R[i] вдоль кривой между точками {X[i],
+Y[i], Z[i]}. График рисуется для каждой строки если один из массивов
+матрица. Размер по 1-ой координате *должен быть одинаков* для всех
+массивов `x.nx=y.nx=z.nx=r.nx'. Строка PEN задает цвет и стиль линии и
+маркеров (*note Line styles::). По умолчанию (`pen=""') используется
+сплошная линия с текущим цветом из палитры (*note Palette and
+colors::). См. также *note Plot::. См. раздел *note Tube sample::, для
+примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Tube (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'r, `const char *'pen=`""')
+ -- Метод класса `mglGraph' (C++, Python): `void' Tube (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `float' r,
+          `const char *'pen=`""')
+ -- Функция С: `void' mgl_tube_xyzr (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' r, `const char *'pen)
+ -- Функция С: `void' mgl_tube_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `float' r, `const char *'pen)
+     Рисует трубу радиуса R  в пространстве между точками {X[i], Y[i],
+     Z[i]}.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Tube (`const mglData
+          &'x, `const mglData &'y, `const mglData &'r, `const char
+          *'pen=`""')
+ -- Метод класса `mglGraph' (C++, Python): `void' Tube (`const mglData
+          &'x, `const mglData &'y, `float' r, `const char *'pen=`""')
+ -- Функция С: `void' mgl_tube_xyr (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' r, `const char *'pen)
+ -- Функция С: `void' mgl_tube_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `float' r, `const char *'pen)
+     Рисует трубу радиуса R между точками {X[i], Y[i]} в плоскости
+     Z=ZVAL (по умолчанию в плоскости Z=MIN.Z).
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Tube (`const mglData
+          &'y, `const mglData &'r, `const char *'pen=`""')
+ -- Метод класса `mglGraph' (C++, Python): `void' Tube (`const mglData
+          &'y, `float' r, `const char *'pen=`""')
+ -- Функция С: `void' mgl_tube_r (`HMGL' gr, `const HMDT' y, `const
+          HMDT' r, `const char *'pen)
+ -- Функция С: `void' mgl_tube (`HMGL' gr, `const HMDT' y, `float' r,
+          `const char *'pen)
+     Рисует трубу радиуса R между точками {X[i], Y[i]} в плоскости
+     Z=ZVAL (по умолчанию в плоскости Z=MIN.Z), где значения X[i] равно
+     распределены в интервале [MIN.x, MAX.x].
+
+
+File: mathgl_ru.info,  Node: Mark,  Next: TextMark,  Prev: Tube,  Up: 1D plotting
+
+3.9.13 Mark
+-----------
+
+Функции рисуют маркеры размером R*MARKSIZE (*note Default sizes::) в
+точках {X[i], Y[i], Z[i]}. График рисуется для каждой строки если один
+из массивов матрица. Размер по 1-ой координате *должен быть одинаков*
+для всех массивов `x.nx=y.nx=z.nx=r.nx'. Строка PEN задает цвет и стиль
+линии и маркеров (*note Line styles::). По умолчанию (`pen=""')
+используется сплошная линия с текущим цветом из палитры (*note Palette
+and colors::). Для рисования маркеров одинакового размера можно
+использовать функцию *note Plot:: с невидимой линией (со стилем
+содержащим ` '). См. также *note Plot::, *note TextMark::, *note
+Stem::, *note Error::. См. раздел *note Mark sample::, для примеров
+кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Mark (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'r, `const char *'pen=`""')
+ -- Функция С: `void' mgl_mark_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' r, `const char *'pen)
+     Рисует маркеры для точек {X[i], Y[i], Z[i]}.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Mark (`const mglData
+          &'x, `const mglData &'y, `const mglData &'r, `const char
+          *'pen=`""')
+ -- Функция С: `void' mgl_mark_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' r, `const char *'pen)
+     Рисует маркеры для точек {X[i], Y[i]} в плоскости Z=ZVAL (по
+     умолчанию в плоскости Z=MIN.Z).
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Mark (`const mglData
+          &'y, `const mglData &'r, `const char *'pen=`""')
+ -- Функция С: `void' mgl_mark_y (`HMGL' gr, `const HMDT' y, `const
+          HMDT' r, `const char *'pen)
+     Рисует маркеры для точек {X[i], Y[i]} в плоскости Z=ZVAL (по
+     умолчанию в плоскости Z=MIN.Z), где значения X[i] равно
+     распределены в интервале [MIN.x, MAX.x].
+
+
+File: mathgl_ru.info,  Node: TextMark,  Next: Error,  Prev: Mark,  Up: 1D plotting
+
+3.9.14 TextMark
+---------------
+
+Функции рисуют текст TEXT как маркер с размером пропорциональным
+R*MARKSIZE (*note Default sizes::) в точках {X[i], Y[i], Z[i]}. График
+рисуется для каждой строки если один из массивов матрица. Размер по
+1-ой координате *должен быть одинаков* для всех массивов
+`x.nx=y.nx=z.nx=r.nx'. Строка PEN задает цвет и стиль линии и маркеров
+(*note Line styles::). По умолчанию (`pen=""') используется сплошная
+линия с текущим цветом из палитры (*note Palette and colors::). См.
+также *note Plot::, *note Mark::, *note Stem::. См. раздел *note
+TextMark sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' TextMark (`const
+          mglData &'x, `const mglData &'y, `const mglData &'z, `const
+          mglData &'r, `const char *'text, `const char *'fnt=`""')
+ -- Метод класса `mglGraph' (C++): `void' TextMark (`const mglData &'x,
+          `const mglData &'y, `const mglData &'z, `const mglData &'r,
+          `const wchar_t *'text, `const char *'fnt=`""')
+ -- Функция С: `void' mgl_textmarkw_xyzr (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' r, `const
+          wchar_t *'text, `const char *'fnt)
+ -- Функция С: `void' mgl_textmark_xyzr (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' r, `const char
+          *'text, `const char *'fnt)
+     Рисует текстовые маркеры в точках {X[i], Y[i], Z[i]}.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' TextMark (`const
+          mglData &'x, `const mglData &'y, `const mglData &'r, `const
+          char *'text, `const char *'fnt=`""')
+ -- Метод класса `mglGraph' (C++): `void' TextMark (`const mglData &'x,
+          `const mglData &'y, `const mglData &'r, `const wchar_t
+          *'text, `const char *'fnt=`""')
+ -- Функция С: `void' mgl_textmarkw_xyr (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' r, `const wchar_t *'text, `const
+          char *'fnt)
+ -- Функция С: `void' mgl_textmark_xyr (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' r, `const char *'text, `const
+          char *'fnt)
+     Рисует текстовые маркеры в точках {X[i], Y[i]} в плоскости Z=ZVAL
+     (по умолчанию в плоскости Z=MIN.Z).
+
+ -- Метод класса `mglGraph' (C++, Python): `void' TextMark (`const
+          mglData &'y, `const mglData &'r, `const char *'text, `const
+          char *'fnt=`""')
+ -- Метод класса `mglGraph' (C++): `void' TextMark (`const mglData &'y,
+          `const mglData &'r, `const wchar_t *'text, `const char
+          *'fnt=`""')
+ -- Функция С: `void' mgl_textmarkw_yr (`HMGL' gr, `const HMDT' y,
+          `const HMDT' r, `const wchar_t *'text, `const char *'fnt)
+ -- Функция С: `void' mgl_textmark_yr (`HMGL' gr, `const HMDT' y,
+          `const HMDT' r, `const char *'text, `const char *'fnt)
+     Рисует текстовые маркеры в точках {X[i], Y[i]} в плоскости Z=ZVAL
+     (по умолчанию в плоскости Z=MIN.Z), где значения X[i] равно
+     распределены в интервале [MIN.x, MAX.x].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' TextMark (`const
+          mglData &'y, `const char *'text, `const char *'fnt=`""')
+ -- Метод класса `mglGraph' (C++): `void' TextMark (`const mglData &'y,
+          `const wchar_t *'text, `const char *'fnt=`""')
+ -- Функция С: `void' mgl_textmarkw (`HMGL' gr, `const HMDT' y, `const
+          wchar_t *'text, `const char *'fnt)
+ -- Функция С: `void' mgl_textmark (`HMGL' gr, `const HMDT' y, `const
+          char *'text, `const char *'fnt)
+     Рисует текстовые маркеры в точках {X[i], Y[i]} в плоскости Z=ZVAL
+     (по умолчанию в плоскости Z=MIN.Z), где значения X[i] равно
+     распределены в интервале [MIN.x, MAX.x]. The mark sizes R[i]=1 for
+     all points.
+
+
+File: mathgl_ru.info,  Node: Error,  Next: BoxPlot,  Prev: TextMark,  Up: 1D plotting
+
+3.9.15 Error
+------------
+
+Функции рисуют размер ошибки в точках {X[i], Y[i]} на плоскости Z =
+ZVAL (по умолчанию Z=MIN.Z). Такой график полезен для отображения
+ошибки эксперимента, вычислений и пр. График рисуется для каждой строки
+если один из массивов матрица. Размер по 1-ой координате *должен быть
+одинаков* для всех массивов `x.nx=y.nx=z.nx=r.nx'. Строка PEN задает
+цвет и стиль линии и маркеров (*note Line styles::). По умолчанию
+(`pen=""') используется сплошная линия с текущим цветом из палитры
+(*note Palette and colors::). См. также *note Plot::. См. раздел *note
+Error sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Error (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ex, `const mglData
+          &'ey, `const char *'pen=`""')
+ -- Функция С: `void' mgl_error_exy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ex, `const HMDT' ey, `const char *'pen)
+     Рисует размер ошибки {EX, EY} в точках {X, Y}.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Error (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ey, `const char
+          *'pen=`""')
+ -- Функция С: `void' mgl_error_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ey, `const char *'pen)
+     Рисует размер ошибки EY (только вдоль одного направления) в точках
+     {X, Y}.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Error (`const mglData
+          &'y, `const mglData &'ey, `const char *'pen=`""')
+ -- Функция С: `void' mgl_error (`HMGL' gr, `const HMDT' y, `const
+          HMDT' ey, `const char *'pen)
+     Рисует размер ошибки EY  (только вдоль одного направления) в
+     точках {X, Y}, где значения X[i] равно распределены в интервале
+     [MIN.x, MAX.x].
+
+
+File: mathgl_ru.info,  Node: BoxPlot,  Prev: Error,  Up: 1D plotting
+
+3.9.16 BoxPlot
+--------------
+
+Функции рисуют boxplot (называемый также как box-and-whisker diagram
+или как "ящик с усами") в точках X[i] на плоскости Z = ZVAL (по
+умолчанию Z=MIN.Z). Это график, компактно изображающий распределение
+вероятностей A[i,j] (минимум, нижний квартиль (Q1), медиана (Q2),
+верхний квартиль (Q3) и максимум) вдоль второго (j-го) направления.
+Размер по 1-ой координате *должен быть одинаков* для всех массивов
+`x.nx=a.nx'. Строка PEN задает цвет и стиль линий (*note Line
+styles::). По умолчанию (`pen=""') используется сплошная линия с
+текущим цветом из палитры (*note Palette and colors::). См. также *note
+Plot::, *note Error::, *note Bars::, *note Default sizes::. См. раздел
+*note BoxPlot sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' BoxPlot (`const
+          mglData &'x, `const mglData &'a, `const char *'pen=`""')
+ -- Функция С: `void' mgl_boxplot_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' a, `const char *'pen)
+     Рисует boxplot с заданными значениями координат X[i].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' BoxPlot (`const
+          mglData &'a, `const char *'pen=`""')
+ -- Функция С: `void' mgl_boxplot (`HMGL' gr, `const HMDT' a, `const
+          char *'pen)
+     Рисует boxplot со значениями X[i] равно распределенными в
+     интервале [MIN.x, MAX.x].
+
+
+File: mathgl_ru.info,  Node: 2D plotting,  Next: 3D plotting,  Prev: 1D plotting,  Up: MathGL core
+
+3.10 2D графики
+======================
+
+Эти функции строят графики для двумерных (2D) массивов. Двумерными
+считаются массивы, зависящие только от двух параметров (индексов)
+подобно матрице f(x_i,y_j), i=1...n, j=1...m. Есть несколько основных
+типов 2D графиков: сплошная поверхность (Surf), сетчатая поверхность
+(Mesh), поверхность из ящиков (Boxs), поверхность из плиток (Tile),
+водопад (Fall), ленточки (Belt), график плотности (Dens), линии уровня
+(Cont), линии уровня с заполнением (ContF) и результат их вращения
+(Axial). В функциях Cont(), ContF() и Axial() значения уровней можно
+задавать автоматически и вручную. Можно также нарисовать сетку (Grid)
+по массиву данных для улучшения вида графика плотности или линий
+уровня. Каждый тип графика имеет похожий интерфейс. Есть версия для
+рисования одного массива с автоматическими координатами и версия для
+параметрически заданной поверхности. Параметры цветовой схемы задаются
+строкой *Note Color scheme::. См. раздел *note 2D plot sample::, для
+примеров кода и графика.
+
+* Menu:
+
+* Mesh::
+* Fall::
+* Belt::
+* Surf::
+* Boxs::
+* Tile::
+* Dens::
+* Cont::
+* ContF::
+* ContD::
+* Axial::
+* Grad::
+* Grid::
+
+
+File: mathgl_ru.info,  Node: Mesh,  Next: Fall,  Up: 2D plotting
+
+3.10.1 Mesh
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Mesh (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""')
+ -- Функция С: `void' mgl_mesh_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch)
+     Рисует сетчатую поверхность, заданную параметрически {X[i,j],
+     Y[i,j], Z[i,j]}. Строка SCH задает цветовую схему. Предыдущая
+     цветовая схема используется по умолчанию. Младшие размерности
+     массивов X, Y, Z должны быть одинаковы `x.nx=z.nx && y.nx=z.ny'
+     или `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Массивы X и Y могут быть
+     векторами (не матрицами как Z). График строится для каждого z
+     среза данных. См. также *note Surf::, *note Fall::, MeshNum (*note
+     Other settings::), *note Cont::, *note Tens::. См. раздел *note
+     Mesh sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Mesh (`const mglData
+          &'z, `const char *'sch=`""')
+ -- Функция С: `void' mgl_mesh (`HMGL' gr, `const HMDT' z, `const char
+          *'sch)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+
+Local Variables:
+coding: utf-8
+End:
diff --git a/debian/tmp/usr/share/info/mathgl_ru.info-2 b/debian/tmp/usr/share/info/mathgl_ru.info-2
new file mode 100644
index 0000000..a5e0002
--- /dev/null
+++ b/debian/tmp/usr/share/info/mathgl_ru.info-2
@@ -0,0 +1,5091 @@
+This is mathgl_ru.info, produced by makeinfo version 4.13 from
+mathgl_ru.texi.
+
+Это документация для MathGL (версии 1.11) - библиотеки классов и
+функций для построения научной графики. Пожалуйста сообщайте о любых
+ошибках в этом руководстве на <mathgl.abalakin at gmail.org>.
+
+   Copyright (C) 2009 Алексей Балакин.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with the Front-Cover Texts
+     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+     below.  A copy of the license is included in the section entitled
+     "GNU Free Documentation License."
+
+     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+     and modify this GNU manual.  Buying copies from the FSF supports
+     it in developing GNU and promoting software freedom."
+
+
+File: mathgl_ru.info,  Node: Fall,  Next: Belt,  Prev: Mesh,  Up: 2D plotting
+
+3.10.2 Fall
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Fall (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""')
+ -- Функция С: `void' mgl_fall_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch)
+     Рисует водопад для параметрически заданной поверхности {X[i,j],
+     Y[i,j], Z[i,j]}. График удобен для построения нескольких кривых,
+     сдвинутых вглубь друг относительно друга. Строка SCH задает
+     цветовую схему. Предыдущая цветовая схема используется по
+     умолчанию. Если SCH содержит `x', то линии рисуются вдоль x-оси
+     (по умолчанию линии рисуются вдоль y-оси). Младшие размерности
+     массивов X, Y, Z должны быть одинаковы `x.nx=z.nx && y.nx=z.ny'
+     или `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Массивы X и Y могут быть
+     векторами (не матрицами как Z). График строится для каждого z
+     среза данных. См. также *note Belt::, *note Mesh::, *note Tens::,
+     MeshNum (*note Other settings::). См. раздел *note Fall sample::,
+     для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Fall (`const mglData
+          &'z, `const char *'sch=`""')
+ -- Функция С: `void' mgl_fall (`HMGL' gr, `const HMDT' z, `const char
+          *'sch)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Belt,  Next: Surf,  Prev: Fall,  Up: 2D plotting
+
+3.10.3 Belt
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Belt (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""')
+ -- Функция С: `void' mgl_belt_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch)
+     Рисует ленточки для параметрически заданной поверхности {X[i,j],
+     Y[i,j], Z[i,j]}. График может использоваться как 3d обобщение
+     графика Plot() (*note Plot::). Строка SCH задает цветовую схему.
+     Предыдущая цветовая схема используется по умолчанию. Если SCH
+     содержит `x', то линии рисуются вдоль x-оси (по умолчанию линии
+     рисуются вдоль y-оси). Младшие размерности массивов X, Y, Z должны
+     быть одинаковы `x.nx=z.nx && y.nx=z.ny' или `x.nx=y.nx=z.nx &&
+     x.ny=y.ny=z.ny'. Массивы X и Y могут быть векторами (не матрицами
+     как Z). График строится для каждого z среза данных. См. также
+     *note Fall::, *note Surf::, *note Plot::, MeshNum (*note Other
+     settings::). См. раздел *note Belt sample::, для примеров кода и
+     графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Belt (`const mglData
+          &'z, `const char *'sch=`""')
+ -- Функция С: `void' mgl_belt (`HMGL' gr, `const HMDT' z, `const char
+          *'sch)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Surf,  Next: Boxs,  Prev: Belt,  Up: 2D plotting
+
+3.10.4 Surf
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""')
+ -- Функция С: `void' mgl_surf_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch)
+     Рисует параметрически заданную поверхность {X[i,j], Y[i,j],
+     Z[i,j]}. Строка SCH задает цветовую схему. Предыдущая цветовая
+     схема используется по умолчанию. Если SCH содержит `#', то на
+     поверхности рисуется сетка. Младшие размерности массивов X, Y, Z
+     должны быть одинаковы `x.nx=z.nx && y.nx=z.ny' или `x.nx=y.nx=z.nx
+     && x.ny=y.ny=z.ny'. Массивы X и Y могут быть векторами (не
+     матрицами как Z). График строится для каждого z среза данных. См.
+     также *note Mesh::, *note Dens::, *note Belt::, *note Tile::,
+     *note Boxs::, *note SurfC::, *note SurfA::. См. раздел *note Surf
+     sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf (`const mglData
+          &'z, `const char *'sch=`""')
+ -- Функция С: `void' mgl_surf (`HMGL' gr, `const HMDT' z, `const char
+          *'sch)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Boxs,  Next: Tile,  Prev: Surf,  Up: 2D plotting
+
+3.10.5 Boxs
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Boxs (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""')
+ -- Функция С: `void' mgl_boxs_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch)
+     Рисует вертикальные ящики для параметрически заданной поверхности
+     {X[i,j], Y[i,j], Z[i,j]}. Строка SCH задает цветовую схему.
+     Предыдущая цветовая схема используется по умолчанию. Младшие
+     размерности массивов X, Y, Z должны быть одинаковы `x.nx=z.nx &&
+     y.nx=z.ny' или `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Массивы X и Y
+     могут быть векторами (не матрицами как Z). График строится для
+     каждого z среза данных. См. также *note Surf::, *note Dens::,
+     *note Tile::, *note Step::. См. раздел *note Boxs sample::, для
+     примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Boxs (`const mglData
+          &'z, `const char *'sch=`""')
+ -- Функция С: `void' mgl_boxs (`HMGL' gr, `const HMDT' z, `const char
+          *'sch)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Tile,  Next: Dens,  Prev: Boxs,  Up: 2D plotting
+
+3.10.6 Tile
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Tile (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""')
+ -- Функция С: `void' mgl_tile_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch)
+     Рисует плитки для параметрически заданной поверхности {X[i,j],
+     Y[i,j], Z[i,j]}. График может использоваться как 3d обобщение
+     Step() (*note Step::). Строка SCH задает цветовую схему.
+     Предыдущая цветовая схема используется по умолчанию. Младшие
+     размерности массивов X, Y, Z должны быть одинаковы `x.nx=z.nx &&
+     y.nx=z.ny' или `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Массивы X и Y
+     могут быть векторами (не матрицами как Z). График строится для
+     каждого z среза данных. См. также *note Surf::, *note Boxs::,
+     *note Step::, *note TileS::. См. раздел *note Tile sample::, для
+     примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Tile (`const mglData
+          &'z, `const char *'sch=`""')
+ -- Функция С: `void' mgl_tile (`HMGL' gr, `const HMDT' z, `const char
+          *'sch)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Dens,  Next: Cont,  Prev: Tile,  Up: 2D plotting
+
+3.10.7 Dens
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Dens (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_dens_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `float' zVal)
+     Рисует график плотности для параметрически заданной поверхности
+     {X[i,j], Y[i,j], Z[i,j]} при Z = ZVAL. Строка SCH задает цветовую
+     схему. Предыдущая цветовая схема используется по умолчанию. Если
+     SCH содержит `#', то рисуется сетка. Младшие размерности массивов
+     X, Y, Z должны быть одинаковы `x.nx=z.nx && y.nx=z.ny' или
+     `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Массивы X и Y могут быть
+     векторами (не матрицами как Z). График строится для каждого z
+     среза данных. См. также *note Surf::, *note Cont::, *note ContF::,
+     *note Boxs::, *note Tile::, *note DensXYZ::. См. раздел *note Dens
+     sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Dens (`const mglData
+          &'z, `const char *'sch=`""', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_dens (`HMGL' gr, `const HMDT' z, `const char
+          *'sch, `float' zVal)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Cont,  Next: ContF,  Prev: Dens,  Up: 2D plotting
+
+3.10.8 Cont
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Cont (`const mglData
+          &'v, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const char *'sch=`""', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_cont_xy_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const char
+          *'sch, `float' zVal)
+     Рисует линии уровня для параметрически заданной поверхности
+     {X[i,j], Y[i,j], Z[i,j]} при Z = ZVAL (или при Z=V[k] если
+     `zVal==NAN'). Линии уровня рисуются для Z[i,j]=V[k]. Строка SCH
+     задает цветовую схему. Предыдущая цветовая схема используется по
+     умолчанию. Если SCH содержит `#', то рисуется сетка. Если SCH
+     содержит `t' или `T', то значения V[k] будут выведены вдоль
+     контуров над (или под) кривой. Младшие размерности массивов X, Y,
+     Z должны быть одинаковы `x.nx=z.nx && y.nx=z.ny' или
+     `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Массивы X и Y могут быть
+     векторами (не матрицами как Z). График строится для каждого z
+     среза данных. См. также *note Dens::, *note ContF::, *note
+     ContD::, *note Axial::, *note ContXYZ::. См. раздел *note Cont
+     sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Cont (`const mglData
+          &'v, `const mglData &'z, `const char *'sch=`""', `float'
+          zVal=`NAN')
+ -- Функция С: `void' mgl_cont__val (`HMGL' gr, `const HMDT' v, `const
+          HMDT' z, `const char *'sch, `float' zVal)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Cont (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `int' num=`7', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_cont_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `int' num,
+          `float' zVal)
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале [CMIN, CMAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Cont (`const mglData
+          &'z, `const char *'sch=`""', `int' num=`7', `float'
+          zVal=`NAN')
+ -- Функция С: `void' mgl_cont (`HMGL' gr, `const HMDT' z, `const char
+          *'sch, `int' num, `float' zVal)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: ContF,  Next: ContD,  Prev: Cont,  Up: 2D plotting
+
+3.10.9 ContF
+------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContF (`const mglData
+          &'v, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const char *'sch=`""', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_contf_xy_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const char
+          *'sch, `float' zVal)
+     Рисует закрашенные линии (контуры) уровня для параметрически
+     заданной поверхности {X[i,j], Y[i,j], Z[i,j]} при Z = ZVAL (или
+     при Z=V[k] если `zVal==NAN'). Линии уровня рисуются для
+     Z[i,j]=V[k]. Строка SCH задает цветовую схему. Предыдущая цветовая
+     схема используется по умолчанию. Если SCH содержит `#', то
+     рисуется сетка. Младшие размерности массивов X, Y, Z должны быть
+     одинаковы `x.nx=z.nx && y.nx=z.ny' или `x.nx=y.nx=z.nx &&
+     x.ny=y.ny=z.ny'. Массивы X и Y могут быть векторами (не матрицами
+     как Z). График строится для каждого z среза данных. См. также
+     *note Dens::, *note Cont::, *note Axial::, *note ContFXYZ::. См.
+     раздел *note ContF sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContF (`const mglData
+          &'v, `const mglData &'z, `const char *'sch=`""', `float'
+          zVal=`NAN')
+ -- Функция С: `void' mgl_contf_val (`HMGL' gr, `const HMDT' v, `const
+          HMDT' z, `const char *'sch, `float' zVal)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContF (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `int' num=`7', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_contf_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `int' num,
+          `float' zVal)
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале [CMIN, CMAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContF (`const mglData
+          &'z, `const char *'sch=`""', `int' num=`7', `float'
+          zVal=`NAN')
+ -- Функция С: `void' mgl_contf (`HMGL' gr, `const HMDT' z, `const char
+          *'sch, `int' num, `float' zVal)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: ContD,  Next: Axial,  Prev: ContF,  Up: 2D plotting
+
+3.10.10 ContD
+-------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContD (`const mglData
+          &'v, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const char *'sch=`""', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_contd_xy_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const char
+          *'sch, `float' zVal)
+     Рисует закрашенные линии (контуры) уровня для параметрически
+     заданной поверхности {X[i,j], Y[i,j], Z[i,j]} при Z = ZVAL (или
+     при Z=V[k] если `zVal==NAN') цветами заданными явно. Линии уровня
+     рисуются для Z[i,j]=V[k] (должно быть `v.nx>2'). Строка SCH задает
+     цвет контуров: цвет k-го контура определяется символом
+     `sch[k%strlen(sch)]'. Младшие размерности массивов X, Y, Z должны
+     быть одинаковы `x.nx=z.nx && y.nx=z.ny' или `x.nx=y.nx=z.nx &&
+     x.ny=y.ny=z.ny'. Массивы X и Y могут быть векторами (не матрицами
+     как Z). График строится для каждого z среза данных. См. также
+     *note Dens::, *note Cont::, *note ContF::. См. раздел *note ContD
+     sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContD (`const mglData
+          &'v, `const mglData &'z, `const char *'sch=`""', `float'
+          zVal=`NAN')
+ -- Функция С: `void' mgl_contd_val (`HMGL' gr, `const HMDT' v, `const
+          HMDT' z, `const char *'sch, `float' zVal)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContD (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `int' num=`7', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_contd_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `int' num,
+          `float' zVal)
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале [CMIN, CMAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContD (`const mglData
+          &'z, `const char *'sch=`""', `int' num=`7', `float'
+          zVal=`NAN')
+ -- Функция С: `void' mgl_contd (`HMGL' gr, `const HMDT' z, `const char
+          *'sch, `int' num, `float' zVal)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Axial,  Next: Grad,  Prev: ContD,  Up: 2D plotting
+
+3.10.11 Axial
+-------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Axial (`const mglData
+          &'v, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const char *'sch=`""')
+ -- Функция С: `void' mgl_axial_xy_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const char
+          *'sch)
+     Рисует поверхность вращения линии уровня для параметрически
+     заданной поверхности {X[i,j], Y[i,j], Z[i,j]}. Линии уровня
+     рисуются для Z[i,j]=V[k]. Строка SCH задает цветовую схему.
+     Предыдущая цветовая схема используется по умолчанию. Если SCH
+     содержит `#', то рисуется сетчатая поверхность. Если строка
+     содержит символы `x', `y' или `z', то ось вращения (*note Other
+     settings::) устанавливается в указанное направление. Младшие
+     размерности массивов X, Y, Z должны быть одинаковы `x.nx=z.nx &&
+     y.nx=z.ny' или `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Массивы X и Y
+     могут быть векторами (не матрицами как Z). График строится для
+     каждого z среза данных. См. также *note Cont::, *note ContF::,
+     *note Torus::, *note Surf3::. См. раздел *note Axial sample::, для
+     примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Axial (`const mglData
+          &'v, `const mglData &'z, `const char *'sch=`""')
+ -- Функция С: `void' mgl_axial_val (`HMGL' gr, `const HMDT' v, `const
+          HMDT' z, `const char *'sch)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Axial (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `int' num=`3')
+ -- Функция С: `void' mgl_axial_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `int' num)
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале [CMIN, CMAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Axial (`const mglData
+          &'z, `const char *'sch=`""', `int' num=`3')
+ -- Функция С: `void' mgl_axial (`HMGL' gr, `const HMDT' z, `const char
+          *'sch, `int' num)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Grad,  Next: Grid,  Prev: Axial,  Up: 2D plotting
+
+3.10.12 Grad
+------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Grad (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'phi, `const char *'sch=`""', `int' num=`5')
+ -- Функция С: `void' mgl_grad_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `int' num,
+          `float' zVal)
+     Рисует линии градиента скалярного поля PHI[i,j,k] заданного
+     параметрически {X[i,j,k], Y[i,j,k], Z[i,j,k]}. Строка SCH задает
+     цветовую схему. Предыдущая цветовая схема используется по
+     умолчанию. Число линий пропорционально NUM. Линии рисуются только
+     с границ интервала при NUM<0. Младшие размерности массивов X, Y,
+     Z, PHI должны быть одинаковы `x.nx=phi.nx && y.nx=phi.ny &&
+     z.nx=phi.nz' или `x.nx=y.nx=z.nx=phi.nx && x.ny=y.ny=z.ny=phi.ny
+     && x.nz=y.nz=z.nz=phi.nz'. Массивы X, Y и Z могут быть векторами
+     (не матрицами как PHI). См. также *note Dens3::, *note Cont3::,
+     *note Flow::.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Grad (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `int' num=`5', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_grad_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `int' num,
+          `float' zVal)
+     Рисует линии градиента скалярного поля PHI[i,j] заданного
+     параметрически {X[i,j], Y[i,j]} при Z = ZVAL. Строка SCH задает
+     цветовую схему. Предыдущая цветовая схема используется по
+     умолчанию. Число линий пропорционально NUM. Линии рисуются только
+     с границ интервала при NUM<0. Младшие размерности массивов X, Y,
+     PHI должны быть одинаковы `x.nx=phi.nx && y.nx=phi.ny' или
+     `x.nx=y.nx=phi.nx && x.ny=y.ny=phi.ny'. Массивы X и Y могут быть
+     векторами (не матрицами как PHI). График строится для каждого z
+     среза данных. См. также *note Dens::, *note Cont::, *note ContF::,
+     *note Flow::. См. раздел *note Grad sample::, для примеров кода и
+     графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Grad (`const mglData
+          &'z, `const char *'sch=`""', `int' num=`5', `float'
+          zVal=`NAN')
+ -- Функция С: `void' mgl_grad (`HMGL' gr, `const HMDT' z, `const char
+          *'sch, `int' num, `float' zVal)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Grid,  Prev: Grad,  Up: 2D plotting
+
+3.10.13 Grid
+------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Grid (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_grid_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `float' zVal)
+     Рисует плоскую сету для параметрически заданной поверхности
+     {X[i,j], Y[i,j], Z[i,j]} при Z = ZVAL. Строка SCH задает цветовую
+     схему. Предыдущая цветовая схема используется по умолчанию.
+     Младшие размерности массивов X, Y, Z должны быть одинаковы
+     `x.nx=z.nx && y.nx=z.ny' или `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'.
+     Массивы X и Y могут быть векторами (не матрицами как Z). График
+     строится для каждого z среза данных. См. также *note Dens::, *note
+     Cont::, *note ContF::.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Grid (`const mglData
+          &'z, `const char *'sch=`""', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_grid (`HMGL' gr, `const HMDT' z, `const char
+          *'sch, `float' zVal)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: 3D plotting,  Next: Dual plotting,  Prev: 2D plotting,  Up: MathGL core
+
+3.11 3D графики
+======================
+
+Эти функции строят графики для трехмерных (3D) массивов. Трехмерными
+считаются массивы, зависящие от трех параметров (индексов) подобно
+матрице f(x_i,y_j,z_k), i=1...n, j=1...m, k=1...l. Есть 5 основных
+типов 3D графиков: поверхность постоянного уровня (Surf3), график
+плотности на срезе (Dens3), линии уровня на срезе (Cont3), закрашенные
+контуры уровня на срезе (ContF3) и график объемной прозрачности типа
+облака (Cloud). В функциях Cont3(), ContF3() и Surf3() значения уровней
+можно задавать автоматически и вручную. Можно также нарисовать на срезе
+сетку (Grid3) по массиву данных для улучшения вида графика плотности
+или линий уровня. Каждый тип графика имеет похожий интерфейс. Есть
+версия для рисования одного массива с автоматическими координатами и
+версия для параметрически заданного массива. Параметры цветовой схемы
+задаются строкой *Note Color scheme::. См. раздел *note 3D plot
+sample::, для примеров кода и графика.
+
+* Menu:
+
+* Surf3::
+* Dens3::
+* Cont3::
+* ContF3::
+* Grid3::
+* Cloud::
+* Beam::
+
+
+File: mathgl_ru.info,  Node: Surf3,  Next: Dens3,  Up: 3D plotting
+
+3.11.1 Surf3
+------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf3 (`float' val,
+          `const mglData &'x, `const mglData &'y, `const mglData &'z,
+          `const mglData &'a, `const char *'stl=`""')
+ -- Функция С: `void' mgl_surf3_xyz_val (`HMGL' gr, `float' val, `const
+          HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT' a,
+          `const char *'stl)
+     Рисует поверхность уровня для 3d массива, заданного параметрически
+     A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) при A(x,y,z)=VAL. Строка
+     SCH задает цветовую схему. Предыдущая цветовая схема используется
+     по умолчанию. Если SCH содержит `#', то рисуется сетчатая
+     поверхность. Массивы X, Y, Z могут быть векторами (не 3d массивами
+     как A). Замечу, что возможно некорректная отрисовка граней
+     вследствие неопределенности построения сечения если поверхность
+     пересекает ячейку данных 2 и более раз. См. также *note Cloud::,
+     *note Dens3::, *note Surf3C::, *note Surf3A::, *note Axial::. См.
+     раздел *note Surf3 sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf3 (`float' val,
+          `const mglData &'a, `const char *'sch=`""')
+ -- Функция С: `void' mgl_surf3_val (`HMGL' gr, `float' val, `const
+          HMDT' a, `const char *'sch)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf3 (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const char *'stl=`""', `int' num=`3')
+ -- Функция С: `void' mgl_surf3_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `const char *'stl,
+          `int' num)
+     Рисует NUM поверхностей уровня равномерно распределенных в
+     интервале [CMIN, CMAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf3 (`const mglData
+          &'a, `const char *'sch=`""', `int' num=`3')
+ -- Функция С: `void' mgl_surf3 (`HMGL' gr, `const HMDT' a, `const char
+          *'sch, `int' num)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+
+File: mathgl_ru.info,  Node: Dens3,  Next: Cont3,  Prev: Surf3,  Up: 3D plotting
+
+3.11.2 Dens3
+------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Dens3 (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `char' dir, `int' sVal=`-1', `const char *'stl=`""')
+ -- Функция С: `void' mgl_dens3_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `char' dir, `int'
+          sVal, `const char *'stl)
+     Рисует график плотности для 3d массива, заданного параметрически
+     A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]). График рисуется на срезе
+     SVAL в направлении DIR={`x', `y', `z'}. Строка SCH задает цветовую
+     схему. Предыдущая цветовая схема используется по умолчанию. Если
+     STL содержит `#', то на срезе рисуется сетка. Младшие размерности
+     массивов X, Y, Z должны быть одинаковы. Массивы X, Y, Z могут быть
+     векторами (не 3d массивами как A). См. также *note Cont3::, *note
+     ContF3::, *note Dens::, *note Grid3::. См. раздел *note Dens3
+     sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Dens3 (`const mglData
+          &'a, `char' dir, `int' sVal=`-1', `const char *'sch=`""')
+ -- Функция С: `void' mgl_dens3 (`HMGL' gr, `const HMDT' a, `char' dir,
+          `int' sVal, `const char *'sch)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' DensA (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const char *'stl=`""')
+ -- Функция С: `void' mgl_dens3_all_xyz (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' a, `const char
+          *'stl)
+     Рисует графики плотности на всех центральных срезах 3d данных,
+     заданных параметрически.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' DensA (`const mglData
+          &'a, `const char *'sch=`""')
+ -- Функция С: `void' mgl_dens3_all (`HMGL' gr, `const HMDT' a, `const
+          char *'sch)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+
+File: mathgl_ru.info,  Node: Cont3,  Next: ContF3,  Prev: Dens3,  Up: 3D plotting
+
+3.11.3 Cont3
+------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Cont3 (`const mglData
+          &'v, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const mglData &'a, `char' dir, `int' sVal=`-1', `const
+          char *'stl=`""')
+ -- Функция С: `void' mgl_cont3_xyz_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          a, `char' dir, `int' sVal, `const char *'stl)
+     Рисует линии уровня для 3d массива, заданного параметрически
+     A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]). Линии рисуются для
+     значений из массива V на срезе SVAL в направлении DIR={`x', `y',
+     `z'}. Строка STL задает цветовую схему. Предыдущая цветовая схема
+     используется по умолчанию. Если STL содержит `#', то на срезе
+     рисуется сетка. Если SCH содержит `t' или `T', то значения V[k]
+     будут выведены вдоль контуров над (или под) кривой. Младшие
+     размерности массивов X, Y, Z должны быть одинаковы. Массивы X, Y,
+     Z могут быть векторами (не 3d массивами как A). См. также *note
+     Dens3::, *note ContF3::, *note Cont::, *note Grid3::. См. раздел
+     *note Cont3 sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Cont3 (`const mglData
+          &'v, `const mglData &'a, `char' dir, `int' sVal=`-1', `const
+          char *'sch=`""')
+ -- Функция С: `void' mgl_cont3_val (`HMGL' gr, `const HMDT' v, `const
+          HMDT' a, `char' dir, `int' sVal, `const char *'sch)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Cont3 (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `char' dir, `int' sVal=`-1', `const char *'stl=`""',
+          `int' num=`7')
+ -- Функция С: `void' mgl_cont3_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `char' dir, `int'
+          sVal, `const char *'stl, `int' num)
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале [CMIN, CMAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Cont3 (`const mglData
+          &'a, `char' dir, `int' sVal=`-1', `const char *'sch=`""',
+          `int' num=`7')
+ -- Функция С: `void' mgl_cont3 (`HMGL' gr, `const HMDT' a, `char' dir,
+          `int' sVal, `const char *'sch, `int' num)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContA (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const char *'stl=`""', `int' num=`7')
+ -- Функция С: `void' mgl_cont3_all_xyz (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' a, `const char
+          *'stl, `int' num)
+     Рисует линии уровня на всех центральных срезах 3d данных, заданных
+     параметрически.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContA (`const mglData
+          &'a, `const char *'sch=`""', `int' num=`7')
+ -- Функция С: `void' mgl_cont3_all (`HMGL' gr, `const HMDT' a, `const
+          char *'sch, `int' num)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+
+File: mathgl_ru.info,  Node: ContF3,  Next: Grid3,  Prev: Cont3,  Up: 3D plotting
+
+3.11.4 ContF3
+-------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContF3 (`const
+          mglData &'v, `const mglData &'x, `const mglData &'y, `const
+          mglData &'z, `const mglData &'a, `char' dir, `int' sVal=`-1',
+          `const char *'stl=`""')
+ -- Функция С: `void' mgl_contf3_xyz_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          a, `char' dir, `int' sVal, `const char *'stl)
+     Рисует закрашенные линии (контуры) уровня для 3d массива,
+     заданного параметрически A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]).
+     Линии рисуются для значений из массива V на срезе SVAL в
+     направлении DIR={`x', `y', `z'}. Строка SCH задает цветовую схему.
+     Предыдущая цветовая схема используется по умолчанию. Если STL
+     содержит `#', то на срезе рисуется сетка. Младшие размерности
+     массивов X, Y, Z должны быть одинаковы. Массивы X, Y, Z могут быть
+     векторами (не 3d массивами как A). См. также *note Dens3::, *note
+     Cont3::, *note ContF::, *note Grid3::. См. раздел *note ContF3
+     sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContF3 (`const
+          mglData &'v, `const mglData &'a, `char' dir, `int' sVal=`-1',
+          `const char *'sch=`""')
+ -- Функция С: `void' mgl_contf3_val (`HMGL' gr, `const HMDT' v, `const
+          HMDT' a, `char' dir, `int' sVal, `const char *'sch)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContF3 (`const
+          mglData &'x, `const mglData &'y, `const mglData &'z, `const
+          mglData &'a, `char' dir, `int' sVal=`-1', `const char
+          *'stl=`""', `int' num=`7')
+ -- Функция С: `void' mgl_contf3_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `char' dir, `int'
+          sVal, `const char *'stl, `int' num)
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале [CMIN, CMAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContF3 (`const
+          mglData &'a, `char' dir, `int' sVal=`-1', `const char
+          *'sch=`""', `int' num=`7')
+ -- Функция С: `void' mgl_contf3 (`HMGL' gr, `const HMDT' a, `char'
+          dir, `int' sVal, `const char *'sch, `int' num)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContFA (`const
+          mglData &'x, `const mglData &'y, `const mglData &'z, `const
+          mglData &'a, `const char *'stl=`""', `int' num=`7')
+ -- Функция С: `void' mgl_contf3_all_xyz (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' a, `const char
+          *'stl, `int' num)
+     Рисует закрашенные линии (контуры) уровня на всех центральных
+     срезах 3d данных, заданных параметрически.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContFA (`const
+          mglData &'a, `const char *'sch=`""', `int' num=`7')
+ -- Функция С: `void' mgl_contf3_all (`HMGL' gr, `const HMDT' a, `const
+          char *'sch, `int' num)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+
+File: mathgl_ru.info,  Node: Grid3,  Next: Cloud,  Prev: ContF3,  Up: 3D plotting
+
+3.11.5 Grid3
+------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Grid3 (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `char' dir, `int' sVal=`-1', `const char *'stl=`""')
+ -- Функция С: `void' mgl_grid3_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `char' dir, `int'
+          sVal, `const char *'stl)
+     Рисует сетку для 3d массива, заданного параметрически
+     A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]). График рисуется на срезе
+     SVAL в направлении DIR={`x', `y', `z'}. Строка SCH задает цветовую
+     схему. Предыдущая цветовая схема используется по умолчанию.
+     Младшие размерности массивов X, Y, Z должны быть одинаковы.
+     Массивы X, Y, Z могут быть векторами (не 3d массивами как A). См.
+     также *note Cont3::, *note ContF3::, *note Dens3::, *note Grid::.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Grid3 (`const mglData
+          &'a, `char' dir, `int' sVal=`-1', `const char *'sch=`""')
+ -- Функция С: `void' mgl_grid3 (`HMGL' gr, `const HMDT' a, `char' dir,
+          `int' sVal, `const char *'sch)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' GridA (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const char *'stl=`""')
+ -- Функция С: `void' mgl_grid3_all_xyz (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' a, `const char
+          *'stl)
+     Рисует сетку на всех центральных срезах 3d данных, заданных
+     параметрически.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' GridA (`const mglData
+          &'a, `const char *'sch=`""')
+ -- Функция С: `void' mgl_grid3_all (`HMGL' gr, `const HMDT' a, `const
+          char *'sch)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+
+File: mathgl_ru.info,  Node: Cloud,  Next: Beam,  Prev: Grid3,  Up: 3D plotting
+
+3.11.6 Cloud
+------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Cloud (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const char *'stl=`""', `float' alpha=`1')
+ -- Функция С: `void' mgl_cloud_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `const char *'stl,
+          `float' alpha=`1')
+     Рисует облачный график для 3d массива, заданного параметрически
+     A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]). График состоит из кубиков
+     с цветом и прозрачностью пропорциональной значениям A. Результат
+     похож на облако - малые значения прозрачны, а большие нет. Число
+     кубиков зависит от SetMeshNum() (*note Other settings::). Строка
+     SCH задает цветовую схему. Предыдущая цветовая схема используется
+     по умолчанию. Параметр ALPHA меняет общую прозрачность графика.
+     Младшие размерности массивов X, Y, Z должны быть одинаковы.
+     Массивы X, Y, Z могут быть векторами (не 3d массивами как A). См.
+     также *note Surf3::. См. раздел *note Cloud sample::, для примеров
+     кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Cloud (`const mglData
+          &'a, `const char *'stl=`""', `float' alpha=`1')
+ -- Функция С: `void' mgl_cloud (`HMGL' gr, `const HMDT' a, `const char
+          *'stl, `float' alpha=`1')
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+ -- Метод класса `mglGraph' (C++): `void' CloudP (`const mglData &'x,
+          `const mglData &'y, `const mglData &'z, `const mglData &'a,
+          `const char *'stl=`""', `float' alpha=`1')
+ -- Функция С: `void' mgl_cloudp_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `const char *'stl,
+          `float' alpha=`1')
+     Как первый, но используются полупрозрачные точки вместо кубиков.
+     См. раздел *note CloudP sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++): `void' CloudP (`const mglData &'a,
+          `const char *'stl=`""', `float' alpha=`1')
+ -- Функция С: `void' mgl_cloudp (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' alpha=`1')
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+
+File: mathgl_ru.info,  Node: Beam,  Prev: Cloud,  Up: 3D plotting
+
+3.11.7 Beam
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Beam (`float' val,
+          `const mglData &'tr, `const mglData &'g1, `const mglData
+          &'g2, `const mglData &'a, `float' r, `const char *'stl=`""',
+          `int' flag=`0')
+ -- Функция С: `void' mgl_beam_val (`HMGL' gr, `float' val, `const
+          HMDT' tr, `const HMDT' g1, `const HMDT' g2, `const HMDT' a,
+          `float' r, `const char *'stl, `int' flag)
+     Рисует поверхность уровня для 3d массива A при постоянном значении
+     A=VAL. Это специальный тип графика для A заданного в
+     сопровождающей системе координат вдоль кривой TR с ортами G1, G2 и
+     с поперечным размером R. Переменная FLAG - битовый флаг: `0x1' -
+     рисовать в сопровождающих (не лабораторных) координатах; `0x2' -
+     рисовать проекцию на плоскость \rho-z; `0x4' - рисовать
+     нормированное в каждом сечении поле. Размеры массивов по 1-му
+     индексу TR, G1, G2 должны быть nx>2. Размеры массивов по 2-му
+     индексу TR, G1, G2 и размер по 3-му индексу массива A должны быть
+     одинаковы. См. также *note Surf3::.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Beam (`const mglData
+          &'tr, `const mglData &'g1, `const mglData &'g2, `const
+          mglData &'a, `float' r, `const char *'stl=`""', `int'
+          flag=`0', `int' num=`3')
+ -- Функция С: `void' mgl_beam (`HMGL' gr, `const HMDT' tr, `const
+          HMDT' g1, `const HMDT' g2, `const HMDT' a, `float' r, `const
+          char *'stl, `int' flag=`0', `int' num=`3')
+     Рисует NUM равномерно распределенных в интервале [CMIN, CMAX]
+     поверхностей уровня 3d массива в сопровождающей системе координат.
+
+
+File: mathgl_ru.info,  Node: Dual plotting,  Next: Vector fields,  Prev: 3D plotting,  Up: MathGL core
+
+3.12 Парные графики
+================================
+
+Эти функции строят графики для двух связанных массивов. Есть несколько
+основных типов 3D графиков: поверхность и поверхность уровня с окраской
+по второму массиву (SurfC, Surf3C), поверхность и поверхность уровня с
+прозрачностью по второму массиву (SurfA, Surf3A), плитки переменного
+размера (TileS), диаграмма точечного отображения (Map), STFA диаграмма
+(STFA). В функциях Surf3A() и Surf3C() значения уровней можно задавать
+автоматически и вручную. Каждый тип графика имеет похожий интерфейс.
+Есть версия для рисования одного массива с автоматическими координатами
+и версия для параметрически заданного массива. Параметры цветовой схемы
+задаются строкой *Note Color scheme::.
+
+* Menu:
+
+* SurfC::
+* Surf3C::
+* SurfA::
+* Surf3A::
+* TileS::
+* Map::
+* STFA::
+
+
+File: mathgl_ru.info,  Node: SurfC,  Next: Surf3C,  Up: Dual plotting
+
+3.12.1 SurfC
+------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SurfC (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'c, `const char *'sch=`""')
+ -- Функция С: `void' mgl_surfc_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' c, `const char *'sch)
+     Рисует параметрически заданную поверхность {X[i,j], Y[i,j],
+     Z[i,j]} с цветом, заданным массивом C[i,j]. Строка SCH задает
+     цветовую схему. Предыдущая цветовая схема используется по
+     умолчанию. Если SCH содержит `#', то на поверхности рисуется
+     сетка. Все размеры массивов Z и C должны быть одинаковы. Младшие
+     размерности массивов X, Y, Z должны быть одинаковы `x.nx=z.nx &&
+     y.nx=z.ny' или `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Массивы X и Y
+     могут быть векторами (не матрицами как Z). График строится для
+     каждого z среза данных. См. также *note Surf::, *note SurfA::,
+     *note Surf3C::. См. раздел *note SurfC sample::, для примеров кода
+     и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SurfC (`const mglData
+          &'z, `const mglData &'c, `const char *'sch=`""')
+ -- Функция С: `void' mgl_surfc (`HMGL' gr, `const HMDT' z, `const
+          HMDT' c, `const char *'sch)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Surf3C,  Next: SurfA,  Prev: SurfC,  Up: Dual plotting
+
+3.12.2 Surf3C
+-------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf3C (`float' val,
+          `const mglData &'x, `const mglData &'y, `const mglData &'z,
+          `const mglData &'a, `const mglData &'c, `const char
+          *'stl=`""')
+ -- Функция С: `void' mgl_surf3c_xyz_val (`HMGL' gr, `float' val,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          a, `const HMDT' c, `const char *'stl)
+     Рисует поверхность уровня для 3d массива, заданного параметрически
+     A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) при A(x,y,z)=VAL.
+     Аналогично Surf3(), но цвет задается массивом C. Строка SCH задает
+     цветовую схему. Предыдущая цветовая схема используется по
+     умолчанию. Если SCH содержит `#', то рисуется сетчатая
+     поверхность. Все размеры массивов Z и C должны быть одинаковы.
+     Массивы X, Y, Z могут быть векторами (не 3d массивами как A).
+     Замечу, что возможно некорректная отрисовка граней вследствие
+     неопределенности построения сечения если поверхность пересекает
+     ячейку данных 2 и более раз. См. также *note Surf3::, *note
+     SurfC::, *note Surf3A::. См. раздел *note Surf3C sample::, для
+     примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf3C (`float' val,
+          `const mglData &'a, `const mglData &'c, `const char
+          *'sch=`""')
+ -- Функция С: `void' mgl_surf3c_val (`HMGL' gr, `float' val, `const
+          HMDT' a, `const HMDT' c, `const char *'sch)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf3C (`const
+          mglData &'x, `const mglData &'y, `const mglData &'z, `const
+          mglData &'a, `const mglData &'c, `const char *'stl=`""',
+          `int' num=`3')
+ -- Функция С: `void' mgl_surf3c_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `const HMDT' c,
+          `const char *'stl, `int' num)
+     Рисует NUM поверхностей уровня равномерно распределенных в
+     интервале [CMIN, CMAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf3C (`const
+          mglData &'a, `const mglData &'c, `const char *'sch=`""',
+          `int' num=`3')
+ -- Функция С: `void' mgl_surf3c (`HMGL' gr, `const HMDT' a, `const
+          HMDT' c, `const char *'sch, `int' num)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+
+File: mathgl_ru.info,  Node: SurfA,  Next: Surf3A,  Prev: Surf3C,  Up: Dual plotting
+
+3.12.3 SurfA
+------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SurfA (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'c, `const char *'sch=`""')
+ -- Функция С: `void' mgl_surfa_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' c, `const char *'sch)
+     Рисует параметрически заданную поверхность {X[i,j], Y[i,j],
+     Z[i,j]} с прозрачностью, заданным массивом C[i,j]. Строка SCH
+     задает цветовую схему. Предыдущая цветовая схема используется по
+     умолчанию. Если SCH содержит `#', то на поверхности рисуется
+     сетка. Все размеры массивов Z и C должны быть одинаковы. Младшие
+     размерности массивов X, Y, Z должны быть одинаковы `x.nx=z.nx &&
+     y.nx=z.ny' или `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Массивы X и Y
+     могут быть векторами (не матрицами как Z). График строится для
+     каждого z среза данных. См. также *note Surf::, *note SurfC::,
+     *note Surf3A::, *note TileS::. См. раздел *note SurfA sample::,
+     для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SurfA (`const mglData
+          &'z, `const mglData &'c, `const char *'sch=`""')
+ -- Функция С: `void' mgl_surfa (`HMGL' gr, `const HMDT' z, `const
+          HMDT' c, `const char *'sch)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Surf3A,  Next: TileS,  Prev: SurfA,  Up: Dual plotting
+
+3.12.4 Surf3A
+-------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf3A (`float' val,
+          `const mglData &'x, `const mglData &'y, `const mglData &'z,
+          `const mglData &'a, `const mglData &'c, `const char
+          *'stl=`""')
+ -- Функция С: `void' mgl_surf3a_xyz_val (`HMGL' gr, `float' val,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          a, `const HMDT' c, `const char *'stl)
+     Рисует поверхность уровня для 3d массива, заданного параметрически
+     A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) при A(x,y,z)=VAL.
+     Аналогично Surf3(), но прозрачность задается массивом C. Строка
+     SCH задает цветовую схему. Предыдущая цветовая схема используется
+     по умолчанию. Если SCH содержит `#', то рисуется сетчатая
+     поверхность. Все размеры массивов Z и C должны быть одинаковы.
+     Массивы X, Y, Z могут быть векторами (не 3d массивами как A).
+     Замечу, что возможно некорректная отрисовка граней вследствие
+     неопределенности построения сечения если поверхность пересекает
+     ячейку данных 2 и более раз. См. также *note Surf3::, *note
+     SurfA::, *note Surf3C::. См. раздел *note Surf3A sample::, для
+     примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf3A (`float' val,
+          `const mglData &'a, `const mglData &'c, `const char
+          *'sch=`""')
+ -- Функция С: `void' mgl_surf3a_val (`HMGL' gr, `float' val, `const
+          HMDT' a, `const HMDT' c, `const char *'sch)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf3A (`const
+          mglData &'x, `const mglData &'y, `const mglData &'z, `const
+          mglData &'a, `const mglData &'c, `const char *'stl=`""',
+          `int' num=`3')
+ -- Функция С: `void' mgl_surf3a_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `const HMDT' c,
+          `const char *'stl, `int' num)
+     Рисует NUM поверхностей уровня равномерно распределенных в
+     интервале [CMIN, CMAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf3A (`const
+          mglData &'a, `const mglData &'c, `const char *'sch=`""',
+          `int' num=`3')
+ -- Функция С: `void' mgl_surf3a (`HMGL' gr, `const HMDT' a, `const
+          HMDT' c, `const char *'sch, `int' num)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+
+File: mathgl_ru.info,  Node: TileS,  Next: Map,  Prev: Surf3A,  Up: Dual plotting
+
+3.12.5 TileS
+------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' TileS (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'r, `const char *'sch=`""')
+ -- Функция С: `void' mgl_tiles_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' r, `const char *'sch)
+     Рисует плитки для параметрически заданной поверхности {X[i,j],
+     Y[i,j], Z[i,j]}. Аналогично Tile(), но размер плиток задается
+     массивов R. Это создает эффект "прозрачности" при экспорте в файлы
+     EPS. Строка SCH задает цветовую схему. Предыдущая цветовая схема
+     используется по умолчанию. Младшие размерности массивов X, Y, Z
+     должны быть одинаковы `x.nx=z.nx && y.nx=z.ny' или `x.nx=y.nx=z.nx
+     && x.ny=y.ny=z.ny'. Массивы X и Y могут быть векторами (не
+     матрицами как Z). График строится для каждого z среза данных. См.
+     также *note SurfA::, *note Tile::. См. раздел *note TileS
+     sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' TileS (`const mglData
+          &'z, `const mglData &'c, `const char *'sch=`""')
+ -- Функция С: `void' mgl_tiles (`HMGL' gr, `const HMDT' z, `const
+          HMDT' c, `const char *'sch)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Map,  Next: STFA,  Prev: TileS,  Up: Dual plotting
+
+3.12.6 Map
+----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Map (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ax, `const mglData
+          &'ay, `const char *'sch=`""', `int' ks=`0', `bool'
+          pnts=`true')
+ -- Функция С: `void' mgl_map_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ax, `const HMDT' ay, `const char *'sch,
+          `int' ks, `int' pnts)
+     Визуализирует точечное отображение для матриц {AX, AY }
+     параметрически зависящих от координат X, Y. Исходное положение
+     ячейки задает ее цвет. Высота пропорциональна якобиану J(ax,ay).
+     График является аналогом диаграммы Арнольда. Если `pnts=false', то
+     рисуются грани, иначе цветные точки рисуются в узлах матриц
+     (полезно для "запутанного" отображения). Параметр KS задает
+     используемый срез матриц. Строка SCH задает цветовую схему.
+     Предыдущая цветовая схема используется по умолчанию. Все размеры
+     массивов AX и AY должны быть одинаковы. Младшие размерности
+     массивов X, Y, AX должны быть одинаковы. Массивы X и Y могут быть
+     векторами (не матрицами как AX). *Note Color scheme::. См. раздел
+     *note Map sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Map (`const mglData
+          &'ax, `const mglData &'ay, `const char *'sch=`""', `int'
+          ks=`0', `bool' pnts=`true')
+ -- Функция С: `void' mgl_map (`HMGL' gr, `const HMDT' ax, `const HMDT'
+          ay, `const char *'sch, `int' ks, `int' pnts)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: STFA,  Prev: Map,  Up: Dual plotting
+
+3.12.7 STFA
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' STFA (`const mglData
+          &'x, `const mglData &'y, `const mglData &'re, `const mglData
+          &'im, `int' dn, `const char *'sch=`""', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_stfa_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' re, `const HMDT' im, `int' dn, `const
+          char *'sch, `float' zVal)
+     Рисует спектрограмму комплексного массива RE+i*`im' для Фурье
+     размером DN точек в плоскости Z=ZVAL. Параметр DN - любое четное
+     число. Например в 1D случае, результатом будет график плотности от
+     массива res[i,j]=|\sum_d^dn
+     exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn размером {int(nx/dn), dn,
+     ny}. Массивы RE, IM параметрически зависят от координат X, Y.
+     Строка SCH задает цветовую схему. Предыдущая цветовая схема
+     используется по умолчанию. Все размеры массивов RE и IM должны
+     быть одинаковы. Младшие размерности массивов X, Y, RE должны быть
+     одинаковы. Массивы X и Y могут быть векторами (не матрицами как
+     RE).  См. раздел *note STFA sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' STFA (`const mglData
+          &'re, `const mglData &'im, `int' dn, `const char *'sch=`""',
+          `float' zVal=`NAN')
+ -- Функция С: `void' mgl_stfa (`HMGL' gr, `const HMDT' re, `const
+          HMDT' im, `int' dn, `const char *'sch, `float' zVal)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Vector fields,  Next: Other plotting,  Prev: Dual plotting,  Up: MathGL core
+
+3.13 Векторные поля
+================================
+
+Эти функции рисуют графики для 2D и 3D векторных полей. Есть несколько
+типов графиков: просто векторное поле (Vect), вектора вдоль траектории
+(Traj), векторное поле каплями (Dew), нити тока (Flow, FlowP), трубки
+тока (Pipe). Каждый тип графика имеет похожий интерфейс. Есть версия
+для рисования одного массива с автоматическими координатами и версия
+для параметрически заданного массива. Параметры цветовой схемы задаются
+строкой *Note Color scheme::.
+
+* Menu:
+
+* Traj::
+* Vect::
+* Dew::
+* Flow::
+* FlowP::
+* Pipe::
+
+
+File: mathgl_ru.info,  Node: Traj,  Next: Vect,  Up: Vector fields
+
+3.13.1 Traj
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Traj (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""', `float' len=`0')
+ -- Метод класса `mglGraph' (C++, Python): `void' Traj (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ax, `const mglData
+          &'ay, `const char *'sch=`""', `float' zVal=`NAN', `float'
+          len=`0')
+ -- Функция С: `void' mgl_traj_xyz (`HMGL' gr, `const HMDT'x, `const
+          HMDT'y, `const HMDT'z, `const HMDT'ax, `const HMDT'ay, `const
+          HMDT'az, `const char *'sch, `float' len)
+ -- Функция С: `void' mgl_traj_xy (`HMGL' gr, `const HMDT'x, `const
+          HMDT'y, `const HMDT'ax, `const HMDT'ay, `const char *'sch,
+          `float' zVal, `float' len)
+     Рисует вектора {AX, AY, AZ} вдоль кривой {X, Y, Z}. Длина векторов
+     пропорциональна \sqrt{ax^2+ay^2+az^2}. Строка PEN задает цвет
+     (*note Line styles::). По умолчанию (`pen=""') используется
+     текущий цвет из палитры (*note Palette and colors::). Параметр LEN
+     задает фактор длины векторов (если не нуль) или выбирать длину
+     пропорционально расстоянию между точками кривой (если LEN=0).
+     Размер по 1-му индексу должен быть 2 или больше. График рисуется
+     для каждой строки если один из массивов матрица. См. также *note
+     Vect::. См. раздел *note Traj sample::, для примеров кода и
+     графика.
+
+
+File: mathgl_ru.info,  Node: Vect,  Next: Dew,  Prev: Traj,  Up: Vector fields
+
+3.13.2 Vect
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Vect (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ax, `const mglData
+          &'ay, `const char *'sch=`""', `float' zVal=`NAN', `int'
+          flag=`0')
+ -- Функция С: `void' mgl_vect_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ax, `const HMDT' ay, `const char *'sch,
+          `float' zVal, `int' flag)
+     Рисует векторное поле {AX, AY} параметрически зависящее от
+     координат X, Y на плоскости при Z=ZVAL. Длина и цвет векторов
+     пропорциональна \sqrt{ax^2+ay^2}. Число рисуемых векторов зависит
+     от `SetMeshNum()' (*note Other settings::). Цвет задается строкой
+     SCH. Предыдущая цветовая схема используется по умолчанию. Параметр
+     FLAG побитовый флаг для настройки вид векторов: `MGL_VEC_COL' -
+     двуцветный вектор, `MGL_VEC_LEN' - одинаковая длина векторов,
+     `MGL_VEC_DOT' - рисует штрихи вместо стрелок, `MGL_VEC_END' -
+     рисует стрелку в точку сетки, `MGL_VEC_MID' - рисует стрелку с
+     серединой в точке сетки. Все размеры массивов AX и AY должны быть
+     одинаковы. Младшие размерности массивов X, Y и AX должны быть
+     одинаковы. Массивы X и Y могут быть векторами (не матрицами как
+     AX). График строится для каждого z среза AX, AY. См. также *note
+     Flow::, *note Dew::. См. раздел *note Vect sample::, для примеров
+     кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Vect (`const mglData
+          &'ax, `const mglData &'ay, `const char *'sch=`""', `float'
+          zVal=`NAN', `int' flag=`0')
+ -- Функция С: `void' mgl_vect_2d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const char *'sch, `float' zVal, `int' flag)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Vect (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""', `int' flag=`0')
+ -- Функция С: `void' mgl_vect_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' ax, `const HMDT' ay,
+          `const HMDT' az, `const char *'sch, `int' flag)
+     Это 3D версия графика. Здесь массивы AX, AY, AZ должны быть 3d
+     массивами, а длина и цвет пропорциональны \sqrt{ax^2+ay^2+az^2}.
+     См. раздел *note Vect 3D sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Vect (`const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""', `int' flag=`0')
+ -- Функция С: `void' mgl_vect_3d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const HMDT' az, `const char *'sch, `int' flag)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+
+File: mathgl_ru.info,  Node: Dew,  Next: Flow,  Prev: Vect,  Up: Vector fields
+
+3.13.3 Dew
+----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Dew (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ax, `const mglData
+          &'ay, `const char *'sch=`""', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_dew_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ax, `const HMDT' ay, `const char *'sch,
+          `float' zVal)
+     Рисует капли для векторного поля {AX, AY}, параметрически
+     зависящего от координат X, Y при Z=ZVAL. Замечу, что график
+     требует много памяти и процессорного времени для своего создания!
+     Цвет капель пропорционален \sqrt{ax^2+ay^2}. Число капель
+     определяется `SetMeshNum()' (*note Other settings::). Цвет
+     задается строкой SCH. Предыдущая цветовая схема используется по
+     умолчанию. Все размеры массивов AX и AY должны быть одинаковы.
+     Младшие размерности массивов X, Y и AX должны быть одинаковы.
+     Массивы X и Y могут быть векторами (не матрицами как AX). График
+     строится для каждого z среза AX, AY. См. также *note Vect::. См.
+     раздел *note Dew sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Dew (`const mglData
+          &'ax, `const mglData &'ay, `const char *'sch=`""', `float'
+          zVal=`NAN')
+ -- Функция С: `void' mgl_dew (`HMGL' gr, `const HMDT' ax, `const HMDT'
+          ay, `const char *'sch, `float' zVal)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Flow,  Next: FlowP,  Prev: Dew,  Up: Vector fields
+
+3.13.4 Flow
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Flow (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ax, `const mglData
+          &'ay, `const char *'sch=`""', `int' num=`5', `bool'
+          central=`true', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_flow_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ax, `const HMDT' ay, `const char *'sch,
+          `int' num, `int' central, `float' zVal)
+     Рисует нити тока для векторного поля {AX, AY}, параметрически
+     зависящего от координат X, Y на плоскости при z = ZVAL. Число
+     нитей пропорционально NUM. Параметр CENTRAL задает возможность
+     старта нитей изнутри сетки (если true) или только с краев (если
+     false). С версии 1.11 он игнорируется и всегда равен (NUM>0). Цвет
+     нитей пропорционален \sqrt{ax^2+ay^2}. Теплые цвета соответствуют
+     нормальному току (типа стока). Холодные цвета соответствуют
+     обратному току (типа источника). Строка SCH задает цветовую схему.
+     Предыдущая цветовая схема используется по умолчанию. Все размеры
+     массивов AX и AY должны быть одинаковы. Младшие размерности
+     массивов X, Y и AX должны быть одинаковы. Массивы X и Y могут быть
+     векторами (не матрицами как AX). График строится для каждого z
+     среза AX, AY. См. также *note Pipe::, *note Vect::. См. раздел
+     *note Flow sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Flow (`const mglData
+          &'ax, `const mglData &'ay, `const char *'sch=`""', `int'
+          num=`5', `bool' central=`true', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_flow_2d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const char *'sch, `int' num, `int' central,
+          `float' zVal)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Flow (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""', `int' num=`3', `bool' central=`true')
+ -- Функция С: `void' mgl_flow_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' ax, `const HMDT' ay,
+          `const HMDT' az, `const char *'sch, `int' num, `int' central)
+     Это 3D версия графика. Здесь массивы AX, AY, AZ должны быть 3d
+     массивами, а цвет пропорционален \sqrt{ax^2+ay^2+az^2}. См. раздел
+     *note Flow 3D sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Flow (`const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""', `int' num=`3', `bool' central=`true')
+ -- Функция С: `void' mgl_flow_3d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const HMDT' az, `const char *'sch, `int' num,
+          `int' central)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: FlowP,  Next: Pipe,  Prev: Flow,  Up: Vector fields
+
+3.13.5 FlowP
+------------
+
+ -- Метод класса `mglGraph' (C++): `void' FlowP (`mglPoint' p0, `const
+          mglData &'x, `const mglData &'y, `const mglData &'ax, `const
+          mglData &'ay, `const char *'sch=`""')
+ -- Метод класса `mglGraph' (Python): `void' FlowP (`float' x0, `float'
+          y0, `float' z0, `const mglData &'x, `const mglData &'y,
+          `const mglData &'ax, `const mglData &'ay, `const char
+          *'sch=`""')
+ -- Функция С: `void' mgl_flowp_xy (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `const HMDT' x, `const HMDT' y, `const HMDT' ax,
+          `const HMDT' ay, `const char *'sch)
+     Рисует нить тока из точки P0 для векторного поля {AX, AY},
+     параметрически зависящего от координат X, Y на плоскости при z =
+     P0.z. Цвет нити пропорционален \sqrt{ax^2+ay^2}. Теплые цвета
+     соответствуют нормальному току (типа стока). Холодные цвета
+     соответствуют обратному току (типа источника). Строка SCH задает
+     цветовую схему. Предыдущая цветовая схема используется по
+     умолчанию. Все размеры массивов AX и AY должны быть одинаковы.
+     Младшие размерности массивов X, Y и AX должны быть одинаковы.
+     Массивы X и Y могут быть векторами (не матрицами как AX). График
+     строится для каждого z среза AX, AY. См. также *note Pipe::, *note
+     Vect::.
+
+ -- Метод класса `mglGraph' (C++): `void' FlowP (`mglPoint' p0, `const
+          mglData &'ax, `const mglData &'ay, `const char *'sch=`""')
+ -- Метод класса `mglGraph' (Python): `void' FlowP (`float' x0, `float'
+          y0, `float' z0, `const mglData &'ax, `const mglData &'ay,
+          `const char *'sch=`""')
+ -- Функция С: `void' mgl_flowp_2d (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `const HMDT' ax, `const HMDT' ay, `const char
+          *'sch)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+ -- Метод класса `mglGraph' (C++): `void' FlowP (`mglPoint' p0, `const
+          mglData &'x, `const mglData &'y, `const mglData &'z, `const
+          mglData &'ax, `const mglData &'ay, `const mglData &'az,
+          `const char *'sch=`""')
+ -- Метод класса `mglGraph' (Python): `void' FlowP (`float' x0, `float'
+          y0, `float' z0, `const mglData &'x, `const mglData &'y,
+          `const mglData &'z, `const mglData &'ax, `const mglData &'ay,
+          `const mglData &'az, `const char *'sch=`""')
+ -- Функция С: `void' mgl_flowp_xyz (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `const HMDT' x, `const HMDT' y, `const HMDT' z,
+          `const HMDT' ax, `const HMDT' ay, `const HMDT' az, `const
+          char *'sch)
+     Это 3D версия графика. Здесь массивы AX, AY, AZ должны быть 3d
+     массивами, а цвет пропорциональны \sqrt{ax^2+ay^2+az^2}. См.
+     раздел *note Flow 3D sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++): `void' FlowP (`mglPoint' p0, `const
+          mglData &'ax, `const mglData &'ay, `const mglData &'az,
+          `const char *'sch=`""')
+ -- Метод класса `mglGraph' (Python): `void' FlowP (`float' x0, `float'
+          y0, `float' z0, `const mglData &'ax, `const mglData &'ay,
+          `const mglData &'az, `const char *'sch=`""')
+ -- Функция С: `void' mgl_flowp_3d (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `const HMDT' ax, `const HMDT' ay, `const HMDT'
+          az, `const char *'sch)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Pipe,  Prev: FlowP,  Up: Vector fields
+
+3.13.6 Pipe
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Pipe (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ax, `const mglData
+          &'ay, `const char *'sch=`""', `float' r0=`0.05', `int'
+          num=`5', `bool' central=`true', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_pipe_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ax, `const HMDT' ay, `const char *'sch,
+          `float' r0, `int' num, `int' central, `float' zVal)
+     Рисует трубки тока для векторного поля {AX, AY}, параметрически
+     зависящего от координат X, Y на плоскости при z = ZVAL. Число
+     трубок пропорционально NUM. Параметр CENTRAL задает возможность
+     старта трубок изнутри сетки (если true) или только с краев (если
+     false). С версии 1.11 он игнорируется и всегда равен (NUM>0). Цвет
+     и радиус трубок пропорционален \sqrt{ax^2+ay^2}. Теплые цвета
+     соответствуют нормальному току (типа стока). Холодные цвета
+     соответствуют обратному току (типа источника). Строка SCH задает
+     цветовую схему. Предыдущая цветовая схема используется по
+     умолчанию. Параметр R0 задает радиус трубок. При R0<0 радиус
+     трубок обратно пропорционален их амплитуде. Все размеры массивов
+     AX и AY должны быть одинаковы. Младшие размерности массивов X, Y и
+     AX должны быть одинаковы. Массивы X и Y могут быть векторами (не
+     матрицами как AX). График строится для каждого z среза AX, AY. См.
+     также *note Flow::, *note Vect::. См. раздел *note Pipe sample::,
+     для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Pipe (`const mglData
+          &'ax, `const mglData &'ay, `const char *'sch=`""', `float'
+          r0=`0.05', `int' num=`5', `bool' central=`true', `float'
+          zVal=`NAN')
+ -- Функция С: `void' mgl_pipe_2d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const char *'sch, `float' r0, `int' num, `int'
+          central, `float' zVal)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Pipe (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""', `float' r0=`0.05', `int' num=`3', `bool'
+          central=`true')
+ -- Функция С: `void' mgl_pipe_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' ax, `const HMDT' ay,
+          `const HMDT' az, `const char *'sch, `float' r0, `int' num,
+          `int' central)
+     Это 3D версия графика. Здесь массивы AX, AY, AZ должны быть 3d
+     массивами, а цвет пропорциональны \sqrt{ax^2+ay^2+az^2}. См.
+     раздел *note Pipe 3D sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Pipe (`const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""', `float' r0=`0.05', `int' num=`3', `bool'
+          central=`true')
+ -- Функция С: `void' mgl_pipe_3d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const HMDT' az, `const char *'sch, `float' r0,
+          `int' num, `int' central)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Other plotting,  Next: Nonlinear fitting,  Prev: Vector fields,  Up: MathGL core
+
+3.14 Прочие графики
+================================
+
+Это функции, не относящиеся к какой-то специальной категории. Сюда
+входят функции построения графиков по текстовым формулам (Plots by
+formula), рисования поверхностей из треугольников (TriPlot),
+произвольных точек в пространстве (Dots) и реконструкции по ним
+поверхности (Crust), графики плотности и линии уровня на плоскостях,
+перпендикулярных осям x, y или z (Dens[XYZ], Cont[XYZ], ContF[XYZ]),
+функция "упрощенного" рисования (SimplePlot). Каждый тип графика имеет
+похожий интерфейс. Есть версия для рисования одного массива с
+автоматическими координатами и версия для параметрически заданного
+массива. Параметры цветовой схемы задаются строкой. *Note Color
+scheme::.
+
+* Menu:
+
+* DensXYZ::
+* ContXYZ::
+* ContFXYZ::
+* Dots::
+* Crust::
+* TriPlot::
+* TriCont::
+* QuadPlot::
+* Plots by formula::
+* SimplePlot::
+
+
+File: mathgl_ru.info,  Node: DensXYZ,  Next: ContXYZ,  Up: Other plotting
+
+3.14.1 DensXYZ
+--------------
+
+Эти функции рисуют график плотности на x, y или z плоскостях. Если A -
+3d массив, то выполняется интерполяция к заданному срезу SVAL. Функции
+полезны для создания проекций 3D массивов на оси координат. Например,
+код
+     gr->DensX(c.Sum("x"),"BbcyrR",-1);
+     gr->DensY(c.Sum("y"),0,1);
+     gr->DensZ(c.Sum("z"),0,-1);
+   создают такую картинку. См. также *note ContXYZ::, *note ContFXYZ::,
+*note Dens::, *note Data distributions::. См. раздел *note Dens
+projection sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' DensX (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN')
+ -- Функция С: `void' mgl_dens_x (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal)
+     Рисует график плотности A при x = SVAL.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' DensY (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN')
+ -- Функция С: `void' mgl_dens_y (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal)
+     Рисует график плотности A при y = SVAL.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' DensZ (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN')
+ -- Функция С: `void' mgl_dens_z (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal)
+     Рисует график плотности A при z = SVAL.
+
+
+File: mathgl_ru.info,  Node: ContXYZ,  Next: ContFXYZ,  Prev: DensXYZ,  Up: Other plotting
+
+3.14.2 ContXYZ
+--------------
+
+Эти функции рисуют линии уровня на x, y или z плоскостях. Если A - 3d
+массив, то выполняется интерполяция к заданному срезу SVAL. Функции
+полезны для создания проекций 3D массивов на оси координат. Например,
+код
+     gr->ContX(c.Sum("x"),"BbcyrR",-1);
+     gr->ContY(c.Sum("y"),0,1);
+     gr->ContZ(c.Sum("z"),0,-1);
+   создают такую картинку. См. также *note ContFXYZ::, *note DensXYZ::,
+*note Cont::, *note Data distributions::. См. раздел *note Cont
+projection sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContX (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN', `int'
+          num=`7')
+ -- Функция С: `void' mgl_cont_x (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal, `int' num)
+     Рисует NUM линий уровня для массива A при x = SVAL.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContY (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN', `int'
+          num=`7')
+ -- Функция С: `void' mgl_cont_y (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal, `int' num)
+     Рисует NUM линий уровня для массива A при y = SVAL.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContZ (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN', `int'
+          num=`7')
+ -- Функция С: `void' mgl_cont_z (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal, `int' num)
+     Рисует NUM линий уровня для массива A при z = SVAL.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContX (`const mglData
+          &'v, `const mglData &'a, `const char *'stl=`""', `float'
+          sVal=`NAN')
+ -- Функция С: `void' mgl_cont_x_val (`HMGL' gr, `const HMDT' v, `const
+          HMDT' a, `const char *'stl, `float' sVal)
+     Рисует линии уровня для массива  A=V[i] при x = SVAL.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContY (`const mglData
+          &'v, `const mglData &'a, `const char *'stl=`""', `float'
+          sVal=`NAN')
+ -- Функция С: `void' mgl_cont_y_val (`HMGL' gr, `const HMDT' v, `const
+          HMDT' a, `const char *'stl, `float' sVal)
+     Рисует линии уровня для массива  A=V[i] при y = SVAL.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContZ (`const mglData
+          &'v, `const mglData &'a, `const char *'stl=`""', `float'
+          sVal=`NAN')
+ -- Функция С: `void' mgl_cont_z_val (`HMGL' gr, `const HMDT' v, `const
+          HMDT' a, `const char *'stl, `float' sVal)
+     Рисует линии уровня для массива  A=V[i] при z = SVAL.
+
+
+File: mathgl_ru.info,  Node: ContFXYZ,  Next: Dots,  Prev: ContXYZ,  Up: Other plotting
+
+3.14.3 ContFXYZ
+---------------
+
+Эти функции рисуют закрашенные контуры уровня на x, y или z плоскостях.
+Если A - 3d массив, то выполняется интерполяция к заданному срезу SVAL.
+Функции полезны для создания проекций 3D массивов на оси координат. См.
+также *note ContXYZ::, *note DensXYZ::, *note ContF::, *note Data
+distributions::.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContFX (`const
+          mglData &'a, `const char *'stl=`""', `float' sVal=`NAN',
+          `int' num=`7')
+ -- Функция С: `void' mgl_contf_x (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal, `int' num)
+     Рисует NUM закрашенных контуров уровня для массива A при x = SVAL.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContFY (`const
+          mglData &'a, `const char *'stl=`""', `float' sVal=`NAN',
+          `int' num=`7')
+ -- Функция С: `void' mgl_contf_y (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal, `int' num)
+     Рисует NUM закрашенных контуров уровня для массива A при y = SVAL.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContFZ (`const
+          mglData &'a, `const char *'stl=`""', `float' sVal=`NAN',
+          `int' num=`7')
+ -- Функция С: `void' mgl_contf_z (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal, `int' num)
+     Рисует NUM закрашенных контуров уровня для массива A при z = SVAL.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContFX (`const
+          mglData &'v, `const mglData &'a, `const char *'stl=`""',
+          `float' sVal=`NAN')
+ -- Функция С: `void' mgl_contf_x_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' a, `const char *'stl, `float' sVal)
+     Рисует закрашенные конутры уровня для массива A=V[i] при x = SVAL.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContFY (`const
+          mglData &'v, `const mglData &'a, `const char *'stl=`""',
+          `float' sVal=`NAN')
+ -- Функция С: `void' mgl_contf_y_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' a, `const char *'stl, `float' sVal)
+     Рисует закрашенные конутры уровня для массива A=V[i] при y = SVAL.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContFZ (`const
+          mglData &'v, `const mglData &'a, `const char *'stl=`""',
+          `float' sVal=`NAN')
+ -- Функция С: `void' mgl_contf_z_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' a, `const char *'stl, `float' sVal)
+     Рисует закрашенные конутры уровня для массива A=V[i] при z = SVAL.
+
+
+File: mathgl_ru.info,  Node: Dots,  Next: Crust,  Prev: ContFXYZ,  Up: Other plotting
+
+3.14.4 Dots
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Dots (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""')
+ -- Метод класса `mglGraph' (C++, Python): `void' Dots (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const char *'sch=`""')
+ -- Функция С: `void' mgl_dots (`HMGL' gr, `const HMDT' x, `const HMDT'
+          y, `const HMDT' z, `const char *'sch)
+ -- Функция С: `void' mgl_dots_a (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `const char *'sch)
+     Рисует произвольно расположенные точки {X[i], Y[i], Z[i]}. Строка
+     SCH задает цветовую схему. Предыдущая цветовая схема используется
+     по умолчанию. Если определен массив A, то он задает прозрачность
+     точек. Массивы X, Y, Z, A должны иметь одинаковые размеры. См.
+     также *note Crust::, *note Mark::, *note Plot::. См. раздел *note
+     Dots sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++): `void' Dots (`const mglData &'tr,
+          `const char *'sch=`""')
+ -- Функция С: `void' mgl_dots_tr (`HMGL' gr, `const HMDT' tr, `const
+          char *'sch)
+     Как предыдущий с X=TR(0,:), Y=TR(1,:), Z=TR(2,:) и если TR.nx>3,
+     то A=TR(3,:).
+
+
+File: mathgl_ru.info,  Node: Crust,  Next: TriPlot,  Prev: Dots,  Up: Other plotting
+
+3.14.5 Crust
+------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Crust (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `float' er=`0')
+ -- Функция С: `void' mgl_crust (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `float' er)
+     Реконструирует и рисует поверхность по произвольно расположенным
+     точкам {X[i], Y[i], Z[i]}. Параметр ER задает радиус ошибки
+     (увеличте для удаления дыр). Строка SCH задает цветовую схему.
+     Предыдущая цветовая схема используется по умолчанию. Если строка
+     содержит `#', то рисуется сетчатая поверхность. Массивы X, Y, Z
+     должны иметь одинаковые размеры. См. также *note Dots::, *note
+     TriPlot::. См. раздел *note Crust sample::, для примеров кода и
+     графика.
+
+ -- Метод класса `mglGraph' (C++): `void' Crust (`const mglData &'tr,
+          `const char *'sch=`""', `float' er=`0')
+ -- Функция С: `void' mgl_crust_tr (`HMGL' gr, `const HMDT' tr, `const
+          char *'sch, `float' er)
+     Как предыдущий с X=TR(0,:), Y=TR(1,:), Z=TR(2,:).
+
+
+File: mathgl_ru.info,  Node: TriPlot,  Next: TriCont,  Prev: Crust,  Up: Other plotting
+
+3.14.6 TriPlot
+--------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' TriPlot (`const
+          mglData &'id, `const mglData &'x, `const mglData &'y, `const
+          mglData &'z, `const mglData &'c, `const char *'sch=`""')
+ -- Метод класса `mglGraph' (C++, Python): `void' TriPlot (`const
+          mglData &'id, `const mglData &'x, `const mglData &'y, `const
+          mglData &'z, `const char *'sch=`""')
+ -- Функция С: `void' mgl_triplot_xyz (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const char
+          *'sch)
+ -- Функция С: `void' mgl_triplot_xyzc (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          c, `const char *'sch)
+     Рисует поверхность из треугольников. Вершины треугольников
+     задаются индексами ID в массиве точек {X[i], Y[i], Z[i]}. Строка
+     SCH задает цветовую схему. Предыдущая цветовая схема используется
+     по умолчанию. Если строка содержит `#', то рисуется сетчатая
+     поверхность. Размер по 1-му индексу массива ID должен быть 3 или
+     больше. Массивы X, Y, Z должны иметь одинаковые размеры. Массив C
+     задает цвет треугольников (если ID.ny=C.nx) или цвет вершин (если
+     X.nx=C.nx). См. также *note Dots::, *note Crust::, *note
+     QuadPlot::, *note TriCont::.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' TriPlot (`const
+          mglData &'id, `const mglData &'x, `const mglData &'y, `const
+          char *'sch=`""', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_triplot_xy (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const char *'sch, `float'
+          zVal)
+     Как предыдущий с Z[i]=ZVAL.
+
+
+File: mathgl_ru.info,  Node: TriCont,  Next: QuadPlot,  Prev: TriPlot,  Up: Other plotting
+
+3.14.7 TriCont
+--------------
+
+ -- Method on `mglGraph' (C++, Python): `void' TriContV (`const mglData
+          &'v, `const mglData &'id, `const mglData &'x, `const mglData
+          &'y, `const mglData &'z, `const mglData &'c, `const char
+          *'sch=`""', `float' zVal=`NAN')
+ -- Method on `mglGraph' (C++, Python): `void' TriContV (`const mglData
+          &'v, `const mglData &'id, `const mglData &'x, `const mglData
+          &'y, `const mglData &'z, `const char *'sch=`""', `float'
+          zVal=`NAN')
+ -- C function: `void' mgl_tricont_xyzcv (`HMGL' gr, `const HMDT' v,
+          `const HMDT' id, `const HMDT' x, `const HMDT' y, `const HMDT'
+          z, `const HMDT' c, `const char *'sch, `float' zVal)
+ -- C function: `void' mgl_tricont_xyzv (`HMGL' gr, `const HMDT' v,
+          `const HMDT' id, `const HMDT' x, `const HMDT' y, `const HMDT'
+          z, `const char *'sch, `float' zVal)
+     Рисует линии уровня поверхности из треугольников при Z = ZVAL (или
+     для Z=V[k] если `zVal==NAN'). Вершины треугольников задаются
+     индексами ID в массиве точек {X[i], Y[i], Z[i]}. Строка SCH задает
+     цветовую схему. Предыдущая цветовая схема используется по
+     умолчанию. Размер по 1-му индексу массива ID должен быть 3 или
+     больше. Массивы X, Y, Z должны иметь одинаковые размеры. Массив C
+     задает цвет треугольников (если ID.ny=C.nx) или цвет вершин (если
+     X.nx=C.nx). См. также *note TriPlot::, *note Cont::.
+
+ -- Method on `mglGraph' (C++, Python): `void' TriCont (`const mglData
+          &'id, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const mglData &'c, `const char *'sch=`""', `num'=`7',
+          `float' zVal=`NAN')
+ -- Method on `mglGraph' (C++, Python): `void' TriCont (`const mglData
+          &'id, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const char *'sch=`""', `num'=`7', `float' zVal=`NAN')
+ -- C function: `void' mgl_tricont_xyzc (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          c, `const char *'sch, `num', `float' zVal)
+ -- C function: `void' mgl_tricont_xyz (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const char
+          *'sch, `num', `float' zVal)
+     Аналогично предыдущему с вектором V из NUM элементов равно
+     распределенных в интервале [CMIN, CMAX].
+
+
+File: mathgl_ru.info,  Node: QuadPlot,  Next: Plots by formula,  Prev: TriCont,  Up: Other plotting
+
+3.14.8 QuadPlot
+---------------
+
+ -- Method on `mglGraph' (C++, Python): `void' QuadPlot (`const mglData
+          &'id, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const mglData &'c, `const char *'sch=`""')
+ -- Method on `mglGraph' (C++, Python): `void' QuadPlot (`const mglData
+          &'id, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const char *'sch=`""')
+ -- C function: `void' mgl_quadplot_xyz (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const char
+          *'sch)
+ -- C function: `void' mgl_quadplot_xyzc (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          c, `const char *'sch)
+     Рисует поверхность из четырехугольников. Вершины четырехугольников
+     задаются индексами ID в массиве точек {X[i], Y[i], Z[i]}. Строка
+     SCH задает цветовую схему. Предыдущая цветовая схема используется
+     по умолчанию. Если строка содержит `#', то рисуется сетчатая
+     поверхность. Размер по 1-му индексу массива ID должен быть 4 или
+     больше. Массивы X, Y, Z должны иметь одинаковые размеры. Массив C
+     задает цвет четырехугольников (если ID.ny=C.nx) или цвет вершин
+     (если X.nx=C.nx). См. также *note TriPlot::.
+
+ -- Method on `mglGraph' (C++, Python): `void' QuadPlot (`const mglData
+          &'id, `const mglData &'x, `const mglData &'y, `const char
+          *'sch=`""', `float' zVal=`NAN')
+ -- C function: `void' mgl_quadplot_xy (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const char *'sch, `float'
+          zVal)
+     Как предыдущий с Z[i]=ZVAL.
+
+
+File: mathgl_ru.info,  Node: Plots by formula,  Next: SimplePlot,  Prev: QuadPlot,  Up: Other plotting
+
+3.14.9 Графики функций
+------------------------------------
+
+Эти функции строят графики 1D или 2D функций, заданный текстовыми
+формулами. Вам не нужно создавать массивы для их построения. Параметр
+STL задаект стиль линии (*note Line styles::) для `Plot()' или цветовую
+схему (*note Color scheme::) для `Surf()'. Параметр N задает
+минимальное число точек по координате(ам) для графика. В настоящее
+время (v. 1.10) число точек автоматически увеличивается для области
+резкого изменения функции, но только для 1D графиков (т.е. для Plot()).
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Plot (`const char
+          *'eqY, `const char *'stl=`""', `float' zVal=`NAN', `int'
+          n=`100')
+ -- Функция С: `void' mgl_fplot (`HMGL' gr, `const char *'eqY, `const
+          char *'stl, `float' zVal, `int' n)
+     Рисует функцию `eqY(x)' в плоскости z=ZVAL с координатой `x' в
+     диапазоне [MIN.x, MAX.x]. См. также *note Plot::.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Plot (`const char
+          *'eqX, `const char *'eqY, `const char *'eqZ, `const char
+          *'stl=`""', `float' zVal=`NAN', `int' n=`100')
+ -- Функция С: `void' mgl_fplot_xyz (`HMGL' gr, `const char *'eqX,
+          `const char *'eqY, `const char *'eqZ, `const char *'stl,
+          `float' zVal, `int' n)
+     Рисует параметрическую кривую {`eqX(t)', `eqY(t)', `eqZ(t)'}, где
+     координата `t' меняется в диапазоне [0, 1]. См. также *note Plot::.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf (`const char
+          *'eqZ, `const char *'stl=`""', `int' n=`100');
+ -- Функция С: `void' mgl_fsurf (`HMGL' gr, `const char *'eqZ, `const
+          char *'stl, `int' n);
+     Рисует поверхность `eqY(x,y)' с координатами `x', `y' в диапазоне
+     [MIN, MAX]. См. также *note Surf::.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf (`const char
+          *'eqX, `const char *'eqY, `const char *'eqZ, `const char
+          *'stl=`""', `int' n=`100')
+ -- Функция С: `void' mgl_fsurf_xyz (`HMGL' gr, `const char *'eqX,
+          `const char *'eqY, `const char *'eqZ, `const char *'stl,
+          `int' n)
+     Рисует параметрическую поверхность {`eqX(u,v)', `eqY(u,v)',
+     `eqZ(u,v)'}, где координаты `u', `v' меняются в диапазоне [0, 1].
+     См. также *note Surf::.
+
+
+File: mathgl_ru.info,  Node: SimplePlot,  Prev: Plots by formula,  Up: Other plotting
+
+3.14.10 SimplePlot
+------------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SimplePlot (`const
+          mglData &'a, `int' type=`0', `const char *'stl=`""')
+ -- Функция С: `void' mgl_simple_plot (`HMGL' gr, `const HMDT' a, `int'
+          type, `const char *'stl)
+     Рисует график массива A в зависимости от его размерности и
+     параметра TYPE. Строка STL задает стиль графика. Для 1d массивов:
+     `type=0' - *note Plot::, `type=1' - *note Area::, `type=2' - *note
+     Step::, `type=3' - *note Stem::, `type=4' - *note Bars::. Для 2d
+     массивов: `type=0' - *note Surf::, `type=1' - *note Dens::,
+     `type=2' - *note Mesh::, `type=3' - *note Cont::. Для 3d массивов:
+     `type=0' - *note Surf3::, `type=1' - *note Dens3::, `type=2' -
+     *note Cont3::, `type=2' - *note Cloud::.
+
+
+File: mathgl_ru.info,  Node: Nonlinear fitting,  Next: Data distributions,  Prev: Other plotting,  Up: MathGL core
+
+3.15 Nonlinear fitting
+======================
+
+Эти функции подбирают параметры функции для наилучшей аппроксимации
+данных, т.е. минимизируют сумму \sum_i (f(x_i, y_i, z_i) -
+a_i)^2/s_i^2. При этом аппроксимирующая функция `f' может зависеть от
+одного аргумента `x' (1D случай), от двух аргументов `x,y' (2D случай)
+или от трех аргументов `x,y,z' (3D случай). Функция `f' также может
+зависеть от параметров. Список параметров задается строкой VAR
+(например, `abcd'). Обычно пользователь должен предоставить начальные
+значения параметров в переменной INI. Однако, при его отсутствии
+используются нулевые значения. Параметр PRINT=`true' включает вывод
+найденной формулы в MESSAGE (*note Error handling::).
+
+   Функции Fit() и FitS() не рисуют полученные массивы. Они заполняют
+массив FIT по формуле `f' с найденными коэффициентами и возвращают
+\chi^2 ошибку аппроксимации. При этом, координаты `x,y,z'
+равнораспределены в интервале MIN-MAX. Число точек в FIT выбирается
+максимальным из размера массива FIT и значения переменной FITPNTS.
+Функции используют библиотеку GSL. См. раздел *note Fitting sample::,
+для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `float' FitS (`mglData
+          &'fit, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const mglData &'a, `const mglData &'s, `const char
+          *'func, `const char *'var, `float *'ini=`NULL', `bool'
+          print=`false')
+ -- Метод класса `mglGraph' (C++, Python): `float' FitS (`mglData
+          &'fit, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const mglData &'a, `const mglData &'s, `const char
+          *'func, `const char *'var, `mglData &'ini, `bool'
+          print=`false')
+ -- Функция С: `float' mgl_fit_xyzas (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT' a,
+          `const HMDT' s, `const char *'func, `const char *'var, `float
+          *'ini)
+ -- Функция С: `float' mgl_fit_xyzas_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT' a,
+          `const HMDT' s, `const char *'func, `const char *'var, `HMDT'
+          ini)
+     "Подгоняют" формулу вдоль x-, y- и z-направлений для 3d массива
+     заданного параметрически A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]).
+
+ -- Метод класса `mglGraph' (C++, Python): `float' FitS (`mglData
+          &'fit, `const mglData &'x, `const mglData &'y, `const mglData
+          &'a, `const mglData &'s, `const char *'func, `const char
+          *'var, `float *'ini=`NULL', `bool' print=`false')
+ -- Метод класса `mglGraph' (C++, Python): `float' FitS (`mglData
+          &'fit, `const mglData &'x, `const mglData &'y, `const mglData
+          &'a, `const mglData &'s, `const char *'func, `const char
+          *'var, `mglData &'ini, `bool' print=`false')
+ -- Функция С: `float' mgl_fit_xyzs (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' a, `const HMDT' s,
+          `const char *'func, `const char *'var, `float *'ini)
+ -- Функция С: `float' mgl_fit_xyzs_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' a, `const HMDT' s,
+          `const char *'func, `const char *'var, `HMDT' ini)
+     "Подгоняют" формулу вдоль x- и y-направлений для 2d массива
+     заданного параметрически A[i,j](X[i,j], Y[i,j]) для каждого среза
+     данных.
+
+ -- Метод класса `mglGraph' (C++, Python): `float' FitS (`mglData
+          &'fit, `const mglData &'x, `const mglData &'a, `const mglData
+          &'s, `const char *'func, `const char *'var, `float
+          *'ini=`NULL', `bool' print=`false')
+ -- Метод класса `mglGraph' (C++, Python): `float' FitS (`mglData
+          &'fit, `const mglData &'x, `const mglData &'a, `const mglData
+          &'s, `const char *'func, `const char *'var, `mglData &'ini,
+          `bool' print=`false')
+ -- Функция С: `float' mgl_fit_xys (`HMGL' gr, `HMDT' fit, `const HMDT'
+          x, `const HMDT' a, `const HMDT' s, `const char *'func, `const
+          char *'var, `float *'ini)
+ -- Функция С: `float' mgl_fit_xys_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' a, `const HMDT' s, `const char *'func,
+          `const char *'var, `HMDT' ini)
+     "Подгоняют" формулу вдоль x-направления для 1d массива заданного
+     параметрически A[i](X[i]) для каждого среза данных.
+
+ -- Метод класса `mglGraph' (C++, Python): `float' FitS (`mglData
+          &'fit, `const mglData &'a, `const mglData &'s, `const char
+          *'func, `const char *'var, `float *'ini=`NULL', `bool'
+          print=`false')
+ -- Метод класса `mglGraph' (C++, Python): `float' FitS (`mglData
+          &'fit, `const mglData &'a, `const mglData &'s, `const char
+          *'func, `const char *'var, `mglData &'ini, `bool'
+          print=`false')
+ -- Функция С: `float' mgl_fit_ys (`HMGL' gr, `HMDT' fit, `const HMDT'
+          a, `const HMDT' s, `const char *'func, `const char *'var,
+          `float *'ini)
+ -- Функция С: `float' mgl_fit_ys_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' a, `const HMDT' s, `const char *'func, `const char
+          *'var, `HMDT' ini)
+     "Подгоняют" формулу вдоль x-направления для 1d массива с X равно
+     распределенным в интервале [MIN.x, MAX.x].
+
+ -- Метод класса `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'x, `const mglData &'y, `const mglData &'z,
+          `const mglData &'a, `const char *'func, `const char *'var,
+          `float *'ini=`NULL', `bool' print=`false')
+ -- Метод класса `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'x, `const mglData &'y, `const mglData &'z,
+          `const mglData &'a, `const char *'func, `const char *'var,
+          `mglData &'ini, `bool' print=`false')
+ -- Функция С: `float' mgl_fit_xyza (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT' a,
+          `const char *'func, `const char *'var, `float *'ini)
+ -- Функция С: `float' mgl_fit_xyza_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT' a,
+          `const char *'func, `const char *'var, `HMDT' ini)
+     "Подгоняют" формулу вдоль x-, y- и z-направлений для 3d массива
+     заданного параметрически A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) с
+     S[i,j,k]=1.
+
+ -- Метод класса `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'x, `const mglData &'y, `const mglData &'a,
+          `const char *'func, `const char *'var, `float *'ini=`NULL',
+          `bool' print=`false')
+ -- Метод класса `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'x, `const mglData &'y, `const mglData &'a,
+          `const char *'func, `const char *'var, `mglData &'ini, `bool'
+          print=`false')
+ -- Функция С: `float' mgl_fit_xyz (`HMGL' gr, `HMDT' fit, `const HMDT'
+          x, `const HMDT' y, `const HMDT' a, `const char *'func, `const
+          char *'var, `float *'ini)
+ -- Функция С: `float' mgl_fit_xyz_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' a, `const char *'func,
+          `const char *'var, `HMDT' ini)
+     "Подгоняют" формулу вдоль x- и y-направлений для 2d массива
+     заданного параметрически A[i,j](X[i,j], Y[i,j]) с S[i,j]=1 для
+     каждого среза данных.
+
+ -- Метод класса `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'x, `const mglData &'a, `const char *'func,
+          `const char *'var, `float *'ini=`NULL', `bool' print=`false')
+ -- Метод класса `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'x, `const mglData &'a, `const char *'func,
+          `const char *'var, `mglData &'ini, `bool' print=`false')
+ -- Функция С: `float' mgl_fit_xy (`HMGL' gr, `HMDT' fit, `const HMDT'
+          x, `const HMDT' a, `const char *'func, `const char *'var,
+          `float *'ini)
+ -- Функция С: `float' mgl_fit_xy_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' a, `const char *'func, `const char
+          *'var, `HMDT' ini)
+     "Подгоняют" формулу вдоль x-направления для 1d массива заданного
+     параметрически A[i](X[i]) с S[i]=1 для каждого среза данных.
+
+ -- Метод класса `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'a, `const char *'func, `const char *'var,
+          `float *'ini=`""', `bool' print=`false')
+ -- Метод класса `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'a, `const char *'func, `const char *'var,
+          `mglData &'ini, `bool' print=`false')
+ -- Функция С: `float' mgl_fit_1 (`HMGL' gr, `HMDT' fit, `const HMDT'
+          a, `const char *'func, `const char *'var, `float *'ini)
+ -- Функция С: `float' mgl_fit_1_d (`HMGL' gr, `HMDT' fit, `const HMDT'
+          a, `const char *'func, `const char *'var, `HMDT' ini)
+     "Подгоняют" формулу вдоль x-направления для 1d массива A с S=1 и X
+     равно распределенным в интервале [MIN.x, MAX.x].
+
+ -- Метод класса `mglGraph' (C++, Python): `float' Fit2 (`mglData
+          &'fit, `const mglData &'a, `const char *'func, `const char
+          *'var, `float *'ini=`NULL', `bool' print=`false')
+ -- Метод класса `mglGraph' (C++, Python): `float' Fit2 (`mglData
+          &'fit, `const mglData &'a, `const char *'func, `const char
+          *'var, `mglData &'ini, `bool' print=`false')
+ -- Функция С: `float' mgl_fit_2 (`HMGL' gr, `HMDT' fit, `const HMDT'
+          a, `const char *'func, `const char *'var, `float *'ini)
+ -- Функция С: `float' mgl_fit_2_d (`HMGL' gr, `HMDT' fit, `const HMDT'
+          a, `const char *'func, `const char *'var, `HMDT' ini)
+     "Подгоняют" формулу вдоль x- и y-направлений для 2d массива A с
+     S=1 и X, Y равно распределенными в интервале [MIN, MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `float' Fit3 (`mglData
+          &'fit, `const mglData &'a, `const char *'func, `const char
+          *'var, `float *'ini=`NULL', `bool' print=`false')
+ -- Метод класса `mglGraph' (C++, Python): `float' Fit3 (`mglData
+          &'fit, `const mglData &'a, `const char *'func, `const char
+          *'var, `mglData &'ini, `bool' print=`false')
+ -- Функция С: `float' mgl_fit_3 (`HMGL' gr, `HMDT' fit, `const HMDT'
+          a, `const char *'func, `const char *'var, `float *'ini)
+ -- Функция С: `float' mgl_fit_3_d (`HMGL' gr, `HMDT' fit, `const HMDT'
+          a, `const char *'func, `const char *'var, `HMDT' ini)
+     "Подгоняют" формулу вдоль x-, y- и z-направлений для 3d массива A
+     с S=1 и X, Y, Z равно распределенными в интервале [MIN, MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' PutsFit (`mglPoint'
+          p, `const char *'prefix=`""', `const char *'font=`NULL',
+          `float' size=`-1')
+ -- Функция С: `void' mgl_puts_fit (`HMGL' gr, `float' x, `float' y,
+          `float' z, `const char *'prefix, `const char *'font, `float'
+          size=`-1')
+     Печатает последнюю подобранную формулу с найденными коэффициентами
+     в точке P0. Строка PREFIX будет напечатана перед формулой. Все
+     другие параметры такие же как в *note Text printing::.
+
+ -- Метод класса `mglGraph' (C++, Python): `const char *' GetFit ()
+ -- Функция С: `const char *' mgl_get_fit (`HMGL' gr)
+     Возвращает последнюю подобранную формулу с найденными
+     коэффициентами.
+
+ -- Переменная(C++) of mglGraph: `int' FitPnts
+     Минимальное число точек для массива со значениями подобранной
+     формулы.
+
+
+File: mathgl_ru.info,  Node: Data distributions,  Next: Frames/Animation,  Prev: Nonlinear fitting,  Up: MathGL core
+
+3.16 Распределение данных
+============================================
+
+Эти функции создают распределения данных. Они не выполняют построение
+сами по себе. Функции могут быть полезны в случае когда данные
+пользователя определены на случайно расположенных точка (например,
+после PIC расчетов) и он хочет построить график, требующий регулярных
+данных (данных на сетках). Диапазон сеток равен диапазону осей
+координат Min...Max. Массивы X, Y, Z определяют положение (координаты)
+точек. Массив A задает значения данных. Число точек в результате RES -
+максимум из размера RES и значения FITPNTS.
+
+ -- Method on `mglGraph' (C++, Python): `void' Hist (`mglData &'res,
+          `const mglData &'x, `const mglData &'a)
+ -- C function: `int' mgl_hist_x (`HMGL' gr, `HMDT' res, `const HMDT'
+          x, `const HMDT' a)
+     Создет 1D распределение значений массива A в диапазоне [Min, Max].
+
+ -- Method on `mglGraph' (C++, Python): `void' Hist (`mglData &'res,
+          `const mglData &'x, `const mglData &'y, `const mglData &'a)
+ -- C function: `int' mgl_hist_xy (`HMGL' gr, `HMDT' res, `const HMDT'
+          x, `const HMDT' y, `const HMDT' a)
+     Создет 2D распределение значений массива A в диапазоне [Min, Max].
+
+ -- Method on `mglGraph' (C++, Python): `void' Hist (`mglData &'res,
+          `const mglData &'x, `const mglData &'y, `const mglData &'z,
+          `const mglData &'a)
+ -- C function: `int' mgl_hist_xyz (`HMGL' gr, `HMDT' res, `const HMDT'
+          x, `const HMDT' y, `const HMDT' z, `const HMDT' a)
+     Создет 3D распределение значений массива A в диапазоне [Min, Max].
+
+
+File: mathgl_ru.info,  Node: Frames/Animation,  Next: IDTF functions,  Prev: Data distributions,  Up: MathGL core
+
+3.17 Кадры/Анимация
+================================
+
+Эти функции позволяют создавать несколько картинок одновременно. В
+большинстве случаев это бесполезно, но для органов управления (*note
+Widget classes::) это позволяет показывать анимацию. Также можно
+записать несколько кадров в анимированный GIF файл.
+
+ -- Метод класса `mglGraph' (C++, Python): `int' NewFrame ()
+ -- Функция С: `int' mgl_new_frame (`HMGL' gr)
+     Создает новый кадр. Функция возвращает номер текущего кадра. В
+     режиме OpenGL функция не должны вызываться в параллельных потоках!
+     - используйте прямое создание списка. Функция `EndFrame()'
+     *должна* быть вызвана после рисования кадра для каждого вызова
+     этой функции.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' EndFrame ()
+ -- Функция С: `void' mgl_end_frame (`HMGL' gr)
+     Завершает рисование кадра.
+
+ -- Метод класса `mglGraph' (C++, Python): `int' GetNumFrame ()
+ -- Функция С: `int' mgl_get_num_frame (`HMGL' gr)
+     Возвращает число созданных кадров.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ResetFrames ()
+ -- Функция С: `int' mgl_reset_frames (`HMGL' gr)
+     Сбрасывает счетчик кадров в 0.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' StartGIF (`const char
+          *'fname, `int' ms=`100')
+ -- Функция С: `void' mgl_start_gif (`HMGL' gr, `const char *'fname,
+          `int' ms)
+     Начинает запись кадров в анимированный GIF файл FNAME. Параметр MS
+     задает задержку между кадрами в миллисекундах. Вы *не должны*
+     менять размер рисунка во время создания кино. Используйте
+     CloseGIF() для завершения записи. Эта функция не работает в режиме
+     OpenGL.
+
+ -- Метод класса `mglGraph' (C++, Python): `int' CloseGIF ()
+ -- Функция С: `void' mgl_close_gif (`HMGL' gr)
+     Завершает запись анимированного GIF файла.
+
+
+File: mathgl_ru.info,  Node: IDTF functions,  Prev: Frames/Animation,  Up: MathGL core
+
+3.18 IDTF функции
+========================
+
+Эти функции обеспечивают поддержку особых возможностей при создании
+IDTF. Во всех прочих случаях они не делают ничего.
+
+ -- Метод класса `mglGraph' (C++): `void' VertexColor (`bool' enable)
+     Разрешает плавное изменение цвета.
+
+ -- Метод класса `mglGraph' (C++): `void' Compression (`bool' enable)
+     Дает меньший объем файла, но с худшим качеством.
+
+ -- Метод класса `mglGraph' (C++): `void' StartGroup (const char *name)
+     Начинает определение группы. Группа может содержать объекты и
+     другие группы. Они используются для выбора части модели при
+     приближении, изменении прозрачности и т.д.
+
+ -- Метод класса `mglGraph' (C++): `void' EndGroup ()
+     Завершает определение группы.
+
+
+File: mathgl_ru.info,  Node: Plotter classes,  Next: Widget classes,  Prev: MathGL core,  Up: Top
+
+4 Классы для отрисовки
+****************************************
+
+Класс mglGraph (*note MathGL core::) обеспечивает базовые функции для
+создания научной графики, но это абстрактный класс. Причина в том, что
+существует несколько возможностей вывода/отображения получившегося
+рисунка: в растровый или в векторный файлы, используя OpenGL и т.д. В
+результате, для конечной отрисовки необходимо использовать производные
+классы. В принципе, можно наследовать непосредственно mglGraph (и так
+было до версии 1.6). Однако, я рекомендую использовать в качестве
+базового класс mglGraphAB для большего единообразия получающейся
+графики в различных классах. Класс mglGraphAB - другой абстрактный
+класс, обеспечивающий преобразование координат, базовые функции
+рисования и сохранения в растровое изображение. Он требует
+доопределения функций рисования линий, треугольников и
+четырехугольников. Ниже приведены классы "отрисовки" с короткими
+комментариями.
+
+ -- Класс: mglGraphAB
+     Абстрактный класс, обеспечивающий отрисовку по глубине,
+     преобразование к экранным координатам, сохранение в растровое
+     изображение и т.д. Класс определен в `#include <mgl/mgl_ab.h>'.
+
+ -- Класс: mglGraphZB
+     Реализует растровую отрисовку изображения используя Z-Buffer.
+     Можно использовать для рисования в памяти (или в консоли/SSH
+     терминале). Также этот класс используется как базовый для
+     рисования в окне (например, используя FLTK, Qt, wxWidgets
+     библиотеки и пр.). При экспорте в EPS формат сохраняется растровая
+     картинка. Получающийся рисунок лучшего качества, но рисуется
+     медленнее чем в классе mglGraphPS. Класс определен в `#include
+     <mgl/mgl_zb.h>'.
+
+ -- Класс: mglGraphPS
+     Реализует векторную отрисовку изображения с возможностью
+     сохранения в векторный PostScript или SVG файл. Можно использовать
+     для рисования в памяти (или в консоли/SSH терминале). Замечу, что
+     сглаживание цвета не поддерживается, а при экспорте в EPS не
+     поддерживается и прозрачность (в силу ограничения формата). В
+     результате рисунок получается быстрее, но более низкого качества
+     чем в классе mglGraphZB. Класс определен в `#include
+     <mgl/mgl_eps.h>'.
+
+ -- Класс: mglGraphGL
+     Реализует векторную графику с использованием OpenGL. Класс не
+     может быть использован для рисования в консоли. В силу ограничения
+     OpenGL возможна проблема корректного отображения нескольких
+     перекрывающихся поверхностей. Класс определен в `#include
+     <mgl/mgl_gl.h>'.
+
+ -- Класс: mglGraphIDTF
+     Реализует экспорт графики в IDTF формате, который затем можно
+     преобразовать в формат U3D. Класс определен в `#include
+     <mgl/mgl_idtf.h>'.
+
+* Menu:
+
+* mglGraphAB class::
+
+
+File: mathgl_ru.info,  Node: mglGraphAB class,  Up: Plotter classes
+
+4.1 Класс mglGraphAB
+=========================
+
+Вообще говоря это чуть "менее абстрактный" класс чем mglGraph (*note
+MathGL core::). Он предоставляет много методов для обработки
+промежуточных данных и требует в производных классах определения только
+нескольких методов для отрисовки примитивов. Разработчикам, наследующим
+этот класс, следует посмотреть файл `mgl_ab.h' и комментарии в нем или
+обратиться к автору.
+
+   Ниже я только перечислю основные общедоступные методы класса
+mglGraphAB. В первую очередь это функции, возвращающие созданный
+растровый рисунок, его ширину и высоту. В дальнейшем его можно
+использовать в любой графической библиотеке (см. также, *note Widget
+classes::) или сохранить в файл (см. также, *note Export to file::).
+
+ -- Метод класса `mglGraphAB' (C++): `const unsigned char *' GetBits ()
+ -- Метод класса `mglGraph' (Python): `void' GetRGB (`char *'buf, `int'
+          size)
+ -- Метод класса `mglGraph' (Python): `void' GetBGRN (`char *'buf,
+          `int' size)
+ -- C function: `const unsigned char *' mgl_get_rgb (`HMGL' gr)
+     Возвращает растровое изображение в формате RGB для текущего кадра.
+     Формат каждого элемента (пикселя): {red, green, blue}. Число
+     элементов Width*Height. Положение элемента {i,j} есть [3*i +
+     3*Width*j] (или [4*i + 4*Width*j] для `GetBGRN()'). В Python вы
+     должны предоставить буфер BUF достаточного размера SIZE, т.е. код
+     должен выглядеть следующим образом from mathgl import *
+     gr = mglGraph();
+     bits='\t';
+     bits=bits.expandtabs(4*gr.GetWidth()*gr.GetHeight());
+     gr.GetBGRN(bits, len(bits));
+
+ -- Метод класса `mglGraphAB' (C++): `const unsigned char *' GetRGBA ()
+ -- Метод класса `mglGraph' (Python): `void' GetRGBA (`char *'buf,
+          `int' size)
+ -- C function: `const unsigned char *' mgl_get_rgba (`HMGL' gr)
+     Возвращает растровое изображение в формате RGBA для текущего
+     кадра. Формат каждого элемента (пикселя): {red, green, blue,
+     alpha}. Число элементов Width*Height. Положение элемента {i,j}
+     есть [4*i + 4*Width*j].
+
+ -- Метод класса `mglGraphAB' (C++, Python): `int' GetWidth ()
+ -- Метод класса `mglGraphAB' (C++, Python): `int' GetHeight ()
+ -- C function: `int' mgl_get_width (`HMGL' gr)
+ -- C function: `int' mgl_get_height (`HMGL' gr)
+     Возвращает ширину и высоту изображения.
+
+   Класс mglGraphAB - базовый класс для "оконных классов". Поэтому он
+содержит набор функций для создания и управления окном. Большинство из
+них применимо только в "оконных классах" (типа mglGraphFLTK и др, *note
+Widget classes::). В остальных случаях функции ничего не делают. Если
+вы создаете оконный класс, то Вам следует предоставить такой же
+интерфейс для удобства пользователя.
+
+ -- Method on mglGraphAB: `void' Window (`int' argc, `char **'argv,
+          `int (*'draw)(`mglGraph *'gr, `void *'p), `const char
+          *'title, `void *'par=`NULL', `void (*'reload)(`int' next,
+          `void *'p)=`NULL', `bool' maximize=`false')
+     Создает окно для вывода графика. Параметры ARGC, ARGV содержат
+     информацию операционной системы и их слеудет передать в эту
+     функцию из функции `main(int argc,char **argv)' (хотя они и могут
+     быть равны `NULL'). Параметр DRAW - указатель (имя) функции
+     рисования. Есть возможность создания нескольких кадров вначале
+     (требует больше памяти) и их быстрая анимации в дальнейшем. В этом
+     случае функция DRAW должна возвращать число кадров или ноль для
+     рисования по запросу. Замечу, что DRAW может быть равна `NULL' для
+     отображения статической (текущей) картинки. Параметр TITLE задает
+     заголовок окна. Параметр PAR содержит указатель на данные,
+     передаваемые функции рисования DRAW. Параметр MAXIMIZE=`true'
+     открывает окно раскрытым на весь экран.
+
+     В окне просмотра можно использовать клавиши: 'a', 'd', 'w', 's'
+     для вращения; ',', '.' для просмотра предыдущего и следующего
+     кадров; 'r' для переключения прозрачности; 'f' для переключения
+     оспещенности; 'x' для закрытия окна.
+
+     *ВАЖНО!!!* Вам не следует вызывать функцию Rotate() (*note
+     Transformation matrix::) если Вы хотите вращать график.
+
+ -- Method on mglGraphAB: `void' Window (`int' argc, `char **'argv,
+          `mglDraw *'draw, `const char *'title, `bool' maximize=`false')
+     В основном аналогична предыдущей. Основное отличие в том, что
+     функции рисования и обновления данных определены в классе
+     наследнике класса `mglDraw'. Этот класс определен в `#include
+     <mgl/mgl_define.h>' и имеет только 2 метода: class mglDraw
+     {
+     public:
+         virtual int Draw(mglGraph *) { return 0; };
+         virtual void Reload(int) {};
+     };
+      Вы можете создать класс-наследник `mglDraw' и переопределить один
+     или оба метода для использования с данной функцией.
+
+ -- Метод класса `mglGraphAB' (C++): `void' ToggleAlpha ()
+ -- C function: `int' mgl_wnd_toggle_alpha (`HMGL' gr)
+     Включает/выключает прозрачность, но не перезаписывает настройки
+     пользовательской функции рисования.
+
+ -- Метод класса `mglGraphAB' (C++): `void' ToggleLight ()
+ -- C function: `int' mgl_wnd_toggle_light (`HMGL' gr)
+     Включает/выключает освещение, но не перезаписывает настройки
+     пользовательской функции рисования.  Switch on/off lighting but do
+     not overwrite switches in user drawing function.
+
+ -- Метод класса `mglGraphAB' (C++): `void' ToggleZoom ()
+ -- C function: `int' mgl_wnd_toggle_zoom (`HMGL' gr)
+     Включает/выключает приближение выбранного мышью области рисунка.
+
+ -- Метод класса `mglGraphAB' (C++): `void' ToggleRotate ()
+ -- C function: `int' mgl_wnd_toggle_rotate (`HMGL' gr)
+     Включает/выключает режим вращения мышью. Обычно левая кнопка
+     вращает график, средняя сдвигает, правая приближает и меняет
+     перспективу.
+
+ -- Метод класса `mglGraphAB' (C++): `void' ToggleNo ()
+ -- C function: `int' mgl_wnd_toggle_no (`HMGL' gr)
+     Выключает режим приближения/вращения и восстанавливает вид по
+     умолчанию.  Switch off all zooming and rotation and restore
+     initial state.
+
+ -- Метод класса `mglGraphAB' (C++): `void' Update ()
+ -- C function: `int' mgl_wnd_update (`HMGL' gr)
+     Обновляет содержимое окна.
+
+ -- Метод класса `mglGraphAB' (C++): `void' ReLoad (`bool' o)
+ -- C function: `int' mgl_wnd_reload (`HMGL' gr, `int' val)
+     Перезагружает данные пользователя и обновляет картинку.
+
+ -- Метод класса `mglGraphAB' (C++): `void' Adjust ()
+ -- C function: `int' mgl_wnd_adjust (`HMGL' gr)
+     Подгоняет размер картинки под размер окна (виджета).
+
+ -- Метод класса `mglGraphAB' (C++): `void' NextFrame ()
+ -- C function: `int' mgl_wnd_next_frame (`HMGL' gr)
+     Показывает следующий кадр.
+
+ -- Метод класса `mglGraphAB' (C++): `void' PrevFrame ()
+ -- C function: `int' mgl_wnd_prev_frame (`HMGL' gr)
+     Показывает предыдущий кадр.  Show previous frame if one.
+
+ -- Метод класса `mglGraphAB' (C++): `void' Animation ()
+ -- C function: `int' mgl_wnd_animation (`HMGL' gr)
+     Запускает/останавливает слайд-шоу (анимацию) кадров.
+
+ -- C function: `int' mgl_wnd_set_auto_clf (`HMGL' gr, `int' val)
+
+ -- Widget option of mglGraphAB: `bool' AutoClf
+     Включает/выключает автоматическую очистку рисунка между
+     перерисовкой. Выключение полезно для рисования с накоплением
+     (например, результатов/точек расчета).
+
+ -- C function: `int' mgl_wnd_set_delay (`HMGL' gr, `int' val)
+
+ -- Widget option of mglGraphAB: `float' Delay
+     Задержка анимации в секундах. По умолчанию равно 1 секунде.
+
+ -- Метод класса `mglGraphAB' (C++, Python): `mglPoint' CalcXYZ (`int'
+          xs, `int' ys)
+ -- C function: `void' mgl_calc_xyz (`HMGL' gr, `int' xs, `int' ys,
+          `float *'x, `float *'y, `float *'z)
+     Вычисляет 3D координаты {x,y,z} для экранной точки {xs,ys}. В
+     данный момент игнорируется перспектива графика и формулы перехода
+     в криволинейные координаты. Вычисления производятся для последнего
+     использованного InPlot (*note Transformation matrix::).
+
+ -- Метод класса `mglGraphAB' (C++, Python): `mglPoint' CalcScr
+          (`mglPoint' p)
+ -- Метод класса `mglGraphAB' (C++): `void' CalcScr (`mglPoint' p, `int
+          *'xs, `int *'ys)
+ -- C function: `void' mgl_calc_scr (`HMGL' gr, `float' x, `float' y,
+          `float' z, `int *'xs, `int *'ys)
+     Вычисляет экранные координаты {xs,ys} для 3D координат {x,y,z}.
+     Вычисления производятся для последнего использованного InPlot
+     (*note Transformation matrix::).
+
+ -- C function: `int' mgl_wnd_set_show_mouse_pos (`HMGL' gr, `int' val)
+
+ -- Widget option of mglGraphAB: `float' ShowMousePos
+     Включает/выключает показ координат последнего нажатия кнопки мыши
+     на рисунке.
+
+ -- Widget option of mglGraphAB: `mglPoint' LastMousePos
+     Последнее положение нажатия кнопки мыши.
+
+
+File: mathgl_ru.info,  Node: Widget classes,  Next: mglData class,  Prev: Plotter classes,  Up: Top
+
+5 "Оконные" классы
+*******************************
+
+Есть целый набор "оконных" классов для создания окон с графикой MathGL:
+`mglGraphFLTK', `mglGraphQT', `mglGraphGLUT'. Все эти классы позволяют
+пользователю просмотривать, вращать, экспортировать рисунок.
+Большинство из них (кроме `mglGraphGLUT') являются наследниками класса
+`mglGraphZB' и используют "присоединенный" класс для центрального
+виджета окна. Все оконные классы имеют схожий набор функций (*note
+mglGraphAB class::). Ниже приведен список классов с краткими
+комментариями.
+
+ -- Class: mglGraphFLTK
+     Создает окно используя библиотеку FLTK. Окно имеет панель
+     инструментов и меню  для упрощения действий с графиками.
+     "Присоединенный" класс элемента интерфейса - `Fl_MathGL'. Класс
+     определен в `#include <mgl/mgl_fltk.h>'.
+
+ -- Class: Fl_MathGL
+     Класс реализует элемент интерфейса FLTK для отображения графики
+     MathGL. Класс определен в `#include <mgl/mgl_fltk.h>'.
+
+ [image src="fltk.png" ]
+
+Пример окна FLTK с графикой MathGL.
+
+ -- Class: mglGraphQT
+     Создает окно используя библиотеку Qt. Окно имеет панель
+     инструментов и меню  для упрощения действий с графиками.
+     "Присоединенный" класс элемента интерфейса - `QMathGL'. Класс
+     определен в `#include <mgl/mgl_qt.h>'.
+
+ -- Class: QMathGL
+     Класс реализует элемент интерфейса Qt для отображения графики
+     MathGL. Класс определен в `#include <mgl/mgl_qt.h>'.
+
+ [image src="qt.png" ]
+
+Пример окна Qt с графикой MathGL.
+
+ -- Class: mglGraphGLUT
+     Создает окно используя библиотеку GLUT. Класс определен в
+     `#include <mgl/mgl_glut.h>'.
+
+ [image src="glut.png" ]
+
+Пример окна GLUT с графикой MathGL.
+
+* Menu:
+
+* Fl_MathGL class::
+* QMathGL class::
+
+
+File: mathgl_ru.info,  Node: Fl_MathGL class,  Next: QMathGL class,  Up: Widget classes
+
+5.1 Класс Fl_MathGL
+========================
+
+Класс реализует элемент интерфейса FLTK для отображения графики MathGL
+(определен в `#include <mgl/mgl_fltk.h>').
+
+ -- Method on Fl_MathGL: `void' set_draw (`mglDraw *'dr)
+     Задает функцию рисования из класса производного от `mglDraw'.
+
+ -- Method on Fl_MathGL: `void' update (`mglGraph *'gr=`NULL')
+     Обновляет (перерисовывает) график, используя экземпляр класса GR
+     (по умолчанию встроенный).
+
+ -- Method on Fl_MathGL: `void' set_angle (`float' t, `float' p)
+     Задает углы для дополнительного вращения графика.
+
+ -- Method on Fl_MathGL: `void' set_state (`int' f)
+     Задает битовые флаги для: 1 - прозрачности, 2 - освещения.
+
+ -- Method on Fl_MathGL: `void' set_state (`bool' z, `bool' r)
+     Задает флаги обработки движений мыши: Z=`true' - разрешает
+     приближение выделения, R=`true' разрешает
+     вращение/сдвиг/приближение/перспективу.
+
+ -- Method on Fl_MathGL: `void' set_zoom (`float' X1, `float' Y1,
+          `float' X2, `float' Y2)
+     Задает область приближения.
+
+ -- Method on Fl_MathGL: `void' get_zoom (`float *'X1, `float *'Y1,
+          `float *'X2, `float *'Y2)
+     Возвращает область приближения.
+
+ -- Method on Fl_MathGL: `void' set_popup (`const Fl_Menu_Item *'pmenu,
+          `Fl_Widget *'w, `void *'v)
+     Задает указатель на всплывающее меню.
+
+ -- Method on Fl_MathGL: `mglGraph *' get_graph ()
+     Возвращает указатель на класс, строящий графики.
+
+ -- Widget option of Fl_MathGL: `Fl_Valuator *' tet_val
+     Указатель на внешний элемент управления для изменения угла tet.
+
+ -- Widget option of Fl_MathGL: `Fl_Valuator *' phi_val
+     Указатель на внешний элемент управления для изменения угла phi.
+
+ -- Widget option of Fl_MathGL: `mglGraphAB *' graph
+     Указатель на экземпляр класса для построения графиков.
+
+ -- Widget option of Fl_MathGL: `void *' draw_par
+     Параметр для функции рисования.
+
+ -- Widget option of Fl_MathGL: `int (*' draw_func `)(mglGraph *gr,
+          void *par)'
+     Указатель на функцию рисования.
+
+
+File: mathgl_ru.info,  Node: QMathGL class,  Prev: Fl_MathGL class,  Up: Widget classes
+
+5.2 QMathGL class
+=================
+
+Класс реализует элемент интерфейса Qt для отображения графики MathGL
+(определен в `#include <mgl/mgl_qt.h>').
+
+ -- Method on QMathGL: `void' setDraw (`mglDraw *'dr)
+     Задает функцию рисования из класса производного от `mglDraw'.
+
+ -- Method on QMathGL: `void' setDraw (`int (*'draw)(`mglGraph *'gr,
+          `void *'p), `void *'par=`NULL')
+     Задает функцию рисования DRAW и укзатель PAR на параметр для нее.
+
+ -- Method on QMathGL: `void' setGraph (`mglGraphAB *'gr)
+     Устанавливает указатель на внешний экземпляр класса для рисования
+     (вместо встроенного `mglGraphZB'). Отмечу, что QMathGL
+     автоматически удалит этот объект при удалении элемента интерфейса
+     или при новом вызове `setGraph()'.
+
+ -- Method on QMathGL: `void' setPopup (`QMenu *'p)
+     Задает указатель на всплывающее меню.
+
+ -- Method on QMathGL: `void' setSize (`int' w, `int' h)
+     Задает размеры элемента управления и картинки.
+
+ -- Method on QMathGL: `double' getRatio ()
+     Возвращает соотношение сторон рисунка.
+
+ -- Method on QMathGL: `int' getPer ()
+     Возвращает величину перспективы в процентах.
+
+ -- Method on QMathGL: `int' getPhi ()
+     Возвращает величину угла Phi в градусах.
+
+ -- Method on QMathGL: `int' getTet ()
+     Возвращает величину угла Theta в градусах.
+
+ -- Method on QMathGL: `bool' getAlpha ()
+     Возвращает состояние переключателя прозрачности.
+
+ -- Method on QMathGL: `bool' getLight ()
+     Возвращает состояние переключателя освещения.
+
+ -- Method on QMathGL: `bool' getZoom ()
+     Возвращает состояние переключателя приближения мышью.
+
+ -- Method on QMathGL: `bool' getRotate ()
+     Возвращает состояние переключателя вращения мышью.
+
+ -- Slot on QMathGL: `void' refresh ()
+     Перерисовывает (обновляет) элемент управления без вызова функции
+     рисования.
+
+ -- Slot on QMathGL: `void' update (`mglGraph *'gr=`NULL')
+     Обновляет рисунок путем вызова функции рисования.
+
+ -- Slot on QMathGL: `void' copy ()
+     Копирует график в буфер обмена.
+
+ -- Slot on QMathGL: `void' setPer (`int' val)
+     Задает величину перспективы.
+
+ -- Slot on QMathGL: `void' setPhi (`int' val)
+     Задает величину угла Phi.
+
+ -- Slot on QMathGL: `void' setTet (`int' val)
+     Задает величину угла Theta.
+
+ -- Slot on QMathGL: `void' setAlpha (`bool' val)
+     Включает/выключает прозрачность.
+
+ -- Slot on QMathGL: `void' setLight (`bool' val)
+     Включает/выключает освещение.
+
+ -- Slot on QMathGL: `void' setZoom (`bool' val)
+     Включает/выключает приближение мышью.
+
+ -- Slot on QMathGL: `void' setRotate (`bool' val)
+     Включает/выключает вращение мышью.
+
+ -- Slot on QMathGL: `void' zoomIn ()
+     Приблиажет график.
+
+ -- Slot on QMathGL: `void' zoomOut ()
+     Отдаляет график.
+
+ -- Slot on QMathGL: `void' restore ()
+     Восстанавливает приближение и поворот графика в значения по
+     умолчанию.
+
+ -- Slot on QMathGL: `void' reload ()
+     Обновляет данные и перерисовывает график.
+
+ -- Slot on QMathGL: `void' shiftLeft ()
+     Сдвигает график влево.
+
+ -- Slot on QMathGL: `void' shiftRight ()
+     Сдвигает график вправо.
+
+ -- Slot on QMathGL: `void'shiftUp ()
+     Сдвигает график вверх.
+
+ -- Slot on QMathGL: `void' shiftDown ()
+     Сдвигает график вниз.
+
+ -- Slot on QMathGL: `void' exportPNG (`QString' fname=`""')
+     Сохраняет текущий рисунок в PNG файл.
+
+ -- Slot on QMathGL: `void' exportPNGs (`QString' fname=`""')
+     Сохраняет текущий рисунок в PNG файл без прозрачности.
+
+ -- Slot on QMathGL: `void' exportJPG (`QString' fname=`""')
+     Сохраняет текущий рисунок в JPEG файл.
+
+ -- Slot on QMathGL: `void' exportBPS (`QString' fname=`""')
+     Сохраняет текущий рисунок в растровый EPS файл.  Export current
+     picture to bitmap EPS file.
+
+ -- Slot on QMathGL: `void' exportEPS (`QString' fname=`""')
+     Сохраняет текущий рисунок в векторный EPS файл.
+
+ -- Slot on QMathGL: `void' exportSVG (`QString' fname=`""')
+     Сохраняет текущий рисунок в векторный SVG файл.
+
+ -- Slot on QMathGL: `void' exportIDTF (`QString' fname=`""')
+     Сохраняет текущий рисунок в IDTF файл.
+
+ -- Slot on QMathGL: `void' setMGLFont (`QString' path)
+     Восстанавливает (PATH=`""') или загружает файлы шрифтов.
+
+ -- Slot on QMathGL: `void' print ()
+     Печатает текущий рисунок.
+
+ -- Slot on QMathGL: `void' adjust ()
+     Подгоняет размер картинки под размер окна. Функция выполняется
+     только если graph - экземпляр класса mglGraphQT.
+
+ -- Slot on QMathGL: `void' nextSlide ()
+     Показывает следующий кадр. Функция выполняется только если graph -
+     экземпляр класса mglGraphQT.
+
+ -- Slot on QMathGL: `void' prevSlide ()
+     Показывает предыдущий кадр. Функция выполняется только если graph
+     - экземпляр класса mglGraphQT.
+
+ -- Slot on QMathGL: `void' animation (`bool' st=`true')
+     Запускает анимацию. Функция выполняется только если graph -
+     экземпляр класса mglGraphQT.
+
+ -- Slot on QMathGL: `void' about ()
+     Показывает информацию о программе.
+
+ -- Slot on QMathGL: `void' aboutQt ()
+     Показывает информацию о версии Qt.
+
+ -- Signal on QMathGL: `void' phiChanged (`int' val)
+     Угол Phi изменен.
+
+ -- Signal on QMathGL: `void' tetChanged (`int' val)
+     Угол Tet изменен.
+
+ -- Signal on QMathGL: `void' perChanged (`int' val)
+     Перспектива изменена.
+
+ -- Signal on QMathGL: `void' alphaChanged (`bool' val)
+     Прозрачность изменена.
+
+ -- Signal on QMathGL: `void' lightChanged (`bool' val)
+     Освещение изменено.
+
+ -- Signal on QMathGL: `void' zoomChanged (`bool' val)
+     Режим приближения мышью изменен.
+
+ -- Signal on QMathGL: `void' rotateChanged (`bool' val)
+     Режим вращения мышью изменен.
+
+ -- Widget option of QMathGL: `QString' appName
+     Имя приложения для окон сообщений.
+
+ -- Widget option of QMathGL: `bool' autoResize
+     Разрешить изменять размер рисунка (по умолчанию false).
+
+ -- Widget option of QMathGL: `int' animDelay
+     Задержка анимации в мсек.
+
+
+File: mathgl_ru.info,  Node: mglData class,  Next: Other classes,  Prev: Widget classes,  Up: Top
+
+6 Класс mglData
+********************
+
+Это класс для работы с массивами данных, определенный в `#include
+<mgl/mgl_data.h>'. Он содержит функции для выделения памяти и изменения
+размера данных, чтения данных из файла, численного
+дифференцирования/интегрирования/интерполяции и пр., заполнения по
+текстовой формуле и т.д. Класс позволяет работать с данными размерности
+не более 3 (как функции от трех переменных - x,y,z). По умолчанию
+внутреннее представление данных - float, выбранный в силу меньшего
+размера занимаемой памяти и достаточной для построения графиков
+точности. Базовый тип можно сменить на этапе установки (*note
+Installation and using::) указав опцию `--enable-double'. Однако, в
+дальнейшем в документации будет использован тип `float'.
+
+* Menu:
+
+* Public variables::
+* Create and delete::
+* Fill::
+* Rearrange::
+* File I/O::
+* Make another data::
+* Change data::
+* Interpolation::
+* Informational functions::
+* Operators::
+* Global functions::
+
+
+File: mathgl_ru.info,  Node: Public variables,  Next: Create and delete,  Up: mglData class
+
+6.1 Переменные
+========================
+
+ -- Variable of mglData: `float *' a
+     Указатель на массив данных. Это одномерный массив. Например,
+     матрица [nx x ny x nz] представляется одномерным массивом длиной
+     nx*ny*nz, где элемент с индексами {i, j, k} находится как
+     a[i+nx*j+nx*ny*k] (индексы отсчитываются от нуля).
+
+ -- Variable of mglData: `int' nx
+     Размер массива по 1-ой размерности ('x' размерности).
+
+ -- Variable of mglData: `int' ny
+     Размер массива по 2-ой размерности ('y' размерности).
+
+ -- Variable of mglData: `int' nz
+     Размер массива по 3-ей размерности ('z' размерности).
+
+ -- Variable of mglData: `char *' id
+     Имена колонки (или среза при nz>1) - один символ на колонку.
+
+
+File: mathgl_ru.info,  Node: Create and delete,  Next: Fill,  Prev: Public variables,  Up: mglData class
+
+6.2 Создание и удаление
+========================================
+
+ -- Конструктор on `mglData': `' mglData (`int' mx=`1', `int' my=`1',
+          `int' mz=`1')
+     Конструктор по умолчанию. Выделяет память для массива данных и
+     заполняет ее нулями.
+
+ -- Конструктор on `mglData': `' mglData (`const char *'fname)
+     Читает данные из файла.
+
+ -- Конструктор on `mglData': `' mglData (`const mglData' &dat)
+     Копирует данные из другого экземпляра `mglData'.
+
+ -- Метод класса `mglData' (C++, Python): `void' Create (`int' mx,
+          `int' my=`1', `int' mz=`1')
+ -- Функция С: `void' mgl_data_create (`HMDT' dat, `int' mx, `int' my,
+          `int' mz)
+     Создает/пересоздает массив данных указанного размера и заполняет
+     его нулями. Ничего не делает при MX, MY, MZ отрицательных или
+     равных нулю.
+
+ -- Метод класса `mglData' (C++): `void' Set (`const float *'A, `int'
+          NX, `int' NY=`1', `int' NZ=`1')
+ -- Метод класса `mglData' (C++): `void' Set (`const double *'A, `int'
+          NX, `int' NY=`1', `int' NZ=`1')
+ -- Функция С: `void' mgl_data_set_float (`HMDT' dat, `const float *'A,
+          `int' NX, `int' NY, `int' NZ)
+ -- Функция С: `void' mgl_data_set_double (`HMDT' dat, `const double
+          *'A, `int' NX, `int' NY, `int' NZ)
+     Выделяет память и копирует данные из массивов типа `float*' или
+     `double*', т.е. из массивов определенных как `float a[NX*NY*NZ];'.
+
+ -- Метод класса `mglData' (C++): `void' Set (`const float **'A, `int'
+          N1, `int' N2)
+ -- Метод класса `mglData' (C++): `void' Set (`const double **'A, `int'
+          N1, `int' N2)
+ -- Функция С: `void' mgl_data_set_float2 (`HMDT' dat, `const float
+          **'A, `int' N1, `int' N2)
+ -- Функция С: `void' mgl_data_set_double2 (`HMDT' dat, `const double
+          **'A, `int' N1, `int' N2)
+     Выделяет память и копирует данные из массивов типа `float**' или
+     `double**' с размерностями N1, N2, т.е. из массивов определенных
+     как `float a[N1][N2];'.
+
+ -- Метод класса `mglData' (C++): `void' Set (`const float ***'A, `int'
+          N1, `int' N2)
+ -- Метод класса `mglData' (C++): `void' Set (`const double ***'A,
+          `int' N1, `int' N2)
+ -- Функция С: `void' mgl_data_set_float3 (`HMDT' dat, `const float
+          ***'A, `int' N1, `int' N2)
+ -- Функция С: `void' mgl_data_set_double3 (`HMDT' dat, `const double
+          ***'A, `int' N1, `int' N2)
+     Выделяет память и копирует данные из массивов типа `float***' или
+     `double***' с размерностями N1, N2, N3, т.е. из массивов
+     определенных как `float a[N1][N2][N3];'.
+
+ -- Метод класса `mglData' (C++): `void' Set (`gsl_vector *'v)
+ -- Функция С: `void' mgl_data_set_vector (`HMDT' dat, `gsl_vector *'v)
+     Выделяет память и копирует данные из структуры типа `gsl_vector *'.
+
+ -- Метод класса `mglData' (C++): `void' Set (`gsl_matrix *'m)
+ -- Функция С: `void' mgl_data_set_matrix (`HMDT' dat, `gsl_matrix *'m)
+     Выделяет память и копирует данные из структуры типа `gsl_matrix *'.
+
+ -- Метод класса `mglData' (C++, Python): `inline void' Set (`const
+          mglData &'from)
+ -- Функция С: `void' mgl_data_set (`HMDT' dat, `const HMDT' from)
+     Выделяет память и копирует данные из другого экземпляра FROM.
+
+ -- Метод класса `mglData' (C++): `void' Set (`const std::vector<int>
+          &'d)
+ -- Метод класса `mglData' (C++): `void' Set (`const std::vector<float>
+          &'d)
+ -- Метод класса `mglData' (C++): `void' Set (`const
+          std::vector<double> &'d)
+     Выделяет память и копирует данные из массива типа `std::vector<T>'.
+
+ -- Метод класса `mglData' (C+, Python): `void' Set (`const char *'str,
+          `int' NX, `int' NY=`1', `int' NZ=`1')
+ -- Функция С: `void' mgl_data_set_values (`const char *'str, `int' NX,
+          `int' NY, `int' NZ)
+     Выделяет память и сканирует (scanf) данные из строки.
+
+
+File: mathgl_ru.info,  Node: Fill,  Next: Rearrange,  Prev: Create and delete,  Up: mglData class
+
+6.3 Заполнение данных
+=====================================
+
+ -- Метод класса `mglData' (C++, Python): `void' Fill (`float' x1,
+          `float' x2, `char' dir=`'x'')
+ -- Функция С: `void' mgl_data_fill (`HMDT' dat, `float' x1, `float'
+          x2, `char' dir)
+     Заполняет значениями равно распределенными в диапазоне [X1, X2] в
+     направлении DIR={`x',`y',`z'}.
+
+ -- Метод класса `mglData' (C++, Python): `void' Fill (`const char
+          *'eq, `mglPoint' Min, `mglPoint' Max, `const mglData
+          *'vdat=0, `const mglData *'wdat=0)
+ -- Функция С: `void' mgl_data_fill (`HMGL' gr, `HMDT' dat, `const char
+          *'eq, `const HMDT *'vdat, `const HMDT *'wdat)
+     Заполняет значениями вычисленными по формуле EQ. Формула
+     представляет собой произвольное выражение, зависящее от переменных
+     `x', `y', `z', `u', `v', `w'. Координаты `x', `y', `z' полагаются
+     меняющимися в диапазоне MIN x MAX (в отличие от функции `Modify').
+     Переменная `u' - значения исходного массива, переменные `v', `w' -
+     значения массивов VDAT, WDAT. Последние могут быть `NULL', т.е.
+     опущены.
+
+ -- Метод класса `mglData' (C++, Python): `void' Modify (`const char
+          *'eq, `int' dim=`0')
+ -- Метод класса `mglData' (C++, Python): `void' Modify (`const char
+          *'eq, `const mglData &'v)
+ -- Метод класса `mglData' (C++, Python): `void' Modify (`const char
+          *'eq, `const mglData &'v, `const mglData &'w)
+ -- Функция С: `void' mgl_data_modify (`HMDT' dat, `const char *'eq,
+          `int' dim)
+ -- Функция С: `void' mgl_data_modify_vw (`HMDT' dat, `const char *'eq,
+          `const HMDT' v, `const HMDT' w)
+     Заполняет значениями вычисленными по формуле EQ. Формула
+     представляет собой произвольное выражение, зависящее от переменных
+     `x', `y', `z', `u', `v', `w'. Координаты `x', `y', `z' полагаются
+     меняющимися в диапазоне [0,1] (в отличие от функции `Fill').
+     Переменная `u' - значения исходного массива, переменные `v', `w' -
+     значения массивов VDAT, WDAT. Последние могут быть `NULL', т.е.
+     опущены. Если указан DIM>0, то изменяются только слои >=DIM.
+
+ -- Метод класса `mglData' (C++, Python): `void' Put (`float' val,
+          `int' i=`-1', `int' j=`-1', `int' k=`-1')
+ -- mglData: `void' mgl_data_put_val (`HMDT' a, `float' val, `int' i,
+          `int' j, `int' k)
+     Присваивает значения (под-)массива DAT[I, J, K] = VAL. Индексы I,
+     J, K равные `-1' задают значениия VAL для всего диапазона
+     соответствующего направления(ий). Например, `Put(val,-1,0,-1);'
+     задает a[i,0,j]=VAL для i=0...(nx-1), j=0...(nz-1).
+
+ -- Метод класса `mglData' (C++, Python): `void' Put (`const mglData
+          &'v, `int' i=`-1', `int' j=`-1', `int' k=`-1')
+ -- mglData: `void' mgl_data_put_dat (`HMDT' a, `const HMDT' v, `int'
+          i, `int' j, `int' k)
+     Копирует значения из массива V в диапазон значений данного
+     массива. Индексы I, J, K равные `-1' задают диапазон изменения
+     значений в соответствующих направление(ях). Младшие размерности
+     массива V должны быть больше выбранного диапазона массива.
+     Например, `Put(v,-1,0,-1);' присвоитa[i,0,j]=V.ny>nz ? V.a[i,j] :
+     V.a[i], где i=0...(nx-1), j=0...(nz-1) и условие v.nx>=nx
+     выполнено.
+
+ -- Функция С: `void' mgl_data_set_value (`HMDT' dat, `float' v, `int'
+          i, `int' j, `int' k)
+     Присваивает значение выбранной ячейке массива данных.
+
+ -- Функция С: `float' mgl_data_get_value (`HMDT' dat, `int' i, `int'
+          j, `int' k)
+     Возвращает значение выбранной ячейки массива данных.
+
+ -- Метод класса `mglData' (C+, Python): `void' GetNx ()
+ -- Функция С: `float' mgl_data_get_nx (`HMDT' dat)
+     Возвращает размер по x-направлению.
+
+ -- Метод класса `mglData' (C+, Python): `void' GetNy ()
+ -- Функция С: `float' mgl_data_get_ny (`HMDT' dat)
+     Возвращает размер по y-направлению.
+
+ -- Метод класса `mglData' (C+, Python): `void' GetNz ()
+ -- Функция С: `float' mgl_data_get_nz (`HMDT' dat)
+     Возвращает размер по z-направлению.
+
+
+File: mathgl_ru.info,  Node: Rearrange,  Next: File I/O,  Prev: Fill,  Up: mglData class
+
+6.4 Изменение размеров данных
+====================================================
+
+ -- Метод класса `mglData' (C++, Python): `void' Rearrange (`int' mx,
+          `int' my=`0', `int' mz=`0')
+ -- Функция С: `void' mgl_data_rearrange (`HMDT' dat, `int' mx, `int'
+          my, `int' mz)
+     Изменяет размерность данных без изменения самого массива данных,
+     так что результирующий массив MX*MY*MZ < nx*ny*nz. Если один из
+     параметров MY или MZ ноль, то он будет выбран оптимальным образом.
+     Например, если MY=0, то будет MY=nx*ny*nz/MX и MZ=1.
+
+ -- Метод класса `mglData' (C++, Python): `void' Extend (`int' n1,
+          `int' n2=`0')
+ -- Функция С: `void' mgl_data_extend (`HMDT' dat, `int' n1, `int' n2)
+     Увеличивает размер данных путем вставки (|N1|+1) новых срезов
+     после (для N1>0) или перед (для N1<0) существующими данными. Можно
+     добавить сразу 2 размерности для 1d массива, используя второй
+     параметр N2. Данные в новые срезы будут скопированы из
+     существующих. Например, для N1>0 новый массив будет a_ij^new =
+     a_i^old where j=0...N1. Соответственно, для N1<0 новый массив
+     будет a_ij^new = a_j^old, где i=0...|N1|.
+
+ -- Метод класса `mglData' (C++, Python): `void' Transpose (`const char
+          *'dim=`"yx"')
+ -- Функция С: `void' mgl_data_transpose (`const char *'dim)
+     Транспонирует (меняет порядок размерностей) массив данных. Новый
+     порядок размерностей задается строкой DIM.
+
+ -- Метод класса `mglData' (C++, Python): `void' Squeeze (`int' rx,
+          `int' ry=`1', `int' rz=`1', `bool' smooth=`false')
+ -- Функция С: `void' mgl_data_squeeze (`HMDT' dat, `int' rx, `int' ry,
+          `int' rz, `int' smooth)
+     Уменьшает размер данных путем удаления элементов с индексами не
+     кратными RX, RY, RZ соответственно. Параметр SMOOTH задает
+     использовать сглаживания (т.е. out[i]=\sum_{j=i,i+r} a[j]/r) или
+     нет (т.е. out[i]=a[j*r]).
+
+ -- Метод класса `mglData' (C++, Python): `void' Crop (`int' n1, `int'
+          n2, `char' dir=`'x'')
+ -- Функция С: `void' mgl_data_crop (`HMDT' dat, `int' n1, `int' n2,
+          `char' dir)
+     Обрезает границы данных при I<N1 и I>N2 (при N2>0) или
+     I>`n[xyz]'-N2 (при N2<=0) вдоль направления DIR.
+
+ -- Метод класса `mglData' (C++, Python): `void' InsertRows (`int' at,
+          `int' num=`1', `const char *'eq=`NULL')
+     Вставляет NUM срезов вдоль направления 'y' (строк) с позиции AT и
+     заполняет их по формуле EQ (при EQ!=0) или нулями.
+
+ -- Метод класса `mglData' (C++, Python): `void' InsertColumns (`int'
+          at, `int' num=`1', `const char *'eq=`NULL')
+     Вставляет NUM срезов вдоль направления 'x' (колонок) с позиции AT
+     и заполняет их по формуле EQ (при EQ!=0) или нулями.
+
+ -- Метод класса `mglData' (C++, Python): `void' InsertSlices (`int'
+          at, `int' num=`1', `const char *'eq=`NULL')
+     Вставляет NUM срезов вдоль направления 'z' с позиции AT и
+     заполняет их по формуле EQ (при EQ!=0) или нулями.
+
+ -- Метод класса `mglData' (C++, Python): `void' DeleteRows (`int' at,
+          `int' num=`1')
+     Удаляет NUM срезов вдоль направления 'y' (строк) с позиции AT.
+
+ -- Метод класса `mglData' (C++, Python): `void' DeleteColumns (`int'
+          at, `int' num=`1')
+     Удаляет NUM срезов вдоль направления 'x' (колонок) с позиции AT.
+
+ -- Метод класса `mglData' (C++, Python): `void' DeleteSlices (`int'
+          at, `int' num=`1')
+     Удаляет NUM срезов вдоль направления 'z' с позиции AT.
+
+ -- Метод класса `mglData' (C++, Python): `void' Insert (`char' dir,
+          `int' pos=`0', `int' num=`1')
+ -- Функция С: `void' mgl_data_insert (`HMDT' dat, `char' dir, `int'
+          pos, `char' num)
+     Вставляет NUM срезов вдоль направления DIR с позиции POS и
+     заполняет их нулями.
+
+ -- Метод класса `mglData' (C++, Python): `void' Delete (`char' dir,
+          `int' pos=`0', `int' num=`1')
+ -- Функция С: `void' mgl_data_delete (`HMDT' dat, `char' dir, `int'
+          pos, `char' num)
+     Удаляет NUM срезов вдоль направления DIR с позиции POS.
+
+
+File: mathgl_ru.info,  Node: File I/O,  Next: Make another data,  Prev: Rearrange,  Up: mglData class
+
+6.5 Чтение/сохранение данных
+==================================================
+
+ -- Метод класса `mglData' (C++, Python): `void' Read (`const char
+          *'fname)
+ -- Функция С: `void' mgl_data_read (`HMDT' dat, `const char *'fname)
+     Читает данные из текстового файла с разделителями символом
+     пробела/табуляции с автоматическим определением размера массива.
+     Двойной перевод строки начинает новый срез данных (по направлению
+     z).
+
+ -- Метод класса `mglData' (C++, Python): `void' Read (`const char
+          *'fname, `int' mx, `int' my=`1', `int' mz=`1')
+ -- Функция С: `void' mgl_data_read_dim (`HMDT' dat, `const char
+          *'fname, `int' mx, `int' my, `int' mz)
+     Читает данные из текстового файла с заданными размерами. Ничего не
+     делается если параметры MX, MY или MZ равны нулю или отрицательны.
+
+ -- Метод класса `mglData' (C++, Python): `void' ReadMat (`const char
+          *'fname, `int' dim=`2')
+ -- Функция С: `void' mgl_data_read_mat (`HMDT' dat, `const char
+          *'fname, `int' dim)
+     Читает данные из текстового файла с размерами, указанными в первых
+     DIM числах файла. При этом переменная DIM задает размерность (1d,
+     2d, 3d) данных.
+
+ -- Метод класса `mglData' (C++, Python): `void' ReadRange (`const char
+          *'templ, `float' from, `float' to, `float' step=`1.f', `bool'
+          as_slice=`false')
+     Объединяет данные из нескольких текстовых файлов. Имена файлов
+     определяются вызовом функции `sprintf(fname,templ,val);', где VAL
+     меняется от FROM до TO с шагом STEP. Данные загружаются один за
+     другим в один и тот же срез данных (при AS_SLICE=`false') или
+     срез-за-срезом (при AS_SLICE=`true').
+
+ -- Метод класса `mglData' (C++, Python): `void' ReadAll (`const char
+          *'templ, `bool' as_slice=`false')
+     Объединяет данные из нескольких текстовых файлов, чьи имена
+     удовлетворяют шаблону TEMPL (например, TEMPL=`"t_*.dat"'). Данные
+     загружаются один за другим в один и тот же срез данных (при
+     AS_SLICE=`false') или срез-за-срезом (при AS_SLICE=`true').
+
+ -- Метод класса `mglData' (C++, Python): `void' Save (`const char
+          *'fname, `int' ns=`-1') `const'
+ -- Функция С: `void' mgl_data_save (`const HMDT' dat, `const char
+          *'fname, `int' ns)
+     Сохраняет весь массив данных при NS=`-1' или только NS-ый срез в
+     текстовый файл.
+
+ -- Метод класса `mglData' (C++, Python): `void' ReadHDF (`const char
+          *'fname, `const char *'dname)
+     Читает массив с именем DNAME из HDF5 или HDF4 файла FNAME. Функция
+     ничего не делает если библиотека была собрана с флагами
+     NO_HDF5|NO_HDF4.
+
+ -- Метод класса `mglData' (C++, Python): `void' SaveHDF (`const char
+          *'fname, `const char *'dname, `bool' rewrite=`false') `const'
+     Сохраняет массив под именем DNAME в HDF5 или HDF4 файл FNAME.
+     Функция ничего не делает если библиотека была собрана с флагами
+     NO_HDF5|NO_HDF4.
+
+ -- Метод класса `mglData' (C++, Python): `void' Import (`const char
+          *'fname, `const char *'scheme, `float' v1=`0', float v2=`1')
+ -- Функция С: `void' mgl_data_import (`HMDT' dat, `const char *'fname,
+          `const char *'scheme, `float' v1, float v2)
+     Читает данные из растрового файла. RGB значения пикселов
+     преобразуются в число в диапазоне [V1, V2] используя цветовую
+     схему SCH (*note Color scheme::).
+
+ -- Метод класса `mglData' (C++, Python): `void' Export (`const char
+          *'fname, `const char *'scheme, `float' v1=`0', float v2=`0',
+          `int' ns=`-1') const
+ -- Функция С: `void' mgl_data_export (`HMDT' dat, `const char *'fname,
+          `const char *'scheme, `float' v1, float v2, `int' ns) const
+     Сохраняет данные в растровый файл. Числовые значения,
+     нормированные в диапазон [V1, V2], преобразуются в RGB значения
+     пикселов, используя цветовую схему SCH (*note Color scheme::).
+     Если V1>=V2, то значения V1, V2 определяются автоматически как
+     минимальное и максимальное значение данных.
+
+
+File: mathgl_ru.info,  Node: Make another data,  Next: Change data,  Prev: File I/O,  Up: mglData class
+
+6.6 Создание новых данных
+============================================
+
+ -- Метод класса `mglData' (C++, Python): `mglData' SubData (`int' xx,
+          `int' yy=`-1', `int' zz=`-1') `const'
+ -- Функция С: `HMDT' mgl_data_subdata (`const HMDT' dat, `int' xx,
+          `int' yy, `int' zz)
+     Возвращает в RES подмассив массива данных DAT с фиксированными
+     значениями индексов с положительными значениями. Например,
+     `SubData(-1,2)' выделяет третью строку (индексы начинаются с
+     нуля), `SubData(4,-1)' выделяет 5-ую колонку, `SubData(-1,-1,3)'
+     выделяет 4-ый срез и т.д.
+
+ -- Метод класса `mglData' (C++, Python): `mglData' SubData (`const
+          mglData &'xx, `const mglData &'yy, `const mglData &'zz)
+          `const'
+ -- Функция С: `HMDT' mgl_data_subdata_ext (`const HMDT' dat, `const
+          HMDT' xx, `const HMDT' yy, `const HMDT' zz)
+     Extracts sub-array data from the original data array for indexes
+     specified by arrays XX, YY, ZZ (indirect access). The resulting
+     array have the same dimensions as input arrays for 2D and 3D
+     arguments. This function work like previous one for 1D arguments
+     (or numbers). The dimensions of all argument must be the same if
+     they are 2D or 3D arrays.
+
+ -- Метод класса `mglData' (C++, Python): `mglData' Column (`const char
+          *'eq) `const'
+ -- Функция С: `HMDT' mgl_data_column (`const HMDT' dat, `const char
+          *'eq)
+     Возвращает массив данных заполненный по формуле EQ, вычисленной
+     для именованных колонок (или срезов). Например,
+     `Column("n*w^2/exp(t)");'. Имена колонок задается функцией
+     `SetColumnId()' или при чтении файлов данных.
+
+ -- Метод класса `mglData' (C++, Python): `void' SetColumnId (`const
+          char *'ids)
+ -- Функция С: `void' mgl_data_set_id (`HMDT' dat, `const char *'ids)
+     Устанавливает символьные обозначения для колонок данных. Строка
+     должна содержать символы 'a'...'z' один на колонку (без пробелов).
+
+ -- Метод класса `mglData' (C++, Python): `mglData' Trace () `const'
+     Возвращает массив диагональных элементов a[i,i] (для 2D данных)
+     или a[i,i,i] (для 3D данных) где i=0...nx-1. В 1D случае
+     возвращается сам массив данных. Размеры массива данных должен быть
+     ny,nz >= nx или ny,nz = 1.
+
+ -- Метод класса `mglData' (C++, Python): `mglData' Hist (`int' n,
+          `float' v1=`0', `float' v2=`1', `int' nsub=`0') `const'
+ -- Функция С: `HMDT' mgl_data_hist (`const HMDT' dat, `int' n, `float'
+          v1, `float' v2, `int' nsub)
+     Возвращает распределение (гистограмму) из N точек от значений
+     массива в диапазоне [V1, V2]. Параметр NSUB задает число
+     дополнительных точек интерполяции (для сглаживания получившейся
+     гистограммы).
+
+ -- Метод класса `mglData' (C++, Python): `mglData' Hist (`const
+          mglData &'w, `int' n, `float' v1=`0', `float' v2=`1', `int'
+          nsub=`0') `const'
+ -- Функция С: `HMDT' mgl_data_hist_w (`const HMDT' dat, `const HMDT'
+          w, `int' n, `float' v1, `float' v2, `int' nsub)
+     Возвращает распределение (гистограмму) из N точек от значений
+     массива в диапазоне [V1, V2]. Массив W задает веса элементов.
+     Параметр NSUB задает число дополнительных точек интерполяции (для
+     сглаживания получившейся гистограммы).
+
+ -- Метод класса `mglData' (C++, Python): `mglData' Momentum (`char'
+          dir, `const char *'how) `const'
+ -- Функция С: `HMDT' mgl_data_momentum (`const HMDT' dat, `char' dir,
+          `const char *'how)
+     Возвращает момент (1d массив) данных вдоль направления DIR. Строка
+     HOW определяет тип момента. Момент определяется как res_k =
+     \sum_ij how(x_i,y_j,z_k) a_ij/ \sum_ij a_ij если DIR=`z' и т.д.
+     Координаты `x', `y', `z' - индексы массива в диапазоне [0,1].
+
+ -- Метод класса `mglData' (C++, Python): `mglData' Sum (`const char
+          *'dir) `const'
+ -- Функция С: `HMDT' mgl_data_sum (`const HMDT' dat, `const char *'dir)
+     Возвращает результат суммирования данных вдоль направления(ий) DIR.
+
+ -- Метод класса `mglData' (C++, Python): `mglData' Max (`const char
+          *'dir) `const'
+ -- Функция С: `HMDT' mgl_data_max_dir (`const HMDT' dat, `const char
+          *'dir)
+     Возвращает максимальное значение данных вдоль направления(ий) DIR.
+
+ -- Метод класса `mglData' (C++, Python): `mglData' Min (`const char
+          *'dir) `const'
+ -- Функция С: `HMDT' mgl_data_min_dir (`const HMDT' dat, `const char
+          *'dir)
+     Возвращает минимальное значение данных вдоль направления(ий) DIR.
+
+ -- Метод класса `mglData' (C++, Python): `mglData' Combine (`const
+          mglData &'a) `const'
+ -- Функция С: `HMDT' mgl_data_combine (`const HMDT' dat, `const HMDT'
+          a)
+     Возвращает прямое произведение массивов (наподобие, res[i,j] =
+     adat[i]*bdat[j] и т.д.).
+
+ -- Метод класса `mglData' (C++, Python): `mglData' Evaluate (`const
+          mglData &'idat, `bool' norm=`true') `const'
+ -- Метод класса `mglData' (C++, Python): `mglData' Evaluate (`const
+          mglData &'idat, `const mglData &'jdat, `bool' norm=`true')
+          `const'
+ -- Метод класса `mglData' (C++, Python): `mglData' Evaluate (`const
+          mglData &'idat, `const mglData &'jdat, `const mglData &'kdat,
+          `bool' norm=`true') `const'
+ -- Функция С: `HMDT' mgl_data_evaluate_i (`const HMDT' dat, `const
+          HMDT' idat, `int' norm)
+ -- Функция С: `HMDT' mgl_data_evaluate_ij (`const HMDT' dat, `const
+          HMDT' idat, `const HMDT' jdat, `int' norm)
+ -- Функция С: `HMDT' mgl_data_evaluate_ijk (`const HMDT' dat, `const
+          HMDT' idat, `const HMDT' jdat, `const HMDT' kdat, `int' norm)
+     Возвращает массив данных, полученный в результате интерполяции
+     исходного массива в точках других массивов (например,
+     res[i,j]=dat[idat[i,j],jdat[i,j]]). Размеры массивов IDAT, JDAT,
+     KDAT должны совпадать. Координаты в IDAT, JDAT, KDAT полагаются
+     нормированными в диапазон [0,1] (при NORM=`true') или в диапазоны
+     [0,nx], [0,ny], [0,nz] соответственно.
+
+ -- Метод класса `mglData' (C++, Python): `mglData' Resize (`int' mx,
+          `int' my=`1', `int' mz=`1', `float' x1=`0', `float' x2=`1',
+          `float' y1=`0', `float' y2=`1', `float' z1=`0', `float'
+          z2=`1') `const'
+ -- Функция С: `HMDT' mgl_data_resize (`const HMDT' dat, `int' mx,
+          `int' my, `int' mz)
+ -- Функция С: `HMDT' mgl_data_resize_box (`const HMDT' dat, `int' mx,
+          `int' my, `int' mz, `float' x1, `float' x2, `float' y1,
+          `float' y2, `float' z1, `float' z2)
+     Возвращает массив данных размером MX, MY, MZ со значениями
+     полученными интерполяцией значений из части [X1,X2] x [Y1,Y2] x
+     [Z1,Z2] исходного массива. Величины x,y,z полагаются
+     нормированными в диапазоне [0,1].
+
+
+File: mathgl_ru.info,  Node: Change data,  Next: Interpolation,  Prev: Make another data,  Up: mglData class
+
+6.7 Изменение данных
+===================================
+
+Эти функции изменяют данные вдоль заданного направления(ий) типа
+например дифференцирования, интегрирования и т.д. Направление
+указывается строкой DIR, которая может содержать символы `x', `y' и/или
+`z', вдоль которых изменения будут применены.
+
+ -- Метод класса `mglData' (C++, Python): `void' CumSum (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_cumsum (`HMDT' dat, `const char *'dir)
+     Суммирует с накоплением в выбранном направлении(ях).
+
+ -- Метод класса `mglData' (C++, Python): `void' Integral (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_integral (`HMDT' dat, `const char *'dir)
+     Выполняет интегрирование (подобно суммированию с накоплением) в
+     выбранном направлении(ях).
+
+ -- Метод класса `mglData' (C++, Python): `void' Diff (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_diff (`HMDT' dat, `const char *'dir)
+     Выполняет дифференцирование в выбранном направлении(ях).
+
+ -- Метод класса `mglData' (C++, Python): `void' Diff (`const mglData
+          &'x, `const mglData &'y)
+ -- Метод класса `mglData' (C++, Python): `void' Diff (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z)
+ -- Функция С: `void' mgl_data_diff_par (`HMDT' dat, `const HMDT' x,
+          `const HMDT'y, `const HMDT'z)
+     Выполняет дифференцирование данных, параметрически зависящих от
+     координат, в направлении X с Y, Z=constant. Параметр Z может быть
+     опущен, что соответствует 2D случаю. Используются следующие
+     формулы (2D случай): da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j),
+     где a_i=da/di, a_j=da/dj обозначает дифференцирование вдоль 1-ой и
+     2-ой размерности. Похожие формулы используются и в 3D случае.
+     Порядок аргументов можно менять - например, если данные a(i,j)
+     зависят от координат {x(i,j), y(i,j)}, то обычная производная по
+     `x' будет равна `Diff(x,y);', а обычная производная по `y' будет
+     равна `Diff(y,x);'.
+
+ -- Метод класса `mglData' (C++, Python): `void' Diff2 (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_diff2 (`const char *'dir)
+     Выполняет двойное дифференцирование (как в операторе Лапласа) в
+     выбранном направлении(ях).
+
+ -- Метод класса `mglData' (C++, Python): `void' SinFFT (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_sinfft (`HMDT' dat, `const char *'dir)
+     Выполняет синус преобразование в выбранном направлении(ях). Синус
+     преобразование есть \sum a_i \sin(k i).
+
+ -- Метод класса `mglData' (C++, Python): `void' CosFFT (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_cosfft (`HMDT' dat, `const char *'dir)
+     Выполняет косинус преобразование в выбранном направлении(ях).
+     Синус преобразование есть \sum a_i \cos(k i).
+
+ -- Метод класса `mglData' (C++, Python): `void' Hankel (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_hankel (`HMDT' dat, `const char *'dir)
+     Выполняет преобразование Ханкеля в выбранном направлении(ях).
+     Преобразование Ханкеля есть \sum a_i J_0(k i).
+
+ -- Метод класса `mglData' (C++, Python): `void' Swap (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_swap (`HMDT' dat, `const char *'dir)
+     Меняет местами левую и правую части данных в выбранном
+     направлении(ях). Полезно для отображения результата FFT.
+
+ -- Метод класса `mglData' (C++, Python): `void' Roll (`char' dir,
+          `num')
+ -- Функция С: `void' mgl_data_roll (`HMDT' dat, `char' dir, `num')
+     Сдвигает данные на NUM ячеек в выбранном направлении(ях).
+     Соответствует замене индекса на I->(I+NUM)%N.
+
+ -- Метод класса `mglData' (C++, Python): `void' Mirror (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_mirror (`HMDT' dat, `const char *'dir)
+     Отражает данные в выбранном направлении(ях). Соответствует замене
+     индекса на I->N-I.
+
+ -- Метод класса `mglData' (C++, Python): `void' Sew (`const char
+          *'dir, `float' da=`2*M_PI')
+ -- Функция С: `void' mgl_data_sew (`HMDT' dat, `const char *'dir,
+          `float' da)
+     Удаляет скачки данных (например, скачки фазы после обратных
+     тригонометрических функций) с периодом DA в выбранном
+     направлении(ях).
+
+ -- Метод класса `mglData' (C++, Python): `void' Smooth (`int' Type,
+          `const char *'dir, `float' delta=`0')
+ -- Функция С: `void' mgl_data_smooth (`HMDT' dat, `int' Type, `float'
+          delt, `const char *'dirs)
+     Сглаживает данные в выбранном направлении(ях) DIR методом TYPE.
+     Сейчас поддерживаются 4 метода: `SMOOTH_NONE=0' ничего не делает
+     при DELTA=0 или сдвигает данные к нулю на шагом DELTA,
+     `SMOOTH_LINE_3=1' линейное усреднение по 3 точкам,
+     `SMOOTH_LINE_5=2' линейное усреднение по 5 точкам,
+     `SMOOTH_QUAD_5=3' квадратичное усреднение по 5 точкам. Параметр
+     DELTA запрещает изменение значений на величину большую DELTA.
+
+ -- Метод класса `mglData' (C++, Python): `void' Smooth (`const char
+          *'dir)
+     Smooths the data on specified direction(s). This is the same as
+     `Smooth()' but argument TYPE is specified in string as `0' for
+     `SMOOTH_NONE', `3' for `SMOOTH_LINE_3', `5' for `SMOOTH_LINE_5'.
+     If string DIR don't contain digits `035' then TYPE=`SMOOTH_QUAD_5'
+     is used.
+
+ -- Метод класса `mglData' (C++, Python): `void' Envelop (`char'
+          dir=`'x'')
+ -- Функция С: `void' mgl_data_envelop (`HMDT' dat, `char' dir)
+     Находит огибающую данных в выбранном направлении DIR.
+
+ -- Метод класса `mglData' (C++, Python): `void' Norm (`float' v1=`0',
+          `float' v2=`1', `bool' sym=`false', `int' dim=`0')
+     Нормирует данные в интервал [V1,V2]. Если SYM=`true', то
+     используется симметричный интервал [-max(|v1|,|v2|),
+     max(|v1|,|v2|)]. Изменения применяются только к срезам >=DIM.
+
+ -- Метод класса `mglData' (C++, Python): `void' NormSl (`float'
+          v1=`0', `float' v2=`1', `char' dir=`'z'', `bool'
+          keep_en=`true', `bool' sym=`false')
+ -- Функция С: `void' mgl_data_norm_slice (`HMDT' dat, `float' v1,
+          `float' v2, `char' dir, `int' keep_en, `int' sym)
+     Нормирует данные срез-за-срезом в выбранном направлении DIR в
+     интервал [V1,V2]. Если SYM=`true', то используется симметричный
+     интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Если KEEP=`true', то
+     максимальное значение k-го среза ограничено величиной \sqrt{\sum
+     a_ij(k)/\sum a_ij(0)}.
+
+
+File: mathgl_ru.info,  Node: Interpolation,  Next: Informational functions,  Prev: Change data,  Up: mglData class
+
+6.8 Интерполяция
+============================
+
+ -- Method on `mglData' (C++, Python): `float' Spline (`float' x,
+          `float' y=`0', `float' z=`0') `const'
+ -- C function: `float' mgl_data_spline (`const HMDT' dat, `float' x,
+          `float' y, `float' z)
+     Интерполирует данные кубическим сплайном в точке X в [0...nx-1], Y
+     в [0...ny-1], Z в [0...nz-1].
+
+ -- Method on `mglData' (C++, Python): `float' Spline1 (`float' x,
+          `float' y=`0', `float' z=`0') `const'
+ -- C function: `float' mgl_data_spline1 (`const HMDT' dat, `float' x,
+          `float' y, `float' z)
+     Интерполирует данные кубическим сплайном в точке X, Y, Z, где
+     координаты полагаются в интервале [0, 1].
+   
+ -- Method on `mglData' (C++, Python): `float' Linear (`float' x,
+          `float' y=`0', `float' z=`0') `const'
+ -- C function: `float' mgl_data_linear (`const HMDT' dat, `float' x,
+          `float' y, `float' z)
+     Интерполирует данные линейной функцией в точке X в [0...nx-1], Y в
+     [0...ny-1], Z в [0...nz-1].
+   
+ -- Method on `mglData' (C++, Python): `float' Linear1 (`float' x,
+          `float' y=`0', `float' z=`0') `const'
+ -- C function: `float' mgl_data_linear1 (`const HMDT' dat, `float' x,
+          `float' y, `float' z)
+     Интерполирует данные линейной функцией в точке X, Y, Z, где
+     координаты полагаются в интервале [0, 1].
+   
+ -- Method on `mglData' (C++, Python): `float' v (`int' i, `int' j=`0',
+          `int' k=`0') `const'
+ -- C function: `float' mgl_data_get_value (`const HMDT' dat, `int' i,
+          `int' j, `int' k)
+     Возвращает значение ячейки с проверкой на границы массива данных.
+   
+ -- Method on `mglData' (C++, Python): `float' Spline5 (`float' x,
+          `float' y, `float' z, `float' &dx, `float' &dy, `float' &dz)
+          `const'
+     Интерполирует данные сплайном 5-го порядка в точке X, Y, Z, где
+     координаты полагаются в интервале [0, 1].
+
+ -- C function: `float *' mgl_data_value (`HMDT' dat, `int' i, `int' j,
+          `int' k)
+     Возвращает указатель на ячейку данных. Может быть не действителен
+     после вызова любой функции изменяющей данные.
+
+ -- C function: `const float *' mgl_data_data (`const HMDT' dat)
+     Возвращает указатель на весь массив данных. Может быть не
+     действителен после вызова любой функции изменяющей данные.
+
+
+File: mathgl_ru.info,  Node: Informational functions,  Next: Operators,  Prev: Interpolation,  Up: mglData class
+
+6.9 Информационные функции
+===============================================
+
+ -- Метод класса `mglData' (C++): `void' PrintInfo (`char *'buf, `bool'
+          all=`false') `const'
+     Печатает информацию о данных (размеры, моменты и пр.) в строку
+     BUF. Параметр ALL устанавливает печатать ли подробную информацию
+     (если `true') или только базовую информацию.
+
+ -- Метод класса `mglData' (C++): `void' PrintInfo (`FILE *'fp) `const'
+     Аналогично, но выводит в файл (или, например, в stdout).
+
+ -- Метод класса `mglData' (C++, Python): `float' Maximal () `const'
+ -- Функция С: `float' mgl_data_max (`const HMDT' dat)
+     Возвращает максимальное значение массива данных.
+   
+ -- Метод класса `mglData' (C++, Python): `float' Minimal () `const'
+ -- Функция С: `float' mgl_data_min (`HMDT' dat) `const'
+     Возвращает минимальное значение массива данных.
+
+ -- Метод класса `mglData' (C++, Python): `float' Maximal (`int' &i,
+          `int' &j, `int' &k) `const'
+ -- Функция С: `float' mgl_data_max_int (`const HMDT' dat, `int' *i,
+          `int' *j, `int' *k)
+     Возвращает максимальное значение массива данных и его положение в
+     переменные I, J, K.
+
+ -- Метод класса `mglData' (C++, Python): `float' Minimal (`int' &i,
+          `int' &j, `int' &k) `const'
+ -- Функция С: `float' mgl_data_min_int (`const HMDT' dat, `int' *i,
+          `int' *j, `int' *k)
+     Возвращает минимальное значение массива данных и его положение в
+     переменные I, J, K.
+
+ -- Метод класса `mglData' (C++, Python): `float' Maximal (`float' &i,
+          `float' &j, `float' &k) `const'
+ -- Функция С: `float' mgl_data_max_real (`const HMDT' dat, `float' *x,
+          `float' *y, `float' *z)
+     Возвращает максимальное значение массива данных и его приближенное
+     (интерполированное) положение в переменные I, J, K.
+
+ -- Метод класса `mglData' (C++, Python): `float' Minimal (`float' &i,
+          `float' &j, `float' &k) `const'
+ -- Функция С: `float' mgl_data_min_real (`const HMDT' dat, `float' *x,
+          `float' *y, `float' *z)
+     Возвращает минимальное значение массива данных и его приближенное
+     (интерполированное) положение в переменные I, J, K.
+
+ -- Метод класса `mglData' (C++, Python): `float' Momentum (`char' dir,
+          `float' &m, `float' &w) `const'
+ -- Функция С: `float' mgl_data_momentum_mw (`const HMDT' dat, `char'
+          dir, `float' *m, `float' *w)
+     Возвращает нулевой момент (энергию, I=\sum a_i) и записывает
+     первый (среднее, m = \sum \xi_i a_i/I) и второй момент (ширину,
+     w^2 = \sum (\xi_i-m)^2 a_i/I). Здесь \xi - соответствующая
+     кордината если DIR равно `'x'', `'y'', `'z''. В противном случае
+     среднее и ширина равны m = \sum a_i/N, w^2 = \sum (a_i-m)^2/N.
+
+ -- Метод класса `mglData' (C++): `float' Momentum (`char' dir, `float'
+          &m, `float' &w, `float' &s, `float' &k) `const'
+     Возвращает нулевой момент (энергию, I=\sum a_i) и записывает
+     первый (среднее, m = \sum \xi_i a_i/I), второй (ширину, w^2 = \sum
+     (\xi_i-m)^2 a_i/I), третий (асимметрия, s = \sum (\xi_i-m)^3 a_i/
+     I w^3) и четвертый моменты (эксцесс, k = \sum (\xi_i-m)^4 a_i / 3
+     I w^4)). Здесь \xi - соответствующая кордината если DIR равно
+     `'x'', `'y'', `'z''. В противном случае среднее, ширина,
+     асимметрия, эксцесс равны m = \sum a_i/N, w^2 = \sum (a_i-m)^2/N и
+     т.д.
+
+ -- Метод класса `mglData' (C++, Python): `float' Find (`const char
+          *'cond, `int' &i, `int' &j, `int' &k) `const'
+ -- Функция С: `float' mgl_data_first (`const HMDT' dat, `const char
+          *'cond, `int' *i, `int' *j, `int' *k)
+     Находит положение (после заданного в I, J, K) первого не нулевого
+     значения формулы COND. Функция возвращает найденное значение и
+     записывает его положение в I, J, K.
+   
+ -- Метод класса `mglData' (C++, Python): `float' Last (`const char
+          *'cond, `int' &i, `int' &j, `int' &k) `const'
+ -- Функция С: `float' mgl_data_last (`const HMDT' dat, `const char
+          *'cond, `int' *i, `int' *j, `int' *k)
+     Находит положение (перед заданного в I, J, K) последнего не
+     нулевого значения формулы COND. Функция возвращает найденное
+     значение и записывает его положение в I, J, K.
+
+ -- Метод класса `mglData' (C++, Python): `int' Find (`const char
+          *'cond, `char' dir, `int' i=`0', `int' j=`0', `int' k=`0')
+          `const'
+ -- Функция С: `float' mgl_data_find (`const HMDT' dat, `const char
+          *'cond, `int' i, `int' j, `int' k)
+     Возвращает положение первого в направлении DIR не нулевого
+     значения формулы COND. Поиск начинается с точки {i,j,k}.
+   
+ -- Метод класса `mglData' (C++, Python): `bool' FindAny (`const char
+          *'cond) `const'
+ -- Функция С: `float' mgl_data_find_any (`const HMDT' dat, `const char
+          *'cond)
+     Определяет есть ли хоть одно значение массива, удовлетворяющее
+     условию COND.
+
+
+File: mathgl_ru.info,  Node: Operators,  Next: Global functions,  Prev: Informational functions,  Up: mglData class
+
+6.10 Операторы
+=======================
+
+ -- Метод класса `mglData' (C++, Python): `void' operator= (`const
+          mglData &'d)
+     Копирует данные из другого экземпляра.
+
+ -- Метод класса `mglData' (C++, Python): `void' operator*= (`const
+          mglData &'d)
+ -- Функция С: `void' mgl_data_mul_dat (`HMDT' dat, `const HMDT' d)
+     Поэлементно умножает массив D.
+
+ -- Метод класса `mglData' (C++, Python): `void' operator/= (`const
+          mglData &'d)
+ -- Функция С: `void' mgl_data_div_dat (`HMDT' dat, `const HMDT' d)
+     Поэлементно делит массив D.
+
+ -- Метод класса `mglData' (C++, Python): `void' operator+= (`const
+          mglData &'d)
+ -- Функция С: `void' mgl_data_add_dat (`HMDT' dat, `const HMDT' d)
+     Поэлементно прибавляет D.  Adds the other data.
+
+ -- Метод класса `mglData' (C++, Python): `void' operator-= (`const
+          mglData &'d)
+ -- Функция С: `void' mgl_data_sub_dat (`HMDT' dat, `const HMDT' d)
+     Поэлементно вычитает D.
+
+ -- Метод класса `mglData' (C++, Python): `void' operator*= (`float' d)
+ -- Функция С: `void' mgl_data_mul_num (`HMDT' dat, `float' d)
+     Умножает каждый элемент на число.
+
+ -- Метод класса `mglData' (C++, Python): `void' operator/= (`float' d)
+ -- Функция С: `void' mgl_data_div_num (`HMDT' dat, `float' d)
+     Делит каждый элемент на число.
+
+ -- Метод класса `mglData' (C++, Python): `void' operator+= (`float' d)
+ -- Функция С: `void' mgl_data_add_num (`HMDT' dat, `float' d)
+     Прибавляет число к каждому элементу.
+
+ -- Метод класса `mglData' (C++, Python): `void' operator-= (`float' d)
+ -- Функция С: `void' mgl_data_sub_num (`HMDT' dat, `float' d)
+     Вычитает число из каждого элемента.
+
+ -- Функция библиотеки: mglData operator+ (`const mglData &'a, `const
+          mglData &'b)
+     Возвращает поэлементную сумму данных.
+
+ -- Функция библиотеки: mglData operator+ (`float' a, `const mglData
+          &'b)
+ -- Функция библиотеки: mglData operator+ (`const mglData &'a, `float'
+          b)
+     Возвращает поэлементную сумму данных и числа.
+
+ -- Функция библиотеки: mglData operator- (`const mglData &'a, `const
+          mglData &'b)
+     Возвращает поэлементную разность данных.
+
+ -- Функция библиотеки: mglData operator- (`float' a, `const mglData
+          &'b)
+ -- Функция библиотеки: mglData operator- (`const mglData &'a, `float'
+          b)
+     Возвращает поэлементную разность числа и данных.
+
+ -- Функция библиотеки: mglData operator* (`const mglData &'a, `const
+          mglData &'b)
+     Возвращает поэлементное произведение данных.
+
+ -- Функция библиотеки: mglData operator* (`float' a, `const mglData
+          &'b)
+ -- Функция библиотеки: mglData operator* (`const mglData &'a, `float'
+          b)
+     Возвращает поэлементное произведение данных на число.
+
+ -- Функция библиотеки: mglData operator/ (`const mglData &'a, `const
+          mglData &'b)
+     Возвращает поэлементное деление данных.
+
+ -- Функция библиотеки: mglData operator/ (`const mglData &'a, `float'
+          b)
+     Возвращает поэлементное деление данных на число.
+
+
+File: mathgl_ru.info,  Node: Global functions,  Prev: Operators,  Up: mglData class
+
+6.11 Глобальные функции
+========================================
+
+Эти функции не методы класса `mglData', но они дают дополнительные
+возможности по обработке данных. Поэтому я поместил их в эту главу.
+
+ -- Функция библиотеки: `mglData' mglTransform (`const mglData &'real,
+          `const mglData &'imag, `const char *'type)
+ -- Функция С: `HMDT' mgl_transform (`const HMDT' real, `const HMDT'
+          imag, `const char *'type)
+     Выполняет интегральное преобразование комплексных данных REAL,
+     IMAG в выбранном направлении и возвращает модуль результата.
+     Порядок и тип преобразований задается строкой TYPE: первый символ
+     для x-направления, второй для y-направления, третий для
+     z-направления. Возможные символы: `f' - прямое преобразование
+     Фурье, `i' - обратное преобразование Фурье, `s' - синус
+     преобразование, `c' - косинус преобразование, `h' - преобразование
+     Ханкеля, `n' или ` ' - нет преобразования.
+
+ -- Функция библиотеки: `mglData' mglTransformA `const mglData &'ampl,
+          `const mglData &'phase, `const char *'type)
+ -- Функция С: `HMDT' mgl_transform_a `const HMDT' ampl, `const HMDT'
+          phase, `const char *'type)
+     Аналогично предыдущему с заданными амплитудой AMPL и фазой PHASE
+     комплексных чисел.
+
+ -- Функция библиотеки: `mglData' mglSTFA (`const mglData &'real,
+          `const mglData &'imag, `int' dn, `char' dir=`'x'')
+ -- Функция С: `HMDT' mgl_data_stfa (`const HMDT' real, `const HMDT'
+          imag, `int' dn,`char' dir)
+     Выполняет оконное преобразование Фурье длиной DN для комплексных
+     данных REAL, IMAG и возвращает модуль результата. Например, для
+     DIR=`x' результат будет иметь размер {int(nx/dn), dn, ny} и будет
+     равен res[i,j,k]=|\sum_d^dn
+     exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn.
+
+ -- Функция библиотеки: `mglData' mglPDE (`const char *'ham, `const
+          mglData &'ini_re, `const mglData &'ini_im, `mglPoint' Min,
+          `mglPoint' Max, `float' dz=`0.1', `float' k0=`100')
+ -- Функция С: `HMDT' mgl_pde_solve (`HMGL' gr, `const char *'ham,
+          `const HMDT' ini_re, `const HMDT' ini_im, `float' dz, `float'
+          k0)
+     Решает уравнение в частных производных du/dz =
+     i*k0*HAM(p,q,x,y,z,|u|)[u], где p=-i/k0*d/dx, q=-i/k0*d/dy -
+     псевдо-дифференциальные операторы. Параметры INI_RE, INI_IM задают
+     начальное распределение поля. Координаты в уравнении и в решении
+     полагаются в диапазоне осей координат. Замечу, что внутри этот
+     диапазон увеличивается в 3/2 раза для уменьшения отражения от
+     границ расчетного интервала. Параметр DZ задает шаг по
+     эволюционной координате z. В данный момент использован упрощенный
+     алгоритм, когда все "смешанные" члена (типа `x*p'->x*d/dx)
+     исключаются. Например, в 2D случае это функции типа ham = f(p,z) +
+     g(x,z,u). При этом допускаются коммутирующие комбинации (типа
+     `x*q'->x*d/dy). Переменная `u' используется для обозначения
+     амплитуды поля |u|. Это позволяет решать нелинейные задачи -
+     например, нелинейное уравнение Шредингера `ham='p^2+q^2-u^2''.
+     Также можно указать мнимую часть для поглощения (типа `ham =
+     'p^2+i*x*(x>0)''), но только если зависимость от `i' линейная,
+     т.е. ham = hre+i*him. См. раздел *note PDE sample::, для примеров
+     кода и графика.
+
+ -- Функция библиотеки: `mglData' mglRay (`const char *'ham, `mglPoint'
+          r0, `mglPoint' p0, `float' dt=`0.1', `float' tmax=`10')
+ -- Функция С: `HMDT' mgl_ray_trace (`const char *'ham, `float' x0,
+          `float' y0, `float' z0, `float' px, `float' py, `float' pz,
+          `float' dt, `float' tmax)
+     Решает систему геометрооптических уравнений d_r_/dt = d HAM/d_p_,
+     d_p_/dt = -d HAM/d_r_. Это гамильтоновы уравнения для траектории
+     частицы в 3D случае. Гамильтониан HAM может зависеть от координат
+     `x', `y', `z', импульсов `p'=px, `q'=py, `v'=pz и времени `t': ham
+     = H(x,y,z,p,q,v,t). Начальная точка (при `t=0') задается
+     переменными {X0, Y0, Z0, P0, Q0, V0}. Параметры DT и TMAX задают
+     шаг и максимальное время интегрирования. Результат - массив
+     {x,y,z,p,q,v,t} с размером {7 * int(TMAX/DT+1) }. См. раздел *note
+     Beam tracing sample::, для примеров кода и графика.
+
+ -- Функция библиотеки: `mglData' mglQO2d (`const char *'ham, `const
+          mglData &'ini_re, `const mglData &'ini_im, `const mglData
+          &'ray, `float' r=`1', `float' k0=`100', `mglData *'xx=`0',
+          `mglData *'yy=`0', `bool' UseR=`true')
+ -- Функция С: `HMDT' mgl_qo2d_solve (`const char *'ham, `const HMDT'
+          ini_re, `const HMDT' ini_im, `const HMDT' ray, `float' r,
+          `float' k0, `HMDT' xx, `HMDT' yy)
+     Решает уравнение в частных производных du/dt =
+     i*k0*HAM(p,q,x,y,|u|)[u] в сопровождающей системе координат, где
+     p=-i/k0*d/dx, q=-i/k0*d/dy - псевдо-дифференциальные операторы.
+     Параметры INI_RE, INI_IM задают начальное распределение поля.
+     Параметр RAY задает опорный луч для сопровождающей системы
+     координат. Можно использовать луч найденный с помощью `mglRay()'.
+     Опорный луч должен быть достаточно гладкий, чтобы система
+     координат была однозначной и для исключения ошибок интегрирования.
+     Если массивы XX и YY указаны, то в них записываются декартовы
+     координаты для каждой точки найденного решения. См. также
+     `mglPDE()'. См. раздел *note Beam tracing sample::, для примеров
+     кода и графика.
+
+ -- Функция библиотеки: `mglData' mglJacobian (`const mglData &'x,
+          `const mglData &'y)
+ -- Функция библиотеки: `mglData' mglJacobian (`const mglData &'x,
+          `const mglData &'y, `const mglData &'z)
+ -- Функция С: `HMDT' mgl_jacobian_2d (`const HMDT' x, `const HMDT' y)
+ -- Функция С: `HMDT' mgl_jacobian_3d (`const HMDT' x, `const HMDT' y,
+          `const HMDT' z)
+     Вычисляет якобиан преобразования {i,j,k} в {X,Y,Z}, где координаты
+     {i,j,k} полагаются нормированными в интервал [0,1]. Якобиан
+     находится по формуле det||dr_\alpha/d\xi_\beta||, где r={X,Y,Z} и
+     \xi={i,j,k}. Все размерности всех массивов должны быть одинаковы.
+     Данные должны быть трехмерными если указаны все 3 массива {X,Y,Z}
+     или двумерными если только 2 массива {X,Y}.
+
+
+File: mathgl_ru.info,  Node: Other classes,  Next: MGL interface,  Prev: mglData class,  Up: Top
+
+7 Other classes
+***************
+
+* Menu:
+
+* mglParse class::
+* mglFormula class::
+* mglFont class::
+* mglColor class::
+* mglPoint class::
+* mglVar class::
+* mglCommand class::
+* mglArg class::
+
+
+File: mathgl_ru.info,  Node: mglParse class,  Next: mglFormula class,  Up: Other classes
+
+7.1 mglParse class
+==================
+
+Class for parsing and executing MGL script. This class is defined in
+`#include <mgl/mgl_parse.h>'.
+
+   Class mglParse is the interpreter for MGL scripts (*note MGL
+interface::). The main function of mglParse class is `Parse()'. Exactly
+this function parses and executes the script string-by-string. Also
+there are two subservient functions for the finding and creation of a
+variable. These functions can be useful for displaying values of
+variables (arrays) in some external program (in window, for example).
+The variable DATALIST contains full list of variables in script. Flag
+ALLOWSETSIZE allows one to prevent changing the size of the  picture
+inside the script (forbids the MGL command `setsize').
+
+   Note an important feature - if user defines function FUNC in
+variable then it will be called before the destroying of this variable
+(*note mglVar class::).
+
+ -- Method on `mglParse' (C++, Python): `' mglParse (`bool'
+          setsize=`false')
+ -- C function: `HMPR' mgl_create_parser ()
+     Constructor initializes all values with zero and set ALLOWSETSIZE
+     value.
+
+ -- Method on `mglParse' (C++, Python): `' ~mglParse ()
+ -- C function: `void' mgl_delete_parser (`HMPR' p)
+     Destructor delete parser
+
+ -- Method on `mglParse' (C++, Python): `int' Parse (`mglGraph *'gr,
+          `const char *'str, `long' pos=`0')
+ -- Method on `mglParse' (C++): `int' Parse (`mglGraph *'gr, `const
+          wchar_t *'str, `long' pos=`0')
+ -- C function: `int' mgl_parse (`HMGL' gr, `HMPR' p, `const char
+          *'str, `int' pos)
+ -- C function: `int' mgl_parsew (`HMGL' gr, `HMPR' p, `const wchar_t
+          *'str, `int' pos)
+     Main function in the class. It parses the string STR and executes
+     it by  using GR as a graphics plotter. Returns the value depending
+     on an error presence in the string STR: 0 - no error, 1 - wrong
+     command argument(s), 2 - unknown command, 3 - string is too long.
+     Optional argument POS allows to save the string position in the
+     document (or file) for using `for|next' command.
+
+ -- Method on `mglParse' (C++): `int' Export (`wchar_t'
+          cpp_out`[1024]', `mglGraph *'gr, `const wchar_t *'str)
+     Function parses the string STR, executes it by  using GR as a
+     graphics plotter and exports it to C++ code. Returns the value
+     depending on an error presence in the string STR: 0 - no error, 1
+     - wrong command argument(s), 2 - unknown command, 3 - string is
+     too long. Output C++ text will be placed in OUT variable. If
+     string STR have options (defined after ';' symbol) then the
+     corresponding C++ texts are placed in variables OP1, OP2.
+
+ -- Method on `mglParse' (C++): `void' Execute (`mglGraph *'gr, `FILE
+          *'fp, `bool' print=`false')
+     Function parse and execute line-by-line MGL script in file FP. If
+     PRINT=`true' then all warnings and information will be printed in
+     stdout. Also this function support the `for|next' MGL commands.
+
+ -- Method on `mglParse' (C++): `void' Execute (`mglGraph *'gr, `int'
+          num, `const wchar_t **'text, `void (*' error `)(int line, int
+          kind)=NULL')
+     Function parse and execute line-by-line MGL script in array TEXT.
+     If ERROR is not `NULL' then this function will be called for all
+     warnings, information and other messages. Also this function
+     support the `for|next' MGL commands.
+
+ -- Method on `mglParse' (C++, Python): `void' Execute (`mglGraph *'gr,
+          `const char *'text, `void (*' error `)(int line, int
+          kind)=NULL')
+ -- Method on `mglParse' (C++): `void' Execute (`mglGraph *'gr, `const
+          wchar_t *'text, `void (*' error `)(int line, int kind)=NULL')
+ -- C function: `void' mgl_parse_text (`HMGL' gr, `HMPR' p, `const char
+          *'text)
+ -- C function: `void' mgl_parsew_text (`HMGL' gr, `HMPR' p, `const
+          wchar_t *'text)
+     Function parse and execute line-by-line MGL script in string TEXT.
+     Lines are separated by `\n' symbol as usual. If ERROR is not
+     `NULL' then this function will be called for all warnings,
+     information and other messages. Also this function support the
+     `for|next' MGL commands.
+
+ -- Method on `mglParse' (C++, Python): `bool' AddParam (`int' n,
+          `const char *'str, `bool' isstr=`true')
+ -- Method on `mglParse' (C++): `bool' AddParam (`int' n, `const
+          wchar_t *'str, `bool' isstr=`true')
+ -- C function: `void' mgl_add_param (`HMPR' p, `int' id, `const char
+          *'val)
+ -- C function: `void' mgl_add_paramw (`HMPR' p, `int' id, `const
+          wchar_t *'val)
+     Function set the value of N-th parameter as string STR (N=0, 1 ...
+     9). It return `true' for success.
+
+ -- Method on `mglParse' (C++, Python): `mglVar *' FindVar (`const char
+          *'name)
+ -- Method on `mglParse' (C++): `mglVar *' FindVar (`const wchar_t
+          *'name)
+ -- C function: `const HMDT' mgl_find_var (`HMPR' p, `const char *'name)
+     Function returns the pointer to variable with name NAME or zero if
+     variable is absent. Use this function to put external data array
+     to the script or get the data from the script.
+
+ -- Method on `mglParse' (C++, Python): `mglVar *' AddVar (`const char
+          *'name)
+ -- Method on `mglParse' (C++): `mglVar *' AddVar (`const wchar_t
+          *'name)
+ -- C function: `const HMDT' mgl_add_var (`HMPR' p, `const char *'name)
+     Function returns the pointer to variable with name NAME. If
+     variable is absent then new variable is created with name NAME.
+     Use this function to put external data array to the script or get
+     the data from the script.
+
+ -- Method on `mglParse' (C++): `void' DeleteVar (`mglVar *'v)
+ -- Method on `mglParse' (C++): `void' DeleteVar (`const char *'name)
+ -- Method on `mglParse' (C++): `void' DeleteVar (`const wchar_t *'name)
+     Function delete the variable specified by its name or by its
+     pointer.
+
+ -- Method on `mglParse' (C++, Python): `inline void' RestoreOnce ()
+ -- C function: `void' mgl_restore_once (`HMPR' p)
+     Restore Once flag.
+
+ -- Method on `mglParse' (Python): `void' AllowSetSize (`bool' a)
+ -- C function: `void' mgl_parser_allow_setsize (`HMPR' p, `int' a)
+     Allow to parse 'setsize' command or not.
+
+ -- Method on `mglParse' (C++): `void' AddCommand (`mglCommand *'cmd,
+          `int' num=`0')
+     Add NUM commands CMD to the defined MGL commands list. Parameter
+     CMD is array of `mglCommand' structures. If parameter NUM=0 then
+     it will be determined automatically. At this, array CMD *must
+     have* last element with `name=L""'
+
+ -- Option of mglParse: `mglVar *' DataList
+     List of variables defined in script.
+
+ -- Option of mglParse: `bool' AllowSetSize
+     Flag which allows/forbids the command `setsize' in scripts.
+
+ -- Option of mglParse: `bool' Stop
+     Flag which interrupt script execution.
+
+ -- Option of mglParse: `mglCommand *' Cmd
+     Table (array) of recognizable MGL commands (can be changed by
+     user). Items in the table *MUST be sorted* by NAME field !!! Last
+     items must have empty name (i.e. `L""').
+
+ -- Option of mglParse: `wchar_t *' op1
+     These strings contain command options and should be placed before
+     the command. These variables are used for MGL->C++ (or other
+     language) conversion.
+
+ -- Option of mglParse: `wchar_t *' op2
+     These strings contain command options and should be placed after
+     the command. These variables are used for MGL->C++ (or other
+     language) conversion.
+
+
+File: mathgl_ru.info,  Node: mglFormula class,  Next: mglFont class,  Prev: mglParse class,  Up: Other classes
+
+7.2 mglFormula class
+====================
+
+Class for evaluating of formula specified by the string. This class is
+defined in `#include <mgl/mgl_eval.h>'.
+
+   It is the fast variant of formula evaluation. At creation it will be
+recognized and compiled to tree-like internal code. At evaluation stage
+only fast calculations are performed. There is no difference between
+lower or upper case in formulas. If argument value lie outside the
+range of function definition then function returns NaN. *Note Textual
+formulas::.
+
+ -- Method on mglFormula: `' mglFormula (`const char *'str)
+     Parses the formula STR and creates formula-tree. Constructor
+     recursively parses the formula and creates a tree-like structure
+     containing functions and operators for fast further evaluating by
+     `Calc()' or `CalcD()' functions.
+
+ -- Method on mglFormula: `float' Calc (`float' x, `float' y=`0',
+          `float' z=`0', `float' u=`0')
+     Evaluates the formula for `'x','r''=X, `'y','n''=Y, `'z','t''=Z,
+     `'a','u''=U. Error code (if one) can be obtained from function
+     `GetError()'.
+
+ -- Method on mglFormula: `float' Calc (`float' x, `float' y, `float'
+          z, `float' u, `float' v, `float' w)
+     Evaluates the formula for `'x''=X, `'y''=Y, `'z''=Z, `'u''=U,
+     `'v''=V, `'w''=W. Error code (if one) can be obtained from
+     function `GetError()'.
+
+ -- Method on mglFormula: `float' Calc (`float' var`['z'-'a'+1]')
+     Evaluates the formula for variables in array VAR['z'-'a']. Error
+     code (if one) can be obtained from function `GetError()'.
+
+ -- Method on mglFormula: `float' CalcD (`float' var`['z'-'a'+1]',
+          `char' diff)
+     Evaluates the formula derivation respect to DIFF for variables in
+     array VAR['z'-'a']. Error code (if one) can be obtained from
+     function `GetError()'.
+
+ -- Method on mglFormula: `int' GetError ()
+     Returns error code: `0' means no error; `ERR_LOG' means error in
+     logarithm or power functions; `ERR_ARC' means error in inverse
+     functions (like asin); `ERR_SQRT' means error in sqrt function.
+
+
+File: mathgl_ru.info,  Node: mglFont class,  Next: mglColor class,  Prev: mglFormula class,  Up: Other classes
+
+7.3 mglFont class
+=================
+
+Class for working with font: load, get metrics, parse and draw strings.
+This class is defined in `#include <mgl/mgl_font.h>'.
+
+   The class is based on loading and drawing of vector Hershey font.
+There are two styles of specifying of the font type and aligning: by
+integer parameters or by string.
+
+   The string can be any combination of characters: `rbiLCRwou'. The
+font types are: `r' - roman font, `i' - italic style, `b' - bold style.
+By default roman font (that is `' or `r') is used. The align types are:
+`L' - align left (default), `C' - align center, `R' - align right.
+Additional font effects are: `w' - wire, `o' - over-lined, `u' -
+underlined. Parsing of the string to special (TeX-like) commands will
+be done if variable PARSE is true (it's default). See also *note Font
+styles::.
+
+   The over way of font and alignment setting is the using of the
+integer constant. Integer font Id can be one of predefined constants:
+`MGL_FONT_ITAL, MGL_FONT_BOLD, MGL_FONT_BOLD_ITAL =
+MGL_FONT_ITAL+MGL_FONT_BOLD'. Default font is `MGL_FONT_ROMAN'. Also
+there are flags `MGL_FONT_ULINE, MGL_FONT_OLINE, MGL_FONT_WIRE' for
+additional font effects. Align parameter controls the text alignment: 0
+- align left, 1 - align center, 2 - align right.
+
+* Menu:
+
+* Format of font files::
+
+ -- Method on mglFont: `' mglFont (`const char
+          *'name=`MGL_DEF_FONT_NAME', `const char *'path=`NULL')
+     Initialize the font and load data from file NAME (default name is
+     "STIX" for Linux and MacOS) or if  NAME=`NULL' limited data from
+     memory (default for Windows).
+
+ -- Method on mglFont: `bool' Load (`const char *' base, `const char
+          *'path=`NULL')
+     Load font from file PATH/BASE into the memory. The font may
+     contain 4 files: BASE.vfm, BASE_b.vfm, BASE_i.vfm, BASE_bi.vfm.
+     Appendix contain detailed description of font format.
+
+ -- Method on mglFont: `void' Restore ()
+     Restore default font.
+
+ -- Method on mglFont: `void' (`mglFont *' fnt)
+     Copy data from other font instance.
+
+ -- Method on mglFont: `void' Clear ()
+     Clear memory by deleting the loaded font.
+
+ -- Method on mglFont: `inline unsigned' GetNumGlyph ()
+     Return the number of glyphs in the font.
+
+ -- Method on mglFont: `inline bool' Ready ()
+     Return true if font is loaded and ready for use.
+
+ -- Method on mglFont: `float' Height (`int' font)
+     Gets height of text for font specified by integer constant.
+
+ -- Method on mglFont: `float' Puts (`const char *'str, `int' font=`0',
+          `int' align=`0')
+     Prints 8-bit text string for font specified by integer constant.
+
+ -- Method on mglFont: `float' Width (`const char *'str, `int' font=`0')
+     Gets width of 8-bit text string for font specified by integer
+     constant.
+
+ -- Method on mglFont: `float' Puts (`const wchar_t *'str, `int'
+          font=`0', `int' align=`0')
+     Prints Unicode text string for font specified by integer constant.
+
+ -- Method on mglFont: `float' Width (`const wchar_t *'str, `int'
+          font=`0')
+     Gets width of Unicode text string for font specified by integer
+     constant.
+
+ -- Method on mglFont: `float' Height (`const char *'how)
+     Gets height of text for font specified by string.
+
+ -- Method on mglFont: `float' Puts (`const char *'str, `const char
+          *'how)
+     Prints 8-bit text string for font specified by string.
+
+ -- Method on mglFont: `float' Width (`const char *'str, `const char
+          *'how)
+     Gets width of 8-bit text string for font specified by string.
+
+ -- Method on mglFont: `float' Puts (`const wchar_t *'str, `const char
+          *'how)
+     Prints Unicode text string for font specified by string.
+
+ -- Method on mglFont: `float' Width (`const wchar_t *'str, `const char
+          *'how)
+     Gets width of Unicode text string for font specified by string.
+
+ -- Parameter of mglFont: `mglGraph *' gr
+     Instance of mglGraph class which is used for character drawing.
+
+ -- Parameter of mglFont: `bool' parse
+     Flag for switching on/off the parsing of TeX commands. Default
+     value is `true'.
+
+
+File: mathgl_ru.info,  Node: Format of font files,  Up: mglFont class
+
+7.3.1 Format of font files
+--------------------------
+
+Starting from v.1.6 the MathGL library uses new font files. The font is
+defined in 4 files with suffixes `*.vfm', `*_b.vfm', `*_i.vfm',
+`*_bi.vfm'. These files are text files containing the data for roman
+font, bold font, italic font and bold italic font. The files (or some
+symbols in the files) for bold, italic or bold italic fonts can be
+absent. In this case the roman glyph will be used for them. By analogy,
+if the bold italic font is absent but the bold font is present then
+bold glyph will be used for bold italic. You may create these font
+files by yourself from *.ttf, *.otf files with the help of program
+`font_tools'. This program can be found at MathGL home site.
+
+   The format of font files (*.vfm - vector font for MathGL) is the
+following.
+  1. First string contains human readable comment and is always ignored.
+
+  2. Second string contains 3 numbers, delimited by space or
+     tabulation. The order of numbers is the following: NUMG - the
+     number of glyphs in the file (integer), FACT - the factor for
+     glyph sizing (float), SIZE - the size of buffer for glyph
+     description (integer).
+
+  3. After it NUMG-th strings with glyphs description are placed. Each
+     string contains 6 positive numbers, delimited by space of
+     tabulation. The order of numbers is the following: Unicode glyph
+     ID, glyph width, number of lines in glyph, position of lines
+     coordinates in the buffer (length is 2*number of lines), number of
+     triangles in glyph, position of triangles coordinates in the
+     buffer (length is 6*number of triangles).
+
+  4. The end of file contains the buffer with point coordinates at
+     lines or triangles vertexes. The size of buffer (the number of
+     integer) is SIZE.
+
+   Each font file can be compressed by gzip.
+
+   Note: the closing contour line  is done automatically (so the last
+segment may be absent). For starting new contour use a point with
+coordinates `{0x3fff, 0x3fff}'.
+
+
+File: mathgl_ru.info,  Node: mglColor class,  Next: mglPoint class,  Prev: mglFont class,  Up: Other classes
+
+7.4 mglColor class
+==================
+
+Structure for working with colors. This structure is defined in
+`#include <mgl/mgl.h>'.
+
+   There are two ways to set the color in MathGL. First one is using of
+float values of red, green and blue channels for precise color
+definition. The second way is the using of character id. There are a
+set of characters specifying frequently used colors. Normally capital
+letter gives more dark color than lowercase one. *Note Line styles::.
+
+ -- Parameter of mglVar: `float' r, g, b
+     Reg, green and blue component of color.
+
+ -- Method on mglColor: `' mglColor (`float' R, `float' G, `float' B)
+     Constructor sets the color by float values of Red, Green and Blue
+     channels.
+
+ -- Method on mglColor: `' mglColor (`char' c=`'k'')
+     Constructor sets the color from character id. The black color is
+     used by default.
+
+ -- Method on mglColor: `void' Set (`float' R, `float' G, `float' B)
+     Sets color from values of Red, Green and Blue channels. This
+     values should be in interval [0,1].
+
+ -- Method on mglColor: `void' Set (`mglColor' c, `float' bright=`1')
+     Sets color as "lighted" version of color C.
+
+ -- Method on mglColor: `void' Set (`char' p)
+     Sets color from symbolic id.
+
+ -- Method on mglColor: `bool' Valid ()
+     Checks correctness of the color.
+
+ -- Method on mglColor: `float' Norm ()
+     Gets maximal of spectral component.
+
+ -- Method on mglColor: `bool' operator== (`const mglColor &'c)
+     Compare with another color
+
+ -- Library Function: inline mglColor operator+ (`const mglColor &'a,
+          `const mglColor &'b)
+     Adds colors by its RGB values.
+
+ -- Library Function: inline mglColor operator- (`const mglColor &'a,
+          `const mglColor &'b)
+     Subtracts colors by its RGB values.
+
+ -- Library Function: inline mglColor operator* (`const mglColor &'a,
+          `float' b)
+     Multiplies color by number.
+
+ -- Library Function: inline mglColor operator* (`float' a, `const
+          mglColor &'b)
+     Multiplies color by number.
+
+ -- Library Function: inline mglColor operator/ (`const mglColor &'a,
+          `float' b)
+     Divide color by number.
+
+ -- Library Function: inline mglColor operator! (`const mglColor &'a)
+     Return inverted color.
+
+
+File: mathgl_ru.info,  Node: mglPoint class,  Next: mglArg class,  Prev: mglColor class,  Up: Other classes
+
+7.5 mglPoint class
+==================
+
+Structure describes point in space. This structure is defined in
+`#include <mgl/mgl.h>'
+
+ -- Parameter of mglVar: `float' x, y, z
+     Point coordinates. By default all values are zero.
+
+ -- Library Function: inline mglPoint operator+ (`const mglPoint &'a,
+          `const mglPoint &'b)
+     Point of summation (summation of vectors).
+
+ -- Library Function: inline mglPoint operator- (`const mglPoint &'a,
+          `const mglPoint &'b)
+     Point of difference (difference of vectors).
+
+ -- Library Function: inline mglPoint operator* (`float' a, `const
+          mglPoint &'b)
+     Multiplies (scale) points by number.
+
+ -- Library Function: inline mglPoint operator* (`const mglPoint &'a,
+          `float' b)
+     Multiplies (scale) points by number.
+
+ -- Library Function: inline mglPoint operator/ (`const mglPoint &'a,
+          `float' b)
+     Multiplies (scale) points by number 1/b.
+
+ -- Library Function: inline float operator- (`const mglPoint &'a,
+          `const mglPoint &'b)
+     Scalar product of vectors.
+
+ -- Library Function: inline mglPoint operator^ (`const mglPoint &'a,
+          `const mglPoint &'b)
+     Cross-product of vectors.
+
+ -- Library Function: inline mglPoint operator& (`const mglPoint &'a,
+          `const mglPoint &'b)
+     The part of A which is perpendicular to vector B.
+
+ -- Library Function: inline mglPoint operator| (`const mglPoint &'a,
+          `const mglPoint &'b)
+     The part of A which is parallel to vector B.
+
+ -- Library Function: inline mglPoint operator! (`const mglPoint &'a)
+     Return vector perpendicular to vector A.
+
+ -- Library Function: inline bool Norm (`const mglPoint &'a)
+     Return the norm |A|^2 of vector A.
+
+ -- Library Function: inline bool operator== (`const mglPoint &'a,
+          `const mglPoint &'b)
+     Return true if points are the same.
+
+ -- Library Function: inline bool operator!= (`const mglPoint &'a,
+          `const mglPoint &'b)
+     Return true if points are different.
+
+
+File: mathgl_ru.info,  Node: mglVar class,  Next: mglCommand class,  Prev: mglArg class,  Up: Other classes
+
+7.6 mglVar class
+================
+
+Structure describes variable of type `mglData' and its name in MGL
+script. This structure is used by `mglParse' and is defined in
+`#include <mgl/mgl_parse.h>'.
+
+ -- Parameter of mglVar: `mglData' d
+     Data itself
+
+ -- Parameter of mglVar: `wchar_t' s[256]
+     Data name
+
+ -- Parameter of mglVar: `void *' o
+     Pointer to external object for function FUNC.
+
+ -- Parameter of mglVar: `mglVar *' next
+     Pointer to next instance in list
+
+ -- Parameter of mglVar: `mglVar *' prev
+     Pointer to prev instance in list
+
+ -- Parameter of mglVar: `bool' temp
+     Flag for temporar variable. Temporal variables will be destroyed
+     after script execution.
+
+ -- Parameter of mglVar: `void (*' func `)(void *)'
+     Callback function for destroying non-temporal variable.
+
+ -- Method on mglVar: `void' MoveAfter (`mglVar *'var)
+     Move variable after VAR and copy `func' from `var' (if `func' is
+     not 0)
+
+
+File: mathgl_ru.info,  Node: mglCommand class,  Prev: mglVar class,  Up: Other classes
+
+7.7 mglCommand class
+====================
+
+Structure describes MGL command, its name, short description,
+executable and export functions. The structure is used by `mglParse'
+and is defined in `#include <mgl/mgl_parse.h>'.
+
+ -- Parameter of mglCommand: `const wchar_t *' name
+     Name of command.
+
+ -- Parameter of mglCommand: `const wchar_t *' desc
+     Short command description (can be NULL).
+
+ -- Parameter of mglCommand: `const wchar_t *' form
+     Format of command arguments (can be NULL).
+
+ -- Parameter of mglCommand: `int (*' exec `)(mglGraph *gr, long n,
+          mglArg *a, int k[10])const wchar_t *'
+     Function for executing (plotting) the command using grapher GR and
+     having N-th arguments A. Function must return 0 if all is OK; or 1
+     if arguments are wrong.
+
+ -- Parameter of mglCommand: `void (*' save `)(wchar_t out[1024], long
+          n, mglArg *a, int k[10])const wchar_t *'
+     Function for exporting in C++ (can be NULL).
+
+
+File: mathgl_ru.info,  Node: mglArg class,  Next: mglVar class,  Prev: mglPoint class,  Up: Other classes
+
+7.8 mglArg class
+================
+
+Structure describes arguments of functions in the stucture
+`mglCommand'. It is defined in `#include <mgl/mgl_parse.h>'.
+
+ -- Parameter of mglArg: `int' type
+     Type of argument: 0-data, 1-string, 2-number.
+
+ -- Parameter of mglArg: `mglData *' d
+     Pointer to data (used if type=0).
+
+ -- Parameter of mglArg: `wchar_t' w[2048]
+     String with parameters (used if type=1 or if type=0 as variable
+     name).
+
+ -- Parameter of mglArg: `char' s[2048]
+     String with parameters (used if type=1).
+
+ -- Parameter of mglArg: `float' v
+     Numerical value (used if type==2)
+
+
+File: mathgl_ru.info,  Node: MGL interface,  Next: Samples,  Prev: Other classes,  Up: Top
+
+8 Язык MGL
+**************
+
+MathGL имеет встроенный скриптовый язык MGL для обработки и отображения
+данных. Скрипты MGL можно использовать как независимо (программами
+UDAV, mgl2png, mgl2eps, mgl2svg и пр., *note Utilities::) так и
+вызовами библиотеки.
+
+   Язык MGL достаточно простой. Каждая строка - отдельная команда.
+Первое слово - имя команды, а все остальные ее аргументы. Команда может
+иметь до 1000 аргументов (по крайней мере сейчас). Слова разделяются
+одно от другого пробелом или символом табуляции. Различий между верхним
+и нижним индексом нет, т.е. переменные A и A идентичны. Символ `#'
+начинает комментарий - все символы после него игнорируются до конца
+строки. Исключением является случай, когда `#' входит в строку. Опции
+команды указываются после символа `;' (*note Command options (MGL)::).
+Символ `:' начинает новую команду (подобно переводу строки) если он
+расположен не внутри скобок или строки.
+
+   Если строка содержит ссылки на внешние параметры (`$0', `$1' ...
+`$9') или макроопределения (`$a', `$b' ... `$z'), то текущие значения
+параметров/макроопределений подставляются в строку вместо ссылки до
+выполнением команды. Это позволяет использовать один и тот же скрипт
+при различных входных параметрах командной строки или вводить
+макроопределения по ходу исполнения команд скрипта.
+
+   Аргументы команды могут быть строками, переменными или числами.
+   * Строка - произвольный набор символов между метками `''.
+
+   * Обычно переменная имеет имя, состоящее из букв и чисел (должно
+     начинаться с буквы и не быть длиннее 64 символов). В качестве
+     переменной можно использовать временные массивы, включающие в себя:
+        * срезы ("подмассивы") массивов данных (подобно команде *note
+          subdata::). Например, `a(1)' или `a(1,:)' или `a(1,:,:)' -
+          вторая строка массива A, `a(:,2)' или `a(:,2,:)' - третий
+          столбец, `a(:,:,0)' - первый срез и т.д. Также можно выделить
+          часть массива с m-го по n-ый элемент `a(m:n,:,:)' или просто
+          `a(m:n)'.
+
+        * произвольные комбинации столбцов данных (например,
+          `a('n*w^2/exp(t)')'), если столбцы данных были именованы
+          командой *note idset:: или в файле данных (в строке
+          начинающейся с `##').
+
+        * произвольное выражение из существующих переменных и констант.
+          Например, `sqrt(dat(:,5)+1)' даст временный массив данных с
+          элементами равными `tmp[i,j] = sqrt(dat[i,5,j]+1)'.
+
+        * массивы с элементами заданными в квадратных скобках [],
+          разделенные `,'. При этом внутри выражения не должно быть
+          пробелов! Например, `[1,2,3]' даст временный массив из 3
+          элементов {1, 2, 3}; `[[11,12],[21,22]]' даст матрицу 2*2 и
+          т.д. Элементами такой конструкции могут быть и массивы если
+          их размерности одинаковые, например `[v1,v2,...,vn]'.
+
+        * результат команд построения новых данных (*note Make another
+          data::), если они заключены в фигурные скобки {}. Например,
+          `{sum dat 'x'}' даст временный массив, который есть результат
+          суммирования DAT вдоль 'x'. Это такой же массив как и TMP,
+          полученный командой `sum tmp dat 'x''. При этом можно
+          использовать вложенные конструкции, например `{sum {max dat
+          'z'} 'x'}'.
+     Временные массивы не могут стоять в качестве первого аргумента
+     команд, создающих массивы (например, `new', `read', `hist' и т.д.).
+
+   * К скалярным переменным, кроме собственно чисел, относятся:
+     специальные переменные `nan=#QNAN, pi=3.1415926..., on=1, off=0,
+     :=-1', переменные с суффиксами (*note Suffixes::), переменные
+     определенные командой *note define::. Также массивы размером 1x1x1
+     считаются скалярами (например, `pi/dat.nx').
+   Перед первым использованием все переменные должны быть определены с
+помощью команд, создающих массивы (*note new::, *note var::, *note
+list::, *note copy::, *note read::, *note hist::, *note sum:: и др.,
+*note Data create (MGL):: и *note Make another data (MGL)::).
+
+   Команды могут иметь несколько наборов аргументов (например, `plot
+ydat' и `plot xdat ydat'). Все аргументы команды для выбранного набора
+должны быть указаны, однако часть из них могут иметь значения по
+умолчанию. Такие аргументы в описании команд будут помещены в
+квадратные скобки [], например `plot ydat ['stl'='' zval=nan]'. При
+этом запись `[arg1 arg2 arg3 ...]' подразумевает `[arg1 [arg2 [arg3
+...]]]', т.е. опускать можно только аргументы с конца, если вы согласны
+с их значениями по умолчанию. Например, `plot ydat '' 1' или `plot ydat
+''' правильно, а `plot ydat 1' не правильно (аргумент `'stl'' пропущен).
+
+   Все команды MGL можно разделить на несколько групп. В дальнейшем
+будет использованы следующие обозначения при описании команд: имя
+команды выделено жирным, строки заключены в одинарные кавычки ",
+переменные выделены курсивом, числа (скаляры) выделены моноширинным
+шрифтом. Необязательные аргументы будут помещены в квадратные скобки []
+и показаны их значения по умолчанию. Подробную информацию о цвете и
+стиле линий (*note Line styles::), цветовых схемах (*note Color
+scheme::), стиле текста и символах TeX (*note Font styles::), текстовых
+формулах (*note Textual formulas::) можно найти в соответствующих
+разделах.
+
+* Menu:
+
+* Graphics setup (MGL)::
+* Axis settings (MGL)::
+* Transformation matrix (MGL)::
+* Export to file (MGL)::
+* Primitives drawing (MGL)::
+* Text printing (MGL)::
+* Axis and Colorbar (MGL)::
+* Legend (MGL)::
+* 1D plotting (MGL)::
+* 2D plotting (MGL)::
+* 3D plotting (MGL)::
+* Dual plotting (MGL)::
+* Vector fields (MGL)::
+* Other plotting (MGL)::
+* Nonlinear fitting (MGL)::
+* Data create (MGL)::
+* Data filling (MGL)::
+* Rearrange data (MGL)::
+* File I/O (MGL)::
+* Make another data (MGL)::
+* Change data (MGL)::
+* Operators (MGL)::
+* Program flow (MGL)::
+* Command options (MGL)::
+* Suffixes::
+* Utilities::
+
+
+File: mathgl_ru.info,  Node: Graphics setup (MGL),  Next: Axis settings (MGL),  Up: MGL interface
+
+8.1 Настройка графика (MGL)
+===========================================
+
+Команды в этой группе влияют на вид всего рисунка. Соответственно они
+должны располагаться _перед_ вызовом функций непосредственно рисующих
+графики.
+
+* Menu:
+
+* Transparency (MGL)::
+* Lighting (MGL)::
+* Fog (MGL)::
+* Default sizes (MGL)::
+* Zooming (MGL)::
+* Cutting (MGL)::
+* Other settings (MGL)::
+
+
+File: mathgl_ru.info,  Node: Transparency (MGL),  Next: Lighting (MGL),  Up: Graphics setup (MGL)
+
+8.1.1 Прозрачность (MGL)
+------------------------------------
+
+Эти команды настраивают тип и степень прозрачности поверхностей.
+Главной является функция *note alpha::, которая включает/выключает
+прозрачность для всех графиков, созданных после вызова *note alpha::.
+Функция *note alphadef:: устанавливает величину alpha-канала по
+умолчанию. Прозрачность можно выключить для отдельного графика с
+помощью *note transparent::. Наконец, функция *note transptype:: задает
+тип прозрачности. См. раздел *note Transparent surface sample::, для
+примеров кода и графика.
+
+ -- Команда MGL: alpha `[val=on]'
+     Включает/выключает прозрачность для _всего_ рисунка. По умолчанию
+     прозрачность выключена. Используйте `transparent off' для
+     конкретного графика для выключения прозрачности.
+   
+ -- Команда MGL: alphadef `val'
+     Задает значение прозрачности по умолчанию для всех графиков.
+     Начальное значение 0.5.
+   
+ -- Команда MGL: transparent `val'
+     Временно включает/возвращает прозрачность графиков.
+   
+ -- Команда MGL: transptype `val'
+     Задает тип прозрачности. Обычная прозрачность (`0') - "закрытые"
+     объекты видны меньше чем закрывающие. "Стеклянная" прозрачность
+     (`1') - закрытые и закрывающие объекты единообразно ослабляют
+     интенсивность света (по RGB каналам). "Ламповая" прозрачность
+     (`2') - закрытые и закрывающие объекты являются источниками
+     дополнительного освещения (рекомендую установить `alphadef 0.3'
+     или меньше в этом случае). *Note Normal transparency::, *note
+     Glass-like transparency::, *note Lamp-like transparency::.
+
+
+File: mathgl_ru.info,  Node: Lighting (MGL),  Next: Fog (MGL),  Prev: Transparency (MGL),  Up: Graphics setup (MGL)
+
+8.1.2 Освещение (MGL)
+------------------------------
+
+Эти функции настраивают освещение графика. Главная функция *note
+light:: включает/выключает освещение графиков построенных после ее
+вызова. MathGL  поддерживает до 10 независимых источников света.
+Положение, цвет, яркость каждого источника света можно задавать по
+отдельности. По умолчанию включен только первый (с порядковым номером
+`0') источник света белого цвета, расположенный сверху.
+
+ -- Команда MGL: light `[val=on]'
+     Включает/выключает освещение графика. По умолчанию освещение
+     выключено.
+
+ -- Команда MGL: light `n val'
+     Включает/выключает N-ый источник света.
+
+ -- Команда MGL: light `n xpos ypos zpos' ['col'='w' `br=0.5']
+     Добавляет источник света с номером N в положение {XPOS, YPOS,
+     ZPOS} с цветом COL и яркостью BR, которая должна быть в диапазоне
+     [0,1].
+
+ -- Команда MGL: ambient `val'
+     Задает яркость рассеянного освещения. Значение должно быть в
+     диапазоне [0,1].
+
+
+File: mathgl_ru.info,  Node: Fog (MGL),  Next: Default sizes (MGL),  Prev: Lighting (MGL),  Up: Graphics setup (MGL)
+
+8.1.3 Туман (MGL)
+----------------------
+
+ -- Команда MGL: fog `val [dz=0.25]'
+     Имитирует туман на графике. Туман начинается на относительном
+     расстоянии DZ от точки обзора и его плотность растет
+     экспоненциально вглубь по закону ~1-exp(-d*z). Здесь _z_ -
+     нормализованная на 1 глубина графика. Если D=`0' то туман
+     отсутствует. См. раздел *note Surface in fog sample::, для
+     примеров кода и графика.
+
+
+File: mathgl_ru.info,  Node: Default sizes (MGL),  Next: Zooming (MGL),  Prev: Fog (MGL),  Up: Graphics setup (MGL)
+
+8.1.4 Базовые размеры (MGL)
+-----------------------------------------
+
+Эти команды задают величины большинства параметров графика, включая
+размеры маркеров, стрелок, толщину линий и т.д. Как и любые другие
+настройки, они подействуют только на графики созданные после изменения
+настроек.
+
+ -- Команда MGL: barwidth `val'
+     Относительный размер прямоугольников в `bars, barh, boxplot'.
+     Значение по умолчанию `0.7'.
+
+ -- Команда MGL: marksize `val'
+     Размер маркеров для *note 1D plotting::. Значение по умолчанию `1'.
+
+ -- Команда MGL: arrowsize `val'
+     Размер стрелок для *note 1D plotting::, линий и кривых (*note
+     Primitives drawing::). Значение по умолчанию `1'.
+
+ -- Команда MGL: linewidth `val'
+     Базовая толщина линий. Значения <1 игнорируются. Для значений >1
+     реальная толщина получается перемножением указанной ширины линии
+     на данное значение. Увеличение ширины линии актуально для больших
+     растровых рисунков. Значение по умолчанию `1'.
+
+ -- Команда MGL: ticklen `val' [`stt=1']
+     Относительная длина меток осей координат. Значение по умолчанию
+     `0.1'. Параметр STT>0 задает относительную длину подметок, которые
+     в `sqrt(1+stt)' раз меньше.
+
+ -- Команда MGL: tickstl 'stl' ['sub'="]
+     Стиль меток (STL) и подметок (SUB) осей координат. Если `stl=''',
+     то используется стиль по умолчанию (`k' или `w' в зависимости от
+     типа прозрачности). Если `sub=''', то используется стиль меток
+     (т.е. STL).
+
+
+File: mathgl_ru.info,  Node: Zooming (MGL),  Next: Cutting (MGL),  Prev: Default sizes (MGL),  Up: Graphics setup (MGL)
+
+8.1.5 Масштабирование (MGL)
+------------------------------------------
+
+Эти команды управляют масштабированием всего рисунка (*note zoom::) или
+отдельной картинки (*note plotfactor::). Обычно эти функции
+используются для удаления пустого места вокруг графиков.
+
+ -- Команда MGL: plotfactor `val'
+     Масштаб картинки (значение должно быть больше 1). Не рекомендуется
+     устанавливать значения меньше 1.5. Это аналог *note zoom::, но
+     применяется только к конкретной картинке, заданной *note inplot::.
+     Используйте ноль для включения автоматического масштабирования.
+
+ -- Команда MGL: zoom `x1 y1 x2 y2'
+     Масштабирует весь рисунок. После вызова функции текущий график
+     будет очищен и в дальнейшем рисунок будет содержать только область
+     [x1,x2]*[y1,y2] от исходного рисунка. Координаты X1, X2, Y1, Y2
+     меняются в диапазоне от 0 до 1. Внимание! эти настройки не могут
+     быть переписаны никакими другими функциями. Используйте `zoom 0 0
+     1 1' для перехода в масштаб по умолчанию.
+
+
+File: mathgl_ru.info,  Node: Cutting (MGL),  Next: Other settings (MGL),  Prev: Zooming (MGL),  Up: Graphics setup (MGL)
+
+8.1.6 Обрезание (MGL)
+------------------------------
+
+Эти команды задают условия когда точка будет исключена (вырезана) из
+рисования. Замечу, что все точки со значением(-ями) `nan' по одной из
+координат или амплитуде автоматически исключаются из рисования.
+
+ -- Команда MGL: cut `val'
+     Задает обрезание точек за пределами осей координат. Если `on' то
+     такие точки исключаются из рисования (это по умолчанию) иначе они
+     проецируются на ограничивающий прямоугольник.
+
+ -- Команда MGL: cut `x1 y1 z1 x2 y2 z2'
+     Задает границы параллелепипеда внутри которого точки не рисуются.
+     Если границы одинаковы (переменные равны), то параллелепипеда
+     считается пустым. См. раздел *note CutMinMax sample::, для
+     примеров кода и графика.
+
+ -- Команда MGL: cut 'cond'
+     Задает условие обрезания по формуле COND. Это условие исключает
+     точки из рисования если результат вычисления формулы не равен
+     нулю. Установите аргумент `''' для выключения условия обрезания.
+     См. раздел *note CutOff sample::, для примеров кода и графика.
+
+
+File: mathgl_ru.info,  Node: Other settings (MGL),  Prev: Cutting (MGL),  Up: Graphics setup (MGL)
+
+8.1.7 Прочие настройки (MGL)
+-------------------------------------------
+
+ -- Команда MGL: font 'fnt' [`val=6']
+     Задает стиль и размер шрифта (*note Text printing::). Вначале
+     используется `rC' - прямой шрифт с выравниванием по центру. По
+     умолчанию размер подписей оси координат в 1.4 раза больше.
+
+ -- Команда MGL: rotatetext `val'
+     Включает/выключает вращение меток и подписей осей координат вдоль
+     оси. Начальное значение `on'.
+
+ -- Команда MGL: palette 'colors'
+     Задает палитру как последовательность цветов. Значение по
+     умолчанию `"Hbgrcmyhlnqeup"', что соответствует цветам: темно
+     серый `H', синий `b', зеленый `g', красный `r', голубой `c',
+     малиновый `m', желтый `y', серый `h', сине-зеленый  `l',
+     небесно-голубой `n', оранжевый `q', желто-зеленый `e',
+     сине-фиолетовый `u', фиолетовый `p'. Палитра в основном
+     используется в 1D графиках (*note 1D plotting::) для кривых с
+     неопределенным стилем линии.
+
+ -- Команда MGL: meshnum `num'
+     Задает ориентировочное число линий в *note mesh::, *note fall::,
+     *note grid::, число стрелок (штрихов) в *note vect::, *note dew::
+     и число ячеек в *note cloud::. По умолчанию (=0) рисуются все
+     линии, стрелки, ячейки.
+
+ -- Команда MGL: axialdir 'dir'
+     Задает ось вращения для *note axial::, *note torus::. По умолчанию
+     это 'z'.
+
+
+File: mathgl_ru.info,  Node: Axis settings (MGL),  Next: Transformation matrix (MGL),  Prev: Graphics setup (MGL),  Up: MGL interface
+
+8.2 Параметры осей координат (MGL)
+========================================================
+
+Этот большой набор команд определяет вид осей и меток координат. Перед
+построением для каждой точки выполняются 3 преобразования: сначала
+определяется возможность рисования точки (*note Cutting (MGL)::), далее
+применяются формулы перехода к криволинейным координатам и наконец
+точка отображается.
+
+ -- Команда MGL: axis `x1 y1 x2 y2'
+ -- Команда MGL: axis `x1 y1 z1 x2 y2 z2'
+ -- Команда MGL: ranges `x1 x2 y1 y2 [z1=0 z2=0]'
+     Задает диапазон изменения координат. Если минимальное и
+     максимальное значение координаты равны, то они игнорируются по
+     данному направлению. Также устанавливает размер цветовой шкалы,
+     аналогично команде  `caxis z1 z2'. Начальные диапазоны равны [-1,
+     1].
+
+ -- Команда MGL: axis 'fx' 'fy' ['fz'=" 'fa'="]
+     Задает формулы перехода к криволинейным координатам. Каждая строка
+     является математическим выражением, зависящим от старых координат
+     `x', `y', `z' и `a' или `c' для цветовой шкалы. Например, для
+     цилиндрических координат будет `axis 'x*cos(y)' 'x*sin(y)' 'z''.
+     Для удаления формул соответствующий параметр должен быть пустым
+     `'''. Использование формул преобразования слегка замедляет
+     программу, т.е.. `axis '' '' ''' быстрее чем `axis '1*x' '1*y'
+     '1*z''. Параметр FA задает аналогичную формулу для цветовой шкалы.
+     *Note Textual formulas::.
+
+ -- Команда MGL: axis `how'
+     Устанавливает одну из предопределенных систем криволинейных
+     координат в зависимости от параметра HOW: `0' - декартова система
+     (нет преобразования координат, наиболее быстрая); `1' - полярные
+     координаты x_n=x*cos(y),y_n=x*sin(y), z_n=z; `2' - сферические
+     координаты x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y);
+     `3' - параболические координаты x_n=x*y, y_n=(x*x-y*y)/2, z_n=z;
+     `4' - Paraboloidal coordinates x_n=(x*x-y*y)*cos(z)/2,
+     y_n=(x*x-y*y)*sin(z)/2, z_n=x*y; `5' - Oblate coordinates
+     x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z),
+     z_n=sinh(x)*sin(y); `6' - Prolate coordinates
+     x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z),
+     z_n=cosh(x)*cos(y); `7' - эллиптические координаты
+     x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z; `8' - тороидальные
+     координаты x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)),
+     y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y));
+     `9' - бисферические координаты x_n=sin(y)*cos(z)/(cosh(x)-cos(y)),
+     y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y));
+     `10' - биполярные координаты x_n=sinh(x)/(cosh(x)-cos(y)),
+     y_n=sin(y)/(cosh(x)-cos(y)), z_n=z.
+
+ -- Команда MGL: caxis `z1 z2'
+     Задает масштаб цветовой шкалы (c-координаты). Эти значения
+     используются для определения цвета поверхностей и прочих 2D и 3D
+     графиков. Начальный диапазон равен [-1, 1].
+
+ -- Команда MGL: origin `x0 y0 [z0=nan]'
+     Задает центр пересечения осей координат. Если одно из значений
+     равно `nan', то выбрается оптимальное положение осей координат по
+     этому направлению.
+
+ -- Команда MGL: ternary `val'
+     Задает рисование треугольных (Ternary) осей координат. Это
+     специальный тип графика для 3 зависимых координат (компонент) A,
+     B, C таких, что A+B+C=1. MathGL использует только 2 независимые
+     координаты A=x и B=y поскольку их достаточно для построения всех
+     графиков. При этом третья координата z является независимым
+     параметром для построения линий уровня, поверхностей и т.д. См.
+     раздел *note Ternary plot sample::, для примеров кода и графика.
+
+ -- Команда MGL: xrange dat [`add=off fact=0']
+ -- Команда MGL: yrange dat [`add=off fact=0']
+ -- Команда MGL: zrange dat [`add=off fact=0']
+ -- Команда MGL: crange dat [`add=off fact=0']
+     Задает диапазон изменения x-,y-,z-,c- координат как минимальное и
+     максимальное значение массива DAT. Параметр ADD указывает
+     добавлять новый диапазон к существующему или заменять его.
+     Параметр FACT дополнительно расширяет диапазон на величину
+     (MAX-MIN)*FACT.
+
+ -- Команда MGL: xrange `x1 x2'
+ -- Команда MGL: yrange `x1 x2'
+ -- Команда MGL: zrange `x1 x2'
+ -- Команда MGL: crange `x1 x2'
+     Задает диапазон изменения x-,y-,z-,c- координат. См. также *note
+     axis::.
+
+ -- Команда MGL: xtick `val [sub=0 org=nan]'
+ -- Команда MGL: ytick `val [sub=0 org=nan]'
+ -- Команда MGL: ztick `val [sub=0 org=nan]'
+ -- Команда MGL: ctick `val'
+     Задает шаг меток осей VAL, число подметок NS и начальное положение
+     меток ORG. Переменная VAL задает шаг меток (если положительна) или
+     их число на оси (если отрицательна). Нулевое значение задает
+     логарифмические метки. Если ORG=`NAN', то используется значение из
+     *note origin::.
+
+ -- Команда MGL: xtick 'templ'
+ -- Команда MGL: ytick 'templ'
+ -- Команда MGL: ztick 'templ'
+ -- Команда MGL: ctick 'templ'
+     Задает шаблоны для меток вдоль x-,y-,z-оси или colorbar. Шаблон
+     может содержать и символы TeX. Если XTT, YTT, ZTT, CTT=`''', то
+     используется шаблон по умолчанию (в простейшем случае `%.2g').
+     Установка шаблона выключает автоматическое улучшение вида меток.
+
+ -- Команда MGL: xtick `val1' 'lbl1' [`val2' 'lbl2' ...]
+ -- Команда MGL: ytick `val1' 'lbl1' [`val2' 'lbl2' ...]
+ -- Команда MGL: ztick `val1' 'lbl1' [`val2' 'lbl2' ...]
+     Задает явное положение VAL и подписи LBL для меток вдоль оси.
+     Метки могут содержать и символы TeX.
+
+ -- Команда MGL: adjust ['dir'='xyzc']
+     Автоматически задает шаг меток осей, число подметок и начальное
+     положение меток для осей координат DIR в виде наиболее удобном для
+     человека.
+
+
+File: mathgl_ru.info,  Node: Transformation matrix (MGL),  Next: Export to file (MGL),  Prev: Axis settings (MGL),  Up: MGL interface
+
+8.3 Матрица преобразования (MGL)
+=====================================================
+
+Эти команды контролируют где и как график будет расположен. Существует
+определенный порядок вызова этих функций для лучшего вида графика.
+Вначале должны вызываться команды *note subplot:: или *note inplot::
+для указания местоположения вывода. После них - команды вращения *note
+rotate:: и сжатия *note aspect::. И наконец любые другие функции для
+рисования графика. Вместо вращения графика можно вызвать команды *note
+columnplot:: для расположения графиков в столбец одного над другим или
+*note stickplot:: для расположения в линейку.
+
+ -- Команда MGL: subplot `nx ny m [dx=0 dy=0]'
+     Помещает последующий вывод в M-ую ячейку сетки размером NX*NY от
+     всего рисунка. Функция сбрасывает матрицу трансформации (повороты
+     и сжатие графика) и должна вызываться первой для создания
+     "подграфика". С эстетической точки зрения не рекомендуется
+     вызывать эту функцию с различными (или не кратными) размерами
+     сетки. Ячейка может быть дополнительно сдвинута относительно
+     своего обычного положения на относительный размер DX, DY.
+
+ -- Команда MGL: subplot `nx ny m' 'style'
+     Аналогично предыдущему, но место для осей/colorbar резервируется
+     только если строка STYLE содержит: `L' или `<' - с левого края,
+     `R' или `>' - с правого края, `A' или `^' - с верхнего края, `U'
+     или `_' - с нижнего края.
+
+ -- Команда MGL: inplot `x1 x2 y1 y2 [rel=off]'
+     Помещает последующий вывод в прямоугольную область [X1, X2]*[Y1,
+     Y2] (исходный размер [0,1]*[0,1]). Эта функция позволяет поместить
+     график в произвольную область рисунка. Если параметр REL=`on', то
+     используется позиция относительно текщего *note subplot:: (или
+     *note inplot:: с REL=`off'). Функция сбрасывает матрицу
+     трансформации (повороты и сжатие графика) и должна вызываться
+     первой для создания "подграфика".
+
+ -- Команда MGL: columnplot `num ind [d=0]'
+     Помещает последующий вывод в IND-ую строку столбца из NUM строк.
+     Положение столбца выбирается относительно последнего вызова *note
+     subplot:: (или *note inplot:: с REL=`off'). Параметр D задает
+     дополнительный зазор между строк. См. раздел *note ColumnPlot
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: stickplot `num ind tet phi'
+     Помещает последующий вывод в IND-ую ячейку "бруска" из NUM ячеек.
+     При этом сам брусок повернут на углы TET, PHI. Положение
+     выбирается относительно последнего вызова *note subplot:: (или
+     *note inplot:: с REL=`off'). См. раздел *note StickPlot sample::,
+     для примеров кода и графика.
+
+ -- Команда MGL: rotate `tetz tetx [tety=0]'
+     Вращает систему координат относительно осей {x, z, y}
+     последовательно на углы TETX, TETZ, TETY.
+
+ -- Команда MGL: rotate `tet x y z'
+     Вращает систему координат относительно вектора {X, Y, Z} на угол
+     TET.
+
+ -- Команда MGL: aspect `ax ay [az=1]'
+     Устанавливает соотношение размеров осей в отношении AX:AY:AZ. Для
+     лучшего вида следует вызывать после функции *note rotate::.
+
+ -- Команда MGL: perspective `val'
+     Добавляет (включает) перспективу для графика. Параметр val ~
+     1/z_{eff} \in [0,1). По умолчанию (`val=0') перспектива отключена.
+
+
+File: mathgl_ru.info,  Node: Export to file (MGL),  Next: Primitives drawing (MGL),  Prev: Transformation matrix (MGL),  Up: MGL interface
+
+8.4 Экспорт в файл (MGL)
+====================================
+
+ -- Команда MGL: write 'fname' [`solid=off']
+     Экспортирует текущий кадр в файл 'fname' (тип определяется по
+     расширению). Параметр SOLID задает вывод картинки на текущем фоне
+     (обычно белом) или полупрозрачной. Если 'fname'=", то используется
+     имя `frame####.jpg', где `####' - текущий номер кадра.
+
+ -- Команда MGL: setsize `w h'
+     Изменяет размер картинки в пикселях. Функция должна вызываться
+     *перед* любыми функциями построения потому что полностью очищает
+     содержимое рисунка. В некоторых программах исполнение этой команды
+     может запрещено.
+
+
+File: mathgl_ru.info,  Node: Primitives drawing (MGL),  Next: Text printing (MGL),  Prev: Export to file (MGL),  Up: MGL interface
+
+8.5 Рисование примитивов
+===========================================
+
+Эти команды рисуют рисуют простые объекты типа линий, точек, сфер,
+капель, конусов, и т.д.
+
+ -- Команда MGL: clf
+     Очищает рисунок и заполняет его цветом по умолчанию (обычно белым).
+
+ -- Команда MGL: ball `x y' ['col'='r']
+ -- Команда MGL: ball `x y z' ['col'='r']
+     Рисует точку (шарик) с координатами {X, Y, Z} и цветом COL.
+
+ -- Команда MGL: line `x1 y1 x2 y2' ['stl'="]
+ -- Команда MGL: line `x1 y1 z1 x2 y2 z2' ['stl'="]
+     Рисует геодезическую линию (декартовых координатах - прямую) из
+     точки {X1,Y1,Z1} в {X2,Y2,Z2} использую стиль линии STL. Кривая
+     рисуется даже если часть ее лежит вне диапазона осей координат.
+
+ -- Команда MGL: curve `x1 y1 dx1 dy1 x2 y2 dx2 dy2' ['stl'="]
+ -- Команда MGL: curve `x1 y1 z1 dx1 dy1 dz1 x2 y2 z2 dx2 dy2 dz2'
+          ['stl'="]
+     Рисует кривую Безье из точки {X1,Y1,Z1} в {X2,Y2,Z2} использую
+     стиль линии STL. Касательные в точках пропорциональны
+     {DX1,DY1,DZ1}, {DX2,DY2,DZ2}. Кривая рисуется даже если часть ее
+     лежит вне диапазона осей координат.
+
+ -- Команда MGL: facex `x0 y0 z0 wy wz' ['stl'=" `d1=0 d2=0']
+ -- Команда MGL: facey `x0 y0 z0 wx wz' ['stl'=" `d1=0 d2=0']
+ -- Команда MGL: facez `x0 y0 z0 wx wy' ['stl'=" `d1=0 d2=0']
+     Рисует закрашенный прямоугольник (грань) перпендикулярно оси
+     [x,y,z] в точке {X0, Y0, Z0} цветом STL и шириной WX, WY, WZ вдоль
+     соответствующего направления. При этом цвет может быть один для
+     всей грани, или различным для разных вершин если указаны все 4
+     цвета (полезно для градиента цвета, например `wwrr'). Параметры
+     D1!=0, D2!=0 задают дополнительный сдвиг последней точки (т.е.
+     рисуют четырехугольник). Грань будет нарисована даже если часть ее
+     лежит вне диапазона осей координат.
+
+ -- Команда MGL: sphere `x0 y0 r' ['col'='r']
+ -- Команда MGL: sphere `x0 y0 z0 r' ['col'='r']
+     Рисует сферу радиуса R с центром в точке {X, Y, Z} цветом STL.
+
+ -- Команда MGL: drop `x0 y0 dx dy r' ['col'='b' `sh=1 asp=1']
+ -- Команда MGL: drop `x0 y0 z0 dx dy dz r' ['col'='b' `sh=1 asp=1']
+     Рисует каплю радиуса R в точке {X0,Y0,Z0} вытянутую вдоль
+     направления {DX,DY,DZ} цветом COL. Параметр SH определяет степень
+     вытянутости: `0' - сфера, `1' - классическая капля. Параметр ASP
+     определяет относительную ширину капли (аналог "эллиптичности" для
+     сферы). См. раздел *note Drops sample::, для примеров кода и
+     графика.
+
+ -- Команда MGL: cone `x1 y1 z1 x2 y2 z2 r1' [`r2=-1' 'stl'="
+          `edge=off']
+     Рисует трубу (или усеченный конус если EDGE=`off') между точками
+     {X1,Y1,Z1}, {X2,Y2,Z2} с радиусами на концах R1, R2. Если R2<0, то
+     полагается R2=R1. Цвет конуса задается строкой STL.
+
+ -- Команда MGL: rect `x1 y1 x2 y2' ['st'="]
+ -- Команда MGL: rect `x1 y1 z1 x2 y2 z2' ['st'="]
+     Рисует закрашенный прямоугольник (грань) с противоположными
+     вершинами в точках {X1,Y1,Z1}, {X2,Y2,Z2} цветом STL. При этом
+     цвет может быть один для всей грани, или различным для разных
+     вершин если указаны все 4 цвета (полезно для градиента цвета,
+     например `wwrr'). Грань будет нарисована даже если часть ее лежит
+     вне диапазона осей координат.
+
+
+File: mathgl_ru.info,  Node: Text printing (MGL),  Next: Axis and Colorbar (MGL),  Prev: Primitives drawing (MGL),  Up: MGL interface
+
+8.6 Вывод текста (MGL)
+=================================
+
+Команды для вывода текста позволяют вывести строку текста в
+произвольном месте рисунка, в произвольном направлении и вдоль
+произвольной кривой. Можно использовать произвольное начертание шрифта
+и многие ТеХ-ие команды (детальнее *note Font styles::). Аргумент SIZE
+определяет размер текста: размер шрифта если положителен или
+относительный размер (=-SIZE*FONTSIZE) если отрицателен.
+
+   Параметры шрифта задаются строкой, которая может содержать символы
+стиля (`rbiwou') и/или выравнивания (`LRC'). Также строка может
+содержать символы цвета `wkrgbcymhRGBCYMHW' (*note Line styles::) после
+символа `:'. Стили шрифта: `r' - прямой, `i' - курсив, `b' - жирный,
+`w' - контурный, `o' - надчеркнутый, `u' - подчеркнутый. По умолчанию
+используется прямой шрифт. Типы выравнивания: `L' - по левому краю (по
+умолчанию), `C' - по центру, `R' - по правому краю. Например, строка
+`iC:b' соответствует курсиву синего цвета с выравниванием по центру. По
+умолчанию используются параметры, определенные командой *note font::.
+
+   Если строка содержит символы `aA', то текст выводится в абсолютных
+координатах (полагаются в диапазоне [0,1]). При этом используются
+координаты относительно рисунка (если указано `A') или относительно
+последнего *note subplot::/*note inplot:: (если указано `a').
+
+ -- Команда MGL: text `x y' 'text' ['fnt'=" `size=-1.4']
+ -- Команда MGL: text `x y z' 'text' ['fnt'=" `size=-1.4']
+     Выводит строку TEXT от точки {X,Y,Z} шрифтом FNT и размером SIZE.
+
+ -- Команда MGL: text `x y dx dy' 'text' [`size=-1.4']
+ -- Команда MGL: text `x y z dx dy dz' 'text' [`size=-1.4']
+     Выводит строку TEXT от точки {X,Y,Z} вдоль направления {DX,DY,DZ}
+     шрифтом FNT и размером SIZE.
+
+ -- Команда MGL: text ydat 'text' ['fnt'=" `size=-1 zval=nan']
+ -- Команда MGL: text xdat ydat 'text' ['fnt'=" `size=-1 zval=nan']
+ -- Команда MGL: text xdat ydat zdat 'text' ['fnt'=" `size=-1']
+     Выводит строку TEXT вдоль кривой {XDAT[i], YDAT[i], ZDAT[i]}
+     шрифтом FONT. Строка FONT может содержать символы: `t' для вывода
+     текста под кривой (по умолчанию), или `T' для вывода текста над
+     кривой. Если массив XDAT не указан, то используется массив со
+     значениями равно распределенными вдоль оси x. Если массив ZDAT не
+     указан, то используется ZDAT[i] = ZVAL. См. раздел *note Text
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: title 'text' ['fnt'=" `size=-2']
+     Выводит строку TEXT как заголовок (сверху рисунка). Может
+     использоваться в любом месте (даже внутри *note subplot::).
+
+ -- Команда MGL: fgets `x y' 'fname' [`n=0' 'fnt'=" `size=-1.4']
+ -- Команда MGL: fgets `x y z' 'fname' [`n=0' 'fnt'=" `size=-1.4']
+     Выводит N-ую строку файла FNAME от точки {X,Y,Z} шрифтом FNT и
+     размером SIZE.
+
+
+File: mathgl_ru.info,  Node: Axis and Colorbar (MGL),  Next: Legend (MGL),  Prev: Text printing (MGL),  Up: MGL interface
+
+8.7 Оси и Colorbar (MGL)
+============================
+
+Эти команды рисуют объекты для "измерения" типа осей координат,
+цветовой таблицы (colorbar), сетку по осям, обрамляющий параллелепипед
+и подписи по осям координат. См. также *note Axis settings (MGL)::.
+
+ -- Команда MGL: axis ['dir'='xyz' `adjust=off']
+     Рисует оси координат и метки на них (*note Axis settings (MGL)::)
+     в направлениях, указанных строкой DIR. Если строка содержит символ
+     `_', то подписи меток отображаться не будут. Шрифт подписей
+     определяется командой *note font::. Метки будут "подогнаны" если
+     ADJUST=`on' (с помощью вызова `adjust 'dir'').
+
+ -- Команда MGL: colorbar ['sch'=" `pos=0']
+     Рисует полосу соответствия цвета и числовых значений (colorbar)
+     для цветовой схемы SCH (используется текущая для `sch=''') с краю
+     от графика. Параметр POS задает местоположение: `0' - справа (по
+     умолчанию), `1' - слева, `2' - сверху, `3' - снизу. Если строка
+     SCH содержит `<>^_', то параметр POS определяется как: `pos=0' для
+     `>' (справа), `pos=1' для `<' (слева), `pos=2' для `^' (сверху),
+     `pos=3' для `_' (снизу). Если строка содержит `A', то используются
+     абсолютные координаты (относительно рисунка). См. раздел *note
+     Dens sample::, для примеров кода и графика.
+
+ -- Команда MGL: colorbar vdat ['sch'=" `pos=0']
+     Аналогично предыдущему, но для цветовой схемы без сглаживания с
+     заданными значениями VDAT. См. раздел *note ContD sample::, для
+     примеров кода и графика.
+
+ -- Команда MGL: colorbar 'sch' `pos x y w h'
+     Аналогично первому, но в произвольном месте графика {X, Y}
+     (полагаются в диапазоне [0,1]). Параметры W, H задают
+     относительную ширину и высоту colorbar.
+
+ -- Команда MGL: grid ['dir'='xyz' 'pen'='B']
+     Рисует линии сетки в направлениях перпендикулярным DIR. Шаг сетки
+     такой же как у меток осей координат. Стиль линий задается
+     параметром PEN (по умолчанию - сплошная темно синяя линия `B-').
+
+ -- Команда MGL: box ['stl'='k' `ticks=on']
+     Рисует ограничивающий параллелепипед цветом 'stl'. При `ticks=on'
+     рисуются метки в соответствии с текущими настройками осей
+     координат *note axis::.
+
+ -- Команда MGL: xlabel 'text' [`pos=0 size=-1.4 shift=0']
+ -- Команда MGL: ylabel 'text' [`pos=0 size=-1.4 shift=0']
+ -- Команда MGL: zlabel 'text' [`pos=0 size=-1.4 shift=0']
+ -- Команда MGL: tlabel 'text' [`pos=0 size=-1.4 shift=0']
+     Выводит подпись TEXT для x-,y-,z-,t-оси (где `t' - "тернарная" ось
+     t=1-x-y). Параметр POS задает положение подписи: при POS=0 - по
+     центру оси, при POS>0 - около максимальных значений, при POS<0 -
+     около минимальных значений. Параметр SIZE задает размер шрифта (по
+     умолчанию в 1.4 раза больше чем у меток). *Note Text printing
+     (MGL)::.
+
+
+
+Local Variables:
+coding: utf-8
+End:
diff --git a/debian/tmp/usr/share/info/mathgl_ru.info-3 b/debian/tmp/usr/share/info/mathgl_ru.info-3
new file mode 100644
index 0000000..04e55fc
--- /dev/null
+++ b/debian/tmp/usr/share/info/mathgl_ru.info-3
@@ -0,0 +1,7146 @@
+This is mathgl_ru.info, produced by makeinfo version 4.13 from
+mathgl_ru.texi.
+
+Это документация для MathGL (версии 1.11) - библиотеки классов и
+функций для построения научной графики. Пожалуйста сообщайте о любых
+ошибках в этом руководстве на <mathgl.abalakin at gmail.org>.
+
+   Copyright (C) 2009 Алексей Балакин.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with the Front-Cover Texts
+     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+     below.  A copy of the license is included in the section entitled
+     "GNU Free Documentation License."
+
+     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+     and modify this GNU manual.  Buying copies from the FSF supports
+     it in developing GNU and promoting software freedom."
+
+
+File: mathgl_ru.info,  Node: Legend (MGL),  Next: 1D plotting (MGL),  Prev: Axis and Colorbar (MGL),  Up: MGL interface
+
+8.8 Легенда (MGL)
+========================
+
+Эти команды обеспечивают рисование легенды графика (полезно для *note
+1D plotting::). Запись в легенде состоит из двух строк: одна для стиля
+линии и маркеров, другая с текстом описания (с включенным разбором
+TeX-их команд), накапливаемые во внутренние массивы с помощью команды
+*note addlegend:: или опции *note legend::. Положение легенды можно
+задать автоматически или вручную. Параметры FONT и SIZE задают стиль и
+размер шрифта. Параметр LLEN задает относительную ширину примера линии.
+Ели стиль линии пустой, то соответствующий текст печатается без
+отступа. Если строка FONT содержит символ `A', то координаты легенды
+считаются относительно картинки (а не текущего subplot). См. раздел
+*note Legend sample::, для примеров кода и графика.
+
+ -- Команда MGL: legend [`pos=3' 'fnt'='rL' `size=-1 llen=0.1']
+     Рисует легенду из накопленных записей шрифтом FNT размером SIZE.
+     Параметр POS задает положение легенды: `0' - в нижнем левом углу,
+     `1' - нижнем правом углу, `2' - верхнем левом углу, `3' - верхнем
+     правом углу (по умолчанию).
+
+ -- Команда MGL: legend `x y' ['fnt'='rL' `size=-1 llen=0.1']
+     Рисует легенду из накопленных записей шрифтом FONT размером SIZE.
+     Положение легенды задается параметрами X, Y, которые полагаются
+     нормированными в диапазоне [0,1].
+
+ -- Команда MGL: addlegend 'text' 'stl'
+     Добавляет описание TEXT кривой со стилем STL (*note Line styles::)
+     во внутренний массив записей легенды. Максимальное число записей
+     100.
+
+ -- Команда MGL: clearlegend
+     Очищает внутренний массив записей легенды.
+
+ -- Команда MGL: legendbox `val'
+     Включает/выключает рисование прямоугольника вокруг легенды. По
+     умолчанию (=`on') прямоугольник рисуется.
+
+ -- Команда MGL: legendmarks `val'
+     Задает число маркеров в легенде. По умолчанию используется 1
+     маркер.
+
+
+File: mathgl_ru.info,  Node: 1D plotting (MGL),  Next: 2D plotting (MGL),  Prev: Legend (MGL),  Up: MGL interface
+
+8.9 1D графики (MGL)
+===========================
+
+Эти команды строят графики для одномерных (1D) массивов. Одномерными
+считаются массивы, зависящие только от одного параметра (индекса)
+подобно кривой в параметрической форме {x(i),y(i),z(i)}, i=1...n. Есть
+5 основных типов 1D графиков: линия (*note plot::), линия с заполнением
+(*note area::), ступеньки (*note step::), прямоугольники (*note bars::,
+*note barh::) и вертикальные линии (*note stem::). Все эти типы
+графиков имеют похожий интерфейс. Есть версии для рисования в
+пространстве и на плоскости. В последнем случае имеется возможность
+использования только одного массива. Стиль линии и маркеров указывается
+строковой переменной. Если она равна `'''. Кроме того, есть еще
+несколько типов графиков для одномерных массивов, имеющих другой
+интерфейс и вид: поверхность вращения кривой (*note torus::), диаграмма
+(*note chart::), размер ошибки (*note error::), маркеры переменного
+размера (*note mark::), трубками (*note tube::) и т.д. См. раздел *note
+1D plot sample::, для примеров кода и графика.
+
+   График рисуется для каждой строки если один из массивов матрица.
+Размер по 1-ой координате *должен быть одинаков* для всех массивов
+`xdat.nx=ydat.nx=zdat.nx'. Если массив XDAT не указан, то используется
+массив со значениями равно распределенными вдоль оси x. Если массив
+ZDAT не указан, то используется ZDAT[i] = ZVAL. Строка STL задает цвет
+и стиль линии и маркеров (*note Line styles::). По умолчанию (`stl=''')
+рисуется сплошная линия с текущим цветом из палитры.
+
+ -- Команда MGL: plot ydat ['stl'=" `zval=nan']
+ -- Команда MGL: plot xdat ydat ['stl'=" `zval=nan']
+ -- Команда MGL: plot xdat ydat zdat ['stl'="]
+     Рисует ломанную линию между точками {X[i], Y[i], Z[i]}. См. также
+     *note area::, *note step::, *note stem::, *note tube::, *note
+     mark::, *note error::, *note belt::, *note tens::. См. раздел
+     *note Plot sample::, для примеров кода и графика.
+
+ -- Команда MGL: radar adat ['stl'=" `r=-1']
+     Рисует radar chart, представляющий собой ломанную с вершинами на
+     радиальных линиях (типа ломанной в полярных координатах). График
+     рисуется для каждой строки если один из массивов матрица. Параметр
+     R задает дополнительный сдвиг данных (т.е. используется A+R вместо
+     A). Если `r<0', то `r=max(0, -min(a)'. Если STL содержит символ
+     `#', то также рисуется "сетка" (радиальные линии и круг для R).
+     См. также *note plot::. См. раздел *note Radar sample::, для
+     примеров кода и графика.
+
+ -- Команда MGL: tens ydat cdat ['stl'=" `zval=nan']
+ -- Команда MGL: tens xdat ydat cdat ['stl'=" `zval=nan']
+ -- Команда MGL: tens xdat ydat zdat cdat ['stl'="]
+     Рисует ломанную линию по точкам {X[i], Y[i], Z[i]} с цветом,
+     определяемым массивом C[i] (типа графика натяжений). См. также
+     *note plot::, *note mesh::, *note fall::. См. раздел *note Tens
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: area ydat ['stl'=" `zval=nan']
+ -- Команда MGL: area xdat ydat ['stl'=" `zval=nan']
+ -- Команда MGL: area xdat ydat zdat ['stl'="]
+     Рисует ломанную линию по точками {XDAT[i], YDAT[i], ZDAT[i]} и
+     закрашивает ее вниз до плоскости осей координат. Можно
+     использовать градиентное закрашивание если число указанных цветов
+     в STL равно удвоенному числу кривых для построения. Если строка
+     содержит символ `a', то линии рисуются одна поверх другой (с
+     суммированием) - того же эффекта можно достичь вызовом `cumsum
+     ydat 'y'' перед построением графика. См. также *note plot::, *note
+     bars::, *note stem::, *note region::. См. раздел *note Area
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: region fdat gdat ['stl'=" `inside=off']
+ -- Команда MGL: region xdat fdat gdat ['stl'=" `inside=off']
+     Закрашивает область между 2 кривыми {XDAT[i], FDAT[i]} и {XDAT[i],
+     GDAT[i]}. При  `inside=off' закрашивается только область y1<y<y2,
+     в противном случае также будет закращена область y2<y<y1. Можно
+     использовать градиентное закрашивание если число указанных цветов
+     STL равно удвоенному числу кривых для построения. См. также *note
+     area::, *note bars::, *note stem::. См. раздел *note Region
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: stem ydat ['stl'=" `zval=nan']
+ -- Команда MGL: stem xdat ydat ['stl'=" `zval=nan']
+ -- Команда MGL: stem xdat ydat zdat ['stl'="]
+     Рисует вертикальные линии из точек {XDAT[i], YDAT[i], ZDAT[i]} до
+     плоскости осей координат. См. также *note area::, *note bars::,
+     *note plot::, *note mark::. См. раздел *note Stem sample::, для
+     примеров кода и графика.
+
+ -- Команда MGL: bars ydat ['stl'=" `zval=nan']
+ -- Команда MGL: bars xdat ydat ['stl'=" `zval=nan']
+ -- Команда MGL: bars xdat ydat zdat ['stl'="]
+     Рисует вертикальные полосы (прямоугольники) из точек {XDAT[i],
+     YDAT[i], ZDAT[i]} до плоскости осей координат. Если строка STL
+     содержит символ `a', то линии рисуются одна поверх другой. Если
+     строка содержит символ `f', то рисуется график типа waterfall для
+     определения кумулятивного эффекта последовательности положительных
+     и отрицательных значений. Можно использовать разные цвета для
+     положительных и отрицательных значений если число указанных цветов
+     равно удвоенному числу кривых для построения. См. также *note
+     barh::, *note area::, *note stem::, *note chart::. См. раздел
+     *note Bars sample::, для примеров кода и графика.
+
+ -- Команда MGL: barh xdat ['stl'=" `zval=nan']
+ -- Команда MGL: barh ydat xdat ['stl'=" `zval=nan']
+     Рисует горизонтальные полосы (прямоугольники) из точек {XDAT[i],
+     YDAT[i]} до плоскости оси y. Если массив YDAT не указан, то
+     используется массив со значениями равно распределенными вдоль оси
+     y. Если строка STL содержит символ `a', то линии рисуются одна
+     поверх другой. Если строка содержит символ `f', то рисуется график
+     типа waterfall для определения кумулятивного эффекта
+     последовательности положительных и отрицательных значений. Можно
+     использовать разные цвета для положительных и отрицательных
+     значений если число указанных цветов равно удвоенному числу кривых
+     для построения. См. также *note bars::. См. раздел *note Barh
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: chart adat ['col'="]
+     Рисует цветные полосы (пояса) для массива данных ADAT. Число полос
+     равно числу строк ADAT (равно A.NY). Цвет полос поочередно
+     меняется из цветов указанных в COL или в палитре (если `col=''').
+     Пробел в цветах соответствует прозрачному "цвету", т.е.
+     соответствующая полоса не рисуется. Ширина полосы пропорциональна
+     значению элемента в ADAT. График строится только для массивов не
+     содержащих отрицательных значений. Если строка COL содержит `#',
+     то рисуется также черная граница полос. График выглядит лучше в 3d
+     (после вращения системы координат) и/или в полярной системе
+     координат (становится Pie chart). См. раздел *note Chart sample::,
+     для примеров кода и графика.
+
+ -- Команда MGL: step ydat ['stl'=" `zval=nan']
+ -- Команда MGL: step xdat ydat ['stl'=" `zval=nan']
+ -- Команда MGL: step xdat ydat zdat ['stl'="]
+     Рисует ступеньки для точек массива {XDAT[i], YDAT[i], ZDAT[i]}.
+     См. также *note plot::, *note stem::, *note tile::, *note boxs::.
+     См. раздел *note Step sample::, для примеров кода и графика.
+
+ -- Команда MGL: torus zdat ['stl'="]
+ -- Команда MGL: torus rdat zdat ['stl'="]
+     Рисует поверхность вращения кривой {RDAT[i], ZDAT[i], ZDAT[i]}
+     относительно оси *note axialdir::. Если массив RDAT не указан, то
+     используется массив со значениями равно распределенными вдоль оси
+     x. См. также *note plot::, *note axial::. См. раздел *note Torus
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: tube ydat rdat ['stl'=" `zval=nan']
+ -- Команда MGL: tube ydat `rval' ['stl'=" `zval=nan']
+ -- Команда MGL: tube xdat ydat rdat ['stl'=" `zval=nan']
+ -- Команда MGL: tube xdat ydat `rval' ['stl'=" `zval=nan']
+ -- Команда MGL: tube xdat ydat zdat rdat ['stl'="]
+ -- Команда MGL: tube xdat ydat zdat `rval' ['stl'="]
+     Рисует трубу радиуса RDAT[i] (or RVAL) вдоль кривой между точками
+     {XDAT[i], YDAT[i], ZDAT[i]}. См. также *note plot::. См. раздел
+     *note Tube sample::, для примеров кода и графика.
+
+ -- Команда MGL: mark ydat rdat ['stl'=" `zval=nan']
+ -- Команда MGL: mark xdat ydat rdat ['stl'=" `zval=nan']
+ -- Команда MGL: mark xdat ydat zdat rdat ['stl'="]
+     Рисует маркеры размером RDAT[i]*`marksize' в точках {XDAT[i],
+     YDAT[i], ZDAT[i]}. Для рисования маркеров одинакового размера
+     можно использовать функцию `plot' с невидимой линией (со стилем
+     содержащим ` '). См. также *note plot::, *note textmark::, *note
+     stem::, *note error::. См. раздел *note Mark sample::, для
+     примеров кода и графика.
+
+ -- Команда MGL: textmark ydat 'txt' ['stl'=" `zval=nan']
+ -- Команда MGL: textmark ydat rdat 'txt' ['stl'=" `zval=nan']
+ -- Команда MGL: textmark xdat ydat rdat 'txt' ['stl'=" `zval=nan']
+ -- Команда MGL: textmark xdat ydat zdat rdat 'txt' ['stl'="]
+     Рисует текст TXT как маркер с размером пропорциональным
+     RDAT[i]*`marksize' в точках {XDAT[i], YDAT[i], ZDAT[i]}. Если
+     массив RDAT не указан, то полагается RDAT[i] = 1. См. также *note
+     plot::, *note mark::, *note stem::. См. раздел *note TextMark
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: error ydat yerr ['stl'=" `zval=nan']
+ -- Команда MGL: error xdat ydat yerr ['stl'=" `zval=nan']
+ -- Команда MGL: error xdat ydat xerr yerr ['stl'=" `zval=nan']
+     Рисует размер ошибки {XERR[i], YERR[i]} в точках {XDAT[i],
+     YDAT[i]} на плоскости Z = ZVAL. Такой график полезен для
+     отображения ошибки эксперимента, вычислений и пр. См. также *note
+     plot::. См. раздел *note Error sample::, для примеров кода и
+     графика.
+
+ -- Команда MGL: boxplot adat ['stl'=" `zval=nan']
+ -- Команда MGL: boxplot xdat adat ['stl'=" `zval=nan']
+     Рисует boxplot (называемый также как box-and-whisker diagram или
+     как "ящик с усами") в точках XDAT[i] на плоскости Z = ZVAL. Это
+     график, компактно изображающий распределение вероятностей
+     ADAT[i,j] (минимум, нижний квартиль (Q1), медиана (Q2), верхний
+     квартиль (Q3) и максимум) вдоль второго (j-го) направления. См.
+     также *note plot::, *note error::, *note bars::. См. раздел *note
+     BoxPlot sample::, для примеров кода и графика.
+
+
+File: mathgl_ru.info,  Node: 2D plotting (MGL),  Next: 3D plotting (MGL),  Prev: 1D plotting (MGL),  Up: MGL interface
+
+8.10 2D графики (MGL)
+============================
+
+Эти команды строят графики для двумерных (2D) массивов. Двумерными
+считаются массивы, зависящие только от двух параметров (индексов)
+подобно матрице f(x_i,y_j), i=1...n, j=1...m. Есть несколько основных
+типов 2D графиков: сплошная поверхность (*note surf::), сетчатая
+поверхность (*note mesh::), поверхность из ящиков (*note boxs::),
+поверхность из плиток (*note tile::), водопад (*note fall::), ленточки
+(*note belt::), график плотности (*note dens::), линии уровня (*note
+cont::), линии уровня с заполнением (*note contf::) и результат их
+вращения (*note axial::). В функциях *note cont::, *note contf:: и
+*note axial:: значения уровней можно задавать автоматически и вручную.
+Можно также нарисовать сетку (*note grid::) по массиву данных для
+улучшения вида графика плотности или линий уровня. Каждый тип графика
+имеет похожий интерфейс. Есть версия для рисования одного массива с
+автоматическими координатами и версия для параметрически заданной
+поверхности. См. раздел *note 1D plot sample::, для примеров кода и
+графика.
+
+   Строка SCH задает цветовую схему (*note Color scheme::. Предыдущая
+цветовая схема используется по умолчанию. Младшие размерности массивов
+XDAT, YDAT, ZDAT должны быть одинаковы `xdat.nx=zdat.nx &&
+ydat.nx=zdat.ny' или `xdat.nx=ydat.nx=zdat.nx &&
+xdat.ny=ydat.ny=zdat.ny'. Массивы XDAT и YDAT могут быть векторами (не
+матрицами как ZDAT). Если массивы XDAT, YDAT не указаны, то
+используются массивы со значениями равно распределенными вдоль осей x,
+y. График строится для каждого z среза данных.
+
+ -- Команда MGL: surf zdat ['sch'="]
+ -- Команда MGL: surf xdat ydat zdat ['sch'="]
+     Рисует параметрически заданную поверхность {XDAT[i,j], YDAT[i,j],
+     ZDAT[i,j]}. Если SCH содержит `#', то на поверхности рисуется
+     сетка. См. также *note mesh::, *note dens::, *note belt::, *note
+     tile::, *note boxs::, *note surfc::, *note surfa::. См. раздел
+     *note Surf sample::, для примеров кода и графика.
+
+ -- Команда MGL: mesh zdat ['sch'="]
+ -- Команда MGL: mesh xdat ydat zdat ['sch'="]
+     Рисует сетчатую поверхность, заданную параметрически {XDAT[i,j],
+     YDAT[i,j], ZDAT[i,j]}. См. также *note surf::, *note fall::, *note
+     meshnum::, *note cont::, *note tens::. См. раздел *note Mesh
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: fall zdat ['sch'="]
+ -- Команда MGL: fall xdat ydat zdat ['sch'="]
+     Рисует водопад для параметрически заданной поверхности {XDAT[i,j],
+     YDAT[i,j], ZDAT[i,j]}. График удобен для построения нескольких
+     кривых, сдвинутых вглубь друг относительно друга. Если SCH
+     содержит `x', то линии рисуются вдоль x-оси (по умолчанию линии
+     рисуются вдоль y-оси). См. также *note belt::, *note mesh::, *note
+     tens::, *note meshnum::. См. раздел *note Fall sample::, для
+     примеров кода и графика.
+
+ -- Команда MGL: belt zdat ['sch'="]
+ -- Команда MGL: belt xdat ydat zdat ['sch'="]
+     Рисует ленточки для параметрически заданной поверхности
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. Если SCH содержит `x', то линии
+     рисуются вдоль x-оси (по умолчанию линии рисуются вдоль y-оси).
+     См. также *note fall::, *note surf::, *note plot::, *note
+     meshnum::. См. раздел *note Belt sample::, для примеров кода и
+     графика.
+
+ -- Команда MGL: boxs zdat ['sch'="]
+ -- Команда MGL: boxs xdat ydat zdat ['sch'="]
+     Рисует вертикальные ящики для параметрически заданной поверхности
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. См. также *note surf::, *note
+     dens::, *note tile::, *note step::. См. раздел *note Boxs
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: tile zdat ['sch'="]
+ -- Команда MGL: tile xdat ydat zdat ['sch'="]
+     Рисует плитки для параметрически заданной поверхности {XDAT[i,j],
+     YDAT[i,j], ZDAT[i,j]}. График может использоваться как 3d
+     обобщение *note step::. См. также *note surf::, *note boxs::,
+     *note step::, *note tiles::. См. раздел *note Tile sample::, для
+     примеров кода и графика.
+
+ -- Команда MGL: dens zdat ['sch'=" `zval=nan']
+ -- Команда MGL: dens xdat ydat zdat ['sch'=" `zval=nan']
+     Рисует график плотности для параметрически заданной поверхности
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z = ZVAL. Если SCH содержит
+     `#', то рисуется сетка. См. также *note surf::, *note cont::,
+     *note contf::, *note boxs::, *note tile::, `dens[xyz]'. См. раздел
+     *note Dens sample::, для примеров кода и графика.
+
+ -- Команда MGL: cont vdat zdat ['sch'=" `zval=nan']
+ -- Команда MGL: cont vdat xdat ydat zdat ['sch'=" `zval=nan']
+     Рисует линии уровня для параметрически заданной поверхности
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z = ZVAL (или при Z=VDAT[k]
+     если `zval==nan'). Линии уровня рисуются для Z=VDAT[k]. Если SCH
+     содержит `#', то рисуется сетка. Если SCH содержит `t' или `T', то
+     значения VDAT[k] будут выведены вдоль контуров над (или под)
+     кривой. См. также *note dens::, *note contf::, *note contd::,
+     *note axial::, `cont[xyz]'. См. раздел *note Cont sample::, для
+     примеров кода и графика.
+
+ -- Команда MGL: cont zdat ['sch'=" `num=7 zval=nan']
+ -- Команда MGL: cont xdat ydat zdat ['sch'=" `num=7 zval=nan']
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале цветовой шкалы (см., *note caxis::).
+
+ -- Команда MGL: contf vdat zdat ['sch'=" `zval=nan']
+ -- Команда MGL: contf vdat xdat ydat zdat ['sch'=" `zval=nan']
+     Рисует закрашенные линии (контуры) уровня для параметрически
+     заданной поверхности {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z =
+     ZVAL (или при Z=V[k] если `zval=nan'). Линии уровня рисуются для
+     Z=VDAT[k]. Если SCH содержит `#', то рисуется сетка. См. также
+     *note dens::, *note cont::, *note contd::, `contf[xyz]'. См.
+     раздел *note ContF sample::, для примеров кода и графика.
+
+ -- Команда MGL: contf zdat ['sch'=" `num=7 zval=nan']
+ -- Команда MGL: contf xdat ydat zdat ['sch'=" `num=7 zval=nan']
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале цветовой шкалы (см., *note caxis::).
+
+ -- Команда MGL: contd vdat zdat ['sch'=" `zval=nan']
+ -- Команда MGL: contd vdat xdat ydat zdat ['sch'=" `zval=nan']
+     Рисует закрашенные линии (контуры) уровня для параметрически
+     заданной поверхности {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z =
+     ZVAL (или при Z=V[k] если `zval==nan') цветами заданными явно.
+     Линии уровня рисуются для Z=VDAT[k]. Строка SCH задает цвет
+     контуров: цвет k-го контура определяется символом
+     `sch[k%strlen(sch)]'. См. также *note dens::, *note cont::, *note
+     contf::, `cont[xyz]'. См. раздел *note ContD sample::, для
+     примеров кода и графика.
+
+ -- Команда MGL: contd zdat ['sch'=" `num=7 zval=nan']
+ -- Команда MGL: contd xdat ydat zdat ['sch'=" `num=7 zval=nan']
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале цветовой шкалы (см., *note caxis::).
+
+ -- Команда MGL: axial vdat zdat ['sch'="]
+ -- Команда MGL: axial vdat xdat ydat zdat ['sch'="]
+     Рисует поверхность вращения линии уровня для параметрически
+     заданной поверхности {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. Линии
+     уровня рисуются для ZDAT[i,j]=VDAT[k]. Если SCH содержит `#', то
+     рисуется сетчатая поверхность. Если строка содержит символы `x',
+     `y' или `z', то ось вращения устанавливается в указанное
+     направление (по умолчанию вдоль оси *note axialdir::). См. также
+     *note cont::, *note contf::, *note torus::, *note surf3::. См.
+     раздел *note Axial sample::, для примеров кода и графика.
+
+ -- Команда MGL: axial zdat ['sch'=" `num=3']
+ -- Команда MGL: axial xdat ydat zdat ['sch'=" `num=3']
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале цветовой шкалы (см., *note caxis::).
+
+ -- Команда MGL: grad pdat ['sch'=" `num=5 zval=nan']
+ -- Команда MGL: grad xdat ydat pdat ['sch'=" `num=5 zval=nan']
+ -- Команда MGL: grad xdat ydat zdat pdat ['sch'=" `num=5']
+     Рисует линии градиента скалярного поля PDAT заданного
+     параметрически {XDAT[i,j], YDAT[i,j]} или {XDAT[i,j,k],
+     YDAT[i,j,k], ZDAT[i,j,k]}. Число линий пропорционально NUM. Линии
+     рисуются только с границ интервала при NUM<0. См. также *note
+     dens::, *note cont::, *note dens3::, *note cont3::, *note flow::.
+     См. раздел *note Grad sample::, для примеров кода и графика.
+
+ -- Команда MGL: grid2 zdat ['sch'=" `zval=nan']
+ -- Команда MGL: grid2 xdat ydat zdat ['sch'=" `zval=nan']
+     Рисует плоскую сету для параметрически заданной поверхности
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z = ZVAL. См. также *note
+     dens::, *note cont::, *note contf::.
+
+
+File: mathgl_ru.info,  Node: 3D plotting (MGL),  Next: Dual plotting (MGL),  Prev: 2D plotting (MGL),  Up: MGL interface
+
+8.11 3D графики (MGL)
+============================
+
+Эти функции строят графики для трехмерных (3D) массивов. Трехмерными
+считаются массивы, зависящие от трех параметров (индексов) подобно
+матрице f(x_i,y_j,z_k), i=1...n, j=1...m, k=1...l. Есть 5 основных
+типов 3D графиков: поверхность постоянного уровня (*note surf3::),
+график плотности на срезе (DENS3), линии уровня на срезе (*note
+cont3::), закрашенные контуры уровня на срезе (*note contf3::) и график
+объемной прозрачности типа облака (*note cloud::). В функциях *note
+cont3::, *note contf3:: и *note surf3:: значения уровней можно задавать
+автоматически и вручную. Можно также нарисовать на срезе сетку (*note
+grid3::) по массиву данных для улучшения вида графика плотности или
+линий уровня. Каждый тип графика имеет похожий интерфейс. Есть версия
+для рисования одного массива с автоматическими координатами и версия
+для параметрически заданного массива. См. раздел *note 3D plot
+sample::, для примеров кода и графика.
+
+   Строка SCH задает цветовую схему (*note Color scheme::). Предыдущая
+цветовая схема используется по умолчанию. Массивы X, Y, Z могут быть
+векторами (не 3d массивами как A). Если массивы XDAT, YDAT, ZDAT не
+указаны, то используются массивы со значениями равно распределенными
+вдоль осей x, y, z.
+
+ -- Команда MGL: surf3 adat `val' ['sch'="]
+ -- Команда MGL: surf3 xdat ydat zdat adat `val' ['sch'="]
+     Рисует поверхность уровня для 3d массива, заданного параметрически
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) при
+     ADAT(x,y,z)=VAL. Если SCH содержит `#', то рисуется сетчатая
+     поверхность. См. также *note cloud::, *note dens3::, *note
+     surf3c::, *note surf3a::, *note axial::. См. раздел *note Surf3
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: surf3 adat ['sch'=" `num=5']
+ -- Команда MGL: surf3 xdat ydat zdat adat ['sch'=" `num=5']
+     Рисует NUM поверхностей уровня равномерно распределенных в
+     интервале цветовой шкалы (см. *note caxis::).
+
+ -- Команда MGL: dens3 adat 'dir' [`sval=-1' 'sch'="]
+ -- Команда MGL: dens3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="]
+     Рисует график плотности для 3d массива, заданного параметрически
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). График
+     рисуется на срезе SVAL в направлении DIR={`x', `y', `z'}. Если STL
+     содержит `#', то на срезе рисуется сетка. См. также *note cont3::,
+     *note contf3::, *note dens::, *note grid3::. См. раздел *note
+     Dens3 sample::, для примеров кода и графика.
+
+ -- Команда MGL: densa adat ['sch'="]
+ -- Команда MGL: densa xdat ydat zdat adat ['sch'="]
+     Рисует графики плотности на всех центральных срезах 3d данных.
+
+ -- Команда MGL: cont3 vdat adat 'dir' [`sval=-1' 'sch'="]
+ -- Команда MGL: cont3 vdat xdat ydat zdat adat 'dir' [`sval=-1'
+          'sch'="]
+     Рисует линии уровня для 3d массива, заданного параметрически
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). Линии рисуются
+     для значений из массива V на срезе SVAL в направлении DIR={`x',
+     `y', `z'}. Если STL содержит `#', то на срезе рисуется сетка. Если
+     SCH содержит `t' или `T', то значения VDAT[k] будут выведены вдоль
+     контуров над (или под) кривой. См. также *note dens3::, *note
+     contf3::, *note cont::, *note grid3::. См. раздел *note Cont3
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: cont3 adat 'dir' [`sval=-1' 'sch'=" `num=7']
+ -- Команда MGL: cont3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="
+          `num=7']
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале цветовой шкалы (см., *note caxis::).
+
+ -- Команда MGL: conta adat ['sch'=" `num=7']
+ -- Команда MGL: conta xdat ydat zdat adat ['sch'=" `num=7']
+     Рисует линии уровня на всех центральных срезах 3d данных.
+
+ -- Команда MGL: contf3 vdat adat 'dir' [`sval=-1' 'sch'="]
+ -- Команда MGL: contf3 vdat xdat ydat zdat adat 'dir' [`sval=-1'
+          'sch'="]
+     Рисует закрашенные линии (контуры) уровня для 3d массива,
+     заданного параметрически ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k],
+     ZDAT[i,j,k]). Линии рисуются для значений из массива V на срезе
+     SVAL в направлении DIR={`x', `y', `z'}. Если STL содержит `#', то
+     на срезе рисуется сетка. См. также *note dens3::, *note cont3::,
+     *note contf::, *note grid3::. См. раздел *note ContF3 sample::,
+     для примеров кода и графика.
+
+ -- Команда MGL: contf3 adat 'dir' [`sval=-1' 'sch'=" `num=7']
+ -- Команда MGL: contf3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="
+          `num=7']
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале цветовой шкалы (см., *note caxis::).
+
+ -- Команда MGL: contfa adat ['sch'=" `num=7']
+ -- Команда MGL: contfa xdat ydat zdat adat ['sch'=" `num=7']
+     Рисует закрашенные линии (контуры) уровня на всех центральных
+     срезах 3d данных.
+
+ -- Команда MGL: grid3 adat 'dir' [`sval=-1' 'sch'="]
+ -- Команда MGL: grid3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="]
+     Рисует сетку для 3d массива, заданного параметрически
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). График
+     рисуется на срезе SVAL в направлении DIR={`x', `y', `z'}. См.
+     также *note cont3::, *note contf3::, *note dens3::, *note grid2::.
+
+ -- Команда MGL: grida adat ['sch'="]
+ -- Команда MGL: grida xdat ydat zdat adat ['sch'="]
+     Рисует сетку на всех центральных срезах 3d данных.
+
+ -- Команда MGL: cloud adat ['sch'="]
+ -- Команда MGL: cloud xdat ydat zdat adat ['sch'="]
+     Рисует облачный график для 3d массива, заданного параметрически
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). График состоит
+     из кубиков с цветом и прозрачностью пропорциональной значениям
+     ADAT. Результат похож на облако - малые значения прозрачны, а
+     большие нет. Число кубиков зависит от *note meshnum::. Параметр
+     ALPHA меняет общую прозрачность графика. См. также *note surf3::.
+     См. раздел *note Cloud sample::, для примеров кода и графика.
+
+ -- Команда MGL: beam tr g1 g2 adat `rval' ['sch'=" `flag=0 num=3']
+     Рисует поверхность уровня для 3d массива ADAT при постоянном
+     значении ADAT=VAL. Это специальный тип графика для ADAT заданного
+     в сопровождающей системе координат вдоль кривой TR с ортами G1, G2
+     и с поперечным размером RVAL. Переменная FLAG - битовый флаг:
+     `0x1' - рисовать в сопровождающих (не лабораторных) координатах;
+     `0x2' - рисовать проекцию на плоскость \rho-z; `0x4' - рисовать
+     нормированное в каждом сечении поле. Размеры массивов по 1-му
+     индексу TR, G1, G2 должны быть nx>2. Размеры массивов по 2-му
+     индексу TR, G1, G2 и размер по 3-му индексу массива ADAT должны
+     быть одинаковы. См. также *note surf3::.
+
+
+File: mathgl_ru.info,  Node: Dual plotting (MGL),  Next: Vector fields (MGL),  Prev: 3D plotting (MGL),  Up: MGL interface
+
+8.12 Парные графики (MGL)
+======================================
+
+Эти команды строят графики для двух связанных массивов. Есть несколько
+основных типов 3D графиков: поверхность и поверхность уровня с окраской
+по второму массиву (*note surfc::, *note surf3c::), поверхность и
+поверхность уровня с прозрачностью по второму массиву (*note surfa::,
+*note surf3a::), плитки переменного размера (*note tiles::), диаграмма
+точечного отображения (*note map::), STFA диаграмма (*note stfa::). В
+командах *note surf3a:: и *note surf3c:: значения уровней можно
+задавать автоматически и вручную. Каждый тип графика имеет похожий
+интерфейс. Есть версия для рисования одного массива с автоматическими
+координатами и версия для параметрически заданного массива.
+
+   Строка SCH задает цветовую схему (*note Color scheme::). Предыдущая
+цветовая схема используется по умолчанию. Массивы X, Y, Z могут быть
+векторами (не 3d массивами как A). Если массивы XDAT, YDAT, ZDAT не
+указаны, то используются массивы со значениями равно распределенными
+вдоль осей x, y, z.
+
+ -- Команда MGL: surfc zdat cdat ['sch'="]
+ -- Команда MGL: surfc xdat ydat zdat cdat ['sch'="]
+     Рисует параметрически заданную поверхность {XDAT[i,j], YDAT[i,j],
+     ZDAT[i,j]} с цветом, заданным массивом CDAT[i,j]. Если SCH
+     содержит `#', то на поверхности рисуется сетка. См. также *note
+     surf::, *note surfa::, *note surf3c::. См. раздел *note SurfC
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: surf3c adat cdat `val' ['sch'="]
+ -- Команда MGL: surf3c xdat ydat zdat adat cdat `val' ['sch'="]
+     Рисует поверхность уровня для 3d массива, заданного параметрически
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) при
+     A(x,y,z)=VAL. Аналогично *note surf3::, но цвет задается массивом
+     CDAT. Если SCH содержит `#', то рисуется сетчатая поверхность. См.
+     также *note surf3::, *note surfc::, *note surf3a::. См. раздел
+     *note Surf3C sample::, для примеров кода и графика.
+
+ -- Команда MGL: surf3c adat cdat ['sch'=" `num=5']
+ -- Команда MGL: surf3c xdat ydat zdat adat cdat ['sch'=" `num=5']
+     Рисует NUM поверхностей уровня равномерно распределенных в
+     интервале цветовой шкалы (см. *note caxis::).
+
+ -- Команда MGL: surfa zdat cdat ['sch'="]
+ -- Команда MGL: surfa xdat ydat zdat cdat ['sch'="]
+     Рисует параметрически заданную поверхность {XDAT[i,j], YDAT[i,j],
+     ZDAT[i,j]} с прозрачностью, заданным массивом CDAT[i,j]. Если SCH
+     содержит `#', то на поверхности рисуется сетка. См. также *note
+     surf::, *note surfc::, *note surf3a::. См. раздел *note SurfA
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: surf3a adat cdat `val' ['sch'="]
+ -- Команда MGL: surf3a xdat ydat zdat adat cdat `val' ['sch'="]
+     Рисует поверхность уровня для 3d массива, заданного параметрически
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) при
+     A(x,y,z)=VAL. Аналогично *note surf3::, но прозрачность задается
+     массивом CDAT. Если SCH содержит `#', то рисуется сетчатая
+     поверхность. См. также *note surf3::, *note surfa::, *note
+     surf3c::. См. раздел *note Surf3A sample::, для примеров кода и
+     графика.
+
+ -- Команда MGL: surf3a adat cdat ['sch'=" `num=5']
+ -- Команда MGL: surf3a xdat ydat zdat adat cdat ['sch'=" `num=5']
+     Рисует NUM поверхностей уровня равномерно распределенных в
+     интервале цветовой шкалы (см. *note caxis::).
+
+ -- Команда MGL: tiles zdat rdat ['sch'="]
+ -- Команда MGL: tiles xdat ydat zdat rdat ['sch'="]
+     Рисует плитки для параметрически заданной поверхности {XDAT[i,j],
+     YDAT[i,j], ZDAT[i,j]}. Аналогично *note tile::, но размер плиток
+     задается массивов RDAT. Это создает эффект "прозрачности" при
+     экспорте в файлы EPS. См. также *note surfa::, *note tile::. См.
+     раздел *note TileS sample::, для примеров кода и графика.
+
+ -- Команда MGL: map udat vdat ['sch'=" `pnts=on']
+ -- Команда MGL: map xdat ydat udat vdat ['sch'=" `pnts=on']
+     Визуализирует точечное отображение для матриц {UDAT, VDAT }
+     параметрически зависящих от координат XDAT, YDAT. Исходное
+     положение ячейки задает ее цвет. Высота пропорциональна якобиану
+     Jacobian(udat,vdat). График является аналогом диаграммы Арнольда.
+     Если `pnts=off', то рисуются грани, иначе цветные точки рисуются в
+     узлах матриц (полезно для "запутанного" отображения). См. раздел
+     *note Map sample::, для примеров кода и графика.
+
+ -- Команда MGL: stfa re im `dn' ['sch'=" `pnts=on']
+ -- Команда MGL: stfa xdat ydat re im `dn' ['sch'=" `pnts=on']
+     Рисует спектрограмму комплексного массива RE+i*`im' для Фурье
+     размером DN точек. Параметр DN - любое четное число. Например в 1D
+     случае, результатом будет график плотности от массива
+     res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn
+     размером {int(nx/dn), dn, ny}. Массивы RE, IM параметрически
+     зависят от координат XDAT, YDAT. См. раздел *note STFA sample::,
+     для примеров кода и графика.
+
+
+File: mathgl_ru.info,  Node: Vector fields (MGL),  Next: Other plotting (MGL),  Prev: Dual plotting (MGL),  Up: MGL interface
+
+8.13 Векторные поля (MGL)
+======================================
+
+Эти функции рисуют графики для 2D и 3D векторных полей. Есть несколько
+типов графиков: просто векторное поле (*note vect::), вектора вдоль
+траектории (*note traj::), векторное поле каплями (*note dew::), нити
+тока (*note flow::), трубки тока (*note pipe::). Каждый тип графика
+имеет похожий интерфейс. Есть версия для рисования одного массива с
+автоматическими координатами и версия для параметрически заданного
+массива.
+
+   Строка SCH задает цветовую схему (*note Color scheme::). Предыдущая
+цветовая схема используется по умолчанию. Все размеры массивов AX и AY
+должны быть одинаковы. Младшие размерности массивов X, Y и AX должны
+быть одинаковы. Массивы X и Y могут быть векторами (не матрицами как
+AX). График строится для каждого z среза AX, AY для 2D случаев.
+
+ -- Команда MGL: traj xdat ydat udat vdat ['sch'=" `zval=nan len=0']
+ -- Команда MGL: traj xdat ydat zdat udat vdat wdat ['sch'=" `len=0']
+     Рисует вектора {UDAT, VDAT, WDAT} вдоль кривой {XDAT, YDAT, ZDAT}.
+     Длина векторов пропорциональна \sqrt{udat^2+vdat^2+wdat^2}. Строка
+     PEN задает цвет (*note Line styles::). По умолчанию (`pen=''').
+     Параметр LEN задает фактор длины векторов (если не нуль) или
+     выбирать длину пропорционально расстоянию между точками кривой
+     (если LEN=0). См. также *note vect::. См. раздел *note Traj
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: vect udat vdat ['sch'=" `zval=nan flag=0']
+ -- Команда MGL: vect xdat ydat udat vdat ['sch'=" `zval=nan flag=0']
+     Рисует векторное поле {UDAT, VDAT} параметрически зависящее от
+     координат XDAT, YDAT на плоскости при Z=ZVAL. Длина и цвет
+     векторов пропорциональна \sqrt{ax^2+ay^2}. Число рисуемых векторов
+     зависит от *note meshnum::. Параметр FLAG побитовый флаг для
+     настройки вид векторов: `1' - двуцветный вектор, `2' - одинаковая
+     длина векторов, `4' - рисует стрелку в точку сетки, `8' - рисует
+     стрелку с серединой в точке сетки, `16' - рисует штрихи вместо
+     стрелок. См. также *note flow::, *note dew::, *note vectc::. См.
+     раздел *note Vect sample::, для примеров кода и графика.
+
+ -- Команда MGL: vect udat vdat wdat ['sch'=" `flag=0']
+ -- Команда MGL: vect xdat ydat zdat udat vdat wdat ['sch'=" `flag=0']
+     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
+     3d массивами, а длина и цвет пропорциональны
+     \sqrt{udat^2+vdat^2+wdat^2}. См. раздел *note Vect 3D sample::,
+     для примеров кода и графика.
+
+ -- Команда MGL: vectc udat vdat ['sch'=" `zval=nan']
+ -- Команда MGL: vectc xdat ydat udat vdat ['sch'=" `zval=nan']
+     Аналогично *note vect:: c `flag=2+16=18'. См. раздел *note VectC
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: vectc udat vdat wdat ['sch'="]
+ -- Команда MGL: vectc xdat ydat zdat udat vdat wdat ['sch'="]
+     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
+     3d массивами, а длина и цвет пропорциональны
+     \sqrt{udat^2+vdat^2+wdat^2}. См. раздел *note VectC 3D sample::,
+     для примеров кода и графика.
+
+ -- Команда MGL: vectl udat vdat ['sch'=" `zval=nan']
+ -- Команда MGL: vectl xdat ydat udat vdat ['sch'=" `zval=nan']
+     Аналогично *note vect:: c `flag=1+16=17'. См. раздел *note VectL
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: vectl udat vdat wdat ['sch'="]
+ -- Команда MGL: vectl xdat ydat zdat udat vdat wdat ['sch'="]
+     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
+     3d массивами, а длина и цвет пропорциональны
+     \sqrt{udat^2+vdat^2+wdat^2}. См. раздел *note VectL 3D sample::,
+     для примеров кода и графика.
+
+ -- Команда MGL: dew udat vdat ['sch'=" `zval=nan']
+ -- Команда MGL: dew xdat ydat udat vdat ['sch'=" `zval=nan']
+     Рисует капли для векторного поля {UDAT, VDAT}, параметрически
+     зависящего от координат XDAT, YDAT при Z=ZVAL. Замечу, что график
+     требует много памяти и процессорного времени для своего создания!
+     Цвет капель пропорционален \sqrt{ax^2+ay^2}. Число капель
+     определяется *note meshnum::. См. также *note vect::. См. раздел
+     *note Dew sample::, для примеров кода и графика.
+
+ -- Команда MGL: flow udat vdat ['sch'=" `num=5 zval=nan']
+ -- Команда MGL: flow xdat ydat udat vdat ['sch'=" `num=5 zval=nan']
+     Рисует нити тока для векторного поля {UDAT, VDAT}, параметрически
+     зависящего от координат XDAT, YDAT на плоскости при z = ZVAL.
+     Число нитей пропорционально NUM. При NUM>0 нитей могут стартовать
+     и изнутри сетки, в противном случае только с краев. Цвет нитей
+     пропорционален \sqrt{udat^2+vdat^2}. Теплые цвета соответствуют
+     нормальному току (типа стока). Холодные цвета соответствуют
+     обратному току (типа источника). См. также *note pipe::, *note
+     vect::. См. раздел *note Flow sample::, для примеров кода и
+     графика.
+
+ -- Команда MGL: flow udat vdat wdat ['sch'=" `num=3']
+ -- Команда MGL: flow xdat ydat zdat udat vdat wdat ['sch'=" `num=3']
+     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
+     3d массивами, а цвет пропорционален \sqrt{udat^2+vdat^2+wdat^2}.
+     См. раздел *note Flow 3D sample::, для примеров кода и графика.
+
+ -- Команда MGL: flow `x0 y0' udat vdat ['sch'=" `zval=nan']
+ -- Команда MGL: flow `x0 y0' xdat ydat udat vdat ['sch'=" `zval=nan']
+     Рисует нить тока из точки {X0, Y0} для векторного поля {UDAT,
+     VDAT}, параметрически зависящего от координат XDAT, YDAT на
+     плоскости при z = ZVAL. Цвет нити пропорционален
+     \sqrt{udat^2+vdat^2}. Теплые цвета соответствуют нормальному току
+     (типа стока). Холодные цвета соответствуют обратному току (типа
+     источника).
+
+ -- Команда MGL: flow `x0 y0 z0' udat vdat wdat ['sch'="]
+ -- Команда MGL: flow `x0 y0 z0' xdat ydat zdat udat vdat wdat ['sch'="]
+     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
+     3d массивами, а цвет пропорционален \sqrt{udat^2+vdat^2+wdat^2}.
+
+ -- Команда MGL: pipe udat vdat ['sch'=" `r0=0.05 num=5 zval=nan']
+ -- Команда MGL: pipe xdat ydat udat vdat ['sch'=" `r0=0.05 num=5
+          zval=nan']
+     Рисует трубки тока для векторного поля {UDAT, VDAT},
+     параметрически зависящего от координат XDAT, YDAT на плоскости при
+     z = ZVAL. Число трубок пропорционально NUM. При NUM>0 нитей могут
+     стартовать и изнутри сетки, в противном случае только с краев.
+     Цвет и радиус трубок пропорционален \sqrt{udat^2+vdat^2}. Теплые
+     цвета соответствуют нормальному току (типа стока). Холодные цвета
+     соответствуют обратному току (типа источника). Параметр R0 задает
+     радиус трубок. При R0<0 радиус трубок обратно пропорционален их
+     амплитуде. См. также *note flow::, *note vect::. См. раздел *note
+     Pipe sample::, для примеров кода и графика.
+
+ -- Команда MGL: pipe udat vdat wdat ['sch'=" `r0=0.05 num=3']
+ -- Команда MGL: pipe xdat ydat zdat udat vdat wdat ['sch'=" `r0=0.05
+          num=3']
+     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
+     3d массивами, а цвет пропорционален \sqrt{udat^2+vdat^2+wdat^2}.
+     См. раздел *note Pipe 3D sample::, для примеров кода и графика.
+
+
+File: mathgl_ru.info,  Node: Other plotting (MGL),  Next: Nonlinear fitting (MGL),  Prev: Vector fields (MGL),  Up: MGL interface
+
+8.14 Прочие графики (MGL)
+======================================
+
+Это команды, не относящиеся к какой-то специальной категории. Сюда
+входят функции построения графиков по текстовым формулам (*note
+fplot::, *note fsurf::), рисования поверхностей из треугольников (*note
+triplot::), произвольных точек в пространстве (*note dots::) и
+реконструкции по ним поверхности (*note crust::), графики плотности и
+линии уровня на плоскостях, перпендикулярных осям x, y или z
+(dens[xyz], cont[xyz], contf[xyz]). Каждый тип графика имеет похожий
+интерфейс. Есть версия для рисования одного массива с автоматическими
+координатами и версия для параметрически заданного массива. Строка SCH
+задает цветовую схему (*note Color scheme::). Предыдущая цветовая схема
+используется по умолчанию.
+
+ -- Команда MGL: densx dat ['sch'=" `val=nan']
+ -- Команда MGL: densy dat ['sch'=" `val=nan']
+ -- Команда MGL: densz dat ['sch'=" `val=nan']
+     Рисуют график плотности на x, y или z плоскостях. Если DAT - 3d
+     массив, то выполняется интерполяция к заданному срезу VAL. Функции
+     полезны для создания проекций 3D массивов на оси координат. См.
+     также `cont[xyz], contf[xyz]', *note dens::. См. раздел *note Dens
+     projection sample::, для примеров кода и графика.
+
+ -- Команда MGL: contx dat ['sch'=" `val=nan num=7']
+ -- Команда MGL: conty dat ['sch'=" `val=nan num=7']
+ -- Команда MGL: contz dat ['sch'=" `val=nan num=7']
+     Рисуют линии уровня на x, y или z плоскостях. Если DAT - 3d
+     массив, то выполняется интерполяция к заданному срезу VAL. Функции
+     полезны для создания проекций 3D массивов на оси координат. См.
+     также `dens[xyz], contf[xyz]', *note cont::. См. раздел *note Cont
+     projection sample::, для примеров кода и графика.
+
+ -- Команда MGL: contfx dat ['sch'=" `val=nan num=7']
+ -- Команда MGL: contfy dat ['sch'=" `val=nan num=7']
+ -- Команда MGL: contfz dat ['sch'=" `val=nan num=7']
+     Рисуют закрашенные контуры уровня на x, y или z плоскостях. Если
+     DAT - 3d массив, то выполняется интерполяция к заданному срезу
+     VAL. Функции полезны для создания проекций 3D массивов на оси
+     координат. См. также `dens[xyz], cont[xyz]', *note contf::.
+
+ -- Команда MGL: dots xdat ydat zdat ['sch'="]
+ -- Команда MGL: dots xdat ydat zdat adat ['sch'="]
+     Рисует произвольно расположенные точки {XDAT[i], YDAT[i],
+     ZDAT[i]}. Если определен массив ADAT[i], то он задает прозрачность
+     точек. См. также *note crust::, *note mark::, *note plot::. См.
+     раздел *note Dots sample::, для примеров кода и графика.
+
+ -- Команда MGL: crust xdat ydat zdat ['sch'="]
+     Реконструирует и рисует поверхность по произвольно расположенным
+     точкам {XDAT[i], YDAT[i], ZDAT[i]}. Если строка содержит `#', то
+     рисуется сетчатая поверхность. См. также *note dots::, *note
+     triplot::. См. раздел *note Crust sample::, для примеров кода и
+     графика.
+
+ -- Команда MGL: triplot idat xdat ydat ['sch'=" `zval=nan']
+ -- Команда MGL: triplot idat xdat ydat zdat ['sch'="]
+ -- Команда MGL: triplot idat xdat ydat zdat cdat ['sch'="]
+     Рисует поверхность из треугольников. Вершины треугольников
+     задаются индексами IDAT в массиве точек {XDAT[i], YDAT[i],
+     ZDAT[i]}. Если строка содержит `#', то рисуется сетчатая
+     поверхность. Размер по 1-му индексу массива IDAT должен быть 3 или
+     больше. Массивы XDAT, YDAT, ZDAT должны иметь одинаковые размеры.
+     Массив CDAT задает цвет треугольников (если IDAT.ny=CDAT.nx) или
+     цвет вершин (если XDAT.nx=CDAT.nx). См. также *note dots::, *note
+     crust::, *note quadplot::, *note tricont::.
+
+ -- Команда MGL: tricont vdat idat xdat ydat zdat cdat ['sch'="
+          `zval=nan']
+ -- Команда MGL: tricont vdat idat xdat ydat zdat ['sch'=" `zval=nan']
+ -- Команда MGL: tricont idat xdat ydat zdat ['sch'=" `num=7 zval=nan']
+     Рисует линии уровня поверхности из треугольников при Z = ZVAL (или
+     для z=VDAT[k] если `zval==NAN'). Вершины треугольников задаются
+     индексами IDAT в массиве точек {XDAT[i], YDAT[i], ZDAT[i]}. Размер
+     по 1-му индексу массива IDAT должен быть 3 или больше. Массивы
+     XDAT, YDAT, ZDAT должны иметь одинаковые размеры. Массив CDAT
+     (если указан) задает цвет треугольников (если IDAT.ny=CDAT.nx) или
+     цвет вершин (если XDAT.nx=CDAT.nx). См. также *note triplot::,
+     *note cont::.
+
+ -- Команда MGL: quadplot idat xdat ydat ['sch'=" `zval=nan']
+ -- Команда MGL: quadplot idat xdat ydat zdat ['sch'="]
+ -- Команда MGL: quadplot idat xdat ydat zdat cdat ['sch'="]
+     Рисует поверхность из четырехугольников. Вершины треугольников
+     задаются индексами IDAT в массиве точек {XDAT[i], YDAT[i],
+     ZDAT[i]}. Если строка содержит `#', то рисуется сетчатая
+     поверхность. Размер по 1-му индексу массива IDAT должен быть 4 или
+     больше. Массивы XDAT, YDAT, ZDAT должны иметь одинаковые размеры.
+     Массив CDAT задает цвет четырехугольников (если IDAT.ny=CDAT.nx)
+     или цвет вершин (если XDAT.nx=CDAT.nx). См. также *note triplot::.
+
+ -- Команда MGL: fplot 'y(x)' ['pen'=" `zval=nan num=100']
+     Рисует функцию `y(x)' в плоскости z=ZVAL с координатой `x' в
+     диапазоне x-оси координат. Параметр NUM задает минимальное число
+     точек по координате для графика. См. также *note plot::.
+
+ -- Команда MGL: fplot 'x(t)' 'y(t)' 'z(t)' ['pen'=" `num=100']
+     Рисует параметрическую кривую {`x(t)', `y(t)', `z(t)'}, где
+     координата `t' меняется в диапазоне [0, 1]. Параметр NUM задает
+     минимальное число точек по координате для графика. См. также *note
+     plot::.
+
+ -- Команда MGL: fsurf 'z(x,y)' ['sch'=" `num=100']
+     Рисует поверхность `z(x,y)' с координатами `x', `y' в диапазоне
+     x-,y-осей координат. Параметр NUM задает минимальное число точек
+     по координатам для графика. См. также *note surf::.
+
+ -- Команда MGL: fsurf 'x(u,v)' 'y(u,v)' 'z(u,v)' ['sch'=" `num=100']
+     Рисует параметрическую поверхность {`x(u,v)', `y(u,v)', `z(u,v)'},
+     где координаты `u', `v' меняются в диапазоне [0, 1]. Параметр NUM
+     задает минимальное число точек по координатам для графика. См.
+     также *note surf::.
+
+
+File: mathgl_ru.info,  Node: Nonlinear fitting (MGL),  Next: Data create (MGL),  Prev: Other plotting (MGL),  Up: MGL interface
+
+8.15 Nonlinear fitting (MGL)
+============================
+
+Эти команды подбирают параметры функций для наилучшей аппроксимации
+данных, т.е. минимизируют сумму \sum_i (f(x_i, y_i, z_i) -
+a_i)^2/s_i^2. При этом аппроксимирующая функция `f' может зависеть от
+одного аргумента `x' (1D случай), от двух аргументов `x,y' (2D случай)
+или от трех аргументов `x,y,z' (3D случай). Функция `f' также может
+зависеть от параметров. Список параметров задается строкой VAR
+(например, `abcd'). Обычно пользователь должен предоставить начальные
+значения параметров в переменной INI. Однако, при его отсутствии
+используются нулевые значения.
+
+   Команды *note fit:: и *note fits:: не рисуют полученные массивы. Они
+заполняют массив FIT по формуле `f' с найденными коэффициентами. При
+этом, координаты `x,y,z' равно распределены в вдоль осей координат.
+Число точек в FIT выбирается максимальным из размера массива FIT и 100.
+Формулу с найденными коэффициентами можно вывести с помощью команды
+*note putsfit::. См. раздел *note Fitting sample::, для примеров кода и
+графика.
+
+   Размерность массивов должны быть не меньше, чем число указанных
+массивов XDAT, YDAT, ZDAT. Также подбор коэффициентов будет
+осуществляться только вдоль указанных направлений (например, вдоль x и
+y если указаны только XDAT и YDAT). Если массив XDAT не указан, то
+используется массив со значениями равно распределенными вдоль оси x.
+
+ -- Команда MGL: fits adat sdat 'func' 'var' [ini=0]
+ -- Команда MGL: fits xdat adat sdat 'func' 'var' [ini=0]
+ -- Команда MGL: fits xdat ydat adat sdat 'func' 'var' [ini=0]
+ -- Команда MGL: fits xdat ydat zdat adat sdat 'func' 'var' [ini=0]
+     "Подгоняют" формулу вдоль x-, y- и z-направлений для массива
+     заданного параметрически A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) с
+     весовыми коэффициентами SDAT[i,j,k].
+
+ -- Команда MGL: fit adat 'func' 'var' [ini=0]
+ -- Команда MGL: fit xdat adat 'func' 'var' [ini=0]
+ -- Команда MGL: fit xdat ydat adat 'func' 'var' [ini=0]
+ -- Команда MGL: fit xdat ydat zdat adat 'func' 'var' [ini=0]
+     "Подгоняют" формулу вдоль x-, y- и z-направлений для массива
+     заданного параметрически A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) с
+     весовыми коэффициентами равными 1.
+
+ -- Команда MGL: putsfit `x y' ['pre'=" 'fnt'=" `size=-1']
+     Печатает последнюю подобранную формулу с найденными коэффициентами
+     в точке {X, Y}. Строка PRE будет напечатана перед формулой. Все
+     другие параметры такие же как в *note Text printing (MGL)::.
+
+
+File: mathgl_ru.info,  Node: Data create (MGL),  Next: Data filling (MGL),  Prev: Nonlinear fitting (MGL),  Up: MGL interface
+
+8.16 Создание данных (MGL)
+========================================
+
+ -- Команда MGL: new dat [`nx=1 ny=1 nz=1']
+     Создает/пересоздает массив с именем DAT данных указанного размера
+     и заполняет его нулями. Ничего не делает при NX, NY, NZ
+     отрицательных или равных нулю.
+
+ -- Команда MGL: var dat `num v1 [v2=nan]'
+     Создает одномерный массив с именем DAT размером `num' и заполняет
+     его равномерно в диапазоне [V1, V2]. Если V2=`nan', то
+     используется V2=V1.
+
+ -- Команда MGL: list dat `v1 ...'
+     Создает массив с именем DAT и заполняет его числовыми значениями
+     аргументов `v1 ...'. Команда может создавать 1d- и 2d-массивы. Для
+     создания 2d-массивов требуется указать разделитель строк данных
+     `|'. Размер массива будет [максимальное число чисел в строке *
+     число строк]. Например, команда `list 1 | 2 3' создаст массив [1
+     0; 2 3]. Отмечу, что максимальное число аргументов 1000.
+
+ -- Команда MGL: list dat d1 ...
+     Создает массив с именем DAT и заполняет его числами из массивов
+     `d1 ...'. Команда может создавать 2d- и 3d-массивы (если аргументы
+     2d массивы). Младшие размерности всех массивов в аргументах должны
+     быть равны размерности D1. Отмечу, что максимальное число
+     аргументов 1000.
+
+ -- Команда MGL: copy dat dat2 ['eq'=" `on_axis=on']
+ -- Команда MGL: copy dat `val'
+     Создает массив с именем DAT и копирует в него данные из массива
+     DAT2. При этом, если указан параметр EQ, то данные будут изменены
+     по формуле аналогично команде *note fill:: (для `on_axis=on') или
+     *note modify:: (для `on_axis=off').
+
+ -- Команда MGL: idset dat 'ids'
+     Устанавливает символьные обозначения для колонок данных. Строка
+     должна содержать символы 'a'...'z' один на колонку (без пробелов).
+
+ -- Команда MGL: info dat [`detail=off']
+     Выводит информацию о массиве (размер, максимальное/минимальное
+     значение, моменты и пр.). При `detail=off' показывается только
+     краткая информация.
+
+ -- Команда MGL: info 'text'
+     Выводит текст TEXT как информацию (предупреждение).
+
+
+File: mathgl_ru.info,  Node: Data filling (MGL),  Next: Rearrange data (MGL),  Prev: Data create (MGL),  Up: MGL interface
+
+8.17 Заполнение данных (MGL)
+============================================
+
+ -- Команда MGL: fill dat v1 v2 ['dir'='x']
+     Заполняет значениями равно распределенными в диапазоне [V1, V2] в
+     направлении DIR={`x',`y',`z'}.
+
+ -- Команда MGL: fill dat 'eq' [vdat=0 wdat=0]
+     Заполняет значениями вычисленными по формуле EQ. Формула
+     представляет собой произвольное выражение, зависящее от переменных
+     `x', `y', `z', `u', `v', `w'. Координаты `x', `y', `z' полагаются
+     меняющимися в диапазоне осей координат (в отличие от *note
+     modify::). Переменная `u' - значения исходного массива, переменные
+     `v', `w' - значения массивов VDAT, WDAT. Последние могут быть
+     опущены.
+
+ -- Команда MGL: modify dat 'eq' [`dim=0']
+ -- Команда MGL: modify dat 'eq' vdat [wdat=0]
+     Заполняет значениями вычисленными по формуле EQ. Формула
+     представляет собой произвольное выражение, зависящее от переменных
+     `x', `y', `z', `u', `v', `w'. Координаты `x', `y', `z' полагаются
+     меняющимися в диапазоне [0,1] (в отличие от *note fill::).
+     Переменная `u' - значения исходного массива, переменные `v', `w' -
+     значения массивов VDAT, WDAT. Последние могут быть опущены. Если
+     указан DIM>0, то изменяются только слои >=DIM.
+
+ -- MGL command: put dat `val [i=: j=: k=:]'
+     Присваивает значения (под-)массива DAT[I, J, K] = VAL. Индексы I,
+     J, K равные `:' задают значениия VAL для всего диапазона
+     соответствующего направления(ий). Например, `put dat val : 0 :'
+     задает DAT[i,0,j]=VAL для i=0...(DAT.nx-1), j=0...(DAT.nz-1).
+
+ -- MGL command: put dat vdat [`i=: j=: k=:']
+     Копирует значения из массива VDAT в диапазон значений массива DAT.
+     Индексы I, J, K равные `:' задают диапазон изменения значений в
+     соответствующих направление(ях). Младшие размерности массива VDAT
+     должны быть больше выбранного диапазона массива DAT. Например,
+     `put dat v : 0 :' присвоит DAT[i,0,j]=VDAT.ny>DAT.nz ? VDAT[i,j] :
+     VDAT[i], где i=0...(DAT.nx-1), j=0...(DAT.nz-1) и условие
+     vdat.nx>=dat.nx выполнено.
+
+
+File: mathgl_ru.info,  Node: Rearrange data (MGL),  Next: File I/O (MGL),  Prev: Data filling (MGL),  Up: MGL interface
+
+8.18 Изменение размеров данных (MGL)
+===========================================================
+
+ -- Команда MGL: rearrange dat `mx [my=0 mz=0]'
+     Изменяет размерность данных без изменения самого массива данных,
+     так что результирующий массив MX*MY*MZ < nx*ny*nz. Если один из
+     параметров MY или MZ ноль, то он будет выбран оптимальным образом.
+     Например, если MY=0, то будет MY=nx*ny*nz/MX и MZ=1.
+
+ -- Команда MGL: extend dat `n1 [n2=0]'
+     Увеличивает размер данных путем вставки (|N1|+1) новых срезов
+     после (для N1>0) или перед (для N1<0) существующими данными. Можно
+     добавить сразу 2 размерности для 1d массива, используя второй
+     параметр N2. Данные в новые срезы будут скопированы из
+     существующих. Например, для N1>0 новый массив будет a_ij^new =
+     a_i^old where j=0...N1. Соответственно, для N1<0 новый массив
+     будет a_ij^new = a_j^old, где i=0...|N1|.
+
+ -- Команда MGL: transpose dat ['dim'='yxz']
+     Транспонирует (меняет порядок размерностей) массив данных. Новый
+     порядок размерностей задается строкой DIM.
+
+ -- Команда MGL: squeeze dat `rx [ry=1 rz=1 sm=off]'
+     Уменьшает размер данных путем удаления элементов с индексами не
+     кратными RX, RY, RZ соответственно. Параметр SMOOTH задает
+     использовать сглаживания (т.е. out[i]=\sum_{j=i,i+r} a[j]/r) или
+     нет (т.е. out[i]=a[j*r]).
+
+ -- Команда MGL: crop dat `n1 n2' 'dir'
+     Обрезает границы данных при I<N1 и I>N2 (при N2>0) или
+     I>`n[xyz]'-N2 (при N2<=0) вдоль направления DIR.
+
+ -- Команда MGL: delete dat
+     Удаляет массив DAT и освобождает использованную память. Может быть
+     полезно для больших неиспользуемых массивов.
+
+ -- Команда MGL: delete dat 'dir' `[pos=off num=0]'
+     Удаляет NUM срезов вдоль направления DIR с позиции POS.
+
+ -- Команда MGL: insert dat 'dir' `[pos=off num=0]'
+     Вставляет NUM срезов вдоль направления DIR с позиции POS и
+     заполняет их нулями.
+
+
+File: mathgl_ru.info,  Node: File I/O (MGL),  Next: Make another data (MGL),  Prev: Rearrange data (MGL),  Up: MGL interface
+
+8.19 Чтение/сохранение данных (MGL)
+=========================================================
+
+ -- Команда MGL: read dat 'fname'
+     Читает данные из текстового файла с разделителями символом
+     пробела/табуляции с автоматическим определением размера массива.
+     Двойной перевод строки начинает новый срез данных (по направлению
+     z).
+
+ -- Команда MGL: read dat 'fname' `mx [my=1 mz=1]'
+     Читает данные из текстового файла с заданными размерами. Ничего не
+     делается если параметры MX, MY или MZ равны нулю или отрицательны.
+
+ -- Команда MGL: readmat dat 'fname' [`dim=2']
+     Читает данные из текстового файла с размерами, указанными в первых
+     DIM числах файла. При этом переменная DIM задает размерность (1d,
+     2d, 3d) данных.
+
+ -- Команда MGL: readall dat 'templ' `v1 v2 [dv=1 slice=off]'
+     Объединяет данные из нескольких текстовых файлов. Имена файлов
+     определяются вызовом функции `sprintf(fname,templ,val);', где VAL
+     меняется от V1 до V2 с шагом DV. Данные загружаются один за другим
+     в один и тот же срез данных (при SLICE=`off') или срез-за-срезом
+     (при SLICE=`on').
+
+ -- Команда MGL: readall dat 'templ' `[slice=off]'
+     Объединяет данные из нескольких текстовых файлов, чьи имена
+     удовлетворяют шаблону TEMPL (например, TEMPL=`"t_*.dat"'). Данные
+     загружаются один за другим в один и тот же срез данных (при
+     SLICE=`off') или срез-за-срезом (при SLICE=`on').
+
+ -- Команда MGL: save dat 'fname'
+     Сохраняет массив данных в текстовый файл.
+
+ -- Команда MGL: readhdf dat 'fname' 'dname'
+     Читает массив с именем DNAME из HDF5 или HDF4 файла FNAME.
+
+ -- Команда MGL: savehdf dat 'fname' 'dname'
+     Сохраняет массив под именем DNAME в HDF5 или HDF4 файл FNAME.
+
+ -- Команда MGL: import dat 'fname' 'sch' [`v1=0 v2=1']
+     Читает данные из растрового файла. RGB значения пикселов
+     преобразуются в число в диапазоне [V1, V2] используя цветовую
+     схему SCH (*note Color scheme::).
+
+ -- Команда MGL: export dat 'fname' 'sch' [`v1=0 v2=0']
+     Сохраняет данные в растровый файл. Числовые значения,
+     нормированные в диапазон [V1, V2], преобразуются в RGB значения
+     пикселов, используя цветовую схему SCH (*note Color scheme::).
+     Если V1>=V2, то значения V1, V2 определяются автоматически как
+     минимальное и максимальное значение данных.
+
+
+File: mathgl_ru.info,  Node: Make another data (MGL),  Next: Change data (MGL),  Prev: File I/O (MGL),  Up: MGL interface
+
+8.20 Создание новых данных (MGL)
+===================================================
+
+ -- Команда MGL: combine res adat bdat
+     Возвращает в массиве данных RES прямое произведение массивов
+     (наподобие, res[i,j] = adat[i]*bdat[j] и т.д.).
+
+ -- Команда MGL: evaluate res dat idat [`norm=on']
+ -- Команда MGL: evaluate res dat idat jdat [`norm=on']
+ -- Команда MGL: evaluate res dat idat jdat kdat [`norm=on']
+     Возвращает массив данных RES, полученный в результате интерполяции
+     исходного массива в точках других массивов (например,
+     res[i,j]=dat[idat[i,j],jdat[i,j]]). Размеры массивов IDAT, JDAT,
+     KDAT должны совпадать. Координаты в IDAT, JDAT, KDAT полагаются
+     нормированными в диапазон [0,1] (при NORM=`on') или в диапазоны
+     [0,nx], [0,ny], [0,nz] соответственно.
+
+ -- Команда MGL: hist res dat `num v1 v2 [nsub=0]'
+ -- Команда MGL: hist res dat wdat `num v1 v2 [nsub=0]'
+     Возвращает распределение (гистограмму) RES из NUM точек от
+     значений массива DAT в диапазоне [V1, V2]. Массив WDAT задает веса
+     элементов (все веса равны 1 если WDAT не указан). Параметр NSUB
+     задает число дополнительных точек интерполяции (для сглаживания
+     получившейся гистограммы).
+
+ -- Команда MGL: hist res xdat adat
+ -- Команда MGL: hist res xdat ydat adat
+ -- Команда MGL: hist res xdat ydat zdat adat
+     Возвращает распределение (гистограмму) RES от значений массива
+     ADAT, параметрически зависящего от координат {XDAT,YDAT,ZDAT} в
+     диапазоне осей координат. Массив ADAT играет роль веса точки.
+     Число точек в результате RES - максимум из размера RES и 100.
+
+ -- Команда MGL: momentum res dat 'how' ['dir'='z']
+     Возвращает в массиве данных RES момент (1d массив) данных DAT
+     вдоль направления DIR. Строка HOW определяет тип момента. Момент
+     определяется как res_k = \sum_ij how(x_i,y_j,z_k) dat_ij/ \sum_ij
+     a_ij если DIR=`z' и т.д. Координаты `x', `y', `z' - индексы
+     массива в диапазоне [0,1].
+
+ -- Команда MGL: sum res dat 'dir'
+     Возвращает в массиве данных RES результат суммирования DAT вдоль
+     направления(ий) DIR.
+
+ -- Команда MGL: max res dat 'dir'
+     Возвращает в массиве данных RES максимальное значение DAT вдоль
+     направления(ий) DIR.  Gets array which is the maximal data values
+     in given direction or direction(s).
+
+ -- Команда MGL: min res dat 'dir'
+     Возвращает в массиве данных RES минимальное значение DAT вдоль
+     направления(ий) DIR.
+
+ -- Команда MGL: resize res dat `mx [my=1 mz=1]'
+     Возвращает массив данных RES размером MX, MY, MZ со значениями
+     полученными интерполяцией значений массива DAT.
+
+ -- Команда MGL: subdata res dat `xx [yy=: zz=:]'
+     Возвращает в RES подмассив массива данных DAT с фиксированными
+     значениями индексов с положительными значениями. Например,
+     `subdata a b : 2' выделяет третью строку (индексы начинаются с
+     нуля), `subdata a b 4 :' выделяет 5-ую колонку, `subdata a b : :
+     3' выделяет 4-ый срез и т.д.
+
+ -- Команда MGL: trace res dat
+     Возвращает массив REF диагональных элементов DAT[i,i] (для 2D
+     данных) или DAT[i,i,i] (для 3D данных) где i=0...nx-1. В 1D случае
+     возвращается сам массив данных DAT. Размеры массива данных должен
+     быть DAT.ny, DAT.nz >= DAT.nx или DAT.ny, DAT.nz = 1.
+
+ -- Команда MGL: transform dat 'type' real imag
+     Выполняет интегральное преобразование комплексных данных REAL,
+     IMAG в выбранном направлении и возвращает модуль результата в RES.
+     Порядок и тип преобразований задается строкой TYPE: первый символ
+     для x-направления, второй для y-направления, третий для
+     z-направления. Возможные символы: `f' - прямое преобразование
+     Фурье, `i' - обратное преобразование Фурье, `s' - синус
+     преобразование, `c' - косинус преобразование, `h' - преобразование
+     Ханкеля, `n' или ` ' - нет преобразования.
+
+ -- Команда MGL: transforma dat 'type' ampl phase
+     Аналогично предыдущему с заданными амплитудой AMPL и фазой PHASE
+     комплексных чисел.
+
+ -- Команда MGL: stfad res real imag `dn' ['dir'='x']
+     Выполняет оконное преобразование Фурье длиной DN для комплексных
+     данных REAL, IMAG и возвращает модуль результата в RES. Например,
+     для DIR=`x' результат будет иметь размер {int(nx/dn), dn, ny} и
+     будет равен res[i,j,k]=|\sum_d^dn
+     exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn.
+
+ -- Команда MGL: pde res 'ham' ini_re ini_im [`dz=0.1 k0=100']
+     Решает уравнение в частных производных du/dz =
+     i*k0*HAM(p,q,x,y,z,|u|)[u], где p=-i/k0*d/dx, q=-i/k0*d/dy -
+     псевдо-дифференциальные операторы. Параметры INI_RE, INI_IM задают
+     начальное распределение поля. Координаты в уравнении и в решении
+     полагаются в диапазоне осей координат. Замечу, что внутри этот
+     диапазон увеличивается в 3/2 раза для уменьшения отражения от
+     границ расчетного интервала. Параметр DZ задает шаг по
+     эволюционной координате z. В данный момент использован упрощенный
+     алгоритм, когда все "смешанные" члена (типа `x*p'->x*d/dx)
+     исключаются. Например, в 2D случае это функции типа ham = f(p,z) +
+     g(x,z,u). При этом допускаются коммутирующие комбинации (типа
+     `x*q'->x*d/dy). Переменная `u' используется для обозначения
+     амплитуды поля |u|. Это позволяет решать нелинейные задачи -
+     например, нелинейное уравнение Шредингера `ham='p^2+q^2-u^2''.
+     Также можно указать мнимую часть для поглощения (типа `ham =
+     'p^2+i*x*(x>0)''), но только если зависимость от `i' линейная,
+     т.е. ham = hre+i*him. См. раздел *note PDE sample::, для примеров
+     кода и графика.
+
+ -- Команда MGL: ray res 'ham' `x0 y0 z0 p0 q0 v0 [dt=0.1 tmax=10]'
+     Решает систему геометрооптических уравнений d_r_/dt = d HAM/d_p_,
+     d_p_/dt = -d HAM/d_r_. Это гамильтоновы уравнения для траектории
+     частицы в 3D случае. Гамильтониан HAM может зависеть от координат
+     `x', `y', `z', импульсов `p'=px, `q'=py, `v'=pz и времени `t': ham
+     = H(x,y,z,p,q,v,t). Начальная точка (при `t=0') задается
+     переменными {X0, Y0, Z0, P0, Q0, V0}. Параметры DT и TMAX задают
+     шаг и максимальное время интегрирования. Результат RES - массив
+     {x,y,z,p,q,v,t} с размером {7 * int(TMAX/DT+1) }. См. раздел *note
+     Beam tracing sample::, для примеров кода и графика.
+
+ -- Команда MGL: qo2d res 'ham' ini_re ini_im ray [`r=1 k0=100' xx=0
+          yy=0]
+     Решает уравнение в частных производных du/dt =
+     i*k0*HAM(p,q,x,y,|u|)[u] в сопровождающей системе координат, где
+     p=-i/k0*d/dx, q=-i/k0*d/dy - псевдо-дифференциальные операторы.
+     Параметры INI_RE, INI_IM задают начальное распределение поля.
+     Параметр RAY задает опорный луч для сопровождающей системы
+     координат. Можно использовать луч найденный с помощью `ray'.
+     Опорный луч должен быть достаточно гладкий, чтобы система
+     координат была однозначной и для исключения ошибок интегрирования.
+     Если массивы XX и YY указаны, то в них записываются декартовы
+     координаты для каждой точки найденного решения. См. также *note
+     pde::. См. раздел *note Beam tracing sample::, для примеров кода и
+     графика.
+
+ -- Команда MGL: jacobian res xdat ydat [zdat=0]
+     Вычисляет якобиан преобразования {i,j,k} в {XDAT,YDAT,ZDAT}, где
+     координаты {i,j,k} полагаются нормированными в интервал [0,1].
+     Якобиан находится по формуле det||dr_\alpha/d\xi_\beta||, где
+     r={XDAT,YDAT,ZDAT} и \xi={i,j,k}. Все размерности всех массивов
+     должны быть одинаковы. Данные должны быть трехмерными если указаны
+     все 3 массива {XDAT,YDAT,ZDAT} или двумерными если только 2
+     массива {XDAT,YDAT}.
+
+
+File: mathgl_ru.info,  Node: Change data (MGL),  Next: Operators (MGL),  Prev: Make another data (MGL),  Up: MGL interface
+
+8.21 Изменение данных (MGL)
+==========================================
+
+Эти команды изменяют данные вдоль заданного направления(ий) типа
+например дифференцирования, интегрирования и т.д. Направление
+указывается строкой DIR, которая может содержать символы `x', `y' и/или
+`z', вдоль которых изменения будут применены.
+
+ -- Команда MGL: cumsum dat 'dir'
+     Суммирует с накоплением в выбранном направлении(ях).
+   
+ -- Команда MGL: integrate dat 'dir'
+     Выполняет интегрирование (подобно суммированию с накоплением) в
+     выбранном направлении(ях).
+   
+ -- Команда MGL: diff dat 'dir'
+     Выполняет дифференцирование в выбранном направлении(ях).
+
+ -- Команда MGL: diff dat xdat ydat [zdat=0]
+     Выполняет дифференцирование данных DAT, параметрически зависящих
+     от координат, в направлении XDAT с YDAT, ZDAT=constant. Параметр
+     ZDAT может быть опущен, что соответствует 2D случаю. Используются
+     следующие формулы (2D случай): da/dx =
+     (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j), где a_i=da/di, a_j=da/dj
+     обозначает дифференцирование вдоль 1-ой и 2-ой размерности.
+     Похожие формулы используются и в 3D случае. Порядок аргументов
+     можно менять - например, если данные a(i,j) зависят от координат
+     {x(i,j), y(i,j)}, то обычная производная по `x' будет равна `diff
+     a x y', а обычная производная по `y' будет равна `diff a y x'.
+
+ -- Команда MGL: diff2 dat 'dir'
+     Выполняет двойное дифференцирование (как в операторе Лапласа) в
+     выбранном направлении(ях).
+
+ -- Команда MGL: sinfft dat 'dir'
+     Выполняет синус преобразование в выбранном направлении(ях). Синус
+     преобразование есть \sum a_i \sin(k i).
+   
+ -- Команда MGL: cosfft dat 'dir'
+     Выполняет косинус преобразование в выбранном направлении(ях).
+     Синус преобразование есть \sum a_i \cos(k i).
+   
+ -- Команда MGL: hankel dat 'dir'
+     Выполняет преобразование Ханкеля в выбранном направлении(ях).
+     Преобразование Ханкеля есть \sum a_i J_0(k i).
+
+ -- Команда MGL: swap dat 'dir'
+     Меняет местами левую и правую части данных в выбранном
+     направлении(ях). Полезно для отображения результата FFT.
+   
+ -- Команда MGL: roll dat 'dir' num
+     Сдвигает данные на NUM ячеек в выбранном направлении(ях).
+     Соответствует замене индекса на I->(I+NUM)%N.
+
+ -- Команда MGL: mirror dat 'dir'
+     Отражает данные в выбранном направлении(ях). Соответствует замене
+     индекса на I->N-I.
+
+ -- Команда MGL: sew dat ['dir'='xyz' `da=2*pi']
+     Удаляет скачки данных (например, скачки фазы после обратных
+     тригонометрических функций) с периодом DA в выбранном
+     направлении(ях).
+
+ -- Команда MGL: smooth data `type' ['dir'='xyz']
+     Сглаживает данные в выбранном направлении(ях) методом TYPE. Сейчас
+     поддерживаются 4 метода: `0' ничего не делает, `1' линейное
+     усреднение по 3 точкам, `2' линейное усреднение по 5 точкам, `3'
+     квадратичное усреднение по 5 точкам.
+
+ -- Команда MGL: envelop dat ['dir'='x']
+     Находит огибающую данных в выбранном направлении. Только одно
+     направление может быть выбрано за раз.
+
+ -- Команда MGL: normsl dat `v1 v2' ['dir'='z' `keep=on sym=off']
+     Нормирует данные срез-за-срезом в выбранном направлении DIR в
+     интервал [V1,V2]. Если SYM=`on', то используется симметричный
+     интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Если KEEP=`on', то
+     максимальное значение k-го среза ограничено величиной \sqrt{\sum
+     a_ij(k)/\sum a_ij(0)}.
+
+ -- Команда MGL: norm dat `v1 v2 [sym=off dim=0]'
+     Нормирует данные в интервал [V1,V2]. Если SYM=`on', то
+     используется симметричный интервал [-max(|v1|,|v2|),
+     max(|v1|,|v2|)]. Изменения применяются только к срезам >=DIM.
+
+
+File: mathgl_ru.info,  Node: Operators (MGL),  Next: Program flow (MGL),  Prev: Change data (MGL),  Up: MGL interface
+
+8.22 Операторы (MGL)
+=============================
+
+ -- Команда MGL: multo dat dat2
+     Поэлементно умножает массив DAT на DAT2.
+
+ -- Команда MGL: multo dat `val'
+     Умножает каждый элемент на число.
+
+ -- Команда MGL: divto dat dat2
+     Поэлементно делит массив DAT на DAT2.
+
+ -- Команда MGL: divto dat `val'
+     Делит каждый элемент на число.
+
+ -- Команда MGL: addto dat dat2
+     Поэлементно прибавляет DAT2 к массиву DAT.
+
+ -- Команда MGL: addto dat `val'
+     Прибавляет число к каждому элементу.
+
+ -- Команда MGL: subto dat dat2
+     Поэлементно вычитает DAT2 из массива DAT.
+
+ -- Команда MGL: subto dat `val'
+     Вычитает число из каждого элемента.
+
+
+File: mathgl_ru.info,  Node: Program flow (MGL),  Next: Command options (MGL),  Prev: Operators (MGL),  Up: MGL interface
+
+8.23 Программирование (MGL)
+===========================================
+
+Эти команды управляют порядком выполнения других команд (условия,
+циклы, подпрограммы), (пере-)определяют аргументы скрипта и пр.
+
+ -- Команда MGL: chdir 'path'
+     Переходит в папку PATH.
+
+ -- Команда MGL: define $N smth
+     Задает N-ый аргумент скрипта равным SMTH. Отмечу, что SMTH
+     используется как есть (с символами `'' если присутствуют).
+     Выполняется только подстановка других макроопределений $0...$9,
+     $a...$z. Здесь N это цифра (0...9) или буква (a...z).
+
+ -- Команда MGL: define name smth
+     Определяет константу (скаляр) с именем `name' и числовым значением
+     `smth'. Позднее она может быть использована как обычное число.
+   
+ -- Команда MGL: defchr $N smth
+     Задает N-ый аргумент скрипта равным символу с UTF кодом SMTH.
+     Здесь N это цифра (0...9) или буква (a...z).
+   
+ -- Команда MGL: defnum $N smth
+     Задает N-ый аргумент скрипта равным числовому значению SMTH. Здесь
+     N это цифра (0...9) или буква (a...z).
+   
+ -- Команда MGL: defpal $N smth
+     Задает N-ый аргумент скрипта равным символу палитры с индексом,
+     найденным из SMTH. Здесь N это цифра (0...9) или буква (a...z).
+
+ -- Команда MGL: call 'fname' [ARG1 ARG2 ... ARG9]
+     Переходит к выполнению (вызывает) подпрограммы FNAME (или внешнего
+     скрипта, если функция не была найдена). Опциональные аргументы
+     передаются в подпрограмму. См. также *note func::.
+   
+ -- Команда MGL: func 'fname' [narg=0]
+     Определяет подпрограмму с именем FNAME и задает число требуемых
+     аргументов. Аргументы будут помещены в параметры скрипта $1, $2,
+     ... $9. Отмечу, что выполнение основной программы должно быть
+     остановлено до начала определений подпрограмм. См. также *note
+     stop::,  *note return::.
+   
+ -- Команда MGL: return
+     Возвращается из подпрограммы.
+
+ -- Команда MGL: if dat 'cond'
+     Начинает блок команд, выполняемый если каждый элемент DAT
+     удовлетворяет условию COND.
+
+ -- Команда MGL: if `val'
+     Начинает блок команд, выполняемый если `val' не ноль.
+   
+ -- Команда MGL: elseif dat 'cond'
+     Начинает блок команд, выполняемый если предыдущий `if' или
+     `elseif' не был выполнен и каждый элемент DAT удовлетворяет
+     условию COND.
+
+ -- Команда MGL: elseif `val'
+     Начинает блок команд, выполняемый если предыдущий `if' или
+     `elseif' не был выполнен и `val' не ноль.
+   
+ -- Команда MGL: else
+     Начинает блок команд, выполняемый если предыдущий `if' или
+     `elseif' не был выполнен.
+   
+ -- Команда MGL: endif
+     Заканчивает определение блока `if/elseif/else'.
+
+ -- Команда MGL: for $N `v1 v2 [dv=1]'
+     Начинает блок команд, выполняемый в цикле с $N-ым аргументом
+     изменяющимся от V1 до V2 с шагом DV. Здесь N это цифра (0...9) или
+     буква (a...z).
+
+ -- Команда MGL: for $N dat
+     Начинает блок команд, выполняемый в цикле с $N-ым аргументом
+     пробегающим значения массива DAT. Здесь N это цифра (0...9) или
+     буква (a...z).
+   
+ -- Команда MGL: next
+     Заканчивает блок цикла `for'.
+
+ -- Команда MGL: once `val'
+     Определяет код (между `once on' и `once off') который будет
+     выполнен только один раз. Полезно для работы с большими данными в
+     программах типа UDAV.
+   
+ -- Команда MGL: stop
+     Останавливает выполнение скрипта.
+
+
+File: mathgl_ru.info,  Node: Command options (MGL),  Next: Suffixes,  Prev: Program flow (MGL),  Up: MGL interface
+
+8.24 Опции команд (MGL)
+==================================
+
+Опции команд позволяют легко настроить вид отдельного графика не меняя
+глобальных настроек для все рисунка. Опции указываются после команды.
+Каждая опция отделяется от предыдущей символом `;'. Опции работают так,
+что запоминают текущие настройки рисунка, применяют собственные
+настройки, выполняют команду и возвращают глобальные настройки обратно.
+Поэтому использование опций для команд обработки данных или настройки
+графика бесполезно.
+
+   Наиболее часто используемые опции - `xrange, yrange, zrange',
+устанавливающие границы изменения осей координат (и тем самым
+автоматических массивов). Например, команда `plot y; xrange 0.1 0.9'
+построит кривую с x-координатой равно распределенной в интервале 0.1
+... 0.9, а не вдоль текущей оси x.
+
+   Полный список опций: 
+
+ -- Опция MGL: alpha `val'
+ -- Опция MGL: alphadef `val'
+     Задает величину прозрачности поверхности. Значение должно быть в
+     диапазоне [0, 1]. См. также *note alphadef::
+   
+ -- Опция MGL: ambient `val'
+     Задает яркость фонового освещения. Значение должно быть в
+     диапазоне [0, 1]. См. также *note ambient::
+   
+ -- Опция MGL: crange `val1 val2'
+     Задает границы цветовой шкалы. См. также *note crange::
+   
+ -- Опция MGL: xrange `val1 val2'
+     Задает границы изменения координаты x. См. также *note xrange::
+   
+ -- Опция MGL: yrange `val1 val2'
+     Задает границы изменения координаты y. См. также *note yrange::
+   
+ -- Опция MGL: zrange `val1 val2'
+     Задает границы изменения координаты z. См. также *note zrange::
+   
+ -- Опция MGL: cut `val'
+     Задает обрезание точек за пределами осей координат. См. также
+     *note cut::
+   
+ -- Опция MGL: fontsize `val'
+     Задает размер текста. См. также *note font::
+   
+ -- Опция MGL: marksize `val'
+     Задает размер маркеров. См. также *note marksize::
+   
+ -- Опция MGL: meshnum `val'
+     Задает ориентировочное число линий, стрелок, ячеек и пр. См. также
+     *note meshnum::
+   
+ -- Опция MGL: legend 'txt'
+     Добавляет строку 'txt' во внутренний массив записей легенды. Стиль
+     линии и маркера аргумента последней вызванной команды построения
+     *note 1D plotting (MGL)::. См. также *note legend::
+
+
+File: mathgl_ru.info,  Node: Suffixes,  Next: Utilities,  Prev: Command options (MGL),  Up: MGL interface
+
+8.25 Суффиксы переменных
+==========================================
+
+Суффиксы позволяют быстро получить числовую характеристику (размер,
+максимальное или минимальное значение, сумму элементов и т.д.) массива
+данных и использовать ее как число (скаляр) в аргументах. Суффиксы
+начинаются с точки `.' сразу после (без пробелов) имени переменной и
+временного массива. Например, `a.nx' даст размер массива A по оси х,
+`b(1).max' даст максимальное значение второй строки массива B,
+`(c(:,0)^2).sum' даст сумму квадратов элементов первой колонки массива
+C и т.д.
+
+   Полный список суффиксов:
+*nx, ny, nz*
+     Размер массива в направлении x, y, z соответственно.
+
+*max*
+     Максимальное значение массива.
+
+*min*
+     Минимальное значение массива.
+
+*sum*
+     Сумма элементов массива.
+
+*a*
+     Первый элемент массива (элемент с индексами 0,0,0).
+
+*fst*
+     Первое не нулевое значение массива.
+
+*lst*
+     Последнее не нулевое значение массива.
+
+*mx, my, mz*
+     Положение максимума в направлении x, y, z соответственно.
+
+*ax, ay, az, aa*
+     Положение центра масс в направлении x, y, z соответственно или
+     среднее значение массива.
+
+*wx, wy, wz, wa*
+     Ширина в направлении x, y, z соответственно или дисперсия
+     элементов массива.
+
+*sx, sy, sz, sa*
+     Асимметрия в направлении x, y, z соответственно или элементов
+     массива.
+
+*kx, ky, kz, ka*
+     Эксцесс в направлении x, y, z соответственно или элементов массива.
+
+
+File: mathgl_ru.info,  Node: Utilities,  Prev: Suffixes,  Up: MGL interface
+
+8.26 Утилиты для MGL
+==============================
+
+MathGL содержит несколько программ для работы со скриптами MGL. Есть
+утилита для сохранения в растровое (`mgl2png', `mgl2gif') или векторное
+(`mgl2eps', `mgl2svg') изображения. Программа `mglview' показывает
+результат выполнения скрипта MGL и позволяет вращать и настраивать
+график. Также можно транслировать MGL скрипт в C++ файл с помощью
+программы `mgl2cpp'.
+
+   Все эти программы имеют схожий набор аргументов. Первым идет имя
+скрипта, а вторым идет имя выходного файлы (может быть опущено),
+последние аргументы - опции скрипта и программы. К опциям относятся
+параметры скрипта (это `$0, $1, ... $9') и настройки локали. Параметры
+скрипта имеют формат `-Nval', где N=0,1...9 - номер параметра, val -
+его значние. Например, опция `-1test' заменит `$1' на `test' в скрипте.
+Опция -Lval устанавливает локаль в значение val. Например, `-Lutf8'
+будет использовать UTF-8 в скрипте.
+
+   Также можно создавать анимированные изображения GIF или набор JPEG
+файлов с именами `frameNNNN.jpg' (где `NNNN' - номер кадра). Для этого
+в скрипте надо указать параметры анимации для каждого кадра (строками с
+коментариями `##a val' или опциями `-Aval') или в цикле (строкой с
+комментарием `##с v1 v2 [dv]' или опцию `-Cn1:n2'), которые будут
+подставлены в качестве параметра `$0' при последовательном вызове
+скрипта. Для сохранения кадров в JPEG просто добавьте команду `write
+''' в конце скрипта.
+
+
+File: mathgl_ru.info,  Node: Samples,  Next: TeX-like symbols,  Prev: MGL interface,  Up: Top
+
+9 Примеры использования MathGL
+**************************************************
+
+Эта глава содержит множество примеров кода для всех типов графиков,
+наиболее важных возможностей библиотеки и советов. Аналогичные примеры
+(с картинками) можно найти на `http://mathgl.sf.net/pictures.html'.
+MБольшинство примеров содержат код на 5 языках: C++, MGL, C, Fortran и
+Python. Однако, в некоторых я помещал только C++ код, поскольку
+соответствующий код слишком большой и ясно как его можно переписать на
+другие языки.  Минимальный код для запуска и просмотра примеров на
+различных языках следующий.  *C++ код* Для компиляции используйте: `g++
+-o sample sample.cpp -lmgl'.  #include <mgl/mgl_zb.h>
+int main()
+{
+    mglGraph *gr = new mglGraphZB;
+    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // put sample code here
+    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    gr->ShowImage();    delete gr;
+    return 0;
+}
+ *MGL скрипт* Для просмотра используйте: `mglview sample.mgl'.  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# put sample code here
+#   -->   you may sample as is :)
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ *C-ый код* Для компиляции используйте: `gcc -o sample sample.c -lmgl'.  #include <mgl/mgl_c.h>
+int main()
+{
+    HMGL gr = mgl_create_graph_zb(600,400);
+    /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    /* put sample code here              */
+    /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    mgl_show_image(gr,"",0);
+    mgl_delete_graph(gr);
+    return 0;
+}
+ *Fortran* Для компиляции используйте: `gfortran -o sample sample.f90
+-lmgl'. Замечу, что фортран не имеет проверки аргументов. Поэтому
+обратите особое внимание на передаваемые аргументы - не путайте целые и
+действительные (с плавающей точкой) числа/аргументы. Никакого контроля
+в компиляторе для этого не предусмотрено!!!  integer gr, mgl_create_graph_zb
+gr = mgl_create_graph_zb(600,400)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! put sample code here
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+call mgl_show_image(gr,'',0)
+call mgl_delete_graph(gr)
+end
+ *Python* Для просмотра используйте: `python sample.py'.  from mathgl import *
+gr = mglGraph();
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# put sample code here
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+gr.ShowImage();
+
+* Menu:
+
+* 1D plotting samples::
+* 2D plotting samples::
+* 3D plotting samples::
+* Dual plotting samples::
+* Basic features::
+* Additional features::
+* Advanced features::
+
+
+File: mathgl_ru.info,  Node: 1D plotting samples,  Next: 2D plotting samples,  Up: Samples
+
+9.1 Примеры 1D графиков
+======================================
+
+* Menu:
+
+* Plot sample::
+* Radar sample::
+* Tens sample::
+* Area sample::
+* Area gradient sample::
+* Bars sample::
+* Bars 2 colors sample::
+* Bars above sample::
+* Bars fall sample::
+* Barh sample::
+* Step sample::
+* Stem sample::
+* Region sample::
+* Region gradient sample::
+* Error sample::
+* BoxPlot sample::
+* Mark sample::
+* TextMark sample::
+* Tube sample::
+* Text sample::
+* Torus sample::
+* Chart sample::
+* Pie chart sample::
+* Ring chart sample::
+
+
+File: mathgl_ru.info,  Node: Plot sample,  Next: Radar sample,  Up: 1D plotting samples
+
+9.1.1 Plot - пример использования
+----------------------------------------------------
+
+ [image src="../png/plot.png" ]
+
+*C++ код* mglData y(50,3);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr->Box();
+gr->Plot(y);
+ *MGL скрипт*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y
+ *C-ый код* HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_delete_data(y);
+ *Fortran* integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_delete_data(y)
+ *Python* y = mglData(50,3);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr.Box();
+gr.Plot(y);
+
+
+File: mathgl_ru.info,  Node: Radar sample,  Next: Tens sample,  Prev: Plot sample,  Up: 1D plotting samples
+
+9.1.2 Radar - пример использования
+-----------------------------------------------------
+
+ [image src="../png/radar.png" ]
+
+*C++ код* mglData y(10,3);
+y.Modify("0.4*sin(pi*(2*x+y/2))+0.1*rnd");
+gr->Radar(y,"#");
+ *MGL скрипт*
+new y 10 3
+modify y '0.4*sin(pi*(2*x+y/2))+0.1*rnd'
+radar y '#'
+ *C-ый код* HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,"0.4*sin(pi*(2*x+y/2))+0.1*rnd",0);
+mgl_radar(gr,y,"#",-1);
+mgl_delete_data(y);
+ *Fortran* integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.4*sin(pi*(2*x+y/2))+0.1*rnd',0)
+call mgl_radar(gr,y,'#',-1.)
+call mgl_delete_data(y)
+ *Python* y = mglData(10,3);
+y.Modify("0.4*sin(pi*(2*x+y/2))+0.1*rnd");
+gr.Radar(y,"#");
+
+
+File: mathgl_ru.info,  Node: Tens sample,  Next: Area sample,  Prev: Radar sample,  Up: 1D plotting samples
+
+9.1.3 Tens - пример использования
+----------------------------------------------------
+
+ [image src="../png/tens.png" ]
+
+*C++ код* mglData y(50), c(50);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)");
+c.Modify("sin(2*pi*x)");
+gr->Box();
+gr->Tens(y,c);
+ *MGL скрипт*
+new y 50
+new c 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify c 'sin(2*pi*x)'
+box
+tens y c
+ *C-ый код* HMDT y = mgl_create_data_size(50,1,1);
+HMDT c = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(c,"sin(2*pi*x)",0);
+mgl_box(gr,1);
+mgl_tens(gr,y,c,NULL);
+mgl_delete_data(y);
+mgl_delete_data(c);
+ *Fortran* integer y, c, mgl_create_data_size
+y = mgl_create_data_size(50,1,1)
+c = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(c,'sin(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_tens(gr,y,'')
+call mgl_delete_data(y)
+call mgl_delete_data(c)
+ *Python* y = mglData(50);
+c = mglData(50);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)");
+c.Modify("sin(2*pi*x)");
+gr.Box();
+gr.Tens(y,c);
+
+
+File: mathgl_ru.info,  Node: Area sample,  Next: Area gradient sample,  Prev: Tens sample,  Up: 1D plotting samples
+
+9.1.4 Area - пример использования
+----------------------------------------------------
+
+ [image src="../png/area.png" ]
+
+*C++ код* mglData y(50,3);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Area(y);
+ *MGL скрипт*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y
+ *C-ый код* HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_area(gr,y,NULL);
+mgl_delete_data(y);
+ *Fortran* integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_area(gr,y,'')
+call mgl_delete_data(y)
+ *Python* y = mglData(50,3);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Area(y);
+
+
+File: mathgl_ru.info,  Node: Area gradient sample,  Next: Bars sample,  Prev: Tens sample,  Up: 1D plotting samples
+
+9.1.5 Area с градиентной заливкой - пример использования
+-----------------------------------------------------------------------------------------------
+
+ [image src="../png/area_2.png" ]
+
+*C++ код* mglData y(50,3);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Area(y,"cbgGyr");
+ *MGL скрипт*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y 'cbgGyr'
+ *C-ый код* HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_area(gr,y,"cbgGyr");
+mgl_delete_data(y);
+ *Fortran* integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_area(gr,y,'cbgGyr')
+call mgl_delete_data(y)
+ *Python* y = mglData(50,3);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Area(y,"cbgGyr");
+
+
+File: mathgl_ru.info,  Node: Bars sample,  Next: Bars 2 colors sample,  Prev: Area gradient sample,  Up: 1D plotting samples
+
+9.1.6 Bars - пример использования
+----------------------------------------------------
+
+ [image src="../png/bars.png" ]
+
+*C++ код* mglData y(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Bars(y);
+ *MGL скрипт*
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y
+ *C-ый код* HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,"0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,NULL);
+mgl_delete_data(y);
+ *Fortran* integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'')
+call mgl_delete_data(y)
+ *Python* y = mglData(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y);
+
+
+File: mathgl_ru.info,  Node: Bars 2 colors sample,  Next: Bars above sample,  Prev: Bars sample,  Up: 1D plotting samples
+
+9.1.7 Bars (2 цвета) - пример использования
+-------------------------------------------------------------------
+
+ [image src="../png/bars_2.png" ]
+
+*C++ код* mglData y(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Bars(y,"cbgGyr");
+ *MGL скрипт*
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'cbgGyr'
+ *C-ый код* HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,"0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,"cbgGyr");
+mgl_delete_data(y);
+ *Fortran* integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'cbgGyr')
+call mgl_delete_data(y)
+ *Python* y = mglData(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,"cbgGyr");
+
+
+File: mathgl_ru.info,  Node: Bars above sample,  Next: Bars fall sample,  Prev: Bars 2 colors sample,  Up: 1D plotting samples
+
+9.1.8 Bars (один над другим) - пример использования
+-----------------------------------------------------------------------------------
+
+ [image src="../png/bars_a.png" ]
+
+*C++ код* mglData y(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Bars(y,"a");
+ *MGL скрипт*
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'a'
+ *C-ый код* HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,"0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,"a");
+mgl_delete_data(y);
+ *Fortran* integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'a')
+call mgl_delete_data(y)
+ *Python* y = mglData(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,"a");
+
+
+File: mathgl_ru.info,  Node: Bars fall sample,  Next: Bars above sample,  Prev: Bars above sample,  Up: 1D plotting samples
+
+9.1.9 Bars "водопад" - пример использования
+---------------------------------------------------------------------
+
+ [image src="../png/bars_f.png" ]
+
+*C++ код* mglData y(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Bars(y,"f");
+ *MGL скрипт*
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'f'
+ *C-ый код* HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,"0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,"f");
+mgl_delete_data(y);
+ *Fortran* integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'f')
+call mgl_delete_data(y)
+ *Python* y = mglData(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,"f");
+
+
+File: mathgl_ru.info,  Node: Barh sample,  Next: Step sample,  Prev: Bars fall sample,  Up: 1D plotting samples
+
+9.1.10 Barh - пример использования
+-----------------------------------------------------
+
+ [image src="../png/barh.png" ]
+
+*C++ код* mglData y(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Barh(y);
+ *MGL скрипт*
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+barh y
+ *C-ый код* HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,"0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_barh(gr,y,NULL);
+mgl_delete_data(y);
+ *Fortran* integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_barh(gr,y,'')
+call mgl_delete_data(y)
+ *Python* y = mglData(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Barh(y);
+
+
+File: mathgl_ru.info,  Node: Step sample,  Next: Stem sample,  Prev: Barh sample,  Up: 1D plotting samples
+
+9.1.11 Step - пример использования
+-----------------------------------------------------
+
+ [image src="../png/step.png" ]
+
+*C++ код* mglData y(50,3);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr->Box();
+gr->Step(y);
+ *MGL скрипт*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+step y
+ *C-ый код* HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_box(gr,1);
+mgl_step(gr,y,NULL);
+mgl_delete_data(y);
+ *Fortran* integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_box(gr,1)
+call mgl_step(gr,y,'')
+call mgl_delete_data(y)
+ *Python* y = mglData(50,3);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr.Box();
+gr.Step(y);
+
+
+File: mathgl_ru.info,  Node: Stem sample,  Next: Region sample,  Prev: Step sample,  Up: 1D plotting samples
+
+9.1.12 Stem - пример использования
+-----------------------------------------------------
+
+ [image src="../png/stem.png" ]
+
+*C++ код* mglData y(50,3);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Stem(y,"o");
+ *MGL скрипт*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+stem y 'o'
+ *C-ый код* HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_stem(gr,y,"o");
+mgl_delete_data(y);
+ *Fortran* integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_stem(gr,y,'o')
+call mgl_delete_data(y)
+ *Python* y = mglData(50,3);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Stem(y,"o");
+
+
+File: mathgl_ru.info,  Node: Region sample,  Next: Region gradient sample,  Prev: Stem sample,  Up: 1D plotting samples
+
+9.1.13 Region - пример использования
+-------------------------------------------------------
+
+ [image src="../png/region.png" ]
+
+*C++ код* mglData y1(50), y2(50);
+y1.Modify("0.3*sin(2*pi*x)");
+y2.Modify("0.5+0.3*cos(2*pi*x)");
+gr->Box();
+gr->Region(y1,y2,"r");
+gr->Plot(y1,"k2");
+gr->Plot(y2,"k2");
+ *MGL скрипт*
+new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'r'
+plot y1 'k2'
+plot y2 'k2'
+ *C-ый код* HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,"0.3*sin(2*pi*x)",0);
+mgl_data_modify(y2,"0.5+0.3*cos(2*pi*x)",0);
+mgl_box(gr,1);
+mgl_region(gr,y1,y2,"r",1);
+mgl_plot(gr,y1,"k2");
+mgl_plot(gr,y2,"k2");
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+ *Fortran* integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,'0.3*sin(2*pi*x)',0);
+call mgl_data_modify(y2,'0.5+0.3*cos(2*pi*x)',0);
+call mgl_box(gr,1);
+call mgl_region(gr,y1,y2,'r',1);
+call mgl_plot(gr,y1,'k2');
+call mgl_plot(gr,y2,'k2');
+call mgl_delete_data(y1);
+call mgl_delete_data(y2);
+ *Python* y1, y2, x = mglData(50), mglData(50), mglData(50);
+y1.Modify("0.3*sin(2*pi*x)");
+y2.Modify("0.5+0.3*cos(2*pi*x)");
+gr.Box();
+gr.Region(y1,y2,"r");
+gr.Plot(y1,"k2");
+gr.Plot(y2,"k2");
+
+
+File: mathgl_ru.info,  Node: Region gradient sample,  Next: Error sample,  Prev: Region sample,  Up: 1D plotting samples
+
+9.1.14 Region с градиентной заливкой - пример использования
+--------------------------------------------------------------------------------------------------
+
+ [image src="../png/region_2.png" ]
+
+*C++ код* mglData y1(50), y2(50);
+y1.Modify("0.3*sin(2*pi*x)");
+y2.Modify("0.5+0.3*cos(2*pi*x)");
+gr->Box();
+gr->Region(y1,y2,"yr");
+gr->Plot(y1,"k2");
+gr->Plot(y2,"k2");
+ *MGL скрипт*
+new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'yr'
+plot y1 'k2'
+plot y2 'k2'
+ *C-ый код* HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,"0.3*sin(2*pi*x)",0);
+mgl_data_modify(y2,"0.5+0.3*cos(2*pi*x)",0);
+mgl_box(gr,1);
+mgl_region(gr,y1,y2,"yr",1);
+mgl_plot(gr,y1,"k2");
+mgl_plot(gr,y2,"k2");
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+ *Fortran* integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,'0.3*sin(2*pi*x)',0);
+call mgl_data_modify(y2,'0.5+0.3*cos(2*pi*x)',0);
+call mgl_box(gr,1);
+call mgl_region(gr,y1,y2,'yr',1);
+call mgl_plot(gr,y1,'k2');
+call mgl_plot(gr,y2,'k2');
+call mgl_delete_data(y1);
+call mgl_delete_data(y2);
+ *Python* y1, y2, x = mglData(50), mglData(50), mglData(50);
+y1.Modify("0.3*sin(2*pi*x)");
+y2.Modify("0.5+0.3*cos(2*pi*x)");
+gr.Box();
+gr.Region(y1,y2,"yr");
+gr.Plot(y1,"k2");
+gr.Plot(y2,"k2");
+
+
+File: mathgl_ru.info,  Node: Error sample,  Next: BoxPlot sample,  Prev: Region gradient sample,  Up: 1D plotting samples
+
+9.1.15 Error - пример использования
+------------------------------------------------------
+
+ [image src="../png/error.png" ]
+
+*C++ код* mglData y(50,1), x0(10), y0(10), ex(10), ey(10);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+x0.Modify("2*x-1 + 0.1*rnd-0.05");
+y0.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1");
+ey.Modify("0.2"); ex.Modify("0.1");
+gr->Box();
+gr->Plot(y);
+gr->Error(x0,y0,ex,ey,"ko");
+ *MGL скрипт*
+new y 50
+new x0 10
+new y0 10
+new ex 10
+new ey 10
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify x0 '2*x-1 + 0.1*rnd-0.05'
+modify y0 '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1'
+modify ey '0.2'
+modify ex '0.1'
+box
+plot y
+error x0 y0 ex ey 'ko'
+ *C-ый код* HMDT y = mgl_create_data_size(50,1,1);
+HMDT x0 = mgl_create_data_size(10,1,1);
+HMDT y0 = mgl_create_data_size(10,1,1);
+HMDT ex = mgl_create_data_size(10,1,1);
+HMDT ey = mgl_create_data_size(10,1,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(x0,"2*x-1 + 0.1*rnd-0.05",0);
+mgl_data_modify(y0,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1",0);
+mgl_data_modify(ey,"0.2",0); mgl_data_modify(ex,"0.1",0);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_error_exy(gr,x0,y0,ex,ey,"ko");
+mgl_delete_data(x0); mgl_delete_data(y0);
+mgl_delete_data(ex); mgl_delete_data(ey);
+mgl_delete_data(y);
+ *Fortran* integer y, x0, y0, ex, ey, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+x0 = mgl_create_data_size(10,1,1)
+y0 = mgl_create_data_size(10,1,1)
+ex = mgl_create_data_size(10,1,1)
+ey = mgl_create_data_size(10,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(x0,'2*x-1 + 0.1*rnd-0.05',0);
+call mgl_data_modify(y0,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + &
+                         0.2*sin(pi*x) + 0.2*rnd-0.1',0);
+call mgl_data_modify(ey,'0.2',0)
+call mgl_data_modify(ex,'0.1',0);
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_error_exy(gr,x0,y0,ex,ey,'ko')
+call mgl_delete_data(x0)
+call mgl_delete_data(y0)
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(y)
+ *Python* y, x0, y0, ex, ey = mglData(50,1), mglData(10), mglData(10), mglData(10), mglData(10);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+x0.Modify("2*x-1+0.1*rnd-0.05");
+y0.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)+0.2*rnd-0.1");
+ey.Modify("0.2");   ex.Modify("0.1");
+gr.Box();           gr.Plot(y);
+gr.Error(x0,y0,ex,ey,"ko");
+
+
+File: mathgl_ru.info,  Node: BoxPlot sample,  Next: Mark sample,  Prev: Error sample,  Up: 1D plotting samples
+
+9.1.16 BoxPlot - пример использования
+--------------------------------------------------------
+
+ [image src="../png/boxplot.png" ]
+
+*C++ код* mglData a(10,7);
+a.Modify("(2*rnd-1)^3/2");
+gr->Box();
+gr->BoxPlot(a);
+gr->Plot(a," ko");
+ *MGL скрипт*
+new a 10 7
+modify a '(2*rnd-1)^3/2'
+box
+boxplot a
+plot a ' ko'
+ *C-ый код* HMDT a = mgl_create_data_size(10,7,1);
+mgl_data_modify(a,"(2*rnd-1)^3/2",0);
+mgl_box(gr,1);
+mgl_plot(gr,a," ko");
+mgl_boxplot(gr,a,NULL);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+y = mgl_create_data_size(10,7,1)
+call mgl_data_modify(a,'(2*rnd-1)^3/2',0);
+call mgl_box(gr,1)
+call mgl_plot(gr,a,' ko')
+call mgl_boxplot(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(10,7);
+a.Modify("(2*rnd-1)^3/2");
+gr.Box();
+gr.Plot(a," ko");
+gr.BoxPlot(a);
+
+
+File: mathgl_ru.info,  Node: Mark sample,  Next: TextMark sample,  Prev: BoxPlot sample,  Up: 1D plotting samples
+
+9.1.17 Mark - пример использования
+-----------------------------------------------------
+
+ [image src="../png/mark.png" ]
+
+*C++ код* mglData y(50,3), y1(50);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+y1.Modify("0.5+0.3*cos(2*pi*x)");
+gr->Box();
+gr->Mark(y,y1,"bs");
+ *MGL скрипт*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+mark y y1 'bs'
+ *C-ый код* HMDT y = mgl_create_data_size(50,3,1);
+HMDT y1 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_data_modify(y1,"0.5+0.3*cos(2*pi*x)",0);
+mgl_box(gr,1);
+mgl_mark_y(gr,y,y1,"bs");
+mgl_delete_data(y);
+mgl_delete_data(y1);
+ *Fortran* integer y, y1, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+y1 = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_data_modify(y1,'0.5+0.3*cos(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_mark_y(gr,y,y1,'bs')
+call mgl_delete_data(y)
+call mgl_delete_data(y1)
+ *Python* y, y1 = mglData(50,3), mglData(50);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);     y.Modify("cos(2*pi*x)",2);
+y1.Modify("0.5+0.3*cos(2*pi*x)");
+gr.Box();
+gr.Mark(y,y1,"bs");
+
+
+File: mathgl_ru.info,  Node: TextMark sample,  Next: Tube sample,  Prev: Mark sample,  Up: 1D plotting samples
+
+9.1.18 TextMark - пример использования
+---------------------------------------------------------
+
+ [image src="../png/textmark.png" ]
+
+*C++ код* mglData y(50,3), y1(50);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+y1.Modify("0.5+0.3*cos(2*pi*x)");
+gr->Box();
+gr->TextMark(y,y1,"\\gamma");
+ *MGL скрипт*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+textmark y y1 '\gamma'
+ *C-ый код* HMDT y, y1;
+y = mgl_create_data_size(50,3,1);
+y1 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_data_modify(y1,"0.5+0.3*cos(2*pi*x)",0);
+mgl_box(gr,1);
+mgl_textmark_yr(gr,y,y1,"\\gamma","");
+mgl_delete_data(y);
+mgl_delete_data(y1);
+ *Fortran* integer y, y1, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+y1 = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_data_modify(y1,'0.5+0.3*cos(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_textmark_yr(gr,y,y1,'\gamma','')
+call mgl_delete_data(y)
+call mgl_delete_data(y1)
+ *Python* y, y1 = mglData(50,3), mglData(50);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);     y.Modify("cos(2*pi*x)",2);
+y1.Modify("0.5+0.3*cos(2*pi*x)");
+gr.Box();
+gr.TextMark(y,y1,"\\gamma");
+
+
+File: mathgl_ru.info,  Node: Tube sample,  Next: Text sample,  Prev: TextMark sample,  Up: 1D plotting samples
+
+9.1.19 Tube - пример использования
+-----------------------------------------------------
+
+ [image src="../png/tube.png" ]
+
+*C++ код* mglData y(50,3);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Tube(y,0.05);
+ *MGL скрипт*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+rotate 40 60
+light on
+box
+tube y 0.05
+ *C-ый код* HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_tube(gr,y,0.05,NULL);
+mgl_delete_data(y);
+ *Fortran* integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_tube(gr,y,0.05,'')
+call mgl_delete_data(y)
+ *Python* y = mglData(50,3);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);  y.Modify("cos(2*pi*x)",2);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Tube(y,0.05);
+
+
+File: mathgl_ru.info,  Node: Text sample,  Next: Torus sample,  Prev: Tube sample,  Up: 1D plotting samples
+
+9.1.20 Text - пример использования
+-----------------------------------------------------
+
+ [image src="../png/text.png" ]
+
+*C++ код* mglData y(50,3);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr->Box();
+gr->Plot(y.SubData(-1,0));
+gr->Text(y,"This is very long string drawn along a curve",":k");
+gr->Text(y,"Another string drawn above a curve","T:r");
+ *MGL скрипт*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y(:,0)
+text y 'This is very long string drawn along a curve' ':k'
+text y 'Another string drawn above a curve' 'T:r'
+ *C-ый код* HMDT y = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_text_y(gr,y,"This is very long string drawn along a curve",":k",-1.);
+mgl_text_y(gr,y,"Another string drawn above a curve","T:r",-1.);
+mgl_delete_data(y);
+ *Fortran* integer y, mgl_create_data_size
+y = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_text_y(gr,y,'This is very long string drawn along a curve',':k',-1.)
+call mgl_text_y(gr,y,'Another string drawn above a curve','T:r',-1.)
+call mgl_delete_data(y)
+ *Python* y = mglData(50,3);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);     y.Modify("cos(2*pi*x)",2);
+gr.Box();
+gr.Plot(y.SubData(-1,0));
+gr.Text(y,"This is very long string drawn along a curve",":k");
+gr.Text(y,"Another string drawn above a curve","T:r");
+
+
+File: mathgl_ru.info,  Node: Torus sample,  Next: Chart sample,  Prev: Text sample,  Up: 1D plotting samples
+
+9.1.21 Torus - пример использования
+------------------------------------------------------
+
+ [image src="../png/torus.png" ]
+
+*C++ код* mglData y1(50), y2(50);
+y1.Modify("0.5+0.3*cos(2*pi*x)");
+y2.Modify("0.3*sin(2*pi*x)");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Torus(y1,y2,"pz");
+ *MGL скрипт*
+new y1 50
+new y2 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+rotate 40 60
+light on
+box
+torus y1 y2 'pz'
+ *C-ый код* HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,"0.5+0.3*cos(2*pi*x)",0);
+mgl_data_modify(y2,"0.3*sin(2*pi*x)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_torus(gr,y1,y2,"pz");
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+ *Fortran* integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,"0.5+0.3*cos(2*pi*x)",0);
+call mgl_data_modify(y2,"0.3*sin(2*pi*x)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_torus(gr,y1,y2,'pz')
+call mgl_delete_data(y1)
+call mgl_delete_data(y2)
+ *Python* y1, y2 = mglData(50), mglData(50);
+y1.Modify("0.5+0.3*cos(2*pi*x)");
+y2.Modify("0.3*sin(2*pi*x)");
+gr.Rotate(40,60);    gr.Light(True);
+gr.Box();
+gr.Torus(y1,y2,"pz");
+
+
+File: mathgl_ru.info,  Node: Chart sample,  Next: Pie chart sample,  Prev: Torus sample,  Up: 1D plotting samples
+
+9.1.22 Chart - пример использования
+------------------------------------------------------
+
+ [image src="../png/chart.png" ]
+
+*C++ код* mglData ch(7,2);
+ch.Modify("rnd+0.1");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Chart(ch,"#");
+ *MGL скрипт*
+new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+box
+chart ch
+ *C-ый код* HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,"rnd+0.1",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_chart(gr,ch,"#");
+mgl_delete_data(ch);
+ *Fortran* integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'#')
+call mgl_delete_data(ch)
+ *Python* ch = mglData(7,2);  ch.Modify("rnd+0.1");
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Chart(ch,"#");
+
+
+File: mathgl_ru.info,  Node: Pie chart sample,  Next: Ring chart sample,  Prev: Chart sample,  Up: 1D plotting samples
+
+9.1.23 Pie chart - пример использования
+----------------------------------------------------------
+
+ [image src="../png/pie_chart.png" ]
+
+*C++ код* mglData ch(7,2);
+ch.Modify("rnd+0.1");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->SetFunc("(y+1)/2*cos(pi*x)","(y+1)/2*sin(pi*x)");
+gr->Box();
+gr->Chart(ch,"bgr cmy#");
+ *MGL скрипт*
+new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+1)/2*cos(pi*x)' '(y+1)/2*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+ *C-ый код* HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,"rnd+0.1",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_func(gr,"(y+1)/2*cos(pi*x)","(y+1)/2*sin(pi*x)",0);
+mgl_box(gr,1);
+mgl_chart(gr,ch,"bgr cmy#");
+mgl_delete_data(ch);
+ *Fortran* integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_func(gr,'(y+1)/2*cos(pi*x)','(y+1)/2*sin(pi*x)','');
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'bgr cmy#')
+call mgl_delete_data(ch)
+ *Python* ch = mglData(7,2);  ch.Modify("rnd+0.1");
+gr.Rotate(40,60);   gr.Light(True);
+gr.SetFunc("(y+1)/2*cos(pi*x)","(y+1)/2*sin(pi*x)");
+gr.Box();
+gr.Chart(ch,"bgr cmy#");
+
+
+File: mathgl_ru.info,  Node: Ring chart sample,  Prev: Pie chart sample,  Up: 1D plotting samples
+
+9.1.24 Ring chart - пример использования
+-----------------------------------------------------------
+
+ [image src="../png/ring_chart.png" ]
+
+*C++ код* mglData ch(7,2);
+ch.Modify("rnd+0.1");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->SetFunc("(y+2)/3*cos(pi*x)","(y+2)/3*sin(pi*x)");
+gr->Box();
+gr->Chart(ch,"bgr cmy#");
+ *MGL скрипт*
+new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+2)/3*cos(pi*x)' '(y+2)/3*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+ *C-ый код* HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,"rnd+0.1",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_func(gr,"(y+2)/3*cos(pi*x)","(y+2)/3*sin(pi*x)",0);
+mgl_box(gr,1);
+mgl_chart(gr,ch,"bgr cmy#");
+mgl_delete_data(ch);
+ *Fortran* integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_func(gr,'(y+2)/3*cos(pi*x)','(y+2)/3*sin(pi*x)','');
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'bgr cmy#')
+call mgl_delete_data(ch)
+ *Python* ch = mglData(7,2);  ch.Modify("rnd+0.1");
+gr.Rotate(40,60);   gr.Light(True);
+gr.SetFunc("(y+2)/3*cos(pi*x)","(y+2)/3*sin(pi*x)");
+gr.Box();
+gr.Chart(ch,"bgr cmy#");
+
+
+File: mathgl_ru.info,  Node: 2D plotting samples,  Next: 3D plotting samples,  Prev: 1D plotting samples,  Up: Samples
+
+9.2 Примеры 2D графиков
+======================================
+
+* Menu:
+
+* Surf sample::
+* Transparent surface sample::
+* Surface in fog sample::
+* Sharp colors sample::
+* Mesh sample::
+* Fall sample::
+* Belt sample::
+* Tile sample::
+* Boxs sample::
+* Dens sample::
+* Cont sample::
+* ContF sample::
+* ContD sample::
+* Axial sample::
+* Grad sample::
+
+
+File: mathgl_ru.info,  Node: Surf sample,  Next: Transparent surface sample,  Up: 2D plotting samples
+
+9.2.1 Surf - пример использования
+----------------------------------------------------
+
+ [image src="../png/surf.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Surf(a);
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Surf(a);
+
+
+File: mathgl_ru.info,  Node: Transparent surface sample,  Next: Surface in fog sample,  Prev: Surf sample,  Up: 2D plotting samples
+
+9.2.2 Transparent surface - пример использования
+-------------------------------------------------------------------
+
+ [image src="../png/surf_alpha.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Alpha(true);
+gr->Box();
+gr->Surf(a);
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surf a
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Alpha(True);
+gr.Surf(a);
+
+
+File: mathgl_ru.info,  Node: Surface in fog sample,  Next: Sharp colors sample,  Prev: Transparent surface sample,  Up: 2D plotting samples
+
+9.2.3 Surface in fog - пример использования
+--------------------------------------------------------------
+
+ [image src="../png/surf_fog.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Fog(1);
+gr->Box();
+gr->Surf(a);
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+fog 1
+box
+surf a
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_fog(gr,1.,0.25);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_fog(gr,1.,0.25)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Fog(1);
+gr.Surf(a);
+
+
+File: mathgl_ru.info,  Node: Sharp colors sample,  Next: Mesh sample,  Prev: Surface in fog sample,  Up: 2D plotting samples
+
+9.2.4 Sharp colors - пример использования
+------------------------------------------------------------
+
+ [image src="../png/surf_sl.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Surf(a,"BbcyrR|");
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a 'BbcyrR|'
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,"BbcyrR|");
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'BbcyrR|')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Surf(a,"BbcyrR|");
+
+
+File: mathgl_ru.info,  Node: Mesh sample,  Next: Fall sample,  Prev: Sharp colors sample,  Up: 2D plotting samples
+
+9.2.5 Mesh - пример использования
+----------------------------------------------------
+
+ [image src="../png/mesh.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Box();
+gr->Mesh(a);
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+mesh a
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_mesh(gr,a,0);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_mesh(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Mesh(a);
+
+
+File: mathgl_ru.info,  Node: Fall sample,  Next: Belt sample,  Prev: Mesh sample,  Up: 2D plotting samples
+
+9.2.6 Fall - пример использования
+----------------------------------------------------
+
+ [image src="../png/fall.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Box();
+gr->Fall(a);
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+fall a
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_fall(gr,a,0);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_fall(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Fall(a);
+
+
+File: mathgl_ru.info,  Node: Belt sample,  Next: Tile sample,  Prev: Fall sample,  Up: 2D plotting samples
+
+9.2.7 Belt - пример использования
+----------------------------------------------------
+
+ [image src="../png/belt.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Belt(a);
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+belt a
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_belt(gr,a,0);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_belt(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Belt(a);
+
+
+File: mathgl_ru.info,  Node: Tile sample,  Next: Boxs sample,  Prev: Belt sample,  Up: 2D plotting samples
+
+9.2.8 Tile - пример использования
+----------------------------------------------------
+
+ [image src="../png/tile.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Tile(a);
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+tile a
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_tile(gr,a,0);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_tile(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Tile(a);
+
+
+File: mathgl_ru.info,  Node: Boxs sample,  Next: Dens sample,  Prev: Tile sample,  Up: 2D plotting samples
+
+9.2.9 Boxs - пример использования
+----------------------------------------------------
+
+ [image src="../png/boxs.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);  gr->Light(true);
+gr->Org = mglPoint(0,0,0);
+gr->Box();
+gr->Boxs(a);
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+origin 0 0 0
+box
+boxs a
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_boxs(gr,a,0,0.);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_origin(gr,0.,0.,0.);
+call mgl_box(gr,1)
+call mgl_boxs(gr,a,'',0.)
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);       gr.Light(True);
+gr.SetOrigin(0.,0.,0.); gr.Box();
+gr.Boxs(a);
+
+
+File: mathgl_ru.info,  Node: Dens sample,  Next: Cont sample,  Prev: Boxs sample,  Up: 2D plotting samples
+
+9.2.10 Dens - пример использования
+-----------------------------------------------------
+
+ [image src="../png/dens.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Box();
+gr->Dens(a);
+gr->Colorbar();
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+dens a
+colorbar
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_box(gr,1);
+mgl_dens(gr,a,0,0);
+mgl_colorbar(gr,"",0);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_box(gr,1)
+call mgl_dens(gr,a,'',0)
+call mgl_colorbar(gr,'',0)
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Box();
+gr.Dens(a);
+gr.Colorbar();
+
+
+File: mathgl_ru.info,  Node: Cont sample,  Next: ContF sample,  Prev: Dens sample,  Up: 2D plotting samples
+
+9.2.11 Cont - пример использования
+-----------------------------------------------------
+
+ [image src="../png/cont.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Box();
+gr->Cont(a);
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+cont a
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_cont(gr,a,0,7,NAN);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+real zero, nan
+! I don't know the NaN symbol in Fortran. So I produce it as zero/zero
+zero = 0; nan = zero/zero
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_cont(gr,a,'',7,nan)
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);
+gr.Box();
+gr.Cont(a);
+
+
+File: mathgl_ru.info,  Node: ContF sample,  Next: ContD sample,  Prev: Cont sample,  Up: 2D plotting samples
+
+9.2.12 ContF - пример использования
+------------------------------------------------------
+
+ [image src="../png/contf.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);  gr->Light(true);
+gr->Box();
+gr->ContF(a);
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+contf a
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_contf(gr,a,0,7,NAN);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+real zero, nan
+! I don't know the NaN symbol in Fortran. So I produce it as zero/zero
+zero = 0; nan = zero/zero
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_contf(gr,a,'',7,nan)
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.ContF(a);
+
+
+File: mathgl_ru.info,  Node: ContD sample,  Next: Axial sample,  Prev: ContF sample,  Up: 2D plotting samples
+
+9.2.13 ContD - пример использования
+------------------------------------------------------
+
+ [image src="../png/contd.png" ]
+
+*C++ код* mglData a(50,40), v(9);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+v.Fill(-1,1);
+gr->Box();
+gr->ContD(v,a);
+gr->Colorbar(v);
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+var v 9 -1 1
+box
+contd v a
+colorbar v
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+HMDT v = mgl_create_data_size(9,1,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_data_fill(v,-1.,1.,'x');
+mgl_box(gr,1);
+mgl_contd_val(gr,v,a,0,0);
+mgl_colorbar_val(gr,v,NULL,0);
+mgl_delete_data(a);
+mgl_delete_data(v);
+ *Fortran* integer a, v, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+v = mgl_create_data_size(9,1,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_data_fill(v,-1.,1.,'x');
+call mgl_box(gr,1)
+call mgl_contd_val(gr,v,a,'',0);
+call mgl_colorbar_val(gr,v,NULL,0);
+call mgl_delete_data(a)
+call mgl_delete_data(v)
+ *Python* a, v = mglData(50,40), mglData(9);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+v.Fill(-1,1);
+gr.Box();
+gr.ContD(v,a);
+gr.Colorbar(v);
+
+
+File: mathgl_ru.info,  Node: Axial sample,  Next: Grad sample,  Prev: ContD sample,  Up: 2D plotting samples
+
+9.2.14 Axial - пример использования
+------------------------------------------------------
+
+ [image src="../png/axial.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Alpha(true);
+gr->Box();
+gr->Axial(a);
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+axial a
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_axial(gr,a,"",3);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_axial(gr,a,'',3)
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.Box();
+gr.Axial(a);
+
+
+File: mathgl_ru.info,  Node: Grad sample,  Prev: Axial sample,  Up: 2D plotting samples
+
+9.2.15 Grad - пример использования
+-----------------------------------------------------
+
+ [image src="../png/grad.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Box();  gr->Alpha(true);    gr->Dens(a);
+gr->Grad(a);
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box:alpha on:dens a
+grad a
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_box(gr,1);
+mgl_set_alpha(gr,1);
+mgl_dens(gr,a,0,0);
+mgl_grad(gr,a,0,0);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_box(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_dens(gr,a,'',0)
+call mgl_grad(gr,a,'',0)
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Box();   gr.Alpha(1);    gr.Dens(a);
+gr.Colorbar();
+
+
+File: mathgl_ru.info,  Node: 3D plotting samples,  Next: Dual plotting samples,  Prev: 2D plotting samples,  Up: Samples
+
+9.3 Примеры 3D графиков
+======================================
+
+* Menu:
+
+* Surf3 sample::
+* Cloud sample::
+* CloudP sample::
+* Dens3 sample::
+* Cont3 sample::
+* ContF3 sample::
+* Cont projection sample::
+* Dens projection sample::
+* CutMinMax sample::
+* Isocaps sample::
+* CutOff sample::
+
+
+File: mathgl_ru.info,  Node: Surf3 sample,  Next: Cloud sample,  Up: 3D plotting samples
+
+9.3.1 Surf3 - пример использования
+-----------------------------------------------------
+
+ [image src="../png/surf3.png" ]
+
+*C++ код* mglData a(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Alpha(true);
+gr->Box();
+gr->Surf3(a);
+ *MGL скрипт*
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+box
+surf3 a
+ *C-ый код* HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf3(gr,a,0,3);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'',3)
+call mgl_delete_data(a)
+ *Python* a = mglData(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.Box();
+gr.Surf3(a);
+
+
+File: mathgl_ru.info,  Node: Cloud sample,  Next: CloudP sample,  Prev: Surf3 sample,  Up: 3D plotting samples
+
+9.3.2 Cloud - пример использования
+-----------------------------------------------------
+
+ [image src="../png/cloud.png" ]
+
+*C++ код* mglData a(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr->Rotate(40,60);
+gr->Alpha(true);
+gr->Box();
+gr->Cloud(a,"wyrRk");
+ *MGL скрипт*
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+box
+cloud a 'wyrRk'
+ *C-ый код* HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_cloud(gr,a,"wyrRk",1.);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_cloud(gr,a,'wyrRk',1.)
+call mgl_delete_data(a)
+ *Python* a = mglData(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr.Rotate(40,60);   gr.Alpha(True);
+gr.Box();
+gr.Cloud(a,"wyrRk");
+
+
+File: mathgl_ru.info,  Node: CloudP sample,  Next: Dens3 sample,  Prev: Cloud sample,  Up: 3D plotting samples
+
+9.3.3 CloudP - пример использования
+------------------------------------------------------
+
+ [image src="../png/cloudp.png" ]
+
+*C++ код* mglData a(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr->Rotate(40,60);
+gr->Alpha(true);
+gr->Box();
+gr->CloudP(a,"wyrRk");
+ *MGL скрипт* Not available.  *C-ый код* HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_cloudp(gr,a,"wyrRk",1.);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_cloudp(gr,a,'wyrRk',1.)
+call mgl_delete_data(a)
+ *Python* Not available.
+
+
+File: mathgl_ru.info,  Node: Dens3 sample,  Next: Cont3 sample,  Prev: CloudP sample,  Up: 3D plotting samples
+
+9.3.4 Dens3 - пример использования
+-----------------------------------------------------
+
+ [image src="../png/densa.png" ]
+
+*C++ код* mglData a(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr->Rotate(40,60);  gr->Alpha(true);    gr->Org = mglPoint(0,0,0);
+gr->Box();
+gr->DensA(a);
+gr->Axis();
+ *MGL скрипт*
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+origin 0 0 0
+box
+densa a
+axis
+ *C-ый код* HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_alpha(gr,1);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_dens3_all(gr,a,0);
+mgl_axis(gr,"xyz");
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_alpha(gr,1)
+call mgl_set_origin(gr,0.,0.,0.);
+call mgl_box(gr,1)
+call mgl_dens3_all(gr,a,'')
+call mgl_axis(gr,"xyz")
+call mgl_delete_data(a)
+ *Python* a = mglData(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr.Rotate(40,60);       gr.Alpha(True);
+gr.SetOrigin(0,0,0);    gr.Box();
+gr.Axis();
+gr.DensA(a);
+
+
+File: mathgl_ru.info,  Node: Cont3 sample,  Next: ContF3 sample,  Prev: Dens3 sample,  Up: 3D plotting samples
+
+9.3.5 Cont3 - пример использования
+-----------------------------------------------------
+
+ [image src="../png/conta.png" ]
+
+*C++ код* mglData a(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr->Rotate(40,60);
+gr->Box();
+gr->ContA(a);
+ *MGL скрипт*
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+conta a
+ *C-ый код* HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_cont_all(gr,a,0,7);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_cont_all(gr,a,'',7)
+call mgl_delete_data(a)
+ *Python* a = mglData(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr.Rotate(40,60);
+gr.Box();
+gr.ContA(a);
+
+
+File: mathgl_ru.info,  Node: ContF3 sample,  Next: Cont projection sample,  Prev: Cont3 sample,  Up: 3D plotting samples
+
+9.3.6 ContF3 - пример использования
+------------------------------------------------------
+
+ [image src="../png/contfa.png" ]
+
+*C++ код* mglData a(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr->Rotate(40,60);  gr->Light(true);
+gr->Box();
+gr->ContFA(a);
+ *MGL скрипт*
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+box
+contfa a
+ *C-ый код* HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_contf_all(gr,a,0,7);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_contf_all(gr,a,'',7)
+call mgl_delete_data(a)
+ *Python* a = mglData(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.ContFA(a);
+
+
+File: mathgl_ru.info,  Node: Cont projection sample,  Next: Dens projection sample,  Prev: ContF3 sample,  Up: 3D plotting samples
+
+9.3.7 Cont projection - пример использования
+---------------------------------------------------------------
+
+ [image src="../png/cont_xyz.png" ]
+
+*C++ код* mglData a(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr->Rotate(40,60);
+gr->Box();
+gr->ContX(a.Sum("x"),"",-1);
+gr->ContY(a.Sum("y"),"",1);
+gr->ContZ(a.Sum("z"),"",-1);
+ *MGL скрипт*
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+contx s '' -1
+sum s a 'y'
+conty s '' 1
+sum s a 'z'
+contz s '' -1
+ *C-ый код* HMDT a = mgl_create_data_size(60,50,40), s;
+mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+s=mgl_data_sum(a,"x"); mgl_cont_x(gr,s,0,-1.,7); mgl_delete_data(s);
+s=mgl_data_sum(a,"y"); mgl_cont_y(gr,s,0,1.,7); mgl_delete_data(s);
+s=mgl_data_sum(a,"z"); mgl_cont_z(gr,s,0,-1.,7); mgl_delete_data(s);
+mgl_delete_data(a);
+ *Fortran* integer a,s, mgl_create_data_size, mgl_data_sum
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+s=mgl_data_sum(a,'x')
+call mgl_cont_x(gr,s,'',-1.,7)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'y')
+call mgl_cont_y(gr,s,'',1.,7)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'z')
+call mgl_cont_z(gr,s,'',-1.,7)
+call mgl_delete_data(s)
+call mgl_delete_data(a)
+ *Python* a = mglData(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr.Rotate(40,60);               gr.Box();
+gr.ContX(a.Sum("x"),"",-1);
+gr.ContY(a.Sum("y"),"",1);
+gr.ContZ(a.Sum("z"),"",-1);
+
+
+File: mathgl_ru.info,  Node: Dens projection sample,  Next: CutMinMax sample,  Prev: Cont projection sample,  Up: 3D plotting samples
+
+9.3.8 Dens projection - пример использования
+---------------------------------------------------------------
+
+ [image src="../png/dens_xyz.png" ]
+
+*C++ код* mglData a(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr->Rotate(40,60);
+gr->Box();
+gr->DensX(a.Sum("x"),"",-1);
+gr->DensY(a.Sum("y"),"",1);
+gr->DensZ(a.Sum("z"),"",-1);
+ *MGL скрипт*
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+densx s '' -1
+sum s a 'y'
+densy s '' 1
+sum s a 'z'
+densz s '' -1
+ *C-ый код* HMDT a, s; a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+s=mgl_data_sum(a,"x"); mgl_dens_x(gr,s,0,-1.); mgl_delete_data(s);
+s=mgl_data_sum(a,"y"); mgl_dens_y(gr,s,0,1.); mgl_delete_data(s);
+s=mgl_data_sum(a,"z"); mgl_dens_z(gr,s,0,-1.); mgl_delete_data(s);
+mgl_delete_data(a);
+ *Fortran* integer a,s, mgl_create_data_size, mgl_data_sum
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+s=mgl_data_sum(a,'x')
+call mgl_dens_x(gr,s,'',-1.)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'y')
+call mgl_dens_y(gr,s,'',1.)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'z')
+call mgl_dens_z(gr,s,'',-1.)
+call mgl_delete_data(s)
+call mgl_delete_data(a)
+ *Python* a = mglData(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr.Rotate(40,60);               gr.Box();
+gr.DensX(a.Sum("x"),"",-1);
+gr.DensY(a.Sum("y"),"",1);
+gr.DensZ(a.Sum("z"),"",-1);
+
+
+File: mathgl_ru.info,  Node: CutMinMax sample,  Next: Isocaps sample,  Prev: Dens projection sample,  Up: 3D plotting samples
+
+9.3.9 CutMinMax - пример использования
+---------------------------------------------------------
+
+ [image src="../png/cutminmax.png" ]
+
+*C++ код* mglData a(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Alpha(true);
+gr->CutMin = mglPoint(0,-1,-1); gr->CutMax = mglPoint(1,0,1);
+gr->Box();
+gr->Surf3(a);
+ *MGL скрипт*
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut 0 -1 -1 1 0 1
+box
+surf3 a
+ *C-ый код* HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.);
+mgl_box(gr,1);
+mgl_surf3(gr,a,0,3);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.);
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'',3)
+call mgl_delete_data(a)
+ *Python* a = mglData(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.SetCutBox(0,-1,-1,1,0,1);    gr.Box();
+gr.Surf3(a);
+
+
+File: mathgl_ru.info,  Node: Isocaps sample,  Next: CutOff sample,  Prev: CutMinMax sample,  Up: 3D plotting samples
+
+9.3.10 "Isocaps" - пример использования
+----------------------------------------------------------
+
+ [image src="../png/cutminmax2.png" ]
+
+*C++ код* mglData a(61,51,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->CutMin = mglPoint(0,-1,-1); gr->CutMax = mglPoint(1,0,1.1);
+gr->Box();
+gr->Surf3(-1,a);
+gr->ContF3(a,'x',-1); gr->ContF3(a,'y',-1);
+gr->ContF3(a,'z', 0); gr->ContF3(a,'z',39);
+ *MGL скрипт*
+new a 61 51 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+cut 0 -1 -1 1 0 1.1
+box
+surf3 a -1
+contf3 a 'x' -1
+contf3 a 'y' -1
+contf3 a 'z' 0
+contf3 a 'z' 39
+ *C-ый код* HMDT a = mgl_create_data_size(61,51,40);
+mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.1);
+mgl_box(gr,1);
+mgl_surf3_val(gr,-1.,a,0);
+mgl_contf3(gr,a,'x',-1, "", 7);
+mgl_contf3(gr,a,'y',-1, "", 7);
+mgl_contf3(gr,a,'z', 0, "", 7);
+mgl_contf3(gr,a,'z',39, "", 7);
+mgl_delete_data(a);
+ *Fortran* a = mgl_create_data_size(61,51,40);
+call mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.1);
+call mgl_box(gr,1)
+call mgl_surf3_val(gr,-1.,a,'')
+call mgl_contf3(gr,a,'x',-1, '', 7);
+call mgl_contf3(gr,a,'y',-1, '', 7);
+call mgl_contf3(gr,a,'z', 0, '', 7);
+call mgl_contf3(gr,a,'z',39, '', 7);
+call mgl_delete_data(a)
+ *Python* a = mglData(61,51,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr.Rotate(40,60);   gr.Light(True);
+gr.SetCutBox(0,-1,-1,1,0,1.1);    gr.Box();
+gr.Surf3(-1,a);
+gr.ContF3(a,"x",-1);    gr.ContF3(a,"y",-1);
+gr.ContF3(a,"z",0);     gr.ContF3(a,"z",39);
+
+
+File: mathgl_ru.info,  Node: CutOff sample,  Prev: Isocaps sample,  Up: 3D plotting samples
+
+9.3.11 CutOff - пример использования
+-------------------------------------------------------
+
+ [image src="../png/surf3_cutoff.png" ]
+
+*C++ код* mglData a(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Alpha(true);
+gr->CutOff("(z>(x+0.5*y-1)^2-1) & (z>(x-0.5*y-1)^2-1)");
+gr->Box();
+gr->Surf3(a);
+ *MGL скрипт*
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut '(z>(x+0.5*y-1)^2-1) & (z>(x-0.5*y-1)^2-1)'
+box
+surf3 a
+ *C-ый код* HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_set_cutoff(gr,"(z>(x+0.5*y-1)^2-1) & (z>(x-0.5*y-1)^2-1)");
+mgl_box(gr,1);
+mgl_surf3(gr,a,0,3);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,'-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)',0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_set_cutoff(gr,'(z>(x+0.5*y-1)^2-1) & (z>(x-0.5*y-1)^2-1)')
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'',3)
+call mgl_delete_data(a)
+ *Python* a = mglData(61,51,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.CutOff("(z>(x+0.5*y-1)^2-1) & (z>(x-0.5*y-1)^2-1)");
+gr.Box();
+gr.Surf3(a);
+
+
+File: mathgl_ru.info,  Node: Dual plotting samples,  Next: Basic features,  Prev: 3D plotting samples,  Up: Samples
+
+9.4 Примеры парных/векторных графиков
+===================================================================
+
+* Menu:
+
+* SurfC sample::
+* SurfA sample::
+* TileS sample::
+* Map sample::
+* Traj sample::
+* Vect sample::
+* VectL sample::
+* VectC sample::
+* Flow sample::
+* Pipe sample::
+* Dew sample::
+* Surf3C sample::
+* Surf3A sample::
+* Vect 3D sample::
+* VectL 3D sample::
+* VectC 3D sample::
+* Flow 3D sample::
+* Pipe 3D sample::
+* Crust sample::
+* Dots sample::
+
+
+File: mathgl_ru.info,  Node: SurfC sample,  Next: SurfA sample,  Up: Dual plotting samples
+
+9.4.1 SurfC - пример использования
+-----------------------------------------------------
+
+ [image src="../png/surfc.png" ]
+
+*C++ код* mglData a(50,40), b(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->SurfC(a,b);
+ *MGL скрипт*
+new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surfc a b
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+HMDT b = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surfc(gr,a,b,0);
+mgl_delete_data(a); mgl_delete_data(b);
+ *Fortran* integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surfc(gr,a,b,'')
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+ *Python* a, b = mglData(50,40), mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.SurfC(a,b);
+
+
+File: mathgl_ru.info,  Node: SurfA sample,  Next: TileS sample,  Prev: SurfC sample,  Up: Dual plotting samples
+
+9.4.2 SurfA - пример использования
+-----------------------------------------------------
+
+ [image src="../png/surfa.png" ]
+
+*C++ код* mglData a(50,40), b(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Alpha(true);
+gr->Box();
+gr->SurfA(a,b);
+ *MGL скрипт*
+new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surfa a b
+ *C-ый код* HMDT a, b;
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surfa(gr,a,b,0);
+mgl_delete_data(a); mgl_delete_data(b);
+ *Fortran* integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1);
+call mgl_box(gr,1)
+call mgl_surfa(gr,a,b,'')
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+ *Python* a, b = mglData(50,40), mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.Box();
+gr.SurfC(a,b);
+
+
+File: mathgl_ru.info,  Node: TileS sample,  Next: Map sample,  Prev: SurfA sample,  Up: Dual plotting samples
+
+9.4.3 TileS - пример использования
+-----------------------------------------------------
+
+ [image src="../png/tiles.png" ]
+
+*C++ код* mglData a(50,40), b(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Box();
+gr->TileS(a,b);
+ *MGL скрипт*
+new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+tile a b
+ *C-ый код* HMDT a, b;
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_box(gr,1);
+mgl_tiles(gr,a,b,0);
+mgl_delete_data(a); mgl_delete_data(b);
+ *Fortran* integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_box(gr,1)
+call mgl_tiles(gr,a,b,'')
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+ *Python* a, b = mglData(50,40), mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Box();
+gr.TileS(a,b);
+
+
+File: mathgl_ru.info,  Node: Map sample,  Next: Traj sample,  Prev: TileS sample,  Up: Dual plotting samples
+
+9.4.4 Map - пример использования
+---------------------------------------------------
+
+ [image src="../png/map.png" ]
+
+*C++ код* mglData a(50, 40), b(50, 40);
+gr->Puts(mglPoint(0, 0), "\\to", "", -1.4);
+gr->Axis(mglPoint(-1,-1,-2),mglPoint(1,1,2));
+gr->SubPlot(2, 1, 0);
+a.Fill("x", gr->Min, gr->Max);	b.Fill("y", gr->Min, gr->Max);
+gr->Puts(mglPoint(0, 1.1), "\\{x, y\\}", "C", -2);		gr->Box();
+gr->Map(a, b, "brgk", 0, false);
+gr->SubPlot(2, 1, 1);
+a.Fill("(x^3+y^3)/2", gr->Min, gr->Max);
+b.Fill("(x-y)/2", gr->Min, gr->Max);
+gr->Puts(mglPoint(0, 1.1), "\\{\\frac{x^3+y^3}{2}, \\frac{x-y}{2}\\}", "C", -2);
+gr->Box();
+gr->Map(a, b, "brgk", 0, false);
+ *MGL скрипт*
+new a 50 40
+new b 50 40
+text 0 0 '\to'
+zrange -2 2
+subplot 2 1 0
+text 0 1.1 '\{x, y\}' '' -2
+box
+fill a 'x'
+fill b 'y'
+map a b 'brgk' 0 0
+subplot 2 1 1
+text 0 1.1 '\{\frac{x^3+y^3}{2}, \frac{x-y}{2}\}' '' -2
+box
+fill a '(x^3+y^3)/2'
+fill b '(x-y)/2'
+map a b 'brgk' 0 0
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+HMDT b = mgl_create_data_size(50,40,1);
+mgl_puts_ext(gr, 0.,0.,0., "\\to", "", -1.4, 't');
+mgl_set_axis_3d(gr,-1.,-1.,-2.,1.,1.,2.);
+mgl_subplot(gr, 2, 1, 0);
+mgl_data_fill_eq(gr, a, "x", 0, 0);
+mgl_data_fill_eq(gr, b, "y", 0, 0);
+mgl_puts_ext(gr, 0.,1.1,0., "\\{x, y\\}", "C", -2., 't');
+mgl_box(gr,1);
+mgl_map(gr, a, b, "brgk", 0, 0);
+mgl_subplot(gr, 2, 1, 1);
+mgl_data_fill_eq(gr, a, "(x^3+y^3)/2", 0, 0);
+mgl_data_fill_eq(gr, b, "(x-y)/2", 0, 0);
+mgl_puts_ext(gr, 0.,1.1,0., "\\{\\frac{x^3+y^3}{2}, \\frac{x-y}{2}\\}", "C", -2., 't');
+mgl_box(gr,1);
+mgl_map(gr, a, b, "brgk", 0, 0);
+mgl_box(gr,1);
+mgl_map(gr,a,b,0,0,1);
+mgl_delete_data(a); mgl_delete_data(b);
+ *Fortran* integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_puts_ext(gr, 0.,0.,0., '\to', '', -1.4, 't');
+call mgl_set_axis_3d(gr,-1.,-1.,-2.,1.,1.,2.);
+call mgl_subplot(gr, 2, 1, 0);
+call mgl_data_fill_eq(gr, a, 'x', 0, 0);
+call mgl_data_fill_eq(gr, b, 'y', 0, 0);
+call mgl_puts_ext(gr, 0.,1.1,0., '\{x, y\}', 'C', -2., 't');
+call mgl_box(gr,1);
+call mgl_map(gr, a, b, 'brgk', 0, 0);
+call mgl_subplot(gr, 2, 1, 1);
+call mgl_data_fill_eq(gr, a, '(x^3+y^3)/2', 0, 0);
+call mgl_data_fill_eq(gr, b, '(x-y)/2', 0, 0);
+call mgl_puts_ext(gr, 0.,1.1,0., '\{\frac{x^3+y^3}{2}, \frac{x-y}{2}\}', 'C', -2., 't');
+call mgl_box(gr,1);
+call mgl_map(gr, a, b, 'brgk', 0, 0);
+call mgl_box(gr,1);
+call mgl_map(gr,a,b,0,0,1);
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+ *Python* a, b = mglData(50,40), mglData(50,40);
+gr.Puts(0, 0, 0, "\\to", "", -1.4);
+gr.SetRanges(-1,1,-1,1,-2,2);
+gr.SubPlot(2, 1, 0);
+gr.Fill(a, "x");    gr.Fill(b, "y");
+gr.Puts(0, 1.1, 0, "\\{x, y\\}", "C", -2);
+gr.Box();
+gr.Map(a, b, "brgk", 0, 0);
+gr.SubPlot(2, 1, 1);
+gr.Fill(a, "(x^3+y^3)/2");   gr.Fill(b, "(x-y)/2");
+gr.Puts(0, 1.1, 0, "\\{\\frac{x^3+y^3}{2}, \\frac{x-y}{2}\\}", "C", -2);
+gr.Box();
+gr.Map(a, b, "brgk", 0, 0);
+
+
+File: mathgl_ru.info,  Node: Traj sample,  Next: Vect sample,  Prev: Map sample,  Up: Dual plotting samples
+
+9.4.5 Traj - пример использования
+----------------------------------------------------
+
+ [image src="../png/traj.png" ]
+
+*C++ код* mglData y(50,3), x(50), y1(50), y2(50);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+y1.Modify("0.5+0.3*cos(2*pi*x)");
+y2.Modify("0.3*sin(2*pi*x)");
+x.Fill(-1,1,'x');
+gr->Box();
+gr->Plot(x,y);
+gr->Traj(x,y,y1,y2);
+ *MGL скрипт*
+new y 50 3
+new x 50
+new y1 50
+new y2 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+fill x -1 1
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+box
+plot x y
+traj x y y1 y2
+ *C-ый код* HMDT y = mgl_create_data_size(50,3,1);
+HMDT x= mgl_create_data_size(50,1,1);
+HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_data_modify(x,"2*x-1",0);
+mgl_data_modify(y1,"0.5+0.3*cos(2*pi*x)",0);
+mgl_data_modify(y2,"0.3*sin(2*pi*x)",0);
+mgl_box(gr,1);
+mgl_plot_xy(gr,x,y,NULL);
+mgl_traj_xy(gr,yx,y,y1,y2,NULL,0,0);
+mgl_delete_data(y);  mgl_delete_data(y1);
+mgl_delete_data(x);  mgl_delete_data(y2);
+ *Fortran* integer x,y,y1,y2, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+x= mgl_create_data_size(50,1,1);
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_data_modify(x,'2*x-1',0);
+call mgl_data_modify(y1,'0.5+0.3*cos(2*pi*x)',0);
+call mgl_data_modify(y2,'0.3*sin(2*pi*x)',0);
+call mgl_box(gr,1)
+call mgl_plot_xy(gr,x,y,NULL);
+call mgl_traj_xy(gr,yx,y,y1,y2,NULL,0,0);
+call mgl_delete_data(y)
+call mgl_delete_data(x)
+call mgl_delete_data(y1)
+call mgl_delete_data(y2)
+ *Python* x,y,y1,y2 = mglData(50), mglData(50,3), mglData(50), mglData(50);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+y1.Modify("0.5+0.3*cos(2*pi*x)");
+y2.Modify("0.3*sin(2*pi*x)");
+x.Fill(-1,1,'x');
+gr.Box();
+gr.Plot(x,y);
+gr.Traj(x,y,y1,y2);
+
+
+File: mathgl_ru.info,  Node: Vect sample,  Next: VectL sample,  Prev: Traj sample,  Up: Dual plotting samples
+
+9.4.6 Vect - пример использования
+----------------------------------------------------
+
+ [image src="../png/vect.png" ]
+
+*C++ код* mglData a(20,30), b(20,30);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Box();
+gr->Vect(a,b);
+ *MGL скрипт*
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vect a b
+ *C-ый код* HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_box(gr,1);
+mgl_vect_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+ *Fortran* integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_box(gr,1)
+call mgl_vect_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+ *Python* a, b = mglData(20,30), mglData(20,30);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Box();
+gr.Vect(a,b);
+
+
+File: mathgl_ru.info,  Node: VectL sample,  Next: VectC sample,  Prev: Vect sample,  Up: Dual plotting samples
+
+9.4.7 VectL - пример использования
+-----------------------------------------------------
+
+ [image src="../png/vectl.png" ]
+
+*C++ код* mglData a(20,30), b(20,30);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Box();
+gr->VectL(a,b);
+ *MGL скрипт*
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectl a b
+ *C-ый код* HMDT a, b;
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_box(gr,1);
+mgl_vectl_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+ *Fortran* integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_box(gr,1)
+call mgl_vectl_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+ *Python* a, b = mglData(20,30), mglData(20,30);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Box();
+gr.VectL(a,b);
+
+
+File: mathgl_ru.info,  Node: VectC sample,  Next: Flow sample,  Prev: VectL sample,  Up: Dual plotting samples
+
+9.4.8 VectC - пример использования
+-----------------------------------------------------
+
+ [image src="../png/vectc.png" ]
+
+*C++ код* mglData a(20,30), b(20,30);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Box();
+gr->VectC(a,b);
+ *MGL скрипт*
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectc a b
+ *C-ый код* HMDT a, b;
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_box(gr,1);
+mgl_vectc_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+ *Fortran* integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_box(gr,1)
+call mgl_vectc_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+ *Python* a, b = mglData(20,30), mglData(20,30);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Box();
+gr.VectC(a,b);
+
+
+File: mathgl_ru.info,  Node: Flow sample,  Next: Pipe sample,  Prev: VectC sample,  Up: Dual plotting samples
+
+9.4.9 Flow - пример использования
+----------------------------------------------------
+
+ [image src="../png/flow.png" ]
+
+*C++ код* mglData a(20,30), b(20,30);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Box();
+gr->Flow(a,b);
+ *MGL скрипт*
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+flow a b
+ *C-ый код* HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_box(gr,1);
+mgl_flow_2d(gr,a,b,0,5,1,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+ *Fortran* integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_box(gr,1)
+call mgl_flow_2d(gr,a,b,'',5,1,0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+ *Python* a, b = mglData(20,30), mglData(20,30);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Box();
+gr.Flow(a,b);
+
+
+File: mathgl_ru.info,  Node: Pipe sample,  Next: Dew sample,  Prev: Flow sample,  Up: Dual plotting samples
+
+9.4.10 Pipe - пример использования
+-----------------------------------------------------
+
+ [image src="../png/pipe.png" ]
+
+*C++ код* mglData a(20,30), b(20,30);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Light(true);
+gr->Box();
+gr->Pipe(a,b);
+ *MGL скрипт*
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+box
+pipe a b
+ *C-ый код* HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_pipe_2d(gr,a,b,0,0.05,5,1,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+ *Fortran* integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_pipe_2d(gr,a,b,'',0.05,5,1,0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+ *Python* a, b = mglData(20,30), mglData(20,30);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Light(True);    gr.Box();
+gr.Pipe(a,b);
+
+
+File: mathgl_ru.info,  Node: Dew sample,  Next: Surf3C sample,  Prev: Pipe sample,  Up: Dual plotting samples
+
+9.4.11 Dew - пример использования
+----------------------------------------------------
+
+ [image src="../png/dew.png" ]
+
+*C++ код* mglData a(20,30), b(20,30);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Box();
+gr->Light(true);
+gr->Dew(a,b);
+ *MGL скрипт*
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+light on
+dew a b
+ *C-ый код* HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_box(gr,1);
+mgl_set_light(gr,1);
+mgl_dew_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+ *Fortran* integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_box(gr,1)
+call mgl_set_light(gr,1);
+call mgl_dew_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+ *Python* a, b = mglData(20,30), mglData(20,30);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Light(True);    gr.Box();
+gr.Dew(a,b);
+
+
+File: mathgl_ru.info,  Node: Surf3C sample,  Next: Surf3A sample,  Prev: Dew sample,  Up: Dual plotting samples
+
+9.4.12 Surf3C - пример использования
+-------------------------------------------------------
+
+ [image src="../png/surf3c.png" ]
+
+*C++ код* mglData a(60,50,40), b(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+b.Modify("1-2*tanh(4*(x+y-1)^2)");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Alpha(true);
+gr->Box();
+gr->Surf3C(a, b);
+ *MGL скрипт*
+new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3c a b
+ *C-ый код* HMDT a = mgl_create_data_size(60,50,40);
+HMDT b = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+mgl_data_modify(b,"1-2*tanh(4*(x+y-1)^2)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf3c(gr,a,b,0,3);
+mgl_delete_data(a); mgl_delete_data(b);
+ *Fortran* integer a,b, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+b = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+call mgl_data_modify(b,"1-2*tanh(4*(x+y-1)^2)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf3c(gr,a,b,'',3)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+ *Python* a, b = mglData(60,50,40), mglData(60,50,40);
+a.Modify("-2*((2*x-1)^2+(2*y-1)^2+(2*z-1)^4-(2*z-1)^2-0.1)");
+b.Modify("1-2*tanh(4*(x+y-1)^2)");
+gr.Rotate(40,60);   gr.Light(True);     gr.Alpha(True);
+gr.Box();
+gr.Surf3C(a,b);
+
+
+File: mathgl_ru.info,  Node: Surf3A sample,  Next: Vect 3D sample,  Prev: Surf3C sample,  Up: Dual plotting samples
+
+9.4.13 Surf3A - пример использования
+-------------------------------------------------------
+
+ [image src="../png/surf3a.png" ]
+
+*C++ код* mglData a(60,50,40), b(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+b.Modify("1-2*tanh(4*(x+y-1)^2)");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Alpha(true);
+gr->Box();
+gr->Surf3A(a, b);
+ *MGL скрипт*
+new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3a a b
+ *C-ый код* HMDT a, b; a = mgl_create_data_size(60,50,40);
+b = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+mgl_data_modify(b,"1-2*tanh(4*(x+y-1)^2)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf3a(gr,a,b,0,3);
+mgl_delete_data(a); mgl_delete_data(b);
+ *Fortran* integer a,b, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+b = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+call mgl_data_modify(b,"1-2*tanh(4*(x+y-1)^2)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf3a(gr,a,b,'',3)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+ *Python* a, b = mglData(60,50,40), mglData(60,50,40);
+a.Modify("-2*((2*x-1)^2+(2*y-1)^2+(2*z-1)^4-(2*z-1)^2-0.1)");
+b.Modify("1-2*tanh(4*(x+y-1)^2)");
+gr.Rotate(40,60);   gr.Light(True);     gr.Alpha(True);
+gr.Box();
+gr.Surf3A(a,b);
+
+
+File: mathgl_ru.info,  Node: Vect 3D sample,  Next: VectL 3D sample,  Prev: Surf3A sample,  Up: Dual plotting samples
+
+9.4.14 Vect 3D - пример использования
+--------------------------------------------------------
+
+ [image src="../png/vect3.png" ]
+
+*C++ код* mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill("0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+ey.Fill("0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+ez.Fill("0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+gr->Rotate(40,60);
+gr->Box();
+gr->Vect(ex, ey, ez, "bwr");
+ *MGL скрипт*
+new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vect ex ey ez 'bwr'
+ *C-ый код* HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, "0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_data_fill_eq(gr, ey, "0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_data_fill_eq(gr, ez, "0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_vect_3d(gr,ex,ey,ez,"bwr");
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+ *Fortran* integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_vect_3d(gr,ex,ey,ez,'bwr')
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+ *Python* ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, "0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Fill(ey, "0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Fill(ez, "0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Rotate(40,60);       gr.Box();
+gr.Vect(ex,ey,ez,"bwr");
+
+
+File: mathgl_ru.info,  Node: VectL 3D sample,  Next: VectC 3D sample,  Prev: Vect 3D sample,  Up: Dual plotting samples
+
+9.4.15 VectL 3D - пример использования
+---------------------------------------------------------
+
+ [image src="../png/vectl3.png" ]
+
+*C++ код* mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill("0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+ey.Fill("0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+ez.Fill("0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+gr->Rotate(40,60);
+gr->Box();
+gr->VectL(ex, ey, ez, "bwr");
+ *MGL скрипт*
+new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectl ex ey ez 'bwr'
+ *C-ый код* HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, "0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_data_fill_eq(gr, ey, "0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_data_fill_eq(gr, ez, "0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_vectl_3d(gr,ex,ey,ez,"bwr");
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+ *Fortran* integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_vectl_3d(gr,ex,ey,ez,'bwr')
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+ *Python* ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, "0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Fill(ey, "0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Fill(ez, "0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Rotate(40,60);       gr.Box();
+gr.VectL(ex,ey,ez,"bwr");
+
+
+File: mathgl_ru.info,  Node: VectC 3D sample,  Next: Flow 3D sample,  Prev: VectL 3D sample,  Up: Dual plotting samples
+
+9.4.16 VectC 3D - пример использования
+---------------------------------------------------------
+
+ [image src="../png/vectc3.png" ]
+
+*C++ код* mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill("0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+ey.Fill("0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+ez.Fill("0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+gr->Rotate(40,60);
+gr->Box();
+gr->VectC(ex, ey, ez, "bwr");
+ *MGL скрипт*
+new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectc ex ey ez 'bwr'
+ *C-ый код* HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, "0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_data_fill_eq(gr, ey, "0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_data_fill_eq(gr, ez, "0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_vectc_3d(gr,ex,ey,ez,"bwr");
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+ *Fortran* integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_vectc_3d(gr,ex,ey,ez,'bwr')
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+ *Python* ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, "0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Fill(ey, "0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Fill(ez, "0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Rotate(40,60);       gr.Box();
+gr.VectC(ex,ey,ez,"bwr");
+
+
+File: mathgl_ru.info,  Node: Flow 3D sample,  Next: Pipe 3D sample,  Prev: VectC 3D sample,  Up: Dual plotting samples
+
+9.4.17 Flow 3D - пример использования
+--------------------------------------------------------
+
+ [image src="../png/flow3.png" ]
+
+*C++ код* mglData ex(30,30,30), ey(30,30,30), ez(30,30,30);
+ex.Fill("0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+ey.Fill("0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+ez.Fill("0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+gr->Rotate(40,60);
+gr->Box();
+gr->Flow(ex, ey, ez, "bwr");
+ *MGL скрипт*
+new ex 30 30 30
+new ey 30 30 30
+new ez 30 30 30
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+flow ex ey ez 'bwr'
+ *C-ый код* HMDT ex, ey, ez;
+ex = mgl_create_data_size(30,30,30);
+ey = mgl_create_data_size(30,30,30);
+ez = mgl_create_data_size(30,30,30);
+mgl_data_fill_eq(gr, ex, "0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_data_fill_eq(gr, ey, "0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_data_fill_eq(gr, ez, "0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_flow_3d(gr,ex,ey,ez,"bwr",3,1);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+ *Fortran* integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(30,30,30)
+ey = mgl_create_data_size(30,30,30)
+ez = mgl_create_data_size(30,30,30)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_flow_3d(gr,ex,ey,ez,'bwr',3,1)
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+ *Python* ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, "0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Fill(ey, "0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Fill(ez, "0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Rotate(40,60);       gr.Box();
+gr.Flow(ex,ey,ez,"bwr");
+
+
+File: mathgl_ru.info,  Node: Pipe 3D sample,  Next: Crust sample,  Prev: Flow 3D sample,  Up: Dual plotting samples
+
+9.4.18 Pipe 3D - пример использования
+--------------------------------------------------------
+
+ [image src="../png/pipe3.png" ]
+
+*C++ код* mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill("0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+ey.Fill("0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+ez.Fill("0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Pipe(ex, ey, ez, "bwr");
+ *MGL скрипт*
+new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+light on
+box
+pipe ex ey ez 'bwr'
+ *C-ый код* HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, "0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_data_fill_eq(gr, ey, "0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_data_fill_eq(gr, ez, "0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_pipe_3d(gr,ex,ey,ez,"bwr",0.05,3,1);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+ *Fortran* integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1);
+call mgl_box(gr,1);
+call mgl_pipe_3d(gr,ex,ey,ez,'bwr',0.05,3,1)
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+ *Python* ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, "0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Fill(ey, "0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Fill(ez, "0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Pipe(ex,ey,ez,"bwr");
+
+
+File: mathgl_ru.info,  Node: Crust sample,  Next: Dots sample,  Prev: Pipe 3D sample,  Up: Dual plotting samples
+
+9.4.19 Crust - пример использования
+------------------------------------------------------
+
+ [image src="../png/crust.png" ]
+
+*C++ код* mglData a("hotdogs.pts");
+a.Norm(-1,1,true);
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Crust(a,"p");
+ *MGL скрипт*
+read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+light on
+box
+crust a 'p'
+ *C-ый код* HMDT a = mgl_create_data_file("hotdogs.pts");
+mgl_data_norm(a,-1.,1.,1,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_crust_tr(gr,a,"p",0.);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_file
+a = mgl_create_data_file("hotdogs.pts")
+call mgl_data_norm(a,-1.,1.,1,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_crust_tr(gr,a,"p",0.)
+call mgl_delete_data(a)
+ *Python* a = mglData("hotdogs.pts");
+a.Norm(-1,1,True);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Crust(a);
+
+
+File: mathgl_ru.info,  Node: Dots sample,  Prev: Crust sample,  Up: Dual plotting samples
+
+9.4.20 Dots - пример использования
+-----------------------------------------------------
+
+ [image src="../png/dots.png" ]
+
+*C++ код* mglData a("hotdogs.pts");
+a.Norm(-1,1,true);
+gr->Rotate(40,60);
+gr->Box();
+gr->Dots(a,"p");
+ *MGL скрипт*
+read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+box
+dots a 'p'
+ *C-ый код* HMDT a = mgl_create_data_file("hotdogs.pts");
+mgl_data_norm(a,-1.,1.,1,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_dots_tr(gr,a,"p");
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_file
+a = mgl_create_data_file("hotdogs.pts")
+call mgl_data_norm(a,-1.,1.,1,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_dots_tr(gr,a,"p")
+call mgl_delete_data(a)
+ *Python* a = mglData("hotdogs.pts");
+a.Norm(-1,1,True);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Dots(a);
+
+
+File: mathgl_ru.info,  Node: Basic features,  Next: Additional features,  Prev: Dual plotting samples,  Up: Samples
+
+9.5 Базовые возможности
+=========================================
+
+* Menu:
+
+* 1D plot sample::
+* 2D plot sample::
+* 3D plot sample::
+* Line styles sample::
+* Arrow styles sample::
+* Text styles sample::
+* TeX parsing sample::
+* Font faces sample::
+* Colors sample::
+* Color schemes sample::
+* Normal transparency::
+* Glass-like transparency::
+* Lamp-like transparency::
+
+
+File: mathgl_ru.info,  Node: 1D plot sample,  Next: 2D plot sample,  Up: Basic features
+
+9.5.1 Пример графиков 1D данных
+---------------------------------------------------
+
+ [image src="../png/sample8.png" ]
+
+*C++ код* mglData y0(50);		y0.Modify("sin(pi*(2*x-1))");
+gr->SubPlot(2,2,0);
+gr->Plot(y0);		gr->Box();
+
+gr->SubPlot(2,2,1);
+mglData y1(50,2);
+y1.Modify("sin(pi*2*x-pi)");	y1.Modify("cos(pi*2*x-pi)/2",1);
+gr->Plot(y1);		gr->Box();
+
+mglData x(50);		x.Modify("cos(pi*2*x-pi)");
+gr->Plot(x,y0,"Y+");
+
+gr->Plot(y1.SubData(-1,0),y1.SubData(-1,1),"q|");
+
+gr->SubPlot(2,2,2);	gr->Rotate(60,40);
+mglData z(50);		z.Modify("2*x-1");
+gr->Plot(x,y0,z);		gr->Box();
+
+mglData y2(10,3);	y2.Modify("cos(pi*(2*x-1-y))");
+y2.Modify("2*x-1",2);
+gr->Plot(y2.SubData(-1,0),y2.SubData(-1,1),y2.SubData(-1,2),"bo ");
+
+gr->SubPlot(2,2,3);	gr->Rotate(60,40);
+gr->Bars(x,y0,z,"ri");		gr->Box();
+ *MGL скрипт*
+new y0 50: modify y0 'sin(pi*(2*x-1))'
+subplot 2 2 0
+plot y0: box
+
+subplot 2 2 1
+new y1 50 2
+modify y1 'sin(pi*2*x-pi)'
+modify y1 'cos(pi*2*x-pi)/2' 1
+plot y1: box
+
+new x 50: modify x 'cos(pi*2*x-pi)'
+plot x y0 'Y+'
+plot y1(:,0) y(:,1) 'q|'
+
+subplot 2 2 2:rotate 60 40
+new z 50:   modify z '2*x-1'
+plot x y0 z 'g':box
+new y2 10 3
+modify y2 'cos(pi*(2*x-1-y))'
+modify y2 '2*x-1' 2
+plot y2(:,0) y2(:,1) y2(:,2) 'bo '
+
+subplot 2 2 3:rotate 60 40
+bars x y0 z 'r':box
+
+
+File: mathgl_ru.info,  Node: 2D plot sample,  Next: 3D plot sample,  Prev: 1D plot sample,  Up: Basic features
+
+9.5.2 Пример графиков 2D данных
+---------------------------------------------------
+
+ [image src="../png/sample9.png" ]
+
+*C++ код* gr->Light(true);
+mglData a0(50,40);
+a0.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->SubPlot(2,2,0); gr->Rotate(60,40);
+gr->Surf(a0);       gr->Box();
+
+mglData x(50,40),y(50,40),z(50,40);
+x.Modify("0.8*sin(2*pi*x)*sin(pi*y)");
+y.Modify("0.8*cos(2*pi*x)*sin(pi*y)");
+z.Modify("0.8*cos(pi*y)");
+gr->SubPlot(2,2,1); gr->Rotate(60,40);
+gr->Surf(x,y,z,"BbwrR");    gr->Box();
+
+mglData a1(50,40,3);
+a1.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+a1.Modify("0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*sin(3*pi*(x*y))",1);
+a1.Modify("0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",2);
+gr->SubPlot(2,2,2); gr->Rotate(60,40);
+gr->Alpha(true);
+gr->Surf(a1);       gr->Box();
+
+gr->SubPlot(2,2,3); gr->Rotate(60,40);
+gr->Dens(a1);       gr->Box();
+ *MGL скрипт*
+light on
+
+new a0 50 40
+modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+subplot 2 2 0:rotate 60 40
+surf a0: box
+
+new x 50 40: new y 50 40: new z 50 40
+modify x '0.8*sin(2*pi*x)*sin(pi*y)'
+modify y '0.8*cos(2*pi*x)*sin(pi*y)'
+modify z '0.8*cos(pi*y)'
+subplot 2 2 1:rotate 60 40
+surf x y z 'bbwrr': box
+
+new a1 50 40 3
+modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
+subplot 2 2 2:rotate 60 40
+alpha on
+surf a1: box
+
+subplot 2 2 3: rotate 60 40
+dens a1: box
+
+
+File: mathgl_ru.info,  Node: 3D plot sample,  Next: Line styles sample,  Prev: 2D plot sample,  Up: Basic features
+
+9.5.3 Пример графиков 3D данных
+---------------------------------------------------
+
+ [image src="../png/sampleb.png" ]
+
+*C++ код* gr->Alpha(true);	gr->Light(true);	gr->Light(0,mglPoint(0,0,1));
+mglData a(30,30,30), b(30,30,30);
+a.Modify("exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))");
+b.Modify("16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)");
+gr->CAxis(0,1);
+
+gr->SubPlot(2,2,0);	gr->Rotate(40,60);
+gr->Surf3(a,"wgk");	gr->Box();
+gr->SubPlot(2,2,1);	gr->Rotate(40,60);
+gr->DensA(a);		gr->Box();	gr->Axis();
+gr->SubPlot(2,2,2);	gr->Rotate(40,60);
+gr->Cloud(a);		gr->Box();
+gr->SubPlot(2,2,3);	gr->Rotate(40,60);
+gr->Surf3A(b,a,"q");		gr->Box();
+ *MGL скрипт*
+alpha on: light on
+light 0 0 0 1
+new a 30 30 30: new b 30 30 30
+modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
+modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
+caxis 0 1
+
+subplot 2 2 0: rotate 40 60
+surf3 a 'wgk': box
+subplot 2 2 1: rotate 40 60
+densa a: box: axis
+subplot 2 2 2: rotate 40 60
+cloud a: box
+subplot 2 2 3: rotate 40 60
+surf3a b a 'q': box
+
+
+File: mathgl_ru.info,  Node: Line styles sample,  Next: Arrow styles sample,  Prev: 3D plot sample,  Up: Basic features
+
+9.5.4 Пример стилей линий и маркеров
+--------------------------------------------------------------
+
+ [image src="../png/sample5.png" ]
+
+*C++ код* float d,x1,x2,x0,y=0.95;
+d=0.3, x0=0.2, x1=0.5, x2=0.6;
+gr->Line(mglPoint(x0,1-0*d),mglPoint(x1,1-0*d),"k-");	gr->Puts(mglPoint(x2,y-0*d),"Solid '-'","rL");
+gr->Line(mglPoint(x0,1-1*d),mglPoint(x1,1-1*d),"k|");	gr->Puts(mglPoint(x2,y-1*d),"Long Dash '|'","rL");
+gr->Line(mglPoint(x0,1-2*d),mglPoint(x1,1-2*d),"k;");	gr->Puts(mglPoint(x2,y-2*d),"Dash ';'","rL");
+gr->Line(mglPoint(x0,1-3*d),mglPoint(x1,1-3*d),"k=");	gr->Puts(mglPoint(x2,y-3*d),"Small dash '='","rL");
+gr->Line(mglPoint(x0,1-4*d),mglPoint(x1,1-4*d),"kj");	gr->Puts(mglPoint(x2,y-4*d),"Dash-dot 'j'","rL");
+gr->Line(mglPoint(x0,1-5*d),mglPoint(x1,1-5*d),"ki");	gr->Puts(mglPoint(x2,y-5*d),"Small dash-dot 'i'","rL");
+gr->Line(mglPoint(x0,1-6*d),mglPoint(x1,1-6*d),"k:");	gr->Puts(mglPoint(x2,y-6*d),"Dots ':'","rL");
+gr->Line(mglPoint(x0,1-7*d),mglPoint(x1,1-7*d),"k ");	gr->Puts(mglPoint(x2,y-7*d),"None ' '","rL");
+
+d=0.25; x1=-1; x0=-0.8;	y = -0.05;
+gr->Mark(mglPoint(x1,5*d),'.');		gr->Puts(mglPoint(x0,y+5*d),"'.'","rL");
+gr->Mark(mglPoint(x1,4*d),'+');		gr->Puts(mglPoint(x0,y+4*d),"'+'","rL");
+gr->Mark(mglPoint(x1,3*d),'x');		gr->Puts(mglPoint(x0,y+3*d),"'x'","rL");
+gr->Mark(mglPoint(x1,2*d),'*');		gr->Puts(mglPoint(x0,y+2*d),"'*'","rL");
+gr->Mark(mglPoint(x1,d),'s');		gr->Puts(mglPoint(x0,y+d),"'s'","rL");
+gr->Mark(mglPoint(x1,0),'d');		gr->Puts(mglPoint(x0,y),"'d'","rL");
+gr->Mark(mglPoint(x1,-d,0),'o');	gr->Puts(mglPoint(x0,y-d),"'o'","rL");
+gr->Mark(mglPoint(x1,-2*d,0),'^');	gr->Puts(mglPoint(x0,y-2*d),"'\\^'","rL");
+gr->Mark(mglPoint(x1,-3*d,0),'v');	gr->Puts(mglPoint(x0,y-3*d),"'v'","rL");
+gr->Mark(mglPoint(x1,-4*d,0),'<');	gr->Puts(mglPoint(x0,y-4*d),"'<'","rL");
+gr->Mark(mglPoint(x1,-5*d,0),'>');	gr->Puts(mglPoint(x0,y-5*d),"'>'","rL");
+
+d=0.25; x1=-0.5; x0=-0.3;	y = -0.05;
+gr->Mark(mglPoint(x1,5*d),'C');		gr->Puts(mglPoint(x0,y+5*d),"'\\#.'","rL");
+gr->Mark(mglPoint(x1,4*d),'P');		gr->Puts(mglPoint(x0,y+4*d),"'\\#+'","rL");
+gr->Mark(mglPoint(x1,3*d),'X');		gr->Puts(mglPoint(x0,y+3*d),"'\\#x'","rL");
+gr->Mark(mglPoint(x1,2*d),'Y');		gr->Puts(mglPoint(x0,y+2*d),"'\\#*'","rL");
+gr->Mark(mglPoint(x1,d),'S');		gr->Puts(mglPoint(x0,y+d),"'\\#s'","rL");
+gr->Mark(mglPoint(x1,0),'D');		gr->Puts(mglPoint(x0,y),"'\\#d'","rL");
+gr->Mark(mglPoint(x1,-d,0),'O');	gr->Puts(mglPoint(x0,y-d),"'\\#o'","rL");
+gr->Mark(mglPoint(x1,-2*d,0),'T');	gr->Puts(mglPoint(x0,y-2*d),"'\\#\\^'","rL");
+gr->Mark(mglPoint(x1,-3*d,0),'V');	gr->Puts(mglPoint(x0,y-3*d),"'\\#v'","rL");
+gr->Mark(mglPoint(x1,-4*d,0),'L');	gr->Puts(mglPoint(x0,y-4*d),"'\\#<'","rL");
+gr->Mark(mglPoint(x1,-5*d,0),'R');	gr->Puts(mglPoint(x0,y-5*d),"'\\#>'","rL");
+ *MGL скрипт*
+NOT AVAILABLE
+
+
+File: mathgl_ru.info,  Node: Arrow styles sample,  Next: Text styles sample,  Prev: Line styles sample,  Up: Basic features
+
+9.5.5 Пример стилей стрелок
+----------------------------------------------
+
+ [image src="../png/sampled.png" ]
+
+*C++ код* float a=0.1,b=0.4,c=0.5;
+gr->Line(mglPoint(a,1),mglPoint(b,1),"k-A");		gr->Puts(mglPoint(c,1),"Style 'A' or 'A\\_'","rL");
+gr->Line(mglPoint(a,0.8),mglPoint(b,0.8),"k-V");	gr->Puts(mglPoint(c,0.8),"Style 'V' or 'V\\_'","rL");
+gr->Line(mglPoint(a,0.6),mglPoint(b,0.6),"k-K");	gr->Puts(mglPoint(c,0.6),"Style 'K' or 'K\\_'","rL");
+gr->Line(mglPoint(a,0.4),mglPoint(b,0.4),"k-I");	gr->Puts(mglPoint(c,0.4),"Style 'I' or 'I\\_'","rL");
+gr->Line(mglPoint(a,0.2),mglPoint(b,0.2),"k-D");	gr->Puts(mglPoint(c,0.2),"Style 'D' or 'D\\_'","rL");
+gr->Line(mglPoint(a,0),mglPoint(b,0),"k-S");		gr->Puts(mglPoint(c,0),"Style 'S' or 'S\\_'","rL");
+gr->Line(mglPoint(a,-0.2),mglPoint(b,-0.2),"k-O");	gr->Puts(mglPoint(c,-0.2),"Style 'O' or 'O\\_'","rL");
+gr->Line(mglPoint(a,-0.4),mglPoint(b,-0.4),"k-T");	gr->Puts(mglPoint(c,-0.4),"Style 'T' or 'T\\_'","rL");
+gr->Line(mglPoint(a,-0.6),mglPoint(b,-0.6),"k-_");	gr->Puts(mglPoint(c,-0.6),"Style '\\_' or none","rL");
+gr->Line(mglPoint(a,-0.8),mglPoint(b,-0.8),"k-AS");	gr->Puts(mglPoint(c,-0.8),"Style 'AS'","rL");
+gr->Line(mglPoint(a,-1),mglPoint(b,-1),"k-_A");		gr->Puts(mglPoint(c,-1),"Style '\\_A'","rL");
+
+a=-1;	b=-0.7;	c=-0.6;
+gr->Line(mglPoint(a,1),mglPoint(b,1),"kAA");		gr->Puts(mglPoint(c,1),"Style 'AA'","rL");
+gr->Line(mglPoint(a,0.8),mglPoint(b,0.8),"kVV");	gr->Puts(mglPoint(c,0.8),"Style 'VV'","rL");
+gr->Line(mglPoint(a,0.6),mglPoint(b,0.6),"kKK");	gr->Puts(mglPoint(c,0.6),"Style 'KK'","rL");
+gr->Line(mglPoint(a,0.4),mglPoint(b,0.4),"kII");	gr->Puts(mglPoint(c,0.4),"Style 'II'","rL");
+gr->Line(mglPoint(a,0.2),mglPoint(b,0.2),"kDD");	gr->Puts(mglPoint(c,0.2),"Style 'DD'","rL");
+gr->Line(mglPoint(a,0),mglPoint(b,0),"kSS");		gr->Puts(mglPoint(c,0),"Style 'SS'","rL");
+gr->Line(mglPoint(a,-0.2),mglPoint(b,-0.2),"kOO");	gr->Puts(mglPoint(c,-0.2),"Style 'OO'","rL");
+gr->Line(mglPoint(a,-0.4),mglPoint(b,-0.4),"kTT");	gr->Puts(mglPoint(c,-0.4),"Style 'TT'","rL");
+gr->Line(mglPoint(a,-0.6),mglPoint(b,-0.6),"k-__");	gr->Puts(mglPoint(c,-0.6),"Style '\\_\\_'","rL");
+gr->Line(mglPoint(a,-0.8),mglPoint(b,-0.8),"k-VA");	gr->Puts(mglPoint(c,-0.8),"Style 'VA'","rL");
+gr->Line(mglPoint(a,-1),mglPoint(b,-1),"k-AV");		gr->Puts(mglPoint(c,-1),"Style 'AV'","rL");
+ *MGL скрипт*
+NOT AVAILABLE
+
+
+File: mathgl_ru.info,  Node: Text styles sample,  Next: TeX parsing sample,  Prev: Arrow styles sample,  Up: Basic features
+
+9.5.6 Пример стилей текста
+--------------------------------------------
+
+ [image src="../png/sample4.png" ]
+
+*C++ код* gr->Putsw(mglPoint(0,1),L"Text can be in ASCII and in Unicode");
+gr->Puts(mglPoint(0,0.6),"It can be \\wire{wire}, \\big{big} or #r{colored}");
+gr->Puts(mglPoint(0,0.2),"One can change style in string: "
+        "\\b{bold}, \\i{italic, \\b{both}}");
+gr->Puts(mglPoint(0,-0.2),"Easy to \\a{overline} or "
+        "\\u{underline}");
+gr->Puts(mglPoint(0,-0.6),"Easy to change indexes ^{up} _{down} @{center}");
+gr->Puts(mglPoint(0,-1),"It parse TeX: \\int \\alpha \\cdot "
+        "\\sqrt3{sin(\\pi x)^2 + \\gamma_{i_k}} dx");
+ *MGL скрипт*
+text 0 1 'Text can be in ASCII and in Unicode'
+text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
+text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
+text 0 -0.2 'Easy to \a{overline} or \u{underline}'
+text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
+text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
+
+
+File: mathgl_ru.info,  Node: TeX parsing sample,  Next: Font faces sample,  Prev: Text styles sample,  Up: Basic features
+
+9.5.7 Пример TeX формулы
+-------------------------------------
+
+ [image src="../png/samplee.png" ]
+
+*C++ код* gr->Puts(mglPoint(0), "\\sqrt{\\frac{\\alpha^{\\gamma^2}+"
+        "\\overset 1{\\big\\infty}}{\\sqrt3{2+b}}}", 0, -4);
+ *MGL скрипт*
+text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}' '' -4
+
+
+File: mathgl_ru.info,  Node: Font faces sample,  Next: Colors sample,  Prev: TeX parsing sample,  Up: Basic features
+
+9.5.8 Примеры начертаний шрифта
+------------------------------------------------------
+
+ [image src="../png/fonts.png" ]
+
+*C++ код* float h=1.1, d=0.25;
+gr->LoadFont("STIX");		gr->Puts(mglPoint(0,h), "default font (STIX)");
+gr->LoadFont("adventor");	gr->Puts(mglPoint(0,h-d), "adventor font");
+gr->LoadFont("bonum");		gr->Puts(mglPoint(0,h-2*d), "bonum font");
+gr->LoadFont("chorus");		gr->Puts(mglPoint(0,h-3*d), "chorus font");
+gr->LoadFont("cursor");		gr->Puts(mglPoint(0,h-4*d), "cursor font");
+gr->LoadFont("heros");		gr->Puts(mglPoint(0,h-5*d), "heros font");
+gr->LoadFont("heroscn");	gr->Puts(mglPoint(0,h-6*d), "heroscn font");
+gr->LoadFont("pagella");	gr->Puts(mglPoint(0,h-7*d), "pagella font");
+gr->LoadFont("schola");		gr->Puts(mglPoint(0,h-8*d), "schola font");
+gr->LoadFont("termes");		gr->Puts(mglPoint(0,h-9*d), "termes font");
+ *MGL скрипт*
+NOT AVAILABLE
+
+
+File: mathgl_ru.info,  Node: Colors sample,  Next: Color schemes sample,  Prev: Font faces sample,  Up: Basic features
+
+9.5.9 Примеры цветов
+---------------------------------
+
+ [image src="../png/colors.png" ]
+
+*C++ код* //#LENUQ
+gr->FaceZ(-1,	-1, 0, 0.4, 0.3, "L#");	gr->Puts(mglPoint(-0.8,-0.9), "L", "C:w", -1.4);
+gr->FaceZ(-0.6,	-1, 0, 0.4, 0.3, "E#");	gr->Puts(mglPoint(-0.4,-0.9), "E", "C:w", -1.4);
+gr->FaceZ(-0.2,	-1, 0, 0.4, 0.3, "N#");	gr->Puts(mglPoint(0,  -0.9), "N", "C:w", -1.4);
+gr->FaceZ(0.2,	-1, 0, 0.4, 0.3, "U#");	gr->Puts(mglPoint(0.4,-0.9), "U", "C:w", -1.4);
+gr->FaceZ(0.6,	-1, 0, 0.4, 0.3, "Q#");	gr->Puts(mglPoint(0.8,-0.9), "Q", "C:w", -1.4);
+//#lenuq
+gr->FaceZ(-1,	-0.7, 0, 0.4, 0.3, "l#");	gr->Puts(mglPoint(-0.8,-0.6), "l", "C:k", -1.4);
+gr->FaceZ(-0.6,	-0.7, 0, 0.4, 0.3, "e#");	gr->Puts(mglPoint(-0.4,-0.6), "e", "C:k", -1.4);
+gr->FaceZ(-0.2,	-0.7, 0, 0.4, 0.3, "n#");	gr->Puts(mglPoint(0,  -0.6), "n", "C:k", -1.4);
+gr->FaceZ(0.2,	-0.7, 0, 0.4, 0.3, "u#");	gr->Puts(mglPoint(0.4,-0.6), "u", "C:k", -1.4);
+gr->FaceZ(0.6,	-0.7, 0, 0.4, 0.3, "q#");	gr->Puts(mglPoint(0.8,-0.6), "q", "C:k", -1.4);
+//#CMYkP
+gr->FaceZ(-1,	-0.4, 0, 0.4, 0.3, "C#");	gr->Puts(mglPoint(-0.8,-0.3), "C", "C:w", -1.4);
+gr->FaceZ(-0.6,	-0.4, 0, 0.4, 0.3, "M#");	gr->Puts(mglPoint(-0.4,-0.3), "M", "C:w", -1.4);
+gr->FaceZ(-0.2,	-0.4, 0, 0.4, 0.3, "Y#");	gr->Puts(mglPoint(0,  -0.3), "Y", "C:w", -1.4);
+gr->FaceZ(0.2,	-0.4, 0, 0.4, 0.3, "k#");	gr->Puts(mglPoint(0.4,-0.3), "k", "C:w", -1.4);
+gr->FaceZ(0.6,	-0.4, 0, 0.4, 0.3, "P#");	gr->Puts(mglPoint(0.8,-0.3), "P", "C:w", -1.4);
+//#cmywp
+gr->FaceZ(-1,	-0.1, 0, 0.4, 0.3, "c#");	gr->Puts(mglPoint(-0.8, 0), "c", "C:k", -1.4);
+gr->FaceZ(-0.6,	-0.1, 0, 0.4, 0.3, "m#");	gr->Puts(mglPoint(-0.4, 0), "m", "C:k", -1.4);
+gr->FaceZ(-0.2,	-0.1, 0, 0.4, 0.3, "y#");	gr->Puts(mglPoint(0,   0), "y", "C:k", -1.4);
+gr->FaceZ(0.2,	-0.1, 0, 0.4, 0.3, "w#");	gr->Puts(mglPoint(0.4, 0), "w", "C:k", -1.4);
+gr->FaceZ(0.6,	-0.1, 0, 0.4, 0.3, "p#");	gr->Puts(mglPoint(0.8, 0), "p", "C:k", -1.4);
+//#BGRHW
+gr->FaceZ(-1,	0.2, 0, 0.4, 0.3, "B#");	gr->Puts(mglPoint(-0.8, 0.3), "B", "C:w", -1.4);
+gr->FaceZ(-0.6,	0.2, 0, 0.4, 0.3, "G#");	gr->Puts(mglPoint(-0.4, 0.3), "G", "C:w", -1.4);
+gr->FaceZ(-0.2,	0.2, 0, 0.4, 0.3, "R#");	gr->Puts(mglPoint(0,   0.3), "R", "C:w", -1.4);
+gr->FaceZ(0.2,	0.2, 0, 0.4, 0.3, "H#");	gr->Puts(mglPoint(0.4, 0.3), "H", "C:w", -1.4);
+gr->FaceZ(0.6,	0.2, 0, 0.4, 0.3, "W#");	gr->Puts(mglPoint(0.8, 0.3), "W", "C:w", -1.4);
+//#bgrhw
+gr->FaceZ(-1,	0.2, 0, 0.4, 0.3, "b#");	gr->Puts(mglPoint(-0.8, 0.6), "b", "C:k", -1.4);
+gr->FaceZ(-0.6,	0.5, 0, 0.4, 0.3, "g#");	gr->Puts(mglPoint(-0.4, 0.6), "g", "C:k", -1.4);
+gr->FaceZ(-0.2,	0.2, 0, 0.4, 0.3, "r#");	gr->Puts(mglPoint(0,   0.6), "r", "C:k", -1.4);
+gr->FaceZ(0.2,	0.2, 0, 0.4, 0.3, "h#");	gr->Puts(mglPoint(0.4, 0.6), "h", "C:k", -1.4);
+gr->FaceZ(0.6,	0.2, 0, 0.4, 0.3, "w#");	gr->Puts(mglPoint(0.8, 0.6), "w", "C:k", -1.4);
+//#brighted
+gr->FaceZ(-1,	0.8, 0, 0.4, 0.3, "r1#");	gr->Puts(mglPoint(-0.8, 0.9), "r1", "C:w", -1.4);
+gr->FaceZ(-0.6,	0.8, 0, 0.4, 0.3, "r3#");	gr->Puts(mglPoint(-0.4, 0.9), "r3", "C:w", -1.4);
+gr->FaceZ(-0.2,	0.8, 0, 0.4, 0.3, "r5#");	gr->Puts(mglPoint(0,   0.9), "r5", "C:k", -1.4);
+gr->FaceZ(0.2,	0.8, 0, 0.4, 0.3, "r7#");	gr->Puts(mglPoint(0.4, 0.9), "r7", "C:k", -1.4);
+gr->FaceZ(0.6,	0.8, 0, 0.4, 0.3, "r9#");	gr->Puts(mglPoint(0.8, 0.9), "r9", "C:k", -1.4);
+ *MGL скрипт*
+#LENUQ
+facez -1   -1 0 0.4 0.3 'L#': text -0.8 -0.9 'L' 'C:w'
+facez -0.6 -1 0 0.4 0.3 'E#': text -0.4 -0.9 'E' 'C:w'
+facez -0.2 -1 0 0.4 0.3 'N#': text  0   -0.9 'N' 'C:w'
+facez  0.2 -1 0 0.4 0.3 'U#': text  0.4 -0.9 'U' 'C:w'
+facez  0.6 -1 0 0.4 0.3 'Q#': text  0.8 -0.9 'Q' 'C:w'
+#lenuq
+facez -1   -0.7 0 0.4 0.3 'l#': text -0.8 -0.6 'l' 'C:k'
+facez -0.6 -0.7 0 0.4 0.3 'e#': text -0.4 -0.6 'e' 'C:k'
+facez -0.2 -0.7 0 0.4 0.3 'n#': text  0   -0.6 'n' 'C:k'
+facez  0.2 -0.7 0 0.4 0.3 'u#': text  0.4 -0.6 'u' 'C:k'
+facez  0.6 -0.7 0 0.4 0.3 'q#': text  0.8 -0.6 'q' 'C:k'
+#CMYkP
+facez -1   -0.4 0 0.4 0.3 'C#': text -0.8 -0.3 'C' 'C:w'
+facez -0.6 -0.4 0 0.4 0.3 'M#': text -0.4 -0.3 'M' 'C:w'
+facez -0.2 -0.4 0 0.4 0.3 'Y#': text  0   -0.3 'Y' 'C:w'
+facez  0.2 -0.4 0 0.4 0.3 'k#': text  0.4 -0.3 'k' 'C:w'
+facez  0.6 -0.4 0 0.4 0.3 'P#': text  0.8 -0.3 'P' 'C:w'
+#lenuq
+facez -1   -0.1 0 0.4 0.3 'c#': text -0.8 0 'c' 'C:k'
+facez -0.6 -0.1 0 0.4 0.3 'm#': text -0.4 0 'm' 'C:k'
+facez -0.2 -0.1 0 0.4 0.3 'y#': text  0   0 'y' 'C:k'
+facez  0.2 -0.1 0 0.4 0.3 'w#': text  0.4 0 'w' 'C:k'
+facez  0.6 -0.1 0 0.4 0.3 'p#': text  0.8 0 'p' 'C:k'
+#BGRHW
+facez -1   0.2 0 0.4 0.3 'B#': text -0.8 0.3 'B' 'C:k'
+facez -0.6 0.2 0 0.4 0.3 'G#': text -0.4 0.3 'G' 'C:k'
+facez -0.2 0.2 0 0.4 0.3 'R#': text  0   0.3 'R' 'C:k'
+facez  0.2 0.2 0 0.4 0.3 'H#': text  0.4 0.3 'H' 'C:k'
+facez  0.6 0.2 0 0.4 0.3 'W#': text  0.8 0.3 'W' 'C:k'
+#bgrhw
+facez -1   0.5 0 0.4 0.3 'b#': text -0.8 0.6 'b' 'C:w'
+facez -0.6 0.5 0 0.4 0.3 'g#': text -0.4 0.6 'g' 'C:w'
+facez -0.2 0.5 0 0.4 0.3 'r#': text  0   0.6 'r' 'C:w'
+facez  0.2 0.5 0 0.4 0.3 'h#': text  0.4 0.6 'h' 'C:w'
+facez  0.6 0.5 0 0.4 0.3 'w#': text  0.8 0.6 'w' 'C:w'
+#brighted
+facez -1   0.8 0 0.4 0.3 'r1#': text -0.8 0.9 'r1' 'C:k'
+facez -0.6 0.8 0 0.4 0.3 'r3#': text -0.4 0.9 'r3' 'C:k'
+facez -0.2 0.8 0 0.4 0.3 'r5#': text  0   0.9 'r5' 'C:k'
+facez  0.2 0.8 0 0.4 0.3 'r7#': text  0.4 0.9 'r7' 'C:k'
+facez  0.6 0.8 0 0.4 0.3 'r9#': text  0.8 0.9 'r9' 'C:k'
+
+
+File: mathgl_ru.info,  Node: Color schemes sample,  Next: Normal transparency,  Prev: Colors sample,  Up: Basic features
+
+9.5.10 Примеры цветовых схем
+-----------------------------------------------
+
+ [image src="../png/color_schemes.png" ]
+
+*C++ код* mglData a(256,2);	a.Fill(-1,1);
+gr->SubPlot(2,10,0,0.2);	gr->Dens(a,"kw", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "kw", "C", -8);
+gr->SubPlot(2,10,1,0.2);	gr->Dens(a,"wk", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "wk", "C", -8);
+gr->SubPlot(2,10,2,0.2);	gr->Dens(a,"kHCcw", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "kHCcw", "C", -8);
+gr->SubPlot(2,10,3,0.2);	gr->Dens(a,"kBbcw", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "kBbcw", "C", -8);
+gr->SubPlot(2,10,4,0.2);	gr->Dens(a,"kRryw", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "kRryw", "C", -8);
+gr->SubPlot(2,10,5,0.2);	gr->Dens(a,"kGgew", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "kGgew", "C", -8);
+gr->SubPlot(2,10,6,0.2);	gr->Dens(a,"BbwrR", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "BbwrR", "C", -8);
+gr->SubPlot(2,10,7,0.2);	gr->Dens(a,"BbwgG", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "BbwgG", "C", -8);
+gr->SubPlot(2,10,8,0.2);	gr->Dens(a,"GgwmM", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "GgwmM", "C", -8);
+gr->SubPlot(2,10,9,0.2);	gr->Dens(a,"UuwqR", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "UuwqR", "C", -8);
+gr->SubPlot(2,10,10,0.2);	gr->Dens(a,"QqwcC", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "QqwcC", "C", -8);
+gr->SubPlot(2,10,11,0.2);	gr->Dens(a,"CcwyY", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "CcwyY", "C", -8);
+gr->SubPlot(2,10,12,0.2);	gr->Dens(a,"bcwyr", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "bcwyr", "C", -8);
+gr->SubPlot(2,10,13,0.2);	gr->Dens(a,"bwr", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "bwr", "C", -8);
+gr->SubPlot(2,10,14,0.2);	gr->Dens(a,"BbcyrR", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "BbcyrR", "C", -8);
+gr->SubPlot(2,10,15,0.2);	gr->Dens(a,"UbcyqR", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "UbcyqR", "C", -8);
+gr->SubPlot(2,10,16,0.2);	gr->Dens(a,"BbcwyrR", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "BbcwyrR", "C", -8);
+gr->SubPlot(2,10,17,0.2);	gr->Dens(a,"bcyr", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "bcyr", "C", -8);
+gr->SubPlot(2,10,18,0.2);	gr->Dens(a,"BbcyrR|", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "BbcyrR|", "C", -8);
+gr->SubPlot(2,10,19,0.2);	gr->Dens(a,"bgr", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "bgr", "C", -8);
+ *MGL скрипт*
+new a 256 2: fill a 'x'
+subplot 2 10 0 0.2:dens a 'kw'
+text -1.4 -0.3 'kw' '' -8
+subplot 2 10 1 0.2:dens a 'wk'
+text -1.4 -0.3 'wk' '' -8
+subplot 2 10 2 0.2:dens a 'kHCcw'
+text -1.4 -0.3 'kHCcw' '' -8
+subplot 2 10 3 0.2:dens a 'kBbcw'
+text -1.4 -0.3 'kBbcw' '' -8
+subplot 2 10 4 0.2:dens a 'kRryw'
+text -1.4 -0.3 'kRryw' '' -8
+subplot 2 10 5 0.2:dens a 'kGgew'
+text -1.4 -0.3 'kGgew' '' -8
+subplot 2 10 6 0.2:dens a 'BbwrR'
+text -1.4 -0.3 'BbwrR' '' -8
+subplot 2 10 7 0.2:dens a 'BbwgG'
+text -1.4 -0.3 'BbwgG' '' -8
+subplot 2 10 8 0.2:dens a 'GgwmM'
+text -1.4 -0.3 'GgwmM' '' -8
+subplot 2 10 9 0.2:dens a 'UuwqR'
+text -1.4 -0.3 'UuwqR' '' -8
+subplot 2 10 10 0.2:dens a 'QqwcC'
+text -1.4 -0.3 'QqwcC' '' -8
+subplot 2 10 11 0.2:dens a 'CcwyY'
+text -1.4 -0.3 'CcwyY' '' -8
+subplot 2 10 12 0.2:dens a 'bcwyr'
+text -1.4 -0.3 'bcwyr' '' -8
+subplot 2 10 13 0.2:dens a 'bwr'
+text -1.4 -0.3 'bwr' '' -8
+subplot 2 10 14 0.2:dens a 'BbcyrR'
+text -1.4 -0.3 'BbcyrR' '' -8
+subplot 2 10 15 0.2:dens a 'UbcyqR'
+text -1.4 -0.3 'UbcyqR' '' -8
+subplot 2 10 16 0.2:dens a 'BbcwyrR'
+text -1.4 -0.3 'BbcwyrR' '' -8
+subplot 2 10 17 0.2:dens a 'bcyr'
+text -1.4 -0.3 'bcyr' '' -8
+subplot 2 10 18 0.2:dens a 'BbcyrR|'
+text -1.4 -0.3 'BbcyrR|' '' -8
+subplot 2 10 19 0.2:dens a 'bgr'
+text -1.4 -0.3 'bgr' '' -8
+
+
+File: mathgl_ru.info,  Node: Normal transparency,  Next: Glass-like transparency,  Prev: Color schemes sample,  Up: Basic features
+
+9.5.11 Обычная прозрачность
+----------------------------------------------
+
+ [image src="../png/type0.png" ]
+
+*C++ код* gr->Alpha(true);	gr->Light(true);
+mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+
+gr->TranspType = 0;	gr->Clf();
+gr->SubPlot(2,2,0);	gr->Rotate(40,60);	gr->Surf(a);	gr->Box();
+gr->SubPlot(2,2,1);	gr->Rotate(40,60);	gr->Dens(a);	gr->Box();
+gr->SubPlot(2,2,2);	gr->Rotate(40,60);	gr->Cont(a);	gr->Box();
+gr->SubPlot(2,2,3);	gr->Rotate(40,60);	gr->Axial(a);	gr->Box();
+ *MGL скрипт*
+alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 0: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+
+
+File: mathgl_ru.info,  Node: Glass-like transparency,  Next: Lamp-like transparency,  Prev: Normal transparency,  Up: Basic features
+
+9.5.12 "Стеклянная" прозрачность
+------------------------------------------------------
+
+ [image src="../png/type1.png" ]
+
+*C++ код* gr->Alpha(true);	gr->Light(true);
+mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+
+gr->TranspType = 1;	gr->Clf();
+gr->SubPlot(2,2,0);	gr->Rotate(40,60);	gr->Surf(a);	gr->Box();
+gr->SubPlot(2,2,1);	gr->Rotate(40,60);	gr->Dens(a);	gr->Box();
+gr->SubPlot(2,2,2);	gr->Rotate(40,60);	gr->Cont(a);	gr->Box();
+gr->SubPlot(2,2,3);	gr->Rotate(40,60);	gr->Axial(a);	gr->Box();
+ *MGL скрипт*
+alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 1: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+
+
+File: mathgl_ru.info,  Node: Lamp-like transparency,  Prev: Glass-like transparency,  Up: Basic features
+
+9.5.13 "Ламповая" прозрачность
+--------------------------------------------------
+
+ [image src="../png/type2.png" ]
+
+*C++ код* gr->Alpha(true);	gr->Light(true);
+mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+
+gr->TranspType = 2;	gr->Clf();
+gr->SubPlot(2,2,0);	gr->Rotate(40,60);	gr->Surf(a);	gr->Box();
+gr->SubPlot(2,2,1);	gr->Rotate(40,60);	gr->Dens(a);	gr->Box();
+gr->SubPlot(2,2,2);	gr->Rotate(40,60);	gr->Cont(a);	gr->Box();
+gr->SubPlot(2,2,3);	gr->Rotate(40,60);	gr->Axial(a);	gr->Box();
+ *MGL скрипт*
+alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 2: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+
+
+File: mathgl_ru.info,  Node: Additional features,  Next: Advanced features,  Prev: Basic features,  Up: Samples
+
+9.6 Дополнительные возможности
+=======================================================
+
+* Menu:
+
+* Legend sample::
+* Adding mesh sample::
+* Surf & Cont sample::
+* Flow & Dens sample::
+* Several light sample::
+* Mirrored surface sample::
+* Cont with labels sample::
+* Ternary plot sample::
+* Coloring by coordinates sample::
+* Drops sample::
+* Molecules drawing sample::
+
+
+File: mathgl_ru.info,  Node: Legend sample,  Next: Adding mesh sample,  Up: Additional features
+
+9.6.1 Legend - пример использования
+------------------------------------------------------
+
+ [image src="../png/legend.png" ]
+
+*C++ код* mglData f(50,3);
+f.Modify("sin(2*pi*x*x)",0);
+f.Modify("sin(2*pi*x)",1);
+f.Modify("sin(2*pi*sqrt(x))",2);
+gr->Axis(mglPoint(0,-1),mglPoint(1,1));
+gr->Box(); gr->Plot(f); gr->Axis();
+gr->AddLegend("sin(\\pi {x^2})","b");
+gr->AddLegend("sin(\\pi x)","g*");
+gr->AddLegend("sin(\\pi \\sqrt{\\a x})","r+");
+gr->Legend();
+ *MGL скрипт*
+new f 50 3
+modify f 'sin(2*pi*x*x)'
+modify f 'sin(2*pi*x)' 1
+modify f 'sin(2*pi*sqrt(x))' 2
+axis 0 -1 1 1
+box
+plot f
+axis
+addlegend 'sin(\pi {x^2})' 'b'
+addlegend 'sin(\pi x)' 'g*'
+addlegend 'sin(\pi \sqrt{\a x})' 'r+'
+legend
+ *C-ый код* HMDT f = mgl_create_data_size(50,3,1);
+mgl_data_modify(f,"sin(2*pi*x*x)",0);
+mgl_data_modify(f,"sin(2*pi*x)",1);
+mgl_data_modify(f,"sin(2*pi*sqrt(x))",2);
+mgl_set_axis(gr, 0.,-1.,0., 1.,1.,1., 0.,0.,0.);
+mgl_box(gr,1);
+mgl_plot(gr,f,NULL);
+mgl_axis(gr,"xy");
+mgl_add_legend(gr,"sin(\\pi {x^2})","b");
+mgl_add_legend(gr,"sin(\\pi x)","g*");
+mgl_add_legend(gr,"sin(\\pi \\sqrt{\\a x})","r+");
+mgl_legend(gr,3,"rL",-1.,0.1);
+mgl_delete_data(f);
+ *Fortran* integer f, mgl_create_data_size
+f = mgl_create_data_size(50,3,1)
+call mgl_data_modify(f,'sin(2*pi*x*x)',0)
+call mgl_data_modify(f,'sin(2*pi*x)',1)
+call mgl_data_modify(f,'sin(2*pi*sqrt(x))',2)
+call mgl_set_axis(gr, 0.,-1.,0., 1.,1.,1., 0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_plot(gr,f,'')
+call mgl_axis(gr,'xy')
+call mgl_add_legend(gr,'sin(\pi {x^2})','b');
+call mgl_add_legend(gr,'sin(\pi x)','g*');
+call mgl_add_legend(gr,'sin(\pi \sqrt{\a x})','r+');
+call mgl_legend(gr,3,'rL',-1.,0.1);
+call mgl_delete_data(f)
+ *Python* f = mglData(50,3);
+f.Modify("sin(2*pi*x*x)",0);    f.Modify("sin(2*pi*x)",1);      f.Modify("sin(2*pi*sqrt(x))",2);
+gr.SetRanges(0,1,-1,1);     gr.Box();   gr.Axis();  gr.Plot(f);
+gr.AddLegend("sin(\\pi x^2)","b");
+gr.AddLegend("sin(\\pi x)","g*");
+gr.AddLegend("sin(\\pi\\sqrt{\\a x})","r+");
+gr.Legend();
+
+
+File: mathgl_ru.info,  Node: Adding mesh sample,  Next: Surf & Cont sample,  Prev: Legend sample,  Up: Additional features
+
+9.6.2 Добавляем сетку
+-----------------------------------
+
+ [image src="../png/samplea.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Light(true);
+gr->Alpha(true);
+gr->SubPlot(2,2,0); gr->Rotate(40,60);
+gr->Surf(a,"BbcyrR#");  gr->Box();
+gr->SubPlot(2,2,1); gr->Rotate(40,60);
+gr->Dens(a,"BbcyrR#");  gr->Box();
+gr->SubPlot(2,2,2); gr->Rotate(40,60);
+gr->Cont(a,"BbcyrR#");  gr->Box();
+gr->SubPlot(2,2,3); gr->Rotate(40,60);
+gr->Axial(a,"BbcyrR#"); gr->Box();
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+alpha on
+light on
+subplot 2 2 0
+rotate 40 60
+surf a 'BbcyrR#'
+box
+subplot 2 2 1
+rotate 40 60
+dens a 'BbcyrR#'
+box
+subplot 2 2 2
+rotate 40 60
+cont a 'BbcyrR#'
+box
+subplot 2 2 3
+rotate 40 60
+axial a 'BbcyrR#'
+box
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_set_alpha(gr,1);
+mgl_set_light(gr,1);
+mgl_subplot(gr,2,2,0); mgl_rotate(gr,40.,60.,0.);
+mgl_surf(gr,a,"BbcyrR#");       mgl_box(gr,1);
+mgl_subplot(gr,2,2,1); mgl_rotate(gr,40.,60.,0.);
+mgl_dens(gr,a,"BbcyrR#",-1.);   mgl_box(gr,1);
+mgl_subplot(gr,2,2,2); mgl_rotate(gr,40.,60.,0.);
+mgl_cont(gr,a,"BbcyrR#",7,NAN); mgl_box(gr,1);
+mgl_subplot(gr,2,2,3); mgl_rotate(gr,40.,60.,0.);
+mgl_axial(gr,a,"BbcyrR#",3);    mgl_box(gr,1);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+real zero, nan
+zero=0; nan=zero/zero
+a = mgl_create_data_size(50,40,1)
+call mgl_data_modify(a,'0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))',0)
+call mgl_set_alpha(gr,1)
+call mgl_set_light(gr,1)
+call mgl_subplot(gr,2,2,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_surf(gr,a,'BbcyrR#')
+call mgl_box(gr,1)
+call mgl_subplot(gr,2,2,1)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_dens(gr,a,'BbcyrR#',-1.)
+call mgl_box(gr,1)
+call mgl_subplot(gr,2,2,2)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_cont(gr,a,'BbcyrR#',7,nan)
+call mgl_box(gr,1)
+call mgl_subplot(gr,2,2,3)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_axial(gr,a,'BbcyrR#',3)
+call mgl_box(gr,1)
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Light(True);     gr.Alpha(True);
+gr.SubPlot(2,2,0);
+gr.Rotate(40,60);   gr.Surf(a,"BbcyrR#");   gr.Box();
+gr.SubPlot(2,2,1);
+gr.Rotate(40,60);   gr.Dens(a,"BbcyrR#");   gr.Box();
+gr.SubPlot(2,2,2);
+gr.Rotate(40,60);   gr.Cont(a,"BbcyrR#");   gr.Box();
+gr.SubPlot(2,2,3);
+gr.Rotate(40,60);   gr.Axial(a,"BbcyrR#");  gr.Box();
+
+
+File: mathgl_ru.info,  Node: Surf & Cont sample,  Next: Flow & Dens sample,  Prev: Adding mesh sample,  Up: Additional features
+
+9.6.3 Surf & Cont - пример использования
+-----------------------------------------------------------
+
+ [image src="../png/surf_cont_y.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Surf(a);
+gr->Cont(a,"y");
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+cont a 'y'
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_cont(gr,a,"y",7,NAN);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+real zero, nan
+zero = 0; nan = zero/zero
+a = mgl_create_data_size(50,40,1)
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_cont(gr,a,'y',7,nan)
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Surf(a);         gr.Cont(a,"y");
+
+
+File: mathgl_ru.info,  Node: Flow & Dens sample,  Next: Several light sample,  Prev: Surf & Cont sample,  Up: Additional features
+
+9.6.4 Flow & Dens - пример использования
+-----------------------------------------------------------
+
+ [image src="../png/flow_dens.png" ]
+
+*C++ код* mglData a(50,40), b(50,40), d(a);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+d.Modify("sqrt(v^2+w^2)",a,b);
+gr->Box();
+gr->Flow(a,b,"br"); gr->Dens(d,"BbcyrR");
+ *MGL скрипт*
+new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+copy d a
+modify d 'sqrt(v^2+w^2)' a b
+box
+flow a b 'br'
+dens d 'BbcyrR'
+ *C-ый код* HMDT a, b, d;
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+d = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_data_modify(d,"sqrt(v^2+w^2)",a,b);
+mgl_box(gr,1);
+mgl_flow_2d(gr,a,b,"br",5,1,0.);
+mgl_dens(gr,d,"BbcyrR",-1.);
+mgl_delete_data(a); mgl_delete_data(b); mgl_delete_data(d);
+ *Fortran* integer a,b,d, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+d = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_data_modify(d,"sqrt(v^2+w^2)",a,b);
+call mgl_box(gr,1)
+call mgl_flow_2d(gr,a,b,'br',5,1,0.)
+call mgl_dens(gr,d,'BbcyrR',-1.);
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+call mgl_delete_data(d)
+ *Python* a, b= mglData(50,40), mglData(50,40);   d = mglData(a)
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))");
+d.Modify("sqrt(v^2+w^2)",a,b);
+gr.Box();
+gr.Flow(a,b,"br");      gr.Dens(d,"BbcyrR");
+
+
+File: mathgl_ru.info,  Node: Several light sample,  Next: Mirrored surface sample,  Prev: Flow & Dens sample,  Up: Additional features
+
+9.6.5 Несколько источников света
+--------------------------------------------------------
+
+ [image src="../png/several_light.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Light(1,mglPoint(0,1,0),'c');
+gr->Light(2,mglPoint(1,0,0),'y');
+gr->Light(3,mglPoint(0,-1,0),'m');
+gr->Box();
+gr->Surf(a,"h");
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+light 1 0 1 0 'c'
+light 2 1 0 0 'y'
+light 3 0 -1 0 'm'
+box
+surf a 'h'
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_add_light_rgb(gr,1,0.,1.,0.,1, 0.,1.,1.,0.5);
+mgl_add_light_rgb(gr,2,1.,0.,0.,1, 1.,1.,0.,0.5);
+mgl_add_light_rgb(gr,3,0.,-1.,0.,1, 1.,0.,1.,0.5);
+mgl_box(gr,1);
+mgl_surf(gr,a,"h");
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_add_light_rgb(gr,1,0.,1.,0.,1, 0.,1.,1.,0.5)
+call mgl_add_light_rgb(gr,2,1.,0.,0.,1, 1.,1.,0.,0.5)
+call mgl_add_light_rgb(gr,3,0.,-1.,0.,1, 1.,0.,1.,0.5)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'h')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);       gr.Light(True);
+gr.AddLight(1,0,1,0,"c");
+gr.AddLight(2,1,0,0,"y");
+gr.AddLight(3,0,-1,0,"m");
+gr.Box();
+gr.Surf(a,"h")
+
+
+File: mathgl_ru.info,  Node: Mirrored surface sample,  Next: Cont with labels sample,  Prev: Several light sample,  Up: Additional features
+
+9.6.6 Отражение поверхности
+-----------------------------------------------
+
+ [image src="../png/mirror.png" ]
+
+*C++ код* mglData a(30,40),x(30),y1(40),y2(40);
+a.Modify("pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)");
+x.Fill(-1,1); y1.Fill(0,1); y2.Fill(0,-1);
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Surf(x,y1,a,"r"); gr->Surf(x,y2,a,"b");
+ *MGL скрипт*
+new a 30 40
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf a 'r'; yrange 0 1
+surf a 'b'; yrange 0 -1
+box
+ or
+new a 30 40
+var x 30 -1 1
+var y1 40 0 1
+var y2 40 0 -1
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf x y1 a 'r'
+surf x y2 a 'b'
+box
+ *C-ый код* HMDT a,x,y1,y2;
+a = mgl_create_data_size(30,40,1);
+x = mgl_create_data_size(30,1,1);
+y1 = mgl_create_data_size(40,1,1);
+y2 = mgl_create_data_size(40,1,1);
+mgl_data_modify(a,"pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)",0);
+mgl_data_fill(x,-1.,1.,'x');
+mgl_data_fill(y1,0.,1.,'x');
+mgl_data_fill(y2,0.,-1.,'x');
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf_xy(gr,x,y1,a,"r"); mgl_surf_xy(gr,x,y2,a,"b");
+mgl_delete_data(a); mgl_delete_data(y1);
+mgl_delete_data(x); mgl_delete_data(y2);
+ *Fortran* integer a,x,y1,y2, mgl_create_data_size
+a = mgl_create_data_size(30,40,1)
+x = mgl_create_data_size(30,1,1)
+y1 = mgl_create_data_size(40,1,1)
+y2 = mgl_create_data_size(40,1,1)
+call mgl_data_modify(a,'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)',0)
+call mgl_data_fill(x,-1.,1.,'x')
+call mgl_data_fill(y1,0.,1.,'x')
+call mgl_data_fill(y2,0.,-1.,'x')
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf_xy(gr,x,y1,a,'r')
+call mgl_surf_xy(gr,x,y2,a,'b')
+call mgl_delete_data(a)
+call mgl_delete_data(y1)
+call mgl_delete_data(x)
+call mgl_delete_data(y2)
+ *Python* a, x, y1, y2 = mglData(30,40), mglData(30), mglData(40), mglData(40);
+a.Modify("pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)");
+x.Fill(-1,1);   y1.Fill(0,1);   y2.Fill(0,-1);
+gr.Rotate(40,60);       gr.Light(True);         gr.Box();
+gr.Surf(x,y1,a,"r");    gr.Surf(x,y2,a,"b");
+
+
+File: mathgl_ru.info,  Node: Cont with labels sample,  Next: Ternary plot sample,  Prev: Mirrored surface sample,  Up: Additional features
+
+9.6.7 Cont и подписи - пример использования
+----------------------------------------------------------------------
+
+ [image src="../png/contt.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Box();
+gr->Cont(a,"BbcyrRt");
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+cont a 'BbcyrRt'
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_box(gr,1);
+mgl_cont(gr,a,"BbcyrRt",7,0);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_box(gr,1)
+call mgl_cont(gr,a,'BbcyrRt',7,0)
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Box();
+gr.Cont(a,"BbcyrRt");
+
+
+File: mathgl_ru.info,  Node: Ternary plot sample,  Next: Coloring by coordinates sample,  Prev: Cont with labels sample,  Up: Additional features
+
+9.6.8 Ternary plot - пример использования
+------------------------------------------------------------
+
+ [image src="../png/ternary.png" ]
+
+*C++ код* mglData x(50),y(50),rx(10),ry(10), a(20,30);
+a.Modify("4*x*y");
+x.Modify("0.25*(1+cos(2*pi*x))");
+y.Modify("0.25*(1+sin(2*pi*x))");
+rx.Modify("rnd"); ry.Modify("(1-v)*rnd",rx);
+gr->Text(mglPoint(-0.8,1.3), "Ternary plot (x+y+t=1)");
+gr->Ternary(true);
+gr->Plot(x,y,"r2");
+gr->Plot(rx,ry,"q^ ");
+gr->Cont(a);
+gr->Line(mglPoint(0.5,0), mglPoint(0,0.75), "g2");
+gr->Axis(); gr->Grid("xyz","B;");
+gr->Label('x',"x comp.");
+gr->Label('y',"y comp.");
+gr->Label('t',"t comp.");
+ *MGL скрипт*
+new rx 10
+new ry 10
+new x 50
+new y 50
+new a 20 30
+modify a '4*x*y'
+modify x '0.25*(1+cos(2*pi*x))'
+modify y '0.25*(1+sin(2*pi*x))'
+modify rx 'rnd'
+modify ry 'rnd*(1-v)' rx
+text -0.8 1.3 'Ternary plot (x+y+t=1)'
+ternary on
+plot x y 'r2'
+plot rx ry 'q^ '
+cont a
+line 0.5 0 0 0.75 'g2'
+axis
+grid 'xyz' 'B;'
+xlabel 'x comp.'
+ylabel 'y comp.'
+tlabel 't comp.'
+ *C-ый код* HMDT x,y,rx,ry,a;
+x = mgl_create_data_size(50,1,1);
+y = mgl_create_data_size(50,1,1);
+rx = mgl_create_data_size(50,1,1);
+ry = mgl_create_data_size(50,1,1);
+a = mgl_create_data_size(20,30,1);
+mgl_data_modify(x,"0.25*(1+cos(2*pi*x))",0);
+mgl_data_modify(y,"0.25*(1+sin(2*pi*x))",0);
+mgl_data_modify(rx,"rnd",0);
+mgl_data_modify_vw(ry,"(1-v)*rnd",rx,0);
+mgl_data_modify(a,"4*x*y",0);
+mgl_puts_ext(gr,-0.8,1.3,0.,"Ternary plot (x+y+t=1)","C",-1.4,'t');
+mgl_set_ternary(gr,1);
+mgl_plot_xy(gr,x,y,"r2");
+mgl_plot_xy(gr,rx,ry,"q^ ");
+mgl_cont(gr,a,"",7,0.);
+mgl_line(gr,0.5,0.,0.,0.,0.75,0.,"g2",2);
+mgl_axis(gr,"xyz");
+mgl_axis_grid(gr,"xyz","B:");
+mgl_label(gr,'x',"x comp");
+mgl_label(gr,'y',"y comp");
+mgl_label(gr,'t',"t comp");
+mgl_delete_data(a);
+mgl_delete_data(x);     mgl_delete_data(y);
+mgl_delete_data(rx);    mgl_delete_data(ry);
+ *Fortran* integer a,x,y,rx,ry, mgl_create_data_size
+x = mgl_create_data_size(50,1,1)
+y = mgl_create_data_size(50,1,1)
+rx = mgl_create_data_size(50,1,1)
+ry = mgl_create_data_size(50,1,1)
+a = mgl_create_data_size(20,30,1)
+call mgl_data_modify(x,'0.25*(1+cos(2*pi*x))',0)
+call mgl_data_modify(y,'0.25*(1+sin(2*pi*x))',0)
+call mgl_data_modify(rx,'rnd',0)
+call mgl_data_modify_vw(ry,'(1-v)*rnd',rx,rx)
+call mgl_data_modify(a,'4*x*y',0)
+call mgl_puts_ext(gr,-0.8,1.3,0.,'Ternary plot (x+y+t=1)','C',-1.4,'t')
+call mgl_set_ternary(gr,1)
+call mgl_plot_xy(gr,x,y,'r2')
+call mgl_plot_xy(gr,rx,ry,'q^ ')
+call mgl_cont(gr,a,'',7,0.)
+call mgl_line(gr,0.5,0.,0.,0.,0.75,0.,'g2',2)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B:')
+call mgl_label(gr,'x','x comp')
+call mgl_label(gr,'y','y comp')
+call mgl_label(gr,'t','t comp')
+call mgl_delete_data(a)
+call mgl_delete_data(x)
+call mgl_delete_data(y)
+call mgl_delete_data(rx)
+call mgl_delete_data(ry)
+ *Python* x, y, rx, ry, a = mglData(50), mglData(50), mglData(10), mglData(10), mglData(20,30);
+a.Modify("4*x*y");
+x.Modify("0.25*(1+cos(2*pi*x))");   y.Modify("0.25*(1+sin(2*pi*x))");
+rx.Modify("rnd");   ry.Modify("(1-v)*rnd",rx);
+gr.Puts(-0.8,1.3,0,"Ternary plot (x+y+t=1)","C",-1.4);
+gr.Ternary(True);
+gr.Plot(x,y,"r2");  gr.Plot(rx,ry,"q^ ");   gr.Cont(a);
+gr.Line(0.5,0,0,0,0.75,0,"g2");
+gr.Axis();          gr.Grid("xyz","B;");
+gr.Label("x","x comp.");
+gr.Label("y","y comp.");
+gr.Label("t","t comp.");
+
+
+File: mathgl_ru.info,  Node: Coloring by coordinates sample,  Next: Drops sample,  Prev: Ternary plot sample,  Up: Additional features
+
+9.6.9 Окрашивание по положению грани
+---------------------------------------------------------------
+
+ [image src="../png/surf3_rgbd.png" ]
+
+*C++ код* mglData a(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr->Rotate(40,60);
+gr->Box();
+gr->Surf3(a,"bgrd");
+ *MGL скрипт*
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+surf3 a 'bgrd'
+ *C-ый код* HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_surf3(gr,a,"bgrd",3);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'bgrd',3)
+call mgl_delete_data(a)
+ *Python* a = mglData(60,50,40);
+a.Modify("-2*((2*x-1)^2+(2*y-1)^2+(2*z-1)^4-(2*z-1)^2-0.1)");
+gr.Rotate(40,60);       gr.Box();
+gr.Surf3(a,"bgrd");
+
+
+File: mathgl_ru.info,  Node: Drops sample,  Next: Molecules drawing sample,  Prev: Coloring by coordinates sample,  Up: Additional features
+
+9.6.10 Drops - пример использования
+------------------------------------------------------
+
+ [image src="../png/drops.png" ]
+
+*C++ код* gr->Light(true);
+gr->Puts(mglPoint(-1,1.2),"sh=0");
+gr->Drop(mglPoint(-1,0),mglPoint(0,1),0.5,"r",0);
+gr->Puts(mglPoint(-0.33,1.2),"sh=0.33");
+gr->Drop(mglPoint(-0.33,0),mglPoint(0,1),0.5,"r",0.33);
+gr->Puts(mglPoint(0.33,1.2),"sh=0.67");
+gr->Drop(mglPoint(0.33,0),mglPoint(0,1),0.5,"r",0.67);
+gr->Puts(mglPoint(1,1.2),"sh=1");
+gr->Drop(mglPoint(1,0),mglPoint(0,1),0.5,"r",1);
+gr->Ball(mglPoint(-1,0,1),'k');
+gr->Ball(mglPoint(-0.33,0,1),'k');
+gr->Ball(mglPoint(0.33,0,1),'k');
+gr->Ball(mglPoint(1,0,1),'k');
+gr->Line(mglPoint(-1,0,1),mglPoint(1,0,1),"b");
+ *MGL скрипт*
+light on
+text -1 1.2 'sh=0'
+drop -1 0 0 1 0.5 'r' 0
+text -0.33 1.2 'sh=0.33'
+drop -0.33 0 0 1 0.5 'r' 0.33
+text 0.33 1.2 'sh=0.67'
+drop 0.33 0 0 1 0.5 'r' 0.67
+text 1 1.2 'sh=1'
+drop 1 0 0 1 0.5 'r' 1
+ball -1 0 1 'k'
+ball -0.33 0 1 'k'
+ball 0.33 0 1 'k'
+ball 1 0 1 'k'
+line -1 0 1 1 0 1 'b'
+new h 100
+modify h '0.25*(1+x)^2'
+plot h 'k|'
+text -1 0.6 'h\sim(1+sh)^2' 'rL'
+ *C-ый код* mgl_set_light(gr,1);
+mgl_puts(gr,-1.,1.2,0.,"sh=0");
+mgl_drop(gr,-1.,0.,0.,0.,1.,0.,0.5,"r",0.,1.);
+mgl_puts(gr,-0.33,1.2,0.,"sh=0.33");
+mgl_drop(gr,-0.33,0.,0.,0.,1.,0.,0.5,"r",0.33,1.);
+mgl_puts(gr,0.33,1.2,0.,"sh=0.67");
+mgl_drop(gr,0.33,0.,0.,0.,1.,0.,0.5,"r",0.67,1.);
+mgl_puts(gr,1.,1.2,0.,"sh=1");
+mgl_drop(gr,1.,0.,0.,0.,1.,0.,0.5,"r",1.,1.);
+mgl_ball_str(gr,-1.,0.,1.,"k");
+mgl_ball_str(gr,-0.33,0.,1.,"k");
+mgl_ball_str(gr,0.33,0.,1.,"k");
+mgl_ball_str(gr,1.,0.,1.,"k");
+mgl_line(gr,-1.,0.,1.,1.,0.,1.,"b",2);
+ *Fortran* call mgl_set_light(gr,1);
+call mgl_puts(gr,-1.,1.2,0.,"sh=0");
+call mgl_drop(gr,-1.,0.,0.,0.,1.,0.,0.5,"r",0.,1.);
+call mgl_puts(gr,-0.33,1.2,0.,"sh=0.33");
+call mgl_drop(gr,-0.33,0.,0.,0.,1.,0.,0.5,"r",0.33,1.);
+call mgl_puts(gr,0.33,1.2,0.,"sh=0.67");
+call mgl_drop(gr,0.33,0.,0.,0.,1.,0.,0.5,"r",0.67,1.);
+call mgl_puts(gr,1.,1.2,0.,"sh=1");
+call mgl_drop(gr,1.,0.,0.,0.,1.,0.,0.5,"r",1.,1.);
+call mgl_ball_str(gr,-1.,0.,1.,"k");
+call mgl_ball_str(gr,-0.33,0.,1.,"k");
+call mgl_ball_str(gr,0.33,0.,1.,"k");
+call mgl_ball_str(gr,1.,0.,1.,"k");
+call mgl_line(gr,-1.,0.,1.,1.,0.,1.,"b",2);
+ *Python* gr.Light(True);
+gr.Puts(-1,1.2,0,"sh=0","rC");
+gr.Drop(-1,0,0,0,1,0,0.5,"r",0);
+gr.Puts(-0.33,1.2,0,"sh=0.33","rC");
+gr.Drop(-0.33,0,0,0,1,0,0.5,"r",0.33);
+gr.Puts(0.33,1.2,0,"sh=0.67","rC");
+gr.Drop(0.33,0,0,0,1,0,0.5,"r",0.67);
+gr.Puts(1,1.2,0,"sh=1","rC");
+gr.Drop(1,0,0,0,1,0,0.5,"r",1);
+gr.Ball(-1,0,1,"k");    gr.Ball(-0.33,0,1,"k");
+gr.Ball(0.33,0,1,"k");  gr.Ball(1,0,1,"k");
+gr.Line(-1,0,1,1,0,1,"b");
+
+
+File: mathgl_ru.info,  Node: Molecules drawing sample,  Prev: Drops sample,  Up: Additional features
+
+9.6.11 Рисование молекул
+----------------------------------------
+
+ [image src="../png/molecule.png" ]
+
+*C++ код* gr->Alpha(true); gr->Light(true);
+gr->SubPlot(2,2,0);
+gr->Text(mglPoint(0,1.2),"Methane, CH_4",0,-3); gr->Rotate(60,120);
+gr->Sphere(mglPoint(0,0,0),0.25,"k");
+gr->Drop(mglPoint(0,0,0),mglPoint(0,0,1),0.35,"h",1,2);
+gr->Sphere(mglPoint(0,0,0.7),0.25,"g");
+gr->Drop(mglPoint(0,0,0),mglPoint(-0.94,0,-0.33),0.35,"h",1,2);
+gr->Sphere(mglPoint(-0.66,0,-0.23),0.25,"g");
+gr->Drop(mglPoint(0,0,0),mglPoint(0.47,0.82,-0.33),0.35,"h",1,2);
+gr->Sphere(mglPoint(0.33,0.57,-0.23),0.25,"g");
+gr->Drop(mglPoint(0,0,0),mglPoint(0.47,-0.82,-0.33),0.35,"h",1,2);
+gr->Sphere(mglPoint(0.33,-0.57,-0.23),0.25,"g");
+gr->SubPlot(2,2,1);
+gr->Text(mglPoint(0,1.2),"Water, H{_2}O",0,-3); gr->Rotate(60,100);
+gr->Sphere(mglPoint(0,0,0),0.25,"r");
+gr->Drop(mglPoint(0,0,0),mglPoint(0.3,0.5,0),0.3,"m",1,2);
+gr->Sphere(mglPoint(0.3,0.5,0),0.25,"g");
+gr->Drop(mglPoint(0,0,0),mglPoint(0.3,-0.5,0),0.3,"m",1,2);
+gr->Sphere(mglPoint(0.3,-0.5,0),0.25,"g");
+gr->SubPlot(2,2,2);
+gr->Text(mglPoint(0,1.2),"Oxygen, O_2",0,-3); gr->Rotate(60,120);
+gr->Drop(mglPoint(0,0.5,0),mglPoint(0,-0.3,0),0.3,"m",1,2);
+gr->Sphere(mglPoint(0,0.5,0),0.25,"r");
+gr->Drop(mglPoint(0,-0.5,0),mglPoint(0,0.3,0),0.3,"m",1,2);
+gr->Sphere(mglPoint(0,-0.5,0),0.25,"r");
+gr->SubPlot(2,2,3);
+gr->Text(mglPoint(0,1.2),"Ammonia, NH_3",0,-3); gr->Rotate(60,120);
+gr->Sphere(mglPoint(0,0,0),0.25,"b");
+gr->Drop(mglPoint(0,0,0),mglPoint(0.33,0.57,0),0.32,"n",1,2);
+gr->Sphere(mglPoint(0.33,0.57,0),0.25,"g");
+gr->Drop(mglPoint(0,0,0),mglPoint(0.33,-0.57,0),0.32,"n",1,2);
+gr->Sphere(mglPoint(0.33,-0.57,0),0.25,"g");
+gr->Drop(mglPoint(0,0,0),mglPoint(-0.65,0,0),0.32,"n",1,2);
+gr->Sphere(mglPoint(-0.65,0,0),0.25,"g");
+ *MGL скрипт*
+alpha on
+light on
+subplot 2 2 0
+text 0 1.2 'Methane, CH_4' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'k'
+drop 0 0 0 0 0 1 0.35 'h' 1 2
+sphere 0 0 0.7 0.25 'g'
+drop 0 0 0 -0.94 0 -0.33 0.35 'h' 1 2
+sphere -0.66 0 -0.23 0.25 'g'
+drop 0 0 0 0.47 0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 0.57 -0.23 0.25 'g'
+drop 0 0 0 0.47 -0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 -0.57 -0.23 0.25 'g'
+subplot 2 2 1
+text 0 1.2 'Water, H{_2}O' '' -3
+rotate 60 100
+sphere 0 0 0 0.25 'r'
+drop 0 0 0 0.3 0.5 0 0.3 'm' 1 2
+sphere 0.3 0.5 0 0.25 'g'
+drop 0 0 0 0.3 -0.5 0 0.3 'm' 1 2
+sphere 0.3 -0.5 0 0.25 'g'
+subplot 2 2 2
+text 0 1.2 'Oxygen, O_2' '' -3
+rotate 60 120
+drop 0 0.5 0 0 -0.3 0 0.3 'm' 1 2
+sphere 0 0.5 0 0.25 'r'
+drop 0 -0.5 0 0 0.3 0 0.3 'm' 1 2
+sphere 0 -0.5 0 0.25 'r'
+subplot 2 2 3
+text 0 1.2 0 'Ammonia, NH_3' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'b'
+drop 0 0 0 0.33 0.57 0 0.32 'n' 1 2
+sphere 0.33 0.57 0 0.25 'g'
+drop 0 0 0 0.33 -0.57 0 0.32 'n' 1 2
+sphere 0.33 -0.57 0 0.25 'g'
+drop 0 0 0 -0.65 0 0 0.32 'n' 1 2
+sphere -0.65 0 0 0.25 'g'
+
+
+File: mathgl_ru.info,  Node: Advanced features,  Prev: Additional features,  Up: Samples
+
+9.7 "Продвинутые" возможности
+===================================================
+
+* Menu:
+
+* Curvelinear coorinates sample::
+* 2-axes sample::
+* Semi-log sample::
+* Log-log sample::
+* Fitting sample::
+* Envelop sample::
+* Sew sample::
+* STFA sample::
+* PDE sample::
+* Beam tracing sample::
+* Parser sample::
+* Manual ticks sample::
+* ColumnPlot sample::
+* StickPlot sample::
+* Stereo image sample::
+
+
+File: mathgl_ru.info,  Node: Curvelinear coorinates sample,  Next: 2-axes sample,  Up: Advanced features
+
+9.7.1 Криволинейные координаты
+-----------------------------------------------------
+
+ [image src="../png/sample3.png" ]
+
+*C++ код* gr->Org = mglPoint(-1,1,-1);
+gr->SubPlot(2,2,0); gr->Rotate(60,40);
+gr->Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),"r2",100);
+gr->Axis(); gr->Grid();
+gr->Text(mglPoint(0,1.3,1),"Cartesian");
+gr->SubPlot(2,2,1); gr->Rotate(60,40);
+gr->SetFunc("y*sin(pi*x)","y*cos(pi*x)");
+gr->Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),"r2",100);
+gr->Axis(); gr->Grid();
+gr->Text(mglPoint(0,1.3,1),"Cylindrical");
+gr->SubPlot(2,2,2); gr->Rotate(60,40);
+gr->SetFunc("2*y*x","y*y - x*x");
+gr->Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),"r2",100);
+gr->Axis(); gr->Grid();
+gr->Text(mglPoint(0,1.3,1),"Parabolic");
+gr->SubPlot(2,2,3); gr->Rotate(60,40);
+gr->SetFunc("y*sin(pi*x)","y*cos(pi*x)","x+z");
+gr->Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),"r2",100);
+gr->Axis(); gr->Grid();
+gr->Text(mglPoint(0,1.3,1),"Spiral");
+gr->Axis(0,0,0); // set to default Cartesian
+ *MGL скрипт*
+origin -1 1 -1
+subplot 2 2 0
+rotate 60 40
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cartesian'
+subplot 2 2 1
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cylindrical'
+subplot 2 2 2
+rotate 60 40
+axis '2*y*x' 'y*y - x*x' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Parabolic'
+subplot 2 2 3
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Spiral'
+axis '' '' '' # set to default Cartesian
+ *C-ый код* mgl_set_origin(gr,-1,1,-1);
+mgl_subplot(gr,2,2,0); mgl_rotate(gr,60,40,0);
+mgl_line(gr,-1,0.5,0,1,0.5,0,"r2",100);
+mgl_axis(gr,"xyz"); mgl_axis_grid(gr,"xyz","B");
+mgl_text(gr,0,1.3,1,"Cartesian");
+mgl_subplot(gr,2,2,1); mgl_rotate(gr,60,40,0);
+mgl_set_func(gr,"y*sin(pi*x)","y*cos(pi*x)",0);
+mgl_line(gr,-1,0.5,0,1,0.5,0,"r2",100);
+mgl_axis(gr,"xyz"); mgl_axis_grid(gr,"xyz","B");
+mgl_text(gr,0,1.3,1,"Cylindrical");
+mgl_subplot(gr,2,2,2); mgl_rotate(gr,60,40,0);
+mgl_set_func(gr,"2*y*x","y*y - x*x","");
+mgl_line(gr,-1,0.5,0,1,0.5,0,"r2",100);
+mgl_axis(gr,"xyz"); mgl_axis_grid(gr,"xyz","B");
+mgl_text(gr,0,1.3,1,"Parabolic");
+mgl_subplot(gr,2,2,3); mgl_rotate(gr,60,40,0);
+mgl_set_func(gr,"y*sin(pi*x)","y*cos(pi*x)","x+z");
+mgl_line(gr,-1,0.5,0,1,0.5,0,"r2",100);
+mgl_axis(gr,"xyz"); mgl_axis_grid(gr,"xyz","B");
+mgl_text(gr,0,1.3,1,"Spiral");
+mgl_set_func(gr,0,0,0); /* set to default Cartesian */
+ *Fortran* call mgl_set_origin(gr,-1.,1.,-1.)
+call mgl_subplot(gr,2,2,0)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,'Cartesian')
+call mgl_subplot(gr,2,2,1)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_set_func(gr,'y*sin(pi*x)','y*cos(pi*x)','')
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,'Cylindrical')
+call mgl_subplot(gr,2,2,2)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_set_func(gr,'2*y*x','y*y - x*x','')
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,"Parabolic")
+call mgl_subplot(gr,2,2,3)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_set_func(gr,'y*sin(pi*x)','y*cos(pi*x)','x+z')
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,'Spiral')
+call mgl_set_func(gr,'','','') ! set to default Cartesian
+ *Python* gr.SetOrigin(-1,1,-1);
+gr.SubPlot(2,2,0);              gr.Rotate(60,40);
+gr.Line(-1,0.5,0,1,0.5,0,"r2",100);
+gr.Axis();              gr.Grid();
+gr.Puts(0,1.3,1,"Gartesian","rC",-1.5);
+gr.SubPlot(2,2,1);  gr.Rotate(60,40);
+gr.SetFunc("y*sin(pi*x)","y*cos(pi*x)");
+gr.Line(-1,0.5,0,1,0.5,0,"r2",100);
+gr.Axis();          gr.Grid();
+gr.Puts(0,1.3,1,"Cylindrical","rC",-1.5);
+gr.SubPlot(2,2,2);  gr.Rotate(60,40);
+gr.SetFunc("2*y*x","y*y-x*x");
+gr.Line(-1,0.5,0,1,0.5,0,"r2",100);
+gr.Axis();          gr.Grid();
+gr.Puts(0,1.3,1,"Parabolic","rC",-1.5);
+gr.SubPlot(2,2,3);  gr.Rotate(60,40);
+gr.SetFunc("y*sin(pi*x)","y*cos(pi*x)","x+z");
+gr.Line(-1,0.5,0,1,0.5,0,"r2",100);
+gr.Axis();          gr.Grid();
+gr.Puts(0,1.3,1,"Spiral","rC",-1.5);
+gr.SetFunc("","");   # set to default Gartesian
+
+
+File: mathgl_ru.info,  Node: 2-axes sample,  Next: Semi-log sample,  Prev: Curvelinear coorinates sample,  Up: Advanced features
+
+9.7.2 Несколько осей на одном графике
+----------------------------------------------------------------
+
+ [image src="../png/2_axis.png" ]
+
+*C++ код* mglData y1(50), y2(50);
+y1.Modify("0.3*sin(2*pi*x)"); y2.Modify("0.5+0.3*cos(2*pi*x)");
+gr->Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,-1,-1));
+gr->Axis(); gr->Label('y',"axis 1",0);
+gr->Plot(y1,"b");
+gr->Axis(mglPoint(0,0,0),mglPoint(1,1,1),mglPoint(1,1,1));
+gr->Axis(); gr->Label('y',"axis 2",0);
+gr->Stem(y2,"r");
+ *MGL скрипт*
+new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+axis -1 -1 -1 1 1 1
+origin -1 -1 -1
+axis
+ylabel 'axis 1' 0
+plot y1 'b'
+axis 0 0 0 1 1 1
+origin 1 1 1
+axis
+ylabel 'axis 2' 0
+stem y2 'r'
+ *C-ый код* HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,"0.3*sin(2*pi*x)",0);
+mgl_data_modify(y2,"0.5+0.3*cos(2*pi*x)",0);
+mgl_set_axis_2d(gr,-1.,1.,-1.,1.);
+mgl_set_origin(gr,-1.,-1.,-1.);
+mgl_axis(gr,"xyz");
+mgl_label_ext(gr,'y',"axis 1",0,-1.4,0.);
+mgl_plot(gr,y1,"b");
+mgl_set_axis_2d(gr,0.,0.,1.,1.);
+mgl_set_origin(gr,1.,1.,1.);
+mgl_axis(gr,"xyz");
+mgl_label_ext(gr,'y',"axis 2",0,-1.4,0.);
+mgl_stem(gr,y2,"r");
+ *Fortran* integer y1,y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1)
+y2 = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y1,'0.3*sin(2*pi*x)',0)
+call mgl_data_modify(y2,'0.5+0.3*cos(2*pi*x)',0)
+call mgl_set_axis_2d(gr,-1.,1.,-1.,1.)
+call mgl_set_origin(gr,-1.,-1.,-1.)
+call mgl_axis(gr,'xyz')
+call mgl_label_ext(gr,'y','axis 1',0,-1.4,0.)
+call mgl_plot(gr,y1,'b')
+call mgl_set_axis_2d(gr,0.,0.,1.,1.)
+call mgl_set_origin(gr,1.,1.,1.)
+call mgl_axis(gr,'xyz')
+call mgl_label_ext(gr,'y','axis 2',0,-1.4,0.)
+call mgl_stem(gr,y2,'r')
+ *Python* y1, y2 = mglData(50), mglData(50);
+y1.Modify("0.3*sin(2*pi*x)");   y2.Modify("0.5+0.3*cos(2*pi*x)");
+gr.SetRanges(-1,1,-1,1);   gr.SetOrigin(-1,-1);
+gr.Axis();      gr.Label("y","axis 1",0);
+gr.Plot(y1,"b");
+gr.SetRanges(0,1,0,1);      gr.SetOrigin(1,1);
+gr.Axis();      gr.Label("y","axis 2",0);
+gr.Stem(y2,"r");
+
+
+File: mathgl_ru.info,  Node: Semi-log sample,  Next: Log-log sample,  Prev: 2-axes sample,  Up: Advanced features
+
+9.7.3 Semi-log - пример использования
+--------------------------------------------------------
+
+ [image src="../png/semilog.png" ]
+
+*C++ код* mglData x(2000), y(2000);
+x.Modify("0.01/(x+10^(-5))"); y.Modify("sin(1/v)",x);
+gr->Axis(mglPoint(0.01,-1),mglPoint(1000,1),mglPoint(0.01,-1));
+gr->SetFunc("lg(x)",0);  gr->SetTicks('x',0);
+gr->Box();
+gr->Plot(x,y,"b2");
+gr->Axis(); gr->Grid("xy","g");
+gr->Label('x',"x",0);   gr->Label('y', "y = sin 1/x",0);
+ *MGL скрипт*
+new x 2000
+new y 2000
+modify x '0.01/(x+10^(-5))'
+modify y 'sin(1/v)' x
+xrange 0.01 1000
+origin 0.01 -1 0
+xtick 0
+axis 'lg(x)' '' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g'
+xlabel 'x' 0
+ylabel 'y = sin 1/x' 0
+box
+ *C-ый код* HMDT x = mgl_create_data_size(2000,1,1);
+HMDT y = mgl_create_data_size(2000,1,1);
+mgl_data_modify(x,"0.01/(x+10^(-5))",0);
+mgl_data_modify_vw(y,"sin(1/v)",x,0);
+mgl_set_axis(gr,0.01,-1.,0.,1000.,1.,0.,0.01,-1.,0.);
+mgl_set_func(gr,"lg(x)",0,0);
+mgl_set_ticks(gr,0.,-5.,-5.);
+mgl_box(gr,1);
+mgl_plot_xy(gr,x,y,"b2");
+mgl_axis(gr,"xy"); mgl_axis_grid(gr,"xy","g");
+mgl_label_ext(gr,'x',"x",0,-1.4,0);
+mgl_label_ext(gr,'y', "y = sin 1/x",0,-1.4,0);
+mgl_delete_data(x); mgl_delete_data(y);
+ *Fortran* integer x,y, mgl_create_data_size
+x = mgl_create_data_size(2000,1,1)
+y = mgl_create_data_size(2000,1,1)
+call mgl_data_modify(x,'0.01/(x+10^(-5))',0)
+call mgl_data_modify_vw(y,'sin(1/v)',x,x)
+call mgl_set_axis(gr,0.01,-1.,0.,1000.,1.,0.,0.01,-1.,0.)
+call mgl_set_func(gr,'lg(x)','','')
+call mgl_set_ticks(gr,0.,-5.,-5.)
+call mgl_box(gr,1)
+call mgl_plot_xy(gr,x,y,'b2')
+call mgl_axis(gr,'xy')
+call mgl_axis_grid(gr,'xy','g')
+call mgl_label_ext(gr,'x','x',0.,-1.4,0.)
+call mgl_label_ext(gr,'y', 'y = sin 1/x',0.,-1.4,0.)
+call mgl_delete_data(x)
+call mgl_delete_data(y)
+ *Python* TO BE DONE
+
+
+File: mathgl_ru.info,  Node: Log-log sample,  Next: Fitting sample,  Prev: Semi-log sample,  Up: Advanced features
+
+9.7.4 Log-log - пример использования
+-------------------------------------------------------
+
+ [image src="../png/loglog.png" ]
+
+*C++ код* mglData x(100), y(100);
+x.Modify("pow(10,6*x-3)"); y.Modify("sqrt(1+v^2)",x);
+gr->Axis(mglPoint(0.001,0.1),mglPoint(1000,1000),mglPoint(0.001,0.1));
+gr->SetFunc("lg(x)","lg(y)");
+gr->SetTicks('x',0);    gr->SetTicks('y',0);
+gr->Box();
+gr->Plot(x,y,"b2");
+gr->Axis(); gr->Grid("xy","g;");
+gr->Label('x',"x",0); gr->Label('y', "y=\\sqrt{1+x^2}",0);
+ *MGL скрипт*
+new x 100
+new y 100
+modify x 'pow(10,6*x-3)'
+modify y 'sqrt(1+v^2)' x
+axis 0.001 0.1 1000 1000
+xtick 0
+ytick 0
+axis 'lg(x)' 'lg(y)' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g;'
+xlabel 'x' 0
+ylabel 'y=\sqrt{1+x^2}' 0
+box
+ *C-ый код* HMDT x = mgl_create_data_size(100,1,1);
+HMDT y = mgl_create_data_size(100,1,1);
+mgl_data_modify(x,"pow(10,6*x-3)",0);
+mgl_data_modify_vw(y,"sqrt(1+v^2)",x,0);
+mgl_set_axis(gr,0.001,0.1,0.,1000.,1000.,0.,0.001,0.1,0.);
+mgl_set_func(gr,"lg(x)","lg(y)",0);
+mgl_set_ticks(gr,0.,0.,-5.);
+mgl_box(gr,1);
+mgl_plot_xy(gr,x,y,"b2");
+mgl_axis(gr,"xy"); mgl_axis_grid(gr,"xy","g;");
+mgl_label_ext(gr,'x',"x",0,-1.4,0);
+mgl_label_ext(gr,'y', "y=\\sqrt{1+x^2}",0,-1.4,0);
+mgl_delete_data(x); mgl_delete_data(y);
+ *Fortran* integer x,y, mgl_create_data_size
+x = mgl_create_data_size(100,1,1)
+y = mgl_create_data_size(100,1,1)
+call mgl_data_modify(x,'pow(10,6*x-3)',0)
+call mgl_data_modify_vw(y,'sqrt(1+v^2)',x,x)
+call mgl_set_axis(gr,0.001,0.1,0.,1000.,1000.,0.,0.001,0.1,0.)
+call mgl_set_func(gr,'lg(x)','lg(y)','')
+call mgl_set_ticks(gr,0.,0.,-5.)
+call mgl_box(gr,1)
+call mgl_plot_xy(gr,x,y,'b2')
+call mgl_axis(gr,'xy')
+call mgl_axis_grid(gr,'xy','g;')
+call mgl_label_ext(gr,'x','x',0.,-1.4,0)
+call mgl_label_ext(gr,'y', 'y=\sqrt{1+x^2}',0.,-1.4,0)
+call mgl_delete_data(x)
+call mgl_delete_data(y)
+ *Python* x, y = mglData(100), mglData(100);
+x.Modify("pow(10,6*x-3)");          y.Modify("sqrt(1+v^2)",x);
+gr.SetRanges(0.001,1000,0.1,1000);  gr.SetOrigin(0.001,0.1);
+gr.SetFunc("lg(x)","lg(y)");
+gr.SetTicks("x",0);     gr.SetTicks("y",0);
+gr.Box();               gr.Plot(x,y,"b2");
+gr.Axis();              gr.Grid("xy","g;");
+gr.Label("x","x",0);    gr.Label("y","y=\\sqrt{1+x^2}",0);
+
+
+File: mathgl_ru.info,  Node: Fitting sample,  Next: Envelop sample,  Prev: Log-log sample,  Up: Advanced features
+
+9.7.5 Fitting - пример использования
+-------------------------------------------------------
+
+ [image src="../png/fit.png" ]
+
+*C++ код* mglData rnd(100), in(100), res;
+rnd.Fill("0.4*rnd+0.1+sin(2*pi*x)", gr->Min, gr->Max);
+in.Fill("0.3+sin(2*pi*x)", gr->Min, gr->Max);
+gr->Axis(mglPoint(-1,-2), mglPoint(1,2));
+gr->Plot(rnd, ". ");
+gr->Box();
+float ini[3] = {1,1,3};
+gr->Fit(res, rnd, "a+b*sin(c*x)", "abc", ini);
+gr->Plot(res, "r");
+gr->Plot(in, "b");
+gr->Text(mglPoint(-1, -1.3), "fitted:", "L:r", -1);
+gr->PutsFit(mglPoint(0, -1.8), "y = ", "C:r", -1);
+gr->Text(mglPoint(0, 2.2), "initial: y = 0.3+sin(2\\pi x)", "C:b", -1);
+ *MGL скрипт*
+new rnd 100
+fill rnd '0.4*rnd+0.1+sin(2*pi*x)'
+new in 100
+fill in '0.3+sin(2*pi*x)'
+yrange -2 2
+plot rnd '. '
+box
+list ini 1 1 3
+fit res rnd 'a+b*sin(c*x)' 'abc' ini
+plot res 'r'
+plot in 'b'
+text -1 -1.3 'fitted:' 'L:r' -1
+putsfit 0 -1.8 'y = ' 'C:r'
+text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
+ *C-ый код* HMDT rnd,in,res;
+float ini[3] = {1,1,3};
+rnd = mgl_create_data_size(100,1,1);
+in = mgl_create_data_size(100,1,1);
+res = mgl_create_data();
+mgl_data_modify(rnd,"0.4*rnd+0.1+sin(4*pi*x)",0);
+mgl_data_modify(in,"0.3+sin(4*pi*x)",0);
+mgl_set_axis_2d(gr,-1.,-2.,1.,2.);
+mgl_plot(gr,rnd,". ");
+mgl_box(gr,1);
+mgl_fit_1(gr,res,rnd,"a+b*sin(c*x)","abc",ini);
+mgl_plot(gr,res,"r");   mgl_plot(gr,in,"b");
+mgl_puts_ext(gr,-1.,-1.3,0.,"fitted:","L:r",-1.,'t');
+mgl_puts_fit(gr,0.,-1.8,0.,"y = ","C:r",-1.);
+mgl_puts_ext(gr,0.,2.2,0.,"initial: y = 0.3+sin(2\\pi x)","C:b", -1., 't');
+ *Fortran* integer rnd,in,res, mgl_create_data_size
+real ini(3)
+ini(1)=1;   ini(2)=1;   ini(3)=3;
+rnd = mgl_create_data_size(100,1,1);
+in = mgl_create_data_size(100,1,1);
+res = mgl_create_data();
+call mgl_data_modify(rnd,"0.4*rnd+0.1+sin(4*pi*x)",0);
+call mgl_data_modify(in,"0.3+sin(4*pi*x)",0);
+call mgl_set_axis_2d(gr,-1.,-2.,1.,2.);
+call mgl_plot(gr,rnd,". ");
+call mgl_box(gr,1);
+call mgl_fit_1(gr,res,rnd,"a+b*sin(c*x)","abc",ini);
+call mgl_plot(gr,res,"r");
+call mgl_plot(gr,in,"b");
+call mgl_puts_ext(gr,-1.,-1.3,0.,"fitted:","L:r",-1.,'t');
+call mgl_puts_fit(gr,0.,-1.8,0.,"y = ","C:r",-1.);
+call mgl_puts_ext(gr,0.,2.2,0.,"initial: y = 0.3+sin(2\\pi x)","C:b", -1., 't');
+ *Python* rnd, In, res, ini = mglData(100), mglData(100), mglData(), mglData(3);
+rnd.Modify("0.4*rnd+0.1+sin(4*pi*x)");
+In.Modify("0.3+sin(4*pi*x)");
+gr.SetRanges(-1,1,-2,2);
+gr.Plot(rnd,". ");
+gr.Box();
+ini[0], ini[1], ini[2] = 1, 1, 3;
+gr.Fit(res,rnd,"a+b*sin(c*x)","abc",ini);
+gr.Plot(res,"r");   gr.Plot(In,"b");
+gr.Puts(-1,-1.3,0,"fitted:","L:r",-1);
+gr.PutsFit(0,-1.8,0,"y = ","C:r",-1);
+gr.Puts(0,2.2,0,"initial: y = 0.3+sin(2\\pi x)","C:b",-1);
+
+
+File: mathgl_ru.info,  Node: Envelop sample,  Next: Sew sample,  Prev: Fitting sample,  Up: Advanced features
+
+9.7.6 Envelop - пример использования
+-------------------------------------------------------
+
+ [image src="../png/envelop.png" ]
+
+*C++ код* mglData a(1000);
+a.Fill("exp(-8*x^2)*sin(10*pi*x)", gr->Min, gr->Max);
+gr->Plot(a, "b");
+a.Envelop('x');
+gr->Plot(a, "r");
+gr->Axis();
+ *MGL скрипт*
+new a 1000
+fill a 'exp(-8*x^2)*sin(10*pi*x)'
+plot a 'b'
+envelop a
+plot a 'r'
+axis
+ *C-ый код* HMDT a = mgl_create_data_size(1000,1,1);
+mgl_data_fill_eq(gr,a, "exp(-8*x^2)*sin(10*pi*x)", 0,0);
+mgl_plot(gr,a,"b");
+mgl_data_envelop(a,'x');
+mgl_plot(gr,a,"r");
+mgl_axis(gr,"xyz");
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(1000,1,1)
+call mgl_data_fill_eq(gr,a, 'exp(-8*x^2)*sin(10*pi*x)', 0,0)
+call mgl_plot(gr,a,'b')
+call mgl_data_envelop(a,'x')
+call mgl_plot(gr,a,'r')
+call mgl_axis(gr,'xyz')
+ *Python* a = mglData(1000);
+gr.Fill(a, "exp(-8*x^2)*sin(10*pi*x)");
+gr.Plot(a,"b");
+a.Envelop("x");
+gr.Plot(a,"r");
+gr.Axis();
+
+
+File: mathgl_ru.info,  Node: Sew sample,  Next: STFA sample,  Prev: Envelop sample,  Up: Advanced features
+
+9.7.7 Sew - пример использования
+---------------------------------------------------
+
+ [image src="../png/sew.png" ]
+
+*C++ код* mglData a(100, 100);
+a.Modify("mod((y^2-(1-x)^2)/2,0.1)");
+gr->Rotate(40, 60);
+gr->Light(true);
+gr->Alpha(true);
+gr->Surf(a, "b");
+a.Sew("xy", 0.1);
+gr->Surf(a, "r");
+gr->Box();
+ *MGL скрипт*
+new a 100 100
+modify a 'mod((y^2-(1-x)^2)/2,0.1)'
+rotate 40 60
+light on
+alpha on
+surf a 'b'
+sew a 'xy' 0.1
+surf a 'r'
+box
+ *C-ый код* HMDT a = mgl_create_data_size(100,100,1);
+mgl_data_modify(a, "mod((y^2-(1-x)^2)/2, 0.1)", 0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_surf(gr,a,"b");
+mgl_data_sew(a,"xy",0.1);
+mgl_surf(gr,a,"r");
+mgl_box(gr,1);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(100,100,1)
+call mgl_data_modify(a, 'mod((y^2-(1-x)^2)/2, 0.1)', 0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_surf(gr,a,'b')
+call mgl_data_sew(a,'xy',0.1)
+call mgl_surf(gr,a,'r')
+call mgl_box(gr,1)
+ *Python* a = mglData(100, 100);
+a.Modify("mod((y^2-(1-x)^2)/2, 0.1)");
+gr.Rotate(40, 60);  gr.Light(True);     gr.Alpha(True);
+gr.Surf(a, "b");
+a.Sew("xy", 0.1);
+gr.Surf(a, "r");
+gr.Box();
+
+
+File: mathgl_ru.info,  Node: STFA sample,  Next: PDE sample,  Prev: Sew sample,  Up: Advanced features
+
+9.7.8 STFA - пример использования
+----------------------------------------------------
+
+ [image src="../png/stfa.png" ]
+
+*C++ код* mglData a(2000), b(2000);
+a.Fill("cos(50*pi*x)*(x<-.5)+cos(100*pi*x)*(x<0)*(x>-.5)+ \
+        cos(200*pi*x)*(x<.5)*(x>0)+cos(400*pi*x)*(x>.5)",
+        gr->Min, gr->Max);
+gr->SubPlot(1, 2, 0);
+gr->Plot(a);
+gr->Axis();
+gr->Label('x', "\\i t");
+gr->SubPlot(1, 2, 1);
+gr->STFA(a, b, 64);
+gr->Axis();
+gr->Label('x', "\\i t");
+gr->Label('y', "\\omega", 0);
+ *MGL скрипт*
+new a 2000
+new b 2000
+fill a 'cos(50*pi*x)*(x<-.5)+cos(100*pi*x)*(x<0)*(x>-.5)+
+        cos(200*pi*x)*(x<.5)*(x>0)+cos(400*pi*x)*(x>.5)'
+subplot 1 2 0
+plot a
+axis
+xlabel '\i t'
+subplot 1 2 1
+stfa a b 64 ''
+axis
+ylabel '\omega' 0
+xlabel '\i t'
+ *C-ый код* HMDT a = mgl_create_data_size(2000,1,1);
+HMDT b = mgl_create_data_size(2000,1,1);
+mgl_data_fill_eq(gr, a, "cos(50*pi*x)*(x<-.5)+cos(100*pi*x)*(x<0)*(x>-.5)+ \
+        cos(200*pi*x)*(x<.5)*(x>0)+cos(400*pi*x)*(x>.5)",0,0);
+mgl_subplot(gr,1,2,0);
+mgl_plot(gr,a,"");
+mgl_axis(gr,"xy");
+mgl_label(gr,'x', "\\i t");
+mgl_subplot(gr,1,2,1);
+mgl_stfa(gr,a,b,64,"",0.);
+mgl_axis(gr,"xy");
+mgl_label(gr,'x', "\\i t");
+mgl_label(gr,'y', "\\omega");
+ *Fortran* integer a,b, mgl_create_data_size
+a = mgl_create_data_size(2000,1,1)
+b = mgl_create_data_size(2000,1,1)
+call mgl_data_fill_eq(gr, a, 'cos(50*pi*x)*(x<-.5)+cos(100*pi*x)*(x<0)*(x>-.5)+ &
+        cos(200*pi*x)*(x<.5)*(x>0)+cos(400*pi*x)*(x>.5)',0,0)
+call mgl_subplot(gr,1,2,0)
+call mgl_plot(gr,a,'')
+call mgl_axis(gr,'xy')
+call mgl_label(gr,'x', '\i t')
+call mgl_subplot(gr,1,2,1)
+call mgl_stfa(gr,a,b,64,'',0.)
+call mgl_axis(gr,'xy')
+call mgl_label(gr,'x', '\i t')
+call mgl_label(gr,'y', '\omega')
+ *Python* a, b = mglData(2000), mglData(2000);
+gr.Fill(a,"cos(50*pi*x)*(x<-.5)+cos(100*pi*x)*(x<0)*(x>-.5)+ \
+        cos(200*pi*x)*(x<.5)*(x>0)+cos(400*pi*x)*(x>.5)");
+gr.SubPlot(1, 2, 0);
+gr.Plot(a);
+gr.Axis();
+gr.Label('x', "\\i t");
+gr.SubPlot(1, 2, 1);
+gr.STFA(a, b, 64);
+gr.Axis();
+gr.Label('x', "\\i t");
+gr.Label('y', "\\omega", 0);
+
+
+
+Local Variables:
+coding: utf-8
+End:
diff --git a/debian/tmp/usr/share/info/mathgl_ru.info-4 b/debian/tmp/usr/share/info/mathgl_ru.info-4
new file mode 100644
index 0000000..b3379ba
Binary files /dev/null and b/debian/tmp/usr/share/info/mathgl_ru.info-4 differ
diff --git a/debian/tmp/usr/share/info/mgl_en.info b/debian/tmp/usr/share/info/mgl_en.info
new file mode 100644
index 0000000..8c2df38
--- /dev/null
+++ b/debian/tmp/usr/share/info/mgl_en.info
@@ -0,0 +1,7303 @@
+This is mgl_en.info, produced by makeinfo version 4.13 from mgl_en.texi.
+
+This manual is for MathGL (version 1.11), a collection of classes and
+routines for scientific plotting. Please report any errors in this
+manual to <mathgl.abalakin at gmail.org>.
+
+   Copyright (C) 2008 Alexey Balakin.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with the Front-Cover Texts
+     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+     below.  A copy of the license is included in the section entitled
+     "GNU Free Documentation License."
+
+     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+     and modify this GNU manual.  Buying copies from the FSF supports
+     it in developing GNU and promoting software freedom."
+
+
+File: mgl_en.info,  Node: Top,  Next: MGL interface,  Up: (dir)
+
+MGL script language
+*******************
+
+This file documents the MGL script language. It corresponds to release
+1.11 of the MathGL library. Please report any errors in this manual to
+<mathgl.abalakin at gmail.org>. More information about MGL and MathGL can
+be found at the project homepage, `http://mathgl.sourceforge.net/'.
+
+   Copyright (C) 2008 Alexey A. Balakin.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with the Front-Cover Texts
+     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+     below.  A copy of the license is included in the section entitled
+     "GNU Free Documentation License."
+
+     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+     and modify this GNU manual.  Buying copies from the FSF supports
+     it in developing GNU and promoting software freedom."
+
+* Menu:
+
+* MGL interface::
+* Examples::
+* Samples::
+* Copying This Manual::
+* Index::
+
+
+File: mgl_en.info,  Node: MGL interface,  Next: Examples,  Up: Top
+
+1 MGL language
+**************
+
+MathGL library supports the simplest scripts for data handling and
+plotting. These scripts can be used independently (with the help of
+UDAV, mgl2png, mgl2eps, mgl2svg programs and others, *note Utilities::)
+or in the frame of the library using.
+
+   MGL script language is rather simple. Each string is a command.
+First word of string is the name of command. Other words are command
+arguments. Command may have up to 1000 arguments (at least for now).
+Words are separated from each other by space or tabulation symbol. The
+upper or lower case of words is sufficient, i.e. variables A and A are
+different variables. Symbol `#' starts the comment (all characters
+after # will be ignored). The exception is situation when `#' is a part
+of some string. Also options can be specified after symbol `;' (*note
+Command options::). Symbol `:' starts new command (like new line
+character) if it is not placed inside a string or inside brackets.
+
+   If string contain references to external parameters (substrings
+`$0', `$1' ... `$9') or definitions (substrings `$a', `$b' ... `$z')
+then before execution the values of parameter/definition will be
+substituted instead of reference. It allows to use the same MGL script
+for different parameters (filenames, paths, condition and so on).
+
+   Argument can be a string, a variable name or a number.
+   * The string is any symbols between ordinary marks `''.
+
+   * Usually variable have a name which is arbitrary combination of
+     symbols (except spaces and `'') started from a letter and with
+     length less than 64. A temporary array can be used as variable:
+        * sub-arrays (like in *note subdata:: command) as command
+          argument. For example, `a(1)' or `a(1,:)' or `a(1,:,:)' is
+          second row, `a(:,2)' or `a(:,2,:)' is third column,
+          `a(:,:,0)' is first slice and so on. Also you can extract a
+          part of array from m-th to n-th element by code `a(m:n,:,:)'
+          or just `a(m:n)'.
+
+        * any column combinations defined by formulas, like
+          `a('n*w^2/exp(t)')' if names for data columns was specified
+          (by *note idset:: command or in the file at string started
+          with `##').
+
+        * any expression (without spaces) of existed variables produce
+          temporary variable. For example, `sqrt(dat(:,5)+1)' will
+          produce temporary variable with data values equal to
+          `tmp[i,j] = sqrt(dat[i,5,j]+1)'.
+
+        * temporary variable of higher dimensions by help of []. For
+          example, `[1,2,3]' will produce a temporary vector of 3
+          elements {1, 2, 3}; `[[11,12],[21,22]]' will produce matrix
+          2*2 and so on. Here you can join even an arrays of the same
+          dimensions by construction like `[v1,v2,...,vn]'.
+
+        * result of code for making new data (*note Make another
+          data::) inside {}. For example, `{sum dat 'x'}' produce
+          temporary variable which contain result of summation of DAT
+          along direction 'x'. This is the same array TMP as produced
+          by command `sum tmp dat 'x''. You can use nested
+          constructions, like `{sum {max dat 'z'} 'x'}'.
+     Temporary variables can not be used as 1st argument for commands
+     which create (return) the data (like `new', `read', `hist' and so
+     on).
+
+   * Special names `nan=#QNAN, pi=3.1415926..., on=1, off=0, :=-1' are
+     treated as number if they were not redefined by user. Variables
+     with suffixes are treated as numbers (*note Suffixes::). Names
+     defined by *note define:: command are treated as number. Also
+     results of formulas with sizes 1x1x1 are treated as number (for
+     example, `pi/dat.nx').
+   Before the first using all variables must be defined with the help
+of commands, like, *note new::, *note var::, *note list::, *note
+copy::, *note read::, *note hist::, *note sum:: and so on (*note Data
+create:: and *note Make another data::).
+
+   Command may have several set of possible arguments (for example,
+`plot ydat' and `plot xdat ydat'). All command arguments for a selected
+set must be specified. However, some arguments can have default values.
+These argument are printed in [], like `plot ydat ['stl'='' zval=nan]'.
+At this, the record `[arg1 arg2 arg3 ...]' means `[arg1 [arg2 [arg3
+...]]]', i.e. you can omit only tailing arguments if you agree with its
+default values. For example, `plot ydat '' 1' or `plot ydat ''' is
+correct, but `plot ydat 1' is incorrect (argument `'stl'' is missed).
+
+   All MGL commands can be divided on several groups. I will use the
+following notation for a command description: command names are bold,
+strings are denoted by commas, variable names are italic, numbers are
+typewriter. Optional arguments are placed in square brackets and
+default values for them are shown. Detailed description of color, line
+styles (*note Line styles::), color schemes (*note Color scheme::),
+font types, TeX-like symbols (*note Font styles::) and formulas (*note
+Textual formulas::) can be found in corresponding section.
+
+* Menu:
+
+
+* General concepts::
+* Graphics setup ::
+* Axis settings ::
+* Transformation matrix ::
+* Export to file ::
+* Primitives drawing ::
+* Text printing ::
+* Axis and Colorbar ::
+* Legend ::
+* 1D plotting ::
+* 2D plotting ::
+* 3D plotting ::
+* Dual plotting ::
+* Vector fields ::
+* Other plotting ::
+* Nonlinear fitting ::
+* Data create ::
+* Data filling ::
+* Rearrange data ::
+* File I/O ::
+* Make another data ::
+* Change data ::
+* Operators ::
+* Program flow ::
+* Command options ::
+* Suffixes::
+* Utilities::
+
+
+File: mgl_en.info,  Node: General concepts,  Prev: Utilities,  Up: MGL interface
+
+1.1 General concepts
+====================
+
+The set of MathGL features is rather rich - just the number of basic
+graphics types is larger than 40. Also there are functions for data
+handling, plot setup and so on. In spite of it I tried to keep a
+similar style in command names and in the order of arguments. Mostly it
+is used for different drawing functions.
+
+   There are 4 most general (base) concepts:
+  1. *Every plot settings (style of lines, font, color scheme) are
+     specified by a string.* It provides convenience for
+     user/programmer - short string with parameters is more
+     comprehensible than a large set of parameters. Also it provides
+     portability - the strings are the same in any OS so that it is not
+     necessary to think about argument types.
+
+  2. *All commands have "simplified" and "advanced" forms.* It is done
+     for user</samp>&rsquo;s convenience. One needs to specify only one
+     data array in the "simplified" form in order to see the result.
+     But one may set parametric dependence of coordinates and produce
+     rather complex curves and surfaces in the "advanced" form. In both
+     cases the order of function arguments is the same: first data
+     arrays, second the string with plot parameters, and later optional
+     arguments for plot tuning.
+
+  3. *All plots are vector plots.* The MathGL library is intended for
+     handling scientific data which have vector nature (lines, faces,
+     matrices and so on). As a result, vector representation is used in
+     all cases! In addition, the vector representation allows one to
+     scale the plot easily - change the canvas size by a factor of 2,
+     and the picture will be proportionally scaled.
+
+  4. *New drawing never clears things drawn already.* This, in some
+     sense, unexpected, idea allows to create a lot of "combined"
+     graphics. For example, to make a surface with contour lines one
+     needs to call the function for surface plotting and the function
+     for contour lines plotting (in any order). Thus the special
+     functions for making this "combined" plots (as it is done in
+     Matlab and some other plotting systems) are superfluous. Many more
+     examples of such plots can be found in section *note Hints:: and
+     in home site (`http://mathgl.sf.net/index.html').
+
+   In addition to the general concepts I want to comment on some
+non-trivial or less commonly used general ideas - plot positioning,
+axis specification and curvilinear coordinates, styles for lines, text
+and color scheme.
+
+* Menu:
+
+* Coordinate axes::
+* Line styles::
+* Color scheme::
+* Font styles::
+* Textual formulas::
+
+
+File: mgl_en.info,  Node: Coordinate axes,  Next: Line styles,  Up: General concepts
+
+1.1.1 Coordinate axes
+---------------------
+
+Two axis representations are used in MathGL. The first one consists of
+normalizing the data point coordinates in a box MINxMAX (*note Axis
+settings::). If CUT is `true' then the outlier points are omitted,
+otherwise they are projected to the bounding box (*note Cutting::).
+Also, the point will be omitted if it lies inside the box defined by
+CUTMIN x CUTMAX or if the value of formula `CutOff'() is nonzero for
+its coordinates. After that, transformation formulas are applied to the
+data point. Finally, the data point is plotted by one of the functions.
+
+   There is a possibility to set members MAX, MIN directly, but one
+should call `RecalcBorder()' function to setup plotting routines. A
+safer way is to set these values by calling the `Axis()' function,
+which calls `RecalcBorder()' automatically. Another way to specify the
+scaling of the axis is to set it as a minimal or maximal value of the
+data array. Functions `XRange(), YRange(), ZRange()' do it. The second
+(optional) argument is used to replace the axis range or to join with
+the existed range.
+
+   The axis origin is defined by the variable ORG and is applied to all
+consequent calls of axes or grid drawing. By default, if this point
+lies outside the bounding box then it is projected onto the one
+(variable AUTOORG controls it). If one of the values of ORG is equal to
+NAN then the corresponding value will be selected automatically.
+
+   There is 4-th axis _c_ (color axis or colorbar) in addition to the
+usual axes _x, y, z_. It sets the range of values for the surface
+coloring. Its borders are automatically set to values of Min.z, Max.z
+during the call of `Axis()' function. Also, one can directly change the
+color range by setting variables CMAX, CMAX, or calling functions
+`CAxis()' or `CRange()'. Use `Colorbar()' function for showing the
+colorbar.
+
+   The form (appearence) of tick labels is controlled by `SetTicks()'
+function (*note Axis settings::). It has 3 arguments: first one D sets
+the tick step (if positive) or tick number (if negative) or switches
+logarithmic ticks on (if zero); the second one, NS, sets the number of
+subticks; the last one is the starting point for ticks (default is axis
+origin). Function SETTUNETICKS switches on/off tick enhancing by
+factoring out acommon multiplier (for small coordinate values, like
+0.001 to 0.002, or large, like from 1000 to 2000) or common component
+(for narrow range, like from 0.999 to 1.000). Finally, you may use
+functions `SetXTT(), SetYTT(), SetZTT(), SetCTT()' for setting
+templates for tick labels (it supports TeX symbols). Also, there is a
+possibility to print arbitrary text as tick labels the by help of
+`SetTicksVal()' function.
+
+
+File: mgl_en.info,  Node: Line styles,  Next: Color scheme,  Prev: Coordinate axes,  Up: General concepts
+
+1.1.2 Line styles
+-----------------
+
+The line style is defined by the string which may contain
+specifications for color (`wkrgbcymhRGBCYMHWlenupqLENUPQ'), dashing
+style (`-|;:ji' or space), width (`0123456789') and marks (`o+xsd.^v'
+and `#' modifier). If one of the type of information is omitted then
+default values used with the previous color or one from palette (for
+*note 1D plotting::) are adopted.  The line style is defined by the
+string which may contain specifications for color
+(`wkrgbcymhRGBCYMHWlenupqLENUPQ'), dashing style (`-|;:ji' or space),
+width (`0123456789') and marks (`o+xsd.^v' and `#' modifier). If one of
+the type of information is omitted then default values used with the
+previous color or one from palette (for *note 1D plotting::) are
+adopted. By default palette contain following colors: dark gray `H',
+blue `b', green `g', red `r', cyan `c', magenta `m', yellow `y', gray
+`h', blue-green `l', sky-blue `n', orange `q', yellow-green `e',
+blue-violet `u', purple `p'.
+
+   The color types are: `k' - black, `r' - red, `R' - dark red, `g' -
+green, `G' - dark green, `b' - blue, `B' - dark blue, `c' - cyan, `C' -
+dark cyan, `m' - magenta, `M' - dark magenta, `y' - yellow, `Y' - dark
+yellow (gold), `h' - gray, `H' - dark gray, `w' - white, `W' - bright
+gray, `l' - green-blue, `L' - dark green-blue, `e' - green-yellow, `E'
+- dark green-yellow, `n' - sky-blue, `N' - dark sky-blue, `u' -
+blue-violet, `U' - dark blue-violet, `p' - purple, `P' - dark purple,
+`q' - orange, `Q' - dark orange (brown).
+
+   Dashing style has the following meaning: space - no line (usable for
+plotting only marks), `-' - solid line (################), `|' - long
+dashed line (########________), `;' - dashed line (####____####____),
+`=' - small dashed line (##__##__##__##__), `:' - dotted line
+(#___#___#___#___), `j' - dash-dotted line (#######____#____), `i' -
+small dash-dotted line (###__#__###__#__).
+
+   Marker types are: `o' - circle, `+' - cross, `x' - skew cross, `s' -
+square, `d' - rhomb (or diamond), `.' - dot (point), `^' - triangle up,
+`v' - triangle down, `<' - triangle left, `>' - triangle right, `#*' -
+Y sign, `#+' - squared cross, `#x' - squared skew cross, `#.' - circled
+dot. If string contain symbol `#' then the solid versions of markers
+are used.
+
+ [image src="../png/sample5.png" ]
+
+Styles of lines and marks.
+
+   One may specify to draw a special symbol (an arrow) at the beginning
+and at the end of line. This is done if the specification string
+contains one of the following symbols: `A' - outer arrow, `V' - inner
+arrow, `I' - transverse hatches, `K' - arrow with hatches, `T' -
+triangle, `S' - square, `D' - rhombus, `O' - circle, `_' - nothing (the
+default). The following rule applies: the first symbol specifies the
+arrow at the end of line, the second specifies the arrow at the
+beginning of the line. For example, `r-A' defines a red solid line with
+usual arrow at the end, `b|AI' defines a blue dash line with an arrow
+at the end and with hatches at the beginning, `_O' defines a line with
+the current style and with a circle at the beginning. These styles are
+applicable during the graphics plotting as well (for example, *note 1D
+plotting::).
+
+ [image src="../png/sampled.png" ]
+
+Arrow styles.
+
+
+File: mgl_en.info,  Node: Color scheme,  Next: Font styles,  Prev: Line styles,  Up: General concepts
+
+1.1.3 Color scheme
+------------------
+
+The color scheme is used for determining the color of surfaces,
+isolines, isosurfaces and so on. The color scheme is defined by the
+string, which may contain several characters that are color id (*note
+Line styles::) or characters `d#:|'. Symbol `d' denotes the
+interpolation by 3d position instead of the coloring by amplitude.
+Symbol `#' switches to mesh drawing or to a wire plot. Symbol `|'
+disables color interpolation in color scheme, which can be useful, for
+example, for sharp colors during matrix plotting. Symbol `:' finishes
+the color scheme parsing. Following it, the user may put styles for the
+text, rotation axis for curves/isocontours, and so on. Color scheme may
+contain up to 32 color values.
+
+   You may also use "lighted" colors in the color scheme specification
+(_not in line style!_). The "lighted" color contain 2 symbols: first
+one is the usual symbol for color specification, the second one is a
+digit for its brightness. The digit can be in range `1'...`9'.  Number
+`5' corresponds to a normal color, `1' is a very dark version of the
+color (practically black), and `9' is a very bright version of the
+color (practically white). For example, the color scheme can be
+`b2b7wr7r2'.
+
+ [image src="../png/colors.png" ]
+
+Colors and its ids.
+
+   For coloring by _amplitude_ (most common) the final color is a
+linear interpolation of color array. The color array is constructed
+from the string ids. The argument is the amplitude normalized between
+CMIN - CMAX (*note Axis settings::). For example, string containing 4
+characters `bcyr' corresponds to a colorbar from blue (lowest value)
+through cyan (next value) through yellow (next value) to the red
+(highest value). String `kw' corresponds to a colorbar from black
+(lowest value) to white (highest value). String `m' corresponds to a
+simple magenta color.
+
+   There are several useful combinations. String `kw' corresponds to
+the simplest gray color scheme where higher values are brighter. String
+`wk' presents the inverse gray color scheme where higher value is
+darker. Strings `kRryw', `kGgw', `kBbcw' present the well-known _hot_,
+_summer_ and _winter_ color schemes. Strings `BbwrR' and `bBkRr' allow
+to view bi-color figure on white or black background, where negative
+values are blue and positive values are red. String `BbcyrR' gives a
+color scheme similar to the well-known _jet_ color scheme.
+
+ [image src="../png/color_schemes.png" ]
+
+Most popular color schemes.
+
+   When coloring by _coordinate_, the final color is determined by the
+position of the point in 3d space and is calculated from formula
+c=x*c[1] + y*c[2] + z*c[3]. Here, c[1], c[2], c[3] are the first three
+elements of color array; x, y, z are normalized to MIN - MAX
+coordinates of the point. This type of coloring is useful for
+isosurface plot where color may show the exact position of a piece of
+surface.
+
+
+File: mgl_en.info,  Node: Font styles,  Next: Textual formulas,  Prev: Color scheme,  Up: General concepts
+
+1.1.4 Font styles
+-----------------
+
+Text style is specified by the string which may contain several
+characters of font (`ribwou') and/or alignment (`LRC') specifications.
+The string also may contain the color id characters `wkrgbcymhRGBCYMHW'
+(*note Line styles::) after the symbol `:'. For example, `biC:b' sets
+the bold italic font text aligned at the center and with blue color.
+
+   The font types are: `r' - roman font, `i' - italic style, `b' - bold
+style. By default roman roman font is used. The align types are: `L' -
+align left (default), `C' - align center, `R' - align right. Additional
+font effects are: `w' - wired, `o' - over-lined, `u' - underlined.
+
+   Also a parsing of the LaTeX-like syntax is provided. There are
+commands for the font style changing inside the string (for example,
+use \b for bold font): \a or \overline - over-lined, \b or \textbf -
+bold, \i or \textit - italic, \r or \textrm - roman (disable bold and
+italic attributes), \u or \underline - underlined, \w or \wire - wired,
+\big - bigger size, @ - smaller size. The lower and upper indexes are
+specified by `_' and `^' symbols. At this the changed font style is
+applied only on next symbol or symbols in braces {}. The text in braces
+{} are treated as single symbol that allow one to print the index of
+index. For example, compare the strings `sin (x^{2^3})' and `sin
+(x^2^3)'. You may also change text color inside string by command #? or
+by \color? where `?' is symbolic id of the color (*note Line styles::).
+For example, words `Blue' and `red' will be colored in the string
+`#b{Blue} and \colorr{red} text'. The most of functions understand the
+newline symbol `\n' and allows to print multi-line text. Finally, you
+can use arbitrary UTF codes by command `\utf0x????'. For example,
+`\utf0x3b1' will produce  \alpha symbol.
+
+   The most of commands for special TeX or AMSTeX symbols, the commands
+for font style changing (\textrm, \textbf, \textit, \textsc, \overline,
+\underline), accents (\hat, \tilde, \dot, \ddot, \acute, \check,
+\grave, \bar, \breve) and roots (\sqrt, \sqrt3, \sqrt4) are recognized.
+The full list contain approximately 2000 commands. Note that first
+space symbol after the command is ignored, but second one is printed as
+normal symbol (space). For example, the following strings produce the
+same result \tilde a: `\tilde{a}'; `\tilde a'; `\tilde{}a'.
+
+   In particular, the Greek letters are recognizable special symbols:
+\alpha - \alpha, \beta - \beta, \gamma - \gamma, \delta - \delta,
+\epsilon - \epsilon, \eta - \eta, \iota - \iota, \chi - \chi, \kappa -
+\kappa, \lambda - \lambda, \mu - \mu, \nu - \nu, o - \o, \omega -
+\omega, \phi - \phi, \pi - \pi, \psi - \psi, \rho - \rho, \sigma -
+\sigma, \theta - \theta, \tau - \tau, \upsilon - \upsilon, \xi - \xi,
+\zeta - \zeta, \varsigma - \varsigma, \varepsilon - \varepsilon,
+\vartheta - \vartheta, \varphi - \varphi, A - \Alpha, B - \Beta, \Gamma
+- \Gamma, \Delta - \Delta, E - \Epsilon, H - \Eta, I - \Iota, C - \Chi,
+K - \Kappa, \Lambda - \Lambda, M - \Mu, N - \Nu, O - \O, \Omega -
+\Omega, \Phi - \Phi, \Pi - \Pi, \Psi - \Psi, R - \Rho, \Sigma - \Sigma,
+\Theta - \Theta, T - \Tau, \Upsilon - \Upsilon, \Xi - \Xi, Z - \Zeta.
+
+   The small part of most common special TeX symbols are: \angle -
+\angle, \aleph - \aleph, \cdot - \cdot, \clubsuit - \clubsuit, \cup -
+\cup, \cap - \cap, \diamondsuit - \diamondsuit, \diamond - \diamond,
+\div - \div, \downarrow - \downarrow, \dag - \dag, \ddag - \ddag,
+\equiv - \equiv, \exists - \exists, \frown - \frown, \flat - \flat, \ge
+- \ge, \geq - \geq, \gets - \gets, \heartsuit - \heartsuit, \infty -
+\infty, \in - \in, \int - \int, \Im - \Im, \langle - \langle, \le -
+\le, \leq - \leq, \leftarrow - \leftarrow, \mp - \mp, \nabla - \nabla,
+\ne - \ne, \neq - \neq, \natural - \natural, \oint - \oint, \odot -
+\odot, \oplus - \oplus, \partial - \partial, \parallel - \parallel,
+\perp - \perp, \pm - \pm, \propto - \propto, \prod - \prod, \Re - \Re,
+\rightarrow - \rightarrow, \rangle - \rangle, \spadesuit - \spadesuit,
+\sim - \sim, \smile - \smile, \subset - \subset, \supset - \supset,
+\surd - \sqrt or \surd, \S - \S, \sharp - \sharp, \sum - \sum, \times -
+\times, \to - \to, \uparrow - \uparrow, \wp - \wp and so on.
+
+   The font size can be defined explicitly (if SIZE>0) or relative to a
+base font size as |SIZE|*FONTSIZE (if SIZE<0). The value SIZE=0
+specifies that the string will not be printed. The base font size is
+measured in internal "MathGL" units. Special functions
+`SetFontSizePT(), SetFontSizeCM(), SetFontSizeIN()' allow one to set it
+in more "common" variables for a given dpi value of the picture.
+
+
+File: mgl_en.info,  Node: Textual formulas,  Prev: Font styles,  Up: General concepts
+
+1.1.5 Textual formulas
+----------------------
+
+MathGL have the fast variant of textual formula evaluation . There are
+a lot of functions and operators available. The operators are: `+' -
+addition, `-' - subtraction, `*' - multiplication, `/' - division, `^'
+- integer power. Also there are logical "operators": `<' - true if x<y,
+`>' - true if x>y, `=' - true if x=y, `&' - true if x and y both
+nonzero, `|' - true if x or y nonzero. These logical operators have
+lowest priority and return 1 if true or 0 if false.
+
+   The basic functions are: `sqrt(x)' - square root of X, `pow(x,y)' -
+power X in Y, `ln(x)' - natural logarithm of X, `lg(x)' - decimal
+logarithm of X, `log(a,x)' - logarithm base A of X, `abs(x)' - absolute
+value of X, `sign(x)' - sign of X, `mod(x,y)' - x modulo y, `step(x)' -
+step function, `int(x)' - integer part of X, `rnd' - random number,
+`pi' - number \pi=3.1415926...
+
+   Trigonometric functions are: `sin(x)', `cos(x)', `tan(x)' (or
+`tg(x)'). Inverse trigonometric functions are: `asin(x)', `acos(x)',
+`atan(x)'. Hyperbolic functions are: `sinh(x)' (or `sh(x)'), `cosh(x)'
+(or `ch(x)'), `tanh(x)' (or `th(x)'). Inverse hyperbolic functions are:
+`asinh(x)', `acosh(x)', `atanh(x)'.
+
+   There are a set of special functions: `gamma(x)' - Gamma function
+\Gamma(x) = \int_0^\infty dt t^{x-1} \exp(-t) , `psi(x)' - digamma
+function \psi(x) = \Gamma</samp>&rsquo; (x)/ \Gamma(x) for x!=0,
+`ai(x)' - Airy function Ai(x), `bi(x)' - Airy function Bi(x), `cl(x)' -
+Clausen function, `li2(x)' (or `dilog(x)') - dilogarithm Li_2(x) = -
+\Re \int_0^x ds \log(1-s)/s, `sinc(x)' - compute sinc(x) = \sin(\pi x)
+/ (\pi x) for any value of x, `zeta(x)' - Riemann zeta function
+\zeta(s) = \sum_{k=1}^\infty k^{-s} for arbitrary s!=1, `eta(x)' - eta
+function \eta(s) = (1-2^{1-s}) \zeta(s) for arbitrary s, `lp(l,x)' -
+Legendre polynomial P_l(x), (|x|<=1, l>=0), `w0(x)', `w1(x)' -
+principal branch of the Lambert W functions. Function W(x) is defined
+to be solution of the equation W \exp(W) = x.
+
+   The exponent integrals are: `ci(x)' - Cosine integral Ci(x) =
+\int_0^x dt \cos(t)/t, `si(x)' - Sine integral Si(x) = \int_0^x dt
+\sin(t)/t, `erf(x)' - error function erf(x) = (2/\sqrt(\pi)) \int_0^x
+dt \exp(-t^2), `ei(x)' - exponential integral Ei(x) := -
+PV(\int_{-x}^\infty dt \exp(-t)/t) (where PV denotes the principal
+value of the integral), `e1(x)' - exponential integral E_1(x) := Re
+\int_1^\infty dt \exp(-xt)/t , `e2(x)' - exponential integral E_2(x) :=
+Re \int_1^\infty dt \exp(-xt)/t^2, `ei3(x)' - exponential integral
+Ei_3(x) = \int_0^x dt \exp(-t^3) for x>=0.
+
+   Bessel functions are: `j(nu,x)' - regular cylindrical Bessel
+function of fractional order NU, `y(nu,x)' - irregular cylindrical
+Bessel function of fractional order NU, `i(nu,x)' - regular modified
+Bessel function of fractional order NU, `k(nu,x)' - irregular modified
+Bessel function of fractional order NU.
+
+   Elliptic integrals are: `ee(k)' - complete elliptic integral is
+denoted by E(k) = E(\pi/2, k), `ek(k)' - complete elliptic integral is
+denoted by K(k) = F(\pi/2, k), `e(phi,k)' - elliptic integral E(\phi,k)
+= \int_0^\phi dt \sqrt((1 - k^2 \sin^2(t))), `f(phi,k)' - elliptic
+integral F(\phi,k) = \int_0^\phi dt 1/\sqrt((1 - k^2 \sin^2(t))).
+
+   Jacobi elliptic functions are: `sn(u,m)', `cn(u,m)', `dn(u,m)',
+`sc(u,m)', `sd(u,m)', `ns(u,m)', `cs(u,m)', `cd(u,m)', `nc(u,m)',
+`ds(u,m)', `dc(u,m)', `nd(u,m)'.
+
+   Note, some of these functions are unavailable if NO_GSL is defined
+during compilation of MathGL library.
+
+   There is no difference between lower or upper case in formulas. If
+argument value lie outside the range of function definition then
+function returns NaN.
+
+
+File: mgl_en.info,  Node: Graphics setup,  Next: Axis settings,  Prev: General concepts,  Up: MGL interface
+
+1.2 Graphics setup
+==================
+
+Coomands in this group influences on overall graphics appearance. So
+all of them should be placed _before_ any actual plotting commands.
+
+* Menu:
+
+* Transparency ::
+* Lighting ::
+* Fog ::
+* Default sizes ::
+* Zooming ::
+* Cutting ::
+* Other settings ::
+
+
+File: mgl_en.info,  Node: Transparency,  Next: Lighting,  Up: Graphics setup
+
+1.2.1 Transparency
+------------------
+
+There are several commands for setup transparency. The general command
+is *note alpha:: which switch on/off the transparency for overall plot.
+It influence only for graphics which created after *note alpha:: call.
+Command *note alphadef:: specify the default value of alpha-channel.
+You may switch off transparency of selected plot by command *note
+transparent::. Finally, command *note transptype:: set the kind of
+transparency. *Note Transparent surface sample::, for sample code and
+picture.
+
+ -- MGL command: alpha `[val=on]'
+     Sets the transparency on/off. It is recommended to call this
+     command before any plotting command. Default value is `off'. Use
+     `transparent off' in particular plot to disable its transparency.
+   
+ -- MGL command: alphadef `val'
+     Default value of alpha channel (transparency) for all plotting
+     commands. Initial value is 0.5.
+   
+ -- MGL command: transparent `val'
+     Temporary switches transparency on/off for the plot.
+   
+ -- MGL command: transptype `val'
+     This command set the transparency type. Normal transparency (`0')
+     - below things is less visible than upper ones. Glass-like
+     transparency (`1') - below and upper things are commutable and
+     just decrease intensity of light by RGB channel. Lamp-like
+     transparency (`2') - below and upper things are commutable and are
+     the source of some additional light. I recommend to set `alphadef
+     0.3' or less for lamp-like transparency. *Note Normal
+     transparency::, *note Glass-like transparency::, *note Lamp-like
+     transparency::.
+
+
+File: mgl_en.info,  Node: Lighting,  Next: Fog,  Prev: Transparency,  Up: Graphics setup
+
+1.2.2 Lighting
+--------------
+
+There are several commands for setup lighting. The general command is
+*note light:: which switch on/off the lighting for overall plot.
+Generally MathGL support up to 10 independent light sources. The
+position, color, brightness of each light source can be set separately.
+By default only one light source is active. It is source number `0'
+with white color, located at top of the plot.
+
+ -- MGL command: light `[val=on]'
+     Sets the using of light on/off for overall plot. It is recommended
+     to call this command before any plotting command. Default value is
+     lightning off.
+
+ -- MGL command: light `num val'
+     Switch on/off NUM-th light source separately.
+
+ -- MGL command: light `num xpos ypos zpos' ['col'='w' `br=0.5']
+     The command adds a light source with identification NUM at
+     position {XPOS, YPOS, ZPOS}. The color of light is COL (white by
+     default). The brightness of light is BR which must be in range
+     [0,1].
+
+ -- MGL command: ambient `val'
+     Sets the brightness of ambient light. The value should be in range
+     [0,1]. Initial value is 0.5.
+
+
+File: mgl_en.info,  Node: Fog,  Next: Default sizes,  Prev: Lighting,  Up: Graphics setup
+
+1.2.3 Fog
+---------
+
+ -- MGL command: fog `val [dz=0.25]'
+     Command imitate a fog in the plot. Fog start from relative
+     distance DZ from view point and its density growths exponentially
+     in depth. So that the fog influence is determined by law
+     ~1-exp(-d*z). Here _z_ is normalized to 1 depth of the plot. If
+     value VAL=`0' then the fog is absent. *Note Surface in fog
+     sample::, for sample code and picture.
+
+
+File: mgl_en.info,  Node: Default sizes,  Next: Zooming,  Prev: Fog,  Up: Graphics setup
+
+1.2.4 Default sizes
+-------------------
+
+These commands control the default (initial) values for most graphics
+parameters including sizes of markers, arrows, linewidth and so on. As
+any other settings these ones will influence only on plots created
+after the settings change.
+
+ -- MGL command: barwidth `val'
+     Sets relative width of rectangles in `bars, barh, boxplot'.
+     Default value is `0.7'.
+
+ -- MGL command: marksize `val'
+     The size of marks. Default value is `1'.
+
+ -- MGL command: arrowsize `val'
+     The size of arrows for lines and curves. Default value is `1'.
+
+ -- MGL command: linewidth `val'
+     The variable define the base width for all lines. The value <1 is
+     ignored. Increase of this variables is actual for large bitmap
+     pictures. Default value is `1'.
+
+ -- MGL command: ticklen `val' [`stt=1']
+     The relative length of axis ticks. Default value is `0.1'.
+     Parameter STT>0 set relative length of subticks which is in
+     `sqrt(1+stt)' times smaller.
+
+ -- MGL command: tickstl 'stl' ['sub'="]
+     The line style of axis ticks (STL) and subticks (SUB). If STL="
+     then default style is used (`k' or `w' depending on transparency
+     type). If SUB=" then ticks style is used (i.e. STL).
+
+
+File: mgl_en.info,  Node: Zooming,  Next: Cutting,  Prev: Default sizes,  Up: Graphics setup
+
+1.2.5 Zooming
+-------------
+
+These commands control the overall zooming of the picture or the
+sub-picture. Normally you can use these variables and commands for
+removing "white" spaces around a plot.
+
+ -- MGL command: plotfactor `val'
+     The factor of plot size. It is not recommended to set it lower
+     then 1.6. This is some analogue of command *note zoom:: but
+     applied not to overall image but for each *note inplot::. Use
+     negative value to enable automatic *note plotfactor:: selection.
+
+ -- MGL command: zoom `x1 y1 x2 y2'
+     The command changes the scale of graphics that correspond to zoom
+     in/out of the picture. After command call the current plot will be
+     cleared and further the picture will contain plotting from its
+     part [x1,x2]*[y1,y2]. Here picture coordinates X1, X2, Y1, Y2
+     changes from 0 to 1. Use `zoom 0 0 1 1' to return default view.
+
+
+File: mgl_en.info,  Node: Cutting,  Next: Other settings,  Prev: Zooming,  Up: Graphics setup
+
+1.2.6 Cutting
+-------------
+
+These commands set the condition when the points are excluded (cutted)
+from the drawing. Note, that a point with `nan' value(s) of coordinate
+or amplitude will be automatically excluded from the drawing.
+
+ -- MGL command: cut `val'
+     Determines how points outside bounding box are drawn. If it is
+     `on' then points are excluded from plot (it is default) otherwise
+     the points are projected to edges of bounding box.
+
+ -- MGL command: cut `x1 y1 z1 x2 y2 z2'
+     Lower and upper edge of the box in which never points are drawn.
+     If both edges are the same (the variables are equal) then the
+     cutting box is empty. *Note CutMinMax sample::, for sample code
+     and picture.
+
+ -- MGL command: cut 'cond'
+     Command set the cutting off condition by formula COND. This
+     condition determine will point be plotted or not. If value of
+     formula is nonzero then point is omitted, otherwise it plotted.
+     Set argument as `''' to disable cutting off condition. *Note
+     CutOff sample::, for sample code and picture.
+
+
+File: mgl_en.info,  Node: Other settings,  Prev: Cutting,  Up: Graphics setup
+
+1.2.7 Other settings
+--------------------
+
+ -- MGL command: font 'fnt' [`val=6']
+     Font style for text and labels (see text). Initial style is
+     'fnt'='rC' give Roman font with centering. Parameter `val' sets
+     the size of font for tick and axis labels. Default font size of
+     axis labels is 1.4 times large than for tick labels. For more
+     detail, *note Font styles::.
+
+ -- MGL command: rotatetext `val'
+     Set to use or not text rotation along axis. Initial value is `on'.
+
+ -- MGL command: palette 'colors'
+     Set the palette as selected colors. Default value is
+     `'Hbgrcmyhlnqeup''. The palette is used mostly in 1D plots for
+     curves which styles are not specified.
+
+ -- MGL command: meshnum `num'
+     Sets approximate number of lines in *note mesh::, *note fall::,
+     *note grid:: and also the number of hachures in *note vect::,
+     *note vectc::, *note dew:: and the number of cells in *note
+     cloud::. By default (=0) it draws all lines/hachures/cells.
+
+ -- MGL command: axialdir 'dir'
+     Set direction around which curve rotated in *note axial::, *note
+     torus::. Default value is 'z'.
+
+
+File: mgl_en.info,  Node: Axis settings,  Next: Transformation matrix,  Prev: Graphics setup,  Up: MGL interface
+
+1.3 Axis settings
+=================
+
+These large set of commands control how the axis and ticks will be
+drawn. Note that there is 3-step transformation of data coordinates are
+performed. Firstly, coordinates are projected and cutting is applied
+(*note Cutting::), after it transformation formulas are applied, and
+finally the data was normalized in bounding box.
+
+ -- MGL command: axis `x1 y1 x2 y2'
+ -- MGL command: axis `x1 y1 z1 x2 y2 z2'
+ -- MGL command: ranges `x1 x2 y1 y2 [z1=0 z2=0]'
+     Sets the ranges of coordinates changing. Also it sets the range
+     for coloring (analogous to `caxis z1 z2'). Initial ranges are [-1,
+     1].
+
+ -- MGL command: axis 'fx' 'fy' ['fz'=" 'fa'="]
+     Sets the transformation formulas for curvilinear coordinates. Each
+     string should contain mathematical expression for real coordinate
+     depending on internal coordinates `x', `y', `z' and `a' or `c' for
+     colorbar. For example, the cylindrical coordinates are introduced
+     as `axis 'x*cos(y)' 'x*sin(y)' 'z''. For removing of formulas the
+     corresponding parameter should be `'''. The using of
+     transformation formulas will slightly slowing the program, i.e.
+     `axis '' '' ''' is faster than `axis '1*x' '1*y' '1*z''. Initially
+     all formulas are absent (Cartesian coordinates are used). For more
+     details about functions and formulas, *note Textual formulas::.
+
+ -- MGL command: axis `how'
+     Sets one of the predefined transformation formulas for curvilinear
+     coordinate. Paramater HOW define the coordinates: `0' - Cartesian
+     coordinates (no transformation); `1' - Polar coordiantes
+     x_n=x*cos(y),y_n=x*sin(y), z_n=z; `2' - Spherical coordinates
+     x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y); `3' -
+     Parabolic coordinates x_n=x*y, y_n=(x*x-y*y)/2, z_n=z; `4' -
+     Paraboloidal coordinates x_n=(x*x-y*y)*cos(z)/2,
+     y_n=(x*x-y*y)*sin(z)/2, z_n=x*y; `5' - Oblate coordinates
+     x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z),
+     z_n=sinh(x)*sin(y); `6' - Prolate coordinates
+     x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z),
+     z_n=cosh(x)*cos(y); `7' - Elliptic coordinates x_n=cosh(x)*cos(y),
+     y_n=sinh(x)*sin(y), z_n=z; `8' - Toroidal coordinates
+     x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)),
+     y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y));
+     `9' - Bispherical coordinates x_n=sin(y)*cos(z)/(cosh(x)-cos(y)),
+     y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y));
+     `10' - Bipolar coordinates x_n=sinh(x)/(cosh(x)-cos(y)),
+     y_n=sin(y)/(cosh(x)-cos(y)), z_n=z.
+
+ -- MGL command: caxis `z1 z2'
+     Sets the range for surface coloring. Initial range is [-1, 1].
+
+ -- MGL command: origin `x0 y0 [z0=nan]'
+     Center of axis cross section. If one of values is `nan' then
+     MathGL library try to select optimal axis position.
+
+ -- MGL command: ternary `val'
+     The command sets to draws Ternary plot. This special plot is for 3
+     dependent coordinates (components) A, B, C so that A+B+C=1. MathGL
+     uses only 2 independent coordinates A=x and B=y since it is enough
+     to plot everything. At this third coordinate z act as another
+     parameter to produce contour lines, surfaces and so on. *Note
+     Ternary plot sample::, for sample code and picture.
+
+ -- MGL command: xrange dat [`add=off fact=0']
+ -- MGL command: yrange dat [`add=off fact=0']
+ -- MGL command: zrange dat [`add=off fact=0']
+ -- MGL command: crange dat [`add=off fact=0']
+     Sets the range for x-,y-,z- coordinate or coloring as minimal and
+     maximal values of data DAT. Parameter `add=on' shows that the new
+     range will be joined to existed one (nut will not replace it).
+     Parameter FACT add additional range increase on value
+     (MAX-MIN)*FACT.
+
+ -- MGL command: xrange `x1 x2'
+ -- MGL command: yrange `x1 x2'
+ -- MGL command: zrange `x1 x2'
+ -- MGL command: crange `x1 x2'
+     Sets the range for x-,y-,z- coordinate or coloring. See also *note
+     axis::.
+
+ -- MGL command: xtick `val [sub=0 org=nan]'
+ -- MGL command: ytick `val [sub=0 org=nan]'
+ -- MGL command: ztick `val [sub=0 org=nan]'
+ -- MGL command: ctick `val'
+     Sets step for x-, y-, z-axis ticks or colorbar ticks (if VAL>0) or
+     it's number (if VAL<0) in corresponding direction. Zero value
+     VAL=0 sets logarithmic ticks. Parameter SUB sets the number of
+     sub-ticks. Parameter ORG set the starting points for ticks. If not
+     `org=nan' then the value from *note origin:: is used.
+
+ -- MGL command: xtick 'templ'
+ -- MGL command: ytick 'templ'
+ -- MGL command: ztick 'templ'
+ -- MGL command: ctick 'templ'
+     Sets the template for x-, y-, z-axis ticks or colorbar ticks. It
+     may contain TeX symbols also. If TEMPL=`''' then default template
+     is used (in simplest case it is `%.2g') with automatic detaching
+     of common multiplier or common component.
+
+ -- MGL command: xtick `val1' 'lbl1' [`val2' 'lbl2' ...]
+ -- MGL command: ytick `val1' 'lbl1' [`val2' 'lbl2' ...]
+ -- MGL command: ztick `val1' 'lbl1' [`val2' 'lbl2' ...]
+     Sets manual positions VAL1,VAL2,... and labels LBL1,LBL2,... for
+     ticks along x-, y-, z-axis. Labels may contain TeX symbols also.
+
+ -- MGL command: adjust ['dir'='xyzc']
+     Set the ticks step, number of sub-ticks and initial ticks position
+     to be the most human readable for the axis along direction(s) DIR.
+
+
+File: mgl_en.info,  Node: Transformation matrix,  Next: Export to file,  Prev: Axis settings,  Up: MGL interface
+
+1.4 Transformation matrix
+=========================
+
+These commands control how and where further plotting will be placed.
+There is a curtain order of calling of these commands for the better
+plot view. First one should be *note subplot:: or *note inplot:: for
+specifying the place. After it a *note rotate:: and *note aspect::. And
+finally any other plotting commands may be called. Alternatevely you
+can use *note columnplot:: for position plots in the column one by
+another without gap between plot axis (bounding boxes).
+
+ -- MGL command: subplot `nx ny m [dx=0 dy=0]'
+     Puts further plotting in a M-th cell of NX*NY grid of the whole
+     frame area. This command set off any aspects or rotations. So it
+     should be used first for creating the subplot. From the
+     aesthetical point of view it is not recommended to use this
+     command with different matrices in the same frame. The position of
+     the cell can be shifted from its default position by relative size
+     DX, DY.
+
+ -- MGL command: subplot `nx ny m' 'style'
+     The same as previous but space reserved for axis/colorbar is saved
+     only if STYLE contain: `L' or `<' - at left side, `R' or `>' - at
+     right side, `A' or `^' - at top side, `U' or `_' - at bottom side.
+
+ -- MGL command: inplot `x1 x2 y1 y2 [rel=off]'
+     Puts further plotting in some region of the whole frame surface.
+     This command allows one to create a plot in arbitrary place of the
+     screen. The position is defined by rectangular coordinates [X1,
+     X2]*[Y1, Y2]. The coordinates X1, X2, Y1, Y2 are normalized to
+     interval [0, 1]. If parameter REL=`on' then the relative position
+     to current *note subplot:: is used. This command set off any
+     aspects or rotations. So it should be used first for creating
+     subplot.
+
+ -- MGL command: columnplot `num ind [d=0]'
+     Puts further plotting in IND-th cell of column with NUM cells. The
+     position is relative to previous *note subplot:: call (or *note
+     inplot:: with `rel=off'). Parameter D set extra gap between cells.
+
+ -- MGL command: stickplot `num ind tet phi'
+     Puts further plotting in IND-th cell of stick with NUM cells. At
+     this, stick is rotated on angles TET, PHI. The position is
+     relative to previous *note subplot:: call (or *note inplot:: with
+     `rel=off').
+
+ -- MGL command: rotate `tetz tetx [tety=0]'
+     Rotates a further plotting relative to each axis (x, z, y)
+     consecutively on angles TETX, TETZ, TETY.
+
+ -- MGL command: rotate `tet x y z'
+     Rotates a further plotting around vector {x,y,z} on angle TET.
+
+ -- MGL command: aspect `ax ay [az=1]'
+     Defines aspect ratio for the plot. The viewable axes will be
+     related one to another as the ratio AX:AY:AZ. For the best effect
+     it should be used after *note rotate:: command.
+
+ -- MGL command: perspective `val'
+     Add (switch on) the perspective to plot. The parameter val ~
+     1/z_{eff} \in [0,1). By default (`val=0') the perspective is off.
+
+
+File: mgl_en.info,  Node: Export to file,  Next: Primitives drawing,  Prev: Transformation matrix,  Up: MGL interface
+
+1.5 Export to file
+==================
+
+ -- MGL command: write 'fname' [`solid=off']
+     Exports current picture/frame to file 'fname' (file type is
+     determined by extension). Solid (usually white) background will be
+     used if `solid=on'. If 'fname'=" then the file `frameNNNN.jpg' is
+     used, where `NNNN' is current frame id.
+
+ -- MGL command: setsize `w h'
+     Sets size of picture in pixels. This function call *must be*
+     placed before any plotting command because it completely remove
+     picture content. In some program the call of this function is
+     forbidden.
+
+
+File: mgl_en.info,  Node: Primitives drawing,  Next: Text printing,  Prev: Export to file,  Up: MGL interface
+
+1.6 Primitives drawing
+======================
+
+These commands draw some simple objects like line, point, sphere, drop,
+cone and so on.
+
+ -- MGL command: clf
+     Clear the picture by removes all drawing from it. Does not change
+     transformation matrix.
+
+ -- MGL command: ball `x y' ['col'='r']
+ -- MGL command: ball `x y z' ['col'='r']
+     Draws a point (ball) at position {X, Y, Z} with color defined by
+     string COL.
+
+ -- MGL command: line `x1 y1 x2 y2' ['stl'="]
+ -- MGL command: line `x1 y1 z1 x2 y2 z2' ['stl'="]
+     Draws a geodesic line (straight line in Cartesian coordinates)
+     from point {X1,Y1,Z1} to {X2,Y2,Z2} using line style STL.
+
+ -- MGL command: curve `x1 y1 dx1 dy1 x2 y2 dx2 dy2' ['stl'="]
+ -- MGL command: curve `x1 y1 z1 dx1 dy1 dz1 x2 y2 z2 dx2 dy2 dz2'
+          ['stl'="]
+     Draws Bezier-like curve from point {X1,Y1,Z1} to {X2,Y2,Z2} using
+     line style STL. At this tangent is co-directed with {DX1,DY1,DZ1},
+     {DX2,DY2,DZ2} and proportional to its amplitude.
+
+ -- MGL command: facex `x0 y0 z0 wy wz' ['stl'=" `d1=0 d2=0']
+ -- MGL command: facey `x0 y0 z0 wx wz' ['stl'=" `d1=0 d2=0']
+ -- MGL command: facez `x0 y0 z0 wx wy' ['stl'=" `d1=0 d2=0']
+     Draws the solid rectangle (face) perpendicular to [x,y,z]-axis
+     correspondingly at position {X0, Y0, Z0} with color STL and with
+     widths WX, WY, WZ along corresponding directions. At this colors
+     can be the same for all vertexes or different if all 4 colors are
+     specified for each vertex. Parameters D1!=0, D2!=0 set additional
+     shift of the last vertex (i.e. to draw quadrangle).
+
+ -- MGL command: sphere `x0 y0 r' ['col'='r']
+ -- MGL command: sphere `x0 y0 z0 r' ['col'='r']
+     Draw the sphere with radius R and center at point {X0, Y0, Z0} and
+     color STL.
+
+ -- MGL command: drop `x0 y0 dx dy r' ['col'='b' `sh=1 asp=1']
+ -- MGL command: drop `x0 y0 z0 dx dy dz r' ['col'='b' `sh=1 asp=1']
+     Draw the drop with radius R at point {X0,Y0,Z0} elongated in
+     direction {DX,DY,DZ} and with color COL. Parameter SH set the
+     degree of drop oblongness: `0' is sphere, `1' is maximally
+     oblongness drop. Parameter ASP set relative width of the drop
+     (this is analogue of "ellipticity" for the sphere). *Note Drops
+     sample::, for sample code and picture.
+
+ -- MGL command: cone `x1 y1 z1 x2 y2 z2 r1' [`r2=-1' 'stl'="
+          `edge=off']
+     Draw tube (or truncated cone if EDGE=`off') between points
+     {X1,Y1,Z1}, {X2,Y2,Z2} with radiuses at the edges R1, R2. If R2<0
+     then it is supposed that R2=R1. The cone color is defined by
+     string STL.
+
+ -- MGL command: rect `x1 y1 x2 y2' ['st'="]
+ -- MGL command: rect `x1 y1 z1 x2 y2 z2' ['st'="]
+     Draw rectangle from point {X1,Y1,Z1} to point {X2,Y2,Z2} using
+     colors STL. If STL have 4 or more colors then it defines colors
+     for each rectangle vertex (useful for making gradients, like
+     `wwrr') else first color is used for whole rectangle.
+
+
+File: mgl_en.info,  Node: Text printing,  Next: Axis and Colorbar,  Prev: Primitives drawing,  Up: MGL interface
+
+1.7 Text printing
+=================
+
+These commands draw the text. There are commands for drawing text in
+arbitrary place, in arbitrary direction and along arbitrary curve. It
+is possible to use arbitrary font-faces and parse many TeX commands.
+The Unicode text is supported. So sometimes you need to specify locale.
+The `size' argument control the size of text: if positive it give the
+value, if negative it give the value relative to defined by `font'
+command. *Note Font styles::.
+
+ -- MGL command: text `x y' 'text' ['fnt'=" `size=-1.4']
+ -- MGL command: text `x y z' 'text' ['fnt'=" `size=-1.4']
+     Draws unrotated text string TEXT at position {X,Y,Z} with
+     specified style FNT and SIZE. By default parameters from `font'
+     command are used.
+
+ -- MGL command: text `x y dx dy' 'text' [`size=-1.4']
+ -- MGL command: text `x y z dx dy dz' 'text' [`size=-1.4']
+     The command plots the string TEXT at position {X,Y,Z} along
+     direction {DX,DY,DZ} with specified style FNT and SIZE. By default
+     parameters from `font' command are used.
+
+ -- MGL command: text ydat 'text' ['fnt'=" `size=-1 zval=nan']
+ -- MGL command: text xdat ydat 'text' ['fnt'=" `size=-1 zval=nan']
+ -- MGL command: text xdat ydat zdat 'text' ['fnt'=" `size=-1']
+     The command draws TEXT along the curve between points {XDAT[i],
+     YDAT[i], ZDAT[i]} by font style FNT and with size SIZE. The string
+     FNT may contain symbols `t' for printing the text under the curve
+     (default), or `T' for printing the text above the curve. The sizes
+     of 1st dimension must be equal for all arrays
+     XDAT.NX=YDAT.NX=ZDAT.NX. If array XDAT is not specified then its
+     an automatic array is used with values equidistantly distributed
+     along x. If array ZDAT is not specified then Z[i] = ZVAL is used.
+     *Note Text sample::, for sample code and picture.
+
+ -- MGL command: title 'text' ['fnt'=" `size=-2']
+     Print string TEXT as title of the picture (at the top of the
+     picture). Can be used at any place (even inside *note subplot::).
+
+ -- MGL command: fgets `x y' 'fname' [`n=0' 'fnt'=" `size=-1.4']
+ -- MGL command: fgets `x y z' 'fname' [`n=0' 'fnt'=" `size=-1.4']
+     Draws unrotated N-th line of file FNAME at position {X,Y,Z} with
+     specified SIZE. By default parameters from *note font:: command
+     are used.
+
+
+File: mgl_en.info,  Node: Axis and Colorbar,  Next: Legend,  Prev: Text printing,  Up: MGL interface
+
+1.8 Axis and Colorbar
+=====================
+
+These commands draw the "things for measuring", like axis with ticks,
+colorbar with ticks, grid along axis, bounding box and labels for axis.
+For more information *note Axis settings::.
+
+ -- MGL command: axis ['dir'='xyz' `adjust=off']
+     Draws axes with ticks (*note Axis settings::) in directions
+     determined by string parameter DIR.If string contain the symbol
+     `_' then tick labels are not printed. Font for ticks labels is
+     determined by command *note font::. Ticks will be automatically
+     adjusted if ADJUST=`on' (by call of `adjust 'dir'').
+
+ -- MGL command: colorbar ['sch'=" `pos=0']
+     Draws colorbar with color scheme SCH (current scheme if `sch=''')
+     at edge of plot. Parameter POS specifies the position of colorbar:
+     `0' - at right (default), `1' - at left, `2' - at top, `3' - at
+     bottom. If string SCH contains `<>^_' then the parameter POS is
+     defined as: `pos=0' for `>' (right), `pos=1' for `<' (left),
+     `pos=2' for `^' (top), `pos=3' for `_' (bottom). If string have
+     `A' then absolute (relative to picture) coordinates is used. *Note
+     Dens sample::, for sample code and picture.
+
+ -- MGL command: colorbar vdat ['sch'=" `pos=0']
+     The same as previous but with sharp colors SCH (current palette if
+     `sch=""') for values V. *Note ContD sample::, for sample code and
+     picture.
+
+ -- MGL command: colorbar 'sch' `pos x y w h'
+     The same as first one but at arbitrary position of subplot {X, Y}
+     (supposed to be in range [0,1]). Parameters W, H set the relative
+     width and height of the colorbar.
+
+ -- MGL command: grid ['dir'='xyz' 'pen'='B']
+     Draws grid lines perpendicular to direction determined by string
+     parameter DIR. The step of grid lines is the same as tick step for
+     an `axis'. The style of lines is determined by PEN parameter.
+
+ -- MGL command: box ['stl'='k' `ticks=on']
+     Draws bounding box outside the plotting volume with line style
+     'stl'. If `ticks=on' then ticks are drawn with current axis
+     setting.
+
+ -- MGL command: xlabel 'text' [`pos=0 size=-1.4 shift=0']
+ -- MGL command: ylabel 'text' [`pos=0 size=-1.4 shift=0']
+ -- MGL command: zlabel 'text' [`pos=0 size=-1.4 shift=0']
+ -- MGL command: tlabel 'text' [`pos=0 size=-1.4 shift=0']
+     Prints the label TEXT for x-,y-,z-,t-axis (here `t' is "ternary"
+     axis t=1-x-y). The position of label is determined by POS
+     parameter. If POS=0 then label is printed at the center of axis.
+     If POS>0 then label is printed at the maximum of axis (default).
+     If POS<0 then label is printed at the minimum of axis. The font
+     size is 1.4 times larger than the one for ticks `font'. Parameter
+     `shift' specify additional shifting of the label. *Note Text
+     printing::.
+
+
+File: mgl_en.info,  Node: Legend,  Next: 1D plotting,  Prev: Axis and Colorbar,  Up: MGL interface
+
+1.9 Legend
+==========
+
+These commands draw legend to the graph (useful for *note 1D
+plotting::). Legend entry is a pair of strings: one for style of the
+line, another one with description text (with included LaTeX parsing).
+The array of string are accumulated first to the internal arrays (by
+command *note addlegend::) and are plotted later. The position of the
+legend can be selected automatic or manually. Parameters FNT and SIZE
+specify the font style and size. Parameter LLEN set the relative width
+of the line sample and the text indent (default value is 0.1). If line
+style string for entry is empty then the corresponding text is printed
+without indent. If string contains `A' then legend coordinates set
+position in the picture. *Note Legend sample::, for sample code and
+picture.
+
+ -- MGL command: legend [`pos=3' 'fnt'='rL' `size=-1 llen=0.1']
+     Draws legend of accumulated legend entries by font FNT with
+     specified SIZE. Parameter POS sets the position of the legend: `0'
+     is bottom left corner, `1' is bottom right corner, `2' is top left
+     corner, `3' is top right corner (is default).
+
+ -- MGL command: legend `x y' ['fnt'='rL' `size=-1 llen=0.1']
+     Draws legend of accumulated legend entries by font FNT with SIZE.
+     Position of legend in the current subplot is determined by
+     parameter X, Y which supposed to be normalized to interval [0,1].
+
+ -- MGL command: addlegend 'text' 'stl'
+     Adds string TEXT to internal legend accumulator. The style of
+     described line and mark is specified in string STL (*note Line
+     styles::). Maximal number of entries is 100.
+
+ -- MGL command: clearlegend
+     Clears saved legend strings.
+
+ -- MGL command: legendbox `val'
+     Switches on/off the drawing of a box near legend. By default, the
+     box is drawn.
+
+ -- MGL command: legendmarks `val'
+     Set the number of marks in the legend. By default 1 mark is used.
+
+
+File: mgl_en.info,  Node: 1D plotting,  Next: 2D plotting,  Prev: Legend,  Up: MGL interface
+
+1.10 1D plotting
+================
+
+These commands perform plotting of 1D data. 1D means that data depended
+from only 1 parameter like parametric curve {x(i),y(i),z(i)}, i=1...n.
+There are 5 generally different types of data representations: simple
+line plot (*note plot::), line plot with filling under it (*note
+area::), stairs plot (*note step::), bar plot (*note bars::, *note
+barh::) and vertical lines (*note stem::). Each type of plotting has
+similar interface. Most of plotting type has similar interface. There
+are 3D version and two 2D versions. One of last requires single array.
+The parameters of line and marks are specified by the string argument.
+If the string parameter is NULL then solid line with color from palette
+is used (*note Line styles::). Also there are some special 1d plots
+having slightly different interface: surface of curve rotation (*note
+torus::), chart (*note chart::) and error boxes (*note error::), marks
+with variable size (*note mark::), tubes (*note tube::) and so on.
+*Note 1D plot sample::, for sample code and picture.
+
+   The plots are drawn for each row if one of the data is the matrix.
+By any case the sizes of 1st dimension *must be equal* for all arrays
+XDAT.NX=YDAT.NX=ZDAT.NX. If array XDAT is not specified then its an
+automatic array is used with values equidistantly distributed along x.
+If array ZDAT is not specified then ZDAT[i] = ZVAL is used (the default
+is at the bottom of the bounding box). String STL specifies the color
+and style of line and marks (*note Line styles::). By default
+(`stl=''') solid line with color from palette is used (*note Line
+styles::).
+
+ -- MGL command: plot ydat ['stl'=" `zval=nan']
+ -- MGL command: plot xdat ydat ['stl'=" `zval=nan']
+ -- MGL command: plot xdat ydat zdat ['stl'="]
+     Draws continuous lines between points {XDAT[i], YDAT[i], ZDAT[i]}.
+     See also *note area::, *note step::, *note stem::, *note tube::,
+     *note mark::, *note error::, *note belt::, *note tens::. *Note
+     Plot sample::, for sample code and picture.
+
+ -- MGL command: radar adat ['stl'=" `r=-1']
+     Draws radar chart which is continuous lines between points located
+     on an radial lines (like plot in Polar coordinates). The plots are
+     drawn for each row if one of the data is the matrix. Parameter R
+     set the additional shift of data (i.e. the data ADAT+R is used
+     instead of ADAT). If `r<0' then `r=max(0, -min(adat)'. String PEN
+     specifies the color and style of line and marks (*note Line
+     styles::). By default (`stl=""') solid line with color from
+     palette is used (*note Line styles::). If PEN containt `#' symbol
+     then "grid" (radial lines and circle for R) is drawn See also
+     *note plot::. *Note Radar sample::, for sample code and picture.
+
+ -- MGL command: tens ydat cdat ['stl'=" `zval=nan']
+ -- MGL command: tens xdat ydat cdat ['stl'=" `zval=nan']
+ -- MGL command: tens xdat ydat zdat cdat ['stl'="]
+     Draws continuous lines between points {XDAT[i], YDAT[i], ZDAT[i]}
+     with color defined by CDAT[i] (look like tension plot). See also
+     *note plot::, *note mesh::, *note fall::. *Note Tens sample::, for
+     sample code and picture.
+
+ -- MGL command: area ydat ['stl'=" `zval=nan']
+ -- MGL command: area xdat ydat ['stl'=" `zval=nan']
+ -- MGL command: area xdat ydat zdat ['stl'="]
+     Draws continuous lines between points {XDAT[i], YDAT[i], ZDAT[i]}
+     and fills it down to axis (to axis plane in 3D). You can use
+     gradient filling if number of specified colors is equal to
+     2*number of curves. If string contain symbol `a' then lines are
+     drawn one above another (like summation). See also *note plot::,
+     *note bars::, *note stem::, *note region::. *Note Area sample::,
+     for sample code and picture.
+
+ -- MGL command: region fdat gdat ['stl'=" `inside=off']
+ -- MGL command: region xdat fdat gdat ['stl'=" `inside=off']
+     Fills area between curves {XDAT[i], FDAT[i]} and {XDAT[i],
+     GDAT[i]}. Parameter  `inside=off' set to fill are with y1<y<y2
+     else the area with y2<y<y1 will be also filled. You can use
+     gradient filling if number of specified colors is equal to
+     2*number of curves. See also *note area::, *note bars::, *note
+     stem::. *Note Region sample::, for sample code and picture.
+
+ -- MGL command: stem ydat ['stl'=" `zval=nan']
+ -- MGL command: stem xdat ydat ['stl'=" `zval=nan']
+ -- MGL command: stem xdat ydat zdat ['stl'="]
+     Draws vertical lines from points {XDAT[i], YDAT[i], ZDAT[i]} to
+     axis (to axis plane in 3D). See also *note area::, *note bars::,
+     *note plot::, *note mark::. *Note Stem sample::, for sample code
+     and picture.
+
+ -- MGL command: bars ydat ['stl'=" `zval=nan']
+ -- MGL command: bars xdat ydat ['stl'=" `zval=nan']
+ -- MGL command: bars xdat ydat zdat ['stl'="]
+     Draws vertical bars from points {XDAT[i], YDAT[i], ZDAT[i]} to
+     axis (to axis plane in 3D). If style contain symbol `a' then lines
+     are drawn one above another. If string contain symbol `f' then
+     waterfall chart is drawn for determining the cumulative effect of
+     sequentially introduced positive or negative values. You can
+     different colors for positive and negative values if number of
+     specified colors is equal to 2*number of curves. See also *note
+     barh::, *note area::, *note stem::, *note chart::. *Note Bars
+     sample::, for sample code and picture.
+
+ -- MGL command: barh vdat ['stl'=" `zval=nan']
+ -- MGL command: barh ydat vdat ['stl'=" `zval=nan']
+     Draws horizontal bars from points {XDAT[i], YDAT[i], ZDAT[i]} to
+     y-axis. If array YDAT is not specified then its an automatic array
+     is used with values equidistantly distributed along y. Marks at
+     data points are not drawn. If style contain symbol `a' then lines
+     are drawn one above another. If string contain symbol `f' then
+     waterfall chart is drawn for determining the cumulative effect of
+     sequentially introduced positive or negative values. You can
+     different colors for positive and negative values if number of
+     specified colors is equal to 2*number of curves.  See also *note
+     bars::. *Note Barh sample::, for sample code and picture.
+
+ -- MGL command: chart adat ['col'="]
+     The command draws colored stripes (boxes) for data in array ADAT.
+     The number of stripes is equal to the number of rows in ADAT
+     (equal to A.NY). The color of each next stripe is cyclically
+     changed from colors specified in string COL or in palette. Spaces
+     in colors denote transparent "color", i.e. if COL contain space(s)
+     then corresponding stripe(s) are not drawn. The stripe width is
+     proportional to value of element in A. Chart is plotted only for
+     data with non-negative elements. If string COL have symbol `#'
+     then black border lines are drawn. The most nice form the chart
+     have in 3d (after rotation of coordinates) or in cylindrical
+     coordinates (becomes so called Pie chart). *Note Chart sample::,
+     for sample code and picture.
+
+ -- MGL command: step ydat ['stl'=" `zval=nan']
+ -- MGL command: step xdat ydat ['stl'=" `zval=nan']
+ -- MGL command: step xdat ydat zdat ['stl'="]
+     Draws continuous stairs for points {XDAT[i], YDAT[i], ZDAT[i]}.
+     See also *note plot::, *note stem::, *note tile::, *note boxs::.
+     *Note Step sample::, for sample code and picture.
+
+ -- MGL command: torus zdat ['stl'="]
+ -- MGL command: torus rdat zdat ['stl'="]
+     Draws surface which is result of curve {RDAT[i], ZDAT[i], ZDAT[i]}
+     rotation around *note axialdir:: axis. If array RDAT is not
+     specified then its an automatic array is used with values
+     equidistantly distributed along x. See also *note plot::, *note
+     axial::. *Note Torus sample::, for sample code and picture.
+
+ -- MGL command: tube ydat rdat ['stl'=" `zval=nan']
+ -- MGL command: tube ydat `rval' ['stl'=" `zval=nan']
+ -- MGL command: tube xdat ydat rdat ['stl'=" `zval=nan']
+ -- MGL command: tube xdat ydat `rval' ['stl'=" `zval=nan']
+ -- MGL command: tube xdat ydat zdat rdat ['stl'="]
+ -- MGL command: tube xdat ydat zdat `rval' ['stl'="]
+     Draws tube with variable radius RDAT[i] (or RVAL) at points
+     {XDAT[i], YDAT[i], ZDAT[i]}. See also *note plot::. *Note Tube
+     sample::, for sample code and picture.
+
+ -- MGL command: mark ydat rdat ['stl'=" `zval=nan']
+ -- MGL command: mark xdat ydat rdat ['stl'=" `zval=nan']
+ -- MGL command: mark xdat ydat zdat rdat ['stl'="]
+     Draws  marks with size RDAT[i]*`marksize' at points {XDAT[i],
+     YDAT[i], ZDAT[i]}. See also *note plot::, *note textmark::, *note
+     stem::, *note error::. *Note Mark sample::, for sample code and
+     picture.
+
+ -- MGL command: textmark ydat 'txt' ['stl'=" `zval=nan']
+ -- MGL command: textmark ydat rdat 'txt' ['stl'=" `zval=nan']
+ -- MGL command: textmark xdat ydat rdat 'txt' ['stl'=" `zval=nan']
+ -- MGL command: textmark xdat ydat zdat rdat 'txt' ['stl'="]
+     Draws string TXT as marks with size RDAT[i]*`marksize' at points
+     {XDAT[i], YDAT[i], ZDAT[i]}. If array RDAT is not specified then
+     RDAT[i] = 1. See also *note plot::, *note mark::, *note stem::.
+     *Note Error sample::, for sample code and picture.
+
+ -- MGL command: error ydat yerr ['stl'=" `zval=nan']
+ -- MGL command: error xdat ydat yerr ['stl'=" `zval=nan']
+ -- MGL command: error xdat ydat xerr yerr ['stl'=" `zval=nan']
+     Draws error boxes {XERR[i], YERR[i]} at points {XDAT[i], YDAT[i],
+     ZVAL}. See also *note plot::. *Note TextMark sample::, for sample
+     code and picture.
+
+ -- MGL command: boxplot adat ['stl'=" `zval=nan']
+ -- MGL command: boxplot xdat adat ['stl'=" `zval=nan']
+     Draws boxplot (also known as a box-and-whisker diagram) at points
+     XDAT in plane z=`zval' (by default is at the bottom of the
+     bounding box). This is five-number summaries of data <em>adat</em>
+     (minimum, lower quartile (Q1), median (Q2), upper quartile (Q3)
+     and maximum) along second (j-th) direction. See also *note plot::,
+     *note error::, *note bars::. *Note BoxPlot sample::, for sample
+     code and picture.
+
+
+File: mgl_en.info,  Node: 2D plotting,  Next: 3D plotting,  Prev: 1D plotting,  Up: MGL interface
+
+1.11 2D plotting
+================
+
+These commands perform plotting of 2D data. 2D means that data depend
+from 2 independent parameters like matrix f(x_i,y_j), i=1...n, j=1...m.
+There are 6 generally different types of data representations: simple
+mesh lines plot (*note mesh::), surface plot (*note surf::), surface
+plot by boxes (*note boxs::), surface plot by tiles (*note tile::),
+waterfall-like plot (*note fall::), belt plot (*note belt::), density
+plot (*note dens::), contour lines plot (*note cont::), solid contours
+plot (*note contf::) and its rotational figure (*note axial::).
+Commands *note cont::, *note contf:: and *note axial:: have variants
+for automatic and manual selection of level values for contours. Also
+there are commands for plotting data grid lines according to the data
+format (*note grid::) for enhancing density or contour plots. Each type
+of plotting has similar interface. There are 2 kind of versions which
+handle the arrays of data and coordinates or only single data array.
+*Note 2D plot sample::, for sample code and picture.
+
+   String parameter SCH sets the color scheme (*note Color scheme::).
+Previous color scheme is used by default. The minor dimensions of
+arrays XDAT, YDAT, ZDAT should be equal `xdat.nx=zdat.nx &&
+ydat.nx=zdat.ny' or `xdat.nx=ydat.nx=zdat.nx &&
+xdat.ny=ydat.ny=zdat.ny'. Arrays XDAT and YDAT can be vectors (not
+matrices as ZDAT). If array XDAT, YDAT is not specified then its an
+automatic arrays are used with values equidistantly distributed along
+x, y. Graphics are plotted for each z-slice of the data.
+
+ -- MGL command: surf zdat ['sch'="]
+ -- MGL command: surf xdat ydat zdat ['sch'="]
+     Draws surface specified parametrically {XDAT[i,j], YDAT[i,j],
+     ZDAT[i,j]}. See also *note mesh::, *note dens::, *note belt::,
+     *note tile::, *note boxs::, *note surfc::, *note surfa::. *Note
+     Surf sample::, for sample code and picture.
+
+ -- MGL command: mesh zdat ['sch'="]
+ -- MGL command: mesh xdat ydat zdat ['sch'="]
+     Draws mesh lines for surface specified parametrically {XDAT[i,j],
+     YDAT[i,j], ZDAT[i,j]}. See also *note surf::, *note fall::, *note
+     meshnum::, *note cont::, *note tens::. *Note Mesh sample::, for
+     sample code and picture.
+
+ -- MGL command: fall zdat ['sch'="]
+ -- MGL command: fall xdat ydat zdat ['sch'="]
+     Draws fall lines for surface specified parametrically {XDAT[i,j],
+     YDAT[i,j], ZDAT[i,j]}. If SCH contain `x' then lines are drawn
+     along x-direction else (by default) lines are drawn along
+     y-direction. See also *note belt::, *note mesh::, *note tens::,
+     *note meshnum::. *Note Fall sample::, for sample code and picture.
+
+ -- MGL command: belt zdat ['sch'="]
+ -- MGL command: belt xdat ydat zdat ['sch'="]
+     Draws belts for surface specified parametrically {XDAT[i,j],
+     YDAT[i,j], ZDAT[i,j]}. If SCH contain `x' then belts are drawn
+     along x-direction else (by default) lines are drawn along
+     y-direction. See also *note fall::, *note surf::, *note plot::,
+     *note meshnum::. *Note Belt sample::, for sample code and picture.
+
+ -- MGL command: boxs zdat ['sch'="]
+ -- MGL command: boxs xdat ydat zdat ['sch'="]
+     Draws vertical boxes for surface specified parametrically
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. See also *note surf::, *note
+     dens::, *note tile::, *note step::. *Note Boxs sample::, for
+     sample code and picture.
+
+ -- MGL command: tile zdat ['sch'="]
+ -- MGL command: tile xdat ydat zdat ['sch'="]
+     Draws horizontal tiles for surface specified parametrically
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. Such plot can be used as 3d
+     generalization of *note step::. See also *note surf::, *note
+     boxs::, *note step::, *note tiles::. *Note Tile sample::, for
+     sample code and picture.
+
+ -- MGL command: dens zdat ['sch'=" `zval=nan']
+ -- MGL command: dens xdat ydat zdat ['sch'=" `zval=nan']
+     Draws density plot for surface specified parametrically
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} at Z = ZVAL. See also *note
+     surf::, *note cont::, *note contf::, *note boxs::, *note tile::,
+     `dens[xyz]'. *Note Dens sample::, for sample code and picture.
+
+ -- MGL command: cont vdat zdat ['sch'=" `zval=nan']
+ -- MGL command: cont vdat xdat ydat zdat ['sch'=" `zval=nan']
+     Draws contour lines for surface specified parametrically
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} at Z = ZVAL (or for Z=VDAT[k] if
+     `zval=nan'). Contours are plotted for ZDAT[i,j]=VDAT[k] for all k.
+     If string STL contain 't' (or 'T') symbol then contour labels will
+     be drawn below (or above) the contours. See also *note dens::,
+     *note contf::, *note contd::, *note axial::, `cont[xyz]'. *Note
+     Cont sample::, for sample code and picture.
+
+ -- MGL command: cont zdat ['sch'=" `num=7 zval=nan']
+ -- MGL command: cont xdat ydat zdat ['sch'=" `num=7 zval=nan']
+     The same as previous one with vector VDAT of NUM-th elements
+     equidistantly distributed in color range (see, `caxis').
+
+ -- MGL command: contf vdat zdat ['sch'=" `zval=nan']
+ -- MGL command: contf vdat xdat ydat zdat ['sch'=" `zval=nan']
+     Draws solid (or filled) contours for surface specified
+     parametrically {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} at Z = ZVAL (or
+     for Z=VDAT[k] if `zval=nan'). Contours are plotted for
+     ZDAT[i,j]=VDAT[k] for all k (must be `vdat.nx>2'). See also *note
+     dens::, *note cont::, *note contd::, `contf[xyz]'. *Note ContF
+     sample::, for sample code and picture.
+
+ -- MGL command: contf zdat ['sch'=" `num=7 zval=nan']
+ -- MGL command: contf xdat ydat zdat ['sch'=" `num=7 zval=nan']
+     The same as previous one with vector VDAT of NUM-th elements
+     equidistantly distributed in color range (see, `caxis').
+
+ -- MGL command: contd vdat zdat ['sch'=" `zval=nan']
+ -- MGL command: contd vdat xdat ydat zdat ['sch'=" `zval=nan']
+     Draws solid (or filled) contours for surface specified
+     parametrically {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} at Z = ZVAL (or
+     for Z=VDAT[k] if `zval=nan') with manual colors. Contours are
+     plotted for ZDAT[i,j]=VDAT[k] for all k (must be `vdat.nx>2'). The
+     color of k-th contour is `sch[k%strlen(sch)]'. See also *note
+     dens::, *note cont::, *note contf::. *Note ContD sample::, for
+     sample code and picture.
+
+ -- MGL command: contd zdat ['sch'=" `num=7 zval=nan']
+ -- MGL command: contd xdat ydat zdat ['sch'=" `num=7 zval=nan']
+     The same as previous one with vector VDAT of NUM-th elements
+     equidistantly distributed in color range (see, `caxis').
+
+ -- MGL command: axial vdat zdat ['sch'="]
+ -- MGL command: axial vdat xdat ydat zdat ['sch'="]
+     Draws surface which is result of contour plot rotation surface
+     specified parametrically {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}.
+     Contours are plotted for ZDAT[i,j]=VDAT[k] for all k. If string
+     SCH have symbol `#' then wire plot is produced. If string SCH
+     contain symbols `x', `y' or `z' then rotation axis `axialdir' will
+     be set to specified direction. If string SCH have symbol `#' then
+     wire plot is produced. See also *note cont::, *note contf::, *note
+     torus::, *note surf3::. *Note Axial sample::, for sample code and
+     picture.
+
+ -- MGL command: axial zdat ['sch'=" `num=3']
+ -- MGL command: axial xdat ydat zdat ['sch'=" `num=3']
+     The same as previous one with vector VDAT of NUM-th elements
+     equidistantly distributed in color range (see, `caxis').
+
+ -- MGL command: grad pdat ['sch'=" `num=5 zval=nan']
+ -- MGL command: grad xdat ydat pdat ['sch'=" `num=5 zval=nan']
+ -- MGL command: grad xdat ydat zdat pdat ['sch'=" `num=5']
+     Draws gradient lines for scalar field PDAT specified
+     parametrically {XDAT[i,j], YDAT[i,j]} or {XDAT[i,j,k],
+     YDAT[i,j,k], ZDAT[i,j,k]}. String SCH sets the color scheme.
+     Previous color scheme is used by default. Number of lines is
+     proportional to NUM. If NUM<0 then lines start from borders only.
+     See also *note dens::, *note cont::, *note dens3::, *note cont3::,
+     *note flow::. *Note Grad sample::, for sample code and picture.
+
+ -- MGL command: grid2 zdat ['sch'=" `zval=nan']
+ -- MGL command: grid2 xdat ydat zdat ['sch'=" `zval=nan']
+     Draws grid lines for density plot of surface specified
+     parametrically {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} at Z = ZVAL. See
+     also *note dens::, *note cont::, *note contf::.
+
+
+File: mgl_en.info,  Node: 3D plotting,  Next: Dual plotting,  Prev: 2D plotting,  Up: MGL interface
+
+1.12 3D plotting
+================
+
+These commands perform plotting of 3D data. 3D means that data depend
+from 3 independent parameters like matrix f(x_i,y_j,z_k), i=1...n,
+j=1...m, k=1...l. There are 4 generally different types of data
+representations: isosurface or surface of constant value (*note
+surf3::), density plot at slices (Dens3), contour lines plot at slices
+(*note cont3::), solid contours plot at slices (*note contf3::) and
+cloud-like plot (*note cloud::). Commands *note surf3::, *note cont3::
+and *note contf3:: have variants for automatic and manual selection of
+level values for surfaces/contours. Also there are commands for
+plotting data grid lines according to the data format (*note grid3::)
+for enhancing density or contour plots. Each type of plotting has
+similar interface. There are 2 kind of versions which handle the arrays
+of data and coordinates or only single data array. *Note 3D plot
+sample::, for sample code and picture.
+
+   String paramter SCH sets the color scheme (*note Color scheme::).
+Previous color scheme is used by default. Arrays X, Y, Z can be vectors
+(not 3d arrays as A). If array XDAT, YDAT, ZDAT is not specified then
+its an automatic arrays are used with values equidistantly distributed
+along x, y, z.
+
+ -- MGL command: surf3 adat `val' ['sch'="]
+ -- MGL command: surf3 xdat ydat zdat adat `val' ['sch'="]
+     Draws isosurface plot for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) at
+     A(x,y,z)=VAL. If string contain `#' then wire plot is produced.
+     See also *note cloud::, *note dens3::, *note surf3c::, *note
+     surf3a::, *note axial::. *Note Surf3 sample::, for sample code and
+     picture.
+
+ -- MGL command: surf3 adat ['sch'=" `num=5']
+ -- MGL command: surf3 xdat ydat zdat adat ['sch'=" `num=5']
+     Draws NUM-th uniformly distributed in color range (see *note
+     caxis::) isosurfaces for 3d data specified parametrically.
+
+ -- MGL command: dens3 adat 'dir' [`sval=-1' 'sch'="]
+ -- MGL command: dens3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="]
+     Draws density plot for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). Density is
+     plotted at slice SVAL in DIR={`x', `y', `z'} direction. If string
+     STL have symbol `#' then grid lines are drawn. See also *note
+     cont3::, *note contf3::, *note dens::, *note grid3::. *Note Dens3
+     sample::, for sample code and picture.
+
+ -- MGL command: densa adat ['sch'="]
+ -- MGL command: densa xdat ydat zdat adat ['sch'="]
+     Draws density plots at all central slices of the 3d data specified
+     parametrically.
+
+ -- MGL command: cont3 vdat adat 'dir' [`sval=-1' 'sch'="]
+ -- MGL command: cont3 vdat xdat ydat zdat adat 'dir' [`sval=-1'
+          'sch'="]
+     Draws contour plot for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). Contours are
+     plotted for values specified in array VDAT at slice SVAL in
+     DIR={`x', `y', `z'} direction. If string STL have symbol `#' then
+     grid lines are drawn. If string STL contain 't' (or 'T') symbol
+     then contour labels will be drawn below (or above) the contours.
+     See also *note dens3::, *note contf3::, *note cont::, *note
+     grid3::. *Note Cont3 sample::, for sample code and picture.
+
+ -- MGL command: cont3 adat 'dir' [`sval=-1' 'sch'=" `num=7']
+ -- MGL command: cont3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="
+          `num=7']
+     The same as previous one with vector VDAT of NUM-th elements
+     equidistantly distributed in color range (see `caxis').
+
+ -- MGL command: conta adat ['sch'=" `num=7']
+ -- MGL command: conta xdat ydat zdat adat ['sch'=" `num=7']
+     Draws contour plots at all central slices of the 3d data specified
+     parametrically.
+
+ -- MGL command: contf3 vdat adat 'dir' [`sval=-1' 'sch'="]
+ -- MGL command: contf3 vdat xdat ydat zdat adat 'dir' [`sval=-1'
+          'sch'="]
+     Draws solid contour plot for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). Contours are
+     plotted for values specified in array VDAT at slice SVAL in
+     DIR={`x', `y', `z'} direction. If string STL have symbol `#' then
+     grid lines are drawn. See also *note dens3::, *note cont3::, *note
+     contf::, *note grid3::. *Note ContF3 sample::, for sample code and
+     picture.
+
+ -- MGL command: contf3 adat 'dir' [`sval=-1' 'sch'=" `num=7']
+ -- MGL command: contf3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="
+          `num=7']
+     The same as previous one with vector VDAT of NUM-th elements
+     equidistantly distributed in color range (see *note caxis::).
+
+ -- MGL command: contfa adat ['sch'=" `num=7']
+ -- MGL command: contfa xdat ydat zdat adat ['sch'=" `num=7']
+     Draws solid contour plots at all central slices of the 3d data
+     specified parametrically.
+
+ -- MGL command: grid3 adat 'dir' [`sval=-1' 'sch'="]
+ -- MGL command: grid3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="]
+     Draws grid for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). Grid is
+     plotted at slice SVAL in DIR={`x', `y', `z'} direction. See also
+     *note cont3::, *note contf3::, *note dens3::, *note grid2::. *Note
+     Dens3 sample::, for sample code and picture.
+
+ -- MGL command: grida adat ['sch'="]
+ -- MGL command: grida xdat ydat zdat adat ['sch'="]
+     Draws grids at all central slices of the 3d data specified
+     parametrically.
+
+ -- MGL command: cloud adat ['sch'="]
+ -- MGL command: cloud xdat ydat zdat adat ['sch'="]
+     Draws cloud for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). This plot is a
+     set of cubes with color and transparency proportional to value of
+     ADAT. The resulting plot is like cloud - low value is transparent
+     but higher ones are not. The number of plotting cells depend on
+     *note meshnum::. Paramater ALPHA changes the overall transparency
+     of plot. See also *note surf3::. *Note Cloud sample::, for sample
+     code and picture.
+
+ -- MGL command: beam tr g1 g2 adat `rval' ['sch'=" `flag=0 num=3']
+     Draws  NUM-th uniformly distributed in color range (see `caxis')
+     isosurfaces for 3d array ADAT. This is special kind of plot for
+     ADAT specified in accompanied coordinates along curve TR with orts
+     G1, G2 and with transverse scale RVAL. Variable FLAG is bitwise:
+     `0x1' - draw in accompanied (not laboratory) coordinates; `0x2' -
+     draw projection to \rho-z plane; `0x4' - draw normalized in each
+     slice field. The x-size of data arrays TR, G1, G2 must be nx>2.
+     The y-size of data arrays TR, G1, G2 and z-size of the data array
+     A must be equal. See also *note surf3::.
+
+
+File: mgl_en.info,  Node: Dual plotting,  Next: Vector fields,  Prev: 3D plotting,  Up: MGL interface
+
+1.13 Dual plotting
+==================
+
+These plotting commands draw _two matrix_ simultaneously. There are 5
+generally different types of data representations: surface or
+isosurface colored by other data (*note surfc::, *note surf3c::),
+surface or isosurface transpared by other data (*note surfa::, *note
+surf3a::), tiles with variable size (*note tiles::), mapping diagram
+(*note map::), STFA diagram (*note stfa::). Commands *note surf3a:: and
+*note surf3c:: have variants for automatic and manual selection of
+level values for isosurfaces. Each type of plotting has similar
+interface. There are 2 kind of versions which handle the arrays of data
+and coordinates or only single data array.
+
+   String paramter SCH sets the color scheme (*note Color scheme::).
+Previous color scheme is used by default. Arrays X, Y, Z can be vectors
+(not 3d arrays as A). If array XDAT, YDAT, ZDAT is not specified then
+its an automatic arrays are used with values equidistantly distributed
+along x, y, z.
+
+ -- MGL command: surfc zdat cdat ['sch'="]
+ -- MGL command: surfc xdat ydat zdat cdat ['sch'="]
+     Draws surface specified parametrically {XDAT[i,j], YDAT[i,j],
+     ZDAT[i,j]} and color it by matrix CDAT[i,j]. See also *note
+     surf::, *note surfa::, *note surf3c::. *Note SurfC sample::, for
+     sample code and picture.
+
+ -- MGL command: surf3c adat cdat `val' ['sch'="]
+ -- MGL command: surf3c xdat ydat zdat adat cdat `val' ['sch'="]
+     Draws isosurface plot for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) at
+     A(x,y,z)=VAL. It is mostly the same as *note surf3:: command but
+     the color of isosurface depends on values of array CDAT. If string
+     contain `#' then wire plot is produced. See also *note surf3::,
+     *note surfc::, *note surf3a::. *Note Surf3C sample::, for sample
+     code and picture.
+
+ -- MGL command: surf3c adat cdat ['sch'=" `num=5']
+ -- MGL command: surf3c xdat ydat zdat adat cdat ['sch'=" `num=5']
+     Draws NUM-th uniformly distributed in color range (see `caxis')
+     isosurfaces for 3d data specified parametrically.
+
+ -- MGL command: surfa zdat cdat ['sch'="]
+ -- MGL command: surfa xdat ydat zdat cdat ['sch'="]
+     Draws surface specified parametrically {XDAT[i,j], YDAT[i,j],
+     ZDAT[i,j]} and transparent it by matrix CDAT[i,j]. See also *note
+     surf::, *note surfc::, *note surf3a::, *note tiles::. *Note SurfA
+     sample::, for sample code and picture.
+
+ -- MGL command: surf3a adat cdat `val' ['sch'="]
+ -- MGL command: surf3a xdat ydat zdat adat cdat `val' ['sch'="]
+     Draws isosurface plot for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) at
+     A(x,y,z)=VAL. It is mostly the same as *note surf3:: command but
+     the transparency of isosurface depends on values of array CDAT. If
+     string contain `#' then wire plot is produced. See also *note
+     surf3::, *note surfa::, *note surf3c::. *Note Surf3A sample::, for
+     sample code and picture.
+
+ -- MGL command: surf3a adat cdat ['sch'=" `num=5']
+ -- MGL command: surf3a xdat ydat zdat adat cdat ['sch'=" `num=5']
+     Draws NUM-th uniformly distributed in color range (see `caxis')
+     isosurfaces for 3d data specified parametrically.
+
+ -- MGL command: tiles zdat rdat ['sch'="]
+ -- MGL command: tiles xdat ydat zdat rdat ['sch'="]
+     Draws horizontal tiles for surface specified parametrically
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. It is mostly the same as *note
+     tile:: but the size of tiles is determined by RDAT array. See also
+     *note surfa::, *note tile::. *Note TileS sample::, for sample code
+     and picture.
+
+ -- MGL command: map udat vdat ['sch'=" `pnts=on']
+ -- MGL command: map xdat ydat udat vdat ['sch'=" `pnts=on']
+     Draws mapping plot for matrixes {UDAT, VDAT } which parametrically
+     depend on coordinates XDAT, YDAT. The previous position of the
+     cell (point) is marked by color. Height is proportional to
+     Jacobian(udat,vdat). This plot is like Arnold diagram ???. If
+     `pnts=off' then face is drawn otherwise the color ball at matrix
+     knots are drawn. The size of UDAT and VDAT must be the same. *Note
+     Map sample::, for sample code and picture.
+
+ -- MGL command: stfa re im `dn' ['sch'=" `pnts=on']
+ -- MGL command: stfa xdat ydat re im `dn' ['sch'=" `pnts=on']
+     Draws spectrogram of complex array RE+i*`im' for Fourier size of
+     DN points at plane Z=ZVAL. Parameter DN is arbitrary even integer.
+     For example in 1D case, result is density plot of data
+     res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn with
+     size {int(nx/dn), dn, ny}. *Note STFA sample::, for sample code
+     and picture.
+
+
+File: mgl_en.info,  Node: Vector fields,  Next: Other plotting,  Prev: Dual plotting,  Up: MGL interface
+
+1.14 Vector fields
+==================
+
+These commands perform plotting of 2D and 3D vector fields. There are 6
+generally different types of vector fields representations: simple
+vector field (*note vect::), vector field by dew-drops (*note dew::),
+flow threads (*note flow::), flow pipes (*note pipe::), vectors along a
+curve (*note traj::). Each type of plotting has similar interface.
+There are 2 kind of versions which handle the arrays of data and
+coordinates or only single data array. Parameters of color scheme are
+specified by the string argument. *Note Color scheme::.
+
+   The color is specified by the string argument SCH. Previous color
+scheme is used by default. Parameter FLAG setup the hachures (arrows).
+It is combination of values: `1' for drawing bi-color arrow, `2' for
+drawing fixed length arrows, `4' for drawing arrows to the cell point,
+`8' for drawing arrows with center at cell point, `16' for drawing
+hachures with dots instead of arrows.
+
+   The size of UDAT, VDAT and WDAT must be equal. The minor dimensions
+of arrays XDAT, YDAT, ZDAT and UDAT must be equal too. Arrays XDAT,
+YDAT and ZDAT can be vectors (not matrices as UDAT). The graphics is
+plotted for each z slice of UDAT, VDAT for 2D case.
+
+ -- MGL command: traj xdat ydat udat vdat ['sch'=" `zval=nan len=0']
+ -- MGL command: traj xdat ydat zdat udat vdat wdat ['sch'=" `len=0']
+     Draws vectors {UDAT, VDAT, WDAT} along a curve XDAT, YDAT, ZDAT.
+     The length and color of arrows are proportional to
+     \sqrt{udat^2+vdat^2+wdat^2}. See also `vect'. *Note Traj sample::,
+     for sample code and picture.
+
+ -- MGL command: vect udat vdat ['sch'=" `zval=nan flag=0']
+ -- MGL command: vect xdat ydat udat vdat ['sch'=" `zval=nan flag=0']
+     Draws plane vector field plot for the field {UDAT, VDAT} depending
+     parametrically on coordinates XDAT, YDAT at level Z=ZVAL. The
+     length and color of arrows are proportional to
+     \sqrt{udat^2+vdat^2}. The number of arrows depend on *note
+     meshnum::. See also *note flow::, *note dew::, *note vectc::.
+     *Note Vect sample::, for sample code and picture.
+
+ -- MGL command: vect udat vdat wdat ['sch'=" `flag=0']
+ -- MGL command: vect xdat ydat zdat udat vdat wdat ['sch'=" `flag=0']
+     This is 3D version of the previous command. Here arrays UDAT,
+     VDAT, WDAT must be 3-ranged tensors with equal sizes and the
+     length and color of arrows are proportional to
+     \sqrt{udat^2+vdat^2+wdat^2}. *Note Vect 3D sample::, for sample
+     code and picture.
+
+ -- MGL command: vectc udat vdat ['sch'=" `zval=nan']
+ -- MGL command: vectc xdat ydat udat vdat ['sch'=" `zval=nan']
+     Draws plane vector field plot for the field {UDAT, VDAT} depending
+     parametrically on coordinates XDAT, YDAT at level Z=ZVAL. The
+     color of hachures is proportional to \sqrt{udat^2+vdat^2}. The
+     number of hachures depend on MESHNUM. See also `vect, flow, pipe,
+     dew'. *Note VectC sample::, for sample code and picture.
+
+ -- MGL command: vectc udat vdat wdat ['sch'="]
+ -- MGL command: vectc xdat ydat zdat udat vdat wdat ['sch'="]
+     This is 3D version of the previous command. Here arrays UDAT,
+     VDAT, WDAT must be 3-ranged tensors with equal sizes and the color
+     of hachures is proportional to \sqrt{udat^2+vdat^2+wdat^2}. *Note
+     VectC 3D sample::, for sample code and picture.
+
+ -- MGL command: vectl udat vdat ['sch'=" `zval=nan']
+ -- MGL command: vectl xdat ydat udat vdat ['sch'=" `zval=nan']
+     Draws plane vector field plot for the field {UDAT, VDAT} depending
+     parametrically on coordinates XDAT, YDAT at level Z=ZVAL. The
+     length of hachures is proportional to \sqrt{udat^2+vdat^2}. The
+     number of hachures depend on MESHNUM. See also `vectc, flow, pipe,
+     dew'. *Note Vect sample::, for sample code and picture.
+
+ -- MGL command: vectl udat vdat wdat ['sch'="]
+ -- MGL command: vectl xdat ydat zdat udat vdat wdat ['sch'="]
+     This is 3D version of the previous command. Here arrays UDAT,
+     VDAT, WDAT must be 3-ranged tensors with equal sizes and the
+     length of hachures is proportional to \sqrt{udat^2+vdat^2+wdat^2}.
+     *Note VectL 3D sample::, for sample code and picture.
+
+ -- MGL command: dew udat vdat ['sch'=" `zval=nan']
+ -- MGL command: dew xdat ydat udat vdat ['sch'=" `zval=nan']
+     Draws dew-drops for plane vector field {UDAT, VDAT} depending
+     parametrically on coordinates XDAT, YDAT at level Z=ZVAL. The
+     color of drops is proportional to \sqrt{udat^2+vdat^2}. The number
+     of drops depend on *note meshnum::. Note that this is very
+     expensive plot in memory usage and creation time! See also *note
+     vect::. *Note Dew sample::, for sample code and picture.
+
+ -- MGL command: flow udat vdat ['sch'=" `num=5 zval=nan']
+ -- MGL command: flow xdat ydat udat vdat ['sch'=" `num=5 zval=nan']
+     Draws plane flow threads for the vector field {UDAT, VDAT}
+     depending parametrically on coordinates XDAT, YDAT at level
+     Z=ZVAL. Number of threads is proportional to NUM. The color of
+     lines is proportional to \sqrt{udat^2+vdat^2}. Warm color
+     corresponds to normal flow (like attractor). Cold one corresponds
+     to inverse flow (like source). See also `vect, vectc, pipe'. *Note
+     Flow sample::, for sample code and picture.
+
+ -- MGL command: flow udat vdat wdat ['sch'=" `num=3']
+ -- MGL command: flow xdat ydat zdat udat vdat wdat ['sch'=" `num=3']
+     This is 3D version of the previous command. Here arrays UDAT,
+     VDAT, WDAT must be 3-ranged tensors with equal sizes and the color
+     is proportional to \sqrt{udat^2+vdat^2+wdat^2}. *Note Flow 3D
+     sample::, for sample code and picture.
+
+ -- MGL command: flow `x0 y0' udat vdat ['sch'=" `zval=nan']
+ -- MGL command: flow `x0 y0' xdat ydat udat vdat ['sch'=" `zval=nan']
+     Draws plane flow threads for the vector field {UDAT, VDAT}
+     depending parametrically on coordinates XDAT, YDAT from point {X0,
+     Y0} at level Z=ZVAL. The color of lines is proportional to
+     \sqrt{udat^2+vdat^2}. Warm color corresponds to normal flow (like
+     attractor). Cold one corresponds to inverse flow (like source).
+     See also `vect, vectc, pipe'. *Note Flow sample::, for sample code
+     and picture.
+
+ -- MGL command: flow `x0 y0 z0' udat vdat wdat ['sch'="]
+ -- MGL command: flow `x0 y0 z0' xdat ydat zdat udat vdat wdat ['sch'="]
+     Draws flow thread from point {X0, Y0, Z0}. Arrays UDAT, VDAT, WDAT
+     must be 3-ranged tensors with equal sizes and the color is
+     proportional to \sqrt{udat^2+vdat^2+wdat^2}. *Note Flow 3D
+     sample::, for sample code and picture.
+
+ -- MGL command: pipe udat vdat ['sch'=" `r0=0.05 num=5 zval=nan']
+ -- MGL command: pipe xdat ydat udat vdat ['sch'=" `r0=0.05 num=5
+          zval=nan']
+     Draws plane flow pipes for the vector field {UDAT, VDAT} depending
+     parametrically on coordinates XDAT, YDAT at level Z=ZVAL. Number
+     of pipes is proportional to NUM. The color of pipes is
+     proportional to \sqrt{udat^2+vdat^2}. Warm color corresponds to
+     normal flow (like attractor). Cold one corresponds to inverse flow
+     (like source). Parameter R0 set the base pipe radius. If R0<0 then
+     pipe radius is inverse proportional to amplitude. The size of AX
+     and AY must be equal. See also `vect, vectc, pipe'. *Note Pipe
+     sample::, for sample code and picture.
+
+ -- MGL command: pipe udat vdat wdat ['sch'=" `r0=0.05 num=3']
+ -- MGL command: pipe xdat ydat zdat udat vdat wdat ['sch'=" `r0=0.05
+          num=3']
+     This is 3D version of the previous command. Here arrays UDAT,
+     VDAT, WDAT must be 3-ranged tensors with equal sizes and the color
+     is proportional to \sqrt{udat^2+vdat^2+wdat^2}. *Note Pipe 3D
+     sample::, for sample code and picture.
+
+
+File: mgl_en.info,  Node: Other plotting,  Next: Nonlinear fitting,  Prev: Vector fields,  Up: MGL interface
+
+1.15 Other plotting
+===================
+
+These commands perform miscelaneous plotting. There is unstructured
+data points plots (Dots), surface reconstruction (Crust), surfaces on
+the triangular mesh (TriPlot) or quadrangular mesh (QuadPlot), textual
+formula plotting (Plots by formula), data plots at edges (Dens[XYZ],
+Cont[XYZ], ContF[XYZ]), simple plot (SimplePlot). Each type of plotting
+has similar interface. There are 2 kind of versions which handle the
+arrays of data and coordinates or only single data array. Parameters of
+color scheme are specified by the string argument. *Note Color scheme::.
+
+ -- MGL command: densx dat ['sch'=" `val=nan']
+ -- MGL command: densy dat ['sch'=" `val=nan']
+ -- MGL command: densz dat ['sch'=" `val=nan']
+     These plotting commands draw density plot in x, y or z plain. If
+     DAT is a tensor (3-dimensional data) then interpolation to a given
+     VAL is performed. These commands are useful for creating
+     projections of the 3D data array to the bounding box. See also
+     `cont[xyz], contf[xyz]', *note dens::. *Note Dens projection
+     sample::, for sample code and picture.
+
+ -- MGL command: contx dat ['sch'=" `val=nan num=7']
+ -- MGL command: conty dat ['sch'=" `val=nan num=7']
+ -- MGL command: contz dat ['sch'=" `val=nan num=7']
+     These plotting commands draw contour lines in x, y or z plain. If
+     DAT is a tensor (3-dimensional data) then interpolation to a given
+     VAL is performed. These commands are useful for creating
+     projections of the 3D data array to the bounding box. See also
+     `dens[xyz], contf[xyz]', *note cont::. *Note Cont projection
+     sample::, for sample code and picture.
+
+ -- MGL command: contfx dat ['sch'=" `val=nan num=7']
+ -- MGL command: contfy dat ['sch'=" `val=nan num=7']
+ -- MGL command: contfz dat ['sch'=" `val=nan num=7']
+     These plotting commands draw solid contours in x, y or z plain. If
+     DAT is a tensor (3-dimensional data) then interpolation to a given
+     VAL is performed. These commands are useful for creating
+     projections of the 3D data array to the bounding box. See also
+     `dens[xyz], cont[xyz]', *note contf::.
+
+ -- MGL command: dots xdat ydat zdat ['sch'="]
+ -- MGL command: dots xdat ydat zdat adat ['sch'="]
+     Draws the arbitrary placed points {XDAT[i], YDAT[i], ZDAT[i]}.
+     Variable ADAT[i] set transparency for dots. See also *note
+     crust::, *note mark::, *note plot::. *Note Dots sample::, for
+     sample code and picture.
+
+ -- MGL command: crust xdat ydat zdat ['sch'="]
+     Reconstructs and draws the surface for arbitrary placed points
+     {XDAT[i], YDAT[i], ZDAT[i]}. If string contain `#' then wire plot
+     is produced. See also *note dots::, *note triplot::. *Note Crust
+     sample::, for sample code and picture.
+
+ -- MGL command: triplot idat xdat ydat ['sch'=" `zval=nan']
+ -- MGL command: triplot idat xdat ydat zdat ['sch'="]
+ -- MGL command: triplot idat xdat ydat zdat cdat ['sch'="]
+     Draws the surface of triangles. Triangle vertexes are set by
+     indexes IDAT of data points {XDAT[i], YDAT[i], ZDAT[i]}. If string
+     contain `#' then wire plot is produced. First dimensions of IDAT
+     must be 3 or greater. See also `dots, crust, quadplot'. Parameter
+     CDAT set the colors of triangles (if IDAT.ny=CDAT.nx) or colors of
+     vertexes (if XDAT.nx=CDAT.nx). See also *note dots::, *note
+     crust::, *note quadplot::, *note tricont::.
+
+ -- MGL command: tricont vdat idat xdat ydat zdat cdat ['sch'="
+          `zval=nan']
+ -- MGL command: tricont vdat idat xdat ydat zdat ['sch'=" `zval=nan']
+ -- MGL command: tricont idat xdat ydat zdat ['sch'=" `num=7 zval=nan']
+     Draws contour lines for surface of triangles at Z = ZVAL (or for
+     Z=VDAT[k] if `zval=nan'). Triangle vertexes are set by indexes
+     IDAT of data points {XDAT[i], YDAT[i], ZDAT[i]}. Contours are
+     plotted for ZDAT[i,j]=VDAT[k] for all k (or NUM contours
+     equidistantly distributed in range [CMIN, CMAX].). See also *note
+     triplot::, *note cont::.
+
+ -- MGL command: quadplot idat xdat ydat ['sch'=" `zval=nan']
+ -- MGL command: quadplot idat xdat ydat zdat ['sch'="]
+ -- MGL command: quadplot idat xdat ydat zdat cdat ['sch'="]
+     Draws the surface of quadrangles. Quadrangle vertexes are set by
+     indexes IDAT of data points {XDAT[i], YDAT[i], ZDAT[i]}. If string
+     contain `#' then wire plot is produced. First dimensions of IDAT
+     must be 4 or greater. See also `triplot, dots, crust'. Parameter
+     CDAT set the colors of triangles (if IDAT.ny=CDAT.nx) or colors of
+     vertexes (if XDAT.nx=CDAT.nx). See also *note triplot::.
+
+ -- MGL command: fplot 'y(x)' ['pen'=" `zval=nan num=100']
+     Draws command function `y(x)' at plane z=ZVAL where `x' variable
+     is changed in `xrange'. You do not need to create the data arrays
+     to plot it. The parameter NUM set the minimal number of points
+     along coordinate(s) for plots. See also *note plot::.
+
+ -- MGL command: fplot 'x(t)' 'y(t)' 'z(t)' ['pen'=" `num=100']
+     Draws command parametrical curve {`x(t)', `y(t)', `z(t)'} where
+     `t' variable is changed in range [0, 1]. You do not need to create
+     the data arrays to plot it. The parameter NUM set the minimal
+     number of points along coordinate(s) for plots. See also *note
+     plot::.
+
+ -- MGL command: fsurf 'z(x,y)' ['sch'=" `num=100']
+     Draws command surface for function `z(x,y)' where `x', `y'
+     variable are changed in `xrange, yrange'. You do not need to
+     create the data arrays to plot it. The parameter NUM set the
+     minimal number of points along coordinate(s) for plots. See also
+     *note surf::.
+
+ -- MGL command: fsurf 'x(u,v)' 'y(u,v)' 'z(u,v)' ['sch'=" `num=100']
+     Draws command parametrical surface {`x(u,v)', `y(u,v)', `z(u,v)'}
+     where `u', `v' variable are changed in range [0, 1]. You do not
+     need to create the data arrays to plot it. The parameter NUM set
+     the minimal number of points along coordinate(s) for plots. See
+     also *note surf::.
+
+
+File: mgl_en.info,  Node: Nonlinear fitting,  Next: Data create,  Prev: Other plotting,  Up: MGL interface
+
+1.16 Nonlinear fitting
+======================
+
+These commands fit data to formula. Fitting goal is to find formula
+parameters for the best fit the data points, i.e. to minimize the sum
+\sum_i (f(x_i, y_i, z_i) - a_i)^2/s_i^2. At this, approximation
+function `f' can depend only on one argument `x' (1D case), on two
+arguments `x,y' (2D case) and on three arguments `x,y,z' (3D case). The
+command `f' also may depend on parameters. Normally the list of fitted
+parameters is specified by VAR string (like, `abcd'). Usually user
+should supply initial values for fitted parameters by INI variable. But
+if he/she don't supply it then the zeros are used.
+
+   Commands *note fit:: and *note fits:: do not draw the obtained data
+themselves. They fill the data OUT by formula `f' with found
+coefficients. At this, the `x,y,z' coordinates are equidistantly
+distributed in the bounding box. Number of points in OUT is selected as
+maximal value of OUT size or 100. Also you may print the last formula
+with found coefficients by `putsfit' command. *Note Fitting sample::,
+for sample code and picture.
+
+   The dimensions of arrays must be at least the same as the number of
+specified arrays XDAT, YDAT, ZDAT. Also the fitting only along
+specified directions will be performed (for example, along x and y if
+only XDAT and YDAT are specified). If array XDAT is not specified then
+its an automatic array is used with values equidistantly distributed
+along x.
+
+ -- MGL command: fits adat sdat 'func' 'var' [ini=0]
+ -- MGL command: fits xdat adat sdat 'func' 'var' [ini=0]
+ -- MGL command: fits xdat ydat adat sdat 'func' 'var' [ini=0]
+ -- MGL command: fits xdat ydat zdat adat sdat 'func' 'var' [ini=0]
+     Fit data along x-, y- and z-directions for 1d-,2d- or 3d array
+     specified parametrically ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k],
+     ZDAT[i,j,k]) with weight factor SDAT[i,j,k].
+
+ -- MGL command: fit adat 'func' 'var' [ini=0]
+ -- MGL command: fit xdat adat 'func' 'var' [ini=0]
+ -- MGL command: fit xdat ydat adat 'func' 'var' [ini=0]
+ -- MGL command: fit xdat ydat zdat adat 'func' 'var' [ini=0]
+     Fit data along x-, y- and z-directions for 1d-,2d- or 3d array
+     specified parametrically ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k],
+     ZDAT[i,j,k]) with weight factor =1.
+
+ -- MGL command: putsfit `x y' ['pre'=" 'fnt'=" `size=-1']
+     Print last fitted formula with found coefficients (as numbers) at
+     position {X, Y}. The string PRE will be printed before formula.
+     All other parameters are the same as in *note Text printing::.
+
+
+File: mgl_en.info,  Node: Data create,  Next: Data filling,  Prev: Nonlinear fitting,  Up: MGL interface
+
+1.17 Data create
+================
+
+ -- MGL command: new dat [`nx=1 ny=1 nz=1']
+     Creates or recreates the array DAT with specified size and fills
+     it by zero. This command does nothing if one of parameters NX, NY,
+     NZ is zero or negative.
+
+ -- MGL command: var dat `num v1 [v2=nan]'
+     Creates new variable with name DAT for one-dimensional array of
+     size NUM. Array elements are equidistantly distributed in range
+     [V1, V2]. If V2=`nan' then V2=V1 is used.
+
+ -- MGL command: list dat `v1 ...'
+     Creates new variable with name DAT and fills it by numeric values
+     of command arguments `v1 ...'. Command can create one-dimensional
+     and two-dimensional arrays with arbitrary values. For creating 2d
+     array the user should use delimiter `|' which means that the
+     following values lie in next row. Array sizes are [maximal of row
+     sizes * number of rows]. For example, command `list 1 | 2 3'
+     creates the array [1 0; 2 3]. Note, that the maximal number of
+     arguments is 1000.
+
+ -- MGL command: list dat d1 ...
+     Creates new variable with name DAT and fills it by data values of
+     arrays of command arguments D1 .... Command can create
+     two-dimensional or three-dimensional (if arrays in arguments are
+     2d arrays) arrays with arbitrary values. Minor dimensions of all
+     arrays in arguments should be equal to dimensions of first array
+     d1. In the opposite case the argument will be ignored. Note, that
+     the maximal number of arguments is 1000.
+
+ -- MGL command: copy dat1 dat2 ['eq'=" `on_axis=on']
+ -- MGL command: copy dat1 `val'
+     Creates new variable with name DAT1 and fills it by data values of
+     array DAT2. At this, if parameter EQ is specified then the data
+     will be modified by corresponding formula by the same way as in
+     *note fill:: command (for `on_axis=on') or in *note modify::
+     command (for `on_axis=off').
+
+ -- MGL command: idset dat 'ids'
+     Set the symbol id for data columns. The string must contain one
+     symbol 'a'...'z' per column (without spaces).
+
+ -- MGL command: info dat [`detail=off']
+     Display information (sizes, maximum/minimum, momentums and so on)
+     about the data dat. Show brief information by default (if
+     `detail=off').
+
+ -- MGL command: info 'text'
+     Display TEXT as information (warning).
+
+
+File: mgl_en.info,  Node: Data filling,  Next: Rearrange data,  Prev: Data create,  Up: MGL interface
+
+1.18 Data filling
+=================
+
+ -- MGL command: fill dat v1 v2 ['dir'='x']
+     Equidistantly fills the data values to range [X1, X2] in direction
+     DIR={`x',`y',`z'}.
+
+ -- MGL command: fill dat 'eq'
+ -- MGL command: fill dat 'eq' vdat
+ -- MGL command: fill dat 'eq' vdat wdat
+     Command fills the value of array according to the formula in
+     string EQ. Formula is an arbitrary expression depending  on
+     variables `x', `y', `z', `u', `v', `w'. Coordinates `x', `y', `z'
+     are supposed to be normalized in _bounding box_ (in difference
+     from `modify' commands). Variable `u' is the original value of the
+     array. Variables `v' and `w' are values of VDAT, WDAT.
+
+ -- MGL command: modify dat 'eq' [`dim=0']
+ -- MGL command: modify dat 'eq' vdat
+ -- MGL command: modify dat 'eq' vdat wdat
+     Command fills the value of array according to the formula in
+     string EQ. Formula is an arbitrary expression depending  on
+     variables `x', `y', `z', `u'. Coordinates `x', `y', `z' are data
+     indexes normalized in range [0,1]. Variable `u' is the original
+     value of the array. If DIM>0 is specified then modification will
+     be fulfilled only for slices >=DIM.
+
+ -- MGL command: put dat `val [i=: j=: k=:]'
+     Function sets value(s) of array DAT[I, J, K] = VAL. Negative
+     indexes I, J, K=`:' set the value VAL to whole range in
+     corresponding direction(s). For example, `put dat val : 0 :' sets
+     DAT[i,0,j]=VAL for i=0...(DAT.nx-1), j=0...(DAT.nz-1).
+
+ -- MGL command: put dat vdat [`i=: j=: k=:']
+     Function copies value(s) from array VDAT to the range of array
+     DAT. Negative indexes I, J, K=`:' set the range in corresponding
+     direction(s). At this minor dimensions of array VDAT should be
+     large than corresponding dimensions of array DAT. For example,
+     `put dat v : 0 :' sets DAT[i,0,j]=VDAT.ny>DAT.nz ? VDAT[i,j] :
+     VDAT[i], where i=0...(DAT.nx-1), j=0...(DAT.nz-1) and condition
+     vdat.nx>=dat.nx is true.
+
+
+File: mgl_en.info,  Node: Rearrange data,  Next: File I/O,  Prev: Data filling,  Up: MGL interface
+
+1.19 Rearrange data
+===================
+
+ -- MGL command: rearrange dat `mx [my=0 mz=0]'
+     Rearrange dimensions without changing data array so that resulting
+     sizes should  be MX*MY*MZ < nx*ny*nz. If some of parameter MY or
+     MZ are zero then it will be selected to optimal fill of data
+     array. For example, if MY=0 then it will be change to
+     MY=nx*ny*nz/MX and MZ will be 1.
+
+ -- MGL command: extend dat `n1 [n2=0]'
+     Increase the dimensions of the data by inserting new (|N1|+1)-th
+     slices after (for N1>0) or before (for N1<0) of existed one. It is
+     possible to insert 2 dimensions simultaneously for 1d data by
+     using parameter N2. Data to new slices is copy from existed one.
+     For example, for N1>0 new array will be a_ij^new = a_i^old where
+     j=0...N1. Correspondingly, for N1<0 new array will be a_ij^new =
+     a_j^old where i=0...|N1|.
+
+ -- MGL command: transpose dat ['dim'='yxz']
+     Transposes (shift order of) dimensions of the data. New order of
+     dimensions is specified int string DIM. This command may be useful
+     also for the reading of one-dimensional data.
+
+ -- MGL command: squeeze dat `rx [ry=1 rz=1 sm=off]'
+     Reduces the data size by excluding data elements which indexes are
+     not divisible by RX, RY, RZ correspondingly. Parameter SM set to
+     use smoothing (i.e. out[i]=\sum_{j=i}^{i+r} a[j]/r) or not (i.e.
+     out[i]=a[j*r]).
+
+ -- MGL command: crop dat `n1 n2' 'dir'
+     Cuts off edges of the data I<N1 and I>N2 if N2>0 or I>`n[xyz]'-N2
+     if N2<=0 along direction DIR.
+
+ -- MGL command: delete dat
+     Deletes variable DAT and makes its memory free. Can be useful for
+     huge data arrays.
+
+ -- MGL command: delete dat 'dir' `[pos=off num=0]'
+     Delete NUM slices along DIR-direction at position POS.
+
+ -- MGL command: insert dat 'dir' `[pos=off num=0]'
+     Insert NUM slices along DIR-direction at position POS.
+
+
+File: mgl_en.info,  Node: File I/O,  Next: Make another data,  Prev: Rearrange data,  Up: MGL interface
+
+1.20 File I/O
+=============
+
+ -- MGL command: read dat 'fname'
+     Reads data from tab-separated text file with auto determining
+     sizes of the data.
+
+ -- MGL command: read dat 'fname' `mx [my=1 mz=1]'
+     Reads data from text file with specified data sizes. This command
+     does nothing if one of parameters MX, MY or MZ is zero or negative.
+
+ -- MGL command: readmat dat 'fname' [`dim=2']
+     Read data from text file with size specified at beginning of the
+     file by first DIM numbers. At this, variable DIM set data
+     dimensions.
+
+ -- MGL command: readall dat 'templ' `v1 v2 [dv=1 slice=off]'
+     Join data arrays from several text files. The file names are
+     determined by function call `sprintf(fname,templ,val);', where VAL
+     changes from V1 to V2 with step DV. The data load one-by-one in
+     the same slice if SLICE=`off' or as slice-by-slice if SLICE=`on'.
+
+ -- MGL command: readall dat 'templ' `[slice=off]'
+     Join data arrays from several text files which filenames satisfied
+     the template TEMPL (for example, TEMPL=`"t_*.dat"'). The data load
+     one-by-one in the same slice if SLICE=`off' or as slice-by-slice
+     if SLICE=`on'.
+
+ -- MGL command: save dat 'fname'
+     Saves the whole data array to tab-separated text file.
+
+ -- MGL command: readhdf dat 'fname' 'dname'
+     Reads data array named DNAME from HDF5 or HDF4 file FNAME.
+
+ -- MGL command: savehdf dat 'fname' 'dname'
+     Saves data array named DNAME from HDF5 or HDF4 file FNAME.
+
+ -- MGL command: import dat 'fname' 'sch' [`v1=0 v2=1']
+     Reads data from bitmap file. The RGB values of bitmap pixels are
+     transformed to float values in range [V1, V2] using color scheme
+     SCH (*note Color scheme::).
+
+ -- MGL command: export dat 'fname' 'sch' [`v1=0 v2=0']
+     Saves data matrix to bitmap file. The data values are transformed
+     from range [V1, V2] to RGB pixels of bitmap using color scheme SCH
+     (*note Color scheme::). If V1>=V2 then the values of V1, V2 are
+     automatically determined as minimal and maximal value of the data
+     array.
+
+
+File: mgl_en.info,  Node: Make another data,  Next: Change data,  Prev: File I/O,  Up: MGL interface
+
+1.21 Make another data
+======================
+
+ -- MGL command: combine res adat bdat
+     Returns direct multiplication of arrays (like, res[i,j] =
+     adat[i]*bdat[j] and so on).
+
+ -- MGL command: evaluate res dat idat [`norm=on']
+ -- MGL command: evaluate res dat idat jdat [`norm=on']
+ -- MGL command: evaluate res dat idat jdat kdat [`norm=on']
+     Get array which values is result of interpolation of original
+     array for coordinates from other arrays (for example,
+     res[i,j]=dat[idat[i,j],jdat[i,j]]). All dimensions must be the
+     same for data IDAT, JDAT, KDAT. Coordinates from IDAT, JDAT, KDAT
+     are supposed to be normalized in range [0,1] (if NORM=`true') or
+     in ranges [0,nx], [0,ny], [0,nz] correspondingly.
+
+ -- MGL command: hist res dat `num v1 v2 [nsub=0]'
+ -- MGL command: hist res dat wdat `num v1 v2 [nsub=0]'
+     Creates NUM-th points distribution RES of the data values of DAT
+     in range [V1, V2]. Array WDAT specifies weights of the data
+     elements (all weight is 1 if WDAT is not specified). Parameter
+     NSUB define the number of additional interpolated points (for
+     smoothness of histogram).
+
+ -- MGL command: hist res xdat adat
+ -- MGL command: hist res xdat ydat adat
+ -- MGL command: hist res xdat ydat zdat adat
+     Creates distribution RES of the data values of ADAT in axis range
+     [Min, Max]. Array ADAT look like weights of the data points.
+
+ -- MGL command: momentum res dat 'how' ['dir'='z']
+     Get momentum (1D-array) of the data along direction DIR. String
+     HOW contain kind of momentum. The momentum is defined like as
+     res_k = \sum_ij how(x_i,y_j,z_k) a_ij/ \sum_ij a_ij if VAR=`z' and
+     so on. Coordinates `x', `y', `z' are data indexes normalized in
+     range [0,1].
+
+ -- MGL command: sum res dat 'dir'
+     Gets array which is the result of summation in given direction or
+     direction(s).
+   
+ -- MGL command: max res dat 'dir'
+     Gets array which is the maximal data values in given direction or
+     direction(s).
+   
+ -- MGL command: min res dat 'dir'
+     Gets array which is the minimal data values in given direction or
+     direction(s).
+
+ -- MGL command: resize res dat `mx [my=1 mz=1]'
+     Makes array RES of sizes MX, MY, MZ with interpolated data of
+     array DAT.
+
+ -- MGL command: subdata res dat `xx [yy=: zz=:]'
+     Extracts sub-array data RES from the original data DAT array
+     keeping fixed positive index. For example `subdata a b : 2'
+     extracts 3d row (indexes are zero based), `subdata a b 4 :'
+     extracts 5th column, `subdata a b : : 3' extracts 4th slice and so
+     on. Note that symbol `:' is defined `:'=`-1' in MGL.
+
+ -- MGL command: trace res dat
+     Gets array of diagonal elements DAT[i,i] (for 2D case) or
+     DAT[i,i,i] (for 3D case) where i=0...nx-1. Function return copy of
+     DAT for 1D case. Data array must have dimensions DAT.ny, DAT.nz >=
+     DAT.nx or DAT.ny, DAT.nz = 1.
+
+ -- MGL command: transform dat 'type' real imag
+     Do integral transformation of complex data REAL, IMAG on specified
+     direction. The order of transformations is specified in string
+     TYPE: first character for x-dimension, second one for y-dimension,
+     third one for z-dimension. The possible character are: `f' is
+     forward Fourier transformation, `i' is inverse Fourier
+     transformation, `s' is Sine transform, `c' is Cosine transform,
+     `h' is Hankel transform, `n' or ` ' is no transformation.
+
+ -- MGL command: transforma dat 'type' ampl phase
+     The same as previous but with specified amplitude AMPL and phase
+     PHASE of complex numbers.
+
+ -- MGL command: stfad res real imag `dn' ['dir'='x']
+     Short time Fourier transformation for real and imaginary parts.
+     Output  is amplitude of partial Fourier of length DN. For example
+     if DIR=`x', result will have size {int(nx/dn), dn, ny} and it will
+     contain res[i,j,k]=|\sum_d^dn
+     exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn.
+
+ -- MGL command: pde res 'ham' ini_re ini_im [`dz=0.1 k0=100']
+     Solves equation du/dz = i*k0*HAM(p,q,x,y,z,|u|)[u], where
+     p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators.
+     Parameters INI_RE, INI_IM specify real and imaginary part of
+     initial field distribution. Coordinates of the equation (and the
+     solution) are supposed to be in the bounding box. Note, that
+     really this ranges are increased by factor 3/2 for purpose of
+     reducing reflection from boundaries. Parameter DZ set the step
+     along evolutionary coordinate z. At this moment, simplified form
+     of function HAM is supported - all "mixed" terms (like
+     `x*p'->x*d/dx) are excluded. For example, in 2D case this function
+     is effectively ham = f(p,z) + g(x,z,u). However commutable
+     combinations (like `x*q'->x*d/dy) are allowed. Here variable `u'
+     is used for field amplitude |u|. This allow one solve nonlinear
+     problems - for example, for non-linear Shrodinger equation you may
+     set `ham='p^2+q^2-u^2''. You may specify imaginary part for wave
+     absorption, like `ham = 'p^2+i*x*(x>0)'', but only if dependence
+     on variable `i' is linear (i.e. ham = hre+i*him). *Note PDE
+     sample::, for sample code and picture.
+
+ -- MGL command: ray res 'ham' `x0 y0 z0 p0 q0 v0 [dt=0.1 tmax=10]'
+     Solves GO ray equation like d_r_/dt = d HAM/d_p_, d_p_/dt = -d
+     HAM/d_r_. This is Hamiltonian equations for particle trajectory in
+     3D case. Here HAM is Hamiltonian which may depend on coordiantes
+     `x', `y', `z', momentums `p'=px, `q'=py, `v'=pz and time `t': ham
+     = H(x,y,z,p,q,v,t). The starting point (at `t=0') is defined by
+     variables {X0, Y0, Z0, P0, Q0, V0}. Parameters DT and TMAX specify
+     the integration step and maximal time for ray tracing. Result is
+     array of {x,y,z,p,q,v,t} with dimensions {7 * int(TMAX/DT+1) }.
+     See also *note pde::. *Note Beam tracing sample::, for sample code
+     and picture.
+
+ -- MGL command: qo2d res 'ham' ini_re ini_im ray [`r=1 k0=100' xx=0
+          yy=0]
+     Solves equation du/dt = i*k0*HAM(p,q,x,y,|u|)[u], where
+     p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators.
+     Parameters INI_RE, INI_IM specify real and imaginary part of
+     initial field distribution. Parameters RAY set the reference ray,
+     i.e. the ray around which the accompanied coordinate system will
+     be maked. You may use, for example, the array created by *note
+     ray:: function. Note, that the reference ray *must be* smooth
+     enough to make accompanied coodrinates unambiguity. Otherwise
+     errors in the solution may appear. If XX and YY are non-zero then
+     Cartesian coordinates for each point will be written into them.
+     *Note Beam tracing sample::, for sample code and picture.
+
+ -- MGL command: jacobian res xdat ydat [zdat=0]
+     Computates the Jacobian for transformation {i,j,k} to
+     {XDAT,YDAT,ZDAT} where initial coordinates  {i,j,k} are data
+     indexes normalized in range [0,1]. The Jacobian is determined by
+     formula det||dr_\alpha/d\xi_\beta|| where r={XDAT,YDAT,ZDAT} and \
+     xi={i,j,k}. All dimensions must be the same for all data arrays.
+     Data must be 3D if all 3 arrays {XDAT,YDAT,ZDAT} are specified or
+     2D if only 2 arrays {XDAT,YDAT} are specified.
+
+
+File: mgl_en.info,  Node: Change data,  Next: Operators,  Prev: Make another data,  Up: MGL interface
+
+1.22 Change data
+================
+
+These commands change the data in some direction like differentiations,
+integrations and so on. The direction in which the change will applied
+is specified by the string parameter, which may contain `x', `y' or `z'
+characters for 1-st, 2-nd and 3-d dimension correspondingly.
+
+ -- MGL command: cumsum dat 'dir'
+     Cumulative summation of the data in given direction or directions.
+   
+ -- MGL command: integrate dat 'dir'
+     Integrates (like cumulative summation) the data in given direction
+     or directions.
+   
+ -- MGL command: diff dat 'dir'
+     Differentiates the data in given direction or directions.
+
+ -- MGL command: diff dat xdat ydat [zdat=0]
+     Differentiates the data DAT specified parametrically in direction
+     XDAT with YDAT, ZDAT=constant. Parameter ZDAT can be omitted that
+     correspond to 2D case. Parametrical differentiation uses the
+     formula (for 2D case): da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j)
+     where a_i=da/di, a_j=da/dj denotes usual differentiation along 1st
+     and 2nd dimensions. The similar formula is used for 3D case. Note,
+     that you may change the order of arguments - for example, if you
+     have 2D data a(i,j) which depend on coordinates {x(i,j), y(i,j)}
+     then usual derivative along `x' will be `diff a x y' and usual
+     derivative along `y' will be `diff a y x'.
+
+ -- MGL command: diff2 dat 'dir'
+     Double-differentiates (like Laplace operator) the data in given
+     direction.
+
+ -- MGL command: sinfft dat 'dir'
+     Do Sine transform of the data in given direction or directions.
+     The Sine transform is \sum a_i \sin(k i).
+   
+ -- MGL command: cosfft dat 'dir'
+     Do Cosine transform of the data in given direction or directions.
+     The Cosine transform is \sum a_i \cos(k i).
+   
+ -- MGL command: hankel dat 'dir'
+     Do Hankel transform of the data in given direction or directions.
+     The Hankel transform is \sum a_i J_0(k i).
+
+ -- MGL command: swap dat 'dir'
+     Swaps the left and right part of the data in given direction
+     (useful for Fourier spectrum).
+   
+ -- MGL command: roll dat 'dir' num
+     Rolls the data along direction 'dir'. Resulting array will be
+     out[i] = ini[(i+num)%nx] if `dir='x''.
+
+ -- MGL command: mirror dat 'dir'
+     Mirror the left-to-right part of the data in given direction.
+     Looks like change the value index I->N-I.
+
+ -- MGL command: sew dat ['dir'='xyz' `da=2*pi']
+     Remove value steps (like phase jumps after inverse trigonometric
+     commands) with period DA in given direction.
+   
+ -- MGL command: smooth data `type' ['dir'='xyz']
+     Smooths the data on specified direction or directions by method
+     TYPE. Now 4 methods are supported: `0' does nothing, `1' linear
+     averaging by 3 points, `2' linear averaging by 5 points, `3'
+     quadratic averaging by 5 points.
+
+ -- MGL command: envelop dat ['dir'='x']
+     Find envelop for data values along direction DIR. Only one
+     direction can be specified at once.
+
+ -- MGL command: normsl dat `v1 v2' ['dir'='z' `keep=on sym=off']
+     Normalizes data slice-by-slice along direction DIR the data in
+     slices to range [V1,V2]. If flag SYM=`on' then symmetrical
+     interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used. If KEEP is set
+     then maximal value of k-th slice will be limited by \sqrt{\sum
+     a_ij(k)/\sum a_ij(0)}.
+
+ -- MGL command: norm dat `v1 v2 [sym=off dim=0]'
+     Normalizes the data to range [V1,V2]. If flag SYM=`on' then
+     symmetrical interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used.
+     Modification will be applied only for slices >=DIM.
+
+
+File: mgl_en.info,  Node: Operators,  Next: Program flow,  Prev: Change data,  Up: MGL interface
+
+1.23 Operators
+==============
+
+ -- MGL command: multo dat dat2
+     Multiplies the data by the other one for each element.
+
+ -- MGL command: multo dat `val'
+     Multiplies each element by the number.
+
+ -- MGL command: divto dat dat2
+     Divides the data by the other one for each element.
+
+ -- MGL command: divto dat `val'
+     Divides each element by the number.
+
+ -- MGL command: addto dat dat2
+     Adds the other data.
+
+ -- MGL command: addto dat `val'
+     Adds the number to each element.
+
+ -- MGL command: subto dat dat2
+     Subtracts the other data.
+
+ -- MGL command: subto dat `val'
+     Subtracts the number to each element.
+
+
+File: mgl_en.info,  Node: Program flow,  Next: Command options,  Prev: Operators,  Up: MGL interface
+
+1.24 Program flow
+=================
+
+These commands control program flow, like, conditions, cycles, define
+script arguments and so on.
+
+ -- MGL command: chdir 'path'
+     Changes the current directory to PATH.
+
+ -- MGL command: define $N smth
+     Sets N-th script argument to SMTH. Note, that SMTH is used as is
+     (with `'' symbols if present). Here N is digit (0...9) or alpha
+     (a...z).
+
+ -- MGL command: define name smth
+     Create scalar variable `name' which have the numeric value of
+     `smth'. Later you can use this variable as usual number. Here N is
+     digit (0...9) or alpha (a...z).
+   
+ -- MGL command: defchr $N smth
+     Sets N-th script argument to character with value evaluated from
+     SMTH. Here N is digit (0...9) or alpha (a...z).
+   
+ -- MGL command: defnum $N smth
+     Sets N-th script argument to number with value evaluated from
+     SMTH. Here N is digit (0...9) or alpha (a...z).
+   
+ -- MGL command: defpal $N smth
+     Sets N-th script argument to palette character at position
+     evaluated from SMTH. Here N is digit (0...9) or alpha (a...z).
+
+ -- MGL command: call 'fname' [ARG1 ARG2 ... ARG9]
+     Executes function FNAME (or script if function is not found).
+     Optional arguments will be passed to functions. See also *note
+     func::.
+   
+ -- MGL command: func 'fname' [narg=0]
+     Define the function FNAME and number of required arguments. The
+     arguments will be placed in script parameters $1, $2, ... $9.
+     Note, you should stop script execution before function
+     definition(s) by command *note stop::. See also *note return::.
+   
+ -- MGL command: return
+     Return from the function. See also *note func::.
+
+ -- MGL command: if dat 'cond'
+     Starts block which will be executed if DAT satisfy to COND.
+
+ -- MGL command: if `val'
+     Starts block which will be executed if `val' is nonzero.
+   
+ -- MGL command: elseif dat 'cond'
+     Starts block which will be executed if previous `if' or `elseif'
+     is false and DAT satisfy to COND.
+
+ -- MGL command: elseif `val'
+     Starts block which will be executed if previous `if' or `elseif'
+     is false and `val' is nonzero.
+   
+ -- MGL command: else
+     Starts block which will be executed if previous `if' or `elseif'
+     is false.
+   
+ -- MGL command: endif
+     Finishes `if/elseif/else' block.
+
+ -- MGL command: for $N `v1 v2 [dv=1]'
+     Starts cycle with $N-th argument changing from V1 to V2 with the
+     step DV. Here N is digit (0...9) or alpha (a...z).
+
+ -- MGL command: for $N dat
+     Starts cycle with $N-th argument changing for DAT values. Here N
+     is digit (0...9) or alpha (a...z).
+   
+ -- MGL command: next
+     Finishes `for' cycle.
+
+ -- MGL command: once `val'
+     The code between `once on' and `once off' will be executed only
+     once. Useful for large data manipulation in programs like UDAV.
+   
+ -- MGL command: stop
+     Terminate execution.
+
+
+File: mgl_en.info,  Node: Command options,  Next: Suffixes,  Prev: Program flow,  Up: MGL interface
+
+1.25 Command options
+====================
+
+Command options allow the easy setup of the plot by changing of global
+settings only for this plot. Options are specified at the end of
+string. Each option is separated from the previous text by symbol `;'.
+Options work so that them remember the current settings, change
+settings as it being set in the option, execute command and return the
+original settings back. So, the options usage for data handling
+commands or for graphics setup commands is useless.
+
+   The most useful options are `xrange, yrange, zrange'. They sets the
+boundaries for data change. This boundaries are used for automatically
+filled variables. So, these options allow one to change the position of
+some plots. For example, in command `plot y; xrange 0.1 0.9' the x
+coordinate will be equidistantly distributed in range 0.1 ... 0.9.
+
+   The full list of options are: 
+
+ -- MGL option: alpha `val'
+ -- MGL option: alphadef `val'
+     Sets alpha value (transparency) of the plot. The value should be
+     in range [0, 1]. See also *note alphadef::.
+   
+ -- MGL option: ambient `val'
+     Sets brightness of ambient light for the plot. The value should be
+     in range [0, 1]. See also *note ambient::.
+   
+ -- MGL option: crange `val1 val2'
+     Sets boundaries of color change for the plot. See also *note
+     crange::.
+   
+ -- MGL option: xrange `val1 val2'
+     Sets boundaries of x coordinate change for the plot. See also
+     *note xrange::.
+   
+ -- MGL option: yrange `val1 val2'
+     Sets boundaries of y coordinate change for the plot. See also
+     *note yrange::.
+   
+ -- MGL option: zrange `val1 val2'
+     Sets boundaries of z coordinate change for the plot. See also
+     *note zrange::.
+   
+ -- MGL option: cut `val'
+     Sets whether to cut or to project the plot points lying outside
+     the bounding box. See also *note cut::.
+   
+ -- MGL option: fontsize `val'
+     Sets the size of text. See also *note font::.
+   
+ -- MGL option: marksize `val'
+     Sets the size of marks. See also *note marksize::.
+   
+ -- MGL option: meshnum `val'
+     Work like *note meshnum:: command.
+   
+ -- MGL option: legend 'txt'
+     Adds string 'txt' to internal legend accumulator. The style of
+     described line and mark is taken from arguments of the last *note
+     1D plotting:: command. See also *note legend::.
+
+
+File: mgl_en.info,  Node: Suffixes,  Next: Utilities,  Prev: Command options,  Up: MGL interface
+
+1.26 Suffixes for variable
+==========================
+
+Suffixes can get some numerical value (like its size, maximal or
+minimal value, the sum of elements and so on) of the data array in
+variable and use it later as usual number in command arguments. The
+suffixes start from point `.' right after (without spaces) variable
+name or its sub-array. For example, `a.nx' give the x-size of data A,
+`b(1).max' give maximal value of second row of variable B,
+`(c(:,0)^2).sum' give the sum of squares of elements in the first
+column of C and so on.
+
+   The full list of suffixes are:
+*nx, ny, nz*
+     Give the data size in x-, y-, z-direction correspondingly.
+
+*max*
+     Give maximal value of the data.
+
+*min*
+     Give minimal value of the data.
+
+*sum*
+     Give sum of data values.
+
+*a*
+     Give first value of data array.
+
+*fst*
+     Give first nonzero value of data array.
+
+*lst*
+     Give last nonzero value of data array.
+
+*mx, my, mz*
+     Give x-, y-, z-position of data maximum.
+
+*ax, ay, az, aa*
+     Give x-, y-, z-position of data mass center or average data value.
+
+*wx, wy, wz, wa*
+     Give width in x-, y-, z-direction or data dispersion value.
+
+*sx, sy, sz, sa*
+     Give skewness in x-, y-, z-direction or data skewness value.
+
+*kx, ky, kz, ka*
+     Give kurtosis in x-, y-, z-direction or data kurtosis value.
+
+
+File: mgl_en.info,  Node: Utilities,  Prev: Suffixes,  Up: MGL interface
+
+1.27 Utilities for parsing MGL
+==============================
+
+MathGL library provides several tools for parsing MGL scripts. There is
+tools saving it to bitmap (`mgl2png', `mgl2gif') or vectorial
+(`mgl2eps', `mgl2svg') images. Tool `mglview' show MGL script and allow
+to rotate and setup the image. Also you can translate MGL script to C++
+file by help of `mgl2cpp' tool.
+
+   All of this tools have similar set of arguments. First argument is
+name of script file, next argument is optional output file name, last
+arguments are options. There are options for setting script parameters
+(it is `$0, $1, ... $9') and locale settings. The script parameters
+have format `-Nval'. Here N=0,1...9 is parameter ID and val is its
+value. For example, option `-1test' set to substitute `test' instead of
+`$1' in the script. Option -Lval set locale to val. For example,
+`-Lutf8' will set UTF-8 locale for script.
+
+   Additionally you can create animated GIF file or a set of JPEG files
+with names `frameNNNN.jpg' (here `NNNN' is frame index). You should use
+`mgl2gif' tool and specify the values of `$0' parameter for making
+animation. Values of the parameter `$0' can be specified inside the
+script by comment `##a val' for each value `val' (one comment for one
+value) or by option(s) `-Aval'. Also you can specify a cycle for
+animation by comment `##c v1 v2 dv' or by option `-Cn1:n2'. Tool
+`mgl2gif' will execute script several times (once for each specified
+value of `$0') and save result in animated GIF file. For saving each
+frame in JPEG just add command `write ''' at the end of the script.
+
+
+File: mgl_en.info,  Node: Examples,  Next: Samples,  Prev: MGL interface,  Up: Top
+
+2 MathGL examples
+*****************
+
+This chapter contain information about basic and advanced MathGL, hints
+and samples for all types of graphics. I recommend you read first 2
+sections one after another and at least look on "Hints" section. Also I
+recommend you to look at *note General concepts::. Sample code for some
+of these examples can be found in `http://mathgl.sf.net/pictures.html'
+and in *note Samples::.
+
+* Menu:
+
+* Basic usage::
+* Advanced usage::
+* Data handling::
+* Data plotting::
+* Hints::
+
+
+File: mgl_en.info,  Node: Basic usage,  Next: Advanced usage,  Up: Examples
+
+2.1 Basic usage
+===============
+
+MGL script can be used by several manners. Each has positive and
+negative sides:
+   * _The using of MGL in UDAV._
+
+     Positive side is the possibility to view the plot at once and to
+     modify it, rotate, zoom or switch on transparency or lighting) by
+     hand or by mouse. Negative sides are: the need of X-terminal.
+
+   * _Direct writing to file in bitmap or vector format without
+     creation of graphical window._
+
+     Positive aspects are: batch processing of similar data set, for
+     example, a set of resulting data files for different calculation
+     parameters), running from the console program, including the
+     cluster calculation), fast and automated drawing, saving pictures
+     for further analysis, or demonstration). Negative sides are: the
+     usage of the external program for picture viewing. Also, the data
+     plotting is non-visual. So, you have to imagine the picture, view
+     angles, lighting and so on) before the plotting. I recommend to
+     use graphical window for determining the optimal parameters of
+     plotting on the base of some typical data set. And later use these
+     parameters for batch processing in console program.
+
+     In this case you can use a set of programs: `mgl2png', `mgl2gif',
+     `mgl2eps', `mgl2svg' or `mglview' for viewing.
+
+   The simplest script is
+box         # draw bounding box
+axis        # draw axis
+fplot 'x^3' # draw some function
+
+   Just type it in UDAV and press F5. Also you can save it in text file
+`test.mgl' and type in the console `mgl2png test.mgl' what produce file
+`test.mgl.png' with resulting picture.
+
+
+File: mgl_en.info,  Node: Advanced usage,  Next: Data handling,  Prev: Basic usage,  Up: Examples
+
+2.2 Advanced usage
+==================
+
+Now I show several non-obvious features of MGL: several subplots in a
+single picture, curvilinear coordinates, text printing and so on.
+Generally you may miss this section at first reading, but I don't
+recommend it.
+
+* Menu:
+
+* Subplots::
+* Axis and grids::
+* Curvilinear coordinates::
+* Text printing example::
+
+
+File: mgl_en.info,  Node: Subplots,  Next: Axis and grids,  Up: Advanced usage
+
+2.2.1 Subplots
+--------------
+
+Let me demonstrate possibilities of axes transformation. MathGL has the
+following functions: `SubPlot', `InPlot', `Aspect' and `Rotate', *note
+Transformation matrix::). The order of their calling is strictly
+determined. First, one changes the position of axes in image area,
+functions `SubPlot' and `InPlot'). After that one may rotate the plot,
+function `Rotate'). Finally, one may change aspects of axes, function
+`Aspect'). The following code illustrates the aforesaid it:
+subplot 2 2 0:box
+text -1 1.1 'Just box' 'L'
+inplot 0.2 0.5 0.7 1:box
+text 0 1.2 'Inplot example'
+
+subplot 2 2 1
+rotate 60 40:aspect 1 1 1
+box:text 1 1 1.5 'rotate only' 'R'
+
+subplot 2 2 2
+rotate 60 40:aspect 1 1 2
+box:text 0 0 2 'aspect and rotate'
+
+subplot 2 2 3
+rotate 60 40:aspect 1 2 2
+box:text 0 0 1.5 'Aspect in other direction'
+ Here I used function `text' for printing the text in arbitrary
+position of picture, *note Text printing::). Text coordinates and size
+are connected with axes. However, text coordinates may be everywhere,
+including the outside the bounding box. I shall show its features later
+in *Note Text printing example::.
+
+   Note that several commands can be placed in a string if they are
+separated by `:' symbol.
+
+ [image src="../png/sample1.png" ]
+
+Example of several subplots on the single picture.
+
+
+File: mgl_en.info,  Node: Axis and grids,  Next: Curvilinear coordinates,  Prev: Subplots,  Up: Advanced usage
+
+2.2.2 Axis and grids
+--------------------
+
+MathGL library can draw not only the bounding box but also the axes,
+grids, labels and so on. The limits of axes and their origin (the point
+of intersection) are determined by function `axis'. Also you can use
+`xrange, yrange, zrange' functions (*note Axis settings::). Ticks on
+axis are specified by functions `xtick, ytick, ztick, ttick'. First
+argument the direction for each change will be applied. Second argument
+gives the step between ticks (if positive) or gives the number of ticks
+on the axis (if negative) or set to use logarithmic ticks (if zero).
+Third argument gives numbers of sub-ticks between ticks (default is
+zero). Last argument define the initial ticks position.
+
+   Function `Axis' draws axes. Its textual string shows in which
+directions the axis or axes will be drawn (by default `'xyz'', function
+draws axes in all directions). Function `Grid' draws grid
+perpendicularly to specified directions. Example of axes and grid
+drawing is:
+subplot 2 2 0
+xtick 0.4 3     # sets tick step to 0.5
+ytick 0.4 3     # and draws 3 subticks
+box             # should be after the ticks change
+axis 'xy': grid
+text 0 1.3 1 'axis and grid'
+
+xtick -5: ytick -5  # restore back
+subplot 2 2 1:rotate 60 40
+origin 0 0 0
+axis
+xlabel 'x' 1
+ylabel 'y' 1
+zlabel 'z' 1
+text 0 0 1.5 'axis and labels'
+
+subplot 2 2 2:rotate 60 40
+xtick 0.2: ytick 0.2: ztick 0.2 # too low step of ticks
+origin -1 -1 -1
+axis:grid
+text 0 0 1.5 'shift origin and add grid'
+text 0 0 1.2 '(note, too many ticks)'
+
+subplot 2 2 3:rotate 60 40
+xtick -6: ytick -6  # decrease the number of ticks
+axis 'yz'
+ylabel 'y axis'
+zlabel 'z axis'
+text 0 0 1.5 'remove x axis, and'
+text 0 0 1.2 'decrease number of ticks'
+
+   This example shows the importance of the correct choosing of the
+number of ticks on axis. If tick step is too small then its text may
+overlap and becomes unreadable. This code has the example of `Label'
+function. It draws label for axis in specified direction. The text
+position on axis is specified by third argument of `Label' function. If
+it is positive then then text is drawn near the axis maximum, if
+negative then the same takes place near the minimum of axis, if zero -
+then at the center of axis.
+
+ [image src="../png/sample2.png" ]
+
+Example of setting up axis range and axis ticks.
+
+
+File: mgl_en.info,  Node: Curvilinear coordinates,  Next: Text printing example,  Prev: Axis and grids,  Up: Advanced usage
+
+2.2.3 Curvilinear coordinates
+-----------------------------
+
+Now let use curvilinear coordinates. In difference from other systems
+of plot creation, MathGL uses textual formulas for connection of the
+old (data) and new (output) coordinates. This allows one to plot in
+arbitrary coordinates. The following code plots the line Y=0, Z=0 in
+Cartesian, polar, parabolic and spiral coordinates:
+new x 50: new y 50: new z 50
+fill y 0.5 0.5: fill x -1 1 # creates data arrays
+origin -1 1 -1
+
+subplot 2 2 0:rotate 60 40
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'cartesian'
+
+subplot 2 2 1:rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'cylindrical'
+
+subplot 2 2 2:rotate 60 40
+axis '2*y*x' 'y*y - x*x' ''
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'parabolic'
+
+subplot 2 2 3:rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'spiral'
+
+ [image src="../png/sample3.png" ]
+
+Example of curvilinear coordinates
+
+
+File: mgl_en.info,  Node: Text printing example,  Prev: Curvilinear coordinates,  Up: Advanced usage
+
+2.2.4 Text printing example
+---------------------------
+
+MathGL prints text by vector font. There are functions for manual
+specifying of text position (like `Puts') and for its automatic
+selection (like `Label', `legend' and so on). MathGL prints text always
+in specified position even if it lies outside the bounding box. The
+default size of font is specified by command FONTSIZE. However, the
+actual size of output string depends on position of axes (depends on
+functions `SubPlot', `InPlot'). The switching of the font style
+(italic, bold, wire and so on) can be done for the whole string (by
+function parameter) or inside the string. By default MathGL parses
+TeX-like commands for symbols and indexes (see *note Font styles::).
+Example of MathGL font drawing is:
+text 0 1 'Text can be in ASCII and in Unicode'
+text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
+text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
+text 0 -0.2 'Easy to \a{overline} or \u{underline}'
+text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
+text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
+
+ [image src="../png/sample4.png" ]
+
+Example of text printing with different font effects
+
+   Another example demonstrate the features of TeX formula parsing.
+text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}', 0, -4
+
+ [image src="../png/samplee.png" ]
+
+Example of TeX formula parsing
+
+
+File: mgl_en.info,  Node: Data handling,  Next: Data plotting,  Prev: Advanced usage,  Up: Examples
+
+2.3 Data handling
+=================
+
+* Menu:
+
+* Array creation::
+* Data changing::
+
+
+File: mgl_en.info,  Node: Array creation,  Next: Data changing,  Up: Data handling
+
+2.3.1 Array creation
+--------------------
+
+One can put numbers into the data instance by several ways. Let us do
+it for sinus function:
+   * one can create array by `list' command list a 0 0.04 0.16 0.36 0.64 1
+
+   * another way is to copy from "inline" array copy a [0,0.04,0.16,0.36,0.64,1]
+
+   * next way is to fill the data by textual formula with the help of
+     `modify' function new a 6
+     modify a 'x^2'
+
+   * or one may fill the array in some interval and modify it later new a 6
+     fill a 0 1
+     modify a 'u^2'
+
+   * or fill the array using current axis range new a 6
+     fill a '(x+1)^2/4'
+
+   * finally it can be loaded from file new s 6: modify s 'x^2'
+     save s 'sqr.dat'    # create file first
+     read a 'sqr.dat'    # load it
+
+   * at this one can read only part of data new s 6: modify s 'x^2'
+     save s 'sqr.dat'    # create file first
+     read a 'sqr.dat' 5  # load it
+
+   Creation of 2d- and 3d-arrays is mostly the same. One can use direct
+data filling by `list' command
+list a 11 12 13 | 21 22 23 | 31 32 33
+ or by inline arrays
+copy a [[11,12,13],[21,22,23],[31,32,33]]
+ Also data can be filled by formula
+new z 30 40
+fill z 'sin(pi*x)*cos(pi*y)'
+ or loaded from file.
+
+   The only non-obvious thing here is using multidimensional arrays in
+C/C++, i.e. arrays defined like `float dat[40][30];'. Since, formaly
+this arrays element `dat[i]' can address the memory in arbitrary place
+you should use the proper function to convert such arrays to `mglData'
+object. For C++ this is functions like `mglData::Set(float **dat, int
+N1, int N2'. For C this is functions like `mgl_data_set_float2(HMDT d,
+const float **dat, int N1, int N2'. At this, you should keep in mind
+that `nx=N2' and `ny=N1' after conversion.
+
+
+File: mgl_en.info,  Node: Data changing,  Prev: Array creation,  Up: Data handling
+
+2.3.2 Data changing
+-------------------
+
+MathGL has functions for data processing: differentiating, integrating,
+smoothing and so on. Let us consider some examples. The simplest ones
+are integration and differentiation. The direction in which operation
+will be performed is specified by textual string, which may contain
+symbols `x', `y' or `z'. For example, the call of `diff a 'x'' will
+differentiate data along `x' direction; the call of `integrate a 'xy''
+perform the double integration of data along `x' and `y' directions;
+the call of `diff2 a 'xyz'' will apply 3d Laplace operator to data and
+so on. Example of this operations on 2d array a=x*y is presented in
+code:
+new a 30 40: modify a 'x*y'
+axis 0 0 0 1 1 1
+subplot 2 2 0:rotate 60 40
+surf a: box
+text 0.7 1 1.2 'a(x,y)'
+subplot 2 2 1:rotate 60 40
+diff a 'x': surf a: box
+text 0.7 1 1.2 'da/dx'
+subplot 2 2 2:rotate 60 40
+integrate a 'xy': surf a: box
+text 0.7 1 1.2 '\int da/dx dxdy'
+subplot 2 2 3:rotate 60 40
+diff2 a 'y': surf a: box
+text 0.7 1 1.2 '\int {d^2}a/dxdy dx'
+
+ [image src="../png/sample6.png" ]
+
+Example of data differentiation and integration
+
+   Data smoothing (function `Smooth') is more interesting and
+important. This function has 2 main arguments: type of smoothing and
+its direction. Now 4 methods are supported: `0' does nothing for
+delta=0 or approaches data to zero with the step delta, `1' linear
+averaging by 3 points, `2' linear averaging by 5 points, `3' quadratic
+averaging by 5 points. Let me demonstrate it for 1d case:
+new y0 30
+modify y0 '0.4*sin(2*pi*x)+0.3*cos(3*pi*x)-0.4*sin(4*pi*x)+0.2*rnd'
+copy y1 y0: smooth y1 1
+copy y2 y0: smooth y2 2
+copy y3 y0: smooth y3 3
+
+plot y0 'k': addlegend 'none' 'k'
+plot y1 'r': addlegend 'line 3' 'r'
+plot y2 'g': addlegend 'line 5' 'g'
+plot y3 'b': addlegend 'quad 5' 'b'
+legend: box
+
+ [image src="../png/sample7.png" ]
+
+Example of data smoothing
+
+   Finally one can create new data arrays on base of the existing one:
+extract slice, row or column of data (`SubData'), summarize along some
+of direction(s) (`Sum'), find distribution of data elements (`Hist').
+Note, that all these functions are not thread-safe because they use
+static internal variable for output array. In particular, the using of
+several of them in arguments of the same function will lead to
+unpredictable result.
+
+
+File: mgl_en.info,  Node: Data plotting,  Next: Hints,  Prev: Data handling,  Up: Examples
+
+2.4 Data plotting
+=================
+
+Let me now show how to plot the data. MathGL generally has 2 types of
+plotting functions. Simple variant requires a single data array for
+plotting, other data (coordinates) are considered uniformly distributed
+in interval MIN*MAX. Second variant requires data arrays for all
+coordinates. It allows one to plot rather complex multivalent curves
+and surfaces (in case of parametric dependencies). Argument setting to
+default values allows one to plot data in standard form. Manual
+arguments setting gives possibility for fine tuning of colors,
+positions and view of graphics. Note, that the call of drawing function
+adds something to picture but does not clear the previous plots (as it
+does in Matlab). Another difference from Matlab is that all setup (like
+transparency, lightning, axis borders and so on) must be specified
+*before* plotting functions.
+
+* Menu:
+
+* Plots for 1D data::
+* Plots for 2D data::
+* Plots for 3D data::
+* Surface transparency::
+
+
+File: mgl_en.info,  Node: Plots for 1D data,  Next: Plots for 2D data,  Up: Data plotting
+
+2.4.1 Plots for 1D data
+-----------------------
+
+Term "1D data" means that data depend on single index (parameter) like
+curve in parametric form {x(i),y(i),z(i)}, i=1...n. There are 5
+generally different types of data representations: simple line plot,
+line plot with filling under it, stairs plot, bar plot and vertical
+lines (*note 1D plotting::). Each type of plotting has similar
+interface. There are 3D version and two 2D versions. One of last
+requires single array. The parameters of line and marks (*note Line
+styles::) are specified by the string argument. If the string parameter
+is `NULL' then solid line with color from palette is used.
+
+   Below I shall show the features of 1D plotting on base of `plot'
+function (*note 1D plotting::). Let us start from sinus plot:
+new y0 50: modify y0 'sin(pi*(2*x-1))'
+subplot 2 2 0
+plot y0: box
+ Style of line is not specified in `plot' function. So MathGL uses the
+solid line with first color of palette (this is blue). Next subplot
+shows array Y1 with 2 rows:
+subplot 2 2 1
+new y1 50 2
+modify y1 'sin(pi*2*x-pi)'
+modify y1 'cos(pi*2*x-pi)/2' 1
+plot y1: box
+ As previously I did not specify the style of lines. As a result,
+MathGL again uses solid line with next colors in palette (there are
+green and red). Now let us plot a circle on the same subplot. The
+circle is parametric curve x=cos(\pi t), y=sin(\pi t). I will set the
+color of the circle (dark yellow, `Y') and put marks `+' at point
+position:
+new x 50: modify x 'cos(pi*2*x-pi)'
+plot x y0 'Y+'
+ Note that solid line is used because I did not specify the type of
+line. The same picture can be achieved by `Plot2' function. Let us draw
+ellipse by orange dash line:
+plot y1(:,0) y(:,1) 'q|'
+
+   Drawing in 3D space is mostly the same. Let us draw spiral with
+default line style. Now its color is 4-th color from palette (this is
+cyan):
+subplot 2 2 2:rotate 60 40
+new z 50: modify z '2*x-1'
+plot x y0 z:box
+ Function `Plot3' does 3D curve plot but for single array. Use it to
+put circle marks on the previous plot:
+new y2 10 3:modify y2 'cos(pi*(2*x-1+y))'
+modify y2 '2*x-1' 2
+plot y2(:,0) y2(:,1) y2(:,2) 'bo '
+ Note that line style is empty ` ' here. Usage of other 1D plotting
+functions looks similar:
+subplot 2 2 3:rotate 60 40
+bars x y0 z 'r':box
+
+ [image src="../png/sample8.png" ]
+
+Example of 1D data plot
+
+
+File: mgl_en.info,  Node: Plots for 2D data,  Next: Plots for 3D data,  Prev: Plots for 1D data,  Up: Data plotting
+
+2.4.2 Plots for 2D data
+-----------------------
+
+Surfaces `Surf' and other 2D plots (*note 2D plotting::) are drown the
+same simpler as 1D one. The difference is that the string parameter
+specifies not by line style but by the color scheme of the plot (*note
+Color scheme::). Here I draw attention on 4 most interesting color
+schemes. There is gray scheme where color is changed from black to
+white (string `kw') or from white to black (string `wk'). Another
+scheme is useful for accentuation of negative (by blue color) and
+positive (by red color) regions on plot (string `'BbwrR''). Last one is
+the popular "jet" scheme (string `'BbcyrR'').
+
+   Now I shall show the example of a surface drawing. At first let us
+switch lightning on
+light on: light 0 0 0 1
+ and draw the surface, considering coordinates x,y to be uniformly
+distributed in interval MIN*MAX
+new a0 50 40
+modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+subplot 2 2 0:rotate 60 40
+surf a0: box
+ Color scheme was not specified. So previous color scheme is used. In
+this case it is default color scheme ("jet") for the first plot. Next
+example is a sphere. The sphere is parametrically specified surface:
+new x 50 40: new y 50 40: new z 50 40
+modify x '0.8*sin(2*pi*x)*sin(pi*y)'
+modify y '0.8*cos(2*pi*x)*sin(pi*y)'
+modify z '0.8*cos(pi*y)'
+subplot 2 2 1:rotate 60 40
+surf x y z 'bbwrr': box
+ I set color scheme to `'BbwrR'' that corresponds to red top and blue
+bottom of the sphere.
+
+   Surfaces will be plotted for each of slice of the data if NZ>1. Next
+example draws surfaces for data arrays with NZ=3:
+new a1 50 40 3
+modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
+subplot 2 2 2:rotate 60 40
+alpha on
+surf a1: box
+ Note, that it may entail a confusion. However, if one will use density
+plot then the picture will look better:
+subplot 2 2 3: rotate 60 40
+dens a1: box
+ Note, that the previous color scheme is used in last plots because
+there are no direct specification of the one.
+
+ [image src="../png/sample9.png" ]
+
+Example of surface plot for 2D data
+
+   Drawing of other 2D plots is analogous. The only peculiarity is the
+usage of flag `#'. By default this flag switches on the drawing of a
+grid on plot (`grid' or `mesh' for plots in plain or in volume).
+However, for isosurfaces (including surfaces of rotation `axial') this
+flag switches the  face drawing off. Figure becomes wired. The
+following code gives example of flag `#' using (compare with normal
+function drawing as in its description):
+alpha on: light on: light 0 0 0 1
+new a 30 20
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+subplot 2 2 0: rotate 40 60
+surf a 'bbcyrr#': box
+subplot 2 2 1: rotate 40 60
+dens a 'bbcyrr#': box
+subplot 2 2 2: rotate 40 60
+cont a 'bbcyrr#': box
+subplot 2 2 3: rotate 40 60
+axial a 'bbcyrr#': box
+
+ [image src="../png/samplea.png" ]
+
+Example of 2D data plot with color scheme contained `#' symbol
+
+
+File: mgl_en.info,  Node: Plots for 3D data,  Next: Surface transparency,  Prev: Plots for 2D data,  Up: Data plotting
+
+2.4.3 Plots for 3D data
+-----------------------
+
+Drawing procedures for 3D plot looks similarly to 1D and 2D plots
+described above. There are 3 general types of 3D plots (*note 3D
+plotting::): (i) plots on slices or on projections, (ii) isosurfaces,
+(iii) cloud-like plots. Plots on slice are clear enough - one specifies
+a slice (as its index or as coordinate value) and MathGL draws contour
+lines or density plot on slice plane. Isosurface gives more
+information. Isosurface is 3D analogue of the contour line `cont'. It
+shows the region where data array values exceed specified isosurface
+level. Plot becomes more informative if one adds transparency,
+lightning or sets color scheme depending on coordinates. Generalization
+of isosurface is the cloud-like plot. For this plot the darker color
+and less transparent regions correspond to higher values of data.
+Contrary, the regions with low values are transparent. For plotting of
+the phase of fields (or beams or pulses) one can use isosurface which
+transparency depends on the other data array (see function `surf3a').
+As example of 3D data plots let us draw the Gaussian beam diffraction
+in space. Beam propagates along X axis:
+alpha on: light on
+light 0 0 0 1
+new a 30 30 30: new b 30 30 30
+modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
+modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
+caxis 0 1
+
+subplot 2 2 0: rotate 40 60
+surf3 a 'wgk': box
+subplot 2 2 1: rotate 40 60
+densa a: box: axis
+subplot 2 2 2: rotate 40 60
+cloud a: box
+subplot 2 2 3: rotate 40 60
+surf3a b a 'q': box
+
+ [image src="../png/sampleb.png" ]
+
+Example of Gaussian beam diffraction (3D data)
+
+
+File: mgl_en.info,  Node: Surface transparency,  Prev: Plots for 3D data,  Up: Data plotting
+
+2.4.4 Surface transparency
+--------------------------
+
+MathGL library has advanced features for setting and handling the
+surface transparency. The simplest way to add transparency is the using
+of function `Alpha'. As a result, all further surfaces (and
+isosurfaces, density plots and so on) become transparent. However,
+their  look can be additionally improved.
+
+   First, the selected surface will be non-transparent if one sets the
+flag `transparent' before the surface drawing and sets it off after the
+drawing.
+
+   Second, the value of transparency can be different from surface to
+surface. To do it just change the value of `alphadef' before the
+drawing of the selected surface. If its value is close to 0 then the
+surface becomes more and more transparent. Contrary, if its value is
+close to 1 then the surface becomes practically non-transparent. This
+is some analogue of `transparent on'.
+
+   Third feature is the changing of the way how the light goes through
+overlapped surfaces. The variable `transptype' defines it. By default
+the usual transparency is used (`transptype 0') - surfaces below is
+less visible than the upper ones. A "glass-like" transparency
+(`transptype 1') has a different look when the surface just decreases
+the background light (the surfaces are commutable in this case).
+
+   A "neon-like" transparency (`transptype 2') has more interesting
+look. In this case a surface is the light source (like a lamp on the
+dark background) and just adds some intensity to the color. At this,
+the library sets automatically the black color for the background and
+changes the default line color to white.
+
+   As example I shall show the variant of plot from *note Plots for 2D
+data:: (grid drawing is disabled) for different types of transparency.
+ [image src="../png/type0.png" ]
+
+Example of `TranspType=0'.
+
+ [image src="../png/type1.png" ]
+
+Example of `TranspType=1'.
+
+ [image src="../png/type2.png" ]
+
+Example of `TranspType=2'.
+
+
+File: mgl_en.info,  Node: Hints,  Prev: Data plotting,  Up: Examples
+
+2.5 Hints
+=========
+
+In this section I have included some small hints and advices for the
+improving of the quality of plots and for the demonstration of some
+non-trivial features of MathGL library. In contrast to previous
+examples I showed mostly the idea but not the whole drawing function.
+More examples with the source code can be find at
+`http://mathgl.sf.net/' or in section *note Samples::.
+
+* Menu:
+
+* ``Compound'' graphics::
+* Two axes in one plot::
+* Titles for the plot::
+* Changing of the color range::
+* Management of a point cutting::
+* Vector field visualization::
+* Several light sources::
+* CutMin and CutMax features::
+* Mapping visualization::
+* Log-scaled plot::
+* Nonlinear fitting hints::
+* PDE solving hints::
+* Stereo image::
+
+
+File: mgl_en.info,  Node: ``Compound'' graphics,  Next: Two axes in one plot,  Up: Hints
+
+2.5.1 "Compound" graphics
+-------------------------
+
+As I noted above, MathGL functions (except the special one, like `clf')
+do  not erase the previous plotting but just add the new one. It allows
+one to draw "compound" plots easily. For example, popular Matlab
+command `surfc' can be emulated in MathGL by 2 calls:
+surf a
+cont a 0 7 -1   # draw contours at z = -1
+ Here A is 2-dimensional data for the plotting, `-1' is the value of
+z-coordinate at which the contour should be plotted (at the bottom in
+this example). Analogously, one can draw density plot instead of
+contour lines and so on.
+
+   Another nice plot is contour lines plotted directly on the surface:
+light on        # switch on light for the surface
+surf a 'bbcyrr' # select 'jet' colormap for the surface
+cont a 'y'      # and yellow color for contours
+ The possible difficulties arise in black&white case, when the color of
+the surface can be close to the color of a contour line. In that case I
+may suggest the following code:
+light on        # switch on light for the surface
+surf a 'kw'     # select 'gray' colormap for the surface
+caxis -1 0      # first draw for darker surface colors
+conta 'w'       # white contours
+caxis 0 1       # now draw for brighter surface colors
+cont a 'k'      # black contours
+ The idea is to divide the color range on 2 parts (dark and bright) and
+to select the contrasting color for contour lines for each of part.
+
+   Similarly, one can plot flow thread over density plot of vector
+field amplitude (this is another amusing plot from Matlab) and so on.
+The list of compound graphics can be prolonged but I hope that the
+general idea is clear.
+
+
+File: mgl_en.info,  Node: Two axes in one plot,  Next: Titles for the plot,  Prev: ``Compound'' graphics,  Up: Hints
+
+2.5.2 Two axes in one plot
+--------------------------
+
+Developing the previous hint one can make a plot with 2 or more axes.
+The idea is that the change of settings does not influence on the
+already drawn graphics. So, for 2-axes plot let us set the first axis
+and draw everything concerning it. Then let us setup the second axis
+and draw things for the second axis. The corresponding code is (*note
+2-axes sample::):
+# set up first axis
+axis -1 -1 1 1: origin -1 -1
+axis:fplot 'sin(pi*x)'      # draw something in first axis
+# set up second axis
+axis 0 0 1 1: origin 1 1
+axis: fplot 'cos(4*pi*x^2)' # draw something in second axis
+ Note, that the first and the second axes look better if being placed
+in different corners. In the code presented above the first axis is
+placed in the left-bottom corner, and the second one is placed in the
+right-top corner.
+
+
+File: mgl_en.info,  Node: Titles for the plot,  Next: Changing of the color range,  Prev: Two axes in one plot,  Up: Hints
+
+2.5.3 Titles for the plot
+-------------------------
+
+The printing of nice titles for the plot is not so trivial task in
+general case. The problem is that the rotation and aspect change lead
+to different looks for titles of different subplots. So, the resulting
+look is not so good as it could be. The solution is simple - to print
+titles exactly after `subplot' call and before any rotation, aspect
+change and so on! Analogously, the title for the whole picture looks
+better if it is printed first (before any `subplot' calls).
+Alternatively you can use function `title' for plotting title for the
+picture at any time.
+
+
+File: mgl_en.info,  Node: Changing of the color range,  Next: Management of a point cutting,  Prev: Titles for the plot,  Up: Hints
+
+2.5.4 Changing of the color range
+---------------------------------
+
+By default (for the user comfort), the color range is set equal to
+z-range of the plot. However, there are different ranges. So, one can
+obtain amusing plot by the change of color range manually. For example,
+there are plots with one-color bottom (or top) or practically bi-color
+picture and so on.
+
+   For example, compare 2 surfaces:
+subplot 2 1 0
+surf a          # usual coloring range
+subplot 2 1 1
+caxis 0 1
+surf a          # bottom of the surface have one-colour filling
+
+
+File: mgl_en.info,  Node: Management of a point cutting,  Next: Vector field visualization,  Prev: Changing of the color range,  Up: Hints
+
+2.5.5 Management of a point cutting
+-----------------------------------
+
+Sometimes an experimental or numerical surface has outstanding points.
+Visualization of such surface will lead to the hole(s) in place of such
+points. The standard method of "fighting" - to change data values - is
+not always good and is not so convenient. MathGL library has another
+method - to set variable `cut off'. As a consequence, all outstanding
+points will be projected on the bounding box.
+
+   Such method is good not only for outstanding points but also for the
+case when one need to plane the bottom or the top of the plot. Exactly
+such case is demonstrated in the code:
+new a 20 30     # create some data
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+# set lower border above the data minimal value
+axis -1 -1 0 1 1 1:rotate 40 60
+cut off         # set off cutting flag
+surf a          # and draw the surface
+ It is an interesting result, is not it?
+
+
+File: mgl_en.info,  Node: Vector field visualization,  Next: Several light sources,  Prev: Management of a point cutting,  Up: Hints
+
+2.5.6 Vector field visualization
+--------------------------------
+
+Vector field visualization (especially in 3d case `vect3' or `vectc')
+may look tangly - there are too many overlapping lines. I may suggest 2
+ways to solve this problem. The first one is to change `meshnum' for
+decreasing the number of hachures. The second way is to use the flow
+thread chart `Flow'. Unfortunately, I don't know any other methods to
+visualize 3d vector field. If you know any, e-mail me and I shall add
+it to MatGL.
+
+
+File: mgl_en.info,  Node: Several light sources,  Next: CutMin and CutMax features,  Prev: Vector field visualization,  Up: Hints
+
+2.5.7 Several light sources
+---------------------------
+
+In contrast to the most of other programs, MathGL supports several (up
+to 10) light sources. Moreover, the color each of them can be
+different: white (this is usual), yellow, red, cyan, green and so on.
+The use of several light sources may be interesting for the
+highlighting of some peculiarities of the plot or just to make an
+amusing picture. Note, each light source can be switched on/off
+individually (*note Several light sample::).
+
+
+File: mgl_en.info,  Node: CutMin and CutMax features,  Next: Mapping visualization,  Prev: Several light sources,  Up: Hints
+
+2.5.8 CutMin and CutMax features
+--------------------------------
+
+MathGL library has a feature for cutting of points in some region
+CUTMIN*CUTMAX. Such an excision can be used to improve the look of the
+graphics. Moreover, this cutting may help to show an internal structure
+of an object (like `isocaps' plot in Matlab). For example, let us use
+the standard 3D data array and show its interior (*note CutMinMax
+sample::).
+
+new c 61 51 40      # create the data
+new v 10: fill v -0.5 1
+modify c '(-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1))'
+cut 0 -1 -1 1 0 1.1
+rotate 40 60:       surf3 c -0.5 'bbcyrr'
+contf3 v c 'x' -1 'bbcyrr': contf3 v c 'y' -1 'bbcyrr'
+contf3 v c 'z' 0 'bbcyrr':  contf3 v c 'z' 39 'bbcyrr'
+
+   One can also exclude points from arbitrary area in space. This area
+defined by textual formula `cut' (*note Cutting::). The algorithm is
+the same as shown for "rectangular cutting".
+
+
+File: mgl_en.info,  Node: Mapping visualization,  Next: Log-scaled plot,  Prev: CutMin and CutMax features,  Up: Hints
+
+2.5.9 Mapping visualization
+---------------------------
+
+Sometime ago I worked with mapping and have a question about its
+visualization. Let me remember you that mapping is some transformation
+rule for one set of number to another one. The 1d mapping is just an
+ordinary function - it takes a number and transforms it to another one.
+The 2d mapping (which I used) is a pair of functions which take 2
+numbers and transform them to another 2 ones. Except general plots
+(like `surfc', `surfa') there is a special plot - Arnold diagram. It
+shows the area which is the result of mapping of some initial area
+(usually square).
+
+   I tried to make such plot in `map'. It shows the set of points or
+set of faces, which final position is the result of mapping. At this,
+the color gives information about their initial position and the height
+describes Jacobian value of the transformation. Unfortunately, it looks
+good only for the simplest mapping but for the real multivalent
+quasi-chaotic mapping it produces a confusion. So, use it if you like
+:).
+
+
+File: mgl_en.info,  Node: Log-scaled plot,  Next: Nonlinear fitting hints,  Prev: Mapping visualization,  Up: Hints
+
+2.5.10 Log-scaled plot
+----------------------
+
+Log-scaled plot can be drawn by 2 steps. First, one should change the
+scale of axis by call `axis 'lg(x)' 'lg(y)'' (in this example, x- and
+y-axis will be log-scaled). Second, one should set logarithmic scale
+for axis ticks by changing variables: `xtick 0: yticks 0'. Finally, one
+should check (or change) the axis ranges and origin so that their
+values to be positive. For example of log-log plot *note Log-log
+sample::.
+
+
+File: mgl_en.info,  Node: Nonlinear fitting hints,  Next: PDE solving hints,  Prev: Log-scaled plot,  Up: Hints
+
+2.5.11 Nonlinear fitting hints
+------------------------------
+
+Nonlinear fitting is rather simple. All that you need is the data to
+fit, the approximation formula and the list of coefficients to fit
+(better with its initial guess values). Let me demonstrate it on the
+following simple example (*note Fitting sample::). First, let us use
+sin function with some random noise:
+new rnd 100: new idl 50 # data to be fitted and ideal data
+modify rnd '0.4*rnd+0.1+sin(4*pi*x)'
+modify idl '0.3+sin(4*pi*x)'
+ and plot it to see that data we will fit
+axis -1 -2 1 2
+plot rnd '. ':plot idl 'b'
+box:text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
+
+   The next step is the fitting itself. For that let me specify an
+initial values INI for coefficients `abc' and do the fitting for
+approximation formula `a+b*sin(c*x)'
+new res     # The data for found formula
+fit res rnd 'a+b*sin(c*x)' 'abc' [1, 1, 3]
+ Now display it
+plot res 'r'
+text -1 -1.3 'fitted:' 'L:r' -1
+putsfit 0 -1.8 'y = ' 'C:r' -1
+
+   NOTE! the fitting results may have strong dependence on initial
+values for coefficients due to algorithm features. The problem is that
+in general case there are several local 'optimums' for coefficients and
+the program returns only first found one! There are no guaranties that
+it will be the best. Try for example to set `ini = [0, 0, 0]' in the
+code above.
+
+
+File: mgl_en.info,  Node: PDE solving hints,  Next: Stereo image,  Prev: Nonlinear fitting hints,  Up: Hints
+
+2.5.12 PDE solving hints
+------------------------
+
+Solving of Partial Differential Equations (PDE, including beam tracing)
+and ray tracing (or finding particle trajectory) are more or less
+common task. So, MathGL have several functions for that. There are
+`ray' for ray tracing, `pde' for PDE solving, `qo2d' for beam tracing
+in 2D case. Note, that these functions take "Hamiltonian" or equations
+as string values. And I don't plan now to allow one to use user-defined
+functions. There are 2 reasons: the complexity of corresponding
+interface; and the basic nature of used methods which are good for
+samples but may not good for serious scientific calculations.
+
+   The ray tracing can be done by `ray' function. Really ray tracing
+equation is Hamiltonian equation for 3D space. So, the function can be
+also used for finding a particle trajectory (i.e. solve Hamiltonian
+ODE) for 1D, 2D or 3D cases. The function have a set of arguments.
+First of all, it is Hamiltonian which defined the media (or the
+equation) you are planning to use. The Hamiltonian is defined by string
+which may depend on coordinates `x', `y', `z', time `t' (for particle
+dynamics) and momentums `p'=p_x, `q'=p_y, `v'=p_z. Next, you have to
+define the initial conditions for coordinates and momentums at `t'=0
+and set the integrations step (default is 0.1) and its duration
+(default is 10). The Runge-Kutta method of 4-th order is used for
+integration.
+new re 128:new im 128
+ray r 'p^2+q^2-x-1' -0.7 -1 0 0 0.5 0
+plot r(0) r(1)
+ This example calculate the reflection from linear layer (media with
+Hamiltonian `p^2+q^2-x-1'=p_x^2+p_y^2-x-1). This is parabolic curve.
+The resulting array have 7 columns which contain data for
+{x,y,z,p,q,v,t}.
+
+   The solution of PDE is a bit more complicated. As previous you have
+to specify the equation as pseudo-differential operator \hat H(x,
+\nabla) which is called sometime as "Hamiltonian" (for example, in beam
+tracing). As previously, it is defined by string which may depend on
+coordinates `x', `y', `z' (but not time!), momentums `p'=(d/dx)/i k_0,
+`q'=(d/dy)/i k_0 and field amplitude `u'=|u|. The evolutionary
+coordinate is `z' in all cases. So that, the equation look like du/dz =
+ik_0 H(x,y,\hat p, \hat q, |u|)[u]. Dependence on field amplitude
+`u'=|u| allows one to solve nonlinear problems too. For example, for
+nonlinear Shrodinger equation you may set `ham='p^2 + q^2 - u^2''. Also
+you may specify imaginary part for wave absorption, like `ham = 'p^2 +
+i*x*(x>0)'', but only if dependence on variable `i' is linear (i.e. H =
+Hre+i*Him).
+
+   Next step is specifing the initial conditions at `z'=`Min.z'. The
+function need 2 arrays for real and for imaginary part. Note, that
+coordinates x,y,z are supposed to be in specified range [Min, Max]. So,
+the data arrays should have corresponding scales. Finally, you may set
+the integration step and paramter k0=k_0. Also keep in mind, that
+internally the 2 times large box is used (for suppressing numerical
+reflection from boundaries) and the equation should well defined even
+in this extended range.
+
+   Final comment is concerning the possible form of pseudo-differential
+operator H. At this moment, simplified form of operator H is supported
+- all "mixed" terms (like `x*p'->x*d/dx) are excluded. For example, in
+2D case this operator is effectively H = f(p,z) + g(x,z,u). However
+commutable combinations (like `x*q'->x*d/dy) are allowed for 3D case.
+
+   So, for example let solve the equation for beam deflected from
+linear layer and absorbed later. The operator will have the form
+`'p^2+q^2-x-1+i*0.5*(z+x)*(z>-x)'' that correspond to equation ik_0
+\partial_z u + \Delta u + x \cdot u + i (x+z)/2 \cdot u = 0. This is
+typical equation for Electron Cyclotron (EC) absorption in magnetized
+plasmas. For initial conditions let me select the beam with plane phase
+front exp(-48*(x+0.7)^2). The corresponding code looks like this (*note
+PDE sample::):
+new re 128: new im 128
+fill re 'exp(-48*(x+0.7)^2)'
+pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z>-x)' re im 0.01, 30
+transpose a 'yxz'
+caxis 0 1
+dens a 'wyrRk'
+
+   The last example is example of beam tracing. Beam tracing equation
+is special kind of PDE equation written in coordinates accompanied to a
+ray. Generally this is the same parameters and limitation as for PDE
+solving but the coordinates are defined by the ray and by parameter of
+grid width W in direction transverse the ray. So, you don't need to
+specify the range of coordinates. *BUT* there is limitation. The
+accompanied coordinates are well defined only for smooth enough rays,
+i.e. then the ray curvature K (which is defined as 1/K^2 = (|\ddot r|^2
+|\dot r|^2 - (\ddot r, \dot r)^2)/|\dot r|^6) is much large then the
+grid width: K>>w. So, you may receive incorrect results if this
+condition will be broken.
+
+   You may use following code for obtaining the same solution as in
+previous example:
+new re 128: new im 128
+define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y>-x)'
+ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
+# now start beam tracing
+fill re 'exp(-48*x^2)'
+new xx: new yy
+qo2d a $1 re im r 1 30 xx yy
+caxis 0 1
+dens xx yy a 'wyrRk'
+
+
+File: mgl_en.info,  Node: Stereo image,  Prev: PDE solving hints,  Up: Hints
+
+2.5.13 Stereo image
+-------------------
+
+One can easily create stereo image in MathGL. Stereo image can be
+produced by making two subplots with slightly different rotation
+angles. The corresponding code looks like this (*note Stereo image
+sample::):
+subplot 2 1 0   # left image
+rotate 40 60+3
+# draw something here
+subplot 2 1 1   # right image
+rotate 40 60-3
+# draw the same here
+
+
+File: mgl_en.info,  Node: Samples,  Next: Copying This Manual,  Prev: Examples,  Up: Top
+
+3 Samples
+*********
+
+This chapter contain a lot of sample codes for all types of plots and
+for most important examples and hints. The same sample (with pictures)
+you can find at `http://mathgl.sf.net/pictures.html'.
+
+* Menu:
+
+* 1D plotting samples::
+* 2D plotting samples::
+* 3D plotting samples::
+* Dual plotting samples::
+* Basic features::
+* Additional features::
+* Advanced features::
+
+
+File: mgl_en.info,  Node: 1D plotting samples,  Next: 2D plotting samples,  Up: Samples
+
+3.1 1D plotting samples
+=======================
+
+* Menu:
+
+* Plot sample::
+* Radar sample::
+* Tens sample::
+* Area sample::
+* Area gradient sample::
+* Bars sample::
+* Bars 2 colors sample::
+* Bars above sample::
+* Bars fall sample::
+* Barh sample::
+* Step sample::
+* Stem sample::
+* Region sample::
+* Region gradient sample::
+* Error sample::
+* BoxPlot sample::
+* Mark sample::
+* TextMark sample::
+* Tube sample::
+* Text sample::
+* Torus sample::
+* Chart sample::
+* Pie chart sample::
+* Ring chart sample::
+
+
+File: mgl_en.info,  Node: Plot sample,  Next: Radar sample,  Up: 1D plotting samples
+
+3.1.1 Plot sample
+-----------------
+
+ [image src="../png/plot.png" ]
+
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y
+
+
+File: mgl_en.info,  Node: Radar sample,  Next: Tens sample,  Prev: Plot sample,  Up: 1D plotting samples
+
+3.1.2 Radar sample
+------------------
+
+ [image src="../png/radar.png" ]
+
+new y 10 3
+modify y '0.4*sin(pi*(2*x+y/2))+0.1*rnd'
+radar y '#'
+
+
+File: mgl_en.info,  Node: Tens sample,  Next: Area sample,  Prev: Radar sample,  Up: 1D plotting samples
+
+3.1.3 Tens sample
+-----------------
+
+ [image src="../png/tens.png" ]
+
+new y 50
+new c 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify c 'sin(2*pi*x)'
+box
+tens y c
+
+
+File: mgl_en.info,  Node: Area sample,  Next: Area gradient sample,  Prev: Tens sample,  Up: 1D plotting samples
+
+3.1.4 Area sample
+-----------------
+
+ [image src="../png/area.png" ]
+
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y
+
+
+File: mgl_en.info,  Node: Area gradient sample,  Next: Bars sample,  Prev: Area sample,  Up: 1D plotting samples
+
+3.1.5 Area with gradient filling sample
+---------------------------------------
+
+ [image src="../png/area_2.png" ]
+
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y 'cbgGyr'
+
+
+File: mgl_en.info,  Node: Bars sample,  Next: Bars 2 colors sample,  Prev: Area gradient sample,  Up: 1D plotting samples
+
+3.1.6 Bars sample
+-----------------
+
+ [image src="../png/bars.png" ]
+
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y
+
+
+File: mgl_en.info,  Node: Bars 2 colors sample,  Next: Bars above sample,  Prev: Bars sample,  Up: 1D plotting samples
+
+3.1.7 Bars 2 colors sample
+--------------------------
+
+ [image src="../png/bars_2.png" ]
+
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'cbgGyr'
+
+
+File: mgl_en.info,  Node: Bars above sample,  Next: Bars fall sample,  Prev: Bars 2 colors sample,  Up: 1D plotting samples
+
+3.1.8 Bars above sample
+-----------------------
+
+ [image src="../png/bars_a.png" ]
+
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'a'
+
+
+File: mgl_en.info,  Node: Bars fall sample,  Next: Barh sample,  Prev: Bars above sample,  Up: 1D plotting samples
+
+3.1.9 Bars fall sample
+----------------------
+
+ [image src="../png/bars_f.png" ]
+
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'f'
+
+
+File: mgl_en.info,  Node: Barh sample,  Next: Step sample,  Prev: Bars fall sample,  Up: 1D plotting samples
+
+3.1.10 Barh sample
+------------------
+
+ [image src="../png/barh.png" ]
+
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+barh y
+
+
+File: mgl_en.info,  Node: Step sample,  Next: Stem sample,  Prev: Barh sample,  Up: 1D plotting samples
+
+3.1.11 Step sample
+------------------
+
+ [image src="../png/step.png" ]
+
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+step y
+
+
+File: mgl_en.info,  Node: Stem sample,  Next: Region sample,  Prev: Step sample,  Up: 1D plotting samples
+
+3.1.12 Stem sample
+------------------
+
+ [image src="../png/stem.png" ]
+
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+stem y 'o'
+
+
+File: mgl_en.info,  Node: Region sample,  Next: Region gradient sample,  Prev: Stem sample,  Up: 1D plotting samples
+
+3.1.13 Region sample
+--------------------
+
+ [image src="../png/region.png" ]
+
+new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'r'
+plot y1 'k2'
+plot y2 'k2'
+
+
+File: mgl_en.info,  Node: Region gradient sample,  Next: Error sample,  Prev: Region sample,  Up: 1D plotting samples
+
+3.1.14 Region gradient sample
+-----------------------------
+
+ [image src="../png/region_2.png" ]
+
+new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'yr'
+plot y1 'k2'
+plot y2 'k2'
+
+
+File: mgl_en.info,  Node: Error sample,  Next: BoxPlot sample,  Prev: Region gradient sample,  Up: 1D plotting samples
+
+3.1.15 Error sample
+-------------------
+
+ [image src="../png/error.png" ]
+
+new y 50
+new x0 10
+new y0 10
+new ex 10
+new ey 10
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify x0 '2*x-1 + 0.1*rnd-0.05'
+modify y0 '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1'
+modify ey '0.2'
+modify ex '0.1'
+box
+plot y
+error x0 y0 ex ey 'ko'
+
+
+File: mgl_en.info,  Node: BoxPlot sample,  Next: Mark sample,  Prev: Error sample,  Up: 1D plotting samples
+
+3.1.16 BoxPlot sample
+---------------------
+
+ [image src="../png/boxplot.png" ]
+
+new a 10 7
+modify a '(2*rnd-1)^3/2'
+boxplot a
+box:plot a ' ko'
+
+
+File: mgl_en.info,  Node: Mark sample,  Next: TextMark sample,  Prev: BoxPlot sample,  Up: 1D plotting samples
+
+3.1.17 Mark sample
+------------------
+
+ [image src="../png/mark.png" ]
+
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+mark y y1 'bs'
+
+
+File: mgl_en.info,  Node: TextMark sample,  Next: Tube sample,  Prev: Mark sample,  Up: 1D plotting samples
+
+3.1.18 TextMark sample
+----------------------
+
+ [image src="../png/textmark.png" ]
+
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+textmark y y1 '\gamma'
+
+
+File: mgl_en.info,  Node: Tube sample,  Next: Text sample,  Prev: TextMark sample,  Up: 1D plotting samples
+
+3.1.19 Tube sample
+------------------
+
+ [image src="../png/tube.png" ]
+
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+rotate 40 60
+light on
+box
+tube y 0.05
+
+
+File: mgl_en.info,  Node: Text sample,  Next: Torus sample,  Prev: Tube sample,  Up: 1D plotting samples
+
+3.1.20 Text sample
+------------------
+
+ [image src="../png/text.png" ]
+
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y(:,0)
+text y 'This is very long string drawn along a curve' ':k'
+text y 'Another string drawn above a curve' 'T:r'
+
+
+File: mgl_en.info,  Node: Torus sample,  Next: Chart sample,  Prev: Text sample,  Up: 1D plotting samples
+
+3.1.21 Torus sample
+-------------------
+
+ [image src="../png/torus.png" ]
+
+new y1 50
+new y2 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+rotate 40 60
+light on
+box
+torus y1 y2 'pz'
+
+
+File: mgl_en.info,  Node: Chart sample,  Next: Pie chart sample,  Prev: Torus sample,  Up: 1D plotting samples
+
+3.1.22 Chart sample
+-------------------
+
+ [image src="../png/chart.png" ]
+
+new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+box
+chart ch
+
+
+File: mgl_en.info,  Node: Pie chart sample,  Next: Ring chart sample,  Prev: Chart sample,  Up: 1D plotting samples
+
+3.1.23 Pie chart sample
+-----------------------
+
+ [image src="../png/pie_chart.png" ]
+
+new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+1)/2*cos(pi*x)' '(y+1)/2*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+
+
+File: mgl_en.info,  Node: Ring chart sample,  Prev: Pie chart sample,  Up: 1D plotting samples
+
+3.1.24 Ring chart sample
+------------------------
+
+ [image src="../png/ring_chart.png" ]
+
+new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+2)/3*cos(pi*x)' '(y+2)/3*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+
+
+File: mgl_en.info,  Node: 2D plotting samples,  Next: 3D plotting samples,  Prev: 1D plotting samples,  Up: Samples
+
+3.2 2D plotting samples
+=======================
+
+* Menu:
+
+* Surf sample::
+* Transparent surface sample::
+* Surface in fog sample::
+* Sharp colors sample::
+* Mesh sample::
+* Fall sample::
+* Belt sample::
+* Tile sample::
+* Boxs sample::
+* Dens sample::
+* Cont sample::
+* ContF sample::
+* ContD sample::
+* Axial sample::
+* Grad sample::
+
+
+File: mgl_en.info,  Node: Surf sample,  Next: Transparent surface sample,  Up: 2D plotting samples
+
+3.2.1 Surf sample
+-----------------
+
+ [image src="../png/surf.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+
+
+File: mgl_en.info,  Node: Transparent surface sample,  Next: Surface in fog sample,  Prev: Surf sample,  Up: 2D plotting samples
+
+3.2.2 Transparent surface sample
+--------------------------------
+
+ [image src="../png/surf_alpha.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surf a
+
+
+File: mgl_en.info,  Node: Surface in fog sample,  Next: Sharp colors sample,  Prev: Transparent surface sample,  Up: 2D plotting samples
+
+3.2.3 Surface in fog sample
+---------------------------
+
+ [image src="../png/surf_fog.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+fog 1
+box
+surf a
+
+
+File: mgl_en.info,  Node: Sharp colors sample,  Next: Mesh sample,  Prev: Surface in fog sample,  Up: 2D plotting samples
+
+3.2.4 Sharp colors sample
+-------------------------
+
+ [image src="../png/surf_sl.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a 'BbcyrR|'
+
+
+File: mgl_en.info,  Node: Mesh sample,  Next: Fall sample,  Prev: Sharp colors sample,  Up: 2D plotting samples
+
+3.2.5 Mesh sample
+-----------------
+
+ [image src="../png/mesh.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+mesh a
+
+
+File: mgl_en.info,  Node: Fall sample,  Next: Belt sample,  Prev: Mesh sample,  Up: 2D plotting samples
+
+3.2.6 Fall sample
+-----------------
+
+ [image src="../png/fall.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+fall a
+
+
+File: mgl_en.info,  Node: Belt sample,  Next: Tile sample,  Prev: Fall sample,  Up: 2D plotting samples
+
+3.2.7 Belt sample
+-----------------
+
+ [image src="../png/belt.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+belt a
+
+
+File: mgl_en.info,  Node: Tile sample,  Next: Boxs sample,  Prev: Belt sample,  Up: 2D plotting samples
+
+3.2.8 Tile sample
+-----------------
+
+ [image src="../png/tile.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+tile a
+
+
+File: mgl_en.info,  Node: Boxs sample,  Next: Dens sample,  Prev: Tile sample,  Up: 2D plotting samples
+
+3.2.9 Boxs sample
+-----------------
+
+ [image src="../png/boxs.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+origin 0 0 0
+box
+boxs a
+
+
+File: mgl_en.info,  Node: Dens sample,  Next: Cont sample,  Prev: Boxs sample,  Up: 2D plotting samples
+
+3.2.10 Dens sample
+------------------
+
+ [image src="../png/dens.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+dens a
+colorbar
+
+
+File: mgl_en.info,  Node: Cont sample,  Next: ContF sample,  Prev: Dens sample,  Up: 2D plotting samples
+
+3.2.11 Cont sample
+------------------
+
+ [image src="../png/cont.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+cont a
+
+
+File: mgl_en.info,  Node: ContF sample,  Next: ContD sample,  Prev: Cont sample,  Up: 2D plotting samples
+
+3.2.12 ContF sample
+-------------------
+
+ [image src="../png/contf.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+contf a
+
+
+File: mgl_en.info,  Node: ContD sample,  Next: Axial sample,  Prev: ContF sample,  Up: 2D plotting samples
+
+3.2.13 ContD sample
+-------------------
+
+ [image src="../png/contd.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+var v 9 -1 1
+box
+contd v a
+colorbar v
+
+
+File: mgl_en.info,  Node: Axial sample,  Next: Grad sample,  Prev: ContD sample,  Up: 2D plotting samples
+
+3.2.14 Axial sample
+-------------------
+
+ [image src="../png/axial.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+axial a
+
+
+File: mgl_en.info,  Node: Grad sample,  Prev: Axial sample,  Up: 2D plotting samples
+
+3.2.15 Grad sample
+------------------
+
+ [image src="../png/grad.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box:alpha on:dens a
+grad a
+
+
+File: mgl_en.info,  Node: 3D plotting samples,  Next: Dual plotting samples,  Prev: 2D plotting samples,  Up: Samples
+
+3.3 3D plotting samples
+=======================
+
+* Menu:
+
+* Surf3 sample::
+* Cloud sample::
+* CloudP sample::
+* Dens3 sample::
+* Cont3 sample::
+* ContF3 sample::
+* Cont projection sample::
+* Dens projection sample::
+* CutMinMax sample::
+* Isocaps sample::
+* CutOff sample::
+
+
+File: mgl_en.info,  Node: Surf3 sample,  Next: Cloud sample,  Up: 3D plotting samples
+
+3.3.1 Surf3 sample
+------------------
+
+ [image src="../png/surf3.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+box
+surf3 a
+
+
+File: mgl_en.info,  Node: Cloud sample,  Next: CloudP sample,  Prev: Surf3 sample,  Up: 3D plotting samples
+
+3.3.2 Cloud sample
+------------------
+
+ [image src="../png/cloud.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+box
+cloud a 'wyrRk'
+
+
+File: mgl_en.info,  Node: CloudP sample,  Next: Dens3 sample,  Prev: Cloud sample,  Up: 3D plotting samples
+
+3.3.3 CloudP sample
+-------------------
+
+ [image src="../png/cloudp.png" ]
+
+Not available.
+
+
+File: mgl_en.info,  Node: Dens3 sample,  Next: Cont3 sample,  Prev: CloudP sample,  Up: 3D plotting samples
+
+3.3.4 Dens3 sample
+------------------
+
+ [image src="../png/densa.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+origin 0 0 0
+box
+densa a
+axis
+
+
+File: mgl_en.info,  Node: Cont3 sample,  Next: ContF3 sample,  Prev: Dens3 sample,  Up: 3D plotting samples
+
+3.3.5 Cont3 sample
+------------------
+
+ [image src="../png/conta.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+conta a
+
+
+File: mgl_en.info,  Node: ContF3 sample,  Next: Cont projection sample,  Prev: Cont3 sample,  Up: 3D plotting samples
+
+3.3.6 ContF3 sample
+-------------------
+
+ [image src="../png/contfa.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+box
+contfa a
+
+
+File: mgl_en.info,  Node: Cont projection sample,  Next: Dens projection sample,  Prev: ContF3 sample,  Up: 3D plotting samples
+
+3.3.7 Cont projection sample
+----------------------------
+
+ [image src="../png/cont_xyz.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+contx s '' -1
+sum s a 'y'
+conty s '' 1
+sum s a 'z'
+contz s '' -1
+
+
+File: mgl_en.info,  Node: Dens projection sample,  Next: CutMinMax sample,  Prev: Cont projection sample,  Up: 3D plotting samples
+
+3.3.8 Dens projection sample
+----------------------------
+
+ [image src="../png/dens_xyz.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+densx s '' -1
+sum s a 'y'
+densy s '' 1
+sum s a 'z'
+densz s '' -1
+
+
+File: mgl_en.info,  Node: CutMinMax sample,  Next: Isocaps sample,  Prev: Dens projection sample,  Up: 3D plotting samples
+
+3.3.9 CutMinMax sample
+----------------------
+
+ [image src="../png/cutminmax.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut 0 -1 -1 1 0 1
+box
+surf3 a
+
+
+File: mgl_en.info,  Node: Isocaps sample,  Next: CutOff sample,  Prev: CutMinMax sample,  Up: 3D plotting samples
+
+3.3.10 "Isocaps" sample
+-----------------------
+
+ [image src="../png/cutminmax2.png" ]
+
+new a 61 51 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+cut 0 -1 -1 1 0 1.1
+box
+surf3 a -1
+contf3 a 'x' -1
+contf3 a 'y' -1
+contf3 a 'z' 0
+contf3 a 'z' 39
+
+
+File: mgl_en.info,  Node: CutOff sample,  Prev: Isocaps sample,  Up: 3D plotting samples
+
+3.3.11 CutOff sample
+--------------------
+
+ [image src="../png/surf3_cutoff.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut '(z>(x+0.5*y-1)^2-1) & (z>(x-0.5*y-1)^2-1)'
+box
+surf3 a
+
+
+File: mgl_en.info,  Node: Dual plotting samples,  Next: Basic features,  Prev: 3D plotting samples,  Up: Samples
+
+3.4 Dual plotting samples
+=========================
+
+* Menu:
+
+* SurfC sample::
+* SurfA sample::
+* TileS sample::
+* Map sample::
+* Traj sample::
+* Vect sample::
+* VectL sample::
+* VectC sample::
+* Flow sample::
+* Pipe sample::
+* Dew sample::
+* Surf3C sample::
+* Surf3A sample::
+* Vect 3D sample::
+* VectL 3D sample::
+* VectC 3D sample::
+* Flow 3D sample::
+* Pipe 3D sample::
+* Crust sample::
+* Dots sample::
+
+
+File: mgl_en.info,  Node: SurfC sample,  Next: SurfA sample,  Up: Dual plotting samples
+
+3.4.1 SurfC sample
+------------------
+
+ [image src="../png/surfc.png" ]
+
+new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surfc a b
+
+
+File: mgl_en.info,  Node: SurfA sample,  Next: TileS sample,  Prev: SurfC sample,  Up: Dual plotting samples
+
+3.4.2 SurfA sample
+------------------
+
+ [image src="../png/surfa.png" ]
+
+new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surfa a b
+
+
+File: mgl_en.info,  Node: TileS sample,  Next: Map sample,  Prev: SurfA sample,  Up: Dual plotting samples
+
+3.4.3 TileS sample
+------------------
+
+ [image src="../png/tiles.png" ]
+
+new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+tile a b
+
+
+File: mgl_en.info,  Node: Map sample,  Next: Traj sample,  Prev: TileS sample,  Up: Dual plotting samples
+
+3.4.4 Map sample
+----------------
+
+ [image src="../png/map.png" ]
+
+new a 50 40
+new b 50 40
+text 0 0 '\to'
+zrange -2 2
+subplot 2 1 0
+text 0 1.1 '\{x, y\}' '' -2
+box
+fill a 'x'
+fill b 'y'
+map a b 'brgk' 0 0
+subplot 2 1 1
+text 0 1.1 '\{\frac{x^3+y^3}{2}, \frac{x-y}{2}\}' '' -2
+box
+fill a '(x^3+y^3)/2'
+fill b '(x-y)/2'
+map a b 'brgk' 0 0
+
+
+File: mgl_en.info,  Node: Traj sample,  Next: Vect sample,  Prev: Map sample,  Up: Dual plotting samples
+
+3.4.5 Traj sample
+-----------------
+
+ [image src="../png/traj.png" ]
+
+new y 50 3
+new x 50
+new y1 50
+new y2 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+fill x -1 1
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+box
+plot x y
+traj x y y1 y2
+
+
+File: mgl_en.info,  Node: Vect sample,  Next: VectL sample,  Prev: Traj sample,  Up: Dual plotting samples
+
+3.4.6 Vect sample
+-----------------
+
+ [image src="../png/vect.png" ]
+
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vect a b
+
+
+File: mgl_en.info,  Node: VectL sample,  Next: VectC sample,  Prev: Vect sample,  Up: Dual plotting samples
+
+3.4.7 VectL sample
+------------------
+
+ [image src="../png/vectl.png" ]
+
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectl a b
+
+
+File: mgl_en.info,  Node: VectC sample,  Next: Flow sample,  Prev: VectL sample,  Up: Dual plotting samples
+
+3.4.8 VectC sample
+------------------
+
+ [image src="../png/vectc.png" ]
+
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectc a b
+
+
+File: mgl_en.info,  Node: Flow sample,  Next: Pipe sample,  Prev: VectC sample,  Up: Dual plotting samples
+
+3.4.9 Flow sample
+-----------------
+
+ [image src="../png/flow.png" ]
+
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+flow a b
+
+
+File: mgl_en.info,  Node: Pipe sample,  Next: Dew sample,  Prev: Flow sample,  Up: Dual plotting samples
+
+3.4.10 Pipe sample
+------------------
+
+ [image src="../png/pipe.png" ]
+
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+box
+pipe a b
+
+
+File: mgl_en.info,  Node: Dew sample,  Next: Surf3C sample,  Prev: Pipe sample,  Up: Dual plotting samples
+
+3.4.11 Dew sample
+-----------------
+
+ [image src="../png/dew.png" ]
+
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+light on
+dew a b
+
+
+File: mgl_en.info,  Node: Surf3C sample,  Next: Surf3A sample,  Prev: Dew sample,  Up: Dual plotting samples
+
+3.4.12 Surf3C sample
+--------------------
+
+ [image src="../png/surf3c.png" ]
+
+new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3c a b
+
+
+File: mgl_en.info,  Node: Surf3A sample,  Next: Vect 3D sample,  Prev: Surf3C sample,  Up: Dual plotting samples
+
+3.4.13 Surf3A sample
+--------------------
+
+ [image src="../png/surf3a.png" ]
+
+new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3a a b
+
+
+File: mgl_en.info,  Node: Vect 3D sample,  Next: VectL 3D sample,  Prev: Surf3A sample,  Up: Dual plotting samples
+
+3.4.14 Vect 3D sample
+---------------------
+
+ [image src="../png/vect3.png" ]
+
+new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vect ex ey ez 'bwr'
+
+
+File: mgl_en.info,  Node: VectL 3D sample,  Next: VectC 3D sample,  Prev: Vect 3D sample,  Up: Dual plotting samples
+
+3.4.15 VectL 3D sample
+----------------------
+
+ [image src="../png/vectl3.png" ]
+
+new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectl ex ey ez 'bwr'
+
+
+File: mgl_en.info,  Node: VectC 3D sample,  Next: Flow 3D sample,  Prev: VectL 3D sample,  Up: Dual plotting samples
+
+3.4.16 VectC 3D sample
+----------------------
+
+ [image src="../png/vectc3.png" ]
+
+new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectc ex ey ez 'bwr'
+
+
+File: mgl_en.info,  Node: Flow 3D sample,  Next: Pipe 3D sample,  Prev: VectC 3D sample,  Up: Dual plotting samples
+
+3.4.17 Flow 3D sample
+---------------------
+
+ [image src="../png/flow3.png" ]
+
+new ex 30 30 30
+new ey 30 30 30
+new ez 30 30 30
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+flow ex ey ez 'bwr'
+
+
+File: mgl_en.info,  Node: Pipe 3D sample,  Next: Crust sample,  Prev: Flow 3D sample,  Up: Dual plotting samples
+
+3.4.18 Pipe 3D sample
+---------------------
+
+ [image src="../png/pipe3.png" ]
+
+new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+light on
+box
+pipe ex ey ez 'bwr'
+
+
+File: mgl_en.info,  Node: Crust sample,  Next: Dots sample,  Prev: Pipe 3D sample,  Up: Dual plotting samples
+
+3.4.19 Crust sample
+-------------------
+
+ [image src="../png/crust.png" ]
+
+read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+light on
+box
+crust a 'p'
+
+
+File: mgl_en.info,  Node: Dots sample,  Prev: Crust sample,  Up: Dual plotting samples
+
+3.4.20 Dots sample
+------------------
+
+ [image src="../png/dots.png" ]
+
+read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+box
+dots a 'p'
+
+
+File: mgl_en.info,  Node: Basic features,  Next: Additional features,  Prev: Dual plotting samples,  Up: Samples
+
+3.5 Basic features
+==================
+
+* Menu:
+
+* 1D plot sample::
+* 2D plot sample::
+* 3D plot sample::
+* Line styles sample::
+* Arrow styles sample::
+* Text styles sample::
+* TeX parsing sample::
+* Font faces sample::
+* Colors sample::
+* Color schemes sample::
+* Normal transparency::
+* Glass-like transparency::
+* Lamp-like transparency::
+
+
+File: mgl_en.info,  Node: 1D plot sample,  Next: 2D plot sample,  Up: Basic features
+
+3.5.1 1D plot sample
+--------------------
+
+ [image src="../png/sample8.png" ]
+
+new y0 50: modify y0 'sin(pi*(2*x-1))'
+subplot 2 2 0
+plot y0: box
+
+subplot 2 2 1
+new y1 50 2
+modify y1 'sin(pi*2*x-pi)'
+modify y1 'cos(pi*2*x-pi)/2' 1
+plot y1: box
+
+new x 50: modify x 'cos(pi*2*x-pi)'
+plot x y0 'Y+'
+plot y1(:,0) y(:,1) 'q|'
+
+subplot 2 2 2:rotate 60 40
+new z 50:   modify z '2*x-1'
+plot x y0 z 'g':box
+new y2 10 3
+modify y2 'cos(pi*(2*x-1-y))'
+modify y2 '2*x-1' 2
+plot y2(:,0) y2(:,1) y2(:,2) 'bo '
+
+subplot 2 2 3:rotate 60 40
+bars x y0 z 'r':box
+
+
+File: mgl_en.info,  Node: 2D plot sample,  Next: 3D plot sample,  Prev: 1D plot sample,  Up: Basic features
+
+3.5.2 2D plot sample
+--------------------
+
+ [image src="../png/sample9.png" ]
+
+light on
+
+new a0 50 40
+modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+subplot 2 2 0:rotate 60 40
+surf a0: box
+
+new x 50 40: new y 50 40: new z 50 40
+modify x '0.8*sin(2*pi*x)*sin(pi*y)'
+modify y '0.8*cos(2*pi*x)*sin(pi*y)'
+modify z '0.8*cos(pi*y)'
+subplot 2 2 1:rotate 60 40
+surf x y z 'bbwrr': box
+
+new a1 50 40 3
+modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
+subplot 2 2 2:rotate 60 40
+alpha on
+surf a1: box
+
+subplot 2 2 3: rotate 60 40
+dens a1: box
+
+
+File: mgl_en.info,  Node: 3D plot sample,  Next: Line styles sample,  Prev: 2D plot sample,  Up: Basic features
+
+3.5.3 3D plot sample
+--------------------
+
+ [image src="../png/sampleb.png" ]
+
+alpha on: light on
+light 0 0 0 1
+new a 30 30 30: new b 30 30 30
+modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
+modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
+caxis 0 1
+
+subplot 2 2 0: rotate 40 60
+surf3 a 'wgk': box
+subplot 2 2 1: rotate 40 60
+densa a: box: axis
+subplot 2 2 2: rotate 40 60
+cloud a: box
+subplot 2 2 3: rotate 40 60
+surf3a b a 'q': box
+
+
+File: mgl_en.info,  Node: Line styles sample,  Next: Arrow styles sample,  Prev: 3D plot sample,  Up: Basic features
+
+3.5.4 Line styles sample
+------------------------
+
+ [image src="../png/sample5.png" ]
+
+NOT AVAILABLE
+
+
+File: mgl_en.info,  Node: Arrow styles sample,  Next: Text styles sample,  Prev: Line styles sample,  Up: Basic features
+
+3.5.5 Arrow styles sample
+-------------------------
+
+ [image src="../png/sampled.png" ]
+
+NOT AVAILABLE
+
+
+File: mgl_en.info,  Node: Text styles sample,  Next: TeX parsing sample,  Prev: Arrow styles sample,  Up: Basic features
+
+3.5.6 Text styles sample
+------------------------
+
+ [image src="../png/sample4.png" ]
+
+text 0 1 'Text can be in ASCII and in Unicode'
+text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
+text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
+text 0 -0.2 'Easy to \a{overline} or \u{underline}'
+text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
+text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
+
+
+File: mgl_en.info,  Node: TeX parsing sample,  Next: Font faces sample,  Prev: Text styles sample,  Up: Basic features
+
+3.5.7 TeX parsing sample
+------------------------
+
+ [image src="../png/samplee.png" ]
+
+text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}' '' -4
+
+
+File: mgl_en.info,  Node: Font faces sample,  Next: Colors sample,  Prev: TeX parsing sample,  Up: Basic features
+
+3.5.8 Font faces sample
+-----------------------
+
+ [image src="../png/fonts.png" ]
+
+NOT AVAILABLE
+
+
+File: mgl_en.info,  Node: Colors sample,  Next: Color schemes sample,  Prev: Font faces sample,  Up: Basic features
+
+3.5.9 Colors sample
+-------------------
+
+ [image src="../png/colors.png" ]
+
+#LENUQ
+facez -1   -1 0 0.4 0.3 'L#': text -0.8 -0.9 'L' 'C:w'
+facez -0.6 -1 0 0.4 0.3 'E#': text -0.4 -0.9 'E' 'C:w'
+facez -0.2 -1 0 0.4 0.3 'N#': text  0   -0.9 'N' 'C:w'
+facez  0.2 -1 0 0.4 0.3 'U#': text  0.4 -0.9 'U' 'C:w'
+facez  0.6 -1 0 0.4 0.3 'Q#': text  0.8 -0.9 'Q' 'C:w'
+#lenuq
+facez -1   -0.7 0 0.4 0.3 'l#': text -0.8 -0.6 'l' 'C:k'
+facez -0.6 -0.7 0 0.4 0.3 'e#': text -0.4 -0.6 'e' 'C:k'
+facez -0.2 -0.7 0 0.4 0.3 'n#': text  0   -0.6 'n' 'C:k'
+facez  0.2 -0.7 0 0.4 0.3 'u#': text  0.4 -0.6 'u' 'C:k'
+facez  0.6 -0.7 0 0.4 0.3 'q#': text  0.8 -0.6 'q' 'C:k'
+#CMYkP
+facez -1   -0.4 0 0.4 0.3 'C#': text -0.8 -0.3 'C' 'C:w'
+facez -0.6 -0.4 0 0.4 0.3 'M#': text -0.4 -0.3 'M' 'C:w'
+facez -0.2 -0.4 0 0.4 0.3 'Y#': text  0   -0.3 'Y' 'C:w'
+facez  0.2 -0.4 0 0.4 0.3 'k#': text  0.4 -0.3 'k' 'C:w'
+facez  0.6 -0.4 0 0.4 0.3 'P#': text  0.8 -0.3 'P' 'C:w'
+#lenuq
+facez -1   -0.1 0 0.4 0.3 'c#': text -0.8 0 'c' 'C:k'
+facez -0.6 -0.1 0 0.4 0.3 'm#': text -0.4 0 'm' 'C:k'
+facez -0.2 -0.1 0 0.4 0.3 'y#': text  0   0 'y' 'C:k'
+facez  0.2 -0.1 0 0.4 0.3 'w#': text  0.4 0 'w' 'C:k'
+facez  0.6 -0.1 0 0.4 0.3 'p#': text  0.8 0 'p' 'C:k'
+#BGRHW
+facez -1   0.2 0 0.4 0.3 'B#': text -0.8 0.3 'B' 'C:k'
+facez -0.6 0.2 0 0.4 0.3 'G#': text -0.4 0.3 'G' 'C:k'
+facez -0.2 0.2 0 0.4 0.3 'R#': text  0   0.3 'R' 'C:k'
+facez  0.2 0.2 0 0.4 0.3 'H#': text  0.4 0.3 'H' 'C:k'
+facez  0.6 0.2 0 0.4 0.3 'W#': text  0.8 0.3 'W' 'C:k'
+#bgrhw
+facez -1   0.5 0 0.4 0.3 'b#': text -0.8 0.6 'b' 'C:w'
+facez -0.6 0.5 0 0.4 0.3 'g#': text -0.4 0.6 'g' 'C:w'
+facez -0.2 0.5 0 0.4 0.3 'r#': text  0   0.6 'r' 'C:w'
+facez  0.2 0.5 0 0.4 0.3 'h#': text  0.4 0.6 'h' 'C:w'
+facez  0.6 0.5 0 0.4 0.3 'w#': text  0.8 0.6 'w' 'C:w'
+#brighted
+facez -1   0.8 0 0.4 0.3 'r1#': text -0.8 0.9 'r1' 'C:k'
+facez -0.6 0.8 0 0.4 0.3 'r3#': text -0.4 0.9 'r3' 'C:k'
+facez -0.2 0.8 0 0.4 0.3 'r5#': text  0   0.9 'r5' 'C:k'
+facez  0.2 0.8 0 0.4 0.3 'r7#': text  0.4 0.9 'r7' 'C:k'
+facez  0.6 0.8 0 0.4 0.3 'r9#': text  0.8 0.9 'r9' 'C:k'
+
+
+File: mgl_en.info,  Node: Color schemes sample,  Next: Normal transparency,  Prev: Colors sample,  Up: Basic features
+
+3.5.10 Color schemes sample
+---------------------------
+
+ [image src="../png/color_schemes.png" ]
+
+new a 256 2: fill a 'x'
+subplot 2 10 0 0.2:dens a 'kw'
+text -1.4 -0.3 'kw' '' -8
+subplot 2 10 1 0.2:dens a 'wk'
+text -1.4 -0.3 'wk' '' -8
+subplot 2 10 2 0.2:dens a 'kHCcw'
+text -1.4 -0.3 'kHCcw' '' -8
+subplot 2 10 3 0.2:dens a 'kBbcw'
+text -1.4 -0.3 'kBbcw' '' -8
+subplot 2 10 4 0.2:dens a 'kRryw'
+text -1.4 -0.3 'kRryw' '' -8
+subplot 2 10 5 0.2:dens a 'kGgew'
+text -1.4 -0.3 'kGgew' '' -8
+subplot 2 10 6 0.2:dens a 'BbwrR'
+text -1.4 -0.3 'BbwrR' '' -8
+subplot 2 10 7 0.2:dens a 'BbwgG'
+text -1.4 -0.3 'BbwgG' '' -8
+subplot 2 10 8 0.2:dens a 'GgwmM'
+text -1.4 -0.3 'GgwmM' '' -8
+subplot 2 10 9 0.2:dens a 'UuwqR'
+text -1.4 -0.3 'UuwqR' '' -8
+subplot 2 10 10 0.2:dens a 'QqwcC'
+text -1.4 -0.3 'QqwcC' '' -8
+subplot 2 10 11 0.2:dens a 'CcwyY'
+text -1.4 -0.3 'CcwyY' '' -8
+subplot 2 10 12 0.2:dens a 'bcwyr'
+text -1.4 -0.3 'bcwyr' '' -8
+subplot 2 10 13 0.2:dens a 'bwr'
+text -1.4 -0.3 'bwr' '' -8
+subplot 2 10 14 0.2:dens a 'BbcyrR'
+text -1.4 -0.3 'BbcyrR' '' -8
+subplot 2 10 15 0.2:dens a 'UbcyqR'
+text -1.4 -0.3 'UbcyqR' '' -8
+subplot 2 10 16 0.2:dens a 'BbcwyrR'
+text -1.4 -0.3 'BbcwyrR' '' -8
+subplot 2 10 17 0.2:dens a 'bcyr'
+text -1.4 -0.3 'bcyr' '' -8
+subplot 2 10 18 0.2:dens a 'BbcyrR|'
+text -1.4 -0.3 'BbcyrR|' '' -8
+subplot 2 10 19 0.2:dens a 'bgr'
+text -1.4 -0.3 'bgr' '' -8
+
+
+File: mgl_en.info,  Node: Normal transparency,  Next: Glass-like transparency,  Prev: Color schemes sample,  Up: Basic features
+
+3.5.11 Normal transparency
+--------------------------
+
+ [image src="../png/type0.png" ]
+
+alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 0: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+
+
+File: mgl_en.info,  Node: Glass-like transparency,  Next: Lamp-like transparency,  Prev: Normal transparency,  Up: Basic features
+
+3.5.12 Glass-like transparency
+------------------------------
+
+ [image src="../png/type1.png" ]
+
+alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 1: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+
+
+File: mgl_en.info,  Node: Lamp-like transparency,  Prev: Glass-like transparency,  Up: Basic features
+
+3.5.13 Lamp-like transparency
+-----------------------------
+
+ [image src="../png/type2.png" ]
+
+alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 2: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+
+
+File: mgl_en.info,  Node: Additional features,  Next: Advanced features,  Prev: Dual plotting samples,  Up: Samples
+
+3.6 Additional features
+=======================
+
+* Menu:
+
+* Legend sample::
+* Adding mesh sample::
+* Surf & Cont sample::
+* Flow & Dens sample::
+* Several light sample::
+* Mirrored surface sample::
+* Cont with labels sample::
+* Ternary plot sample::
+* Coloring by coordinates sample::
+* Drops sample::
+* Molecules drawing sample::
+
+
+File: mgl_en.info,  Node: Legend sample,  Next: Adding mesh sample,  Up: Additional features
+
+3.6.1 Legend sample
+-------------------
+
+ [image src="../png/legend.png" ]
+
+new f 50 3
+modify f 'sin(2*pi*x*x)'
+modify f 'sin(2*pi*x)' 1
+modify f 'sin(2*pi*sqrt(x))' 2
+axis 0 -1 1 1
+box
+plot f
+axis
+addlegend 'sin(\pi {x^2})' 'b'
+addlegend 'sin(\pi x)' 'g*'
+addlegend 'sin(\pi \sqrt{\a x})' 'r+'
+legend
+
+
+File: mgl_en.info,  Node: Adding mesh sample,  Next: Surf & Cont sample,  Prev: Legend sample,  Up: Additional features
+
+3.6.2 Adding mesh sample
+------------------------
+
+ [image src="../png/samplea.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+alpha on
+light on
+subplot 2 2 0
+rotate 40 60
+surf a 'BbcyrR#'
+box
+subplot 2 2 1
+rotate 40 60
+dens a 'BbcyrR#'
+box
+subplot 2 2 2
+rotate 40 60
+cont a 'BbcyrR#'
+box
+subplot 2 2 3
+rotate 40 60
+axial a 'BbcyrR#'
+box
+
+
+File: mgl_en.info,  Node: Surf & Cont sample,  Next: Flow & Dens sample,  Prev: Adding mesh sample,  Up: Additional features
+
+3.6.3 Surf & Cont sample
+------------------------
+
+ [image src="../png/surf_cont_y.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+cont a 'y'
+
+
+File: mgl_en.info,  Node: Flow & Dens sample,  Next: Several light sample,  Prev: Surf & Cont sample,  Up: Additional features
+
+3.6.4 Flow & Dens sample
+------------------------
+
+ [image src="../png/flow_dens.png" ]
+
+new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+copy d a
+modify d 'sqrt(v^2+w^2)' a b
+box
+flow a b 'br'
+dens d 'BbcyrR'
+
+
+File: mgl_en.info,  Node: Several light sample,  Next: Mirrored surface sample,  Prev: Flow & Dens sample,  Up: Additional features
+
+3.6.5 Several light sample
+--------------------------
+
+ [image src="../png/several_light.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+light 1 0 1 0 'c'
+light 2 1 0 0 'y'
+light 3 0 -1 0 'm'
+box
+surf a 'h'
+
+
+File: mgl_en.info,  Node: Mirrored surface sample,  Next: Cont with labels sample,  Prev: Several light sample,  Up: Additional features
+
+3.6.6 Mirrored surface sample
+-----------------------------
+
+ [image src="../png/mirror.png" ]
+
+new a 30 40
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf a 'r'; yrange 0 1
+surf a 'b'; yrange 0 -1
+box
+ or
+new a 30 40
+var x 30 -1 1
+var y1 40 0 1
+var y2 40 0 -1
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf x y1 a 'r'
+surf x y2 a 'b'
+box
+
+
+File: mgl_en.info,  Node: Cont with labels sample,  Next: Ternary plot sample,  Prev: Mirrored surface sample,  Up: Additional features
+
+3.6.7 Cont with labels sample
+-----------------------------
+
+ [image src="../png/contt.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+cont a 'BbcyrRt'
+
+
+File: mgl_en.info,  Node: Ternary plot sample,  Next: Coloring by coordinates sample,  Prev: Cont with labels sample,  Up: Additional features
+
+3.6.8 Ternary plot sample
+-------------------------
+
+ [image src="../png/ternary.png" ]
+
+new rx 10
+new ry 10
+new x 50
+new y 50
+new a 20 30
+modify a '4*x*y'
+modify x '0.25*(1+cos(2*pi*x))'
+modify y '0.25*(1+sin(2*pi*x))'
+modify rx 'rnd'
+modify ry 'rnd*(1-v)' rx
+text -0.8 1.3 'Ternary plot (x+y+t=1)'
+ternary on
+plot x y 'r2'
+plot rx ry 'q^ '
+cont a
+line 0.5 0 0 0.75 'g2'
+axis
+grid 'xyz' 'B;'
+xlabel 'x comp.'
+ylabel 'y comp.'
+tlabel 't comp.'
+
+
+File: mgl_en.info,  Node: Coloring by coordinates sample,  Next: Drops sample,  Prev: Ternary plot sample,  Up: Additional features
+
+3.6.9 Coloring by coordinates sample
+------------------------------------
+
+ [image src="../png/surf3_rgbd.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+surf3 a 'bgrd'
+
+
+File: mgl_en.info,  Node: Drops sample,  Next: Molecules drawing sample,  Prev: Coloring by coordinates sample,  Up: Additional features
+
+3.6.10 Drops sample
+-------------------
+
+ [image src="../png/drops.png" ]
+
+light on
+text -1 1.2 'sh=0'
+drop -1 0 0 1 0.5 'r' 0
+text -0.33 1.2 'sh=0.33'
+drop -0.33 0 0 1 0.5 'r' 0.33
+text 0.33 1.2 'sh=0.67'
+drop 0.33 0 0 1 0.5 'r' 0.67
+text 1 1.2 'sh=1'
+drop 1 0 0 1 0.5 'r' 1
+ball -1 0 1 'k'
+ball -0.33 0 1 'k'
+ball 0.33 0 1 'k'
+ball 1 0 1 'k'
+line -1 0 1 1 0 1 'b'
+new h 100
+modify h '0.25*(1+x)^2'
+plot h 'k|'
+text -1 0.6 'h\sim(1+sh)^2' 'rL'
+
+
+File: mgl_en.info,  Node: Molecules drawing sample,  Prev: Drops sample,  Up: Additional features
+
+3.6.11 Molecules drawing sample
+-------------------------------
+
+ [image src="../png/molecule.png" ]
+
+alpha on
+light on
+subplot 2 2 0
+text 0 1.2 'Methane, CH_4' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'k'
+drop 0 0 0 0 0 1 0.35 'h' 1 2
+sphere 0 0 0.7 0.25 'g'
+drop 0 0 0 -0.94 0 -0.33 0.35 'h' 1 2
+sphere -0.66 0 -0.23 0.25 'g'
+drop 0 0 0 0.47 0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 0.57 -0.23 0.25 'g'
+drop 0 0 0 0.47 -0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 -0.57 -0.23 0.25 'g'
+subplot 2 2 1
+text 0 1.2 'Water, H{_2}O' '' -3
+rotate 60 100
+sphere 0 0 0 0.25 'r'
+drop 0 0 0 0.3 0.5 0 0.3 'm' 1 2
+sphere 0.3 0.5 0 0.25 'g'
+drop 0 0 0 0.3 -0.5 0 0.3 'm' 1 2
+sphere 0.3 -0.5 0 0.25 'g'
+subplot 2 2 2
+text 0 1.2 'Oxygen, O_2' '' -3
+rotate 60 120
+drop 0 0.5 0 0 -0.3 0 0.3 'm' 1 2
+sphere 0 0.5 0 0.25 'r'
+drop 0 -0.5 0 0 0.3 0 0.3 'm' 1 2
+sphere 0 -0.5 0 0.25 'r'
+subplot 2 2 3
+text 0 1.2 0 'Ammonia, NH_3' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'b'
+drop 0 0 0 0.33 0.57 0 0.32 'n' 1 2
+sphere 0.33 0.57 0 0.25 'g'
+drop 0 0 0 0.33 -0.57 0 0.32 'n' 1 2
+sphere 0.33 -0.57 0 0.25 'g'
+drop 0 0 0 -0.65 0 0 0.32 'n' 1 2
+sphere -0.65 0 0 0.25 'g'
+
+
+File: mgl_en.info,  Node: Advanced features,  Prev: Additional features,  Up: Samples
+
+3.7 Advanced features
+=====================
+
+* Menu:
+
+* Curvelinear coorinates sample::
+* 2-axes sample::
+* Semi-log sample::
+* Log-log sample::
+* Fitting sample::
+* Envelop sample::
+* Sew sample::
+* STFA sample::
+* PDE sample::
+* Beam tracing sample::
+* Parser sample::
+* Manual ticks sample::
+* ColumnPlot sample::
+* StickPlot sample::
+* Stereo image sample::
+
+
+File: mgl_en.info,  Node: Curvelinear coorinates sample,  Next: 2-axes sample,  Up: Advanced features
+
+3.7.1 Curvelinear coorinates sample
+-----------------------------------
+
+ [image src="../png/sample3.png" ]
+
+origin -1 1 -1
+subplot 2 2 0
+rotate 60 40
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cartesian'
+subplot 2 2 1
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cylindrical'
+subplot 2 2 2
+rotate 60 40
+axis '2*y*x' 'y*y - x*x' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Parabolic'
+subplot 2 2 3
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Spiral'
+axis '' '' '' # set to default Cartesian
+
+
+File: mgl_en.info,  Node: 2-axes sample,  Next: Semi-log sample,  Prev: Curvelinear coorinates sample,  Up: Advanced features
+
+3.7.2 2-axes sample
+-------------------
+
+ [image src="../png/2_axis.png" ]
+
+new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+axis -1 -1 -1 1 1 1
+origin -1 -1 -1
+axis
+ylabel 'axis 1' 0
+plot y1 'b'
+axis 0 0 0 1 1 1
+origin 1 1 1
+axis
+ylabel 'axis 2' 0
+stem y2 'r'
+
+
+File: mgl_en.info,  Node: Semi-log sample,  Next: Log-log sample,  Prev: 2-axes sample,  Up: Advanced features
+
+3.7.3 Semi-log sample
+---------------------
+
+ [image src="../png/semilog.png" ]
+
+new x 2000
+new y 2000
+modify x '0.01/(x+10^(-5))'
+modify y 'sin(1/v)' x
+xrange 0.01 1000
+origin 0.01 -1 0
+xtick 0
+axis 'lg(x)' '' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g'
+xlabel 'x' 0
+ylabel 'y = sin 1/x' 0
+box
+
+
+File: mgl_en.info,  Node: Log-log sample,  Next: Fitting sample,  Prev: Semi-log sample,  Up: Advanced features
+
+3.7.4 Log-log sample
+--------------------
+
+ [image src="../png/loglog.png" ]
+
+new x 100
+new y 100
+modify x 'pow(10,6*x-3)'
+modify y 'sqrt(1+v^2)' x
+axis 0.001 0.1 1000 1000
+xtick 0
+ytick 0
+axis 'lg(x)' 'lg(y)' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g;'
+xlabel 'x' 0
+ylabel 'y=\sqrt{1+x^2}' 0
+box
+
+
+File: mgl_en.info,  Node: Fitting sample,  Next: Envelop sample,  Prev: Log-log sample,  Up: Advanced features
+
+3.7.5 Fitting sample
+--------------------
+
+ [image src="../png/fit.png" ]
+
+new rnd 100
+fill rnd '0.4*rnd+0.1+sin(2*pi*x)'
+new in 100
+fill in '0.3+sin(2*pi*x)'
+yrange -2 2
+plot rnd '. '
+box
+list ini 1 1 3
+fit res rnd 'a+b*sin(c*x)' 'abc' ini
+plot res 'r'
+plot in 'b'
+text -1 -1.3 'fitted:' 'L:r' -1
+putsfit 0 -1.8 'y = ' 'C:r'
+text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
+
+
+File: mgl_en.info,  Node: Envelop sample,  Next: Sew sample,  Prev: Fitting sample,  Up: Advanced features
+
+3.7.6 Envelop sample
+--------------------
+
+ [image src="../png/envelop.png" ]
+
+new a 1000
+fill a 'exp(-8*x^2)*sin(10*pi*x)'
+plot a 'b'
+envelop a
+plot a 'r'
+axis
+
+
+File: mgl_en.info,  Node: Sew sample,  Next: STFA sample,  Prev: Envelop sample,  Up: Advanced features
+
+3.7.7 Sew sample
+----------------
+
+ [image src="../png/sew.png" ]
+
+new a 100 100
+modify a 'mod((y^2-(1-x)^2)/2,0.1)'
+rotate 40 60
+light on
+alpha on
+surf a 'b'
+sew a 'xy' 0.1
+surf a 'r'
+box
+
+
+File: mgl_en.info,  Node: STFA sample,  Next: PDE sample,  Prev: Sew sample,  Up: Advanced features
+
+3.7.8 STFA sample
+-----------------
+
+ [image src="../png/stfa.png" ]
+
+new a 2000
+new b 2000
+fill a 'cos(50*pi*x)*(x<-.5)+cos(100*pi*x)*(x<0)*(x>-.5)+
+        cos(200*pi*x)*(x<.5)*(x>0)+cos(400*pi*x)*(x>.5)'
+subplot 1 2 0
+plot a
+axis
+xlabel '\i t'
+subplot 1 2 1
+stfa a b 64 ''
+axis
+ylabel '\omega' 0
+xlabel '\i t'
+
+
+File: mgl_en.info,  Node: PDE sample,  Next: Beam tracing sample,  Prev: STFA sample,  Up: Advanced features
+
+3.7.9 PDE sample
+----------------
+
+ [image src="../png/pde.png" ]
+
+axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+fill re 'exp(-48*(x+0.7)^2)'
+pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z>-x)' re im 0.01 30
+transpose a
+crange 0 1
+dens a 'wyrRk'
+fplot '-x' 'k|'
+text 0 0.85 'absorption: (x+z)/2 for x+z>0' '' -1
+title 'Equation: ik_0\partial_zu + \Delta u + x\cdot u + i \frac{x+z}{2}\cdot u = 0' 'iC' -1.5
+
+
+File: mgl_en.info,  Node: Beam tracing sample,  Next: Parser sample,  Prev: PDE sample,  Up: Advanced features
+
+3.7.10 Beam tracing sample
+--------------------------
+
+ [image src="../png/qo2d.png" ]
+
+define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y>-x)'
+ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
+plot r(0) r(1) 'k'
+axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+new xx
+new yy
+fill re 'exp(-48*x^2)'
+qo2d a $1 re im r 1 30 xx yy
+crange 0 1
+dens xx yy a 'wyrRk'
+fplot '-x' 'k|'
+text -0.8 0.85 'absorption: (x+y)/2 for x+y>0' 'L' -1
+text 0.5 -0.05 'central ray' 'L' -1
+title 'Beam and ray tracing' 'C' -1.5
+
+
+File: mgl_en.info,  Node: Parser sample,  Next: Manual ticks sample,  Prev: Beam tracing sample,  Up: Advanced features
+
+3.7.11 Parser sample
+--------------------
+
+
+File: mgl_en.info,  Node: Manual ticks sample,  Next: ColumnPlot sample,  Prev: Parser sample,  Up: Advanced features
+
+3.7.12 Tick values sample
+-------------------------
+
+ [image src="../png/tval.png" ]
+
+axis -pi 0 pi 2
+xtick -pi '-\pi' -1.571 '-\pi/2' 0 '0' 0.886 'x^*' 1.571 '\pi/2' pi '\pi'
+axis
+grid
+fplot '2*cos(x^2)^2' 'r2' nan 300
+
+
+File: mgl_en.info,  Node: ColumnPlot sample,  Next: StickPlot sample,  Prev: Manual ticks sample,  Up: Advanced features
+
+3.7.13 ColumnPlot sample
+------------------------
+
+ [image src="../png/column.png" ]
+
+for $1 0 3
+columnplot 4 $1
+box
+text -0.5 0.5 'Plot $1 of 4'
+fplot 'sin(pi*x+pi*$1/2)'
+next
+
+
+File: mgl_en.info,  Node: StickPlot sample,  Next: Stereo image sample,  Prev: ColumnPlot sample,  Up: Advanced features
+
+3.7.14 StickPlot sample
+-----------------------
+
+ [image src="../png/stick.png" ]
+
+ranges -1 1 -1 1 0 1:light on
+stickplot 3 0 40 30 : axis 'xyz_'
+fsurf 'exp(-10*y^2-6*x^2)'
+text 0.2 0 1.2 'z=0' '' -2
+stickplot 3 1 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/2-6*x^2)/sqrt(2)'
+text 0.2 0 1.2 'z=1' '' -2
+stickplot 3 2 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/5-6*x^2)/sqrt(5)'
+text 0.2 0 1.2 'z=2' '' -2
+xlabel '\tau' 0 : ylabel '\rho'
+
+
+File: mgl_en.info,  Node: Stereo image sample,  Prev: StickPlot sample,  Up: Advanced features
+
+3.7.15 Stereo image sample
+--------------------------
+
+ [image src="../png/stereo.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+subplot 2 1 0
+rotate 40 60+3
+box:surf a
+subplot 2 1 1
+rotate 40 60-3
+box:surf a
+
+
+File: mgl_en.info,  Node: Copying This Manual,  Next: Index,  Prev: Samples,  Up: Top
+
+Appendix A GNU Free Documentation License
+*****************************************
+
+                      Version 1.2, November 2002
+
+     Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
+     51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
+
+     Everyone is permitted to copy and distribute verbatim copies
+     of this license document, but changing it is not allowed.
+
+  0. PREAMBLE
+
+     The purpose of this License is to make a manual, textbook, or other
+     functional and useful document "free" in the sense of freedom: to
+     assure everyone the effective freedom to copy and redistribute it,
+     with or without modifying it, either commercially or
+     noncommercially.  Secondarily, this License preserves for the
+     author and publisher a way to get credit for their work, while not
+     being considered responsible for modifications made by others.
+
+     This License is a kind of "copyleft", which means that derivative
+     works of the document must themselves be free in the same sense.
+     It complements the GNU General Public License, which is a copyleft
+     license designed for free software.
+
+     We have designed this License in order to use it for manuals for
+     free software, because free software needs free documentation: a
+     free program should come with manuals providing the same freedoms
+     that the software does.  But this License is not limited to
+     software manuals; it can be used for any textual work, regardless
+     of subject matter or whether it is published as a printed book.
+     We recommend this License principally for works whose purpose is
+     instruction or reference.
+
+  1. APPLICABILITY AND DEFINITIONS
+
+     This License applies to any manual or other work, in any medium,
+     that contains a notice placed by the copyright holder saying it
+     can be distributed under the terms of this License.  Such a notice
+     grants a world-wide, royalty-free license, unlimited in duration,
+     to use that work under the conditions stated herein.  The
+     "Document", below, refers to any such manual or work.  Any member
+     of the public is a licensee, and is addressed as "you".  You
+     accept the license if you copy, modify or distribute the work in a
+     way requiring permission under copyright law.
+
+     A "Modified Version" of the Document means any work containing the
+     Document or a portion of it, either copied verbatim, or with
+     modifications and/or translated into another language.
+
+     A "Secondary Section" is a named appendix or a front-matter section
+     of the Document that deals exclusively with the relationship of the
+     publishers or authors of the Document to the Document's overall
+     subject (or to related matters) and contains nothing that could
+     fall directly within that overall subject.  (Thus, if the Document
+     is in part a textbook of mathematics, a Secondary Section may not
+     explain any mathematics.)  The relationship could be a matter of
+     historical connection with the subject or with related matters, or
+     of legal, commercial, philosophical, ethical or political position
+     regarding them.
+
+     The "Invariant Sections" are certain Secondary Sections whose
+     titles are designated, as being those of Invariant Sections, in
+     the notice that says that the Document is released under this
+     License.  If a section does not fit the above definition of
+     Secondary then it is not allowed to be designated as Invariant.
+     The Document may contain zero Invariant Sections.  If the Document
+     does not identify any Invariant Sections then there are none.
+
+     The "Cover Texts" are certain short passages of text that are
+     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
+     that says that the Document is released under this License.  A
+     Front-Cover Text may be at most 5 words, and a Back-Cover Text may
+     be at most 25 words.
+
+     A "Transparent" copy of the Document means a machine-readable copy,
+     represented in a format whose specification is available to the
+     general public, that is suitable for revising the document
+     straightforwardly with generic text editors or (for images
+     composed of pixels) generic paint programs or (for drawings) some
+     widely available drawing editor, and that is suitable for input to
+     text formatters or for automatic translation to a variety of
+     formats suitable for input to text formatters.  A copy made in an
+     otherwise Transparent file format whose markup, or absence of
+     markup, has been arranged to thwart or discourage subsequent
+     modification by readers is not Transparent.  An image format is
+     not Transparent if used for any substantial amount of text.  A
+     copy that is not "Transparent" is called "Opaque".
+
+     Examples of suitable formats for Transparent copies include plain
+     ASCII without markup, Texinfo input format, LaTeX input format,
+     SGML or XML using a publicly available DTD, and
+     standard-conforming simple HTML, PostScript or PDF designed for
+     human modification.  Examples of transparent image formats include
+     PNG, XCF and JPG.  Opaque formats include proprietary formats that
+     can be read and edited only by proprietary word processors, SGML or
+     XML for which the DTD and/or processing tools are not generally
+     available, and the machine-generated HTML, PostScript or PDF
+     produced by some word processors for output purposes only.
+
+     The "Title Page" means, for a printed book, the title page itself,
+     plus such following pages as are needed to hold, legibly, the
+     material this License requires to appear in the title page.  For
+     works in formats which do not have any title page as such, "Title
+     Page" means the text near the most prominent appearance of the
+     work's title, preceding the beginning of the body of the text.
+
+     A section "Entitled XYZ" means a named subunit of the Document
+     whose title either is precisely XYZ or contains XYZ in parentheses
+     following text that translates XYZ in another language.  (Here XYZ
+     stands for a specific section name mentioned below, such as
+     "Acknowledgements", "Dedications", "Endorsements", or "History".)
+     To "Preserve the Title" of such a section when you modify the
+     Document means that it remains a section "Entitled XYZ" according
+     to this definition.
+
+     The Document may include Warranty Disclaimers next to the notice
+     which states that this License applies to the Document.  These
+     Warranty Disclaimers are considered to be included by reference in
+     this License, but only as regards disclaiming warranties: any other
+     implication that these Warranty Disclaimers may have is void and
+     has no effect on the meaning of this License.
+
+  2. VERBATIM COPYING
+
+     You may copy and distribute the Document in any medium, either
+     commercially or noncommercially, provided that this License, the
+     copyright notices, and the license notice saying this License
+     applies to the Document are reproduced in all copies, and that you
+     add no other conditions whatsoever to those of this License.  You
+     may not use technical measures to obstruct or control the reading
+     or further copying of the copies you make or distribute.  However,
+     you may accept compensation in exchange for copies.  If you
+     distribute a large enough number of copies you must also follow
+     the conditions in section 3.
+
+     You may also lend copies, under the same conditions stated above,
+     and you may publicly display copies.
+
+  3. COPYING IN QUANTITY
+
+     If you publish printed copies (or copies in media that commonly
+     have printed covers) of the Document, numbering more than 100, and
+     the Document's license notice requires Cover Texts, you must
+     enclose the copies in covers that carry, clearly and legibly, all
+     these Cover Texts: Front-Cover Texts on the front cover, and
+     Back-Cover Texts on the back cover.  Both covers must also clearly
+     and legibly identify you as the publisher of these copies.  The
+     front cover must present the full title with all words of the
+     title equally prominent and visible.  You may add other material
+     on the covers in addition.  Copying with changes limited to the
+     covers, as long as they preserve the title of the Document and
+     satisfy these conditions, can be treated as verbatim copying in
+     other respects.
+
+     If the required texts for either cover are too voluminous to fit
+     legibly, you should put the first ones listed (as many as fit
+     reasonably) on the actual cover, and continue the rest onto
+     adjacent pages.
+
+     If you publish or distribute Opaque copies of the Document
+     numbering more than 100, you must either include a
+     machine-readable Transparent copy along with each Opaque copy, or
+     state in or with each Opaque copy a computer-network location from
+     which the general network-using public has access to download
+     using public-standard network protocols a complete Transparent
+     copy of the Document, free of added material.  If you use the
+     latter option, you must take reasonably prudent steps, when you
+     begin distribution of Opaque copies in quantity, to ensure that
+     this Transparent copy will remain thus accessible at the stated
+     location until at least one year after the last time you
+     distribute an Opaque copy (directly or through your agents or
+     retailers) of that edition to the public.
+
+     It is requested, but not required, that you contact the authors of
+     the Document well before redistributing any large number of
+     copies, to give them a chance to provide you with an updated
+     version of the Document.
+
+  4. MODIFICATIONS
+
+     You may copy and distribute a Modified Version of the Document
+     under the conditions of sections 2 and 3 above, provided that you
+     release the Modified Version under precisely this License, with
+     the Modified Version filling the role of the Document, thus
+     licensing distribution and modification of the Modified Version to
+     whoever possesses a copy of it.  In addition, you must do these
+     things in the Modified Version:
+
+       A. Use in the Title Page (and on the covers, if any) a title
+          distinct from that of the Document, and from those of
+          previous versions (which should, if there were any, be listed
+          in the History section of the Document).  You may use the
+          same title as a previous version if the original publisher of
+          that version gives permission.
+
+       B. List on the Title Page, as authors, one or more persons or
+          entities responsible for authorship of the modifications in
+          the Modified Version, together with at least five of the
+          principal authors of the Document (all of its principal
+          authors, if it has fewer than five), unless they release you
+          from this requirement.
+
+       C. State on the Title page the name of the publisher of the
+          Modified Version, as the publisher.
+
+       D. Preserve all the copyright notices of the Document.
+
+       E. Add an appropriate copyright notice for your modifications
+          adjacent to the other copyright notices.
+
+       F. Include, immediately after the copyright notices, a license
+          notice giving the public permission to use the Modified
+          Version under the terms of this License, in the form shown in
+          the Addendum below.
+
+       G. Preserve in that license notice the full lists of Invariant
+          Sections and required Cover Texts given in the Document's
+          license notice.
+
+       H. Include an unaltered copy of this License.
+
+       I. Preserve the section Entitled "History", Preserve its Title,
+          and add to it an item stating at least the title, year, new
+          authors, and publisher of the Modified Version as given on
+          the Title Page.  If there is no section Entitled "History" in
+          the Document, create one stating the title, year, authors,
+          and publisher of the Document as given on its Title Page,
+          then add an item describing the Modified Version as stated in
+          the previous sentence.
+
+       J. Preserve the network location, if any, given in the Document
+          for public access to a Transparent copy of the Document, and
+          likewise the network locations given in the Document for
+          previous versions it was based on.  These may be placed in
+          the "History" section.  You may omit a network location for a
+          work that was published at least four years before the
+          Document itself, or if the original publisher of the version
+          it refers to gives permission.
+
+       K. For any section Entitled "Acknowledgements" or "Dedications",
+          Preserve the Title of the section, and preserve in the
+          section all the substance and tone of each of the contributor
+          acknowledgements and/or dedications given therein.
+
+       L. Preserve all the Invariant Sections of the Document,
+          unaltered in their text and in their titles.  Section numbers
+          or the equivalent are not considered part of the section
+          titles.
+
+       M. Delete any section Entitled "Endorsements".  Such a section
+          may not be included in the Modified Version.
+
+       N. Do not retitle any existing section to be Entitled
+          "Endorsements" or to conflict in title with any Invariant
+          Section.
+
+       O. Preserve any Warranty Disclaimers.
+
+     If the Modified Version includes new front-matter sections or
+     appendices that qualify as Secondary Sections and contain no
+     material copied from the Document, you may at your option
+     designate some or all of these sections as invariant.  To do this,
+     add their titles to the list of Invariant Sections in the Modified
+     Version's license notice.  These titles must be distinct from any
+     other section titles.
+
+     You may add a section Entitled "Endorsements", provided it contains
+     nothing but endorsements of your Modified Version by various
+     parties--for example, statements of peer review or that the text
+     has been approved by an organization as the authoritative
+     definition of a standard.
+
+     You may add a passage of up to five words as a Front-Cover Text,
+     and a passage of up to 25 words as a Back-Cover Text, to the end
+     of the list of Cover Texts in the Modified Version.  Only one
+     passage of Front-Cover Text and one of Back-Cover Text may be
+     added by (or through arrangements made by) any one entity.  If the
+     Document already includes a cover text for the same cover,
+     previously added by you or by arrangement made by the same entity
+     you are acting on behalf of, you may not add another; but you may
+     replace the old one, on explicit permission from the previous
+     publisher that added the old one.
+
+     The author(s) and publisher(s) of the Document do not by this
+     License give permission to use their names for publicity for or to
+     assert or imply endorsement of any Modified Version.
+
+  5. COMBINING DOCUMENTS
+
+     You may combine the Document with other documents released under
+     this License, under the terms defined in section 4 above for
+     modified versions, provided that you include in the combination
+     all of the Invariant Sections of all of the original documents,
+     unmodified, and list them all as Invariant Sections of your
+     combined work in its license notice, and that you preserve all
+     their Warranty Disclaimers.
+
+     The combined work need only contain one copy of this License, and
+     multiple identical Invariant Sections may be replaced with a single
+     copy.  If there are multiple Invariant Sections with the same name
+     but different contents, make the title of each such section unique
+     by adding at the end of it, in parentheses, the name of the
+     original author or publisher of that section if known, or else a
+     unique number.  Make the same adjustment to the section titles in
+     the list of Invariant Sections in the license notice of the
+     combined work.
+
+     In the combination, you must combine any sections Entitled
+     "History" in the various original documents, forming one section
+     Entitled "History"; likewise combine any sections Entitled
+     "Acknowledgements", and any sections Entitled "Dedications".  You
+     must delete all sections Entitled "Endorsements."
+
+  6. COLLECTIONS OF DOCUMENTS
+
+     You may make a collection consisting of the Document and other
+     documents released under this License, and replace the individual
+     copies of this License in the various documents with a single copy
+     that is included in the collection, provided that you follow the
+     rules of this License for verbatim copying of each of the
+     documents in all other respects.
+
+     You may extract a single document from such a collection, and
+     distribute it individually under this License, provided you insert
+     a copy of this License into the extracted document, and follow
+     this License in all other respects regarding verbatim copying of
+     that document.
+
+  7. AGGREGATION WITH INDEPENDENT WORKS
+
+     A compilation of the Document or its derivatives with other
+     separate and independent documents or works, in or on a volume of
+     a storage or distribution medium, is called an "aggregate" if the
+     copyright resulting from the compilation is not used to limit the
+     legal rights of the compilation's users beyond what the individual
+     works permit.  When the Document is included in an aggregate, this
+     License does not apply to the other works in the aggregate which
+     are not themselves derivative works of the Document.
+
+     If the Cover Text requirement of section 3 is applicable to these
+     copies of the Document, then if the Document is less than one half
+     of the entire aggregate, the Document's Cover Texts may be placed
+     on covers that bracket the Document within the aggregate, or the
+     electronic equivalent of covers if the Document is in electronic
+     form.  Otherwise they must appear on printed covers that bracket
+     the whole aggregate.
+
+  8. TRANSLATION
+
+     Translation is considered a kind of modification, so you may
+     distribute translations of the Document under the terms of section
+     4.  Replacing Invariant Sections with translations requires special
+     permission from their copyright holders, but you may include
+     translations of some or all Invariant Sections in addition to the
+     original versions of these Invariant Sections.  You may include a
+     translation of this License, and all the license notices in the
+     Document, and any Warranty Disclaimers, provided that you also
+     include the original English version of this License and the
+     original versions of those notices and disclaimers.  In case of a
+     disagreement between the translation and the original version of
+     this License or a notice or disclaimer, the original version will
+     prevail.
+
+     If a section in the Document is Entitled "Acknowledgements",
+     "Dedications", or "History", the requirement (section 4) to
+     Preserve its Title (section 1) will typically require changing the
+     actual title.
+
+  9. TERMINATION
+
+     You may not copy, modify, sublicense, or distribute the Document
+     except as expressly provided for under this License.  Any other
+     attempt to copy, modify, sublicense or distribute the Document is
+     void, and will automatically terminate your rights under this
+     License.  However, parties who have received copies, or rights,
+     from you under this License will not have their licenses
+     terminated so long as such parties remain in full compliance.
+
+ 10. FUTURE REVISIONS OF THIS LICENSE
+
+     The Free Software Foundation may publish new, revised versions of
+     the GNU Free Documentation License from time to time.  Such new
+     versions will be similar in spirit to the present version, but may
+     differ in detail to address new problems or concerns.  See
+     `http://www.gnu.org/copyleft/'.
+
+     Each version of the License is given a distinguishing version
+     number.  If the Document specifies that a particular numbered
+     version of this License "or any later version" applies to it, you
+     have the option of following the terms and conditions either of
+     that specified version or of any later version that has been
+     published (not as a draft) by the Free Software Foundation.  If
+     the Document does not specify a version number of this License,
+     you may choose any version ever published (not as a draft) by the
+     Free Software Foundation.
+
+ADDENDUM: How to use this License for your documents
+====================================================
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and license
+notices just after the title page:
+
+       Copyright (C)  YEAR  YOUR NAME.
+       Permission is granted to copy, distribute and/or modify this document
+       under the terms of the GNU Free Documentation License, Version 1.2
+       or any later version published by the Free Software Foundation;
+       with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+       Texts.  A copy of the license is included in the section entitled ``GNU
+       Free Documentation License''.
+
+   If you have Invariant Sections, Front-Cover Texts and Back-Cover
+Texts, replace the "with...Texts." line with this:
+
+         with the Invariant Sections being LIST THEIR TITLES, with
+         the Front-Cover Texts being LIST, and with the Back-Cover Texts
+         being LIST.
+
+   If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+   If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License, to
+permit their use in free software.
+
+
+File: mgl_en.info,  Node: Index,  Prev: Copying This Manual,  Up: Top
+
+Index
+*****
+
+ [index ]
+* Menu:
+
+* AddLegend:                             Legend sample.       (line   6)
+* addlegend:                             Legend.              (line  30)
+* addto:                                 Operators.           (line  18)
+* adjust:                                Axis settings.       (line 109)
+* Alpha <1>:                             3D plot sample.      (line   6)
+* Alpha <2>:                             2D plot sample.      (line   6)
+* Alpha:                                 Transparent surface sample.
+                                                              (line   6)
+* alpha <1>:                             Command options.     (line  20)
+* alpha:                                 Transparency.        (line  15)
+* alphadef <1>:                          Command options.     (line  20)
+* alphadef:                              Transparency.        (line  19)
+* ambient <1>:                           Command options.     (line  26)
+* ambient:                               Lighting.            (line  27)
+* Area <1>:                              Area gradient sample.
+                                                              (line   6)
+* Area:                                  Area sample.         (line   6)
+* area:                                  1D plotting.         (line  60)
+* Arrows:                                Line styles.         (line   6)
+* arrowsize:                             Default sizes.       (line  18)
+* aspect:                                Transformation matrix.
+                                                              (line  56)
+* Axial <1>:                             Adding mesh sample.  (line   6)
+* Axial:                                 Axial sample.        (line   6)
+* axial:                                 2D plotting.         (line 127)
+* axialdir:                              Other settings.      (line  27)
+* Axis <1>:                              Log-log sample.      (line   6)
+* Axis <2>:                              Semi-log sample.     (line   6)
+* Axis <3>:                              2-axes sample.       (line   6)
+* Axis <4>:                              Curvelinear coorinates sample.
+                                                              (line   6)
+* Axis <5>:                              Dens3 sample.        (line   6)
+* Axis <6>:                              Ring chart sample.   (line   6)
+* Axis:                                  Pie chart sample.    (line   6)
+* axis <1>:                              Axis and Colorbar.   (line  10)
+* axis:                                  Axis settings.       (line  12)
+* ball:                                  Primitives drawing.  (line  13)
+* Barh:                                  Barh sample.         (line   6)
+* barh:                                  1D plotting.         (line 101)
+* Bars <1>:                              1D plot sample.      (line   6)
+* Bars <2>:                              Bars fall sample.    (line   6)
+* Bars <3>:                              Bars above sample.   (line   6)
+* Bars <4>:                              Bars 2 colors sample.
+                                                              (line   6)
+* Bars:                                  Bars sample.         (line   6)
+* bars:                                  1D plotting.         (line  88)
+* barwidth:                              Default sizes.       (line  11)
+* beam:                                  3D plotting.         (line 124)
+* Belt:                                  Belt sample.         (line   6)
+* belt:                                  2D plotting.         (line  53)
+* box:                                   Axis and Colorbar.   (line  42)
+* BoxPlot:                               BoxPlot sample.      (line   6)
+* boxplot:                               1D plotting.         (line 177)
+* Boxs:                                  Boxs sample.         (line   6)
+* boxs:                                  2D plotting.         (line  61)
+* call:                                  Program flow.        (line  34)
+* caxis:                                 Axis settings.       (line  52)
+* Chart <1>:                             Ring chart sample.   (line   6)
+* Chart <2>:                             Pie chart sample.    (line   6)
+* Chart:                                 Chart sample.        (line   6)
+* chart:                                 1D plotting.         (line 114)
+* chdir:                                 Program flow.        (line   9)
+* clearlegend:                           Legend.              (line  35)
+* clf:                                   Primitives drawing.  (line   9)
+* Cloud:                                 Cloud sample.        (line   6)
+* cloud:                                 3D plotting.         (line 113)
+* CloudP:                                CloudP sample.       (line   6)
+* Color scheme:                          Color scheme.        (line   6)
+* Colorbar <1>:                          Color schemes sample.
+                                                              (line   6)
+* Colorbar:                              Dens sample.         (line   6)
+* colorbar:                              Axis and Colorbar.   (line  17)
+* ColumnPlot:                            ColumnPlot sample.   (line   6)
+* columnplot:                            Transformation matrix.
+                                                              (line  38)
+* combine:                               Make another data.   (line   6)
+* cone:                                  Primitives drawing.  (line  54)
+* Cont <1>:                              Cont with labels sample.
+                                                              (line   6)
+* Cont <2>:                              Surf & Cont sample.  (line   6)
+* Cont <3>:                              Adding mesh sample.  (line   6)
+* Cont:                                  Cont sample.         (line   6)
+* cont:                                  2D plotting.         (line  83)
+* Cont3:                                 Cont3 sample.        (line   6)
+* cont3:                                 3D plotting.         (line  55)
+* conta:                                 3D plotting.         (line  73)
+* ContD:                                 ContD sample.        (line   6)
+* contd:                                 2D plotting.         (line 112)
+* ContF:                                 ContF sample.        (line   6)
+* contf:                                 2D plotting.         (line  98)
+* ContF3 <1>:                            Isocaps sample.      (line   6)
+* ContF3:                                ContF3 sample.       (line   6)
+* contf3:                                3D plotting.         (line  78)
+* contfa:                                3D plotting.         (line  95)
+* contfx:                                Other plotting.      (line  35)
+* contfy:                                Other plotting.      (line  35)
+* contfz:                                Other plotting.      (line  35)
+* ContX:                                 Cont projection sample.
+                                                              (line   6)
+* contx:                                 Other plotting.      (line  25)
+* ContY:                                 Cont projection sample.
+                                                              (line   6)
+* conty:                                 Other plotting.      (line  25)
+* ContZ:                                 Cont projection sample.
+                                                              (line   6)
+* contz:                                 Other plotting.      (line  25)
+* copy:                                  Data create.         (line  35)
+* cosfft:                                Change data.         (line  40)
+* crange <1>:                            Command options.     (line  30)
+* crange:                                Axis settings.       (line  70)
+* crop:                                  Rearrange data.      (line  33)
+* Crust:                                 Crust sample.        (line   6)
+* crust:                                 Other plotting.      (line  51)
+* ctick:                                 Axis settings.       (line  87)
+* cumsum:                                Change data.         (line  11)
+* curve:                                 Primitives drawing.  (line  23)
+* cut <1>:                               Command options.     (line  46)
+* cut:                                   Cutting.             (line  10)
+* CutMax <1>:                            Isocaps sample.      (line   6)
+* CutMax:                                CutMinMax sample.    (line   6)
+* CutMin <1>:                            Isocaps sample.      (line   6)
+* CutMin:                                CutMinMax sample.    (line   6)
+* CutOff:                                CutOff sample.       (line   6)
+* defchr:                                Program flow.        (line  21)
+* define:                                Program flow.        (line  12)
+* defnum:                                Program flow.        (line  25)
+* defpal:                                Program flow.        (line  29)
+* delete:                                Rearrange data.      (line  37)
+* Dens <1>:                              Flow & Dens sample.  (line   6)
+* Dens <2>:                              Adding mesh sample.  (line   6)
+* Dens <3>:                              3D plot sample.      (line   6)
+* Dens <4>:                              2D plot sample.      (line   6)
+* Dens:                                  Dens sample.         (line   6)
+* dens:                                  2D plotting.         (line  76)
+* Dens3:                                 Dens3 sample.        (line   6)
+* dens3:                                 3D plotting.         (line  41)
+* densa:                                 3D plotting.         (line  50)
+* DensX:                                 Dens projection sample.
+                                                              (line   6)
+* densx:                                 Other plotting.      (line  15)
+* DensY:                                 Dens projection sample.
+                                                              (line   6)
+* densy:                                 Other plotting.      (line  15)
+* DensZ:                                 Dens projection sample.
+                                                              (line   6)
+* densz:                                 Other plotting.      (line  15)
+* Dew:                                   Dew sample.          (line   6)
+* dew:                                   Vector fields.       (line  81)
+* diff:                                  Change data.         (line  17)
+* diff2:                                 Change data.         (line  33)
+* divto:                                 Operators.           (line  12)
+* Dots:                                  Dots sample.         (line   6)
+* dots:                                  Other plotting.      (line  44)
+* Drop <1>:                              Molecules drawing sample.
+                                                              (line   6)
+* Drop:                                  Drops sample.        (line   6)
+* drop:                                  Primitives drawing.  (line  45)
+* else:                                  Program flow.        (line  61)
+* elseif:                                Program flow.        (line  53)
+* endif:                                 Program flow.        (line  65)
+* Envelop:                               Envelop sample.      (line   6)
+* envelop:                               Change data.         (line  71)
+* Error:                                 Error sample.        (line   6)
+* error:                                 1D plotting.         (line 170)
+* evaluate:                              Make another data.   (line  10)
+* export:                                File I/O.            (line  45)
+* extend:                                Rearrange data.      (line  13)
+* facex:                                 Primitives drawing.  (line  30)
+* facey:                                 Primitives drawing.  (line  31)
+* facez:                                 Primitives drawing.  (line  32)
+* Fall:                                  Fall sample.         (line   6)
+* fall:                                  2D plotting.         (line  45)
+* fgets:                                 Text printing.       (line  43)
+* fill:                                  Data filling.        (line   6)
+* Fit:                                   Fitting sample.      (line   6)
+* fit:                                   Nonlinear fitting.   (line  39)
+* fits:                                  Nonlinear fitting.   (line  31)
+* Flow <1>:                              Flow & Dens sample.  (line   6)
+* Flow <2>:                              Flow 3D sample.      (line   6)
+* Flow:                                  Flow sample.         (line   6)
+* flow:                                  Vector fields.       (line  90)
+* Fog:                                   Surface in fog sample.
+                                                              (line   6)
+* fog:                                   Fog.                 (line   6)
+* font:                                  Other settings.      (line   6)
+* Font styles:                           Font styles.         (line   6)
+* fontsize:                              Command options.     (line  50)
+* for:                                   Program flow.        (line  69)
+* fplot:                                 Other plotting.      (line  89)
+* fsurf:                                 Other plotting.      (line 102)
+* func:                                  Program flow.        (line  38)
+* Grad:                                  Grad sample.         (line   6)
+* grad:                                  2D plotting.         (line 144)
+* grid:                                  Axis and Colorbar.   (line  37)
+* grid2:                                 2D plotting.         (line 155)
+* grid3:                                 3D plotting.         (line 100)
+* grida:                                 3D plotting.         (line 108)
+* hankel:                                Change data.         (line  44)
+* hist:                                  Make another data.   (line  20)
+* idset:                                 Data create.         (line  43)
+* if:                                    Program flow.        (line  48)
+* import:                                File I/O.            (line  40)
+* info:                                  Data create.         (line  47)
+* inplot:                                Transformation matrix.
+                                                              (line  28)
+* insert:                                Rearrange data.      (line  44)
+* integrate:                             Change data.         (line  13)
+* jacobian:                              Make another data.   (line 136)
+* Legend:                                Legend sample.       (line   6)
+* legend <1>:                            Command options.     (line  59)
+* legend:                                Legend.              (line  19)
+* legendbox:                             Legend.              (line  38)
+* legendmarks:                           Legend.              (line  42)
+* Light:                                 Several light sample.
+                                                              (line   6)
+* light:                                 Lighting.            (line  13)
+* Line <1>:                              Arrow styles sample. (line   6)
+* Line:                                  Line styles sample.  (line   6)
+* line:                                  Primitives drawing.  (line  18)
+* Line style:                            Line styles.         (line   6)
+* linewidth:                             Default sizes.       (line  21)
+* list:                                  Data create.         (line  16)
+* Map:                                   Map sample.          (line   6)
+* map:                                   Dual plotting.       (line  75)
+* Mark <1>:                              Line styles sample.  (line   6)
+* Mark:                                  Mark sample.         (line   6)
+* mark:                                  1D plotting.         (line 153)
+* Mark style:                            Line styles.         (line   6)
+* marksize <1>:                          Command options.     (line  53)
+* marksize:                              Default sizes.       (line  15)
+* max:                                   Make another data.   (line  44)
+* Mesh:                                  Mesh sample.         (line   6)
+* mesh:                                  2D plotting.         (line  38)
+* meshnum <1>:                           Command options.     (line  56)
+* meshnum:                               Other settings.      (line  21)
+* mglParse:                              Parser sample.       (line   6)
+* mglPDE:                                PDE sample.          (line   6)
+* mglQO2d:                               Beam tracing sample. (line   6)
+* mglRay <1>:                            Beam tracing sample. (line   6)
+* mglRay:                                PDE sample.          (line   6)
+* min:                                   Make another data.   (line  48)
+* mirror:                                Change data.         (line  57)
+* modify:                                Data filling.        (line   6)
+* momentum:                              Make another data.   (line  34)
+* multo:                                 Operators.           (line   6)
+* new:                                   Data create.         (line   6)
+* next:                                  Program flow.        (line  76)
+* norm:                                  Change data.         (line  82)
+* normsl:                                Change data.         (line  75)
+* once:                                  Program flow.        (line  80)
+* origin:                                Axis settings.       (line  55)
+* palette:                               Other settings.      (line  16)
+* pde:                                   Make another data.   (line  90)
+* perspective:                           Transformation matrix.
+                                                              (line  61)
+* Pipe <1>:                              Pipe 3D sample.      (line   6)
+* Pipe:                                  Pipe sample.         (line   6)
+* pipe:                                  Vector fields.       (line 124)
+* Plot <1>:                              Log-log sample.      (line   6)
+* Plot <2>:                              Semi-log sample.     (line   6)
+* Plot <3>:                              Legend sample.       (line   6)
+* Plot <4>:                              1D plot sample.      (line   6)
+* Plot:                                  Plot sample.         (line   6)
+* plot:                                  1D plotting.         (line  32)
+* plotfactor:                            Zooming.             (line  10)
+* put:                                   Data filling.        (line  30)
+* Puts <1>:                              Font faces sample.   (line   6)
+* Puts <2>:                              TeX parsing sample.  (line   6)
+* Puts:                                  Text styles sample.  (line   6)
+* PutsFit:                               Fitting sample.      (line   6)
+* putsfit:                               Nonlinear fitting.   (line  47)
+* qo2d:                                  Make another data.   (line 122)
+* quadplot:                              Other plotting.      (line  79)
+* Radar:                                 Radar sample.        (line   6)
+* radar:                                 1D plotting.         (line  40)
+* ranges:                                Axis settings.       (line  14)
+* ray:                                   Make another data.   (line 110)
+* read:                                  File I/O.            (line   6)
+* readall:                               File I/O.            (line  19)
+* readhdf:                               File I/O.            (line  34)
+* readmat:                               File I/O.            (line  14)
+* rearrange:                             Rearrange data.      (line   6)
+* rect:                                  Primitives drawing.  (line  61)
+* Region <1>:                            Region gradient sample.
+                                                              (line   6)
+* Region:                                Region sample.       (line   6)
+* region:                                1D plotting.         (line  71)
+* resize:                                Make another data.   (line  53)
+* return:                                Program flow.        (line  44)
+* roll:                                  Change data.         (line  52)
+* rotate:                                Transformation matrix.
+                                                              (line  49)
+* rotatetext:                            Other settings.      (line  13)
+* save:                                  File I/O.            (line  31)
+* savehdf:                               File I/O.            (line  37)
+* setsize:                               Export to file.      (line  12)
+* SetTicks <1>:                          Log-log sample.      (line   6)
+* SetTicks:                              Semi-log sample.     (line   6)
+* SetTicksVal:                           Manual ticks sample. (line   6)
+* Sew:                                   Sew sample.          (line   6)
+* sew:                                   Change data.         (line  61)
+* sinfft:                                Change data.         (line  37)
+* smooth:                                Change data.         (line  64)
+* Sphere:                                Molecules drawing sample.
+                                                              (line   6)
+* sphere:                                Primitives drawing.  (line  40)
+* squeeze:                               Rearrange data.      (line  27)
+* Stem:                                  Stem sample.         (line   6)
+* stem:                                  1D plotting.         (line  80)
+* Step:                                  Step sample.         (line   6)
+* step:                                  1D plotting.         (line 128)
+* STFA:                                  STFA sample.         (line   6)
+* stfa:                                  Dual plotting.       (line  85)
+* stfad:                                 Make another data.   (line  83)
+* StickPlot:                             StickPlot sample.    (line   6)
+* stickplot:                             Transformation matrix.
+                                                              (line  43)
+* stop:                                  Program flow.        (line  83)
+* subdata:                               Make another data.   (line  57)
+* SubPlot <1>:                           Adding mesh sample.  (line   6)
+* SubPlot:                               1D plot sample.      (line   6)
+* subplot:                               Transformation matrix.
+                                                              (line  14)
+* subto:                                 Operators.           (line  24)
+* sum:                                   Make another data.   (line  41)
+* Surf <1>:                              Mirrored surface sample.
+                                                              (line   6)
+* Surf <2>:                              Several light sample.
+                                                              (line   6)
+* Surf <3>:                              Surf & Cont sample.  (line   6)
+* Surf <4>:                              Adding mesh sample.  (line   6)
+* Surf <5>:                              3D plot sample.      (line   6)
+* Surf <6>:                              2D plot sample.      (line   6)
+* Surf <7>:                              Sharp colors sample. (line   6)
+* Surf <8>:                              Surface in fog sample.
+                                                              (line   6)
+* Surf <9>:                              Transparent surface sample.
+                                                              (line   6)
+* Surf:                                  Surf sample.         (line   6)
+* surf:                                  2D plotting.         (line  31)
+* Surf3 <1>:                             Coloring by coordinates sample.
+                                                              (line   6)
+* Surf3 <2>:                             CutOff sample.       (line   6)
+* Surf3 <3>:                             Isocaps sample.      (line   6)
+* Surf3 <4>:                             CutMinMax sample.    (line   6)
+* Surf3:                                 Surf3 sample.        (line   6)
+* surf3:                                 3D plotting.         (line  27)
+* Surf3A:                                Surf3A sample.       (line   6)
+* surf3a:                                Dual plotting.       (line  52)
+* Surf3C:                                Surf3C sample.       (line   6)
+* surf3c:                                Dual plotting.       (line  30)
+* SurfA:                                 SurfA sample.        (line   6)
+* surfa:                                 Dual plotting.       (line  45)
+* SurfC:                                 SurfC sample.        (line   6)
+* surfc:                                 Dual plotting.       (line  23)
+* swap:                                  Change data.         (line  49)
+* Tens:                                  Tens sample.         (line   6)
+* tens:                                  1D plotting.         (line  52)
+* Ternary:                               Ternary plot sample. (line   6)
+* ternary:                               Axis settings.       (line  59)
+* Text:                                  Text sample.         (line   6)
+* text:                                  Text printing.       (line  14)
+* TextMark:                              TextMark sample.     (line   6)
+* textmark:                              1D plotting.         (line 161)
+* Textual formulas:                      Textual formulas.    (line   6)
+* ticklen:                               Default sizes.       (line  26)
+* tickstl:                               Default sizes.       (line  31)
+* Tile:                                  Tile sample.         (line   6)
+* tile:                                  2D plotting.         (line  68)
+* TileS:                                 TileS sample.        (line   6)
+* tiles:                                 Dual plotting.       (line  67)
+* title:                                 Text printing.       (line  39)
+* tlabel:                                Axis and Colorbar.   (line  50)
+* Torus:                                 Torus sample.        (line   6)
+* torus:                                 1D plotting.         (line 135)
+* trace:                                 Make another data.   (line  64)
+* Traj:                                  Traj sample.         (line   6)
+* traj:                                  Vector fields.       (line  27)
+* transform:                             Make another data.   (line  70)
+* transforma:                            Make another data.   (line  79)
+* transparent:                           Transparency.        (line  23)
+* transpose:                             Rearrange data.      (line  22)
+* TranspType <1>:                        Lamp-like transparency.
+                                                              (line   6)
+* TranspType <2>:                        Glass-like transparency.
+                                                              (line   6)
+* TranspType:                            Normal transparency. (line   6)
+* transptype:                            Transparency.        (line  26)
+* tricont:                               Other plotting.      (line  68)
+* triplot:                               Other plotting.      (line  57)
+* Tube:                                  Tube sample.         (line   6)
+* tube:                                  1D plotting.         (line 143)
+* var:                                   Data create.         (line  11)
+* Vect <1>:                              Vect 3D sample.      (line   6)
+* Vect:                                  Vect sample.         (line   6)
+* vect:                                  Vector fields.       (line  34)
+* VectC <1>:                             VectC 3D sample.     (line   6)
+* VectC:                                 VectC sample.        (line   6)
+* vectc:                                 Vector fields.       (line  51)
+* VectL <1>:                             VectL 3D sample.     (line   6)
+* VectL:                                 VectL sample.        (line   6)
+* vectl:                                 Vector fields.       (line  66)
+* write:                                 Export to file.      (line   6)
+* xlabel:                                Axis and Colorbar.   (line  47)
+* xrange <1>:                            Command options.     (line  34)
+* xrange:                                Axis settings.       (line  67)
+* xtick:                                 Axis settings.       (line  84)
+* ylabel:                                Axis and Colorbar.   (line  48)
+* yrange <1>:                            Command options.     (line  38)
+* yrange:                                Axis settings.       (line  68)
+* ytick:                                 Axis settings.       (line  85)
+* zlabel:                                Axis and Colorbar.   (line  49)
+* zoom:                                  Zooming.             (line  16)
+* zrange <1>:                            Command options.     (line  42)
+* zrange:                                Axis settings.       (line  69)
+* ztick:                                 Axis settings.       (line  86)
+
+
+
+Tag Table:
+Node: Top943
+Node: MGL interface2115
+Node: General concepts7765
+Node: Coordinate axes10480
+Node: Line styles13288
+Node: Color scheme16645
+Node: Font styles19649
+Node: Textual formulas24384
+Node: Graphics setup28148
+Node: Transparency28552
+Ref: alpha29167
+Ref: alphadef29411
+Ref: transparent29552
+Ref: transptype29649
+Node: Lighting30245
+Ref: light30755
+Ref: ambient31319
+Node: Fog31457
+Ref: fog31571
+Node: Default sizes31983
+Ref: barwidth32352
+Ref: marksize32479
+Ref: arrowsize32558
+Ref: linewidth32660
+Ref: ticklen32870
+Ref: tickstl33075
+Node: Zooming33314
+Ref: plotfactor33611
+Ref: zoom33916
+Node: Cutting34300
+Ref: cut34631
+Node: Other settings35467
+Ref: font35591
+Ref: rotatetext35934
+Ref: palette36041
+Ref: meshnum36246
+Ref: axialdir36544
+Node: Axis settings36683
+Ref: axis37163
+Ref: ranges37241
+Ref: caxis39397
+Ref: origin39497
+Ref: ternary39662
+Ref: xrange40101
+Ref: yrange40148
+Ref: zrange40195
+Ref: crange40242
+Ref: xtick40794
+Ref: ytick40839
+Ref: ztick40884
+Ref: ctick40929
+Ref: adjust41992
+Node: Transformation matrix42176
+Ref: subplot42818
+Ref: inplot43547
+Ref: columnplot44093
+Ref: stickplot44351
+Ref: rotate44619
+Ref: aspect44881
+Ref: perspective45111
+Node: Export to file45284
+Ref: write45444
+Ref: setsize45743
+Node: Primitives drawing45993
+Ref: clf46242
+Ref: ball46363
+Ref: line46533
+Ref: curve46763
+Ref: facex47111
+Ref: facey47173
+Ref: facez47235
+Ref: sphere47705
+Ref: drop47889
+Ref: cone48399
+Ref: rect48702
+Node: Text printing49061
+Ref: text49662
+Ref: title51030
+Ref: fgets51218
+Node: Axis and Colorbar51505
+Ref: colorbar52220
+Ref: grid53237
+Ref: box53493
+Ref: xlabel53685
+Ref: ylabel53744
+Ref: zlabel53803
+Ref: tlabel53862
+Node: Legend54418
+Ref: legend55311
+Ref: addlegend55905
+Ref: clearlegend56131
+Ref: legendbox56195
+Ref: legendmarks56319
+Node: 1D plotting56426
+Ref: plot58146
+Ref: radar58554
+Ref: tens59291
+Ref: area59698
+Ref: region60291
+Ref: stem60805
+Ref: bars61181
+Ref: barh61923
+Ref: chart62713
+Ref: step63544
+Ref: torus63887
+Ref: tube64303
+Ref: mark64813
+Ref: textmark65198
+Ref: error65715
+Ref: boxplot66058
+Node: 2D plotting66606
+Ref: surf68277
+Ref: mesh68615
+Ref: fall68941
+Ref: belt69369
+Ref: boxs69792
+Ref: tile70105
+Ref: dens70486
+Ref: cont70859
+Ref: contf71687
+Ref: contd72428
+Ref: axial73230
+Ref: grad74127
+Ref: grid274768
+Node: 3D plotting75061
+Ref: surf376420
+Ref: dens377107
+Ref: densa77614
+Ref: cont377799
+Ref: conta78757
+Ref: contf378958
+Ref: contfa79821
+Ref: grid380030
+Ref: grida80465
+Ref: cloud80642
+Ref: beam81237
+Node: Dual plotting81914
+Ref: surfc83011
+Ref: surf3c83340
+Ref: surfa84128
+Ref: surf3a84478
+Ref: tiles85273
+Ref: map85668
+Ref: stfa86242
+Node: Vector fields86719
+Ref: traj88053
+Ref: vect88425
+Ref: vectc89338
+Ref: vectl90172
+Ref: dew91008
+Ref: flow91525
+Ref: pipe93421
+Node: Other plotting94575
+Ref: densz95293
+Ref: densy95293
+Ref: densx95293
+Ref: contz95817
+Ref: conty95817
+Ref: contx95817
+Ref: contfz96360
+Ref: contfy96360
+Ref: contfx96360
+Ref: dots96841
+Ref: crust97170
+Ref: triplot97472
+Ref: tricont98114
+Ref: quadplot98712
+Ref: fplot99308
+Ref: fsurf99990
+Node: Nonlinear fitting100702
+Ref: fits102255
+Ref: fit102684
+Ref: putsfit103080
+Node: Data create103348
+Ref: new103491
+Ref: var103707
+Ref: list103936
+Ref: copy104972
+Ref: idset105370
+Ref: info105524
+Node: Data filling105794
+Ref: fill105936
+Ref: modify106588
+Ref: put107094
+Node: Rearrange data107886
+Ref: rearrange108029
+Ref: extend108383
+Ref: transpose108874
+Ref: squeeze109113
+Ref: crop109400
+Ref: delete109547
+Ref: insert109783
+Node: File I/O109896
+Ref: read110032
+Ref: readmat110354
+Ref: readall110552
+Ref: save111179
+Ref: readhdf111274
+Ref: savehdf111384
+Ref: import111494
+Ref: export111724
+Node: Make another data112076
+Ref: combine112227
+Ref: evaluate112363
+Ref: hist112922
+Ref: momentum113592
+Ref: sum113940
+Ref: max114068
+Ref: min114197
+Ref: resize114324
+Ref: subdata114457
+Ref: trace114834
+Ref: transform115108
+Ref: transforma115628
+Ref: stfad115780
+Ref: pde116137
+Ref: ray117394
+Ref: qo2d118114
+Ref: jacobian118940
+Node: Change data119450
+Ref: cumsum119867
+Ref: integrate119976
+Ref: diff120109
+Ref: diff2120932
+Ref: sinfft121051
+Ref: cosfft121204
+Ref: hankel121362
+Ref: swap121517
+Ref: roll121654
+Ref: mirror121803
+Ref: sew121952
+Ref: smooth122124
+Ref: envelop122418
+Ref: normsl122565
+Ref: norm122932
+Node: Operators123174
+Ref: multo123305
+Ref: divto123476
+Ref: addto123641
+Ref: subto123772
+Node: Program flow123913
+Ref: chdir124153
+Ref: define124228
+Ref: defchr124627
+Ref: defnum124786
+Ref: defpal124942
+Ref: call125108
+Ref: func125310
+Ref: return125618
+Ref: if125698
+Ref: elseif125886
+Ref: else126171
+Ref: endif126282
+Ref: for126345
+Ref: next126652
+Ref: once126703
+Ref: stop126872
+Node: Command options126922
+Node: Suffixes129365
+Node: Utilities130790
+Node: Examples132453
+Node: Basic usage133047
+Node: Advanced usage134763
+Node: Subplots135216
+Node: Axis and grids136637
+Node: Curvilinear coordinates139075
+Node: Text printing example140182
+Node: Data handling141751
+Node: Array creation141938
+Node: Data changing143768
+Node: Data plotting146177
+Node: Plots for 1D data147263
+Node: Plots for 2D data149680
+Node: Plots for 3D data152832
+Node: Surface transparency154584
+Node: Hints156637
+Node: ``Compound'' graphics157459
+Node: Two axes in one plot159199
+Node: Titles for the plot160178
+Node: Changing of the color range160924
+Node: Management of a point cutting161606
+Node: Vector field visualization162699
+Node: Several light sources163336
+Node: CutMin and CutMax features163965
+Node: Mapping visualization165008
+Node: Log-scaled plot166174
+Node: Nonlinear fitting hints166763
+Node: PDE solving hints168226
+Node: Stereo image173434
+Node: Samples173897
+Node: 1D plotting samples174379
+Node: Plot sample174977
+Node: Radar sample175271
+Node: Tens sample175519
+Node: Area sample175815
+Node: Area gradient sample176148
+Node: Bars sample176536
+Node: Bars 2 colors sample176808
+Node: Bars above sample177106
+Node: Bars fall sample177398
+Node: Barh sample177679
+Node: Step sample177940
+Node: Stem sample178255
+Node: Region sample178587
+Node: Region gradient sample178915
+Node: Error sample179265
+Node: BoxPlot sample179750
+Node: Mark sample180008
+Node: TextMark sample180380
+Node: Tube sample180769
+Node: Text sample181115
+Node: Torus sample181545
+Node: Chart sample181855
+Node: Pie chart sample182113
+Node: Ring chart sample182447
+Node: 2D plotting samples182763
+Node: Surf sample183217
+Node: Transparent surface sample183498
+Node: Surface in fog sample183854
+Node: Sharp colors sample184203
+Node: Mesh sample184536
+Node: Fall sample184821
+Node: Belt sample185098
+Node: Tile sample185384
+Node: Boxs sample185670
+Node: Dens sample185969
+Node: Cont sample186244
+Node: ContF sample186524
+Node: ContD sample186818
+Node: Axial sample187117
+Node: Grad sample187420
+Node: 3D plotting samples187683
+Node: Surf3 sample188079
+Node: Cloud sample188370
+Node: CloudP sample188682
+Node: Dens3 sample188887
+Node: Cont3 sample189209
+Node: ContF3 sample189504
+Node: Cont projection sample189822
+Node: Dens projection sample190229
+Node: CutMinMax sample190639
+Node: Isocaps sample190997
+Node: CutOff sample191408
+Node: Dual plotting samples191761
+Node: SurfC sample192285
+Node: SurfA sample192634
+Node: TileS sample193013
+Node: Map sample193358
+Node: Traj sample193806
+Node: Vect sample194238
+Node: VectL sample194580
+Node: VectC sample194927
+Node: Flow sample195274
+Node: Pipe sample195616
+Node: Dew sample195967
+Node: Surf3C sample196316
+Node: Surf3A sample196686
+Node: Vect 3D sample197060
+Node: VectL 3D sample197591
+Node: VectC 3D sample198128
+Node: Flow 3D sample198665
+Node: Pipe 3D sample199197
+Node: Crust sample199735
+Node: Dots sample200000
+Node: Basic features200229
+Node: 1D plot sample200688
+Node: 2D plot sample201321
+Node: 3D plot sample202117
+Node: Line styles sample202674
+Node: Arrow styles sample202898
+Node: Text styles sample203128
+Node: TeX parsing sample203722
+Node: Font faces sample204019
+Node: Colors sample204236
+Node: Color schemes sample206436
+Node: Normal transparency207943
+Node: Glass-like transparency208445
+Node: Lamp-like transparency208957
+Node: Additional features209439
+Node: Legend sample209890
+Node: Adding mesh sample210291
+Node: Surf & Cont sample210788
+Node: Flow & Dens sample211127
+Node: Several light sample211567
+Node: Mirrored surface sample211967
+Node: Cont with labels sample212500
+Node: Ternary plot sample212831
+Node: Coloring by coordinates sample213424
+Node: Drops sample213791
+Node: Molecules drawing sample214379
+Node: Advanced features215608
+Node: Curvelinear coorinates sample216060
+Node: 2-axes sample216791
+Node: Semi-log sample217215
+Node: Log-log sample217619
+Node: Fitting sample218027
+Node: Envelop sample218521
+Node: Sew sample218795
+Node: STFA sample219094
+Node: PDE sample219513
+Node: Beam tracing sample220031
+Node: Parser sample220629
+Node: Manual ticks sample220795
+Node: ColumnPlot sample221139
+Node: StickPlot sample221443
+Node: Stereo image sample221997
+Node: Copying This Manual222350
+Node: Index244765
+
+End Tag Table
diff --git a/debian/tmp/usr/share/info/mgl_ru.info b/debian/tmp/usr/share/info/mgl_ru.info
new file mode 100644
index 0000000..4ea0a8b
--- /dev/null
+++ b/debian/tmp/usr/share/info/mgl_ru.info
@@ -0,0 +1,442 @@
+This is mgl_ru.info, produced by makeinfo version 4.13 from mgl_ru.texi.
+
+Это документация для MathGL (версии 1.11) - библиотеки классов и
+функций для построения научной графики. Пожалуйста сообщайте о любых
+ошибках в этом руководстве на <mathgl.abalakin at gmail.org>.
+
+   Copyright (C) 2009 Алексей Балакин.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with the Front-Cover Texts
+     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+     below.  A copy of the license is included in the section entitled
+     "GNU Free Documentation License."
+
+     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+     and modify this GNU manual.  Buying copies from the FSF supports
+     it in developing GNU and promoting software freedom."
+
+
+Indirect:
+mgl_ru.info-1: 1101
+mgl_ru.info-2: 297890
+
+Tag Table:
+(Indirect)
+Node: Top1101
+Node: MGL interface2380
+Node: General concepts11361
+Node: Coordinate axes16623
+Node: Line styles21804
+Node: Color scheme26412
+Node: Font styles31810
+Node: Textual formulas38102
+Node: Graphics setup43090
+Node: Transparency43670
+Ref: alpha44625
+Ref: alphadef44990
+Ref: transparent45197
+Ref: transptype45346
+Node: Lighting46234
+Ref: light47075
+Ref: ambient47681
+Node: Fog47869
+Ref: fog47997
+Node: Default sizes48601
+Ref: barwidth49163
+Ref: marksize49358
+Ref: arrowsize49507
+Ref: linewidth49717
+Ref: ticklen50221
+Ref: tickstl50556
+Node: Zooming50960
+Ref: plotfactor51453
+Ref: zoom51969
+Node: Cutting52677
+Ref: cut53191
+Node: Other settings54494
+Ref: font54652
+Ref: rotatetext55021
+Ref: palette55246
+Ref: meshnum56047
+Ref: axialdir56427
+Node: Axis settings56587
+Ref: axis57332
+Ref: ranges57424
+Ref: caxis60482
+Ref: origin60832
+Ref: ternary61164
+Ref: xrange61987
+Ref: yrange62041
+Ref: zrange62095
+Ref: crange62149
+Ref: xtick62955
+Ref: ytick63007
+Ref: ztick63059
+Ref: ctick63111
+Ref: adjust64617
+Node: Transformation matrix64935
+Ref: subplot66052
+Ref: inplot67344
+Ref: columnplot68127
+Ref: stickplot68677
+Ref: rotate69194
+Ref: aspect69585
+Ref: perspective69855
+Node: Export to file70113
+Ref: write70297
+Ref: setsize70784
+Node: Primitives drawing71236
+Ref: clf71600
+Ref: ball71757
+Ref: line71955
+Ref: curve72412
+Ref: facex72951
+Ref: facey73020
+Ref: facez73089
+Ref: sphere74039
+Ref: drop74255
+Ref: cone74970
+Ref: rect75364
+Node: Text printing76101
+Ref: text78424
+Ref: title79882
+Ref: fgets80146
+Node: Axis and Colorbar80424
+Ref: colorbar81472
+Ref: grid83128
+Ref: box83530
+Ref: xlabel83847
+Ref: ylabel83913
+Ref: zlabel83979
+Ref: tlabel84045
+Node: Legend84656
+Ref: legend86061
+Ref: addlegend86905
+Ref: clearlegend87192
+Ref: legendbox87314
+Ref: legendmarks87555
+Node: 1D plotting87733
+Ref: plot90303
+Ref: radar90802
+Ref: tens91684
+Ref: area92228
+Ref: region93317
+Ref: stem94157
+Ref: bars94658
+Ref: barh95926
+Ref: chart97256
+Ref: step98507
+Ref: torus98951
+Ref: tube99533
+Ref: mark100182
+Ref: textmark100896
+Ref: error101606
+Ref: boxplot102219
+Node: 2D plotting103032
+Ref: surf105617
+Ref: mesh106164
+Ref: fall106600
+Ref: belt107371
+Ref: boxs107972
+Ref: tile108416
+Ref: dens108939
+Ref: cont109519
+Ref: contf110714
+Ref: contd111756
+Ref: axial112934
+Ref: grad114168
+Ref: grid2114924
+Node: 3D plotting115286
+Ref: surf3117454
+Ref: dens3118395
+Ref: densa119087
+Ref: cont3119312
+Ref: conta120605
+Ref: contf3120836
+Ref: contfa122000
+Ref: grid3122278
+Ref: grida122762
+Ref: cloud122964
+Ref: beam123826
+Node: Dual plotting124973
+Ref: surfc126772
+Ref: surf3c127338
+Ref: surfa128360
+Ref: surf3a128940
+Ref: tiles129983
+Ref: map130606
+Ref: stfa131496
+Node: Vector fields132277
+Ref: traj133739
+Ref: vect134572
+Ref: vectc136132
+Ref: vectl136875
+Ref: dew137618
+Ref: flow138365
+Ref: pipe140895
+Node: Other plotting142621
+Ref: densx143982
+Ref: densy143982
+Ref: densz143982
+Ref: contz144661
+Ref: conty144661
+Ref: contx144661
+Ref: contfz145350
+Ref: contfy145350
+Ref: contfx145350
+Ref: dots145961
+Ref: crust146460
+Ref: triplot146954
+Ref: tricont147939
+Ref: quadplot148948
+Ref: fplot149900
+Ref: fsurf150699
+Node: Nonlinear fitting151515
+Ref: fits153925
+Ref: fit154464
+Ref: putsfit154984
+Node: Data create155381
+Ref: new155560
+Ref: var155896
+Ref: list156192
+Ref: copy157456
+Ref: idset157938
+Ref: info158222
+Node: Data filling158675
+Ref: fill158859
+Ref: modify159811
+Ref: put160653
+Node: Rearrange data161807
+Ref: rearrange162018
+Ref: extend162505
+Ref: transpose163258
+Ref: squeeze163518
+Ref: crop163937
+Ref: delete164149
+Ref: insert164558
+Node: File I/O164765
+Ref: read164977
+Ref: readmat165704
+Ref: readall166030
+Ref: save167041
+Ref: readhdf167165
+Ref: savehdf167311
+Ref: import167463
+Ref: export167791
+Node: Make another data168367
+Ref: combine168564
+Ref: evaluate168792
+Ref: hist169569
+Ref: momentum170790
+Ref: sum171301
+Ref: max171503
+Ref: min171789
+Ref: resize171987
+Ref: subdata172246
+Ref: trace172783
+Ref: transform173219
+Ref: transforma174151
+Ref: stfad174366
+Ref: pde174868
+Ref: ray176783
+Ref: qo2d177759
+Ref: jacobian179063
+Node: Change data179786
+Ref: cumsum180405
+Ref: integrate180551
+Ref: diff180777
+Ref: diff2182016
+Ref: sinfft182234
+Ref: cosfft182468
+Ref: hankel182707
+Ref: swap182947
+Ref: roll183201
+Ref: mirror183432
+Ref: sew183634
+Ref: smooth183944
+Ref: envelop184419
+Ref: normsl184664
+Ref: norm185185
+Node: Operators185523
+Ref: multo185672
+Ref: divto185893
+Ref: addto186102
+Ref: subto186333
+Node: Program flow186560
+Ref: chdir186978
+Ref: define187060
+Ref: defchr187790
+Ref: defnum188013
+Ref: defpal188239
+Ref: call188502
+Ref: func188892
+Ref: return189439
+Ref: if189533
+Ref: elseif189868
+Ref: else190370
+Ref: endif190557
+Ref: for190669
+Ref: next191253
+Ref: once191339
+Ref: stop191639
+Node: Command options191739
+Node: Suffixes195251
+Node: Utilities197678
+Node: Examples200113
+Node: Basic usage200707
+Node: Advanced usage202423
+Node: Subplots202876
+Node: Axis and grids204297
+Node: Curvilinear coordinates206735
+Node: Text printing example207842
+Node: Data handling209411
+Node: Array creation209598
+Node: Data changing211428
+Node: Data plotting213837
+Node: Plots for 1D data214923
+Node: Plots for 2D data217344
+Node: Plots for 3D data220481
+Node: Surface transparency222233
+Node: Hints224286
+Node: ``Compound'' graphics225108
+Node: Two axes in one plot226848
+Node: Titles for the plot227827
+Node: Changing of the color range228573
+Node: Management of a point cutting229255
+Node: Vector field visualization230348
+Node: Several light sources230985
+Node: CutMin and CutMax features231614
+Node: Mapping visualization232657
+Node: Log-scaled plot233823
+Node: Nonlinear fitting hints234412
+Node: PDE solving hints235875
+Node: Stereo image241083
+Node: Samples241546
+Node: 1D plotting samples242264
+Node: Plot sample242892
+Node: Radar sample243256
+Node: Tens sample243574
+Node: Area sample243940
+Node: Area gradient sample244343
+Node: Bars sample244843
+Node: Bars 2 colors sample245185
+Node: Bars above sample245565
+Node: Bars fall sample245977
+Node: Barh sample246358
+Node: Step sample246689
+Node: Stem sample247074
+Node: Region sample247476
+Node: Region gradient sample247874
+Node: Error sample248362
+Node: BoxPlot sample248917
+Node: Mark sample249245
+Node: TextMark sample249687
+Node: Tube sample250146
+Node: Text sample250562
+Node: Torus sample251062
+Node: Chart sample251442
+Node: Pie chart sample251770
+Node: Ring chart sample252174
+Node: 2D plotting samples252560
+Node: Surf sample253044
+Node: Transparent surface sample253395
+Node: Surface in fog sample253821
+Node: Sharp colors sample254240
+Node: Mesh sample254643
+Node: Fall sample254998
+Node: Belt sample255345
+Node: Tile sample255701
+Node: Boxs sample256057
+Node: Dens sample256426
+Node: Cont sample256771
+Node: ContF sample257121
+Node: ContD sample257485
+Node: Axial sample257854
+Node: Grad sample258227
+Node: 3D plotting samples258560
+Node: Surf3 sample258986
+Node: Cloud sample259347
+Node: CloudP sample259729
+Node: Dens3 sample260004
+Node: Cont3 sample260396
+Node: ContF3 sample260761
+Node: Cont projection sample261149
+Node: Dens projection sample261626
+Node: CutMinMax sample262106
+Node: Isocaps sample262534
+Node: CutOff sample263015
+Node: Dual plotting samples263438
+Node: SurfC sample264046
+Node: SurfA sample264465
+Node: TileS sample264914
+Node: Map sample265329
+Node: Traj sample265847
+Node: Vect sample266349
+Node: VectL sample266761
+Node: VectC sample267178
+Node: Flow sample267595
+Node: Pipe sample268007
+Node: Dew sample268428
+Node: Surf3C sample268847
+Node: Surf3A sample269287
+Node: Vect 3D sample269731
+Node: VectL 3D sample270332
+Node: VectC 3D sample270939
+Node: Flow 3D sample271546
+Node: Pipe 3D sample272148
+Node: Crust sample272756
+Node: Dots sample273091
+Node: Basic features273390
+Node: 1D plot sample273895
+Node: 2D plot sample274590
+Node: 3D plot sample275448
+Node: Line styles sample276067
+Node: Arrow styles sample276367
+Node: Text styles sample276639
+Node: TeX parsing sample277273
+Node: Font faces sample277596
+Node: Colors sample277875
+Node: Color schemes sample280103
+Node: Normal transparency281650
+Node: Glass-like transparency282192
+Node: Lamp-like transparency282752
+Node: Additional features283276
+Node: Legend sample283784
+Node: Adding mesh sample284255
+Node: Surf & Cont sample284774
+Node: Flow & Dens sample285183
+Node: Several light sample285693
+Node: Mirrored surface sample286153
+Node: Cont with labels sample286722
+Node: Ternary plot sample287135
+Node: Coloring by coordinates sample287798
+Node: Drops sample288219
+Node: Molecules drawing sample288877
+Node: Advanced features290124
+Node: Curvelinear coorinates sample290636
+Node: 2-axes sample291403
+Node: Semi-log sample291917
+Node: Log-log sample292391
+Node: Fitting sample292869
+Node: Envelop sample293433
+Node: Sew sample293777
+Node: STFA sample294146
+Node: PDE sample294635
+Node: Beam tracing sample295223
+Node: Parser sample295891
+Node: Manual ticks sample296127
+Node: ColumnPlot sample296509
+Node: StickPlot sample296883
+Node: Stereo image sample297479
+Node: Copying This Manual297890
+Node: Index320305
+
+End Tag Table
+
+
+Local Variables:
+coding: utf-8
+End:
diff --git a/debian/tmp/usr/share/info/mgl_ru.info-1 b/debian/tmp/usr/share/info/mgl_ru.info-1
new file mode 100644
index 0000000..5c37732
--- /dev/null
+++ b/debian/tmp/usr/share/info/mgl_ru.info-1
@@ -0,0 +1,6072 @@
+This is mgl_ru.info, produced by makeinfo version 4.13 from mgl_ru.texi.
+
+Это документация для MathGL (версии 1.11) - библиотеки классов и
+функций для построения научной графики. Пожалуйста сообщайте о любых
+ошибках в этом руководстве на <mathgl.abalakin at gmail.org>.
+
+   Copyright (C) 2009 Алексей Балакин.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with the Front-Cover Texts
+     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+     below.  A copy of the license is included in the section entitled
+     "GNU Free Documentation License."
+
+     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+     and modify this GNU manual.  Buying copies from the FSF supports
+     it in developing GNU and promoting software freedom."
+
+
+File: mgl_ru.info,  Node: Top,  Next: MGL interface,  Up: (dir)
+
+Язык MGL
+************
+
+Это документация для языка MGL (версии 1.11). Пожалуйста сообщайте о
+любых ошибках в этом руководстве на <mathgl.abalakin at gmail.org>.
+Дополнительную информацию о MGL и MathGL можно найти на домашней
+странице проекта `http://mathgl.sourceforge.net/'.
+
+   Copyright (C) 2010 Алексей Балакин.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with the Front-Cover Texts
+     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+     below.  A copy of the license is included in the section entitled
+     "GNU Free Documentation License."
+
+     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+     and modify this GNU manual.  Buying copies from the FSF supports
+     it in developing GNU and promoting software freedom."
+
+* Menu:
+
+* MGL interface::
+* Examples::
+* Samples::
+* Copying This Manual::
+* Index::
+
+
+File: mgl_ru.info,  Node: MGL interface,  Next: Examples,  Up: Top
+
+1 Язык MGL
+**************
+
+MathGL имеет встроенный скриптовый язык MGL для обработки и отображения
+данных. Скрипты MGL можно использовать как независимо (программами
+UDAV, mgl2png, mgl2eps, mgl2svg и пр., *note Utilities::) так и
+вызовами библиотеки.
+
+   Язык MGL достаточно простой. Каждая строка - отдельная команда.
+Первое слово - имя команды, а все остальные ее аргументы. Команда может
+иметь до 1000 аргументов (по крайней мере сейчас). Слова разделяются
+одно от другого пробелом или символом табуляции. Различий между верхним
+и нижним индексом нет, т.е. переменные A и A идентичны. Символ `#'
+начинает комментарий - все символы после него игнорируются до конца
+строки. Исключением является случай, когда `#' входит в строку. Опции
+команды указываются после символа `;' (*note Command options::). Символ
+`:' начинает новую команду (подобно переводу строки) если он расположен
+не внутри скобок или строки.
+
+   Если строка содержит ссылки на внешние параметры (`$0', `$1' ...
+`$9') или макроопределения (`$a', `$b' ... `$z'), то текущие значения
+параметров/макроопределений подставляются в строку вместо ссылки до
+выполнением команды. Это позволяет использовать один и тот же скрипт
+при различных входных параметрах командной строки или вводить
+макроопределения по ходу исполнения команд скрипта.
+
+   Аргументы команды могут быть строками, переменными или числами.
+   * Строка - произвольный набор символов между метками `''.
+
+   * Обычно переменная имеет имя, состоящее из букв и чисел (должно
+     начинаться с буквы и не быть длиннее 64 символов). В качестве
+     переменной можно использовать временные массивы, включающие в себя:
+        * срезы ("подмассивы") массивов данных (подобно команде *note
+          subdata::). Например, `a(1)' или `a(1,:)' или `a(1,:,:)' -
+          вторая строка массива A, `a(:,2)' или `a(:,2,:)' - третий
+          столбец, `a(:,:,0)' - первый срез и т.д. Также можно выделить
+          часть массива с m-го по n-ый элемент `a(m:n,:,:)' или просто
+          `a(m:n)'.
+
+        * произвольные комбинации столбцов данных (например,
+          `a('n*w^2/exp(t)')'), если столбцы данных были именованы
+          командой *note idset:: или в файле данных (в строке
+          начинающейся с `##').
+
+        * произвольное выражение из существующих переменных и констант.
+          Например, `sqrt(dat(:,5)+1)' даст временный массив данных с
+          элементами равными `tmp[i,j] = sqrt(dat[i,5,j]+1)'.
+
+        * массивы с элементами заданными в квадратных скобках [],
+          разделенные `,'. При этом внутри выражения не должно быть
+          пробелов! Например, `[1,2,3]' даст временный массив из 3
+          элементов {1, 2, 3}; `[[11,12],[21,22]]' даст матрицу 2*2 и
+          т.д. Элементами такой конструкции могут быть и массивы если
+          их размерности одинаковые, например `[v1,v2,...,vn]'.
+
+        * результат команд построения новых данных (*note Make another
+          data::), если они заключены в фигурные скобки {}. Например,
+          `{sum dat 'x'}' даст временный массив, который есть результат
+          суммирования DAT вдоль 'x'. Это такой же массив как и TMP,
+          полученный командой `sum tmp dat 'x''. При этом можно
+          использовать вложенные конструкции, например `{sum {max dat
+          'z'} 'x'}'.
+     Временные массивы не могут стоять в качестве первого аргумента
+     команд, создающих массивы (например, `new', `read', `hist' и т.д.).
+
+   * К скалярным переменным, кроме собственно чисел, относятся:
+     специальные переменные `nan=#QNAN, pi=3.1415926..., on=1, off=0,
+     :=-1', переменные с суффиксами (*note Suffixes::), переменные
+     определенные командой *note define::. Также массивы размером 1x1x1
+     считаются скалярами (например, `pi/dat.nx').
+   Перед первым использованием все переменные должны быть определены с
+помощью команд, создающих массивы (*note new::, *note var::, *note
+list::, *note copy::, *note read::, *note hist::, *note sum:: и др.,
+*note Data create:: и *note Make another data::).
+
+   Команды могут иметь несколько наборов аргументов (например, `plot
+ydat' и `plot xdat ydat'). Все аргументы команды для выбранного набора
+должны быть указаны, однако часть из них могут иметь значения по
+умолчанию. Такие аргументы в описании команд будут помещены в
+квадратные скобки [], например `plot ydat ['stl'='' zval=nan]'. При
+этом запись `[arg1 arg2 arg3 ...]' подразумевает `[arg1 [arg2 [arg3
+...]]]', т.е. опускать можно только аргументы с конца, если вы согласны
+с их значениями по умолчанию. Например, `plot ydat '' 1' или `plot ydat
+''' правильно, а `plot ydat 1' не правильно (аргумент `'stl'' пропущен).
+
+   Все команды MGL можно разделить на несколько групп. В дальнейшем
+будет использованы следующие обозначения при описании команд: имя
+команды выделено жирным, строки заключены в одинарные кавычки ",
+переменные выделены курсивом, числа (скаляры) выделены моноширинным
+шрифтом. Необязательные аргументы будут помещены в квадратные скобки []
+и показаны их значения по умолчанию. Подробную информацию о цвете и
+стиле линий (*note Line styles::), цветовых схемах (*note Color
+scheme::), стиле текста и символах TeX (*note Font styles::), текстовых
+формулах (*note Textual formulas::) можно найти в соответствующих
+разделах.
+
+* Menu:
+
+
+* General concepts::
+* Graphics setup ::
+* Axis settings ::
+* Transformation matrix ::
+* Export to file ::
+* Primitives drawing ::
+* Text printing ::
+* Axis and Colorbar ::
+* Legend ::
+* 1D plotting ::
+* 2D plotting ::
+* 3D plotting ::
+* Dual plotting ::
+* Vector fields ::
+* Other plotting ::
+* Nonlinear fitting ::
+* Data create ::
+* Data filling ::
+* Rearrange data ::
+* File I/O ::
+* Make another data ::
+* Change data ::
+* Operators ::
+* Program flow ::
+* Command options ::
+* Suffixes::
+* Utilities::
+
+
+File: mgl_ru.info,  Node: General concepts,  Prev: Utilities,  Up: MGL interface
+
+1.1 Основные принципы
+=====================================
+
+Возможности библиотеки MathGL довольно богаты - число только основных
+типов графиков превышает 50 видов. Кроме того, есть функции для
+обработки данных, настройки вида графика и пр. и пр. Тем не менее, я
+старался придерживаться единого стиля в порядке аргументов функций и
+способе их "настройки". В основном все ниже сказанное относится к
+функциям рисования различных графиков.
+
+   Всего основных концепций (базисных идей) четыре:
+  1. *Все настройки графиков (стиль линий, цветовые схемы поверхностей,
+     стиль и цвет текста) задаются строками.* Это обеспечивает:
+     удобство для пользователя - короткую строку легче читать и здесь
+     тяжелее ошибиться, чем в большом списке параметров; переносимость
+     - строки выглядят одинаково на всех платформах и не надо
+     заботиться о типе и числе аргументов.
+
+  2. *Все функции имеют "упрощенный" и "продвинутый" варианты.* Сделано
+     опять из-за удобства. В "упрощенном" варианте для построения
+     графика нужны только один-два массив(а) данных, которые
+     автоматически равнораспределяются в заданном диапазоне осей
+     координат. В "продвинутой" версии можно не только указать явно
+     диапазон построения графика, но и задать его параметрически.
+     Последнее позволяет легко строить довольно сложные кривые и
+     поверхности. В обоих вариантах функций порядок аргументов
+     стандартен: сначала идут массивы данных, потом необязательный
+     строковый параметр стиля графика, а далее - второстепенные
+     необязательные параметры для более точной настройки графика.
+
+  3. *Все элементы рисунков векторные.* Изначально библиотека MathGL
+     была ориентированна на работу с научными данными, которые по своей
+     природе векторные (линии, грани, матрицы и т.д.). Поэтому
+     векторность используется во всех рисунках! Причем иногда даже в
+     ущерб производительности (например, при выводе шрифтов). Помимо
+     всего прочего, векторность позволяет легко масштабировать рисунок
+     - измените размер картинки в 2 раза, и рисунок пропорционально
+     растянется.
+
+  4. *Новые графики не удаляют уже нарисованное.* Этот, в чем-то
+     неожиданный, подход позволяет создавать огромное количество
+     "комбинированных" графиков. Например, поверхность с наложенными
+     линиями уровня строится двумя последовательными вызовами функций
+     рисования поверхности и линий уровня (в любом порядке). И
+     совершенно не надо писать специальную функцию (как в Matlab и
+     некоторых других программах) для рисования этого графика. Примеров
+     таких графиков можно привести множество (см. раздел *note Hints::
+     и сайт программы `http://mathgl.sf.net/index.html').
+
+   Кроме основных концепций я хотел бы остановиться на нескольких, как
+оказалось, нетривиальных моментах - способе указания положения графика,
+осей координат и строковых параметров линий, поверхностей, текста.
+
+* Menu:
+
+* Coordinate axes::
+* Line styles::
+* Color scheme::
+* Font styles::
+* Textual formulas::
+
+
+File: mgl_ru.info,  Node: Coordinate axes,  Next: Line styles,  Up: General concepts
+
+1.1.1 Оси координат
+-------------------------------
+
+Представление системы координат в MathGL состоит из двух частей.
+Вначале координаты нормируются в интервал MINxMAX (*note Axis
+settings::). Если флаг CUT установлен, то точки вне интервала
+отбрасываются, в противном случае, они проецируются на ограничивающий
+параллелепипед (*note Cutting::). Кроме того, отбрасываются точки
+внутри границ, определенных переменными CUTMINxCUTMAX и точки, для
+которых значение функции `CutOff'() не равно нулю. После этого формулы
+перехода в криволинейную систему координат `SetFunc()'применяются к
+каждой точке. Наконец, точка данных отображается с помощью одной из
+графических функций.
+
+   Величины MAX, MIN можно изменять вручную. Однако, после этого
+необходимо вызвать функцию `RecalcBorder()' для настройки графика.
+Более удобный и безопасный путь состоит в вызове функций `Axis(),
+SetRanges()' и др. В последнем случае функция `RecalcBorder()'
+вызывается автоматически. Размеры осей можно задавать и автоматически
+по минимальному и максимальному значениям массива данных. Для этого
+предназначены функции `XRange(), YRange(), ZRange()'. Второй не
+обязательный аргумент указывает, заменять ли новые значения диапазона
+изменения оси координат (по умолчанию) или только расширить уже
+существующий диапазон.
+
+   Точка пересечения осей координат задается переменной ORG и действует
+на последующие вызовы функций рисования осей координат и сетки. По
+умолчанию, если точка пересечения осей координат попадает вне диапазона
+осей координат, то она проецируется на границу области. Изменить такое
+поведение можно, задав AUTOORG=`false'. В случае, если одно из значений
+ORG равно NAN, то соответствующее значение будет выбрано автоматически.
+
+   Кроме привычных осей _x, y, z_ есть еще одна ось - цветовая шкала -
+ось _c_. Она используется при окрашивании поверхностей и задает границы
+изменения функции при окрашивании. При вызове `Axis()' ее границы
+автоматически устанавливаются равными Min.z и Max.z. Возможно и ручное
+изменение границ цветового интервала посредством вызова функции
+`CAxis()' или изменение границ по заданному массиву `CRange()'.
+Используйте `Colorbar()' для отображения цветовой шкалы.
+
+   Вид меток по осям определяется функцией `SetTicks()' (*note Axis
+settings::). Она имеет 3 аргумента: первый D задает шаг меток (если
+положительны) или их число (если отрицательны) или логарифмические
+метки (если равны нулю); второ NS задает число "подметок"; последний
+определяет начальную точку для меток (по умолчанию это точка
+пересечения осей). Функция SETTUNETICKS включает/выключает выделение
+общего множителя (большого или малого факторов в диапазоне) для меток
+осей координат. Наконец, если стандартный вид меток не устраивает
+пользователя, то их шаблон можно задать явно (можно использовать и ТеХ
+символы), воспользовавшись функциями  `SetXTT(), SetYTT(). SetZTT().
+SetCTT()'. Кроме того, в качестве меток можно вывести произвольный
+текст использовав функцию `SetTicksVal()'.
+
+
+File: mgl_ru.info,  Node: Line styles,  Next: Color scheme,  Prev: Coordinate axes,  Up: General concepts
+
+1.1.2 Стиль линий
+---------------------------
+
+Стиль линии задается строкой, которая может содержать символ цвета
+(`wkrgbcymhRGBCYMHWlenupqLENUPQ'), тип пунктира (`-|;:ji' или пробел),
+ширину линии (`0123456789') и тип маркера (`o+xsd.^v' и модификатор
+`#'). Если пропущен цвет или тип пунктира, то используется значение по
+умолчанию с последним указанным цветом или значение из палитры (для
+*note 1D plotting::).  По умолчанию палитры содержит следующие цвета:
+темно серый `H', синий `b', зеленый `g', красный `r', голубой `c',
+пурпурный `m', yellow `y', серый `h', сине-зеленый `l', небесно-синий
+`n', оранжевый `q', желто-зеленый `e', сине-фиолетовый `u', фиолетовый
+`p'.
+
+   Символы цвета те же, что и в классе mglColor (*note mglColor
+class::): `k' - черный, `r' - красный, `R' - темно красный, `g' -
+зеленый, `G' - темно зеленый, `b' - синий, `B' - темно синий, `c' -
+голубой, `C' - темно голубой, `m' - пурпурный, `M' - темно пурпурный,
+`y' - желтый, `Y' - темно желтый (золотой), `h' - серый, `H' - темно
+серый, `w' - белый, `W' - светло серый, `l' - сине-зеленый, `L' - темно
+сине-зеленый, `e' - желто-зеленый, `E' - темно желто-зеленый, `n' -
+небесно-синий, `N' - темно небесно-синий, `u' - сине-фиолетовый, `U' -
+темно сине-фиолетовый, `p' - фиолетовый, `P' - темно фиолетовый, `q' -
+оранжевый, `Q' - темно оранжевый (коричневый).
+
+   Тип пунктира: пробел - нет линии (для рисования только маркеров),
+`-' - сплошная линия (################), `|' - длинный пунктир
+(########________), `;' - пунктир (####____####____), `=' - короткий
+пунктир (##__##__##__##__), `:' - точки (#___#___#___#___), `j' -
+пунктир с точками  (#######____#____), `i' - мелкий пунктир с точками
+(###__#__###__#__).
+
+   Типы маркеров: `o' - окружность, `+' - крест, `x' - косой крест, `s'
+- квадрат, `d' - ромб, `.' - точка, `^' - треугольник вверх, `v' -
+треугольник вниз, `<' - треугольник влево, `>' - треугольник вправо,
+`#*' - знак Y, `#+' - крест в квадрате, `#x' - косой крест в квадрате,
+`#.' - точка в окружности. Если в строке присутствует символ `#', то
+используются символы с заполнением.
+
+ [image src="../png/sample5.png" ]
+
+Стили линий и маркеров.
+
+   На конце и в начале линии можно выводить специальный символ
+(стрелку), если в строке указать один из символов: `A' - стрелка
+наружу, `V' - стрелка внутрь, `I' - поперечная черта, `K' - стрелка с
+чертой, `T' - треугольник, `S' - квадрат, `D' - ромб, `O' - круг, `_' -
+нет стрелки (по умолчанию). При этом действует следующее правило:
+первый символ определяет стрелку на конце линии, второй символ -
+стрелку в начале линии. Например, `r-A' - красная сплошная линия со
+стрелкой на конце, `b|AI' - синий пунктир со стрелкой на конце и чертой
+вначале, `_O' - линия с текущим стилем и кружком вначале. Эти стили
+действуют и при построении графиков (например, *note 1D plotting::).
+
+ [image src="../png/sampled.png" ]
+
+Стили стрелок.
+
+
+File: mgl_ru.info,  Node: Color scheme,  Next: Font styles,  Prev: Line styles,  Up: General concepts
+
+1.1.3 Цветовая схема
+---------------------------------
+
+Цветовая схема используется для определения цвета поверхностей, линий
+уровня и пр. Цветовая схема задается строкой _s_, которая содержит
+символы цвета (*note Line styles::) или символы `d#:|'. Символ `d'
+указывает на определение цвета в зависимости от положения точки в
+пространстве, а не по амплитуде данных. Символ `#' переключает
+рисование поверхности на сетчатое (для трехмерных поверхностей) или
+включает рисование сетки на поверхности. Символ `|' отключает
+интерполяцию цвета в цветовой схеме. Это может быть полезно для
+"резких" цветов, например, при рисовании матриц. Если в строке
+встречается символ `:', то он принудительно заканчивает разбор строки
+для стиля поверхности. После этого символа могут идти описание стиля
+текста или оси вращения кривой/линий уровня. Цветовая схема может
+содержать до 32 значений цвета.
+
+   В цветовой схеме можно использовать тональные ("подсвеченные") цвета
+(_не в стиле линий!_). Тональный цвет задается двумя символами: первый
+- обычный цвет, второй - его яркость цифрой. Цифра может быть в
+диапазоне `1'...`9'. При этом `5' соответствует нормальному цвету, `1'
+- очень темная версия цвета (почти черный), `9' - очень светлая версия
+цвета (почти белый). Например цветовая схема может быть `b2b7wr7r2'.
+
+ [image src="../png/colors.png" ]
+
+Цвета и их идентификаторы.
+
+   При определении цвета по _амплитуде_ (наиболее часто используется)
+окончательный цвет определяется путем линейной интерполяции массива
+цветов. Массив цветов формируется из цветов, указанных в строке
+спецификации. Аргумент - амплитуда, нормированная между CMIN - CMAX
+(*note Axis settings::). Например, строка из 4 символов `bcyr'
+соответствует изменению цвета от синего (минимальное значение) через
+голубой и желтый (промежуточные значения) к красному (максимальное
+значение). Строка `kw' соответствует изменению цвета от черного
+(минимальное значение) к белому (максимальное значение). Строка из
+одного символа (например, `g') соответствует однотонному цвету (в
+данному случае зеленому).
+
+   Есть несколько полезных цветовых схем. Строка `kw' дает обычную
+серую (черно-белую) схему, когда большие значения светлее. Строка `wk'
+представляет обратную серую схему, когда большие значения темнее.
+Строки `kRryw', `kGgw', `kBbcw' представляют собой хорошо известные
+схемы _hot_, _summer_ и _winter_. Строки `BbwrR' и `bBkRr' позволяют
+рисовать двухцветные фигуры на белом или черном фоне, когда
+отрицательные значения показаны синим цветом, а положительные -
+красным. Строка `BbcyrR' дает цветовую схему, близкую к хорошо
+известной схеме _jet_.
+
+ [image src="../png/color_schemes.png" ]
+
+Наиболее популярные цветовые схемы.
+
+   При определении цвета по _положению точки в пространстве_
+окончательный цвет определяется по формуле c=x*c[1] + y*c[2] + z*c[3].
+Здесь c[1], c[2], c[3] - первые три цвета в цветовом массиве; x, y, z -
+координаты точки, нормированные на MINxMAX. Такой тип определения цвета
+полезен, например, при построении поверхностей уровня, когда цвет дает
+представление о положении точки в пространстве.
+
+
+File: mgl_ru.info,  Node: Font styles,  Next: Textual formulas,  Prev: Color scheme,  Up: General concepts
+
+1.1.4 Стиль текста
+-----------------------------
+
+Стиль текста задается строкой, которая может содержать несколько
+символов: тип шрифта (`ribwou') и/или выравнивания (`LRC'), а также
+цвет текста `wkrgbcymhRGBCYMHW' (*note Line styles::) после символа
+`:'. Например, `biC:b' соответствует жирному курсиву с выравниванием по
+центру синего цвета.
+
+   Начертания шрифта: `r' - прямой шрифт, `i' - курсив, `b' - жирный.
+По умолчанию используется прямой шрифт. Типы выравнивания текста: `L' -
+по левому краю (по умолчанию), `C' - по центру, `R' - по правому краю.
+Дополнительные эффекты шрифта: `w' - контурный, `o' - надчеркнутый, `u'
+- подчеркнутый.
+
+   Синтаксический разбор LaTeX-их команд по умолчанию включен. Это
+команды смены стиля текста (например, \b для жирного текста): \a или
+\overline - надчеркивание, \b или \textbf - жирный, \i или \textit -
+курсив, \r или \textrm - прямой (отменяет стили жирного и курсива), \u
+или \underline - подчеркнутый, \w или \wire - контурный, \big -
+большего размера, @ - меньшего размера. Нижний и верхний индексы
+задаются символами `_' и `^'. При этом изменение стиля применяется
+только к следующему символу или к символам в фигурных скобках {},
+которые понимаются как единый блок. Например, сравните строки `sin
+(x^{2^3})' и `sin (x^2^3)'. Можно также менять цвет текста внутри
+строки с помощью команд #? или \color?, где `?' - символ цвета (*note
+Line styles::). Например, слова `Blue' и `red' будут окрашены в
+соответствующий цвет в строке `#b{Blue} and \colorr{red} text'.
+Большинство функций понимает символ новой строки `\n' и позволяет
+выводить много строчный текст. Наконец, можно использовать символы с
+произвольным UTF кодом с помощью команды `\utf0x????'. Например,
+`\utf0x3b1' даст символ \alpha.
+
+   Распознаются также большинство символов TeX и AMSTeX, команды смены
+стиля текста (\textrm, \textbf, \textit, \textsc, \overline,
+\underline), акценты (\hat, \tilde, \dot, \ddot, \acute, \check,
+\grave, \bar, \breve) и корни (\sqrt, \sqrt3, \sqrt4). Полный список
+содержит около 2000 символов. Отмечу, что первый пробел (пробел,
+табуляция и пр.) после команды игнорируется, а все остальные пробелы
+печатаются обычным образом. Например, следующие строки дают одинаковый
+результат \tilde a: `\tilde{a}'; `\tilde a'; `\tilde{}a'.
+
+   В частности, распознаются греческие буквы: \alpha - \alpha, \beta -
+\beta, \gamma - \gamma, \delta - \delta, \epsilon - \epsilon, \eta -
+\eta, \iota - \iota, \chi - \chi, \kappa - \kappa, \lambda - \lambda,
+\mu - \mu, \nu - \nu, o - \o, \omega - \omega, \phi - \phi, \pi - \pi,
+\psi - \psi, \rho - \rho, \sigma - \sigma, \theta - \theta, \tau -
+\tau, \upsilon - \upsilon, \xi - \xi, \zeta - \zeta, \varsigma -
+\varsigma, \varepsilon - \varepsilon, \vartheta - \vartheta, \varphi -
+\varphi, A - \Alpha, B - \Beta, \Gamma - \Gamma, \Delta - \Delta, E -
+\Epsilon, H - \Eta, I - \Iota, C - \Chi, K - \Kappa, \Lambda - \Lambda,
+M - \Mu, N - \Nu, O - \O, \Omega - \Omega, \Phi - \Phi, \Pi - \Pi, \Psi
+- \Psi, R - \Rho, \Sigma - \Sigma, \Theta - \Theta, T - \Tau, \Upsilon
+- \Upsilon, \Xi - \Xi, Z - \Zeta.
+
+   Еще примеры наиболее общеупотребительных TeX-их символов: \angle -
+\angle, \aleph - \aleph, \cdot - \cdot, \clubsuit - \clubsuit, \cup -
+\cup, \cap - \cap, \diamondsuit - \diamondsuit, \diamond - \diamond,
+\div - \div, \downarrow - \downarrow, \dag - \dag, \ddag - \ddag,
+\equiv - \equiv, \exists - \exists, \frown - \frown, \flat - \flat, \ge
+- \ge, \geq - \geq, \gets - \gets, \heartsuit - \heartsuit, \infty -
+\infty, \in - \in, \int - \int, \Im - \Im, \langle - \langle, \le -
+\le, \leq - \leq, \leftarrow - \leftarrow, \mp - \mp, \nabla - \nabla,
+\ne - \ne, \neq - \neq, \natural - \natural, \oint - \oint, \odot -
+\odot, \oplus - \oplus, \partial - \partial, \parallel - \parallel,
+\perp - \perp, \pm - \pm, \propto - \propto, \prod - \prod, \Re - \Re,
+\rightarrow - \rightarrow, \rangle - \rangle, \spadesuit - \spadesuit,
+\sim - \sim, \smile - \smile, \subset - \subset, \supset - \supset,
+\surd - \sqrt or \surd, \S - \S, \sharp - \sharp, \sum - \sum, \times -
+\times, \to - \to, \uparrow - \uparrow, \wp - \wp and so on.
+
+   Размер текста может быть задан явно (если SIZE>0) или относительно
+базового размера шрифта для рисунка |SIZE|*FONTSIZE при SIZE<0.
+Значение SIZE=0 указывает, что соответствующая строка выводиться не
+будет. Базовый размер шрифта измеряется во внутренних единицах.
+Специальные функции `SetFontSizePT(), SetFontSizeCM(), SetFontSizeIN()'
+позволяют задавать его в более "привычных" единицах.
+
+
+File: mgl_ru.info,  Node: Textual formulas,  Prev: Font styles,  Up: General concepts
+
+1.1.5 Текстовые формулы
+---------------------------------------
+
+MathGL имеет быстрый парсер текстовых формул , понимающий большое число
+функций и операций. Базовые операции: `+' - сложение, `-' - вычитание,
+`*' - умножение, `/' - деление, `^' - возведение в целосичленную
+степень. Также есть логические операции: `<' - истина если if x<y, `>'
+- истина если x>y, `=' - истина если x=y, `&' - истина если x и y оба
+не равны нулю, `|' - истина если x или y не нуль. Логические операции
+имеют наинизший приоритет и возвращают 1 если истина или 0 если ложно.
+
+   Базовые функции: `sqrt(x)' - квадратный корень из X, `pow(x,y)' - X
+в степени Y, `ln(x)' - натуральный логарифм X, `lg(x)' - десятичный
+логарифм X, `log(a,x)' - логарифм по основанию A от X, `abs(x)' -
+модуль X, `sign(x)' - знак X, `mod(x,y)' - остаток от деления x на y,
+`step(x)' - ступенчатая функция, `int(x)' - целая часть X, `rnd' -
+случайное число, `pi' - число \pi=3.1415926...
+
+   Тригонометрические функции: `sin(x)', `cos(x)', `tan(x)' (или
+`tg(x)'). Обратные тригонометрические функции: `asin(x)', `acos(x)',
+`atan(x)'. Гиперболические функции: `sinh(x)' (или `sh(x)'), `cosh(x)'
+(или `ch(x)'), `tanh(x)' (или `th(x)'). Обратные гиперболические
+функции: `asinh(x)', `acosh(x)', `atanh(x)'.
+
+   Специальные функции: `gamma(x)' - гамма функция \Gamma(x) =
+\int_0^\infty dt t^{x-1} \exp(-t) , `psi(x)' - дигамма функция \psi(x)
+= \Gamma</samp>&rsquo;(x)/\Gamma(x) для x!=0, `ai(x)' - Эйри функция
+Ai(x), `bi(x)' - Эйри функция Bi(x), `cl(x)' - функция Клаузена,
+`li2(x)' (или `dilog(x)') - дилогарифм Li_2(x) = - \Re \int_0^x ds
+\log(1-s)/s, `sinc(x)' - функция sinc(x) = \sin(\pi x) / (\pi x) для
+любых x, `zeta(x)' - зета функция Римана \zeta(s) = \sum_{k=1}^\infty
+k^{-s} для s!=1, `eta(x)' - эта функция \eta(s) = (1-2^{1-s}) \zeta(s)
+для произвольного s, `lp(l,x)' - полином Лежандра P_l(x), (|x|<=1,
+l>=0), `w0(x)', `w1(x)' - функции Ламберта W. Функции W(x) определены
+как решение уравнения W \exp(W) = x.
+
+   Экспоненциальные интегралы: `ci(x)' - cos-интеграл Ci(x) = \int_0^x
+dt \cos(t)/t, `si(x)' - sin-интеграл Si(x) = \int_0^x dt \sin(t)/t,
+`erf(x)' - функция ошибки erf(x) = (2/\sqrt(\pi)) \int_0^x dt
+\exp(-t^2), `ei(x)' - интеграл Ei(x) := - PV(\int_{-x}^\infty dt
+\exp(-t)/t) (где PV обозначает главное значение), `e1(x)' - интеграл
+E_1(x) := Re \int_1^\infty dt \exp(-xt)/t , `e2(x)' - интеграл E_2(x)
+:= Re \int_1^\infty dt \exp(-xt)/t^2, `ei3(x)' - интеграл Ei_3(x) =
+\int_0^x dt \exp(-t^3) для x>=0.
+
+   Функции Бесселя: `j(nu,x)' - функция Бесселя первого рода, `y(nu,x)'
+- функция Бесселя второго рода, `i(nu,x)' - модифицированная функция
+Бесселя первого рода, `k(nu,x)' - модифицированная функция Бесселя
+второго рода.
+
+   Эллиптические интегралы: `ee(k)' - полный эллиптический интеграл
+E(k) = E(\pi/2, k), `ek(k)' - полный эллиптический интеграл K(k) =
+F(\pi/2, k), `e(phi,k)' - эллиптический интеграл E(\phi,k) =
+\int_0^\phi dt \sqrt((1 - k^2 \sin^2(t))), `f(phi,k)' - эллиптический
+интеграл F(\phi,k) = \int_0^\phi dt 1/\sqrt((1 - k^2 \sin^2(t))).
+
+   Функции Якоби: `sn(u,m)', `cn(u,m)', `dn(u,m)', `sc(u,m)',
+`sd(u,m)', `ns(u,m)', `cs(u,m)', `cd(u,m)', `nc(u,m)', `ds(u,m)',
+`dc(u,m)', `nd(u,m)'.
+
+   Некоторые из функций могут быть недоступны если флаг NO_GSL был
+определен при компиляции библиотеки MathGL.
+
+   При разборе формул нет различия между верхним и нижним регистром.
+Если аргумент лежит вне области определения функции, то возвращается
+NaN.
+
+
+File: mgl_ru.info,  Node: Graphics setup,  Next: Axis settings,  Prev: General concepts,  Up: MGL interface
+
+1.2 Настройка графика
+=====================================
+
+Команды в этой группе влияют на вид всего рисунка. Соответственно они
+должны располагаться _перед_ вызовом функций непосредственно рисующих
+графики.
+
+* Menu:
+
+* Transparency ::
+* Lighting ::
+* Fog ::
+* Default sizes ::
+* Zooming ::
+* Cutting ::
+* Other settings ::
+
+
+File: mgl_ru.info,  Node: Transparency,  Next: Lighting,  Up: Graphics setup
+
+1.2.1 Прозрачность
+------------------------------
+
+Эти команды настраивают тип и степень прозрачности поверхностей.
+Главной является функция *note alpha::, которая включает/выключает
+прозрачность для всех графиков, созданных после вызова *note alpha::.
+Функция *note alphadef:: устанавливает величину alpha-канала по
+умолчанию. Прозрачность можно выключить для отдельного графика с
+помощью *note transparent::. Наконец, функция *note transptype:: задает
+тип прозрачности. См. раздел *note Transparent surface sample::, для
+примеров кода и графика.
+
+ -- Команда MGL: alpha `[val=on]'
+     Включает/выключает прозрачность для _всего_ рисунка. По умолчанию
+     прозрачность выключена. Используйте `transparent off' для
+     конкретного графика для выключения прозрачности.
+   
+ -- Команда MGL: alphadef `val'
+     Задает значение прозрачности по умолчанию для всех графиков.
+     Начальное значение 0.5.
+   
+ -- Команда MGL: transparent `val'
+     Временно включает/возвращает прозрачность графиков.
+   
+ -- Команда MGL: transptype `val'
+     Задает тип прозрачности. Обычная прозрачность (`0') - "закрытые"
+     объекты видны меньше чем закрывающие. "Стеклянная" прозрачность
+     (`1') - закрытые и закрывающие объекты единообразно ослабляют
+     интенсивность света (по RGB каналам). "Ламповая" прозрачность
+     (`2') - закрытые и закрывающие объекты являются источниками
+     дополнительного освещения (рекомендую установить `alphadef 0.3'
+     или меньше в этом случае). *Note Normal transparency::, *note
+     Glass-like transparency::, *note Lamp-like transparency::.
+
+
+File: mgl_ru.info,  Node: Lighting,  Next: Fog,  Prev: Transparency,  Up: Graphics setup
+
+1.2.2 Освещение
+------------------------
+
+Эти функции настраивают освещение графика. Главная функция *note
+light:: включает/выключает освещение графиков построенных после ее
+вызова. MathGL  поддерживает до 10 независимых источников света.
+Положение, цвет, яркость каждого источника света можно задавать по
+отдельности. По умолчанию включен только первый (с порядковым номером
+`0') источник света белого цвета, расположенный сверху.
+
+ -- Команда MGL: light `[val=on]'
+     Включает/выключает освещение графика. По умолчанию освещение
+     выключено.
+
+ -- Команда MGL: light `n val'
+     Включает/выключает N-ый источник света.
+
+ -- Команда MGL: light `n xpos ypos zpos' ['col'='w' `br=0.5']
+     Добавляет источник света с номером N в положение {XPOS, YPOS,
+     ZPOS} с цветом COL и яркостью BR, которая должна быть в диапазоне
+     [0,1].
+
+ -- Команда MGL: ambient `val'
+     Задает яркость рассеянного освещения. Значение должно быть в
+     диапазоне [0,1].
+
+
+File: mgl_ru.info,  Node: Fog,  Next: Default sizes,  Prev: Lighting,  Up: Graphics setup
+
+1.2.3 Туман
+----------------
+
+ -- Команда MGL: fog `val [dz=0.25]'
+     Имитирует туман на графике. Туман начинается на относительном
+     расстоянии DZ от точки обзора и его плотность растет
+     экспоненциально вглубь по закону ~1-exp(-d*z). Здесь _z_ -
+     нормализованная на 1 глубина графика. Если D=`0' то туман
+     отсутствует. См. раздел *note Surface in fog sample::, для
+     примеров кода и графика.
+
+
+File: mgl_ru.info,  Node: Default sizes,  Next: Zooming,  Prev: Fog,  Up: Graphics setup
+
+1.2.4 Базовые размеры
+-----------------------------------
+
+Эти команды задают величины большинства параметров графика, включая
+размеры маркеров, стрелок, толщину линий и т.д. Как и любые другие
+настройки, они подействуют только на графики созданные после изменения
+настроек.
+
+ -- Команда MGL: barwidth `val'
+     Относительный размер прямоугольников в `bars, barh, boxplot'.
+     Значение по умолчанию `0.7'.
+
+ -- Команда MGL: marksize `val'
+     Размер маркеров для *note 1D plotting::. Значение по умолчанию `1'.
+
+ -- Команда MGL: arrowsize `val'
+     Размер стрелок для *note 1D plotting::, линий и кривых (*note
+     Primitives drawing::). Значение по умолчанию `1'.
+
+ -- Команда MGL: linewidth `val'
+     Базовая толщина линий. Значения <1 игнорируются. Для значений >1
+     реальная толщина получается перемножением указанной ширины линии
+     на данное значение. Увеличение ширины линии актуально для больших
+     растровых рисунков. Значение по умолчанию `1'.
+
+ -- Команда MGL: ticklen `val' [`stt=1']
+     Относительная длина меток осей координат. Значение по умолчанию
+     `0.1'. Параметр STT>0 задает относительную длину подметок, которые
+     в `sqrt(1+stt)' раз меньше.
+
+ -- Команда MGL: tickstl 'stl' ['sub'="]
+     Стиль меток (STL) и подметок (SUB) осей координат. Если `stl=''',
+     то используется стиль по умолчанию (`k' или `w' в зависимости от
+     типа прозрачности). Если `sub=''', то используется стиль меток
+     (т.е. STL).
+
+
+File: mgl_ru.info,  Node: Zooming,  Next: Cutting,  Prev: Default sizes,  Up: Graphics setup
+
+1.2.5 Масштабирование
+------------------------------------
+
+Эти команды управляют масштабированием всего рисунка (*note zoom::) или
+отдельной картинки (*note plotfactor::). Обычно эти функции
+используются для удаления пустого места вокруг графиков.
+
+ -- Команда MGL: plotfactor `val'
+     Масштаб картинки (значение должно быть больше 1). Не рекомендуется
+     устанавливать значения меньше 1.5. Это аналог *note zoom::, но
+     применяется только к конкретной картинке, заданной *note inplot::.
+     Используйте ноль для включения автоматического масштабирования.
+
+ -- Команда MGL: zoom `x1 y1 x2 y2'
+     Масштабирует весь рисунок. После вызова функции текущий график
+     будет очищен и в дальнейшем рисунок будет содержать только область
+     [x1,x2]*[y1,y2] от исходного рисунка. Координаты X1, X2, Y1, Y2
+     меняются в диапазоне от 0 до 1. Внимание! эти настройки не могут
+     быть переписаны никакими другими функциями. Используйте `zoom 0 0
+     1 1' для перехода в масштаб по умолчанию.
+
+
+File: mgl_ru.info,  Node: Cutting,  Next: Other settings,  Prev: Zooming,  Up: Graphics setup
+
+1.2.6 Обрезание
+------------------------
+
+Эти команды задают условия когда точка будет исключена (вырезана) из
+рисования. Замечу, что все точки со значением(-ями) `nan' по одной из
+координат или амплитуде автоматически исключаются из рисования.
+
+ -- Команда MGL: cut `val'
+     Задает обрезание точек за пределами осей координат. Если `on' то
+     такие точки исключаются из рисования (это по умолчанию) иначе они
+     проецируются на ограничивающий прямоугольник.
+
+ -- Команда MGL: cut `x1 y1 z1 x2 y2 z2'
+     Задает границы параллелепипеда внутри которого точки не рисуются.
+     Если границы одинаковы (переменные равны), то параллелепипеда
+     считается пустым. См. раздел *note CutMinMax sample::, для
+     примеров кода и графика.
+
+ -- Команда MGL: cut 'cond'
+     Задает условие обрезания по формуле COND. Это условие исключает
+     точки из рисования если результат вычисления формулы не равен
+     нулю. Установите аргумент `''' для выключения условия обрезания.
+     См. раздел *note CutOff sample::, для примеров кода и графика.
+
+
+File: mgl_ru.info,  Node: Other settings,  Prev: Cutting,  Up: Graphics setup
+
+1.2.7 Прочие настройки
+-------------------------------------
+
+ -- Команда MGL: font 'fnt' [`val=6']
+     Задает стиль и размер шрифта (*note Text printing::). Вначале
+     используется `rC' - прямой шрифт с выравниванием по центру. По
+     умолчанию размер подписей оси координат в 1.4 раза больше.
+
+ -- Команда MGL: rotatetext `val'
+     Включает/выключает вращение меток и подписей осей координат вдоль
+     оси. Начальное значение `on'.
+
+ -- Команда MGL: palette 'colors'
+     Задает палитру как последовательность цветов. Значение по
+     умолчанию `"Hbgrcmyhlnqeup"', что соответствует цветам: темно
+     серый `H', синий `b', зеленый `g', красный `r', голубой `c',
+     малиновый `m', желтый `y', серый `h', сине-зеленый  `l',
+     небесно-голубой `n', оранжевый `q', желто-зеленый `e',
+     сине-фиолетовый `u', фиолетовый `p'. Палитра в основном
+     используется в 1D графиках (*note 1D plotting::) для кривых с
+     неопределенным стилем линии.
+
+ -- Команда MGL: meshnum `num'
+     Задает ориентировочное число линий в *note mesh::, *note fall::,
+     *note grid::, число стрелок (штрихов) в *note vect::, *note dew::
+     и число ячеек в *note cloud::. По умолчанию (=0) рисуются все
+     линии, стрелки, ячейки.
+
+ -- Команда MGL: axialdir 'dir'
+     Задает ось вращения для *note axial::, *note torus::. По умолчанию
+     это 'z'.
+
+
+File: mgl_ru.info,  Node: Axis settings,  Next: Transformation matrix,  Prev: Graphics setup,  Up: MGL interface
+
+1.3 Параметры осей координат
+==================================================
+
+Этот большой набор команд определяет вид осей и меток координат. Перед
+построением для каждой точки выполняются 3 преобразования: сначала
+определяется возможность рисования точки (*note Cutting::), далее
+применяются формулы перехода к криволинейным координатам и наконец
+точка отображается.
+
+ -- Команда MGL: axis `x1 y1 x2 y2'
+ -- Команда MGL: axis `x1 y1 z1 x2 y2 z2'
+ -- Команда MGL: ranges `x1 x2 y1 y2 [z1=0 z2=0]'
+     Задает диапазон изменения координат. Если минимальное и
+     максимальное значение координаты равны, то они игнорируются по
+     данному направлению. Также устанавливает размер цветовой шкалы,
+     аналогично команде  `caxis z1 z2'. Начальные диапазоны равны [-1,
+     1].
+
+ -- Команда MGL: axis 'fx' 'fy' ['fz'=" 'fa'="]
+     Задает формулы перехода к криволинейным координатам. Каждая строка
+     является математическим выражением, зависящим от старых координат
+     `x', `y', `z' и `a' или `c' для цветовой шкалы. Например, для
+     цилиндрических координат будет `axis 'x*cos(y)' 'x*sin(y)' 'z''.
+     Для удаления формул соответствующий параметр должен быть пустым
+     `'''. Использование формул преобразования слегка замедляет
+     программу, т.е.. `axis '' '' ''' быстрее чем `axis '1*x' '1*y'
+     '1*z''. Параметр FA задает аналогичную формулу для цветовой шкалы.
+     *Note Textual formulas::.
+
+ -- Команда MGL: axis `how'
+     Устанавливает одну из предопределенных систем криволинейных
+     координат в зависимости от параметра HOW: `0' - декартова система
+     (нет преобразования координат, наиболее быстрая); `1' - полярные
+     координаты x_n=x*cos(y),y_n=x*sin(y), z_n=z; `2' - сферические
+     координаты x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y);
+     `3' - параболические координаты x_n=x*y, y_n=(x*x-y*y)/2, z_n=z;
+     `4' - Paraboloidal coordinates x_n=(x*x-y*y)*cos(z)/2,
+     y_n=(x*x-y*y)*sin(z)/2, z_n=x*y; `5' - Oblate coordinates
+     x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z),
+     z_n=sinh(x)*sin(y); `6' - Prolate coordinates
+     x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z),
+     z_n=cosh(x)*cos(y); `7' - эллиптические координаты
+     x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z; `8' - тороидальные
+     координаты x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)),
+     y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y));
+     `9' - бисферические координаты x_n=sin(y)*cos(z)/(cosh(x)-cos(y)),
+     y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y));
+     `10' - биполярные координаты x_n=sinh(x)/(cosh(x)-cos(y)),
+     y_n=sin(y)/(cosh(x)-cos(y)), z_n=z.
+
+ -- Команда MGL: caxis `z1 z2'
+     Задает масштаб цветовой шкалы (c-координаты). Эти значения
+     используются для определения цвета поверхностей и прочих 2D и 3D
+     графиков. Начальный диапазон равен [-1, 1].
+
+ -- Команда MGL: origin `x0 y0 [z0=nan]'
+     Задает центр пересечения осей координат. Если одно из значений
+     равно `nan', то выбрается оптимальное положение осей координат по
+     этому направлению.
+
+ -- Команда MGL: ternary `val'
+     Задает рисование треугольных (Ternary) осей координат. Это
+     специальный тип графика для 3 зависимых координат (компонент) A,
+     B, C таких, что A+B+C=1. MathGL использует только 2 независимые
+     координаты A=x и B=y поскольку их достаточно для построения всех
+     графиков. При этом третья координата z является независимым
+     параметром для построения линий уровня, поверхностей и т.д. См.
+     раздел *note Ternary plot sample::, для примеров кода и графика.
+
+ -- Команда MGL: xrange dat [`add=off fact=0']
+ -- Команда MGL: yrange dat [`add=off fact=0']
+ -- Команда MGL: zrange dat [`add=off fact=0']
+ -- Команда MGL: crange dat [`add=off fact=0']
+     Задает диапазон изменения x-,y-,z-,c- координат как минимальное и
+     максимальное значение массива DAT. Параметр ADD указывает
+     добавлять новый диапазон к существующему или заменять его.
+     Параметр FACT дополнительно расширяет диапазон на величину
+     (MAX-MIN)*FACT.
+
+ -- Команда MGL: xrange `x1 x2'
+ -- Команда MGL: yrange `x1 x2'
+ -- Команда MGL: zrange `x1 x2'
+ -- Команда MGL: crange `x1 x2'
+     Задает диапазон изменения x-,y-,z-,c- координат. См. также *note
+     axis::.
+
+ -- Команда MGL: xtick `val [sub=0 org=nan]'
+ -- Команда MGL: ytick `val [sub=0 org=nan]'
+ -- Команда MGL: ztick `val [sub=0 org=nan]'
+ -- Команда MGL: ctick `val'
+     Задает шаг меток осей VAL, число подметок NS и начальное положение
+     меток ORG. Переменная VAL задает шаг меток (если положительна) или
+     их число на оси (если отрицательна). Нулевое значение задает
+     логарифмические метки. Если ORG=`NAN', то используется значение из
+     *note origin::.
+
+ -- Команда MGL: xtick 'templ'
+ -- Команда MGL: ytick 'templ'
+ -- Команда MGL: ztick 'templ'
+ -- Команда MGL: ctick 'templ'
+     Задает шаблоны для меток вдоль x-,y-,z-оси или colorbar. Шаблон
+     может содержать и символы TeX. Если XTT, YTT, ZTT, CTT=`''', то
+     используется шаблон по умолчанию (в простейшем случае `%.2g').
+     Установка шаблона выключает автоматическое улучшение вида меток.
+
+ -- Команда MGL: xtick `val1' 'lbl1' [`val2' 'lbl2' ...]
+ -- Команда MGL: ytick `val1' 'lbl1' [`val2' 'lbl2' ...]
+ -- Команда MGL: ztick `val1' 'lbl1' [`val2' 'lbl2' ...]
+     Задает явное положение VAL и подписи LBL для меток вдоль оси.
+     Метки могут содержать и символы TeX.
+
+ -- Команда MGL: adjust ['dir'='xyzc']
+     Автоматически задает шаг меток осей, число подметок и начальное
+     положение меток для осей координат DIR в виде наиболее удобном для
+     человека.
+
+
+File: mgl_ru.info,  Node: Transformation matrix,  Next: Export to file,  Prev: Axis settings,  Up: MGL interface
+
+1.4 Матрица преобразования
+===============================================
+
+Эти команды контролируют где и как график будет расположен. Существует
+определенный порядок вызова этих функций для лучшего вида графика.
+Вначале должны вызываться команды *note subplot:: или *note inplot::
+для указания местоположения вывода. После них - команды вращения *note
+rotate:: и сжатия *note aspect::. И наконец любые другие функции для
+рисования графика. Вместо вращения графика можно вызвать команды *note
+columnplot:: для расположения графиков в столбец одного над другим или
+*note stickplot:: для расположения в линейку.
+
+ -- Команда MGL: subplot `nx ny m [dx=0 dy=0]'
+     Помещает последующий вывод в M-ую ячейку сетки размером NX*NY от
+     всего рисунка. Функция сбрасывает матрицу трансформации (повороты
+     и сжатие графика) и должна вызываться первой для создания
+     "подграфика". С эстетической точки зрения не рекомендуется
+     вызывать эту функцию с различными (или не кратными) размерами
+     сетки. Ячейка может быть дополнительно сдвинута относительно
+     своего обычного положения на относительный размер DX, DY.
+
+ -- Команда MGL: subplot `nx ny m' 'style'
+     Аналогично предыдущему, но место для осей/colorbar резервируется
+     только если строка STYLE содержит: `L' или `<' - с левого края,
+     `R' или `>' - с правого края, `A' или `^' - с верхнего края, `U'
+     или `_' - с нижнего края.
+
+ -- Команда MGL: inplot `x1 x2 y1 y2 [rel=off]'
+     Помещает последующий вывод в прямоугольную область [X1, X2]*[Y1,
+     Y2] (исходный размер [0,1]*[0,1]). Эта функция позволяет поместить
+     график в произвольную область рисунка. Если параметр REL=`on', то
+     используется позиция относительно текщего *note subplot:: (или
+     *note inplot:: с REL=`off'). Функция сбрасывает матрицу
+     трансформации (повороты и сжатие графика) и должна вызываться
+     первой для создания "подграфика".
+
+ -- Команда MGL: columnplot `num ind [d=0]'
+     Помещает последующий вывод в IND-ую строку столбца из NUM строк.
+     Положение столбца выбирается относительно последнего вызова *note
+     subplot:: (или *note inplot:: с REL=`off'). Параметр D задает
+     дополнительный зазор между строк. См. раздел *note ColumnPlot
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: stickplot `num ind tet phi'
+     Помещает последующий вывод в IND-ую ячейку "бруска" из NUM ячеек.
+     При этом сам брусок повернут на углы TET, PHI. Положение
+     выбирается относительно последнего вызова *note subplot:: (или
+     *note inplot:: с REL=`off'). См. раздел *note StickPlot sample::,
+     для примеров кода и графика.
+
+ -- Команда MGL: rotate `tetz tetx [tety=0]'
+     Вращает систему координат относительно осей {x, z, y}
+     последовательно на углы TETX, TETZ, TETY.
+
+ -- Команда MGL: rotate `tet x y z'
+     Вращает систему координат относительно вектора {X, Y, Z} на угол
+     TET.
+
+ -- Команда MGL: aspect `ax ay [az=1]'
+     Устанавливает соотношение размеров осей в отношении AX:AY:AZ. Для
+     лучшего вида следует вызывать после функции *note rotate::.
+
+ -- Команда MGL: perspective `val'
+     Добавляет (включает) перспективу для графика. Параметр val ~
+     1/z_{eff} \in [0,1). По умолчанию (`val=0') перспектива отключена.
+
+
+File: mgl_ru.info,  Node: Export to file,  Next: Primitives drawing,  Prev: Transformation matrix,  Up: MGL interface
+
+1.5 Экспорт в файл
+==============================
+
+ -- Команда MGL: write 'fname' [`solid=off']
+     Экспортирует текущий кадр в файл 'fname' (тип определяется по
+     расширению). Параметр SOLID задает вывод картинки на текущем фоне
+     (обычно белом) или полупрозрачной. Если 'fname'=", то используется
+     имя `frame####.jpg', где `####' - текущий номер кадра.
+
+ -- Команда MGL: setsize `w h'
+     Изменяет размер картинки в пикселях. Функция должна вызываться
+     *перед* любыми функциями построения потому что полностью очищает
+     содержимое рисунка. В некоторых программах исполнение этой команды
+     может запрещено.
+
+
+File: mgl_ru.info,  Node: Primitives drawing,  Next: Text printing,  Prev: Export to file,  Up: MGL interface
+
+1.6 Рисование примитивов
+===========================================
+
+Эти команды рисуют рисуют простые объекты типа линий, точек, сфер,
+капель, конусов, и т.д.
+
+ -- Команда MGL: clf
+     Очищает рисунок и заполняет его цветом по умолчанию (обычно белым).
+
+ -- Команда MGL: ball `x y' ['col'='r']
+ -- Команда MGL: ball `x y z' ['col'='r']
+     Рисует точку (шарик) с координатами {X, Y, Z} и цветом COL.
+
+ -- Команда MGL: line `x1 y1 x2 y2' ['stl'="]
+ -- Команда MGL: line `x1 y1 z1 x2 y2 z2' ['stl'="]
+     Рисует геодезическую линию (декартовых координатах - прямую) из
+     точки {X1,Y1,Z1} в {X2,Y2,Z2} использую стиль линии STL. Кривая
+     рисуется даже если часть ее лежит вне диапазона осей координат.
+
+ -- Команда MGL: curve `x1 y1 dx1 dy1 x2 y2 dx2 dy2' ['stl'="]
+ -- Команда MGL: curve `x1 y1 z1 dx1 dy1 dz1 x2 y2 z2 dx2 dy2 dz2'
+          ['stl'="]
+     Рисует кривую Безье из точки {X1,Y1,Z1} в {X2,Y2,Z2} использую
+     стиль линии STL. Касательные в точках пропорциональны
+     {DX1,DY1,DZ1}, {DX2,DY2,DZ2}. Кривая рисуется даже если часть ее
+     лежит вне диапазона осей координат.
+
+ -- Команда MGL: facex `x0 y0 z0 wy wz' ['stl'=" `d1=0 d2=0']
+ -- Команда MGL: facey `x0 y0 z0 wx wz' ['stl'=" `d1=0 d2=0']
+ -- Команда MGL: facez `x0 y0 z0 wx wy' ['stl'=" `d1=0 d2=0']
+     Рисует закрашенный прямоугольник (грань) перпендикулярно оси
+     [x,y,z] в точке {X0, Y0, Z0} цветом STL и шириной WX, WY, WZ вдоль
+     соответствующего направления. При этом цвет может быть один для
+     всей грани, или различным для разных вершин если указаны все 4
+     цвета (полезно для градиента цвета, например `wwrr'). Параметры
+     D1!=0, D2!=0 задают дополнительный сдвиг последней точки (т.е.
+     рисуют четырехугольник). Грань будет нарисована даже если часть ее
+     лежит вне диапазона осей координат.
+
+ -- Команда MGL: sphere `x0 y0 r' ['col'='r']
+ -- Команда MGL: sphere `x0 y0 z0 r' ['col'='r']
+     Рисует сферу радиуса R с центром в точке {X, Y, Z} цветом STL.
+
+ -- Команда MGL: drop `x0 y0 dx dy r' ['col'='b' `sh=1 asp=1']
+ -- Команда MGL: drop `x0 y0 z0 dx dy dz r' ['col'='b' `sh=1 asp=1']
+     Рисует каплю радиуса R в точке {X0,Y0,Z0} вытянутую вдоль
+     направления {DX,DY,DZ} цветом COL. Параметр SH определяет степень
+     вытянутости: `0' - сфера, `1' - классическая капля. Параметр ASP
+     определяет относительную ширину капли (аналог "эллиптичности" для
+     сферы). См. раздел *note Drops sample::, для примеров кода и
+     графика.
+
+ -- Команда MGL: cone `x1 y1 z1 x2 y2 z2 r1' [`r2=-1' 'stl'="
+          `edge=off']
+     Рисует трубу (или усеченный конус если EDGE=`off') между точками
+     {X1,Y1,Z1}, {X2,Y2,Z2} с радиусами на концах R1, R2. Если R2<0, то
+     полагается R2=R1. Цвет конуса задается строкой STL.
+
+ -- Команда MGL: rect `x1 y1 x2 y2' ['st'="]
+ -- Команда MGL: rect `x1 y1 z1 x2 y2 z2' ['st'="]
+     Рисует закрашенный прямоугольник (грань) с противоположными
+     вершинами в точках {X1,Y1,Z1}, {X2,Y2,Z2} цветом STL. При этом
+     цвет может быть один для всей грани, или различным для разных
+     вершин если указаны все 4 цвета (полезно для градиента цвета,
+     например `wwrr'). Грань будет нарисована даже если часть ее лежит
+     вне диапазона осей координат.
+
+
+File: mgl_ru.info,  Node: Text printing,  Next: Axis and Colorbar,  Prev: Primitives drawing,  Up: MGL interface
+
+1.7 Вывод текста
+===========================
+
+Команды для вывода текста позволяют вывести строку текста в
+произвольном месте рисунка, в произвольном направлении и вдоль
+произвольной кривой. Можно использовать произвольное начертание шрифта
+и многие ТеХ-ие команды (детальнее *note Font styles::). Аргумент SIZE
+определяет размер текста: размер шрифта если положителен или
+относительный размер (=-SIZE*FONTSIZE) если отрицателен.
+
+   Параметры шрифта задаются строкой, которая может содержать символы
+стиля (`rbiwou') и/или выравнивания (`LRC'). Также строка может
+содержать символы цвета `wkrgbcymhRGBCYMHW' (*note Line styles::) после
+символа `:'. Стили шрифта: `r' - прямой, `i' - курсив, `b' - жирный,
+`w' - контурный, `o' - надчеркнутый, `u' - подчеркнутый. По умолчанию
+используется прямой шрифт. Типы выравнивания: `L' - по левому краю (по
+умолчанию), `C' - по центру, `R' - по правому краю. Например, строка
+`iC:b' соответствует курсиву синего цвета с выравниванием по центру. По
+умолчанию используются параметры, определенные командой *note font::.
+
+   Если строка содержит символы `aA', то текст выводится в абсолютных
+координатах (полагаются в диапазоне [0,1]). При этом используются
+координаты относительно рисунка (если указано `A') или относительно
+последнего *note subplot::/*note inplot:: (если указано `a').
+
+ -- Команда MGL: text `x y' 'text' ['fnt'=" `size=-1.4']
+ -- Команда MGL: text `x y z' 'text' ['fnt'=" `size=-1.4']
+     Выводит строку TEXT от точки {X,Y,Z} шрифтом FNT и размером SIZE.
+
+ -- Команда MGL: text `x y dx dy' 'text' [`size=-1.4']
+ -- Команда MGL: text `x y z dx dy dz' 'text' [`size=-1.4']
+     Выводит строку TEXT от точки {X,Y,Z} вдоль направления {DX,DY,DZ}
+     шрифтом FNT и размером SIZE.
+
+ -- Команда MGL: text ydat 'text' ['fnt'=" `size=-1 zval=nan']
+ -- Команда MGL: text xdat ydat 'text' ['fnt'=" `size=-1 zval=nan']
+ -- Команда MGL: text xdat ydat zdat 'text' ['fnt'=" `size=-1']
+     Выводит строку TEXT вдоль кривой {XDAT[i], YDAT[i], ZDAT[i]}
+     шрифтом FONT. Строка FONT может содержать символы: `t' для вывода
+     текста под кривой (по умолчанию), или `T' для вывода текста над
+     кривой. Если массив XDAT не указан, то используется массив со
+     значениями равно распределенными вдоль оси x. Если массив ZDAT не
+     указан, то используется ZDAT[i] = ZVAL. См. раздел *note Text
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: title 'text' ['fnt'=" `size=-2']
+     Выводит строку TEXT как заголовок (сверху рисунка). Может
+     использоваться в любом месте (даже внутри *note subplot::).
+
+ -- Команда MGL: fgets `x y' 'fname' [`n=0' 'fnt'=" `size=-1.4']
+ -- Команда MGL: fgets `x y z' 'fname' [`n=0' 'fnt'=" `size=-1.4']
+     Выводит N-ую строку файла FNAME от точки {X,Y,Z} шрифтом FNT и
+     размером SIZE.
+
+
+File: mgl_ru.info,  Node: Axis and Colorbar,  Next: Legend,  Prev: Text printing,  Up: MGL interface
+
+1.8 Оси и Colorbar
+======================
+
+Эти команды рисуют объекты для "измерения" типа осей координат,
+цветовой таблицы (colorbar), сетку по осям, обрамляющий параллелепипед
+и подписи по осям координат. См. также *note Axis settings::.
+
+ -- Команда MGL: axis ['dir'='xyz' `adjust=off']
+     Рисует оси координат и метки на них (*note Axis settings::) в
+     направлениях, указанных строкой DIR. Если строка содержит символ
+     `_', то подписи меток отображаться не будут. Шрифт подписей
+     определяется командой *note font::. Метки будут "подогнаны" если
+     ADJUST=`on' (с помощью вызова `adjust 'dir'').
+
+ -- Команда MGL: colorbar ['sch'=" `pos=0']
+     Рисует полосу соответствия цвета и числовых значений (colorbar)
+     для цветовой схемы SCH (используется текущая для `sch=''') с краю
+     от графика. Параметр POS задает местоположение: `0' - справа (по
+     умолчанию), `1' - слева, `2' - сверху, `3' - снизу. Если строка
+     SCH содержит `<>^_', то параметр POS определяется как: `pos=0' для
+     `>' (справа), `pos=1' для `<' (слева), `pos=2' для `^' (сверху),
+     `pos=3' для `_' (снизу). Если строка содержит `A', то используются
+     абсолютные координаты (относительно рисунка). См. раздел *note
+     Dens sample::, для примеров кода и графика.
+
+ -- Команда MGL: colorbar vdat ['sch'=" `pos=0']
+     Аналогично предыдущему, но для цветовой схемы без сглаживания с
+     заданными значениями VDAT. См. раздел *note ContD sample::, для
+     примеров кода и графика.
+
+ -- Команда MGL: colorbar 'sch' `pos x y w h'
+     Аналогично первому, но в произвольном месте графика {X, Y}
+     (полагаются в диапазоне [0,1]). Параметры W, H задают
+     относительную ширину и высоту colorbar.
+
+ -- Команда MGL: grid ['dir'='xyz' 'pen'='B']
+     Рисует линии сетки в направлениях перпендикулярным DIR. Шаг сетки
+     такой же как у меток осей координат. Стиль линий задается
+     параметром PEN (по умолчанию - сплошная темно синяя линия `B-').
+
+ -- Команда MGL: box ['stl'='k' `ticks=on']
+     Рисует ограничивающий параллелепипед цветом 'stl'. При `ticks=on'
+     рисуются метки в соответствии с текущими настройками осей
+     координат *note axis::.
+
+ -- Команда MGL: xlabel 'text' [`pos=0 size=-1.4 shift=0']
+ -- Команда MGL: ylabel 'text' [`pos=0 size=-1.4 shift=0']
+ -- Команда MGL: zlabel 'text' [`pos=0 size=-1.4 shift=0']
+ -- Команда MGL: tlabel 'text' [`pos=0 size=-1.4 shift=0']
+     Выводит подпись TEXT для x-,y-,z-,t-оси (где `t' - "тернарная" ось
+     t=1-x-y). Параметр POS задает положение подписи: при POS=0 - по
+     центру оси, при POS>0 - около максимальных значений, при POS<0 -
+     около минимальных значений. Параметр SIZE задает размер шрифта (по
+     умолчанию в 1.4 раза больше чем у меток). *Note Text printing::.
+
+
+File: mgl_ru.info,  Node: Legend,  Next: 1D plotting,  Prev: Axis and Colorbar,  Up: MGL interface
+
+1.9 Легенда
+==================
+
+Эти команды обеспечивают рисование легенды графика (полезно для *note
+1D plotting::). Запись в легенде состоит из двух строк: одна для стиля
+линии и маркеров, другая с текстом описания (с включенным разбором
+TeX-их команд), накапливаемые во внутренние массивы с помощью команды
+*note addlegend:: или опции *note legend::. Положение легенды можно
+задать автоматически или вручную. Параметры FONT и SIZE задают стиль и
+размер шрифта. Параметр LLEN задает относительную ширину примера линии.
+Ели стиль линии пустой, то соответствующий текст печатается без
+отступа. Если строка FONT содержит символ `A', то координаты легенды
+считаются относительно картинки (а не текущего subplot). См. раздел
+*note Legend sample::, для примеров кода и графика.
+
+ -- Команда MGL: legend [`pos=3' 'fnt'='rL' `size=-1 llen=0.1']
+     Рисует легенду из накопленных записей шрифтом FNT размером SIZE.
+     Параметр POS задает положение легенды: `0' - в нижнем левом углу,
+     `1' - нижнем правом углу, `2' - верхнем левом углу, `3' - верхнем
+     правом углу (по умолчанию).
+
+ -- Команда MGL: legend `x y' ['fnt'='rL' `size=-1 llen=0.1']
+     Рисует легенду из накопленных записей шрифтом FONT размером SIZE.
+     Положение легенды задается параметрами X, Y, которые полагаются
+     нормированными в диапазоне [0,1].
+
+ -- Команда MGL: addlegend 'text' 'stl'
+     Добавляет описание TEXT кривой со стилем STL (*note Line styles::)
+     во внутренний массив записей легенды. Максимальное число записей
+     100.
+
+ -- Команда MGL: clearlegend
+     Очищает внутренний массив записей легенды.
+
+ -- Команда MGL: legendbox `val'
+     Включает/выключает рисование прямоугольника вокруг легенды. По
+     умолчанию (=`on') прямоугольник рисуется.
+
+ -- Команда MGL: legendmarks `val'
+     Задает число маркеров в легенде. По умолчанию используется 1
+     маркер.
+
+
+File: mgl_ru.info,  Node: 1D plotting,  Next: 2D plotting,  Prev: Legend,  Up: MGL interface
+
+1.10 1D графики
+======================
+
+Эти команды строят графики для одномерных (1D) массивов. Одномерными
+считаются массивы, зависящие только от одного параметра (индекса)
+подобно кривой в параметрической форме {x(i),y(i),z(i)}, i=1...n. Есть
+5 основных типов 1D графиков: линия (*note plot::), линия с заполнением
+(*note area::), ступеньки (*note step::), прямоугольники (*note bars::,
+*note barh::) и вертикальные линии (*note stem::). Все эти типы
+графиков имеют похожий интерфейс. Есть версии для рисования в
+пространстве и на плоскости. В последнем случае имеется возможность
+использования только одного массива. Стиль линии и маркеров указывается
+строковой переменной. Если она равна `'''. Кроме того, есть еще
+несколько типов графиков для одномерных массивов, имеющих другой
+интерфейс и вид: поверхность вращения кривой (*note torus::), диаграмма
+(*note chart::), размер ошибки (*note error::), маркеры переменного
+размера (*note mark::), трубками (*note tube::) и т.д. См. раздел *note
+1D plot sample::, для примеров кода и графика.
+
+   График рисуется для каждой строки если один из массивов матрица.
+Размер по 1-ой координате *должен быть одинаков* для всех массивов
+`xdat.nx=ydat.nx=zdat.nx'. Если массив XDAT не указан, то используется
+массив со значениями равно распределенными вдоль оси x. Если массив
+ZDAT не указан, то используется ZDAT[i] = ZVAL. Строка STL задает цвет
+и стиль линии и маркеров (*note Line styles::). По умолчанию (`stl=''')
+рисуется сплошная линия с текущим цветом из палитры.
+
+ -- Команда MGL: plot ydat ['stl'=" `zval=nan']
+ -- Команда MGL: plot xdat ydat ['stl'=" `zval=nan']
+ -- Команда MGL: plot xdat ydat zdat ['stl'="]
+     Рисует ломанную линию между точками {X[i], Y[i], Z[i]}. См. также
+     *note area::, *note step::, *note stem::, *note tube::, *note
+     mark::, *note error::, *note belt::, *note tens::. См. раздел
+     *note Plot sample::, для примеров кода и графика.
+
+ -- Команда MGL: radar adat ['stl'=" `r=-1']
+     Рисует radar chart, представляющий собой ломанную с вершинами на
+     радиальных линиях (типа ломанной в полярных координатах). График
+     рисуется для каждой строки если один из массивов матрица. Параметр
+     R задает дополнительный сдвиг данных (т.е. используется A+R вместо
+     A). Если `r<0', то `r=max(0, -min(a)'. Если STL содержит символ
+     `#', то также рисуется "сетка" (радиальные линии и круг для R).
+     См. также *note plot::. См. раздел *note Radar sample::, для
+     примеров кода и графика.
+
+ -- Команда MGL: tens ydat cdat ['stl'=" `zval=nan']
+ -- Команда MGL: tens xdat ydat cdat ['stl'=" `zval=nan']
+ -- Команда MGL: tens xdat ydat zdat cdat ['stl'="]
+     Рисует ломанную линию по точкам {X[i], Y[i], Z[i]} с цветом,
+     определяемым массивом C[i] (типа графика натяжений). См. также
+     *note plot::, *note mesh::, *note fall::. См. раздел *note Tens
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: area ydat ['stl'=" `zval=nan']
+ -- Команда MGL: area xdat ydat ['stl'=" `zval=nan']
+ -- Команда MGL: area xdat ydat zdat ['stl'="]
+     Рисует ломанную линию по точками {XDAT[i], YDAT[i], ZDAT[i]} и
+     закрашивает ее вниз до плоскости осей координат. Можно
+     использовать градиентное закрашивание если число указанных цветов
+     в STL равно удвоенному числу кривых для построения. Если строка
+     содержит символ `a', то линии рисуются одна поверх другой (с
+     суммированием) - того же эффекта можно достичь вызовом `cumsum
+     ydat 'y'' перед построением графика. См. также *note plot::, *note
+     bars::, *note stem::, *note region::. См. раздел *note Area
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: region fdat gdat ['stl'=" `inside=off']
+ -- Команда MGL: region xdat fdat gdat ['stl'=" `inside=off']
+     Закрашивает область между 2 кривыми {XDAT[i], FDAT[i]} и {XDAT[i],
+     GDAT[i]}. При  `inside=off' закрашивается только область y1<y<y2,
+     в противном случае также будет закращена область y2<y<y1. Можно
+     использовать градиентное закрашивание если число указанных цветов
+     STL равно удвоенному числу кривых для построения. См. также *note
+     area::, *note bars::, *note stem::. См. раздел *note Region
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: stem ydat ['stl'=" `zval=nan']
+ -- Команда MGL: stem xdat ydat ['stl'=" `zval=nan']
+ -- Команда MGL: stem xdat ydat zdat ['stl'="]
+     Рисует вертикальные линии из точек {XDAT[i], YDAT[i], ZDAT[i]} до
+     плоскости осей координат. См. также *note area::, *note bars::,
+     *note plot::, *note mark::. См. раздел *note Stem sample::, для
+     примеров кода и графика.
+
+ -- Команда MGL: bars ydat ['stl'=" `zval=nan']
+ -- Команда MGL: bars xdat ydat ['stl'=" `zval=nan']
+ -- Команда MGL: bars xdat ydat zdat ['stl'="]
+     Рисует вертикальные полосы (прямоугольники) из точек {XDAT[i],
+     YDAT[i], ZDAT[i]} до плоскости осей координат. Если строка STL
+     содержит символ `a', то линии рисуются одна поверх другой. Если
+     строка содержит символ `f', то рисуется график типа waterfall для
+     определения кумулятивного эффекта последовательности положительных
+     и отрицательных значений. Можно использовать разные цвета для
+     положительных и отрицательных значений если число указанных цветов
+     равно удвоенному числу кривых для построения. См. также *note
+     barh::, *note area::, *note stem::, *note chart::. См. раздел
+     *note Bars sample::, для примеров кода и графика.
+
+ -- Команда MGL: barh xdat ['stl'=" `zval=nan']
+ -- Команда MGL: barh ydat xdat ['stl'=" `zval=nan']
+     Рисует горизонтальные полосы (прямоугольники) из точек {XDAT[i],
+     YDAT[i]} до плоскости оси y. Если массив YDAT не указан, то
+     используется массив со значениями равно распределенными вдоль оси
+     y. Если строка STL содержит символ `a', то линии рисуются одна
+     поверх другой. Если строка содержит символ `f', то рисуется график
+     типа waterfall для определения кумулятивного эффекта
+     последовательности положительных и отрицательных значений. Можно
+     использовать разные цвета для положительных и отрицательных
+     значений если число указанных цветов равно удвоенному числу кривых
+     для построения. См. также *note bars::. См. раздел *note Barh
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: chart adat ['col'="]
+     Рисует цветные полосы (пояса) для массива данных ADAT. Число полос
+     равно числу строк ADAT (равно A.NY). Цвет полос поочередно
+     меняется из цветов указанных в COL или в палитре (если `col=''').
+     Пробел в цветах соответствует прозрачному "цвету", т.е.
+     соответствующая полоса не рисуется. Ширина полосы пропорциональна
+     значению элемента в ADAT. График строится только для массивов не
+     содержащих отрицательных значений. Если строка COL содержит `#',
+     то рисуется также черная граница полос. График выглядит лучше в 3d
+     (после вращения системы координат) и/или в полярной системе
+     координат (становится Pie chart). См. раздел *note Chart sample::,
+     для примеров кода и графика.
+
+ -- Команда MGL: step ydat ['stl'=" `zval=nan']
+ -- Команда MGL: step xdat ydat ['stl'=" `zval=nan']
+ -- Команда MGL: step xdat ydat zdat ['stl'="]
+     Рисует ступеньки для точек массива {XDAT[i], YDAT[i], ZDAT[i]}.
+     См. также *note plot::, *note stem::, *note tile::, *note boxs::.
+     См. раздел *note Step sample::, для примеров кода и графика.
+
+ -- Команда MGL: torus zdat ['stl'="]
+ -- Команда MGL: torus rdat zdat ['stl'="]
+     Рисует поверхность вращения кривой {RDAT[i], ZDAT[i], ZDAT[i]}
+     относительно оси *note axialdir::. Если массив RDAT не указан, то
+     используется массив со значениями равно распределенными вдоль оси
+     x. См. также *note plot::, *note axial::. См. раздел *note Torus
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: tube ydat rdat ['stl'=" `zval=nan']
+ -- Команда MGL: tube ydat `rval' ['stl'=" `zval=nan']
+ -- Команда MGL: tube xdat ydat rdat ['stl'=" `zval=nan']
+ -- Команда MGL: tube xdat ydat `rval' ['stl'=" `zval=nan']
+ -- Команда MGL: tube xdat ydat zdat rdat ['stl'="]
+ -- Команда MGL: tube xdat ydat zdat `rval' ['stl'="]
+     Рисует трубу радиуса RDAT[i] (or RVAL) вдоль кривой между точками
+     {XDAT[i], YDAT[i], ZDAT[i]}. См. также *note plot::. См. раздел
+     *note Tube sample::, для примеров кода и графика.
+
+ -- Команда MGL: mark ydat rdat ['stl'=" `zval=nan']
+ -- Команда MGL: mark xdat ydat rdat ['stl'=" `zval=nan']
+ -- Команда MGL: mark xdat ydat zdat rdat ['stl'="]
+     Рисует маркеры размером RDAT[i]*`marksize' в точках {XDAT[i],
+     YDAT[i], ZDAT[i]}. Для рисования маркеров одинакового размера
+     можно использовать функцию `plot' с невидимой линией (со стилем
+     содержащим ` '). См. также *note plot::, *note textmark::, *note
+     stem::, *note error::. См. раздел *note Mark sample::, для
+     примеров кода и графика.
+
+ -- Команда MGL: textmark ydat 'txt' ['stl'=" `zval=nan']
+ -- Команда MGL: textmark ydat rdat 'txt' ['stl'=" `zval=nan']
+ -- Команда MGL: textmark xdat ydat rdat 'txt' ['stl'=" `zval=nan']
+ -- Команда MGL: textmark xdat ydat zdat rdat 'txt' ['stl'="]
+     Рисует текст TXT как маркер с размером пропорциональным
+     RDAT[i]*`marksize' в точках {XDAT[i], YDAT[i], ZDAT[i]}. Если
+     массив RDAT не указан, то полагается RDAT[i] = 1. См. также *note
+     plot::, *note mark::, *note stem::. См. раздел *note TextMark
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: error ydat yerr ['stl'=" `zval=nan']
+ -- Команда MGL: error xdat ydat yerr ['stl'=" `zval=nan']
+ -- Команда MGL: error xdat ydat xerr yerr ['stl'=" `zval=nan']
+     Рисует размер ошибки {XERR[i], YERR[i]} в точках {XDAT[i],
+     YDAT[i]} на плоскости Z = ZVAL. Такой график полезен для
+     отображения ошибки эксперимента, вычислений и пр. См. также *note
+     plot::. См. раздел *note Error sample::, для примеров кода и
+     графика.
+
+ -- Команда MGL: boxplot adat ['stl'=" `zval=nan']
+ -- Команда MGL: boxplot xdat adat ['stl'=" `zval=nan']
+     Рисует boxplot (называемый также как box-and-whisker diagram или
+     как "ящик с усами") в точках XDAT[i] на плоскости Z = ZVAL. Это
+     график, компактно изображающий распределение вероятностей
+     ADAT[i,j] (минимум, нижний квартиль (Q1), медиана (Q2), верхний
+     квартиль (Q3) и максимум) вдоль второго (j-го) направления. См.
+     также *note plot::, *note error::, *note bars::. См. раздел *note
+     BoxPlot sample::, для примеров кода и графика.
+
+
+File: mgl_ru.info,  Node: 2D plotting,  Next: 3D plotting,  Prev: 1D plotting,  Up: MGL interface
+
+1.11 2D графики
+======================
+
+Эти команды строят графики для двумерных (2D) массивов. Двумерными
+считаются массивы, зависящие только от двух параметров (индексов)
+подобно матрице f(x_i,y_j), i=1...n, j=1...m. Есть несколько основных
+типов 2D графиков: сплошная поверхность (*note surf::), сетчатая
+поверхность (*note mesh::), поверхность из ящиков (*note boxs::),
+поверхность из плиток (*note tile::), водопад (*note fall::), ленточки
+(*note belt::), график плотности (*note dens::), линии уровня (*note
+cont::), линии уровня с заполнением (*note contf::) и результат их
+вращения (*note axial::). В функциях *note cont::, *note contf:: и
+*note axial:: значения уровней можно задавать автоматически и вручную.
+Можно также нарисовать сетку (*note grid::) по массиву данных для
+улучшения вида графика плотности или линий уровня. Каждый тип графика
+имеет похожий интерфейс. Есть версия для рисования одного массива с
+автоматическими координатами и версия для параметрически заданной
+поверхности. См. раздел *note 1D plot sample::, для примеров кода и
+графика.
+
+   Строка SCH задает цветовую схему (*note Color scheme::. Предыдущая
+цветовая схема используется по умолчанию. Младшие размерности массивов
+XDAT, YDAT, ZDAT должны быть одинаковы `xdat.nx=zdat.nx &&
+ydat.nx=zdat.ny' или `xdat.nx=ydat.nx=zdat.nx &&
+xdat.ny=ydat.ny=zdat.ny'. Массивы XDAT и YDAT могут быть векторами (не
+матрицами как ZDAT). Если массивы XDAT, YDAT не указаны, то
+используются массивы со значениями равно распределенными вдоль осей x,
+y. График строится для каждого z среза данных.
+
+ -- Команда MGL: surf zdat ['sch'="]
+ -- Команда MGL: surf xdat ydat zdat ['sch'="]
+     Рисует параметрически заданную поверхность {XDAT[i,j], YDAT[i,j],
+     ZDAT[i,j]}. Если SCH содержит `#', то на поверхности рисуется
+     сетка. См. также *note mesh::, *note dens::, *note belt::, *note
+     tile::, *note boxs::, *note surfc::, *note surfa::. См. раздел
+     *note Surf sample::, для примеров кода и графика.
+
+ -- Команда MGL: mesh zdat ['sch'="]
+ -- Команда MGL: mesh xdat ydat zdat ['sch'="]
+     Рисует сетчатую поверхность, заданную параметрически {XDAT[i,j],
+     YDAT[i,j], ZDAT[i,j]}. См. также *note surf::, *note fall::, *note
+     meshnum::, *note cont::, *note tens::. См. раздел *note Mesh
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: fall zdat ['sch'="]
+ -- Команда MGL: fall xdat ydat zdat ['sch'="]
+     Рисует водопад для параметрически заданной поверхности {XDAT[i,j],
+     YDAT[i,j], ZDAT[i,j]}. График удобен для построения нескольких
+     кривых, сдвинутых вглубь друг относительно друга. Если SCH
+     содержит `x', то линии рисуются вдоль x-оси (по умолчанию линии
+     рисуются вдоль y-оси). См. также *note belt::, *note mesh::, *note
+     tens::, *note meshnum::. См. раздел *note Fall sample::, для
+     примеров кода и графика.
+
+ -- Команда MGL: belt zdat ['sch'="]
+ -- Команда MGL: belt xdat ydat zdat ['sch'="]
+     Рисует ленточки для параметрически заданной поверхности
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. Если SCH содержит `x', то линии
+     рисуются вдоль x-оси (по умолчанию линии рисуются вдоль y-оси).
+     См. также *note fall::, *note surf::, *note plot::, *note
+     meshnum::. См. раздел *note Belt sample::, для примеров кода и
+     графика.
+
+ -- Команда MGL: boxs zdat ['sch'="]
+ -- Команда MGL: boxs xdat ydat zdat ['sch'="]
+     Рисует вертикальные ящики для параметрически заданной поверхности
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. См. также *note surf::, *note
+     dens::, *note tile::, *note step::. См. раздел *note Boxs
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: tile zdat ['sch'="]
+ -- Команда MGL: tile xdat ydat zdat ['sch'="]
+     Рисует плитки для параметрически заданной поверхности {XDAT[i,j],
+     YDAT[i,j], ZDAT[i,j]}. График может использоваться как 3d
+     обобщение *note step::. См. также *note surf::, *note boxs::,
+     *note step::, *note tiles::. См. раздел *note Tile sample::, для
+     примеров кода и графика.
+
+ -- Команда MGL: dens zdat ['sch'=" `zval=nan']
+ -- Команда MGL: dens xdat ydat zdat ['sch'=" `zval=nan']
+     Рисует график плотности для параметрически заданной поверхности
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z = ZVAL. Если SCH содержит
+     `#', то рисуется сетка. См. также *note surf::, *note cont::,
+     *note contf::, *note boxs::, *note tile::, `dens[xyz]'. См. раздел
+     *note Dens sample::, для примеров кода и графика.
+
+ -- Команда MGL: cont vdat zdat ['sch'=" `zval=nan']
+ -- Команда MGL: cont vdat xdat ydat zdat ['sch'=" `zval=nan']
+     Рисует линии уровня для параметрически заданной поверхности
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z = ZVAL (или при Z=VDAT[k]
+     если `zval==nan'). Линии уровня рисуются для Z=VDAT[k]. Если SCH
+     содержит `#', то рисуется сетка. Если SCH содержит `t' или `T', то
+     значения VDAT[k] будут выведены вдоль контуров над (или под)
+     кривой. См. также *note dens::, *note contf::, *note contd::,
+     *note axial::, `cont[xyz]'. См. раздел *note Cont sample::, для
+     примеров кода и графика.
+
+ -- Команда MGL: cont zdat ['sch'=" `num=7 zval=nan']
+ -- Команда MGL: cont xdat ydat zdat ['sch'=" `num=7 zval=nan']
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале цветовой шкалы (см., *note caxis::).
+
+ -- Команда MGL: contf vdat zdat ['sch'=" `zval=nan']
+ -- Команда MGL: contf vdat xdat ydat zdat ['sch'=" `zval=nan']
+     Рисует закрашенные линии (контуры) уровня для параметрически
+     заданной поверхности {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z =
+     ZVAL (или при Z=V[k] если `zval=nan'). Линии уровня рисуются для
+     Z=VDAT[k]. Если SCH содержит `#', то рисуется сетка. См. также
+     *note dens::, *note cont::, *note contd::, `contf[xyz]'. См.
+     раздел *note ContF sample::, для примеров кода и графика.
+
+ -- Команда MGL: contf zdat ['sch'=" `num=7 zval=nan']
+ -- Команда MGL: contf xdat ydat zdat ['sch'=" `num=7 zval=nan']
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале цветовой шкалы (см., *note caxis::).
+
+ -- Команда MGL: contd vdat zdat ['sch'=" `zval=nan']
+ -- Команда MGL: contd vdat xdat ydat zdat ['sch'=" `zval=nan']
+     Рисует закрашенные линии (контуры) уровня для параметрически
+     заданной поверхности {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z =
+     ZVAL (или при Z=V[k] если `zval==nan') цветами заданными явно.
+     Линии уровня рисуются для Z=VDAT[k]. Строка SCH задает цвет
+     контуров: цвет k-го контура определяется символом
+     `sch[k%strlen(sch)]'. См. также *note dens::, *note cont::, *note
+     contf::, `cont[xyz]'. См. раздел *note ContD sample::, для
+     примеров кода и графика.
+
+ -- Команда MGL: contd zdat ['sch'=" `num=7 zval=nan']
+ -- Команда MGL: contd xdat ydat zdat ['sch'=" `num=7 zval=nan']
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале цветовой шкалы (см., *note caxis::).
+
+ -- Команда MGL: axial vdat zdat ['sch'="]
+ -- Команда MGL: axial vdat xdat ydat zdat ['sch'="]
+     Рисует поверхность вращения линии уровня для параметрически
+     заданной поверхности {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. Линии
+     уровня рисуются для ZDAT[i,j]=VDAT[k]. Если SCH содержит `#', то
+     рисуется сетчатая поверхность. Если строка содержит символы `x',
+     `y' или `z', то ось вращения устанавливается в указанное
+     направление (по умолчанию вдоль оси *note axialdir::). См. также
+     *note cont::, *note contf::, *note torus::, *note surf3::. См.
+     раздел *note Axial sample::, для примеров кода и графика.
+
+ -- Команда MGL: axial zdat ['sch'=" `num=3']
+ -- Команда MGL: axial xdat ydat zdat ['sch'=" `num=3']
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале цветовой шкалы (см., *note caxis::).
+
+ -- Команда MGL: grad pdat ['sch'=" `num=5 zval=nan']
+ -- Команда MGL: grad xdat ydat pdat ['sch'=" `num=5 zval=nan']
+ -- Команда MGL: grad xdat ydat zdat pdat ['sch'=" `num=5']
+     Рисует линии градиента скалярного поля PDAT заданного
+     параметрически {XDAT[i,j], YDAT[i,j]} или {XDAT[i,j,k],
+     YDAT[i,j,k], ZDAT[i,j,k]}. Число линий пропорционально NUM. Линии
+     рисуются только с границ интервала при NUM<0. См. также *note
+     dens::, *note cont::, *note dens3::, *note cont3::, *note flow::.
+     См. раздел *note Grad sample::, для примеров кода и графика.
+
+ -- Команда MGL: grid2 zdat ['sch'=" `zval=nan']
+ -- Команда MGL: grid2 xdat ydat zdat ['sch'=" `zval=nan']
+     Рисует плоскую сету для параметрически заданной поверхности
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z = ZVAL. См. также *note
+     dens::, *note cont::, *note contf::.
+
+
+File: mgl_ru.info,  Node: 3D plotting,  Next: Dual plotting,  Prev: 2D plotting,  Up: MGL interface
+
+1.12 3D графики
+======================
+
+Эти функции строят графики для трехмерных (3D) массивов. Трехмерными
+считаются массивы, зависящие от трех параметров (индексов) подобно
+матрице f(x_i,y_j,z_k), i=1...n, j=1...m, k=1...l. Есть 5 основных
+типов 3D графиков: поверхность постоянного уровня (*note surf3::),
+график плотности на срезе (DENS3), линии уровня на срезе (*note
+cont3::), закрашенные контуры уровня на срезе (*note contf3::) и график
+объемной прозрачности типа облака (*note cloud::). В функциях *note
+cont3::, *note contf3:: и *note surf3:: значения уровней можно задавать
+автоматически и вручную. Можно также нарисовать на срезе сетку (*note
+grid3::) по массиву данных для улучшения вида графика плотности или
+линий уровня. Каждый тип графика имеет похожий интерфейс. Есть версия
+для рисования одного массива с автоматическими координатами и версия
+для параметрически заданного массива. См. раздел *note 3D plot
+sample::, для примеров кода и графика.
+
+   Строка SCH задает цветовую схему (*note Color scheme::). Предыдущая
+цветовая схема используется по умолчанию. Массивы X, Y, Z могут быть
+векторами (не 3d массивами как A). Если массивы XDAT, YDAT, ZDAT не
+указаны, то используются массивы со значениями равно распределенными
+вдоль осей x, y, z.
+
+ -- Команда MGL: surf3 adat `val' ['sch'="]
+ -- Команда MGL: surf3 xdat ydat zdat adat `val' ['sch'="]
+     Рисует поверхность уровня для 3d массива, заданного параметрически
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) при
+     ADAT(x,y,z)=VAL. Если SCH содержит `#', то рисуется сетчатая
+     поверхность. См. также *note cloud::, *note dens3::, *note
+     surf3c::, *note surf3a::, *note axial::. См. раздел *note Surf3
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: surf3 adat ['sch'=" `num=5']
+ -- Команда MGL: surf3 xdat ydat zdat adat ['sch'=" `num=5']
+     Рисует NUM поверхностей уровня равномерно распределенных в
+     интервале цветовой шкалы (см. *note caxis::).
+
+ -- Команда MGL: dens3 adat 'dir' [`sval=-1' 'sch'="]
+ -- Команда MGL: dens3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="]
+     Рисует график плотности для 3d массива, заданного параметрически
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). График
+     рисуется на срезе SVAL в направлении DIR={`x', `y', `z'}. Если STL
+     содержит `#', то на срезе рисуется сетка. См. также *note cont3::,
+     *note contf3::, *note dens::, *note grid3::. См. раздел *note
+     Dens3 sample::, для примеров кода и графика.
+
+ -- Команда MGL: densa adat ['sch'="]
+ -- Команда MGL: densa xdat ydat zdat adat ['sch'="]
+     Рисует графики плотности на всех центральных срезах 3d данных.
+
+ -- Команда MGL: cont3 vdat adat 'dir' [`sval=-1' 'sch'="]
+ -- Команда MGL: cont3 vdat xdat ydat zdat adat 'dir' [`sval=-1'
+          'sch'="]
+     Рисует линии уровня для 3d массива, заданного параметрически
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). Линии рисуются
+     для значений из массива V на срезе SVAL в направлении DIR={`x',
+     `y', `z'}. Если STL содержит `#', то на срезе рисуется сетка. Если
+     SCH содержит `t' или `T', то значения VDAT[k] будут выведены вдоль
+     контуров над (или под) кривой. См. также *note dens3::, *note
+     contf3::, *note cont::, *note grid3::. См. раздел *note Cont3
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: cont3 adat 'dir' [`sval=-1' 'sch'=" `num=7']
+ -- Команда MGL: cont3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="
+          `num=7']
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале цветовой шкалы (см., *note caxis::).
+
+ -- Команда MGL: conta adat ['sch'=" `num=7']
+ -- Команда MGL: conta xdat ydat zdat adat ['sch'=" `num=7']
+     Рисует линии уровня на всех центральных срезах 3d данных.
+
+ -- Команда MGL: contf3 vdat adat 'dir' [`sval=-1' 'sch'="]
+ -- Команда MGL: contf3 vdat xdat ydat zdat adat 'dir' [`sval=-1'
+          'sch'="]
+     Рисует закрашенные линии (контуры) уровня для 3d массива,
+     заданного параметрически ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k],
+     ZDAT[i,j,k]). Линии рисуются для значений из массива V на срезе
+     SVAL в направлении DIR={`x', `y', `z'}. Если STL содержит `#', то
+     на срезе рисуется сетка. См. также *note dens3::, *note cont3::,
+     *note contf::, *note grid3::. См. раздел *note ContF3 sample::,
+     для примеров кода и графика.
+
+ -- Команда MGL: contf3 adat 'dir' [`sval=-1' 'sch'=" `num=7']
+ -- Команда MGL: contf3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="
+          `num=7']
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале цветовой шкалы (см., *note caxis::).
+
+ -- Команда MGL: contfa adat ['sch'=" `num=7']
+ -- Команда MGL: contfa xdat ydat zdat adat ['sch'=" `num=7']
+     Рисует закрашенные линии (контуры) уровня на всех центральных
+     срезах 3d данных.
+
+ -- Команда MGL: grid3 adat 'dir' [`sval=-1' 'sch'="]
+ -- Команда MGL: grid3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="]
+     Рисует сетку для 3d массива, заданного параметрически
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). График
+     рисуется на срезе SVAL в направлении DIR={`x', `y', `z'}. См.
+     также *note cont3::, *note contf3::, *note dens3::, *note grid2::.
+
+ -- Команда MGL: grida adat ['sch'="]
+ -- Команда MGL: grida xdat ydat zdat adat ['sch'="]
+     Рисует сетку на всех центральных срезах 3d данных.
+
+ -- Команда MGL: cloud adat ['sch'="]
+ -- Команда MGL: cloud xdat ydat zdat adat ['sch'="]
+     Рисует облачный график для 3d массива, заданного параметрически
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). График состоит
+     из кубиков с цветом и прозрачностью пропорциональной значениям
+     ADAT. Результат похож на облако - малые значения прозрачны, а
+     большие нет. Число кубиков зависит от *note meshnum::. Параметр
+     ALPHA меняет общую прозрачность графика. См. также *note surf3::.
+     См. раздел *note Cloud sample::, для примеров кода и графика.
+
+ -- Команда MGL: beam tr g1 g2 adat `rval' ['sch'=" `flag=0 num=3']
+     Рисует поверхность уровня для 3d массива ADAT при постоянном
+     значении ADAT=VAL. Это специальный тип графика для ADAT заданного
+     в сопровождающей системе координат вдоль кривой TR с ортами G1, G2
+     и с поперечным размером RVAL. Переменная FLAG - битовый флаг:
+     `0x1' - рисовать в сопровождающих (не лабораторных) координатах;
+     `0x2' - рисовать проекцию на плоскость \rho-z; `0x4' - рисовать
+     нормированное в каждом сечении поле. Размеры массивов по 1-му
+     индексу TR, G1, G2 должны быть nx>2. Размеры массивов по 2-му
+     индексу TR, G1, G2 и размер по 3-му индексу массива ADAT должны
+     быть одинаковы. См. также *note surf3::.
+
+
+File: mgl_ru.info,  Node: Dual plotting,  Next: Vector fields,  Prev: 3D plotting,  Up: MGL interface
+
+1.13 Парные графики
+================================
+
+Эти команды строят графики для двух связанных массивов. Есть несколько
+основных типов 3D графиков: поверхность и поверхность уровня с окраской
+по второму массиву (*note surfc::, *note surf3c::), поверхность и
+поверхность уровня с прозрачностью по второму массиву (*note surfa::,
+*note surf3a::), плитки переменного размера (*note tiles::), диаграмма
+точечного отображения (*note map::), STFA диаграмма (*note stfa::). В
+командах *note surf3a:: и *note surf3c:: значения уровней можно
+задавать автоматически и вручную. Каждый тип графика имеет похожий
+интерфейс. Есть версия для рисования одного массива с автоматическими
+координатами и версия для параметрически заданного массива.
+
+   Строка SCH задает цветовую схему (*note Color scheme::). Предыдущая
+цветовая схема используется по умолчанию. Массивы X, Y, Z могут быть
+векторами (не 3d массивами как A). Если массивы XDAT, YDAT, ZDAT не
+указаны, то используются массивы со значениями равно распределенными
+вдоль осей x, y, z.
+
+ -- Команда MGL: surfc zdat cdat ['sch'="]
+ -- Команда MGL: surfc xdat ydat zdat cdat ['sch'="]
+     Рисует параметрически заданную поверхность {XDAT[i,j], YDAT[i,j],
+     ZDAT[i,j]} с цветом, заданным массивом CDAT[i,j]. Если SCH
+     содержит `#', то на поверхности рисуется сетка. См. также *note
+     surf::, *note surfa::, *note surf3c::. См. раздел *note SurfC
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: surf3c adat cdat `val' ['sch'="]
+ -- Команда MGL: surf3c xdat ydat zdat adat cdat `val' ['sch'="]
+     Рисует поверхность уровня для 3d массива, заданного параметрически
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) при
+     A(x,y,z)=VAL. Аналогично *note surf3::, но цвет задается массивом
+     CDAT. Если SCH содержит `#', то рисуется сетчатая поверхность. См.
+     также *note surf3::, *note surfc::, *note surf3a::. См. раздел
+     *note Surf3C sample::, для примеров кода и графика.
+
+ -- Команда MGL: surf3c adat cdat ['sch'=" `num=5']
+ -- Команда MGL: surf3c xdat ydat zdat adat cdat ['sch'=" `num=5']
+     Рисует NUM поверхностей уровня равномерно распределенных в
+     интервале цветовой шкалы (см. *note caxis::).
+
+ -- Команда MGL: surfa zdat cdat ['sch'="]
+ -- Команда MGL: surfa xdat ydat zdat cdat ['sch'="]
+     Рисует параметрически заданную поверхность {XDAT[i,j], YDAT[i,j],
+     ZDAT[i,j]} с прозрачностью, заданным массивом CDAT[i,j]. Если SCH
+     содержит `#', то на поверхности рисуется сетка. См. также *note
+     surf::, *note surfc::, *note surf3a::. См. раздел *note SurfA
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: surf3a adat cdat `val' ['sch'="]
+ -- Команда MGL: surf3a xdat ydat zdat adat cdat `val' ['sch'="]
+     Рисует поверхность уровня для 3d массива, заданного параметрически
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) при
+     A(x,y,z)=VAL. Аналогично *note surf3::, но прозрачность задается
+     массивом CDAT. Если SCH содержит `#', то рисуется сетчатая
+     поверхность. См. также *note surf3::, *note surfa::, *note
+     surf3c::. См. раздел *note Surf3A sample::, для примеров кода и
+     графика.
+
+ -- Команда MGL: surf3a adat cdat ['sch'=" `num=5']
+ -- Команда MGL: surf3a xdat ydat zdat adat cdat ['sch'=" `num=5']
+     Рисует NUM поверхностей уровня равномерно распределенных в
+     интервале цветовой шкалы (см. *note caxis::).
+
+ -- Команда MGL: tiles zdat rdat ['sch'="]
+ -- Команда MGL: tiles xdat ydat zdat rdat ['sch'="]
+     Рисует плитки для параметрически заданной поверхности {XDAT[i,j],
+     YDAT[i,j], ZDAT[i,j]}. Аналогично *note tile::, но размер плиток
+     задается массивов RDAT. Это создает эффект "прозрачности" при
+     экспорте в файлы EPS. См. также *note surfa::, *note tile::. См.
+     раздел *note TileS sample::, для примеров кода и графика.
+
+ -- Команда MGL: map udat vdat ['sch'=" `pnts=on']
+ -- Команда MGL: map xdat ydat udat vdat ['sch'=" `pnts=on']
+     Визуализирует точечное отображение для матриц {UDAT, VDAT }
+     параметрически зависящих от координат XDAT, YDAT. Исходное
+     положение ячейки задает ее цвет. Высота пропорциональна якобиану
+     Jacobian(udat,vdat). График является аналогом диаграммы Арнольда.
+     Если `pnts=off', то рисуются грани, иначе цветные точки рисуются в
+     узлах матриц (полезно для "запутанного" отображения). См. раздел
+     *note Map sample::, для примеров кода и графика.
+
+ -- Команда MGL: stfa re im `dn' ['sch'=" `pnts=on']
+ -- Команда MGL: stfa xdat ydat re im `dn' ['sch'=" `pnts=on']
+     Рисует спектрограмму комплексного массива RE+i*`im' для Фурье
+     размером DN точек. Параметр DN - любое четное число. Например в 1D
+     случае, результатом будет график плотности от массива
+     res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn
+     размером {int(nx/dn), dn, ny}. Массивы RE, IM параметрически
+     зависят от координат XDAT, YDAT. См. раздел *note STFA sample::,
+     для примеров кода и графика.
+
+
+File: mgl_ru.info,  Node: Vector fields,  Next: Other plotting,  Prev: Dual plotting,  Up: MGL interface
+
+1.14 Векторные поля
+================================
+
+Эти функции рисуют графики для 2D и 3D векторных полей. Есть несколько
+типов графиков: просто векторное поле (*note vect::), вектора вдоль
+траектории (*note traj::), векторное поле каплями (*note dew::), нити
+тока (*note flow::), трубки тока (*note pipe::). Каждый тип графика
+имеет похожий интерфейс. Есть версия для рисования одного массива с
+автоматическими координатами и версия для параметрически заданного
+массива.
+
+   Строка SCH задает цветовую схему (*note Color scheme::). Предыдущая
+цветовая схема используется по умолчанию. Все размеры массивов AX и AY
+должны быть одинаковы. Младшие размерности массивов X, Y и AX должны
+быть одинаковы. Массивы X и Y могут быть векторами (не матрицами как
+AX). График строится для каждого z среза AX, AY для 2D случаев.
+
+ -- Команда MGL: traj xdat ydat udat vdat ['sch'=" `zval=nan len=0']
+ -- Команда MGL: traj xdat ydat zdat udat vdat wdat ['sch'=" `len=0']
+     Рисует вектора {UDAT, VDAT, WDAT} вдоль кривой {XDAT, YDAT, ZDAT}.
+     Длина векторов пропорциональна \sqrt{udat^2+vdat^2+wdat^2}. Строка
+     PEN задает цвет (*note Line styles::). По умолчанию (`pen=''').
+     Параметр LEN задает фактор длины векторов (если не нуль) или
+     выбирать длину пропорционально расстоянию между точками кривой
+     (если LEN=0). См. также *note vect::. См. раздел *note Traj
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: vect udat vdat ['sch'=" `zval=nan flag=0']
+ -- Команда MGL: vect xdat ydat udat vdat ['sch'=" `zval=nan flag=0']
+     Рисует векторное поле {UDAT, VDAT} параметрически зависящее от
+     координат XDAT, YDAT на плоскости при Z=ZVAL. Длина и цвет
+     векторов пропорциональна \sqrt{ax^2+ay^2}. Число рисуемых векторов
+     зависит от *note meshnum::. Параметр FLAG побитовый флаг для
+     настройки вид векторов: `1' - двуцветный вектор, `2' - одинаковая
+     длина векторов, `4' - рисует стрелку в точку сетки, `8' - рисует
+     стрелку с серединой в точке сетки, `16' - рисует штрихи вместо
+     стрелок. См. также *note flow::, *note dew::, *note vectc::. См.
+     раздел *note Vect sample::, для примеров кода и графика.
+
+ -- Команда MGL: vect udat vdat wdat ['sch'=" `flag=0']
+ -- Команда MGL: vect xdat ydat zdat udat vdat wdat ['sch'=" `flag=0']
+     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
+     3d массивами, а длина и цвет пропорциональны
+     \sqrt{udat^2+vdat^2+wdat^2}. См. раздел *note Vect 3D sample::,
+     для примеров кода и графика.
+
+ -- Команда MGL: vectc udat vdat ['sch'=" `zval=nan']
+ -- Команда MGL: vectc xdat ydat udat vdat ['sch'=" `zval=nan']
+     Аналогично *note vect:: c `flag=2+16=18'. См. раздел *note VectC
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: vectc udat vdat wdat ['sch'="]
+ -- Команда MGL: vectc xdat ydat zdat udat vdat wdat ['sch'="]
+     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
+     3d массивами, а длина и цвет пропорциональны
+     \sqrt{udat^2+vdat^2+wdat^2}. См. раздел *note VectC 3D sample::,
+     для примеров кода и графика.
+
+ -- Команда MGL: vectl udat vdat ['sch'=" `zval=nan']
+ -- Команда MGL: vectl xdat ydat udat vdat ['sch'=" `zval=nan']
+     Аналогично *note vect:: c `flag=1+16=17'. См. раздел *note VectL
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: vectl udat vdat wdat ['sch'="]
+ -- Команда MGL: vectl xdat ydat zdat udat vdat wdat ['sch'="]
+     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
+     3d массивами, а длина и цвет пропорциональны
+     \sqrt{udat^2+vdat^2+wdat^2}. См. раздел *note VectL 3D sample::,
+     для примеров кода и графика.
+
+ -- Команда MGL: dew udat vdat ['sch'=" `zval=nan']
+ -- Команда MGL: dew xdat ydat udat vdat ['sch'=" `zval=nan']
+     Рисует капли для векторного поля {UDAT, VDAT}, параметрически
+     зависящего от координат XDAT, YDAT при Z=ZVAL. Замечу, что график
+     требует много памяти и процессорного времени для своего создания!
+     Цвет капель пропорционален \sqrt{ax^2+ay^2}. Число капель
+     определяется *note meshnum::. См. также *note vect::. См. раздел
+     *note Dew sample::, для примеров кода и графика.
+
+ -- Команда MGL: flow udat vdat ['sch'=" `num=5 zval=nan']
+ -- Команда MGL: flow xdat ydat udat vdat ['sch'=" `num=5 zval=nan']
+     Рисует нити тока для векторного поля {UDAT, VDAT}, параметрически
+     зависящего от координат XDAT, YDAT на плоскости при z = ZVAL.
+     Число нитей пропорционально NUM. При NUM>0 нитей могут стартовать
+     и изнутри сетки, в противном случае только с краев. Цвет нитей
+     пропорционален \sqrt{udat^2+vdat^2}. Теплые цвета соответствуют
+     нормальному току (типа стока). Холодные цвета соответствуют
+     обратному току (типа источника). См. также *note pipe::, *note
+     vect::. См. раздел *note Flow sample::, для примеров кода и
+     графика.
+
+ -- Команда MGL: flow udat vdat wdat ['sch'=" `num=3']
+ -- Команда MGL: flow xdat ydat zdat udat vdat wdat ['sch'=" `num=3']
+     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
+     3d массивами, а цвет пропорционален \sqrt{udat^2+vdat^2+wdat^2}.
+     См. раздел *note Flow 3D sample::, для примеров кода и графика.
+
+ -- Команда MGL: flow `x0 y0' udat vdat ['sch'=" `zval=nan']
+ -- Команда MGL: flow `x0 y0' xdat ydat udat vdat ['sch'=" `zval=nan']
+     Рисует нить тока из точки {X0, Y0} для векторного поля {UDAT,
+     VDAT}, параметрически зависящего от координат XDAT, YDAT на
+     плоскости при z = ZVAL. Цвет нити пропорционален
+     \sqrt{udat^2+vdat^2}. Теплые цвета соответствуют нормальному току
+     (типа стока). Холодные цвета соответствуют обратному току (типа
+     источника).
+
+ -- Команда MGL: flow `x0 y0 z0' udat vdat wdat ['sch'="]
+ -- Команда MGL: flow `x0 y0 z0' xdat ydat zdat udat vdat wdat ['sch'="]
+     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
+     3d массивами, а цвет пропорционален \sqrt{udat^2+vdat^2+wdat^2}.
+
+ -- Команда MGL: pipe udat vdat ['sch'=" `r0=0.05 num=5 zval=nan']
+ -- Команда MGL: pipe xdat ydat udat vdat ['sch'=" `r0=0.05 num=5
+          zval=nan']
+     Рисует трубки тока для векторного поля {UDAT, VDAT},
+     параметрически зависящего от координат XDAT, YDAT на плоскости при
+     z = ZVAL. Число трубок пропорционально NUM. При NUM>0 нитей могут
+     стартовать и изнутри сетки, в противном случае только с краев.
+     Цвет и радиус трубок пропорционален \sqrt{udat^2+vdat^2}. Теплые
+     цвета соответствуют нормальному току (типа стока). Холодные цвета
+     соответствуют обратному току (типа источника). Параметр R0 задает
+     радиус трубок. При R0<0 радиус трубок обратно пропорционален их
+     амплитуде. См. также *note flow::, *note vect::. См. раздел *note
+     Pipe sample::, для примеров кода и графика.
+
+ -- Команда MGL: pipe udat vdat wdat ['sch'=" `r0=0.05 num=3']
+ -- Команда MGL: pipe xdat ydat zdat udat vdat wdat ['sch'=" `r0=0.05
+          num=3']
+     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
+     3d массивами, а цвет пропорционален \sqrt{udat^2+vdat^2+wdat^2}.
+     См. раздел *note Pipe 3D sample::, для примеров кода и графика.
+
+
+File: mgl_ru.info,  Node: Other plotting,  Next: Nonlinear fitting,  Prev: Vector fields,  Up: MGL interface
+
+1.15 Прочие графики
+================================
+
+Это команды, не относящиеся к какой-то специальной категории. Сюда
+входят функции построения графиков по текстовым формулам (*note
+fplot::, *note fsurf::), рисования поверхностей из треугольников (*note
+triplot::), произвольных точек в пространстве (*note dots::) и
+реконструкции по ним поверхности (*note crust::), графики плотности и
+линии уровня на плоскостях, перпендикулярных осям x, y или z
+(dens[xyz], cont[xyz], contf[xyz]). Каждый тип графика имеет похожий
+интерфейс. Есть версия для рисования одного массива с автоматическими
+координатами и версия для параметрически заданного массива. Строка SCH
+задает цветовую схему (*note Color scheme::). Предыдущая цветовая схема
+используется по умолчанию.
+
+ -- Команда MGL: densx dat ['sch'=" `val=nan']
+ -- Команда MGL: densy dat ['sch'=" `val=nan']
+ -- Команда MGL: densz dat ['sch'=" `val=nan']
+     Рисуют график плотности на x, y или z плоскостях. Если DAT - 3d
+     массив, то выполняется интерполяция к заданному срезу VAL. Функции
+     полезны для создания проекций 3D массивов на оси координат. См.
+     также `cont[xyz], contf[xyz]', *note dens::. См. раздел *note Dens
+     projection sample::, для примеров кода и графика.
+
+ -- Команда MGL: contx dat ['sch'=" `val=nan num=7']
+ -- Команда MGL: conty dat ['sch'=" `val=nan num=7']
+ -- Команда MGL: contz dat ['sch'=" `val=nan num=7']
+     Рисуют линии уровня на x, y или z плоскостях. Если DAT - 3d
+     массив, то выполняется интерполяция к заданному срезу VAL. Функции
+     полезны для создания проекций 3D массивов на оси координат. См.
+     также `dens[xyz], contf[xyz]', *note cont::. См. раздел *note Cont
+     projection sample::, для примеров кода и графика.
+
+ -- Команда MGL: contfx dat ['sch'=" `val=nan num=7']
+ -- Команда MGL: contfy dat ['sch'=" `val=nan num=7']
+ -- Команда MGL: contfz dat ['sch'=" `val=nan num=7']
+     Рисуют закрашенные контуры уровня на x, y или z плоскостях. Если
+     DAT - 3d массив, то выполняется интерполяция к заданному срезу
+     VAL. Функции полезны для создания проекций 3D массивов на оси
+     координат. См. также `dens[xyz], cont[xyz]', *note contf::.
+
+ -- Команда MGL: dots xdat ydat zdat ['sch'="]
+ -- Команда MGL: dots xdat ydat zdat adat ['sch'="]
+     Рисует произвольно расположенные точки {XDAT[i], YDAT[i],
+     ZDAT[i]}. Если определен массив ADAT[i], то он задает прозрачность
+     точек. См. также *note crust::, *note mark::, *note plot::. См.
+     раздел *note Dots sample::, для примеров кода и графика.
+
+ -- Команда MGL: crust xdat ydat zdat ['sch'="]
+     Реконструирует и рисует поверхность по произвольно расположенным
+     точкам {XDAT[i], YDAT[i], ZDAT[i]}. Если строка содержит `#', то
+     рисуется сетчатая поверхность. См. также *note dots::, *note
+     triplot::. См. раздел *note Crust sample::, для примеров кода и
+     графика.
+
+ -- Команда MGL: triplot idat xdat ydat ['sch'=" `zval=nan']
+ -- Команда MGL: triplot idat xdat ydat zdat ['sch'="]
+ -- Команда MGL: triplot idat xdat ydat zdat cdat ['sch'="]
+     Рисует поверхность из треугольников. Вершины треугольников
+     задаются индексами IDAT в массиве точек {XDAT[i], YDAT[i],
+     ZDAT[i]}. Если строка содержит `#', то рисуется сетчатая
+     поверхность. Размер по 1-му индексу массива IDAT должен быть 3 или
+     больше. Массивы XDAT, YDAT, ZDAT должны иметь одинаковые размеры.
+     Массив CDAT задает цвет треугольников (если IDAT.ny=CDAT.nx) или
+     цвет вершин (если XDAT.nx=CDAT.nx). См. также *note dots::, *note
+     crust::, *note quadplot::, *note tricont::.
+
+ -- Команда MGL: tricont vdat idat xdat ydat zdat cdat ['sch'="
+          `zval=nan']
+ -- Команда MGL: tricont vdat idat xdat ydat zdat ['sch'=" `zval=nan']
+ -- Команда MGL: tricont idat xdat ydat zdat ['sch'=" `num=7 zval=nan']
+     Рисует линии уровня поверхности из треугольников при Z = ZVAL (или
+     для z=VDAT[k] если `zval==NAN'). Вершины треугольников задаются
+     индексами IDAT в массиве точек {XDAT[i], YDAT[i], ZDAT[i]}. Размер
+     по 1-му индексу массива IDAT должен быть 3 или больше. Массивы
+     XDAT, YDAT, ZDAT должны иметь одинаковые размеры. Массив CDAT
+     (если указан) задает цвет треугольников (если IDAT.ny=CDAT.nx) или
+     цвет вершин (если XDAT.nx=CDAT.nx). См. также *note triplot::,
+     *note cont::.
+
+ -- Команда MGL: quadplot idat xdat ydat ['sch'=" `zval=nan']
+ -- Команда MGL: quadplot idat xdat ydat zdat ['sch'="]
+ -- Команда MGL: quadplot idat xdat ydat zdat cdat ['sch'="]
+     Рисует поверхность из четырехугольников. Вершины треугольников
+     задаются индексами IDAT в массиве точек {XDAT[i], YDAT[i],
+     ZDAT[i]}. Если строка содержит `#', то рисуется сетчатая
+     поверхность. Размер по 1-му индексу массива IDAT должен быть 4 или
+     больше. Массивы XDAT, YDAT, ZDAT должны иметь одинаковые размеры.
+     Массив CDAT задает цвет четырехугольников (если IDAT.ny=CDAT.nx)
+     или цвет вершин (если XDAT.nx=CDAT.nx). См. также *note triplot::.
+
+ -- Команда MGL: fplot 'y(x)' ['pen'=" `zval=nan num=100']
+     Рисует функцию `y(x)' в плоскости z=ZVAL с координатой `x' в
+     диапазоне x-оси координат. Параметр NUM задает минимальное число
+     точек по координате для графика. См. также *note plot::.
+
+ -- Команда MGL: fplot 'x(t)' 'y(t)' 'z(t)' ['pen'=" `num=100']
+     Рисует параметрическую кривую {`x(t)', `y(t)', `z(t)'}, где
+     координата `t' меняется в диапазоне [0, 1]. Параметр NUM задает
+     минимальное число точек по координате для графика. См. также *note
+     plot::.
+
+ -- Команда MGL: fsurf 'z(x,y)' ['sch'=" `num=100']
+     Рисует поверхность `z(x,y)' с координатами `x', `y' в диапазоне
+     x-,y-осей координат. Параметр NUM задает минимальное число точек
+     по координатам для графика. См. также *note surf::.
+
+ -- Команда MGL: fsurf 'x(u,v)' 'y(u,v)' 'z(u,v)' ['sch'=" `num=100']
+     Рисует параметрическую поверхность {`x(u,v)', `y(u,v)', `z(u,v)'},
+     где координаты `u', `v' меняются в диапазоне [0, 1]. Параметр NUM
+     задает минимальное число точек по координатам для графика. См.
+     также *note surf::.
+
+
+File: mgl_ru.info,  Node: Nonlinear fitting,  Next: Data create,  Prev: Other plotting,  Up: MGL interface
+
+1.16 Nonlinear fitting
+======================
+
+Эти команды подбирают параметры функций для наилучшей аппроксимации
+данных, т.е. минимизируют сумму \sum_i (f(x_i, y_i, z_i) -
+a_i)^2/s_i^2. При этом аппроксимирующая функция `f' может зависеть от
+одного аргумента `x' (1D случай), от двух аргументов `x,y' (2D случай)
+или от трех аргументов `x,y,z' (3D случай). Функция `f' также может
+зависеть от параметров. Список параметров задается строкой VAR
+(например, `abcd'). Обычно пользователь должен предоставить начальные
+значения параметров в переменной INI. Однако, при его отсутствии
+используются нулевые значения.
+
+   Команды *note fit:: и *note fits:: не рисуют полученные массивы. Они
+заполняют массив FIT по формуле `f' с найденными коэффициентами. При
+этом, координаты `x,y,z' равно распределены в вдоль осей координат.
+Число точек в FIT выбирается максимальным из размера массива FIT и 100.
+Формулу с найденными коэффициентами можно вывести с помощью команды
+*note putsfit::. См. раздел *note Fitting sample::, для примеров кода и
+графика.
+
+   Размерность массивов должны быть не меньше, чем число указанных
+массивов XDAT, YDAT, ZDAT. Также подбор коэффициентов будет
+осуществляться только вдоль указанных направлений (например, вдоль x и
+y если указаны только XDAT и YDAT). Если массив XDAT не указан, то
+используется массив со значениями равно распределенными вдоль оси x.
+
+ -- Команда MGL: fits adat sdat 'func' 'var' [ini=0]
+ -- Команда MGL: fits xdat adat sdat 'func' 'var' [ini=0]
+ -- Команда MGL: fits xdat ydat adat sdat 'func' 'var' [ini=0]
+ -- Команда MGL: fits xdat ydat zdat adat sdat 'func' 'var' [ini=0]
+     "Подгоняют" формулу вдоль x-, y- и z-направлений для массива
+     заданного параметрически A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) с
+     весовыми коэффициентами SDAT[i,j,k].
+
+ -- Команда MGL: fit adat 'func' 'var' [ini=0]
+ -- Команда MGL: fit xdat adat 'func' 'var' [ini=0]
+ -- Команда MGL: fit xdat ydat adat 'func' 'var' [ini=0]
+ -- Команда MGL: fit xdat ydat zdat adat 'func' 'var' [ini=0]
+     "Подгоняют" формулу вдоль x-, y- и z-направлений для массива
+     заданного параметрически A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) с
+     весовыми коэффициентами равными 1.
+
+ -- Команда MGL: putsfit `x y' ['pre'=" 'fnt'=" `size=-1']
+     Печатает последнюю подобранную формулу с найденными коэффициентами
+     в точке {X, Y}. Строка PRE будет напечатана перед формулой. Все
+     другие параметры такие же как в *note Text printing::.
+
+
+File: mgl_ru.info,  Node: Data create,  Next: Data filling,  Prev: Nonlinear fitting,  Up: MGL interface
+
+1.17 Создание данных
+==================================
+
+ -- Команда MGL: new dat [`nx=1 ny=1 nz=1']
+     Создает/пересоздает массив с именем DAT данных указанного размера
+     и заполняет его нулями. Ничего не делает при NX, NY, NZ
+     отрицательных или равных нулю.
+
+ -- Команда MGL: var dat `num v1 [v2=nan]'
+     Создает одномерный массив с именем DAT размером `num' и заполняет
+     его равномерно в диапазоне [V1, V2]. Если V2=`nan', то
+     используется V2=V1.
+
+ -- Команда MGL: list dat `v1 ...'
+     Создает массив с именем DAT и заполняет его числовыми значениями
+     аргументов `v1 ...'. Команда может создавать 1d- и 2d-массивы. Для
+     создания 2d-массивов требуется указать разделитель строк данных
+     `|'. Размер массива будет [максимальное число чисел в строке *
+     число строк]. Например, команда `list 1 | 2 3' создаст массив [1
+     0; 2 3]. Отмечу, что максимальное число аргументов 1000.
+
+ -- Команда MGL: list dat d1 ...
+     Создает массив с именем DAT и заполняет его числами из массивов
+     `d1 ...'. Команда может создавать 2d- и 3d-массивы (если аргументы
+     2d массивы). Младшие размерности всех массивов в аргументах должны
+     быть равны размерности D1. Отмечу, что максимальное число
+     аргументов 1000.
+
+ -- Команда MGL: copy dat dat2 ['eq'=" `on_axis=on']
+ -- Команда MGL: copy dat `val'
+     Создает массив с именем DAT и копирует в него данные из массива
+     DAT2. При этом, если указан параметр EQ, то данные будут изменены
+     по формуле аналогично команде *note fill:: (для `on_axis=on') или
+     *note modify:: (для `on_axis=off').
+
+ -- Команда MGL: idset dat 'ids'
+     Устанавливает символьные обозначения для колонок данных. Строка
+     должна содержать символы 'a'...'z' один на колонку (без пробелов).
+
+ -- Команда MGL: info dat [`detail=off']
+     Выводит информацию о массиве (размер, максимальное/минимальное
+     значение, моменты и пр.). При `detail=off' показывается только
+     краткая информация.
+
+ -- Команда MGL: info 'text'
+     Выводит текст TEXT как информацию (предупреждение).
+
+
+File: mgl_ru.info,  Node: Data filling,  Next: Rearrange data,  Prev: Data create,  Up: MGL interface
+
+1.18 Заполнение данных
+======================================
+
+ -- Команда MGL: fill dat v1 v2 ['dir'='x']
+     Заполняет значениями равно распределенными в диапазоне [V1, V2] в
+     направлении DIR={`x',`y',`z'}.
+
+ -- Команда MGL: fill dat 'eq' [vdat=0 wdat=0]
+     Заполняет значениями вычисленными по формуле EQ. Формула
+     представляет собой произвольное выражение, зависящее от переменных
+     `x', `y', `z', `u', `v', `w'. Координаты `x', `y', `z' полагаются
+     меняющимися в диапазоне осей координат (в отличие от *note
+     modify::). Переменная `u' - значения исходного массива, переменные
+     `v', `w' - значения массивов VDAT, WDAT. Последние могут быть
+     опущены.
+
+ -- Команда MGL: modify dat 'eq' [`dim=0']
+ -- Команда MGL: modify dat 'eq' vdat [wdat=0]
+     Заполняет значениями вычисленными по формуле EQ. Формула
+     представляет собой произвольное выражение, зависящее от переменных
+     `x', `y', `z', `u', `v', `w'. Координаты `x', `y', `z' полагаются
+     меняющимися в диапазоне [0,1] (в отличие от *note fill::).
+     Переменная `u' - значения исходного массива, переменные `v', `w' -
+     значения массивов VDAT, WDAT. Последние могут быть опущены. Если
+     указан DIM>0, то изменяются только слои >=DIM.
+
+ -- MGL command: put dat `val [i=: j=: k=:]'
+     Присваивает значения (под-)массива DAT[I, J, K] = VAL. Индексы I,
+     J, K равные `:' задают значениия VAL для всего диапазона
+     соответствующего направления(ий). Например, `put dat val : 0 :'
+     задает DAT[i,0,j]=VAL для i=0...(DAT.nx-1), j=0...(DAT.nz-1).
+
+ -- MGL command: put dat vdat [`i=: j=: k=:']
+     Копирует значения из массива VDAT в диапазон значений массива DAT.
+     Индексы I, J, K равные `:' задают диапазон изменения значений в
+     соответствующих направление(ях). Младшие размерности массива VDAT
+     должны быть больше выбранного диапазона массива DAT. Например,
+     `put dat v : 0 :' присвоит DAT[i,0,j]=VDAT.ny>DAT.nz ? VDAT[i,j] :
+     VDAT[i], где i=0...(DAT.nx-1), j=0...(DAT.nz-1) и условие
+     vdat.nx>=dat.nx выполнено.
+
+
+File: mgl_ru.info,  Node: Rearrange data,  Next: File I/O,  Prev: Data filling,  Up: MGL interface
+
+1.19 Изменение размеров данных
+=====================================================
+
+ -- Команда MGL: rearrange dat `mx [my=0 mz=0]'
+     Изменяет размерность данных без изменения самого массива данных,
+     так что результирующий массив MX*MY*MZ < nx*ny*nz. Если один из
+     параметров MY или MZ ноль, то он будет выбран оптимальным образом.
+     Например, если MY=0, то будет MY=nx*ny*nz/MX и MZ=1.
+
+ -- Команда MGL: extend dat `n1 [n2=0]'
+     Увеличивает размер данных путем вставки (|N1|+1) новых срезов
+     после (для N1>0) или перед (для N1<0) существующими данными. Можно
+     добавить сразу 2 размерности для 1d массива, используя второй
+     параметр N2. Данные в новые срезы будут скопированы из
+     существующих. Например, для N1>0 новый массив будет a_ij^new =
+     a_i^old where j=0...N1. Соответственно, для N1<0 новый массив
+     будет a_ij^new = a_j^old, где i=0...|N1|.
+
+ -- Команда MGL: transpose dat ['dim'='yxz']
+     Транспонирует (меняет порядок размерностей) массив данных. Новый
+     порядок размерностей задается строкой DIM.
+
+ -- Команда MGL: squeeze dat `rx [ry=1 rz=1 sm=off]'
+     Уменьшает размер данных путем удаления элементов с индексами не
+     кратными RX, RY, RZ соответственно. Параметр SMOOTH задает
+     использовать сглаживания (т.е. out[i]=\sum_{j=i,i+r} a[j]/r) или
+     нет (т.е. out[i]=a[j*r]).
+
+ -- Команда MGL: crop dat `n1 n2' 'dir'
+     Обрезает границы данных при I<N1 и I>N2 (при N2>0) или
+     I>`n[xyz]'-N2 (при N2<=0) вдоль направления DIR.
+
+ -- Команда MGL: delete dat
+     Удаляет массив DAT и освобождает использованную память. Может быть
+     полезно для больших неиспользуемых массивов.
+
+ -- Команда MGL: delete dat 'dir' `[pos=off num=0]'
+     Удаляет NUM срезов вдоль направления DIR с позиции POS.
+
+ -- Команда MGL: insert dat 'dir' `[pos=off num=0]'
+     Вставляет NUM срезов вдоль направления DIR с позиции POS и
+     заполняет их нулями.
+
+
+File: mgl_ru.info,  Node: File I/O,  Next: Make another data,  Prev: Rearrange data,  Up: MGL interface
+
+1.20 Чтение/сохранение данных
+===================================================
+
+ -- Команда MGL: read dat 'fname'
+     Читает данные из текстового файла с разделителями символом
+     пробела/табуляции с автоматическим определением размера массива.
+     Двойной перевод строки начинает новый срез данных (по направлению
+     z).
+
+ -- Команда MGL: read dat 'fname' `mx [my=1 mz=1]'
+     Читает данные из текстового файла с заданными размерами. Ничего не
+     делается если параметры MX, MY или MZ равны нулю или отрицательны.
+
+ -- Команда MGL: readmat dat 'fname' [`dim=2']
+     Читает данные из текстового файла с размерами, указанными в первых
+     DIM числах файла. При этом переменная DIM задает размерность (1d,
+     2d, 3d) данных.
+
+ -- Команда MGL: readall dat 'templ' `v1 v2 [dv=1 slice=off]'
+     Объединяет данные из нескольких текстовых файлов. Имена файлов
+     определяются вызовом функции `sprintf(fname,templ,val);', где VAL
+     меняется от V1 до V2 с шагом DV. Данные загружаются один за другим
+     в один и тот же срез данных (при SLICE=`off') или срез-за-срезом
+     (при SLICE=`on').
+
+ -- Команда MGL: readall dat 'templ' `[slice=off]'
+     Объединяет данные из нескольких текстовых файлов, чьи имена
+     удовлетворяют шаблону TEMPL (например, TEMPL=`"t_*.dat"'). Данные
+     загружаются один за другим в один и тот же срез данных (при
+     SLICE=`off') или срез-за-срезом (при SLICE=`on').
+
+ -- Команда MGL: save dat 'fname'
+     Сохраняет массив данных в текстовый файл.
+
+ -- Команда MGL: readhdf dat 'fname' 'dname'
+     Читает массив с именем DNAME из HDF5 или HDF4 файла FNAME.
+
+ -- Команда MGL: savehdf dat 'fname' 'dname'
+     Сохраняет массив под именем DNAME в HDF5 или HDF4 файл FNAME.
+
+ -- Команда MGL: import dat 'fname' 'sch' [`v1=0 v2=1']
+     Читает данные из растрового файла. RGB значения пикселов
+     преобразуются в число в диапазоне [V1, V2] используя цветовую
+     схему SCH (*note Color scheme::).
+
+ -- Команда MGL: export dat 'fname' 'sch' [`v1=0 v2=0']
+     Сохраняет данные в растровый файл. Числовые значения,
+     нормированные в диапазон [V1, V2], преобразуются в RGB значения
+     пикселов, используя цветовую схему SCH (*note Color scheme::).
+     Если V1>=V2, то значения V1, V2 определяются автоматически как
+     минимальное и максимальное значение данных.
+
+
+File: mgl_ru.info,  Node: Make another data,  Next: Change data,  Prev: File I/O,  Up: MGL interface
+
+1.21 Создание новых данных
+=============================================
+
+ -- Команда MGL: combine res adat bdat
+     Возвращает в массиве данных RES прямое произведение массивов
+     (наподобие, res[i,j] = adat[i]*bdat[j] и т.д.).
+
+ -- Команда MGL: evaluate res dat idat [`norm=on']
+ -- Команда MGL: evaluate res dat idat jdat [`norm=on']
+ -- Команда MGL: evaluate res dat idat jdat kdat [`norm=on']
+     Возвращает массив данных RES, полученный в результате интерполяции
+     исходного массива в точках других массивов (например,
+     res[i,j]=dat[idat[i,j],jdat[i,j]]). Размеры массивов IDAT, JDAT,
+     KDAT должны совпадать. Координаты в IDAT, JDAT, KDAT полагаются
+     нормированными в диапазон [0,1] (при NORM=`on') или в диапазоны
+     [0,nx], [0,ny], [0,nz] соответственно.
+
+ -- Команда MGL: hist res dat `num v1 v2 [nsub=0]'
+ -- Команда MGL: hist res dat wdat `num v1 v2 [nsub=0]'
+     Возвращает распределение (гистограмму) RES из NUM точек от
+     значений массива DAT в диапазоне [V1, V2]. Массив WDAT задает веса
+     элементов (все веса равны 1 если WDAT не указан). Параметр NSUB
+     задает число дополнительных точек интерполяции (для сглаживания
+     получившейся гистограммы).
+
+ -- Команда MGL: hist res xdat adat
+ -- Команда MGL: hist res xdat ydat adat
+ -- Команда MGL: hist res xdat ydat zdat adat
+     Возвращает распределение (гистограмму) RES от значений массива
+     ADAT, параметрически зависящего от координат {XDAT,YDAT,ZDAT} в
+     диапазоне осей координат. Массив ADAT играет роль веса точки.
+     Число точек в результате RES - максимум из размера RES и 100.
+
+ -- Команда MGL: momentum res dat 'how' ['dir'='z']
+     Возвращает в массиве данных RES момент (1d массив) данных DAT
+     вдоль направления DIR. Строка HOW определяет тип момента. Момент
+     определяется как res_k = \sum_ij how(x_i,y_j,z_k) dat_ij/ \sum_ij
+     a_ij если DIR=`z' и т.д. Координаты `x', `y', `z' - индексы
+     массива в диапазоне [0,1].
+
+ -- Команда MGL: sum res dat 'dir'
+     Возвращает в массиве данных RES результат суммирования DAT вдоль
+     направления(ий) DIR.
+
+ -- Команда MGL: max res dat 'dir'
+     Возвращает в массиве данных RES максимальное значение DAT вдоль
+     направления(ий) DIR.  Gets array which is the maximal data values
+     in given direction or direction(s).
+
+ -- Команда MGL: min res dat 'dir'
+     Возвращает в массиве данных RES минимальное значение DAT вдоль
+     направления(ий) DIR.
+
+ -- Команда MGL: resize res dat `mx [my=1 mz=1]'
+     Возвращает массив данных RES размером MX, MY, MZ со значениями
+     полученными интерполяцией значений массива DAT.
+
+ -- Команда MGL: subdata res dat `xx [yy=: zz=:]'
+     Возвращает в RES подмассив массива данных DAT с фиксированными
+     значениями индексов с положительными значениями. Например,
+     `subdata a b : 2' выделяет третью строку (индексы начинаются с
+     нуля), `subdata a b 4 :' выделяет 5-ую колонку, `subdata a b : :
+     3' выделяет 4-ый срез и т.д.
+
+ -- Команда MGL: trace res dat
+     Возвращает массив REF диагональных элементов DAT[i,i] (для 2D
+     данных) или DAT[i,i,i] (для 3D данных) где i=0...nx-1. В 1D случае
+     возвращается сам массив данных DAT. Размеры массива данных должен
+     быть DAT.ny, DAT.nz >= DAT.nx или DAT.ny, DAT.nz = 1.
+
+ -- Команда MGL: transform dat 'type' real imag
+     Выполняет интегральное преобразование комплексных данных REAL,
+     IMAG в выбранном направлении и возвращает модуль результата в RES.
+     Порядок и тип преобразований задается строкой TYPE: первый символ
+     для x-направления, второй для y-направления, третий для
+     z-направления. Возможные символы: `f' - прямое преобразование
+     Фурье, `i' - обратное преобразование Фурье, `s' - синус
+     преобразование, `c' - косинус преобразование, `h' - преобразование
+     Ханкеля, `n' или ` ' - нет преобразования.
+
+ -- Команда MGL: transforma dat 'type' ampl phase
+     Аналогично предыдущему с заданными амплитудой AMPL и фазой PHASE
+     комплексных чисел.
+
+ -- Команда MGL: stfad res real imag `dn' ['dir'='x']
+     Выполняет оконное преобразование Фурье длиной DN для комплексных
+     данных REAL, IMAG и возвращает модуль результата в RES. Например,
+     для DIR=`x' результат будет иметь размер {int(nx/dn), dn, ny} и
+     будет равен res[i,j,k]=|\sum_d^dn
+     exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn.
+
+ -- Команда MGL: pde res 'ham' ini_re ini_im [`dz=0.1 k0=100']
+     Решает уравнение в частных производных du/dz =
+     i*k0*HAM(p,q,x,y,z,|u|)[u], где p=-i/k0*d/dx, q=-i/k0*d/dy -
+     псевдо-дифференциальные операторы. Параметры INI_RE, INI_IM задают
+     начальное распределение поля. Координаты в уравнении и в решении
+     полагаются в диапазоне осей координат. Замечу, что внутри этот
+     диапазон увеличивается в 3/2 раза для уменьшения отражения от
+     границ расчетного интервала. Параметр DZ задает шаг по
+     эволюционной координате z. В данный момент использован упрощенный
+     алгоритм, когда все "смешанные" члена (типа `x*p'->x*d/dx)
+     исключаются. Например, в 2D случае это функции типа ham = f(p,z) +
+     g(x,z,u). При этом допускаются коммутирующие комбинации (типа
+     `x*q'->x*d/dy). Переменная `u' используется для обозначения
+     амплитуды поля |u|. Это позволяет решать нелинейные задачи -
+     например, нелинейное уравнение Шредингера `ham='p^2+q^2-u^2''.
+     Также можно указать мнимую часть для поглощения (типа `ham =
+     'p^2+i*x*(x>0)''), но только если зависимость от `i' линейная,
+     т.е. ham = hre+i*him. См. раздел *note PDE sample::, для примеров
+     кода и графика.
+
+ -- Команда MGL: ray res 'ham' `x0 y0 z0 p0 q0 v0 [dt=0.1 tmax=10]'
+     Решает систему геометрооптических уравнений d_r_/dt = d HAM/d_p_,
+     d_p_/dt = -d HAM/d_r_. Это гамильтоновы уравнения для траектории
+     частицы в 3D случае. Гамильтониан HAM может зависеть от координат
+     `x', `y', `z', импульсов `p'=px, `q'=py, `v'=pz и времени `t': ham
+     = H(x,y,z,p,q,v,t). Начальная точка (при `t=0') задается
+     переменными {X0, Y0, Z0, P0, Q0, V0}. Параметры DT и TMAX задают
+     шаг и максимальное время интегрирования. Результат RES - массив
+     {x,y,z,p,q,v,t} с размером {7 * int(TMAX/DT+1) }. См. раздел *note
+     Beam tracing sample::, для примеров кода и графика.
+
+ -- Команда MGL: qo2d res 'ham' ini_re ini_im ray [`r=1 k0=100' xx=0
+          yy=0]
+     Решает уравнение в частных производных du/dt =
+     i*k0*HAM(p,q,x,y,|u|)[u] в сопровождающей системе координат, где
+     p=-i/k0*d/dx, q=-i/k0*d/dy - псевдо-дифференциальные операторы.
+     Параметры INI_RE, INI_IM задают начальное распределение поля.
+     Параметр RAY задает опорный луч для сопровождающей системы
+     координат. Можно использовать луч найденный с помощью `ray'.
+     Опорный луч должен быть достаточно гладкий, чтобы система
+     координат была однозначной и для исключения ошибок интегрирования.
+     Если массивы XX и YY указаны, то в них записываются декартовы
+     координаты для каждой точки найденного решения. См. также *note
+     pde::. См. раздел *note Beam tracing sample::, для примеров кода и
+     графика.
+
+ -- Команда MGL: jacobian res xdat ydat [zdat=0]
+     Вычисляет якобиан преобразования {i,j,k} в {XDAT,YDAT,ZDAT}, где
+     координаты {i,j,k} полагаются нормированными в интервал [0,1].
+     Якобиан находится по формуле det||dr_\alpha/d\xi_\beta||, где
+     r={XDAT,YDAT,ZDAT} и \xi={i,j,k}. Все размерности всех массивов
+     должны быть одинаковы. Данные должны быть трехмерными если указаны
+     все 3 массива {XDAT,YDAT,ZDAT} или двумерными если только 2
+     массива {XDAT,YDAT}.
+
+
+File: mgl_ru.info,  Node: Change data,  Next: Operators,  Prev: Make another data,  Up: MGL interface
+
+1.22 Изменение данных
+====================================
+
+Эти команды изменяют данные вдоль заданного направления(ий) типа
+например дифференцирования, интегрирования и т.д. Направление
+указывается строкой DIR, которая может содержать символы `x', `y' и/или
+`z', вдоль которых изменения будут применены.
+
+ -- Команда MGL: cumsum dat 'dir'
+     Суммирует с накоплением в выбранном направлении(ях).
+   
+ -- Команда MGL: integrate dat 'dir'
+     Выполняет интегрирование (подобно суммированию с накоплением) в
+     выбранном направлении(ях).
+   
+ -- Команда MGL: diff dat 'dir'
+     Выполняет дифференцирование в выбранном направлении(ях).
+
+ -- Команда MGL: diff dat xdat ydat [zdat=0]
+     Выполняет дифференцирование данных DAT, параметрически зависящих
+     от координат, в направлении XDAT с YDAT, ZDAT=constant. Параметр
+     ZDAT может быть опущен, что соответствует 2D случаю. Используются
+     следующие формулы (2D случай): da/dx =
+     (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j), где a_i=da/di, a_j=da/dj
+     обозначает дифференцирование вдоль 1-ой и 2-ой размерности.
+     Похожие формулы используются и в 3D случае. Порядок аргументов
+     можно менять - например, если данные a(i,j) зависят от координат
+     {x(i,j), y(i,j)}, то обычная производная по `x' будет равна `diff
+     a x y', а обычная производная по `y' будет равна `diff a y x'.
+
+ -- Команда MGL: diff2 dat 'dir'
+     Выполняет двойное дифференцирование (как в операторе Лапласа) в
+     выбранном направлении(ях).
+
+ -- Команда MGL: sinfft dat 'dir'
+     Выполняет синус преобразование в выбранном направлении(ях). Синус
+     преобразование есть \sum a_i \sin(k i).
+   
+ -- Команда MGL: cosfft dat 'dir'
+     Выполняет косинус преобразование в выбранном направлении(ях).
+     Синус преобразование есть \sum a_i \cos(k i).
+   
+ -- Команда MGL: hankel dat 'dir'
+     Выполняет преобразование Ханкеля в выбранном направлении(ях).
+     Преобразование Ханкеля есть \sum a_i J_0(k i).
+
+ -- Команда MGL: swap dat 'dir'
+     Меняет местами левую и правую части данных в выбранном
+     направлении(ях). Полезно для отображения результата FFT.
+   
+ -- Команда MGL: roll dat 'dir' num
+     Сдвигает данные на NUM ячеек в выбранном направлении(ях).
+     Соответствует замене индекса на I->(I+NUM)%N.
+
+ -- Команда MGL: mirror dat 'dir'
+     Отражает данные в выбранном направлении(ях). Соответствует замене
+     индекса на I->N-I.
+
+ -- Команда MGL: sew dat ['dir'='xyz' `da=2*pi']
+     Удаляет скачки данных (например, скачки фазы после обратных
+     тригонометрических функций) с периодом DA в выбранном
+     направлении(ях).
+
+ -- Команда MGL: smooth data `type' ['dir'='xyz']
+     Сглаживает данные в выбранном направлении(ях) методом TYPE. Сейчас
+     поддерживаются 4 метода: `0' ничего не делает, `1' линейное
+     усреднение по 3 точкам, `2' линейное усреднение по 5 точкам, `3'
+     квадратичное усреднение по 5 точкам.
+
+ -- Команда MGL: envelop dat ['dir'='x']
+     Находит огибающую данных в выбранном направлении. Только одно
+     направление может быть выбрано за раз.
+
+ -- Команда MGL: normsl dat `v1 v2' ['dir'='z' `keep=on sym=off']
+     Нормирует данные срез-за-срезом в выбранном направлении DIR в
+     интервал [V1,V2]. Если SYM=`on', то используется симметричный
+     интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Если KEEP=`on', то
+     максимальное значение k-го среза ограничено величиной \sqrt{\sum
+     a_ij(k)/\sum a_ij(0)}.
+
+ -- Команда MGL: norm dat `v1 v2 [sym=off dim=0]'
+     Нормирует данные в интервал [V1,V2]. Если SYM=`on', то
+     используется симметричный интервал [-max(|v1|,|v2|),
+     max(|v1|,|v2|)]. Изменения применяются только к срезам >=DIM.
+
+
+File: mgl_ru.info,  Node: Operators,  Next: Program flow,  Prev: Change data,  Up: MGL interface
+
+1.23 Операторы
+=======================
+
+ -- Команда MGL: multo dat dat2
+     Поэлементно умножает массив DAT на DAT2.
+
+ -- Команда MGL: multo dat `val'
+     Умножает каждый элемент на число.
+
+ -- Команда MGL: divto dat dat2
+     Поэлементно делит массив DAT на DAT2.
+
+ -- Команда MGL: divto dat `val'
+     Делит каждый элемент на число.
+
+ -- Команда MGL: addto dat dat2
+     Поэлементно прибавляет DAT2 к массиву DAT.
+
+ -- Команда MGL: addto dat `val'
+     Прибавляет число к каждому элементу.
+
+ -- Команда MGL: subto dat dat2
+     Поэлементно вычитает DAT2 из массива DAT.
+
+ -- Команда MGL: subto dat `val'
+     Вычитает число из каждого элемента.
+
+
+File: mgl_ru.info,  Node: Program flow,  Next: Command options,  Prev: Operators,  Up: MGL interface
+
+1.24 Программирование
+=====================================
+
+Эти команды управляют порядком выполнения других команд (условия,
+циклы, подпрограммы), (пере-)определяют аргументы скрипта и пр.
+
+ -- Команда MGL: chdir 'path'
+     Переходит в папку PATH.
+
+ -- Команда MGL: define $N smth
+     Задает N-ый аргумент скрипта равным SMTH. Отмечу, что SMTH
+     используется как есть (с символами `'' если присутствуют).
+     Выполняется только подстановка других макроопределений $0...$9,
+     $a...$z. Здесь N это цифра (0...9) или буква (a...z).
+
+ -- Команда MGL: define name smth
+     Определяет константу (скаляр) с именем `name' и числовым значением
+     `smth'. Позднее она может быть использована как обычное число.
+   
+ -- Команда MGL: defchr $N smth
+     Задает N-ый аргумент скрипта равным символу с UTF кодом SMTH.
+     Здесь N это цифра (0...9) или буква (a...z).
+   
+ -- Команда MGL: defnum $N smth
+     Задает N-ый аргумент скрипта равным числовому значению SMTH. Здесь
+     N это цифра (0...9) или буква (a...z).
+   
+ -- Команда MGL: defpal $N smth
+     Задает N-ый аргумент скрипта равным символу палитры с индексом,
+     найденным из SMTH. Здесь N это цифра (0...9) или буква (a...z).
+
+ -- Команда MGL: call 'fname' [ARG1 ARG2 ... ARG9]
+     Переходит к выполнению (вызывает) подпрограммы FNAME (или внешнего
+     скрипта, если функция не была найдена). Опциональные аргументы
+     передаются в подпрограмму. См. также *note func::.
+   
+ -- Команда MGL: func 'fname' [narg=0]
+     Определяет подпрограмму с именем FNAME и задает число требуемых
+     аргументов. Аргументы будут помещены в параметры скрипта $1, $2,
+     ... $9. Отмечу, что выполнение основной программы должно быть
+     остановлено до начала определений подпрограмм. См. также *note
+     stop::,  *note return::.
+   
+ -- Команда MGL: return
+     Возвращается из подпрограммы.
+
+ -- Команда MGL: if dat 'cond'
+     Начинает блок команд, выполняемый если каждый элемент DAT
+     удовлетворяет условию COND.
+
+ -- Команда MGL: if `val'
+     Начинает блок команд, выполняемый если `val' не ноль.
+   
+ -- Команда MGL: elseif dat 'cond'
+     Начинает блок команд, выполняемый если предыдущий `if' или
+     `elseif' не был выполнен и каждый элемент DAT удовлетворяет
+     условию COND.
+
+ -- Команда MGL: elseif `val'
+     Начинает блок команд, выполняемый если предыдущий `if' или
+     `elseif' не был выполнен и `val' не ноль.
+   
+ -- Команда MGL: else
+     Начинает блок команд, выполняемый если предыдущий `if' или
+     `elseif' не был выполнен.
+   
+ -- Команда MGL: endif
+     Заканчивает определение блока `if/elseif/else'.
+
+ -- Команда MGL: for $N `v1 v2 [dv=1]'
+     Начинает блок команд, выполняемый в цикле с $N-ым аргументом
+     изменяющимся от V1 до V2 с шагом DV. Здесь N это цифра (0...9) или
+     буква (a...z).
+
+ -- Команда MGL: for $N dat
+     Начинает блок команд, выполняемый в цикле с $N-ым аргументом
+     пробегающим значения массива DAT. Здесь N это цифра (0...9) или
+     буква (a...z).
+   
+ -- Команда MGL: next
+     Заканчивает блок цикла `for'.
+
+ -- Команда MGL: once `val'
+     Определяет код (между `once on' и `once off') который будет
+     выполнен только один раз. Полезно для работы с большими данными в
+     программах типа UDAV.
+   
+ -- Команда MGL: stop
+     Останавливает выполнение скрипта.
+
+
+File: mgl_ru.info,  Node: Command options,  Next: Suffixes,  Prev: Program flow,  Up: MGL interface
+
+1.25 Опции команд
+============================
+
+Опции команд позволяют легко настроить вид отдельного графика не меняя
+глобальных настроек для все рисунка. Опции указываются после команды.
+Каждая опция отделяется от предыдущей символом `;'. Опции работают так,
+что запоминают текущие настройки рисунка, применяют собственные
+настройки, выполняют команду и возвращают глобальные настройки обратно.
+Поэтому использование опций для команд обработки данных или настройки
+графика бесполезно.
+
+   Наиболее часто используемые опции - `xrange, yrange, zrange',
+устанавливающие границы изменения осей координат (и тем самым
+автоматических массивов). Например, команда `plot y; xrange 0.1 0.9'
+построит кривую с x-координатой равно распределенной в интервале 0.1
+... 0.9, а не вдоль текущей оси x.
+
+   Полный список опций: 
+
+ -- Опция MGL: alpha `val'
+ -- Опция MGL: alphadef `val'
+     Задает величину прозрачности поверхности. Значение должно быть в
+     диапазоне [0, 1]. См. также *note alphadef::
+   
+ -- Опция MGL: ambient `val'
+     Задает яркость фонового освещения. Значение должно быть в
+     диапазоне [0, 1]. См. также *note ambient::
+   
+ -- Опция MGL: crange `val1 val2'
+     Задает границы цветовой шкалы. См. также *note crange::
+   
+ -- Опция MGL: xrange `val1 val2'
+     Задает границы изменения координаты x. См. также *note xrange::
+   
+ -- Опция MGL: yrange `val1 val2'
+     Задает границы изменения координаты y. См. также *note yrange::
+   
+ -- Опция MGL: zrange `val1 val2'
+     Задает границы изменения координаты z. См. также *note zrange::
+   
+ -- Опция MGL: cut `val'
+     Задает обрезание точек за пределами осей координат. См. также
+     *note cut::
+   
+ -- Опция MGL: fontsize `val'
+     Задает размер текста. См. также *note font::
+   
+ -- Опция MGL: marksize `val'
+     Задает размер маркеров. См. также *note marksize::
+   
+ -- Опция MGL: meshnum `val'
+     Задает ориентировочное число линий, стрелок, ячеек и пр. См. также
+     *note meshnum::
+   
+ -- Опция MGL: legend 'txt'
+     Добавляет строку 'txt' во внутренний массив записей легенды. Стиль
+     линии и маркера аргумента последней вызванной команды построения
+     *note 1D plotting::. См. также *note legend::
+
+
+File: mgl_ru.info,  Node: Suffixes,  Next: Utilities,  Prev: Command options,  Up: MGL interface
+
+1.26 Суффиксы переменных
+==========================================
+
+Суффиксы позволяют быстро получить числовую характеристику (размер,
+максимальное или минимальное значение, сумму элементов и т.д.) массива
+данных и использовать ее как число (скаляр) в аргументах. Суффиксы
+начинаются с точки `.' сразу после (без пробелов) имени переменной и
+временного массива. Например, `a.nx' даст размер массива A по оси х,
+`b(1).max' даст максимальное значение второй строки массива B,
+`(c(:,0)^2).sum' даст сумму квадратов элементов первой колонки массива
+C и т.д.
+
+   Полный список суффиксов:
+*nx, ny, nz*
+     Размер массива в направлении x, y, z соответственно.
+
+*max*
+     Максимальное значение массива.
+
+*min*
+     Минимальное значение массива.
+
+*sum*
+     Сумма элементов массива.
+
+*a*
+     Первый элемент массива (элемент с индексами 0,0,0).
+
+*fst*
+     Первое не нулевое значение массива.
+
+*lst*
+     Последнее не нулевое значение массива.
+
+*mx, my, mz*
+     Положение максимума в направлении x, y, z соответственно.
+
+*ax, ay, az, aa*
+     Положение центра масс в направлении x, y, z соответственно или
+     среднее значение массива.
+
+*wx, wy, wz, wa*
+     Ширина в направлении x, y, z соответственно или дисперсия
+     элементов массива.
+
+*sx, sy, sz, sa*
+     Асимметрия в направлении x, y, z соответственно или элементов
+     массива.
+
+*kx, ky, kz, ka*
+     Эксцесс в направлении x, y, z соответственно или элементов массива.
+
+
+File: mgl_ru.info,  Node: Utilities,  Prev: Suffixes,  Up: MGL interface
+
+1.27 Утилиты для MGL
+==============================
+
+MathGL содержит несколько программ для работы со скриптами MGL. Есть
+утилита для сохранения в растровое (`mgl2png', `mgl2gif') или векторное
+(`mgl2eps', `mgl2svg') изображения. Программа `mglview' показывает
+результат выполнения скрипта MGL и позволяет вращать и настраивать
+график. Также можно транслировать MGL скрипт в C++ файл с помощью
+программы `mgl2cpp'.
+
+   Все эти программы имеют схожий набор аргументов. Первым идет имя
+скрипта, а вторым идет имя выходного файлы (может быть опущено),
+последние аргументы - опции скрипта и программы. К опциям относятся
+параметры скрипта (это `$0, $1, ... $9') и настройки локали. Параметры
+скрипта имеют формат `-Nval', где N=0,1...9 - номер параметра, val -
+его значние. Например, опция `-1test' заменит `$1' на `test' в скрипте.
+Опция -Lval устанавливает локаль в значение val. Например, `-Lutf8'
+будет использовать UTF-8 в скрипте.
+
+   Также можно создавать анимированные изображения GIF или набор JPEG
+файлов с именами `frameNNNN.jpg' (где `NNNN' - номер кадра). Для этого
+в скрипте надо указать параметры анимации для каждого кадра (строками с
+коментариями `##a val' или опциями `-Aval') или в цикле (строкой с
+комментарием `##с v1 v2 [dv]' или опцию `-Cn1:n2'), которые будут
+подставлены в качестве параметра `$0' при последовательном вызове
+скрипта. Для сохранения кадров в JPEG просто добавьте команду `write
+''' в конце скрипта.
+
+
+File: mgl_ru.info,  Node: Examples,  Next: Samples,  Prev: MGL interface,  Up: Top
+
+2 MathGL examples
+*****************
+
+This chapter contain information about basic and advanced MathGL, hints
+and samples for all types of graphics. I recommend you read first 2
+sections one after another and at least look on "Hints" section. Also I
+recommend you to look at *note General concepts::. Sample code for some
+of these examples can be found in `http://mathgl.sf.net/pictures.html'
+and in *note Samples::.
+
+* Menu:
+
+* Basic usage::
+* Advanced usage::
+* Data handling::
+* Data plotting::
+* Hints::
+
+
+File: mgl_ru.info,  Node: Basic usage,  Next: Advanced usage,  Up: Examples
+
+2.1 Basic usage
+===============
+
+MGL script can be used by several manners. Each has positive and
+negative sides:
+   * _The using of MGL in UDAV._
+
+     Positive side is the possibility to view the plot at once and to
+     modify it, rotate, zoom or switch on transparency or lighting) by
+     hand or by mouse. Negative sides are: the need of X-terminal.
+
+   * _Direct writing to file in bitmap or vector format without
+     creation of graphical window._
+
+     Positive aspects are: batch processing of similar data set, for
+     example, a set of resulting data files for different calculation
+     parameters), running from the console program, including the
+     cluster calculation), fast and automated drawing, saving pictures
+     for further analysis, or demonstration). Negative sides are: the
+     usage of the external program for picture viewing. Also, the data
+     plotting is non-visual. So, you have to imagine the picture, view
+     angles, lighting and so on) before the plotting. I recommend to
+     use graphical window for determining the optimal parameters of
+     plotting on the base of some typical data set. And later use these
+     parameters for batch processing in console program.
+
+     In this case you can use a set of programs: `mgl2png', `mgl2gif',
+     `mgl2eps', `mgl2svg' or `mglview' for viewing.
+
+   The simplest script is
+box         # draw bounding box
+axis        # draw axis
+fplot 'x^3' # draw some function
+
+   Just type it in UDAV and press F5. Also you can save it in text file
+`test.mgl' and type in the console `mgl2png test.mgl' what produce file
+`test.mgl.png' with resulting picture.
+
+
+File: mgl_ru.info,  Node: Advanced usage,  Next: Data handling,  Prev: Basic usage,  Up: Examples
+
+2.2 Advanced usage
+==================
+
+Now I show several non-obvious features of MGL: several subplots in a
+single picture, curvilinear coordinates, text printing and so on.
+Generally you may miss this section at first reading, but I don't
+recommend it.
+
+* Menu:
+
+* Subplots::
+* Axis and grids::
+* Curvilinear coordinates::
+* Text printing example::
+
+
+File: mgl_ru.info,  Node: Subplots,  Next: Axis and grids,  Up: Advanced usage
+
+2.2.1 Subplots
+--------------
+
+Let me demonstrate possibilities of axes transformation. MathGL has the
+following functions: `SubPlot', `InPlot', `Aspect' and `Rotate', *note
+Transformation matrix::). The order of their calling is strictly
+determined. First, one changes the position of axes in image area,
+functions `SubPlot' and `InPlot'). After that one may rotate the plot,
+function `Rotate'). Finally, one may change aspects of axes, function
+`Aspect'). The following code illustrates the aforesaid it:
+subplot 2 2 0:box
+text -1 1.1 'Just box' 'L'
+inplot 0.2 0.5 0.7 1:box
+text 0 1.2 'Inplot example'
+
+subplot 2 2 1
+rotate 60 40:aspect 1 1 1
+box:text 1 1 1.5 'rotate only' 'R'
+
+subplot 2 2 2
+rotate 60 40:aspect 1 1 2
+box:text 0 0 2 'aspect and rotate'
+
+subplot 2 2 3
+rotate 60 40:aspect 1 2 2
+box:text 0 0 1.5 'Aspect in other direction'
+ Here I used function `text' for printing the text in arbitrary
+position of picture, *note Text printing::). Text coordinates and size
+are connected with axes. However, text coordinates may be everywhere,
+including the outside the bounding box. I shall show its features later
+in *Note Text printing example::.
+
+   Note that several commands can be placed in a string if they are
+separated by `:' symbol.
+
+ [image src="../png/sample1.png" ]
+
+Example of several subplots on the single picture.
+
+
+File: mgl_ru.info,  Node: Axis and grids,  Next: Curvilinear coordinates,  Prev: Subplots,  Up: Advanced usage
+
+2.2.2 Axis and grids
+--------------------
+
+MathGL library can draw not only the bounding box but also the axes,
+grids, labels and so on. The limits of axes and their origin (the point
+of intersection) are determined by function `axis'. Also you can use
+`xrange, yrange, zrange' functions (*note Axis settings::). Ticks on
+axis are specified by functions `xtick, ytick, ztick, ttick'. First
+argument the direction for each change will be applied. Second argument
+gives the step between ticks (if positive) or gives the number of ticks
+on the axis (if negative) or set to use logarithmic ticks (if zero).
+Third argument gives numbers of sub-ticks between ticks (default is
+zero). Last argument define the initial ticks position.
+
+   Function `Axis' draws axes. Its textual string shows in which
+directions the axis or axes will be drawn (by default `'xyz'', function
+draws axes in all directions). Function `Grid' draws grid
+perpendicularly to specified directions. Example of axes and grid
+drawing is:
+subplot 2 2 0
+xtick 0.4 3     # sets tick step to 0.5
+ytick 0.4 3     # and draws 3 subticks
+box             # should be after the ticks change
+axis 'xy': grid
+text 0 1.3 1 'axis and grid'
+
+xtick -5: ytick -5  # restore back
+subplot 2 2 1:rotate 60 40
+origin 0 0 0
+axis
+xlabel 'x' 1
+ylabel 'y' 1
+zlabel 'z' 1
+text 0 0 1.5 'axis and labels'
+
+subplot 2 2 2:rotate 60 40
+xtick 0.2: ytick 0.2: ztick 0.2 # too low step of ticks
+origin -1 -1 -1
+axis:grid
+text 0 0 1.5 'shift origin and add grid'
+text 0 0 1.2 '(note, too many ticks)'
+
+subplot 2 2 3:rotate 60 40
+xtick -6: ytick -6  # decrease the number of ticks
+axis 'yz'
+ylabel 'y axis'
+zlabel 'z axis'
+text 0 0 1.5 'remove x axis, and'
+text 0 0 1.2 'decrease number of ticks'
+
+   This example shows the importance of the correct choosing of the
+number of ticks on axis. If tick step is too small then its text may
+overlap and becomes unreadable. This code has the example of `Label'
+function. It draws label for axis in specified direction. The text
+position on axis is specified by third argument of `Label' function. If
+it is positive then then text is drawn near the axis maximum, if
+negative then the same takes place near the minimum of axis, if zero -
+then at the center of axis.
+
+ [image src="../png/sample2.png" ]
+
+Example of setting up axis range and axis ticks.
+
+
+File: mgl_ru.info,  Node: Curvilinear coordinates,  Next: Text printing example,  Prev: Axis and grids,  Up: Advanced usage
+
+2.2.3 Curvilinear coordinates
+-----------------------------
+
+Now let use curvilinear coordinates. In difference from other systems
+of plot creation, MathGL uses textual formulas for connection of the
+old (data) and new (output) coordinates. This allows one to plot in
+arbitrary coordinates. The following code plots the line Y=0, Z=0 in
+Cartesian, polar, parabolic and spiral coordinates:
+new x 50: new y 50: new z 50
+fill y 0.5 0.5: fill x -1 1 # creates data arrays
+origin -1 1 -1
+
+subplot 2 2 0:rotate 60 40
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'cartesian'
+
+subplot 2 2 1:rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'cylindrical'
+
+subplot 2 2 2:rotate 60 40
+axis '2*y*x' 'y*y - x*x' ''
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'parabolic'
+
+subplot 2 2 3:rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'spiral'
+
+ [image src="../png/sample3.png" ]
+
+Example of curvilinear coordinates
+
+
+File: mgl_ru.info,  Node: Text printing example,  Prev: Curvilinear coordinates,  Up: Advanced usage
+
+2.2.4 Text printing example
+---------------------------
+
+MathGL prints text by vector font. There are functions for manual
+specifying of text position (like `Puts') and for its automatic
+selection (like `Label', `legend' and so on). MathGL prints text always
+in specified position even if it lies outside the bounding box. The
+default size of font is specified by command FONTSIZE. However, the
+actual size of output string depends on position of axes (depends on
+functions `SubPlot', `InPlot'). The switching of the font style
+(italic, bold, wire and so on) can be done for the whole string (by
+function parameter) or inside the string. By default MathGL parses
+TeX-like commands for symbols and indexes (see *note Font styles::).
+Example of MathGL font drawing is:
+text 0 1 'Text can be in ASCII and in Unicode'
+text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
+text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
+text 0 -0.2 'Easy to \a{overline} or \u{underline}'
+text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
+text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
+
+ [image src="../png/sample4.png" ]
+
+Example of text printing with different font effects
+
+   Another example demonstrate the features of TeX formula parsing.
+text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}', 0, -4
+
+ [image src="../png/samplee.png" ]
+
+Example of TeX formula parsing
+
+
+File: mgl_ru.info,  Node: Data handling,  Next: Data plotting,  Prev: Advanced usage,  Up: Examples
+
+2.3 Data handling
+=================
+
+* Menu:
+
+* Array creation::
+* Data changing::
+
+
+File: mgl_ru.info,  Node: Array creation,  Next: Data changing,  Up: Data handling
+
+2.3.1 Array creation
+--------------------
+
+One can put numbers into the data instance by several ways. Let us do
+it for sinus function:
+   * one can create array by `list' command list a 0 0.04 0.16 0.36 0.64 1
+
+   * another way is to copy from "inline" array copy a [0,0.04,0.16,0.36,0.64,1]
+
+   * next way is to fill the data by textual formula with the help of
+     `modify' function new a 6
+     modify a 'x^2'
+
+   * or one may fill the array in some interval and modify it later new a 6
+     fill a 0 1
+     modify a 'u^2'
+
+   * or fill the array using current axis range new a 6
+     fill a '(x+1)^2/4'
+
+   * finally it can be loaded from file new s 6: modify s 'x^2'
+     save s 'sqr.dat'    # create file first
+     read a 'sqr.dat'    # load it
+
+   * at this one can read only part of data new s 6: modify s 'x^2'
+     save s 'sqr.dat'    # create file first
+     read a 'sqr.dat' 5  # load it
+
+   Creation of 2d- and 3d-arrays is mostly the same. One can use direct
+data filling by `list' command
+list a 11 12 13 | 21 22 23 | 31 32 33
+ or by inline arrays
+copy a [[11,12,13],[21,22,23],[31,32,33]]
+ Also data can be filled by formula
+new z 30 40
+fill z 'sin(pi*x)*cos(pi*y)'
+ or loaded from file.
+
+   The only non-obvious thing here is using multidimensional arrays in
+C/C++, i.e. arrays defined like `float dat[40][30];'. Since, formaly
+this arrays element `dat[i]' can address the memory in arbitrary place
+you should use the proper function to convert such arrays to `mglData'
+object. For C++ this is functions like `mglData::Set(float **dat, int
+N1, int N2'. For C this is functions like `mgl_data_set_float2(HMDT d,
+const float **dat, int N1, int N2'. At this, you should keep in mind
+that `nx=N2' and `ny=N1' after conversion.
+
+
+File: mgl_ru.info,  Node: Data changing,  Prev: Array creation,  Up: Data handling
+
+2.3.2 Data changing
+-------------------
+
+MathGL has functions for data processing: differentiating, integrating,
+smoothing and so on. Let us consider some examples. The simplest ones
+are integration and differentiation. The direction in which operation
+will be performed is specified by textual string, which may contain
+symbols `x', `y' or `z'. For example, the call of `diff a 'x'' will
+differentiate data along `x' direction; the call of `integrate a 'xy''
+perform the double integration of data along `x' and `y' directions;
+the call of `diff2 a 'xyz'' will apply 3d Laplace operator to data and
+so on. Example of this operations on 2d array a=x*y is presented in
+code:
+new a 30 40: modify a 'x*y'
+axis 0 0 0 1 1 1
+subplot 2 2 0:rotate 60 40
+surf a: box
+text 0.7 1 1.2 'a(x,y)'
+subplot 2 2 1:rotate 60 40
+diff a 'x': surf a: box
+text 0.7 1 1.2 'da/dx'
+subplot 2 2 2:rotate 60 40
+integrate a 'xy': surf a: box
+text 0.7 1 1.2 '\int da/dx dxdy'
+subplot 2 2 3:rotate 60 40
+diff2 a 'y': surf a: box
+text 0.7 1 1.2 '\int {d^2}a/dxdy dx'
+
+ [image src="../png/sample6.png" ]
+
+Example of data differentiation and integration
+
+   Data smoothing (function `Smooth') is more interesting and
+important. This function has 2 main arguments: type of smoothing and
+its direction. Now 4 methods are supported: `0' does nothing for
+delta=0 or approaches data to zero with the step delta, `1' linear
+averaging by 3 points, `2' linear averaging by 5 points, `3' quadratic
+averaging by 5 points. Let me demonstrate it for 1d case:
+new y0 30
+modify y0 '0.4*sin(2*pi*x)+0.3*cos(3*pi*x)-0.4*sin(4*pi*x)+0.2*rnd'
+copy y1 y0: smooth y1 1
+copy y2 y0: smooth y2 2
+copy y3 y0: smooth y3 3
+
+plot y0 'k': addlegend 'none' 'k'
+plot y1 'r': addlegend 'line 3' 'r'
+plot y2 'g': addlegend 'line 5' 'g'
+plot y3 'b': addlegend 'quad 5' 'b'
+legend: box
+
+ [image src="../png/sample7.png" ]
+
+Example of data smoothing
+
+   Finally one can create new data arrays on base of the existing one:
+extract slice, row or column of data (`SubData'), summarize along some
+of direction(s) (`Sum'), find distribution of data elements (`Hist').
+Note, that all these functions are not thread-safe because they use
+static internal variable for output array. In particular, the using of
+several of them in arguments of the same function will lead to
+unpredictable result.
+
+
+File: mgl_ru.info,  Node: Data plotting,  Next: Hints,  Prev: Data handling,  Up: Examples
+
+2.4 Data plotting
+=================
+
+Let me now show how to plot the data. MathGL generally has 2 types of
+plotting functions. Simple variant requires a single data array for
+plotting, other data (coordinates) are considered uniformly distributed
+in interval MIN*MAX. Second variant requires data arrays for all
+coordinates. It allows one to plot rather complex multivalent curves
+and surfaces (in case of parametric dependencies). Argument setting to
+default values allows one to plot data in standard form. Manual
+arguments setting gives possibility for fine tuning of colors,
+positions and view of graphics. Note, that the call of drawing function
+adds something to picture but does not clear the previous plots (as it
+does in Matlab). Another difference from Matlab is that all setup (like
+transparency, lightning, axis borders and so on) must be specified
+*before* plotting functions.
+
+* Menu:
+
+* Plots for 1D data::
+* Plots for 2D data::
+* Plots for 3D data::
+* Surface transparency::
+
+
+File: mgl_ru.info,  Node: Plots for 1D data,  Next: Plots for 2D data,  Up: Data plotting
+
+2.4.1 Plots for 1D data
+-----------------------
+
+Term "1D data" means that data depend on single index (parameter) like
+curve in parametric form {x(i),y(i),z(i)}, i=1...n. There are 5
+generally different types of data representations: simple line plot,
+line plot with filling under it, stairs plot, bar plot and vertical
+lines (*note 1D plotting::). Each type of plotting has similar
+interface. There are 3D version and two 2D versions. One of last
+requires single array. The parameters of line and marks (*note Line
+styles::) are specified by the string argument. If the string parameter
+is `NULL' then solid line with color from palette is used.
+
+   Below I shall show the features of 1D plotting on base of `plot'
+function (*note 1D plotting::). Let us start from sinus plot:
+new y0 50: modify y0 'sin(pi*(2*x-1))'
+subplot 2 2 0
+plot y0: box
+ Style of line is not specified in `plot' function. So MathGL uses the
+solid line with first color of palette (this is blue). Next subplot
+shows array Y1 with 2 rows:
+subplot 2 2 1
+new y1 50 2
+modify y1 'sin(pi*2*x-pi)'
+modify y1 'cos(pi*2*x-pi)/2' 1
+plot y1: box
+ As previously I did not specify the style of lines. As a result,
+MathGL again uses solid line with next colors in palette (there are
+green and red). Now let us plot a circle on the same subplot. The
+circle is parametric curve x=cos(\pi t), y=sin(\pi t). I will set the
+color of the circle (dark yellow, `Y') and put marks `+' at point
+position:
+new x 50: modify x 'cos(pi*2*x-pi)'
+plot x y0 'Y+'
+ Note that solid line is used because I did not specify the type of
+line. The same picture can be achieved by `Plot2' function. Let us draw
+ellipse by orange dash line:
+plot y1(:,0) y(:,1) 'q|'
+
+   Drawing in 3D space is mostly the same. Let us draw spiral with
+default line style. Now its color is 4-th color from palette (this is
+cyan):
+subplot 2 2 2:rotate 60 40
+new z 50: modify z '2*x-1'
+plot x y0 z 'g':box
+ Function `Plot3' does 3D curve plot but for single array. Use it to
+put circle marks on the previous plot:
+new y2 10 3
+modify y2 'cos(pi*(2*x-1-y))'
+modify y2 '2*x-1' 2
+plot y2(:,0) y2(:,1) y2(:,2) 'bo '
+ Note that line style is empty ` ' here. Usage of other 1D plotting
+functions looks similar:
+subplot 2 2 3:rotate 60 40
+bars x y0 z 'r':box
+
+ [image src="../png/sample8.png" ]
+
+Example of 1D data plot
+
+
+File: mgl_ru.info,  Node: Plots for 2D data,  Next: Plots for 3D data,  Prev: Plots for 1D data,  Up: Data plotting
+
+2.4.2 Plots for 2D data
+-----------------------
+
+Surfaces `Surf' and other 2D plots (*note 2D plotting::) are drown the
+same simpler as 1D one. The difference is that the string parameter
+specifies not by line style but by the color scheme of the plot (*note
+Color scheme::). Here I draw attention on 4 most interesting color
+schemes. There is gray scheme where color is changed from black to
+white (string `kw') or from white to black (string `wk'). Another
+scheme is useful for accentuation of negative (by blue color) and
+positive (by red color) regions on plot (string `'BbwrR''). Last one is
+the popular "jet" scheme (string `'BbcyrR'').
+
+   Now I shall show the example of a surface drawing. At first let us
+switch lightning on
+light on
+ and draw the surface, considering coordinates x,y to be uniformly
+distributed in interval MIN*MAX
+new a0 50 40
+modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+subplot 2 2 0:rotate 60 40
+surf a0: box
+ Color scheme was not specified. So previous color scheme is used. In
+this case it is default color scheme ("jet") for the first plot. Next
+example is a sphere. The sphere is parametrically specified surface:
+new x 50 40: new y 50 40: new z 50 40
+modify x '0.8*sin(2*pi*x)*sin(pi*y)'
+modify y '0.8*cos(2*pi*x)*sin(pi*y)'
+modify z '0.8*cos(pi*y)'
+subplot 2 2 1:rotate 60 40
+surf x y z 'bbwrr': box
+ I set color scheme to `'BbwrR'' that corresponds to red top and blue
+bottom of the sphere.
+
+   Surfaces will be plotted for each of slice of the data if NZ>1. Next
+example draws surfaces for data arrays with NZ=3:
+new a1 50 40 3
+modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
+subplot 2 2 2:rotate 60 40
+alpha on
+surf a1: box
+ Note, that it may entail a confusion. However, if one will use density
+plot then the picture will look better:
+subplot 2 2 3: rotate 60 40
+dens a1: box
+ Note, that the previous color scheme is used in last plots because
+there are no direct specification of the one.
+
+ [image src="../png/sample9.png" ]
+
+Example of surface plot for 2D data
+
+   Drawing of other 2D plots is analogous. The only peculiarity is the
+usage of flag `#'. By default this flag switches on the drawing of a
+grid on plot (`grid' or `mesh' for plots in plain or in volume).
+However, for isosurfaces (including surfaces of rotation `axial') this
+flag switches the  face drawing off. Figure becomes wired. The
+following code gives example of flag `#' using (compare with normal
+function drawing as in its description):
+alpha on: light on: light 0 0 0 1
+new a 30 20
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+subplot 2 2 0: rotate 40 60
+surf a 'bbcyrr#': box
+subplot 2 2 1: rotate 40 60
+dens a 'bbcyrr#': box
+subplot 2 2 2: rotate 40 60
+cont a 'bbcyrr#': box
+subplot 2 2 3: rotate 40 60
+axial a 'bbcyrr#': box
+
+ [image src="../png/samplea.png" ]
+
+Example of 2D data plot with color scheme contained `#' symbol
+
+
+File: mgl_ru.info,  Node: Plots for 3D data,  Next: Surface transparency,  Prev: Plots for 2D data,  Up: Data plotting
+
+2.4.3 Plots for 3D data
+-----------------------
+
+Drawing procedures for 3D plot looks similarly to 1D and 2D plots
+described above. There are 3 general types of 3D plots (*note 3D
+plotting::): (i) plots on slices or on projections, (ii) isosurfaces,
+(iii) cloud-like plots. Plots on slice are clear enough - one specifies
+a slice (as its index or as coordinate value) and MathGL draws contour
+lines or density plot on slice plane. Isosurface gives more
+information. Isosurface is 3D analogue of the contour line `cont'. It
+shows the region where data array values exceed specified isosurface
+level. Plot becomes more informative if one adds transparency,
+lightning or sets color scheme depending on coordinates. Generalization
+of isosurface is the cloud-like plot. For this plot the darker color
+and less transparent regions correspond to higher values of data.
+Contrary, the regions with low values are transparent. For plotting of
+the phase of fields (or beams or pulses) one can use isosurface which
+transparency depends on the other data array (see function `surf3a').
+As example of 3D data plots let us draw the Gaussian beam diffraction
+in space. Beam propagates along X axis:
+alpha on: light on
+light 0 0 0 1
+new a 30 30 30: new b 30 30 30
+modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
+modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
+caxis 0 1
+
+subplot 2 2 0: rotate 40 60
+surf3 a 'wgk': box
+subplot 2 2 1: rotate 40 60
+densa a: box: axis
+subplot 2 2 2: rotate 40 60
+cloud a: box
+subplot 2 2 3: rotate 40 60
+surf3a b a 'q': box
+
+ [image src="../png/sampleb.png" ]
+
+Example of Gaussian beam diffraction (3D data)
+
+
+File: mgl_ru.info,  Node: Surface transparency,  Prev: Plots for 3D data,  Up: Data plotting
+
+2.4.4 Surface transparency
+--------------------------
+
+MathGL library has advanced features for setting and handling the
+surface transparency. The simplest way to add transparency is the using
+of function `Alpha'. As a result, all further surfaces (and
+isosurfaces, density plots and so on) become transparent. However,
+their  look can be additionally improved.
+
+   First, the selected surface will be non-transparent if one sets the
+flag `transparent' before the surface drawing and sets it off after the
+drawing.
+
+   Second, the value of transparency can be different from surface to
+surface. To do it just change the value of `alphadef' before the
+drawing of the selected surface. If its value is close to 0 then the
+surface becomes more and more transparent. Contrary, if its value is
+close to 1 then the surface becomes practically non-transparent. This
+is some analogue of `transparent on'.
+
+   Third feature is the changing of the way how the light goes through
+overlapped surfaces. The variable `transptype' defines it. By default
+the usual transparency is used (`transptype 0') - surfaces below is
+less visible than the upper ones. A "glass-like" transparency
+(`transptype 1') has a different look when the surface just decreases
+the background light (the surfaces are commutable in this case).
+
+   A "neon-like" transparency (`transptype 2') has more interesting
+look. In this case a surface is the light source (like a lamp on the
+dark background) and just adds some intensity to the color. At this,
+the library sets automatically the black color for the background and
+changes the default line color to white.
+
+   As example I shall show the variant of plot from *note Plots for 2D
+data:: (grid drawing is disabled) for different types of transparency.
+ [image src="../png/type0.png" ]
+
+Example of `TranspType=0'.
+
+ [image src="../png/type1.png" ]
+
+Example of `TranspType=1'.
+
+ [image src="../png/type2.png" ]
+
+Example of `TranspType=2'.
+
+
+File: mgl_ru.info,  Node: Hints,  Prev: Data plotting,  Up: Examples
+
+2.5 Hints
+=========
+
+In this section I have included some small hints and advices for the
+improving of the quality of plots and for the demonstration of some
+non-trivial features of MathGL library. In contrast to previous
+examples I showed mostly the idea but not the whole drawing function.
+More examples with the source code can be find at
+`http://mathgl.sf.net/' or in section *note Samples::.
+
+* Menu:
+
+* ``Compound'' graphics::
+* Two axes in one plot::
+* Titles for the plot::
+* Changing of the color range::
+* Management of a point cutting::
+* Vector field visualization::
+* Several light sources::
+* CutMin and CutMax features::
+* Mapping visualization::
+* Log-scaled plot::
+* Nonlinear fitting hints::
+* PDE solving hints::
+* Stereo image::
+
+
+File: mgl_ru.info,  Node: ``Compound'' graphics,  Next: Two axes in one plot,  Up: Hints
+
+2.5.1 "Compound" graphics
+-------------------------
+
+As I noted above, MathGL functions (except the special one, like `clf')
+do  not erase the previous plotting but just add the new one. It allows
+one to draw "compound" plots easily. For example, popular Matlab
+command `surfc' can be emulated in MathGL by 2 calls:
+surf a
+cont a 0 7 -1   # draw contours at z = -1
+ Here A is 2-dimensional data for the plotting, `-1' is the value of
+z-coordinate at which the contour should be plotted (at the bottom in
+this example). Analogously, one can draw density plot instead of
+contour lines and so on.
+
+   Another nice plot is contour lines plotted directly on the surface:
+light on        # switch on light for the surface
+surf a 'bbcyrr' # select 'jet' colormap for the surface
+cont a 'y'      # and yellow color for contours
+ The possible difficulties arise in black&white case, when the color of
+the surface can be close to the color of a contour line. In that case I
+may suggest the following code:
+light on        # switch on light for the surface
+surf a 'kw'     # select 'gray' colormap for the surface
+caxis -1 0      # first draw for darker surface colors
+conta 'w'       # white contours
+caxis 0 1       # now draw for brighter surface colors
+cont a 'k'      # black contours
+ The idea is to divide the color range on 2 parts (dark and bright) and
+to select the contrasting color for contour lines for each of part.
+
+   Similarly, one can plot flow thread over density plot of vector
+field amplitude (this is another amusing plot from Matlab) and so on.
+The list of compound graphics can be prolonged but I hope that the
+general idea is clear.
+
+
+File: mgl_ru.info,  Node: Two axes in one plot,  Next: Titles for the plot,  Prev: ``Compound'' graphics,  Up: Hints
+
+2.5.2 Two axes in one plot
+--------------------------
+
+Developing the previous hint one can make a plot with 2 or more axes.
+The idea is that the change of settings does not influence on the
+already drawn graphics. So, for 2-axes plot let us set the first axis
+and draw everything concerning it. Then let us setup the second axis
+and draw things for the second axis. The corresponding code is (*note
+2-axes sample::):
+# set up first axis
+axis -1 -1 1 1: origin -1 -1
+axis:fplot 'sin(pi*x)'      # draw something in first axis
+# set up second axis
+axis 0 0 1 1: origin 1 1
+axis: fplot 'cos(4*pi*x^2)' # draw something in second axis
+ Note, that the first and the second axes look better if being placed
+in different corners. In the code presented above the first axis is
+placed in the left-bottom corner, and the second one is placed in the
+right-top corner.
+
+
+File: mgl_ru.info,  Node: Titles for the plot,  Next: Changing of the color range,  Prev: Two axes in one plot,  Up: Hints
+
+2.5.3 Titles for the plot
+-------------------------
+
+The printing of nice titles for the plot is not so trivial task in
+general case. The problem is that the rotation and aspect change lead
+to different looks for titles of different subplots. So, the resulting
+look is not so good as it could be. The solution is simple - to print
+titles exactly after `subplot' call and before any rotation, aspect
+change and so on! Analogously, the title for the whole picture looks
+better if it is printed first (before any `subplot' calls).
+Alternatively you can use function `title' for plotting title for the
+picture at any time.
+
+
+File: mgl_ru.info,  Node: Changing of the color range,  Next: Management of a point cutting,  Prev: Titles for the plot,  Up: Hints
+
+2.5.4 Changing of the color range
+---------------------------------
+
+By default (for the user comfort), the color range is set equal to
+z-range of the plot. However, there are different ranges. So, one can
+obtain amusing plot by the change of color range manually. For example,
+there are plots with one-color bottom (or top) or practically bi-color
+picture and so on.
+
+   For example, compare 2 surfaces:
+subplot 2 1 0
+surf a          # usual coloring range
+subplot 2 1 1
+caxis 0 1
+surf a          # bottom of the surface have one-colour filling
+
+
+File: mgl_ru.info,  Node: Management of a point cutting,  Next: Vector field visualization,  Prev: Changing of the color range,  Up: Hints
+
+2.5.5 Management of a point cutting
+-----------------------------------
+
+Sometimes an experimental or numerical surface has outstanding points.
+Visualization of such surface will lead to the hole(s) in place of such
+points. The standard method of "fighting" - to change data values - is
+not always good and is not so convenient. MathGL library has another
+method - to set variable `cut off'. As a consequence, all outstanding
+points will be projected on the bounding box.
+
+   Such method is good not only for outstanding points but also for the
+case when one need to plane the bottom or the top of the plot. Exactly
+such case is demonstrated in the code:
+new a 20 30     # create some data
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+# set lower border above the data minimal value
+axis -1 -1 0 1 1 1:rotate 40 60
+cut off         # set off cutting flag
+surf a          # and draw the surface
+ It is an interesting result, is not it?
+
+
+File: mgl_ru.info,  Node: Vector field visualization,  Next: Several light sources,  Prev: Management of a point cutting,  Up: Hints
+
+2.5.6 Vector field visualization
+--------------------------------
+
+Vector field visualization (especially in 3d case `vect3' or `vectc')
+may look tangly - there are too many overlapping lines. I may suggest 2
+ways to solve this problem. The first one is to change `meshnum' for
+decreasing the number of hachures. The second way is to use the flow
+thread chart `Flow'. Unfortunately, I don't know any other methods to
+visualize 3d vector field. If you know any, e-mail me and I shall add
+it to MatGL.
+
+
+File: mgl_ru.info,  Node: Several light sources,  Next: CutMin and CutMax features,  Prev: Vector field visualization,  Up: Hints
+
+2.5.7 Several light sources
+---------------------------
+
+In contrast to the most of other programs, MathGL supports several (up
+to 10) light sources. Moreover, the color each of them can be
+different: white (this is usual), yellow, red, cyan, green and so on.
+The use of several light sources may be interesting for the
+highlighting of some peculiarities of the plot or just to make an
+amusing picture. Note, each light source can be switched on/off
+individually (*note Several light sample::).
+
+
+File: mgl_ru.info,  Node: CutMin and CutMax features,  Next: Mapping visualization,  Prev: Several light sources,  Up: Hints
+
+2.5.8 CutMin and CutMax features
+--------------------------------
+
+MathGL library has a feature for cutting of points in some region
+CUTMIN*CUTMAX. Such an excision can be used to improve the look of the
+graphics. Moreover, this cutting may help to show an internal structure
+of an object (like `isocaps' plot in Matlab). For example, let us use
+the standard 3D data array and show its interior (*note CutMinMax
+sample::).
+
+new c 61 51 40      # create the data
+new v 10: fill v -0.5 1
+modify c '(-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1))'
+cut 0 -1 -1 1 0 1.1
+rotate 40 60:       surf3 c -0.5 'bbcyrr'
+contf3 v c 'x' -1 'bbcyrr': contf3 v c 'y' -1 'bbcyrr'
+contf3 v c 'z' 0 'bbcyrr':  contf3 v c 'z' 39 'bbcyrr'
+
+   One can also exclude points from arbitrary area in space. This area
+defined by textual formula `cut' (*note Cutting::). The algorithm is
+the same as shown for "rectangular cutting".
+
+
+File: mgl_ru.info,  Node: Mapping visualization,  Next: Log-scaled plot,  Prev: CutMin and CutMax features,  Up: Hints
+
+2.5.9 Mapping visualization
+---------------------------
+
+Sometime ago I worked with mapping and have a question about its
+visualization. Let me remember you that mapping is some transformation
+rule for one set of number to another one. The 1d mapping is just an
+ordinary function - it takes a number and transforms it to another one.
+The 2d mapping (which I used) is a pair of functions which take 2
+numbers and transform them to another 2 ones. Except general plots
+(like `surfc', `surfa') there is a special plot - Arnold diagram. It
+shows the area which is the result of mapping of some initial area
+(usually square).
+
+   I tried to make such plot in `map'. It shows the set of points or
+set of faces, which final position is the result of mapping. At this,
+the color gives information about their initial position and the height
+describes Jacobian value of the transformation. Unfortunately, it looks
+good only for the simplest mapping but for the real multivalent
+quasi-chaotic mapping it produces a confusion. So, use it if you like
+:).
+
+
+File: mgl_ru.info,  Node: Log-scaled plot,  Next: Nonlinear fitting hints,  Prev: Mapping visualization,  Up: Hints
+
+2.5.10 Log-scaled plot
+----------------------
+
+Log-scaled plot can be drawn by 2 steps. First, one should change the
+scale of axis by call `axis 'lg(x)' 'lg(y)'' (in this example, x- and
+y-axis will be log-scaled). Second, one should set logarithmic scale
+for axis ticks by changing variables: `xtick 0: yticks 0'. Finally, one
+should check (or change) the axis ranges and origin so that their
+values to be positive. For example of log-log plot *note Log-log
+sample::.
+
+
+File: mgl_ru.info,  Node: Nonlinear fitting hints,  Next: PDE solving hints,  Prev: Log-scaled plot,  Up: Hints
+
+2.5.11 Nonlinear fitting hints
+------------------------------
+
+Nonlinear fitting is rather simple. All that you need is the data to
+fit, the approximation formula and the list of coefficients to fit
+(better with its initial guess values). Let me demonstrate it on the
+following simple example (*note Fitting sample::). First, let us use
+sin function with some random noise:
+new rnd 100: new idl 50 # data to be fitted and ideal data
+modify rnd '0.4*rnd+0.1+sin(4*pi*x)'
+modify idl '0.3+sin(4*pi*x)'
+ and plot it to see that data we will fit
+axis -1 -2 1 2
+plot rnd '. ':plot idl 'b'
+box:text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
+
+   The next step is the fitting itself. For that let me specify an
+initial values INI for coefficients `abc' and do the fitting for
+approximation formula `a+b*sin(c*x)'
+new res     # The data for found formula
+fit res rnd 'a+b*sin(c*x)' 'abc' [1, 1, 3]
+ Now display it
+plot res 'r'
+text -1 -1.3 'fitted:' 'L:r' -1
+putsfit 0 -1.8 'y = ' 'C:r' -1
+
+   NOTE! the fitting results may have strong dependence on initial
+values for coefficients due to algorithm features. The problem is that
+in general case there are several local 'optimums' for coefficients and
+the program returns only first found one! There are no guaranties that
+it will be the best. Try for example to set `ini = [0, 0, 0]' in the
+code above.
+
+
+File: mgl_ru.info,  Node: PDE solving hints,  Next: Stereo image,  Prev: Nonlinear fitting hints,  Up: Hints
+
+2.5.12 PDE solving hints
+------------------------
+
+Solving of Partial Differential Equations (PDE, including beam tracing)
+and ray tracing (or finding particle trajectory) are more or less
+common task. So, MathGL have several functions for that. There are
+`ray' for ray tracing, `pde' for PDE solving, `qo2d' for beam tracing
+in 2D case. Note, that these functions take "Hamiltonian" or equations
+as string values. And I don't plan now to allow one to use user-defined
+functions. There are 2 reasons: the complexity of corresponding
+interface; and the basic nature of used methods which are good for
+samples but may not good for serious scientific calculations.
+
+   The ray tracing can be done by `ray' function. Really ray tracing
+equation is Hamiltonian equation for 3D space. So, the function can be
+also used for finding a particle trajectory (i.e. solve Hamiltonian
+ODE) for 1D, 2D or 3D cases. The function have a set of arguments.
+First of all, it is Hamiltonian which defined the media (or the
+equation) you are planning to use. The Hamiltonian is defined by string
+which may depend on coordinates `x', `y', `z', time `t' (for particle
+dynamics) and momentums `p'=p_x, `q'=p_y, `v'=p_z. Next, you have to
+define the initial conditions for coordinates and momentums at `t'=0
+and set the integrations step (default is 0.1) and its duration
+(default is 10). The Runge-Kutta method of 4-th order is used for
+integration.
+new re 128:new im 128
+ray r 'p^2+q^2-x-1' -0.7 -1 0 0 0.5 0
+plot r(0) r(1)
+ This example calculate the reflection from linear layer (media with
+Hamiltonian `p^2+q^2-x-1'=p_x^2+p_y^2-x-1). This is parabolic curve.
+The resulting array have 7 columns which contain data for
+{x,y,z,p,q,v,t}.
+
+   The solution of PDE is a bit more complicated. As previous you have
+to specify the equation as pseudo-differential operator \hat H(x,
+\nabla) which is called sometime as "Hamiltonian" (for example, in beam
+tracing). As previously, it is defined by string which may depend on
+coordinates `x', `y', `z' (but not time!), momentums `p'=(d/dx)/i k_0,
+`q'=(d/dy)/i k_0 and field amplitude `u'=|u|. The evolutionary
+coordinate is `z' in all cases. So that, the equation look like du/dz =
+ik_0 H(x,y,\hat p, \hat q, |u|)[u]. Dependence on field amplitude
+`u'=|u| allows one to solve nonlinear problems too. For example, for
+nonlinear Shrodinger equation you may set `ham='p^2 + q^2 - u^2''. Also
+you may specify imaginary part for wave absorption, like `ham = 'p^2 +
+i*x*(x>0)'', but only if dependence on variable `i' is linear (i.e. H =
+Hre+i*Him).
+
+   Next step is specifing the initial conditions at `z'=`Min.z'. The
+function need 2 arrays for real and for imaginary part. Note, that
+coordinates x,y,z are supposed to be in specified range [Min, Max]. So,
+the data arrays should have corresponding scales. Finally, you may set
+the integration step and paramter k0=k_0. Also keep in mind, that
+internally the 2 times large box is used (for suppressing numerical
+reflection from boundaries) and the equation should well defined even
+in this extended range.
+
+   Final comment is concerning the possible form of pseudo-differential
+operator H. At this moment, simplified form of operator H is supported
+- all "mixed" terms (like `x*p'->x*d/dx) are excluded. For example, in
+2D case this operator is effectively H = f(p,z) + g(x,z,u). However
+commutable combinations (like `x*q'->x*d/dy) are allowed for 3D case.
+
+   So, for example let solve the equation for beam deflected from
+linear layer and absorbed later. The operator will have the form
+`'p^2+q^2-x-1+i*0.5*(z+x)*(z>-x)'' that correspond to equation ik_0
+\partial_z u + \Delta u + x \cdot u + i (x+z)/2 \cdot u = 0. This is
+typical equation for Electron Cyclotron (EC) absorption in magnetized
+plasmas. For initial conditions let me select the beam with plane phase
+front exp(-48*(x+0.7)^2). The corresponding code looks like this (*note
+PDE sample::):
+new re 128: new im 128
+fill re 'exp(-48*(x+0.7)^2)'
+pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z>-x)' re im 0.01, 30
+transpose a 'yxz'
+caxis 0 1
+dens a 'wyrRk'
+
+   The last example is example of beam tracing. Beam tracing equation
+is special kind of PDE equation written in coordinates accompanied to a
+ray. Generally this is the same parameters and limitation as for PDE
+solving but the coordinates are defined by the ray and by parameter of
+grid width W in direction transverse the ray. So, you don't need to
+specify the range of coordinates. *BUT* there is limitation. The
+accompanied coordinates are well defined only for smooth enough rays,
+i.e. then the ray curvature K (which is defined as 1/K^2 = (|\ddot r|^2
+|\dot r|^2 - (\ddot r, \dot r)^2)/|\dot r|^6) is much large then the
+grid width: K>>w. So, you may receive incorrect results if this
+condition will be broken.
+
+   You may use following code for obtaining the same solution as in
+previous example:
+new re 128: new im 128
+define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y>-x)'
+ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
+# now start beam tracing
+fill re 'exp(-48*x^2)'
+new xx: new yy
+qo2d a $1 re im r 1 30 xx yy
+caxis 0 1
+dens xx yy a 'wyrRk'
+
+
+File: mgl_ru.info,  Node: Stereo image,  Prev: PDE solving hints,  Up: Hints
+
+2.5.13 Stereo image
+-------------------
+
+One can easily create stereo image in MathGL. Stereo image can be
+produced by making two subplots with slightly different rotation
+angles. The corresponding code looks like this (*note Stereo image
+sample::):
+subplot 2 1 0   # left image
+rotate 40 60+3
+# draw something here
+subplot 2 1 1   # right image
+rotate 40 60-3
+# draw the same here
+
+
+File: mgl_ru.info,  Node: Samples,  Next: Copying This Manual,  Prev: Examples,  Up: Top
+
+3 Примеры использования MathGL
+**************************************************
+
+Эта глава содержит множество примеров кода для всех типов графиков,
+наиболее важных возможностей библиотеки и советов. Аналогичные примеры
+(с картинками) можно найти на `http://mathgl.sf.net/pictures.html'.
+
+* Menu:
+
+* 1D plotting samples::
+* 2D plotting samples::
+* 3D plotting samples::
+* Dual plotting samples::
+* Basic features::
+* Additional features::
+* Advanced features::
+
+
+File: mgl_ru.info,  Node: 1D plotting samples,  Next: 2D plotting samples,  Up: Samples
+
+3.1 Примеры 1D графиков
+======================================
+
+* Menu:
+
+* Plot sample::
+* Radar sample::
+* Tens sample::
+* Area sample::
+* Area gradient sample::
+* Bars sample::
+* Bars 2 colors sample::
+* Bars above sample::
+* Bars fall sample::
+* Barh sample::
+* Step sample::
+* Stem sample::
+* Region sample::
+* Region gradient sample::
+* Error sample::
+* BoxPlot sample::
+* Mark sample::
+* TextMark sample::
+* Tube sample::
+* Text sample::
+* Torus sample::
+* Chart sample::
+* Pie chart sample::
+* Ring chart sample::
+
+
+File: mgl_ru.info,  Node: Plot sample,  Next: Radar sample,  Up: 1D plotting samples
+
+3.1.1 Plot - пример использования
+----------------------------------------------------
+
+ [image src="../png/plot.png" ]
+
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y
+
+
+File: mgl_ru.info,  Node: Radar sample,  Next: Tens sample,  Prev: Plot sample,  Up: 1D plotting samples
+
+3.1.2 Radar - пример использования
+-----------------------------------------------------
+
+ [image src="../png/radar.png" ]
+
+new y 10 3
+modify y '0.4*sin(pi*(2*x+y/2))+0.1*rnd'
+radar y '#'
+
+
+File: mgl_ru.info,  Node: Tens sample,  Next: Area sample,  Prev: Radar sample,  Up: 1D plotting samples
+
+3.1.3 Tens - пример использования
+----------------------------------------------------
+
+ [image src="../png/tens.png" ]
+
+new y 50
+new c 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify c 'sin(2*pi*x)'
+box
+tens y c
+
+
+File: mgl_ru.info,  Node: Area sample,  Next: Area gradient sample,  Prev: Tens sample,  Up: 1D plotting samples
+
+3.1.4 Area - пример использования
+----------------------------------------------------
+
+ [image src="../png/area.png" ]
+
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y
+
+
+File: mgl_ru.info,  Node: Area gradient sample,  Next: Bars sample,  Prev: Tens sample,  Up: 1D plotting samples
+
+3.1.5 Area с градиентной заливкой - пример использования
+-----------------------------------------------------------------------------------------------
+
+ [image src="../png/area_2.png" ]
+
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y 'cbgGyr'
+
+
+File: mgl_ru.info,  Node: Bars sample,  Next: Bars 2 colors sample,  Prev: Area gradient sample,  Up: 1D plotting samples
+
+3.1.6 Bars - пример использования
+----------------------------------------------------
+
+ [image src="../png/bars.png" ]
+
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y
+
+
+File: mgl_ru.info,  Node: Bars 2 colors sample,  Next: Bars above sample,  Prev: Bars sample,  Up: 1D plotting samples
+
+3.1.7 Bars (2 цвета) - пример использования
+-------------------------------------------------------------------
+
+ [image src="../png/bars_2.png" ]
+
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'cbgGyr'
+
+
+File: mgl_ru.info,  Node: Bars above sample,  Next: Bars fall sample,  Prev: Bars 2 colors sample,  Up: 1D plotting samples
+
+3.1.8 Bars (один над другим) - пример использования
+-----------------------------------------------------------------------------------
+
+ [image src="../png/bars_a.png" ]
+
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'a'
+
+
+File: mgl_ru.info,  Node: Bars fall sample,  Next: Bars above sample,  Prev: Bars above sample,  Up: 1D plotting samples
+
+3.1.9 Bars "водопад" - пример использования
+---------------------------------------------------------------------
+
+ [image src="../png/bars_f.png" ]
+
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'f'
+
+
+File: mgl_ru.info,  Node: Barh sample,  Next: Step sample,  Prev: Bars fall sample,  Up: 1D plotting samples
+
+3.1.10 Barh - пример использования
+-----------------------------------------------------
+
+ [image src="../png/barh.png" ]
+
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+barh y
+
+
+File: mgl_ru.info,  Node: Step sample,  Next: Stem sample,  Prev: Barh sample,  Up: 1D plotting samples
+
+3.1.11 Step - пример использования
+-----------------------------------------------------
+
+ [image src="../png/step.png" ]
+
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+step y
+
+
+File: mgl_ru.info,  Node: Stem sample,  Next: Region sample,  Prev: Step sample,  Up: 1D plotting samples
+
+3.1.12 Stem - пример использования
+-----------------------------------------------------
+
+ [image src="../png/stem.png" ]
+
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+stem y 'o'
+
+
+File: mgl_ru.info,  Node: Region sample,  Next: Region gradient sample,  Prev: Stem sample,  Up: 1D plotting samples
+
+3.1.13 Region - пример использования
+-------------------------------------------------------
+
+ [image src="../png/region.png" ]
+
+new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'r'
+plot y1 'k2'
+plot y2 'k2'
+
+
+File: mgl_ru.info,  Node: Region gradient sample,  Next: Error sample,  Prev: Region sample,  Up: 1D plotting samples
+
+3.1.14 Region с градиентной заливкой - пример использования
+--------------------------------------------------------------------------------------------------
+
+ [image src="../png/region_2.png" ]
+
+new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'yr'
+plot y1 'k2'
+plot y2 'k2'
+
+
+File: mgl_ru.info,  Node: Error sample,  Next: BoxPlot sample,  Prev: Region gradient sample,  Up: 1D plotting samples
+
+3.1.15 Error - пример использования
+------------------------------------------------------
+
+ [image src="../png/error.png" ]
+
+new y 50
+new x0 10
+new y0 10
+new ex 10
+new ey 10
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify x0 '2*x-1 + 0.1*rnd-0.05'
+modify y0 '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1'
+modify ey '0.2'
+modify ex '0.1'
+box
+plot y
+error x0 y0 ex ey 'ko'
+
+
+File: mgl_ru.info,  Node: BoxPlot sample,  Next: Mark sample,  Prev: Error sample,  Up: 1D plotting samples
+
+3.1.16 BoxPlot - пример использования
+--------------------------------------------------------
+
+ [image src="../png/boxplot.png" ]
+
+new a 10 7
+modify a '(2*rnd-1)^3/2'
+box
+boxplot a
+plot a ' ko'
+
+
+File: mgl_ru.info,  Node: Mark sample,  Next: TextMark sample,  Prev: BoxPlot sample,  Up: 1D plotting samples
+
+3.1.17 Mark - пример использования
+-----------------------------------------------------
+
+ [image src="../png/mark.png" ]
+
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+mark y y1 'bs'
+
+
+File: mgl_ru.info,  Node: TextMark sample,  Next: Tube sample,  Prev: Mark sample,  Up: 1D plotting samples
+
+3.1.18 TextMark - пример использования
+---------------------------------------------------------
+
+ [image src="../png/textmark.png" ]
+
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+textmark y y1 '\gamma'
+
+
+File: mgl_ru.info,  Node: Tube sample,  Next: Text sample,  Prev: TextMark sample,  Up: 1D plotting samples
+
+3.1.19 Tube - пример использования
+-----------------------------------------------------
+
+ [image src="../png/tube.png" ]
+
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+rotate 40 60
+light on
+box
+tube y 0.05
+
+
+File: mgl_ru.info,  Node: Text sample,  Next: Torus sample,  Prev: Tube sample,  Up: 1D plotting samples
+
+3.1.20 Text - пример использования
+-----------------------------------------------------
+
+ [image src="../png/text.png" ]
+
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y(:,0)
+text y 'This is very long string drawn along a curve' ':k'
+text y 'Another string drawn above a curve' 'T:r'
+
+
+File: mgl_ru.info,  Node: Torus sample,  Next: Chart sample,  Prev: Text sample,  Up: 1D plotting samples
+
+3.1.21 Torus - пример использования
+------------------------------------------------------
+
+ [image src="../png/torus.png" ]
+
+new y1 50
+new y2 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+rotate 40 60
+light on
+box
+torus y1 y2 'pz'
+
+
+File: mgl_ru.info,  Node: Chart sample,  Next: Pie chart sample,  Prev: Torus sample,  Up: 1D plotting samples
+
+3.1.22 Chart - пример использования
+------------------------------------------------------
+
+ [image src="../png/chart.png" ]
+
+new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+box
+chart ch
+
+
+File: mgl_ru.info,  Node: Pie chart sample,  Next: Ring chart sample,  Prev: Chart sample,  Up: 1D plotting samples
+
+3.1.23 Pie chart - пример использования
+----------------------------------------------------------
+
+ [image src="../png/pie_chart.png" ]
+
+new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+1)/2*cos(pi*x)' '(y+1)/2*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+
+
+File: mgl_ru.info,  Node: Ring chart sample,  Prev: Pie chart sample,  Up: 1D plotting samples
+
+3.1.24 Ring chart - пример использования
+-----------------------------------------------------------
+
+ [image src="../png/ring_chart.png" ]
+
+new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+2)/3*cos(pi*x)' '(y+2)/3*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+
+
+File: mgl_ru.info,  Node: 2D plotting samples,  Next: 3D plotting samples,  Prev: 1D plotting samples,  Up: Samples
+
+3.2 Примеры 2D графиков
+======================================
+
+* Menu:
+
+* Surf sample::
+* Transparent surface sample::
+* Surface in fog sample::
+* Sharp colors sample::
+* Mesh sample::
+* Fall sample::
+* Belt sample::
+* Tile sample::
+* Boxs sample::
+* Dens sample::
+* Cont sample::
+* ContF sample::
+* ContD sample::
+* Axial sample::
+* Grad sample::
+
+
+File: mgl_ru.info,  Node: Surf sample,  Next: Transparent surface sample,  Up: 2D plotting samples
+
+3.2.1 Surf - пример использования
+----------------------------------------------------
+
+ [image src="../png/surf.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+
+
+File: mgl_ru.info,  Node: Transparent surface sample,  Next: Surface in fog sample,  Prev: Surf sample,  Up: 2D plotting samples
+
+3.2.2 Transparent surface - пример использования
+-------------------------------------------------------------------
+
+ [image src="../png/surf_alpha.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surf a
+
+
+File: mgl_ru.info,  Node: Surface in fog sample,  Next: Sharp colors sample,  Prev: Transparent surface sample,  Up: 2D plotting samples
+
+3.2.3 Surface in fog - пример использования
+--------------------------------------------------------------
+
+ [image src="../png/surf_fog.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+fog 1
+box
+surf a
+
+
+File: mgl_ru.info,  Node: Sharp colors sample,  Next: Mesh sample,  Prev: Surface in fog sample,  Up: 2D plotting samples
+
+3.2.4 Sharp colors - пример использования
+------------------------------------------------------------
+
+ [image src="../png/surf_sl.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a 'BbcyrR|'
+
+
+File: mgl_ru.info,  Node: Mesh sample,  Next: Fall sample,  Prev: Sharp colors sample,  Up: 2D plotting samples
+
+3.2.5 Mesh - пример использования
+----------------------------------------------------
+
+ [image src="../png/mesh.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+mesh a
+
+
+File: mgl_ru.info,  Node: Fall sample,  Next: Belt sample,  Prev: Mesh sample,  Up: 2D plotting samples
+
+3.2.6 Fall - пример использования
+----------------------------------------------------
+
+ [image src="../png/fall.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+fall a
+
+
+File: mgl_ru.info,  Node: Belt sample,  Next: Tile sample,  Prev: Fall sample,  Up: 2D plotting samples
+
+3.2.7 Belt - пример использования
+----------------------------------------------------
+
+ [image src="../png/belt.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+belt a
+
+
+File: mgl_ru.info,  Node: Tile sample,  Next: Boxs sample,  Prev: Belt sample,  Up: 2D plotting samples
+
+3.2.8 Tile - пример использования
+----------------------------------------------------
+
+ [image src="../png/tile.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+tile a
+
+
+File: mgl_ru.info,  Node: Boxs sample,  Next: Dens sample,  Prev: Tile sample,  Up: 2D plotting samples
+
+3.2.9 Boxs - пример использования
+----------------------------------------------------
+
+ [image src="../png/boxs.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+origin 0 0 0
+box
+boxs a
+
+
+File: mgl_ru.info,  Node: Dens sample,  Next: Cont sample,  Prev: Boxs sample,  Up: 2D plotting samples
+
+3.2.10 Dens - пример использования
+-----------------------------------------------------
+
+ [image src="../png/dens.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+dens a
+colorbar
+
+
+File: mgl_ru.info,  Node: Cont sample,  Next: ContF sample,  Prev: Dens sample,  Up: 2D plotting samples
+
+3.2.11 Cont - пример использования
+-----------------------------------------------------
+
+ [image src="../png/cont.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+cont a
+
+
+File: mgl_ru.info,  Node: ContF sample,  Next: ContD sample,  Prev: Cont sample,  Up: 2D plotting samples
+
+3.2.12 ContF - пример использования
+------------------------------------------------------
+
+ [image src="../png/contf.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+contf a
+
+
+File: mgl_ru.info,  Node: ContD sample,  Next: Axial sample,  Prev: ContF sample,  Up: 2D plotting samples
+
+3.2.13 ContD - пример использования
+------------------------------------------------------
+
+ [image src="../png/contd.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+var v 9 -1 1
+box
+contd v a
+colorbar v
+
+
+File: mgl_ru.info,  Node: Axial sample,  Next: Grad sample,  Prev: ContD sample,  Up: 2D plotting samples
+
+3.2.14 Axial - пример использования
+------------------------------------------------------
+
+ [image src="../png/axial.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+axial a
+
+
+File: mgl_ru.info,  Node: Grad sample,  Prev: Axial sample,  Up: 2D plotting samples
+
+3.2.15 Grad - пример использования
+-----------------------------------------------------
+
+ [image src="../png/grad.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box:alpha on:dens a
+grad a
+
+
+File: mgl_ru.info,  Node: 3D plotting samples,  Next: Dual plotting samples,  Prev: 2D plotting samples,  Up: Samples
+
+3.3 Примеры 3D графиков
+======================================
+
+* Menu:
+
+* Surf3 sample::
+* Cloud sample::
+* CloudP sample::
+* Dens3 sample::
+* Cont3 sample::
+* ContF3 sample::
+* Cont projection sample::
+* Dens projection sample::
+* CutMinMax sample::
+* Isocaps sample::
+* CutOff sample::
+
+
+File: mgl_ru.info,  Node: Surf3 sample,  Next: Cloud sample,  Up: 3D plotting samples
+
+3.3.1 Surf3 - пример использования
+-----------------------------------------------------
+
+ [image src="../png/surf3.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+box
+surf3 a
+
+
+File: mgl_ru.info,  Node: Cloud sample,  Next: CloudP sample,  Prev: Surf3 sample,  Up: 3D plotting samples
+
+3.3.2 Cloud - пример использования
+-----------------------------------------------------
+
+ [image src="../png/cloud.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+box
+cloud a 'wyrRk'
+
+
+File: mgl_ru.info,  Node: CloudP sample,  Next: Dens3 sample,  Prev: Cloud sample,  Up: 3D plotting samples
+
+3.3.3 CloudP - пример использования
+------------------------------------------------------
+
+ [image src="../png/cloudp.png" ]
+
+Not available.
+
+
+File: mgl_ru.info,  Node: Dens3 sample,  Next: Cont3 sample,  Prev: CloudP sample,  Up: 3D plotting samples
+
+3.3.4 Dens3 - пример использования
+-----------------------------------------------------
+
+ [image src="../png/densa.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+origin 0 0 0
+box
+densa a
+axis
+
+
+File: mgl_ru.info,  Node: Cont3 sample,  Next: ContF3 sample,  Prev: Dens3 sample,  Up: 3D plotting samples
+
+3.3.5 Cont3 - пример использования
+-----------------------------------------------------
+
+ [image src="../png/conta.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+conta a
+
+
+File: mgl_ru.info,  Node: ContF3 sample,  Next: Cont projection sample,  Prev: Cont3 sample,  Up: 3D plotting samples
+
+3.3.6 ContF3 - пример использования
+------------------------------------------------------
+
+ [image src="../png/contfa.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+box
+contfa a
+
+
+File: mgl_ru.info,  Node: Cont projection sample,  Next: Dens projection sample,  Prev: ContF3 sample,  Up: 3D plotting samples
+
+3.3.7 Cont projection - пример использования
+---------------------------------------------------------------
+
+ [image src="../png/cont_xyz.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+contx s '' -1
+sum s a 'y'
+conty s '' 1
+sum s a 'z'
+contz s '' -1
+
+
+File: mgl_ru.info,  Node: Dens projection sample,  Next: CutMinMax sample,  Prev: Cont projection sample,  Up: 3D plotting samples
+
+3.3.8 Dens projection - пример использования
+---------------------------------------------------------------
+
+ [image src="../png/dens_xyz.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+densx s '' -1
+sum s a 'y'
+densy s '' 1
+sum s a 'z'
+densz s '' -1
+
+
+File: mgl_ru.info,  Node: CutMinMax sample,  Next: Isocaps sample,  Prev: Dens projection sample,  Up: 3D plotting samples
+
+3.3.9 CutMinMax - пример использования
+---------------------------------------------------------
+
+ [image src="../png/cutminmax.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut 0 -1 -1 1 0 1
+box
+surf3 a
+
+
+File: mgl_ru.info,  Node: Isocaps sample,  Next: CutOff sample,  Prev: CutMinMax sample,  Up: 3D plotting samples
+
+3.3.10 "Isocaps" - пример использования
+----------------------------------------------------------
+
+ [image src="../png/cutminmax2.png" ]
+
+new a 61 51 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+cut 0 -1 -1 1 0 1.1
+box
+surf3 a -1
+contf3 a 'x' -1
+contf3 a 'y' -1
+contf3 a 'z' 0
+contf3 a 'z' 39
+
+
+File: mgl_ru.info,  Node: CutOff sample,  Prev: Isocaps sample,  Up: 3D plotting samples
+
+3.3.11 CutOff - пример использования
+-------------------------------------------------------
+
+ [image src="../png/surf3_cutoff.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut '(z>(x+0.5*y-1)^2-1) & (z>(x-0.5*y-1)^2-1)'
+box
+surf3 a
+
+
+File: mgl_ru.info,  Node: Dual plotting samples,  Next: Basic features,  Prev: 3D plotting samples,  Up: Samples
+
+3.4 Примеры парных/векторных графиков
+===================================================================
+
+* Menu:
+
+* SurfC sample::
+* SurfA sample::
+* TileS sample::
+* Map sample::
+* Traj sample::
+* Vect sample::
+* VectL sample::
+* VectC sample::
+* Flow sample::
+* Pipe sample::
+* Dew sample::
+* Surf3C sample::
+* Surf3A sample::
+* Vect 3D sample::
+* VectL 3D sample::
+* VectC 3D sample::
+* Flow 3D sample::
+* Pipe 3D sample::
+* Crust sample::
+* Dots sample::
+
+
+File: mgl_ru.info,  Node: SurfC sample,  Next: SurfA sample,  Up: Dual plotting samples
+
+3.4.1 SurfC - пример использования
+-----------------------------------------------------
+
+ [image src="../png/surfc.png" ]
+
+new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surfc a b
+
+
+File: mgl_ru.info,  Node: SurfA sample,  Next: TileS sample,  Prev: SurfC sample,  Up: Dual plotting samples
+
+3.4.2 SurfA - пример использования
+-----------------------------------------------------
+
+ [image src="../png/surfa.png" ]
+
+new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surfa a b
+
+
+File: mgl_ru.info,  Node: TileS sample,  Next: Map sample,  Prev: SurfA sample,  Up: Dual plotting samples
+
+3.4.3 TileS - пример использования
+-----------------------------------------------------
+
+ [image src="../png/tiles.png" ]
+
+new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+tile a b
+
+
+File: mgl_ru.info,  Node: Map sample,  Next: Traj sample,  Prev: TileS sample,  Up: Dual plotting samples
+
+3.4.4 Map - пример использования
+---------------------------------------------------
+
+ [image src="../png/map.png" ]
+
+new a 50 40
+new b 50 40
+text 0 0 '\to'
+zrange -2 2
+subplot 2 1 0
+text 0 1.1 '\{x, y\}' '' -2
+box
+fill a 'x'
+fill b 'y'
+map a b 'brgk' 0 0
+subplot 2 1 1
+text 0 1.1 '\{\frac{x^3+y^3}{2}, \frac{x-y}{2}\}' '' -2
+box
+fill a '(x^3+y^3)/2'
+fill b '(x-y)/2'
+map a b 'brgk' 0 0
+
+
+File: mgl_ru.info,  Node: Traj sample,  Next: Vect sample,  Prev: Map sample,  Up: Dual plotting samples
+
+3.4.5 Traj - пример использования
+----------------------------------------------------
+
+ [image src="../png/traj.png" ]
+
+new y 50 3
+new x 50
+new y1 50
+new y2 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+fill x -1 1
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+box
+plot x y
+traj x y y1 y2
+
+
+File: mgl_ru.info,  Node: Vect sample,  Next: VectL sample,  Prev: Traj sample,  Up: Dual plotting samples
+
+3.4.6 Vect - пример использования
+----------------------------------------------------
+
+ [image src="../png/vect.png" ]
+
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vect a b
+
+
+File: mgl_ru.info,  Node: VectL sample,  Next: VectC sample,  Prev: Vect sample,  Up: Dual plotting samples
+
+3.4.7 VectL - пример использования
+-----------------------------------------------------
+
+ [image src="../png/vectl.png" ]
+
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectl a b
+
+
+File: mgl_ru.info,  Node: VectC sample,  Next: Flow sample,  Prev: VectL sample,  Up: Dual plotting samples
+
+3.4.8 VectC - пример использования
+-----------------------------------------------------
+
+ [image src="../png/vectc.png" ]
+
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectc a b
+
+
+File: mgl_ru.info,  Node: Flow sample,  Next: Pipe sample,  Prev: VectC sample,  Up: Dual plotting samples
+
+3.4.9 Flow - пример использования
+----------------------------------------------------
+
+ [image src="../png/flow.png" ]
+
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+flow a b
+
+
+File: mgl_ru.info,  Node: Pipe sample,  Next: Dew sample,  Prev: Flow sample,  Up: Dual plotting samples
+
+3.4.10 Pipe - пример использования
+-----------------------------------------------------
+
+ [image src="../png/pipe.png" ]
+
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+box
+pipe a b
+
+
+File: mgl_ru.info,  Node: Dew sample,  Next: Surf3C sample,  Prev: Pipe sample,  Up: Dual plotting samples
+
+3.4.11 Dew - пример использования
+----------------------------------------------------
+
+ [image src="../png/dew.png" ]
+
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+light on
+dew a b
+
+
+File: mgl_ru.info,  Node: Surf3C sample,  Next: Surf3A sample,  Prev: Dew sample,  Up: Dual plotting samples
+
+3.4.12 Surf3C - пример использования
+-------------------------------------------------------
+
+ [image src="../png/surf3c.png" ]
+
+new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3c a b
+
+
+File: mgl_ru.info,  Node: Surf3A sample,  Next: Vect 3D sample,  Prev: Surf3C sample,  Up: Dual plotting samples
+
+3.4.13 Surf3A - пример использования
+-------------------------------------------------------
+
+ [image src="../png/surf3a.png" ]
+
+new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3a a b
+
+
+File: mgl_ru.info,  Node: Vect 3D sample,  Next: VectL 3D sample,  Prev: Surf3A sample,  Up: Dual plotting samples
+
+3.4.14 Vect 3D - пример использования
+--------------------------------------------------------
+
+ [image src="../png/vect3.png" ]
+
+new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vect ex ey ez 'bwr'
+
+
+File: mgl_ru.info,  Node: VectL 3D sample,  Next: VectC 3D sample,  Prev: Vect 3D sample,  Up: Dual plotting samples
+
+3.4.15 VectL 3D - пример использования
+---------------------------------------------------------
+
+ [image src="../png/vectl3.png" ]
+
+new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectl ex ey ez 'bwr'
+
+
+File: mgl_ru.info,  Node: VectC 3D sample,  Next: Flow 3D sample,  Prev: VectL 3D sample,  Up: Dual plotting samples
+
+3.4.16 VectC 3D - пример использования
+---------------------------------------------------------
+
+ [image src="../png/vectc3.png" ]
+
+new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectc ex ey ez 'bwr'
+
+
+File: mgl_ru.info,  Node: Flow 3D sample,  Next: Pipe 3D sample,  Prev: VectC 3D sample,  Up: Dual plotting samples
+
+3.4.17 Flow 3D - пример использования
+--------------------------------------------------------
+
+ [image src="../png/flow3.png" ]
+
+new ex 30 30 30
+new ey 30 30 30
+new ez 30 30 30
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+flow ex ey ez 'bwr'
+
+
+File: mgl_ru.info,  Node: Pipe 3D sample,  Next: Crust sample,  Prev: Flow 3D sample,  Up: Dual plotting samples
+
+3.4.18 Pipe 3D - пример использования
+--------------------------------------------------------
+
+ [image src="../png/pipe3.png" ]
+
+new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+light on
+box
+pipe ex ey ez 'bwr'
+
+
+File: mgl_ru.info,  Node: Crust sample,  Next: Dots sample,  Prev: Pipe 3D sample,  Up: Dual plotting samples
+
+3.4.19 Crust - пример использования
+------------------------------------------------------
+
+ [image src="../png/crust.png" ]
+
+read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+light on
+box
+crust a 'p'
+
+
+File: mgl_ru.info,  Node: Dots sample,  Prev: Crust sample,  Up: Dual plotting samples
+
+3.4.20 Dots - пример использования
+-----------------------------------------------------
+
+ [image src="../png/dots.png" ]
+
+read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+box
+dots a 'p'
+
+
+File: mgl_ru.info,  Node: Basic features,  Next: Additional features,  Prev: Dual plotting samples,  Up: Samples
+
+3.5 Базовые возможности
+=========================================
+
+* Menu:
+
+* 1D plot sample::
+* 2D plot sample::
+* 3D plot sample::
+* Line styles sample::
+* Arrow styles sample::
+* Text styles sample::
+* TeX parsing sample::
+* Font faces sample::
+* Colors sample::
+* Color schemes sample::
+* Normal transparency::
+* Glass-like transparency::
+* Lamp-like transparency::
+
+
+File: mgl_ru.info,  Node: 1D plot sample,  Next: 2D plot sample,  Up: Basic features
+
+3.5.1 Пример графиков 1D данных
+---------------------------------------------------
+
+ [image src="../png/sample8.png" ]
+
+new y0 50: modify y0 'sin(pi*(2*x-1))'
+subplot 2 2 0
+plot y0: box
+
+subplot 2 2 1
+new y1 50 2
+modify y1 'sin(pi*2*x-pi)'
+modify y1 'cos(pi*2*x-pi)/2' 1
+plot y1: box
+
+new x 50: modify x 'cos(pi*2*x-pi)'
+plot x y0 'Y+'
+plot y1(:,0) y(:,1) 'q|'
+
+subplot 2 2 2:rotate 60 40
+new z 50:   modify z '2*x-1'
+plot x y0 z 'g':box
+new y2 10 3
+modify y2 'cos(pi*(2*x-1-y))'
+modify y2 '2*x-1' 2
+plot y2(:,0) y2(:,1) y2(:,2) 'bo '
+
+subplot 2 2 3:rotate 60 40
+bars x y0 z 'r':box
+
+
+File: mgl_ru.info,  Node: 2D plot sample,  Next: 3D plot sample,  Prev: 1D plot sample,  Up: Basic features
+
+3.5.2 Пример графиков 2D данных
+---------------------------------------------------
+
+ [image src="../png/sample9.png" ]
+
+light on
+
+new a0 50 40
+modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+subplot 2 2 0:rotate 60 40
+surf a0: box
+
+new x 50 40: new y 50 40: new z 50 40
+modify x '0.8*sin(2*pi*x)*sin(pi*y)'
+modify y '0.8*cos(2*pi*x)*sin(pi*y)'
+modify z '0.8*cos(pi*y)'
+subplot 2 2 1:rotate 60 40
+surf x y z 'bbwrr': box
+
+new a1 50 40 3
+modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
+subplot 2 2 2:rotate 60 40
+alpha on
+surf a1: box
+
+subplot 2 2 3: rotate 60 40
+dens a1: box
+
+
+File: mgl_ru.info,  Node: 3D plot sample,  Next: Line styles sample,  Prev: 2D plot sample,  Up: Basic features
+
+3.5.3 Пример графиков 3D данных
+---------------------------------------------------
+
+ [image src="../png/sampleb.png" ]
+
+alpha on: light on
+light 0 0 0 1
+new a 30 30 30: new b 30 30 30
+modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
+modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
+caxis 0 1
+
+subplot 2 2 0: rotate 40 60
+surf3 a 'wgk': box
+subplot 2 2 1: rotate 40 60
+densa a: box: axis
+subplot 2 2 2: rotate 40 60
+cloud a: box
+subplot 2 2 3: rotate 40 60
+surf3a b a 'q': box
+
+
+File: mgl_ru.info,  Node: Line styles sample,  Next: Arrow styles sample,  Prev: 3D plot sample,  Up: Basic features
+
+3.5.4 Пример стилей линий и маркеров
+--------------------------------------------------------------
+
+ [image src="../png/sample5.png" ]
+
+NOT AVAILABLE
+
+
+File: mgl_ru.info,  Node: Arrow styles sample,  Next: Text styles sample,  Prev: Line styles sample,  Up: Basic features
+
+3.5.5 Пример стилей стрелок
+----------------------------------------------
+
+ [image src="../png/sampled.png" ]
+
+NOT AVAILABLE
+
+
+File: mgl_ru.info,  Node: Text styles sample,  Next: TeX parsing sample,  Prev: Arrow styles sample,  Up: Basic features
+
+3.5.6 Пример стилей текста
+--------------------------------------------
+
+ [image src="../png/sample4.png" ]
+
+text 0 1 'Text can be in ASCII and in Unicode'
+text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
+text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
+text 0 -0.2 'Easy to \a{overline} or \u{underline}'
+text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
+text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
+
+
+File: mgl_ru.info,  Node: TeX parsing sample,  Next: Font faces sample,  Prev: Text styles sample,  Up: Basic features
+
+3.5.7 Пример TeX формулы
+-------------------------------------
+
+ [image src="../png/samplee.png" ]
+
+text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}' '' -4
+
+
+File: mgl_ru.info,  Node: Font faces sample,  Next: Colors sample,  Prev: TeX parsing sample,  Up: Basic features
+
+3.5.8 Примеры начертаний шрифта
+------------------------------------------------------
+
+ [image src="../png/fonts.png" ]
+
+NOT AVAILABLE
+
+
+File: mgl_ru.info,  Node: Colors sample,  Next: Color schemes sample,  Prev: Font faces sample,  Up: Basic features
+
+3.5.9 Примеры цветов
+---------------------------------
+
+ [image src="../png/colors.png" ]
+
+#LENUQ
+facez -1   -1 0 0.4 0.3 'L#': text -0.8 -0.9 'L' 'C:w'
+facez -0.6 -1 0 0.4 0.3 'E#': text -0.4 -0.9 'E' 'C:w'
+facez -0.2 -1 0 0.4 0.3 'N#': text  0   -0.9 'N' 'C:w'
+facez  0.2 -1 0 0.4 0.3 'U#': text  0.4 -0.9 'U' 'C:w'
+facez  0.6 -1 0 0.4 0.3 'Q#': text  0.8 -0.9 'Q' 'C:w'
+#lenuq
+facez -1   -0.7 0 0.4 0.3 'l#': text -0.8 -0.6 'l' 'C:k'
+facez -0.6 -0.7 0 0.4 0.3 'e#': text -0.4 -0.6 'e' 'C:k'
+facez -0.2 -0.7 0 0.4 0.3 'n#': text  0   -0.6 'n' 'C:k'
+facez  0.2 -0.7 0 0.4 0.3 'u#': text  0.4 -0.6 'u' 'C:k'
+facez  0.6 -0.7 0 0.4 0.3 'q#': text  0.8 -0.6 'q' 'C:k'
+#CMYkP
+facez -1   -0.4 0 0.4 0.3 'C#': text -0.8 -0.3 'C' 'C:w'
+facez -0.6 -0.4 0 0.4 0.3 'M#': text -0.4 -0.3 'M' 'C:w'
+facez -0.2 -0.4 0 0.4 0.3 'Y#': text  0   -0.3 'Y' 'C:w'
+facez  0.2 -0.4 0 0.4 0.3 'k#': text  0.4 -0.3 'k' 'C:w'
+facez  0.6 -0.4 0 0.4 0.3 'P#': text  0.8 -0.3 'P' 'C:w'
+#lenuq
+facez -1   -0.1 0 0.4 0.3 'c#': text -0.8 0 'c' 'C:k'
+facez -0.6 -0.1 0 0.4 0.3 'm#': text -0.4 0 'm' 'C:k'
+facez -0.2 -0.1 0 0.4 0.3 'y#': text  0   0 'y' 'C:k'
+facez  0.2 -0.1 0 0.4 0.3 'w#': text  0.4 0 'w' 'C:k'
+facez  0.6 -0.1 0 0.4 0.3 'p#': text  0.8 0 'p' 'C:k'
+#BGRHW
+facez -1   0.2 0 0.4 0.3 'B#': text -0.8 0.3 'B' 'C:k'
+facez -0.6 0.2 0 0.4 0.3 'G#': text -0.4 0.3 'G' 'C:k'
+facez -0.2 0.2 0 0.4 0.3 'R#': text  0   0.3 'R' 'C:k'
+facez  0.2 0.2 0 0.4 0.3 'H#': text  0.4 0.3 'H' 'C:k'
+facez  0.6 0.2 0 0.4 0.3 'W#': text  0.8 0.3 'W' 'C:k'
+#bgrhw
+facez -1   0.5 0 0.4 0.3 'b#': text -0.8 0.6 'b' 'C:w'
+facez -0.6 0.5 0 0.4 0.3 'g#': text -0.4 0.6 'g' 'C:w'
+facez -0.2 0.5 0 0.4 0.3 'r#': text  0   0.6 'r' 'C:w'
+facez  0.2 0.5 0 0.4 0.3 'h#': text  0.4 0.6 'h' 'C:w'
+facez  0.6 0.5 0 0.4 0.3 'w#': text  0.8 0.6 'w' 'C:w'
+#brighted
+facez -1   0.8 0 0.4 0.3 'r1#': text -0.8 0.9 'r1' 'C:k'
+facez -0.6 0.8 0 0.4 0.3 'r3#': text -0.4 0.9 'r3' 'C:k'
+facez -0.2 0.8 0 0.4 0.3 'r5#': text  0   0.9 'r5' 'C:k'
+facez  0.2 0.8 0 0.4 0.3 'r7#': text  0.4 0.9 'r7' 'C:k'
+facez  0.6 0.8 0 0.4 0.3 'r9#': text  0.8 0.9 'r9' 'C:k'
+
+
+File: mgl_ru.info,  Node: Color schemes sample,  Next: Normal transparency,  Prev: Colors sample,  Up: Basic features
+
+3.5.10 Примеры цветовых схем
+-----------------------------------------------
+
+ [image src="../png/color_schemes.png" ]
+
+new a 256 2: fill a 'x'
+subplot 2 10 0 0.2:dens a 'kw'
+text -1.4 -0.3 'kw' '' -8
+subplot 2 10 1 0.2:dens a 'wk'
+text -1.4 -0.3 'wk' '' -8
+subplot 2 10 2 0.2:dens a 'kHCcw'
+text -1.4 -0.3 'kHCcw' '' -8
+subplot 2 10 3 0.2:dens a 'kBbcw'
+text -1.4 -0.3 'kBbcw' '' -8
+subplot 2 10 4 0.2:dens a 'kRryw'
+text -1.4 -0.3 'kRryw' '' -8
+subplot 2 10 5 0.2:dens a 'kGgew'
+text -1.4 -0.3 'kGgew' '' -8
+subplot 2 10 6 0.2:dens a 'BbwrR'
+text -1.4 -0.3 'BbwrR' '' -8
+subplot 2 10 7 0.2:dens a 'BbwgG'
+text -1.4 -0.3 'BbwgG' '' -8
+subplot 2 10 8 0.2:dens a 'GgwmM'
+text -1.4 -0.3 'GgwmM' '' -8
+subplot 2 10 9 0.2:dens a 'UuwqR'
+text -1.4 -0.3 'UuwqR' '' -8
+subplot 2 10 10 0.2:dens a 'QqwcC'
+text -1.4 -0.3 'QqwcC' '' -8
+subplot 2 10 11 0.2:dens a 'CcwyY'
+text -1.4 -0.3 'CcwyY' '' -8
+subplot 2 10 12 0.2:dens a 'bcwyr'
+text -1.4 -0.3 'bcwyr' '' -8
+subplot 2 10 13 0.2:dens a 'bwr'
+text -1.4 -0.3 'bwr' '' -8
+subplot 2 10 14 0.2:dens a 'BbcyrR'
+text -1.4 -0.3 'BbcyrR' '' -8
+subplot 2 10 15 0.2:dens a 'UbcyqR'
+text -1.4 -0.3 'UbcyqR' '' -8
+subplot 2 10 16 0.2:dens a 'BbcwyrR'
+text -1.4 -0.3 'BbcwyrR' '' -8
+subplot 2 10 17 0.2:dens a 'bcyr'
+text -1.4 -0.3 'bcyr' '' -8
+subplot 2 10 18 0.2:dens a 'BbcyrR|'
+text -1.4 -0.3 'BbcyrR|' '' -8
+subplot 2 10 19 0.2:dens a 'bgr'
+text -1.4 -0.3 'bgr' '' -8
+
+
+File: mgl_ru.info,  Node: Normal transparency,  Next: Glass-like transparency,  Prev: Color schemes sample,  Up: Basic features
+
+3.5.11 Обычная прозрачность
+----------------------------------------------
+
+ [image src="../png/type0.png" ]
+
+alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 0: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+
+
+File: mgl_ru.info,  Node: Glass-like transparency,  Next: Lamp-like transparency,  Prev: Normal transparency,  Up: Basic features
+
+3.5.12 "Стеклянная" прозрачность
+------------------------------------------------------
+
+ [image src="../png/type1.png" ]
+
+alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 1: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+
+
+File: mgl_ru.info,  Node: Lamp-like transparency,  Prev: Glass-like transparency,  Up: Basic features
+
+3.5.13 "Ламповая" прозрачность
+--------------------------------------------------
+
+ [image src="../png/type2.png" ]
+
+alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 2: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+
+
+File: mgl_ru.info,  Node: Additional features,  Next: Advanced features,  Prev: Basic features,  Up: Samples
+
+3.6 Дополнительные возможности
+=======================================================
+
+* Menu:
+
+* Legend sample::
+* Adding mesh sample::
+* Surf & Cont sample::
+* Flow & Dens sample::
+* Several light sample::
+* Mirrored surface sample::
+* Cont with labels sample::
+* Ternary plot sample::
+* Coloring by coordinates sample::
+* Drops sample::
+* Molecules drawing sample::
+
+
+File: mgl_ru.info,  Node: Legend sample,  Next: Adding mesh sample,  Up: Additional features
+
+3.6.1 Legend - пример использования
+------------------------------------------------------
+
+ [image src="../png/legend.png" ]
+
+new f 50 3
+modify f 'sin(2*pi*x*x)'
+modify f 'sin(2*pi*x)' 1
+modify f 'sin(2*pi*sqrt(x))' 2
+axis 0 -1 1 1
+box
+plot f
+axis
+addlegend 'sin(\pi {x^2})' 'b'
+addlegend 'sin(\pi x)' 'g*'
+addlegend 'sin(\pi \sqrt{\a x})' 'r+'
+legend
+
+
+File: mgl_ru.info,  Node: Adding mesh sample,  Next: Surf & Cont sample,  Prev: Legend sample,  Up: Additional features
+
+3.6.2 Добавляем сетку
+-----------------------------------
+
+ [image src="../png/samplea.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+alpha on
+light on
+subplot 2 2 0
+rotate 40 60
+surf a 'BbcyrR#'
+box
+subplot 2 2 1
+rotate 40 60
+dens a 'BbcyrR#'
+box
+subplot 2 2 2
+rotate 40 60
+cont a 'BbcyrR#'
+box
+subplot 2 2 3
+rotate 40 60
+axial a 'BbcyrR#'
+box
+
+
+File: mgl_ru.info,  Node: Surf & Cont sample,  Next: Flow & Dens sample,  Prev: Adding mesh sample,  Up: Additional features
+
+3.6.3 Surf & Cont - пример использования
+-----------------------------------------------------------
+
+ [image src="../png/surf_cont_y.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+cont a 'y'
+
+
+File: mgl_ru.info,  Node: Flow & Dens sample,  Next: Several light sample,  Prev: Surf & Cont sample,  Up: Additional features
+
+3.6.4 Flow & Dens - пример использования
+-----------------------------------------------------------
+
+ [image src="../png/flow_dens.png" ]
+
+new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+copy d a
+modify d 'sqrt(v^2+w^2)' a b
+box
+flow a b 'br'
+dens d 'BbcyrR'
+
+
+File: mgl_ru.info,  Node: Several light sample,  Next: Mirrored surface sample,  Prev: Flow & Dens sample,  Up: Additional features
+
+3.6.5 Несколько источников света
+--------------------------------------------------------
+
+ [image src="../png/several_light.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+light 1 0 1 0 'c'
+light 2 1 0 0 'y'
+light 3 0 -1 0 'm'
+box
+surf a 'h'
+
+
+File: mgl_ru.info,  Node: Mirrored surface sample,  Next: Cont with labels sample,  Prev: Several light sample,  Up: Additional features
+
+3.6.6 Отражение поверхности
+-----------------------------------------------
+
+ [image src="../png/mirror.png" ]
+
+new a 30 40
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf a 'r'; yrange 0 1
+surf a 'b'; yrange 0 -1
+box
+ or
+new a 30 40
+var x 30 -1 1
+var y1 40 0 1
+var y2 40 0 -1
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf x y1 a 'r'
+surf x y2 a 'b'
+box
+
+
+File: mgl_ru.info,  Node: Cont with labels sample,  Next: Ternary plot sample,  Prev: Mirrored surface sample,  Up: Additional features
+
+3.6.7 Cont и подписи - пример использования
+----------------------------------------------------------------------
+
+ [image src="../png/contt.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+cont a 'BbcyrRt'
+
+
+File: mgl_ru.info,  Node: Ternary plot sample,  Next: Coloring by coordinates sample,  Prev: Cont with labels sample,  Up: Additional features
+
+3.6.8 Ternary plot - пример использования
+------------------------------------------------------------
+
+ [image src="../png/ternary.png" ]
+
+new rx 10
+new ry 10
+new x 50
+new y 50
+new a 20 30
+modify a '4*x*y'
+modify x '0.25*(1+cos(2*pi*x))'
+modify y '0.25*(1+sin(2*pi*x))'
+modify rx 'rnd'
+modify ry 'rnd*(1-v)' rx
+text -0.8 1.3 'Ternary plot (x+y+t=1)'
+ternary on
+plot x y 'r2'
+plot rx ry 'q^ '
+cont a
+line 0.5 0 0 0.75 'g2'
+axis
+grid 'xyz' 'B;'
+xlabel 'x comp.'
+ylabel 'y comp.'
+tlabel 't comp.'
+
+
+File: mgl_ru.info,  Node: Coloring by coordinates sample,  Next: Drops sample,  Prev: Ternary plot sample,  Up: Additional features
+
+3.6.9 Окрашивание по положению грани
+---------------------------------------------------------------
+
+ [image src="../png/surf3_rgbd.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+surf3 a 'bgrd'
+
+
+File: mgl_ru.info,  Node: Drops sample,  Next: Molecules drawing sample,  Prev: Coloring by coordinates sample,  Up: Additional features
+
+3.6.10 Drops - пример использования
+------------------------------------------------------
+
+ [image src="../png/drops.png" ]
+
+light on
+text -1 1.2 'sh=0'
+drop -1 0 0 1 0.5 'r' 0
+text -0.33 1.2 'sh=0.33'
+drop -0.33 0 0 1 0.5 'r' 0.33
+text 0.33 1.2 'sh=0.67'
+drop 0.33 0 0 1 0.5 'r' 0.67
+text 1 1.2 'sh=1'
+drop 1 0 0 1 0.5 'r' 1
+ball -1 0 1 'k'
+ball -0.33 0 1 'k'
+ball 0.33 0 1 'k'
+ball 1 0 1 'k'
+line -1 0 1 1 0 1 'b'
+new h 100
+modify h '0.25*(1+x)^2'
+plot h 'k|'
+text -1 0.6 'h\sim(1+sh)^2' 'rL'
+
+
+File: mgl_ru.info,  Node: Molecules drawing sample,  Prev: Drops sample,  Up: Additional features
+
+3.6.11 Рисование молекул
+----------------------------------------
+
+ [image src="../png/molecule.png" ]
+
+alpha on
+light on
+subplot 2 2 0
+text 0 1.2 'Methane, CH_4' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'k'
+drop 0 0 0 0 0 1 0.35 'h' 1 2
+sphere 0 0 0.7 0.25 'g'
+drop 0 0 0 -0.94 0 -0.33 0.35 'h' 1 2
+sphere -0.66 0 -0.23 0.25 'g'
+drop 0 0 0 0.47 0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 0.57 -0.23 0.25 'g'
+drop 0 0 0 0.47 -0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 -0.57 -0.23 0.25 'g'
+subplot 2 2 1
+text 0 1.2 'Water, H{_2}O' '' -3
+rotate 60 100
+sphere 0 0 0 0.25 'r'
+drop 0 0 0 0.3 0.5 0 0.3 'm' 1 2
+sphere 0.3 0.5 0 0.25 'g'
+drop 0 0 0 0.3 -0.5 0 0.3 'm' 1 2
+sphere 0.3 -0.5 0 0.25 'g'
+subplot 2 2 2
+text 0 1.2 'Oxygen, O_2' '' -3
+rotate 60 120
+drop 0 0.5 0 0 -0.3 0 0.3 'm' 1 2
+sphere 0 0.5 0 0.25 'r'
+drop 0 -0.5 0 0 0.3 0 0.3 'm' 1 2
+sphere 0 -0.5 0 0.25 'r'
+subplot 2 2 3
+text 0 1.2 0 'Ammonia, NH_3' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'b'
+drop 0 0 0 0.33 0.57 0 0.32 'n' 1 2
+sphere 0.33 0.57 0 0.25 'g'
+drop 0 0 0 0.33 -0.57 0 0.32 'n' 1 2
+sphere 0.33 -0.57 0 0.25 'g'
+drop 0 0 0 -0.65 0 0 0.32 'n' 1 2
+sphere -0.65 0 0 0.25 'g'
+
+
+File: mgl_ru.info,  Node: Advanced features,  Prev: Additional features,  Up: Samples
+
+3.7 "Продвинутые" возможности
+===================================================
+
+* Menu:
+
+* Curvelinear coorinates sample::
+* 2-axes sample::
+* Semi-log sample::
+* Log-log sample::
+* Fitting sample::
+* Envelop sample::
+* Sew sample::
+* STFA sample::
+* PDE sample::
+* Beam tracing sample::
+* Parser sample::
+* Manual ticks sample::
+* ColumnPlot sample::
+* StickPlot sample::
+* Stereo image sample::
+
+
+File: mgl_ru.info,  Node: Curvelinear coorinates sample,  Next: 2-axes sample,  Up: Advanced features
+
+3.7.1 Криволинейные координаты
+-----------------------------------------------------
+
+ [image src="../png/sample3.png" ]
+
+origin -1 1 -1
+subplot 2 2 0
+rotate 60 40
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cartesian'
+subplot 2 2 1
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cylindrical'
+subplot 2 2 2
+rotate 60 40
+axis '2*y*x' 'y*y - x*x' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Parabolic'
+subplot 2 2 3
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Spiral'
+axis '' '' '' # set to default Cartesian
+
+
+File: mgl_ru.info,  Node: 2-axes sample,  Next: Semi-log sample,  Prev: Curvelinear coorinates sample,  Up: Advanced features
+
+3.7.2 Несколько осей на одном графике
+----------------------------------------------------------------
+
+ [image src="../png/2_axis.png" ]
+
+new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+axis -1 -1 -1 1 1 1
+origin -1 -1 -1
+axis
+ylabel 'axis 1' 0
+plot y1 'b'
+axis 0 0 0 1 1 1
+origin 1 1 1
+axis
+ylabel 'axis 2' 0
+stem y2 'r'
+
+
+File: mgl_ru.info,  Node: Semi-log sample,  Next: Log-log sample,  Prev: 2-axes sample,  Up: Advanced features
+
+3.7.3 Semi-log - пример использования
+--------------------------------------------------------
+
+ [image src="../png/semilog.png" ]
+
+new x 2000
+new y 2000
+modify x '0.01/(x+10^(-5))'
+modify y 'sin(1/v)' x
+xrange 0.01 1000
+origin 0.01 -1 0
+xtick 0
+axis 'lg(x)' '' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g'
+xlabel 'x' 0
+ylabel 'y = sin 1/x' 0
+box
+
+
+File: mgl_ru.info,  Node: Log-log sample,  Next: Fitting sample,  Prev: Semi-log sample,  Up: Advanced features
+
+3.7.4 Log-log - пример использования
+-------------------------------------------------------
+
+ [image src="../png/loglog.png" ]
+
+new x 100
+new y 100
+modify x 'pow(10,6*x-3)'
+modify y 'sqrt(1+v^2)' x
+axis 0.001 0.1 1000 1000
+xtick 0
+ytick 0
+axis 'lg(x)' 'lg(y)' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g;'
+xlabel 'x' 0
+ylabel 'y=\sqrt{1+x^2}' 0
+box
+
+
+File: mgl_ru.info,  Node: Fitting sample,  Next: Envelop sample,  Prev: Log-log sample,  Up: Advanced features
+
+3.7.5 Fitting - пример использования
+-------------------------------------------------------
+
+ [image src="../png/fit.png" ]
+
+new rnd 100
+fill rnd '0.4*rnd+0.1+sin(2*pi*x)'
+new in 100
+fill in '0.3+sin(2*pi*x)'
+yrange -2 2
+plot rnd '. '
+box
+list ini 1 1 3
+fit res rnd 'a+b*sin(c*x)' 'abc' ini
+plot res 'r'
+plot in 'b'
+text -1 -1.3 'fitted:' 'L:r' -1
+putsfit 0 -1.8 'y = ' 'C:r'
+text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
+
+
+File: mgl_ru.info,  Node: Envelop sample,  Next: Sew sample,  Prev: Fitting sample,  Up: Advanced features
+
+3.7.6 Envelop - пример использования
+-------------------------------------------------------
+
+ [image src="../png/envelop.png" ]
+
+new a 1000
+fill a 'exp(-8*x^2)*sin(10*pi*x)'
+plot a 'b'
+envelop a
+plot a 'r'
+axis
+
+
+File: mgl_ru.info,  Node: Sew sample,  Next: STFA sample,  Prev: Envelop sample,  Up: Advanced features
+
+3.7.7 Sew - пример использования
+---------------------------------------------------
+
+ [image src="../png/sew.png" ]
+
+new a 100 100
+modify a 'mod((y^2-(1-x)^2)/2,0.1)'
+rotate 40 60
+light on
+alpha on
+surf a 'b'
+sew a 'xy' 0.1
+surf a 'r'
+box
+
+
+File: mgl_ru.info,  Node: STFA sample,  Next: PDE sample,  Prev: Sew sample,  Up: Advanced features
+
+3.7.8 STFA - пример использования
+----------------------------------------------------
+
+ [image src="../png/stfa.png" ]
+
+new a 2000
+new b 2000
+fill a 'cos(50*pi*x)*(x<-.5)+cos(100*pi*x)*(x<0)*(x>-.5)+
+        cos(200*pi*x)*(x<.5)*(x>0)+cos(400*pi*x)*(x>.5)'
+subplot 1 2 0
+plot a
+axis
+xlabel '\i t'
+subplot 1 2 1
+stfa a b 64 ''
+axis
+ylabel '\omega' 0
+xlabel '\i t'
+
+
+File: mgl_ru.info,  Node: PDE sample,  Next: Beam tracing sample,  Prev: STFA sample,  Up: Advanced features
+
+3.7.9 PDE - пример использования
+---------------------------------------------------
+
+ [image src="../png/pde.png" ]
+
+axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+fill re 'exp(-48*(x+0.7)^2)'
+pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z>-x)' re im 0.01 30
+transpose a
+crange 0 1
+dens a 'wyrRk'
+fplot '-x' 'k|'
+text 0 0.85 'absorption: (x+z)/2 for x+z>0' '' -1
+title 'Equation: ik_0\partial_zu + \Delta u + x\cdot u + i \frac{x+z}{2}\cdot u = 0' 'iC' -1.5
+
+
+File: mgl_ru.info,  Node: Beam tracing sample,  Next: Parser sample,  Prev: PDE sample,  Up: Advanced features
+
+3.7.10 Beam tracing - пример использования
+-------------------------------------------------------------
+
+ [image src="../png/qo2d.png" ]
+
+define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y>-x)'
+ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
+plot r(0) r(1) 'k'
+axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+new xx
+new yy
+fill re 'exp(-48*x^2)'
+qo2d a $1 re im r 1 30 xx yy
+crange 0 1
+dens xx yy a 'wyrRk'
+fplot '-x' 'k|'
+text -0.8 0.85 'absorption: (x+y)/2 for x+y>0' 'L' -1
+text 0.5 -0.05 'central ray' 'L' -1
+title 'Beam and ray tracing' 'C' -1.5
+
+
+File: mgl_ru.info,  Node: Parser sample,  Next: Manual ticks sample,  Prev: Beam tracing sample,  Up: Advanced features
+
+3.7.11 Parser - пример использования
+-------------------------------------------------------
+
+
+File: mgl_ru.info,  Node: Manual ticks sample,  Next: ColumnPlot sample,  Prev: Parser sample,  Up: Advanced features
+
+3.7.12 Особые метки по осям
+--------------------------------------------
+
+ [image src="../png/tval.png" ]
+
+axis -pi 0 pi 2
+xtick -pi '-\pi' -1.571 '-\pi/2' 0 '0' 0.886 'x^*' 1.571 '\pi/2' pi '\pi'
+axis
+grid
+fplot '2*cos(x^2)^2' 'r2' nan 300
+
+
+File: mgl_ru.info,  Node: ColumnPlot sample,  Next: StickPlot sample,  Prev: Manual ticks sample,  Up: Advanced features
+
+3.7.13 ColumnPlot - пример использования
+-----------------------------------------------------------
+
+ [image src="../png/column.png" ]
+
+for $1 0 3
+columnplot 4 $1
+box
+text -0.5 0.5 'Plot $1 of 4'
+fplot 'sin(pi*x+pi*$1/2)'
+next
+
+
+File: mgl_ru.info,  Node: StickPlot sample,  Prev: ColumnPlot sample,  Up: Advanced features
+
+3.7.14 StickPlot - пример использования
+----------------------------------------------------------
+
+ [image src="../png/stick.png" ]
+
+ranges -1 1 -1 1 0 1:light on
+stickplot 3 0 40 30 : axis 'xyz_'
+fsurf 'exp(-10*y^2-6*x^2)'
+text 0.2 0 1.2 'z=0' '' -2
+stickplot 3 1 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/2-6*x^2)/sqrt(2)'
+text 0.2 0 1.2 'z=1' '' -2
+stickplot 3 2 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/5-6*x^2)/sqrt(5)'
+text 0.2 0 1.2 'z=2' '' -2
+xlabel '\tau' 0 : ylabel '\rho'
+
+
+File: mgl_ru.info,  Node: Stereo image sample,  Prev: StickPlot sample,  Up: Advanced features
+
+3.7.15 Пример стерео изображения
+-------------------------------------------------------
+
+ [image src="../png/stereo.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+subplot 2 1 0
+rotate 40 60+3
+box:surf a
+subplot 2 1 1
+rotate 40 60-3
+box:surf a
+
+
+
+Local Variables:
+coding: utf-8
+End:
diff --git a/debian/tmp/usr/share/info/mgl_ru.info-2 b/debian/tmp/usr/share/info/mgl_ru.info-2
new file mode 100644
index 0000000..7c1c694
--- /dev/null
+++ b/debian/tmp/usr/share/info/mgl_ru.info-2
@@ -0,0 +1,884 @@
+This is mgl_ru.info, produced by makeinfo version 4.13 from mgl_ru.texi.
+
+Это документация для MathGL (версии 1.11) - библиотеки классов и
+функций для построения научной графики. Пожалуйста сообщайте о любых
+ошибках в этом руководстве на <mathgl.abalakin at gmail.org>.
+
+   Copyright (C) 2009 Алексей Балакин.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with the Front-Cover Texts
+     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+     below.  A copy of the license is included in the section entitled
+     "GNU Free Documentation License."
+
+     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+     and modify this GNU manual.  Buying copies from the FSF supports
+     it in developing GNU and promoting software freedom."
+
+
+File: mgl_ru.info,  Node: Copying This Manual,  Next: Index,  Prev: Samples,  Up: Top
+
+Appendix A GNU Free Documentation License
+*****************************************
+
+                      Version 1.2, November 2002
+
+     Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
+     51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
+
+     Everyone is permitted to copy and distribute verbatim copies
+     of this license document, but changing it is not allowed.
+
+  0. PREAMBLE
+
+     The purpose of this License is to make a manual, textbook, or other
+     functional and useful document "free" in the sense of freedom: to
+     assure everyone the effective freedom to copy and redistribute it,
+     with or without modifying it, either commercially or
+     noncommercially.  Secondarily, this License preserves for the
+     author and publisher a way to get credit for their work, while not
+     being considered responsible for modifications made by others.
+
+     This License is a kind of "copyleft", which means that derivative
+     works of the document must themselves be free in the same sense.
+     It complements the GNU General Public License, which is a copyleft
+     license designed for free software.
+
+     We have designed this License in order to use it for manuals for
+     free software, because free software needs free documentation: a
+     free program should come with manuals providing the same freedoms
+     that the software does.  But this License is not limited to
+     software manuals; it can be used for any textual work, regardless
+     of subject matter or whether it is published as a printed book.
+     We recommend this License principally for works whose purpose is
+     instruction or reference.
+
+  1. APPLICABILITY AND DEFINITIONS
+
+     This License applies to any manual or other work, in any medium,
+     that contains a notice placed by the copyright holder saying it
+     can be distributed under the terms of this License.  Such a notice
+     grants a world-wide, royalty-free license, unlimited in duration,
+     to use that work under the conditions stated herein.  The
+     "Document", below, refers to any such manual or work.  Any member
+     of the public is a licensee, and is addressed as "you".  You
+     accept the license if you copy, modify or distribute the work in a
+     way requiring permission under copyright law.
+
+     A "Modified Version" of the Document means any work containing the
+     Document or a portion of it, either copied verbatim, or with
+     modifications and/or translated into another language.
+
+     A "Secondary Section" is a named appendix or a front-matter section
+     of the Document that deals exclusively with the relationship of the
+     publishers or authors of the Document to the Document's overall
+     subject (or to related matters) and contains nothing that could
+     fall directly within that overall subject.  (Thus, if the Document
+     is in part a textbook of mathematics, a Secondary Section may not
+     explain any mathematics.)  The relationship could be a matter of
+     historical connection with the subject or with related matters, or
+     of legal, commercial, philosophical, ethical or political position
+     regarding them.
+
+     The "Invariant Sections" are certain Secondary Sections whose
+     titles are designated, as being those of Invariant Sections, in
+     the notice that says that the Document is released under this
+     License.  If a section does not fit the above definition of
+     Secondary then it is not allowed to be designated as Invariant.
+     The Document may contain zero Invariant Sections.  If the Document
+     does not identify any Invariant Sections then there are none.
+
+     The "Cover Texts" are certain short passages of text that are
+     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
+     that says that the Document is released under this License.  A
+     Front-Cover Text may be at most 5 words, and a Back-Cover Text may
+     be at most 25 words.
+
+     A "Transparent" copy of the Document means a machine-readable copy,
+     represented in a format whose specification is available to the
+     general public, that is suitable for revising the document
+     straightforwardly with generic text editors or (for images
+     composed of pixels) generic paint programs or (for drawings) some
+     widely available drawing editor, and that is suitable for input to
+     text formatters or for automatic translation to a variety of
+     formats suitable for input to text formatters.  A copy made in an
+     otherwise Transparent file format whose markup, or absence of
+     markup, has been arranged to thwart or discourage subsequent
+     modification by readers is not Transparent.  An image format is
+     not Transparent if used for any substantial amount of text.  A
+     copy that is not "Transparent" is called "Opaque".
+
+     Examples of suitable formats for Transparent copies include plain
+     ASCII without markup, Texinfo input format, LaTeX input format,
+     SGML or XML using a publicly available DTD, and
+     standard-conforming simple HTML, PostScript or PDF designed for
+     human modification.  Examples of transparent image formats include
+     PNG, XCF and JPG.  Opaque formats include proprietary formats that
+     can be read and edited only by proprietary word processors, SGML or
+     XML for which the DTD and/or processing tools are not generally
+     available, and the machine-generated HTML, PostScript or PDF
+     produced by some word processors for output purposes only.
+
+     The "Title Page" means, for a printed book, the title page itself,
+     plus such following pages as are needed to hold, legibly, the
+     material this License requires to appear in the title page.  For
+     works in formats which do not have any title page as such, "Title
+     Page" means the text near the most prominent appearance of the
+     work's title, preceding the beginning of the body of the text.
+
+     A section "Entitled XYZ" means a named subunit of the Document
+     whose title either is precisely XYZ or contains XYZ in parentheses
+     following text that translates XYZ in another language.  (Here XYZ
+     stands for a specific section name mentioned below, such as
+     "Acknowledgements", "Dedications", "Endorsements", or "History".)
+     To "Preserve the Title" of such a section when you modify the
+     Document means that it remains a section "Entitled XYZ" according
+     to this definition.
+
+     The Document may include Warranty Disclaimers next to the notice
+     which states that this License applies to the Document.  These
+     Warranty Disclaimers are considered to be included by reference in
+     this License, but only as regards disclaiming warranties: any other
+     implication that these Warranty Disclaimers may have is void and
+     has no effect on the meaning of this License.
+
+  2. VERBATIM COPYING
+
+     You may copy and distribute the Document in any medium, either
+     commercially or noncommercially, provided that this License, the
+     copyright notices, and the license notice saying this License
+     applies to the Document are reproduced in all copies, and that you
+     add no other conditions whatsoever to those of this License.  You
+     may not use technical measures to obstruct or control the reading
+     or further copying of the copies you make or distribute.  However,
+     you may accept compensation in exchange for copies.  If you
+     distribute a large enough number of copies you must also follow
+     the conditions in section 3.
+
+     You may also lend copies, under the same conditions stated above,
+     and you may publicly display copies.
+
+  3. COPYING IN QUANTITY
+
+     If you publish printed copies (or copies in media that commonly
+     have printed covers) of the Document, numbering more than 100, and
+     the Document's license notice requires Cover Texts, you must
+     enclose the copies in covers that carry, clearly and legibly, all
+     these Cover Texts: Front-Cover Texts on the front cover, and
+     Back-Cover Texts on the back cover.  Both covers must also clearly
+     and legibly identify you as the publisher of these copies.  The
+     front cover must present the full title with all words of the
+     title equally prominent and visible.  You may add other material
+     on the covers in addition.  Copying with changes limited to the
+     covers, as long as they preserve the title of the Document and
+     satisfy these conditions, can be treated as verbatim copying in
+     other respects.
+
+     If the required texts for either cover are too voluminous to fit
+     legibly, you should put the first ones listed (as many as fit
+     reasonably) on the actual cover, and continue the rest onto
+     adjacent pages.
+
+     If you publish or distribute Opaque copies of the Document
+     numbering more than 100, you must either include a
+     machine-readable Transparent copy along with each Opaque copy, or
+     state in or with each Opaque copy a computer-network location from
+     which the general network-using public has access to download
+     using public-standard network protocols a complete Transparent
+     copy of the Document, free of added material.  If you use the
+     latter option, you must take reasonably prudent steps, when you
+     begin distribution of Opaque copies in quantity, to ensure that
+     this Transparent copy will remain thus accessible at the stated
+     location until at least one year after the last time you
+     distribute an Opaque copy (directly or through your agents or
+     retailers) of that edition to the public.
+
+     It is requested, but not required, that you contact the authors of
+     the Document well before redistributing any large number of
+     copies, to give them a chance to provide you with an updated
+     version of the Document.
+
+  4. MODIFICATIONS
+
+     You may copy and distribute a Modified Version of the Document
+     under the conditions of sections 2 and 3 above, provided that you
+     release the Modified Version under precisely this License, with
+     the Modified Version filling the role of the Document, thus
+     licensing distribution and modification of the Modified Version to
+     whoever possesses a copy of it.  In addition, you must do these
+     things in the Modified Version:
+
+       A. Use in the Title Page (and on the covers, if any) a title
+          distinct from that of the Document, and from those of
+          previous versions (which should, if there were any, be listed
+          in the History section of the Document).  You may use the
+          same title as a previous version if the original publisher of
+          that version gives permission.
+
+       B. List on the Title Page, as authors, one or more persons or
+          entities responsible for authorship of the modifications in
+          the Modified Version, together with at least five of the
+          principal authors of the Document (all of its principal
+          authors, if it has fewer than five), unless they release you
+          from this requirement.
+
+       C. State on the Title page the name of the publisher of the
+          Modified Version, as the publisher.
+
+       D. Preserve all the copyright notices of the Document.
+
+       E. Add an appropriate copyright notice for your modifications
+          adjacent to the other copyright notices.
+
+       F. Include, immediately after the copyright notices, a license
+          notice giving the public permission to use the Modified
+          Version under the terms of this License, in the form shown in
+          the Addendum below.
+
+       G. Preserve in that license notice the full lists of Invariant
+          Sections and required Cover Texts given in the Document's
+          license notice.
+
+       H. Include an unaltered copy of this License.
+
+       I. Preserve the section Entitled "History", Preserve its Title,
+          and add to it an item stating at least the title, year, new
+          authors, and publisher of the Modified Version as given on
+          the Title Page.  If there is no section Entitled "History" in
+          the Document, create one stating the title, year, authors,
+          and publisher of the Document as given on its Title Page,
+          then add an item describing the Modified Version as stated in
+          the previous sentence.
+
+       J. Preserve the network location, if any, given in the Document
+          for public access to a Transparent copy of the Document, and
+          likewise the network locations given in the Document for
+          previous versions it was based on.  These may be placed in
+          the "History" section.  You may omit a network location for a
+          work that was published at least four years before the
+          Document itself, or if the original publisher of the version
+          it refers to gives permission.
+
+       K. For any section Entitled "Acknowledgements" or "Dedications",
+          Preserve the Title of the section, and preserve in the
+          section all the substance and tone of each of the contributor
+          acknowledgements and/or dedications given therein.
+
+       L. Preserve all the Invariant Sections of the Document,
+          unaltered in their text and in their titles.  Section numbers
+          or the equivalent are not considered part of the section
+          titles.
+
+       M. Delete any section Entitled "Endorsements".  Such a section
+          may not be included in the Modified Version.
+
+       N. Do not retitle any existing section to be Entitled
+          "Endorsements" or to conflict in title with any Invariant
+          Section.
+
+       O. Preserve any Warranty Disclaimers.
+
+     If the Modified Version includes new front-matter sections or
+     appendices that qualify as Secondary Sections and contain no
+     material copied from the Document, you may at your option
+     designate some or all of these sections as invariant.  To do this,
+     add their titles to the list of Invariant Sections in the Modified
+     Version's license notice.  These titles must be distinct from any
+     other section titles.
+
+     You may add a section Entitled "Endorsements", provided it contains
+     nothing but endorsements of your Modified Version by various
+     parties--for example, statements of peer review or that the text
+     has been approved by an organization as the authoritative
+     definition of a standard.
+
+     You may add a passage of up to five words as a Front-Cover Text,
+     and a passage of up to 25 words as a Back-Cover Text, to the end
+     of the list of Cover Texts in the Modified Version.  Only one
+     passage of Front-Cover Text and one of Back-Cover Text may be
+     added by (or through arrangements made by) any one entity.  If the
+     Document already includes a cover text for the same cover,
+     previously added by you or by arrangement made by the same entity
+     you are acting on behalf of, you may not add another; but you may
+     replace the old one, on explicit permission from the previous
+     publisher that added the old one.
+
+     The author(s) and publisher(s) of the Document do not by this
+     License give permission to use their names for publicity for or to
+     assert or imply endorsement of any Modified Version.
+
+  5. COMBINING DOCUMENTS
+
+     You may combine the Document with other documents released under
+     this License, under the terms defined in section 4 above for
+     modified versions, provided that you include in the combination
+     all of the Invariant Sections of all of the original documents,
+     unmodified, and list them all as Invariant Sections of your
+     combined work in its license notice, and that you preserve all
+     their Warranty Disclaimers.
+
+     The combined work need only contain one copy of this License, and
+     multiple identical Invariant Sections may be replaced with a single
+     copy.  If there are multiple Invariant Sections with the same name
+     but different contents, make the title of each such section unique
+     by adding at the end of it, in parentheses, the name of the
+     original author or publisher of that section if known, or else a
+     unique number.  Make the same adjustment to the section titles in
+     the list of Invariant Sections in the license notice of the
+     combined work.
+
+     In the combination, you must combine any sections Entitled
+     "History" in the various original documents, forming one section
+     Entitled "History"; likewise combine any sections Entitled
+     "Acknowledgements", and any sections Entitled "Dedications".  You
+     must delete all sections Entitled "Endorsements."
+
+  6. COLLECTIONS OF DOCUMENTS
+
+     You may make a collection consisting of the Document and other
+     documents released under this License, and replace the individual
+     copies of this License in the various documents with a single copy
+     that is included in the collection, provided that you follow the
+     rules of this License for verbatim copying of each of the
+     documents in all other respects.
+
+     You may extract a single document from such a collection, and
+     distribute it individually under this License, provided you insert
+     a copy of this License into the extracted document, and follow
+     this License in all other respects regarding verbatim copying of
+     that document.
+
+  7. AGGREGATION WITH INDEPENDENT WORKS
+
+     A compilation of the Document or its derivatives with other
+     separate and independent documents or works, in or on a volume of
+     a storage or distribution medium, is called an "aggregate" if the
+     copyright resulting from the compilation is not used to limit the
+     legal rights of the compilation's users beyond what the individual
+     works permit.  When the Document is included in an aggregate, this
+     License does not apply to the other works in the aggregate which
+     are not themselves derivative works of the Document.
+
+     If the Cover Text requirement of section 3 is applicable to these
+     copies of the Document, then if the Document is less than one half
+     of the entire aggregate, the Document's Cover Texts may be placed
+     on covers that bracket the Document within the aggregate, or the
+     electronic equivalent of covers if the Document is in electronic
+     form.  Otherwise they must appear on printed covers that bracket
+     the whole aggregate.
+
+  8. TRANSLATION
+
+     Translation is considered a kind of modification, so you may
+     distribute translations of the Document under the terms of section
+     4.  Replacing Invariant Sections with translations requires special
+     permission from their copyright holders, but you may include
+     translations of some or all Invariant Sections in addition to the
+     original versions of these Invariant Sections.  You may include a
+     translation of this License, and all the license notices in the
+     Document, and any Warranty Disclaimers, provided that you also
+     include the original English version of this License and the
+     original versions of those notices and disclaimers.  In case of a
+     disagreement between the translation and the original version of
+     this License or a notice or disclaimer, the original version will
+     prevail.
+
+     If a section in the Document is Entitled "Acknowledgements",
+     "Dedications", or "History", the requirement (section 4) to
+     Preserve its Title (section 1) will typically require changing the
+     actual title.
+
+  9. TERMINATION
+
+     You may not copy, modify, sublicense, or distribute the Document
+     except as expressly provided for under this License.  Any other
+     attempt to copy, modify, sublicense or distribute the Document is
+     void, and will automatically terminate your rights under this
+     License.  However, parties who have received copies, or rights,
+     from you under this License will not have their licenses
+     terminated so long as such parties remain in full compliance.
+
+ 10. FUTURE REVISIONS OF THIS LICENSE
+
+     The Free Software Foundation may publish new, revised versions of
+     the GNU Free Documentation License from time to time.  Such new
+     versions will be similar in spirit to the present version, but may
+     differ in detail to address new problems or concerns.  See
+     `http://www.gnu.org/copyleft/'.
+
+     Each version of the License is given a distinguishing version
+     number.  If the Document specifies that a particular numbered
+     version of this License "or any later version" applies to it, you
+     have the option of following the terms and conditions either of
+     that specified version or of any later version that has been
+     published (not as a draft) by the Free Software Foundation.  If
+     the Document does not specify a version number of this License,
+     you may choose any version ever published (not as a draft) by the
+     Free Software Foundation.
+
+ADDENDUM: How to use this License for your documents
+====================================================
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and license
+notices just after the title page:
+
+       Copyright (C)  YEAR  YOUR NAME.
+       Permission is granted to copy, distribute and/or modify this document
+       under the terms of the GNU Free Documentation License, Version 1.2
+       or any later version published by the Free Software Foundation;
+       with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+       Texts.  A copy of the license is included in the section entitled ``GNU
+       Free Documentation License''.
+
+   If you have Invariant Sections, Front-Cover Texts and Back-Cover
+Texts, replace the "with...Texts." line with this:
+
+         with the Invariant Sections being LIST THEIR TITLES, with
+         the Front-Cover Texts being LIST, and with the Back-Cover Texts
+         being LIST.
+
+   If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+   If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License, to
+permit their use in free software.
+
+
+File: mgl_ru.info,  Node: Index,  Prev: Copying This Manual,  Up: Top
+
+Индекс
+************
+
+ [index ]
+* Menu:
+
+* AddLegend:                             Legend sample.       (line   6)
+* addlegend:                             Legend.              (line  29)
+* addto:                                 Operators.           (line  18)
+* adjust:                                Axis settings.       (line 114)
+* Alpha <1>:                             3D plot sample.      (line   6)
+* Alpha <2>:                             2D plot sample.      (line   6)
+* Alpha:                                 Transparent surface sample.
+                                                              (line   6)
+* alpha <1>:                             Command options.     (line  20)
+* alpha:                                 Transparency.        (line  15)
+* alphadef <1>:                          Command options.     (line  20)
+* alphadef:                              Transparency.        (line  19)
+* ambient <1>:                           Command options.     (line  26)
+* ambient:                               Lighting.            (line  25)
+* Area <1>:                              Area gradient sample.
+                                                              (line   6)
+* Area:                                  Area sample.         (line   6)
+* area:                                  1D plotting.         (line  56)
+* arrowsize:                             Default sizes.       (line  18)
+* aspect:                                Transformation matrix.
+                                                              (line  61)
+* Axial <1>:                             Adding mesh sample.  (line   6)
+* Axial:                                 Axial sample.        (line   6)
+* axial:                                 2D plotting.         (line 135)
+* axialdir:                              Other settings.      (line  31)
+* Axis <1>:                              Log-log sample.      (line   6)
+* Axis <2>:                              Semi-log sample.     (line   6)
+* Axis <3>:                              2-axes sample.       (line   6)
+* Axis <4>:                              Curvelinear coorinates sample.
+                                                              (line   6)
+* Axis <5>:                              Dens3 sample.        (line   6)
+* Axis <6>:                              Ring chart sample.   (line   6)
+* Axis:                                  Pie chart sample.    (line   6)
+* axis <1>:                              Axis and Colorbar.   (line  10)
+* axis:                                  Axis settings.       (line  12)
+* ball:                                  Primitives drawing.  (line  12)
+* Barh:                                  Barh sample.         (line   6)
+* barh:                                  1D plotting.         (line 101)
+* Bars <1>:                              1D plot sample.      (line   6)
+* Bars <2>:                              Bars fall sample.    (line   6)
+* Bars <3>:                              Bars above sample.   (line   6)
+* Bars <4>:                              Bars 2 colors sample.
+                                                              (line   6)
+* Bars:                                  Bars sample.         (line   6)
+* bars:                                  1D plotting.         (line  87)
+* barwidth:                              Default sizes.       (line  11)
+* beam:                                  3D plotting.         (line 119)
+* Belt:                                  Belt sample.         (line   6)
+* belt:                                  2D plotting.         (line  57)
+* box:                                   Axis and Colorbar.   (line  43)
+* BoxPlot:                               BoxPlot sample.      (line   6)
+* boxplot:                               1D plotting.         (line 182)
+* Boxs:                                  Boxs sample.         (line   6)
+* boxs:                                  2D plotting.         (line  66)
+* call:                                  Program flow.        (line  34)
+* caxis:                                 Axis settings.       (line  53)
+* Chart <1>:                             Ring chart sample.   (line   6)
+* Chart <2>:                             Pie chart sample.    (line   6)
+* Chart:                                 Chart sample.        (line   6)
+* chart:                                 1D plotting.         (line 115)
+* chdir:                                 Program flow.        (line   9)
+* clearlegend:                           Legend.              (line  34)
+* clf:                                   Primitives drawing.  (line   9)
+* Cloud:                                 Cloud sample.        (line   6)
+* cloud:                                 3D plotting.         (line 109)
+* CloudP:                                CloudP sample.       (line   6)
+* Colorbar <1>:                          Color schemes sample.
+                                                              (line   6)
+* Colorbar:                              Dens sample.         (line   6)
+* colorbar:                              Axis and Colorbar.   (line  17)
+* columnplot:                            Transformation matrix.
+                                                              (line  39)
+* combine:                               Make another data.   (line   6)
+* cone:                                  Primitives drawing.  (line  55)
+* Cont <1>:                              Cont with labels sample.
+                                                              (line   6)
+* Cont <2>:                              Surf & Cont sample.  (line   6)
+* Cont <3>:                              Adding mesh sample.  (line   6)
+* Cont:                                  Cont sample.         (line   6)
+* cont:                                  2D plotting.         (line  89)
+* Cont3:                                 Cont3 sample.        (line   6)
+* cont3:                                 3D plotting.         (line  54)
+* conta:                                 3D plotting.         (line  72)
+* ContD:                                 ContD sample.        (line   6)
+* contd:                                 2D plotting.         (line 119)
+* ContF:                                 ContF sample.        (line   6)
+* contf:                                 2D plotting.         (line 105)
+* ContF3 <1>:                            Isocaps sample.      (line   6)
+* ContF3:                                ContF3 sample.       (line   6)
+* contf3:                                3D plotting.         (line  76)
+* contfa:                                3D plotting.         (line  93)
+* contfx:                                Other plotting.      (line  36)
+* contfy:                                Other plotting.      (line  36)
+* contfz:                                Other plotting.      (line  36)
+* ContX:                                 Cont projection sample.
+                                                              (line   6)
+* contx:                                 Other plotting.      (line  27)
+* ContY:                                 Cont projection sample.
+                                                              (line   6)
+* conty:                                 Other plotting.      (line  27)
+* ContZ:                                 Cont projection sample.
+                                                              (line   6)
+* contz:                                 Other plotting.      (line  27)
+* copy:                                  Data create.         (line  31)
+* cosfft:                                Change data.         (line  40)
+* crange <1>:                            Command options.     (line  30)
+* crange:                                Axis settings.       (line  75)
+* crop:                                  Rearrange data.      (line  31)
+* Crust:                                 Crust sample.        (line   6)
+* crust:                                 Other plotting.      (line  51)
+* ctick:                                 Axis settings.       (line  92)
+* cumsum:                                Change data.         (line  11)
+* curve:                                 Primitives drawing.  (line  22)
+* cut <1>:                               Command options.     (line  42)
+* cut:                                   Cutting.             (line  10)
+* CutMax <1>:                            Isocaps sample.      (line   6)
+* CutMax:                                CutMinMax sample.    (line   6)
+* CutMin <1>:                            Isocaps sample.      (line   6)
+* CutMin:                                CutMinMax sample.    (line   6)
+* CutOff:                                CutOff sample.       (line   6)
+* defchr:                                Program flow.        (line  21)
+* define:                                Program flow.        (line  12)
+* defnum:                                Program flow.        (line  25)
+* defpal:                                Program flow.        (line  29)
+* delete:                                Rearrange data.      (line  35)
+* Dens <1>:                              Flow & Dens sample.  (line   6)
+* Dens <2>:                              Adding mesh sample.  (line   6)
+* Dens <3>:                              3D plot sample.      (line   6)
+* Dens <4>:                              2D plot sample.      (line   6)
+* Dens:                                  Dens sample.         (line   6)
+* dens:                                  2D plotting.         (line  81)
+* Dens3:                                 Dens3 sample.        (line   6)
+* dens3:                                 3D plotting.         (line  41)
+* densa:                                 3D plotting.         (line  50)
+* DensX:                                 Dens projection sample.
+                                                              (line   6)
+* densx:                                 Other plotting.      (line  18)
+* DensY:                                 Dens projection sample.
+                                                              (line   6)
+* densy:                                 Other plotting.      (line  18)
+* DensZ:                                 Dens projection sample.
+                                                              (line   6)
+* densz:                                 Other plotting.      (line  18)
+* Dew:                                   Dew sample.          (line   6)
+* dew:                                   Vector fields.       (line  73)
+* diff:                                  Change data.         (line  17)
+* diff2:                                 Change data.         (line  33)
+* divto:                                 Operators.           (line  12)
+* Dots:                                  Dots sample.         (line   6)
+* dots:                                  Other plotting.      (line  44)
+* Drop <1>:                              Molecules drawing sample.
+                                                              (line   6)
+* Drop:                                  Drops sample.        (line   6)
+* drop:                                  Primitives drawing.  (line  46)
+* else:                                  Program flow.        (line  64)
+* elseif:                                Program flow.        (line  55)
+* endif:                                 Program flow.        (line  68)
+* Envelop:                               Envelop sample.      (line   6)
+* envelop:                               Change data.         (line  72)
+* Error:                                 Error sample.        (line   6)
+* error:                                 1D plotting.         (line 173)
+* evaluate:                              Make another data.   (line  10)
+* export:                                File I/O.            (line  48)
+* extend:                                Rearrange data.      (line  12)
+* facex:                                 Primitives drawing.  (line  30)
+* facey:                                 Primitives drawing.  (line  31)
+* facez:                                 Primitives drawing.  (line  32)
+* Fall:                                  Fall sample.         (line   6)
+* fall:                                  2D plotting.         (line  47)
+* fgets:                                 Text printing.       (line  52)
+* fill:                                  Data filling.        (line   6)
+* Fit:                                   Fitting sample.      (line   6)
+* fit:                                   Nonlinear fitting.   (line  38)
+* fits:                                  Nonlinear fitting.   (line  30)
+* Flow <1>:                              Flow & Dens sample.  (line   6)
+* Flow <2>:                              Flow 3D sample.      (line   6)
+* Flow:                                  Flow sample.         (line   6)
+* flow:                                  Vector fields.       (line  82)
+* Fog:                                   Surface in fog sample.
+                                                              (line   6)
+* fog:                                   Fog.                 (line   6)
+* font:                                  Other settings.      (line   6)
+* fontsize:                              Command options.     (line  46)
+* for:                                   Program flow.        (line  72)
+* fplot:                                 Other plotting.      (line  94)
+* fsurf:                                 Other plotting.      (line 105)
+* func:                                  Program flow.        (line  38)
+* Grad:                                  Grad sample.         (line   6)
+* grad:                                  2D plotting.         (line 151)
+* grid:                                  Axis and Colorbar.   (line  38)
+* grid2:                                 2D plotting.         (line 161)
+* grid3:                                 3D plotting.         (line  98)
+* grida:                                 3D plotting.         (line 105)
+* hankel:                                Change data.         (line  44)
+* hist:                                  Make another data.   (line  20)
+* idset:                                 Data create.         (line  38)
+* if:                                    Program flow.        (line  49)
+* import:                                File I/O.            (line  43)
+* info:                                  Data create.         (line  42)
+* inplot:                                Transformation matrix.
+                                                              (line  30)
+* insert:                                Rearrange data.      (line  42)
+* integrate:                             Change data.         (line  13)
+* jacobian:                              Make another data.   (line 140)
+* Legend:                                Legend sample.       (line   6)
+* legend <1>:                            Command options.     (line  56)
+* legend:                                Legend.              (line  18)
+* legendbox:                             Legend.              (line  37)
+* legendmarks:                           Legend.              (line  41)
+* Light:                                 Several light sample.
+                                                              (line   6)
+* light:                                 Lighting.            (line  13)
+* Line <1>:                              Arrow styles sample. (line   6)
+* Line:                                  Line styles sample.  (line   6)
+* line:                                  Primitives drawing.  (line  16)
+* linewidth:                             Default sizes.       (line  22)
+* list:                                  Data create.         (line  16)
+* Map:                                   Map sample.          (line   6)
+* map:                                   Dual plotting.       (line  76)
+* Mark <1>:                              Line styles sample.  (line   6)
+* Mark:                                  Mark sample.         (line   6)
+* mark:                                  1D plotting.         (line 153)
+* marksize <1>:                          Command options.     (line  49)
+* marksize:                              Default sizes.       (line  15)
+* max:                                   Make another data.   (line  47)
+* Mesh:                                  Mesh sample.         (line   6)
+* mesh:                                  2D plotting.         (line  40)
+* meshnum <1>:                           Command options.     (line  52)
+* meshnum:                               Other settings.      (line  25)
+* mglParse:                              Parser sample.       (line   6)
+* mglPDE:                                PDE sample.          (line   6)
+* mglQO2d:                               Beam tracing sample. (line   6)
+* mglRay <1>:                            Beam tracing sample. (line   6)
+* mglRay:                                PDE sample.          (line   6)
+* min:                                   Make another data.   (line  52)
+* mirror:                                Change data.         (line  57)
+* modify:                                Data filling.        (line   6)
+* momentum:                              Make another data.   (line  36)
+* multo:                                 Operators.           (line   6)
+* new:                                   Data create.         (line   6)
+* next:                                  Program flow.        (line  81)
+* norm:                                  Change data.         (line  83)
+* normsl:                                Change data.         (line  76)
+* once:                                  Program flow.        (line  85)
+* origin:                                Axis settings.       (line  58)
+* palette:                               Other settings.      (line  15)
+* pde:                                   Make another data.   (line  94)
+* perspective:                           Transformation matrix.
+                                                              (line  65)
+* Pipe <1>:                              Pipe 3D sample.      (line   6)
+* Pipe:                                  Pipe sample.         (line   6)
+* pipe:                                  Vector fields.       (line 114)
+* Plot <1>:                              Log-log sample.      (line   6)
+* Plot <2>:                              Semi-log sample.     (line   6)
+* Plot <3>:                              Legend sample.       (line   6)
+* Plot <4>:                              1D plot sample.      (line   6)
+* Plot:                                  Plot sample.         (line   6)
+* plot:                                  1D plotting.         (line  30)
+* plotfactor:                            Zooming.             (line  10)
+* put:                                   Data filling.        (line  29)
+* Puts <1>:                              Font faces sample.   (line   6)
+* Puts <2>:                              TeX parsing sample.  (line   6)
+* Puts:                                  Text styles sample.  (line   6)
+* PutsFit:                               Fitting sample.      (line   6)
+* putsfit:                               Nonlinear fitting.   (line  46)
+* qo2d:                                  Make another data.   (line 125)
+* quadplot:                              Other plotting.      (line  83)
+* Radar:                                 Radar sample.        (line   6)
+* radar:                                 1D plotting.         (line  38)
+* ranges:                                Axis settings.       (line  14)
+* ray:                                   Make another data.   (line 114)
+* read:                                  File I/O.            (line   6)
+* readall:                               File I/O.            (line  21)
+* readhdf:                               File I/O.            (line  37)
+* readmat:                               File I/O.            (line  16)
+* rearrange:                             Rearrange data.      (line   6)
+* rect:                                  Primitives drawing.  (line  61)
+* Region <1>:                            Region gradient sample.
+                                                              (line   6)
+* Region:                                Region sample.       (line   6)
+* region:                                1D plotting.         (line  69)
+* resize:                                Make another data.   (line  56)
+* return:                                Program flow.        (line  45)
+* roll:                                  Change data.         (line  52)
+* rotate:                                Transformation matrix.
+                                                              (line  53)
+* rotatetext:                            Other settings.      (line  11)
+* save:                                  File I/O.            (line  34)
+* savehdf:                               File I/O.            (line  40)
+* setsize:                               Export to file.      (line  12)
+* SetTicks <1>:                          Log-log sample.      (line   6)
+* SetTicks:                              Semi-log sample.     (line   6)
+* SetTicksVal <1>:                       StickPlot sample.    (line   6)
+* SetTicksVal <2>:                       ColumnPlot sample.   (line   6)
+* SetTicksVal:                           Manual ticks sample. (line   6)
+* Sew:                                   Sew sample.          (line   6)
+* sew:                                   Change data.         (line  61)
+* sinfft:                                Change data.         (line  37)
+* smooth:                                Change data.         (line  66)
+* Sphere:                                Molecules drawing sample.
+                                                              (line   6)
+* sphere:                                Primitives drawing.  (line  42)
+* squeeze:                               Rearrange data.      (line  25)
+* Stem:                                  Stem sample.         (line   6)
+* stem:                                  1D plotting.         (line  79)
+* Step:                                  Step sample.         (line   6)
+* step:                                  1D plotting.         (line 128)
+* STFA:                                  STFA sample.         (line   6)
+* stfa:                                  Dual plotting.       (line  86)
+* stfad:                                 Make another data.   (line  87)
+* stickplot:                             Transformation matrix.
+                                                              (line  46)
+* stop:                                  Program flow.        (line  89)
+* subdata:                               Make another data.   (line  60)
+* SubPlot <1>:                           Adding mesh sample.  (line   6)
+* SubPlot:                               1D plot sample.      (line   6)
+* subplot:                               Transformation matrix.
+                                                              (line  15)
+* subto:                                 Operators.           (line  24)
+* sum:                                   Make another data.   (line  43)
+* Surf <1>:                              Mirrored surface sample.
+                                                              (line   6)
+* Surf <2>:                              Several light sample.
+                                                              (line   6)
+* Surf <3>:                              Surf & Cont sample.  (line   6)
+* Surf <4>:                              Adding mesh sample.  (line   6)
+* Surf <5>:                              3D plot sample.      (line   6)
+* Surf <6>:                              2D plot sample.      (line   6)
+* Surf <7>:                              Sharp colors sample. (line   6)
+* Surf <8>:                              Surface in fog sample.
+                                                              (line   6)
+* Surf <9>:                              Transparent surface sample.
+                                                              (line   6)
+* Surf:                                  Surf sample.         (line   6)
+* surf:                                  2D plotting.         (line  32)
+* Surf3 <1>:                             Coloring by coordinates sample.
+                                                              (line   6)
+* Surf3 <2>:                             CutOff sample.       (line   6)
+* Surf3 <3>:                             Isocaps sample.      (line   6)
+* Surf3 <4>:                             CutMinMax sample.    (line   6)
+* Surf3:                                 Surf3 sample.        (line   6)
+* surf3:                                 3D plotting.         (line  27)
+* Surf3A:                                Surf3A sample.       (line   6)
+* surf3a:                                Dual plotting.       (line  53)
+* Surf3C:                                Surf3C sample.       (line   6)
+* surf3c:                                Dual plotting.       (line  31)
+* SurfA:                                 SurfA sample.        (line   6)
+* surfa:                                 Dual plotting.       (line  45)
+* SurfC:                                 SurfC sample.        (line   6)
+* surfc:                                 Dual plotting.       (line  23)
+* swap:                                  Change data.         (line  49)
+* Tens:                                  Tens sample.         (line   6)
+* tens:                                  1D plotting.         (line  48)
+* Ternary:                               Ternary plot sample. (line   6)
+* ternary:                               Axis settings.       (line  63)
+* Text:                                  Text sample.         (line   6)
+* text:                                  Text printing.       (line  28)
+* TextMark:                              TextMark sample.     (line   6)
+* textmark:                              1D plotting.         (line 163)
+* ticklen:                               Default sizes.       (line  28)
+* tickstl:                               Default sizes.       (line  33)
+* Tile:                                  Tile sample.         (line   6)
+* tile:                                  2D plotting.         (line  73)
+* TileS:                                 TileS sample.        (line   6)
+* tiles:                                 Dual plotting.       (line  68)
+* title:                                 Text printing.       (line  48)
+* tlabel:                                Axis and Colorbar.   (line  51)
+* Torus:                                 Torus sample.        (line   6)
+* torus:                                 1D plotting.         (line 135)
+* trace:                                 Make another data.   (line  67)
+* Traj:                                  Traj sample.         (line   6)
+* traj:                                  Vector fields.       (line  20)
+* transform:                             Make another data.   (line  73)
+* transforma:                            Make another data.   (line  83)
+* transparent:                           Transparency.        (line  23)
+* transpose:                             Rearrange data.      (line  21)
+* TranspType <1>:                        Lamp-like transparency.
+                                                              (line   6)
+* TranspType <2>:                        Glass-like transparency.
+                                                              (line   6)
+* TranspType:                            Normal transparency. (line   6)
+* transptype:                            Transparency.        (line  26)
+* tricont:                               Other plotting.      (line  70)
+* triplot:                               Other plotting.      (line  58)
+* Tube:                                  Tube sample.         (line   6)
+* tube:                                  1D plotting.         (line 143)
+* var:                                   Data create.         (line  11)
+* Vect <1>:                              Vect 3D sample.      (line   6)
+* Vect:                                  Vect sample.         (line   6)
+* vect:                                  Vector fields.       (line  30)
+* VectC <1>:                             VectC 3D sample.     (line   6)
+* VectC:                                 VectC sample.        (line   6)
+* vectc:                                 Vector fields.       (line  49)
+* VectL <1>:                             VectL 3D sample.     (line   6)
+* VectL:                                 VectL sample.        (line   6)
+* vectl:                                 Vector fields.       (line  61)
+* write:                                 Export to file.      (line   6)
+* xlabel:                                Axis and Colorbar.   (line  48)
+* xrange <1>:                            Command options.     (line  33)
+* xrange:                                Axis settings.       (line  72)
+* xtick:                                 Axis settings.       (line  89)
+* ylabel:                                Axis and Colorbar.   (line  49)
+* yrange <1>:                            Command options.     (line  36)
+* yrange:                                Axis settings.       (line  73)
+* ytick:                                 Axis settings.       (line  90)
+* zlabel:                                Axis and Colorbar.   (line  50)
+* zoom:                                  Zooming.             (line  16)
+* zrange <1>:                            Command options.     (line  39)
+* zrange:                                Axis settings.       (line  74)
+* ztick:                                 Axis settings.       (line  91)
+* Стиль линий:                           Line styles.         (line   6)
+* Стиль маркеров:                        Line styles.         (line   6)
+* Стиль стрелок:                         Line styles.         (line   6)
+* Стиль текста:                          Font styles.         (line   6)
+* Текстовые формулы:                     Textual formulas.    (line   6)
+* Цветовая схема:                        Color scheme.        (line   6)
+
+
+
+
+Local Variables:
+coding: utf-8
+End:
diff --git a/debian/tmp/usr/share/mathgl/octave/mathgl.tar.gz b/debian/tmp/usr/share/mathgl/octave/mathgl.tar.gz
new file mode 100644
index 0000000..9698e14
Binary files /dev/null and b/debian/tmp/usr/share/mathgl/octave/mathgl.tar.gz differ
diff --git a/examples/.deps/full_test.Po b/examples/.deps/full_test.Po
new file mode 100644
index 0000000..229b16c
--- /dev/null
+++ b/examples/.deps/full_test.Po
@@ -0,0 +1,545 @@
+full_test.o: full_test.cpp /usr/include/wchar.h /usr/include/features.h \
+ /usr/include/bits/predefs.h /usr/include/sys/cdefs.h \
+ /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-64.h /usr/include/stdio.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/xlocale.h /usr/include/time.h /usr/include/bits/time.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/locale.h /usr/include/bits/locale.h /usr/include/string.h \
+ /usr/include/libio.h /usr/include/_G_config.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/sys/types.h \
+ /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/sys/sysmacros.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/getopt.h ../include/mgl/mgl_zb.h ../include/mgl/mgl_ab.h \
+ ../include/mgl/mgl.h ../include/mgl/mgl_data.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h ../include/mgl/mgl_eps.h \
+ ../include/mgl/mgl_idtf.h /usr/include/stdint.h \
+ /usr/include/c++/4.4/list /usr/include/c++/4.4/bits/stl_list.h \
+ /usr/include/c++/4.4/bits/list.tcc /usr/include/c++/4.4/deque \
+ /usr/include/c++/4.4/bits/stl_deque.h \
+ /usr/include/c++/4.4/bits/deque.tcc /usr/include/c++/4.4/string \
+ /usr/include/c++/4.4/bits/stringfwd.h \
+ /usr/include/c++/4.4/bits/char_traits.h \
+ /usr/include/c++/4.4/bits/postypes.h /usr/include/c++/4.4/cwchar \
+ /usr/include/c++/4.4/bits/localefwd.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++locale.h \
+ /usr/include/c++/4.4/clocale /usr/include/c++/4.4/iosfwd \
+ /usr/include/c++/4.4/cctype /usr/include/ctype.h \
+ /usr/include/c++/4.4/bits/ostream_insert.h \
+ /usr/include/c++/4.4/cxxabi-forced.h \
+ /usr/include/c++/4.4/bits/stl_function.h \
+ /usr/include/c++/4.4/backward/binders.h \
+ /usr/include/c++/4.4/bits/basic_string.h \
+ /usr/include/c++/4.4/ext/atomicity.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h /usr/include/bits/sched.h \
+ /usr/include/signal.h /usr/include/bits/setjmp.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/atomic_word.h \
+ /usr/include/c++/4.4/bits/basic_string.tcc /usr/include/c++/4.4/sstream \
+ /usr/include/c++/4.4/istream /usr/include/c++/4.4/ios \
+ /usr/include/c++/4.4/bits/ios_base.h \
+ /usr/include/c++/4.4/bits/locale_classes.h \
+ /usr/include/c++/4.4/bits/locale_classes.tcc \
+ /usr/include/c++/4.4/streambuf /usr/include/c++/4.4/bits/streambuf.tcc \
+ /usr/include/c++/4.4/bits/basic_ios.h \
+ /usr/include/c++/4.4/bits/locale_facets.h /usr/include/c++/4.4/cwctype \
+ /usr/include/wctype.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_base.h \
+ /usr/include/c++/4.4/bits/streambuf_iterator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_inline.h \
+ /usr/include/c++/4.4/bits/locale_facets.tcc \
+ /usr/include/c++/4.4/bits/basic_ios.tcc /usr/include/c++/4.4/ostream \
+ /usr/include/c++/4.4/bits/ostream.tcc \
+ /usr/include/c++/4.4/bits/istream.tcc \
+ /usr/include/c++/4.4/bits/sstream.tcc /usr/include/c++/4.4/iostream \
+ /usr/include/c++/4.4/fstream /usr/include/c++/4.4/bits/codecvt.h \
+ /usr/include/c++/4.4/cstdio \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/basic_file.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++io.h \
+ /usr/include/c++/4.4/bits/fstream.tcc ../include/mgl/mgl_parse.h
+
+/usr/include/wchar.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/string.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/getopt.h:
+
+../include/mgl/mgl_zb.h:
+
+../include/mgl/mgl_ab.h:
+
+../include/mgl/mgl.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+../include/mgl/mgl_eps.h:
+
+../include/mgl/mgl_idtf.h:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.4/list:
+
+/usr/include/c++/4.4/bits/stl_list.h:
+
+/usr/include/c++/4.4/bits/list.tcc:
+
+/usr/include/c++/4.4/deque:
+
+/usr/include/c++/4.4/bits/stl_deque.h:
+
+/usr/include/c++/4.4/bits/deque.tcc:
+
+/usr/include/c++/4.4/string:
+
+/usr/include/c++/4.4/bits/stringfwd.h:
+
+/usr/include/c++/4.4/bits/char_traits.h:
+
+/usr/include/c++/4.4/bits/postypes.h:
+
+/usr/include/c++/4.4/cwchar:
+
+/usr/include/c++/4.4/bits/localefwd.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++locale.h:
+
+/usr/include/c++/4.4/clocale:
+
+/usr/include/c++/4.4/iosfwd:
+
+/usr/include/c++/4.4/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/4.4/bits/ostream_insert.h:
+
+/usr/include/c++/4.4/cxxabi-forced.h:
+
+/usr/include/c++/4.4/bits/stl_function.h:
+
+/usr/include/c++/4.4/backward/binders.h:
+
+/usr/include/c++/4.4/bits/basic_string.h:
+
+/usr/include/c++/4.4/ext/atomicity.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/atomic_word.h:
+
+/usr/include/c++/4.4/bits/basic_string.tcc:
+
+/usr/include/c++/4.4/sstream:
+
+/usr/include/c++/4.4/istream:
+
+/usr/include/c++/4.4/ios:
+
+/usr/include/c++/4.4/bits/ios_base.h:
+
+/usr/include/c++/4.4/bits/locale_classes.h:
+
+/usr/include/c++/4.4/bits/locale_classes.tcc:
+
+/usr/include/c++/4.4/streambuf:
+
+/usr/include/c++/4.4/bits/streambuf.tcc:
+
+/usr/include/c++/4.4/bits/basic_ios.h:
+
+/usr/include/c++/4.4/bits/locale_facets.h:
+
+/usr/include/c++/4.4/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_base.h:
+
+/usr/include/c++/4.4/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_inline.h:
+
+/usr/include/c++/4.4/bits/locale_facets.tcc:
+
+/usr/include/c++/4.4/bits/basic_ios.tcc:
+
+/usr/include/c++/4.4/ostream:
+
+/usr/include/c++/4.4/bits/ostream.tcc:
+
+/usr/include/c++/4.4/bits/istream.tcc:
+
+/usr/include/c++/4.4/bits/sstream.tcc:
+
+/usr/include/c++/4.4/iostream:
+
+/usr/include/c++/4.4/fstream:
+
+/usr/include/c++/4.4/bits/codecvt.h:
+
+/usr/include/c++/4.4/cstdio:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/basic_file.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++io.h:
+
+/usr/include/c++/4.4/bits/fstream.tcc:
+
+../include/mgl/mgl_parse.h:
diff --git a/examples/.deps/glut_example.Po b/examples/.deps/glut_example.Po
new file mode 100644
index 0000000..bc39a31
--- /dev/null
+++ b/examples/.deps/glut_example.Po
@@ -0,0 +1,367 @@
+glut_example.o: glut_example.cpp /usr/include/stdio.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h ../include/mgl/mgl_glut.h \
+ ../include/mgl/mgl_gl.h /usr/include/GL/gl.h /usr/include/GL/glext.h \
+ /usr/include/inttypes.h /usr/include/stdint.h /usr/include/bits/wchar.h \
+ ../include/mgl/mgl_ab.h ../include/mgl/mgl.h /usr/include/xlocale.h \
+ /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h /usr/include/endian.h \
+ /usr/include/bits/endian.h /usr/include/bits/byteswap.h \
+ /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/alloca.h \
+ ../include/mgl/mgl_data.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/string.h /usr/include/c++/4.4/vector \
+ /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+../include/mgl/mgl_glut.h:
+
+../include/mgl/mgl_gl.h:
+
+/usr/include/GL/gl.h:
+
+/usr/include/GL/glext.h:
+
+/usr/include/inttypes.h:
+
+/usr/include/stdint.h:
+
+/usr/include/bits/wchar.h:
+
+../include/mgl/mgl_ab.h:
+
+../include/mgl/mgl.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/string.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
diff --git a/examples/.deps/mgl_fltk_example-fltk_example.Po b/examples/.deps/mgl_fltk_example-fltk_example.Po
new file mode 100644
index 0000000..1e737a5
--- /dev/null
+++ b/examples/.deps/mgl_fltk_example-fltk_example.Po
@@ -0,0 +1,423 @@
+mgl_fltk_example-fltk_example.o: fltk_example.cpp /usr/include/stdio.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h ../include/mgl/mgl_fltk.h /usr/include/FL/Fl.H \
+ /usr/include/FL/Enumerations.H /usr/include/FL/Fl_Export.H \
+ /usr/include/Fl/Fl_Scroll.H /usr/include/Fl/Fl_Group.H \
+ /usr/include/Fl/Fl_Widget.H /usr/include/Fl/Enumerations.H \
+ /usr/include/Fl/Fl_Scrollbar.H /usr/include/Fl/Fl_Slider.H \
+ /usr/include/Fl/Fl_Valuator.H /usr/include/FL/Fl_Button.H \
+ /usr/include/FL/Fl_Counter.H /usr/include/FL/Fl_Menu_Bar.H \
+ /usr/include/FL/Fl_Menu_.H /usr/include/FL/Fl_Menu_Item.H \
+ /usr/include/FL/Fl_Widget.H /usr/include/FL/Fl_Image.H \
+ ../include/mgl/mgl_zb.h ../include/mgl/mgl_ab.h ../include/mgl/mgl.h \
+ /usr/include/bits/wchar.h /usr/include/xlocale.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/sys/types.h \
+ /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h ../include/mgl/mgl_data.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/string.h /usr/include/c++/4.4/vector \
+ /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/bits/sched.h /usr/include/signal.h \
+ /usr/include/bits/setjmp.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+../include/mgl/mgl_fltk.h:
+
+/usr/include/FL/Fl.H:
+
+/usr/include/FL/Enumerations.H:
+
+/usr/include/FL/Fl_Export.H:
+
+/usr/include/Fl/Fl_Scroll.H:
+
+/usr/include/Fl/Fl_Group.H:
+
+/usr/include/Fl/Fl_Widget.H:
+
+/usr/include/Fl/Enumerations.H:
+
+/usr/include/Fl/Fl_Scrollbar.H:
+
+/usr/include/Fl/Fl_Slider.H:
+
+/usr/include/Fl/Fl_Valuator.H:
+
+/usr/include/FL/Fl_Button.H:
+
+/usr/include/FL/Fl_Counter.H:
+
+/usr/include/FL/Fl_Menu_Bar.H:
+
+/usr/include/FL/Fl_Menu_.H:
+
+/usr/include/FL/Fl_Menu_Item.H:
+
+/usr/include/FL/Fl_Widget.H:
+
+/usr/include/FL/Fl_Image.H:
+
+../include/mgl/mgl_zb.h:
+
+../include/mgl/mgl_ab.h:
+
+../include/mgl/mgl.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/string.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
diff --git a/examples/.deps/mgl_fltk_example-wnd_samples.Po b/examples/.deps/mgl_fltk_example-wnd_samples.Po
new file mode 100644
index 0000000..490868d
--- /dev/null
+++ b/examples/.deps/mgl_fltk_example-wnd_samples.Po
@@ -0,0 +1,352 @@
+mgl_fltk_example-wnd_samples.o: wnd_samples.cpp /usr/include/stdio.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/string.h /usr/include/xlocale.h \
+ /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h /usr/include/endian.h \
+ /usr/include/bits/endian.h /usr/include/bits/byteswap.h \
+ /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h ../include/mgl/mgl.h \
+ /usr/include/bits/wchar.h ../include/mgl/mgl_data.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h ../include/mgl/mgl_parse.h
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+../include/mgl/mgl.h:
+
+/usr/include/bits/wchar.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+../include/mgl/mgl_parse.h:
diff --git a/examples/.deps/mgl_qt_example-mgl_qt.moc.Po b/examples/.deps/mgl_qt_example-mgl_qt.moc.Po
new file mode 100644
index 0000000..b9e2bfa
--- /dev/null
+++ b/examples/.deps/mgl_qt_example-mgl_qt.moc.Po
@@ -0,0 +1,655 @@
+mgl_qt_example-mgl_qt.moc.o: ../include/mgl/mgl_qt.moc.cpp \
+ ../include/mgl/mgl_qt.h /usr/include/qt4/QtGui/QWidget \
+ /usr/include/qt4/QtGui/qwidget.h /usr/include/qt4/QtGui/qwindowdefs.h \
+ /usr/include/qt4/QtCore/qobjectdefs.h \
+ /usr/include/qt4/QtCore/qnamespace.h /usr/include/qt4/QtCore/qglobal.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/qt4/QtCore/qconfig.h /usr/include/qt4/QtCore/qfeatures.h \
+ /usr/include/qt4/QtCore/qobject.h /usr/include/qt4/QtCore/qstring.h \
+ /usr/include/qt4/QtCore/qchar.h /usr/include/qt4/QtCore/qbytearray.h \
+ /usr/include/qt4/QtCore/qatomic.h /usr/include/qt4/QtCore/qbasicatomic.h \
+ /usr/include/qt4/QtCore/qatomic_arch.h \
+ /usr/include/qt4/QtCore/qatomic_x86_64.h /usr/include/string.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/include/xlocale.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/c++/4.4/string \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/bits/stringfwd.h \
+ /usr/include/c++/4.4/bits/char_traits.h \
+ /usr/include/c++/4.4/bits/stl_algobase.h /usr/include/c++/4.4/cstddef \
+ /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/postypes.h \
+ /usr/include/c++/4.4/cwchar /usr/include/wchar.h /usr/include/stdio.h \
+ /usr/include/bits/wchar.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/localefwd.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++locale.h \
+ /usr/include/c++/4.4/clocale /usr/include/locale.h \
+ /usr/include/bits/locale.h /usr/include/c++/4.4/iosfwd \
+ /usr/include/c++/4.4/cctype /usr/include/ctype.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/c++/4.4/bits/ostream_insert.h \
+ /usr/include/c++/4.4/cxxabi-forced.h \
+ /usr/include/c++/4.4/bits/stl_function.h \
+ /usr/include/c++/4.4/backward/binders.h \
+ /usr/include/c++/4.4/bits/basic_string.h \
+ /usr/include/c++/4.4/ext/atomicity.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+ /usr/include/bits/sched.h /usr/include/bits/time.h /usr/include/signal.h \
+ /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/bits/setjmp.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/atomic_word.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/basic_string.tcc \
+ /usr/include/qt4/QtCore/qlist.h /usr/include/qt4/QtCore/qiterator.h \
+ /usr/include/qt4/QtCore/qalgorithms.h /usr/include/c++/4.4/iterator \
+ /usr/include/c++/4.4/ostream /usr/include/c++/4.4/ios \
+ /usr/include/c++/4.4/bits/ios_base.h \
+ /usr/include/c++/4.4/bits/locale_classes.h \
+ /usr/include/c++/4.4/bits/locale_classes.tcc \
+ /usr/include/c++/4.4/streambuf /usr/include/c++/4.4/bits/streambuf.tcc \
+ /usr/include/c++/4.4/bits/basic_ios.h \
+ /usr/include/c++/4.4/bits/locale_facets.h /usr/include/c++/4.4/cwctype \
+ /usr/include/wctype.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_base.h \
+ /usr/include/c++/4.4/bits/streambuf_iterator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_inline.h \
+ /usr/include/c++/4.4/bits/locale_facets.tcc \
+ /usr/include/c++/4.4/bits/basic_ios.tcc \
+ /usr/include/c++/4.4/bits/ostream.tcc /usr/include/c++/4.4/istream \
+ /usr/include/c++/4.4/bits/istream.tcc \
+ /usr/include/c++/4.4/bits/stream_iterator.h /usr/include/c++/4.4/list \
+ /usr/include/c++/4.4/bits/stl_list.h /usr/include/c++/4.4/bits/list.tcc \
+ /usr/include/qt4/QtCore/qscopedpointer.h \
+ /usr/include/qt4/QtCore/qmargins.h /usr/include/qt4/QtGui/qpaintdevice.h \
+ /usr/include/qt4/QtCore/qrect.h /usr/include/qt4/QtCore/qsize.h \
+ /usr/include/qt4/QtCore/qpoint.h /usr/include/qt4/QtGui/qpalette.h \
+ /usr/include/qt4/QtGui/qcolor.h /usr/include/qt4/QtGui/qrgb.h \
+ /usr/include/qt4/QtCore/qstringlist.h \
+ /usr/include/qt4/QtCore/qdatastream.h \
+ /usr/include/qt4/QtCore/qiodevice.h /usr/include/qt4/QtCore/qregexp.h \
+ /usr/include/qt4/QtCore/qstringmatcher.h /usr/include/qt4/QtGui/qbrush.h \
+ /usr/include/qt4/QtCore/qpair.h /usr/include/qt4/QtCore/qvector.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/sys/types.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+ /usr/include/alloca.h /usr/include/qt4/QtGui/qmatrix.h \
+ /usr/include/qt4/QtGui/qpolygon.h /usr/include/qt4/QtGui/qregion.h \
+ /usr/include/qt4/QtCore/qline.h /usr/include/qt4/QtGui/qtransform.h \
+ /usr/include/qt4/QtGui/qpainterpath.h /usr/include/qt4/QtGui/qimage.h \
+ /usr/include/qt4/QtGui/qpixmap.h \
+ /usr/include/qt4/QtCore/qsharedpointer.h \
+ /usr/include/qt4/QtCore/qshareddata.h \
+ /usr/include/qt4/QtCore/qsharedpointer_impl.h \
+ /usr/include/qt4/QtGui/qfont.h /usr/include/qt4/QtGui/qfontmetrics.h \
+ /usr/include/qt4/QtGui/qfontinfo.h /usr/include/qt4/QtGui/qsizepolicy.h \
+ /usr/include/qt4/QtGui/qcursor.h /usr/include/qt4/QtGui/qkeysequence.h \
+ /usr/include/qt4/QtGui/QPixmap /usr/include/qt4/QtGui/qpixmap.h \
+ ../include/mgl/mgl_zb.h ../include/mgl/mgl_ab.h ../include/mgl/mgl.h \
+ ../include/mgl/mgl_data.h /usr/include/libio.h /usr/include/_G_config.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h
+
+../include/mgl/mgl_qt.h:
+
+/usr/include/qt4/QtGui/QWidget:
+
+/usr/include/qt4/QtGui/qwidget.h:
+
+/usr/include/qt4/QtGui/qwindowdefs.h:
+
+/usr/include/qt4/QtCore/qobjectdefs.h:
+
+/usr/include/qt4/QtCore/qnamespace.h:
+
+/usr/include/qt4/QtCore/qglobal.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/qt4/QtCore/qconfig.h:
+
+/usr/include/qt4/QtCore/qfeatures.h:
+
+/usr/include/qt4/QtCore/qobject.h:
+
+/usr/include/qt4/QtCore/qstring.h:
+
+/usr/include/qt4/QtCore/qchar.h:
+
+/usr/include/qt4/QtCore/qbytearray.h:
+
+/usr/include/qt4/QtCore/qatomic.h:
+
+/usr/include/qt4/QtCore/qbasicatomic.h:
+
+/usr/include/qt4/QtCore/qatomic_arch.h:
+
+/usr/include/qt4/QtCore/qatomic_x86_64.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/xlocale.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/c++/4.4/string:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/bits/stringfwd.h:
+
+/usr/include/c++/4.4/bits/char_traits.h:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/postypes.h:
+
+/usr/include/c++/4.4/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/localefwd.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++locale.h:
+
+/usr/include/c++/4.4/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/c++/4.4/iosfwd:
+
+/usr/include/c++/4.4/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/c++/4.4/bits/ostream_insert.h:
+
+/usr/include/c++/4.4/cxxabi-forced.h:
+
+/usr/include/c++/4.4/bits/stl_function.h:
+
+/usr/include/c++/4.4/backward/binders.h:
+
+/usr/include/c++/4.4/bits/basic_string.h:
+
+/usr/include/c++/4.4/ext/atomicity.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/atomic_word.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/basic_string.tcc:
+
+/usr/include/qt4/QtCore/qlist.h:
+
+/usr/include/qt4/QtCore/qiterator.h:
+
+/usr/include/qt4/QtCore/qalgorithms.h:
+
+/usr/include/c++/4.4/iterator:
+
+/usr/include/c++/4.4/ostream:
+
+/usr/include/c++/4.4/ios:
+
+/usr/include/c++/4.4/bits/ios_base.h:
+
+/usr/include/c++/4.4/bits/locale_classes.h:
+
+/usr/include/c++/4.4/bits/locale_classes.tcc:
+
+/usr/include/c++/4.4/streambuf:
+
+/usr/include/c++/4.4/bits/streambuf.tcc:
+
+/usr/include/c++/4.4/bits/basic_ios.h:
+
+/usr/include/c++/4.4/bits/locale_facets.h:
+
+/usr/include/c++/4.4/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_base.h:
+
+/usr/include/c++/4.4/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_inline.h:
+
+/usr/include/c++/4.4/bits/locale_facets.tcc:
+
+/usr/include/c++/4.4/bits/basic_ios.tcc:
+
+/usr/include/c++/4.4/bits/ostream.tcc:
+
+/usr/include/c++/4.4/istream:
+
+/usr/include/c++/4.4/bits/istream.tcc:
+
+/usr/include/c++/4.4/bits/stream_iterator.h:
+
+/usr/include/c++/4.4/list:
+
+/usr/include/c++/4.4/bits/stl_list.h:
+
+/usr/include/c++/4.4/bits/list.tcc:
+
+/usr/include/qt4/QtCore/qscopedpointer.h:
+
+/usr/include/qt4/QtCore/qmargins.h:
+
+/usr/include/qt4/QtGui/qpaintdevice.h:
+
+/usr/include/qt4/QtCore/qrect.h:
+
+/usr/include/qt4/QtCore/qsize.h:
+
+/usr/include/qt4/QtCore/qpoint.h:
+
+/usr/include/qt4/QtGui/qpalette.h:
+
+/usr/include/qt4/QtGui/qcolor.h:
+
+/usr/include/qt4/QtGui/qrgb.h:
+
+/usr/include/qt4/QtCore/qstringlist.h:
+
+/usr/include/qt4/QtCore/qdatastream.h:
+
+/usr/include/qt4/QtCore/qiodevice.h:
+
+/usr/include/qt4/QtCore/qregexp.h:
+
+/usr/include/qt4/QtCore/qstringmatcher.h:
+
+/usr/include/qt4/QtGui/qbrush.h:
+
+/usr/include/qt4/QtCore/qpair.h:
+
+/usr/include/qt4/QtCore/qvector.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/qt4/QtGui/qmatrix.h:
+
+/usr/include/qt4/QtGui/qpolygon.h:
+
+/usr/include/qt4/QtGui/qregion.h:
+
+/usr/include/qt4/QtCore/qline.h:
+
+/usr/include/qt4/QtGui/qtransform.h:
+
+/usr/include/qt4/QtGui/qpainterpath.h:
+
+/usr/include/qt4/QtGui/qimage.h:
+
+/usr/include/qt4/QtGui/qpixmap.h:
+
+/usr/include/qt4/QtCore/qsharedpointer.h:
+
+/usr/include/qt4/QtCore/qshareddata.h:
+
+/usr/include/qt4/QtCore/qsharedpointer_impl.h:
+
+/usr/include/qt4/QtGui/qfont.h:
+
+/usr/include/qt4/QtGui/qfontmetrics.h:
+
+/usr/include/qt4/QtGui/qfontinfo.h:
+
+/usr/include/qt4/QtGui/qsizepolicy.h:
+
+/usr/include/qt4/QtGui/qcursor.h:
+
+/usr/include/qt4/QtGui/qkeysequence.h:
+
+/usr/include/qt4/QtGui/QPixmap:
+
+/usr/include/qt4/QtGui/qpixmap.h:
+
+../include/mgl/mgl_zb.h:
+
+../include/mgl/mgl_ab.h:
+
+../include/mgl/mgl.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
diff --git a/examples/.deps/mgl_qt_example-qt_example.Po b/examples/.deps/mgl_qt_example-qt_example.Po
new file mode 100644
index 0000000..4614441
--- /dev/null
+++ b/examples/.deps/mgl_qt_example-qt_example.Po
@@ -0,0 +1,655 @@
+mgl_qt_example-qt_example.o: qt_example.cpp /usr/include/stdio.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h ../include/mgl/mgl_qt.h \
+ /usr/include/qt4/QtGui/QWidget /usr/include/qt4/QtGui/qwidget.h \
+ /usr/include/qt4/QtGui/qwindowdefs.h \
+ /usr/include/qt4/QtCore/qobjectdefs.h \
+ /usr/include/qt4/QtCore/qnamespace.h /usr/include/qt4/QtCore/qglobal.h \
+ /usr/include/qt4/QtCore/qconfig.h /usr/include/qt4/QtCore/qfeatures.h \
+ /usr/include/qt4/QtCore/qobject.h /usr/include/qt4/QtCore/qstring.h \
+ /usr/include/qt4/QtCore/qchar.h /usr/include/qt4/QtCore/qbytearray.h \
+ /usr/include/qt4/QtCore/qatomic.h /usr/include/qt4/QtCore/qbasicatomic.h \
+ /usr/include/qt4/QtCore/qatomic_arch.h \
+ /usr/include/qt4/QtCore/qatomic_x86_64.h /usr/include/string.h \
+ /usr/include/xlocale.h /usr/include/c++/4.4/string \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/bits/stringfwd.h \
+ /usr/include/c++/4.4/bits/char_traits.h \
+ /usr/include/c++/4.4/bits/stl_algobase.h /usr/include/c++/4.4/cstddef \
+ /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/postypes.h \
+ /usr/include/c++/4.4/cwchar /usr/include/bits/wchar.h \
+ /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/localefwd.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++locale.h \
+ /usr/include/c++/4.4/clocale /usr/include/locale.h \
+ /usr/include/bits/locale.h /usr/include/c++/4.4/iosfwd \
+ /usr/include/c++/4.4/cctype /usr/include/ctype.h /usr/include/endian.h \
+ /usr/include/bits/endian.h /usr/include/bits/byteswap.h \
+ /usr/include/c++/4.4/bits/ostream_insert.h \
+ /usr/include/c++/4.4/cxxabi-forced.h \
+ /usr/include/c++/4.4/bits/stl_function.h \
+ /usr/include/c++/4.4/backward/binders.h \
+ /usr/include/c++/4.4/bits/basic_string.h \
+ /usr/include/c++/4.4/ext/atomicity.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+ /usr/include/bits/sched.h /usr/include/bits/time.h /usr/include/signal.h \
+ /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/bits/setjmp.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/atomic_word.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/basic_string.tcc \
+ /usr/include/qt4/QtCore/qlist.h /usr/include/qt4/QtCore/qiterator.h \
+ /usr/include/qt4/QtCore/qalgorithms.h /usr/include/c++/4.4/iterator \
+ /usr/include/c++/4.4/ostream /usr/include/c++/4.4/ios \
+ /usr/include/c++/4.4/bits/ios_base.h \
+ /usr/include/c++/4.4/bits/locale_classes.h \
+ /usr/include/c++/4.4/bits/locale_classes.tcc \
+ /usr/include/c++/4.4/streambuf /usr/include/c++/4.4/bits/streambuf.tcc \
+ /usr/include/c++/4.4/bits/basic_ios.h \
+ /usr/include/c++/4.4/bits/locale_facets.h /usr/include/c++/4.4/cwctype \
+ /usr/include/wctype.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_base.h \
+ /usr/include/c++/4.4/bits/streambuf_iterator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_inline.h \
+ /usr/include/c++/4.4/bits/locale_facets.tcc \
+ /usr/include/c++/4.4/bits/basic_ios.tcc \
+ /usr/include/c++/4.4/bits/ostream.tcc /usr/include/c++/4.4/istream \
+ /usr/include/c++/4.4/bits/istream.tcc \
+ /usr/include/c++/4.4/bits/stream_iterator.h /usr/include/c++/4.4/list \
+ /usr/include/c++/4.4/bits/stl_list.h /usr/include/c++/4.4/bits/list.tcc \
+ /usr/include/qt4/QtCore/qscopedpointer.h \
+ /usr/include/qt4/QtCore/qmargins.h /usr/include/qt4/QtGui/qpaintdevice.h \
+ /usr/include/qt4/QtCore/qrect.h /usr/include/qt4/QtCore/qsize.h \
+ /usr/include/qt4/QtCore/qpoint.h /usr/include/qt4/QtGui/qpalette.h \
+ /usr/include/qt4/QtGui/qcolor.h /usr/include/qt4/QtGui/qrgb.h \
+ /usr/include/qt4/QtCore/qstringlist.h \
+ /usr/include/qt4/QtCore/qdatastream.h \
+ /usr/include/qt4/QtCore/qiodevice.h /usr/include/qt4/QtCore/qregexp.h \
+ /usr/include/qt4/QtCore/qstringmatcher.h /usr/include/qt4/QtGui/qbrush.h \
+ /usr/include/qt4/QtCore/qpair.h /usr/include/qt4/QtCore/qvector.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/sys/types.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+ /usr/include/alloca.h /usr/include/qt4/QtGui/qmatrix.h \
+ /usr/include/qt4/QtGui/qpolygon.h /usr/include/qt4/QtGui/qregion.h \
+ /usr/include/qt4/QtCore/qline.h /usr/include/qt4/QtGui/qtransform.h \
+ /usr/include/qt4/QtGui/qpainterpath.h /usr/include/qt4/QtGui/qimage.h \
+ /usr/include/qt4/QtGui/qpixmap.h \
+ /usr/include/qt4/QtCore/qsharedpointer.h \
+ /usr/include/qt4/QtCore/qshareddata.h \
+ /usr/include/qt4/QtCore/qsharedpointer_impl.h \
+ /usr/include/qt4/QtGui/qfont.h /usr/include/qt4/QtGui/qfontmetrics.h \
+ /usr/include/qt4/QtGui/qfontinfo.h /usr/include/qt4/QtGui/qsizepolicy.h \
+ /usr/include/qt4/QtGui/qcursor.h /usr/include/qt4/QtGui/qkeysequence.h \
+ /usr/include/qt4/QtGui/QPixmap /usr/include/qt4/QtGui/qpixmap.h \
+ ../include/mgl/mgl_zb.h ../include/mgl/mgl_ab.h ../include/mgl/mgl.h \
+ ../include/mgl/mgl_data.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+../include/mgl/mgl_qt.h:
+
+/usr/include/qt4/QtGui/QWidget:
+
+/usr/include/qt4/QtGui/qwidget.h:
+
+/usr/include/qt4/QtGui/qwindowdefs.h:
+
+/usr/include/qt4/QtCore/qobjectdefs.h:
+
+/usr/include/qt4/QtCore/qnamespace.h:
+
+/usr/include/qt4/QtCore/qglobal.h:
+
+/usr/include/qt4/QtCore/qconfig.h:
+
+/usr/include/qt4/QtCore/qfeatures.h:
+
+/usr/include/qt4/QtCore/qobject.h:
+
+/usr/include/qt4/QtCore/qstring.h:
+
+/usr/include/qt4/QtCore/qchar.h:
+
+/usr/include/qt4/QtCore/qbytearray.h:
+
+/usr/include/qt4/QtCore/qatomic.h:
+
+/usr/include/qt4/QtCore/qbasicatomic.h:
+
+/usr/include/qt4/QtCore/qatomic_arch.h:
+
+/usr/include/qt4/QtCore/qatomic_x86_64.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.4/string:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/bits/stringfwd.h:
+
+/usr/include/c++/4.4/bits/char_traits.h:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/postypes.h:
+
+/usr/include/c++/4.4/cwchar:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/localefwd.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++locale.h:
+
+/usr/include/c++/4.4/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/c++/4.4/iosfwd:
+
+/usr/include/c++/4.4/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/c++/4.4/bits/ostream_insert.h:
+
+/usr/include/c++/4.4/cxxabi-forced.h:
+
+/usr/include/c++/4.4/bits/stl_function.h:
+
+/usr/include/c++/4.4/backward/binders.h:
+
+/usr/include/c++/4.4/bits/basic_string.h:
+
+/usr/include/c++/4.4/ext/atomicity.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/atomic_word.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/basic_string.tcc:
+
+/usr/include/qt4/QtCore/qlist.h:
+
+/usr/include/qt4/QtCore/qiterator.h:
+
+/usr/include/qt4/QtCore/qalgorithms.h:
+
+/usr/include/c++/4.4/iterator:
+
+/usr/include/c++/4.4/ostream:
+
+/usr/include/c++/4.4/ios:
+
+/usr/include/c++/4.4/bits/ios_base.h:
+
+/usr/include/c++/4.4/bits/locale_classes.h:
+
+/usr/include/c++/4.4/bits/locale_classes.tcc:
+
+/usr/include/c++/4.4/streambuf:
+
+/usr/include/c++/4.4/bits/streambuf.tcc:
+
+/usr/include/c++/4.4/bits/basic_ios.h:
+
+/usr/include/c++/4.4/bits/locale_facets.h:
+
+/usr/include/c++/4.4/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_base.h:
+
+/usr/include/c++/4.4/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_inline.h:
+
+/usr/include/c++/4.4/bits/locale_facets.tcc:
+
+/usr/include/c++/4.4/bits/basic_ios.tcc:
+
+/usr/include/c++/4.4/bits/ostream.tcc:
+
+/usr/include/c++/4.4/istream:
+
+/usr/include/c++/4.4/bits/istream.tcc:
+
+/usr/include/c++/4.4/bits/stream_iterator.h:
+
+/usr/include/c++/4.4/list:
+
+/usr/include/c++/4.4/bits/stl_list.h:
+
+/usr/include/c++/4.4/bits/list.tcc:
+
+/usr/include/qt4/QtCore/qscopedpointer.h:
+
+/usr/include/qt4/QtCore/qmargins.h:
+
+/usr/include/qt4/QtGui/qpaintdevice.h:
+
+/usr/include/qt4/QtCore/qrect.h:
+
+/usr/include/qt4/QtCore/qsize.h:
+
+/usr/include/qt4/QtCore/qpoint.h:
+
+/usr/include/qt4/QtGui/qpalette.h:
+
+/usr/include/qt4/QtGui/qcolor.h:
+
+/usr/include/qt4/QtGui/qrgb.h:
+
+/usr/include/qt4/QtCore/qstringlist.h:
+
+/usr/include/qt4/QtCore/qdatastream.h:
+
+/usr/include/qt4/QtCore/qiodevice.h:
+
+/usr/include/qt4/QtCore/qregexp.h:
+
+/usr/include/qt4/QtCore/qstringmatcher.h:
+
+/usr/include/qt4/QtGui/qbrush.h:
+
+/usr/include/qt4/QtCore/qpair.h:
+
+/usr/include/qt4/QtCore/qvector.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/qt4/QtGui/qmatrix.h:
+
+/usr/include/qt4/QtGui/qpolygon.h:
+
+/usr/include/qt4/QtGui/qregion.h:
+
+/usr/include/qt4/QtCore/qline.h:
+
+/usr/include/qt4/QtGui/qtransform.h:
+
+/usr/include/qt4/QtGui/qpainterpath.h:
+
+/usr/include/qt4/QtGui/qimage.h:
+
+/usr/include/qt4/QtGui/qpixmap.h:
+
+/usr/include/qt4/QtCore/qsharedpointer.h:
+
+/usr/include/qt4/QtCore/qshareddata.h:
+
+/usr/include/qt4/QtCore/qsharedpointer_impl.h:
+
+/usr/include/qt4/QtGui/qfont.h:
+
+/usr/include/qt4/QtGui/qfontmetrics.h:
+
+/usr/include/qt4/QtGui/qfontinfo.h:
+
+/usr/include/qt4/QtGui/qsizepolicy.h:
+
+/usr/include/qt4/QtGui/qcursor.h:
+
+/usr/include/qt4/QtGui/qkeysequence.h:
+
+/usr/include/qt4/QtGui/QPixmap:
+
+/usr/include/qt4/QtGui/qpixmap.h:
+
+../include/mgl/mgl_zb.h:
+
+../include/mgl/mgl_ab.h:
+
+../include/mgl/mgl.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
diff --git a/examples/.deps/mgl_qt_example-wnd_samples.Po b/examples/.deps/mgl_qt_example-wnd_samples.Po
new file mode 100644
index 0000000..53bd14e
--- /dev/null
+++ b/examples/.deps/mgl_qt_example-wnd_samples.Po
@@ -0,0 +1,352 @@
+mgl_qt_example-wnd_samples.o: wnd_samples.cpp /usr/include/stdio.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/string.h /usr/include/xlocale.h \
+ /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h /usr/include/endian.h \
+ /usr/include/bits/endian.h /usr/include/bits/byteswap.h \
+ /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h ../include/mgl/mgl.h \
+ /usr/include/bits/wchar.h ../include/mgl/mgl_data.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h ../include/mgl/mgl_parse.h
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+../include/mgl/mgl.h:
+
+/usr/include/bits/wchar.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+../include/mgl/mgl_parse.h:
diff --git a/examples/.deps/mgl_wx_example-wnd_samples.Po b/examples/.deps/mgl_wx_example-wnd_samples.Po
new file mode 100644
index 0000000..258eb5f
--- /dev/null
+++ b/examples/.deps/mgl_wx_example-wnd_samples.Po
@@ -0,0 +1,352 @@
+mgl_wx_example-wnd_samples.o: wnd_samples.cpp /usr/include/stdio.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/string.h /usr/include/xlocale.h \
+ /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h /usr/include/endian.h \
+ /usr/include/bits/endian.h /usr/include/bits/byteswap.h \
+ /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h ../include/mgl/mgl.h \
+ /usr/include/bits/wchar.h ../include/mgl/mgl_data.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h ../include/mgl/mgl_parse.h
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+../include/mgl/mgl.h:
+
+/usr/include/bits/wchar.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+../include/mgl/mgl_parse.h:
diff --git a/examples/.deps/mgl_wx_example-wx_example.Po b/examples/.deps/mgl_wx_example-wx_example.Po
new file mode 100644
index 0000000..5a9c4dd
--- /dev/null
+++ b/examples/.deps/mgl_wx_example-wx_example.Po
@@ -0,0 +1,669 @@
+mgl_wx_example-wx_example.o: wx_example.cpp /usr/include/stdio.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h ../include/mgl/mgl_wx.h \
+ /usr/include/wx-2.8/wx/window.h /usr/include/wx-2.8/wx/event.h \
+ /usr/include/wx-2.8/wx/defs.h /usr/include/wx-2.8/wx/platform.h \
+ /usr/lib/wx/include/gtk2-unicode-release-2.8/wx/setup.h \
+ /usr/include/wx-2.8/wx/chkconf.h /usr/include/wx-2.8/wx/features.h \
+ /usr/include/wx-2.8/wx/version.h /usr/include/wx-2.8/wx/cpp.h \
+ /usr/include/wx-2.8/wx/dlimpexp.h /usr/include/wx-2.8/wx/debug.h \
+ /usr/include/assert.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+ /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+ /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+ /usr/include/wx-2.8/wx/wxchar.h /usr/include/bits/wchar.h \
+ /usr/include/xlocale.h /usr/include/wctype.h /usr/include/endian.h \
+ /usr/include/bits/endian.h /usr/include/bits/byteswap.h \
+ /usr/include/time.h /usr/include/bits/time.h /usr/include/string.h \
+ /usr/include/wx-2.8/wx/object.h /usr/include/wx-2.8/wx/memory.h \
+ /usr/include/wx-2.8/wx/string.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/sys/types.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/wx-2.8/wx/buffer.h \
+ /usr/include/wx-2.8/wx/strconv.h /usr/include/wx-2.8/wx/fontenc.h \
+ /usr/include/wx-2.8/wx/beforestd.h /usr/include/c++/4.4/string \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/bits/stringfwd.h \
+ /usr/include/c++/4.4/bits/char_traits.h \
+ /usr/include/c++/4.4/bits/stl_algobase.h /usr/include/c++/4.4/cstddef \
+ /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/postypes.h \
+ /usr/include/c++/4.4/cwchar /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/localefwd.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++locale.h \
+ /usr/include/c++/4.4/clocale /usr/include/locale.h \
+ /usr/include/bits/locale.h /usr/include/c++/4.4/iosfwd \
+ /usr/include/c++/4.4/cctype /usr/include/ctype.h \
+ /usr/include/c++/4.4/bits/ostream_insert.h \
+ /usr/include/c++/4.4/cxxabi-forced.h \
+ /usr/include/c++/4.4/bits/stl_function.h \
+ /usr/include/c++/4.4/backward/binders.h \
+ /usr/include/c++/4.4/bits/basic_string.h \
+ /usr/include/c++/4.4/ext/atomicity.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h /usr/include/bits/sched.h \
+ /usr/include/signal.h /usr/include/bits/setjmp.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/atomic_word.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/basic_string.tcc \
+ /usr/include/wx-2.8/wx/afterstd.h /usr/include/wx-2.8/wx/iosfwrap.h \
+ /usr/include/wx-2.8/wx/msgout.h /usr/include/wx-2.8/wx/clntdata.h \
+ /usr/include/wx-2.8/wx/hashmap.h /usr/include/wx-2.8/wx/vector.h \
+ /usr/include/wx-2.8/wx/gdicmn.h /usr/include/wx-2.8/wx/list.h \
+ /usr/include/wx-2.8/wx/math.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/wx-2.8/wx/cursor.h /usr/include/wx-2.8/wx/gtk/cursor.h \
+ /usr/include/wx-2.8/wx/utils.h /usr/include/wx-2.8/wx/filefn.h \
+ /usr/include/wx-2.8/wx/arrstr.h /usr/include/sys/stat.h \
+ /usr/include/bits/stat.h /usr/include/dirent.h \
+ /usr/include/bits/dirent.h /usr/include/fcntl.h \
+ /usr/include/bits/fcntl.h /usr/include/bits/uio.h \
+ /usr/include/wx-2.8/wx/longlong.h /usr/include/wx-2.8/wx/platinfo.h \
+ /usr/include/wx-2.8/wx/thread.h /usr/include/wx-2.8/wx/dynarray.h \
+ /usr/include/wx-2.8/wx/font.h /usr/include/wx-2.8/wx/gdiobj.h \
+ /usr/include/wx-2.8/wx/gtk/font.h /usr/include/wx-2.8/wx/colour.h \
+ /usr/include/wx-2.8/wx/variant.h /usr/include/wx-2.8/wx/datetime.h \
+ /usr/include/wx-2.8/wx/gtk/colour.h /usr/include/wx-2.8/wx/region.h \
+ /usr/include/wx-2.8/wx/gtk/region.h /usr/include/wx-2.8/wx/intl.h \
+ /usr/include/wx-2.8/wx/validate.h /usr/include/wx-2.8/wx/palette.h \
+ /usr/include/wx-2.8/wx/generic/paletteg.h /usr/include/wx-2.8/wx/accel.h \
+ /usr/include/wx-2.8/wx/gtk/accel.h \
+ /usr/include/wx-2.8/wx/generic/accel.h \
+ /usr/include/wx-2.8/wx/gtk/window.h /usr/include/wx-2.8/wx/image.h \
+ /usr/include/wx-2.8/wx/stream.h /usr/include/wx-2.8/wx/imagbmp.h \
+ /usr/include/wx-2.8/wx/imagpng.h /usr/include/wx-2.8/wx/imaggif.h \
+ /usr/include/wx-2.8/wx/imagpcx.h /usr/include/wx-2.8/wx/imagjpeg.h \
+ /usr/include/wx-2.8/wx/imagtga.h /usr/include/wx-2.8/wx/imagtiff.h \
+ /usr/include/wx-2.8/wx/imagpnm.h /usr/include/wx-2.8/wx/imagxpm.h \
+ /usr/include/wx-2.8/wx/imagiff.h /usr/include/wx-2.8/wx/timer.h \
+ /usr/include/wx-2.8/wx/stopwatch.h /usr/include/wx-2.8/wx/gtk/timer.h \
+ /usr/include/wx-2.8/wx/bitmap.h /usr/include/wx-2.8/wx/gtk/bitmap.h \
+ ../include/mgl/mgl_zb.h ../include/mgl/mgl_ab.h ../include/mgl/mgl.h \
+ ../include/mgl/mgl_data.h /usr/include/c++/4.4/vector \
+ /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+../include/mgl/mgl_wx.h:
+
+/usr/include/wx-2.8/wx/window.h:
+
+/usr/include/wx-2.8/wx/event.h:
+
+/usr/include/wx-2.8/wx/defs.h:
+
+/usr/include/wx-2.8/wx/platform.h:
+
+/usr/lib/wx/include/gtk2-unicode-release-2.8/wx/setup.h:
+
+/usr/include/wx-2.8/wx/chkconf.h:
+
+/usr/include/wx-2.8/wx/features.h:
+
+/usr/include/wx-2.8/wx/version.h:
+
+/usr/include/wx-2.8/wx/cpp.h:
+
+/usr/include/wx-2.8/wx/dlimpexp.h:
+
+/usr/include/wx-2.8/wx/debug.h:
+
+/usr/include/assert.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/wx-2.8/wx/wxchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/wctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/string.h:
+
+/usr/include/wx-2.8/wx/object.h:
+
+/usr/include/wx-2.8/wx/memory.h:
+
+/usr/include/wx-2.8/wx/string.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/wx-2.8/wx/buffer.h:
+
+/usr/include/wx-2.8/wx/strconv.h:
+
+/usr/include/wx-2.8/wx/fontenc.h:
+
+/usr/include/wx-2.8/wx/beforestd.h:
+
+/usr/include/c++/4.4/string:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/bits/stringfwd.h:
+
+/usr/include/c++/4.4/bits/char_traits.h:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/postypes.h:
+
+/usr/include/c++/4.4/cwchar:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/localefwd.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++locale.h:
+
+/usr/include/c++/4.4/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/c++/4.4/iosfwd:
+
+/usr/include/c++/4.4/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/4.4/bits/ostream_insert.h:
+
+/usr/include/c++/4.4/cxxabi-forced.h:
+
+/usr/include/c++/4.4/bits/stl_function.h:
+
+/usr/include/c++/4.4/backward/binders.h:
+
+/usr/include/c++/4.4/bits/basic_string.h:
+
+/usr/include/c++/4.4/ext/atomicity.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/atomic_word.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/basic_string.tcc:
+
+/usr/include/wx-2.8/wx/afterstd.h:
+
+/usr/include/wx-2.8/wx/iosfwrap.h:
+
+/usr/include/wx-2.8/wx/msgout.h:
+
+/usr/include/wx-2.8/wx/clntdata.h:
+
+/usr/include/wx-2.8/wx/hashmap.h:
+
+/usr/include/wx-2.8/wx/vector.h:
+
+/usr/include/wx-2.8/wx/gdicmn.h:
+
+/usr/include/wx-2.8/wx/list.h:
+
+/usr/include/wx-2.8/wx/math.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/wx-2.8/wx/cursor.h:
+
+/usr/include/wx-2.8/wx/gtk/cursor.h:
+
+/usr/include/wx-2.8/wx/utils.h:
+
+/usr/include/wx-2.8/wx/filefn.h:
+
+/usr/include/wx-2.8/wx/arrstr.h:
+
+/usr/include/sys/stat.h:
+
+/usr/include/bits/stat.h:
+
+/usr/include/dirent.h:
+
+/usr/include/bits/dirent.h:
+
+/usr/include/fcntl.h:
+
+/usr/include/bits/fcntl.h:
+
+/usr/include/bits/uio.h:
+
+/usr/include/wx-2.8/wx/longlong.h:
+
+/usr/include/wx-2.8/wx/platinfo.h:
+
+/usr/include/wx-2.8/wx/thread.h:
+
+/usr/include/wx-2.8/wx/dynarray.h:
+
+/usr/include/wx-2.8/wx/font.h:
+
+/usr/include/wx-2.8/wx/gdiobj.h:
+
+/usr/include/wx-2.8/wx/gtk/font.h:
+
+/usr/include/wx-2.8/wx/colour.h:
+
+/usr/include/wx-2.8/wx/variant.h:
+
+/usr/include/wx-2.8/wx/datetime.h:
+
+/usr/include/wx-2.8/wx/gtk/colour.h:
+
+/usr/include/wx-2.8/wx/region.h:
+
+/usr/include/wx-2.8/wx/gtk/region.h:
+
+/usr/include/wx-2.8/wx/intl.h:
+
+/usr/include/wx-2.8/wx/validate.h:
+
+/usr/include/wx-2.8/wx/palette.h:
+
+/usr/include/wx-2.8/wx/generic/paletteg.h:
+
+/usr/include/wx-2.8/wx/accel.h:
+
+/usr/include/wx-2.8/wx/gtk/accel.h:
+
+/usr/include/wx-2.8/wx/generic/accel.h:
+
+/usr/include/wx-2.8/wx/gtk/window.h:
+
+/usr/include/wx-2.8/wx/image.h:
+
+/usr/include/wx-2.8/wx/stream.h:
+
+/usr/include/wx-2.8/wx/imagbmp.h:
+
+/usr/include/wx-2.8/wx/imagpng.h:
+
+/usr/include/wx-2.8/wx/imaggif.h:
+
+/usr/include/wx-2.8/wx/imagpcx.h:
+
+/usr/include/wx-2.8/wx/imagjpeg.h:
+
+/usr/include/wx-2.8/wx/imagtga.h:
+
+/usr/include/wx-2.8/wx/imagtiff.h:
+
+/usr/include/wx-2.8/wx/imagpnm.h:
+
+/usr/include/wx-2.8/wx/imagxpm.h:
+
+/usr/include/wx-2.8/wx/imagiff.h:
+
+/usr/include/wx-2.8/wx/timer.h:
+
+/usr/include/wx-2.8/wx/stopwatch.h:
+
+/usr/include/wx-2.8/wx/gtk/timer.h:
+
+/usr/include/wx-2.8/wx/bitmap.h:
+
+/usr/include/wx-2.8/wx/gtk/bitmap.h:
+
+../include/mgl/mgl_zb.h:
+
+../include/mgl/mgl_ab.h:
+
+../include/mgl/mgl.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
diff --git a/examples/.deps/test-main.Po b/examples/.deps/test-main.Po
new file mode 100644
index 0000000..9ce06a8
--- /dev/null
+++ b/examples/.deps/test-main.Po
@@ -0,0 +1 @@
+# dummy
diff --git a/examples/.deps/test-wnd_samples.Po b/examples/.deps/test-wnd_samples.Po
new file mode 100644
index 0000000..9ce06a8
--- /dev/null
+++ b/examples/.deps/test-wnd_samples.Po
@@ -0,0 +1 @@
+# dummy
diff --git a/examples/.deps/wnd_samples.Po b/examples/.deps/wnd_samples.Po
new file mode 100644
index 0000000..7d672dd
--- /dev/null
+++ b/examples/.deps/wnd_samples.Po
@@ -0,0 +1,352 @@
+wnd_samples.o: wnd_samples.cpp /usr/include/stdio.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/string.h /usr/include/xlocale.h \
+ /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h /usr/include/endian.h \
+ /usr/include/bits/endian.h /usr/include/bits/byteswap.h \
+ /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h ../include/mgl/mgl.h \
+ /usr/include/bits/wchar.h ../include/mgl/mgl_data.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h ../include/mgl/mgl_parse.h
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+../include/mgl/mgl.h:
+
+/usr/include/bits/wchar.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+../include/mgl/mgl_parse.h:
diff --git a/examples/.libs/lt-mgl_example b/examples/.libs/lt-mgl_example
new file mode 100755
index 0000000..a9819c4
Binary files /dev/null and b/examples/.libs/lt-mgl_example differ
diff --git a/examples/.libs/mgl_example b/examples/.libs/mgl_example
new file mode 100755
index 0000000..2b288b3
Binary files /dev/null and b/examples/.libs/mgl_example differ
diff --git a/examples/.libs/mgl_fltk_example b/examples/.libs/mgl_fltk_example
new file mode 100755
index 0000000..7688158
Binary files /dev/null and b/examples/.libs/mgl_fltk_example differ
diff --git a/examples/.libs/mgl_glut_example b/examples/.libs/mgl_glut_example
new file mode 100755
index 0000000..7632d2e
Binary files /dev/null and b/examples/.libs/mgl_glut_example differ
diff --git a/examples/.libs/mgl_qt_example b/examples/.libs/mgl_qt_example
new file mode 100755
index 0000000..27a31ce
Binary files /dev/null and b/examples/.libs/mgl_qt_example differ
diff --git a/examples/.libs/mgl_wx_example b/examples/.libs/mgl_wx_example
new file mode 100755
index 0000000..01a504d
Binary files /dev/null and b/examples/.libs/mgl_wx_example differ
diff --git a/examples/Makefile b/examples/Makefile
new file mode 100644
index 0000000..17902a2
--- /dev/null
+++ b/examples/Makefile
@@ -0,0 +1,924 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# examples/Makefile.  Generated from Makefile.in by configure.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+# Makerules.
+# This file is part of AutoTroll.
+# Copyright (C) 2006  Benoit Sigoure.
+#
+# AutoTroll 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.
+#
+# This program 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 this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+# USA.
+
+
+pkgdatadir = $(datadir)/mathgl
+pkgincludedir = $(includedir)/mathgl
+pkglibdir = $(libdir)/mathgl
+pkglibexecdir = $(libexecdir)/mathgl
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-pc-linux-gnu
+host_triplet = x86_64-pc-linux-gnu
+check_PROGRAMS = $(am__EXEEXT_5)
+bin_PROGRAMS = mgl_example$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) \
+	$(am__EXEEXT_3) $(am__EXEEXT_4)
+am__append_1 = mgl_fltk_example
+am__append_2 = test
+am__append_3 = mgl_glut_example
+am__append_4 = mgl_wx_example
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+	$(top_srcdir)/config/autotroll.mk
+am__append_5 = mgl_qt_example
+subdir = examples
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
+	$(top_srcdir)/config/libtool.m4 \
+	$(top_srcdir)/config/ltoptions.m4 \
+	$(top_srcdir)/config/ltsugar.m4 \
+	$(top_srcdir)/config/ltversion.m4 \
+	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/include/mgl/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__EXEEXT_1 = mgl_fltk_example$(EXEEXT)
+am__EXEEXT_2 = mgl_glut_example$(EXEEXT)
+am__EXEEXT_3 = mgl_wx_example$(EXEEXT)
+am__EXEEXT_4 = mgl_qt_example$(EXEEXT)
+am__installdirs = "$(DESTDIR)$(bindir)"
+am__EXEEXT_5 = test$(EXEEXT)
+PROGRAMS = $(bin_PROGRAMS)
+am_mgl_example_OBJECTS = wnd_samples.$(OBJEXT) full_test.$(OBJEXT)
+mgl_example_OBJECTS = $(am_mgl_example_OBJECTS)
+mgl_example_DEPENDENCIES = $(top_builddir)/mgl/libmgl.la
+am__mgl_fltk_example_SOURCES_DIST = wnd_samples.cpp fltk_example.cpp
+am_mgl_fltk_example_OBJECTS =  \
+	mgl_fltk_example-wnd_samples.$(OBJEXT) \
+	mgl_fltk_example-fltk_example.$(OBJEXT)
+mgl_fltk_example_OBJECTS = $(am_mgl_fltk_example_OBJECTS)
+am__DEPENDENCIES_1 =
+mgl_fltk_example_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(top_builddir)/widgets/libmgl-fltk.la \
+	$(top_builddir)/mgl/libmgl.la
+mgl_fltk_example_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CXXLD) \
+	$(mgl_fltk_example_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+am__mgl_glut_example_SOURCES_DIST = wnd_samples.cpp glut_example.cpp
+am_mgl_glut_example_OBJECTS = wnd_samples.$(OBJEXT) \
+	glut_example.$(OBJEXT)
+mgl_glut_example_OBJECTS = $(am_mgl_glut_example_OBJECTS)
+mgl_glut_example_DEPENDENCIES =  \
+	$(top_builddir)/widgets/libmgl-glut.la \
+	$(top_builddir)/mgl/libmgl.la
+am__mgl_qt_example_SOURCES_DIST = wnd_samples.cpp \
+	$(top_builddir)/include/mgl/mgl_qt.moc.cpp \
+	$(top_srcdir)/include/mgl/mgl_qt.h qt_example.cpp
+am_mgl_qt_example_OBJECTS =  \
+	mgl_qt_example-wnd_samples.$(OBJEXT) \
+	mgl_qt_example-mgl_qt.moc.$(OBJEXT) \
+	mgl_qt_example-qt_example.$(OBJEXT)
+mgl_qt_example_OBJECTS = $(am_mgl_qt_example_OBJECTS)
+mgl_qt_example_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(top_builddir)/widgets/libmgl-qt.la \
+	$(top_builddir)/mgl/libmgl.la
+mgl_qt_example_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CXXLD) \
+	$(mgl_qt_example_CXXFLAGS) $(CXXFLAGS) \
+	$(mgl_qt_example_LDFLAGS) $(LDFLAGS) -o $@
+am__mgl_wx_example_SOURCES_DIST = wnd_samples.cpp wx_example.cpp
+am_mgl_wx_example_OBJECTS =  \
+	mgl_wx_example-wnd_samples.$(OBJEXT) \
+	mgl_wx_example-wx_example.$(OBJEXT)
+mgl_wx_example_OBJECTS = $(am_mgl_wx_example_OBJECTS)
+mgl_wx_example_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(top_builddir)/widgets/libmgl-wx.la \
+	$(top_builddir)/mgl/libmgl.la
+mgl_wx_example_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CXXLD) \
+	$(mgl_wx_example_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+am__test_SOURCES_DIST = wnd_samples.cpp main.cpp
+am_test_OBJECTS = test-wnd_samples.$(OBJEXT) \
+	test-main.$(OBJEXT)
+test_OBJECTS = $(am_test_OBJECTS)
+test_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(top_builddir)/widgets/libmgl-fltk.la \
+	$(top_builddir)/mgl/libmgl.la
+test_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CXXLD) $(test_CXXFLAGS) $(CXXFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/include/mgl
+depcomp = $(SHELL) $(top_srcdir)/config/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = $(mgl_example_SOURCES) $(mgl_fltk_example_SOURCES) \
+	$(mgl_glut_example_SOURCES) $(mgl_qt_example_SOURCES) \
+	$(mgl_wx_example_SOURCES) $(test_SOURCES)
+DIST_SOURCES = $(mgl_example_SOURCES) \
+	$(am__mgl_fltk_example_SOURCES_DIST) \
+	$(am__mgl_glut_example_SOURCES_DIST) \
+	$(am__mgl_qt_example_SOURCES_DIST) \
+	$(am__mgl_wx_example_SOURCES_DIST) $(am__test_SOURCES_DIST)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run aclocal-1.11
+AMTAR = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run tar
+AM_CXXFLAGS = -Wall -I/usr/include -I$(top_srcdir)/include \
+	-I$(top_builddir)/include
+AR = ar
+AS = as
+AUTOCONF = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run automake-1.11
+AWK = gawk
+CC = x86_64-linux-gnu-gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -Wall -g -O2
+CPP = x86_64-linux-gnu-gcc -E
+CPPFLAGS = 
+CXX = x86_64-linux-gnu-g++
+CXXCPP = x86_64-linux-gnu-g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DLLTOOL = dlltool
+DSYMUTIL = 
+DUMPBIN = 
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /bin/grep -E
+EXEEXT = 
+FGREP = /bin/grep -F
+FLTK_FLAGS = -I/usr/include/freetype2 -g -O2 -D_THREAD_SAFE -D_REENTRANT
+FLTK_LIBS = -lfltk
+GIF_FLAGS = -DHAVE_GIF
+GIF_LIBS = -lgif
+GLUT_FLAGS = -DHAVE_GLUT
+GLUT_LIBS = -lglut
+GL_LIBS = -lGL
+GREP = /bin/grep
+GSL_FLAGS = -I/usr/include
+GSL_LIBS = -L/usr/lib -lgsl -lgslcblas -lm
+HAVE_SWIG = true
+HDF4_FLAGS = -DHAVE_HDF4
+HDF4_LIBS = -lmfhdf -ldf
+HDF5_FLAGS = -DHAVE_HDF5 -DH5_USE_16_API
+HDF5_LIBS = -lhdf5
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+JPEG_FLAGS = -DHAVE_JPEG
+JPEG_LIBS = -ljpeg
+LD = /usr/bin/ld -m elf_x86_64
+LDFLAGS = 
+LIBOBJS = 
+LIBS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIPO = 
+LN_S = ln -s
+LTLIBOBJS = 
+MAKEINFO = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run makeinfo
+MGL_AGE = 0
+MGL_CURRENT = 5
+MGL_RELEASE = 1.10
+MGL_REVISION = 0
+MKDIR_P = /bin/mkdir -p
+MOC = /usr/bin/moc-qt4
+NM = /usr/bin/nm -B
+NMEDIT = 
+OBJDUMP = objdump
+OBJEXT = o
+OCTAVE = octave-config
+OCTAVE_ARCH = x86_64-pc-linux-gnu-api-v37
+OCTAVE_INCFLAGS = -I/usr/include/octave-3.2.4
+OTOOL = 
+OTOOL64 = 
+PACKAGE = mathgl
+PACKAGE_BUGREPORT = mathgl.abalakin at gmail.com
+PACKAGE_NAME = mathgl
+PACKAGE_STRING = mathgl 1.10
+PACKAGE_TARNAME = mathgl
+PACKAGE_URL = 
+PACKAGE_VERSION = 1.10
+PATH_SEPARATOR = :
+PNG_LIBS = -lpng
+PTHREAD_FLAGS = -DHAVE_PTHREAD
+PTHREAD_LIBS = -lpthread
+PYTHON = /usr/bin/python
+PYTHON_EXEC_PREFIX = ${exec_prefix}
+PYTHON_HEADERS = -I/usr/include/python2.6 -I/usr/include/python2.6 -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes
+PYTHON_PLATFORM = linux2
+PYTHON_PREFIX = ${prefix}
+PYTHON_VERSION = 2.6
+QMAKE = /usr/bin/qmake-qt4
+QT_CFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(QT_DEFINES)
+QT_CPPFLAGS = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I.
+QT_CXXFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(QT_DEFINES)
+QT_DEFINES = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
+QT_INCPATH = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I.
+QT_LDFLAGS = 
+QT_LFLAGS = 
+QT_LIBS = -L/usr/lib -lQtGui -lQtCore -lpthread 
+QT_PATH = /usr/bin
+QT_VERSION = 4.6.3
+QT_VERSION_MAJOR = ok, looks like Qt 4
+RANLIB = ranlib
+RCC = /usr/bin/rcc
+SED = /bin/sed
+SET_MAKE = 
+SHELL = /bin/bash
+STRIP = strip
+TMPDIR = /tmp
+UIC = /usr/bin/uic-qt4
+VERSION = 1.10
+WX_FLAGS = -I/usr/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread
+WX_LIBS = -pthread   -lwx_gtk2u_richtext-2.8 -lwx_gtk2u_aui-2.8 -lwx_gtk2u_xrc-2.8 -lwx_gtk2u_qa-2.8 -lwx_gtk2u_html-2.8 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8 
+abs_builddir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/examples
+abs_srcdir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/examples
+abs_top_builddir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11
+abs_top_srcdir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11
+ac_ct_CC = 
+ac_ct_CXX = 
+ac_ct_DUMPBIN = 
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-pc-linux-gnu
+build_alias = x86_64-linux-gnu
+build_cpu = x86_64
+build_os = linux-gnu
+build_vendor = pc
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+host = x86_64-pc-linux-gnu
+host_alias = x86_64-linux-gnu
+host_cpu = x86_64
+host_os = linux-gnu
+host_vendor = pc
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${prefix}/share/info
+install_sh = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+lt_ECHO = echo
+mandir = ${prefix}/share/man
+mkdir_p = /bin/mkdir -p
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+pkgpyexecdir = ${pyexecdir}/mathgl
+pkgpythondir = ${pythondir}/mathgl
+prefix = /usr
+program_transform_name = s,x,x,
+psdir = ${docdir}
+pyexecdir = ${exec_prefix}/lib/python2.6/dist-packages
+pythondir = ${prefix}/lib/python2.6/dist-packages
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target_alias = 
+top_build_prefix = ../
+top_builddir = ..
+top_srcdir = ..
+mgl_example_SOURCES = wnd_samples.cpp full_test.cpp
+mgl_example_LDADD = $(top_builddir)/mgl/libmgl.la
+mgl_fltk_example_SOURCES = wnd_samples.cpp fltk_example.cpp
+mgl_fltk_example_LDADD = $(FLTK_LIBS) $(top_builddir)/widgets/libmgl-fltk.la $(top_builddir)/mgl/libmgl.la
+mgl_fltk_example_CXXFLAGS = $(FLTK_FLAGS) $(AM_CXXFLAGS)
+test_SOURCES = wnd_samples.cpp main.cpp
+test_LDADD = $(FLTK_LIBS) $(top_builddir)/widgets/libmgl-fltk.la $(top_builddir)/mgl/libmgl.la
+test_CXXFLAGS = $(FLTK_FLAGS) $(AM_CXXFLAGS)
+mgl_glut_example_SOURCES = wnd_samples.cpp glut_example.cpp
+mgl_glut_example_LDADD = $(top_builddir)/widgets/libmgl-glut.la $(top_builddir)/mgl/libmgl.la
+mgl_wx_example_LDADD = $(WX_LIBS) $(top_builddir)/widgets/libmgl-wx.la $(top_builddir)/mgl/libmgl.la
+mgl_wx_example_CXXFLAGS = $(WX_FLAGS) $(AM_CXXFLAGS)
+mgl_wx_example_SOURCES = wnd_samples.cpp wx_example.cpp
+
+# See autotroll.m4 :)
+SUFFIXES = .moc.cpp .moc.cc .moc.cxx .moc.C .h .hh \
+           .ui .ui.h .ui.hh \
+           .qrc .qrc.cpp .qrc.cc .qrc.cxx .qrc.C
+
+DISTCLEANFILES = $(BUILT_SOURCES)
+ACLOCAL_AMFLAGS = -I $(top_srcdir)/config/
+mgl_qt_example_SOURCES = wnd_samples.cpp $(top_builddir)/include/mgl/mgl_qt.moc.cpp $(top_srcdir)/include/mgl/mgl_qt.h qt_example.cpp
+mgl_qt_example_LDADD = $(QT_LIBS) $(top_builddir)/widgets/libmgl-qt.la $(top_builddir)/mgl/libmgl.la
+mgl_qt_example_LDFLAGS = $(QT_LDFLAGS)
+mgl_qt_example_CPPFLAGS = $(QT_CPPFLAGS) $(AM_CPPFLAGS)
+mgl_qt_example_CXXFLAGS = $(QT_CXXFLAGS) $(AM_CXXFLAGS)
+BUILT_SOURCES = $(top_builddir)/include/mgl/mgl_qt.moc.cpp
+CLEANFILES = $(BUILT_SOURCES)
+all: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .moc.cpp .moc.cc .moc.cxx .moc.C .h .hh .ui .ui.h .ui.hh .qrc .qrc.cpp .qrc.cc .qrc.cxx .qrc.C .cpp .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/config/autotroll.mk $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu examples/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-binPROGRAMS: $(bin_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	for p in $$list; do echo "$$p $$p"; done | \
+	sed 's/$(EXEEXT)$$//' | \
+	while read p p1; do if test -f $$p || test -f $$p1; \
+	  then echo "$$p"; echo "$$p"; else :; fi; \
+	done | \
+	sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+	sed 'N;N;N;s,\n, ,g' | \
+	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
+	    else { print "f", $$3 "/" $$4, $$1; } } \
+	  END { for (d in files) print "f", d, files[d] }' | \
+	while read type dir files; do \
+	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+	    test -z "$$files" || { \
+	    echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+	    $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+	    } \
+	; done
+
+uninstall-binPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	files=`for p in $$list; do echo "$$p"; done | \
+	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+	      -e 's/$$/$(EXEEXT)/' `; \
+	test -n "$$list" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+	@list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+	echo " rm -f" $$list; \
+	rm -f $$list || exit $$?; \
+	test -n "$(EXEEXT)" || exit 0; \
+	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+	echo " rm -f" $$list; \
+	rm -f $$list
+
+clean-checkPROGRAMS:
+	@list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
+	echo " rm -f" $$list; \
+	rm -f $$list || exit $$?; \
+	test -n "$(EXEEXT)" || exit 0; \
+	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+	echo " rm -f" $$list; \
+	rm -f $$list
+mgl_example$(EXEEXT): $(mgl_example_OBJECTS) $(mgl_example_DEPENDENCIES) 
+	@rm -f mgl_example$(EXEEXT)
+	$(CXXLINK) $(mgl_example_OBJECTS) $(mgl_example_LDADD) $(LIBS)
+mgl_fltk_example$(EXEEXT): $(mgl_fltk_example_OBJECTS) $(mgl_fltk_example_DEPENDENCIES) 
+	@rm -f mgl_fltk_example$(EXEEXT)
+	$(mgl_fltk_example_LINK) $(mgl_fltk_example_OBJECTS) $(mgl_fltk_example_LDADD) $(LIBS)
+mgl_glut_example$(EXEEXT): $(mgl_glut_example_OBJECTS) $(mgl_glut_example_DEPENDENCIES) 
+	@rm -f mgl_glut_example$(EXEEXT)
+	$(CXXLINK) $(mgl_glut_example_OBJECTS) $(mgl_glut_example_LDADD) $(LIBS)
+mgl_qt_example$(EXEEXT): $(mgl_qt_example_OBJECTS) $(mgl_qt_example_DEPENDENCIES) 
+	@rm -f mgl_qt_example$(EXEEXT)
+	$(mgl_qt_example_LINK) $(mgl_qt_example_OBJECTS) $(mgl_qt_example_LDADD) $(LIBS)
+mgl_wx_example$(EXEEXT): $(mgl_wx_example_OBJECTS) $(mgl_wx_example_DEPENDENCIES) 
+	@rm -f mgl_wx_example$(EXEEXT)
+	$(mgl_wx_example_LINK) $(mgl_wx_example_OBJECTS) $(mgl_wx_example_LDADD) $(LIBS)
+test$(EXEEXT): $(test_OBJECTS) $(test_DEPENDENCIES) 
+	@rm -f test$(EXEEXT)
+	$(test_LINK) $(test_OBJECTS) $(test_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+include ./$(DEPDIR)/full_test.Po
+include ./$(DEPDIR)/glut_example.Po
+include ./$(DEPDIR)/mgl_fltk_example-fltk_example.Po
+include ./$(DEPDIR)/mgl_fltk_example-wnd_samples.Po
+include ./$(DEPDIR)/mgl_qt_example-mgl_qt.moc.Po
+include ./$(DEPDIR)/mgl_qt_example-qt_example.Po
+include ./$(DEPDIR)/mgl_qt_example-wnd_samples.Po
+include ./$(DEPDIR)/mgl_wx_example-wnd_samples.Po
+include ./$(DEPDIR)/mgl_wx_example-wx_example.Po
+include ./$(DEPDIR)/test-main.Po
+include ./$(DEPDIR)/test-wnd_samples.Po
+include ./$(DEPDIR)/wnd_samples.Po
+
+.cpp.o:
+	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+#	source='$<' object='$@' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+#	source='$<' object='$@' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+	$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+#	source='$<' object='$@' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LTCXXCOMPILE) -c -o $@ $<
+
+mgl_fltk_example-wnd_samples.o: wnd_samples.cpp
+	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_fltk_example_CXXFLAGS) $(CXXFLAGS) -MT mgl_fltk_example-wnd_samples.o -MD -MP -MF $(DEPDIR)/mgl_fltk_example-wnd_samples.Tpo -c -o mgl_fltk_example-wnd_samples.o `test -f 'wnd_samples.cpp' || echo '$(srcdir)/'`wnd_samples.cpp
+	$(am__mv) $(DEPDIR)/mgl_fltk_example-wnd_samples.Tpo $(DEPDIR)/mgl_fltk_example-wnd_samples.Po
+#	source='wnd_samples.cpp' object='mgl_fltk_example-wnd_samples.o' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_fltk_example_CXXFLAGS) $(CXXFLAGS) -c -o mgl_fltk_example-wnd_samples.o `test -f 'wnd_samples.cpp' || echo '$(srcdir)/'`wnd_samples.cpp
+
+mgl_fltk_example-wnd_samples.obj: wnd_samples.cpp
+	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_fltk_example_CXXFLAGS) $(CXXFLAGS) -MT mgl_fltk_example-wnd_samples.obj -MD -MP -MF $(DEPDIR)/mgl_fltk_example-wnd_samples.Tpo -c -o mgl_fltk_example-wnd_samples.obj `if test -f 'wnd_samples.cpp'; then $(CYGPATH_W) 'wnd_samples.cpp'; else $(CYGPATH_W) '$(srcdir)/wnd_samples.cpp'; fi`
+	$(am__mv) $(DEPDIR)/mgl_fltk_example-wnd_samples.Tpo $(DEPDIR)/mgl_fltk_example-wnd_samples.Po
+#	source='wnd_samples.cpp' object='mgl_fltk_example-wnd_samples.obj' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_fltk_example_CXXFLAGS) $(CXXFLAGS) -c -o mgl_fltk_example-wnd_samples.obj `if test -f 'wnd_samples.cpp'; then $(CYGPATH_W) 'wnd_samples.cpp'; else $(CYGPATH_W) '$(srcdir)/wnd_samples.cpp'; fi`
+
+mgl_fltk_example-fltk_example.o: fltk_example.cpp
+	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_fltk_example_CXXFLAGS) $(CXXFLAGS) -MT mgl_fltk_example-fltk_example.o -MD -MP -MF $(DEPDIR)/mgl_fltk_example-fltk_example.Tpo -c -o mgl_fltk_example-fltk_example.o `test -f 'fltk_example.cpp' || echo '$(srcdir)/'`fltk_example.cpp
+	$(am__mv) $(DEPDIR)/mgl_fltk_example-fltk_example.Tpo $(DEPDIR)/mgl_fltk_example-fltk_example.Po
+#	source='fltk_example.cpp' object='mgl_fltk_example-fltk_example.o' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_fltk_example_CXXFLAGS) $(CXXFLAGS) -c -o mgl_fltk_example-fltk_example.o `test -f 'fltk_example.cpp' || echo '$(srcdir)/'`fltk_example.cpp
+
+mgl_fltk_example-fltk_example.obj: fltk_example.cpp
+	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_fltk_example_CXXFLAGS) $(CXXFLAGS) -MT mgl_fltk_example-fltk_example.obj -MD -MP -MF $(DEPDIR)/mgl_fltk_example-fltk_example.Tpo -c -o mgl_fltk_example-fltk_example.obj `if test -f 'fltk_example.cpp'; then $(CYGPATH_W) 'fltk_example.cpp'; else $(CYGPATH_W) '$(srcdir)/fltk_example.cpp'; fi`
+	$(am__mv) $(DEPDIR)/mgl_fltk_example-fltk_example.Tpo $(DEPDIR)/mgl_fltk_example-fltk_example.Po
+#	source='fltk_example.cpp' object='mgl_fltk_example-fltk_example.obj' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_fltk_example_CXXFLAGS) $(CXXFLAGS) -c -o mgl_fltk_example-fltk_example.obj `if test -f 'fltk_example.cpp'; then $(CYGPATH_W) 'fltk_example.cpp'; else $(CYGPATH_W) '$(srcdir)/fltk_example.cpp'; fi`
+
+mgl_qt_example-wnd_samples.o: wnd_samples.cpp
+	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mgl_qt_example_CPPFLAGS) $(CPPFLAGS) $(mgl_qt_example_CXXFLAGS) $(CXXFLAGS) -MT mgl_qt_example-wnd_samples.o -MD -MP -MF $(DEPDIR)/mgl_qt_example-wnd_samples.Tpo -c -o mgl_qt_example-wnd_samples.o `test -f 'wnd_samples.cpp' || echo '$(srcdir)/'`wnd_samples.cpp
+	$(am__mv) $(DEPDIR)/mgl_qt_example-wnd_samples.Tpo $(DEPDIR)/mgl_qt_example-wnd_samples.Po
+#	source='wnd_samples.cpp' object='mgl_qt_example-wnd_samples.o' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mgl_qt_example_CPPFLAGS) $(CPPFLAGS) $(mgl_qt_example_CXXFLAGS) $(CXXFLAGS) -c -o mgl_qt_example-wnd_samples.o `test -f 'wnd_samples.cpp' || echo '$(srcdir)/'`wnd_samples.cpp
+
+mgl_qt_example-wnd_samples.obj: wnd_samples.cpp
+	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mgl_qt_example_CPPFLAGS) $(CPPFLAGS) $(mgl_qt_example_CXXFLAGS) $(CXXFLAGS) -MT mgl_qt_example-wnd_samples.obj -MD -MP -MF $(DEPDIR)/mgl_qt_example-wnd_samples.Tpo -c -o mgl_qt_example-wnd_samples.obj `if test -f 'wnd_samples.cpp'; then $(CYGPATH_W) 'wnd_samples.cpp'; else $(CYGPATH_W) '$(srcdir)/wnd_samples.cpp'; fi`
+	$(am__mv) $(DEPDIR)/mgl_qt_example-wnd_samples.Tpo $(DEPDIR)/mgl_qt_example-wnd_samples.Po
+#	source='wnd_samples.cpp' object='mgl_qt_example-wnd_samples.obj' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mgl_qt_example_CPPFLAGS) $(CPPFLAGS) $(mgl_qt_example_CXXFLAGS) $(CXXFLAGS) -c -o mgl_qt_example-wnd_samples.obj `if test -f 'wnd_samples.cpp'; then $(CYGPATH_W) 'wnd_samples.cpp'; else $(CYGPATH_W) '$(srcdir)/wnd_samples.cpp'; fi`
+
+mgl_qt_example-mgl_qt.moc.o: $(top_builddir)/include/mgl/mgl_qt.moc.cpp
+	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mgl_qt_example_CPPFLAGS) $(CPPFLAGS) $(mgl_qt_example_CXXFLAGS) $(CXXFLAGS) -MT mgl_qt_example-mgl_qt.moc.o -MD -MP -MF $(DEPDIR)/mgl_qt_example-mgl_qt.moc.Tpo -c -o mgl_qt_example-mgl_qt.moc.o `test -f '$(top_builddir)/include/mgl/mgl_qt.moc.cpp' || echo '$(srcdir)/'`$(top_builddir)/include/mgl/mgl_qt.moc.cpp
+	$(am__mv) $(DEPDIR)/mgl_qt_example-mgl_qt.moc.Tpo $(DEPDIR)/mgl_qt_example-mgl_qt.moc.Po
+#	source='$(top_builddir)/include/mgl/mgl_qt.moc.cpp' object='mgl_qt_example-mgl_qt.moc.o' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mgl_qt_example_CPPFLAGS) $(CPPFLAGS) $(mgl_qt_example_CXXFLAGS) $(CXXFLAGS) -c -o mgl_qt_example-mgl_qt.moc.o `test -f '$(top_builddir)/include/mgl/mgl_qt.moc.cpp' || echo '$(srcdir)/'`$(top_builddir)/include/mgl/mgl_qt.moc.cpp
+
+mgl_qt_example-mgl_qt.moc.obj: $(top_builddir)/include/mgl/mgl_qt.moc.cpp
+	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mgl_qt_example_CPPFLAGS) $(CPPFLAGS) $(mgl_qt_example_CXXFLAGS) $(CXXFLAGS) -MT mgl_qt_example-mgl_qt.moc.obj -MD -MP -MF $(DEPDIR)/mgl_qt_example-mgl_qt.moc.Tpo -c -o mgl_qt_example-mgl_qt.moc.obj `if test -f '$(top_builddir)/include/mgl/mgl_qt.moc.cpp'; then $(CYGPATH_W) '$(top_builddir)/include/mgl/mgl_qt.moc.cpp'; else $(CYGPATH_W) '$(srcdir)/$(top_builddir)/include/mgl/mgl_qt.moc.cpp'; fi`
+	$(am__mv) $(DEPDIR)/mgl_qt_example-mgl_qt.moc.Tpo $(DEPDIR)/mgl_qt_example-mgl_qt.moc.Po
+#	source='$(top_builddir)/include/mgl/mgl_qt.moc.cpp' object='mgl_qt_example-mgl_qt.moc.obj' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mgl_qt_example_CPPFLAGS) $(CPPFLAGS) $(mgl_qt_example_CXXFLAGS) $(CXXFLAGS) -c -o mgl_qt_example-mgl_qt.moc.obj `if test -f '$(top_builddir)/include/mgl/mgl_qt.moc.cpp'; then $(CYGPATH_W) '$(top_builddir)/include/mgl/mgl_qt.moc.cpp'; else $(CYGPATH_W) '$(srcdir)/$(top_builddir)/include/mgl/mgl_qt.moc.cpp'; fi`
+
+mgl_qt_example-qt_example.o: qt_example.cpp
+	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mgl_qt_example_CPPFLAGS) $(CPPFLAGS) $(mgl_qt_example_CXXFLAGS) $(CXXFLAGS) -MT mgl_qt_example-qt_example.o -MD -MP -MF $(DEPDIR)/mgl_qt_example-qt_example.Tpo -c -o mgl_qt_example-qt_example.o `test -f 'qt_example.cpp' || echo '$(srcdir)/'`qt_example.cpp
+	$(am__mv) $(DEPDIR)/mgl_qt_example-qt_example.Tpo $(DEPDIR)/mgl_qt_example-qt_example.Po
+#	source='qt_example.cpp' object='mgl_qt_example-qt_example.o' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mgl_qt_example_CPPFLAGS) $(CPPFLAGS) $(mgl_qt_example_CXXFLAGS) $(CXXFLAGS) -c -o mgl_qt_example-qt_example.o `test -f 'qt_example.cpp' || echo '$(srcdir)/'`qt_example.cpp
+
+mgl_qt_example-qt_example.obj: qt_example.cpp
+	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mgl_qt_example_CPPFLAGS) $(CPPFLAGS) $(mgl_qt_example_CXXFLAGS) $(CXXFLAGS) -MT mgl_qt_example-qt_example.obj -MD -MP -MF $(DEPDIR)/mgl_qt_example-qt_example.Tpo -c -o mgl_qt_example-qt_example.obj `if test -f 'qt_example.cpp'; then $(CYGPATH_W) 'qt_example.cpp'; else $(CYGPATH_W) '$(srcdir)/qt_example.cpp'; fi`
+	$(am__mv) $(DEPDIR)/mgl_qt_example-qt_example.Tpo $(DEPDIR)/mgl_qt_example-qt_example.Po
+#	source='qt_example.cpp' object='mgl_qt_example-qt_example.obj' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mgl_qt_example_CPPFLAGS) $(CPPFLAGS) $(mgl_qt_example_CXXFLAGS) $(CXXFLAGS) -c -o mgl_qt_example-qt_example.obj `if test -f 'qt_example.cpp'; then $(CYGPATH_W) 'qt_example.cpp'; else $(CYGPATH_W) '$(srcdir)/qt_example.cpp'; fi`
+
+mgl_wx_example-wnd_samples.o: wnd_samples.cpp
+	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_wx_example_CXXFLAGS) $(CXXFLAGS) -MT mgl_wx_example-wnd_samples.o -MD -MP -MF $(DEPDIR)/mgl_wx_example-wnd_samples.Tpo -c -o mgl_wx_example-wnd_samples.o `test -f 'wnd_samples.cpp' || echo '$(srcdir)/'`wnd_samples.cpp
+	$(am__mv) $(DEPDIR)/mgl_wx_example-wnd_samples.Tpo $(DEPDIR)/mgl_wx_example-wnd_samples.Po
+#	source='wnd_samples.cpp' object='mgl_wx_example-wnd_samples.o' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_wx_example_CXXFLAGS) $(CXXFLAGS) -c -o mgl_wx_example-wnd_samples.o `test -f 'wnd_samples.cpp' || echo '$(srcdir)/'`wnd_samples.cpp
+
+mgl_wx_example-wnd_samples.obj: wnd_samples.cpp
+	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_wx_example_CXXFLAGS) $(CXXFLAGS) -MT mgl_wx_example-wnd_samples.obj -MD -MP -MF $(DEPDIR)/mgl_wx_example-wnd_samples.Tpo -c -o mgl_wx_example-wnd_samples.obj `if test -f 'wnd_samples.cpp'; then $(CYGPATH_W) 'wnd_samples.cpp'; else $(CYGPATH_W) '$(srcdir)/wnd_samples.cpp'; fi`
+	$(am__mv) $(DEPDIR)/mgl_wx_example-wnd_samples.Tpo $(DEPDIR)/mgl_wx_example-wnd_samples.Po
+#	source='wnd_samples.cpp' object='mgl_wx_example-wnd_samples.obj' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_wx_example_CXXFLAGS) $(CXXFLAGS) -c -o mgl_wx_example-wnd_samples.obj `if test -f 'wnd_samples.cpp'; then $(CYGPATH_W) 'wnd_samples.cpp'; else $(CYGPATH_W) '$(srcdir)/wnd_samples.cpp'; fi`
+
+mgl_wx_example-wx_example.o: wx_example.cpp
+	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_wx_example_CXXFLAGS) $(CXXFLAGS) -MT mgl_wx_example-wx_example.o -MD -MP -MF $(DEPDIR)/mgl_wx_example-wx_example.Tpo -c -o mgl_wx_example-wx_example.o `test -f 'wx_example.cpp' || echo '$(srcdir)/'`wx_example.cpp
+	$(am__mv) $(DEPDIR)/mgl_wx_example-wx_example.Tpo $(DEPDIR)/mgl_wx_example-wx_example.Po
+#	source='wx_example.cpp' object='mgl_wx_example-wx_example.o' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_wx_example_CXXFLAGS) $(CXXFLAGS) -c -o mgl_wx_example-wx_example.o `test -f 'wx_example.cpp' || echo '$(srcdir)/'`wx_example.cpp
+
+mgl_wx_example-wx_example.obj: wx_example.cpp
+	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_wx_example_CXXFLAGS) $(CXXFLAGS) -MT mgl_wx_example-wx_example.obj -MD -MP -MF $(DEPDIR)/mgl_wx_example-wx_example.Tpo -c -o mgl_wx_example-wx_example.obj `if test -f 'wx_example.cpp'; then $(CYGPATH_W) 'wx_example.cpp'; else $(CYGPATH_W) '$(srcdir)/wx_example.cpp'; fi`
+	$(am__mv) $(DEPDIR)/mgl_wx_example-wx_example.Tpo $(DEPDIR)/mgl_wx_example-wx_example.Po
+#	source='wx_example.cpp' object='mgl_wx_example-wx_example.obj' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl_wx_example_CXXFLAGS) $(CXXFLAGS) -c -o mgl_wx_example-wx_example.obj `if test -f 'wx_example.cpp'; then $(CYGPATH_W) 'wx_example.cpp'; else $(CYGPATH_W) '$(srcdir)/wx_example.cpp'; fi`
+
+test-wnd_samples.o: wnd_samples.cpp
+	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CXXFLAGS) $(CXXFLAGS) -MT test-wnd_samples.o -MD -MP -MF $(DEPDIR)/test-wnd_samples.Tpo -c -o test-wnd_samples.o `test -f 'wnd_samples.cpp' || echo '$(srcdir)/'`wnd_samples.cpp
+	$(am__mv) $(DEPDIR)/test-wnd_samples.Tpo $(DEPDIR)/test-wnd_samples.Po
+#	source='wnd_samples.cpp' object='test-wnd_samples.o' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CXXFLAGS) $(CXXFLAGS) -c -o test-wnd_samples.o `test -f 'wnd_samples.cpp' || echo '$(srcdir)/'`wnd_samples.cpp
+
+test-wnd_samples.obj: wnd_samples.cpp
+	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CXXFLAGS) $(CXXFLAGS) -MT test-wnd_samples.obj -MD -MP -MF $(DEPDIR)/test-wnd_samples.Tpo -c -o test-wnd_samples.obj `if test -f 'wnd_samples.cpp'; then $(CYGPATH_W) 'wnd_samples.cpp'; else $(CYGPATH_W) '$(srcdir)/wnd_samples.cpp'; fi`
+	$(am__mv) $(DEPDIR)/test-wnd_samples.Tpo $(DEPDIR)/test-wnd_samples.Po
+#	source='wnd_samples.cpp' object='test-wnd_samples.obj' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CXXFLAGS) $(CXXFLAGS) -c -o test-wnd_samples.obj `if test -f 'wnd_samples.cpp'; then $(CYGPATH_W) 'wnd_samples.cpp'; else $(CYGPATH_W) '$(srcdir)/wnd_samples.cpp'; fi`
+
+test-main.o: main.cpp
+	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CXXFLAGS) $(CXXFLAGS) -MT test-main.o -MD -MP -MF $(DEPDIR)/test-main.Tpo -c -o test-main.o `test -f 'main.cpp' || echo '$(srcdir)/'`main.cpp
+	$(am__mv) $(DEPDIR)/test-main.Tpo $(DEPDIR)/test-main.Po
+#	source='main.cpp' object='test-main.o' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CXXFLAGS) $(CXXFLAGS) -c -o test-main.o `test -f 'main.cpp' || echo '$(srcdir)/'`main.cpp
+
+test-main.obj: main.cpp
+	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CXXFLAGS) $(CXXFLAGS) -MT test-main.obj -MD -MP -MF $(DEPDIR)/test-main.Tpo -c -o test-main.obj `if test -f 'main.cpp'; then $(CYGPATH_W) 'main.cpp'; else $(CYGPATH_W) '$(srcdir)/main.cpp'; fi`
+	$(am__mv) $(DEPDIR)/test-main.Tpo $(DEPDIR)/test-main.Po
+#	source='main.cpp' object='test-main.obj' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CXXFLAGS) $(CXXFLAGS) -c -o test-main.obj `if test -f 'main.cpp'; then $(CYGPATH_W) 'main.cpp'; else $(CYGPATH_W) '$(srcdir)/main.cpp'; fi`
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	set x; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+	$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
+check: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+	for dir in "$(DESTDIR)$(bindir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+	-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-checkPROGRAMS clean-generic \
+	clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS
+
+.MAKE: all check check-am install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+	clean-checkPROGRAMS clean-generic clean-libtool ctags \
+	distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-binPROGRAMS \
+	install-data install-data-am install-dvi install-dvi-am \
+	install-exec install-exec-am install-html install-html-am \
+	install-info install-info-am install-man install-pdf \
+	install-pdf-am install-ps install-ps-am install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags uninstall uninstall-am uninstall-binPROGRAMS
+
+
+ # ------------- #
+ # DOCUMENTATION #
+ # ------------- #
+
+# --- #
+# MOC #
+# --- #
+
+.hh.moc.cpp:
+	$(MOC) $(QT_CPPFLAGS) $< -o $@
+.h.moc.cpp:
+	$(MOC) $(QT_CPPFLAGS) $< -o $@
+
+.hh.moc.cc:
+	$(MOC) $(QT_CPPFLAGS) $< -o $@
+.h.moc.cc:
+	$(MOC) $(QT_CPPFLAGS) $< -o $@
+
+.hh.moc.cxx:
+	$(MOC) $(QT_CPPFLAGS) $< -o $@
+.h.moc.cxx:
+	$(MOC) $(QT_CPPFLAGS) $< -o $@
+
+.hh.moc.C:
+	$(MOC) $(QT_CPPFLAGS) $< -o $@
+.h.moc.C:
+	$(MOC) $(QT_CPPFLAGS) $< -o $@
+
+# --- #
+# UIC #
+# --- #
+
+.ui.ui.hh:
+	$(UIC) $< -o $@
+
+.ui.ui.h:
+	$(UIC) $< -o $@
+
+# --- #
+# RCC #
+# --- #
+
+.qrc.qrc.cpp:
+	$(RCC) -name `echo "$<" | sed 's/\.qrc$$//'` $< -o $@
+
+.qrc.qrc.cc:
+	$(RCC) -name `echo "$<" | sed 's/\.qrc$$//'` $< -o $@
+
+.qrc.qrc.cxx:
+	$(RCC) -name `echo "$<" | sed 's/\.qrc$$//'` $< -o $@
+
+.qrc.qrc.C:
+	$(RCC) -name `echo "$<" | sed 's/\.qrc$$//'` $< -o $@
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/examples/Makefile.in b/examples/Makefile.in
index b20c278..0979b41 100644
--- a/examples/Makefile.in
+++ b/examples/Makefile.in
@@ -66,11 +66,7 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 subdir = examples
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
-	$(top_srcdir)/config/libtool.m4 \
-	$(top_srcdir)/config/ltoptions.m4 \
-	$(top_srcdir)/config/ltsugar.m4 \
-	$(top_srcdir)/config/ltversion.m4 \
-	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
diff --git a/examples/full_test.o b/examples/full_test.o
new file mode 100644
index 0000000..9897123
Binary files /dev/null and b/examples/full_test.o differ
diff --git a/examples/glut_example.o b/examples/glut_example.o
new file mode 100644
index 0000000..30b2114
Binary files /dev/null and b/examples/glut_example.o differ
diff --git a/examples/mgl_example b/examples/mgl_example
new file mode 100755
index 0000000..218de1a
--- /dev/null
+++ b/examples/mgl_example
@@ -0,0 +1,148 @@
+#! /bin/bash
+
+# mgl_example - temporary wrapper script for .libs/mgl_example
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# The mgl_example program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='/bin/sed -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/examples; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11; export PATH; x86_64-linux-gnu-g++ -Wall -I/usr/include -I../include -I../include -g -O2 -o \$progdir/\$file wnd_samples.o full_test.o  ../mgl/.libs/libmgl.so -Wl,-rpath -Wl,/home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/mgl/.libs)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.2.6b'
+  notinst_deplibs=' ../mgl/libmgl.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    ECHO="echo"
+    file="$0"
+    # Make sure echo works.
+    if test "X$1" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
+      # Yippee, $ECHO works!
+      :
+    else
+      # Restart under the correct shell, and then maybe $ECHO will work.
+      exec /bin/bash "$0" --no-reexec ${1+"$@"}
+    fi
+  fi
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "X$file" | $Xsed -e 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
+  done
+
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "X$thisdir" | $Xsed -e 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'mgl_example'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	echo "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    echo "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/examples/mgl_fltk_example b/examples/mgl_fltk_example
new file mode 100755
index 0000000..4927f76
--- /dev/null
+++ b/examples/mgl_fltk_example
@@ -0,0 +1,148 @@
+#! /bin/bash
+
+# mgl_fltk_example - temporary wrapper script for .libs/mgl_fltk_example
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# The mgl_fltk_example program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='/bin/sed -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/examples; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11; export PATH; x86_64-linux-gnu-g++ -I/usr/include/freetype2 -g -O2 -D_THREAD_SAFE -D_REENTRANT -Wall -I/usr/include -I../include -I../include -g -O2 -o \$progdir/\$file mgl_fltk_example-wnd_samples.o mgl_fltk_example-fltk_example.o  -lfltk ../widgets/.libs/libmgl-fltk.so ../mgl/.libs/libmgl.so -Wl,-rpath -Wl,/home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/widgets/.libs -Wl,-rpath -Wl,/home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/mgl/.libs)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.2.6b'
+  notinst_deplibs=' ../widgets/libmgl-fltk.la ../mgl/libmgl.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    ECHO="echo"
+    file="$0"
+    # Make sure echo works.
+    if test "X$1" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
+      # Yippee, $ECHO works!
+      :
+    else
+      # Restart under the correct shell, and then maybe $ECHO will work.
+      exec /bin/bash "$0" --no-reexec ${1+"$@"}
+    fi
+  fi
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "X$file" | $Xsed -e 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
+  done
+
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "X$thisdir" | $Xsed -e 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'mgl_fltk_example'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	echo "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    echo "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/examples/mgl_fltk_example-fltk_example.o b/examples/mgl_fltk_example-fltk_example.o
new file mode 100644
index 0000000..6863564
Binary files /dev/null and b/examples/mgl_fltk_example-fltk_example.o differ
diff --git a/examples/mgl_fltk_example-wnd_samples.o b/examples/mgl_fltk_example-wnd_samples.o
new file mode 100644
index 0000000..197814b
Binary files /dev/null and b/examples/mgl_fltk_example-wnd_samples.o differ
diff --git a/examples/mgl_glut_example b/examples/mgl_glut_example
new file mode 100755
index 0000000..a9f0ab7
--- /dev/null
+++ b/examples/mgl_glut_example
@@ -0,0 +1,148 @@
+#! /bin/bash
+
+# mgl_glut_example - temporary wrapper script for .libs/mgl_glut_example
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# The mgl_glut_example program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='/bin/sed -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/examples; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11; export PATH; x86_64-linux-gnu-g++ -Wall -I/usr/include -I../include -I../include -g -O2 -o \$progdir/\$file wnd_samples.o glut_example.o  ../widgets/.libs/libmgl-glut.so ../mgl/.libs/libmgl.so -Wl,-rpath -Wl,/home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/widgets/.libs -Wl,-rpath -Wl,/home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/mgl/.libs)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.2.6b'
+  notinst_deplibs=' ../widgets/libmgl-glut.la ../mgl/libmgl.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    ECHO="echo"
+    file="$0"
+    # Make sure echo works.
+    if test "X$1" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
+      # Yippee, $ECHO works!
+      :
+    else
+      # Restart under the correct shell, and then maybe $ECHO will work.
+      exec /bin/bash "$0" --no-reexec ${1+"$@"}
+    fi
+  fi
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "X$file" | $Xsed -e 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
+  done
+
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "X$thisdir" | $Xsed -e 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'mgl_glut_example'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	echo "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    echo "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/examples/mgl_qt_example b/examples/mgl_qt_example
new file mode 100755
index 0000000..71c2b5c
--- /dev/null
+++ b/examples/mgl_qt_example
@@ -0,0 +1,148 @@
+#! /bin/bash
+
+# mgl_qt_example - temporary wrapper script for .libs/mgl_qt_example
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# The mgl_qt_example program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='/bin/sed -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/examples; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11; export PATH; x86_64-linux-gnu-g++ -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -Wall -I/usr/include -I../include -I../include -g -O2 -o \$progdir/\$file mgl_qt_example-wnd_samples.o mgl_qt_example-mgl_qt.moc.o mgl_qt_example-qt_example.o  -L/usr/lib -lQtGui -lQtCore -lpthread ../widgets/.libs/libmgl-qt.so ../mgl/.libs/libmgl.so -Wl,-rpath -Wl,/home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/widgets/.libs -Wl,-rpath -Wl,/home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/mgl/.libs)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.2.6b'
+  notinst_deplibs=' ../widgets/libmgl-qt.la ../mgl/libmgl.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    ECHO="echo"
+    file="$0"
+    # Make sure echo works.
+    if test "X$1" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
+      # Yippee, $ECHO works!
+      :
+    else
+      # Restart under the correct shell, and then maybe $ECHO will work.
+      exec /bin/bash "$0" --no-reexec ${1+"$@"}
+    fi
+  fi
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "X$file" | $Xsed -e 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
+  done
+
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "X$thisdir" | $Xsed -e 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'mgl_qt_example'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	echo "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    echo "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/examples/mgl_qt_example-mgl_qt.moc.o b/examples/mgl_qt_example-mgl_qt.moc.o
new file mode 100644
index 0000000..5f4f436
Binary files /dev/null and b/examples/mgl_qt_example-mgl_qt.moc.o differ
diff --git a/examples/mgl_qt_example-qt_example.o b/examples/mgl_qt_example-qt_example.o
new file mode 100644
index 0000000..2d528b1
Binary files /dev/null and b/examples/mgl_qt_example-qt_example.o differ
diff --git a/examples/mgl_qt_example-wnd_samples.o b/examples/mgl_qt_example-wnd_samples.o
new file mode 100644
index 0000000..197814b
Binary files /dev/null and b/examples/mgl_qt_example-wnd_samples.o differ
diff --git a/examples/mgl_wx_example b/examples/mgl_wx_example
new file mode 100755
index 0000000..e2b74b6
--- /dev/null
+++ b/examples/mgl_wx_example
@@ -0,0 +1,148 @@
+#! /bin/bash
+
+# mgl_wx_example - temporary wrapper script for .libs/mgl_wx_example
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# The mgl_wx_example program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='/bin/sed -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/examples; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11; export PATH; x86_64-linux-gnu-g++ -I/usr/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread -Wall -I/usr/include -I../include -I../include -g -O2 -o \$progdir/\$file mgl_wx_example-wnd_samples.o mgl_wx_example-wx_example.o -pthread  -lwx_gtk2u_richtext-2.8 -lwx_gtk2u_aui-2.8 -lwx_gtk2u_xrc-2.8 -lwx_gtk2u_qa-2.8 -lwx_gtk2u_html-2.8 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8 ../widgets/.libs/libmgl-wx.so ../mgl/.libs/libmgl.so -pthread -Wl,-rpath -Wl,/home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/widgets/.libs -Wl,-rpath -Wl,/home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/mgl/.libs)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.2.6b'
+  notinst_deplibs=' ../widgets/libmgl-wx.la ../mgl/libmgl.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    ECHO="echo"
+    file="$0"
+    # Make sure echo works.
+    if test "X$1" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
+      # Yippee, $ECHO works!
+      :
+    else
+      # Restart under the correct shell, and then maybe $ECHO will work.
+      exec /bin/bash "$0" --no-reexec ${1+"$@"}
+    fi
+  fi
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "X$file" | $Xsed -e 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
+  done
+
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "X$thisdir" | $Xsed -e 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'mgl_wx_example'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	echo "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    echo "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/examples/mgl_wx_example-wnd_samples.o b/examples/mgl_wx_example-wnd_samples.o
new file mode 100644
index 0000000..ebd99e0
Binary files /dev/null and b/examples/mgl_wx_example-wnd_samples.o differ
diff --git a/examples/mgl_wx_example-wx_example.o b/examples/mgl_wx_example-wx_example.o
new file mode 100644
index 0000000..7be750d
Binary files /dev/null and b/examples/mgl_wx_example-wx_example.o differ
diff --git a/examples/wnd_samples.o b/examples/wnd_samples.o
new file mode 100644
index 0000000..197814b
Binary files /dev/null and b/examples/wnd_samples.o differ
diff --git a/include/Makefile b/include/Makefile
new file mode 100644
index 0000000..3637ace
--- /dev/null
+++ b/include/Makefile
@@ -0,0 +1,532 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# include/Makefile.  Generated from Makefile.in by configure.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+
+pkgdatadir = $(datadir)/mathgl
+pkgincludedir = $(includedir)/mathgl
+pkglibdir = $(libdir)/mathgl
+pkglibexecdir = $(libexecdir)/mathgl
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-pc-linux-gnu
+host_triplet = x86_64-pc-linux-gnu
+subdir = include
+DIST_COMMON = $(am__nobase_include_HEADERS_DIST) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
+	$(top_srcdir)/config/libtool.m4 \
+	$(top_srcdir)/config/ltoptions.m4 \
+	$(top_srcdir)/config/ltsugar.m4 \
+	$(top_srcdir)/config/ltversion.m4 \
+	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/include/mgl/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+am__nobase_include_HEADERS_DIST = mgl/mgl_fltk.h mgl/mgl_glut.h \
+	mgl/mgl_wx.h mgl/mgl_qt.h mgl/mgl_ab.h mgl/mgl_data.h \
+	mgl/mgl_eval.h mgl/mgl_gl.h mgl/mgl.h mgl/mgl_parse.h \
+	mgl/mgl_c.h mgl/mgl_eps.h mgl/mgl_f.h mgl/mgl_font.h \
+	mgl/mgl_idtf.h mgl/mgl_zb.h mgl/mgl_addon.h mgl/mgl_evalc.h \
+	mgl/mgl_define.h mgl/config.h mgl/mgl_pas.pas mgl/mgl_w.h \
+	mgl/gsl.fs mgl/mathgl.fs mgl/mglplot.fs mgl/vectors.fs
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(includedir)"
+HEADERS = $(nobase_include_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run aclocal-1.11
+AMTAR = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run tar
+AM_CXXFLAGS = -Wall -I/usr/include
+AR = ar
+AS = as
+AUTOCONF = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run automake-1.11
+AWK = gawk
+CC = x86_64-linux-gnu-gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -Wall -g -O2
+CPP = x86_64-linux-gnu-gcc -E
+CPPFLAGS = 
+CXX = x86_64-linux-gnu-g++
+CXXCPP = x86_64-linux-gnu-g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DLLTOOL = dlltool
+DSYMUTIL = 
+DUMPBIN = 
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /bin/grep -E
+EXEEXT = 
+FGREP = /bin/grep -F
+FLTK_FLAGS = -I/usr/include/freetype2 -g -O2 -D_THREAD_SAFE -D_REENTRANT
+FLTK_LIBS = -lfltk
+GIF_FLAGS = -DHAVE_GIF
+GIF_LIBS = -lgif
+GLUT_FLAGS = -DHAVE_GLUT
+GLUT_LIBS = -lglut
+GL_LIBS = -lGL
+GREP = /bin/grep
+GSL_FLAGS = -I/usr/include
+GSL_LIBS = -L/usr/lib -lgsl -lgslcblas -lm
+HAVE_SWIG = true
+HDF4_FLAGS = -DHAVE_HDF4
+HDF4_LIBS = -lmfhdf -ldf
+HDF5_FLAGS = -DHAVE_HDF5 -DH5_USE_16_API
+HDF5_LIBS = -lhdf5
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+JPEG_FLAGS = -DHAVE_JPEG
+JPEG_LIBS = -ljpeg
+LD = /usr/bin/ld -m elf_x86_64
+LDFLAGS = 
+LIBOBJS = 
+LIBS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIPO = 
+LN_S = ln -s
+LTLIBOBJS = 
+MAKEINFO = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run makeinfo
+MGL_AGE = 0
+MGL_CURRENT = 5
+MGL_RELEASE = 1.10
+MGL_REVISION = 0
+MKDIR_P = /bin/mkdir -p
+MOC = /usr/bin/moc-qt4
+NM = /usr/bin/nm -B
+NMEDIT = 
+OBJDUMP = objdump
+OBJEXT = o
+OCTAVE = octave-config
+OCTAVE_ARCH = x86_64-pc-linux-gnu-api-v37
+OCTAVE_INCFLAGS = -I/usr/include/octave-3.2.4
+OTOOL = 
+OTOOL64 = 
+PACKAGE = mathgl
+PACKAGE_BUGREPORT = mathgl.abalakin at gmail.com
+PACKAGE_NAME = mathgl
+PACKAGE_STRING = mathgl 1.10
+PACKAGE_TARNAME = mathgl
+PACKAGE_URL = 
+PACKAGE_VERSION = 1.10
+PATH_SEPARATOR = :
+PNG_LIBS = -lpng
+PTHREAD_FLAGS = -DHAVE_PTHREAD
+PTHREAD_LIBS = -lpthread
+PYTHON = /usr/bin/python
+PYTHON_EXEC_PREFIX = ${exec_prefix}
+PYTHON_HEADERS = -I/usr/include/python2.6 -I/usr/include/python2.6 -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes
+PYTHON_PLATFORM = linux2
+PYTHON_PREFIX = ${prefix}
+PYTHON_VERSION = 2.6
+QMAKE = /usr/bin/qmake-qt4
+QT_CFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(QT_DEFINES)
+QT_CPPFLAGS = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I.
+QT_CXXFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(QT_DEFINES)
+QT_DEFINES = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
+QT_INCPATH = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I.
+QT_LDFLAGS = 
+QT_LFLAGS = 
+QT_LIBS = -L/usr/lib -lQtGui -lQtCore -lpthread 
+QT_PATH = /usr/bin
+QT_VERSION = 4.6.3
+QT_VERSION_MAJOR = ok, looks like Qt 4
+RANLIB = ranlib
+RCC = /usr/bin/rcc
+SED = /bin/sed
+SET_MAKE = 
+SHELL = /bin/bash
+STRIP = strip
+TMPDIR = /tmp
+UIC = /usr/bin/uic-qt4
+VERSION = 1.10
+WX_FLAGS = -I/usr/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread
+WX_LIBS = -pthread   -lwx_gtk2u_richtext-2.8 -lwx_gtk2u_aui-2.8 -lwx_gtk2u_xrc-2.8 -lwx_gtk2u_qa-2.8 -lwx_gtk2u_html-2.8 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8 
+abs_builddir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/include
+abs_srcdir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/include
+abs_top_builddir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11
+abs_top_srcdir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11
+ac_ct_CC = 
+ac_ct_CXX = 
+ac_ct_DUMPBIN = 
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-pc-linux-gnu
+build_alias = x86_64-linux-gnu
+build_cpu = x86_64
+build_os = linux-gnu
+build_vendor = pc
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+host = x86_64-pc-linux-gnu
+host_alias = x86_64-linux-gnu
+host_cpu = x86_64
+host_os = linux-gnu
+host_vendor = pc
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${prefix}/share/info
+install_sh = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+lt_ECHO = echo
+mandir = ${prefix}/share/man
+mkdir_p = /bin/mkdir -p
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+pkgpyexecdir = ${pyexecdir}/mathgl
+pkgpythondir = ${pythondir}/mathgl
+prefix = /usr
+program_transform_name = s,x,x,
+psdir = ${docdir}
+pyexecdir = ${exec_prefix}/lib/python2.6/dist-packages
+pythondir = ${prefix}/lib/python2.6/dist-packages
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target_alias = 
+top_build_prefix = ../
+top_builddir = ..
+top_srcdir = ..
+FLTK_INC = mgl/mgl_fltk.h
+GLUT_INC = mgl/mgl_glut.h
+WX_INC = mgl/mgl_wx.h
+QT_INC = mgl/mgl_qt.h
+nobase_include_HEADERS = $(FLTK_INC) $(GLUT_INC) $(WX_INC) $(QT_INC) \
+mgl/mgl_ab.h  mgl/mgl_data.h  mgl/mgl_eval.h  mgl/mgl_gl.h    mgl/mgl.h       mgl/mgl_parse.h \
+mgl/mgl_c.h   mgl/mgl_eps.h   mgl/mgl_f.h     mgl/mgl_font.h  mgl/mgl_idtf.h  mgl/mgl_zb.h \
+mgl/mgl_addon.h mgl/mgl_evalc.h mgl/mgl_define.h mgl/config.h mgl/mgl_pas.pas \
+mgl/mgl_w.h   mgl/gsl.fs  mgl/mathgl.fs  mgl/mglplot.fs  mgl/vectors.fs
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu include/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+install-nobase_includeHEADERS: $(nobase_include_HEADERS)
+	@$(NORMAL_INSTALL)
+	test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
+	@list='$(nobase_include_HEADERS)'; test -n "$(includedir)" || list=; \
+	$(am__nobase_list) | while read dir files; do \
+	  xfiles=; for file in $$files; do \
+	    if test -f "$$file"; then xfiles="$$xfiles $$file"; \
+	    else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \
+	  test -z "$$xfiles" || { \
+	    test "x$$dir" = x. || { \
+	      echo "$(MKDIR_P) '$(DESTDIR)$(includedir)/$$dir'"; \
+	      $(MKDIR_P) "$(DESTDIR)$(includedir)/$$dir"; }; \
+	    echo " $(INSTALL_HEADER) $$xfiles '$(DESTDIR)$(includedir)/$$dir'"; \
+	    $(INSTALL_HEADER) $$xfiles "$(DESTDIR)$(includedir)/$$dir" || exit $$?; }; \
+	done
+
+uninstall-nobase_includeHEADERS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(nobase_include_HEADERS)'; test -n "$(includedir)" || list=; \
+	$(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \
+	test -n "$$files" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(includedir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(includedir)" && rm -f $$files
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	set x; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS)
+installdirs:
+	for dir in "$(DESTDIR)$(includedir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-nobase_includeHEADERS
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-nobase_includeHEADERS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool ctags distclean distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-nobase_includeHEADERS \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags uninstall uninstall-am uninstall-nobase_includeHEADERS
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/include/Makefile.in b/include/Makefile.in
index 6010d14..8c7d802 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -39,11 +39,7 @@ DIST_COMMON = $(am__nobase_include_HEADERS_DIST) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
-	$(top_srcdir)/config/libtool.m4 \
-	$(top_srcdir)/config/ltoptions.m4 \
-	$(top_srcdir)/config/ltsugar.m4 \
-	$(top_srcdir)/config/ltversion.m4 \
-	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
diff --git a/include/mgl/config.h b/include/mgl/config.h
new file mode 100644
index 0000000..170e463
--- /dev/null
+++ b/include/mgl/config.h
@@ -0,0 +1,66 @@
+/* include/mgl/config.h.  Generated from config.h.in by configure.  */
+/* include/mgl/config.h.in.  Generated from configure.ac by autoheader.  */
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+   */
+#define LT_OBJDIR ".libs/"
+
+/* This define enables double precision in MathGL */
+#define MGL_USE_DOUBLE 0
+
+/* Name of package */
+#define PACKAGE "mathgl"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "mathgl.abalakin at gmail.com"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "mathgl"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "mathgl 1.10"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "mathgl"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "1.10"
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Version number of package */
+#define VERSION "1.10"
diff --git a/include/mgl/mgl_qt.moc.cpp b/include/mgl/mgl_qt.moc.cpp
new file mode 100644
index 0000000..91426aa
--- /dev/null
+++ b/include/mgl/mgl_qt.moc.cpp
@@ -0,0 +1,254 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'mgl_qt.h'
+**
+** Created: Thu Nov 11 22:47:59 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.3)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "mgl_qt.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'mgl_qt.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.3. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_QMathGL[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+      49,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       8,       // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+       9,    8,    8,    8, 0x05,
+      25,    8,    8,    8, 0x05,
+      41,    8,    8,    8, 0x05,
+      57,    8,    8,    8, 0x05,
+      76,    8,    8,    8, 0x05,
+      95,    8,    8,    8, 0x05,
+     113,    8,    8,    8, 0x05,
+     136,  133,    8,    8, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+     166,    8,    8,    8, 0x0a,
+     179,  176,    8,    8, 0x0a,
+     197,    8,    8,    8, 0x2a,
+     206,    8,    8,    8, 0x0a,
+     213,    8,    8,    8, 0x0a,
+     223,  221,    8,    8, 0x0a,
+     235,  221,    8,    8, 0x0a,
+     249,  247,    8,    8, 0x0a,
+     263,  261,    8,    8, 0x0a,
+     280,  278,    8,    8, 0x0a,
+     297,  295,    8,    8, 0x0a,
+     313,  311,    8,    8, 0x0a,
+     329,    8,    8,    8, 0x0a,
+     338,    8,    8,    8, 0x0a,
+     348,    8,    8,    8, 0x0a,
+     358,    8,    8,    8, 0x0a,
+     370,    8,    8,    8, 0x0a,
+     383,    8,    8,    8, 0x0a,
+     393,    8,    8,    8, 0x0a,
+     411,  405,    8,    8, 0x0a,
+     430,    8,    8,    8, 0x2a,
+     442,  405,    8,    8, 0x0a,
+     462,    8,    8,    8, 0x2a,
+     475,  405,    8,    8, 0x0a,
+     494,    8,    8,    8, 0x2a,
+     506,  405,    8,    8, 0x0a,
+     525,    8,    8,    8, 0x2a,
+     537,  405,    8,    8, 0x0a,
+     556,    8,    8,    8, 0x2a,
+     568,  405,    8,    8, 0x0a,
+     587,    8,    8,    8, 0x2a,
+     599,  405,    8,    8, 0x0a,
+     619,    8,    8,    8, 0x2a,
+     637,  632,    8,    8, 0x0a,
+     657,    8,    8,    8, 0x0a,
+     666,    8,    8,    8, 0x0a,
+     678,    8,    8,    8, 0x0a,
+     693,  690,    8,    8, 0x0a,
+     709,    8,    8,    8, 0x2a,
+     721,    8,    8,    8, 0x0a,
+     729,    8,    8,    8, 0x0a,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_QMathGL[] = {
+    "QMathGL\0\0phiChanged(int)\0tetChanged(int)\0"
+    "perChanged(int)\0alphaChanged(bool)\0"
+    "lightChanged(bool)\0zoomChanged(bool)\0"
+    "rotateChanged(bool)\0,,\0"
+    "mouseClick(float,float,float)\0refresh()\0"
+    "gr\0update(mglGraph*)\0update()\0copy()\0"
+    "print()\0p\0setPer(int)\0setPhi(int)\0t\0"
+    "setTet(int)\0a\0setAlpha(bool)\0l\0"
+    "setLight(bool)\0z\0setZoom(bool)\0r\0"
+    "setRotate(bool)\0zoomIn()\0zoomOut()\0"
+    "restore()\0shiftLeft()\0shiftRight()\0"
+    "shiftUp()\0shiftDown()\0fname\0"
+    "exportPNG(QString)\0exportPNG()\0"
+    "exportPNGs(QString)\0exportPNGs()\0"
+    "exportJPG(QString)\0exportJPG()\0"
+    "exportBPS(QString)\0exportBPS()\0"
+    "exportEPS(QString)\0exportEPS()\0"
+    "exportSVG(QString)\0exportSVG()\0"
+    "exportIDTF(QString)\0exportIDTF()\0path\0"
+    "setMGLFont(QString)\0adjust()\0nextSlide()\0"
+    "prevSlide()\0st\0animation(bool)\0"
+    "animation()\0about()\0aboutQt()\0"
+};
+
+const QMetaObject QMathGL::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_QMathGL,
+      qt_meta_data_QMathGL, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &QMathGL::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *QMathGL::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *QMathGL::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_QMathGL))
+        return static_cast<void*>(const_cast< QMathGL*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int QMathGL::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: phiChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 1: tetChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 2: perChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 3: alphaChanged((*reinterpret_cast< bool(*)>(_a[1]))); break;
+        case 4: lightChanged((*reinterpret_cast< bool(*)>(_a[1]))); break;
+        case 5: zoomChanged((*reinterpret_cast< bool(*)>(_a[1]))); break;
+        case 6: rotateChanged((*reinterpret_cast< bool(*)>(_a[1]))); break;
+        case 7: mouseClick((*reinterpret_cast< float(*)>(_a[1])),(*reinterpret_cast< float(*)>(_a[2])),(*reinterpret_cast< float(*)>(_a[3]))); break;
+        case 8: refresh(); break;
+        case 9: update((*reinterpret_cast< mglGraph*(*)>(_a[1]))); break;
+        case 10: update(); break;
+        case 11: copy(); break;
+        case 12: print(); break;
+        case 13: setPer((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 14: setPhi((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 15: setTet((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 16: setAlpha((*reinterpret_cast< bool(*)>(_a[1]))); break;
+        case 17: setLight((*reinterpret_cast< bool(*)>(_a[1]))); break;
+        case 18: setZoom((*reinterpret_cast< bool(*)>(_a[1]))); break;
+        case 19: setRotate((*reinterpret_cast< bool(*)>(_a[1]))); break;
+        case 20: zoomIn(); break;
+        case 21: zoomOut(); break;
+        case 22: restore(); break;
+        case 23: shiftLeft(); break;
+        case 24: shiftRight(); break;
+        case 25: shiftUp(); break;
+        case 26: shiftDown(); break;
+        case 27: exportPNG((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 28: exportPNG(); break;
+        case 29: exportPNGs((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 30: exportPNGs(); break;
+        case 31: exportJPG((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 32: exportJPG(); break;
+        case 33: exportBPS((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 34: exportBPS(); break;
+        case 35: exportEPS((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 36: exportEPS(); break;
+        case 37: exportSVG((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 38: exportSVG(); break;
+        case 39: exportIDTF((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 40: exportIDTF(); break;
+        case 41: setMGLFont((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 42: adjust(); break;
+        case 43: nextSlide(); break;
+        case 44: prevSlide(); break;
+        case 45: animation((*reinterpret_cast< bool(*)>(_a[1]))); break;
+        case 46: animation(); break;
+        case 47: about(); break;
+        case 48: aboutQt(); break;
+        default: ;
+        }
+        _id -= 49;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void QMathGL::phiChanged(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+
+// SIGNAL 1
+void QMathGL::tetChanged(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+
+// SIGNAL 2
+void QMathGL::perChanged(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 2, _a);
+}
+
+// SIGNAL 3
+void QMathGL::alphaChanged(bool _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 3, _a);
+}
+
+// SIGNAL 4
+void QMathGL::lightChanged(bool _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 4, _a);
+}
+
+// SIGNAL 5
+void QMathGL::zoomChanged(bool _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 5, _a);
+}
+
+// SIGNAL 6
+void QMathGL::rotateChanged(bool _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 6, _a);
+}
+
+// SIGNAL 7
+void QMathGL::mouseClick(float _t1, float _t2, float _t3)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)), const_cast<void*>(reinterpret_cast<const void*>(&_t3)) };
+    QMetaObject::activate(this, &staticMetaObject, 7, _a);
+}
+QT_END_MOC_NAMESPACE
diff --git a/include/mgl/stamp-h1 b/include/mgl/stamp-h1
new file mode 100644
index 0000000..5119cdd
--- /dev/null
+++ b/include/mgl/stamp-h1
@@ -0,0 +1 @@
+timestamp for include/mgl/config.h
diff --git a/lang/.deps/_mathgl_la-mgl_python.Plo b/lang/.deps/_mathgl_la-mgl_python.Plo
new file mode 100644
index 0000000..3eeec64
--- /dev/null
+++ b/lang/.deps/_mathgl_la-mgl_python.Plo
@@ -0,0 +1,662 @@
+_mathgl_la-mgl_python.lo: mgl_python.cpp /usr/include/python2.6/Python.h \
+ /usr/include/python2.6/patchlevel.h /usr/include/python2.6/pyconfig.h \
+ /usr/include/python2.6/pymacconfig.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/features.h \
+ /usr/include/bits/predefs.h /usr/include/sys/cdefs.h \
+ /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-64.h /usr/include/bits/posix1_lim.h \
+ /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+ /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+ /usr/include/bits/stdio_lim.h /usr/include/stdio.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+ /usr/include/string.h /usr/include/xlocale.h /usr/include/errno.h \
+ /usr/include/bits/errno.h /usr/include/linux/errno.h \
+ /usr/include/asm/errno.h /usr/include/asm-generic/errno.h \
+ /usr/include/asm-generic/errno-base.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/sys/types.h \
+ /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h /usr/include/assert.h \
+ /usr/include/python2.6/pyport.h /usr/include/stdint.h \
+ /usr/include/bits/wchar.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/sys/time.h /usr/include/sys/stat.h /usr/include/bits/stat.h \
+ /usr/include/python2.6/pymath.h /usr/include/python2.6/pymem.h \
+ /usr/include/python2.6/object.h /usr/include/python2.6/objimpl.h \
+ /usr/include/python2.6/pydebug.h /usr/include/python2.6/unicodeobject.h \
+ /usr/include/ctype.h /usr/include/python2.6/intobject.h \
+ /usr/include/python2.6/boolobject.h /usr/include/python2.6/longobject.h \
+ /usr/include/python2.6/floatobject.h \
+ /usr/include/python2.6/complexobject.h \
+ /usr/include/python2.6/rangeobject.h \
+ /usr/include/python2.6/stringobject.h \
+ /usr/include/python2.6/bufferobject.h \
+ /usr/include/python2.6/bytesobject.h \
+ /usr/include/python2.6/bytearrayobject.h \
+ /usr/include/python2.6/tupleobject.h /usr/include/python2.6/listobject.h \
+ /usr/include/python2.6/dictobject.h /usr/include/python2.6/enumobject.h \
+ /usr/include/python2.6/setobject.h /usr/include/python2.6/methodobject.h \
+ /usr/include/python2.6/moduleobject.h \
+ /usr/include/python2.6/funcobject.h /usr/include/python2.6/classobject.h \
+ /usr/include/python2.6/fileobject.h /usr/include/python2.6/cobject.h \
+ /usr/include/python2.6/traceback.h /usr/include/python2.6/sliceobject.h \
+ /usr/include/python2.6/cellobject.h /usr/include/python2.6/iterobject.h \
+ /usr/include/python2.6/genobject.h /usr/include/python2.6/descrobject.h \
+ /usr/include/python2.6/warnings.h /usr/include/python2.6/weakrefobject.h \
+ /usr/include/python2.6/codecs.h /usr/include/python2.6/pyerrors.h \
+ /usr/include/python2.6/pystate.h /usr/include/python2.6/pyarena.h \
+ /usr/include/python2.6/modsupport.h /usr/include/python2.6/pythonrun.h \
+ /usr/include/python2.6/ceval.h /usr/include/python2.6/sysmodule.h \
+ /usr/include/python2.6/intrcheck.h /usr/include/python2.6/import.h \
+ /usr/include/python2.6/abstract.h /usr/include/python2.6/compile.h \
+ /usr/include/python2.6/code.h /usr/include/python2.6/eval.h \
+ /usr/include/python2.6/pystrtod.h /usr/include/python2.6/pystrcmp.h \
+ /usr/include/python2.6/pyfpe.h /usr/include/signal.h \
+ /usr/include/bits/signum.h /usr/include/bits/siginfo.h \
+ /usr/include/bits/sigaction.h /usr/include/bits/sigcontext.h \
+ /usr/include/bits/sigstack.h /usr/include/sys/ucontext.h \
+ /usr/include/bits/sigthread.h /usr/include/setjmp.h \
+ /usr/include/bits/setjmp.h /usr/include/c++/4.4/stdexcept \
+ /usr/include/c++/4.4/exception \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/string /usr/include/c++/4.4/bits/stringfwd.h \
+ /usr/include/c++/4.4/bits/char_traits.h \
+ /usr/include/c++/4.4/bits/stl_algobase.h /usr/include/c++/4.4/cstddef \
+ /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/postypes.h \
+ /usr/include/c++/4.4/cwchar /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/bits/localefwd.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++locale.h \
+ /usr/include/c++/4.4/clocale /usr/include/locale.h \
+ /usr/include/bits/locale.h /usr/include/c++/4.4/iosfwd \
+ /usr/include/c++/4.4/cctype /usr/include/c++/4.4/bits/ostream_insert.h \
+ /usr/include/c++/4.4/cxxabi-forced.h \
+ /usr/include/c++/4.4/bits/stl_function.h \
+ /usr/include/c++/4.4/backward/binders.h \
+ /usr/include/c++/4.4/bits/basic_string.h \
+ /usr/include/c++/4.4/ext/atomicity.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h /usr/include/bits/sched.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/atomic_word.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/basic_string.tcc ../include/mgl/mgl_w.h \
+ /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_c.h /usr/include/python2.6/numpy/arrayobject.h \
+ /usr/include/python2.6/numpy/ndarrayobject.h \
+ /usr/include/python2.6/numpy/numpyconfig.h \
+ /usr/include/python2.6/numpy/_numpyconfig.h \
+ /usr/include/python2.6/numpy/npy_endian.h \
+ /usr/include/python2.6/numpy/npy_cpu.h \
+ /usr/include/python2.6/numpy/utils.h \
+ /usr/include/python2.6/numpy/npy_common.h /usr/include/inttypes.h \
+ /usr/include/python2.6/numpy/_neighborhood_iterator_imp.h \
+ /usr/include/python2.6/numpy/__multiarray_api.h \
+ /usr/include/python2.6/numpy/old_defines.h \
+ /usr/include/python2.6/numpy/npy_interrupt.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/float.h
+
+/usr/include/python2.6/Python.h:
+
+/usr/include/python2.6/patchlevel.h:
+
+/usr/include/python2.6/pyconfig.h:
+
+/usr/include/python2.6/pymacconfig.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/assert.h:
+
+/usr/include/python2.6/pyport.h:
+
+/usr/include/stdint.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/sys/time.h:
+
+/usr/include/sys/stat.h:
+
+/usr/include/bits/stat.h:
+
+/usr/include/python2.6/pymath.h:
+
+/usr/include/python2.6/pymem.h:
+
+/usr/include/python2.6/object.h:
+
+/usr/include/python2.6/objimpl.h:
+
+/usr/include/python2.6/pydebug.h:
+
+/usr/include/python2.6/unicodeobject.h:
+
+/usr/include/ctype.h:
+
+/usr/include/python2.6/intobject.h:
+
+/usr/include/python2.6/boolobject.h:
+
+/usr/include/python2.6/longobject.h:
+
+/usr/include/python2.6/floatobject.h:
+
+/usr/include/python2.6/complexobject.h:
+
+/usr/include/python2.6/rangeobject.h:
+
+/usr/include/python2.6/stringobject.h:
+
+/usr/include/python2.6/bufferobject.h:
+
+/usr/include/python2.6/bytesobject.h:
+
+/usr/include/python2.6/bytearrayobject.h:
+
+/usr/include/python2.6/tupleobject.h:
+
+/usr/include/python2.6/listobject.h:
+
+/usr/include/python2.6/dictobject.h:
+
+/usr/include/python2.6/enumobject.h:
+
+/usr/include/python2.6/setobject.h:
+
+/usr/include/python2.6/methodobject.h:
+
+/usr/include/python2.6/moduleobject.h:
+
+/usr/include/python2.6/funcobject.h:
+
+/usr/include/python2.6/classobject.h:
+
+/usr/include/python2.6/fileobject.h:
+
+/usr/include/python2.6/cobject.h:
+
+/usr/include/python2.6/traceback.h:
+
+/usr/include/python2.6/sliceobject.h:
+
+/usr/include/python2.6/cellobject.h:
+
+/usr/include/python2.6/iterobject.h:
+
+/usr/include/python2.6/genobject.h:
+
+/usr/include/python2.6/descrobject.h:
+
+/usr/include/python2.6/warnings.h:
+
+/usr/include/python2.6/weakrefobject.h:
+
+/usr/include/python2.6/codecs.h:
+
+/usr/include/python2.6/pyerrors.h:
+
+/usr/include/python2.6/pystate.h:
+
+/usr/include/python2.6/pyarena.h:
+
+/usr/include/python2.6/modsupport.h:
+
+/usr/include/python2.6/pythonrun.h:
+
+/usr/include/python2.6/ceval.h:
+
+/usr/include/python2.6/sysmodule.h:
+
+/usr/include/python2.6/intrcheck.h:
+
+/usr/include/python2.6/import.h:
+
+/usr/include/python2.6/abstract.h:
+
+/usr/include/python2.6/compile.h:
+
+/usr/include/python2.6/code.h:
+
+/usr/include/python2.6/eval.h:
+
+/usr/include/python2.6/pystrtod.h:
+
+/usr/include/python2.6/pystrcmp.h:
+
+/usr/include/python2.6/pyfpe.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/signum.h:
+
+/usr/include/bits/siginfo.h:
+
+/usr/include/bits/sigaction.h:
+
+/usr/include/bits/sigcontext.h:
+
+/usr/include/bits/sigstack.h:
+
+/usr/include/sys/ucontext.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/setjmp.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/c++/4.4/stdexcept:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/string:
+
+/usr/include/c++/4.4/bits/stringfwd.h:
+
+/usr/include/c++/4.4/bits/char_traits.h:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/postypes.h:
+
+/usr/include/c++/4.4/cwchar:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/bits/localefwd.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++locale.h:
+
+/usr/include/c++/4.4/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/c++/4.4/iosfwd:
+
+/usr/include/c++/4.4/cctype:
+
+/usr/include/c++/4.4/bits/ostream_insert.h:
+
+/usr/include/c++/4.4/cxxabi-forced.h:
+
+/usr/include/c++/4.4/bits/stl_function.h:
+
+/usr/include/c++/4.4/backward/binders.h:
+
+/usr/include/c++/4.4/bits/basic_string.h:
+
+/usr/include/c++/4.4/ext/atomicity.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/atomic_word.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/basic_string.tcc:
+
+../include/mgl/mgl_w.h:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_c.h:
+
+/usr/include/python2.6/numpy/arrayobject.h:
+
+/usr/include/python2.6/numpy/ndarrayobject.h:
+
+/usr/include/python2.6/numpy/numpyconfig.h:
+
+/usr/include/python2.6/numpy/_numpyconfig.h:
+
+/usr/include/python2.6/numpy/npy_endian.h:
+
+/usr/include/python2.6/numpy/npy_cpu.h:
+
+/usr/include/python2.6/numpy/utils.h:
+
+/usr/include/python2.6/numpy/npy_common.h:
+
+/usr/include/inttypes.h:
+
+/usr/include/python2.6/numpy/_neighborhood_iterator_imp.h:
+
+/usr/include/python2.6/numpy/__multiarray_api.h:
+
+/usr/include/python2.6/numpy/old_defines.h:
+
+/usr/include/python2.6/numpy/npy_interrupt.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/float.h:
diff --git a/lang/.libs/_mathgl.a b/lang/.libs/_mathgl.a
new file mode 100644
index 0000000..f57b08e
Binary files /dev/null and b/lang/.libs/_mathgl.a differ
diff --git a/lang/.libs/_mathgl.la b/lang/.libs/_mathgl.la
new file mode 120000
index 0000000..646dcc1
--- /dev/null
+++ b/lang/.libs/_mathgl.la
@@ -0,0 +1 @@
+../_mathgl.la
\ No newline at end of file
diff --git a/lang/.libs/_mathgl.lai b/lang/.libs/_mathgl.lai
new file mode 100644
index 0000000..277debd
--- /dev/null
+++ b/lang/.libs/_mathgl.lai
@@ -0,0 +1,41 @@
+# _mathgl.la - a libtool library file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='_mathgl.so'
+
+# Names of this library.
+library_names='_mathgl.so _mathgl.so _mathgl.so'
+
+# The name of the static archive.
+old_library='_mathgl.a'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -R/tmp/buildd/libhdf4-4.2r4/HDF4/mfhdf/libsrc/.libs -R/tmp/buildd/libhdf4-4.2r4/HDF4/hdf/src/.libs /usr/lib/libmgl.la -lpng -lGL -L/usr/lib -lgsl -lgslcblas /usr/lib/libmfhdf.la /usr/lib/libdf.la /usr/lib/libhdf5.la -lpthread -lz /usr/lib/libgif.la /usr/lib/libjpeg.la'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for _mathgl.
+current=0
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=yes
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=yes
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/lib/python2.6/dist-packages'
diff --git a/lang/.libs/_mathgl.so b/lang/.libs/_mathgl.so
new file mode 100755
index 0000000..6094193
Binary files /dev/null and b/lang/.libs/_mathgl.so differ
diff --git a/lang/.libs/_mathgl.soT b/lang/.libs/_mathgl.soT
new file mode 100755
index 0000000..0eebe20
Binary files /dev/null and b/lang/.libs/_mathgl.soT differ
diff --git a/lang/.libs/_mathgl_la-mgl_python.o b/lang/.libs/_mathgl_la-mgl_python.o
new file mode 100644
index 0000000..d1ff226
Binary files /dev/null and b/lang/.libs/_mathgl_la-mgl_python.o differ
diff --git a/lang/Makefile b/lang/Makefile
new file mode 100644
index 0000000..2512594
--- /dev/null
+++ b/lang/Makefile
@@ -0,0 +1,699 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# lang/Makefile.  Generated from Makefile.in by configure.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+
+
+pkgdatadir = $(datadir)/mathgl
+pkgincludedir = $(includedir)/mathgl
+pkglibdir = $(libdir)/mathgl
+pkglibexecdir = $(libexecdir)/mathgl
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-pc-linux-gnu
+host_triplet = x86_64-pc-linux-gnu
+am__append_1 = mgl_python.cpp mathgl.py
+am__append_2 = mathgl.py mgl_python.cpp
+#mathgl.py: $(top_srcdir)/lang/mgl.i $(top_srcdir)/include/mgl/mgl_c.h $(top_srcdir)/include/mgl/mgl_w.h
+#	swig -python -c++ -I$(top_srcdir)/include -o mgl_python.cpp $(top_srcdir)/lang/mgl.i
+am__append_3 = mgl_octave.cpp mathgl.oct mathgl.tar.gz
+subdir = lang
+DIST_COMMON = $(am__dist_octave_DATA_DIST) $(am__python_PYTHON_DIST) \
+	$(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
+	$(top_srcdir)/config/libtool.m4 \
+	$(top_srcdir)/config/ltoptions.m4 \
+	$(top_srcdir)/config/ltsugar.m4 \
+	$(top_srcdir)/config/ltversion.m4 \
+	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/include/mgl/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(pyexecdir)" "$(DESTDIR)$(pythondir)" \
+	"$(DESTDIR)$(octavedir)"
+LTLIBRARIES = $(pyexec_LTLIBRARIES)
+_mathgl_la_DEPENDENCIES =  \
+	$(top_builddir)/mgl/libmgl.la
+am___mathgl_la_SOURCES_DIST = mgl_python.cpp
+am__mathgl_la_OBJECTS = _mathgl_la-mgl_python.lo
+_mathgl_la_OBJECTS = $(am__mathgl_la_OBJECTS)
+_mathgl_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(_mathgl_la_CXXFLAGS) \
+	$(CXXFLAGS) $(_mathgl_la_LDFLAGS) $(LDFLAGS) -o $@
+am__mathgl_la_rpath = -rpath $(pyexecdir)
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/include/mgl
+depcomp = $(SHELL) $(top_srcdir)/config/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = $(_mathgl_la_SOURCES)
+DIST_SOURCES = $(am___mathgl_la_SOURCES_DIST)
+am__python_PYTHON_DIST = mathgl.py
+py_compile = $(top_srcdir)/config/py-compile
+am__dist_octave_DATA_DIST = mathgl.tar.gz
+DATA = $(dist_octave_DATA)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run aclocal-1.11
+AMTAR = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run tar
+AM_CXXFLAGS = -Wall -I/usr/include -I$(top_srcdir)/include \
+	-I$(top_builddir)/include
+AR = ar
+AS = as
+AUTOCONF = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run automake-1.11
+AWK = gawk
+CC = x86_64-linux-gnu-gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -Wall -g -O2
+CPP = x86_64-linux-gnu-gcc -E
+CPPFLAGS = 
+CXX = x86_64-linux-gnu-g++
+CXXCPP = x86_64-linux-gnu-g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DLLTOOL = dlltool
+DSYMUTIL = 
+DUMPBIN = 
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /bin/grep -E
+EXEEXT = 
+FGREP = /bin/grep -F
+FLTK_FLAGS = -I/usr/include/freetype2 -g -O2 -D_THREAD_SAFE -D_REENTRANT
+FLTK_LIBS = -lfltk
+GIF_FLAGS = -DHAVE_GIF
+GIF_LIBS = -lgif
+GLUT_FLAGS = -DHAVE_GLUT
+GLUT_LIBS = -lglut
+GL_LIBS = -lGL
+GREP = /bin/grep
+GSL_FLAGS = -I/usr/include
+GSL_LIBS = -L/usr/lib -lgsl -lgslcblas -lm
+HAVE_SWIG = true
+HDF4_FLAGS = -DHAVE_HDF4
+HDF4_LIBS = -lmfhdf -ldf
+HDF5_FLAGS = -DHAVE_HDF5 -DH5_USE_16_API
+HDF5_LIBS = -lhdf5
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+JPEG_FLAGS = -DHAVE_JPEG
+JPEG_LIBS = -ljpeg
+LD = /usr/bin/ld -m elf_x86_64
+LDFLAGS = 
+LIBOBJS = 
+LIBS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIPO = 
+LN_S = ln -s
+LTLIBOBJS = 
+MAKEINFO = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run makeinfo
+MGL_AGE = 0
+MGL_CURRENT = 5
+MGL_RELEASE = 1.10
+MGL_REVISION = 0
+MKDIR_P = /bin/mkdir -p
+MOC = /usr/bin/moc-qt4
+NM = /usr/bin/nm -B
+NMEDIT = 
+OBJDUMP = objdump
+OBJEXT = o
+OCTAVE = octave-config
+OCTAVE_ARCH = x86_64-pc-linux-gnu-api-v37
+OCTAVE_INCFLAGS = -I/usr/include/octave-3.2.4
+OTOOL = 
+OTOOL64 = 
+PACKAGE = mathgl
+PACKAGE_BUGREPORT = mathgl.abalakin at gmail.com
+PACKAGE_NAME = mathgl
+PACKAGE_STRING = mathgl 1.10
+PACKAGE_TARNAME = mathgl
+PACKAGE_URL = 
+PACKAGE_VERSION = 1.10
+PATH_SEPARATOR = :
+PNG_LIBS = -lpng
+PTHREAD_FLAGS = -DHAVE_PTHREAD
+PTHREAD_LIBS = -lpthread
+PYTHON = /usr/bin/python
+PYTHON_EXEC_PREFIX = ${exec_prefix}
+PYTHON_HEADERS = -I/usr/include/python2.6 -I/usr/include/python2.6 -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes
+PYTHON_PLATFORM = linux2
+PYTHON_PREFIX = ${prefix}
+PYTHON_VERSION = 2.6
+QMAKE = /usr/bin/qmake-qt4
+QT_CFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(QT_DEFINES)
+QT_CPPFLAGS = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I.
+QT_CXXFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(QT_DEFINES)
+QT_DEFINES = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
+QT_INCPATH = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I.
+QT_LDFLAGS = 
+QT_LFLAGS = 
+QT_LIBS = -L/usr/lib -lQtGui -lQtCore -lpthread 
+QT_PATH = /usr/bin
+QT_VERSION = 4.6.3
+QT_VERSION_MAJOR = ok, looks like Qt 4
+RANLIB = ranlib
+RCC = /usr/bin/rcc
+SED = /bin/sed
+SET_MAKE = 
+SHELL = /bin/bash
+STRIP = strip
+TMPDIR = /tmp
+UIC = /usr/bin/uic-qt4
+VERSION = 1.10
+WX_FLAGS = -I/usr/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread
+WX_LIBS = -pthread   -lwx_gtk2u_richtext-2.8 -lwx_gtk2u_aui-2.8 -lwx_gtk2u_xrc-2.8 -lwx_gtk2u_qa-2.8 -lwx_gtk2u_html-2.8 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8 
+abs_builddir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/lang
+abs_srcdir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/lang
+abs_top_builddir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11
+abs_top_srcdir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11
+ac_ct_CC = 
+ac_ct_CXX = 
+ac_ct_DUMPBIN = 
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-pc-linux-gnu
+build_alias = x86_64-linux-gnu
+build_cpu = x86_64
+build_os = linux-gnu
+build_vendor = pc
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+host = x86_64-pc-linux-gnu
+host_alias = x86_64-linux-gnu
+host_cpu = x86_64
+host_os = linux-gnu
+host_vendor = pc
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${prefix}/share/info
+install_sh = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+lt_ECHO = echo
+mandir = ${prefix}/share/man
+mkdir_p = /bin/mkdir -p
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+pkgpyexecdir = ${pyexecdir}/mathgl
+pkgpythondir = ${pythondir}/mathgl
+prefix = /usr
+program_transform_name = s,x,x,
+psdir = ${docdir}
+pyexecdir = ${exec_prefix}/lib/python2.6/dist-packages
+pythondir = ${prefix}/lib/python2.6/dist-packages
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target_alias = 
+top_build_prefix = ../
+top_builddir = ..
+top_srcdir = ..
+CLEANFILES = $(am__append_1) $(am__append_3)
+BUILT_SOURCES = $(am__append_2)
+python_PYTHON = mathgl.py
+pyexec_LTLIBRARIES = _mathgl.la
+_mathgl_la_SOURCES = mgl_python.cpp
+_mathgl_la_CXXFLAGS = $(PYTHON_HEADERS) $(AM_CXXFLAGS)
+_mathgl_la_LIBADD = $(top_builddir)/mgl/libmgl.la
+#_mathgl_la_LIBADD = $(top_builddir)/widgets/libmgl-qt.la
+_mathgl_la_LDFLAGS = -avoid-version -module
+PKG_NAME = mathgl
+PKG_OCT_FILES = mathgl.oct
+PKG_OTHER_FILES = $(top_srcdir)/COPYING $(srcdir)/DESCRIPTION $(srcdir)/INDEX $(srcdir)/PKG_ADD_template
+octavedir = $(pkgdatadir)/octave
+dist_octave_DATA = mathgl.tar.gz
+MY_MKOCTFILE = $(CXX) -O0 -g -shared $(OCTAVE_INCFLAGS)
+all: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .cpp .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lang/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu lang/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-pyexecLTLIBRARIES: $(pyexec_LTLIBRARIES)
+	@$(NORMAL_INSTALL)
+	test -z "$(pyexecdir)" || $(MKDIR_P) "$(DESTDIR)$(pyexecdir)"
+	@list='$(pyexec_LTLIBRARIES)'; test -n "$(pyexecdir)" || list=; \
+	list2=; for p in $$list; do \
+	  if test -f $$p; then \
+	    list2="$$list2 $$p"; \
+	  else :; fi; \
+	done; \
+	test -z "$$list2" || { \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pyexecdir)'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pyexecdir)"; \
+	}
+
+uninstall-pyexecLTLIBRARIES:
+	@$(NORMAL_UNINSTALL)
+	@list='$(pyexec_LTLIBRARIES)'; test -n "$(pyexecdir)" || list=; \
+	for p in $$list; do \
+	  $(am__strip_dir) \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pyexecdir)/$$f'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pyexecdir)/$$f"; \
+	done
+
+clean-pyexecLTLIBRARIES:
+	-test -z "$(pyexec_LTLIBRARIES)" || rm -f $(pyexec_LTLIBRARIES)
+	@list='$(pyexec_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+_mathgl.la: $(_mathgl_la_OBJECTS) $(_mathgl_la_DEPENDENCIES) 
+	$(_mathgl_la_LINK) $(am__mathgl_la_rpath) $(_mathgl_la_OBJECTS) $(_mathgl_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+include ./$(DEPDIR)/_mathgl_la-mgl_python.Plo
+
+.cpp.o:
+	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+#	source='$<' object='$@' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+#	source='$<' object='$@' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+	$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+#	source='$<' object='$@' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LTCXXCOMPILE) -c -o $@ $<
+
+_mathgl_la-mgl_python.lo: mgl_python.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(_mathgl_la_CXXFLAGS) $(CXXFLAGS) -MT _mathgl_la-mgl_python.lo -MD -MP -MF $(DEPDIR)/_mathgl_la-mgl_python.Tpo -c -o _mathgl_la-mgl_python.lo `test -f 'mgl_python.cpp' || echo '$(srcdir)/'`mgl_python.cpp
+	$(am__mv) $(DEPDIR)/_mathgl_la-mgl_python.Tpo $(DEPDIR)/_mathgl_la-mgl_python.Plo
+#	source='mgl_python.cpp' object='_mathgl_la-mgl_python.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(_mathgl_la_CXXFLAGS) $(CXXFLAGS) -c -o _mathgl_la-mgl_python.lo `test -f 'mgl_python.cpp' || echo '$(srcdir)/'`mgl_python.cpp
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+install-pythonPYTHON: $(python_PYTHON)
+	@$(NORMAL_INSTALL)
+	test -z "$(pythondir)" || $(MKDIR_P) "$(DESTDIR)$(pythondir)"
+	@list='$(python_PYTHON)'; dlist=; list2=; test -n "$(pythondir)" || list=; \
+	for p in $$list; do \
+	  if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \
+	  if test -f $$b$$p; then \
+	    $(am__strip_dir) \
+	    dlist="$$dlist $$f"; \
+	    list2="$$list2 $$b$$p"; \
+	  else :; fi; \
+	done; \
+	for file in $$list2; do echo $$file; done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pythondir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(pythondir)" || exit $$?; \
+	done || exit $$?; \
+	if test -n "$$dlist"; then \
+	  if test -z "$(DESTDIR)"; then \
+	    PYTHON=$(PYTHON) $(py_compile) --basedir "$(pythondir)" $$dlist; \
+	  else \
+	    PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(pythondir)" $$dlist; \
+	  fi; \
+	else :; fi
+
+uninstall-pythonPYTHON:
+	@$(NORMAL_UNINSTALL)
+	@list='$(python_PYTHON)'; test -n "$(pythondir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	test -n "$$files" || exit 0; \
+	filesc=`echo "$$files" | sed 's|$$|c|'`; \
+	fileso=`echo "$$files" | sed 's|$$|o|'`; \
+	echo " ( cd '$(DESTDIR)$(pythondir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(pythondir)" && rm -f $$files || exit $$?; \
+	echo " ( cd '$(DESTDIR)$(pythondir)' && rm -f" $$filesc ")"; \
+	cd "$(DESTDIR)$(pythondir)" && rm -f $$filesc || exit $$?; \
+	echo " ( cd '$(DESTDIR)$(pythondir)' && rm -f" $$fileso ")"; \
+	cd "$(DESTDIR)$(pythondir)" && rm -f $$fileso
+install-dist_octaveDATA: $(dist_octave_DATA)
+	@$(NORMAL_INSTALL)
+	test -z "$(octavedir)" || $(MKDIR_P) "$(DESTDIR)$(octavedir)"
+	@list='$(dist_octave_DATA)'; test -n "$(octavedir)" || list=; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(octavedir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(octavedir)" || exit $$?; \
+	done
+
+uninstall-dist_octaveDATA:
+	@$(NORMAL_UNINSTALL)
+	@list='$(dist_octave_DATA)'; test -n "$(octavedir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	test -n "$$files" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(octavedir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(octavedir)" && rm -f $$files
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	set x; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LTLIBRARIES) $(DATA)
+installdirs:
+	for dir in "$(DESTDIR)$(pyexecdir)" "$(DESTDIR)$(pythondir)" "$(DESTDIR)$(octavedir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-pyexecLTLIBRARIES \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-dist_octaveDATA install-pythonPYTHON
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-pyexecLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-dist_octaveDATA uninstall-pyexecLTLIBRARIES \
+	uninstall-pythonPYTHON
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pyexecLTLIBRARIES ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am \
+	install-dist_octaveDATA install-dvi install-dvi-am \
+	install-exec install-exec-am install-html install-html-am \
+	install-info install-info-am install-man install-pdf \
+	install-pdf-am install-ps install-ps-am \
+	install-pyexecLTLIBRARIES install-pythonPYTHON install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags uninstall uninstall-am uninstall-dist_octaveDATA \
+	uninstall-pyexecLTLIBRARIES uninstall-pythonPYTHON
+
+
+mgl_python.cpp mathgl.py: $(srcdir)/mgl.i $(top_srcdir)/include/mgl/mgl_c.h $(top_srcdir)/include/mgl/mgl_w.h
+	swig -python -c++ -I$(top_srcdir)/include -I$(top_builddir)/include -o mgl_python.cpp $(srcdir)/mgl.i
+mathgl.tar.gz: $(PKG_OCT_FILES) $(PKG_OTHER_FILES)
+	mkdir -p $(PKG_NAME)
+	mkdir -p $(PKG_NAME)/inst/$(OCTAVE_ARCH)
+	cp -rf $(PKG_OTHER_FILES) $(PKG_NAME)
+	mv $(PKG_NAME)/PKG_ADD_template $(PKG_NAME)/PKG_ADD
+	cp -rf $(PKG_OCT_FILES) $(PKG_NAME)/inst/$(OCTAVE_ARCH)
+	tar cpzvf $@ $(PKG_NAME)
+	rm -rf $(PKG_NAME)
+
+mgl_octave.cpp: $(srcdir)/mgl.i $(top_srcdir)/include/mgl/mgl_c.h $(top_srcdir)/include/mgl/mgl_w.h
+	swig -octave -c++ -I$(top_srcdir)/include -I$(top_builddir)/include -o mgl_octave.cpp $(srcdir)/mgl.i
+mathgl.oct: mgl_octave.cpp
+	$(MY_MKOCTFILE) -o $@ $^ -fPIC -I$(top_srcdir)/include -I$(top_builddir)/include -L$(top_builddir)/mgl/.libs/ -lmgl
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/lang/Makefile.in b/lang/Makefile.in
index 07bed6f..af61832 100644
--- a/lang/Makefile.in
+++ b/lang/Makefile.in
@@ -45,11 +45,7 @@ DIST_COMMON = $(am__dist_octave_DATA_DIST) $(am__python_PYTHON_DIST) \
 	$(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
-	$(top_srcdir)/config/libtool.m4 \
-	$(top_srcdir)/config/ltoptions.m4 \
-	$(top_srcdir)/config/ltsugar.m4 \
-	$(top_srcdir)/config/ltversion.m4 \
-	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
diff --git a/lang/_mathgl.la b/lang/_mathgl.la
new file mode 100644
index 0000000..92271b7
--- /dev/null
+++ b/lang/_mathgl.la
@@ -0,0 +1,42 @@
+# _mathgl.la - a libtool library file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='_mathgl.so'
+
+# Names of this library.
+library_names='_mathgl.so _mathgl.so _mathgl.so'
+
+# The name of the static archive.
+old_library='_mathgl.a'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -R/tmp/buildd/libhdf4-4.2r4/HDF4/mfhdf/libsrc/.libs -R/tmp/buildd/libhdf4-4.2r4/HDF4/hdf/src/.libs  /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/mgl/libmgl.la -lpng -lGL -L/usr/lib -lgsl -lgslcblas /usr/lib/libmfhdf.la /usr/lib/libdf.la /usr/lib/libhdf5.la -lpthread -lz /usr/lib/libgif.la /usr/lib/libjpeg.la'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for _mathgl.
+current=0
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=no
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=yes
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/lib/python2.6/dist-packages'
+relink_command="(cd /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/lang; /bin/bash /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/libtool  --tag CXX --mode=relink x86_64-linux-gnu-g++ -I/usr/include/python2.6 -I/usr/include/python2.6 -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wall -I/usr/include -I../include -I../include -g -O2 -avoid-version -module -o _mathgl.la -rpath /usr/lib/python2.6/dist-packages _mathgl_la-mgl_python.lo ../mgl/libmgl.la @inst_prefix_dir@)"
diff --git a/lang/_mathgl_la-mgl_python.lo b/lang/_mathgl_la-mgl_python.lo
new file mode 100644
index 0000000..22048e3
--- /dev/null
+++ b/lang/_mathgl_la-mgl_python.lo
@@ -0,0 +1,12 @@
+# _mathgl_la-mgl_python.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/_mathgl_la-mgl_python.o'
+
+# Name of the non-PIC object
+non_pic_object='_mathgl_la-mgl_python.o'
+
diff --git a/lang/_mathgl_la-mgl_python.o b/lang/_mathgl_la-mgl_python.o
new file mode 100644
index 0000000..cea083e
Binary files /dev/null and b/lang/_mathgl_la-mgl_python.o differ
diff --git a/lang/mathgl.oct b/lang/mathgl.oct
new file mode 100755
index 0000000..27e8bce
Binary files /dev/null and b/lang/mathgl.oct differ
diff --git a/lang/mathgl.py b/lang/mathgl.py
new file mode 100644
index 0000000..48b73d8
--- /dev/null
+++ b/lang/mathgl.py
@@ -0,0 +1,403 @@
+# This file was automatically generated by SWIG (http://www.swig.org).
+# Version 1.3.40
+#
+# Do not make changes to this file unless you know what you are doing--modify
+# the SWIG interface file instead.
+# This file is compatible with both classic and new-style classes.
+
+from sys import version_info
+if version_info >= (2,6,0):
+    def swig_import_helper():
+        from os.path import dirname
+        import imp
+        fp = None
+        try:
+            fp, pathname, description = imp.find_module('_mathgl', [dirname(__file__)])
+        except ImportError:
+            import _mathgl
+            return _mathgl
+        if fp is not None:
+            try:
+                _mod = imp.load_module('_mathgl', fp, pathname, description)
+            finally:
+                fp.close()
+            return _mod
+    _mathgl = swig_import_helper()
+    del swig_import_helper
+else:
+    import _mathgl
+del version_info
+try:
+    _swig_property = property
+except NameError:
+    pass # Python < 2.2 doesn't have 'property'.
+def _swig_setattr_nondynamic(self,class_type,name,value,static=1):
+    if (name == "thisown"): return self.this.own(value)
+    if (name == "this"):
+        if type(value).__name__ == 'SwigPyObject':
+            self.__dict__[name] = value
+            return
+    method = class_type.__swig_setmethods__.get(name,None)
+    if method: return method(self,value)
+    if (not static) or hasattr(self,name):
+        self.__dict__[name] = value
+    else:
+        raise AttributeError("You cannot add attributes to %s" % self)
+
+def _swig_setattr(self,class_type,name,value):
+    return _swig_setattr_nondynamic(self,class_type,name,value,0)
+
+def _swig_getattr(self,class_type,name):
+    if (name == "thisown"): return self.this.own()
+    method = class_type.__swig_getmethods__.get(name,None)
+    if method: return method(self)
+    raise AttributeError(name)
+
+def _swig_repr(self):
+    try: strthis = "proxy of " + self.this.__repr__()
+    except: strthis = ""
+    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)
+
+try:
+    _object = object
+    _newclass = 1
+except AttributeError:
+    class _object : pass
+    _newclass = 0
+
+
+class mglPoint(_object):
+    __swig_setmethods__ = {}
+    __setattr__ = lambda self, name, value: _swig_setattr(self, mglPoint, name, value)
+    __swig_getmethods__ = {}
+    __getattr__ = lambda self, name: _swig_getattr(self, mglPoint, name)
+    __repr__ = _swig_repr
+    __swig_setmethods__["x"] = _mathgl.mglPoint_x_set
+    __swig_getmethods__["x"] = _mathgl.mglPoint_x_get
+    if _newclass:x = _swig_property(_mathgl.mglPoint_x_get, _mathgl.mglPoint_x_set)
+    __swig_setmethods__["y"] = _mathgl.mglPoint_y_set
+    __swig_getmethods__["y"] = _mathgl.mglPoint_y_get
+    if _newclass:y = _swig_property(_mathgl.mglPoint_y_get, _mathgl.mglPoint_y_set)
+    __swig_setmethods__["z"] = _mathgl.mglPoint_z_set
+    __swig_getmethods__["z"] = _mathgl.mglPoint_z_get
+    if _newclass:z = _swig_property(_mathgl.mglPoint_z_get, _mathgl.mglPoint_z_set)
+    def __init__(self, X = 0, Y = 0, Z = 0): 
+        this = _mathgl.new_mglPoint(X, Y, Z)
+        try: self.this.append(this)
+        except: self.this = this
+    __swig_destroy__ = _mathgl.delete_mglPoint
+    __del__ = lambda self : None;
+mglPoint_swigregister = _mathgl.mglPoint_swigregister
+mglPoint_swigregister(mglPoint)
+cvar = _mathgl.cvar
+NaN = cvar.NaN
+pi = cvar.pi
+
+class mglData(_object):
+    __swig_setmethods__ = {}
+    __setattr__ = lambda self, name, value: _swig_setattr(self, mglData, name, value)
+    __swig_getmethods__ = {}
+    __getattr__ = lambda self, name: _swig_getattr(self, mglData, name)
+    __repr__ = _swig_repr
+    __swig_destroy__ = _mathgl.delete_mglData
+    __del__ = lambda self : None;
+    def __init__(self, *args): 
+        this = _mathgl.new_mglData(*args)
+        try: self.this.append(this)
+        except: self.this = this
+    def Self(self): return _mathgl.mglData_Self(self)
+    def Rearrange(self, *args): return _mathgl.mglData_Rearrange(self, *args)
+    def Set(self, *args): return _mathgl.mglData_Set(self, *args)
+    def Read(self, *args): return _mathgl.mglData_Read(self, *args)
+    def Save(self, *args): return _mathgl.mglData_Save(self, *args)
+    def Export(self, *args): return _mathgl.mglData_Export(self, *args)
+    def Import(self, *args): return _mathgl.mglData_Import(self, *args)
+    def ReadMat(self, *args): return _mathgl.mglData_ReadMat(self, *args)
+    def Create(self, *args): return _mathgl.mglData_Create(self, *args)
+    def Extend(self, *args): return _mathgl.mglData_Extend(self, *args)
+    def Transpose(self, dim = "yx"): return _mathgl.mglData_Transpose(self, dim)
+    def Norm(self, v1 = 0, v2 = 1, sym = False, dim = 0): return _mathgl.mglData_Norm(self, v1, v2, sym, dim)
+    def NormSl(self, v1 = 0, v2 = 1, dir = 'z', keep_en = True, sym = False): return _mathgl.mglData_NormSl(self, v1, v2, dir, keep_en, sym)
+    def Put(self, *args): return _mathgl.mglData_Put(self, *args)
+    def Modify(self, *args): return _mathgl.mglData_Modify(self, *args)
+    def Fill(self, *args): return _mathgl.mglData_Fill(self, *args)
+    def FillSample(self, *args): return _mathgl.mglData_FillSample(self, *args)
+    def Column(self, *args): return _mathgl.mglData_Column(self, *args)
+    def SetColumnId(self, *args): return _mathgl.mglData_SetColumnId(self, *args)
+    def Squeeze(self, *args): return _mathgl.mglData_Squeeze(self, *args)
+    def Crop(self, *args): return _mathgl.mglData_Crop(self, *args)
+    def Envelop(self, dir = 'x'): return _mathgl.mglData_Envelop(self, dir)
+    def Sew(self, dirs = "xyz", da = 2*pi): return _mathgl.mglData_Sew(self, dirs, da)
+    def Smooth(self, *args): return _mathgl.mglData_Smooth(self, *args)
+    def SubData(self, *args): return _mathgl.mglData_SubData(self, *args)
+    def Hist(self, *args): return _mathgl.mglData_Hist(self, *args)
+    def Sum(self, *args): return _mathgl.mglData_Sum(self, *args)
+    def Max(self, *args): return _mathgl.mglData_Max(self, *args)
+    def Min(self, *args): return _mathgl.mglData_Min(self, *args)
+    def Resize(self, *args): return _mathgl.mglData_Resize(self, *args)
+    def Combine(self, *args): return _mathgl.mglData_Combine(self, *args)
+    def Evaluate(self, *args): return _mathgl.mglData_Evaluate(self, *args)
+    def CumSum(self, *args): return _mathgl.mglData_CumSum(self, *args)
+    def Integral(self, *args): return _mathgl.mglData_Integral(self, *args)
+    def Diff(self, *args): return _mathgl.mglData_Diff(self, *args)
+    def Diff2(self, *args): return _mathgl.mglData_Diff2(self, *args)
+    def Swap(self, *args): return _mathgl.mglData_Swap(self, *args)
+    def Roll(self, *args): return _mathgl.mglData_Roll(self, *args)
+    def Mirror(self, *args): return _mathgl.mglData_Mirror(self, *args)
+    def Hankel(self, *args): return _mathgl.mglData_Hankel(self, *args)
+    def SinFFT(self, *args): return _mathgl.mglData_SinFFT(self, *args)
+    def CosFFT(self, *args): return _mathgl.mglData_CosFFT(self, *args)
+    def Spline(self, *args): return _mathgl.mglData_Spline(self, *args)
+    def Spline1(self, *args): return _mathgl.mglData_Spline1(self, *args)
+    def Linear(self, *args): return _mathgl.mglData_Linear(self, *args)
+    def Linear1(self, *args): return _mathgl.mglData_Linear1(self, *args)
+    def Insert(self, *args): return _mathgl.mglData_Insert(self, *args)
+    def Delete(self, *args): return _mathgl.mglData_Delete(self, *args)
+    def Last(self, *args): return _mathgl.mglData_Last(self, *args)
+    def Find(self, *args): return _mathgl.mglData_Find(self, *args)
+    def FindAny(self, *args): return _mathgl.mglData_FindAny(self, *args)
+    def Maximal(self, *args): return _mathgl.mglData_Maximal(self, *args)
+    def Minimal(self, *args): return _mathgl.mglData_Minimal(self, *args)
+    def Momentum(self, *args): return _mathgl.mglData_Momentum(self, *args)
+    def v(self, *args): return _mathgl.mglData_v(self, *args)
+    def GetVal(self, *args): return _mathgl.mglData_GetVal(self, *args)
+    def SetVal(self, *args): return _mathgl.mglData_SetVal(self, *args)
+    def GetNx(self): return _mathgl.mglData_GetNx(self)
+    def GetNy(self): return _mathgl.mglData_GetNy(self)
+    def GetNz(self): return _mathgl.mglData_GetNz(self)
+    def GetData(self): return _mathgl.mglData_GetData(self)
+    def __getitem__(self, *args): return _mathgl.mglData___getitem__(self, *args)
+    def __paren(self, *args): return _mathgl.mglData___paren(self, *args)
+    def __setitem__(self, *args): return _mathgl.mglData___setitem__(self, *args)
+    def __paren_asgn(self, *args): return _mathgl.mglData___paren_asgn(self, *args)
+mglData_swigregister = _mathgl.mglData_swigregister
+mglData_swigregister(mglData)
+
+class mglGraph(_object):
+    __swig_setmethods__ = {}
+    __setattr__ = lambda self, name, value: _swig_setattr(self, mglGraph, name, value)
+    __swig_getmethods__ = {}
+    __getattr__ = lambda self, name: _swig_getattr(self, mglGraph, name)
+    __repr__ = _swig_repr
+    def __init__(self, kind = 0, width = 600, height = 400): 
+        this = _mathgl.new_mglGraph(kind, width, height)
+        try: self.this.append(this)
+        except: self.this = this
+    __swig_destroy__ = _mathgl.delete_mglGraph
+    __del__ = lambda self : None;
+    def Self(self): return _mathgl.mglGraph_Self(self)
+    def GetWarn(self): return _mathgl.mglGraph_GetWarn(self)
+    def DefaultPlotParam(self): return _mathgl.mglGraph_DefaultPlotParam(self)
+    def SetPalColor(self, *args): return _mathgl.mglGraph_SetPalColor(self, *args)
+    def SetPalNum(self, *args): return _mathgl.mglGraph_SetPalNum(self, *args)
+    def SetPalette(self, *args): return _mathgl.mglGraph_SetPalette(self, *args)
+    def SetScheme(self, *args): return _mathgl.mglGraph_SetScheme(self, *args)
+    def SetRotatedText(self, *args): return _mathgl.mglGraph_SetRotatedText(self, *args)
+    def SetCut(self, *args): return _mathgl.mglGraph_SetCut(self, *args)
+    def SetCutBox(self, *args): return _mathgl.mglGraph_SetCutBox(self, *args)
+    def SetTickLen(self, *args): return _mathgl.mglGraph_SetTickLen(self, *args)
+    def SetTickStl(self, *args): return _mathgl.mglGraph_SetTickStl(self, *args)
+    def SetBaseLineWidth(self, *args): return _mathgl.mglGraph_SetBaseLineWidth(self, *args)
+    def SetSize(self, *args): return _mathgl.mglGraph_SetSize(self, *args)
+    def SetBarWidth(self, *args): return _mathgl.mglGraph_SetBarWidth(self, *args)
+    def SetMarkSize(self, *args): return _mathgl.mglGraph_SetMarkSize(self, *args)
+    def SetArrowSize(self, *args): return _mathgl.mglGraph_SetArrowSize(self, *args)
+    def SetFontSize(self, *args): return _mathgl.mglGraph_SetFontSize(self, *args)
+    def SetFontDef(self, *args): return _mathgl.mglGraph_SetFontDef(self, *args)
+    def SetAlphaDef(self, *args): return _mathgl.mglGraph_SetAlphaDef(self, *args)
+    def SetAxialDir(self, *args): return _mathgl.mglGraph_SetAxialDir(self, *args)
+    def SetMeshNum(self, *args): return _mathgl.mglGraph_SetMeshNum(self, *args)
+    def Zoom(self, *args): return _mathgl.mglGraph_Zoom(self, *args)
+    def SetPlotFactor(self, *args): return _mathgl.mglGraph_SetPlotFactor(self, *args)
+    def SetDrawFace(self, *args): return _mathgl.mglGraph_SetDrawFace(self, *args)
+    def SetLegendBox(self, *args): return _mathgl.mglGraph_SetLegendBox(self, *args)
+    def SetLegendMarks(self, *args): return _mathgl.mglGraph_SetLegendMarks(self, *args)
+    def LoadFont(self, *args): return _mathgl.mglGraph_LoadFont(self, *args)
+    def CopyFont(self, *args): return _mathgl.mglGraph_CopyFont(self, *args)
+    def RestoreFont(self): return _mathgl.mglGraph_RestoreFont(self)
+    def ShowImage(self, viewer = None, keep = 0): return _mathgl.mglGraph_ShowImage(self, viewer, keep)
+    def WriteFrame(self, *args): return _mathgl.mglGraph_WriteFrame(self, *args)
+    def WriteIDTF(self, *args): return _mathgl.mglGraph_WriteIDTF(self, *args)
+    def WriteJPEG(self, *args): return _mathgl.mglGraph_WriteJPEG(self, *args)
+    def WritePNG(self, *args): return _mathgl.mglGraph_WritePNG(self, *args)
+    def WriteEPS(self, *args): return _mathgl.mglGraph_WriteEPS(self, *args)
+    def WriteSVG(self, *args): return _mathgl.mglGraph_WriteSVG(self, *args)
+    def WriteGIF(self, *args): return _mathgl.mglGraph_WriteGIF(self, *args)
+    def StartGIF(self, *args): return _mathgl.mglGraph_StartGIF(self, *args)
+    def CloseGIF(self): return _mathgl.mglGraph_CloseGIF(self)
+    def NewFrame(self): return _mathgl.mglGraph_NewFrame(self)
+    def EndFrame(self): return _mathgl.mglGraph_EndFrame(self)
+    def GetNumFrame(self): return _mathgl.mglGraph_GetNumFrame(self)
+    def ResetFrames(self): return _mathgl.mglGraph_ResetFrames(self)
+    def Flush(self): return _mathgl.mglGraph_Flush(self)
+    def GetRGB(self, *args): return _mathgl.mglGraph_GetRGB(self, *args)
+    def GetRGBA(self, *args): return _mathgl.mglGraph_GetRGBA(self, *args)
+    def GetBGRN(self, *args): return _mathgl.mglGraph_GetBGRN(self, *args)
+    def GetWidth(self): return _mathgl.mglGraph_GetWidth(self)
+    def GetHeight(self): return _mathgl.mglGraph_GetHeight(self)
+    def CalcXYZ(self, *args): return _mathgl.mglGraph_CalcXYZ(self, *args)
+    def CalcScr(self, *args): return _mathgl.mglGraph_CalcScr(self, *args)
+    def SetTranspType(self, *args): return _mathgl.mglGraph_SetTranspType(self, *args)
+    def SetTransparent(self, *args): return _mathgl.mglGraph_SetTransparent(self, *args)
+    def Alpha(self, *args): return _mathgl.mglGraph_Alpha(self, *args)
+    def Fog(self, *args): return _mathgl.mglGraph_Fog(self, *args)
+    def Light(self, *args): return _mathgl.mglGraph_Light(self, *args)
+    def AddLight(self, *args): return _mathgl.mglGraph_AddLight(self, *args)
+    def SetAmbient(self, *args): return _mathgl.mglGraph_SetAmbient(self, *args)
+    def Identity(self, rel = False): return _mathgl.mglGraph_Identity(self, rel)
+    def Clf(self, r = 1, g = 1, b = 1): return _mathgl.mglGraph_Clf(self, r, g, b)
+    def SubPlot(self, *args): return _mathgl.mglGraph_SubPlot(self, *args)
+    def InPlot(self, *args): return _mathgl.mglGraph_InPlot(self, *args)
+    def ColumnPlot(self, *args): return _mathgl.mglGraph_ColumnPlot(self, *args)
+    def StickPlot(self, *args): return _mathgl.mglGraph_StickPlot(self, *args)
+    def Aspect(self, *args): return _mathgl.mglGraph_Aspect(self, *args)
+    def Rotate(self, *args): return _mathgl.mglGraph_Rotate(self, *args)
+    def RotateN(self, *args): return _mathgl.mglGraph_RotateN(self, *args)
+    def Perspective(self, *args): return _mathgl.mglGraph_Perspective(self, *args)
+    def SetTicks(self, *args): return _mathgl.mglGraph_SetTicks(self, *args)
+    def AdjustTicks(self, dir = "xyzc"): return _mathgl.mglGraph_AdjustTicks(self, dir)
+    def SetRanges(self, *args): return _mathgl.mglGraph_SetRanges(self, *args)
+    def SetAutoRanges(self, *args): return _mathgl.mglGraph_SetAutoRanges(self, *args)
+    def SetOrigin(self, *args): return _mathgl.mglGraph_SetOrigin(self, *args)
+    def SetCRange(self, *args): return _mathgl.mglGraph_SetCRange(self, *args)
+    def SetXRange(self, *args): return _mathgl.mglGraph_SetXRange(self, *args)
+    def SetYRange(self, *args): return _mathgl.mglGraph_SetYRange(self, *args)
+    def SetZRange(self, *args): return _mathgl.mglGraph_SetZRange(self, *args)
+    def SetFunc(self, *args): return _mathgl.mglGraph_SetFunc(self, *args)
+    def SetCoor(self, *args): return _mathgl.mglGraph_SetCoor(self, *args)
+    def Ternary(self, *args): return _mathgl.mglGraph_Ternary(self, *args)
+    def CutOff(self, *args): return _mathgl.mglGraph_CutOff(self, *args)
+    def Box(self, col = "k", ticks = True): return _mathgl.mglGraph_Box(self, col, ticks)
+    def Axis(self, dir = "xyzt", adjust = False): return _mathgl.mglGraph_Axis(self, dir, adjust)
+    def Label(self, *args): return _mathgl.mglGraph_Label(self, *args)
+    def SetTuneTicks(self, *args): return _mathgl.mglGraph_SetTuneTicks(self, *args)
+    def SetXTT(self, *args): return _mathgl.mglGraph_SetXTT(self, *args)
+    def SetYTT(self, *args): return _mathgl.mglGraph_SetYTT(self, *args)
+    def SetZTT(self, *args): return _mathgl.mglGraph_SetZTT(self, *args)
+    def SetCTT(self, *args): return _mathgl.mglGraph_SetCTT(self, *args)
+    def Ball(self, *args): return _mathgl.mglGraph_Ball(self, *args)
+    def Line(self, *args): return _mathgl.mglGraph_Line(self, *args)
+    def FaceX(self, *args): return _mathgl.mglGraph_FaceX(self, *args)
+    def FaceY(self, *args): return _mathgl.mglGraph_FaceY(self, *args)
+    def FaceZ(self, *args): return _mathgl.mglGraph_FaceZ(self, *args)
+    def Curve(self, *args): return _mathgl.mglGraph_Curve(self, *args)
+    def Drop(self, *args): return _mathgl.mglGraph_Drop(self, *args)
+    def Sphere(self, *args): return _mathgl.mglGraph_Sphere(self, *args)
+    def Cone(self, *args): return _mathgl.mglGraph_Cone(self, *args)
+    def Putsw(self, *args): return _mathgl.mglGraph_Putsw(self, *args)
+    def Puts(self, *args): return _mathgl.mglGraph_Puts(self, *args)
+    def Title(self, *args): return _mathgl.mglGraph_Title(self, *args)
+    def Colorbar(self, *args): return _mathgl.mglGraph_Colorbar(self, *args)
+    def SimplePlot(self, *args): return _mathgl.mglGraph_SimplePlot(self, *args)
+    def AddLegend(self, *args): return _mathgl.mglGraph_AddLegend(self, *args)
+    def AddLegendw(self, *args): return _mathgl.mglGraph_AddLegendw(self, *args)
+    def ClearLegend(self): return _mathgl.mglGraph_ClearLegend(self)
+    def Legend(self, *args): return _mathgl.mglGraph_Legend(self, *args)
+    def Plot(self, *args): return _mathgl.mglGraph_Plot(self, *args)
+    def BoxPlot(self, *args): return _mathgl.mglGraph_BoxPlot(self, *args)
+    def Radar(self, *args): return _mathgl.mglGraph_Radar(self, *args)
+    def Tens(self, *args): return _mathgl.mglGraph_Tens(self, *args)
+    def Area(self, *args): return _mathgl.mglGraph_Area(self, *args)
+    def Stem(self, *args): return _mathgl.mglGraph_Stem(self, *args)
+    def Step(self, *args): return _mathgl.mglGraph_Step(self, *args)
+    def Bars(self, *args): return _mathgl.mglGraph_Bars(self, *args)
+    def Barh(self, *args): return _mathgl.mglGraph_Barh(self, *args)
+    def Region(self, *args): return _mathgl.mglGraph_Region(self, *args)
+    def Torus(self, *args): return _mathgl.mglGraph_Torus(self, *args)
+    def Text(self, *args): return _mathgl.mglGraph_Text(self, *args)
+    def Chart(self, *args): return _mathgl.mglGraph_Chart(self, *args)
+    def Error(self, *args): return _mathgl.mglGraph_Error(self, *args)
+    def Mark(self, *args): return _mathgl.mglGraph_Mark(self, *args)
+    def TextMark(self, *args): return _mathgl.mglGraph_TextMark(self, *args)
+    def Tube(self, *args): return _mathgl.mglGraph_Tube(self, *args)
+    def Grid(self, *args): return _mathgl.mglGraph_Grid(self, *args)
+    def Mesh(self, *args): return _mathgl.mglGraph_Mesh(self, *args)
+    def Fall(self, *args): return _mathgl.mglGraph_Fall(self, *args)
+    def Belt(self, *args): return _mathgl.mglGraph_Belt(self, *args)
+    def Surf(self, *args): return _mathgl.mglGraph_Surf(self, *args)
+    def Tile(self, *args): return _mathgl.mglGraph_Tile(self, *args)
+    def TileS(self, *args): return _mathgl.mglGraph_TileS(self, *args)
+    def Dens(self, *args): return _mathgl.mglGraph_Dens(self, *args)
+    def Boxs(self, *args): return _mathgl.mglGraph_Boxs(self, *args)
+    def Cont(self, *args): return _mathgl.mglGraph_Cont(self, *args)
+    def ContF(self, *args): return _mathgl.mglGraph_ContF(self, *args)
+    def ContD(self, *args): return _mathgl.mglGraph_ContD(self, *args)
+    def Axial(self, *args): return _mathgl.mglGraph_Axial(self, *args)
+    def SurfC(self, *args): return _mathgl.mglGraph_SurfC(self, *args)
+    def SurfA(self, *args): return _mathgl.mglGraph_SurfA(self, *args)
+    def STFA(self, *args): return _mathgl.mglGraph_STFA(self, *args)
+    def Dew(self, *args): return _mathgl.mglGraph_Dew(self, *args)
+    def Traj(self, *args): return _mathgl.mglGraph_Traj(self, *args)
+    def Vect(self, *args): return _mathgl.mglGraph_Vect(self, *args)
+    def VectL(self, *args): return _mathgl.mglGraph_VectL(self, *args)
+    def VectC(self, *args): return _mathgl.mglGraph_VectC(self, *args)
+    def Map(self, *args): return _mathgl.mglGraph_Map(self, *args)
+    def Surf3A(self, *args): return _mathgl.mglGraph_Surf3A(self, *args)
+    def Surf3C(self, *args): return _mathgl.mglGraph_Surf3C(self, *args)
+    def Flow(self, *args): return _mathgl.mglGraph_Flow(self, *args)
+    def FlowP(self, *args): return _mathgl.mglGraph_FlowP(self, *args)
+    def Grad(self, *args): return _mathgl.mglGraph_Grad(self, *args)
+    def Pipe(self, *args): return _mathgl.mglGraph_Pipe(self, *args)
+    def Grid3(self, *args): return _mathgl.mglGraph_Grid3(self, *args)
+    def GridA(self, *args): return _mathgl.mglGraph_GridA(self, *args)
+    def Dens3(self, *args): return _mathgl.mglGraph_Dens3(self, *args)
+    def DensA(self, *args): return _mathgl.mglGraph_DensA(self, *args)
+    def Surf3(self, *args): return _mathgl.mglGraph_Surf3(self, *args)
+    def Cloud(self, *args): return _mathgl.mglGraph_Cloud(self, *args)
+    def Cont3(self, *args): return _mathgl.mglGraph_Cont3(self, *args)
+    def ContA(self, *args): return _mathgl.mglGraph_ContA(self, *args)
+    def ContF3(self, *args): return _mathgl.mglGraph_ContF3(self, *args)
+    def ContFA(self, *args): return _mathgl.mglGraph_ContFA(self, *args)
+    def Beam(self, *args): return _mathgl.mglGraph_Beam(self, *args)
+    def TriPlot(self, *args): return _mathgl.mglGraph_TriPlot(self, *args)
+    def QuadPlot(self, *args): return _mathgl.mglGraph_QuadPlot(self, *args)
+    def TriCont(self, *args): return _mathgl.mglGraph_TriCont(self, *args)
+    def TriContV(self, *args): return _mathgl.mglGraph_TriContV(self, *args)
+    def Dots(self, *args): return _mathgl.mglGraph_Dots(self, *args)
+    def Crust(self, *args): return _mathgl.mglGraph_Crust(self, *args)
+    def DensX(self, *args): return _mathgl.mglGraph_DensX(self, *args)
+    def DensY(self, *args): return _mathgl.mglGraph_DensY(self, *args)
+    def DensZ(self, *args): return _mathgl.mglGraph_DensZ(self, *args)
+    def ContX(self, *args): return _mathgl.mglGraph_ContX(self, *args)
+    def ContY(self, *args): return _mathgl.mglGraph_ContY(self, *args)
+    def ContZ(self, *args): return _mathgl.mglGraph_ContZ(self, *args)
+    def ContFX(self, *args): return _mathgl.mglGraph_ContFX(self, *args)
+    def ContFY(self, *args): return _mathgl.mglGraph_ContFY(self, *args)
+    def ContFZ(self, *args): return _mathgl.mglGraph_ContFZ(self, *args)
+    def Hist(self, *args): return _mathgl.mglGraph_Hist(self, *args)
+    def Fit2(self, *args): return _mathgl.mglGraph_Fit2(self, *args)
+    def Fit3(self, *args): return _mathgl.mglGraph_Fit3(self, *args)
+    def Fit(self, *args): return _mathgl.mglGraph_Fit(self, *args)
+    def FitS(self, *args): return _mathgl.mglGraph_FitS(self, *args)
+    def PutsFit(self, *args): return _mathgl.mglGraph_PutsFit(self, *args)
+    def GetFit(self): return _mathgl.mglGraph_GetFit(self)
+    def PDE(self, *args): return _mathgl.mglGraph_PDE(self, *args)
+    def Fill(self, *args): return _mathgl.mglGraph_Fill(self, *args)
+mglGraph_swigregister = _mathgl.mglGraph_swigregister
+mglGraph_swigregister(mglGraph)
+
+class mglParse(_object):
+    __swig_setmethods__ = {}
+    __setattr__ = lambda self, name, value: _swig_setattr(self, mglParse, name, value)
+    __swig_getmethods__ = {}
+    __getattr__ = lambda self, name: _swig_getattr(self, mglParse, name)
+    __repr__ = _swig_repr
+    def __init__(self): 
+        this = _mathgl.new_mglParse()
+        try: self.this.append(this)
+        except: self.this = this
+    __swig_destroy__ = _mathgl.delete_mglParse
+    __del__ = lambda self : None;
+    def AddParam(self, *args): return _mathgl.mglParse_AddParam(self, *args)
+    def AddVar(self, *args): return _mathgl.mglParse_AddVar(self, *args)
+    def FindVar(self, *args): return _mathgl.mglParse_FindVar(self, *args)
+    def Parse(self, *args): return _mathgl.mglParse_Parse(self, *args)
+    def ScanFunc(self, *args): return _mathgl.mglParse_ScanFunc(self, *args)
+    def Execute(self, *args): return _mathgl.mglParse_Execute(self, *args)
+    def RestoreOnce(self): return _mathgl.mglParse_RestoreOnce(self)
+    def AllowSetSize(self, *args): return _mathgl.mglParse_AllowSetSize(self, *args)
+mglParse_swigregister = _mathgl.mglParse_swigregister
+mglParse_swigregister(mglParse)
+
+
+
diff --git a/lang/mathgl.tar.gz b/lang/mathgl.tar.gz
new file mode 100644
index 0000000..9698e14
Binary files /dev/null and b/lang/mathgl.tar.gz differ
diff --git a/lang/mgl_octave.cpp b/lang/mgl_octave.cpp
new file mode 100644
index 0000000..6abaf4f
--- /dev/null
+++ b/lang/mgl_octave.cpp
@@ -0,0 +1,87767 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 1.3.40
+ * 
+ * This file is not intended to be easily readable and contains a number of 
+ * coding conventions designed to improve portability and efficiency. Do not make
+ * changes to this file unless you know what you are doing--modify the SWIG 
+ * interface file instead. 
+ * ----------------------------------------------------------------------------- */
+
+#define SWIGOCTAVE
+#define SWIG_name_d      "mathgl"
+#define SWIG_name        mathgl
+#define OCTAVE_API_VERSION_OPTION 0
+
+
+#ifdef __cplusplus
+/* SwigValueWrapper is described in swig.swg */
+template<typename T> class SwigValueWrapper {
+  struct SwigMovePointer {
+    T *ptr;
+    SwigMovePointer(T *p) : ptr(p) { }
+    ~SwigMovePointer() { delete ptr; }
+    SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; }
+  } pointer;
+  SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
+  SwigValueWrapper(const SwigValueWrapper<T>& rhs);
+public:
+  SwigValueWrapper() : pointer(0) { }
+  SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; }
+  operator T&() const { return *pointer.ptr; }
+  T *operator&() { return pointer.ptr; }
+};
+
+template <typename T> T SwigValueInit() {
+  return T();
+}
+#endif
+
+/* -----------------------------------------------------------------------------
+ *  This section contains generic SWIG labels for method/variable
+ *  declarations/attributes, and other compiler dependent labels.
+ * ----------------------------------------------------------------------------- */
+
+/* template workaround for compilers that cannot correctly implement the C++ standard */
+#ifndef SWIGTEMPLATEDISAMBIGUATOR
+# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
+#  define SWIGTEMPLATEDISAMBIGUATOR template
+# elif defined(__HP_aCC)
+/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
+/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
+#  define SWIGTEMPLATEDISAMBIGUATOR template
+# else
+#  define SWIGTEMPLATEDISAMBIGUATOR
+# endif
+#endif
+
+/* inline attribute */
+#ifndef SWIGINLINE
+# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
+#   define SWIGINLINE inline
+# else
+#   define SWIGINLINE
+# endif
+#endif
+
+/* attribute recognised by some compilers to avoid 'unused' warnings */
+#ifndef SWIGUNUSED
+# if defined(__GNUC__)
+#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
+#     define SWIGUNUSED __attribute__ ((__unused__)) 
+#   else
+#     define SWIGUNUSED
+#   endif
+# elif defined(__ICC)
+#   define SWIGUNUSED __attribute__ ((__unused__)) 
+# else
+#   define SWIGUNUSED 
+# endif
+#endif
+
+#ifndef SWIG_MSC_UNSUPPRESS_4505
+# if defined(_MSC_VER)
+#   pragma warning(disable : 4505) /* unreferenced local function has been removed */
+# endif 
+#endif
+
+#ifndef SWIGUNUSEDPARM
+# ifdef __cplusplus
+#   define SWIGUNUSEDPARM(p)
+# else
+#   define SWIGUNUSEDPARM(p) p SWIGUNUSED 
+# endif
+#endif
+
+/* internal SWIG method */
+#ifndef SWIGINTERN
+# define SWIGINTERN static SWIGUNUSED
+#endif
+
+/* internal inline SWIG method */
+#ifndef SWIGINTERNINLINE
+# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
+#endif
+
+/* exporting methods */
+#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+#  ifndef GCC_HASCLASSVISIBILITY
+#    define GCC_HASCLASSVISIBILITY
+#  endif
+#endif
+
+#ifndef SWIGEXPORT
+# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#   if defined(STATIC_LINKED)
+#     define SWIGEXPORT
+#   else
+#     define SWIGEXPORT __declspec(dllexport)
+#   endif
+# else
+#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
+#     define SWIGEXPORT __attribute__ ((visibility("default")))
+#   else
+#     define SWIGEXPORT
+#   endif
+# endif
+#endif
+
+/* calling conventions for Windows */
+#ifndef SWIGSTDCALL
+# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#   define SWIGSTDCALL __stdcall
+# else
+#   define SWIGSTDCALL
+# endif 
+#endif
+
+/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
+#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
+# define _CRT_SECURE_NO_DEPRECATE
+#endif
+
+/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
+#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
+# define _SCL_SECURE_NO_DEPRECATE
+#endif
+
+
+
+#include <octave/oct.h>
+#include <octave/parse.h>
+#include <octave/ov-fcn-handle.h>
+#include <octave/Cell.h>
+#include <octave/oct-map.h>
+
+/* -----------------------------------------------------------------------------
+ * swigrun.swg
+ *
+ * This file contains generic C API SWIG runtime support for pointer
+ * type checking.
+ * ----------------------------------------------------------------------------- */
+
+/* This should only be incremented when either the layout of swig_type_info changes,
+   or for whatever reason, the runtime changes incompatibly */
+#define SWIG_RUNTIME_VERSION "4"
+
+/* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */
+#ifdef SWIG_TYPE_TABLE
+# define SWIG_QUOTE_STRING(x) #x
+# define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x)
+# define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE)
+#else
+# define SWIG_TYPE_TABLE_NAME
+#endif
+
+/*
+  You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for
+  creating a static or dynamic library from the SWIG runtime code.
+  In 99.9% of the cases, SWIG just needs to declare them as 'static'.
+  
+  But only do this if strictly necessary, ie, if you have problems
+  with your compiler or suchlike.
+*/
+
+#ifndef SWIGRUNTIME
+# define SWIGRUNTIME SWIGINTERN
+#endif
+
+#ifndef SWIGRUNTIMEINLINE
+# define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE
+#endif
+
+/*  Generic buffer size */
+#ifndef SWIG_BUFFER_SIZE
+# define SWIG_BUFFER_SIZE 1024
+#endif
+
+/* Flags for pointer conversions */
+#define SWIG_POINTER_DISOWN        0x1
+#define SWIG_CAST_NEW_MEMORY       0x2
+
+/* Flags for new pointer objects */
+#define SWIG_POINTER_OWN           0x1
+
+
+/* 
+   Flags/methods for returning states.
+   
+   The SWIG conversion methods, as ConvertPtr, return and integer 
+   that tells if the conversion was successful or not. And if not,
+   an error code can be returned (see swigerrors.swg for the codes).
+   
+   Use the following macros/flags to set or process the returning
+   states.
+   
+   In old versions of SWIG, code such as the following was usually written:
+
+     if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) {
+       // success code
+     } else {
+       //fail code
+     }
+
+   Now you can be more explicit:
+
+    int res = SWIG_ConvertPtr(obj,vptr,ty.flags);
+    if (SWIG_IsOK(res)) {
+      // success code
+    } else {
+      // fail code
+    }
+
+   which is the same really, but now you can also do
+
+    Type *ptr;
+    int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags);
+    if (SWIG_IsOK(res)) {
+      // success code
+      if (SWIG_IsNewObj(res) {
+        ...
+	delete *ptr;
+      } else {
+        ...
+      }
+    } else {
+      // fail code
+    }
+    
+   I.e., now SWIG_ConvertPtr can return new objects and you can
+   identify the case and take care of the deallocation. Of course that
+   also requires SWIG_ConvertPtr to return new result values, such as
+
+      int SWIG_ConvertPtr(obj, ptr,...) {         
+        if (<obj is ok>) {			       
+          if (<need new object>) {		       
+            *ptr = <ptr to new allocated object>; 
+            return SWIG_NEWOBJ;		       
+          } else {				       
+            *ptr = <ptr to old object>;	       
+            return SWIG_OLDOBJ;		       
+          } 				       
+        } else {				       
+          return SWIG_BADOBJ;		       
+        }					       
+      }
+
+   Of course, returning the plain '0(success)/-1(fail)' still works, but you can be
+   more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the
+   SWIG errors code.
+
+   Finally, if the SWIG_CASTRANK_MODE is enabled, the result code
+   allows to return the 'cast rank', for example, if you have this
+
+       int food(double)
+       int fooi(int);
+
+   and you call
+ 
+      food(1)   // cast rank '1'  (1 -> 1.0)
+      fooi(1)   // cast rank '0'
+
+   just use the SWIG_AddCast()/SWIG_CheckState()
+*/
+
+#define SWIG_OK                    (0) 
+#define SWIG_ERROR                 (-1)
+#define SWIG_IsOK(r)               (r >= 0)
+#define SWIG_ArgError(r)           ((r != SWIG_ERROR) ? r : SWIG_TypeError)  
+
+/* The CastRankLimit says how many bits are used for the cast rank */
+#define SWIG_CASTRANKLIMIT         (1 << 8)
+/* The NewMask denotes the object was created (using new/malloc) */
+#define SWIG_NEWOBJMASK            (SWIG_CASTRANKLIMIT  << 1)
+/* The TmpMask is for in/out typemaps that use temporal objects */
+#define SWIG_TMPOBJMASK            (SWIG_NEWOBJMASK << 1)
+/* Simple returning values */
+#define SWIG_BADOBJ                (SWIG_ERROR)
+#define SWIG_OLDOBJ                (SWIG_OK)
+#define SWIG_NEWOBJ                (SWIG_OK | SWIG_NEWOBJMASK)
+#define SWIG_TMPOBJ                (SWIG_OK | SWIG_TMPOBJMASK)
+/* Check, add and del mask methods */
+#define SWIG_AddNewMask(r)         (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r)
+#define SWIG_DelNewMask(r)         (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r)
+#define SWIG_IsNewObj(r)           (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK))
+#define SWIG_AddTmpMask(r)         (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r)
+#define SWIG_DelTmpMask(r)         (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r)
+#define SWIG_IsTmpObj(r)           (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK))
+
+/* Cast-Rank Mode */
+#if defined(SWIG_CASTRANK_MODE)
+#  ifndef SWIG_TypeRank
+#    define SWIG_TypeRank             unsigned long
+#  endif
+#  ifndef SWIG_MAXCASTRANK            /* Default cast allowed */
+#    define SWIG_MAXCASTRANK          (2)
+#  endif
+#  define SWIG_CASTRANKMASK          ((SWIG_CASTRANKLIMIT) -1)
+#  define SWIG_CastRank(r)           (r & SWIG_CASTRANKMASK)
+SWIGINTERNINLINE int SWIG_AddCast(int r) { 
+  return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r;
+}
+SWIGINTERNINLINE int SWIG_CheckState(int r) { 
+  return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0; 
+}
+#else /* no cast-rank mode */
+#  define SWIG_AddCast
+#  define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0)
+#endif
+
+
+#include <string.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef void *(*swig_converter_func)(void *, int *);
+typedef struct swig_type_info *(*swig_dycast_func)(void **);
+
+/* Structure to store information on one type */
+typedef struct swig_type_info {
+  const char             *name;			/* mangled name of this type */
+  const char             *str;			/* human readable name of this type */
+  swig_dycast_func        dcast;		/* dynamic cast function down a hierarchy */
+  struct swig_cast_info  *cast;			/* linked list of types that can cast into this type */
+  void                   *clientdata;		/* language specific type data */
+  int                    owndata;		/* flag if the structure owns the clientdata */
+} swig_type_info;
+
+/* Structure to store a type and conversion function used for casting */
+typedef struct swig_cast_info {
+  swig_type_info         *type;			/* pointer to type that is equivalent to this type */
+  swig_converter_func     converter;		/* function to cast the void pointers */
+  struct swig_cast_info  *next;			/* pointer to next cast in linked list */
+  struct swig_cast_info  *prev;			/* pointer to the previous cast */
+} swig_cast_info;
+
+/* Structure used to store module information
+ * Each module generates one structure like this, and the runtime collects
+ * all of these structures and stores them in a circularly linked list.*/
+typedef struct swig_module_info {
+  swig_type_info         **types;		/* Array of pointers to swig_type_info structures that are in this module */
+  size_t                 size;		        /* Number of types in this module */
+  struct swig_module_info *next;		/* Pointer to next element in circularly linked list */
+  swig_type_info         **type_initial;	/* Array of initially generated type structures */
+  swig_cast_info         **cast_initial;	/* Array of initially generated casting structures */
+  void                    *clientdata;		/* Language specific module data */
+} swig_module_info;
+
+/* 
+  Compare two type names skipping the space characters, therefore
+  "char*" == "char *" and "Class<int>" == "Class<int >", etc.
+
+  Return 0 when the two name types are equivalent, as in
+  strncmp, but skipping ' '.
+*/
+SWIGRUNTIME int
+SWIG_TypeNameComp(const char *f1, const char *l1,
+		  const char *f2, const char *l2) {
+  for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) {
+    while ((*f1 == ' ') && (f1 != l1)) ++f1;
+    while ((*f2 == ' ') && (f2 != l2)) ++f2;
+    if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1;
+  }
+  return (int)((l1 - f1) - (l2 - f2));
+}
+
+/*
+  Check type equivalence in a name list like <name1>|<name2>|...
+  Return 0 if not equal, 1 if equal
+*/
+SWIGRUNTIME int
+SWIG_TypeEquiv(const char *nb, const char *tb) {
+  int equiv = 0;
+  const char* te = tb + strlen(tb);
+  const char* ne = nb;
+  while (!equiv && *ne) {
+    for (nb = ne; *ne; ++ne) {
+      if (*ne == '|') break;
+    }
+    equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
+    if (*ne) ++ne;
+  }
+  return equiv;
+}
+
+/*
+  Check type equivalence in a name list like <name1>|<name2>|...
+  Return 0 if equal, -1 if nb < tb, 1 if nb > tb
+*/
+SWIGRUNTIME int
+SWIG_TypeCompare(const char *nb, const char *tb) {
+  int equiv = 0;
+  const char* te = tb + strlen(tb);
+  const char* ne = nb;
+  while (!equiv && *ne) {
+    for (nb = ne; *ne; ++ne) {
+      if (*ne == '|') break;
+    }
+    equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
+    if (*ne) ++ne;
+  }
+  return equiv;
+}
+
+
+/*
+  Check the typename
+*/
+SWIGRUNTIME swig_cast_info *
+SWIG_TypeCheck(const char *c, swig_type_info *ty) {
+  if (ty) {
+    swig_cast_info *iter = ty->cast;
+    while (iter) {
+      if (strcmp(iter->type->name, c) == 0) {
+        if (iter == ty->cast)
+          return iter;
+        /* Move iter to the top of the linked list */
+        iter->prev->next = iter->next;
+        if (iter->next)
+          iter->next->prev = iter->prev;
+        iter->next = ty->cast;
+        iter->prev = 0;
+        if (ty->cast) ty->cast->prev = iter;
+        ty->cast = iter;
+        return iter;
+      }
+      iter = iter->next;
+    }
+  }
+  return 0;
+}
+
+/* 
+  Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison
+*/
+SWIGRUNTIME swig_cast_info *
+SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty) {
+  if (ty) {
+    swig_cast_info *iter = ty->cast;
+    while (iter) {
+      if (iter->type == from) {
+        if (iter == ty->cast)
+          return iter;
+        /* Move iter to the top of the linked list */
+        iter->prev->next = iter->next;
+        if (iter->next)
+          iter->next->prev = iter->prev;
+        iter->next = ty->cast;
+        iter->prev = 0;
+        if (ty->cast) ty->cast->prev = iter;
+        ty->cast = iter;
+        return iter;
+      }
+      iter = iter->next;
+    }
+  }
+  return 0;
+}
+
+/*
+  Cast a pointer up an inheritance hierarchy
+*/
+SWIGRUNTIMEINLINE void *
+SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) {
+  return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory);
+}
+
+/* 
+   Dynamic pointer casting. Down an inheritance hierarchy
+*/
+SWIGRUNTIME swig_type_info *
+SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) {
+  swig_type_info *lastty = ty;
+  if (!ty || !ty->dcast) return ty;
+  while (ty && (ty->dcast)) {
+    ty = (*ty->dcast)(ptr);
+    if (ty) lastty = ty;
+  }
+  return lastty;
+}
+
+/*
+  Return the name associated with this type
+*/
+SWIGRUNTIMEINLINE const char *
+SWIG_TypeName(const swig_type_info *ty) {
+  return ty->name;
+}
+
+/*
+  Return the pretty name associated with this type,
+  that is an unmangled type name in a form presentable to the user.
+*/
+SWIGRUNTIME const char *
+SWIG_TypePrettyName(const swig_type_info *type) {
+  /* The "str" field contains the equivalent pretty names of the
+     type, separated by vertical-bar characters.  We choose
+     to print the last name, as it is often (?) the most
+     specific. */
+  if (!type) return NULL;
+  if (type->str != NULL) {
+    const char *last_name = type->str;
+    const char *s;
+    for (s = type->str; *s; s++)
+      if (*s == '|') last_name = s+1;
+    return last_name;
+  }
+  else
+    return type->name;
+}
+
+/* 
+   Set the clientdata field for a type
+*/
+SWIGRUNTIME void
+SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
+  swig_cast_info *cast = ti->cast;
+  /* if (ti->clientdata == clientdata) return; */
+  ti->clientdata = clientdata;
+  
+  while (cast) {
+    if (!cast->converter) {
+      swig_type_info *tc = cast->type;
+      if (!tc->clientdata) {
+	SWIG_TypeClientData(tc, clientdata);
+      }
+    }    
+    cast = cast->next;
+  }
+}
+SWIGRUNTIME void
+SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) {
+  SWIG_TypeClientData(ti, clientdata);
+  ti->owndata = 1;
+}
+  
+/*
+  Search for a swig_type_info structure only by mangled name
+  Search is a O(log #types)
+  
+  We start searching at module start, and finish searching when start == end.  
+  Note: if start == end at the beginning of the function, we go all the way around
+  the circular list.
+*/
+SWIGRUNTIME swig_type_info *
+SWIG_MangledTypeQueryModule(swig_module_info *start, 
+                            swig_module_info *end, 
+		            const char *name) {
+  swig_module_info *iter = start;
+  do {
+    if (iter->size) {
+      register size_t l = 0;
+      register size_t r = iter->size - 1;
+      do {
+	/* since l+r >= 0, we can (>> 1) instead (/ 2) */
+	register size_t i = (l + r) >> 1; 
+	const char *iname = iter->types[i]->name;
+	if (iname) {
+	  register int compare = strcmp(name, iname);
+	  if (compare == 0) {	    
+	    return iter->types[i];
+	  } else if (compare < 0) {
+	    if (i) {
+	      r = i - 1;
+	    } else {
+	      break;
+	    }
+	  } else if (compare > 0) {
+	    l = i + 1;
+	  }
+	} else {
+	  break; /* should never happen */
+	}
+      } while (l <= r);
+    }
+    iter = iter->next;
+  } while (iter != end);
+  return 0;
+}
+
+/*
+  Search for a swig_type_info structure for either a mangled name or a human readable name.
+  It first searches the mangled names of the types, which is a O(log #types)
+  If a type is not found it then searches the human readable names, which is O(#types).
+  
+  We start searching at module start, and finish searching when start == end.  
+  Note: if start == end at the beginning of the function, we go all the way around
+  the circular list.
+*/
+SWIGRUNTIME swig_type_info *
+SWIG_TypeQueryModule(swig_module_info *start, 
+                     swig_module_info *end, 
+		     const char *name) {
+  /* STEP 1: Search the name field using binary search */
+  swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name);
+  if (ret) {
+    return ret;
+  } else {
+    /* STEP 2: If the type hasn't been found, do a complete search
+       of the str field (the human readable name) */
+    swig_module_info *iter = start;
+    do {
+      register size_t i = 0;
+      for (; i < iter->size; ++i) {
+	if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name)))
+	  return iter->types[i];
+      }
+      iter = iter->next;
+    } while (iter != end);
+  }
+  
+  /* neither found a match */
+  return 0;
+}
+
+/* 
+   Pack binary data into a string
+*/
+SWIGRUNTIME char *
+SWIG_PackData(char *c, void *ptr, size_t sz) {
+  static const char hex[17] = "0123456789abcdef";
+  register const unsigned char *u = (unsigned char *) ptr;
+  register const unsigned char *eu =  u + sz;
+  for (; u != eu; ++u) {
+    register unsigned char uu = *u;
+    *(c++) = hex[(uu & 0xf0) >> 4];
+    *(c++) = hex[uu & 0xf];
+  }
+  return c;
+}
+
+/* 
+   Unpack binary data from a string
+*/
+SWIGRUNTIME const char *
+SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
+  register unsigned char *u = (unsigned char *) ptr;
+  register const unsigned char *eu = u + sz;
+  for (; u != eu; ++u) {
+    register char d = *(c++);
+    register unsigned char uu;
+    if ((d >= '0') && (d <= '9'))
+      uu = ((d - '0') << 4);
+    else if ((d >= 'a') && (d <= 'f'))
+      uu = ((d - ('a'-10)) << 4);
+    else 
+      return (char *) 0;
+    d = *(c++);
+    if ((d >= '0') && (d <= '9'))
+      uu |= (d - '0');
+    else if ((d >= 'a') && (d <= 'f'))
+      uu |= (d - ('a'-10));
+    else 
+      return (char *) 0;
+    *u = uu;
+  }
+  return c;
+}
+
+/* 
+   Pack 'void *' into a string buffer.
+*/
+SWIGRUNTIME char *
+SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) {
+  char *r = buff;
+  if ((2*sizeof(void *) + 2) > bsz) return 0;
+  *(r++) = '_';
+  r = SWIG_PackData(r,&ptr,sizeof(void *));
+  if (strlen(name) + 1 > (bsz - (r - buff))) return 0;
+  strcpy(r,name);
+  return buff;
+}
+
+SWIGRUNTIME const char *
+SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) {
+  if (*c != '_') {
+    if (strcmp(c,"NULL") == 0) {
+      *ptr = (void *) 0;
+      return name;
+    } else {
+      return 0;
+    }
+  }
+  return SWIG_UnpackData(++c,ptr,sizeof(void *));
+}
+
+SWIGRUNTIME char *
+SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) {
+  char *r = buff;
+  size_t lname = (name ? strlen(name) : 0);
+  if ((2*sz + 2 + lname) > bsz) return 0;
+  *(r++) = '_';
+  r = SWIG_PackData(r,ptr,sz);
+  if (lname) {
+    strncpy(r,name,lname+1);
+  } else {
+    *r = 0;
+  }
+  return buff;
+}
+
+SWIGRUNTIME const char *
+SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
+  if (*c != '_') {
+    if (strcmp(c,"NULL") == 0) {
+      memset(ptr,0,sz);
+      return name;
+    } else {
+      return 0;
+    }
+  }
+  return SWIG_UnpackData(++c,ptr,sz);
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+/*  Errors in SWIG */
+#define  SWIG_UnknownError    	   -1 
+#define  SWIG_IOError        	   -2 
+#define  SWIG_RuntimeError   	   -3 
+#define  SWIG_IndexError     	   -4 
+#define  SWIG_TypeError      	   -5 
+#define  SWIG_DivisionByZero 	   -6 
+#define  SWIG_OverflowError  	   -7 
+#define  SWIG_SyntaxError    	   -8 
+#define  SWIG_ValueError     	   -9 
+#define  SWIG_SystemError    	   -10
+#define  SWIG_AttributeError 	   -11
+#define  SWIG_MemoryError    	   -12 
+#define  SWIG_NullReferenceError   -13
+
+
+
+
+#if OCTAVE_API_VERSION_OPTION>0
+#define USE_OCTAVE_API_VERSION OCTAVE_API_VERSION_OPTION
+#else
+
+#include <octave/version.h>
+#ifdef OCTAVE_API_VERSION_N
+#define USE_OCTAVE_API_VERSION OCTAVE_API_VERSION_N
+
+#else // Interim hack to distinguish between Octave 3.2 and earlier versions.
+
+#define ComplexLU __ignore
+#include <octave/CmplxLU.h>
+#undef ComplexLU
+#ifdef octave_Complex_LU_h
+#define USE_OCTAVE_API_VERSION 36
+#else
+#define USE_OCTAVE_API_VERSION 37
+#endif
+
+#endif
+
+#endif
+
+SWIGRUNTIME bool SWIG_check_num_args(const char *func_name, int num_args, int max_args, int min_args, int varargs) {
+  if (num_args > max_args && !varargs)
+    error("function %s takes at most %i arguments", func_name, max_args);
+  else if (num_args < min_args)
+    error("function %s requires at least %i arguments", func_name, min_args);
+  else
+    return true;
+  return false;
+}
+
+SWIGRUNTIME octave_value_list *SWIG_Octave_AppendOutput(octave_value_list *ovl, const octave_value &ov) {
+  ovl->append(ov);
+  return ovl;
+}
+
+SWIGRUNTIME octave_value SWIG_ErrorType(int code) {
+  switch (code) {
+  case SWIG_MemoryError:
+    return "SWIG_MemoryError";
+  case SWIG_IOError:
+    return "SWIG_IOError";
+  case SWIG_RuntimeError:
+    return "SWIG_RuntimeError";
+  case SWIG_IndexError:
+    return "SWIG_IndexError";
+  case SWIG_TypeError:
+    return "SWIG_TypeError";
+  case SWIG_DivisionByZero:
+    return "SWIG_DivisionByZero";
+  case SWIG_OverflowError:
+    return "SWIG_OverflowError";
+  case SWIG_SyntaxError:
+    return "SWIG_SyntaxError";
+  case SWIG_ValueError:
+    return "SWIG_ValueError";
+  case SWIG_SystemError:
+    return "SWIG_SystemError";
+  case SWIG_AttributeError:
+    return "SWIG_AttributeError";
+  }
+  return "SWIG unknown error";
+}
+
+SWIGRUNTIME octave_value SWIG_Error(int code, const char *msg) {
+  octave_value type(SWIG_ErrorType(code));
+  std::string r = msg;
+  r += " (" + type.string_value() + ")";
+  error(r.c_str());
+  return octave_value(r);
+}
+
+#define SWIG_fail                                       goto fail
+
+#define SWIG_Octave_ConvertPtr(obj, pptr, type, flags)  SWIG_Octave_ConvertPtrAndOwn(obj, pptr, type, flags, 0)
+#define SWIG_ConvertPtr(obj, pptr, type, flags)         SWIG_Octave_ConvertPtr(obj, pptr, type, flags)
+#define SWIG_ConvertPtrAndOwn(obj,pptr,type,flags,own)  SWIG_Octave_ConvertPtrAndOwn(obj, pptr, type, flags, own)
+#define SWIG_ConvertPtr(obj, pptr, type, flags)         SWIG_Octave_ConvertPtr(obj, pptr, type, flags)
+#define SWIG_NewPointerObj(ptr, type, flags)            SWIG_Octave_NewPointerObj(ptr, type, flags)
+#define swig_owntype                                    int
+
+#define SWIG_ConvertPacked(obj, ptr, sz, ty)            SWIG_Octave_ConvertPacked(obj, ptr, sz, ty)
+#define SWIG_NewPackedObj(ptr, sz, type)                SWIG_Octave_NewPackedObj(ptr, sz, type)
+
+#define SWIG_ConvertFunctionPtr(obj, pptr, type)        SWIG_ConvertPtr(obj, pptr, type, 0)
+#define SWIG_NewFunctionPtrObj(ptr, type)               SWIG_NewPointerObj(ptr, type, 0)
+
+#define SWIG_ConvertMember(obj, ptr, sz, ty)            SWIG_Octave_ConvertPacked(obj, ptr, sz, ty)
+#define SWIG_NewMemberObj(ptr, sz, type)                SWIG_Octave_NewPackedObj(ptr, sz, type)
+
+#define SWIG_GetModule(clientdata) SWIG_Octave_GetModule(clientdata)
+#define SWIG_SetModule(clientdata, pointer) SWIG_Octave_SetModule(clientdata,pointer);
+#define SWIG_MODULE_CLIENTDATA_TYPE void*
+
+#define Octave_Error_Occurred() 0
+#define SWIG_Octave_AddErrorMsg(msg) {;}
+
+SWIGRUNTIME swig_module_info *SWIG_Octave_GetModule(void *clientdata);
+SWIGRUNTIME void SWIG_Octave_SetModule(void *clientdata, swig_module_info *pointer);
+
+// For backward compatibility only
+#define SWIG_POINTER_EXCEPTION  0
+#define SWIG_arg_fail(arg)      0
+
+// Runtime API implementation
+
+#include <map>
+#include <vector>
+#include <string>
+
+typedef octave_value_list(*octave_func) (const octave_value_list &, int);
+class octave_swig_type;
+
+namespace Swig {
+  class Director;
+
+  SWIGRUNTIME void swig_register_director(octave_swig_type *self, void *ptr, Director *d);
+  SWIGRUNTIME void swig_director_destroyed(octave_swig_type *self, Director *d);
+  SWIGRUNTIME void swig_director_set_self(Director *d, octave_swig_type *self);
+
+  SWIGRUNTIME octave_base_value *swig_value_ref(octave_swig_type *ost);
+  SWIGRUNTIME octave_swig_type *swig_value_deref(octave_value ov);
+  SWIGRUNTIME octave_swig_type *swig_value_deref(const octave_base_value &ov);
+
+  typedef std::map < void *, Director * > rtdir_map;
+
+  SWIGINTERN rtdir_map* get_rtdir_map() {
+    static swig_module_info *module = 0;
+    if (!module)
+      module = SWIG_GetModule(0);
+    if (!module)
+      return 0;
+    if (!module->clientdata)
+      module->clientdata = new rtdir_map;
+    return (rtdir_map *) module->clientdata;
+  }
+
+  SWIGINTERNINLINE void set_rtdir(void *vptr, Director *d) {
+    rtdir_map* rm = get_rtdir_map();
+    if (rm)
+      (*rm)[vptr] = d;
+  }
+
+  SWIGINTERNINLINE void erase_rtdir(void *vptr) {
+    rtdir_map* rm = get_rtdir_map();
+    if (rm)
+      (*rm).erase(vptr);
+  }
+
+  SWIGINTERNINLINE Director *get_rtdir(void *vptr) {
+    rtdir_map* rm = get_rtdir_map();
+    if (!rm)
+      return 0;
+    rtdir_map::const_iterator pos = rm->find(vptr);
+    Director *rtdir = (pos != rm->end())? pos->second : 0;
+    return rtdir;
+  }
+}
+
+  struct swig_octave_member {
+    const char *name;
+    octave_func method;
+    octave_func get_method;
+    octave_func set_method;
+    int flags;			// 1 static, 2 global
+    const char *doc;
+    bool is_static() const {
+      return flags &1;
+    } bool is_global() const {
+      return flags &2;
+    }
+  };
+
+  struct swig_octave_class {
+    const char *name;
+    swig_type_info **type;
+    int director;
+    octave_func constructor;
+    const char *constructor_doc;
+    octave_func destructor;
+    const swig_octave_member *members;
+    const char **base_names;
+    const swig_type_info **base;
+  };
+
+  // octave_swig_type plays the role of both the shadow class and the class 
+  // representation within Octave, since there is no support for classes.
+  //
+  // These should really be decoupled, with the class support added to Octave
+  // and the shadow class given by an m-file script. That would dramatically 
+  // reduce the runtime complexity, and be more in line w/ other modules.
+
+  class octave_swig_type:public octave_base_value {
+    struct cpp_ptr {
+      void *ptr;
+      bool destroyed;
+      cpp_ptr(void *_ptr):ptr(_ptr), destroyed(false) {
+      }};
+    typedef std::pair < const swig_type_info *, cpp_ptr > type_ptr_pair;
+
+    mutable swig_module_info *module;
+
+    const swig_type_info *construct_type;	// type of special type object
+    std::vector < type_ptr_pair > types;	// our c++ base classes
+    int own;			// whether we call c++ destructors when we die
+
+    typedef std::pair < const swig_octave_member *, octave_value > member_value_pair;
+    typedef std::map < std::string, member_value_pair > member_map;
+    member_map members;
+    bool always_static;
+
+    const swig_octave_member *find_member(const swig_type_info *type, const std::string &name) {
+      if (!type->clientdata)
+	return 0;
+      swig_octave_class *c = (swig_octave_class *) type->clientdata;
+      const swig_octave_member *m;
+      for (m = c->members; m->name; ++m)
+	if (m->name == name)
+	  return m;
+      for (int j = 0; c->base_names[j]; ++j) {
+	if (!c->base[j]) {
+	  if (!module)
+	    module = SWIG_GetModule(0);
+	  assert(module);
+	  c->base[j] = SWIG_MangledTypeQueryModule(module, module, c->base_names[j]);
+	}
+	if (!c->base[j])
+	  return 0;
+	if ((m = find_member(c->base[j], name)))
+	  return m;
+      }
+      return 0;
+    }
+
+    member_value_pair *find_member(const std::string &name, bool insert_if_not_found) {
+      member_map::iterator it = members.find(name);
+      if (it != members.end())
+	return &it->second;
+      const swig_octave_member *m;
+      for (unsigned int j = 0; j < types.size(); ++j)
+	if ((m = find_member(types[j].first, name)))
+	  return &members.insert(std::make_pair(name, std::make_pair(m, octave_value()))).first->second;
+      if (!insert_if_not_found)
+	return 0;
+      return &members[name];
+    }
+
+    const swig_type_info *find_base(const std::string &name, const swig_type_info *base) {
+      if (!base) {
+	for (unsigned int j = 0; j < types.size(); ++j) {
+	  assert(types[j].first->clientdata);
+	  swig_octave_class *cj = (swig_octave_class *) types[j].first->clientdata;
+	  if (cj->name == name)
+	    return types[j].first;
+	}
+	return 0;
+      }
+      assert(base->clientdata);
+      swig_octave_class *c = (swig_octave_class *) base->clientdata;
+      for (int j = 0; c->base_names[j]; ++j) {
+	if (!c->base[j]) {
+	  if (!module)
+	    module = SWIG_GetModule(0);
+	  assert(module);
+	  c->base[j] = SWIG_MangledTypeQueryModule(module, module, c->base_names[j]);
+	}
+	if (!c->base[j])
+	  return 0;
+	assert(c->base[j]->clientdata);
+	swig_octave_class *cj = (swig_octave_class *) c->base[j]->clientdata;
+	if (cj->name == name)
+	  return c->base[j];
+      }
+      return 0;
+    }
+
+    void load_members(const swig_octave_class* c,member_map& out) const {
+      for (const swig_octave_member *m = c->members; m->name; ++m) {
+	if (out.find(m->name) == out.end())
+	  out.insert(std::make_pair(m->name, std::make_pair(m, octave_value())));
+      }
+      for (int j = 0; c->base_names[j]; ++j) {
+	if (!c->base[j]) {
+	  if (!module)
+	    module = SWIG_GetModule(0);
+	  assert(module);
+	  c->base[j] = SWIG_MangledTypeQueryModule(module, module, c->base_names[j]);
+	}
+	if (!c->base[j])
+	  continue;
+	assert(c->base[j]->clientdata);
+	const swig_octave_class *cj =
+	  (const swig_octave_class *) c->base[j]->clientdata;
+	load_members(cj,out);
+      }
+    }
+
+    void load_members(member_map& out) const {
+      out=members;
+      for (unsigned int j = 0; j < types.size(); ++j)
+	if (types[j].first->clientdata)
+	  load_members((const swig_octave_class *) types[j].first->clientdata, out);
+    }
+
+    octave_value_list member_invoke(member_value_pair *m, const octave_value_list &args, int nargout) {
+      if (m->second.is_defined())
+	return m->second.subsref("(", std::list < octave_value_list > (1, args), nargout);
+      else if (m->first && m->first->method)
+	return m->first->method(args, nargout);
+      error("member not defined or not invocable");
+      return octave_value_list();
+    }
+
+    bool dispatch_unary_op(const std::string &symbol, octave_value &ret) {
+      member_value_pair *m = find_member(symbol, false);
+      if (!m || m->first->is_static() || m->first->is_global())
+	return false;
+      octave_value_list args;
+      args.append(as_value());
+      octave_value_list argout(member_invoke(m, args, 1));
+      if (argout.length() < 1)
+	return false;
+      ret = argout(0);
+      return true;
+    }
+
+    bool dispatch_binary_op(const std::string &symbol, const octave_base_value &rhs, octave_value &ret) {
+      member_value_pair *m = find_member(symbol, false);
+      if (!m || m->first->is_static() || m->first->is_global())
+	return false;
+      octave_value_list args;
+      args.append(as_value());
+      args.append(make_value_hack(rhs));
+      octave_value_list argout(member_invoke(m, args, 1));
+      if (argout.length() < 1)
+	return false;
+      ret = argout(0);
+      return true;
+    }
+
+    bool dispatch_index_op(const std::string &symbol, const octave_value_list &rhs, octave_value_list &ret) {
+      member_value_pair *m = find_member(symbol, false);
+      if (!m || m->first->is_static() || m->first->is_global())
+	return false;
+      octave_value_list args;
+      args.append(as_value());
+      args.append(rhs);
+      octave_value_list argout(member_invoke(m, args, 1));
+      if (argout.length() >= 1)
+	ret = argout(0);
+      return true;
+    }
+
+    octave_value_list member_deref(member_value_pair *m, const octave_value_list &args) {
+      if (m->second.is_defined())
+	return m->second;
+      else if (m->first) {
+	if (m->first->get_method)
+	  return m->first->get_method(args, 1);
+	else if (m->first->method)
+	  return octave_value(new octave_builtin(m->first->method));
+      }
+      error("undefined member");
+      return octave_value_list();
+    }
+
+    static octave_value make_value_hack(const octave_base_value &x) {
+      ((octave_swig_type &) x).count++;
+      return octave_value((octave_base_value *) &x);
+    }
+
+    octave_swig_type(const octave_swig_type &x);
+    octave_swig_type &operator=(const octave_swig_type &rhs);
+  public:
+
+    octave_swig_type(void *_ptr = 0, const swig_type_info *_type = 0, int _own = 0,
+		     bool _always_static = false)
+      :	module(0), construct_type(_ptr ? 0 : _type), own(_own), 
+      always_static(_always_static) {
+      if (_type || _ptr)
+	types.push_back(std::make_pair(_type, _ptr));
+      if (_ptr) {
+	Swig::Director *d = Swig::get_rtdir(_ptr);
+	if (d)
+	  Swig::swig_director_set_self(d, this);
+      }
+    }
+
+    ~octave_swig_type() {
+      if (own) {
+	++count;
+	for (unsigned int j = 0; j < types.size(); ++j) {
+	  if (!types[j].first || !types[j].first->clientdata)
+	    continue;
+	  swig_octave_class *c = (swig_octave_class *) types[j].first->clientdata;
+	  if (c->destructor && !types[j].second.destroyed && types[j].second.ptr) {
+	    c->destructor(as_value(), 0);
+	  }
+	}
+      }
+      for (unsigned int j = 0; j < types.size(); ++j)
+	Swig::erase_rtdir(types[j].second.ptr);
+    }
+
+    octave_value as_value() {
+      ++count;
+      return Swig::swig_value_ref(this);
+    }
+
+    void incref() {
+      ++count;
+    }
+
+    void decref() {
+      if (!--count)
+	delete this;
+    }
+
+    long swig_this() const {
+      if (!types.size())
+	return (long) this;
+      return (long) types[0].second.ptr;
+    }
+    const char* help_text() const {
+      if (!types.size())
+	return 0;
+      if (!types[0].first->clientdata)
+	return 0;
+      swig_octave_class *c = (swig_octave_class *) types[0].first->clientdata;
+      return c->constructor_doc;
+    }
+
+    std::string swig_type_name() const {
+      // * need some way to manually name subclasses.
+      // * eg optional first arg to subclass(), or named_subclass()
+      std::string ret;
+      for (unsigned int j = 0; j < types.size(); ++j) {
+	if (j)
+	  ret += "_";
+	if (types[j].first->clientdata) {
+	  swig_octave_class *c = (swig_octave_class *) types[j].first->clientdata;
+	  ret += c->name;
+	} else
+	  ret += types[j].first->name;
+      }
+      return ret;
+    }
+
+    void merge(octave_swig_type &rhs) {
+      rhs.own = 0;
+      for (unsigned int j = 0; j < rhs.types.size(); ++j) {
+	assert(!rhs.types[j].second.destroyed);
+	Swig::Director *d = Swig::get_rtdir(rhs.types[j].second.ptr);
+	if (d)
+	  Swig::swig_director_set_self(d, this);
+      }
+      types.insert(types.end(), rhs.types.begin(), rhs.types.end());
+      members.insert(rhs.members.begin(), rhs.members.end());
+      rhs.types.clear();
+      rhs.members.clear();
+    }
+
+    void install_global() {
+      for (member_map::const_iterator it = members.begin(); it != members.end(); ++it) {
+	if (it->second.first && it->second.first->method)
+	  install_builtin_function(it->second.first->method, it->first,
+				   it->second.first->doc?it->second.first->doc:std::string());
+	else if (it->second.second.is_defined()) {
+#if USE_OCTAVE_API_VERSION<37
+	  link_to_global_variable(curr_sym_tab->lookup(it->first, true));
+#else 
+	  symbol_table::varref(it->first);
+	  symbol_table::mark_global(it->first);
+#endif
+	  set_global_value(it->first, it->second.second);
+	  
+#if USE_OCTAVE_API_VERSION<37
+	  octave_swig_type *ost = Swig::swig_value_deref(it->second.second);
+	  if (ost) {
+	    const char* h = ost->help_text();
+	    if (h) {
+	      symbol_record *sr = global_sym_tab->lookup (it->first, true);
+	      sr->document(h);
+	    }
+	  }
+#endif
+	}
+      }
+    }
+
+    void *cast(swig_type_info *type, int *_own, int flags) {
+      if (_own)
+	*_own = own;
+      if (flags &SWIG_POINTER_DISOWN)
+	own = 0;
+      if (!type && types.size())
+	return types[0].second.ptr;
+      for (unsigned int j = 0; j < types.size(); ++j)
+	if (type == types[j].first)
+	  return types[j].second.ptr;
+      for (unsigned int j = 0; j < types.size(); ++j) {
+	swig_cast_info *tc = SWIG_TypeCheck(types[j].first->name, type);
+	if (!tc)
+	  continue;
+	int newmemory = 0;
+	void *vptr = SWIG_TypeCast(tc, types[j].second.ptr, &newmemory);
+	assert(!newmemory);	// newmemory handling not yet implemented
+	return vptr;
+      }
+      return 0;
+    }
+
+    bool is_owned() const {
+      return own;
+    }
+
+    void director_destroyed(Swig::Director *d) {
+      bool found = false;
+      for (unsigned int j = 0; j < types.size(); ++j) {
+	Swig::Director *dj = Swig::get_rtdir(types[j].second.ptr);
+	if (dj == d) {
+	  types[j].second.destroyed = true;
+	  found = true;
+	}
+      }
+      assert(found);
+    }
+
+    void assign(const std::string &name, const octave_value &ov) {
+      members[name] = std::make_pair((const swig_octave_member *) 0, ov);
+    }
+
+    void assign(const std::string &name, const swig_octave_member *m) {
+      members[name] = std::make_pair(m, octave_value());
+    }
+
+    octave_base_value *clone() const {
+      // pass-by-value is probably not desired, and is harder;
+      // requires calling copy constructors of contained types etc.
+      assert(0);
+      *(int *) 0 = 0;
+      return 0;
+    }
+
+    octave_base_value *empty_clone() const {
+      return new octave_swig_type();
+    }
+
+    bool is_defined() const {
+      return true;
+    }
+
+    virtual bool is_map() const {
+      return true;
+    }
+
+    virtual octave_value subsref(const std::string &ops, const std::list < octave_value_list > &idx) {
+      octave_value_list ovl = subsref(ops, idx, 1);
+      return ovl.length()? ovl(0) : octave_value();
+    }
+
+    virtual octave_value_list subsref(const std::string &ops, const std::list < octave_value_list > &idx, int nargout) {
+      assert(ops.size() > 0);
+      assert(ops.size() == idx.size());
+
+      std::list < octave_value_list >::const_iterator idx_it = idx.begin();
+      int skip = 0;
+      octave_value_list sub_ovl;
+
+      // constructor invocation
+      if (ops[skip] == '(' && construct_type) {
+	assert(construct_type->clientdata);
+	swig_octave_class *c = (swig_octave_class *) construct_type->clientdata;
+	if (!c->constructor) {
+	  error("cannot create instance");
+	  return octave_value_list();
+	}
+	octave_value_list args;
+	if (c->director)
+	  args.append(Swig::swig_value_ref(new octave_swig_type(this, 0, 0)));
+	args.append(*idx_it++);
+	++skip;
+	sub_ovl = c->constructor(args, nargout);
+      }
+      // member dereference or invocation
+      else if (ops[skip] == '.') {
+	std::string subname;
+	const swig_type_info *base = 0;	// eg, a.base.base_cpp_mem
+	for (;;) {
+	  octave_value_list subname_ovl(*idx_it++);
+	  ++skip;
+	  assert(subname_ovl.length() == 1 && subname_ovl(0).is_string());
+	  subname = subname_ovl(0).string_value();
+
+	  const swig_type_info *next_base = find_base(subname, base);
+	  if (!next_base || skip >= (int) ops.size() || ops[skip] != '.')
+	    break;
+	  base = next_base;
+	}
+
+	member_value_pair tmp, *m = &tmp;
+	if (!base || !(m->first = find_member(base, subname)))
+	  m = find_member(subname, false);
+	if (!m) {
+	  error("member not found");
+	  return octave_value_list();
+	}
+
+	octave_value_list args;
+	if (!always_static &&
+	    (!m->first || (!m->first->is_static() && !m->first->is_global())))
+	  args.append(as_value());
+	if (skip < (int) ops.size() && ops[skip] == '(' && 
+	    ((m->first && m->first->method) || m->second.is_function() || 
+	     m->second.is_function_handle())) {
+	  args.append(*idx_it++);
+	  ++skip;
+	  sub_ovl = member_invoke(m, args, nargout);
+	} else {
+	  sub_ovl = member_deref(m, args);
+	}
+      }
+      // index operator
+      else {
+	if (ops[skip] == '(' || ops[skip] == '{') {
+	  const char *op_name = ops[skip] == '(' ? "__paren__" : "__brace__";
+	  octave_value_list args;
+	  args.append(*idx_it++);
+	  ++skip;
+	  if (!dispatch_index_op(op_name, args, sub_ovl)) {
+	    error("error evaluating index operator");
+	    return octave_value_list();
+	  }
+	} else {
+	  error("unsupported subsref");
+	  return octave_value_list();
+	}
+      }
+
+      if (skip >= (int) ops.size())
+	return sub_ovl;
+      if (sub_ovl.length() < 1) {
+	error("bad subs ref");
+	return octave_value_list();
+      }
+      return sub_ovl(0).next_subsref(nargout, ops, idx, skip);
+    }
+
+    octave_value subsasgn(const std::string &ops, const std::list < octave_value_list > &idx, const octave_value &rhs) {
+      assert(ops.size() > 0);
+      assert(ops.size() == idx.size());
+
+      std::list < octave_value_list >::const_iterator idx_it = idx.begin();
+      int skip = 0;
+
+      if (ops.size() > 1) {
+	std::list < octave_value_list >::const_iterator last = idx.end();
+	--last;
+	std::list < octave_value_list > next_idx(idx.begin(), last);
+	octave_value next_ov = subsref(ops.substr(0, ops.size() - 1), next_idx);
+	next_ov.subsasgn(ops.substr(ops.size() - 1), std::list < octave_value_list > (1, *last), rhs);
+      }
+
+      else if (ops[skip] == '(' || ops[skip] == '{') {
+	const char *op_name = ops[skip] == '(' ? "__paren_asgn__" : "__brace_asgn__";
+	member_value_pair *m = find_member(op_name, false);
+	if (m) {
+	  octave_value_list args;
+	  args.append(as_value());
+	  args.append(*idx_it);
+	  args.append(rhs);
+	  member_invoke(m, args, 1);
+	} else
+	  error("%s member not found", op_name);
+      }
+
+      else if (ops[skip] == '.') {
+	octave_value_list subname_ovl(*idx_it++);
+	++skip;
+	assert(subname_ovl.length() == 1 &&subname_ovl(0).is_string());
+	std::string subname = subname_ovl(0).string_value();
+
+	member_value_pair *m = find_member(subname, true);
+	if (!m->first || !m->first->set_method) {
+	  m->first = 0;
+	  m->second = rhs;
+	} else if (m->first->set_method) {
+	  octave_value_list args;
+	  if (!m->first->is_static() && !m->first->is_global())
+	    args.append(as_value());
+	  args.append(rhs);
+	  m->first->set_method(args, 1);
+	} else
+	  error("member not assignable");
+      } else
+	error("unsupported subsasgn");
+
+      return as_value();
+    }
+
+    virtual bool is_string() const {
+      octave_swig_type *nc_this = const_cast < octave_swig_type *>(this);
+      return !!nc_this->find_member("__str__", false);
+    }
+
+    virtual std::string string_value(bool force = false) const {
+      octave_swig_type *nc_this = const_cast < octave_swig_type *>(this);
+      member_value_pair *m = nc_this->find_member("__str__", false);
+      if (!m) {
+	error("__str__ method not defined");
+	return std::string();
+      }
+      octave_value_list outarg = nc_this->member_invoke(m, octave_value_list(nc_this->as_value()), 1);
+      if (outarg.length() < 1 || !outarg(0).is_string()) {
+	error("__str__ method did not return a string");
+	return std::string();
+      }
+      return outarg(0).string_value();
+    }
+
+    virtual Octave_map map_value() const {
+      return Octave_map();
+    }
+
+    virtual string_vector map_keys() const {
+      member_map tmp;
+      load_members(tmp);
+
+      string_vector keys(tmp.size());
+      int k = 0;
+      for (member_map::iterator it = tmp.begin(); it != tmp.end(); ++it)
+	keys(k++) = it->first;
+
+      return keys;
+    }
+
+    virtual bool save_ascii (std::ostream& os) {
+      return true;
+    }
+
+    virtual bool load_ascii (std::istream& is) {
+      return true;
+    }
+
+    virtual bool save_binary (std::ostream& os, bool& save_as_floats) {
+      return true;
+    }
+
+    virtual bool load_binary (std::istream& is, bool swap, 
+			      oct_mach_info::float_format fmt) {
+      return true;
+    }
+
+#if defined (HAVE_HDF5)
+    virtual bool
+      save_hdf5 (hid_t loc_id, const char *name, bool save_as_floats) {
+      return true;
+    }
+
+    virtual bool
+      load_hdf5 (hid_t loc_id, const char *name, bool have_h5giterate_bug) {
+      return true;
+    }
+#endif
+
+    virtual octave_value convert_to_str(bool pad = false, bool force = false, char type = '"') const {
+      return string_value();
+    }
+
+    virtual octave_value convert_to_str_internal(bool pad, bool force, char type) const {
+      return string_value();
+    }
+
+    static bool dispatch_global_op(const std::string &symbol, const octave_value_list &args, octave_value &ret) {
+      // we assume that "op_"-prefixed functions are installed in global namespace
+      // (rather than any module namespace).
+
+      octave_value fcn = get_global_value(symbol, true);
+      if (!fcn.is_function() && !fcn.is_function_handle())
+	return false;
+      ret = fcn.subsref("(", std::list < octave_value_list > (1, args));
+      return true;
+    }
+
+    static octave_value dispatch_unary_op(const octave_base_value &x, const char *op_name) {
+      octave_swig_type *ost = Swig::swig_value_deref(x);
+      assert(ost);
+
+      octave_value ret;
+      if (ost->dispatch_unary_op(std::string("__") + op_name + std::string("__"), ret))
+	return ret;
+      std::string symbol = "op_" + ost->swig_type_name() + "_" + op_name;
+      octave_value_list args;
+      args.append(make_value_hack(x));
+      if (dispatch_global_op(symbol, args, ret))
+	return ret;
+
+      error("could not dispatch unary operator");
+      return octave_value();
+    }
+
+    static octave_value dispatch_binary_op(const octave_base_value &lhs, const octave_base_value &rhs, const char *op_name) {
+      octave_swig_type *lhs_ost = Swig::swig_value_deref(lhs);
+      octave_swig_type *rhs_ost = Swig::swig_value_deref(rhs);
+
+      octave_value ret;
+      if (lhs_ost && lhs_ost->dispatch_binary_op(std::string("__") + op_name + std::string("__"), rhs, ret))
+	return ret;
+
+      std::string symbol;
+      octave_value_list args;
+      args.append(make_value_hack(lhs));
+      args.append(make_value_hack(rhs));
+
+      symbol = "op_";
+      symbol += lhs_ost ? lhs_ost->swig_type_name() : lhs.type_name();
+      symbol += "_";
+      symbol += op_name;
+      symbol += "_";
+      symbol += rhs_ost ? rhs_ost->swig_type_name() : rhs.type_name();
+      if (dispatch_global_op(symbol, args, ret))
+	return ret;
+
+      symbol = "op_";
+      symbol += lhs_ost ? lhs_ost->swig_type_name() : lhs.type_name();
+      symbol += "_";
+      symbol += op_name;
+      symbol += "_";
+      symbol += "any";
+      if (dispatch_global_op(symbol, args, ret))
+	return ret;
+
+      symbol = "op_";
+      symbol += "any";
+      symbol += "_";
+      symbol += op_name;
+      symbol += "_";
+      symbol += rhs_ost ? rhs_ost->swig_type_name() : rhs.type_name();
+      if (dispatch_global_op(symbol, args, ret))
+	return ret;
+
+      error("could not dispatch binary operator");
+      return octave_value();
+    }
+
+    void print(std::ostream &os, bool pr_as_read_syntax = false) const {
+      if (is_string()) {
+	os << string_value();
+	return;
+      }
+
+      member_map tmp;
+      load_members(tmp);
+
+      os << "{" << std::endl;
+      for (unsigned int j = 0; j < types.size(); ++j) {
+	if (types[j].first->clientdata) {
+	  const swig_octave_class *c = (const swig_octave_class *) types[j].first->clientdata;
+	  os << "  " << c->name << ", ptr = " << types[j].second.ptr << std::endl;
+	} else {
+	  os << "  " << types[j].first->name << ", ptr = " << types[j].second.ptr << std::endl;
+	}
+      }
+      for (member_map::const_iterator it = tmp.begin(); it != tmp.end(); ++it) {
+	if (it->second.first) {
+	  const char *objtype = it->second.first->method ? "method" : "variable";
+	  const char *modifier = (it->second.first->flags &1) ? "static " : (it->second.first->flags &2) ? "global " : "";
+	  os << "  " << it->second.first->name << " (" << modifier << objtype << ")" << std::endl;
+	  assert(it->second.first->name == it->first);
+	} else {
+	  os << "  " << it->first << std::endl;
+	}
+      }
+      os << "}" << std::endl;
+    }
+  };
+
+  // Octave tries hard to preserve pass-by-value semantics. Eg, assignments
+  // will call clone() via make_unique() if there is more than one outstanding 
+  // reference to the lhs, and forces the clone's reference count to 1 
+  // (so you can't just increment your own count and return this).
+  //
+  // One way to fix this (without modifying Octave) is to add a level of
+  // indirection such that clone copies ref-counted pointer and we keep 
+  // pass-by-ref semantics (which are more natural/expected for C++ bindings).
+  //
+  // Supporting both pass-by-{ref,value} and toggling via %feature/option 
+  // might be nice.
+
+  class octave_swig_ref:public octave_base_value {
+    octave_swig_type *ptr;
+  public:
+    octave_swig_ref(octave_swig_type *_ptr = 0)
+      :ptr(_ptr) { }
+
+    ~octave_swig_ref()
+      { if (ptr) ptr->decref(); }
+
+    octave_swig_type *get_ptr() const
+      { return ptr; }
+
+    octave_base_value *clone() const
+      { if (ptr) ptr->incref(); return new octave_swig_ref(ptr); }
+
+    octave_base_value *empty_clone() const
+      { return new octave_swig_ref(0); }
+
+    bool is_defined() const
+      { return ptr->is_defined(); }
+
+    virtual bool is_map() const 
+      { return ptr->is_map(); }
+
+    virtual octave_value subsref(const std::string &ops, const std::list < octave_value_list > &idx) 
+      { return ptr->subsref(ops, idx); }
+
+    virtual octave_value_list subsref(const std::string &ops, const std::list < octave_value_list > &idx, int nargout)
+      { return ptr->subsref(ops, idx, nargout); }
+
+    octave_value subsasgn(const std::string &ops, const std::list < octave_value_list > &idx, const octave_value &rhs)
+      { return ptr->subsasgn(ops, idx, rhs); }
+
+    virtual bool is_string() const 
+      { return ptr->is_string(); }
+
+    virtual std::string string_value(bool force = false) const 
+      { return ptr->string_value(force); }
+
+    virtual Octave_map map_value() const
+      { return ptr->map_value(); }
+
+    virtual string_vector map_keys() const
+      { return ptr->map_keys(); }
+
+    virtual bool save_ascii (std::ostream& os)
+      { return ptr->save_ascii(os); }
+
+    virtual bool load_ascii (std::istream& is)
+      { return ptr->load_ascii(is); }
+
+    virtual bool save_binary (std::ostream& os, bool& save_as_floats)
+      { return ptr->save_binary(os, save_as_floats); }
+
+    virtual bool load_binary (std::istream& is, bool swap, 
+			      oct_mach_info::float_format fmt)
+      { return ptr->load_binary(is, swap, fmt); }
+
+#if defined (HAVE_HDF5)
+    virtual bool
+      save_hdf5 (hid_t loc_id, const char *name, bool save_as_floats)
+      { return ptr->save_hdf5(loc_id, name, save_as_floats); }
+
+    virtual bool
+      load_hdf5 (hid_t loc_id, const char *name, bool have_h5giterate_bug)
+      { return ptr->load_hdf5(loc_id, name, have_h5giterate_bug); }
+#endif
+
+    virtual octave_value convert_to_str(bool pad = false, bool force = false, char type = '"') const
+      { return ptr->convert_to_str(pad, force, type); }
+
+    virtual octave_value convert_to_str_internal(bool pad, bool force, char type) const
+      { return ptr->convert_to_str_internal(pad, force, type); }
+
+    void print(std::ostream &os, bool pr_as_read_syntax = false) const
+      { return ptr->print(os, pr_as_read_syntax); }
+
+  private:
+    DECLARE_OCTAVE_ALLOCATOR;
+    DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA;
+  };
+  DEFINE_OCTAVE_ALLOCATOR(octave_swig_ref);
+  DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA(octave_swig_ref, "swig_ref", "swig_ref");
+
+  class octave_swig_packed:public octave_base_value {
+    swig_type_info *type;
+    std::vector < char > buf;
+  public:
+
+    octave_swig_packed(swig_type_info *_type = 0, const void *_buf = 0, size_t _buf_len = 0)
+      :	type(_type), buf((const char*)_buf, (const char*)_buf + _buf_len) {
+    }
+
+    bool copy(swig_type_info *outtype, void *ptr, size_t sz) const {
+      if (outtype && outtype != type)
+	return false;
+      assert(sz <= buf.size());
+      std::copy(buf.begin(), buf.begin()+sz, (char*)ptr);
+      return true;
+    }
+
+    octave_base_value *clone() const {
+      return new octave_swig_packed(*this);
+    }
+
+    octave_base_value *empty_clone() const {
+      return new octave_swig_packed();
+    }
+
+    bool is_defined() const {
+      return true;
+    }
+
+    void print(std::ostream &os, bool pr_as_read_syntax = false) const {
+      os << "swig packed type: name = " << (type ? type->name : std::string()) << ", len = " << buf.size() << std::endl;
+    }
+
+
+    virtual bool save_ascii (std::ostream& os) {
+      return true;
+    }
+
+    virtual bool load_ascii (std::istream& is) {
+      return true;
+    }
+
+    virtual bool save_binary (std::ostream& os, bool& save_as_floats) {
+      return true;
+    }
+
+    virtual bool load_binary (std::istream& is, bool swap, 
+			      oct_mach_info::float_format fmt) {
+      return true;
+    }
+
+#if defined (HAVE_HDF5)
+    virtual bool
+      save_hdf5 (hid_t loc_id, const char *name, bool save_as_floats) {
+      return true;
+    }
+
+    virtual bool
+      load_hdf5 (hid_t loc_id, const char *name, bool have_h5giterate_bug) {
+      return true;
+    }
+#endif
+
+  private:
+    DECLARE_OCTAVE_ALLOCATOR;
+    DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA;
+  };
+  DEFINE_OCTAVE_ALLOCATOR(octave_swig_packed);
+  DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA(octave_swig_packed, "swig_packed", "swig_packed");
+
+  static octave_value_list octave_set_immutable(const octave_value_list &args, int nargout) {
+    error("attempt to set immutable member variable");
+    return octave_value_list();
+  }
+
+  struct octave_value_ref {
+    const octave_value_list &ovl;
+    int j;
+
+    octave_value_ref(const octave_value_list &_ovl, int _j)
+      :ovl(_ovl), j(_j) { }
+
+    operator  octave_value() const {
+      return ovl(j);
+    }
+
+    octave_value operator*() const {
+      return ovl(j);
+    }
+  };
+
+  octave_value_list swig_subclass(const octave_value_list &args, int nargout) {
+    octave_swig_type *top = new octave_swig_type;
+    for (int j = 0; j < args.length(); ++j) {
+      if (args(j).type_id() == octave_swig_ref::static_type_id()) {
+	octave_swig_ref *osr = static_cast < octave_swig_ref *>(args(j).internal_rep());
+	octave_swig_type *ost = osr->get_ptr();
+	if (!ost->is_owned()) {
+	  error("cannot subclass object not constructed on octave side");
+	  return octave_value_list();
+	}
+	top->merge(*ost);
+      } else if (args(j).is_function_handle()) {
+	top->assign(args(j).fcn_handle_value()->fcn_name(), args(j));
+      } else if (args(j).is_string()) {
+	if (j + 1 >= args.length()) {
+	  error("member assignments must be of string,value form");
+	  return octave_value_list();
+	}
+	top->assign(args(j).string_value(), args(j + 1));
+	++j;
+      } else {
+	error("invalid arguments to subclass");
+	return octave_value_list();
+      }
+    }
+    return octave_value(Swig::swig_value_ref(top));
+  }
+
+  octave_value_list swig_type(const octave_value_list &args, int nargout) {
+    if (args.length() != 1) {
+      error("swig_typeinfo must be called with only a single object");
+      return octave_value_list();
+    }
+    octave_swig_type *ost = Swig::swig_value_deref(args(0));
+    if (!ost) {
+      error("object is not a swig_ref");
+      return octave_value_list();
+    }
+    return octave_value(ost->swig_type_name());
+  }
+
+  octave_value_list swig_typequery(const octave_value_list &args, int nargout) {
+    if (args.length() != 1 || !args(0).is_string()) {
+      error("swig_typeinfo must be called with single string argument");
+      return octave_value_list();
+    }
+    swig_module_info *module = SWIG_GetModule(0);
+    swig_type_info *type = SWIG_TypeQueryModule(module, module, args(0).string_value().c_str());
+    if (!type)
+      return octave_value("<unknown>");
+    return octave_value(type->name);
+  }
+
+  octave_value_list swig_this(const octave_value_list &args, int nargout) {
+    if (args.length() != 1) {
+      error("swig_typeinfo must be called with only a single object");
+      return octave_value_list();
+    }
+    if (args(0).is_matrix_type() && args(0).rows() == 0 && args(0).columns() == 0)
+      return octave_value(octave_uint64(0));
+    octave_swig_type *ost = Swig::swig_value_deref(args(0));
+    if (!ost) {
+      error("object is not a swig_ref");
+      return octave_value_list();
+    }
+    return octave_value(octave_uint64((unsigned long long) ost->swig_this()));
+  }
+
+#define SWIG_DIRECTORS
+
+namespace Swig {
+  class Director {
+    octave_swig_type *self;
+    bool disowned;
+
+    Director(const Director &x);
+    Director &operator=(const Director &rhs);
+  public:
+
+    Director(void *vptr):self(0), disowned(false) {
+      set_rtdir(vptr, this);
+    }
+
+    ~Director() {
+      swig_director_destroyed(self, this);
+      if (disowned)
+	self->decref();
+    }
+
+    void swig_set_self(octave_swig_type *new_self) {
+      assert(!disowned);
+      self = new_self;
+    }
+
+    octave_swig_type *swig_get_self() const {
+      return self;
+    }
+
+    void swig_disown() {
+      if (disowned)
+	return;
+      disowned = true;
+      self->incref();
+    }
+  };
+
+  struct DirectorTypeMismatchException {
+    static void raise(const char *msg) {
+      // ... todo
+      throw(DirectorTypeMismatchException());
+    }
+
+    static void raise(const octave_value &ov, const char *msg) {
+      // ... todo
+      raise(msg);
+    }
+  };
+  struct DirectorPureVirtualException {
+    static void raise(const char *msg) {
+      // ... todo
+      throw(DirectorPureVirtualException());
+    }
+
+    static void raise(const octave_value &ov, const char *msg) {
+      // ... todo
+      raise(msg);
+    }
+  };
+
+}
+
+  SWIGRUNTIME void swig_acquire_ownership(void *vptr) {
+    //  assert(0);
+    // ... todo
+  }
+
+  SWIGRUNTIME void swig_acquire_ownership_array(void *vptr) {
+    //  assert(0);
+    // ... todo
+  }
+
+  SWIGRUNTIME void swig_acquire_ownership_obj(void *vptr, int own) {
+    //  assert(0);
+    // ... todo
+  }
+
+  namespace Swig {
+    SWIGRUNTIME void swig_director_destroyed(octave_swig_type *self, Director *d) {
+      self->director_destroyed(d);
+    }
+
+    SWIGRUNTIME void swig_director_set_self(Director *d, octave_swig_type *self) {
+      d->swig_set_self(self);
+    }
+
+    SWIGRUNTIME octave_base_value *swig_value_ref(octave_swig_type *ost) {
+      return new octave_swig_ref(ost);
+    }
+
+    SWIGRUNTIME octave_swig_type *swig_value_deref(octave_value ov) {
+      if (ov.is_cell() && ov.rows() == 1 && ov.columns() == 1)
+	ov = ov.cell_value()(0);
+      return swig_value_deref(*ov.internal_rep());
+    }
+
+    SWIGRUNTIME octave_swig_type *swig_value_deref(const octave_base_value &ov) {
+      if (ov.type_id() != octave_swig_ref::static_type_id())
+	return 0;
+      const octave_swig_ref *osr = static_cast < const octave_swig_ref *>(&ov);
+      return osr->get_ptr();
+    }
+
+  }
+
+#define swig_unary_op(name) \
+SWIGRUNTIME octave_value swig_unary_op_##name(const octave_base_value &x) { \
+  return octave_swig_type::dispatch_unary_op(x,#name); \
+}
+#define swig_binary_op(name) \
+SWIGRUNTIME octave_value swig_binary_op_##name(const octave_base_value&lhs,const octave_base_value &rhs) { \
+  return octave_swig_type::dispatch_binary_op(lhs,rhs,#name); \
+}
+#define swigreg_unary_op(name) \
+if (!octave_value_typeinfo::lookup_unary_op(octave_value::op_##name,tid)) \
+octave_value_typeinfo::register_unary_op(octave_value::op_##name,tid,swig_unary_op_##name);
+#define swigreg_binary_op(name) \
+if (!octave_value_typeinfo::lookup_binary_op(octave_value::op_##name,tid1,tid2)) \
+octave_value_typeinfo::register_binary_op(octave_value::op_##name,tid1,tid2,swig_binary_op_##name);
+
+  swig_unary_op(not);
+  swig_unary_op(uplus);
+  swig_unary_op(uminus);
+  swig_unary_op(transpose);
+  swig_unary_op(hermitian);
+  swig_unary_op(incr);
+  swig_unary_op(decr);
+
+  swig_binary_op(add);
+  swig_binary_op(sub);
+  swig_binary_op(mul);
+  swig_binary_op(div);
+  swig_binary_op(pow);
+  swig_binary_op(ldiv);
+  swig_binary_op(lshift);
+  swig_binary_op(rshift);
+  swig_binary_op(lt);
+  swig_binary_op(le);
+  swig_binary_op(eq);
+  swig_binary_op(ge);
+  swig_binary_op(gt);
+  swig_binary_op(ne);
+  swig_binary_op(el_mul);
+  swig_binary_op(el_div);
+  swig_binary_op(el_pow);
+  swig_binary_op(el_ldiv);
+  swig_binary_op(el_and);
+  swig_binary_op(el_or);
+
+  SWIGRUNTIME void SWIG_InstallUnaryOps(int tid) {
+    swigreg_unary_op(not);
+    swigreg_unary_op(uplus);
+    swigreg_unary_op(uminus);
+    swigreg_unary_op(transpose);
+    swigreg_unary_op(hermitian);
+    swigreg_unary_op(incr);
+    swigreg_unary_op(decr);
+  }
+  SWIGRUNTIME void SWIG_InstallBinaryOps(int tid1, int tid2) {
+    swigreg_binary_op(add);
+    swigreg_binary_op(sub);
+    swigreg_binary_op(mul);
+    swigreg_binary_op(div);
+    swigreg_binary_op(pow);
+    swigreg_binary_op(ldiv);
+    swigreg_binary_op(lshift);
+    swigreg_binary_op(rshift);
+    swigreg_binary_op(lt);
+    swigreg_binary_op(le);
+    swigreg_binary_op(eq);
+    swigreg_binary_op(ge);
+    swigreg_binary_op(gt);
+    swigreg_binary_op(ne);
+    swigreg_binary_op(el_mul);
+    swigreg_binary_op(el_div);
+    swigreg_binary_op(el_pow);
+    swigreg_binary_op(el_ldiv);
+    swigreg_binary_op(el_and);
+    swigreg_binary_op(el_or);
+  }
+  SWIGRUNTIME void SWIG_InstallOps(int tid) {
+    // here we assume that tid are conseq integers increasing from zero, and 
+    // that our tid is the last one. might be better to have explicit string 
+    // list of types we should bind to, and use lookup_type to resolve their tid.
+
+    SWIG_InstallUnaryOps(tid);
+    SWIG_InstallBinaryOps(tid, tid);
+    for (int j = 0; j < tid; ++j) {
+      SWIG_InstallBinaryOps(j, tid);
+      SWIG_InstallBinaryOps(tid, j);
+    }
+  }
+
+SWIGRUNTIME octave_value SWIG_Octave_NewPointerObj(void *ptr, swig_type_info *type, int flags) {
+  int own = (flags &SWIG_POINTER_OWN) ? SWIG_POINTER_OWN : 0;
+
+  Swig::Director *d = Swig::get_rtdir(ptr);
+  if (d && d->swig_get_self())
+    return d->swig_get_self()->as_value();
+  return Swig::swig_value_ref(new octave_swig_type(ptr, type, own));
+}
+
+SWIGRUNTIME int SWIG_Octave_ConvertPtrAndOwn(octave_value ov, void **ptr, swig_type_info *type, int flags, int *own) {
+  if (ov.is_cell() && ov.rows() == 1 && ov.columns() == 1)
+    ov = ov.cell_value()(0);
+  if (!ov.is_defined() ||
+      (ov.is_matrix_type() && ov.rows() == 0 && ov.columns() == 0) ) {
+    if (ptr)
+      *ptr = 0;
+    return SWIG_OK;
+  }
+  if (ov.type_id() != octave_swig_ref::static_type_id())
+    return SWIG_ERROR;
+  octave_swig_ref *osr = static_cast < octave_swig_ref *>(ov.internal_rep());
+  octave_swig_type *ost = osr->get_ptr();
+  void *vptr = ost->cast(type, own, flags);
+  if (!vptr)
+    return SWIG_ERROR;
+  if (ptr)
+    *ptr = vptr;
+  return SWIG_OK;
+}
+
+SWIGRUNTIME octave_value SWIG_Octave_NewPackedObj(void *ptr, size_t sz, swig_type_info *type) {
+  return new octave_swig_packed(type, (char *) ptr, sz);
+}
+
+SWIGRUNTIME int SWIG_Octave_ConvertPacked(const octave_value &ov, void *ptr, size_t sz, swig_type_info *type) {
+  if (!ov.is_defined())
+    return SWIG_ERROR;
+  if (ov.type_id() != octave_swig_packed::static_type_id())
+    return SWIG_ERROR;
+  octave_swig_packed *ost = static_cast < octave_swig_packed *>(ov.internal_rep());
+  return ost->copy(type, (char *) ptr, sz) ? SWIG_OK : SWIG_ERROR;
+}
+
+void SWIG_Octave_SetConstant(octave_swig_type *module_ns, const std::string &name, const octave_value &ov) {
+  module_ns->assign(name, ov);
+}
+
+SWIGRUNTIME swig_module_info *SWIG_Octave_GetModule(void *clientdata) {
+  octave_value ov = get_global_value("__SWIG_MODULE__" SWIG_TYPE_TABLE_NAME SWIG_RUNTIME_VERSION, true);
+  if (!ov.is_defined() ||
+      ov.type_id() != octave_swig_packed::static_type_id())
+    return 0;
+  const octave_swig_packed* osp = 
+    static_cast < const octave_swig_packed *> (ov.internal_rep());
+  swig_module_info *pointer = 0;
+  osp->copy(0, &pointer, sizeof(swig_module_info *));
+  return pointer;
+}
+
+SWIGRUNTIME void SWIG_Octave_SetModule(void *clientdata, swig_module_info *pointer) {
+  octave_value ov = new octave_swig_packed(0, &pointer, sizeof(swig_module_info *));
+  const char *module_var = "__SWIG_MODULE__" SWIG_TYPE_TABLE_NAME SWIG_RUNTIME_VERSION;
+#if USE_OCTAVE_API_VERSION<37
+  link_to_global_variable(curr_sym_tab->lookup(module_var, true));
+#else
+  symbol_table::varref(module_var);
+  symbol_table::mark_global(module_var);
+#endif
+  set_global_value(module_var, ov);
+}
+
+
+
+#define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0) 
+
+#define SWIG_contract_assert(expr, msg) if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } else 
+
+
+
+/* -------- TYPES TABLE (BEGIN) -------- */
+
+#define SWIGTYPE_p_HMDT swig_types[0]
+#define SWIGTYPE_p_HMGL swig_types[1]
+#define SWIGTYPE_p_char swig_types[2]
+#define SWIGTYPE_p_double swig_types[3]
+#define SWIGTYPE_p_float swig_types[4]
+#define SWIGTYPE_p_gsl_matrix swig_types[5]
+#define SWIGTYPE_p_gsl_vector swig_types[6]
+#define SWIGTYPE_p_int swig_types[7]
+#define SWIGTYPE_p_mglData swig_types[8]
+#define SWIGTYPE_p_mglGraph swig_types[9]
+#define SWIGTYPE_p_mglParse swig_types[10]
+#define SWIGTYPE_p_mglPoint swig_types[11]
+#define SWIGTYPE_p_mreal swig_types[12]
+#define SWIGTYPE_p_p_double swig_types[13]
+#define SWIGTYPE_p_p_float swig_types[14]
+#define SWIGTYPE_p_p_p_double swig_types[15]
+#define SWIGTYPE_p_p_p_float swig_types[16]
+#define SWIGTYPE_p_wchar_t swig_types[17]
+static swig_type_info *swig_types[19];
+static swig_module_info swig_module = {swig_types, 18, 0, 0, 0, 0};
+#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
+#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
+
+/* -------- TYPES TABLE (END) -------- */
+
+
+#define SWIGVERSION 0x010340 
+#define SWIG_VERSION SWIGVERSION
+
+
+#define SWIG_as_voidptr(a) (void *)((const void *)(a)) 
+#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) 
+
+
+#include <stdexcept>
+
+
+#define SWIG_FILE_WITH_INIT
+//#include "mgl/mgl_c.h"
+#include "mgl/mgl_w.h"
+
+
+  SWIGINTERNINLINE octave_value SWIG_From_double    (double value)
+    {    
+      return octave_value(value);
+    }
+
+
+SWIGINTERNINLINE octave_value
+SWIG_From_float  (float value)
+{    
+  return SWIG_From_double  (value);
+}
+
+
+  SWIGINTERN int SWIG_AsVal_double (const octave_value& ov, double* val)
+    {
+      if (!ov.is_scalar_type())
+	return SWIG_TypeError;
+      if (ov.is_complex_scalar())
+	return SWIG_TypeError;
+      if (val)
+	*val = ov.double_value();
+      return SWIG_OK;
+    }
+
+
+#include <limits.h>
+#if !defined(SWIG_NO_LLONG_MAX)
+# if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__)
+#   define LLONG_MAX __LONG_LONG_MAX__
+#   define LLONG_MIN (-LLONG_MAX - 1LL)
+#   define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL)
+# endif
+#endif
+
+
+  SWIGINTERN int SWIG_AsVal_long (const octave_value& ov, long* val)
+    {
+      if (!ov.is_scalar_type())
+	return SWIG_TypeError;
+      if (ov.is_complex_scalar())
+	return SWIG_TypeError;
+      if (ov.is_double_type()||ov.is_single_type()) {
+	double v=ov.double_value();
+	if (v!=floor(v))
+	  return SWIG_TypeError;
+      }
+      if (val)
+	*val = ov.long_value();
+      return SWIG_OK;
+    }
+
+
+SWIGINTERN int
+SWIG_AsVal_int (octave_value obj, int *val)
+{
+  long v;
+  int res = SWIG_AsVal_long (obj, &v);
+  if (SWIG_IsOK(res)) {
+    if ((v < INT_MIN || v > INT_MAX)) {
+      return SWIG_OverflowError;
+    } else {
+      if (val) *val = (int)(v);
+    }
+  }  
+  return res;
+}
+
+
+SWIGINTERN int
+SWIG_AsVal_bool (const octave_value& ov, bool *val)
+{
+  if (!ov.is_bool_type())
+    return SWIG_ERROR;
+  if (val)
+    *val = ov.bool_value();
+  return SWIG_OK;
+}
+
+
+SWIGINTERN int
+SWIG_AsCharPtrAndSize(octave_value ov, char** cptr, size_t* psize, int *alloc)
+{
+  if (ov.is_cell() && ov.rows() == 1 && ov.columns() == 1)
+    ov = ov.cell_value()(0);
+  if (!ov.is_string())
+    return SWIG_TypeError;
+  
+  std::string str=ov.string_value();
+  size_t len=str.size();
+  char* cstr=(char*)str.c_str();
+  if (alloc) {
+    *cptr = (char*)(memcpy((new char[len + 1]), cstr, sizeof(char)*(len + 1)));
+    *alloc = SWIG_NEWOBJ;
+  } else if (cptr)
+    *cptr = cstr;
+  if (psize)
+    *psize = len + 1;
+  return SWIG_OK;
+}
+
+
+
+
+
+SWIGINTERNINLINE octave_value
+  SWIG_From_bool  (bool value)
+{
+  return octave_value(value);
+}
+
+
+SWIGINTERN int
+SWIG_AsCharArray(octave_value obj, char *val, size_t size)
+{ 
+  char* cptr = 0; size_t csize = 0; int alloc = SWIG_OLDOBJ;
+  int res = SWIG_AsCharPtrAndSize(obj, &cptr, &csize, &alloc);
+  if (SWIG_IsOK(res)) {
+    if ((csize == size + 1) && cptr && !(cptr[csize-1])) --csize;
+    if (csize <= size) {
+      if (val) {
+	if (csize) memcpy(val, cptr, csize*sizeof(char));
+	if (csize < size) memset(val + csize, 0, (size - csize)*sizeof(char));
+      }
+      if (alloc == SWIG_NEWOBJ) {
+	delete[] cptr;
+	res = SWIG_DelNewMask(res);
+      }      
+      return res;
+    }
+    if (alloc == SWIG_NEWOBJ) delete[] cptr;
+  }
+  return SWIG_TypeError;
+}
+
+
+SWIGINTERN int
+SWIG_AsVal_char (octave_value obj, char *val)
+{    
+  int res = SWIG_AsCharArray(obj, val, 1);
+  if (!SWIG_IsOK(res)) {
+    long v;
+    res = SWIG_AddCast(SWIG_AsVal_long (obj, &v));
+    if (SWIG_IsOK(res)) {
+      if ((CHAR_MIN <= v) && (v <= CHAR_MAX)) {
+	if (val) *val = (char)(v);
+      } else {
+	res = SWIG_OverflowError;
+      }
+    }
+  }
+  return res;
+}
+
+
+  SWIGINTERNINLINE octave_value SWIG_From_long    (long value)
+    {    
+      return octave_value(value);
+    }
+
+
+SWIGINTERNINLINE octave_value
+SWIG_From_int  (int value)
+{    
+  return SWIG_From_long  (value);
+}
+
+SWIGINTERN float mglData___getitem__(mglData *self,int i){	return self->GetVal(i);	}
+SWIGINTERN float mglData___paren(mglData *self,int i){	return self->GetVal(i);	}
+
+#include <float.h>
+
+
+SWIGINTERN int
+SWIG_AsVal_float (octave_value obj, float *val)
+{
+  double v;
+  int res = SWIG_AsVal_double (obj, &v);
+  if (SWIG_IsOK(res)) {
+    if ((v < -FLT_MAX || v > FLT_MAX)) {
+      return SWIG_OverflowError;
+    } else {
+      if (val) *val = (float)(v);
+    }
+  }  
+  return res;
+}
+
+SWIGINTERN void mglData___setitem__(mglData *self,int i,float y){	self->SetVal(y,i);	}
+SWIGINTERN void mglData___paren_asgn(mglData *self,int i,float y){	self->SetVal(y,i);	}
+
+SWIGINTERN swig_type_info*
+SWIG_pchar_descriptor(void)
+{
+  static int init = 0;
+  static swig_type_info* info = 0;
+  if (!init) {
+    info = SWIG_TypeQuery("_p_char");
+    init = 1;
+  }
+  return info;
+}
+
+
+SWIGINTERNINLINE octave_value
+SWIG_FromCharPtrAndSize(const char* carray, size_t size)
+{
+  return std::string(carray,carray+size);
+}
+
+
+SWIGINTERNINLINE octave_value 
+SWIG_FromCharPtr(const char *cptr)
+{ 
+  return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0));
+}
+
+const char* _wrap_mglGraph_Flush_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Flush (@var{self})\n\
+ at var{self} is of type mglGraph. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Squeeze_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Squeeze (@var{self}, @var{rx})\n\
+ at var{self} is of type mglData. @var{rx} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_QuadPlot_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} QuadPlot (@var{self}, @var{nums}, @var{x}, @var{y})\n\
+ at var{self} is of type mglGraph. @var{nums} is of type mglData. @var{x} is of type mglData. @var{y} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Combine_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = Combine (@var{self}, @var{d})\n\
+ at var{self} is of type mglData. @var{d} is of type mglData. @var{retval} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_GetWarn_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = GetWarn (@var{self})\n\
+ at var{self} is of type mglGraph. @var{retval} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_CalcScr_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = CalcScr (@var{self}, @var{p})\n\
+ at var{self} is of type mglGraph. @var{p} is of type mglPoint. @var{retval} is of type mglPoint. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetZRange_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetZRange (@var{self}, @var{dat})\n\
+ at var{self} is of type mglGraph. @var{dat} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Map_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Map (@var{self}, @var{a}, @var{b})\n\
+ at var{self} is of type mglGraph. @var{a} is of type mglData. @var{b} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Text_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Text (@var{self}, @var{y}, @var{text})\n\
+ at var{self} is of type mglGraph. @var{y} is of type mglData. @var{text} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Cont3_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Cont3 (@var{self}, @var{a}, @var{dir}, @var{sVal})\n\
+ at var{self} is of type mglGraph. @var{a} is of type mglData. @var{dir} is of type char. @var{sVal} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_NewFrame_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} NewFrame (@var{self})\n\
+ at var{self} is of type mglGraph. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Curve_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Curve (@var{self}, @var{x1}, @var{y1}, @var{z1}, @var{dx1}, @var{dy1}, @var{dz1}, @var{x2}, @var{y2}, @var{z2}, @var{dx2}, @var{dy2}, @var{dz2})\n\
+ at var{self} is of type mglGraph. @var{x1} is of type float. @var{y1} is of type float. @var{z1} is of type float. @var{dx1} is of type float. @var{dy1} is of type float. @var{dz1} is of type float. @var{x2} is of type float. @var{y2} is of type float. @var{z2} is of type float. @var{dx2} is of type float. @var{dy2} is of type float. @var{dz2} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_TriPlot_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} TriPlot (@var{self}, @var{nums}, @var{x}, @var{y})\n\
+ at var{self} is of type mglGraph. @var{nums} is of type mglData. @var{x} is of type mglData. @var{y} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Spline_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = Spline (@var{self}, @var{x})\n\
+ at var{self} is of type mglData. @var{x} is of type double. @var{retval} is of type double. \n\
+ at end deftypefn";
+const char* _wrap_mglParse_RestoreOnce_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} RestoreOnce (@var{self})\n\
+ at var{self} is of type mglParse. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetZTT_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetZTT (@var{self}, @var{templ})\n\
+ at var{self} is of type mglGraph. @var{templ} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetPalColor_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetPalColor (@var{self}, @var{n}, @var{r}, @var{g}, @var{b})\n\
+ at var{self} is of type mglGraph. @var{n} is of type int. @var{r} is of type float. @var{g} is of type float. @var{b} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Tens_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Tens (@var{self}, @var{y}, @var{c})\n\
+ at var{self} is of type mglGraph. @var{y} is of type mglData. @var{c} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglData_NormSl_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} NormSl (@var{self})\n\
+ at var{self} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Fall_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Fall (@var{self}, @var{z})\n\
+ at var{self} is of type mglGraph. @var{z} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_STFA_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} STFA (@var{self}, @var{re}, @var{im}, @var{dn})\n\
+ at var{self} is of type mglGraph. @var{re} is of type mglData. @var{im} is of type mglData. @var{dn} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Smooth_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Smooth (@var{self})\n\
+ at var{self} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_CloseGIF_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} CloseGIF (@var{self})\n\
+ at var{self} is of type mglGraph. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetTransparent_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetTransparent (@var{self}, @var{enable})\n\
+ at var{self} is of type mglGraph. @var{enable} is of type bool. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Legend_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Legend (@var{self})\n\
+ at var{self} is of type mglGraph. \n\
+ at end deftypefn";
+const char* _wrap_mglData_SetColumnId_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetColumnId (@var{self}, @var{ids})\n\
+ at var{self} is of type mglData. @var{ids} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Barh_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Barh (@var{self}, @var{v})\n\
+ at var{self} is of type mglGraph. @var{v} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_delete_mglGraph_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} mglGraph (@var{self})\n\
+ at var{self} is of type mglGraph. \n\
+ at end deftypefn";
+const char* _wrap_new_mglGraph_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = mglGraph ()\n\
+ at var{retval} is of type mglGraph. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_CopyFont_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} CopyFont (@var{self}, @var{gr})\n\
+ at var{self} is of type mglGraph. @var{gr} is of type mglGraph. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Plot_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Plot (@var{self}, @var{y})\n\
+ at var{self} is of type mglGraph. @var{y} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_ContA_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} ContA (@var{self}, @var{a})\n\
+ at var{self} is of type mglGraph. @var{a} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Belt_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Belt (@var{self}, @var{z})\n\
+ at var{self} is of type mglGraph. @var{z} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Traj_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Traj (@var{self}, @var{x}, @var{y}, @var{z}, @var{ax}, @var{ay}, @var{az})\n\
+ at var{self} is of type mglGraph. @var{x} is of type mglData. @var{y} is of type mglData. @var{z} is of type mglData. @var{ax} is of type mglData. @var{ay} is of type mglData. @var{az} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_WritePNG_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} WritePNG (@var{self}, @var{fname})\n\
+ at var{self} is of type mglGraph. @var{fname} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Delete_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Delete (@var{self}, @var{dir})\n\
+ at var{self} is of type mglData. @var{dir} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Tube_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Tube (@var{self}, @var{y}, @var{r})\n\
+ at var{self} is of type mglGraph. @var{y} is of type mglData. @var{r} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_ContD_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} ContD (@var{self}, @var{z})\n\
+ at var{self} is of type mglGraph. @var{z} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Create_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Create (@var{self}, @var{nx})\n\
+ at var{self} is of type mglData. @var{nx} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Rearrange_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Rearrange (@var{self}, @var{mx})\n\
+ at var{self} is of type mglData. @var{mx} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_ContF_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} ContF (@var{self}, @var{z})\n\
+ at var{self} is of type mglGraph. @var{z} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglData_v_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = v (@var{self}, @var{i})\n\
+ at var{self} is of type mglData. @var{i} is of type int. @var{retval} is of type double. \n\
+ at end deftypefn";
+const char* _wrap_mglData_GetNx_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = GetNx (@var{self})\n\
+ at var{self} is of type mglData. @var{retval} is of type long. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Chart_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Chart (@var{self}, @var{a})\n\
+ at var{self} is of type mglGraph. @var{a} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetTickStl_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetTickStl (@var{self}, @var{stl})\n\
+ at var{self} is of type mglGraph. @var{stl} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglData_GetNy_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = GetNy (@var{self})\n\
+ at var{self} is of type mglData. @var{retval} is of type long. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Radar_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Radar (@var{self}, @var{a})\n\
+ at var{self} is of type mglGraph. @var{a} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetMarkSize_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetMarkSize (@var{self}, @var{size})\n\
+ at var{self} is of type mglGraph. @var{size} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglData_GetNz_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = GetNz (@var{self})\n\
+ at var{self} is of type mglData. @var{retval} is of type long. \n\
+ at end deftypefn";
+const char* _wrap_mglData___paren_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = __paren (@var{self}, @var{i})\n\
+ at var{self} is of type mglData. @var{i} is of type int. @var{retval} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Bars_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Bars (@var{self}, @var{y})\n\
+ at var{self} is of type mglGraph. @var{y} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Diff_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Diff (@var{self}, @var{v1}, @var{v2}, @var{v3})\n\
+ at var{self} is of type mglData. @var{v1} is of type mglData. @var{v2} is of type mglData. @var{v3} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglParse_AddParam_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} AddParam (@var{self}, @var{id}, @var{str})\n\
+ at var{self} is of type mglParse. @var{id} is of type int. @var{str} is of type wchar_t. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_WriteJPEG_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} WriteJPEG (@var{self}, @var{fname})\n\
+ at var{self} is of type mglGraph. @var{fname} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_RotateN_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} RotateN (@var{self}, @var{Tet}, @var{x}, @var{y}, @var{z})\n\
+ at var{self} is of type mglGraph. @var{Tet} is of type float. @var{x} is of type float. @var{y} is of type float. @var{z} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetXRange_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetXRange (@var{self}, @var{dat})\n\
+ at var{self} is of type mglGraph. @var{dat} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_GetRGB_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} GetRGB (@var{self}, @var{imgdata}, @var{imglen})\n\
+ at var{self} is of type mglGraph. @var{imgdata} is of type char. @var{imglen} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetTranspType_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetTranspType (@var{self}, @var{type})\n\
+ at var{self} is of type mglGraph. @var{type} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Momentum_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = Momentum (@var{self}, @var{dir}, @var{m}, @var{w})\n\
+ at var{self} is of type mglData. @var{dir} is of type char. @var{m} is of type float. @var{w} is of type float. @var{retval} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_TileS_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} TileS (@var{self}, @var{z}, @var{r})\n\
+ at var{self} is of type mglGraph. @var{z} is of type mglData. @var{r} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetLegendMarks_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetLegendMarks (@var{self}, @var{num})\n\
+ at var{self} is of type mglGraph. @var{num} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Zoom_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Zoom (@var{self}, @var{x1}, @var{y1}, @var{x2}, @var{y2})\n\
+ at var{self} is of type mglGraph. @var{x1} is of type float. @var{y1} is of type float. @var{x2} is of type float. @var{y2} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetCut_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetCut (@var{self}, @var{cut})\n\
+ at var{self} is of type mglGraph. @var{cut} is of type bool. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetLegendBox_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetLegendBox (@var{self}, @var{enable})\n\
+ at var{self} is of type mglGraph. @var{enable} is of type bool. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_PutsFit_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} PutsFit (@var{self}, @var{x}, @var{y}, @var{z})\n\
+ at var{self} is of type mglGraph. @var{x} is of type float. @var{y} is of type float. @var{z} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SubPlot_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SubPlot (@var{self}, @var{nx}, @var{ny}, @var{m}, @var{style})\n\
+ at var{self} is of type mglGraph. @var{nx} is of type int. @var{ny} is of type int. @var{m} is of type int. @var{style} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetTickLen_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetTickLen (@var{self}, @var{len})\n\
+ at var{self} is of type mglGraph. @var{len} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_InPlot_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} InPlot (@var{self}, @var{x1}, @var{x2}, @var{y1}, @var{y2})\n\
+ at var{self} is of type mglGraph. @var{x1} is of type float. @var{x2} is of type float. @var{y1} is of type float. @var{y2} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Surf_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Surf (@var{self}, @var{z})\n\
+ at var{self} is of type mglGraph. @var{z} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Extend_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Extend (@var{self}, @var{n1})\n\
+ at var{self} is of type mglData. @var{n1} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Grid_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Grid (@var{self}, @var{z})\n\
+ at var{self} is of type mglGraph. @var{z} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_ContX_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} ContX (@var{self}, @var{v}, @var{a})\n\
+ at var{self} is of type mglGraph. @var{v} is of type mglData. @var{a} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_ContY_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} ContY (@var{self}, @var{v}, @var{a})\n\
+ at var{self} is of type mglGraph. @var{v} is of type mglData. @var{a} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Area_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Area (@var{self}, @var{y})\n\
+ at var{self} is of type mglGraph. @var{y} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_ContZ_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} ContZ (@var{self}, @var{v}, @var{a})\n\
+ at var{self} is of type mglGraph. @var{v} is of type mglData. @var{a} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetFunc_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetFunc (@var{self}, @var{EqX}, @var{EqY})\n\
+ at var{self} is of type mglGraph. @var{EqX} is of type char. @var{EqY} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Cone_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Cone (@var{self}, @var{x1}, @var{y1}, @var{z1}, @var{x2}, @var{y2}, @var{z2}, @var{r1})\n\
+ at var{self} is of type mglGraph. @var{x1} is of type float. @var{y1} is of type float. @var{z1} is of type float. @var{x2} is of type float. @var{y2} is of type float. @var{z2} is of type float. @var{r1} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Boxs_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Boxs (@var{self}, @var{z})\n\
+ at var{self} is of type mglGraph. @var{z} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_TriCont_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} TriCont (@var{self}, @var{nums}, @var{x}, @var{y}, @var{z}, @var{a})\n\
+ at var{self} is of type mglGraph. @var{nums} is of type mglData. @var{x} is of type mglData. @var{y} is of type mglData. @var{z} is of type mglData. @var{a} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Set_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Set (@var{self}, @var{str}, @var{NX})\n\
+ at var{self} is of type mglData. @var{str} is of type char. @var{NX} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Clf_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Clf (@var{self})\n\
+ at var{self} is of type mglGraph. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Surf3_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Surf3 (@var{self}, @var{a})\n\
+ at var{self} is of type mglGraph. @var{a} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Crust_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Crust (@var{self}, @var{x}, @var{y}, @var{z})\n\
+ at var{self} is of type mglGraph. @var{x} is of type mglData. @var{y} is of type mglData. @var{z} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_RestoreFont_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} RestoreFont (@var{self})\n\
+ at var{self} is of type mglGraph. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_CalcXYZ_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = CalcXYZ (@var{self}, @var{xs}, @var{ys})\n\
+ at var{self} is of type mglGraph. @var{xs} is of type int. @var{ys} is of type int. @var{retval} is of type mglPoint. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Dew_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Dew (@var{self}, @var{ax}, @var{ay})\n\
+ at var{self} is of type mglGraph. @var{ax} is of type mglData. @var{ay} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Sew_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Sew (@var{self})\n\
+ at var{self} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglData___paren_asgn_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} __paren_asgn (@var{self}, @var{i}, @var{y})\n\
+ at var{self} is of type mglData. @var{i} is of type int. @var{y} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Fill_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Fill (@var{self}, @var{u}, @var{eq}, @var{v}, @var{w})\n\
+ at var{self} is of type mglGraph. @var{u} is of type mglData. @var{eq} is of type char. @var{v} is of type mglData. @var{w} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_LoadFont_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} LoadFont (@var{self}, @var{name})\n\
+ at var{self} is of type mglGraph. @var{name} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Perspective_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Perspective (@var{self}, @var{val})\n\
+ at var{self} is of type mglGraph. @var{val} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Minimal_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = Minimal (@var{self}, @var{x}, @var{y}, @var{z})\n\
+ at var{self} is of type mglData. @var{x} is of type float. @var{y} is of type float. @var{z} is of type float. @var{retval} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Min_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = Min (@var{self}, @var{dir})\n\
+ at var{self} is of type mglData. @var{dir} is of type char. @var{retval} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetFontSize_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetFontSize (@var{self}, @var{size})\n\
+ at var{self} is of type mglGraph. @var{size} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_TriContV_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} TriContV (@var{self}, @var{v}, @var{nums}, @var{x}, @var{y}, @var{z}, @var{a})\n\
+ at var{self} is of type mglGraph. @var{v} is of type mglData. @var{nums} is of type mglData. @var{x} is of type mglData. @var{y} is of type mglData. @var{z} is of type mglData. @var{a} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Cont_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Cont (@var{self}, @var{z})\n\
+ at var{self} is of type mglGraph. @var{z} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_VectC_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} VectC (@var{self}, @var{ax}, @var{ay}, @var{az})\n\
+ at var{self} is of type mglGraph. @var{ax} is of type mglData. @var{ay} is of type mglData. @var{az} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Pipe_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Pipe (@var{self}, @var{ax}, @var{ay}, @var{az})\n\
+ at var{self} is of type mglGraph. @var{ax} is of type mglData. @var{ay} is of type mglData. @var{az} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_EndFrame_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} EndFrame (@var{self})\n\
+ at var{self} is of type mglGraph. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SurfA_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SurfA (@var{self}, @var{z}, @var{c})\n\
+ at var{self} is of type mglGraph. @var{z} is of type mglData. @var{c} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Sum_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = Sum (@var{self}, @var{dir})\n\
+ at var{self} is of type mglData. @var{dir} is of type char. @var{retval} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SurfC_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SurfC (@var{self}, @var{z}, @var{c})\n\
+ at var{self} is of type mglGraph. @var{z} is of type mglData. @var{c} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglData_SinFFT_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SinFFT (@var{self}, @var{dir})\n\
+ at var{self} is of type mglData. @var{dir} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Resize_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = Resize (@var{self}, @var{mx})\n\
+ at var{self} is of type mglData. @var{mx} is of type int. @var{retval} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Drop_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Drop (@var{self}, @var{x0}, @var{y0}, @var{z0}, @var{dx}, @var{dy}, @var{dz}, @var{r})\n\
+ at var{self} is of type mglGraph. @var{x0} is of type float. @var{y0} is of type float. @var{z0} is of type float. @var{dx} is of type float. @var{dy} is of type float. @var{dz} is of type float. @var{r} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetAlphaDef_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetAlphaDef (@var{self}, @var{alpha})\n\
+ at var{self} is of type mglGraph. @var{alpha} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_VectL_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} VectL (@var{self}, @var{ax}, @var{ay}, @var{az})\n\
+ at var{self} is of type mglGraph. @var{ax} is of type mglData. @var{ay} is of type mglData. @var{az} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Torus_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Torus (@var{self}, @var{r}, @var{z})\n\
+ at var{self} is of type mglGraph. @var{r} is of type mglData. @var{z} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglParse_Execute_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Execute (@var{self}, @var{gr}, @var{str})\n\
+ at var{self} is of type mglParse. @var{gr} is of type mglGraph. @var{str} is of type wchar_t. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetBaseLineWidth_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetBaseLineWidth (@var{self}, @var{width})\n\
+ at var{self} is of type mglGraph. @var{width} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Fill_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Fill (@var{self}, @var{x1}, @var{x2})\n\
+ at var{self} is of type mglData. @var{x1} is of type double. @var{x2} is of type double. \n\
+ at end deftypefn";
+const char* _wrap_mglParse_Parse_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = Parse (@var{self}, @var{gr}, @var{str}, @var{pos})\n\
+ at var{self} is of type mglParse. @var{gr} is of type mglGraph. @var{str} is of type wchar_t. @var{pos} is of type int. @var{retval} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Label_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Label (@var{self}, @var{x}, @var{y}, @var{text})\n\
+ at var{self} is of type mglGraph. @var{x} is of type double. @var{y} is of type double. @var{text} is of type wchar_t. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Mark_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Mark (@var{self}, @var{y}, @var{r}, @var{pen})\n\
+ at var{self} is of type mglGraph. @var{y} is of type mglData. @var{r} is of type mglData. @var{pen} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_GetWidth_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = GetWidth (@var{self})\n\
+ at var{self} is of type mglGraph. @var{retval} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Stem_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Stem (@var{self}, @var{y})\n\
+ at var{self} is of type mglGraph. @var{y} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Alpha_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Alpha (@var{self}, @var{enable})\n\
+ at var{self} is of type mglGraph. @var{enable} is of type bool. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Read_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = Read (@var{self}, @var{fname}, @var{mx})\n\
+ at var{self} is of type mglData. @var{fname} is of type char. @var{mx} is of type int. @var{retval} is of type bool. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Step_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Step (@var{self}, @var{y})\n\
+ at var{self} is of type mglGraph. @var{y} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetFontDef_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetFontDef (@var{self}, @var{fnt})\n\
+ at var{self} is of type mglGraph. @var{fnt} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_WriteEPS_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} WriteEPS (@var{self}, @var{fname})\n\
+ at var{self} is of type mglGraph. @var{fname} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetXTT_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetXTT (@var{self}, @var{templ})\n\
+ at var{self} is of type mglGraph. @var{templ} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_TextMark_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} TextMark (@var{self}, @var{y}, @var{text})\n\
+ at var{self} is of type mglGraph. @var{y} is of type mglData. @var{text} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Surf3A_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Surf3A (@var{self}, @var{a}, @var{b})\n\
+ at var{self} is of type mglGraph. @var{a} is of type mglData. @var{b} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Grid3_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Grid3 (@var{self}, @var{a}, @var{dir}, @var{sVal})\n\
+ at var{self} is of type mglGraph. @var{a} is of type mglData. @var{dir} is of type char. @var{sVal} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_ContF3_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} ContF3 (@var{self}, @var{a}, @var{dir}, @var{sVal})\n\
+ at var{self} is of type mglGraph. @var{a} is of type mglData. @var{dir} is of type char. @var{sVal} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Surf3C_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Surf3C (@var{self}, @var{a}, @var{b})\n\
+ at var{self} is of type mglGraph. @var{a} is of type mglData. @var{b} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Crop_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Crop (@var{self}, @var{n1}, @var{n2})\n\
+ at var{self} is of type mglData. @var{n1} is of type int. @var{n2} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Save_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Save (@var{self}, @var{fname})\n\
+ at var{self} is of type mglData. @var{fname} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Roll_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Roll (@var{self}, @var{dir}, @var{num})\n\
+ at var{self} is of type mglData. @var{dir} is of type char. @var{num} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Dens3_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Dens3 (@var{self}, @var{a}, @var{dir}, @var{sVal})\n\
+ at var{self} is of type mglGraph. @var{a} is of type mglData. @var{dir} is of type char. @var{sVal} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Aspect_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Aspect (@var{self}, @var{Ax}, @var{Ay}, @var{Az})\n\
+ at var{self} is of type mglGraph. @var{Ax} is of type float. @var{Ay} is of type float. @var{Az} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetTuneTicks_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetTuneTicks (@var{self}, @var{tune})\n\
+ at var{self} is of type mglGraph. @var{tune} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_AdjustTicks_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} AdjustTicks (@var{self})\n\
+ at var{self} is of type mglGraph. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetTicks_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetTicks (@var{self}, @var{dir})\n\
+ at var{self} is of type mglGraph. @var{dir} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_BoxPlot_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} BoxPlot (@var{self}, @var{y})\n\
+ at var{self} is of type mglGraph. @var{y} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Integral_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Integral (@var{self}, @var{dir})\n\
+ at var{self} is of type mglData. @var{dir} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Fit2_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = Fit2 (@var{self}, @var{fit}, @var{z}, @var{eq}, @var{var}, @var{ini})\n\
+ at var{self} is of type mglGraph. @var{fit} is of type mglData. @var{z} is of type mglData. @var{eq} is of type char. @var{var} is of type char. @var{ini} is of type mglData. @var{retval} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_GetBGRN_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} GetBGRN (@var{self}, @var{imgdata}, @var{imglen})\n\
+ at var{self} is of type mglGraph. @var{imgdata} is of type char. @var{imglen} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_WriteSVG_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} WriteSVG (@var{self}, @var{fname})\n\
+ at var{self} is of type mglGraph. @var{fname} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Fit3_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = Fit3 (@var{self}, @var{fit}, @var{a}, @var{eq}, @var{var}, @var{ini})\n\
+ at var{self} is of type mglGraph. @var{fit} is of type mglData. @var{a} is of type mglData. @var{eq} is of type char. @var{var} is of type char. @var{ini} is of type mglData. @var{retval} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Axial_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Axial (@var{self}, @var{z})\n\
+ at var{self} is of type mglGraph. @var{z} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Self_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = Self (@var{self})\n\
+ at var{self} is of type mglGraph. @var{retval} is of type HMGL. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetAmbient_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetAmbient (@var{self}, @var{i})\n\
+ at var{self} is of type mglGraph. @var{i} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglData_FindAny_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = FindAny (@var{self}, @var{cond})\n\
+ at var{self} is of type mglData. @var{cond} is of type char. @var{retval} is of type bool. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetCTT_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetCTT (@var{self}, @var{templ})\n\
+ at var{self} is of type mglGraph. @var{templ} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Norm_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Norm (@var{self})\n\
+ at var{self} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetCRange_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetCRange (@var{self}, @var{dat})\n\
+ at var{self} is of type mglGraph. @var{dat} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Dens_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Dens (@var{self}, @var{z})\n\
+ at var{self} is of type mglGraph. @var{z} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Dots_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Dots (@var{self}, @var{x}, @var{y}, @var{z}, @var{a})\n\
+ at var{self} is of type mglGraph. @var{x} is of type mglData. @var{y} is of type mglData. @var{z} is of type mglData. @var{a} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetRanges_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetRanges (@var{self}, @var{x1}, @var{x2}, @var{y1}, @var{y2})\n\
+ at var{self} is of type mglGraph. @var{x1} is of type float. @var{x2} is of type float. @var{y1} is of type float. @var{y2} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Transpose_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Transpose (@var{self})\n\
+ at var{self} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Sphere_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Sphere (@var{self}, @var{x0}, @var{y0}, @var{z0}, @var{r})\n\
+ at var{self} is of type mglGraph. @var{x0} is of type float. @var{y0} is of type float. @var{z0} is of type float. @var{r} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_GridA_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} GridA (@var{self}, @var{a})\n\
+ at var{self} is of type mglGraph. @var{a} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_ContFA_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} ContFA (@var{self}, @var{a})\n\
+ at var{self} is of type mglGraph. @var{a} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_DefaultPlotParam_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} DefaultPlotParam (@var{self})\n\
+ at var{self} is of type mglGraph. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Put_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Put (@var{self}, @var{val})\n\
+ at var{self} is of type mglData. @var{val} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_DensA_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} DensA (@var{self}, @var{a})\n\
+ at var{self} is of type mglGraph. @var{a} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_WriteGIF_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} WriteGIF (@var{self}, @var{fname})\n\
+ at var{self} is of type mglGraph. @var{fname} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetYRange_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetYRange (@var{self}, @var{dat})\n\
+ at var{self} is of type mglGraph. @var{dat} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Error_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Error (@var{self}, @var{x}, @var{y}, @var{ex}, @var{ey})\n\
+ at var{self} is of type mglGraph. @var{x} is of type mglData. @var{y} is of type mglData. @var{ex} is of type mglData. @var{ey} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglData_SetVal_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetVal (@var{self}, @var{v}, @var{i})\n\
+ at var{self} is of type mglData. @var{v} is of type double. @var{i} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_ResetFrames_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} ResetFrames (@var{self})\n\
+ at var{self} is of type mglGraph. \n\
+ at end deftypefn";
+const char* _wrap_mglData_CumSum_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} CumSum (@var{self}, @var{dir})\n\
+ at var{self} is of type mglData. @var{dir} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Envelop_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Envelop (@var{self})\n\
+ at var{self} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetOrigin_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetOrigin (@var{self}, @var{x0}, @var{y0})\n\
+ at var{self} is of type mglGraph. @var{x0} is of type float. @var{y0} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Puts_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Puts (@var{self}, @var{x}, @var{y}, @var{z}, @var{dx}, @var{dy}, @var{dz}, @var{text})\n\
+ at var{self} is of type mglGraph. @var{x} is of type float. @var{y} is of type float. @var{z} is of type float. @var{dx} is of type float. @var{dy} is of type float. @var{dz} is of type float. @var{text} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetBarWidth_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetBarWidth (@var{self}, @var{width})\n\
+ at var{self} is of type mglGraph. @var{width} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglData_SubData_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = SubData (@var{self}, @var{xx}, @var{yy}, @var{zz})\n\
+ at var{self} is of type mglData. @var{xx} is of type mglData. @var{yy} is of type mglData. @var{zz} is of type mglData. @var{retval} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Fit_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = Fit (@var{self}, @var{fit}, @var{x}, @var{y}, @var{z}, @var{a}, @var{eq}, @var{var}, @var{ini})\n\
+ at var{self} is of type mglGraph. @var{fit} is of type mglData. @var{x} is of type mglData. @var{y} is of type mglData. @var{z} is of type mglData. @var{a} is of type mglData. @var{eq} is of type char. @var{var} is of type char. @var{ini} is of type mglData. @var{retval} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SimplePlot_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SimplePlot (@var{self}, @var{a}, @var{type})\n\
+ at var{self} is of type mglGraph. @var{a} is of type mglData. @var{type} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetSize_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetSize (@var{self}, @var{width}, @var{height})\n\
+ at var{self} is of type mglGraph. @var{width} is of type int. @var{height} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_ShowImage_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} ShowImage (@var{self})\n\
+ at var{self} is of type mglGraph. \n\
+ at end deftypefn";
+const char* _wrap_mglParse_AllowSetSize_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} AllowSetSize (@var{self}, @var{allow})\n\
+ at var{self} is of type mglParse. @var{allow} is of type bool. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Diff2_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Diff2 (@var{self}, @var{dir})\n\
+ at var{self} is of type mglData. @var{dir} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Swap_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Swap (@var{self}, @var{dir})\n\
+ at var{self} is of type mglData. @var{dir} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Self_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = Self (@var{self})\n\
+ at var{self} is of type mglData. @var{retval} is of type HMDT. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetScheme_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetScheme (@var{self}, @var{colors})\n\
+ at var{self} is of type mglGraph. @var{colors} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_StickPlot_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} StickPlot (@var{self}, @var{num}, @var{i}, @var{tet}, @var{phi})\n\
+ at var{self} is of type mglGraph. @var{num} is of type int. @var{i} is of type int. @var{tet} is of type float. @var{phi} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Import_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Import (@var{self}, @var{fname}, @var{scheme})\n\
+ at var{self} is of type mglData. @var{fname} is of type char. @var{scheme} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Grad_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Grad (@var{self}, @var{phi})\n\
+ at var{self} is of type mglGraph. @var{phi} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglData_GetVal_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = GetVal (@var{self}, @var{i})\n\
+ at var{self} is of type mglData. @var{i} is of type int. @var{retval} is of type double. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_WriteIDTF_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} WriteIDTF (@var{self}, @var{fname})\n\
+ at var{self} is of type mglGraph. @var{fname} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_delete_mglData_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} mglData (@var{self})\n\
+ at var{self} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_new_mglData_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = mglData (@var{d}, @var{rows}, @var{cols}, @var{slc})\n\
+ at var{d} is of type double. @var{rows} is of type int. @var{cols} is of type int. @var{slc} is of type int. @var{retval} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetRotatedText_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetRotatedText (@var{self}, @var{rotated})\n\
+ at var{self} is of type mglGraph. @var{rotated} is of type bool. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Hankel_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Hankel (@var{self}, @var{dir})\n\
+ at var{self} is of type mglData. @var{dir} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Mirror_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Mirror (@var{self}, @var{dir})\n\
+ at var{self} is of type mglData. @var{dir} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Tile_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Tile (@var{self}, @var{z})\n\
+ at var{self} is of type mglGraph. @var{z} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Box_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Box (@var{self})\n\
+ at var{self} is of type mglGraph. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Cloud_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Cloud (@var{self}, @var{a})\n\
+ at var{self} is of type mglGraph. @var{a} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_CutOff_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} CutOff (@var{self}, @var{EqC})\n\
+ at var{self} is of type mglGraph. @var{EqC} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_FaceX_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} FaceX (@var{self}, @var{x0}, @var{y0}, @var{z0}, @var{wy}, @var{wz})\n\
+ at var{self} is of type mglGraph. @var{x0} is of type float. @var{y0} is of type float. @var{z0} is of type float. @var{wy} is of type float. @var{wz} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_ContFX_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} ContFX (@var{self}, @var{v}, @var{a})\n\
+ at var{self} is of type mglGraph. @var{v} is of type mglData. @var{a} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetAutoRanges_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetAutoRanges (@var{self}, @var{x1}, @var{x2})\n\
+ at var{self} is of type mglGraph. @var{x1} is of type float. @var{x2} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_FaceY_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} FaceY (@var{self}, @var{x0}, @var{y0}, @var{z0}, @var{wx}, @var{wz})\n\
+ at var{self} is of type mglGraph. @var{x0} is of type float. @var{y0} is of type float. @var{z0} is of type float. @var{wx} is of type float. @var{wz} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_ContFY_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} ContFY (@var{self}, @var{v}, @var{a})\n\
+ at var{self} is of type mglGraph. @var{v} is of type mglData. @var{a} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglData_GetData_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = GetData (@var{self})\n\
+ at var{self} is of type mglData. @var{retval} is of type mreal. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Column_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = Column (@var{self}, @var{eq})\n\
+ at var{self} is of type mglData. @var{eq} is of type char. @var{retval} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_FaceZ_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} FaceZ (@var{self}, @var{x0}, @var{y0}, @var{z0}, @var{wx}, @var{wy})\n\
+ at var{self} is of type mglGraph. @var{x0} is of type float. @var{y0} is of type float. @var{z0} is of type float. @var{wx} is of type float. @var{wy} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_DensX_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} DensX (@var{self}, @var{a})\n\
+ at var{self} is of type mglGraph. @var{a} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_ContFZ_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} ContFZ (@var{self}, @var{v}, @var{a})\n\
+ at var{self} is of type mglGraph. @var{v} is of type mglData. @var{a} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetPalNum_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetPalNum (@var{self}, @var{n})\n\
+ at var{self} is of type mglGraph. @var{n} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Fog_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Fog (@var{self}, @var{d})\n\
+ at var{self} is of type mglGraph. @var{d} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_ColumnPlot_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} ColumnPlot (@var{self}, @var{num}, @var{ind})\n\
+ at var{self} is of type mglGraph. @var{num} is of type int. @var{ind} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_DensY_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} DensY (@var{self}, @var{a})\n\
+ at var{self} is of type mglGraph. @var{a} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_FitS_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = FitS (@var{self}, @var{fit}, @var{x}, @var{y}, @var{z}, @var{a}, @var{s}, @var{eq}, @var{var}, @var{ini})\n\
+ at var{self} is of type mglGraph. @var{fit} is of type mglData. @var{x} is of type mglData. @var{y} is of type mglData. @var{z} is of type mglData. @var{a} is of type mglData. @var{s} is of type mglData. @var{eq} is of type char. @var{var} is of type char. @var{ini} is of type mglData. @var{retval} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglParse_ScanFunc_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} ScanFunc (@var{self}, @var{line})\n\
+ at var{self} is of type mglParse. @var{line} is of type wchar_t. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Light_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Light (@var{self}, @var{n}, @var{enable})\n\
+ at var{self} is of type mglGraph. @var{n} is of type int. @var{enable} is of type bool. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_DensZ_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} DensZ (@var{self}, @var{a})\n\
+ at var{self} is of type mglGraph. @var{a} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Linear_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = Linear (@var{self}, @var{x})\n\
+ at var{self} is of type mglData. @var{x} is of type double. @var{retval} is of type double. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Mesh_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Mesh (@var{self}, @var{z})\n\
+ at var{self} is of type mglGraph. @var{z} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetMeshNum_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetMeshNum (@var{self}, @var{num})\n\
+ at var{self} is of type mglGraph. @var{num} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetYTT_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetYTT (@var{self}, @var{templ})\n\
+ at var{self} is of type mglGraph. @var{templ} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Colorbar_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Colorbar (@var{self}, @var{val})\n\
+ at var{self} is of type mglGraph. @var{val} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetCutBox_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetCutBox (@var{self}, @var{x1}, @var{y1}, @var{z1}, @var{x2}, @var{y2}, @var{z2})\n\
+ at var{self} is of type mglGraph. @var{x1} is of type float. @var{y1} is of type float. @var{z1} is of type float. @var{x2} is of type float. @var{y2} is of type float. @var{z2} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetCoor_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetCoor (@var{self}, @var{how})\n\
+ at var{self} is of type mglGraph. @var{how} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglData_FillSample_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} FillSample (@var{self}, @var{n}, @var{how})\n\
+ at var{self} is of type mglData. @var{n} is of type int. @var{how} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Find_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = Find (@var{self}, @var{cond}, @var{dir})\n\
+ at var{self} is of type mglData. @var{cond} is of type char. @var{dir} is of type char. @var{retval} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetPalette_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetPalette (@var{self}, @var{colors})\n\
+ at var{self} is of type mglGraph. @var{colors} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_new_mglPoint_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = mglPoint ()\n\
+ at var{retval} is of type mglPoint. \n\
+ at end deftypefn";
+const char* _wrap_delete_mglPoint_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} mglPoint::~mglPoint (@var{self})\n\
+ at var{self} is of type mglPoint. \n\
+ at end deftypefn";
+const char* _wrap_new_mglParse_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = mglParse ()\n\
+ at var{retval} is of type mglParse. \n\
+ at end deftypefn";
+const char* _wrap_delete_mglParse_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} mglParse (@var{self})\n\
+ at var{self} is of type mglParse. \n\
+ at end deftypefn";
+const char* _wrap_mglParse_AddVar_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = AddVar (@var{self}, @var{name})\n\
+ at var{self} is of type mglParse. @var{name} is of type char. @var{retval} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglData___getitem___texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = __getitem__ (@var{self}, @var{i})\n\
+ at var{self} is of type mglData. @var{i} is of type int. @var{retval} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglData___setitem___texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} __setitem__ (@var{self}, @var{i}, @var{y})\n\
+ at var{self} is of type mglData. @var{i} is of type int. @var{y} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Last_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = Last (@var{self}, @var{cond}, @var{i}, @var{j}, @var{k})\n\
+ at var{self} is of type mglData. @var{cond} is of type char. @var{i} is of type int. @var{j} is of type int. @var{k} is of type int. @var{retval} is of type mreal. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_WriteFrame_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} WriteFrame (@var{self}, @var{fname})\n\
+ at var{self} is of type mglGraph. @var{fname} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_GetFit_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = GetFit (@var{self})\n\
+ at var{self} is of type mglGraph. @var{retval} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_AddLight_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} AddLight (@var{self}, @var{n}, @var{x}, @var{y}, @var{z})\n\
+ at var{self} is of type mglGraph. @var{n} is of type int. @var{x} is of type float. @var{y} is of type float. @var{z} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_AddLegendw_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} AddLegendw (@var{self}, @var{text}, @var{style})\n\
+ at var{self} is of type mglGraph. @var{text} is of type wchar_t. @var{style} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_StartGIF_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} StartGIF (@var{self}, @var{fname})\n\
+ at var{self} is of type mglGraph. @var{fname} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Hist_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Hist (@var{self}, @var{res}, @var{x}, @var{y}, @var{z}, @var{a})\n\
+ at var{self} is of type mglGraph. @var{res} is of type mglData. @var{x} is of type mglData. @var{y} is of type mglData. @var{z} is of type mglData. @var{a} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_GetRGBA_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} GetRGBA (@var{self}, @var{imgdata}, @var{imglen})\n\
+ at var{self} is of type mglGraph. @var{imgdata} is of type char. @var{imglen} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Rotate_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Rotate (@var{self}, @var{TetX})\n\
+ at var{self} is of type mglGraph. @var{TetX} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Flow_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Flow (@var{self}, @var{ax}, @var{ay}, @var{az})\n\
+ at var{self} is of type mglGraph. @var{ax} is of type mglData. @var{ay} is of type mglData. @var{az} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_GetHeight_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = GetHeight (@var{self})\n\
+ at var{self} is of type mglGraph. @var{retval} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Export_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Export (@var{self}, @var{fname}, @var{scheme})\n\
+ at var{self} is of type mglData. @var{fname} is of type char. @var{scheme} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Max_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = Max (@var{self}, @var{dir})\n\
+ at var{self} is of type mglData. @var{dir} is of type char. @var{retval} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Axis_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Axis (@var{self})\n\
+ at var{self} is of type mglGraph. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Line_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Line (@var{self}, @var{x1}, @var{y1}, @var{z1}, @var{x2}, @var{y2}, @var{z2})\n\
+ at var{self} is of type mglGraph. @var{x1} is of type float. @var{y1} is of type float. @var{z1} is of type float. @var{x2} is of type float. @var{y2} is of type float. @var{z2} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetArrowSize_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetArrowSize (@var{self}, @var{size})\n\
+ at var{self} is of type mglGraph. @var{size} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetAxialDir_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetAxialDir (@var{self}, @var{dir})\n\
+ at var{self} is of type mglGraph. @var{dir} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglData_CosFFT_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} CosFFT (@var{self}, @var{dir})\n\
+ at var{self} is of type mglData. @var{dir} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Identity_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Identity (@var{self})\n\
+ at var{self} is of type mglGraph. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Maximal_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = Maximal (@var{self}, @var{x}, @var{y}, @var{z})\n\
+ at var{self} is of type mglData. @var{x} is of type float. @var{y} is of type float. @var{z} is of type float. @var{retval} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Putsw_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Putsw (@var{self}, @var{x}, @var{y}, @var{z}, @var{dx}, @var{dy}, @var{dz}, @var{text})\n\
+ at var{self} is of type mglGraph. @var{x} is of type float. @var{y} is of type float. @var{z} is of type float. @var{dx} is of type float. @var{dy} is of type float. @var{dz} is of type float. @var{text} is of type wchar_t. \n\
+ at end deftypefn";
+const char* _wrap_mglParse_FindVar_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = FindVar (@var{self}, @var{name})\n\
+ at var{self} is of type mglParse. @var{name} is of type char. @var{retval} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Modify_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Modify (@var{self}, @var{eq}, @var{v})\n\
+ at var{self} is of type mglData. @var{eq} is of type char. @var{v} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_PDE_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = PDE (@var{self}, @var{ham}, @var{ini_re}, @var{ini_im})\n\
+ at var{self} is of type mglGraph. @var{ham} is of type char. @var{ini_re} is of type mglData. @var{ini_im} is of type mglData. @var{retval} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Evaluate_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = Evaluate (@var{self}, @var{idat}, @var{jdat}, @var{kdat})\n\
+ at var{self} is of type mglData. @var{idat} is of type mglData. @var{jdat} is of type mglData. @var{kdat} is of type mglData. @var{retval} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Beam_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Beam (@var{self}, @var{val}, @var{tr}, @var{g1}, @var{g2}, @var{a}, @var{r})\n\
+ at var{self} is of type mglGraph. @var{val} is of type float. @var{tr} is of type mglData. @var{g1} is of type mglData. @var{g2} is of type mglData. @var{a} is of type mglData. @var{r} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Hist_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = Hist (@var{self}, @var{w}, @var{n})\n\
+ at var{self} is of type mglData. @var{w} is of type mglData. @var{n} is of type int. @var{retval} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetPlotFactor_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetPlotFactor (@var{self}, @var{val})\n\
+ at var{self} is of type mglGraph. @var{val} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_GetNumFrame_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = GetNumFrame (@var{self})\n\
+ at var{self} is of type mglGraph. @var{retval} is of type int. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_AddLegend_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} AddLegend (@var{self}, @var{text}, @var{style})\n\
+ at var{self} is of type mglGraph. @var{text} is of type char. @var{style} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_ClearLegend_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} ClearLegend (@var{self})\n\
+ at var{self} is of type mglGraph. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_FlowP_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} FlowP (@var{self}, @var{x0}, @var{y0}, @var{z0}, @var{ax}, @var{ay}, @var{az})\n\
+ at var{self} is of type mglGraph. @var{x0} is of type float. @var{y0} is of type float. @var{z0} is of type float. @var{ax} is of type mglData. @var{ay} is of type mglData. @var{az} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_SetDrawFace_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} SetDrawFace (@var{self}, @var{enable})\n\
+ at var{self} is of type mglGraph. @var{enable} is of type bool. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Insert_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Insert (@var{self}, @var{dir})\n\
+ at var{self} is of type mglData. @var{dir} is of type char. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Region_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Region (@var{self}, @var{x}, @var{y1}, @var{y2})\n\
+ at var{self} is of type mglGraph. @var{x} is of type mglData. @var{y1} is of type mglData. @var{y2} is of type mglData. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Ball_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Ball (@var{self}, @var{x}, @var{y}, @var{z})\n\
+ at var{self} is of type mglGraph. @var{x} is of type float. @var{y} is of type float. @var{z} is of type float. \n\
+ at end deftypefn";
+const char* _wrap_mglData_ReadMat_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = ReadMat (@var{self}, @var{fname})\n\
+ at var{self} is of type mglData. @var{fname} is of type char. @var{retval} is of type bool. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Title_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Title (@var{self}, @var{text})\n\
+ at var{self} is of type mglGraph. @var{text} is of type wchar_t. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Spline1_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = Spline1 (@var{self}, @var{x})\n\
+ at var{self} is of type mglData. @var{x} is of type double. @var{retval} is of type double. \n\
+ at end deftypefn";
+const char* _wrap_mglData_Linear1_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} @var{retval} = Linear1 (@var{self}, @var{x})\n\
+ at var{self} is of type mglData. @var{x} is of type double. @var{retval} is of type double. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Ternary_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Ternary (@var{self}, @var{val})\n\
+ at var{self} is of type mglGraph. @var{val} is of type bool. \n\
+ at end deftypefn";
+const char* _wrap_mglGraph_Vect_texinfo = "-*- texinfo -*-\n\
+ at deftypefn {Loadable Function} Vect (@var{self}, @var{ax}, @var{ay}, @var{az})\n\
+ at var{self} is of type mglGraph. @var{ax} is of type mglData. @var{ay} is of type mglData. @var{az} is of type mglData. \n\
+ at end deftypefn";
+
+static octave_value_list _wrap_NaN_set(const octave_value_list& args,int nargout) {
+  if (!SWIG_check_num_args("NaN_set",args.length(),1,1,0)) return octave_value_list();
+  
+  return octave_set_immutable(args,nargout);
+}
+
+
+static octave_value_list _wrap_NaN_get(const octave_value_list& args,int nargout) {
+  octave_value obj;
+  
+  obj = SWIG_From_float((float)(NaN));
+  return obj;
+}
+
+
+static octave_value_list _wrap_pi_set(const octave_value_list& args,int nargout) {
+  if (!SWIG_check_num_args("pi_set",args.length(),1,1,0)) return octave_value_list();
+  
+  return octave_set_immutable(args,nargout);
+}
+
+
+static octave_value_list _wrap_pi_get(const octave_value_list& args,int nargout) {
+  octave_value obj;
+  
+  obj = SWIG_From_float((float)(pi));
+  return obj;
+}
+
+
+static octave_value_list _wrap_mglPoint_x_set (const octave_value_list& args, int nargout) {
+  mglPoint *arg1 = (mglPoint *) 0 ;
+  double arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglPoint_x_set",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglPoint, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglPoint_x_set" "', argument " "1"" of type '" "mglPoint *""'"); 
+  }
+  arg1 = (mglPoint *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglPoint_x_set" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  if (arg1) (arg1)->x = arg2;
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglPoint_x_get (const octave_value_list& args, int nargout) {
+  mglPoint *arg1 = (mglPoint *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  double result;
+  
+  if (!SWIG_check_num_args("mglPoint_x_get",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglPoint, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglPoint_x_get" "', argument " "1"" of type '" "mglPoint *""'"); 
+  }
+  arg1 = (mglPoint *)(argp1);
+  result = (double) ((arg1)->x);
+  _outv = SWIG_From_double((double)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglPoint_y_set (const octave_value_list& args, int nargout) {
+  mglPoint *arg1 = (mglPoint *) 0 ;
+  double arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglPoint_y_set",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglPoint, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglPoint_y_set" "', argument " "1"" of type '" "mglPoint *""'"); 
+  }
+  arg1 = (mglPoint *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglPoint_y_set" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  if (arg1) (arg1)->y = arg2;
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglPoint_y_get (const octave_value_list& args, int nargout) {
+  mglPoint *arg1 = (mglPoint *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  double result;
+  
+  if (!SWIG_check_num_args("mglPoint_y_get",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglPoint, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglPoint_y_get" "', argument " "1"" of type '" "mglPoint *""'"); 
+  }
+  arg1 = (mglPoint *)(argp1);
+  result = (double) ((arg1)->y);
+  _outv = SWIG_From_double((double)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglPoint_z_set (const octave_value_list& args, int nargout) {
+  mglPoint *arg1 = (mglPoint *) 0 ;
+  double arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglPoint_z_set",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglPoint, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglPoint_z_set" "', argument " "1"" of type '" "mglPoint *""'"); 
+  }
+  arg1 = (mglPoint *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglPoint_z_set" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  if (arg1) (arg1)->z = arg2;
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglPoint_z_get (const octave_value_list& args, int nargout) {
+  mglPoint *arg1 = (mglPoint *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  double result;
+  
+  if (!SWIG_check_num_args("mglPoint_z_get",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglPoint, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglPoint_z_get" "', argument " "1"" of type '" "mglPoint *""'"); 
+  }
+  arg1 = (mglPoint *)(argp1);
+  result = (double) ((arg1)->z);
+  _outv = SWIG_From_double((double)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglPoint__SWIG_0 (const octave_value_list& args, int nargout) {
+  double arg1 ;
+  double arg2 ;
+  double arg3 ;
+  double val1 ;
+  int ecode1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglPoint *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglPoint",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  ecode1 = SWIG_AsVal_double(args(0), &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_mglPoint" "', argument " "1"" of type '" "double""'");
+  } 
+  arg1 = (double)(val1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglPoint" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_double(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_mglPoint" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = (double)(val3);
+  result = (mglPoint *)new mglPoint(arg1,arg2,arg3);
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglPoint, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglPoint__SWIG_1 (const octave_value_list& args, int nargout) {
+  double arg1 ;
+  double arg2 ;
+  double val1 ;
+  int ecode1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglPoint *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglPoint",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  ecode1 = SWIG_AsVal_double(args(0), &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_mglPoint" "', argument " "1"" of type '" "double""'");
+  } 
+  arg1 = (double)(val1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglPoint" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  result = (mglPoint *)new mglPoint(arg1,arg2);
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglPoint, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglPoint__SWIG_2 (const octave_value_list& args, int nargout) {
+  double arg1 ;
+  double val1 ;
+  int ecode1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglPoint *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglPoint",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  ecode1 = SWIG_AsVal_double(args(0), &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_mglPoint" "', argument " "1"" of type '" "double""'");
+  } 
+  arg1 = (double)(val1);
+  result = (mglPoint *)new mglPoint(arg1);
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglPoint, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglPoint__SWIG_3 (const octave_value_list& args, int nargout) {
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglPoint *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglPoint",args.length(),0,0,0)) {
+    SWIG_fail;
+  }
+  result = (mglPoint *)new mglPoint();
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglPoint, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglPoint (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 0) {
+    return _wrap_new_mglPoint__SWIG_3(args, nargout);
+  }
+  if (argc == 1) {
+    int _v;
+    {
+      int res = SWIG_AsVal_double(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      return _wrap_new_mglPoint__SWIG_2(args, nargout);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    {
+      int res = SWIG_AsVal_double(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_new_mglPoint__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    {
+      int res = SWIG_AsVal_double(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_new_mglPoint__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_delete_mglPoint (const octave_value_list& args, int nargout) {
+  mglPoint *arg1 = (mglPoint *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("delete_mglPoint",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglPoint, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_mglPoint" "', argument " "1"" of type '" "mglPoint *""'"); 
+  }
+  arg1 = (mglPoint *)(argp1);
+  delete arg1;
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static swig_octave_member swig_mglPoint_members[] = {
+{"x",0,_wrap_mglPoint_x_get,_wrap_mglPoint_x_set,0,0},
+{"y",0,_wrap_mglPoint_y_get,_wrap_mglPoint_y_set,0,0},
+{"z",0,_wrap_mglPoint_z_get,_wrap_mglPoint_z_set,0,0},
+{0,0,0,0}
+};
+static const char *swig_mglPoint_base_names[] = {0};
+static const swig_type_info *swig_mglPoint_base[] = {0};
+static swig_octave_class _wrap_class_mglPoint = {"mglPoint", &SWIGTYPE_p_mglPoint,0,_wrap_new_mglPoint,0,_wrap_delete_mglPoint,swig_mglPoint_members,swig_mglPoint_base_names,swig_mglPoint_base };
+
+static octave_value_list _wrap_new_mglData__SWIG_0 (const octave_value_list& args, int nargout) {
+  int arg1 ;
+  int arg2 ;
+  int arg3 ;
+  int val1 ;
+  int ecode1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglData",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  ecode1 = SWIG_AsVal_int(args(0), &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_mglData" "', argument " "1"" of type '" "int""'");
+  } 
+  arg1 = (int)(val1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglData" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_mglData" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  result = (mglData *)new mglData(arg1,arg2,arg3);
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglData__SWIG_1 (const octave_value_list& args, int nargout) {
+  int arg1 ;
+  int arg2 ;
+  int val1 ;
+  int ecode1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglData",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  ecode1 = SWIG_AsVal_int(args(0), &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_mglData" "', argument " "1"" of type '" "int""'");
+  } 
+  arg1 = (int)(val1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglData" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  result = (mglData *)new mglData(arg1,arg2);
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglData__SWIG_2 (const octave_value_list& args, int nargout) {
+  int arg1 ;
+  int val1 ;
+  int ecode1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglData",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  ecode1 = SWIG_AsVal_int(args(0), &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_mglData" "', argument " "1"" of type '" "int""'");
+  } 
+  arg1 = (int)(val1);
+  result = (mglData *)new mglData(arg1);
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglData__SWIG_3 (const octave_value_list& args, int nargout) {
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglData",args.length(),0,0,0)) {
+    SWIG_fail;
+  }
+  result = (mglData *)new mglData();
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglData__SWIG_4 (const octave_value_list& args, int nargout) {
+  HMDT arg1 ;
+  bool arg2 ;
+  void *argp1 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglData",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  {
+    res1 = SWIG_ConvertPtr(args(0), &argp1, SWIGTYPE_p_HMDT,  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_mglData" "', argument " "1"" of type '" "HMDT const""'"); 
+    }  
+    if (!argp1) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_mglData" "', argument " "1"" of type '" "HMDT const""'");
+    } else {
+      arg1 = *((HMDT *)(argp1));
+    }
+  }
+  ecode2 = SWIG_AsVal_bool(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglData" "', argument " "2"" of type '" "bool""'");
+  } 
+  arg2 = (bool)(val2);
+  result = (mglData *)new mglData(arg1,arg2);
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglData__SWIG_5 (const octave_value_list& args, int nargout) {
+  HMDT arg1 ;
+  void *argp1 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglData",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  {
+    res1 = SWIG_ConvertPtr(args(0), &argp1, SWIGTYPE_p_HMDT,  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_mglData" "', argument " "1"" of type '" "HMDT const""'"); 
+    }  
+    if (!argp1) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_mglData" "', argument " "1"" of type '" "HMDT const""'");
+    } else {
+      arg1 = *((HMDT *)(argp1));
+    }
+  }
+  result = (mglData *)new mglData(arg1);
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglData__SWIG_6 (const octave_value_list& args, int nargout) {
+  char *arg1 = (char *) 0 ;
+  int res1 ;
+  char *buf1 = 0 ;
+  int alloc1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglData",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_AsCharPtrAndSize(args(0), &buf1, NULL, &alloc1);
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_mglData" "', argument " "1"" of type '" "char const *""'");
+  }
+  arg1 = (char *)(buf1);
+  result = (mglData *)new mglData((char const *)arg1);
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_delete_mglData (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("delete_mglData",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_mglData" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  delete arg1;
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglData__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = 0 ;
+  void *argp1 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglData",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_mglData" "', argument " "1"" of type '" "mglData const &""'"); 
+  }
+  if (!argp1) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_mglData" "', argument " "1"" of type '" "mglData const &""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  result = (mglData *)new mglData((mglData const &)*arg1);
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglData__SWIG_8 (const octave_value_list& args, int nargout) {
+  int arg1 ;
+  float *arg2 = (float *) 0 ;
+  int val1 ;
+  int ecode1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglData",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  ecode1 = SWIG_AsVal_int(args(0), &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_mglData" "', argument " "1"" of type '" "int""'");
+  } 
+  arg1 = (int)(val1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2,SWIGTYPE_p_float, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_mglData" "', argument " "2"" of type '" "float const *""'"); 
+  }
+  arg2 = (float *)(argp2);
+  result = (mglData *)new mglData(arg1,(float const *)arg2);
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglData__SWIG_9 (const octave_value_list& args, int nargout) {
+  int arg1 ;
+  int arg2 ;
+  float *arg3 = (float *) 0 ;
+  int val1 ;
+  int ecode1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglData",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  ecode1 = SWIG_AsVal_int(args(0), &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_mglData" "', argument " "1"" of type '" "int""'");
+  } 
+  arg1 = (int)(val1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglData" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3,SWIGTYPE_p_float, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_mglData" "', argument " "3"" of type '" "float const *""'"); 
+  }
+  arg3 = (float *)(argp3);
+  result = (mglData *)new mglData(arg1,arg2,(float const *)arg3);
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglData__SWIG_10 (const octave_value_list& args, int nargout) {
+  int arg1 ;
+  int arg2 ;
+  int arg3 ;
+  float *arg4 = (float *) 0 ;
+  int val1 ;
+  int ecode1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglData",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  ecode1 = SWIG_AsVal_int(args(0), &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_mglData" "', argument " "1"" of type '" "int""'");
+  } 
+  arg1 = (int)(val1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglData" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_mglData" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4,SWIGTYPE_p_float, 0 |  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_mglData" "', argument " "4"" of type '" "float const *""'"); 
+  }
+  arg4 = (float *)(argp4);
+  result = (mglData *)new mglData(arg1,arg2,arg3,(float const *)arg4);
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglData__SWIG_11 (const octave_value_list& args, int nargout) {
+  int arg1 ;
+  double *arg2 = (double *) 0 ;
+  int val1 ;
+  int ecode1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglData",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  ecode1 = SWIG_AsVal_int(args(0), &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_mglData" "', argument " "1"" of type '" "int""'");
+  } 
+  arg1 = (int)(val1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2,SWIGTYPE_p_double, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_mglData" "', argument " "2"" of type '" "double const *""'"); 
+  }
+  arg2 = (double *)(argp2);
+  result = (mglData *)new mglData(arg1,(double const *)arg2);
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglData__SWIG_12 (const octave_value_list& args, int nargout) {
+  int arg1 ;
+  int arg2 ;
+  double *arg3 = (double *) 0 ;
+  int val1 ;
+  int ecode1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglData",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  ecode1 = SWIG_AsVal_int(args(0), &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_mglData" "', argument " "1"" of type '" "int""'");
+  } 
+  arg1 = (int)(val1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglData" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3,SWIGTYPE_p_double, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_mglData" "', argument " "3"" of type '" "double const *""'"); 
+  }
+  arg3 = (double *)(argp3);
+  result = (mglData *)new mglData(arg1,arg2,(double const *)arg3);
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglData__SWIG_13 (const octave_value_list& args, int nargout) {
+  int arg1 ;
+  int arg2 ;
+  int arg3 ;
+  double *arg4 = (double *) 0 ;
+  int val1 ;
+  int ecode1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglData",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  ecode1 = SWIG_AsVal_int(args(0), &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_mglData" "', argument " "1"" of type '" "int""'");
+  } 
+  arg1 = (int)(val1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglData" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_mglData" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4,SWIGTYPE_p_double, 0 |  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_mglData" "', argument " "4"" of type '" "double const *""'"); 
+  }
+  arg4 = (double *)(argp4);
+  result = (mglData *)new mglData(arg1,arg2,arg3,(double const *)arg4);
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglData__SWIG_14 (const octave_value_list& args, int nargout) {
+  float *arg1 = (float *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglData",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_float, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_mglData" "', argument " "1"" of type '" "float const *""'"); 
+  }
+  arg1 = (float *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglData" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  result = (mglData *)new mglData((float const *)arg1,arg2);
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglData__SWIG_15 (const octave_value_list& args, int nargout) {
+  float *arg1 = (float *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglData",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_float, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_mglData" "', argument " "1"" of type '" "float const *""'"); 
+  }
+  arg1 = (float *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglData" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_mglData" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  result = (mglData *)new mglData((float const *)arg1,arg2,arg3);
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglData__SWIG_16 (const octave_value_list& args, int nargout) {
+  float *arg1 = (float *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglData",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_float, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_mglData" "', argument " "1"" of type '" "float const *""'"); 
+  }
+  arg1 = (float *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglData" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_mglData" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "new_mglData" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  result = (mglData *)new mglData((float const *)arg1,arg2,arg3,arg4);
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglData__SWIG_17 (const octave_value_list& args, int nargout) {
+  double *arg1 = (double *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglData",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_double, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_mglData" "', argument " "1"" of type '" "double const *""'"); 
+  }
+  arg1 = (double *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglData" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  result = (mglData *)new mglData((double const *)arg1,arg2);
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglData__SWIG_18 (const octave_value_list& args, int nargout) {
+  double *arg1 = (double *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglData",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_double, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_mglData" "', argument " "1"" of type '" "double const *""'"); 
+  }
+  arg1 = (double *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglData" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_mglData" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  result = (mglData *)new mglData((double const *)arg1,arg2,arg3);
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglData__SWIG_19 (const octave_value_list& args, int nargout) {
+  double *arg1 = (double *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglData",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_double, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_mglData" "', argument " "1"" of type '" "double const *""'"); 
+  }
+  arg1 = (double *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglData" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_mglData" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "new_mglData" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  result = (mglData *)new mglData((double const *)arg1,arg2,arg3,arg4);
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglData (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 0) {
+    return _wrap_new_mglData__SWIG_3(args, nargout);
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_HMDT, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_new_mglData__SWIG_5(args, nargout);
+    }
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_new_mglData__SWIG_7(args, nargout);
+    }
+  }
+  if (argc == 1) {
+    int _v;
+    {
+      int res = SWIG_AsVal_int(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      return _wrap_new_mglData__SWIG_2(args, nargout);
+    }
+  }
+  if (argc == 1) {
+    int _v;
+    int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_new_mglData__SWIG_6(args, nargout);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_HMDT, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_bool(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_new_mglData__SWIG_4(args, nargout);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_float, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_new_mglData__SWIG_14(args, nargout);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_double, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_new_mglData__SWIG_17(args, nargout);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    {
+      int res = SWIG_AsVal_int(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_float, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_new_mglData__SWIG_8(args, nargout);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    {
+      int res = SWIG_AsVal_int(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_double, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_new_mglData__SWIG_11(args, nargout);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    {
+      int res = SWIG_AsVal_int(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_new_mglData__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_float, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_new_mglData__SWIG_15(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_double, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_new_mglData__SWIG_18(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    {
+      int res = SWIG_AsVal_int(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_double, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_new_mglData__SWIG_12(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    {
+      int res = SWIG_AsVal_int(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_float, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_new_mglData__SWIG_9(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    {
+      int res = SWIG_AsVal_int(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_new_mglData__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_float, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_new_mglData__SWIG_16(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_double, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_new_mglData__SWIG_19(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    {
+      int res = SWIG_AsVal_int(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_double, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_new_mglData__SWIG_13(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    {
+      int res = SWIG_AsVal_int(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_float, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_new_mglData__SWIG_10(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Self (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  HMDT result;
+  
+  if (!SWIG_check_num_args("mglData_Self",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Self" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  result = (arg1)->Self();
+  _outv = SWIG_NewPointerObj((new HMDT((const HMDT&)(result))), SWIGTYPE_p_HMDT, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Set__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  gsl_vector *arg2 = (gsl_vector *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Set",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2,SWIGTYPE_p_gsl_vector, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "gsl_vector *""'"); 
+  }
+  arg2 = (gsl_vector *)(argp2);
+  (arg1)->Set(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Set__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  gsl_matrix *arg2 = (gsl_matrix *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Set",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2,SWIGTYPE_p_gsl_matrix, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "gsl_matrix *""'"); 
+  }
+  arg2 = (gsl_matrix *)(argp2);
+  (arg1)->Set(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Set__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Set",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Set" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->Set((mglData const &)*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Set__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  float *arg2 = (float *) 0 ;
+  int arg3 ;
+  int arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Set",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2,SWIGTYPE_p_float, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "float const *""'"); 
+  }
+  arg2 = (float *)(argp2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Set" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Set" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Set" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  (arg1)->Set((float const *)arg2,arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Set__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  float *arg2 = (float *) 0 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Set",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2,SWIGTYPE_p_float, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "float const *""'"); 
+  }
+  arg2 = (float *)(argp2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Set" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Set" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->Set((float const *)arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Set__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  float *arg2 = (float *) 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Set",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2,SWIGTYPE_p_float, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "float const *""'"); 
+  }
+  arg2 = (float *)(argp2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Set" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  (arg1)->Set((float const *)arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Set__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double *arg2 = (double *) 0 ;
+  int arg3 ;
+  int arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Set",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2,SWIGTYPE_p_double, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "double const *""'"); 
+  }
+  arg2 = (double *)(argp2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Set" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Set" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Set" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  (arg1)->Set((double const *)arg2,arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Set__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double *arg2 = (double *) 0 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Set",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2,SWIGTYPE_p_double, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "double const *""'"); 
+  }
+  arg2 = (double *)(argp2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Set" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Set" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->Set((double const *)arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Set__SWIG_8 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double *arg2 = (double *) 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Set",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2,SWIGTYPE_p_double, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "double const *""'"); 
+  }
+  arg2 = (double *)(argp2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Set" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  (arg1)->Set((double const *)arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Set__SWIG_9 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  float **arg2 = (float **) 0 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Set",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2,SWIGTYPE_p_p_float, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "float const **""'"); 
+  }
+  arg2 = (float **)(argp2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Set" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Set" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->Set((float const **)arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Set__SWIG_10 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double **arg2 = (double **) 0 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Set",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2,SWIGTYPE_p_p_double, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "double const **""'"); 
+  }
+  arg2 = (double **)(argp2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Set" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Set" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->Set((double const **)arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Set__SWIG_11 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  float ***arg2 = (float ***) 0 ;
+  int arg3 ;
+  int arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Set",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2,SWIGTYPE_p_p_p_float, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "float const ***""'"); 
+  }
+  arg2 = (float ***)(argp2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Set" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Set" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Set" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  (arg1)->Set((float const ***)arg2,arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Set__SWIG_12 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double ***arg2 = (double ***) 0 ;
+  int arg3 ;
+  int arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Set",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2,SWIGTYPE_p_p_p_double, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "double const ***""'"); 
+  }
+  arg2 = (double ***)(argp2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Set" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Set" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Set" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  (arg1)->Set((double const ***)arg2,arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Rearrange__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Rearrange",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Rearrange" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Rearrange" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Rearrange" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Rearrange" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->Rearrange(arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Rearrange__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Rearrange",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Rearrange" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Rearrange" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Rearrange" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  (arg1)->Rearrange(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Rearrange__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Rearrange",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Rearrange" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Rearrange" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  (arg1)->Rearrange(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Rearrange (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Rearrange__SWIG_2(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Rearrange__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Rearrange__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Set__SWIG_13 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  int arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Set",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Set" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Set" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Set" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  (arg1)->Set((char const *)arg2,arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Set__SWIG_14 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Set",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Set" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Set" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->Set((char const *)arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Set__SWIG_15 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Set",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Set" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  (arg1)->Set((char const *)arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Set (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[5]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_gsl_vector, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglData_Set__SWIG_0(args, nargout);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_gsl_matrix, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglData_Set__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglData_Set__SWIG_2(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_float, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Set__SWIG_5(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_double, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Set__SWIG_8(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Set__SWIG_15(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_float, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Set__SWIG_4(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_p_float, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Set__SWIG_9(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_p_double, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Set__SWIG_10(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_double, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Set__SWIG_7(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Set__SWIG_14(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_p_p_float, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Set__SWIG_11(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_p_p_double, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Set__SWIG_12(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_float, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Set__SWIG_3(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_double, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Set__SWIG_6(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Set__SWIG_13(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Read__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  bool result;
+  
+  if (!SWIG_check_num_args("mglData_Read",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Read" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Read" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  result = (bool)(arg1)->Read((char const *)arg2);
+  _outv = SWIG_From_bool((bool)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Read__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  int arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  bool result;
+  
+  if (!SWIG_check_num_args("mglData_Read",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Read" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Read" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Read" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Read" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Read" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  result = (bool)(arg1)->Read((char const *)arg2,arg3,arg4,arg5);
+  _outv = SWIG_From_bool((bool)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Read__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  bool result;
+  
+  if (!SWIG_check_num_args("mglData_Read",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Read" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Read" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Read" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Read" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  result = (bool)(arg1)->Read((char const *)arg2,arg3,arg4);
+  _outv = SWIG_From_bool((bool)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Read__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  bool result;
+  
+  if (!SWIG_check_num_args("mglData_Read",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Read" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Read" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Read" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  result = (bool)(arg1)->Read((char const *)arg2,arg3);
+  _outv = SWIG_From_bool((bool)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Read (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[5]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglData_Read__SWIG_0(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Read__SWIG_3(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Read__SWIG_2(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Read__SWIG_1(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Save__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Save",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Save" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Save" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Save" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  (arg1)->Save((char const *)arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Save__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Save",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Save" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Save" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->Save((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Save (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglData_Save__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Save__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Export__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  double arg4 ;
+  double arg5 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Export",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Export" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Export" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Export" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_double(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Export" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = (double)(val4);
+  ecode5 = SWIG_AsVal_double(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Export" "', argument " "5"" of type '" "double""'");
+  } 
+  arg5 = (double)(val5);
+  ecode6 = SWIG_AsVal_int(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglData_Export" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = (int)(val6);
+  (arg1)->Export((char const *)arg2,(char const *)arg3,arg4,arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Export__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  double arg4 ;
+  double arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Export",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Export" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Export" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Export" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_double(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Export" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = (double)(val4);
+  ecode5 = SWIG_AsVal_double(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Export" "', argument " "5"" of type '" "double""'");
+  } 
+  arg5 = (double)(val5);
+  (arg1)->Export((char const *)arg2,(char const *)arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Export__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  double arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Export",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Export" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Export" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Export" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_double(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Export" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = (double)(val4);
+  (arg1)->Export((char const *)arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Export__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Export",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Export" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Export" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Export" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Export((char const *)arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Export (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglData_Export__SWIG_3(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Export__SWIG_2(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_double(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Export__SWIG_1(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_double(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglData_Export__SWIG_0(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Import__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  double arg4 ;
+  double arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Import",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Import" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Import" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Import" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_double(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Import" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = (double)(val4);
+  ecode5 = SWIG_AsVal_double(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Import" "', argument " "5"" of type '" "double""'");
+  } 
+  arg5 = (double)(val5);
+  (arg1)->Import((char const *)arg2,(char const *)arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Import__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  double arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Import",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Import" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Import" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Import" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_double(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Import" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = (double)(val4);
+  (arg1)->Import((char const *)arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Import__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Import",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Import" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Import" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Import" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Import((char const *)arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Import (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[5]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglData_Import__SWIG_2(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Import__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_double(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Import__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_ReadMat__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  bool result;
+  
+  if (!SWIG_check_num_args("mglData_ReadMat",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_ReadMat" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_ReadMat" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_ReadMat" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  result = (bool)(arg1)->ReadMat((char const *)arg2,arg3);
+  _outv = SWIG_From_bool((bool)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_ReadMat__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  bool result;
+  
+  if (!SWIG_check_num_args("mglData_ReadMat",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_ReadMat" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_ReadMat" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  result = (bool)(arg1)->ReadMat((char const *)arg2);
+  _outv = SWIG_From_bool((bool)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_ReadMat (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglData_ReadMat__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_ReadMat__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Create__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Create",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Create" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Create" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Create" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Create" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->Create(arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Create__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Create",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Create" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Create" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Create" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  (arg1)->Create(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Create__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Create",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Create" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Create" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  (arg1)->Create(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Create (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Create__SWIG_2(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Create__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Create__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Extend__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Extend",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Extend" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Extend" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Extend" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  (arg1)->Extend(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Extend__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Extend",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Extend" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Extend" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  (arg1)->Extend(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Extend (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Extend__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Extend__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Transpose__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Transpose",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Transpose" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Transpose" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->Transpose((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Transpose__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Transpose",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Transpose" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  (arg1)->Transpose();
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Transpose (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[2]={
+    octave_value_ref(args,0),octave_value_ref(args,1)
+  };
+  
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglData_Transpose__SWIG_1(args, nargout);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglData_Transpose__SWIG_0(args, nargout);
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Norm__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  bool arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  bool val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Norm",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Norm" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Norm" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_double(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Norm" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = (double)(val3);
+  ecode4 = SWIG_AsVal_bool(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Norm" "', argument " "4"" of type '" "bool""'");
+  } 
+  arg4 = (bool)(val4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Norm" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  (arg1)->Norm(arg2,arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Norm__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  bool arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  bool val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Norm",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Norm" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Norm" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_double(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Norm" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = (double)(val3);
+  ecode4 = SWIG_AsVal_bool(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Norm" "', argument " "4"" of type '" "bool""'");
+  } 
+  arg4 = (bool)(val4);
+  (arg1)->Norm(arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Norm__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Norm",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Norm" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Norm" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_double(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Norm" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = (double)(val3);
+  (arg1)->Norm(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Norm__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Norm",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Norm" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Norm" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  (arg1)->Norm(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Norm__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Norm",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Norm" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  (arg1)->Norm();
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Norm (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[5]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4)
+  };
+  
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglData_Norm__SWIG_4(args, nargout);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Norm__SWIG_3(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Norm__SWIG_2(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_bool(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Norm__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_bool(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Norm__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_NormSl__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  char arg4 ;
+  bool arg5 ;
+  bool arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  char val4 ;
+  int ecode4 = 0 ;
+  bool val5 ;
+  int ecode5 = 0 ;
+  bool val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_NormSl",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_NormSl" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_NormSl" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_double(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_NormSl" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = (double)(val3);
+  ecode4 = SWIG_AsVal_char(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_NormSl" "', argument " "4"" of type '" "char""'");
+  } 
+  arg4 = (char)(val4);
+  ecode5 = SWIG_AsVal_bool(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_NormSl" "', argument " "5"" of type '" "bool""'");
+  } 
+  arg5 = (bool)(val5);
+  ecode6 = SWIG_AsVal_bool(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglData_NormSl" "', argument " "6"" of type '" "bool""'");
+  } 
+  arg6 = (bool)(val6);
+  (arg1)->NormSl(arg2,arg3,arg4,arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_NormSl__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  char arg4 ;
+  bool arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  char val4 ;
+  int ecode4 = 0 ;
+  bool val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_NormSl",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_NormSl" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_NormSl" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_double(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_NormSl" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = (double)(val3);
+  ecode4 = SWIG_AsVal_char(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_NormSl" "', argument " "4"" of type '" "char""'");
+  } 
+  arg4 = (char)(val4);
+  ecode5 = SWIG_AsVal_bool(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_NormSl" "', argument " "5"" of type '" "bool""'");
+  } 
+  arg5 = (bool)(val5);
+  (arg1)->NormSl(arg2,arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_NormSl__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  char arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  char val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_NormSl",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_NormSl" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_NormSl" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_double(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_NormSl" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = (double)(val3);
+  ecode4 = SWIG_AsVal_char(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_NormSl" "', argument " "4"" of type '" "char""'");
+  } 
+  arg4 = (char)(val4);
+  (arg1)->NormSl(arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_NormSl__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_NormSl",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_NormSl" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_NormSl" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_double(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_NormSl" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = (double)(val3);
+  (arg1)->NormSl(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_NormSl__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_NormSl",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_NormSl" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_NormSl" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  (arg1)->NormSl(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_NormSl__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_NormSl",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_NormSl" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  (arg1)->NormSl();
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_NormSl (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglData_NormSl__SWIG_5(args, nargout);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_NormSl__SWIG_4(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_NormSl__SWIG_3(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_char(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_NormSl__SWIG_2(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_char(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_bool(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_NormSl__SWIG_1(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_char(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_bool(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_bool(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglData_NormSl__SWIG_0(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Put__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  int arg3 ;
+  int arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Put",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Put" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Put" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Put" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Put" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Put" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  (arg1)->Put(arg2,arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Put__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Put",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Put" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Put" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Put" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Put" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->Put(arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Put__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Put",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Put" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Put" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Put" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  (arg1)->Put(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Put__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Put",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Put" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Put" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  (arg1)->Put(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Put__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  int arg3 ;
+  int arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Put",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Put" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Put" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Put" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Put" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Put" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Put" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  (arg1)->Put(*arg2,arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Put__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Put",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Put" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Put" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Put" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Put" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Put" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->Put(*arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Put__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Put",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Put" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Put" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Put" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Put" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  (arg1)->Put(*arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Put__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Put",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Put" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Put" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Put" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->Put(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Put (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[5]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglData_Put__SWIG_7(args, nargout);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Put__SWIG_3(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Put__SWIG_6(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Put__SWIG_2(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Put__SWIG_5(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Put__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Put__SWIG_4(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Put__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Modify__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Modify",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Modify" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Modify" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Modify" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  (arg1)->Modify((char const *)arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Modify__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Modify",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Modify" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Modify" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->Modify((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Modify__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Modify",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Modify" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Modify" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Modify" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Modify" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglData_Modify" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Modify" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Modify((char const *)arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Modify__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Modify",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Modify" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Modify" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Modify" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Modify" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->Modify((char const *)arg2,(mglData const &)*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Modify (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglData_Modify__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglData_Modify__SWIG_3(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Modify__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglData_Modify__SWIG_2(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Fill__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  char arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  char val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Fill",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Fill" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Fill" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_double(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Fill" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = (double)(val3);
+  ecode4 = SWIG_AsVal_char(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Fill" "', argument " "4"" of type '" "char""'");
+  } 
+  arg4 = (char)(val4);
+  (arg1)->Fill(arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Fill__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Fill",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Fill" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Fill" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_double(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Fill" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = (double)(val3);
+  (arg1)->Fill(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Fill (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Fill__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_char(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Fill__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_FillSample (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_FillSample",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_FillSample" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_FillSample" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_FillSample" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->FillSample(arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Column (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Column",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Column" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Column" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  result = (arg1)->Column((char const *)arg2);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_SetColumnId (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_SetColumnId",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_SetColumnId" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_SetColumnId" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->SetColumnId((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Squeeze__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  bool arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  bool val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Squeeze",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Squeeze" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Squeeze" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Squeeze" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Squeeze" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  ecode5 = SWIG_AsVal_bool(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Squeeze" "', argument " "5"" of type '" "bool""'");
+  } 
+  arg5 = (bool)(val5);
+  (arg1)->Squeeze(arg2,arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Squeeze__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Squeeze",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Squeeze" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Squeeze" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Squeeze" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Squeeze" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->Squeeze(arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Squeeze__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Squeeze",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Squeeze" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Squeeze" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Squeeze" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  (arg1)->Squeeze(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Squeeze__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Squeeze",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Squeeze" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Squeeze" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  (arg1)->Squeeze(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Squeeze (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[5]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Squeeze__SWIG_3(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Squeeze__SWIG_2(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Squeeze__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_bool(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Squeeze__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Crop__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  char arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  char val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Crop",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Crop" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Crop" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Crop" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_char(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Crop" "', argument " "4"" of type '" "char""'");
+  } 
+  arg4 = (char)(val4);
+  (arg1)->Crop(arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Crop__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Crop",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Crop" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Crop" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Crop" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  (arg1)->Crop(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Crop (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Crop__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_char(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Crop__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Maximal__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  double result;
+  
+  if (!SWIG_check_num_args("mglData_Maximal",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Maximal" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  result = (double)(arg1)->Maximal();
+  _outv = SWIG_From_double((double)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Minimal__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  double result;
+  
+  if (!SWIG_check_num_args("mglData_Minimal",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Minimal" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  result = (double)(arg1)->Minimal();
+  _outv = SWIG_From_double((double)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Momentum__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char arg2 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Momentum",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Momentum" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_char(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Momentum" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = (char)(val2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Momentum" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  result = (arg1)->Momentum(arg2,(char const *)arg3);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Smooth__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  char *arg3 = (char *) 0 ;
+  double arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Smooth",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Smooth" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Smooth" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Smooth" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_double(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Smooth" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = (double)(val4);
+  (arg1)->Smooth(arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Smooth__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Smooth",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Smooth" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Smooth" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Smooth" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Smooth(arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Smooth__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Smooth",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Smooth" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Smooth" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  (arg1)->Smooth(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Envelop__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Envelop",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Envelop" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_char(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Envelop" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = (char)(val2);
+  (arg1)->Envelop(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Envelop__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Envelop",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Envelop" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  (arg1)->Envelop();
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Envelop (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[2]={
+    octave_value_ref(args,0),octave_value_ref(args,1)
+  };
+  
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglData_Envelop__SWIG_1(args, nargout);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Envelop__SWIG_0(args, nargout);
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Sew__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  double arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Sew",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Sew" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Sew" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  ecode3 = SWIG_AsVal_double(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Sew" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = (double)(val3);
+  (arg1)->Sew((char const *)arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Sew__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Sew",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Sew" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Sew" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->Sew((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Sew__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Sew",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Sew" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  (arg1)->Sew();
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Sew (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglData_Sew__SWIG_2(args, nargout);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglData_Sew__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Sew__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Smooth__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Smooth",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Smooth" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Smooth" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->Smooth((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Smooth__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Smooth",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Smooth" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  (arg1)->Smooth();
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Smooth (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglData_Smooth__SWIG_4(args, nargout);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Smooth__SWIG_2(args, nargout);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglData_Smooth__SWIG_3(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglData_Smooth__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Smooth__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_SubData__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_SubData",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_SubData" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_SubData" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_SubData" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_SubData" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  result = (arg1)->SubData(arg2,arg3,arg4);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_SubData__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_SubData",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_SubData" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_SubData" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_SubData" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  result = (arg1)->SubData(arg2,arg3);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_SubData__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_SubData",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_SubData" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_SubData" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  result = (arg1)->SubData(arg2);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_SubData__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  void *argp4 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_SubData",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_SubData" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_SubData" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_SubData" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_SubData" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_SubData" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglData_SubData" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_SubData" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  result = (arg1)->SubData((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_SubData (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_SubData__SWIG_2(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_SubData__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglData_SubData__SWIG_3(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_SubData__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Hist__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  double arg3 ;
+  double arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Hist",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Hist" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Hist" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_double(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Hist" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = (double)(val3);
+  ecode4 = SWIG_AsVal_double(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Hist" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = (double)(val4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Hist" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  result = (arg1)->Hist(arg2,arg3,arg4,arg5);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Hist__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  double arg3 ;
+  double arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Hist",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Hist" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Hist" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_double(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Hist" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = (double)(val3);
+  ecode4 = SWIG_AsVal_double(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Hist" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = (double)(val4);
+  result = (arg1)->Hist(arg2,arg3,arg4);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Hist__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  double arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Hist",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Hist" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Hist" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_double(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Hist" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = (double)(val3);
+  result = (arg1)->Hist(arg2,arg3);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Hist__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Hist",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Hist" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Hist" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  result = (arg1)->Hist(arg2);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Hist__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  int arg3 ;
+  double arg4 ;
+  double arg5 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Hist",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Hist" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Hist" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Hist" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Hist" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_double(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Hist" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = (double)(val4);
+  ecode5 = SWIG_AsVal_double(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Hist" "', argument " "5"" of type '" "double""'");
+  } 
+  arg5 = (double)(val5);
+  ecode6 = SWIG_AsVal_int(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglData_Hist" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = (int)(val6);
+  result = (arg1)->Hist((mglData const &)*arg2,arg3,arg4,arg5,arg6);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Hist__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  int arg3 ;
+  double arg4 ;
+  double arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Hist",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Hist" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Hist" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Hist" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Hist" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_double(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Hist" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = (double)(val4);
+  ecode5 = SWIG_AsVal_double(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Hist" "', argument " "5"" of type '" "double""'");
+  } 
+  arg5 = (double)(val5);
+  result = (arg1)->Hist((mglData const &)*arg2,arg3,arg4,arg5);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Hist__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  int arg3 ;
+  double arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Hist",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Hist" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Hist" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Hist" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Hist" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_double(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Hist" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = (double)(val4);
+  result = (arg1)->Hist((mglData const &)*arg2,arg3,arg4);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Hist__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Hist",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Hist" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Hist" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Hist" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Hist" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  result = (arg1)->Hist((mglData const &)*arg2,arg3);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Hist (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Hist__SWIG_3(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Hist__SWIG_7(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Hist__SWIG_2(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Hist__SWIG_6(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Hist__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_double(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Hist__SWIG_5(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Hist__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_double(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglData_Hist__SWIG_4(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Sum (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Sum",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Sum" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Sum" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  result = (arg1)->Sum((char const *)arg2);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Max (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Max",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Max" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Max" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  result = (arg1)->Max((char const *)arg2);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Min (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Min",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Min" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Min" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  result = (arg1)->Min((char const *)arg2);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Resize__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  double arg5 ;
+  double arg6 ;
+  double arg7 ;
+  double arg8 ;
+  double arg9 ;
+  double arg10 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  double val6 ;
+  int ecode6 = 0 ;
+  double val7 ;
+  int ecode7 = 0 ;
+  double val8 ;
+  int ecode8 = 0 ;
+  double val9 ;
+  int ecode9 = 0 ;
+  double val10 ;
+  int ecode10 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Resize",args.length(),10,10,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Resize" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Resize" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Resize" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Resize" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  ecode5 = SWIG_AsVal_double(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Resize" "', argument " "5"" of type '" "double""'");
+  } 
+  arg5 = (double)(val5);
+  ecode6 = SWIG_AsVal_double(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglData_Resize" "', argument " "6"" of type '" "double""'");
+  } 
+  arg6 = (double)(val6);
+  ecode7 = SWIG_AsVal_double(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglData_Resize" "', argument " "7"" of type '" "double""'");
+  } 
+  arg7 = (double)(val7);
+  ecode8 = SWIG_AsVal_double(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglData_Resize" "', argument " "8"" of type '" "double""'");
+  } 
+  arg8 = (double)(val8);
+  ecode9 = SWIG_AsVal_double(args(8), &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglData_Resize" "', argument " "9"" of type '" "double""'");
+  } 
+  arg9 = (double)(val9);
+  ecode10 = SWIG_AsVal_double(args(9), &val10);
+  if (!SWIG_IsOK(ecode10)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode10), "in method '" "mglData_Resize" "', argument " "10"" of type '" "double""'");
+  } 
+  arg10 = (double)(val10);
+  result = (arg1)->Resize(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Resize__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  double arg5 ;
+  double arg6 ;
+  double arg7 ;
+  double arg8 ;
+  double arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  double val6 ;
+  int ecode6 = 0 ;
+  double val7 ;
+  int ecode7 = 0 ;
+  double val8 ;
+  int ecode8 = 0 ;
+  double val9 ;
+  int ecode9 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Resize",args.length(),9,9,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Resize" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Resize" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Resize" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Resize" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  ecode5 = SWIG_AsVal_double(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Resize" "', argument " "5"" of type '" "double""'");
+  } 
+  arg5 = (double)(val5);
+  ecode6 = SWIG_AsVal_double(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglData_Resize" "', argument " "6"" of type '" "double""'");
+  } 
+  arg6 = (double)(val6);
+  ecode7 = SWIG_AsVal_double(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglData_Resize" "', argument " "7"" of type '" "double""'");
+  } 
+  arg7 = (double)(val7);
+  ecode8 = SWIG_AsVal_double(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglData_Resize" "', argument " "8"" of type '" "double""'");
+  } 
+  arg8 = (double)(val8);
+  ecode9 = SWIG_AsVal_double(args(8), &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglData_Resize" "', argument " "9"" of type '" "double""'");
+  } 
+  arg9 = (double)(val9);
+  result = (arg1)->Resize(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Resize__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  double arg5 ;
+  double arg6 ;
+  double arg7 ;
+  double arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  double val6 ;
+  int ecode6 = 0 ;
+  double val7 ;
+  int ecode7 = 0 ;
+  double val8 ;
+  int ecode8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Resize",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Resize" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Resize" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Resize" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Resize" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  ecode5 = SWIG_AsVal_double(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Resize" "', argument " "5"" of type '" "double""'");
+  } 
+  arg5 = (double)(val5);
+  ecode6 = SWIG_AsVal_double(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglData_Resize" "', argument " "6"" of type '" "double""'");
+  } 
+  arg6 = (double)(val6);
+  ecode7 = SWIG_AsVal_double(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglData_Resize" "', argument " "7"" of type '" "double""'");
+  } 
+  arg7 = (double)(val7);
+  ecode8 = SWIG_AsVal_double(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglData_Resize" "', argument " "8"" of type '" "double""'");
+  } 
+  arg8 = (double)(val8);
+  result = (arg1)->Resize(arg2,arg3,arg4,arg5,arg6,arg7,arg8);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Resize__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  double arg5 ;
+  double arg6 ;
+  double arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  double val6 ;
+  int ecode6 = 0 ;
+  double val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Resize",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Resize" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Resize" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Resize" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Resize" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  ecode5 = SWIG_AsVal_double(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Resize" "', argument " "5"" of type '" "double""'");
+  } 
+  arg5 = (double)(val5);
+  ecode6 = SWIG_AsVal_double(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglData_Resize" "', argument " "6"" of type '" "double""'");
+  } 
+  arg6 = (double)(val6);
+  ecode7 = SWIG_AsVal_double(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglData_Resize" "', argument " "7"" of type '" "double""'");
+  } 
+  arg7 = (double)(val7);
+  result = (arg1)->Resize(arg2,arg3,arg4,arg5,arg6,arg7);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Resize__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  double arg5 ;
+  double arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  double val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Resize",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Resize" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Resize" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Resize" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Resize" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  ecode5 = SWIG_AsVal_double(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Resize" "', argument " "5"" of type '" "double""'");
+  } 
+  arg5 = (double)(val5);
+  ecode6 = SWIG_AsVal_double(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglData_Resize" "', argument " "6"" of type '" "double""'");
+  } 
+  arg6 = (double)(val6);
+  result = (arg1)->Resize(arg2,arg3,arg4,arg5,arg6);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Resize__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  double arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Resize",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Resize" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Resize" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Resize" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Resize" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  ecode5 = SWIG_AsVal_double(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Resize" "', argument " "5"" of type '" "double""'");
+  } 
+  arg5 = (double)(val5);
+  result = (arg1)->Resize(arg2,arg3,arg4,arg5);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Resize__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Resize",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Resize" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Resize" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Resize" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Resize" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  result = (arg1)->Resize(arg2,arg3,arg4);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Resize__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Resize",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Resize" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Resize" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Resize" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  result = (arg1)->Resize(arg2,arg3);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Resize__SWIG_8 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Resize",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Resize" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Resize" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  result = (arg1)->Resize(arg2);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Resize (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[10]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7),octave_value_ref(args,8),octave_value_ref(args,9)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Resize__SWIG_8(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Resize__SWIG_7(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Resize__SWIG_6(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_double(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Resize__SWIG_5(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_double(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_double(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglData_Resize__SWIG_4(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_double(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_double(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_double(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglData_Resize__SWIG_3(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_double(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_double(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_double(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_double(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglData_Resize__SWIG_2(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_double(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_double(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_double(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_double(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_double(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglData_Resize__SWIG_1(args, nargout);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 10) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_double(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_double(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_double(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_double(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_double(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      {
+                        int res = SWIG_AsVal_double(argv[9], NULL);
+                        _v = SWIG_CheckState(res);
+                      }
+                      if (_v) {
+                        return _wrap_mglData_Resize__SWIG_0(args, nargout);
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Combine (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Combine",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Combine" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Combine" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Combine" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  result = (arg1)->Combine((mglData const &)*arg2);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Evaluate__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  bool arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  bool val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Evaluate",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Evaluate" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Evaluate" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Evaluate" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  ecode3 = SWIG_AsVal_bool(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Evaluate" "', argument " "3"" of type '" "bool""'");
+  } 
+  arg3 = (bool)(val3);
+  result = (arg1)->Evaluate((mglData const &)*arg2,arg3);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Evaluate__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Evaluate",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Evaluate" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Evaluate" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Evaluate" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  result = (arg1)->Evaluate((mglData const &)*arg2);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Evaluate__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  bool arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  bool val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Evaluate",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Evaluate" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Evaluate" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Evaluate" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Evaluate" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Evaluate" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  ecode4 = SWIG_AsVal_bool(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Evaluate" "', argument " "4"" of type '" "bool""'");
+  } 
+  arg4 = (bool)(val4);
+  result = (arg1)->Evaluate((mglData const &)*arg2,(mglData const &)*arg3,arg4);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Evaluate__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Evaluate",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Evaluate" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Evaluate" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Evaluate" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Evaluate" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Evaluate" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  result = (arg1)->Evaluate((mglData const &)*arg2,(mglData const &)*arg3);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Evaluate__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  bool arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  void *argp4 ;
+  int res4 = 0 ;
+  bool val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Evaluate",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Evaluate" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Evaluate" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Evaluate" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Evaluate" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Evaluate" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglData_Evaluate" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Evaluate" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  ecode5 = SWIG_AsVal_bool(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Evaluate" "', argument " "5"" of type '" "bool""'");
+  } 
+  arg5 = (bool)(val5);
+  result = (arg1)->Evaluate((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,arg5);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Evaluate__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  void *argp4 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglData_Evaluate",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Evaluate" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Evaluate" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Evaluate" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Evaluate" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Evaluate" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglData_Evaluate" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Evaluate" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  result = (arg1)->Evaluate((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Evaluate (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[5]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglData_Evaluate__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglData_Evaluate__SWIG_3(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_bool(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Evaluate__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglData_Evaluate__SWIG_5(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_bool(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Evaluate__SWIG_2(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_bool(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Evaluate__SWIG_4(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_CumSum (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_CumSum",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_CumSum" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_CumSum" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->CumSum((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Integral (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Integral",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Integral" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Integral" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->Integral((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Diff__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Diff",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Diff" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Diff" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->Diff((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Diff__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Diff",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Diff" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Diff" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Diff" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Diff" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Diff" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->Diff((mglData const &)*arg2,(mglData const &)*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Diff__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  void *argp4 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Diff",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Diff" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Diff" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Diff" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Diff" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Diff" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglData_Diff" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Diff" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Diff((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Diff (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglData_Diff__SWIG_0(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglData_Diff__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglData_Diff__SWIG_2(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Diff2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Diff2",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Diff2" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Diff2" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->Diff2((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Swap (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Swap",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Swap" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Swap" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->Swap((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Roll (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Roll",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Roll" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_char(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Roll" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = (char)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Roll" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  (arg1)->Roll(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Mirror (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Mirror",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Mirror" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Mirror" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->Mirror((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Hankel (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Hankel",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Hankel" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Hankel" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->Hankel((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_SinFFT (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_SinFFT",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_SinFFT" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_SinFFT" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->SinFFT((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_CosFFT (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_CosFFT",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_CosFFT" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_CosFFT" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->CosFFT((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Spline__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  double arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  double result;
+  
+  if (!SWIG_check_num_args("mglData_Spline",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Spline" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Spline" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_double(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Spline" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = (double)(val3);
+  ecode4 = SWIG_AsVal_double(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Spline" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = (double)(val4);
+  result = (double)(arg1)->Spline(arg2,arg3,arg4);
+  _outv = SWIG_From_double((double)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Spline__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  double result;
+  
+  if (!SWIG_check_num_args("mglData_Spline",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Spline" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Spline" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_double(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Spline" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = (double)(val3);
+  result = (double)(arg1)->Spline(arg2,arg3);
+  _outv = SWIG_From_double((double)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Spline__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  double result;
+  
+  if (!SWIG_check_num_args("mglData_Spline",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Spline" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Spline" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  result = (double)(arg1)->Spline(arg2);
+  _outv = SWIG_From_double((double)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Spline (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Spline__SWIG_2(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Spline__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Spline__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Spline1__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  double arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  double result;
+  
+  if (!SWIG_check_num_args("mglData_Spline1",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Spline1" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Spline1" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_double(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Spline1" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = (double)(val3);
+  ecode4 = SWIG_AsVal_double(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Spline1" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = (double)(val4);
+  result = (double)(arg1)->Spline1(arg2,arg3,arg4);
+  _outv = SWIG_From_double((double)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Spline1__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  double result;
+  
+  if (!SWIG_check_num_args("mglData_Spline1",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Spline1" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Spline1" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_double(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Spline1" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = (double)(val3);
+  result = (double)(arg1)->Spline1(arg2,arg3);
+  _outv = SWIG_From_double((double)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Spline1__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  double result;
+  
+  if (!SWIG_check_num_args("mglData_Spline1",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Spline1" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Spline1" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  result = (double)(arg1)->Spline1(arg2);
+  _outv = SWIG_From_double((double)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Spline1 (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Spline1__SWIG_2(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Spline1__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Spline1__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Linear__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  double arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  double result;
+  
+  if (!SWIG_check_num_args("mglData_Linear",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Linear" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Linear" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_double(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Linear" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = (double)(val3);
+  ecode4 = SWIG_AsVal_double(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Linear" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = (double)(val4);
+  result = (double)(arg1)->Linear(arg2,arg3,arg4);
+  _outv = SWIG_From_double((double)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Linear__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  double result;
+  
+  if (!SWIG_check_num_args("mglData_Linear",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Linear" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Linear" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_double(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Linear" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = (double)(val3);
+  result = (double)(arg1)->Linear(arg2,arg3);
+  _outv = SWIG_From_double((double)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Linear__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  double result;
+  
+  if (!SWIG_check_num_args("mglData_Linear",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Linear" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Linear" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  result = (double)(arg1)->Linear(arg2);
+  _outv = SWIG_From_double((double)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Linear (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Linear__SWIG_2(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Linear__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Linear__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Linear1__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  double arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  double result;
+  
+  if (!SWIG_check_num_args("mglData_Linear1",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Linear1" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Linear1" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_double(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Linear1" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = (double)(val3);
+  ecode4 = SWIG_AsVal_double(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Linear1" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = (double)(val4);
+  result = (double)(arg1)->Linear1(arg2,arg3,arg4);
+  _outv = SWIG_From_double((double)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Linear1__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  double result;
+  
+  if (!SWIG_check_num_args("mglData_Linear1",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Linear1" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Linear1" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_double(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Linear1" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = (double)(val3);
+  result = (double)(arg1)->Linear1(arg2,arg3);
+  _outv = SWIG_From_double((double)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Linear1__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  double result;
+  
+  if (!SWIG_check_num_args("mglData_Linear1",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Linear1" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Linear1" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  result = (double)(arg1)->Linear1(arg2);
+  _outv = SWIG_From_double((double)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Linear1 (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Linear1__SWIG_2(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Linear1__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Linear1__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Insert__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char arg2 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Insert",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Insert" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_char(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Insert" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = (char)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Insert" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Insert" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->Insert(arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Insert__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Insert",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Insert" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_char(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Insert" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = (char)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Insert" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  (arg1)->Insert(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Insert__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Insert",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Insert" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_char(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Insert" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = (char)(val2);
+  (arg1)->Insert(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Insert (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Insert__SWIG_2(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Insert__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Insert__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Delete__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char arg2 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Delete",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Delete" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_char(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Delete" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = (char)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Delete" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Delete" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->Delete(arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Delete__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Delete",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Delete" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_char(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Delete" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = (char)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Delete" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  (arg1)->Delete(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Delete__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_Delete",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Delete" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_char(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Delete" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = (char)(val2);
+  (arg1)->Delete(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Delete (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Delete__SWIG_2(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Delete__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Delete__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Find__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int *arg3 = 0 ;
+  int *arg4 = 0 ;
+  int *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mreal result;
+  
+  if (!SWIG_check_num_args("mglData_Find",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Find" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Find" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_int,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Find" "', argument " "3"" of type '" "int &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Find" "', argument " "3"" of type '" "int &""'"); 
+  }
+  arg3 = (int *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_int,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglData_Find" "', argument " "4"" of type '" "int &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Find" "', argument " "4"" of type '" "int &""'"); 
+  }
+  arg4 = (int *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_int,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglData_Find" "', argument " "5"" of type '" "int &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Find" "', argument " "5"" of type '" "int &""'"); 
+  }
+  arg5 = (int *)(argp5);
+  result = (arg1)->Find((char const *)arg2,*arg3,*arg4,*arg5);
+  _outv = SWIG_NewPointerObj((new mreal((const mreal&)(result))), SWIGTYPE_p_mreal, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Last (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int *arg3 = 0 ;
+  int *arg4 = 0 ;
+  int *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mreal result;
+  
+  if (!SWIG_check_num_args("mglData_Last",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Last" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Last" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_int,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Last" "', argument " "3"" of type '" "int &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Last" "', argument " "3"" of type '" "int &""'"); 
+  }
+  arg3 = (int *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_int,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglData_Last" "', argument " "4"" of type '" "int &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Last" "', argument " "4"" of type '" "int &""'"); 
+  }
+  arg4 = (int *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_int,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglData_Last" "', argument " "5"" of type '" "int &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Last" "', argument " "5"" of type '" "int &""'"); 
+  }
+  arg5 = (int *)(argp5);
+  result = (arg1)->Last((char const *)arg2,*arg3,*arg4,*arg5);
+  _outv = SWIG_NewPointerObj((new mreal((const mreal&)(result))), SWIGTYPE_p_mreal, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Find__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char arg3 ;
+  int arg4 ;
+  int arg5 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  char val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  int result;
+  
+  if (!SWIG_check_num_args("mglData_Find",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Find" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Find" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  ecode3 = SWIG_AsVal_char(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Find" "', argument " "3"" of type '" "char""'");
+  } 
+  arg3 = (char)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Find" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Find" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  ecode6 = SWIG_AsVal_int(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglData_Find" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = (int)(val6);
+  result = (int)(arg1)->Find((char const *)arg2,arg3,arg4,arg5,arg6);
+  _outv = SWIG_From_int((int)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Find__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char arg3 ;
+  int arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  char val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  int result;
+  
+  if (!SWIG_check_num_args("mglData_Find",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Find" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Find" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  ecode3 = SWIG_AsVal_char(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Find" "', argument " "3"" of type '" "char""'");
+  } 
+  arg3 = (char)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Find" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Find" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  result = (int)(arg1)->Find((char const *)arg2,arg3,arg4,arg5);
+  _outv = SWIG_From_int((int)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Find__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  char val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  int result;
+  
+  if (!SWIG_check_num_args("mglData_Find",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Find" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Find" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  ecode3 = SWIG_AsVal_char(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Find" "', argument " "3"" of type '" "char""'");
+  } 
+  arg3 = (char)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Find" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  result = (int)(arg1)->Find((char const *)arg2,arg3,arg4);
+  _outv = SWIG_From_int((int)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Find__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  char val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  int result;
+  
+  if (!SWIG_check_num_args("mglData_Find",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Find" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Find" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  ecode3 = SWIG_AsVal_char(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Find" "', argument " "3"" of type '" "char""'");
+  } 
+  arg3 = (char)(val3);
+  result = (int)(arg1)->Find((char const *)arg2,arg3);
+  _outv = SWIG_From_int((int)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Find (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_char(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Find__SWIG_4(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_char(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Find__SWIG_3(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_int, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_int, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_int, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglData_Find__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_char(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Find__SWIG_2(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_char(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglData_Find__SWIG_1(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_FindAny (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  bool result;
+  
+  if (!SWIG_check_num_args("mglData_FindAny",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_FindAny" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_FindAny" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  result = (bool)(arg1)->FindAny((char const *)arg2);
+  _outv = SWIG_From_bool((bool)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Maximal__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int *arg2 = 0 ;
+  int *arg3 = 0 ;
+  int *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  float result;
+  
+  if (!SWIG_check_num_args("mglData_Maximal",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Maximal" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_int,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Maximal" "', argument " "2"" of type '" "int &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Maximal" "', argument " "2"" of type '" "int &""'"); 
+  }
+  arg2 = (int *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_int,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Maximal" "', argument " "3"" of type '" "int &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Maximal" "', argument " "3"" of type '" "int &""'"); 
+  }
+  arg3 = (int *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_int,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglData_Maximal" "', argument " "4"" of type '" "int &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Maximal" "', argument " "4"" of type '" "int &""'"); 
+  }
+  arg4 = (int *)(argp4);
+  result = (float)(arg1)->Maximal(*arg2,*arg3,*arg4);
+  _outv = SWIG_From_float((float)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Minimal__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int *arg2 = 0 ;
+  int *arg3 = 0 ;
+  int *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  float result;
+  
+  if (!SWIG_check_num_args("mglData_Minimal",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Minimal" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_int,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Minimal" "', argument " "2"" of type '" "int &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Minimal" "', argument " "2"" of type '" "int &""'"); 
+  }
+  arg2 = (int *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_int,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Minimal" "', argument " "3"" of type '" "int &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Minimal" "', argument " "3"" of type '" "int &""'"); 
+  }
+  arg3 = (int *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_int,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglData_Minimal" "', argument " "4"" of type '" "int &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Minimal" "', argument " "4"" of type '" "int &""'"); 
+  }
+  arg4 = (int *)(argp4);
+  result = (float)(arg1)->Minimal(*arg2,*arg3,*arg4);
+  _outv = SWIG_From_float((float)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Maximal__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  float *arg2 = 0 ;
+  float *arg3 = 0 ;
+  float *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  float result;
+  
+  if (!SWIG_check_num_args("mglData_Maximal",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Maximal" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_float,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Maximal" "', argument " "2"" of type '" "float &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Maximal" "', argument " "2"" of type '" "float &""'"); 
+  }
+  arg2 = (float *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_float,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Maximal" "', argument " "3"" of type '" "float &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Maximal" "', argument " "3"" of type '" "float &""'"); 
+  }
+  arg3 = (float *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_float,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglData_Maximal" "', argument " "4"" of type '" "float &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Maximal" "', argument " "4"" of type '" "float &""'"); 
+  }
+  arg4 = (float *)(argp4);
+  result = (float)(arg1)->Maximal(*arg2,*arg3,*arg4);
+  _outv = SWIG_From_float((float)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Maximal (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglData_Maximal__SWIG_0(args, nargout);
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_int, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_int, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_int, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglData_Maximal__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_float, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_float, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_float, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglData_Maximal__SWIG_2(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Minimal__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  float *arg2 = 0 ;
+  float *arg3 = 0 ;
+  float *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  float result;
+  
+  if (!SWIG_check_num_args("mglData_Minimal",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Minimal" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_float,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Minimal" "', argument " "2"" of type '" "float &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Minimal" "', argument " "2"" of type '" "float &""'"); 
+  }
+  arg2 = (float *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_float,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Minimal" "', argument " "3"" of type '" "float &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Minimal" "', argument " "3"" of type '" "float &""'"); 
+  }
+  arg3 = (float *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_float,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglData_Minimal" "', argument " "4"" of type '" "float &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Minimal" "', argument " "4"" of type '" "float &""'"); 
+  }
+  arg4 = (float *)(argp4);
+  result = (float)(arg1)->Minimal(*arg2,*arg3,*arg4);
+  _outv = SWIG_From_float((float)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Minimal (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglData_Minimal__SWIG_0(args, nargout);
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_int, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_int, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_int, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglData_Minimal__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_float, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_float, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_float, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglData_Minimal__SWIG_2(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_Momentum__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  char arg2 ;
+  float *arg3 = 0 ;
+  float *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  float result;
+  
+  if (!SWIG_check_num_args("mglData_Momentum",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Momentum" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_char(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Momentum" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = (char)(val2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_float,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Momentum" "', argument " "3"" of type '" "float &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Momentum" "', argument " "3"" of type '" "float &""'"); 
+  }
+  arg3 = (float *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_float,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglData_Momentum" "', argument " "4"" of type '" "float &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Momentum" "', argument " "4"" of type '" "float &""'"); 
+  }
+  arg4 = (float *)(argp4);
+  result = (float)(arg1)->Momentum(arg2,*arg3,*arg4);
+  _outv = SWIG_From_float((float)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_Momentum (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglData_Momentum__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_float, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_float, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglData_Momentum__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_v__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  double result;
+  
+  if (!SWIG_check_num_args("mglData_v",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_v" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_v" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_v" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_v" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  result = (double)(arg1)->v(arg2,arg3,arg4);
+  _outv = SWIG_From_double((double)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_v__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  double result;
+  
+  if (!SWIG_check_num_args("mglData_v",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_v" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_v" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_v" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  result = (double)(arg1)->v(arg2,arg3);
+  _outv = SWIG_From_double((double)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_v__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  double result;
+  
+  if (!SWIG_check_num_args("mglData_v",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_v" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_v" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  result = (double)(arg1)->v(arg2);
+  _outv = SWIG_From_double((double)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_v (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_v__SWIG_2(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_v__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_v__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_GetVal__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  double result;
+  
+  if (!SWIG_check_num_args("mglData_GetVal",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_GetVal" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_GetVal" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_GetVal" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_GetVal" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  result = (double)(arg1)->GetVal(arg2,arg3,arg4);
+  _outv = SWIG_From_double((double)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_GetVal__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  double result;
+  
+  if (!SWIG_check_num_args("mglData_GetVal",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_GetVal" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_GetVal" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_GetVal" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  result = (double)(arg1)->GetVal(arg2,arg3);
+  _outv = SWIG_From_double((double)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_GetVal__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  double result;
+  
+  if (!SWIG_check_num_args("mglData_GetVal",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_GetVal" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_GetVal" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  result = (double)(arg1)->GetVal(arg2);
+  _outv = SWIG_From_double((double)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_GetVal (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_GetVal__SWIG_2(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_GetVal__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_GetVal__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_SetVal__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  int arg3 ;
+  int arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_SetVal",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_SetVal" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_SetVal" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_SetVal" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_SetVal" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_SetVal" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  (arg1)->SetVal(arg2,arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_SetVal__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_SetVal",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_SetVal" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_SetVal" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_SetVal" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_SetVal" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->SetVal(arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_SetVal__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData_SetVal",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_SetVal" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_SetVal" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_SetVal" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  (arg1)->SetVal(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_SetVal (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[5]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_SetVal__SWIG_2(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_SetVal__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_SetVal__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglData_GetNx (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  long result;
+  
+  if (!SWIG_check_num_args("mglData_GetNx",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_GetNx" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  result = (long)(arg1)->GetNx();
+  _outv = SWIG_From_long((long)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_GetNy (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  long result;
+  
+  if (!SWIG_check_num_args("mglData_GetNy",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_GetNy" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  result = (long)(arg1)->GetNy();
+  _outv = SWIG_From_long((long)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_GetNz (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  long result;
+  
+  if (!SWIG_check_num_args("mglData_GetNz",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_GetNz" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  result = (long)(arg1)->GetNz();
+  _outv = SWIG_From_long((long)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData_GetData (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mreal *result = 0 ;
+  
+  if (!SWIG_check_num_args("mglData_GetData",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_GetData" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  result = (mreal *)(arg1)->GetData();
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mreal, 0 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData___getitem__ (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  float result;
+  
+  if (!SWIG_check_num_args("mglData___getitem__",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData___getitem__" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData___getitem__" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  result = (float)mglData___getitem__(arg1,arg2);
+  _outv = SWIG_From_float((float)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData___paren (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  float result;
+  
+  if (!SWIG_check_num_args("mglData___paren",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData___paren" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData___paren" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  result = (float)mglData___paren(arg1,arg2);
+  _outv = SWIG_From_float((float)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData___setitem__ (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  float arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData___setitem__",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData___setitem__" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData___setitem__" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData___setitem__" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  mglData___setitem__(arg1,arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglData___paren_asgn (const octave_value_list& args, int nargout) {
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  float arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglData___paren_asgn",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData___paren_asgn" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = (mglData *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData___paren_asgn" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData___paren_asgn" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  mglData___paren_asgn(arg1,arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static swig_octave_member swig_mglData_members[] = {
+{"Self",_wrap_mglData_Self,0,0,0,0},
+{"Rearrange",_wrap_mglData_Rearrange,0,0,0,0},
+{"Set",_wrap_mglData_Set,0,0,0,0},
+{"Read",_wrap_mglData_Read,0,0,0,0},
+{"Save",_wrap_mglData_Save,0,0,0,0},
+{"Export",_wrap_mglData_Export,0,0,0,0},
+{"Import",_wrap_mglData_Import,0,0,0,0},
+{"ReadMat",_wrap_mglData_ReadMat,0,0,0,0},
+{"Create",_wrap_mglData_Create,0,0,0,0},
+{"Extend",_wrap_mglData_Extend,0,0,0,0},
+{"Transpose",_wrap_mglData_Transpose,0,0,0,0},
+{"Norm",_wrap_mglData_Norm,0,0,0,0},
+{"NormSl",_wrap_mglData_NormSl,0,0,0,0},
+{"Put",_wrap_mglData_Put,0,0,0,0},
+{"Modify",_wrap_mglData_Modify,0,0,0,0},
+{"Fill",_wrap_mglData_Fill,0,0,0,0},
+{"FillSample",_wrap_mglData_FillSample,0,0,0,0},
+{"Column",_wrap_mglData_Column,0,0,0,0},
+{"SetColumnId",_wrap_mglData_SetColumnId,0,0,0,0},
+{"Squeeze",_wrap_mglData_Squeeze,0,0,0,0},
+{"Crop",_wrap_mglData_Crop,0,0,0,0},
+{"Envelop",_wrap_mglData_Envelop,0,0,0,0},
+{"Sew",_wrap_mglData_Sew,0,0,0,0},
+{"Smooth",_wrap_mglData_Smooth,0,0,0,0},
+{"SubData",_wrap_mglData_SubData,0,0,0,0},
+{"Hist",_wrap_mglData_Hist,0,0,0,0},
+{"Sum",_wrap_mglData_Sum,0,0,0,0},
+{"Max",_wrap_mglData_Max,0,0,0,0},
+{"Min",_wrap_mglData_Min,0,0,0,0},
+{"Resize",_wrap_mglData_Resize,0,0,0,0},
+{"Combine",_wrap_mglData_Combine,0,0,0,0},
+{"Evaluate",_wrap_mglData_Evaluate,0,0,0,0},
+{"CumSum",_wrap_mglData_CumSum,0,0,0,0},
+{"Integral",_wrap_mglData_Integral,0,0,0,0},
+{"Diff",_wrap_mglData_Diff,0,0,0,0},
+{"Diff2",_wrap_mglData_Diff2,0,0,0,0},
+{"Swap",_wrap_mglData_Swap,0,0,0,0},
+{"Roll",_wrap_mglData_Roll,0,0,0,0},
+{"Mirror",_wrap_mglData_Mirror,0,0,0,0},
+{"Hankel",_wrap_mglData_Hankel,0,0,0,0},
+{"SinFFT",_wrap_mglData_SinFFT,0,0,0,0},
+{"CosFFT",_wrap_mglData_CosFFT,0,0,0,0},
+{"Spline",_wrap_mglData_Spline,0,0,0,0},
+{"Spline1",_wrap_mglData_Spline1,0,0,0,0},
+{"Linear",_wrap_mglData_Linear,0,0,0,0},
+{"Linear1",_wrap_mglData_Linear1,0,0,0,0},
+{"Insert",_wrap_mglData_Insert,0,0,0,0},
+{"Delete",_wrap_mglData_Delete,0,0,0,0},
+{"Last",_wrap_mglData_Last,0,0,0,0},
+{"Find",_wrap_mglData_Find,0,0,0,0},
+{"FindAny",_wrap_mglData_FindAny,0,0,0,0},
+{"Maximal",_wrap_mglData_Maximal,0,0,0,0},
+{"Minimal",_wrap_mglData_Minimal,0,0,0,0},
+{"Momentum",_wrap_mglData_Momentum,0,0,0,0},
+{"v",_wrap_mglData_v,0,0,0,0},
+{"GetVal",_wrap_mglData_GetVal,0,0,0,0},
+{"SetVal",_wrap_mglData_SetVal,0,0,0,0},
+{"GetNx",_wrap_mglData_GetNx,0,0,0,0},
+{"GetNy",_wrap_mglData_GetNy,0,0,0,0},
+{"GetNz",_wrap_mglData_GetNz,0,0,0,0},
+{"GetData",_wrap_mglData_GetData,0,0,0,0},
+{"__getitem__",_wrap_mglData___getitem__,0,0,0,0},
+{"__paren",_wrap_mglData___paren,0,0,0,0},
+{"__setitem__",_wrap_mglData___setitem__,0,0,0,0},
+{"__paren_asgn",_wrap_mglData___paren_asgn,0,0,0,0},
+{0,0,0,0}
+};
+static const char *swig_mglData_base_names[] = {0};
+static const swig_type_info *swig_mglData_base[] = {0};
+static swig_octave_class _wrap_class_mglData = {"mglData", &SWIGTYPE_p_mglData,0,_wrap_new_mglData,0,_wrap_delete_mglData,swig_mglData_members,swig_mglData_base_names,swig_mglData_base };
+
+static octave_value_list _wrap_new_mglGraph__SWIG_0 (const octave_value_list& args, int nargout) {
+  int arg1 ;
+  int arg2 ;
+  int arg3 ;
+  int val1 ;
+  int ecode1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglGraph *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglGraph",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  ecode1 = SWIG_AsVal_int(args(0), &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_mglGraph" "', argument " "1"" of type '" "int""'");
+  } 
+  arg1 = (int)(val1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglGraph" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_mglGraph" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  result = (mglGraph *)new mglGraph(arg1,arg2,arg3);
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglGraph, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglGraph__SWIG_1 (const octave_value_list& args, int nargout) {
+  int arg1 ;
+  int arg2 ;
+  int val1 ;
+  int ecode1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglGraph *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglGraph",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  ecode1 = SWIG_AsVal_int(args(0), &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_mglGraph" "', argument " "1"" of type '" "int""'");
+  } 
+  arg1 = (int)(val1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglGraph" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  result = (mglGraph *)new mglGraph(arg1,arg2);
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglGraph, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglGraph__SWIG_2 (const octave_value_list& args, int nargout) {
+  int arg1 ;
+  int val1 ;
+  int ecode1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglGraph *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglGraph",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  ecode1 = SWIG_AsVal_int(args(0), &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_mglGraph" "', argument " "1"" of type '" "int""'");
+  } 
+  arg1 = (int)(val1);
+  result = (mglGraph *)new mglGraph(arg1);
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglGraph, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglGraph__SWIG_3 (const octave_value_list& args, int nargout) {
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglGraph *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglGraph",args.length(),0,0,0)) {
+    SWIG_fail;
+  }
+  result = (mglGraph *)new mglGraph();
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglGraph, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_new_mglGraph (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 0) {
+    return _wrap_new_mglGraph__SWIG_3(args, nargout);
+  }
+  if (argc == 1) {
+    int _v;
+    {
+      int res = SWIG_AsVal_int(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      return _wrap_new_mglGraph__SWIG_2(args, nargout);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    {
+      int res = SWIG_AsVal_int(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_new_mglGraph__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    {
+      int res = SWIG_AsVal_int(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_new_mglGraph__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_delete_mglGraph (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("delete_mglGraph",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_mglGraph" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  delete arg1;
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Self (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  HMGL result;
+  
+  if (!SWIG_check_num_args("mglGraph_Self",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Self" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  result = (arg1)->Self();
+  _outv = SWIG_NewPointerObj((new HMGL((const HMGL&)(result))), SWIGTYPE_p_HMGL, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_GetWarn (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  int result;
+  
+  if (!SWIG_check_num_args("mglGraph_GetWarn",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_GetWarn" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  result = (int)(arg1)->GetWarn();
+  _outv = SWIG_From_int((int)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_DefaultPlotParam (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_DefaultPlotParam",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_DefaultPlotParam" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  (arg1)->DefaultPlotParam();
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetPalColor (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetPalColor",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetPalColor" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetPalColor" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetPalColor" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SetPalColor" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_SetPalColor" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->SetPalColor(arg2,arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetPalNum (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetPalNum",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetPalNum" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetPalNum" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  (arg1)->SetPalNum(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetPalette (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetPalette",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetPalette" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetPalette" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->SetPalette((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetScheme (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetScheme",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetScheme" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetScheme" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->SetScheme((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetRotatedText (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  bool arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetRotatedText",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetRotatedText" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_bool(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetRotatedText" "', argument " "2"" of type '" "bool""'");
+  } 
+  arg2 = (bool)(val2);
+  (arg1)->SetRotatedText(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetCut (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  bool arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetCut",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetCut" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_bool(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetCut" "', argument " "2"" of type '" "bool""'");
+  } 
+  arg2 = (bool)(val2);
+  (arg1)->SetCut(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetCutBox (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetCutBox",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetCutBox" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetCutBox" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetCutBox" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SetCutBox" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_SetCutBox" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_SetCutBox" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_SetCutBox" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  (arg1)->SetCutBox(arg2,arg3,arg4,arg5,arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetTickLen__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetTickLen",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetTickLen" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetTickLen" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetTickLen" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  (arg1)->SetTickLen(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetTickLen__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetTickLen",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetTickLen" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetTickLen" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  (arg1)->SetTickLen(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetTickLen (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglGraph_SetTickLen__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_SetTickLen__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_SetTickStl__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetTickStl",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetTickStl" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetTickStl" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_SetTickStl" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->SetTickStl((char const *)arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetTickStl__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetTickStl",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetTickStl" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetTickStl" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->SetTickStl((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetTickStl (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_SetTickStl__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_SetTickStl__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_SetBaseLineWidth (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetBaseLineWidth",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetBaseLineWidth" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetBaseLineWidth" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  (arg1)->SetBaseLineWidth(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetSize (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetSize",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetSize" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetSize" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetSize" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  (arg1)->SetSize(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetBarWidth (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetBarWidth",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetBarWidth" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetBarWidth" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  (arg1)->SetBarWidth(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetMarkSize (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetMarkSize",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetMarkSize" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetMarkSize" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  (arg1)->SetMarkSize(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetArrowSize (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetArrowSize",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetArrowSize" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetArrowSize" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  (arg1)->SetArrowSize(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetFontSize (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetFontSize",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetFontSize" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetFontSize" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  (arg1)->SetFontSize(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetFontDef (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetFontDef",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetFontDef" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetFontDef" "', argument " "2"" of type '" "char *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->SetFontDef(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetAlphaDef (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetAlphaDef",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetAlphaDef" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetAlphaDef" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  (arg1)->SetAlphaDef(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetAxialDir (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetAxialDir",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetAxialDir" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_char(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetAxialDir" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = (char)(val2);
+  (arg1)->SetAxialDir(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetMeshNum (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetMeshNum",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetMeshNum" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetMeshNum" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  (arg1)->SetMeshNum(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Zoom (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Zoom",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Zoom" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Zoom" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Zoom" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Zoom" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Zoom" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->Zoom(arg2,arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetPlotFactor (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetPlotFactor",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetPlotFactor" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetPlotFactor" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  (arg1)->SetPlotFactor(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetDrawFace (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  bool arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetDrawFace",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetDrawFace" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_bool(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetDrawFace" "', argument " "2"" of type '" "bool""'");
+  } 
+  arg2 = (bool)(val2);
+  (arg1)->SetDrawFace(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetLegendBox (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  bool arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetLegendBox",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetLegendBox" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_bool(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetLegendBox" "', argument " "2"" of type '" "bool""'");
+  } 
+  arg2 = (bool)(val2);
+  (arg1)->SetLegendBox(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetLegendMarks (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetLegendMarks",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetLegendMarks" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetLegendMarks" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  (arg1)->SetLegendMarks(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_LoadFont__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_LoadFont",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_LoadFont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_LoadFont" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_LoadFont" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->LoadFont((char const *)arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_LoadFont__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_LoadFont",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_LoadFont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_LoadFont" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->LoadFont((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_LoadFont (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_LoadFont__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_LoadFont__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_CopyFont (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglGraph *arg2 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_CopyFont",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_CopyFont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_CopyFont" "', argument " "2"" of type '" "mglGraph *""'"); 
+  }
+  arg2 = (mglGraph *)(argp2);
+  (arg1)->CopyFont(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_RestoreFont (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_RestoreFont",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_RestoreFont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  (arg1)->RestoreFont();
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ShowImage__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  bool arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  bool val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ShowImage",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ShowImage" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ShowImage" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  ecode3 = SWIG_AsVal_bool(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_ShowImage" "', argument " "3"" of type '" "bool""'");
+  } 
+  arg3 = (bool)(val3);
+  (arg1)->ShowImage((char const *)arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ShowImage__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ShowImage",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ShowImage" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ShowImage" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->ShowImage((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ShowImage__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ShowImage",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ShowImage" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  (arg1)->ShowImage();
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ShowImage (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglGraph_ShowImage__SWIG_2(args, nargout);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_ShowImage__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_bool(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_ShowImage__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_WriteFrame__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_WriteFrame",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WriteFrame" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WriteFrame" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_WriteFrame" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->WriteFrame((char const *)arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_WriteFrame__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_WriteFrame",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WriteFrame" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WriteFrame" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->WriteFrame((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_WriteFrame (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_WriteFrame__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_WriteFrame__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_WriteIDTF__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_WriteIDTF",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WriteIDTF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WriteIDTF" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_WriteIDTF" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->WriteIDTF((char const *)arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_WriteIDTF__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_WriteIDTF",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WriteIDTF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WriteIDTF" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->WriteIDTF((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_WriteIDTF (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_WriteIDTF__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_WriteIDTF__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_WriteJPEG__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_WriteJPEG",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WriteJPEG" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WriteJPEG" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_WriteJPEG" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->WriteJPEG((char const *)arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_WriteJPEG__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_WriteJPEG",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WriteJPEG" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WriteJPEG" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->WriteJPEG((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_WriteJPEG (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_WriteJPEG__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_WriteJPEG__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_WritePNG__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  bool arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  bool val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_WritePNG",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WritePNG" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WritePNG" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_WritePNG" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_bool(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_WritePNG" "', argument " "4"" of type '" "bool""'");
+  } 
+  arg4 = (bool)(val4);
+  (arg1)->WritePNG((char const *)arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_WritePNG__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_WritePNG",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WritePNG" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WritePNG" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_WritePNG" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->WritePNG((char const *)arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_WritePNG__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_WritePNG",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WritePNG" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WritePNG" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->WritePNG((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_WritePNG (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_WritePNG__SWIG_2(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_WritePNG__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_bool(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_WritePNG__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_WriteEPS__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_WriteEPS",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WriteEPS" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WriteEPS" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_WriteEPS" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->WriteEPS((char const *)arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_WriteEPS__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_WriteEPS",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WriteEPS" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WriteEPS" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->WriteEPS((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_WriteEPS (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_WriteEPS__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_WriteEPS__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_WriteSVG__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_WriteSVG",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WriteSVG" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WriteSVG" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_WriteSVG" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->WriteSVG((char const *)arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_WriteSVG__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_WriteSVG",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WriteSVG" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WriteSVG" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->WriteSVG((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_WriteSVG (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_WriteSVG__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_WriteSVG__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_WriteGIF__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_WriteGIF",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WriteGIF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WriteGIF" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_WriteGIF" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->WriteGIF((char const *)arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_WriteGIF__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_WriteGIF",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WriteGIF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WriteGIF" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->WriteGIF((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_WriteGIF (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_WriteGIF__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_WriteGIF__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_StartGIF__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_StartGIF",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_StartGIF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_StartGIF" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_StartGIF" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  (arg1)->StartGIF((char const *)arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_StartGIF__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_StartGIF",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_StartGIF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_StartGIF" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->StartGIF((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_StartGIF (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_StartGIF__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_StartGIF__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_CloseGIF (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_CloseGIF",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_CloseGIF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  (arg1)->CloseGIF();
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_NewFrame (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_NewFrame",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_NewFrame" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  (arg1)->NewFrame();
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_EndFrame (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_EndFrame",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_EndFrame" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  (arg1)->EndFrame();
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_GetNumFrame (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  int result;
+  
+  if (!SWIG_check_num_args("mglGraph_GetNumFrame",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_GetNumFrame" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  result = (int)(arg1)->GetNumFrame();
+  _outv = SWIG_From_int((int)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ResetFrames (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ResetFrames",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ResetFrames" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  (arg1)->ResetFrames();
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Flush (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Flush",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flush" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  (arg1)->Flush();
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_GetRGB (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_GetRGB",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_GetRGB" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_GetRGB" "', argument " "2"" of type '" "char *""'");
+  }
+  arg2 = (char *)(buf2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_GetRGB" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  (arg1)->GetRGB(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_GetRGBA (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_GetRGBA",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_GetRGBA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_GetRGBA" "', argument " "2"" of type '" "char *""'");
+  }
+  arg2 = (char *)(buf2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_GetRGBA" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  (arg1)->GetRGBA(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_GetBGRN (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_GetBGRN",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_GetBGRN" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_GetBGRN" "', argument " "2"" of type '" "char *""'");
+  }
+  arg2 = (char *)(buf2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_GetBGRN" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  (arg1)->GetBGRN(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_GetWidth (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  int result;
+  
+  if (!SWIG_check_num_args("mglGraph_GetWidth",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_GetWidth" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  result = (int)(arg1)->GetWidth();
+  _outv = SWIG_From_int((int)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_GetHeight (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  int result;
+  
+  if (!SWIG_check_num_args("mglGraph_GetHeight",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_GetHeight" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  result = (int)(arg1)->GetHeight();
+  _outv = SWIG_From_int((int)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_CalcXYZ (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglPoint result;
+  
+  if (!SWIG_check_num_args("mglGraph_CalcXYZ",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_CalcXYZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_CalcXYZ" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_CalcXYZ" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  result = (arg1)->CalcXYZ(arg2,arg3);
+  _outv = SWIG_NewPointerObj((new mglPoint((const mglPoint&)(result))), SWIGTYPE_p_mglPoint, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_CalcScr (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglPoint arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglPoint result;
+  
+  if (!SWIG_check_num_args("mglGraph_CalcScr",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_CalcScr" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  {
+    res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglPoint,  0 );
+    if (!SWIG_IsOK(res2)) {
+      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_CalcScr" "', argument " "2"" of type '" "mglPoint""'"); 
+    }  
+    if (!argp2) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_CalcScr" "', argument " "2"" of type '" "mglPoint""'");
+    } else {
+      arg2 = *((mglPoint *)(argp2));
+    }
+  }
+  result = (arg1)->CalcScr(arg2);
+  _outv = SWIG_NewPointerObj((new mglPoint((const mglPoint&)(result))), SWIGTYPE_p_mglPoint, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetTranspType (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetTranspType",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetTranspType" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetTranspType" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  (arg1)->SetTranspType(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetTransparent (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  bool arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetTransparent",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetTransparent" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_bool(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetTransparent" "', argument " "2"" of type '" "bool""'");
+  } 
+  arg2 = (bool)(val2);
+  (arg1)->SetTransparent(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Alpha (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  bool arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Alpha",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Alpha" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_bool(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Alpha" "', argument " "2"" of type '" "bool""'");
+  } 
+  arg2 = (bool)(val2);
+  (arg1)->Alpha(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Fog__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Fog",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fog" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Fog" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Fog" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  (arg1)->Fog(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Fog__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Fog",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fog" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Fog" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  (arg1)->Fog(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Fog (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglGraph_Fog__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_Fog__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Light__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  bool arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Light",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Light" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_bool(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Light" "', argument " "2"" of type '" "bool""'");
+  } 
+  arg2 = (bool)(val2);
+  (arg1)->Light(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Light__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  bool arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  bool val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Light",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Light" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Light" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_bool(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Light" "', argument " "3"" of type '" "bool""'");
+  } 
+  arg3 = (bool)(val3);
+  (arg1)->Light(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Light (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_bool(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglGraph_Light__SWIG_0(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_bool(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_Light__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_AddLight__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  char arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  char val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_AddLight",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_AddLight" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_AddLight" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_AddLight" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_AddLight" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_AddLight" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_char(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_AddLight" "', argument " "6"" of type '" "char""'");
+  } 
+  arg6 = (char)(val6);
+  (arg1)->AddLight(arg2,arg3,arg4,arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_AddLight__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_AddLight",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_AddLight" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_AddLight" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_AddLight" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_AddLight" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_AddLight" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->AddLight(arg2,arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_AddLight (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_AddLight__SWIG_1(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_char(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_AddLight__SWIG_0(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_SetAmbient (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetAmbient",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetAmbient" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetAmbient" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  (arg1)->SetAmbient(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Identity__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  bool arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Identity",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Identity" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_bool(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Identity" "', argument " "2"" of type '" "bool""'");
+  } 
+  arg2 = (bool)(val2);
+  (arg1)->Identity(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Identity__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Identity",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Identity" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  (arg1)->Identity();
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Identity (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[2]={
+    octave_value_ref(args,0),octave_value_ref(args,1)
+  };
+  
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglGraph_Identity__SWIG_1(args, nargout);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_bool(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglGraph_Identity__SWIG_0(args, nargout);
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Clf__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Clf",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Clf" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Clf" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Clf" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Clf" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  (arg1)->Clf(arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Clf__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Clf",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Clf" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Clf" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Clf" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  (arg1)->Clf(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Clf__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Clf",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Clf" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Clf" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  (arg1)->Clf(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Clf__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Clf",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Clf" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  (arg1)->Clf();
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Clf (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglGraph_Clf__SWIG_3(args, nargout);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglGraph_Clf__SWIG_2(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_Clf__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Clf__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_SubPlot__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  float arg5 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SubPlot",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SubPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SubPlot" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SubPlot" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SubPlot" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_SubPlot" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_SubPlot" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  (arg1)->SubPlot(arg2,arg3,arg4,arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SubPlot__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SubPlot",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SubPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SubPlot" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SubPlot" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SubPlot" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_SubPlot" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->SubPlot(arg2,arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SubPlot__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SubPlot",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SubPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SubPlot" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SubPlot" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SubPlot" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->SubPlot(arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SubPlot__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SubPlot",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SubPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SubPlot" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SubPlot" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SubPlot" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_SubPlot" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->SubPlot(arg2,arg3,arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SubPlot (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_SubPlot__SWIG_2(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_SubPlot__SWIG_1(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_SubPlot__SWIG_3(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_SubPlot__SWIG_0(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_InPlot__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  bool arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  bool val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_InPlot",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_InPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_InPlot" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_InPlot" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_InPlot" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_InPlot" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_bool(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_InPlot" "', argument " "6"" of type '" "bool""'");
+  } 
+  arg6 = (bool)(val6);
+  (arg1)->InPlot(arg2,arg3,arg4,arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_InPlot__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_InPlot",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_InPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_InPlot" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_InPlot" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_InPlot" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_InPlot" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->InPlot(arg2,arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_InPlot (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_InPlot__SWIG_1(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_bool(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_InPlot__SWIG_0(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_ColumnPlot__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ColumnPlot",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ColumnPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_ColumnPlot" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_ColumnPlot" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ColumnPlot" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  (arg1)->ColumnPlot(arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ColumnPlot__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ColumnPlot",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ColumnPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_ColumnPlot" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_ColumnPlot" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  (arg1)->ColumnPlot(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ColumnPlot (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_ColumnPlot__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_ColumnPlot__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_StickPlot (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  float arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_StickPlot",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_StickPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_StickPlot" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_StickPlot" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_StickPlot" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_StickPlot" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->StickPlot(arg2,arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Aspect (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Aspect",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Aspect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Aspect" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Aspect" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Aspect" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  (arg1)->Aspect(arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Rotate__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Rotate",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Rotate" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Rotate" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Rotate" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Rotate" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  (arg1)->Rotate(arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Rotate__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Rotate",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Rotate" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Rotate" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Rotate" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  (arg1)->Rotate(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Rotate__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Rotate",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Rotate" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Rotate" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  (arg1)->Rotate(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Rotate (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglGraph_Rotate__SWIG_2(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_Rotate__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Rotate__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_RotateN (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_RotateN",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_RotateN" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_RotateN" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_RotateN" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_RotateN" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_RotateN" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->RotateN(arg2,arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Perspective (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Perspective",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Perspective" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Perspective" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  (arg1)->Perspective(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetTicks__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char arg2 ;
+  float arg3 ;
+  int arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetTicks",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetTicks" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_char(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetTicks" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = (char)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetTicks" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SetTicks" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_SetTicks" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->SetTicks(arg2,arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetTicks__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char arg2 ;
+  float arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetTicks",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetTicks" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_char(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetTicks" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = (char)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetTicks" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SetTicks" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->SetTicks(arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetTicks__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char arg2 ;
+  float arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetTicks",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetTicks" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_char(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetTicks" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = (char)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetTicks" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  (arg1)->SetTicks(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetTicks__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetTicks",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetTicks" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_char(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetTicks" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = (char)(val2);
+  (arg1)->SetTicks(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetTicks (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[5]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglGraph_SetTicks__SWIG_3(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_SetTicks__SWIG_2(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_SetTicks__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_SetTicks__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_AdjustTicks__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_AdjustTicks",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_AdjustTicks" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_AdjustTicks" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->AdjustTicks((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_AdjustTicks__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_AdjustTicks",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_AdjustTicks" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  (arg1)->AdjustTicks();
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_AdjustTicks (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[2]={
+    octave_value_ref(args,0),octave_value_ref(args,1)
+  };
+  
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglGraph_AdjustTicks__SWIG_1(args, nargout);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_AdjustTicks__SWIG_0(args, nargout);
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_SetCRange__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetCRange",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetCRange" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetCRange" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetCRange" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  (arg1)->SetCRange(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetRanges__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetRanges",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetRanges" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetRanges" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetRanges" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SetRanges" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_SetRanges" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_SetRanges" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_SetRanges" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  (arg1)->SetRanges(arg2,arg3,arg4,arg5,arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetRanges__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetRanges",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetRanges" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetRanges" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetRanges" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SetRanges" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_SetRanges" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_SetRanges" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  (arg1)->SetRanges(arg2,arg3,arg4,arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetRanges__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetRanges",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetRanges" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetRanges" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetRanges" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SetRanges" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_SetRanges" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->SetRanges(arg2,arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetRanges (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[7]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6)
+  };
+  
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_SetRanges__SWIG_2(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_SetRanges__SWIG_1(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_SetRanges__SWIG_0(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_SetAutoRanges__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetAutoRanges",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetAutoRanges" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetAutoRanges" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetAutoRanges" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SetAutoRanges" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_SetAutoRanges" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_SetAutoRanges" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_SetAutoRanges" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  (arg1)->SetAutoRanges(arg2,arg3,arg4,arg5,arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetAutoRanges__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetAutoRanges",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetAutoRanges" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetAutoRanges" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetAutoRanges" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SetAutoRanges" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_SetAutoRanges" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_SetAutoRanges" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  (arg1)->SetAutoRanges(arg2,arg3,arg4,arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetAutoRanges__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetAutoRanges",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetAutoRanges" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetAutoRanges" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetAutoRanges" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SetAutoRanges" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_SetAutoRanges" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->SetAutoRanges(arg2,arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetAutoRanges__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetAutoRanges",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetAutoRanges" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetAutoRanges" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetAutoRanges" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SetAutoRanges" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  (arg1)->SetAutoRanges(arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetAutoRanges__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetAutoRanges",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetAutoRanges" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetAutoRanges" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetAutoRanges" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  (arg1)->SetAutoRanges(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetAutoRanges (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[7]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_SetAutoRanges__SWIG_4(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_SetAutoRanges__SWIG_3(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_SetAutoRanges__SWIG_2(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_SetAutoRanges__SWIG_1(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_SetAutoRanges__SWIG_0(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_SetOrigin__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetOrigin",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetOrigin" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetOrigin" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetOrigin" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SetOrigin" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  (arg1)->SetOrigin(arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetOrigin__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetOrigin",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetOrigin" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetOrigin" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetOrigin" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  (arg1)->SetOrigin(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetOrigin (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_SetOrigin__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_SetOrigin__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_SetCRange__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  bool arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  bool val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetCRange",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetCRange" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetCRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SetCRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  ecode3 = SWIG_AsVal_bool(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetCRange" "', argument " "3"" of type '" "bool""'");
+  } 
+  arg3 = (bool)(val3);
+  (arg1)->SetCRange(*arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetCRange__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetCRange",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetCRange" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetCRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SetCRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->SetCRange(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetCRange (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_SetCRange__SWIG_2(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_bool(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_SetCRange__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_SetCRange__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_SetXRange__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  bool arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  bool val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetXRange",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetXRange" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetXRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SetXRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  ecode3 = SWIG_AsVal_bool(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetXRange" "', argument " "3"" of type '" "bool""'");
+  } 
+  arg3 = (bool)(val3);
+  (arg1)->SetXRange(*arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetXRange__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetXRange",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetXRange" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetXRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SetXRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->SetXRange(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetXRange (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_SetXRange__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_bool(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_SetXRange__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_SetYRange__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  bool arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  bool val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetYRange",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetYRange" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetYRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SetYRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  ecode3 = SWIG_AsVal_bool(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetYRange" "', argument " "3"" of type '" "bool""'");
+  } 
+  arg3 = (bool)(val3);
+  (arg1)->SetYRange(*arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetYRange__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetYRange",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetYRange" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetYRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SetYRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->SetYRange(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetYRange (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_SetYRange__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_bool(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_SetYRange__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_SetZRange__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  bool arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  bool val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetZRange",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetZRange" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetZRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SetZRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  ecode3 = SWIG_AsVal_bool(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetZRange" "', argument " "3"" of type '" "bool""'");
+  } 
+  arg3 = (bool)(val3);
+  (arg1)->SetZRange(*arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetZRange__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetZRange",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetZRange" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetZRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SetZRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->SetZRange(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetZRange (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_SetZRange__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_bool(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_SetZRange__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_SetFunc__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetFunc",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetFunc" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetFunc" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_SetFunc" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_SetFunc" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_SetFunc" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->SetFunc((char const *)arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetFunc__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetFunc",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetFunc" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetFunc" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_SetFunc" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_SetFunc" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->SetFunc((char const *)arg2,(char const *)arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetFunc__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetFunc",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetFunc" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetFunc" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_SetFunc" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->SetFunc((char const *)arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetFunc (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[5]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_SetFunc__SWIG_2(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_SetFunc__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_SetFunc__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_SetCoor (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetCoor",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetCoor" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetCoor" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  (arg1)->SetCoor(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Ternary (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  bool arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Ternary",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Ternary" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_bool(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Ternary" "', argument " "2"" of type '" "bool""'");
+  } 
+  arg2 = (bool)(val2);
+  (arg1)->Ternary(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_CutOff (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_CutOff",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_CutOff" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_CutOff" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->CutOff((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Box__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  bool arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  bool val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Box",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Box" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Box" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  ecode3 = SWIG_AsVal_bool(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Box" "', argument " "3"" of type '" "bool""'");
+  } 
+  arg3 = (bool)(val3);
+  (arg1)->Box((char const *)arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Box__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Box",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Box" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Box" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->Box((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Box__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Box",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Box" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  (arg1)->Box();
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Box (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglGraph_Box__SWIG_2(args, nargout);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Box__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_bool(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_Box__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Axis__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  bool arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  bool val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Axis",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Axis" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Axis" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  ecode3 = SWIG_AsVal_bool(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Axis" "', argument " "3"" of type '" "bool""'");
+  } 
+  arg3 = (bool)(val3);
+  (arg1)->Axis((char const *)arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Axis__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Axis",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Axis" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Axis" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->Axis((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Axis__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Axis",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Axis" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  (arg1)->Axis();
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Axis (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglGraph_Axis__SWIG_2(args, nargout);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Axis__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_bool(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_Axis__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Grid__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Grid",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grid" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grid" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grid" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Grid((char const *)arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Grid__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Grid",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grid" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grid" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->Grid((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Grid__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Grid",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grid" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  (arg1)->Grid();
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Label__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char arg2 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Label",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Label" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_char(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Label" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = (char)(val2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Label" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Label" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Label" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Label" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  (arg1)->Label(arg2,(char const *)arg3,arg4,arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Label__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char arg2 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Label",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Label" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_char(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Label" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = (char)(val2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Label" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Label" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Label" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->Label(arg2,(char const *)arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Label__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char arg2 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Label",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Label" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_char(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Label" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = (char)(val2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Label" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Label" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  (arg1)->Label(arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Label__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char arg2 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Label",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Label" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_char(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Label" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = (char)(val2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Label" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Label(arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Label__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char arg2 ;
+  wchar_t *arg3 = (wchar_t *) 0 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Label",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Label" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_char(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Label" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = (char)(val2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Label" "', argument " "3"" of type '" "wchar_t const *""'"); 
+  }
+  arg3 = (wchar_t *)(argp3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Label" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Label" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Label" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  (arg1)->Label(arg2,(wchar_t const *)arg3,arg4,arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Label__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char arg2 ;
+  wchar_t *arg3 = (wchar_t *) 0 ;
+  float arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Label",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Label" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_char(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Label" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = (char)(val2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Label" "', argument " "3"" of type '" "wchar_t const *""'"); 
+  }
+  arg3 = (wchar_t *)(argp3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Label" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Label" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->Label(arg2,(wchar_t const *)arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Label__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char arg2 ;
+  wchar_t *arg3 = (wchar_t *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Label",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Label" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_char(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Label" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = (char)(val2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Label" "', argument " "3"" of type '" "wchar_t const *""'"); 
+  }
+  arg3 = (wchar_t *)(argp3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Label" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  (arg1)->Label(arg2,(wchar_t const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Label__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char arg2 ;
+  wchar_t *arg3 = (wchar_t *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Label",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Label" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_char(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Label" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = (char)(val2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Label" "', argument " "3"" of type '" "wchar_t const *""'"); 
+  }
+  arg3 = (wchar_t *)(argp3);
+  (arg1)->Label(arg2,(wchar_t const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Label__SWIG_8 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  double arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  double val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Label",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Label" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Label" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_double(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Label" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = (double)(val3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Label" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Label" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_double(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Label" "', argument " "6"" of type '" "double""'");
+  } 
+  arg6 = (double)(val6);
+  (arg1)->Label(arg2,arg3,(char const *)arg4,(char const *)arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Label__SWIG_9 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Label",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Label" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Label" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_double(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Label" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = (double)(val3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Label" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Label" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Label(arg2,arg3,(char const *)arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Label__SWIG_10 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Label",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Label" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Label" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_double(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Label" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = (double)(val3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Label" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Label(arg2,arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Label__SWIG_11 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  wchar_t *arg4 = (wchar_t *) 0 ;
+  char *arg5 = (char *) 0 ;
+  double arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  double val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Label",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Label" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Label" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_double(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Label" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = (double)(val3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Label" "', argument " "4"" of type '" "wchar_t const *""'"); 
+  }
+  arg4 = (wchar_t *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Label" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_double(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Label" "', argument " "6"" of type '" "double""'");
+  } 
+  arg6 = (double)(val6);
+  (arg1)->Label(arg2,arg3,(wchar_t const *)arg4,(char const *)arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Label__SWIG_12 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  wchar_t *arg4 = (wchar_t *) 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Label",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Label" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Label" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_double(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Label" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = (double)(val3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Label" "', argument " "4"" of type '" "wchar_t const *""'"); 
+  }
+  arg4 = (wchar_t *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Label" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Label(arg2,arg3,(wchar_t const *)arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Label__SWIG_13 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  wchar_t *arg4 = (wchar_t *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Label",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Label" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_double(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Label" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_double(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Label" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = (double)(val3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Label" "', argument " "4"" of type '" "wchar_t const *""'"); 
+  }
+  arg4 = (wchar_t *)(argp4);
+  (arg1)->Label(arg2,arg3,(wchar_t const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Label (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_wchar_t, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Label__SWIG_7(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Label__SWIG_3(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_wchar_t, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Label__SWIG_13(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Label__SWIG_10(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_wchar_t, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Label__SWIG_6(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Label__SWIG_2(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_wchar_t, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Label__SWIG_12(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Label__SWIG_9(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_wchar_t, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Label__SWIG_5(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Label__SWIG_1(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_wchar_t, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_double(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Label__SWIG_11(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_double(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Label__SWIG_8(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_wchar_t, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Label__SWIG_4(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Label__SWIG_0(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_SetTuneTicks__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  float arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetTuneTicks",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetTuneTicks" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetTuneTicks" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetTuneTicks" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  (arg1)->SetTuneTicks(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetTuneTicks__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetTuneTicks",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetTuneTicks" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetTuneTicks" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  (arg1)->SetTuneTicks(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetTuneTicks (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglGraph_SetTuneTicks__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_SetTuneTicks__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_SetXTT__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  wchar_t *arg2 = (wchar_t *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetXTT",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetXTT" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetXTT" "', argument " "2"" of type '" "wchar_t const *""'"); 
+  }
+  arg2 = (wchar_t *)(argp2);
+  (arg1)->SetXTT((wchar_t const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetYTT__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  wchar_t *arg2 = (wchar_t *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetYTT",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetYTT" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetYTT" "', argument " "2"" of type '" "wchar_t const *""'"); 
+  }
+  arg2 = (wchar_t *)(argp2);
+  (arg1)->SetYTT((wchar_t const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetZTT__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  wchar_t *arg2 = (wchar_t *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetZTT",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetZTT" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetZTT" "', argument " "2"" of type '" "wchar_t const *""'"); 
+  }
+  arg2 = (wchar_t *)(argp2);
+  (arg1)->SetZTT((wchar_t const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetCTT__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  wchar_t *arg2 = (wchar_t *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetCTT",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetCTT" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetCTT" "', argument " "2"" of type '" "wchar_t const *""'"); 
+  }
+  arg2 = (wchar_t *)(argp2);
+  (arg1)->SetCTT((wchar_t const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetXTT__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetXTT",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetXTT" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetXTT" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->SetXTT((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetXTT (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[2]={
+    octave_value_ref(args,0),octave_value_ref(args,1)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_wchar_t, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_SetXTT__SWIG_0(args, nargout);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_SetXTT__SWIG_1(args, nargout);
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_SetYTT__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetYTT",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetYTT" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetYTT" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->SetYTT((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetYTT (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[2]={
+    octave_value_ref(args,0),octave_value_ref(args,1)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_wchar_t, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_SetYTT__SWIG_0(args, nargout);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_SetYTT__SWIG_1(args, nargout);
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_SetZTT__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetZTT",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetZTT" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetZTT" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->SetZTT((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetZTT (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[2]={
+    octave_value_ref(args,0),octave_value_ref(args,1)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_wchar_t, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_SetZTT__SWIG_0(args, nargout);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_SetZTT__SWIG_1(args, nargout);
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_SetCTT__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SetCTT",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetCTT" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetCTT" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->SetCTT((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SetCTT (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[2]={
+    octave_value_ref(args,0),octave_value_ref(args,1)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_wchar_t, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_SetCTT__SWIG_0(args, nargout);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_SetCTT__SWIG_1(args, nargout);
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Ball__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  char arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  char val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Ball",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Ball" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Ball" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Ball" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Ball" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_char(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Ball" "', argument " "5"" of type '" "char""'");
+  } 
+  arg5 = (char)(val5);
+  (arg1)->Ball(arg2,arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Ball__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Ball",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Ball" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Ball" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Ball" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Ball" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  (arg1)->Ball(arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Ball (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[5]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4)
+  };
+  
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Ball__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_char(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Ball__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Mark__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  char arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  char val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Mark",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Mark" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Mark" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Mark" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Mark" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_char(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Mark" "', argument " "5"" of type '" "char""'");
+  } 
+  arg5 = (char)(val5);
+  (arg1)->Mark(arg2,arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Line__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  char *arg8 = (char *) 0 ;
+  int arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  int val9 ;
+  int ecode9 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Line",args.length(),9,9,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Line" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Line" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Line" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Line" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Line" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Line" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Line" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Line" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  ecode9 = SWIG_AsVal_int(args(8), &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Line" "', argument " "9"" of type '" "int""'");
+  } 
+  arg9 = (int)(val9);
+  (arg1)->Line(arg2,arg3,arg4,arg5,arg6,arg7,(char const *)arg8,arg9);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Line__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Line",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Line" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Line" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Line" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Line" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Line" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Line" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Line" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Line" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  (arg1)->Line(arg2,arg3,arg4,arg5,arg6,arg7,(char const *)arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Line__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Line",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Line" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Line" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Line" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Line" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Line" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Line" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Line" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  (arg1)->Line(arg2,arg3,arg4,arg5,arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Line (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[9]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7),octave_value_ref(args,8)
+  };
+  
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Line__SWIG_2(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Line__SWIG_1(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_int(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_Line__SWIG_0(args, nargout);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_FaceX__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  char *arg7 = (char *) 0 ;
+  float arg8 ;
+  float arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_FaceX",args.length(),9,9,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FaceX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FaceX" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FaceX" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FaceX" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_FaceX" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_FaceX" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FaceX" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  ecode8 = SWIG_AsVal_float(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_FaceX" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = (float)(val8);
+  ecode9 = SWIG_AsVal_float(args(8), &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_FaceX" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = (float)(val9);
+  (arg1)->FaceX(arg2,arg3,arg4,arg5,arg6,(char const *)arg7,arg8,arg9);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_FaceX__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  char *arg7 = (char *) 0 ;
+  float arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_FaceX",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FaceX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FaceX" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FaceX" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FaceX" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_FaceX" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_FaceX" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FaceX" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  ecode8 = SWIG_AsVal_float(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_FaceX" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = (float)(val8);
+  (arg1)->FaceX(arg2,arg3,arg4,arg5,arg6,(char const *)arg7,arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_FaceX__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_FaceX",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FaceX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FaceX" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FaceX" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FaceX" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_FaceX" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_FaceX" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FaceX" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  (arg1)->FaceX(arg2,arg3,arg4,arg5,arg6,(char const *)arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_FaceX__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_FaceX",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FaceX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FaceX" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FaceX" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FaceX" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_FaceX" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_FaceX" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  (arg1)->FaceX(arg2,arg3,arg4,arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_FaceX (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[9]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7),octave_value_ref(args,8)
+  };
+  
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_FaceX__SWIG_3(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_FaceX__SWIG_2(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_FaceX__SWIG_1(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_FaceX__SWIG_0(args, nargout);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_FaceY__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  char *arg7 = (char *) 0 ;
+  float arg8 ;
+  float arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_FaceY",args.length(),9,9,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FaceY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FaceY" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FaceY" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FaceY" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_FaceY" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_FaceY" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FaceY" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  ecode8 = SWIG_AsVal_float(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_FaceY" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = (float)(val8);
+  ecode9 = SWIG_AsVal_float(args(8), &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_FaceY" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = (float)(val9);
+  (arg1)->FaceY(arg2,arg3,arg4,arg5,arg6,(char const *)arg7,arg8,arg9);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_FaceY__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  char *arg7 = (char *) 0 ;
+  float arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_FaceY",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FaceY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FaceY" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FaceY" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FaceY" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_FaceY" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_FaceY" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FaceY" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  ecode8 = SWIG_AsVal_float(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_FaceY" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = (float)(val8);
+  (arg1)->FaceY(arg2,arg3,arg4,arg5,arg6,(char const *)arg7,arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_FaceY__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_FaceY",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FaceY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FaceY" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FaceY" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FaceY" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_FaceY" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_FaceY" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FaceY" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  (arg1)->FaceY(arg2,arg3,arg4,arg5,arg6,(char const *)arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_FaceY__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_FaceY",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FaceY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FaceY" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FaceY" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FaceY" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_FaceY" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_FaceY" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  (arg1)->FaceY(arg2,arg3,arg4,arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_FaceY (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[9]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7),octave_value_ref(args,8)
+  };
+  
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_FaceY__SWIG_3(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_FaceY__SWIG_2(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_FaceY__SWIG_1(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_FaceY__SWIG_0(args, nargout);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_FaceZ__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  char *arg7 = (char *) 0 ;
+  float arg8 ;
+  float arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_FaceZ",args.length(),9,9,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FaceZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FaceZ" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FaceZ" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FaceZ" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_FaceZ" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_FaceZ" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FaceZ" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  ecode8 = SWIG_AsVal_float(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_FaceZ" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = (float)(val8);
+  ecode9 = SWIG_AsVal_float(args(8), &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_FaceZ" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = (float)(val9);
+  (arg1)->FaceZ(arg2,arg3,arg4,arg5,arg6,(char const *)arg7,arg8,arg9);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_FaceZ__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  char *arg7 = (char *) 0 ;
+  float arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_FaceZ",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FaceZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FaceZ" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FaceZ" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FaceZ" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_FaceZ" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_FaceZ" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FaceZ" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  ecode8 = SWIG_AsVal_float(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_FaceZ" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = (float)(val8);
+  (arg1)->FaceZ(arg2,arg3,arg4,arg5,arg6,(char const *)arg7,arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_FaceZ__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_FaceZ",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FaceZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FaceZ" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FaceZ" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FaceZ" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_FaceZ" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_FaceZ" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FaceZ" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  (arg1)->FaceZ(arg2,arg3,arg4,arg5,arg6,(char const *)arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_FaceZ__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_FaceZ",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FaceZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FaceZ" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FaceZ" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FaceZ" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_FaceZ" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_FaceZ" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  (arg1)->FaceZ(arg2,arg3,arg4,arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_FaceZ (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[9]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7),octave_value_ref(args,8)
+  };
+  
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_FaceZ__SWIG_3(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_FaceZ__SWIG_2(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_FaceZ__SWIG_1(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_FaceZ__SWIG_0(args, nargout);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Curve__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  float arg8 ;
+  float arg9 ;
+  float arg10 ;
+  float arg11 ;
+  float arg12 ;
+  float arg13 ;
+  char *arg14 = (char *) 0 ;
+  int arg15 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  float val10 ;
+  int ecode10 = 0 ;
+  float val11 ;
+  int ecode11 = 0 ;
+  float val12 ;
+  int ecode12 = 0 ;
+  float val13 ;
+  int ecode13 = 0 ;
+  int res14 ;
+  char *buf14 = 0 ;
+  int alloc14 = 0 ;
+  int val15 ;
+  int ecode15 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Curve",args.length(),15,15,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Curve" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Curve" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Curve" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Curve" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Curve" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Curve" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Curve" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  ecode8 = SWIG_AsVal_float(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Curve" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = (float)(val8);
+  ecode9 = SWIG_AsVal_float(args(8), &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Curve" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = (float)(val9);
+  ecode10 = SWIG_AsVal_float(args(9), &val10);
+  if (!SWIG_IsOK(ecode10)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode10), "in method '" "mglGraph_Curve" "', argument " "10"" of type '" "float""'");
+  } 
+  arg10 = (float)(val10);
+  ecode11 = SWIG_AsVal_float(args(10), &val11);
+  if (!SWIG_IsOK(ecode11)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode11), "in method '" "mglGraph_Curve" "', argument " "11"" of type '" "float""'");
+  } 
+  arg11 = (float)(val11);
+  ecode12 = SWIG_AsVal_float(args(11), &val12);
+  if (!SWIG_IsOK(ecode12)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode12), "in method '" "mglGraph_Curve" "', argument " "12"" of type '" "float""'");
+  } 
+  arg12 = (float)(val12);
+  ecode13 = SWIG_AsVal_float(args(12), &val13);
+  if (!SWIG_IsOK(ecode13)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode13), "in method '" "mglGraph_Curve" "', argument " "13"" of type '" "float""'");
+  } 
+  arg13 = (float)(val13);
+  res14 = SWIG_AsCharPtrAndSize(args(13), &buf14, NULL, &alloc14);
+  if (!SWIG_IsOK(res14)) {
+    SWIG_exception_fail(SWIG_ArgError(res14), "in method '" "mglGraph_Curve" "', argument " "14"" of type '" "char const *""'");
+  }
+  arg14 = (char *)(buf14);
+  ecode15 = SWIG_AsVal_int(args(14), &val15);
+  if (!SWIG_IsOK(ecode15)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode15), "in method '" "mglGraph_Curve" "', argument " "15"" of type '" "int""'");
+  } 
+  arg15 = (int)(val15);
+  (arg1)->Curve(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,(char const *)arg14,arg15);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc14 == SWIG_NEWOBJ) delete[] buf14;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Curve__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  float arg8 ;
+  float arg9 ;
+  float arg10 ;
+  float arg11 ;
+  float arg12 ;
+  float arg13 ;
+  char *arg14 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  float val10 ;
+  int ecode10 = 0 ;
+  float val11 ;
+  int ecode11 = 0 ;
+  float val12 ;
+  int ecode12 = 0 ;
+  float val13 ;
+  int ecode13 = 0 ;
+  int res14 ;
+  char *buf14 = 0 ;
+  int alloc14 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Curve",args.length(),14,14,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Curve" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Curve" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Curve" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Curve" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Curve" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Curve" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Curve" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  ecode8 = SWIG_AsVal_float(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Curve" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = (float)(val8);
+  ecode9 = SWIG_AsVal_float(args(8), &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Curve" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = (float)(val9);
+  ecode10 = SWIG_AsVal_float(args(9), &val10);
+  if (!SWIG_IsOK(ecode10)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode10), "in method '" "mglGraph_Curve" "', argument " "10"" of type '" "float""'");
+  } 
+  arg10 = (float)(val10);
+  ecode11 = SWIG_AsVal_float(args(10), &val11);
+  if (!SWIG_IsOK(ecode11)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode11), "in method '" "mglGraph_Curve" "', argument " "11"" of type '" "float""'");
+  } 
+  arg11 = (float)(val11);
+  ecode12 = SWIG_AsVal_float(args(11), &val12);
+  if (!SWIG_IsOK(ecode12)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode12), "in method '" "mglGraph_Curve" "', argument " "12"" of type '" "float""'");
+  } 
+  arg12 = (float)(val12);
+  ecode13 = SWIG_AsVal_float(args(12), &val13);
+  if (!SWIG_IsOK(ecode13)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode13), "in method '" "mglGraph_Curve" "', argument " "13"" of type '" "float""'");
+  } 
+  arg13 = (float)(val13);
+  res14 = SWIG_AsCharPtrAndSize(args(13), &buf14, NULL, &alloc14);
+  if (!SWIG_IsOK(res14)) {
+    SWIG_exception_fail(SWIG_ArgError(res14), "in method '" "mglGraph_Curve" "', argument " "14"" of type '" "char const *""'");
+  }
+  arg14 = (char *)(buf14);
+  (arg1)->Curve(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,(char const *)arg14);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc14 == SWIG_NEWOBJ) delete[] buf14;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Curve__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  float arg8 ;
+  float arg9 ;
+  float arg10 ;
+  float arg11 ;
+  float arg12 ;
+  float arg13 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  float val10 ;
+  int ecode10 = 0 ;
+  float val11 ;
+  int ecode11 = 0 ;
+  float val12 ;
+  int ecode12 = 0 ;
+  float val13 ;
+  int ecode13 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Curve",args.length(),13,13,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Curve" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Curve" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Curve" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Curve" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Curve" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Curve" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Curve" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  ecode8 = SWIG_AsVal_float(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Curve" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = (float)(val8);
+  ecode9 = SWIG_AsVal_float(args(8), &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Curve" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = (float)(val9);
+  ecode10 = SWIG_AsVal_float(args(9), &val10);
+  if (!SWIG_IsOK(ecode10)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode10), "in method '" "mglGraph_Curve" "', argument " "10"" of type '" "float""'");
+  } 
+  arg10 = (float)(val10);
+  ecode11 = SWIG_AsVal_float(args(10), &val11);
+  if (!SWIG_IsOK(ecode11)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode11), "in method '" "mglGraph_Curve" "', argument " "11"" of type '" "float""'");
+  } 
+  arg11 = (float)(val11);
+  ecode12 = SWIG_AsVal_float(args(11), &val12);
+  if (!SWIG_IsOK(ecode12)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode12), "in method '" "mglGraph_Curve" "', argument " "12"" of type '" "float""'");
+  } 
+  arg12 = (float)(val12);
+  ecode13 = SWIG_AsVal_float(args(12), &val13);
+  if (!SWIG_IsOK(ecode13)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode13), "in method '" "mglGraph_Curve" "', argument " "13"" of type '" "float""'");
+  } 
+  arg13 = (float)(val13);
+  (arg1)->Curve(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Curve (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[15]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7),octave_value_ref(args,8),octave_value_ref(args,9),octave_value_ref(args,10),octave_value_ref(args,11),octave_value_ref(args,12),octave_value_ref(args,13),octave_value_ref(args,14)
+  };
+  
+  if (argc == 13) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      {
+                        int res = SWIG_AsVal_float(argv[9], NULL);
+                        _v = SWIG_CheckState(res);
+                      }
+                      if (_v) {
+                        {
+                          int res = SWIG_AsVal_float(argv[10], NULL);
+                          _v = SWIG_CheckState(res);
+                        }
+                        if (_v) {
+                          {
+                            int res = SWIG_AsVal_float(argv[11], NULL);
+                            _v = SWIG_CheckState(res);
+                          }
+                          if (_v) {
+                            {
+                              int res = SWIG_AsVal_float(argv[12], NULL);
+                              _v = SWIG_CheckState(res);
+                            }
+                            if (_v) {
+                              return _wrap_mglGraph_Curve__SWIG_2(args, nargout);
+                            }
+                          }
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 14) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      {
+                        int res = SWIG_AsVal_float(argv[9], NULL);
+                        _v = SWIG_CheckState(res);
+                      }
+                      if (_v) {
+                        {
+                          int res = SWIG_AsVal_float(argv[10], NULL);
+                          _v = SWIG_CheckState(res);
+                        }
+                        if (_v) {
+                          {
+                            int res = SWIG_AsVal_float(argv[11], NULL);
+                            _v = SWIG_CheckState(res);
+                          }
+                          if (_v) {
+                            {
+                              int res = SWIG_AsVal_float(argv[12], NULL);
+                              _v = SWIG_CheckState(res);
+                            }
+                            if (_v) {
+                              int res = SWIG_AsCharPtrAndSize(argv[13], 0, NULL, 0);
+                              _v = SWIG_CheckState(res);
+                              if (_v) {
+                                return _wrap_mglGraph_Curve__SWIG_1(args, nargout);
+                              }
+                            }
+                          }
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 15) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      {
+                        int res = SWIG_AsVal_float(argv[9], NULL);
+                        _v = SWIG_CheckState(res);
+                      }
+                      if (_v) {
+                        {
+                          int res = SWIG_AsVal_float(argv[10], NULL);
+                          _v = SWIG_CheckState(res);
+                        }
+                        if (_v) {
+                          {
+                            int res = SWIG_AsVal_float(argv[11], NULL);
+                            _v = SWIG_CheckState(res);
+                          }
+                          if (_v) {
+                            {
+                              int res = SWIG_AsVal_float(argv[12], NULL);
+                              _v = SWIG_CheckState(res);
+                            }
+                            if (_v) {
+                              int res = SWIG_AsCharPtrAndSize(argv[13], 0, NULL, 0);
+                              _v = SWIG_CheckState(res);
+                              if (_v) {
+                                {
+                                  int res = SWIG_AsVal_int(argv[14], NULL);
+                                  _v = SWIG_CheckState(res);
+                                }
+                                if (_v) {
+                                  return _wrap_mglGraph_Curve__SWIG_0(args, nargout);
+                                }
+                              }
+                            }
+                          }
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Drop__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  float arg8 ;
+  char *arg9 = (char *) 0 ;
+  float arg10 ;
+  float arg11 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  int res9 ;
+  char *buf9 = 0 ;
+  int alloc9 = 0 ;
+  float val10 ;
+  int ecode10 = 0 ;
+  float val11 ;
+  int ecode11 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Drop",args.length(),11,11,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Drop" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Drop" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Drop" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Drop" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Drop" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Drop" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Drop" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  ecode8 = SWIG_AsVal_float(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Drop" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = (float)(val8);
+  res9 = SWIG_AsCharPtrAndSize(args(8), &buf9, NULL, &alloc9);
+  if (!SWIG_IsOK(res9)) {
+    SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "mglGraph_Drop" "', argument " "9"" of type '" "char const *""'");
+  }
+  arg9 = (char *)(buf9);
+  ecode10 = SWIG_AsVal_float(args(9), &val10);
+  if (!SWIG_IsOK(ecode10)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode10), "in method '" "mglGraph_Drop" "', argument " "10"" of type '" "float""'");
+  } 
+  arg10 = (float)(val10);
+  ecode11 = SWIG_AsVal_float(args(10), &val11);
+  if (!SWIG_IsOK(ecode11)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode11), "in method '" "mglGraph_Drop" "', argument " "11"" of type '" "float""'");
+  } 
+  arg11 = (float)(val11);
+  (arg1)->Drop(arg2,arg3,arg4,arg5,arg6,arg7,arg8,(char const *)arg9,arg10,arg11);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc9 == SWIG_NEWOBJ) delete[] buf9;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Drop__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  float arg8 ;
+  char *arg9 = (char *) 0 ;
+  float arg10 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  int res9 ;
+  char *buf9 = 0 ;
+  int alloc9 = 0 ;
+  float val10 ;
+  int ecode10 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Drop",args.length(),10,10,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Drop" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Drop" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Drop" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Drop" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Drop" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Drop" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Drop" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  ecode8 = SWIG_AsVal_float(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Drop" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = (float)(val8);
+  res9 = SWIG_AsCharPtrAndSize(args(8), &buf9, NULL, &alloc9);
+  if (!SWIG_IsOK(res9)) {
+    SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "mglGraph_Drop" "', argument " "9"" of type '" "char const *""'");
+  }
+  arg9 = (char *)(buf9);
+  ecode10 = SWIG_AsVal_float(args(9), &val10);
+  if (!SWIG_IsOK(ecode10)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode10), "in method '" "mglGraph_Drop" "', argument " "10"" of type '" "float""'");
+  } 
+  arg10 = (float)(val10);
+  (arg1)->Drop(arg2,arg3,arg4,arg5,arg6,arg7,arg8,(char const *)arg9,arg10);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc9 == SWIG_NEWOBJ) delete[] buf9;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Drop__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  float arg8 ;
+  char *arg9 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  int res9 ;
+  char *buf9 = 0 ;
+  int alloc9 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Drop",args.length(),9,9,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Drop" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Drop" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Drop" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Drop" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Drop" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Drop" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Drop" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  ecode8 = SWIG_AsVal_float(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Drop" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = (float)(val8);
+  res9 = SWIG_AsCharPtrAndSize(args(8), &buf9, NULL, &alloc9);
+  if (!SWIG_IsOK(res9)) {
+    SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "mglGraph_Drop" "', argument " "9"" of type '" "char const *""'");
+  }
+  arg9 = (char *)(buf9);
+  (arg1)->Drop(arg2,arg3,arg4,arg5,arg6,arg7,arg8,(char const *)arg9);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc9 == SWIG_NEWOBJ) delete[] buf9;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Drop__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  float arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Drop",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Drop" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Drop" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Drop" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Drop" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Drop" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Drop" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Drop" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  ecode8 = SWIG_AsVal_float(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Drop" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = (float)(val8);
+  (arg1)->Drop(arg2,arg3,arg4,arg5,arg6,arg7,arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Drop (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[11]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7),octave_value_ref(args,8),octave_value_ref(args,9),octave_value_ref(args,10)
+  };
+  
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Drop__SWIG_3(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    int res = SWIG_AsCharPtrAndSize(argv[8], 0, NULL, 0);
+                    _v = SWIG_CheckState(res);
+                    if (_v) {
+                      return _wrap_mglGraph_Drop__SWIG_2(args, nargout);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 10) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    int res = SWIG_AsCharPtrAndSize(argv[8], 0, NULL, 0);
+                    _v = SWIG_CheckState(res);
+                    if (_v) {
+                      {
+                        int res = SWIG_AsVal_float(argv[9], NULL);
+                        _v = SWIG_CheckState(res);
+                      }
+                      if (_v) {
+                        return _wrap_mglGraph_Drop__SWIG_1(args, nargout);
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 11) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    int res = SWIG_AsCharPtrAndSize(argv[8], 0, NULL, 0);
+                    _v = SWIG_CheckState(res);
+                    if (_v) {
+                      {
+                        int res = SWIG_AsVal_float(argv[9], NULL);
+                        _v = SWIG_CheckState(res);
+                      }
+                      if (_v) {
+                        {
+                          int res = SWIG_AsVal_float(argv[10], NULL);
+                          _v = SWIG_CheckState(res);
+                        }
+                        if (_v) {
+                          return _wrap_mglGraph_Drop__SWIG_0(args, nargout);
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Sphere__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Sphere",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Sphere" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Sphere" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Sphere" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Sphere" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Sphere" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Sphere" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->Sphere(arg2,arg3,arg4,arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Sphere__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Sphere",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Sphere" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Sphere" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Sphere" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Sphere" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Sphere" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->Sphere(arg2,arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Sphere (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Sphere__SWIG_1(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Sphere__SWIG_0(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Cone__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  float arg8 ;
+  float arg9 ;
+  char *arg10 = (char *) 0 ;
+  bool arg11 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  int res10 ;
+  char *buf10 = 0 ;
+  int alloc10 = 0 ;
+  bool val11 ;
+  int ecode11 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cone",args.length(),11,11,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cone" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Cone" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Cone" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Cone" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Cone" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Cone" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Cone" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  ecode8 = SWIG_AsVal_float(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Cone" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = (float)(val8);
+  ecode9 = SWIG_AsVal_float(args(8), &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Cone" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = (float)(val9);
+  res10 = SWIG_AsCharPtrAndSize(args(9), &buf10, NULL, &alloc10);
+  if (!SWIG_IsOK(res10)) {
+    SWIG_exception_fail(SWIG_ArgError(res10), "in method '" "mglGraph_Cone" "', argument " "10"" of type '" "char const *""'");
+  }
+  arg10 = (char *)(buf10);
+  ecode11 = SWIG_AsVal_bool(args(10), &val11);
+  if (!SWIG_IsOK(ecode11)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode11), "in method '" "mglGraph_Cone" "', argument " "11"" of type '" "bool""'");
+  } 
+  arg11 = (bool)(val11);
+  (arg1)->Cone(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,(char const *)arg10,arg11);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc10 == SWIG_NEWOBJ) delete[] buf10;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cone__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  float arg8 ;
+  float arg9 ;
+  char *arg10 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  int res10 ;
+  char *buf10 = 0 ;
+  int alloc10 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cone",args.length(),10,10,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cone" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Cone" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Cone" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Cone" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Cone" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Cone" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Cone" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  ecode8 = SWIG_AsVal_float(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Cone" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = (float)(val8);
+  ecode9 = SWIG_AsVal_float(args(8), &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Cone" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = (float)(val9);
+  res10 = SWIG_AsCharPtrAndSize(args(9), &buf10, NULL, &alloc10);
+  if (!SWIG_IsOK(res10)) {
+    SWIG_exception_fail(SWIG_ArgError(res10), "in method '" "mglGraph_Cone" "', argument " "10"" of type '" "char const *""'");
+  }
+  arg10 = (char *)(buf10);
+  (arg1)->Cone(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,(char const *)arg10);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc10 == SWIG_NEWOBJ) delete[] buf10;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cone__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  float arg8 ;
+  float arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cone",args.length(),9,9,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cone" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Cone" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Cone" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Cone" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Cone" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Cone" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Cone" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  ecode8 = SWIG_AsVal_float(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Cone" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = (float)(val8);
+  ecode9 = SWIG_AsVal_float(args(8), &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Cone" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = (float)(val9);
+  (arg1)->Cone(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cone__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  float arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cone",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cone" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Cone" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Cone" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Cone" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Cone" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Cone" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Cone" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  ecode8 = SWIG_AsVal_float(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Cone" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = (float)(val8);
+  (arg1)->Cone(arg2,arg3,arg4,arg5,arg6,arg7,arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cone (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[11]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7),octave_value_ref(args,8),octave_value_ref(args,9),octave_value_ref(args,10)
+  };
+  
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Cone__SWIG_3(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_Cone__SWIG_2(args, nargout);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 10) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      int res = SWIG_AsCharPtrAndSize(argv[9], 0, NULL, 0);
+                      _v = SWIG_CheckState(res);
+                      if (_v) {
+                        return _wrap_mglGraph_Cone__SWIG_1(args, nargout);
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 11) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      int res = SWIG_AsCharPtrAndSize(argv[9], 0, NULL, 0);
+                      _v = SWIG_CheckState(res);
+                      if (_v) {
+                        {
+                          int res = SWIG_AsVal_bool(argv[10], NULL);
+                          _v = SWIG_CheckState(res);
+                        }
+                        if (_v) {
+                          return _wrap_mglGraph_Cone__SWIG_0(args, nargout);
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Putsw__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  wchar_t *arg5 = (wchar_t *) 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  char arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  char val8 ;
+  int ecode8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Putsw",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Putsw" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Putsw" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Putsw" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Putsw" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Putsw" "', argument " "5"" of type '" "wchar_t const *""'"); 
+  }
+  arg5 = (wchar_t *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Putsw" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Putsw" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  ecode8 = SWIG_AsVal_char(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Putsw" "', argument " "8"" of type '" "char""'");
+  } 
+  arg8 = (char)(val8);
+  (arg1)->Putsw(arg2,arg3,arg4,(wchar_t const *)arg5,(char const *)arg6,arg7,arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Putsw__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  wchar_t *arg5 = (wchar_t *) 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Putsw",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Putsw" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Putsw" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Putsw" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Putsw" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Putsw" "', argument " "5"" of type '" "wchar_t const *""'"); 
+  }
+  arg5 = (wchar_t *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Putsw" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Putsw" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  (arg1)->Putsw(arg2,arg3,arg4,(wchar_t const *)arg5,(char const *)arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Putsw__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  wchar_t *arg5 = (wchar_t *) 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Putsw",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Putsw" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Putsw" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Putsw" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Putsw" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Putsw" "', argument " "5"" of type '" "wchar_t const *""'"); 
+  }
+  arg5 = (wchar_t *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Putsw" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->Putsw(arg2,arg3,arg4,(wchar_t const *)arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Putsw__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  wchar_t *arg5 = (wchar_t *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Putsw",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Putsw" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Putsw" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Putsw" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Putsw" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Putsw" "', argument " "5"" of type '" "wchar_t const *""'"); 
+  }
+  arg5 = (wchar_t *)(argp5);
+  (arg1)->Putsw(arg2,arg3,arg4,(wchar_t const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Puts__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  char *arg5 = (char *) 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  char arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  char val8 ;
+  int ecode8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Puts",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Puts" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Puts" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Puts" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Puts" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Puts" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Puts" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Puts" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  ecode8 = SWIG_AsVal_char(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Puts" "', argument " "8"" of type '" "char""'");
+  } 
+  arg8 = (char)(val8);
+  (arg1)->Puts(arg2,arg3,arg4,(char const *)arg5,(char const *)arg6,arg7,arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Puts__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  char *arg5 = (char *) 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Puts",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Puts" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Puts" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Puts" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Puts" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Puts" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Puts" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Puts" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  (arg1)->Puts(arg2,arg3,arg4,(char const *)arg5,(char const *)arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Puts__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  char *arg5 = (char *) 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Puts",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Puts" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Puts" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Puts" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Puts" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Puts" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Puts" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->Puts(arg2,arg3,arg4,(char const *)arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Puts__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Puts",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Puts" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Puts" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Puts" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Puts" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Puts" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Puts(arg2,arg3,arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Putsw__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  wchar_t *arg8 = (wchar_t *) 0 ;
+  float arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  void *argp8 = 0 ;
+  int res8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Putsw",args.length(),9,9,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Putsw" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Putsw" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Putsw" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Putsw" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Putsw" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Putsw" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Putsw" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  res8 = SWIG_ConvertPtr(args(7), &argp8,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Putsw" "', argument " "8"" of type '" "wchar_t const *""'"); 
+  }
+  arg8 = (wchar_t *)(argp8);
+  ecode9 = SWIG_AsVal_float(args(8), &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Putsw" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = (float)(val9);
+  (arg1)->Putsw(arg2,arg3,arg4,arg5,arg6,arg7,(wchar_t const *)arg8,arg9);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Putsw__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  wchar_t *arg8 = (wchar_t *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  void *argp8 = 0 ;
+  int res8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Putsw",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Putsw" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Putsw" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Putsw" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Putsw" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Putsw" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Putsw" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Putsw" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  res8 = SWIG_ConvertPtr(args(7), &argp8,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Putsw" "', argument " "8"" of type '" "wchar_t const *""'"); 
+  }
+  arg8 = (wchar_t *)(argp8);
+  (arg1)->Putsw(arg2,arg3,arg4,arg5,arg6,arg7,(wchar_t const *)arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Putsw (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[9]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7),octave_value_ref(args,8)
+  };
+  
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_wchar_t, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Putsw__SWIG_3(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_wchar_t, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Putsw__SWIG_2(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_wchar_t, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Putsw__SWIG_1(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_wchar_t, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_char(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Putsw__SWIG_0(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  void *vptr = 0;
+                  int res = SWIG_ConvertPtr(argv[7], &vptr, SWIGTYPE_p_wchar_t, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Putsw__SWIG_5(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  void *vptr = 0;
+                  int res = SWIG_ConvertPtr(argv[7], &vptr, SWIGTYPE_p_wchar_t, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_Putsw__SWIG_4(args, nargout);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Puts__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  char *arg8 = (char *) 0 ;
+  float arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Puts",args.length(),9,9,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Puts" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Puts" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Puts" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Puts" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Puts" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Puts" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Puts" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Puts" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  ecode9 = SWIG_AsVal_float(args(8), &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Puts" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = (float)(val9);
+  (arg1)->Puts(arg2,arg3,arg4,arg5,arg6,arg7,(char const *)arg8,arg9);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Puts__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Puts",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Puts" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Puts" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Puts" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Puts" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Puts" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Puts" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Puts" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Puts" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  (arg1)->Puts(arg2,arg3,arg4,arg5,arg6,arg7,(char const *)arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Puts (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[9]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7),octave_value_ref(args,8)
+  };
+  
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Puts__SWIG_3(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Puts__SWIG_2(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Puts__SWIG_1(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Puts__SWIG_5(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_char(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Puts__SWIG_0(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_Puts__SWIG_4(args, nargout);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Title__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Title",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Title" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Title" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Title" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Title" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  (arg1)->Title((char const *)arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Title__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Title",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Title" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Title" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Title" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Title((char const *)arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Title__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Title",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Title" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Title" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->Title((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Title__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  wchar_t *arg2 = (wchar_t *) 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Title",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Title" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Title" "', argument " "2"" of type '" "wchar_t const *""'"); 
+  }
+  arg2 = (wchar_t *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Title" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Title" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  (arg1)->Title((wchar_t const *)arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Title__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  wchar_t *arg2 = (wchar_t *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Title",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Title" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Title" "', argument " "2"" of type '" "wchar_t const *""'"); 
+  }
+  arg2 = (wchar_t *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Title" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Title((wchar_t const *)arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Title__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  wchar_t *arg2 = (wchar_t *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Title",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Title" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Title" "', argument " "2"" of type '" "wchar_t const *""'"); 
+  }
+  arg2 = (wchar_t *)(argp2);
+  (arg1)->Title((wchar_t const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Title (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_wchar_t, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Title__SWIG_5(args, nargout);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Title__SWIG_2(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_wchar_t, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Title__SWIG_4(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Title__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_wchar_t, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Title__SWIG_3(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Title__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Colorbar__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Colorbar",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Colorbar" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Colorbar" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Colorbar" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  (arg1)->Colorbar((char const *)arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Colorbar__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Colorbar",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Colorbar" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Colorbar" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->Colorbar((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Colorbar__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Colorbar",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Colorbar" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  (arg1)->Colorbar();
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Colorbar__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Colorbar",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Colorbar" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Colorbar" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Colorbar" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Colorbar" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Colorbar" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Colorbar" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Colorbar" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  (arg1)->Colorbar((char const *)arg2,arg3,arg4,arg5,arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Colorbar__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Colorbar",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Colorbar" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Colorbar" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Colorbar" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Colorbar" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Colorbar" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Colorbar" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  (arg1)->Colorbar(arg2,arg3,arg4,arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Colorbar__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Colorbar",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Colorbar" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Colorbar" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Colorbar" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Colorbar" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Colorbar" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->Colorbar(*arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Colorbar__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Colorbar",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Colorbar" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Colorbar" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Colorbar" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Colorbar" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Colorbar(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Colorbar__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Colorbar",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Colorbar" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Colorbar" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Colorbar" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->Colorbar(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Colorbar (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[7]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6)
+  };
+  
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglGraph_Colorbar__SWIG_2(args, nargout);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Colorbar__SWIG_7(args, nargout);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Colorbar__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Colorbar__SWIG_6(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_Colorbar__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Colorbar__SWIG_5(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Colorbar__SWIG_4(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Colorbar__SWIG_3(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_SimplePlot__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  int arg3 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SimplePlot",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SimplePlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SimplePlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SimplePlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SimplePlot" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_SimplePlot" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->SimplePlot(*arg2,arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SimplePlot__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SimplePlot",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SimplePlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SimplePlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SimplePlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  ecode3 = SWIG_AsVal_int(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SimplePlot" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = (int)(val3);
+  (arg1)->SimplePlot(*arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SimplePlot (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_SimplePlot__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_SimplePlot__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_AddLegend (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_AddLegend",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_AddLegend" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_AddLegend" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_AddLegend" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->AddLegend((char const *)arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_AddLegendw (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  wchar_t *arg2 = (wchar_t *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_AddLegendw",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_AddLegendw" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_AddLegendw" "', argument " "2"" of type '" "wchar_t const *""'"); 
+  }
+  arg2 = (wchar_t *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_AddLegendw" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->AddLegendw((wchar_t const *)arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ClearLegend (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ClearLegend",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ClearLegend" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  (arg1)->ClearLegend();
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Legend__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Legend",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Legend" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Legend" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Legend" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Legend" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Legend" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Legend" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  (arg1)->Legend(arg2,arg3,(char const *)arg4,arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Legend__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Legend",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Legend" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Legend" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Legend" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Legend" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Legend" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->Legend(arg2,arg3,(char const *)arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Legend__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Legend",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Legend" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Legend" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Legend" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Legend" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Legend(arg2,arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Legend__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Legend",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Legend" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Legend" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Legend" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  (arg1)->Legend(arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Legend__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Legend",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Legend" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Legend" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Legend" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Legend" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Legend" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->Legend(arg2,(char const *)arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Legend__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Legend",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Legend" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Legend" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Legend" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Legend" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  (arg1)->Legend(arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Legend__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Legend",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Legend" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Legend" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Legend" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Legend(arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Legend__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Legend",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Legend" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Legend" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  (arg1)->Legend(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Legend__SWIG_8 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Legend",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Legend" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  (arg1)->Legend();
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Legend (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglGraph_Legend__SWIG_8(args, nargout);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglGraph_Legend__SWIG_7(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Legend__SWIG_6(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_Legend__SWIG_3(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Legend__SWIG_5(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Legend__SWIG_2(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Legend__SWIG_4(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Legend__SWIG_1(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Legend__SWIG_0(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Plot__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Plot",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Plot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Plot" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Plot" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->Plot((char const *)arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Plot__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Plot",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Plot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Plot" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Plot((char const *)arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Plot__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Plot",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Plot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->Plot((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Plot__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Plot",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Plot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Plot" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Plot" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Plot" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_int(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Plot" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = (int)(val6);
+  (arg1)->Plot((char const *)arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Plot__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Plot",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Plot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Plot" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Plot" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Plot" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Plot((char const *)arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Plot__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Plot",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Plot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Plot" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Plot" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Plot((char const *)arg2,(char const *)arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Plot__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Plot",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Plot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Plot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Plot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Plot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Plot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Plot" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Plot(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Plot__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Plot",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Plot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Plot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Plot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Plot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Plot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Plot(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Plot__SWIG_8 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Plot",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Plot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Plot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Plot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Plot" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Plot(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Plot__SWIG_9 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Plot",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Plot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Plot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Plot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->Plot(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Plot__SWIG_10 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Plot",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Plot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Plot" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Plot(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Plot__SWIG_11 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Plot",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Plot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->Plot(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Plot (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Plot__SWIG_11(args, nargout);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Plot__SWIG_2(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Plot__SWIG_9(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Plot__SWIG_10(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Plot__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Plot__SWIG_7(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Plot__SWIG_8(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Plot__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Plot__SWIG_5(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Plot__SWIG_6(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Plot__SWIG_4(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Plot__SWIG_3(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_BoxPlot__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_BoxPlot",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_BoxPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_BoxPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_BoxPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_BoxPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_BoxPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_BoxPlot" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->BoxPlot(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_BoxPlot__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_BoxPlot",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_BoxPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_BoxPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_BoxPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_BoxPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_BoxPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->BoxPlot(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_BoxPlot__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_BoxPlot",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_BoxPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_BoxPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_BoxPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_BoxPlot" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->BoxPlot(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_BoxPlot__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_BoxPlot",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_BoxPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_BoxPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_BoxPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->BoxPlot(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_BoxPlot (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_BoxPlot__SWIG_3(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_BoxPlot__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_BoxPlot__SWIG_2(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_BoxPlot__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Radar__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Radar",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Radar" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Radar" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Radar" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Radar" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Radar" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  (arg1)->Radar(*arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Radar__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Radar",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Radar" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Radar" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Radar" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Radar" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Radar(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Radar__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Radar",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Radar" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Radar" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Radar" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->Radar(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Radar (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Radar__SWIG_2(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Radar__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Radar__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Tens__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Tens",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tens" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tens" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Tens" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Tens" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->Tens(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Tens__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Tens",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tens" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tens" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Tens" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->Tens(*arg2,*arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Tens__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Tens",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tens" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tens" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Tens" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Tens(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Tens__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Tens",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tens" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tens" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Tens(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Tens__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Tens",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tens" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tens" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Tens(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Tens__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Tens",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tens" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->Tens(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Tens (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Tens__SWIG_5(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Tens__SWIG_3(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Tens__SWIG_4(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Tens__SWIG_1(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Tens__SWIG_2(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Tens__SWIG_0(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Area__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Area",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Area" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Area" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Area" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Area" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Area" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Area" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Area" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Area" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Area(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Area__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Area",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Area" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Area" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Area" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Area" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Area" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Area" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Area" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Area(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Area__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Area",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Area" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Area" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Area" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Area" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Area" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Area" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Area(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Area__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Area",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Area" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Area" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Area" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Area" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Area" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->Area(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Area__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Area",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Area" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Area" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Area" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Area" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Area(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Area__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Area",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Area" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Area" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Area" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->Area(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Area (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[5]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Area__SWIG_5(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Area__SWIG_3(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Area__SWIG_4(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Area__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Area__SWIG_2(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Area__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Stem__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Stem",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Stem" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Stem" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Stem" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Stem" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Stem" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Stem" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Stem" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Stem" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Stem(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Stem__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Stem",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Stem" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Stem" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Stem" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Stem" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Stem" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Stem" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Stem" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Stem(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Stem__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Stem",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Stem" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Stem" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Stem" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Stem" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Stem" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Stem" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Stem(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Stem__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Stem",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Stem" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Stem" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Stem" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Stem" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Stem" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->Stem(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Stem__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Stem",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Stem" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Stem" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Stem" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Stem" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Stem(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Stem__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Stem",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Stem" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Stem" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Stem" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->Stem(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Stem (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[5]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Stem__SWIG_5(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Stem__SWIG_3(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Stem__SWIG_4(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Stem__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Stem__SWIG_2(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Stem__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Step__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Step",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Step" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Step" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Step" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Step" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Step" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Step" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Step" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Step" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Step(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Step__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Step",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Step" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Step" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Step" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Step" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Step" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Step" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Step" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Step(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Step__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Step",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Step" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Step" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Step" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Step" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Step" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Step" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Step(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Step__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Step",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Step" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Step" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Step" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Step" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Step" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->Step(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Step__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Step",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Step" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Step" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Step" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Step" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Step(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Step__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Step",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Step" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Step" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Step" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->Step(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Step (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[5]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Step__SWIG_5(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Step__SWIG_3(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Step__SWIG_4(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Step__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Step__SWIG_2(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Step__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Bars__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Bars",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Bars" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Bars" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Bars" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Bars" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Bars" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Bars" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Bars" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Bars" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Bars(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Bars__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Bars",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Bars" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Bars" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Bars" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Bars" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Bars" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Bars" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Bars" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Bars(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Bars__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Bars",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Bars" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Bars" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Bars" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Bars" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Bars" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Bars" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Bars(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Bars__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Bars",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Bars" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Bars" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Bars" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Bars" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Bars" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->Bars(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Bars__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Bars",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Bars" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Bars" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Bars" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Bars" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Bars(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Bars__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Bars",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Bars" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Bars" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Bars" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->Bars(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Bars (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[5]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Bars__SWIG_5(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Bars__SWIG_3(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Bars__SWIG_4(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Bars__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Bars__SWIG_2(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Bars__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Barh__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Barh",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Barh" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Barh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Barh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Barh" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Barh" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Barh" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Barh(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Barh__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Barh",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Barh" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Barh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Barh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Barh" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Barh" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->Barh(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Barh__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Barh",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Barh" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Barh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Barh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Barh" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Barh(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Barh__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Barh",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Barh" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Barh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Barh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->Barh(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Barh (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Barh__SWIG_3(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Barh__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Barh__SWIG_2(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Barh__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Region__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  bool arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  bool val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Region",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Region" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Region" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Region" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Region" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_bool(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Region" "', argument " "5"" of type '" "bool""'");
+  } 
+  arg5 = (bool)(val5);
+  (arg1)->Region(*arg2,*arg3,(char const *)arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Region__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Region",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Region" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Region" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Region" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Region" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Region(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Region__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Region",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Region" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Region" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Region" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->Region(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Region__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  bool arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  bool val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Region",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Region" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Region" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Region" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Region" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Region" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_bool(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Region" "', argument " "6"" of type '" "bool""'");
+  } 
+  arg6 = (bool)(val6);
+  (arg1)->Region(*arg2,*arg3,*arg4,(char const *)arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Region__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Region",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Region" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Region" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Region" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Region" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Region" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Region(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Region__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Region",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Region" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Region" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Region" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Region" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Region(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Region (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Region__SWIG_2(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Region__SWIG_5(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Region__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Region__SWIG_4(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_bool(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Region__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_bool(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Region__SWIG_3(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Torus__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Torus",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Torus" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Torus" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Torus" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Torus" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Torus" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Torus" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Torus(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Torus__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Torus",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Torus" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Torus" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Torus" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Torus" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Torus" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->Torus(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Torus (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Torus__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Torus__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Text__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Text",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Text" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Text" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Text" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Text" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Text" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Text" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  (arg1)->Text(*arg2,*arg3,*arg4,(char const *)arg5,(char const *)arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Text__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Text",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Text" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Text" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Text" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Text" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Text" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->Text(*arg2,*arg3,*arg4,(char const *)arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Text__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Text",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Text" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Text" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Text" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Text" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Text(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Text__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Text",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Text" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Text" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Text" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Text" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Text" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  (arg1)->Text(*arg2,*arg3,(char const *)arg4,(char const *)arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Text__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Text",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Text" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Text" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Text" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Text" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Text(*arg2,*arg3,(char const *)arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Text__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Text",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Text" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Text" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Text" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Text(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Text__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Text",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Text" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Text" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Text" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Text" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->Text(*arg2,(char const *)arg3,(char const *)arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Text__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Text",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Text" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Text" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Text" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Text(*arg2,(char const *)arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Text__SWIG_8 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Text",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Text" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Text" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Text(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Text (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[7]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Text__SWIG_8(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Text__SWIG_5(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Text__SWIG_7(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Text__SWIG_2(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Text__SWIG_4(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Text__SWIG_6(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Text__SWIG_1(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Text__SWIG_3(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Text__SWIG_0(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Chart__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Chart",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Chart" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Chart" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Chart" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Chart" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Chart(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Chart__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Chart",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Chart" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Chart" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Chart" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->Chart(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Chart (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Chart__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Chart__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Error__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Error",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Error" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Error" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Error" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Error" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Error(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Error__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Error",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Error" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Error" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Error" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->Error(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Error__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Error",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Error" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Error" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Error" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Error" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Error" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Error(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Error__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Error",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Error" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Error" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Error" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Error" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Error(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Error__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Error",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Error" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Error" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Error" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Error" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Error" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Error" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->Error(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Error__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Error",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Error" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Error" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Error" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Error" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Error" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->Error(*arg2,*arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Error (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Error__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Error__SWIG_3(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Error__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Error__SWIG_5(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Error__SWIG_2(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Error__SWIG_4(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Mark__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Mark",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Mark" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Mark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Mark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Mark" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mark" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Mark" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mark" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Mark" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->Mark(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Mark__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Mark",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Mark" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Mark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Mark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Mark" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mark" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Mark" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Mark(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Mark__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Mark",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Mark" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Mark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Mark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Mark" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Mark(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Mark (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Mark__SWIG_3(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Mark__SWIG_2(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_char(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Mark__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Mark__SWIG_1(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_TextMark__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TextMark",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TextMark" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TextMark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TextMark" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TextMark" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TextMark" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_TextMark" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  (arg1)->TextMark(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,(char const *)arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TextMark__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TextMark",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TextMark" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TextMark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TextMark" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TextMark" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TextMark" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->TextMark(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TextMark__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TextMark",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TextMark" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TextMark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TextMark" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TextMark" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TextMark" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->TextMark(*arg2,*arg3,*arg4,(char const *)arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TextMark__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TextMark",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TextMark" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TextMark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TextMark" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TextMark" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->TextMark(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TextMark__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TextMark",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TextMark" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TextMark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TextMark" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TextMark" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->TextMark(*arg2,*arg3,(char const *)arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TextMark__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TextMark",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TextMark" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TextMark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TextMark" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->TextMark(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TextMark__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TextMark",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TextMark" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TextMark" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TextMark" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->TextMark(*arg2,(char const *)arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TextMark__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TextMark",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TextMark" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TextMark" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->TextMark(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TextMark (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[7]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_TextMark__SWIG_7(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_TextMark__SWIG_5(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_TextMark__SWIG_6(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_TextMark__SWIG_3(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_TextMark__SWIG_4(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_TextMark__SWIG_1(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_TextMark__SWIG_2(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_TextMark__SWIG_0(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Tube__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Tube",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tube" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Tube" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Tube" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->Tube(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Tube__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Tube",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tube" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Tube" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->Tube(*arg2,*arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Tube__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  float arg5 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Tube",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tube" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Tube" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Tube" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->Tube(*arg2,*arg3,*arg4,arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Tube__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Tube",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tube" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Tube" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->Tube(*arg2,*arg3,*arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Tube__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Tube",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tube" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Tube" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Tube(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Tube__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Tube",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tube" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Tube(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Tube__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  float arg4 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Tube",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tube" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Tube" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Tube(*arg2,*arg3,arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Tube__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Tube",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tube" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  (arg1)->Tube(*arg2,*arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Tube__SWIG_8 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Tube",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tube" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Tube(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Tube__SWIG_9 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Tube",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tube" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->Tube(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Tube__SWIG_10 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  float arg3 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Tube",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tube" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Tube(*arg2,arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Tube__SWIG_11 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  float arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Tube",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tube" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  (arg1)->Tube(*arg2,arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Tube (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Tube__SWIG_9(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_Tube__SWIG_11(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Tube__SWIG_5(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Tube__SWIG_7(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Tube__SWIG_8(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Tube__SWIG_10(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Tube__SWIG_1(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Tube__SWIG_3(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Tube__SWIG_4(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Tube__SWIG_6(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Tube__SWIG_0(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Tube__SWIG_2(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Surf" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->Surf((char const *)arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Surf((char const *)arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  (arg1)->Surf((char const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_int(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Surf" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = (int)(val6);
+  (arg1)->Surf((char const *)arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Surf((char const *)arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Surf((char const *)arg2,(char const *)arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Grid__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Grid",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grid" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grid" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grid" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Grid" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Grid" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Grid" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  (arg1)->Grid(*arg2,*arg3,*arg4,(char const *)arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Grid__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Grid",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grid" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grid" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grid" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Grid" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Grid" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Grid(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Grid__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Grid",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grid" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grid" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grid" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Grid" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Grid(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Grid__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Grid",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grid" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grid" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grid" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Grid" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  (arg1)->Grid(*arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Grid__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Grid",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grid" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grid" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grid" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Grid(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Grid__SWIG_8 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Grid",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grid" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grid" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->Grid(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Grid (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglGraph_Grid__SWIG_2(args, nargout);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Grid__SWIG_8(args, nargout);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Grid__SWIG_1(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Grid__SWIG_7(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Grid__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Grid__SWIG_5(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Grid__SWIG_6(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Grid__SWIG_4(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Grid__SWIG_3(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Mesh__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Mesh",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Mesh" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Mesh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mesh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Mesh" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mesh" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Mesh" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mesh" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Mesh" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Mesh(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Mesh__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Mesh",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Mesh" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Mesh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mesh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Mesh" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mesh" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Mesh" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mesh" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Mesh(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Mesh__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Mesh",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Mesh" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Mesh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mesh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Mesh" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Mesh(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Mesh__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Mesh",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Mesh" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Mesh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mesh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->Mesh(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Mesh (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[5]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Mesh__SWIG_3(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Mesh__SWIG_2(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Mesh__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Mesh__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Fall__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Fall",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fall" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fall" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fall" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fall" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fall" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fall" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fall" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Fall" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Fall(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Fall__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Fall",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fall" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fall" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fall" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fall" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fall" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fall" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fall" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Fall(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Fall__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Fall",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fall" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fall" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fall" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fall" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Fall(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Fall__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Fall",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fall" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fall" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fall" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->Fall(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Fall (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[5]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Fall__SWIG_3(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Fall__SWIG_2(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Fall__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Fall__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Belt__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Belt",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Belt" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Belt" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Belt" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Belt" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Belt" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Belt" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Belt" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Belt" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Belt(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Belt__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Belt",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Belt" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Belt" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Belt" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Belt" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Belt" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Belt" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Belt" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Belt(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Belt__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Belt",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Belt" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Belt" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Belt" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Belt" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Belt(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Belt__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Belt",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Belt" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Belt" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Belt" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->Belt(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Belt (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[5]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Belt__SWIG_3(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Belt__SWIG_2(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Belt__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Belt__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Surf(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Surf(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf__SWIG_8 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Surf(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf__SWIG_9 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->Surf(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Surf__SWIG_9(args, nargout);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Surf__SWIG_2(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Surf__SWIG_8(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Surf__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Surf__SWIG_7(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Surf__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Surf__SWIG_5(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Surf__SWIG_6(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Surf__SWIG_4(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Surf__SWIG_3(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Tile__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Tile",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tile" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tile" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tile" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tile" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tile" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tile" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tile" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Tile" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Tile(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Tile__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Tile",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tile" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tile" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tile" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tile" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tile" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tile" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tile" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Tile(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Tile__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Tile",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tile" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tile" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tile" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tile" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Tile(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Tile__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Tile",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tile" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tile" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tile" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->Tile(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Tile (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[5]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Tile__SWIG_3(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Tile__SWIG_2(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Tile__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Tile__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_TileS__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TileS",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TileS" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TileS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TileS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TileS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TileS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TileS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TileS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TileS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TileS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TileS" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->TileS(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TileS__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TileS",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TileS" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TileS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TileS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TileS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TileS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TileS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TileS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TileS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TileS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->TileS(*arg2,*arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TileS__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TileS",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TileS" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TileS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TileS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TileS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TileS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TileS" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->TileS(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TileS__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TileS",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TileS" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TileS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TileS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TileS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TileS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->TileS(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TileS (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_TileS__SWIG_3(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_TileS__SWIG_2(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_TileS__SWIG_1(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_TileS__SWIG_0(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Dens__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Dens",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dens" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Dens" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Dens" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Dens" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  (arg1)->Dens(*arg2,*arg3,*arg4,(char const *)arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Dens__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Dens",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dens" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Dens" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Dens" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Dens(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Dens__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Dens",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dens" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Dens" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Dens(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Dens__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Dens",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dens" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dens" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Dens" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  (arg1)->Dens(*arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Dens__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Dens",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dens" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dens" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Dens(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Dens__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Dens",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dens" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->Dens(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Dens (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Dens__SWIG_5(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Dens__SWIG_4(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Dens__SWIG_2(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Dens__SWIG_3(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Dens__SWIG_1(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Dens__SWIG_0(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Boxs__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Boxs",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Boxs" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Boxs" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Boxs" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Boxs" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Boxs" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Boxs" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Boxs" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Boxs" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Boxs" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  (arg1)->Boxs(*arg2,*arg3,*arg4,(char const *)arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Boxs__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Boxs",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Boxs" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Boxs" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Boxs" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Boxs" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Boxs" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Boxs" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Boxs" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Boxs" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Boxs(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Boxs__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Boxs",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Boxs" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Boxs" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Boxs" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Boxs" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Boxs" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Boxs" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Boxs" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Boxs(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Boxs__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Boxs",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Boxs" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Boxs" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Boxs" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Boxs" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Boxs" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  (arg1)->Boxs(*arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Boxs__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Boxs",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Boxs" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Boxs" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Boxs" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Boxs" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Boxs(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Boxs__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Boxs",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Boxs" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Boxs" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Boxs" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->Boxs(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Boxs (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Boxs__SWIG_5(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Boxs__SWIG_4(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Boxs__SWIG_2(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Boxs__SWIG_3(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Boxs__SWIG_1(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Boxs__SWIG_0(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Cont__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cont",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cont" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Cont" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Cont" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  (arg1)->Cont(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cont__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cont",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cont" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Cont" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->Cont(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cont__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cont",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cont" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->Cont(*arg2,*arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cont__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cont",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Cont" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->Cont(*arg2,*arg3,(char const *)arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cont__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cont",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Cont(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cont__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cont",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->Cont(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cont__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cont",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cont" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_int(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Cont" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = (int)(val6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Cont" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  (arg1)->Cont(*arg2,*arg3,*arg4,(char const *)arg5,arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cont__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cont",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cont" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_int(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Cont" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = (int)(val6);
+  (arg1)->Cont(*arg2,*arg3,*arg4,(char const *)arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cont__SWIG_8 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cont",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cont" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Cont(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cont__SWIG_9 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cont",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Cont(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cont__SWIG_10 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cont",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Cont" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->Cont(*arg2,(char const *)arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cont__SWIG_11 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cont",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->Cont(*arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cont__SWIG_12 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cont",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Cont(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cont__SWIG_13 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cont",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->Cont(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cont (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[7]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Cont__SWIG_13(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Cont__SWIG_5(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Cont__SWIG_12(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Cont__SWIG_9(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Cont__SWIG_4(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Cont__SWIG_11(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Cont__SWIG_2(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Cont__SWIG_8(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Cont__SWIG_3(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Cont__SWIG_10(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Cont__SWIG_1(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Cont__SWIG_7(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Cont__SWIG_0(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Cont__SWIG_6(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_ContF__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContF",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContF" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_ContF" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_ContF" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  (arg1)->ContF(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContF__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContF",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContF" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_ContF" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->ContF(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContF__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContF",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContF" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->ContF(*arg2,*arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContF__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContF",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContF" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->ContF(*arg2,*arg3,(char const *)arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContF__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContF",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->ContF(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContF__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContF",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->ContF(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContF__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContF",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContF" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_int(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_ContF" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = (int)(val6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_ContF" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  (arg1)->ContF(*arg2,*arg3,*arg4,(char const *)arg5,arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContF__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContF",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContF" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_int(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_ContF" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = (int)(val6);
+  (arg1)->ContF(*arg2,*arg3,*arg4,(char const *)arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContF__SWIG_8 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContF",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContF" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->ContF(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContF__SWIG_9 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContF",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->ContF(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContF__SWIG_10 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContF",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContF" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->ContF(*arg2,(char const *)arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContF__SWIG_11 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContF",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->ContF(*arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContF__SWIG_12 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContF",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->ContF(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContF__SWIG_13 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContF",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->ContF(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContF (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[7]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_ContF__SWIG_13(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContF__SWIG_5(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContF__SWIG_12(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_ContF__SWIG_9(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_ContF__SWIG_4(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_ContF__SWIG_11(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_ContF__SWIG_2(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_ContF__SWIG_8(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContF__SWIG_3(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContF__SWIG_10(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_ContF__SWIG_1(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_ContF__SWIG_7(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_ContF__SWIG_0(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_ContF__SWIG_6(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_ContD__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContD",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContD" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContD" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_ContD" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_ContD" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  (arg1)->ContD(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContD__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContD",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContD" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContD" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_ContD" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->ContD(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContD__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContD",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContD" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContD" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->ContD(*arg2,*arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContD__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContD",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContD" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContD" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->ContD(*arg2,*arg3,(char const *)arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContD__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContD",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContD" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->ContD(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContD__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContD",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContD" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->ContD(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContD__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContD",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContD" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContD" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_int(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_ContD" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = (int)(val6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_ContD" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  (arg1)->ContD(*arg2,*arg3,*arg4,(char const *)arg5,arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContD__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContD",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContD" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContD" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_int(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_ContD" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = (int)(val6);
+  (arg1)->ContD(*arg2,*arg3,*arg4,(char const *)arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContD__SWIG_8 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContD",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContD" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContD" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->ContD(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContD__SWIG_9 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContD",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContD" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->ContD(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContD__SWIG_10 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContD",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContD" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContD" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->ContD(*arg2,(char const *)arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContD__SWIG_11 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContD",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContD" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->ContD(*arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContD__SWIG_12 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContD",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContD" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->ContD(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContD__SWIG_13 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContD",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContD" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->ContD(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContD (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[7]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_ContD__SWIG_13(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContD__SWIG_5(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContD__SWIG_12(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_ContD__SWIG_9(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_ContD__SWIG_4(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_ContD__SWIG_11(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_ContD__SWIG_2(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_ContD__SWIG_8(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContD__SWIG_3(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContD__SWIG_10(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_ContD__SWIG_1(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_ContD__SWIG_7(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_ContD__SWIG_0(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_ContD__SWIG_6(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Axial__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Axial",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Axial" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Axial" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Axial" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Axial" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->Axial(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Axial__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Axial",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Axial" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Axial" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Axial" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->Axial(*arg2,*arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Axial__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Axial",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Axial" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Axial" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Axial(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Axial__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Axial",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Axial" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->Axial(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Axial__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Axial",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Axial" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Axial" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Axial" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_int(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Axial" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = (int)(val6);
+  (arg1)->Axial(*arg2,*arg3,*arg4,(char const *)arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Axial__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Axial",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Axial" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Axial" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Axial" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Axial(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Axial__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Axial",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Axial" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Axial" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Axial(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Axial__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Axial",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Axial" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Axial" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->Axial(*arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Axial__SWIG_8 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Axial",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Axial" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Axial(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Axial__SWIG_9 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Axial",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Axial" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->Axial(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Axial (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Axial__SWIG_9(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Axial__SWIG_3(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Axial__SWIG_8(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Axial__SWIG_6(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Axial__SWIG_2(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Axial__SWIG_7(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Axial__SWIG_1(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Axial__SWIG_5(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Axial__SWIG_0(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Axial__SWIG_4(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_SurfC__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SurfC",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SurfC" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SurfC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_SurfC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_SurfC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_SurfC" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfC" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_SurfC" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->SurfC(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SurfC__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SurfC",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SurfC" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SurfC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_SurfC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_SurfC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_SurfC" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfC" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->SurfC(*arg2,*arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SurfC__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SurfC",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SurfC" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SurfC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_SurfC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_SurfC" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->SurfC(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SurfC__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SurfC",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SurfC" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SurfC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_SurfC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->SurfC(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SurfC (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_SurfC__SWIG_3(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_SurfC__SWIG_2(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_SurfC__SWIG_1(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_SurfC__SWIG_0(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_SurfA__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SurfA",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SurfA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SurfA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_SurfA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_SurfA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_SurfA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_SurfA" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->SurfA(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SurfA__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SurfA",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SurfA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SurfA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_SurfA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_SurfA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_SurfA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->SurfA(*arg2,*arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SurfA__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SurfA",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SurfA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SurfA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_SurfA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_SurfA" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->SurfA(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SurfA__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_SurfA",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SurfA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SurfA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_SurfA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->SurfA(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_SurfA (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_SurfA__SWIG_3(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_SurfA__SWIG_2(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_SurfA__SWIG_1(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_SurfA__SWIG_0(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_STFA__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  int arg6 ;
+  char *arg7 = (char *) 0 ;
+  float arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_STFA",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_STFA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_STFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_STFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_STFA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_STFA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  ecode6 = SWIG_AsVal_int(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_STFA" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = (int)(val6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_STFA" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  ecode8 = SWIG_AsVal_float(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_STFA" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = (float)(val8);
+  (arg1)->STFA(*arg2,*arg3,*arg4,*arg5,arg6,(char const *)arg7,arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_STFA__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  int arg6 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_STFA",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_STFA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_STFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_STFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_STFA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_STFA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  ecode6 = SWIG_AsVal_int(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_STFA" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = (int)(val6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_STFA" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  (arg1)->STFA(*arg2,*arg3,*arg4,*arg5,arg6,(char const *)arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_STFA__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_STFA",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_STFA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_STFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_STFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_STFA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_STFA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  ecode6 = SWIG_AsVal_int(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_STFA" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = (int)(val6);
+  (arg1)->STFA(*arg2,*arg3,*arg4,*arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_STFA__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  int arg4 ;
+  char *arg5 = (char *) 0 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_STFA",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_STFA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_STFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_STFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_STFA" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_STFA" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_STFA" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  (arg1)->STFA(*arg2,*arg3,arg4,(char const *)arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_STFA__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  int arg4 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_STFA",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_STFA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_STFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_STFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_STFA" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_STFA" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->STFA(*arg2,*arg3,arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_STFA__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_STFA",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_STFA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_STFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_STFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_STFA" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->STFA(*arg2,*arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_STFA (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[8]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7)
+  };
+  
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_STFA__SWIG_5(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_STFA__SWIG_4(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_STFA__SWIG_2(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_STFA__SWIG_3(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_STFA__SWIG_1(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_STFA__SWIG_0(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Dew__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Dew",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dew" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dew" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dew" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Dew" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Dew" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Dew" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Dew" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  (arg1)->Dew(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Dew__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Dew",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dew" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dew" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dew" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Dew" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Dew" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Dew" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->Dew(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Dew__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Dew",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dew" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dew" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dew" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Dew" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Dew" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->Dew(*arg2,*arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Dew__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Dew",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dew" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dew" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dew" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Dew" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Dew" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->Dew(*arg2,*arg3,(char const *)arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Dew__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Dew",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dew" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dew" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dew" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Dew" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Dew(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Dew__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Dew",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dew" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dew" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dew" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->Dew(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Dew (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[7]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Dew__SWIG_5(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Dew__SWIG_4(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Dew__SWIG_2(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Dew__SWIG_3(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Dew__SWIG_1(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Dew__SWIG_0(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Traj__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  float arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Traj",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Traj" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Traj" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Traj" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Traj" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Traj" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Traj" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Traj" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  ecode8 = SWIG_AsVal_float(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Traj" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = (float)(val8);
+  (arg1)->Traj(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7,arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Traj__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Traj",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Traj" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Traj" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Traj" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Traj" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Traj" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Traj" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Traj" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  (arg1)->Traj(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Traj__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Traj",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Traj" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Traj" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Traj" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Traj" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Traj" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Traj" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->Traj(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Traj__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Traj",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Traj" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Traj" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Traj" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Traj" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Traj" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->Traj(*arg2,*arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Traj__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  float arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Traj",args.length(),9,9,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Traj" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Traj" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Traj" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Traj" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Traj" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Traj" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Traj" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Traj" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  ecode9 = SWIG_AsVal_float(args(8), &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Traj" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = (float)(val9);
+  (arg1)->Traj(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8,arg9);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Traj__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Traj",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Traj" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Traj" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Traj" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Traj" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Traj" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Traj" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Traj" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Traj" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  (arg1)->Traj(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Traj__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Traj",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Traj" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Traj" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Traj" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Traj" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Traj" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Traj" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Traj" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  (arg1)->Traj(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Traj (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[9]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7),octave_value_ref(args,8)
+  };
+  
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Traj__SWIG_3(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Traj__SWIG_2(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_Traj__SWIG_6(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Traj__SWIG_1(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Traj__SWIG_5(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Traj__SWIG_0(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_Traj__SWIG_4(args, nargout);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Vect__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  int arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Vect",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Vect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Vect" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Vect" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  ecode8 = SWIG_AsVal_int(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Vect" "', argument " "8"" of type '" "int""'");
+  } 
+  arg8 = (int)(val8);
+  (arg1)->Vect(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7,arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Vect__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Vect",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Vect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Vect" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Vect" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  (arg1)->Vect(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Vect__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Vect",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Vect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Vect" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->Vect(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Vect__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Vect",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Vect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->Vect(*arg2,*arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Vect__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Vect",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Vect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_int(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Vect" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = (int)(val6);
+  (arg1)->Vect(*arg2,*arg3,(char const *)arg4,arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Vect__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Vect",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Vect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->Vect(*arg2,*arg3,(char const *)arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Vect__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Vect",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Vect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Vect(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Vect__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Vect",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Vect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->Vect(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_VectL__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_VectL",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectL" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_VectL" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_VectL" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_VectL" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  (arg1)->VectL(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_VectL__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_VectL",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectL" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_VectL" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_VectL" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->VectL(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_VectL__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_VectL",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectL" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_VectL" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->VectL(*arg2,*arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_VectL__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_VectL",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectL" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_VectL" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->VectL(*arg2,*arg3,(char const *)arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_VectL__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_VectL",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectL" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->VectL(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_VectL__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_VectL",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectL" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->VectL(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_VectC__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_VectC",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectC" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_VectC" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_VectC" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_VectC" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  (arg1)->VectC(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_VectC__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_VectC",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectC" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_VectC" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_VectC" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->VectC(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_VectC__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_VectC",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectC" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_VectC" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->VectC(*arg2,*arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_VectC__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_VectC",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectC" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_VectC" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->VectC(*arg2,*arg3,(char const *)arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_VectC__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_VectC",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectC" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->VectC(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_VectC__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_VectC",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectC" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->VectC(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Vect__SWIG_8 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  int arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  int val9 ;
+  int ecode9 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Vect",args.length(),9,9,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Vect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Vect" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Vect" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Vect" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  ecode9 = SWIG_AsVal_int(args(8), &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Vect" "', argument " "9"" of type '" "int""'");
+  } 
+  arg9 = (int)(val9);
+  (arg1)->Vect(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8,arg9);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Vect__SWIG_9 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Vect",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Vect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Vect" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Vect" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Vect" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  (arg1)->Vect(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Vect__SWIG_10 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Vect",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Vect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Vect" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Vect" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  (arg1)->Vect(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Vect__SWIG_11 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Vect",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Vect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_int(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Vect" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = (int)(val6);
+  (arg1)->Vect(*arg2,*arg3,*arg4,(char const *)arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Vect__SWIG_12 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Vect",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Vect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Vect(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Vect__SWIG_13 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Vect",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Vect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Vect(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Vect (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[9]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7),octave_value_ref(args,8)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Vect__SWIG_7(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Vect__SWIG_13(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Vect__SWIG_6(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Vect__SWIG_3(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Vect__SWIG_12(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Vect__SWIG_5(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Vect__SWIG_2(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Vect__SWIG_11(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Vect__SWIG_4(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_Vect__SWIG_10(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Vect__SWIG_1(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Vect__SWIG_9(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_int(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Vect__SWIG_0(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_int(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_Vect__SWIG_8(args, nargout);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_VectL__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_VectL",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectL" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_VectL" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_VectL" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_VectL" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_VectL" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  (arg1)->VectL(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_VectL__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_VectL",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectL" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_VectL" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_VectL" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_VectL" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  (arg1)->VectL(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_VectL__SWIG_8 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_VectL",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectL" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_VectL" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->VectL(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_VectL__SWIG_9 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_VectL",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectL" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->VectL(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_VectL (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[8]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_VectL__SWIG_5(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_VectL__SWIG_9(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_VectL__SWIG_4(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_VectL__SWIG_2(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_VectL__SWIG_8(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_VectL__SWIG_3(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_VectL__SWIG_1(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_VectL__SWIG_7(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_VectL__SWIG_0(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_VectL__SWIG_6(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_VectC__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_VectC",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectC" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_VectC" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_VectC" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_VectC" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_VectC" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  (arg1)->VectC(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_VectC__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_VectC",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectC" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_VectC" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_VectC" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_VectC" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  (arg1)->VectC(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_VectC__SWIG_8 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_VectC",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectC" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_VectC" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->VectC(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_VectC__SWIG_9 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_VectC",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectC" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->VectC(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_VectC (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[8]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_VectC__SWIG_5(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_VectC__SWIG_9(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_VectC__SWIG_4(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_VectC__SWIG_2(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_VectC__SWIG_8(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_VectC__SWIG_3(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_VectC__SWIG_1(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_VectC__SWIG_7(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_VectC__SWIG_0(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_VectC__SWIG_6(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Map__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  int arg7 ;
+  bool arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  bool val8 ;
+  int ecode8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Map",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Map" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Map" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Map" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Map" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_int(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Map" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = (int)(val7);
+  ecode8 = SWIG_AsVal_bool(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Map" "', argument " "8"" of type '" "bool""'");
+  } 
+  arg8 = (bool)(val8);
+  (arg1)->Map(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7,arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Map__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  int arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Map",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Map" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Map" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Map" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Map" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_int(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Map" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = (int)(val7);
+  (arg1)->Map(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Map__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Map",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Map" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Map" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Map" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Map" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->Map(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Map__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Map",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Map" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Map" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Map" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->Map(*arg2,*arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Map__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  int arg5 ;
+  bool arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  bool val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Map",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Map" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Map" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Map" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  ecode6 = SWIG_AsVal_bool(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Map" "', argument " "6"" of type '" "bool""'");
+  } 
+  arg6 = (bool)(val6);
+  (arg1)->Map(*arg2,*arg3,(char const *)arg4,arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Map__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Map",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Map" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Map" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Map" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  (arg1)->Map(*arg2,*arg3,(char const *)arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Map__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Map",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Map" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Map" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Map(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Map__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Map",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Map" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->Map(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Map (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[8]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Map__SWIG_7(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Map__SWIG_6(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Map__SWIG_3(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Map__SWIG_5(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Map__SWIG_2(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_bool(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Map__SWIG_4(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Map__SWIG_1(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_bool(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Map__SWIG_0(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3A__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3A",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3A" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3A" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Surf3A" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Surf3A" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Surf3A" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  (arg1)->Surf3A(arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3A__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3A",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3A" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3A" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Surf3A" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Surf3A" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  (arg1)->Surf3A(arg2,*arg3,*arg4,*arg5,*arg6,*arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3A__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3A",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3A" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3A" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Surf3A(arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3A__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3A",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3A" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Surf3A(arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3A__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  int arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3A",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3A" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3A" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Surf3A" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Surf3A" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  ecode8 = SWIG_AsVal_int(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Surf3A" "', argument " "8"" of type '" "int""'");
+  } 
+  arg8 = (int)(val8);
+  (arg1)->Surf3A(*arg2,*arg3,*arg4,*arg5,*arg6,(char const *)arg7,arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3A__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3A",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3A" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3A" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Surf3A" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Surf3A" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  (arg1)->Surf3A(*arg2,*arg3,*arg4,*arg5,*arg6,(char const *)arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3A__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3A",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3A" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3A" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Surf3A" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  (arg1)->Surf3A(*arg2,*arg3,*arg4,*arg5,*arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3A__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3A",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3A" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Surf3A" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  (arg1)->Surf3A(*arg2,*arg3,(char const *)arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3A__SWIG_8 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3A",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3A" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Surf3A(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3A__SWIG_9 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3A",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3A" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->Surf3A(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3A (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[8]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Surf3A__SWIG_9(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Surf3A__SWIG_8(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Surf3A__SWIG_3(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Surf3A__SWIG_7(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Surf3A__SWIG_2(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Surf3A__SWIG_6(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_Surf3A__SWIG_5(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_Surf3A__SWIG_1(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_int(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Surf3A__SWIG_4(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Surf3A__SWIG_0(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3C__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3C",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3C" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3C" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Surf3C" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Surf3C" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Surf3C" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  (arg1)->Surf3C(arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3C__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3C",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3C" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3C" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Surf3C" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Surf3C" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  (arg1)->Surf3C(arg2,*arg3,*arg4,*arg5,*arg6,*arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3C__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3C",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3C" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3C" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Surf3C(arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3C__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3C",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3C" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Surf3C(arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3C__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  int arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3C",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3C" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3C" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Surf3C" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Surf3C" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  ecode8 = SWIG_AsVal_int(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Surf3C" "', argument " "8"" of type '" "int""'");
+  } 
+  arg8 = (int)(val8);
+  (arg1)->Surf3C(*arg2,*arg3,*arg4,*arg5,*arg6,(char const *)arg7,arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3C__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3C",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3C" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3C" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Surf3C" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Surf3C" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  (arg1)->Surf3C(*arg2,*arg3,*arg4,*arg5,*arg6,(char const *)arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3C__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3C",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3C" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3C" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Surf3C" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  (arg1)->Surf3C(*arg2,*arg3,*arg4,*arg5,*arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3C__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3C",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3C" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Surf3C" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  (arg1)->Surf3C(*arg2,*arg3,(char const *)arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3C__SWIG_8 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3C",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3C" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Surf3C(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3C__SWIG_9 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3C",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3C" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->Surf3C(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3C (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[8]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Surf3C__SWIG_9(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Surf3C__SWIG_8(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Surf3C__SWIG_3(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Surf3C__SWIG_7(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Surf3C__SWIG_2(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Surf3C__SWIG_6(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_Surf3C__SWIG_5(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_Surf3C__SWIG_1(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_int(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Surf3C__SWIG_4(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Surf3C__SWIG_0(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Flow__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  int arg7 ;
+  bool arg8 ;
+  float arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  bool val8 ;
+  int ecode8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Flow",args.length(),9,9,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_int(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Flow" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = (int)(val7);
+  ecode8 = SWIG_AsVal_bool(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Flow" "', argument " "8"" of type '" "bool""'");
+  } 
+  arg8 = (bool)(val8);
+  ecode9 = SWIG_AsVal_float(args(8), &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Flow" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = (float)(val9);
+  (arg1)->Flow(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7,arg8,arg9);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Flow__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  int arg7 ;
+  bool arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  bool val8 ;
+  int ecode8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Flow",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_int(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Flow" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = (int)(val7);
+  ecode8 = SWIG_AsVal_bool(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Flow" "', argument " "8"" of type '" "bool""'");
+  } 
+  arg8 = (bool)(val8);
+  (arg1)->Flow(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7,arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Flow__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  int arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Flow",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_int(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Flow" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = (int)(val7);
+  (arg1)->Flow(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Flow__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Flow",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->Flow(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Flow__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Flow",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->Flow(*arg2,*arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Flow__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  int arg5 ;
+  bool arg6 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  bool val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Flow",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  ecode6 = SWIG_AsVal_bool(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "bool""'");
+  } 
+  arg6 = (bool)(val6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Flow" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  (arg1)->Flow(*arg2,*arg3,(char const *)arg4,arg5,arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Flow__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  int arg5 ;
+  bool arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  bool val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Flow",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  ecode6 = SWIG_AsVal_bool(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "bool""'");
+  } 
+  arg6 = (bool)(val6);
+  (arg1)->Flow(*arg2,*arg3,(char const *)arg4,arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Flow__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Flow",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  (arg1)->Flow(*arg2,*arg3,(char const *)arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Flow__SWIG_8 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Flow",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Flow(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Flow__SWIG_9 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Flow",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->Flow(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Flow__SWIG_10 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  int arg9 ;
+  bool arg10 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  int val9 ;
+  int ecode9 = 0 ;
+  bool val10 ;
+  int ecode10 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Flow",args.length(),10,10,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Flow" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Flow" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  ecode9 = SWIG_AsVal_int(args(8), &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Flow" "', argument " "9"" of type '" "int""'");
+  } 
+  arg9 = (int)(val9);
+  ecode10 = SWIG_AsVal_bool(args(9), &val10);
+  if (!SWIG_IsOK(ecode10)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode10), "in method '" "mglGraph_Flow" "', argument " "10"" of type '" "bool""'");
+  } 
+  arg10 = (bool)(val10);
+  (arg1)->Flow(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8,arg9,arg10);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Flow__SWIG_11 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  int arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  int val9 ;
+  int ecode9 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Flow",args.length(),9,9,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Flow" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Flow" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  ecode9 = SWIG_AsVal_int(args(8), &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Flow" "', argument " "9"" of type '" "int""'");
+  } 
+  arg9 = (int)(val9);
+  (arg1)->Flow(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8,arg9);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Flow__SWIG_12 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Flow",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Flow" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Flow" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  (arg1)->Flow(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Flow__SWIG_13 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Flow",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Flow" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  (arg1)->Flow(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Flow__SWIG_14 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  bool arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  bool val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Flow",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_int(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = (int)(val6);
+  ecode7 = SWIG_AsVal_bool(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Flow" "', argument " "7"" of type '" "bool""'");
+  } 
+  arg7 = (bool)(val7);
+  (arg1)->Flow(*arg2,*arg3,*arg4,(char const *)arg5,arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Flow__SWIG_15 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Flow",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_int(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = (int)(val6);
+  (arg1)->Flow(*arg2,*arg3,*arg4,(char const *)arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Flow__SWIG_16 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Flow",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Flow(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Flow__SWIG_17 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Flow",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Flow(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Flow (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[10]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7),octave_value_ref(args,8),octave_value_ref(args,9)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Flow__SWIG_9(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Flow__SWIG_17(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Flow__SWIG_8(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Flow__SWIG_4(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Flow__SWIG_16(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Flow__SWIG_7(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Flow__SWIG_3(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Flow__SWIG_15(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_bool(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Flow__SWIG_6(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_Flow__SWIG_13(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Flow__SWIG_2(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_bool(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Flow__SWIG_14(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_bool(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Flow__SWIG_5(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Flow__SWIG_12(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_bool(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Flow__SWIG_1(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_int(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_Flow__SWIG_11(args, nargout);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_bool(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_Flow__SWIG_0(args, nargout);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 10) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_int(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      {
+                        int res = SWIG_AsVal_bool(argv[9], NULL);
+                        _v = SWIG_CheckState(res);
+                      }
+                      if (_v) {
+                        return _wrap_mglGraph_Flow__SWIG_10(args, nargout);
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_FlowP__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  mglData *arg8 = 0 ;
+  char *arg9 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  void *argp8 = 0 ;
+  int res8 = 0 ;
+  int res9 ;
+  char *buf9 = 0 ;
+  int alloc9 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_FlowP",args.length(),9,9,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FlowP" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FlowP" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FlowP" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FlowP" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FlowP" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  res8 = SWIG_ConvertPtr(args(7), &argp8, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_FlowP" "', argument " "8"" of type '" "mglData &""'"); 
+  }
+  if (!argp8) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "8"" of type '" "mglData &""'"); 
+  }
+  arg8 = (mglData *)(argp8);
+  res9 = SWIG_AsCharPtrAndSize(args(8), &buf9, NULL, &alloc9);
+  if (!SWIG_IsOK(res9)) {
+    SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "mglGraph_FlowP" "', argument " "9"" of type '" "char const *""'");
+  }
+  arg9 = (char *)(buf9);
+  (arg1)->FlowP(arg2,arg3,arg4,*arg5,*arg6,*arg7,*arg8,(char const *)arg9);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc9 == SWIG_NEWOBJ) delete[] buf9;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_FlowP__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  mglData *arg8 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  void *argp8 = 0 ;
+  int res8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_FlowP",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FlowP" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FlowP" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FlowP" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FlowP" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FlowP" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  res8 = SWIG_ConvertPtr(args(7), &argp8, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_FlowP" "', argument " "8"" of type '" "mglData &""'"); 
+  }
+  if (!argp8) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "8"" of type '" "mglData &""'"); 
+  }
+  arg8 = (mglData *)(argp8);
+  (arg1)->FlowP(arg2,arg3,arg4,*arg5,*arg6,*arg7,*arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_FlowP__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_FlowP",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FlowP" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FlowP" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FlowP" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FlowP" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FlowP" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  (arg1)->FlowP(arg2,arg3,arg4,*arg5,*arg6,(char const *)arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_FlowP__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_FlowP",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FlowP" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FlowP" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FlowP" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FlowP" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  (arg1)->FlowP(arg2,arg3,arg4,*arg5,*arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_FlowP__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  mglData *arg8 = 0 ;
+  mglData *arg9 = 0 ;
+  mglData *arg10 = 0 ;
+  char *arg11 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  void *argp8 = 0 ;
+  int res8 = 0 ;
+  void *argp9 = 0 ;
+  int res9 = 0 ;
+  void *argp10 = 0 ;
+  int res10 = 0 ;
+  int res11 ;
+  char *buf11 = 0 ;
+  int alloc11 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_FlowP",args.length(),11,11,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FlowP" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FlowP" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FlowP" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FlowP" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FlowP" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  res8 = SWIG_ConvertPtr(args(7), &argp8, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_FlowP" "', argument " "8"" of type '" "mglData &""'"); 
+  }
+  if (!argp8) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "8"" of type '" "mglData &""'"); 
+  }
+  arg8 = (mglData *)(argp8);
+  res9 = SWIG_ConvertPtr(args(8), &argp9, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res9)) {
+    SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "mglGraph_FlowP" "', argument " "9"" of type '" "mglData &""'"); 
+  }
+  if (!argp9) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "9"" of type '" "mglData &""'"); 
+  }
+  arg9 = (mglData *)(argp9);
+  res10 = SWIG_ConvertPtr(args(9), &argp10, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res10)) {
+    SWIG_exception_fail(SWIG_ArgError(res10), "in method '" "mglGraph_FlowP" "', argument " "10"" of type '" "mglData &""'"); 
+  }
+  if (!argp10) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "10"" of type '" "mglData &""'"); 
+  }
+  arg10 = (mglData *)(argp10);
+  res11 = SWIG_AsCharPtrAndSize(args(10), &buf11, NULL, &alloc11);
+  if (!SWIG_IsOK(res11)) {
+    SWIG_exception_fail(SWIG_ArgError(res11), "in method '" "mglGraph_FlowP" "', argument " "11"" of type '" "char const *""'");
+  }
+  arg11 = (char *)(buf11);
+  (arg1)->FlowP(arg2,arg3,arg4,*arg5,*arg6,*arg7,*arg8,*arg9,*arg10,(char const *)arg11);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc11 == SWIG_NEWOBJ) delete[] buf11;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_FlowP__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  mglData *arg8 = 0 ;
+  mglData *arg9 = 0 ;
+  mglData *arg10 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  void *argp8 = 0 ;
+  int res8 = 0 ;
+  void *argp9 = 0 ;
+  int res9 = 0 ;
+  void *argp10 = 0 ;
+  int res10 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_FlowP",args.length(),10,10,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FlowP" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FlowP" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FlowP" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FlowP" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FlowP" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  res8 = SWIG_ConvertPtr(args(7), &argp8, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_FlowP" "', argument " "8"" of type '" "mglData &""'"); 
+  }
+  if (!argp8) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "8"" of type '" "mglData &""'"); 
+  }
+  arg8 = (mglData *)(argp8);
+  res9 = SWIG_ConvertPtr(args(8), &argp9, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res9)) {
+    SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "mglGraph_FlowP" "', argument " "9"" of type '" "mglData &""'"); 
+  }
+  if (!argp9) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "9"" of type '" "mglData &""'"); 
+  }
+  arg9 = (mglData *)(argp9);
+  res10 = SWIG_ConvertPtr(args(9), &argp10, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res10)) {
+    SWIG_exception_fail(SWIG_ArgError(res10), "in method '" "mglGraph_FlowP" "', argument " "10"" of type '" "mglData &""'"); 
+  }
+  if (!argp10) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "10"" of type '" "mglData &""'"); 
+  }
+  arg10 = (mglData *)(argp10);
+  (arg1)->FlowP(arg2,arg3,arg4,*arg5,*arg6,*arg7,*arg8,*arg9,*arg10);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_FlowP__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_FlowP",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FlowP" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FlowP" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FlowP" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FlowP" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FlowP" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_FlowP" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  (arg1)->FlowP(arg2,arg3,arg4,*arg5,*arg6,*arg7,(char const *)arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_FlowP__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_FlowP",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FlowP" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FlowP" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FlowP" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FlowP" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FlowP" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  (arg1)->FlowP(arg2,arg3,arg4,*arg5,*arg6,*arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_FlowP (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[11]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7),octave_value_ref(args,8),octave_value_ref(args,9),octave_value_ref(args,10)
+  };
+  
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_FlowP__SWIG_3(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_FlowP__SWIG_7(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_FlowP__SWIG_2(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  void *vptr = 0;
+                  int res = SWIG_ConvertPtr(argv[7], &vptr, SWIGTYPE_p_mglData, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_FlowP__SWIG_1(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_FlowP__SWIG_6(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  void *vptr = 0;
+                  int res = SWIG_ConvertPtr(argv[7], &vptr, SWIGTYPE_p_mglData, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    int res = SWIG_AsCharPtrAndSize(argv[8], 0, NULL, 0);
+                    _v = SWIG_CheckState(res);
+                    if (_v) {
+                      return _wrap_mglGraph_FlowP__SWIG_0(args, nargout);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 10) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  void *vptr = 0;
+                  int res = SWIG_ConvertPtr(argv[7], &vptr, SWIGTYPE_p_mglData, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    void *vptr = 0;
+                    int res = SWIG_ConvertPtr(argv[8], &vptr, SWIGTYPE_p_mglData, 0);
+                    _v = SWIG_CheckState(res);
+                    if (_v) {
+                      void *vptr = 0;
+                      int res = SWIG_ConvertPtr(argv[9], &vptr, SWIGTYPE_p_mglData, 0);
+                      _v = SWIG_CheckState(res);
+                      if (_v) {
+                        return _wrap_mglGraph_FlowP__SWIG_5(args, nargout);
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 11) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  void *vptr = 0;
+                  int res = SWIG_ConvertPtr(argv[7], &vptr, SWIGTYPE_p_mglData, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    void *vptr = 0;
+                    int res = SWIG_ConvertPtr(argv[8], &vptr, SWIGTYPE_p_mglData, 0);
+                    _v = SWIG_CheckState(res);
+                    if (_v) {
+                      void *vptr = 0;
+                      int res = SWIG_ConvertPtr(argv[9], &vptr, SWIGTYPE_p_mglData, 0);
+                      _v = SWIG_CheckState(res);
+                      if (_v) {
+                        int res = SWIG_AsCharPtrAndSize(argv[10], 0, NULL, 0);
+                        _v = SWIG_CheckState(res);
+                        if (_v) {
+                          return _wrap_mglGraph_FlowP__SWIG_4(args, nargout);
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Grad__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  int arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  void *argp4 ;
+  int res4 = 0 ;
+  void *argp5 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Grad",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grad" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Grad" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Grad" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_int(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Grad" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = (int)(val7);
+  (arg1)->Grad((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(char const *)arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Grad__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  void *argp4 ;
+  int res4 = 0 ;
+  void *argp5 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Grad",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grad" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Grad" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Grad" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->Grad((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Grad__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  void *argp4 ;
+  int res4 = 0 ;
+  void *argp5 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Grad",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grad" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Grad" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->Grad((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Grad__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  mreal arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  void *argp4 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  void *argp7 ;
+  int res7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Grad",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grad" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Grad" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_int(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Grad" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = (int)(val6);
+  {
+    res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mreal,  0 );
+    if (!SWIG_IsOK(res7)) {
+      SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Grad" "', argument " "7"" of type '" "mreal""'"); 
+    }  
+    if (!argp7) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "7"" of type '" "mreal""'");
+    } else {
+      arg7 = *((mreal *)(argp7));
+    }
+  }
+  (arg1)->Grad((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(char const *)arg5,arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Grad__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  void *argp4 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Grad",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grad" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Grad" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_int(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Grad" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = (int)(val6);
+  (arg1)->Grad((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(char const *)arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Grad__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  void *argp4 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Grad",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grad" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Grad" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Grad((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Grad__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  void *argp4 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Grad",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grad" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Grad((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Grad__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  mreal arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  void *argp5 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Grad",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grad" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  {
+    res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mreal,  0 );
+    if (!SWIG_IsOK(res5)) {
+      SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Grad" "', argument " "5"" of type '" "mreal""'"); 
+    }  
+    if (!argp5) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "5"" of type '" "mreal""'");
+    } else {
+      arg5 = *((mreal *)(argp5));
+    }
+  }
+  (arg1)->Grad((mglData const &)*arg2,(char const *)arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Grad__SWIG_8 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Grad",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grad" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->Grad((mglData const &)*arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Grad__SWIG_9 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Grad",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grad" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Grad((mglData const &)*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Grad__SWIG_10 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Grad",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grad" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->Grad((mglData const &)*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Grad (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[7]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Grad__SWIG_10(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Grad__SWIG_9(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Grad__SWIG_6(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Grad__SWIG_8(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Grad__SWIG_2(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Grad__SWIG_5(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mreal, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Grad__SWIG_7(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Grad__SWIG_1(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Grad__SWIG_4(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Grad__SWIG_0(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mreal, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_Grad__SWIG_3(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Pipe__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  int arg8 ;
+  bool arg9 ;
+  float arg10 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
+  bool val9 ;
+  int ecode9 = 0 ;
+  float val10 ;
+  int ecode10 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Pipe",args.length(),10,10,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  ecode8 = SWIG_AsVal_int(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Pipe" "', argument " "8"" of type '" "int""'");
+  } 
+  arg8 = (int)(val8);
+  ecode9 = SWIG_AsVal_bool(args(8), &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Pipe" "', argument " "9"" of type '" "bool""'");
+  } 
+  arg9 = (bool)(val9);
+  ecode10 = SWIG_AsVal_float(args(9), &val10);
+  if (!SWIG_IsOK(ecode10)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode10), "in method '" "mglGraph_Pipe" "', argument " "10"" of type '" "float""'");
+  } 
+  arg10 = (float)(val10);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7,arg8,arg9,arg10);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Pipe__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  int arg8 ;
+  bool arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
+  bool val9 ;
+  int ecode9 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Pipe",args.length(),9,9,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  ecode8 = SWIG_AsVal_int(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Pipe" "', argument " "8"" of type '" "int""'");
+  } 
+  arg8 = (int)(val8);
+  ecode9 = SWIG_AsVal_bool(args(8), &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Pipe" "', argument " "9"" of type '" "bool""'");
+  } 
+  arg9 = (bool)(val9);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7,arg8,arg9);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Pipe__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  int arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Pipe",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  ecode8 = SWIG_AsVal_int(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Pipe" "', argument " "8"" of type '" "int""'");
+  } 
+  arg8 = (int)(val8);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7,arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Pipe__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Pipe",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Pipe__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Pipe",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Pipe__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Pipe",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Pipe__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  int arg6 ;
+  bool arg7 ;
+  float arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  bool val7 ;
+  int ecode7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Pipe",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_int(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = (int)(val6);
+  ecode7 = SWIG_AsVal_bool(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "bool""'");
+  } 
+  arg7 = (bool)(val7);
+  ecode8 = SWIG_AsVal_float(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Pipe" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = (float)(val8);
+  (arg1)->Pipe(*arg2,*arg3,(char const *)arg4,arg5,arg6,arg7,arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Pipe__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  int arg6 ;
+  bool arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  bool val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Pipe",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_int(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = (int)(val6);
+  ecode7 = SWIG_AsVal_bool(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "bool""'");
+  } 
+  arg7 = (bool)(val7);
+  (arg1)->Pipe(*arg2,*arg3,(char const *)arg4,arg5,arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Pipe__SWIG_8 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Pipe",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_int(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = (int)(val6);
+  (arg1)->Pipe(*arg2,*arg3,(char const *)arg4,arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Pipe__SWIG_9 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Pipe",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->Pipe(*arg2,*arg3,(char const *)arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Pipe__SWIG_10 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Pipe",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Pipe(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Pipe__SWIG_11 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Pipe",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->Pipe(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Pipe__SWIG_12 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  float arg9 ;
+  int arg10 ;
+  bool arg11 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  int val10 ;
+  int ecode10 = 0 ;
+  bool val11 ;
+  int ecode11 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Pipe",args.length(),11,11,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Pipe" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  ecode9 = SWIG_AsVal_float(args(8), &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Pipe" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = (float)(val9);
+  ecode10 = SWIG_AsVal_int(args(9), &val10);
+  if (!SWIG_IsOK(ecode10)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode10), "in method '" "mglGraph_Pipe" "', argument " "10"" of type '" "int""'");
+  } 
+  arg10 = (int)(val10);
+  ecode11 = SWIG_AsVal_bool(args(10), &val11);
+  if (!SWIG_IsOK(ecode11)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode11), "in method '" "mglGraph_Pipe" "', argument " "11"" of type '" "bool""'");
+  } 
+  arg11 = (bool)(val11);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8,arg9,arg10,arg11);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Pipe__SWIG_13 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  float arg9 ;
+  int arg10 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  int val10 ;
+  int ecode10 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Pipe",args.length(),10,10,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Pipe" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  ecode9 = SWIG_AsVal_float(args(8), &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Pipe" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = (float)(val9);
+  ecode10 = SWIG_AsVal_int(args(9), &val10);
+  if (!SWIG_IsOK(ecode10)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode10), "in method '" "mglGraph_Pipe" "', argument " "10"" of type '" "int""'");
+  } 
+  arg10 = (int)(val10);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8,arg9,arg10);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Pipe__SWIG_14 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  float arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Pipe",args.length(),9,9,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Pipe" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  ecode9 = SWIG_AsVal_float(args(8), &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Pipe" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = (float)(val9);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8,arg9);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Pipe__SWIG_15 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Pipe",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Pipe" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Pipe__SWIG_16 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Pipe",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Pipe__SWIG_17 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  float arg6 ;
+  int arg7 ;
+  bool arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  bool val8 ;
+  int ecode8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Pipe",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  ecode7 = SWIG_AsVal_int(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = (int)(val7);
+  ecode8 = SWIG_AsVal_bool(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Pipe" "', argument " "8"" of type '" "bool""'");
+  } 
+  arg8 = (bool)(val8);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,(char const *)arg5,arg6,arg7,arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Pipe__SWIG_18 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  float arg6 ;
+  int arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Pipe",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  ecode7 = SWIG_AsVal_int(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = (int)(val7);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,(char const *)arg5,arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Pipe__SWIG_19 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Pipe",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,(char const *)arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Pipe__SWIG_20 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Pipe",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Pipe__SWIG_21 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Pipe",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Pipe(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Pipe (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[11]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7),octave_value_ref(args,8),octave_value_ref(args,9),octave_value_ref(args,10)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Pipe__SWIG_11(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Pipe__SWIG_21(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Pipe__SWIG_10(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Pipe__SWIG_5(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Pipe__SWIG_20(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Pipe__SWIG_9(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Pipe__SWIG_4(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Pipe__SWIG_19(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Pipe__SWIG_8(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_Pipe__SWIG_16(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Pipe__SWIG_3(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Pipe__SWIG_18(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_bool(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Pipe__SWIG_7(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Pipe__SWIG_15(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_int(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Pipe__SWIG_2(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_bool(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Pipe__SWIG_17(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_bool(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Pipe__SWIG_6(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_Pipe__SWIG_14(args, nargout);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_int(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_bool(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_Pipe__SWIG_1(args, nargout);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 10) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      {
+                        int res = SWIG_AsVal_int(argv[9], NULL);
+                        _v = SWIG_CheckState(res);
+                      }
+                      if (_v) {
+                        return _wrap_mglGraph_Pipe__SWIG_13(args, nargout);
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 10) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_int(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_bool(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      {
+                        int res = SWIG_AsVal_float(argv[9], NULL);
+                        _v = SWIG_CheckState(res);
+                      }
+                      if (_v) {
+                        return _wrap_mglGraph_Pipe__SWIG_0(args, nargout);
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 11) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      {
+                        int res = SWIG_AsVal_int(argv[9], NULL);
+                        _v = SWIG_CheckState(res);
+                      }
+                      if (_v) {
+                        {
+                          int res = SWIG_AsVal_bool(argv[10], NULL);
+                          _v = SWIG_CheckState(res);
+                        }
+                        if (_v) {
+                          return _wrap_mglGraph_Pipe__SWIG_12(args, nargout);
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Grid3__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char arg6 ;
+  int arg7 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  char val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Grid3",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grid3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grid3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grid3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Grid3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Grid3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  ecode6 = SWIG_AsVal_char(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Grid3" "', argument " "6"" of type '" "char""'");
+  } 
+  arg6 = (char)(val6);
+  ecode7 = SWIG_AsVal_int(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Grid3" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = (int)(val7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Grid3" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  (arg1)->Grid3(*arg2,*arg3,*arg4,*arg5,arg6,arg7,(char const *)arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Grid3__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char arg6 ;
+  int arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  char val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Grid3",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grid3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grid3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grid3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Grid3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Grid3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  ecode6 = SWIG_AsVal_char(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Grid3" "', argument " "6"" of type '" "char""'");
+  } 
+  arg6 = (char)(val6);
+  ecode7 = SWIG_AsVal_int(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Grid3" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = (int)(val7);
+  (arg1)->Grid3(*arg2,*arg3,*arg4,*arg5,arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Grid3__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char arg3 ;
+  int arg4 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  char val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Grid3",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grid3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grid3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  ecode3 = SWIG_AsVal_char(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Grid3" "', argument " "3"" of type '" "char""'");
+  } 
+  arg3 = (char)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Grid3" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Grid3" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Grid3(*arg2,arg3,arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Grid3__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  char val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Grid3",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grid3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grid3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  ecode3 = SWIG_AsVal_char(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Grid3" "', argument " "3"" of type '" "char""'");
+  } 
+  arg3 = (char)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Grid3" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->Grid3(*arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Grid3 (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[8]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7)
+  };
+  
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_char(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Grid3__SWIG_3(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_char(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Grid3__SWIG_2(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_char(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Grid3__SWIG_1(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_char(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Grid3__SWIG_0(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_GridA__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_GridA",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_GridA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_GridA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_GridA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_GridA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_GridA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_GridA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_GridA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_GridA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_GridA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_GridA" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->GridA(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_GridA__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_GridA",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_GridA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_GridA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_GridA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_GridA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_GridA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_GridA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_GridA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_GridA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_GridA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->GridA(*arg2,*arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_GridA__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_GridA",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_GridA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_GridA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_GridA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_GridA" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->GridA(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_GridA__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_GridA",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_GridA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_GridA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_GridA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->GridA(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_GridA (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_GridA__SWIG_3(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_GridA__SWIG_2(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_GridA__SWIG_1(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_GridA__SWIG_0(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Dens3__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char arg6 ;
+  int arg7 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  char val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Dens3",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dens3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dens3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dens3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Dens3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Dens3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  ecode6 = SWIG_AsVal_char(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Dens3" "', argument " "6"" of type '" "char""'");
+  } 
+  arg6 = (char)(val6);
+  ecode7 = SWIG_AsVal_int(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Dens3" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = (int)(val7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Dens3" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  (arg1)->Dens3(*arg2,*arg3,*arg4,*arg5,arg6,arg7,(char const *)arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Dens3__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char arg6 ;
+  int arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  char val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Dens3",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dens3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dens3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dens3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Dens3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Dens3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  ecode6 = SWIG_AsVal_char(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Dens3" "', argument " "6"" of type '" "char""'");
+  } 
+  arg6 = (char)(val6);
+  ecode7 = SWIG_AsVal_int(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Dens3" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = (int)(val7);
+  (arg1)->Dens3(*arg2,*arg3,*arg4,*arg5,arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Dens3__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char arg3 ;
+  int arg4 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  char val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Dens3",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dens3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dens3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  ecode3 = SWIG_AsVal_char(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Dens3" "', argument " "3"" of type '" "char""'");
+  } 
+  arg3 = (char)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Dens3" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Dens3" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Dens3(*arg2,arg3,arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Dens3__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  char val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Dens3",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dens3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dens3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  ecode3 = SWIG_AsVal_char(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Dens3" "', argument " "3"" of type '" "char""'");
+  } 
+  arg3 = (char)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Dens3" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->Dens3(*arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Dens3 (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[8]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7)
+  };
+  
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_char(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Dens3__SWIG_3(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_char(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Dens3__SWIG_2(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_char(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Dens3__SWIG_1(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_char(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Dens3__SWIG_0(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_DensA__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_DensA",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_DensA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_DensA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_DensA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_DensA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_DensA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_DensA" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->DensA(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_DensA__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_DensA",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_DensA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_DensA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_DensA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_DensA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_DensA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->DensA(*arg2,*arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_DensA__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_DensA",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_DensA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_DensA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_DensA" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->DensA(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_DensA__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_DensA",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_DensA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_DensA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->DensA(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_DensA (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_DensA__SWIG_3(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_DensA__SWIG_2(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_DensA__SWIG_1(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_DensA__SWIG_0(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Surf3" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Surf3" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  (arg1)->Surf3(arg2,*arg3,*arg4,*arg5,*arg6,(char const *)arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Surf3" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  (arg1)->Surf3(arg2,*arg3,*arg4,*arg5,*arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->Surf3(arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->Surf3(arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  int arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Surf3" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_int(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Surf3" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = (int)(val7);
+  (arg1)->Surf3(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Surf3" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->Surf3(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->Surf3(*arg2,*arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Surf3" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->Surf3(*arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3__SWIG_8 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Surf3(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3__SWIG_9 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Surf3",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->Surf3(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Surf3 (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[7]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Surf3__SWIG_9(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Surf3__SWIG_8(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Surf3__SWIG_3(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Surf3__SWIG_7(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Surf3__SWIG_2(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Surf3__SWIG_6(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Surf3__SWIG_5(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Surf3__SWIG_1(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Surf3__SWIG_4(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_Surf3__SWIG_0(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Cloud__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cloud",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cloud" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cloud" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cloud" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cloud" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cloud" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Cloud" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Cloud" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  (arg1)->Cloud(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cloud__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cloud",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cloud" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cloud" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cloud" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cloud" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cloud" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Cloud" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->Cloud(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cloud__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cloud",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cloud" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cloud" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cloud" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cloud" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cloud" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->Cloud(*arg2,*arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cloud__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cloud",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cloud" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cloud" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cloud" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Cloud" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  (arg1)->Cloud(*arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cloud__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cloud",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cloud" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cloud" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cloud" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Cloud(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cloud__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cloud",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cloud" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cloud" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->Cloud(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cloud (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[7]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Cloud__SWIG_5(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Cloud__SWIG_4(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Cloud__SWIG_3(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Cloud__SWIG_2(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Cloud__SWIG_1(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Cloud__SWIG_0(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Cont3__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char arg7 ;
+  int arg8 ;
+  char *arg9 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  char val7 ;
+  int ecode7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
+  int res9 ;
+  char *buf9 = 0 ;
+  int alloc9 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cont3",args.length(),9,9,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cont3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Cont3" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  ecode7 = SWIG_AsVal_char(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Cont3" "', argument " "7"" of type '" "char""'");
+  } 
+  arg7 = (char)(val7);
+  ecode8 = SWIG_AsVal_int(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Cont3" "', argument " "8"" of type '" "int""'");
+  } 
+  arg8 = (int)(val8);
+  res9 = SWIG_AsCharPtrAndSize(args(8), &buf9, NULL, &alloc9);
+  if (!SWIG_IsOK(res9)) {
+    SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "mglGraph_Cont3" "', argument " "9"" of type '" "char const *""'");
+  }
+  arg9 = (char *)(buf9);
+  (arg1)->Cont3(*arg2,*arg3,*arg4,*arg5,*arg6,arg7,arg8,(char const *)arg9);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc9 == SWIG_NEWOBJ) delete[] buf9;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cont3__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char arg7 ;
+  int arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  char val7 ;
+  int ecode7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cont3",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cont3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Cont3" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  ecode7 = SWIG_AsVal_char(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Cont3" "', argument " "7"" of type '" "char""'");
+  } 
+  arg7 = (char)(val7);
+  ecode8 = SWIG_AsVal_int(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Cont3" "', argument " "8"" of type '" "int""'");
+  } 
+  arg8 = (int)(val8);
+  (arg1)->Cont3(*arg2,*arg3,*arg4,*arg5,*arg6,arg7,arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cont3__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char arg4 ;
+  int arg5 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  char val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cont3",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  ecode4 = SWIG_AsVal_char(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "char""'");
+  } 
+  arg4 = (char)(val4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Cont3" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Cont3" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->Cont3(*arg2,*arg3,arg4,arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cont3__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  char val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cont3",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  ecode4 = SWIG_AsVal_char(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "char""'");
+  } 
+  arg4 = (char)(val4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Cont3" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  (arg1)->Cont3(*arg2,*arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cont3__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char arg6 ;
+  int arg7 ;
+  char *arg8 = (char *) 0 ;
+  int arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  char val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  int val9 ;
+  int ecode9 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cont3",args.length(),9,9,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cont3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  ecode6 = SWIG_AsVal_char(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Cont3" "', argument " "6"" of type '" "char""'");
+  } 
+  arg6 = (char)(val6);
+  ecode7 = SWIG_AsVal_int(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Cont3" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = (int)(val7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Cont3" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  ecode9 = SWIG_AsVal_int(args(8), &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Cont3" "', argument " "9"" of type '" "int""'");
+  } 
+  arg9 = (int)(val9);
+  (arg1)->Cont3(*arg2,*arg3,*arg4,*arg5,arg6,arg7,(char const *)arg8,arg9);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cont3__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char arg6 ;
+  int arg7 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  char val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cont3",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cont3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  ecode6 = SWIG_AsVal_char(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Cont3" "', argument " "6"" of type '" "char""'");
+  } 
+  arg6 = (char)(val6);
+  ecode7 = SWIG_AsVal_int(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Cont3" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = (int)(val7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Cont3" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  (arg1)->Cont3(*arg2,*arg3,*arg4,*arg5,arg6,arg7,(char const *)arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cont3__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char arg6 ;
+  int arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  char val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cont3",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cont3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  ecode6 = SWIG_AsVal_char(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Cont3" "', argument " "6"" of type '" "char""'");
+  } 
+  arg6 = (char)(val6);
+  ecode7 = SWIG_AsVal_int(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Cont3" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = (int)(val7);
+  (arg1)->Cont3(*arg2,*arg3,*arg4,*arg5,arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cont3__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char arg3 ;
+  int arg4 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  char val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cont3",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  ecode3 = SWIG_AsVal_char(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "char""'");
+  } 
+  arg3 = (char)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cont3" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_int(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Cont3" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = (int)(val6);
+  (arg1)->Cont3(*arg2,arg3,arg4,(char const *)arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cont3__SWIG_8 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char arg3 ;
+  int arg4 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  char val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cont3",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  ecode3 = SWIG_AsVal_char(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "char""'");
+  } 
+  arg3 = (char)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cont3" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Cont3(*arg2,arg3,arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cont3__SWIG_9 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  char val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Cont3",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  ecode3 = SWIG_AsVal_char(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "char""'");
+  } 
+  arg3 = (char)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->Cont3(*arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Cont3 (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[9]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7),octave_value_ref(args,8)
+  };
+  
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_char(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Cont3__SWIG_9(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_char(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Cont3__SWIG_3(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_char(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Cont3__SWIG_8(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_char(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Cont3__SWIG_2(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_char(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Cont3__SWIG_7(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_char(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Cont3__SWIG_6(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_char(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_int(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Cont3__SWIG_1(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_char(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Cont3__SWIG_5(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_char(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_int(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    int res = SWIG_AsCharPtrAndSize(argv[8], 0, NULL, 0);
+                    _v = SWIG_CheckState(res);
+                    if (_v) {
+                      return _wrap_mglGraph_Cont3__SWIG_0(args, nargout);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_char(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_int(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_Cont3__SWIG_4(args, nargout);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_ContA__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  int arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContA",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_ContA" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_int(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_ContA" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = (int)(val7);
+  (arg1)->ContA(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContA__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContA",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_ContA" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->ContA(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContA__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContA",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->ContA(*arg2,*arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContA__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContA",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContA" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContA" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->ContA(*arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContA__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContA",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContA" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->ContA(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContA__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContA",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->ContA(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContA (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[7]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_ContA__SWIG_5(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContA__SWIG_4(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_ContA__SWIG_3(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_ContA__SWIG_2(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_ContA__SWIG_1(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_ContA__SWIG_0(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_ContF3__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char arg7 ;
+  int arg8 ;
+  char *arg9 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  char val7 ;
+  int ecode7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
+  int res9 ;
+  char *buf9 = 0 ;
+  int alloc9 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContF3",args.length(),9,9,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContF3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_ContF3" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  ecode7 = SWIG_AsVal_char(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_ContF3" "', argument " "7"" of type '" "char""'");
+  } 
+  arg7 = (char)(val7);
+  ecode8 = SWIG_AsVal_int(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_ContF3" "', argument " "8"" of type '" "int""'");
+  } 
+  arg8 = (int)(val8);
+  res9 = SWIG_AsCharPtrAndSize(args(8), &buf9, NULL, &alloc9);
+  if (!SWIG_IsOK(res9)) {
+    SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "mglGraph_ContF3" "', argument " "9"" of type '" "char const *""'");
+  }
+  arg9 = (char *)(buf9);
+  (arg1)->ContF3(*arg2,*arg3,*arg4,*arg5,*arg6,arg7,arg8,(char const *)arg9);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc9 == SWIG_NEWOBJ) delete[] buf9;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContF3__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char arg7 ;
+  int arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  char val7 ;
+  int ecode7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContF3",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContF3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_ContF3" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  ecode7 = SWIG_AsVal_char(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_ContF3" "', argument " "7"" of type '" "char""'");
+  } 
+  arg7 = (char)(val7);
+  ecode8 = SWIG_AsVal_int(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_ContF3" "', argument " "8"" of type '" "int""'");
+  } 
+  arg8 = (int)(val8);
+  (arg1)->ContF3(*arg2,*arg3,*arg4,*arg5,*arg6,arg7,arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContF3__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char arg4 ;
+  int arg5 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  char val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContF3",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  ecode4 = SWIG_AsVal_char(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "char""'");
+  } 
+  arg4 = (char)(val4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContF3" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_ContF3" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->ContF3(*arg2,*arg3,arg4,arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContF3__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  char val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContF3",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  ecode4 = SWIG_AsVal_char(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "char""'");
+  } 
+  arg4 = (char)(val4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContF3" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  (arg1)->ContF3(*arg2,*arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContF3__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char arg6 ;
+  int arg7 ;
+  char *arg8 = (char *) 0 ;
+  int arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  char val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  int val9 ;
+  int ecode9 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContF3",args.length(),9,9,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContF3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  ecode6 = SWIG_AsVal_char(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_ContF3" "', argument " "6"" of type '" "char""'");
+  } 
+  arg6 = (char)(val6);
+  ecode7 = SWIG_AsVal_int(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_ContF3" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = (int)(val7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_ContF3" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  ecode9 = SWIG_AsVal_int(args(8), &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_ContF3" "', argument " "9"" of type '" "int""'");
+  } 
+  arg9 = (int)(val9);
+  (arg1)->ContF3(*arg2,*arg3,*arg4,*arg5,arg6,arg7,(char const *)arg8,arg9);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContF3__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char arg6 ;
+  int arg7 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  char val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContF3",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContF3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  ecode6 = SWIG_AsVal_char(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_ContF3" "', argument " "6"" of type '" "char""'");
+  } 
+  arg6 = (char)(val6);
+  ecode7 = SWIG_AsVal_int(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_ContF3" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = (int)(val7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_ContF3" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  (arg1)->ContF3(*arg2,*arg3,*arg4,*arg5,arg6,arg7,(char const *)arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContF3__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char arg6 ;
+  int arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  char val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContF3",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContF3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  ecode6 = SWIG_AsVal_char(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_ContF3" "', argument " "6"" of type '" "char""'");
+  } 
+  arg6 = (char)(val6);
+  ecode7 = SWIG_AsVal_int(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_ContF3" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = (int)(val7);
+  (arg1)->ContF3(*arg2,*arg3,*arg4,*arg5,arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContF3__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char arg3 ;
+  int arg4 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  char val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContF3",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  ecode3 = SWIG_AsVal_char(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "char""'");
+  } 
+  arg3 = (char)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContF3" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_int(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_ContF3" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = (int)(val6);
+  (arg1)->ContF3(*arg2,arg3,arg4,(char const *)arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContF3__SWIG_8 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char arg3 ;
+  int arg4 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  char val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContF3",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  ecode3 = SWIG_AsVal_char(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "char""'");
+  } 
+  arg3 = (char)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContF3" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->ContF3(*arg2,arg3,arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContF3__SWIG_9 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  char val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContF3",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  ecode3 = SWIG_AsVal_char(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "char""'");
+  } 
+  arg3 = (char)(val3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->ContF3(*arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContF3 (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[9]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7),octave_value_ref(args,8)
+  };
+  
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_char(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_ContF3__SWIG_9(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_char(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContF3__SWIG_3(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_char(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_ContF3__SWIG_8(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_char(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_ContF3__SWIG_2(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_char(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_ContF3__SWIG_7(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_char(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_ContF3__SWIG_6(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_char(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_int(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_ContF3__SWIG_1(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_char(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_ContF3__SWIG_5(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_char(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_int(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    int res = SWIG_AsCharPtrAndSize(argv[8], 0, NULL, 0);
+                    _v = SWIG_CheckState(res);
+                    if (_v) {
+                      return _wrap_mglGraph_ContF3__SWIG_0(args, nargout);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_char(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_int(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_ContF3__SWIG_4(args, nargout);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFA__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  int arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContFA",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContFA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContFA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_ContFA" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_int(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_ContFA" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = (int)(val7);
+  (arg1)->ContFA(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFA__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContFA",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContFA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContFA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_ContFA" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->ContFA(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFA__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContFA",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContFA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContFA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->ContFA(*arg2,*arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFA__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContFA",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFA" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContFA" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  (arg1)->ContFA(*arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFA__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContFA",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFA" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->ContFA(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFA__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContFA",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->ContFA(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFA (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[7]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_ContFA__SWIG_5(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContFA__SWIG_4(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_ContFA__SWIG_3(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_ContFA__SWIG_2(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_ContFA__SWIG_1(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_ContFA__SWIG_0(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Beam__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  float arg6 ;
+  char *arg7 = (char *) 0 ;
+  int arg8 ;
+  int arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
+  int val9 ;
+  int ecode9 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Beam",args.length(),9,9,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Beam" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Beam" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Beam" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Beam" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Beam" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Beam" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Beam" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  ecode8 = SWIG_AsVal_int(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Beam" "', argument " "8"" of type '" "int""'");
+  } 
+  arg8 = (int)(val8);
+  ecode9 = SWIG_AsVal_int(args(8), &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Beam" "', argument " "9"" of type '" "int""'");
+  } 
+  arg9 = (int)(val9);
+  (arg1)->Beam(*arg2,*arg3,*arg4,*arg5,arg6,(char const *)arg7,arg8,arg9);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Beam__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  float arg6 ;
+  char *arg7 = (char *) 0 ;
+  int arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Beam",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Beam" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Beam" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Beam" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Beam" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Beam" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Beam" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Beam" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  ecode8 = SWIG_AsVal_int(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Beam" "', argument " "8"" of type '" "int""'");
+  } 
+  arg8 = (int)(val8);
+  (arg1)->Beam(*arg2,*arg3,*arg4,*arg5,arg6,(char const *)arg7,arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Beam__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  float arg6 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Beam",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Beam" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Beam" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Beam" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Beam" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Beam" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Beam" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Beam" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  (arg1)->Beam(*arg2,*arg3,*arg4,*arg5,arg6,(char const *)arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Beam__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Beam",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Beam" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Beam" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Beam" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Beam" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Beam" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Beam" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  (arg1)->Beam(*arg2,*arg3,*arg4,*arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Beam__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  float arg7 ;
+  char *arg8 = (char *) 0 ;
+  int arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  int val9 ;
+  int ecode9 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Beam",args.length(),9,9,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Beam" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Beam" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Beam" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Beam" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Beam" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Beam" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Beam" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Beam" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  ecode9 = SWIG_AsVal_int(args(8), &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Beam" "', argument " "9"" of type '" "int""'");
+  } 
+  arg9 = (int)(val9);
+  (arg1)->Beam(arg2,*arg3,*arg4,*arg5,*arg6,arg7,(char const *)arg8,arg9);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Beam__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  float arg7 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Beam",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Beam" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Beam" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Beam" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Beam" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Beam" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Beam" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Beam" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Beam" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  (arg1)->Beam(arg2,*arg3,*arg4,*arg5,*arg6,arg7,(char const *)arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Beam__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Beam",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Beam" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Beam" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Beam" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Beam" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Beam" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Beam" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Beam" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  (arg1)->Beam(arg2,*arg3,*arg4,*arg5,*arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Beam (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[9]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7),octave_value_ref(args,8)
+  };
+  
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Beam__SWIG_3(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_Beam__SWIG_2(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Beam__SWIG_6(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_int(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Beam__SWIG_1(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Beam__SWIG_5(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_int(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_int(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_Beam__SWIG_0(args, nargout);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_int(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_Beam__SWIG_4(args, nargout);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_TriPlot__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TriPlot",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriPlot" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_TriPlot" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  (arg1)->TriPlot(*arg2,*arg3,*arg4,*arg5,*arg6,(char const *)arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TriPlot__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TriPlot",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriPlot" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  (arg1)->TriPlot(*arg2,*arg3,*arg4,*arg5,*arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TriPlot__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TriPlot",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriPlot" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->TriPlot(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TriPlot__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TriPlot",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->TriPlot(*arg2,*arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TriPlot__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TriPlot",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriPlot" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_TriPlot" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  (arg1)->TriPlot(*arg2,*arg3,*arg4,(char const *)arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TriPlot__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TriPlot",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriPlot" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->TriPlot(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TriPlot__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TriPlot",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->TriPlot(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TriPlot (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[7]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6)
+  };
+  
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_TriPlot__SWIG_6(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_TriPlot__SWIG_3(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_TriPlot__SWIG_5(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_TriPlot__SWIG_1(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_TriPlot__SWIG_2(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_TriPlot__SWIG_4(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_TriPlot__SWIG_0(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_QuadPlot__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_QuadPlot",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_QuadPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_QuadPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_QuadPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_QuadPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_QuadPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_QuadPlot" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_QuadPlot" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  (arg1)->QuadPlot(*arg2,*arg3,*arg4,*arg5,*arg6,(char const *)arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_QuadPlot__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_QuadPlot",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_QuadPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_QuadPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_QuadPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_QuadPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_QuadPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_QuadPlot" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  (arg1)->QuadPlot(*arg2,*arg3,*arg4,*arg5,*arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_QuadPlot__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_QuadPlot",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_QuadPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_QuadPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_QuadPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_QuadPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_QuadPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_QuadPlot" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->QuadPlot(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_QuadPlot__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_QuadPlot",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_QuadPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_QuadPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_QuadPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_QuadPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_QuadPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->QuadPlot(*arg2,*arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_QuadPlot__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_QuadPlot",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_QuadPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_QuadPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_QuadPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_QuadPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_QuadPlot" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_QuadPlot" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  (arg1)->QuadPlot(*arg2,*arg3,*arg4,(char const *)arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_QuadPlot__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_QuadPlot",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_QuadPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_QuadPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_QuadPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_QuadPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_QuadPlot" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->QuadPlot(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_QuadPlot__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_QuadPlot",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_QuadPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_QuadPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_QuadPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_QuadPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->QuadPlot(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_QuadPlot (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[7]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6)
+  };
+  
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_QuadPlot__SWIG_6(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_QuadPlot__SWIG_3(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_QuadPlot__SWIG_5(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_QuadPlot__SWIG_1(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_QuadPlot__SWIG_2(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_QuadPlot__SWIG_4(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_QuadPlot__SWIG_0(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_TriCont__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  int arg7 ;
+  mreal arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  void *argp4 ;
+  int res4 = 0 ;
+  void *argp5 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  void *argp8 ;
+  int res8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TriCont",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriCont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriCont" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_int(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_TriCont" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = (int)(val7);
+  {
+    res8 = SWIG_ConvertPtr(args(7), &argp8, SWIGTYPE_p_mreal,  0 );
+    if (!SWIG_IsOK(res8)) {
+      SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_TriCont" "', argument " "8"" of type '" "mreal""'"); 
+    }  
+    if (!argp8) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "8"" of type '" "mreal""'");
+    } else {
+      arg8 = *((mreal *)(argp8));
+    }
+  }
+  (arg1)->TriCont((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(char const *)arg6,arg7,arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TriCont__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  int arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  void *argp4 ;
+  int res4 = 0 ;
+  void *argp5 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TriCont",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriCont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriCont" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_int(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_TriCont" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = (int)(val7);
+  (arg1)->TriCont((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(char const *)arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TriCont__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  void *argp4 ;
+  int res4 = 0 ;
+  void *argp5 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TriCont",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriCont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriCont" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->TriCont((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TriCont__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  void *argp4 ;
+  int res4 = 0 ;
+  void *argp5 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TriCont",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriCont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->TriCont((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TriContV__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  mreal arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  void *argp4 ;
+  int res4 = 0 ;
+  void *argp5 ;
+  int res5 = 0 ;
+  void *argp6 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  void *argp8 ;
+  int res8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TriContV",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriContV" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriContV" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriContV" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriContV" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriContV" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriContV" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_TriContV" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  {
+    res8 = SWIG_ConvertPtr(args(7), &argp8, SWIGTYPE_p_mreal,  0 );
+    if (!SWIG_IsOK(res8)) {
+      SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_TriContV" "', argument " "8"" of type '" "mreal""'"); 
+    }  
+    if (!argp8) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "8"" of type '" "mreal""'");
+    } else {
+      arg8 = *((mreal *)(argp8));
+    }
+  }
+  (arg1)->TriContV((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(mglData const &)*arg6,(char const *)arg7,arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TriContV__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  void *argp4 ;
+  int res4 = 0 ;
+  void *argp5 ;
+  int res5 = 0 ;
+  void *argp6 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TriContV",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriContV" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriContV" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriContV" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriContV" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriContV" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriContV" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_TriContV" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  (arg1)->TriContV((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(mglData const &)*arg6,(char const *)arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TriContV__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  void *argp4 ;
+  int res4 = 0 ;
+  void *argp5 ;
+  int res5 = 0 ;
+  void *argp6 ;
+  int res6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TriContV",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriContV" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriContV" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriContV" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriContV" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriContV" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriContV" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  (arg1)->TriContV((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(mglData const &)*arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TriCont__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  int arg8 ;
+  mreal arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  void *argp4 ;
+  int res4 = 0 ;
+  void *argp5 ;
+  int res5 = 0 ;
+  void *argp6 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
+  void *argp9 ;
+  int res9 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TriCont",args.length(),9,9,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriCont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriCont" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_TriCont" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  ecode8 = SWIG_AsVal_int(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_TriCont" "', argument " "8"" of type '" "int""'");
+  } 
+  arg8 = (int)(val8);
+  {
+    res9 = SWIG_ConvertPtr(args(8), &argp9, SWIGTYPE_p_mreal,  0 );
+    if (!SWIG_IsOK(res9)) {
+      SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "mglGraph_TriCont" "', argument " "9"" of type '" "mreal""'"); 
+    }  
+    if (!argp9) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "9"" of type '" "mreal""'");
+    } else {
+      arg9 = *((mreal *)(argp9));
+    }
+  }
+  (arg1)->TriCont((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(mglData const &)*arg6,(char const *)arg7,arg8,arg9);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TriCont__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  int arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  void *argp4 ;
+  int res4 = 0 ;
+  void *argp5 ;
+  int res5 = 0 ;
+  void *argp6 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TriCont",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriCont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriCont" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_TriCont" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  ecode8 = SWIG_AsVal_int(args(7), &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_TriCont" "', argument " "8"" of type '" "int""'");
+  } 
+  arg8 = (int)(val8);
+  (arg1)->TriCont((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(mglData const &)*arg6,(char const *)arg7,arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TriCont__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  void *argp4 ;
+  int res4 = 0 ;
+  void *argp5 ;
+  int res5 = 0 ;
+  void *argp6 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TriCont",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriCont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriCont" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_TriCont" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  (arg1)->TriCont((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(mglData const &)*arg6,(char const *)arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TriCont__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  void *argp4 ;
+  int res4 = 0 ;
+  void *argp5 ;
+  int res5 = 0 ;
+  void *argp6 ;
+  int res6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TriCont",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriCont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriCont" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  (arg1)->TriCont((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(mglData const &)*arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TriCont (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[9]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7),octave_value_ref(args,8)
+  };
+  
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_TriCont__SWIG_3(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_TriCont__SWIG_7(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_TriCont__SWIG_2(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_TriCont__SWIG_6(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_TriCont__SWIG_1(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_int(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_TriCont__SWIG_5(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  void *vptr = 0;
+                  int res = SWIG_ConvertPtr(argv[7], &vptr, SWIGTYPE_p_mreal, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_TriCont__SWIG_0(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_int(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    void *vptr = 0;
+                    int res = SWIG_ConvertPtr(argv[8], &vptr, SWIGTYPE_p_mreal, 0);
+                    _v = SWIG_CheckState(res);
+                    if (_v) {
+                      return _wrap_mglGraph_TriCont__SWIG_4(args, nargout);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_TriContV__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  mreal arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  void *argp4 ;
+  int res4 = 0 ;
+  void *argp5 ;
+  int res5 = 0 ;
+  void *argp6 ;
+  int res6 = 0 ;
+  void *argp7 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  void *argp9 ;
+  int res9 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TriContV",args.length(),9,9,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriContV" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriContV" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriContV" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriContV" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriContV" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriContV" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_TriContV" "', argument " "7"" of type '" "mglData const &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "7"" of type '" "mglData const &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_TriContV" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  {
+    res9 = SWIG_ConvertPtr(args(8), &argp9, SWIGTYPE_p_mreal,  0 );
+    if (!SWIG_IsOK(res9)) {
+      SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "mglGraph_TriContV" "', argument " "9"" of type '" "mreal""'"); 
+    }  
+    if (!argp9) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "9"" of type '" "mreal""'");
+    } else {
+      arg9 = *((mreal *)(argp9));
+    }
+  }
+  (arg1)->TriContV((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(mglData const &)*arg6,(mglData const &)*arg7,(char const *)arg8,arg9);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TriContV__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  void *argp4 ;
+  int res4 = 0 ;
+  void *argp5 ;
+  int res5 = 0 ;
+  void *argp6 ;
+  int res6 = 0 ;
+  void *argp7 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TriContV",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriContV" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriContV" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriContV" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriContV" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriContV" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriContV" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_TriContV" "', argument " "7"" of type '" "mglData const &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "7"" of type '" "mglData const &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_TriContV" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  (arg1)->TriContV((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(mglData const &)*arg6,(mglData const &)*arg7,(char const *)arg8);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TriContV__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  void *argp4 ;
+  int res4 = 0 ;
+  void *argp5 ;
+  int res5 = 0 ;
+  void *argp6 ;
+  int res6 = 0 ;
+  void *argp7 ;
+  int res7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_TriContV",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriContV" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriContV" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriContV" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriContV" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriContV" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriContV" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_TriContV" "', argument " "7"" of type '" "mglData const &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "7"" of type '" "mglData const &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  (arg1)->TriContV((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(mglData const &)*arg6,(mglData const &)*arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_TriContV (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[9]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7),octave_value_ref(args,8)
+  };
+  
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_TriContV__SWIG_2(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_TriContV__SWIG_5(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_TriContV__SWIG_1(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_TriContV__SWIG_4(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  void *vptr = 0;
+                  int res = SWIG_ConvertPtr(argv[7], &vptr, SWIGTYPE_p_mreal, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_TriContV__SWIG_0(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    void *vptr = 0;
+                    int res = SWIG_ConvertPtr(argv[8], &vptr, SWIGTYPE_p_mreal, 0);
+                    _v = SWIG_CheckState(res);
+                    if (_v) {
+                      return _wrap_mglGraph_TriContV__SWIG_3(args, nargout);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Dots__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Dots",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dots" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dots" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dots" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dots" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dots" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Dots" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dots" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Dots" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Dots(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Dots__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Dots",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dots" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dots" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dots" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dots" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dots" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Dots" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dots" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Dots(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Dots__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Dots",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dots" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dots" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dots" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dots" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dots" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Dots" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dots" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Dots" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dots" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Dots" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->Dots(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Dots__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Dots",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dots" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dots" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dots" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dots" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dots" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Dots" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dots" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Dots" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dots" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->Dots(*arg2,*arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Dots (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Dots__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Dots__SWIG_3(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Dots__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Dots__SWIG_2(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Crust__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Crust",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Crust" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Crust" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Crust" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Crust" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Crust" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Crust" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Crust" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Crust" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Crust" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  (arg1)->Crust(*arg2,*arg3,*arg4,(char const *)arg5,arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Crust__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Crust",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Crust" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Crust" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Crust" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Crust" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Crust" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Crust" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Crust" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Crust" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->Crust(*arg2,*arg3,*arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Crust__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Crust",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Crust" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Crust" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Crust" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Crust" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Crust" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Crust" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Crust" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Crust(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Crust (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Crust__SWIG_2(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Crust__SWIG_1(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Crust__SWIG_0(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_DensX__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_DensX",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_DensX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_DensX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_DensX" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_DensX" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  (arg1)->DensX(*arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_DensX__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_DensX",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_DensX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_DensX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_DensX" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->DensX(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_DensX__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_DensX",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_DensX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_DensX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->DensX(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_DensX (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_DensX__SWIG_2(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_DensX__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_DensX__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_DensY__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_DensY",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_DensY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_DensY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_DensY" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_DensY" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  (arg1)->DensY(*arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_DensY__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_DensY",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_DensY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_DensY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_DensY" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->DensY(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_DensY__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_DensY",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_DensY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_DensY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->DensY(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_DensY (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_DensY__SWIG_2(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_DensY__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_DensY__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_DensZ__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_DensZ",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_DensZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_DensZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_DensZ" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_DensZ" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  (arg1)->DensZ(*arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_DensZ__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_DensZ",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_DensZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_DensZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_DensZ" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->DensZ(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_DensZ__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_DensZ",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_DensZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_DensZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->DensZ(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_DensZ (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_DensZ__SWIG_2(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_DensZ__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_DensZ__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_ContX__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContX",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContX" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContX" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContX" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  (arg1)->ContX(*arg2,(char const *)arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContX__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContX",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContX" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContX" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  (arg1)->ContX(*arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContX__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContX",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContX" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->ContX(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContX__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContX",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->ContX(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContY__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContY",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContY" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContY" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContY" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  (arg1)->ContY(*arg2,(char const *)arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContY__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContY",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContY" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContY" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  (arg1)->ContY(*arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContY__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContY",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContY" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->ContY(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContY__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContY",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->ContY(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContZ__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContZ",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContZ" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContZ" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContZ" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  (arg1)->ContZ(*arg2,(char const *)arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContZ__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContZ",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContZ" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContZ" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  (arg1)->ContZ(*arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContZ__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContZ",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContZ" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->ContZ(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContZ__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContZ",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->ContZ(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContX__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContX",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContX" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContX" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContX" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContX" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->ContX(*arg2,*arg3,(char const *)arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContX__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContX",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContX" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContX" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContX" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->ContX(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContX__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContX",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContX" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContX" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->ContX(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContX (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[5]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_ContX__SWIG_3(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContX__SWIG_6(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContX__SWIG_2(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_ContX__SWIG_5(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_ContX__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContX__SWIG_4(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContX__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_ContY__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContY",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContY" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContY" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContY" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContY" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->ContY(*arg2,*arg3,(char const *)arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContY__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContY",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContY" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContY" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContY" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->ContY(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContY__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContY",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContY" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContY" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->ContY(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContY (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[5]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_ContY__SWIG_3(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContY__SWIG_6(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContY__SWIG_2(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_ContY__SWIG_5(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_ContY__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContY__SWIG_4(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContY__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_ContZ__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContZ",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContZ" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContZ" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContZ" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContZ" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->ContZ(*arg2,*arg3,(char const *)arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContZ__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContZ",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContZ" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContZ" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContZ" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->ContZ(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContZ__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContZ",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContZ" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContZ" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->ContZ(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContZ (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[5]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_ContZ__SWIG_3(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContZ__SWIG_6(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContZ__SWIG_2(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_ContZ__SWIG_5(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_ContZ__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContZ__SWIG_4(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContZ__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFX__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContFX",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFX" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContFX" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContFX" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  (arg1)->ContFX(*arg2,(char const *)arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFX__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContFX",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFX" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContFX" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  (arg1)->ContFX(*arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFX__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContFX",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFX" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->ContFX(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFX__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContFX",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->ContFX(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFY__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContFY",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFY" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContFY" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContFY" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  (arg1)->ContFY(*arg2,(char const *)arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFY__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContFY",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFY" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContFY" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  (arg1)->ContFY(*arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFY__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContFY",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFY" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->ContFY(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFY__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContFY",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->ContFY(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFZ__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContFZ",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFZ" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContFZ" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  ecode5 = SWIG_AsVal_int(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContFZ" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = (int)(val5);
+  (arg1)->ContFZ(*arg2,(char const *)arg3,arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFZ__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContFZ",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFZ" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContFZ" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  (arg1)->ContFZ(*arg2,(char const *)arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFZ__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContFZ",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFZ" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->ContFZ(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFZ__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContFZ",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  (arg1)->ContFZ(*arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFX__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContFX",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFX" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFX" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContFX" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContFX" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->ContFX(*arg2,*arg3,(char const *)arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFX__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContFX",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFX" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFX" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContFX" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->ContFX(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFX__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContFX",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFX" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFX" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->ContFX(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFX (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[5]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_ContFX__SWIG_3(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContFX__SWIG_6(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContFX__SWIG_2(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_ContFX__SWIG_5(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_ContFX__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContFX__SWIG_4(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContFX__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFY__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContFY",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFY" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFY" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContFY" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContFY" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->ContFY(*arg2,*arg3,(char const *)arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFY__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContFY",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFY" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFY" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContFY" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->ContFY(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFY__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContFY",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFY" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFY" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->ContFY(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFY (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[5]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_ContFY__SWIG_3(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContFY__SWIG_6(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContFY__SWIG_2(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_ContFY__SWIG_5(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_ContFY__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContFY__SWIG_4(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContFY__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFZ__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContFZ",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFZ" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFZ" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContFZ" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContFZ" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  (arg1)->ContFZ(*arg2,*arg3,(char const *)arg4,arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFZ__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContFZ",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFZ" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFZ" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContFZ" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  (arg1)->ContFZ(*arg2,*arg3,(char const *)arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFZ__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_ContFZ",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFZ" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFZ" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  (arg1)->ContFZ(*arg2,*arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_ContFZ (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[5]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4)
+  };
+  
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_ContFZ__SWIG_3(args, nargout);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContFZ__SWIG_6(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContFZ__SWIG_2(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_ContFZ__SWIG_5(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_ContFZ__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContFZ__SWIG_4(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContFZ__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Hist__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Hist",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Hist" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Hist" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Hist" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Hist" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Hist" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Hist" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Hist" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Hist(*arg2,*arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Hist__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Hist",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Hist" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Hist" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Hist" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Hist" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Hist" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Hist" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Hist" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Hist" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Hist" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->Hist(*arg2,*arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Hist__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Hist",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Hist" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Hist" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Hist" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Hist" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Hist" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Hist" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Hist" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Hist" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Hist" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Hist" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Hist" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  (arg1)->Hist(*arg2,*arg3,*arg4,*arg5,*arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Hist (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Hist__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Hist__SWIG_1(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Hist__SWIG_2(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Fit__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  float result;
+  
+  if (!SWIG_check_num_args("mglGraph_Fit",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fit" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fit" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Fit" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  result = (float)(arg1)->Fit(*arg2,*arg3,(char const *)arg4,(char const *)arg5);
+  _outv = SWIG_From_float((float)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Fit__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  mglData *arg6 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  float result;
+  
+  if (!SWIG_check_num_args("mglGraph_Fit",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fit" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fit" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Fit" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Fit" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  result = (float)(arg1)->Fit(*arg2,*arg3,(char const *)arg4,(char const *)arg5,*arg6);
+  _outv = SWIG_From_float((float)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Fit2__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  float result;
+  
+  if (!SWIG_check_num_args("mglGraph_Fit2",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fit2" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fit2" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit2" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fit2" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit2" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fit2" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Fit2" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  result = (float)(arg1)->Fit2(*arg2,*arg3,(char const *)arg4,(char const *)arg5);
+  _outv = SWIG_From_float((float)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Fit2__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  mglData *arg6 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  float result;
+  
+  if (!SWIG_check_num_args("mglGraph_Fit2",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fit2" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fit2" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit2" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fit2" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit2" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fit2" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Fit2" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Fit2" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit2" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  result = (float)(arg1)->Fit2(*arg2,*arg3,(char const *)arg4,(char const *)arg5,*arg6);
+  _outv = SWIG_From_float((float)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Fit2 (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Fit2__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Fit2__SWIG_1(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Fit3__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  float result;
+  
+  if (!SWIG_check_num_args("mglGraph_Fit3",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fit3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fit3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fit3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fit3" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Fit3" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  result = (float)(arg1)->Fit3(*arg2,*arg3,(char const *)arg4,(char const *)arg5);
+  _outv = SWIG_From_float((float)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Fit3__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  mglData *arg6 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  float result;
+  
+  if (!SWIG_check_num_args("mglGraph_Fit3",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fit3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fit3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fit3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_AsCharPtrAndSize(args(3), &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fit3" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = (char *)(buf4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Fit3" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Fit3" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit3" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  result = (float)(arg1)->Fit3(*arg2,*arg3,(char const *)arg4,(char const *)arg5,*arg6);
+  _outv = SWIG_From_float((float)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Fit3 (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Fit3__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Fit3__SWIG_1(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Fit__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  float result;
+  
+  if (!SWIG_check_num_args("mglGraph_Fit",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fit" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fit" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Fit" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Fit" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  result = (float)(arg1)->Fit(*arg2,*arg3,*arg4,(char const *)arg5,(char const *)arg6);
+  _outv = SWIG_From_float((float)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Fit__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  char *arg6 = (char *) 0 ;
+  mglData *arg7 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  float result;
+  
+  if (!SWIG_check_num_args("mglGraph_Fit",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fit" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fit" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Fit" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Fit" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Fit" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  result = (float)(arg1)->Fit(*arg2,*arg3,*arg4,(char const *)arg5,(char const *)arg6,*arg7);
+  _outv = SWIG_From_float((float)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Fit__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  float result;
+  
+  if (!SWIG_check_num_args("mglGraph_Fit",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fit" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fit" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Fit" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Fit" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Fit" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  result = (float)(arg1)->Fit(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,(char const *)arg7);
+  _outv = SWIG_From_float((float)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Fit__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  char *arg7 = (char *) 0 ;
+  mglData *arg8 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  void *argp8 = 0 ;
+  int res8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  float result;
+  
+  if (!SWIG_check_num_args("mglGraph_Fit",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fit" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fit" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Fit" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Fit" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Fit" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  res8 = SWIG_ConvertPtr(args(7), &argp8, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Fit" "', argument " "8"" of type '" "mglData &""'"); 
+  }
+  if (!argp8) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "8"" of type '" "mglData &""'"); 
+  }
+  arg8 = (mglData *)(argp8);
+  result = (float)(arg1)->Fit(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,(char const *)arg7,*arg8);
+  _outv = SWIG_From_float((float)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Fit__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  float result;
+  
+  if (!SWIG_check_num_args("mglGraph_Fit",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fit" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fit" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Fit" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Fit" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Fit" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Fit" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  result = (float)(arg1)->Fit(*arg2,*arg3,*arg4,*arg5,*arg6,(char const *)arg7,(char const *)arg8);
+  _outv = SWIG_From_float((float)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Fit__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  char *arg8 = (char *) 0 ;
+  mglData *arg9 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  void *argp9 = 0 ;
+  int res9 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  float result;
+  
+  if (!SWIG_check_num_args("mglGraph_Fit",args.length(),9,9,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fit" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fit" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Fit" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Fit" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Fit" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Fit" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  res9 = SWIG_ConvertPtr(args(8), &argp9, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res9)) {
+    SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "mglGraph_Fit" "', argument " "9"" of type '" "mglData &""'"); 
+  }
+  if (!argp9) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "9"" of type '" "mglData &""'"); 
+  }
+  arg9 = (mglData *)(argp9);
+  result = (float)(arg1)->Fit(*arg2,*arg3,*arg4,*arg5,*arg6,(char const *)arg7,(char const *)arg8,*arg9);
+  _outv = SWIG_From_float((float)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Fit (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[9]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7),octave_value_ref(args,8)
+  };
+  
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Fit__SWIG_0(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Fit__SWIG_2(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Fit__SWIG_1(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_Fit__SWIG_4(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_Fit__SWIG_3(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Fit__SWIG_6(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  void *vptr = 0;
+                  int res = SWIG_ConvertPtr(argv[7], &vptr, SWIGTYPE_p_mglData, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Fit__SWIG_5(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    void *vptr = 0;
+                    int res = SWIG_ConvertPtr(argv[8], &vptr, SWIGTYPE_p_mglData, 0);
+                    _v = SWIG_CheckState(res);
+                    if (_v) {
+                      return _wrap_mglGraph_Fit__SWIG_7(args, nargout);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_FitS__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  float result;
+  
+  if (!SWIG_check_num_args("mglGraph_FitS",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FitS" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FitS" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FitS" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  result = (float)(arg1)->FitS(*arg2,*arg3,*arg4,(char const *)arg5,(char const *)arg6);
+  _outv = SWIG_From_float((float)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_FitS__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  char *arg6 = (char *) 0 ;
+  mglData *arg7 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  float result;
+  
+  if (!SWIG_check_num_args("mglGraph_FitS",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FitS" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FitS" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FitS" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FitS" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  result = (float)(arg1)->FitS(*arg2,*arg3,*arg4,(char const *)arg5,(char const *)arg6,*arg7);
+  _outv = SWIG_From_float((float)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_FitS__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  float result;
+  
+  if (!SWIG_check_num_args("mglGraph_FitS",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FitS" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FitS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FitS" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FitS" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  result = (float)(arg1)->FitS(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,(char const *)arg7);
+  _outv = SWIG_From_float((float)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_FitS__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  char *arg7 = (char *) 0 ;
+  mglData *arg8 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  void *argp8 = 0 ;
+  int res8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  float result;
+  
+  if (!SWIG_check_num_args("mglGraph_FitS",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FitS" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FitS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FitS" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FitS" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  res8 = SWIG_ConvertPtr(args(7), &argp8, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_FitS" "', argument " "8"" of type '" "mglData &""'"); 
+  }
+  if (!argp8) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "8"" of type '" "mglData &""'"); 
+  }
+  arg8 = (mglData *)(argp8);
+  result = (float)(arg1)->FitS(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,(char const *)arg7,*arg8);
+  _outv = SWIG_From_float((float)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_FitS__SWIG_4 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  float result;
+  
+  if (!SWIG_check_num_args("mglGraph_FitS",args.length(),8,8,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FitS" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FitS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FitS" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FitS" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_FitS" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  result = (float)(arg1)->FitS(*arg2,*arg3,*arg4,*arg5,*arg6,(char const *)arg7,(char const *)arg8);
+  _outv = SWIG_From_float((float)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_FitS__SWIG_5 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  char *arg8 = (char *) 0 ;
+  mglData *arg9 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  void *argp9 = 0 ;
+  int res9 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  float result;
+  
+  if (!SWIG_check_num_args("mglGraph_FitS",args.length(),9,9,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FitS" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FitS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FitS" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_AsCharPtrAndSize(args(6), &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FitS" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = (char *)(buf7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_FitS" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  res9 = SWIG_ConvertPtr(args(8), &argp9, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res9)) {
+    SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "mglGraph_FitS" "', argument " "9"" of type '" "mglData &""'"); 
+  }
+  if (!argp9) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "9"" of type '" "mglData &""'"); 
+  }
+  arg9 = (mglData *)(argp9);
+  result = (float)(arg1)->FitS(*arg2,*arg3,*arg4,*arg5,*arg6,(char const *)arg7,(char const *)arg8,*arg9);
+  _outv = SWIG_From_float((float)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_FitS__SWIG_6 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  char *arg9 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  int res9 ;
+  char *buf9 = 0 ;
+  int alloc9 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  float result;
+  
+  if (!SWIG_check_num_args("mglGraph_FitS",args.length(),9,9,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FitS" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FitS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FitS" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FitS" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_FitS" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  res9 = SWIG_AsCharPtrAndSize(args(8), &buf9, NULL, &alloc9);
+  if (!SWIG_IsOK(res9)) {
+    SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "mglGraph_FitS" "', argument " "9"" of type '" "char const *""'");
+  }
+  arg9 = (char *)(buf9);
+  result = (float)(arg1)->FitS(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8,(char const *)arg9);
+  _outv = SWIG_From_float((float)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  if (alloc9 == SWIG_NEWOBJ) delete[] buf9;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_FitS__SWIG_7 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  char *arg9 = (char *) 0 ;
+  mglData *arg10 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  int res9 ;
+  char *buf9 = 0 ;
+  int alloc9 = 0 ;
+  void *argp10 = 0 ;
+  int res10 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  float result;
+  
+  if (!SWIG_check_num_args("mglGraph_FitS",args.length(),10,10,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FitS" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FitS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  res6 = SWIG_ConvertPtr(args(5), &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FitS" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = (mglData *)(argp6);
+  res7 = SWIG_ConvertPtr(args(6), &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FitS" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = (mglData *)(argp7);
+  res8 = SWIG_AsCharPtrAndSize(args(7), &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_FitS" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = (char *)(buf8);
+  res9 = SWIG_AsCharPtrAndSize(args(8), &buf9, NULL, &alloc9);
+  if (!SWIG_IsOK(res9)) {
+    SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "mglGraph_FitS" "', argument " "9"" of type '" "char const *""'");
+  }
+  arg9 = (char *)(buf9);
+  res10 = SWIG_ConvertPtr(args(9), &argp10, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res10)) {
+    SWIG_exception_fail(SWIG_ArgError(res10), "in method '" "mglGraph_FitS" "', argument " "10"" of type '" "mglData &""'"); 
+  }
+  if (!argp10) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "10"" of type '" "mglData &""'"); 
+  }
+  arg10 = (mglData *)(argp10);
+  result = (float)(arg1)->FitS(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8,(char const *)arg9,*arg10);
+  _outv = SWIG_From_float((float)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  if (alloc9 == SWIG_NEWOBJ) delete[] buf9;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_FitS (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[10]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6),octave_value_ref(args,7),octave_value_ref(args,8),octave_value_ref(args,9)
+  };
+  
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_FitS__SWIG_0(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_FitS__SWIG_2(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_FitS__SWIG_1(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_FitS__SWIG_4(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  void *vptr = 0;
+                  int res = SWIG_ConvertPtr(argv[7], &vptr, SWIGTYPE_p_mglData, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_FitS__SWIG_3(args, nargout);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    int res = SWIG_AsCharPtrAndSize(argv[8], 0, NULL, 0);
+                    _v = SWIG_CheckState(res);
+                    if (_v) {
+                      return _wrap_mglGraph_FitS__SWIG_6(args, nargout);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    void *vptr = 0;
+                    int res = SWIG_ConvertPtr(argv[8], &vptr, SWIGTYPE_p_mglData, 0);
+                    _v = SWIG_CheckState(res);
+                    if (_v) {
+                      return _wrap_mglGraph_FitS__SWIG_5(args, nargout);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 10) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    int res = SWIG_AsCharPtrAndSize(argv[8], 0, NULL, 0);
+                    _v = SWIG_CheckState(res);
+                    if (_v) {
+                      void *vptr = 0;
+                      int res = SWIG_ConvertPtr(argv[9], &vptr, SWIGTYPE_p_mglData, 0);
+                      _v = SWIG_CheckState(res);
+                      if (_v) {
+                        return _wrap_mglGraph_FitS__SWIG_7(args, nargout);
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_PutsFit__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  char *arg5 = (char *) 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_PutsFit",args.length(),7,7,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_PutsFit" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_PutsFit" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_PutsFit" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_PutsFit" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_PutsFit" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_PutsFit" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  ecode7 = SWIG_AsVal_float(args(6), &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_PutsFit" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = (float)(val7);
+  (arg1)->PutsFit(arg2,arg3,arg4,(char const *)arg5,(char const *)arg6,arg7);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_PutsFit__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  char *arg5 = (char *) 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_PutsFit",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_PutsFit" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_PutsFit" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_PutsFit" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_PutsFit" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_PutsFit" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  res6 = SWIG_AsCharPtrAndSize(args(5), &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_PutsFit" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = (char *)(buf6);
+  (arg1)->PutsFit(arg2,arg3,arg4,(char const *)arg5,(char const *)arg6);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_PutsFit__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_PutsFit",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_PutsFit" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_PutsFit" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_PutsFit" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_PutsFit" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  res5 = SWIG_AsCharPtrAndSize(args(4), &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_PutsFit" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = (char *)(buf5);
+  (arg1)->PutsFit(arg2,arg3,arg4,(char const *)arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_PutsFit__SWIG_3 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_PutsFit",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_PutsFit" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  ecode2 = SWIG_AsVal_float(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_PutsFit" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = (float)(val2);
+  ecode3 = SWIG_AsVal_float(args(2), &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_PutsFit" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = (float)(val3);
+  ecode4 = SWIG_AsVal_float(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_PutsFit" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = (float)(val4);
+  (arg1)->PutsFit(arg2,arg3,arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_PutsFit (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[7]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5),octave_value_ref(args,6)
+  };
+  
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_PutsFit__SWIG_3(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_PutsFit__SWIG_2(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_PutsFit__SWIG_1(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_PutsFit__SWIG_0(args, nargout);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_GetFit (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  char *result = 0 ;
+  
+  if (!SWIG_check_num_args("mglGraph_GetFit",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_GetFit" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  result = (char *)(arg1)->GetFit();
+  _outv = SWIG_FromCharPtr((const char *)result);
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_PDE__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  float arg5 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglGraph_PDE",args.length(),6,6,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_PDE" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_PDE" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_PDE" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_PDE" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_PDE" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_PDE" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_PDE" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  ecode6 = SWIG_AsVal_float(args(5), &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_PDE" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = (float)(val6);
+  result = (arg1)->PDE((char const *)arg2,*arg3,*arg4,arg5,arg6);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_PDE__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglGraph_PDE",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_PDE" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_PDE" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_PDE" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_PDE" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_PDE" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_PDE" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  ecode5 = SWIG_AsVal_float(args(4), &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_PDE" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = (float)(val5);
+  result = (arg1)->PDE((char const *)arg2,*arg3,*arg4,arg5);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_PDE__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglGraph_PDE",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_PDE" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_PDE" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_PDE" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_PDE" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = (mglData *)(argp3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_PDE" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_PDE" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  result = (arg1)->PDE((char const *)arg2,*arg3,*arg4);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_PDE (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[6]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4),octave_value_ref(args,5)
+  };
+  
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_PDE__SWIG_2(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_PDE__SWIG_1(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_PDE__SWIG_0(args, nargout);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglGraph_Fill__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Fill",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fill" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fill" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fill" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fill" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Fill(*arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Fill__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Fill",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fill" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fill" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fill" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fill" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fill" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fill" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  (arg1)->Fill(*arg2,(char const *)arg3,*arg4);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Fill__SWIG_2 (const octave_value_list& args, int nargout) {
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglGraph_Fill",args.length(),5,5,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fill" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = (mglGraph *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fill" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fill" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = (mglData *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fill" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  res4 = SWIG_ConvertPtr(args(3), &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fill" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fill" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = (mglData *)(argp4);
+  res5 = SWIG_ConvertPtr(args(4), &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Fill" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fill" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = (mglData *)(argp5);
+  (arg1)->Fill(*arg2,(char const *)arg3,*arg4,*arg5);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglGraph_Fill (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[5]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3),octave_value_ref(args,4)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Fill__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Fill__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Fill__SWIG_2(args, nargout);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static swig_octave_member swig_mglGraph_members[] = {
+{"Self",_wrap_mglGraph_Self,0,0,0,0},
+{"GetWarn",_wrap_mglGraph_GetWarn,0,0,0,0},
+{"DefaultPlotParam",_wrap_mglGraph_DefaultPlotParam,0,0,0,0},
+{"SetPalColor",_wrap_mglGraph_SetPalColor,0,0,0,0},
+{"SetPalNum",_wrap_mglGraph_SetPalNum,0,0,0,0},
+{"SetPalette",_wrap_mglGraph_SetPalette,0,0,0,0},
+{"SetScheme",_wrap_mglGraph_SetScheme,0,0,0,0},
+{"SetRotatedText",_wrap_mglGraph_SetRotatedText,0,0,0,0},
+{"SetCut",_wrap_mglGraph_SetCut,0,0,0,0},
+{"SetCutBox",_wrap_mglGraph_SetCutBox,0,0,0,0},
+{"SetTickLen",_wrap_mglGraph_SetTickLen,0,0,0,0},
+{"SetTickStl",_wrap_mglGraph_SetTickStl,0,0,0,0},
+{"SetBaseLineWidth",_wrap_mglGraph_SetBaseLineWidth,0,0,0,0},
+{"SetSize",_wrap_mglGraph_SetSize,0,0,0,0},
+{"SetBarWidth",_wrap_mglGraph_SetBarWidth,0,0,0,0},
+{"SetMarkSize",_wrap_mglGraph_SetMarkSize,0,0,0,0},
+{"SetArrowSize",_wrap_mglGraph_SetArrowSize,0,0,0,0},
+{"SetFontSize",_wrap_mglGraph_SetFontSize,0,0,0,0},
+{"SetFontDef",_wrap_mglGraph_SetFontDef,0,0,0,0},
+{"SetAlphaDef",_wrap_mglGraph_SetAlphaDef,0,0,0,0},
+{"SetAxialDir",_wrap_mglGraph_SetAxialDir,0,0,0,0},
+{"SetMeshNum",_wrap_mglGraph_SetMeshNum,0,0,0,0},
+{"Zoom",_wrap_mglGraph_Zoom,0,0,0,0},
+{"SetPlotFactor",_wrap_mglGraph_SetPlotFactor,0,0,0,0},
+{"SetDrawFace",_wrap_mglGraph_SetDrawFace,0,0,0,0},
+{"SetLegendBox",_wrap_mglGraph_SetLegendBox,0,0,0,0},
+{"SetLegendMarks",_wrap_mglGraph_SetLegendMarks,0,0,0,0},
+{"LoadFont",_wrap_mglGraph_LoadFont,0,0,0,0},
+{"CopyFont",_wrap_mglGraph_CopyFont,0,0,0,0},
+{"RestoreFont",_wrap_mglGraph_RestoreFont,0,0,0,0},
+{"ShowImage",_wrap_mglGraph_ShowImage,0,0,0,0},
+{"WriteFrame",_wrap_mglGraph_WriteFrame,0,0,0,0},
+{"WriteIDTF",_wrap_mglGraph_WriteIDTF,0,0,0,0},
+{"WriteJPEG",_wrap_mglGraph_WriteJPEG,0,0,0,0},
+{"WritePNG",_wrap_mglGraph_WritePNG,0,0,0,0},
+{"WriteEPS",_wrap_mglGraph_WriteEPS,0,0,0,0},
+{"WriteSVG",_wrap_mglGraph_WriteSVG,0,0,0,0},
+{"WriteGIF",_wrap_mglGraph_WriteGIF,0,0,0,0},
+{"StartGIF",_wrap_mglGraph_StartGIF,0,0,0,0},
+{"CloseGIF",_wrap_mglGraph_CloseGIF,0,0,0,0},
+{"NewFrame",_wrap_mglGraph_NewFrame,0,0,0,0},
+{"EndFrame",_wrap_mglGraph_EndFrame,0,0,0,0},
+{"GetNumFrame",_wrap_mglGraph_GetNumFrame,0,0,0,0},
+{"ResetFrames",_wrap_mglGraph_ResetFrames,0,0,0,0},
+{"Flush",_wrap_mglGraph_Flush,0,0,0,0},
+{"GetRGB",_wrap_mglGraph_GetRGB,0,0,0,0},
+{"GetRGBA",_wrap_mglGraph_GetRGBA,0,0,0,0},
+{"GetBGRN",_wrap_mglGraph_GetBGRN,0,0,0,0},
+{"GetWidth",_wrap_mglGraph_GetWidth,0,0,0,0},
+{"GetHeight",_wrap_mglGraph_GetHeight,0,0,0,0},
+{"CalcXYZ",_wrap_mglGraph_CalcXYZ,0,0,0,0},
+{"CalcScr",_wrap_mglGraph_CalcScr,0,0,0,0},
+{"SetTranspType",_wrap_mglGraph_SetTranspType,0,0,0,0},
+{"SetTransparent",_wrap_mglGraph_SetTransparent,0,0,0,0},
+{"Alpha",_wrap_mglGraph_Alpha,0,0,0,0},
+{"Fog",_wrap_mglGraph_Fog,0,0,0,0},
+{"Light",_wrap_mglGraph_Light,0,0,0,0},
+{"AddLight",_wrap_mglGraph_AddLight,0,0,0,0},
+{"SetAmbient",_wrap_mglGraph_SetAmbient,0,0,0,0},
+{"Identity",_wrap_mglGraph_Identity,0,0,0,0},
+{"Clf",_wrap_mglGraph_Clf,0,0,0,0},
+{"SubPlot",_wrap_mglGraph_SubPlot,0,0,0,0},
+{"InPlot",_wrap_mglGraph_InPlot,0,0,0,0},
+{"ColumnPlot",_wrap_mglGraph_ColumnPlot,0,0,0,0},
+{"StickPlot",_wrap_mglGraph_StickPlot,0,0,0,0},
+{"Aspect",_wrap_mglGraph_Aspect,0,0,0,0},
+{"Rotate",_wrap_mglGraph_Rotate,0,0,0,0},
+{"RotateN",_wrap_mglGraph_RotateN,0,0,0,0},
+{"Perspective",_wrap_mglGraph_Perspective,0,0,0,0},
+{"SetTicks",_wrap_mglGraph_SetTicks,0,0,0,0},
+{"AdjustTicks",_wrap_mglGraph_AdjustTicks,0,0,0,0},
+{"SetRanges",_wrap_mglGraph_SetRanges,0,0,0,0},
+{"SetAutoRanges",_wrap_mglGraph_SetAutoRanges,0,0,0,0},
+{"SetOrigin",_wrap_mglGraph_SetOrigin,0,0,0,0},
+{"SetCRange",_wrap_mglGraph_SetCRange,0,0,0,0},
+{"SetXRange",_wrap_mglGraph_SetXRange,0,0,0,0},
+{"SetYRange",_wrap_mglGraph_SetYRange,0,0,0,0},
+{"SetZRange",_wrap_mglGraph_SetZRange,0,0,0,0},
+{"SetFunc",_wrap_mglGraph_SetFunc,0,0,0,0},
+{"SetCoor",_wrap_mglGraph_SetCoor,0,0,0,0},
+{"Ternary",_wrap_mglGraph_Ternary,0,0,0,0},
+{"CutOff",_wrap_mglGraph_CutOff,0,0,0,0},
+{"Box",_wrap_mglGraph_Box,0,0,0,0},
+{"Axis",_wrap_mglGraph_Axis,0,0,0,0},
+{"Label",_wrap_mglGraph_Label,0,0,0,0},
+{"SetTuneTicks",_wrap_mglGraph_SetTuneTicks,0,0,0,0},
+{"SetXTT",_wrap_mglGraph_SetXTT,0,0,0,0},
+{"SetYTT",_wrap_mglGraph_SetYTT,0,0,0,0},
+{"SetZTT",_wrap_mglGraph_SetZTT,0,0,0,0},
+{"SetCTT",_wrap_mglGraph_SetCTT,0,0,0,0},
+{"Ball",_wrap_mglGraph_Ball,0,0,0,0},
+{"Line",_wrap_mglGraph_Line,0,0,0,0},
+{"FaceX",_wrap_mglGraph_FaceX,0,0,0,0},
+{"FaceY",_wrap_mglGraph_FaceY,0,0,0,0},
+{"FaceZ",_wrap_mglGraph_FaceZ,0,0,0,0},
+{"Curve",_wrap_mglGraph_Curve,0,0,0,0},
+{"Drop",_wrap_mglGraph_Drop,0,0,0,0},
+{"Sphere",_wrap_mglGraph_Sphere,0,0,0,0},
+{"Cone",_wrap_mglGraph_Cone,0,0,0,0},
+{"Putsw",_wrap_mglGraph_Putsw,0,0,0,0},
+{"Puts",_wrap_mglGraph_Puts,0,0,0,0},
+{"Title",_wrap_mglGraph_Title,0,0,0,0},
+{"Colorbar",_wrap_mglGraph_Colorbar,0,0,0,0},
+{"SimplePlot",_wrap_mglGraph_SimplePlot,0,0,0,0},
+{"AddLegend",_wrap_mglGraph_AddLegend,0,0,0,0},
+{"AddLegendw",_wrap_mglGraph_AddLegendw,0,0,0,0},
+{"ClearLegend",_wrap_mglGraph_ClearLegend,0,0,0,0},
+{"Legend",_wrap_mglGraph_Legend,0,0,0,0},
+{"Plot",_wrap_mglGraph_Plot,0,0,0,0},
+{"BoxPlot",_wrap_mglGraph_BoxPlot,0,0,0,0},
+{"Radar",_wrap_mglGraph_Radar,0,0,0,0},
+{"Tens",_wrap_mglGraph_Tens,0,0,0,0},
+{"Area",_wrap_mglGraph_Area,0,0,0,0},
+{"Stem",_wrap_mglGraph_Stem,0,0,0,0},
+{"Step",_wrap_mglGraph_Step,0,0,0,0},
+{"Bars",_wrap_mglGraph_Bars,0,0,0,0},
+{"Barh",_wrap_mglGraph_Barh,0,0,0,0},
+{"Region",_wrap_mglGraph_Region,0,0,0,0},
+{"Torus",_wrap_mglGraph_Torus,0,0,0,0},
+{"Text",_wrap_mglGraph_Text,0,0,0,0},
+{"Chart",_wrap_mglGraph_Chart,0,0,0,0},
+{"Error",_wrap_mglGraph_Error,0,0,0,0},
+{"Mark",_wrap_mglGraph_Mark,0,0,0,0},
+{"TextMark",_wrap_mglGraph_TextMark,0,0,0,0},
+{"Tube",_wrap_mglGraph_Tube,0,0,0,0},
+{"Grid",_wrap_mglGraph_Grid,0,0,0,0},
+{"Mesh",_wrap_mglGraph_Mesh,0,0,0,0},
+{"Fall",_wrap_mglGraph_Fall,0,0,0,0},
+{"Belt",_wrap_mglGraph_Belt,0,0,0,0},
+{"Surf",_wrap_mglGraph_Surf,0,0,0,0},
+{"Tile",_wrap_mglGraph_Tile,0,0,0,0},
+{"TileS",_wrap_mglGraph_TileS,0,0,0,0},
+{"Dens",_wrap_mglGraph_Dens,0,0,0,0},
+{"Boxs",_wrap_mglGraph_Boxs,0,0,0,0},
+{"Cont",_wrap_mglGraph_Cont,0,0,0,0},
+{"ContF",_wrap_mglGraph_ContF,0,0,0,0},
+{"ContD",_wrap_mglGraph_ContD,0,0,0,0},
+{"Axial",_wrap_mglGraph_Axial,0,0,0,0},
+{"SurfC",_wrap_mglGraph_SurfC,0,0,0,0},
+{"SurfA",_wrap_mglGraph_SurfA,0,0,0,0},
+{"STFA",_wrap_mglGraph_STFA,0,0,0,0},
+{"Dew",_wrap_mglGraph_Dew,0,0,0,0},
+{"Traj",_wrap_mglGraph_Traj,0,0,0,0},
+{"Vect",_wrap_mglGraph_Vect,0,0,0,0},
+{"VectL",_wrap_mglGraph_VectL,0,0,0,0},
+{"VectC",_wrap_mglGraph_VectC,0,0,0,0},
+{"Map",_wrap_mglGraph_Map,0,0,0,0},
+{"Surf3A",_wrap_mglGraph_Surf3A,0,0,0,0},
+{"Surf3C",_wrap_mglGraph_Surf3C,0,0,0,0},
+{"Flow",_wrap_mglGraph_Flow,0,0,0,0},
+{"FlowP",_wrap_mglGraph_FlowP,0,0,0,0},
+{"Grad",_wrap_mglGraph_Grad,0,0,0,0},
+{"Pipe",_wrap_mglGraph_Pipe,0,0,0,0},
+{"Grid3",_wrap_mglGraph_Grid3,0,0,0,0},
+{"GridA",_wrap_mglGraph_GridA,0,0,0,0},
+{"Dens3",_wrap_mglGraph_Dens3,0,0,0,0},
+{"DensA",_wrap_mglGraph_DensA,0,0,0,0},
+{"Surf3",_wrap_mglGraph_Surf3,0,0,0,0},
+{"Cloud",_wrap_mglGraph_Cloud,0,0,0,0},
+{"Cont3",_wrap_mglGraph_Cont3,0,0,0,0},
+{"ContA",_wrap_mglGraph_ContA,0,0,0,0},
+{"ContF3",_wrap_mglGraph_ContF3,0,0,0,0},
+{"ContFA",_wrap_mglGraph_ContFA,0,0,0,0},
+{"Beam",_wrap_mglGraph_Beam,0,0,0,0},
+{"TriPlot",_wrap_mglGraph_TriPlot,0,0,0,0},
+{"QuadPlot",_wrap_mglGraph_QuadPlot,0,0,0,0},
+{"TriCont",_wrap_mglGraph_TriCont,0,0,0,0},
+{"TriContV",_wrap_mglGraph_TriContV,0,0,0,0},
+{"Dots",_wrap_mglGraph_Dots,0,0,0,0},
+{"Crust",_wrap_mglGraph_Crust,0,0,0,0},
+{"DensX",_wrap_mglGraph_DensX,0,0,0,0},
+{"DensY",_wrap_mglGraph_DensY,0,0,0,0},
+{"DensZ",_wrap_mglGraph_DensZ,0,0,0,0},
+{"ContX",_wrap_mglGraph_ContX,0,0,0,0},
+{"ContY",_wrap_mglGraph_ContY,0,0,0,0},
+{"ContZ",_wrap_mglGraph_ContZ,0,0,0,0},
+{"ContFX",_wrap_mglGraph_ContFX,0,0,0,0},
+{"ContFY",_wrap_mglGraph_ContFY,0,0,0,0},
+{"ContFZ",_wrap_mglGraph_ContFZ,0,0,0,0},
+{"Hist",_wrap_mglGraph_Hist,0,0,0,0},
+{"Fit2",_wrap_mglGraph_Fit2,0,0,0,0},
+{"Fit3",_wrap_mglGraph_Fit3,0,0,0,0},
+{"Fit",_wrap_mglGraph_Fit,0,0,0,0},
+{"FitS",_wrap_mglGraph_FitS,0,0,0,0},
+{"PutsFit",_wrap_mglGraph_PutsFit,0,0,0,0},
+{"GetFit",_wrap_mglGraph_GetFit,0,0,0,0},
+{"PDE",_wrap_mglGraph_PDE,0,0,0,0},
+{"Fill",_wrap_mglGraph_Fill,0,0,0,0},
+{0,0,0,0}
+};
+static const char *swig_mglGraph_base_names[] = {0};
+static const swig_type_info *swig_mglGraph_base[] = {0};
+static swig_octave_class _wrap_class_mglGraph = {"mglGraph", &SWIGTYPE_p_mglGraph,0,_wrap_new_mglGraph,0,_wrap_delete_mglGraph,swig_mglGraph_members,swig_mglGraph_base_names,swig_mglGraph_base };
+
+static octave_value_list _wrap_new_mglParse (const octave_value_list& args, int nargout) {
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglParse *result = 0 ;
+  
+  if (!SWIG_check_num_args("new_mglParse",args.length(),0,0,0)) {
+    SWIG_fail;
+  }
+  result = (mglParse *)new mglParse();
+  _outv = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglParse, 1 |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_delete_mglParse (const octave_value_list& args, int nargout) {
+  mglParse *arg1 = (mglParse *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("delete_mglParse",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglParse, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_mglParse" "', argument " "1"" of type '" "mglParse *""'"); 
+  }
+  arg1 = (mglParse *)(argp1);
+  delete arg1;
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglParse_AddParam__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglParse *arg1 = (mglParse *) 0 ;
+  int arg2 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglParse_AddParam",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglParse, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglParse_AddParam" "', argument " "1"" of type '" "mglParse *""'"); 
+  }
+  arg1 = (mglParse *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglParse_AddParam" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglParse_AddParam" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->AddParam(arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglParse_AddParam__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglParse *arg1 = (mglParse *) 0 ;
+  int arg2 ;
+  wchar_t *arg3 = (wchar_t *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglParse_AddParam",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglParse, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglParse_AddParam" "', argument " "1"" of type '" "mglParse *""'"); 
+  }
+  arg1 = (mglParse *)(argp1);
+  ecode2 = SWIG_AsVal_int(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglParse_AddParam" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglParse_AddParam" "', argument " "3"" of type '" "wchar_t const *""'"); 
+  }
+  arg3 = (wchar_t *)(argp3);
+  (arg1)->AddParam(arg2,(wchar_t const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglParse_AddParam (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglParse, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_wchar_t, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglParse_AddParam__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglParse, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglParse_AddParam__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglParse_AddVar (const octave_value_list& args, int nargout) {
+  mglParse *arg1 = (mglParse *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglParse_AddVar",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglParse, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglParse_AddVar" "', argument " "1"" of type '" "mglParse *""'"); 
+  }
+  arg1 = (mglParse *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglParse_AddVar" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  result = (arg1)->AddVar((char const *)arg2);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglParse_FindVar (const octave_value_list& args, int nargout) {
+  mglParse *arg1 = (mglParse *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  mglData result;
+  
+  if (!SWIG_check_num_args("mglParse_FindVar",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglParse, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglParse_FindVar" "', argument " "1"" of type '" "mglParse *""'"); 
+  }
+  arg1 = (mglParse *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(args(1), &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglParse_FindVar" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  result = (arg1)->FindVar((char const *)arg2);
+  _outv = SWIG_NewPointerObj((new mglData((const mglData&)(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglParse_Parse__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglParse *arg1 = (mglParse *) 0 ;
+  mglGraph *arg2 = (mglGraph *) 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  int result;
+  
+  if (!SWIG_check_num_args("mglParse_Parse",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglParse, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglParse_Parse" "', argument " "1"" of type '" "mglParse *""'"); 
+  }
+  arg1 = (mglParse *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglParse_Parse" "', argument " "2"" of type '" "mglGraph *""'"); 
+  }
+  arg2 = (mglGraph *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglParse_Parse" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglParse_Parse" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  result = (int)(arg1)->Parse(arg2,(char const *)arg3,arg4);
+  _outv = SWIG_From_int((int)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglParse_Parse__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglParse *arg1 = (mglParse *) 0 ;
+  mglGraph *arg2 = (mglGraph *) 0 ;
+  wchar_t *arg3 = (wchar_t *) 0 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  int result;
+  
+  if (!SWIG_check_num_args("mglParse_Parse",args.length(),4,4,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglParse, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglParse_Parse" "', argument " "1"" of type '" "mglParse *""'"); 
+  }
+  arg1 = (mglParse *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglParse_Parse" "', argument " "2"" of type '" "mglGraph *""'"); 
+  }
+  arg2 = (mglGraph *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglParse_Parse" "', argument " "3"" of type '" "wchar_t const *""'"); 
+  }
+  arg3 = (wchar_t *)(argp3);
+  ecode4 = SWIG_AsVal_int(args(3), &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglParse_Parse" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = (int)(val4);
+  result = (int)(arg1)->Parse(arg2,(wchar_t const *)arg3,arg4);
+  _outv = SWIG_From_int((int)(result));
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglParse_Parse (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[4]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2),octave_value_ref(args,3)
+  };
+  
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglParse, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglGraph, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_wchar_t, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglParse_Parse__SWIG_1(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglParse, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglGraph, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglParse_Parse__SWIG_0(args, nargout);
+          }
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglParse_ScanFunc (const octave_value_list& args, int nargout) {
+  mglParse *arg1 = (mglParse *) 0 ;
+  wchar_t *arg2 = (wchar_t *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglParse_ScanFunc",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglParse, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglParse_ScanFunc" "', argument " "1"" of type '" "mglParse *""'"); 
+  }
+  arg1 = (mglParse *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglParse_ScanFunc" "', argument " "2"" of type '" "wchar_t const *""'"); 
+  }
+  arg2 = (wchar_t *)(argp2);
+  (arg1)->ScanFunc((wchar_t const *)arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglParse_Execute__SWIG_0 (const octave_value_list& args, int nargout) {
+  mglParse *arg1 = (mglParse *) 0 ;
+  mglGraph *arg2 = (mglGraph *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglParse_Execute",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglParse, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglParse_Execute" "', argument " "1"" of type '" "mglParse *""'"); 
+  }
+  arg1 = (mglParse *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglParse_Execute" "', argument " "2"" of type '" "mglGraph *""'"); 
+  }
+  arg2 = (mglGraph *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(args(2), &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglParse_Execute" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  (arg1)->Execute(arg2,(char const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglParse_Execute__SWIG_1 (const octave_value_list& args, int nargout) {
+  mglParse *arg1 = (mglParse *) 0 ;
+  mglGraph *arg2 = (mglGraph *) 0 ;
+  wchar_t *arg3 = (wchar_t *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglParse_Execute",args.length(),3,3,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglParse, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglParse_Execute" "', argument " "1"" of type '" "mglParse *""'"); 
+  }
+  arg1 = (mglParse *)(argp1);
+  res2 = SWIG_ConvertPtr(args(1), &argp2,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglParse_Execute" "', argument " "2"" of type '" "mglGraph *""'"); 
+  }
+  arg2 = (mglGraph *)(argp2);
+  res3 = SWIG_ConvertPtr(args(2), &argp3,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglParse_Execute" "', argument " "3"" of type '" "wchar_t const *""'"); 
+  }
+  arg3 = (wchar_t *)(argp3);
+  (arg1)->Execute(arg2,(wchar_t const *)arg3);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglParse_Execute (const octave_value_list& args, int nargout) {
+  int argc = args.length();
+  octave_value_ref argv[3]={
+    octave_value_ref(args,0),octave_value_ref(args,1),octave_value_ref(args,2)
+  };
+  
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglParse, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglGraph, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_wchar_t, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglParse_Execute__SWIG_1(args, nargout);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglParse, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglGraph, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglParse_Execute__SWIG_0(args, nargout);
+        }
+      }
+    }
+  }
+  
+  error("No matching function for overload");
+  return octave_value_list();
+}
+
+
+static octave_value_list _wrap_mglParse_RestoreOnce (const octave_value_list& args, int nargout) {
+  mglParse *arg1 = (mglParse *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglParse_RestoreOnce",args.length(),1,1,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglParse, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglParse_RestoreOnce" "', argument " "1"" of type '" "mglParse *""'"); 
+  }
+  arg1 = (mglParse *)(argp1);
+  (arg1)->RestoreOnce();
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static octave_value_list _wrap_mglParse_AllowSetSize (const octave_value_list& args, int nargout) {
+  mglParse *arg1 = (mglParse *) 0 ;
+  bool arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  octave_value_list _out;
+  octave_value_list *_outp=&_out;
+  octave_value _outv;
+  
+  if (!SWIG_check_num_args("mglParse_AllowSetSize",args.length(),2,2,0)) {
+    SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(args(0), &argp1,SWIGTYPE_p_mglParse, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglParse_AllowSetSize" "', argument " "1"" of type '" "mglParse *""'"); 
+  }
+  arg1 = (mglParse *)(argp1);
+  ecode2 = SWIG_AsVal_bool(args(1), &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglParse_AllowSetSize" "', argument " "2"" of type '" "bool""'");
+  } 
+  arg2 = (bool)(val2);
+  (arg1)->AllowSetSize(arg2);
+  _outv = octave_value();
+  if (_outv.is_defined()) _outp = SWIG_Octave_AppendOutput(_outp, _outv);
+fail:
+  return _out;
+}
+
+
+static swig_octave_member swig_mglParse_members[] = {
+{"AddParam",_wrap_mglParse_AddParam,0,0,0,0},
+{"AddVar",_wrap_mglParse_AddVar,0,0,0,0},
+{"FindVar",_wrap_mglParse_FindVar,0,0,0,0},
+{"Parse",_wrap_mglParse_Parse,0,0,0,0},
+{"ScanFunc",_wrap_mglParse_ScanFunc,0,0,0,0},
+{"Execute",_wrap_mglParse_Execute,0,0,0,0},
+{"RestoreOnce",_wrap_mglParse_RestoreOnce,0,0,0,0},
+{"AllowSetSize",_wrap_mglParse_AllowSetSize,0,0,0,0},
+{0,0,0,0}
+};
+static const char *swig_mglParse_base_names[] = {0};
+static const swig_type_info *swig_mglParse_base[] = {0};
+static swig_octave_class _wrap_class_mglParse = {"mglParse", &SWIGTYPE_p_mglParse,0,_wrap_new_mglParse,0,_wrap_delete_mglParse,swig_mglParse_members,swig_mglParse_base_names,swig_mglParse_base };
+
+
+static const struct swig_octave_member swig_globals[] = {
+{"NaN",0,_wrap_NaN_get,_wrap_NaN_set,2,0},
+{"pi",0,_wrap_pi_get,_wrap_pi_set,2,0},
+{"mglPoint_x_set",_wrap_mglPoint_x_set,0,0,2,0},
+{"mglPoint_x_get",_wrap_mglPoint_x_get,0,0,2,0},
+{"mglPoint_y_set",_wrap_mglPoint_y_set,0,0,2,0},
+{"mglPoint_y_get",_wrap_mglPoint_y_get,0,0,2,0},
+{"mglPoint_z_set",_wrap_mglPoint_z_set,0,0,2,0},
+{"mglPoint_z_get",_wrap_mglPoint_z_get,0,0,2,0},
+{"new_mglPoint",_wrap_new_mglPoint,0,0,2,_wrap_new_mglPoint_texinfo},
+{"delete_mglPoint",_wrap_delete_mglPoint,0,0,2,_wrap_delete_mglPoint_texinfo},
+{"delete_mglData",_wrap_delete_mglData,0,0,2,_wrap_delete_mglData_texinfo},
+{"new_mglData",_wrap_new_mglData,0,0,2,_wrap_new_mglData_texinfo},
+{"mglData_Self",_wrap_mglData_Self,0,0,2,_wrap_mglData_Self_texinfo},
+{"mglData_Rearrange",_wrap_mglData_Rearrange,0,0,2,_wrap_mglData_Rearrange_texinfo},
+{"mglData_Set",_wrap_mglData_Set,0,0,2,_wrap_mglData_Set_texinfo},
+{"mglData_Read",_wrap_mglData_Read,0,0,2,_wrap_mglData_Read_texinfo},
+{"mglData_Save",_wrap_mglData_Save,0,0,2,_wrap_mglData_Save_texinfo},
+{"mglData_Export",_wrap_mglData_Export,0,0,2,_wrap_mglData_Export_texinfo},
+{"mglData_Import",_wrap_mglData_Import,0,0,2,_wrap_mglData_Import_texinfo},
+{"mglData_ReadMat",_wrap_mglData_ReadMat,0,0,2,_wrap_mglData_ReadMat_texinfo},
+{"mglData_Create",_wrap_mglData_Create,0,0,2,_wrap_mglData_Create_texinfo},
+{"mglData_Extend",_wrap_mglData_Extend,0,0,2,_wrap_mglData_Extend_texinfo},
+{"mglData_Transpose",_wrap_mglData_Transpose,0,0,2,_wrap_mglData_Transpose_texinfo},
+{"mglData_Norm",_wrap_mglData_Norm,0,0,2,_wrap_mglData_Norm_texinfo},
+{"mglData_NormSl",_wrap_mglData_NormSl,0,0,2,_wrap_mglData_NormSl_texinfo},
+{"mglData_Put",_wrap_mglData_Put,0,0,2,_wrap_mglData_Put_texinfo},
+{"mglData_Modify",_wrap_mglData_Modify,0,0,2,_wrap_mglData_Modify_texinfo},
+{"mglData_Fill",_wrap_mglData_Fill,0,0,2,_wrap_mglData_Fill_texinfo},
+{"mglData_FillSample",_wrap_mglData_FillSample,0,0,2,_wrap_mglData_FillSample_texinfo},
+{"mglData_Column",_wrap_mglData_Column,0,0,2,_wrap_mglData_Column_texinfo},
+{"mglData_SetColumnId",_wrap_mglData_SetColumnId,0,0,2,_wrap_mglData_SetColumnId_texinfo},
+{"mglData_Squeeze",_wrap_mglData_Squeeze,0,0,2,_wrap_mglData_Squeeze_texinfo},
+{"mglData_Crop",_wrap_mglData_Crop,0,0,2,_wrap_mglData_Crop_texinfo},
+{"mglData_Envelop",_wrap_mglData_Envelop,0,0,2,_wrap_mglData_Envelop_texinfo},
+{"mglData_Sew",_wrap_mglData_Sew,0,0,2,_wrap_mglData_Sew_texinfo},
+{"mglData_Smooth",_wrap_mglData_Smooth,0,0,2,_wrap_mglData_Smooth_texinfo},
+{"mglData_SubData",_wrap_mglData_SubData,0,0,2,_wrap_mglData_SubData_texinfo},
+{"mglData_Hist",_wrap_mglData_Hist,0,0,2,_wrap_mglData_Hist_texinfo},
+{"mglData_Sum",_wrap_mglData_Sum,0,0,2,_wrap_mglData_Sum_texinfo},
+{"mglData_Max",_wrap_mglData_Max,0,0,2,_wrap_mglData_Max_texinfo},
+{"mglData_Min",_wrap_mglData_Min,0,0,2,_wrap_mglData_Min_texinfo},
+{"mglData_Resize",_wrap_mglData_Resize,0,0,2,_wrap_mglData_Resize_texinfo},
+{"mglData_Combine",_wrap_mglData_Combine,0,0,2,_wrap_mglData_Combine_texinfo},
+{"mglData_Evaluate",_wrap_mglData_Evaluate,0,0,2,_wrap_mglData_Evaluate_texinfo},
+{"mglData_CumSum",_wrap_mglData_CumSum,0,0,2,_wrap_mglData_CumSum_texinfo},
+{"mglData_Integral",_wrap_mglData_Integral,0,0,2,_wrap_mglData_Integral_texinfo},
+{"mglData_Diff",_wrap_mglData_Diff,0,0,2,_wrap_mglData_Diff_texinfo},
+{"mglData_Diff2",_wrap_mglData_Diff2,0,0,2,_wrap_mglData_Diff2_texinfo},
+{"mglData_Swap",_wrap_mglData_Swap,0,0,2,_wrap_mglData_Swap_texinfo},
+{"mglData_Roll",_wrap_mglData_Roll,0,0,2,_wrap_mglData_Roll_texinfo},
+{"mglData_Mirror",_wrap_mglData_Mirror,0,0,2,_wrap_mglData_Mirror_texinfo},
+{"mglData_Hankel",_wrap_mglData_Hankel,0,0,2,_wrap_mglData_Hankel_texinfo},
+{"mglData_SinFFT",_wrap_mglData_SinFFT,0,0,2,_wrap_mglData_SinFFT_texinfo},
+{"mglData_CosFFT",_wrap_mglData_CosFFT,0,0,2,_wrap_mglData_CosFFT_texinfo},
+{"mglData_Spline",_wrap_mglData_Spline,0,0,2,_wrap_mglData_Spline_texinfo},
+{"mglData_Spline1",_wrap_mglData_Spline1,0,0,2,_wrap_mglData_Spline1_texinfo},
+{"mglData_Linear",_wrap_mglData_Linear,0,0,2,_wrap_mglData_Linear_texinfo},
+{"mglData_Linear1",_wrap_mglData_Linear1,0,0,2,_wrap_mglData_Linear1_texinfo},
+{"mglData_Insert",_wrap_mglData_Insert,0,0,2,_wrap_mglData_Insert_texinfo},
+{"mglData_Delete",_wrap_mglData_Delete,0,0,2,_wrap_mglData_Delete_texinfo},
+{"mglData_Last",_wrap_mglData_Last,0,0,2,_wrap_mglData_Last_texinfo},
+{"mglData_Find",_wrap_mglData_Find,0,0,2,_wrap_mglData_Find_texinfo},
+{"mglData_FindAny",_wrap_mglData_FindAny,0,0,2,_wrap_mglData_FindAny_texinfo},
+{"mglData_Maximal",_wrap_mglData_Maximal,0,0,2,_wrap_mglData_Maximal_texinfo},
+{"mglData_Minimal",_wrap_mglData_Minimal,0,0,2,_wrap_mglData_Minimal_texinfo},
+{"mglData_Momentum",_wrap_mglData_Momentum,0,0,2,_wrap_mglData_Momentum_texinfo},
+{"mglData_v",_wrap_mglData_v,0,0,2,_wrap_mglData_v_texinfo},
+{"mglData_GetVal",_wrap_mglData_GetVal,0,0,2,_wrap_mglData_GetVal_texinfo},
+{"mglData_SetVal",_wrap_mglData_SetVal,0,0,2,_wrap_mglData_SetVal_texinfo},
+{"mglData_GetNx",_wrap_mglData_GetNx,0,0,2,_wrap_mglData_GetNx_texinfo},
+{"mglData_GetNy",_wrap_mglData_GetNy,0,0,2,_wrap_mglData_GetNy_texinfo},
+{"mglData_GetNz",_wrap_mglData_GetNz,0,0,2,_wrap_mglData_GetNz_texinfo},
+{"mglData_GetData",_wrap_mglData_GetData,0,0,2,_wrap_mglData_GetData_texinfo},
+{"mglData___getitem__",_wrap_mglData___getitem__,0,0,2,_wrap_mglData___getitem___texinfo},
+{"mglData___paren",_wrap_mglData___paren,0,0,2,_wrap_mglData___paren_texinfo},
+{"mglData___setitem__",_wrap_mglData___setitem__,0,0,2,_wrap_mglData___setitem___texinfo},
+{"mglData___paren_asgn",_wrap_mglData___paren_asgn,0,0,2,_wrap_mglData___paren_asgn_texinfo},
+{"new_mglGraph",_wrap_new_mglGraph,0,0,2,_wrap_new_mglGraph_texinfo},
+{"delete_mglGraph",_wrap_delete_mglGraph,0,0,2,_wrap_delete_mglGraph_texinfo},
+{"mglGraph_Self",_wrap_mglGraph_Self,0,0,2,_wrap_mglGraph_Self_texinfo},
+{"mglGraph_GetWarn",_wrap_mglGraph_GetWarn,0,0,2,_wrap_mglGraph_GetWarn_texinfo},
+{"mglGraph_DefaultPlotParam",_wrap_mglGraph_DefaultPlotParam,0,0,2,_wrap_mglGraph_DefaultPlotParam_texinfo},
+{"mglGraph_SetPalColor",_wrap_mglGraph_SetPalColor,0,0,2,_wrap_mglGraph_SetPalColor_texinfo},
+{"mglGraph_SetPalNum",_wrap_mglGraph_SetPalNum,0,0,2,_wrap_mglGraph_SetPalNum_texinfo},
+{"mglGraph_SetPalette",_wrap_mglGraph_SetPalette,0,0,2,_wrap_mglGraph_SetPalette_texinfo},
+{"mglGraph_SetScheme",_wrap_mglGraph_SetScheme,0,0,2,_wrap_mglGraph_SetScheme_texinfo},
+{"mglGraph_SetRotatedText",_wrap_mglGraph_SetRotatedText,0,0,2,_wrap_mglGraph_SetRotatedText_texinfo},
+{"mglGraph_SetCut",_wrap_mglGraph_SetCut,0,0,2,_wrap_mglGraph_SetCut_texinfo},
+{"mglGraph_SetCutBox",_wrap_mglGraph_SetCutBox,0,0,2,_wrap_mglGraph_SetCutBox_texinfo},
+{"mglGraph_SetTickLen",_wrap_mglGraph_SetTickLen,0,0,2,_wrap_mglGraph_SetTickLen_texinfo},
+{"mglGraph_SetTickStl",_wrap_mglGraph_SetTickStl,0,0,2,_wrap_mglGraph_SetTickStl_texinfo},
+{"mglGraph_SetBaseLineWidth",_wrap_mglGraph_SetBaseLineWidth,0,0,2,_wrap_mglGraph_SetBaseLineWidth_texinfo},
+{"mglGraph_SetSize",_wrap_mglGraph_SetSize,0,0,2,_wrap_mglGraph_SetSize_texinfo},
+{"mglGraph_SetBarWidth",_wrap_mglGraph_SetBarWidth,0,0,2,_wrap_mglGraph_SetBarWidth_texinfo},
+{"mglGraph_SetMarkSize",_wrap_mglGraph_SetMarkSize,0,0,2,_wrap_mglGraph_SetMarkSize_texinfo},
+{"mglGraph_SetArrowSize",_wrap_mglGraph_SetArrowSize,0,0,2,_wrap_mglGraph_SetArrowSize_texinfo},
+{"mglGraph_SetFontSize",_wrap_mglGraph_SetFontSize,0,0,2,_wrap_mglGraph_SetFontSize_texinfo},
+{"mglGraph_SetFontDef",_wrap_mglGraph_SetFontDef,0,0,2,_wrap_mglGraph_SetFontDef_texinfo},
+{"mglGraph_SetAlphaDef",_wrap_mglGraph_SetAlphaDef,0,0,2,_wrap_mglGraph_SetAlphaDef_texinfo},
+{"mglGraph_SetAxialDir",_wrap_mglGraph_SetAxialDir,0,0,2,_wrap_mglGraph_SetAxialDir_texinfo},
+{"mglGraph_SetMeshNum",_wrap_mglGraph_SetMeshNum,0,0,2,_wrap_mglGraph_SetMeshNum_texinfo},
+{"mglGraph_Zoom",_wrap_mglGraph_Zoom,0,0,2,_wrap_mglGraph_Zoom_texinfo},
+{"mglGraph_SetPlotFactor",_wrap_mglGraph_SetPlotFactor,0,0,2,_wrap_mglGraph_SetPlotFactor_texinfo},
+{"mglGraph_SetDrawFace",_wrap_mglGraph_SetDrawFace,0,0,2,_wrap_mglGraph_SetDrawFace_texinfo},
+{"mglGraph_SetLegendBox",_wrap_mglGraph_SetLegendBox,0,0,2,_wrap_mglGraph_SetLegendBox_texinfo},
+{"mglGraph_SetLegendMarks",_wrap_mglGraph_SetLegendMarks,0,0,2,_wrap_mglGraph_SetLegendMarks_texinfo},
+{"mglGraph_LoadFont",_wrap_mglGraph_LoadFont,0,0,2,_wrap_mglGraph_LoadFont_texinfo},
+{"mglGraph_CopyFont",_wrap_mglGraph_CopyFont,0,0,2,_wrap_mglGraph_CopyFont_texinfo},
+{"mglGraph_RestoreFont",_wrap_mglGraph_RestoreFont,0,0,2,_wrap_mglGraph_RestoreFont_texinfo},
+{"mglGraph_ShowImage",_wrap_mglGraph_ShowImage,0,0,2,_wrap_mglGraph_ShowImage_texinfo},
+{"mglGraph_WriteFrame",_wrap_mglGraph_WriteFrame,0,0,2,_wrap_mglGraph_WriteFrame_texinfo},
+{"mglGraph_WriteIDTF",_wrap_mglGraph_WriteIDTF,0,0,2,_wrap_mglGraph_WriteIDTF_texinfo},
+{"mglGraph_WriteJPEG",_wrap_mglGraph_WriteJPEG,0,0,2,_wrap_mglGraph_WriteJPEG_texinfo},
+{"mglGraph_WritePNG",_wrap_mglGraph_WritePNG,0,0,2,_wrap_mglGraph_WritePNG_texinfo},
+{"mglGraph_WriteEPS",_wrap_mglGraph_WriteEPS,0,0,2,_wrap_mglGraph_WriteEPS_texinfo},
+{"mglGraph_WriteSVG",_wrap_mglGraph_WriteSVG,0,0,2,_wrap_mglGraph_WriteSVG_texinfo},
+{"mglGraph_WriteGIF",_wrap_mglGraph_WriteGIF,0,0,2,_wrap_mglGraph_WriteGIF_texinfo},
+{"mglGraph_StartGIF",_wrap_mglGraph_StartGIF,0,0,2,_wrap_mglGraph_StartGIF_texinfo},
+{"mglGraph_CloseGIF",_wrap_mglGraph_CloseGIF,0,0,2,_wrap_mglGraph_CloseGIF_texinfo},
+{"mglGraph_NewFrame",_wrap_mglGraph_NewFrame,0,0,2,_wrap_mglGraph_NewFrame_texinfo},
+{"mglGraph_EndFrame",_wrap_mglGraph_EndFrame,0,0,2,_wrap_mglGraph_EndFrame_texinfo},
+{"mglGraph_GetNumFrame",_wrap_mglGraph_GetNumFrame,0,0,2,_wrap_mglGraph_GetNumFrame_texinfo},
+{"mglGraph_ResetFrames",_wrap_mglGraph_ResetFrames,0,0,2,_wrap_mglGraph_ResetFrames_texinfo},
+{"mglGraph_Flush",_wrap_mglGraph_Flush,0,0,2,_wrap_mglGraph_Flush_texinfo},
+{"mglGraph_GetRGB",_wrap_mglGraph_GetRGB,0,0,2,_wrap_mglGraph_GetRGB_texinfo},
+{"mglGraph_GetRGBA",_wrap_mglGraph_GetRGBA,0,0,2,_wrap_mglGraph_GetRGBA_texinfo},
+{"mglGraph_GetBGRN",_wrap_mglGraph_GetBGRN,0,0,2,_wrap_mglGraph_GetBGRN_texinfo},
+{"mglGraph_GetWidth",_wrap_mglGraph_GetWidth,0,0,2,_wrap_mglGraph_GetWidth_texinfo},
+{"mglGraph_GetHeight",_wrap_mglGraph_GetHeight,0,0,2,_wrap_mglGraph_GetHeight_texinfo},
+{"mglGraph_CalcXYZ",_wrap_mglGraph_CalcXYZ,0,0,2,_wrap_mglGraph_CalcXYZ_texinfo},
+{"mglGraph_CalcScr",_wrap_mglGraph_CalcScr,0,0,2,_wrap_mglGraph_CalcScr_texinfo},
+{"mglGraph_SetTranspType",_wrap_mglGraph_SetTranspType,0,0,2,_wrap_mglGraph_SetTranspType_texinfo},
+{"mglGraph_SetTransparent",_wrap_mglGraph_SetTransparent,0,0,2,_wrap_mglGraph_SetTransparent_texinfo},
+{"mglGraph_Alpha",_wrap_mglGraph_Alpha,0,0,2,_wrap_mglGraph_Alpha_texinfo},
+{"mglGraph_Fog",_wrap_mglGraph_Fog,0,0,2,_wrap_mglGraph_Fog_texinfo},
+{"mglGraph_Light",_wrap_mglGraph_Light,0,0,2,_wrap_mglGraph_Light_texinfo},
+{"mglGraph_AddLight",_wrap_mglGraph_AddLight,0,0,2,_wrap_mglGraph_AddLight_texinfo},
+{"mglGraph_SetAmbient",_wrap_mglGraph_SetAmbient,0,0,2,_wrap_mglGraph_SetAmbient_texinfo},
+{"mglGraph_Identity",_wrap_mglGraph_Identity,0,0,2,_wrap_mglGraph_Identity_texinfo},
+{"mglGraph_Clf",_wrap_mglGraph_Clf,0,0,2,_wrap_mglGraph_Clf_texinfo},
+{"mglGraph_SubPlot",_wrap_mglGraph_SubPlot,0,0,2,_wrap_mglGraph_SubPlot_texinfo},
+{"mglGraph_InPlot",_wrap_mglGraph_InPlot,0,0,2,_wrap_mglGraph_InPlot_texinfo},
+{"mglGraph_ColumnPlot",_wrap_mglGraph_ColumnPlot,0,0,2,_wrap_mglGraph_ColumnPlot_texinfo},
+{"mglGraph_StickPlot",_wrap_mglGraph_StickPlot,0,0,2,_wrap_mglGraph_StickPlot_texinfo},
+{"mglGraph_Aspect",_wrap_mglGraph_Aspect,0,0,2,_wrap_mglGraph_Aspect_texinfo},
+{"mglGraph_Rotate",_wrap_mglGraph_Rotate,0,0,2,_wrap_mglGraph_Rotate_texinfo},
+{"mglGraph_RotateN",_wrap_mglGraph_RotateN,0,0,2,_wrap_mglGraph_RotateN_texinfo},
+{"mglGraph_Perspective",_wrap_mglGraph_Perspective,0,0,2,_wrap_mglGraph_Perspective_texinfo},
+{"mglGraph_SetTicks",_wrap_mglGraph_SetTicks,0,0,2,_wrap_mglGraph_SetTicks_texinfo},
+{"mglGraph_AdjustTicks",_wrap_mglGraph_AdjustTicks,0,0,2,_wrap_mglGraph_AdjustTicks_texinfo},
+{"mglGraph_SetRanges",_wrap_mglGraph_SetRanges,0,0,2,_wrap_mglGraph_SetRanges_texinfo},
+{"mglGraph_SetAutoRanges",_wrap_mglGraph_SetAutoRanges,0,0,2,_wrap_mglGraph_SetAutoRanges_texinfo},
+{"mglGraph_SetOrigin",_wrap_mglGraph_SetOrigin,0,0,2,_wrap_mglGraph_SetOrigin_texinfo},
+{"mglGraph_SetCRange",_wrap_mglGraph_SetCRange,0,0,2,_wrap_mglGraph_SetCRange_texinfo},
+{"mglGraph_SetXRange",_wrap_mglGraph_SetXRange,0,0,2,_wrap_mglGraph_SetXRange_texinfo},
+{"mglGraph_SetYRange",_wrap_mglGraph_SetYRange,0,0,2,_wrap_mglGraph_SetYRange_texinfo},
+{"mglGraph_SetZRange",_wrap_mglGraph_SetZRange,0,0,2,_wrap_mglGraph_SetZRange_texinfo},
+{"mglGraph_SetFunc",_wrap_mglGraph_SetFunc,0,0,2,_wrap_mglGraph_SetFunc_texinfo},
+{"mglGraph_SetCoor",_wrap_mglGraph_SetCoor,0,0,2,_wrap_mglGraph_SetCoor_texinfo},
+{"mglGraph_Ternary",_wrap_mglGraph_Ternary,0,0,2,_wrap_mglGraph_Ternary_texinfo},
+{"mglGraph_CutOff",_wrap_mglGraph_CutOff,0,0,2,_wrap_mglGraph_CutOff_texinfo},
+{"mglGraph_Box",_wrap_mglGraph_Box,0,0,2,_wrap_mglGraph_Box_texinfo},
+{"mglGraph_Axis",_wrap_mglGraph_Axis,0,0,2,_wrap_mglGraph_Axis_texinfo},
+{"mglGraph_Label",_wrap_mglGraph_Label,0,0,2,_wrap_mglGraph_Label_texinfo},
+{"mglGraph_SetTuneTicks",_wrap_mglGraph_SetTuneTicks,0,0,2,_wrap_mglGraph_SetTuneTicks_texinfo},
+{"mglGraph_SetXTT",_wrap_mglGraph_SetXTT,0,0,2,_wrap_mglGraph_SetXTT_texinfo},
+{"mglGraph_SetYTT",_wrap_mglGraph_SetYTT,0,0,2,_wrap_mglGraph_SetYTT_texinfo},
+{"mglGraph_SetZTT",_wrap_mglGraph_SetZTT,0,0,2,_wrap_mglGraph_SetZTT_texinfo},
+{"mglGraph_SetCTT",_wrap_mglGraph_SetCTT,0,0,2,_wrap_mglGraph_SetCTT_texinfo},
+{"mglGraph_Ball",_wrap_mglGraph_Ball,0,0,2,_wrap_mglGraph_Ball_texinfo},
+{"mglGraph_Line",_wrap_mglGraph_Line,0,0,2,_wrap_mglGraph_Line_texinfo},
+{"mglGraph_FaceX",_wrap_mglGraph_FaceX,0,0,2,_wrap_mglGraph_FaceX_texinfo},
+{"mglGraph_FaceY",_wrap_mglGraph_FaceY,0,0,2,_wrap_mglGraph_FaceY_texinfo},
+{"mglGraph_FaceZ",_wrap_mglGraph_FaceZ,0,0,2,_wrap_mglGraph_FaceZ_texinfo},
+{"mglGraph_Curve",_wrap_mglGraph_Curve,0,0,2,_wrap_mglGraph_Curve_texinfo},
+{"mglGraph_Drop",_wrap_mglGraph_Drop,0,0,2,_wrap_mglGraph_Drop_texinfo},
+{"mglGraph_Sphere",_wrap_mglGraph_Sphere,0,0,2,_wrap_mglGraph_Sphere_texinfo},
+{"mglGraph_Cone",_wrap_mglGraph_Cone,0,0,2,_wrap_mglGraph_Cone_texinfo},
+{"mglGraph_Putsw",_wrap_mglGraph_Putsw,0,0,2,_wrap_mglGraph_Putsw_texinfo},
+{"mglGraph_Puts",_wrap_mglGraph_Puts,0,0,2,_wrap_mglGraph_Puts_texinfo},
+{"mglGraph_Title",_wrap_mglGraph_Title,0,0,2,_wrap_mglGraph_Title_texinfo},
+{"mglGraph_Colorbar",_wrap_mglGraph_Colorbar,0,0,2,_wrap_mglGraph_Colorbar_texinfo},
+{"mglGraph_SimplePlot",_wrap_mglGraph_SimplePlot,0,0,2,_wrap_mglGraph_SimplePlot_texinfo},
+{"mglGraph_AddLegend",_wrap_mglGraph_AddLegend,0,0,2,_wrap_mglGraph_AddLegend_texinfo},
+{"mglGraph_AddLegendw",_wrap_mglGraph_AddLegendw,0,0,2,_wrap_mglGraph_AddLegendw_texinfo},
+{"mglGraph_ClearLegend",_wrap_mglGraph_ClearLegend,0,0,2,_wrap_mglGraph_ClearLegend_texinfo},
+{"mglGraph_Legend",_wrap_mglGraph_Legend,0,0,2,_wrap_mglGraph_Legend_texinfo},
+{"mglGraph_Plot",_wrap_mglGraph_Plot,0,0,2,_wrap_mglGraph_Plot_texinfo},
+{"mglGraph_BoxPlot",_wrap_mglGraph_BoxPlot,0,0,2,_wrap_mglGraph_BoxPlot_texinfo},
+{"mglGraph_Radar",_wrap_mglGraph_Radar,0,0,2,_wrap_mglGraph_Radar_texinfo},
+{"mglGraph_Tens",_wrap_mglGraph_Tens,0,0,2,_wrap_mglGraph_Tens_texinfo},
+{"mglGraph_Area",_wrap_mglGraph_Area,0,0,2,_wrap_mglGraph_Area_texinfo},
+{"mglGraph_Stem",_wrap_mglGraph_Stem,0,0,2,_wrap_mglGraph_Stem_texinfo},
+{"mglGraph_Step",_wrap_mglGraph_Step,0,0,2,_wrap_mglGraph_Step_texinfo},
+{"mglGraph_Bars",_wrap_mglGraph_Bars,0,0,2,_wrap_mglGraph_Bars_texinfo},
+{"mglGraph_Barh",_wrap_mglGraph_Barh,0,0,2,_wrap_mglGraph_Barh_texinfo},
+{"mglGraph_Region",_wrap_mglGraph_Region,0,0,2,_wrap_mglGraph_Region_texinfo},
+{"mglGraph_Torus",_wrap_mglGraph_Torus,0,0,2,_wrap_mglGraph_Torus_texinfo},
+{"mglGraph_Text",_wrap_mglGraph_Text,0,0,2,_wrap_mglGraph_Text_texinfo},
+{"mglGraph_Chart",_wrap_mglGraph_Chart,0,0,2,_wrap_mglGraph_Chart_texinfo},
+{"mglGraph_Error",_wrap_mglGraph_Error,0,0,2,_wrap_mglGraph_Error_texinfo},
+{"mglGraph_Mark",_wrap_mglGraph_Mark,0,0,2,_wrap_mglGraph_Mark_texinfo},
+{"mglGraph_TextMark",_wrap_mglGraph_TextMark,0,0,2,_wrap_mglGraph_TextMark_texinfo},
+{"mglGraph_Tube",_wrap_mglGraph_Tube,0,0,2,_wrap_mglGraph_Tube_texinfo},
+{"mglGraph_Grid",_wrap_mglGraph_Grid,0,0,2,_wrap_mglGraph_Grid_texinfo},
+{"mglGraph_Mesh",_wrap_mglGraph_Mesh,0,0,2,_wrap_mglGraph_Mesh_texinfo},
+{"mglGraph_Fall",_wrap_mglGraph_Fall,0,0,2,_wrap_mglGraph_Fall_texinfo},
+{"mglGraph_Belt",_wrap_mglGraph_Belt,0,0,2,_wrap_mglGraph_Belt_texinfo},
+{"mglGraph_Surf",_wrap_mglGraph_Surf,0,0,2,_wrap_mglGraph_Surf_texinfo},
+{"mglGraph_Tile",_wrap_mglGraph_Tile,0,0,2,_wrap_mglGraph_Tile_texinfo},
+{"mglGraph_TileS",_wrap_mglGraph_TileS,0,0,2,_wrap_mglGraph_TileS_texinfo},
+{"mglGraph_Dens",_wrap_mglGraph_Dens,0,0,2,_wrap_mglGraph_Dens_texinfo},
+{"mglGraph_Boxs",_wrap_mglGraph_Boxs,0,0,2,_wrap_mglGraph_Boxs_texinfo},
+{"mglGraph_Cont",_wrap_mglGraph_Cont,0,0,2,_wrap_mglGraph_Cont_texinfo},
+{"mglGraph_ContF",_wrap_mglGraph_ContF,0,0,2,_wrap_mglGraph_ContF_texinfo},
+{"mglGraph_ContD",_wrap_mglGraph_ContD,0,0,2,_wrap_mglGraph_ContD_texinfo},
+{"mglGraph_Axial",_wrap_mglGraph_Axial,0,0,2,_wrap_mglGraph_Axial_texinfo},
+{"mglGraph_SurfC",_wrap_mglGraph_SurfC,0,0,2,_wrap_mglGraph_SurfC_texinfo},
+{"mglGraph_SurfA",_wrap_mglGraph_SurfA,0,0,2,_wrap_mglGraph_SurfA_texinfo},
+{"mglGraph_STFA",_wrap_mglGraph_STFA,0,0,2,_wrap_mglGraph_STFA_texinfo},
+{"mglGraph_Dew",_wrap_mglGraph_Dew,0,0,2,_wrap_mglGraph_Dew_texinfo},
+{"mglGraph_Traj",_wrap_mglGraph_Traj,0,0,2,_wrap_mglGraph_Traj_texinfo},
+{"mglGraph_Vect",_wrap_mglGraph_Vect,0,0,2,_wrap_mglGraph_Vect_texinfo},
+{"mglGraph_VectL",_wrap_mglGraph_VectL,0,0,2,_wrap_mglGraph_VectL_texinfo},
+{"mglGraph_VectC",_wrap_mglGraph_VectC,0,0,2,_wrap_mglGraph_VectC_texinfo},
+{"mglGraph_Map",_wrap_mglGraph_Map,0,0,2,_wrap_mglGraph_Map_texinfo},
+{"mglGraph_Surf3A",_wrap_mglGraph_Surf3A,0,0,2,_wrap_mglGraph_Surf3A_texinfo},
+{"mglGraph_Surf3C",_wrap_mglGraph_Surf3C,0,0,2,_wrap_mglGraph_Surf3C_texinfo},
+{"mglGraph_Flow",_wrap_mglGraph_Flow,0,0,2,_wrap_mglGraph_Flow_texinfo},
+{"mglGraph_FlowP",_wrap_mglGraph_FlowP,0,0,2,_wrap_mglGraph_FlowP_texinfo},
+{"mglGraph_Grad",_wrap_mglGraph_Grad,0,0,2,_wrap_mglGraph_Grad_texinfo},
+{"mglGraph_Pipe",_wrap_mglGraph_Pipe,0,0,2,_wrap_mglGraph_Pipe_texinfo},
+{"mglGraph_Grid3",_wrap_mglGraph_Grid3,0,0,2,_wrap_mglGraph_Grid3_texinfo},
+{"mglGraph_GridA",_wrap_mglGraph_GridA,0,0,2,_wrap_mglGraph_GridA_texinfo},
+{"mglGraph_Dens3",_wrap_mglGraph_Dens3,0,0,2,_wrap_mglGraph_Dens3_texinfo},
+{"mglGraph_DensA",_wrap_mglGraph_DensA,0,0,2,_wrap_mglGraph_DensA_texinfo},
+{"mglGraph_Surf3",_wrap_mglGraph_Surf3,0,0,2,_wrap_mglGraph_Surf3_texinfo},
+{"mglGraph_Cloud",_wrap_mglGraph_Cloud,0,0,2,_wrap_mglGraph_Cloud_texinfo},
+{"mglGraph_Cont3",_wrap_mglGraph_Cont3,0,0,2,_wrap_mglGraph_Cont3_texinfo},
+{"mglGraph_ContA",_wrap_mglGraph_ContA,0,0,2,_wrap_mglGraph_ContA_texinfo},
+{"mglGraph_ContF3",_wrap_mglGraph_ContF3,0,0,2,_wrap_mglGraph_ContF3_texinfo},
+{"mglGraph_ContFA",_wrap_mglGraph_ContFA,0,0,2,_wrap_mglGraph_ContFA_texinfo},
+{"mglGraph_Beam",_wrap_mglGraph_Beam,0,0,2,_wrap_mglGraph_Beam_texinfo},
+{"mglGraph_TriPlot",_wrap_mglGraph_TriPlot,0,0,2,_wrap_mglGraph_TriPlot_texinfo},
+{"mglGraph_QuadPlot",_wrap_mglGraph_QuadPlot,0,0,2,_wrap_mglGraph_QuadPlot_texinfo},
+{"mglGraph_TriCont",_wrap_mglGraph_TriCont,0,0,2,_wrap_mglGraph_TriCont_texinfo},
+{"mglGraph_TriContV",_wrap_mglGraph_TriContV,0,0,2,_wrap_mglGraph_TriContV_texinfo},
+{"mglGraph_Dots",_wrap_mglGraph_Dots,0,0,2,_wrap_mglGraph_Dots_texinfo},
+{"mglGraph_Crust",_wrap_mglGraph_Crust,0,0,2,_wrap_mglGraph_Crust_texinfo},
+{"mglGraph_DensX",_wrap_mglGraph_DensX,0,0,2,_wrap_mglGraph_DensX_texinfo},
+{"mglGraph_DensY",_wrap_mglGraph_DensY,0,0,2,_wrap_mglGraph_DensY_texinfo},
+{"mglGraph_DensZ",_wrap_mglGraph_DensZ,0,0,2,_wrap_mglGraph_DensZ_texinfo},
+{"mglGraph_ContX",_wrap_mglGraph_ContX,0,0,2,_wrap_mglGraph_ContX_texinfo},
+{"mglGraph_ContY",_wrap_mglGraph_ContY,0,0,2,_wrap_mglGraph_ContY_texinfo},
+{"mglGraph_ContZ",_wrap_mglGraph_ContZ,0,0,2,_wrap_mglGraph_ContZ_texinfo},
+{"mglGraph_ContFX",_wrap_mglGraph_ContFX,0,0,2,_wrap_mglGraph_ContFX_texinfo},
+{"mglGraph_ContFY",_wrap_mglGraph_ContFY,0,0,2,_wrap_mglGraph_ContFY_texinfo},
+{"mglGraph_ContFZ",_wrap_mglGraph_ContFZ,0,0,2,_wrap_mglGraph_ContFZ_texinfo},
+{"mglGraph_Hist",_wrap_mglGraph_Hist,0,0,2,_wrap_mglGraph_Hist_texinfo},
+{"mglGraph_Fit2",_wrap_mglGraph_Fit2,0,0,2,_wrap_mglGraph_Fit2_texinfo},
+{"mglGraph_Fit3",_wrap_mglGraph_Fit3,0,0,2,_wrap_mglGraph_Fit3_texinfo},
+{"mglGraph_Fit",_wrap_mglGraph_Fit,0,0,2,_wrap_mglGraph_Fit_texinfo},
+{"mglGraph_FitS",_wrap_mglGraph_FitS,0,0,2,_wrap_mglGraph_FitS_texinfo},
+{"mglGraph_PutsFit",_wrap_mglGraph_PutsFit,0,0,2,_wrap_mglGraph_PutsFit_texinfo},
+{"mglGraph_GetFit",_wrap_mglGraph_GetFit,0,0,2,_wrap_mglGraph_GetFit_texinfo},
+{"mglGraph_PDE",_wrap_mglGraph_PDE,0,0,2,_wrap_mglGraph_PDE_texinfo},
+{"mglGraph_Fill",_wrap_mglGraph_Fill,0,0,2,_wrap_mglGraph_Fill_texinfo},
+{"new_mglParse",_wrap_new_mglParse,0,0,2,_wrap_new_mglParse_texinfo},
+{"delete_mglParse",_wrap_delete_mglParse,0,0,2,_wrap_delete_mglParse_texinfo},
+{"mglParse_AddParam",_wrap_mglParse_AddParam,0,0,2,_wrap_mglParse_AddParam_texinfo},
+{"mglParse_AddVar",_wrap_mglParse_AddVar,0,0,2,_wrap_mglParse_AddVar_texinfo},
+{"mglParse_FindVar",_wrap_mglParse_FindVar,0,0,2,_wrap_mglParse_FindVar_texinfo},
+{"mglParse_Parse",_wrap_mglParse_Parse,0,0,2,_wrap_mglParse_Parse_texinfo},
+{"mglParse_ScanFunc",_wrap_mglParse_ScanFunc,0,0,2,_wrap_mglParse_ScanFunc_texinfo},
+{"mglParse_Execute",_wrap_mglParse_Execute,0,0,2,_wrap_mglParse_Execute_texinfo},
+{"mglParse_RestoreOnce",_wrap_mglParse_RestoreOnce,0,0,2,_wrap_mglParse_RestoreOnce_texinfo},
+{"mglParse_AllowSetSize",_wrap_mglParse_AllowSetSize,0,0,2,_wrap_mglParse_AllowSetSize_texinfo},
+{0,0,0,0,0}
+};
+
+/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
+
+static swig_type_info _swigt__p_HMDT = {"_p_HMDT", "HMDT *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_HMGL = {"_p_HMGL", "HMGL *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_double = {"_p_double", "double *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_float = {"_p_float", "float *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_gsl_matrix = {"_p_gsl_matrix", "gsl_matrix *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_gsl_vector = {"_p_gsl_vector", "gsl_vector *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_int = {"_p_int", "int *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_mglData = {"_p_mglData", "mglData *", 0, 0, (void*)&_wrap_class_mglData, 0};
+static swig_type_info _swigt__p_mglGraph = {"_p_mglGraph", "mglGraph *", 0, 0, (void*)&_wrap_class_mglGraph, 0};
+static swig_type_info _swigt__p_mglParse = {"_p_mglParse", "mglParse *", 0, 0, (void*)&_wrap_class_mglParse, 0};
+static swig_type_info _swigt__p_mglPoint = {"_p_mglPoint", "mglPoint *", 0, 0, (void*)&_wrap_class_mglPoint, 0};
+static swig_type_info _swigt__p_mreal = {"_p_mreal", "mreal *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_p_double = {"_p_p_double", "double **", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_p_float = {"_p_p_float", "float **", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_p_p_double = {"_p_p_p_double", "double ***", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_p_p_float = {"_p_p_p_float", "float ***", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_wchar_t = {"_p_wchar_t", "wchar_t *", 0, 0, (void*)0, 0};
+
+static swig_type_info *swig_type_initial[] = {
+  &_swigt__p_HMDT,
+  &_swigt__p_HMGL,
+  &_swigt__p_char,
+  &_swigt__p_double,
+  &_swigt__p_float,
+  &_swigt__p_gsl_matrix,
+  &_swigt__p_gsl_vector,
+  &_swigt__p_int,
+  &_swigt__p_mglData,
+  &_swigt__p_mglGraph,
+  &_swigt__p_mglParse,
+  &_swigt__p_mglPoint,
+  &_swigt__p_mreal,
+  &_swigt__p_p_double,
+  &_swigt__p_p_float,
+  &_swigt__p_p_p_double,
+  &_swigt__p_p_p_float,
+  &_swigt__p_wchar_t,
+};
+
+static swig_cast_info _swigc__p_HMDT[] = {  {&_swigt__p_HMDT, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_HMGL[] = {  {&_swigt__p_HMGL, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_char[] = {  {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_double[] = {  {&_swigt__p_double, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_float[] = {  {&_swigt__p_float, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_gsl_matrix[] = {  {&_swigt__p_gsl_matrix, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_gsl_vector[] = {  {&_swigt__p_gsl_vector, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_int[] = {  {&_swigt__p_int, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_mglData[] = {  {&_swigt__p_mglData, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_mglGraph[] = {  {&_swigt__p_mglGraph, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_mglParse[] = {  {&_swigt__p_mglParse, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_mglPoint[] = {  {&_swigt__p_mglPoint, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_mreal[] = {  {&_swigt__p_mreal, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_p_double[] = {  {&_swigt__p_p_double, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_p_float[] = {  {&_swigt__p_p_float, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_p_p_double[] = {  {&_swigt__p_p_p_double, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_p_p_float[] = {  {&_swigt__p_p_p_float, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_wchar_t[] = {  {&_swigt__p_wchar_t, 0, 0, 0},{0, 0, 0, 0}};
+
+static swig_cast_info *swig_cast_initial[] = {
+  _swigc__p_HMDT,
+  _swigc__p_HMGL,
+  _swigc__p_char,
+  _swigc__p_double,
+  _swigc__p_float,
+  _swigc__p_gsl_matrix,
+  _swigc__p_gsl_vector,
+  _swigc__p_int,
+  _swigc__p_mglData,
+  _swigc__p_mglGraph,
+  _swigc__p_mglParse,
+  _swigc__p_mglPoint,
+  _swigc__p_mreal,
+  _swigc__p_p_double,
+  _swigc__p_p_float,
+  _swigc__p_p_p_double,
+  _swigc__p_p_p_float,
+  _swigc__p_wchar_t,
+};
+
+
+/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */
+
+/* -----------------------------------------------------------------------------
+ * Type initialization:
+ * This problem is tough by the requirement that no dynamic 
+ * memory is used. Also, since swig_type_info structures store pointers to 
+ * swig_cast_info structures and swig_cast_info structures store pointers back
+ * to swig_type_info structures, we need some lookup code at initialization. 
+ * The idea is that swig generates all the structures that are needed. 
+ * The runtime then collects these partially filled structures. 
+ * The SWIG_InitializeModule function takes these initial arrays out of 
+ * swig_module, and does all the lookup, filling in the swig_module.types
+ * array with the correct data and linking the correct swig_cast_info
+ * structures together.
+ *
+ * The generated swig_type_info structures are assigned staticly to an initial 
+ * array. We just loop through that array, and handle each type individually.
+ * First we lookup if this type has been already loaded, and if so, use the
+ * loaded structure instead of the generated one. Then we have to fill in the
+ * cast linked list. The cast data is initially stored in something like a
+ * two-dimensional array. Each row corresponds to a type (there are the same
+ * number of rows as there are in the swig_type_initial array). Each entry in
+ * a column is one of the swig_cast_info structures for that type.
+ * The cast_initial array is actually an array of arrays, because each row has
+ * a variable number of columns. So to actually build the cast linked list,
+ * we find the array of casts associated with the type, and loop through it 
+ * adding the casts to the list. The one last trick we need to do is making
+ * sure the type pointer in the swig_cast_info struct is correct.
+ *
+ * First off, we lookup the cast->type name to see if it is already loaded. 
+ * There are three cases to handle:
+ *  1) If the cast->type has already been loaded AND the type we are adding
+ *     casting info to has not been loaded (it is in this module), THEN we
+ *     replace the cast->type pointer with the type pointer that has already
+ *     been loaded.
+ *  2) If BOTH types (the one we are adding casting info to, and the 
+ *     cast->type) are loaded, THEN the cast info has already been loaded by
+ *     the previous module so we just ignore it.
+ *  3) Finally, if cast->type has not already been loaded, then we add that
+ *     swig_cast_info to the linked list (because the cast->type) pointer will
+ *     be correct.
+ * ----------------------------------------------------------------------------- */
+
+#ifdef __cplusplus
+extern "C" {
+#if 0
+} /* c-mode */
+#endif
+#endif
+
+#if 0
+#define SWIGRUNTIME_DEBUG
+#endif
+
+
+SWIGRUNTIME void
+SWIG_InitializeModule(void *clientdata) {
+  size_t i;
+  swig_module_info *module_head, *iter;
+  int found, init;
+
+  clientdata = clientdata;
+
+  /* check to see if the circular list has been setup, if not, set it up */
+  if (swig_module.next==0) {
+    /* Initialize the swig_module */
+    swig_module.type_initial = swig_type_initial;
+    swig_module.cast_initial = swig_cast_initial;
+    swig_module.next = &swig_module;
+    init = 1;
+  } else {
+    init = 0;
+  }
+
+  /* Try and load any already created modules */
+  module_head = SWIG_GetModule(clientdata);
+  if (!module_head) {
+    /* This is the first module loaded for this interpreter */
+    /* so set the swig module into the interpreter */
+    SWIG_SetModule(clientdata, &swig_module);
+    module_head = &swig_module;
+  } else {
+    /* the interpreter has loaded a SWIG module, but has it loaded this one? */
+    found=0;
+    iter=module_head;
+    do {
+      if (iter==&swig_module) {
+        found=1;
+        break;
+      }
+      iter=iter->next;
+    } while (iter!= module_head);
+
+    /* if the is found in the list, then all is done and we may leave */
+    if (found) return;
+    /* otherwise we must add out module into the list */
+    swig_module.next = module_head->next;
+    module_head->next = &swig_module;
+  }
+
+  /* When multiple interpeters are used, a module could have already been initialized in
+     a different interpreter, but not yet have a pointer in this interpreter.
+     In this case, we do not want to continue adding types... everything should be
+     set up already */
+  if (init == 0) return;
+
+  /* Now work on filling in swig_module.types */
+#ifdef SWIGRUNTIME_DEBUG
+  printf("SWIG_InitializeModule: size %d\n", swig_module.size);
+#endif
+  for (i = 0; i < swig_module.size; ++i) {
+    swig_type_info *type = 0;
+    swig_type_info *ret;
+    swig_cast_info *cast;
+  
+#ifdef SWIGRUNTIME_DEBUG
+    printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
+#endif
+
+    /* if there is another module already loaded */
+    if (swig_module.next != &swig_module) {
+      type = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, swig_module.type_initial[i]->name);
+    }
+    if (type) {
+      /* Overwrite clientdata field */
+#ifdef SWIGRUNTIME_DEBUG
+      printf("SWIG_InitializeModule: found type %s\n", type->name);
+#endif
+      if (swig_module.type_initial[i]->clientdata) {
+	type->clientdata = swig_module.type_initial[i]->clientdata;
+#ifdef SWIGRUNTIME_DEBUG
+      printf("SWIG_InitializeModule: found and overwrite type %s \n", type->name);
+#endif
+      }
+    } else {
+      type = swig_module.type_initial[i];
+    }
+
+    /* Insert casting types */
+    cast = swig_module.cast_initial[i];
+    while (cast->type) {
+    
+      /* Don't need to add information already in the list */
+      ret = 0;
+#ifdef SWIGRUNTIME_DEBUG
+      printf("SWIG_InitializeModule: look cast %s\n", cast->type->name);
+#endif
+      if (swig_module.next != &swig_module) {
+        ret = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, cast->type->name);
+#ifdef SWIGRUNTIME_DEBUG
+	if (ret) printf("SWIG_InitializeModule: found cast %s\n", ret->name);
+#endif
+      }
+      if (ret) {
+	if (type == swig_module.type_initial[i]) {
+#ifdef SWIGRUNTIME_DEBUG
+	  printf("SWIG_InitializeModule: skip old type %s\n", ret->name);
+#endif
+	  cast->type = ret;
+	  ret = 0;
+	} else {
+	  /* Check for casting already in the list */
+	  swig_cast_info *ocast = SWIG_TypeCheck(ret->name, type);
+#ifdef SWIGRUNTIME_DEBUG
+	  if (ocast) printf("SWIG_InitializeModule: skip old cast %s\n", ret->name);
+#endif
+	  if (!ocast) ret = 0;
+	}
+      }
+
+      if (!ret) {
+#ifdef SWIGRUNTIME_DEBUG
+	printf("SWIG_InitializeModule: adding cast %s\n", cast->type->name);
+#endif
+        if (type->cast) {
+          type->cast->prev = cast;
+          cast->next = type->cast;
+        }
+        type->cast = cast;
+      }
+      cast++;
+    }
+    /* Set entry in modules->types array equal to the type */
+    swig_module.types[i] = type;
+  }
+  swig_module.types[i] = 0;
+
+#ifdef SWIGRUNTIME_DEBUG
+  printf("**** SWIG_InitializeModule: Cast List ******\n");
+  for (i = 0; i < swig_module.size; ++i) {
+    int j = 0;
+    swig_cast_info *cast = swig_module.cast_initial[i];
+    printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
+    while (cast->type) {
+      printf("SWIG_InitializeModule: cast type %s\n", cast->type->name);
+      cast++;
+      ++j;
+    }
+  printf("---- Total casts: %d\n",j);
+  }
+  printf("**** SWIG_InitializeModule: Cast List ******\n");
+#endif
+}
+
+/* This function will propagate the clientdata field of type to
+* any new swig_type_info structures that have been added into the list
+* of equivalent types.  It is like calling
+* SWIG_TypeClientData(type, clientdata) a second time.
+*/
+SWIGRUNTIME void
+SWIG_PropagateClientData(void) {
+  size_t i;
+  swig_cast_info *equiv;
+  static int init_run = 0;
+
+  if (init_run) return;
+  init_run = 1;
+
+  for (i = 0; i < swig_module.size; i++) {
+    if (swig_module.types[i]->clientdata) {
+      equiv = swig_module.types[i]->cast;
+      while (equiv) {
+        if (!equiv->converter) {
+          if (equiv->type && !equiv->type->clientdata)
+            SWIG_TypeClientData(equiv->type, swig_module.types[i]->clientdata);
+        }
+        equiv = equiv->next;
+      }
+    }
+  }
+}
+
+#ifdef __cplusplus
+#if 0
+{ /* c-mode */
+#endif
+}
+#endif
+
+
+
+static void SWIG_init_user(octave_swig_type* module_ns);
+
+DEFUN_DLD (SWIG_name,args,nargout,SWIG_name_d) {
+  static bool already_init=false;
+  if (already_init)
+    return octave_value_list();
+  already_init=true;
+
+  octave_swig_ref::register_type();
+  octave_swig_packed::register_type();
+  SWIG_InitializeModule(0);
+  SWIG_PropagateClientData();
+  
+  install_builtin_function(swig_type,"swig_type",std::string());
+  install_builtin_function(swig_typequery,"swig_typequery",std::string());
+  install_builtin_function(swig_this,"swig_this",std::string());
+  install_builtin_function(swig_subclass,"subclass",std::string());
+
+  bool global_option=true; // * swig cli option should control this default
+  for (int j=0;j<args.length();++j)
+    if (args(j).is_string()&&args(j).string_value()=="noglobal")
+      global_option=true;
+    else if (args(j).is_string()&&args(j).string_value()=="noglobal")
+      global_option=false;
+
+  octave_swig_type* cvar_ns=new octave_swig_type;
+  for (int j=0;swig_globals[j].name;++j)
+    if (swig_globals[j].get_method)
+      cvar_ns->assign(swig_globals[j].name,&swig_globals[j]);
+
+  octave_swig_type* module_ns=new octave_swig_type(0, 0, 0, true);
+  module_ns->assign("cvar",Swig::swig_value_ref(cvar_ns));
+  for (int j=0;swig_globals[j].name;++j)
+    if (swig_globals[j].method)
+      module_ns->assign(swig_globals[j].name,&swig_globals[j]);
+
+  // * need better solution here; swig_type -> octave_class mapping is 
+  // * really n-to-1, in some cases such as template partial spec, etc. 
+  // * see failing tests.
+  for (int j=0;swig_types[j];++j)
+    if (swig_types[j]->clientdata) {
+      swig_octave_class* c=(swig_octave_class*)swig_types[j]->clientdata;
+      module_ns->assign(c->name,
+			Swig::swig_value_ref
+			(new octave_swig_type(0,swig_types[j])));
+    }
+
+  SWIG_init_user(module_ns);
+
+  SWIG_InstallOps(octave_swig_ref::static_type_id());
+
+  // the incref is necessary so install_global doesn't destroy module_ns,
+  // as it would if it installed something with the same name as the module.
+  module_ns->incref();
+  if (global_option)
+    module_ns->install_global();
+  module_ns->decref();
+
+#if USE_OCTAVE_API_VERSION<37
+  link_to_global_variable(curr_sym_tab->lookup(SWIG_name_d,true));
+#else
+  symbol_table::varref(SWIG_name_d);
+  symbol_table::mark_global(SWIG_name_d);
+#endif
+  set_global_value(SWIG_name_d,Swig::swig_value_ref(module_ns));
+
+#if USE_OCTAVE_API_VERSION>=37
+  mlock();
+#endif
+
+  return octave_value_list();
+}
+
+// workaround bug in octave where installing global variable of custom type and then
+// exiting without explicitly clearing the variable causes octave to segfault.
+#if USE_OCTAVE_API_VERSION>=37
+struct oct_file_unload {
+  ~oct_file_unload() {
+    string_vector vars = symbol_table::global_variable_names();
+    for (int i = 0; i < vars.length(); i++)
+      symbol_table::clear_global(vars[i]);
+  }
+};
+static oct_file_unload __unload;
+#endif
+
+
+static void SWIG_init_user(octave_swig_type* module_ns)
+{
+  
+}
+
diff --git a/lang/mgl_python.cpp b/lang/mgl_python.cpp
new file mode 100644
index 0000000..1fdb98d
--- /dev/null
+++ b/lang/mgl_python.cpp
@@ -0,0 +1,90622 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 1.3.40
+ * 
+ * This file is not intended to be easily readable and contains a number of 
+ * coding conventions designed to improve portability and efficiency. Do not make
+ * changes to this file unless you know what you are doing--modify the SWIG 
+ * interface file instead. 
+ * ----------------------------------------------------------------------------- */
+
+#define SWIGPYTHON
+#define SWIG_PYTHON_DIRECTOR_NO_VTABLE
+
+
+#ifdef __cplusplus
+/* SwigValueWrapper is described in swig.swg */
+template<typename T> class SwigValueWrapper {
+  struct SwigMovePointer {
+    T *ptr;
+    SwigMovePointer(T *p) : ptr(p) { }
+    ~SwigMovePointer() { delete ptr; }
+    SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; }
+  } pointer;
+  SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
+  SwigValueWrapper(const SwigValueWrapper<T>& rhs);
+public:
+  SwigValueWrapper() : pointer(0) { }
+  SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; }
+  operator T&() const { return *pointer.ptr; }
+  T *operator&() { return pointer.ptr; }
+};
+
+template <typename T> T SwigValueInit() {
+  return T();
+}
+#endif
+
+/* -----------------------------------------------------------------------------
+ *  This section contains generic SWIG labels for method/variable
+ *  declarations/attributes, and other compiler dependent labels.
+ * ----------------------------------------------------------------------------- */
+
+/* template workaround for compilers that cannot correctly implement the C++ standard */
+#ifndef SWIGTEMPLATEDISAMBIGUATOR
+# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
+#  define SWIGTEMPLATEDISAMBIGUATOR template
+# elif defined(__HP_aCC)
+/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
+/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
+#  define SWIGTEMPLATEDISAMBIGUATOR template
+# else
+#  define SWIGTEMPLATEDISAMBIGUATOR
+# endif
+#endif
+
+/* inline attribute */
+#ifndef SWIGINLINE
+# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
+#   define SWIGINLINE inline
+# else
+#   define SWIGINLINE
+# endif
+#endif
+
+/* attribute recognised by some compilers to avoid 'unused' warnings */
+#ifndef SWIGUNUSED
+# if defined(__GNUC__)
+#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
+#     define SWIGUNUSED __attribute__ ((__unused__)) 
+#   else
+#     define SWIGUNUSED
+#   endif
+# elif defined(__ICC)
+#   define SWIGUNUSED __attribute__ ((__unused__)) 
+# else
+#   define SWIGUNUSED 
+# endif
+#endif
+
+#ifndef SWIG_MSC_UNSUPPRESS_4505
+# if defined(_MSC_VER)
+#   pragma warning(disable : 4505) /* unreferenced local function has been removed */
+# endif 
+#endif
+
+#ifndef SWIGUNUSEDPARM
+# ifdef __cplusplus
+#   define SWIGUNUSEDPARM(p)
+# else
+#   define SWIGUNUSEDPARM(p) p SWIGUNUSED 
+# endif
+#endif
+
+/* internal SWIG method */
+#ifndef SWIGINTERN
+# define SWIGINTERN static SWIGUNUSED
+#endif
+
+/* internal inline SWIG method */
+#ifndef SWIGINTERNINLINE
+# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
+#endif
+
+/* exporting methods */
+#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+#  ifndef GCC_HASCLASSVISIBILITY
+#    define GCC_HASCLASSVISIBILITY
+#  endif
+#endif
+
+#ifndef SWIGEXPORT
+# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#   if defined(STATIC_LINKED)
+#     define SWIGEXPORT
+#   else
+#     define SWIGEXPORT __declspec(dllexport)
+#   endif
+# else
+#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
+#     define SWIGEXPORT __attribute__ ((visibility("default")))
+#   else
+#     define SWIGEXPORT
+#   endif
+# endif
+#endif
+
+/* calling conventions for Windows */
+#ifndef SWIGSTDCALL
+# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#   define SWIGSTDCALL __stdcall
+# else
+#   define SWIGSTDCALL
+# endif 
+#endif
+
+/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
+#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
+# define _CRT_SECURE_NO_DEPRECATE
+#endif
+
+/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
+#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
+# define _SCL_SECURE_NO_DEPRECATE
+#endif
+
+
+
+/* Python.h has to appear first */
+#include <Python.h>
+
+/* -----------------------------------------------------------------------------
+ * swigrun.swg
+ *
+ * This file contains generic C API SWIG runtime support for pointer
+ * type checking.
+ * ----------------------------------------------------------------------------- */
+
+/* This should only be incremented when either the layout of swig_type_info changes,
+   or for whatever reason, the runtime changes incompatibly */
+#define SWIG_RUNTIME_VERSION "4"
+
+/* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */
+#ifdef SWIG_TYPE_TABLE
+# define SWIG_QUOTE_STRING(x) #x
+# define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x)
+# define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE)
+#else
+# define SWIG_TYPE_TABLE_NAME
+#endif
+
+/*
+  You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for
+  creating a static or dynamic library from the SWIG runtime code.
+  In 99.9% of the cases, SWIG just needs to declare them as 'static'.
+  
+  But only do this if strictly necessary, ie, if you have problems
+  with your compiler or suchlike.
+*/
+
+#ifndef SWIGRUNTIME
+# define SWIGRUNTIME SWIGINTERN
+#endif
+
+#ifndef SWIGRUNTIMEINLINE
+# define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE
+#endif
+
+/*  Generic buffer size */
+#ifndef SWIG_BUFFER_SIZE
+# define SWIG_BUFFER_SIZE 1024
+#endif
+
+/* Flags for pointer conversions */
+#define SWIG_POINTER_DISOWN        0x1
+#define SWIG_CAST_NEW_MEMORY       0x2
+
+/* Flags for new pointer objects */
+#define SWIG_POINTER_OWN           0x1
+
+
+/* 
+   Flags/methods for returning states.
+   
+   The SWIG conversion methods, as ConvertPtr, return and integer 
+   that tells if the conversion was successful or not. And if not,
+   an error code can be returned (see swigerrors.swg for the codes).
+   
+   Use the following macros/flags to set or process the returning
+   states.
+   
+   In old versions of SWIG, code such as the following was usually written:
+
+     if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) {
+       // success code
+     } else {
+       //fail code
+     }
+
+   Now you can be more explicit:
+
+    int res = SWIG_ConvertPtr(obj,vptr,ty.flags);
+    if (SWIG_IsOK(res)) {
+      // success code
+    } else {
+      // fail code
+    }
+
+   which is the same really, but now you can also do
+
+    Type *ptr;
+    int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags);
+    if (SWIG_IsOK(res)) {
+      // success code
+      if (SWIG_IsNewObj(res) {
+        ...
+	delete *ptr;
+      } else {
+        ...
+      }
+    } else {
+      // fail code
+    }
+    
+   I.e., now SWIG_ConvertPtr can return new objects and you can
+   identify the case and take care of the deallocation. Of course that
+   also requires SWIG_ConvertPtr to return new result values, such as
+
+      int SWIG_ConvertPtr(obj, ptr,...) {         
+        if (<obj is ok>) {			       
+          if (<need new object>) {		       
+            *ptr = <ptr to new allocated object>; 
+            return SWIG_NEWOBJ;		       
+          } else {				       
+            *ptr = <ptr to old object>;	       
+            return SWIG_OLDOBJ;		       
+          } 				       
+        } else {				       
+          return SWIG_BADOBJ;		       
+        }					       
+      }
+
+   Of course, returning the plain '0(success)/-1(fail)' still works, but you can be
+   more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the
+   SWIG errors code.
+
+   Finally, if the SWIG_CASTRANK_MODE is enabled, the result code
+   allows to return the 'cast rank', for example, if you have this
+
+       int food(double)
+       int fooi(int);
+
+   and you call
+ 
+      food(1)   // cast rank '1'  (1 -> 1.0)
+      fooi(1)   // cast rank '0'
+
+   just use the SWIG_AddCast()/SWIG_CheckState()
+*/
+
+#define SWIG_OK                    (0) 
+#define SWIG_ERROR                 (-1)
+#define SWIG_IsOK(r)               (r >= 0)
+#define SWIG_ArgError(r)           ((r != SWIG_ERROR) ? r : SWIG_TypeError)  
+
+/* The CastRankLimit says how many bits are used for the cast rank */
+#define SWIG_CASTRANKLIMIT         (1 << 8)
+/* The NewMask denotes the object was created (using new/malloc) */
+#define SWIG_NEWOBJMASK            (SWIG_CASTRANKLIMIT  << 1)
+/* The TmpMask is for in/out typemaps that use temporal objects */
+#define SWIG_TMPOBJMASK            (SWIG_NEWOBJMASK << 1)
+/* Simple returning values */
+#define SWIG_BADOBJ                (SWIG_ERROR)
+#define SWIG_OLDOBJ                (SWIG_OK)
+#define SWIG_NEWOBJ                (SWIG_OK | SWIG_NEWOBJMASK)
+#define SWIG_TMPOBJ                (SWIG_OK | SWIG_TMPOBJMASK)
+/* Check, add and del mask methods */
+#define SWIG_AddNewMask(r)         (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r)
+#define SWIG_DelNewMask(r)         (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r)
+#define SWIG_IsNewObj(r)           (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK))
+#define SWIG_AddTmpMask(r)         (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r)
+#define SWIG_DelTmpMask(r)         (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r)
+#define SWIG_IsTmpObj(r)           (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK))
+
+/* Cast-Rank Mode */
+#if defined(SWIG_CASTRANK_MODE)
+#  ifndef SWIG_TypeRank
+#    define SWIG_TypeRank             unsigned long
+#  endif
+#  ifndef SWIG_MAXCASTRANK            /* Default cast allowed */
+#    define SWIG_MAXCASTRANK          (2)
+#  endif
+#  define SWIG_CASTRANKMASK          ((SWIG_CASTRANKLIMIT) -1)
+#  define SWIG_CastRank(r)           (r & SWIG_CASTRANKMASK)
+SWIGINTERNINLINE int SWIG_AddCast(int r) { 
+  return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r;
+}
+SWIGINTERNINLINE int SWIG_CheckState(int r) { 
+  return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0; 
+}
+#else /* no cast-rank mode */
+#  define SWIG_AddCast
+#  define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0)
+#endif
+
+
+#include <string.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef void *(*swig_converter_func)(void *, int *);
+typedef struct swig_type_info *(*swig_dycast_func)(void **);
+
+/* Structure to store information on one type */
+typedef struct swig_type_info {
+  const char             *name;			/* mangled name of this type */
+  const char             *str;			/* human readable name of this type */
+  swig_dycast_func        dcast;		/* dynamic cast function down a hierarchy */
+  struct swig_cast_info  *cast;			/* linked list of types that can cast into this type */
+  void                   *clientdata;		/* language specific type data */
+  int                    owndata;		/* flag if the structure owns the clientdata */
+} swig_type_info;
+
+/* Structure to store a type and conversion function used for casting */
+typedef struct swig_cast_info {
+  swig_type_info         *type;			/* pointer to type that is equivalent to this type */
+  swig_converter_func     converter;		/* function to cast the void pointers */
+  struct swig_cast_info  *next;			/* pointer to next cast in linked list */
+  struct swig_cast_info  *prev;			/* pointer to the previous cast */
+} swig_cast_info;
+
+/* Structure used to store module information
+ * Each module generates one structure like this, and the runtime collects
+ * all of these structures and stores them in a circularly linked list.*/
+typedef struct swig_module_info {
+  swig_type_info         **types;		/* Array of pointers to swig_type_info structures that are in this module */
+  size_t                 size;		        /* Number of types in this module */
+  struct swig_module_info *next;		/* Pointer to next element in circularly linked list */
+  swig_type_info         **type_initial;	/* Array of initially generated type structures */
+  swig_cast_info         **cast_initial;	/* Array of initially generated casting structures */
+  void                    *clientdata;		/* Language specific module data */
+} swig_module_info;
+
+/* 
+  Compare two type names skipping the space characters, therefore
+  "char*" == "char *" and "Class<int>" == "Class<int >", etc.
+
+  Return 0 when the two name types are equivalent, as in
+  strncmp, but skipping ' '.
+*/
+SWIGRUNTIME int
+SWIG_TypeNameComp(const char *f1, const char *l1,
+		  const char *f2, const char *l2) {
+  for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) {
+    while ((*f1 == ' ') && (f1 != l1)) ++f1;
+    while ((*f2 == ' ') && (f2 != l2)) ++f2;
+    if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1;
+  }
+  return (int)((l1 - f1) - (l2 - f2));
+}
+
+/*
+  Check type equivalence in a name list like <name1>|<name2>|...
+  Return 0 if not equal, 1 if equal
+*/
+SWIGRUNTIME int
+SWIG_TypeEquiv(const char *nb, const char *tb) {
+  int equiv = 0;
+  const char* te = tb + strlen(tb);
+  const char* ne = nb;
+  while (!equiv && *ne) {
+    for (nb = ne; *ne; ++ne) {
+      if (*ne == '|') break;
+    }
+    equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
+    if (*ne) ++ne;
+  }
+  return equiv;
+}
+
+/*
+  Check type equivalence in a name list like <name1>|<name2>|...
+  Return 0 if equal, -1 if nb < tb, 1 if nb > tb
+*/
+SWIGRUNTIME int
+SWIG_TypeCompare(const char *nb, const char *tb) {
+  int equiv = 0;
+  const char* te = tb + strlen(tb);
+  const char* ne = nb;
+  while (!equiv && *ne) {
+    for (nb = ne; *ne; ++ne) {
+      if (*ne == '|') break;
+    }
+    equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
+    if (*ne) ++ne;
+  }
+  return equiv;
+}
+
+
+/*
+  Check the typename
+*/
+SWIGRUNTIME swig_cast_info *
+SWIG_TypeCheck(const char *c, swig_type_info *ty) {
+  if (ty) {
+    swig_cast_info *iter = ty->cast;
+    while (iter) {
+      if (strcmp(iter->type->name, c) == 0) {
+        if (iter == ty->cast)
+          return iter;
+        /* Move iter to the top of the linked list */
+        iter->prev->next = iter->next;
+        if (iter->next)
+          iter->next->prev = iter->prev;
+        iter->next = ty->cast;
+        iter->prev = 0;
+        if (ty->cast) ty->cast->prev = iter;
+        ty->cast = iter;
+        return iter;
+      }
+      iter = iter->next;
+    }
+  }
+  return 0;
+}
+
+/* 
+  Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison
+*/
+SWIGRUNTIME swig_cast_info *
+SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty) {
+  if (ty) {
+    swig_cast_info *iter = ty->cast;
+    while (iter) {
+      if (iter->type == from) {
+        if (iter == ty->cast)
+          return iter;
+        /* Move iter to the top of the linked list */
+        iter->prev->next = iter->next;
+        if (iter->next)
+          iter->next->prev = iter->prev;
+        iter->next = ty->cast;
+        iter->prev = 0;
+        if (ty->cast) ty->cast->prev = iter;
+        ty->cast = iter;
+        return iter;
+      }
+      iter = iter->next;
+    }
+  }
+  return 0;
+}
+
+/*
+  Cast a pointer up an inheritance hierarchy
+*/
+SWIGRUNTIMEINLINE void *
+SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) {
+  return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory);
+}
+
+/* 
+   Dynamic pointer casting. Down an inheritance hierarchy
+*/
+SWIGRUNTIME swig_type_info *
+SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) {
+  swig_type_info *lastty = ty;
+  if (!ty || !ty->dcast) return ty;
+  while (ty && (ty->dcast)) {
+    ty = (*ty->dcast)(ptr);
+    if (ty) lastty = ty;
+  }
+  return lastty;
+}
+
+/*
+  Return the name associated with this type
+*/
+SWIGRUNTIMEINLINE const char *
+SWIG_TypeName(const swig_type_info *ty) {
+  return ty->name;
+}
+
+/*
+  Return the pretty name associated with this type,
+  that is an unmangled type name in a form presentable to the user.
+*/
+SWIGRUNTIME const char *
+SWIG_TypePrettyName(const swig_type_info *type) {
+  /* The "str" field contains the equivalent pretty names of the
+     type, separated by vertical-bar characters.  We choose
+     to print the last name, as it is often (?) the most
+     specific. */
+  if (!type) return NULL;
+  if (type->str != NULL) {
+    const char *last_name = type->str;
+    const char *s;
+    for (s = type->str; *s; s++)
+      if (*s == '|') last_name = s+1;
+    return last_name;
+  }
+  else
+    return type->name;
+}
+
+/* 
+   Set the clientdata field for a type
+*/
+SWIGRUNTIME void
+SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
+  swig_cast_info *cast = ti->cast;
+  /* if (ti->clientdata == clientdata) return; */
+  ti->clientdata = clientdata;
+  
+  while (cast) {
+    if (!cast->converter) {
+      swig_type_info *tc = cast->type;
+      if (!tc->clientdata) {
+	SWIG_TypeClientData(tc, clientdata);
+      }
+    }    
+    cast = cast->next;
+  }
+}
+SWIGRUNTIME void
+SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) {
+  SWIG_TypeClientData(ti, clientdata);
+  ti->owndata = 1;
+}
+  
+/*
+  Search for a swig_type_info structure only by mangled name
+  Search is a O(log #types)
+  
+  We start searching at module start, and finish searching when start == end.  
+  Note: if start == end at the beginning of the function, we go all the way around
+  the circular list.
+*/
+SWIGRUNTIME swig_type_info *
+SWIG_MangledTypeQueryModule(swig_module_info *start, 
+                            swig_module_info *end, 
+		            const char *name) {
+  swig_module_info *iter = start;
+  do {
+    if (iter->size) {
+      register size_t l = 0;
+      register size_t r = iter->size - 1;
+      do {
+	/* since l+r >= 0, we can (>> 1) instead (/ 2) */
+	register size_t i = (l + r) >> 1; 
+	const char *iname = iter->types[i]->name;
+	if (iname) {
+	  register int compare = strcmp(name, iname);
+	  if (compare == 0) {	    
+	    return iter->types[i];
+	  } else if (compare < 0) {
+	    if (i) {
+	      r = i - 1;
+	    } else {
+	      break;
+	    }
+	  } else if (compare > 0) {
+	    l = i + 1;
+	  }
+	} else {
+	  break; /* should never happen */
+	}
+      } while (l <= r);
+    }
+    iter = iter->next;
+  } while (iter != end);
+  return 0;
+}
+
+/*
+  Search for a swig_type_info structure for either a mangled name or a human readable name.
+  It first searches the mangled names of the types, which is a O(log #types)
+  If a type is not found it then searches the human readable names, which is O(#types).
+  
+  We start searching at module start, and finish searching when start == end.  
+  Note: if start == end at the beginning of the function, we go all the way around
+  the circular list.
+*/
+SWIGRUNTIME swig_type_info *
+SWIG_TypeQueryModule(swig_module_info *start, 
+                     swig_module_info *end, 
+		     const char *name) {
+  /* STEP 1: Search the name field using binary search */
+  swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name);
+  if (ret) {
+    return ret;
+  } else {
+    /* STEP 2: If the type hasn't been found, do a complete search
+       of the str field (the human readable name) */
+    swig_module_info *iter = start;
+    do {
+      register size_t i = 0;
+      for (; i < iter->size; ++i) {
+	if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name)))
+	  return iter->types[i];
+      }
+      iter = iter->next;
+    } while (iter != end);
+  }
+  
+  /* neither found a match */
+  return 0;
+}
+
+/* 
+   Pack binary data into a string
+*/
+SWIGRUNTIME char *
+SWIG_PackData(char *c, void *ptr, size_t sz) {
+  static const char hex[17] = "0123456789abcdef";
+  register const unsigned char *u = (unsigned char *) ptr;
+  register const unsigned char *eu =  u + sz;
+  for (; u != eu; ++u) {
+    register unsigned char uu = *u;
+    *(c++) = hex[(uu & 0xf0) >> 4];
+    *(c++) = hex[uu & 0xf];
+  }
+  return c;
+}
+
+/* 
+   Unpack binary data from a string
+*/
+SWIGRUNTIME const char *
+SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
+  register unsigned char *u = (unsigned char *) ptr;
+  register const unsigned char *eu = u + sz;
+  for (; u != eu; ++u) {
+    register char d = *(c++);
+    register unsigned char uu;
+    if ((d >= '0') && (d <= '9'))
+      uu = ((d - '0') << 4);
+    else if ((d >= 'a') && (d <= 'f'))
+      uu = ((d - ('a'-10)) << 4);
+    else 
+      return (char *) 0;
+    d = *(c++);
+    if ((d >= '0') && (d <= '9'))
+      uu |= (d - '0');
+    else if ((d >= 'a') && (d <= 'f'))
+      uu |= (d - ('a'-10));
+    else 
+      return (char *) 0;
+    *u = uu;
+  }
+  return c;
+}
+
+/* 
+   Pack 'void *' into a string buffer.
+*/
+SWIGRUNTIME char *
+SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) {
+  char *r = buff;
+  if ((2*sizeof(void *) + 2) > bsz) return 0;
+  *(r++) = '_';
+  r = SWIG_PackData(r,&ptr,sizeof(void *));
+  if (strlen(name) + 1 > (bsz - (r - buff))) return 0;
+  strcpy(r,name);
+  return buff;
+}
+
+SWIGRUNTIME const char *
+SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) {
+  if (*c != '_') {
+    if (strcmp(c,"NULL") == 0) {
+      *ptr = (void *) 0;
+      return name;
+    } else {
+      return 0;
+    }
+  }
+  return SWIG_UnpackData(++c,ptr,sizeof(void *));
+}
+
+SWIGRUNTIME char *
+SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) {
+  char *r = buff;
+  size_t lname = (name ? strlen(name) : 0);
+  if ((2*sz + 2 + lname) > bsz) return 0;
+  *(r++) = '_';
+  r = SWIG_PackData(r,ptr,sz);
+  if (lname) {
+    strncpy(r,name,lname+1);
+  } else {
+    *r = 0;
+  }
+  return buff;
+}
+
+SWIGRUNTIME const char *
+SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
+  if (*c != '_') {
+    if (strcmp(c,"NULL") == 0) {
+      memset(ptr,0,sz);
+      return name;
+    } else {
+      return 0;
+    }
+  }
+  return SWIG_UnpackData(++c,ptr,sz);
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+/*  Errors in SWIG */
+#define  SWIG_UnknownError    	   -1 
+#define  SWIG_IOError        	   -2 
+#define  SWIG_RuntimeError   	   -3 
+#define  SWIG_IndexError     	   -4 
+#define  SWIG_TypeError      	   -5 
+#define  SWIG_DivisionByZero 	   -6 
+#define  SWIG_OverflowError  	   -7 
+#define  SWIG_SyntaxError    	   -8 
+#define  SWIG_ValueError     	   -9 
+#define  SWIG_SystemError    	   -10
+#define  SWIG_AttributeError 	   -11
+#define  SWIG_MemoryError    	   -12 
+#define  SWIG_NullReferenceError   -13
+
+
+
+/* Compatibility macros for Python 3 */
+#if PY_VERSION_HEX >= 0x03000000
+
+#define PyClass_Check(obj) PyObject_IsInstance(obj, (PyObject *)&PyType_Type)
+#define PyInt_Check(x) PyLong_Check(x)
+#define PyInt_AsLong(x) PyLong_AsLong(x)
+#define PyInt_FromLong(x) PyLong_FromLong(x)
+#define PyString_Format(fmt, args)  PyUnicode_Format(fmt, args)
+
+#endif
+
+#ifndef Py_TYPE
+#  define Py_TYPE(op) ((op)->ob_type)
+#endif
+
+/* SWIG APIs for compatibility of both Python 2 & 3 */
+
+#if PY_VERSION_HEX >= 0x03000000
+#  define SWIG_Python_str_FromFormat PyUnicode_FromFormat
+#else
+#  define SWIG_Python_str_FromFormat PyString_FromFormat
+#endif
+
+
+/* Warning: This function will allocate a new string in Python 3,
+ * so please call SWIG_Python_str_DelForPy3(x) to free the space.
+ */
+SWIGINTERN char*
+SWIG_Python_str_AsChar(PyObject *str)
+{
+#if PY_VERSION_HEX >= 0x03000000
+  char *cstr;
+  char *newstr;
+  Py_ssize_t len;
+  str = PyUnicode_AsUTF8String(str);
+  PyBytes_AsStringAndSize(str, &cstr, &len);
+  newstr = (char *) malloc(len+1);
+  memcpy(newstr, cstr, len+1);
+  Py_XDECREF(str);
+  return newstr;
+#else
+  return PyString_AsString(str);
+#endif
+}
+
+#if PY_VERSION_HEX >= 0x03000000
+#  define SWIG_Python_str_DelForPy3(x) free( (void*) (x) )
+#else
+#  define SWIG_Python_str_DelForPy3(x) 
+#endif
+
+
+SWIGINTERN PyObject*
+SWIG_Python_str_FromChar(const char *c)
+{
+#if PY_VERSION_HEX >= 0x03000000
+  return PyUnicode_FromString(c); 
+#else
+  return PyString_FromString(c);
+#endif
+}
+
+/* Add PyOS_snprintf for old Pythons */
+#if PY_VERSION_HEX < 0x02020000
+# if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM)
+#  define PyOS_snprintf _snprintf
+# else
+#  define PyOS_snprintf snprintf
+# endif
+#endif
+
+/* A crude PyString_FromFormat implementation for old Pythons */
+#if PY_VERSION_HEX < 0x02020000
+
+#ifndef SWIG_PYBUFFER_SIZE
+# define SWIG_PYBUFFER_SIZE 1024
+#endif
+
+static PyObject *
+PyString_FromFormat(const char *fmt, ...) {
+  va_list ap;
+  char buf[SWIG_PYBUFFER_SIZE * 2];
+  int res;
+  va_start(ap, fmt);
+  res = vsnprintf(buf, sizeof(buf), fmt, ap);
+  va_end(ap);
+  return (res < 0 || res >= (int)sizeof(buf)) ? 0 : PyString_FromString(buf);
+}
+#endif
+
+/* Add PyObject_Del for old Pythons */
+#if PY_VERSION_HEX < 0x01060000
+# define PyObject_Del(op) PyMem_DEL((op))
+#endif
+#ifndef PyObject_DEL
+# define PyObject_DEL PyObject_Del
+#endif
+
+/* A crude PyExc_StopIteration exception for old Pythons */
+#if PY_VERSION_HEX < 0x02020000
+# ifndef PyExc_StopIteration
+#  define PyExc_StopIteration PyExc_RuntimeError
+# endif
+# ifndef PyObject_GenericGetAttr
+#  define PyObject_GenericGetAttr 0
+# endif
+#endif
+
+/* Py_NotImplemented is defined in 2.1 and up. */
+#if PY_VERSION_HEX < 0x02010000
+# ifndef Py_NotImplemented
+#  define Py_NotImplemented PyExc_RuntimeError
+# endif
+#endif
+
+/* A crude PyString_AsStringAndSize implementation for old Pythons */
+#if PY_VERSION_HEX < 0x02010000
+# ifndef PyString_AsStringAndSize
+#  define PyString_AsStringAndSize(obj, s, len) {*s = PyString_AsString(obj); *len = *s ? strlen(*s) : 0;}
+# endif
+#endif
+
+/* PySequence_Size for old Pythons */
+#if PY_VERSION_HEX < 0x02000000
+# ifndef PySequence_Size
+#  define PySequence_Size PySequence_Length
+# endif
+#endif
+
+/* PyBool_FromLong for old Pythons */
+#if PY_VERSION_HEX < 0x02030000
+static
+PyObject *PyBool_FromLong(long ok)
+{
+  PyObject *result = ok ? Py_True : Py_False;
+  Py_INCREF(result);
+  return result;
+}
+#endif
+
+/* Py_ssize_t for old Pythons */
+/* This code is as recommended by: */
+/* http://www.python.org/dev/peps/pep-0353/#conversion-guidelines */
+#if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN)
+typedef int Py_ssize_t;
+# define PY_SSIZE_T_MAX INT_MAX
+# define PY_SSIZE_T_MIN INT_MIN
+#endif
+
+/* -----------------------------------------------------------------------------
+ * error manipulation
+ * ----------------------------------------------------------------------------- */
+
+SWIGRUNTIME PyObject*
+SWIG_Python_ErrorType(int code) {
+  PyObject* type = 0;
+  switch(code) {
+  case SWIG_MemoryError:
+    type = PyExc_MemoryError;
+    break;
+  case SWIG_IOError:
+    type = PyExc_IOError;
+    break;
+  case SWIG_RuntimeError:
+    type = PyExc_RuntimeError;
+    break;
+  case SWIG_IndexError:
+    type = PyExc_IndexError;
+    break;
+  case SWIG_TypeError:
+    type = PyExc_TypeError;
+    break;
+  case SWIG_DivisionByZero:
+    type = PyExc_ZeroDivisionError;
+    break;
+  case SWIG_OverflowError:
+    type = PyExc_OverflowError;
+    break;
+  case SWIG_SyntaxError:
+    type = PyExc_SyntaxError;
+    break;
+  case SWIG_ValueError:
+    type = PyExc_ValueError;
+    break;
+  case SWIG_SystemError:
+    type = PyExc_SystemError;
+    break;
+  case SWIG_AttributeError:
+    type = PyExc_AttributeError;
+    break;
+  default:
+    type = PyExc_RuntimeError;
+  }
+  return type;
+}
+
+
+SWIGRUNTIME void
+SWIG_Python_AddErrorMsg(const char* mesg)
+{
+  PyObject *type = 0;
+  PyObject *value = 0;
+  PyObject *traceback = 0;
+
+  if (PyErr_Occurred()) PyErr_Fetch(&type, &value, &traceback);
+  if (value) {
+    char *tmp;
+    PyObject *old_str = PyObject_Str(value);
+    PyErr_Clear();
+    Py_XINCREF(type);
+
+    PyErr_Format(type, "%s %s", tmp = SWIG_Python_str_AsChar(old_str), mesg);
+    SWIG_Python_str_DelForPy3(tmp);
+    Py_DECREF(old_str);
+    Py_DECREF(value);
+  } else {
+    PyErr_SetString(PyExc_RuntimeError, mesg);
+  }
+}
+
+#if defined(SWIG_PYTHON_NO_THREADS)
+#  if defined(SWIG_PYTHON_THREADS)
+#    undef SWIG_PYTHON_THREADS
+#  endif
+#endif
+#if defined(SWIG_PYTHON_THREADS) /* Threading support is enabled */
+#  if !defined(SWIG_PYTHON_USE_GIL) && !defined(SWIG_PYTHON_NO_USE_GIL)
+#    if (PY_VERSION_HEX >= 0x02030000) /* For 2.3 or later, use the PyGILState calls */
+#      define SWIG_PYTHON_USE_GIL
+#    endif
+#  endif
+#  if defined(SWIG_PYTHON_USE_GIL) /* Use PyGILState threads calls */
+#    ifndef SWIG_PYTHON_INITIALIZE_THREADS
+#     define SWIG_PYTHON_INITIALIZE_THREADS  PyEval_InitThreads() 
+#    endif
+#    ifdef __cplusplus /* C++ code */
+       class SWIG_Python_Thread_Block {
+         bool status;
+         PyGILState_STATE state;
+       public:
+         void end() { if (status) { PyGILState_Release(state); status = false;} }
+         SWIG_Python_Thread_Block() : status(true), state(PyGILState_Ensure()) {}
+         ~SWIG_Python_Thread_Block() { end(); }
+       };
+       class SWIG_Python_Thread_Allow {
+         bool status;
+         PyThreadState *save;
+       public:
+         void end() { if (status) { PyEval_RestoreThread(save); status = false; }}
+         SWIG_Python_Thread_Allow() : status(true), save(PyEval_SaveThread()) {}
+         ~SWIG_Python_Thread_Allow() { end(); }
+       };
+#      define SWIG_PYTHON_THREAD_BEGIN_BLOCK   SWIG_Python_Thread_Block _swig_thread_block
+#      define SWIG_PYTHON_THREAD_END_BLOCK     _swig_thread_block.end()
+#      define SWIG_PYTHON_THREAD_BEGIN_ALLOW   SWIG_Python_Thread_Allow _swig_thread_allow
+#      define SWIG_PYTHON_THREAD_END_ALLOW     _swig_thread_allow.end()
+#    else /* C code */
+#      define SWIG_PYTHON_THREAD_BEGIN_BLOCK   PyGILState_STATE _swig_thread_block = PyGILState_Ensure()
+#      define SWIG_PYTHON_THREAD_END_BLOCK     PyGILState_Release(_swig_thread_block)
+#      define SWIG_PYTHON_THREAD_BEGIN_ALLOW   PyThreadState *_swig_thread_allow = PyEval_SaveThread()
+#      define SWIG_PYTHON_THREAD_END_ALLOW     PyEval_RestoreThread(_swig_thread_allow)
+#    endif
+#  else /* Old thread way, not implemented, user must provide it */
+#    if !defined(SWIG_PYTHON_INITIALIZE_THREADS)
+#      define SWIG_PYTHON_INITIALIZE_THREADS
+#    endif
+#    if !defined(SWIG_PYTHON_THREAD_BEGIN_BLOCK)
+#      define SWIG_PYTHON_THREAD_BEGIN_BLOCK
+#    endif
+#    if !defined(SWIG_PYTHON_THREAD_END_BLOCK)
+#      define SWIG_PYTHON_THREAD_END_BLOCK
+#    endif
+#    if !defined(SWIG_PYTHON_THREAD_BEGIN_ALLOW)
+#      define SWIG_PYTHON_THREAD_BEGIN_ALLOW
+#    endif
+#    if !defined(SWIG_PYTHON_THREAD_END_ALLOW)
+#      define SWIG_PYTHON_THREAD_END_ALLOW
+#    endif
+#  endif
+#else /* No thread support */
+#  define SWIG_PYTHON_INITIALIZE_THREADS
+#  define SWIG_PYTHON_THREAD_BEGIN_BLOCK
+#  define SWIG_PYTHON_THREAD_END_BLOCK
+#  define SWIG_PYTHON_THREAD_BEGIN_ALLOW
+#  define SWIG_PYTHON_THREAD_END_ALLOW
+#endif
+
+/* -----------------------------------------------------------------------------
+ * Python API portion that goes into the runtime
+ * ----------------------------------------------------------------------------- */
+
+#ifdef __cplusplus
+extern "C" {
+#if 0
+} /* cc-mode */
+#endif
+#endif
+
+/* -----------------------------------------------------------------------------
+ * Constant declarations
+ * ----------------------------------------------------------------------------- */
+
+/* Constant Types */
+#define SWIG_PY_POINTER 4
+#define SWIG_PY_BINARY  5
+
+/* Constant information structure */
+typedef struct swig_const_info {
+  int type;
+  char *name;
+  long lvalue;
+  double dvalue;
+  void   *pvalue;
+  swig_type_info **ptype;
+} swig_const_info;
+
+
+/* -----------------------------------------------------------------------------
+ * Wrapper of PyInstanceMethod_New() used in Python 3
+ * It is exported to the generated module, used for -fastproxy
+ * ----------------------------------------------------------------------------- */
+SWIGRUNTIME PyObject* SWIG_PyInstanceMethod_New(PyObject *self, PyObject *func)
+{
+#if PY_VERSION_HEX >= 0x03000000
+  return PyInstanceMethod_New(func);
+#else
+  return NULL;
+#endif
+}
+
+#ifdef __cplusplus
+#if 0
+{ /* cc-mode */
+#endif
+}
+#endif
+
+
+/* -----------------------------------------------------------------------------
+ * See the LICENSE file for information on copyright, usage and redistribution
+ * of SWIG, and the README file for authors - http://www.swig.org/release.html.
+ *
+ * pyrun.swg
+ *
+ * This file contains the runtime support for Python modules
+ * and includes code for managing global variables and pointer
+ * type checking.
+ *
+ * ----------------------------------------------------------------------------- */
+
+/* Common SWIG API */
+
+/* for raw pointers */
+#define SWIG_Python_ConvertPtr(obj, pptr, type, flags)  SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, 0)
+#define SWIG_ConvertPtr(obj, pptr, type, flags)         SWIG_Python_ConvertPtr(obj, pptr, type, flags)
+#define SWIG_ConvertPtrAndOwn(obj,pptr,type,flags,own)  SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, own)
+#define SWIG_NewPointerObj(ptr, type, flags)            SWIG_Python_NewPointerObj(ptr, type, flags)
+#define SWIG_CheckImplicit(ty)                          SWIG_Python_CheckImplicit(ty) 
+#define SWIG_AcquirePtr(ptr, src)                       SWIG_Python_AcquirePtr(ptr, src)
+#define swig_owntype                                    int
+
+/* for raw packed data */
+#define SWIG_ConvertPacked(obj, ptr, sz, ty)            SWIG_Python_ConvertPacked(obj, ptr, sz, ty)
+#define SWIG_NewPackedObj(ptr, sz, type)                SWIG_Python_NewPackedObj(ptr, sz, type)
+
+/* for class or struct pointers */
+#define SWIG_ConvertInstance(obj, pptr, type, flags)    SWIG_ConvertPtr(obj, pptr, type, flags)
+#define SWIG_NewInstanceObj(ptr, type, flags)           SWIG_NewPointerObj(ptr, type, flags)
+
+/* for C or C++ function pointers */
+#define SWIG_ConvertFunctionPtr(obj, pptr, type)        SWIG_Python_ConvertFunctionPtr(obj, pptr, type)
+#define SWIG_NewFunctionPtrObj(ptr, type)               SWIG_Python_NewPointerObj(ptr, type, 0)
+
+/* for C++ member pointers, ie, member methods */
+#define SWIG_ConvertMember(obj, ptr, sz, ty)            SWIG_Python_ConvertPacked(obj, ptr, sz, ty)
+#define SWIG_NewMemberObj(ptr, sz, type)                SWIG_Python_NewPackedObj(ptr, sz, type)
+
+
+/* Runtime API */
+
+#define SWIG_GetModule(clientdata)                      SWIG_Python_GetModule()
+#define SWIG_SetModule(clientdata, pointer)             SWIG_Python_SetModule(pointer)
+#define SWIG_NewClientData(obj)                         SwigPyClientData_New(obj)
+
+#define SWIG_SetErrorObj                                SWIG_Python_SetErrorObj                            
+#define SWIG_SetErrorMsg                        	SWIG_Python_SetErrorMsg				   
+#define SWIG_ErrorType(code)                    	SWIG_Python_ErrorType(code)                        
+#define SWIG_Error(code, msg)            		SWIG_Python_SetErrorMsg(SWIG_ErrorType(code), msg) 
+#define SWIG_fail                        		goto fail					   
+
+
+/* Runtime API implementation */
+
+/* Error manipulation */
+
+SWIGINTERN void 
+SWIG_Python_SetErrorObj(PyObject *errtype, PyObject *obj) {
+  SWIG_PYTHON_THREAD_BEGIN_BLOCK; 
+  PyErr_SetObject(errtype, obj);
+  Py_DECREF(obj);
+  SWIG_PYTHON_THREAD_END_BLOCK;
+}
+
+SWIGINTERN void 
+SWIG_Python_SetErrorMsg(PyObject *errtype, const char *msg) {
+  SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+  PyErr_SetString(errtype, (char *) msg);
+  SWIG_PYTHON_THREAD_END_BLOCK;
+}
+
+#define SWIG_Python_Raise(obj, type, desc)  SWIG_Python_SetErrorObj(SWIG_Python_ExceptionType(desc), obj)
+
+/* Set a constant value */
+
+SWIGINTERN void
+SWIG_Python_SetConstant(PyObject *d, const char *name, PyObject *obj) {   
+  PyDict_SetItemString(d, (char*) name, obj);
+  Py_DECREF(obj);                            
+}
+
+/* Append a value to the result obj */
+
+SWIGINTERN PyObject*
+SWIG_Python_AppendOutput(PyObject* result, PyObject* obj) {
+#if !defined(SWIG_PYTHON_OUTPUT_TUPLE)
+  if (!result) {
+    result = obj;
+  } else if (result == Py_None) {
+    Py_DECREF(result);
+    result = obj;
+  } else {
+    if (!PyList_Check(result)) {
+      PyObject *o2 = result;
+      result = PyList_New(1);
+      PyList_SetItem(result, 0, o2);
+    }
+    PyList_Append(result,obj);
+    Py_DECREF(obj);
+  }
+  return result;
+#else
+  PyObject*   o2;
+  PyObject*   o3;
+  if (!result) {
+    result = obj;
+  } else if (result == Py_None) {
+    Py_DECREF(result);
+    result = obj;
+  } else {
+    if (!PyTuple_Check(result)) {
+      o2 = result;
+      result = PyTuple_New(1);
+      PyTuple_SET_ITEM(result, 0, o2);
+    }
+    o3 = PyTuple_New(1);
+    PyTuple_SET_ITEM(o3, 0, obj);
+    o2 = result;
+    result = PySequence_Concat(o2, o3);
+    Py_DECREF(o2);
+    Py_DECREF(o3);
+  }
+  return result;
+#endif
+}
+
+/* Unpack the argument tuple */
+
+SWIGINTERN int
+SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, PyObject **objs)
+{
+  if (!args) {
+    if (!min && !max) {
+      return 1;
+    } else {
+      PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got none", 
+		   name, (min == max ? "" : "at least "), (int)min);
+      return 0;
+    }
+  }  
+  if (!PyTuple_Check(args)) {
+    PyErr_SetString(PyExc_SystemError, "UnpackTuple() argument list is not a tuple");
+    return 0;
+  } else {
+    register Py_ssize_t l = PyTuple_GET_SIZE(args);
+    if (l < min) {
+      PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", 
+		   name, (min == max ? "" : "at least "), (int)min, (int)l);
+      return 0;
+    } else if (l > max) {
+      PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", 
+		   name, (min == max ? "" : "at most "), (int)max, (int)l);
+      return 0;
+    } else {
+      register int i;
+      for (i = 0; i < l; ++i) {
+	objs[i] = PyTuple_GET_ITEM(args, i);
+      }
+      for (; l < max; ++l) {
+	objs[l] = 0;
+      }
+      return i + 1;
+    }    
+  }
+}
+
+/* A functor is a function object with one single object argument */
+#if PY_VERSION_HEX >= 0x02020000
+#define SWIG_Python_CallFunctor(functor, obj)	        PyObject_CallFunctionObjArgs(functor, obj, NULL);
+#else
+#define SWIG_Python_CallFunctor(functor, obj)	        PyObject_CallFunction(functor, "O", obj);
+#endif
+
+/*
+  Helper for static pointer initialization for both C and C++ code, for example
+  static PyObject *SWIG_STATIC_POINTER(MyVar) = NewSomething(...);
+*/
+#ifdef __cplusplus
+#define SWIG_STATIC_POINTER(var)  var
+#else
+#define SWIG_STATIC_POINTER(var)  var = 0; if (!var) var
+#endif
+
+/* -----------------------------------------------------------------------------
+ * Pointer declarations
+ * ----------------------------------------------------------------------------- */
+
+/* Flags for new pointer objects */
+#define SWIG_POINTER_NOSHADOW       (SWIG_POINTER_OWN      << 1)
+#define SWIG_POINTER_NEW            (SWIG_POINTER_NOSHADOW | SWIG_POINTER_OWN)
+
+#define SWIG_POINTER_IMPLICIT_CONV  (SWIG_POINTER_DISOWN   << 1)
+
+#ifdef __cplusplus
+extern "C" {
+#if 0
+} /* cc-mode */
+#endif
+#endif
+
+/*  How to access Py_None */
+#if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#  ifndef SWIG_PYTHON_NO_BUILD_NONE
+#    ifndef SWIG_PYTHON_BUILD_NONE
+#      define SWIG_PYTHON_BUILD_NONE
+#    endif
+#  endif
+#endif
+
+#ifdef SWIG_PYTHON_BUILD_NONE
+#  ifdef Py_None
+#   undef Py_None
+#   define Py_None SWIG_Py_None()
+#  endif
+SWIGRUNTIMEINLINE PyObject * 
+_SWIG_Py_None(void)
+{
+  PyObject *none = Py_BuildValue((char*)"");
+  Py_DECREF(none);
+  return none;
+}
+SWIGRUNTIME PyObject * 
+SWIG_Py_None(void)
+{
+  static PyObject *SWIG_STATIC_POINTER(none) = _SWIG_Py_None();
+  return none;
+}
+#endif
+
+/* The python void return value */
+
+SWIGRUNTIMEINLINE PyObject * 
+SWIG_Py_Void(void)
+{
+  PyObject *none = Py_None;
+  Py_INCREF(none);
+  return none;
+}
+
+/* SwigPyClientData */
+
+typedef struct {
+  PyObject *klass;
+  PyObject *newraw;
+  PyObject *newargs;
+  PyObject *destroy;
+  int delargs;
+  int implicitconv;
+} SwigPyClientData;
+
+SWIGRUNTIMEINLINE int 
+SWIG_Python_CheckImplicit(swig_type_info *ty)
+{
+  SwigPyClientData *data = (SwigPyClientData *)ty->clientdata;
+  return data ? data->implicitconv : 0;
+}
+
+SWIGRUNTIMEINLINE PyObject *
+SWIG_Python_ExceptionType(swig_type_info *desc) {
+  SwigPyClientData *data = desc ? (SwigPyClientData *) desc->clientdata : 0;
+  PyObject *klass = data ? data->klass : 0;
+  return (klass ? klass : PyExc_RuntimeError);
+}
+
+
+SWIGRUNTIME SwigPyClientData * 
+SwigPyClientData_New(PyObject* obj)
+{
+  if (!obj) {
+    return 0;
+  } else {
+    SwigPyClientData *data = (SwigPyClientData *)malloc(sizeof(SwigPyClientData));
+    /* the klass element */
+    data->klass = obj;
+    Py_INCREF(data->klass);
+    /* the newraw method and newargs arguments used to create a new raw instance */
+    if (PyClass_Check(obj)) {
+      data->newraw = 0;
+      data->newargs = obj;
+      Py_INCREF(obj);
+    } else {
+#if (PY_VERSION_HEX < 0x02020000)
+      data->newraw = 0;
+#else
+      data->newraw = PyObject_GetAttrString(data->klass, (char *)"__new__");
+#endif
+      if (data->newraw) {
+	Py_INCREF(data->newraw);
+	data->newargs = PyTuple_New(1);
+	PyTuple_SetItem(data->newargs, 0, obj);
+      } else {
+	data->newargs = obj;
+      }
+      Py_INCREF(data->newargs);
+    }
+    /* the destroy method, aka as the C++ delete method */
+    data->destroy = PyObject_GetAttrString(data->klass, (char *)"__swig_destroy__");
+    if (PyErr_Occurred()) {
+      PyErr_Clear();
+      data->destroy = 0;
+    }
+    if (data->destroy) {
+      int flags;
+      Py_INCREF(data->destroy);
+      flags = PyCFunction_GET_FLAGS(data->destroy);
+#ifdef METH_O
+      data->delargs = !(flags & (METH_O));
+#else
+      data->delargs = 0;
+#endif
+    } else {
+      data->delargs = 0;
+    }
+    data->implicitconv = 0;
+    return data;
+  }
+}
+
+SWIGRUNTIME void 
+SwigPyClientData_Del(SwigPyClientData* data)
+{
+  Py_XDECREF(data->newraw);
+  Py_XDECREF(data->newargs);
+  Py_XDECREF(data->destroy);
+}
+
+/* =============== SwigPyObject =====================*/
+
+typedef struct {
+  PyObject_HEAD
+  void *ptr;
+  swig_type_info *ty;
+  int own;
+  PyObject *next;
+} SwigPyObject;
+
+SWIGRUNTIME PyObject *
+SwigPyObject_long(SwigPyObject *v)
+{
+  return PyLong_FromVoidPtr(v->ptr);
+}
+
+SWIGRUNTIME PyObject *
+SwigPyObject_format(const char* fmt, SwigPyObject *v)
+{
+  PyObject *res = NULL;
+  PyObject *args = PyTuple_New(1);
+  if (args) {
+    if (PyTuple_SetItem(args, 0, SwigPyObject_long(v)) == 0) {
+      PyObject *ofmt = SWIG_Python_str_FromChar(fmt);
+      if (ofmt) {
+#if PY_VERSION_HEX >= 0x03000000
+	res = PyUnicode_Format(ofmt,args);
+#else
+	res = PyString_Format(ofmt,args);
+#endif
+	Py_DECREF(ofmt);
+      }
+      Py_DECREF(args);
+    }
+  }
+  return res;
+}
+
+SWIGRUNTIME PyObject *
+SwigPyObject_oct(SwigPyObject *v)
+{
+  return SwigPyObject_format("%o",v);
+}
+
+SWIGRUNTIME PyObject *
+SwigPyObject_hex(SwigPyObject *v)
+{
+  return SwigPyObject_format("%x",v);
+}
+
+SWIGRUNTIME PyObject *
+#ifdef METH_NOARGS
+SwigPyObject_repr(SwigPyObject *v)
+#else
+SwigPyObject_repr(SwigPyObject *v, PyObject *args)
+#endif
+{
+  const char *name = SWIG_TypePrettyName(v->ty);
+  PyObject *repr = SWIG_Python_str_FromFormat("<Swig Object of type '%s' at %p>", name, v);
+  if (v->next) {
+#ifdef METH_NOARGS
+    PyObject *nrep = SwigPyObject_repr((SwigPyObject *)v->next);
+#else
+    PyObject *nrep = SwigPyObject_repr((SwigPyObject *)v->next, args);
+#endif
+#if PY_VERSION_HEX >= 0x03000000
+    PyObject *joined = PyUnicode_Concat(repr, nrep);
+    Py_DecRef(repr);
+    Py_DecRef(nrep);
+    repr = joined;
+#else
+    PyString_ConcatAndDel(&repr,nrep);
+#endif
+  }
+  return repr;  
+}
+
+SWIGRUNTIME int
+SwigPyObject_print(SwigPyObject *v, FILE *fp, int SWIGUNUSEDPARM(flags))
+{
+  char *str;
+#ifdef METH_NOARGS
+  PyObject *repr = SwigPyObject_repr(v);
+#else
+  PyObject *repr = SwigPyObject_repr(v, NULL);
+#endif
+  if (repr) {
+    str = SWIG_Python_str_AsChar(repr); 
+    fputs(str, fp);
+    SWIG_Python_str_DelForPy3(str);
+    Py_DECREF(repr);
+    return 0; 
+  } else {
+    return 1; 
+  }
+}
+
+SWIGRUNTIME PyObject *
+SwigPyObject_str(SwigPyObject *v)
+{
+  char result[SWIG_BUFFER_SIZE];
+  return SWIG_PackVoidPtr(result, v->ptr, v->ty->name, sizeof(result)) ?
+    SWIG_Python_str_FromChar(result) : 0;
+}
+
+SWIGRUNTIME int
+SwigPyObject_compare(SwigPyObject *v, SwigPyObject *w)
+{
+  void *i = v->ptr;
+  void *j = w->ptr;
+  return (i < j) ? -1 : ((i > j) ? 1 : 0);
+}
+
+/* Added for Python 3.x, would it also be useful for Python 2.x? */
+SWIGRUNTIME PyObject*
+SwigPyObject_richcompare(SwigPyObject *v, SwigPyObject *w, int op)
+{
+  PyObject* res;
+  if( op != Py_EQ && op != Py_NE ) {
+    Py_INCREF(Py_NotImplemented);
+    return Py_NotImplemented;
+  }
+  if( (SwigPyObject_compare(v, w)==0) == (op == Py_EQ) )
+    res = Py_True;
+  else
+    res = Py_False;
+  Py_INCREF(res);
+  return res;  
+}
+
+
+SWIGRUNTIME PyTypeObject* _PySwigObject_type(void);
+
+SWIGRUNTIME PyTypeObject*
+SwigPyObject_type(void) {
+  static PyTypeObject *SWIG_STATIC_POINTER(type) = _PySwigObject_type();
+  return type;
+}
+
+SWIGRUNTIMEINLINE int
+SwigPyObject_Check(PyObject *op) {
+  return (Py_TYPE(op) == SwigPyObject_type())
+    || (strcmp(Py_TYPE(op)->tp_name,"SwigPyObject") == 0);
+}
+
+SWIGRUNTIME PyObject *
+SwigPyObject_New(void *ptr, swig_type_info *ty, int own);
+
+SWIGRUNTIME void
+SwigPyObject_dealloc(PyObject *v)
+{
+  SwigPyObject *sobj = (SwigPyObject *) v;
+  PyObject *next = sobj->next;
+  if (sobj->own == SWIG_POINTER_OWN) {
+    swig_type_info *ty = sobj->ty;
+    SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0;
+    PyObject *destroy = data ? data->destroy : 0;
+    if (destroy) {
+      /* destroy is always a VARARGS method */
+      PyObject *res;
+      if (data->delargs) {
+	/* we need to create a temporary object to carry the destroy operation */
+	PyObject *tmp = SwigPyObject_New(sobj->ptr, ty, 0);
+	res = SWIG_Python_CallFunctor(destroy, tmp);
+	Py_DECREF(tmp);
+      } else {
+	PyCFunction meth = PyCFunction_GET_FUNCTION(destroy);
+	PyObject *mself = PyCFunction_GET_SELF(destroy);
+	res = ((*meth)(mself, v));
+      }
+      Py_XDECREF(res);
+    } 
+#if !defined(SWIG_PYTHON_SILENT_MEMLEAK)
+    else {
+      const char *name = SWIG_TypePrettyName(ty);
+      printf("swig/python detected a memory leak of type '%s', no destructor found.\n", (name ? name : "unknown"));
+    }
+#endif
+  } 
+  Py_XDECREF(next);
+  PyObject_DEL(v);
+}
+
+SWIGRUNTIME PyObject* 
+SwigPyObject_append(PyObject* v, PyObject* next)
+{
+  SwigPyObject *sobj = (SwigPyObject *) v;
+#ifndef METH_O
+  PyObject *tmp = 0;
+  if (!PyArg_ParseTuple(next,(char *)"O:append", &tmp)) return NULL;
+  next = tmp;
+#endif
+  if (!SwigPyObject_Check(next)) {
+    return NULL;
+  }
+  sobj->next = next;
+  Py_INCREF(next);
+  return SWIG_Py_Void();
+}
+
+SWIGRUNTIME PyObject* 
+#ifdef METH_NOARGS
+SwigPyObject_next(PyObject* v)
+#else
+SwigPyObject_next(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
+#endif
+{
+  SwigPyObject *sobj = (SwigPyObject *) v;
+  if (sobj->next) {    
+    Py_INCREF(sobj->next);
+    return sobj->next;
+  } else {
+    return SWIG_Py_Void();
+  }
+}
+
+SWIGINTERN PyObject*
+#ifdef METH_NOARGS
+SwigPyObject_disown(PyObject *v)
+#else
+SwigPyObject_disown(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
+#endif
+{
+  SwigPyObject *sobj = (SwigPyObject *)v;
+  sobj->own = 0;
+  return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject*
+#ifdef METH_NOARGS
+SwigPyObject_acquire(PyObject *v)
+#else
+SwigPyObject_acquire(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
+#endif
+{
+  SwigPyObject *sobj = (SwigPyObject *)v;
+  sobj->own = SWIG_POINTER_OWN;
+  return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject*
+SwigPyObject_own(PyObject *v, PyObject *args)
+{
+  PyObject *val = 0;
+#if (PY_VERSION_HEX < 0x02020000)
+  if (!PyArg_ParseTuple(args,(char *)"|O:own",&val))
+#else
+  if (!PyArg_UnpackTuple(args, (char *)"own", 0, 1, &val)) 
+#endif
+    {
+      return NULL;
+    } 
+  else
+    {
+      SwigPyObject *sobj = (SwigPyObject *)v;
+      PyObject *obj = PyBool_FromLong(sobj->own);
+      if (val) {
+#ifdef METH_NOARGS
+	if (PyObject_IsTrue(val)) {
+	  SwigPyObject_acquire(v);
+	} else {
+	  SwigPyObject_disown(v);
+	}
+#else
+	if (PyObject_IsTrue(val)) {
+	  SwigPyObject_acquire(v,args);
+	} else {
+	  SwigPyObject_disown(v,args);
+	}
+#endif
+      } 
+      return obj;
+    }
+}
+
+#ifdef METH_O
+static PyMethodDef
+swigobject_methods[] = {
+  {(char *)"disown",  (PyCFunction)SwigPyObject_disown,  METH_NOARGS,  (char *)"releases ownership of the pointer"},
+  {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_NOARGS,  (char *)"aquires ownership of the pointer"},
+  {(char *)"own",     (PyCFunction)SwigPyObject_own,     METH_VARARGS, (char *)"returns/sets ownership of the pointer"},
+  {(char *)"append",  (PyCFunction)SwigPyObject_append,  METH_O,       (char *)"appends another 'this' object"},
+  {(char *)"next",    (PyCFunction)SwigPyObject_next,    METH_NOARGS,  (char *)"returns the next 'this' object"},
+  {(char *)"__repr__",(PyCFunction)SwigPyObject_repr,    METH_NOARGS,  (char *)"returns object representation"},
+  {0, 0, 0, 0}  
+};
+#else
+static PyMethodDef
+swigobject_methods[] = {
+  {(char *)"disown",  (PyCFunction)SwigPyObject_disown,  METH_VARARGS,  (char *)"releases ownership of the pointer"},
+  {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_VARARGS,  (char *)"aquires ownership of the pointer"},
+  {(char *)"own",     (PyCFunction)SwigPyObject_own,     METH_VARARGS,  (char *)"returns/sets ownership of the pointer"},
+  {(char *)"append",  (PyCFunction)SwigPyObject_append,  METH_VARARGS,  (char *)"appends another 'this' object"},
+  {(char *)"next",    (PyCFunction)SwigPyObject_next,    METH_VARARGS,  (char *)"returns the next 'this' object"},
+  {(char *)"__repr__",(PyCFunction)SwigPyObject_repr,   METH_VARARGS,  (char *)"returns object representation"},
+  {0, 0, 0, 0}  
+};
+#endif
+
+#if PY_VERSION_HEX < 0x02020000
+SWIGINTERN PyObject *
+SwigPyObject_getattr(SwigPyObject *sobj,char *name)
+{
+  return Py_FindMethod(swigobject_methods, (PyObject *)sobj, name);
+}
+#endif
+
+SWIGRUNTIME PyTypeObject*
+_PySwigObject_type(void) {
+  static char swigobject_doc[] = "Swig object carries a C/C++ instance pointer";
+  
+  static PyNumberMethods SwigPyObject_as_number = {
+    (binaryfunc)0, /*nb_add*/
+    (binaryfunc)0, /*nb_subtract*/
+    (binaryfunc)0, /*nb_multiply*/
+    /* nb_divide removed in Python 3 */
+#if PY_VERSION_HEX < 0x03000000
+    (binaryfunc)0, /*nb_divide*/
+#endif
+    (binaryfunc)0, /*nb_remainder*/
+    (binaryfunc)0, /*nb_divmod*/
+    (ternaryfunc)0,/*nb_power*/
+    (unaryfunc)0,  /*nb_negative*/
+    (unaryfunc)0,  /*nb_positive*/
+    (unaryfunc)0,  /*nb_absolute*/
+    (inquiry)0,    /*nb_nonzero*/
+    0,		   /*nb_invert*/
+    0,		   /*nb_lshift*/
+    0,		   /*nb_rshift*/
+    0,		   /*nb_and*/
+    0,		   /*nb_xor*/
+    0,		   /*nb_or*/
+#if PY_VERSION_HEX < 0x03000000
+    0,   /*nb_coerce*/
+#endif
+    (unaryfunc)SwigPyObject_long, /*nb_int*/
+#if PY_VERSION_HEX < 0x03000000
+    (unaryfunc)SwigPyObject_long, /*nb_long*/
+#else
+    0, /*nb_reserved*/
+#endif
+    (unaryfunc)0,                 /*nb_float*/
+#if PY_VERSION_HEX < 0x03000000
+    (unaryfunc)SwigPyObject_oct,  /*nb_oct*/
+    (unaryfunc)SwigPyObject_hex,  /*nb_hex*/
+#endif
+#if PY_VERSION_HEX >= 0x03000000 /* 3.0 */
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index, nb_inplace_divide removed */
+#elif PY_VERSION_HEX >= 0x02050000 /* 2.5.0 */
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index */
+#elif PY_VERSION_HEX >= 0x02020000 /* 2.2.0 */
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_true_divide */
+#elif PY_VERSION_HEX >= 0x02000000 /* 2.0.0 */
+    0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_or */
+#endif
+  };
+
+  static PyTypeObject swigpyobject_type;  
+  static int type_init = 0;
+  if (!type_init) {
+    const PyTypeObject tmp
+      = {
+	/* PyObject header changed in Python 3 */
+#if PY_VERSION_HEX >= 0x03000000
+	PyVarObject_HEAD_INIT(&PyType_Type, 0)
+#else    
+	PyObject_HEAD_INIT(NULL)
+	0,				    /* ob_size */
+#endif
+	(char *)"SwigPyObject",		    /* tp_name */
+	sizeof(SwigPyObject),		    /* tp_basicsize */
+	0,			            /* tp_itemsize */
+	(destructor)SwigPyObject_dealloc,   /* tp_dealloc */
+	(printfunc)SwigPyObject_print,	    /* tp_print */
+#if PY_VERSION_HEX < 0x02020000
+	(getattrfunc)SwigPyObject_getattr,  /* tp_getattr */ 
+#else
+	(getattrfunc)0,			    /* tp_getattr */ 
+#endif
+	(setattrfunc)0,			    /* tp_setattr */ 
+#if PY_VERSION_HEX >= 0x03000000
+    0, /* tp_reserved in 3.0.1, tp_compare in 3.0.0 but not used */
+#else
+	(cmpfunc)SwigPyObject_compare,	    /* tp_compare */
+#endif
+	(reprfunc)SwigPyObject_repr,	    /* tp_repr */    
+	&SwigPyObject_as_number,	    /* tp_as_number */
+	0,				    /* tp_as_sequence */
+	0,				    /* tp_as_mapping */
+	(hashfunc)0,			    /* tp_hash */
+	(ternaryfunc)0,			    /* tp_call */
+	(reprfunc)SwigPyObject_str,	    /* tp_str */
+	PyObject_GenericGetAttr,            /* tp_getattro */
+	0,				    /* tp_setattro */
+	0,		                    /* tp_as_buffer */
+	Py_TPFLAGS_DEFAULT,	            /* tp_flags */
+	swigobject_doc, 	            /* tp_doc */        
+	0,                                  /* tp_traverse */
+	0,                                  /* tp_clear */
+	(richcmpfunc)SwigPyObject_richcompare,           /* tp_richcompare */
+	0,                                  /* tp_weaklistoffset */
+#if PY_VERSION_HEX >= 0x02020000
+	0,                                  /* tp_iter */
+	0,                                  /* tp_iternext */
+	swigobject_methods,		    /* tp_methods */ 
+	0,			            /* tp_members */
+	0,				    /* tp_getset */	    	
+	0,			            /* tp_base */	        
+	0,				    /* tp_dict */	    	
+	0,				    /* tp_descr_get */  	
+	0,				    /* tp_descr_set */  	
+	0,				    /* tp_dictoffset */ 	
+	0,				    /* tp_init */	    	
+	0,				    /* tp_alloc */	    	
+	0,			            /* tp_new */	    	
+	0,	                            /* tp_free */	   
+	0,                                  /* tp_is_gc */  
+	0,				    /* tp_bases */   
+	0,				    /* tp_mro */
+	0,				    /* tp_cache */   
+	0,				    /* tp_subclasses */
+	0,				    /* tp_weaklist */
+#endif
+#if PY_VERSION_HEX >= 0x02030000
+	0,                                  /* tp_del */
+#endif
+#ifdef COUNT_ALLOCS
+	0,0,0,0                             /* tp_alloc -> tp_next */
+#endif
+      };
+    swigpyobject_type = tmp;
+    /* for Python 3 we already assigned ob_type in PyVarObject_HEAD_INIT() */
+#if PY_VERSION_HEX < 0x03000000
+    swigpyobject_type.ob_type = &PyType_Type;
+#endif
+    type_init = 1;
+  }
+  return &swigpyobject_type;
+}
+
+SWIGRUNTIME PyObject *
+SwigPyObject_New(void *ptr, swig_type_info *ty, int own)
+{
+  SwigPyObject *sobj = PyObject_NEW(SwigPyObject, SwigPyObject_type());
+  if (sobj) {
+    sobj->ptr  = ptr;
+    sobj->ty   = ty;
+    sobj->own  = own;
+    sobj->next = 0;
+  }
+  return (PyObject *)sobj;
+}
+
+/* -----------------------------------------------------------------------------
+ * Implements a simple Swig Packed type, and use it instead of string
+ * ----------------------------------------------------------------------------- */
+
+typedef struct {
+  PyObject_HEAD
+  void *pack;
+  swig_type_info *ty;
+  size_t size;
+} SwigPyPacked;
+
+SWIGRUNTIME int
+SwigPyPacked_print(SwigPyPacked *v, FILE *fp, int SWIGUNUSEDPARM(flags))
+{
+  char result[SWIG_BUFFER_SIZE];
+  fputs("<Swig Packed ", fp); 
+  if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) {
+    fputs("at ", fp); 
+    fputs(result, fp); 
+  }
+  fputs(v->ty->name,fp); 
+  fputs(">", fp);
+  return 0; 
+}
+  
+SWIGRUNTIME PyObject *
+SwigPyPacked_repr(SwigPyPacked *v)
+{
+  char result[SWIG_BUFFER_SIZE];
+  if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) {
+    return SWIG_Python_str_FromFormat("<Swig Packed at %s%s>", result, v->ty->name);
+  } else {
+    return SWIG_Python_str_FromFormat("<Swig Packed %s>", v->ty->name);
+  }  
+}
+
+SWIGRUNTIME PyObject *
+SwigPyPacked_str(SwigPyPacked *v)
+{
+  char result[SWIG_BUFFER_SIZE];
+  if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))){
+    return SWIG_Python_str_FromFormat("%s%s", result, v->ty->name);
+  } else {
+    return SWIG_Python_str_FromChar(v->ty->name);
+  }  
+}
+
+SWIGRUNTIME int
+SwigPyPacked_compare(SwigPyPacked *v, SwigPyPacked *w)
+{
+  size_t i = v->size;
+  size_t j = w->size;
+  int s = (i < j) ? -1 : ((i > j) ? 1 : 0);
+  return s ? s : strncmp((char *)v->pack, (char *)w->pack, 2*v->size);
+}
+
+SWIGRUNTIME PyTypeObject* _PySwigPacked_type(void);
+
+SWIGRUNTIME PyTypeObject*
+SwigPyPacked_type(void) {
+  static PyTypeObject *SWIG_STATIC_POINTER(type) = _PySwigPacked_type();
+  return type;
+}
+
+SWIGRUNTIMEINLINE int
+SwigPyPacked_Check(PyObject *op) {
+  return ((op)->ob_type == _PySwigPacked_type()) 
+    || (strcmp((op)->ob_type->tp_name,"SwigPyPacked") == 0);
+}
+
+SWIGRUNTIME void
+SwigPyPacked_dealloc(PyObject *v)
+{
+  if (SwigPyPacked_Check(v)) {
+    SwigPyPacked *sobj = (SwigPyPacked *) v;
+    free(sobj->pack);
+  }
+  PyObject_DEL(v);
+}
+
+SWIGRUNTIME PyTypeObject*
+_PySwigPacked_type(void) {
+  static char swigpacked_doc[] = "Swig object carries a C/C++ instance pointer";
+  static PyTypeObject swigpypacked_type;
+  static int type_init = 0;  
+  if (!type_init) {
+    const PyTypeObject tmp
+      = {
+    /* PyObject header changed in Python 3 */
+#if PY_VERSION_HEX>=0x03000000
+    PyVarObject_HEAD_INIT(&PyType_Type, 0)
+#else
+	PyObject_HEAD_INIT(NULL)
+    0,				    /* ob_size */	
+#endif
+	(char *)"SwigPyPacked",		    /* tp_name */	
+	sizeof(SwigPyPacked),		    /* tp_basicsize */	
+	0,				    /* tp_itemsize */	
+	(destructor)SwigPyPacked_dealloc,   /* tp_dealloc */	
+	(printfunc)SwigPyPacked_print,	    /* tp_print */   	
+	(getattrfunc)0,			    /* tp_getattr */ 	
+	(setattrfunc)0,			    /* tp_setattr */ 	
+#if PY_VERSION_HEX>=0x03000000
+    0, /* tp_reserved in 3.0.1 */
+#else
+    (cmpfunc)SwigPyPacked_compare,	    /* tp_compare */
+#endif
+	(reprfunc)SwigPyPacked_repr,	    /* tp_repr */
+	0,	                            /* tp_as_number */
+	0,				    /* tp_as_sequence */
+	0,				    /* tp_as_mapping */
+	(hashfunc)0,			    /* tp_hash */
+	(ternaryfunc)0,			    /* tp_call */
+	(reprfunc)SwigPyPacked_str,	    /* tp_str */
+	PyObject_GenericGetAttr,            /* tp_getattro */
+	0,				    /* tp_setattro */
+	0,		                    /* tp_as_buffer */
+	Py_TPFLAGS_DEFAULT,	            /* tp_flags */
+	swigpacked_doc, 	            /* tp_doc */
+	0,                                  /* tp_traverse */
+	0,                                  /* tp_clear */
+	0,                                  /* tp_richcompare */
+	0,                                  /* tp_weaklistoffset */
+#if PY_VERSION_HEX >= 0x02020000
+	0,                                  /* tp_iter */
+	0,                                  /* tp_iternext */
+	0,		                    /* tp_methods */ 
+	0,			            /* tp_members */
+	0,				    /* tp_getset */	    	
+	0,			            /* tp_base */	        
+	0,				    /* tp_dict */	    	
+	0,				    /* tp_descr_get */  	
+	0,				    /* tp_descr_set */  	
+	0,				    /* tp_dictoffset */ 	
+	0,				    /* tp_init */	    	
+	0,				    /* tp_alloc */	    	
+	0,			            /* tp_new */	    	
+	0, 	                            /* tp_free */	   
+        0,                                  /* tp_is_gc */  
+	0,				    /* tp_bases */   
+	0,				    /* tp_mro */
+	0,				    /* tp_cache */   
+ 	0,				    /* tp_subclasses */
+	0,				    /* tp_weaklist */
+#endif
+#if PY_VERSION_HEX >= 0x02030000
+	0,                                  /* tp_del */
+#endif
+#ifdef COUNT_ALLOCS
+	0,0,0,0                             /* tp_alloc -> tp_next */
+#endif
+      };
+    swigpypacked_type = tmp;
+    /* for Python 3 the ob_type already assigned in PyVarObject_HEAD_INIT() */
+#if PY_VERSION_HEX < 0x03000000
+    swigpypacked_type.ob_type = &PyType_Type;
+#endif
+    type_init = 1;
+  }
+  return &swigpypacked_type;
+}
+
+SWIGRUNTIME PyObject *
+SwigPyPacked_New(void *ptr, size_t size, swig_type_info *ty)
+{
+  SwigPyPacked *sobj = PyObject_NEW(SwigPyPacked, SwigPyPacked_type());
+  if (sobj) {
+    void *pack = malloc(size);
+    if (pack) {
+      memcpy(pack, ptr, size);
+      sobj->pack = pack;
+      sobj->ty   = ty;
+      sobj->size = size;
+    } else {
+      PyObject_DEL((PyObject *) sobj);
+      sobj = 0;
+    }
+  }
+  return (PyObject *) sobj;
+}
+
+SWIGRUNTIME swig_type_info *
+SwigPyPacked_UnpackData(PyObject *obj, void *ptr, size_t size)
+{
+  if (SwigPyPacked_Check(obj)) {
+    SwigPyPacked *sobj = (SwigPyPacked *)obj;
+    if (sobj->size != size) return 0;
+    memcpy(ptr, sobj->pack, size);
+    return sobj->ty;
+  } else {
+    return 0;
+  }
+}
+
+/* -----------------------------------------------------------------------------
+ * pointers/data manipulation
+ * ----------------------------------------------------------------------------- */
+
+SWIGRUNTIMEINLINE PyObject *
+_SWIG_This(void)
+{
+    return SWIG_Python_str_FromChar("this");
+}
+
+SWIGRUNTIME PyObject *
+SWIG_This(void)
+{
+  static PyObject *SWIG_STATIC_POINTER(swig_this) = _SWIG_This();
+  return swig_this;
+}
+
+/* #define SWIG_PYTHON_SLOW_GETSET_THIS */
+
+/* TODO: I don't know how to implement the fast getset in Python 3 right now */
+#if PY_VERSION_HEX>=0x03000000
+#define SWIG_PYTHON_SLOW_GETSET_THIS 
+#endif
+
+SWIGRUNTIME SwigPyObject *
+SWIG_Python_GetSwigThis(PyObject *pyobj) 
+{
+  if (SwigPyObject_Check(pyobj)) {
+    return (SwigPyObject *) pyobj;
+  } else {
+    PyObject *obj = 0;
+#if (!defined(SWIG_PYTHON_SLOW_GETSET_THIS) && (PY_VERSION_HEX >= 0x02030000))
+    if (PyInstance_Check(pyobj)) {
+      obj = _PyInstance_Lookup(pyobj, SWIG_This());      
+    } else {
+      PyObject **dictptr = _PyObject_GetDictPtr(pyobj);
+      if (dictptr != NULL) {
+	PyObject *dict = *dictptr;
+	obj = dict ? PyDict_GetItem(dict, SWIG_This()) : 0;
+      } else {
+#ifdef PyWeakref_CheckProxy
+	if (PyWeakref_CheckProxy(pyobj)) {
+	  PyObject *wobj = PyWeakref_GET_OBJECT(pyobj);
+	  return wobj ? SWIG_Python_GetSwigThis(wobj) : 0;
+	}
+#endif
+	obj = PyObject_GetAttr(pyobj,SWIG_This());
+	if (obj) {
+	  Py_DECREF(obj);
+	} else {
+	  if (PyErr_Occurred()) PyErr_Clear();
+	  return 0;
+	}
+      }
+    }
+#else
+    obj = PyObject_GetAttr(pyobj,SWIG_This());
+    if (obj) {
+      Py_DECREF(obj);
+    } else {
+      if (PyErr_Occurred()) PyErr_Clear();
+      return 0;
+    }
+#endif
+    if (obj && !SwigPyObject_Check(obj)) {
+      /* a PyObject is called 'this', try to get the 'real this'
+	 SwigPyObject from it */ 
+      return SWIG_Python_GetSwigThis(obj);
+    }
+    return (SwigPyObject *)obj;
+  }
+}
+
+/* Acquire a pointer value */
+
+SWIGRUNTIME int
+SWIG_Python_AcquirePtr(PyObject *obj, int own) {
+  if (own == SWIG_POINTER_OWN) {
+    SwigPyObject *sobj = SWIG_Python_GetSwigThis(obj);
+    if (sobj) {
+      int oldown = sobj->own;
+      sobj->own = own;
+      return oldown;
+    }
+  }
+  return 0;
+}
+
+/* Convert a pointer value */
+
+SWIGRUNTIME int
+SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int flags, int *own) {
+  if (!obj) return SWIG_ERROR;
+  if (obj == Py_None) {
+    if (ptr) *ptr = 0;
+    return SWIG_OK;
+  } else {
+    SwigPyObject *sobj = SWIG_Python_GetSwigThis(obj);
+    if (own)
+      *own = 0;
+    while (sobj) {
+      void *vptr = sobj->ptr;
+      if (ty) {
+	swig_type_info *to = sobj->ty;
+	if (to == ty) {
+	  /* no type cast needed */
+	  if (ptr) *ptr = vptr;
+	  break;
+	} else {
+	  swig_cast_info *tc = SWIG_TypeCheck(to->name,ty);
+	  if (!tc) {
+	    sobj = (SwigPyObject *)sobj->next;
+	  } else {
+	    if (ptr) {
+              int newmemory = 0;
+              *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
+              if (newmemory == SWIG_CAST_NEW_MEMORY) {
+                assert(own);
+                if (own)
+                  *own = *own | SWIG_CAST_NEW_MEMORY;
+              }
+            }
+	    break;
+	  }
+	}
+      } else {
+	if (ptr) *ptr = vptr;
+	break;
+      }
+    }
+    if (sobj) {
+      if (own)
+        *own = *own | sobj->own;
+      if (flags & SWIG_POINTER_DISOWN) {
+	sobj->own = 0;
+      }
+      return SWIG_OK;
+    } else {
+      int res = SWIG_ERROR;
+      if (flags & SWIG_POINTER_IMPLICIT_CONV) {
+	SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0;
+	if (data && !data->implicitconv) {
+	  PyObject *klass = data->klass;
+	  if (klass) {
+	    PyObject *impconv;
+	    data->implicitconv = 1; /* avoid recursion and call 'explicit' constructors*/
+	    impconv = SWIG_Python_CallFunctor(klass, obj);
+	    data->implicitconv = 0;
+	    if (PyErr_Occurred()) {
+	      PyErr_Clear();
+	      impconv = 0;
+	    }
+	    if (impconv) {
+	      SwigPyObject *iobj = SWIG_Python_GetSwigThis(impconv);
+	      if (iobj) {
+		void *vptr;
+		res = SWIG_Python_ConvertPtrAndOwn((PyObject*)iobj, &vptr, ty, 0, 0);
+		if (SWIG_IsOK(res)) {
+		  if (ptr) {
+		    *ptr = vptr;
+		    /* transfer the ownership to 'ptr' */
+		    iobj->own = 0;
+		    res = SWIG_AddCast(res);
+		    res = SWIG_AddNewMask(res);
+		  } else {
+		    res = SWIG_AddCast(res);		    
+		  }
+		}
+	      }
+	      Py_DECREF(impconv);
+	    }
+	  }
+	}
+      }
+      return res;
+    }
+  }
+}
+
+/* Convert a function ptr value */
+
+SWIGRUNTIME int
+SWIG_Python_ConvertFunctionPtr(PyObject *obj, void **ptr, swig_type_info *ty) {
+  if (!PyCFunction_Check(obj)) {
+    return SWIG_ConvertPtr(obj, ptr, ty, 0);
+  } else {
+    void *vptr = 0;
+    
+    /* here we get the method pointer for callbacks */
+    const char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc);
+    const char *desc = doc ? strstr(doc, "swig_ptr: ") : 0;
+    if (desc)
+      desc = ty ? SWIG_UnpackVoidPtr(desc + 10, &vptr, ty->name) : 0;
+    if (!desc) 
+      return SWIG_ERROR;
+    if (ty) {
+      swig_cast_info *tc = SWIG_TypeCheck(desc,ty);
+      if (tc) {
+        int newmemory = 0;
+        *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
+        assert(!newmemory); /* newmemory handling not yet implemented */
+      } else {
+        return SWIG_ERROR;
+      }
+    } else {
+      *ptr = vptr;
+    }
+    return SWIG_OK;
+  }
+}
+
+/* Convert a packed value value */
+
+SWIGRUNTIME int
+SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, size_t sz, swig_type_info *ty) {
+  swig_type_info *to = SwigPyPacked_UnpackData(obj, ptr, sz);
+  if (!to) return SWIG_ERROR;
+  if (ty) {
+    if (to != ty) {
+      /* check type cast? */
+      swig_cast_info *tc = SWIG_TypeCheck(to->name,ty);
+      if (!tc) return SWIG_ERROR;
+    }
+  }
+  return SWIG_OK;
+}  
+
+/* -----------------------------------------------------------------------------
+ * Create a new pointer object
+ * ----------------------------------------------------------------------------- */
+
+/*
+  Create a new instance object, without calling __init__, and set the
+  'this' attribute.
+*/
+
+SWIGRUNTIME PyObject* 
+SWIG_Python_NewShadowInstance(SwigPyClientData *data, PyObject *swig_this)
+{
+#if (PY_VERSION_HEX >= 0x02020000)
+  PyObject *inst = 0;
+  PyObject *newraw = data->newraw;
+  if (newraw) {
+    inst = PyObject_Call(newraw, data->newargs, NULL);
+    if (inst) {
+#if !defined(SWIG_PYTHON_SLOW_GETSET_THIS)
+      PyObject **dictptr = _PyObject_GetDictPtr(inst);
+      if (dictptr != NULL) {
+	PyObject *dict = *dictptr;
+	if (dict == NULL) {
+	  dict = PyDict_New();
+	  *dictptr = dict;
+	  PyDict_SetItem(dict, SWIG_This(), swig_this);
+	}
+      }
+#else
+      PyObject *key = SWIG_This();
+      PyObject_SetAttr(inst, key, swig_this);
+#endif
+    }
+  } else {
+#if PY_VERSION_HEX >= 0x03000000
+    inst = PyBaseObject_Type.tp_new((PyTypeObject*) data->newargs, Py_None, Py_None);
+    PyObject_SetAttr(inst, SWIG_This(), swig_this);
+    Py_TYPE(inst)->tp_flags &= ~Py_TPFLAGS_VALID_VERSION_TAG;
+#else
+    PyObject *dict = PyDict_New();
+    PyDict_SetItem(dict, SWIG_This(), swig_this);
+    inst = PyInstance_NewRaw(data->newargs, dict);
+    Py_DECREF(dict);
+#endif
+  }
+  return inst;
+#else
+#if (PY_VERSION_HEX >= 0x02010000)
+  PyObject *inst;
+  PyObject *dict = PyDict_New();
+  PyDict_SetItem(dict, SWIG_This(), swig_this);
+  inst = PyInstance_NewRaw(data->newargs, dict);
+  Py_DECREF(dict);
+  return (PyObject *) inst;
+#else
+  PyInstanceObject *inst = PyObject_NEW(PyInstanceObject, &PyInstance_Type);
+  if (inst == NULL) {
+    return NULL;
+  }
+  inst->in_class = (PyClassObject *)data->newargs;
+  Py_INCREF(inst->in_class);
+  inst->in_dict = PyDict_New();
+  if (inst->in_dict == NULL) {
+    Py_DECREF(inst);
+    return NULL;
+  }
+#ifdef Py_TPFLAGS_HAVE_WEAKREFS
+  inst->in_weakreflist = NULL;
+#endif
+#ifdef Py_TPFLAGS_GC
+  PyObject_GC_Init(inst);
+#endif
+  PyDict_SetItem(inst->in_dict, SWIG_This(), swig_this);
+  return (PyObject *) inst;
+#endif
+#endif
+}
+
+SWIGRUNTIME void
+SWIG_Python_SetSwigThis(PyObject *inst, PyObject *swig_this)
+{
+ PyObject *dict;
+#if (PY_VERSION_HEX >= 0x02020000) && !defined(SWIG_PYTHON_SLOW_GETSET_THIS)
+ PyObject **dictptr = _PyObject_GetDictPtr(inst);
+ if (dictptr != NULL) {
+   dict = *dictptr;
+   if (dict == NULL) {
+     dict = PyDict_New();
+     *dictptr = dict;
+   }
+   PyDict_SetItem(dict, SWIG_This(), swig_this);
+   return;
+ }
+#endif
+ dict = PyObject_GetAttrString(inst, (char*)"__dict__");
+ PyDict_SetItem(dict, SWIG_This(), swig_this);
+ Py_DECREF(dict);
+} 
+
+
+SWIGINTERN PyObject *
+SWIG_Python_InitShadowInstance(PyObject *args) {
+  PyObject *obj[2];
+  if (!SWIG_Python_UnpackTuple(args,(char*)"swiginit", 2, 2, obj)) {
+    return NULL;
+  } else {
+    SwigPyObject *sthis = SWIG_Python_GetSwigThis(obj[0]);
+    if (sthis) {
+      SwigPyObject_append((PyObject*) sthis, obj[1]);
+    } else {
+      SWIG_Python_SetSwigThis(obj[0], obj[1]);
+    }
+    return SWIG_Py_Void();
+  }
+}
+
+/* Create a new pointer object */
+
+SWIGRUNTIME PyObject *
+SWIG_Python_NewPointerObj(void *ptr, swig_type_info *type, int flags) {
+  if (!ptr) {
+    return SWIG_Py_Void();
+  } else {
+    int own = (flags & SWIG_POINTER_OWN) ? SWIG_POINTER_OWN : 0;
+    PyObject *robj = SwigPyObject_New(ptr, type, own);
+    SwigPyClientData *clientdata = type ? (SwigPyClientData *)(type->clientdata) : 0;
+    if (clientdata && !(flags & SWIG_POINTER_NOSHADOW)) {
+      PyObject *inst = SWIG_Python_NewShadowInstance(clientdata, robj);
+      if (inst) {
+	Py_DECREF(robj);
+	robj = inst;
+      }
+    }
+    return robj;
+  }
+}
+
+/* Create a new packed object */
+
+SWIGRUNTIMEINLINE PyObject *
+SWIG_Python_NewPackedObj(void *ptr, size_t sz, swig_type_info *type) {
+  return ptr ? SwigPyPacked_New((void *) ptr, sz, type) : SWIG_Py_Void();
+}
+
+/* -----------------------------------------------------------------------------*
+ *  Get type list 
+ * -----------------------------------------------------------------------------*/
+
+#ifdef SWIG_LINK_RUNTIME
+void *SWIG_ReturnGlobalTypeList(void *);
+#endif
+
+SWIGRUNTIME swig_module_info *
+SWIG_Python_GetModule(void) {
+  static void *type_pointer = (void *)0;
+  /* first check if module already created */
+  if (!type_pointer) {
+#ifdef SWIG_LINK_RUNTIME
+    type_pointer = SWIG_ReturnGlobalTypeList((void *)0);
+#else
+    type_pointer = PyCObject_Import((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION,
+				    (char*)"type_pointer" SWIG_TYPE_TABLE_NAME);
+    if (PyErr_Occurred()) {
+      PyErr_Clear();
+      type_pointer = (void *)0;
+    }
+#endif
+  }
+  return (swig_module_info *) type_pointer;
+}
+
+#if PY_MAJOR_VERSION < 2
+/* PyModule_AddObject function was introduced in Python 2.0.  The following function
+   is copied out of Python/modsupport.c in python version 2.3.4 */
+SWIGINTERN int
+PyModule_AddObject(PyObject *m, char *name, PyObject *o)
+{
+  PyObject *dict;
+  if (!PyModule_Check(m)) {
+    PyErr_SetString(PyExc_TypeError,
+		    "PyModule_AddObject() needs module as first arg");
+    return SWIG_ERROR;
+  }
+  if (!o) {
+    PyErr_SetString(PyExc_TypeError,
+		    "PyModule_AddObject() needs non-NULL value");
+    return SWIG_ERROR;
+  }
+  
+  dict = PyModule_GetDict(m);
+  if (dict == NULL) {
+    /* Internal error -- modules must have a dict! */
+    PyErr_Format(PyExc_SystemError, "module '%s' has no __dict__",
+		 PyModule_GetName(m));
+    return SWIG_ERROR;
+  }
+  if (PyDict_SetItemString(dict, name, o))
+    return SWIG_ERROR;
+  Py_DECREF(o);
+  return SWIG_OK;
+}
+#endif
+
+SWIGRUNTIME void
+SWIG_Python_DestroyModule(void *vptr)
+{
+  swig_module_info *swig_module = (swig_module_info *) vptr;
+  swig_type_info **types = swig_module->types;
+  size_t i;
+  for (i =0; i < swig_module->size; ++i) {
+    swig_type_info *ty = types[i];
+    if (ty->owndata) {
+      SwigPyClientData *data = (SwigPyClientData *) ty->clientdata;
+      if (data) SwigPyClientData_Del(data);
+    }
+  }
+  Py_DECREF(SWIG_This());
+}
+
+SWIGRUNTIME void
+SWIG_Python_SetModule(swig_module_info *swig_module) {
+  static PyMethodDef swig_empty_runtime_method_table[] = { {NULL, NULL, 0, NULL} };/* Sentinel */
+
+#if PY_VERSION_HEX >= 0x03000000
+ /* Add a dummy module object into sys.modules */
+  PyObject *module = PyImport_AddModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION);
+#else
+  PyObject *module = Py_InitModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION,
+				   swig_empty_runtime_method_table);
+#endif
+  PyObject *pointer = PyCObject_FromVoidPtr((void *) swig_module, SWIG_Python_DestroyModule);
+  if (pointer && module) {
+    PyModule_AddObject(module, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME, pointer);
+  } else {
+    Py_XDECREF(pointer);
+  }
+}
+
+/* The python cached type query */
+SWIGRUNTIME PyObject *
+SWIG_Python_TypeCache(void) {
+  static PyObject *SWIG_STATIC_POINTER(cache) = PyDict_New();
+  return cache;
+}
+
+SWIGRUNTIME swig_type_info *
+SWIG_Python_TypeQuery(const char *type)
+{
+  PyObject *cache = SWIG_Python_TypeCache();
+  PyObject *key = SWIG_Python_str_FromChar(type); 
+  PyObject *obj = PyDict_GetItem(cache, key);
+  swig_type_info *descriptor;
+  if (obj) {
+    descriptor = (swig_type_info *) PyCObject_AsVoidPtr(obj);
+  } else {
+    swig_module_info *swig_module = SWIG_Python_GetModule();
+    descriptor = SWIG_TypeQueryModule(swig_module, swig_module, type);
+    if (descriptor) {
+      obj = PyCObject_FromVoidPtr(descriptor, NULL);
+      PyDict_SetItem(cache, key, obj);
+      Py_DECREF(obj);
+    }
+  }
+  Py_DECREF(key);
+  return descriptor;
+}
+
+/* 
+   For backward compatibility only
+*/
+#define SWIG_POINTER_EXCEPTION  0
+#define SWIG_arg_fail(arg)      SWIG_Python_ArgFail(arg)
+#define SWIG_MustGetPtr(p, type, argnum, flags)  SWIG_Python_MustGetPtr(p, type, argnum, flags)
+
+SWIGRUNTIME int
+SWIG_Python_AddErrMesg(const char* mesg, int infront)
+{  
+  if (PyErr_Occurred()) {
+    PyObject *type = 0;
+    PyObject *value = 0;
+    PyObject *traceback = 0;
+    PyErr_Fetch(&type, &value, &traceback);
+    if (value) {
+      char *tmp;
+      PyObject *old_str = PyObject_Str(value);
+      Py_XINCREF(type);
+      PyErr_Clear();
+      if (infront) {
+	PyErr_Format(type, "%s %s", mesg, tmp = SWIG_Python_str_AsChar(old_str));
+      } else {
+	PyErr_Format(type, "%s %s", tmp = SWIG_Python_str_AsChar(old_str), mesg);
+      }
+      SWIG_Python_str_DelForPy3(tmp);
+      Py_DECREF(old_str);
+    }
+    return 1;
+  } else {
+    return 0;
+  }
+}
+  
+SWIGRUNTIME int
+SWIG_Python_ArgFail(int argnum)
+{
+  if (PyErr_Occurred()) {
+    /* add information about failing argument */
+    char mesg[256];
+    PyOS_snprintf(mesg, sizeof(mesg), "argument number %d:", argnum);
+    return SWIG_Python_AddErrMesg(mesg, 1);
+  } else {
+    return 0;
+  }
+}
+
+SWIGRUNTIMEINLINE const char *
+SwigPyObject_GetDesc(PyObject *self)
+{
+  SwigPyObject *v = (SwigPyObject *)self;
+  swig_type_info *ty = v ? v->ty : 0;
+  return ty ? ty->str : (char*)"";
+}
+
+SWIGRUNTIME void
+SWIG_Python_TypeError(const char *type, PyObject *obj)
+{
+  if (type) {
+#if defined(SWIG_COBJECT_TYPES)
+    if (obj && SwigPyObject_Check(obj)) {
+      const char *otype = (const char *) SwigPyObject_GetDesc(obj);
+      if (otype) {
+	PyErr_Format(PyExc_TypeError, "a '%s' is expected, 'SwigPyObject(%s)' is received",
+		     type, otype);
+	return;
+      }
+    } else 
+#endif      
+    {
+      const char *otype = (obj ? obj->ob_type->tp_name : 0); 
+      if (otype) {
+	PyObject *str = PyObject_Str(obj);
+	const char *cstr = str ? SWIG_Python_str_AsChar(str) : 0;
+	if (cstr) {
+	  PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s(%s)' is received",
+		       type, otype, cstr);
+          SWIG_Python_str_DelForPy3(cstr);
+	} else {
+	  PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s' is received",
+		       type, otype);
+	}
+	Py_XDECREF(str);
+	return;
+      }
+    }   
+    PyErr_Format(PyExc_TypeError, "a '%s' is expected", type);
+  } else {
+    PyErr_Format(PyExc_TypeError, "unexpected type is received");
+  }
+}
+
+
+/* Convert a pointer value, signal an exception on a type mismatch */
+SWIGRUNTIME void *
+SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int argnum, int flags) {
+  void *result;
+  if (SWIG_Python_ConvertPtr(obj, &result, ty, flags) == -1) {
+    PyErr_Clear();
+#if SWIG_POINTER_EXCEPTION
+    if (flags) {
+      SWIG_Python_TypeError(SWIG_TypePrettyName(ty), obj);
+      SWIG_Python_ArgFail(argnum);
+    }
+#endif
+  }
+  return result;
+}
+
+
+#ifdef __cplusplus
+#if 0
+{ /* cc-mode */
+#endif
+}
+#endif
+
+
+
+#define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0) 
+
+#define SWIG_contract_assert(expr, msg) if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } else 
+
+
+
+/* -------- TYPES TABLE (BEGIN) -------- */
+
+#define SWIGTYPE_p_HMDT swig_types[0]
+#define SWIGTYPE_p_HMGL swig_types[1]
+#define SWIGTYPE_p_char swig_types[2]
+#define SWIGTYPE_p_double swig_types[3]
+#define SWIGTYPE_p_float swig_types[4]
+#define SWIGTYPE_p_gsl_matrix swig_types[5]
+#define SWIGTYPE_p_gsl_vector swig_types[6]
+#define SWIGTYPE_p_int swig_types[7]
+#define SWIGTYPE_p_mglData swig_types[8]
+#define SWIGTYPE_p_mglGraph swig_types[9]
+#define SWIGTYPE_p_mglParse swig_types[10]
+#define SWIGTYPE_p_mglPoint swig_types[11]
+#define SWIGTYPE_p_mreal swig_types[12]
+#define SWIGTYPE_p_p_double swig_types[13]
+#define SWIGTYPE_p_p_float swig_types[14]
+#define SWIGTYPE_p_p_p_double swig_types[15]
+#define SWIGTYPE_p_p_p_float swig_types[16]
+#define SWIGTYPE_p_wchar_t swig_types[17]
+static swig_type_info *swig_types[19];
+static swig_module_info swig_module = {swig_types, 18, 0, 0, 0, 0};
+#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
+#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
+
+/* -------- TYPES TABLE (END) -------- */
+
+#if (PY_VERSION_HEX <= 0x02000000)
+# if !defined(SWIG_PYTHON_CLASSIC)
+#  error "This python version requires swig to be run with the '-classic' option"
+# endif
+#endif
+
+/*-----------------------------------------------
+              @(target):= _mathgl.so
+  ------------------------------------------------*/
+#if PY_VERSION_HEX >= 0x03000000
+#  define SWIG_init    PyInit__mathgl
+
+#else
+#  define SWIG_init    init_mathgl
+
+#endif
+#define SWIG_name    "_mathgl"
+
+#define SWIGVERSION 0x010340 
+#define SWIG_VERSION SWIGVERSION
+
+
+#define SWIG_as_voidptr(a) const_cast< void * >(static_cast< const void * >(a)) 
+#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),reinterpret_cast< void** >(a)) 
+
+
+#include <stdexcept>
+
+
+namespace swig {
+  class SwigPtr_PyObject {
+  protected:
+    PyObject *_obj;
+
+  public:
+    SwigPtr_PyObject() :_obj(0)
+    {
+    }
+
+    SwigPtr_PyObject(const SwigPtr_PyObject& item) : _obj(item._obj)
+    {
+      Py_XINCREF(_obj);      
+    }
+    
+    SwigPtr_PyObject(PyObject *obj, bool initial_ref = true) :_obj(obj)
+    {
+      if (initial_ref) {
+        Py_XINCREF(_obj);
+      }
+    }
+    
+    SwigPtr_PyObject & operator=(const SwigPtr_PyObject& item) 
+    {
+      Py_XINCREF(item._obj);
+      Py_XDECREF(_obj);
+      _obj = item._obj;
+      return *this;      
+    }
+    
+    ~SwigPtr_PyObject() 
+    {
+      Py_XDECREF(_obj);
+    }
+    
+    operator PyObject *() const
+    {
+      return _obj;
+    }
+
+    PyObject *operator->() const
+    {
+      return _obj;
+    }
+  };
+}
+
+
+namespace swig {
+  struct SwigVar_PyObject : SwigPtr_PyObject {
+    SwigVar_PyObject(PyObject* obj = 0) : SwigPtr_PyObject(obj, false) { }
+    
+    SwigVar_PyObject & operator = (PyObject* obj)
+    {
+      Py_XDECREF(_obj);
+      _obj = obj;
+      return *this;      
+    }
+  };
+}
+
+
+#define SWIG_FILE_WITH_INIT
+//#include "mgl/mgl_c.h"
+#include "mgl/mgl_w.h"
+
+
+#ifndef SWIG_FILE_WITH_INIT
+#  define NO_IMPORT_ARRAY
+#endif
+#include "stdio.h"
+#include <numpy/arrayobject.h>
+
+
+  #define SWIG_From_double   PyFloat_FromDouble 
+
+
+SWIGINTERNINLINE PyObject *
+SWIG_From_float  (float value)
+{    
+  return SWIG_From_double  (value);
+}
+
+
+SWIGINTERN int
+SWIG_AsVal_double (PyObject *obj, double *val)
+{
+  int res = SWIG_TypeError;
+  if (PyFloat_Check(obj)) {
+    if (val) *val = PyFloat_AsDouble(obj);
+    return SWIG_OK;
+  } else if (PyInt_Check(obj)) {
+    if (val) *val = PyInt_AsLong(obj);
+    return SWIG_OK;
+  } else if (PyLong_Check(obj)) {
+    double v = PyLong_AsDouble(obj);
+    if (!PyErr_Occurred()) {
+      if (val) *val = v;
+      return SWIG_OK;
+    } else {
+      PyErr_Clear();
+    }
+  }
+#ifdef SWIG_PYTHON_CAST_MODE
+  {
+    int dispatch = 0;
+    double d = PyFloat_AsDouble(obj);
+    if (!PyErr_Occurred()) {
+      if (val) *val = d;
+      return SWIG_AddCast(SWIG_OK);
+    } else {
+      PyErr_Clear();
+    }
+    if (!dispatch) {
+      long v = PyLong_AsLong(obj);
+      if (!PyErr_Occurred()) {
+	if (val) *val = v;
+	return SWIG_AddCast(SWIG_AddCast(SWIG_OK));
+      } else {
+	PyErr_Clear();
+      }
+    }
+  }
+#endif
+  return res;
+}
+
+
+#include <limits.h>
+#if !defined(SWIG_NO_LLONG_MAX)
+# if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__)
+#   define LLONG_MAX __LONG_LONG_MAX__
+#   define LLONG_MIN (-LLONG_MAX - 1LL)
+#   define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL)
+# endif
+#endif
+
+
+#include <float.h>
+
+
+#include <math.h>
+
+
+SWIGINTERNINLINE int
+SWIG_CanCastAsInteger(double *d, double min, double max) {
+  double x = *d;
+  if ((min <= x && x <= max)) {
+   double fx = floor(x);
+   double cx = ceil(x);
+   double rd =  ((x - fx) < 0.5) ? fx : cx; /* simple rint */
+   if ((errno == EDOM) || (errno == ERANGE)) {
+     errno = 0;
+   } else {
+     double summ, reps, diff;
+     if (rd < x) {
+       diff = x - rd;
+     } else if (rd > x) {
+       diff = rd - x;
+     } else {
+       return 1;
+     }
+     summ = rd + x;
+     reps = diff/summ;
+     if (reps < 8*DBL_EPSILON) {
+       *d = rd;
+       return 1;
+     }
+   }
+  }
+  return 0;
+}
+
+
+SWIGINTERN int
+SWIG_AsVal_long (PyObject *obj, long* val)
+{
+  if (PyInt_Check(obj)) {
+    if (val) *val = PyInt_AsLong(obj);
+    return SWIG_OK;
+  } else if (PyLong_Check(obj)) {
+    long v = PyLong_AsLong(obj);
+    if (!PyErr_Occurred()) {
+      if (val) *val = v;
+      return SWIG_OK;
+    } else {
+      PyErr_Clear();
+    }
+  }
+#ifdef SWIG_PYTHON_CAST_MODE
+  {
+    int dispatch = 0;
+    long v = PyInt_AsLong(obj);
+    if (!PyErr_Occurred()) {
+      if (val) *val = v;
+      return SWIG_AddCast(SWIG_OK);
+    } else {
+      PyErr_Clear();
+    }
+    if (!dispatch) {
+      double d;
+      int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d));
+      if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, LONG_MAX)) {
+	if (val) *val = (long)(d);
+	return res;
+      }
+    }
+  }
+#endif
+  return SWIG_TypeError;
+}
+
+
+SWIGINTERN int
+SWIG_AsVal_int (PyObject * obj, int *val)
+{
+  long v;
+  int res = SWIG_AsVal_long (obj, &v);
+  if (SWIG_IsOK(res)) {
+    if ((v < INT_MIN || v > INT_MAX)) {
+      return SWIG_OverflowError;
+    } else {
+      if (val) *val = static_cast< int >(v);
+    }
+  }  
+  return res;
+}
+
+
+SWIGINTERN int
+SWIG_AsVal_bool (PyObject *obj, bool *val)
+{
+  int r = PyObject_IsTrue(obj);
+  if (r == -1)
+    return SWIG_ERROR;
+  if (val) *val = r ? true : false;
+  return SWIG_OK;
+}
+
+
+SWIGINTERN swig_type_info*
+SWIG_pchar_descriptor(void)
+{
+  static int init = 0;
+  static swig_type_info* info = 0;
+  if (!init) {
+    info = SWIG_TypeQuery("_p_char");
+    init = 1;
+  }
+  return info;
+}
+
+
+SWIGINTERN int
+SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
+{
+#if PY_VERSION_HEX>=0x03000000
+  if (PyUnicode_Check(obj))
+#else  
+  if (PyString_Check(obj))
+#endif
+  {
+    char *cstr; Py_ssize_t len;
+#if PY_VERSION_HEX>=0x03000000
+    if (!alloc && cptr) {
+        /* We can't allow converting without allocation, since the internal
+           representation of string in Python 3 is UCS-2/UCS-4 but we require
+           a UTF-8 representation.
+           TODO(bhy) More detailed explanation */
+        return SWIG_RuntimeError;
+    }
+    obj = PyUnicode_AsUTF8String(obj);
+    PyBytes_AsStringAndSize(obj, &cstr, &len);
+    if(alloc) *alloc = SWIG_NEWOBJ;
+#else
+    PyString_AsStringAndSize(obj, &cstr, &len);
+#endif
+    if (cptr) {
+      if (alloc) {
+	/* 
+	   In python the user should not be able to modify the inner
+	   string representation. To warranty that, if you define
+	   SWIG_PYTHON_SAFE_CSTRINGS, a new/copy of the python string
+	   buffer is always returned.
+
+	   The default behavior is just to return the pointer value,
+	   so, be careful.
+	*/ 
+#if defined(SWIG_PYTHON_SAFE_CSTRINGS)
+	if (*alloc != SWIG_OLDOBJ) 
+#else
+	if (*alloc == SWIG_NEWOBJ) 
+#endif
+	  {
+	    *cptr = reinterpret_cast< char* >(memcpy((new char[len + 1]), cstr, sizeof(char)*(len + 1)));
+	    *alloc = SWIG_NEWOBJ;
+	  }
+	else {
+	  *cptr = cstr;
+	  *alloc = SWIG_OLDOBJ;
+	}
+      } else {
+        #if PY_VERSION_HEX>=0x03000000
+        assert(0); /* Should never reach here in Python 3 */
+        #endif
+	*cptr = SWIG_Python_str_AsChar(obj);
+      }
+    }
+    if (psize) *psize = len + 1;
+#if PY_VERSION_HEX>=0x03000000
+    Py_XDECREF(obj);
+#endif
+    return SWIG_OK;
+  } else {
+    swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
+    if (pchar_descriptor) {
+      void* vptr = 0;
+      if (SWIG_ConvertPtr(obj, &vptr, pchar_descriptor, 0) == SWIG_OK) {
+	if (cptr) *cptr = (char *) vptr;
+	if (psize) *psize = vptr ? (strlen((char *)vptr) + 1) : 0;
+	if (alloc) *alloc = SWIG_OLDOBJ;
+	return SWIG_OK;
+      }
+    }
+  }
+  return SWIG_TypeError;
+}
+
+
+
+
+
+/* Support older NumPy data type names
+*/
+#if NDARRAY_VERSION < 0x01000000
+#define NPY_BOOL          PyArray_BOOL
+#define NPY_BYTE          PyArray_BYTE
+#define NPY_UBYTE         PyArray_UBYTE
+#define NPY_SHORT         PyArray_SHORT
+#define NPY_USHORT        PyArray_USHORT
+#define NPY_INT           PyArray_INT
+#define NPY_UINT          PyArray_UINT
+#define NPY_LONG          PyArray_LONG
+#define NPY_ULONG         PyArray_ULONG
+#define NPY_LONGLONG      PyArray_LONGLONG
+#define NPY_ULONGLONG     PyArray_ULONGLONG
+#define NPY_FLOAT         PyArray_FLOAT
+#define NPY_DOUBLE        PyArray_DOUBLE
+#define NPY_LONGDOUBLE    PyArray_LONGDOUBLE
+#define NPY_CFLOAT        PyArray_CFLOAT
+#define NPY_CDOUBLE       PyArray_CDOUBLE
+#define NPY_CLONGDOUBLE   PyArray_CLONGDOUBLE
+#define NPY_OBJECT        PyArray_OBJECT
+#define NPY_STRING        PyArray_STRING
+#define NPY_UNICODE       PyArray_UNICODE
+#define NPY_VOID          PyArray_VOID
+#define NPY_NTYPES        PyArray_NTYPES
+#define NPY_NOTYPE        PyArray_NOTYPE
+#define NPY_CHAR          PyArray_CHAR
+#define NPY_USERDEF       PyArray_USERDEF
+#define npy_intp          intp
+
+#define NPY_MAX_BYTE      MAX_BYTE
+#define NPY_MIN_BYTE      MIN_BYTE
+#define NPY_MAX_UBYTE     MAX_UBYTE
+#define NPY_MAX_SHORT     MAX_SHORT
+#define NPY_MIN_SHORT     MIN_SHORT
+#define NPY_MAX_USHORT    MAX_USHORT
+#define NPY_MAX_INT       MAX_INT
+#define NPY_MIN_INT       MIN_INT
+#define NPY_MAX_UINT      MAX_UINT
+#define NPY_MAX_LONG      MAX_LONG
+#define NPY_MIN_LONG      MIN_LONG
+#define NPY_MAX_ULONG     MAX_ULONG
+#define NPY_MAX_LONGLONG  MAX_LONGLONG
+#define NPY_MIN_LONGLONG  MIN_LONGLONG
+#define NPY_MAX_ULONGLONG MAX_ULONGLONG
+#define NPY_MAX_INTP      MAX_INTP
+#define NPY_MIN_INTP      MIN_INTP
+
+#define NPY_FARRAY        FARRAY
+#define NPY_F_CONTIGUOUS  F_CONTIGUOUS
+#endif
+
+
+/* Macros to extract array attributes.
+ */
+#define is_array(a)            ((a) && PyArray_Check((PyArrayObject *)a))
+#define array_type(a)          (int)(PyArray_TYPE(a))
+#define array_numdims(a)       (((PyArrayObject *)a)->nd)
+#define array_dimensions(a)    (((PyArrayObject *)a)->dimensions)
+#define array_size(a,i)        (((PyArrayObject *)a)->dimensions[i])
+#define array_data(a)          (((PyArrayObject *)a)->data)
+#define array_is_contiguous(a) (PyArray_ISCONTIGUOUS(a))
+#define array_is_native(a)     (PyArray_ISNOTSWAPPED(a))
+#define array_is_fortran(a)    (PyArray_ISFORTRAN(a))
+
+
+  /* Given a PyObject, return a string describing its type.
+   */
+  char* pytype_string(PyObject* py_obj) {
+    if (py_obj == NULL          ) return "C NULL value";
+    if (py_obj == Py_None       ) return "Python None" ;
+    if (PyCallable_Check(py_obj)) return "callable"    ;
+    if (PyString_Check(  py_obj)) return "string"      ;
+    if (PyInt_Check(     py_obj)) return "int"         ;
+    if (PyFloat_Check(   py_obj)) return "float"       ;
+    if (PyDict_Check(    py_obj)) return "dict"        ;
+    if (PyList_Check(    py_obj)) return "list"        ;
+    if (PyTuple_Check(   py_obj)) return "tuple"       ;
+    if (PyFile_Check(    py_obj)) return "file"        ;
+    if (PyModule_Check(  py_obj)) return "module"      ;
+    if (PyInstance_Check(py_obj)) return "instance"    ;
+
+    return "unkown type";
+  }
+
+  /* Given a NumPy typecode, return a string describing the type.
+   */
+  char* typecode_string(int typecode) {
+    static char* type_names[25] = {"bool", "byte", "unsigned byte",
+                                   "short", "unsigned short", "int",
+                                   "unsigned int", "long", "unsigned long",
+                                   "long long", "unsigned long long",
+                                   "float", "double", "long double",
+                                   "complex float", "complex double",
+                                   "complex long double", "object",
+                                   "string", "unicode", "void", "ntypes",
+                                   "notype", "char", "unknown"};
+    return typecode < 24 ? type_names[typecode] : type_names[24];
+  }
+
+  /* Make sure input has correct numpy type.  Allow character and byte
+   * to match.  Also allow int and long to match.  This is deprecated.
+   * You should use PyArray_EquivTypenums() instead.
+   */
+  int type_match(int actual_type, int desired_type) {
+    return PyArray_EquivTypenums(actual_type, desired_type);
+  }
+
+
+  /* Given a PyObject pointer, cast it to a PyArrayObject pointer if
+   * legal.  If not, set the python error string appropriately and
+   * return NULL.
+   */
+  PyArrayObject* obj_to_array_no_conversion(PyObject* input, int typecode)
+  {
+    PyArrayObject* ary = NULL;
+    if (is_array(input) && (typecode == NPY_NOTYPE ||
+                            PyArray_EquivTypenums(array_type(input), typecode)))
+    {
+      ary = (PyArrayObject*) input;
+    }
+    else if is_array(input)
+    {
+      char* desired_type = typecode_string(typecode);
+      char* actual_type  = typecode_string(array_type(input));
+      PyErr_Format(PyExc_TypeError,
+                   "Array of type '%s' required.  Array of type '%s' given",
+                   desired_type, actual_type);
+      ary = NULL;
+    }
+    else
+    {
+      char * desired_type = typecode_string(typecode);
+      char * actual_type  = pytype_string(input);
+      PyErr_Format(PyExc_TypeError,
+                   "Array of type '%s' required.  A '%s' was given",
+                   desired_type, actual_type);
+      ary = NULL;
+    }
+    return ary;
+  }
+
+  /* Convert the given PyObject to a NumPy array with the given
+   * typecode.  On success, return a valid PyArrayObject* with the
+   * correct type.  On failure, the python error string will be set and
+   * the routine returns NULL.
+   */
+  PyArrayObject* obj_to_array_allow_conversion(PyObject* input, int typecode,
+                                               int* is_new_object)
+  {
+    PyArrayObject* ary = NULL;
+    PyObject* py_obj;
+    if (is_array(input) && (typecode == NPY_NOTYPE ||
+                            PyArray_EquivTypenums(array_type(input),typecode)))
+    {
+      ary = (PyArrayObject*) input;
+      *is_new_object = 0;
+    }
+    else
+    {
+      py_obj = PyArray_FROMANY(input, typecode, 0, 0, NPY_DEFAULT);
+      /* If NULL, PyArray_FromObject will have set python error value.*/
+      ary = (PyArrayObject*) py_obj;
+      *is_new_object = 1;
+    }
+    return ary;
+  }
+
+  /* Given a PyArrayObject, check to see if it is contiguous.  If so,
+   * return the input pointer and flag it as not a new object.  If it is
+   * not contiguous, create a new PyArrayObject using the original data,
+   * flag it as a new object and return the pointer.
+   */
+  PyArrayObject* make_contiguous(PyArrayObject* ary, int* is_new_object,
+                                 int min_dims, int max_dims)
+  {
+    PyArrayObject* result;
+    if (array_is_contiguous(ary))
+    {
+      result = ary;
+      *is_new_object = 0;
+    }
+    else
+    {
+      result = (PyArrayObject*) PyArray_ContiguousFromObject((PyObject*)ary,
+                                                             array_type(ary),
+                                                             min_dims,
+                                                             max_dims);
+      *is_new_object = 1;
+    }
+    return result;
+  }
+
+  /* Given a PyArrayObject, check to see if it is Fortran-contiguous.
+   * If so, return the input pointer, but do not flag it as not a new
+   * object.  If it is not Fortran-contiguous, create a new
+   * PyArrayObject using the original data, flag it as a new object
+   * and return the pointer.
+   */
+  PyArrayObject* make_fortran(PyArrayObject* ary, int* is_new_object,
+                              int min_dims, int max_dims)
+  {
+    PyArrayObject* result;
+    if (array_is_fortran(ary))
+    {
+      result = ary;
+      *is_new_object = 0;
+    }
+    else
+    {
+      Py_INCREF(ary->descr);
+      result = (PyArrayObject*) PyArray_FromArray(ary, ary->descr, NPY_FORTRAN);
+      *is_new_object = 1;
+    }
+    return result;
+  }
+
+  /* Convert a given PyObject to a contiguous PyArrayObject of the
+   * specified type.  If the input object is not a contiguous
+   * PyArrayObject, a new one will be created and the new object flag
+   * will be set.
+   */
+  PyArrayObject* obj_to_array_contiguous_allow_conversion(PyObject* input,
+                                                          int typecode,
+                                                          int* is_new_object)
+  {
+    int is_new1 = 0;
+    int is_new2 = 0;
+    PyArrayObject* ary2;
+    PyArrayObject* ary1 = obj_to_array_allow_conversion(input, typecode,
+                                                        &is_new1);
+    if (ary1)
+    {
+      ary2 = make_contiguous(ary1, &is_new2, 0, 0);
+      if ( is_new1 && is_new2)
+      {
+        Py_DECREF(ary1);
+      }
+      ary1 = ary2;
+    }
+    *is_new_object = is_new1 || is_new2;
+    return ary1;
+  }
+
+  /* Convert a given PyObject to a Fortran-ordered PyArrayObject of the
+   * specified type.  If the input object is not a Fortran-ordered
+   * PyArrayObject, a new one will be created and the new object flag
+   * will be set.
+   */
+  PyArrayObject* obj_to_array_fortran_allow_conversion(PyObject* input,
+                                                       int typecode,
+                                                       int* is_new_object)
+  {
+    int is_new1 = 0;
+    int is_new2 = 0;
+    PyArrayObject* ary2;
+    PyArrayObject* ary1 = obj_to_array_allow_conversion(input, typecode,
+                                                        &is_new1);
+    if (ary1)
+    {
+      ary2 = make_fortran(ary1, &is_new2, 0, 0);
+      if (is_new1 && is_new2)
+      {
+        Py_DECREF(ary1);
+      }
+      ary1 = ary2;
+    }
+    *is_new_object = is_new1 || is_new2;
+    return ary1;
+  }
+
+
+
+  /* Test whether a python object is contiguous.  If array is
+   * contiguous, return 1.  Otherwise, set the python error string and
+   * return 0.
+   */
+  int require_contiguous(PyArrayObject* ary)
+  {
+    int contiguous = 1;
+    if (!array_is_contiguous(ary))
+    {
+      PyErr_SetString(PyExc_TypeError,
+                      "Array must be contiguous.  A non-contiguous array was given");
+      contiguous = 0;
+    }
+    return contiguous;
+  }
+
+  /* Require that a numpy array is not byte-swapped.  If the array is
+   * not byte-swapped, return 1.  Otherwise, set the python error string
+   * and return 0.
+   */
+  int require_native(PyArrayObject* ary)
+  {
+    int native = 1;
+    if (!array_is_native(ary))
+    {
+      PyErr_SetString(PyExc_TypeError,
+                      "Array must have native byteorder.  "
+                      "A byte-swapped array was given");
+      native = 0;
+    }
+    return native;
+  }
+
+  /* Require the given PyArrayObject to have a specified number of
+   * dimensions.  If the array has the specified number of dimensions,
+   * return 1.  Otherwise, set the python error string and return 0.
+   */
+  int require_dimensions(PyArrayObject* ary, int exact_dimensions)
+  {
+    int success = 1;
+    if (array_numdims(ary) != exact_dimensions)
+    {
+      PyErr_Format(PyExc_TypeError,
+                   "Array must have %d dimensions.  Given array has %d dimensions",
+                   exact_dimensions, array_numdims(ary));
+      success = 0;
+    }
+    return success;
+  }
+
+  /* Require the given PyArrayObject to have one of a list of specified
+   * number of dimensions.  If the array has one of the specified number
+   * of dimensions, return 1.  Otherwise, set the python error string
+   * and return 0.
+   */
+  int require_dimensions_n(PyArrayObject* ary, int* exact_dimensions, int n)
+  {
+    int success = 0;
+    int i;
+    char dims_str[255] = "";
+    char s[255];
+    for (i = 0; i < n && !success; i++)
+    {
+      if (array_numdims(ary) == exact_dimensions[i])
+      {
+        success = 1;
+      }
+    }
+    if (!success)
+    {
+      for (i = 0; i < n-1; i++)
+      {
+        sprintf(s, "%d, ", exact_dimensions[i]);
+        strcat(dims_str,s);
+      }
+      sprintf(s, " or %d", exact_dimensions[n-1]);
+      strcat(dims_str,s);
+      PyErr_Format(PyExc_TypeError,
+                   "Array must have %s dimensions.  Given array has %d dimensions",
+                   dims_str, array_numdims(ary));
+    }
+    return success;
+  }
+
+  /* Require the given PyArrayObject to have a specified shape.  If the
+   * array has the specified shape, return 1.  Otherwise, set the python
+   * error string and return 0.
+   */
+  int require_size(PyArrayObject* ary, npy_intp* size, int n)
+  {
+    int i;
+    int success = 1;
+    int len;
+    char desired_dims[255] = "[";
+    char s[255];
+    char actual_dims[255] = "[";
+    for(i=0; i < n;i++)
+    {
+      if (size[i] != -1 &&  size[i] != array_size(ary,i))
+      {
+        success = 0;
+      }
+    }
+    if (!success)
+    {
+      for (i = 0; i < n; i++)
+      {
+        if (size[i] == -1)
+        {
+          sprintf(s, "*,");
+        }
+        else
+        {
+          sprintf(s, "%ld,", (long int)size[i]);
+        }
+        strcat(desired_dims,s);
+      }
+      len = strlen(desired_dims);
+      desired_dims[len-1] = ']';
+      for (i = 0; i < n; i++)
+      {
+        sprintf(s, "%ld,", (long int)array_size(ary,i));
+        strcat(actual_dims,s);
+      }
+      len = strlen(actual_dims);
+      actual_dims[len-1] = ']';
+      PyErr_Format(PyExc_TypeError,
+                   "Array must have shape of %s.  Given array has shape of %s",
+                   desired_dims, actual_dims);
+    }
+    return success;
+  }
+
+  /* Require the given PyArrayObject to to be FORTRAN ordered.  If the
+   * the PyArrayObject is already FORTRAN ordered, do nothing.  Else,
+   * set the FORTRAN ordering flag and recompute the strides.
+   */
+  int require_fortran(PyArrayObject* ary)
+  {
+    int success = 1;
+    int nd = array_numdims(ary);
+    int i;
+    if (array_is_fortran(ary)) return success;
+    /* Set the FORTRAN ordered flag */
+    ary->flags = NPY_FARRAY;
+    /* Recompute the strides */
+    ary->strides[0] = ary->strides[nd-1];
+    for (i=1; i < nd; ++i)
+      ary->strides[i] = ary->strides[i-1] * array_size(ary,i-1);
+    return success;
+  }
+
+ 
+
+SWIGINTERNINLINE PyObject*
+  SWIG_From_bool  (bool value)
+{
+  return PyBool_FromLong(value ? 1 : 0);
+}
+
+
+SWIGINTERN int
+SWIG_AsCharArray(PyObject * obj, char *val, size_t size)
+{ 
+  char* cptr = 0; size_t csize = 0; int alloc = SWIG_OLDOBJ;
+  int res = SWIG_AsCharPtrAndSize(obj, &cptr, &csize, &alloc);
+  if (SWIG_IsOK(res)) {
+    if ((csize == size + 1) && cptr && !(cptr[csize-1])) --csize;
+    if (csize <= size) {
+      if (val) {
+	if (csize) memcpy(val, cptr, csize*sizeof(char));
+	if (csize < size) memset(val + csize, 0, (size - csize)*sizeof(char));
+      }
+      if (alloc == SWIG_NEWOBJ) {
+	delete[] cptr;
+	res = SWIG_DelNewMask(res);
+      }      
+      return res;
+    }
+    if (alloc == SWIG_NEWOBJ) delete[] cptr;
+  }
+  return SWIG_TypeError;
+}
+
+
+SWIGINTERN int
+SWIG_AsVal_char (PyObject * obj, char *val)
+{    
+  int res = SWIG_AsCharArray(obj, val, 1);
+  if (!SWIG_IsOK(res)) {
+    long v;
+    res = SWIG_AddCast(SWIG_AsVal_long (obj, &v));
+    if (SWIG_IsOK(res)) {
+      if ((CHAR_MIN <= v) && (v <= CHAR_MAX)) {
+	if (val) *val = static_cast< char >(v);
+      } else {
+	res = SWIG_OverflowError;
+      }
+    }
+  }
+  return res;
+}
+
+
+  #define SWIG_From_long   PyInt_FromLong 
+
+
+SWIGINTERNINLINE PyObject *
+SWIG_From_int  (int value)
+{    
+  return SWIG_From_long  (value);
+}
+
+SWIGINTERN float mglData___getitem__(mglData *self,int i){	return self->GetVal(i);	}
+SWIGINTERN float mglData___paren(mglData *self,int i){	return self->GetVal(i);	}
+
+SWIGINTERN int
+SWIG_AsVal_float (PyObject * obj, float *val)
+{
+  double v;
+  int res = SWIG_AsVal_double (obj, &v);
+  if (SWIG_IsOK(res)) {
+    if ((v < -FLT_MAX || v > FLT_MAX)) {
+      return SWIG_OverflowError;
+    } else {
+      if (val) *val = static_cast< float >(v);
+    }
+  }  
+  return res;
+}
+
+SWIGINTERN void mglData___setitem__(mglData *self,int i,float y){	self->SetVal(y,i);	}
+SWIGINTERN void mglData___paren_asgn(mglData *self,int i,float y){	self->SetVal(y,i);	}
+
+SWIGINTERNINLINE PyObject *
+SWIG_FromCharPtrAndSize(const char* carray, size_t size)
+{
+  if (carray) {
+    if (size > INT_MAX) {
+      swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
+      return pchar_descriptor ? 
+	SWIG_NewPointerObj(const_cast< char * >(carray), pchar_descriptor, 0) : SWIG_Py_Void();
+    } else {
+#if PY_VERSION_HEX >= 0x03000000
+      return PyUnicode_FromStringAndSize(carray, static_cast< int >(size));
+#else
+      return PyString_FromStringAndSize(carray, static_cast< int >(size));
+#endif
+    }
+  } else {
+    return SWIG_Py_Void();
+  }
+}
+
+
+SWIGINTERNINLINE PyObject * 
+SWIG_FromCharPtr(const char *cptr)
+{ 
+  return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0));
+}
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+SWIGINTERN int Swig_var_NaN_set(PyObject *) {
+  SWIG_Error(SWIG_AttributeError,"Variable NaN is read-only.");
+  return 1;
+}
+
+
+SWIGINTERN PyObject *Swig_var_NaN_get(void) {
+  PyObject *pyobj = 0;
+  
+  pyobj = SWIG_From_float(static_cast< float >(NaN));
+  return pyobj;
+}
+
+
+SWIGINTERN int Swig_var_pi_set(PyObject *) {
+  SWIG_Error(SWIG_AttributeError,"Variable pi is read-only.");
+  return 1;
+}
+
+
+SWIGINTERN PyObject *Swig_var_pi_get(void) {
+  PyObject *pyobj = 0;
+  
+  pyobj = SWIG_From_float(static_cast< float >(pi));
+  return pyobj;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglPoint_x_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglPoint *arg1 = (mglPoint *) 0 ;
+  double arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglPoint_x_set",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglPoint, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglPoint_x_set" "', argument " "1"" of type '" "mglPoint *""'"); 
+  }
+  arg1 = reinterpret_cast< mglPoint * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglPoint_x_set" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  if (arg1) (arg1)->x = arg2;
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglPoint_x_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglPoint *arg1 = (mglPoint *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  double result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglPoint_x_get",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglPoint, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglPoint_x_get" "', argument " "1"" of type '" "mglPoint *""'"); 
+  }
+  arg1 = reinterpret_cast< mglPoint * >(argp1);
+  result = (double) ((arg1)->x);
+  resultobj = SWIG_From_double(static_cast< double >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglPoint_y_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglPoint *arg1 = (mglPoint *) 0 ;
+  double arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglPoint_y_set",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglPoint, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglPoint_y_set" "', argument " "1"" of type '" "mglPoint *""'"); 
+  }
+  arg1 = reinterpret_cast< mglPoint * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglPoint_y_set" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  if (arg1) (arg1)->y = arg2;
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglPoint_y_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglPoint *arg1 = (mglPoint *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  double result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglPoint_y_get",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglPoint, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglPoint_y_get" "', argument " "1"" of type '" "mglPoint *""'"); 
+  }
+  arg1 = reinterpret_cast< mglPoint * >(argp1);
+  result = (double) ((arg1)->y);
+  resultobj = SWIG_From_double(static_cast< double >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglPoint_z_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglPoint *arg1 = (mglPoint *) 0 ;
+  double arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglPoint_z_set",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglPoint, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglPoint_z_set" "', argument " "1"" of type '" "mglPoint *""'"); 
+  }
+  arg1 = reinterpret_cast< mglPoint * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglPoint_z_set" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  if (arg1) (arg1)->z = arg2;
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglPoint_z_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglPoint *arg1 = (mglPoint *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  double result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglPoint_z_get",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglPoint, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglPoint_z_get" "', argument " "1"" of type '" "mglPoint *""'"); 
+  }
+  arg1 = reinterpret_cast< mglPoint * >(argp1);
+  result = (double) ((arg1)->z);
+  resultobj = SWIG_From_double(static_cast< double >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglPoint__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  double arg1 ;
+  double arg2 ;
+  double arg3 ;
+  double val1 ;
+  int ecode1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  mglPoint *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:new_mglPoint",&obj0,&obj1,&obj2)) SWIG_fail;
+  ecode1 = SWIG_AsVal_double(obj0, &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_mglPoint" "', argument " "1"" of type '" "double""'");
+  } 
+  arg1 = static_cast< double >(val1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglPoint" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_mglPoint" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = static_cast< double >(val3);
+  result = (mglPoint *)new mglPoint(arg1,arg2,arg3);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglPoint, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglPoint__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  double arg1 ;
+  double arg2 ;
+  double val1 ;
+  int ecode1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  mglPoint *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:new_mglPoint",&obj0,&obj1)) SWIG_fail;
+  ecode1 = SWIG_AsVal_double(obj0, &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_mglPoint" "', argument " "1"" of type '" "double""'");
+  } 
+  arg1 = static_cast< double >(val1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglPoint" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  result = (mglPoint *)new mglPoint(arg1,arg2);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglPoint, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglPoint__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  double arg1 ;
+  double val1 ;
+  int ecode1 = 0 ;
+  PyObject * obj0 = 0 ;
+  mglPoint *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:new_mglPoint",&obj0)) SWIG_fail;
+  ecode1 = SWIG_AsVal_double(obj0, &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_mglPoint" "', argument " "1"" of type '" "double""'");
+  } 
+  arg1 = static_cast< double >(val1);
+  result = (mglPoint *)new mglPoint(arg1);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglPoint, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglPoint__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglPoint *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)":new_mglPoint")) SWIG_fail;
+  result = (mglPoint *)new mglPoint();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglPoint, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglPoint(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 0) {
+    return _wrap_new_mglPoint__SWIG_3(self, args);
+  }
+  if (argc == 1) {
+    int _v;
+    {
+      int res = SWIG_AsVal_double(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      return _wrap_new_mglPoint__SWIG_2(self, args);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    {
+      int res = SWIG_AsVal_double(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_new_mglPoint__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    {
+      int res = SWIG_AsVal_double(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_new_mglPoint__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_mglPoint'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    mglPoint(double,double,double)\n"
+    "    mglPoint(double,double)\n"
+    "    mglPoint(double)\n"
+    "    mglPoint()\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_mglPoint(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglPoint *arg1 = (mglPoint *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:delete_mglPoint",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglPoint, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_mglPoint" "', argument " "1"" of type '" "mglPoint *""'"); 
+  }
+  arg1 = reinterpret_cast< mglPoint * >(argp1);
+  delete arg1;
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *mglPoint_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *obj;
+  if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
+  SWIG_TypeNewClientData(SWIGTYPE_p_mglPoint, SWIG_NewClientData(obj));
+  return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_mglData__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  int arg1 ;
+  int arg2 ;
+  int arg3 ;
+  int val1 ;
+  int ecode1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  mglData *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:new_mglData",&obj0,&obj1,&obj2)) SWIG_fail;
+  ecode1 = SWIG_AsVal_int(obj0, &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_mglData" "', argument " "1"" of type '" "int""'");
+  } 
+  arg1 = static_cast< int >(val1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglData" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_mglData" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  result = (mglData *)new mglData(arg1,arg2,arg3);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglData__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  int arg1 ;
+  int arg2 ;
+  int val1 ;
+  int ecode1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  mglData *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:new_mglData",&obj0,&obj1)) SWIG_fail;
+  ecode1 = SWIG_AsVal_int(obj0, &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_mglData" "', argument " "1"" of type '" "int""'");
+  } 
+  arg1 = static_cast< int >(val1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglData" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  result = (mglData *)new mglData(arg1,arg2);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglData__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  int arg1 ;
+  int val1 ;
+  int ecode1 = 0 ;
+  PyObject * obj0 = 0 ;
+  mglData *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:new_mglData",&obj0)) SWIG_fail;
+  ecode1 = SWIG_AsVal_int(obj0, &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_mglData" "', argument " "1"" of type '" "int""'");
+  } 
+  arg1 = static_cast< int >(val1);
+  result = (mglData *)new mglData(arg1);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglData__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)":new_mglData")) SWIG_fail;
+  result = (mglData *)new mglData();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglData__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  HMDT arg1 ;
+  bool arg2 ;
+  void *argp1 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  mglData *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:new_mglData",&obj0,&obj1)) SWIG_fail;
+  {
+    res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_HMDT,  0  | 0);
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_mglData" "', argument " "1"" of type '" "HMDT const""'"); 
+    }  
+    if (!argp1) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_mglData" "', argument " "1"" of type '" "HMDT const""'");
+    } else {
+      HMDT * temp = reinterpret_cast< HMDT * >(argp1);
+      arg1 = *temp;
+      if (SWIG_IsNewObj(res1)) delete temp;
+    }
+  }
+  ecode2 = SWIG_AsVal_bool(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglData" "', argument " "2"" of type '" "bool""'");
+  } 
+  arg2 = static_cast< bool >(val2);
+  result = (mglData *)new mglData(arg1,arg2);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglData__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  HMDT arg1 ;
+  void *argp1 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  mglData *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:new_mglData",&obj0)) SWIG_fail;
+  {
+    res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_HMDT,  0  | 0);
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_mglData" "', argument " "1"" of type '" "HMDT const""'"); 
+    }  
+    if (!argp1) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_mglData" "', argument " "1"" of type '" "HMDT const""'");
+    } else {
+      HMDT * temp = reinterpret_cast< HMDT * >(argp1);
+      arg1 = *temp;
+      if (SWIG_IsNewObj(res1)) delete temp;
+    }
+  }
+  result = (mglData *)new mglData(arg1);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglData__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  char *arg1 = (char *) 0 ;
+  int res1 ;
+  char *buf1 = 0 ;
+  int alloc1 = 0 ;
+  PyObject * obj0 = 0 ;
+  mglData *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:new_mglData",&obj0)) SWIG_fail;
+  res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_mglData" "', argument " "1"" of type '" "char const *""'");
+  }
+  arg1 = reinterpret_cast< char * >(buf1);
+  result = (mglData *)new mglData((char const *)arg1);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, SWIG_POINTER_NEW |  0 );
+  if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+  return resultobj;
+fail:
+  if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_mglData(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:delete_mglData",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_mglData" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  delete arg1;
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglData__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  mglData *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:new_mglData",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_mglData" "', argument " "1"" of type '" "mglData const &""'"); 
+  }
+  if (!argp1) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_mglData" "', argument " "1"" of type '" "mglData const &""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  result = (mglData *)new mglData((mglData const &)*arg1);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglData__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  int arg1 ;
+  float *arg2 = (float *) 0 ;
+  int val1 ;
+  int ecode1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  mglData *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:new_mglData",&obj0,&obj1)) SWIG_fail;
+  ecode1 = SWIG_AsVal_int(obj0, &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_mglData" "', argument " "1"" of type '" "int""'");
+  } 
+  arg1 = static_cast< int >(val1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_float, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_mglData" "', argument " "2"" of type '" "float const *""'"); 
+  }
+  arg2 = reinterpret_cast< float * >(argp2);
+  result = (mglData *)new mglData(arg1,(float const *)arg2);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglData__SWIG_9(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  int arg1 ;
+  int arg2 ;
+  float *arg3 = (float *) 0 ;
+  int val1 ;
+  int ecode1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  mglData *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:new_mglData",&obj0,&obj1,&obj2)) SWIG_fail;
+  ecode1 = SWIG_AsVal_int(obj0, &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_mglData" "', argument " "1"" of type '" "int""'");
+  } 
+  arg1 = static_cast< int >(val1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglData" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_float, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_mglData" "', argument " "3"" of type '" "float const *""'"); 
+  }
+  arg3 = reinterpret_cast< float * >(argp3);
+  result = (mglData *)new mglData(arg1,arg2,(float const *)arg3);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglData__SWIG_10(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  int arg1 ;
+  int arg2 ;
+  int arg3 ;
+  float *arg4 = (float *) 0 ;
+  int val1 ;
+  int ecode1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  mglData *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:new_mglData",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  ecode1 = SWIG_AsVal_int(obj0, &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_mglData" "', argument " "1"" of type '" "int""'");
+  } 
+  arg1 = static_cast< int >(val1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglData" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_mglData" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_float, 0 |  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_mglData" "', argument " "4"" of type '" "float const *""'"); 
+  }
+  arg4 = reinterpret_cast< float * >(argp4);
+  result = (mglData *)new mglData(arg1,arg2,arg3,(float const *)arg4);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglData__SWIG_11(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  int arg1 ;
+  double *arg2 = (double *) 0 ;
+  PyArrayObject *array1 = NULL ;
+  int is_new_object1 = 0 ;
+  PyObject * obj0 = 0 ;
+  mglData *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:new_mglData",&obj0)) SWIG_fail;
+  {
+    npy_intp size[1] = {
+      -1
+    };
+    array1 = obj_to_array_contiguous_allow_conversion(obj0, NPY_DOUBLE,
+      &is_new_object1);
+    if (!array1 || !require_dimensions(array1, 1) ||
+      !require_size(array1, size, 1)) SWIG_fail;
+    arg1 = (int) array_size(array1,0);
+    arg2 = (double*) array_data(array1);
+  }
+  result = (mglData *)new mglData(arg1,(double const *)arg2);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, SWIG_POINTER_NEW |  0 );
+  {
+    if (is_new_object1 && array1)
+    {
+      Py_DECREF(array1); 
+    }
+  }
+  return resultobj;
+fail:
+  {
+    if (is_new_object1 && array1)
+    {
+      Py_DECREF(array1); 
+    }
+  }
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglData__SWIG_12(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  int arg1 ;
+  int arg2 ;
+  double *arg3 = (double *) 0 ;
+  PyArrayObject *array1 = NULL ;
+  int is_new_object1 = 0 ;
+  PyObject * obj0 = 0 ;
+  mglData *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:new_mglData",&obj0)) SWIG_fail;
+  {
+    npy_intp size[2] = {
+      -1, -1 
+    };
+    array1 = obj_to_array_contiguous_allow_conversion(obj0, NPY_DOUBLE,
+      &is_new_object1);
+    if (!array1 || !require_dimensions(array1, 2) ||
+      !require_size(array1, size, 2)) SWIG_fail;
+    arg1 = (int) array_size(array1,0);
+    arg2 = (int) array_size(array1,1);
+    arg3 = (double*) array_data(array1);
+  }
+  result = (mglData *)new mglData(arg1,arg2,(double const *)arg3);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, SWIG_POINTER_NEW |  0 );
+  {
+    if (is_new_object1 && array1)
+    {
+      Py_DECREF(array1); 
+    }
+  }
+  return resultobj;
+fail:
+  {
+    if (is_new_object1 && array1)
+    {
+      Py_DECREF(array1); 
+    }
+  }
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglData__SWIG_13(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  int arg1 ;
+  int arg2 ;
+  int arg3 ;
+  double *arg4 = (double *) 0 ;
+  PyArrayObject *array1 = NULL ;
+  int is_new_object1 = 0 ;
+  PyObject * obj0 = 0 ;
+  mglData *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:new_mglData",&obj0)) SWIG_fail;
+  {
+    npy_intp size[3] = {
+      -1, -1, -1 
+    };
+    array1 = obj_to_array_contiguous_allow_conversion(obj0, NPY_DOUBLE,
+      &is_new_object1);
+    if (!array1 || !require_dimensions(array1, 3) ||
+      !require_size(array1, size, 3)) SWIG_fail;
+    arg1 = (int) array_size(array1,0);
+    arg2 = (int) array_size(array1,1);
+    arg3 = (int) array_size(array1,2);
+    arg4 = (double*) array_data(array1);
+  }
+  result = (mglData *)new mglData(arg1,arg2,arg3,(double const *)arg4);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, SWIG_POINTER_NEW |  0 );
+  {
+    if (is_new_object1 && array1)
+    {
+      Py_DECREF(array1); 
+    }
+  }
+  return resultobj;
+fail:
+  {
+    if (is_new_object1 && array1)
+    {
+      Py_DECREF(array1); 
+    }
+  }
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglData__SWIG_14(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  float *arg1 = (float *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  mglData *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:new_mglData",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_float, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_mglData" "', argument " "1"" of type '" "float const *""'"); 
+  }
+  arg1 = reinterpret_cast< float * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglData" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  result = (mglData *)new mglData((float const *)arg1,arg2);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglData__SWIG_15(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  float *arg1 = (float *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  mglData *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:new_mglData",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_float, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_mglData" "', argument " "1"" of type '" "float const *""'"); 
+  }
+  arg1 = reinterpret_cast< float * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglData" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_mglData" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  result = (mglData *)new mglData((float const *)arg1,arg2,arg3);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglData__SWIG_16(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  float *arg1 = (float *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  mglData *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:new_mglData",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_float, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_mglData" "', argument " "1"" of type '" "float const *""'"); 
+  }
+  arg1 = reinterpret_cast< float * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglData" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_mglData" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "new_mglData" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  result = (mglData *)new mglData((float const *)arg1,arg2,arg3,arg4);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglData__SWIG_17(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  double *arg1 = (double *) 0 ;
+  int arg2 ;
+  PyArrayObject *array1 = NULL ;
+  int is_new_object1 = 0 ;
+  PyObject * obj0 = 0 ;
+  mglData *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:new_mglData",&obj0)) SWIG_fail;
+  {
+    npy_intp size[1] = {
+      -1 
+    };
+    array1 = obj_to_array_contiguous_allow_conversion(obj0, NPY_DOUBLE,
+      &is_new_object1);
+    if (!array1 || !require_dimensions(array1, 1) ||
+      !require_size(array1, size, 1)) SWIG_fail;
+    arg1 = (double*) array_data(array1);
+    arg2 = (int) array_size(array1,0);
+  }
+  result = (mglData *)new mglData((double const *)arg1,arg2);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, SWIG_POINTER_NEW |  0 );
+  {
+    if (is_new_object1 && array1)
+    {
+      Py_DECREF(array1); 
+    }
+  }
+  return resultobj;
+fail:
+  {
+    if (is_new_object1 && array1)
+    {
+      Py_DECREF(array1); 
+    }
+  }
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglData__SWIG_18(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  double *arg1 = (double *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  PyArrayObject *array1 = NULL ;
+  int is_new_object1 = 0 ;
+  PyObject * obj0 = 0 ;
+  mglData *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:new_mglData",&obj0)) SWIG_fail;
+  {
+    npy_intp size[2] = {
+      -1, -1 
+    };
+    array1 = obj_to_array_contiguous_allow_conversion(obj0, NPY_DOUBLE,
+      &is_new_object1);
+    if (!array1 || !require_dimensions(array1, 2) ||
+      !require_size(array1, size, 2)) SWIG_fail;
+    arg1 = (double*) array_data(array1);
+    arg2 = (int) array_size(array1,0);
+    arg3 = (int) array_size(array1,1);
+  }
+  result = (mglData *)new mglData((double const *)arg1,arg2,arg3);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, SWIG_POINTER_NEW |  0 );
+  {
+    if (is_new_object1 && array1)
+    {
+      Py_DECREF(array1); 
+    }
+  }
+  return resultobj;
+fail:
+  {
+    if (is_new_object1 && array1)
+    {
+      Py_DECREF(array1); 
+    }
+  }
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglData__SWIG_19(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  double *arg1 = (double *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  PyArrayObject *array1 = NULL ;
+  int is_new_object1 = 0 ;
+  PyObject * obj0 = 0 ;
+  mglData *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:new_mglData",&obj0)) SWIG_fail;
+  {
+    npy_intp size[3] = {
+      -1, -1, -1 
+    };
+    array1 = obj_to_array_contiguous_allow_conversion(obj0, NPY_DOUBLE,
+      &is_new_object1);
+    if (!array1 || !require_dimensions(array1, 3) ||
+      !require_size(array1, size, 3)) SWIG_fail;
+    arg1 = (double*) array_data(array1);
+    arg2 = (int) array_size(array1,0);
+    arg3 = (int) array_size(array1,1);
+    arg4 = (int) array_size(array1,2);
+  }
+  result = (mglData *)new mglData((double const *)arg1,arg2,arg3,arg4);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglData, SWIG_POINTER_NEW |  0 );
+  {
+    if (is_new_object1 && array1)
+    {
+      Py_DECREF(array1); 
+    }
+  }
+  return resultobj;
+fail:
+  {
+    if (is_new_object1 && array1)
+    {
+      Py_DECREF(array1); 
+    }
+  }
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglData(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 0) {
+    return _wrap_new_mglData__SWIG_3(self, args);
+  }
+  if (argc == 1) {
+    int _v;
+    int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_HMDT, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_new_mglData__SWIG_5(self, args);
+    }
+  }
+  if (argc == 1) {
+    int _v;
+    int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_new_mglData__SWIG_7(self, args);
+    }
+  }
+  if (argc == 1) {
+    int _v;
+    {
+      int res = SWIG_AsVal_int(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      return _wrap_new_mglData__SWIG_2(self, args);
+    }
+  }
+  if (argc == 1) {
+    int _v;
+    int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_new_mglData__SWIG_6(self, args);
+    }
+  }
+  if (argc == 1) {
+    int _v;
+    {
+      _v = is_array(argv[0]) || PySequence_Check(argv[0]);
+    }
+    if (_v) {
+      if (argc <= 1) {
+        return _wrap_new_mglData__SWIG_11(self, args);
+      }
+      return _wrap_new_mglData__SWIG_11(self, args);
+    }
+  }
+  if (argc == 1) {
+    int _v;
+    {
+      _v = is_array(argv[0]) || PySequence_Check(argv[0]);
+    }
+    if (_v) {
+      if (argc <= 1) {
+        return _wrap_new_mglData__SWIG_12(self, args);
+      }
+      if (argc <= 2) {
+        return _wrap_new_mglData__SWIG_12(self, args);
+      }
+      return _wrap_new_mglData__SWIG_12(self, args);
+    }
+  }
+  if (argc == 1) {
+    int _v;
+    {
+      _v = is_array(argv[0]) || PySequence_Check(argv[0]);
+    }
+    if (_v) {
+      if (argc <= 1) {
+        return _wrap_new_mglData__SWIG_13(self, args);
+      }
+      if (argc <= 2) {
+        return _wrap_new_mglData__SWIG_13(self, args);
+      }
+      if (argc <= 3) {
+        return _wrap_new_mglData__SWIG_13(self, args);
+      }
+      return _wrap_new_mglData__SWIG_13(self, args);
+    }
+  }
+  if (argc == 1) {
+    int _v;
+    {
+      _v = is_array(argv[0]) || PySequence_Check(argv[0]);
+    }
+    if (_v) {
+      if (argc <= 1) {
+        return _wrap_new_mglData__SWIG_17(self, args);
+      }
+      return _wrap_new_mglData__SWIG_17(self, args);
+    }
+  }
+  if (argc == 1) {
+    int _v;
+    {
+      _v = is_array(argv[0]) || PySequence_Check(argv[0]);
+    }
+    if (_v) {
+      if (argc <= 1) {
+        return _wrap_new_mglData__SWIG_18(self, args);
+      }
+      if (argc <= 2) {
+        return _wrap_new_mglData__SWIG_18(self, args);
+      }
+      return _wrap_new_mglData__SWIG_18(self, args);
+    }
+  }
+  if (argc == 1) {
+    int _v;
+    {
+      _v = is_array(argv[0]) || PySequence_Check(argv[0]);
+    }
+    if (_v) {
+      if (argc <= 1) {
+        return _wrap_new_mglData__SWIG_19(self, args);
+      }
+      if (argc <= 2) {
+        return _wrap_new_mglData__SWIG_19(self, args);
+      }
+      if (argc <= 3) {
+        return _wrap_new_mglData__SWIG_19(self, args);
+      }
+      return _wrap_new_mglData__SWIG_19(self, args);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_float, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_new_mglData__SWIG_14(self, args);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_HMDT, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_bool(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_new_mglData__SWIG_4(self, args);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    {
+      int res = SWIG_AsVal_int(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_float, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_new_mglData__SWIG_8(self, args);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    {
+      int res = SWIG_AsVal_int(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_new_mglData__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_float, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_new_mglData__SWIG_15(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    {
+      int res = SWIG_AsVal_int(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_float, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_new_mglData__SWIG_9(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    {
+      int res = SWIG_AsVal_int(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_new_mglData__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_float, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_new_mglData__SWIG_16(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    {
+      int res = SWIG_AsVal_int(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_float, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_new_mglData__SWIG_10(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_mglData'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    mglData(int,int,int)\n"
+    "    mglData(int,int)\n"
+    "    mglData(int)\n"
+    "    mglData()\n"
+    "    mglData(HMDT const,bool)\n"
+    "    mglData(HMDT const)\n"
+    "    mglData(char const *)\n"
+    "    mglData(mglData const &)\n"
+    "    mglData(int,float const *)\n"
+    "    mglData(int,int,float const *)\n"
+    "    mglData(int,int,int,float const *)\n"
+    "    mglData(int,double const *)\n"
+    "    mglData(int,int,double const *)\n"
+    "    mglData(int,int,int,double const *)\n"
+    "    mglData(float const *,int)\n"
+    "    mglData(float const *,int,int)\n"
+    "    mglData(float const *,int,int,int)\n"
+    "    mglData(double const *,int)\n"
+    "    mglData(double const *,int,int)\n"
+    "    mglData(double const *,int,int,int)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Self(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  HMDT result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglData_Self",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Self" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  result = (arg1)->Self();
+  resultobj = SWIG_NewPointerObj((new HMDT(static_cast< const HMDT& >(result))), SWIGTYPE_p_HMDT, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Set__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  gsl_vector *arg2 = (gsl_vector *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Set",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_gsl_vector, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "gsl_vector *""'"); 
+  }
+  arg2 = reinterpret_cast< gsl_vector * >(argp2);
+  (arg1)->Set(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Set__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  gsl_matrix *arg2 = (gsl_matrix *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Set",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_gsl_matrix, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "gsl_matrix *""'"); 
+  }
+  arg2 = reinterpret_cast< gsl_matrix * >(argp2);
+  (arg1)->Set(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Set__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Set",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Set" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->Set((mglData const &)*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Set__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  float *arg2 = (float *) 0 ;
+  int arg3 ;
+  int arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglData_Set",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_float, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "float const *""'"); 
+  }
+  arg2 = reinterpret_cast< float * >(argp2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Set" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Set" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Set" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  (arg1)->Set((float const *)arg2,arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Set__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  float *arg2 = (float *) 0 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Set",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_float, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "float const *""'"); 
+  }
+  arg2 = reinterpret_cast< float * >(argp2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Set" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Set" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->Set((float const *)arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Set__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  float *arg2 = (float *) 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Set",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_float, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "float const *""'"); 
+  }
+  arg2 = reinterpret_cast< float * >(argp2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Set" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  (arg1)->Set((float const *)arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Set__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double *arg2 = (double *) 0 ;
+  int arg3 ;
+  int arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglData_Set",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_double, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "double const *""'"); 
+  }
+  arg2 = reinterpret_cast< double * >(argp2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Set" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Set" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Set" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  (arg1)->Set((double const *)arg2,arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Set__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double *arg2 = (double *) 0 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Set",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_double, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "double const *""'"); 
+  }
+  arg2 = reinterpret_cast< double * >(argp2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Set" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Set" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->Set((double const *)arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Set__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double *arg2 = (double *) 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Set",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_double, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "double const *""'"); 
+  }
+  arg2 = reinterpret_cast< double * >(argp2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Set" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  (arg1)->Set((double const *)arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Set__SWIG_9(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  float **arg2 = (float **) 0 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Set",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_p_float, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "float const **""'"); 
+  }
+  arg2 = reinterpret_cast< float ** >(argp2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Set" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Set" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->Set((float const **)arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Set__SWIG_10(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double **arg2 = (double **) 0 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Set",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_p_double, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "double const **""'"); 
+  }
+  arg2 = reinterpret_cast< double ** >(argp2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Set" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Set" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->Set((double const **)arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Set__SWIG_11(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  float ***arg2 = (float ***) 0 ;
+  int arg3 ;
+  int arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglData_Set",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_p_p_float, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "float const ***""'"); 
+  }
+  arg2 = reinterpret_cast< float *** >(argp2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Set" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Set" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Set" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  (arg1)->Set((float const ***)arg2,arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Set__SWIG_12(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double ***arg2 = (double ***) 0 ;
+  int arg3 ;
+  int arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglData_Set",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_p_p_double, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "double const ***""'"); 
+  }
+  arg2 = reinterpret_cast< double *** >(argp2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Set" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Set" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Set" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  (arg1)->Set((double const ***)arg2,arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Rearrange__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Rearrange",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Rearrange" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Rearrange" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Rearrange" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Rearrange" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->Rearrange(arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Rearrange__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Rearrange",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Rearrange" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Rearrange" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Rearrange" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  (arg1)->Rearrange(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Rearrange__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Rearrange",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Rearrange" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Rearrange" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  (arg1)->Rearrange(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Rearrange(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Rearrange__SWIG_2(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Rearrange__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Rearrange__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Rearrange'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Rearrange(mglData *,int,int,int)\n"
+    "    Rearrange(mglData *,int,int)\n"
+    "    Rearrange(mglData *,int)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Set__SWIG_13(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  int arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglData_Set",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Set" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Set" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Set" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  (arg1)->Set((char const *)arg2,arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Set__SWIG_14(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Set",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Set" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Set" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->Set((char const *)arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Set__SWIG_15(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Set",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Set" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Set" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Set" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  (arg1)->Set((char const *)arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Set(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[6];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_gsl_vector, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglData_Set__SWIG_0(self, args);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_gsl_matrix, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglData_Set__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglData_Set__SWIG_2(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_float, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Set__SWIG_5(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_double, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Set__SWIG_8(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Set__SWIG_15(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_float, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Set__SWIG_4(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_p_float, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Set__SWIG_9(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_p_double, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Set__SWIG_10(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_double, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Set__SWIG_7(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Set__SWIG_14(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_p_p_float, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Set__SWIG_11(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_p_p_double, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Set__SWIG_12(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_float, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Set__SWIG_3(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_double, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Set__SWIG_6(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Set__SWIG_13(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Set'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Set(mglData *,gsl_vector *)\n"
+    "    Set(mglData *,gsl_matrix *)\n"
+    "    Set(mglData *,mglData const &)\n"
+    "    Set(mglData *,float const *,int,int,int)\n"
+    "    Set(mglData *,float const *,int,int)\n"
+    "    Set(mglData *,float const *,int)\n"
+    "    Set(mglData *,double const *,int,int,int)\n"
+    "    Set(mglData *,double const *,int,int)\n"
+    "    Set(mglData *,double const *,int)\n"
+    "    Set(mglData *,float const **,int,int)\n"
+    "    Set(mglData *,double const **,int,int)\n"
+    "    Set(mglData *,float const ***,int,int,int)\n"
+    "    Set(mglData *,double const ***,int,int,int)\n"
+    "    Set(mglData *,char const *,int,int,int)\n"
+    "    Set(mglData *,char const *,int,int)\n"
+    "    Set(mglData *,char const *,int)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Read__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  bool result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Read",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Read" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Read" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  result = (bool)(arg1)->Read((char const *)arg2);
+  resultobj = SWIG_From_bool(static_cast< bool >(result));
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Read__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  int arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  bool result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglData_Read",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Read" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Read" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Read" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Read" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Read" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  result = (bool)(arg1)->Read((char const *)arg2,arg3,arg4,arg5);
+  resultobj = SWIG_From_bool(static_cast< bool >(result));
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Read__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  bool result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Read",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Read" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Read" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Read" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Read" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  result = (bool)(arg1)->Read((char const *)arg2,arg3,arg4);
+  resultobj = SWIG_From_bool(static_cast< bool >(result));
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Read__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  bool result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Read",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Read" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Read" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Read" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  result = (bool)(arg1)->Read((char const *)arg2,arg3);
+  resultobj = SWIG_From_bool(static_cast< bool >(result));
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Read(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[6];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglData_Read__SWIG_0(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Read__SWIG_3(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Read__SWIG_2(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Read__SWIG_1(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Read'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Read(mglData *,char const *)\n"
+    "    Read(mglData *,char const *,int,int,int)\n"
+    "    Read(mglData *,char const *,int,int)\n"
+    "    Read(mglData *,char const *,int)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Save__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Save",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Save" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Save" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Save" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  (arg1)->Save((char const *)arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Save__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Save",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Save" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Save" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->Save((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Save(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglData_Save__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Save__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Save'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Save(mglData *,char const *,int)\n"
+    "    Save(mglData *,char const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Export__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  double arg4 ;
+  double arg5 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglData_Export",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Export" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Export" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Export" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_double(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Export" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = static_cast< double >(val4);
+  ecode5 = SWIG_AsVal_double(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Export" "', argument " "5"" of type '" "double""'");
+  } 
+  arg5 = static_cast< double >(val5);
+  ecode6 = SWIG_AsVal_int(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglData_Export" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = static_cast< int >(val6);
+  (arg1)->Export((char const *)arg2,(char const *)arg3,arg4,arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Export__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  double arg4 ;
+  double arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglData_Export",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Export" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Export" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Export" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_double(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Export" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = static_cast< double >(val4);
+  ecode5 = SWIG_AsVal_double(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Export" "', argument " "5"" of type '" "double""'");
+  } 
+  arg5 = static_cast< double >(val5);
+  (arg1)->Export((char const *)arg2,(char const *)arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Export__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  double arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Export",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Export" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Export" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Export" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_double(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Export" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = static_cast< double >(val4);
+  (arg1)->Export((char const *)arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Export__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Export",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Export" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Export" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Export" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Export((char const *)arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Export(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglData_Export__SWIG_3(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Export__SWIG_2(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_double(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Export__SWIG_1(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_double(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglData_Export__SWIG_0(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Export'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Export(mglData *,char const *,char const *,double,double,int)\n"
+    "    Export(mglData *,char const *,char const *,double,double)\n"
+    "    Export(mglData *,char const *,char const *,double)\n"
+    "    Export(mglData *,char const *,char const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Import__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  double arg4 ;
+  double arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglData_Import",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Import" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Import" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Import" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_double(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Import" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = static_cast< double >(val4);
+  ecode5 = SWIG_AsVal_double(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Import" "', argument " "5"" of type '" "double""'");
+  } 
+  arg5 = static_cast< double >(val5);
+  (arg1)->Import((char const *)arg2,(char const *)arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Import__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  double arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Import",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Import" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Import" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Import" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_double(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Import" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = static_cast< double >(val4);
+  (arg1)->Import((char const *)arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Import__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Import",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Import" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Import" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Import" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Import((char const *)arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Import(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[6];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglData_Import__SWIG_2(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Import__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_double(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Import__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Import'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Import(mglData *,char const *,char const *,double,double)\n"
+    "    Import(mglData *,char const *,char const *,double)\n"
+    "    Import(mglData *,char const *,char const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_ReadMat__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  bool result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_ReadMat",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_ReadMat" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_ReadMat" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_ReadMat" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  result = (bool)(arg1)->ReadMat((char const *)arg2,arg3);
+  resultobj = SWIG_From_bool(static_cast< bool >(result));
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_ReadMat__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  bool result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_ReadMat",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_ReadMat" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_ReadMat" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  result = (bool)(arg1)->ReadMat((char const *)arg2);
+  resultobj = SWIG_From_bool(static_cast< bool >(result));
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_ReadMat(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglData_ReadMat__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_ReadMat__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_ReadMat'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    ReadMat(mglData *,char const *,int)\n"
+    "    ReadMat(mglData *,char const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Create__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Create",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Create" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Create" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Create" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Create" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->Create(arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Create__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Create",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Create" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Create" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Create" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  (arg1)->Create(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Create__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Create",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Create" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Create" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  (arg1)->Create(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Create(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Create__SWIG_2(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Create__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Create__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Create'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Create(mglData *,int,int,int)\n"
+    "    Create(mglData *,int,int)\n"
+    "    Create(mglData *,int)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Extend__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Extend",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Extend" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Extend" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Extend" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  (arg1)->Extend(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Extend__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Extend",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Extend" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Extend" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  (arg1)->Extend(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Extend(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Extend__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Extend__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Extend'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Extend(mglData *,int,int)\n"
+    "    Extend(mglData *,int)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Transpose__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Transpose",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Transpose" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Transpose" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->Transpose((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Transpose__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglData_Transpose",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Transpose" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  (arg1)->Transpose();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Transpose(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[3];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglData_Transpose__SWIG_1(self, args);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglData_Transpose__SWIG_0(self, args);
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Transpose'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Transpose(mglData *,char const *)\n"
+    "    Transpose(mglData *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Norm__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  bool arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  bool val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglData_Norm",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Norm" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Norm" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Norm" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = static_cast< double >(val3);
+  ecode4 = SWIG_AsVal_bool(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Norm" "', argument " "4"" of type '" "bool""'");
+  } 
+  arg4 = static_cast< bool >(val4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Norm" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  (arg1)->Norm(arg2,arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Norm__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  bool arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  bool val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Norm",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Norm" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Norm" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Norm" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = static_cast< double >(val3);
+  ecode4 = SWIG_AsVal_bool(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Norm" "', argument " "4"" of type '" "bool""'");
+  } 
+  arg4 = static_cast< bool >(val4);
+  (arg1)->Norm(arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Norm__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Norm",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Norm" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Norm" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Norm" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = static_cast< double >(val3);
+  (arg1)->Norm(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Norm__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Norm",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Norm" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Norm" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  (arg1)->Norm(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Norm__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglData_Norm",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Norm" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  (arg1)->Norm();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Norm(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[6];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglData_Norm__SWIG_4(self, args);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Norm__SWIG_3(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Norm__SWIG_2(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_bool(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Norm__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_bool(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Norm__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Norm'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Norm(mglData *,double,double,bool,int)\n"
+    "    Norm(mglData *,double,double,bool)\n"
+    "    Norm(mglData *,double,double)\n"
+    "    Norm(mglData *,double)\n"
+    "    Norm(mglData *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_NormSl__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  char arg4 ;
+  bool arg5 ;
+  bool arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  char val4 ;
+  int ecode4 = 0 ;
+  bool val5 ;
+  int ecode5 = 0 ;
+  bool val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglData_NormSl",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_NormSl" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_NormSl" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_NormSl" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = static_cast< double >(val3);
+  ecode4 = SWIG_AsVal_char(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_NormSl" "', argument " "4"" of type '" "char""'");
+  } 
+  arg4 = static_cast< char >(val4);
+  ecode5 = SWIG_AsVal_bool(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_NormSl" "', argument " "5"" of type '" "bool""'");
+  } 
+  arg5 = static_cast< bool >(val5);
+  ecode6 = SWIG_AsVal_bool(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglData_NormSl" "', argument " "6"" of type '" "bool""'");
+  } 
+  arg6 = static_cast< bool >(val6);
+  (arg1)->NormSl(arg2,arg3,arg4,arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_NormSl__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  char arg4 ;
+  bool arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  char val4 ;
+  int ecode4 = 0 ;
+  bool val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglData_NormSl",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_NormSl" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_NormSl" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_NormSl" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = static_cast< double >(val3);
+  ecode4 = SWIG_AsVal_char(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_NormSl" "', argument " "4"" of type '" "char""'");
+  } 
+  arg4 = static_cast< char >(val4);
+  ecode5 = SWIG_AsVal_bool(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_NormSl" "', argument " "5"" of type '" "bool""'");
+  } 
+  arg5 = static_cast< bool >(val5);
+  (arg1)->NormSl(arg2,arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_NormSl__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  char arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  char val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_NormSl",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_NormSl" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_NormSl" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_NormSl" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = static_cast< double >(val3);
+  ecode4 = SWIG_AsVal_char(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_NormSl" "', argument " "4"" of type '" "char""'");
+  } 
+  arg4 = static_cast< char >(val4);
+  (arg1)->NormSl(arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_NormSl__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_NormSl",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_NormSl" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_NormSl" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_NormSl" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = static_cast< double >(val3);
+  (arg1)->NormSl(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_NormSl__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_NormSl",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_NormSl" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_NormSl" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  (arg1)->NormSl(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_NormSl__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglData_NormSl",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_NormSl" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  (arg1)->NormSl();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_NormSl(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglData_NormSl__SWIG_5(self, args);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_NormSl__SWIG_4(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_NormSl__SWIG_3(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_char(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_NormSl__SWIG_2(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_char(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_bool(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_NormSl__SWIG_1(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_char(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_bool(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_bool(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglData_NormSl__SWIG_0(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_NormSl'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    NormSl(mglData *,double,double,char,bool,bool)\n"
+    "    NormSl(mglData *,double,double,char,bool)\n"
+    "    NormSl(mglData *,double,double,char)\n"
+    "    NormSl(mglData *,double,double)\n"
+    "    NormSl(mglData *,double)\n"
+    "    NormSl(mglData *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Put__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  int arg3 ;
+  int arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglData_Put",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Put" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Put" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Put" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Put" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Put" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  (arg1)->Put(arg2,arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Put__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Put",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Put" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Put" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Put" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Put" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->Put(arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Put__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Put",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Put" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Put" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Put" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  (arg1)->Put(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Put__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Put",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Put" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Put" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  (arg1)->Put(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Put__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  int arg3 ;
+  int arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglData_Put",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Put" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Put" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Put" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Put" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Put" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Put" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  (arg1)->Put(*arg2,arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Put__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Put",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Put" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Put" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Put" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Put" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Put" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->Put(*arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Put__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Put",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Put" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Put" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Put" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Put" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  (arg1)->Put(*arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Put__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Put",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Put" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Put" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Put" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->Put(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Put(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[6];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglData_Put__SWIG_7(self, args);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Put__SWIG_3(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Put__SWIG_6(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Put__SWIG_2(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Put__SWIG_5(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Put__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Put__SWIG_4(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Put__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Put'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Put(mglData *,double,int,int,int)\n"
+    "    Put(mglData *,double,int,int)\n"
+    "    Put(mglData *,double,int)\n"
+    "    Put(mglData *,double)\n"
+    "    Put(mglData *,mglData &,int,int,int)\n"
+    "    Put(mglData *,mglData &,int,int)\n"
+    "    Put(mglData *,mglData &,int)\n"
+    "    Put(mglData *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Modify__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Modify",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Modify" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Modify" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Modify" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  (arg1)->Modify((char const *)arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Modify__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Modify",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Modify" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Modify" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->Modify((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Modify__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Modify",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Modify" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Modify" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Modify" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Modify" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglData_Modify" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Modify" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Modify((char const *)arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Modify__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Modify",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Modify" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Modify" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Modify" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Modify" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->Modify((char const *)arg2,(mglData const &)*arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Modify(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglData_Modify__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglData_Modify__SWIG_3(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Modify__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglData_Modify__SWIG_2(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Modify'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Modify(mglData *,char const *,int)\n"
+    "    Modify(mglData *,char const *)\n"
+    "    Modify(mglData *,char const *,mglData &,mglData &)\n"
+    "    Modify(mglData *,char const *,mglData const &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Fill__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  char arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  char val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Fill",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Fill" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Fill" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Fill" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = static_cast< double >(val3);
+  ecode4 = SWIG_AsVal_char(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Fill" "', argument " "4"" of type '" "char""'");
+  } 
+  arg4 = static_cast< char >(val4);
+  (arg1)->Fill(arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Fill__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Fill",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Fill" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Fill" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Fill" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = static_cast< double >(val3);
+  (arg1)->Fill(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Fill(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Fill__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_char(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Fill__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Fill'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Fill(mglData *,double,double,char)\n"
+    "    Fill(mglData *,double,double)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_FillSample(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_FillSample",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_FillSample" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_FillSample" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_FillSample" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->FillSample(arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Column(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Column",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Column" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Column" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  result = (arg1)->Column((char const *)arg2);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_SetColumnId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_SetColumnId",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_SetColumnId" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_SetColumnId" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->SetColumnId((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Squeeze__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  bool arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  bool val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglData_Squeeze",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Squeeze" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Squeeze" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Squeeze" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Squeeze" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  ecode5 = SWIG_AsVal_bool(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Squeeze" "', argument " "5"" of type '" "bool""'");
+  } 
+  arg5 = static_cast< bool >(val5);
+  (arg1)->Squeeze(arg2,arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Squeeze__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Squeeze",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Squeeze" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Squeeze" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Squeeze" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Squeeze" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->Squeeze(arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Squeeze__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Squeeze",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Squeeze" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Squeeze" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Squeeze" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  (arg1)->Squeeze(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Squeeze__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Squeeze",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Squeeze" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Squeeze" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  (arg1)->Squeeze(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Squeeze(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[6];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Squeeze__SWIG_3(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Squeeze__SWIG_2(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Squeeze__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_bool(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Squeeze__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Squeeze'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Squeeze(mglData *,int,int,int,bool)\n"
+    "    Squeeze(mglData *,int,int,int)\n"
+    "    Squeeze(mglData *,int,int)\n"
+    "    Squeeze(mglData *,int)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Crop__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  char arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  char val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Crop",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Crop" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Crop" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Crop" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_char(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Crop" "', argument " "4"" of type '" "char""'");
+  } 
+  arg4 = static_cast< char >(val4);
+  (arg1)->Crop(arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Crop__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Crop",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Crop" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Crop" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Crop" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  (arg1)->Crop(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Crop(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Crop__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_char(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Crop__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Crop'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Crop(mglData *,int,int,char)\n"
+    "    Crop(mglData *,int,int)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Maximal__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  double result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglData_Maximal",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Maximal" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  result = (double)(arg1)->Maximal();
+  resultobj = SWIG_From_double(static_cast< double >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Minimal__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  double result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglData_Minimal",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Minimal" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  result = (double)(arg1)->Minimal();
+  resultobj = SWIG_From_double(static_cast< double >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Momentum__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char arg2 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Momentum",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Momentum" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_char(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Momentum" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = static_cast< char >(val2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Momentum" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  result = (arg1)->Momentum(arg2,(char const *)arg3);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Smooth__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  char *arg3 = (char *) 0 ;
+  double arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Smooth",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Smooth" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Smooth" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Smooth" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_double(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Smooth" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = static_cast< double >(val4);
+  (arg1)->Smooth(arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Smooth__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Smooth",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Smooth" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Smooth" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Smooth" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Smooth(arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Smooth__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Smooth",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Smooth" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Smooth" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  (arg1)->Smooth(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Envelop__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Envelop",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Envelop" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_char(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Envelop" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = static_cast< char >(val2);
+  (arg1)->Envelop(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Envelop__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglData_Envelop",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Envelop" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  (arg1)->Envelop();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Envelop(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[3];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglData_Envelop__SWIG_1(self, args);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Envelop__SWIG_0(self, args);
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Envelop'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Envelop(mglData *,char)\n"
+    "    Envelop(mglData *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Sew__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  double arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Sew",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Sew" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Sew" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Sew" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = static_cast< double >(val3);
+  (arg1)->Sew((char const *)arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Sew__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Sew",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Sew" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Sew" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->Sew((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Sew__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglData_Sew",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Sew" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  (arg1)->Sew();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Sew(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglData_Sew__SWIG_2(self, args);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglData_Sew__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Sew__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Sew'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Sew(mglData *,char const *,double)\n"
+    "    Sew(mglData *,char const *)\n"
+    "    Sew(mglData *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Smooth__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Smooth",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Smooth" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Smooth" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->Smooth((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Smooth__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglData_Smooth",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Smooth" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  (arg1)->Smooth();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Smooth(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglData_Smooth__SWIG_4(self, args);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Smooth__SWIG_2(self, args);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglData_Smooth__SWIG_3(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglData_Smooth__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Smooth__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Smooth'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Smooth(mglData *,int,char const *,double)\n"
+    "    Smooth(mglData *,int,char const *)\n"
+    "    Smooth(mglData *,int)\n"
+    "    Smooth(mglData *,char const *)\n"
+    "    Smooth(mglData *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_SubData__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_SubData",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_SubData" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_SubData" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_SubData" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_SubData" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  result = (arg1)->SubData(arg2,arg3,arg4);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_SubData__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_SubData",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_SubData" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_SubData" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_SubData" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  result = (arg1)->SubData(arg2,arg3);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_SubData__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_SubData",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_SubData" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_SubData" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  result = (arg1)->SubData(arg2);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_SubData__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_SubData",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_SubData" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_SubData" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_SubData" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_SubData" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_SubData" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglData_SubData" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_SubData" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  result = (arg1)->SubData((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_SubData(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_SubData__SWIG_2(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_SubData__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglData_SubData__SWIG_3(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_SubData__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_SubData'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    SubData(mglData *,int,int,int)\n"
+    "    SubData(mglData *,int,int)\n"
+    "    SubData(mglData *,int)\n"
+    "    SubData(mglData *,mglData const &,mglData const &,mglData const &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Hist__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  double arg3 ;
+  double arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglData_Hist",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Hist" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Hist" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Hist" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = static_cast< double >(val3);
+  ecode4 = SWIG_AsVal_double(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Hist" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = static_cast< double >(val4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Hist" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  result = (arg1)->Hist(arg2,arg3,arg4,arg5);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Hist__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  double arg3 ;
+  double arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Hist",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Hist" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Hist" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Hist" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = static_cast< double >(val3);
+  ecode4 = SWIG_AsVal_double(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Hist" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = static_cast< double >(val4);
+  result = (arg1)->Hist(arg2,arg3,arg4);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Hist__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  double arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Hist",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Hist" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Hist" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Hist" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = static_cast< double >(val3);
+  result = (arg1)->Hist(arg2,arg3);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Hist__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Hist",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Hist" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Hist" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  result = (arg1)->Hist(arg2);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Hist__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  int arg3 ;
+  double arg4 ;
+  double arg5 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglData_Hist",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Hist" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Hist" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Hist" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Hist" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_double(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Hist" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = static_cast< double >(val4);
+  ecode5 = SWIG_AsVal_double(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Hist" "', argument " "5"" of type '" "double""'");
+  } 
+  arg5 = static_cast< double >(val5);
+  ecode6 = SWIG_AsVal_int(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglData_Hist" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = static_cast< int >(val6);
+  result = (arg1)->Hist((mglData const &)*arg2,arg3,arg4,arg5,arg6);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Hist__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  int arg3 ;
+  double arg4 ;
+  double arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglData_Hist",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Hist" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Hist" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Hist" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Hist" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_double(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Hist" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = static_cast< double >(val4);
+  ecode5 = SWIG_AsVal_double(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Hist" "', argument " "5"" of type '" "double""'");
+  } 
+  arg5 = static_cast< double >(val5);
+  result = (arg1)->Hist((mglData const &)*arg2,arg3,arg4,arg5);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Hist__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  int arg3 ;
+  double arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Hist",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Hist" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Hist" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Hist" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Hist" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_double(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Hist" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = static_cast< double >(val4);
+  result = (arg1)->Hist((mglData const &)*arg2,arg3,arg4);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Hist__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Hist",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Hist" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Hist" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Hist" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Hist" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  result = (arg1)->Hist((mglData const &)*arg2,arg3);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Hist(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Hist__SWIG_3(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Hist__SWIG_7(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Hist__SWIG_2(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Hist__SWIG_6(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Hist__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_double(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Hist__SWIG_5(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Hist__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_double(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglData_Hist__SWIG_4(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Hist'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Hist(mglData *,int,double,double,int)\n"
+    "    Hist(mglData *,int,double,double)\n"
+    "    Hist(mglData *,int,double)\n"
+    "    Hist(mglData *,int)\n"
+    "    Hist(mglData *,mglData const &,int,double,double,int)\n"
+    "    Hist(mglData *,mglData const &,int,double,double)\n"
+    "    Hist(mglData *,mglData const &,int,double)\n"
+    "    Hist(mglData *,mglData const &,int)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Sum(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Sum",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Sum" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Sum" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  result = (arg1)->Sum((char const *)arg2);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Max(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Max",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Max" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Max" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  result = (arg1)->Max((char const *)arg2);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Min(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Min",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Min" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Min" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  result = (arg1)->Min((char const *)arg2);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Resize__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  double arg5 ;
+  double arg6 ;
+  double arg7 ;
+  double arg8 ;
+  double arg9 ;
+  double arg10 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  double val6 ;
+  int ecode6 = 0 ;
+  double val7 ;
+  int ecode7 = 0 ;
+  double val8 ;
+  int ecode8 = 0 ;
+  double val9 ;
+  int ecode9 = 0 ;
+  double val10 ;
+  int ecode10 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  PyObject * obj9 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOO:mglData_Resize",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Resize" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Resize" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Resize" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Resize" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  ecode5 = SWIG_AsVal_double(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Resize" "', argument " "5"" of type '" "double""'");
+  } 
+  arg5 = static_cast< double >(val5);
+  ecode6 = SWIG_AsVal_double(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglData_Resize" "', argument " "6"" of type '" "double""'");
+  } 
+  arg6 = static_cast< double >(val6);
+  ecode7 = SWIG_AsVal_double(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglData_Resize" "', argument " "7"" of type '" "double""'");
+  } 
+  arg7 = static_cast< double >(val7);
+  ecode8 = SWIG_AsVal_double(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglData_Resize" "', argument " "8"" of type '" "double""'");
+  } 
+  arg8 = static_cast< double >(val8);
+  ecode9 = SWIG_AsVal_double(obj8, &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglData_Resize" "', argument " "9"" of type '" "double""'");
+  } 
+  arg9 = static_cast< double >(val9);
+  ecode10 = SWIG_AsVal_double(obj9, &val10);
+  if (!SWIG_IsOK(ecode10)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode10), "in method '" "mglData_Resize" "', argument " "10"" of type '" "double""'");
+  } 
+  arg10 = static_cast< double >(val10);
+  result = (arg1)->Resize(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Resize__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  double arg5 ;
+  double arg6 ;
+  double arg7 ;
+  double arg8 ;
+  double arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  double val6 ;
+  int ecode6 = 0 ;
+  double val7 ;
+  int ecode7 = 0 ;
+  double val8 ;
+  int ecode8 = 0 ;
+  double val9 ;
+  int ecode9 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:mglData_Resize",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Resize" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Resize" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Resize" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Resize" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  ecode5 = SWIG_AsVal_double(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Resize" "', argument " "5"" of type '" "double""'");
+  } 
+  arg5 = static_cast< double >(val5);
+  ecode6 = SWIG_AsVal_double(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglData_Resize" "', argument " "6"" of type '" "double""'");
+  } 
+  arg6 = static_cast< double >(val6);
+  ecode7 = SWIG_AsVal_double(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglData_Resize" "', argument " "7"" of type '" "double""'");
+  } 
+  arg7 = static_cast< double >(val7);
+  ecode8 = SWIG_AsVal_double(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglData_Resize" "', argument " "8"" of type '" "double""'");
+  } 
+  arg8 = static_cast< double >(val8);
+  ecode9 = SWIG_AsVal_double(obj8, &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglData_Resize" "', argument " "9"" of type '" "double""'");
+  } 
+  arg9 = static_cast< double >(val9);
+  result = (arg1)->Resize(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Resize__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  double arg5 ;
+  double arg6 ;
+  double arg7 ;
+  double arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  double val6 ;
+  int ecode6 = 0 ;
+  double val7 ;
+  int ecode7 = 0 ;
+  double val8 ;
+  int ecode8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglData_Resize",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Resize" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Resize" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Resize" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Resize" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  ecode5 = SWIG_AsVal_double(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Resize" "', argument " "5"" of type '" "double""'");
+  } 
+  arg5 = static_cast< double >(val5);
+  ecode6 = SWIG_AsVal_double(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglData_Resize" "', argument " "6"" of type '" "double""'");
+  } 
+  arg6 = static_cast< double >(val6);
+  ecode7 = SWIG_AsVal_double(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglData_Resize" "', argument " "7"" of type '" "double""'");
+  } 
+  arg7 = static_cast< double >(val7);
+  ecode8 = SWIG_AsVal_double(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglData_Resize" "', argument " "8"" of type '" "double""'");
+  } 
+  arg8 = static_cast< double >(val8);
+  result = (arg1)->Resize(arg2,arg3,arg4,arg5,arg6,arg7,arg8);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Resize__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  double arg5 ;
+  double arg6 ;
+  double arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  double val6 ;
+  int ecode6 = 0 ;
+  double val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglData_Resize",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Resize" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Resize" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Resize" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Resize" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  ecode5 = SWIG_AsVal_double(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Resize" "', argument " "5"" of type '" "double""'");
+  } 
+  arg5 = static_cast< double >(val5);
+  ecode6 = SWIG_AsVal_double(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglData_Resize" "', argument " "6"" of type '" "double""'");
+  } 
+  arg6 = static_cast< double >(val6);
+  ecode7 = SWIG_AsVal_double(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglData_Resize" "', argument " "7"" of type '" "double""'");
+  } 
+  arg7 = static_cast< double >(val7);
+  result = (arg1)->Resize(arg2,arg3,arg4,arg5,arg6,arg7);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Resize__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  double arg5 ;
+  double arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  double val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglData_Resize",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Resize" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Resize" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Resize" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Resize" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  ecode5 = SWIG_AsVal_double(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Resize" "', argument " "5"" of type '" "double""'");
+  } 
+  arg5 = static_cast< double >(val5);
+  ecode6 = SWIG_AsVal_double(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglData_Resize" "', argument " "6"" of type '" "double""'");
+  } 
+  arg6 = static_cast< double >(val6);
+  result = (arg1)->Resize(arg2,arg3,arg4,arg5,arg6);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Resize__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  double arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglData_Resize",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Resize" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Resize" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Resize" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Resize" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  ecode5 = SWIG_AsVal_double(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Resize" "', argument " "5"" of type '" "double""'");
+  } 
+  arg5 = static_cast< double >(val5);
+  result = (arg1)->Resize(arg2,arg3,arg4,arg5);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Resize__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Resize",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Resize" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Resize" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Resize" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Resize" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  result = (arg1)->Resize(arg2,arg3,arg4);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Resize__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Resize",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Resize" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Resize" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Resize" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  result = (arg1)->Resize(arg2,arg3);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Resize__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Resize",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Resize" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Resize" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  result = (arg1)->Resize(arg2);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Resize(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[11];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 10); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Resize__SWIG_8(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Resize__SWIG_7(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Resize__SWIG_6(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_double(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Resize__SWIG_5(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_double(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_double(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglData_Resize__SWIG_4(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_double(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_double(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_double(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglData_Resize__SWIG_3(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_double(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_double(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_double(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_double(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglData_Resize__SWIG_2(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_double(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_double(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_double(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_double(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_double(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglData_Resize__SWIG_1(self, args);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 10) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_double(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_double(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_double(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_double(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_double(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      {
+                        int res = SWIG_AsVal_double(argv[9], NULL);
+                        _v = SWIG_CheckState(res);
+                      }
+                      if (_v) {
+                        return _wrap_mglData_Resize__SWIG_0(self, args);
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Resize'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Resize(mglData *,int,int,int,double,double,double,double,double,double)\n"
+    "    Resize(mglData *,int,int,int,double,double,double,double,double)\n"
+    "    Resize(mglData *,int,int,int,double,double,double,double)\n"
+    "    Resize(mglData *,int,int,int,double,double,double)\n"
+    "    Resize(mglData *,int,int,int,double,double)\n"
+    "    Resize(mglData *,int,int,int,double)\n"
+    "    Resize(mglData *,int,int,int)\n"
+    "    Resize(mglData *,int,int)\n"
+    "    Resize(mglData *,int)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Combine(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Combine",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Combine" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Combine" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Combine" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  result = (arg1)->Combine((mglData const &)*arg2);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Evaluate__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  bool arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  bool val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Evaluate",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Evaluate" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Evaluate" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Evaluate" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  ecode3 = SWIG_AsVal_bool(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Evaluate" "', argument " "3"" of type '" "bool""'");
+  } 
+  arg3 = static_cast< bool >(val3);
+  result = (arg1)->Evaluate((mglData const &)*arg2,arg3);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Evaluate__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Evaluate",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Evaluate" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Evaluate" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Evaluate" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  result = (arg1)->Evaluate((mglData const &)*arg2);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Evaluate__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  bool arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  bool val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Evaluate",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Evaluate" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Evaluate" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Evaluate" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Evaluate" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Evaluate" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  ecode4 = SWIG_AsVal_bool(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Evaluate" "', argument " "4"" of type '" "bool""'");
+  } 
+  arg4 = static_cast< bool >(val4);
+  result = (arg1)->Evaluate((mglData const &)*arg2,(mglData const &)*arg3,arg4);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Evaluate__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Evaluate",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Evaluate" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Evaluate" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Evaluate" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Evaluate" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Evaluate" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  result = (arg1)->Evaluate((mglData const &)*arg2,(mglData const &)*arg3);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Evaluate__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  bool arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  bool val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglData_Evaluate",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Evaluate" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Evaluate" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Evaluate" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Evaluate" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Evaluate" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglData_Evaluate" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Evaluate" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  ecode5 = SWIG_AsVal_bool(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Evaluate" "', argument " "5"" of type '" "bool""'");
+  } 
+  arg5 = static_cast< bool >(val5);
+  result = (arg1)->Evaluate((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,arg5);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Evaluate__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Evaluate",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Evaluate" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Evaluate" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Evaluate" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Evaluate" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Evaluate" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglData_Evaluate" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Evaluate" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  result = (arg1)->Evaluate((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Evaluate(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[6];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglData_Evaluate__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglData_Evaluate__SWIG_3(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_bool(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Evaluate__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglData_Evaluate__SWIG_5(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_bool(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Evaluate__SWIG_2(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_bool(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Evaluate__SWIG_4(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Evaluate'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Evaluate(mglData *,mglData const &,bool)\n"
+    "    Evaluate(mglData *,mglData const &)\n"
+    "    Evaluate(mglData *,mglData const &,mglData const &,bool)\n"
+    "    Evaluate(mglData *,mglData const &,mglData const &)\n"
+    "    Evaluate(mglData *,mglData const &,mglData const &,mglData const &,bool)\n"
+    "    Evaluate(mglData *,mglData const &,mglData const &,mglData const &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_CumSum(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_CumSum",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_CumSum" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_CumSum" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->CumSum((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Integral(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Integral",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Integral" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Integral" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->Integral((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Diff__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Diff",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Diff" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Diff" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->Diff((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Diff__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Diff",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Diff" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Diff" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Diff" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Diff" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Diff" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->Diff((mglData const &)*arg2,(mglData const &)*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Diff__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Diff",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Diff" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Diff" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Diff" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Diff" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Diff" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglData_Diff" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Diff" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Diff((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Diff(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglData_Diff__SWIG_0(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglData_Diff__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglData_Diff__SWIG_2(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Diff'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Diff(mglData *,char const *)\n"
+    "    Diff(mglData *,mglData const &,mglData const &)\n"
+    "    Diff(mglData *,mglData const &,mglData const &,mglData const &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Diff2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Diff2",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Diff2" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Diff2" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->Diff2((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Swap",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Swap" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Swap" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->Swap((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Roll(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Roll",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Roll" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_char(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Roll" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = static_cast< char >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Roll" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  (arg1)->Roll(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Mirror(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Mirror",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Mirror" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Mirror" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->Mirror((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Hankel(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Hankel",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Hankel" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Hankel" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->Hankel((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_SinFFT(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_SinFFT",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_SinFFT" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_SinFFT" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->SinFFT((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_CosFFT(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_CosFFT",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_CosFFT" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_CosFFT" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->CosFFT((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Spline__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  double arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  double result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Spline",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Spline" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Spline" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Spline" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = static_cast< double >(val3);
+  ecode4 = SWIG_AsVal_double(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Spline" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = static_cast< double >(val4);
+  result = (double)(arg1)->Spline(arg2,arg3,arg4);
+  resultobj = SWIG_From_double(static_cast< double >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Spline__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  double result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Spline",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Spline" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Spline" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Spline" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = static_cast< double >(val3);
+  result = (double)(arg1)->Spline(arg2,arg3);
+  resultobj = SWIG_From_double(static_cast< double >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Spline__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  double result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Spline",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Spline" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Spline" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  result = (double)(arg1)->Spline(arg2);
+  resultobj = SWIG_From_double(static_cast< double >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Spline(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Spline__SWIG_2(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Spline__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Spline__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Spline'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Spline(mglData *,double,double,double)\n"
+    "    Spline(mglData *,double,double)\n"
+    "    Spline(mglData *,double)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Spline1__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  double arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  double result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Spline1",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Spline1" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Spline1" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Spline1" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = static_cast< double >(val3);
+  ecode4 = SWIG_AsVal_double(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Spline1" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = static_cast< double >(val4);
+  result = (double)(arg1)->Spline1(arg2,arg3,arg4);
+  resultobj = SWIG_From_double(static_cast< double >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Spline1__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  double result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Spline1",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Spline1" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Spline1" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Spline1" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = static_cast< double >(val3);
+  result = (double)(arg1)->Spline1(arg2,arg3);
+  resultobj = SWIG_From_double(static_cast< double >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Spline1__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  double result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Spline1",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Spline1" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Spline1" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  result = (double)(arg1)->Spline1(arg2);
+  resultobj = SWIG_From_double(static_cast< double >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Spline1(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Spline1__SWIG_2(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Spline1__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Spline1__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Spline1'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Spline1(mglData *,double,double,double)\n"
+    "    Spline1(mglData *,double,double)\n"
+    "    Spline1(mglData *,double)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Linear__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  double arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  double result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Linear",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Linear" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Linear" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Linear" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = static_cast< double >(val3);
+  ecode4 = SWIG_AsVal_double(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Linear" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = static_cast< double >(val4);
+  result = (double)(arg1)->Linear(arg2,arg3,arg4);
+  resultobj = SWIG_From_double(static_cast< double >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Linear__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  double result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Linear",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Linear" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Linear" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Linear" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = static_cast< double >(val3);
+  result = (double)(arg1)->Linear(arg2,arg3);
+  resultobj = SWIG_From_double(static_cast< double >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Linear__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  double result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Linear",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Linear" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Linear" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  result = (double)(arg1)->Linear(arg2);
+  resultobj = SWIG_From_double(static_cast< double >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Linear(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Linear__SWIG_2(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Linear__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Linear__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Linear'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Linear(mglData *,double,double,double)\n"
+    "    Linear(mglData *,double,double)\n"
+    "    Linear(mglData *,double)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Linear1__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  double arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  double result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Linear1",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Linear1" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Linear1" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Linear1" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = static_cast< double >(val3);
+  ecode4 = SWIG_AsVal_double(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Linear1" "', argument " "4"" of type '" "double""'");
+  } 
+  arg4 = static_cast< double >(val4);
+  result = (double)(arg1)->Linear1(arg2,arg3,arg4);
+  resultobj = SWIG_From_double(static_cast< double >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Linear1__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  double result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Linear1",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Linear1" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Linear1" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Linear1" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = static_cast< double >(val3);
+  result = (double)(arg1)->Linear1(arg2,arg3);
+  resultobj = SWIG_From_double(static_cast< double >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Linear1__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  double result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Linear1",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Linear1" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Linear1" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  result = (double)(arg1)->Linear1(arg2);
+  resultobj = SWIG_From_double(static_cast< double >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Linear1(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Linear1__SWIG_2(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Linear1__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_double(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Linear1__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Linear1'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Linear1(mglData *,double,double,double)\n"
+    "    Linear1(mglData *,double,double)\n"
+    "    Linear1(mglData *,double)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Insert__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char arg2 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Insert",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Insert" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_char(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Insert" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = static_cast< char >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Insert" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Insert" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->Insert(arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Insert__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Insert",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Insert" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_char(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Insert" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = static_cast< char >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Insert" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  (arg1)->Insert(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Insert__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Insert",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Insert" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_char(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Insert" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = static_cast< char >(val2);
+  (arg1)->Insert(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Insert(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Insert__SWIG_2(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Insert__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Insert__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Insert'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Insert(mglData *,char,int,int)\n"
+    "    Insert(mglData *,char,int)\n"
+    "    Insert(mglData *,char)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Delete__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char arg2 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Delete",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Delete" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_char(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Delete" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = static_cast< char >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Delete" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Delete" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->Delete(arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Delete__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Delete",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Delete" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_char(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Delete" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = static_cast< char >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Delete" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  (arg1)->Delete(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Delete__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_Delete",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Delete" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_char(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Delete" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = static_cast< char >(val2);
+  (arg1)->Delete(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Delete(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_Delete__SWIG_2(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Delete__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Delete__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Delete'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Delete(mglData *,char,int,int)\n"
+    "    Delete(mglData *,char,int)\n"
+    "    Delete(mglData *,char)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Find__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int *arg3 = 0 ;
+  int *arg4 = 0 ;
+  int *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  mreal result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglData_Find",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Find" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Find" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_int,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Find" "', argument " "3"" of type '" "int &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Find" "', argument " "3"" of type '" "int &""'"); 
+  }
+  arg3 = reinterpret_cast< int * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_int,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglData_Find" "', argument " "4"" of type '" "int &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Find" "', argument " "4"" of type '" "int &""'"); 
+  }
+  arg4 = reinterpret_cast< int * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_int,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglData_Find" "', argument " "5"" of type '" "int &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Find" "', argument " "5"" of type '" "int &""'"); 
+  }
+  arg5 = reinterpret_cast< int * >(argp5);
+  result = (arg1)->Find((char const *)arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_NewPointerObj((new mreal(static_cast< const mreal& >(result))), SWIGTYPE_p_mreal, SWIG_POINTER_OWN |  0 );
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Last(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int *arg3 = 0 ;
+  int *arg4 = 0 ;
+  int *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  mreal result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglData_Last",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Last" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Last" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_int,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Last" "', argument " "3"" of type '" "int &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Last" "', argument " "3"" of type '" "int &""'"); 
+  }
+  arg3 = reinterpret_cast< int * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_int,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglData_Last" "', argument " "4"" of type '" "int &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Last" "', argument " "4"" of type '" "int &""'"); 
+  }
+  arg4 = reinterpret_cast< int * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_int,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglData_Last" "', argument " "5"" of type '" "int &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Last" "', argument " "5"" of type '" "int &""'"); 
+  }
+  arg5 = reinterpret_cast< int * >(argp5);
+  result = (arg1)->Last((char const *)arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_NewPointerObj((new mreal(static_cast< const mreal& >(result))), SWIGTYPE_p_mreal, SWIG_POINTER_OWN |  0 );
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Find__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char arg3 ;
+  int arg4 ;
+  int arg5 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  char val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  int result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglData_Find",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Find" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Find" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  ecode3 = SWIG_AsVal_char(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Find" "', argument " "3"" of type '" "char""'");
+  } 
+  arg3 = static_cast< char >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Find" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Find" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  ecode6 = SWIG_AsVal_int(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglData_Find" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = static_cast< int >(val6);
+  result = (int)(arg1)->Find((char const *)arg2,arg3,arg4,arg5,arg6);
+  resultobj = SWIG_From_int(static_cast< int >(result));
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Find__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char arg3 ;
+  int arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  char val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  int result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglData_Find",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Find" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Find" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  ecode3 = SWIG_AsVal_char(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Find" "', argument " "3"" of type '" "char""'");
+  } 
+  arg3 = static_cast< char >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Find" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_Find" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  result = (int)(arg1)->Find((char const *)arg2,arg3,arg4,arg5);
+  resultobj = SWIG_From_int(static_cast< int >(result));
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Find__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  char val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  int result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Find",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Find" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Find" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  ecode3 = SWIG_AsVal_char(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Find" "', argument " "3"" of type '" "char""'");
+  } 
+  arg3 = static_cast< char >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_Find" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  result = (int)(arg1)->Find((char const *)arg2,arg3,arg4);
+  resultobj = SWIG_From_int(static_cast< int >(result));
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Find__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  char val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  int result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_Find",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Find" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Find" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  ecode3 = SWIG_AsVal_char(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_Find" "', argument " "3"" of type '" "char""'");
+  } 
+  arg3 = static_cast< char >(val3);
+  result = (int)(arg1)->Find((char const *)arg2,arg3);
+  resultobj = SWIG_From_int(static_cast< int >(result));
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Find(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_char(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_Find__SWIG_4(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_char(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_Find__SWIG_3(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_int, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_int, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_int, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglData_Find__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_char(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_Find__SWIG_2(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_char(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglData_Find__SWIG_1(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Find'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Find(mglData *,char const *,int &,int &,int &)\n"
+    "    Find(mglData *,char const *,char,int,int,int)\n"
+    "    Find(mglData *,char const *,char,int,int)\n"
+    "    Find(mglData *,char const *,char,int)\n"
+    "    Find(mglData *,char const *,char)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_FindAny(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  bool result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_FindAny",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_FindAny" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_FindAny" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  result = (bool)(arg1)->FindAny((char const *)arg2);
+  resultobj = SWIG_From_bool(static_cast< bool >(result));
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Maximal__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int *arg2 = 0 ;
+  int *arg3 = 0 ;
+  int *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  float result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Maximal",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Maximal" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_int,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Maximal" "', argument " "2"" of type '" "int &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Maximal" "', argument " "2"" of type '" "int &""'"); 
+  }
+  arg2 = reinterpret_cast< int * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_int,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Maximal" "', argument " "3"" of type '" "int &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Maximal" "', argument " "3"" of type '" "int &""'"); 
+  }
+  arg3 = reinterpret_cast< int * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_int,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglData_Maximal" "', argument " "4"" of type '" "int &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Maximal" "', argument " "4"" of type '" "int &""'"); 
+  }
+  arg4 = reinterpret_cast< int * >(argp4);
+  result = (float)(arg1)->Maximal(*arg2,*arg3,*arg4);
+  resultobj = SWIG_From_float(static_cast< float >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Minimal__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int *arg2 = 0 ;
+  int *arg3 = 0 ;
+  int *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  float result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Minimal",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Minimal" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_int,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Minimal" "', argument " "2"" of type '" "int &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Minimal" "', argument " "2"" of type '" "int &""'"); 
+  }
+  arg2 = reinterpret_cast< int * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_int,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Minimal" "', argument " "3"" of type '" "int &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Minimal" "', argument " "3"" of type '" "int &""'"); 
+  }
+  arg3 = reinterpret_cast< int * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_int,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglData_Minimal" "', argument " "4"" of type '" "int &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Minimal" "', argument " "4"" of type '" "int &""'"); 
+  }
+  arg4 = reinterpret_cast< int * >(argp4);
+  result = (float)(arg1)->Minimal(*arg2,*arg3,*arg4);
+  resultobj = SWIG_From_float(static_cast< float >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Maximal__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  float *arg2 = 0 ;
+  float *arg3 = 0 ;
+  float *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  float result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Maximal",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Maximal" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_float,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Maximal" "', argument " "2"" of type '" "float &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Maximal" "', argument " "2"" of type '" "float &""'"); 
+  }
+  arg2 = reinterpret_cast< float * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_float,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Maximal" "', argument " "3"" of type '" "float &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Maximal" "', argument " "3"" of type '" "float &""'"); 
+  }
+  arg3 = reinterpret_cast< float * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_float,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglData_Maximal" "', argument " "4"" of type '" "float &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Maximal" "', argument " "4"" of type '" "float &""'"); 
+  }
+  arg4 = reinterpret_cast< float * >(argp4);
+  result = (float)(arg1)->Maximal(*arg2,*arg3,*arg4);
+  resultobj = SWIG_From_float(static_cast< float >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Maximal(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglData_Maximal__SWIG_0(self, args);
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_int, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_int, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_int, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglData_Maximal__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_float, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_float, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_float, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglData_Maximal__SWIG_2(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Maximal'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Maximal(mglData *)\n"
+    "    Maximal(mglData *,int &,int &,int &)\n"
+    "    Maximal(mglData *,float &,float &,float &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Minimal__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  float *arg2 = 0 ;
+  float *arg3 = 0 ;
+  float *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  float result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Minimal",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Minimal" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_float,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglData_Minimal" "', argument " "2"" of type '" "float &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Minimal" "', argument " "2"" of type '" "float &""'"); 
+  }
+  arg2 = reinterpret_cast< float * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_float,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Minimal" "', argument " "3"" of type '" "float &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Minimal" "', argument " "3"" of type '" "float &""'"); 
+  }
+  arg3 = reinterpret_cast< float * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_float,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglData_Minimal" "', argument " "4"" of type '" "float &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Minimal" "', argument " "4"" of type '" "float &""'"); 
+  }
+  arg4 = reinterpret_cast< float * >(argp4);
+  result = (float)(arg1)->Minimal(*arg2,*arg3,*arg4);
+  resultobj = SWIG_From_float(static_cast< float >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Minimal(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglData_Minimal__SWIG_0(self, args);
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_int, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_int, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_int, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglData_Minimal__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_float, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_float, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_float, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglData_Minimal__SWIG_2(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Minimal'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Minimal(mglData *)\n"
+    "    Minimal(mglData *,int &,int &,int &)\n"
+    "    Minimal(mglData *,float &,float &,float &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Momentum__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  char arg2 ;
+  float *arg3 = 0 ;
+  float *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  float result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_Momentum",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_Momentum" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_char(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_Momentum" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = static_cast< char >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_float,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglData_Momentum" "', argument " "3"" of type '" "float &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Momentum" "', argument " "3"" of type '" "float &""'"); 
+  }
+  arg3 = reinterpret_cast< float * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_float,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglData_Momentum" "', argument " "4"" of type '" "float &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglData_Momentum" "', argument " "4"" of type '" "float &""'"); 
+  }
+  arg4 = reinterpret_cast< float * >(argp4);
+  result = (float)(arg1)->Momentum(arg2,*arg3,*arg4);
+  resultobj = SWIG_From_float(static_cast< float >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_Momentum(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglData_Momentum__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_float, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_float, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglData_Momentum__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_Momentum'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Momentum(mglData *,char,char const *)\n"
+    "    Momentum(mglData *,char,float &,float &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_v__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  double result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_v",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_v" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_v" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_v" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_v" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  result = (double)(arg1)->v(arg2,arg3,arg4);
+  resultobj = SWIG_From_double(static_cast< double >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_v__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  double result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_v",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_v" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_v" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_v" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  result = (double)(arg1)->v(arg2,arg3);
+  resultobj = SWIG_From_double(static_cast< double >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_v__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  double result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_v",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_v" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_v" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  result = (double)(arg1)->v(arg2);
+  resultobj = SWIG_From_double(static_cast< double >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_v(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_v__SWIG_2(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_v__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_v__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_v'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    v(mglData *,int,int,int)\n"
+    "    v(mglData *,int,int)\n"
+    "    v(mglData *,int)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_GetVal__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  double result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_GetVal",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_GetVal" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_GetVal" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_GetVal" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_GetVal" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  result = (double)(arg1)->GetVal(arg2,arg3,arg4);
+  resultobj = SWIG_From_double(static_cast< double >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_GetVal__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  double result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_GetVal",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_GetVal" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_GetVal" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_GetVal" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  result = (double)(arg1)->GetVal(arg2,arg3);
+  resultobj = SWIG_From_double(static_cast< double >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_GetVal__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  double result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData_GetVal",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_GetVal" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_GetVal" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  result = (double)(arg1)->GetVal(arg2);
+  resultobj = SWIG_From_double(static_cast< double >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_GetVal(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglData_GetVal__SWIG_2(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_GetVal__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_GetVal__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_GetVal'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    GetVal(mglData *,int,int,int)\n"
+    "    GetVal(mglData *,int,int)\n"
+    "    GetVal(mglData *,int)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_SetVal__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  int arg3 ;
+  int arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglData_SetVal",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_SetVal" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_SetVal" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_SetVal" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_SetVal" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglData_SetVal" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  (arg1)->SetVal(arg2,arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_SetVal__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglData_SetVal",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_SetVal" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_SetVal" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_SetVal" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglData_SetVal" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->SetVal(arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_SetVal__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  double arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData_SetVal",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_SetVal" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData_SetVal" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData_SetVal" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  (arg1)->SetVal(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_SetVal(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[6];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglData_SetVal__SWIG_2(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglData_SetVal__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglData, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglData_SetVal__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglData_SetVal'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    SetVal(mglData *,double,int,int,int)\n"
+    "    SetVal(mglData *,double,int,int)\n"
+    "    SetVal(mglData *,double,int)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_GetNx(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  long result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglData_GetNx",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_GetNx" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  result = (long)(arg1)->GetNx();
+  resultobj = SWIG_From_long(static_cast< long >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_GetNy(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  long result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglData_GetNy",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_GetNy" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  result = (long)(arg1)->GetNy();
+  resultobj = SWIG_From_long(static_cast< long >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_GetNz(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  long result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglData_GetNz",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_GetNz" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  result = (long)(arg1)->GetNz();
+  resultobj = SWIG_From_long(static_cast< long >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData_GetData(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  mreal *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglData_GetData",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData_GetData" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  result = (mreal *)(arg1)->GetData();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mreal, 0 |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData___getitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  float result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData___getitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData___getitem__" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData___getitem__" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  result = (float)mglData___getitem__(arg1,arg2);
+  resultobj = SWIG_From_float(static_cast< float >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData___paren(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  float result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglData___paren",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData___paren" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData___paren" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  result = (float)mglData___paren(arg1,arg2);
+  resultobj = SWIG_From_float(static_cast< float >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData___setitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  float arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData___setitem__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData___setitem__" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData___setitem__" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData___setitem__" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  mglData___setitem__(arg1,arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglData___paren_asgn(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglData *arg1 = (mglData *) 0 ;
+  int arg2 ;
+  float arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglData___paren_asgn",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglData, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglData___paren_asgn" "', argument " "1"" of type '" "mglData *""'"); 
+  }
+  arg1 = reinterpret_cast< mglData * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglData___paren_asgn" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglData___paren_asgn" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  mglData___paren_asgn(arg1,arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *mglData_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *obj;
+  if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
+  SWIG_TypeNewClientData(SWIGTYPE_p_mglData, SWIG_NewClientData(obj));
+  return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_mglGraph__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  int arg1 ;
+  int arg2 ;
+  int arg3 ;
+  int val1 ;
+  int ecode1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  mglGraph *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:new_mglGraph",&obj0,&obj1,&obj2)) SWIG_fail;
+  ecode1 = SWIG_AsVal_int(obj0, &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_mglGraph" "', argument " "1"" of type '" "int""'");
+  } 
+  arg1 = static_cast< int >(val1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglGraph" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_mglGraph" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  result = (mglGraph *)new mglGraph(arg1,arg2,arg3);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglGraph, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglGraph__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  int arg1 ;
+  int arg2 ;
+  int val1 ;
+  int ecode1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  mglGraph *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:new_mglGraph",&obj0,&obj1)) SWIG_fail;
+  ecode1 = SWIG_AsVal_int(obj0, &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_mglGraph" "', argument " "1"" of type '" "int""'");
+  } 
+  arg1 = static_cast< int >(val1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_mglGraph" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  result = (mglGraph *)new mglGraph(arg1,arg2);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglGraph, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglGraph__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  int arg1 ;
+  int val1 ;
+  int ecode1 = 0 ;
+  PyObject * obj0 = 0 ;
+  mglGraph *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:new_mglGraph",&obj0)) SWIG_fail;
+  ecode1 = SWIG_AsVal_int(obj0, &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_mglGraph" "', argument " "1"" of type '" "int""'");
+  } 
+  arg1 = static_cast< int >(val1);
+  result = (mglGraph *)new mglGraph(arg1);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglGraph, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglGraph__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)":new_mglGraph")) SWIG_fail;
+  result = (mglGraph *)new mglGraph();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglGraph, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_mglGraph(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 0) {
+    return _wrap_new_mglGraph__SWIG_3(self, args);
+  }
+  if (argc == 1) {
+    int _v;
+    {
+      int res = SWIG_AsVal_int(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      return _wrap_new_mglGraph__SWIG_2(self, args);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    {
+      int res = SWIG_AsVal_int(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_new_mglGraph__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    {
+      int res = SWIG_AsVal_int(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_new_mglGraph__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_mglGraph'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    mglGraph(int,int,int)\n"
+    "    mglGraph(int,int)\n"
+    "    mglGraph(int)\n"
+    "    mglGraph()\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_mglGraph(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:delete_mglGraph",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_mglGraph" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  delete arg1;
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Self(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  HMGL result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglGraph_Self",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Self" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  result = (arg1)->Self();
+  resultobj = SWIG_NewPointerObj((new HMGL(static_cast< const HMGL& >(result))), SWIGTYPE_p_HMGL, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_GetWarn(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  int result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglGraph_GetWarn",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_GetWarn" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  result = (int)(arg1)->GetWarn();
+  resultobj = SWIG_From_int(static_cast< int >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_DefaultPlotParam(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglGraph_DefaultPlotParam",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_DefaultPlotParam" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  (arg1)->DefaultPlotParam();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetPalColor(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_SetPalColor",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetPalColor" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetPalColor" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetPalColor" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SetPalColor" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_SetPalColor" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->SetPalColor(arg2,arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetPalNum(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetPalNum",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetPalNum" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetPalNum" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  (arg1)->SetPalNum(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetPalette(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetPalette",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetPalette" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetPalette" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->SetPalette((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetScheme(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetScheme",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetScheme" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetScheme" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->SetScheme((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetRotatedText(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  bool arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetRotatedText",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetRotatedText" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_bool(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetRotatedText" "', argument " "2"" of type '" "bool""'");
+  } 
+  arg2 = static_cast< bool >(val2);
+  (arg1)->SetRotatedText(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetCut(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  bool arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetCut",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetCut" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_bool(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetCut" "', argument " "2"" of type '" "bool""'");
+  } 
+  arg2 = static_cast< bool >(val2);
+  (arg1)->SetCut(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetCutBox(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_SetCutBox",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetCutBox" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetCutBox" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetCutBox" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SetCutBox" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_SetCutBox" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_SetCutBox" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_SetCutBox" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  (arg1)->SetCutBox(arg2,arg3,arg4,arg5,arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetTickLen__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_SetTickLen",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetTickLen" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetTickLen" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetTickLen" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  (arg1)->SetTickLen(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetTickLen__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetTickLen",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetTickLen" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetTickLen" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  (arg1)->SetTickLen(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetTickLen(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglGraph_SetTickLen__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_SetTickLen__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_SetTickLen'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    SetTickLen(mglGraph *,float,float)\n"
+    "    SetTickLen(mglGraph *,float)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetTickStl__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_SetTickStl",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetTickStl" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetTickStl" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_SetTickStl" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->SetTickStl((char const *)arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetTickStl__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetTickStl",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetTickStl" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetTickStl" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->SetTickStl((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetTickStl(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_SetTickStl__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_SetTickStl__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_SetTickStl'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    SetTickStl(mglGraph *,char const *,char const *)\n"
+    "    SetTickStl(mglGraph *,char const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetBaseLineWidth(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetBaseLineWidth",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetBaseLineWidth" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetBaseLineWidth" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  (arg1)->SetBaseLineWidth(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetSize(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_SetSize",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetSize" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetSize" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetSize" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  (arg1)->SetSize(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetBarWidth(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetBarWidth",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetBarWidth" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetBarWidth" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  (arg1)->SetBarWidth(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetMarkSize(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetMarkSize",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetMarkSize" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetMarkSize" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  (arg1)->SetMarkSize(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetArrowSize(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetArrowSize",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetArrowSize" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetArrowSize" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  (arg1)->SetArrowSize(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetFontSize(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetFontSize",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetFontSize" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetFontSize" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  (arg1)->SetFontSize(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetFontDef(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetFontDef",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetFontDef" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetFontDef" "', argument " "2"" of type '" "char *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->SetFontDef(arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetAlphaDef(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetAlphaDef",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetAlphaDef" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetAlphaDef" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  (arg1)->SetAlphaDef(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetAxialDir(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetAxialDir",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetAxialDir" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_char(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetAxialDir" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = static_cast< char >(val2);
+  (arg1)->SetAxialDir(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetMeshNum(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetMeshNum",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetMeshNum" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetMeshNum" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  (arg1)->SetMeshNum(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Zoom(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Zoom",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Zoom" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Zoom" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Zoom" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Zoom" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Zoom" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->Zoom(arg2,arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetPlotFactor(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetPlotFactor",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetPlotFactor" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetPlotFactor" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  (arg1)->SetPlotFactor(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetDrawFace(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  bool arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetDrawFace",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetDrawFace" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_bool(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetDrawFace" "', argument " "2"" of type '" "bool""'");
+  } 
+  arg2 = static_cast< bool >(val2);
+  (arg1)->SetDrawFace(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetLegendBox(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  bool arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetLegendBox",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetLegendBox" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_bool(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetLegendBox" "', argument " "2"" of type '" "bool""'");
+  } 
+  arg2 = static_cast< bool >(val2);
+  (arg1)->SetLegendBox(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetLegendMarks(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetLegendMarks",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetLegendMarks" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetLegendMarks" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  (arg1)->SetLegendMarks(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_LoadFont__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_LoadFont",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_LoadFont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_LoadFont" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_LoadFont" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->LoadFont((char const *)arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_LoadFont__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_LoadFont",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_LoadFont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_LoadFont" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->LoadFont((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_LoadFont(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_LoadFont__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_LoadFont__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_LoadFont'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    LoadFont(mglGraph *,char const *,char const *)\n"
+    "    LoadFont(mglGraph *,char const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_CopyFont(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglGraph *arg2 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_CopyFont",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_CopyFont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_CopyFont" "', argument " "2"" of type '" "mglGraph *""'"); 
+  }
+  arg2 = reinterpret_cast< mglGraph * >(argp2);
+  (arg1)->CopyFont(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_RestoreFont(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglGraph_RestoreFont",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_RestoreFont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  (arg1)->RestoreFont();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ShowImage__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  bool arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  bool val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_ShowImage",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ShowImage" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ShowImage" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  ecode3 = SWIG_AsVal_bool(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_ShowImage" "', argument " "3"" of type '" "bool""'");
+  } 
+  arg3 = static_cast< bool >(val3);
+  (arg1)->ShowImage((char const *)arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ShowImage__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_ShowImage",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ShowImage" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ShowImage" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->ShowImage((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ShowImage__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglGraph_ShowImage",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ShowImage" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  (arg1)->ShowImage();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ShowImage(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglGraph_ShowImage__SWIG_2(self, args);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_ShowImage__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_bool(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_ShowImage__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_ShowImage'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    ShowImage(mglGraph *,char const *,bool)\n"
+    "    ShowImage(mglGraph *,char const *)\n"
+    "    ShowImage(mglGraph *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_WriteFrame__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_WriteFrame",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WriteFrame" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WriteFrame" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_WriteFrame" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->WriteFrame((char const *)arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_WriteFrame__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_WriteFrame",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WriteFrame" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WriteFrame" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->WriteFrame((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_WriteFrame(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_WriteFrame__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_WriteFrame__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_WriteFrame'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    WriteFrame(mglGraph *,char const *,char const *)\n"
+    "    WriteFrame(mglGraph *,char const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_WriteIDTF__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_WriteIDTF",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WriteIDTF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WriteIDTF" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_WriteIDTF" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->WriteIDTF((char const *)arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_WriteIDTF__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_WriteIDTF",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WriteIDTF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WriteIDTF" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->WriteIDTF((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_WriteIDTF(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_WriteIDTF__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_WriteIDTF__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_WriteIDTF'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    WriteIDTF(mglGraph *,char const *,char const *)\n"
+    "    WriteIDTF(mglGraph *,char const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_WriteJPEG__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_WriteJPEG",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WriteJPEG" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WriteJPEG" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_WriteJPEG" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->WriteJPEG((char const *)arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_WriteJPEG__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_WriteJPEG",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WriteJPEG" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WriteJPEG" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->WriteJPEG((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_WriteJPEG(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_WriteJPEG__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_WriteJPEG__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_WriteJPEG'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    WriteJPEG(mglGraph *,char const *,char const *)\n"
+    "    WriteJPEG(mglGraph *,char const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_WritePNG__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  bool arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  bool val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_WritePNG",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WritePNG" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WritePNG" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_WritePNG" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_bool(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_WritePNG" "', argument " "4"" of type '" "bool""'");
+  } 
+  arg4 = static_cast< bool >(val4);
+  (arg1)->WritePNG((char const *)arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_WritePNG__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_WritePNG",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WritePNG" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WritePNG" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_WritePNG" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->WritePNG((char const *)arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_WritePNG__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_WritePNG",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WritePNG" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WritePNG" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->WritePNG((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_WritePNG(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_WritePNG__SWIG_2(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_WritePNG__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_bool(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_WritePNG__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_WritePNG'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    WritePNG(mglGraph *,char const *,char const *,bool)\n"
+    "    WritePNG(mglGraph *,char const *,char const *)\n"
+    "    WritePNG(mglGraph *,char const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_WriteEPS__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_WriteEPS",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WriteEPS" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WriteEPS" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_WriteEPS" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->WriteEPS((char const *)arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_WriteEPS__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_WriteEPS",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WriteEPS" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WriteEPS" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->WriteEPS((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_WriteEPS(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_WriteEPS__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_WriteEPS__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_WriteEPS'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    WriteEPS(mglGraph *,char const *,char const *)\n"
+    "    WriteEPS(mglGraph *,char const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_WriteSVG__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_WriteSVG",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WriteSVG" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WriteSVG" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_WriteSVG" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->WriteSVG((char const *)arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_WriteSVG__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_WriteSVG",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WriteSVG" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WriteSVG" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->WriteSVG((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_WriteSVG(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_WriteSVG__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_WriteSVG__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_WriteSVG'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    WriteSVG(mglGraph *,char const *,char const *)\n"
+    "    WriteSVG(mglGraph *,char const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_WriteGIF__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_WriteGIF",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WriteGIF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WriteGIF" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_WriteGIF" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->WriteGIF((char const *)arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_WriteGIF__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_WriteGIF",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_WriteGIF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_WriteGIF" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->WriteGIF((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_WriteGIF(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_WriteGIF__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_WriteGIF__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_WriteGIF'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    WriteGIF(mglGraph *,char const *,char const *)\n"
+    "    WriteGIF(mglGraph *,char const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_StartGIF__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_StartGIF",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_StartGIF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_StartGIF" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_StartGIF" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  (arg1)->StartGIF((char const *)arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_StartGIF__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_StartGIF",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_StartGIF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_StartGIF" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->StartGIF((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_StartGIF(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_StartGIF__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_StartGIF__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_StartGIF'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    StartGIF(mglGraph *,char const *,int)\n"
+    "    StartGIF(mglGraph *,char const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_CloseGIF(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglGraph_CloseGIF",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_CloseGIF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  (arg1)->CloseGIF();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_NewFrame(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglGraph_NewFrame",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_NewFrame" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  (arg1)->NewFrame();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_EndFrame(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglGraph_EndFrame",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_EndFrame" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  (arg1)->EndFrame();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_GetNumFrame(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  int result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglGraph_GetNumFrame",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_GetNumFrame" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  result = (int)(arg1)->GetNumFrame();
+  resultobj = SWIG_From_int(static_cast< int >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ResetFrames(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglGraph_ResetFrames",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ResetFrames" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  (arg1)->ResetFrames();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Flush(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglGraph_Flush",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flush" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  (arg1)->Flush();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_GetRGB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_GetRGB",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_GetRGB" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_GetRGB" "', argument " "2"" of type '" "char *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_GetRGB" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  (arg1)->GetRGB(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_GetRGBA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_GetRGBA",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_GetRGBA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_GetRGBA" "', argument " "2"" of type '" "char *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_GetRGBA" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  (arg1)->GetRGBA(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_GetBGRN(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_GetBGRN",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_GetBGRN" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_GetBGRN" "', argument " "2"" of type '" "char *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_GetBGRN" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  (arg1)->GetBGRN(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_GetWidth(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  int result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglGraph_GetWidth",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_GetWidth" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  result = (int)(arg1)->GetWidth();
+  resultobj = SWIG_From_int(static_cast< int >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_GetHeight(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  int result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglGraph_GetHeight",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_GetHeight" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  result = (int)(arg1)->GetHeight();
+  resultobj = SWIG_From_int(static_cast< int >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_CalcXYZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  mglPoint result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_CalcXYZ",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_CalcXYZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_CalcXYZ" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_CalcXYZ" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  result = (arg1)->CalcXYZ(arg2,arg3);
+  resultobj = SWIG_NewPointerObj((new mglPoint(static_cast< const mglPoint& >(result))), SWIGTYPE_p_mglPoint, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_CalcScr(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglPoint arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  mglPoint result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_CalcScr",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_CalcScr" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  {
+    res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglPoint,  0  | 0);
+    if (!SWIG_IsOK(res2)) {
+      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_CalcScr" "', argument " "2"" of type '" "mglPoint""'"); 
+    }  
+    if (!argp2) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_CalcScr" "', argument " "2"" of type '" "mglPoint""'");
+    } else {
+      mglPoint * temp = reinterpret_cast< mglPoint * >(argp2);
+      arg2 = *temp;
+      if (SWIG_IsNewObj(res2)) delete temp;
+    }
+  }
+  result = (arg1)->CalcScr(arg2);
+  resultobj = SWIG_NewPointerObj((new mglPoint(static_cast< const mglPoint& >(result))), SWIGTYPE_p_mglPoint, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetTranspType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetTranspType",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetTranspType" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetTranspType" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  (arg1)->SetTranspType(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetTransparent(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  bool arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetTransparent",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetTransparent" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_bool(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetTransparent" "', argument " "2"" of type '" "bool""'");
+  } 
+  arg2 = static_cast< bool >(val2);
+  (arg1)->SetTransparent(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Alpha(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  bool arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Alpha",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Alpha" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_bool(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Alpha" "', argument " "2"" of type '" "bool""'");
+  } 
+  arg2 = static_cast< bool >(val2);
+  (arg1)->Alpha(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Fog__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Fog",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fog" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Fog" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Fog" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  (arg1)->Fog(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Fog__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Fog",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fog" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Fog" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  (arg1)->Fog(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Fog(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglGraph_Fog__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_Fog__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Fog'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Fog(mglGraph *,float,float)\n"
+    "    Fog(mglGraph *,float)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Light__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  bool arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Light",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Light" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_bool(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Light" "', argument " "2"" of type '" "bool""'");
+  } 
+  arg2 = static_cast< bool >(val2);
+  (arg1)->Light(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Light__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  bool arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  bool val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Light",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Light" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Light" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_bool(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Light" "', argument " "3"" of type '" "bool""'");
+  } 
+  arg3 = static_cast< bool >(val3);
+  (arg1)->Light(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Light(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_bool(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglGraph_Light__SWIG_0(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_bool(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_Light__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Light'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Light(mglGraph *,bool)\n"
+    "    Light(mglGraph *,int,bool)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_AddLight__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  char arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  char val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_AddLight",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_AddLight" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_AddLight" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_AddLight" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_AddLight" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_AddLight" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_char(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_AddLight" "', argument " "6"" of type '" "char""'");
+  } 
+  arg6 = static_cast< char >(val6);
+  (arg1)->AddLight(arg2,arg3,arg4,arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_AddLight__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_AddLight",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_AddLight" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_AddLight" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_AddLight" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_AddLight" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_AddLight" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->AddLight(arg2,arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_AddLight(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_AddLight__SWIG_1(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_char(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_AddLight__SWIG_0(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_AddLight'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    AddLight(mglGraph *,int,float,float,float,char)\n"
+    "    AddLight(mglGraph *,int,float,float,float)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetAmbient(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetAmbient",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetAmbient" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetAmbient" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  (arg1)->SetAmbient(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Identity__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  bool arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Identity",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Identity" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_bool(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Identity" "', argument " "2"" of type '" "bool""'");
+  } 
+  arg2 = static_cast< bool >(val2);
+  (arg1)->Identity(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Identity__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglGraph_Identity",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Identity" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  (arg1)->Identity();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Identity(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[3];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglGraph_Identity__SWIG_1(self, args);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_bool(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglGraph_Identity__SWIG_0(self, args);
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Identity'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Identity(mglGraph *,bool)\n"
+    "    Identity(mglGraph *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Clf__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Clf",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Clf" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Clf" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Clf" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Clf" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  (arg1)->Clf(arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Clf__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Clf",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Clf" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Clf" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Clf" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  (arg1)->Clf(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Clf__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Clf",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Clf" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Clf" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  (arg1)->Clf(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Clf__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglGraph_Clf",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Clf" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  (arg1)->Clf();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Clf(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglGraph_Clf__SWIG_3(self, args);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglGraph_Clf__SWIG_2(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_Clf__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Clf__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Clf'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Clf(mglGraph *,float,float,float)\n"
+    "    Clf(mglGraph *,float,float)\n"
+    "    Clf(mglGraph *,float)\n"
+    "    Clf(mglGraph *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SubPlot__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  float arg5 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_SubPlot",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SubPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SubPlot" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SubPlot" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SubPlot" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_SubPlot" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_SubPlot" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  (arg1)->SubPlot(arg2,arg3,arg4,arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SubPlot__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_SubPlot",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SubPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SubPlot" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SubPlot" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SubPlot" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_SubPlot" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->SubPlot(arg2,arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SubPlot__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_SubPlot",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SubPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SubPlot" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SubPlot" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SubPlot" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->SubPlot(arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SubPlot__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  int arg4 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_SubPlot",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SubPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SubPlot" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SubPlot" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SubPlot" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_SubPlot" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->SubPlot(arg2,arg3,arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SubPlot(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_SubPlot__SWIG_2(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_SubPlot__SWIG_1(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_SubPlot__SWIG_3(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_SubPlot__SWIG_0(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_SubPlot'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    SubPlot(mglGraph *,int,int,int,float,float)\n"
+    "    SubPlot(mglGraph *,int,int,int,float)\n"
+    "    SubPlot(mglGraph *,int,int,int)\n"
+    "    SubPlot(mglGraph *,int,int,int,char const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_InPlot__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  bool arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  bool val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_InPlot",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_InPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_InPlot" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_InPlot" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_InPlot" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_InPlot" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_bool(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_InPlot" "', argument " "6"" of type '" "bool""'");
+  } 
+  arg6 = static_cast< bool >(val6);
+  (arg1)->InPlot(arg2,arg3,arg4,arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_InPlot__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_InPlot",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_InPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_InPlot" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_InPlot" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_InPlot" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_InPlot" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->InPlot(arg2,arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_InPlot(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_InPlot__SWIG_1(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_bool(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_InPlot__SWIG_0(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_InPlot'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    InPlot(mglGraph *,float,float,float,float,bool)\n"
+    "    InPlot(mglGraph *,float,float,float,float)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ColumnPlot__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_ColumnPlot",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ColumnPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_ColumnPlot" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_ColumnPlot" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ColumnPlot" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  (arg1)->ColumnPlot(arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ColumnPlot__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_ColumnPlot",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ColumnPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_ColumnPlot" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_ColumnPlot" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  (arg1)->ColumnPlot(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ColumnPlot(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_ColumnPlot__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_ColumnPlot__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_ColumnPlot'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    ColumnPlot(mglGraph *,int,int,float)\n"
+    "    ColumnPlot(mglGraph *,int,int)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_StickPlot(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  int arg3 ;
+  float arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_StickPlot",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_StickPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_StickPlot" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_StickPlot" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_StickPlot" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_StickPlot" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->StickPlot(arg2,arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Aspect(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Aspect",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Aspect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Aspect" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Aspect" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Aspect" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  (arg1)->Aspect(arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Rotate__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Rotate",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Rotate" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Rotate" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Rotate" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Rotate" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  (arg1)->Rotate(arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Rotate__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Rotate",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Rotate" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Rotate" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Rotate" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  (arg1)->Rotate(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Rotate__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Rotate",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Rotate" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Rotate" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  (arg1)->Rotate(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Rotate(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglGraph_Rotate__SWIG_2(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_Rotate__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Rotate__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Rotate'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Rotate(mglGraph *,float,float,float)\n"
+    "    Rotate(mglGraph *,float,float)\n"
+    "    Rotate(mglGraph *,float)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_RotateN(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_RotateN",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_RotateN" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_RotateN" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_RotateN" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_RotateN" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_RotateN" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->RotateN(arg2,arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Perspective(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Perspective",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Perspective" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Perspective" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  (arg1)->Perspective(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetTicks__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char arg2 ;
+  float arg3 ;
+  int arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_SetTicks",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetTicks" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_char(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetTicks" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = static_cast< char >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetTicks" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SetTicks" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_SetTicks" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->SetTicks(arg2,arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetTicks__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char arg2 ;
+  float arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_SetTicks",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetTicks" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_char(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetTicks" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = static_cast< char >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetTicks" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SetTicks" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->SetTicks(arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetTicks__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char arg2 ;
+  float arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_SetTicks",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetTicks" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_char(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetTicks" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = static_cast< char >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetTicks" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  (arg1)->SetTicks(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetTicks__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetTicks",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetTicks" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_char(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetTicks" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = static_cast< char >(val2);
+  (arg1)->SetTicks(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetTicks(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[6];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglGraph_SetTicks__SWIG_3(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_SetTicks__SWIG_2(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_SetTicks__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_SetTicks__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_SetTicks'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    SetTicks(mglGraph *,char,float,int,float)\n"
+    "    SetTicks(mglGraph *,char,float,int)\n"
+    "    SetTicks(mglGraph *,char,float)\n"
+    "    SetTicks(mglGraph *,char)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_AdjustTicks__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_AdjustTicks",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_AdjustTicks" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_AdjustTicks" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->AdjustTicks((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_AdjustTicks__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglGraph_AdjustTicks",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_AdjustTicks" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  (arg1)->AdjustTicks();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_AdjustTicks(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[3];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglGraph_AdjustTicks__SWIG_1(self, args);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_AdjustTicks__SWIG_0(self, args);
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_AdjustTicks'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    AdjustTicks(mglGraph *,char const *)\n"
+    "    AdjustTicks(mglGraph *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetCRange__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_SetCRange",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetCRange" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetCRange" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetCRange" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  (arg1)->SetCRange(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetRanges__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_SetRanges",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetRanges" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetRanges" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetRanges" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SetRanges" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_SetRanges" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_SetRanges" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_SetRanges" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  (arg1)->SetRanges(arg2,arg3,arg4,arg5,arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetRanges__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_SetRanges",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetRanges" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetRanges" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetRanges" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SetRanges" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_SetRanges" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_SetRanges" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  (arg1)->SetRanges(arg2,arg3,arg4,arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetRanges__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_SetRanges",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetRanges" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetRanges" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetRanges" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SetRanges" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_SetRanges" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->SetRanges(arg2,arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetRanges(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[8];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 7); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_SetRanges__SWIG_2(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_SetRanges__SWIG_1(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_SetRanges__SWIG_0(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_SetRanges'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    SetRanges(mglGraph *,float,float,float,float,float,float)\n"
+    "    SetRanges(mglGraph *,float,float,float,float,float)\n"
+    "    SetRanges(mglGraph *,float,float,float,float)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetAutoRanges__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_SetAutoRanges",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetAutoRanges" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetAutoRanges" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetAutoRanges" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SetAutoRanges" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_SetAutoRanges" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_SetAutoRanges" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_SetAutoRanges" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  (arg1)->SetAutoRanges(arg2,arg3,arg4,arg5,arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetAutoRanges__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_SetAutoRanges",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetAutoRanges" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetAutoRanges" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetAutoRanges" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SetAutoRanges" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_SetAutoRanges" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_SetAutoRanges" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  (arg1)->SetAutoRanges(arg2,arg3,arg4,arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetAutoRanges__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_SetAutoRanges",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetAutoRanges" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetAutoRanges" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetAutoRanges" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SetAutoRanges" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_SetAutoRanges" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->SetAutoRanges(arg2,arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetAutoRanges__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_SetAutoRanges",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetAutoRanges" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetAutoRanges" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetAutoRanges" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SetAutoRanges" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  (arg1)->SetAutoRanges(arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetAutoRanges__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_SetAutoRanges",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetAutoRanges" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetAutoRanges" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetAutoRanges" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  (arg1)->SetAutoRanges(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetAutoRanges(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[8];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 7); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_SetAutoRanges__SWIG_4(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_SetAutoRanges__SWIG_3(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_SetAutoRanges__SWIG_2(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_SetAutoRanges__SWIG_1(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_SetAutoRanges__SWIG_0(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_SetAutoRanges'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    SetAutoRanges(mglGraph *,float,float,float,float,float,float)\n"
+    "    SetAutoRanges(mglGraph *,float,float,float,float,float)\n"
+    "    SetAutoRanges(mglGraph *,float,float,float,float)\n"
+    "    SetAutoRanges(mglGraph *,float,float,float)\n"
+    "    SetAutoRanges(mglGraph *,float,float)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetOrigin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_SetOrigin",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetOrigin" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetOrigin" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetOrigin" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_SetOrigin" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  (arg1)->SetOrigin(arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetOrigin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_SetOrigin",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetOrigin" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetOrigin" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetOrigin" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  (arg1)->SetOrigin(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetOrigin(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_SetOrigin__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_SetOrigin__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_SetOrigin'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    SetOrigin(mglGraph *,float,float,float)\n"
+    "    SetOrigin(mglGraph *,float,float)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetCRange__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  bool arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  bool val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_SetCRange",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetCRange" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetCRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SetCRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  ecode3 = SWIG_AsVal_bool(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetCRange" "', argument " "3"" of type '" "bool""'");
+  } 
+  arg3 = static_cast< bool >(val3);
+  (arg1)->SetCRange(*arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetCRange__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetCRange",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetCRange" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetCRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SetCRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->SetCRange(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetCRange(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_SetCRange__SWIG_2(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_bool(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_SetCRange__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_SetCRange__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_SetCRange'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    SetCRange(mglGraph *,float,float)\n"
+    "    SetCRange(mglGraph *,mglData &,bool)\n"
+    "    SetCRange(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetXRange__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  bool arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  bool val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_SetXRange",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetXRange" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetXRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SetXRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  ecode3 = SWIG_AsVal_bool(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetXRange" "', argument " "3"" of type '" "bool""'");
+  } 
+  arg3 = static_cast< bool >(val3);
+  (arg1)->SetXRange(*arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetXRange__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetXRange",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetXRange" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetXRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SetXRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->SetXRange(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetXRange(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_SetXRange__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_bool(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_SetXRange__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_SetXRange'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    SetXRange(mglGraph *,mglData &,bool)\n"
+    "    SetXRange(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetYRange__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  bool arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  bool val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_SetYRange",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetYRange" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetYRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SetYRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  ecode3 = SWIG_AsVal_bool(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetYRange" "', argument " "3"" of type '" "bool""'");
+  } 
+  arg3 = static_cast< bool >(val3);
+  (arg1)->SetYRange(*arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetYRange__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetYRange",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetYRange" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetYRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SetYRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->SetYRange(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetYRange(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_SetYRange__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_bool(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_SetYRange__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_SetYRange'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    SetYRange(mglGraph *,mglData &,bool)\n"
+    "    SetYRange(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetZRange__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  bool arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  bool val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_SetZRange",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetZRange" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetZRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SetZRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  ecode3 = SWIG_AsVal_bool(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetZRange" "', argument " "3"" of type '" "bool""'");
+  } 
+  arg3 = static_cast< bool >(val3);
+  (arg1)->SetZRange(*arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetZRange__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetZRange",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetZRange" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetZRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SetZRange" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->SetZRange(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetZRange(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_SetZRange__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_bool(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_SetZRange__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_SetZRange'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    SetZRange(mglGraph *,mglData &,bool)\n"
+    "    SetZRange(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetFunc__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_SetFunc",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetFunc" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetFunc" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_SetFunc" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_SetFunc" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_SetFunc" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->SetFunc((char const *)arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetFunc__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_SetFunc",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetFunc" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetFunc" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_SetFunc" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_SetFunc" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->SetFunc((char const *)arg2,(char const *)arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetFunc__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_SetFunc",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetFunc" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetFunc" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_SetFunc" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->SetFunc((char const *)arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetFunc(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[6];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_SetFunc__SWIG_2(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_SetFunc__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_SetFunc__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_SetFunc'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    SetFunc(mglGraph *,char const *,char const *,char const *,char const *)\n"
+    "    SetFunc(mglGraph *,char const *,char const *,char const *)\n"
+    "    SetFunc(mglGraph *,char const *,char const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetCoor(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetCoor",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetCoor" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetCoor" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  (arg1)->SetCoor(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Ternary(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  bool arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Ternary",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Ternary" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_bool(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Ternary" "', argument " "2"" of type '" "bool""'");
+  } 
+  arg2 = static_cast< bool >(val2);
+  (arg1)->Ternary(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_CutOff(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_CutOff",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_CutOff" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_CutOff" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->CutOff((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Box__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  bool arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  bool val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Box",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Box" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Box" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  ecode3 = SWIG_AsVal_bool(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Box" "', argument " "3"" of type '" "bool""'");
+  } 
+  arg3 = static_cast< bool >(val3);
+  (arg1)->Box((char const *)arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Box__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Box",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Box" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Box" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->Box((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Box__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglGraph_Box",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Box" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  (arg1)->Box();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Box(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglGraph_Box__SWIG_2(self, args);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Box__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_bool(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_Box__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Box'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Box(mglGraph *,char const *,bool)\n"
+    "    Box(mglGraph *,char const *)\n"
+    "    Box(mglGraph *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Axis__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  bool arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  bool val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Axis",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Axis" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Axis" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  ecode3 = SWIG_AsVal_bool(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Axis" "', argument " "3"" of type '" "bool""'");
+  } 
+  arg3 = static_cast< bool >(val3);
+  (arg1)->Axis((char const *)arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Axis__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Axis",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Axis" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Axis" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->Axis((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Axis__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglGraph_Axis",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Axis" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  (arg1)->Axis();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Axis(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglGraph_Axis__SWIG_2(self, args);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Axis__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_bool(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_Axis__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Axis'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Axis(mglGraph *,char const *,bool)\n"
+    "    Axis(mglGraph *,char const *)\n"
+    "    Axis(mglGraph *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Grid__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Grid",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grid" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grid" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grid" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Grid((char const *)arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Grid__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Grid",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grid" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grid" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->Grid((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Grid__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglGraph_Grid",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grid" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  (arg1)->Grid();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Label__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char arg2 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Label",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Label" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_char(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Label" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = static_cast< char >(val2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Label" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Label" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Label" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Label" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  (arg1)->Label(arg2,(char const *)arg3,arg4,arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Label__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char arg2 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Label",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Label" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_char(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Label" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = static_cast< char >(val2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Label" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Label" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Label" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->Label(arg2,(char const *)arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Label__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char arg2 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Label",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Label" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_char(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Label" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = static_cast< char >(val2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Label" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Label" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  (arg1)->Label(arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Label__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char arg2 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Label",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Label" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_char(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Label" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = static_cast< char >(val2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Label" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Label(arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Label__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char arg2 ;
+  wchar_t *arg3 = (wchar_t *) 0 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Label",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Label" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_char(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Label" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = static_cast< char >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Label" "', argument " "3"" of type '" "wchar_t const *""'"); 
+  }
+  arg3 = reinterpret_cast< wchar_t * >(argp3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Label" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Label" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Label" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  (arg1)->Label(arg2,(wchar_t const *)arg3,arg4,arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Label__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char arg2 ;
+  wchar_t *arg3 = (wchar_t *) 0 ;
+  float arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Label",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Label" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_char(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Label" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = static_cast< char >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Label" "', argument " "3"" of type '" "wchar_t const *""'"); 
+  }
+  arg3 = reinterpret_cast< wchar_t * >(argp3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Label" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Label" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->Label(arg2,(wchar_t const *)arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Label__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char arg2 ;
+  wchar_t *arg3 = (wchar_t *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Label",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Label" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_char(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Label" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = static_cast< char >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Label" "', argument " "3"" of type '" "wchar_t const *""'"); 
+  }
+  arg3 = reinterpret_cast< wchar_t * >(argp3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Label" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  (arg1)->Label(arg2,(wchar_t const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Label__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char arg2 ;
+  wchar_t *arg3 = (wchar_t *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Label",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Label" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_char(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Label" "', argument " "2"" of type '" "char""'");
+  } 
+  arg2 = static_cast< char >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Label" "', argument " "3"" of type '" "wchar_t const *""'"); 
+  }
+  arg3 = reinterpret_cast< wchar_t * >(argp3);
+  (arg1)->Label(arg2,(wchar_t const *)arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Label__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  double arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  double val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Label",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Label" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Label" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Label" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = static_cast< double >(val3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Label" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Label" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_double(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Label" "', argument " "6"" of type '" "double""'");
+  } 
+  arg6 = static_cast< double >(val6);
+  (arg1)->Label(arg2,arg3,(char const *)arg4,(char const *)arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Label__SWIG_9(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Label",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Label" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Label" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Label" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = static_cast< double >(val3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Label" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Label" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Label(arg2,arg3,(char const *)arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Label__SWIG_10(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Label",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Label" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Label" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Label" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = static_cast< double >(val3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Label" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Label(arg2,arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Label__SWIG_11(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  wchar_t *arg4 = (wchar_t *) 0 ;
+  char *arg5 = (char *) 0 ;
+  double arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  double val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Label",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Label" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Label" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Label" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = static_cast< double >(val3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Label" "', argument " "4"" of type '" "wchar_t const *""'"); 
+  }
+  arg4 = reinterpret_cast< wchar_t * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Label" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_double(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Label" "', argument " "6"" of type '" "double""'");
+  } 
+  arg6 = static_cast< double >(val6);
+  (arg1)->Label(arg2,arg3,(wchar_t const *)arg4,(char const *)arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Label__SWIG_12(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  wchar_t *arg4 = (wchar_t *) 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Label",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Label" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Label" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Label" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = static_cast< double >(val3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Label" "', argument " "4"" of type '" "wchar_t const *""'"); 
+  }
+  arg4 = reinterpret_cast< wchar_t * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Label" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Label(arg2,arg3,(wchar_t const *)arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Label__SWIG_13(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  double arg2 ;
+  double arg3 ;
+  wchar_t *arg4 = (wchar_t *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Label",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Label" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Label" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = static_cast< double >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Label" "', argument " "3"" of type '" "double""'");
+  } 
+  arg3 = static_cast< double >(val3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Label" "', argument " "4"" of type '" "wchar_t const *""'"); 
+  }
+  arg4 = reinterpret_cast< wchar_t * >(argp4);
+  (arg1)->Label(arg2,arg3,(wchar_t const *)arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Label(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_wchar_t, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Label__SWIG_7(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Label__SWIG_3(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_wchar_t, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Label__SWIG_13(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Label__SWIG_10(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_wchar_t, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Label__SWIG_6(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Label__SWIG_2(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_wchar_t, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Label__SWIG_12(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Label__SWIG_9(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_wchar_t, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Label__SWIG_5(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Label__SWIG_1(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_wchar_t, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_double(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Label__SWIG_11(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_double(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_double(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Label__SWIG_8(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_wchar_t, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Label__SWIG_4(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_char(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Label__SWIG_0(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Label'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Label(mglGraph *,char,char const *,float,float,float)\n"
+    "    Label(mglGraph *,char,char const *,float,float)\n"
+    "    Label(mglGraph *,char,char const *,float)\n"
+    "    Label(mglGraph *,char,char const *)\n"
+    "    Label(mglGraph *,char,wchar_t const *,float,float,float)\n"
+    "    Label(mglGraph *,char,wchar_t const *,float,float)\n"
+    "    Label(mglGraph *,char,wchar_t const *,float)\n"
+    "    Label(mglGraph *,char,wchar_t const *)\n"
+    "    Label(mglGraph *,double,double,char const *,char const *,double)\n"
+    "    Label(mglGraph *,double,double,char const *,char const *)\n"
+    "    Label(mglGraph *,double,double,char const *)\n"
+    "    Label(mglGraph *,double,double,wchar_t const *,char const *,double)\n"
+    "    Label(mglGraph *,double,double,wchar_t const *,char const *)\n"
+    "    Label(mglGraph *,double,double,wchar_t const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetTuneTicks__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  float arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_SetTuneTicks",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetTuneTicks" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetTuneTicks" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SetTuneTicks" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  (arg1)->SetTuneTicks(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetTuneTicks__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetTuneTicks",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetTuneTicks" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_SetTuneTicks" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  (arg1)->SetTuneTicks(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetTuneTicks(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglGraph_SetTuneTicks__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_SetTuneTicks__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_SetTuneTicks'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    SetTuneTicks(mglGraph *,int,float)\n"
+    "    SetTuneTicks(mglGraph *,int)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetXTT__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  wchar_t *arg2 = (wchar_t *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetXTT",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetXTT" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetXTT" "', argument " "2"" of type '" "wchar_t const *""'"); 
+  }
+  arg2 = reinterpret_cast< wchar_t * >(argp2);
+  (arg1)->SetXTT((wchar_t const *)arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetYTT__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  wchar_t *arg2 = (wchar_t *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetYTT",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetYTT" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetYTT" "', argument " "2"" of type '" "wchar_t const *""'"); 
+  }
+  arg2 = reinterpret_cast< wchar_t * >(argp2);
+  (arg1)->SetYTT((wchar_t const *)arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetZTT__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  wchar_t *arg2 = (wchar_t *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetZTT",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetZTT" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetZTT" "', argument " "2"" of type '" "wchar_t const *""'"); 
+  }
+  arg2 = reinterpret_cast< wchar_t * >(argp2);
+  (arg1)->SetZTT((wchar_t const *)arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetCTT__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  wchar_t *arg2 = (wchar_t *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetCTT",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetCTT" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetCTT" "', argument " "2"" of type '" "wchar_t const *""'"); 
+  }
+  arg2 = reinterpret_cast< wchar_t * >(argp2);
+  (arg1)->SetCTT((wchar_t const *)arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetXTT__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetXTT",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetXTT" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetXTT" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->SetXTT((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetXTT(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[3];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_wchar_t, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_SetXTT__SWIG_0(self, args);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_SetXTT__SWIG_1(self, args);
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_SetXTT'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    SetXTT(mglGraph *,wchar_t const *)\n"
+    "    SetXTT(mglGraph *,char const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetYTT__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetYTT",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetYTT" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetYTT" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->SetYTT((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetYTT(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[3];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_wchar_t, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_SetYTT__SWIG_0(self, args);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_SetYTT__SWIG_1(self, args);
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_SetYTT'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    SetYTT(mglGraph *,wchar_t const *)\n"
+    "    SetYTT(mglGraph *,char const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetZTT__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetZTT",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetZTT" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetZTT" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->SetZTT((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetZTT(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[3];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_wchar_t, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_SetZTT__SWIG_0(self, args);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_SetZTT__SWIG_1(self, args);
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_SetZTT'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    SetZTT(mglGraph *,wchar_t const *)\n"
+    "    SetZTT(mglGraph *,char const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetCTT__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_SetCTT",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SetCTT" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SetCTT" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->SetCTT((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SetCTT(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[3];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_wchar_t, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_SetCTT__SWIG_0(self, args);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_SetCTT__SWIG_1(self, args);
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_SetCTT'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    SetCTT(mglGraph *,wchar_t const *)\n"
+    "    SetCTT(mglGraph *,char const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Ball__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  char arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  char val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Ball",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Ball" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Ball" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Ball" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Ball" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_char(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Ball" "', argument " "5"" of type '" "char""'");
+  } 
+  arg5 = static_cast< char >(val5);
+  (arg1)->Ball(arg2,arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Ball__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Ball",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Ball" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Ball" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Ball" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Ball" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  (arg1)->Ball(arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Ball(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[6];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Ball__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_char(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Ball__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Ball'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Ball(mglGraph *,float,float,float,char)\n"
+    "    Ball(mglGraph *,float,float,float)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Mark__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  char arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  char val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Mark",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Mark" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Mark" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Mark" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Mark" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_char(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Mark" "', argument " "5"" of type '" "char""'");
+  } 
+  arg5 = static_cast< char >(val5);
+  (arg1)->Mark(arg2,arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Line__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  char *arg8 = (char *) 0 ;
+  int arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  int val9 ;
+  int ecode9 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:mglGraph_Line",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Line" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Line" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Line" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Line" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Line" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Line" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Line" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Line" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  ecode9 = SWIG_AsVal_int(obj8, &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Line" "', argument " "9"" of type '" "int""'");
+  } 
+  arg9 = static_cast< int >(val9);
+  (arg1)->Line(arg2,arg3,arg4,arg5,arg6,arg7,(char const *)arg8,arg9);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Line__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Line",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Line" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Line" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Line" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Line" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Line" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Line" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Line" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Line" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  (arg1)->Line(arg2,arg3,arg4,arg5,arg6,arg7,(char const *)arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Line__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Line",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Line" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Line" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Line" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Line" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Line" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Line" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Line" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  (arg1)->Line(arg2,arg3,arg4,arg5,arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Line(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[10];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 9); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Line__SWIG_2(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Line__SWIG_1(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_int(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_Line__SWIG_0(self, args);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Line'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Line(mglGraph *,float,float,float,float,float,float,char const *,int)\n"
+    "    Line(mglGraph *,float,float,float,float,float,float,char const *)\n"
+    "    Line(mglGraph *,float,float,float,float,float,float)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FaceX__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  char *arg7 = (char *) 0 ;
+  float arg8 ;
+  float arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:mglGraph_FaceX",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FaceX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FaceX" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FaceX" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FaceX" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_FaceX" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_FaceX" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FaceX" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  ecode8 = SWIG_AsVal_float(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_FaceX" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = static_cast< float >(val8);
+  ecode9 = SWIG_AsVal_float(obj8, &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_FaceX" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = static_cast< float >(val9);
+  (arg1)->FaceX(arg2,arg3,arg4,arg5,arg6,(char const *)arg7,arg8,arg9);
+  resultobj = SWIG_Py_Void();
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FaceX__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  char *arg7 = (char *) 0 ;
+  float arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_FaceX",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FaceX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FaceX" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FaceX" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FaceX" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_FaceX" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_FaceX" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FaceX" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  ecode8 = SWIG_AsVal_float(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_FaceX" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = static_cast< float >(val8);
+  (arg1)->FaceX(arg2,arg3,arg4,arg5,arg6,(char const *)arg7,arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FaceX__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_FaceX",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FaceX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FaceX" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FaceX" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FaceX" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_FaceX" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_FaceX" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FaceX" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  (arg1)->FaceX(arg2,arg3,arg4,arg5,arg6,(char const *)arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FaceX__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_FaceX",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FaceX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FaceX" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FaceX" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FaceX" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_FaceX" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_FaceX" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  (arg1)->FaceX(arg2,arg3,arg4,arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FaceX(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[10];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 9); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_FaceX__SWIG_3(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_FaceX__SWIG_2(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_FaceX__SWIG_1(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_FaceX__SWIG_0(self, args);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_FaceX'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    FaceX(mglGraph *,float,float,float,float,float,char const *,float,float)\n"
+    "    FaceX(mglGraph *,float,float,float,float,float,char const *,float)\n"
+    "    FaceX(mglGraph *,float,float,float,float,float,char const *)\n"
+    "    FaceX(mglGraph *,float,float,float,float,float)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FaceY__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  char *arg7 = (char *) 0 ;
+  float arg8 ;
+  float arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:mglGraph_FaceY",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FaceY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FaceY" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FaceY" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FaceY" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_FaceY" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_FaceY" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FaceY" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  ecode8 = SWIG_AsVal_float(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_FaceY" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = static_cast< float >(val8);
+  ecode9 = SWIG_AsVal_float(obj8, &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_FaceY" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = static_cast< float >(val9);
+  (arg1)->FaceY(arg2,arg3,arg4,arg5,arg6,(char const *)arg7,arg8,arg9);
+  resultobj = SWIG_Py_Void();
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FaceY__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  char *arg7 = (char *) 0 ;
+  float arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_FaceY",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FaceY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FaceY" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FaceY" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FaceY" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_FaceY" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_FaceY" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FaceY" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  ecode8 = SWIG_AsVal_float(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_FaceY" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = static_cast< float >(val8);
+  (arg1)->FaceY(arg2,arg3,arg4,arg5,arg6,(char const *)arg7,arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FaceY__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_FaceY",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FaceY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FaceY" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FaceY" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FaceY" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_FaceY" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_FaceY" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FaceY" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  (arg1)->FaceY(arg2,arg3,arg4,arg5,arg6,(char const *)arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FaceY__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_FaceY",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FaceY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FaceY" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FaceY" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FaceY" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_FaceY" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_FaceY" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  (arg1)->FaceY(arg2,arg3,arg4,arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FaceY(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[10];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 9); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_FaceY__SWIG_3(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_FaceY__SWIG_2(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_FaceY__SWIG_1(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_FaceY__SWIG_0(self, args);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_FaceY'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    FaceY(mglGraph *,float,float,float,float,float,char const *,float,float)\n"
+    "    FaceY(mglGraph *,float,float,float,float,float,char const *,float)\n"
+    "    FaceY(mglGraph *,float,float,float,float,float,char const *)\n"
+    "    FaceY(mglGraph *,float,float,float,float,float)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FaceZ__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  char *arg7 = (char *) 0 ;
+  float arg8 ;
+  float arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:mglGraph_FaceZ",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FaceZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FaceZ" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FaceZ" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FaceZ" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_FaceZ" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_FaceZ" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FaceZ" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  ecode8 = SWIG_AsVal_float(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_FaceZ" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = static_cast< float >(val8);
+  ecode9 = SWIG_AsVal_float(obj8, &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_FaceZ" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = static_cast< float >(val9);
+  (arg1)->FaceZ(arg2,arg3,arg4,arg5,arg6,(char const *)arg7,arg8,arg9);
+  resultobj = SWIG_Py_Void();
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FaceZ__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  char *arg7 = (char *) 0 ;
+  float arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_FaceZ",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FaceZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FaceZ" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FaceZ" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FaceZ" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_FaceZ" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_FaceZ" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FaceZ" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  ecode8 = SWIG_AsVal_float(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_FaceZ" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = static_cast< float >(val8);
+  (arg1)->FaceZ(arg2,arg3,arg4,arg5,arg6,(char const *)arg7,arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FaceZ__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_FaceZ",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FaceZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FaceZ" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FaceZ" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FaceZ" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_FaceZ" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_FaceZ" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FaceZ" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  (arg1)->FaceZ(arg2,arg3,arg4,arg5,arg6,(char const *)arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FaceZ__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_FaceZ",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FaceZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FaceZ" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FaceZ" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FaceZ" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_FaceZ" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_FaceZ" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  (arg1)->FaceZ(arg2,arg3,arg4,arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FaceZ(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[10];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 9); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_FaceZ__SWIG_3(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_FaceZ__SWIG_2(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_FaceZ__SWIG_1(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_FaceZ__SWIG_0(self, args);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_FaceZ'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    FaceZ(mglGraph *,float,float,float,float,float,char const *,float,float)\n"
+    "    FaceZ(mglGraph *,float,float,float,float,float,char const *,float)\n"
+    "    FaceZ(mglGraph *,float,float,float,float,float,char const *)\n"
+    "    FaceZ(mglGraph *,float,float,float,float,float)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Curve__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  float arg8 ;
+  float arg9 ;
+  float arg10 ;
+  float arg11 ;
+  float arg12 ;
+  float arg13 ;
+  char *arg14 = (char *) 0 ;
+  int arg15 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  float val10 ;
+  int ecode10 = 0 ;
+  float val11 ;
+  int ecode11 = 0 ;
+  float val12 ;
+  int ecode12 = 0 ;
+  float val13 ;
+  int ecode13 = 0 ;
+  int res14 ;
+  char *buf14 = 0 ;
+  int alloc14 = 0 ;
+  int val15 ;
+  int ecode15 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  PyObject * obj9 = 0 ;
+  PyObject * obj10 = 0 ;
+  PyObject * obj11 = 0 ;
+  PyObject * obj12 = 0 ;
+  PyObject * obj13 = 0 ;
+  PyObject * obj14 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOOOOOOO:mglGraph_Curve",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9,&obj10,&obj11,&obj12,&obj13,&obj14)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Curve" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Curve" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Curve" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Curve" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Curve" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Curve" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Curve" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  ecode8 = SWIG_AsVal_float(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Curve" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = static_cast< float >(val8);
+  ecode9 = SWIG_AsVal_float(obj8, &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Curve" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = static_cast< float >(val9);
+  ecode10 = SWIG_AsVal_float(obj9, &val10);
+  if (!SWIG_IsOK(ecode10)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode10), "in method '" "mglGraph_Curve" "', argument " "10"" of type '" "float""'");
+  } 
+  arg10 = static_cast< float >(val10);
+  ecode11 = SWIG_AsVal_float(obj10, &val11);
+  if (!SWIG_IsOK(ecode11)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode11), "in method '" "mglGraph_Curve" "', argument " "11"" of type '" "float""'");
+  } 
+  arg11 = static_cast< float >(val11);
+  ecode12 = SWIG_AsVal_float(obj11, &val12);
+  if (!SWIG_IsOK(ecode12)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode12), "in method '" "mglGraph_Curve" "', argument " "12"" of type '" "float""'");
+  } 
+  arg12 = static_cast< float >(val12);
+  ecode13 = SWIG_AsVal_float(obj12, &val13);
+  if (!SWIG_IsOK(ecode13)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode13), "in method '" "mglGraph_Curve" "', argument " "13"" of type '" "float""'");
+  } 
+  arg13 = static_cast< float >(val13);
+  res14 = SWIG_AsCharPtrAndSize(obj13, &buf14, NULL, &alloc14);
+  if (!SWIG_IsOK(res14)) {
+    SWIG_exception_fail(SWIG_ArgError(res14), "in method '" "mglGraph_Curve" "', argument " "14"" of type '" "char const *""'");
+  }
+  arg14 = reinterpret_cast< char * >(buf14);
+  ecode15 = SWIG_AsVal_int(obj14, &val15);
+  if (!SWIG_IsOK(ecode15)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode15), "in method '" "mglGraph_Curve" "', argument " "15"" of type '" "int""'");
+  } 
+  arg15 = static_cast< int >(val15);
+  (arg1)->Curve(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,(char const *)arg14,arg15);
+  resultobj = SWIG_Py_Void();
+  if (alloc14 == SWIG_NEWOBJ) delete[] buf14;
+  return resultobj;
+fail:
+  if (alloc14 == SWIG_NEWOBJ) delete[] buf14;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Curve__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  float arg8 ;
+  float arg9 ;
+  float arg10 ;
+  float arg11 ;
+  float arg12 ;
+  float arg13 ;
+  char *arg14 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  float val10 ;
+  int ecode10 = 0 ;
+  float val11 ;
+  int ecode11 = 0 ;
+  float val12 ;
+  int ecode12 = 0 ;
+  float val13 ;
+  int ecode13 = 0 ;
+  int res14 ;
+  char *buf14 = 0 ;
+  int alloc14 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  PyObject * obj9 = 0 ;
+  PyObject * obj10 = 0 ;
+  PyObject * obj11 = 0 ;
+  PyObject * obj12 = 0 ;
+  PyObject * obj13 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOOOOOO:mglGraph_Curve",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9,&obj10,&obj11,&obj12,&obj13)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Curve" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Curve" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Curve" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Curve" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Curve" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Curve" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Curve" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  ecode8 = SWIG_AsVal_float(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Curve" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = static_cast< float >(val8);
+  ecode9 = SWIG_AsVal_float(obj8, &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Curve" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = static_cast< float >(val9);
+  ecode10 = SWIG_AsVal_float(obj9, &val10);
+  if (!SWIG_IsOK(ecode10)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode10), "in method '" "mglGraph_Curve" "', argument " "10"" of type '" "float""'");
+  } 
+  arg10 = static_cast< float >(val10);
+  ecode11 = SWIG_AsVal_float(obj10, &val11);
+  if (!SWIG_IsOK(ecode11)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode11), "in method '" "mglGraph_Curve" "', argument " "11"" of type '" "float""'");
+  } 
+  arg11 = static_cast< float >(val11);
+  ecode12 = SWIG_AsVal_float(obj11, &val12);
+  if (!SWIG_IsOK(ecode12)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode12), "in method '" "mglGraph_Curve" "', argument " "12"" of type '" "float""'");
+  } 
+  arg12 = static_cast< float >(val12);
+  ecode13 = SWIG_AsVal_float(obj12, &val13);
+  if (!SWIG_IsOK(ecode13)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode13), "in method '" "mglGraph_Curve" "', argument " "13"" of type '" "float""'");
+  } 
+  arg13 = static_cast< float >(val13);
+  res14 = SWIG_AsCharPtrAndSize(obj13, &buf14, NULL, &alloc14);
+  if (!SWIG_IsOK(res14)) {
+    SWIG_exception_fail(SWIG_ArgError(res14), "in method '" "mglGraph_Curve" "', argument " "14"" of type '" "char const *""'");
+  }
+  arg14 = reinterpret_cast< char * >(buf14);
+  (arg1)->Curve(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,(char const *)arg14);
+  resultobj = SWIG_Py_Void();
+  if (alloc14 == SWIG_NEWOBJ) delete[] buf14;
+  return resultobj;
+fail:
+  if (alloc14 == SWIG_NEWOBJ) delete[] buf14;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Curve__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  float arg8 ;
+  float arg9 ;
+  float arg10 ;
+  float arg11 ;
+  float arg12 ;
+  float arg13 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  float val10 ;
+  int ecode10 = 0 ;
+  float val11 ;
+  int ecode11 = 0 ;
+  float val12 ;
+  int ecode12 = 0 ;
+  float val13 ;
+  int ecode13 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  PyObject * obj9 = 0 ;
+  PyObject * obj10 = 0 ;
+  PyObject * obj11 = 0 ;
+  PyObject * obj12 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOOOOO:mglGraph_Curve",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9,&obj10,&obj11,&obj12)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Curve" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Curve" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Curve" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Curve" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Curve" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Curve" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Curve" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  ecode8 = SWIG_AsVal_float(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Curve" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = static_cast< float >(val8);
+  ecode9 = SWIG_AsVal_float(obj8, &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Curve" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = static_cast< float >(val9);
+  ecode10 = SWIG_AsVal_float(obj9, &val10);
+  if (!SWIG_IsOK(ecode10)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode10), "in method '" "mglGraph_Curve" "', argument " "10"" of type '" "float""'");
+  } 
+  arg10 = static_cast< float >(val10);
+  ecode11 = SWIG_AsVal_float(obj10, &val11);
+  if (!SWIG_IsOK(ecode11)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode11), "in method '" "mglGraph_Curve" "', argument " "11"" of type '" "float""'");
+  } 
+  arg11 = static_cast< float >(val11);
+  ecode12 = SWIG_AsVal_float(obj11, &val12);
+  if (!SWIG_IsOK(ecode12)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode12), "in method '" "mglGraph_Curve" "', argument " "12"" of type '" "float""'");
+  } 
+  arg12 = static_cast< float >(val12);
+  ecode13 = SWIG_AsVal_float(obj12, &val13);
+  if (!SWIG_IsOK(ecode13)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode13), "in method '" "mglGraph_Curve" "', argument " "13"" of type '" "float""'");
+  } 
+  arg13 = static_cast< float >(val13);
+  (arg1)->Curve(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Curve(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[16];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 15); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 13) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      {
+                        int res = SWIG_AsVal_float(argv[9], NULL);
+                        _v = SWIG_CheckState(res);
+                      }
+                      if (_v) {
+                        {
+                          int res = SWIG_AsVal_float(argv[10], NULL);
+                          _v = SWIG_CheckState(res);
+                        }
+                        if (_v) {
+                          {
+                            int res = SWIG_AsVal_float(argv[11], NULL);
+                            _v = SWIG_CheckState(res);
+                          }
+                          if (_v) {
+                            {
+                              int res = SWIG_AsVal_float(argv[12], NULL);
+                              _v = SWIG_CheckState(res);
+                            }
+                            if (_v) {
+                              return _wrap_mglGraph_Curve__SWIG_2(self, args);
+                            }
+                          }
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 14) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      {
+                        int res = SWIG_AsVal_float(argv[9], NULL);
+                        _v = SWIG_CheckState(res);
+                      }
+                      if (_v) {
+                        {
+                          int res = SWIG_AsVal_float(argv[10], NULL);
+                          _v = SWIG_CheckState(res);
+                        }
+                        if (_v) {
+                          {
+                            int res = SWIG_AsVal_float(argv[11], NULL);
+                            _v = SWIG_CheckState(res);
+                          }
+                          if (_v) {
+                            {
+                              int res = SWIG_AsVal_float(argv[12], NULL);
+                              _v = SWIG_CheckState(res);
+                            }
+                            if (_v) {
+                              int res = SWIG_AsCharPtrAndSize(argv[13], 0, NULL, 0);
+                              _v = SWIG_CheckState(res);
+                              if (_v) {
+                                return _wrap_mglGraph_Curve__SWIG_1(self, args);
+                              }
+                            }
+                          }
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 15) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      {
+                        int res = SWIG_AsVal_float(argv[9], NULL);
+                        _v = SWIG_CheckState(res);
+                      }
+                      if (_v) {
+                        {
+                          int res = SWIG_AsVal_float(argv[10], NULL);
+                          _v = SWIG_CheckState(res);
+                        }
+                        if (_v) {
+                          {
+                            int res = SWIG_AsVal_float(argv[11], NULL);
+                            _v = SWIG_CheckState(res);
+                          }
+                          if (_v) {
+                            {
+                              int res = SWIG_AsVal_float(argv[12], NULL);
+                              _v = SWIG_CheckState(res);
+                            }
+                            if (_v) {
+                              int res = SWIG_AsCharPtrAndSize(argv[13], 0, NULL, 0);
+                              _v = SWIG_CheckState(res);
+                              if (_v) {
+                                {
+                                  int res = SWIG_AsVal_int(argv[14], NULL);
+                                  _v = SWIG_CheckState(res);
+                                }
+                                if (_v) {
+                                  return _wrap_mglGraph_Curve__SWIG_0(self, args);
+                                }
+                              }
+                            }
+                          }
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Curve'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Curve(mglGraph *,float,float,float,float,float,float,float,float,float,float,float,float,char const *,int)\n"
+    "    Curve(mglGraph *,float,float,float,float,float,float,float,float,float,float,float,float,char const *)\n"
+    "    Curve(mglGraph *,float,float,float,float,float,float,float,float,float,float,float,float)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Drop__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  float arg8 ;
+  char *arg9 = (char *) 0 ;
+  float arg10 ;
+  float arg11 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  int res9 ;
+  char *buf9 = 0 ;
+  int alloc9 = 0 ;
+  float val10 ;
+  int ecode10 = 0 ;
+  float val11 ;
+  int ecode11 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  PyObject * obj9 = 0 ;
+  PyObject * obj10 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOOO:mglGraph_Drop",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9,&obj10)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Drop" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Drop" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Drop" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Drop" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Drop" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Drop" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Drop" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  ecode8 = SWIG_AsVal_float(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Drop" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = static_cast< float >(val8);
+  res9 = SWIG_AsCharPtrAndSize(obj8, &buf9, NULL, &alloc9);
+  if (!SWIG_IsOK(res9)) {
+    SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "mglGraph_Drop" "', argument " "9"" of type '" "char const *""'");
+  }
+  arg9 = reinterpret_cast< char * >(buf9);
+  ecode10 = SWIG_AsVal_float(obj9, &val10);
+  if (!SWIG_IsOK(ecode10)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode10), "in method '" "mglGraph_Drop" "', argument " "10"" of type '" "float""'");
+  } 
+  arg10 = static_cast< float >(val10);
+  ecode11 = SWIG_AsVal_float(obj10, &val11);
+  if (!SWIG_IsOK(ecode11)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode11), "in method '" "mglGraph_Drop" "', argument " "11"" of type '" "float""'");
+  } 
+  arg11 = static_cast< float >(val11);
+  (arg1)->Drop(arg2,arg3,arg4,arg5,arg6,arg7,arg8,(char const *)arg9,arg10,arg11);
+  resultobj = SWIG_Py_Void();
+  if (alloc9 == SWIG_NEWOBJ) delete[] buf9;
+  return resultobj;
+fail:
+  if (alloc9 == SWIG_NEWOBJ) delete[] buf9;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Drop__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  float arg8 ;
+  char *arg9 = (char *) 0 ;
+  float arg10 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  int res9 ;
+  char *buf9 = 0 ;
+  int alloc9 = 0 ;
+  float val10 ;
+  int ecode10 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  PyObject * obj9 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOO:mglGraph_Drop",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Drop" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Drop" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Drop" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Drop" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Drop" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Drop" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Drop" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  ecode8 = SWIG_AsVal_float(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Drop" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = static_cast< float >(val8);
+  res9 = SWIG_AsCharPtrAndSize(obj8, &buf9, NULL, &alloc9);
+  if (!SWIG_IsOK(res9)) {
+    SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "mglGraph_Drop" "', argument " "9"" of type '" "char const *""'");
+  }
+  arg9 = reinterpret_cast< char * >(buf9);
+  ecode10 = SWIG_AsVal_float(obj9, &val10);
+  if (!SWIG_IsOK(ecode10)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode10), "in method '" "mglGraph_Drop" "', argument " "10"" of type '" "float""'");
+  } 
+  arg10 = static_cast< float >(val10);
+  (arg1)->Drop(arg2,arg3,arg4,arg5,arg6,arg7,arg8,(char const *)arg9,arg10);
+  resultobj = SWIG_Py_Void();
+  if (alloc9 == SWIG_NEWOBJ) delete[] buf9;
+  return resultobj;
+fail:
+  if (alloc9 == SWIG_NEWOBJ) delete[] buf9;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Drop__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  float arg8 ;
+  char *arg9 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  int res9 ;
+  char *buf9 = 0 ;
+  int alloc9 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:mglGraph_Drop",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Drop" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Drop" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Drop" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Drop" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Drop" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Drop" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Drop" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  ecode8 = SWIG_AsVal_float(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Drop" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = static_cast< float >(val8);
+  res9 = SWIG_AsCharPtrAndSize(obj8, &buf9, NULL, &alloc9);
+  if (!SWIG_IsOK(res9)) {
+    SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "mglGraph_Drop" "', argument " "9"" of type '" "char const *""'");
+  }
+  arg9 = reinterpret_cast< char * >(buf9);
+  (arg1)->Drop(arg2,arg3,arg4,arg5,arg6,arg7,arg8,(char const *)arg9);
+  resultobj = SWIG_Py_Void();
+  if (alloc9 == SWIG_NEWOBJ) delete[] buf9;
+  return resultobj;
+fail:
+  if (alloc9 == SWIG_NEWOBJ) delete[] buf9;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Drop__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  float arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Drop",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Drop" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Drop" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Drop" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Drop" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Drop" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Drop" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Drop" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  ecode8 = SWIG_AsVal_float(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Drop" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = static_cast< float >(val8);
+  (arg1)->Drop(arg2,arg3,arg4,arg5,arg6,arg7,arg8);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Drop(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[12];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 11); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Drop__SWIG_3(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    int res = SWIG_AsCharPtrAndSize(argv[8], 0, NULL, 0);
+                    _v = SWIG_CheckState(res);
+                    if (_v) {
+                      return _wrap_mglGraph_Drop__SWIG_2(self, args);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 10) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    int res = SWIG_AsCharPtrAndSize(argv[8], 0, NULL, 0);
+                    _v = SWIG_CheckState(res);
+                    if (_v) {
+                      {
+                        int res = SWIG_AsVal_float(argv[9], NULL);
+                        _v = SWIG_CheckState(res);
+                      }
+                      if (_v) {
+                        return _wrap_mglGraph_Drop__SWIG_1(self, args);
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 11) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    int res = SWIG_AsCharPtrAndSize(argv[8], 0, NULL, 0);
+                    _v = SWIG_CheckState(res);
+                    if (_v) {
+                      {
+                        int res = SWIG_AsVal_float(argv[9], NULL);
+                        _v = SWIG_CheckState(res);
+                      }
+                      if (_v) {
+                        {
+                          int res = SWIG_AsVal_float(argv[10], NULL);
+                          _v = SWIG_CheckState(res);
+                        }
+                        if (_v) {
+                          return _wrap_mglGraph_Drop__SWIG_0(self, args);
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Drop'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Drop(mglGraph *,float,float,float,float,float,float,float,char const *,float,float)\n"
+    "    Drop(mglGraph *,float,float,float,float,float,float,float,char const *,float)\n"
+    "    Drop(mglGraph *,float,float,float,float,float,float,float,char const *)\n"
+    "    Drop(mglGraph *,float,float,float,float,float,float,float)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Sphere__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Sphere",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Sphere" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Sphere" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Sphere" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Sphere" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Sphere" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Sphere" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->Sphere(arg2,arg3,arg4,arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Sphere__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Sphere",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Sphere" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Sphere" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Sphere" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Sphere" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Sphere" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->Sphere(arg2,arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Sphere(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Sphere__SWIG_1(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Sphere__SWIG_0(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Sphere'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Sphere(mglGraph *,float,float,float,float,char const *)\n"
+    "    Sphere(mglGraph *,float,float,float,float)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cone__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  float arg8 ;
+  float arg9 ;
+  char *arg10 = (char *) 0 ;
+  bool arg11 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  int res10 ;
+  char *buf10 = 0 ;
+  int alloc10 = 0 ;
+  bool val11 ;
+  int ecode11 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  PyObject * obj9 = 0 ;
+  PyObject * obj10 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOOO:mglGraph_Cone",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9,&obj10)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cone" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Cone" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Cone" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Cone" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Cone" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Cone" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Cone" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  ecode8 = SWIG_AsVal_float(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Cone" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = static_cast< float >(val8);
+  ecode9 = SWIG_AsVal_float(obj8, &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Cone" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = static_cast< float >(val9);
+  res10 = SWIG_AsCharPtrAndSize(obj9, &buf10, NULL, &alloc10);
+  if (!SWIG_IsOK(res10)) {
+    SWIG_exception_fail(SWIG_ArgError(res10), "in method '" "mglGraph_Cone" "', argument " "10"" of type '" "char const *""'");
+  }
+  arg10 = reinterpret_cast< char * >(buf10);
+  ecode11 = SWIG_AsVal_bool(obj10, &val11);
+  if (!SWIG_IsOK(ecode11)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode11), "in method '" "mglGraph_Cone" "', argument " "11"" of type '" "bool""'");
+  } 
+  arg11 = static_cast< bool >(val11);
+  (arg1)->Cone(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,(char const *)arg10,arg11);
+  resultobj = SWIG_Py_Void();
+  if (alloc10 == SWIG_NEWOBJ) delete[] buf10;
+  return resultobj;
+fail:
+  if (alloc10 == SWIG_NEWOBJ) delete[] buf10;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cone__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  float arg8 ;
+  float arg9 ;
+  char *arg10 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  int res10 ;
+  char *buf10 = 0 ;
+  int alloc10 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  PyObject * obj9 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOO:mglGraph_Cone",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cone" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Cone" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Cone" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Cone" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Cone" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Cone" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Cone" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  ecode8 = SWIG_AsVal_float(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Cone" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = static_cast< float >(val8);
+  ecode9 = SWIG_AsVal_float(obj8, &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Cone" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = static_cast< float >(val9);
+  res10 = SWIG_AsCharPtrAndSize(obj9, &buf10, NULL, &alloc10);
+  if (!SWIG_IsOK(res10)) {
+    SWIG_exception_fail(SWIG_ArgError(res10), "in method '" "mglGraph_Cone" "', argument " "10"" of type '" "char const *""'");
+  }
+  arg10 = reinterpret_cast< char * >(buf10);
+  (arg1)->Cone(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,(char const *)arg10);
+  resultobj = SWIG_Py_Void();
+  if (alloc10 == SWIG_NEWOBJ) delete[] buf10;
+  return resultobj;
+fail:
+  if (alloc10 == SWIG_NEWOBJ) delete[] buf10;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cone__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  float arg8 ;
+  float arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:mglGraph_Cone",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cone" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Cone" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Cone" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Cone" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Cone" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Cone" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Cone" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  ecode8 = SWIG_AsVal_float(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Cone" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = static_cast< float >(val8);
+  ecode9 = SWIG_AsVal_float(obj8, &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Cone" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = static_cast< float >(val9);
+  (arg1)->Cone(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cone__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  float arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Cone",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cone" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Cone" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Cone" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Cone" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Cone" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Cone" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Cone" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  ecode8 = SWIG_AsVal_float(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Cone" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = static_cast< float >(val8);
+  (arg1)->Cone(arg2,arg3,arg4,arg5,arg6,arg7,arg8);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cone(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[12];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 11); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Cone__SWIG_3(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_Cone__SWIG_2(self, args);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 10) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      int res = SWIG_AsCharPtrAndSize(argv[9], 0, NULL, 0);
+                      _v = SWIG_CheckState(res);
+                      if (_v) {
+                        return _wrap_mglGraph_Cone__SWIG_1(self, args);
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 11) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      int res = SWIG_AsCharPtrAndSize(argv[9], 0, NULL, 0);
+                      _v = SWIG_CheckState(res);
+                      if (_v) {
+                        {
+                          int res = SWIG_AsVal_bool(argv[10], NULL);
+                          _v = SWIG_CheckState(res);
+                        }
+                        if (_v) {
+                          return _wrap_mglGraph_Cone__SWIG_0(self, args);
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Cone'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Cone(mglGraph *,float,float,float,float,float,float,float,float,char const *,bool)\n"
+    "    Cone(mglGraph *,float,float,float,float,float,float,float,float,char const *)\n"
+    "    Cone(mglGraph *,float,float,float,float,float,float,float,float)\n"
+    "    Cone(mglGraph *,float,float,float,float,float,float,float)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Putsw__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  wchar_t *arg5 = (wchar_t *) 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  char arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  char val8 ;
+  int ecode8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Putsw",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Putsw" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Putsw" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Putsw" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Putsw" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Putsw" "', argument " "5"" of type '" "wchar_t const *""'"); 
+  }
+  arg5 = reinterpret_cast< wchar_t * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Putsw" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Putsw" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  ecode8 = SWIG_AsVal_char(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Putsw" "', argument " "8"" of type '" "char""'");
+  } 
+  arg8 = static_cast< char >(val8);
+  (arg1)->Putsw(arg2,arg3,arg4,(wchar_t const *)arg5,(char const *)arg6,arg7,arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Putsw__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  wchar_t *arg5 = (wchar_t *) 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Putsw",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Putsw" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Putsw" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Putsw" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Putsw" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Putsw" "', argument " "5"" of type '" "wchar_t const *""'"); 
+  }
+  arg5 = reinterpret_cast< wchar_t * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Putsw" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Putsw" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  (arg1)->Putsw(arg2,arg3,arg4,(wchar_t const *)arg5,(char const *)arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Putsw__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  wchar_t *arg5 = (wchar_t *) 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Putsw",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Putsw" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Putsw" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Putsw" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Putsw" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Putsw" "', argument " "5"" of type '" "wchar_t const *""'"); 
+  }
+  arg5 = reinterpret_cast< wchar_t * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Putsw" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->Putsw(arg2,arg3,arg4,(wchar_t const *)arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Putsw__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  wchar_t *arg5 = (wchar_t *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Putsw",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Putsw" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Putsw" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Putsw" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Putsw" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Putsw" "', argument " "5"" of type '" "wchar_t const *""'"); 
+  }
+  arg5 = reinterpret_cast< wchar_t * >(argp5);
+  (arg1)->Putsw(arg2,arg3,arg4,(wchar_t const *)arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Puts__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  char *arg5 = (char *) 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  char arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  char val8 ;
+  int ecode8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Puts",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Puts" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Puts" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Puts" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Puts" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Puts" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Puts" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Puts" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  ecode8 = SWIG_AsVal_char(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Puts" "', argument " "8"" of type '" "char""'");
+  } 
+  arg8 = static_cast< char >(val8);
+  (arg1)->Puts(arg2,arg3,arg4,(char const *)arg5,(char const *)arg6,arg7,arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Puts__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  char *arg5 = (char *) 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Puts",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Puts" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Puts" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Puts" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Puts" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Puts" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Puts" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Puts" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  (arg1)->Puts(arg2,arg3,arg4,(char const *)arg5,(char const *)arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Puts__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  char *arg5 = (char *) 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Puts",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Puts" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Puts" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Puts" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Puts" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Puts" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Puts" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->Puts(arg2,arg3,arg4,(char const *)arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Puts__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Puts",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Puts" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Puts" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Puts" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Puts" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Puts" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Puts(arg2,arg3,arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Putsw__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  wchar_t *arg8 = (wchar_t *) 0 ;
+  float arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  void *argp8 = 0 ;
+  int res8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:mglGraph_Putsw",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Putsw" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Putsw" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Putsw" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Putsw" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Putsw" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Putsw" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Putsw" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  res8 = SWIG_ConvertPtr(obj7, &argp8,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Putsw" "', argument " "8"" of type '" "wchar_t const *""'"); 
+  }
+  arg8 = reinterpret_cast< wchar_t * >(argp8);
+  ecode9 = SWIG_AsVal_float(obj8, &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Putsw" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = static_cast< float >(val9);
+  (arg1)->Putsw(arg2,arg3,arg4,arg5,arg6,arg7,(wchar_t const *)arg8,arg9);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Putsw__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  wchar_t *arg8 = (wchar_t *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  void *argp8 = 0 ;
+  int res8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Putsw",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Putsw" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Putsw" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Putsw" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Putsw" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Putsw" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Putsw" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Putsw" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  res8 = SWIG_ConvertPtr(obj7, &argp8,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Putsw" "', argument " "8"" of type '" "wchar_t const *""'"); 
+  }
+  arg8 = reinterpret_cast< wchar_t * >(argp8);
+  (arg1)->Putsw(arg2,arg3,arg4,arg5,arg6,arg7,(wchar_t const *)arg8);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Putsw(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[10];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 9); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_wchar_t, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Putsw__SWIG_3(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_wchar_t, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Putsw__SWIG_2(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_wchar_t, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Putsw__SWIG_1(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_wchar_t, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_char(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Putsw__SWIG_0(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  void *vptr = 0;
+                  int res = SWIG_ConvertPtr(argv[7], &vptr, SWIGTYPE_p_wchar_t, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Putsw__SWIG_5(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  void *vptr = 0;
+                  int res = SWIG_ConvertPtr(argv[7], &vptr, SWIGTYPE_p_wchar_t, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_Putsw__SWIG_4(self, args);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Putsw'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Putsw(mglGraph *,float,float,float,wchar_t const *,char const *,float,char)\n"
+    "    Putsw(mglGraph *,float,float,float,wchar_t const *,char const *,float)\n"
+    "    Putsw(mglGraph *,float,float,float,wchar_t const *,char const *)\n"
+    "    Putsw(mglGraph *,float,float,float,wchar_t const *)\n"
+    "    Putsw(mglGraph *,float,float,float,float,float,float,wchar_t const *,float)\n"
+    "    Putsw(mglGraph *,float,float,float,float,float,float,wchar_t const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Puts__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  char *arg8 = (char *) 0 ;
+  float arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:mglGraph_Puts",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Puts" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Puts" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Puts" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Puts" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Puts" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Puts" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Puts" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Puts" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  ecode9 = SWIG_AsVal_float(obj8, &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Puts" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = static_cast< float >(val9);
+  (arg1)->Puts(arg2,arg3,arg4,arg5,arg6,arg7,(char const *)arg8,arg9);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Puts__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Puts",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Puts" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Puts" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Puts" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Puts" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Puts" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Puts" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Puts" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Puts" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  (arg1)->Puts(arg2,arg3,arg4,arg5,arg6,arg7,(char const *)arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Puts(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[10];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 9); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Puts__SWIG_3(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Puts__SWIG_2(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Puts__SWIG_1(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Puts__SWIG_5(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_char(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Puts__SWIG_0(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_Puts__SWIG_4(self, args);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Puts'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Puts(mglGraph *,float,float,float,char const *,char const *,float,char)\n"
+    "    Puts(mglGraph *,float,float,float,char const *,char const *,float)\n"
+    "    Puts(mglGraph *,float,float,float,char const *,char const *)\n"
+    "    Puts(mglGraph *,float,float,float,char const *)\n"
+    "    Puts(mglGraph *,float,float,float,float,float,float,char const *,float)\n"
+    "    Puts(mglGraph *,float,float,float,float,float,float,char const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Title__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Title",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Title" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Title" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Title" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Title" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  (arg1)->Title((char const *)arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Title__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Title",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Title" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Title" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Title" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Title((char const *)arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Title__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Title",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Title" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Title" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->Title((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Title__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  wchar_t *arg2 = (wchar_t *) 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Title",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Title" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Title" "', argument " "2"" of type '" "wchar_t const *""'"); 
+  }
+  arg2 = reinterpret_cast< wchar_t * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Title" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Title" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  (arg1)->Title((wchar_t const *)arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Title__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  wchar_t *arg2 = (wchar_t *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Title",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Title" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Title" "', argument " "2"" of type '" "wchar_t const *""'"); 
+  }
+  arg2 = reinterpret_cast< wchar_t * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Title" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Title((wchar_t const *)arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Title__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  wchar_t *arg2 = (wchar_t *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Title",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Title" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Title" "', argument " "2"" of type '" "wchar_t const *""'"); 
+  }
+  arg2 = reinterpret_cast< wchar_t * >(argp2);
+  (arg1)->Title((wchar_t const *)arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Title(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_wchar_t, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Title__SWIG_5(self, args);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Title__SWIG_2(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_wchar_t, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Title__SWIG_4(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Title__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_wchar_t, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Title__SWIG_3(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Title__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Title'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Title(mglGraph *,char const *,char const *,float)\n"
+    "    Title(mglGraph *,char const *,char const *)\n"
+    "    Title(mglGraph *,char const *)\n"
+    "    Title(mglGraph *,wchar_t const *,char const *,float)\n"
+    "    Title(mglGraph *,wchar_t const *,char const *)\n"
+    "    Title(mglGraph *,wchar_t const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Colorbar__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Colorbar",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Colorbar" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Colorbar" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Colorbar" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  (arg1)->Colorbar((char const *)arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Colorbar__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Colorbar",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Colorbar" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Colorbar" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->Colorbar((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Colorbar__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglGraph_Colorbar",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Colorbar" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  (arg1)->Colorbar();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Colorbar__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Colorbar",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Colorbar" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Colorbar" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Colorbar" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Colorbar" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Colorbar" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Colorbar" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Colorbar" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  (arg1)->Colorbar((char const *)arg2,arg3,arg4,arg5,arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Colorbar__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  float arg3 ;
+  float arg4 ;
+  float arg5 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Colorbar",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Colorbar" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Colorbar" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Colorbar" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Colorbar" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Colorbar" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Colorbar" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  (arg1)->Colorbar(arg2,arg3,arg4,arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Colorbar__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Colorbar",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Colorbar" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Colorbar" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Colorbar" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Colorbar" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Colorbar" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->Colorbar(*arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Colorbar__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Colorbar",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Colorbar" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Colorbar" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Colorbar" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Colorbar" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Colorbar(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Colorbar__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Colorbar",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Colorbar" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Colorbar" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Colorbar" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->Colorbar(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Colorbar(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[8];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 7); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglGraph_Colorbar__SWIG_2(self, args);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Colorbar__SWIG_7(self, args);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Colorbar__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Colorbar__SWIG_6(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_Colorbar__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Colorbar__SWIG_5(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Colorbar__SWIG_4(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Colorbar__SWIG_3(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Colorbar'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Colorbar(mglGraph *,char const *,int)\n"
+    "    Colorbar(mglGraph *,char const *)\n"
+    "    Colorbar(mglGraph *)\n"
+    "    Colorbar(mglGraph *,char const *,int,float,float,float,float)\n"
+    "    Colorbar(mglGraph *,int,float,float,float,float)\n"
+    "    Colorbar(mglGraph *,mglData &,char const *,int)\n"
+    "    Colorbar(mglGraph *,mglData &,char const *)\n"
+    "    Colorbar(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SimplePlot__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  int arg3 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_SimplePlot",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SimplePlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SimplePlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SimplePlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SimplePlot" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_SimplePlot" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->SimplePlot(*arg2,arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SimplePlot__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  int arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_SimplePlot",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SimplePlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SimplePlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SimplePlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_SimplePlot" "', argument " "3"" of type '" "int""'");
+  } 
+  arg3 = static_cast< int >(val3);
+  (arg1)->SimplePlot(*arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SimplePlot(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_SimplePlot__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_SimplePlot__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_SimplePlot'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    SimplePlot(mglGraph *,mglData &,int,char const *)\n"
+    "    SimplePlot(mglGraph *,mglData &,int)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_AddLegend(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_AddLegend",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_AddLegend" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_AddLegend" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_AddLegend" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->AddLegend((char const *)arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_AddLegendw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  wchar_t *arg2 = (wchar_t *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_AddLegendw",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_AddLegendw" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_AddLegendw" "', argument " "2"" of type '" "wchar_t const *""'"); 
+  }
+  arg2 = reinterpret_cast< wchar_t * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_AddLegendw" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->AddLegendw((wchar_t const *)arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ClearLegend(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglGraph_ClearLegend",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ClearLegend" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  (arg1)->ClearLegend();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Legend__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Legend",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Legend" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Legend" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Legend" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Legend" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Legend" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Legend" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  (arg1)->Legend(arg2,arg3,(char const *)arg4,arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Legend__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Legend",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Legend" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Legend" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Legend" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Legend" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Legend" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->Legend(arg2,arg3,(char const *)arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Legend__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Legend",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Legend" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Legend" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Legend" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Legend" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Legend(arg2,arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Legend__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Legend",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Legend" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Legend" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Legend" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  (arg1)->Legend(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Legend__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Legend",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Legend" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Legend" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Legend" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Legend" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Legend" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->Legend(arg2,(char const *)arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Legend__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Legend",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Legend" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Legend" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Legend" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Legend" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  (arg1)->Legend(arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Legend__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Legend",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Legend" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Legend" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Legend" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Legend(arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Legend__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Legend",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Legend" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Legend" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  (arg1)->Legend(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Legend__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglGraph_Legend",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Legend" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  (arg1)->Legend();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Legend(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglGraph_Legend__SWIG_8(self, args);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_mglGraph_Legend__SWIG_7(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Legend__SWIG_6(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_Legend__SWIG_3(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Legend__SWIG_5(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Legend__SWIG_2(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Legend__SWIG_4(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Legend__SWIG_1(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Legend__SWIG_0(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Legend'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Legend(mglGraph *,float,float,char const *,float,float)\n"
+    "    Legend(mglGraph *,float,float,char const *,float)\n"
+    "    Legend(mglGraph *,float,float,char const *)\n"
+    "    Legend(mglGraph *,float,float)\n"
+    "    Legend(mglGraph *,int,char const *,float,float)\n"
+    "    Legend(mglGraph *,int,char const *,float)\n"
+    "    Legend(mglGraph *,int,char const *)\n"
+    "    Legend(mglGraph *,int)\n"
+    "    Legend(mglGraph *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Plot__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Plot",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Plot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Plot" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Plot" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->Plot((char const *)arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Plot__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Plot",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Plot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Plot" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Plot((char const *)arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Plot__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Plot",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Plot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->Plot((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Plot__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Plot",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Plot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Plot" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Plot" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Plot" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_int(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Plot" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = static_cast< int >(val6);
+  (arg1)->Plot((char const *)arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Plot__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Plot",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Plot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Plot" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Plot" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Plot" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Plot((char const *)arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Plot__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Plot",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Plot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Plot" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Plot" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Plot((char const *)arg2,(char const *)arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Plot__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Plot",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Plot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Plot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Plot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Plot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Plot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Plot" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Plot(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Plot__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Plot",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Plot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Plot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Plot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Plot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Plot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Plot(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Plot__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Plot",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Plot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Plot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Plot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Plot" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Plot(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Plot__SWIG_9(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Plot",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Plot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Plot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Plot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->Plot(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Plot__SWIG_10(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Plot",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Plot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Plot" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Plot(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Plot__SWIG_11(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Plot",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Plot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Plot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->Plot(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Plot(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Plot__SWIG_11(self, args);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Plot__SWIG_2(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Plot__SWIG_9(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Plot__SWIG_10(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Plot__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Plot__SWIG_7(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Plot__SWIG_8(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Plot__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Plot__SWIG_5(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Plot__SWIG_6(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Plot__SWIG_4(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Plot__SWIG_3(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Plot'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Plot(mglGraph *,char const *,char const *,int)\n"
+    "    Plot(mglGraph *,char const *,char const *)\n"
+    "    Plot(mglGraph *,char const *)\n"
+    "    Plot(mglGraph *,char const *,char const *,char const *,char const *,int)\n"
+    "    Plot(mglGraph *,char const *,char const *,char const *,char const *)\n"
+    "    Plot(mglGraph *,char const *,char const *,char const *)\n"
+    "    Plot(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    Plot(mglGraph *,mglData &,mglData &,mglData &)\n"
+    "    Plot(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    Plot(mglGraph *,mglData &,mglData &)\n"
+    "    Plot(mglGraph *,mglData &,char const *)\n"
+    "    Plot(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_BoxPlot__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_BoxPlot",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_BoxPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_BoxPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_BoxPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_BoxPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_BoxPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_BoxPlot" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->BoxPlot(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_BoxPlot__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_BoxPlot",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_BoxPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_BoxPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_BoxPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_BoxPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_BoxPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->BoxPlot(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_BoxPlot__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_BoxPlot",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_BoxPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_BoxPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_BoxPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_BoxPlot" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->BoxPlot(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_BoxPlot__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_BoxPlot",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_BoxPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_BoxPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_BoxPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->BoxPlot(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_BoxPlot(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_BoxPlot__SWIG_3(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_BoxPlot__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_BoxPlot__SWIG_2(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_BoxPlot__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_BoxPlot'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    BoxPlot(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    BoxPlot(mglGraph *,mglData &,mglData &)\n"
+    "    BoxPlot(mglGraph *,mglData &,char const *)\n"
+    "    BoxPlot(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Radar__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Radar",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Radar" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Radar" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Radar" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Radar" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Radar" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  (arg1)->Radar(*arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Radar__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Radar",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Radar" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Radar" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Radar" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Radar" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Radar(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Radar__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Radar",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Radar" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Radar" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Radar" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->Radar(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Radar(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Radar__SWIG_2(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Radar__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Radar__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Radar'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Radar(mglGraph *,mglData &,char const *,float)\n"
+    "    Radar(mglGraph *,mglData &,char const *)\n"
+    "    Radar(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Tens__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Tens",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tens" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tens" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Tens" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Tens" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->Tens(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Tens__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Tens",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tens" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tens" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Tens" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->Tens(*arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Tens__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Tens",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tens" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tens" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Tens" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Tens(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Tens__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Tens",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tens" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tens" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Tens(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Tens__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Tens",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tens" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tens" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Tens(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Tens__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Tens",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tens" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->Tens(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Tens(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Tens__SWIG_5(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Tens__SWIG_3(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Tens__SWIG_4(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Tens__SWIG_1(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Tens__SWIG_2(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Tens__SWIG_0(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Tens'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Tens(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    Tens(mglGraph *,mglData &,mglData &,mglData &,mglData &)\n"
+    "    Tens(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    Tens(mglGraph *,mglData &,mglData &,mglData &)\n"
+    "    Tens(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    Tens(mglGraph *,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Area__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Area",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Area" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Area" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Area" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Area" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Area" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Area" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Area" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Area" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Area(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Area__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Area",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Area" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Area" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Area" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Area" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Area" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Area" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Area" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Area(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Area__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Area",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Area" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Area" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Area" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Area" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Area" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Area" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Area(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Area__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Area",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Area" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Area" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Area" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Area" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Area" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->Area(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Area__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Area",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Area" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Area" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Area" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Area" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Area(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Area__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Area",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Area" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Area" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Area" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->Area(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Area(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[6];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Area__SWIG_5(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Area__SWIG_3(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Area__SWIG_4(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Area__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Area__SWIG_2(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Area__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Area'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Area(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    Area(mglGraph *,mglData &,mglData &,mglData &)\n"
+    "    Area(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    Area(mglGraph *,mglData &,mglData &)\n"
+    "    Area(mglGraph *,mglData &,char const *)\n"
+    "    Area(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Stem__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Stem",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Stem" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Stem" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Stem" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Stem" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Stem" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Stem" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Stem" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Stem" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Stem(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Stem__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Stem",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Stem" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Stem" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Stem" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Stem" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Stem" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Stem" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Stem" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Stem(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Stem__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Stem",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Stem" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Stem" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Stem" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Stem" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Stem" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Stem" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Stem(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Stem__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Stem",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Stem" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Stem" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Stem" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Stem" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Stem" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->Stem(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Stem__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Stem",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Stem" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Stem" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Stem" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Stem" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Stem(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Stem__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Stem",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Stem" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Stem" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Stem" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->Stem(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Stem(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[6];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Stem__SWIG_5(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Stem__SWIG_3(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Stem__SWIG_4(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Stem__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Stem__SWIG_2(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Stem__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Stem'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Stem(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    Stem(mglGraph *,mglData &,mglData &,mglData &)\n"
+    "    Stem(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    Stem(mglGraph *,mglData &,mglData &)\n"
+    "    Stem(mglGraph *,mglData &,char const *)\n"
+    "    Stem(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Step__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Step",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Step" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Step" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Step" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Step" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Step" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Step" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Step" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Step" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Step(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Step__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Step",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Step" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Step" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Step" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Step" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Step" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Step" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Step" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Step(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Step__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Step",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Step" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Step" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Step" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Step" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Step" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Step" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Step(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Step__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Step",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Step" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Step" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Step" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Step" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Step" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->Step(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Step__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Step",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Step" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Step" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Step" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Step" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Step(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Step__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Step",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Step" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Step" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Step" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->Step(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Step(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[6];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Step__SWIG_5(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Step__SWIG_3(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Step__SWIG_4(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Step__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Step__SWIG_2(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Step__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Step'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Step(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    Step(mglGraph *,mglData &,mglData &,mglData &)\n"
+    "    Step(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    Step(mglGraph *,mglData &,mglData &)\n"
+    "    Step(mglGraph *,mglData &,char const *)\n"
+    "    Step(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Bars__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Bars",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Bars" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Bars" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Bars" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Bars" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Bars" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Bars" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Bars" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Bars" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Bars(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Bars__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Bars",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Bars" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Bars" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Bars" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Bars" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Bars" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Bars" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Bars" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Bars(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Bars__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Bars",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Bars" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Bars" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Bars" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Bars" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Bars" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Bars" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Bars(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Bars__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Bars",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Bars" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Bars" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Bars" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Bars" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Bars" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->Bars(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Bars__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Bars",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Bars" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Bars" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Bars" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Bars" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Bars(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Bars__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Bars",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Bars" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Bars" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Bars" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->Bars(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Bars(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[6];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Bars__SWIG_5(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Bars__SWIG_3(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Bars__SWIG_4(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Bars__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Bars__SWIG_2(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Bars__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Bars'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Bars(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    Bars(mglGraph *,mglData &,mglData &,mglData &)\n"
+    "    Bars(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    Bars(mglGraph *,mglData &,mglData &)\n"
+    "    Bars(mglGraph *,mglData &,char const *)\n"
+    "    Bars(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Barh__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Barh",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Barh" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Barh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Barh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Barh" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Barh" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Barh" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Barh(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Barh__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Barh",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Barh" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Barh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Barh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Barh" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Barh" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->Barh(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Barh__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Barh",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Barh" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Barh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Barh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Barh" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Barh(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Barh__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Barh",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Barh" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Barh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Barh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->Barh(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Barh(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Barh__SWIG_3(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Barh__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Barh__SWIG_2(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Barh__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Barh'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Barh(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    Barh(mglGraph *,mglData &,mglData &)\n"
+    "    Barh(mglGraph *,mglData &,char const *)\n"
+    "    Barh(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Region__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  bool arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  bool val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Region",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Region" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Region" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Region" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Region" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_bool(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Region" "', argument " "5"" of type '" "bool""'");
+  } 
+  arg5 = static_cast< bool >(val5);
+  (arg1)->Region(*arg2,*arg3,(char const *)arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Region__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Region",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Region" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Region" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Region" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Region" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Region(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Region__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Region",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Region" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Region" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Region" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->Region(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Region__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  bool arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  bool val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Region",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Region" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Region" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Region" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Region" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Region" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_bool(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Region" "', argument " "6"" of type '" "bool""'");
+  } 
+  arg6 = static_cast< bool >(val6);
+  (arg1)->Region(*arg2,*arg3,*arg4,(char const *)arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Region__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Region",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Region" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Region" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Region" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Region" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Region" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Region(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Region__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Region",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Region" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Region" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Region" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Region" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Region" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Region(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Region(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Region__SWIG_2(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Region__SWIG_5(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Region__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Region__SWIG_4(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_bool(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Region__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_bool(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Region__SWIG_3(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Region'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Region(mglGraph *,mglData &,mglData &,char const *,bool)\n"
+    "    Region(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    Region(mglGraph *,mglData &,mglData &)\n"
+    "    Region(mglGraph *,mglData &,mglData &,mglData &,char const *,bool)\n"
+    "    Region(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    Region(mglGraph *,mglData &,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Torus__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Torus",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Torus" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Torus" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Torus" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Torus" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Torus" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Torus" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Torus(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Torus__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Torus",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Torus" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Torus" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Torus" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Torus" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Torus" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->Torus(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Torus(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Torus__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Torus__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Torus'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Torus(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    Torus(mglGraph *,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Text__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Text",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Text" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Text" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Text" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Text" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Text" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Text" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  (arg1)->Text(*arg2,*arg3,*arg4,(char const *)arg5,(char const *)arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Text__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Text",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Text" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Text" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Text" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Text" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Text" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->Text(*arg2,*arg3,*arg4,(char const *)arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Text__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Text",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Text" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Text" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Text" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Text" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Text(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Text__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Text",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Text" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Text" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Text" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Text" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Text" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  (arg1)->Text(*arg2,*arg3,(char const *)arg4,(char const *)arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Text__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Text",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Text" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Text" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Text" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Text" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Text(*arg2,*arg3,(char const *)arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Text__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Text",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Text" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Text" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Text" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Text(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Text__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Text",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Text" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Text" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Text" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Text" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->Text(*arg2,(char const *)arg3,(char const *)arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Text__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Text",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Text" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Text" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Text" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Text(*arg2,(char const *)arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Text__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Text",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Text" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Text" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Text" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Text(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Text(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[8];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 7); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Text__SWIG_8(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Text__SWIG_5(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Text__SWIG_7(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Text__SWIG_2(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Text__SWIG_4(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Text__SWIG_6(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Text__SWIG_1(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Text__SWIG_3(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Text__SWIG_0(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Text'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Text(mglGraph *,mglData &,mglData &,mglData &,char const *,char const *,float)\n"
+    "    Text(mglGraph *,mglData &,mglData &,mglData &,char const *,char const *)\n"
+    "    Text(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    Text(mglGraph *,mglData &,mglData &,char const *,char const *,float)\n"
+    "    Text(mglGraph *,mglData &,mglData &,char const *,char const *)\n"
+    "    Text(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    Text(mglGraph *,mglData &,char const *,char const *,float)\n"
+    "    Text(mglGraph *,mglData &,char const *,char const *)\n"
+    "    Text(mglGraph *,mglData &,char const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Chart__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Chart",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Chart" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Chart" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Chart" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Chart" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Chart(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Chart__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Chart",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Chart" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Chart" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Chart" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->Chart(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Chart(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Chart__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Chart__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Chart'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Chart(mglGraph *,mglData &,char const *)\n"
+    "    Chart(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Error__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Error",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Error" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Error" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Error" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Error" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Error(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Error__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Error",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Error" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Error" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Error" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->Error(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Error__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Error",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Error" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Error" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Error" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Error" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Error" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Error(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Error__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Error",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Error" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Error" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Error" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Error" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Error(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Error__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Error",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Error" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Error" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Error" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Error" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Error" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Error" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->Error(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Error__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Error",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Error" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Error" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Error" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Error" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Error" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Error" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->Error(*arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Error(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Error__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Error__SWIG_3(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Error__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Error__SWIG_5(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Error__SWIG_2(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Error__SWIG_4(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Error'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Error(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    Error(mglGraph *,mglData &,mglData &)\n"
+    "    Error(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    Error(mglGraph *,mglData &,mglData &,mglData &)\n"
+    "    Error(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    Error(mglGraph *,mglData &,mglData &,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Mark__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Mark",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Mark" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Mark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Mark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Mark" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mark" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Mark" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mark" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Mark" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->Mark(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Mark__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Mark",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Mark" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Mark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Mark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Mark" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mark" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Mark" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Mark(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Mark__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Mark",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Mark" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Mark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Mark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Mark" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Mark(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Mark(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Mark__SWIG_3(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Mark__SWIG_2(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_char(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Mark__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Mark__SWIG_1(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Mark'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Mark(mglGraph *,float,float,float,char)\n"
+    "    Mark(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    Mark(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    Mark(mglGraph *,mglData &,mglData &,char const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TextMark__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_TextMark",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TextMark" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TextMark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TextMark" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TextMark" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TextMark" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_TextMark" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  (arg1)->TextMark(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,(char const *)arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TextMark__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_TextMark",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TextMark" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TextMark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TextMark" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TextMark" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TextMark" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->TextMark(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TextMark__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_TextMark",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TextMark" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TextMark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TextMark" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TextMark" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TextMark" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->TextMark(*arg2,*arg3,*arg4,(char const *)arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TextMark__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_TextMark",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TextMark" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TextMark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TextMark" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TextMark" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->TextMark(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TextMark__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_TextMark",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TextMark" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TextMark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TextMark" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TextMark" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->TextMark(*arg2,*arg3,(char const *)arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TextMark__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_TextMark",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TextMark" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TextMark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TextMark" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->TextMark(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TextMark__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_TextMark",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TextMark" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TextMark" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TextMark" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->TextMark(*arg2,(char const *)arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TextMark__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_TextMark",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TextMark" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TextMark" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TextMark" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->TextMark(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TextMark(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[8];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 7); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_TextMark__SWIG_7(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_TextMark__SWIG_5(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_TextMark__SWIG_6(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_TextMark__SWIG_3(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_TextMark__SWIG_4(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_TextMark__SWIG_1(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_TextMark__SWIG_2(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_TextMark__SWIG_0(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_TextMark'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    TextMark(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *,char const *)\n"
+    "    TextMark(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    TextMark(mglGraph *,mglData &,mglData &,mglData &,char const *,char const *)\n"
+    "    TextMark(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    TextMark(mglGraph *,mglData &,mglData &,char const *,char const *)\n"
+    "    TextMark(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    TextMark(mglGraph *,mglData &,char const *,char const *)\n"
+    "    TextMark(mglGraph *,mglData &,char const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Tube__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Tube",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tube" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Tube" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Tube" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->Tube(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Tube__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Tube",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tube" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Tube" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->Tube(*arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Tube__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  float arg5 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Tube",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tube" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Tube" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Tube" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->Tube(*arg2,*arg3,*arg4,arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Tube__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Tube",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tube" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Tube" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->Tube(*arg2,*arg3,*arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Tube__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Tube",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tube" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Tube" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Tube(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Tube__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Tube",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tube" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Tube(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Tube__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  float arg4 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Tube",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tube" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Tube" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Tube(*arg2,*arg3,arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Tube__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Tube",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tube" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  (arg1)->Tube(*arg2,*arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Tube__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Tube",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tube" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Tube(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Tube__SWIG_9(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Tube",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tube" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->Tube(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Tube__SWIG_10(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  float arg3 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Tube",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tube" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tube" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Tube(*arg2,arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Tube__SWIG_11(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  float arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Tube",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tube" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tube" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Tube" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  (arg1)->Tube(*arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Tube(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Tube__SWIG_9(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_mglGraph_Tube__SWIG_11(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Tube__SWIG_5(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Tube__SWIG_7(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Tube__SWIG_8(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Tube__SWIG_10(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Tube__SWIG_1(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Tube__SWIG_3(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Tube__SWIG_4(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Tube__SWIG_6(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Tube__SWIG_0(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Tube__SWIG_2(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Tube'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Tube(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    Tube(mglGraph *,mglData &,mglData &,mglData &,mglData &)\n"
+    "    Tube(mglGraph *,mglData &,mglData &,mglData &,float,char const *)\n"
+    "    Tube(mglGraph *,mglData &,mglData &,mglData &,float)\n"
+    "    Tube(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    Tube(mglGraph *,mglData &,mglData &,mglData &)\n"
+    "    Tube(mglGraph *,mglData &,mglData &,float,char const *)\n"
+    "    Tube(mglGraph *,mglData &,mglData &,float)\n"
+    "    Tube(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    Tube(mglGraph *,mglData &,mglData &)\n"
+    "    Tube(mglGraph *,mglData &,float,char const *)\n"
+    "    Tube(mglGraph *,mglData &,float)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Surf",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Surf" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->Surf((char const *)arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Surf",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Surf((char const *)arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Surf",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  (arg1)->Surf((char const *)arg2);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Surf",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_int(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Surf" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = static_cast< int >(val6);
+  (arg1)->Surf((char const *)arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Surf",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Surf((char const *)arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Surf",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Surf((char const *)arg2,(char const *)arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Grid__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Grid",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grid" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grid" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grid" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Grid" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Grid" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Grid" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  (arg1)->Grid(*arg2,*arg3,*arg4,(char const *)arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Grid__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Grid",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grid" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grid" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grid" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Grid" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Grid" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Grid(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Grid__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Grid",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grid" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grid" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grid" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Grid" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Grid(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Grid__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Grid",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grid" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grid" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grid" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Grid" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  (arg1)->Grid(*arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Grid__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Grid",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grid" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grid" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grid" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Grid(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Grid__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Grid",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grid" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grid" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->Grid(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Grid(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_mglGraph_Grid__SWIG_2(self, args);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Grid__SWIG_8(self, args);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Grid__SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Grid__SWIG_7(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Grid__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Grid__SWIG_5(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Grid__SWIG_6(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Grid__SWIG_4(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Grid__SWIG_3(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Grid'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Grid(mglGraph *,char const *,char const *)\n"
+    "    Grid(mglGraph *,char const *)\n"
+    "    Grid(mglGraph *)\n"
+    "    Grid(mglGraph *,mglData &,mglData &,mglData &,char const *,float)\n"
+    "    Grid(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    Grid(mglGraph *,mglData &,mglData &,mglData &)\n"
+    "    Grid(mglGraph *,mglData &,char const *,float)\n"
+    "    Grid(mglGraph *,mglData &,char const *)\n"
+    "    Grid(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Mesh__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Mesh",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Mesh" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Mesh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mesh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Mesh" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mesh" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Mesh" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mesh" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Mesh" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Mesh(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Mesh__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Mesh",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Mesh" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Mesh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mesh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Mesh" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mesh" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Mesh" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mesh" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Mesh(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Mesh__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Mesh",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Mesh" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Mesh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mesh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Mesh" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Mesh(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Mesh__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Mesh",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Mesh" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Mesh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Mesh" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->Mesh(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Mesh(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[6];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Mesh__SWIG_3(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Mesh__SWIG_2(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Mesh__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Mesh__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Mesh'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Mesh(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    Mesh(mglGraph *,mglData &,mglData &,mglData &)\n"
+    "    Mesh(mglGraph *,mglData &,char const *)\n"
+    "    Mesh(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Fall__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Fall",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fall" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fall" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fall" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fall" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fall" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fall" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fall" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Fall" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Fall(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Fall__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Fall",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fall" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fall" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fall" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fall" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fall" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fall" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fall" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Fall(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Fall__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Fall",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fall" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fall" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fall" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fall" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Fall(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Fall__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Fall",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fall" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fall" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fall" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->Fall(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Fall(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[6];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Fall__SWIG_3(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Fall__SWIG_2(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Fall__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Fall__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Fall'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Fall(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    Fall(mglGraph *,mglData &,mglData &,mglData &)\n"
+    "    Fall(mglGraph *,mglData &,char const *)\n"
+    "    Fall(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Belt__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Belt",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Belt" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Belt" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Belt" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Belt" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Belt" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Belt" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Belt" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Belt" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Belt(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Belt__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Belt",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Belt" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Belt" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Belt" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Belt" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Belt" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Belt" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Belt" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Belt(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Belt__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Belt",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Belt" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Belt" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Belt" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Belt" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Belt(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Belt__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Belt",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Belt" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Belt" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Belt" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->Belt(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Belt(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[6];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Belt__SWIG_3(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Belt__SWIG_2(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Belt__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Belt__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Belt'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Belt(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    Belt(mglGraph *,mglData &,mglData &,mglData &)\n"
+    "    Belt(mglGraph *,mglData &,char const *)\n"
+    "    Belt(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Surf",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Surf(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Surf",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Surf(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Surf",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Surf(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf__SWIG_9(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Surf",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->Surf(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Surf__SWIG_9(self, args);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Surf__SWIG_2(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Surf__SWIG_8(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Surf__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Surf__SWIG_7(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Surf__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Surf__SWIG_5(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Surf__SWIG_6(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Surf__SWIG_4(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Surf__SWIG_3(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Surf'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Surf(mglGraph *,char const *,char const *,int)\n"
+    "    Surf(mglGraph *,char const *,char const *)\n"
+    "    Surf(mglGraph *,char const *)\n"
+    "    Surf(mglGraph *,char const *,char const *,char const *,char const *,int)\n"
+    "    Surf(mglGraph *,char const *,char const *,char const *,char const *)\n"
+    "    Surf(mglGraph *,char const *,char const *,char const *)\n"
+    "    Surf(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    Surf(mglGraph *,mglData &,mglData &,mglData &)\n"
+    "    Surf(mglGraph *,mglData &,char const *)\n"
+    "    Surf(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Tile__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Tile",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tile" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tile" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tile" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tile" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tile" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tile" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tile" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Tile" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Tile(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Tile__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Tile",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tile" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tile" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tile" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tile" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tile" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Tile" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tile" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Tile(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Tile__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Tile",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tile" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tile" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tile" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Tile" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Tile(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Tile__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Tile",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Tile" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Tile" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Tile" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->Tile(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Tile(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[6];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Tile__SWIG_3(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Tile__SWIG_2(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Tile__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Tile__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Tile'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Tile(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    Tile(mglGraph *,mglData &,mglData &,mglData &)\n"
+    "    Tile(mglGraph *,mglData &,char const *)\n"
+    "    Tile(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TileS__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_TileS",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TileS" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TileS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TileS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TileS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TileS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TileS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TileS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TileS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TileS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TileS" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->TileS(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TileS__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_TileS",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TileS" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TileS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TileS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TileS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TileS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TileS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TileS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TileS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TileS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->TileS(*arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TileS__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_TileS",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TileS" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TileS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TileS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TileS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TileS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TileS" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->TileS(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TileS__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_TileS",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TileS" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TileS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TileS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TileS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TileS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->TileS(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TileS(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_TileS__SWIG_3(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_TileS__SWIG_2(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_TileS__SWIG_1(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_TileS__SWIG_0(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_TileS'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    TileS(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    TileS(mglGraph *,mglData &,mglData &,mglData &,mglData &)\n"
+    "    TileS(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    TileS(mglGraph *,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Dens__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Dens",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dens" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Dens" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Dens" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Dens" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  (arg1)->Dens(*arg2,*arg3,*arg4,(char const *)arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Dens__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Dens",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dens" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Dens" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Dens" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Dens(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Dens__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Dens",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dens" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Dens" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Dens(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Dens__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Dens",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dens" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dens" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Dens" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  (arg1)->Dens(*arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Dens__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Dens",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dens" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dens" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Dens(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Dens__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Dens",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dens" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->Dens(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Dens(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Dens__SWIG_5(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Dens__SWIG_4(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Dens__SWIG_2(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Dens__SWIG_3(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Dens__SWIG_1(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Dens__SWIG_0(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Dens'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Dens(mglGraph *,mglData &,mglData &,mglData &,char const *,float)\n"
+    "    Dens(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    Dens(mglGraph *,mglData &,mglData &,mglData &)\n"
+    "    Dens(mglGraph *,mglData &,char const *,float)\n"
+    "    Dens(mglGraph *,mglData &,char const *)\n"
+    "    Dens(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Boxs__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Boxs",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Boxs" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Boxs" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Boxs" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Boxs" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Boxs" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Boxs" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Boxs" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Boxs" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Boxs" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  (arg1)->Boxs(*arg2,*arg3,*arg4,(char const *)arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Boxs__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Boxs",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Boxs" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Boxs" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Boxs" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Boxs" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Boxs" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Boxs" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Boxs" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Boxs" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Boxs(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Boxs__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Boxs",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Boxs" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Boxs" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Boxs" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Boxs" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Boxs" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Boxs" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Boxs" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Boxs(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Boxs__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Boxs",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Boxs" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Boxs" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Boxs" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Boxs" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Boxs" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  (arg1)->Boxs(*arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Boxs__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Boxs",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Boxs" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Boxs" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Boxs" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Boxs" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Boxs(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Boxs__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Boxs",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Boxs" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Boxs" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Boxs" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->Boxs(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Boxs(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Boxs__SWIG_5(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Boxs__SWIG_4(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Boxs__SWIG_2(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Boxs__SWIG_3(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Boxs__SWIG_1(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Boxs__SWIG_0(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Boxs'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Boxs(mglGraph *,mglData &,mglData &,mglData &,char const *,float)\n"
+    "    Boxs(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    Boxs(mglGraph *,mglData &,mglData &,mglData &)\n"
+    "    Boxs(mglGraph *,mglData &,char const *,float)\n"
+    "    Boxs(mglGraph *,mglData &,char const *)\n"
+    "    Boxs(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cont__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Cont",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cont" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Cont" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Cont" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  (arg1)->Cont(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cont__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Cont",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cont" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Cont" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->Cont(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cont__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Cont",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cont" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->Cont(*arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cont__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Cont",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Cont" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->Cont(*arg2,*arg3,(char const *)arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cont__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Cont",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Cont(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cont__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Cont",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->Cont(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cont__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Cont",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cont" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_int(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Cont" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = static_cast< int >(val6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Cont" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  (arg1)->Cont(*arg2,*arg3,*arg4,(char const *)arg5,arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cont__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Cont",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cont" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_int(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Cont" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = static_cast< int >(val6);
+  (arg1)->Cont(*arg2,*arg3,*arg4,(char const *)arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cont__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Cont",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cont" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Cont(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cont__SWIG_9(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Cont",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Cont(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cont__SWIG_10(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Cont",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Cont" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->Cont(*arg2,(char const *)arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cont__SWIG_11(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Cont",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Cont" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->Cont(*arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cont__SWIG_12(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Cont",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Cont(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cont__SWIG_13(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Cont",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->Cont(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cont(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[8];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 7); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Cont__SWIG_13(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Cont__SWIG_5(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Cont__SWIG_12(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Cont__SWIG_9(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Cont__SWIG_4(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Cont__SWIG_11(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Cont__SWIG_2(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Cont__SWIG_8(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Cont__SWIG_3(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Cont__SWIG_10(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Cont__SWIG_1(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Cont__SWIG_7(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Cont__SWIG_0(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Cont__SWIG_6(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Cont'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Cont(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *,float)\n"
+    "    Cont(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    Cont(mglGraph *,mglData &,mglData &,mglData &,mglData &)\n"
+    "    Cont(mglGraph *,mglData &,mglData &,char const *,float)\n"
+    "    Cont(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    Cont(mglGraph *,mglData &,mglData &)\n"
+    "    Cont(mglGraph *,mglData &,mglData &,mglData &,char const *,int,float)\n"
+    "    Cont(mglGraph *,mglData &,mglData &,mglData &,char const *,int)\n"
+    "    Cont(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    Cont(mglGraph *,mglData &,mglData &,mglData &)\n"
+    "    Cont(mglGraph *,mglData &,char const *,int,float)\n"
+    "    Cont(mglGraph *,mglData &,char const *,int)\n"
+    "    Cont(mglGraph *,mglData &,char const *)\n"
+    "    Cont(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContF__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_ContF",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContF" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_ContF" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_ContF" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  (arg1)->ContF(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContF__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_ContF",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContF" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_ContF" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->ContF(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContF__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_ContF",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContF" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->ContF(*arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContF__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_ContF",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContF" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->ContF(*arg2,*arg3,(char const *)arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContF__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_ContF",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->ContF(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContF__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_ContF",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->ContF(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContF__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_ContF",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContF" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_int(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_ContF" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = static_cast< int >(val6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_ContF" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  (arg1)->ContF(*arg2,*arg3,*arg4,(char const *)arg5,arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContF__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_ContF",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContF" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_int(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_ContF" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = static_cast< int >(val6);
+  (arg1)->ContF(*arg2,*arg3,*arg4,(char const *)arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContF__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_ContF",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContF" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->ContF(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContF__SWIG_9(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_ContF",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->ContF(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContF__SWIG_10(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_ContF",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContF" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->ContF(*arg2,(char const *)arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContF__SWIG_11(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_ContF",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContF" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->ContF(*arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContF__SWIG_12(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_ContF",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->ContF(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContF__SWIG_13(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_ContF",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->ContF(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContF(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[8];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 7); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_ContF__SWIG_13(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContF__SWIG_5(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContF__SWIG_12(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_ContF__SWIG_9(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_ContF__SWIG_4(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_ContF__SWIG_11(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_ContF__SWIG_2(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_ContF__SWIG_8(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContF__SWIG_3(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContF__SWIG_10(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_ContF__SWIG_1(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_ContF__SWIG_7(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_ContF__SWIG_0(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_ContF__SWIG_6(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_ContF'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    ContF(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *,float)\n"
+    "    ContF(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    ContF(mglGraph *,mglData &,mglData &,mglData &,mglData &)\n"
+    "    ContF(mglGraph *,mglData &,mglData &,char const *,float)\n"
+    "    ContF(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    ContF(mglGraph *,mglData &,mglData &)\n"
+    "    ContF(mglGraph *,mglData &,mglData &,mglData &,char const *,int,float)\n"
+    "    ContF(mglGraph *,mglData &,mglData &,mglData &,char const *,int)\n"
+    "    ContF(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    ContF(mglGraph *,mglData &,mglData &,mglData &)\n"
+    "    ContF(mglGraph *,mglData &,char const *,int,float)\n"
+    "    ContF(mglGraph *,mglData &,char const *,int)\n"
+    "    ContF(mglGraph *,mglData &,char const *)\n"
+    "    ContF(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContD__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_ContD",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContD" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContD" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_ContD" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_ContD" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  (arg1)->ContD(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContD__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_ContD",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContD" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContD" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_ContD" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->ContD(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContD__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_ContD",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContD" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContD" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->ContD(*arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContD__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_ContD",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContD" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContD" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->ContD(*arg2,*arg3,(char const *)arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContD__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_ContD",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContD" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->ContD(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContD__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_ContD",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContD" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->ContD(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContD__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_ContD",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContD" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContD" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_int(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_ContD" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = static_cast< int >(val6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_ContD" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  (arg1)->ContD(*arg2,*arg3,*arg4,(char const *)arg5,arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContD__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_ContD",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContD" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContD" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_int(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_ContD" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = static_cast< int >(val6);
+  (arg1)->ContD(*arg2,*arg3,*arg4,(char const *)arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContD__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_ContD",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContD" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContD" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->ContD(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContD__SWIG_9(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_ContD",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContD" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->ContD(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContD__SWIG_10(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_ContD",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContD" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContD" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->ContD(*arg2,(char const *)arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContD__SWIG_11(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_ContD",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContD" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContD" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->ContD(*arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContD__SWIG_12(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_ContD",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContD" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContD" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->ContD(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContD__SWIG_13(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_ContD",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContD" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContD" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->ContD(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContD(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[8];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 7); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_ContD__SWIG_13(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContD__SWIG_5(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContD__SWIG_12(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_ContD__SWIG_9(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_ContD__SWIG_4(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_ContD__SWIG_11(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_ContD__SWIG_2(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_ContD__SWIG_8(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContD__SWIG_3(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContD__SWIG_10(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_ContD__SWIG_1(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_ContD__SWIG_7(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_ContD__SWIG_0(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_ContD__SWIG_6(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_ContD'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    ContD(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *,float)\n"
+    "    ContD(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    ContD(mglGraph *,mglData &,mglData &,mglData &,mglData &)\n"
+    "    ContD(mglGraph *,mglData &,mglData &,char const *,float)\n"
+    "    ContD(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    ContD(mglGraph *,mglData &,mglData &)\n"
+    "    ContD(mglGraph *,mglData &,mglData &,mglData &,char const *,int,float)\n"
+    "    ContD(mglGraph *,mglData &,mglData &,mglData &,char const *,int)\n"
+    "    ContD(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    ContD(mglGraph *,mglData &,mglData &,mglData &)\n"
+    "    ContD(mglGraph *,mglData &,char const *,int,float)\n"
+    "    ContD(mglGraph *,mglData &,char const *,int)\n"
+    "    ContD(mglGraph *,mglData &,char const *)\n"
+    "    ContD(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Axial__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Axial",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Axial" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Axial" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Axial" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Axial" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->Axial(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Axial__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Axial",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Axial" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Axial" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Axial" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->Axial(*arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Axial__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Axial",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Axial" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Axial" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Axial(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Axial__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Axial",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Axial" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->Axial(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Axial__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Axial",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Axial" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Axial" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Axial" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_int(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Axial" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = static_cast< int >(val6);
+  (arg1)->Axial(*arg2,*arg3,*arg4,(char const *)arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Axial__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Axial",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Axial" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Axial" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Axial" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Axial(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Axial__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Axial",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Axial" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Axial" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Axial(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Axial__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Axial",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Axial" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Axial" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->Axial(*arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Axial__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Axial",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Axial" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Axial" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Axial(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Axial__SWIG_9(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Axial",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Axial" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Axial" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->Axial(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Axial(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Axial__SWIG_9(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Axial__SWIG_3(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Axial__SWIG_8(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Axial__SWIG_6(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Axial__SWIG_2(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Axial__SWIG_7(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Axial__SWIG_1(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Axial__SWIG_5(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Axial__SWIG_0(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Axial__SWIG_4(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Axial'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Axial(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    Axial(mglGraph *,mglData &,mglData &,mglData &,mglData &)\n"
+    "    Axial(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    Axial(mglGraph *,mglData &,mglData &)\n"
+    "    Axial(mglGraph *,mglData &,mglData &,mglData &,char const *,int)\n"
+    "    Axial(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    Axial(mglGraph *,mglData &,mglData &,mglData &)\n"
+    "    Axial(mglGraph *,mglData &,char const *,int)\n"
+    "    Axial(mglGraph *,mglData &,char const *)\n"
+    "    Axial(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SurfC__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_SurfC",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SurfC" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SurfC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_SurfC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_SurfC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_SurfC" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfC" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_SurfC" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->SurfC(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SurfC__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_SurfC",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SurfC" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SurfC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_SurfC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_SurfC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_SurfC" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfC" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->SurfC(*arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SurfC__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_SurfC",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SurfC" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SurfC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_SurfC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_SurfC" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->SurfC(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SurfC__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_SurfC",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SurfC" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SurfC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_SurfC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->SurfC(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SurfC(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_SurfC__SWIG_3(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_SurfC__SWIG_2(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_SurfC__SWIG_1(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_SurfC__SWIG_0(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_SurfC'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    SurfC(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    SurfC(mglGraph *,mglData &,mglData &,mglData &,mglData &)\n"
+    "    SurfC(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    SurfC(mglGraph *,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SurfA__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_SurfA",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SurfA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SurfA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_SurfA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_SurfA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_SurfA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_SurfA" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->SurfA(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SurfA__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_SurfA",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SurfA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SurfA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_SurfA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_SurfA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_SurfA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->SurfA(*arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SurfA__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_SurfA",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SurfA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SurfA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_SurfA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_SurfA" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->SurfA(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SurfA__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_SurfA",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_SurfA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_SurfA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_SurfA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_SurfA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->SurfA(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_SurfA(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_SurfA__SWIG_3(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_SurfA__SWIG_2(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_SurfA__SWIG_1(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_SurfA__SWIG_0(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_SurfA'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    SurfA(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    SurfA(mglGraph *,mglData &,mglData &,mglData &,mglData &)\n"
+    "    SurfA(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    SurfA(mglGraph *,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_STFA__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  int arg6 ;
+  char *arg7 = (char *) 0 ;
+  float arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_STFA",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_STFA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_STFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_STFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_STFA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_STFA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  ecode6 = SWIG_AsVal_int(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_STFA" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = static_cast< int >(val6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_STFA" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  ecode8 = SWIG_AsVal_float(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_STFA" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = static_cast< float >(val8);
+  (arg1)->STFA(*arg2,*arg3,*arg4,*arg5,arg6,(char const *)arg7,arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_STFA__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  int arg6 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_STFA",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_STFA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_STFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_STFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_STFA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_STFA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  ecode6 = SWIG_AsVal_int(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_STFA" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = static_cast< int >(val6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_STFA" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  (arg1)->STFA(*arg2,*arg3,*arg4,*arg5,arg6,(char const *)arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_STFA__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_STFA",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_STFA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_STFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_STFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_STFA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_STFA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  ecode6 = SWIG_AsVal_int(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_STFA" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = static_cast< int >(val6);
+  (arg1)->STFA(*arg2,*arg3,*arg4,*arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_STFA__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  int arg4 ;
+  char *arg5 = (char *) 0 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_STFA",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_STFA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_STFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_STFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_STFA" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_STFA" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_STFA" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  (arg1)->STFA(*arg2,*arg3,arg4,(char const *)arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_STFA__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  int arg4 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_STFA",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_STFA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_STFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_STFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_STFA" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_STFA" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->STFA(*arg2,*arg3,arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_STFA__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_STFA",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_STFA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_STFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_STFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_STFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_STFA" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->STFA(*arg2,*arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_STFA(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[9];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 8); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_STFA__SWIG_5(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_STFA__SWIG_4(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_STFA__SWIG_2(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_STFA__SWIG_3(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_STFA__SWIG_1(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_STFA__SWIG_0(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_STFA'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    STFA(mglGraph *,mglData &,mglData &,mglData &,mglData &,int,char const *,float)\n"
+    "    STFA(mglGraph *,mglData &,mglData &,mglData &,mglData &,int,char const *)\n"
+    "    STFA(mglGraph *,mglData &,mglData &,mglData &,mglData &,int)\n"
+    "    STFA(mglGraph *,mglData &,mglData &,int,char const *,float)\n"
+    "    STFA(mglGraph *,mglData &,mglData &,int,char const *)\n"
+    "    STFA(mglGraph *,mglData &,mglData &,int)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Dew__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Dew",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dew" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dew" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dew" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Dew" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Dew" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Dew" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Dew" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  (arg1)->Dew(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Dew__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Dew",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dew" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dew" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dew" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Dew" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Dew" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Dew" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->Dew(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Dew__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Dew",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dew" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dew" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dew" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Dew" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Dew" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->Dew(*arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Dew__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Dew",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dew" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dew" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dew" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Dew" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Dew" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->Dew(*arg2,*arg3,(char const *)arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Dew__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Dew",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dew" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dew" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dew" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Dew" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Dew(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Dew__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Dew",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dew" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dew" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dew" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dew" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->Dew(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Dew(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[8];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 7); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Dew__SWIG_5(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Dew__SWIG_4(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Dew__SWIG_2(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Dew__SWIG_3(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Dew__SWIG_1(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Dew__SWIG_0(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Dew'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Dew(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *,float)\n"
+    "    Dew(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    Dew(mglGraph *,mglData &,mglData &,mglData &,mglData &)\n"
+    "    Dew(mglGraph *,mglData &,mglData &,char const *,float)\n"
+    "    Dew(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    Dew(mglGraph *,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Traj__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  float arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Traj",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Traj" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Traj" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Traj" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Traj" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Traj" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Traj" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Traj" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  ecode8 = SWIG_AsVal_float(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Traj" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = static_cast< float >(val8);
+  (arg1)->Traj(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7,arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Traj__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Traj",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Traj" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Traj" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Traj" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Traj" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Traj" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Traj" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Traj" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  (arg1)->Traj(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Traj__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Traj",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Traj" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Traj" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Traj" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Traj" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Traj" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Traj" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->Traj(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Traj__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Traj",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Traj" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Traj" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Traj" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Traj" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Traj" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->Traj(*arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Traj__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  float arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:mglGraph_Traj",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Traj" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Traj" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Traj" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Traj" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Traj" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Traj" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Traj" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Traj" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  ecode9 = SWIG_AsVal_float(obj8, &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Traj" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = static_cast< float >(val9);
+  (arg1)->Traj(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8,arg9);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Traj__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Traj",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Traj" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Traj" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Traj" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Traj" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Traj" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Traj" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Traj" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Traj" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  (arg1)->Traj(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Traj__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Traj",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Traj" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Traj" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Traj" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Traj" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Traj" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Traj" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Traj" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Traj" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  (arg1)->Traj(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Traj(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[10];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 9); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Traj__SWIG_3(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Traj__SWIG_2(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_Traj__SWIG_6(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Traj__SWIG_1(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Traj__SWIG_5(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Traj__SWIG_0(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_Traj__SWIG_4(self, args);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Traj'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Traj(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *,float,float)\n"
+    "    Traj(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *,float)\n"
+    "    Traj(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    Traj(mglGraph *,mglData &,mglData &,mglData &,mglData &)\n"
+    "    Traj(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,mglData &,char const *,float)\n"
+    "    Traj(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    Traj(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Vect__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  int arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Vect",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Vect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Vect" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Vect" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  ecode8 = SWIG_AsVal_int(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Vect" "', argument " "8"" of type '" "int""'");
+  } 
+  arg8 = static_cast< int >(val8);
+  (arg1)->Vect(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7,arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Vect__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Vect",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Vect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Vect" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Vect" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  (arg1)->Vect(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Vect__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Vect",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Vect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Vect" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->Vect(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Vect__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Vect",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Vect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->Vect(*arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Vect__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Vect",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Vect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_int(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Vect" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = static_cast< int >(val6);
+  (arg1)->Vect(*arg2,*arg3,(char const *)arg4,arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Vect__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Vect",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Vect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->Vect(*arg2,*arg3,(char const *)arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Vect__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Vect",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Vect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Vect(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Vect__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Vect",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Vect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->Vect(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_VectL__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_VectL",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectL" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_VectL" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_VectL" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_VectL" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  (arg1)->VectL(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_VectL__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_VectL",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectL" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_VectL" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_VectL" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->VectL(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_VectL__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_VectL",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectL" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_VectL" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->VectL(*arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_VectL__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_VectL",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectL" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_VectL" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->VectL(*arg2,*arg3,(char const *)arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_VectL__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_VectL",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectL" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->VectL(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_VectL__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_VectL",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectL" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->VectL(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_VectC__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_VectC",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectC" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_VectC" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_VectC" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_VectC" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  (arg1)->VectC(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_VectC__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_VectC",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectC" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_VectC" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_VectC" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->VectC(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_VectC__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_VectC",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectC" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_VectC" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->VectC(*arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_VectC__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_VectC",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectC" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_VectC" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->VectC(*arg2,*arg3,(char const *)arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_VectC__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_VectC",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectC" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->VectC(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_VectC__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_VectC",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectC" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->VectC(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Vect__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  int arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  int val9 ;
+  int ecode9 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:mglGraph_Vect",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Vect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Vect" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Vect" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Vect" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  ecode9 = SWIG_AsVal_int(obj8, &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Vect" "', argument " "9"" of type '" "int""'");
+  } 
+  arg9 = static_cast< int >(val9);
+  (arg1)->Vect(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8,arg9);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Vect__SWIG_9(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Vect",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Vect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Vect" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Vect" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Vect" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  (arg1)->Vect(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Vect__SWIG_10(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Vect",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Vect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Vect" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Vect" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  (arg1)->Vect(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Vect__SWIG_11(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Vect",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Vect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_int(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Vect" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = static_cast< int >(val6);
+  (arg1)->Vect(*arg2,*arg3,*arg4,(char const *)arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Vect__SWIG_12(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Vect",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Vect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Vect" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Vect(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Vect__SWIG_13(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Vect",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Vect" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Vect" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Vect(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Vect(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[10];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 9); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Vect__SWIG_7(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Vect__SWIG_13(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Vect__SWIG_6(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Vect__SWIG_3(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Vect__SWIG_12(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Vect__SWIG_5(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Vect__SWIG_2(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Vect__SWIG_11(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Vect__SWIG_4(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_Vect__SWIG_10(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Vect__SWIG_1(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Vect__SWIG_9(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_int(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Vect__SWIG_0(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_int(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_Vect__SWIG_8(self, args);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Vect'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Vect(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *,float,int)\n"
+    "    Vect(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *,float)\n"
+    "    Vect(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    Vect(mglGraph *,mglData &,mglData &,mglData &,mglData &)\n"
+    "    Vect(mglGraph *,mglData &,mglData &,char const *,float,int)\n"
+    "    Vect(mglGraph *,mglData &,mglData &,char const *,float)\n"
+    "    Vect(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    Vect(mglGraph *,mglData &,mglData &)\n"
+    "    Vect(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,mglData &,char const *,int)\n"
+    "    Vect(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    Vect(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,mglData &)\n"
+    "    Vect(mglGraph *,mglData &,mglData &,mglData &,char const *,int)\n"
+    "    Vect(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    Vect(mglGraph *,mglData &,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_VectL__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_VectL",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectL" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_VectL" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_VectL" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_VectL" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_VectL" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  (arg1)->VectL(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_VectL__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_VectL",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectL" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_VectL" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_VectL" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_VectL" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  (arg1)->VectL(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_VectL__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_VectL",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectL" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_VectL" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->VectL(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_VectL__SWIG_9(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_VectL",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectL" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectL" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->VectL(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_VectL(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[9];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 8); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_VectL__SWIG_5(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_VectL__SWIG_9(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_VectL__SWIG_4(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_VectL__SWIG_2(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_VectL__SWIG_8(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_VectL__SWIG_3(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_VectL__SWIG_1(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_VectL__SWIG_7(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_VectL__SWIG_0(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_VectL__SWIG_6(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_VectL'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    VectL(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *,float)\n"
+    "    VectL(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    VectL(mglGraph *,mglData &,mglData &,mglData &,mglData &)\n"
+    "    VectL(mglGraph *,mglData &,mglData &,char const *,float)\n"
+    "    VectL(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    VectL(mglGraph *,mglData &,mglData &)\n"
+    "    VectL(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    VectL(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,mglData &)\n"
+    "    VectL(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    VectL(mglGraph *,mglData &,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_VectC__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_VectC",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectC" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_VectC" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_VectC" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_VectC" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_VectC" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  (arg1)->VectC(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_VectC__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_VectC",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectC" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_VectC" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_VectC" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_VectC" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  (arg1)->VectC(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_VectC__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_VectC",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectC" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_VectC" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->VectC(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_VectC__SWIG_9(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_VectC",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_VectC" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_VectC" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->VectC(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_VectC(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[9];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 8); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_VectC__SWIG_5(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_VectC__SWIG_9(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_VectC__SWIG_4(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_VectC__SWIG_2(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_VectC__SWIG_8(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_VectC__SWIG_3(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_VectC__SWIG_1(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_VectC__SWIG_7(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_VectC__SWIG_0(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_VectC__SWIG_6(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_VectC'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    VectC(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *,float)\n"
+    "    VectC(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    VectC(mglGraph *,mglData &,mglData &,mglData &,mglData &)\n"
+    "    VectC(mglGraph *,mglData &,mglData &,char const *,float)\n"
+    "    VectC(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    VectC(mglGraph *,mglData &,mglData &)\n"
+    "    VectC(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    VectC(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,mglData &)\n"
+    "    VectC(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    VectC(mglGraph *,mglData &,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Map__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  int arg7 ;
+  bool arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  bool val8 ;
+  int ecode8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Map",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Map" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Map" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Map" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Map" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_int(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Map" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = static_cast< int >(val7);
+  ecode8 = SWIG_AsVal_bool(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Map" "', argument " "8"" of type '" "bool""'");
+  } 
+  arg8 = static_cast< bool >(val8);
+  (arg1)->Map(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7,arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Map__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  int arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Map",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Map" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Map" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Map" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Map" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_int(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Map" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = static_cast< int >(val7);
+  (arg1)->Map(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Map__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Map",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Map" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Map" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Map" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Map" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->Map(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Map__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Map",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Map" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Map" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Map" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->Map(*arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Map__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  int arg5 ;
+  bool arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  bool val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Map",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Map" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Map" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Map" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  ecode6 = SWIG_AsVal_bool(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Map" "', argument " "6"" of type '" "bool""'");
+  } 
+  arg6 = static_cast< bool >(val6);
+  (arg1)->Map(*arg2,*arg3,(char const *)arg4,arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Map__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Map",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Map" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Map" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Map" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  (arg1)->Map(*arg2,*arg3,(char const *)arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Map__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Map",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Map" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Map" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Map(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Map__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Map",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Map" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Map" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->Map(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Map(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[9];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 8); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Map__SWIG_7(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Map__SWIG_6(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Map__SWIG_3(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Map__SWIG_5(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Map__SWIG_2(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_bool(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Map__SWIG_4(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Map__SWIG_1(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_bool(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Map__SWIG_0(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Map'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Map(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *,int,bool)\n"
+    "    Map(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *,int)\n"
+    "    Map(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    Map(mglGraph *,mglData &,mglData &,mglData &,mglData &)\n"
+    "    Map(mglGraph *,mglData &,mglData &,char const *,int,bool)\n"
+    "    Map(mglGraph *,mglData &,mglData &,char const *,int)\n"
+    "    Map(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    Map(mglGraph *,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3A__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Surf3A",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3A" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3A" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Surf3A" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Surf3A" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Surf3A" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  (arg1)->Surf3A(arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3A__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Surf3A",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3A" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3A" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Surf3A" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Surf3A" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  (arg1)->Surf3A(arg2,*arg3,*arg4,*arg5,*arg6,*arg7);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3A__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Surf3A",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3A" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3A" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Surf3A(arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3A__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Surf3A",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3A" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Surf3A(arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3A__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  int arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Surf3A",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3A" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3A" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Surf3A" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Surf3A" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  ecode8 = SWIG_AsVal_int(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Surf3A" "', argument " "8"" of type '" "int""'");
+  } 
+  arg8 = static_cast< int >(val8);
+  (arg1)->Surf3A(*arg2,*arg3,*arg4,*arg5,*arg6,(char const *)arg7,arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3A__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Surf3A",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3A" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3A" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Surf3A" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Surf3A" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  (arg1)->Surf3A(*arg2,*arg3,*arg4,*arg5,*arg6,(char const *)arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3A__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Surf3A",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3A" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3A" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Surf3A" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  (arg1)->Surf3A(*arg2,*arg3,*arg4,*arg5,*arg6);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3A__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Surf3A",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3A" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Surf3A" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  (arg1)->Surf3A(*arg2,*arg3,(char const *)arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3A__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Surf3A",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3A" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3A" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Surf3A(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3A__SWIG_9(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Surf3A",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3A" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3A" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->Surf3A(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3A(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[9];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 8); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Surf3A__SWIG_9(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Surf3A__SWIG_8(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Surf3A__SWIG_3(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Surf3A__SWIG_7(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Surf3A__SWIG_2(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Surf3A__SWIG_6(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_Surf3A__SWIG_5(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_Surf3A__SWIG_1(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_int(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Surf3A__SWIG_4(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Surf3A__SWIG_0(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Surf3A'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Surf3A(mglGraph *,float,mglData &,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    Surf3A(mglGraph *,float,mglData &,mglData &,mglData &,mglData &,mglData &)\n"
+    "    Surf3A(mglGraph *,float,mglData &,mglData &,char const *)\n"
+    "    Surf3A(mglGraph *,float,mglData &,mglData &)\n"
+    "    Surf3A(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,char const *,int)\n"
+    "    Surf3A(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    Surf3A(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &)\n"
+    "    Surf3A(mglGraph *,mglData &,mglData &,char const *,int)\n"
+    "    Surf3A(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    Surf3A(mglGraph *,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3C__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Surf3C",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3C" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3C" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Surf3C" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Surf3C" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Surf3C" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  (arg1)->Surf3C(arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3C__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Surf3C",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3C" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3C" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Surf3C" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Surf3C" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  (arg1)->Surf3C(arg2,*arg3,*arg4,*arg5,*arg6,*arg7);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3C__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Surf3C",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3C" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3C" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Surf3C(arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3C__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Surf3C",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3C" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Surf3C(arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3C__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  int arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Surf3C",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3C" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3C" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Surf3C" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Surf3C" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  ecode8 = SWIG_AsVal_int(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Surf3C" "', argument " "8"" of type '" "int""'");
+  } 
+  arg8 = static_cast< int >(val8);
+  (arg1)->Surf3C(*arg2,*arg3,*arg4,*arg5,*arg6,(char const *)arg7,arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3C__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Surf3C",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3C" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3C" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Surf3C" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Surf3C" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  (arg1)->Surf3C(*arg2,*arg3,*arg4,*arg5,*arg6,(char const *)arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3C__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Surf3C",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3C" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3C" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Surf3C" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  (arg1)->Surf3C(*arg2,*arg3,*arg4,*arg5,*arg6);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3C__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Surf3C",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3C" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Surf3C" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  (arg1)->Surf3C(*arg2,*arg3,(char const *)arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3C__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Surf3C",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3C" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3C" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Surf3C(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3C__SWIG_9(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Surf3C",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3C" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3C" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->Surf3C(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3C(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[9];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 8); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Surf3C__SWIG_9(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Surf3C__SWIG_8(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Surf3C__SWIG_3(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Surf3C__SWIG_7(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Surf3C__SWIG_2(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Surf3C__SWIG_6(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_Surf3C__SWIG_5(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_Surf3C__SWIG_1(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_int(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Surf3C__SWIG_4(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Surf3C__SWIG_0(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Surf3C'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Surf3C(mglGraph *,float,mglData &,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    Surf3C(mglGraph *,float,mglData &,mglData &,mglData &,mglData &,mglData &)\n"
+    "    Surf3C(mglGraph *,float,mglData &,mglData &,char const *)\n"
+    "    Surf3C(mglGraph *,float,mglData &,mglData &)\n"
+    "    Surf3C(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,char const *,int)\n"
+    "    Surf3C(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    Surf3C(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &)\n"
+    "    Surf3C(mglGraph *,mglData &,mglData &,char const *,int)\n"
+    "    Surf3C(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    Surf3C(mglGraph *,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Flow__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  int arg7 ;
+  bool arg8 ;
+  float arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  bool val8 ;
+  int ecode8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:mglGraph_Flow",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_int(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Flow" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = static_cast< int >(val7);
+  ecode8 = SWIG_AsVal_bool(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Flow" "', argument " "8"" of type '" "bool""'");
+  } 
+  arg8 = static_cast< bool >(val8);
+  ecode9 = SWIG_AsVal_float(obj8, &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Flow" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = static_cast< float >(val9);
+  (arg1)->Flow(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7,arg8,arg9);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Flow__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  int arg7 ;
+  bool arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  bool val8 ;
+  int ecode8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Flow",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_int(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Flow" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = static_cast< int >(val7);
+  ecode8 = SWIG_AsVal_bool(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Flow" "', argument " "8"" of type '" "bool""'");
+  } 
+  arg8 = static_cast< bool >(val8);
+  (arg1)->Flow(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7,arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Flow__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  int arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Flow",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_int(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Flow" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = static_cast< int >(val7);
+  (arg1)->Flow(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Flow__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Flow",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->Flow(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Flow__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Flow",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->Flow(*arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Flow__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  int arg5 ;
+  bool arg6 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  bool val6 ;
+  int ecode6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Flow",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  ecode6 = SWIG_AsVal_bool(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "bool""'");
+  } 
+  arg6 = static_cast< bool >(val6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Flow" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  (arg1)->Flow(*arg2,*arg3,(char const *)arg4,arg5,arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Flow__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  int arg5 ;
+  bool arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  bool val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Flow",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  ecode6 = SWIG_AsVal_bool(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "bool""'");
+  } 
+  arg6 = static_cast< bool >(val6);
+  (arg1)->Flow(*arg2,*arg3,(char const *)arg4,arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Flow__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Flow",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  (arg1)->Flow(*arg2,*arg3,(char const *)arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Flow__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Flow",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Flow(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Flow__SWIG_9(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Flow",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->Flow(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Flow__SWIG_10(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  int arg9 ;
+  bool arg10 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  int val9 ;
+  int ecode9 = 0 ;
+  bool val10 ;
+  int ecode10 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  PyObject * obj9 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOO:mglGraph_Flow",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Flow" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Flow" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  ecode9 = SWIG_AsVal_int(obj8, &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Flow" "', argument " "9"" of type '" "int""'");
+  } 
+  arg9 = static_cast< int >(val9);
+  ecode10 = SWIG_AsVal_bool(obj9, &val10);
+  if (!SWIG_IsOK(ecode10)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode10), "in method '" "mglGraph_Flow" "', argument " "10"" of type '" "bool""'");
+  } 
+  arg10 = static_cast< bool >(val10);
+  (arg1)->Flow(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8,arg9,arg10);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Flow__SWIG_11(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  int arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  int val9 ;
+  int ecode9 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:mglGraph_Flow",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Flow" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Flow" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  ecode9 = SWIG_AsVal_int(obj8, &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Flow" "', argument " "9"" of type '" "int""'");
+  } 
+  arg9 = static_cast< int >(val9);
+  (arg1)->Flow(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8,arg9);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Flow__SWIG_12(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Flow",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Flow" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Flow" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  (arg1)->Flow(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Flow__SWIG_13(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Flow",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Flow" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  (arg1)->Flow(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Flow__SWIG_14(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  bool arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  bool val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Flow",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_int(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = static_cast< int >(val6);
+  ecode7 = SWIG_AsVal_bool(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Flow" "', argument " "7"" of type '" "bool""'");
+  } 
+  arg7 = static_cast< bool >(val7);
+  (arg1)->Flow(*arg2,*arg3,*arg4,(char const *)arg5,arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Flow__SWIG_15(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Flow",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_int(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Flow" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = static_cast< int >(val6);
+  (arg1)->Flow(*arg2,*arg3,*arg4,(char const *)arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Flow__SWIG_16(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Flow",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Flow" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Flow(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Flow__SWIG_17(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Flow",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Flow" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Flow" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Flow(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Flow(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[11];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 10); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Flow__SWIG_9(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Flow__SWIG_17(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Flow__SWIG_8(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Flow__SWIG_4(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Flow__SWIG_16(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Flow__SWIG_7(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Flow__SWIG_3(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Flow__SWIG_15(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_bool(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Flow__SWIG_6(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_Flow__SWIG_13(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Flow__SWIG_2(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_bool(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Flow__SWIG_14(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_bool(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Flow__SWIG_5(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Flow__SWIG_12(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_bool(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Flow__SWIG_1(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_int(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_Flow__SWIG_11(self, args);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_bool(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_Flow__SWIG_0(self, args);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 10) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_int(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      {
+                        int res = SWIG_AsVal_bool(argv[9], NULL);
+                        _v = SWIG_CheckState(res);
+                      }
+                      if (_v) {
+                        return _wrap_mglGraph_Flow__SWIG_10(self, args);
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Flow'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Flow(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *,int,bool,float)\n"
+    "    Flow(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *,int,bool)\n"
+    "    Flow(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *,int)\n"
+    "    Flow(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    Flow(mglGraph *,mglData &,mglData &,mglData &,mglData &)\n"
+    "    Flow(mglGraph *,mglData &,mglData &,char const *,int,bool,float)\n"
+    "    Flow(mglGraph *,mglData &,mglData &,char const *,int,bool)\n"
+    "    Flow(mglGraph *,mglData &,mglData &,char const *,int)\n"
+    "    Flow(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    Flow(mglGraph *,mglData &,mglData &)\n"
+    "    Flow(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,mglData &,char const *,int,bool)\n"
+    "    Flow(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,mglData &,char const *,int)\n"
+    "    Flow(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    Flow(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,mglData &)\n"
+    "    Flow(mglGraph *,mglData &,mglData &,mglData &,char const *,int,bool)\n"
+    "    Flow(mglGraph *,mglData &,mglData &,mglData &,char const *,int)\n"
+    "    Flow(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    Flow(mglGraph *,mglData &,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FlowP__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  mglData *arg8 = 0 ;
+  char *arg9 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  void *argp8 = 0 ;
+  int res8 = 0 ;
+  int res9 ;
+  char *buf9 = 0 ;
+  int alloc9 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:mglGraph_FlowP",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FlowP" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FlowP" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FlowP" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FlowP" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FlowP" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  res8 = SWIG_ConvertPtr(obj7, &argp8, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_FlowP" "', argument " "8"" of type '" "mglData &""'"); 
+  }
+  if (!argp8) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "8"" of type '" "mglData &""'"); 
+  }
+  arg8 = reinterpret_cast< mglData * >(argp8);
+  res9 = SWIG_AsCharPtrAndSize(obj8, &buf9, NULL, &alloc9);
+  if (!SWIG_IsOK(res9)) {
+    SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "mglGraph_FlowP" "', argument " "9"" of type '" "char const *""'");
+  }
+  arg9 = reinterpret_cast< char * >(buf9);
+  (arg1)->FlowP(arg2,arg3,arg4,*arg5,*arg6,*arg7,*arg8,(char const *)arg9);
+  resultobj = SWIG_Py_Void();
+  if (alloc9 == SWIG_NEWOBJ) delete[] buf9;
+  return resultobj;
+fail:
+  if (alloc9 == SWIG_NEWOBJ) delete[] buf9;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FlowP__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  mglData *arg8 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  void *argp8 = 0 ;
+  int res8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_FlowP",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FlowP" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FlowP" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FlowP" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FlowP" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FlowP" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  res8 = SWIG_ConvertPtr(obj7, &argp8, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_FlowP" "', argument " "8"" of type '" "mglData &""'"); 
+  }
+  if (!argp8) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "8"" of type '" "mglData &""'"); 
+  }
+  arg8 = reinterpret_cast< mglData * >(argp8);
+  (arg1)->FlowP(arg2,arg3,arg4,*arg5,*arg6,*arg7,*arg8);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FlowP__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_FlowP",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FlowP" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FlowP" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FlowP" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FlowP" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FlowP" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  (arg1)->FlowP(arg2,arg3,arg4,*arg5,*arg6,(char const *)arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FlowP__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_FlowP",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FlowP" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FlowP" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FlowP" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FlowP" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  (arg1)->FlowP(arg2,arg3,arg4,*arg5,*arg6);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FlowP__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  mglData *arg8 = 0 ;
+  mglData *arg9 = 0 ;
+  mglData *arg10 = 0 ;
+  char *arg11 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  void *argp8 = 0 ;
+  int res8 = 0 ;
+  void *argp9 = 0 ;
+  int res9 = 0 ;
+  void *argp10 = 0 ;
+  int res10 = 0 ;
+  int res11 ;
+  char *buf11 = 0 ;
+  int alloc11 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  PyObject * obj9 = 0 ;
+  PyObject * obj10 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOOO:mglGraph_FlowP",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9,&obj10)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FlowP" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FlowP" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FlowP" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FlowP" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FlowP" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  res8 = SWIG_ConvertPtr(obj7, &argp8, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_FlowP" "', argument " "8"" of type '" "mglData &""'"); 
+  }
+  if (!argp8) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "8"" of type '" "mglData &""'"); 
+  }
+  arg8 = reinterpret_cast< mglData * >(argp8);
+  res9 = SWIG_ConvertPtr(obj8, &argp9, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res9)) {
+    SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "mglGraph_FlowP" "', argument " "9"" of type '" "mglData &""'"); 
+  }
+  if (!argp9) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "9"" of type '" "mglData &""'"); 
+  }
+  arg9 = reinterpret_cast< mglData * >(argp9);
+  res10 = SWIG_ConvertPtr(obj9, &argp10, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res10)) {
+    SWIG_exception_fail(SWIG_ArgError(res10), "in method '" "mglGraph_FlowP" "', argument " "10"" of type '" "mglData &""'"); 
+  }
+  if (!argp10) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "10"" of type '" "mglData &""'"); 
+  }
+  arg10 = reinterpret_cast< mglData * >(argp10);
+  res11 = SWIG_AsCharPtrAndSize(obj10, &buf11, NULL, &alloc11);
+  if (!SWIG_IsOK(res11)) {
+    SWIG_exception_fail(SWIG_ArgError(res11), "in method '" "mglGraph_FlowP" "', argument " "11"" of type '" "char const *""'");
+  }
+  arg11 = reinterpret_cast< char * >(buf11);
+  (arg1)->FlowP(arg2,arg3,arg4,*arg5,*arg6,*arg7,*arg8,*arg9,*arg10,(char const *)arg11);
+  resultobj = SWIG_Py_Void();
+  if (alloc11 == SWIG_NEWOBJ) delete[] buf11;
+  return resultobj;
+fail:
+  if (alloc11 == SWIG_NEWOBJ) delete[] buf11;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FlowP__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  mglData *arg8 = 0 ;
+  mglData *arg9 = 0 ;
+  mglData *arg10 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  void *argp8 = 0 ;
+  int res8 = 0 ;
+  void *argp9 = 0 ;
+  int res9 = 0 ;
+  void *argp10 = 0 ;
+  int res10 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  PyObject * obj9 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOO:mglGraph_FlowP",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FlowP" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FlowP" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FlowP" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FlowP" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FlowP" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  res8 = SWIG_ConvertPtr(obj7, &argp8, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_FlowP" "', argument " "8"" of type '" "mglData &""'"); 
+  }
+  if (!argp8) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "8"" of type '" "mglData &""'"); 
+  }
+  arg8 = reinterpret_cast< mglData * >(argp8);
+  res9 = SWIG_ConvertPtr(obj8, &argp9, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res9)) {
+    SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "mglGraph_FlowP" "', argument " "9"" of type '" "mglData &""'"); 
+  }
+  if (!argp9) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "9"" of type '" "mglData &""'"); 
+  }
+  arg9 = reinterpret_cast< mglData * >(argp9);
+  res10 = SWIG_ConvertPtr(obj9, &argp10, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res10)) {
+    SWIG_exception_fail(SWIG_ArgError(res10), "in method '" "mglGraph_FlowP" "', argument " "10"" of type '" "mglData &""'"); 
+  }
+  if (!argp10) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "10"" of type '" "mglData &""'"); 
+  }
+  arg10 = reinterpret_cast< mglData * >(argp10);
+  (arg1)->FlowP(arg2,arg3,arg4,*arg5,*arg6,*arg7,*arg8,*arg9,*arg10);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FlowP__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_FlowP",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FlowP" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FlowP" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FlowP" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FlowP" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FlowP" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_FlowP" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  (arg1)->FlowP(arg2,arg3,arg4,*arg5,*arg6,*arg7,(char const *)arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FlowP__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_FlowP",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FlowP" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_FlowP" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_FlowP" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_FlowP" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FlowP" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FlowP" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  (arg1)->FlowP(arg2,arg3,arg4,*arg5,*arg6,*arg7);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FlowP(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[12];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 11); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_FlowP__SWIG_3(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_FlowP__SWIG_7(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_FlowP__SWIG_2(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  void *vptr = 0;
+                  int res = SWIG_ConvertPtr(argv[7], &vptr, SWIGTYPE_p_mglData, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_FlowP__SWIG_1(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_FlowP__SWIG_6(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  void *vptr = 0;
+                  int res = SWIG_ConvertPtr(argv[7], &vptr, SWIGTYPE_p_mglData, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    int res = SWIG_AsCharPtrAndSize(argv[8], 0, NULL, 0);
+                    _v = SWIG_CheckState(res);
+                    if (_v) {
+                      return _wrap_mglGraph_FlowP__SWIG_0(self, args);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 10) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  void *vptr = 0;
+                  int res = SWIG_ConvertPtr(argv[7], &vptr, SWIGTYPE_p_mglData, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    void *vptr = 0;
+                    int res = SWIG_ConvertPtr(argv[8], &vptr, SWIGTYPE_p_mglData, 0);
+                    _v = SWIG_CheckState(res);
+                    if (_v) {
+                      void *vptr = 0;
+                      int res = SWIG_ConvertPtr(argv[9], &vptr, SWIGTYPE_p_mglData, 0);
+                      _v = SWIG_CheckState(res);
+                      if (_v) {
+                        return _wrap_mglGraph_FlowP__SWIG_5(self, args);
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 11) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  void *vptr = 0;
+                  int res = SWIG_ConvertPtr(argv[7], &vptr, SWIGTYPE_p_mglData, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    void *vptr = 0;
+                    int res = SWIG_ConvertPtr(argv[8], &vptr, SWIGTYPE_p_mglData, 0);
+                    _v = SWIG_CheckState(res);
+                    if (_v) {
+                      void *vptr = 0;
+                      int res = SWIG_ConvertPtr(argv[9], &vptr, SWIGTYPE_p_mglData, 0);
+                      _v = SWIG_CheckState(res);
+                      if (_v) {
+                        int res = SWIG_AsCharPtrAndSize(argv[10], 0, NULL, 0);
+                        _v = SWIG_CheckState(res);
+                        if (_v) {
+                          return _wrap_mglGraph_FlowP__SWIG_4(self, args);
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_FlowP'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    FlowP(mglGraph *,float,float,float,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    FlowP(mglGraph *,float,float,float,mglData &,mglData &,mglData &,mglData &)\n"
+    "    FlowP(mglGraph *,float,float,float,mglData &,mglData &,char const *)\n"
+    "    FlowP(mglGraph *,float,float,float,mglData &,mglData &)\n"
+    "    FlowP(mglGraph *,float,float,float,mglData &,mglData &,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    FlowP(mglGraph *,float,float,float,mglData &,mglData &,mglData &,mglData &,mglData &,mglData &)\n"
+    "    FlowP(mglGraph *,float,float,float,mglData &,mglData &,mglData &,char const *)\n"
+    "    FlowP(mglGraph *,float,float,float,mglData &,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Grad__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  int arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Grad",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grad" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Grad" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Grad" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_int(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Grad" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = static_cast< int >(val7);
+  (arg1)->Grad((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(char const *)arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Grad__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Grad",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grad" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Grad" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Grad" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->Grad((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Grad__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Grad",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grad" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Grad" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->Grad((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Grad__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  mreal arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  void *argp7 ;
+  int res7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Grad",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grad" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Grad" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_int(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Grad" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = static_cast< int >(val6);
+  {
+    res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mreal,  0  | 0);
+    if (!SWIG_IsOK(res7)) {
+      SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Grad" "', argument " "7"" of type '" "mreal""'"); 
+    }  
+    if (!argp7) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "7"" of type '" "mreal""'");
+    } else {
+      mreal * temp = reinterpret_cast< mreal * >(argp7);
+      arg7 = *temp;
+      if (SWIG_IsNewObj(res7)) delete temp;
+    }
+  }
+  (arg1)->Grad((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(char const *)arg5,arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Grad__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Grad",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grad" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Grad" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_int(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Grad" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = static_cast< int >(val6);
+  (arg1)->Grad((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(char const *)arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Grad__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Grad",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grad" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Grad" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Grad((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Grad__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Grad",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grad" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Grad((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Grad__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  mreal arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  void *argp5 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Grad",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grad" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  {
+    res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mreal,  0  | 0);
+    if (!SWIG_IsOK(res5)) {
+      SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Grad" "', argument " "5"" of type '" "mreal""'"); 
+    }  
+    if (!argp5) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "5"" of type '" "mreal""'");
+    } else {
+      mreal * temp = reinterpret_cast< mreal * >(argp5);
+      arg5 = *temp;
+      if (SWIG_IsNewObj(res5)) delete temp;
+    }
+  }
+  (arg1)->Grad((mglData const &)*arg2,(char const *)arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Grad__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Grad",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grad" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Grad" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->Grad((mglData const &)*arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Grad__SWIG_9(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Grad",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grad" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grad" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Grad((mglData const &)*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Grad__SWIG_10(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Grad",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grad" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grad" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->Grad((mglData const &)*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Grad(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[8];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 7); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Grad__SWIG_10(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Grad__SWIG_9(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Grad__SWIG_6(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Grad__SWIG_8(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_ConvertPtr(argv[4], 0, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Grad__SWIG_2(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Grad__SWIG_5(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_ConvertPtr(argv[4], 0, SWIGTYPE_p_mreal, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Grad__SWIG_7(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_ConvertPtr(argv[4], 0, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Grad__SWIG_1(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Grad__SWIG_4(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_ConvertPtr(argv[4], 0, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Grad__SWIG_0(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_ConvertPtr(argv[6], 0, SWIGTYPE_p_mreal, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_Grad__SWIG_3(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Grad'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Grad(mglGraph *,mglData const &,mglData const &,mglData const &,mglData const &,char const *,int)\n"
+    "    Grad(mglGraph *,mglData const &,mglData const &,mglData const &,mglData const &,char const *)\n"
+    "    Grad(mglGraph *,mglData const &,mglData const &,mglData const &,mglData const &)\n"
+    "    Grad(mglGraph *,mglData const &,mglData const &,mglData const &,char const *,int,mreal)\n"
+    "    Grad(mglGraph *,mglData const &,mglData const &,mglData const &,char const *,int)\n"
+    "    Grad(mglGraph *,mglData const &,mglData const &,mglData const &,char const *)\n"
+    "    Grad(mglGraph *,mglData const &,mglData const &,mglData const &)\n"
+    "    Grad(mglGraph *,mglData const &,char const *,int,mreal)\n"
+    "    Grad(mglGraph *,mglData const &,char const *,int)\n"
+    "    Grad(mglGraph *,mglData const &,char const *)\n"
+    "    Grad(mglGraph *,mglData const &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Pipe__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  int arg8 ;
+  bool arg9 ;
+  float arg10 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
+  bool val9 ;
+  int ecode9 = 0 ;
+  float val10 ;
+  int ecode10 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  PyObject * obj9 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOO:mglGraph_Pipe",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  ecode8 = SWIG_AsVal_int(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Pipe" "', argument " "8"" of type '" "int""'");
+  } 
+  arg8 = static_cast< int >(val8);
+  ecode9 = SWIG_AsVal_bool(obj8, &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Pipe" "', argument " "9"" of type '" "bool""'");
+  } 
+  arg9 = static_cast< bool >(val9);
+  ecode10 = SWIG_AsVal_float(obj9, &val10);
+  if (!SWIG_IsOK(ecode10)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode10), "in method '" "mglGraph_Pipe" "', argument " "10"" of type '" "float""'");
+  } 
+  arg10 = static_cast< float >(val10);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7,arg8,arg9,arg10);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Pipe__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  int arg8 ;
+  bool arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
+  bool val9 ;
+  int ecode9 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:mglGraph_Pipe",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  ecode8 = SWIG_AsVal_int(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Pipe" "', argument " "8"" of type '" "int""'");
+  } 
+  arg8 = static_cast< int >(val8);
+  ecode9 = SWIG_AsVal_bool(obj8, &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Pipe" "', argument " "9"" of type '" "bool""'");
+  } 
+  arg9 = static_cast< bool >(val9);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7,arg8,arg9);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Pipe__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  int arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Pipe",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  ecode8 = SWIG_AsVal_int(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Pipe" "', argument " "8"" of type '" "int""'");
+  } 
+  arg8 = static_cast< int >(val8);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7,arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Pipe__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Pipe",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Pipe__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Pipe",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Pipe__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Pipe",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Pipe__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  int arg6 ;
+  bool arg7 ;
+  float arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  bool val7 ;
+  int ecode7 = 0 ;
+  float val8 ;
+  int ecode8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Pipe",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_int(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = static_cast< int >(val6);
+  ecode7 = SWIG_AsVal_bool(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "bool""'");
+  } 
+  arg7 = static_cast< bool >(val7);
+  ecode8 = SWIG_AsVal_float(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Pipe" "', argument " "8"" of type '" "float""'");
+  } 
+  arg8 = static_cast< float >(val8);
+  (arg1)->Pipe(*arg2,*arg3,(char const *)arg4,arg5,arg6,arg7,arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Pipe__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  int arg6 ;
+  bool arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  bool val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Pipe",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_int(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = static_cast< int >(val6);
+  ecode7 = SWIG_AsVal_bool(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "bool""'");
+  } 
+  arg7 = static_cast< bool >(val7);
+  (arg1)->Pipe(*arg2,*arg3,(char const *)arg4,arg5,arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Pipe__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Pipe",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_int(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = static_cast< int >(val6);
+  (arg1)->Pipe(*arg2,*arg3,(char const *)arg4,arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Pipe__SWIG_9(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Pipe",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->Pipe(*arg2,*arg3,(char const *)arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Pipe__SWIG_10(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Pipe",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Pipe(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Pipe__SWIG_11(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Pipe",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->Pipe(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Pipe__SWIG_12(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  float arg9 ;
+  int arg10 ;
+  bool arg11 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  int val10 ;
+  int ecode10 = 0 ;
+  bool val11 ;
+  int ecode11 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  PyObject * obj9 = 0 ;
+  PyObject * obj10 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOOO:mglGraph_Pipe",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9,&obj10)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Pipe" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  ecode9 = SWIG_AsVal_float(obj8, &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Pipe" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = static_cast< float >(val9);
+  ecode10 = SWIG_AsVal_int(obj9, &val10);
+  if (!SWIG_IsOK(ecode10)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode10), "in method '" "mglGraph_Pipe" "', argument " "10"" of type '" "int""'");
+  } 
+  arg10 = static_cast< int >(val10);
+  ecode11 = SWIG_AsVal_bool(obj10, &val11);
+  if (!SWIG_IsOK(ecode11)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode11), "in method '" "mglGraph_Pipe" "', argument " "11"" of type '" "bool""'");
+  } 
+  arg11 = static_cast< bool >(val11);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8,arg9,arg10,arg11);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Pipe__SWIG_13(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  float arg9 ;
+  int arg10 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  int val10 ;
+  int ecode10 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  PyObject * obj9 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOO:mglGraph_Pipe",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Pipe" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  ecode9 = SWIG_AsVal_float(obj8, &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Pipe" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = static_cast< float >(val9);
+  ecode10 = SWIG_AsVal_int(obj9, &val10);
+  if (!SWIG_IsOK(ecode10)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode10), "in method '" "mglGraph_Pipe" "', argument " "10"" of type '" "int""'");
+  } 
+  arg10 = static_cast< int >(val10);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8,arg9,arg10);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Pipe__SWIG_14(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  float arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  float val9 ;
+  int ecode9 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:mglGraph_Pipe",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Pipe" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  ecode9 = SWIG_AsVal_float(obj8, &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Pipe" "', argument " "9"" of type '" "float""'");
+  } 
+  arg9 = static_cast< float >(val9);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8,arg9);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Pipe__SWIG_15(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Pipe",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Pipe" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Pipe__SWIG_16(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Pipe",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Pipe__SWIG_17(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  float arg6 ;
+  int arg7 ;
+  bool arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  bool val8 ;
+  int ecode8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Pipe",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  ecode7 = SWIG_AsVal_int(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = static_cast< int >(val7);
+  ecode8 = SWIG_AsVal_bool(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Pipe" "', argument " "8"" of type '" "bool""'");
+  } 
+  arg8 = static_cast< bool >(val8);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,(char const *)arg5,arg6,arg7,arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Pipe__SWIG_18(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  float arg6 ;
+  int arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Pipe",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  ecode7 = SWIG_AsVal_int(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Pipe" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = static_cast< int >(val7);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,(char const *)arg5,arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Pipe__SWIG_19(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Pipe",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Pipe" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,(char const *)arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Pipe__SWIG_20(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Pipe",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Pipe" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Pipe(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Pipe__SWIG_21(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Pipe",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Pipe" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Pipe" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Pipe(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Pipe(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[12];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 11); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Pipe__SWIG_11(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Pipe__SWIG_21(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Pipe__SWIG_10(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Pipe__SWIG_5(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Pipe__SWIG_20(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Pipe__SWIG_9(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Pipe__SWIG_4(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Pipe__SWIG_19(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Pipe__SWIG_8(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_Pipe__SWIG_16(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Pipe__SWIG_3(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Pipe__SWIG_18(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_bool(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Pipe__SWIG_7(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Pipe__SWIG_15(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_int(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Pipe__SWIG_2(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_bool(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Pipe__SWIG_17(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_bool(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_float(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Pipe__SWIG_6(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_Pipe__SWIG_14(self, args);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_int(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_bool(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_Pipe__SWIG_1(self, args);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 10) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      {
+                        int res = SWIG_AsVal_int(argv[9], NULL);
+                        _v = SWIG_CheckState(res);
+                      }
+                      if (_v) {
+                        return _wrap_mglGraph_Pipe__SWIG_13(self, args);
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 10) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_int(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_bool(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      {
+                        int res = SWIG_AsVal_float(argv[9], NULL);
+                        _v = SWIG_CheckState(res);
+                      }
+                      if (_v) {
+                        return _wrap_mglGraph_Pipe__SWIG_0(self, args);
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 11) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_float(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      {
+                        int res = SWIG_AsVal_int(argv[9], NULL);
+                        _v = SWIG_CheckState(res);
+                      }
+                      if (_v) {
+                        {
+                          int res = SWIG_AsVal_bool(argv[10], NULL);
+                          _v = SWIG_CheckState(res);
+                        }
+                        if (_v) {
+                          return _wrap_mglGraph_Pipe__SWIG_12(self, args);
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Pipe'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Pipe(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *,float,int,bool,float)\n"
+    "    Pipe(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *,float,int,bool)\n"
+    "    Pipe(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *,float,int)\n"
+    "    Pipe(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *,float)\n"
+    "    Pipe(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    Pipe(mglGraph *,mglData &,mglData &,mglData &,mglData &)\n"
+    "    Pipe(mglGraph *,mglData &,mglData &,char const *,float,int,bool,float)\n"
+    "    Pipe(mglGraph *,mglData &,mglData &,char const *,float,int,bool)\n"
+    "    Pipe(mglGraph *,mglData &,mglData &,char const *,float,int)\n"
+    "    Pipe(mglGraph *,mglData &,mglData &,char const *,float)\n"
+    "    Pipe(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    Pipe(mglGraph *,mglData &,mglData &)\n"
+    "    Pipe(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,mglData &,char const *,float,int,bool)\n"
+    "    Pipe(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,mglData &,char const *,float,int)\n"
+    "    Pipe(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,mglData &,char const *,float)\n"
+    "    Pipe(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    Pipe(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,mglData &)\n"
+    "    Pipe(mglGraph *,mglData &,mglData &,mglData &,char const *,float,int,bool)\n"
+    "    Pipe(mglGraph *,mglData &,mglData &,mglData &,char const *,float,int)\n"
+    "    Pipe(mglGraph *,mglData &,mglData &,mglData &,char const *,float)\n"
+    "    Pipe(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    Pipe(mglGraph *,mglData &,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Grid3__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char arg6 ;
+  int arg7 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  char val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Grid3",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grid3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grid3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grid3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Grid3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Grid3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  ecode6 = SWIG_AsVal_char(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Grid3" "', argument " "6"" of type '" "char""'");
+  } 
+  arg6 = static_cast< char >(val6);
+  ecode7 = SWIG_AsVal_int(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Grid3" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = static_cast< int >(val7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Grid3" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  (arg1)->Grid3(*arg2,*arg3,*arg4,*arg5,arg6,arg7,(char const *)arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Grid3__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char arg6 ;
+  int arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  char val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Grid3",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grid3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grid3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Grid3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Grid3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Grid3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  ecode6 = SWIG_AsVal_char(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Grid3" "', argument " "6"" of type '" "char""'");
+  } 
+  arg6 = static_cast< char >(val6);
+  ecode7 = SWIG_AsVal_int(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Grid3" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = static_cast< int >(val7);
+  (arg1)->Grid3(*arg2,*arg3,*arg4,*arg5,arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Grid3__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char arg3 ;
+  int arg4 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  char val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Grid3",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grid3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grid3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  ecode3 = SWIG_AsVal_char(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Grid3" "', argument " "3"" of type '" "char""'");
+  } 
+  arg3 = static_cast< char >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Grid3" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Grid3" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Grid3(*arg2,arg3,arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Grid3__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  char val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Grid3",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Grid3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Grid3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Grid3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  ecode3 = SWIG_AsVal_char(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Grid3" "', argument " "3"" of type '" "char""'");
+  } 
+  arg3 = static_cast< char >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Grid3" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->Grid3(*arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Grid3(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[9];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 8); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_char(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Grid3__SWIG_3(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_char(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Grid3__SWIG_2(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_char(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Grid3__SWIG_1(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_char(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Grid3__SWIG_0(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Grid3'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Grid3(mglGraph *,mglData &,mglData &,mglData &,mglData &,char,int,char const *)\n"
+    "    Grid3(mglGraph *,mglData &,mglData &,mglData &,mglData &,char,int)\n"
+    "    Grid3(mglGraph *,mglData &,char,int,char const *)\n"
+    "    Grid3(mglGraph *,mglData &,char,int)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_GridA__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_GridA",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_GridA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_GridA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_GridA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_GridA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_GridA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_GridA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_GridA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_GridA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_GridA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_GridA" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->GridA(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_GridA__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_GridA",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_GridA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_GridA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_GridA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_GridA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_GridA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_GridA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_GridA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_GridA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_GridA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->GridA(*arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_GridA__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_GridA",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_GridA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_GridA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_GridA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_GridA" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->GridA(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_GridA__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_GridA",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_GridA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_GridA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_GridA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->GridA(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_GridA(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_GridA__SWIG_3(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_GridA__SWIG_2(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_GridA__SWIG_1(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_GridA__SWIG_0(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_GridA'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    GridA(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    GridA(mglGraph *,mglData &,mglData &,mglData &,mglData &)\n"
+    "    GridA(mglGraph *,mglData &,char const *)\n"
+    "    GridA(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Dens3__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char arg6 ;
+  int arg7 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  char val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Dens3",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dens3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dens3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dens3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Dens3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Dens3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  ecode6 = SWIG_AsVal_char(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Dens3" "', argument " "6"" of type '" "char""'");
+  } 
+  arg6 = static_cast< char >(val6);
+  ecode7 = SWIG_AsVal_int(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Dens3" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = static_cast< int >(val7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Dens3" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  (arg1)->Dens3(*arg2,*arg3,*arg4,*arg5,arg6,arg7,(char const *)arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Dens3__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char arg6 ;
+  int arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  char val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Dens3",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dens3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dens3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dens3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Dens3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Dens3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  ecode6 = SWIG_AsVal_char(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Dens3" "', argument " "6"" of type '" "char""'");
+  } 
+  arg6 = static_cast< char >(val6);
+  ecode7 = SWIG_AsVal_int(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Dens3" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = static_cast< int >(val7);
+  (arg1)->Dens3(*arg2,*arg3,*arg4,*arg5,arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Dens3__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char arg3 ;
+  int arg4 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  char val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Dens3",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dens3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dens3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  ecode3 = SWIG_AsVal_char(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Dens3" "', argument " "3"" of type '" "char""'");
+  } 
+  arg3 = static_cast< char >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Dens3" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Dens3" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Dens3(*arg2,arg3,arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Dens3__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  char val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Dens3",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dens3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dens3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dens3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  ecode3 = SWIG_AsVal_char(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Dens3" "', argument " "3"" of type '" "char""'");
+  } 
+  arg3 = static_cast< char >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Dens3" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->Dens3(*arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Dens3(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[9];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 8); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_char(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Dens3__SWIG_3(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_char(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Dens3__SWIG_2(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_char(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Dens3__SWIG_1(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_char(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Dens3__SWIG_0(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Dens3'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Dens3(mglGraph *,mglData &,mglData &,mglData &,mglData &,char,int,char const *)\n"
+    "    Dens3(mglGraph *,mglData &,mglData &,mglData &,mglData &,char,int)\n"
+    "    Dens3(mglGraph *,mglData &,char,int,char const *)\n"
+    "    Dens3(mglGraph *,mglData &,char,int)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_DensA__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_DensA",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_DensA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_DensA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_DensA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_DensA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_DensA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_DensA" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->DensA(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_DensA__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_DensA",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_DensA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_DensA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_DensA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_DensA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_DensA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->DensA(*arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_DensA__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_DensA",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_DensA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_DensA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_DensA" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->DensA(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_DensA__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_DensA",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_DensA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_DensA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->DensA(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_DensA(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_DensA__SWIG_3(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_DensA__SWIG_2(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_DensA__SWIG_1(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_DensA__SWIG_0(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_DensA'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    DensA(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    DensA(mglGraph *,mglData &,mglData &,mglData &,mglData &)\n"
+    "    DensA(mglGraph *,mglData &,char const *)\n"
+    "    DensA(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Surf3",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Surf3" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Surf3" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  (arg1)->Surf3(arg2,*arg3,*arg4,*arg5,*arg6,(char const *)arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Surf3",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Surf3" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  (arg1)->Surf3(arg2,*arg3,*arg4,*arg5,*arg6);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Surf3",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->Surf3(arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Surf3",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->Surf3(arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  int arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Surf3",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Surf3" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_int(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Surf3" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = static_cast< int >(val7);
+  (arg1)->Surf3(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Surf3",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Surf3" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->Surf3(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Surf3",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Surf3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Surf3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->Surf3(*arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Surf3",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Surf3" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->Surf3(*arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Surf3",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Surf3" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Surf3(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3__SWIG_9(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Surf3",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Surf3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Surf3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->Surf3(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Surf3(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[8];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 7); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Surf3__SWIG_9(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Surf3__SWIG_8(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Surf3__SWIG_3(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Surf3__SWIG_7(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Surf3__SWIG_2(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Surf3__SWIG_6(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Surf3__SWIG_5(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Surf3__SWIG_1(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Surf3__SWIG_4(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_Surf3__SWIG_0(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Surf3'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Surf3(mglGraph *,float,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    Surf3(mglGraph *,float,mglData &,mglData &,mglData &,mglData &)\n"
+    "    Surf3(mglGraph *,float,mglData &,char const *)\n"
+    "    Surf3(mglGraph *,float,mglData &)\n"
+    "    Surf3(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *,int)\n"
+    "    Surf3(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    Surf3(mglGraph *,mglData &,mglData &,mglData &,mglData &)\n"
+    "    Surf3(mglGraph *,mglData &,char const *,int)\n"
+    "    Surf3(mglGraph *,mglData &,char const *)\n"
+    "    Surf3(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cloud__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Cloud",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cloud" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cloud" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cloud" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cloud" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cloud" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Cloud" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Cloud" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  (arg1)->Cloud(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cloud__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Cloud",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cloud" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cloud" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cloud" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cloud" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cloud" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Cloud" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->Cloud(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cloud__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Cloud",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cloud" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cloud" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cloud" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cloud" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cloud" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->Cloud(*arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cloud__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Cloud",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cloud" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cloud" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cloud" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Cloud" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  (arg1)->Cloud(*arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cloud__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Cloud",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cloud" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cloud" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cloud" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Cloud(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cloud__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_Cloud",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cloud" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cloud" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cloud" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->Cloud(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cloud(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[8];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 7); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_Cloud__SWIG_5(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Cloud__SWIG_4(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Cloud__SWIG_3(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Cloud__SWIG_2(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Cloud__SWIG_1(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Cloud__SWIG_0(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Cloud'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Cloud(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *,float)\n"
+    "    Cloud(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    Cloud(mglGraph *,mglData &,mglData &,mglData &,mglData &)\n"
+    "    Cloud(mglGraph *,mglData &,char const *,float)\n"
+    "    Cloud(mglGraph *,mglData &,char const *)\n"
+    "    Cloud(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cont3__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char arg7 ;
+  int arg8 ;
+  char *arg9 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  char val7 ;
+  int ecode7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
+  int res9 ;
+  char *buf9 = 0 ;
+  int alloc9 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:mglGraph_Cont3",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cont3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Cont3" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  ecode7 = SWIG_AsVal_char(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Cont3" "', argument " "7"" of type '" "char""'");
+  } 
+  arg7 = static_cast< char >(val7);
+  ecode8 = SWIG_AsVal_int(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Cont3" "', argument " "8"" of type '" "int""'");
+  } 
+  arg8 = static_cast< int >(val8);
+  res9 = SWIG_AsCharPtrAndSize(obj8, &buf9, NULL, &alloc9);
+  if (!SWIG_IsOK(res9)) {
+    SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "mglGraph_Cont3" "', argument " "9"" of type '" "char const *""'");
+  }
+  arg9 = reinterpret_cast< char * >(buf9);
+  (arg1)->Cont3(*arg2,*arg3,*arg4,*arg5,*arg6,arg7,arg8,(char const *)arg9);
+  resultobj = SWIG_Py_Void();
+  if (alloc9 == SWIG_NEWOBJ) delete[] buf9;
+  return resultobj;
+fail:
+  if (alloc9 == SWIG_NEWOBJ) delete[] buf9;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cont3__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char arg7 ;
+  int arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  char val7 ;
+  int ecode7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Cont3",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cont3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Cont3" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  ecode7 = SWIG_AsVal_char(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Cont3" "', argument " "7"" of type '" "char""'");
+  } 
+  arg7 = static_cast< char >(val7);
+  ecode8 = SWIG_AsVal_int(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Cont3" "', argument " "8"" of type '" "int""'");
+  } 
+  arg8 = static_cast< int >(val8);
+  (arg1)->Cont3(*arg2,*arg3,*arg4,*arg5,*arg6,arg7,arg8);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cont3__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char arg4 ;
+  int arg5 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  char val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Cont3",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  ecode4 = SWIG_AsVal_char(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "char""'");
+  } 
+  arg4 = static_cast< char >(val4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Cont3" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Cont3" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->Cont3(*arg2,*arg3,arg4,arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cont3__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  char val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Cont3",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  ecode4 = SWIG_AsVal_char(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "char""'");
+  } 
+  arg4 = static_cast< char >(val4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_Cont3" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  (arg1)->Cont3(*arg2,*arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cont3__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char arg6 ;
+  int arg7 ;
+  char *arg8 = (char *) 0 ;
+  int arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  char val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  int val9 ;
+  int ecode9 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:mglGraph_Cont3",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cont3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  ecode6 = SWIG_AsVal_char(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Cont3" "', argument " "6"" of type '" "char""'");
+  } 
+  arg6 = static_cast< char >(val6);
+  ecode7 = SWIG_AsVal_int(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Cont3" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = static_cast< int >(val7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Cont3" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  ecode9 = SWIG_AsVal_int(obj8, &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Cont3" "', argument " "9"" of type '" "int""'");
+  } 
+  arg9 = static_cast< int >(val9);
+  (arg1)->Cont3(*arg2,*arg3,*arg4,*arg5,arg6,arg7,(char const *)arg8,arg9);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cont3__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char arg6 ;
+  int arg7 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  char val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Cont3",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cont3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  ecode6 = SWIG_AsVal_char(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Cont3" "', argument " "6"" of type '" "char""'");
+  } 
+  arg6 = static_cast< char >(val6);
+  ecode7 = SWIG_AsVal_int(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Cont3" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = static_cast< int >(val7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Cont3" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  (arg1)->Cont3(*arg2,*arg3,*arg4,*arg5,arg6,arg7,(char const *)arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cont3__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char arg6 ;
+  int arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  char val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Cont3",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cont3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  ecode6 = SWIG_AsVal_char(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Cont3" "', argument " "6"" of type '" "char""'");
+  } 
+  arg6 = static_cast< char >(val6);
+  ecode7 = SWIG_AsVal_int(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Cont3" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = static_cast< int >(val7);
+  (arg1)->Cont3(*arg2,*arg3,*arg4,*arg5,arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cont3__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char arg3 ;
+  int arg4 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  char val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Cont3",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  ecode3 = SWIG_AsVal_char(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "char""'");
+  } 
+  arg3 = static_cast< char >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cont3" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_int(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Cont3" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = static_cast< int >(val6);
+  (arg1)->Cont3(*arg2,arg3,arg4,(char const *)arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cont3__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char arg3 ;
+  int arg4 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  char val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Cont3",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  ecode3 = SWIG_AsVal_char(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "char""'");
+  } 
+  arg3 = static_cast< char >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Cont3" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Cont3(*arg2,arg3,arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cont3__SWIG_9(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  char val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Cont3",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Cont3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Cont3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  ecode3 = SWIG_AsVal_char(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_Cont3" "', argument " "3"" of type '" "char""'");
+  } 
+  arg3 = static_cast< char >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_Cont3" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->Cont3(*arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Cont3(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[10];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 9); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_char(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_Cont3__SWIG_9(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_char(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_Cont3__SWIG_3(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_char(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Cont3__SWIG_8(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_char(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Cont3__SWIG_2(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_char(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Cont3__SWIG_7(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_char(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Cont3__SWIG_6(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_char(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_int(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Cont3__SWIG_1(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_char(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Cont3__SWIG_5(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_char(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_int(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    int res = SWIG_AsCharPtrAndSize(argv[8], 0, NULL, 0);
+                    _v = SWIG_CheckState(res);
+                    if (_v) {
+                      return _wrap_mglGraph_Cont3__SWIG_0(self, args);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_char(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_int(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_Cont3__SWIG_4(self, args);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Cont3'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Cont3(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,char,int,char const *)\n"
+    "    Cont3(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,char,int)\n"
+    "    Cont3(mglGraph *,mglData &,mglData &,char,int,char const *)\n"
+    "    Cont3(mglGraph *,mglData &,mglData &,char,int)\n"
+    "    Cont3(mglGraph *,mglData &,mglData &,mglData &,mglData &,char,int,char const *,int)\n"
+    "    Cont3(mglGraph *,mglData &,mglData &,mglData &,mglData &,char,int,char const *)\n"
+    "    Cont3(mglGraph *,mglData &,mglData &,mglData &,mglData &,char,int)\n"
+    "    Cont3(mglGraph *,mglData &,char,int,char const *,int)\n"
+    "    Cont3(mglGraph *,mglData &,char,int,char const *)\n"
+    "    Cont3(mglGraph *,mglData &,char,int)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContA__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  int arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_ContA",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_ContA" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_int(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_ContA" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = static_cast< int >(val7);
+  (arg1)->ContA(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContA__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_ContA",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_ContA" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->ContA(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContA__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_ContA",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->ContA(*arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContA__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_ContA",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContA" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContA" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->ContA(*arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContA__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_ContA",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContA" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->ContA(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContA__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_ContA",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->ContA(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContA(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[8];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 7); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_ContA__SWIG_5(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContA__SWIG_4(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_ContA__SWIG_3(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_ContA__SWIG_2(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_ContA__SWIG_1(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_ContA__SWIG_0(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_ContA'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    ContA(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *,int)\n"
+    "    ContA(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    ContA(mglGraph *,mglData &,mglData &,mglData &,mglData &)\n"
+    "    ContA(mglGraph *,mglData &,char const *,int)\n"
+    "    ContA(mglGraph *,mglData &,char const *)\n"
+    "    ContA(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContF3__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char arg7 ;
+  int arg8 ;
+  char *arg9 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  char val7 ;
+  int ecode7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
+  int res9 ;
+  char *buf9 = 0 ;
+  int alloc9 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:mglGraph_ContF3",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContF3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_ContF3" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  ecode7 = SWIG_AsVal_char(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_ContF3" "', argument " "7"" of type '" "char""'");
+  } 
+  arg7 = static_cast< char >(val7);
+  ecode8 = SWIG_AsVal_int(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_ContF3" "', argument " "8"" of type '" "int""'");
+  } 
+  arg8 = static_cast< int >(val8);
+  res9 = SWIG_AsCharPtrAndSize(obj8, &buf9, NULL, &alloc9);
+  if (!SWIG_IsOK(res9)) {
+    SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "mglGraph_ContF3" "', argument " "9"" of type '" "char const *""'");
+  }
+  arg9 = reinterpret_cast< char * >(buf9);
+  (arg1)->ContF3(*arg2,*arg3,*arg4,*arg5,*arg6,arg7,arg8,(char const *)arg9);
+  resultobj = SWIG_Py_Void();
+  if (alloc9 == SWIG_NEWOBJ) delete[] buf9;
+  return resultobj;
+fail:
+  if (alloc9 == SWIG_NEWOBJ) delete[] buf9;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContF3__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char arg7 ;
+  int arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  char val7 ;
+  int ecode7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_ContF3",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContF3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_ContF3" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  ecode7 = SWIG_AsVal_char(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_ContF3" "', argument " "7"" of type '" "char""'");
+  } 
+  arg7 = static_cast< char >(val7);
+  ecode8 = SWIG_AsVal_int(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_ContF3" "', argument " "8"" of type '" "int""'");
+  } 
+  arg8 = static_cast< int >(val8);
+  (arg1)->ContF3(*arg2,*arg3,*arg4,*arg5,*arg6,arg7,arg8);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContF3__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char arg4 ;
+  int arg5 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  char val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_ContF3",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  ecode4 = SWIG_AsVal_char(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "char""'");
+  } 
+  arg4 = static_cast< char >(val4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContF3" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_ContF3" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->ContF3(*arg2,*arg3,arg4,arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContF3__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  char val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_ContF3",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  ecode4 = SWIG_AsVal_char(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "char""'");
+  } 
+  arg4 = static_cast< char >(val4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContF3" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  (arg1)->ContF3(*arg2,*arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContF3__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char arg6 ;
+  int arg7 ;
+  char *arg8 = (char *) 0 ;
+  int arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  char val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  int val9 ;
+  int ecode9 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:mglGraph_ContF3",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContF3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  ecode6 = SWIG_AsVal_char(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_ContF3" "', argument " "6"" of type '" "char""'");
+  } 
+  arg6 = static_cast< char >(val6);
+  ecode7 = SWIG_AsVal_int(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_ContF3" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = static_cast< int >(val7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_ContF3" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  ecode9 = SWIG_AsVal_int(obj8, &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_ContF3" "', argument " "9"" of type '" "int""'");
+  } 
+  arg9 = static_cast< int >(val9);
+  (arg1)->ContF3(*arg2,*arg3,*arg4,*arg5,arg6,arg7,(char const *)arg8,arg9);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContF3__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char arg6 ;
+  int arg7 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  char val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_ContF3",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContF3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  ecode6 = SWIG_AsVal_char(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_ContF3" "', argument " "6"" of type '" "char""'");
+  } 
+  arg6 = static_cast< char >(val6);
+  ecode7 = SWIG_AsVal_int(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_ContF3" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = static_cast< int >(val7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_ContF3" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  (arg1)->ContF3(*arg2,*arg3,*arg4,*arg5,arg6,arg7,(char const *)arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContF3__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char arg6 ;
+  int arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  char val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_ContF3",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContF3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  ecode6 = SWIG_AsVal_char(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_ContF3" "', argument " "6"" of type '" "char""'");
+  } 
+  arg6 = static_cast< char >(val6);
+  ecode7 = SWIG_AsVal_int(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_ContF3" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = static_cast< int >(val7);
+  (arg1)->ContF3(*arg2,*arg3,*arg4,*arg5,arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContF3__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char arg3 ;
+  int arg4 ;
+  char *arg5 = (char *) 0 ;
+  int arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  char val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_ContF3",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  ecode3 = SWIG_AsVal_char(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "char""'");
+  } 
+  arg3 = static_cast< char >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContF3" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_int(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_ContF3" "', argument " "6"" of type '" "int""'");
+  } 
+  arg6 = static_cast< int >(val6);
+  (arg1)->ContF3(*arg2,arg3,arg4,(char const *)arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContF3__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char arg3 ;
+  int arg4 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  char val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_ContF3",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  ecode3 = SWIG_AsVal_char(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "char""'");
+  } 
+  arg3 = static_cast< char >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContF3" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->ContF3(*arg2,arg3,arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContF3__SWIG_9(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char arg3 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  char val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_ContF3",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContF3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContF3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  ecode3 = SWIG_AsVal_char(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_ContF3" "', argument " "3"" of type '" "char""'");
+  } 
+  arg3 = static_cast< char >(val3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContF3" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->ContF3(*arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContF3(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[10];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 9); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_char(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_ContF3__SWIG_9(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_char(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContF3__SWIG_3(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_char(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_ContF3__SWIG_8(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_char(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_ContF3__SWIG_2(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        {
+          int res = SWIG_AsVal_char(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_int(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_ContF3__SWIG_7(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_char(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_ContF3__SWIG_6(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_char(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_int(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_ContF3__SWIG_1(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_char(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_ContF3__SWIG_5(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_char(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_int(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    int res = SWIG_AsCharPtrAndSize(argv[8], 0, NULL, 0);
+                    _v = SWIG_CheckState(res);
+                    if (_v) {
+                      return _wrap_mglGraph_ContF3__SWIG_0(self, args);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_char(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_int(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_ContF3__SWIG_4(self, args);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_ContF3'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    ContF3(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,char,int,char const *)\n"
+    "    ContF3(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,char,int)\n"
+    "    ContF3(mglGraph *,mglData &,mglData &,char,int,char const *)\n"
+    "    ContF3(mglGraph *,mglData &,mglData &,char,int)\n"
+    "    ContF3(mglGraph *,mglData &,mglData &,mglData &,mglData &,char,int,char const *,int)\n"
+    "    ContF3(mglGraph *,mglData &,mglData &,mglData &,mglData &,char,int,char const *)\n"
+    "    ContF3(mglGraph *,mglData &,mglData &,mglData &,mglData &,char,int)\n"
+    "    ContF3(mglGraph *,mglData &,char,int,char const *,int)\n"
+    "    ContF3(mglGraph *,mglData &,char,int,char const *)\n"
+    "    ContF3(mglGraph *,mglData &,char,int)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFA__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  int arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_ContFA",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContFA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContFA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_ContFA" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_int(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_ContFA" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = static_cast< int >(val7);
+  (arg1)->ContFA(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFA__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_ContFA",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContFA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContFA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_ContFA" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->ContFA(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFA__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_ContFA",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContFA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_ContFA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->ContFA(*arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFA__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_ContFA",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFA" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContFA" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  (arg1)->ContFA(*arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFA__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_ContFA",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFA" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->ContFA(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFA__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_ContFA",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFA" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFA" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->ContFA(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFA(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[8];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 7); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_ContFA__SWIG_5(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContFA__SWIG_4(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_ContFA__SWIG_3(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_ContFA__SWIG_2(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_ContFA__SWIG_1(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_ContFA__SWIG_0(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_ContFA'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    ContFA(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *,int)\n"
+    "    ContFA(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    ContFA(mglGraph *,mglData &,mglData &,mglData &,mglData &)\n"
+    "    ContFA(mglGraph *,mglData &,char const *,int)\n"
+    "    ContFA(mglGraph *,mglData &,char const *)\n"
+    "    ContFA(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Beam__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  float arg6 ;
+  char *arg7 = (char *) 0 ;
+  int arg8 ;
+  int arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
+  int val9 ;
+  int ecode9 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:mglGraph_Beam",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Beam" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Beam" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Beam" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Beam" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Beam" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Beam" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Beam" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  ecode8 = SWIG_AsVal_int(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Beam" "', argument " "8"" of type '" "int""'");
+  } 
+  arg8 = static_cast< int >(val8);
+  ecode9 = SWIG_AsVal_int(obj8, &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Beam" "', argument " "9"" of type '" "int""'");
+  } 
+  arg9 = static_cast< int >(val9);
+  (arg1)->Beam(*arg2,*arg3,*arg4,*arg5,arg6,(char const *)arg7,arg8,arg9);
+  resultobj = SWIG_Py_Void();
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Beam__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  float arg6 ;
+  char *arg7 = (char *) 0 ;
+  int arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Beam",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Beam" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Beam" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Beam" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Beam" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Beam" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Beam" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Beam" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  ecode8 = SWIG_AsVal_int(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_Beam" "', argument " "8"" of type '" "int""'");
+  } 
+  arg8 = static_cast< int >(val8);
+  (arg1)->Beam(*arg2,*arg3,*arg4,*arg5,arg6,(char const *)arg7,arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Beam__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  float arg6 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Beam",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Beam" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Beam" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Beam" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Beam" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Beam" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Beam" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Beam" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  (arg1)->Beam(*arg2,*arg3,*arg4,*arg5,arg6,(char const *)arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Beam__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Beam",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Beam" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Beam" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Beam" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Beam" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Beam" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Beam" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  (arg1)->Beam(*arg2,*arg3,*arg4,*arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Beam__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  float arg7 ;
+  char *arg8 = (char *) 0 ;
+  int arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  int val9 ;
+  int ecode9 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:mglGraph_Beam",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Beam" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Beam" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Beam" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Beam" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Beam" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Beam" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Beam" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Beam" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  ecode9 = SWIG_AsVal_int(obj8, &val9);
+  if (!SWIG_IsOK(ecode9)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "mglGraph_Beam" "', argument " "9"" of type '" "int""'");
+  } 
+  arg9 = static_cast< int >(val9);
+  (arg1)->Beam(arg2,*arg3,*arg4,*arg5,*arg6,arg7,(char const *)arg8,arg9);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Beam__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  float arg7 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Beam",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Beam" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Beam" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Beam" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Beam" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Beam" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Beam" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Beam" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Beam" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  (arg1)->Beam(arg2,*arg3,*arg4,*arg5,*arg6,arg7,(char const *)arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Beam__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Beam",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Beam" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_Beam" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Beam" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Beam" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Beam" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Beam" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Beam" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_Beam" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  (arg1)->Beam(arg2,*arg3,*arg4,*arg5,*arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Beam(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[10];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 9); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Beam__SWIG_3(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_Beam__SWIG_2(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_Beam__SWIG_6(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_int(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_Beam__SWIG_1(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Beam__SWIG_5(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_int(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_int(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_Beam__SWIG_0(self, args);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    {
+                      int res = SWIG_AsVal_int(argv[8], NULL);
+                      _v = SWIG_CheckState(res);
+                    }
+                    if (_v) {
+                      return _wrap_mglGraph_Beam__SWIG_4(self, args);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Beam'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Beam(mglGraph *,mglData &,mglData &,mglData &,mglData &,float,char const *,int,int)\n"
+    "    Beam(mglGraph *,mglData &,mglData &,mglData &,mglData &,float,char const *,int)\n"
+    "    Beam(mglGraph *,mglData &,mglData &,mglData &,mglData &,float,char const *)\n"
+    "    Beam(mglGraph *,mglData &,mglData &,mglData &,mglData &,float)\n"
+    "    Beam(mglGraph *,float,mglData &,mglData &,mglData &,mglData &,float,char const *,int)\n"
+    "    Beam(mglGraph *,float,mglData &,mglData &,mglData &,mglData &,float,char const *)\n"
+    "    Beam(mglGraph *,float,mglData &,mglData &,mglData &,mglData &,float)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TriPlot__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_TriPlot",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriPlot" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_TriPlot" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  (arg1)->TriPlot(*arg2,*arg3,*arg4,*arg5,*arg6,(char const *)arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TriPlot__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_TriPlot",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriPlot" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  (arg1)->TriPlot(*arg2,*arg3,*arg4,*arg5,*arg6);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TriPlot__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_TriPlot",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriPlot" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->TriPlot(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TriPlot__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_TriPlot",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->TriPlot(*arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TriPlot__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_TriPlot",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriPlot" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_TriPlot" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  (arg1)->TriPlot(*arg2,*arg3,*arg4,(char const *)arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TriPlot__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_TriPlot",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriPlot" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->TriPlot(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TriPlot__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_TriPlot",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->TriPlot(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TriPlot(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[8];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 7); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_TriPlot__SWIG_6(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_TriPlot__SWIG_3(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_TriPlot__SWIG_5(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_TriPlot__SWIG_1(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_TriPlot__SWIG_2(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_TriPlot__SWIG_4(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_TriPlot__SWIG_0(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_TriPlot'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    TriPlot(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    TriPlot(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &)\n"
+    "    TriPlot(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    TriPlot(mglGraph *,mglData &,mglData &,mglData &,mglData &)\n"
+    "    TriPlot(mglGraph *,mglData &,mglData &,mglData &,char const *,float)\n"
+    "    TriPlot(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    TriPlot(mglGraph *,mglData &,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_QuadPlot__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_QuadPlot",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_QuadPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_QuadPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_QuadPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_QuadPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_QuadPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_QuadPlot" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_QuadPlot" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  (arg1)->QuadPlot(*arg2,*arg3,*arg4,*arg5,*arg6,(char const *)arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_QuadPlot__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_QuadPlot",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_QuadPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_QuadPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_QuadPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_QuadPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_QuadPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_QuadPlot" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  (arg1)->QuadPlot(*arg2,*arg3,*arg4,*arg5,*arg6);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_QuadPlot__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_QuadPlot",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_QuadPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_QuadPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_QuadPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_QuadPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_QuadPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_QuadPlot" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->QuadPlot(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_QuadPlot__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_QuadPlot",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_QuadPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_QuadPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_QuadPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_QuadPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_QuadPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->QuadPlot(*arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_QuadPlot__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_QuadPlot",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_QuadPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_QuadPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_QuadPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_QuadPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_QuadPlot" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_QuadPlot" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  (arg1)->QuadPlot(*arg2,*arg3,*arg4,(char const *)arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_QuadPlot__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_QuadPlot",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_QuadPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_QuadPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_QuadPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_QuadPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_QuadPlot" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->QuadPlot(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_QuadPlot__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_QuadPlot",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_QuadPlot" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_QuadPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_QuadPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_QuadPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_QuadPlot" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->QuadPlot(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_QuadPlot(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[8];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 7); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_QuadPlot__SWIG_6(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_QuadPlot__SWIG_3(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_QuadPlot__SWIG_5(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_QuadPlot__SWIG_1(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_QuadPlot__SWIG_2(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_QuadPlot__SWIG_4(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_QuadPlot__SWIG_0(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_QuadPlot'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    QuadPlot(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    QuadPlot(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &)\n"
+    "    QuadPlot(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    QuadPlot(mglGraph *,mglData &,mglData &,mglData &,mglData &)\n"
+    "    QuadPlot(mglGraph *,mglData &,mglData &,mglData &,char const *,float)\n"
+    "    QuadPlot(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    QuadPlot(mglGraph *,mglData &,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TriCont__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  int arg7 ;
+  mreal arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  void *argp8 ;
+  int res8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_TriCont",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriCont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriCont" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_int(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_TriCont" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = static_cast< int >(val7);
+  {
+    res8 = SWIG_ConvertPtr(obj7, &argp8, SWIGTYPE_p_mreal,  0  | 0);
+    if (!SWIG_IsOK(res8)) {
+      SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_TriCont" "', argument " "8"" of type '" "mreal""'"); 
+    }  
+    if (!argp8) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "8"" of type '" "mreal""'");
+    } else {
+      mreal * temp = reinterpret_cast< mreal * >(argp8);
+      arg8 = *temp;
+      if (SWIG_IsNewObj(res8)) delete temp;
+    }
+  }
+  (arg1)->TriCont((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(char const *)arg6,arg7,arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TriCont__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  int arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_TriCont",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriCont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriCont" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_int(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_TriCont" "', argument " "7"" of type '" "int""'");
+  } 
+  arg7 = static_cast< int >(val7);
+  (arg1)->TriCont((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(char const *)arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TriCont__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_TriCont",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriCont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriCont" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->TriCont((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TriCont__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_TriCont",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriCont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->TriCont((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TriContV__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  mreal arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  void *argp8 ;
+  int res8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_TriContV",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriContV" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriContV" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriContV" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriContV" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriContV" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriContV" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_TriContV" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  {
+    res8 = SWIG_ConvertPtr(obj7, &argp8, SWIGTYPE_p_mreal,  0  | 0);
+    if (!SWIG_IsOK(res8)) {
+      SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_TriContV" "', argument " "8"" of type '" "mreal""'"); 
+    }  
+    if (!argp8) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "8"" of type '" "mreal""'");
+    } else {
+      mreal * temp = reinterpret_cast< mreal * >(argp8);
+      arg8 = *temp;
+      if (SWIG_IsNewObj(res8)) delete temp;
+    }
+  }
+  (arg1)->TriContV((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(mglData const &)*arg6,(char const *)arg7,arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TriContV__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_TriContV",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriContV" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriContV" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriContV" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriContV" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriContV" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriContV" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_TriContV" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  (arg1)->TriContV((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(mglData const &)*arg6,(char const *)arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TriContV__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_TriContV",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriContV" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriContV" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriContV" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriContV" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriContV" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriContV" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  (arg1)->TriContV((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(mglData const &)*arg6);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TriCont__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  int arg8 ;
+  mreal arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
+  void *argp9 ;
+  int res9 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:mglGraph_TriCont",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriCont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriCont" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_TriCont" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  ecode8 = SWIG_AsVal_int(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_TriCont" "', argument " "8"" of type '" "int""'");
+  } 
+  arg8 = static_cast< int >(val8);
+  {
+    res9 = SWIG_ConvertPtr(obj8, &argp9, SWIGTYPE_p_mreal,  0  | 0);
+    if (!SWIG_IsOK(res9)) {
+      SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "mglGraph_TriCont" "', argument " "9"" of type '" "mreal""'"); 
+    }  
+    if (!argp9) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "9"" of type '" "mreal""'");
+    } else {
+      mreal * temp = reinterpret_cast< mreal * >(argp9);
+      arg9 = *temp;
+      if (SWIG_IsNewObj(res9)) delete temp;
+    }
+  }
+  (arg1)->TriCont((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(mglData const &)*arg6,(char const *)arg7,arg8,arg9);
+  resultobj = SWIG_Py_Void();
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TriCont__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  int arg8 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_TriCont",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriCont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriCont" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_TriCont" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  ecode8 = SWIG_AsVal_int(obj7, &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "mglGraph_TriCont" "', argument " "8"" of type '" "int""'");
+  } 
+  arg8 = static_cast< int >(val8);
+  (arg1)->TriCont((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(mglData const &)*arg6,(char const *)arg7,arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TriCont__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_TriCont",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriCont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriCont" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_TriCont" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  (arg1)->TriCont((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(mglData const &)*arg6,(char const *)arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TriCont__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_TriCont",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriCont" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriCont" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriCont" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  (arg1)->TriCont((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(mglData const &)*arg6);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TriCont(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[10];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 9); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_ConvertPtr(argv[4], 0, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_TriCont__SWIG_3(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_ConvertPtr(argv[4], 0, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_ConvertPtr(argv[5], 0, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_TriCont__SWIG_7(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_ConvertPtr(argv[4], 0, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_TriCont__SWIG_2(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_ConvertPtr(argv[4], 0, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_ConvertPtr(argv[5], 0, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_TriCont__SWIG_6(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_ConvertPtr(argv[4], 0, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_TriCont__SWIG_1(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_ConvertPtr(argv[4], 0, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_ConvertPtr(argv[5], 0, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_int(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    return _wrap_mglGraph_TriCont__SWIG_5(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_ConvertPtr(argv[4], 0, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_int(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  int res = SWIG_ConvertPtr(argv[7], 0, SWIGTYPE_p_mreal, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_TriCont__SWIG_0(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_ConvertPtr(argv[4], 0, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_ConvertPtr(argv[5], 0, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  {
+                    int res = SWIG_AsVal_int(argv[7], NULL);
+                    _v = SWIG_CheckState(res);
+                  }
+                  if (_v) {
+                    int res = SWIG_ConvertPtr(argv[8], 0, SWIGTYPE_p_mreal, 0);
+                    _v = SWIG_CheckState(res);
+                    if (_v) {
+                      return _wrap_mglGraph_TriCont__SWIG_4(self, args);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_TriCont'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    TriCont(mglGraph *,mglData const &,mglData const &,mglData const &,mglData const &,char const *,int,mreal)\n"
+    "    TriCont(mglGraph *,mglData const &,mglData const &,mglData const &,mglData const &,char const *,int)\n"
+    "    TriCont(mglGraph *,mglData const &,mglData const &,mglData const &,mglData const &,char const *)\n"
+    "    TriCont(mglGraph *,mglData const &,mglData const &,mglData const &,mglData const &)\n"
+    "    TriCont(mglGraph *,mglData const &,mglData const &,mglData const &,mglData const &,mglData const &,char const *,int,mreal)\n"
+    "    TriCont(mglGraph *,mglData const &,mglData const &,mglData const &,mglData const &,mglData const &,char const *,int)\n"
+    "    TriCont(mglGraph *,mglData const &,mglData const &,mglData const &,mglData const &,mglData const &,char const *)\n"
+    "    TriCont(mglGraph *,mglData const &,mglData const &,mglData const &,mglData const &,mglData const &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TriContV__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  mreal arg9 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  void *argp9 ;
+  int res9 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:mglGraph_TriContV",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriContV" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriContV" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriContV" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriContV" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriContV" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriContV" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_TriContV" "', argument " "7"" of type '" "mglData const &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "7"" of type '" "mglData const &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_TriContV" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  {
+    res9 = SWIG_ConvertPtr(obj8, &argp9, SWIGTYPE_p_mreal,  0  | 0);
+    if (!SWIG_IsOK(res9)) {
+      SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "mglGraph_TriContV" "', argument " "9"" of type '" "mreal""'"); 
+    }  
+    if (!argp9) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "9"" of type '" "mreal""'");
+    } else {
+      mreal * temp = reinterpret_cast< mreal * >(argp9);
+      arg9 = *temp;
+      if (SWIG_IsNewObj(res9)) delete temp;
+    }
+  }
+  (arg1)->TriContV((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(mglData const &)*arg6,(mglData const &)*arg7,(char const *)arg8,arg9);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TriContV__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_TriContV",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriContV" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriContV" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriContV" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriContV" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriContV" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriContV" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_TriContV" "', argument " "7"" of type '" "mglData const &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "7"" of type '" "mglData const &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_TriContV" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  (arg1)->TriContV((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(mglData const &)*arg6,(mglData const &)*arg7,(char const *)arg8);
+  resultobj = SWIG_Py_Void();
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TriContV__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_TriContV",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_TriContV" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_TriContV" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "2"" of type '" "mglData const &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_TriContV" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "3"" of type '" "mglData const &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_TriContV" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "4"" of type '" "mglData const &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_TriContV" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "5"" of type '" "mglData const &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_TriContV" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "6"" of type '" "mglData const &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0  | 0);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_TriContV" "', argument " "7"" of type '" "mglData const &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_TriContV" "', argument " "7"" of type '" "mglData const &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  (arg1)->TriContV((mglData const &)*arg2,(mglData const &)*arg3,(mglData const &)*arg4,(mglData const &)*arg5,(mglData const &)*arg6,(mglData const &)*arg7);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_TriContV(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[10];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 9); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_ConvertPtr(argv[4], 0, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_ConvertPtr(argv[5], 0, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_TriContV__SWIG_2(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_ConvertPtr(argv[4], 0, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_ConvertPtr(argv[5], 0, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_ConvertPtr(argv[6], 0, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_TriContV__SWIG_5(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_ConvertPtr(argv[4], 0, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_ConvertPtr(argv[5], 0, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_TriContV__SWIG_1(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_ConvertPtr(argv[4], 0, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_ConvertPtr(argv[5], 0, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_ConvertPtr(argv[6], 0, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_TriContV__SWIG_4(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_ConvertPtr(argv[4], 0, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_ConvertPtr(argv[5], 0, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_ConvertPtr(argv[7], 0, SWIGTYPE_p_mreal, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_TriContV__SWIG_0(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_ConvertPtr(argv[3], 0, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_ConvertPtr(argv[4], 0, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_ConvertPtr(argv[5], 0, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_ConvertPtr(argv[6], 0, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    int res = SWIG_ConvertPtr(argv[8], 0, SWIGTYPE_p_mreal, 0);
+                    _v = SWIG_CheckState(res);
+                    if (_v) {
+                      return _wrap_mglGraph_TriContV__SWIG_3(self, args);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_TriContV'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    TriContV(mglGraph *,mglData const &,mglData const &,mglData const &,mglData const &,mglData const &,char const *,mreal)\n"
+    "    TriContV(mglGraph *,mglData const &,mglData const &,mglData const &,mglData const &,mglData const &,char const *)\n"
+    "    TriContV(mglGraph *,mglData const &,mglData const &,mglData const &,mglData const &,mglData const &)\n"
+    "    TriContV(mglGraph *,mglData const &,mglData const &,mglData const &,mglData const &,mglData const &,mglData const &,char const *,mreal)\n"
+    "    TriContV(mglGraph *,mglData const &,mglData const &,mglData const &,mglData const &,mglData const &,mglData const &,char const *)\n"
+    "    TriContV(mglGraph *,mglData const &,mglData const &,mglData const &,mglData const &,mglData const &,mglData const &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Dots__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Dots",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dots" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dots" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dots" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dots" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dots" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Dots" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dots" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Dots" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Dots(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Dots__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Dots",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dots" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dots" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dots" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dots" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dots" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Dots" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dots" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Dots(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Dots__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Dots",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dots" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dots" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dots" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dots" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dots" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Dots" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dots" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Dots" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dots" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Dots" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->Dots(*arg2,*arg3,*arg4,*arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Dots__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Dots",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Dots" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Dots" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dots" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Dots" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dots" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Dots" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dots" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Dots" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Dots" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->Dots(*arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Dots(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Dots__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Dots__SWIG_3(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Dots__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Dots__SWIG_2(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Dots'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Dots(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    Dots(mglGraph *,mglData &,mglData &,mglData &)\n"
+    "    Dots(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *)\n"
+    "    Dots(mglGraph *,mglData &,mglData &,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Crust__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Crust",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Crust" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Crust" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Crust" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Crust" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Crust" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Crust" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Crust" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Crust" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_Crust" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  (arg1)->Crust(*arg2,*arg3,*arg4,(char const *)arg5,arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Crust__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Crust",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Crust" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Crust" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Crust" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Crust" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Crust" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Crust" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Crust" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Crust" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->Crust(*arg2,*arg3,*arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Crust__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Crust",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Crust" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Crust" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Crust" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Crust" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Crust" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Crust" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Crust" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Crust(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Crust(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Crust__SWIG_2(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Crust__SWIG_1(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_Crust__SWIG_0(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Crust'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Crust(mglGraph *,mglData &,mglData &,mglData &,char const *,float)\n"
+    "    Crust(mglGraph *,mglData &,mglData &,mglData &,char const *)\n"
+    "    Crust(mglGraph *,mglData &,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_DensX__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_DensX",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_DensX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_DensX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_DensX" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_DensX" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  (arg1)->DensX(*arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_DensX__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_DensX",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_DensX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_DensX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_DensX" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->DensX(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_DensX__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_DensX",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_DensX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_DensX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->DensX(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_DensX(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_DensX__SWIG_2(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_DensX__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_DensX__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_DensX'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    DensX(mglGraph *,mglData &,char const *,float)\n"
+    "    DensX(mglGraph *,mglData &,char const *)\n"
+    "    DensX(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_DensY__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_DensY",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_DensY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_DensY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_DensY" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_DensY" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  (arg1)->DensY(*arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_DensY__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_DensY",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_DensY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_DensY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_DensY" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->DensY(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_DensY__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_DensY",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_DensY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_DensY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->DensY(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_DensY(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_DensY__SWIG_2(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_DensY__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_DensY__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_DensY'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    DensY(mglGraph *,mglData &,char const *,float)\n"
+    "    DensY(mglGraph *,mglData &,char const *)\n"
+    "    DensY(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_DensZ__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_DensZ",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_DensZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_DensZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_DensZ" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_DensZ" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  (arg1)->DensZ(*arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_DensZ__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_DensZ",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_DensZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_DensZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_DensZ" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->DensZ(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_DensZ__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_DensZ",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_DensZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_DensZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_DensZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->DensZ(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_DensZ(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_DensZ__SWIG_2(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_DensZ__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_DensZ__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_DensZ'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    DensZ(mglGraph *,mglData &,char const *,float)\n"
+    "    DensZ(mglGraph *,mglData &,char const *)\n"
+    "    DensZ(mglGraph *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContX__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_ContX",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContX" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContX" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContX" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  (arg1)->ContX(*arg2,(char const *)arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContX__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_ContX",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContX" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContX" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  (arg1)->ContX(*arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContX__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_ContX",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContX" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->ContX(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContX__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_ContX",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->ContX(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContY__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_ContY",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContY" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContY" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContY" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  (arg1)->ContY(*arg2,(char const *)arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContY__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_ContY",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContY" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContY" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  (arg1)->ContY(*arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContY__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_ContY",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContY" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->ContY(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContY__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_ContY",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->ContY(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContZ__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_ContZ",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContZ" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContZ" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContZ" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  (arg1)->ContZ(*arg2,(char const *)arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContZ__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_ContZ",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContZ" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContZ" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  (arg1)->ContZ(*arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContZ__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_ContZ",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContZ" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->ContZ(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContZ__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_ContZ",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->ContZ(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContX__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_ContX",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContX" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContX" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContX" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContX" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->ContX(*arg2,*arg3,(char const *)arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContX__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_ContX",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContX" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContX" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContX" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->ContX(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContX__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_ContX",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContX" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContX" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->ContX(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContX(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[6];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_ContX__SWIG_3(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContX__SWIG_6(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContX__SWIG_2(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_ContX__SWIG_5(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_ContX__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContX__SWIG_4(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContX__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_ContX'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    ContX(mglGraph *,mglData &,char const *,float,int)\n"
+    "    ContX(mglGraph *,mglData &,char const *,float)\n"
+    "    ContX(mglGraph *,mglData &,char const *)\n"
+    "    ContX(mglGraph *,mglData &)\n"
+    "    ContX(mglGraph *,mglData &,mglData &,char const *,float)\n"
+    "    ContX(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    ContX(mglGraph *,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContY__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_ContY",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContY" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContY" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContY" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContY" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->ContY(*arg2,*arg3,(char const *)arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContY__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_ContY",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContY" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContY" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContY" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->ContY(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContY__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_ContY",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContY" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContY" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->ContY(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContY(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[6];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_ContY__SWIG_3(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContY__SWIG_6(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContY__SWIG_2(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_ContY__SWIG_5(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_ContY__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContY__SWIG_4(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContY__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_ContY'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    ContY(mglGraph *,mglData &,char const *,float,int)\n"
+    "    ContY(mglGraph *,mglData &,char const *,float)\n"
+    "    ContY(mglGraph *,mglData &,char const *)\n"
+    "    ContY(mglGraph *,mglData &)\n"
+    "    ContY(mglGraph *,mglData &,mglData &,char const *,float)\n"
+    "    ContY(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    ContY(mglGraph *,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContZ__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_ContZ",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContZ" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContZ" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContZ" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContZ" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->ContZ(*arg2,*arg3,(char const *)arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContZ__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_ContZ",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContZ" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContZ" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContZ" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->ContZ(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContZ__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_ContZ",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContZ" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContZ" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->ContZ(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContZ(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[6];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_ContZ__SWIG_3(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContZ__SWIG_6(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContZ__SWIG_2(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_ContZ__SWIG_5(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_ContZ__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContZ__SWIG_4(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContZ__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_ContZ'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    ContZ(mglGraph *,mglData &,char const *,float,int)\n"
+    "    ContZ(mglGraph *,mglData &,char const *,float)\n"
+    "    ContZ(mglGraph *,mglData &,char const *)\n"
+    "    ContZ(mglGraph *,mglData &)\n"
+    "    ContZ(mglGraph *,mglData &,mglData &,char const *,float)\n"
+    "    ContZ(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    ContZ(mglGraph *,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFX__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_ContFX",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFX" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContFX" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContFX" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  (arg1)->ContFX(*arg2,(char const *)arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFX__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_ContFX",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFX" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContFX" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  (arg1)->ContFX(*arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFX__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_ContFX",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFX" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->ContFX(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFX__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_ContFX",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->ContFX(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFY__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_ContFY",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFY" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContFY" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContFY" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  (arg1)->ContFY(*arg2,(char const *)arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFY__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_ContFY",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFY" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContFY" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  (arg1)->ContFY(*arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFY__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_ContFY",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFY" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->ContFY(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFY__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_ContFY",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->ContFY(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFZ__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_ContFZ",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFZ" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContFZ" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  ecode5 = SWIG_AsVal_int(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContFZ" "', argument " "5"" of type '" "int""'");
+  } 
+  arg5 = static_cast< int >(val5);
+  (arg1)->ContFZ(*arg2,(char const *)arg3,arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFZ__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_ContFZ",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFZ" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_ContFZ" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  (arg1)->ContFZ(*arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFZ__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_ContFZ",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFZ" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->ContFZ(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFZ__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglGraph_ContFZ",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  (arg1)->ContFZ(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFX__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_ContFX",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFX" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFX" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContFX" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContFX" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->ContFX(*arg2,*arg3,(char const *)arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFX__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_ContFX",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFX" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFX" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContFX" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->ContFX(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFX__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_ContFX",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFX" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFX" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFX" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFX" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->ContFX(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFX(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[6];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_ContFX__SWIG_3(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContFX__SWIG_6(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContFX__SWIG_2(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_ContFX__SWIG_5(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_ContFX__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContFX__SWIG_4(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContFX__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_ContFX'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    ContFX(mglGraph *,mglData &,char const *,float,int)\n"
+    "    ContFX(mglGraph *,mglData &,char const *,float)\n"
+    "    ContFX(mglGraph *,mglData &,char const *)\n"
+    "    ContFX(mglGraph *,mglData &)\n"
+    "    ContFX(mglGraph *,mglData &,mglData &,char const *,float)\n"
+    "    ContFX(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    ContFX(mglGraph *,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFY__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_ContFY",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFY" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFY" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContFY" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContFY" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->ContFY(*arg2,*arg3,(char const *)arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFY__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_ContFY",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFY" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFY" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContFY" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->ContFY(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFY__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_ContFY",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFY" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFY" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFY" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFY" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->ContFY(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFY(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[6];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_ContFY__SWIG_3(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContFY__SWIG_6(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContFY__SWIG_2(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_ContFY__SWIG_5(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_ContFY__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContFY__SWIG_4(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContFY__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_ContFY'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    ContFY(mglGraph *,mglData &,char const *,float,int)\n"
+    "    ContFY(mglGraph *,mglData &,char const *,float)\n"
+    "    ContFY(mglGraph *,mglData &,char const *)\n"
+    "    ContFY(mglGraph *,mglData &)\n"
+    "    ContFY(mglGraph *,mglData &,mglData &,char const *,float)\n"
+    "    ContFY(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    ContFY(mglGraph *,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFZ__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_ContFZ",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFZ" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFZ" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContFZ" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_ContFZ" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  (arg1)->ContFZ(*arg2,*arg3,(char const *)arg4,arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFZ__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_ContFZ",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFZ" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFZ" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_ContFZ" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  (arg1)->ContFZ(*arg2,*arg3,(char const *)arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFZ__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_ContFZ",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_ContFZ" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_ContFZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFZ" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_ContFZ" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_ContFZ" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  (arg1)->ContFZ(*arg2,*arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_ContFZ(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[6];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_mglGraph_ContFZ__SWIG_3(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContFZ__SWIG_6(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_ContFZ__SWIG_2(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_ContFZ__SWIG_5(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_ContFZ__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContFZ__SWIG_4(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            {
+              int res = SWIG_AsVal_int(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_ContFZ__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_ContFZ'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    ContFZ(mglGraph *,mglData &,char const *,float,int)\n"
+    "    ContFZ(mglGraph *,mglData &,char const *,float)\n"
+    "    ContFZ(mglGraph *,mglData &,char const *)\n"
+    "    ContFZ(mglGraph *,mglData &)\n"
+    "    ContFZ(mglGraph *,mglData &,mglData &,char const *,float)\n"
+    "    ContFZ(mglGraph *,mglData &,mglData &,char const *)\n"
+    "    ContFZ(mglGraph *,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Hist__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Hist",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Hist" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Hist" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Hist" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Hist" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Hist" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Hist" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Hist" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Hist(*arg2,*arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Hist__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Hist",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Hist" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Hist" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Hist" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Hist" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Hist" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Hist" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Hist" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Hist" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Hist" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->Hist(*arg2,*arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Hist__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Hist",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Hist" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Hist" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Hist" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Hist" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Hist" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Hist" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Hist" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Hist" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Hist" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Hist" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Hist" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  (arg1)->Hist(*arg2,*arg3,*arg4,*arg5,*arg6);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Hist(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Hist__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Hist__SWIG_1(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Hist__SWIG_2(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Hist'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Hist(mglGraph *,mglData &,mglData &,mglData &)\n"
+    "    Hist(mglGraph *,mglData &,mglData &,mglData &,mglData &)\n"
+    "    Hist(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Fit__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  float result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Fit",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fit" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fit" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Fit" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  result = (float)(arg1)->Fit(*arg2,*arg3,(char const *)arg4,(char const *)arg5);
+  resultobj = SWIG_From_float(static_cast< float >(result));
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Fit__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  mglData *arg6 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  float result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Fit",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fit" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fit" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Fit" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Fit" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  result = (float)(arg1)->Fit(*arg2,*arg3,(char const *)arg4,(char const *)arg5,*arg6);
+  resultobj = SWIG_From_float(static_cast< float >(result));
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Fit2__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  float result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Fit2",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fit2" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fit2" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit2" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fit2" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit2" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fit2" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Fit2" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  result = (float)(arg1)->Fit2(*arg2,*arg3,(char const *)arg4,(char const *)arg5);
+  resultobj = SWIG_From_float(static_cast< float >(result));
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Fit2__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  mglData *arg6 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  float result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Fit2",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fit2" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fit2" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit2" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fit2" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit2" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fit2" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Fit2" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Fit2" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit2" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  result = (float)(arg1)->Fit2(*arg2,*arg3,(char const *)arg4,(char const *)arg5,*arg6);
+  resultobj = SWIG_From_float(static_cast< float >(result));
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Fit2(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Fit2__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Fit2__SWIG_1(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Fit2'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Fit2(mglGraph *,mglData &,mglData &,char const *,char const *)\n"
+    "    Fit2(mglGraph *,mglData &,mglData &,char const *,char const *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Fit3__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  float result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Fit3",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fit3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fit3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fit3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fit3" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Fit3" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  result = (float)(arg1)->Fit3(*arg2,*arg3,(char const *)arg4,(char const *)arg5);
+  resultobj = SWIG_From_float(static_cast< float >(result));
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Fit3__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  char *arg4 = (char *) 0 ;
+  char *arg5 = (char *) 0 ;
+  mglData *arg6 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  float result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Fit3",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fit3" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fit3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit3" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fit3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit3" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fit3" "', argument " "4"" of type '" "char const *""'");
+  }
+  arg4 = reinterpret_cast< char * >(buf4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Fit3" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Fit3" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit3" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  result = (float)(arg1)->Fit3(*arg2,*arg3,(char const *)arg4,(char const *)arg5,*arg6);
+  resultobj = SWIG_From_float(static_cast< float >(result));
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Fit3(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Fit3__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Fit3__SWIG_1(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Fit3'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Fit3(mglGraph *,mglData &,mglData &,char const *,char const *)\n"
+    "    Fit3(mglGraph *,mglData &,mglData &,char const *,char const *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Fit__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  float result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_Fit",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fit" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fit" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Fit" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Fit" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  result = (float)(arg1)->Fit(*arg2,*arg3,*arg4,(char const *)arg5,(char const *)arg6);
+  resultobj = SWIG_From_float(static_cast< float >(result));
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Fit__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  char *arg6 = (char *) 0 ;
+  mglData *arg7 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  float result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Fit",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fit" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fit" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Fit" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Fit" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Fit" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  result = (float)(arg1)->Fit(*arg2,*arg3,*arg4,(char const *)arg5,(char const *)arg6,*arg7);
+  resultobj = SWIG_From_float(static_cast< float >(result));
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Fit__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  float result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_Fit",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fit" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fit" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Fit" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Fit" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Fit" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  result = (float)(arg1)->Fit(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,(char const *)arg7);
+  resultobj = SWIG_From_float(static_cast< float >(result));
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Fit__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  char *arg7 = (char *) 0 ;
+  mglData *arg8 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  void *argp8 = 0 ;
+  int res8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  float result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Fit",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fit" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fit" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Fit" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Fit" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Fit" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  res8 = SWIG_ConvertPtr(obj7, &argp8, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Fit" "', argument " "8"" of type '" "mglData &""'"); 
+  }
+  if (!argp8) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "8"" of type '" "mglData &""'"); 
+  }
+  arg8 = reinterpret_cast< mglData * >(argp8);
+  result = (float)(arg1)->Fit(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,(char const *)arg7,*arg8);
+  resultobj = SWIG_From_float(static_cast< float >(result));
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Fit__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  float result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_Fit",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fit" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fit" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Fit" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Fit" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Fit" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Fit" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  result = (float)(arg1)->Fit(*arg2,*arg3,*arg4,*arg5,*arg6,(char const *)arg7,(char const *)arg8);
+  resultobj = SWIG_From_float(static_cast< float >(result));
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Fit__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  char *arg8 = (char *) 0 ;
+  mglData *arg9 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  void *argp9 = 0 ;
+  int res9 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  float result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:mglGraph_Fit",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fit" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fit" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Fit" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_Fit" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_Fit" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_Fit" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  res9 = SWIG_ConvertPtr(obj8, &argp9, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res9)) {
+    SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "mglGraph_Fit" "', argument " "9"" of type '" "mglData &""'"); 
+  }
+  if (!argp9) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fit" "', argument " "9"" of type '" "mglData &""'"); 
+  }
+  arg9 = reinterpret_cast< mglData * >(argp9);
+  result = (float)(arg1)->Fit(*arg2,*arg3,*arg4,*arg5,*arg6,(char const *)arg7,(char const *)arg8,*arg9);
+  resultobj = SWIG_From_float(static_cast< float >(result));
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Fit(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[10];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 9); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Fit__SWIG_0(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Fit__SWIG_2(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_Fit__SWIG_1(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_Fit__SWIG_4(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_Fit__SWIG_3(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Fit__SWIG_6(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  void *vptr = 0;
+                  int res = SWIG_ConvertPtr(argv[7], &vptr, SWIGTYPE_p_mglData, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_Fit__SWIG_5(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    void *vptr = 0;
+                    int res = SWIG_ConvertPtr(argv[8], &vptr, SWIGTYPE_p_mglData, 0);
+                    _v = SWIG_CheckState(res);
+                    if (_v) {
+                      return _wrap_mglGraph_Fit__SWIG_7(self, args);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Fit'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Fit(mglGraph *,mglData &,mglData &,char const *,char const *)\n"
+    "    Fit(mglGraph *,mglData &,mglData &,char const *,char const *,mglData &)\n"
+    "    Fit(mglGraph *,mglData &,mglData &,mglData &,char const *,char const *)\n"
+    "    Fit(mglGraph *,mglData &,mglData &,mglData &,char const *,char const *,mglData &)\n"
+    "    Fit(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *,char const *)\n"
+    "    Fit(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *,char const *,mglData &)\n"
+    "    Fit(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,char const *,char const *)\n"
+    "    Fit(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,char const *,char const *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FitS__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  float result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_FitS",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FitS" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FitS" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FitS" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  result = (float)(arg1)->FitS(*arg2,*arg3,*arg4,(char const *)arg5,(char const *)arg6);
+  resultobj = SWIG_From_float(static_cast< float >(result));
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FitS__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  char *arg5 = (char *) 0 ;
+  char *arg6 = (char *) 0 ;
+  mglData *arg7 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  float result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_FitS",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FitS" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FitS" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FitS" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FitS" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  result = (float)(arg1)->FitS(*arg2,*arg3,*arg4,(char const *)arg5,(char const *)arg6,*arg7);
+  resultobj = SWIG_From_float(static_cast< float >(result));
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FitS__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  char *arg7 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  float result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_FitS",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FitS" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FitS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FitS" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FitS" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  result = (float)(arg1)->FitS(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,(char const *)arg7);
+  resultobj = SWIG_From_float(static_cast< float >(result));
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FitS__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  char *arg6 = (char *) 0 ;
+  char *arg7 = (char *) 0 ;
+  mglData *arg8 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  void *argp8 = 0 ;
+  int res8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  float result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_FitS",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FitS" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FitS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FitS" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FitS" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  res8 = SWIG_ConvertPtr(obj7, &argp8, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_FitS" "', argument " "8"" of type '" "mglData &""'"); 
+  }
+  if (!argp8) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "8"" of type '" "mglData &""'"); 
+  }
+  arg8 = reinterpret_cast< mglData * >(argp8);
+  result = (float)(arg1)->FitS(*arg2,*arg3,*arg4,*arg5,(char const *)arg6,(char const *)arg7,*arg8);
+  resultobj = SWIG_From_float(static_cast< float >(result));
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return resultobj;
+fail:
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FitS__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  char *arg8 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  float result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:mglGraph_FitS",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FitS" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FitS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FitS" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FitS" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_FitS" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  result = (float)(arg1)->FitS(*arg2,*arg3,*arg4,*arg5,*arg6,(char const *)arg7,(char const *)arg8);
+  resultobj = SWIG_From_float(static_cast< float >(result));
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FitS__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  char *arg7 = (char *) 0 ;
+  char *arg8 = (char *) 0 ;
+  mglData *arg9 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  int res7 ;
+  char *buf7 = 0 ;
+  int alloc7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  void *argp9 = 0 ;
+  int res9 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  float result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:mglGraph_FitS",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FitS" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FitS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FitS" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_AsCharPtrAndSize(obj6, &buf7, NULL, &alloc7);
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FitS" "', argument " "7"" of type '" "char const *""'");
+  }
+  arg7 = reinterpret_cast< char * >(buf7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_FitS" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  res9 = SWIG_ConvertPtr(obj8, &argp9, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res9)) {
+    SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "mglGraph_FitS" "', argument " "9"" of type '" "mglData &""'"); 
+  }
+  if (!argp9) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "9"" of type '" "mglData &""'"); 
+  }
+  arg9 = reinterpret_cast< mglData * >(argp9);
+  result = (float)(arg1)->FitS(*arg2,*arg3,*arg4,*arg5,*arg6,(char const *)arg7,(char const *)arg8,*arg9);
+  resultobj = SWIG_From_float(static_cast< float >(result));
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return resultobj;
+fail:
+  if (alloc7 == SWIG_NEWOBJ) delete[] buf7;
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FitS__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  char *arg9 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  int res9 ;
+  char *buf9 = 0 ;
+  int alloc9 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  float result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:mglGraph_FitS",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FitS" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FitS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FitS" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FitS" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_FitS" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  res9 = SWIG_AsCharPtrAndSize(obj8, &buf9, NULL, &alloc9);
+  if (!SWIG_IsOK(res9)) {
+    SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "mglGraph_FitS" "', argument " "9"" of type '" "char const *""'");
+  }
+  arg9 = reinterpret_cast< char * >(buf9);
+  result = (float)(arg1)->FitS(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8,(char const *)arg9);
+  resultobj = SWIG_From_float(static_cast< float >(result));
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  if (alloc9 == SWIG_NEWOBJ) delete[] buf9;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  if (alloc9 == SWIG_NEWOBJ) delete[] buf9;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FitS__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  mglData *arg6 = 0 ;
+  mglData *arg7 = 0 ;
+  char *arg8 = (char *) 0 ;
+  char *arg9 = (char *) 0 ;
+  mglData *arg10 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  void *argp6 = 0 ;
+  int res6 = 0 ;
+  void *argp7 = 0 ;
+  int res7 = 0 ;
+  int res8 ;
+  char *buf8 = 0 ;
+  int alloc8 = 0 ;
+  int res9 ;
+  char *buf9 = 0 ;
+  int alloc9 = 0 ;
+  void *argp10 = 0 ;
+  int res10 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  PyObject * obj7 = 0 ;
+  PyObject * obj8 = 0 ;
+  PyObject * obj9 = 0 ;
+  float result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOO:mglGraph_FitS",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_FitS" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_FitS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_FitS" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  if (!argp6) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "6"" of type '" "mglData &""'"); 
+  }
+  arg6 = reinterpret_cast< mglData * >(argp6);
+  res7 = SWIG_ConvertPtr(obj6, &argp7, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res7)) {
+    SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "mglGraph_FitS" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  if (!argp7) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "7"" of type '" "mglData &""'"); 
+  }
+  arg7 = reinterpret_cast< mglData * >(argp7);
+  res8 = SWIG_AsCharPtrAndSize(obj7, &buf8, NULL, &alloc8);
+  if (!SWIG_IsOK(res8)) {
+    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "mglGraph_FitS" "', argument " "8"" of type '" "char const *""'");
+  }
+  arg8 = reinterpret_cast< char * >(buf8);
+  res9 = SWIG_AsCharPtrAndSize(obj8, &buf9, NULL, &alloc9);
+  if (!SWIG_IsOK(res9)) {
+    SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "mglGraph_FitS" "', argument " "9"" of type '" "char const *""'");
+  }
+  arg9 = reinterpret_cast< char * >(buf9);
+  res10 = SWIG_ConvertPtr(obj9, &argp10, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res10)) {
+    SWIG_exception_fail(SWIG_ArgError(res10), "in method '" "mglGraph_FitS" "', argument " "10"" of type '" "mglData &""'"); 
+  }
+  if (!argp10) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_FitS" "', argument " "10"" of type '" "mglData &""'"); 
+  }
+  arg10 = reinterpret_cast< mglData * >(argp10);
+  result = (float)(arg1)->FitS(*arg2,*arg3,*arg4,*arg5,*arg6,*arg7,(char const *)arg8,(char const *)arg9,*arg10);
+  resultobj = SWIG_From_float(static_cast< float >(result));
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  if (alloc9 == SWIG_NEWOBJ) delete[] buf9;
+  return resultobj;
+fail:
+  if (alloc8 == SWIG_NEWOBJ) delete[] buf8;
+  if (alloc9 == SWIG_NEWOBJ) delete[] buf9;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_FitS(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[11];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 10); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_FitS__SWIG_0(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_FitS__SWIG_2(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  return _wrap_mglGraph_FitS__SWIG_1(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_FitS__SWIG_4(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 8) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  void *vptr = 0;
+                  int res = SWIG_ConvertPtr(argv[7], &vptr, SWIGTYPE_p_mglData, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    return _wrap_mglGraph_FitS__SWIG_3(self, args);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    int res = SWIG_AsCharPtrAndSize(argv[8], 0, NULL, 0);
+                    _v = SWIG_CheckState(res);
+                    if (_v) {
+                      return _wrap_mglGraph_FitS__SWIG_6(self, args);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 9) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                int res = SWIG_AsCharPtrAndSize(argv[6], 0, NULL, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    void *vptr = 0;
+                    int res = SWIG_ConvertPtr(argv[8], &vptr, SWIGTYPE_p_mglData, 0);
+                    _v = SWIG_CheckState(res);
+                    if (_v) {
+                      return _wrap_mglGraph_FitS__SWIG_5(self, args);
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 10) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              void *vptr = 0;
+              int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_mglData, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                void *vptr = 0;
+                int res = SWIG_ConvertPtr(argv[6], &vptr, SWIGTYPE_p_mglData, 0);
+                _v = SWIG_CheckState(res);
+                if (_v) {
+                  int res = SWIG_AsCharPtrAndSize(argv[7], 0, NULL, 0);
+                  _v = SWIG_CheckState(res);
+                  if (_v) {
+                    int res = SWIG_AsCharPtrAndSize(argv[8], 0, NULL, 0);
+                    _v = SWIG_CheckState(res);
+                    if (_v) {
+                      void *vptr = 0;
+                      int res = SWIG_ConvertPtr(argv[9], &vptr, SWIGTYPE_p_mglData, 0);
+                      _v = SWIG_CheckState(res);
+                      if (_v) {
+                        return _wrap_mglGraph_FitS__SWIG_7(self, args);
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_FitS'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    FitS(mglGraph *,mglData &,mglData &,mglData &,char const *,char const *)\n"
+    "    FitS(mglGraph *,mglData &,mglData &,mglData &,char const *,char const *,mglData &)\n"
+    "    FitS(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *,char const *)\n"
+    "    FitS(mglGraph *,mglData &,mglData &,mglData &,mglData &,char const *,char const *,mglData &)\n"
+    "    FitS(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,char const *,char const *)\n"
+    "    FitS(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,char const *,char const *,mglData &)\n"
+    "    FitS(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,mglData &,char const *,char const *)\n"
+    "    FitS(mglGraph *,mglData &,mglData &,mglData &,mglData &,mglData &,mglData &,char const *,char const *,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_PutsFit__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  char *arg5 = (char *) 0 ;
+  char *arg6 = (char *) 0 ;
+  float arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  float val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mglGraph_PutsFit",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_PutsFit" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_PutsFit" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_PutsFit" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_PutsFit" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_PutsFit" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_PutsFit" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  ecode7 = SWIG_AsVal_float(obj6, &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "mglGraph_PutsFit" "', argument " "7"" of type '" "float""'");
+  } 
+  arg7 = static_cast< float >(val7);
+  (arg1)->PutsFit(arg2,arg3,arg4,(char const *)arg5,(char const *)arg6,arg7);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_PutsFit__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  char *arg5 = (char *) 0 ;
+  char *arg6 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  int res6 ;
+  char *buf6 = 0 ;
+  int alloc6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_PutsFit",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_PutsFit" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_PutsFit" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_PutsFit" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_PutsFit" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_PutsFit" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  res6 = SWIG_AsCharPtrAndSize(obj5, &buf6, NULL, &alloc6);
+  if (!SWIG_IsOK(res6)) {
+    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "mglGraph_PutsFit" "', argument " "6"" of type '" "char const *""'");
+  }
+  arg6 = reinterpret_cast< char * >(buf6);
+  (arg1)->PutsFit(arg2,arg3,arg4,(char const *)arg5,(char const *)arg6);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  if (alloc6 == SWIG_NEWOBJ) delete[] buf6;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_PutsFit__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  char *arg5 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int res5 ;
+  char *buf5 = 0 ;
+  int alloc5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_PutsFit",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_PutsFit" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_PutsFit" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_PutsFit" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_PutsFit" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5);
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_PutsFit" "', argument " "5"" of type '" "char const *""'");
+  }
+  arg5 = reinterpret_cast< char * >(buf5);
+  (arg1)->PutsFit(arg2,arg3,arg4,(char const *)arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return resultobj;
+fail:
+  if (alloc5 == SWIG_NEWOBJ) delete[] buf5;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_PutsFit__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  float arg2 ;
+  float arg3 ;
+  float arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_PutsFit",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_PutsFit" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  ecode2 = SWIG_AsVal_float(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglGraph_PutsFit" "', argument " "2"" of type '" "float""'");
+  } 
+  arg2 = static_cast< float >(val2);
+  ecode3 = SWIG_AsVal_float(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "mglGraph_PutsFit" "', argument " "3"" of type '" "float""'");
+  } 
+  arg3 = static_cast< float >(val3);
+  ecode4 = SWIG_AsVal_float(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglGraph_PutsFit" "', argument " "4"" of type '" "float""'");
+  } 
+  arg4 = static_cast< float >(val4);
+  (arg1)->PutsFit(arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_PutsFit(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[8];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 7); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglGraph_PutsFit__SWIG_3(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_PutsFit__SWIG_2(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                return _wrap_mglGraph_PutsFit__SWIG_1(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 7) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_float(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_float(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          {
+            int res = SWIG_AsVal_float(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            int res = SWIG_AsCharPtrAndSize(argv[4], 0, NULL, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              int res = SWIG_AsCharPtrAndSize(argv[5], 0, NULL, 0);
+              _v = SWIG_CheckState(res);
+              if (_v) {
+                {
+                  int res = SWIG_AsVal_float(argv[6], NULL);
+                  _v = SWIG_CheckState(res);
+                }
+                if (_v) {
+                  return _wrap_mglGraph_PutsFit__SWIG_0(self, args);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_PutsFit'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    PutsFit(mglGraph *,float,float,float,char const *,char const *,float)\n"
+    "    PutsFit(mglGraph *,float,float,float,char const *,char const *)\n"
+    "    PutsFit(mglGraph *,float,float,float,char const *)\n"
+    "    PutsFit(mglGraph *,float,float,float)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_GetFit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  char *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglGraph_GetFit",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_GetFit" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  result = (char *)(arg1)->GetFit();
+  resultobj = SWIG_FromCharPtr((const char *)result);
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_PDE__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  float arg5 ;
+  float arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mglGraph_PDE",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_PDE" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_PDE" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_PDE" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_PDE" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_PDE" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_PDE" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_PDE" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  ecode6 = SWIG_AsVal_float(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "mglGraph_PDE" "', argument " "6"" of type '" "float""'");
+  } 
+  arg6 = static_cast< float >(val6);
+  result = (arg1)->PDE((char const *)arg2,*arg3,*arg4,arg5,arg6);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_PDE__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  float arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_PDE",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_PDE" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_PDE" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_PDE" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_PDE" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_PDE" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_PDE" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  ecode5 = SWIG_AsVal_float(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "mglGraph_PDE" "', argument " "5"" of type '" "float""'");
+  } 
+  arg5 = static_cast< float >(val5);
+  result = (arg1)->PDE((char const *)arg2,*arg3,*arg4,arg5);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_PDE__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  char *arg2 = (char *) 0 ;
+  mglData *arg3 = 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_PDE",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_PDE" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_PDE" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_PDE" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  if (!argp3) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_PDE" "', argument " "3"" of type '" "mglData &""'"); 
+  }
+  arg3 = reinterpret_cast< mglData * >(argp3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_PDE" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_PDE" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  result = (arg1)->PDE((char const *)arg2,*arg3,*arg4);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_PDE(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[7];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_PDE__SWIG_2(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              return _wrap_mglGraph_PDE__SWIG_1(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  if (argc == 6) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_mglData, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            {
+              int res = SWIG_AsVal_float(argv[4], NULL);
+              _v = SWIG_CheckState(res);
+            }
+            if (_v) {
+              {
+                int res = SWIG_AsVal_float(argv[5], NULL);
+                _v = SWIG_CheckState(res);
+              }
+              if (_v) {
+                return _wrap_mglGraph_PDE__SWIG_0(self, args);
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_PDE'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    PDE(mglGraph *,char const *,mglData &,mglData &,float,float)\n"
+    "    PDE(mglGraph *,char const *,mglData &,mglData &,float)\n"
+    "    PDE(mglGraph *,char const *,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Fill__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglGraph_Fill",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fill" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fill" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fill" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fill" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Fill(*arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Fill__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  mglData *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglGraph_Fill",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fill" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fill" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fill" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fill" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fill" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fill" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  (arg1)->Fill(*arg2,(char const *)arg3,*arg4);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Fill__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglGraph *arg1 = (mglGraph *) 0 ;
+  mglData *arg2 = 0 ;
+  char *arg3 = (char *) 0 ;
+  mglData *arg4 = 0 ;
+  mglData *arg5 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOOO:mglGraph_Fill",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglGraph_Fill" "', argument " "1"" of type '" "mglGraph *""'"); 
+  }
+  arg1 = reinterpret_cast< mglGraph * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglGraph_Fill" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fill" "', argument " "2"" of type '" "mglData &""'"); 
+  }
+  arg2 = reinterpret_cast< mglData * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglGraph_Fill" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "mglGraph_Fill" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  if (!argp4) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fill" "', argument " "4"" of type '" "mglData &""'"); 
+  }
+  arg4 = reinterpret_cast< mglData * >(argp4);
+  res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_mglData,  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "mglGraph_Fill" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  if (!argp5) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "mglGraph_Fill" "', argument " "5"" of type '" "mglData &""'"); 
+  }
+  arg5 = reinterpret_cast< mglData * >(argp5);
+  (arg1)->Fill(*arg2,(char const *)arg3,*arg4,*arg5);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglGraph_Fill(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[6];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglGraph_Fill__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_mglGraph_Fill__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 5) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglGraph, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglData, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_mglData, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            void *vptr = 0;
+            int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_mglData, 0);
+            _v = SWIG_CheckState(res);
+            if (_v) {
+              return _wrap_mglGraph_Fill__SWIG_2(self, args);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglGraph_Fill'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Fill(mglGraph *,mglData &,char const *)\n"
+    "    Fill(mglGraph *,mglData &,char const *,mglData &)\n"
+    "    Fill(mglGraph *,mglData &,char const *,mglData &,mglData &)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *mglGraph_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *obj;
+  if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
+  SWIG_TypeNewClientData(SWIGTYPE_p_mglGraph, SWIG_NewClientData(obj));
+  return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_mglParse(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglParse *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)":new_mglParse")) SWIG_fail;
+  result = (mglParse *)new mglParse();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mglParse, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_mglParse(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglParse *arg1 = (mglParse *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:delete_mglParse",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglParse, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_mglParse" "', argument " "1"" of type '" "mglParse *""'"); 
+  }
+  arg1 = reinterpret_cast< mglParse * >(argp1);
+  delete arg1;
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglParse_AddParam__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglParse *arg1 = (mglParse *) 0 ;
+  int arg2 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglParse_AddParam",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglParse, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglParse_AddParam" "', argument " "1"" of type '" "mglParse *""'"); 
+  }
+  arg1 = reinterpret_cast< mglParse * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglParse_AddParam" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglParse_AddParam" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->AddParam(arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglParse_AddParam__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglParse *arg1 = (mglParse *) 0 ;
+  int arg2 ;
+  wchar_t *arg3 = (wchar_t *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglParse_AddParam",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglParse, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglParse_AddParam" "', argument " "1"" of type '" "mglParse *""'"); 
+  }
+  arg1 = reinterpret_cast< mglParse * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglParse_AddParam" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglParse_AddParam" "', argument " "3"" of type '" "wchar_t const *""'"); 
+  }
+  arg3 = reinterpret_cast< wchar_t * >(argp3);
+  (arg1)->AddParam(arg2,(wchar_t const *)arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglParse_AddParam(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglParse, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_wchar_t, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglParse_AddParam__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglParse, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_int(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglParse_AddParam__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglParse_AddParam'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    AddParam(mglParse *,int,char const *)\n"
+    "    AddParam(mglParse *,int,wchar_t const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglParse_AddVar(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglParse *arg1 = (mglParse *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglParse_AddVar",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglParse, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglParse_AddVar" "', argument " "1"" of type '" "mglParse *""'"); 
+  }
+  arg1 = reinterpret_cast< mglParse * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglParse_AddVar" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  result = (arg1)->AddVar((char const *)arg2);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglParse_FindVar(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglParse *arg1 = (mglParse *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  mglData result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglParse_FindVar",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglParse, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglParse_FindVar" "', argument " "1"" of type '" "mglParse *""'"); 
+  }
+  arg1 = reinterpret_cast< mglParse * >(argp1);
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglParse_FindVar" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = reinterpret_cast< char * >(buf2);
+  result = (arg1)->FindVar((char const *)arg2);
+  resultobj = SWIG_NewPointerObj((new mglData(static_cast< const mglData& >(result))), SWIGTYPE_p_mglData, SWIG_POINTER_OWN |  0 );
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return resultobj;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglParse_Parse__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglParse *arg1 = (mglParse *) 0 ;
+  mglGraph *arg2 = (mglGraph *) 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  int result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglParse_Parse",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglParse, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglParse_Parse" "', argument " "1"" of type '" "mglParse *""'"); 
+  }
+  arg1 = reinterpret_cast< mglParse * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglParse_Parse" "', argument " "2"" of type '" "mglGraph *""'"); 
+  }
+  arg2 = reinterpret_cast< mglGraph * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglParse_Parse" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglParse_Parse" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  result = (int)(arg1)->Parse(arg2,(char const *)arg3,arg4);
+  resultobj = SWIG_From_int(static_cast< int >(result));
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglParse_Parse__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglParse *arg1 = (mglParse *) 0 ;
+  mglGraph *arg2 = (mglGraph *) 0 ;
+  wchar_t *arg3 = (wchar_t *) 0 ;
+  int arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  int result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:mglParse_Parse",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglParse, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglParse_Parse" "', argument " "1"" of type '" "mglParse *""'"); 
+  }
+  arg1 = reinterpret_cast< mglParse * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglParse_Parse" "', argument " "2"" of type '" "mglGraph *""'"); 
+  }
+  arg2 = reinterpret_cast< mglGraph * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglParse_Parse" "', argument " "3"" of type '" "wchar_t const *""'"); 
+  }
+  arg3 = reinterpret_cast< wchar_t * >(argp3);
+  ecode4 = SWIG_AsVal_int(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "mglParse_Parse" "', argument " "4"" of type '" "int""'");
+  } 
+  arg4 = static_cast< int >(val4);
+  result = (int)(arg1)->Parse(arg2,(wchar_t const *)arg3,arg4);
+  resultobj = SWIG_From_int(static_cast< int >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglParse_Parse(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglParse, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglGraph, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_wchar_t, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglParse_Parse__SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglParse, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglGraph, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_int(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_mglParse_Parse__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglParse_Parse'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Parse(mglParse *,mglGraph *,char const *,int)\n"
+    "    Parse(mglParse *,mglGraph *,wchar_t const *,int)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglParse_ScanFunc(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglParse *arg1 = (mglParse *) 0 ;
+  wchar_t *arg2 = (wchar_t *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglParse_ScanFunc",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglParse, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglParse_ScanFunc" "', argument " "1"" of type '" "mglParse *""'"); 
+  }
+  arg1 = reinterpret_cast< mglParse * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglParse_ScanFunc" "', argument " "2"" of type '" "wchar_t const *""'"); 
+  }
+  arg2 = reinterpret_cast< wchar_t * >(argp2);
+  (arg1)->ScanFunc((wchar_t const *)arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglParse_Execute__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglParse *arg1 = (mglParse *) 0 ;
+  mglGraph *arg2 = (mglGraph *) 0 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglParse_Execute",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglParse, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglParse_Execute" "', argument " "1"" of type '" "mglParse *""'"); 
+  }
+  arg1 = reinterpret_cast< mglParse * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglParse_Execute" "', argument " "2"" of type '" "mglGraph *""'"); 
+  }
+  arg2 = reinterpret_cast< mglGraph * >(argp2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglParse_Execute" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = reinterpret_cast< char * >(buf3);
+  (arg1)->Execute(arg2,(char const *)arg3);
+  resultobj = SWIG_Py_Void();
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglParse_Execute__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglParse *arg1 = (mglParse *) 0 ;
+  mglGraph *arg2 = (mglGraph *) 0 ;
+  wchar_t *arg3 = (wchar_t *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:mglParse_Execute",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglParse, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglParse_Execute" "', argument " "1"" of type '" "mglParse *""'"); 
+  }
+  arg1 = reinterpret_cast< mglParse * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_mglGraph, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mglParse_Execute" "', argument " "2"" of type '" "mglGraph *""'"); 
+  }
+  arg2 = reinterpret_cast< mglGraph * >(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_wchar_t, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "mglParse_Execute" "', argument " "3"" of type '" "wchar_t const *""'"); 
+  }
+  arg3 = reinterpret_cast< wchar_t * >(argp3);
+  (arg1)->Execute(arg2,(wchar_t const *)arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglParse_Execute(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = (int)PyObject_Length(args);
+  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglParse, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglGraph, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_wchar_t, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglParse_Execute__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mglParse, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_mglGraph, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_mglParse_Execute__SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'mglParse_Execute'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Execute(mglParse *,mglGraph *,char const *)\n"
+    "    Execute(mglParse *,mglGraph *,wchar_t const *)\n");
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglParse_RestoreOnce(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglParse *arg1 = (mglParse *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mglParse_RestoreOnce",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglParse, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglParse_RestoreOnce" "', argument " "1"" of type '" "mglParse *""'"); 
+  }
+  arg1 = reinterpret_cast< mglParse * >(argp1);
+  (arg1)->RestoreOnce();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mglParse_AllowSetSize(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mglParse *arg1 = (mglParse *) 0 ;
+  bool arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:mglParse_AllowSetSize",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mglParse, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mglParse_AllowSetSize" "', argument " "1"" of type '" "mglParse *""'"); 
+  }
+  arg1 = reinterpret_cast< mglParse * >(argp1);
+  ecode2 = SWIG_AsVal_bool(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mglParse_AllowSetSize" "', argument " "2"" of type '" "bool""'");
+  } 
+  arg2 = static_cast< bool >(val2);
+  (arg1)->AllowSetSize(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *mglParse_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *obj;
+  if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
+  SWIG_TypeNewClientData(SWIGTYPE_p_mglParse, SWIG_NewClientData(obj));
+  return SWIG_Py_Void();
+}
+
+static PyMethodDef SwigMethods[] = {
+	 { (char *)"SWIG_PyInstanceMethod_New", (PyCFunction)SWIG_PyInstanceMethod_New, METH_O, NULL},
+	 { (char *)"mglPoint_x_set", _wrap_mglPoint_x_set, METH_VARARGS, NULL},
+	 { (char *)"mglPoint_x_get", _wrap_mglPoint_x_get, METH_VARARGS, NULL},
+	 { (char *)"mglPoint_y_set", _wrap_mglPoint_y_set, METH_VARARGS, NULL},
+	 { (char *)"mglPoint_y_get", _wrap_mglPoint_y_get, METH_VARARGS, NULL},
+	 { (char *)"mglPoint_z_set", _wrap_mglPoint_z_set, METH_VARARGS, NULL},
+	 { (char *)"mglPoint_z_get", _wrap_mglPoint_z_get, METH_VARARGS, NULL},
+	 { (char *)"new_mglPoint", _wrap_new_mglPoint, METH_VARARGS, NULL},
+	 { (char *)"delete_mglPoint", _wrap_delete_mglPoint, METH_VARARGS, NULL},
+	 { (char *)"mglPoint_swigregister", mglPoint_swigregister, METH_VARARGS, NULL},
+	 { (char *)"delete_mglData", _wrap_delete_mglData, METH_VARARGS, NULL},
+	 { (char *)"new_mglData", _wrap_new_mglData, METH_VARARGS, NULL},
+	 { (char *)"mglData_Self", _wrap_mglData_Self, METH_VARARGS, NULL},
+	 { (char *)"mglData_Rearrange", _wrap_mglData_Rearrange, METH_VARARGS, NULL},
+	 { (char *)"mglData_Set", _wrap_mglData_Set, METH_VARARGS, NULL},
+	 { (char *)"mglData_Read", _wrap_mglData_Read, METH_VARARGS, NULL},
+	 { (char *)"mglData_Save", _wrap_mglData_Save, METH_VARARGS, NULL},
+	 { (char *)"mglData_Export", _wrap_mglData_Export, METH_VARARGS, NULL},
+	 { (char *)"mglData_Import", _wrap_mglData_Import, METH_VARARGS, NULL},
+	 { (char *)"mglData_ReadMat", _wrap_mglData_ReadMat, METH_VARARGS, NULL},
+	 { (char *)"mglData_Create", _wrap_mglData_Create, METH_VARARGS, NULL},
+	 { (char *)"mglData_Extend", _wrap_mglData_Extend, METH_VARARGS, NULL},
+	 { (char *)"mglData_Transpose", _wrap_mglData_Transpose, METH_VARARGS, NULL},
+	 { (char *)"mglData_Norm", _wrap_mglData_Norm, METH_VARARGS, NULL},
+	 { (char *)"mglData_NormSl", _wrap_mglData_NormSl, METH_VARARGS, NULL},
+	 { (char *)"mglData_Put", _wrap_mglData_Put, METH_VARARGS, NULL},
+	 { (char *)"mglData_Modify", _wrap_mglData_Modify, METH_VARARGS, NULL},
+	 { (char *)"mglData_Fill", _wrap_mglData_Fill, METH_VARARGS, NULL},
+	 { (char *)"mglData_FillSample", _wrap_mglData_FillSample, METH_VARARGS, NULL},
+	 { (char *)"mglData_Column", _wrap_mglData_Column, METH_VARARGS, NULL},
+	 { (char *)"mglData_SetColumnId", _wrap_mglData_SetColumnId, METH_VARARGS, NULL},
+	 { (char *)"mglData_Squeeze", _wrap_mglData_Squeeze, METH_VARARGS, NULL},
+	 { (char *)"mglData_Crop", _wrap_mglData_Crop, METH_VARARGS, NULL},
+	 { (char *)"mglData_Envelop", _wrap_mglData_Envelop, METH_VARARGS, NULL},
+	 { (char *)"mglData_Sew", _wrap_mglData_Sew, METH_VARARGS, NULL},
+	 { (char *)"mglData_Smooth", _wrap_mglData_Smooth, METH_VARARGS, NULL},
+	 { (char *)"mglData_SubData", _wrap_mglData_SubData, METH_VARARGS, NULL},
+	 { (char *)"mglData_Hist", _wrap_mglData_Hist, METH_VARARGS, NULL},
+	 { (char *)"mglData_Sum", _wrap_mglData_Sum, METH_VARARGS, NULL},
+	 { (char *)"mglData_Max", _wrap_mglData_Max, METH_VARARGS, NULL},
+	 { (char *)"mglData_Min", _wrap_mglData_Min, METH_VARARGS, NULL},
+	 { (char *)"mglData_Resize", _wrap_mglData_Resize, METH_VARARGS, NULL},
+	 { (char *)"mglData_Combine", _wrap_mglData_Combine, METH_VARARGS, NULL},
+	 { (char *)"mglData_Evaluate", _wrap_mglData_Evaluate, METH_VARARGS, NULL},
+	 { (char *)"mglData_CumSum", _wrap_mglData_CumSum, METH_VARARGS, NULL},
+	 { (char *)"mglData_Integral", _wrap_mglData_Integral, METH_VARARGS, NULL},
+	 { (char *)"mglData_Diff", _wrap_mglData_Diff, METH_VARARGS, NULL},
+	 { (char *)"mglData_Diff2", _wrap_mglData_Diff2, METH_VARARGS, NULL},
+	 { (char *)"mglData_Swap", _wrap_mglData_Swap, METH_VARARGS, NULL},
+	 { (char *)"mglData_Roll", _wrap_mglData_Roll, METH_VARARGS, NULL},
+	 { (char *)"mglData_Mirror", _wrap_mglData_Mirror, METH_VARARGS, NULL},
+	 { (char *)"mglData_Hankel", _wrap_mglData_Hankel, METH_VARARGS, NULL},
+	 { (char *)"mglData_SinFFT", _wrap_mglData_SinFFT, METH_VARARGS, NULL},
+	 { (char *)"mglData_CosFFT", _wrap_mglData_CosFFT, METH_VARARGS, NULL},
+	 { (char *)"mglData_Spline", _wrap_mglData_Spline, METH_VARARGS, NULL},
+	 { (char *)"mglData_Spline1", _wrap_mglData_Spline1, METH_VARARGS, NULL},
+	 { (char *)"mglData_Linear", _wrap_mglData_Linear, METH_VARARGS, NULL},
+	 { (char *)"mglData_Linear1", _wrap_mglData_Linear1, METH_VARARGS, NULL},
+	 { (char *)"mglData_Insert", _wrap_mglData_Insert, METH_VARARGS, NULL},
+	 { (char *)"mglData_Delete", _wrap_mglData_Delete, METH_VARARGS, NULL},
+	 { (char *)"mglData_Last", _wrap_mglData_Last, METH_VARARGS, NULL},
+	 { (char *)"mglData_Find", _wrap_mglData_Find, METH_VARARGS, NULL},
+	 { (char *)"mglData_FindAny", _wrap_mglData_FindAny, METH_VARARGS, NULL},
+	 { (char *)"mglData_Maximal", _wrap_mglData_Maximal, METH_VARARGS, NULL},
+	 { (char *)"mglData_Minimal", _wrap_mglData_Minimal, METH_VARARGS, NULL},
+	 { (char *)"mglData_Momentum", _wrap_mglData_Momentum, METH_VARARGS, NULL},
+	 { (char *)"mglData_v", _wrap_mglData_v, METH_VARARGS, NULL},
+	 { (char *)"mglData_GetVal", _wrap_mglData_GetVal, METH_VARARGS, NULL},
+	 { (char *)"mglData_SetVal", _wrap_mglData_SetVal, METH_VARARGS, NULL},
+	 { (char *)"mglData_GetNx", _wrap_mglData_GetNx, METH_VARARGS, NULL},
+	 { (char *)"mglData_GetNy", _wrap_mglData_GetNy, METH_VARARGS, NULL},
+	 { (char *)"mglData_GetNz", _wrap_mglData_GetNz, METH_VARARGS, NULL},
+	 { (char *)"mglData_GetData", _wrap_mglData_GetData, METH_VARARGS, NULL},
+	 { (char *)"mglData___getitem__", _wrap_mglData___getitem__, METH_VARARGS, NULL},
+	 { (char *)"mglData___paren", _wrap_mglData___paren, METH_VARARGS, NULL},
+	 { (char *)"mglData___setitem__", _wrap_mglData___setitem__, METH_VARARGS, NULL},
+	 { (char *)"mglData___paren_asgn", _wrap_mglData___paren_asgn, METH_VARARGS, NULL},
+	 { (char *)"mglData_swigregister", mglData_swigregister, METH_VARARGS, NULL},
+	 { (char *)"new_mglGraph", _wrap_new_mglGraph, METH_VARARGS, NULL},
+	 { (char *)"delete_mglGraph", _wrap_delete_mglGraph, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Self", _wrap_mglGraph_Self, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_GetWarn", _wrap_mglGraph_GetWarn, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_DefaultPlotParam", _wrap_mglGraph_DefaultPlotParam, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetPalColor", _wrap_mglGraph_SetPalColor, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetPalNum", _wrap_mglGraph_SetPalNum, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetPalette", _wrap_mglGraph_SetPalette, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetScheme", _wrap_mglGraph_SetScheme, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetRotatedText", _wrap_mglGraph_SetRotatedText, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetCut", _wrap_mglGraph_SetCut, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetCutBox", _wrap_mglGraph_SetCutBox, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetTickLen", _wrap_mglGraph_SetTickLen, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetTickStl", _wrap_mglGraph_SetTickStl, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetBaseLineWidth", _wrap_mglGraph_SetBaseLineWidth, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetSize", _wrap_mglGraph_SetSize, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetBarWidth", _wrap_mglGraph_SetBarWidth, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetMarkSize", _wrap_mglGraph_SetMarkSize, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetArrowSize", _wrap_mglGraph_SetArrowSize, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetFontSize", _wrap_mglGraph_SetFontSize, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetFontDef", _wrap_mglGraph_SetFontDef, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetAlphaDef", _wrap_mglGraph_SetAlphaDef, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetAxialDir", _wrap_mglGraph_SetAxialDir, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetMeshNum", _wrap_mglGraph_SetMeshNum, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Zoom", _wrap_mglGraph_Zoom, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetPlotFactor", _wrap_mglGraph_SetPlotFactor, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetDrawFace", _wrap_mglGraph_SetDrawFace, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetLegendBox", _wrap_mglGraph_SetLegendBox, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetLegendMarks", _wrap_mglGraph_SetLegendMarks, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_LoadFont", _wrap_mglGraph_LoadFont, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_CopyFont", _wrap_mglGraph_CopyFont, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_RestoreFont", _wrap_mglGraph_RestoreFont, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_ShowImage", _wrap_mglGraph_ShowImage, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_WriteFrame", _wrap_mglGraph_WriteFrame, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_WriteIDTF", _wrap_mglGraph_WriteIDTF, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_WriteJPEG", _wrap_mglGraph_WriteJPEG, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_WritePNG", _wrap_mglGraph_WritePNG, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_WriteEPS", _wrap_mglGraph_WriteEPS, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_WriteSVG", _wrap_mglGraph_WriteSVG, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_WriteGIF", _wrap_mglGraph_WriteGIF, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_StartGIF", _wrap_mglGraph_StartGIF, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_CloseGIF", _wrap_mglGraph_CloseGIF, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_NewFrame", _wrap_mglGraph_NewFrame, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_EndFrame", _wrap_mglGraph_EndFrame, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_GetNumFrame", _wrap_mglGraph_GetNumFrame, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_ResetFrames", _wrap_mglGraph_ResetFrames, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Flush", _wrap_mglGraph_Flush, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_GetRGB", _wrap_mglGraph_GetRGB, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_GetRGBA", _wrap_mglGraph_GetRGBA, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_GetBGRN", _wrap_mglGraph_GetBGRN, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_GetWidth", _wrap_mglGraph_GetWidth, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_GetHeight", _wrap_mglGraph_GetHeight, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_CalcXYZ", _wrap_mglGraph_CalcXYZ, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_CalcScr", _wrap_mglGraph_CalcScr, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetTranspType", _wrap_mglGraph_SetTranspType, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetTransparent", _wrap_mglGraph_SetTransparent, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Alpha", _wrap_mglGraph_Alpha, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Fog", _wrap_mglGraph_Fog, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Light", _wrap_mglGraph_Light, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_AddLight", _wrap_mglGraph_AddLight, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetAmbient", _wrap_mglGraph_SetAmbient, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Identity", _wrap_mglGraph_Identity, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Clf", _wrap_mglGraph_Clf, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SubPlot", _wrap_mglGraph_SubPlot, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_InPlot", _wrap_mglGraph_InPlot, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_ColumnPlot", _wrap_mglGraph_ColumnPlot, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_StickPlot", _wrap_mglGraph_StickPlot, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Aspect", _wrap_mglGraph_Aspect, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Rotate", _wrap_mglGraph_Rotate, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_RotateN", _wrap_mglGraph_RotateN, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Perspective", _wrap_mglGraph_Perspective, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetTicks", _wrap_mglGraph_SetTicks, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_AdjustTicks", _wrap_mglGraph_AdjustTicks, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetRanges", _wrap_mglGraph_SetRanges, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetAutoRanges", _wrap_mglGraph_SetAutoRanges, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetOrigin", _wrap_mglGraph_SetOrigin, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetCRange", _wrap_mglGraph_SetCRange, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetXRange", _wrap_mglGraph_SetXRange, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetYRange", _wrap_mglGraph_SetYRange, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetZRange", _wrap_mglGraph_SetZRange, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetFunc", _wrap_mglGraph_SetFunc, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetCoor", _wrap_mglGraph_SetCoor, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Ternary", _wrap_mglGraph_Ternary, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_CutOff", _wrap_mglGraph_CutOff, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Box", _wrap_mglGraph_Box, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Axis", _wrap_mglGraph_Axis, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Label", _wrap_mglGraph_Label, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetTuneTicks", _wrap_mglGraph_SetTuneTicks, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetXTT", _wrap_mglGraph_SetXTT, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetYTT", _wrap_mglGraph_SetYTT, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetZTT", _wrap_mglGraph_SetZTT, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SetCTT", _wrap_mglGraph_SetCTT, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Ball", _wrap_mglGraph_Ball, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Line", _wrap_mglGraph_Line, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_FaceX", _wrap_mglGraph_FaceX, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_FaceY", _wrap_mglGraph_FaceY, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_FaceZ", _wrap_mglGraph_FaceZ, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Curve", _wrap_mglGraph_Curve, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Drop", _wrap_mglGraph_Drop, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Sphere", _wrap_mglGraph_Sphere, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Cone", _wrap_mglGraph_Cone, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Putsw", _wrap_mglGraph_Putsw, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Puts", _wrap_mglGraph_Puts, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Title", _wrap_mglGraph_Title, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Colorbar", _wrap_mglGraph_Colorbar, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SimplePlot", _wrap_mglGraph_SimplePlot, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_AddLegend", _wrap_mglGraph_AddLegend, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_AddLegendw", _wrap_mglGraph_AddLegendw, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_ClearLegend", _wrap_mglGraph_ClearLegend, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Legend", _wrap_mglGraph_Legend, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Plot", _wrap_mglGraph_Plot, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_BoxPlot", _wrap_mglGraph_BoxPlot, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Radar", _wrap_mglGraph_Radar, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Tens", _wrap_mglGraph_Tens, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Area", _wrap_mglGraph_Area, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Stem", _wrap_mglGraph_Stem, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Step", _wrap_mglGraph_Step, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Bars", _wrap_mglGraph_Bars, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Barh", _wrap_mglGraph_Barh, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Region", _wrap_mglGraph_Region, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Torus", _wrap_mglGraph_Torus, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Text", _wrap_mglGraph_Text, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Chart", _wrap_mglGraph_Chart, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Error", _wrap_mglGraph_Error, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Mark", _wrap_mglGraph_Mark, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_TextMark", _wrap_mglGraph_TextMark, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Tube", _wrap_mglGraph_Tube, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Grid", _wrap_mglGraph_Grid, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Mesh", _wrap_mglGraph_Mesh, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Fall", _wrap_mglGraph_Fall, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Belt", _wrap_mglGraph_Belt, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Surf", _wrap_mglGraph_Surf, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Tile", _wrap_mglGraph_Tile, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_TileS", _wrap_mglGraph_TileS, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Dens", _wrap_mglGraph_Dens, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Boxs", _wrap_mglGraph_Boxs, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Cont", _wrap_mglGraph_Cont, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_ContF", _wrap_mglGraph_ContF, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_ContD", _wrap_mglGraph_ContD, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Axial", _wrap_mglGraph_Axial, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SurfC", _wrap_mglGraph_SurfC, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_SurfA", _wrap_mglGraph_SurfA, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_STFA", _wrap_mglGraph_STFA, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Dew", _wrap_mglGraph_Dew, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Traj", _wrap_mglGraph_Traj, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Vect", _wrap_mglGraph_Vect, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_VectL", _wrap_mglGraph_VectL, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_VectC", _wrap_mglGraph_VectC, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Map", _wrap_mglGraph_Map, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Surf3A", _wrap_mglGraph_Surf3A, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Surf3C", _wrap_mglGraph_Surf3C, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Flow", _wrap_mglGraph_Flow, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_FlowP", _wrap_mglGraph_FlowP, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Grad", _wrap_mglGraph_Grad, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Pipe", _wrap_mglGraph_Pipe, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Grid3", _wrap_mglGraph_Grid3, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_GridA", _wrap_mglGraph_GridA, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Dens3", _wrap_mglGraph_Dens3, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_DensA", _wrap_mglGraph_DensA, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Surf3", _wrap_mglGraph_Surf3, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Cloud", _wrap_mglGraph_Cloud, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Cont3", _wrap_mglGraph_Cont3, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_ContA", _wrap_mglGraph_ContA, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_ContF3", _wrap_mglGraph_ContF3, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_ContFA", _wrap_mglGraph_ContFA, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Beam", _wrap_mglGraph_Beam, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_TriPlot", _wrap_mglGraph_TriPlot, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_QuadPlot", _wrap_mglGraph_QuadPlot, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_TriCont", _wrap_mglGraph_TriCont, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_TriContV", _wrap_mglGraph_TriContV, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Dots", _wrap_mglGraph_Dots, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Crust", _wrap_mglGraph_Crust, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_DensX", _wrap_mglGraph_DensX, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_DensY", _wrap_mglGraph_DensY, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_DensZ", _wrap_mglGraph_DensZ, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_ContX", _wrap_mglGraph_ContX, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_ContY", _wrap_mglGraph_ContY, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_ContZ", _wrap_mglGraph_ContZ, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_ContFX", _wrap_mglGraph_ContFX, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_ContFY", _wrap_mglGraph_ContFY, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_ContFZ", _wrap_mglGraph_ContFZ, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Hist", _wrap_mglGraph_Hist, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Fit2", _wrap_mglGraph_Fit2, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Fit3", _wrap_mglGraph_Fit3, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Fit", _wrap_mglGraph_Fit, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_FitS", _wrap_mglGraph_FitS, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_PutsFit", _wrap_mglGraph_PutsFit, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_GetFit", _wrap_mglGraph_GetFit, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_PDE", _wrap_mglGraph_PDE, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_Fill", _wrap_mglGraph_Fill, METH_VARARGS, NULL},
+	 { (char *)"mglGraph_swigregister", mglGraph_swigregister, METH_VARARGS, NULL},
+	 { (char *)"new_mglParse", _wrap_new_mglParse, METH_VARARGS, NULL},
+	 { (char *)"delete_mglParse", _wrap_delete_mglParse, METH_VARARGS, NULL},
+	 { (char *)"mglParse_AddParam", _wrap_mglParse_AddParam, METH_VARARGS, NULL},
+	 { (char *)"mglParse_AddVar", _wrap_mglParse_AddVar, METH_VARARGS, NULL},
+	 { (char *)"mglParse_FindVar", _wrap_mglParse_FindVar, METH_VARARGS, NULL},
+	 { (char *)"mglParse_Parse", _wrap_mglParse_Parse, METH_VARARGS, NULL},
+	 { (char *)"mglParse_ScanFunc", _wrap_mglParse_ScanFunc, METH_VARARGS, NULL},
+	 { (char *)"mglParse_Execute", _wrap_mglParse_Execute, METH_VARARGS, NULL},
+	 { (char *)"mglParse_RestoreOnce", _wrap_mglParse_RestoreOnce, METH_VARARGS, NULL},
+	 { (char *)"mglParse_AllowSetSize", _wrap_mglParse_AllowSetSize, METH_VARARGS, NULL},
+	 { (char *)"mglParse_swigregister", mglParse_swigregister, METH_VARARGS, NULL},
+	 { NULL, NULL, 0, NULL }
+};
+
+
+/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
+
+static swig_type_info _swigt__p_HMDT = {"_p_HMDT", "HMDT *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_HMGL = {"_p_HMGL", "HMGL *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_double = {"_p_double", "double *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_float = {"_p_float", "float *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_gsl_matrix = {"_p_gsl_matrix", "gsl_matrix *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_gsl_vector = {"_p_gsl_vector", "gsl_vector *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_int = {"_p_int", "int *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_mglData = {"_p_mglData", "mglData *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_mglGraph = {"_p_mglGraph", "mglGraph *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_mglParse = {"_p_mglParse", "mglParse *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_mglPoint = {"_p_mglPoint", "mglPoint *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_mreal = {"_p_mreal", "mreal *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_p_double = {"_p_p_double", "double **", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_p_float = {"_p_p_float", "float **", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_p_p_double = {"_p_p_p_double", "double ***", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_p_p_float = {"_p_p_p_float", "float ***", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_wchar_t = {"_p_wchar_t", "wchar_t *", 0, 0, (void*)0, 0};
+
+static swig_type_info *swig_type_initial[] = {
+  &_swigt__p_HMDT,
+  &_swigt__p_HMGL,
+  &_swigt__p_char,
+  &_swigt__p_double,
+  &_swigt__p_float,
+  &_swigt__p_gsl_matrix,
+  &_swigt__p_gsl_vector,
+  &_swigt__p_int,
+  &_swigt__p_mglData,
+  &_swigt__p_mglGraph,
+  &_swigt__p_mglParse,
+  &_swigt__p_mglPoint,
+  &_swigt__p_mreal,
+  &_swigt__p_p_double,
+  &_swigt__p_p_float,
+  &_swigt__p_p_p_double,
+  &_swigt__p_p_p_float,
+  &_swigt__p_wchar_t,
+};
+
+static swig_cast_info _swigc__p_HMDT[] = {  {&_swigt__p_HMDT, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_HMGL[] = {  {&_swigt__p_HMGL, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_char[] = {  {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_double[] = {  {&_swigt__p_double, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_float[] = {  {&_swigt__p_float, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_gsl_matrix[] = {  {&_swigt__p_gsl_matrix, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_gsl_vector[] = {  {&_swigt__p_gsl_vector, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_int[] = {  {&_swigt__p_int, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_mglData[] = {  {&_swigt__p_mglData, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_mglGraph[] = {  {&_swigt__p_mglGraph, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_mglParse[] = {  {&_swigt__p_mglParse, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_mglPoint[] = {  {&_swigt__p_mglPoint, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_mreal[] = {  {&_swigt__p_mreal, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_p_double[] = {  {&_swigt__p_p_double, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_p_float[] = {  {&_swigt__p_p_float, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_p_p_double[] = {  {&_swigt__p_p_p_double, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_p_p_float[] = {  {&_swigt__p_p_p_float, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_wchar_t[] = {  {&_swigt__p_wchar_t, 0, 0, 0},{0, 0, 0, 0}};
+
+static swig_cast_info *swig_cast_initial[] = {
+  _swigc__p_HMDT,
+  _swigc__p_HMGL,
+  _swigc__p_char,
+  _swigc__p_double,
+  _swigc__p_float,
+  _swigc__p_gsl_matrix,
+  _swigc__p_gsl_vector,
+  _swigc__p_int,
+  _swigc__p_mglData,
+  _swigc__p_mglGraph,
+  _swigc__p_mglParse,
+  _swigc__p_mglPoint,
+  _swigc__p_mreal,
+  _swigc__p_p_double,
+  _swigc__p_p_float,
+  _swigc__p_p_p_double,
+  _swigc__p_p_p_float,
+  _swigc__p_wchar_t,
+};
+
+
+/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */
+
+static swig_const_info swig_const_table[] = {
+{0, 0, 0, 0.0, 0, 0}};
+
+#ifdef __cplusplus
+}
+#endif
+/* -----------------------------------------------------------------------------
+ * Type initialization:
+ * This problem is tough by the requirement that no dynamic 
+ * memory is used. Also, since swig_type_info structures store pointers to 
+ * swig_cast_info structures and swig_cast_info structures store pointers back
+ * to swig_type_info structures, we need some lookup code at initialization. 
+ * The idea is that swig generates all the structures that are needed. 
+ * The runtime then collects these partially filled structures. 
+ * The SWIG_InitializeModule function takes these initial arrays out of 
+ * swig_module, and does all the lookup, filling in the swig_module.types
+ * array with the correct data and linking the correct swig_cast_info
+ * structures together.
+ *
+ * The generated swig_type_info structures are assigned staticly to an initial 
+ * array. We just loop through that array, and handle each type individually.
+ * First we lookup if this type has been already loaded, and if so, use the
+ * loaded structure instead of the generated one. Then we have to fill in the
+ * cast linked list. The cast data is initially stored in something like a
+ * two-dimensional array. Each row corresponds to a type (there are the same
+ * number of rows as there are in the swig_type_initial array). Each entry in
+ * a column is one of the swig_cast_info structures for that type.
+ * The cast_initial array is actually an array of arrays, because each row has
+ * a variable number of columns. So to actually build the cast linked list,
+ * we find the array of casts associated with the type, and loop through it 
+ * adding the casts to the list. The one last trick we need to do is making
+ * sure the type pointer in the swig_cast_info struct is correct.
+ *
+ * First off, we lookup the cast->type name to see if it is already loaded. 
+ * There are three cases to handle:
+ *  1) If the cast->type has already been loaded AND the type we are adding
+ *     casting info to has not been loaded (it is in this module), THEN we
+ *     replace the cast->type pointer with the type pointer that has already
+ *     been loaded.
+ *  2) If BOTH types (the one we are adding casting info to, and the 
+ *     cast->type) are loaded, THEN the cast info has already been loaded by
+ *     the previous module so we just ignore it.
+ *  3) Finally, if cast->type has not already been loaded, then we add that
+ *     swig_cast_info to the linked list (because the cast->type) pointer will
+ *     be correct.
+ * ----------------------------------------------------------------------------- */
+
+#ifdef __cplusplus
+extern "C" {
+#if 0
+} /* c-mode */
+#endif
+#endif
+
+#if 0
+#define SWIGRUNTIME_DEBUG
+#endif
+
+
+SWIGRUNTIME void
+SWIG_InitializeModule(void *clientdata) {
+  size_t i;
+  swig_module_info *module_head, *iter;
+  int found, init;
+  
+  clientdata = clientdata;
+  
+  /* check to see if the circular list has been setup, if not, set it up */
+  if (swig_module.next==0) {
+    /* Initialize the swig_module */
+    swig_module.type_initial = swig_type_initial;
+    swig_module.cast_initial = swig_cast_initial;
+    swig_module.next = &swig_module;
+    init = 1;
+  } else {
+    init = 0;
+  }
+  
+  /* Try and load any already created modules */
+  module_head = SWIG_GetModule(clientdata);
+  if (!module_head) {
+    /* This is the first module loaded for this interpreter */
+    /* so set the swig module into the interpreter */
+    SWIG_SetModule(clientdata, &swig_module);
+    module_head = &swig_module;
+  } else {
+    /* the interpreter has loaded a SWIG module, but has it loaded this one? */
+    found=0;
+    iter=module_head;
+    do {
+      if (iter==&swig_module) {
+        found=1;
+        break;
+      }
+      iter=iter->next;
+    } while (iter!= module_head);
+    
+    /* if the is found in the list, then all is done and we may leave */
+    if (found) return;
+    /* otherwise we must add out module into the list */
+    swig_module.next = module_head->next;
+    module_head->next = &swig_module;
+  }
+  
+  /* When multiple interpeters are used, a module could have already been initialized in
+       a different interpreter, but not yet have a pointer in this interpreter.
+       In this case, we do not want to continue adding types... everything should be
+       set up already */
+  if (init == 0) return;
+  
+  /* Now work on filling in swig_module.types */
+#ifdef SWIGRUNTIME_DEBUG
+  printf("SWIG_InitializeModule: size %d\n", swig_module.size);
+#endif
+  for (i = 0; i < swig_module.size; ++i) {
+    swig_type_info *type = 0;
+    swig_type_info *ret;
+    swig_cast_info *cast;
+    
+#ifdef SWIGRUNTIME_DEBUG
+    printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
+#endif
+    
+    /* if there is another module already loaded */
+    if (swig_module.next != &swig_module) {
+      type = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, swig_module.type_initial[i]->name);
+    }
+    if (type) {
+      /* Overwrite clientdata field */
+#ifdef SWIGRUNTIME_DEBUG
+      printf("SWIG_InitializeModule: found type %s\n", type->name);
+#endif
+      if (swig_module.type_initial[i]->clientdata) {
+        type->clientdata = swig_module.type_initial[i]->clientdata;
+#ifdef SWIGRUNTIME_DEBUG
+        printf("SWIG_InitializeModule: found and overwrite type %s \n", type->name);
+#endif
+      }
+    } else {
+      type = swig_module.type_initial[i];
+    }
+    
+    /* Insert casting types */
+    cast = swig_module.cast_initial[i];
+    while (cast->type) {
+      /* Don't need to add information already in the list */
+      ret = 0;
+#ifdef SWIGRUNTIME_DEBUG
+      printf("SWIG_InitializeModule: look cast %s\n", cast->type->name);
+#endif
+      if (swig_module.next != &swig_module) {
+        ret = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, cast->type->name);
+#ifdef SWIGRUNTIME_DEBUG
+        if (ret) printf("SWIG_InitializeModule: found cast %s\n", ret->name);
+#endif
+      }
+      if (ret) {
+        if (type == swig_module.type_initial[i]) {
+#ifdef SWIGRUNTIME_DEBUG
+          printf("SWIG_InitializeModule: skip old type %s\n", ret->name);
+#endif
+          cast->type = ret;
+          ret = 0;
+        } else {
+          /* Check for casting already in the list */
+          swig_cast_info *ocast = SWIG_TypeCheck(ret->name, type);
+#ifdef SWIGRUNTIME_DEBUG
+          if (ocast) printf("SWIG_InitializeModule: skip old cast %s\n", ret->name);
+#endif
+          if (!ocast) ret = 0;
+        }
+      }
+      
+      if (!ret) {
+#ifdef SWIGRUNTIME_DEBUG
+        printf("SWIG_InitializeModule: adding cast %s\n", cast->type->name);
+#endif
+        if (type->cast) {
+          type->cast->prev = cast;
+          cast->next = type->cast;
+        }
+        type->cast = cast;
+      }
+      cast++;
+    }
+    /* Set entry in modules->types array equal to the type */
+    swig_module.types[i] = type;
+  }
+  swig_module.types[i] = 0;
+  
+#ifdef SWIGRUNTIME_DEBUG
+  printf("**** SWIG_InitializeModule: Cast List ******\n");
+  for (i = 0; i < swig_module.size; ++i) {
+    int j = 0;
+    swig_cast_info *cast = swig_module.cast_initial[i];
+    printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
+    while (cast->type) {
+      printf("SWIG_InitializeModule: cast type %s\n", cast->type->name);
+      cast++;
+      ++j;
+    }
+    printf("---- Total casts: %d\n",j);
+  }
+  printf("**** SWIG_InitializeModule: Cast List ******\n");
+#endif
+}
+
+/* This function will propagate the clientdata field of type to
+* any new swig_type_info structures that have been added into the list
+* of equivalent types.  It is like calling
+* SWIG_TypeClientData(type, clientdata) a second time.
+*/
+SWIGRUNTIME void
+SWIG_PropagateClientData(void) {
+  size_t i;
+  swig_cast_info *equiv;
+  static int init_run = 0;
+  
+  if (init_run) return;
+  init_run = 1;
+  
+  for (i = 0; i < swig_module.size; i++) {
+    if (swig_module.types[i]->clientdata) {
+      equiv = swig_module.types[i]->cast;
+      while (equiv) {
+        if (!equiv->converter) {
+          if (equiv->type && !equiv->type->clientdata)
+          SWIG_TypeClientData(equiv->type, swig_module.types[i]->clientdata);
+        }
+        equiv = equiv->next;
+      }
+    }
+  }
+}
+
+#ifdef __cplusplus
+#if 0
+{
+  /* c-mode */
+#endif
+}
+#endif
+
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+  
+  /* Python-specific SWIG API */
+#define SWIG_newvarlink()                             SWIG_Python_newvarlink()
+#define SWIG_addvarlink(p, name, get_attr, set_attr)  SWIG_Python_addvarlink(p, name, get_attr, set_attr)
+#define SWIG_InstallConstants(d, constants)           SWIG_Python_InstallConstants(d, constants)
+  
+  /* -----------------------------------------------------------------------------
+   * global variable support code.
+   * ----------------------------------------------------------------------------- */
+  
+  typedef struct swig_globalvar {
+    char       *name;                  /* Name of global variable */
+    PyObject *(*get_attr)(void);       /* Return the current value */
+    int       (*set_attr)(PyObject *); /* Set the value */
+    struct swig_globalvar *next;
+  } swig_globalvar;
+  
+  typedef struct swig_varlinkobject {
+    PyObject_HEAD
+    swig_globalvar *vars;
+  } swig_varlinkobject;
+  
+  SWIGINTERN PyObject *
+  swig_varlink_repr(swig_varlinkobject *SWIGUNUSEDPARM(v)) {
+#if PY_VERSION_HEX >= 0x03000000
+    return PyUnicode_InternFromString("<Swig global variables>");
+#else
+    return PyString_FromString("<Swig global variables>");
+#endif
+  }
+  
+  SWIGINTERN PyObject *
+  swig_varlink_str(swig_varlinkobject *v) {
+#if PY_VERSION_HEX >= 0x03000000
+    PyObject *str = PyUnicode_InternFromString("(");
+    PyObject *tail;
+    PyObject *joined;
+    swig_globalvar *var;
+    for (var = v->vars; var; var=var->next) {
+      tail = PyUnicode_FromString(var->name);
+      joined = PyUnicode_Concat(str, tail);
+      Py_DecRef(str);
+      Py_DecRef(tail);
+      str = joined;
+      if (var->next) {
+        tail = PyUnicode_InternFromString(", ");
+        joined = PyUnicode_Concat(str, tail);
+        Py_DecRef(str);
+        Py_DecRef(tail);
+        str = joined;
+      }
+    }
+    tail = PyUnicode_InternFromString(")");
+    joined = PyUnicode_Concat(str, tail);
+    Py_DecRef(str);
+    Py_DecRef(tail);
+    str = joined;
+#else
+    PyObject *str = PyString_FromString("(");
+    swig_globalvar *var;
+    for (var = v->vars; var; var=var->next) {
+      PyString_ConcatAndDel(&str,PyString_FromString(var->name));
+      if (var->next) PyString_ConcatAndDel(&str,PyString_FromString(", "));
+    }
+    PyString_ConcatAndDel(&str,PyString_FromString(")"));
+#endif
+    return str;
+  }
+  
+  SWIGINTERN int
+  swig_varlink_print(swig_varlinkobject *v, FILE *fp, int SWIGUNUSEDPARM(flags)) {
+    char *tmp;
+    PyObject *str = swig_varlink_str(v);
+    fprintf(fp,"Swig global variables ");
+    fprintf(fp,"%s\n", tmp = SWIG_Python_str_AsChar(str));
+    SWIG_Python_str_DelForPy3(tmp);
+    Py_DECREF(str);
+    return 0;
+  }
+  
+  SWIGINTERN void
+  swig_varlink_dealloc(swig_varlinkobject *v) {
+    swig_globalvar *var = v->vars;
+    while (var) {
+      swig_globalvar *n = var->next;
+      free(var->name);
+      free(var);
+      var = n;
+    }
+  }
+  
+  SWIGINTERN PyObject *
+  swig_varlink_getattr(swig_varlinkobject *v, char *n) {
+    PyObject *res = NULL;
+    swig_globalvar *var = v->vars;
+    while (var) {
+      if (strcmp(var->name,n) == 0) {
+        res = (*var->get_attr)();
+        break;
+      }
+      var = var->next;
+    }
+    if (res == NULL && !PyErr_Occurred()) {
+      PyErr_SetString(PyExc_NameError,"Unknown C global variable");
+    }
+    return res;
+  }
+  
+  SWIGINTERN int
+  swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p) {
+    int res = 1;
+    swig_globalvar *var = v->vars;
+    while (var) {
+      if (strcmp(var->name,n) == 0) {
+        res = (*var->set_attr)(p);
+        break;
+      }
+      var = var->next;
+    }
+    if (res == 1 && !PyErr_Occurred()) {
+      PyErr_SetString(PyExc_NameError,"Unknown C global variable");
+    }
+    return res;
+  }
+  
+  SWIGINTERN PyTypeObject*
+  swig_varlink_type(void) {
+    static char varlink__doc__[] = "Swig var link object";
+    static PyTypeObject varlink_type;
+    static int type_init = 0;  
+    if (!type_init) {
+      const PyTypeObject tmp
+      = {
+        /* PyObject header changed in Python 3 */
+#if PY_VERSION_HEX >= 0x03000000
+        PyVarObject_HEAD_INIT(&PyType_Type, 0)
+#else
+        PyObject_HEAD_INIT(NULL)
+        0,                                  /* Number of items in variable part (ob_size) */
+#endif
+        (char *)"swigvarlink",              /* Type name (tp_name) */
+        sizeof(swig_varlinkobject),         /* Basic size (tp_basicsize) */
+        0,                                  /* Itemsize (tp_itemsize) */
+        (destructor) swig_varlink_dealloc,  /* Deallocator (tp_dealloc) */ 
+        (printfunc) swig_varlink_print,     /* Print (tp_print) */
+        (getattrfunc) swig_varlink_getattr, /* get attr (tp_getattr) */
+        (setattrfunc) swig_varlink_setattr, /* Set attr (tp_setattr) */
+        0,                                  /* tp_compare */
+        (reprfunc) swig_varlink_repr,       /* tp_repr */
+        0,                                  /* tp_as_number */
+        0,                                  /* tp_as_sequence */
+        0,                                  /* tp_as_mapping */
+        0,                                  /* tp_hash */
+        0,                                  /* tp_call */
+        (reprfunc) swig_varlink_str,        /* tp_str */
+        0,                                  /* tp_getattro */
+        0,                                  /* tp_setattro */
+        0,                                  /* tp_as_buffer */
+        0,                                  /* tp_flags */
+        varlink__doc__,                     /* tp_doc */
+        0,                                  /* tp_traverse */
+        0,                                  /* tp_clear */
+        0,                                  /* tp_richcompare */
+        0,                                  /* tp_weaklistoffset */
+#if PY_VERSION_HEX >= 0x02020000
+        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* tp_iter -> tp_weaklist */
+#endif
+#if PY_VERSION_HEX >= 0x02030000
+        0,                                  /* tp_del */
+#endif
+#ifdef COUNT_ALLOCS
+        0,0,0,0                             /* tp_alloc -> tp_next */
+#endif
+      };
+      varlink_type = tmp;
+      /* for Python 3 we already assigned ob_type in PyVarObject_HEAD_INIT() */
+#if PY_VERSION_HEX < 0x03000000
+      varlink_type.ob_type = &PyType_Type;
+#endif
+      type_init = 1;
+    }
+    return &varlink_type;
+  }
+  
+  /* Create a variable linking object for use later */
+  SWIGINTERN PyObject *
+  SWIG_Python_newvarlink(void) {
+    swig_varlinkobject *result = PyObject_NEW(swig_varlinkobject, swig_varlink_type());
+    if (result) {
+      result->vars = 0;
+    }
+    return ((PyObject*) result);
+  }
+  
+  SWIGINTERN void 
+  SWIG_Python_addvarlink(PyObject *p, char *name, PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p)) {
+    swig_varlinkobject *v = (swig_varlinkobject *) p;
+    swig_globalvar *gv = (swig_globalvar *) malloc(sizeof(swig_globalvar));
+    if (gv) {
+      size_t size = strlen(name)+1;
+      gv->name = (char *)malloc(size);
+      if (gv->name) {
+        strncpy(gv->name,name,size);
+        gv->get_attr = get_attr;
+        gv->set_attr = set_attr;
+        gv->next = v->vars;
+      }
+    }
+    v->vars = gv;
+  }
+  
+  SWIGINTERN PyObject *
+  SWIG_globals(void) {
+    static PyObject *_SWIG_globals = 0; 
+    if (!_SWIG_globals) _SWIG_globals = SWIG_newvarlink();  
+    return _SWIG_globals;
+  }
+  
+  /* -----------------------------------------------------------------------------
+   * constants/methods manipulation
+   * ----------------------------------------------------------------------------- */
+  
+  /* Install Constants */
+  SWIGINTERN void
+  SWIG_Python_InstallConstants(PyObject *d, swig_const_info constants[]) {
+    PyObject *obj = 0;
+    size_t i;
+    for (i = 0; constants[i].type; ++i) {
+      switch(constants[i].type) {
+      case SWIG_PY_POINTER:
+        obj = SWIG_NewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0);
+        break;
+      case SWIG_PY_BINARY:
+        obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype));
+        break;
+      default:
+        obj = 0;
+        break;
+      }
+      if (obj) {
+        PyDict_SetItemString(d, constants[i].name, obj);
+        Py_DECREF(obj);
+      }
+    }
+  }
+  
+  /* -----------------------------------------------------------------------------*/
+  /* Fix SwigMethods to carry the callback ptrs when needed */
+  /* -----------------------------------------------------------------------------*/
+  
+  SWIGINTERN void
+  SWIG_Python_FixMethods(PyMethodDef *methods,
+    swig_const_info *const_table,
+    swig_type_info **types,
+    swig_type_info **types_initial) {
+    size_t i;
+    for (i = 0; methods[i].ml_name; ++i) {
+      const char *c = methods[i].ml_doc;
+      if (c && (c = strstr(c, "swig_ptr: "))) {
+        int j;
+        swig_const_info *ci = 0;
+        const char *name = c + 10;
+        for (j = 0; const_table[j].type; ++j) {
+          if (strncmp(const_table[j].name, name, 
+              strlen(const_table[j].name)) == 0) {
+            ci = &(const_table[j]);
+            break;
+          }
+        }
+        if (ci) {
+          size_t shift = (ci->ptype) - types;
+          swig_type_info *ty = types_initial[shift];
+          size_t ldoc = (c - methods[i].ml_doc);
+          size_t lptr = strlen(ty->name)+2*sizeof(void*)+2;
+          char *ndoc = (char*)malloc(ldoc + lptr + 10);
+          if (ndoc) {
+            char *buff = ndoc;
+            void *ptr = (ci->type == SWIG_PY_POINTER) ? ci->pvalue : 0;
+            if (ptr) {
+              strncpy(buff, methods[i].ml_doc, ldoc);
+              buff += ldoc;
+              strncpy(buff, "swig_ptr: ", 10);
+              buff += 10;
+              SWIG_PackVoidPtr(buff, ptr, ty->name, lptr);
+              methods[i].ml_doc = ndoc;
+            }
+          }
+        }
+      }
+    }
+  } 
+  
+#ifdef __cplusplus
+}
+#endif
+
+/* -----------------------------------------------------------------------------*
+ *  Partial Init method
+ * -----------------------------------------------------------------------------*/
+
+#ifdef __cplusplus
+extern "C"
+#endif
+
+SWIGEXPORT 
+#if PY_VERSION_HEX >= 0x03000000
+PyObject*
+#else
+void
+#endif
+SWIG_init(void) {
+  PyObject *m, *d;  
+#if PY_VERSION_HEX >= 0x03000000
+  static struct PyModuleDef SWIG_module = {
+    PyModuleDef_HEAD_INIT,
+    (char *) SWIG_name,
+    NULL,
+    -1,
+    SwigMethods,
+    NULL,
+    NULL,
+    NULL,
+    NULL
+  };
+#endif
+  
+  /* Fix SwigMethods to carry the callback ptrs when needed */
+  SWIG_Python_FixMethods(SwigMethods, swig_const_table, swig_types, swig_type_initial);
+  
+#if PY_VERSION_HEX >= 0x03000000
+  m = PyModule_Create(&SWIG_module);
+#else
+  m = Py_InitModule((char *) SWIG_name, SwigMethods);
+#endif
+  d = PyModule_GetDict(m);
+  
+  SWIG_InitializeModule(0);
+  SWIG_InstallConstants(d,swig_const_table);
+  
+  
+  
+  import_array();
+  
+  PyDict_SetItemString(d,(char*)"cvar", SWIG_globals());
+  SWIG_addvarlink(SWIG_globals(),(char*)"NaN",Swig_var_NaN_get, Swig_var_NaN_set);
+  SWIG_addvarlink(SWIG_globals(),(char*)"pi",Swig_var_pi_get, Swig_var_pi_set);
+#if PY_VERSION_HEX >= 0x03000000
+  return m;
+#else
+  return;
+#endif
+}
+
diff --git a/libtool b/libtool
new file mode 100755
index 0000000..a288ecc
--- /dev/null
+++ b/libtool
@@ -0,0 +1,9069 @@
+#! /bin/bash
+
+# libtool - Provide generalized library-building support services.
+# Generated automatically by config.status (mathgl) 1.10
+# Libtool was configured on host filippos:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#   Written by Gordon Matzigkeit, 1996
+#
+#   This file is part of GNU Libtool.
+#
+# GNU Libtool 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.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool 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 GNU Libtool; see the file COPYING.  If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
+# obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+
+# The names of the tagged configurations supported by this script.
+available_tags="CXX "
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Assembler program.
+AS=as
+
+# DLL creation program.
+DLLTOOL=dlltool
+
+# Object dumper program.
+OBJDUMP=objdump
+
+# Which release of libtool.m4 was used?
+macro_version=2.2.6b
+macro_revision=1.3017
+
+# Whether or not to build shared libraries.
+build_libtool_libs=yes
+
+# Whether or not to build static libraries.
+build_old_libs=yes
+
+# What type of objects to build.
+pic_mode=default
+
+# Whether or not to optimize for fast installation.
+fast_install=yes
+
+# The host system.
+host_alias=x86_64-linux-gnu
+host=x86_64-pc-linux-gnu
+host_os=linux-gnu
+
+# The build system.
+build_alias=x86_64-linux-gnu
+build=x86_64-pc-linux-gnu
+build_os=linux-gnu
+
+# A sed program that does not truncate output.
+SED="/bin/sed"
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="$SED -e 1s/^X//"
+
+# A grep program that handles long lines.
+GREP="/bin/grep"
+
+# An ERE matcher.
+EGREP="/bin/grep -E"
+
+# A literal string matcher.
+FGREP="/bin/grep -F"
+
+# A BSD- or MS-compatible name lister.
+NM="/usr/bin/nm -B"
+
+# Whether we need soft or hard links.
+LN_S="ln -s"
+
+# What is the maximum length of a command?
+max_cmd_len=3458764513820540925
+
+# Object file suffix (normally "o").
+objext=o
+
+# Executable file suffix (normally "").
+exeext=
+
+# whether the shell understands "unset".
+lt_unset=unset
+
+# turn spaces into newlines.
+SP2NL="tr \\040 \\012"
+
+# turn newlines into spaces.
+NL2SP="tr \\015\\012 \\040\\040"
+
+# How to create reloadable object files.
+reload_flag=" -r"
+reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method="pass_all"
+
+# Command to use when deplibs_check_method == "file_magic".
+file_magic_cmd="\$MAGIC_CMD"
+
+# The archiver.
+AR="ar"
+AR_FLAGS="cru"
+
+# A symbol stripping program.
+STRIP="strip"
+
+# Commands used to install an old-style archive.
+RANLIB="ranlib"
+old_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$oldlib"
+old_postuninstall_cmds=""
+
+# A C compiler.
+LTCC="x86_64-linux-gnu-gcc"
+
+# LTCC compiler flags.
+LTCFLAGS="-Wall -g -O2"
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe="sed -n -e 's/^.*[	 ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[	 ][	 ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'"
+
+# Transform the output of nm in a proper C declaration.
+global_symbol_to_cdecl="sed -n -e 's/^T .* \\(.*\\)\$/extern int \\1();/p' -e 's/^[ABCDGIRSTW]* .* \\(.*\\)\$/extern char \\1;/p'"
+
+# Transform the output of nm in a C name address pair.
+global_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\) \$/  {\\\"\\1\\\", (void *) 0},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\([^ ]*\\)\$/  {\"\\2\", (void *) \\&\\2},/p'"
+
+# Transform the output of nm in a C name address pair when lib prefix is needed.
+global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \\([^ ]*\\) \$/  {\\\"\\1\\\", (void *) 0},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\(lib[^ ]*\\)\$/  {\"\\2\", (void *) \\&\\2},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\([^ ]*\\)\$/  {\"lib\\2\", (void *) \\&\\2},/p'"
+
+# The name of the directory that contains temporary libtool files.
+objdir=.libs
+
+# Shell to use when invoking shell scripts.
+SHELL="/bin/bash"
+
+# An echo program that does not interpret backslashes.
+ECHO="echo"
+
+# Used to examine libraries when file_magic_cmd begins with "file".
+MAGIC_CMD=file
+
+# Must we lock files when doing compilation?
+need_locks="no"
+
+# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+DSYMUTIL=""
+
+# Tool to change global to local symbols on Mac OS X.
+NMEDIT=""
+
+# Tool to manipulate fat objects and archives on Mac OS X.
+LIPO=""
+
+# ldd/readelf like tool for Mach-O binaries on Mac OS X.
+OTOOL=""
+
+# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
+OTOOL64=""
+
+# Old archive suffix (normally "a").
+libext=a
+
+# Shared library suffix (normally ".so").
+shrext_cmds=".so"
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=""
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at link time.
+variables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+
+# Do we need the "lib" prefix for modules?
+need_lib_prefix=no
+
+# Do we need a version for libraries?
+need_version=no
+
+# Library versioning type.
+version_type=linux
+
+# Shared library runtime path variable.
+runpath_var=LD_RUN_PATH
+
+# Shared library path variable.
+shlibpath_var=LD_LIBRARY_PATH
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=no
+
+# Format of library name prefix.
+libname_spec="lib\$name"
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME
+library_names_spec="\${libname}\${release}\${shared_ext}\$versuffix \${libname}\${release}\${shared_ext}\$major \$libname\${shared_ext}"
+
+# The coded name of the library, if different from the real name.
+soname_spec="\${libname}\${release}\${shared_ext}\$major"
+
+# Command to use after installation of a shared archive.
+postinstall_cmds=""
+
+# Command to use after uninstallation of a shared archive.
+postuninstall_cmds=""
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir"
+
+# As "finish_cmds", except a single script fragment to be evaled but
+# not shown.
+finish_eval=""
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=yes
+
+# Compile-time system search path for libraries.
+sys_lib_search_path_spec="/usr/lib/gcc/x86_64-linux-gnu/4.4.5 /usr/lib /lib"
+
+# Run-time system search path for libraries.
+sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/lib/atlas /usr/local/lib /lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu "
+
+# Whether dlopen is supported.
+dlopen_support=yes
+
+# Whether dlopen of programs is supported.
+dlopen_self=yes
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=no
+
+# Commands to strip libraries.
+old_striplib="strip --strip-debug"
+striplib="strip --strip-unneeded"
+
+
+# The linker used to build libraries.
+LD="/usr/bin/ld -m elf_x86_64"
+
+# Commands used to build an old-style archive.
+old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$oldlib"
+
+# A language specific compiler.
+CC="x86_64-linux-gnu-gcc"
+
+# Is the compiler the GNU compiler?
+with_gcc=yes
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=" -fno-builtin"
+
+# How to pass a linker flag through the compiler.
+wl="-Wl,"
+
+# Additional compiler flags for building library objects.
+pic_flag=" -fPIC -DPIC"
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag="-static"
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o="yes"
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=no
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=no
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec="\${wl}--export-dynamic"
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec="\${wl}--whole-archive\$convenience \${wl}--no-whole-archive"
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object="no"
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=""
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=""
+
+# Commands used to build a shared archive.
+archive_cmds="\$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname -o \$lib"
+archive_expsym_cmds="echo \\\"{ global:\\\" > \$output_objdir/\$libname.ver~
+	    cat \$export_symbols | sed -e \\\"s/\\\\(.*\\\\)/\\\\1;/\\\" >> \$output_objdir/\$libname.ver~
+	    echo \\\"local: *; };\\\" >> \$output_objdir/\$libname.ver~
+	    \$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname \${wl}-version-script \${wl}\$output_objdir/\$libname.ver -o \$lib"
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=""
+module_expsym_cmds=""
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld="yes"
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=""
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=""
+
+# Flag to hardcode $libdir into a binary during linking.
+# This must work even if $libdir does not exist
+hardcode_libdir_flag_spec="\${wl}-rpath \${wl}\$libdir"
+
+# If ld is used when linking, flag to hardcode $libdir into a binary
+# during linking.  This must work even if $libdir does not exist.
+hardcode_libdir_flag_spec_ld=""
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=""
+
+# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=no
+
+# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting ${shlibpath_var} if the
+# library is relocated.
+hardcode_direct_absolute=no
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=no
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=unsupported
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=no
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=no
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=no
+
+# Fix the shell variable $srcfile for the compiler.
+fix_srcfile_path=""
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=no
+
+# The commands to list exported symbols.
+export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols"
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*"
+
+# Symbols that must always be exported.
+include_expsyms=""
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=""
+
+# Specify filename containing input files.
+file_list_spec=""
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=immediate
+
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs=""
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects=""
+postdep_objects=""
+predeps=""
+postdeps=""
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=""
+
+# ### END LIBTOOL CONFIG
+
+# Generated from ltmain.m4sh.
+
+# ltmain.sh (GNU libtool) 2.2.6b
+# Written by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions.  There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool 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.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool 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 GNU Libtool; see the file COPYING.  If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html,
+# or obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# Usage: $progname [OPTION]... [MODE-ARG]...
+#
+# Provide generalized library-building support services.
+#
+#     --config             show all configuration variables
+#     --debug              enable verbose shell tracing
+# -n, --dry-run            display commands without modifying any files
+#     --features           display basic configuration information and exit
+#     --mode=MODE          use operation mode MODE
+#     --preserve-dup-deps  don't remove duplicate dependency libraries
+#     --quiet, --silent    don't print informational messages
+#     --tag=TAG            use configuration variables from tag TAG
+# -v, --verbose            print informational messages (default)
+#     --version            print version information
+# -h, --help               print short or long help message
+#
+# MODE must be one of the following:
+#
+#       clean              remove files from the build directory
+#       compile            compile a source file into a libtool object
+#       execute            automatically set library path, then run a program
+#       finish             complete the installation of libtool libraries
+#       install            install libraries or executables
+#       link               create a library or an executable
+#       uninstall          remove libraries from an installed directory
+#
+# MODE-ARGS vary depending on the MODE.
+# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
+#
+# When reporting a bug, please describe a test case to reproduce it and
+# include the following information:
+#
+#       host-triplet:	$host
+#       shell:		$SHELL
+#       compiler:		$LTCC
+#       compiler flags:		$LTCFLAGS
+#       linker:		$LD (gnu? $with_gnu_ld)
+#       $progname:		(GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#       automake:		$automake_version
+#       autoconf:		$autoconf_version
+#
+# Report bugs to <bug-libtool at gnu.org>.
+
+PROGRAM=ltmain.sh
+PACKAGE=libtool
+VERSION="2.2.6b Debian-2.2.6b-2ubuntu1"
+TIMESTAMP=""
+package_revision=1.3017
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# NLS nuisances: We save the old values to restore during execute mode.
+# Only set LANG and LC_ALL to C if already set.
+# These must not be set unconditionally because not all systems understand
+# e.g. LANG=C (notably SCO).
+lt_user_locale=
+lt_safe_locale=
+for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+do
+  eval "if test \"\${$lt_var+set}\" = set; then
+          save_$lt_var=\$$lt_var
+          $lt_var=C
+	  export $lt_var
+	  lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
+	  lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
+	fi"
+done
+
+$lt_unset CDPATH
+
+
+
+
+
+: ${CP="cp -f"}
+: ${ECHO="echo"}
+: ${EGREP="/bin/grep -E"}
+: ${FGREP="/bin/grep -F"}
+: ${GREP="/bin/grep"}
+: ${LN_S="ln -s"}
+: ${MAKE="make"}
+: ${MKDIR="mkdir"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+: ${SED="/bin/sed"}
+: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
+: ${Xsed="$SED -e 1s/^X//"}
+
+# Global variables:
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
+EXIT_SKIP=77	  # $? = 77 is used to indicate a skipped test to automake.
+
+exit_status=$EXIT_SUCCESS
+
+# Make sure IFS has a sensible default
+lt_nl='
+'
+IFS=" 	$lt_nl"
+
+dirname="s,/[^/]*$,,"
+basename="s,^.*/,,"
+
+# func_dirname_and_basename file append nondir_replacement
+# perform func_basename and func_dirname in a single function
+# call:
+#   dirname:  Compute the dirname of FILE.  If nonempty,
+#             add APPEND to the result, otherwise set result
+#             to NONDIR_REPLACEMENT.
+#             value returned in "$func_dirname_result"
+#   basename: Compute filename of FILE.
+#             value retuned in "$func_basename_result"
+# Implementation must be kept synchronized with func_dirname
+# and func_basename. For efficiency, we do not delegate to
+# those functions but instead duplicate the functionality here.
+func_dirname_and_basename ()
+{
+  # Extract subdirectory from the argument.
+  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
+  if test "X$func_dirname_result" = "X${1}"; then
+    func_dirname_result="${3}"
+  else
+    func_dirname_result="$func_dirname_result${2}"
+  fi
+  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
+}
+
+# Generated shell functions inserted here.
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+  case ${1} in
+    */*) func_dirname_result="${1%/*}${2}" ;;
+    *  ) func_dirname_result="${3}" ;;
+  esac
+}
+
+# func_basename file
+func_basename ()
+{
+  func_basename_result="${1##*/}"
+}
+
+# func_dirname_and_basename file append nondir_replacement
+# perform func_basename and func_dirname in a single function
+# call:
+#   dirname:  Compute the dirname of FILE.  If nonempty,
+#             add APPEND to the result, otherwise set result
+#             to NONDIR_REPLACEMENT.
+#             value returned in "$func_dirname_result"
+#   basename: Compute filename of FILE.
+#             value retuned in "$func_basename_result"
+# Implementation must be kept synchronized with func_dirname
+# and func_basename. For efficiency, we do not delegate to
+# those functions but instead duplicate the functionality here.
+func_dirname_and_basename ()
+{
+  case ${1} in
+    */*) func_dirname_result="${1%/*}${2}" ;;
+    *  ) func_dirname_result="${3}" ;;
+  esac
+  func_basename_result="${1##*/}"
+}
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+func_stripname ()
+{
+  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+  # positional parameters, so assign one to ordinary parameter first.
+  func_stripname_result=${3}
+  func_stripname_result=${func_stripname_result#"${1}"}
+  func_stripname_result=${func_stripname_result%"${2}"}
+}
+
+# func_opt_split
+func_opt_split ()
+{
+  func_opt_split_opt=${1%%=*}
+  func_opt_split_arg=${1#*=}
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+  case ${1} in
+    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+    *)    func_lo2o_result=${1} ;;
+  esac
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+  func_xform_result=${1%.*}.lo
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+  func_arith_result=$(( $* ))
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+  func_len_result=${#1}
+}
+
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+  eval "$1+=\$2"
+}
+# Generated shell functions inserted here.
+
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath="$0"
+
+# The name of this program:
+# In the unlikely event $progname began with a '-', it would play havoc with
+# func_echo (imagine progname=-n), so we prepend ./ in that case:
+func_dirname_and_basename "$progpath"
+progname=$func_basename_result
+case $progname in
+  -*) progname=./$progname ;;
+esac
+
+# Make sure we have an absolute path for reexecution:
+case $progpath in
+  [\\/]*|[A-Za-z]:\\*) ;;
+  *[\\/]*)
+     progdir=$func_dirname_result
+     progdir=`cd "$progdir" && pwd`
+     progpath="$progdir/$progname"
+     ;;
+  *)
+     save_IFS="$IFS"
+     IFS=:
+     for progdir in $PATH; do
+       IFS="$save_IFS"
+       test -x "$progdir/$progname" && break
+     done
+     IFS="$save_IFS"
+     test -n "$progdir" || progdir=`pwd`
+     progpath="$progdir/$progname"
+     ;;
+esac
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed="${SED}"' -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Re-`\' parameter expansions in output of double_quote_subst that were
+# `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
+# in input to double_quote_subst, that '$' was protected from expansion.
+# Since each input `\' is now two `\'s, look for any number of runs of
+# four `\'s followed by two `\'s and then a '$'.  `\' that '$'.
+bs='\\'
+bs2='\\\\'
+bs4='\\\\\\\\'
+dollar='\$'
+sed_double_backslash="\
+  s/$bs4/&\\
+/g
+  s/^$bs2$dollar/$bs&/
+  s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
+  s/\n//g"
+
+# Standard options:
+opt_dry_run=false
+opt_help=false
+opt_quiet=false
+opt_verbose=false
+opt_warning=:
+
+# func_echo arg...
+# Echo program name prefixed message, along with the current mode
+# name if it has been set yet.
+func_echo ()
+{
+    $ECHO "$progname${mode+: }$mode: $*"
+}
+
+# func_verbose arg...
+# Echo program name prefixed message in verbose mode only.
+func_verbose ()
+{
+    $opt_verbose && func_echo ${1+"$@"}
+
+    # A bug in bash halts the script if the last line of a function
+    # fails when set -e is in force, so we need another command to
+    # work around that:
+    :
+}
+
+# func_error arg...
+# Echo program name prefixed message to standard error.
+func_error ()
+{
+    $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
+}
+
+# func_warning arg...
+# Echo program name prefixed warning message to standard error.
+func_warning ()
+{
+    $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
+
+    # bash bug again:
+    :
+}
+
+# func_fatal_error arg...
+# Echo program name prefixed message to standard error, and exit.
+func_fatal_error ()
+{
+    func_error ${1+"$@"}
+    exit $EXIT_FAILURE
+}
+
+# func_fatal_help arg...
+# Echo program name prefixed message to standard error, followed by
+# a help hint, and exit.
+func_fatal_help ()
+{
+    func_error ${1+"$@"}
+    func_fatal_error "$help"
+}
+help="Try \`$progname --help' for more information."  ## default
+
+
+# func_grep expression filename
+# Check whether EXPRESSION matches any line of FILENAME, without output.
+func_grep ()
+{
+    $GREP "$1" "$2" >/dev/null 2>&1
+}
+
+
+# func_mkdir_p directory-path
+# Make sure the entire path to DIRECTORY-PATH is available.
+func_mkdir_p ()
+{
+    my_directory_path="$1"
+    my_dir_list=
+
+    if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
+
+      # Protect directory names starting with `-'
+      case $my_directory_path in
+        -*) my_directory_path="./$my_directory_path" ;;
+      esac
+
+      # While some portion of DIR does not yet exist...
+      while test ! -d "$my_directory_path"; do
+        # ...make a list in topmost first order.  Use a colon delimited
+	# list incase some portion of path contains whitespace.
+        my_dir_list="$my_directory_path:$my_dir_list"
+
+        # If the last portion added has no slash in it, the list is done
+        case $my_directory_path in */*) ;; *) break ;; esac
+
+        # ...otherwise throw away the child directory and loop
+        my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`
+      done
+      my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`
+
+      save_mkdir_p_IFS="$IFS"; IFS=':'
+      for my_dir in $my_dir_list; do
+	IFS="$save_mkdir_p_IFS"
+        # mkdir can fail with a `File exist' error if two processes
+        # try to create one of the directories concurrently.  Don't
+        # stop in that case!
+        $MKDIR "$my_dir" 2>/dev/null || :
+      done
+      IFS="$save_mkdir_p_IFS"
+
+      # Bail out if we (or some other process) failed to create a directory.
+      test -d "$my_directory_path" || \
+        func_fatal_error "Failed to create \`$1'"
+    fi
+}
+
+
+# func_mktempdir [string]
+# Make a temporary directory that won't clash with other running
+# libtool processes, and avoids race conditions if possible.  If
+# given, STRING is the basename for that directory.
+func_mktempdir ()
+{
+    my_template="${TMPDIR-/tmp}/${1-$progname}"
+
+    if test "$opt_dry_run" = ":"; then
+      # Return a directory name, but don't create it in dry-run mode
+      my_tmpdir="${my_template}-$$"
+    else
+
+      # If mktemp works, use that first and foremost
+      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
+
+      if test ! -d "$my_tmpdir"; then
+        # Failing that, at least try and use $RANDOM to avoid a race
+        my_tmpdir="${my_template}-${RANDOM-0}$$"
+
+        save_mktempdir_umask=`umask`
+        umask 0077
+        $MKDIR "$my_tmpdir"
+        umask $save_mktempdir_umask
+      fi
+
+      # If we're not in dry-run mode, bomb out on failure
+      test -d "$my_tmpdir" || \
+        func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
+    fi
+
+    $ECHO "X$my_tmpdir" | $Xsed
+}
+
+
+# func_quote_for_eval arg
+# Aesthetically quote ARG to be evaled later.
+# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
+# is double-quoted, suitable for a subsequent eval, whereas
+# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
+# which are still active within double quotes backslashified.
+func_quote_for_eval ()
+{
+    case $1 in
+      *[\\\`\"\$]*)
+	func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;;
+      *)
+        func_quote_for_eval_unquoted_result="$1" ;;
+    esac
+
+    case $func_quote_for_eval_unquoted_result in
+      # Double-quote args containing shell metacharacters to delay
+      # word splitting, command substitution and and variable
+      # expansion for a subsequent eval.
+      # Many Bourne shells cannot handle close brackets correctly
+      # in scan sets, so we specify it separately.
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+        func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
+        ;;
+      *)
+        func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
+    esac
+}
+
+
+# func_quote_for_expand arg
+# Aesthetically quote ARG to be evaled later; same as above,
+# but do not quote variable references.
+func_quote_for_expand ()
+{
+    case $1 in
+      *[\\\`\"]*)
+	my_arg=`$ECHO "X$1" | $Xsed \
+	    -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
+      *)
+        my_arg="$1" ;;
+    esac
+
+    case $my_arg in
+      # Double-quote args containing shell metacharacters to delay
+      # word splitting and command substitution for a subsequent eval.
+      # Many Bourne shells cannot handle close brackets correctly
+      # in scan sets, so we specify it separately.
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+        my_arg="\"$my_arg\""
+        ;;
+    esac
+
+    func_quote_for_expand_result="$my_arg"
+}
+
+
+# func_show_eval cmd [fail_exp]
+# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
+# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it.
+func_show_eval ()
+{
+    my_cmd="$1"
+    my_fail_exp="${2-:}"
+
+    ${opt_silent-false} || {
+      func_quote_for_expand "$my_cmd"
+      eval "func_echo $func_quote_for_expand_result"
+    }
+
+    if ${opt_dry_run-false}; then :; else
+      eval "$my_cmd"
+      my_status=$?
+      if test "$my_status" -eq 0; then :; else
+	eval "(exit $my_status); $my_fail_exp"
+      fi
+    fi
+}
+
+
+# func_show_eval_locale cmd [fail_exp]
+# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
+# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it.  Use the saved locale for evaluation.
+func_show_eval_locale ()
+{
+    my_cmd="$1"
+    my_fail_exp="${2-:}"
+
+    ${opt_silent-false} || {
+      func_quote_for_expand "$my_cmd"
+      eval "func_echo $func_quote_for_expand_result"
+    }
+
+    if ${opt_dry_run-false}; then :; else
+      eval "$lt_user_locale
+	    $my_cmd"
+      my_status=$?
+      eval "$lt_safe_locale"
+      if test "$my_status" -eq 0; then :; else
+	eval "(exit $my_status); $my_fail_exp"
+      fi
+    fi
+}
+
+
+
+
+
+# func_version
+# Echo version message to standard output and exit.
+func_version ()
+{
+    $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / {
+        s/^# //
+	s/^# *$//
+        s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
+        p
+     }' < "$progpath"
+     exit $?
+}
+
+# func_usage
+# Echo short help message to standard output and exit.
+func_usage ()
+{
+    $SED -n '/^# Usage:/,/# -h/ {
+        s/^# //
+	s/^# *$//
+	s/\$progname/'$progname'/
+	p
+    }' < "$progpath"
+    $ECHO
+    $ECHO "run \`$progname --help | more' for full usage"
+    exit $?
+}
+
+# func_help
+# Echo long help message to standard output and exit.
+func_help ()
+{
+    $SED -n '/^# Usage:/,/# Report bugs to/ {
+        s/^# //
+	s/^# *$//
+	s*\$progname*'$progname'*
+	s*\$host*'"$host"'*
+	s*\$SHELL*'"$SHELL"'*
+	s*\$LTCC*'"$LTCC"'*
+	s*\$LTCFLAGS*'"$LTCFLAGS"'*
+	s*\$LD*'"$LD"'*
+	s/\$with_gnu_ld/'"$with_gnu_ld"'/
+	s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
+	s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
+	p
+     }' < "$progpath"
+    exit $?
+}
+
+# func_missing_arg argname
+# Echo program name prefixed message to standard error and set global
+# exit_cmd.
+func_missing_arg ()
+{
+    func_error "missing argument for $1"
+    exit_cmd=exit
+}
+
+exit_cmd=:
+
+
+
+
+
+# Check that we have a working $ECHO.
+if test "X$1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X$1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
+  # Yippee, $ECHO works!
+  :
+else
+  # Restart under the correct shell, and then maybe $ECHO will work.
+  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<EOF
+$*
+EOF
+  exit $EXIT_SUCCESS
+fi
+
+magic="%%%MAGIC variable%%%"
+magic_exe="%%%MAGIC EXE variable%%%"
+
+# Global variables.
+# $mode is unset
+nonopt=
+execute_dlfiles=
+preserve_args=
+lo2o="s/\\.lo\$/.${objext}/"
+o2lo="s/\\.${objext}\$/.lo/"
+extracted_archives=
+extracted_serial=0
+
+opt_dry_run=false
+opt_duplicate_deps=false
+opt_silent=false
+opt_debug=:
+
+# If this variable is set in any of the actions, the command in it
+# will be execed at the end.  This prevents here-documents from being
+# left over by shells.
+exec_cmd=
+
+# func_fatal_configuration arg...
+# Echo program name prefixed message to standard error, followed by
+# a configuration failure hint, and exit.
+func_fatal_configuration ()
+{
+    func_error ${1+"$@"}
+    func_error "See the $PACKAGE documentation for more information."
+    func_fatal_error "Fatal configuration error."
+}
+
+
+# func_config
+# Display the configuration for all the tags in this script.
+func_config ()
+{
+    re_begincf='^# ### BEGIN LIBTOOL'
+    re_endcf='^# ### END LIBTOOL'
+
+    # Default configuration.
+    $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
+
+    # Now print the configurations for the tags.
+    for tagname in $taglist; do
+      $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
+    done
+
+    exit $?
+}
+
+# func_features
+# Display the features supported by this script.
+func_features ()
+{
+    $ECHO "host: $host"
+    if test "$build_libtool_libs" = yes; then
+      $ECHO "enable shared libraries"
+    else
+      $ECHO "disable shared libraries"
+    fi
+    if test "$build_old_libs" = yes; then
+      $ECHO "enable static libraries"
+    else
+      $ECHO "disable static libraries"
+    fi
+
+    exit $?
+}
+
+# func_enable_tag tagname
+# Verify that TAGNAME is valid, and either flag an error and exit, or
+# enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
+# variable here.
+func_enable_tag ()
+{
+  # Global variable:
+  tagname="$1"
+
+  re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
+  re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
+  sed_extractcf="/$re_begincf/,/$re_endcf/p"
+
+  # Validate tagname.
+  case $tagname in
+    *[!-_A-Za-z0-9,/]*)
+      func_fatal_error "invalid tag name: $tagname"
+      ;;
+  esac
+
+  # Don't test for the "default" C tag, as we know it's
+  # there but not specially marked.
+  case $tagname in
+    CC) ;;
+    *)
+      if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
+	taglist="$taglist $tagname"
+
+	# Evaluate the configuration.  Be careful to quote the path
+	# and the sed script, to avoid splitting on whitespace, but
+	# also don't use non-portable quotes within backquotes within
+	# quotes we have to do it in 2 steps:
+	extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
+	eval "$extractedcf"
+      else
+	func_error "ignoring unknown tag $tagname"
+      fi
+      ;;
+  esac
+}
+
+# Parse options once, thoroughly.  This comes as soon as possible in
+# the script to make things like `libtool --version' happen quickly.
+{
+
+  # Shorthand for --mode=foo, only valid as the first argument
+  case $1 in
+  clean|clea|cle|cl)
+    shift; set dummy --mode clean ${1+"$@"}; shift
+    ;;
+  compile|compil|compi|comp|com|co|c)
+    shift; set dummy --mode compile ${1+"$@"}; shift
+    ;;
+  execute|execut|execu|exec|exe|ex|e)
+    shift; set dummy --mode execute ${1+"$@"}; shift
+    ;;
+  finish|finis|fini|fin|fi|f)
+    shift; set dummy --mode finish ${1+"$@"}; shift
+    ;;
+  install|instal|insta|inst|ins|in|i)
+    shift; set dummy --mode install ${1+"$@"}; shift
+    ;;
+  link|lin|li|l)
+    shift; set dummy --mode link ${1+"$@"}; shift
+    ;;
+  uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
+    shift; set dummy --mode uninstall ${1+"$@"}; shift
+    ;;
+  esac
+
+  # Parse non-mode specific arguments:
+  while test "$#" -gt 0; do
+    opt="$1"
+    shift
+
+    case $opt in
+      --config)		func_config					;;
+
+      --debug)		preserve_args="$preserve_args $opt"
+			func_echo "enabling shell trace mode"
+			opt_debug='set -x'
+			$opt_debug
+			;;
+
+      -dlopen)		test "$#" -eq 0 && func_missing_arg "$opt" && break
+			execute_dlfiles="$execute_dlfiles $1"
+			shift
+			;;
+
+      --dry-run | -n)	opt_dry_run=:					;;
+      --features)       func_features					;;
+      --finish)		mode="finish"					;;
+
+      --mode)		test "$#" -eq 0 && func_missing_arg "$opt" && break
+			case $1 in
+			  # Valid mode arguments:
+			  clean)	;;
+			  compile)	;;
+			  execute)	;;
+			  finish)	;;
+			  install)	;;
+			  link)		;;
+			  relink)	;;
+			  uninstall)	;;
+
+			  # Catch anything else as an error
+			  *) func_error "invalid argument for $opt"
+			     exit_cmd=exit
+			     break
+			     ;;
+		        esac
+
+			mode="$1"
+			shift
+			;;
+
+      --preserve-dup-deps)
+			opt_duplicate_deps=:				;;
+
+      --quiet|--silent)	preserve_args="$preserve_args $opt"
+			opt_silent=:
+			;;
+
+      --verbose| -v)	preserve_args="$preserve_args $opt"
+			opt_silent=false
+			;;
+
+      --tag)		test "$#" -eq 0 && func_missing_arg "$opt" && break
+			preserve_args="$preserve_args $opt $1"
+			func_enable_tag "$1"	# tagname is set here
+			shift
+			;;
+
+      # Separate optargs to long options:
+      -dlopen=*|--mode=*|--tag=*)
+			func_opt_split "$opt"
+			set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"}
+			shift
+			;;
+
+      -\?|-h)		func_usage					;;
+      --help)		opt_help=:					;;
+      --version)	func_version					;;
+
+      -*)		func_fatal_help "unrecognized option \`$opt'"	;;
+
+      *)		nonopt="$opt"
+			break
+			;;
+    esac
+  done
+
+
+  case $host in
+    *cygwin* | *mingw* | *pw32* | *cegcc*)
+      # don't eliminate duplications in $postdeps and $predeps
+      opt_duplicate_compiler_generated_deps=:
+      ;;
+    *)
+      opt_duplicate_compiler_generated_deps=$opt_duplicate_deps
+      ;;
+  esac
+
+  # Having warned about all mis-specified options, bail out if
+  # anything was wrong.
+  $exit_cmd $EXIT_FAILURE
+}
+
+# func_check_version_match
+# Ensure that we are using m4 macros, and libtool script from the same
+# release of libtool.
+func_check_version_match ()
+{
+  if test "$package_revision" != "$macro_revision"; then
+    if test "$VERSION" != "$macro_version"; then
+      if test -z "$macro_version"; then
+        cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from an older release.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+      else
+        cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+      fi
+    else
+      cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
+$progname: but the definition of this LT_INIT comes from revision $macro_revision.
+$progname: You should recreate aclocal.m4 with macros from revision $package_revision
+$progname: of $PACKAGE $VERSION and run autoconf again.
+_LT_EOF
+    fi
+
+    exit $EXIT_MISMATCH
+  fi
+}
+
+
+## ----------- ##
+##    Main.    ##
+## ----------- ##
+
+$opt_help || {
+  # Sanity checks first:
+  func_check_version_match
+
+  if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
+    func_fatal_configuration "not configured to build any kind of library"
+  fi
+
+  test -z "$mode" && func_fatal_error "error: you must specify a MODE."
+
+
+  # Darwin sucks
+  eval std_shrext=\"$shrext_cmds\"
+
+
+  # Only execute mode is allowed to have -dlopen flags.
+  if test -n "$execute_dlfiles" && test "$mode" != execute; then
+    func_error "unrecognized option \`-dlopen'"
+    $ECHO "$help" 1>&2
+    exit $EXIT_FAILURE
+  fi
+
+  # Change the help message to a mode-specific one.
+  generic_help="$help"
+  help="Try \`$progname --help --mode=$mode' for more information."
+}
+
+
+# func_lalib_p file
+# True iff FILE is a libtool `.la' library or `.lo' object file.
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_lalib_p ()
+{
+    test -f "$1" &&
+      $SED -e 4q "$1" 2>/dev/null \
+        | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
+}
+
+# func_lalib_unsafe_p file
+# True iff FILE is a libtool `.la' library or `.lo' object file.
+# This function implements the same check as func_lalib_p without
+# resorting to external programs.  To this end, it redirects stdin and
+# closes it afterwards, without saving the original file descriptor.
+# As a safety measure, use it only where a negative result would be
+# fatal anyway.  Works if `file' does not exist.
+func_lalib_unsafe_p ()
+{
+    lalib_p=no
+    if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
+	for lalib_p_l in 1 2 3 4
+	do
+	    read lalib_p_line
+	    case "$lalib_p_line" in
+		\#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
+	    esac
+	done
+	exec 0<&5 5<&-
+    fi
+    test "$lalib_p" = yes
+}
+
+# func_ltwrapper_script_p file
+# True iff FILE is a libtool wrapper script
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_script_p ()
+{
+    func_lalib_p "$1"
+}
+
+# func_ltwrapper_executable_p file
+# True iff FILE is a libtool wrapper executable
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_executable_p ()
+{
+    func_ltwrapper_exec_suffix=
+    case $1 in
+    *.exe) ;;
+    *) func_ltwrapper_exec_suffix=.exe ;;
+    esac
+    $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
+}
+
+# func_ltwrapper_scriptname file
+# Assumes file is an ltwrapper_executable
+# uses $file to determine the appropriate filename for a
+# temporary ltwrapper_script.
+func_ltwrapper_scriptname ()
+{
+    func_ltwrapper_scriptname_result=""
+    if func_ltwrapper_executable_p "$1"; then
+	func_dirname_and_basename "$1" "" "."
+	func_stripname '' '.exe' "$func_basename_result"
+	func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
+    fi
+}
+
+# func_ltwrapper_p file
+# True iff FILE is a libtool wrapper script or wrapper executable
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_p ()
+{
+    func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
+}
+
+
+# func_execute_cmds commands fail_cmd
+# Execute tilde-delimited COMMANDS.
+# If FAIL_CMD is given, eval that upon failure.
+# FAIL_CMD may read-access the current command in variable CMD!
+func_execute_cmds ()
+{
+    $opt_debug
+    save_ifs=$IFS; IFS='~'
+    for cmd in $1; do
+      IFS=$save_ifs
+      eval cmd=\"$cmd\"
+      func_show_eval "$cmd" "${2-:}"
+    done
+    IFS=$save_ifs
+}
+
+
+# func_source file
+# Source FILE, adding directory component if necessary.
+# Note that it is not necessary on cygwin/mingw to append a dot to
+# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
+# behavior happens only for exec(3), not for open(2)!  Also, sourcing
+# `FILE.' does not work on cygwin managed mounts.
+func_source ()
+{
+    $opt_debug
+    case $1 in
+    */* | *\\*)	. "$1" ;;
+    *)		. "./$1" ;;
+    esac
+}
+
+
+# func_infer_tag arg
+# Infer tagged configuration to use if any are available and
+# if one wasn't chosen via the "--tag" command line option.
+# Only attempt this if the compiler in the base compile
+# command doesn't match the default compiler.
+# arg is usually of the form 'gcc ...'
+func_infer_tag ()
+{
+    $opt_debug
+    if test -n "$available_tags" && test -z "$tagname"; then
+      CC_quoted=
+      for arg in $CC; do
+        func_quote_for_eval "$arg"
+	CC_quoted="$CC_quoted $func_quote_for_eval_result"
+      done
+      case $@ in
+      # Blanks in the command may have been stripped by the calling shell,
+      # but not from the CC environment variable when configure was run.
+      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;;
+      # Blanks at the start of $base_compile will cause this to fail
+      # if we don't check for them as well.
+      *)
+	for z in $available_tags; do
+	  if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
+	    # Evaluate the configuration.
+	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
+	    CC_quoted=
+	    for arg in $CC; do
+	      # Double-quote args containing other shell metacharacters.
+	      func_quote_for_eval "$arg"
+	      CC_quoted="$CC_quoted $func_quote_for_eval_result"
+	    done
+	    case "$@ " in
+	      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*)
+	      # The compiler in the base compile command matches
+	      # the one in the tagged configuration.
+	      # Assume this is the tagged configuration we want.
+	      tagname=$z
+	      break
+	      ;;
+	    esac
+	  fi
+	done
+	# If $tagname still isn't set, then no tagged configuration
+	# was found and let the user know that the "--tag" command
+	# line option must be used.
+	if test -z "$tagname"; then
+	  func_echo "unable to infer tagged configuration"
+	  func_fatal_error "specify a tag with \`--tag'"
+#	else
+#	  func_verbose "using $tagname tagged configuration"
+	fi
+	;;
+      esac
+    fi
+}
+
+
+
+# func_write_libtool_object output_name pic_name nonpic_name
+# Create a libtool object file (analogous to a ".la" file),
+# but don't create it if we're doing a dry run.
+func_write_libtool_object ()
+{
+    write_libobj=${1}
+    if test "$build_libtool_libs" = yes; then
+      write_lobj=\'${2}\'
+    else
+      write_lobj=none
+    fi
+
+    if test "$build_old_libs" = yes; then
+      write_oldobj=\'${3}\'
+    else
+      write_oldobj=none
+    fi
+
+    $opt_dry_run || {
+      cat >${write_libobj}T <<EOF
+# $write_libobj - a libtool object file
+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object=$write_lobj
+
+# Name of the non-PIC object
+non_pic_object=$write_oldobj
+
+EOF
+      $MV "${write_libobj}T" "${write_libobj}"
+    }
+}
+
+# func_mode_compile arg...
+func_mode_compile ()
+{
+    $opt_debug
+    # Get the compilation command and the source file.
+    base_compile=
+    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
+    suppress_opt=yes
+    suppress_output=
+    arg_mode=normal
+    libobj=
+    later=
+    pie_flag=
+
+    for arg
+    do
+      case $arg_mode in
+      arg  )
+	# do not "continue".  Instead, add this to base_compile
+	lastarg="$arg"
+	arg_mode=normal
+	;;
+
+      target )
+	libobj="$arg"
+	arg_mode=normal
+	continue
+	;;
+
+      normal )
+	# Accept any command-line options.
+	case $arg in
+	-o)
+	  test -n "$libobj" && \
+	    func_fatal_error "you cannot specify \`-o' more than once"
+	  arg_mode=target
+	  continue
+	  ;;
+
+	-pie | -fpie | -fPIE)
+          pie_flag="$pie_flag $arg"
+	  continue
+	  ;;
+
+	-shared | -static | -prefer-pic | -prefer-non-pic)
+	  later="$later $arg"
+	  continue
+	  ;;
+
+	-no-suppress)
+	  suppress_opt=no
+	  continue
+	  ;;
+
+	-Xcompiler)
+	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
+	  continue      #  The current "srcfile" will either be retained or
+	  ;;            #  replaced later.  I would guess that would be a bug.
+
+	-Wc,*)
+	  func_stripname '-Wc,' '' "$arg"
+	  args=$func_stripname_result
+	  lastarg=
+	  save_ifs="$IFS"; IFS=','
+	  for arg in $args; do
+	    IFS="$save_ifs"
+	    func_quote_for_eval "$arg"
+	    lastarg="$lastarg $func_quote_for_eval_result"
+	  done
+	  IFS="$save_ifs"
+	  func_stripname ' ' '' "$lastarg"
+	  lastarg=$func_stripname_result
+
+	  # Add the arguments to base_compile.
+	  base_compile="$base_compile $lastarg"
+	  continue
+	  ;;
+
+	*)
+	  # Accept the current argument as the source file.
+	  # The previous "srcfile" becomes the current argument.
+	  #
+	  lastarg="$srcfile"
+	  srcfile="$arg"
+	  ;;
+	esac  #  case $arg
+	;;
+      esac    #  case $arg_mode
+
+      # Aesthetically quote the previous argument.
+      func_quote_for_eval "$lastarg"
+      base_compile="$base_compile $func_quote_for_eval_result"
+    done # for arg
+
+    case $arg_mode in
+    arg)
+      func_fatal_error "you must specify an argument for -Xcompile"
+      ;;
+    target)
+      func_fatal_error "you must specify a target with \`-o'"
+      ;;
+    *)
+      # Get the name of the library object.
+      test -z "$libobj" && {
+	func_basename "$srcfile"
+	libobj="$func_basename_result"
+      }
+      ;;
+    esac
+
+    # Recognize several different file suffixes.
+    # If the user specifies -o file.o, it is replaced with file.lo
+    case $libobj in
+    *.[cCFSifmso] | \
+    *.ada | *.adb | *.ads | *.asm | \
+    *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
+    *.[fF][09]? | *.for | *.java | *.obj | *.sx)
+      func_xform "$libobj"
+      libobj=$func_xform_result
+      ;;
+    esac
+
+    case $libobj in
+    *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
+    *)
+      func_fatal_error "cannot determine name of library object from \`$libobj'"
+      ;;
+    esac
+
+    func_infer_tag $base_compile
+
+    for arg in $later; do
+      case $arg in
+      -shared)
+	test "$build_libtool_libs" != yes && \
+	  func_fatal_configuration "can not build a shared library"
+	build_old_libs=no
+	continue
+	;;
+
+      -static)
+	build_libtool_libs=no
+	build_old_libs=yes
+	continue
+	;;
+
+      -prefer-pic)
+	pic_mode=yes
+	continue
+	;;
+
+      -prefer-non-pic)
+	pic_mode=no
+	continue
+	;;
+      esac
+    done
+
+    func_quote_for_eval "$libobj"
+    test "X$libobj" != "X$func_quote_for_eval_result" \
+      && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'	 &()|`$[]' \
+      && func_warning "libobj name \`$libobj' may not contain shell special characters."
+    func_dirname_and_basename "$obj" "/" ""
+    objname="$func_basename_result"
+    xdir="$func_dirname_result"
+    lobj=${xdir}$objdir/$objname
+
+    test -z "$base_compile" && \
+      func_fatal_help "you must specify a compilation command"
+
+    # Delete any leftover library objects.
+    if test "$build_old_libs" = yes; then
+      removelist="$obj $lobj $libobj ${libobj}T"
+    else
+      removelist="$lobj $libobj ${libobj}T"
+    fi
+
+    # On Cygwin there's no "real" PIC flag so we must build both object types
+    case $host_os in
+    cygwin* | mingw* | pw32* | os2* | cegcc*)
+      pic_mode=default
+      ;;
+    esac
+    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
+      # non-PIC code in shared libraries is not supported
+      pic_mode=default
+    fi
+
+    # Calculate the filename of the output object if compiler does
+    # not support -o with -c
+    if test "$compiler_c_o" = no; then
+      output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
+      lockfile="$output_obj.lock"
+    else
+      output_obj=
+      need_locks=no
+      lockfile=
+    fi
+
+    # Lock this critical section if it is needed
+    # We use this script file to make the link, it avoids creating a new file
+    if test "$need_locks" = yes; then
+      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
+	func_echo "Waiting for $lockfile to be removed"
+	sleep 2
+      done
+    elif test "$need_locks" = warn; then
+      if test -f "$lockfile"; then
+	$ECHO "\
+*** ERROR, $lockfile exists and contains:
+`cat $lockfile 2>/dev/null`
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$opt_dry_run || $RM $removelist
+	exit $EXIT_FAILURE
+      fi
+      removelist="$removelist $output_obj"
+      $ECHO "$srcfile" > "$lockfile"
+    fi
+
+    $opt_dry_run || $RM $removelist
+    removelist="$removelist $lockfile"
+    trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
+
+    if test -n "$fix_srcfile_path"; then
+      eval srcfile=\"$fix_srcfile_path\"
+    fi
+    func_quote_for_eval "$srcfile"
+    qsrcfile=$func_quote_for_eval_result
+
+    # Only build a PIC object if we are building libtool libraries.
+    if test "$build_libtool_libs" = yes; then
+      # Without this assignment, base_compile gets emptied.
+      fbsd_hideous_sh_bug=$base_compile
+
+      if test "$pic_mode" != no; then
+	command="$base_compile $qsrcfile $pic_flag"
+      else
+	# Don't build PIC code
+	command="$base_compile $qsrcfile"
+      fi
+
+      func_mkdir_p "$xdir$objdir"
+
+      if test -z "$output_obj"; then
+	# Place PIC objects in $objdir
+	command="$command -o $lobj"
+      fi
+
+      func_show_eval_locale "$command"	\
+          'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
+
+      if test "$need_locks" = warn &&
+	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+	$ECHO "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$opt_dry_run || $RM $removelist
+	exit $EXIT_FAILURE
+      fi
+
+      # Just move the object if needed, then go on to compile the next one
+      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
+	func_show_eval '$MV "$output_obj" "$lobj"' \
+	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
+      fi
+
+      # Allow error messages only from the first compilation.
+      if test "$suppress_opt" = yes; then
+	suppress_output=' >/dev/null 2>&1'
+      fi
+    fi
+
+    # Only build a position-dependent object if we build old libraries.
+    if test "$build_old_libs" = yes; then
+      if test "$pic_mode" != yes; then
+	# Don't build PIC code
+	command="$base_compile $qsrcfile$pie_flag"
+      else
+	command="$base_compile $qsrcfile $pic_flag"
+      fi
+      if test "$compiler_c_o" = yes; then
+	command="$command -o $obj"
+      fi
+
+      # Suppress compiler output if we already did a PIC compilation.
+      command="$command$suppress_output"
+      func_show_eval_locale "$command" \
+        '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
+
+      if test "$need_locks" = warn &&
+	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+	$ECHO "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$opt_dry_run || $RM $removelist
+	exit $EXIT_FAILURE
+      fi
+
+      # Just move the object if needed
+      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
+	func_show_eval '$MV "$output_obj" "$obj"' \
+	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
+      fi
+    fi
+
+    $opt_dry_run || {
+      func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
+
+      # Unlock the critical section if it was locked
+      if test "$need_locks" != no; then
+	removelist=$lockfile
+        $RM "$lockfile"
+      fi
+    }
+
+    exit $EXIT_SUCCESS
+}
+
+$opt_help || {
+test "$mode" = compile && func_mode_compile ${1+"$@"}
+}
+
+func_mode_help ()
+{
+    # We need to display help for each of the modes.
+    case $mode in
+      "")
+        # Generic help is extracted from the usage comments
+        # at the start of this file.
+        func_help
+        ;;
+
+      clean)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
+
+Remove files from the build directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, object or program, all the files associated
+with it are deleted. Otherwise, only FILE itself is deleted using RM."
+        ;;
+
+      compile)
+      $ECHO \
+"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
+
+Compile a source file into a libtool library object.
+
+This mode accepts the following additional options:
+
+  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
+  -no-suppress      do not suppress compiler output for multiple passes
+  -prefer-pic       try to building PIC objects only
+  -prefer-non-pic   try to building non-PIC objects only
+  -shared           do not build a \`.o' file suitable for static linking
+  -static           only build a \`.o' file suitable for static linking
+
+COMPILE-COMMAND is a command to be used in creating a \`standard' object file
+from the given SOURCEFILE.
+
+The output file name is determined by removing the directory component from
+SOURCEFILE, then substituting the C source code suffix \`.c' with the
+library object suffix, \`.lo'."
+        ;;
+
+      execute)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
+
+Automatically set library path, then run a program.
+
+This mode accepts the following additional options:
+
+  -dlopen FILE      add the directory containing FILE to the library path
+
+This mode sets the library path environment variable according to \`-dlopen'
+flags.
+
+If any of the ARGS are libtool executable wrappers, then they are translated
+into their corresponding uninstalled binary, and any of their required library
+directories are added to the library path.
+
+Then, COMMAND is executed, with ARGS as arguments."
+        ;;
+
+      finish)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
+
+Complete the installation of libtool libraries.
+
+Each LIBDIR is a directory that contains libtool libraries.
+
+The commands that this mode executes may require superuser privileges.  Use
+the \`--dry-run' option if you just want to see what would be executed."
+        ;;
+
+      install)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
+
+Install executables or libraries.
+
+INSTALL-COMMAND is the installation command.  The first component should be
+either the \`install' or \`cp' program.
+
+The following components of INSTALL-COMMAND are treated specially:
+
+  -inst-prefix PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
+
+The rest of the components are interpreted as arguments to that command (only
+BSD-compatible install options are recognized)."
+        ;;
+
+      link)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
+
+Link object files or libraries together to form another library, or to
+create an executable program.
+
+LINK-COMMAND is a command using the C compiler that you would use to create
+a program from several object files.
+
+The following components of LINK-COMMAND are treated specially:
+
+  -all-static       do not do any dynamic linking at all
+  -avoid-version    do not add a version suffix if possible
+  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
+  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
+  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
+  -export-symbols SYMFILE
+                    try to export only the symbols listed in SYMFILE
+  -export-symbols-regex REGEX
+                    try to export only the symbols matching REGEX
+  -LLIBDIR          search LIBDIR for required installed libraries
+  -lNAME            OUTPUT-FILE requires the installed library libNAME
+  -module           build a library that can dlopened
+  -no-fast-install  disable the fast-install mode
+  -no-install       link a not-installable executable
+  -no-undefined     declare that a library does not refer to external symbols
+  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
+  -objectlist FILE  Use a list of object files found in FILE to specify objects
+  -precious-files-regex REGEX
+                    don't remove output files matching REGEX
+  -release RELEASE  specify package release information
+  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
+  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
+  -shared           only do dynamic linking of libtool libraries
+  -shrext SUFFIX    override the standard shared library file extension
+  -static           do not do any dynamic linking of uninstalled libtool libraries
+  -static-libtool-libs
+                    do not do any dynamic linking of libtool libraries
+  -version-info CURRENT[:REVISION[:AGE]]
+                    specify library version info [each variable defaults to 0]
+  -weak LIBNAME     declare that the target provides the LIBNAME interface
+
+All other options (arguments beginning with \`-') are ignored.
+
+Every other argument is treated as a filename.  Files ending in \`.la' are
+treated as uninstalled libtool libraries, other files are standard or library
+object files.
+
+If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
+only library objects (\`.lo' files) may be specified, and \`-rpath' is
+required, except when creating a convenience library.
+
+If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
+using \`ar' and \`ranlib', or on Windows using \`lib'.
+
+If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
+is created, otherwise an executable program is created."
+        ;;
+
+      uninstall)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
+
+Remove libraries from an installation directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, all the files associated with it are deleted.
+Otherwise, only FILE itself is deleted using RM."
+        ;;
+
+      *)
+        func_fatal_help "invalid operation mode \`$mode'"
+        ;;
+    esac
+
+    $ECHO
+    $ECHO "Try \`$progname --help' for more information about other modes."
+
+    exit $?
+}
+
+  # Now that we've collected a possible --mode arg, show help if necessary
+  $opt_help && func_mode_help
+
+
+# func_mode_execute arg...
+func_mode_execute ()
+{
+    $opt_debug
+    # The first argument is the command name.
+    cmd="$nonopt"
+    test -z "$cmd" && \
+      func_fatal_help "you must specify a COMMAND"
+
+    # Handle -dlopen flags immediately.
+    for file in $execute_dlfiles; do
+      test -f "$file" \
+	|| func_fatal_help "\`$file' is not a file"
+
+      dir=
+      case $file in
+      *.la)
+	# Check to see that this really is a libtool archive.
+	func_lalib_unsafe_p "$file" \
+	  || func_fatal_help "\`$lib' is not a valid libtool archive"
+
+	# Read the libtool library.
+	dlname=
+	library_names=
+	func_source "$file"
+
+	# Skip this library if it cannot be dlopened.
+	if test -z "$dlname"; then
+	  # Warn if it was a shared library.
+	  test -n "$library_names" && \
+	    func_warning "\`$file' was not linked with \`-export-dynamic'"
+	  continue
+	fi
+
+	func_dirname "$file" "" "."
+	dir="$func_dirname_result"
+
+	if test -f "$dir/$objdir/$dlname"; then
+	  dir="$dir/$objdir"
+	else
+	  if test ! -f "$dir/$dlname"; then
+	    func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
+	  fi
+	fi
+	;;
+
+      *.lo)
+	# Just add the directory containing the .lo file.
+	func_dirname "$file" "" "."
+	dir="$func_dirname_result"
+	;;
+
+      *)
+	func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
+	continue
+	;;
+      esac
+
+      # Get the absolute pathname.
+      absdir=`cd "$dir" && pwd`
+      test -n "$absdir" && dir="$absdir"
+
+      # Now add the directory to shlibpath_var.
+      if eval "test -z \"\$$shlibpath_var\""; then
+	eval "$shlibpath_var=\"\$dir\""
+      else
+	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
+      fi
+    done
+
+    # This variable tells wrapper scripts just to set shlibpath_var
+    # rather than running their programs.
+    libtool_execute_magic="$magic"
+
+    # Check if any of the arguments is a wrapper script.
+    args=
+    for file
+    do
+      case $file in
+      -*) ;;
+      *)
+	# Do a test to see if this is really a libtool program.
+	if func_ltwrapper_script_p "$file"; then
+	  func_source "$file"
+	  # Transform arg to wrapped name.
+	  file="$progdir/$program"
+	elif func_ltwrapper_executable_p "$file"; then
+	  func_ltwrapper_scriptname "$file"
+	  func_source "$func_ltwrapper_scriptname_result"
+	  # Transform arg to wrapped name.
+	  file="$progdir/$program"
+	fi
+	;;
+      esac
+      # Quote arguments (to preserve shell metacharacters).
+      func_quote_for_eval "$file"
+      args="$args $func_quote_for_eval_result"
+    done
+
+    if test "X$opt_dry_run" = Xfalse; then
+      if test -n "$shlibpath_var"; then
+	# Export the shlibpath_var.
+	eval "export $shlibpath_var"
+      fi
+
+      # Restore saved environment variables
+      for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+      do
+	eval "if test \"\${save_$lt_var+set}\" = set; then
+                $lt_var=\$save_$lt_var; export $lt_var
+	      else
+		$lt_unset $lt_var
+	      fi"
+      done
+
+      # Now prepare to actually exec the command.
+      exec_cmd="\$cmd$args"
+    else
+      # Display what would be done.
+      if test -n "$shlibpath_var"; then
+	eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
+	$ECHO "export $shlibpath_var"
+      fi
+      $ECHO "$cmd$args"
+      exit $EXIT_SUCCESS
+    fi
+}
+
+test "$mode" = execute && func_mode_execute ${1+"$@"}
+
+
+# func_mode_finish arg...
+func_mode_finish ()
+{
+    $opt_debug
+    libdirs="$nonopt"
+    admincmds=
+
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+      for dir
+      do
+	libdirs="$libdirs $dir"
+      done
+
+      for libdir in $libdirs; do
+	if test -n "$finish_cmds"; then
+	  # Do each command in the finish commands.
+	  func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
+'"$cmd"'"'
+	fi
+	if test -n "$finish_eval"; then
+	  # Do the single finish_eval.
+	  eval cmds=\"$finish_eval\"
+	  $opt_dry_run || eval "$cmds" || admincmds="$admincmds
+       $cmds"
+	fi
+      done
+    fi
+
+    # Exit here if they wanted silent mode.
+    $opt_silent && exit $EXIT_SUCCESS
+
+    $ECHO "X----------------------------------------------------------------------" | $Xsed
+    $ECHO "Libraries have been installed in:"
+    for libdir in $libdirs; do
+      $ECHO "   $libdir"
+    done
+    $ECHO
+    $ECHO "If you ever happen to want to link against installed libraries"
+    $ECHO "in a given directory, LIBDIR, you must either use libtool, and"
+    $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'"
+    $ECHO "flag during linking and do at least one of the following:"
+    if test -n "$shlibpath_var"; then
+      $ECHO "   - add LIBDIR to the \`$shlibpath_var' environment variable"
+      $ECHO "     during execution"
+    fi
+    if test -n "$runpath_var"; then
+      $ECHO "   - add LIBDIR to the \`$runpath_var' environment variable"
+      $ECHO "     during linking"
+    fi
+    if test -n "$hardcode_libdir_flag_spec"; then
+      libdir=LIBDIR
+      eval flag=\"$hardcode_libdir_flag_spec\"
+
+      $ECHO "   - use the \`$flag' linker flag"
+    fi
+    if test -n "$admincmds"; then
+      $ECHO "   - have your system administrator run these commands:$admincmds"
+    fi
+    if test -f /etc/ld.so.conf; then
+      $ECHO "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+    fi
+    $ECHO
+
+    $ECHO "See any operating system documentation about shared libraries for"
+    case $host in
+      solaris2.[6789]|solaris2.1[0-9])
+        $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual"
+	$ECHO "pages."
+	;;
+      *)
+        $ECHO "more information, such as the ld(1) and ld.so(8) manual pages."
+        ;;
+    esac
+    $ECHO "X----------------------------------------------------------------------" | $Xsed
+    exit $EXIT_SUCCESS
+}
+
+test "$mode" = finish && func_mode_finish ${1+"$@"}
+
+
+# func_mode_install arg...
+func_mode_install ()
+{
+    $opt_debug
+    # There may be an optional sh(1) argument at the beginning of
+    # install_prog (especially on Windows NT).
+    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
+       # Allow the use of GNU shtool's install command.
+       $ECHO "X$nonopt" | $GREP shtool >/dev/null; then
+      # Aesthetically quote it.
+      func_quote_for_eval "$nonopt"
+      install_prog="$func_quote_for_eval_result "
+      arg=$1
+      shift
+    else
+      install_prog=
+      arg=$nonopt
+    fi
+
+    # The real first argument should be the name of the installation program.
+    # Aesthetically quote it.
+    func_quote_for_eval "$arg"
+    install_prog="$install_prog$func_quote_for_eval_result"
+
+    # We need to accept at least all the BSD install flags.
+    dest=
+    files=
+    opts=
+    prev=
+    install_type=
+    isdir=no
+    stripme=
+    for arg
+    do
+      if test -n "$dest"; then
+	files="$files $dest"
+	dest=$arg
+	continue
+      fi
+
+      case $arg in
+      -d) isdir=yes ;;
+      -f)
+	case " $install_prog " in
+	*[\\\ /]cp\ *) ;;
+	*) prev=$arg ;;
+	esac
+	;;
+      -g | -m | -o)
+	prev=$arg
+	;;
+      -s)
+	stripme=" -s"
+	continue
+	;;
+      -*)
+	;;
+      *)
+	# If the previous option needed an argument, then skip it.
+	if test -n "$prev"; then
+	  prev=
+	else
+	  dest=$arg
+	  continue
+	fi
+	;;
+      esac
+
+      # Aesthetically quote the argument.
+      func_quote_for_eval "$arg"
+      install_prog="$install_prog $func_quote_for_eval_result"
+    done
+
+    test -z "$install_prog" && \
+      func_fatal_help "you must specify an install program"
+
+    test -n "$prev" && \
+      func_fatal_help "the \`$prev' option requires an argument"
+
+    if test -z "$files"; then
+      if test -z "$dest"; then
+	func_fatal_help "no file or destination specified"
+      else
+	func_fatal_help "you must specify a destination"
+      fi
+    fi
+
+    # Strip any trailing slash from the destination.
+    func_stripname '' '/' "$dest"
+    dest=$func_stripname_result
+
+    # Check to see that the destination is a directory.
+    test -d "$dest" && isdir=yes
+    if test "$isdir" = yes; then
+      destdir="$dest"
+      destname=
+    else
+      func_dirname_and_basename "$dest" "" "."
+      destdir="$func_dirname_result"
+      destname="$func_basename_result"
+
+      # Not a directory, so check to see that there is only one file specified.
+      set dummy $files; shift
+      test "$#" -gt 1 && \
+	func_fatal_help "\`$dest' is not a directory"
+    fi
+    case $destdir in
+    [\\/]* | [A-Za-z]:[\\/]*) ;;
+    *)
+      for file in $files; do
+	case $file in
+	*.lo) ;;
+	*)
+	  func_fatal_help "\`$destdir' must be an absolute directory name"
+	  ;;
+	esac
+      done
+      ;;
+    esac
+
+    # This variable tells wrapper scripts just to set variables rather
+    # than running their programs.
+    libtool_install_magic="$magic"
+
+    staticlibs=
+    future_libdirs=
+    current_libdirs=
+    for file in $files; do
+
+      # Do each installation.
+      case $file in
+      *.$libext)
+	# Do the static libraries later.
+	staticlibs="$staticlibs $file"
+	;;
+
+      *.la)
+	# Check to see that this really is a libtool archive.
+	func_lalib_unsafe_p "$file" \
+	  || func_fatal_help "\`$file' is not a valid libtool archive"
+
+	library_names=
+	old_library=
+	relink_command=
+	func_source "$file"
+
+	# Add the libdir to current_libdirs if it is the destination.
+	if test "X$destdir" = "X$libdir"; then
+	  case "$current_libdirs " in
+	  *" $libdir "*) ;;
+	  *) current_libdirs="$current_libdirs $libdir" ;;
+	  esac
+	else
+	  # Note the libdir as a future libdir.
+	  case "$future_libdirs " in
+	  *" $libdir "*) ;;
+	  *) future_libdirs="$future_libdirs $libdir" ;;
+	  esac
+	fi
+
+	func_dirname "$file" "/" ""
+	dir="$func_dirname_result"
+	dir="$dir$objdir"
+
+	if test -n "$relink_command"; then
+	  # Determine the prefix the user has applied to our future dir.
+	  inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`
+
+	  # Don't allow the user to place us outside of our expected
+	  # location b/c this prevents finding dependent libraries that
+	  # are installed to the same prefix.
+	  # At present, this check doesn't affect windows .dll's that
+	  # are installed into $libdir/../bin (currently, that works fine)
+	  # but it's something to keep an eye on.
+	  test "$inst_prefix_dir" = "$destdir" && \
+	    func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
+
+	  if test -n "$inst_prefix_dir"; then
+	    # Stick the inst_prefix_dir data into the link command.
+	    relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
+	  else
+	    relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"`
+	  fi
+
+	  func_warning "relinking \`$file'"
+	  func_show_eval "$relink_command" \
+	    'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
+	fi
+
+	# See the names of the shared library.
+	set dummy $library_names; shift
+	if test -n "$1"; then
+	  realname="$1"
+	  shift
+
+	  srcname="$realname"
+	  test -n "$relink_command" && srcname="$realname"T
+
+	  # Install the shared library and build the symlinks.
+	  func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \
+	      'exit $?'
+	  tstripme="$stripme"
+	  case $host_os in
+	  cygwin* | mingw* | pw32* | cegcc*)
+	    case $realname in
+	    *.dll.a)
+	      tstripme=""
+	      ;;
+	    esac
+	    ;;
+	  esac
+	  if test -n "$tstripme" && test -n "$striplib"; then
+	    func_show_eval "$striplib $destdir/$realname" 'exit $?'
+	  fi
+
+	  if test "$#" -gt 0; then
+	    # Delete the old symlinks, and create new ones.
+	    # Try `ln -sf' first, because the `ln' binary might depend on
+	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
+	    # so we also need to try rm && ln -s.
+	    for linkname
+	    do
+	      test "$linkname" != "$realname" \
+		&& func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
+	    done
+	  fi
+
+	  # Do each command in the postinstall commands.
+	  lib="$destdir/$realname"
+	  func_execute_cmds "$postinstall_cmds" 'exit $?'
+	fi
+
+	# Install the pseudo-library for information purposes.
+	func_basename "$file"
+	name="$func_basename_result"
+	instname="$dir/$name"i
+	func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
+
+	# Maybe install the static library, too.
+	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
+	;;
+
+      *.lo)
+	# Install (i.e. copy) a libtool object.
+
+	# Figure out destination file name, if it wasn't already specified.
+	if test -n "$destname"; then
+	  destfile="$destdir/$destname"
+	else
+	  func_basename "$file"
+	  destfile="$func_basename_result"
+	  destfile="$destdir/$destfile"
+	fi
+
+	# Deduce the name of the destination old-style object file.
+	case $destfile in
+	*.lo)
+	  func_lo2o "$destfile"
+	  staticdest=$func_lo2o_result
+	  ;;
+	*.$objext)
+	  staticdest="$destfile"
+	  destfile=
+	  ;;
+	*)
+	  func_fatal_help "cannot copy a libtool object to \`$destfile'"
+	  ;;
+	esac
+
+	# Install the libtool object if requested.
+	test -n "$destfile" && \
+	  func_show_eval "$install_prog $file $destfile" 'exit $?'
+
+	# Install the old object if enabled.
+	if test "$build_old_libs" = yes; then
+	  # Deduce the name of the old-style object file.
+	  func_lo2o "$file"
+	  staticobj=$func_lo2o_result
+	  func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
+	fi
+	exit $EXIT_SUCCESS
+	;;
+
+      *)
+	# Figure out destination file name, if it wasn't already specified.
+	if test -n "$destname"; then
+	  destfile="$destdir/$destname"
+	else
+	  func_basename "$file"
+	  destfile="$func_basename_result"
+	  destfile="$destdir/$destfile"
+	fi
+
+	# If the file is missing, and there is a .exe on the end, strip it
+	# because it is most likely a libtool script we actually want to
+	# install
+	stripped_ext=""
+	case $file in
+	  *.exe)
+	    if test ! -f "$file"; then
+	      func_stripname '' '.exe' "$file"
+	      file=$func_stripname_result
+	      stripped_ext=".exe"
+	    fi
+	    ;;
+	esac
+
+	# Do a test to see if this is really a libtool program.
+	case $host in
+	*cygwin* | *mingw*)
+	    if func_ltwrapper_executable_p "$file"; then
+	      func_ltwrapper_scriptname "$file"
+	      wrapper=$func_ltwrapper_scriptname_result
+	    else
+	      func_stripname '' '.exe' "$file"
+	      wrapper=$func_stripname_result
+	    fi
+	    ;;
+	*)
+	    wrapper=$file
+	    ;;
+	esac
+	if func_ltwrapper_script_p "$wrapper"; then
+	  notinst_deplibs=
+	  relink_command=
+
+	  func_source "$wrapper"
+
+	  # Check the variables that should have been set.
+	  test -z "$generated_by_libtool_version" && \
+	    func_fatal_error "invalid libtool wrapper script \`$wrapper'"
+
+	  finalize=yes
+	  for lib in $notinst_deplibs; do
+	    # Check to see that each library is installed.
+	    libdir=
+	    if test -f "$lib"; then
+	      func_source "$lib"
+	    fi
+	    libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
+	    if test -n "$libdir" && test ! -f "$libfile"; then
+	      func_warning "\`$lib' has not been installed in \`$libdir'"
+	      finalize=no
+	    fi
+	  done
+
+	  relink_command=
+	  func_source "$wrapper"
+
+	  outputname=
+	  if test "$fast_install" = no && test -n "$relink_command"; then
+	    $opt_dry_run || {
+	      if test "$finalize" = yes; then
+	        tmpdir=`func_mktempdir`
+		func_basename "$file$stripped_ext"
+		file="$func_basename_result"
+	        outputname="$tmpdir/$file"
+	        # Replace the output file specification.
+	        relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
+
+	        $opt_silent || {
+	          func_quote_for_expand "$relink_command"
+		  eval "func_echo $func_quote_for_expand_result"
+	        }
+	        if eval "$relink_command"; then :
+	          else
+		  func_error "error: relink \`$file' with the above command before installing it"
+		  $opt_dry_run || ${RM}r "$tmpdir"
+		  continue
+	        fi
+	        file="$outputname"
+	      else
+	        func_warning "cannot relink \`$file'"
+	      fi
+	    }
+	  else
+	    # Install the binary that we compiled earlier.
+	    file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
+	  fi
+	fi
+
+	# remove .exe since cygwin /usr/bin/install will append another
+	# one anyway
+	case $install_prog,$host in
+	*/usr/bin/install*,*cygwin*)
+	  case $file:$destfile in
+	  *.exe:*.exe)
+	    # this is ok
+	    ;;
+	  *.exe:*)
+	    destfile=$destfile.exe
+	    ;;
+	  *:*.exe)
+	    func_stripname '' '.exe' "$destfile"
+	    destfile=$func_stripname_result
+	    ;;
+	  esac
+	  ;;
+	esac
+	func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
+	$opt_dry_run || if test -n "$outputname"; then
+	  ${RM}r "$tmpdir"
+	fi
+	;;
+      esac
+    done
+
+    for file in $staticlibs; do
+      func_basename "$file"
+      name="$func_basename_result"
+
+      # Set up the ranlib parameters.
+      oldlib="$destdir/$name"
+
+      func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
+
+      if test -n "$stripme" && test -n "$old_striplib"; then
+	func_show_eval "$old_striplib $oldlib" 'exit $?'
+      fi
+
+      # Do each command in the postinstall commands.
+      func_execute_cmds "$old_postinstall_cmds" 'exit $?'
+    done
+
+    test -n "$future_libdirs" && \
+      func_warning "remember to run \`$progname --finish$future_libdirs'"
+
+    if test -n "$current_libdirs"; then
+      # Maybe just do a dry run.
+      $opt_dry_run && current_libdirs=" -n$current_libdirs"
+      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
+    else
+      exit $EXIT_SUCCESS
+    fi
+}
+
+test "$mode" = install && func_mode_install ${1+"$@"}
+
+
+# func_generate_dlsyms outputname originator pic_p
+# Extract symbols from dlprefiles and create ${outputname}S.o with
+# a dlpreopen symbol table.
+func_generate_dlsyms ()
+{
+    $opt_debug
+    my_outputname="$1"
+    my_originator="$2"
+    my_pic_p="${3-no}"
+    my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
+    my_dlsyms=
+
+    if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+      if test -n "$NM" && test -n "$global_symbol_pipe"; then
+	my_dlsyms="${my_outputname}S.c"
+      else
+	func_error "not configured to extract global symbols from dlpreopened files"
+      fi
+    fi
+
+    if test -n "$my_dlsyms"; then
+      case $my_dlsyms in
+      "") ;;
+      *.c)
+	# Discover the nlist of each of the dlfiles.
+	nlist="$output_objdir/${my_outputname}.nm"
+
+	func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
+
+	# Parse the name list into a source file.
+	func_verbose "creating $output_objdir/$my_dlsyms"
+
+	$opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
+/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
+/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
+
+#ifdef __cplusplus
+extern \"C\" {
+#endif
+
+/* External symbol declarations for the compiler. */\
+"
+
+	if test "$dlself" = yes; then
+	  func_verbose "generating symbol list for \`$output'"
+
+	  $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
+
+	  # Add our own program objects to the symbol list.
+	  progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	  for progfile in $progfiles; do
+	    func_verbose "extracting global C symbols from \`$progfile'"
+	    $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
+	  done
+
+	  if test -n "$exclude_expsyms"; then
+	    $opt_dry_run || {
+	      eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
+	      eval '$MV "$nlist"T "$nlist"'
+	    }
+	  fi
+
+	  if test -n "$export_symbols_regex"; then
+	    $opt_dry_run || {
+	      eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
+	      eval '$MV "$nlist"T "$nlist"'
+	    }
+	  fi
+
+	  # Prepare the list of exported symbols
+	  if test -z "$export_symbols"; then
+	    export_symbols="$output_objdir/$outputname.exp"
+	    $opt_dry_run || {
+	      $RM $export_symbols
+	      eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+	      case $host in
+	      *cygwin* | *mingw* | *cegcc* )
+                eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+                eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
+	        ;;
+	      esac
+	    }
+	  else
+	    $opt_dry_run || {
+	      eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
+	      eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
+	      eval '$MV "$nlist"T "$nlist"'
+	      case $host in
+	        *cygwin | *mingw* | *cegcc* )
+	          eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+	          eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
+	          ;;
+	      esac
+	    }
+	  fi
+	fi
+
+	for dlprefile in $dlprefiles; do
+	  func_verbose "extracting global C symbols from \`$dlprefile'"
+	  func_basename "$dlprefile"
+	  name="$func_basename_result"
+	  $opt_dry_run || {
+	    eval '$ECHO ": $name " >> "$nlist"'
+	    eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+	  }
+	done
+
+	$opt_dry_run || {
+	  # Make sure we have at least an empty file.
+	  test -f "$nlist" || : > "$nlist"
+
+	  if test -n "$exclude_expsyms"; then
+	    $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
+	    $MV "$nlist"T "$nlist"
+	  fi
+
+	  # Try sorting and uniquifying the output.
+	  if $GREP -v "^: " < "$nlist" |
+	      if sort -k 3 </dev/null >/dev/null 2>&1; then
+		sort -k 3
+	      else
+		sort +2
+	      fi |
+	      uniq > "$nlist"S; then
+	    :
+	  else
+	    $GREP -v "^: " < "$nlist" > "$nlist"S
+	  fi
+
+	  if test -f "$nlist"S; then
+	    eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
+	  else
+	    $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"
+	  fi
+
+	  $ECHO >> "$output_objdir/$my_dlsyms" "\
+
+/* The mapping between symbol names and symbols.  */
+typedef struct {
+  const char *name;
+  void *address;
+} lt_dlsymlist;
+"
+	  case $host in
+	  *cygwin* | *mingw* | *cegcc* )
+	    $ECHO >> "$output_objdir/$my_dlsyms" "\
+/* DATA imports from DLLs on WIN32 con't be const, because
+   runtime relocations are performed -- see ld's documentation
+   on pseudo-relocs.  */"
+	    lt_dlsym_const= ;;
+	  *osf5*)
+	    echo >> "$output_objdir/$my_dlsyms" "\
+/* This system does not cope well with relocations in const data */"
+	    lt_dlsym_const= ;;
+	  *)
+	    lt_dlsym_const=const ;;
+	  esac
+
+	  $ECHO >> "$output_objdir/$my_dlsyms" "\
+extern $lt_dlsym_const lt_dlsymlist
+lt_${my_prefix}_LTX_preloaded_symbols[];
+$lt_dlsym_const lt_dlsymlist
+lt_${my_prefix}_LTX_preloaded_symbols[] =
+{\
+  { \"$my_originator\", (void *) 0 },"
+
+	  case $need_lib_prefix in
+	  no)
+	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
+	    ;;
+	  *)
+	    eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
+	    ;;
+	  esac
+	  $ECHO >> "$output_objdir/$my_dlsyms" "\
+  {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt_${my_prefix}_LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif\
+"
+	} # !$opt_dry_run
+
+	pic_flag_for_symtable=
+	case "$compile_command " in
+	*" -static "*) ;;
+	*)
+	  case $host in
+	  # compiling the symbol table file with pic_flag works around
+	  # a FreeBSD bug that causes programs to crash when -lm is
+	  # linked before any other PIC object.  But we must not use
+	  # pic_flag when linking with -static.  The problem exists in
+	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
+	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+	    pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
+	  *-*-hpux*)
+	    pic_flag_for_symtable=" $pic_flag"  ;;
+	  *)
+	    if test "X$my_pic_p" != Xno; then
+	      pic_flag_for_symtable=" $pic_flag"
+	    fi
+	    ;;
+	  esac
+	  ;;
+	esac
+	symtab_cflags=
+	for arg in $LTCFLAGS; do
+	  case $arg in
+	  -pie | -fpie | -fPIE) ;;
+	  *) symtab_cflags="$symtab_cflags $arg" ;;
+	  esac
+	done
+
+	# Now compile the dynamic symbol file.
+	func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
+
+	# Clean up the generated files.
+	func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
+
+	# Transform the symbol file into the correct name.
+	symfileobj="$output_objdir/${my_outputname}S.$objext"
+	case $host in
+	*cygwin* | *mingw* | *cegcc* )
+	  if test -f "$output_objdir/$my_outputname.def"; then
+	    compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+	    finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+	  else
+	    compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+	    finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+	  fi
+	  ;;
+	*)
+	  compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+	  finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+	  ;;
+	esac
+	;;
+      *)
+	func_fatal_error "unknown suffix for \`$my_dlsyms'"
+	;;
+      esac
+    else
+      # We keep going just in case the user didn't refer to
+      # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
+      # really was required.
+
+      # Nullify the symbol file.
+      compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
+      finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
+    fi
+}
+
+# func_win32_libid arg
+# return the library type of file 'arg'
+#
+# Need a lot of goo to handle *both* DLLs and import libs
+# Has to be a shell function in order to 'eat' the argument
+# that is supplied when $file_magic_command is called.
+func_win32_libid ()
+{
+  $opt_debug
+  win32_libid_type="unknown"
+  win32_fileres=`file -L $1 2>/dev/null`
+  case $win32_fileres in
+  *ar\ archive\ import\ library*) # definitely import
+    win32_libid_type="x86 archive import"
+    ;;
+  *ar\ archive*) # could be an import, or static
+    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
+       $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
+      win32_nmres=`eval $NM -f posix -A $1 |
+	$SED -n -e '
+	    1,100{
+		/ I /{
+		    s,.*,import,
+		    p
+		    q
+		}
+	    }'`
+      case $win32_nmres in
+      import*)  win32_libid_type="x86 archive import";;
+      *)        win32_libid_type="x86 archive static";;
+      esac
+    fi
+    ;;
+  *DLL*)
+    win32_libid_type="x86 DLL"
+    ;;
+  *executable*) # but shell scripts are "executable" too...
+    case $win32_fileres in
+    *MS\ Windows\ PE\ Intel*)
+      win32_libid_type="x86 DLL"
+      ;;
+    esac
+    ;;
+  esac
+  $ECHO "$win32_libid_type"
+}
+
+
+
+# func_extract_an_archive dir oldlib
+func_extract_an_archive ()
+{
+    $opt_debug
+    f_ex_an_ar_dir="$1"; shift
+    f_ex_an_ar_oldlib="$1"
+    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?'
+    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
+     :
+    else
+      func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
+    fi
+}
+
+
+# func_extract_archives gentop oldlib ...
+func_extract_archives ()
+{
+    $opt_debug
+    my_gentop="$1"; shift
+    my_oldlibs=${1+"$@"}
+    my_oldobjs=""
+    my_xlib=""
+    my_xabs=""
+    my_xdir=""
+
+    for my_xlib in $my_oldlibs; do
+      # Extract the objects.
+      case $my_xlib in
+	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
+	*) my_xabs=`pwd`"/$my_xlib" ;;
+      esac
+      func_basename "$my_xlib"
+      my_xlib="$func_basename_result"
+      my_xlib_u=$my_xlib
+      while :; do
+        case " $extracted_archives " in
+	*" $my_xlib_u "*)
+	  func_arith $extracted_serial + 1
+	  extracted_serial=$func_arith_result
+	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
+	*) break ;;
+	esac
+      done
+      extracted_archives="$extracted_archives $my_xlib_u"
+      my_xdir="$my_gentop/$my_xlib_u"
+
+      func_mkdir_p "$my_xdir"
+
+      case $host in
+      *-darwin*)
+	func_verbose "Extracting $my_xabs"
+	# Do not bother doing anything if just a dry run
+	$opt_dry_run || {
+	  darwin_orig_dir=`pwd`
+	  cd $my_xdir || exit $?
+	  darwin_archive=$my_xabs
+	  darwin_curdir=`pwd`
+	  darwin_base_archive=`basename "$darwin_archive"`
+	  darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
+	  if test -n "$darwin_arches"; then
+	    darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
+	    darwin_arch=
+	    func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
+	    for darwin_arch in  $darwin_arches ; do
+	      func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+	      $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
+	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
+	      cd "$darwin_curdir"
+	      $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
+	    done # $darwin_arches
+            ## Okay now we've a bunch of thin objects, gotta fatten them up :)
+	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
+	    darwin_file=
+	    darwin_files=
+	    for darwin_file in $darwin_filelist; do
+	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
+	      $LIPO -create -output "$darwin_file" $darwin_files
+	    done # $darwin_filelist
+	    $RM -rf unfat-$$
+	    cd "$darwin_orig_dir"
+	  else
+	    cd $darwin_orig_dir
+	    func_extract_an_archive "$my_xdir" "$my_xabs"
+	  fi # $darwin_arches
+	} # !$opt_dry_run
+	;;
+      *)
+        func_extract_an_archive "$my_xdir" "$my_xabs"
+	;;
+      esac
+      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
+    done
+
+    func_extract_archives_result="$my_oldobjs"
+}
+
+
+
+# func_emit_wrapper_part1 [arg=no]
+#
+# Emit the first part of a libtool wrapper script on stdout.
+# For more information, see the description associated with
+# func_emit_wrapper(), below.
+func_emit_wrapper_part1 ()
+{
+	func_emit_wrapper_part1_arg1=no
+	if test -n "$1" ; then
+	  func_emit_wrapper_part1_arg1=$1
+	fi
+
+	$ECHO "\
+#! $SHELL
+
+# $output - temporary wrapper script for $objdir/$outputname
+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+#
+# The $output program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='${SED} -e 1s/^X//'
+sed_quote_subst='$sed_quote_subst'
+
+# Be Bourne compatible
+if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command=\"$relink_command\"
+
+# This environment variable determines our operation mode.
+if test \"\$libtool_install_magic\" = \"$magic\"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='$macro_version'
+  notinst_deplibs='$notinst_deplibs'
+else
+  # When we are sourced in execute mode, \$file and \$ECHO are already set.
+  if test \"\$libtool_execute_magic\" != \"$magic\"; then
+    ECHO=\"$qecho\"
+    file=\"\$0\"
+    # Make sure echo works.
+    if test \"X\$1\" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then
+      # Yippee, \$ECHO works!
+      :
+    else
+      # Restart under the correct shell, and then maybe \$ECHO will work.
+      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
+    fi
+  fi\
+"
+	$ECHO "\
+
+  # Find the directory that this script lives in.
+  thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
+  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
+  while test -n \"\$file\"; do
+    destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
+
+    # If there was a directory component, then change thisdir.
+    if test \"x\$destdir\" != \"x\$file\"; then
+      case \"\$destdir\" in
+      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
+      *) thisdir=\"\$thisdir/\$destdir\" ;;
+      esac
+    fi
+
+    file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
+    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
+  done
+"
+}
+# end: func_emit_wrapper_part1
+
+# func_emit_wrapper_part2 [arg=no]
+#
+# Emit the second part of a libtool wrapper script on stdout.
+# For more information, see the description associated with
+# func_emit_wrapper(), below.
+func_emit_wrapper_part2 ()
+{
+	func_emit_wrapper_part2_arg1=no
+	if test -n "$1" ; then
+	  func_emit_wrapper_part2_arg1=$1
+	fi
+
+	$ECHO "\
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1
+  if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
+    # special case for '.'
+    if test \"\$thisdir\" = \".\"; then
+      thisdir=\`pwd\`
+    fi
+    # remove .libs from thisdir
+    case \"\$thisdir\" in
+    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;;
+    $objdir )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=\`cd \"\$thisdir\" && pwd\`
+  test -n \"\$absdir\" && thisdir=\"\$absdir\"
+"
+
+	if test "$fast_install" = yes; then
+	  $ECHO "\
+  program=lt-'$outputname'$exeext
+  progdir=\"\$thisdir/$objdir\"
+
+  if test ! -f \"\$progdir/\$program\" ||
+     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
+       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
+
+    file=\"\$\$-\$program\"
+
+    if test ! -d \"\$progdir\"; then
+      $MKDIR \"\$progdir\"
+    else
+      $RM \"\$progdir/\$file\"
+    fi"
+
+	  $ECHO "\
+
+    # relink executable if necessary
+    if test -n \"\$relink_command\"; then
+      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
+      else
+	$ECHO \"\$relink_command_output\" >&2
+	$RM \"\$progdir/\$file\"
+	exit 1
+      fi
+    fi
+
+    $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
+    { $RM \"\$progdir/\$program\";
+      $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
+    $RM \"\$progdir/\$file\"
+  fi"
+	else
+	  $ECHO "\
+  program='$outputname'
+  progdir=\"\$thisdir/$objdir\"
+"
+	fi
+
+	$ECHO "\
+
+  if test -f \"\$progdir/\$program\"; then"
+
+	# Export our shlibpath_var if we have one.
+	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+	  $ECHO "\
+    # Add our own library path to $shlibpath_var
+    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
+
+    # Some systems cannot cope with colon-terminated $shlibpath_var
+    # The second colon is a workaround for a bug in BeOS R4 sed
+    $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
+
+    export $shlibpath_var
+"
+	fi
+
+	# fixup the dll searchpath if we need to.
+	if test -n "$dllsearchpath"; then
+	  $ECHO "\
+    # Add the dll search path components to the executable PATH
+    PATH=$dllsearchpath:\$PATH
+"
+	fi
+
+	$ECHO "\
+    if test \"\$libtool_execute_magic\" != \"$magic\"; then
+      # Run the actual program with our arguments.
+"
+	case $host in
+	# Backslashes separate directories on plain windows
+	*-*-mingw | *-*-os2* | *-cegcc*)
+	  $ECHO "\
+      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
+"
+	  ;;
+
+	*)
+	  $ECHO "\
+      exec \"\$progdir/\$program\" \${1+\"\$@\"}
+"
+	  ;;
+	esac
+	$ECHO "\
+      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
+    \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
+    $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
+    exit 1
+  fi
+fi\
+"
+}
+# end: func_emit_wrapper_part2
+
+
+# func_emit_wrapper [arg=no]
+#
+# Emit a libtool wrapper script on stdout.
+# Don't directly open a file because we may want to
+# incorporate the script contents within a cygwin/mingw
+# wrapper executable.  Must ONLY be called from within
+# func_mode_link because it depends on a number of variables
+# set therein.
+#
+# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
+# variable will take.  If 'yes', then the emitted script
+# will assume that the directory in which it is stored is
+# the $objdir directory.  This is a cygwin/mingw-specific
+# behavior.
+func_emit_wrapper ()
+{
+	func_emit_wrapper_arg1=no
+	if test -n "$1" ; then
+	  func_emit_wrapper_arg1=$1
+	fi
+
+	# split this up so that func_emit_cwrapperexe_src
+	# can call each part independently.
+	func_emit_wrapper_part1 "${func_emit_wrapper_arg1}"
+	func_emit_wrapper_part2 "${func_emit_wrapper_arg1}"
+}
+
+
+# func_to_host_path arg
+#
+# Convert paths to host format when used with build tools.
+# Intended for use with "native" mingw (where libtool itself
+# is running under the msys shell), or in the following cross-
+# build environments:
+#    $build          $host
+#    mingw (msys)    mingw  [e.g. native]
+#    cygwin          mingw
+#    *nix + wine     mingw
+# where wine is equipped with the `winepath' executable.
+# In the native mingw case, the (msys) shell automatically
+# converts paths for any non-msys applications it launches,
+# but that facility isn't available from inside the cwrapper.
+# Similar accommodations are necessary for $host mingw and
+# $build cygwin.  Calling this function does no harm for other
+# $host/$build combinations not listed above.
+#
+# ARG is the path (on $build) that should be converted to
+# the proper representation for $host. The result is stored
+# in $func_to_host_path_result.
+func_to_host_path ()
+{
+  func_to_host_path_result="$1"
+  if test -n "$1" ; then
+    case $host in
+      *mingw* )
+        lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+        case $build in
+          *mingw* ) # actually, msys
+            # awkward: cmd appends spaces to result
+            lt_sed_strip_trailing_spaces="s/[ ]*\$//"
+            func_to_host_path_tmp1=`( cmd //c echo "$1" |\
+              $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
+            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
+              $SED -e "$lt_sed_naive_backslashify"`
+            ;;
+          *cygwin* )
+            func_to_host_path_tmp1=`cygpath -w "$1"`
+            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
+              $SED -e "$lt_sed_naive_backslashify"`
+            ;;
+          * )
+            # Unfortunately, winepath does not exit with a non-zero
+            # error code, so we are forced to check the contents of
+            # stdout. On the other hand, if the command is not
+            # found, the shell will set an exit code of 127 and print
+            # *an error message* to stdout. So we must check for both
+            # error code of zero AND non-empty stdout, which explains
+            # the odd construction:
+            func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
+            if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
+              func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
+                $SED -e "$lt_sed_naive_backslashify"`
+            else
+              # Allow warning below.
+              func_to_host_path_result=""
+            fi
+            ;;
+        esac
+        if test -z "$func_to_host_path_result" ; then
+          func_error "Could not determine host path corresponding to"
+          func_error "  '$1'"
+          func_error "Continuing, but uninstalled executables may not work."
+          # Fallback:
+          func_to_host_path_result="$1"
+        fi
+        ;;
+    esac
+  fi
+}
+# end: func_to_host_path
+
+# func_to_host_pathlist arg
+#
+# Convert pathlists to host format when used with build tools.
+# See func_to_host_path(), above. This function supports the
+# following $build/$host combinations (but does no harm for
+# combinations not listed here):
+#    $build          $host
+#    mingw (msys)    mingw  [e.g. native]
+#    cygwin          mingw
+#    *nix + wine     mingw
+#
+# Path separators are also converted from $build format to
+# $host format. If ARG begins or ends with a path separator
+# character, it is preserved (but converted to $host format)
+# on output.
+#
+# ARG is a pathlist (on $build) that should be converted to
+# the proper representation on $host. The result is stored
+# in $func_to_host_pathlist_result.
+func_to_host_pathlist ()
+{
+  func_to_host_pathlist_result="$1"
+  if test -n "$1" ; then
+    case $host in
+      *mingw* )
+        lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+        # Remove leading and trailing path separator characters from
+        # ARG. msys behavior is inconsistent here, cygpath turns them
+        # into '.;' and ';.', and winepath ignores them completely.
+        func_to_host_pathlist_tmp2="$1"
+        # Once set for this call, this variable should not be
+        # reassigned. It is used in tha fallback case.
+        func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\
+          $SED -e 's|^:*||' -e 's|:*$||'`
+        case $build in
+          *mingw* ) # Actually, msys.
+            # Awkward: cmd appends spaces to result.
+            lt_sed_strip_trailing_spaces="s/[ ]*\$//"
+            func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\
+              $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
+            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
+              $SED -e "$lt_sed_naive_backslashify"`
+            ;;
+          *cygwin* )
+            func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"`
+            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
+              $SED -e "$lt_sed_naive_backslashify"`
+            ;;
+          * )
+            # unfortunately, winepath doesn't convert pathlists
+            func_to_host_pathlist_result=""
+            func_to_host_pathlist_oldIFS=$IFS
+            IFS=:
+            for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do
+              IFS=$func_to_host_pathlist_oldIFS
+              if test -n "$func_to_host_pathlist_f" ; then
+                func_to_host_path "$func_to_host_pathlist_f"
+                if test -n "$func_to_host_path_result" ; then
+                  if test -z "$func_to_host_pathlist_result" ; then
+                    func_to_host_pathlist_result="$func_to_host_path_result"
+                  else
+                    func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result"
+                  fi
+                fi
+              fi
+              IFS=:
+            done
+            IFS=$func_to_host_pathlist_oldIFS
+            ;;
+        esac
+        if test -z "$func_to_host_pathlist_result" ; then
+          func_error "Could not determine the host path(s) corresponding to"
+          func_error "  '$1'"
+          func_error "Continuing, but uninstalled executables may not work."
+          # Fallback. This may break if $1 contains DOS-style drive
+          # specifications. The fix is not to complicate the expression
+          # below, but for the user to provide a working wine installation
+          # with winepath so that path translation in the cross-to-mingw
+          # case works properly.
+          lt_replace_pathsep_nix_to_dos="s|:|;|g"
+          func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\
+            $SED -e "$lt_replace_pathsep_nix_to_dos"`
+        fi
+        # Now, add the leading and trailing path separators back
+        case "$1" in
+          :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result"
+            ;;
+        esac
+        case "$1" in
+          *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;"
+            ;;
+        esac
+        ;;
+    esac
+  fi
+}
+# end: func_to_host_pathlist
+
+# func_emit_cwrapperexe_src
+# emit the source code for a wrapper executable on stdout
+# Must ONLY be called from within func_mode_link because
+# it depends on a number of variable set therein.
+func_emit_cwrapperexe_src ()
+{
+	cat <<EOF
+
+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
+   Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+
+   The $output program cannot be directly executed until all the libtool
+   libraries that it depends on are installed.
+
+   This wrapper executable should never be moved out of the build directory.
+   If it is, it will not operate correctly.
+
+   Currently, it simply execs the wrapper *script* "$SHELL $output",
+   but could eventually absorb all of the scripts functionality and
+   exec $objdir/$outputname directly.
+*/
+EOF
+	    cat <<"EOF"
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef _MSC_VER
+# include <direct.h>
+# include <process.h>
+# include <io.h>
+# define setmode _setmode
+#else
+# include <unistd.h>
+# include <stdint.h>
+# ifdef __CYGWIN__
+#  include <io.h>
+#  define HAVE_SETENV
+#  ifdef __STRICT_ANSI__
+char *realpath (const char *, char *);
+int putenv (char *);
+int setenv (const char *, const char *, int);
+#  endif
+# endif
+#endif
+#include <malloc.h>
+#include <stdarg.h>
+#include <assert.h>
+#include <string.h>
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+
+#if defined(PATH_MAX)
+# define LT_PATHMAX PATH_MAX
+#elif defined(MAXPATHLEN)
+# define LT_PATHMAX MAXPATHLEN
+#else
+# define LT_PATHMAX 1024
+#endif
+
+#ifndef S_IXOTH
+# define S_IXOTH 0
+#endif
+#ifndef S_IXGRP
+# define S_IXGRP 0
+#endif
+
+#ifdef _MSC_VER
+# define S_IXUSR _S_IEXEC
+# define stat _stat
+# ifndef _INTPTR_T_DEFINED
+#  define intptr_t int
+# endif
+#endif
+
+#ifndef DIR_SEPARATOR
+# define DIR_SEPARATOR '/'
+# define PATH_SEPARATOR ':'
+#endif
+
+#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
+  defined (__OS2__)
+# define HAVE_DOS_BASED_FILE_SYSTEM
+# define FOPEN_WB "wb"
+# ifndef DIR_SEPARATOR_2
+#  define DIR_SEPARATOR_2 '\\'
+# endif
+# ifndef PATH_SEPARATOR_2
+#  define PATH_SEPARATOR_2 ';'
+# endif
+#endif
+
+#ifndef DIR_SEPARATOR_2
+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
+#else /* DIR_SEPARATOR_2 */
+# define IS_DIR_SEPARATOR(ch) \
+	(((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
+#endif /* DIR_SEPARATOR_2 */
+
+#ifndef PATH_SEPARATOR_2
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
+#else /* PATH_SEPARATOR_2 */
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
+#endif /* PATH_SEPARATOR_2 */
+
+#ifdef __CYGWIN__
+# define FOPEN_WB "wb"
+#endif
+
+#ifndef FOPEN_WB
+# define FOPEN_WB "w"
+#endif
+#ifndef _O_BINARY
+# define _O_BINARY 0
+#endif
+
+#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
+#define XFREE(stale) do { \
+  if (stale) { free ((void *) stale); stale = 0; } \
+} while (0)
+
+#undef LTWRAPPER_DEBUGPRINTF
+#if defined DEBUGWRAPPER
+# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args
+static void
+ltwrapper_debugprintf (const char *fmt, ...)
+{
+    va_list args;
+    va_start (args, fmt);
+    (void) vfprintf (stderr, fmt, args);
+    va_end (args);
+}
+#else
+# define LTWRAPPER_DEBUGPRINTF(args)
+#endif
+
+const char *program_name = NULL;
+
+void *xmalloc (size_t num);
+char *xstrdup (const char *string);
+const char *base_name (const char *name);
+char *find_executable (const char *wrapper);
+char *chase_symlinks (const char *pathspec);
+int make_executable (const char *path);
+int check_executable (const char *path);
+char *strendzap (char *str, const char *pat);
+void lt_fatal (const char *message, ...);
+void lt_setenv (const char *name, const char *value);
+char *lt_extend_str (const char *orig_value, const char *add, int to_end);
+void lt_opt_process_env_set (const char *arg);
+void lt_opt_process_env_prepend (const char *arg);
+void lt_opt_process_env_append (const char *arg);
+int lt_split_name_value (const char *arg, char** name, char** value);
+void lt_update_exe_path (const char *name, const char *value);
+void lt_update_lib_path (const char *name, const char *value);
+
+static const char *script_text_part1 =
+EOF
+
+	    func_emit_wrapper_part1 yes |
+	        $SED -e 's/\([\\"]\)/\\\1/g' \
+	             -e 's/^/  "/' -e 's/$/\\n"/'
+	    echo ";"
+	    cat <<EOF
+
+static const char *script_text_part2 =
+EOF
+	    func_emit_wrapper_part2 yes |
+	        $SED -e 's/\([\\"]\)/\\\1/g' \
+	             -e 's/^/  "/' -e 's/$/\\n"/'
+	    echo ";"
+
+	    cat <<EOF
+const char * MAGIC_EXE = "$magic_exe";
+const char * LIB_PATH_VARNAME = "$shlibpath_var";
+EOF
+
+	    if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+              func_to_host_pathlist "$temp_rpath"
+	      cat <<EOF
+const char * LIB_PATH_VALUE   = "$func_to_host_pathlist_result";
+EOF
+	    else
+	      cat <<"EOF"
+const char * LIB_PATH_VALUE   = "";
+EOF
+	    fi
+
+	    if test -n "$dllsearchpath"; then
+              func_to_host_pathlist "$dllsearchpath:"
+	      cat <<EOF
+const char * EXE_PATH_VARNAME = "PATH";
+const char * EXE_PATH_VALUE   = "$func_to_host_pathlist_result";
+EOF
+	    else
+	      cat <<"EOF"
+const char * EXE_PATH_VARNAME = "";
+const char * EXE_PATH_VALUE   = "";
+EOF
+	    fi
+
+	    if test "$fast_install" = yes; then
+	      cat <<EOF
+const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
+EOF
+	    else
+	      cat <<EOF
+const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
+EOF
+	    fi
+
+
+	    cat <<"EOF"
+
+#define LTWRAPPER_OPTION_PREFIX         "--lt-"
+#define LTWRAPPER_OPTION_PREFIX_LENGTH  5
+
+static const size_t opt_prefix_len         = LTWRAPPER_OPTION_PREFIX_LENGTH;
+static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
+
+static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
+
+static const size_t env_set_opt_len     = LTWRAPPER_OPTION_PREFIX_LENGTH + 7;
+static const char *env_set_opt          = LTWRAPPER_OPTION_PREFIX "env-set";
+  /* argument is putenv-style "foo=bar", value of foo is set to bar */
+
+static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11;
+static const char *env_prepend_opt      = LTWRAPPER_OPTION_PREFIX "env-prepend";
+  /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */
+
+static const size_t env_append_opt_len  = LTWRAPPER_OPTION_PREFIX_LENGTH + 10;
+static const char *env_append_opt       = LTWRAPPER_OPTION_PREFIX "env-append";
+  /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */
+
+int
+main (int argc, char *argv[])
+{
+  char **newargz;
+  int  newargc;
+  char *tmp_pathspec;
+  char *actual_cwrapper_path;
+  char *actual_cwrapper_name;
+  char *target_name;
+  char *lt_argv_zero;
+  intptr_t rval = 127;
+
+  int i;
+
+  program_name = (char *) xstrdup (base_name (argv[0]));
+  LTWRAPPER_DEBUGPRINTF (("(main) argv[0]      : %s\n", argv[0]));
+  LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name));
+
+  /* very simple arg parsing; don't want to rely on getopt */
+  for (i = 1; i < argc; i++)
+    {
+      if (strcmp (argv[i], dumpscript_opt) == 0)
+	{
+EOF
+	    case "$host" in
+	      *mingw* | *cygwin* )
+		# make stdout use "unix" line endings
+		echo "          setmode(1,_O_BINARY);"
+		;;
+	      esac
+
+	    cat <<"EOF"
+	  printf ("%s", script_text_part1);
+	  printf ("%s", script_text_part2);
+	  return 0;
+	}
+    }
+
+  newargz = XMALLOC (char *, argc + 1);
+  tmp_pathspec = find_executable (argv[0]);
+  if (tmp_pathspec == NULL)
+    lt_fatal ("Couldn't find %s", argv[0]);
+  LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n",
+			  tmp_pathspec));
+
+  actual_cwrapper_path = chase_symlinks (tmp_pathspec);
+  LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n",
+			  actual_cwrapper_path));
+  XFREE (tmp_pathspec);
+
+  actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path));
+  strendzap (actual_cwrapper_path, actual_cwrapper_name);
+
+  /* wrapper name transforms */
+  strendzap (actual_cwrapper_name, ".exe");
+  tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
+  XFREE (actual_cwrapper_name);
+  actual_cwrapper_name = tmp_pathspec;
+  tmp_pathspec = 0;
+
+  /* target_name transforms -- use actual target program name; might have lt- prefix */
+  target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
+  strendzap (target_name, ".exe");
+  tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
+  XFREE (target_name);
+  target_name = tmp_pathspec;
+  tmp_pathspec = 0;
+
+  LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n",
+			  target_name));
+EOF
+
+	    cat <<EOF
+  newargz[0] =
+    XMALLOC (char, (strlen (actual_cwrapper_path) +
+		    strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
+  strcpy (newargz[0], actual_cwrapper_path);
+  strcat (newargz[0], "$objdir");
+  strcat (newargz[0], "/");
+EOF
+
+	    cat <<"EOF"
+  /* stop here, and copy so we don't have to do this twice */
+  tmp_pathspec = xstrdup (newargz[0]);
+
+  /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
+  strcat (newargz[0], actual_cwrapper_name);
+
+  /* DO want the lt- prefix here if it exists, so use target_name */
+  lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
+  XFREE (tmp_pathspec);
+  tmp_pathspec = NULL;
+EOF
+
+	    case $host_os in
+	      mingw*)
+	    cat <<"EOF"
+  {
+    char* p;
+    while ((p = strchr (newargz[0], '\\')) != NULL)
+      {
+	*p = '/';
+      }
+    while ((p = strchr (lt_argv_zero, '\\')) != NULL)
+      {
+	*p = '/';
+      }
+  }
+EOF
+	    ;;
+	    esac
+
+	    cat <<"EOF"
+  XFREE (target_name);
+  XFREE (actual_cwrapper_path);
+  XFREE (actual_cwrapper_name);
+
+  lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
+  lt_setenv ("DUALCASE", "1");  /* for MSK sh */
+  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
+  lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
+
+  newargc=0;
+  for (i = 1; i < argc; i++)
+    {
+      if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0)
+        {
+          if (argv[i][env_set_opt_len] == '=')
+            {
+              const char *p = argv[i] + env_set_opt_len + 1;
+              lt_opt_process_env_set (p);
+            }
+          else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc)
+            {
+              lt_opt_process_env_set (argv[++i]); /* don't copy */
+            }
+          else
+            lt_fatal ("%s missing required argument", env_set_opt);
+          continue;
+        }
+      if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0)
+        {
+          if (argv[i][env_prepend_opt_len] == '=')
+            {
+              const char *p = argv[i] + env_prepend_opt_len + 1;
+              lt_opt_process_env_prepend (p);
+            }
+          else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc)
+            {
+              lt_opt_process_env_prepend (argv[++i]); /* don't copy */
+            }
+          else
+            lt_fatal ("%s missing required argument", env_prepend_opt);
+          continue;
+        }
+      if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0)
+        {
+          if (argv[i][env_append_opt_len] == '=')
+            {
+              const char *p = argv[i] + env_append_opt_len + 1;
+              lt_opt_process_env_append (p);
+            }
+          else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc)
+            {
+              lt_opt_process_env_append (argv[++i]); /* don't copy */
+            }
+          else
+            lt_fatal ("%s missing required argument", env_append_opt);
+          continue;
+        }
+      if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0)
+        {
+          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
+             namespace, but it is not one of the ones we know about and
+             have already dealt with, above (inluding dump-script), then
+             report an error. Otherwise, targets might begin to believe
+             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
+             namespace. The first time any user complains about this, we'll
+             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
+             or a configure.ac-settable value.
+           */
+          lt_fatal ("Unrecognized option in %s namespace: '%s'",
+                    ltwrapper_option_prefix, argv[i]);
+        }
+      /* otherwise ... */
+      newargz[++newargc] = xstrdup (argv[i]);
+    }
+  newargz[++newargc] = NULL;
+
+  LTWRAPPER_DEBUGPRINTF     (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>")));
+  for (i = 0; i < newargc; i++)
+    {
+      LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d]   : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>")));
+    }
+
+EOF
+
+	    case $host_os in
+	      mingw*)
+		cat <<"EOF"
+  /* execv doesn't actually work on mingw as expected on unix */
+  rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
+  if (rval == -1)
+    {
+      /* failed to start process */
+      LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno));
+      return 127;
+    }
+  return rval;
+EOF
+		;;
+	      *)
+		cat <<"EOF"
+  execv (lt_argv_zero, newargz);
+  return rval; /* =127, but avoids unused variable warning */
+EOF
+		;;
+	    esac
+
+	    cat <<"EOF"
+}
+
+void *
+xmalloc (size_t num)
+{
+  void *p = (void *) malloc (num);
+  if (!p)
+    lt_fatal ("Memory exhausted");
+
+  return p;
+}
+
+char *
+xstrdup (const char *string)
+{
+  return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
+			  string) : NULL;
+}
+
+const char *
+base_name (const char *name)
+{
+  const char *base;
+
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  /* Skip over the disk name in MSDOS pathnames. */
+  if (isalpha ((unsigned char) name[0]) && name[1] == ':')
+    name += 2;
+#endif
+
+  for (base = name; *name; name++)
+    if (IS_DIR_SEPARATOR (*name))
+      base = name + 1;
+  return base;
+}
+
+int
+check_executable (const char *path)
+{
+  struct stat st;
+
+  LTWRAPPER_DEBUGPRINTF (("(check_executable)  : %s\n",
+			  path ? (*path ? path : "EMPTY!") : "NULL!"));
+  if ((!path) || (!*path))
+    return 0;
+
+  if ((stat (path, &st) >= 0)
+      && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
+    return 1;
+  else
+    return 0;
+}
+
+int
+make_executable (const char *path)
+{
+  int rval = 0;
+  struct stat st;
+
+  LTWRAPPER_DEBUGPRINTF (("(make_executable)   : %s\n",
+			  path ? (*path ? path : "EMPTY!") : "NULL!"));
+  if ((!path) || (!*path))
+    return 0;
+
+  if (stat (path, &st) >= 0)
+    {
+      rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
+    }
+  return rval;
+}
+
+/* Searches for the full path of the wrapper.  Returns
+   newly allocated full path name if found, NULL otherwise
+   Does not chase symlinks, even on platforms that support them.
+*/
+char *
+find_executable (const char *wrapper)
+{
+  int has_slash = 0;
+  const char *p;
+  const char *p_next;
+  /* static buffer for getcwd */
+  char tmp[LT_PATHMAX + 1];
+  int tmp_len;
+  char *concat_name;
+
+  LTWRAPPER_DEBUGPRINTF (("(find_executable)   : %s\n",
+			  wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"));
+
+  if ((wrapper == NULL) || (*wrapper == '\0'))
+    return NULL;
+
+  /* Absolute path? */
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
+    {
+      concat_name = xstrdup (wrapper);
+      if (check_executable (concat_name))
+	return concat_name;
+      XFREE (concat_name);
+    }
+  else
+    {
+#endif
+      if (IS_DIR_SEPARATOR (wrapper[0]))
+	{
+	  concat_name = xstrdup (wrapper);
+	  if (check_executable (concat_name))
+	    return concat_name;
+	  XFREE (concat_name);
+	}
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+    }
+#endif
+
+  for (p = wrapper; *p; p++)
+    if (*p == '/')
+      {
+	has_slash = 1;
+	break;
+      }
+  if (!has_slash)
+    {
+      /* no slashes; search PATH */
+      const char *path = getenv ("PATH");
+      if (path != NULL)
+	{
+	  for (p = path; *p; p = p_next)
+	    {
+	      const char *q;
+	      size_t p_len;
+	      for (q = p; *q; q++)
+		if (IS_PATH_SEPARATOR (*q))
+		  break;
+	      p_len = q - p;
+	      p_next = (*q == '\0' ? q : q + 1);
+	      if (p_len == 0)
+		{
+		  /* empty path: current directory */
+		  if (getcwd (tmp, LT_PATHMAX) == NULL)
+		    lt_fatal ("getcwd failed");
+		  tmp_len = strlen (tmp);
+		  concat_name =
+		    XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
+		  memcpy (concat_name, tmp, tmp_len);
+		  concat_name[tmp_len] = '/';
+		  strcpy (concat_name + tmp_len + 1, wrapper);
+		}
+	      else
+		{
+		  concat_name =
+		    XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
+		  memcpy (concat_name, p, p_len);
+		  concat_name[p_len] = '/';
+		  strcpy (concat_name + p_len + 1, wrapper);
+		}
+	      if (check_executable (concat_name))
+		return concat_name;
+	      XFREE (concat_name);
+	    }
+	}
+      /* not found in PATH; assume curdir */
+    }
+  /* Relative path | not found in path: prepend cwd */
+  if (getcwd (tmp, LT_PATHMAX) == NULL)
+    lt_fatal ("getcwd failed");
+  tmp_len = strlen (tmp);
+  concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
+  memcpy (concat_name, tmp, tmp_len);
+  concat_name[tmp_len] = '/';
+  strcpy (concat_name + tmp_len + 1, wrapper);
+
+  if (check_executable (concat_name))
+    return concat_name;
+  XFREE (concat_name);
+  return NULL;
+}
+
+char *
+chase_symlinks (const char *pathspec)
+{
+#ifndef S_ISLNK
+  return xstrdup (pathspec);
+#else
+  char buf[LT_PATHMAX];
+  struct stat s;
+  char *tmp_pathspec = xstrdup (pathspec);
+  char *p;
+  int has_symlinks = 0;
+  while (strlen (tmp_pathspec) && !has_symlinks)
+    {
+      LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n",
+			      tmp_pathspec));
+      if (lstat (tmp_pathspec, &s) == 0)
+	{
+	  if (S_ISLNK (s.st_mode) != 0)
+	    {
+	      has_symlinks = 1;
+	      break;
+	    }
+
+	  /* search backwards for last DIR_SEPARATOR */
+	  p = tmp_pathspec + strlen (tmp_pathspec) - 1;
+	  while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
+	    p--;
+	  if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
+	    {
+	      /* no more DIR_SEPARATORS left */
+	      break;
+	    }
+	  *p = '\0';
+	}
+      else
+	{
+	  char *errstr = strerror (errno);
+	  lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr);
+	}
+    }
+  XFREE (tmp_pathspec);
+
+  if (!has_symlinks)
+    {
+      return xstrdup (pathspec);
+    }
+
+  tmp_pathspec = realpath (pathspec, buf);
+  if (tmp_pathspec == 0)
+    {
+      lt_fatal ("Could not follow symlinks for %s", pathspec);
+    }
+  return xstrdup (tmp_pathspec);
+#endif
+}
+
+char *
+strendzap (char *str, const char *pat)
+{
+  size_t len, patlen;
+
+  assert (str != NULL);
+  assert (pat != NULL);
+
+  len = strlen (str);
+  patlen = strlen (pat);
+
+  if (patlen <= len)
+    {
+      str += len - patlen;
+      if (strcmp (str, pat) == 0)
+	*str = '\0';
+    }
+  return str;
+}
+
+static void
+lt_error_core (int exit_status, const char *mode,
+	       const char *message, va_list ap)
+{
+  fprintf (stderr, "%s: %s: ", program_name, mode);
+  vfprintf (stderr, message, ap);
+  fprintf (stderr, ".\n");
+
+  if (exit_status >= 0)
+    exit (exit_status);
+}
+
+void
+lt_fatal (const char *message, ...)
+{
+  va_list ap;
+  va_start (ap, message);
+  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
+  va_end (ap);
+}
+
+void
+lt_setenv (const char *name, const char *value)
+{
+  LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n",
+                          (name ? name : "<NULL>"),
+                          (value ? value : "<NULL>")));
+  {
+#ifdef HAVE_SETENV
+    /* always make a copy, for consistency with !HAVE_SETENV */
+    char *str = xstrdup (value);
+    setenv (name, str, 1);
+#else
+    int len = strlen (name) + 1 + strlen (value) + 1;
+    char *str = XMALLOC (char, len);
+    sprintf (str, "%s=%s", name, value);
+    if (putenv (str) != EXIT_SUCCESS)
+      {
+        XFREE (str);
+      }
+#endif
+  }
+}
+
+char *
+lt_extend_str (const char *orig_value, const char *add, int to_end)
+{
+  char *new_value;
+  if (orig_value && *orig_value)
+    {
+      int orig_value_len = strlen (orig_value);
+      int add_len = strlen (add);
+      new_value = XMALLOC (char, add_len + orig_value_len + 1);
+      if (to_end)
+        {
+          strcpy (new_value, orig_value);
+          strcpy (new_value + orig_value_len, add);
+        }
+      else
+        {
+          strcpy (new_value, add);
+          strcpy (new_value + add_len, orig_value);
+        }
+    }
+  else
+    {
+      new_value = xstrdup (add);
+    }
+  return new_value;
+}
+
+int
+lt_split_name_value (const char *arg, char** name, char** value)
+{
+  const char *p;
+  int len;
+  if (!arg || !*arg)
+    return 1;
+
+  p = strchr (arg, (int)'=');
+
+  if (!p)
+    return 1;
+
+  *value = xstrdup (++p);
+
+  len = strlen (arg) - strlen (*value);
+  *name = XMALLOC (char, len);
+  strncpy (*name, arg, len-1);
+  (*name)[len - 1] = '\0';
+
+  return 0;
+}
+
+void
+lt_opt_process_env_set (const char *arg)
+{
+  char *name = NULL;
+  char *value = NULL;
+
+  if (lt_split_name_value (arg, &name, &value) != 0)
+    {
+      XFREE (name);
+      XFREE (value);
+      lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg);
+    }
+
+  lt_setenv (name, value);
+  XFREE (name);
+  XFREE (value);
+}
+
+void
+lt_opt_process_env_prepend (const char *arg)
+{
+  char *name = NULL;
+  char *value = NULL;
+  char *new_value = NULL;
+
+  if (lt_split_name_value (arg, &name, &value) != 0)
+    {
+      XFREE (name);
+      XFREE (value);
+      lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg);
+    }
+
+  new_value = lt_extend_str (getenv (name), value, 0);
+  lt_setenv (name, new_value);
+  XFREE (new_value);
+  XFREE (name);
+  XFREE (value);
+}
+
+void
+lt_opt_process_env_append (const char *arg)
+{
+  char *name = NULL;
+  char *value = NULL;
+  char *new_value = NULL;
+
+  if (lt_split_name_value (arg, &name, &value) != 0)
+    {
+      XFREE (name);
+      XFREE (value);
+      lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg);
+    }
+
+  new_value = lt_extend_str (getenv (name), value, 1);
+  lt_setenv (name, new_value);
+  XFREE (new_value);
+  XFREE (name);
+  XFREE (value);
+}
+
+void
+lt_update_exe_path (const char *name, const char *value)
+{
+  LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
+                          (name ? name : "<NULL>"),
+                          (value ? value : "<NULL>")));
+
+  if (name && *name && value && *value)
+    {
+      char *new_value = lt_extend_str (getenv (name), value, 0);
+      /* some systems can't cope with a ':'-terminated path #' */
+      int len = strlen (new_value);
+      while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
+        {
+          new_value[len-1] = '\0';
+        }
+      lt_setenv (name, new_value);
+      XFREE (new_value);
+    }
+}
+
+void
+lt_update_lib_path (const char *name, const char *value)
+{
+  LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
+                          (name ? name : "<NULL>"),
+                          (value ? value : "<NULL>")));
+
+  if (name && *name && value && *value)
+    {
+      char *new_value = lt_extend_str (getenv (name), value, 0);
+      lt_setenv (name, new_value);
+      XFREE (new_value);
+    }
+}
+
+
+EOF
+}
+# end: func_emit_cwrapperexe_src
+
+# func_mode_link arg...
+func_mode_link ()
+{
+    $opt_debug
+    case $host in
+    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+      # It is impossible to link a dll without this setting, and
+      # we shouldn't force the makefile maintainer to figure out
+      # which system we are compiling for in order to pass an extra
+      # flag for every libtool invocation.
+      # allow_undefined=no
+
+      # FIXME: Unfortunately, there are problems with the above when trying
+      # to make a dll which has undefined symbols, in which case not
+      # even a static library is built.  For now, we need to specify
+      # -no-undefined on the libtool link line when we can be certain
+      # that all symbols are satisfied, otherwise we get a static library.
+      allow_undefined=yes
+      ;;
+    *)
+      allow_undefined=yes
+      ;;
+    esac
+    libtool_args=$nonopt
+    base_compile="$nonopt $@"
+    compile_command=$nonopt
+    finalize_command=$nonopt
+
+    compile_rpath=
+    finalize_rpath=
+    compile_shlibpath=
+    finalize_shlibpath=
+    convenience=
+    old_convenience=
+    deplibs=
+    old_deplibs=
+    compiler_flags=
+    linker_flags=
+    dllsearchpath=
+    lib_search_path=`pwd`
+    inst_prefix_dir=
+    new_inherited_linker_flags=
+
+    avoid_version=no
+    dlfiles=
+    dlprefiles=
+    dlself=no
+    export_dynamic=no
+    export_symbols=
+    export_symbols_regex=
+    generated=
+    libobjs=
+    ltlibs=
+    module=no
+    no_install=no
+    objs=
+    non_pic_objects=
+    precious_files_regex=
+    prefer_static_libs=no
+    preload=no
+    prev=
+    prevarg=
+    release=
+    rpath=
+    xrpath=
+    perm_rpath=
+    temp_rpath=
+    thread_safe=no
+    vinfo=
+    vinfo_number=no
+    weak_libs=
+    single_module="${wl}-single_module"
+    func_infer_tag $base_compile
+
+    # We need to know -static, to get the right output filenames.
+    for arg
+    do
+      case $arg in
+      -shared)
+	test "$build_libtool_libs" != yes && \
+	  func_fatal_configuration "can not build a shared library"
+	build_old_libs=no
+	break
+	;;
+      -all-static | -static | -static-libtool-libs)
+	case $arg in
+	-all-static)
+	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
+	    func_warning "complete static linking is impossible in this configuration"
+	  fi
+	  if test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	  prefer_static_libs=yes
+	  ;;
+	-static)
+	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	  prefer_static_libs=built
+	  ;;
+	-static-libtool-libs)
+	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	  prefer_static_libs=yes
+	  ;;
+	esac
+	build_libtool_libs=no
+	build_old_libs=yes
+	break
+	;;
+      esac
+    done
+
+    # See if our shared archives depend on static archives.
+    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
+
+    # Go through the arguments, transforming them on the way.
+    while test "$#" -gt 0; do
+      arg="$1"
+      shift
+      func_quote_for_eval "$arg"
+      qarg=$func_quote_for_eval_unquoted_result
+      func_append libtool_args " $func_quote_for_eval_result"
+
+      # If the previous option needs an argument, assign it.
+      if test -n "$prev"; then
+	case $prev in
+	output)
+	  func_append compile_command " @OUTPUT@"
+	  func_append finalize_command " @OUTPUT@"
+	  ;;
+	esac
+
+	case $prev in
+	dlfiles|dlprefiles)
+	  if test "$preload" = no; then
+	    # Add the symbol object into the linking commands.
+	    func_append compile_command " @SYMFILE@"
+	    func_append finalize_command " @SYMFILE@"
+	    preload=yes
+	  fi
+	  case $arg in
+	  *.la | *.lo) ;;  # We handle these cases below.
+	  force)
+	    if test "$dlself" = no; then
+	      dlself=needless
+	      export_dynamic=yes
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  self)
+	    if test "$prev" = dlprefiles; then
+	      dlself=yes
+	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
+	      dlself=yes
+	    else
+	      dlself=needless
+	      export_dynamic=yes
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  *)
+	    if test "$prev" = dlfiles; then
+	      dlfiles="$dlfiles $arg"
+	    else
+	      dlprefiles="$dlprefiles $arg"
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  esac
+	  ;;
+	expsyms)
+	  export_symbols="$arg"
+	  test -f "$arg" \
+	    || func_fatal_error "symbol file \`$arg' does not exist"
+	  prev=
+	  continue
+	  ;;
+	expsyms_regex)
+	  export_symbols_regex="$arg"
+	  prev=
+	  continue
+	  ;;
+	framework)
+	  case $host in
+	    *-*-darwin*)
+	      case "$deplibs " in
+		*" $qarg.ltframework "*) ;;
+		*) deplibs="$deplibs $qarg.ltframework" # this is fixed later
+		   ;;
+	      esac
+	      ;;
+	  esac
+	  prev=
+	  continue
+	  ;;
+	inst_prefix)
+	  inst_prefix_dir="$arg"
+	  prev=
+	  continue
+	  ;;
+	objectlist)
+	  if test -f "$arg"; then
+	    save_arg=$arg
+	    moreargs=
+	    for fil in `cat "$save_arg"`
+	    do
+#	      moreargs="$moreargs $fil"
+	      arg=$fil
+	      # A libtool-controlled object.
+
+	      # Check to see that this really is a libtool object.
+	      if func_lalib_unsafe_p "$arg"; then
+		pic_object=
+		non_pic_object=
+
+		# Read the .lo file
+		func_source "$arg"
+
+		if test -z "$pic_object" ||
+		   test -z "$non_pic_object" ||
+		   test "$pic_object" = none &&
+		   test "$non_pic_object" = none; then
+		  func_fatal_error "cannot find name of object for \`$arg'"
+		fi
+
+		# Extract subdirectory from the argument.
+		func_dirname "$arg" "/" ""
+		xdir="$func_dirname_result"
+
+		if test "$pic_object" != none; then
+		  # Prepend the subdirectory the object is found in.
+		  pic_object="$xdir$pic_object"
+
+		  if test "$prev" = dlfiles; then
+		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+		      dlfiles="$dlfiles $pic_object"
+		      prev=
+		      continue
+		    else
+		      # If libtool objects are unsupported, then we need to preload.
+		      prev=dlprefiles
+		    fi
+		  fi
+
+		  # CHECK ME:  I think I busted this.  -Ossama
+		  if test "$prev" = dlprefiles; then
+		    # Preload the old-style object.
+		    dlprefiles="$dlprefiles $pic_object"
+		    prev=
+		  fi
+
+		  # A PIC object.
+		  func_append libobjs " $pic_object"
+		  arg="$pic_object"
+		fi
+
+		# Non-PIC object.
+		if test "$non_pic_object" != none; then
+		  # Prepend the subdirectory the object is found in.
+		  non_pic_object="$xdir$non_pic_object"
+
+		  # A standard non-PIC object
+		  func_append non_pic_objects " $non_pic_object"
+		  if test -z "$pic_object" || test "$pic_object" = none ; then
+		    arg="$non_pic_object"
+		  fi
+		else
+		  # If the PIC object exists, use it instead.
+		  # $xdir was prepended to $pic_object above.
+		  non_pic_object="$pic_object"
+		  func_append non_pic_objects " $non_pic_object"
+		fi
+	      else
+		# Only an error if not doing a dry-run.
+		if $opt_dry_run; then
+		  # Extract subdirectory from the argument.
+		  func_dirname "$arg" "/" ""
+		  xdir="$func_dirname_result"
+
+		  func_lo2o "$arg"
+		  pic_object=$xdir$objdir/$func_lo2o_result
+		  non_pic_object=$xdir$func_lo2o_result
+		  func_append libobjs " $pic_object"
+		  func_append non_pic_objects " $non_pic_object"
+	        else
+		  func_fatal_error "\`$arg' is not a valid libtool object"
+		fi
+	      fi
+	    done
+	  else
+	    func_fatal_error "link input file \`$arg' does not exist"
+	  fi
+	  arg=$save_arg
+	  prev=
+	  continue
+	  ;;
+	precious_regex)
+	  precious_files_regex="$arg"
+	  prev=
+	  continue
+	  ;;
+	release)
+	  release="-$arg"
+	  prev=
+	  continue
+	  ;;
+	rpath | xrpath)
+	  # We need an absolute path.
+	  case $arg in
+	  [\\/]* | [A-Za-z]:[\\/]*) ;;
+	  *)
+	    func_fatal_error "only absolute run-paths are allowed"
+	    ;;
+	  esac
+	  if test "$prev" = rpath; then
+	    case "$rpath " in
+	    *" $arg "*) ;;
+	    *) rpath="$rpath $arg" ;;
+	    esac
+	  else
+	    case "$xrpath " in
+	    *" $arg "*) ;;
+	    *) xrpath="$xrpath $arg" ;;
+	    esac
+	  fi
+	  prev=
+	  continue
+	  ;;
+	shrext)
+	  shrext_cmds="$arg"
+	  prev=
+	  continue
+	  ;;
+	weak)
+	  weak_libs="$weak_libs $arg"
+	  prev=
+	  continue
+	  ;;
+	xcclinker)
+	  linker_flags="$linker_flags $qarg"
+	  compiler_flags="$compiler_flags $qarg"
+	  prev=
+	  func_append compile_command " $qarg"
+	  func_append finalize_command " $qarg"
+	  continue
+	  ;;
+	xcompiler)
+	  compiler_flags="$compiler_flags $qarg"
+	  prev=
+	  func_append compile_command " $qarg"
+	  func_append finalize_command " $qarg"
+	  continue
+	  ;;
+	xlinker)
+	  linker_flags="$linker_flags $qarg"
+	  compiler_flags="$compiler_flags $wl$qarg"
+	  prev=
+	  func_append compile_command " $wl$qarg"
+	  func_append finalize_command " $wl$qarg"
+	  continue
+	  ;;
+	*)
+	  eval "$prev=\"\$arg\""
+	  prev=
+	  continue
+	  ;;
+	esac
+      fi # test -n "$prev"
+
+      prevarg="$arg"
+
+      case $arg in
+      -all-static)
+	if test -n "$link_static_flag"; then
+	  # See comment for -static flag below, for more details.
+	  func_append compile_command " $link_static_flag"
+	  func_append finalize_command " $link_static_flag"
+	fi
+	continue
+	;;
+
+      -allow-undefined)
+	# FIXME: remove this flag sometime in the future.
+	func_fatal_error "\`-allow-undefined' must not be used because it is the default"
+	;;
+
+      -avoid-version)
+	avoid_version=yes
+	continue
+	;;
+
+      -dlopen)
+	prev=dlfiles
+	continue
+	;;
+
+      -dlpreopen)
+	prev=dlprefiles
+	continue
+	;;
+
+      -export-dynamic)
+	export_dynamic=yes
+	continue
+	;;
+
+      -export-symbols | -export-symbols-regex)
+	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+	  func_fatal_error "more than one -exported-symbols argument is not allowed"
+	fi
+	if test "X$arg" = "X-export-symbols"; then
+	  prev=expsyms
+	else
+	  prev=expsyms_regex
+	fi
+	continue
+	;;
+
+      -framework)
+	prev=framework
+	continue
+	;;
+
+      -inst-prefix-dir)
+	prev=inst_prefix
+	continue
+	;;
+
+      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
+      # so, if we see these flags be careful not to treat them like -L
+      -L[A-Z][A-Z]*:*)
+	case $with_gcc/$host in
+	no/*-*-irix* | /*-*-irix*)
+	  func_append compile_command " $arg"
+	  func_append finalize_command " $arg"
+	  ;;
+	esac
+	continue
+	;;
+
+      -L*)
+	func_stripname '-L' '' "$arg"
+	dir=$func_stripname_result
+	if test -z "$dir"; then
+	  if test "$#" -gt 0; then
+	    func_fatal_error "require no space between \`-L' and \`$1'"
+	  else
+	    func_fatal_error "need path for \`-L' option"
+	  fi
+	fi
+	# We need an absolute path.
+	case $dir in
+	[\\/]* | [A-Za-z]:[\\/]*) ;;
+	*)
+	  absdir=`cd "$dir" && pwd`
+	  test -z "$absdir" && \
+	    func_fatal_error "cannot determine absolute directory name of \`$dir'"
+	  dir="$absdir"
+	  ;;
+	esac
+	case "$deplibs " in
+	*" -L$dir "*) ;;
+	*)
+	  deplibs="$deplibs -L$dir"
+	  lib_search_path="$lib_search_path $dir"
+	  ;;
+	esac
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+	  testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
+	  case :$dllsearchpath: in
+	  *":$dir:"*) ;;
+	  ::) dllsearchpath=$dir;;
+	  *) dllsearchpath="$dllsearchpath:$dir";;
+	  esac
+	  case :$dllsearchpath: in
+	  *":$testbindir:"*) ;;
+	  ::) dllsearchpath=$testbindir;;
+	  *) dllsearchpath="$dllsearchpath:$testbindir";;
+	  esac
+	  ;;
+	esac
+	continue
+	;;
+
+      -l*)
+	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
+	  case $host in
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*)
+	    # These systems don't actually have a C or math library (as such)
+	    continue
+	    ;;
+	  *-*-os2*)
+	    # These systems don't actually have a C library (as such)
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+	    # Do not include libc due to us having libc/libc_r.
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-rhapsody* | *-*-darwin1.[012])
+	    # Rhapsody C and math libraries are in the System framework
+	    deplibs="$deplibs System.ltframework"
+	    continue
+	    ;;
+	  *-*-sco3.2v5* | *-*-sco5v6*)
+	    # Causes problems with __ctype
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+	    # Compiler inserts libc in the correct place for threads to work
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  esac
+	elif test "X$arg" = "X-lc_r"; then
+	 case $host in
+	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+	   # Do not include libc_r directly, use -pthread flag.
+	   continue
+	   ;;
+	 esac
+	fi
+	deplibs="$deplibs $arg"
+	continue
+	;;
+
+      -module)
+	module=yes
+	continue
+	;;
+
+      # Tru64 UNIX uses -model [arg] to determine the layout of C++
+      # classes, name mangling, and exception handling.
+      # Darwin uses the -arch flag to determine output architecture.
+      -model|-arch|-isysroot)
+	compiler_flags="$compiler_flags $arg"
+	func_append compile_command " $arg"
+	func_append finalize_command " $arg"
+	prev=xcompiler
+	continue
+	;;
+
+      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
+	compiler_flags="$compiler_flags $arg"
+	func_append compile_command " $arg"
+	func_append finalize_command " $arg"
+	case "$new_inherited_linker_flags " in
+	    *" $arg "*) ;;
+	    * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
+	esac
+	continue
+	;;
+
+      -multi_module)
+	single_module="${wl}-multi_module"
+	continue
+	;;
+
+      -no-fast-install)
+	fast_install=no
+	continue
+	;;
+
+      -no-install)
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
+	  # The PATH hackery in wrapper scripts is required on Windows
+	  # and Darwin in order for the loader to find any dlls it needs.
+	  func_warning "\`-no-install' is ignored for $host"
+	  func_warning "assuming \`-no-fast-install' instead"
+	  fast_install=no
+	  ;;
+	*) no_install=yes ;;
+	esac
+	continue
+	;;
+
+      -no-undefined)
+	allow_undefined=no
+	continue
+	;;
+
+      -objectlist)
+	prev=objectlist
+	continue
+	;;
+
+      -o) prev=output ;;
+
+      -precious-files-regex)
+	prev=precious_regex
+	continue
+	;;
+
+      -release)
+	prev=release
+	continue
+	;;
+
+      -rpath)
+	prev=rpath
+	continue
+	;;
+
+      -R)
+	prev=xrpath
+	continue
+	;;
+
+      -R*)
+	func_stripname '-R' '' "$arg"
+	dir=$func_stripname_result
+	# We need an absolute path.
+	case $dir in
+	[\\/]* | [A-Za-z]:[\\/]*) ;;
+	*)
+	  func_fatal_error "only absolute run-paths are allowed"
+	  ;;
+	esac
+	case "$xrpath " in
+	*" $dir "*) ;;
+	*) xrpath="$xrpath $dir" ;;
+	esac
+	continue
+	;;
+
+      -shared)
+	# The effects of -shared are defined in a previous loop.
+	continue
+	;;
+
+      -shrext)
+	prev=shrext
+	continue
+	;;
+
+      -static | -static-libtool-libs)
+	# The effects of -static are defined in a previous loop.
+	# We used to do the same as -all-static on platforms that
+	# didn't have a PIC flag, but the assumption that the effects
+	# would be equivalent was wrong.  It would break on at least
+	# Digital Unix and AIX.
+	continue
+	;;
+
+      -thread-safe)
+	thread_safe=yes
+	continue
+	;;
+
+      -version-info)
+	prev=vinfo
+	continue
+	;;
+
+      -version-number)
+	prev=vinfo
+	vinfo_number=yes
+	continue
+	;;
+
+      -weak)
+        prev=weak
+	continue
+	;;
+
+      -Wc,*)
+	func_stripname '-Wc,' '' "$arg"
+	args=$func_stripname_result
+	arg=
+	save_ifs="$IFS"; IFS=','
+	for flag in $args; do
+	  IFS="$save_ifs"
+          func_quote_for_eval "$flag"
+	  arg="$arg $wl$func_quote_for_eval_result"
+	  compiler_flags="$compiler_flags $func_quote_for_eval_result"
+	done
+	IFS="$save_ifs"
+	func_stripname ' ' '' "$arg"
+	arg=$func_stripname_result
+	;;
+
+      -Wl,*)
+	func_stripname '-Wl,' '' "$arg"
+	args=$func_stripname_result
+	arg=
+	save_ifs="$IFS"; IFS=','
+	for flag in $args; do
+	  IFS="$save_ifs"
+          func_quote_for_eval "$flag"
+	  arg="$arg $wl$func_quote_for_eval_result"
+	  compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
+	  linker_flags="$linker_flags $func_quote_for_eval_result"
+	done
+	IFS="$save_ifs"
+	func_stripname ' ' '' "$arg"
+	arg=$func_stripname_result
+	;;
+
+      -Xcompiler)
+	prev=xcompiler
+	continue
+	;;
+
+      -Xlinker)
+	prev=xlinker
+	continue
+	;;
+
+      -XCClinker)
+	prev=xcclinker
+	continue
+	;;
+
+      # -msg_* for osf cc
+      -msg_*)
+	func_quote_for_eval "$arg"
+	arg="$func_quote_for_eval_result"
+	;;
+
+      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
+      # -r[0-9][0-9]* specifies the processor on the SGI compiler
+      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
+      # +DA*, +DD* enable 64-bit mode on the HP compiler
+      # -q* pass through compiler args for the IBM compiler
+      # -m*, -t[45]*, -txscale* pass through architecture-specific
+      # compiler args for GCC
+      # -F/path gives path to uninstalled frameworks, gcc on darwin
+      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
+      # @file GCC response files
+      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
+      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
+        func_quote_for_eval "$arg"
+	arg="$func_quote_for_eval_result"
+        func_append compile_command " $arg"
+        func_append finalize_command " $arg"
+        compiler_flags="$compiler_flags $arg"
+        continue
+        ;;
+
+      # Some other compiler flag.
+      -* | +*)
+        func_quote_for_eval "$arg"
+	arg="$func_quote_for_eval_result"
+	;;
+
+      *.$objext)
+	# A standard object.
+	objs="$objs $arg"
+	;;
+
+      *.lo)
+	# A libtool-controlled object.
+
+	# Check to see that this really is a libtool object.
+	if func_lalib_unsafe_p "$arg"; then
+	  pic_object=
+	  non_pic_object=
+
+	  # Read the .lo file
+	  func_source "$arg"
+
+	  if test -z "$pic_object" ||
+	     test -z "$non_pic_object" ||
+	     test "$pic_object" = none &&
+	     test "$non_pic_object" = none; then
+	    func_fatal_error "cannot find name of object for \`$arg'"
+	  fi
+
+	  # Extract subdirectory from the argument.
+	  func_dirname "$arg" "/" ""
+	  xdir="$func_dirname_result"
+
+	  if test "$pic_object" != none; then
+	    # Prepend the subdirectory the object is found in.
+	    pic_object="$xdir$pic_object"
+
+	    if test "$prev" = dlfiles; then
+	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+		dlfiles="$dlfiles $pic_object"
+		prev=
+		continue
+	      else
+		# If libtool objects are unsupported, then we need to preload.
+		prev=dlprefiles
+	      fi
+	    fi
+
+	    # CHECK ME:  I think I busted this.  -Ossama
+	    if test "$prev" = dlprefiles; then
+	      # Preload the old-style object.
+	      dlprefiles="$dlprefiles $pic_object"
+	      prev=
+	    fi
+
+	    # A PIC object.
+	    func_append libobjs " $pic_object"
+	    arg="$pic_object"
+	  fi
+
+	  # Non-PIC object.
+	  if test "$non_pic_object" != none; then
+	    # Prepend the subdirectory the object is found in.
+	    non_pic_object="$xdir$non_pic_object"
+
+	    # A standard non-PIC object
+	    func_append non_pic_objects " $non_pic_object"
+	    if test -z "$pic_object" || test "$pic_object" = none ; then
+	      arg="$non_pic_object"
+	    fi
+	  else
+	    # If the PIC object exists, use it instead.
+	    # $xdir was prepended to $pic_object above.
+	    non_pic_object="$pic_object"
+	    func_append non_pic_objects " $non_pic_object"
+	  fi
+	else
+	  # Only an error if not doing a dry-run.
+	  if $opt_dry_run; then
+	    # Extract subdirectory from the argument.
+	    func_dirname "$arg" "/" ""
+	    xdir="$func_dirname_result"
+
+	    func_lo2o "$arg"
+	    pic_object=$xdir$objdir/$func_lo2o_result
+	    non_pic_object=$xdir$func_lo2o_result
+	    func_append libobjs " $pic_object"
+	    func_append non_pic_objects " $non_pic_object"
+	  else
+	    func_fatal_error "\`$arg' is not a valid libtool object"
+	  fi
+	fi
+	;;
+
+      *.$libext)
+	# An archive.
+	deplibs="$deplibs $arg"
+	old_deplibs="$old_deplibs $arg"
+	continue
+	;;
+
+      *.la)
+	# A libtool-controlled library.
+
+	if test "$prev" = dlfiles; then
+	  # This library was specified with -dlopen.
+	  dlfiles="$dlfiles $arg"
+	  prev=
+	elif test "$prev" = dlprefiles; then
+	  # The library was specified with -dlpreopen.
+	  dlprefiles="$dlprefiles $arg"
+	  prev=
+	else
+	  deplibs="$deplibs $arg"
+	fi
+	continue
+	;;
+
+      # Some other compiler argument.
+      *)
+	# Unknown arguments in both finalize_command and compile_command need
+	# to be aesthetically quoted because they are evaled later.
+	func_quote_for_eval "$arg"
+	arg="$func_quote_for_eval_result"
+	;;
+      esac # arg
+
+      # Now actually substitute the argument into the commands.
+      if test -n "$arg"; then
+	func_append compile_command " $arg"
+	func_append finalize_command " $arg"
+      fi
+    done # argument parsing loop
+
+    test -n "$prev" && \
+      func_fatal_help "the \`$prevarg' option requires an argument"
+
+    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
+      eval arg=\"$export_dynamic_flag_spec\"
+      func_append compile_command " $arg"
+      func_append finalize_command " $arg"
+    fi
+
+    oldlibs=
+    # calculate the name of the file, without its directory
+    func_basename "$output"
+    outputname="$func_basename_result"
+    libobjs_save="$libobjs"
+
+    if test -n "$shlibpath_var"; then
+      # get the directories listed in $shlibpath_var
+      eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
+    else
+      shlib_search_path=
+    fi
+    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
+    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+
+    func_dirname "$output" "/" ""
+    output_objdir="$func_dirname_result$objdir"
+    # Create the object directory.
+    func_mkdir_p "$output_objdir"
+
+    # Determine the type of output
+    case $output in
+    "")
+      func_fatal_help "you must specify an output file"
+      ;;
+    *.$libext) linkmode=oldlib ;;
+    *.lo | *.$objext) linkmode=obj ;;
+    *.la) linkmode=lib ;;
+    *) linkmode=prog ;; # Anything else should be a program.
+    esac
+
+    specialdeplibs=
+
+    libs=
+    # Find all interdependent deplibs by searching for libraries
+    # that are linked more than once (e.g. -la -lb -la)
+    for deplib in $deplibs; do
+      if $opt_duplicate_deps ; then
+	case "$libs " in
+	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	esac
+      fi
+      libs="$libs $deplib"
+    done
+
+    if test "$linkmode" = lib; then
+      libs="$predeps $libs $compiler_lib_search_path $postdeps"
+
+      # Compute libraries that are listed more than once in $predeps
+      # $postdeps and mark them as special (i.e., whose duplicates are
+      # not to be eliminated).
+      pre_post_deps=
+      if $opt_duplicate_compiler_generated_deps; then
+	for pre_post_dep in $predeps $postdeps; do
+	  case "$pre_post_deps " in
+	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
+	  esac
+	  pre_post_deps="$pre_post_deps $pre_post_dep"
+	done
+      fi
+      pre_post_deps=
+    fi
+
+    deplibs=
+    newdependency_libs=
+    newlib_search_path=
+    need_relink=no # whether we're linking any uninstalled libtool libraries
+    notinst_deplibs= # not-installed libtool libraries
+    notinst_path= # paths that contain not-installed libtool libraries
+
+    case $linkmode in
+    lib)
+	passes="conv dlpreopen link"
+	for file in $dlfiles $dlprefiles; do
+	  case $file in
+	  *.la) ;;
+	  *)
+	    func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
+	    ;;
+	  esac
+	done
+	;;
+    prog)
+	compile_deplibs=
+	finalize_deplibs=
+	alldeplibs=no
+	newdlfiles=
+	newdlprefiles=
+	passes="conv scan dlopen dlpreopen link"
+	;;
+    *)  passes="conv"
+	;;
+    esac
+
+    for pass in $passes; do
+      # The preopen pass in lib mode reverses $deplibs; put it back here
+      # so that -L comes before libs that need it for instance...
+      if test "$linkmode,$pass" = "lib,link"; then
+	## FIXME: Find the place where the list is rebuilt in the wrong
+	##        order, and fix it there properly
+        tmp_deplibs=
+	for deplib in $deplibs; do
+	  tmp_deplibs="$deplib $tmp_deplibs"
+	done
+	deplibs="$tmp_deplibs"
+      fi
+
+      if test "$linkmode,$pass" = "lib,link" ||
+	 test "$linkmode,$pass" = "prog,scan"; then
+	libs="$deplibs"
+	deplibs=
+      fi
+      if test "$linkmode" = prog; then
+	case $pass in
+	dlopen) libs="$dlfiles" ;;
+	dlpreopen) libs="$dlprefiles" ;;
+	link)
+	  libs="$deplibs %DEPLIBS%"
+	  test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
+	  ;;
+	esac
+      fi
+      if test "$linkmode,$pass" = "lib,dlpreopen"; then
+	# Collect and forward deplibs of preopened libtool libs
+	for lib in $dlprefiles; do
+	  # Ignore non-libtool-libs
+	  dependency_libs=
+	  case $lib in
+	  *.la)	func_source "$lib" ;;
+	  esac
+
+	  # Collect preopened libtool deplibs, except any this library
+	  # has declared as weak libs
+	  for deplib in $dependency_libs; do
+            deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`
+	    case " $weak_libs " in
+	    *" $deplib_base "*) ;;
+	    *) deplibs="$deplibs $deplib" ;;
+	    esac
+	  done
+	done
+	libs="$dlprefiles"
+      fi
+      if test "$pass" = dlopen; then
+	# Collect dlpreopened libraries
+	save_deplibs="$deplibs"
+	deplibs=
+      fi
+
+      for deplib in $libs; do
+	lib=
+	found=no
+	case $deplib in
+	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
+	  if test "$linkmode,$pass" = "prog,link"; then
+	    compile_deplibs="$deplib $compile_deplibs"
+	    finalize_deplibs="$deplib $finalize_deplibs"
+	  else
+	    compiler_flags="$compiler_flags $deplib"
+	    if test "$linkmode" = lib ; then
+		case "$new_inherited_linker_flags " in
+		    *" $deplib "*) ;;
+		    * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
+		esac
+	    fi
+	  fi
+	  continue
+	  ;;
+	-l*)
+	  if test "$linkmode" != lib && test "$linkmode" != prog; then
+	    func_warning "\`-l' is ignored for archives/objects"
+	    continue
+	  fi
+	  func_stripname '-l' '' "$deplib"
+	  name=$func_stripname_result
+	  if test "$linkmode" = lib; then
+	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
+	  else
+	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
+	  fi
+	  for searchdir in $searchdirs; do
+	    for search_ext in .la $std_shrext .so .a; do
+	      # Search the libtool library
+	      lib="$searchdir/lib${name}${search_ext}"
+	      if test -f "$lib"; then
+		if test "$search_ext" = ".la"; then
+		  found=yes
+		else
+		  found=no
+		fi
+		break 2
+	      fi
+	    done
+	  done
+	  if test "$found" != yes; then
+	    # deplib doesn't seem to be a libtool library
+	    if test "$linkmode,$pass" = "prog,link"; then
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    else
+	      deplibs="$deplib $deplibs"
+	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+	    fi
+	    continue
+	  else # deplib is a libtool library
+	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
+	    # We need to do some special things here, and not later.
+	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+	      case " $predeps $postdeps " in
+	      *" $deplib "*)
+		if func_lalib_p "$lib"; then
+		  library_names=
+		  old_library=
+		  func_source "$lib"
+		  for l in $old_library $library_names; do
+		    ll="$l"
+		  done
+		  if test "X$ll" = "X$old_library" ; then # only static version available
+		    found=no
+		    func_dirname "$lib" "" "."
+		    ladir="$func_dirname_result"
+		    lib=$ladir/$old_library
+		    if test "$linkmode,$pass" = "prog,link"; then
+		      compile_deplibs="$deplib $compile_deplibs"
+		      finalize_deplibs="$deplib $finalize_deplibs"
+		    else
+		      deplibs="$deplib $deplibs"
+		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+		    fi
+		    continue
+		  fi
+		fi
+		;;
+	      *) ;;
+	      esac
+	    fi
+	  fi
+	  ;; # -l
+	*.ltframework)
+	  if test "$linkmode,$pass" = "prog,link"; then
+	    compile_deplibs="$deplib $compile_deplibs"
+	    finalize_deplibs="$deplib $finalize_deplibs"
+	  else
+	    deplibs="$deplib $deplibs"
+	    if test "$linkmode" = lib ; then
+		case "$new_inherited_linker_flags " in
+		    *" $deplib "*) ;;
+		    * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
+		esac
+	    fi
+	  fi
+	  continue
+	  ;;
+	-L*)
+	  case $linkmode in
+	  lib)
+	    deplibs="$deplib $deplibs"
+	    test "$pass" = conv && continue
+	    newdependency_libs="$deplib $newdependency_libs"
+	    func_stripname '-L' '' "$deplib"
+	    newlib_search_path="$newlib_search_path $func_stripname_result"
+	    ;;
+	  prog)
+	    if test "$pass" = conv; then
+	      deplibs="$deplib $deplibs"
+	      continue
+	    fi
+	    if test "$pass" = scan; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    fi
+	    func_stripname '-L' '' "$deplib"
+	    newlib_search_path="$newlib_search_path $func_stripname_result"
+	    ;;
+	  *)
+	    func_warning "\`-L' is ignored for archives/objects"
+	    ;;
+	  esac # linkmode
+	  continue
+	  ;; # -L
+	-R*)
+	  if test "$pass" = link; then
+	    func_stripname '-R' '' "$deplib"
+	    dir=$func_stripname_result
+	    # Make sure the xrpath contains only unique directories.
+	    case "$xrpath " in
+	    *" $dir "*) ;;
+	    *) xrpath="$xrpath $dir" ;;
+	    esac
+	  fi
+	  deplibs="$deplib $deplibs"
+	  continue
+	  ;;
+	*.la) lib="$deplib" ;;
+	*.$libext)
+	  if test "$pass" = conv; then
+	    deplibs="$deplib $deplibs"
+	    continue
+	  fi
+	  case $linkmode in
+	  lib)
+	    # Linking convenience modules into shared libraries is allowed,
+	    # but linking other static libraries is non-portable.
+	    case " $dlpreconveniencelibs " in
+	    *" $deplib "*) ;;
+	    *)
+	      valid_a_lib=no
+	      case $deplibs_check_method in
+		match_pattern*)
+		  set dummy $deplibs_check_method; shift
+		  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+		  if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \
+		    | $EGREP "$match_pattern_regex" > /dev/null; then
+		    valid_a_lib=yes
+		  fi
+		;;
+		pass_all)
+		  valid_a_lib=yes
+		;;
+	      esac
+	      if test "$valid_a_lib" != yes; then
+		$ECHO
+		$ECHO "*** Warning: Trying to link with static lib archive $deplib."
+		$ECHO "*** I have the capability to make that library automatically link in when"
+		$ECHO "*** you link to this library.  But I can only do this if you have a"
+		$ECHO "*** shared version of the library, which you do not appear to have"
+		$ECHO "*** because the file extensions .$libext of this argument makes me believe"
+		$ECHO "*** that it is just a static archive that I should not use here."
+	      else
+		$ECHO
+		$ECHO "*** Warning: Linking the shared library $output against the"
+		$ECHO "*** static library $deplib is not portable!"
+		deplibs="$deplib $deplibs"
+	      fi
+	      ;;
+	    esac
+	    continue
+	    ;;
+	  prog)
+	    if test "$pass" != link; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    fi
+	    continue
+	    ;;
+	  esac # linkmode
+	  ;; # *.$libext
+	*.lo | *.$objext)
+	  if test "$pass" = conv; then
+	    deplibs="$deplib $deplibs"
+	  elif test "$linkmode" = prog; then
+	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
+	      # If there is no dlopen support or we're linking statically,
+	      # we need to preload.
+	      newdlprefiles="$newdlprefiles $deplib"
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    else
+	      newdlfiles="$newdlfiles $deplib"
+	    fi
+	  fi
+	  continue
+	  ;;
+	%DEPLIBS%)
+	  alldeplibs=yes
+	  continue
+	  ;;
+	esac # case $deplib
+
+	if test "$found" = yes || test -f "$lib"; then :
+	else
+	  func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
+	fi
+
+	# Check to see that this really is a libtool archive.
+	func_lalib_unsafe_p "$lib" \
+	  || func_fatal_error "\`$lib' is not a valid libtool archive"
+
+	func_dirname "$lib" "" "."
+	ladir="$func_dirname_result"
+
+	dlname=
+	dlopen=
+	dlpreopen=
+	libdir=
+	library_names=
+	old_library=
+	inherited_linker_flags=
+	# If the library was installed with an old release of libtool,
+	# it will not redefine variables installed, or shouldnotlink
+	installed=yes
+	shouldnotlink=no
+	avoidtemprpath=
+
+
+	# Read the .la file
+	func_source "$lib"
+
+	# Convert "-framework foo" to "foo.ltframework"
+	if test -n "$inherited_linker_flags"; then
+	  tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
+	  for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
+	    case " $new_inherited_linker_flags " in
+	      *" $tmp_inherited_linker_flag "*) ;;
+	      *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
+	    esac
+	  done
+	fi
+	dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	if test "$linkmode,$pass" = "lib,link" ||
+	   test "$linkmode,$pass" = "prog,scan" ||
+	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
+	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
+	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
+	fi
+
+	if test "$pass" = conv; then
+	  # Only check for convenience libraries
+	  deplibs="$lib $deplibs"
+	  if test -z "$libdir"; then
+	    if test -z "$old_library"; then
+	      func_fatal_error "cannot find name of link library for \`$lib'"
+	    fi
+	    # It is a libtool convenience library, so add in its objects.
+	    convenience="$convenience $ladir/$objdir/$old_library"
+	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
+	    tmp_libs=
+	    for deplib in $dependency_libs; do
+	      deplibs="$deplib $deplibs"
+	      if $opt_duplicate_deps ; then
+		case "$tmp_libs " in
+		*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+		esac
+	      fi
+	      tmp_libs="$tmp_libs $deplib"
+	    done
+	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
+	    func_fatal_error "\`$lib' is not a convenience library"
+	  fi
+	  continue
+	fi # $pass = conv
+
+
+	# Get the name of the library we link against.
+	linklib=
+	for l in $old_library $library_names; do
+	  linklib="$l"
+	done
+	if test -z "$linklib"; then
+	  func_fatal_error "cannot find name of link library for \`$lib'"
+	fi
+
+	# This library was specified with -dlopen.
+	if test "$pass" = dlopen; then
+	  if test -z "$libdir"; then
+	    func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
+	  fi
+	  if test -z "$dlname" ||
+	     test "$dlopen_support" != yes ||
+	     test "$build_libtool_libs" = no; then
+	    # If there is no dlname, no dlopen support or we're linking
+	    # statically, we need to preload.  We also need to preload any
+	    # dependent libraries so libltdl's deplib preloader doesn't
+	    # bomb out in the load deplibs phase.
+	    dlprefiles="$dlprefiles $lib $dependency_libs"
+	  else
+	    newdlfiles="$newdlfiles $lib"
+	  fi
+	  continue
+	fi # $pass = dlopen
+
+	# We need an absolute path.
+	case $ladir in
+	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
+	*)
+	  abs_ladir=`cd "$ladir" && pwd`
+	  if test -z "$abs_ladir"; then
+	    func_warning "cannot determine absolute directory name of \`$ladir'"
+	    func_warning "passing it literally to the linker, although it might fail"
+	    abs_ladir="$ladir"
+	  fi
+	  ;;
+	esac
+	func_basename "$lib"
+	laname="$func_basename_result"
+
+	# Find the relevant object directory and library name.
+	if test "X$installed" = Xyes; then
+	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+	    func_warning "library \`$lib' was moved."
+	    dir="$ladir"
+	    absdir="$abs_ladir"
+	    libdir="$abs_ladir"
+	  else
+	    dir="$libdir"
+	    absdir="$libdir"
+	  fi
+	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
+	else
+	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+	    dir="$ladir"
+	    absdir="$abs_ladir"
+	    # Remove this search path later
+	    notinst_path="$notinst_path $abs_ladir"
+	  else
+	    dir="$ladir/$objdir"
+	    absdir="$abs_ladir/$objdir"
+	    # Remove this search path later
+	    notinst_path="$notinst_path $abs_ladir"
+	  fi
+	fi # $installed = yes
+	func_stripname 'lib' '.la' "$laname"
+	name=$func_stripname_result
+
+	# This library was specified with -dlpreopen.
+	if test "$pass" = dlpreopen; then
+	  if test -z "$libdir" && test "$linkmode" = prog; then
+	    func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
+	  fi
+	  # Prefer using a static library (so that no silly _DYNAMIC symbols
+	  # are required to link).
+	  if test -n "$old_library"; then
+	    newdlprefiles="$newdlprefiles $dir/$old_library"
+	    # Keep a list of preopened convenience libraries to check
+	    # that they are being used correctly in the link pass.
+	    test -z "$libdir" && \
+		dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
+	  # Otherwise, use the dlname, so that lt_dlopen finds it.
+	  elif test -n "$dlname"; then
+	    newdlprefiles="$newdlprefiles $dir/$dlname"
+	  else
+	    newdlprefiles="$newdlprefiles $dir/$linklib"
+	  fi
+	fi # $pass = dlpreopen
+
+	if test -z "$libdir"; then
+	  # Link the convenience library
+	  if test "$linkmode" = lib; then
+	    deplibs="$dir/$old_library $deplibs"
+	  elif test "$linkmode,$pass" = "prog,link"; then
+	    compile_deplibs="$dir/$old_library $compile_deplibs"
+	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
+	  else
+	    deplibs="$lib $deplibs" # used for prog,scan pass
+	  fi
+	  continue
+	fi
+
+
+	if test "$linkmode" = prog && test "$pass" != link; then
+	  newlib_search_path="$newlib_search_path $ladir"
+	  deplibs="$lib $deplibs"
+
+	  linkalldeplibs=no
+	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
+	     test "$build_libtool_libs" = no; then
+	    linkalldeplibs=yes
+	  fi
+
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    case $deplib in
+	    -L*) func_stripname '-L' '' "$deplib"
+	         newlib_search_path="$newlib_search_path $func_stripname_result"
+		 ;;
+	    esac
+	    # Need to link against all dependency_libs?
+	    if test "$linkalldeplibs" = yes; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      # Need to hardcode shared library paths
+	      # or/and link against static libraries
+	      newdependency_libs="$deplib $newdependency_libs"
+	    fi
+	    if $opt_duplicate_deps ; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	      esac
+	    fi
+	    tmp_libs="$tmp_libs $deplib"
+	  done # for deplib
+	  continue
+	fi # $linkmode = prog...
+
+	if test "$linkmode,$pass" = "prog,link"; then
+	  if test -n "$library_names" &&
+	     { { test "$prefer_static_libs" = no ||
+	         test "$prefer_static_libs,$installed" = "built,yes"; } ||
+	       test -z "$old_library"; }; then
+	    # We need to hardcode the library path
+	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
+	      # Make sure the rpath contains only unique directories.
+	      case "$temp_rpath:" in
+	      *"$absdir:"*) ;;
+	      *) temp_rpath="$temp_rpath$absdir:" ;;
+	      esac
+	    fi
+
+	    # Hardcode the library path.
+	    # Skip directories that are in the system default run-time
+	    # search path.
+	    case " $sys_lib_dlsearch_path " in
+	    *" $absdir "*) ;;
+	    *)
+	      case "$compile_rpath " in
+	      *" $absdir "*) ;;
+	      *) compile_rpath="$compile_rpath $absdir"
+	      esac
+	      ;;
+	    esac
+	    case " $sys_lib_dlsearch_path " in
+	    *" $libdir "*) ;;
+	    *)
+	      case "$finalize_rpath " in
+	      *" $libdir "*) ;;
+	      *) finalize_rpath="$finalize_rpath $libdir"
+	      esac
+	      ;;
+	    esac
+	  fi # $linkmode,$pass = prog,link...
+
+	  if test "$alldeplibs" = yes &&
+	     { test "$deplibs_check_method" = pass_all ||
+	       { test "$build_libtool_libs" = yes &&
+		 test -n "$library_names"; }; }; then
+	    # We only need to search for static libraries
+	    continue
+	  fi
+	fi
+
+	link_static=no # Whether the deplib will be linked statically
+	use_static_libs=$prefer_static_libs
+	if test "$use_static_libs" = built && test "$installed" = yes; then
+	  use_static_libs=no
+	fi
+	if test -n "$library_names" &&
+	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
+	  case $host in
+	  *cygwin* | *mingw* | *cegcc*)
+	      # No point in relinking DLLs because paths are not encoded
+	      notinst_deplibs="$notinst_deplibs $lib"
+	      need_relink=no
+	    ;;
+	  *)
+	    if test "$installed" = no; then
+	      notinst_deplibs="$notinst_deplibs $lib"
+	      need_relink=yes
+	    fi
+	    ;;
+	  esac
+	  # This is a shared library
+
+	  # Warn about portability, can't link against -module's on some
+	  # systems (darwin).  Don't bleat about dlopened modules though!
+	  dlopenmodule=""
+	  for dlpremoduletest in $dlprefiles; do
+	    if test "X$dlpremoduletest" = "X$lib"; then
+	      dlopenmodule="$dlpremoduletest"
+	      break
+	    fi
+	  done
+	  if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
+	    $ECHO
+	    if test "$linkmode" = prog; then
+	      $ECHO "*** Warning: Linking the executable $output against the loadable module"
+	    else
+	      $ECHO "*** Warning: Linking the shared library $output against the loadable module"
+	    fi
+	    $ECHO "*** $linklib is not portable!"
+	  fi
+	  if test "$linkmode" = lib &&
+	     test "$hardcode_into_libs" = yes; then
+	    # Hardcode the library path.
+	    # Skip directories that are in the system default run-time
+	    # search path.
+	    case " $sys_lib_dlsearch_path " in
+	    *" $absdir "*) ;;
+	    *)
+	      case "$compile_rpath " in
+	      *" $absdir "*) ;;
+	      *) compile_rpath="$compile_rpath $absdir"
+	      esac
+	      ;;
+	    esac
+	    case " $sys_lib_dlsearch_path " in
+	    *" $libdir "*) ;;
+	    *)
+	      case "$finalize_rpath " in
+	      *" $libdir "*) ;;
+	      *) finalize_rpath="$finalize_rpath $libdir"
+	      esac
+	      ;;
+	    esac
+	  fi
+
+	  if test -n "$old_archive_from_expsyms_cmds"; then
+	    # figure out the soname
+	    set dummy $library_names
+	    shift
+	    realname="$1"
+	    shift
+	    libname=`eval "\\$ECHO \"$libname_spec\""`
+	    # use dlname if we got it. it's perfectly good, no?
+	    if test -n "$dlname"; then
+	      soname="$dlname"
+	    elif test -n "$soname_spec"; then
+	      # bleh windows
+	      case $host in
+	      *cygwin* | mingw* | *cegcc*)
+	        func_arith $current - $age
+		major=$func_arith_result
+		versuffix="-$major"
+		;;
+	      esac
+	      eval soname=\"$soname_spec\"
+	    else
+	      soname="$realname"
+	    fi
+
+	    # Make a new name for the extract_expsyms_cmds to use
+	    soroot="$soname"
+	    func_basename "$soroot"
+	    soname="$func_basename_result"
+	    func_stripname 'lib' '.dll' "$soname"
+	    newlib=libimp-$func_stripname_result.a
+
+	    # If the library has no export list, then create one now
+	    if test -f "$output_objdir/$soname-def"; then :
+	    else
+	      func_verbose "extracting exported symbol list from \`$soname'"
+	      func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
+	    fi
+
+	    # Create $newlib
+	    if test -f "$output_objdir/$newlib"; then :; else
+	      func_verbose "generating import library for \`$soname'"
+	      func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
+	    fi
+	    # make sure the library variables are pointing to the new library
+	    dir=$output_objdir
+	    linklib=$newlib
+	  fi # test -n "$old_archive_from_expsyms_cmds"
+
+	  if test "$linkmode" = prog || test "$mode" != relink; then
+	    add_shlibpath=
+	    add_dir=
+	    add=
+	    lib_linked=yes
+	    case $hardcode_action in
+	    immediate | unsupported)
+	      if test "$hardcode_direct" = no; then
+		add="$dir/$linklib"
+		case $host in
+		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
+		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
+		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
+		    *-*-unixware7*) add_dir="-L$dir" ;;
+		  *-*-darwin* )
+		    # if the lib is a (non-dlopened) module then we can not
+		    # link against it, someone is ignoring the earlier warnings
+		    if /usr/bin/file -L $add 2> /dev/null |
+			 $GREP ": [^:]* bundle" >/dev/null ; then
+		      if test "X$dlopenmodule" != "X$lib"; then
+			$ECHO "*** Warning: lib $linklib is a module, not a shared library"
+			if test -z "$old_library" ; then
+			  $ECHO
+			  $ECHO "*** And there doesn't seem to be a static archive available"
+			  $ECHO "*** The link will probably fail, sorry"
+			else
+			  add="$dir/$old_library"
+			fi
+		      elif test -n "$old_library"; then
+			add="$dir/$old_library"
+		      fi
+		    fi
+		esac
+	      elif test "$hardcode_minus_L" = no; then
+		case $host in
+		*-*-sunos*) add_shlibpath="$dir" ;;
+		esac
+		add_dir="-L$dir"
+		add="-l$name"
+	      elif test "$hardcode_shlibpath_var" = no; then
+		add_shlibpath="$dir"
+		add="-l$name"
+	      else
+		lib_linked=no
+	      fi
+	      ;;
+	    relink)
+	      if test "$hardcode_direct" = yes &&
+	         test "$hardcode_direct_absolute" = no; then
+		add="$dir/$linklib"
+	      elif test "$hardcode_minus_L" = yes; then
+		add_dir="-L$dir"
+		# Try looking first in the location we're being installed to.
+		if test -n "$inst_prefix_dir"; then
+		  case $libdir in
+		    [\\/]*)
+		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
+		      ;;
+		  esac
+		fi
+		add="-l$name"
+	      elif test "$hardcode_shlibpath_var" = yes; then
+		add_shlibpath="$dir"
+		add="-l$name"
+	      else
+		lib_linked=no
+	      fi
+	      ;;
+	    *) lib_linked=no ;;
+	    esac
+
+	    if test "$lib_linked" != yes; then
+	      func_fatal_configuration "unsupported hardcode properties"
+	    fi
+
+	    if test -n "$add_shlibpath"; then
+	      case :$compile_shlibpath: in
+	      *":$add_shlibpath:"*) ;;
+	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
+	      esac
+	    fi
+	    if test "$linkmode" = prog; then
+	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
+	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
+	    else
+	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
+	      test -n "$add" && deplibs="$add $deplibs"
+	      if test "$hardcode_direct" != yes &&
+		 test "$hardcode_minus_L" != yes &&
+		 test "$hardcode_shlibpath_var" = yes; then
+		case :$finalize_shlibpath: in
+		*":$libdir:"*) ;;
+		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+		esac
+	      fi
+	    fi
+	  fi
+
+	  if test "$linkmode" = prog || test "$mode" = relink; then
+	    add_shlibpath=
+	    add_dir=
+	    add=
+	    # Finalize command for both is simple: just hardcode it.
+	    if test "$hardcode_direct" = yes &&
+	       test "$hardcode_direct_absolute" = no; then
+	      add="$libdir/$linklib"
+	    elif test "$hardcode_minus_L" = yes; then
+	      add_dir="-L$libdir"
+	      add="-l$name"
+	    elif test "$hardcode_shlibpath_var" = yes; then
+	      case :$finalize_shlibpath: in
+	      *":$libdir:"*) ;;
+	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+	      esac
+	      add="-l$name"
+	    elif test "$hardcode_automatic" = yes; then
+	      if test -n "$inst_prefix_dir" &&
+		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
+		add="$inst_prefix_dir$libdir/$linklib"
+	      else
+		add="$libdir/$linklib"
+	      fi
+	    else
+	      # We cannot seem to hardcode it, guess we'll fake it.
+	      add_dir="-L$libdir"
+	      # Try looking first in the location we're being installed to.
+	      if test -n "$inst_prefix_dir"; then
+		case $libdir in
+		  [\\/]*)
+		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
+		    ;;
+		esac
+	      fi
+	      add="-l$name"
+	    fi
+
+	    if test "$linkmode" = prog; then
+	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
+	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
+	    else
+	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
+	      test -n "$add" && deplibs="$add $deplibs"
+	    fi
+	  fi
+	elif test "$linkmode" = prog; then
+	  # Here we assume that one of hardcode_direct or hardcode_minus_L
+	  # is not unsupported.  This is valid on all known static and
+	  # shared platforms.
+	  if test "$hardcode_direct" != unsupported; then
+	    test -n "$old_library" && linklib="$old_library"
+	    compile_deplibs="$dir/$linklib $compile_deplibs"
+	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
+	  else
+	    compile_deplibs="-l$name -L$dir $compile_deplibs"
+	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
+	  fi
+	elif test "$build_libtool_libs" = yes; then
+	  # Not a shared library
+	  if test "$deplibs_check_method" != pass_all; then
+	    # We're trying link a shared library against a static one
+	    # but the system doesn't support it.
+
+	    # Just print a warning and add the library to dependency_libs so
+	    # that the program can be linked against the static library.
+	    $ECHO
+	    $ECHO "*** Warning: This system can not link to static lib archive $lib."
+	    $ECHO "*** I have the capability to make that library automatically link in when"
+	    $ECHO "*** you link to this library.  But I can only do this if you have a"
+	    $ECHO "*** shared version of the library, which you do not appear to have."
+	    if test "$module" = yes; then
+	      $ECHO "*** But as you try to build a module library, libtool will still create "
+	      $ECHO "*** a static module, that should work as long as the dlopening application"
+	      $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime."
+	      if test -z "$global_symbol_pipe"; then
+		$ECHO
+		$ECHO "*** However, this would only work if libtool was able to extract symbol"
+		$ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
+		$ECHO "*** not find such a program.  So, this module is probably useless."
+		$ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
+	      fi
+	      if test "$build_old_libs" = no; then
+		build_libtool_libs=module
+		build_old_libs=yes
+	      else
+		build_libtool_libs=no
+	      fi
+	    fi
+	  else
+	    deplibs="$dir/$old_library $deplibs"
+	    link_static=yes
+	  fi
+	fi # link shared/static library?
+
+	if test "$linkmode" = lib; then
+	  if test -n "$dependency_libs" &&
+	     { test "$hardcode_into_libs" != yes ||
+	       test "$build_old_libs" = yes ||
+	       test "$link_static" = yes; }; then
+	    # Extract -R from dependency_libs
+	    temp_deplibs=
+	    for libdir in $dependency_libs; do
+	      case $libdir in
+	      -R*) func_stripname '-R' '' "$libdir"
+	           temp_xrpath=$func_stripname_result
+		   case " $xrpath " in
+		   *" $temp_xrpath "*) ;;
+		   *) xrpath="$xrpath $temp_xrpath";;
+		   esac;;
+	      *) temp_deplibs="$temp_deplibs $libdir";;
+	      esac
+	    done
+	    dependency_libs="$temp_deplibs"
+	  fi
+
+	  newlib_search_path="$newlib_search_path $absdir"
+	  # Link against this library
+	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
+	  # ... and its dependency_libs
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    newdependency_libs="$deplib $newdependency_libs"
+	    if $opt_duplicate_deps ; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	      esac
+	    fi
+	    tmp_libs="$tmp_libs $deplib"
+	  done
+
+	  if test "$link_all_deplibs" != no; then
+	    # Add the search paths of all dependency libraries
+	    for deplib in $dependency_libs; do
+	      path=
+	      case $deplib in
+	      -L*) path="$deplib" ;;
+	      *.la)
+	        func_dirname "$deplib" "" "."
+		dir="$func_dirname_result"
+		# We need an absolute path.
+		case $dir in
+		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
+		*)
+		  absdir=`cd "$dir" && pwd`
+		  if test -z "$absdir"; then
+		    func_warning "cannot determine absolute directory name of \`$dir'"
+		    absdir="$dir"
+		  fi
+		  ;;
+		esac
+		if $GREP "^installed=no" $deplib > /dev/null; then
+		case $host in
+		*-*-darwin*)
+		  depdepl=
+		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+		  if test -n "$deplibrary_names" ; then
+		    for tmp in $deplibrary_names ; do
+		      depdepl=$tmp
+		    done
+		    if test -f "$absdir/$objdir/$depdepl" ; then
+		      depdepl="$absdir/$objdir/$depdepl"
+		      darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
+                      if test -z "$darwin_install_name"; then
+                          darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
+                      fi
+		      compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
+		      linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
+		      path=
+		    fi
+		  fi
+		  ;;
+		*)
+		  path="-L$absdir/$objdir"
+		  ;;
+		esac
+		else
+		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+		  test -z "$libdir" && \
+		    func_fatal_error "\`$deplib' is not a valid libtool archive"
+		  test "$absdir" != "$libdir" && \
+		    func_warning "\`$deplib' seems to be moved"
+
+		  path="-L$absdir"
+		fi
+		;;
+	      esac
+	      case " $deplibs " in
+	      *" $path "*) ;;
+	      *) deplibs="$path $deplibs" ;;
+	      esac
+	    done
+	  fi # link_all_deplibs != no
+	fi # linkmode = lib
+      done # for deplib in $libs
+      if test "$pass" = link; then
+	if test "$linkmode" = "prog"; then
+	  compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
+	  finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
+	else
+	  compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	fi
+      fi
+      dependency_libs="$newdependency_libs"
+      if test "$pass" = dlpreopen; then
+	# Link the dlpreopened libraries before other libraries
+	for deplib in $save_deplibs; do
+	  deplibs="$deplib $deplibs"
+	done
+      fi
+      if test "$pass" != dlopen; then
+	if test "$pass" != conv; then
+	  # Make sure lib_search_path contains only unique directories.
+	  lib_search_path=
+	  for dir in $newlib_search_path; do
+	    case "$lib_search_path " in
+	    *" $dir "*) ;;
+	    *) lib_search_path="$lib_search_path $dir" ;;
+	    esac
+	  done
+	  newlib_search_path=
+	fi
+
+	if test "$linkmode,$pass" != "prog,link"; then
+	  vars="deplibs"
+	else
+	  vars="compile_deplibs finalize_deplibs"
+	fi
+	for var in $vars dependency_libs; do
+	  # Add libraries to $var in reverse order
+	  eval tmp_libs=\"\$$var\"
+	  new_libs=
+	  for deplib in $tmp_libs; do
+	    # FIXME: Pedantically, this is the right thing to do, so
+	    #        that some nasty dependency loop isn't accidentally
+	    #        broken:
+	    #new_libs="$deplib $new_libs"
+	    # Pragmatically, this seems to cause very few problems in
+	    # practice:
+	    case $deplib in
+	    -L*) new_libs="$deplib $new_libs" ;;
+	    -R*) ;;
+	    *)
+	      # And here is the reason: when a library appears more
+	      # than once as an explicit dependence of a library, or
+	      # is implicitly linked in more than once by the
+	      # compiler, it is considered special, and multiple
+	      # occurrences thereof are not removed.  Compare this
+	      # with having the same library being listed as a
+	      # dependency of multiple other libraries: in this case,
+	      # we know (pedantically, we assume) the library does not
+	      # need to be listed more than once, so we keep only the
+	      # last copy.  This is not always right, but it is rare
+	      # enough that we require users that really mean to play
+	      # such unportable linking tricks to link the library
+	      # using -Wl,-lname, so that libtool does not consider it
+	      # for duplicate removal.
+	      case " $specialdeplibs " in
+	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
+	      *)
+		case " $new_libs " in
+		*" $deplib "*) ;;
+		*) new_libs="$deplib $new_libs" ;;
+		esac
+		;;
+	      esac
+	      ;;
+	    esac
+	  done
+	  tmp_libs=
+	  for deplib in $new_libs; do
+	    case $deplib in
+	    -L*)
+	      case " $tmp_libs " in
+	      *" $deplib "*) ;;
+	      *) tmp_libs="$tmp_libs $deplib" ;;
+	      esac
+	      ;;
+	    *) tmp_libs="$tmp_libs $deplib" ;;
+	    esac
+	  done
+	  eval $var=\"$tmp_libs\"
+	done # for var
+      fi
+      # Last step: remove runtime libs from dependency_libs
+      # (they stay in deplibs)
+      tmp_libs=
+      for i in $dependency_libs ; do
+	case " $predeps $postdeps $compiler_lib_search_path " in
+	*" $i "*)
+	  i=""
+	  ;;
+	esac
+	if test -n "$i" ; then
+	  tmp_libs="$tmp_libs $i"
+	fi
+      done
+      dependency_libs=$tmp_libs
+    done # for pass
+    if test "$linkmode" = prog; then
+      dlfiles="$newdlfiles"
+    fi
+    if test "$linkmode" = prog || test "$linkmode" = lib; then
+      dlprefiles="$newdlprefiles"
+    fi
+
+    case $linkmode in
+    oldlib)
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+	func_warning "\`-dlopen' is ignored for archives"
+      fi
+
+      case " $deplibs" in
+      *\ -l* | *\ -L*)
+	func_warning "\`-l' and \`-L' are ignored for archives" ;;
+      esac
+
+      test -n "$rpath" && \
+	func_warning "\`-rpath' is ignored for archives"
+
+      test -n "$xrpath" && \
+	func_warning "\`-R' is ignored for archives"
+
+      test -n "$vinfo" && \
+	func_warning "\`-version-info/-version-number' is ignored for archives"
+
+      test -n "$release" && \
+	func_warning "\`-release' is ignored for archives"
+
+      test -n "$export_symbols$export_symbols_regex" && \
+	func_warning "\`-export-symbols' is ignored for archives"
+
+      # Now set the variables for building old libraries.
+      build_libtool_libs=no
+      oldlibs="$output"
+      objs="$objs$old_deplibs"
+      ;;
+
+    lib)
+      # Make sure we only generate libraries of the form `libNAME.la'.
+      case $outputname in
+      lib*)
+	func_stripname 'lib' '.la' "$outputname"
+	name=$func_stripname_result
+	eval shared_ext=\"$shrext_cmds\"
+	eval libname=\"$libname_spec\"
+	;;
+      *)
+	test "$module" = no && \
+	  func_fatal_help "libtool library \`$output' must begin with \`lib'"
+
+	if test "$need_lib_prefix" != no; then
+	  # Add the "lib" prefix for modules if required
+	  func_stripname '' '.la' "$outputname"
+	  name=$func_stripname_result
+	  eval shared_ext=\"$shrext_cmds\"
+	  eval libname=\"$libname_spec\"
+	else
+	  func_stripname '' '.la' "$outputname"
+	  libname=$func_stripname_result
+	fi
+	;;
+      esac
+
+      if test -n "$objs"; then
+	if test "$deplibs_check_method" != pass_all; then
+	  func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
+	else
+	  $ECHO
+	  $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
+	  $ECHO "*** objects $objs is not portable!"
+	  libobjs="$libobjs $objs"
+	fi
+      fi
+
+      test "$dlself" != no && \
+	func_warning "\`-dlopen self' is ignored for libtool libraries"
+
+      set dummy $rpath
+      shift
+      test "$#" -gt 1 && \
+	func_warning "ignoring multiple \`-rpath's for a libtool library"
+
+      install_libdir="$1"
+
+      oldlibs=
+      if test -z "$rpath"; then
+	if test "$build_libtool_libs" = yes; then
+	  # Building a libtool convenience library.
+	  # Some compilers have problems with a `.al' extension so
+	  # convenience libraries should have the same extension an
+	  # archive normally would.
+	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
+	  build_libtool_libs=convenience
+	  build_old_libs=yes
+	fi
+
+	test -n "$vinfo" && \
+	  func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
+
+	test -n "$release" && \
+	  func_warning "\`-release' is ignored for convenience libraries"
+      else
+
+	# Parse the version information argument.
+	save_ifs="$IFS"; IFS=':'
+	set dummy $vinfo 0 0 0
+	shift
+	IFS="$save_ifs"
+
+	test -n "$7" && \
+	  func_fatal_help "too many parameters to \`-version-info'"
+
+	# convert absolute version numbers to libtool ages
+	# this retains compatibility with .la files and attempts
+	# to make the code below a bit more comprehensible
+
+	case $vinfo_number in
+	yes)
+	  number_major="$1"
+	  number_minor="$2"
+	  number_revision="$3"
+	  #
+	  # There are really only two kinds -- those that
+	  # use the current revision as the major version
+	  # and those that subtract age and use age as
+	  # a minor version.  But, then there is irix
+	  # which has an extra 1 added just for fun
+	  #
+	  case $version_type in
+	  darwin|linux|osf|windows|none)
+	    func_arith $number_major + $number_minor
+	    current=$func_arith_result
+	    age="$number_minor"
+	    revision="$number_revision"
+	    ;;
+	  freebsd-aout|freebsd-elf|sunos)
+	    current="$number_major"
+	    revision="$number_minor"
+	    age="0"
+	    ;;
+	  irix|nonstopux)
+	    func_arith $number_major + $number_minor
+	    current=$func_arith_result
+	    age="$number_minor"
+	    revision="$number_minor"
+	    lt_irix_increment=no
+	    ;;
+	  *)
+	    func_fatal_configuration "$modename: unknown library version type \`$version_type'"
+	    ;;
+	  esac
+	  ;;
+	no)
+	  current="$1"
+	  revision="$2"
+	  age="$3"
+	  ;;
+	esac
+
+	# Check that each of the things are valid numbers.
+	case $current in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  func_error "CURRENT \`$current' must be a nonnegative integer"
+	  func_fatal_error "\`$vinfo' is not valid version information"
+	  ;;
+	esac
+
+	case $revision in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  func_error "REVISION \`$revision' must be a nonnegative integer"
+	  func_fatal_error "\`$vinfo' is not valid version information"
+	  ;;
+	esac
+
+	case $age in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  func_error "AGE \`$age' must be a nonnegative integer"
+	  func_fatal_error "\`$vinfo' is not valid version information"
+	  ;;
+	esac
+
+	if test "$age" -gt "$current"; then
+	  func_error "AGE \`$age' is greater than the current interface number \`$current'"
+	  func_fatal_error "\`$vinfo' is not valid version information"
+	fi
+
+	# Calculate the version variables.
+	major=
+	versuffix=
+	verstring=
+	case $version_type in
+	none) ;;
+
+	darwin)
+	  # Like Linux, but with the current version available in
+	  # verstring for coding it into the library header
+	  func_arith $current - $age
+	  major=.$func_arith_result
+	  versuffix="$major.$age.$revision"
+	  # Darwin ld doesn't like 0 for these options...
+	  func_arith $current + 1
+	  minor_current=$func_arith_result
+	  xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
+	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+	  ;;
+
+	freebsd-aout)
+	  major=".$current"
+	  versuffix=".$current.$revision";
+	  ;;
+
+	freebsd-elf)
+	  major=".$current"
+	  versuffix=".$current"
+	  ;;
+
+	irix | nonstopux)
+	  if test "X$lt_irix_increment" = "Xno"; then
+	    func_arith $current - $age
+	  else
+	    func_arith $current - $age + 1
+	  fi
+	  major=$func_arith_result
+
+	  case $version_type in
+	    nonstopux) verstring_prefix=nonstopux ;;
+	    *)         verstring_prefix=sgi ;;
+	  esac
+	  verstring="$verstring_prefix$major.$revision"
+
+	  # Add in all the interfaces that we are compatible with.
+	  loop=$revision
+	  while test "$loop" -ne 0; do
+	    func_arith $revision - $loop
+	    iface=$func_arith_result
+	    func_arith $loop - 1
+	    loop=$func_arith_result
+	    verstring="$verstring_prefix$major.$iface:$verstring"
+	  done
+
+	  # Before this point, $major must not contain `.'.
+	  major=.$major
+	  versuffix="$major.$revision"
+	  ;;
+
+	linux)
+	  func_arith $current - $age
+	  major=.$func_arith_result
+	  versuffix="$major.$age.$revision"
+	  ;;
+
+	osf)
+	  func_arith $current - $age
+	  major=.$func_arith_result
+	  versuffix=".$current.$age.$revision"
+	  verstring="$current.$age.$revision"
+
+	  # Add in all the interfaces that we are compatible with.
+	  loop=$age
+	  while test "$loop" -ne 0; do
+	    func_arith $current - $loop
+	    iface=$func_arith_result
+	    func_arith $loop - 1
+	    loop=$func_arith_result
+	    verstring="$verstring:${iface}.0"
+	  done
+
+	  # Make executables depend on our current version.
+	  verstring="$verstring:${current}.0"
+	  ;;
+
+	qnx)
+	  major=".$current"
+	  versuffix=".$current"
+	  ;;
+
+	sunos)
+	  major=".$current"
+	  versuffix=".$current.$revision"
+	  ;;
+
+	windows)
+	  # Use '-' rather than '.', since we only want one
+	  # extension on DOS 8.3 filesystems.
+	  func_arith $current - $age
+	  major=$func_arith_result
+	  versuffix="-$major"
+	  ;;
+
+	*)
+	  func_fatal_configuration "unknown library version type \`$version_type'"
+	  ;;
+	esac
+
+	# Clear the version info if we defaulted, and they specified a release.
+	if test -z "$vinfo" && test -n "$release"; then
+	  major=
+	  case $version_type in
+	  darwin)
+	    # we can't check for "0.0" in archive_cmds due to quoting
+	    # problems, so we reset it completely
+	    verstring=
+	    ;;
+	  *)
+	    verstring="0.0"
+	    ;;
+	  esac
+	  if test "$need_version" = no; then
+	    versuffix=
+	  else
+	    versuffix=".0.0"
+	  fi
+	fi
+
+	# Remove version info from name if versioning should be avoided
+	if test "$avoid_version" = yes && test "$need_version" = no; then
+	  major=
+	  versuffix=
+	  verstring=""
+	fi
+
+	# Check to see if the archive will have undefined symbols.
+	if test "$allow_undefined" = yes; then
+	  if test "$allow_undefined_flag" = unsupported; then
+	    func_warning "undefined symbols not allowed in $host shared libraries"
+	    build_libtool_libs=no
+	    build_old_libs=yes
+	  fi
+	else
+	  # Don't allow undefined symbols.
+	  allow_undefined_flag="$no_undefined_flag"
+	fi
+
+      fi
+
+      func_generate_dlsyms "$libname" "$libname" "yes"
+      libobjs="$libobjs $symfileobj"
+      test "X$libobjs" = "X " && libobjs=
+
+      if test "$mode" != relink; then
+	# Remove our outputs, but don't remove object files since they
+	# may have been created when compiling PIC objects.
+	removelist=
+	tempremovelist=`$ECHO "$output_objdir/*"`
+	for p in $tempremovelist; do
+	  case $p in
+	    *.$objext | *.gcno)
+	       ;;
+	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
+	       if test "X$precious_files_regex" != "X"; then
+		 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
+		 then
+		   continue
+		 fi
+	       fi
+	       removelist="$removelist $p"
+	       ;;
+	    *) ;;
+	  esac
+	done
+	test -n "$removelist" && \
+	  func_show_eval "${RM}r \$removelist"
+      fi
+
+      # Now set the variables for building old libraries.
+      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
+	oldlibs="$oldlibs $output_objdir/$libname.$libext"
+
+	# Transform .lo files to .o files.
+	oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
+      fi
+
+      # Eliminate all temporary directories.
+      #for path in $notinst_path; do
+      #	lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
+      #	deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
+      #	dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
+      #done
+
+      if test -n "$xrpath"; then
+	# If the user specified any rpath flags, then add them.
+	temp_xrpath=
+	for libdir in $xrpath; do
+	  temp_xrpath="$temp_xrpath -R$libdir"
+	  case "$finalize_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_rpath="$finalize_rpath $libdir" ;;
+	  esac
+	done
+	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
+	  dependency_libs="$temp_xrpath $dependency_libs"
+	fi
+      fi
+
+      # Make sure dlfiles contains only unique files that won't be dlpreopened
+      old_dlfiles="$dlfiles"
+      dlfiles=
+      for lib in $old_dlfiles; do
+	case " $dlprefiles $dlfiles " in
+	*" $lib "*) ;;
+	*) dlfiles="$dlfiles $lib" ;;
+	esac
+      done
+
+      # Make sure dlprefiles contains only unique files
+      old_dlprefiles="$dlprefiles"
+      dlprefiles=
+      for lib in $old_dlprefiles; do
+	case "$dlprefiles " in
+	*" $lib "*) ;;
+	*) dlprefiles="$dlprefiles $lib" ;;
+	esac
+      done
+
+      if test "$build_libtool_libs" = yes; then
+	if test -n "$rpath"; then
+	  case $host in
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*)
+	    # these systems don't actually have a c library (as such)!
+	    ;;
+	  *-*-rhapsody* | *-*-darwin1.[012])
+	    # Rhapsody C library is in the System framework
+	    deplibs="$deplibs System.ltframework"
+	    ;;
+	  *-*-netbsd*)
+	    # Don't link with libc until the a.out ld.so is fixed.
+	    ;;
+	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+	    # Do not include libc due to us having libc/libc_r.
+	    ;;
+	  *-*-sco3.2v5* | *-*-sco5v6*)
+	    # Causes problems with __ctype
+	    ;;
+	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+	    # Compiler inserts libc in the correct place for threads to work
+	    ;;
+	  *)
+	    # Add libc to deplibs on all other systems if necessary.
+	    if test "$build_libtool_need_lc" = "yes"; then
+	      deplibs="$deplibs -lc"
+	    fi
+	    ;;
+	  esac
+	fi
+
+	# Transform deplibs into only deplibs that can be linked in shared.
+	name_save=$name
+	libname_save=$libname
+	release_save=$release
+	versuffix_save=$versuffix
+	major_save=$major
+	# I'm not sure if I'm treating the release correctly.  I think
+	# release should show up in the -l (ie -lgmp5) so we don't want to
+	# add it in twice.  Is that correct?
+	release=""
+	versuffix=""
+	major=""
+	newdeplibs=
+	droppeddeps=no
+	case $deplibs_check_method in
+	pass_all)
+	  # Don't check for shared/static.  Everything works.
+	  # This might be a little naive.  We might want to check
+	  # whether the library exists or not.  But this is on
+	  # osf3 & osf4 and I'm not really sure... Just
+	  # implementing what was already the behavior.
+	  newdeplibs=$deplibs
+	  ;;
+	test_compile)
+	  # This code stresses the "libraries are programs" paradigm to its
+	  # limits. Maybe even breaks it.  We compile a program, linking it
+	  # against the deplibs as a proxy for the library.  Then we can check
+	  # whether they linked in statically or dynamically with ldd.
+	  $opt_dry_run || $RM conftest.c
+	  cat > conftest.c <<EOF
+	  int main() { return 0; }
+EOF
+	  $opt_dry_run || $RM conftest
+	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
+	    ldd_output=`ldd conftest`
+	    for i in $deplibs; do
+	      case $i in
+	      -l*)
+		func_stripname -l '' "$i"
+		name=$func_stripname_result
+		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		  case " $predeps $postdeps " in
+		  *" $i "*)
+		    newdeplibs="$newdeplibs $i"
+		    i=""
+		    ;;
+		  esac
+		fi
+		if test -n "$i" ; then
+		  libname=`eval "\\$ECHO \"$libname_spec\""`
+		  deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+		  set dummy $deplib_matches; shift
+		  deplib_match=$1
+		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+		    newdeplibs="$newdeplibs $i"
+		  else
+		    droppeddeps=yes
+		    $ECHO
+		    $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+		    $ECHO "*** I have the capability to make that library automatically link in when"
+		    $ECHO "*** you link to this library.  But I can only do this if you have a"
+		    $ECHO "*** shared version of the library, which I believe you do not have"
+		    $ECHO "*** because a test_compile did reveal that the linker did not use it for"
+		    $ECHO "*** its dynamic dependency list that programs get resolved with at runtime."
+		  fi
+		fi
+		;;
+	      *)
+		newdeplibs="$newdeplibs $i"
+		;;
+	      esac
+	    done
+	  else
+	    # Error occurred in the first compile.  Let's try to salvage
+	    # the situation: Compile a separate program for each library.
+	    for i in $deplibs; do
+	      case $i in
+	      -l*)
+		func_stripname -l '' "$i"
+		name=$func_stripname_result
+		$opt_dry_run || $RM conftest
+		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
+		  ldd_output=`ldd conftest`
+		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		    case " $predeps $postdeps " in
+		    *" $i "*)
+		      newdeplibs="$newdeplibs $i"
+		      i=""
+		      ;;
+		    esac
+		  fi
+		  if test -n "$i" ; then
+		    libname=`eval "\\$ECHO \"$libname_spec\""`
+		    deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+		    set dummy $deplib_matches; shift
+		    deplib_match=$1
+		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+		      newdeplibs="$newdeplibs $i"
+		    else
+		      droppeddeps=yes
+		      $ECHO
+		      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+		      $ECHO "*** I have the capability to make that library automatically link in when"
+		      $ECHO "*** you link to this library.  But I can only do this if you have a"
+		      $ECHO "*** shared version of the library, which you do not appear to have"
+		      $ECHO "*** because a test_compile did reveal that the linker did not use this one"
+		      $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime."
+		    fi
+		  fi
+		else
+		  droppeddeps=yes
+		  $ECHO
+		  $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
+		  $ECHO "*** make it link in!  You will probably need to install it or some"
+		  $ECHO "*** library that it depends on before this library will be fully"
+		  $ECHO "*** functional.  Installing it before continuing would be even better."
+		fi
+		;;
+	      *)
+		newdeplibs="$newdeplibs $i"
+		;;
+	      esac
+	    done
+	  fi
+	  ;;
+	file_magic*)
+	  set dummy $deplibs_check_method; shift
+	  file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+	  for a_deplib in $deplibs; do
+	    case $a_deplib in
+	    -l*)
+	      func_stripname -l '' "$a_deplib"
+	      name=$func_stripname_result
+	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		case " $predeps $postdeps " in
+		*" $a_deplib "*)
+		  newdeplibs="$newdeplibs $a_deplib"
+		  a_deplib=""
+		  ;;
+		esac
+	      fi
+	      if test -n "$a_deplib" ; then
+		libname=`eval "\\$ECHO \"$libname_spec\""`
+		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+		  for potent_lib in $potential_libs; do
+		      # Follow soft links.
+		      if ls -lLd "$potent_lib" 2>/dev/null |
+			 $GREP " -> " >/dev/null; then
+			continue
+		      fi
+		      # The statement above tries to avoid entering an
+		      # endless loop below, in case of cyclic links.
+		      # We might still enter an endless loop, since a link
+		      # loop can be closed while we follow links,
+		      # but so what?
+		      potlib="$potent_lib"
+		      while test -h "$potlib" 2>/dev/null; do
+			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
+			case $potliblink in
+			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
+			*) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
+			esac
+		      done
+		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
+			 $SED -e 10q |
+			 $EGREP "$file_magic_regex" > /dev/null; then
+			newdeplibs="$newdeplibs $a_deplib"
+			a_deplib=""
+			break 2
+		      fi
+		  done
+		done
+	      fi
+	      if test -n "$a_deplib" ; then
+		droppeddeps=yes
+		$ECHO
+		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
+		$ECHO "*** I have the capability to make that library automatically link in when"
+		$ECHO "*** you link to this library.  But I can only do this if you have a"
+		$ECHO "*** shared version of the library, which you do not appear to have"
+		$ECHO "*** because I did check the linker path looking for a file starting"
+		if test -z "$potlib" ; then
+		  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
+		else
+		  $ECHO "*** with $libname and none of the candidates passed a file format test"
+		  $ECHO "*** using a file magic. Last file checked: $potlib"
+		fi
+	      fi
+	      ;;
+	    *)
+	      # Add a -L argument.
+	      newdeplibs="$newdeplibs $a_deplib"
+	      ;;
+	    esac
+	  done # Gone through all deplibs.
+	  ;;
+	match_pattern*)
+	  set dummy $deplibs_check_method; shift
+	  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+	  for a_deplib in $deplibs; do
+	    case $a_deplib in
+	    -l*)
+	      func_stripname -l '' "$a_deplib"
+	      name=$func_stripname_result
+	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		case " $predeps $postdeps " in
+		*" $a_deplib "*)
+		  newdeplibs="$newdeplibs $a_deplib"
+		  a_deplib=""
+		  ;;
+		esac
+	      fi
+	      if test -n "$a_deplib" ; then
+		libname=`eval "\\$ECHO \"$libname_spec\""`
+		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+		  for potent_lib in $potential_libs; do
+		    potlib="$potent_lib" # see symlink-check above in file_magic test
+		    if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \
+		       $EGREP "$match_pattern_regex" > /dev/null; then
+		      newdeplibs="$newdeplibs $a_deplib"
+		      a_deplib=""
+		      break 2
+		    fi
+		  done
+		done
+	      fi
+	      if test -n "$a_deplib" ; then
+		droppeddeps=yes
+		$ECHO
+		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
+		$ECHO "*** I have the capability to make that library automatically link in when"
+		$ECHO "*** you link to this library.  But I can only do this if you have a"
+		$ECHO "*** shared version of the library, which you do not appear to have"
+		$ECHO "*** because I did check the linker path looking for a file starting"
+		if test -z "$potlib" ; then
+		  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
+		else
+		  $ECHO "*** with $libname and none of the candidates passed a file format test"
+		  $ECHO "*** using a regex pattern. Last file checked: $potlib"
+		fi
+	      fi
+	      ;;
+	    *)
+	      # Add a -L argument.
+	      newdeplibs="$newdeplibs $a_deplib"
+	      ;;
+	    esac
+	  done # Gone through all deplibs.
+	  ;;
+	none | unknown | *)
+	  newdeplibs=""
+	  tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \
+	      -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
+	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+	    for i in $predeps $postdeps ; do
+	      # can't use Xsed below, because $i might contain '/'
+	      tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
+	    done
+	  fi
+	  if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[	 ]//g' |
+	     $GREP . >/dev/null; then
+	    $ECHO
+	    if test "X$deplibs_check_method" = "Xnone"; then
+	      $ECHO "*** Warning: inter-library dependencies are not supported in this platform."
+	    else
+	      $ECHO "*** Warning: inter-library dependencies are not known to be supported."
+	    fi
+	    $ECHO "*** All declared inter-library dependencies are being dropped."
+	    droppeddeps=yes
+	  fi
+	  ;;
+	esac
+	versuffix=$versuffix_save
+	major=$major_save
+	release=$release_save
+	libname=$libname_save
+	name=$name_save
+
+	case $host in
+	*-*-rhapsody* | *-*-darwin1.[012])
+	  # On Rhapsody replace the C library with the System framework
+	  newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+	  ;;
+	esac
+
+	if test "$droppeddeps" = yes; then
+	  if test "$module" = yes; then
+	    $ECHO
+	    $ECHO "*** Warning: libtool could not satisfy all declared inter-library"
+	    $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
+	    $ECHO "*** a static module, that should work as long as the dlopening"
+	    $ECHO "*** application is linked with the -dlopen flag."
+	    if test -z "$global_symbol_pipe"; then
+	      $ECHO
+	      $ECHO "*** However, this would only work if libtool was able to extract symbol"
+	      $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
+	      $ECHO "*** not find such a program.  So, this module is probably useless."
+	      $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
+	    fi
+	    if test "$build_old_libs" = no; then
+	      oldlibs="$output_objdir/$libname.$libext"
+	      build_libtool_libs=module
+	      build_old_libs=yes
+	    else
+	      build_libtool_libs=no
+	    fi
+	  else
+	    $ECHO "*** The inter-library dependencies that have been dropped here will be"
+	    $ECHO "*** automatically added whenever a program is linked with this library"
+	    $ECHO "*** or is declared to -dlopen it."
+
+	    if test "$allow_undefined" = no; then
+	      $ECHO
+	      $ECHO "*** Since this library must not contain undefined symbols,"
+	      $ECHO "*** because either the platform does not support them or"
+	      $ECHO "*** it was explicitly requested with -no-undefined,"
+	      $ECHO "*** libtool will only create a static version of it."
+	      if test "$build_old_libs" = no; then
+		oldlibs="$output_objdir/$libname.$libext"
+		build_libtool_libs=module
+		build_old_libs=yes
+	      else
+		build_libtool_libs=no
+	      fi
+	    fi
+	  fi
+	fi
+	# Done checking deplibs!
+	deplibs=$newdeplibs
+      fi
+      # Time to change all our "foo.ltframework" stuff back to "-framework foo"
+      case $host in
+	*-*-darwin*)
+	  newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	  new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	  deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	  ;;
+      esac
+
+      # move library search paths that coincide with paths to not yet
+      # installed libraries to the beginning of the library search list
+      new_libs=
+      for path in $notinst_path; do
+	case " $new_libs " in
+	*" -L$path/$objdir "*) ;;
+	*)
+	  case " $deplibs " in
+	  *" -L$path/$objdir "*)
+	    new_libs="$new_libs -L$path/$objdir" ;;
+	  esac
+	  ;;
+	esac
+      done
+      for deplib in $deplibs; do
+	case $deplib in
+	-L*)
+	  case " $new_libs " in
+	  *" $deplib "*) ;;
+	  *) new_libs="$new_libs $deplib" ;;
+	  esac
+	  ;;
+	*) new_libs="$new_libs $deplib" ;;
+	esac
+      done
+      deplibs="$new_libs"
+
+      # All the library-specific variables (install_libdir is set above).
+      library_names=
+      old_library=
+      dlname=
+
+      # Test again, we may have decided not to build it any more
+      if test "$build_libtool_libs" = yes; then
+	if test "$hardcode_into_libs" = yes; then
+	  # Hardcode the library paths
+	  hardcode_libdirs=
+	  dep_rpath=
+	  rpath="$finalize_rpath"
+	  test "$mode" != relink && rpath="$compile_rpath$rpath"
+	  for libdir in $rpath; do
+	    if test -n "$hardcode_libdir_flag_spec"; then
+	      if test -n "$hardcode_libdir_separator"; then
+		if test -z "$hardcode_libdirs"; then
+		  hardcode_libdirs="$libdir"
+		else
+		  # Just accumulate the unique libdirs.
+		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		    ;;
+		  *)
+		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		    ;;
+		  esac
+		fi
+	      else
+		eval flag=\"$hardcode_libdir_flag_spec\"
+		dep_rpath="$dep_rpath $flag"
+	      fi
+	    elif test -n "$runpath_var"; then
+	      case "$perm_rpath " in
+	      *" $libdir "*) ;;
+	      *) perm_rpath="$perm_rpath $libdir" ;;
+	      esac
+	    fi
+	  done
+	  # Substitute the hardcoded libdirs into the rpath.
+	  if test -n "$hardcode_libdir_separator" &&
+	     test -n "$hardcode_libdirs"; then
+	    libdir="$hardcode_libdirs"
+	    if test -n "$hardcode_libdir_flag_spec_ld"; then
+	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
+	    else
+	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
+	    fi
+	  fi
+	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
+	    # We should set the runpath_var.
+	    rpath=
+	    for dir in $perm_rpath; do
+	      rpath="$rpath$dir:"
+	    done
+	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
+	  fi
+	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
+	fi
+
+	shlibpath="$finalize_shlibpath"
+	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+	if test -n "$shlibpath"; then
+	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
+	fi
+
+	# Get the real and link names of the library.
+	eval shared_ext=\"$shrext_cmds\"
+	eval library_names=\"$library_names_spec\"
+	set dummy $library_names
+	shift
+	realname="$1"
+	shift
+
+	if test -n "$soname_spec"; then
+	  eval soname=\"$soname_spec\"
+	else
+	  soname="$realname"
+	fi
+	if test -z "$dlname"; then
+	  dlname=$soname
+	fi
+
+	lib="$output_objdir/$realname"
+	linknames=
+	for link
+	do
+	  linknames="$linknames $link"
+	done
+
+	# Use standard objects if they are pic
+	test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	test "X$libobjs" = "X " && libobjs=
+
+	delfiles=
+	if test -n "$export_symbols" && test -n "$include_expsyms"; then
+	  $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
+	  export_symbols="$output_objdir/$libname.uexp"
+	  delfiles="$delfiles $export_symbols"
+	fi
+
+	orig_export_symbols=
+	case $host_os in
+	cygwin* | mingw* | cegcc*)
+	  if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
+	    # exporting using user supplied symfile
+	    if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
+	      # and it's NOT already a .def file. Must figure out
+	      # which of the given symbols are data symbols and tag
+	      # them as such. So, trigger use of export_symbols_cmds.
+	      # export_symbols gets reassigned inside the "prepare
+	      # the list of exported symbols" if statement, so the
+	      # include_expsyms logic still works.
+	      orig_export_symbols="$export_symbols"
+	      export_symbols=
+	      always_export_symbols=yes
+	    fi
+	  fi
+	  ;;
+	esac
+
+	# Prepare the list of exported symbols
+	if test -z "$export_symbols"; then
+	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
+	    func_verbose "generating symbol list for \`$libname.la'"
+	    export_symbols="$output_objdir/$libname.exp"
+	    $opt_dry_run || $RM $export_symbols
+	    cmds=$export_symbols_cmds
+	    save_ifs="$IFS"; IFS='~'
+	    for cmd in $cmds; do
+	      IFS="$save_ifs"
+	      eval cmd=\"$cmd\"
+	      func_len " $cmd"
+	      len=$func_len_result
+	      if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+		func_show_eval "$cmd" 'exit $?'
+		skipped_export=false
+	      else
+		# The command line is too long to execute in one step.
+		func_verbose "using reloadable object file for export list..."
+		skipped_export=:
+		# Break out early, otherwise skipped_export may be
+		# set to false by a later but shorter cmd.
+		break
+	      fi
+	    done
+	    IFS="$save_ifs"
+	    if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
+	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
+	    fi
+	  fi
+	fi
+
+	if test -n "$export_symbols" && test -n "$include_expsyms"; then
+	  tmp_export_symbols="$export_symbols"
+	  test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
+	  $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
+	fi
+
+	if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
+	  # The given exports_symbols file has to be filtered, so filter it.
+	  func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
+	  # FIXME: $output_objdir/$libname.filter potentially contains lots of
+	  # 's' commands which not all seds can handle. GNU sed should be fine
+	  # though. Also, the filter scales superlinearly with the number of
+	  # global variables. join(1) would be nice here, but unfortunately
+	  # isn't a blessed tool.
+	  $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+	  delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
+	  export_symbols=$output_objdir/$libname.def
+	  $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+	fi
+
+	tmp_deplibs=
+	for test_deplib in $deplibs; do
+	  case " $convenience " in
+	  *" $test_deplib "*) ;;
+	  *)
+	    tmp_deplibs="$tmp_deplibs $test_deplib"
+	    ;;
+	  esac
+	done
+	deplibs="$tmp_deplibs"
+
+	if test -n "$convenience"; then
+	  if test -n "$whole_archive_flag_spec" &&
+	    test "$compiler_needs_object" = yes &&
+	    test -z "$libobjs"; then
+	    # extract the archives, so we have objects to list.
+	    # TODO: could optimize this to just extract one archive.
+	    whole_archive_flag_spec=
+	  fi
+	  if test -n "$whole_archive_flag_spec"; then
+	    save_libobjs=$libobjs
+	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+	    test "X$libobjs" = "X " && libobjs=
+	  else
+	    gentop="$output_objdir/${outputname}x"
+	    generated="$generated $gentop"
+
+	    func_extract_archives $gentop $convenience
+	    libobjs="$libobjs $func_extract_archives_result"
+	    test "X$libobjs" = "X " && libobjs=
+	  fi
+	fi
+
+	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
+	  eval flag=\"$thread_safe_flag_spec\"
+	  linker_flags="$linker_flags $flag"
+	fi
+
+	# Make a backup of the uninstalled library when relinking
+	if test "$mode" = relink; then
+	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
+	fi
+
+	# Do each of the archive commands.
+	if test "$module" = yes && test -n "$module_cmds" ; then
+	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+	    eval test_cmds=\"$module_expsym_cmds\"
+	    cmds=$module_expsym_cmds
+	  else
+	    eval test_cmds=\"$module_cmds\"
+	    cmds=$module_cmds
+	  fi
+	else
+	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+	    eval test_cmds=\"$archive_expsym_cmds\"
+	    cmds=$archive_expsym_cmds
+	  else
+	    eval test_cmds=\"$archive_cmds\"
+	    cmds=$archive_cmds
+	  fi
+	fi
+
+	if test "X$skipped_export" != "X:" &&
+	   func_len " $test_cmds" &&
+	   len=$func_len_result &&
+	   test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	  :
+	else
+	  # The command line is too long to link in one step, link piecewise
+	  # or, if using GNU ld and skipped_export is not :, use a linker
+	  # script.
+
+	  # Save the value of $output and $libobjs because we want to
+	  # use them later.  If we have whole_archive_flag_spec, we
+	  # want to use save_libobjs as it was before
+	  # whole_archive_flag_spec was expanded, because we can't
+	  # assume the linker understands whole_archive_flag_spec.
+	  # This may have to be revisited, in case too many
+	  # convenience libraries get linked in and end up exceeding
+	  # the spec.
+	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
+	    save_libobjs=$libobjs
+	  fi
+	  save_output=$output
+	  output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
+
+	  # Clear the reloadable object creation command queue and
+	  # initialize k to one.
+	  test_cmds=
+	  concat_cmds=
+	  objlist=
+	  last_robj=
+	  k=1
+
+	  if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
+	    output=${output_objdir}/${output_la}.lnkscript
+	    func_verbose "creating GNU ld script: $output"
+	    $ECHO 'INPUT (' > $output
+	    for obj in $save_libobjs
+	    do
+	      $ECHO "$obj" >> $output
+	    done
+	    $ECHO ')' >> $output
+	    delfiles="$delfiles $output"
+	  elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
+	    output=${output_objdir}/${output_la}.lnk
+	    func_verbose "creating linker input file list: $output"
+	    : > $output
+	    set x $save_libobjs
+	    shift
+	    firstobj=
+	    if test "$compiler_needs_object" = yes; then
+	      firstobj="$1 "
+	      shift
+	    fi
+	    for obj
+	    do
+	      $ECHO "$obj" >> $output
+	    done
+	    delfiles="$delfiles $output"
+	    output=$firstobj\"$file_list_spec$output\"
+	  else
+	    if test -n "$save_libobjs"; then
+	      func_verbose "creating reloadable object files..."
+	      output=$output_objdir/$output_la-${k}.$objext
+	      eval test_cmds=\"$reload_cmds\"
+	      func_len " $test_cmds"
+	      len0=$func_len_result
+	      len=$len0
+
+	      # Loop over the list of objects to be linked.
+	      for obj in $save_libobjs
+	      do
+		func_len " $obj"
+		func_arith $len + $func_len_result
+		len=$func_arith_result
+		if test "X$objlist" = X ||
+		   test "$len" -lt "$max_cmd_len"; then
+		  func_append objlist " $obj"
+		else
+		  # The command $test_cmds is almost too long, add a
+		  # command to the queue.
+		  if test "$k" -eq 1 ; then
+		    # The first file doesn't have a previous command to add.
+		    eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
+		  else
+		    # All subsequent reloadable object files will link in
+		    # the last one created.
+		    eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\"
+		  fi
+		  last_robj=$output_objdir/$output_la-${k}.$objext
+		  func_arith $k + 1
+		  k=$func_arith_result
+		  output=$output_objdir/$output_la-${k}.$objext
+		  objlist=$obj
+		  func_len " $last_robj"
+		  func_arith $len0 + $func_len_result
+		  len=$func_arith_result
+		fi
+	      done
+	      # Handle the remaining objects by creating one last
+	      # reloadable object file.  All subsequent reloadable object
+	      # files will link in the last one created.
+	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	      eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
+	      if test -n "$last_robj"; then
+	        eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
+	      fi
+	      delfiles="$delfiles $output"
+
+	    else
+	      output=
+	    fi
+
+	    if ${skipped_export-false}; then
+	      func_verbose "generating symbol list for \`$libname.la'"
+	      export_symbols="$output_objdir/$libname.exp"
+	      $opt_dry_run || $RM $export_symbols
+	      libobjs=$output
+	      # Append the command to create the export file.
+	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	      eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
+	      if test -n "$last_robj"; then
+		eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
+	      fi
+	    fi
+
+	    test -n "$save_libobjs" &&
+	      func_verbose "creating a temporary reloadable object file: $output"
+
+	    # Loop through the commands generated above and execute them.
+	    save_ifs="$IFS"; IFS='~'
+	    for cmd in $concat_cmds; do
+	      IFS="$save_ifs"
+	      $opt_silent || {
+		  func_quote_for_expand "$cmd"
+		  eval "func_echo $func_quote_for_expand_result"
+	      }
+	      $opt_dry_run || eval "$cmd" || {
+		lt_exit=$?
+
+		# Restore the uninstalled library and exit
+		if test "$mode" = relink; then
+		  ( cd "$output_objdir" && \
+		    $RM "${realname}T" && \
+		    $MV "${realname}U" "$realname" )
+		fi
+
+		exit $lt_exit
+	      }
+	    done
+	    IFS="$save_ifs"
+
+	    if test -n "$export_symbols_regex" && ${skipped_export-false}; then
+	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
+	    fi
+	  fi
+
+          if ${skipped_export-false}; then
+	    if test -n "$export_symbols" && test -n "$include_expsyms"; then
+	      tmp_export_symbols="$export_symbols"
+	      test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
+	      $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
+	    fi
+
+	    if test -n "$orig_export_symbols"; then
+	      # The given exports_symbols file has to be filtered, so filter it.
+	      func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
+	      # FIXME: $output_objdir/$libname.filter potentially contains lots of
+	      # 's' commands which not all seds can handle. GNU sed should be fine
+	      # though. Also, the filter scales superlinearly with the number of
+	      # global variables. join(1) would be nice here, but unfortunately
+	      # isn't a blessed tool.
+	      $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+	      delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
+	      export_symbols=$output_objdir/$libname.def
+	      $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+	    fi
+	  fi
+
+	  libobjs=$output
+	  # Restore the value of output.
+	  output=$save_output
+
+	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
+	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+	    test "X$libobjs" = "X " && libobjs=
+	  fi
+	  # Expand the library linking commands again to reset the
+	  # value of $libobjs for piecewise linking.
+
+	  # Do each of the archive commands.
+	  if test "$module" = yes && test -n "$module_cmds" ; then
+	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+	      cmds=$module_expsym_cmds
+	    else
+	      cmds=$module_cmds
+	    fi
+	  else
+	    if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+	      cmds=$archive_expsym_cmds
+	    else
+	      cmds=$archive_cmds
+	    fi
+	  fi
+	fi
+
+	if test -n "$delfiles"; then
+	  # Append the command to remove temporary files to $cmds.
+	  eval cmds=\"\$cmds~\$RM $delfiles\"
+	fi
+
+	# Add any objects from preloaded convenience libraries
+	if test -n "$dlprefiles"; then
+	  gentop="$output_objdir/${outputname}x"
+	  generated="$generated $gentop"
+
+	  func_extract_archives $gentop $dlprefiles
+	  libobjs="$libobjs $func_extract_archives_result"
+	  test "X$libobjs" = "X " && libobjs=
+	fi
+
+	save_ifs="$IFS"; IFS='~'
+	for cmd in $cmds; do
+	  IFS="$save_ifs"
+	  eval cmd=\"$cmd\"
+	  $opt_silent || {
+	    func_quote_for_expand "$cmd"
+	    eval "func_echo $func_quote_for_expand_result"
+	  }
+	  $opt_dry_run || eval "$cmd" || {
+	    lt_exit=$?
+
+	    # Restore the uninstalled library and exit
+	    if test "$mode" = relink; then
+	      ( cd "$output_objdir" && \
+	        $RM "${realname}T" && \
+		$MV "${realname}U" "$realname" )
+	    fi
+
+	    exit $lt_exit
+	  }
+	done
+	IFS="$save_ifs"
+
+	# Restore the uninstalled library and exit
+	if test "$mode" = relink; then
+	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
+
+	  if test -n "$convenience"; then
+	    if test -z "$whole_archive_flag_spec"; then
+	      func_show_eval '${RM}r "$gentop"'
+	    fi
+	  fi
+
+	  exit $EXIT_SUCCESS
+	fi
+
+	# Create links to the real library.
+	for linkname in $linknames; do
+	  if test "$realname" != "$linkname"; then
+	    func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
+	  fi
+	done
+
+	# If -module or -export-dynamic was specified, set the dlname.
+	if test "$module" = yes || test "$export_dynamic" = yes; then
+	  # On all known operating systems, these are identical.
+	  dlname="$soname"
+	fi
+      fi
+      ;;
+
+    obj)
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+	func_warning "\`-dlopen' is ignored for objects"
+      fi
+
+      case " $deplibs" in
+      *\ -l* | *\ -L*)
+	func_warning "\`-l' and \`-L' are ignored for objects" ;;
+      esac
+
+      test -n "$rpath" && \
+	func_warning "\`-rpath' is ignored for objects"
+
+      test -n "$xrpath" && \
+	func_warning "\`-R' is ignored for objects"
+
+      test -n "$vinfo" && \
+	func_warning "\`-version-info' is ignored for objects"
+
+      test -n "$release" && \
+	func_warning "\`-release' is ignored for objects"
+
+      case $output in
+      *.lo)
+	test -n "$objs$old_deplibs" && \
+	  func_fatal_error "cannot build library object \`$output' from non-libtool objects"
+
+	libobj=$output
+	func_lo2o "$libobj"
+	obj=$func_lo2o_result
+	;;
+      *)
+	libobj=
+	obj="$output"
+	;;
+      esac
+
+      # Delete the old objects.
+      $opt_dry_run || $RM $obj $libobj
+
+      # Objects from convenience libraries.  This assumes
+      # single-version convenience libraries.  Whenever we create
+      # different ones for PIC/non-PIC, this we'll have to duplicate
+      # the extraction.
+      reload_conv_objs=
+      gentop=
+      # reload_cmds runs $LD directly, so let us get rid of
+      # -Wl from whole_archive_flag_spec and hope we can get by with
+      # turning comma into space..
+      wl=
+
+      if test -n "$convenience"; then
+	if test -n "$whole_archive_flag_spec"; then
+	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
+	  reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
+	else
+	  gentop="$output_objdir/${obj}x"
+	  generated="$generated $gentop"
+
+	  func_extract_archives $gentop $convenience
+	  reload_conv_objs="$reload_objs $func_extract_archives_result"
+	fi
+      fi
+
+      # Create the old-style object.
+      reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+
+      output="$obj"
+      func_execute_cmds "$reload_cmds" 'exit $?'
+
+      # Exit if we aren't doing a library object file.
+      if test -z "$libobj"; then
+	if test -n "$gentop"; then
+	  func_show_eval '${RM}r "$gentop"'
+	fi
+
+	exit $EXIT_SUCCESS
+      fi
+
+      if test "$build_libtool_libs" != yes; then
+	if test -n "$gentop"; then
+	  func_show_eval '${RM}r "$gentop"'
+	fi
+
+	# Create an invalid libtool object if no PIC, so that we don't
+	# accidentally link it into a program.
+	# $show "echo timestamp > $libobj"
+	# $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
+	exit $EXIT_SUCCESS
+      fi
+
+      if test -n "$pic_flag" || test "$pic_mode" != default; then
+	# Only do commands if we really have different PIC objects.
+	reload_objs="$libobjs $reload_conv_objs"
+	output="$libobj"
+	func_execute_cmds "$reload_cmds" 'exit $?'
+      fi
+
+      if test -n "$gentop"; then
+	func_show_eval '${RM}r "$gentop"'
+      fi
+
+      exit $EXIT_SUCCESS
+      ;;
+
+    prog)
+      case $host in
+	*cygwin*) func_stripname '' '.exe' "$output"
+	          output=$func_stripname_result.exe;;
+      esac
+      test -n "$vinfo" && \
+	func_warning "\`-version-info' is ignored for programs"
+
+      test -n "$release" && \
+	func_warning "\`-release' is ignored for programs"
+
+      test "$preload" = yes \
+        && test "$dlopen_support" = unknown \
+	&& test "$dlopen_self" = unknown \
+	&& test "$dlopen_self_static" = unknown && \
+	  func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
+
+      case $host in
+      *-*-rhapsody* | *-*-darwin1.[012])
+	# On Rhapsody replace the C library is the System framework
+	compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+	finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+	;;
+      esac
+
+      case $host in
+      *-*-darwin*)
+	# Don't allow lazy linking, it breaks C++ global constructors
+	# But is supposedly fixed on 10.4 or later (yay!).
+	if test "$tagname" = CXX ; then
+	  case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
+	    10.[0123])
+	      compile_command="$compile_command ${wl}-bind_at_load"
+	      finalize_command="$finalize_command ${wl}-bind_at_load"
+	    ;;
+	  esac
+	fi
+	# Time to change all our "foo.ltframework" stuff back to "-framework foo"
+	compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	;;
+      esac
+
+
+      # move library search paths that coincide with paths to not yet
+      # installed libraries to the beginning of the library search list
+      new_libs=
+      for path in $notinst_path; do
+	case " $new_libs " in
+	*" -L$path/$objdir "*) ;;
+	*)
+	  case " $compile_deplibs " in
+	  *" -L$path/$objdir "*)
+	    new_libs="$new_libs -L$path/$objdir" ;;
+	  esac
+	  ;;
+	esac
+      done
+      for deplib in $compile_deplibs; do
+	case $deplib in
+	-L*)
+	  case " $new_libs " in
+	  *" $deplib "*) ;;
+	  *) new_libs="$new_libs $deplib" ;;
+	  esac
+	  ;;
+	*) new_libs="$new_libs $deplib" ;;
+	esac
+      done
+      compile_deplibs="$new_libs"
+
+
+      compile_command="$compile_command $compile_deplibs"
+      finalize_command="$finalize_command $finalize_deplibs"
+
+      if test -n "$rpath$xrpath"; then
+	# If the user specified any rpath flags, then add them.
+	for libdir in $rpath $xrpath; do
+	  # This is the magic to use -rpath.
+	  case "$finalize_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_rpath="$finalize_rpath $libdir" ;;
+	  esac
+	done
+      fi
+
+      # Now hardcode the library paths
+      rpath=
+      hardcode_libdirs=
+      for libdir in $compile_rpath $finalize_rpath; do
+	if test -n "$hardcode_libdir_flag_spec"; then
+	  if test -n "$hardcode_libdir_separator"; then
+	    if test -z "$hardcode_libdirs"; then
+	      hardcode_libdirs="$libdir"
+	    else
+	      # Just accumulate the unique libdirs.
+	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		;;
+	      *)
+		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		;;
+	      esac
+	    fi
+	  else
+	    eval flag=\"$hardcode_libdir_flag_spec\"
+	    rpath="$rpath $flag"
+	  fi
+	elif test -n "$runpath_var"; then
+	  case "$perm_rpath " in
+	  *" $libdir "*) ;;
+	  *) perm_rpath="$perm_rpath $libdir" ;;
+	  esac
+	fi
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+	  testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
+	  case :$dllsearchpath: in
+	  *":$libdir:"*) ;;
+	  ::) dllsearchpath=$libdir;;
+	  *) dllsearchpath="$dllsearchpath:$libdir";;
+	  esac
+	  case :$dllsearchpath: in
+	  *":$testbindir:"*) ;;
+	  ::) dllsearchpath=$testbindir;;
+	  *) dllsearchpath="$dllsearchpath:$testbindir";;
+	  esac
+	  ;;
+	esac
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+	 test -n "$hardcode_libdirs"; then
+	libdir="$hardcode_libdirs"
+	eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      compile_rpath="$rpath"
+
+      rpath=
+      hardcode_libdirs=
+      for libdir in $finalize_rpath; do
+	if test -n "$hardcode_libdir_flag_spec"; then
+	  if test -n "$hardcode_libdir_separator"; then
+	    if test -z "$hardcode_libdirs"; then
+	      hardcode_libdirs="$libdir"
+	    else
+	      # Just accumulate the unique libdirs.
+	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		;;
+	      *)
+		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		;;
+	      esac
+	    fi
+	  else
+	    eval flag=\"$hardcode_libdir_flag_spec\"
+	    rpath="$rpath $flag"
+	  fi
+	elif test -n "$runpath_var"; then
+	  case "$finalize_perm_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
+	  esac
+	fi
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+	 test -n "$hardcode_libdirs"; then
+	libdir="$hardcode_libdirs"
+	eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      finalize_rpath="$rpath"
+
+      if test -n "$libobjs" && test "$build_old_libs" = yes; then
+	# Transform all the library objects into standard objects.
+	compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+      fi
+
+      func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
+
+      # template prelinking step
+      if test -n "$prelink_cmds"; then
+	func_execute_cmds "$prelink_cmds" 'exit $?'
+      fi
+
+      wrappers_required=yes
+      case $host in
+      *cygwin* | *mingw* )
+        if test "$build_libtool_libs" != yes; then
+          wrappers_required=no
+        fi
+        ;;
+      *cegcc)
+        # Disable wrappers for cegcc, we are cross compiling anyway.
+        wrappers_required=no
+        ;;
+      *)
+        if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
+          wrappers_required=no
+        fi
+        ;;
+      esac
+      if test "$wrappers_required" = no; then
+	# Replace the output file specification.
+	compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+	link_command="$compile_command$compile_rpath"
+
+	# We have no uninstalled library dependencies, so finalize right now.
+	exit_status=0
+	func_show_eval "$link_command" 'exit_status=$?'
+
+	# Delete the generated files.
+	if test -f "$output_objdir/${outputname}S.${objext}"; then
+	  func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
+	fi
+
+	exit $exit_status
+      fi
+
+      if test -n "$compile_shlibpath$finalize_shlibpath"; then
+	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
+      fi
+      if test -n "$finalize_shlibpath"; then
+	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
+      fi
+
+      compile_var=
+      finalize_var=
+      if test -n "$runpath_var"; then
+	if test -n "$perm_rpath"; then
+	  # We should set the runpath_var.
+	  rpath=
+	  for dir in $perm_rpath; do
+	    rpath="$rpath$dir:"
+	  done
+	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
+	fi
+	if test -n "$finalize_perm_rpath"; then
+	  # We should set the runpath_var.
+	  rpath=
+	  for dir in $finalize_perm_rpath; do
+	    rpath="$rpath$dir:"
+	  done
+	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+	fi
+      fi
+
+      if test "$no_install" = yes; then
+	# We don't need to create a wrapper script.
+	link_command="$compile_var$compile_command$compile_rpath"
+	# Replace the output file specification.
+	link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+	# Delete the old output file.
+	$opt_dry_run || $RM $output
+	# Link the executable and exit
+	func_show_eval "$link_command" 'exit $?'
+	exit $EXIT_SUCCESS
+      fi
+
+      if test "$hardcode_action" = relink; then
+	# Fast installation is not supported
+	link_command="$compile_var$compile_command$compile_rpath"
+	relink_command="$finalize_var$finalize_command$finalize_rpath"
+
+	func_warning "this platform does not like uninstalled shared libraries"
+	func_warning "\`$output' will be relinked during installation"
+      else
+	if test "$fast_install" != no; then
+	  link_command="$finalize_var$compile_command$finalize_rpath"
+	  if test "$fast_install" = yes; then
+	    relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
+	  else
+	    # fast_install is set to needless
+	    relink_command=
+	  fi
+	else
+	  link_command="$compile_var$compile_command$compile_rpath"
+	  relink_command="$finalize_var$finalize_command$finalize_rpath"
+	fi
+      fi
+
+      # Replace the output file specification.
+      link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+
+      # Delete the old output files.
+      $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
+
+      func_show_eval "$link_command" 'exit $?'
+
+      # Now create the wrapper script.
+      func_verbose "creating $output"
+
+      # Quote the relink command for shipping.
+      if test -n "$relink_command"; then
+	# Preserve any variables that may affect compiler behavior
+	for var in $variables_saved_for_relink; do
+	  if eval test -z \"\${$var+set}\"; then
+	    relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
+	  elif eval var_value=\$$var; test -z "$var_value"; then
+	    relink_command="$var=; export $var; $relink_command"
+	  else
+	    func_quote_for_eval "$var_value"
+	    relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+	  fi
+	done
+	relink_command="(cd `pwd`; $relink_command)"
+	relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+      fi
+
+      # Quote $ECHO for shipping.
+      if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then
+	case $progpath in
+	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
+	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
+	esac
+	qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
+      else
+	qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
+      fi
+
+      # Only actually do things if not in dry run mode.
+      $opt_dry_run || {
+	# win32 will think the script is a binary if it has
+	# a .exe suffix, so we strip it off here.
+	case $output in
+	  *.exe) func_stripname '' '.exe' "$output"
+	         output=$func_stripname_result ;;
+	esac
+	# test for cygwin because mv fails w/o .exe extensions
+	case $host in
+	  *cygwin*)
+	    exeext=.exe
+	    func_stripname '' '.exe' "$outputname"
+	    outputname=$func_stripname_result ;;
+	  *) exeext= ;;
+	esac
+	case $host in
+	  *cygwin* | *mingw* )
+	    func_dirname_and_basename "$output" "" "."
+	    output_name=$func_basename_result
+	    output_path=$func_dirname_result
+	    cwrappersource="$output_path/$objdir/lt-$output_name.c"
+	    cwrapper="$output_path/$output_name.exe"
+	    $RM $cwrappersource $cwrapper
+	    trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
+
+	    func_emit_cwrapperexe_src > $cwrappersource
+
+	    # The wrapper executable is built using the $host compiler,
+	    # because it contains $host paths and files. If cross-
+	    # compiling, it, like the target executable, must be
+	    # executed on the $host or under an emulation environment.
+	    $opt_dry_run || {
+	      $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
+	      $STRIP $cwrapper
+	    }
+
+	    # Now, create the wrapper script for func_source use:
+	    func_ltwrapper_scriptname $cwrapper
+	    $RM $func_ltwrapper_scriptname_result
+	    trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
+	    $opt_dry_run || {
+	      # note: this script will not be executed, so do not chmod.
+	      if test "x$build" = "x$host" ; then
+		$cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
+	      else
+		func_emit_wrapper no > $func_ltwrapper_scriptname_result
+	      fi
+	    }
+	  ;;
+	  * )
+	    $RM $output
+	    trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
+
+	    func_emit_wrapper no > $output
+	    chmod +x $output
+	  ;;
+	esac
+      }
+      exit $EXIT_SUCCESS
+      ;;
+    esac
+
+    # See if we need to build an old-fashioned archive.
+    for oldlib in $oldlibs; do
+
+      if test "$build_libtool_libs" = convenience; then
+	oldobjs="$libobjs_save $symfileobj"
+	addlibs="$convenience"
+	build_libtool_libs=no
+      else
+	if test "$build_libtool_libs" = module; then
+	  oldobjs="$libobjs_save"
+	  build_libtool_libs=no
+	else
+	  oldobjs="$old_deplibs $non_pic_objects"
+	  if test "$preload" = yes && test -f "$symfileobj"; then
+	    oldobjs="$oldobjs $symfileobj"
+	  fi
+	fi
+	addlibs="$old_convenience"
+      fi
+
+      if test -n "$addlibs"; then
+	gentop="$output_objdir/${outputname}x"
+	generated="$generated $gentop"
+
+	func_extract_archives $gentop $addlibs
+	oldobjs="$oldobjs $func_extract_archives_result"
+      fi
+
+      # Do each command in the archive commands.
+      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
+	cmds=$old_archive_from_new_cmds
+      else
+
+	# Add any objects from preloaded convenience libraries
+	if test -n "$dlprefiles"; then
+	  gentop="$output_objdir/${outputname}x"
+	  generated="$generated $gentop"
+
+	  func_extract_archives $gentop $dlprefiles
+	  oldobjs="$oldobjs $func_extract_archives_result"
+	fi
+
+	# POSIX demands no paths to be encoded in archives.  We have
+	# to avoid creating archives with duplicate basenames if we
+	# might have to extract them afterwards, e.g., when creating a
+	# static archive out of a convenience library, or when linking
+	# the entirety of a libtool archive into another (currently
+	# not supported by libtool).
+	if (for obj in $oldobjs
+	    do
+	      func_basename "$obj"
+	      $ECHO "$func_basename_result"
+	    done | sort | sort -uc >/dev/null 2>&1); then
+	  :
+	else
+	  $ECHO "copying selected object files to avoid basename conflicts..."
+	  gentop="$output_objdir/${outputname}x"
+	  generated="$generated $gentop"
+	  func_mkdir_p "$gentop"
+	  save_oldobjs=$oldobjs
+	  oldobjs=
+	  counter=1
+	  for obj in $save_oldobjs
+	  do
+	    func_basename "$obj"
+	    objbase="$func_basename_result"
+	    case " $oldobjs " in
+	    " ") oldobjs=$obj ;;
+	    *[\ /]"$objbase "*)
+	      while :; do
+		# Make sure we don't pick an alternate name that also
+		# overlaps.
+		newobj=lt$counter-$objbase
+		func_arith $counter + 1
+		counter=$func_arith_result
+		case " $oldobjs " in
+		*[\ /]"$newobj "*) ;;
+		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
+		esac
+	      done
+	      func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
+	      oldobjs="$oldobjs $gentop/$newobj"
+	      ;;
+	    *) oldobjs="$oldobjs $obj" ;;
+	    esac
+	  done
+	fi
+	eval cmds=\"$old_archive_cmds\"
+
+	func_len " $cmds"
+	len=$func_len_result
+	if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	  cmds=$old_archive_cmds
+	else
+	  # the command line is too long to link in one step, link in parts
+	  func_verbose "using piecewise archive linking..."
+	  save_RANLIB=$RANLIB
+	  RANLIB=:
+	  objlist=
+	  concat_cmds=
+	  save_oldobjs=$oldobjs
+	  oldobjs=
+	  # Is there a better way of finding the last object in the list?
+	  for obj in $save_oldobjs
+	  do
+	    last_oldobj=$obj
+	  done
+	  eval test_cmds=\"$old_archive_cmds\"
+	  func_len " $test_cmds"
+	  len0=$func_len_result
+	  len=$len0
+	  for obj in $save_oldobjs
+	  do
+	    func_len " $obj"
+	    func_arith $len + $func_len_result
+	    len=$func_arith_result
+	    func_append objlist " $obj"
+	    if test "$len" -lt "$max_cmd_len"; then
+	      :
+	    else
+	      # the above command should be used before it gets too long
+	      oldobjs=$objlist
+	      if test "$obj" = "$last_oldobj" ; then
+		RANLIB=$save_RANLIB
+	      fi
+	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
+	      objlist=
+	      len=$len0
+	    fi
+	  done
+	  RANLIB=$save_RANLIB
+	  oldobjs=$objlist
+	  if test "X$oldobjs" = "X" ; then
+	    eval cmds=\"\$concat_cmds\"
+	  else
+	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
+	  fi
+	fi
+      fi
+      func_execute_cmds "$cmds" 'exit $?'
+    done
+
+    test -n "$generated" && \
+      func_show_eval "${RM}r$generated"
+
+    # Now create the libtool archive.
+    case $output in
+    *.la)
+      old_library=
+      test "$build_old_libs" = yes && old_library="$libname.$libext"
+      func_verbose "creating $output"
+
+      # Preserve any variables that may affect compiler behavior
+      for var in $variables_saved_for_relink; do
+	if eval test -z \"\${$var+set}\"; then
+	  relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
+	elif eval var_value=\$$var; test -z "$var_value"; then
+	  relink_command="$var=; export $var; $relink_command"
+	else
+	  func_quote_for_eval "$var_value"
+	  relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+	fi
+      done
+      # Quote the link command for shipping.
+      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
+      relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+      if test "$hardcode_automatic" = yes ; then
+	relink_command=
+      fi
+
+      # Only create the output if not a dry run.
+      $opt_dry_run || {
+	for installed in no yes; do
+	  if test "$installed" = yes; then
+	    if test -z "$install_libdir"; then
+	      break
+	    fi
+	    output="$output_objdir/$outputname"i
+	    # Replace all uninstalled libtool libraries with the installed ones
+	    newdependency_libs=
+	    for deplib in $dependency_libs; do
+	      case $deplib in
+	      *.la)
+		func_basename "$deplib"
+		name="$func_basename_result"
+		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+		test -z "$libdir" && \
+		  func_fatal_error "\`$deplib' is not a valid libtool archive"
+		newdependency_libs="$newdependency_libs $libdir/$name"
+		;;
+	      *) newdependency_libs="$newdependency_libs $deplib" ;;
+	      esac
+	    done
+	    dependency_libs="$newdependency_libs"
+	    newdlfiles=
+
+	    for lib in $dlfiles; do
+	      case $lib in
+	      *.la)
+	        func_basename "$lib"
+		name="$func_basename_result"
+		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+		test -z "$libdir" && \
+		  func_fatal_error "\`$lib' is not a valid libtool archive"
+		newdlfiles="$newdlfiles $libdir/$name"
+		;;
+	      *) newdlfiles="$newdlfiles $lib" ;;
+	      esac
+	    done
+	    dlfiles="$newdlfiles"
+	    newdlprefiles=
+	    for lib in $dlprefiles; do
+	      case $lib in
+	      *.la)
+		# Only pass preopened files to the pseudo-archive (for
+		# eventual linking with the app. that links it) if we
+		# didn't already link the preopened objects directly into
+		# the library:
+		func_basename "$lib"
+		name="$func_basename_result"
+		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+		test -z "$libdir" && \
+		  func_fatal_error "\`$lib' is not a valid libtool archive"
+		newdlprefiles="$newdlprefiles $libdir/$name"
+		;;
+	      esac
+	    done
+	    dlprefiles="$newdlprefiles"
+	  else
+	    newdlfiles=
+	    for lib in $dlfiles; do
+	      case $lib in
+		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+		*) abs=`pwd`"/$lib" ;;
+	      esac
+	      newdlfiles="$newdlfiles $abs"
+	    done
+	    dlfiles="$newdlfiles"
+	    newdlprefiles=
+	    for lib in $dlprefiles; do
+	      case $lib in
+		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+		*) abs=`pwd`"/$lib" ;;
+	      esac
+	      newdlprefiles="$newdlprefiles $abs"
+	    done
+	    dlprefiles="$newdlprefiles"
+	  fi
+	  $RM $output
+	  # place dlname in correct position for cygwin
+	  tdlname=$dlname
+	  case $host,$output,$installed,$module,$dlname in
+	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
+	  esac
+	  $ECHO > $output "\
+# $outputname - a libtool library file
+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='$tdlname'
+
+# Names of this library.
+library_names='$library_names'
+
+# The name of the static archive.
+old_library='$old_library'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags='$new_inherited_linker_flags'
+
+# Libraries that this one depends upon.
+dependency_libs='$dependency_libs'
+
+# Names of additional weak libraries provided by this library
+weak_library_names='$weak_libs'
+
+# Version information for $libname.
+current=$current
+age=$age
+revision=$revision
+
+# Is this an already installed library?
+installed=$installed
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=$module
+
+# Files to dlopen/dlpreopen
+dlopen='$dlfiles'
+dlpreopen='$dlprefiles'
+
+# Directory that this library needs to be installed in:
+libdir='$install_libdir'"
+	  if test "$installed" = no && test "$need_relink" = yes; then
+	    $ECHO >> $output "\
+relink_command=\"$relink_command\""
+	  fi
+	done
+      }
+
+      # Do a symbolic link so that the libtool archive can be found in
+      # LD_LIBRARY_PATH before the program is installed.
+      func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
+      ;;
+    esac
+    exit $EXIT_SUCCESS
+}
+
+{ test "$mode" = link || test "$mode" = relink; } &&
+    func_mode_link ${1+"$@"}
+
+
+# func_mode_uninstall arg...
+func_mode_uninstall ()
+{
+    $opt_debug
+    RM="$nonopt"
+    files=
+    rmforce=
+    exit_status=0
+
+    # This variable tells wrapper scripts just to set variables rather
+    # than running their programs.
+    libtool_install_magic="$magic"
+
+    for arg
+    do
+      case $arg in
+      -f) RM="$RM $arg"; rmforce=yes ;;
+      -*) RM="$RM $arg" ;;
+      *) files="$files $arg" ;;
+      esac
+    done
+
+    test -z "$RM" && \
+      func_fatal_help "you must specify an RM program"
+
+    rmdirs=
+
+    origobjdir="$objdir"
+    for file in $files; do
+      func_dirname "$file" "" "."
+      dir="$func_dirname_result"
+      if test "X$dir" = X.; then
+	objdir="$origobjdir"
+      else
+	objdir="$dir/$origobjdir"
+      fi
+      func_basename "$file"
+      name="$func_basename_result"
+      test "$mode" = uninstall && objdir="$dir"
+
+      # Remember objdir for removal later, being careful to avoid duplicates
+      if test "$mode" = clean; then
+	case " $rmdirs " in
+	  *" $objdir "*) ;;
+	  *) rmdirs="$rmdirs $objdir" ;;
+	esac
+      fi
+
+      # Don't error if the file doesn't exist and rm -f was used.
+      if { test -L "$file"; } >/dev/null 2>&1 ||
+	 { test -h "$file"; } >/dev/null 2>&1 ||
+	 test -f "$file"; then
+	:
+      elif test -d "$file"; then
+	exit_status=1
+	continue
+      elif test "$rmforce" = yes; then
+	continue
+      fi
+
+      rmfiles="$file"
+
+      case $name in
+      *.la)
+	# Possibly a libtool archive, so verify it.
+	if func_lalib_p "$file"; then
+	  func_source $dir/$name
+
+	  # Delete the libtool libraries and symlinks.
+	  for n in $library_names; do
+	    rmfiles="$rmfiles $objdir/$n"
+	  done
+	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
+
+	  case "$mode" in
+	  clean)
+	    case "  $library_names " in
+	    # "  " in the beginning catches empty $dlname
+	    *" $dlname "*) ;;
+	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
+	    esac
+	    test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
+	    ;;
+	  uninstall)
+	    if test -n "$library_names"; then
+	      # Do each command in the postuninstall commands.
+	      func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
+	    fi
+
+	    if test -n "$old_library"; then
+	      # Do each command in the old_postuninstall commands.
+	      func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
+	    fi
+	    # FIXME: should reinstall the best remaining shared library.
+	    ;;
+	  esac
+	fi
+	;;
+
+      *.lo)
+	# Possibly a libtool object, so verify it.
+	if func_lalib_p "$file"; then
+
+	  # Read the .lo file
+	  func_source $dir/$name
+
+	  # Add PIC object to the list of files to remove.
+	  if test -n "$pic_object" &&
+	     test "$pic_object" != none; then
+	    rmfiles="$rmfiles $dir/$pic_object"
+	  fi
+
+	  # Add non-PIC object to the list of files to remove.
+	  if test -n "$non_pic_object" &&
+	     test "$non_pic_object" != none; then
+	    rmfiles="$rmfiles $dir/$non_pic_object"
+	  fi
+	fi
+	;;
+
+      *)
+	if test "$mode" = clean ; then
+	  noexename=$name
+	  case $file in
+	  *.exe)
+	    func_stripname '' '.exe' "$file"
+	    file=$func_stripname_result
+	    func_stripname '' '.exe' "$name"
+	    noexename=$func_stripname_result
+	    # $file with .exe has already been added to rmfiles,
+	    # add $file without .exe
+	    rmfiles="$rmfiles $file"
+	    ;;
+	  esac
+	  # Do a test to see if this is a libtool program.
+	  if func_ltwrapper_p "$file"; then
+	    if func_ltwrapper_executable_p "$file"; then
+	      func_ltwrapper_scriptname "$file"
+	      relink_command=
+	      func_source $func_ltwrapper_scriptname_result
+	      rmfiles="$rmfiles $func_ltwrapper_scriptname_result"
+	    else
+	      relink_command=
+	      func_source $dir/$noexename
+	    fi
+
+	    # note $name still contains .exe if it was in $file originally
+	    # as does the version of $file that was added into $rmfiles
+	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
+	    if test "$fast_install" = yes && test -n "$relink_command"; then
+	      rmfiles="$rmfiles $objdir/lt-$name"
+	    fi
+	    if test "X$noexename" != "X$name" ; then
+	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
+	    fi
+	  fi
+	fi
+	;;
+      esac
+      func_show_eval "$RM $rmfiles" 'exit_status=1'
+    done
+    objdir="$origobjdir"
+
+    # Try to remove the ${objdir}s in the directories where we deleted files
+    for dir in $rmdirs; do
+      if test -d "$dir"; then
+	func_show_eval "rmdir $dir >/dev/null 2>&1"
+      fi
+    done
+
+    exit $exit_status
+}
+
+{ test "$mode" = uninstall || test "$mode" = clean; } &&
+    func_mode_uninstall ${1+"$@"}
+
+test -z "$mode" && {
+  help="$generic_help"
+  func_fatal_help "you must specify a MODE"
+}
+
+test -z "$exec_cmd" && \
+  func_fatal_help "invalid operation mode \`$mode'"
+
+if test -n "$exec_cmd"; then
+  eval exec "$exec_cmd"
+  exit $EXIT_FAILURE
+fi
+
+exit $exit_status
+
+
+# The TAGs below are defined such that we never get into a situation
+# in which we disable both kinds of libraries.  Given conflicting
+# choices, we go for a static library, that is the most portable,
+# since we can't tell whether shared libraries were disabled because
+# the user asked for that or because the platform doesn't support
+# them.  This is particularly important on AIX, because we don't
+# support having both static and shared libraries enabled at the same
+# time on that platform, so we default to a shared-only configuration.
+# If a disable-shared tag is given, we'll fallback to a static-only
+# configuration.  But we'll never go from static-only to shared-only.
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
+build_libtool_libs=no
+build_old_libs=yes
+# ### END LIBTOOL TAG CONFIG: disable-shared
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-static
+build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
+# ### END LIBTOOL TAG CONFIG: disable-static
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End:
+# vi:sw=2
+
+
+# ### BEGIN LIBTOOL TAG CONFIG: CXX
+
+# The linker used to build libraries.
+LD="/usr/bin/ld -m elf_x86_64"
+
+# Commands used to build an old-style archive.
+old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$oldlib"
+
+# A language specific compiler.
+CC="x86_64-linux-gnu-g++"
+
+# Is the compiler the GNU compiler?
+with_gcc=yes
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=" -fno-builtin"
+
+# How to pass a linker flag through the compiler.
+wl="-Wl,"
+
+# Additional compiler flags for building library objects.
+pic_flag=" -fPIC -DPIC"
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag="-static"
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o="yes"
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=no
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=no
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec="\${wl}--export-dynamic"
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec="\${wl}--whole-archive\$convenience \${wl}--no-whole-archive"
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object="no"
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=""
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=""
+
+# Commands used to build a shared archive.
+archive_cmds="\$CC -shared -nostdlib \$predep_objects \$libobjs \$deplibs \$postdep_objects \$compiler_flags \${wl}-soname \$wl\$soname -o \$lib"
+archive_expsym_cmds="\$CC -shared -nostdlib \$predep_objects \$libobjs \$deplibs \$postdep_objects \$compiler_flags \${wl}-soname \$wl\$soname \${wl}-retain-symbols-file \$wl\$export_symbols -o \$lib"
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=""
+module_expsym_cmds=""
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld="yes"
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=""
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=""
+
+# Flag to hardcode $libdir into a binary during linking.
+# This must work even if $libdir does not exist
+hardcode_libdir_flag_spec="\${wl}-rpath \${wl}\$libdir"
+
+# If ld is used when linking, flag to hardcode $libdir into a binary
+# during linking.  This must work even if $libdir does not exist.
+hardcode_libdir_flag_spec_ld=""
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=""
+
+# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=no
+
+# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting ${shlibpath_var} if the
+# library is relocated.
+hardcode_direct_absolute=no
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=no
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=unsupported
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=no
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=no
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=no
+
+# Fix the shell variable $srcfile for the compiler.
+fix_srcfile_path=""
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=no
+
+# The commands to list exported symbols.
+export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols"
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*"
+
+# Symbols that must always be exported.
+include_expsyms=""
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=""
+
+# Specify filename containing input files.
+file_list_spec=""
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=immediate
+
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs="/usr/lib/gcc/x86_64-linux-gnu/4.4.5 /usr/lib/gcc/x86_64-linux-gnu/4.4.5 /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib /lib/../lib /usr/lib/../lib /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../.."
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects="/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.4.5/crtbeginS.o"
+postdep_objects="/usr/lib/gcc/x86_64-linux-gnu/4.4.5/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib/crtn.o"
+predeps=""
+postdeps="-lstdc++ -lm -lgcc_s -lc -lgcc_s"
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path="-L/usr/lib/gcc/x86_64-linux-gnu/4.4.5 -L/usr/lib/gcc/x86_64-linux-gnu/4.4.5 -L/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../.."
+
+# ### END LIBTOOL TAG CONFIG: CXX
diff --git a/mgl/.deps/libmgl_la-mgl_1d.Plo b/mgl/.deps/libmgl_la-mgl_1d.Plo
new file mode 100644
index 0000000..8564703
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_1d.Plo
@@ -0,0 +1,362 @@
+libmgl_la-mgl_1d.lo: mgl_1d.cpp ../include/mgl/mgl.h /usr/include/wchar.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/include/stdio.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/xlocale.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/sys/types.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h ../include/mgl/mgl_data.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/string.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h /usr/include/gif_lib.h ../include/mgl/mgl_c.h \
+ ../include/mgl/mgl_f.h /usr/include/stdint.h ../include/mgl/mgl_eval.h
+
+../include/mgl/mgl.h:
+
+/usr/include/wchar.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/string.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+/usr/include/gif_lib.h:
+
+../include/mgl/mgl_c.h:
+
+../include/mgl/mgl_f.h:
+
+/usr/include/stdint.h:
+
+../include/mgl/mgl_eval.h:
diff --git a/mgl/.deps/libmgl_la-mgl_2d.Plo b/mgl/.deps/libmgl_la-mgl_2d.Plo
new file mode 100644
index 0000000..5d403eb
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_2d.Plo
@@ -0,0 +1,362 @@
+libmgl_la-mgl_2d.lo: mgl_2d.cpp ../include/mgl/mgl.h /usr/include/wchar.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/include/stdio.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/xlocale.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/sys/types.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h ../include/mgl/mgl_data.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/string.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h /usr/include/gif_lib.h ../include/mgl/mgl_c.h \
+ ../include/mgl/mgl_f.h /usr/include/stdint.h ../include/mgl/mgl_eval.h
+
+../include/mgl/mgl.h:
+
+/usr/include/wchar.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/string.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+/usr/include/gif_lib.h:
+
+../include/mgl/mgl_c.h:
+
+../include/mgl/mgl_f.h:
+
+/usr/include/stdint.h:
+
+../include/mgl/mgl_eval.h:
diff --git a/mgl/.deps/libmgl_la-mgl_3d.Plo b/mgl/.deps/libmgl_la-mgl_3d.Plo
new file mode 100644
index 0000000..117172e
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_3d.Plo
@@ -0,0 +1,360 @@
+libmgl_la-mgl_3d.lo: mgl_3d.cpp /usr/include/stdlib.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/xlocale.h \
+ /usr/include/sys/types.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/time.h \
+ /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h ../include/mgl/mgl.h /usr/include/wchar.h \
+ /usr/include/stdio.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/wchar.h ../include/mgl/mgl_data.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/string.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h /usr/include/gif_lib.h ../include/mgl/mgl_c.h \
+ ../include/mgl/mgl_f.h /usr/include/stdint.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+../include/mgl/mgl.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/string.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+/usr/include/gif_lib.h:
+
+../include/mgl/mgl_c.h:
+
+../include/mgl/mgl_f.h:
+
+/usr/include/stdint.h:
diff --git a/mgl/.deps/libmgl_la-mgl_ab.Plo b/mgl/.deps/libmgl_la-mgl_ab.Plo
new file mode 100644
index 0000000..a3c6299
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_ab.Plo
@@ -0,0 +1,355 @@
+libmgl_la-mgl_ab.lo: mgl_ab.cpp /usr/include/stdlib.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/xlocale.h \
+ /usr/include/sys/types.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/time.h \
+ /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/wchar.h /usr/include/stdio.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/wchar.h ../include/mgl/mgl_ab.h ../include/mgl/mgl.h \
+ ../include/mgl/mgl_data.h /usr/include/libio.h /usr/include/_G_config.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/string.h /usr/include/c++/4.4/vector \
+ /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h /usr/include/gif_lib.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+../include/mgl/mgl_ab.h:
+
+../include/mgl/mgl.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/string.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+/usr/include/gif_lib.h:
diff --git a/mgl/.deps/libmgl_la-mgl_addon.Plo b/mgl/.deps/libmgl_la-mgl_addon.Plo
new file mode 100644
index 0000000..6e19b88
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_addon.Plo
@@ -0,0 +1,321 @@
+libmgl_la-mgl_addon.lo: mgl_addon.cpp \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/unistd.h /usr/include/features.h \
+ /usr/include/bits/predefs.h /usr/include/sys/cdefs.h \
+ /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-64.h /usr/include/bits/posix_opt.h \
+ /usr/include/bits/environments.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h /usr/include/string.h \
+ /usr/include/xlocale.h ../include/mgl/mgl_addon.h /usr/include/stdio.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h ../include/mgl/mgl_evalc.h \
+ /usr/include/c++/4.4/complex \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h /usr/include/c++/4.4/cmath \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/c++/4.4/bits/cmath.tcc \
+ /usr/include/c++/4.4/sstream /usr/include/c++/4.4/istream \
+ /usr/include/c++/4.4/ios /usr/include/c++/4.4/iosfwd \
+ /usr/include/c++/4.4/bits/stringfwd.h \
+ /usr/include/c++/4.4/bits/postypes.h /usr/include/c++/4.4/cwchar \
+ /usr/include/c++/4.4/cstddef /usr/include/bits/wchar.h \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/char_traits.h \
+ /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/localefwd.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++locale.h \
+ /usr/include/c++/4.4/clocale /usr/include/locale.h \
+ /usr/include/bits/locale.h /usr/include/c++/4.4/cctype \
+ /usr/include/ctype.h /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/c++/4.4/bits/ios_base.h \
+ /usr/include/c++/4.4/ext/atomicity.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+ /usr/include/bits/sched.h /usr/include/bits/time.h /usr/include/signal.h \
+ /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/bits/setjmp.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/atomic_word.h \
+ /usr/include/c++/4.4/bits/locale_classes.h /usr/include/c++/4.4/string \
+ /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/bits/ostream_insert.h \
+ /usr/include/c++/4.4/cxxabi-forced.h \
+ /usr/include/c++/4.4/bits/stl_function.h \
+ /usr/include/c++/4.4/backward/binders.h \
+ /usr/include/c++/4.4/bits/basic_string.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/basic_string.tcc \
+ /usr/include/c++/4.4/bits/locale_classes.tcc \
+ /usr/include/c++/4.4/streambuf /usr/include/c++/4.4/bits/streambuf.tcc \
+ /usr/include/c++/4.4/bits/basic_ios.h \
+ /usr/include/c++/4.4/bits/locale_facets.h /usr/include/c++/4.4/cwctype \
+ /usr/include/wctype.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_base.h \
+ /usr/include/c++/4.4/bits/streambuf_iterator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_inline.h \
+ /usr/include/c++/4.4/bits/locale_facets.tcc \
+ /usr/include/c++/4.4/bits/basic_ios.tcc /usr/include/c++/4.4/ostream \
+ /usr/include/c++/4.4/bits/ostream.tcc \
+ /usr/include/c++/4.4/bits/istream.tcc \
+ /usr/include/c++/4.4/bits/sstream.tcc ../include/mgl/mgl_eval.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/unistd.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+../include/mgl/mgl_addon.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+../include/mgl/mgl_evalc.h:
+
+/usr/include/c++/4.4/complex:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/cmath:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/c++/4.4/bits/cmath.tcc:
+
+/usr/include/c++/4.4/sstream:
+
+/usr/include/c++/4.4/istream:
+
+/usr/include/c++/4.4/ios:
+
+/usr/include/c++/4.4/iosfwd:
+
+/usr/include/c++/4.4/bits/stringfwd.h:
+
+/usr/include/c++/4.4/bits/postypes.h:
+
+/usr/include/c++/4.4/cwchar:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/char_traits.h:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/localefwd.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++locale.h:
+
+/usr/include/c++/4.4/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/c++/4.4/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/c++/4.4/bits/ios_base.h:
+
+/usr/include/c++/4.4/ext/atomicity.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/atomic_word.h:
+
+/usr/include/c++/4.4/bits/locale_classes.h:
+
+/usr/include/c++/4.4/string:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/bits/ostream_insert.h:
+
+/usr/include/c++/4.4/cxxabi-forced.h:
+
+/usr/include/c++/4.4/bits/stl_function.h:
+
+/usr/include/c++/4.4/backward/binders.h:
+
+/usr/include/c++/4.4/bits/basic_string.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/basic_string.tcc:
+
+/usr/include/c++/4.4/bits/locale_classes.tcc:
+
+/usr/include/c++/4.4/streambuf:
+
+/usr/include/c++/4.4/bits/streambuf.tcc:
+
+/usr/include/c++/4.4/bits/basic_ios.h:
+
+/usr/include/c++/4.4/bits/locale_facets.h:
+
+/usr/include/c++/4.4/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_base.h:
+
+/usr/include/c++/4.4/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_inline.h:
+
+/usr/include/c++/4.4/bits/locale_facets.tcc:
+
+/usr/include/c++/4.4/bits/basic_ios.tcc:
+
+/usr/include/c++/4.4/ostream:
+
+/usr/include/c++/4.4/bits/ostream.tcc:
+
+/usr/include/c++/4.4/bits/istream.tcc:
+
+/usr/include/c++/4.4/bits/sstream.tcc:
+
+../include/mgl/mgl_eval.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
diff --git a/mgl/.deps/libmgl_la-mgl_axis.Plo b/mgl/.deps/libmgl_la-mgl_axis.Plo
new file mode 100644
index 0000000..62e1a1d
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_axis.Plo
@@ -0,0 +1,361 @@
+libmgl_la-mgl_axis.lo: mgl_axis.cpp /usr/include/ctype.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/xlocale.h /usr/include/wchar.h \
+ /usr/include/stdio.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h /usr/include/sys/types.h \
+ /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h ../include/mgl/mgl.h ../include/mgl/mgl_data.h \
+ /usr/include/libio.h /usr/include/_G_config.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/string.h /usr/include/c++/4.4/vector \
+ /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h /usr/include/gif_lib.h \
+ ../include/mgl/mgl_eval.h ../include/mgl/mgl_c.h
+
+/usr/include/ctype.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+../include/mgl/mgl.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/string.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+/usr/include/gif_lib.h:
+
+../include/mgl/mgl_eval.h:
+
+../include/mgl/mgl_c.h:
diff --git a/mgl/.deps/libmgl_la-mgl_c.Plo b/mgl/.deps/libmgl_la-mgl_c.Plo
new file mode 100644
index 0000000..87e9ae8
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_c.Plo
@@ -0,0 +1,360 @@
+libmgl_la-mgl_c.lo: mgl_c.cpp /usr/include/stdlib.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/xlocale.h \
+ /usr/include/sys/types.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/time.h \
+ /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h ../include/mgl/mgl_ab.h ../include/mgl/mgl.h \
+ /usr/include/wchar.h /usr/include/stdio.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/wchar.h ../include/mgl/mgl_data.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/string.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h /usr/include/gif_lib.h ../include/mgl/mgl_c.h \
+ /usr/include/stdint.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+../include/mgl/mgl_ab.h:
+
+../include/mgl/mgl.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/string.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+/usr/include/gif_lib.h:
+
+../include/mgl/mgl_c.h:
+
+/usr/include/stdint.h:
diff --git a/mgl/.deps/libmgl_la-mgl_combi.Plo b/mgl/.deps/libmgl_la-mgl_combi.Plo
new file mode 100644
index 0000000..eade925
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_combi.Plo
@@ -0,0 +1,360 @@
+libmgl_la-mgl_combi.lo: mgl_combi.cpp ../include/mgl/mgl.h \
+ /usr/include/wchar.h /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/include/stdio.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/xlocale.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/sys/types.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h ../include/mgl/mgl_data.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/string.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h /usr/include/gif_lib.h ../include/mgl/mgl_c.h \
+ ../include/mgl/mgl_f.h /usr/include/stdint.h
+
+../include/mgl/mgl.h:
+
+/usr/include/wchar.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/string.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+/usr/include/gif_lib.h:
+
+../include/mgl/mgl_c.h:
+
+../include/mgl/mgl_f.h:
+
+/usr/include/stdint.h:
diff --git a/mgl/.deps/libmgl_la-mgl_cont.Plo b/mgl/.deps/libmgl_la-mgl_cont.Plo
new file mode 100644
index 0000000..b03e380
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_cont.Plo
@@ -0,0 +1,360 @@
+libmgl_la-mgl_cont.lo: mgl_cont.cpp /usr/include/stdlib.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/xlocale.h \
+ /usr/include/sys/types.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/time.h \
+ /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/wchar.h /usr/include/stdio.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/wchar.h ../include/mgl/mgl.h ../include/mgl/mgl_data.h \
+ /usr/include/libio.h /usr/include/_G_config.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/string.h /usr/include/c++/4.4/vector \
+ /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h /usr/include/gif_lib.h ../include/mgl/mgl_c.h \
+ ../include/mgl/mgl_f.h /usr/include/stdint.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+../include/mgl/mgl.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/string.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+/usr/include/gif_lib.h:
+
+../include/mgl/mgl_c.h:
+
+../include/mgl/mgl_f.h:
+
+/usr/include/stdint.h:
diff --git a/mgl/.deps/libmgl_la-mgl_crust.Plo b/mgl/.deps/libmgl_la-mgl_crust.Plo
new file mode 100644
index 0000000..5bcc57c
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_crust.Plo
@@ -0,0 +1,363 @@
+libmgl_la-mgl_crust.lo: mgl_crust.cpp /usr/include/stdlib.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/xlocale.h \
+ /usr/include/sys/types.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/time.h \
+ /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/float.h ../include/mgl/mgl.h \
+ /usr/include/wchar.h /usr/include/stdio.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/wchar.h ../include/mgl/mgl_data.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/string.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h /usr/include/gif_lib.h ../include/mgl/mgl_c.h \
+ ../include/mgl/mgl_f.h /usr/include/stdint.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/float.h:
+
+../include/mgl/mgl.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/string.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+/usr/include/gif_lib.h:
+
+../include/mgl/mgl_c.h:
+
+../include/mgl/mgl_f.h:
+
+/usr/include/stdint.h:
diff --git a/mgl/.deps/libmgl_la-mgl_data.Plo b/mgl/.deps/libmgl_la-mgl_data.Plo
new file mode 100644
index 0000000..f9dc67d
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_data.Plo
@@ -0,0 +1,478 @@
+libmgl_la-mgl_data.lo: mgl_data.cpp /usr/include/stdlib.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/xlocale.h \
+ /usr/include/sys/types.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/time.h \
+ /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/string.h ../include/mgl/mgl_data.h \
+ /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
+ /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_eval.h /usr/include/gsl/gsl_fft_complex.h \
+ /usr/include/gsl/gsl_math.h /usr/include/gsl/gsl_sys.h \
+ /usr/include/gsl/gsl_machine.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+ /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+ /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/float.h \
+ /usr/include/gsl/gsl_precision.h /usr/include/gsl/gsl_nan.h \
+ /usr/include/gsl/gsl_pow_int.h /usr/include/gsl/gsl_minmax.h \
+ /usr/include/gsl/gsl_fft.h /usr/include/gsl/gsl_dht.h \
+ /usr/include/gsl/gsl_sf.h /usr/include/gsl/gsl_sf_result.h \
+ /usr/include/gsl/gsl_sf_airy.h /usr/include/gsl/gsl_mode.h \
+ /usr/include/gsl/gsl_sf_bessel.h /usr/include/gsl/gsl_sf_clausen.h \
+ /usr/include/gsl/gsl_sf_coupling.h /usr/include/gsl/gsl_sf_coulomb.h \
+ /usr/include/gsl/gsl_sf_dawson.h /usr/include/gsl/gsl_sf_debye.h \
+ /usr/include/gsl/gsl_sf_dilog.h /usr/include/gsl/gsl_sf_elementary.h \
+ /usr/include/gsl/gsl_sf_ellint.h /usr/include/gsl/gsl_sf_elljac.h \
+ /usr/include/gsl/gsl_sf_erf.h /usr/include/gsl/gsl_sf_exp.h \
+ /usr/include/gsl/gsl_sf_expint.h /usr/include/gsl/gsl_sf_fermi_dirac.h \
+ /usr/include/gsl/gsl_sf_gamma.h /usr/include/gsl/gsl_sf_gegenbauer.h \
+ /usr/include/gsl/gsl_sf_hyperg.h /usr/include/gsl/gsl_sf_laguerre.h \
+ /usr/include/gsl/gsl_sf_lambert.h /usr/include/gsl/gsl_sf_legendre.h \
+ /usr/include/gsl/gsl_sf_log.h /usr/include/gsl/gsl_sf_mathieu.h \
+ /usr/include/gsl/gsl_eigen.h /usr/include/gsl/gsl_sf_pow_int.h \
+ /usr/include/gsl/gsl_sf_psi.h /usr/include/gsl/gsl_sf_synchrotron.h \
+ /usr/include/gsl/gsl_sf_transport.h /usr/include/gsl/gsl_sf_trig.h \
+ /usr/include/gsl/gsl_sf_zeta.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/string.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_eval.h:
+
+/usr/include/gsl/gsl_fft_complex.h:
+
+/usr/include/gsl/gsl_math.h:
+
+/usr/include/gsl/gsl_sys.h:
+
+/usr/include/gsl/gsl_machine.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/float.h:
+
+/usr/include/gsl/gsl_precision.h:
+
+/usr/include/gsl/gsl_nan.h:
+
+/usr/include/gsl/gsl_pow_int.h:
+
+/usr/include/gsl/gsl_minmax.h:
+
+/usr/include/gsl/gsl_fft.h:
+
+/usr/include/gsl/gsl_dht.h:
+
+/usr/include/gsl/gsl_sf.h:
+
+/usr/include/gsl/gsl_sf_result.h:
+
+/usr/include/gsl/gsl_sf_airy.h:
+
+/usr/include/gsl/gsl_mode.h:
+
+/usr/include/gsl/gsl_sf_bessel.h:
+
+/usr/include/gsl/gsl_sf_clausen.h:
+
+/usr/include/gsl/gsl_sf_coupling.h:
+
+/usr/include/gsl/gsl_sf_coulomb.h:
+
+/usr/include/gsl/gsl_sf_dawson.h:
+
+/usr/include/gsl/gsl_sf_debye.h:
+
+/usr/include/gsl/gsl_sf_dilog.h:
+
+/usr/include/gsl/gsl_sf_elementary.h:
+
+/usr/include/gsl/gsl_sf_ellint.h:
+
+/usr/include/gsl/gsl_sf_elljac.h:
+
+/usr/include/gsl/gsl_sf_erf.h:
+
+/usr/include/gsl/gsl_sf_exp.h:
+
+/usr/include/gsl/gsl_sf_expint.h:
+
+/usr/include/gsl/gsl_sf_fermi_dirac.h:
+
+/usr/include/gsl/gsl_sf_gamma.h:
+
+/usr/include/gsl/gsl_sf_gegenbauer.h:
+
+/usr/include/gsl/gsl_sf_hyperg.h:
+
+/usr/include/gsl/gsl_sf_laguerre.h:
+
+/usr/include/gsl/gsl_sf_lambert.h:
+
+/usr/include/gsl/gsl_sf_legendre.h:
+
+/usr/include/gsl/gsl_sf_log.h:
+
+/usr/include/gsl/gsl_sf_mathieu.h:
+
+/usr/include/gsl/gsl_eigen.h:
+
+/usr/include/gsl/gsl_sf_pow_int.h:
+
+/usr/include/gsl/gsl_sf_psi.h:
+
+/usr/include/gsl/gsl_sf_synchrotron.h:
+
+/usr/include/gsl/gsl_sf_transport.h:
+
+/usr/include/gsl/gsl_sf_trig.h:
+
+/usr/include/gsl/gsl_sf_zeta.h:
diff --git a/mgl/.deps/libmgl_la-mgl_data_cf.Plo b/mgl/.deps/libmgl_la-mgl_data_cf.Plo
new file mode 100644
index 0000000..2d4c38d
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_data_cf.Plo
@@ -0,0 +1,352 @@
+libmgl_la-mgl_data_cf.lo: mgl_data_cf.cpp /usr/include/string.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/xlocale.h ../include/mgl/mgl_data.h /usr/include/stdio.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/sys/types.h \
+ /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/gsl/gsl_types.h \
+ /usr/include/gsl/gsl_errno.h /usr/include/errno.h \
+ /usr/include/bits/errno.h /usr/include/linux/errno.h \
+ /usr/include/asm/errno.h /usr/include/asm-generic/errno.h \
+ /usr/include/asm-generic/errno-base.h /usr/include/gsl/gsl_complex.h \
+ /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_c.h ../include/mgl/mgl_f.h /usr/include/stdint.h \
+ /usr/include/bits/wchar.h
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_c.h:
+
+../include/mgl/mgl_f.h:
+
+/usr/include/stdint.h:
+
+/usr/include/bits/wchar.h:
diff --git a/mgl/.deps/libmgl_la-mgl_data_io.Plo b/mgl/.deps/libmgl_la-mgl_data_io.Plo
new file mode 100644
index 0000000..6176352
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_data_io.Plo
@@ -0,0 +1,533 @@
+libmgl_la-mgl_data_io.lo: mgl_data_io.cpp /usr/include/stdlib.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/xlocale.h \
+ /usr/include/sys/types.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/time.h \
+ /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/ctype.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/string.h /usr/include/zlib.h /usr/include/zconf.h \
+ /usr/include/zlibdefs.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h /usr/include/hdf5.h \
+ /usr/include/H5public.h /usr/include/H5pubconf.h \
+ /usr/include/H5version.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+ /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+ /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+ /usr/include/bits/stdio_lim.h /usr/include/inttypes.h \
+ /usr/include/stdint.h /usr/include/bits/wchar.h \
+ /usr/include/H5api_adpt.h /usr/include/H5Apublic.h \
+ /usr/include/H5Ipublic.h /usr/include/H5Opublic.h \
+ /usr/include/H5Lpublic.h /usr/include/H5Tpublic.h \
+ /usr/include/H5ACpublic.h /usr/include/H5Cpublic.h \
+ /usr/include/H5Dpublic.h /usr/include/H5Epublic.h /usr/include/stdio.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+ /usr/include/H5Epubgen.h /usr/include/H5Fpublic.h \
+ /usr/include/H5FDpublic.h /usr/include/H5Gpublic.h \
+ /usr/include/H5MMpublic.h /usr/include/H5Ppublic.h \
+ /usr/include/H5Zpublic.h /usr/include/H5Rpublic.h \
+ /usr/include/H5Spublic.h /usr/include/H5FDcore.h \
+ /usr/include/H5FDfamily.h /usr/include/H5FDlog.h /usr/include/H5FDmpi.h \
+ /usr/include/H5FDmpio.h /usr/include/H5FDmpiposix.h \
+ /usr/include/H5FDmulti.h /usr/include/H5FDsec2.h \
+ /usr/include/H5FDstdio.h /usr/include/H5FDdirect.h \
+ /usr/include/hdf/mfhdf.h /usr/include/hdf/hdf.h \
+ /usr/include/hdf/h4config.h /usr/include/hdf/hdfi.h \
+ /usr/include/sys/file.h /usr/include/fcntl.h /usr/include/bits/fcntl.h \
+ /usr/include/bits/uio.h /usr/include/sys/stat.h /usr/include/bits/stat.h \
+ /usr/include/hdf/hlimits.h /usr/include/hdf/hntdefs.h \
+ /usr/include/hdf/htags.h /usr/include/hdf/hbitio.h \
+ /usr/include/hdf/hcomp.h /usr/include/hdf/herr.h \
+ /usr/include/hdf/hproto.h /usr/include/hdf/vg.h /usr/include/hdf/mfgr.h \
+ /usr/include/hdf/netcdf.h /usr/include/hdf/hdf2netcdf.h \
+ /usr/include/hdf/mfhdfi.h /usr/include/glob.h ../include/mgl/mgl_eval.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_data.h /usr/include/c++/4.4/vector \
+ /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/ctype.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/string.h:
+
+/usr/include/zlib.h:
+
+/usr/include/zconf.h:
+
+/usr/include/zlibdefs.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/hdf5.h:
+
+/usr/include/H5public.h:
+
+/usr/include/H5pubconf.h:
+
+/usr/include/H5version.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/inttypes.h:
+
+/usr/include/stdint.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/H5api_adpt.h:
+
+/usr/include/H5Apublic.h:
+
+/usr/include/H5Ipublic.h:
+
+/usr/include/H5Opublic.h:
+
+/usr/include/H5Lpublic.h:
+
+/usr/include/H5Tpublic.h:
+
+/usr/include/H5ACpublic.h:
+
+/usr/include/H5Cpublic.h:
+
+/usr/include/H5Dpublic.h:
+
+/usr/include/H5Epublic.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/H5Epubgen.h:
+
+/usr/include/H5Fpublic.h:
+
+/usr/include/H5FDpublic.h:
+
+/usr/include/H5Gpublic.h:
+
+/usr/include/H5MMpublic.h:
+
+/usr/include/H5Ppublic.h:
+
+/usr/include/H5Zpublic.h:
+
+/usr/include/H5Rpublic.h:
+
+/usr/include/H5Spublic.h:
+
+/usr/include/H5FDcore.h:
+
+/usr/include/H5FDfamily.h:
+
+/usr/include/H5FDlog.h:
+
+/usr/include/H5FDmpi.h:
+
+/usr/include/H5FDmpio.h:
+
+/usr/include/H5FDmpiposix.h:
+
+/usr/include/H5FDmulti.h:
+
+/usr/include/H5FDsec2.h:
+
+/usr/include/H5FDstdio.h:
+
+/usr/include/H5FDdirect.h:
+
+/usr/include/hdf/mfhdf.h:
+
+/usr/include/hdf/hdf.h:
+
+/usr/include/hdf/h4config.h:
+
+/usr/include/hdf/hdfi.h:
+
+/usr/include/sys/file.h:
+
+/usr/include/fcntl.h:
+
+/usr/include/bits/fcntl.h:
+
+/usr/include/bits/uio.h:
+
+/usr/include/sys/stat.h:
+
+/usr/include/bits/stat.h:
+
+/usr/include/hdf/hlimits.h:
+
+/usr/include/hdf/hntdefs.h:
+
+/usr/include/hdf/htags.h:
+
+/usr/include/hdf/hbitio.h:
+
+/usr/include/hdf/hcomp.h:
+
+/usr/include/hdf/herr.h:
+
+/usr/include/hdf/hproto.h:
+
+/usr/include/hdf/vg.h:
+
+/usr/include/hdf/mfgr.h:
+
+/usr/include/hdf/netcdf.h:
+
+/usr/include/hdf/hdf2netcdf.h:
+
+/usr/include/hdf/mfhdfi.h:
+
+/usr/include/glob.h:
+
+../include/mgl/mgl_eval.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
diff --git a/mgl/.deps/libmgl_la-mgl_data_png.Plo b/mgl/.deps/libmgl_la-mgl_data_png.Plo
new file mode 100644
index 0000000..8e96bed
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_data_png.Plo
@@ -0,0 +1,382 @@
+libmgl_la-mgl_data_png.lo: mgl_data_png.cpp /usr/include/stdlib.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/xlocale.h \
+ /usr/include/sys/types.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/time.h \
+ /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/png.h /usr/include/zlib.h \
+ /usr/include/zconf.h /usr/include/zlibdefs.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h \
+ /usr/include/pngconf.h /usr/include/stdio.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/setjmp.h \
+ /usr/include/bits/setjmp.h /usr/include/string.h \
+ ../include/mgl/mgl_data.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_c.h ../include/mgl/mgl_f.h /usr/include/stdint.h \
+ /usr/include/bits/wchar.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/png.h:
+
+/usr/include/zlib.h:
+
+/usr/include/zconf.h:
+
+/usr/include/zlibdefs.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/pngconf.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/setjmp.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/string.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_c.h:
+
+../include/mgl/mgl_f.h:
+
+/usr/include/stdint.h:
+
+/usr/include/bits/wchar.h:
diff --git a/mgl/.deps/libmgl_la-mgl_def_font.Plo b/mgl/.deps/libmgl_la-mgl_def_font.Plo
new file mode 100644
index 0000000..4f9866d
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_def_font.Plo
@@ -0,0 +1,43 @@
+libmgl_la-mgl_def_font.lo: mgl_def_font.cpp ../include/mgl/mgl_define.h \
+ /usr/include/math.h /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ ../include/mgl/config.h
+
+../include/mgl/mgl_define.h:
+
+/usr/include/math.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+../include/mgl/config.h:
diff --git a/mgl/.deps/libmgl_la-mgl_eps.Plo b/mgl/.deps/libmgl_la-mgl_eps.Plo
new file mode 100644
index 0000000..0c13e4b
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_eps.Plo
@@ -0,0 +1,384 @@
+libmgl_la-mgl_eps.lo: mgl_eps.cpp /usr/include/stdlib.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/xlocale.h \
+ /usr/include/sys/types.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/time.h \
+ /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/zlib.h /usr/include/zconf.h \
+ /usr/include/zlibdefs.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h \
+ ../include/mgl/mgl_eps.h ../include/mgl/mgl_ab.h ../include/mgl/mgl.h \
+ /usr/include/wchar.h /usr/include/stdio.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/wchar.h ../include/mgl/mgl_data.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/string.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h /usr/include/gif_lib.h ../include/mgl/mgl_c.h \
+ ../include/mgl/mgl_f.h /usr/include/stdint.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/zlib.h:
+
+/usr/include/zconf.h:
+
+/usr/include/zlibdefs.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+../include/mgl/mgl_eps.h:
+
+../include/mgl/mgl_ab.h:
+
+../include/mgl/mgl.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/string.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+/usr/include/gif_lib.h:
+
+../include/mgl/mgl_c.h:
+
+../include/mgl/mgl_f.h:
+
+/usr/include/stdint.h:
diff --git a/mgl/.deps/libmgl_la-mgl_eval.Plo b/mgl/.deps/libmgl_la-mgl_eval.Plo
new file mode 100644
index 0000000..10e2be0
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_eval.Plo
@@ -0,0 +1,351 @@
+libmgl_la-mgl_eval.lo: mgl_eval.cpp /usr/include/stdlib.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/xlocale.h \
+ /usr/include/sys/types.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/time.h \
+ /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/string.h \
+ /usr/include/gsl/gsl_sf.h /usr/include/gsl/gsl_sf_result.h \
+ /usr/include/gsl/gsl_sf_airy.h /usr/include/gsl/gsl_mode.h \
+ /usr/include/gsl/gsl_inline.h /usr/include/gsl/gsl_sf_bessel.h \
+ /usr/include/gsl/gsl_precision.h /usr/include/gsl/gsl_types.h \
+ /usr/include/gsl/gsl_sf_clausen.h /usr/include/gsl/gsl_sf_coupling.h \
+ /usr/include/gsl/gsl_sf_coulomb.h /usr/include/gsl/gsl_sf_dawson.h \
+ /usr/include/gsl/gsl_sf_debye.h /usr/include/gsl/gsl_sf_dilog.h \
+ /usr/include/gsl/gsl_sf_elementary.h /usr/include/gsl/gsl_sf_ellint.h \
+ /usr/include/gsl/gsl_sf_elljac.h /usr/include/gsl/gsl_sf_erf.h \
+ /usr/include/gsl/gsl_sf_exp.h /usr/include/gsl/gsl_sf_expint.h \
+ /usr/include/gsl/gsl_sf_fermi_dirac.h /usr/include/gsl/gsl_sf_gamma.h \
+ /usr/include/gsl/gsl_sf_gegenbauer.h /usr/include/gsl/gsl_sf_hyperg.h \
+ /usr/include/gsl/gsl_sf_laguerre.h /usr/include/gsl/gsl_sf_lambert.h \
+ /usr/include/gsl/gsl_sf_legendre.h /usr/include/gsl/gsl_sf_log.h \
+ /usr/include/gsl/gsl_sf_mathieu.h /usr/include/gsl/gsl_eigen.h \
+ /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_errno.h /usr/include/stdio.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ /usr/include/gsl/gsl_sf_pow_int.h /usr/include/gsl/gsl_sf_psi.h \
+ /usr/include/gsl/gsl_sf_synchrotron.h \
+ /usr/include/gsl/gsl_sf_transport.h /usr/include/gsl/gsl_sf_trig.h \
+ /usr/include/gsl/gsl_sf_zeta.h /usr/include/gsl/gsl_rng.h \
+ ../include/mgl/mgl_eval.h ../include/mgl/mgl_define.h \
+ ../include/mgl/config.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/string.h:
+
+/usr/include/gsl/gsl_sf.h:
+
+/usr/include/gsl/gsl_sf_result.h:
+
+/usr/include/gsl/gsl_sf_airy.h:
+
+/usr/include/gsl/gsl_mode.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_sf_bessel.h:
+
+/usr/include/gsl/gsl_precision.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_sf_clausen.h:
+
+/usr/include/gsl/gsl_sf_coupling.h:
+
+/usr/include/gsl/gsl_sf_coulomb.h:
+
+/usr/include/gsl/gsl_sf_dawson.h:
+
+/usr/include/gsl/gsl_sf_debye.h:
+
+/usr/include/gsl/gsl_sf_dilog.h:
+
+/usr/include/gsl/gsl_sf_elementary.h:
+
+/usr/include/gsl/gsl_sf_ellint.h:
+
+/usr/include/gsl/gsl_sf_elljac.h:
+
+/usr/include/gsl/gsl_sf_erf.h:
+
+/usr/include/gsl/gsl_sf_exp.h:
+
+/usr/include/gsl/gsl_sf_expint.h:
+
+/usr/include/gsl/gsl_sf_fermi_dirac.h:
+
+/usr/include/gsl/gsl_sf_gamma.h:
+
+/usr/include/gsl/gsl_sf_gegenbauer.h:
+
+/usr/include/gsl/gsl_sf_hyperg.h:
+
+/usr/include/gsl/gsl_sf_laguerre.h:
+
+/usr/include/gsl/gsl_sf_lambert.h:
+
+/usr/include/gsl/gsl_sf_legendre.h:
+
+/usr/include/gsl/gsl_sf_log.h:
+
+/usr/include/gsl/gsl_sf_mathieu.h:
+
+/usr/include/gsl/gsl_eigen.h:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+/usr/include/gsl/gsl_sf_pow_int.h:
+
+/usr/include/gsl/gsl_sf_psi.h:
+
+/usr/include/gsl/gsl_sf_synchrotron.h:
+
+/usr/include/gsl/gsl_sf_transport.h:
+
+/usr/include/gsl/gsl_sf_trig.h:
+
+/usr/include/gsl/gsl_sf_zeta.h:
+
+/usr/include/gsl/gsl_rng.h:
+
+../include/mgl/mgl_eval.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
diff --git a/mgl/.deps/libmgl_la-mgl_evalc.Plo b/mgl/.deps/libmgl_la-mgl_evalc.Plo
new file mode 100644
index 0000000..d61e0ce
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_evalc.Plo
@@ -0,0 +1,573 @@
+libmgl_la-mgl_evalc.lo: mgl_evalc.cpp /usr/include/stdlib.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/xlocale.h \
+ /usr/include/sys/types.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/time.h \
+ /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/string.h \
+ ../include/mgl/mgl_evalc.h /usr/include/c++/4.4/complex \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h /usr/include/c++/4.4/cmath \
+ /usr/include/c++/4.4/bits/cmath.tcc /usr/include/c++/4.4/sstream \
+ /usr/include/c++/4.4/istream /usr/include/c++/4.4/ios \
+ /usr/include/c++/4.4/iosfwd /usr/include/c++/4.4/bits/stringfwd.h \
+ /usr/include/c++/4.4/bits/postypes.h /usr/include/c++/4.4/cwchar \
+ /usr/include/c++/4.4/cstddef /usr/include/wchar.h /usr/include/stdio.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/wchar.h /usr/include/c++/4.4/exception \
+ /usr/include/c++/4.4/bits/char_traits.h \
+ /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/localefwd.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++locale.h \
+ /usr/include/c++/4.4/clocale /usr/include/locale.h \
+ /usr/include/bits/locale.h /usr/include/c++/4.4/cctype \
+ /usr/include/ctype.h /usr/include/c++/4.4/bits/ios_base.h \
+ /usr/include/c++/4.4/ext/atomicity.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h /usr/include/bits/sched.h \
+ /usr/include/signal.h /usr/include/bits/setjmp.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/atomic_word.h \
+ /usr/include/c++/4.4/bits/locale_classes.h /usr/include/c++/4.4/string \
+ /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/bits/ostream_insert.h \
+ /usr/include/c++/4.4/cxxabi-forced.h \
+ /usr/include/c++/4.4/bits/stl_function.h \
+ /usr/include/c++/4.4/backward/binders.h \
+ /usr/include/c++/4.4/bits/basic_string.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/basic_string.tcc \
+ /usr/include/c++/4.4/bits/locale_classes.tcc \
+ /usr/include/c++/4.4/streambuf /usr/include/c++/4.4/bits/streambuf.tcc \
+ /usr/include/c++/4.4/bits/basic_ios.h \
+ /usr/include/c++/4.4/bits/locale_facets.h /usr/include/c++/4.4/cwctype \
+ /usr/include/wctype.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_base.h \
+ /usr/include/c++/4.4/bits/streambuf_iterator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_inline.h \
+ /usr/include/c++/4.4/bits/locale_facets.tcc \
+ /usr/include/c++/4.4/bits/basic_ios.tcc /usr/include/c++/4.4/ostream \
+ /usr/include/c++/4.4/bits/ostream.tcc \
+ /usr/include/c++/4.4/bits/istream.tcc \
+ /usr/include/c++/4.4/bits/sstream.tcc ../include/mgl/mgl_eval.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_addon.h /usr/include/libio.h /usr/include/_G_config.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/gsl/gsl_sf.h \
+ /usr/include/gsl/gsl_sf_result.h /usr/include/gsl/gsl_sf_airy.h \
+ /usr/include/gsl/gsl_mode.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_sf_bessel.h /usr/include/gsl/gsl_precision.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_sf_clausen.h \
+ /usr/include/gsl/gsl_sf_coupling.h /usr/include/gsl/gsl_sf_coulomb.h \
+ /usr/include/gsl/gsl_sf_dawson.h /usr/include/gsl/gsl_sf_debye.h \
+ /usr/include/gsl/gsl_sf_dilog.h /usr/include/gsl/gsl_sf_elementary.h \
+ /usr/include/gsl/gsl_sf_ellint.h /usr/include/gsl/gsl_sf_elljac.h \
+ /usr/include/gsl/gsl_sf_erf.h /usr/include/gsl/gsl_sf_exp.h \
+ /usr/include/gsl/gsl_sf_expint.h /usr/include/gsl/gsl_sf_fermi_dirac.h \
+ /usr/include/gsl/gsl_sf_gamma.h /usr/include/gsl/gsl_sf_gegenbauer.h \
+ /usr/include/gsl/gsl_sf_hyperg.h /usr/include/gsl/gsl_sf_laguerre.h \
+ /usr/include/gsl/gsl_sf_lambert.h /usr/include/gsl/gsl_sf_legendre.h \
+ /usr/include/gsl/gsl_sf_log.h /usr/include/gsl/gsl_sf_mathieu.h \
+ /usr/include/gsl/gsl_eigen.h /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_errno.h /usr/include/errno.h \
+ /usr/include/bits/errno.h /usr/include/linux/errno.h \
+ /usr/include/asm/errno.h /usr/include/asm-generic/errno.h \
+ /usr/include/asm-generic/errno-base.h /usr/include/gsl/gsl_complex.h \
+ /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ /usr/include/gsl/gsl_sf_pow_int.h /usr/include/gsl/gsl_sf_psi.h \
+ /usr/include/gsl/gsl_sf_synchrotron.h \
+ /usr/include/gsl/gsl_sf_transport.h /usr/include/gsl/gsl_sf_trig.h \
+ /usr/include/gsl/gsl_sf_zeta.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/string.h:
+
+../include/mgl/mgl_evalc.h:
+
+/usr/include/c++/4.4/complex:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/cmath:
+
+/usr/include/c++/4.4/bits/cmath.tcc:
+
+/usr/include/c++/4.4/sstream:
+
+/usr/include/c++/4.4/istream:
+
+/usr/include/c++/4.4/ios:
+
+/usr/include/c++/4.4/iosfwd:
+
+/usr/include/c++/4.4/bits/stringfwd.h:
+
+/usr/include/c++/4.4/bits/postypes.h:
+
+/usr/include/c++/4.4/cwchar:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/char_traits.h:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/localefwd.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++locale.h:
+
+/usr/include/c++/4.4/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/c++/4.4/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/4.4/bits/ios_base.h:
+
+/usr/include/c++/4.4/ext/atomicity.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/atomic_word.h:
+
+/usr/include/c++/4.4/bits/locale_classes.h:
+
+/usr/include/c++/4.4/string:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/bits/ostream_insert.h:
+
+/usr/include/c++/4.4/cxxabi-forced.h:
+
+/usr/include/c++/4.4/bits/stl_function.h:
+
+/usr/include/c++/4.4/backward/binders.h:
+
+/usr/include/c++/4.4/bits/basic_string.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/basic_string.tcc:
+
+/usr/include/c++/4.4/bits/locale_classes.tcc:
+
+/usr/include/c++/4.4/streambuf:
+
+/usr/include/c++/4.4/bits/streambuf.tcc:
+
+/usr/include/c++/4.4/bits/basic_ios.h:
+
+/usr/include/c++/4.4/bits/locale_facets.h:
+
+/usr/include/c++/4.4/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_base.h:
+
+/usr/include/c++/4.4/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_inline.h:
+
+/usr/include/c++/4.4/bits/locale_facets.tcc:
+
+/usr/include/c++/4.4/bits/basic_ios.tcc:
+
+/usr/include/c++/4.4/ostream:
+
+/usr/include/c++/4.4/bits/ostream.tcc:
+
+/usr/include/c++/4.4/bits/istream.tcc:
+
+/usr/include/c++/4.4/bits/sstream.tcc:
+
+../include/mgl/mgl_eval.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_addon.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/gsl/gsl_sf.h:
+
+/usr/include/gsl/gsl_sf_result.h:
+
+/usr/include/gsl/gsl_sf_airy.h:
+
+/usr/include/gsl/gsl_mode.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_sf_bessel.h:
+
+/usr/include/gsl/gsl_precision.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_sf_clausen.h:
+
+/usr/include/gsl/gsl_sf_coupling.h:
+
+/usr/include/gsl/gsl_sf_coulomb.h:
+
+/usr/include/gsl/gsl_sf_dawson.h:
+
+/usr/include/gsl/gsl_sf_debye.h:
+
+/usr/include/gsl/gsl_sf_dilog.h:
+
+/usr/include/gsl/gsl_sf_elementary.h:
+
+/usr/include/gsl/gsl_sf_ellint.h:
+
+/usr/include/gsl/gsl_sf_elljac.h:
+
+/usr/include/gsl/gsl_sf_erf.h:
+
+/usr/include/gsl/gsl_sf_exp.h:
+
+/usr/include/gsl/gsl_sf_expint.h:
+
+/usr/include/gsl/gsl_sf_fermi_dirac.h:
+
+/usr/include/gsl/gsl_sf_gamma.h:
+
+/usr/include/gsl/gsl_sf_gegenbauer.h:
+
+/usr/include/gsl/gsl_sf_hyperg.h:
+
+/usr/include/gsl/gsl_sf_laguerre.h:
+
+/usr/include/gsl/gsl_sf_lambert.h:
+
+/usr/include/gsl/gsl_sf_legendre.h:
+
+/usr/include/gsl/gsl_sf_log.h:
+
+/usr/include/gsl/gsl_sf_mathieu.h:
+
+/usr/include/gsl/gsl_eigen.h:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+/usr/include/gsl/gsl_sf_pow_int.h:
+
+/usr/include/gsl/gsl_sf_psi.h:
+
+/usr/include/gsl/gsl_sf_synchrotron.h:
+
+/usr/include/gsl/gsl_sf_transport.h:
+
+/usr/include/gsl/gsl_sf_trig.h:
+
+/usr/include/gsl/gsl_sf_zeta.h:
diff --git a/mgl/.deps/libmgl_la-mgl_evalp.Plo b/mgl/.deps/libmgl_la-mgl_evalp.Plo
new file mode 100644
index 0000000..4ed3cb7
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_evalp.Plo
@@ -0,0 +1,441 @@
+libmgl_la-mgl_evalp.lo: mgl_evalp.cpp /usr/include/stdlib.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/xlocale.h \
+ /usr/include/sys/types.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/time.h \
+ /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/wchar.h /usr/include/stdio.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/wchar.h ../include/mgl/mgl_parse.h \
+ ../include/mgl/mgl.h ../include/mgl/mgl_data.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+ /usr/include/string.h /usr/include/c++/4.4/vector \
+ /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h /usr/include/gif_lib.h \
+ /usr/include/gsl/gsl_sf.h /usr/include/gsl/gsl_sf_result.h \
+ /usr/include/gsl/gsl_sf_airy.h /usr/include/gsl/gsl_mode.h \
+ /usr/include/gsl/gsl_sf_bessel.h /usr/include/gsl/gsl_precision.h \
+ /usr/include/gsl/gsl_sf_clausen.h /usr/include/gsl/gsl_sf_coupling.h \
+ /usr/include/gsl/gsl_sf_coulomb.h /usr/include/gsl/gsl_sf_dawson.h \
+ /usr/include/gsl/gsl_sf_debye.h /usr/include/gsl/gsl_sf_dilog.h \
+ /usr/include/gsl/gsl_sf_elementary.h /usr/include/gsl/gsl_sf_ellint.h \
+ /usr/include/gsl/gsl_sf_elljac.h /usr/include/gsl/gsl_sf_erf.h \
+ /usr/include/gsl/gsl_sf_exp.h /usr/include/gsl/gsl_sf_expint.h \
+ /usr/include/gsl/gsl_sf_fermi_dirac.h /usr/include/gsl/gsl_sf_gamma.h \
+ /usr/include/gsl/gsl_sf_gegenbauer.h /usr/include/gsl/gsl_sf_hyperg.h \
+ /usr/include/gsl/gsl_sf_laguerre.h /usr/include/gsl/gsl_sf_lambert.h \
+ /usr/include/gsl/gsl_sf_legendre.h /usr/include/gsl/gsl_sf_log.h \
+ /usr/include/gsl/gsl_sf_mathieu.h /usr/include/gsl/gsl_eigen.h \
+ /usr/include/gsl/gsl_sf_pow_int.h /usr/include/gsl/gsl_sf_psi.h \
+ /usr/include/gsl/gsl_sf_synchrotron.h \
+ /usr/include/gsl/gsl_sf_transport.h /usr/include/gsl/gsl_sf_trig.h \
+ /usr/include/gsl/gsl_sf_zeta.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+../include/mgl/mgl_parse.h:
+
+../include/mgl/mgl.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/string.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+/usr/include/gif_lib.h:
+
+/usr/include/gsl/gsl_sf.h:
+
+/usr/include/gsl/gsl_sf_result.h:
+
+/usr/include/gsl/gsl_sf_airy.h:
+
+/usr/include/gsl/gsl_mode.h:
+
+/usr/include/gsl/gsl_sf_bessel.h:
+
+/usr/include/gsl/gsl_precision.h:
+
+/usr/include/gsl/gsl_sf_clausen.h:
+
+/usr/include/gsl/gsl_sf_coupling.h:
+
+/usr/include/gsl/gsl_sf_coulomb.h:
+
+/usr/include/gsl/gsl_sf_dawson.h:
+
+/usr/include/gsl/gsl_sf_debye.h:
+
+/usr/include/gsl/gsl_sf_dilog.h:
+
+/usr/include/gsl/gsl_sf_elementary.h:
+
+/usr/include/gsl/gsl_sf_ellint.h:
+
+/usr/include/gsl/gsl_sf_elljac.h:
+
+/usr/include/gsl/gsl_sf_erf.h:
+
+/usr/include/gsl/gsl_sf_exp.h:
+
+/usr/include/gsl/gsl_sf_expint.h:
+
+/usr/include/gsl/gsl_sf_fermi_dirac.h:
+
+/usr/include/gsl/gsl_sf_gamma.h:
+
+/usr/include/gsl/gsl_sf_gegenbauer.h:
+
+/usr/include/gsl/gsl_sf_hyperg.h:
+
+/usr/include/gsl/gsl_sf_laguerre.h:
+
+/usr/include/gsl/gsl_sf_lambert.h:
+
+/usr/include/gsl/gsl_sf_legendre.h:
+
+/usr/include/gsl/gsl_sf_log.h:
+
+/usr/include/gsl/gsl_sf_mathieu.h:
+
+/usr/include/gsl/gsl_eigen.h:
+
+/usr/include/gsl/gsl_sf_pow_int.h:
+
+/usr/include/gsl/gsl_sf_psi.h:
+
+/usr/include/gsl/gsl_sf_synchrotron.h:
+
+/usr/include/gsl/gsl_sf_transport.h:
+
+/usr/include/gsl/gsl_sf_trig.h:
+
+/usr/include/gsl/gsl_sf_zeta.h:
diff --git a/mgl/.deps/libmgl_la-mgl_exec.Plo b/mgl/.deps/libmgl_la-mgl_exec.Plo
new file mode 100644
index 0000000..d4ac713
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_exec.Plo
@@ -0,0 +1,368 @@
+libmgl_la-mgl_exec.lo: mgl_exec.cpp /usr/include/wchar.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/include/stdio.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/xlocale.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h \
+ ../include/mgl/mgl_parse.h ../include/mgl/mgl.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/sys/types.h \
+ /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h ../include/mgl/mgl_data.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/string.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h /usr/include/gif_lib.h
+
+/usr/include/wchar.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+../include/mgl/mgl_parse.h:
+
+../include/mgl/mgl.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/string.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+/usr/include/gif_lib.h:
diff --git a/mgl/.deps/libmgl_la-mgl_export.Plo b/mgl/.deps/libmgl_la-mgl_export.Plo
new file mode 100644
index 0000000..71fc049
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_export.Plo
@@ -0,0 +1,397 @@
+libmgl_la-mgl_export.lo: mgl_export.cpp /usr/include/stdio.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/string.h /usr/include/xlocale.h \
+ /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h /usr/include/endian.h \
+ /usr/include/bits/endian.h /usr/include/bits/byteswap.h \
+ /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/zlib.h /usr/include/zconf.h /usr/include/zlibdefs.h \
+ /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+ /usr/include/bits/environments.h /usr/include/bits/confname.h \
+ /usr/include/getopt.h /usr/include/png.h /usr/include/zlib.h \
+ /usr/include/pngconf.h /usr/include/setjmp.h /usr/include/bits/setjmp.h \
+ /usr/include/jpeglib.h /usr/include/jconfig.h /usr/include/jmorecfg.h \
+ ../include/mgl/mgl.h /usr/include/bits/wchar.h ../include/mgl/mgl_data.h \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/c++/4.4/vector \
+ /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h /usr/include/gif_lib.h ../include/mgl/mgl_c.h \
+ ../include/mgl/mgl_f.h /usr/include/stdint.h
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/zlib.h:
+
+/usr/include/zconf.h:
+
+/usr/include/zlibdefs.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/png.h:
+
+/usr/include/zlib.h:
+
+/usr/include/pngconf.h:
+
+/usr/include/setjmp.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/jpeglib.h:
+
+/usr/include/jconfig.h:
+
+/usr/include/jmorecfg.h:
+
+../include/mgl/mgl.h:
+
+/usr/include/bits/wchar.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+/usr/include/gif_lib.h:
+
+../include/mgl/mgl_c.h:
+
+../include/mgl/mgl_f.h:
+
+/usr/include/stdint.h:
diff --git a/mgl/.deps/libmgl_la-mgl_f.Plo b/mgl/.deps/libmgl_la-mgl_f.Plo
new file mode 100644
index 0000000..eb56764
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_f.Plo
@@ -0,0 +1,360 @@
+libmgl_la-mgl_f.lo: mgl_f.cpp /usr/include/stdlib.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/xlocale.h \
+ /usr/include/sys/types.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/time.h \
+ /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h ../include/mgl/mgl_f.h /usr/include/stdint.h \
+ /usr/include/bits/wchar.h ../include/mgl/config.h ../include/mgl/mgl.h \
+ /usr/include/wchar.h /usr/include/stdio.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ ../include/mgl/mgl_data.h /usr/include/libio.h /usr/include/_G_config.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/string.h /usr/include/c++/4.4/vector \
+ /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/mgl_font.h \
+ /usr/include/gif_lib.h ../include/mgl/mgl_ab.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+../include/mgl/mgl_f.h:
+
+/usr/include/stdint.h:
+
+/usr/include/bits/wchar.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/string.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/mgl_font.h:
+
+/usr/include/gif_lib.h:
+
+../include/mgl/mgl_ab.h:
diff --git a/mgl/.deps/libmgl_la-mgl_fit.Plo b/mgl/.deps/libmgl_la-mgl_fit.Plo
new file mode 100644
index 0000000..898f30b
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_fit.Plo
@@ -0,0 +1,419 @@
+libmgl_la-mgl_fit.lo: mgl_fit.cpp /usr/include/gsl/gsl_multifit_nlin.h \
+ /usr/include/stdlib.h /usr/include/features.h \
+ /usr/include/bits/predefs.h /usr/include/sys/cdefs.h \
+ /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/xlocale.h \
+ /usr/include/sys/types.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/time.h \
+ /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/gsl/gsl_types.h \
+ /usr/include/gsl/gsl_math.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/gsl/gsl_sys.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_machine.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+ /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+ /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+ /usr/include/bits/stdio_lim.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/float.h \
+ /usr/include/gsl/gsl_precision.h /usr/include/gsl/gsl_nan.h \
+ /usr/include/gsl/gsl_pow_int.h /usr/include/gsl/gsl_minmax.h \
+ /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_errno.h /usr/include/stdio.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ /usr/include/gsl/gsl_blas.h /usr/include/gsl/gsl_blas_types.h \
+ /usr/include/gsl/gsl_cblas.h /usr/include/ctype.h \
+ ../include/mgl/mgl_eval.h ../include/mgl/mgl_define.h \
+ ../include/mgl/config.h ../include/mgl/mgl.h /usr/include/bits/wchar.h \
+ ../include/mgl/mgl_data.h /usr/include/string.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc ../include/mgl/mgl_font.h \
+ /usr/include/gif_lib.h ../include/mgl/mgl_c.h ../include/mgl/mgl_f.h \
+ /usr/include/stdint.h
+
+/usr/include/gsl/gsl_multifit_nlin.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_math.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/gsl/gsl_sys.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_machine.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/float.h:
+
+/usr/include/gsl/gsl_precision.h:
+
+/usr/include/gsl/gsl_nan.h:
+
+/usr/include/gsl/gsl_pow_int.h:
+
+/usr/include/gsl/gsl_minmax.h:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+/usr/include/gsl/gsl_blas.h:
+
+/usr/include/gsl/gsl_blas_types.h:
+
+/usr/include/gsl/gsl_cblas.h:
+
+/usr/include/ctype.h:
+
+../include/mgl/mgl_eval.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl.h:
+
+/usr/include/bits/wchar.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/string.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+../include/mgl/mgl_font.h:
+
+/usr/include/gif_lib.h:
+
+../include/mgl/mgl_c.h:
+
+../include/mgl/mgl_f.h:
+
+/usr/include/stdint.h:
diff --git a/mgl/.deps/libmgl_la-mgl_flow.Plo b/mgl/.deps/libmgl_la-mgl_flow.Plo
new file mode 100644
index 0000000..a03be43
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_flow.Plo
@@ -0,0 +1,360 @@
+libmgl_la-mgl_flow.lo: mgl_flow.cpp /usr/include/stdlib.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/xlocale.h \
+ /usr/include/sys/types.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/time.h \
+ /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h ../include/mgl/mgl.h /usr/include/wchar.h \
+ /usr/include/stdio.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/wchar.h ../include/mgl/mgl_data.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/string.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h /usr/include/gif_lib.h ../include/mgl/mgl_c.h \
+ ../include/mgl/mgl_f.h /usr/include/stdint.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+../include/mgl/mgl.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/string.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+/usr/include/gif_lib.h:
+
+../include/mgl/mgl_c.h:
+
+../include/mgl/mgl_f.h:
+
+/usr/include/stdint.h:
diff --git a/mgl/.deps/libmgl_la-mgl_font.Plo b/mgl/.deps/libmgl_la-mgl_font.Plo
new file mode 100644
index 0000000..f200074
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_font.Plo
@@ -0,0 +1,382 @@
+libmgl_la-mgl_font.lo: mgl_font.cpp /usr/include/stdlib.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/xlocale.h \
+ /usr/include/sys/types.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/time.h \
+ /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/locale.h /usr/include/bits/locale.h \
+ /usr/include/ctype.h /usr/include/wctype.h /usr/include/zlib.h \
+ /usr/include/zconf.h /usr/include/zlibdefs.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h /usr/include/wchar.h \
+ /usr/include/stdio.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/wchar.h ../include/mgl/mgl.h ../include/mgl/mgl_data.h \
+ /usr/include/libio.h /usr/include/_G_config.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/string.h /usr/include/c++/4.4/vector \
+ /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h /usr/include/gif_lib.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/ctype.h:
+
+/usr/include/wctype.h:
+
+/usr/include/zlib.h:
+
+/usr/include/zconf.h:
+
+/usr/include/zlibdefs.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+../include/mgl/mgl.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/string.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+/usr/include/gif_lib.h:
diff --git a/mgl/.deps/libmgl_la-mgl_gl.Plo b/mgl/.deps/libmgl_la-mgl_gl.Plo
new file mode 100644
index 0000000..7644eb7
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_gl.Plo
@@ -0,0 +1,372 @@
+libmgl_la-mgl_gl.lo: mgl_gl.cpp /usr/include/stdlib.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/xlocale.h \
+ /usr/include/sys/types.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/time.h \
+ /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/wchar.h /usr/include/stdio.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/wchar.h ../include/mgl/mgl_gl.h /usr/include/GL/gl.h \
+ /usr/include/GL/glext.h /usr/include/inttypes.h /usr/include/stdint.h \
+ ../include/mgl/mgl_ab.h ../include/mgl/mgl.h ../include/mgl/mgl_data.h \
+ /usr/include/libio.h /usr/include/_G_config.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/string.h /usr/include/c++/4.4/vector \
+ /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h /usr/include/gif_lib.h ../include/mgl/mgl_c.h \
+ ../include/mgl/mgl_f.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+../include/mgl/mgl_gl.h:
+
+/usr/include/GL/gl.h:
+
+/usr/include/GL/glext.h:
+
+/usr/include/inttypes.h:
+
+/usr/include/stdint.h:
+
+../include/mgl/mgl_ab.h:
+
+../include/mgl/mgl.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/string.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+/usr/include/gif_lib.h:
+
+../include/mgl/mgl_c.h:
+
+../include/mgl/mgl_f.h:
diff --git a/mgl/.deps/libmgl_la-mgl_idtf.Plo b/mgl/.deps/libmgl_la-mgl_idtf.Plo
new file mode 100644
index 0000000..66d50ae
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_idtf.Plo
@@ -0,0 +1,549 @@
+libmgl_la-mgl_idtf.lo: mgl_idtf.cpp ../include/mgl/mgl_c.h \
+ ../include/mgl/config.h /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h /usr/include/stdlib.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/xlocale.h \
+ /usr/include/sys/types.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/time.h \
+ /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/gsl/gsl_types.h \
+ /usr/include/gsl/gsl_errno.h /usr/include/stdio.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_f.h /usr/include/stdint.h /usr/include/bits/wchar.h \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/string.h \
+ /usr/include/memory.h ../include/mgl/mgl_idtf.h \
+ /usr/include/c++/4.4/list /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_list.h \
+ /usr/include/c++/4.4/initializer_list /usr/include/c++/4.4/bits/list.tcc \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/c++/4.4/deque \
+ /usr/include/c++/4.4/bits/stl_deque.h \
+ /usr/include/c++/4.4/bits/deque.tcc /usr/include/c++/4.4/string \
+ /usr/include/c++/4.4/bits/stringfwd.h \
+ /usr/include/c++/4.4/bits/char_traits.h \
+ /usr/include/c++/4.4/bits/postypes.h /usr/include/c++/4.4/cwchar \
+ /usr/include/c++/4.4/bits/localefwd.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++locale.h \
+ /usr/include/c++/4.4/clocale /usr/include/locale.h \
+ /usr/include/bits/locale.h /usr/include/c++/4.4/iosfwd \
+ /usr/include/c++/4.4/cctype /usr/include/ctype.h \
+ /usr/include/c++/4.4/bits/ostream_insert.h \
+ /usr/include/c++/4.4/cxxabi-forced.h \
+ /usr/include/c++/4.4/bits/stl_function.h \
+ /usr/include/c++/4.4/backward/binders.h \
+ /usr/include/c++/4.4/bits/basic_string.h \
+ /usr/include/c++/4.4/ext/atomicity.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h /usr/include/bits/sched.h \
+ /usr/include/signal.h /usr/include/bits/setjmp.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/atomic_word.h \
+ /usr/include/c++/4.4/bits/basic_string.tcc /usr/include/c++/4.4/sstream \
+ /usr/include/c++/4.4/istream /usr/include/c++/4.4/ios \
+ /usr/include/c++/4.4/bits/ios_base.h \
+ /usr/include/c++/4.4/bits/locale_classes.h \
+ /usr/include/c++/4.4/bits/locale_classes.tcc \
+ /usr/include/c++/4.4/streambuf /usr/include/c++/4.4/bits/streambuf.tcc \
+ /usr/include/c++/4.4/bits/basic_ios.h \
+ /usr/include/c++/4.4/bits/locale_facets.h /usr/include/c++/4.4/cwctype \
+ /usr/include/wctype.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_base.h \
+ /usr/include/c++/4.4/bits/streambuf_iterator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_inline.h \
+ /usr/include/c++/4.4/bits/locale_facets.tcc \
+ /usr/include/c++/4.4/bits/basic_ios.tcc /usr/include/c++/4.4/ostream \
+ /usr/include/c++/4.4/bits/ostream.tcc \
+ /usr/include/c++/4.4/bits/istream.tcc \
+ /usr/include/c++/4.4/bits/sstream.tcc /usr/include/c++/4.4/iostream \
+ /usr/include/c++/4.4/fstream /usr/include/c++/4.4/bits/codecvt.h \
+ /usr/include/c++/4.4/cstdio \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/basic_file.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++io.h \
+ /usr/include/c++/4.4/bits/fstream.tcc ../include/mgl/mgl_ab.h \
+ ../include/mgl/mgl.h ../include/mgl/mgl_data.h \
+ ../include/mgl/mgl_define.h ../include/mgl/mgl_font.h \
+ /usr/include/gif_lib.h /usr/include/c++/4.4/iomanip
+
+../include/mgl/mgl_c.h:
+
+../include/mgl/config.h:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_f.h:
+
+/usr/include/stdint.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/string.h:
+
+/usr/include/memory.h:
+
+../include/mgl/mgl_idtf.h:
+
+/usr/include/c++/4.4/list:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_list.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/list.tcc:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/c++/4.4/deque:
+
+/usr/include/c++/4.4/bits/stl_deque.h:
+
+/usr/include/c++/4.4/bits/deque.tcc:
+
+/usr/include/c++/4.4/string:
+
+/usr/include/c++/4.4/bits/stringfwd.h:
+
+/usr/include/c++/4.4/bits/char_traits.h:
+
+/usr/include/c++/4.4/bits/postypes.h:
+
+/usr/include/c++/4.4/cwchar:
+
+/usr/include/c++/4.4/bits/localefwd.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++locale.h:
+
+/usr/include/c++/4.4/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/c++/4.4/iosfwd:
+
+/usr/include/c++/4.4/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/4.4/bits/ostream_insert.h:
+
+/usr/include/c++/4.4/cxxabi-forced.h:
+
+/usr/include/c++/4.4/bits/stl_function.h:
+
+/usr/include/c++/4.4/backward/binders.h:
+
+/usr/include/c++/4.4/bits/basic_string.h:
+
+/usr/include/c++/4.4/ext/atomicity.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/atomic_word.h:
+
+/usr/include/c++/4.4/bits/basic_string.tcc:
+
+/usr/include/c++/4.4/sstream:
+
+/usr/include/c++/4.4/istream:
+
+/usr/include/c++/4.4/ios:
+
+/usr/include/c++/4.4/bits/ios_base.h:
+
+/usr/include/c++/4.4/bits/locale_classes.h:
+
+/usr/include/c++/4.4/bits/locale_classes.tcc:
+
+/usr/include/c++/4.4/streambuf:
+
+/usr/include/c++/4.4/bits/streambuf.tcc:
+
+/usr/include/c++/4.4/bits/basic_ios.h:
+
+/usr/include/c++/4.4/bits/locale_facets.h:
+
+/usr/include/c++/4.4/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_base.h:
+
+/usr/include/c++/4.4/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_inline.h:
+
+/usr/include/c++/4.4/bits/locale_facets.tcc:
+
+/usr/include/c++/4.4/bits/basic_ios.tcc:
+
+/usr/include/c++/4.4/ostream:
+
+/usr/include/c++/4.4/bits/ostream.tcc:
+
+/usr/include/c++/4.4/bits/istream.tcc:
+
+/usr/include/c++/4.4/bits/sstream.tcc:
+
+/usr/include/c++/4.4/iostream:
+
+/usr/include/c++/4.4/fstream:
+
+/usr/include/c++/4.4/bits/codecvt.h:
+
+/usr/include/c++/4.4/cstdio:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/basic_file.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++io.h:
+
+/usr/include/c++/4.4/bits/fstream.tcc:
+
+../include/mgl/mgl_ab.h:
+
+../include/mgl/mgl.h:
+
+../include/mgl/mgl_data.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/mgl_font.h:
+
+/usr/include/gif_lib.h:
+
+/usr/include/c++/4.4/iomanip:
diff --git a/mgl/.deps/libmgl_la-mgl_main.Plo b/mgl/.deps/libmgl_la-mgl_main.Plo
new file mode 100644
index 0000000..d42a51f
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_main.Plo
@@ -0,0 +1,368 @@
+libmgl_la-mgl_main.lo: mgl_main.cpp /usr/include/stdlib.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/xlocale.h \
+ /usr/include/sys/types.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/time.h \
+ /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/wchar.h /usr/include/stdio.h /usr/include/bits/wchar.h \
+ ../include/mgl/mgl.h ../include/mgl/mgl_data.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/string.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h /usr/include/gif_lib.h \
+ ../include/mgl/mgl_eval.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/wchar.h:
+
+../include/mgl/mgl.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/string.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+/usr/include/gif_lib.h:
+
+../include/mgl/mgl_eval.h:
diff --git a/mgl/.deps/libmgl_la-mgl_parse.Plo b/mgl/.deps/libmgl_la-mgl_parse.Plo
new file mode 100644
index 0000000..38f905b
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_parse.Plo
@@ -0,0 +1,377 @@
+libmgl_la-mgl_parse.lo: mgl_parse.cpp /usr/include/stdlib.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/xlocale.h \
+ /usr/include/sys/types.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/time.h \
+ /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/ctype.h /usr/include/wchar.h \
+ /usr/include/stdio.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/wchar.h ../include/mgl/mgl_parse.h \
+ ../include/mgl/mgl.h ../include/mgl/mgl_data.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/string.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h /usr/include/gif_lib.h ../include/mgl/mgl_c.h \
+ ../include/mgl/mgl_f.h /usr/include/stdint.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/ctype.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+../include/mgl/mgl_parse.h:
+
+../include/mgl/mgl.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/string.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+/usr/include/gif_lib.h:
+
+../include/mgl/mgl_c.h:
+
+../include/mgl/mgl_f.h:
+
+/usr/include/stdint.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
diff --git a/mgl/.deps/libmgl_la-mgl_pde.Plo b/mgl/.deps/libmgl_la-mgl_pde.Plo
new file mode 100644
index 0000000..32f53e8
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_pde.Plo
@@ -0,0 +1,561 @@
+libmgl_la-mgl_pde.lo: mgl_pde.cpp ../include/mgl/mgl_eval.h \
+ /usr/include/math.h /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_data.h /usr/include/stdio.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/string.h /usr/include/xlocale.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/sys/types.h \
+ /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/gsl/gsl_types.h \
+ /usr/include/gsl/gsl_errno.h /usr/include/errno.h \
+ /usr/include/bits/errno.h /usr/include/linux/errno.h \
+ /usr/include/asm/errno.h /usr/include/asm-generic/errno.h \
+ /usr/include/asm-generic/errno-base.h /usr/include/gsl/gsl_complex.h \
+ /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl.h /usr/include/bits/wchar.h ../include/mgl/mgl_font.h \
+ /usr/include/gif_lib.h ../include/mgl/mgl_c.h ../include/mgl/mgl_f.h \
+ /usr/include/stdint.h /usr/include/c++/4.4/complex \
+ /usr/include/c++/4.4/cmath /usr/include/c++/4.4/bits/cmath.tcc \
+ /usr/include/c++/4.4/sstream /usr/include/c++/4.4/istream \
+ /usr/include/c++/4.4/ios /usr/include/c++/4.4/iosfwd \
+ /usr/include/c++/4.4/bits/stringfwd.h \
+ /usr/include/c++/4.4/bits/postypes.h /usr/include/c++/4.4/cwchar \
+ /usr/include/c++/4.4/bits/char_traits.h \
+ /usr/include/c++/4.4/bits/localefwd.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++locale.h \
+ /usr/include/c++/4.4/clocale /usr/include/locale.h \
+ /usr/include/bits/locale.h /usr/include/c++/4.4/cctype \
+ /usr/include/ctype.h /usr/include/c++/4.4/bits/ios_base.h \
+ /usr/include/c++/4.4/ext/atomicity.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h /usr/include/bits/sched.h \
+ /usr/include/signal.h /usr/include/bits/setjmp.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/atomic_word.h \
+ /usr/include/c++/4.4/bits/locale_classes.h /usr/include/c++/4.4/string \
+ /usr/include/c++/4.4/bits/ostream_insert.h \
+ /usr/include/c++/4.4/cxxabi-forced.h \
+ /usr/include/c++/4.4/bits/stl_function.h \
+ /usr/include/c++/4.4/backward/binders.h \
+ /usr/include/c++/4.4/bits/basic_string.h \
+ /usr/include/c++/4.4/bits/basic_string.tcc \
+ /usr/include/c++/4.4/bits/locale_classes.tcc \
+ /usr/include/c++/4.4/streambuf /usr/include/c++/4.4/bits/streambuf.tcc \
+ /usr/include/c++/4.4/bits/basic_ios.h \
+ /usr/include/c++/4.4/bits/locale_facets.h /usr/include/c++/4.4/cwctype \
+ /usr/include/wctype.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_base.h \
+ /usr/include/c++/4.4/bits/streambuf_iterator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_inline.h \
+ /usr/include/c++/4.4/bits/locale_facets.tcc \
+ /usr/include/c++/4.4/bits/basic_ios.tcc /usr/include/c++/4.4/ostream \
+ /usr/include/c++/4.4/bits/ostream.tcc \
+ /usr/include/c++/4.4/bits/istream.tcc \
+ /usr/include/c++/4.4/bits/sstream.tcc /usr/include/gsl/gsl_fft_complex.h \
+ /usr/include/gsl/gsl_math.h /usr/include/gsl/gsl_sys.h \
+ /usr/include/gsl/gsl_machine.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+ /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+ /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/float.h \
+ /usr/include/gsl/gsl_precision.h /usr/include/gsl/gsl_nan.h \
+ /usr/include/gsl/gsl_pow_int.h /usr/include/gsl/gsl_minmax.h \
+ /usr/include/gsl/gsl_fft.h
+
+../include/mgl/mgl_eval.h:
+
+/usr/include/math.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl.h:
+
+/usr/include/bits/wchar.h:
+
+../include/mgl/mgl_font.h:
+
+/usr/include/gif_lib.h:
+
+../include/mgl/mgl_c.h:
+
+../include/mgl/mgl_f.h:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.4/complex:
+
+/usr/include/c++/4.4/cmath:
+
+/usr/include/c++/4.4/bits/cmath.tcc:
+
+/usr/include/c++/4.4/sstream:
+
+/usr/include/c++/4.4/istream:
+
+/usr/include/c++/4.4/ios:
+
+/usr/include/c++/4.4/iosfwd:
+
+/usr/include/c++/4.4/bits/stringfwd.h:
+
+/usr/include/c++/4.4/bits/postypes.h:
+
+/usr/include/c++/4.4/cwchar:
+
+/usr/include/c++/4.4/bits/char_traits.h:
+
+/usr/include/c++/4.4/bits/localefwd.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++locale.h:
+
+/usr/include/c++/4.4/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/c++/4.4/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/4.4/bits/ios_base.h:
+
+/usr/include/c++/4.4/ext/atomicity.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/atomic_word.h:
+
+/usr/include/c++/4.4/bits/locale_classes.h:
+
+/usr/include/c++/4.4/string:
+
+/usr/include/c++/4.4/bits/ostream_insert.h:
+
+/usr/include/c++/4.4/cxxabi-forced.h:
+
+/usr/include/c++/4.4/bits/stl_function.h:
+
+/usr/include/c++/4.4/backward/binders.h:
+
+/usr/include/c++/4.4/bits/basic_string.h:
+
+/usr/include/c++/4.4/bits/basic_string.tcc:
+
+/usr/include/c++/4.4/bits/locale_classes.tcc:
+
+/usr/include/c++/4.4/streambuf:
+
+/usr/include/c++/4.4/bits/streambuf.tcc:
+
+/usr/include/c++/4.4/bits/basic_ios.h:
+
+/usr/include/c++/4.4/bits/locale_facets.h:
+
+/usr/include/c++/4.4/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_base.h:
+
+/usr/include/c++/4.4/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_inline.h:
+
+/usr/include/c++/4.4/bits/locale_facets.tcc:
+
+/usr/include/c++/4.4/bits/basic_ios.tcc:
+
+/usr/include/c++/4.4/ostream:
+
+/usr/include/c++/4.4/bits/ostream.tcc:
+
+/usr/include/c++/4.4/bits/istream.tcc:
+
+/usr/include/c++/4.4/bits/sstream.tcc:
+
+/usr/include/gsl/gsl_fft_complex.h:
+
+/usr/include/gsl/gsl_math.h:
+
+/usr/include/gsl/gsl_sys.h:
+
+/usr/include/gsl/gsl_machine.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/float.h:
+
+/usr/include/gsl/gsl_precision.h:
+
+/usr/include/gsl/gsl_nan.h:
+
+/usr/include/gsl/gsl_pow_int.h:
+
+/usr/include/gsl/gsl_minmax.h:
+
+/usr/include/gsl/gsl_fft.h:
diff --git a/mgl/.deps/libmgl_la-mgl_tex_table.Plo b/mgl/.deps/libmgl_la-mgl_tex_table.Plo
new file mode 100644
index 0000000..dddae03
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_tex_table.Plo
@@ -0,0 +1,73 @@
+libmgl_la-mgl_tex_table.lo: mgl_tex_table.cpp ../include/mgl/mgl_font.h \
+ /usr/include/stdio.h /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h ../include/mgl/mgl_define.h \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h ../include/mgl/config.h
+
+../include/mgl/mgl_font.h:
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+../include/mgl/mgl_define.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+../include/mgl/config.h:
diff --git a/mgl/.deps/libmgl_la-mgl_vect.Plo b/mgl/.deps/libmgl_la-mgl_vect.Plo
new file mode 100644
index 0000000..20da121
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_vect.Plo
@@ -0,0 +1,360 @@
+libmgl_la-mgl_vect.lo: mgl_vect.cpp ../include/mgl/mgl.h \
+ /usr/include/wchar.h /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/include/stdio.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/xlocale.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/sys/types.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h ../include/mgl/mgl_data.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/string.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h /usr/include/gif_lib.h ../include/mgl/mgl_c.h \
+ ../include/mgl/mgl_f.h /usr/include/stdint.h
+
+../include/mgl/mgl.h:
+
+/usr/include/wchar.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/string.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+/usr/include/gif_lib.h:
+
+../include/mgl/mgl_c.h:
+
+../include/mgl/mgl_f.h:
+
+/usr/include/stdint.h:
diff --git a/mgl/.deps/libmgl_la-mgl_zb.Plo b/mgl/.deps/libmgl_la-mgl_zb.Plo
new file mode 100644
index 0000000..741338b
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_zb.Plo
@@ -0,0 +1,364 @@
+libmgl_la-mgl_zb.lo: mgl_zb.cpp /usr/include/stdlib.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/xlocale.h \
+ /usr/include/sys/types.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/time.h \
+ /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h ../include/mgl/mgl_zb.h ../include/mgl/mgl_ab.h \
+ ../include/mgl/mgl.h /usr/include/wchar.h /usr/include/stdio.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/wchar.h ../include/mgl/mgl_data.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/string.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h /usr/include/gif_lib.h ../include/mgl/mgl_c.h \
+ ../include/mgl/mgl_f.h /usr/include/stdint.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+../include/mgl/mgl_zb.h:
+
+../include/mgl/mgl_ab.h:
+
+../include/mgl/mgl.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/string.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+/usr/include/gif_lib.h:
+
+../include/mgl/mgl_c.h:
+
+../include/mgl/mgl_f.h:
+
+/usr/include/stdint.h:
diff --git a/mgl/.deps/libmgl_la-mgl_zb2.Plo b/mgl/.deps/libmgl_la-mgl_zb2.Plo
new file mode 100644
index 0000000..af168c7
--- /dev/null
+++ b/mgl/.deps/libmgl_la-mgl_zb2.Plo
@@ -0,0 +1,355 @@
+libmgl_la-mgl_zb2.lo: mgl_zb2.cpp ../include/mgl/mgl_ab.h \
+ ../include/mgl/mgl.h /usr/include/wchar.h /usr/include/features.h \
+ /usr/include/bits/predefs.h /usr/include/sys/cdefs.h \
+ /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-64.h /usr/include/stdio.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/xlocale.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/sys/types.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h ../include/mgl/mgl_data.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+ /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/string.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h /usr/include/gif_lib.h
+
+../include/mgl/mgl_ab.h:
+
+../include/mgl/mgl.h:
+
+/usr/include/wchar.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/string.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+/usr/include/gif_lib.h:
diff --git a/mgl/.libs/libmgl.a b/mgl/.libs/libmgl.a
new file mode 100644
index 0000000..3cf51c1
Binary files /dev/null and b/mgl/.libs/libmgl.a differ
diff --git a/mgl/.libs/libmgl.la b/mgl/.libs/libmgl.la
new file mode 120000
index 0000000..75b80f6
--- /dev/null
+++ b/mgl/.libs/libmgl.la
@@ -0,0 +1 @@
+../libmgl.la
\ No newline at end of file
diff --git a/mgl/.libs/libmgl.lai b/mgl/.libs/libmgl.lai
new file mode 100644
index 0000000..c03aae9
--- /dev/null
+++ b/mgl/.libs/libmgl.lai
@@ -0,0 +1,41 @@
+# libmgl.la - a libtool library file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libmgl.so.5'
+
+# Names of this library.
+library_names='libmgl.so.5.0.0 libmgl.so.5 libmgl.so'
+
+# The name of the static archive.
+old_library='libmgl.a'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -R/tmp/buildd/libhdf4-4.2r4/HDF4/mfhdf/libsrc/.libs -R/tmp/buildd/libhdf4-4.2r4/HDF4/hdf/src/.libs -lpng -lGL -L/usr/lib -lgsl -lgslcblas /usr/lib/libmfhdf.la /usr/lib/libdf.la /usr/lib/libhdf5.la -lpthread -lz /usr/lib/libgif.la /usr/lib/libjpeg.la'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libmgl.
+current=5
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=yes
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/lib'
diff --git a/mgl/.libs/libmgl.so b/mgl/.libs/libmgl.so
new file mode 120000
index 0000000..3b755b8
--- /dev/null
+++ b/mgl/.libs/libmgl.so
@@ -0,0 +1 @@
+libmgl.so.5.0.0
\ No newline at end of file
diff --git a/mgl/.libs/libmgl.so.5 b/mgl/.libs/libmgl.so.5
new file mode 120000
index 0000000..3b755b8
--- /dev/null
+++ b/mgl/.libs/libmgl.so.5
@@ -0,0 +1 @@
+libmgl.so.5.0.0
\ No newline at end of file
diff --git a/mgl/.libs/libmgl.so.5.0.0 b/mgl/.libs/libmgl.so.5.0.0
new file mode 100755
index 0000000..a9b358a
Binary files /dev/null and b/mgl/.libs/libmgl.so.5.0.0 differ
diff --git a/mgl/.libs/libmgl_la-mgl_1d.o b/mgl/.libs/libmgl_la-mgl_1d.o
new file mode 100644
index 0000000..2e5c5cd
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_1d.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_2d.o b/mgl/.libs/libmgl_la-mgl_2d.o
new file mode 100644
index 0000000..ca9a937
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_2d.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_3d.o b/mgl/.libs/libmgl_la-mgl_3d.o
new file mode 100644
index 0000000..556c3d2
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_3d.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_ab.o b/mgl/.libs/libmgl_la-mgl_ab.o
new file mode 100644
index 0000000..1ea1545
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_ab.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_addon.o b/mgl/.libs/libmgl_la-mgl_addon.o
new file mode 100644
index 0000000..bf4eeea
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_addon.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_axis.o b/mgl/.libs/libmgl_la-mgl_axis.o
new file mode 100644
index 0000000..0b66600
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_axis.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_c.o b/mgl/.libs/libmgl_la-mgl_c.o
new file mode 100644
index 0000000..2e30778
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_c.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_combi.o b/mgl/.libs/libmgl_la-mgl_combi.o
new file mode 100644
index 0000000..04f68fd
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_combi.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_cont.o b/mgl/.libs/libmgl_la-mgl_cont.o
new file mode 100644
index 0000000..f2c3a28
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_cont.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_crust.o b/mgl/.libs/libmgl_la-mgl_crust.o
new file mode 100644
index 0000000..17925f5
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_crust.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_data.o b/mgl/.libs/libmgl_la-mgl_data.o
new file mode 100644
index 0000000..70f6107
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_data.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_data_cf.o b/mgl/.libs/libmgl_la-mgl_data_cf.o
new file mode 100644
index 0000000..e86fc82
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_data_cf.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_data_io.o b/mgl/.libs/libmgl_la-mgl_data_io.o
new file mode 100644
index 0000000..bff073f
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_data_io.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_data_png.o b/mgl/.libs/libmgl_la-mgl_data_png.o
new file mode 100644
index 0000000..f30a34a
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_data_png.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_def_font.o b/mgl/.libs/libmgl_la-mgl_def_font.o
new file mode 100644
index 0000000..095a0d0
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_def_font.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_eps.o b/mgl/.libs/libmgl_la-mgl_eps.o
new file mode 100644
index 0000000..310fdbc
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_eps.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_eval.o b/mgl/.libs/libmgl_la-mgl_eval.o
new file mode 100644
index 0000000..059c124
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_eval.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_evalc.o b/mgl/.libs/libmgl_la-mgl_evalc.o
new file mode 100644
index 0000000..c6e8058
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_evalc.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_evalp.o b/mgl/.libs/libmgl_la-mgl_evalp.o
new file mode 100644
index 0000000..c949d13
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_evalp.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_exec.o b/mgl/.libs/libmgl_la-mgl_exec.o
new file mode 100644
index 0000000..4f5abd9
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_exec.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_export.o b/mgl/.libs/libmgl_la-mgl_export.o
new file mode 100644
index 0000000..5711a5c
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_export.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_f.o b/mgl/.libs/libmgl_la-mgl_f.o
new file mode 100644
index 0000000..0369171
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_f.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_fit.o b/mgl/.libs/libmgl_la-mgl_fit.o
new file mode 100644
index 0000000..8702e8f
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_fit.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_flow.o b/mgl/.libs/libmgl_la-mgl_flow.o
new file mode 100644
index 0000000..0ed320c
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_flow.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_font.o b/mgl/.libs/libmgl_la-mgl_font.o
new file mode 100644
index 0000000..22bf752
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_font.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_gl.o b/mgl/.libs/libmgl_la-mgl_gl.o
new file mode 100644
index 0000000..4deb629
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_gl.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_idtf.o b/mgl/.libs/libmgl_la-mgl_idtf.o
new file mode 100644
index 0000000..e1c7d46
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_idtf.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_main.o b/mgl/.libs/libmgl_la-mgl_main.o
new file mode 100644
index 0000000..125d3da
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_main.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_parse.o b/mgl/.libs/libmgl_la-mgl_parse.o
new file mode 100644
index 0000000..761f520
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_parse.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_pde.o b/mgl/.libs/libmgl_la-mgl_pde.o
new file mode 100644
index 0000000..f09eb81
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_pde.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_tex_table.o b/mgl/.libs/libmgl_la-mgl_tex_table.o
new file mode 100644
index 0000000..65ffd93
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_tex_table.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_vect.o b/mgl/.libs/libmgl_la-mgl_vect.o
new file mode 100644
index 0000000..83fc174
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_vect.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_zb.o b/mgl/.libs/libmgl_la-mgl_zb.o
new file mode 100644
index 0000000..8af9a19
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_zb.o differ
diff --git a/mgl/.libs/libmgl_la-mgl_zb2.o b/mgl/.libs/libmgl_la-mgl_zb2.o
new file mode 100644
index 0000000..91d7dfe
Binary files /dev/null and b/mgl/.libs/libmgl_la-mgl_zb2.o differ
diff --git a/mgl/Makefile b/mgl/Makefile
new file mode 100644
index 0000000..61121b8
--- /dev/null
+++ b/mgl/Makefile
@@ -0,0 +1,909 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# mgl/Makefile.  Generated from Makefile.in by configure.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+
+pkgdatadir = $(datadir)/mathgl
+pkgincludedir = $(includedir)/mathgl
+pkglibdir = $(libdir)/mathgl
+pkglibexecdir = $(libexecdir)/mathgl
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-pc-linux-gnu
+host_triplet = x86_64-pc-linux-gnu
+am__append_1 = -DWITH_QT
+am__append_2 = -DWITH_WX
+am__append_3 = -DWITH_FLTK
+am__append_4 = -DWITH_GLUT
+am__append_5 = $(PTHREAD_LIBS)
+am__append_6 = $(GSL_LIBS)
+am__append_7 = $(HDF4_LIBS)
+am__append_8 = $(HDF5_LIBS)
+am__append_9 = $(GIF_LIBS)
+am__append_10 = $(JPEG_LIBS)
+subdir = mgl
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
+	$(top_srcdir)/config/libtool.m4 \
+	$(top_srcdir)/config/ltoptions.m4 \
+	$(top_srcdir)/config/ltsugar.m4 \
+	$(top_srcdir)/config/ltversion.m4 \
+	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/include/mgl/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(libdir)"
+LTLIBRARIES = $(lib_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
+am__DEPENDENCIES_3 = $(am__DEPENDENCIES_1)
+am__DEPENDENCIES_4 = $(am__DEPENDENCIES_1)
+am__DEPENDENCIES_5 = $(am__DEPENDENCIES_1)
+am__DEPENDENCIES_6 = $(am__DEPENDENCIES_1)
+am__DEPENDENCIES_7 = $(am__DEPENDENCIES_1)
+libmgl_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3) \
+	$(am__DEPENDENCIES_4) $(am__DEPENDENCIES_5) \
+	$(am__DEPENDENCIES_6) $(am__DEPENDENCIES_7)
+am_libmgl_la_OBJECTS = libmgl_la-mgl_data_cf.lo libmgl_la-mgl_axis.lo \
+	libmgl_la-mgl_data_png.lo libmgl_la-mgl_zb2.lo \
+	libmgl_la-mgl_c.lo libmgl_la-mgl_eps.lo libmgl_la-mgl_font.lo \
+	libmgl_la-mgl_zb.lo libmgl_la-mgl_combi.lo \
+	libmgl_la-mgl_eval.lo libmgl_la-mgl_gl.lo \
+	libmgl_la-mgl_def_font.lo libmgl_la-mgl_1d.lo \
+	libmgl_la-mgl_cont.lo libmgl_la-mgl_exec.lo \
+	libmgl_la-mgl_tex_table.lo libmgl_la-mgl_2d.lo \
+	libmgl_la-mgl_crust.lo libmgl_la-mgl_export.lo \
+	libmgl_la-mgl_main.lo libmgl_la-mgl_3d.lo \
+	libmgl_la-mgl_data.lo libmgl_la-mgl_f.lo libmgl_la-mgl_idtf.lo \
+	libmgl_la-mgl_ab.lo libmgl_la-mgl_data_io.lo \
+	libmgl_la-mgl_flow.lo libmgl_la-mgl_vect.lo \
+	libmgl_la-mgl_parse.lo libmgl_la-mgl_fit.lo \
+	libmgl_la-mgl_pde.lo libmgl_la-mgl_evalc.lo \
+	libmgl_la-mgl_addon.lo libmgl_la-mgl_evalp.lo
+libmgl_la_OBJECTS = $(am_libmgl_la_OBJECTS)
+libmgl_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(libmgl_la_CXXFLAGS) \
+	$(CXXFLAGS) $(libmgl_la_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/include/mgl
+depcomp = $(SHELL) $(top_srcdir)/config/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = $(libmgl_la_SOURCES)
+DIST_SOURCES = $(libmgl_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run aclocal-1.11
+AMTAR = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run tar
+AM_CXXFLAGS = -Wall -I/usr/include -I$(top_srcdir)/include \
+	-I$(top_builddir)/include
+AR = ar
+AS = as
+AUTOCONF = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run automake-1.11
+AWK = gawk
+CC = x86_64-linux-gnu-gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -Wall -g -O2
+CPP = x86_64-linux-gnu-gcc -E
+CPPFLAGS = 
+CXX = x86_64-linux-gnu-g++
+CXXCPP = x86_64-linux-gnu-g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DLLTOOL = dlltool
+DSYMUTIL = 
+DUMPBIN = 
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /bin/grep -E
+EXEEXT = 
+FGREP = /bin/grep -F
+FLTK_FLAGS = -I/usr/include/freetype2 -g -O2 -D_THREAD_SAFE -D_REENTRANT
+FLTK_LIBS = -lfltk
+GIF_FLAGS = -DHAVE_GIF
+GIF_LIBS = -lgif
+GLUT_FLAGS = -DHAVE_GLUT
+GLUT_LIBS = -lglut
+GL_LIBS = -lGL
+GREP = /bin/grep
+GSL_FLAGS = -I/usr/include
+GSL_LIBS = -L/usr/lib -lgsl -lgslcblas -lm
+HAVE_SWIG = true
+HDF4_FLAGS = -DHAVE_HDF4
+HDF4_LIBS = -lmfhdf -ldf
+HDF5_FLAGS = -DHAVE_HDF5 -DH5_USE_16_API
+HDF5_LIBS = -lhdf5
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+JPEG_FLAGS = -DHAVE_JPEG
+JPEG_LIBS = -ljpeg
+LD = /usr/bin/ld -m elf_x86_64
+LDFLAGS = 
+LIBOBJS = 
+LIBS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIPO = 
+LN_S = ln -s
+LTLIBOBJS = 
+MAKEINFO = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run makeinfo
+MGL_AGE = 0
+MGL_CURRENT = 5
+MGL_RELEASE = 1.10
+MGL_REVISION = 0
+MKDIR_P = /bin/mkdir -p
+MOC = /usr/bin/moc-qt4
+NM = /usr/bin/nm -B
+NMEDIT = 
+OBJDUMP = objdump
+OBJEXT = o
+OCTAVE = octave-config
+OCTAVE_ARCH = x86_64-pc-linux-gnu-api-v37
+OCTAVE_INCFLAGS = -I/usr/include/octave-3.2.4
+OTOOL = 
+OTOOL64 = 
+PACKAGE = mathgl
+PACKAGE_BUGREPORT = mathgl.abalakin at gmail.com
+PACKAGE_NAME = mathgl
+PACKAGE_STRING = mathgl 1.10
+PACKAGE_TARNAME = mathgl
+PACKAGE_URL = 
+PACKAGE_VERSION = 1.10
+PATH_SEPARATOR = :
+PNG_LIBS = -lpng
+PTHREAD_FLAGS = -DHAVE_PTHREAD
+PTHREAD_LIBS = -lpthread
+PYTHON = /usr/bin/python
+PYTHON_EXEC_PREFIX = ${exec_prefix}
+PYTHON_HEADERS = -I/usr/include/python2.6 -I/usr/include/python2.6 -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes
+PYTHON_PLATFORM = linux2
+PYTHON_PREFIX = ${prefix}
+PYTHON_VERSION = 2.6
+QMAKE = /usr/bin/qmake-qt4
+QT_CFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(QT_DEFINES)
+QT_CPPFLAGS = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I.
+QT_CXXFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(QT_DEFINES)
+QT_DEFINES = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
+QT_INCPATH = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I.
+QT_LDFLAGS = 
+QT_LFLAGS = 
+QT_LIBS = -L/usr/lib -lQtGui -lQtCore -lpthread 
+QT_PATH = /usr/bin
+QT_VERSION = 4.6.3
+QT_VERSION_MAJOR = ok, looks like Qt 4
+RANLIB = ranlib
+RCC = /usr/bin/rcc
+SED = /bin/sed
+SET_MAKE = 
+SHELL = /bin/bash
+STRIP = strip
+TMPDIR = /tmp
+UIC = /usr/bin/uic-qt4
+VERSION = 1.10
+WX_FLAGS = -I/usr/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread
+WX_LIBS = -pthread   -lwx_gtk2u_richtext-2.8 -lwx_gtk2u_aui-2.8 -lwx_gtk2u_xrc-2.8 -lwx_gtk2u_qa-2.8 -lwx_gtk2u_html-2.8 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8 
+abs_builddir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/mgl
+abs_srcdir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/mgl
+abs_top_builddir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11
+abs_top_srcdir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11
+ac_ct_CC = 
+ac_ct_CXX = 
+ac_ct_DUMPBIN = 
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-pc-linux-gnu
+build_alias = x86_64-linux-gnu
+build_cpu = x86_64
+build_os = linux-gnu
+build_vendor = pc
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+host = x86_64-pc-linux-gnu
+host_alias = x86_64-linux-gnu
+host_cpu = x86_64
+host_os = linux-gnu
+host_vendor = pc
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${prefix}/share/info
+install_sh = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+lt_ECHO = echo
+mandir = ${prefix}/share/man
+mkdir_p = /bin/mkdir -p
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+pkgpyexecdir = ${pyexecdir}/mathgl
+pkgpythondir = ${pythondir}/mathgl
+prefix = /usr
+program_transform_name = s,x,x,
+psdir = ${docdir}
+pyexecdir = ${exec_prefix}/lib/python2.6/dist-packages
+pythondir = ${prefix}/lib/python2.6/dist-packages
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target_alias = 
+top_build_prefix = ../
+top_builddir = ..
+top_srcdir = ..
+lib_LTLIBRARIES = libmgl.la
+WIDGETS = $(am__append_1) $(am__append_2) $(am__append_3) \
+	$(am__append_4)
+libmgl_la_LIBADD = $(PNG_LIBS) $(GL_LIBS) $(LOPENMP) $(am__append_5) \
+	$(am__append_6) $(am__append_7) $(am__append_8) \
+	$(am__append_9) $(am__append_10)
+libmgl_la_LDFLAGS = -no-undefined -version-info $(MGL_CURRENT):$(MGL_REVISION):$(MGL_AGE)
+libmgl_la_CXXFLAGS = $(WIDGETS) -DMGL_FONT_PATH=\"$(datadir)/$(PACKAGE)/fonts/\" \
+    -DMOD_LIB_DIR=\"$(libdir)/mgl/\" $(HDF5_FLAGS) $(HDF4_FLAGS) $(GIF_FLAGS) $(JPEG_FLAGS) \
+    $(TIFF_FLAGS) $(PNG_FLAGS) $(FLTK_FLAGS) $(ADDON_FLAGS) $(AM_CXXFLAGS) \
+    $(PTHREAD_FLAGS)
+
+libmgl_la_SOURCES = \
+mgl_data_cf.cpp	   mgl_axis.cpp     mgl_data_png.cpp  mgl_zb2.cpp \
+mgl_c.cpp          mgl_eps.cpp      mgl_font.cpp      mgl_zb.cpp \
+mgl_combi.cpp      mgl_eval.cpp     mgl_gl.cpp        mgl_def_font.cpp\
+mgl_1d.cpp         mgl_cont.cpp     mgl_exec.cpp      mgl_tex_table.cpp\
+mgl_2d.cpp         mgl_crust.cpp    mgl_export.cpp    mgl_main.cpp  \
+mgl_3d.cpp         mgl_data.cpp     mgl_f.cpp         mgl_idtf.cpp \
+mgl_ab.cpp         mgl_data_io.cpp  mgl_flow.cpp      mgl_vect.cpp \
+mgl_parse.cpp      mgl_fit.cpp      mgl_pde.cpp       mgl_evalc.cpp \
+mgl_addon.cpp      mgl_evalp.cpp
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .cpp .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mgl/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mgl/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+	@$(NORMAL_INSTALL)
+	test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
+	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+	list2=; for p in $$list; do \
+	  if test -f $$p; then \
+	    list2="$$list2 $$p"; \
+	  else :; fi; \
+	done; \
+	test -z "$$list2" || { \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
+	}
+
+uninstall-libLTLIBRARIES:
+	@$(NORMAL_UNINSTALL)
+	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+	for p in $$list; do \
+	  $(am__strip_dir) \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
+	done
+
+clean-libLTLIBRARIES:
+	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libmgl.la: $(libmgl_la_OBJECTS) $(libmgl_la_DEPENDENCIES) 
+	$(libmgl_la_LINK) -rpath $(libdir) $(libmgl_la_OBJECTS) $(libmgl_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+include ./$(DEPDIR)/libmgl_la-mgl_1d.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_2d.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_3d.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_ab.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_addon.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_axis.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_c.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_combi.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_cont.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_crust.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_data.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_data_cf.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_data_io.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_data_png.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_def_font.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_eps.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_eval.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_evalc.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_evalp.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_exec.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_export.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_f.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_fit.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_flow.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_font.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_gl.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_idtf.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_main.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_parse.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_pde.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_tex_table.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_vect.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_zb.Plo
+include ./$(DEPDIR)/libmgl_la-mgl_zb2.Plo
+
+.cpp.o:
+	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+#	source='$<' object='$@' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+#	source='$<' object='$@' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+	$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+#	source='$<' object='$@' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LTCXXCOMPILE) -c -o $@ $<
+
+libmgl_la-mgl_data_cf.lo: mgl_data_cf.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_data_cf.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_data_cf.Tpo -c -o libmgl_la-mgl_data_cf.lo `test -f 'mgl_data_cf.cpp' || echo '$(srcdir)/'`mgl_data_cf.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_data_cf.Tpo $(DEPDIR)/libmgl_la-mgl_data_cf.Plo
+#	source='mgl_data_cf.cpp' object='libmgl_la-mgl_data_cf.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_data_cf.lo `test -f 'mgl_data_cf.cpp' || echo '$(srcdir)/'`mgl_data_cf.cpp
+
+libmgl_la-mgl_axis.lo: mgl_axis.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_axis.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_axis.Tpo -c -o libmgl_la-mgl_axis.lo `test -f 'mgl_axis.cpp' || echo '$(srcdir)/'`mgl_axis.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_axis.Tpo $(DEPDIR)/libmgl_la-mgl_axis.Plo
+#	source='mgl_axis.cpp' object='libmgl_la-mgl_axis.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_axis.lo `test -f 'mgl_axis.cpp' || echo '$(srcdir)/'`mgl_axis.cpp
+
+libmgl_la-mgl_data_png.lo: mgl_data_png.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_data_png.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_data_png.Tpo -c -o libmgl_la-mgl_data_png.lo `test -f 'mgl_data_png.cpp' || echo '$(srcdir)/'`mgl_data_png.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_data_png.Tpo $(DEPDIR)/libmgl_la-mgl_data_png.Plo
+#	source='mgl_data_png.cpp' object='libmgl_la-mgl_data_png.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_data_png.lo `test -f 'mgl_data_png.cpp' || echo '$(srcdir)/'`mgl_data_png.cpp
+
+libmgl_la-mgl_zb2.lo: mgl_zb2.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_zb2.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_zb2.Tpo -c -o libmgl_la-mgl_zb2.lo `test -f 'mgl_zb2.cpp' || echo '$(srcdir)/'`mgl_zb2.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_zb2.Tpo $(DEPDIR)/libmgl_la-mgl_zb2.Plo
+#	source='mgl_zb2.cpp' object='libmgl_la-mgl_zb2.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_zb2.lo `test -f 'mgl_zb2.cpp' || echo '$(srcdir)/'`mgl_zb2.cpp
+
+libmgl_la-mgl_c.lo: mgl_c.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_c.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_c.Tpo -c -o libmgl_la-mgl_c.lo `test -f 'mgl_c.cpp' || echo '$(srcdir)/'`mgl_c.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_c.Tpo $(DEPDIR)/libmgl_la-mgl_c.Plo
+#	source='mgl_c.cpp' object='libmgl_la-mgl_c.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_c.lo `test -f 'mgl_c.cpp' || echo '$(srcdir)/'`mgl_c.cpp
+
+libmgl_la-mgl_eps.lo: mgl_eps.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_eps.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_eps.Tpo -c -o libmgl_la-mgl_eps.lo `test -f 'mgl_eps.cpp' || echo '$(srcdir)/'`mgl_eps.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_eps.Tpo $(DEPDIR)/libmgl_la-mgl_eps.Plo
+#	source='mgl_eps.cpp' object='libmgl_la-mgl_eps.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_eps.lo `test -f 'mgl_eps.cpp' || echo '$(srcdir)/'`mgl_eps.cpp
+
+libmgl_la-mgl_font.lo: mgl_font.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_font.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_font.Tpo -c -o libmgl_la-mgl_font.lo `test -f 'mgl_font.cpp' || echo '$(srcdir)/'`mgl_font.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_font.Tpo $(DEPDIR)/libmgl_la-mgl_font.Plo
+#	source='mgl_font.cpp' object='libmgl_la-mgl_font.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_font.lo `test -f 'mgl_font.cpp' || echo '$(srcdir)/'`mgl_font.cpp
+
+libmgl_la-mgl_zb.lo: mgl_zb.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_zb.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_zb.Tpo -c -o libmgl_la-mgl_zb.lo `test -f 'mgl_zb.cpp' || echo '$(srcdir)/'`mgl_zb.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_zb.Tpo $(DEPDIR)/libmgl_la-mgl_zb.Plo
+#	source='mgl_zb.cpp' object='libmgl_la-mgl_zb.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_zb.lo `test -f 'mgl_zb.cpp' || echo '$(srcdir)/'`mgl_zb.cpp
+
+libmgl_la-mgl_combi.lo: mgl_combi.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_combi.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_combi.Tpo -c -o libmgl_la-mgl_combi.lo `test -f 'mgl_combi.cpp' || echo '$(srcdir)/'`mgl_combi.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_combi.Tpo $(DEPDIR)/libmgl_la-mgl_combi.Plo
+#	source='mgl_combi.cpp' object='libmgl_la-mgl_combi.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_combi.lo `test -f 'mgl_combi.cpp' || echo '$(srcdir)/'`mgl_combi.cpp
+
+libmgl_la-mgl_eval.lo: mgl_eval.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_eval.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_eval.Tpo -c -o libmgl_la-mgl_eval.lo `test -f 'mgl_eval.cpp' || echo '$(srcdir)/'`mgl_eval.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_eval.Tpo $(DEPDIR)/libmgl_la-mgl_eval.Plo
+#	source='mgl_eval.cpp' object='libmgl_la-mgl_eval.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_eval.lo `test -f 'mgl_eval.cpp' || echo '$(srcdir)/'`mgl_eval.cpp
+
+libmgl_la-mgl_gl.lo: mgl_gl.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_gl.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_gl.Tpo -c -o libmgl_la-mgl_gl.lo `test -f 'mgl_gl.cpp' || echo '$(srcdir)/'`mgl_gl.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_gl.Tpo $(DEPDIR)/libmgl_la-mgl_gl.Plo
+#	source='mgl_gl.cpp' object='libmgl_la-mgl_gl.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_gl.lo `test -f 'mgl_gl.cpp' || echo '$(srcdir)/'`mgl_gl.cpp
+
+libmgl_la-mgl_def_font.lo: mgl_def_font.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_def_font.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_def_font.Tpo -c -o libmgl_la-mgl_def_font.lo `test -f 'mgl_def_font.cpp' || echo '$(srcdir)/'`mgl_def_font.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_def_font.Tpo $(DEPDIR)/libmgl_la-mgl_def_font.Plo
+#	source='mgl_def_font.cpp' object='libmgl_la-mgl_def_font.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_def_font.lo `test -f 'mgl_def_font.cpp' || echo '$(srcdir)/'`mgl_def_font.cpp
+
+libmgl_la-mgl_1d.lo: mgl_1d.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_1d.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_1d.Tpo -c -o libmgl_la-mgl_1d.lo `test -f 'mgl_1d.cpp' || echo '$(srcdir)/'`mgl_1d.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_1d.Tpo $(DEPDIR)/libmgl_la-mgl_1d.Plo
+#	source='mgl_1d.cpp' object='libmgl_la-mgl_1d.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_1d.lo `test -f 'mgl_1d.cpp' || echo '$(srcdir)/'`mgl_1d.cpp
+
+libmgl_la-mgl_cont.lo: mgl_cont.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_cont.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_cont.Tpo -c -o libmgl_la-mgl_cont.lo `test -f 'mgl_cont.cpp' || echo '$(srcdir)/'`mgl_cont.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_cont.Tpo $(DEPDIR)/libmgl_la-mgl_cont.Plo
+#	source='mgl_cont.cpp' object='libmgl_la-mgl_cont.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_cont.lo `test -f 'mgl_cont.cpp' || echo '$(srcdir)/'`mgl_cont.cpp
+
+libmgl_la-mgl_exec.lo: mgl_exec.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_exec.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_exec.Tpo -c -o libmgl_la-mgl_exec.lo `test -f 'mgl_exec.cpp' || echo '$(srcdir)/'`mgl_exec.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_exec.Tpo $(DEPDIR)/libmgl_la-mgl_exec.Plo
+#	source='mgl_exec.cpp' object='libmgl_la-mgl_exec.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_exec.lo `test -f 'mgl_exec.cpp' || echo '$(srcdir)/'`mgl_exec.cpp
+
+libmgl_la-mgl_tex_table.lo: mgl_tex_table.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_tex_table.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_tex_table.Tpo -c -o libmgl_la-mgl_tex_table.lo `test -f 'mgl_tex_table.cpp' || echo '$(srcdir)/'`mgl_tex_table.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_tex_table.Tpo $(DEPDIR)/libmgl_la-mgl_tex_table.Plo
+#	source='mgl_tex_table.cpp' object='libmgl_la-mgl_tex_table.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_tex_table.lo `test -f 'mgl_tex_table.cpp' || echo '$(srcdir)/'`mgl_tex_table.cpp
+
+libmgl_la-mgl_2d.lo: mgl_2d.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_2d.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_2d.Tpo -c -o libmgl_la-mgl_2d.lo `test -f 'mgl_2d.cpp' || echo '$(srcdir)/'`mgl_2d.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_2d.Tpo $(DEPDIR)/libmgl_la-mgl_2d.Plo
+#	source='mgl_2d.cpp' object='libmgl_la-mgl_2d.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_2d.lo `test -f 'mgl_2d.cpp' || echo '$(srcdir)/'`mgl_2d.cpp
+
+libmgl_la-mgl_crust.lo: mgl_crust.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_crust.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_crust.Tpo -c -o libmgl_la-mgl_crust.lo `test -f 'mgl_crust.cpp' || echo '$(srcdir)/'`mgl_crust.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_crust.Tpo $(DEPDIR)/libmgl_la-mgl_crust.Plo
+#	source='mgl_crust.cpp' object='libmgl_la-mgl_crust.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_crust.lo `test -f 'mgl_crust.cpp' || echo '$(srcdir)/'`mgl_crust.cpp
+
+libmgl_la-mgl_export.lo: mgl_export.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_export.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_export.Tpo -c -o libmgl_la-mgl_export.lo `test -f 'mgl_export.cpp' || echo '$(srcdir)/'`mgl_export.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_export.Tpo $(DEPDIR)/libmgl_la-mgl_export.Plo
+#	source='mgl_export.cpp' object='libmgl_la-mgl_export.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_export.lo `test -f 'mgl_export.cpp' || echo '$(srcdir)/'`mgl_export.cpp
+
+libmgl_la-mgl_main.lo: mgl_main.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_main.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_main.Tpo -c -o libmgl_la-mgl_main.lo `test -f 'mgl_main.cpp' || echo '$(srcdir)/'`mgl_main.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_main.Tpo $(DEPDIR)/libmgl_la-mgl_main.Plo
+#	source='mgl_main.cpp' object='libmgl_la-mgl_main.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_main.lo `test -f 'mgl_main.cpp' || echo '$(srcdir)/'`mgl_main.cpp
+
+libmgl_la-mgl_3d.lo: mgl_3d.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_3d.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_3d.Tpo -c -o libmgl_la-mgl_3d.lo `test -f 'mgl_3d.cpp' || echo '$(srcdir)/'`mgl_3d.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_3d.Tpo $(DEPDIR)/libmgl_la-mgl_3d.Plo
+#	source='mgl_3d.cpp' object='libmgl_la-mgl_3d.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_3d.lo `test -f 'mgl_3d.cpp' || echo '$(srcdir)/'`mgl_3d.cpp
+
+libmgl_la-mgl_data.lo: mgl_data.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_data.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_data.Tpo -c -o libmgl_la-mgl_data.lo `test -f 'mgl_data.cpp' || echo '$(srcdir)/'`mgl_data.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_data.Tpo $(DEPDIR)/libmgl_la-mgl_data.Plo
+#	source='mgl_data.cpp' object='libmgl_la-mgl_data.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_data.lo `test -f 'mgl_data.cpp' || echo '$(srcdir)/'`mgl_data.cpp
+
+libmgl_la-mgl_f.lo: mgl_f.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_f.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_f.Tpo -c -o libmgl_la-mgl_f.lo `test -f 'mgl_f.cpp' || echo '$(srcdir)/'`mgl_f.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_f.Tpo $(DEPDIR)/libmgl_la-mgl_f.Plo
+#	source='mgl_f.cpp' object='libmgl_la-mgl_f.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_f.lo `test -f 'mgl_f.cpp' || echo '$(srcdir)/'`mgl_f.cpp
+
+libmgl_la-mgl_idtf.lo: mgl_idtf.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_idtf.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_idtf.Tpo -c -o libmgl_la-mgl_idtf.lo `test -f 'mgl_idtf.cpp' || echo '$(srcdir)/'`mgl_idtf.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_idtf.Tpo $(DEPDIR)/libmgl_la-mgl_idtf.Plo
+#	source='mgl_idtf.cpp' object='libmgl_la-mgl_idtf.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_idtf.lo `test -f 'mgl_idtf.cpp' || echo '$(srcdir)/'`mgl_idtf.cpp
+
+libmgl_la-mgl_ab.lo: mgl_ab.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_ab.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_ab.Tpo -c -o libmgl_la-mgl_ab.lo `test -f 'mgl_ab.cpp' || echo '$(srcdir)/'`mgl_ab.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_ab.Tpo $(DEPDIR)/libmgl_la-mgl_ab.Plo
+#	source='mgl_ab.cpp' object='libmgl_la-mgl_ab.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_ab.lo `test -f 'mgl_ab.cpp' || echo '$(srcdir)/'`mgl_ab.cpp
+
+libmgl_la-mgl_data_io.lo: mgl_data_io.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_data_io.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_data_io.Tpo -c -o libmgl_la-mgl_data_io.lo `test -f 'mgl_data_io.cpp' || echo '$(srcdir)/'`mgl_data_io.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_data_io.Tpo $(DEPDIR)/libmgl_la-mgl_data_io.Plo
+#	source='mgl_data_io.cpp' object='libmgl_la-mgl_data_io.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_data_io.lo `test -f 'mgl_data_io.cpp' || echo '$(srcdir)/'`mgl_data_io.cpp
+
+libmgl_la-mgl_flow.lo: mgl_flow.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_flow.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_flow.Tpo -c -o libmgl_la-mgl_flow.lo `test -f 'mgl_flow.cpp' || echo '$(srcdir)/'`mgl_flow.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_flow.Tpo $(DEPDIR)/libmgl_la-mgl_flow.Plo
+#	source='mgl_flow.cpp' object='libmgl_la-mgl_flow.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_flow.lo `test -f 'mgl_flow.cpp' || echo '$(srcdir)/'`mgl_flow.cpp
+
+libmgl_la-mgl_vect.lo: mgl_vect.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_vect.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_vect.Tpo -c -o libmgl_la-mgl_vect.lo `test -f 'mgl_vect.cpp' || echo '$(srcdir)/'`mgl_vect.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_vect.Tpo $(DEPDIR)/libmgl_la-mgl_vect.Plo
+#	source='mgl_vect.cpp' object='libmgl_la-mgl_vect.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_vect.lo `test -f 'mgl_vect.cpp' || echo '$(srcdir)/'`mgl_vect.cpp
+
+libmgl_la-mgl_parse.lo: mgl_parse.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_parse.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_parse.Tpo -c -o libmgl_la-mgl_parse.lo `test -f 'mgl_parse.cpp' || echo '$(srcdir)/'`mgl_parse.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_parse.Tpo $(DEPDIR)/libmgl_la-mgl_parse.Plo
+#	source='mgl_parse.cpp' object='libmgl_la-mgl_parse.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_parse.lo `test -f 'mgl_parse.cpp' || echo '$(srcdir)/'`mgl_parse.cpp
+
+libmgl_la-mgl_fit.lo: mgl_fit.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_fit.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_fit.Tpo -c -o libmgl_la-mgl_fit.lo `test -f 'mgl_fit.cpp' || echo '$(srcdir)/'`mgl_fit.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_fit.Tpo $(DEPDIR)/libmgl_la-mgl_fit.Plo
+#	source='mgl_fit.cpp' object='libmgl_la-mgl_fit.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_fit.lo `test -f 'mgl_fit.cpp' || echo '$(srcdir)/'`mgl_fit.cpp
+
+libmgl_la-mgl_pde.lo: mgl_pde.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_pde.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_pde.Tpo -c -o libmgl_la-mgl_pde.lo `test -f 'mgl_pde.cpp' || echo '$(srcdir)/'`mgl_pde.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_pde.Tpo $(DEPDIR)/libmgl_la-mgl_pde.Plo
+#	source='mgl_pde.cpp' object='libmgl_la-mgl_pde.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_pde.lo `test -f 'mgl_pde.cpp' || echo '$(srcdir)/'`mgl_pde.cpp
+
+libmgl_la-mgl_evalc.lo: mgl_evalc.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_evalc.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_evalc.Tpo -c -o libmgl_la-mgl_evalc.lo `test -f 'mgl_evalc.cpp' || echo '$(srcdir)/'`mgl_evalc.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_evalc.Tpo $(DEPDIR)/libmgl_la-mgl_evalc.Plo
+#	source='mgl_evalc.cpp' object='libmgl_la-mgl_evalc.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_evalc.lo `test -f 'mgl_evalc.cpp' || echo '$(srcdir)/'`mgl_evalc.cpp
+
+libmgl_la-mgl_addon.lo: mgl_addon.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_addon.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_addon.Tpo -c -o libmgl_la-mgl_addon.lo `test -f 'mgl_addon.cpp' || echo '$(srcdir)/'`mgl_addon.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_addon.Tpo $(DEPDIR)/libmgl_la-mgl_addon.Plo
+#	source='mgl_addon.cpp' object='libmgl_la-mgl_addon.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_addon.lo `test -f 'mgl_addon.cpp' || echo '$(srcdir)/'`mgl_addon.cpp
+
+libmgl_la-mgl_evalp.lo: mgl_evalp.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_la-mgl_evalp.lo -MD -MP -MF $(DEPDIR)/libmgl_la-mgl_evalp.Tpo -c -o libmgl_la-mgl_evalp.lo `test -f 'mgl_evalp.cpp' || echo '$(srcdir)/'`mgl_evalp.cpp
+	$(am__mv) $(DEPDIR)/libmgl_la-mgl_evalp.Tpo $(DEPDIR)/libmgl_la-mgl_evalp.Plo
+#	source='mgl_evalp.cpp' object='libmgl_la-mgl_evalp.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_la-mgl_evalp.lo `test -f 'mgl_evalp.cpp' || echo '$(srcdir)/'`mgl_evalp.cpp
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	set x; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+	for dir in "$(DESTDIR)$(libdir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-libLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-libLTLIBRARIES
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libLTLIBRARIES clean-libtool ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am \
+	install-libLTLIBRARIES install-man install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags uninstall uninstall-am uninstall-libLTLIBRARIES
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/mgl/Makefile.in b/mgl/Makefile.in
index b1acb2b..899e46b 100644
--- a/mgl/Makefile.in
+++ b/mgl/Makefile.in
@@ -48,11 +48,7 @@ subdir = mgl
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
-	$(top_srcdir)/config/libtool.m4 \
-	$(top_srcdir)/config/ltoptions.m4 \
-	$(top_srcdir)/config/ltsugar.m4 \
-	$(top_srcdir)/config/ltversion.m4 \
-	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
diff --git a/mgl/libmgl.la b/mgl/libmgl.la
new file mode 100644
index 0000000..df9fcd3
--- /dev/null
+++ b/mgl/libmgl.la
@@ -0,0 +1,41 @@
+# libmgl.la - a libtool library file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libmgl.so.5'
+
+# Names of this library.
+library_names='libmgl.so.5.0.0 libmgl.so.5 libmgl.so'
+
+# The name of the static archive.
+old_library='libmgl.a'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -R/tmp/buildd/libhdf4-4.2r4/HDF4/mfhdf/libsrc/.libs -R/tmp/buildd/libhdf4-4.2r4/HDF4/hdf/src/.libs  -lpng -lGL -L/usr/lib -lgsl -lgslcblas /usr/lib/libmfhdf.la /usr/lib/libdf.la /usr/lib/libhdf5.la -lpthread -lz /usr/lib/libgif.la /usr/lib/libjpeg.la'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libmgl.
+current=5
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=no
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/lib'
diff --git a/mgl/libmgl_la-mgl_1d.lo b/mgl/libmgl_la-mgl_1d.lo
new file mode 100644
index 0000000..fc007d2
--- /dev/null
+++ b/mgl/libmgl_la-mgl_1d.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_1d.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_1d.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_1d.o'
+
diff --git a/mgl/libmgl_la-mgl_1d.o b/mgl/libmgl_la-mgl_1d.o
new file mode 100644
index 0000000..fde547f
Binary files /dev/null and b/mgl/libmgl_la-mgl_1d.o differ
diff --git a/mgl/libmgl_la-mgl_2d.lo b/mgl/libmgl_la-mgl_2d.lo
new file mode 100644
index 0000000..a76c613
--- /dev/null
+++ b/mgl/libmgl_la-mgl_2d.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_2d.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_2d.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_2d.o'
+
diff --git a/mgl/libmgl_la-mgl_2d.o b/mgl/libmgl_la-mgl_2d.o
new file mode 100644
index 0000000..7d0c98f
Binary files /dev/null and b/mgl/libmgl_la-mgl_2d.o differ
diff --git a/mgl/libmgl_la-mgl_3d.lo b/mgl/libmgl_la-mgl_3d.lo
new file mode 100644
index 0000000..dc0c659
--- /dev/null
+++ b/mgl/libmgl_la-mgl_3d.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_3d.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_3d.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_3d.o'
+
diff --git a/mgl/libmgl_la-mgl_3d.o b/mgl/libmgl_la-mgl_3d.o
new file mode 100644
index 0000000..4f84cb7
Binary files /dev/null and b/mgl/libmgl_la-mgl_3d.o differ
diff --git a/mgl/libmgl_la-mgl_ab.lo b/mgl/libmgl_la-mgl_ab.lo
new file mode 100644
index 0000000..76b5eee
--- /dev/null
+++ b/mgl/libmgl_la-mgl_ab.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_ab.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_ab.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_ab.o'
+
diff --git a/mgl/libmgl_la-mgl_ab.o b/mgl/libmgl_la-mgl_ab.o
new file mode 100644
index 0000000..7f2f30f
Binary files /dev/null and b/mgl/libmgl_la-mgl_ab.o differ
diff --git a/mgl/libmgl_la-mgl_addon.lo b/mgl/libmgl_la-mgl_addon.lo
new file mode 100644
index 0000000..35a3202
--- /dev/null
+++ b/mgl/libmgl_la-mgl_addon.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_addon.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_addon.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_addon.o'
+
diff --git a/mgl/libmgl_la-mgl_addon.o b/mgl/libmgl_la-mgl_addon.o
new file mode 100644
index 0000000..b2aa55b
Binary files /dev/null and b/mgl/libmgl_la-mgl_addon.o differ
diff --git a/mgl/libmgl_la-mgl_axis.lo b/mgl/libmgl_la-mgl_axis.lo
new file mode 100644
index 0000000..fa49dea
--- /dev/null
+++ b/mgl/libmgl_la-mgl_axis.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_axis.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_axis.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_axis.o'
+
diff --git a/mgl/libmgl_la-mgl_axis.o b/mgl/libmgl_la-mgl_axis.o
new file mode 100644
index 0000000..ab91fa2
Binary files /dev/null and b/mgl/libmgl_la-mgl_axis.o differ
diff --git a/mgl/libmgl_la-mgl_c.lo b/mgl/libmgl_la-mgl_c.lo
new file mode 100644
index 0000000..248b0a4
--- /dev/null
+++ b/mgl/libmgl_la-mgl_c.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_c.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_c.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_c.o'
+
diff --git a/mgl/libmgl_la-mgl_c.o b/mgl/libmgl_la-mgl_c.o
new file mode 100644
index 0000000..ca69a62
Binary files /dev/null and b/mgl/libmgl_la-mgl_c.o differ
diff --git a/mgl/libmgl_la-mgl_combi.lo b/mgl/libmgl_la-mgl_combi.lo
new file mode 100644
index 0000000..356a7e5
--- /dev/null
+++ b/mgl/libmgl_la-mgl_combi.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_combi.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_combi.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_combi.o'
+
diff --git a/mgl/libmgl_la-mgl_combi.o b/mgl/libmgl_la-mgl_combi.o
new file mode 100644
index 0000000..e6e5eb2
Binary files /dev/null and b/mgl/libmgl_la-mgl_combi.o differ
diff --git a/mgl/libmgl_la-mgl_cont.lo b/mgl/libmgl_la-mgl_cont.lo
new file mode 100644
index 0000000..f7030bd
--- /dev/null
+++ b/mgl/libmgl_la-mgl_cont.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_cont.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_cont.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_cont.o'
+
diff --git a/mgl/libmgl_la-mgl_cont.o b/mgl/libmgl_la-mgl_cont.o
new file mode 100644
index 0000000..a120420
Binary files /dev/null and b/mgl/libmgl_la-mgl_cont.o differ
diff --git a/mgl/libmgl_la-mgl_crust.lo b/mgl/libmgl_la-mgl_crust.lo
new file mode 100644
index 0000000..6289871
--- /dev/null
+++ b/mgl/libmgl_la-mgl_crust.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_crust.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_crust.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_crust.o'
+
diff --git a/mgl/libmgl_la-mgl_crust.o b/mgl/libmgl_la-mgl_crust.o
new file mode 100644
index 0000000..fd8f50e
Binary files /dev/null and b/mgl/libmgl_la-mgl_crust.o differ
diff --git a/mgl/libmgl_la-mgl_data.lo b/mgl/libmgl_la-mgl_data.lo
new file mode 100644
index 0000000..362dd3b
--- /dev/null
+++ b/mgl/libmgl_la-mgl_data.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_data.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_data.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_data.o'
+
diff --git a/mgl/libmgl_la-mgl_data.o b/mgl/libmgl_la-mgl_data.o
new file mode 100644
index 0000000..7129285
Binary files /dev/null and b/mgl/libmgl_la-mgl_data.o differ
diff --git a/mgl/libmgl_la-mgl_data_cf.lo b/mgl/libmgl_la-mgl_data_cf.lo
new file mode 100644
index 0000000..87d5ceb
--- /dev/null
+++ b/mgl/libmgl_la-mgl_data_cf.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_data_cf.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_data_cf.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_data_cf.o'
+
diff --git a/mgl/libmgl_la-mgl_data_cf.o b/mgl/libmgl_la-mgl_data_cf.o
new file mode 100644
index 0000000..127c147
Binary files /dev/null and b/mgl/libmgl_la-mgl_data_cf.o differ
diff --git a/mgl/libmgl_la-mgl_data_io.lo b/mgl/libmgl_la-mgl_data_io.lo
new file mode 100644
index 0000000..7a0af9d
--- /dev/null
+++ b/mgl/libmgl_la-mgl_data_io.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_data_io.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_data_io.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_data_io.o'
+
diff --git a/mgl/libmgl_la-mgl_data_io.o b/mgl/libmgl_la-mgl_data_io.o
new file mode 100644
index 0000000..698addc
Binary files /dev/null and b/mgl/libmgl_la-mgl_data_io.o differ
diff --git a/mgl/libmgl_la-mgl_data_png.lo b/mgl/libmgl_la-mgl_data_png.lo
new file mode 100644
index 0000000..31c04d1
--- /dev/null
+++ b/mgl/libmgl_la-mgl_data_png.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_data_png.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_data_png.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_data_png.o'
+
diff --git a/mgl/libmgl_la-mgl_data_png.o b/mgl/libmgl_la-mgl_data_png.o
new file mode 100644
index 0000000..8ce5a74
Binary files /dev/null and b/mgl/libmgl_la-mgl_data_png.o differ
diff --git a/mgl/libmgl_la-mgl_def_font.lo b/mgl/libmgl_la-mgl_def_font.lo
new file mode 100644
index 0000000..748f6c0
--- /dev/null
+++ b/mgl/libmgl_la-mgl_def_font.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_def_font.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_def_font.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_def_font.o'
+
diff --git a/mgl/libmgl_la-mgl_def_font.o b/mgl/libmgl_la-mgl_def_font.o
new file mode 100644
index 0000000..095a0d0
Binary files /dev/null and b/mgl/libmgl_la-mgl_def_font.o differ
diff --git a/mgl/libmgl_la-mgl_eps.lo b/mgl/libmgl_la-mgl_eps.lo
new file mode 100644
index 0000000..a44a5a9
--- /dev/null
+++ b/mgl/libmgl_la-mgl_eps.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_eps.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_eps.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_eps.o'
+
diff --git a/mgl/libmgl_la-mgl_eps.o b/mgl/libmgl_la-mgl_eps.o
new file mode 100644
index 0000000..9f8ee63
Binary files /dev/null and b/mgl/libmgl_la-mgl_eps.o differ
diff --git a/mgl/libmgl_la-mgl_eval.lo b/mgl/libmgl_la-mgl_eval.lo
new file mode 100644
index 0000000..fa190de
--- /dev/null
+++ b/mgl/libmgl_la-mgl_eval.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_eval.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_eval.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_eval.o'
+
diff --git a/mgl/libmgl_la-mgl_eval.o b/mgl/libmgl_la-mgl_eval.o
new file mode 100644
index 0000000..c7c2b1a
Binary files /dev/null and b/mgl/libmgl_la-mgl_eval.o differ
diff --git a/mgl/libmgl_la-mgl_evalc.lo b/mgl/libmgl_la-mgl_evalc.lo
new file mode 100644
index 0000000..e8942cd
--- /dev/null
+++ b/mgl/libmgl_la-mgl_evalc.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_evalc.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_evalc.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_evalc.o'
+
diff --git a/mgl/libmgl_la-mgl_evalc.o b/mgl/libmgl_la-mgl_evalc.o
new file mode 100644
index 0000000..23441aa
Binary files /dev/null and b/mgl/libmgl_la-mgl_evalc.o differ
diff --git a/mgl/libmgl_la-mgl_evalp.lo b/mgl/libmgl_la-mgl_evalp.lo
new file mode 100644
index 0000000..5fb9b96
--- /dev/null
+++ b/mgl/libmgl_la-mgl_evalp.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_evalp.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_evalp.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_evalp.o'
+
diff --git a/mgl/libmgl_la-mgl_evalp.o b/mgl/libmgl_la-mgl_evalp.o
new file mode 100644
index 0000000..eb1b756
Binary files /dev/null and b/mgl/libmgl_la-mgl_evalp.o differ
diff --git a/mgl/libmgl_la-mgl_exec.lo b/mgl/libmgl_la-mgl_exec.lo
new file mode 100644
index 0000000..6bf19e5
--- /dev/null
+++ b/mgl/libmgl_la-mgl_exec.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_exec.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_exec.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_exec.o'
+
diff --git a/mgl/libmgl_la-mgl_exec.o b/mgl/libmgl_la-mgl_exec.o
new file mode 100644
index 0000000..bae1b00
Binary files /dev/null and b/mgl/libmgl_la-mgl_exec.o differ
diff --git a/mgl/libmgl_la-mgl_export.lo b/mgl/libmgl_la-mgl_export.lo
new file mode 100644
index 0000000..0ca1d55
--- /dev/null
+++ b/mgl/libmgl_la-mgl_export.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_export.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_export.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_export.o'
+
diff --git a/mgl/libmgl_la-mgl_export.o b/mgl/libmgl_la-mgl_export.o
new file mode 100644
index 0000000..d2f0309
Binary files /dev/null and b/mgl/libmgl_la-mgl_export.o differ
diff --git a/mgl/libmgl_la-mgl_f.lo b/mgl/libmgl_la-mgl_f.lo
new file mode 100644
index 0000000..cf304ae
--- /dev/null
+++ b/mgl/libmgl_la-mgl_f.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_f.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_f.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_f.o'
+
diff --git a/mgl/libmgl_la-mgl_f.o b/mgl/libmgl_la-mgl_f.o
new file mode 100644
index 0000000..77c83cb
Binary files /dev/null and b/mgl/libmgl_la-mgl_f.o differ
diff --git a/mgl/libmgl_la-mgl_fit.lo b/mgl/libmgl_la-mgl_fit.lo
new file mode 100644
index 0000000..d724b11
--- /dev/null
+++ b/mgl/libmgl_la-mgl_fit.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_fit.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_fit.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_fit.o'
+
diff --git a/mgl/libmgl_la-mgl_fit.o b/mgl/libmgl_la-mgl_fit.o
new file mode 100644
index 0000000..7e20939
Binary files /dev/null and b/mgl/libmgl_la-mgl_fit.o differ
diff --git a/mgl/libmgl_la-mgl_flow.lo b/mgl/libmgl_la-mgl_flow.lo
new file mode 100644
index 0000000..d1b3928
--- /dev/null
+++ b/mgl/libmgl_la-mgl_flow.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_flow.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_flow.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_flow.o'
+
diff --git a/mgl/libmgl_la-mgl_flow.o b/mgl/libmgl_la-mgl_flow.o
new file mode 100644
index 0000000..4c89ee1
Binary files /dev/null and b/mgl/libmgl_la-mgl_flow.o differ
diff --git a/mgl/libmgl_la-mgl_font.lo b/mgl/libmgl_la-mgl_font.lo
new file mode 100644
index 0000000..2131d5c
--- /dev/null
+++ b/mgl/libmgl_la-mgl_font.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_font.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_font.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_font.o'
+
diff --git a/mgl/libmgl_la-mgl_font.o b/mgl/libmgl_la-mgl_font.o
new file mode 100644
index 0000000..c6bd98f
Binary files /dev/null and b/mgl/libmgl_la-mgl_font.o differ
diff --git a/mgl/libmgl_la-mgl_gl.lo b/mgl/libmgl_la-mgl_gl.lo
new file mode 100644
index 0000000..2facc94
--- /dev/null
+++ b/mgl/libmgl_la-mgl_gl.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_gl.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_gl.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_gl.o'
+
diff --git a/mgl/libmgl_la-mgl_gl.o b/mgl/libmgl_la-mgl_gl.o
new file mode 100644
index 0000000..b73ee74
Binary files /dev/null and b/mgl/libmgl_la-mgl_gl.o differ
diff --git a/mgl/libmgl_la-mgl_idtf.lo b/mgl/libmgl_la-mgl_idtf.lo
new file mode 100644
index 0000000..f4864e3
--- /dev/null
+++ b/mgl/libmgl_la-mgl_idtf.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_idtf.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_idtf.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_idtf.o'
+
diff --git a/mgl/libmgl_la-mgl_idtf.o b/mgl/libmgl_la-mgl_idtf.o
new file mode 100644
index 0000000..09d43a1
Binary files /dev/null and b/mgl/libmgl_la-mgl_idtf.o differ
diff --git a/mgl/libmgl_la-mgl_main.lo b/mgl/libmgl_la-mgl_main.lo
new file mode 100644
index 0000000..765bd7a
--- /dev/null
+++ b/mgl/libmgl_la-mgl_main.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_main.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_main.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_main.o'
+
diff --git a/mgl/libmgl_la-mgl_main.o b/mgl/libmgl_la-mgl_main.o
new file mode 100644
index 0000000..ca3161e
Binary files /dev/null and b/mgl/libmgl_la-mgl_main.o differ
diff --git a/mgl/libmgl_la-mgl_parse.lo b/mgl/libmgl_la-mgl_parse.lo
new file mode 100644
index 0000000..a661871
--- /dev/null
+++ b/mgl/libmgl_la-mgl_parse.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_parse.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_parse.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_parse.o'
+
diff --git a/mgl/libmgl_la-mgl_parse.o b/mgl/libmgl_la-mgl_parse.o
new file mode 100644
index 0000000..ccc77f2
Binary files /dev/null and b/mgl/libmgl_la-mgl_parse.o differ
diff --git a/mgl/libmgl_la-mgl_pde.lo b/mgl/libmgl_la-mgl_pde.lo
new file mode 100644
index 0000000..1d61ed5
--- /dev/null
+++ b/mgl/libmgl_la-mgl_pde.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_pde.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_pde.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_pde.o'
+
diff --git a/mgl/libmgl_la-mgl_pde.o b/mgl/libmgl_la-mgl_pde.o
new file mode 100644
index 0000000..5849520
Binary files /dev/null and b/mgl/libmgl_la-mgl_pde.o differ
diff --git a/mgl/libmgl_la-mgl_tex_table.lo b/mgl/libmgl_la-mgl_tex_table.lo
new file mode 100644
index 0000000..3db3e25
--- /dev/null
+++ b/mgl/libmgl_la-mgl_tex_table.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_tex_table.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_tex_table.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_tex_table.o'
+
diff --git a/mgl/libmgl_la-mgl_tex_table.o b/mgl/libmgl_la-mgl_tex_table.o
new file mode 100644
index 0000000..eafa93a
Binary files /dev/null and b/mgl/libmgl_la-mgl_tex_table.o differ
diff --git a/mgl/libmgl_la-mgl_vect.lo b/mgl/libmgl_la-mgl_vect.lo
new file mode 100644
index 0000000..4044d79
--- /dev/null
+++ b/mgl/libmgl_la-mgl_vect.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_vect.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_vect.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_vect.o'
+
diff --git a/mgl/libmgl_la-mgl_vect.o b/mgl/libmgl_la-mgl_vect.o
new file mode 100644
index 0000000..e0b462f
Binary files /dev/null and b/mgl/libmgl_la-mgl_vect.o differ
diff --git a/mgl/libmgl_la-mgl_zb.lo b/mgl/libmgl_la-mgl_zb.lo
new file mode 100644
index 0000000..9f6743e
--- /dev/null
+++ b/mgl/libmgl_la-mgl_zb.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_zb.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_zb.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_zb.o'
+
diff --git a/mgl/libmgl_la-mgl_zb.o b/mgl/libmgl_la-mgl_zb.o
new file mode 100644
index 0000000..08c25b3
Binary files /dev/null and b/mgl/libmgl_la-mgl_zb.o differ
diff --git a/mgl/libmgl_la-mgl_zb2.lo b/mgl/libmgl_la-mgl_zb2.lo
new file mode 100644
index 0000000..89e36d2
--- /dev/null
+++ b/mgl/libmgl_la-mgl_zb2.lo
@@ -0,0 +1,12 @@
+# libmgl_la-mgl_zb2.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_la-mgl_zb2.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_la-mgl_zb2.o'
+
diff --git a/mgl/libmgl_la-mgl_zb2.o b/mgl/libmgl_la-mgl_zb2.o
new file mode 100644
index 0000000..d828d1a
Binary files /dev/null and b/mgl/libmgl_la-mgl_zb2.o differ
diff --git a/texinfo/Makefile b/texinfo/Makefile
new file mode 100644
index 0000000..4a00098
--- /dev/null
+++ b/texinfo/Makefile
@@ -0,0 +1,1058 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# texinfo/Makefile.  Generated from Makefile.in by configure.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+pkgdatadir = $(datadir)/mathgl
+pkgincludedir = $(includedir)/mathgl
+pkglibdir = $(libdir)/mathgl
+pkglibexecdir = $(libexecdir)/mathgl
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-pc-linux-gnu
+host_triplet = x86_64-pc-linux-gnu
+subdir = texinfo
+DIST_COMMON = $(mathgl_en_TEXINFOS) $(mathgl_ru_TEXINFOS) \
+	$(mgl_en_TEXINFOS) $(mgl_ru_TEXINFOS) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
+	$(top_srcdir)/config/libtool.m4 \
+	$(top_srcdir)/config/ltoptions.m4 \
+	$(top_srcdir)/config/ltsugar.m4 \
+	$(top_srcdir)/config/ltversion.m4 \
+	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/include/mgl/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+INFO_DEPS = mathgl_en.info mathgl_ru.info mgl_en.info mgl_ru.info
+TEXINFO_TEX = $(top_srcdir)/config/texinfo.tex
+am__TEXINFO_TEX_DIR = $(top_srcdir)/config
+DVIS = mathgl_en.dvi mathgl_ru.dvi mgl_en.dvi mgl_ru.dvi
+PDFS = mathgl_en.pdf mathgl_ru.pdf mgl_en.pdf mgl_ru.pdf
+PSS = mathgl_en.ps mathgl_ru.ps mgl_en.ps mgl_ru.ps
+HTMLS = mathgl_en.html mathgl_ru.html mgl_en.html mgl_ru.html
+TEXINFOS = mathgl_en.texi mathgl_ru.texi mgl_en.texi mgl_ru.texi
+TEXI2DVI = texi2dvi
+DVIPS = dvips
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+	html-recursive info-recursive install-data-recursive \
+	install-dvi-recursive install-exec-recursive \
+	install-html-recursive install-info-recursive \
+	install-pdf-recursive install-ps-recursive install-recursive \
+	installcheck-recursive installdirs-recursive pdf-recursive \
+	ps-recursive uninstall-recursive
+am__installdirs = "$(DESTDIR)$(infodir)"
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
+  distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+	distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
+ACLOCAL = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run aclocal-1.11
+AMTAR = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run tar
+AM_CXXFLAGS = -Wall -I/usr/include
+AR = ar
+AS = as
+AUTOCONF = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run automake-1.11
+AWK = gawk
+CC = x86_64-linux-gnu-gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -Wall -g -O2
+CPP = x86_64-linux-gnu-gcc -E
+CPPFLAGS = 
+CXX = x86_64-linux-gnu-g++
+CXXCPP = x86_64-linux-gnu-g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DLLTOOL = dlltool
+DSYMUTIL = 
+DUMPBIN = 
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /bin/grep -E
+EXEEXT = 
+FGREP = /bin/grep -F
+FLTK_FLAGS = -I/usr/include/freetype2 -g -O2 -D_THREAD_SAFE -D_REENTRANT
+FLTK_LIBS = -lfltk
+GIF_FLAGS = -DHAVE_GIF
+GIF_LIBS = -lgif
+GLUT_FLAGS = -DHAVE_GLUT
+GLUT_LIBS = -lglut
+GL_LIBS = -lGL
+GREP = /bin/grep
+GSL_FLAGS = -I/usr/include
+GSL_LIBS = -L/usr/lib -lgsl -lgslcblas -lm
+HAVE_SWIG = true
+HDF4_FLAGS = -DHAVE_HDF4
+HDF4_LIBS = -lmfhdf -ldf
+HDF5_FLAGS = -DHAVE_HDF5 -DH5_USE_16_API
+HDF5_LIBS = -lhdf5
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+JPEG_FLAGS = -DHAVE_JPEG
+JPEG_LIBS = -ljpeg
+LD = /usr/bin/ld -m elf_x86_64
+LDFLAGS = 
+LIBOBJS = 
+LIBS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIPO = 
+LN_S = ln -s
+LTLIBOBJS = 
+MAKEINFO = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run makeinfo
+MGL_AGE = 0
+MGL_CURRENT = 5
+MGL_RELEASE = 1.10
+MGL_REVISION = 0
+MKDIR_P = /bin/mkdir -p
+MOC = /usr/bin/moc-qt4
+NM = /usr/bin/nm -B
+NMEDIT = 
+OBJDUMP = objdump
+OBJEXT = o
+OCTAVE = octave-config
+OCTAVE_ARCH = x86_64-pc-linux-gnu-api-v37
+OCTAVE_INCFLAGS = -I/usr/include/octave-3.2.4
+OTOOL = 
+OTOOL64 = 
+PACKAGE = mathgl
+PACKAGE_BUGREPORT = mathgl.abalakin at gmail.com
+PACKAGE_NAME = mathgl
+PACKAGE_STRING = mathgl 1.10
+PACKAGE_TARNAME = mathgl
+PACKAGE_URL = 
+PACKAGE_VERSION = 1.10
+PATH_SEPARATOR = :
+PNG_LIBS = -lpng
+PTHREAD_FLAGS = -DHAVE_PTHREAD
+PTHREAD_LIBS = -lpthread
+PYTHON = /usr/bin/python
+PYTHON_EXEC_PREFIX = ${exec_prefix}
+PYTHON_HEADERS = -I/usr/include/python2.6 -I/usr/include/python2.6 -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes
+PYTHON_PLATFORM = linux2
+PYTHON_PREFIX = ${prefix}
+PYTHON_VERSION = 2.6
+QMAKE = /usr/bin/qmake-qt4
+QT_CFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(QT_DEFINES)
+QT_CPPFLAGS = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I.
+QT_CXXFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(QT_DEFINES)
+QT_DEFINES = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
+QT_INCPATH = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I.
+QT_LDFLAGS = 
+QT_LFLAGS = 
+QT_LIBS = -L/usr/lib -lQtGui -lQtCore -lpthread 
+QT_PATH = /usr/bin
+QT_VERSION = 4.6.3
+QT_VERSION_MAJOR = ok, looks like Qt 4
+RANLIB = ranlib
+RCC = /usr/bin/rcc
+SED = /bin/sed
+SET_MAKE = 
+SHELL = /bin/bash
+STRIP = strip
+TMPDIR = /tmp
+UIC = /usr/bin/uic-qt4
+VERSION = 1.10
+WX_FLAGS = -I/usr/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread
+WX_LIBS = -pthread   -lwx_gtk2u_richtext-2.8 -lwx_gtk2u_aui-2.8 -lwx_gtk2u_xrc-2.8 -lwx_gtk2u_qa-2.8 -lwx_gtk2u_html-2.8 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8 
+abs_builddir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/texinfo
+abs_srcdir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/texinfo
+abs_top_builddir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11
+abs_top_srcdir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11
+ac_ct_CC = 
+ac_ct_CXX = 
+ac_ct_DUMPBIN = 
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-pc-linux-gnu
+build_alias = x86_64-linux-gnu
+build_cpu = x86_64
+build_os = linux-gnu
+build_vendor = pc
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+host = x86_64-pc-linux-gnu
+host_alias = x86_64-linux-gnu
+host_cpu = x86_64
+host_os = linux-gnu
+host_vendor = pc
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${prefix}/share/info
+install_sh = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+lt_ECHO = echo
+mandir = ${prefix}/share/man
+mkdir_p = /bin/mkdir -p
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+pkgpyexecdir = ${pyexecdir}/mathgl
+pkgpythondir = ${pythondir}/mathgl
+prefix = /usr
+program_transform_name = s,x,x,
+psdir = ${docdir}
+pyexecdir = ${exec_prefix}/lib/python2.6/dist-packages
+pythondir = ${prefix}/lib/python2.6/dist-packages
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target_alias = 
+top_build_prefix = ../
+top_builddir = ..
+top_srcdir = ..
+SUBDIRS = png .
+CLEANFILES = mathgl_en.info mathgl_en.info-1 mathgl_en.info-2 mathgl_en.info-3 mgl_en.info \
+mathgl_ru.info mathgl_ru.info-1 mathgl_ru.info-2 mathgl_ru.info-3 mathgl_ru.info-4 mgl_ru.info
+
+MAKEINFOHTML = texi2html
+TEXI2PDF = texi2pdf
+AM_MAKEINFOHTMLFLAGS = --split=chapter
+AM_MAKEINFOFLAGS = --no-validate
+info_TEXINFOS = mathgl_en.texi mathgl_ru.texi mgl_en.texi mgl_ru.texi
+mathgl_en_TEXINFOS = \
+overview_en.texi example_en.texi core_en.texi class_en.texi widget_en.texi \
+data_en.texi other_en.texi mgl_cmd_en.texi samples_en.texi appendix_en.texi fdl.texi
+
+mathgl_ru_TEXINFOS = \
+overview_ru.texi example_ru.texi core_ru.texi class_ru.texi widget_ru.texi \
+data_ru.texi other_ru.texi mgl_cmd_ru.texi samples_ru.texi appendix_ru.texi fdl.texi
+
+mgl_en_TEXINFOS = \
+mgl_cmd_en.texi samples_en.texi ex_mgl_en.texi concept_en.texi fdl.texi
+
+mgl_ru_TEXINFOS = \
+mgl_cmd_ru.texi samples_ru.texi ex_mgl_ru.texi concept_ru.texi fdl.texi
+
+all: all-recursive
+
+.SUFFIXES:
+.SUFFIXES: .dvi .ps
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu texinfo/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu texinfo/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+mathgl_en.info: mathgl_en.texi $(mathgl_en_TEXINFOS)
+	restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+	rm -rf $$backupdir && mkdir $$backupdir && \
+	if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
+	  for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
+	    if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
+	  done; \
+	else :; fi && \
+	if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+	 -o $@ `test -f 'mathgl_en.texi' || echo '$(srcdir)/'`mathgl_en.texi; \
+	then \
+	  rc=0; \
+	else \
+	  rc=$$?; \
+	  $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
+	fi; \
+	rm -rf $$backupdir; exit $$rc
+
+mathgl_en.dvi: mathgl_en.texi $(mathgl_en_TEXINFOS) 
+	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+	$(TEXI2DVI) -o $@ `test -f 'mathgl_en.texi' || echo '$(srcdir)/'`mathgl_en.texi
+
+mathgl_en.pdf: mathgl_en.texi $(mathgl_en_TEXINFOS) 
+	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+	$(TEXI2PDF) -o $@ `test -f 'mathgl_en.texi' || echo '$(srcdir)/'`mathgl_en.texi
+
+mathgl_en.html: mathgl_en.texi $(mathgl_en_TEXINFOS) 
+	rm -rf $(@:.html=.htp)
+	if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+	 -o $(@:.html=.htp) `test -f 'mathgl_en.texi' || echo '$(srcdir)/'`mathgl_en.texi; \
+	then \
+	  rm -rf $@; \
+	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+	    mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \
+	else \
+	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+	    rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \
+	  exit 1; \
+	fi
+
+mathgl_ru.info: mathgl_ru.texi $(mathgl_ru_TEXINFOS)
+	restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+	rm -rf $$backupdir && mkdir $$backupdir && \
+	if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
+	  for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
+	    if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
+	  done; \
+	else :; fi && \
+	if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+	 -o $@ `test -f 'mathgl_ru.texi' || echo '$(srcdir)/'`mathgl_ru.texi; \
+	then \
+	  rc=0; \
+	else \
+	  rc=$$?; \
+	  $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
+	fi; \
+	rm -rf $$backupdir; exit $$rc
+
+mathgl_ru.dvi: mathgl_ru.texi $(mathgl_ru_TEXINFOS) 
+	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+	$(TEXI2DVI) -o $@ `test -f 'mathgl_ru.texi' || echo '$(srcdir)/'`mathgl_ru.texi
+
+mathgl_ru.pdf: mathgl_ru.texi $(mathgl_ru_TEXINFOS) 
+	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+	$(TEXI2PDF) -o $@ `test -f 'mathgl_ru.texi' || echo '$(srcdir)/'`mathgl_ru.texi
+
+mathgl_ru.html: mathgl_ru.texi $(mathgl_ru_TEXINFOS) 
+	rm -rf $(@:.html=.htp)
+	if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+	 -o $(@:.html=.htp) `test -f 'mathgl_ru.texi' || echo '$(srcdir)/'`mathgl_ru.texi; \
+	then \
+	  rm -rf $@; \
+	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+	    mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \
+	else \
+	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+	    rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \
+	  exit 1; \
+	fi
+
+mgl_en.info: mgl_en.texi $(mgl_en_TEXINFOS)
+	restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+	rm -rf $$backupdir && mkdir $$backupdir && \
+	if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
+	  for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
+	    if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
+	  done; \
+	else :; fi && \
+	if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+	 -o $@ `test -f 'mgl_en.texi' || echo '$(srcdir)/'`mgl_en.texi; \
+	then \
+	  rc=0; \
+	else \
+	  rc=$$?; \
+	  $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
+	fi; \
+	rm -rf $$backupdir; exit $$rc
+
+mgl_en.dvi: mgl_en.texi $(mgl_en_TEXINFOS) 
+	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+	$(TEXI2DVI) -o $@ `test -f 'mgl_en.texi' || echo '$(srcdir)/'`mgl_en.texi
+
+mgl_en.pdf: mgl_en.texi $(mgl_en_TEXINFOS) 
+	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+	$(TEXI2PDF) -o $@ `test -f 'mgl_en.texi' || echo '$(srcdir)/'`mgl_en.texi
+
+mgl_en.html: mgl_en.texi $(mgl_en_TEXINFOS) 
+	rm -rf $(@:.html=.htp)
+	if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+	 -o $(@:.html=.htp) `test -f 'mgl_en.texi' || echo '$(srcdir)/'`mgl_en.texi; \
+	then \
+	  rm -rf $@; \
+	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+	    mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \
+	else \
+	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+	    rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \
+	  exit 1; \
+	fi
+
+mgl_ru.info: mgl_ru.texi $(mgl_ru_TEXINFOS)
+	restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+	rm -rf $$backupdir && mkdir $$backupdir && \
+	if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
+	  for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
+	    if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
+	  done; \
+	else :; fi && \
+	if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+	 -o $@ `test -f 'mgl_ru.texi' || echo '$(srcdir)/'`mgl_ru.texi; \
+	then \
+	  rc=0; \
+	else \
+	  rc=$$?; \
+	  $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
+	fi; \
+	rm -rf $$backupdir; exit $$rc
+
+mgl_ru.dvi: mgl_ru.texi $(mgl_ru_TEXINFOS) 
+	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+	$(TEXI2DVI) -o $@ `test -f 'mgl_ru.texi' || echo '$(srcdir)/'`mgl_ru.texi
+
+mgl_ru.pdf: mgl_ru.texi $(mgl_ru_TEXINFOS) 
+	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+	$(TEXI2PDF) -o $@ `test -f 'mgl_ru.texi' || echo '$(srcdir)/'`mgl_ru.texi
+
+mgl_ru.html: mgl_ru.texi $(mgl_ru_TEXINFOS) 
+	rm -rf $(@:.html=.htp)
+	if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+	 -o $(@:.html=.htp) `test -f 'mgl_ru.texi' || echo '$(srcdir)/'`mgl_ru.texi; \
+	then \
+	  rm -rf $@; \
+	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+	    mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \
+	else \
+	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+	    rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \
+	  exit 1; \
+	fi
+.dvi.ps:
+	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+	$(DVIPS) -o $@ $<
+
+uninstall-dvi-am:
+	@$(NORMAL_UNINSTALL)
+	@list='$(DVIS)'; test -n "$(dvidir)" || list=; \
+	for p in $$list; do \
+	  $(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(dvidir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(dvidir)/$$f"; \
+	done
+
+uninstall-html-am:
+	@$(NORMAL_UNINSTALL)
+	@list='$(HTMLS)'; test -n "$(htmldir)" || list=; \
+	for p in $$list; do \
+	  $(am__strip_dir) \
+	  echo " rm -rf '$(DESTDIR)$(htmldir)/$$f'"; \
+	  rm -rf "$(DESTDIR)$(htmldir)/$$f"; \
+	done
+
+uninstall-info-am:
+	@$(PRE_UNINSTALL)
+	@if test -d '$(DESTDIR)$(infodir)' && \
+	    (install-info --version && \
+	     install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+	  list='$(INFO_DEPS)'; \
+	  for file in $$list; do \
+	    relfile=`echo "$$file" | sed 's|^.*/||'`; \
+	    echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \
+	    if install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \
+	    then :; else test ! -f "$(DESTDIR)$(infodir)/$$relfile" || exit 1; fi; \
+	  done; \
+	else :; fi
+	@$(NORMAL_UNINSTALL)
+	@list='$(INFO_DEPS)'; \
+	for file in $$list; do \
+	  relfile=`echo "$$file" | sed 's|^.*/||'`; \
+	  relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \
+	  (if test -d "$(DESTDIR)$(infodir)" && cd "$(DESTDIR)$(infodir)"; then \
+	     echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \
+	     rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \
+	   else :; fi); \
+	done
+
+uninstall-pdf-am:
+	@$(NORMAL_UNINSTALL)
+	@list='$(PDFS)'; test -n "$(pdfdir)" || list=; \
+	for p in $$list; do \
+	  $(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(pdfdir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(pdfdir)/$$f"; \
+	done
+
+uninstall-ps-am:
+	@$(NORMAL_UNINSTALL)
+	@list='$(PSS)'; test -n "$(psdir)" || list=; \
+	for p in $$list; do \
+	  $(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(psdir)/$$f"; \
+	done
+
+dist-info: $(INFO_DEPS)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	list='$(INFO_DEPS)'; \
+	for base in $$list; do \
+	  case $$base in \
+	    $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \
+	  esac; \
+	  if test -f $$base; then d=.; else d=$(srcdir); fi; \
+	  base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \
+	  for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \
+	    if test -f $$file; then \
+	      relfile=`expr "$$file" : "$$d/\(.*\)"`; \
+	      test -f "$(distdir)/$$relfile" || \
+		cp -p $$file "$(distdir)/$$relfile"; \
+	    else :; fi; \
+	  done; \
+	done
+
+mostlyclean-aminfo:
+	-rm -rf mathgl_en.aux mathgl_en.cp mathgl_en.cps mathgl_en.fn mathgl_en.fns \
+	  mathgl_en.ky mathgl_en.kys mathgl_en.log mathgl_en.pg \
+	  mathgl_en.tmp mathgl_en.toc mathgl_en.tp mathgl_en.tps \
+	  mathgl_en.vr mathgl_en.vrs mathgl_ru.aux mathgl_ru.cp \
+	  mathgl_ru.cps mathgl_ru.fn mathgl_ru.fns mathgl_ru.ky \
+	  mathgl_ru.kys mathgl_ru.log mathgl_ru.pg mathgl_ru.tmp \
+	  mathgl_ru.toc mathgl_ru.tp mathgl_ru.tps mathgl_ru.vr \
+	  mathgl_ru.vrs mgl_en.aux mgl_en.cp mgl_en.cps mgl_en.fn \
+	  mgl_en.fns mgl_en.ky mgl_en.kys mgl_en.log mgl_en.pg \
+	  mgl_en.tmp mgl_en.toc mgl_en.tp mgl_en.tps mgl_en.vr \
+	  mgl_en.vrs mgl_ru.aux mgl_ru.cp mgl_ru.cps mgl_ru.fn \
+	  mgl_ru.fns mgl_ru.ky mgl_ru.kys mgl_ru.log mgl_ru.pg \
+	  mgl_ru.tmp mgl_ru.toc mgl_ru.tp mgl_ru.tps mgl_ru.vr \
+	  mgl_ru.vrs
+
+clean-aminfo:
+	-test -z "mathgl_en.dvi mathgl_en.pdf mathgl_en.ps mathgl_en.html mathgl_ru.dvi \
+	  mathgl_ru.pdf mathgl_ru.ps mathgl_ru.html mgl_en.dvi \
+	  mgl_en.pdf mgl_en.ps mgl_en.html mgl_ru.dvi mgl_ru.pdf \
+	  mgl_ru.ps mgl_ru.html" \
+	|| rm -rf mathgl_en.dvi mathgl_en.pdf mathgl_en.ps mathgl_en.html mathgl_ru.dvi \
+	  mathgl_ru.pdf mathgl_ru.ps mathgl_ru.html mgl_en.dvi \
+	  mgl_en.pdf mgl_en.ps mgl_en.html mgl_ru.dvi mgl_ru.pdf \
+	  mgl_ru.ps mgl_ru.html
+
+maintainer-clean-aminfo:
+	@list='$(INFO_DEPS)'; for i in $$list; do \
+	  i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \
+	  echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \
+	  rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \
+	done
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+	@fail= failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+	fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+	@fail= failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	rev=''; for subdir in $$list; do \
+	  if test "$$subdir" = "."; then :; else \
+	    rev="$$subdir $$rev"; \
+	  fi; \
+	done; \
+	rev="$$rev ."; \
+	target=`echo $@ | sed s/-recursive//`; \
+	for subdir in $$rev; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done && test -z "$$fail"
+tags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	done
+ctags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	set x; \
+	here=`pwd`; \
+	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+	  include_option=--etags-include; \
+	  empty_fix=.; \
+	else \
+	  include_option=--include; \
+	  empty_fix=; \
+	fi; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test ! -f $$subdir/TAGS || \
+	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+	  fi; \
+	done; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test -d "$(distdir)/$$subdir" \
+	    || $(MKDIR_P) "$(distdir)/$$subdir" \
+	    || exit 1; \
+	  fi; \
+	done
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+	    $(am__relativize); \
+	    new_distdir=$$reldir; \
+	    dir1=$$subdir; dir2="$(top_distdir)"; \
+	    $(am__relativize); \
+	    new_top_distdir=$$reldir; \
+	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+	    ($(am__cd) $$subdir && \
+	      $(MAKE) $(AM_MAKEFLAGS) \
+	        top_distdir="$$new_top_distdir" \
+	        distdir="$$new_distdir" \
+		am__remove_distdir=: \
+		am__skip_length_check=: \
+		am__skip_mode_fix=: \
+	        distdir) \
+	      || exit 1; \
+	  fi; \
+	done
+	$(MAKE) $(AM_MAKEFLAGS) \
+	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
+	  dist-info
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(INFO_DEPS) all-local
+installdirs: installdirs-recursive
+installdirs-am:
+	for dir in "$(DESTDIR)$(infodir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-aminfo clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am: $(DVIS)
+
+html: html-recursive
+
+html-am: $(HTMLS)
+
+info: info-recursive
+
+info-am: $(INFO_DEPS)
+
+install-data-am: install-data-local install-info-am
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am: $(DVIS)
+	@$(NORMAL_INSTALL)
+	test -z "$(dvidir)" || $(MKDIR_P) "$(DESTDIR)$(dvidir)"
+	@list='$(DVIS)'; test -n "$(dvidir)" || list=; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dvidir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(dvidir)" || exit $$?; \
+	done
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am: $(HTMLS)
+	@$(NORMAL_INSTALL)
+	test -z "$(htmldir)" || $(MKDIR_P) "$(DESTDIR)$(htmldir)"
+	@list='$(HTMLS)'; list2=; test -n "$(htmldir)" || list=; \
+	for p in $$list; do \
+	  if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  $(am__strip_dir) \
+	  if test -d "$$d$$p"; then \
+	    echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \
+	    $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
+	    echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
+	    $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \
+	  else \
+	    list2="$$list2 $$d$$p"; \
+	  fi; \
+	done; \
+	test -z "$$list2" || { echo "$$list2" | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldir)" || exit $$?; \
+	done; }
+install-info: install-info-recursive
+
+install-info-am: $(INFO_DEPS)
+	@$(NORMAL_INSTALL)
+	test -z "$(infodir)" || $(MKDIR_P) "$(DESTDIR)$(infodir)"
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
+	for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	  esac; \
+	  if test -f $$file; then d=.; else d=$(srcdir); fi; \
+	  file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \
+	  for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \
+	               $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \
+	    if test -f $$ifile; then \
+	      echo "$$ifile"; \
+	    else : ; fi; \
+	  done; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done
+	@$(POST_INSTALL)
+	@if (install-info --version && \
+	     install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+	  list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
+	  for file in $$list; do \
+	    relfile=`echo "$$file" | sed 's|^.*/||'`; \
+	    echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\
+	    install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\
+	  done; \
+	else : ; fi
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am: $(PDFS)
+	@$(NORMAL_INSTALL)
+	test -z "$(pdfdir)" || $(MKDIR_P) "$(DESTDIR)$(pdfdir)"
+	@list='$(PDFS)'; test -n "$(pdfdir)" || list=; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pdfdir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(pdfdir)" || exit $$?; done
+install-ps: install-ps-recursive
+
+install-ps-am: $(PSS)
+	@$(NORMAL_INSTALL)
+	test -z "$(psdir)" || $(MKDIR_P) "$(DESTDIR)$(psdir)"
+	@list='$(PSS)'; test -n "$(psdir)" || list=; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(psdir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(psdir)" || exit $$?; done
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-aminfo \
+	maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-aminfo mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am: $(PDFS)
+
+ps: ps-recursive
+
+ps-am: $(PSS)
+
+uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \
+	uninstall-local uninstall-pdf-am uninstall-ps-am
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+	install-am install-strip tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+	all all-am all-local check check-am clean clean-aminfo \
+	clean-generic clean-libtool ctags ctags-recursive dist-info \
+	distclean distclean-generic distclean-libtool distclean-tags \
+	distdir dvi dvi-am html html-am info info-am install \
+	install-am install-data install-data-am install-data-local \
+	install-dvi install-dvi-am install-exec install-exec-am \
+	install-html install-html-am install-info install-info-am \
+	install-man install-pdf install-pdf-am install-ps \
+	install-ps-am install-strip installcheck installcheck-am \
+	installdirs installdirs-am maintainer-clean \
+	maintainer-clean-aminfo maintainer-clean-generic mostlyclean \
+	mostlyclean-aminfo mostlyclean-generic mostlyclean-libtool pdf \
+	pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
+	uninstall-dvi-am uninstall-html-am uninstall-info-am \
+	uninstall-local uninstall-pdf-am uninstall-ps-am
+
+
+#mglpng=$(DESTDIR)$(docdir)/png_static
+
+#install-data-local: install-html install-pdf
+install-data-local: 
+#	mkdir -p $(mglpng)
+#	cp -r $(top_srcdir)/texinfo/png_static/*.png $(mglpng)
+uninstall-local:
+#	rm -rf $(mglpng)
+
+//all-local: html pdf
+all-local: html
+	./filter.py
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/texinfo/Makefile.in b/texinfo/Makefile.in
index d14dd39..da79aba 100644
--- a/texinfo/Makefile.in
+++ b/texinfo/Makefile.in
@@ -39,11 +39,7 @@ DIST_COMMON = $(mathgl_en_TEXINFOS) $(mathgl_ru_TEXINFOS) \
 	$(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
-	$(top_srcdir)/config/libtool.m4 \
-	$(top_srcdir)/config/ltoptions.m4 \
-	$(top_srcdir)/config/ltsugar.m4 \
-	$(top_srcdir)/config/ltversion.m4 \
-	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
diff --git a/.pc/debian-changes-1.11-1/config.log b/texinfo/mathgl.texi
similarity index 100%
rename from .pc/debian-changes-1.11-1/config.log
rename to texinfo/mathgl.texi
diff --git a/texinfo/mathgl_en.html/mathgl_en.html b/texinfo/mathgl_en.html/mathgl_en.html
new file mode 100644
index 0000000..cbf4442
--- /dev/null
+++ b/texinfo/mathgl_en.html/mathgl_en.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: MathGL</title>
+
+<meta name="description" content="MathGL 1.11: MathGL">
+<meta name="keywords" content="MathGL 1.11: MathGL">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Top"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL"></a>
+<h1 class="settitle">MathGL</h1>
+
+<p>This file documents the Mathematical Graphic Library (MathGL), a collection of classes and routines for scientific plotting. It corresponds to release 1.11 of the library. Please report any errors in this manual to <a href="mailto:mathgl.abalakin at gmail.org">mathgl.abalakin at gmail.org</a>. More information about MathGL can be found at the project homepage, <a href="http://mathgl.sourceforge.net/">http://mathgl.sourceforge.net/</a>.
+</p>
+<p>Copyright &copy; 2008 Alexey A. Balakin. 
+</p>
+<blockquote><p>Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being &ldquo;A GNU Manual,&rdquo;
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled &ldquo;GNU Free Documentation
+License.&rdquo;
+</p>
+<p>(a) The FSF&rsquo;s Back-Cover Text is: &ldquo;You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom.&rdquo;
+</p></blockquote>
+
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="mathgl_en_1.html#Overview">1. Overview</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_2.html#Examples">2. MathGL examples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_3.html#MathGL-core">3. MathGL core</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_4.html#Plotter-classes">4. Plotter classes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_5.html#Widget-classes">5. Widget classes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_6.html#mglData-class">6. mglData class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_7.html#Other-classes">7. Other classes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_8.html#MGL-interface">8. MGL language</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_9.html#Samples">9. Samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_10.html#TeX_002dlike-symbols">A. TeX-like symbols</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_11.html#Copying-This-Manual">B. GNU Free Documentation License</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_en_12.html#Index">Index</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+
+
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_en.html/mathgl_en_1.html b/texinfo/mathgl_en.html/mathgl_en_1.html
new file mode 100644
index 0000000..4e3a103
--- /dev/null
+++ b/texinfo/mathgl_en.html/mathgl_en_1.html
@@ -0,0 +1,922 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: 1. Overview</title>
+
+<meta name="description" content="MathGL 1.11: 1. Overview">
+<meta name="keywords" content="MathGL 1.11: 1. Overview">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Overview"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Why-have-I-written-MathGL_003f" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Overview-1"></a>
+<h1 class="chapter">1. Overview</h1>
+
+<a name="index-MathGL-overview"></a>
+
+<p>MathGL is ...
+</p><ul>
+<li>
+a library for making high-quality scientific graphics under Linux and Windows;
+</li><li>
+a library for the fast data plotting and handling of large data arrays;
+</li><li>
+a library for working in window and console modes and for easy embedding into other programs;
+</li><li>
+a library with large and growing set of graphics.
+</li></ul>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Why-have-I-written-MathGL_003f">1.1 Why have I written MathGL?</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#MathGL-features">1.2 MathGL features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Installation-and-usage">1.3 Installation and usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#General-concepts">1.4 General concepts</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#FAQ">1.5 FAQ</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Interfaces">1.6 Interfaces</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Thanks">1.7 Thanks</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Why-have-I-written-MathGL_003f"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Overview" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Why-have-I-written-MathGL_003f-1"></a>
+<h2 class="section">1.1 Why have I written MathGL?</h2>
+
+<p>A code for making high-quality scientific graphics under Linux and Windows. A  code for the fast handling and plotting of large data arrays. A code for working in window and console regimes and for easy including into another program. A code with large and renewal set of graphics. Exactly such a code I was looking for in the last years. Exactly such a code I tried to realize in MathGL library.
+</p>
+<p>At this version (1.11) MathGL has more than 20000 code strings, more than 40 general types of graphics for 1d, 2d and 3d data arrays. It can export graphics to bitmap and vector (EPS or SVG) files. It has OpenGL interface and can be used from console programs. It has functions for data handling and script MGL language for simplification of data plotting. It also has several types of transparency and smoothed lighting, vector fonts and TeX-like symbol parsing, arbitrary curvilinear coordinate system and many other useful things (see pictures section at <a href="http://mathgl.sf.net/">homepage</a>). Finally it is platform-independent and free (under GPL v.2.0 or later license).
+</p>
+<hr size="6">
+<a name="MathGL-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Why-have-I-written-MathGL_003f" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Installation-and-usage" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL-features-1"></a>
+<h2 class="section">1.2 MathGL features</h2>
+
+<p>MathGL can plot a wide range of graphics. It includes:
+</p><ul>
+<li>
+one-dimensional (Plot, Area, Bars, Step, Stem, Torus, Chart, Error, Tube, Mark, see section <a href="mathgl_en_3.html#g_t1D-plotting">1D plotting</a>);
+
+</li><li>
+two-dimensional plots (Mesh, Surf, Dens, Cont, ContF, Boxs, Axial, Fall, Belt, Tile, see section <a href="mathgl_en_3.html#g_t2D-plotting">2D plotting</a>);
+
+</li><li>
+three-dimensional plots (Surf3, Dens3, Cont3, ContF3, Cloud-like, see section <a href="mathgl_en_3.html#g_t3D-plotting">3D plotting</a>);
+
+</li><li>
+dual data plots: vector fields Vect and VectC, flow threads Flow, mapping chart Map, surfaces and isosurfaces, transparent or colored (i.e. with transparency or color varied) by other data SurfA, SurfC, Surf3A, Surf3C (see section <a href="mathgl_en_3.html#Dual-plotting">Dual plotting</a>);
+
+</li><li>
+and so on. For details see see section <a href="mathgl_en_3.html#MathGL-core">MathGL core</a>.
+</li></ul>
+
+<p>In fact, I created the functions for drawing of all the types of scientific plots that I know. The list of plots is growing; if you need some special type of a plot then please email me <a href="mailto:mathgl.abalakin at gmail.com">e-mail</a> and it will appear in the new version.
+</p>
+<p>I tried to make plots as nice looking as possible: e.g., a surface can be transparent and highlighted by several (up to 10) light sources. Most of the drawing functions have 2 variants: simple one for the fast plotting of data, complex one for specifying of the exact position of the plot (including parametric representation). Resulting image can be saved in bitmap (with the help of mglGraphZB, mglGraphGL) PNG, JPEG, TIFF, BMP format or in vector EPS or SVG format (with the help of mglGraphPS), or in IDTF format (with the help of mglGraphIDTF) which can be converted into U3D.
+</p>
+<p>All texts are drawn by vector fonts, which allows for high scalability and portability. Texts may contain commands for: some of the TeX-like symbols, changing index (upper or lower indexes) and the style of font inside the text string (see section <a href="mathgl_en_7.html#mglFont-class">mglFont class</a>). Texts of ticks are rotated with axis rotation. It is possible to create a legend of plot and put text in an arbitrary position on the plot. Arbitrary text encoding (by the help of function <code>setlocale()</code>) and UTF-16 encoding are supported.
+</p>
+<p>Special mglData class is used for data encapsulation (see section <a href="mathgl_en_6.html#mglData-class">mglData class</a>). In addition to a safe creation and deletion of data arrays it includes functions for data processing (smoothing, differentiating, integrating, interpolating and so on) and reading of data files with automatic size determination. Class mglData can handle arrays with up to three dimensions (arrays which depend on up to 3 independent indexes <em>a_ijk</em>). Using an array with higher number of dimensions is not meaningful, because I do not know how it can be plotted. Data filling and modification may be done manually or by textual formulas.
+</p>
+<p>The mglFormula class allows a fast evaluation of a textual mathematical expression (see section <a href="mathgl_en_7.html#mglFormula-class">mglFormula class</a>). It is based on string precompilation to tree-like code at the creation of class instance. At evaluation stage code performs only fast tree-walk and returns the value of the expression. In addition to changing data values, textual formulas are also used for drawing in <em>arbitrary</em> curvilinear coordinates. A set of such curvilinear coordinates is limited only by user&lt;/samp&gt;&amp;rsquo;s imagination rather than a fixed list like: polar, parabolic, spherical, and so on.
+</p>
+<hr size="6">
+<a name="Installation-and-usage"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MathGL-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Installation-and-usage-1"></a>
+<h2 class="section">1.3 Installation and usage</h2>
+
+<p>MathGL can be installed in 3 different ways.
+</p><ol>
+<li>
+Compile from sources. The standard script for autoconf/automake tool is included in the library beginning from version 1.2.1. To run it, one should execute 3 commands: <code>./configure</code> after it <code>make</code> and <code>make install</code> with root/sudo rights. Sometimes after installation you may need to update the library list &ndash; just execute <code>ldconfig</code> with root/sudo rights.
+
+<p>Script <code>./configure</code> have several additional options which are switched off by default. They are: <code>--enable-fltk, --enable-glut, --enable-qt</code> for ebabling FLTK, GLUT and/or Qt windows; <code>--enable-jpeg, --enable-tiff, --enable-hdf5</code> for enabling corresponding file formats; <code>--enable-all</code> for enabling all additional features. For using <code>double</code> as base internal data type use option <code>--enable-double</code>. For enabling language interfaces use <code>--enable-python, --enable-octave</code> or <code>--enable-langall</code> for all languages. The full list of options can be viewed by command <code>./configure --help</code>.
+</p></li><li>
+Use a precompiled binary. There are binaries for MinGW (platform Win32). For a precompiled variant one needs only to unpack the archive to the location of the compiler (or in any other folder and setup paths). By default, precompiled versions include the support of GSL (www.gsl.org) and PNG. So, one needs to have these libraries installed on system.
+</li><li>
+Install precompiled versions from standard packages (RPM, deb, DevPak and so on, see <a href="http://mathgl.sf.net/download.html">Download</a> section at homepage).
+</li></ol>
+
+<p>To compile your own program, you need to specify the linker option <code>-lmgl</code> for a compilation in the console program or with external (non-MathGL) window library. If you want to use FLTK or GLUT windows then you need to add the option <code>-lmgl-fltk</code> or <code>-lmgl-glut</code>. Fortran users also should add C++ library by the option <code>-lstdc++</code>.
+</p>
+<hr size="6">
+<a name="General-concepts"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Installation-and-usage" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Coordinate-axes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="General-concepts-1"></a>
+<h2 class="section">1.4 General concepts</h2>
+
+<p>The set of MathGL features is rather rich &ndash; just the number of basic graphics types 
+is larger than 40. Also there are functions for data handling, plot setup and so on. In spite of it I tried to keep a similar style in function names and in the order of arguments. Mostly it is 
+used for different drawing functions.
+</p>
+<p>There are six most general (base) concepts:
+</p><ol>
+<li>
+<strong>Any picture is created in memory first.</strong> The internal (memory) representation can be different: bitmap picture or the list of vector primitives. After that the user may decide what he/she want: save to file, display on the screen, run animation, do additional editing and so on. This approach assures a high portability of the program &ndash; the source code will produce exactly the same picture in <em>any</em> OS. Another big positive consequence is the ability to create the picture in the console program (using command line, without creating a window)!
+</li><li>
+<strong>Every plot settings (style of lines, font, color scheme) are specified by a string.</strong> It provides convenience for user/programmer &ndash; short string with parameters is more comprehensible than a large set of parameters. Also it provides portability &ndash; the strings are the same in any OS so that it is not necessary to think about argument types.
+</li><li>
+<strong>All functions have &ldquo;simplified&rdquo; and &ldquo;advanced&rdquo; forms.</strong> It is done for user&lt;/samp&gt;&amp;rsquo;s convenience. One needs to specify only one data array in the &ldquo;simplified&rdquo; form in order to see the result. But one may set parametric dependence of coordinates and produce rather complex curves and surfaces in the &ldquo;advanced&rdquo; form. In both cases the order of function arguments is the same: first data arrays, second the string with plot parameters, and later optional arguments for plot tuning.
+</li><li>
+<strong>All data arrays for plotting are encapsulated in mglData class.</strong> This reduces the number of errors while working with memory and provides a uniform interface for data of different types (float, double and so on) or for formula plotting.
+</li><li>
+<strong>All plots are vector plots.</strong> The MathGL library is intended for handling scientific data which have vector nature (lines, faces, matrices and so on). As a result, vector representation is used in all cases! In addition, the vector representation allows one to scale the plot easily &ndash; change the canvas size by a factor of 2, and the picture will be proportionally scaled.
+</li><li>
+<strong>New drawing never clears things drawn already.</strong> This, in some sense, unexpected, idea allows to create a lot of &ldquo;combined&rdquo; graphics. For example, to make a surface with contour lines one needs to call the function for surface plotting and the function for contour lines plotting (in any order). Thus the special functions for making this &ldquo;combined&rdquo; plots (as it is done in Matlab and some other plotting systems) are superfluous. Many more examples of such plots can be found in section <a href="mathgl_en_2.html#Hints">Hints</a> and in home site (<a href="http://mathgl.sf.net/index.html">http://mathgl.sf.net/index.html</a>).
+</li></ol>
+
+<p>In addition to the general concepts I want to comment on some non-trivial or less commonly used general ideas &ndash; plot positioning, axis specification and curvilinear coordinates, styles for lines, text and color scheme.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Coordinate-axes">1.4.1 Coordinate axes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Line-styles">1.4.2 Line styles</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Color-scheme">1.4.3 Color scheme</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-styles">1.4.4 Font styles</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Textual-formulas">1.4.5 Textual formulas</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+
+
+<hr size="6">
+<a name="Coordinate-axes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#General-concepts" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Line-styles" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Coordinate-axes-1"></a>
+<h3 class="subsection">1.4.1 Coordinate axes</h3>
+
+<p>Two axis representations are used in MathGL. The first one consists of normalizing the data point coordinates in a box <var>Min</var>x<var>Max</var> (see section <a href="mathgl_en_3.html#Axis-settings">Axis settings</a>). If <var>Cut</var> is <code>true</code> then the outlier points are omitted, otherwise they are projected to the bounding box (see section <a href="mathgl_en_3.html#Cutting">Cutting</a>). Also, the point will be omitted if it lies inside the box defined by <var>CutMin</var> x <var>CutMax</var> or if the value of formula <code>CutOff</code>() is nonzero for its coordinates. After that, transformation formulas are applied to the data point. Finally, the data point is plotted by one of the functions.
+</p>
+<p>There is a possibility to set members <var>Max</var>, <var>Min</var> directly, but one should call <code>RecalcBorder()</code> function to setup plotting routines. A safer way is to set these values by calling the <code>Axis()</code> function, which calls <code>RecalcBorder()</code> automatically. Another way to specify the scaling of the axis is to set it as a minimal or maximal value of the data array. Functions <code>XRange(), YRange(), ZRange()</code> do it. The second (optional) argument is used to replace the axis range or to join with the existed range.
+</p>
+<p>The axis origin is defined by the variable <var>Org</var> and is applied to all consequent calls of axes or grid drawing. By default, if this point lies outside the bounding box then it is projected onto the one (variable <var>AutoOrg</var> controls it). If one of the values of <var>Org</var> is equal to NAN then the corresponding value will be selected automatically.
+</p>
+<p>There is 4-th axis <em>c</em> (color axis or colorbar) in addition to the usual axes <em>x, y, z</em>. It sets the range of values for the surface coloring. Its borders are automatically set to values of Min.z, Max.z during the call of <code>Axis()</code> function. Also, one can directly change the color range by setting variables <var>Cmax</var>, <var>Cmax</var>, or calling functions <code>CAxis()</code> or <code>CRange()</code>. Use <code>Colorbar()</code> function for showing the colorbar.
+</p>
+<p>The form (appearence) of tick labels is controlled by <code>SetTicks()</code> function (see section <a href="mathgl_en_3.html#Axis-settings">Axis settings</a>). It has 3 arguments: first one <var>d</var> sets the tick step (if positive) or tick number (if negative) or switches logarithmic ticks on (if zero); the second one, <var>ns</var>, sets the number of subticks; the last one is the starting point for ticks (default is axis origin). Function <var>SetTuneTicks</var> switches on/off tick enhancing by factoring out acommon multiplier (for small coordinate values, like 0.001 to 0.002, or large, like from 1000 to 2000) or common component (for narrow range, like from 0.999 to 1.000). Finally, you may use functions <code>SetXTT(), SetYTT(), SetZTT(), SetCTT()</code> for setting templates for tick labels (it supports TeX symbols). Also, there is a possibility to print arbitrary text as tick labels the by help of <code>SetTicksVal()</code> function.
+</p>
+<hr size="6">
+<a name="Line-styles"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Coordinate-axes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Color-scheme" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Line-styles-1"></a>
+<h3 class="subsection">1.4.2 Line styles</h3>
+
+<a name="index-Line-style"></a>
+<a name="index-Mark-style"></a>
+<a name="index-Arrows"></a>
+
+<p>The line style is defined by the string which may contain specifications for color (&lsquo;<samp>wkrgbcymhRGBCYMHWlenupqLENUPQ</samp>&rsquo;), dashing style (&lsquo;<samp>-|;:ji</samp>&rsquo; or space), width (&lsquo;<samp>0123456789</samp>&rsquo;) and marks (&lsquo;<samp>o+xsd.^v</samp>&rsquo; and &lsquo;<samp>#</samp>&rsquo; modifier). If one of the type of information is omitted then default values used with the previous color or one from palette (for see section <a href="mathgl_en_3.html#g_t1D-plotting">1D plotting</a>) are adopted. 
+By default palette contain following colors: <span style="color: rgb(76, 76, 76);">dark gray</span> &lsquo;<samp>H</samp>&rsquo;, <span style="color: rgb(0, 0, 255);">blue</span> &lsquo;<samp>b</samp>&rsquo;, <span style="color: rgb(0, 255, 0);">green</span> &lsquo;<samp>g</samp>&rsquo;, <span style="color: rgb(255, 0, 0);">red</span> &lsquo;<samp>r</samp>&rsquo;, <span style="color: rgb(0, 255, 255);">cyan</span> &lsquo;<samp>c</samp>&rsquo;, <span style="color: rgb(255, 0, 255);">magenta</span> &lsquo;<samp>m</samp>&rsquo;, <span style="color: rgb(255, 255, 0);">yellow</span> &lsquo;<samp>y</samp>&rsquo;, <span style="color: rgb(127, 127, 127);">gray</span> &lsquo;<samp>h</samp>&rsquo;, <span style="color: rgb(0, 255, 127);">green-blue</span> &lsquo;<samp>l</samp>&rsquo;, <span style="color: rgb(0, 127, 255);">sky-blue</span> &lsquo;<samp>n</samp>&rsquo;, <span style="color: rgb(255, 127, 0);">orange</span> &lsquo;<samp>q</samp>&rsquo;, <span style="color: rgb(127, 255, 0);">green-yellow</span> &lsquo;<samp>e</samp>&rsquo;, <span style="color: rgb(127, 0, 255);">blue-violet</span> &lsquo;<samp>u</samp>&rsquo;, <span style="color: rgb(255, 0, 127);">purple</span> &lsquo;<samp>p</samp>&rsquo;.
+
+<p>The color types are: &lsquo;<samp>k</samp>&rsquo; -- black, &lsquo;<samp>r</samp>&rsquo; -- <span style="color: rgb(255, 0, 0);">red</span>, &lsquo;<samp>R</samp>&rsquo; -- <span style="color: rgb(127, 0, 0);">dark red</span>, &lsquo;<samp>g</samp>&rsquo; -- <span style="color: rgb(0, 255, 0);">green</span>, &lsquo;<samp>G</samp>&rsquo; -- <span style="color: rgb(0, 127, 0);">dark green</span>, &lsquo;<samp>b</samp>&rsquo; -- <span style="color: rgb(0, 0, 255);">blue</span>, &lsquo;<samp>B</samp>&rsquo; -- <span style="color: rgb(0, 0, 127);">dark blue</span>, &lsquo;<samp>c</samp>&rsquo; -- <span style="color: rgb(0, 255, 255);">cyan</span>, &lsquo;<samp>C</samp>&rsquo; -- <span style="color: rgb(0, 127, 127);">dark cyan</span>, &lsquo;<samp>m</samp>&rsquo; -- <span style="color: rgb(255, 0, 255);">magenta</span>, &lsquo;<samp>M</samp>&rsquo; -- <span style="color: rgb(127, 0, 127);">dark magenta</span>, &lsquo;<samp>y</samp>&rsquo; -- <span style="color: rgb(255, 255, 0);">yellow</span>, &lsquo;<samp>Y</samp>&rsquo; -- <span style="color: rgb(127, 127, 0);">dark yellow (gold)</span>, &lsquo;<samp>h</samp>&rsquo; -- <span style="color: rgb(127, 127, 127);">gray</span>, &lsquo;<samp>H</samp>&rsquo; -- <span style="color: rgb(76, 76, 76);">dark gray</span>, &lsquo;<samp>w</samp>&rsquo; -- white, &lsquo;<samp>W</samp>&rsquo; -- <span style="color: rgb(178, 178, 178);">bright gray</span>, &lsquo;<samp>l</samp>&rsquo; -- <span style="color: rgb(0, 255, 127);">green-blue</span>, &lsquo;<samp>L</samp>&rsquo; -- <span style="color: rgb(0, 127, 63);">dark green-blue</span>, &lsquo;<samp>e</samp>&rsquo; -- <span style="color: rgb(127, 255, 0);">green-yellow</span>, &lsquo;<samp>E</samp>&rsquo; -- <span style="color: rgb(63, 127, 0);">dark green-yellow</span>, &lsquo;<samp>n</samp>&rsquo; -- <span style="color: rgb(0, 127, 255);">sky-blue</span>, &lsquo;<samp>N</samp>&rsquo; -- <span style="color: rgb(0, 63, 127);">dark sky-blue</span>, &lsquo;<samp>u</samp>&rsquo; -- <span style="color: rgb(127, 0, 255);">blue-violet</span>, &lsquo;<samp>U</samp>&rsquo; -- <span style="color: rgb(63, 0, 127);">dark blue-violet</span>, &lsquo;<samp>p</samp>&rsquo; -- <span style="color: rgb(255, 0, 127);">purple</span>, &lsquo;<samp>P</samp>&rsquo; -- <span style="color: rgb(127, 0, 63);">dark purple</span>, &lsquo;<samp>q</samp>&rsquo; -- <span style="color: rgb(255, 127, 0);">orange</span>, &lsquo;<samp>Q</samp>&rsquo; -- <span style="color: rgb(127, 63, 0);">dark orange (brown)</span>.</p>
+
+Dashing style has the following meaning: space -- no line (usable for plotting only marks), &lsquo;<samp>-</samp>&rsquo; -- solid line (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;), &lsquo;<samp>|</samp>&rsquo; -- long dashed line (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>;</samp>&rsquo; -- dashed line (&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>=</samp>&rsquo; -- small dashed line (&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;), &lsquo;<samp>:</samp>&rsquo; -- dotted line (&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;), &lsquo;<samp>j</samp>&rsquo; -- dash-dotted line (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>i</samp>&rsquo; -- small dash-dotted line (&#9632;&#9632;&#9632;&#9633;&#9633;&#9632;&#9633;&#9633;&#9632;&#9632;&#9632;&#9633;&#9633;&#9632;&#9633;&#9633;).</p>
+<p>Marker types are: &lsquo;<samp>o</samp>&rsquo; &ndash; circle, &lsquo;<samp>+</samp>&rsquo; &ndash; cross, &lsquo;<samp>x</samp>&rsquo; &ndash; skew cross, &lsquo;<samp>s</samp>&rsquo; - square, &lsquo;<samp>d</samp>&rsquo; - rhomb (or diamond), &lsquo;<samp>.</samp>&rsquo; &ndash; dot (point), &lsquo;<samp>^</samp>&rsquo; &ndash; triangle up, &lsquo;<samp>v</samp>&rsquo; &ndash; triangle down, &lsquo;<samp>&lt;</samp>&rsquo; &ndash; triangle left, &lsquo;<samp>&gt;</samp>&rsquo; &ndash; triangle right, &lsquo;<samp>#*</samp>&rsquo; &ndash; Y sign, &lsquo;<samp>#+</samp>&rsquo; &ndash; squared cross, &lsquo;<samp>#x</samp>&rsquo; &ndash; squared skew cross, &lsquo;<samp>#.</samp>&rsquo; &ndash; circled dot. If string contain symbol &lsquo;<samp>#</samp>&rsquo; then the solid versions of markers are used.
+</p>
+<div class="float">
+<img src="../png/sample5.png" alt="../png/sample5">
+
+</div><p><strong>Styles of lines and marks.
+</strong>
+</p>
+<p>One may specify to draw a special symbol (an arrow) at the beginning and at the end of line. This is done if the specification string contains one of the following symbols: &lsquo;<samp>A</samp>&rsquo; &ndash; outer arrow, &lsquo;<samp>V</samp>&rsquo; &ndash; inner arrow, &lsquo;<samp>I</samp>&rsquo; &ndash; transverse hatches, &lsquo;<samp>K</samp>&rsquo; &ndash; arrow with hatches, &lsquo;<samp>T</samp>&rsquo; &ndash; triangle, &lsquo;<samp>S</samp>&rsquo; &ndash; square, &lsquo;<samp>D</samp>&rsquo; &ndash; rhombus, &lsquo;<samp>O</samp>&rsquo; &ndash; circle, &lsquo;<samp>_</samp>&rsquo; &ndash; nothing (the default). The following rule applies: the first symbol specifies the arrow at the end of line, the second specifies the arrow at the beginning of the line. For example, &lsquo;<samp>r-A</samp>&rsquo; defines a red solid line with usual arrow at the end, &lsquo;<samp>b|AI</samp>&rsquo; defines a blue dash line with an arrow at the end and with hatches at the beginning, &lsquo;<samp>_O</samp>&rsquo; defines a line with the current style and with a circle at the beginning. These styles are applicable during the graphics plotting as well (for example, <a href="mathgl_en_3.html#g_t1D-plotting">1D plotting</a>).
+</p>
+<div class="float">
+<img src="../png/sampled.png" alt="../png/sampled">
+
+</div><p><strong>Arrow styles.
+</strong>
+</p>
+<hr size="6">
+<a name="Color-scheme"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Line-styles" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-styles" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Color-scheme-1"></a>
+<h3 class="subsection">1.4.3 Color scheme</h3>
+
+<a name="index-Color-scheme"></a>
+
+<p>The color scheme is used for determining the color of surfaces, isolines, isosurfaces and so on. The color scheme is defined by the string, which may contain several characters that are color id (see section <a href="#Line-styles">Line styles</a>) or characters &lsquo;<samp>d#:|</samp>&rsquo;. Symbol &lsquo;<samp>d</samp>&rsquo; denotes the interpolation by 3d position instead of the coloring by amplitude. Symbol &lsquo;<samp>#</samp>&rsquo; switches to mesh drawing or to a wire plot. Symbol &lsquo;<samp>|</samp>&rsquo; disables color interpolation in color scheme, which can be useful, for example, for sharp colors during matrix plotting. Symbol &lsquo;<samp>:</samp>&rsquo; finishes the color scheme parsing. Following it, the user may put styles for the text, rotation axis for curves/isocontours, and so on. Color scheme may contain up to 32 color values.
+</p>
+<p>You may also use &ldquo;lighted&rdquo; colors in the color scheme specification (<em>not in line style!</em>). The &ldquo;lighted&rdquo; color contain 2 symbols: first one is the usual symbol for color specification, the second one is a digit for its brightness. The digit can be in range &lsquo;<samp>1</samp>&rsquo;...&lsquo;<samp>9</samp>&rsquo;. 
+Number &lsquo;<samp>5</samp>&rsquo; corresponds to a normal color, &lsquo;<samp>1</samp>&rsquo; is a very dark version of the color (practically black), and &lsquo;<samp>9</samp>&rsquo; is a very bright version of the color (practically white). For example, the color scheme can be &lsquo;<samp>b2b7wr7r2</samp>&rsquo;.
+</p>
+<div class="float">
+<img src="../png/colors.png" alt="../png/colors">
+
+</div><p><strong>Colors and its ids.
+</strong>
+</p>
+<p>For coloring by <em>amplitude</em> (most common) the final color is a linear interpolation of color array. The color array is constructed from the string ids. The argument is the amplitude normalized between <var>Cmin</var> &ndash; <var>Cmax</var> (see section <a href="mathgl_en_3.html#Axis-settings">Axis settings</a>). For example, string containing 4 characters &lsquo;<samp>bcyr</samp>&rsquo; corresponds to a colorbar from blue (lowest value) through cyan (next value) through yellow (next value) to the red (highest value). String &lsquo;<samp>kw</samp>&rsquo; corresponds to a colorbar from black (lowest value) to white (highest value). String &lsquo;<samp>m</samp>&rsquo; corresponds to a simple magenta color.
+</p>
+<p>There are several useful combinations. String &lsquo;<samp>kw</samp>&rsquo; corresponds to the simplest gray color scheme where higher values are brighter. String &lsquo;<samp>wk</samp>&rsquo; presents the inverse gray color scheme where higher value is darker. Strings &lsquo;<samp>kRryw</samp>&rsquo;, &lsquo;<samp>kGgw</samp>&rsquo;, &lsquo;<samp>kBbcw</samp>&rsquo; present the well-known <em>hot</em>, <em>summer</em> and <em>winter</em> color schemes. Strings &lsquo;<samp>BbwrR</samp>&rsquo; and &lsquo;<samp>bBkRr</samp>&rsquo; allow to view bi-color figure on white or black background, where negative values are blue and positive values are red. String &lsquo;<samp>BbcyrR</samp>&rsquo; gives a color scheme similar to the well-known <em>jet</em> color scheme.
+</p>
+<div class="float">
+<img src="../png/color_schemes.png" alt="../png/color_schemes">
+
+</div><p><strong>Most popular color schemes.
+</strong>
+</p>
+<p>When coloring by <em>coordinate</em>, the final color is determined by the position of the point in 3d space and is calculated from formula c=x*c[1] + y*c[2] + z*c[3]. Here, c[1], c[2], c[3] are the first three elements of color array; x, y, z are normalized to <var>Min</var> &ndash; <var>Max</var> coordinates of the point. This type of coloring is useful for isosurface plot where color may show the exact position of a piece of surface.
+</p>
+<hr size="6">
+<a name="Font-styles"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Color-scheme" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Textual-formulas" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Font-styles-1"></a>
+<h3 class="subsection">1.4.4 Font styles</h3>
+
+<a name="index-Font-styles"></a>
+
+<p>Text style is specified by the string which may contain several characters of font (&lsquo;<samp>ribwou</samp>&rsquo;) and/or alignment (&lsquo;<samp>LRC</samp>&rsquo;) specifications. The string also may contain the color id characters &lsquo;<samp>wkrgbcymhRGBCYMHW</samp>&rsquo; (see section <a href="#Line-styles">Line styles</a>) after the symbol &lsquo;<samp>:</samp>&rsquo;. For example, &lsquo;<samp>biC:b</samp>&rsquo; sets the bold italic font text aligned at the center and with blue color.
+</p>
+<p>The font types are: &lsquo;<samp>r</samp>&rsquo; &ndash; roman font, &lsquo;<samp>i</samp>&rsquo; &ndash; italic style, &lsquo;<samp>b</samp>&rsquo; &ndash; bold style. By default roman roman font is used. The align types are: &lsquo;<samp>L</samp>&rsquo; &ndash; align left (default), &lsquo;<samp>C</samp>&rsquo; &ndash; align center, &lsquo;<samp>R</samp>&rsquo; &ndash; align right. Additional font effects are: &lsquo;<samp>w</samp>&rsquo; &ndash; wired, &lsquo;<samp>o</samp>&rsquo; &ndash; over-lined, &lsquo;<samp>u</samp>&rsquo; &ndash; underlined. 
+</p>
+<p>Also a parsing of the LaTeX-like syntax is provided. There are commands for the font style changing inside the string (for example, use \b for bold font): \a or \overline &ndash; over-lined, \b or \textbf &ndash; bold, \i or \textit &ndash; italic, \r or \textrm &ndash; roman (disable bold and italic attributes), \u or \underline &ndash; underlined, \w or \wire &ndash; wired, \big &ndash; bigger size, @ &ndash; smaller size. The lower and upper indexes are specified by &lsquo;<samp>_</samp>&rsquo; and &lsquo;<samp>^</samp>&rsquo; symbols. At this the changed font style is applied only on next symbol or symbols in braces {}. The text in braces {} are treated as single symbol that allow one to print the index of index. For example, compare the strings &lsquo;<samp>sin (x^{2^3})</samp>&rsquo; and &lsquo;<samp>sin (x^2^3)</samp>&rsquo;. You may also change text color inside string by command #? or by \color? where &lsquo;<samp>?</samp>&rsquo; is symbolic id of the color (see section <a href="#Line-styles">Line styles</a>). For example, words &lsquo;<samp>Blue</samp>&rsquo; and &lsquo;<samp>red</samp>&rsquo; will be colored in the string &lsquo;<samp>#b{Blue} and \colorr{red} text</samp>&rsquo;. The most of functions understand the newline symbol &lsquo;<samp>\n</samp>&rsquo; and allows to print multi-line text. Finally, you can use arbitrary UTF codes by command <code>\utf0x????</code>. For example, <code>\utf0x3b1</code> will produce
+ &alpha; symbol.</p>
+<p>The most of commands for special TeX or AMSTeX symbols, the commands for font style changing (\textrm, \textbf, \textit, \textsc, \overline, \underline), accents (\hat, \tilde, \dot, \ddot, \acute, \check, \grave, \bar, \breve) and roots (\sqrt, \sqrt3, \sqrt4) are recognized. The full list contain approximately 2000 commands. Note that first space symbol after the command is ignored, but second one is printed as normal symbol (space). For example, the following strings produce the same result <em>\tilde a</em>: &lsquo;<samp>\tilde{a}</samp>&rsquo;; &lsquo;<samp>\tilde a</samp>&rsquo;; &lsquo;<samp>\tilde{}a</samp>&rsquo;.
+</p>
+In particular, the Greek letters are recognizable special symbols: &alpha; &ndash; \alpha, &beta; &ndash; \beta, &gamma; &ndash; \gamma, &delta; &ndash; \delta, &epsilon; &ndash; \epsilon, &eta; &ndash; \eta, &iota; &ndash; \iota, &chi; &ndash; \chi, &kappa; &ndash; \kappa, &lambda; &ndash; \lambda, &mu; &ndash; \mu, &nu; &ndash; \nu, o &ndash; \o, &omega; &ndash; \omega, &#981; &ndash; \phi, &pi; &ndash; \pi, &psi; &ndash; \psi, &rho; &ndash; \rho, &sigma; &ndash; \sigma, &theta; &ndash; \theta, &tau; &ndash; \tau, &upsilon; &ndash; \upsilon, &xi; &ndash; \xi, &zeta; &ndash; \zeta, &sigmaf; &ndash; \varsigma, &#603; &ndash; \varepsilon, &thetasym; &ndash; \vartheta, &phi; &ndash; \varphi, &#1008; &ndash; \varkappa; A &ndash; \Alpha, B &ndash; \Beta, &Gamma; &ndash; \Gamma, &Delta; &ndash; \Delta, E &ndash; \Epsilon, H &ndash; \Eta, I &ndash; \Iota, C &ndash; \Chi, K &ndash; \Kappa, &Lambda; &ndash; \Lambda, M &ndash; \Mu, N &ndash; \Nu, O &ndash; \O, &Omega; &ndash; \Omega, &Phi; &ndash; \Phi, &Pi; &ndash; \Pi, &Psi; &ndash; \Psi, R &ndash; \Rho, &Sigma; &ndash; \Sigma, &Theta; &ndash; \Theta, T &ndash; \Tau, &Upsilon; &ndash; \Upsilon, &Xi; &ndash; \Xi, Z &ndash; \Zeta.
+
+<p>The small part of most common special TeX symbols are: &ang; &ndash; \angle, &sdot; &ndash; \cdot, &clubs; &ndash; \clubsuit, &#10003; &ndash; \checkmark, &cup; &ndash; \cup, &cap; &ndash; \cap, &#9826; &ndash; \diamondsuit, &#9671; &ndash; \diamond, &divide;
+ &ndash; \div, 
+&darr; &ndash; \downarrow, &dagger; &ndash; \dag, &Dagger; &ndash; \ddag, &equiv; &ndash; \equiv, &exist; &ndash; \exists, &#8994; &ndash; \frown, &#9837; &ndash; \flat, &ge; &ndash; \ge, &ge; &ndash; \geq, &#8807; &ndash; \geqq, &larr; &ndash; \gets, &#9825; &ndash; \heartsuit, &infin; &ndash; \infty, &int; &ndash; \int, \Int, &image;  &ndash; \Im, &#9826; &ndash; \lozenge, &#10216; &ndash; \langle, &le; &ndash; \le, &le; &ndash; \leq, &#8806; &ndash; \leqq, &larr; &ndash; \leftarrow, &#8723; &ndash; \mp, &nabla; &ndash; \nabla, &ne; &ndash; \ne, &ne; &ndash; \neq, &#9838; &ndash; \natural, &#8750; &ndash; \oint, &#8857; &ndash; \odot, &oplus; &ndash; \oplus, &part; &ndash; \partial, &#8741; &ndash; \parallel, &perp; &ndash;\perp, &plusmn; &ndash; \pm, &prop; &ndash; \propto, &prod; &ndash; \prod, &real; &ndash; \Re, &rarr; &ndash; \rightarrow, &#10217; &ndash; \rangle, &spades; &ndash; \spadesuit, ~ &ndash; \sim, &#8995; &ndash; \smile, &sub;  &ndash; \subset, &sup; &ndash; \supset, &radic; &ndash; \sqrt or \surd, &sect; &ndash; \S, &#9839; &ndash; \sharp, &sum; &ndash; \sum, &times; &ndash; \times, &rarr; &ndash; \to, &there4; &ndash; \therefore, &uarr; &ndash; \uparrow, &weierp; &ndash; \wp. </p>
+<p>The font size can be defined explicitly (if <var>size</var>&gt;0) or relative to a base font size as |<var>size</var>|*<var>FontSize</var> (if <var>size</var>&lt;0). The value <var>size</var>=0 specifies that the string will not be printed. The base font size is measured in internal &ldquo;MathGL&rdquo; units. Special functions <code>SetFontSizePT(), SetFontSizeCM(), SetFontSizeIN()</code> allow one to set it in more &ldquo;common&rdquo; variables for a given dpi value of the picture.
+</p>
+
+<hr size="6">
+<a name="Textual-formulas"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-styles" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#FAQ" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Textual-formulas-1"></a>
+<h3 class="subsection">1.4.5 Textual formulas</h3>
+
+<a name="index-Textual-formulas"></a>
+
+<p>MathGL have the fast variant of textual formula evaluation 
+ (see section <a href="mathgl_en_7.html#mglFormula-class">mglFormula class</a>)
+. There are a lot of functions and operators available. The operators are: &lsquo;<samp>+</samp>&rsquo; &ndash; addition, &lsquo;<samp>-</samp>&rsquo; &ndash; subtraction, &lsquo;<samp>*</samp>&rsquo; &ndash; multiplication, &lsquo;<samp>/</samp>&rsquo; &ndash; division, &lsquo;<samp>^</samp>&rsquo; &ndash; integer power. Also there are logical &ldquo;operators&rdquo;: &lsquo;<samp>&lt;</samp>&rsquo; &ndash; true if x&lt;y, &lsquo;<samp>&gt;</samp>&rsquo; &ndash; true if x&gt;y, &lsquo;<samp>=</samp>&rsquo; &ndash; true if x=y, &lsquo;<samp>&amp;</samp>&rsquo; &ndash; true if x and y both nonzero, &lsquo;<samp>|</samp>&rsquo; &ndash; true if x or y nonzero. These logical operators have lowest priority and return 1 if true or 0 if false.
+</p>
+<p>The basic functions are: &lsquo;<samp>sqrt(x)</samp>&rsquo; &ndash; square root of <var>x</var>, &lsquo;<samp>pow(x,y)</samp>&rsquo; &ndash; power <var>x</var> in <var>y</var>, &lsquo;<samp>ln(x)</samp>&rsquo; &ndash; natural logarithm of <var>x</var>, &lsquo;<samp>lg(x)</samp>&rsquo; &ndash; decimal logarithm of <var>x</var>, &lsquo;<samp>log(a,x)</samp>&rsquo; &ndash; logarithm base <var>a</var> of <var>x</var>, &lsquo;<samp>abs(x)</samp>&rsquo; &ndash; absolute value of <var>x</var>, &lsquo;<samp>sign(x)</samp>&rsquo; &ndash; sign of <var>x</var>, &lsquo;<samp>mod(x,y)</samp>&rsquo; &ndash; x modulo y, &lsquo;<samp>step(x)</samp>&rsquo; &ndash; step function, &lsquo;<samp>int(x)</samp>&rsquo; &ndash; integer part of <var>x</var>, &lsquo;<samp>rnd</samp>&rsquo; &ndash; random number, &lsquo;<samp>pi</samp>&rsquo; &ndash; number
+&pi; = 3.1415926&hellip;</p>
+
+<p>Trigonometric functions are: &lsquo;<samp>sin(x)</samp>&rsquo;, &lsquo;<samp>cos(x)</samp>&rsquo;, &lsquo;<samp>tan(x)</samp>&rsquo; (or &lsquo;<samp>tg(x)</samp>&rsquo;). Inverse trigonometric functions are: &lsquo;<samp>asin(x)</samp>&rsquo;, &lsquo;<samp>acos(x)</samp>&rsquo;, &lsquo;<samp>atan(x)</samp>&rsquo;. Hyperbolic functions are: &lsquo;<samp>sinh(x)</samp>&rsquo; (or &lsquo;<samp>sh(x)</samp>&rsquo;), &lsquo;<samp>cosh(x)</samp>&rsquo; (or &lsquo;<samp>ch(x)</samp>&rsquo;), &lsquo;<samp>tanh(x)</samp>&rsquo; (or &lsquo;<samp>th(x)</samp>&rsquo;). Inverse hyperbolic functions are: &lsquo;<samp>asinh(x)</samp>&rsquo;, &lsquo;<samp>acosh(x)</samp>&rsquo;, &lsquo;<samp>atanh(x)</samp>&rsquo;.
+</p>
+<p>There are a set of special functions: &lsquo;<samp>gamma(x)</samp>&rsquo; &ndash; Gamma function &Gamma;(x) = &int;<sub>0</sub><sup>&infin;</sup> t<sup>x-1</sup> exp(-t) dt, &lsquo;<samp>psi(x)</samp>&rsquo; &ndash; digamma function &psi;(x) = &Gamma;&prime;(x)/&Gamma;(x) for x&ne;0, &lsquo;<samp>ai(x)</samp>&rsquo; &ndash; Airy function Ai(x), &lsquo;<samp>bi(x)</samp>&rsquo; &ndash; Airy function Bi(x), &lsquo;<samp>cl(x)</samp>&rsquo; &ndash; Clausen function, &lsquo;<samp>li2(x)</samp>&rsquo; (or &lsquo;<samp>dilog(x)</samp>&rsquo;) &ndash; dilogarithm Li<sub>2</sub>(x) = -&real;&int;<sub>0</sub><sup>x</sup>ds log(1-s)/s, &lsquo;<samp>sinc(x)</samp>&rsquo; &ndash; compute sinc(x) = sin(&pi;x)/(&pi;x) for any value of x, &lsquo;<samp>zeta(x)</samp>&rsquo; &ndash; Riemann zeta function &zeta;(s) = &sum;<sub>k=1</sub><sup>&infin;</sup>k<sup>-s</sup> for arbitrary s&ne;1, &lsquo;<samp>eta(x)</samp>&rsquo; &ndash; eta function &eta;(s) = (1 - 2<sup>1-s</sup>)&zeta;(s) for arbitrary s, &lsquo;<samp>lp(l,x)</samp>&rsquo; &ndash; Legendre polynomial P<sub>l</sub>(x), (|x|&le;1, l&ge;0), &lsquo;<samp>w0(x)</samp>&rsquo; &ndash; principal branch of the Lambert W function, &lsquo;<samp>w1(x)</samp>&rsquo; &ndash; principal branch of the Lambert W function. Function W(x) is defined to be solution of the equation: W exp(W) = x. </p>
+
+<p>The exponent integrals are: &lsquo;<samp>ci(x)</samp>&rsquo; &ndash; Cosine integral Ci(x) = &int;<sub>0</sub><sup>x</sup>dt cos(t)/t, &lsquo;<samp>si(x)</samp>&rsquo; &ndash; Sine integral Si(x) = &int;<sub>0</sub><sup>x</sup>dt sin(t)/t, &lsquo;<samp>erf(x)</samp>&rsquo; &ndash; error function erf(x) = (2/&radic;&pi;) &int;<sub>0</sub><sup>x</sup>dt exp(-t<sup>2</sup>) , &lsquo;<samp>ei(x)</samp>&rsquo; &ndash; exponential integral Ei(x) = -PV(&int;<sub>-x</sub><sup>&infin;</sup>dt exp(-t)/t) (where PV denotes the principal value of the integral), &lsquo;<samp>e1(x)</samp>&rsquo; &ndash; exponential integral E<sub>1</sub>(x) = &real;&int;<sub>1</sub><sup>&infin;</sup>dt exp(-xt)/t, &lsquo;<samp>e2(x)</samp>&rsquo; &ndash; exponential integral E<sub>2</sub>(x) = &real;&int;<sub>1</sub>&infin;</sup>dt exp(-xt)/t<sup>2</sup>, &lsquo;<samp>ei3(x)</samp>&rsquo; &ndash; exponential integral Ei<sub>3</sub>(x) = &int;<sub>0</sub><sup>x</sup>dt exp(-t<sup>3</sup>) for x&ge;0. </p>
+
+<p>Bessel functions are: &lsquo;<samp>j(nu,x)</samp>&rsquo; &ndash; regular cylindrical Bessel function of fractional order <em>nu</em>, &lsquo;<samp>y(nu,x)</samp>&rsquo; &ndash; irregular cylindrical Bessel function of fractional order <em>nu</em>, &lsquo;<samp>i(nu,x)</samp>&rsquo; &ndash; regular modified Bessel function of fractional order <em>nu</em>, &lsquo;<samp>k(nu,x)</samp>&rsquo; &ndash; irregular modified Bessel function of fractional order <em>nu</em>. </p>
+
+<p>Elliptic integrals are: &lsquo;<samp>ee(k)</samp>&rsquo; &ndash; complete elliptic integral is denoted by E(k) = E(&pi;/2,k), &lsquo;<samp>ek(k)</samp>&rsquo; &ndash; complete elliptic integral is denoted by K(k) = F(&pi;/2,k), &lsquo;<samp>e(phi,k)</samp>&rsquo; &ndash; elliptic integral E(&phi;,k) = &int;<sub>0</sub><sup>&phi;</sup>dt &radic;(1 - k<sup>2</sup>sin<sup>2</sup>(t)), &lsquo;<samp>f(phi,k)</samp>&rsquo; &ndash; elliptic integral F(&phi;,k) = &int;<sub>0</sub><sup>&phi;</sup>dt 1/&radic;(1 - k<sup>2</sup>sin<sup>2</sup>(t))</p>
+<p>Jacobi elliptic functions are: &lsquo;<samp>sn(u,m)</samp>&rsquo;, &lsquo;<samp>cn(u,m)</samp>&rsquo;, &lsquo;<samp>dn(u,m)</samp>&rsquo;, &lsquo;<samp>sc(u,m)</samp>&rsquo;, &lsquo;<samp>sd(u,m)</samp>&rsquo;, &lsquo;<samp>ns(u,m)</samp>&rsquo;, &lsquo;<samp>cs(u,m)</samp>&rsquo;, &lsquo;<samp>cd(u,m)</samp>&rsquo;, &lsquo;<samp>nc(u,m)</samp>&rsquo;, &lsquo;<samp>ds(u,m)</samp>&rsquo;, &lsquo;<samp>dc(u,m)</samp>&rsquo;, &lsquo;<samp>nd(u,m)</samp>&rsquo;.
+</p>
+<p>Note, some of these functions are unavailable if NO_GSL is defined during compilation of MathGL library. 
+</p>
+<p>There is no difference between lower or upper case in formulas. If argument value lie outside the range of function definition then function returns NaN.
+</p>
+
+
+<hr size="6">
+<a name="FAQ"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Textual-formulas" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Interfaces" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="FAQ-1"></a>
+<h2 class="section">1.5 FAQ</h2>
+
+<dl compact="compact">
+<dt> <strong>The plot does not appear</strong></dt>
+<dd><p>Check that points of the plot lie  inside the bounding box and resize the bounding box using <code>Axis()</code> function. Check that the data have correct dimensions for selected type of plot. Be sure that  <code>Finish()</code> is called after the plotting functions (or be sure that the plot is saved to a file). Sometimes the light reflection from flat surfaces (like, <code>Dens()</code>) can look as if the plot were absent.
+</p>
+</dd>
+<dt> <strong>I can not find some special kind of plot.</strong></dt>
+<dd><p>Most &ldquo;new&rdquo; types of plots can be created by using the existing drawing functions. For example, the surface of curve rotation can be created by a special function <code>Torus()</code>, or as a parametrically specified surface by <code>Surf()</code>. See also, <a href="mathgl_en_2.html#Hints">Hints</a> and <a href="mathgl_en_2.html#Examples">MathGL examples</a> of MathGL. If you can not find a specific type of plot, please e-mail me and this plot will appear in the next version of MathGL library.
+</p>
+</dd>
+<dt> <strong>Should I know some graphical libraries (like OpenGL) before using the MathGL library?</strong></dt>
+<dd><p>No. The MathGL library is self-contained and does not require the knowledge of external libraries.
+</p>
+</dd>
+<dt> <strong>In which language is the library written? For which languages does it have an interface?</strong></dt>
+<dd><p>The core of the MathGL library is written in C++. But there are interfaces for: pure C, Fortran, Pascal, Forth, and its own command language MGL. Also there is a large set of interpreted languages, which are supported (Python, Java,  ALLEGROCL, CHICKEN, Lisp, CFFI, C#, Guile, Lua, Modula 3, Mzscheme, Ocaml, Octave, Perl, PHP, Pike, R, Ruby, Tcl). These interfaces are written using SWIG (both pure C functions and classes) but only the interface for Python and Octave is included in the autoconf/automake script. The reason is that I don&lt;/samp&gt;&amp;rsquo;t know any other interpreted languages :(. Note that most other languages can use (link to) the pure C functions.
+</p>
+</dd>
+<dt> <strong>How can I use MathGL with Fortran?</strong></dt>
+<dd><p>You can use MathGL as is with <code>gfortran</code> because it uses by default the AT&amp;T notation for external functions. For other compilers (like Visual Fortran) you have to switch on the AT&amp;T notation manually. The AT&amp;T notation requires that the symbol &lsquo;<samp>_</samp>&rsquo; is added at the end of each function name, function argument(s) is passed by pointers and the string length(s) is passed at the end of the argument list. For example:
+</p>
+<p><em>C function</em> &ndash; <code>void mgl_fplot(HMGL graph, const char *fy, const char *stl, int n);</code>
+</p>
+<p><em>AT&amp;T function</em> &ndash; <code>void mgl_fplot_(uintptr_t *graph, const char *fy, const char *stl, int *n, int ly, int ls);</code>
+</p>
+</dd>
+<dt> <strong>I have a class Foo and a drawing method Foo::draw(mglGraph *gr). How I can use it in FLTK or GLUT window?</strong></dt>
+<dd><p>The member-functions of classes have a hidden parameter (the pointer to a class instance) in C++. So, their direct usage is impossible. The solution is to write an interface function:
+</p><table><tr><td>&nbsp;</td><td><pre class="example">int foo_draw(mglGraph *gr, void *par)
+{   ((Foo *)foo)-&gt;draw(gr);    }
+</pre></td></tr></table>
+<p>and to use it in the call of <code>Window()</code> function:
+</p><table><tr><td>&nbsp;</td><td><pre class="example">gr-&gt;Window(argc,argv,foo_draw,&quot;Title&quot;,this);
+</pre></td></tr></table>
+
+<p>Alternatively you can inherit your class from <code>mglDraw</code> class and use the functions like <code>gr-&gt;Window(argc, argv, foo, &quot;Title&quot;);</code>.
+</p>
+</dd>
+<dt> <strong>How can I print in Russian/Spanish/Arabic/Japanese, and so on?</strong></dt>
+<dd><p>The standard way is to use Unicode encoding for the text output. But the MathGL library also has interface for 8-bit (char *) strings with internal conversion to Unicode. This conversion depends on the current locale OS. You may change it by <code>setlocale()</code> function. For example, for Russian text in CP1251 encoding you may use <code>setlocale(LC_CTYPE, &quot;ru_RU.cp1251&quot;);</code> (under MS Windows the name of locale may differ &ndash; <code>setlocale(LC_CTYPE, &quot;russian_russia.1251&quot;)</code>). I strongly recommend not to use the constant <code>LC_ALL</code> in the conversion. Since it also changes the number format, it may lead to mistakes in formula writing and reading of the text in data files. For example, the program will await a &lsquo;<samp>,</samp>&rsquo; as a decimal point but the user will enter &lsquo;<samp>.</samp>&rsquo;.
+</p>
+</dd>
+<dt> <strong>How can I exclude a point or a region of plot from the drawing?</strong></dt>
+<dd><p>There are 3 general ways. First, the point with <code>NAN</code> value as one of the coordinates will never be plotted. Second, special variables <var>CutMin</var>, <var>CutMax</var> or function <code>CutOff</code>() define the condition when the points should be omitted (see section <a href="mathgl_en_3.html#Cutting">Cutting</a>). Last, you may change the transparency of a part of the plot by the help of functions <code>SurfA()</code>, <code>Surf3A()</code> (see section <a href="mathgl_en_3.html#Dual-plotting">Dual plotting</a>). In this last case the transparency is switched on smoothly.
+</p>
+</dd>
+<dt> <strong>I use VisualStudio, CBuilder or some other compiler (not MinGW/gcc). How can I link the MathGL library?</strong></dt>
+<dd><p>In version 1.10, you can use the header file <code>#include &lt;mgl/mgl_w.h&gt;</code> which contains wrapper C++ classes, which should be acceptable for any compiler. Note, that wrapper classes are <strong>incompatible</strong> with classes in usual headers and you should use only one of them (wrapper or usual)! However, I recommend to use the usual headers if you use GNU compilers (like MinGW).
+</p>
+
+</dd>
+<dt> <strong>How I can build MathGL under Windows?</strong></dt>
+<dd><p>The simplest way is using the combination CMake+MinGW. Also you need some extra libraries like GSL, PNG, JPEG and so on. All of them can be found at <a href="http://gnuwin32.sourceforge.net/packages.html">http://gnuwin32.sourceforge.net/packages.html</a>. After installing all components, just run CMake configurator and make the MathGL itself.
+</p>
+</dd>
+<dt> <strong>How I can create FLTK/GLUT/Qt window in parallel with calculation?</strong></dt>
+<dd><p>You should create a separate thread for processing window messages. The cross-platform way is using the <code>pthread</code> library. You can update the data by calling <code>mglGraphFLTK::Update()</code> function. The code can look like this:
+</p><pre class="verbatim">//-----------------------------------------------------------------------------
+#include &lt;mgl/mgl_fltk.h&gt;
+#include &lt;pthread.h&gt;
+#include &lt;unistd.h&gt;
+
+mglPoint pnt;  // some global variable for changable data
+//-----------------------------------------------------------------------------
+int sample(mglGraph *gr, void *)
+{
+  gr-&gt;Box();  gr-&gt;Line(mglPoint(),pnt,&quot;Ar2&quot;); // just draw a vector
+  return 0;
+}
+//-----------------------------------------------------------------------------
+void *mgl_fltk_tmp(void *)      {       mglFlRun();     return 0;       }
+int main (int argc, char ** argv)
+{
+  mglGraphFLTK gr;
+  gr.Window(argc,argv,sample,&quot;test&quot;);  // create window
+  static pthread_t tmp;
+  pthread_create(&amp;tmp, 0, mgl_fltk_tmp, 0);
+  pthread_detach(tmp);    // run window handling in the separate thread
+  for(int i=0;i&lt;10;i++)   // do calculation
+  {
+    sleep(1);             // which can be very long
+    pnt = mglPoint(2*mgl_rnd()-1,2*mgl_rnd()-1);
+    gr.Update();          // update window
+  }
+  return 0;   // finish calculations and close the window
+}
+//-----------------------------------------------------------------------------
+</pre>
+
+</dd>
+<dt> <strong>How many people write this library?</strong></dt>
+<dd><p>Most of the library was written by one person. This is a result of nearly a year of work (mostly in the evening and on holidays): I spent half a year to write the kernel and half a year to a year on extending, improving the library and writing documentation. This process continues now :). The autoconf/automake script was written mostly by D.Kulagin, and the export to IDTF was written mostly by M.Vidassov.
+</p>
+</dd>
+<dt> <strong>How can I display a bitmap on the figure?</strong></dt>
+<dd><p>You can import data into a <code>mglData</code> instance and display it by <code>Dens()</code> function. For example, for black-and-white bitmap you can use the code: <code>mglData bmp; bmp.Import(&quot;fname.png&quot;,&quot;wk&quot;); gr-&gt;Dens(bmp,&quot;wk&quot;);</code>.
+</p>
+</dd>
+<dt> <strong>How can I use MathGL in Qt, FLTK, wxWidgets etc.?</strong></dt>
+<dd><p>There are special classes (widgets) for these libraries: QMathGL for Qt, Fl_MathGL for FLTK and so on. If you don&lt;/samp&gt;&amp;rsquo;t find the appropriate class then you can create your own widget that displays a bitmap using mglGraphAB::GetBits().
+</p>
+</dd>
+<dt> <strong>How can I create U3D file (make 3D in PDF)?</strong></dt>
+<dd><p>There are 2 steps: first you should create IDTF file, and later convert it to U3D. You can use <a href="http://sourceforge.net/project/showfiles.php?group_id=152187&amp;package_id=300628">U3D tools</a> for converting IDTF file to U3D. It needs <a href="http://libharu.org">libharu</a> 2.1.0 or later. For installation use <code>./bootstrap, ./configure, make, sudo make install</code>. It provides  IDTFConverter program for converting text files *.idtf to binary files *.u3d. The latter can be included into PDF.
+</p>
+</dd>
+<dt> <strong>How I can change the font family?</strong></dt>
+<dd><p>First, you should download new font files from <a href="http://mathgl.sourceforge.net/download.html">here</a> or from <a href="http://sourceforge.net/project/showfiles.php?group_id=152187&amp;package_id=267177">here</a>. Next, you should load the font files into mglGraph class instance <var>gr</var> by the following command: <code>gr-&gt;SetFont(new mglFont(fontname,path));</code>. Here <var>fontname</var> is the base font name like &lsquo;<samp>STIX</samp>&rsquo; and <var>path</var> sets the location of font files. Use <code>gr-&gt;SetFont(NULL);</code> to start using the default font.
+</p>
+</dd>
+<dt> <strong>How can I draw tick out of a bounding box?</strong></dt>
+<dd><p>Just set a negative value for <var>TickLen</var>. For example, use <code>gr-&gt;SetTickLen(-0.1);</code>.
+</p>
+</dd>
+</dl>
+
+<hr size="6">
+<a name="Interfaces"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#FAQ" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#C-interface" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Interfaces-1"></a>
+<h2 class="section">1.6 Interfaces</h2>
+
+<p>The MathGL library has interfaces for a set of languages. Most of them are based on the C interface via SWIG tool. There are Python, Java, Octave, Lisp, C#, Guile, Lua, Modula 3, Ocaml, Perl, PHP, Pike, R, Ruby, and Tcl interfaces. Also there is a Fortran interface which has a similar set of functions, but slightly different types of arguments (integers instead of pointers). These functions are marked as [C function].
+Some of the languages listed above support classes (like Python). For them, a special wrapper was written. These classes and functions are marked as (Python).
+Finally, a special command language MGL was written for a faster access to C++ plotting functions. Corresponding scripts can be executed separately (by UDAV, mgl2png, mgl2eps and so on) or from the C++ code (see section <a href="mathgl_en_7.html#mglParse-class">mglParse class</a>). These commands are described in <a href="mathgl_en_8.html#MGL-interface">MGL language</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#C-interface">1.6.1 C interface</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Python-interface">1.6.2 Python interface</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="C-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Interfaces" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Python-interface" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Interfaces" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="C-interface-1"></a>
+<h3 class="subsection">1.6.1 C interface</h3>
+
+<p>The C interface is a base for many other interfaces. It contains the pure C functions for most of the methods of MathGL classes. In distinction to C++ classes, C functions must have an argument HMGL (for graphics) and/or HMDT (for data arrays), which specifies the object for drawing or manipulating (changing). So, firstly, the user has to create this object by the function <code>mgl_create_*()</code> and has to delete it after the use by function <code>mgl_delete_*()</code>.
+</p>
+<p>All C functions are described in the header file <code>#include &lt;mgl/mgl_c.h&gt;</code> and use variables of the following types:
+</p><ul>
+<li> 
+<code>HMGL</code> &mdash; Pointer to class <code>mglGraph</code> (see section <a href="mathgl_en_3.html#MathGL-core">MathGL core</a>).
+</li><li> 
+<code>HMDT</code> &mdash; Pointer to class <code>mglData</code> (see section <a href="mathgl_en_6.html#mglData-class">mglData class</a>).
+</li><li> 
+<code>HMPR</code> &mdash; Pointer to class <code>mglParse</code> (see section <a href="mathgl_en_7.html#mglParse-class">mglParse class</a>)..
+</li></ul>
+<p>These variables contain identifiers for graphics drawing objects and for the data objects. 
+</p>
+<p>Fortran functions/subroutines have the same names as C functions. However, there is a difference. Variable of type <code>HMGL, HMDT</code> must be an integer with sufficient size (<code>integer*4</code> in the 32-bit operating system or <code>integer*8</code> in the 64-bit operating system). All C functions are subroutines in Fortran, which are called by operator <code>call</code>. The exceptions are functions, which return variables of types <code>HMGL</code> or <code>HMDT</code>. These functions should be declared as integer in Fortran code. Also, one should keep in mind that strings in Fortran are denoted by <code>&lt;/samp&gt;&amp;rsquo;</code> symbol, not the <code>&quot;</code> symbol.
+</p>
+<p><strong>Create and delete objects</strong>
+</p>
+<ul>
+<li> Functions for non-visual &ldquo;grapher&rdquo; creation:
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fgl"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_gl</b><i> ()</i></dt>
+<dd><p>Create the instance of class mglGraphGL.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fzb"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_zb</b><i> (<code>int</code> width, <code>int</code> height)</i></dt>
+<dd><p>Create the instance of class mglGraphZB with specified sizes.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fps"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_ps</b><i> (<code>int</code> width, <code>int</code> height)</i></dt>
+<dd><p>Create the instance of class mglGraphPS with specified sizes.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fidtf"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_idtf</b><i> ()</i></dt>
+<dd><p>Create the instance of class mglGraphIDTF.
+</p></dd></dl>
+
+</li><li> Function for windowed &ldquo;grapher&rdquo; creation:
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fglut"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_glut</b><i> (<code>int (*</code>draw<code>)(HMGL gr, void *p)</code>, <code>const char *</code>title, <code>void *</code>par)</i></dt>
+<dd><p>Create the instance of class mglGraphGLUT and the connected GLUT window. Only one GLUT window can be opened at once. Argument description can be found in <a href="mathgl_en_4.html#mglGraphAB-class">mglGraphAB class</a>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005ffltk"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_fltk</b><i> (<code>int (*</code>draw<code>)(HMGL gr, void *p)</code>, <code>const char *</code>title, <code>void *</code>par)</i></dt>
+<dd><p>Create the instance of class mglGraphFLTK and the connected FLTK window. Several windows can be opened at the same time. However user must call <code>mgl_fltk_run()</code> function to start the message handling cycle. Argument description can be found in <a href="mathgl_en_4.html#mglGraphAB-class">mglGraphAB class</a>. Note that <var>draw</var> can be <code>NULL</code> for displaying static bitmaps only (no animation or slides).
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fqt"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_qt</b><i> (<code>int (*</code>draw<code>)(HMGL gr, void *p)</code>, <code>const char *</code>title, <code>void *</code>par)</i></dt>
+<dd><p>Create the instance of class mglGraphQT and the connected Qt window. Several windows can be opened at the same time. However user must call <code>mgl_qt_run()</code> function to start the message handling cycle. Arguments description can be found in <a href="mathgl_en_4.html#mglGraphAB-class">mglGraphAB class</a>. Note, that <var>draw</var> can be <code>NULL</code> for displaying static bitmaps only (no animation or slides).
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005ffltk_005frun"></a><u>C function:</u> <code>void</code> <b>mgl_fltk_run</b><i> ()</i></dt>
+<dd><p>Start FLTK message handling cycle. A normal program will end main() function with <code>return mgl_fltk_run();</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005ffltk_005fthread"></a><u>C function:</u> <code>void</code> <b>mgl_fltk_thread</b><i> ()</i></dt>
+<dd><p>Start FLTK message handling cycle. In distinction to <code>mgl_fltk_run()</code> the loop is started in a separate thread, so that program continues immediately.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fqt_005frun"></a><u>C function:</u> <code>void</code> <b>mgl_qt_run</b><i> ()</i></dt>
+<dd><p>Start Qt message handling cycle. A normal program will end main() function with <code>return mgl_qt_run();</code>. Alternatively, the user may setup Qt application by direct Qt function calls.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fqt_005fthread"></a><u>C function:</u> <code>void</code> <b>mgl_qt_thread</b><i> ()</i></dt>
+<dd><p>Start Qt message handling cycle. In distinction to <code>mgl_qt_run()</code> the loop is started in separate thread so that the program continues immediately.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fupdate"></a><u>C function:</u> <code>void</code> <b>mgl_update</b><i> (<code>HMGL</code> graph)</i></dt>
+<dd><p>Manually update contents of the window.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fset_005fshow_005fmouse_005fpos"></a><u>C function:</u> <code>void</code> <b>mgl_set_show_mouse_pos</b><i> (<code>HMGL</code> graph, <code>int</code> enable)</i></dt>
+<dd><p>Switch to show or not in the widget the last mouse click position.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fget_005flast_005fmouse_005fpos"></a><u>C function:</u> <code>void</code> <b>mgl_get_last_mouse_pos</b><i> (<code>HMGL</code> graph, <code>float *</code>x, <code>float *</code>y, <code>float *</code>z)</i></dt>
+<dd><p>Last position of mouse click.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcalc_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_calc_xyz</b><i> (<code>HMGL</code> graph, <code>int</code> xs, <code>int</code> ys, <code>float *</code>x, <code>float *</code>y, <code>float *</code>z)</i></dt>
+<dd><p>Calculate 3D coordinate {x,y,z} for screen point {xs,ys}. At this moment, it ignores perspective and transformation formulas (curvilinear coordinates). The calculations are done for the last used InPlot (see section <a href="mathgl_en_3.html#Transformation-matrix">Transformation matrix</a>).
+</p></dd></dl>
+
+
+</li><li> Functions for data creation:
+<dl>
+<dt><a name="index-mgl_005fcreate_005fdata"></a><u>C function:</u> <code>HMDT</code> <b>mgl_create_data</b><i> ()</i></dt>
+<dd><p>Create a simple instance of class mglData.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fdata_005fsize"></a><u>C function:</u> <code>HMDT</code> <b>mgl_create_data_size</b><i> (<code>int</code> nx, <code>int</code> ny, <code>int</code> nz)</i></dt>
+<dd><p>Create an instance of class mglData with specified sizes.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fdata_005ffile"></a><u>C function:</u> <code>HMDT</code> <b>mgl_create_data_file</b><i> (<code>const char *</code>fname)</i></dt>
+<dd><p>Create an instance of class mglData and fill it by data from text file.
+</p></dd></dl>
+
+</li><li> Each created object <strong>must</strong> be deleted after usage by functions:
+<dl>
+<dt><a name="index-mgl_005fdelete_005fgraph"></a><u>C function:</u> <code>void</code> <b>mgl_delete_graph</b><i> (<code>HMGL</code> graph)</i></dt>
+<dd><p>Delete the instance of a class. Must be used after plotting for every created graphical object.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fdelete_005fdata"></a><u>C function:</u> <code>void</code> <b>mgl_delete_data</b><i> (<code>HMDT</code> dat)</i></dt>
+<dd><p>Delete the instance of a class. Must be used after the use of every created data object.
+</p></dd></dl>
+</li></ul>
+
+<hr size="6">
+<a name="Python-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#C-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Thanks" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Interfaces" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Python-interface-1"></a>
+<h3 class="subsection">1.6.2 Python interface</h3>
+
+<p>MathGL provides the interface to a set of languages via SWIG library. Some of these languages support classes. The typical example is Python &ndash; which is named in this chapter&lt;/samp&gt;&amp;rsquo;s title.
+</p>
+<p>To use Python classes just execute &lsquo;<samp>import mathgl</samp>&rsquo;. The simplest example will be:
+</p><pre class="verbatim">import mathgl
+a=mathgl.mglGraph()
+a.Box()
+a.WritePNG(&lt;/samp&gt;&amp;rsquo;test.png&lt;/samp&gt;&amp;rsquo;)
+</pre><p>Alternatively you can import all classes from <code>mathgl</code> module and easily access MathGL classes like this:
+</p><pre class="verbatim">from mathgl import *
+a=mglGraph()
+a.Box()
+a.WritePNG(&lt;/samp&gt;&amp;rsquo;test.png&lt;/samp&gt;&amp;rsquo;)
+</pre><p>This becomes useful if you create many <code>mglData</code> objects, for example.
+</p>
+<p>There are 2 classes in Python interface:
+</p><ul>
+<li> <code>mglGraph</code>
+&ndash; provide practically the same functionality as C++ class <code>mglGraph</code> (see section <a href="mathgl_en_3.html#MathGL-core">MathGL core</a>). But it is not an abstract class and it allows one to select at construction stage which plotter (ZB or PS and so on) will be used.
+</li><li> <code>mglData</code>
+&ndash; is exactly the same class as C++ <code>mglData</code> (see section <a href="mathgl_en_6.html#mglData-class">mglData class</a>), but an additional feature to access data values is added. You can use a construct like this: <code>dat[i]=sth;</code> or <code>sth=dat[i]</code> where flat representation of data is used (i.e., <var>i</var> can be in range 0...nx*nx*nz-1). You can also import NumPy arrays as input arguments: <code>mgl_dat = mglData(numpy_dat);</code>.
+
+<p>To use Python classes just execute &lsquo;<samp>import mathgl</samp>&rsquo;. The simplest example will be:
+</p><pre class="verbatim">import mathgl
+a=mathgl.mglGraph()
+a.Box()
+a.WritePNG(&lt;/samp&gt;&amp;rsquo;test.png&lt;/samp&gt;&amp;rsquo;)
+</pre><p>Alternatively, you can import all the classes from <code>mathgl</code> module and easily access MathGL classes: 
+</p><pre class="verbatim">from mathgl import *
+a=mglGraph()
+a.Box()
+a.WritePNG(&lt;/samp&gt;&amp;rsquo;test.png&lt;/samp&gt;&amp;rsquo;)
+</pre><p>This is useful if you create many <code>mglData</code> objects, for example.
+</p>
+<p>There are 2 classes in Python interface:
+</p><ul>
+<li> <code>mglGraph</code>
+&ndash; provide practically the same functionality as C++ class <code>mglGraph</code> (see section <a href="mathgl_en_3.html#MathGL-core">MathGL core</a>). But it is not an abstract class and it allows one to select at the construction stage which plotter (ZB or PS and so on) will be used.
+</li><li> <code>mglData</code>
+&ndash; is exactly the same class as C++ <code>mglData</code> (see section <a href="mathgl_en_6.html#mglData-class">mglData class</a>), but an additional feature to access data values is added. You can use a construct like this: <code>dat[i]=sth;</code> or <code>sth=dat[i]</code> where flat representation of data is used (i.e., <var>i</var> can be in range 0...nx*nx*nz-1).
+</li></ul>
+
+<p>There is one main difference from C++ classes &ndash; Python class <code>mglGraph</code> does not have variables (options). All the corresponding features are moved to methods.
+The core of MathGL Python class is the <strong>mglGraph</strong> class. It contains a lot of plotting functions for 1D, 2D and 3D plots. So most of the sections describe its methods. Its constructor has the following arguments:
+</p>
+<dl>
+<dt><a name="index--on-mglGraph-_0028Python_0029"></a><u>Constructor on mglGraph (Python):</u> <b><code></code></b><i> mglGraph (<code>int</code> kind=<code>0</code>, <code>int</code> width=<code>600</code>, <code>int</code> height=<code>400</code>)</i></dt>
+<dd><p>Create the instance of class mglGraph with specified sizes <var>width</var> and <var>height</var>. Parameter <var>type</var> may have following values: &lsquo;<samp>0</samp>&rsquo; &ndash; use <code>mglGraphZB</code> plotter (default), &lsquo;<samp>1</samp>&rsquo; &ndash; use <code>mglGraphPS</code> plotter, &lsquo;<samp>2</samp>&rsquo; &ndash; use <code>mglGraphGL</code> plotter, &lsquo;<samp>3</samp>&rsquo; &ndash; use <code>mglGraphIDTF</code> plotter.
+</p></dd></dl>
+</li></ul>
+
+<p>There is one difference from C++ classes &ndash; Python class <code>mglGraph</code> does not have variables (options). All the corresponding features are moved to methods. 
+The core of MathGL Python class is the <strong>mglGraph</strong> class. It contains a lot of plotting functions for 1D, 2D and 3D plots. So most of the sections describe its methods. Its constructor has the following arguments:
+</p>
+<dl>
+<dt><a name="index--on-mglGraph-_0028Python_0029-1"></a><u>Constructor on mglGraph (Python):</u> <b><code></code></b><i> mglGraph (<code>int</code> kind=<code>0</code>, <code>int</code> width=<code>600</code>, <code>int</code> height=<code>400</code>)</i></dt>
+<dd><p>Create the instance of class mglGraph with specified sizes <var>width</var> and <var>height</var>. Parameter <var>type</var> may have following values: &lsquo;<samp>0</samp>&rsquo; &ndash; use <code>mglGraphZB</code> plotter (default), &lsquo;<samp>1</samp>&rsquo; &ndash; use <code>mglGraphPS</code> plotter, &lsquo;<samp>2</samp>&rsquo; &ndash; use <code>mglGraphGL</code> plotter, &lsquo;<samp>3</samp>&rsquo; &ndash; use <code>mglGraphIDTF</code> plotter.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Thanks"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Python-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Thanks-1"></a>
+<h2 class="section">1.7 Thanks</h2>
+
+<ul>
+<li>
+My special thanks to Marina Balakina for the patience during the writing of this library and for the help in documentation writing and spelling.
+</li><li>
+I&lt;/samp&gt;&amp;rsquo;m thankful to D. Kulagin and S.M. Plis for making Debian packages.
+</li><li>
+I&lt;/samp&gt;&amp;rsquo;m thankful to M. Vidassov for the help in handling solid UTF-8 fonts.
+</li><li>
+I&lt;/samp&gt;&amp;rsquo;m thankful to N. Troickiy and V. Lipatov for making RPM packages.
+</li><li>
+I&lt;/samp&gt;&amp;rsquo;m thankful to S. Skobelev, A. Korotkevich, V. Onuchin, S.M. Plis, R. Kiselev, A. Ivanov, M. Vidiassov and V. Lipatov for fruitful comments.
+</li></ul>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_en.html/mathgl_en_10.html b/texinfo/mathgl_en.html/mathgl_en_10.html
new file mode 100644
index 0000000..c673ff5
--- /dev/null
+++ b/texinfo/mathgl_en.html/mathgl_en_10.html
@@ -0,0 +1,169 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: A. TeX-like symbols</title>
+
+<meta name="description" content="MathGL 1.11: A. TeX-like symbols">
+<meta name="keywords" content="MathGL 1.11: A. TeX-like symbols">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="TeX_002dlike-symbols"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_9.html#Stereo-image-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TeX_002dlike-symbols-1"></a>
+<h1 class="appendix">A. TeX-like symbols</h1>
+<p>The full list of TeX-like commands recognizable by MathGL is shown below. If command is not recognized then it will be printed as is by ommitting &lsquo;<samp>\</samp>&rsquo; symbol. For example, &lsquo;<samp>\#</samp>&rsquo; produce &ldquo;#&rdquo;, &lsquo;<samp>\\</samp>&rsquo; produce &ldquo;\&rdquo;, &lsquo;<samp>\qq</samp>&rsquo; produce &ldquo;qq&rdquo;.
+</p>
+<p><strong>Change case</strong>: _, ^, @.
+</p>
+<p><strong>Text style</strong>: \big, \b, \textbf, \i, \textit, \bi, \r, \textrm, \a, \overline, \u, \underline, \w, \wire, #, \color[wkrgbcymhRGBCYMHWlenupqLENUPQ]
+</p>
+<p><strong>Roots</strong>: \sqrt, \sqrt3, \sqrt4
+</p>
+<p><strong>Fractions</strong>: \frac, \stack, \overset, \underset, \stackr, \stackl
+</p>
+<p><strong>Accents</strong>: \hat, \tilde, \dot, \ddot, \dddot, \ddddot, \acute, \check, \grave, \vec, \bar, \breve
+</p>
+<p><strong>Special symbols</strong>:
+</p>
+<p>\# (#), \% (%), \&amp; (&amp;), \^ (^).
+</p>
+<p>\AA (Å), \AE (Æ), \APLboxquestion (⍰), \APLboxupcaret (⍓), \APLnotbackslash (⍀), \APLnotslash (⌿), \Alpha (Α), \And (&amp;), \Angstrom (Å), \Barv (⫧), \BbbC (ℂ), \BbbGamma (ℾ), \BbbH (ℍ), \BbbN (ℕ), \BbbP (ℙ), \BbbPi (ℿ), \BbbQ (ℚ), \BbbR (ℝ), \BbbZ (ℤ), \Bbbgamma (ℽ), \Bbbpi (ℼ), \Bbbsum (⅀), \Beta (Β), \Bumpeq (≎), \Cap (⋒), \Chi (Χ), \Colon (∷), \Coloneq (⩴), \Cup (⋓), \DDownarrow (⟱), \DH (Ð), \DJ (Đ), \DashV (⫥), \DashVDash (⟚), \Dashv (⫤), \Ddownarrow (⤋), \Delta (Δ), \Digamma (Ϝ), \Doteq (≑), \Downarrow (⇓), \Epsilon (Ε), \Equiv (≣), \Eta (Η), \Eulerconst (ℇ), \Exclam (‼), \Finv (Ⅎ), \Game (⅁), \Gamma (Γ), \Gt (⪢), \Hermaphrodite (⚥), \Im (ℑ), \Iota (Ι), \Kappa (Κ), \Koppa (Ϟ), \L (Ł), \LLeftarrow (⭅), \Lambda (Λ), \Lbrbrak (⟬), \Ldsh (↲), \Leftarrow (⇐), \Leftrightarrow (⇔), \Lleftarrow (⇚), \Longleftarrow (⟸), \Longleftrightarrow (⟺), \Longmapsfrom (⟽), \Longmapsto (⟾), \Longrightarrow (⟹), \Lparengtr (⦕), \Lsh (↰), \Lt (⪡), \Lvzigzag (⧚), \Mapsfrom (⤆), \Mapsto (⤇), \Mu (Μ), \NG (Ŋ), \Nearrow (⇗), \Not (⫬), \Nu (Ν), \Nwarrow (⇖), \O (Ø), \OE (Œ), \Ohorn (Ơ), \Omega (Ω), \Omicron (Ο), \Otimes (⨷), \P (¶), \Phi (Φ), \Pi (Π), \Planckconst (ℎ), \Prec (⪻), \PropertyLine (⅊), \Psi (Ψ), \QED (∎), \Question (⁇), \RRightarrow (⭆), \Rbrbrak (⟭), \Rdsh (↳), \Re (ℜ), \Rho (Ρ), \Rightarrow (⇒), \Rparenless (⦖), \Rrightarrow (⇛), \Rsh (↱), \Rvzigzag (⧛), \S (§), \Sc (⪼), \Searrow (⇘), \Sigma (Σ), \Sqcap (⩎), \Sqcup (⩏), \Stigma (Ϛ), \Subset (⋐), \Supset (⋑), \Swarrow (⇙), \TH (Þ), \Tau (Τ), \Theta (Θ), \UUparrow (⟰), \Uhorn (Ư), \Uparrow (⇑), \Updownarrow (⇕), \Uuparrow (⤊), \VDash (⊫), \Vbar (⫫), \Vdash (⊩), \Vee (⩔), \Vert (‖), \Vvdash (⊪), \Vvert (⦀), \Wedge (⩓), \XBox (☒), \Xi (Ξ), \Yup (⅄), \Zbar (Ƶ), \Zeta (Ζ).
+</p>
+<p>\aa (å), \ac (∾), \accurrent (⏦), \acidfree (♾), \acwcirclearrow (⥀), \acwgapcirclearrow (⟲), \acwleftarcarrow (⤹), \acwopencirclearrow (↺), \acwoverarcarrow (⤺), \acwundercurvearrow (⤻), \adots (⋰), \ae (æ), \aleph (ℵ), \alpha (α), \amalg (⨿), \angdnr (⦟), \angle (∠), \angles (⦞), \angleubar (⦤), \approx (≈), \approxeq (≊), \approxeqq (⩰), \approxident (≋), \arceq (≘), \aries (♈), \assert (⊦), \ast (∗), \asteq (⩮), \astrosun (☉), \asymp (≍), \awint (⨑).
+</p>
+<p>\bNot (⫭), \backcong (≌), \backdprime (‶), \backepsilon (϶), \backprime (‵), \backsim (∽), \backsimeq (⋍), \backslash (\), \backtrprime (‷), \bagmember (⋿), \barV (⫪), \barcap (⩃), \barcup (⩂), \bardownharpoonleft (⥡), \bardownharpoonright (⥝), \barleftarrow (⇤), \barleftarrowrightarrowbar (↹), \barleftharpoondown (⥖), \barleftharpoonup (⥒), \barovernorthwestarrow (↸), \barrightarrowdiamond (⤠), \barrightharpoondown (⥟), \barrightharpoonup (⥛), \baruparrow (⤒), \barupharpoonleft (⥘), \barupharpoonright (⥔), \barvee (⊽), \barwedge (⊼), \bbrktbrk (⎶), \bdHrule (═), \bdVrule (║), \bdbVbH (╬), \bdbVbh (╫), \bdbVlH (╣), \bdbVlh (╢), \bdbVrH (╠), \bdbVrh (╟), \bdbvbH (╪), \bdbvbh (┼), \bdbvlH (╡), \bdbvlh (┤), \bdbvrH (╞), \bdbvrh (├), \bddVbH (╦), \bddVbh (╥), \bddVlH (╗), \bddVlh (╖), \bddVrH (╔), \bddVrh (╓), \bddvbH (╤), \bddvbh (┬), \bddvlH (╕), \bddvlh (┐), \bddvrH (╒), \bddvrh (┌), \bdhrule (─), \bdnesw (╱), \bdnwse (╲), \bdquadhdash (┈), \bdquadvdash (┊), \bdtriplevdash (┆), \bduVbH (╩), \bduVbh (╨), \bduVlH (╝), \bduVlh (╜), \bduVrH (╚), \bduVrh (╙), \bduvbH (╧), \bduvbh (┴), \bduvlH (╛), \bduvlh (┘), \bduvrH (╘), \bduvrh (└), \bdvrule (│), \because (∵), \benzenr (⏣), \beta (β), \beth (ℶ), \between (≬), \bigblacktriangledown (▼), \bigblacktriangleup (▲), \bigbot (⟘), \bigcap (⋂), \bigcup (⋃), \bigslopedvee (⩗), \bigslopedwedge (⩘), \bigstar (★), \bigtop (⟙), \bigtriangledown (▽), \bigtriangleup (△), \bigvee (⋁), \bigwedge (⋀), \bigwhitestar (☆), \blackcircledownarrow (⧭), \blackcircledrightdot (⚈), \blackcircledsanseight (➑), \blackcircledsansfive (➎), \blackcircledsansfour (➍), \blackcircledsansnine (➒), \blackcircledsansone (➊), \blackcircledsansseven (➐), \blackcircledsanssix (➏), \blackcircledsansten (➓), \blackcircledsansthree (➌), \blackcircledsanstwo (➋), \blackcircledtwodots (⚉), \blackcircleulquadwhite (◕), \blackdiamonddownarrow (⧪), \blackhourglass (⧗), \blackinwhitediamond (◈), \blackinwhitesquare (▣), \blacklefthalfcircle (◖), \blackpointerleft (◄), \blackpointerright (►), \blackrighthalfcircle (◗), \blacksmiley (☻), \blacktriangle (▴), \blacktriangledown (▾), \blacktriangleleft (◀), \blacktriangleright (▶), \blkhorzoval (⬬), \blkvertoval (⬮), \blockfull (█), \blockhalfshaded (▒), \blocklefthalf (▌), \blocklowhalf (▄), \blockqtrshaded (░), \blockrighthalf (▐), \blockthreeqtrshaded (▓), \blockuphalf (▀), \bot (⊥), \botsemicircle (◡), \bowtie (⋈), \box (◻), \boxast (⧆), \boxbar (◫), \boxbox (⧈), \boxbslash (⧅), \boxcircle (⧇), \boxdiag (⧄), \boxdot (⊡), \boxminus (⊟), \boxonbox (⧉), \boxplus (⊞), \boxtimes (⊠), \bsimilarleftarrow (⭁), \bsimilarrightarrow (⭇), \bsolhsub (⟈), \btimes (⨲), \bullet (∙), \bullseye (◎), \bumpeq (≏), \bumpeqq (⪮).
+</p>
+<p>\calB (ℬ), \calE (ℰ), \calF (ℱ), \calH (ℋ), \calM (ℳ), \calR (ℛ), \cap (∩), \capdot (⩀), \capwedge (⩄), \caretinsert (‸), \carreturn (⏎), \carriagereturn (↵), \ccwundercurvearrow (⤿), \cdot (⋅), \cdotp (·), \cdots (⋯), \cdprime (ʺ), \checkmark (✓), \chi (χ), \cirE (⧃), \cirbot (⟟), \circ (∘), \circeq (≗), \circfint (⨐), \circlebottomhalfblack (◒), \circledA (Ⓐ), \circledB (Ⓑ), \circledC (Ⓒ), \circledD (Ⓓ), \circledE (Ⓔ), \circledF (Ⓕ), \circledG (Ⓖ), \circledH (Ⓗ), \circledI (Ⓘ), \circledJ (Ⓙ), \circledK (Ⓚ), \circledL (Ⓛ), \circledM (Ⓜ), \circledN (Ⓝ), \circledO (Ⓞ), \circledP (Ⓟ), \circledQ (Ⓠ), \circledR (Ⓡ), \circledS (Ⓢ), \circledT (Ⓣ), \circledU (Ⓤ), \circledV (Ⓥ), \circledW (Ⓦ), \circledX (Ⓧ), \circledY (Ⓨ), \circledZ (Ⓩ), \circleda (ⓐ), \circledast (⊛), \circledb (ⓑ), \circledbullet (⦿), \circledc (ⓒ), \circledcirc (⊚), \circledd (ⓓ), \circleddash (⊝), \circlede (ⓔ), \circledeight (⑧), \circledequal (⊜), \circledf (ⓕ), \circledfive (⑤), \circledfour (④), \circledg (ⓖ), \circledh (ⓗ), \circledi (ⓘ), \circledj (ⓙ), \circledk (ⓚ), \circledl (ⓛ), \circledm (ⓜ), \circledn (ⓝ), \circlednine (⑨), \circledo (ⓞ), \circledone (①), \circledownarrow (⧬), \circledp (ⓟ), \circledparallel (⦷), \circledq (ⓠ), \circledr (ⓡ), \circledrightdot (⚆), \circleds (ⓢ), \circledsanseight (➇), \circledsansfive (➄), \circledsansfour (➃), \circledsansnine (➈), \circledsansone (➀), \circledsansseven (➆), \circledsanssix (➅), \circledsansten (➉), \circledsansthree (➂), \circledsanstwo (➁), \circledseven (⑦), \circledsix (⑥), \circledstar (✪), \circledt (ⓣ), \circledthree (③), \circledtwo (②), \circledtwodots (⚇), \circledu (ⓤ), \circledv (ⓥ), \circledvert (⦶), \circledw (ⓦ), \circledwhitebullet (⦾), \circledx (ⓧ), \circledy (ⓨ), \circledz (ⓩ), \circledzero (⓪), \circlehbar (⦵), \circlelefthalfblack (◐), \circlellquad (◵), \circlelrquad (◶), \circleonleftarrow (⬰), \circleonrightarrow (⇴), \circlerighthalfblack (◑), \circletophalfblack (◓), \circleulquad (◴), \circleurquad (◷), \circleurquadblack (◔), \circlevertfill (◍), \cirmid (⫯), \cirscir (⧂), \clangle (〈), \closedvarcap (⩍), \closedvarcup (⩌), \closedvarcupsmashprod (⩐), \closure (⁐), \cloverleaf (⌘), \clubsuit (♣), \colon (:), \colon (∶), \coloneq (≔), \commaminus (⨩), \complement (∁), \concavediamond (⟡), \concavediamondtickleft (⟢), \concavediamondtickright (⟣), \cong (≅), \congdot (⩭), \conictaper (⌲), \conjunction (☌), \coprod (∐), \cprime (ʹ), \crangle (〉), \csub (⫏), \csube (⫑), \csup (⫐), \csupe (⫒), \cuberoot (∛), \cup (∪), \cupdot (⊍), \cupleftarrow (⊌), \cupvee (⩅), \curlyeqprec (⋞), \curlyeqsucc (⋟), \curlyvee (⋎), \curlywedge (⋏), \curvearrowleft (↶), \curvearrowleftplus (⤽), \curvearrowright (↷), \curvearrowrightminus (⤼), \cwcirclearrow (⥁), \cwgapcirclearrow (⟳), \cwopencirclearrow (↻), \cwrightarcarrow (⤸), \cwundercurvearrow (⤾), \cylcty (⌭).
+</p>
+<p>\dag (†), \dagger (†), \daleth (ℸ), \danger (☡), \dashV (⫣), \dashVdash (⟛), \dashcolon (∹), \dashleftharpoondown (⥫), \dashrightharpoondown (⥭), \dashv (⊣), \dbkarow (⤏), \ddag (‡), \ddagger (‡), \ddots (⋱), \ddotseq (⩷), \delta (δ), \dh (ð), \diameter (⌀), \diamond (◇), \diamondbotblack (⬙), \diamondcdot (⟐), \diamondleftarrow (⤝), \diamondleftarrowbar (⤟), \diamondleftblack (⬖), \diamondrightblack (⬗), \diamondsuit (♢), \diamondtopblack (⬘), \dicei (⚀), \diceii (⚁), \diceiii (⚂), \diceiv (⚃), \dicev (⚄), \dicevi (⚅), \digamma (ϝ), \dingasterisk (✽), \dircurrent (⎓), \disin (⋲), \div (÷), \divideontimes (⋇), \dj (đ), \dlcrop (⌍), \doteq (≐), \dotequiv (⩧), \dotminus (∸), \dotplus (∔), \dots (…), \dotsim (⩪), \dotsminusdots (∺), \dottedcircle (◌), \dottedsquare (⬚), \dottimes (⨰), \doublebarvee (⩢), \doublebarwedge (⩞), \doubleplus (⧺), \downarrow (↓), \downarrowbar (⤓), \downarrowbarred (⤈), \downdasharrow (⇣), \downdownarrows (⇊), \downfishtail (⥿), \downharpoonleft (⇃), \downharpoonleftbar (⥙), \downharpoonright (⇂), \downharpoonrightbar (⥕), \downharpoonsleftright (⥥), \downrightcurvedarrow (⤵), \downtriangleleftblack (⧨), \downtrianglerightblack (⧩), \downuparrows (⇵), \downupharpoonsleftright (⥯), \downwhitearrow (⇩), \downzigzagarrow (↯), \dprime (″), \draftingarrow (➛), \drbkarow (⤐), \drcrop (⌌), \dsol (⧶), \dsub (⩤), \dualmap (⧟).
+</p>
+<p>\earth (♁), \egsdot (⪘), \eighthnote (♪), \elinters (⏧), \ell (ℓ), \elsdot (⪗), \emdash (—), \emptyset (∅), \emptysetoarr (⦳), \emptysetoarrl (⦴), \emptysetobar (⦱), \emptysetocirc (⦲), \endash (–), \enleadertwodots (‥), \envelope (✉), \eparsl (⧣), \epsilon (ϵ), \eqcirc (≖), \eqcolon (≕), \eqdef (≝), \eqdot (⩦), \eqeq (⩵), \eqeqeq (⩶), \eqgtr (⋝), \eqless (⋜), \eqqgtr (⪚), \eqqless (⪙), \eqqplus (⩱), \eqqsim (⩳), \eqqslantgtr (⪜), \eqqslantless (⪛), \eqsim (≂), \eqslantgtr (⪖), \eqslantless (⪕), \equalleftarrow (⭀), \equalparallel (⋕), \equalrightarrow (⥱), \equiv (≡), \equivDD (⩸), \equivVert (⩨), \equivVvert (⩩), \eqvparsl (⧥), \errbarblackcircle (⧳), \errbarblackdiamond (⧱), \errbarblacksquare (⧯), \errbarcircle (⧲), \errbardiamond (⧰), \errbarsquare (⧮), \eta (η), \euro (€), \exists (∃).
+</p>
+<p>\fallingdotseq (≒), \fbowtie (⧓), \fcmp (⨾), \fdiagovnearrow (⤯), \fdiagovrdiag (⤬), \female (♀), \figdash (‒), \fint (⨏), \fisheye (◉), \flat (♭), \fltns (⏥), \forall (∀), \forks (⫝̸), \forksnot (⫝), \forkv (⫙), \fourthroot (∜), \fourvdots (⦙), \fracfiveeighths (⅝), \fracfivesixths (⅚), \fracfourfifths (⅘), \fraconeeighth (⅛), \fraconefifth (⅕), \fraconesixth (⅙), \fraconethird (⅓), \fracseveneights (⅞), \fracslash (⁄), \fracthreeeighths (⅜), \fracthreefifths (⅗), \fractwofifths (⅖), \fractwothirds (⅔), \frakC (ℭ), \frakH (ℌ), \frakZ (ℨ), \frown (⌢), \frownie (☹), \fullouterjoin (⟗).
+</p>
+<p>\gamma (γ), \ge (≥), \geq (≥), \geqq (≧), \geqslant (⩾), \gescc (⪩), \gesdot (⪀), \gesdoto (⪂), \gesdotol (⪄), \gesles (⪔), \gets (←), \gg (≫), \ggg (⋙), \gggnest (⫸), \gimel (ℷ), \glE (⪒), \gla (⪥), \gleichstark (⧦), \glj (⪤), \gnapprox (⪊), \gneq (⪈), \gneqq (≩), \gnsim (⋧), \greater (&gt;), \gsime (⪎), \gsiml (⪐), \gtcc (⪧), \gtcir (⩺), \gtlpar (⦠), \gtquest (⩼), \gtrapprox (⪆), \gtrarr (⥸), \gtrdot (⋗), \gtreqless (⋛), \gtreqqless (⪌), \gtrless (≷), \gtrsim (≳), \guillemotleft («), \guillemotright (»), \guilsinglleft (‹), \guilsinglright (›).
+</p>
+<p>\harrowextender (⎯), \hatapprox (⩯), \hbar (ℏ), \heartsuit (♡), \hermitmatrix (⊹), \hexagon (⎔), \hexagonblack (⬣), \hiraganano (の), \hknearrow (⤤), \hknwarrow (⤣), \hksearow (⤥), \hkswarow (⤦), \hookleftarrow (↩), \hookrightarrow (↪), \horizbar (―), \hourglass (⧖), \house (⌂), \hrectangle (▭), \hrectangleblack (▬), \hslash (ℏ), \hyphenbullet (⁃), \hzigzag (〰).
+</p>
+<p>\iiiint (⨌), \iiint (∭), \iinfin (⧜), \iint (∬), \imageof (⊷), \in (∈), \incare (℅), \increment (∆), \infty (∞), \int (∫), \intBar (⨎), \intbar (⨍), \intbottom (⌡), \intcap (⨙), \intclockwise (∱), \intcup (⨚), \intercal (⊺), \interleave (⫴), \intextender (⎮), \intlharhk (⨗), \intprod (⨼), \intprodr (⨽), \inttop (⌠), \intx (⨘), \inversebullet (◘), \inversewhitecircle (◙), \invnot (⌐), \invwhitelowerhalfcircle (◛), \invwhiteupperhalfcircle (◚), \iota (ι), \ipasupgamma (ˠ), \ipasupl (ˡ), \ipasuprerglotstpp (ˤ), \ipasups (ˢ), \ipasupx (ˣ), \ipaunaspirated (˭), \ipavoicing (ˬ), \isinE (⋹), \isindot (⋵), \isinobar (⋷), \isins (⋴), \isinvb (⋸), \itBbbD (ⅅ), \itBbbd (ⅆ), \itBbbe (ⅇ), \itBbbi (ⅈ), \itBbbj (ⅉ).
+</p>
+<p>\jupiter (♃), \kappa (κ), \kernelcontraction (∻), \koppa (ϟ).
+</p>
+<p>\l (ł), \lAngle (⟪), \lBrace (⦃), \lBrack (⟦), \lParen (⦅), \lambda (λ), \lambdabar (ƛ), \langle (⟨), \langledot (⦑), \laplac (⧠), \lasp (ʽ), \lat (⪫), \late (⪭), \lbag (⟅), \lblkbrbrak (⦗), \lbrace ({), \lbracelend (⎩), \lbracemid (⎨), \lbraceuend (⎧), \lbrack ([), \lbrackextender (⎢), \lbracklend (⎣), \lbracklltick (⦏), \lbrackubar (⦋), \lbrackuend (⎡), \lbrackultick (⦍), \lbrbrak (❲), \lceil (⌈), \lcurvyangle (⧼), \ldasharrhead (⇠), \le (≤), \leadsto (↝), \leftarrow (←), \leftarrowapprox (⭊), \leftarrowbackapprox (⭂), \leftarrowbsimilar (⭋), \leftarrowless (⥷), \leftarrowonoplus (⬲), \leftarrowplus (⥆), \leftarrowshortrightarrow (⥃), \leftarrowsimilar (⥳), \leftarrowsubset (⥺), \leftarrowtail (↢), \leftarrowtriangle (⇽), \leftarrowx (⬾), \leftbkarrow (⤌), \leftcurvedarrow (⬿), \leftdasharrow (⇠), \leftdasharrowhead (⇡), \leftdbkarrow (⤎), \leftdbltail (⤛), \leftdotarrow (⬸), \leftdowncurvedarrow (⤶), \leftfishtail (⥼), \leftharpoondown (↽), \leftharpoondownbar (⥞), \leftharpoonsupdown (⥢), \leftharpoonup (↼), \leftharpoonupbar (⥚), \leftharpoonupdash (⥪), \leftleftarrows (⇇), \leftmoon (☾), \leftouterjoin (⟕), \leftrightarrow (↔), \leftrightarrowcircle (⥈), \leftrightarrows (⇆), \leftrightarrowtriangle (⇿), \leftrightharpoondowndown (⥐), \leftrightharpoondownup (⥋), \leftrightharpoons (⇋), \leftrightharpoonsdown (⥧), \leftrightharpoonsup (⥦), \leftrightharpoonupdown (⥊), \leftrightharpoonupup (⥎), \leftrightsquigarrow (↭), \leftsquigarrow (↜), \leftsquigarrow (⇜), \lefttail (⤙), \leftthreearrows (⬱), \leftthreetimes (⋋), \leftwhitearrow (⇦), \leq (≤), \leqq (≦), \leqqslant (⫹), \leqqslant (⫺), \leqslant (⩽), \lescc (⪨), \lesdot (⩿), \lesdoto (⪁), \lesdotor (⪃), \lesges (⪓), \less (&lt;), \lessapprox (⪅), \lessdot (⋖), \lesseqgtr (⋚), \lesseqqgtr (⪋), \lessgtr (≶), \lesssim (≲), \lfbowtie (⧑), \lfloor (⌊), \lftimes (⧔), \lgE (⪑), \lgblkcircle (⬤), \lgblksquare (⬛), \lgwhtcircle (◯), \lgwhtsquare (⬜), \lhd (⊲), \linefeed (↴), \ll (≪), \llangle (⦉), \llarc (◟), \llblacktriangle (◣), \llcorner (⌞), \lll (⋘), \lllnest (⫷), \llparenthesis (⦇), \lltriangle (◺), \lmoustache (⎰), \lnapprox (⪉), \lneq (⪇), \lneqq (≨), \lnsim (⋦), \longdashv (⟞), \longdivision (⟌), \longleftarrow (⟵), \longleftrightarrow (⟷), \longleftsquigarrow (⬳), \longmapsfrom (⟻), \longmapsto (⟼), \longrightarrow (⟶), \longrightsquigarrow (⟿), \looparrowleft (↫), \looparrowright (↬), \lowint (⨜), \lozenge (◊), \lozengeminus (⟠), \lparenextender (⎜), \lparenlend (⎝), \lparenless (⦓), \lparenuend (⎛), \lq (‘), \lrarc (◞), \lrblacktriangle (◢), \lrcorner (⌟), \lrtriangle (◿), \lrtriangleeq (⧡), \lsime (⪍), \lsimg (⪏), \lsqhook (⫍), \ltcc (⪦), \ltcir (⩹), \ltimes (⋉), \ltlarr (⥶), \ltquest (⩻), \ltrivb (⧏), \lvboxline (⎸), \lvzigzag (⧘).
+</p>
+<p>\male (♂), \maltese (✠), \mapsdown (↧), \mapsfrom (↤), \mapsto (↦), \mapsup (↥), \mdblkdiamond (⬥), \mdblklozenge (⬧), \mdblkrcl (⚫), \mdblksquare (◼), \mdlgblkcircle (●), \mdlgblkdiamond (◆), \mdlgblklozenge (⧫), \mdlgblksquare (■), \mdlgwhtcircle (○), \mdlgwhtdiamond (◇), \mdlgwhtsquare (□), \mdsmblkcircle (⦁), \mdsmblksquare (◾), \mdsmwhtcircl (⚬), \mdsmwhtsquare (◽), \mdwhtcircl (⚪), \mdwhtdiamond (⬦), \mdwhtlozenge (⬨), \mdwhtsquare (◻), \measangledltosw (⦯), \measangledrtose (⦮), \measangleldtosw (⦫), \measanglelutonw (⦩), \measanglerdtose (⦪), \measanglerutone (⦨), \measangleultonw (⦭), \measangleurtone (⦬), \measeq (≞), \measuredangle (∡), \measuredangleleft (⦛), \measuredrightangle (⊾), \medblackstar (⭑), \medmathspace ( ), \medwhitestar (⭐), \mercury (☿), \mho (℧), \mid (∣), \midbarvee (⩝), \midbarwedge (⩜), \midcir (⫰), \minus (−), \minusdot (⨪), \minusfdots (⨫), \minusrdots (⨬), \mlcp (⫛), \models (⊧), \mp (∓), \mu (μ), \multimap (⊸), \multimapinv (⟜).
+</p>
+<p>\nHdownarrow (⇟), \nHuparrow (⇞), \nLeftarrow (⇍), \nLeftrightarrow (⇎), \nRightarrow (⇏), \nVDash (⊯), \nVdash (⊮), \nVleftarrow (⇺), \nVleftarrowtail (⬺), \nVleftrightarrow (⇼), \nVrightarrow (⇻), \nVrightarrowtail (⤕), \nVtwoheadleftarrow (⬵), \nVtwoheadleftarrowtail (⬽), \nVtwoheadrightarrow (⤁), \nVtwoheadrightarrowtail (⤘), \nabla (∇), \napprox (≉), \nasymp (≭), \natural (♮), \ncong (≇), \ne (≠), \nearrow (↗), \neg (¬), \neovnwarrow (⤱), \neovsearrow (⤮), \neptune (♆), \neq (≠), \nequiv (≢), \neswarrow (⤢), \neuter (⚲), \nexists (∄), \ng (ŋ), \ngeq (≱), \ngtr (≯), \ngtrless (≹), \ngtrsim (≵), \nhVvert (⫵), \nhpar (⫲), \ni (∋), \niobar (⋾), \nis (⋼), \nisd (⋺), \nleftarrow (↚), \nleftrightarrow (↮), \nleq (≰), \nless (≮), \nlessgtr (≸), \nlesssim (≴), \nmid (∤), \nni (∌), \nobreakhyphen (‑), \notin (∉), \nparallel (∦), \npolint (⨔), \nprec (⊀), \npreccurlyeq (⋠), \nrightarrow (↛), \nsim (≁), \nsime (≄), \nsqsubseteq (⋢), \nsqsupseteq (⋣), \nsubset (⊄), \nsubseteq (⊈), \nsucc (⊁), \nsucccurlyeq (⋡), \nsupset (⊅), \nsupseteq (⊉), \ntriangleleft (⋪), \ntrianglelefteq (⋬), \ntriangleright (⋫), \ntrianglerighteq (⋭), \nu (ν), \nvDash (⊭), \nvLeftarrow (⤂), \nvLeftrightarrow (⤄), \nvRightarrow (⤃), \nvdash (⊬), \nvinfty (⧞), \nvleftarrow (⇷), \nvleftarrowtail (⬹), \nvleftrightarrow (⇹), \nvrightarrow (⇸), \nvrightarrowtail (⤔), \nvtwoheadleftarrow (⬴), \nvtwoheadleftarrowtail (⬼), \nvtwoheadrightarrow (⤀), \nvtwoheadrightarrowtail (⤗), \nwarrow (↖), \nwovnearrow (⤲), \nwsearrow (⤡).
+</p>
+<p>\o (ø), \obar (⌽), \obot (⦺), \obrbrak (⏠), \obslash (⦸), \odiv (⨸), \odot (⊙), \odotslashdot (⦼), \oe (œ), \ogreaterthan (⧁), \ohorn (ơ), \oiiint (∰), \oiint (∯), \oint (∮), \ointctrclockwise (∳), \olcross (⦻), \oldKoppa (Ϙ), \oldkoppa (ϙ), \olessthan (⧀), \omega (ω), \omicron (ο), \ominus (⊖), \operp (⦹), \oplus (⊕), \opluslhrim (⨭), \oplusrhrim (⨮), \origof (⊶), \oslash (⊘), \otimes (⊗), \otimeshat (⨶), \otimeslhrim (⨴), \otimesrhrim (⨵), \overbrace (⏞), \overbracket (⎴), \overline (‾), \overparen (⏜), \owns (∋).
+</p>
+<p>\parallel (∥), \parallelogram (▱), \parallelogramblack (▰), \parsim (⫳), \partial (∂), \partialmeetcontraction (⪣), \pentagon (⬠), \pentagonblack (⬟), \perp (⟂), \perps (⫡), \phi (ϕ), \phone (☎), \pi (π), \pitchfork (⋔), \plusdot (⨥), \pluseqq (⩲), \plushat (⨣), \plussim (⨦), \plussubtwo (⨧), \plustrif (⨨), \pluto (♇), \pm (±), \pointnt (⨕), \postalmark (〒), \prec (≺), \precapprox (⪷), \preccurlyeq (≼), \preceq (⪯), \preceqq (⪳), \precnapprox (⪹), \precneq (⪱), \precneqq (⪵), \precnsim (⋨), \precsim (≾), \prime (′), \prod (∏), \profalar (⌮), \profline (⌒), \profsurf (⌓), \propto (∝), \prurel (⊰), \psi (ψ), \pullback (⟓), \pushout (⟔).
+</p>
+<p>\qprime (⁗), \quarternote (♩), \questeq (≟), \quotdblbase („), \quotdblright (‟), \quotsinglbase (‚), \quotsinglright (‛).
+</p>
+<p>\rAngle (⟫), \rBrace (⦄), \rBrack (⟧), \rParen (⦆), \rangle (⟩), \rangledot (⦒), \rangledownzigzagarrow (⍼), \rasp (ʼ), \rbag (⟆), \rblkbrbrak (⦘), \rbrace (}), \rbracelend (⎭), \rbracemid (⎬), \rbraceuend (⎫), \rbrack (]), \rbrackextender (⎥), \rbracklend (⎦), \rbracklrtick (⦎), \rbrackubar (⦌), \rbrackuend (⎤), \rbrackurtick (⦐), \rbrbrak (❳), \rceil (⌉), \rcurvyangle (⧽), \rdiagovfdiag (⤫), \rdiagovsearrow (⤰), \recorder (⌕), \revangle (⦣), \revangleubar (⦥), \revemptyset (⦰), \revnmid (⫮), \rfbowtie (⧒), \rfloor (⌋), \rftimes (⧕), \rhd (⊳), \rho (ρ), \righarrowbsimilar (⭌), \rightangle (∟), \rightanglemdot (⦝), \rightanglesqr (⦜), \rightarrow (→), \rightarrowapprox (⥵), \rightarrowbackapprox (⭈), \rightarrowbar (⇥), \rightarrowdiamond (⤞), \rightarrowgtr (⭃), \rightarrowonoplus (⟴), \rightarrowplus (⥅), \rightarrowshortleftarrow (⥂), \rightarrowsimilar (⥴), \rightarrowsupset (⭄), \rightarrowtail (↣), \rightarrowtriangle (⇾), \rightarrowx (⥇), \rightbkarrow (⤍), \rightcurvedarrow (⤳), \rightdasharrow (⇢), \rightdbltail (⤜), \rightdotarrow (⤑), \rightdowncurvedarrow (⤷), \rightfishtail (⥽), \rightharpoondown (⇁), \rightharpoondownbar (⥗), \rightharpoonsupdown (⥤), \rightharpoonup (⇀), \rightharpoonupbar (⥓), \rightharpoonupdash (⥬), \rightimply (⥰), \rightleftarrows (⇄), \rightleftharpoons (⇌), \rightleftharpoonsdown (⥩), \rightleftharpoonsup (⥨), \rightmoon (☽), \rightouterjoin (⟖), \rightpentagon (⭔), \rightpentagonblack (⭓), \rightrightarrows (⇉), \rightsquigarrow (↝), \rightsquigarrow (⇝), \righttail (⤚), \rightthreearrows (⇶), \rightthreetimes (⋌), \rightwhitearrow (⇨), \ringplus (⨢), \risingdotseq (≓), \rmoustache (⎱), \rparenextender (⎟), \rparengtr (⦔), \rparenlend (⎠), \rparenuend (⎞), \rppolint (⨒), \rq (’), \rrangle (⦊), \rrparenthesis (⦈), \rsolbar (⧷), \rsqhook (⫎), \rsub (⩥), \rtimes (⋊), \rtriltri (⧎), \ruledelayed (⧴), \rvboxline (⎹), \rvzigzag (⧙).
+</p>
+<p>\sampi (ϡ), \sansLmirrored (⅃), \sansLturned (⅂), \saturn (♄), \scissors (✂), \scpolint (⨓), \scrB (ℬ), \scrE (ℰ), \scrF (ℱ), \scrH (ℋ), \scrI (ℐ), \scrL (ℒ), \scrM (ℳ), \scrR (ℛ), \scre (ℯ), \scrg (ℊ), \scro (ℴ), \scurel (⊱), \searrow (↘), \seovnearrow (⤭), \setminus (∖), \setminus (⧵), \sharp (♯), \shortdowntack (⫟), \shortleftarrow (←), \shortlefttack (⫞), \shortrightarrow (→), \shortrightarrowleftarrow (⥄), \shortuptack (⫠), \shuffle (⧢), \sigma (σ), \silon (υ), \silon (ϒ), \sim (∼), \simeq (≃), \simgE (⪠), \simgtr (⪞), \similarleftarrow (⭉), \similarrightarrow (⥲), \simlE (⪟), \simless (⪝), \simminussim (⩬), \simneqq (≆), \simplus (⨤), \simrdots (⩫), \sinewave (∿), \slash (∕), \smallblacktriangleleft (◂), \smallblacktriangleright (▸), \smalldiamond (⋄), \smallin (∊), \smallint (∫), \smallni (∍), \smallsetminus (∖), \smalltriangleleft (◃), \smalltriangleright (▹), \smashtimes (⨳), \smblkdiamond (⬩), \smblklozenge (⬪), \smblksquare (▪), \smeparsl (⧤), \smile (⌣), \smiley (☺), \smt (⪪), \smte (⪬), \smwhitestar (⭒), \smwhtcircle (◦), \smwhtlozenge (⬫), \smwhtsquare (▫), \spadesuit (♠), \sphericalangle (∢), \sphericalangleup (⦡), \sqcap (⊓), \sqcup (⊔), \sqint (⨖), \sqlozenge (⌑), \sqrt (√), \sqrt3 (∛), \sqrt4 (∜), \sqrtbottom (⎷), \sqsubset (⊏), \sqsubseteq (⊑), \sqsubsetneq (⋤), \sqsupset (⊐), \sqsupseteq (⊒), \sqsupsetneq (⋥), \squarecrossfill (▩), \squaregrayfill (▩), \squarehfill (▤), \squarehvfill (▦), \squareleftblack (◧), \squareleftblack (◨), \squarellblack (⬕), \squarellquad (◱), \squarelrblack (◪), \squarelrquad (◲), \squareneswfill (▨), \squarenwsefill (▧), \squareulblack (◩), \squareulquad (◰), \squareurblack (⬔), \squareurquad (◳), \squarevfill (▥), \squoval (▢), \ss (ß), \star (⋆), \stareq (≛), \sterling (£), \stigma (ϛ), \strns (⏤), \subedot (⫃), \submult (⫁), \subrarr (⥹), \subset (⊂), \subsetapprox (⫉), \subsetcirc (⟃), \subsetdot (⪽), \subseteq (⊆), \subseteqq (⫅), \subsetneq (⊊), \subsetneqq (⫋), \subsetplus (⪿), \subsim (⫇), \subsub (⫕), \subsup (⫓), \succ (≻), \succapprox (⪸), \succcurlyeq (≽), \succeq (⪰), \succeqq (⪴), \succnapprox (⪺), \succneq (⪲), \succneqq (⪶), \succnsim (⋩), \succsim (≿), \sum (∑), \sumbottom (⎳), \sumint (⨋), \sumtop (⎲), \sun (☼), \supdsub (⫘), \supedot (⫄), \suphsol (⟉), \suphsub (⫗), \suplarr (⥻), \supmult (⫂), \supn (ⁿ), \supset (⊃), \supsetapprox (⫊), \supsetcirc (⟄), \supsetdot (⪾), \supseteq (⊇), \supseteqq (⫆), \supsetneq (⊋), \supsetneqq (⫌), \supsetplus (⫀), \supsim (⫈), \supsub (⫔), \supsup (⫖), \surd (√), \swarrow (↙).
+</p>
+<p>\talloblong (⫾), \target (⌖), \tau (τ), \taurus (♉), \testhookx (ᶍ), \textAsterisks (⁑), \textacute (ˊ), \textadvanced (˖), \textain (ʿ), \textasciiacute (´), \textasciicircum (^), \textasciidieresis (¨), \textasciigrave (&lsquo;), \textasciimacron (¯), \textasciitilde (~), \textasterisklow (⁎), \textbackdprime (‶), \textbackprime (‵), \textbacktrprime (‷), \textbardotlessj (ɟ), \textbardotlessjvar (ʄ), \textbarglotstop (ʡ), \textbari (ɨ), \textbarl (ƚ), \textbaro (ɵ), \textbarrevglotstop (ʢ), \textbaru (ʉ), \textbeltl (ɬ), \textbenttailyogh (ƺ), \textbreve (˘), \textbrokenbar (¦), \textbullet (•), \textbullseye (ʘ), \textcent (¢), \textcircledP (℗), \textcloseepsilon (ʚ), \textcloseomega (ɷ), \textcloserevepsilon (ɞ), \textcopyright (©), \textcrb (ƀ), \textcrh (ħ), \textcrinvglotstop (ƾ), \textcrlambda (ƛ), \textcrtwo (ƻ), \textctc (ɕ), \textctd (ȡ), \textctesh (ʆ), \textctj (ʝ), \textctl (ȴ), \textctn (ȵ), \textctt (ȶ), \textctyogh (ʓ), \textctz (ʑ), \textcurrency (¤), \textdctzlig (ʥ), \textdegree (°), \textdiscount (⁒), \textdollar ($), \textdotaccent (˙), \textdotlessj (ȷ), \textdoubleacute (˝), \textdoublebarpipe (ǂ), \textdoublepipe (ǁ), \textdprime (″), \textdptr (˅), \textdyoghlig (ʤ), \textdzlig (ʣ), \textepsilon (ɛ), \textesh (ʃ), \textestimated (℮), \textexclam (ǃ), \textexclamdown (¡), \textfishhookr (ɾ), \textflorin (ƒ), \textfranc (₣), \textgamma (ɣ), \textglotstop (ʔ), \textgrave (ˋ), \texthalflength (ˑ), \texthamza (ʾ), \texthen (ꜧ), \textheng (ꜧ), \texthooks (ᶊ), \texthookz (ᶎ), \texthtb (ɓ), \texthtc (ƈ), \texthtd (ɗ), \texthtg (ɠ), \texthth (ɦ), \texththeng (ɧ), \texthtk (ƙ), \texthtp (ƥ), \texthtq (ʠ), \texthtscg (ʛ), \texthtt (ƭ), \texthvlig (ƕ), \texthyphen (‐), \textinvglotstop (ʖ), \textinvscr (ʁ), \textiota (ɩ), \textlengthmark (ː), \textlhalfring (˓), \textlhookd (ᶁ), \textlhookk (ᶄ), \textlhookl (ᶅ), \textlhookt (ƫ), \textlhti (ɿ), \textlira (₤), \textlonglegr (ɼ), \textlongy (ʮ), \textlongy (ʯ), \textlooptoprevesh (ƪ), \textlowacute (ˏ), \textlowered (˕), \textlowgrave (ˎ), \textlowmacron (ˍ), \textlptr (˂), \textltailm (ɱ), \textltailn (ɲ), \textltilde (ɫ), \textlyoghlig (ɮ), \textmacron (ˉ), \textmu (µ), \textnumero (№), \textogonek (˛), \textohm (Ω), \textonehalf (½), \textonequarter (¼), \textonesuperior (¹), \textopeno (ɔ), \textordfeminine (ª), \textordmasculine (º), \textovercross (˟), \textoz (℥), \textpertenthousand (‱), \textperthousand (‰), \textpesetas (₧), \textphi (ɸ), \textpipe (ǀ), \textprime (′), \textprimstress (ˈ), \textqprime (⁗), \textquestiondown (¿), \textquotedbl (&quot;), \textquotedblleft (“), \textquotedblright (”), \textraised (˔), \textraiseglotstop (ˀ), \textraiserevglotstop (ˁ), \textramshorns (ɤ), \textrecipe (℞), \textreferencemark (※), \textregistered (®), \textretracted (˗), \textreve (ɘ), \textrevepsilon (ɜ), \textrevglotstop (ʕ), \textrhalfring (˒), \textrhookrevepsilon (ɝ), \textrhookschwa (ɚ), \textrhoticity (˞), \textringaccent (˚), \textrptr (˃), \textrtaild (ɖ), \textrtaill (ɭ), \textrtailn (ɳ), \textrtailr (ɽ), \textrtails (ʂ), \textrtailt (ʈ), \textrtailz (ʐ), \textsca (ᴀ), \textscb (ʙ), \textsce (ᴇ), \textscg (ɢ), \textsch (ʜ), \textschwa (ə), \textsci (ɪ), \textscl (ʟ), \textscn (ɴ), \textscoelig (ɶ), \textscr (ʀ), \textscripta (ɑ), \textscriptg (ɡ), \textscriptv (ʋ), \textscu (ᴜ), \textscy (ʏ), \textsecstress (ˌ), \textsemicolonreversed (⁏), \textsilon (Υ), \textsmalltilde (˜), \textstretchcvar (ʗ), \textsubw (w), \textsuph (ʰ), \textsuphth (ʱ), \textsupinvscr (ʶ), \textsupj (ʲ), \textsupr (ʳ), \textsupturnr (ʴ), \textsupturnrrtail (ʵ), \textsupw (ʷ), \textsupy (ʸ), \texttctctlig (ʧ), \texttctctlig (ʨ), \textthreequarters (¾), \textthreesuperior (³), \texttrademark (™), \texttrprime (‴), \texttslig (ʦ), \textturna (ɐ), \textturncomma (ʻ), \textturnh (ɥ), \textturnk (ʞ), \textturnlonglegr (ɺ), \textturnm (ɯ), \textturnmrleg (ɰ), \textturnr (ɹ), \textturnrrtail (ɻ), \textturnscripta (ɒ), \textturnt (ʇ), \textturnv (ʌ), \textturnw (ʍ), \textturny (ʎ), \texttwosuperior (²), \textupsilon (ʊ), \textuptr (˄), \textvibyi (ʅ), \textvisiblespace (␣), \textyogh (ʒ), \th (þ), \therefore (∴), \thermod (⧧), \theta (θ), \thickapprox (≈), \thicksim (∼), \threedangle (⟀), \threedotcolon (⫶), \tieconcat (⁀), \tieinfty (⧝), \times (×), \timesbar (⨱), \tminus (⧿), \to (→), \toea (⤨), \tona (⤧), \tonebarextrahigh (˥), \tonebarextralow (˩), \tonebarhigh (˦), \tonebarlow (˨), \tonebarmid (˧), \top (⊤), \topbot (⌶), \topcir (⫱), \topfork (⫚), \topsemicircle (◠), \tosa (⤩), \towa (⤪), \tplus (⧾), \trapezium (⏢), \trianglecdot (◬), \triangledown (▿), \triangleexclam (⚠), \triangleleft (◁), \triangleleftblack (◭), \trianglelefteq (⊴), \triangleminus (⨺), \triangleodot (⧊), \triangleplus (⨹), \triangleq (≜), \triangleright (▷), \trianglerightblack (◮), \trianglerighteq (⊵), \triangles (⧌), \triangleserifs (⧍), \triangletimes (⨻), \triangleubar (⧋), \tripleplus (⧻), \trprime (‴), \turnangle (⦢), \turnediota (℩), \turnednot (⌙), \twocaps (⩋), \twocups (⩊), \twoheaddownarrow (↡), \twoheadleftarrow (↞), \twoheadleftarrowtail (⬻), \twoheadleftdbkarrow (⬷), \twoheadmapsfrom (⬶), \twoheadmapsto (⤅), \twoheadrightarrow (↠), \twoheadrightarrowtail (⤖), \twoheaduparrow (↟), \twoheaduparrowcircle (⥉), \twolowline (‗), \twonotes (♫), \typecolon (⦂).
+</p>
+<p>\ubrbrak (⏡), \uhorn (ư), \ularc (◜), \ulblacktriangle (◤), \ulcorner (⌜), \ulcrop (⌏), \ultriangle (◸), \uminus (⩁), \underbrace (⏟), \underbracket (⎵), \underparen (⏝), \unlhd (⊴), \unrhd (⊵), \upand (⅋), \uparrow (↑), \uparrowbarred (⤉), \uparrowoncircle (⦽), \updasharrow (⇢), \updownarrow (↕), \updownarrowbar (↨), \updownarrows (⇅), \updownharpoonleftleft (⥑), \updownharpoonleftright (⥍), \updownharpoonrightleft (⥌), \updownharpoonrightright (⥏), \updownharpoonsleftright (⥮), \upfishtail (⥾), \upharpoonleft (↿), \upharpoonleftbar (⥠), \upharpoonright (↾), \upharpoonrightbar (⥜), \upharpoonsleftright (⥣), \upin (⟒), \upint (⨛), \uplus (⊎), \uprightcurvearrow (⤴), \upuparrows (⇈), \upwhitearrow (⇧), \urarc (◝), \urblacktriangle (◥), \urcorner (⌝), \urcrop (⌎), \urtriangle (◹).
+</p>
+<p>\v (ˇ), \vBar (⫨), \vBarv (⫩), \vDash (⊨), \vDdash (⫢), \varTheta (ϴ), \varVdash (⫦), \varbarwedge (⌅), \varbeta (ϐ), \varclubsuit (♧), \vardiamondsuit (♦), \vardoublebarwedge (⌆), \varepsilon (ε), \varheartsuit (♥), \varhexagon (⬡), \varhexagonblack (⬢), \varhexagonlrbonds (⌬), \varin (∈), \varisinobar (⋶), \varisins (⋳), \varkappa (ϰ), \varlrtriangle (⊿), \varni (∋), \varniobar (⋽), \varnis (⋻), \varnothing (∅), \varointclockwise (∲), \varphi (φ), \varpi (ϖ), \varpropto (∝), \varrho (ϱ), \varrowextender (⏐), \varsigma (ς), \varspadesuit (♤), \varstar (✶), \vartheta (ϑ), \vartriangle (▵), \vartriangleleft (⊲), \vartriangleright (⊳), \varveebar (⩡), \vbraceextender (⎪), \vbrtri (⧐), \vdash (⊢), \vdots (⋮), \vectimes (⨯), \vee (∨), \veebar (⊻), \veedot (⟇), \veedoublebar (⩣), \veeeq (≚), \veemidvert (⩛), \veeodot (⩒), \veeonvee (⩖), \veeonwedge (⩙), \vert (|), \viewdata (⌗), \vlongdash (⟝), \vrectangle (▯), \vrectangleblack (▮), \vysmlblksquare (⬝), \vysmlwhtsquare (⬞), \vzigzag (⦚).
+</p>
+<p>\watchicon (⌚), \wedge (∧), \wedgebar (⩟), \wedgedot (⟑), \wedgedoublebar (⩠), \wedgemidvert (⩚), \wedgeodot (⩑), \wedgeonwedge (⩕), \wedgeq (≙), \whitearrowupfrombar (⇪), \whiteinwhitetriangle (⟁), \whitepointerleft (◅), \whitepointerright (▻), \whitesquaretickleft (⟤), \whitesquaretickright (⟥), \whthorzoval (⬭), \whtvertoval (⬯), \wideangledown (⦦), \wideangleup (⦧), \wp (℘), \wr (≀).
+</p>
+<p>\xbsol (⧹), \xi (ξ), \xsol (⧸), \yen (¥), \zeta (ζ), \zpipe (⨠), 
+</p>
+<p>IF ANYBODY WILL CHECK WHETHER ALL NAMES CORRESPOND TO RIGHT TEX SYMBOLS I SHALL APPRECIATE IT GREATLY. 
+</p>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_en.html/mathgl_en_11.html b/texinfo/mathgl_en.html/mathgl_en_11.html
new file mode 100644
index 0000000..c1e2f20
--- /dev/null
+++ b/texinfo/mathgl_en.html/mathgl_en_11.html
@@ -0,0 +1,542 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: B. GNU Free Documentation License</title>
+
+<meta name="description" content="MathGL 1.11: B. GNU Free Documentation License">
+<meta name="keywords" content="MathGL 1.11: B. GNU Free Documentation License">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Copying-This-Manual"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="GNU-Free-Documentation-License"></a>
+<h1 class="appendix">B. GNU Free Documentation License</h1>
+<p align="center"> Version 1.2, November 2002
+</p>
+
+<table><tr><td>&nbsp;</td><td><pre class="display">Copyright &copy; 2000,2001,2002 Free Software Foundation, Inc.
+51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+</pre></td></tr></table>
+
+<ol>
+<li>
+PREAMBLE
+
+<p>The purpose of this License is to make a manual, textbook, or other
+functional and useful document <em>free</em> in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+</p>
+<p>This License is a kind of &ldquo;copyleft&rdquo;, which means that derivative
+works of the document must themselves be free in the same sense.  It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+</p>
+<p>We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does.  But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book.  We recommend this License
+principally for works whose purpose is instruction or reference.
+</p>
+</li><li>
+APPLICABILITY AND DEFINITIONS
+
+<p>This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License.  Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein.  The &ldquo;Document&rdquo;, below,
+refers to any such manual or work.  Any member of the public is a
+licensee, and is addressed as &ldquo;you&rdquo;.  You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+</p>
+<p>A &ldquo;Modified Version&rdquo; of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+</p>
+<p>A &ldquo;Secondary Section&rdquo; is a named appendix or a front-matter section
+of the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document&rsquo;s overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject.  (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.)  The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+</p>
+<p>The &ldquo;Invariant Sections&rdquo; are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License.  If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant.  The Document may contain zero
+Invariant Sections.  If the Document does not identify any Invariant
+Sections then there are none.
+</p>
+<p>The &ldquo;Cover Texts&rdquo; are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.  A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+</p>
+<p>A &ldquo;Transparent&rdquo; copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters.  A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text.  A copy that is not &ldquo;Transparent&rdquo; is called &ldquo;Opaque&rdquo;.
+</p>
+<p>Examples of suitable formats for Transparent copies include plain
+<small>ASCII</small> without markup, Texinfo input format, LaTeX input
+format, <acronym>SGML</acronym> or <acronym>XML</acronym> using a publicly available
+<acronym>DTD</acronym>, and standard-conforming simple <acronym>HTML</acronym>,
+PostScript or <acronym>PDF</acronym> designed for human modification.  Examples
+of transparent image formats include <acronym>PNG</acronym>, <acronym>XCF</acronym> and
+<acronym>JPG</acronym>.  Opaque formats include proprietary formats that can be
+read and edited only by proprietary word processors, <acronym>SGML</acronym> or
+<acronym>XML</acronym> for which the <acronym>DTD</acronym> and/or processing tools are
+not generally available, and the machine-generated <acronym>HTML</acronym>,
+PostScript or <acronym>PDF</acronym> produced by some word processors for
+output purposes only.
+</p>
+<p>The &ldquo;Title Page&rdquo; means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page.  For works in
+formats which do not have any title page as such, &ldquo;Title Page&rdquo; means
+the text near the most prominent appearance of the work&rsquo;s title,
+preceding the beginning of the body of the text.
+</p>
+<p>A section &ldquo;Entitled XYZ&rdquo; means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language.  (Here XYZ stands for a
+specific section name mentioned below, such as &ldquo;Acknowledgements&rdquo;,
+&ldquo;Dedications&rdquo;, &ldquo;Endorsements&rdquo;, or &ldquo;History&rdquo;.)  To &ldquo;Preserve the Title&rdquo;
+of such a section when you modify the Document means that it remains a
+section &ldquo;Entitled XYZ&rdquo; according to this definition.
+</p>
+<p>The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document.  These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+</p>
+</li><li>
+VERBATIM COPYING
+
+<p>You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License.  You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute.  However, you may accept
+compensation in exchange for copies.  If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+</p>
+<p>You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+</p>
+</li><li>
+COPYING IN QUANTITY
+
+<p>If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document&rsquo;s license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover.  Both covers must also clearly and legibly identify
+you as the publisher of these copies.  The front cover must present
+the full title with all words of the title equally prominent and
+visible.  You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+</p>
+<p>If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+</p>
+<p>If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+</p>
+<p>It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+</p>
+</li><li>
+MODIFICATIONS
+
+<p>You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it.  In addition, you must do these things in the Modified Version:
+</p>
+<ol>
+<li>
+Use in the Title Page (and on the covers, if any) a title distinct
+from that of the Document, and from those of previous versions
+(which should, if there were any, be listed in the History section
+of the Document).  You may use the same title as a previous version
+if the original publisher of that version gives permission.
+
+</li><li>
+List on the Title Page, as authors, one or more persons or entities
+responsible for authorship of the modifications in the Modified
+Version, together with at least five of the principal authors of the
+Document (all of its principal authors, if it has fewer than five),
+unless they release you from this requirement.
+
+</li><li>
+State on the Title page the name of the publisher of the
+Modified Version, as the publisher.
+
+</li><li>
+Preserve all the copyright notices of the Document.
+
+</li><li>
+Add an appropriate copyright notice for your modifications
+adjacent to the other copyright notices.
+
+</li><li>
+Include, immediately after the copyright notices, a license notice
+giving the public permission to use the Modified Version under the
+terms of this License, in the form shown in the Addendum below.
+
+</li><li>
+Preserve in that license notice the full lists of Invariant Sections
+and required Cover Texts given in the Document&rsquo;s license notice.
+
+</li><li>
+Include an unaltered copy of this License.
+
+</li><li>
+Preserve the section Entitled &ldquo;History&rdquo;, Preserve its Title, and add
+to it an item stating at least the title, year, new authors, and
+publisher of the Modified Version as given on the Title Page.  If
+there is no section Entitled &ldquo;History&rdquo; in the Document, create one
+stating the title, year, authors, and publisher of the Document as
+given on its Title Page, then add an item describing the Modified
+Version as stated in the previous sentence.
+
+</li><li>
+Preserve the network location, if any, given in the Document for
+public access to a Transparent copy of the Document, and likewise
+the network locations given in the Document for previous versions
+it was based on.  These may be placed in the &ldquo;History&rdquo; section.
+You may omit a network location for a work that was published at
+least four years before the Document itself, or if the original
+publisher of the version it refers to gives permission.
+
+</li><li>
+For any section Entitled &ldquo;Acknowledgements&rdquo; or &ldquo;Dedications&rdquo;, Preserve
+the Title of the section, and preserve in the section all the
+substance and tone of each of the contributor acknowledgements and/or
+dedications given therein.
+
+</li><li>
+Preserve all the Invariant Sections of the Document,
+unaltered in their text and in their titles.  Section numbers
+or the equivalent are not considered part of the section titles.
+
+</li><li>
+Delete any section Entitled &ldquo;Endorsements&rdquo;.  Such a section
+may not be included in the Modified Version.
+
+</li><li>
+Do not retitle any existing section to be Entitled &ldquo;Endorsements&rdquo; or
+to conflict in title with any Invariant Section.
+
+</li><li>
+Preserve any Warranty Disclaimers.
+</li></ol>
+
+<p>If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant.  To do this, add their titles to the
+list of Invariant Sections in the Modified Version&rsquo;s license notice.
+These titles must be distinct from any other section titles.
+</p>
+<p>You may add a section Entitled &ldquo;Endorsements&rdquo;, provided it contains
+nothing but endorsements of your Modified Version by various
+parties&mdash;for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+</p>
+<p>You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version.  Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity.  If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+</p>
+<p>The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+</p>
+</li><li>
+COMBINING DOCUMENTS
+
+<p>You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+</p>
+<p>The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy.  If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+</p>
+<p>In the combination, you must combine any sections Entitled &ldquo;History&rdquo;
+in the various original documents, forming one section Entitled
+&ldquo;History&rdquo;; likewise combine any sections Entitled &ldquo;Acknowledgements&rdquo;,
+and any sections Entitled &ldquo;Dedications&rdquo;.  You must delete all
+sections Entitled &ldquo;Endorsements.&rdquo;
+</p>
+</li><li>
+COLLECTIONS OF DOCUMENTS
+
+<p>You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+</p>
+<p>You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+</p>
+</li><li>
+AGGREGATION WITH INDEPENDENT WORKS
+
+<p>A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an &ldquo;aggregate&rdquo; if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation&rsquo;s users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+</p>
+<p>If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document&rsquo;s Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+</p>
+</li><li>
+TRANSLATION
+
+<p>Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections.  You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers.  In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+</p>
+<p>If a section in the Document is Entitled &ldquo;Acknowledgements&rdquo;,
+&ldquo;Dedications&rdquo;, or &ldquo;History&rdquo;, the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+</p>
+</li><li>
+TERMINATION
+
+<p>You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License.  Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License.  However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+</p>
+</li><li>
+FUTURE REVISIONS OF THIS LICENSE
+
+<p>The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time.  Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.  See
+<a href="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</a>.
+</p>
+<p>Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License &ldquo;or any later version&rdquo; applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation.  If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+</p></li></ol>
+
+
+<a name="ADDENDUM_003a-How-to-use-this-License-for-your-documents"></a>
+<h2 class="heading">ADDENDUM: How to use this License for your documents</h2>
+
+<p>To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample">  Copyright (C)  <var>year</var>  <var>your name</var>.
+  Permission is granted to copy, distribute and/or modify this document
+  under the terms of the GNU Free Documentation License, Version 1.2
+  or any later version published by the Free Software Foundation;
+  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+  Texts.  A copy of the license is included in the section entitled ``GNU
+  Free Documentation License''.
+</pre></td></tr></table>
+
+<p>If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the &ldquo;with&hellip;Texts.&rdquo; line with this:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample">    with the Invariant Sections being <var>list their titles</var>, with
+    the Front-Cover Texts being <var>list</var>, and with the Back-Cover Texts
+    being <var>list</var>.
+</pre></td></tr></table>
+
+<p>If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+</p>
+<p>If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
+</p>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_en.html/mathgl_en_12.html b/texinfo/mathgl_en.html/mathgl_en_12.html
new file mode 100644
index 0000000..f6d83d6
--- /dev/null
+++ b/texinfo/mathgl_en.html/mathgl_en_12.html
@@ -0,0 +1,375 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: Index</title>
+
+<meta name="description" content="MathGL 1.11: Index">
+<meta name="keywords" content="MathGL 1.11: Index">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Index"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_13.html#index_split-0" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Index-1"></a>
+<h1 class="unnumbered">Index</h1>
+
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Index-1_cp_letter-A">A</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-AddLegend">AddLegend</a></td><td valign="top"><a href="mathgl_en_3.html#Legend">3.8 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-addlegend">addlegend</a></td><td valign="top"><a href="mathgl_en_8.html#Legend-_0028MGL_0029">8.8 Legend (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-AddLegend-3">AddLegend</a></td><td valign="top"><a href="mathgl_en_9.html#Legend-sample">9.6.1 Legend sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-AddLight">AddLight</a></td><td valign="top"><a href="mathgl_en_3.html#Lighting">3.1.2 Lighting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-addto">addto</a></td><td valign="top"><a href="mathgl_en_8.html#Operators-_0028MGL_0029">8.22 Operators (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-adjust">adjust</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-AdjustTicks">AdjustTicks</a></td><td valign="top"><a href="mathgl_en_3.html#Ticks">3.2.3 Ticks</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Alpha">Alpha</a></td><td valign="top"><a href="mathgl_en_3.html#Transparency">3.1.1 Transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-alpha">alpha</a></td><td valign="top"><a href="mathgl_en_8.html#Transparency-_0028MGL_0029">8.1.1 Transparency (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Alpha-2">Alpha</a></td><td valign="top"><a href="mathgl_en_9.html#Transparent-surface-sample">9.2.2 Transparent surface sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-alpha-2">alpha</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Alpha-3">Alpha</a></td><td valign="top"><a href="mathgl_en_9.html#g_t2D-plot-sample">9.5.2 2D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Alpha-4">Alpha</a></td><td valign="top"><a href="mathgl_en_9.html#g_t3D-plot-sample">9.5.3 3D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-alphadef">alphadef</a></td><td valign="top"><a href="mathgl_en_8.html#Transparency-_0028MGL_0029">8.1.1 Transparency (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-alphadef-2">alphadef</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ambient">ambient</a></td><td valign="top"><a href="mathgl_en_8.html#Lighting-_0028MGL_0029">8.1.2 Lighting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Ambient">Ambient</a></td><td valign="top"><a href="mathgl_en_3.html#Lighting">3.1.2 Lighting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ambient-2">ambient</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-area">area</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Area">Area</a></td><td valign="top"><a href="mathgl_en_3.html#Area">3.9.4 Area</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Area-4">Area</a></td><td valign="top"><a href="mathgl_en_9.html#Area-sample">9.1.4 Area sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Area-5">Area</a></td><td valign="top"><a href="mathgl_en_9.html#Area-gradient-sample">9.1.5 Area with gradient filling sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_1.html#index-Arrows">Arrows</a></td><td valign="top"><a href="mathgl_en_1.html#Line-styles">1.4.2 Line styles</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-arrowsize">arrowsize</a></td><td valign="top"><a href="mathgl_en_8.html#Default-sizes-_0028MGL_0029">8.1.4 Default sizes (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Aspect">Aspect</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-aspect">aspect</a></td><td valign="top"><a href="mathgl_en_8.html#Transformation-matrix-_0028MGL_0029">8.3 Transformation matrix (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-AutoOrg">AutoOrg</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Axial">Axial</a></td><td valign="top"><a href="mathgl_en_3.html#Axial">3.10.11 Axial</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-axial">axial</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Axial-5">Axial</a></td><td valign="top"><a href="mathgl_en_9.html#Axial-sample">9.2.14 Axial sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Axial-6">Axial</a></td><td valign="top"><a href="mathgl_en_9.html#Adding-mesh-sample">9.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-axialdir">axialdir</a></td><td valign="top"><a href="mathgl_en_8.html#Other-settings-_0028MGL_0029">8.1.7 Other settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-axis">axis</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Axis">Axis</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Axis-2">Axis</a></td><td valign="top"><a href="mathgl_en_3.html#Axis-and-Colorbar">3.7 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-axis-5">axis</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Axis-4">Axis</a></td><td valign="top"><a href="mathgl_en_9.html#Pie-chart-sample">9.1.23 Pie chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Axis-5">Axis</a></td><td valign="top"><a href="mathgl_en_9.html#Ring-chart-sample">9.1.24 Ring chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Axis-6">Axis</a></td><td valign="top"><a href="mathgl_en_9.html#Dens3-sample">9.3.4 Dens3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Axis-7">Axis</a></td><td valign="top"><a href="mathgl_en_9.html#Curvelinear-coorinates-sample">9.7.1 Curvelinear coorinates sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Axis-8">Axis</a></td><td valign="top"><a href="mathgl_en_9.html#g_t2_002daxes-sample">9.7.2 2-axes sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Axis-9">Axis</a></td><td valign="top"><a href="mathgl_en_9.html#Semi_002dlog-sample">9.7.3 Semi-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Axis-10">Axis</a></td><td valign="top"><a href="mathgl_en_9.html#Log_002dlog-sample">9.7.4 Log-log sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Index-1_cp_letter-B">B</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ball">ball</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Ball">Ball</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-barh">barh</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Barh">Barh</a></td><td valign="top"><a href="mathgl_en_3.html#Barh">3.9.8 Barh</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Barh-3">Barh</a></td><td valign="top"><a href="mathgl_en_9.html#Barh-sample">9.1.10 Barh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-bars">bars</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Bars">Bars</a></td><td valign="top"><a href="mathgl_en_3.html#Bars">3.9.7 Bars</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Bars-4">Bars</a></td><td valign="top"><a href="mathgl_en_9.html#Bars-sample">9.1.6 Bars sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Bars-5">Bars</a></td><td valign="top"><a href="mathgl_en_9.html#Bars-2-colors-sample">9.1.7 Bars 2 colors sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Bars-6">Bars</a></td><td valign="top"><a href="mathgl_en_9.html#Bars-above-sample">9.1.8 Bars above sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Bars-7">Bars</a></td><td valign="top"><a href="mathgl_en_9.html#Bars-fall-sample">9.1.9 Bars fall sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Bars-8">Bars</a></td><td valign="top"><a href="mathgl_en_9.html#g_t1D-plot-sample">9.5.1 1D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-barwidth">barwidth</a></td><td valign="top"><a href="mathgl_en_8.html#Default-sizes-_0028MGL_0029">8.1.4 Default sizes (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Beam">Beam</a></td><td valign="top"><a href="mathgl_en_3.html#Beam">3.11.7 Beam</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-beam">beam</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Belt">Belt</a></td><td valign="top"><a href="mathgl_en_3.html#Belt">3.10.3 Belt</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-belt">belt</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Belt-3">Belt</a></td><td valign="top"><a href="mathgl_en_9.html#Belt-sample">9.2.7 Belt sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Box">Box</a></td><td valign="top"><a href="mathgl_en_3.html#Axis-and-Colorbar">3.7 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-box">box</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-BoxPlot">BoxPlot</a></td><td valign="top"><a href="mathgl_en_3.html#BoxPlot">3.9.16 BoxPlot</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-boxplot">boxplot</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-BoxPlot-3">BoxPlot</a></td><td valign="top"><a href="mathgl_en_9.html#BoxPlot-sample">9.1.16 BoxPlot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-boxs">boxs</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Boxs">Boxs</a></td><td valign="top"><a href="mathgl_en_3.html#Boxs">3.10.5 Boxs</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Boxs-3">Boxs</a></td><td valign="top"><a href="mathgl_en_9.html#Boxs-sample">9.2.9 Boxs sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Index-1_cp_letter-C">C</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-call">call</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-caxis">caxis</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-CAxis">CAxis</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-chart">chart</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Chart">Chart</a></td><td valign="top"><a href="mathgl_en_3.html#Chart">3.9.9 Chart</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Chart-2">Chart</a></td><td valign="top"><a href="mathgl_en_9.html#Chart-sample">9.1.22 Chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Chart-3">Chart</a></td><td valign="top"><a href="mathgl_en_9.html#Pie-chart-sample">9.1.23 Pie chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Chart-4">Chart</a></td><td valign="top"><a href="mathgl_en_9.html#Ring-chart-sample">9.1.24 Ring chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-chdir">chdir</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ClearLegend">ClearLegend</a></td><td valign="top"><a href="mathgl_en_3.html#Legend">3.8 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-clearlegend">clearlegend</a></td><td valign="top"><a href="mathgl_en_8.html#Legend-_0028MGL_0029">8.8 Legend (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-clf">clf</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Clf">Clf</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-cloud">cloud</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Cloud-2">Cloud</a></td><td valign="top"><a href="mathgl_en_9.html#Cloud-sample">9.3.2 Cloud sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-CloudP">CloudP</a></td><td valign="top"><a href="mathgl_en_3.html#Cloud">3.11.6 Cloud</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-CloudP-3">CloudP</a></td><td valign="top"><a href="mathgl_en_9.html#CloudP-sample">9.3.3 CloudP sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-CloudQ">CloudQ</a></td><td valign="top"><a href="mathgl_en_3.html#Cloud">3.11.6 Cloud</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Cmax">Cmax</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Cmin">Cmin</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_1.html#index-Color-scheme">Color scheme</a></td><td valign="top"><a href="mathgl_en_1.html#Color-scheme">1.4.3 Color scheme</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-colorbar">colorbar</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Colorbar">Colorbar</a></td><td valign="top"><a href="mathgl_en_3.html#Axis-and-Colorbar">3.7 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Colorbar-6">Colorbar</a></td><td valign="top"><a href="mathgl_en_9.html#Dens-sample">9.2.10 Dens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Colorbar-7">Colorbar</a></td><td valign="top"><a href="mathgl_en_9.html#Color-schemes-sample">9.5.10 Color schemes sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Column">Column</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ColumnPlot">ColumnPlot</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-columnplot">columnplot</a></td><td valign="top"><a href="mathgl_en_8.html#Transformation-matrix-_0028MGL_0029">8.3 Transformation matrix (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-ColumnPlot-2">ColumnPlot</a></td><td valign="top"><a href="mathgl_en_9.html#ColumnPlot-sample">9.7.13 ColumnPlot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-combine">combine</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Combine">Combine</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Cone">Cone</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-cone">cone</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Cont">Cont</a></td><td valign="top"><a href="mathgl_en_3.html#Cont">3.10.8 Cont</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-cont">cont</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Cont-5">Cont</a></td><td valign="top"><a href="mathgl_en_9.html#Cont-sample">9.2.11 Cont sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Cont-6">Cont</a></td><td valign="top"><a href="mathgl_en_9.html#Adding-mesh-sample">9.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Cont-7">Cont</a></td><td valign="top"><a href="mathgl_en_9.html#Surf-_0026-Cont-sample">9.6.3 Surf &amp; Cont sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Cont-8">Cont</a></td><td valign="top"><a href="mathgl_en_9.html#Cont-with-labels-sample">9.6.7 Cont with labels sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Cont3">Cont3</a></td><td valign="top"><a href="mathgl_en_3.html#Cont3">3.11.3 Cont3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-cont3">cont3</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Cont3-5">Cont3</a></td><td valign="top"><a href="mathgl_en_9.html#Cont3-sample">9.3.5 Cont3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContA">ContA</a></td><td valign="top"><a href="mathgl_en_3.html#Cont3">3.11.3 Cont3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-conta">conta</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-contd">contd</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContD">ContD</a></td><td valign="top"><a href="mathgl_en_3.html#ContD">3.10.10 ContD</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-ContD-5">ContD</a></td><td valign="top"><a href="mathgl_en_9.html#ContD-sample">9.2.13 ContD sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContF">ContF</a></td><td valign="top"><a href="mathgl_en_3.html#ContF">3.10.9 ContF</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-contf">contf</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-ContF-5">ContF</a></td><td valign="top"><a href="mathgl_en_9.html#ContF-sample">9.2.12 ContF sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContF3">ContF3</a></td><td valign="top"><a href="mathgl_en_3.html#ContF3">3.11.4 ContF3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-contf3">contf3</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-ContF3-5">ContF3</a></td><td valign="top"><a href="mathgl_en_9.html#ContF3-sample">9.3.6 ContF3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-ContF3-6">ContF3</a></td><td valign="top"><a href="mathgl_en_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-contfa">contfa</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContFA">ContFA</a></td><td valign="top"><a href="mathgl_en_3.html#ContF3">3.11.4 ContF3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContFX">ContFX</a></td><td valign="top"><a href="mathgl_en_3.html#ContFXYZ">3.14.3 ContFXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-contfx">contfx</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-contfy">contfy</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContFY">ContFY</a></td><td valign="top"><a href="mathgl_en_3.html#ContFXYZ">3.14.3 ContFXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-contfz">contfz</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContFZ">ContFZ</a></td><td valign="top"><a href="mathgl_en_3.html#ContFXYZ">3.14.3 ContFXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContX">ContX</a></td><td valign="top"><a href="mathgl_en_3.html#ContXYZ">3.14.2 ContXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-contx">contx</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-ContX-3">ContX</a></td><td valign="top"><a href="mathgl_en_9.html#Cont-projection-sample">9.3.7 Cont projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContY">ContY</a></td><td valign="top"><a href="mathgl_en_3.html#ContXYZ">3.14.2 ContXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-conty">conty</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-ContY-3">ContY</a></td><td valign="top"><a href="mathgl_en_9.html#Cont-projection-sample">9.3.7 Cont projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-contz">contz</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ContZ">ContZ</a></td><td valign="top"><a href="mathgl_en_3.html#ContXYZ">3.14.2 ContXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-ContZ-3">ContZ</a></td><td valign="top"><a href="mathgl_en_9.html#Cont-projection-sample">9.3.7 Cont projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-copy">copy</a></td><td valign="top"><a href="mathgl_en_8.html#Data-create-_0028MGL_0029">8.16 Data create (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-CopyFont">CopyFont</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-cosfft">cosfft</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-CosFFT">CosFFT</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-crange">crange</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-crange-3">crange</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Crop">Crop</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-crop">crop</a></td><td valign="top"><a href="mathgl_en_8.html#Rearrange-data-_0028MGL_0029">8.18 Rearrange data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-crust">crust</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Crust">Crust</a></td><td valign="top"><a href="mathgl_en_3.html#Crust">3.14.5 Crust</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Crust-3">Crust</a></td><td valign="top"><a href="mathgl_en_9.html#Crust-sample">9.4.19 Crust sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ctick">ctick</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-cumsum">cumsum</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-CumSum">CumSum</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Curve">Curve</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-curve">curve</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-cut">cut</a></td><td valign="top"><a href="mathgl_en_8.html#Cutting-_0028MGL_0029">8.1.6 Cutting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-cut-4">cut</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-CutMax">CutMax</a></td><td valign="top"><a href="mathgl_en_9.html#CutMinMax-sample">9.3.9 CutMinMax sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-CutMax-1">CutMax</a></td><td valign="top"><a href="mathgl_en_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-CutMin">CutMin</a></td><td valign="top"><a href="mathgl_en_9.html#CutMinMax-sample">9.3.9 CutMinMax sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-CutMin-1">CutMin</a></td><td valign="top"><a href="mathgl_en_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-CutOff">CutOff</a></td><td valign="top"><a href="mathgl_en_3.html#Cutting">3.1.6 Cutting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-CutOff-2">CutOff</a></td><td valign="top"><a href="mathgl_en_9.html#CutOff-sample">9.3.11 CutOff sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_en.html/mathgl_en_13.html b/texinfo/mathgl_en.html/mathgl_en_13.html
new file mode 100644
index 0000000..c98e85e
--- /dev/null
+++ b/texinfo/mathgl_en.html/mathgl_en_13.html
@@ -0,0 +1,316 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: Index: D &ndash; F</title>
+
+<meta name="description" content="MathGL 1.11: Index: D &ndash; F">
+<meta name="keywords" content="MathGL 1.11: Index: D &ndash; F">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-0"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_14.html#index_split-1" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Index: D &ndash; F</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_en_12.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-D">D</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-defchr">defchr</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-define">define</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-defnum">defnum</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-defpal">defpal</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Delete">Delete</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-delete">delete</a></td><td valign="top"><a href="mathgl_en_8.html#Rearrange-data-_0028MGL_0029">8.18 Rearrange data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-DeleteColumns">DeleteColumns</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-DeleteRows">DeleteRows</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-DeleteSlices">DeleteSlices</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-dens">dens</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Dens">Dens</a></td><td valign="top"><a href="mathgl_en_3.html#Dens">3.10.7 Dens</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Dens-3">Dens</a></td><td valign="top"><a href="mathgl_en_9.html#Dens-sample">9.2.10 Dens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Dens-4">Dens</a></td><td valign="top"><a href="mathgl_en_9.html#g_t2D-plot-sample">9.5.2 2D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Dens-5">Dens</a></td><td valign="top"><a href="mathgl_en_9.html#g_t3D-plot-sample">9.5.3 3D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Dens-6">Dens</a></td><td valign="top"><a href="mathgl_en_9.html#Adding-mesh-sample">9.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Dens-7">Dens</a></td><td valign="top"><a href="mathgl_en_9.html#Flow-_0026-Dens-sample">9.6.4 Flow &amp; Dens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-dens3">dens3</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Dens3">Dens3</a></td><td valign="top"><a href="mathgl_en_3.html#Dens3">3.11.2 Dens3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Dens3-3">Dens3</a></td><td valign="top"><a href="mathgl_en_9.html#Dens3-sample">9.3.4 Dens3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-DensA">DensA</a></td><td valign="top"><a href="mathgl_en_3.html#Dens3">3.11.2 Dens3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-densa">densa</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-DensX">DensX</a></td><td valign="top"><a href="mathgl_en_3.html#DensXYZ">3.14.1 DensXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-densx">densx</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-DensX-2">DensX</a></td><td valign="top"><a href="mathgl_en_9.html#Dens-projection-sample">9.3.8 Dens projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-densy">densy</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-DensY">DensY</a></td><td valign="top"><a href="mathgl_en_3.html#DensXYZ">3.14.1 DensXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-DensY-2">DensY</a></td><td valign="top"><a href="mathgl_en_9.html#Dens-projection-sample">9.3.8 Dens projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-densz">densz</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-DensZ">DensZ</a></td><td valign="top"><a href="mathgl_en_3.html#DensXYZ">3.14.1 DensXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-DensZ-2">DensZ</a></td><td valign="top"><a href="mathgl_en_9.html#Dens-projection-sample">9.3.8 Dens projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Dew">Dew</a></td><td valign="top"><a href="mathgl_en_3.html#Dew">3.13.5 Dew</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-dew">dew</a></td><td valign="top"><a href="mathgl_en_8.html#Vector-fields-_0028MGL_0029">8.13 Vector fields (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Dew-3">Dew</a></td><td valign="top"><a href="mathgl_en_9.html#Dew-sample">9.4.11 Dew sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-diff">diff</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Diff">Diff</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-diff2">diff2</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Diff2">Diff2</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-divto">divto</a></td><td valign="top"><a href="mathgl_en_8.html#Operators-_0028MGL_0029">8.22 Operators (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-dots">dots</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Dots">Dots</a></td><td valign="top"><a href="mathgl_en_3.html#Dots">3.14.4 Dots</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Dots-4">Dots</a></td><td valign="top"><a href="mathgl_en_9.html#Dots-sample">9.4.20 Dots sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-drop">drop</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Drop">Drop</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Drop-4">Drop</a></td><td valign="top"><a href="mathgl_en_9.html#Drops-sample">9.6.10 Drops sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Drop-5">Drop</a></td><td valign="top"><a href="mathgl_en_9.html#Molecules-drawing-sample">9.6.11 Molecules drawing sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-E">E</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-else">else</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-elseif">elseif</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-EndFrame">EndFrame</a></td><td valign="top"><a href="mathgl_en_3.html#Frames_002fAnimation">3.17 Frames/Animation</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-EndFrame-2">EndFrame</a></td><td valign="top"><a href="mathgl_en_3.html#IDTF-functions">3.18 IDTF functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-endif">endif</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Envelop">Envelop</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-envelop">envelop</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Envelop-2">Envelop</a></td><td valign="top"><a href="mathgl_en_9.html#Envelop-sample">9.7.6 Envelop sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Error">Error</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-error">error</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Error-2">Error</a></td><td valign="top"><a href="mathgl_en_3.html#Error">3.9.15 Error</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Error-6">Error</a></td><td valign="top"><a href="mathgl_en_9.html#Error-sample">9.1.15 Error sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-evaluate">evaluate</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Evaluate">Evaluate</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-export">export</a></td><td valign="top"><a href="mathgl_en_8.html#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Export">Export</a></td><td valign="top"><a href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-extend">extend</a></td><td valign="top"><a href="mathgl_en_8.html#Rearrange-data-_0028MGL_0029">8.18 Rearrange data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Extend">Extend</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-F">F</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Face">Face</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-facex">facex</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-FaceX">FaceX</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-facey">facey</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-FaceY">FaceY</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-FaceZ">FaceZ</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-facez">facez</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Fall">Fall</a></td><td valign="top"><a href="mathgl_en_3.html#Fall">3.10.2 Fall</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fall">fall</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Fall-3">Fall</a></td><td valign="top"><a href="mathgl_en_9.html#Fall-sample">9.2.6 Fall sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fgets">fgets</a></td><td valign="top"><a href="mathgl_en_8.html#Text-printing-_0028MGL_0029">8.6 Text printing (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Fill">Fill</a></td><td valign="top"><a href="mathgl_en_6.html#Fill">6.3 Fill</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fill">fill</a></td><td valign="top"><a href="mathgl_en_8.html#Data-filling-_0028MGL_0029">8.17 Data filling (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fill-1">fill</a></td><td valign="top"><a href="mathgl_en_8.html#Data-filling-_0028MGL_0029">8.17 Data filling (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Find">Find</a></td><td valign="top"><a href="mathgl_en_6.html#Informational-functions">6.9 Informational functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-FindAny">FindAny</a></td><td valign="top"><a href="mathgl_en_6.html#Informational-functions">6.9 Informational functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Finish">Finish</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fit">fit</a></td><td valign="top"><a href="mathgl_en_8.html#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Fit">Fit</a></td><td valign="top"><a href="mathgl_en_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Fit-9">Fit</a></td><td valign="top"><a href="mathgl_en_9.html#Fitting-sample">9.7.5 Fitting sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Fit2">Fit2</a></td><td valign="top"><a href="mathgl_en_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Fit3">Fit3</a></td><td valign="top"><a href="mathgl_en_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-FitPnts">FitPnts</a></td><td valign="top"><a href="mathgl_en_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fits">fits</a></td><td valign="top"><a href="mathgl_en_8.html#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-FitS">FitS</a></td><td valign="top"><a href="mathgl_en_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Flow">Flow</a></td><td valign="top"><a href="mathgl_en_3.html#Flow">3.13.6 Flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-flow">flow</a></td><td valign="top"><a href="mathgl_en_8.html#Vector-fields-_0028MGL_0029">8.13 Vector fields (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Flow-5">Flow</a></td><td valign="top"><a href="mathgl_en_9.html#Flow-sample">9.4.9 Flow sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Flow-6">Flow</a></td><td valign="top"><a href="mathgl_en_9.html#Flow-3D-sample">9.4.17 Flow 3D sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Flow-7">Flow</a></td><td valign="top"><a href="mathgl_en_9.html#Flow-_0026-Dens-sample">9.6.4 Flow &amp; Dens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-FlowP">FlowP</a></td><td valign="top"><a href="mathgl_en_3.html#FlowP">3.13.7 FlowP</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Flush">Flush</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-Fl_005fMathGL">Fl_MathGL</a></td><td valign="top"><a href="mathgl_en_5.html#Widget-classes">5. Widget classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-Fl_005fMathGL-2">Fl_MathGL</a></td><td valign="top"><a href="mathgl_en_5.html#Fl_005fMathGL-class">5.1 Fl_MathGL class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fog">fog</a></td><td valign="top"><a href="mathgl_en_8.html#Fog-_0028MGL_0029">8.1.3 Fog (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Fog">Fog</a></td><td valign="top"><a href="mathgl_en_3.html#Fog">3.1.3 Fog</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Fog-2">Fog</a></td><td valign="top"><a href="mathgl_en_9.html#Surface-in-fog-sample">9.2.3 Surface in fog sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-font">font</a></td><td valign="top"><a href="mathgl_en_8.html#Other-settings-_0028MGL_0029">8.1.7 Other settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_1.html#index-Font-styles">Font styles</a></td><td valign="top"><a href="mathgl_en_1.html#Font-styles">1.4.4 Font styles</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fontsize">fontsize</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-for">for</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fplot">fplot</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-fsurf">fsurf</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-func">func</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_en_12.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_en.html/mathgl_en_14.html b/texinfo/mathgl_en.html/mathgl_en_14.html
new file mode 100644
index 0000000..bb0b4c9
--- /dev/null
+++ b/texinfo/mathgl_en.html/mathgl_en_14.html
@@ -0,0 +1,333 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: Index: G &ndash; M</title>
+
+<meta name="description" content="MathGL 1.11: Index: G &ndash; M">
+<meta name="keywords" content="MathGL 1.11: Index: G &ndash; M">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-1"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_13.html#index_split-0" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_15.html#index_split-2" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Index: G &ndash; M</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_en_12.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-G">G</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-GetFont">GetFont</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-GetNumFrame">GetNumFrame</a></td><td valign="top"><a href="mathgl_en_3.html#Frames_002fAnimation">3.17 Frames/Animation</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-GetNumFrame-2">GetNumFrame</a></td><td valign="top"><a href="mathgl_en_3.html#IDTF-functions">3.18 IDTF functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-GetWarnCode">GetWarnCode</a></td><td valign="top"><a href="mathgl_en_3.html#Error-handling">3.1.9 Error handling</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Glyph">Glyph</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Grad">Grad</a></td><td valign="top"><a href="mathgl_en_3.html#Grad">3.10.12 Grad</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-grad">grad</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Grad-4">Grad</a></td><td valign="top"><a href="mathgl_en_9.html#Grad-sample">9.2.15 Grad sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Grid">Grid</a></td><td valign="top"><a href="mathgl_en_3.html#Axis-and-Colorbar">3.7 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-grid">grid</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Grid-2">Grid</a></td><td valign="top"><a href="mathgl_en_3.html#Grid">3.10.13 Grid</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-grid2">grid2</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-grid3">grid3</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Grid3">Grid3</a></td><td valign="top"><a href="mathgl_en_3.html#Grid3">3.11.5 Grid3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-GridA">GridA</a></td><td valign="top"><a href="mathgl_en_3.html#Grid3">3.11.5 Grid3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-grida">grida</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-H">H</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Hankel">Hankel</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-hankel">hankel</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Hist">Hist</a></td><td valign="top"><a href="mathgl_en_3.html#Data-distributions">3.16 Data distributions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-hist">hist</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Hist-4">Hist</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-I">I</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Identity">Identity</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-idset">idset</a></td><td valign="top"><a href="mathgl_en_8.html#Data-create-_0028MGL_0029">8.16 Data create (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-if">if</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Import">Import</a></td><td valign="top"><a href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-import">import</a></td><td valign="top"><a href="mathgl_en_8.html#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-info">info</a></td><td valign="top"><a href="mathgl_en_8.html#Data-create-_0028MGL_0029">8.16 Data create (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-InPlot">InPlot</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-inplot">inplot</a></td><td valign="top"><a href="mathgl_en_8.html#Transformation-matrix-_0028MGL_0029">8.3 Transformation matrix (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-insert">insert</a></td><td valign="top"><a href="mathgl_en_8.html#Rearrange-data-_0028MGL_0029">8.18 Rearrange data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Insert">Insert</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-InsertColumns">InsertColumns</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-InsertRows">InsertRows</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-InsertSlices">InsertSlices</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Integral">Integral</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-integrate">integrate</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-J">J</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-jacobian">jacobian</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-L">L</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Label-1">Label</a></td><td valign="top"><a href="mathgl_en_3.html#Axis-and-Colorbar">3.7 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Last">Last</a></td><td valign="top"><a href="mathgl_en_6.html#Informational-functions">6.9 Informational functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Legend">Legend</a></td><td valign="top"><a href="mathgl_en_3.html#Legend">3.8 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-legend">legend</a></td><td valign="top"><a href="mathgl_en_8.html#Legend-_0028MGL_0029">8.8 Legend (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Legend-5">Legend</a></td><td valign="top"><a href="mathgl_en_9.html#Legend-sample">9.6.1 Legend sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-legend-3">legend</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-legendbox">legendbox</a></td><td valign="top"><a href="mathgl_en_8.html#Legend-_0028MGL_0029">8.8 Legend (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-legendmarks">legendmarks</a></td><td valign="top"><a href="mathgl_en_8.html#Legend-_0028MGL_0029">8.8 Legend (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-light">light</a></td><td valign="top"><a href="mathgl_en_8.html#Lighting-_0028MGL_0029">8.1.2 Lighting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Light">Light</a></td><td valign="top"><a href="mathgl_en_3.html#Lighting">3.1.2 Lighting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Light-5">Light</a></td><td valign="top"><a href="mathgl_en_9.html#Several-light-sample">9.6.5 Several light sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-line">line</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Line">Line</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Line-3">Line</a></td><td valign="top"><a href="mathgl_en_9.html#Line-styles-sample">9.5.4 Line styles sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Line-4">Line</a></td><td valign="top"><a href="mathgl_en_9.html#Arrow-styles-sample">9.5.5 Arrow styles sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_1.html#index-Line-style">Line style</a></td><td valign="top"><a href="mathgl_en_1.html#Line-styles">1.4.2 Line styles</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Linear">Linear</a></td><td valign="top"><a href="mathgl_en_6.html#Interpolation">6.8 Interpolation</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Linear1">Linear1</a></td><td valign="top"><a href="mathgl_en_6.html#Interpolation">6.8 Interpolation</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-linewidth">linewidth</a></td><td valign="top"><a href="mathgl_en_8.html#Default-sizes-_0028MGL_0029">8.1.4 Default sizes (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-list">list</a></td><td valign="top"><a href="mathgl_en_8.html#Data-create-_0028MGL_0029">8.16 Data create (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-LoadFont">LoadFont</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-M">M</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-map">map</a></td><td valign="top"><a href="mathgl_en_8.html#Dual-plotting-_0028MGL_0029">8.12 Dual plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Map">Map</a></td><td valign="top"><a href="mathgl_en_3.html#Map">3.12.6 Map</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Map-3">Map</a></td><td valign="top"><a href="mathgl_en_9.html#Map-sample">9.4.4 Map sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-mark">mark</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Mark">Mark</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Mark-3">Mark</a></td><td valign="top"><a href="mathgl_en_3.html#Mark">3.9.13 Mark</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Mark-7">Mark</a></td><td valign="top"><a href="mathgl_en_9.html#Mark-sample">9.1.17 Mark sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Mark-8">Mark</a></td><td valign="top"><a href="mathgl_en_9.html#Line-styles-sample">9.5.4 Line styles sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_1.html#index-Mark-style">Mark style</a></td><td valign="top"><a href="mathgl_en_1.html#Line-styles">1.4.2 Line styles</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-marksize">marksize</a></td><td valign="top"><a href="mathgl_en_8.html#Default-sizes-_0028MGL_0029">8.1.4 Default sizes (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-marksize-2">marksize</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_1.html#index-MathGL-overview">MathGL overview</a></td><td valign="top"><a href="mathgl_en_1.html#Overview">1. Overview</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-MathGL-setup">MathGL setup</a></td><td valign="top"><a href="mathgl_en_3.html#Graphics-setup">3.1 Graphics setup</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-max">max</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Max">Max</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Max-1">Max</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Maximal">Maximal</a></td><td valign="top"><a href="mathgl_en_6.html#Informational-functions">6.9 Informational functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-mesh">mesh</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Mesh">Mesh</a></td><td valign="top"><a href="mathgl_en_3.html#Mesh">3.10.1 Mesh</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Mesh-3">Mesh</a></td><td valign="top"><a href="mathgl_en_9.html#Mesh-sample">9.2.5 Mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-meshnum">meshnum</a></td><td valign="top"><a href="mathgl_en_8.html#Other-settings-_0028MGL_0029">8.1.7 Other settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-meshnum-2">meshnum</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Message">Message</a></td><td valign="top"><a href="mathgl_en_3.html#Error-handling">3.1.9 Error handling</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_7.html#index-mglArg">mglArg</a></td><td valign="top"><a href="mathgl_en_7.html#mglArg-class">7.8 mglArg class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_7.html#index-mglColor">mglColor</a></td><td valign="top"><a href="mathgl_en_7.html#mglColor-class">7.4 mglColor class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_7.html#index-mglCommand">mglCommand</a></td><td valign="top"><a href="mathgl_en_7.html#mglCommand-class">7.7 mglCommand class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-mglData">mglData</a></td><td valign="top"><a href="mathgl_en_6.html#Create-and-delete">6.2 Create and delete</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_7.html#index-mglFont">mglFont</a></td><td valign="top"><a href="mathgl_en_7.html#mglFont-class">7.3 mglFont class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_7.html#index-mglFormula">mglFormula</a></td><td valign="top"><a href="mathgl_en_7.html#mglFormula-class">7.2 mglFormula class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-mglGraph">mglGraph</a></td><td valign="top"><a href="mathgl_en_3.html#MathGL-core">3. MathGL core</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_4.html#index-mglGraphAB">mglGraphAB</a></td><td valign="top"><a href="mathgl_en_4.html#Plotter-classes">4. Plotter classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_4.html#index-mglGraphAB-2">mglGraphAB</a></td><td valign="top"><a href="mathgl_en_4.html#mglGraphAB-class">4.1 mglGraphAB class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-mglGraphFLTK">mglGraphFLTK</a></td><td valign="top"><a href="mathgl_en_5.html#Widget-classes">5. Widget classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_4.html#index-mglGraphGL">mglGraphGL</a></td><td valign="top"><a href="mathgl_en_4.html#Plotter-classes">4. Plotter classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-mglGraphGLUT">mglGraphGLUT</a></td><td valign="top"><a href="mathgl_en_5.html#Widget-classes">5. Widget classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_4.html#index-mglGraphIDTF">mglGraphIDTF</a></td><td valign="top"><a href="mathgl_en_4.html#Plotter-classes">4. Plotter classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_4.html#index-mglGraphPS">mglGraphPS</a></td><td valign="top"><a href="mathgl_en_4.html#Plotter-classes">4. Plotter classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-mglGraphQT">mglGraphQT</a></td><td valign="top"><a href="mathgl_en_5.html#Widget-classes">5. Widget classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_4.html#index-mglGraphZB">mglGraphZB</a></td><td valign="top"><a href="mathgl_en_4.html#Plotter-classes">4. Plotter classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_7.html#index-mglParse">mglParse</a></td><td valign="top"><a href="mathgl_en_7.html#mglParse-class">7.1 mglParse class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-mglParse-2">mglParse</a></td><td valign="top"><a href="mathgl_en_9.html#Parser-sample">9.7.11 Parser sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-mglPDE-1">mglPDE</a></td><td valign="top"><a href="mathgl_en_9.html#PDE-sample">9.7.9 PDE sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_7.html#index-mglPoint">mglPoint</a></td><td valign="top"><a href="mathgl_en_7.html#mglPoint-class">7.5 mglPoint class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-mglQO2d-1">mglQO2d</a></td><td valign="top"><a href="mathgl_en_9.html#Beam-tracing-sample">9.7.10 Beam tracing sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-mglRay-1">mglRay</a></td><td valign="top"><a href="mathgl_en_9.html#PDE-sample">9.7.9 PDE sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-mglRay-2">mglRay</a></td><td valign="top"><a href="mathgl_en_9.html#Beam-tracing-sample">9.7.10 Beam tracing sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_7.html#index-mglVar">mglVar</a></td><td valign="top"><a href="mathgl_en_7.html#mglVar-class">7.6 mglVar class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Min">Min</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-min">min</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Min-1">Min</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Minimal">Minimal</a></td><td valign="top"><a href="mathgl_en_6.html#Informational-functions">6.9 Informational functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Mirror">Mirror</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-mirror">mirror</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Modify">Modify</a></td><td valign="top"><a href="mathgl_en_6.html#Fill">6.3 Fill</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-modify">modify</a></td><td valign="top"><a href="mathgl_en_8.html#Data-filling-_0028MGL_0029">8.17 Data filling (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-modify-1">modify</a></td><td valign="top"><a href="mathgl_en_8.html#Data-filling-_0028MGL_0029">8.17 Data filling (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Momentum">Momentum</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-momentum">momentum</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Momentum-2">Momentum</a></td><td valign="top"><a href="mathgl_en_6.html#Informational-functions">6.9 Informational functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-multo">multo</a></td><td valign="top"><a href="mathgl_en_8.html#Operators-_0028MGL_0029">8.22 Operators (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_en_12.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_en.html/mathgl_en_15.html b/texinfo/mathgl_en.html/mathgl_en_15.html
new file mode 100644
index 0000000..338a44e
--- /dev/null
+++ b/texinfo/mathgl_en.html/mathgl_en_15.html
@@ -0,0 +1,420 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: Index: N &ndash; S</title>
+
+<meta name="description" content="MathGL 1.11: Index: N &ndash; S">
+<meta name="keywords" content="MathGL 1.11: Index: N &ndash; S">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-2"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_14.html#index_split-1" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_16.html#index_split-3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Index: N &ndash; S</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_en_12.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-N">N</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-new">new</a></td><td valign="top"><a href="mathgl_en_8.html#Data-create-_0028MGL_0029">8.16 Data create (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-NewFrame">NewFrame</a></td><td valign="top"><a href="mathgl_en_3.html#Frames_002fAnimation">3.17 Frames/Animation</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-NewFrame-2">NewFrame</a></td><td valign="top"><a href="mathgl_en_3.html#IDTF-functions">3.18 IDTF functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-next">next</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-norm">norm</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Norm">Norm</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-NormSl">NormSl</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-normsl">normsl</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-O">O</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-once">once</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Org">Org</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-origin">origin</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-P">P</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-palette">palette</a></td><td valign="top"><a href="mathgl_en_8.html#Other-settings-_0028MGL_0029">8.1.7 Other settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-pde">pde</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-perspective">perspective</a></td><td valign="top"><a href="mathgl_en_8.html#Transformation-matrix-_0028MGL_0029">8.3 Transformation matrix (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Perspective">Perspective</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-pipe">pipe</a></td><td valign="top"><a href="mathgl_en_8.html#Vector-fields-_0028MGL_0029">8.13 Vector fields (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Pipe">Pipe</a></td><td valign="top"><a href="mathgl_en_3.html#Pipe">3.13.8 Pipe</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Pipe-5">Pipe</a></td><td valign="top"><a href="mathgl_en_9.html#Pipe-sample">9.4.10 Pipe sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Pipe-6">Pipe</a></td><td valign="top"><a href="mathgl_en_9.html#Pipe-3D-sample">9.4.18 Pipe 3D sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Plot">Plot</a></td><td valign="top"><a href="mathgl_en_3.html#Plot">3.9.1 Plot</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-plot">plot</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Plot-4">Plot</a></td><td valign="top"><a href="mathgl_en_3.html#Plots-by-formula">3.14.9 Plots by formula</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Plot-7">Plot</a></td><td valign="top"><a href="mathgl_en_9.html#Plot-sample">9.1.1 Plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Plot-8">Plot</a></td><td valign="top"><a href="mathgl_en_9.html#g_t1D-plot-sample">9.5.1 1D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Plot-9">Plot</a></td><td valign="top"><a href="mathgl_en_9.html#Legend-sample">9.6.1 Legend sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Plot-10">Plot</a></td><td valign="top"><a href="mathgl_en_9.html#Semi_002dlog-sample">9.7.3 Semi-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Plot-11">Plot</a></td><td valign="top"><a href="mathgl_en_9.html#Log_002dlog-sample">9.7.4 Log-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-plotfactor">plotfactor</a></td><td valign="top"><a href="mathgl_en_8.html#Zooming-_0028MGL_0029">8.1.5 Zooming (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-PlotId">PlotId</a></td><td valign="top"><a href="mathgl_en_3.html#Other-settings">3.1.10 Other settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Pop">Pop</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-PrintInfo">PrintInfo</a></td><td valign="top"><a href="mathgl_en_6.html#Informational-functions">6.9 Informational functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Push">Push</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-put">put</a></td><td valign="top"><a href="mathgl_en_8.html#Data-filling-_0028MGL_0029">8.17 Data filling (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Puts">Puts</a></td><td valign="top"><a href="mathgl_en_3.html#Text-printing">3.6 Text printing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Puts-5">Puts</a></td><td valign="top"><a href="mathgl_en_9.html#Text-styles-sample">9.5.6 Text styles sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Puts-6">Puts</a></td><td valign="top"><a href="mathgl_en_9.html#TeX-parsing-sample">9.5.7 TeX parsing sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Puts-7">Puts</a></td><td valign="top"><a href="mathgl_en_9.html#Font-faces-sample">9.5.8 Font faces sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-PutsFit">PutsFit</a></td><td valign="top"><a href="mathgl_en_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-putsfit">putsfit</a></td><td valign="top"><a href="mathgl_en_8.html#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-PutsFit-2">PutsFit</a></td><td valign="top"><a href="mathgl_en_9.html#Fitting-sample">9.7.5 Fitting sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Putsw">Putsw</a></td><td valign="top"><a href="mathgl_en_3.html#Text-printing">3.6 Text printing</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-Q">Q</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-QMathGL">QMathGL</a></td><td valign="top"><a href="mathgl_en_5.html#Widget-classes">5. Widget classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-QMathGL-2">QMathGL</a></td><td valign="top"><a href="mathgl_en_5.html#QMathGL-class">5.2 QMathGL class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-qo2d">qo2d</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-quadplot">quadplot</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-QuadPlot">QuadPlot</a></td><td valign="top"><a href="mathgl_en_3.html#QuadPlot">3.14.8 QuadPlot</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-R">R</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Radar">Radar</a></td><td valign="top"><a href="mathgl_en_3.html#Radar">3.9.2 Radar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-radar">radar</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Radar-2">Radar</a></td><td valign="top"><a href="mathgl_en_9.html#Radar-sample">9.1.2 Radar sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ranges">ranges</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ray">ray</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-read">read</a></td><td valign="top"><a href="mathgl_en_8.html#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Read">Read</a></td><td valign="top"><a href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-ReadAll">ReadAll</a></td><td valign="top"><a href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-readall">readall</a></td><td valign="top"><a href="mathgl_en_8.html#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-readhdf">readhdf</a></td><td valign="top"><a href="mathgl_en_8.html#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-ReadHDF">ReadHDF</a></td><td valign="top"><a href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-ReadMat">ReadMat</a></td><td valign="top"><a href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-readmat">readmat</a></td><td valign="top"><a href="mathgl_en_8.html#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-ReadRange">ReadRange</a></td><td valign="top"><a href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Rearrange">Rearrange</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-rearrange">rearrange</a></td><td valign="top"><a href="mathgl_en_8.html#Rearrange-data-_0028MGL_0029">8.18 Rearrange data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-RecalcBorder">RecalcBorder</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-rect">rect</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Region">Region</a></td><td valign="top"><a href="mathgl_en_3.html#Region">3.9.5 Region</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-region">region</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Region-3">Region</a></td><td valign="top"><a href="mathgl_en_9.html#Region-sample">9.1.13 Region sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Region-4">Region</a></td><td valign="top"><a href="mathgl_en_9.html#Region-gradient-sample">9.1.14 Region gradient sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Resize">Resize</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-resize">resize</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-RestoreFont">RestoreFont</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-RestoreM">RestoreM</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-return">return</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Roll">Roll</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-roll">roll</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-rotate">rotate</a></td><td valign="top"><a href="mathgl_en_8.html#Transformation-matrix-_0028MGL_0029">8.3 Transformation matrix (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Rotate">Rotate</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-RotateN">RotateN</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-rotatetext">rotatetext</a></td><td valign="top"><a href="mathgl_en_8.html#Other-settings-_0028MGL_0029">8.1.7 Other settings (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-S">S</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-save">save</a></td><td valign="top"><a href="mathgl_en_8.html#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Save">Save</a></td><td valign="top"><a href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-SaveHDF">SaveHDF</a></td><td valign="top"><a href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-savehdf">savehdf</a></td><td valign="top"><a href="mathgl_en_8.html#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SelectPen">SelectPen</a></td><td valign="top"><a href="mathgl_en_3.html#Palette-and-colors">3.1.8 Pallete and colors</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Set">Set</a></td><td valign="top"><a href="mathgl_en_6.html#Create-and-delete">6.2 Create and delete</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetAlphaDef">SetAlphaDef</a></td><td valign="top"><a href="mathgl_en_3.html#Transparency">3.1.1 Transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetArrowSize">SetArrowSize</a></td><td valign="top"><a href="mathgl_en_3.html#Default-sizes">3.1.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetAutoRanges">SetAutoRanges</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetAxialDir">SetAxialDir</a></td><td valign="top"><a href="mathgl_en_3.html#Other-settings">3.1.10 Other settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetBarWidth">SetBarWidth</a></td><td valign="top"><a href="mathgl_en_3.html#Default-sizes">3.1.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetBaseLineWidth">SetBaseLineWidth</a></td><td valign="top"><a href="mathgl_en_3.html#Default-sizes">3.1.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-SetColumnId">SetColumnId</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetCoor">SetCoor</a></td><td valign="top"><a href="mathgl_en_3.html#Curved-coordinates">3.2.2 Curved coordinates</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetCTT">SetCTT</a></td><td valign="top"><a href="mathgl_en_3.html#Ticks">3.2.3 Ticks</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetCut">SetCut</a></td><td valign="top"><a href="mathgl_en_3.html#Cutting">3.1.6 Cutting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetCutBox">SetCutBox</a></td><td valign="top"><a href="mathgl_en_3.html#Cutting">3.1.6 Cutting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetDrawFace">SetDrawFace</a></td><td valign="top"><a href="mathgl_en_3.html#Other-settings">3.1.10 Other settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetFont">SetFont</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetFontDef">SetFontDef</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetFontSize">SetFontSize</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetFontSizeCM">SetFontSizeCM</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetFontSizeIN">SetFontSizeIN</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetFontSizePT">SetFontSizePT</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetFunc">SetFunc</a></td><td valign="top"><a href="mathgl_en_3.html#Curved-coordinates">3.2.2 Curved coordinates</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetLegendBox">SetLegendBox</a></td><td valign="top"><a href="mathgl_en_3.html#Legend">3.8 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetLegendMarks">SetLegendMarks</a></td><td valign="top"><a href="mathgl_en_3.html#Legend">3.8 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetMarkSize">SetMarkSize</a></td><td valign="top"><a href="mathgl_en_3.html#Default-sizes">3.1.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetMeshNum">SetMeshNum</a></td><td valign="top"><a href="mathgl_en_3.html#Other-settings">3.1.10 Other settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetPalColor">SetPalColor</a></td><td valign="top"><a href="mathgl_en_3.html#Palette-and-colors">3.1.8 Pallete and colors</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetPalette">SetPalette</a></td><td valign="top"><a href="mathgl_en_3.html#Palette-and-colors">3.1.8 Pallete and colors</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetPalNum">SetPalNum</a></td><td valign="top"><a href="mathgl_en_3.html#Palette-and-colors">3.1.8 Pallete and colors</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetPlotFactor">SetPlotFactor</a></td><td valign="top"><a href="mathgl_en_3.html#Zooming">3.1.5 Zooming</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetRanges">SetRanges</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetRotatedText">SetRotatedText</a></td><td valign="top"><a href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetScheme">SetScheme</a></td><td valign="top"><a href="mathgl_en_3.html#Palette-and-colors">3.1.8 Pallete and colors</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-setsize">setsize</a></td><td valign="top"><a href="mathgl_en_8.html#Export-to-file-_0028MGL_0029">8.4 Export to file (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetSize">SetSize</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetTickLen">SetTickLen</a></td><td valign="top"><a href="mathgl_en_3.html#Default-sizes">3.1.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetTicks">SetTicks</a></td><td valign="top"><a href="mathgl_en_3.html#Ticks">3.2.3 Ticks</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-SetTicks-2">SetTicks</a></td><td valign="top"><a href="mathgl_en_9.html#Semi_002dlog-sample">9.7.3 Semi-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-SetTicks-3">SetTicks</a></td><td valign="top"><a href="mathgl_en_9.html#Log_002dlog-sample">9.7.4 Log-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetTickStl">SetTickStl</a></td><td valign="top"><a href="mathgl_en_3.html#Default-sizes">3.1.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetTicksVal">SetTicksVal</a></td><td valign="top"><a href="mathgl_en_3.html#Ticks">3.2.3 Ticks</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-SetTicksVal-4">SetTicksVal</a></td><td valign="top"><a href="mathgl_en_9.html#Manual-ticks-sample">9.7.12 Tick values sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetTransparent">SetTransparent</a></td><td valign="top"><a href="mathgl_en_3.html#Transparency">3.1.1 Transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetTranspType">SetTranspType</a></td><td valign="top"><a href="mathgl_en_3.html#Transparency">3.1.1 Transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetTuneTicks">SetTuneTicks</a></td><td valign="top"><a href="mathgl_en_3.html#Ticks">3.2.3 Ticks</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetWarn">SetWarn</a></td><td valign="top"><a href="mathgl_en_3.html#Error-handling">3.1.9 Error handling</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetXTT">SetXTT</a></td><td valign="top"><a href="mathgl_en_3.html#Ticks">3.2.3 Ticks</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetYTT">SetYTT</a></td><td valign="top"><a href="mathgl_en_3.html#Ticks">3.2.3 Ticks</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SetZTT">SetZTT</a></td><td valign="top"><a href="mathgl_en_3.html#Ticks">3.2.3 Ticks</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Sew">Sew</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-sew">sew</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Sew-2">Sew</a></td><td valign="top"><a href="mathgl_en_9.html#Sew-sample">9.7.7 Sew sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ShowImage">ShowImage</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SimplePlot">SimplePlot</a></td><td valign="top"><a href="mathgl_en_3.html#SimplePlot">3.14.10 SimplePlot</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-sinfft">sinfft</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-SinFFT">SinFFT</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-smooth">smooth</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Smooth">Smooth</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Sphere">Sphere</a></td><td valign="top"><a href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-sphere">sphere</a></td><td valign="top"><a href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Sphere-3">Sphere</a></td><td valign="top"><a href="mathgl_en_9.html#Molecules-drawing-sample">9.6.11 Molecules drawing sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Spline">Spline</a></td><td valign="top"><a href="mathgl_en_6.html#Interpolation">6.8 Interpolation</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Spline1">Spline1</a></td><td valign="top"><a href="mathgl_en_6.html#Interpolation">6.8 Interpolation</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Spline5">Spline5</a></td><td valign="top"><a href="mathgl_en_6.html#Interpolation">6.8 Interpolation</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Squeeze">Squeeze</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-squeeze">squeeze</a></td><td valign="top"><a href="mathgl_en_8.html#Rearrange-data-_0028MGL_0029">8.18 Rearrange data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-stem">stem</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Stem">Stem</a></td><td valign="top"><a href="mathgl_en_3.html#Stem">3.9.6 Stem</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Stem-4">Stem</a></td><td valign="top"><a href="mathgl_en_9.html#Stem-sample">9.1.12 Stem sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-step">step</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Step">Step</a></td><td valign="top"><a href="mathgl_en_3.html#Step">3.9.10 Step</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Step-4">Step</a></td><td valign="top"><a href="mathgl_en_9.html#Step-sample">9.1.11 Step sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-stfa">stfa</a></td><td valign="top"><a href="mathgl_en_8.html#Dual-plotting-_0028MGL_0029">8.12 Dual plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-STFA">STFA</a></td><td valign="top"><a href="mathgl_en_3.html#STFA">3.12.7 STFA</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-STFA-3">STFA</a></td><td valign="top"><a href="mathgl_en_9.html#STFA-sample">9.7.8 STFA sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-stfad">stfad</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-StickPlot">StickPlot</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-stickplot">stickplot</a></td><td valign="top"><a href="mathgl_en_8.html#Transformation-matrix-_0028MGL_0029">8.3 Transformation matrix (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-StickPlot-2">StickPlot</a></td><td valign="top"><a href="mathgl_en_9.html#StickPlot-sample">9.7.14 StickPlot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-stop">stop</a></td><td valign="top"><a href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-subdata">subdata</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-SubData">SubData</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SubPlot">SubPlot</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-subplot">subplot</a></td><td valign="top"><a href="mathgl_en_8.html#Transformation-matrix-_0028MGL_0029">8.3 Transformation matrix (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-SubPlot-3">SubPlot</a></td><td valign="top"><a href="mathgl_en_9.html#g_t1D-plot-sample">9.5.1 1D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-SubPlot-4">SubPlot</a></td><td valign="top"><a href="mathgl_en_9.html#Adding-mesh-sample">9.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-subto">subto</a></td><td valign="top"><a href="mathgl_en_8.html#Operators-_0028MGL_0029">8.22 Operators (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-sum">sum</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Sum">Sum</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Surf">Surf</a></td><td valign="top"><a href="mathgl_en_3.html#Surf">3.10.4 Surf</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-surf">surf</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Surf-3">Surf</a></td><td valign="top"><a href="mathgl_en_3.html#Plots-by-formula">3.14.9 Plots by formula</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-6">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#Surf-sample">9.2.1 Surf sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-7">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#Transparent-surface-sample">9.2.2 Transparent surface sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-8">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#Surface-in-fog-sample">9.2.3 Surface in fog sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-9">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#Sharp-colors-sample">9.2.4 Sharp colors sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-10">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#g_t2D-plot-sample">9.5.2 2D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-11">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#g_t3D-plot-sample">9.5.3 3D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-12">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#Adding-mesh-sample">9.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-13">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#Surf-_0026-Cont-sample">9.6.3 Surf &amp; Cont sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-14">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#Several-light-sample">9.6.5 Several light sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf-15">Surf</a></td><td valign="top"><a href="mathgl_en_9.html#Mirrored-surface-sample">9.6.6 Mirrored surface sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-surf3">surf3</a></td><td valign="top"><a href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Surf3">Surf3</a></td><td valign="top"><a href="mathgl_en_3.html#Surf3">3.11.1 Surf3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf3-5">Surf3</a></td><td valign="top"><a href="mathgl_en_9.html#Surf3-sample">9.3.1 Surf3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf3-6">Surf3</a></td><td valign="top"><a href="mathgl_en_9.html#CutMinMax-sample">9.3.9 CutMinMax sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf3-7">Surf3</a></td><td valign="top"><a href="mathgl_en_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf3-8">Surf3</a></td><td valign="top"><a href="mathgl_en_9.html#CutOff-sample">9.3.11 CutOff sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf3-9">Surf3</a></td><td valign="top"><a href="mathgl_en_9.html#Coloring-by-coordinates-sample">9.6.9 Coloring by coordinates sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Surf3A">Surf3A</a></td><td valign="top"><a href="mathgl_en_3.html#Surf3A">3.12.4 Surf3A</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-surf3a">surf3a</a></td><td valign="top"><a href="mathgl_en_8.html#Dual-plotting-_0028MGL_0029">8.12 Dual plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf3A-5">Surf3A</a></td><td valign="top"><a href="mathgl_en_9.html#Surf3A-sample">9.4.13 Surf3A sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Surf3C">Surf3C</a></td><td valign="top"><a href="mathgl_en_3.html#Surf3C">3.12.2 Surf3C</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-surf3c">surf3c</a></td><td valign="top"><a href="mathgl_en_8.html#Dual-plotting-_0028MGL_0029">8.12 Dual plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Surf3C-5">Surf3C</a></td><td valign="top"><a href="mathgl_en_9.html#Surf3C-sample">9.4.12 Surf3C sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-surfa">surfa</a></td><td valign="top"><a href="mathgl_en_8.html#Dual-plotting-_0028MGL_0029">8.12 Dual plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SurfA">SurfA</a></td><td valign="top"><a href="mathgl_en_3.html#SurfA">3.12.3 SurfA</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-SurfA-3">SurfA</a></td><td valign="top"><a href="mathgl_en_9.html#SurfA-sample">9.4.2 SurfA sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-surfc">surfc</a></td><td valign="top"><a href="mathgl_en_8.html#Dual-plotting-_0028MGL_0029">8.12 Dual plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-SurfC">SurfC</a></td><td valign="top"><a href="mathgl_en_3.html#SurfC">3.12.1 SurfC</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-SurfC-3">SurfC</a></td><td valign="top"><a href="mathgl_en_9.html#SurfC-sample">9.4.1 SurfC sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-swap">swap</a></td><td valign="top"><a href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Swap">Swap</a></td><td valign="top"><a href="mathgl_en_6.html#Change-data">6.7 Change data</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_en_12.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_en_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_en.html/mathgl_en_16.html b/texinfo/mathgl_en.html/mathgl_en_16.html
new file mode 100644
index 0000000..0cb8c91
--- /dev/null
+++ b/texinfo/mathgl_en.html/mathgl_en_16.html
@@ -0,0 +1,312 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: Index: T &ndash; Z</title>
+
+<meta name="description" content="MathGL 1.11: Index: T &ndash; Z">
+<meta name="keywords" content="MathGL 1.11: Index: T &ndash; Z">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_15.html#index_split-2" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[ &gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Index: T &ndash; Z</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_en_12.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-T">T</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Tens">Tens</a></td><td valign="top"><a href="mathgl_en_3.html#Tens">3.9.3 Tens</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-tens">tens</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Tens-4">Tens</a></td><td valign="top"><a href="mathgl_en_9.html#Tens-sample">9.1.3 Tens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Ternary">Ternary</a></td><td valign="top"><a href="mathgl_en_3.html#Curved-coordinates">3.2.2 Curved coordinates</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ternary">ternary</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Ternary-2">Ternary</a></td><td valign="top"><a href="mathgl_en_9.html#Ternary-plot-sample">9.6.8 Ternary plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Text">Text</a></td><td valign="top"><a href="mathgl_en_3.html#Text-printing">3.6 Text printing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-text">text</a></td><td valign="top"><a href="mathgl_en_8.html#Text-printing-_0028MGL_0029">8.6 Text printing (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Text-9">Text</a></td><td valign="top"><a href="mathgl_en_9.html#Text-sample">9.1.20 Text sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-textmark">textmark</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-TextMark">TextMark</a></td><td valign="top"><a href="mathgl_en_3.html#TextMark">3.9.14 TextMark</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-TextMark-9">TextMark</a></td><td valign="top"><a href="mathgl_en_9.html#TextMark-sample">9.1.18 TextMark sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_1.html#index-Textual-formulas">Textual formulas</a></td><td valign="top"><a href="mathgl_en_1.html#Textual-formulas">1.4.5 Textual formulas</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ticklen">ticklen</a></td><td valign="top"><a href="mathgl_en_8.html#Default-sizes-_0028MGL_0029">8.1.4 Default sizes (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-tickstl">tickstl</a></td><td valign="top"><a href="mathgl_en_8.html#Default-sizes-_0028MGL_0029">8.1.4 Default sizes (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-tile">tile</a></td><td valign="top"><a href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Tile">Tile</a></td><td valign="top"><a href="mathgl_en_3.html#Tile">3.10.6 Tile</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Tile-3">Tile</a></td><td valign="top"><a href="mathgl_en_9.html#Tile-sample">9.2.8 Tile sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-tiles">tiles</a></td><td valign="top"><a href="mathgl_en_8.html#Dual-plotting-_0028MGL_0029">8.12 Dual plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-TileS">TileS</a></td><td valign="top"><a href="mathgl_en_3.html#TileS">3.12.5 TileS</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-TileS-3">TileS</a></td><td valign="top"><a href="mathgl_en_9.html#TileS-sample">9.4.3 TileS sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-title">title</a></td><td valign="top"><a href="mathgl_en_8.html#Text-printing-_0028MGL_0029">8.6 Text printing (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Title">Title</a></td><td valign="top"><a href="mathgl_en_3.html#Text-printing">3.6 Text printing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-tlabel">tlabel</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-torus">torus</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Torus">Torus</a></td><td valign="top"><a href="mathgl_en_3.html#Torus">3.9.11 Torus</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Torus-3">Torus</a></td><td valign="top"><a href="mathgl_en_9.html#Torus-sample">9.1.21 Torus sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-trace">trace</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Trace">Trace</a></td><td valign="top"><a href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Traj">Traj</a></td><td valign="top"><a href="mathgl_en_3.html#Traj">3.13.1 Traj</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-traj">traj</a></td><td valign="top"><a href="mathgl_en_8.html#Vector-fields-_0028MGL_0029">8.13 Vector fields (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Traj-3">Traj</a></td><td valign="top"><a href="mathgl_en_9.html#Traj-sample">9.4.5 Traj sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-transform">transform</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-transforma">transforma</a></td><td valign="top"><a href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-transparent">transparent</a></td><td valign="top"><a href="mathgl_en_8.html#Transparency-_0028MGL_0029">8.1.1 Transparency (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-transpose">transpose</a></td><td valign="top"><a href="mathgl_en_8.html#Rearrange-data-_0028MGL_0029">8.18 Rearrange data (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-Transpose">Transpose</a></td><td valign="top"><a href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-TranspType">TranspType</a></td><td valign="top"><a href="mathgl_en_9.html#Normal-transparency">9.5.11 Normal transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-transptype">transptype</a></td><td valign="top"><a href="mathgl_en_8.html#Transparency-_0028MGL_0029">8.1.1 Transparency (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-TranspType-1">TranspType</a></td><td valign="top"><a href="mathgl_en_9.html#Glass_002dlike-transparency">9.5.12 Glass-like transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-TranspType-2">TranspType</a></td><td valign="top"><a href="mathgl_en_9.html#Lamp_002dlike-transparency">9.5.13 Lamp-like transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-TriCont">TriCont</a></td><td valign="top"><a href="mathgl_en_3.html#TriCont">3.14.7 TriCont</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-tricont">tricont</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-triplot">triplot</a></td><td valign="top"><a href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-TriPlot">TriPlot</a></td><td valign="top"><a href="mathgl_en_3.html#TriPlot">3.14.6 TriPlot</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Tube">Tube</a></td><td valign="top"><a href="mathgl_en_3.html#Tube">3.9.12 Tube</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-tube">tube</a></td><td valign="top"><a href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Tube-7">Tube</a></td><td valign="top"><a href="mathgl_en_9.html#Tube-sample">9.1.19 Tube sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-V">V</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_6.html#index-v">v</a></td><td valign="top"><a href="mathgl_en_6.html#Interpolation">6.8 Interpolation</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-var">var</a></td><td valign="top"><a href="mathgl_en_8.html#Data-create-_0028MGL_0029">8.16 Data create (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-vect">vect</a></td><td valign="top"><a href="mathgl_en_8.html#Vector-fields-_0028MGL_0029">8.13 Vector fields (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Vect">Vect</a></td><td valign="top"><a href="mathgl_en_3.html#Vect">3.13.2 Vect</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Vect-5">Vect</a></td><td valign="top"><a href="mathgl_en_9.html#Vect-sample">9.4.6 Vect sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-Vect-6">Vect</a></td><td valign="top"><a href="mathgl_en_9.html#Vect-3D-sample">9.4.14 Vect 3D sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-VectC">VectC</a></td><td valign="top"><a href="mathgl_en_3.html#VectC">3.13.4 VectC</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-vectc">vectc</a></td><td valign="top"><a href="mathgl_en_8.html#Vector-fields-_0028MGL_0029">8.13 Vector fields (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-VectC-5">VectC</a></td><td valign="top"><a href="mathgl_en_9.html#VectC-sample">9.4.8 VectC sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-VectC-6">VectC</a></td><td valign="top"><a href="mathgl_en_9.html#VectC-3D-sample">9.4.16 VectC 3D sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-vectl">vectl</a></td><td valign="top"><a href="mathgl_en_8.html#Vector-fields-_0028MGL_0029">8.13 Vector fields (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-VectL">VectL</a></td><td valign="top"><a href="mathgl_en_3.html#VectL">3.13.3 VectL</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-VectL-5">VectL</a></td><td valign="top"><a href="mathgl_en_9.html#VectL-sample">9.4.7 VectL sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_9.html#index-VectL-6">VectL</a></td><td valign="top"><a href="mathgl_en_9.html#VectL-3D-sample">9.4.15 VectL 3D sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-View">View</a></td><td valign="top"><a href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-W">W</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_2.html#index-widgets">widgets</a></td><td valign="top"><a href="mathgl_en_2.html#Using-FLTK_002fGLUT-window">2.1.1 Using FLTK/Qt/GLUT window</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-widgets-1">widgets</a></td><td valign="top"><a href="mathgl_en_5.html#Widget-classes">5. Widget classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-widgets-2">widgets</a></td><td valign="top"><a href="mathgl_en_5.html#Fl_005fMathGL-class">5.1 Fl_MathGL class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-widgets-3">widgets</a></td><td valign="top"><a href="mathgl_en_5.html#QMathGL-class">5.2 QMathGL class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_2.html#index-window">window</a></td><td valign="top"><a href="mathgl_en_2.html#Using-FLTK_002fGLUT-window">2.1.1 Using FLTK/Qt/GLUT window</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_4.html#index-window-1">window</a></td><td valign="top"><a href="mathgl_en_4.html#mglGraphAB-class">4.1 mglGraphAB class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_5.html#index-window-2">window</a></td><td valign="top"><a href="mathgl_en_5.html#Widget-classes">5. Widget classes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-write">write</a></td><td valign="top"><a href="mathgl_en_8.html#Export-to-file-_0028MGL_0029">8.4 Export to file (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-WriteBMP">WriteBMP</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-WriteEPS">WriteEPS</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-WriteFrame">WriteFrame</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-WriteGIF">WriteGIF</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-WriteIDTF">WriteIDTF</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-WriteJPEG">WriteJPEG</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-WritePNG">WritePNG</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-WriteSVG">WriteSVG</a></td><td valign="top"><a href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-X">X</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-xlabel">xlabel</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-XRange">XRange</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-xrange">xrange</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-xrange-3">xrange</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-xtick">xtick</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-Y">Y</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ylabel">ylabel</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-YRange">YRange</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-yrange">yrange</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-yrange-3">yrange</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ytick">ytick</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-Z">Z</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-zlabel">zlabel</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-Zoom">Zoom</a></td><td valign="top"><a href="mathgl_en_3.html#Zooming">3.1.5 Zooming</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-zoom">zoom</a></td><td valign="top"><a href="mathgl_en_8.html#Zooming-_0028MGL_0029">8.1.5 Zooming (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_3.html#index-ZRange">ZRange</a></td><td valign="top"><a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-zrange">zrange</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-zrange-3">zrange</a></td><td valign="top"><a href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_en_8.html#index-ztick">ztick</a></td><td valign="top"><a href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_en_12.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_en_12.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_en_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_en_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_en_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_en.html/mathgl_en_2.html b/texinfo/mathgl_en.html/mathgl_en_2.html
new file mode 100644
index 0000000..9a182dd
--- /dev/null
+++ b/texinfo/mathgl_en.html/mathgl_en_2.html
@@ -0,0 +1,2011 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: 2. MathGL examples</title>
+
+<meta name="description" content="MathGL 1.11: 2. MathGL examples">
+<meta name="keywords" content="MathGL 1.11: 2. MathGL examples">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Examples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_1.html#Thanks" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_1.html#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL-examples"></a>
+<h1 class="chapter">2. MathGL examples</h1>
+
+<p>This chapter contain information about basic and advanced MathGL, hints and samples for all types of graphics. I recommend you read first 2 sections one after another and at least look on &ldquo;Hints&rdquo; section. Also I recommend you to look at <a href="mathgl_en_1.html#General-concepts">General concepts</a> and <a href="mathgl_en_1.html#FAQ">FAQ</a>. Sample code for some of these examples can be found in <a href="http://mathgl.sf.net/pictures.html">http://mathgl.sf.net/pictures.html</a> and in <a href="mathgl_en_9.html#Samples">Samples</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Basic-usage">2.1 Basic usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Advanced-usage">2.2 Advanced usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-handling">2.3 Data handling</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-plotting">2.4 Data plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#C_002fFortran-interface">2.5 C/Fortran interface</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#MathGL-and-PyQt">2.6 MathGL and PyQt</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Hints">2.7 Hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Basic-usage"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Examples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Using-FLTK_002fGLUT-window" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Basic-usage-1"></a>
+<h2 class="section">2.1 Basic usage</h2>
+
+<p>MathGL library can be used by several manners. Each has positive and negative sides:
+</p><ul>
+<li>
+<em>The using of MathGL library features for creating graphical window (requires FLTK or GLUT libraries).</em>
+
+<p>Positive side is the possibility to view the plot at once and to modify it (rotate, zoom or switch on transparency or lighting) by hand or by mouse. Negative sides are: the need  of X-terminal and limitation consisting in working with the only one set of data at a time.
+</p></li><li>
+<em>Direct writing to file in bitmap or vector format without creation of graphical window.</em>
+
+<p>Positive aspects are: batch processing of similar data set (for example, a set of resulting data files for different calculation parameters), running from the console program (including the cluster calculation), fast and automated drawing, saving pictures for further analysis (or demonstration). Negative sides are: the usage of the external program for picture viewing. Also, the data plotting is non-visual. So, you have to imagine the picture (view angles, lighting and so on) before the plotting. I recommend to use graphical window for determining the optimal parameters of plotting on the base of some typical data set. And later use these parameters for batch processing in console program.
+</p></li><li>
+<em>Drawing in memory with the following displaying by other graphical program.</em>
+
+<p>In this case the programmer has more freedom in selecting the window libraries (not only FLTK or GLUT), in positioning and surroundings control and so on. I recommend to use such way for &ldquo;settled&rdquo; programs.
+</p></li></ul>
+
+<p>Let me consider the aforesaid in more detail.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Using-FLTK_002fGLUT-window">2.1.1 Using FLTK/Qt/GLUT window</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Drawing-to-file">2.1.2 Drawing to file</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Drawing-in-memory">2.1.3 Drawing in memory</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Using-QMathGL">2.1.4 Using QMathGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+
+
+<hr size="6">
+<a name="Using-FLTK_002fGLUT-window"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Basic-usage" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Drawing-to-file" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Using-FLTK_002fQt_002fGLUT-window"></a>
+<h3 class="subsection">2.1.1 Using FLTK/Qt/GLUT window</h3>
+<a name="index-window"></a>
+<a name="index-widgets"></a>
+
+<p>The &ldquo;interactive&rdquo; way of drawing in MathGL consists in window creation  with help of class <code>mglGraphFLTK</code>, <code>mglGraphQT</code> or <code>mglGraphGLUT</code> (see section <a href="mathgl_en_5.html#Widget-classes">Widget classes</a>) and the following drawing in this window. There is a corresponding code:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Box();
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mglGraphFLTK gr;
+        gr.Window(argc,argv,sample,&quot;MathGL examples&quot;);
+        return mglFlRun();
+    }
+</pre><p>Here function <code>sample</code> is defined. This function does all drawing. Other function <code>main</code> is entry point function for console program. Arguments of <code>main</code> should be transfered to <code>Window()</code> since it may contain OS specific information (see section <a href="mathgl_en_4.html#mglGraphAB-class">mglGraphAB class</a>).
+</p>
+<p>Alternatively you can create yours own class inherited from class <code>mglDraw</code> and re-implement the function <code>Draw()</code> in it:
+</p><pre class="verbatim">    class Foo : public mglDraw
+    {
+    public:
+        int Draw(mglGraph *gr);
+    } foo;
+    //-----------------------------------------------------
+    int Foo::Draw(mglGraph *gr)
+    {
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Box();
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mglGraphFLTK gr;
+        gr.Window(argc,argv,foo,&quot;MathGL examples&quot;);
+        return mglFlRun();
+    }
+</pre>
+<p>The similar code can be written for <code>mglGraphQT</code> or for <code>mglGraphGLUT</code> window (function <code>sample()</code> is the same):
+</p><pre class="verbatim">    int main(int argc,char **argv)
+    {
+        mglGraphGLUT gr;
+        gr.Window(argc,argv,sample,&quot;MathGL examples&quot;);
+        return 0;
+    }
+</pre>
+<p>The rotation, shift, zooming, switching on/off transparency and lighting can be done with help of tool-buttons (for <code>mglGraphFLTK</code> and <code>mglGraphQT</code>) or by hot-keys: &lsquo;<samp>a</samp>&rsquo;, &lsquo;<samp>d</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;, &lsquo;<samp>s</samp>&rsquo; for plot rotation, &lsquo;<samp>r</samp>&rsquo; and &lsquo;<samp>f</samp>&rsquo; switching on/off transparency and lighting. Press &lsquo;<samp>x</samp>&rsquo; for exit (or closing the window).
+</p>
+<p>In this example function <code>sample</code> rotates axes (<code>Rotate()</code>, see section <a href="mathgl_en_3.html#Transformation-matrix">Transformation matrix</a>) and draws the bounding box (<code>Box()</code>). Drawing procedure is separated in a function since it will be used on demand when window canvas needs to be redrawn. Widget classes (<code>mglGraphFLTK</code>, <code>mglGraphGLUT</code> and so on) support a delayed drawing, when all plotting functions are called once at the beginning of writing to memory lists. Further program displays the saved lists faster. Resulting redrawing will be faster but it requires sufficient memory. Several lists (frames) can be displayed one after another (by pressing &lsquo;<samp>,</samp>&rsquo;, &lsquo;<samp>.</samp>&rsquo;) or run as cinema. To switch these feature on one needs to modify function <code>sample</code>:
+</p><pre class="verbatim">    int sample1(mglGraph *gr, void *)
+    {
+        gr-&gt;NewFrame();             // the first frame
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Box();
+        gr-&gt;EndFrame();             // end of the first frame
+        gr-&gt;NewFrame();             // the second frame
+        gr-&gt;Box();
+        gr-&gt;Axis(&quot;xy&quot;);
+        gr-&gt;EndFrame();             // end of the second frame
+        return GetNumFrame();       // returns the frame number
+    }
+</pre><p>First, the function creates a frame <code>NewFrame()</code> for rotated axes and draws the bounding box. After the frame drawing the function <code>EndFrame()</code> <strong>must be</strong> called! The second frame contains the bounding box and axes <code>Axis(&quot;xy&quot;)</code> in the initial (unrotated) coordinates. Function <code>sample</code> returns the number of created frames <code>GetNumFrame()</code>.
+</p>
+<hr size="6">
+<a name="Drawing-to-file"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Using-FLTK_002fGLUT-window" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Drawing-in-memory" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Drawing-to-file-1"></a>
+<h3 class="subsection">2.1.2 Drawing to file</h3>
+
+<p>Another way of using MathGL library is the direct picture writing to file. It is most usable for plot creating during calculation or for using of small programs (like Matlab or Scilab scripts) for visualizing repetitive sets of data. But the speed of drawing is much higher in comparison with a script language. There are two classes for exporting in file: class <code>mglGraphZB</code> saves in bitmap format (like PNG), <code>mglGraphPS</code> saves in vector PostScript format (see section <a href="mathgl_en_4.html#Plotter-classes">Plotter classes</a>).
+</p>
+<p>The following code produces a bitmap PNG picture:
+</p><pre class="verbatim">    int main(int ,char **)
+    {
+        mglGraphZB gr;
+        gr.Alpha(true);
+        gr.Light(true);             gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);           // The same drawing function.
+        gr.WritePNG(&quot;test.png&quot;);    // Don't forget to save the result!
+        return 0;
+    }
+</pre><p>The only difference from the previous (using windows) variant is manual switching the transparency  <code>Alpha</code> and lightning <code>Light</code> on, if the plot requires it. The using of frames is not advisable since the whole image is prepared each time. If function <code>sample</code> contains frames then each frame will be saved to a separate file. In principle, one does not need to separate drawing functions in case of direct file writing in consequence of the single calling of this function for each picture. However, one may use the same drawing procedure to create a plot with changed parameters, to export in different file types, to emphasize the drawing code and so on. So, in future I will put the drawing in separate function.
+</p>
+<p>The code for export in vector EPS file looks the same:
+</p><pre class="verbatim">    int main(int ,char **)
+    {
+        mglGraphPS gr;
+        gr.Light(true);             gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);           // The same drawing function.
+        gr.WriteEPS(&quot;test.eps&quot;);    // Don't forget to save the result!
+        return 0;
+    }
+</pre><p>The differences from the using of bitmap picture are: applying of the other class <code>mglGraphPS</code>, and writing to other format (function <code>WriteEPS()</code> instead of function <code>WritePNG()</code>). Moreover, there is no switching of the plot transparency <code>Alpha</code> since EPS format does not support it. Possibly I shall include transparency in future by program emulation.
+</p>
+<p>Classes <code>mglGraphZB</code> and <code>mglGraphPS</code> have some merits and demerits. Class <code>mglGraphZB</code> draws beautiful surface with transparency, smoothed colors and lightning, but the output picture is <em>bitmap</em>, that leads to a bad scalability. On the contrary, class <code>mglGraphPS</code> creates vector file with excellent scalability. But file has large size (especially for surfaces), it does not support transparency and color smoothing. So, vector picture looks stylish but a bit angularly.
+</p>
+<hr size="6">
+<a name="Drawing-in-memory"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Drawing-to-file" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Using-QMathGL" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Drawing-in-memory-1"></a>
+<h3 class="subsection">2.1.3 Drawing in memory</h3>
+
+<p>The last way of MathGL using is the drawing in memory. Class <code>mglGraphZB</code> allows one  to create a bitmap picture in memory. Further this picture can be displayed in window by some window libraries (like wxWidgets, FLTK, Windows GDI and so on). For example, the code for drawing in wxWidget library looks like:
+</p><pre class="verbatim">    void MyForm::OnPaint(wxPaintEvent&amp; event)
+    {
+        int w,h,x,y;
+        GetClientSize(&amp;w,&amp;h);   // size of the picture
+        mglGraphZB gr(w,h);
+
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);
+
+        wxImage img(w,h,gr.GetBits(),true);
+        ToolBar-&gt;GetSize(&amp;x,&amp;y);    // gets a height of the toolbar if any
+        wxPaintDC dc(this);         // and draws it
+        dc.DrawBitmap(wxBitmap(img),0,y);
+    }
+</pre><p>The drawing in other libraries is most the same.
+</p>
+<p>For example, FLTK code will look like
+</p><pre class="verbatim">    void Fl_MyWidget::draw()
+    {
+        mglGraphZB gr(w(),h());
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);
+        fl_draw_image(gr.GetBits(), x(), y(), gr.GetWidth(), gr.GetHeight(), 3);
+    }
+</pre><p>Qt code will look like
+</p><pre class="verbatim">    void MyWidget::paintEvent(QPaintEvent *)
+    {
+        mglGraphZB gr(w(),h());
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);
+
+        // Qt don't support RGB format as is. So, let convert it to BGRN.
+        const uchar *bb = gr.GetBits();
+        register long i, w=gr.GetWidth(), h=gr.GetHeight();
+        *buf = new uchar[4*w*h];
+        for(i=0;i&lt;w*h;i++)
+        {
+            (*buf)[4*i]   = bb[3*i+2];
+            (*buf)[4*i+1] = bb[3*i+1];
+            (*buf)[4*i+2] = bb[3*i];
+            (*buf)[4*i+3] = 255;
+        }
+        QPixmap pic = QPixmap::fromImage(QImage(*buf, w, h, QImage::Format_RGB32));
+
+        QPainter paint;
+        paint.begin(this);  paint.drawPixmap(0,0,pic);  paint.end();
+        delete []buf;
+    }
+</pre>
+<hr size="6">
+<a name="Using-QMathGL"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Drawing-in-memory" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Using-QMathGL-1"></a>
+<h3 class="subsection">2.1.4 Using QMathGL</h3>
+
+<p>MathGL have several interface widgets for different widget libraries. There are QMathGL for Qt, Fl_MathGL for FLTK in MathGL v.1.8. These classes provide control which display MathGL graphics. Unfortunately there is no uniform interface for widget classes because all libraries have slightly different set of functions, features and so on. However the usage of MathGL widgets is rather simple. Let me show it on the example of QMathGL.
+</p>
+<p>First of all you have to define the drawing function or inherit a class from <code>mglDraw</code> class. After it just create a window and setup QMathGL instance as any other Qt widget:
+</p><pre class="verbatim">    int main(int argc,char **argv)
+    {
+        QApplication a(argc,argv);
+        QMainWindow *Wnd = new QMainWindow;
+        Wnd-&gt;resize(650,480);  // for fill up the QMGL, menu and toolbars
+        Wnd-&gt;setWindowTitle(title);
+        // here I allow to scroll QMathGL -- the case 
+        // then user want to prepare huge picture
+        QScrollArea *scroll = new QScrollArea(Wnd);
+
+        // Create and setup QMathGL
+        QMathGL *QMGL = new QMathGL(Wnd);
+        QMGL-&gt;setPopup(popup); // if you want to setup popup menu for QMGL
+        QMGL-&gt;setDraw(sample, NULL);
+        // or use QMGL-&gt;setDraw(foo); for instance of class Foo:public mglDraw
+        QMGL-&gt;update();
+
+        // continue other setup (menu, toolbar and so on)
+        makeMenu();
+        scroll-&gt;setWidget(QMGL);
+        Wnd-&gt;setCentralWidget(scroll);
+        Wnd-&gt;show();
+        return a.exec();
+    }
+</pre>
+
+<hr size="6">
+<a name="Advanced-usage"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Using-QMathGL" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Subplots" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Advanced-usage-1"></a>
+<h2 class="section">2.2 Advanced usage</h2>
+
+<p>Now I show several non-obvious features of MathGL: several subplots in a single picture, curvilinear coordinates, text printing and so on. Generally you may miss this section at first reading, but I don&rsquo;t recommend it.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Subplots">2.2.1 Subplots</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-grids">2.2.2 Axis and grids</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Curvilinear-coordinates">2.2.3 Curvilinear coordinates</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing-example">2.2.4 Text printing example</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Animation">2.2.5 Animation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Subplots"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Advanced-usage" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-grids" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Subplots-1"></a>
+<h3 class="subsection">2.2.1 Subplots</h3>
+
+<p>Let me demonstrate possibilities of axes transformation. MathGL has the following functions: <code>SubPlot</code>, <code>InPlot</code>, <code>Aspect</code> and <code>Rotate</code> (see section <a href="mathgl_en_3.html#Transformation-matrix">Transformation matrix</a>). The order of their calling is strictly determined. First, one changes the position of axes in image area (functions <code>SubPlot</code> and <code>InPlot</code>). After that one may rotate the plot (function <code>Rotate</code>). Finally, one may change aspects of axes (function <code>Aspect</code>). The following code illustrates the aforesaid it:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;SubPlot(2,2,0);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(-1,1.1,1),&quot;Just box&quot;,&quot;rL&quot;);
+        gr-&gt;InPlot(0.2,0.5,0.7,1);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0,1.2,1),&quot;InPlot example&quot;);
+
+        gr-&gt;SubPlot(2,2,1);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Aspect(1,1,1);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(1,1,1.5),&quot;Rotate only&quot;,&quot;rR&quot;);
+
+        gr-&gt;SubPlot(2,2,2);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Aspect(1,1,2);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0,0,2),&quot;Aspect and Rotate&quot;);
+
+        gr-&gt;SubPlot(2,2,3);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Aspect(1,2,2);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0,0,1.5),&quot;Aspect in other direction&quot;);
+        return 0;
+    }
+</pre><p>Here I used function <code>Puts</code> for printing the text in arbitrary position of picture (see section <a href="mathgl_en_3.html#Text-printing">Text printing</a>). Text coordinates and size are connected with axes. However, text coordinates may be everywhere, including the outside the bounding box. I shall show its features later in See section <a href="#Text-printing-example">Text printing example</a>.
+</p>
+<div class="float">
+<img src="../png/sample1.png" alt="../png/sample1">
+
+</div><p><strong>Example of several subplots on the single picture.
+</strong>
+</p>
+<hr size="6">
+<a name="Axis-and-grids"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Subplots" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Curvilinear-coordinates" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-and-grids-1"></a>
+<h3 class="subsection">2.2.2 Axis and grids</h3>
+
+<p>MathGL library can draw not only the bounding box but also the axes, grids, labels and so on. The limits of axes and their origin (the point of intersection) are determined by function <code>Axis()</code>. Also you can use <code>XRange(), YRange(), ZRange()</code> functions (see section <a href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">Ranges (bounding box)</a>). Ticks on axis are specified by function <code>SetTicks</code> (see section <a href="mathgl_en_3.html#Ticks">Ticks</a>). First argument the direction for each change will be applied. Second argument gives the step between ticks (if positive) or gives the number of ticks on the axis (if negative) or set to use logarithmic ticks (if zero). Third argument gives numbers of sub-ticks between ticks (default is zero). Last argument define the initial ticks position.
+</p>
+<p>Function <code>Axis</code> draws axes. Its textual string shows in which directions the axis or axes will be drawn (by default <code>&quot;xyz&quot;</code>, function draws axes in all directions). Function <code>Grid</code> draws grid perpendicularly to specified directions. Example of axes and grid drawing is:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;SubPlot(2,2,0);
+        gr-&gt;SetTicks('x', 0.4, 3);  // sets tick step to 0.5
+        gr-&gt;SetTicks('y', 0.4, 3);  // and draws 3 subticks
+        gr-&gt;Box();                  // should be after the ticks change
+        gr-&gt;Axis(&quot;xy&quot;);
+        gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Axis and grid&quot;);
+
+        gr-&gt;SetTicks('x');  gr-&gt;SetTicks('y'); // restore back
+        gr-&gt;Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(0,0,0));
+
+        gr-&gt;SubPlot(2,2,1);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Axis();
+        gr-&gt;Label('x',&quot;x&quot;);
+        gr-&gt;Label('y',&quot;y&quot;);
+        gr-&gt;Label('z',&quot;z&quot;);
+        gr-&gt;Puts(mglPoint(0,0,1.5),&quot;Axis and labels&quot;);
+
+        gr-&gt;SubPlot(2,2,2);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;SetTicks('x', 0.2); gr-&gt;SetTicks('y', 0.2);
+        gr-&gt;SetTicks('z', 0.2); // too low step of ticks
+        gr-&gt;Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,-1,-1));
+        gr-&gt;Axis();
+        gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,0,1.5),&quot;Shift origin and add grid&quot;);
+        gr-&gt;Puts(mglPoint(0,0,1.2),&quot;(note, too many ticks)&quot;);
+
+        gr-&gt;SubPlot(2,2,3);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;SetTicks('x', -6);  // decrease the number of ticks
+        gr-&gt;SetTicks('y', -6);
+        gr-&gt;Axis(&quot;yz&quot;);
+        gr-&gt;Label('y',&quot;Y axis&quot;,0);
+        gr-&gt;Label('z',&quot;Z axis&quot;,0);
+        gr-&gt;Puts(mglPoint(0,0,1.5),&quot;Remove X axis, and&quot;);
+        gr-&gt;Puts(mglPoint(0,0,1.2),&quot;decrease number of ticks&quot;);
+        return 0;
+    }
+</pre>
+<p>This example shows the importance of the correct choosing of the number of ticks on axis. If tick step is too small then its text may overlap and becomes unreadable. This code has the example of <code>Label</code> function. It draws label for axis in specified direction. The text position on axis is specified by third argument of <code>Label</code> function. If it is positive then then text is drawn near the axis maximum, if negative then the same takes place near the minimum of axis, if zero - then at the center of axis.
+</p>
+<div class="float">
+<img src="../png/sample2.png" alt="../png/sample2">
+
+</div><p><strong>Example of setting up axis range and axis ticks.
+</strong>
+</p>
+<hr size="6">
+<a name="Curvilinear-coordinates"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-grids" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing-example" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Curvilinear-coordinates-1"></a>
+<h3 class="subsection">2.2.3 Curvilinear coordinates</h3>
+
+
+<p>Now let use curvilinear coordinates. In difference from other systems of plot creation, MathGL uses textual formulas for connection of the old (data) and new (output) coordinates. This allows one to plot in arbitrary coordinates. The following code plots the line <var>y</var>=0, <var>z</var>=0 in Cartesian, polar, parabolic and spiral coordinates:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData x(50),y(50),z(50);
+        y.Fill(0.5,0.5);
+        x.Fill(-1,1);           // creates data arrays
+
+        gr-&gt;Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,1,-1));
+        gr-&gt;dz = 0.5;           // sets tick step to 0.5
+
+        gr-&gt;SubPlot(2,2,0);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Plot(x,y,z,&quot;r2&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Cartesian&quot;);
+
+        gr-&gt;SubPlot(2,2,1);
+        gr-&gt;SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,0);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Plot(x,y,z,&quot;r2&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Cylindrical&quot;);
+
+        gr-&gt;SubPlot(2,2,2);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;SetFunc(&quot;2*y*x&quot;,&quot;y*y - x*x&quot;,0);
+        gr-&gt;Plot(x,y,z,&quot;r2&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Parabolic&quot;);
+
+        gr-&gt;SubPlot(2,2,3);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,&quot;x+z&quot;);
+        gr-&gt;Plot(x,y,z,&quot;r2&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Spiral&quot;);
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample3.png" alt="../png/sample3">
+
+</div><p><strong>Example of curvilinear coordinates
+</strong>
+</p>
+
+<hr size="6">
+<a name="Text-printing-example"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Curvilinear-coordinates" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Animation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-printing-example-1"></a>
+<h3 class="subsection">2.2.4 Text printing example</h3>
+
+<p>MathGL prints text by vector font. There are functions for manual specifying of text position (like <code>Puts</code>) and for its automatic selection (like <code>Label</code>, <code>Legend</code> and so on). MathGL prints text always in specified position even if it lies outside the bounding box. The default size of font is specified by variables <var>FontSize</var> (see section <a href="mathgl_en_3.html#Font-settings">Font settings</a>). However, the actual size of output string depends on position of axes (depends on functions <code>SubPlot</code>, <code>InPlot</code>). The switching of the font style (italic, bold, wire and so on) can be done for the whole string (by function parameter) or inside the string. By default MathGL parses TeX-like commands for symbols and indexes (see see section <a href="mathgl_en_1.html#Font-styles">Font styles</a>). Example of MathGL font drawing is:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        setlocale(LC_CTYPE, &quot;ru_RU.cp1251&quot;);
+        gr-&gt;Puts(mglPoint(0,1),&quot;Text can be in ASCII and in Unicode&quot;);
+        gr-&gt;Puts(mglPoint(0,0.6),&quot;It can be \\wire{wire}, \\big{big} &quot;
+            &quot;or #r{colored}&quot;);
+        gr-&gt;Puts(mglPoint(0,0.2),&quot;One can change style in string: &quot;
+            &quot;\\b{bold}, \\i{italic, \\b{both}}&quot;);
+        gr-&gt;Puts(mglPoint(0,-0.2),&quot;Easy to \\a{overline} or &quot;
+            &quot;\\u{underline}&quot;);
+        gr-&gt;Puts(mglPoint(0,-0.6),&quot;Easy to change indexes &quot;
+            &quot;^{up} _{down} @{center}&quot;);
+        gr-&gt;Puts(mglPoint(0,-1),&quot;It parse TeX: \\int \\alpha \\cdot &quot;
+            &quot;\\sqrt3{sin(\\pi x)^2 + \\gamma_{i_k}} dx&quot;);
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample4.png" alt="../png/sample4">
+
+</div><p><strong>Example of text printing with different font effects
+</strong>
+</p>
+<p>Another example demonstrate the features of TeX formula parsing.
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Puts(mglPoint(0), &quot;\\sqrt{\\frac{\\alpha^{\\gamma^2}+&quot;
+            &quot;\\overset 1{\\big\\infty}}{\\sqrt3{2+b}}}&quot;, 0, -4);
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/samplee.png" alt="../png/samplee">
+
+</div><p><strong>Example of TeX formula parsing
+</strong>
+</p>
+<p>Finally you can change font during execution (this work well for mglGraphZB class only).
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        float h=1.1, d=0.25;
+        gr-&gt;LoadFont(&quot;STIX&quot;);       gr-&gt;Puts(mglPoint(0,h), &quot;default font (STIX)&quot;);
+        gr-&gt;LoadFont(&quot;adventor&quot;);   gr-&gt;Puts(mglPoint(0,h-d), &quot;adventor font&quot;);
+        gr-&gt;LoadFont(&quot;bonum&quot;);      gr-&gt;Puts(mglPoint(0,h-2*d), &quot;bonum font&quot;);
+        gr-&gt;LoadFont(&quot;chorus&quot;);     gr-&gt;Puts(mglPoint(0,h-3*d), &quot;chorus font&quot;);
+        gr-&gt;LoadFont(&quot;cursor&quot;);     gr-&gt;Puts(mglPoint(0,h-4*d), &quot;cursor font&quot;);
+        gr-&gt;LoadFont(&quot;heros&quot;);      gr-&gt;Puts(mglPoint(0,h-5*d), &quot;heros font&quot;);
+        gr-&gt;LoadFont(&quot;heroscn&quot;);    gr-&gt;Puts(mglPoint(0,h-6*d), &quot;heroscn font&quot;);
+        gr-&gt;LoadFont(&quot;pagella&quot;);    gr-&gt;Puts(mglPoint(0,h-7*d), &quot;pagella font&quot;);
+        gr-&gt;LoadFont(&quot;schola&quot;);     gr-&gt;Puts(mglPoint(0,h-8*d), &quot;schola font&quot;);
+        gr-&gt;LoadFont(&quot;termes&quot;);     gr-&gt;Puts(mglPoint(0,h-9*d), &quot;termes font&quot;);
+    }
+</pre>
+<div class="float">
+<img src="../png/fonts.png" alt="../png/fonts">
+
+</div><p><strong>Example of font face changing.
+</strong>
+</p>
+<hr size="6">
+<a name="Animation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing-example" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Animation-1"></a>
+<h3 class="subsection">2.2.5 Animation</h3>
+
+<p>You can make animation by several methods in MathGL: by export in animated GIF, or by save each frame in separate file (usually JPEG) and convert these files into movie. Let me show both methods.
+</p>
+<p>The simplest methods is making animated GIF. There are 3 steps: (1) open GIF file by <code>StartGIF()</code> function; (2) create the frames by calling <code>NewFrame()</code> before and <code>EndFrame()</code> after plotting; (3) close GIF by <code>CloseGIF()</code> function. So the simplest code for &ldquo;running&rdquo; sinusoid will look like this:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData dat(100);
+        char str[32];
+        gr-&gt;StartGIF(&quot;sample.gif&quot;);
+        for(int i=0;i&lt;100;i++)
+        {
+            gr-&gt;NewFrame();     // start frame
+            gr-&gt;Box();          // some plotting
+            sprintf(str,&quot;sin(pi*x+%g*pi)&quot;,0.02*i);
+            dat.Modify(str);
+            gr-&gt;Plot(dat,&quot;b&quot;);
+            gr-&gt;EndFrame();     // end frame
+        }
+        gr-&gt;CloseGIF();
+        return 0;
+    }
+</pre>
+<p>The second way is saving each frame in separate file (usually JPEG) and later make the movie from them. MathGL have special function for saving frames &ndash; it is <code>WriteFrame()</code>. This function save each frame with automatic name &lsquo;<samp>frame0001.jpg, frame0002.jpg</samp>&rsquo; and so on. Here prefix &lsquo;<samp>frame</samp>&rsquo; is defined by <var>PlotId</var> variable of <code>mglGraph</code> class. So the similar code will look like this:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData dat(100);
+        char str[32];
+        for(int i=0;i&lt;100;i++)
+        {
+            gr-&gt;NewFrame();     // start frame
+            gr-&gt;Box();          // some plotting
+            sprintf(str,&quot;sin(pi*x+%g*pi)&quot;,0.02*i);
+            dat.Modify(str);
+            gr-&gt;Plot(dat,&quot;b&quot;);
+            gr-&gt;EndFrame();     // end frame
+            gr-&gt;WriteFrame();   // save frame
+        }
+        return 0;
+    }
+</pre>
+<p>Created files can be converted to movie by help of a lot of programs. For example, you can use ImageMagic (command &lsquo;<samp>convert frame*.jpg movie.mpg</samp>&rsquo;), MPEG library, GIMP and so on.
+</p>
+<p>Finally, you can use <code>mgl2gif</code> tool for doing the same with MGL scripts (see section <a href="mathgl_en_8.html#Utilities">Utilities for parsing MGL</a>).
+</p>
+<hr size="6">
+<a name="Data-handling"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Animation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Array-creation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-handling-1"></a>
+<h2 class="section">2.3 Data handling</h2>
+
+<p>Class <code>mglData</code> contains all functions for the data handling in MathGL (see section <a href="mathgl_en_6.html#mglData-class">mglData class</a>). There are several matters why I use class <code>mglData</code> but not a single array: it does not depend on type of data (float or double), sizes of data arrays are kept with data, memory working is simpler and safer.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Array-creation">2.3.1 Array creation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-changing">2.3.2 Data changing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Array-creation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-handling" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-changing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Array-creation-1"></a>
+<h3 class="subsection">2.3.1 Array creation</h3>
+
+<p>One can put the data in <code>mglData</code> instance by several ways. Let us do it for sinus function:
+</p><ul>
+<li>
+one can create external array, fill it and put to <code>mglData</code> variable
+<pre class="verbatim">    double *a = new double[50];
+    for(int i=0;i&lt;50;i++)   a[i] = sin(M_PI*i/49.);
+
+    mglData y;
+    y.Set(a,50);
+</pre>
+</li><li>
+another way is to create <code>mglData</code> instance of the desired size and then to work directly with data in this variable
+<pre class="verbatim">    mglData y(50);
+    for(int i=0;i&lt;50;i++)   y.a[i] = sin(M_PI*i/49.);
+</pre>
+</li><li>
+next way is to fill the data in <code>mglData</code> instance by textual formula with the help of <code>Modify()</code> function
+<pre class="verbatim">    mglData y(50);
+    y.Modify(&quot;sin(pi*x)&quot;);
+</pre>
+</li><li>
+or one may fill the array in some interval and modify it later
+<pre class="verbatim">    mglData y(50);
+    y.Fill(0,M_PI);
+    y.Modify(&quot;sin(u)&quot;);
+</pre>
+</li><li>
+finally it can be loaded from file
+<pre class="verbatim">    FILE *fp=fopen(&quot;sin.dat&quot;,&quot;wt&quot;);   // create file first
+    for(int i=0;i&lt;50;i++)   fprintf(fp,&quot;%g\n&quot;,sin(M_PI*i/49.));
+    fclose(fp);
+
+    mglData y(&quot;sin.dat&quot;);             // load it
+</pre>
+</li><li>
+at this one can read only part of data
+<pre class="verbatim">    FILE *fp-fopen(&quot;sin.dat&quot;,&quot;wt&quot;);   // create large file first
+    for(int i=0;i&lt;70;i++)   fprintf(fp,&quot;%g\n&quot;,sin(M_PI*i/49.));
+    fclose(fp);
+
+    mglData y;
+    y.Read(&quot;sin.dat&quot;,50);             // load it
+</pre></li></ul>
+
+<p>Creation of 2d- and 3d-arrays is mostly the same. But one should keep in mind that class <code>mglData</code> uses flat data representation. For example, matrix 30*40 is presented as flat (1d-) array with length 30*40=1200 (nx=30, ny=40). The element with indexes {i,j} is a[i+nx*j]. So for 2d array we have:
+</p><pre class="verbatim">    mglData z(30,40);
+    for(int i=0;i&lt;30;i++)   for(int j=0;j&lt;40;j++)
+        z.a[i+30*j] = sin(M_PI*i/29.)*sin(M_PI*j/39.);
+</pre><p>or by using <code>Modify()</code> function
+</p><pre class="verbatim">    mglData z(30,40);
+    z.Modify(&quot;sin(pi*x)*cos(pi*y)&quot;);
+</pre>
+<p>The only non-obvious thing here is using multidimensional arrays in C/C++, i.e. arrays defined like <code>float dat[40][30];</code>. Since, formaly this arrays element <code>dat[i]</code> can address the memory in arbitrary place you should use the proper function to convert such arrays to <code>mglData</code> object. For C++ this is functions like <code>mglData::Set(float **dat, int N1, int N2);</code>. For C this is functions like <code>mgl_data_set_float2(HMDT d, const float **dat, int N1, int N2);</code>. At this, you should keep in mind that <code>nx=N2</code> and <code>ny=N1</code> after conversion.
+</p>
+<hr size="6">
+<a name="Data-changing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Array-creation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-changing-1"></a>
+<h3 class="subsection">2.3.2 Data changing</h3>
+
+<p>MathGL has functions for data processing: differentiating, integrating, smoothing and so on (for more detail, see section <a href="mathgl_en_6.html#mglData-class">mglData class</a>). Let us consider some examples. The simplest ones are integration and differentiation. The direction in which operation will be performed is specified by textual string, which may contain symbols &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo;. For example, the call of <code>Diff(&quot;x&quot;)</code> will differentiate data along &lsquo;<samp>x</samp>&rsquo; direction; the call of <code>Integral(&quot;xy&quot;)</code> perform the double integration of data along &lsquo;<samp>x</samp>&rsquo; and &lsquo;<samp>y</samp>&rsquo; directions; the call of <code>Diff2(&quot;xyz&quot;)</code> will apply 3d Laplace operator to data and so on. Example of this operations on 2d array a=x*y is presented in code:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData a(30,40);   a.Modify(&quot;x*y&quot;);
+        gr-&gt;Axis(mglPoint(0,0,0),mglPoint(1,1,1));
+        gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(60,40);
+        gr-&gt;Surf(a);        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0.7,1,1.2),&quot;a(x,y)&quot;);
+        gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(60,40);
+        a.Diff(&quot;x&quot;);        gr-&gt;Surf(a);      gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0.7,1,1.2),&quot;da/dx&quot;);
+        gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(60,40);
+        a.Integral(&quot;xy&quot;);   gr-&gt;Surf(a);      gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0.7,1,1.2),&quot;\\int da/dx dxdy&quot;);
+        gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(60,40);
+        a.Diff2(&quot;y&quot;);       gr-&gt;Surf(a);      gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0.7,1,1.2),&quot;\\int {d^2}a/dxdy dx&quot;);
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample6.png" alt="../png/sample6">
+
+</div><p><strong>Example of data differentiation and integration
+</strong>
+</p>
+<p>Data smoothing (function <code>Smooth()</code>) is more interesting and important. This function has 2 main arguments: type of smoothing and its direction. Now 4 methods are supported: <code>SMOOTH_NONE</code> does nothing for delta=0 or approaches data to zero with the step delta, <code>SMOOTH_LINE_3</code> linear averaging by 3 points, <code>SMOOTH_LINE_5</code> linear averaging by 5 points, <code>SMOOTH_QUAD_5</code> quadratic averaging by 5 points. Let me demonstrate it for 1d case:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData y0(30),y1,y2,y3;
+        y0.Modify(&quot;0.4*sin(2*pi*x)+0.3*cos(3*pi*x)-0.4*sin(4*pi*x)+0.2*rnd&quot;);
+
+        y1=y0;  y1.Smooth(SMOOTH_LINE_3);
+        y2=y0;  y2.Smooth(SMOOTH_LINE_5);
+        y3=y0;  y3.Smooth(SMOOTH_QUAD_5);
+
+        gr-&gt;Plot(y0,&quot;k&quot;);   gr-&gt;AddLegend(&quot;NONE&quot;,&quot;k&quot;);
+        gr-&gt;Plot(y1,&quot;r&quot;);   gr-&gt;AddLegend(&quot;LINE_3&quot;,&quot;r&quot;);
+        gr-&gt;Plot(y2,&quot;g&quot;);   gr-&gt;AddLegend(&quot;LINE_5&quot;,&quot;g&quot;);
+        gr-&gt;Plot(y3,&quot;b&quot;);   gr-&gt;AddLegend(&quot;QUAD_5&quot;,&quot;b&quot;);
+        gr-&gt;Legend();       gr-&gt;Box();
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample7.png" alt="../png/sample7">
+
+</div><p><strong>Example of data smoothing
+</strong>
+</p>
+<p>Finally one can create new data arrays on base of the existing one: extract slice, row or column of data (<code>SubData()</code>), summarize along some of direction(s) (<code>Sum()</code>), find distribution of data elements (<code>Hist()</code>). Note, that all these functions are not thread-safe because they use static internal variable for output array. In particular, the using of several of them in arguments of the same function will lead to unpredictable result.
+</p>
+<hr size="6">
+<a name="Data-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-changing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-1D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-plotting-1"></a>
+<h2 class="section">2.4 Data plotting</h2>
+
+<p>Let me now show how to plot the data. MathGL generally has 2 types of plotting functions. Simple variant requires a single data array for plotting, other data (coordinates) are considered uniformly distributed in interval <var>Min</var>*<var>Max</var>. Second variant requires data arrays for all coordinates. It allows one to plot rather complex multivalent curves and surfaces (in case of parametric dependencies). Argument setting to default values allows one to plot data in standard form. Manual arguments setting gives possibility for fine tuning of colors, positions and view of graphics. Note, that the call of drawing function adds something to picture but does not clear the previous plots (as it does in Matlab). Another difference from Matlab is that all setup (like transparency, lightning, axis borders and so on) must be specified <strong>before</strong> plotting functions.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plots-for-1D-data">2.4.1 Plots for 1D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-for-2D-data">2.4.2 Plots for 2D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-for-3D-data">2.4.3 Plots for 3D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surface-transparency">2.4.4 Surface transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Plots-for-1D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-2D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-1D-data-1"></a>
+<h3 class="subsection">2.4.1 Plots for 1D data</h3>
+
+<p>Term &ldquo;1D data&rdquo; means that data depend on single index (parameter) like curve in parametric form {x(i),y(i),z(i)}, i=1...n. There are 5 generally different types of data representations: simple line plot, line plot with filling under it, stairs plot, bar plot and vertical lines (see section <a href="mathgl_en_3.html#g_t1D-plotting">1D plotting</a>). Each type of plotting has similar interface. There are 3D version and two 2D versions. One of last requires single array. The parameters of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>) are specified by the string argument. If the string parameter is <code>NULL</code> then solid line with color from palette is used (see section <a href="mathgl_en_3.html#Palette-and-colors">Pallete and colors</a>).
+</p>
+<p>Below I shall show the features of 1D plotting on base of <code>Plot()</code> function (see section <a href="mathgl_en_3.html#Plot">Plot</a>). Let us start from sinus plot:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData y0(50); 	y0.Modify(&quot;sin(pi*(2*x-1))&quot;);
+        gr-&gt;SubPlot(2,2,0);
+        gr-&gt;Plot(y0);   	gr-&gt;Box();
+</pre><p>Style of line is not specified in <code>Plot()</code> function. So MathGL uses the solid line with first color of palette (this is blue). Next subplot shows array <var>y1</var> with 2 rows:
+</p><pre class="verbatim">        gr-&gt;SubPlot(2,2,1);
+        mglData y1(50,2);
+        y1.Modify(&quot;sin(pi*2*x-pi)&quot;);
+        y1.Modify(&quot;cos(pi*2*x-pi)/2&quot;,1);
+        gr-&gt;Plot(y1);   	gr-&gt;Box();
+</pre><p>As previously I did not specify the style of lines. As a result, MathGL again uses solid line with next colors in palette (there are green and red). Now let us plot a circle on the same subplot. The circle is parametric curve <em>x=cos(\pi t), y=sin(\pi t)</em>. I will set the color of the circle (dark yellow, &lsquo;<samp>Y</samp>&rsquo;) and put marks &lsquo;<samp>+</samp>&rsquo; at point position:
+</p><pre class="verbatim">        mglData x(50);  	x.Modify(&quot;cos(pi*2*x-pi)&quot;);
+        gr-&gt;Plot(x,y0,&quot;Y+&quot;);
+</pre><p>Note that solid line is used because I did not specify the type of line. The same picture can be achieved by <code>Plot2()</code> function. Let us draw ellipse by orange dash line:
+</p><pre class="verbatim">        gr-&gt;Plot2(y1,&quot;q|&quot;);
+</pre>
+<p>Drawing in 3D space is mostly the same. Let us draw spiral with default line style. Now its color is 4-th color from palette (this is cyan):
+</p><pre class="verbatim">        gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(60,40);
+        mglData z(50);  	z.Modify(&quot;2*x-1&quot;);
+        gr-&gt;Plot(x,y0,z);	gr-&gt;Box();
+</pre><p>Function <code>Plot3()</code> does 3D curve plot but for single array. Use it to put circle marks on the previous plot:
+</p><pre class="verbatim">        mglData y2(10,3);	y2.Modify(&quot;cos(pi*(2*x-1+y))&quot;);
+        y2.Modify(&quot;2*x-1&quot;,2);
+        gr-&gt;Plot3(y2,&quot;bo &quot;);
+</pre><p>Note that line style is empty &lsquo;<samp> </samp>&rsquo; here. Usage of other 1D plotting functions looks similar:
+</p><pre class="verbatim">        gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(60,40);
+        gr-&gt;Bars(x,y0,z,&quot;r&quot;);	gr-&gt;Box();
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample8.png" alt="../png/sample8">
+
+</div><p><strong>Example of 1D data plot
+</strong>
+</p>
+<hr size="6">
+<a name="Plots-for-2D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-1D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-3D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-2D-data-1"></a>
+<h3 class="subsection">2.4.2 Plots for 2D data</h3>
+
+<p>Surfaces <code>Surf()</code> and other 2D plots (see section <a href="mathgl_en_3.html#g_t2D-plotting">2D plotting</a>) are drown the same simpler as 1D one. The difference is that the string parameter specifies not by line style but by the color scheme of the plot (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>). Here I draw attention on 4 most interesting color schemes. There is gray scheme where color is changed from black to white (string &lsquo;<samp>kw</samp>&rsquo;) or from white to black (string &lsquo;<samp>wk</samp>&rsquo;). Another scheme is useful for accentuation of negative (by blue color) and positive (by red color) regions on plot (string &lsquo;<samp>&quot;BbwrR&quot;</samp>&rsquo;). Last one is the popular &ldquo;jet&rdquo; scheme (string &lsquo;<samp>&quot;BbcyrR&quot;</samp>&rsquo;).
+</p>
+<p>Now I shall show the example of a surface drawing. At first let us switch lightning on
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Light(true);	gr-&gt;Light(0,mglPoint(0,0,1));
+</pre><p>and draw the surface, considering coordinates x,y to be uniformly distributed in interval <var>Min</var>*<var>Max</var>
+</p><pre class="verbatim">        mglData a0(50,40);
+        a0.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+        gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(60,40);
+        gr-&gt;Surf(a0);		gr-&gt;Box();
+</pre><p>Color scheme was not specified. So previous color scheme is used. In this case it is default color scheme (&ldquo;jet&rdquo;) for the first plot. Next example is a sphere. The sphere is parametrically specified surface:
+</p><pre class="verbatim">        mglData x(50,40),y(50,40),z(50,40);
+        x.Modify(&quot;0.8*sin(2*pi*x)*sin(pi*y)&quot;);
+        y.Modify(&quot;0.8*cos(2*pi*x)*sin(pi*y)&quot;);
+        z.Modify(&quot;0.8*cos(pi*y)&quot;);
+        gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(60,40);
+        gr-&gt;Surf(x,y,z,&quot;BbwrR&quot;);gr-&gt;Box();
+</pre><p>I set color scheme to <code>&quot;BbwrR&quot;</code> that corresponds to red top and blue bottom of the sphere.
+</p>
+<p>Surfaces will be plotted for each of slice of the data if <var>nz</var>&gt;1. Next example draws surfaces for data arrays with <var>nz</var>=3:
+</p><pre class="verbatim">        mglData a1(50,40,3);
+        a1.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+        a1.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))&quot;,1);
+        a1.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;,2);
+        gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(60,40);
+        gr-&gt;Alpha(true);
+        gr-&gt;Surf(a1);		gr-&gt;Box();
+</pre><p>Note, that it may entail a confusion. However, if one will use density plot then the picture will look better:
+</p><pre class="verbatim">        gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(60,40);
+        gr-&gt;Dens(a1);		gr-&gt;Box();
+        return 0;
+    }
+</pre><p>Note, that the previous color scheme is used in last plots because there are no direct specification of the one.
+</p>
+<div class="float">
+<img src="../png/sample9.png" alt="../png/sample9">
+
+</div><p><strong>Example of surface plot for 2D data
+</strong>
+</p>
+<p>Drawing of other 2D plots is analogous. The only peculiarity is the usage of flag &lsquo;<samp>#</samp>&rsquo;. By default this flag switches on the drawing of a grid on plot (<code>Grid()</code> or <code>Mesh()</code> for plots in plain or in volume). However, for isosurfaces (including surfaces of rotation <code>Axial()</code>) this flag switches the  face drawing off. Figure becomes wired. The following code gives example of flag &lsquo;<samp>#</samp>&rsquo; using (compare with normal function drawing as in its description):
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Alpha(true);	gr-&gt;Light(true);	gr-&gt;Light(0,mglPoint(0,0,1));
+        mglData a(30,20);
+        a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+
+        gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);
+        gr-&gt;Surf(a,&quot;BbcyrR#&quot;);		gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);
+        gr-&gt;Dens(a,&quot;BbcyrR#&quot;);		gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);
+        gr-&gt;Cont(a,&quot;BbcyrR#&quot;);		gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);
+        gr-&gt;Axial(a,&quot;BbcyrR#&quot;);		gr-&gt;Box();
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/samplea.png" alt="../png/samplea">
+
+</div><p><strong>Example of 2D data plot with color scheme contained &lsquo;<samp>#</samp>&rsquo; symbol
+</strong>
+</p>
+<hr size="6">
+<a name="Plots-for-3D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-2D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surface-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-3D-data-1"></a>
+<h3 class="subsection">2.4.3 Plots for 3D data</h3>
+
+<p>Drawing procedures for 3D plot looks similarly to 1D and 2D plots described above. There are 3 general types of 3D plots (see section <a href="mathgl_en_3.html#g_t3D-plotting">3D plotting</a>): (i) plots on slices or on projections, (ii) isosurfaces, (iii) cloud-like plots. Plots on slice are clear enough &ndash; one specifies a slice (as its index or as coordinate value) and MathGL draws contour lines or density plot on slice plane. Isosurface gives more information. Isosurface is 3D analogue of the contour line <code>Cont()</code>. It shows the region where data array values exceed specified isosurface level. Plot becomes more informative if one adds transparency, lightning or sets color scheme depending on coordinates. Generalization of isosurface is the cloud-like plot. For this plot the darker color and less transparent regions correspond to higher values of data. Contrary, the regions with low values are transparent. For plotting of the phase of fields (or beams or pulses) one can use isosurface which transparency depends on the other data array (see function <code>Surf3A()</code>). As example of 3D data plots let us draw the Gaussian beam diffraction in space. Beam propagates along <var>x</var> axis:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Alpha(true);    gr-&gt;Light(true);
+        gr-&gt;Light(0,mglPoint(0,0,1));
+        mglData a(30,30,30),b(30,30,30);
+        a.Modify(&quot;exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))&quot;);
+        b.Modify(&quot;16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)&quot;);
+        gr-&gt;CAxis(0,1);
+
+        gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(40,60);
+        gr-&gt;Surf3(a,&quot;wgk&quot;); gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(40,60);
+        gr-&gt;DensA(a);       gr-&gt;Box();  gr-&gt;Axis();
+        gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(40,60);
+        gr-&gt;CloudQ(a);      gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(40,60);
+        gr-&gt;Surf3A(b,a,&quot;q&quot;);gr-&gt;Box();
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sampleb.png" alt="../png/sampleb">
+
+</div><p><strong>Example of Gaussian beam diffraction (3D data)
+</strong>
+</p>
+
+<hr size="6">
+<a name="Surface-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-3D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#C_002fFortran-interface" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surface-transparency-1"></a>
+<h3 class="subsection">2.4.4 Surface transparency</h3>
+
+<p>MathGL library has advanced features for setting and handling the surface transparency. The simplest way to add transparency is the using of function <code>Alpha()</code>. As a result, all further surfaces (and isosurfaces, density plots and so on) become transparent. However, their  look can be additionally improved.
+</p>
+<p>First, the selected surface will be non-transparent if one sets the flag <code>Transparent</code> before the surface drawing and sets it off after the drawing.
+</p>
+<p>Second, the value of transparency can be different from surface to surface. To do it just change the value of <code>AlphaDef</code> before the drawing of the selected surface. If its value is close to 0 then the surface becomes more and more transparent. Contrary, if its value is close to 1 then the surface becomes practically non-transparent. This is some analogue of <code>Transparent=true</code>.
+</p>
+<p>Third feature is the changing of the way how the light goes through overlapped surfaces. The variable <code>TranspType</code> defines it. By default the usual transparency is used (<code>TranspType=0</code>) &ndash; surfaces below is less visible than the upper ones. A &ldquo;glass-like&rdquo; transparency (<code>TranspType=1</code>) has a different look when the surface just decreases the background light (the surfaces are commutable in this case).
+</p>
+<p>A &ldquo;neon-like&rdquo; transparency (<code>TranspType=2</code>) has more interesting look. In this case a surface is the light source (like a lamp on the dark background) and just adds some intensity to the color. At this, the library sets automatically the black color for the background and changes the default line color to white.
+</p>
+<p>As example I shall show the variant of plot from <a href="#Plots-for-2D-data">Plots for 2D data</a> (grid drawing is disabled) for different types of transparency.
+</p><div class="float">
+<img src="../png/type0.png" alt="../png/type0">
+
+</div><p><strong>Example of <code>TranspType=0</code>.
+</strong>
+</p><div class="float">
+<img src="../png/type1.png" alt="../png/type1">
+
+</div><p><strong>Example of <code>TranspType=1</code>.
+</strong>
+</p><div class="float">
+<img src="../png/type2.png" alt="../png/type2">
+
+</div><p><strong>Example of <code>TranspType=2</code>.
+</strong>
+</p>
+<hr size="6">
+<a name="C_002fFortran-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surface-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-and-PyQt" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="C_002fFortran-interface-1"></a>
+<h2 class="section">2.5 C/Fortran interface</h2>
+
+<p>The usage of pure C or Fortran or any similar interfaces (see section <a href="mathgl_en_1.html#C-interface">C interface</a>) is practically identical to classes usage. But there are some differences. C functions must have argument HMGL (for graphics) and/or HMDT (for data arrays) which specifies the object for drawing or manipulating (changing). Fortran users may regard these variables as integer. So, firstly the user has to create this object by function mgl_create_*() and has to delete it after the using by function mgl_delete_*().
+</p>
+<p>Also, all arguments of C function have to be defined. So there are several functions with practically identical names doing practically the same. But some of them have simplified interface for the quick plotting and some of them have access to all plotting parameters for manual tunning.
+</p>
+<p>As an example of C function usage let me draw the plot from <a href="#Plots-for-2D-data">Plots for 2D data</a>. The C code which does it is shown below:
+</p><pre class="verbatim">    #include &lt;mgl/mgl_c.h&gt;
+    int main()
+    {
+        HMGL gr = mgl_create_graph_zb(600, 400);
+        mgl_set_alpha(gr, true);
+        mgl_set_light(gr, true);
+        HMDT a = mgl_create_data_size(30,20,1);
+        mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+
+        mgl_subplot(gr, 2,2,0);
+        mgl_rotate(gr, 40,60,0);
+        mgl_surf(gr,a,&quot;BbcyrR#&quot;);
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,1);
+        mgl_rotate(gr, 40,60,0);
+        mgl_dens(gr,a,&quot;BbcyrR#&quot;,NAN);
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,2);
+        mgl_rotate(gr, 40,60,0);
+        mgl_cont(gr,a,&quot;BbcyrR#&quot;,7,NAN);
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,3);
+        mgl_rotate(gr, 40,60,0);
+        mgl_axial(gr,a,&quot;BbcyrR#&quot;,3);
+        mgl_box(gr, true);
+
+        /* don't forgot to save graphics */
+        mgl_write_png(gr,&quot;sample.png&quot;,0);
+        return 0;
+    }
+</pre>
+<p>Practically the same simple to create a window. For example let rewrite the code from for window creation (see section <a href="#Using-FLTK_002fGLUT-window">Using FLTK/Qt/GLUT window</a>):
+</p><pre class="verbatim">    int sample(HMGL gr, void *)
+    {
+        mgl_rotate(gr,60,40,0);
+        mgl_box(gr,1);
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mgl_create_graph_fltk(sample, &quot;MathGL examples&quot;, NULL);
+        mgl_fltk_run();
+        return 0;
+    }
+</pre>
+<p>The Fortran code have some peculiarities. Exactly it not allow one to send arbitrary parameter (which was <code>NULL</code> in previous example) to function. This is limitation of Fortran language. So, the corresponding code will be <strong>NOT TESTED NOW!!!</strong>:
+</p><pre class="verbatim">    program TEST
+    integer x,f,func
+        call mgl_create_graph_fltk(sample, 'MathGL examples');
+        call mgl_fltk_run();
+    end program TEST
+ 
+    integer function sample(gr)
+    integer*8 gr
+        call mgl_rotate(gr,60,40,0);
+        call mgl_box(gr,1);
+        sample=0
+    return
+    end
+</pre>
+<hr size="6">
+<a name="MathGL-and-PyQt"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#C_002fFortran-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL-and-PyQt-1"></a>
+<h2 class="section">2.6 MathGL and PyQt</h2>
+
+<p>Generally SWIG based classes (including the Python one) are the same as C++ classes. However, there are few tips for using MathGL with PyQt. Below I place a very simple python code which demonstrate how MathGL can be used with PyQt. This code is mostly written by Prof. Dr. Heino Falcke. You can just copy it to a file <code>mgl-pyqt-test.py</code> and execute it from python shell by command <code>execfile(&quot;mgl-pyqt-test.py&quot;)</code>
+</p>
+<pre class="verbatim">from PyQt4 import QtGui,QtCore
+from mathgl import *
+import sys
+app = QtGui.QApplication(sys.argv)
+qpointf=QtCore.QPointF()
+
+class hfQtPlot(QtGui.QWidget):
+    def __init__(self, parent=None):
+        QtGui.QWidget.__init__(self, parent)
+        self.img=(QtGui.QImage())
+    def setgraph(self,gr):
+        self.buffer='\t' 
+        self.buffer=self.buffer.expandtabs(4*gr.GetWidth()*gr.GetHeight())
+        gr.GetBGRN(self.buffer,len(self.buffer))
+        self.img=QtGui.QImage(self.buffer, gr.GetWidth(),gr.GetHeight(),QtGui.QImage.Format_ARGB32)
+        self.update()
+    def paintEvent(self, event):
+        paint = QtGui.QPainter()
+        paint.begin(self)
+        paint.drawImage(qpointf,self.img)
+        paint.end()
+
+BackgroundColor=[1.0,1.0,1.0]
+size=100
+gr=mglGraph()
+y=mglData(size)
+#y.Modify(&quot;((0.7*cos(2*pi*(x+.2)*500)+0.3)*(rnd*0.5+0.5)+362.135+10000.)&quot;)
+y.Modify(&quot;(cos(2*pi*x*10)+1.1)*1000.*rnd-501&quot;)
+x=mglData(size)
+x.Modify(&quot;x^2&quot;);
+
+def plotpanel(gr,x,y,n):
+    gr.SubPlot(2,2,n)
+    gr.SetXRange(x)
+    gr.SetYRange(y)
+    gr.AdjustTicks()
+    gr.Axis()
+    gr.Box()
+    gr.Label(&quot;x&quot;,&quot;x-Axis&quot;,1)
+    gr.Label(&quot;y&quot;,&quot;y-Axis&quot;,1)
+    gr.ClearLegend()
+    gr.AddLegend(&quot;Legend: &quot;+str(n),&quot;k&quot;)
+    gr.Legend()
+    gr.Plot(x,y)
+
+
+gr.Clf(BackgroundColor[0],BackgroundColor[1],BackgroundColor[2])
+gr.SetPlotFactor(1.5)
+plotpanel(gr,x,y,0)
+y.Modify(&quot;(cos(2*pi*x*10)+1.1)*1000.*rnd-501&quot;)
+plotpanel(gr,x,y,1)
+y.Modify(&quot;(cos(2*pi*x*10)+1.1)*1000.*rnd-501&quot;)
+plotpanel(gr,x,y,2)
+y.Modify(&quot;(cos(2*pi*x*10)+1.1)*1000.*rnd-501&quot;)
+plotpanel(gr,x,y,3)
+
+gr.WritePNG(&quot;test.png&quot;,&quot;Test Plot&quot;)
+
+qw = hfQtPlot()
+qw.show()
+qw.setgraph(gr)
+qw.raise_()
+</pre>
+
+<hr size="6">
+<a name="Hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MathGL-and-PyQt" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t_0060_0060Compound_0027_0027-graphics" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Hints-1"></a>
+<h2 class="section">2.7 Hints</h2>
+
+<p>In this section I have included some small hints and advices for the improving of the quality of plots and for the demonstration of some non-trivial features of MathGL library. In contrast to previous examples I showed mostly the idea but not the whole drawing function. More examples with the source code can be find at <a href="http://mathgl.sf.net/">http://mathgl.sf.net/</a> or in section <a href="mathgl_en_9.html#Samples">Samples</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t_0060_0060Compound_0027_0027-graphics">2.7.1 &ldquo;Compound&rdquo; graphics</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Two-axes-in-one-plot">2.7.2 Two axes in one plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Titles-for-the-plot">2.7.3 Titles for the plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Changing-of-the-color-range">2.7.4 Changing of the color range</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Management-of-a-point-cutting">2.7.5 Management of a point cutting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-field-visualization">2.7.6 Vector field visualization</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Several-light-sources">2.7.7 Several light sources</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutMin-and-CutMax-features">2.7.8 CutMin and CutMax features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mapping-visualization">2.7.9 Mapping visualization</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Log_002dscaled-plot">2.7.10 Log-scaled plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t_0060_0060Templates_0027_0027">2.7.11 &ldquo;Templates&rdquo;</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting-hints">2.7.12 Nonlinear fitting hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#PDE-solving-hints">2.7.13 PDE solving hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#MGL-parser-using">2.7.14 MGL parser using</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stereo-image">2.7.15 Stereo image</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="g_t_0060_0060Compound_0027_0027-graphics"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Two-axes-in-one-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Compound_0027_0027-graphics-1"></a>
+<h3 class="subsection">2.7.1 &ldquo;Compound&rdquo; graphics</h3>
+
+<p>As I noted above, MathGL functions (except the special one, like Clf()) do  not erase the previous plotting but just add the new one. It allows one to draw &ldquo;compound&rdquo; plots easily. For example, popular Matlab command <code>surfc</code> can be emulated in MathGL by 2 calls:
+</p><pre class="verbatim">    Surf(a);
+    Cont(a, 0, 7, -1);     // draw contours at z = -1
+</pre><p>Here <var>a</var> is 2-dimensional data for the plotting, <code>-1</code> is the value of z-coordinate at which the contour should be plotted (at the bottom in this example). Analogously, one can draw density plot instead of contour lines and so on.
+</p>
+<p>Another nice plot is contour lines plotted directly on the surface:
+</p><pre class="verbatim">    Light(true);       // switch on light for the surface
+    Surf(a, &quot;BbcyrR&quot;); // select 'jet' colormap for the surface
+    Cont(a, &quot;y&quot;);      // and yellow color for contours
+</pre><p>The possible difficulties arise in black&amp;white case, when the color of the surface can be close to the color of a contour line. In that case I may suggest the following code:
+</p><pre class="verbatim">    Light(true);       // switch on light for the surface
+    Surf(a, &quot;kw&quot;);     // select 'gray' colormap for the surface
+    CAxis(-1,0);       // first draw for darker surface colors
+    Cont(a, &quot;w&quot;);      // white contours
+    CAxis(0,1);        // now draw for brighter surface colors
+    Cont(a, &quot;k&quot;);      // black contours
+    CAxis(-1,1);       // return color range to original state
+</pre><p>The idea is to divide the color range on 2 parts (dark and bright) and to select the contrasting color for contour lines for each of part.
+</p>
+<p>Similarly, one can plot flow thread over density plot of vector field amplitude (this is another amusing plot from Matlab) and so on. The list of compound graphics can be prolonged but I hope that the general idea is clear.
+</p>
+<hr size="6">
+<a name="Two-axes-in-one-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t_0060_0060Compound_0027_0027-graphics" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Titles-for-the-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Two-axes-in-one-plot-1"></a>
+<h3 class="subsection">2.7.2 Two axes in one plot</h3>
+
+<p>Developing the previous hint one can make a plot with 2 or more axes. The idea is that the change of settings does not influence on the already drawn graphics. So, for 2-axes plot let us set the first axis and draw everything concerning it. Then let us setup the second axis and draw things for the second axis. The corresponding code is (see section <a href="mathgl_en_9.html#g_t2_002daxes-sample">2-axes sample</a>):
+</p><pre class="verbatim">    // set up first axis
+    Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,-1,-1));
+    Axis();            // draw it
+    Plot(y1,&quot;b&quot;);      // draw something in first axis
+    // set up second axis
+    Axis(mglPoint(0,0,0),mglPoint(1,1,1),mglPoint(1,1,1));
+    Axis();            // draw it
+    Stem(y2,&quot;r&quot;);      // draw something in second axis
+</pre><p>Note, that the first and the second axes look better if being placed in different corners. In the code presented above the first axis is placed in the left-bottom corner, and the second one is placed in the right-top corner.
+</p>
+<hr size="6">
+<a name="Titles-for-the-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Two-axes-in-one-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Changing-of-the-color-range" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Titles-for-the-plot-1"></a>
+<h3 class="subsection">2.7.3 Titles for the plot</h3>
+
+<p>The printing of nice titles for the plot is not so trivial task in general case. The problem is that the rotation and aspect change lead to different looks for titles of different subplots. So, the resulting look is not so good as it could be. The solution is simple &ndash; to print titles exactly after <code>SubPlot</code>() call and before any rotation, aspect change and so on! Analogously, the title for the whole picture looks better if it is printed first (before any <code>SubPlot()</code> calls). Alternatively you can use function <code>Title()</code> for plotting title for the picture at any time.
+</p>
+<hr size="6">
+<a name="Changing-of-the-color-range"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Titles-for-the-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Management-of-a-point-cutting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Changing-of-the-color-range-1"></a>
+<h3 class="subsection">2.7.4 Changing of the color range</h3>
+
+<p>By default (for the user comfort), the color range is set equal to z-range of the plot. However, there are different ranges. So, one can obtain amusing plot by the change of color range manually. For example, there are plots with one-color bottom (or top) or practically bi-color picture and so on.
+</p>
+<p>For example, compare 2 surfaces:
+</p><pre class="verbatim">    SubPlot(2,1,0)
+    Surf(a);           // usual coloring range
+    SubPlot(2,1,1)
+    CAxis(0,1);
+    Surf(a);           // bottom of the surface have one-colour filling
+</pre>
+<hr size="6">
+<a name="Management-of-a-point-cutting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Changing-of-the-color-range" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-field-visualization" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Management-of-a-point-cutting-1"></a>
+<h3 class="subsection">2.7.5 Management of a point cutting</h3>
+
+<p>Sometimes an experimental or numerical surface has outstanding points. Visualization of such surface will lead to the hole(s) in place of such points. The standard method of &ldquo;fighting&rdquo;  &ndash; to change data values &ndash; is not always good and is not so convenient. MathGL library has another method &ndash; to set variable <code>Cut=false</code>. As a consequence, all outstanding points will be projected on the bounding box.
+</p>
+<p>Such method is good not only for outstanding points but also for the case when one need to plane the bottom or the top of the plot. Exactly such case is demonstrated in the code:
+</p><pre class="verbatim">        mglData a(20,30);  // create some data
+        a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+        // set lower border above the data minimal value
+        Axis(mglPoint(-1,-1,0),mglPoint(1,1,1));
+        Cut = false;       // set off cutting flag
+`       Surf(a);           // and draw the surface
+</pre><p>It is an interesting result, is not it?
+</p>
+<hr size="6">
+<a name="Vector-field-visualization"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Management-of-a-point-cutting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Several-light-sources" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vector-field-visualization-1"></a>
+<h3 class="subsection">2.7.6 Vector field visualization</h3>
+
+<p>Vector field visualization (especially in 3d case <code>Vect3</code> or <code>VectC</code>) may look tangly &ndash; there are too many overlapping lines. I may suggest 2 ways to solve this problem. The first one is to change <code>MeshNum</code> for decreasing the number of hachures. The second way is to use the flow thread chart <code>Flow</code>. Unfortunately, I don&rsquo;t know any other methods to visualize 3d vector field. If you know any, e-mail me and I shall add it to MatGL.
+</p>
+<hr size="6">
+<a name="Several-light-sources"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-field-visualization" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutMin-and-CutMax-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Several-light-sources-1"></a>
+<h3 class="subsection">2.7.7 Several light sources</h3>
+
+<p>In contrast to the most of other programs, MathGL supports several (up to 10) light sources. Moreover, the color each of them can be different: white (this is usual), yellow, red, cyan, green and so on. The use of several light sources may be interesting for the highlighting of some peculiarities of the plot or just to make an amusing picture. Note, each light source can be switched on/off individually (see section <a href="mathgl_en_9.html#Several-light-sample">Several light sample</a>).
+</p>
+<hr size="6">
+<a name="CutMin-and-CutMax-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Several-light-sources" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mapping-visualization" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutMin-and-CutMax-features-1"></a>
+<h3 class="subsection">2.7.8 CutMin and CutMax features</h3>
+
+<p>MathGL library has a feature for cutting of points in some region <var>CutMin*CutMax</var>. Such an excision can be used to improve the look of the graphics. Moreover, this cutting may help to show an internal structure of an object (like <code>isocaps</code> plot in Matlab). For example, let us use the standard 3D data array and show its interior (see section <a href="mathgl_en_9.html#CutMinMax-sample">CutMinMax sample</a>).
+</p>
+<pre class="verbatim">    mglData  c(61,51,40);      // create the data
+    mglData v(10);	v.Fill(-0.5,1);
+    c.Modify(&quot;(-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1))&quot;);
+    gr-&gt;CutMin = mglPoint(0,-1,-1);     gr-&gt;CutMax = mglPoint(1,0,1.1);
+    gr-&gt;Surf3(-0.5,c,&quot;BbcyrR&quot;);
+    gr-&gt;ContF3(v,c,'x',-1,&quot;BbcyrR&quot;);    gr-&gt;ContF3(v,c,'y',-1,&quot;BbcyrR&quot;);
+    gr-&gt;ContF3(v,c,'z',0,&quot;BbcyrR&quot;);     gr-&gt;ContF3(v,c,'z',39,&quot;BbcyrR&quot;);
+</pre>
+<p>One can also exclude points from arbitrary area in space. This area defined by textual formula <code>CutOff()</code> (see section <a href="mathgl_en_3.html#Cutting">Cutting</a>). The algorithm is the same as shown for &ldquo;rectangular cutting&rdquo;.
+</p>
+<hr size="6">
+<a name="Mapping-visualization"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutMin-and-CutMax-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Log_002dscaled-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mapping-visualization-1"></a>
+<h3 class="subsection">2.7.9 Mapping visualization</h3>
+
+<p>Sometime ago I worked with mapping and have a question about its visualization. Let me remember you that mapping is some transformation rule for one set of number to another one. The 1d mapping is just an ordinary function &ndash; it takes a number and transforms it to another one. The 2d mapping (which I used) is a pair of functions which take 2 numbers and transform them to another 2 ones. Except general plots (like <code>SurfC</code>, <code>SurfA</code>) there is a special plot &ndash; Arnold diagram. It shows the area which is the result of mapping of some initial area (usually square).
+</p>
+<p>I tried to make such plot in <code>Map</code>. It shows the set of points or set of faces, which final position is the result of mapping. At this, the color gives information about their initial position and the height describes Jacobian value of the transformation. Unfortunately, it looks good only for the simplest mapping but for the  real multivalent quasi-chaotic mapping it produces a confusion. So, use it if you like :).
+</p>
+<hr size="6">
+<a name="Log_002dscaled-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mapping-visualization" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t_0060_0060Templates_0027_0027" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Log_002dscaled-plot-1"></a>
+<h3 class="subsection">2.7.10 Log-scaled plot</h3>
+
+<p>Log-scaled plot can be drawn by 2 steps. First, one should change the scale of axis by call <code>SetFunc(&quot;lg(x)&quot;, &quot;lg(y)&quot;);</code> (in this example, x- and y-axis will be log-scaled). Second, one should set logarithmic scale for axis ticks by changing variables: <code>SetTicks('x',0); SetTicks('y',0);</code>. Finally, one should check (or change) the axis ranges and origin so that their values to be positive. For example of log-log plot see section <a href="mathgl_en_9.html#Log_002dlog-sample">Log-log sample</a>.
+</p>
+<hr size="6">
+<a name="g_t_0060_0060Templates_0027_0027"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Log_002dscaled-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting-hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Templates_0027_0027-1"></a>
+<h3 class="subsection">2.7.11 &ldquo;Templates&rdquo;</h3>
+
+<p>As I have noted before, the change of settings will influence only for the further plotting commands. This allows one to create template function which will contain settings and primitive drawing for often used plots. Correspondingly one may call this template-function for drawing simplification.
+</p>
+<p>For example, let one has a set of points (experimental or numerical) and wants to compare it with theoretical law (for example, with exponent law <em>\exp(-x/2), x \in [0, 20]</em>). The template-function for this task is:
+</p><pre class="verbatim">    void template(mglGraph *gr)
+    {
+        mglData  law(100);      // create the law
+        law.Modify(&quot;exp(-10*x)&quot;);
+        gr-&gt;Axis(mglPoint(0,0.0001), mglPoint(20,1), mglPoint(0,0.0001));
+        gr-&gt;SetFunc(0,&quot;lg(y)&quot;,0);   gr-&gt;dy = 0;
+        gr-&gt;Plot(law,&quot;r2&quot;);
+        gr-&gt;Text(mglPoint(10,0.2),&quot;Theoretical law: e^x&quot;,&quot;rL&quot;);
+        gr-&gt;Label('x',&quot;x val.&quot;); gr-&gt;Label('y',&quot;y val.&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid(&quot;xy&quot;,&quot;g;&quot;); gr-&gt;Box();
+    }
+</pre><p>At this, one will only write a few lines for data drawing:
+</p><pre class="verbatim">    template(gr);     // apply settings and default drawing from template
+    mglData dat(&quot;fname.dat&quot;); // load the data
+    // and draw it (suppose that data file have 2 columns)
+    gr-&gt;Plot(dat.SubData(0),dat.SubData(1),&quot;bx &quot;);
+</pre><p>A template-function can also contain settings for font, transparency, lightning, color scheme and so on.
+</p>
+<hr size="6">
+<a name="Nonlinear-fitting-hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t_0060_0060Templates_0027_0027" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#PDE-solving-hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-hints-1"></a>
+<h3 class="subsection">2.7.12 Nonlinear fitting hints</h3>
+
+<p>Nonlinear fitting is rather simple. All that you need is the data to fit, the approximation formula and the list of coefficients to fit (better with its initial guess values). Let me demonstrate it on the following simple example (see section <a href="mathgl_en_9.html#Fitting-sample">Fitting sample</a>). First, let us use sin function with some random noise:
+</p><pre class="verbatim">    mglData rnd(100), idl(50); //data to be fitted and ideal data
+    rnd.Modify(&quot;0.4*rnd+0.1+sin(4*pi*x)&quot;);
+    idl.Modify(&quot;0.3+sin(4*pi*x)&quot;);
+</pre><p>and plot it to see that data we will fit
+</p><pre class="verbatim">    gr-&gt;Axis(mglPoint(-1,-2), mglPoint(1,2));
+    gr-&gt;Plot(rnd, &quot;. &quot;); gr-&gt;Plot(idl, &quot;b&quot;);
+    gr-&gt;Box();
+    gr-&gt;Text(mglPoint(0,2.2), &quot;initial: y = 0.3+sin(2\pi x)&quot;, &quot;C:b&quot;, -1);
+</pre>
+<p>The next step is the fitting itself. For that let me specify an initial values <var>ini</var> for coefficients &lsquo;<samp>abc</samp>&rsquo; and do the fitting for approximation formula &lsquo;<samp>a+b*sin(c*x)</samp>&rsquo;
+</p><pre class="verbatim">    mglData res;   // The data for found formula
+    float ini[3] = {1, 1, 3};
+    gr-&gt;Fit(res, rnd, &quot;a+b*sin(c*x)&quot;, &quot;abc&quot;, ini);
+</pre><p>Now display it
+</p><pre class="verbatim">    gr-&gt;Plot(res, &quot;r&quot;);
+    gr-&gt;Text(mglPoint(-1,-1.3), &quot;fitted:&quot;, &quot;L:r&quot;, -1);
+    gr-&gt;PutsFit(mglPoint(0,-1.8), &quot;y = &quot;, &quot;C:r&quot;, -1);
+</pre>
+<p>NOTE! the fitting results may have strong dependence on initial values for coefficients due to algorithm features. The problem is that in general case there are several local &quot;optimums&quot; for coefficients and the program returns only first found one! There are no guaranties that it will be the best. Try for example to set <code>ini[3] = {0, 0, 0}</code> in the code above.
+</p>
+<hr size="6">
+<a name="PDE-solving-hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting-hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-parser-using" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="PDE-solving-hints-1"></a>
+<h3 class="subsection">2.7.13 PDE solving hints</h3>
+
+<p>Solving of Partial Differential Equations (PDE, including beam tracing) and ray tracing (or finding particle trajectory) are more or less common task. So, MathGL have several functions for that. There are <code>mglRay()</code> for ray tracing, <code>mglPDE()</code> for PDE solving, <code>mglQO2d()</code> for beam tracing in 2D case (see section <a href="mathgl_en_6.html#Global-functions">Global functions</a>). Note, that these functions take &ldquo;Hamiltonian&rdquo; or equations as string values. And I don&rsquo;t plan now to allow one to use user-defined functions. There are 2 reasons: the complexity of corresponding interface; and the basic nature of used methods which are good for samples but may not good for serious scientific calculations.
+</p>
+<p>The ray tracing can be done by <code>mglRay()</code> function. Really ray tracing equation is Hamiltonian equation for 3D space. So, the function can be also used for finding a particle trajectory (i.e. solve Hamiltonian ODE) for 1D, 2D or 3D cases. The function have a set of arguments. First of all, it is Hamiltonian which defined the media (or the equation) you are planning to use. The Hamiltonian is defined by string which may depend on coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, time &lsquo;<samp>t</samp>&rsquo; (for particle dynamics) and momentums &lsquo;<samp>p</samp>&rsquo;=<em>p_x</em>, &lsquo;<samp>q</samp>&rsquo;=<em>p_y</em>, &lsquo;<samp>v</samp>&rsquo;=<em>p_z</em>. Next, you have to define the initial conditions for coordinates and momentums at &lsquo;<samp>t</samp>&rsquo;=0 and set the integrations step (default is 0.1) and its duration (default is 10). The Runge-Kutta method of 4-th order is used for integration.
+</p><pre class="verbatim">    mglData r,a,re(128),im(128);
+    r = mglRay(&quot;p^2+q^2-x-1&quot;, mglPoint(-0.7, -1), mglPoint(0, 0.5));
+    gr-&gt;Plot(r.SubData(0), r.SubData(1));
+</pre><p>This example calculate the reflection from linear layer (media with Hamiltonian &lsquo;<samp>p^2+q^2-x-1</samp>&rsquo;=<em>p_x^2+p_y^2-x-1</em>). This is parabolic curve. The resulting array have 7 columns which contain data for {x,y,z,p,q,v,t}.
+</p>
+<p>The solution of PDE is a bit more complicated. As previous you have to specify the equation as pseudo-differential operator <em>\hat H(x, \nabla)</em> which is called sometime as &ldquo;Hamiltonian&rdquo; (for example, in beam tracing). As previously, it is defined by string which may depend on coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; (but not time!), momentums &lsquo;<samp>p</samp>&rsquo;=<em>(d/dx)/i k_0</em>, &lsquo;<samp>q</samp>&rsquo;=<em>(d/dy)/i k_0</em> and field amplitude &lsquo;<samp>u</samp>&rsquo;=<em>|u|</em>. The evolutionary coordinate is &lsquo;<samp>z</samp>&rsquo; in all cases. So that, the equation look like <em>du/dz = ik_0 H(x,y,\hat p, \hat q, |u|)[u]</em>. Dependence on field amplitude &lsquo;<samp>u</samp>&rsquo;=<em>|u|</em> allows one to solve nonlinear problems too. For example, for nonlinear Shrodinger equation you may set <code>ham=&quot;p^2 + q^2 - u^2&quot;</code>. Also you may specify imaginary part for wave absorption, like <code>ham = &quot;p^2 + i*x*(x&gt;0)&quot;</code>, but only if dependence on variable &lsquo;<samp>i</samp>&rsquo; is linear (i.e. <em>H = Hre+i*Him</em>).
+</p>
+<p>Next step is specifing the initial conditions at &lsquo;<samp>z</samp>&rsquo;=<code>Min.z</code>. The function need 2 arrays for real and for imaginary part. Note, that coordinates x,y,z are supposed to be in specified range [Min, Max]. So, the data arrays should have corresponding scales. Finally, you may set the integration step and paramter k0=<em>k_0</em>. Also keep in mind, that internally the 2 times large box is used (for suppressing numerical reflection from boundaries) and the equation should well defined even in this extended range.
+</p>
+<p>Final comment is concerning the possible form of pseudo-differential operator <em>H</em>. At this moment, simplified form of operator <em>H</em> is supported &ndash; all &ldquo;mixed&rdquo; terms (like &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) are excluded. For example, in 2D case this operator is effectively <em>H = f(p,z) + g(x,z,u)</em>. However commutable combinations (like &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy) are allowed for 3D case. 
+</p>
+<p>So, for example let solve the equation for beam deflected from linear layer and absorbed later. The operator will have the form &lsquo;<samp>&quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;</samp>&rsquo; that correspond to equation <em>ik_0 \partial_z u + \Delta u + x \cdot u + i (x+z)/2 \cdot u = 0</em>. This is typical equation for Electron Cyclotron (EC) absorption in magnetized plasmas. For initial conditions let me select the beam with plane phase front <em>exp(-48*(x+0.7)^2)</em>. The corresponding code looks like this (see section <a href="mathgl_en_9.html#PDE-sample">PDE sample</a>):
+</p><pre class="verbatim">    mglData a,re(128),im(128);
+    re.Fill(&quot;exp(-48*(x+0.7)^2)&quot;, gr-&gt;Min, gr-&gt;Max);
+    a = mglPDE(&quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;, re, im,
+                gr-&gt;Min, gr-&gt;Max, 0.01, 30);
+    a.Transpose(&quot;yxz&quot;);
+    gr-&gt;CAxis(0, 1);
+    gr-&gt;Dens(a,&quot;wyrRk&quot;);
+</pre>
+<p>The last example is example of beam tracing. Beam tracing equation is special kind of PDE equation written in coordinates accompanied to a ray. Generally this is the same parameters and limitation as for PDE solving but the coordinates are defined by the ray and by parameter of grid width <var>w</var> in direction transverse the ray. So, you don&rsquo;t need to specify the range of coordinates. <strong>BUT</strong> there is limitation. The accompanied coordinates are well defined only for smooth enough rays, i.e. then the ray curvature <em>K</em> (which is defined as <em>1/K^2 = (|\ddot r|^2 |\dot r|^2 - (\ddot r, \dot r)^2)/|\dot r|^6</em>) is much large then the grid width: <em>K&gt;&gt;w</em>. So, you may receive incorrect results if this condition will be broken.
+</p>
+<p>You may use following code for obtaining the same solution as in previous example:
+</p><pre class="verbatim">    mglData r, xx, yy, a, im(128), re(128);
+    const char *ham = &quot;p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)&quot;;
+    r = mglRay(ham, mglPoint(-0.7, -1), mglPoint(0, 0.5), 0.02, 2);
+    // now start beam tracing
+    re.Fill(&quot;exp(-48*x^2)&quot;, gr-&gt;Min, gr-&gt;Max);
+    a = mglQO2d(ham, re, im, r, 1, 30, &amp;xx, &amp;yy);
+    gr-&gt;CAxis(0, 1);
+    gr-&gt;Dens(xx, yy, a, &quot;wyrRk&quot;);
+</pre>
+
+<hr size="6">
+<a name="MGL-parser-using"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#PDE-solving-hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stereo-image" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MGL-parser-using-1"></a>
+<h3 class="subsection">2.7.14 MGL parser using</h3>
+
+<p>Sometimes you may prefer to use MGL scripts in yours code. It is simpler (especially in comparison with C/Fortran interfaces) and fast way to plot the data with annotations, labels and so on. Class <code>mglParse</code> (see section <a href="mathgl_en_7.html#mglParse-class">mglParse class</a> parse MGL scripts in C++. It have also the corresponding interface for C/Fortran.
+</p>
+<p>The key function here is <code>mglParse::Parse()</code> (or <code>mgl_parse()</code> for C/Fortran) which execute one command per string. At this the detailed information about the possible errors or warnings is passed as function value. Or you may execute the whole script as long string with lines separated by &lsquo;<samp>\n</samp>&rsquo;. Functions <code>mglParse::Execute()</code> and <code>mgl_parse_text()</code> perform it. Also you may set the values of paramters &lsquo;<samp>$0</samp>&rsquo;...&lsquo;<samp>$9</samp>&rsquo; for the script by functions <code>mglParse::AddParam()</code> or <code>mgl_add_param()</code>, allow/disable picture resizing, check &ldquo;once&rdquo; status and so on. The usage is rather stright-forward.
+</p>
+<p>The only non-obvious thing is data transition between script and yours program. There are 2 stages: add or find variable; and set data to variable. In C++ you may use functions <code>mglParse::AddVar()</code> and <code>mglParse::FindVar()</code> which return pointer to <code>mglVar</code> structure. This structure contain data itself, the variable name and callback function which will be called if variable destroied. Last feature allows you to control the presence of the variable and, for example, close a window with data if this variable is destroyed. In C/Fortran the corresponding functions are <code>mgl_add_var()</code>, <code>mgl_find_var()</code>. But these functions return the data array only. Note, you <strong>must not delete or free</strong> the data obtained from these functions!
+</p>
+<p>So, some simple example at the end. Here I define a data array, create variable, put data into it and plot it. The C++ code looks like this:
+</p><pre class="verbatim">    float a[100];   // let a_i = sin(4*pi*x), x=0...1
+    for(int i=0;i&lt;100;i++)  a[i]=sin(4*M_PI*i/99);
+    mglParse *parser = new mglParse;
+    mglData &amp;d = (parser-&gt;AddVar(&quot;dat&quot;))-&gt;d;
+    d.Set(a,100); // set data to variable
+    parser-&gt;Execute(gr, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+    // you may break script at any line do something 
+    // and continue after that
+    parser-&gt;Execute(gr, &quot;xlabel 'x'\nylabel 'y'&quot;);
+    // also you may use cycles or conditions in script
+    parser-&gt;Execute(gr, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+    gr-&gt;WritePNG(&quot;test.png&quot;);   // don't forgot to save picture
+</pre><p>The code in C/Fortran looks practically the same:
+</p><pre class="verbatim">    float a[100];   // let a_i = sin(4*pi*x), x=0...1
+    int i;
+    for(i=0;i&lt;100;i++)  a[i]=sin(4*M_PI*i/99);
+    HMPR parser = mgl_create_parser();
+    HMDT d = mgl_add_var(parser, &quot;dat&quot;);
+    mgl_data_set_float(d,a,100,1,1);    // set data to variable
+    mgl_parse_text(gr, parser, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+    // you may break script at any line do something 
+    // and continue after that
+    mgl_parse_text(gr, parser, &quot;xlabel 'x'\nylabel 'y'&quot;);
+    // also you may use cycles or conditions in script
+    mgl_parse_text(gr, parser, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+    mgl_write_png(gr, &quot;test.png&quot;, &quot;&quot;);  // don't forgot to save picture
+</pre>
+<hr size="6">
+<a name="Stereo-image"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-parser-using" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stereo-image-1"></a>
+<h3 class="subsection">2.7.15 Stereo image</h3>
+
+<p>One can easily create stereo image in MathGL. Stereo image can be produced by making two subplots with slightly different rotation angles. The corresponding code looks like this (see section <a href="mathgl_en_9.html#Stereo-image-sample">Stereo image sample</a>):
+</p><pre class="verbatim">    gr-&gt;SubPlot(2,1,0);     // left image
+    gr-&gt;Rotate(40,60+3);
+    // draw something here
+    
+    gr-&gt;SubPlot(2,1,1);     // right image
+    gr-&gt;Rotate(40,60-3);
+    // draw the same here
+</pre>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_en.html/mathgl_en_3.html b/texinfo/mathgl_en.html/mathgl_en_3.html
new file mode 100644
index 0000000..de9fc46
--- /dev/null
+++ b/texinfo/mathgl_en.html/mathgl_en_3.html
@@ -0,0 +1,4857 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: 3. MathGL core</title>
+
+<meta name="description" content="MathGL 1.11: 3. MathGL core">
+<meta name="keywords" content="MathGL 1.11: 3. MathGL core">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="MathGL-core"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_2.html#Stereo-image" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_2.html#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL-core-1"></a>
+<h1 class="chapter">3. MathGL core</h1>
+<a name="index-mglGraph"></a>
+
+<p>The core of MathGL is <strong>mglGraph</strong> class defined in <code>#include &lt;mgl/mgl.h&gt;</code>. It contains a lot of plotting functions for 1D, 2D and 3D plots. It also encapsulates parameters for axes drawing. Moreover an arbitrary coordinate transformation may be used for each axis. All plotting functions use data encapsulated in mglData class (see section <a href="mathgl_en_6.html#mglData-class">mglData class</a>) that allows to check sizes of used arrays easily. Also it have many functions for data handling: modify it by formulas, find momentums and distribution (histogram), apply operator (differentiate, integrate, transpose, Fourier and so on), change data sizes (interpolate, squeeze, crop and so on). Additional information about colors, fonts, formula parsing can be found in <a href="mathgl_en_7.html#Other-classes">Other classes</a>.
+</p>
+<p>Note that class mglGraph is abstract and contains only interface functions for plotting but does not make plot by itself. For plotting in specific device (screen, memory or file) one should use derived classes: mglGraphZB &ndash; for bitmap picture in file or in memory; mglGraphPS &ndash; for vector PostScript picture; mglGraphGL &ndash; for drawing using OpenGL, or for GLUT windows interface; and so on, see section <a href="mathgl_en_4.html#Plotter-classes">Plotter classes</a>. If you want not only to create a picture but to view it in a window/widget or to run animation and so on then look at <a href="mathgl_en_5.html#Widget-classes">Widget classes</a>.
+</p>
+<p>There is a C++ wrapper class which have the same name <code>mglGraph</code> and defined in <code>mgl/mgl_graph.h</code>. You can use this class even with non-GNU compilers (i.e. in Borland or Microsoft one), but you <strong>should not include</strong> any <code>mgl/mgl.h</code> or <code>mgl/mgl_parse.h</code> headers in this case! This wrapper class also used as base for all SWIG-based interfaces (Python, Octave and so on). So, later it is refered as &lsquo;<samp>Python</samp>&rsquo; class for distinguish from original &lsquo;<samp>C++</samp>&rsquo; class defined in <code>mgl/mgl.h</code> .
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Graphics-setup">3.1 Graphics setup</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-settings">3.2 Axis settings</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transformation-matrix">3.3 Transformation matrix</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Export-to-file">3.4 Export to file</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Primitives-drawing">3.5 Primitives drawing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing">3.6 Text printing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-Colorbar">3.7 Axis and Colorbar</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Legend">3.8 Legend</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting">3.9 1D plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting">3.10 2D plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting">3.11 3D plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting">3.12 Dual plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-fields">3.13 Vector fields</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-plotting">3.14 Other plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting">3.15 Nonlinear fitting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-distributions">3.16 Data distributions</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Frames_002fAnimation">3.17 Frames/Animation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#IDTF-functions">3.18 IDTF functions</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Graphics-setup"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MathGL-core" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Graphics-setup-1"></a>
+<h2 class="section">3.1 Graphics setup</h2>
+<a name="index-MathGL-setup"></a>
+
+<p>Functions and variables in this group influences on overall graphics appearance. So all of them should be placed <em>before</em> any actual plotting function calls.
+</p>
+<dl>
+<dt><a name="index-DefaultPlotParam"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DefaultPlotParam</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fset_005fdef_005fparam"></a><u>C function:</u> <code>void</code> <b>mgl_set_def_param</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Restore initial values for all of parameters except described in <a href="#Zooming">Zooming</a>.
+</p></dd></dl>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Transparency">3.1.1 Transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lighting">3.1.2 Lighting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fog">3.1.3 Fog</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Default-sizes">3.1.4 Default sizes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Zooming">3.1.5 Zooming</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cutting">3.1.6 Cutting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-settings">3.1.7 Font settings</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Palette-and-colors">3.1.8 Pallete and colors</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Error-handling">3.1.9 Error handling</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-settings">3.1.10 Other settings</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Graphics-setup" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lighting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transparency-1"></a>
+<h3 class="subsection">3.1.1 Transparency</h3>
+<a name="index-Alpha"></a>
+<a name="index-SetAlphaDef"></a>
+<a name="index-SetTransparent"></a>
+<a name="index-SetTranspType"></a>
+
+<p>There are several functions and variables for setup transparency. The general function is <code>Alpha()</code> which switch on/off the transparency for overall plot. It influence only for graphics which created after <code>Alpha()</code> call (with one exception, mglGraphGL). Function <code>SetAlphaDef</code> specify the default value of alpha-channel. You may switch off transparency of selected plot by function <code>SetTransparent</code>. Finally, function <code>SetTranspType</code> set the kind of transparency. See section <a href="mathgl_en_9.html#Transparent-surface-sample">Transparent surface sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Alpha-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>bool</code> <b>Alpha</b><i> (<code>bool</code> enable)</i></dt>
+<dt><a name="index-mgl_005fset_005falpha"></a><u>C function:</u> <code>void</code> <b>mgl_set_alpha</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Sets the transparency on/off and returns previous value of transparency. It is recommended to call this function before any plotting command. In any case it must be called before <code>Finish()</code> function if the last is used. Default value is transparency off. Unfortunately it switches the transparency on/off for all subplots. Use <code>SetTransparent(false)</code> in particular plot to disable its transparency.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetAlphaDef-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetAlphaDef</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005falpha_005fdefault"></a><u>C function:</u> <code>void</code> <b>mgl_set_alpha_default</b><i> (<code>HMGL</code> gr, <code>float</code> alpha)</i></dt>
+<dd><p>Sets default value of alpha channel (transparency) for all plotting functions. Note, that OpenGL (mglGraphGL) has incorrect drawing for large values of alpha in case of several overlapping surfaces.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTransparent-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTransparent</b><i> (<code>bool</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005ftransp"></a><u>C function:</u> <code>void</code> <b>mgl_set_transp</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Flag which temporary switches transparency on/off for the plot. This is the same as <code>Alpha(val)</code> but more correctly work in mglGraphGL class.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTranspType-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTranspType</b><i> (<code>int</code> type)</i></dt>
+<dt><a name="index-mgl_005fset_005ftransp_005ftype"></a><u>C function:</u> <code>void</code> <b>mgl_set_transp_type</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Set the transparency type. Normal transparency (&lsquo;<samp>0</samp>&rsquo;) &ndash; below things is less visible than upper ones. It does not look well in OpenGL mode (mglGraphGL) for several surfaces. Glass-like transparency (&lsquo;<samp>1</samp>&rsquo;) &ndash; below and upper things are commutable and just decrease intensity of light by RGB channel. Lamp-like transparency (&lsquo;<samp>2</samp>&rsquo;) &ndash; below and upper things are commutable and are the source of some additional light. I recommend to set <code>SetAlphaDef(0.3)</code> or less for lamp-like transparency. See section <a href="mathgl_en_9.html#Normal-transparency">Normal transparency</a>, <a href="mathgl_en_9.html#Glass_002dlike-transparency">Glass-like transparency</a>, <a href="mathgl_en_9.html#Lamp_002dlike-transparency">Lamp-like transparency</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AlphaDef-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>float</code> <b>AlphaDef</b></dt>
+<dd><p>Default value of alpha channel. See <code>SetAlphaDef()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Transparent-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>bool</code> <b>Transparent</b></dt>
+<dd><p>Flag which temporary switches transparency on/off for the plot. See <code>SetTransparent()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TranspType-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>int</code> <b>TranspType</b></dt>
+<dd><p>This variable set the transparency type. See <code>SetTranspType()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Lighting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fog" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Lighting-1"></a>
+<h3 class="subsection">3.1.2 Lighting</h3>
+<a name="index-Light"></a>
+<a name="index-Ambient"></a>
+<a name="index-AddLight"></a>
+
+<p>There are several functions for setup lighting. The general function is <code>Light(bool)</code> which switch on/off the lighting for overall plot. It influence only for graphics which created after <code>Light()</code> call (with one exception, mglGraphGL). Generally MathGL support up to 10 independent light sources. But in OpenGL mode only 8 of light sources is used due to OpenGL limitations. The position, color, brightness of each light source can be set separately. By default only one light source is active. It is source number <code>0</code> with white color, located at top of the plot.
+</p>
+<dl>
+<dt><a name="index-Light-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>bool</code> <b>Light</b><i> (<code>bool</code> enable)</i></dt>
+<dt><a name="index-mgl_005fset_005flight"></a><u>C function:</u> <code>void</code> <b>mgl_set_light</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Sets the using of light on/off for overall plot. Function returns previous value of lighting. Default value is lightning off.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Light-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Light</b><i> (<code>int</code> n, <code>bool</code> enable)</i></dt>
+<dt><a name="index-mgl_005fset_005flight_005fn"></a><u>C function:</u> <code>void</code> <b>mgl_set_light_n</b><i> (<code>HMGL</code> gr, <code>int</code> n, <code>int</code> enable)</i></dt>
+<dd><p>Switch on/off <var>n</var>-th light source separately.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AddLight-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>AddLight</b><i> (<code>int</code> n, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> c=<code>'w'</code>)</i></dt>
+<dt><a name="index-Light-3"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Light</b><i> (<code>int</code> n, <code>mglPoint</code> p, <code>char</code> c=<code>'w'</code>, <code>float</code> bright=<code>0.5</code>, <code>bool</code> infty=<code>true</code>)</i></dt>
+<dt><a name="index-Light-4"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Light</b><i> (<code>int</code> n, <code>mglPoint</code> p, <code>mglColor</code> c, <code>float</code> bright=<code>0.5</code>, <code>bool</code> infty=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fadd_005flight"></a><u>C function:</u> <code>void</code> <b>mgl_add_light</b><i> (<code>HMGL</code> gr, <code>int</code> n, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> c)</i></dt>
+<dd><p>The function adds a light source with identification <var>n</var> at position <var>p</var> with color <var>c</var> and with brightness <var>bright</var> (which must be in range [0,1]). Flag <var>infty</var>=<code>true</code> puts the source to infinite distance (for the faster drawing).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Ambient-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Ambient</b><i> (<code>float</code> bright=<code>0.5</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fambbr"></a><u>C function:</u> <code>void</code> <b>mgl_set_ambbr</b><i> (<code>HMGL</code> gr, <code>float</code> bright)</i></dt>
+<dd><p>Sets the brightness of ambient light. The value should be in range [0,1].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fog"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lighting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Default-sizes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fog-1"></a>
+<h3 class="subsection">3.1.3 Fog</h3>
+<a name="index-Fog"></a>
+
+<dl>
+<dt><a name="index-Fog-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Fog</b><i> (<code>float</code> d, <code>float</code> dz=<code>0.25</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005ffog"></a><u>C function:</u> <code>void</code> <b>mgl_set_fog</b><i> (<code>HMGL</code> gr, <code>float</code> d, <code>float</code> dz)</i></dt>
+<dd><p>Function imitate a fog in the plot. Fog start from relative distance <var>dz</var> from view point and its density growths exponentially in depth. So that the fog influence is determined by law ~ 1-exp(-<em>d*z</em>). Here <em>z</em> is normalized to 1 depth of the plot. If value <var>d</var>=<code>0</code> then the fog is absent. See section <a href="mathgl_en_9.html#Surface-in-fog-sample">Surface in fog sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Default-sizes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fog" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Zooming" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Default-sizes-1"></a>
+<h3 class="subsection">3.1.4 Default sizes</h3>
+<a name="index-SetTickLen"></a>
+<a name="index-SetTickStl"></a>
+<a name="index-SetBarWidth"></a>
+<a name="index-SetMarkSize"></a>
+<a name="index-SetArrowSize"></a>
+<a name="index-SetBaseLineWidth"></a>
+
+<p>These variables control the default (initial) values for most graphics parameters including sizes of markers, arrows, linewidth and so on. As any other settings these ones will influence only on plots created after the settings change.
+</p>
+<dl>
+<dt><a name="index-SetBarWidth-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetBarWidth</b><i> ( <code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fbar_005fwidth"></a><u>C function:</u> <code>void</code> <b>mgl_set_bar_width</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Sets relative width of rectangles in Bars, Barh, BoxPlot (see section <a href="#Bars">Bars</a>). Default value is <code>0.7</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetMarkSize-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetMarkSize</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fmark_005fsize"></a><u>C function:</u> <code>void</code> <b>mgl_set_mark_size</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Sets size of marks for <a href="#g_t1D-plotting">1D plotting</a>. Default value is <code>0.02</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetArrowSize-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetArrowSize</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005farrow_005fsize"></a><u>C function:</u> <code>void</code> <b>mgl_set_arrow_size</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Sets size of arrows for <a href="#g_t1D-plotting">1D plotting</a>, lines and curves (see section <a href="#Primitives-drawing">Primitives drawing</a>). Default value is <code>0.03</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetBaseLineWidth-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetBaseLineWidth</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fbase_005fline_005fwidth"></a><u>C function:</u> <code>void</code> <b>mgl_set_base_line_width</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Defines the base width for all lines. The value &lt;1 is ignored. For values &gt; 1 the real line width is result of multiplication of specified line width and the value of <var>BaseLineWidth</var>. Increase of this variables is actual for large bitmap pictures. Default value is <code>1</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTickLen-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTickLen</b><i> (<code>float</code> val, <code>float</code> stt=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005ftick_005flen"></a><u>C function:</u> <code>void</code> <b>mgl_set_tick_len</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>float</code> stt)</i></dt>
+<dd><p>The relative length of axis ticks. Default value is <code>0.1</code>. Parameter <var>stt</var>&gt;0 set relative length of subticks which is in <code>sqrt(1+stt)</code> times smaller.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTickStl-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTickStl</b><i> (<code>const char *</code>stl, <code>const char *</code>sub=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005ftick_005fstl"></a><u>C function:</u> <code>void</code> <b>mgl_set_tick_stl</b><i> (<code>HMGL</code> gr, <code>const char *</code>stl, <code>const char *</code>sub)</i></dt>
+<dd><p>The line style of axis ticks (<var>stl</var>) and subticks (<var>sub</var>). If <var>stl</var> is empty then default style is used (&lsquo;<samp>k</samp>&rsquo; or &lsquo;<samp>w</samp>&rsquo; depending on transparency type). If <var>sub</var> is empty then ticks style is used (i.e. <var>stl</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-BarWidth-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>float</code> <b>BarWidth</b></dt>
+<dd><p>Relative width of rectangles. See <code>SetBarWidth()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-MarkSize-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>float</code> <b>MarkSize</b></dt>
+<dd><p>The size of marks. See <code>SetMarkSize()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ArrowSize-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>float</code> <b>ArrowSize</b></dt>
+<dd><p>The size of arrows. See <code>SetArrowSize()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-BaseLineWidth-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>float</code> <b>BaseLineWidth</b></dt>
+<dd><p>The variable define the base width for all lines. See <code>SetBaseLineWidth()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Zooming"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Default-sizes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cutting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Zooming-1"></a>
+<h3 class="subsection">3.1.5 Zooming</h3>
+<a name="index-SetPlotFactor"></a>
+<a name="index-Zoom"></a>
+
+<p>These variables and functions control the overall zooming of the picture (see Zoom()) or the sub-picture (see PlotFactor). Normally you can use these variables and functions for removing &ldquo;white&rdquo; spaces around a plot.
+</p>
+<dl>
+<dt><a name="index-SetPlotFactor-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetPlotFactor</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fplotfactor"></a><u>C function:</u> <code>void</code> <b>mgl_set_plotfactor</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Sets the factor of plot size. It is not recommended to set it lower then 1.5. This is some analogue of function Zoom() but applied not to overall image but for each InPlot. Use negative value or zero to enable automatic <code>PlotFactor</code> selection.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Zoom-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Zoom</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> x2, <code>float</code> y2)</i></dt>
+<dt><a name="index-mgl_005fset_005fzoom"></a><u>C function:</u> <code>void</code> <b>mgl_set_zoom</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> x2, <code>float</code> y2)</i></dt>
+<dd><p>The function changes the scale of graphics that correspond to zoom in/out of the picture. After function call the current plot will be cleared and further the picture will contain plotting from its part [x1,x2]*[y1,y2]. Here picture coordinates <var>x1</var>, <var>x2</var>, <var>y1</var>, <var>y2</var> changes from 0 to 1. Attention! this settings can not be overwritten by any other functions. Use <code>Zoom(0,0,1,1)</code> to return default view.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-PlotFactor-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>float</code> <b>PlotFactor</b></dt>
+<dd><p>The factor of plot size. See <code>SetPlotFactor()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AutoPlotFactor-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>bool</code> <b>AutoPlotFactor</b></dt>
+<dd><p>Switch on/off automatic change of PlotFactor variable during plot rotation. See <code>SetPlotFactor()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cutting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Zooming" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cutting-1"></a>
+<h3 class="subsection">3.1.6 Cutting</h3>
+<a name="index-SetCut"></a>
+<a name="index-SetCutBox"></a>
+<a name="index-CutOff"></a>
+
+<p>These variables and functions set the condition when the points are excluded (cutted) from the drawing. Note, that a point with NAN value(s) of coordinate or amplitude will be automatically excluded from the drawing.
+</p>
+<dl>
+<dt><a name="index-SetCut-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCut</b><i> (<code>bool</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fcut"></a><u>C function:</u> <code>void</code> <b>mgl_set_cut</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+<dd><p>Flag which determines how points outside bounding box are drawn. If it is <code>true</code> then points are excluded from plot (it is default) otherwise the points are projected to edges of bounding box.
+</p></dd></dl>
+
+<div class="float">
+<img src="cut.png" alt="cut">
+
+</div><p><strong>Left figure is drawn with parameter <code>Cut=false</code>. Right one is drawn with parameter <code>Cut=true</code>.
+</strong>
+</p>
+<dl>
+<dt><a name="index-SetCutBox-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCutBox</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2)</i></dt>
+<dt><a name="index-mgl_005fset_005fcut_005fbox"></a><u>C function:</u> <code>void</code> <b>mgl_set_cut_box</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2)</i></dt>
+<dd><p>Lower and upper edge of the box in which never points are drawn. If both edges are the same (the variables are equal) then the cutting box is empty. See section <a href="mathgl_en_9.html#CutMinMax-sample">CutMinMax sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CutOff-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>CutOff</b><i> (<code>const char *</code>EqC)</i></dt>
+<dt><a name="index-mgl_005fset_005fcutoff"></a><u>C function:</u> <code>void</code> <b>mgl_set_cutoff</b><i> (<code>HMGL</code> gr, <code>const char *</code>EqC)</i></dt>
+<dd><p>Sets the cutting off condition by formula <var>EqC</var>. This condition determine will point be plotted or not. If value of formula is nonzero then point is omitted, otherwise it plotted. Set argument as <code>&quot;&quot;</code> to disable cutting off condition. See section <a href="mathgl_en_9.html#CutOff-sample">CutOff sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cut-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>bool</code> <b>Cut</b></dt>
+<dd><p>Flag which determines how points outside bounding box are drawn. See <code>SetCut()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CutMin_002c-CutMax-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>mglPoint</code> <b>CutMin, CutMax</b></dt>
+<dd><p>Lower and upper edge of the box in which never points are drawn. See <code>SetCutBox()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Font-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cutting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Palette-and-colors" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Font-settings-1"></a>
+<h3 class="subsection">3.1.7 Font settings</h3>
+<a name="index-SetFontSize"></a>
+<a name="index-SetFontDef"></a>
+<a name="index-SetRotatedText"></a>
+<a name="index-SetFontSizePT"></a>
+<a name="index-SetFontSizeCM"></a>
+<a name="index-SetFontSizeIN"></a>
+<a name="index-SetFont"></a>
+<a name="index-GetFont"></a>
+<a name="index-LoadFont"></a>
+<a name="index-CopyFont"></a>
+<a name="index-RestoreFont"></a>
+
+<dl>
+<dt><a name="index-SetFontSize-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetFontSize</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005ffont_005fsize"></a><u>C function:</u> <code>void</code> <b>mgl_set_font_size</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Sets the size of font for tick and axis labels. Default font size of axis labels is 1.4 times large than for tick labels.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetFontDef-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetFontDef</b><i> (<code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005fset_005ffont_005fdef"></a><u>C function:</u> <code>void</code> <b>mgl_set_font_def</b><i> (<code>HMGL</code> gr, <code>const char *</code> val)</i></dt>
+<dd><p>Sets the font specification (see section <a href="#Text-printing">Text printing</a>). Default is &lsquo;<samp>rC</samp>&rsquo; &ndash; Roman font centering.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetRotatedText-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetRotatedText</b><i> (<code>bool</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005frotated_005ftext"></a><u>C function:</u> <code>void</code> <b>mgl_set_rotated_text</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+<dd><p>Sets to use or not text rotation along axis.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-LoadFont-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>LoadFont</b><i> (<code>const char *</code>name, <code>const char *</code>path=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fload_005ffont"></a><u>C function:</u> <code>void</code> <b>mgl_load_font</b><i> (<code>HMGL</code> gr, <code>const char *</code>name, <code>const char *</code>path)</i></dt>
+<dd><p>Load font typeface from <var>path</var>/<var>name</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CopyFont-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>CopyFont</b><i> (<code>mglGraph *</code> from)</i></dt>
+<dt><a name="index-mgl_005fcopy_005ffont"></a><u>C function:</u> <code>void</code> <b>mgl_copy_font</b><i> (<code>HMGL</code> gr, <code>HMGL</code> gr_from)</i></dt>
+<dd><p>Copy font data from another <code>mglGraph</code> object.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-RestoreFont-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>RestoreFont</b><i> ()</i></dt>
+<dt><a name="index-mgl_005frestore_005ffont"></a><u>C function:</u> <code>void</code> <b>mgl_restore_font</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Restore font data to default typeface.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetFontSizePT-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>SetFontSizePT</b><i> (<code>float</code> cm, <code>int</code> dpi=<code>72</code>)</i></dt>
+<dd><p>Set FontSize by size in pt and picture DPI (default is 16 pt for dpi=72).
+</p></dd></dl>
+<dl>
+<dt><a name="index-SetFontSizeCM-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>inline void</code> <b>SetFontSizeCM</b><i> (<code>float</code> cm, <code>int</code> dpi=<code>72</code>)</i></dt>
+<dd><p>Set FontSize by size in centimeters and picture DPI (default is 0.56 cm = 16 pt).
+</p></dd></dl>
+<dl>
+<dt><a name="index-SetFontSizeIN-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>inline void</code> <b>SetFontSizeIN</b><i> (<code>float</code> cm, <code>int</code> dpi=<code>72</code>)</i></dt>
+<dd><p>Set FontSize by size in inch and picture DPI (default is 0.22 in = 16 pt).
+</p></dd></dl>
+<dl>
+<dt><a name="index-SetFont-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>SetFont</b><i> (<code>mglFont *</code>f)</i></dt>
+<dd><p>Sets font typeface. Note that each mglFont instance can be used with <em>ONLY ONE</em> mglGraph instance at a moment of time! If <code>f==&quot;&quot;</code> then default font is used.
+</p></dd></dl>
+<dl>
+<dt><a name="index-GetFont-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>inline mglFont *</code> <b>GetFont</b><i> ()</i></dt>
+<dd><p>Gets current typeface. Note that this variable can be deleted at next SetFont() call!
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FontSize-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>float</code> <b>FontSize</b></dt>
+<dd><p>The font size. See <code>SetFontSize()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-FontDef-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>char</code> <b>FontDef</b><i><code>[32]</code></i></dt>
+<dd><p>Font style. See <code>SetFontDef()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-RotatedText-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>bool</code> <b>RotatedText</b></dt>
+<dd><p>Set to use or not text rotation along axis.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Palette-and-colors"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Error-handling" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pallete-and-colors"></a>
+<h3 class="subsection">3.1.8 Pallete and colors</h3>
+<a name="index-SetPalColor"></a>
+<a name="index-SetPalNum"></a>
+<a name="index-SetPalette"></a>
+<a name="index-SetScheme"></a>
+<a name="index-SelectPen"></a>
+
+<dl>
+<dt><a name="index-SetPalette-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetPalette</b><i> (<code>const char *</code><var>colors</var>)</i></dt>
+<dt><a name="index-mgl_005fset_005fpalette"></a><u>C function:</u> <code>void</code> <b>mgl_set_palette</b><i> (<code>HMGL</code> gr, <code>const char *</code><var>colors</var>)</i></dt>
+<dd><p>Sets the palette as selected colors. Default value is <code>&quot;Hbgrcmyhlnqeup&quot;</code> that corresponds to colors: dark gray &lsquo;<samp>H</samp>&rsquo;, blue &lsquo;<samp>b</samp>&rsquo;, green &lsquo;<samp>g</samp>&rsquo;, red &lsquo;<samp>r</samp>&rsquo;, cyan &lsquo;<samp>c</samp>&rsquo;, magenta &lsquo;<samp>m</samp>&rsquo;, yellow &lsquo;<samp>y</samp>&rsquo;, gray &lsquo;<samp>h</samp>&rsquo;, blue-green &lsquo;<samp>l</samp>&rsquo;, sky-blue &lsquo;<samp>n</samp>&rsquo;, orange &lsquo;<samp>q</samp>&rsquo;, yellow-green &lsquo;<samp>e</samp>&rsquo;, blue-violet &lsquo;<samp>u</samp>&rsquo;, purple &lsquo;<samp>p</samp>&rsquo;. The palette is used mostly in 1D plots (see section <a href="#g_t1D-plotting">1D plotting</a>) for curves which styles are not specified.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetPalColor-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetPalColor</b><i> (<code>int</code> n, <code>float</code> r, <code>float</code> g, <code>float</code> b)</i></dt>
+<dt><a name="index-mgl_005fset_005fpal_005fcolor"></a><u>C function:</u> <code>void</code> <b>mgl_set_pal_color</b><i> (<code>HMGL</code> gr, <code>int</code> n, <code>float</code> r, <code>float</code> g, <code>float</code> b)</i></dt>
+<dd><p>Sets color for individual palette entry. Look at <code>SetPalette()</code> function for simplified palette setting.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetPalNum-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetPalNum</b><i> (<code>int</code> num)</i></dt>
+<dt><a name="index-mgl_005fset_005fpal_005fnum"></a><u>C function:</u> <code>void</code> <b>mgl_set_pal_num</b><i> (<code>HMGL</code> gr, <code>int</code> num)</i></dt>
+<dd><p>Sets the number of actual colors in palette. The value must be less then 100. 
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetScheme-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetScheme</b><i> (<code>const char *</code>sch)</i></dt>
+<dt><a name="index-mgl_005fset_005fscheme"></a><u>C function:</u> <code>void</code> <b>mgl_set_scheme</b><i> (<code>HMGL</code> gr, <code>const char *</code>sch)</i></dt>
+<dd><p>Set the color scheme for following plots. Usually this function is used internally. See section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SelectPen-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>SelectPen</b><i> (<code>const char *</code>sch)</i></dt>
+<dd><p>Set the line and mark styles for following plots. Usually this function is used internally. See section <a href="mathgl_en_1.html#Line-styles">Line styles</a>.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-Pal-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>mglColor</code> <b>Pal</b><i><code>[101]</code></i></dt>
+<dd><p>Color palette for <a href="#g_t1D-plotting">1D plotting</a>. See <code>SetPalette()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-NumPal-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>int</code> <b>NumPal</b></dt>
+<dd><p>Number of actual colors in palette. See <code>SetPalette()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Error-handling"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Palette-and-colors" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Error-handling-1"></a>
+<h3 class="subsection">3.1.9 Error handling</h3>
+
+<a name="index-Message"></a>
+<a name="index-SetWarn"></a>
+<a name="index-GetWarnCode"></a>
+
+<p>There are 2 variables which indicate the warnings/errors presence during plot creation. Normally user should set it to zero by <code>SetWarn(0);</code> before plotting and check if <var>WarnCode</var> is not zero after plotting. Only last warning will be saved. All warnings/errors produced by MathGL is not critical &ndash; the plot just will not be drawn.
+</p>
+<dl>
+<dt><a name="index-SetWarn-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>SetWarn</b><i> (<code>int</code> code, <code>const char *</code>who=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Set warning code and corresponding message from function <var>who</var>. Normally you should call this function only for clearing the warning state, i.e. call <code>SetWarn(0);</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Message-of-mglGraph"></a><u>General option (C++) of mglGraph:</u> <code>char *</code> <b>Message</b></dt>
+<dd><p>Pointer to buffer for writing messages about matters why some plot are not drawn. Set to NULL to disable messages. The buffer length must be at least 1024. If Message[0]==0 then there are no messages
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetWarnCode-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>int</code> <b>GetWarnCode</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fget_005fwarn_005fcode"></a><u>C function:</u> <code>int</code> <b>mgl_get_warn_code</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Return the numerical ID of warning about the not drawn plot. Possible values are:
+</p><dl compact="compact">
+<dt> <code>mglWarnNone=0</code></dt>
+<dd><p>Everything OK
+</p></dd>
+<dt> <code>mglWarnDim</code></dt>
+<dd><p>Data dimension(s) is incompatible
+</p></dd>
+<dt> <code>mglWarnLow</code></dt>
+<dd><p>Data dimension(s) is too small
+</p></dd>
+<dt> <code>mglWarnNeg</code></dt>
+<dd><p>Minimal data value is negative
+</p></dd>
+<dt> <code>mglWarnFile</code></dt>
+<dd><p>No file or wrong data dimensions
+</p></dd>
+<dt> <code>mglWarnMem</code></dt>
+<dd><p>Not enough memory
+</p></dd>
+<dt> <code>mglWarnZero</code></dt>
+<dd><p>Data values are zero
+</p></dd>
+<dt> <code>mglWarnLegA</code></dt>
+<dd><p>Too many legend entries
+</p></dd>
+<dt> <code>mglWarnLeg</code></dt>
+<dd><p>No legend entries
+</p></dd>
+<dt> <code>mglWarnSlc</code></dt>
+<dd><p>Slice value is out of range
+</p></dd>
+<dt> <code>mglWarnCnt</code></dt>
+<dd><p>Number of contours is zero or negative
+</p></dd>
+<dt> <code>mglWarnOpen</code></dt>
+<dd><p>Couldn&rsquo;t open file
+</p></dd>
+<dt> <code>mglWarnLId</code></dt>
+<dd><p>Light: ID is out of range
+</p></dd>
+<dt> <code>mglWarnSize</code></dt>
+<dd><p>Setsize: size(s) is zero or negative
+</p></dd>
+<dt> <code>mglWarnFmt</code></dt>
+<dd><p>Format is not supported for that build
+</p></dd>
+</dl>
+</dd></dl>
+
+<dl>
+<dt><a name="index-WarnCode-of-mglGraph"></a><u>Obsolete option of mglGraph:</u> <code>int</code> <b>WarnCode</b></dt>
+<dd><p>Numerical ID of warning about the not drawn plot.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Other-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Error-handling" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Other-settings-1"></a>
+<h3 class="subsection">3.1.10 Other settings</h3>
+<a name="index-SetMeshNum"></a>
+<a name="index-SetAxialDir"></a>
+<a name="index-SetDrawFace"></a>
+<a name="index-PlotId"></a>
+
+<dl>
+<dt><a name="index-SetMeshNum-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetMeshNum</b><i> (<code>int</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fmeshnum"></a><u>C function:</u> <code>void</code> <b>mgl_set_meshnum</b><i> (<code>HMGL</code> gr, <code>int</code> num)</i></dt>
+<dd><p>Sets approximate number of lines in Mesh(), Fall(), Grid() and also the number of hachures in Vect(), VectC(), Dew() and the number of cells in Cloud*(). By default (=0) it draws all lines/hachures/cells.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetAxialDir-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetAxialDir</b><i> (<code>char</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005faxial_005fdir"></a><u>C function:</u> <code></code> <b>mgl_set_axial_dir</b><i> (<code>HMGL</code> gr, <code>char</code> dir)</i></dt>
+<dd><p>Sets direction around which curve rotated in Axial() and Torus(). Default value is &rsquo;z&rsquo;.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetDrawFace-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetDrawFace</b><i> (<code>bool</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fdraw_005fface"></a><u>C function:</u> <code>void</code> <b>mgl_set_draw_face</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+<dd><p>Enable/disable faces drawing. It is useful for speeding up drawing (for example, during rotation and so on).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-PlotId-of-mglGraph"></a><u>General option (C++) of mglGraph:</u> <code>const char *</code> <b>PlotId</b></dt>
+<dd><p>Id of plot for saving filename (in GLUT window for example).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-MeshNum-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>int</code> <b>MeshNum</b></dt>
+<dd><p>Sets approximate number of lines/hachures/cells. See <code>SetMeshNum()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AxialDir-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>char</code> <b>AxialDir</b></dt>
+<dd><p>Set rotation direction. See <code>SetAxialDir()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DrawFace-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>bool</code> <b>DrawFace</b></dt>
+<dd><p>Flag for preventing faces drawing. See <code>SetDrawFace()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CirclePnts-of-mglGraph"></a><u>General option (C++) of mglGraph:</u> <code>int</code> <b>CirclePnts</b></dt>
+<dd><p>Number of points used for a circle approximation (for example, in <a href="#Primitives-drawing">Primitives drawing</a>, <a href="#Tube">Tube</a>, <a href="#Pipe">Pipe</a> and so on). Default value is 40.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GridPnts-of-mglGraph"></a><u>General option (C++) of mglGraph:</u> <code>int</code> <b>GridPnts</b></dt>
+<dd><p>Number of points used for grid lines drawing (it is important for curved coordinates). Default value is 50.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axis-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ranges-_0028bounding-box_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-settings-1"></a>
+<h2 class="section">3.2 Axis settings</h2>
+
+<p>These large set of variables and functions control how the axis and ticks will be drawn. Note that there is 3-step transformation of data coordinates are performed. Firstly, coordinates are projected if <code>Cut=true</code> (see section <a href="#Cutting">Cutting</a>), after it transformation formulas are applied, and finally the data was normalized in bounding box.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Curved-coordinates">3.2.2 Curved coordinates</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ticks">3.2.3 Ticks</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Ranges-_0028bounding-box_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Curved-coordinates" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ranges-_0028bounding-box_0029-1"></a>
+<h3 class="subsection">3.2.1 Ranges (bounding box)</h3>
+<a name="index-Axis"></a>
+<a name="index-CAxis"></a>
+<a name="index-XRange"></a>
+<a name="index-YRange"></a>
+<a name="index-ZRange"></a>
+<a name="index-Min"></a>
+<a name="index-Max"></a>
+<a name="index-Cmin"></a>
+<a name="index-Cmax"></a>
+<a name="index-RecalcBorder"></a>
+<a name="index-Org"></a>
+<a name="index-AutoOrg"></a>
+<a name="index-SetRanges"></a>
+<a name="index-SetAutoRanges"></a>
+
+<dl>
+<dt><a name="index-SetRanges-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetRanges</b><i> (<code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2, <code>float</code> z1=<code>0</code>, <code>float</code> z2=<code>0</code>)</i></dt>
+<dt><a name="index-Axis-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Axis</b><i> (<code>mglPoint</code> min, <code>mglPoint</code> max, <code>mglPoint</code> org=<code>mglPoint(NAN,NAN,NAN)</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005faxis_005f2d"></a><u>C function:</u> <code>void</code> <b>mgl_set_axis_2d</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> x2, <code>float</code> y2)</i></dt>
+<dt><a name="index-mgl_005fset_005faxis_005f3d"></a><u>C function:</u> <code>void</code> <b>mgl_set_axis_3d</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2)</i></dt>
+<dd><p>Safely sets the value for <var>Min</var>, <var>Max</var> and <var>Org</var> members (options) of the class. If minimal and maximal values of the coordinate are the same then they are ignored. This function also sets <var>Cmin</var>=<code>Min.z</code> and <var>Cmax</var>=<code>Max.z</code>. This is default color range for 2d plots.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetCRange"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCRange</b><i> (<code>float</code> min, <code>float</code> max)</i></dt>
+<dt><a name="index-CAxis-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>CAxis</b><i> (<code>float</code> min, <code>float</code> max)</i></dt>
+<dt><a name="index-mgl_005fset_005fcaxis"></a><u>C function:</u> <code>void</code> <b>mgl_set_caxis</b><i> (<code>HMGL</code> gr, <code>float</code> min, <code>float</code> max)</i></dt>
+<dd><p>Safely sets minimal and maximal values of data for coloring. This values are used later for determining the color of the surface.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-XRange-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>XRange</b><i> (<code>const mglData &amp;</code> dat, <code>bool</code> add=<code>false</code>, <code>float</code> fact=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fxrange"></a><u>C function:</u> <code>void</code> <b>mgl_set_xrange</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> add)</i></dt>
+<dd><p>Sets values of <code>Min.x</code> and <code>Max.x</code> as minimal and maximal values of data <var>a</var>. Parameter <var>add</var> specify to add or not the new range to current one. Parameter <var>fact</var> add additional range increase on value (<var>Max</var>-<var>Min</var>)*<var>fact</var>. See also Axis().
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-YRange-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>YRange</b><i> (<code>const mglData &amp;</code> dat, <code>bool</code> add=<code>false</code>, <code>float</code> fact=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fyrange"></a><u>C function:</u> <code>void</code> <b>mgl_set_yrange</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> add)</i></dt>
+<dd><p>Sets values of <code>Min.y</code> and <code>Max.y</code> as minimal and maximal values of data <var>a</var>. Parameter <var>add</var> specify to add or not the new range to current one. Parameter <var>fact</var> add additional range increase on value (<var>Max</var>-<var>Min</var>)*<var>fact</var>. See also Axis().
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ZRange-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ZRange</b><i> (<code>const mglData &amp;</code> dat, <code>bool</code> add=<code>false</code>, <code>float</code> fact=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fzrange"></a><u>C function:</u> <code>void</code> <b>mgl_set_zrange</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> add)</i></dt>
+<dd><p>Sets values of <code>Min.z</code> and <code>Max.z</code> as minimal and maximal values of data <var>a</var>. Parameter <var>add</var> specify to add or not the new range to current one. Parameter <var>fact</var> add additional range increase on value (<var>Max</var>-<var>Min</var>)*<var>fact</var>. See also Axis().
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CRange"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>CRange</b><i> (<code>const mglData &amp;</code> dat, <code>bool</code> add=<code>false</code>, <code>float</code> fact=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fcrange"></a><u>C function:</u> <code>void</code> <b>mgl_set_crange</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> add)</i></dt>
+<dd><p>Sets values of <code>Cmin</code> and <code>Cmax</code> as minimal and maximal values of data <var>a</var>. Parameter <var>add</var> specify to add or not the new range to current one. Parameter <var>fact</var> add additional range increase on value (<var>Cmax</var>-<var>Cmin</var>)*<var>fact</var>. See also CAxis().
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetAutoRanges-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetAutoRanges</b><i> (<code>float</code> x1, <code>float</code> x2, <code>float</code> y1=<code>0</code>, <code>float</code> y2=<code>0</code>, <code>float</code> z1=<code>0</code>, <code>float</code> z2=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fauto"></a><u>C function:</u> <code>void</code> <b>mgl_set_auto</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2, <code>float</code> z1, <code>float</code> z2)</i></dt>
+<dd><p>Sets ranges for automatic variables of plots. It act as changing of <var>Min</var>, <var>Max</var> proprties without calling of RecalcBorder(). Function don&rsquo;t change the direction if minimal and maximal values are the same. For example, if y<var>y1</var>=<var>y2</var> then ranges along y-direction will not be changed (will be used previous one). Note that the automatic range become axis range after next call of [XYZ]Range() function(s).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetOrigin"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetOrigin</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005forigin"></a><u>C function:</u> <code>void</code> <b>mgl_set_origin</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0)</i></dt>
+<dd><p>Sets center of axis cross section. If one of values is NAN then MathGL library try to select optimal axis position.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-RecalcBorder-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>RecalcBorder</b><i> ()</i></dt>
+<dd><p>Recalculates internal parameter for correct apply of transformation rules. <strong>Must be called</strong> after any direct change of members <var>Min</var>, <var>Max</var>, <var>fx</var>, <var>fy</var>, <var>fz</var> if its changes should be seen on the plot.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Min_002c-Max-of-mglGraph"></a><u>General option (C++) of mglGraph:</u> <code>mglPoint</code> <b>Min, Max</b></dt>
+<dd><p>Lower and upper edges of bounding box for graphics. These variables are used for determining the range of automatic (non-specified) arrays in most of plotting functions. So, you may change it before plot and return it back after it and the plot will have automatic x-(y-,z-)coordinate normalized in this range but not in bounding box. <strong>BUT</strong> if you want to change the bounding box then you <strong>must</strong> call <code>RecalcBorder();</code> after it or use Axis() function.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cmin_002c-Cmax-of-mglGraph"></a><u>General option (C++) of mglGraph:</u> <code>float</code> <b>Cmin, Cmax</b></dt>
+<dd><p>Minimal and maximal value for data (used for coloring).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Org-of-mglGraph"></a><u>General option (C++) of mglGraph:</u> <code>mglPoint</code> <b>Org</b></dt>
+<dd><p>Center of axis cross section. If one of values is NAN then MathGL library try to select optimal axis position.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AutoOrg-of-mglGraph"></a><u>General option (C++) of mglGraph:</u> <code>bool</code> <b>AutoOrg</b></dt>
+<dd><p>Flag for automatic shifting of axes origin <var>Org</var> if it lies out of range <var>Min</var> ... <var>Max</var>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Curved-coordinates"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ranges-_0028bounding-box_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ticks" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Curved-coordinates-1"></a>
+<h3 class="subsection">3.2.2 Curved coordinates</h3>
+<a name="index-SetFunc"></a>
+<a name="index-SetCoor"></a>
+<a name="index-Ternary"></a>
+
+<dl>
+<dt><a name="index-SetFunc-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetFunc</b><i> (<code>const char *</code>EqX, <code>const char *</code>EqY, <code>const char *</code>EqZ=<code>&quot;&quot;</code>, <code>const char *</code>EqA=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005ffunc"></a><u>C function:</u> <code>void</code> <b>mgl_set_func</b><i> (<code>HMGL</code> gr, <code>const char *</code>EqX, <code>const char *</code>EqY, <code>const char *</code>EqZ)</i></dt>
+<dt><a name="index-mgl_005fset_005ffunc_005fext"></a><u>C function:</u> <code>void</code> <b>mgl_set_func_ext</b><i> (<code>HMGL</code> gr, <code>const char *</code>EqX, <code>const char *</code>EqY, <code>const char *</code>EqZ, <code>const char *</code>EqA)</i></dt>
+<dd><p>Sets transformation formulas for curvilinear coordinate. Each string should contain mathematical expression for real coordinate depending on internal coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; and &lsquo;<samp>a</samp>&rsquo; or &lsquo;<samp>c</samp>&rsquo; for colorbar. For example, the cylindrical coordinates are introduced as <code>Axis(&quot;x*cos(y)&quot;, &quot;x*sin(y)&quot;, &quot;z&quot;);</code>. For removing of formulas the corresponding parameter should be empty or <code>NULL</code>. Using transformation formulas will slightly slowing the program. Parameter <var>EqA</var> set the similar transformation formula for color scheme. See section <a href="mathgl_en_1.html#Textual-formulas">Textual formulas</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetCoor-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCoor</b><i> (<code>int</code> how)</i></dt>
+<dt><a name="index-mgl_005fset_005fcoor"></a><u>C function:</u> <code>void</code> <b>mgl_set_coor</b><i> (<code>HMGL</code> gr, <code>int</code> how)</i></dt>
+<dd><p>Sets one of the predefined transformation formulas for curvilinear coordinate. Paramater <var>how</var> define the coordinates: <code>mglCartesian=0</code> &ndash; Cartesian coordinates (no transformation); <code>mglPolar=1</code> &ndash; Polar coordiantes <em>x_n=x*cos(y),y_n=x*sin(y), z_n=z</em>; <code>mglSpherical=2</code> &ndash; Sperical coordinates <em>x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y)</em>; <code>mglParabolic=3</code> &ndash; Parabolic coordinates <em>x_n=x*y, y_n=(x*x-y*y)/2, z_n=z</em>; <code>mglParaboloidal=4</code> &ndash; Paraboloidal coordinates <em>x_n=(x*x-y*y)*cos(z)/2, y_n=(x*x-y*y)*sin(z)/2, z_n=x*y</em>; <code>mglOblate=5</code> &ndash; Oblate coordinates <em>x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z), z_n=sinh(x)*sin(y)</em>; <code>mglProlate=6</code> &ndash; Prolate coordinates <em>x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z), z_n=cosh(x)*cos(y)</em>; <code>mglElliptic=7</code> &ndash; Elliptic coordinates <em>x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z</em>; <code>mglToroidal=8</code> &ndash; Toroidal coordinates <em>x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)), y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y))</em>; <code>mglBispherical=9</code> &ndash; Bispherical coordinates <em>x_n=sin(y)*cos(z)/(cosh(x)-cos(y)), y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y))</em>; <code>mglBipolar=10</code> &ndash; Bipolar coordinates <em>x_n=sinh(x)/(cosh(x)-cos(y)), y_n=sin(y)/(cosh(x)-cos(y)), z_n=z</em>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Ternary-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Ternary</b><i> (<code>bool</code> tern)</i></dt>
+<dt><a name="index-mgl_005fset_005fternary"></a><u>C function:</u> <code>void</code> <b>mgl_set_ternary</b><i> (<code>HMGL</code> gr, <code>int</code> tern)</i></dt>
+<dd><p>The function sets to draws Ternary plot. This special plot is for 3 dependent coordinates (components) <var>a</var>, <var>b</var>, <var>c</var> so that <var>a</var>+<var>b</var>+<var>c</var>=1. MathGL uses only 2 independent coordinates <var>a</var>=x and <var>b</var>=y since it is enough to plot everything. At this third coordinate z act as another parameter to produce contour lines, surfaces and so on. See section <a href="mathgl_en_9.html#Ternary-plot-sample">Ternary plot sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Ticks"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Curved-coordinates" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transformation-matrix" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ticks-1"></a>
+<h3 class="subsection">3.2.3 Ticks</h3>
+
+<a name="index-SetTicks"></a>
+<a name="index-SetTicksVal"></a>
+<a name="index-SetTuneTicks"></a>
+<a name="index-AdjustTicks"></a>
+<a name="index-SetXTT"></a>
+<a name="index-SetYTT"></a>
+<a name="index-SetZTT"></a>
+<a name="index-SetCTT"></a>
+
+<dl>
+<dt><a name="index-AdjustTicks-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>AdjustTicks</b><i> (<code>const char *</code>dir=<code>&quot;xyz&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fadjust_005fticks"></a><u>C function:</u> <code>void</code> <b>mgl_adjust_ticks</b><i> (<code>HMGL</code> gr, <code>const char *</code>dir)</i></dt>
+<dd><p>Set the ticks step, number of sub-ticks and initial ticks position to be the most human readable for the axis along direction(s) <var>dir</var>. Also set <code>SetTuneTicks(true)</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTicks-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTicks</b><i> (<code>char</code> dir, <code>float</code> d=<code>-5</code>, <code>int</code> ns=<code>0</code>, <code>float</code> org=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fticks_005fdir"></a><u>C function:</u> <code>void</code> <b>mgl_set_ticks_dir</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>float</code> d, <code>int</code> ns, <code>float</code> org)</i></dt>
+<dt><a name="index-mgl_005fset_005fticks"></a><u>C function:</u> <code>void</code> <b>mgl_set_ticks</b><i> (<code>HMGL</code> gr, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz)</i></dt>
+<dt><a name="index-mgl_005fset_005fsubticks"></a><u>C function:</u> <code>void</code> <b>mgl_set_subticks</b><i> (<code>HMGL</code> gr, <code>int</code> nx, <code>int</code> ny, <code>int</code> nz)</i></dt>
+<dt><a name="index-mgl_005fset_005ftick_005forigin"></a><u>C function:</u> <code>void</code> <b>mgl_set_tick_origin</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0)</i></dt>
+<dd><p>Set the ticks step <var>d</var>, number of sub-ticks <var>ns</var> and initial ticks position <var>org</var> for the axis along direction <var>dir</var> (use &rsquo;c&rsquo; for colorbar ticks). Variable <var>d</var> set step for axis ticks (if positive) or it&rsquo;s number on the axis range (if negative). Zero value set logarithmic ticks. If <var>org</var> value is NAN then value from <var>Org</var> is used.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTicksVal-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTicksVal</b><i> (<code>char</code> dir, <code>int</code> n, <code>float *</code>val, <code>const char **</code>lbl)</i></dt>
+<dt><a name="index-SetTicksVal-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTicksVal</b><i> (<code>char</code> dir, <code>int</code> n, <code>float *</code>val, <code>const wchar_t **</code>lbl)</i></dt>
+<dt><a name="index-SetTicksVal-3"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>SetTicksVal</b><i> (<code>char</code> dir, <code>int</code> n, <code>float</code> val1, <code>wchar_t *</code>lbl1, ...)</i></dt>
+<dt><a name="index-mgl_005fset_005fticks_005fvals"></a><u>C function:</u> <code>void</code> <b>mgl_set_ticks_vals</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>int</code> n, <code>float *</code>val, <code>const char **</code>lbl)</i></dt>
+<dt><a name="index-mgl_005fset_005fticks_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_set_ticks_val</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>int</code> n, <code>double</code> val, <code>const char *</code>lbl, ...)</i></dt>
+<dd><p>Set the manual positions <var>val</var> and its labels <var>lbl</var> for <var>n</var>-th ticks along axis <var>dir</var>. The arrays <var>val</var> and <var>lbl</var> must contain <var>n</var> elements. Use <code>SetTicks()</code> to restore automatic ticks. Note, you <strong>have to be</strong> very careful to use floating-point (not integer!!!) values as ticks position due to limitations of stdarg library (argument transfer). See section <a href="mathgl_en_9.html#Manual-ticks-sample">Tick values sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTuneTicks-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTuneTicks</b><i> (<code>bool</code> tune, <code>float</code> pos=<code>1.15</code>)</i></dt>
+<dt><a name="index-mgl_005ftune_005fticks"></a><u>C function:</u> <code>void</code> <b>mgl_tune_ticks</b><i> (<code>HMGL</code> gr, <code>bool</code> tune, <code>float</code> pos)</i></dt>
+<dd><p>Switch on/off ticks enhancing by factoring common multiplier (for small, like from 0.001 to 0.002, or large, like from 1000 to 2000, coordinate values) or common component (for narrow range, like from 0.999 to 1.000). Also set the position <var>pos</var> of common multiplier/component on the axis: =0 at minimal axis value, =1 at maximal axis value. Default value is 1.15.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetXTT-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetXTT</b><i> (<code>const char *</code>xtt)</i></dt>
+<dt><a name="index-SetYTT-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetYTT</b><i> (<code>const char *</code>ytt)</i></dt>
+<dt><a name="index-SetZTT-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetZTT</b><i> (<code>const char *</code>ztt)</i></dt>
+<dt><a name="index-SetCTT-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCTT</b><i> (<code>const char *</code>ctt)</i></dt>
+<dt><a name="index-SetXTT-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetXTT</b><i> (<code>const wchar_t *</code>xtt)</i></dt>
+<dt><a name="index-SetYTT-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetYTT</b><i> (<code>const wchar_t *</code>ytt)</i></dt>
+<dt><a name="index-SetZTT-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetZTT</b><i> (<code>const wchar_t *</code>ztt)</i></dt>
+<dt><a name="index-SetCTT-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCTT</b><i> (<code>const wchar_t *</code>ctt)</i></dt>
+<dt><a name="index-mgl_005fset_005fxttw"></a><u>C function:</u> <code>void</code> <b>mgl_set_xttw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>xtt)</i></dt>
+<dt><a name="index-mgl_005fset_005fyttw"></a><u>C function:</u> <code>void</code> <b>mgl_set_yttw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ytt)</i></dt>
+<dt><a name="index-mgl_005fset_005fzttw"></a><u>C function:</u> <code>void</code> <b>mgl_set_zttw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ztt)</i></dt>
+<dt><a name="index-mgl_005fset_005fcttw"></a><u>C function:</u> <code>void</code> <b>mgl_set_cttw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ctt)</i></dt>
+<dt><a name="index-mgl_005fset_005fxtt"></a><u>C function:</u> <code>void</code> <b>mgl_set_xtt</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>xtt)</i></dt>
+<dt><a name="index-mgl_005fset_005fytt"></a><u>C function:</u> <code>void</code> <b>mgl_set_ytt</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ytt)</i></dt>
+<dt><a name="index-mgl_005fset_005fztt"></a><u>C function:</u> <code>void</code> <b>mgl_set_ztt</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ztt)</i></dt>
+<dt><a name="index-mgl_005fset_005fctt"></a><u>C function:</u> <code>void</code> <b>mgl_set_ctt</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ctt)</i></dt>
+<dd><p>The template for x-,y-,z-axis ticks or colorbar ticks. It may contain TeX symbols also. If <var>xtt</var>, <var>ytt</var>, <var>ztt</var>, <var>ctt</var>=<code>&quot;&quot;</code> then default template is used (in simplest case it is &lsquo;<samp>%.2g</samp>&rsquo;). Setting of template switch off automatic ticks tuning (see <code>SetTuneTicks()</code>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-dx_002c-dy_002c-dz-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>float</code> <b>dx, dy, dz</b></dt>
+<dd><p>Step for axis ticks. See <code>SetTicks()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-NSx_002c-NSy_002c-NSz-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>int</code> <b>NSx, NSy, NSz</b></dt>
+<dd><p>Number of axis sub-ticks. See <code>SetTicks()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-OrgT-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>mglPoint</code> <b>OrgT</b></dt>
+<dd><p>Starting point for ticks. See <code>SetTicks()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TuneTicks-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>bool</code> <b>TuneTicks</b></dt>
+<dd><p>Switch on/off ticks enhancing by factoring common multiplier. See <code>SetTuneTicks()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FactorPos-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>float</code> <b>FactorPos</b></dt>
+<dd><p>The position of common multiplier/component on the axis. See <code>SetTuneTicks()</code>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Transformation-matrix"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ticks" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Export-to-file" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transformation-matrix-1"></a>
+<h2 class="section">3.3 Transformation matrix</h2>
+<a name="index-Aspect"></a>
+<a name="index-Rotate"></a>
+<a name="index-RotateN"></a>
+<a name="index-SubPlot"></a>
+<a name="index-StickPlot"></a>
+<a name="index-InPlot"></a>
+<a name="index-Identity"></a>
+<a name="index-Perspective"></a>
+<a name="index-RestoreM"></a>
+<a name="index-View"></a>
+<a name="index-ColumnPlot"></a>
+<a name="index-Push"></a>
+<a name="index-Pop"></a>
+
+<p>These functions control how and where further plotting will be placed. There is a curtain order of calling of these functions for the better plot view. First one should be SubPlot() or InPlot() for specifying the place. After it a Rotate() and Aspect(). And finally any other plotting functions may be called. Alternatevely you can use ColumnPlot() for position plots in the column one by another without gap between plot axis (bounding boxes).
+</p>
+<dl>
+<dt><a name="index-SubPlot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SubPlot</b><i> (<code>int</code> nx, <code>int</code> ny, <code>int</code> m, <code>float</code> dx=<code>0</code>, <code>float</code> dy=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fsubplot"></a><u>C function:</u> <code>void</code> <b>mgl_subplot</b><i> (<code>HMGL</code> gr, <code>int</code> nx, <code>int</code> ny, <code>int</code> m)</i></dt>
+<dt><a name="index-mgl_005fsubplot_005fd"></a><u>C function:</u> <code>void</code> <b>mgl_subplot_d</b><i> (<code>HMGL</code> gr, <code>int</code> nx, <code>int</code> ny, <code>int</code> m, <code>float</code> dx, <code>float</code> dy)</i></dt>
+<dd><p>Puts further plotting in a <var>m</var>-th cell of <var>nx</var>*<var>ny</var> grid of the whole frame area. This function set off any aspects or rotations. So it should be used first for creating the subplot. From the aesthetical point of view it is not recommended to use this function with different matrices in the same frame. The position of the cell can be shifted from its default position by relative size <var>dx</var>, <var>dy</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SubPlot-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SubPlot</b><i> (<code>int</code> nx, <code>int</code> ny, <code>int</code> m, <code>const char *</code>style)</i></dt>
+<dt><a name="index-mgl_005fsubplot_005fs"></a><u>C function:</u> <code>void</code> <b>mgl_subplot_s</b><i> (<code>HMGL</code> gr, <code>int</code> nx, <code>int</code> ny, <code>int</code> m, <code>const char *</code>style)</i></dt>
+<dd><p>The same as previous but space reserved for axis/colorbar is saved only if <var>style</var> contain: &lsquo;<samp>L</samp>&rsquo; or &lsquo;<samp>&lt;</samp>&rsquo; &ndash; at left side, &lsquo;<samp>R</samp>&rsquo; or &lsquo;<samp>&gt;</samp>&rsquo; &ndash; at right side, &lsquo;<samp>A</samp>&rsquo; or &lsquo;<samp>^</samp>&rsquo; &ndash; at top side, &lsquo;<samp>U</samp>&rsquo; or &lsquo;<samp>_</samp>&rsquo; &ndash; at bottom side.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-InPlot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>InPlot</b><i> (<code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2, <code>bool</code> rel=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005finplot"></a><u>C function:</u> <code>void</code> <b>mgl_inplot</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2)</i></dt>
+<dt><a name="index-mgl_005frelplot"></a><u>C function:</u> <code>void</code> <b>mgl_relplot</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2)</i></dt>
+<dd><p>Puts further plotting in some region of the whole frame surface. This function allows one to create a plot in arbitrary place of the screen. The position is defined by rectangular coordinates [<var>x1</var>, <var>x2</var>]*[<var>y1</var>, <var>y2</var>]. The coordinates <var>x1</var>, <var>x2</var>, <var>y1</var>, <var>y2</var> are normalized to interval [0, 1]. If parameter <var>rel</var>=<code>true</code> then the relative position to current SubPlot() (or last InPlot() with <var>rel</var>=<code>false</code>) is used. This function set off any aspects or rotations. So it should be used first for creating subplot.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ColumnPlot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ColumnPlot</b><i> (<code>int</code> num, <code>int</code> ind, <code>float</code> d=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcolumnplot"></a><u>C function:</u> <code>void</code> <b>mgl_columnplot</b><i> (<code>HMGL</code> gr, <code>int</code> num, <code>int</code> ind)</i></dt>
+<dt><a name="index-mgl_005fcolumnplot_005fd"></a><u>C function:</u> <code>void</code> <b>mgl_columnplot_d</b><i> (<code>HMGL</code> gr, <code>int</code> num, <code>int</code> ind, <code>float</code> d)</i></dt>
+<dd><p>Puts further plotting in <var>ind</var>-th cell of column with <var>num</var> cells. The position is relative to previous SubPlot() call (or InPlot() with <var>rel</var>=<code>false</code>). Parameter <var>d</var> set extra gap between cells. See section <a href="mathgl_en_9.html#ColumnPlot-sample">ColumnPlot sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-StickPlot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>StickPlot</b><i> (<code>int</code> num, <code>int</code> ind, <code>float</code> tet, <code>float</code> phi)</i></dt>
+<dt><a name="index-mgl_005fstickplot"></a><u>C function:</u> <code>void</code> <b>mgl_stickplot</b><i> (<code>HMGL</code> gr, <code>int</code> num, <code>int</code> ind, <code>float</code> tet, <code>float</code> phi)</i></dt>
+<dd><p>Puts further plotting in <var>ind</var>-th cell of stick with <var>num</var> cells. At this, stick is rotated on angles <var>tet</var>, <var>phi</var>. The position is relative to previous SubPlot() call (or InPlot() with <var>rel</var>=<code>false</code>). See section <a href="mathgl_en_9.html#StickPlot-sample">StickPlot sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Rotate-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Rotate</b><i> (<code>float</code> TetX, <code>float</code> TetZ, <code>float</code> TetY=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005frotate"></a><u>C function:</u> <code>void</code> <b>mgl_rotate</b><i> (<code>HMGL</code> gr, <code>float</code> TetX, <code>float</code> TetZ, <code>float</code> TetY)</i></dt>
+<dd><p>Rotates a further plotting relative to each axis {x, z, y} consecutively on angles <var>TetX</var>, <var>TetZ</var>, <var>TetY</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-RotateN-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>RotateN</b><i> (<code>float</code> Tet, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dt><a name="index-mgl_005frotate_005fvector"></a><u>C function:</u> <code>void</code> <b>mgl_rotate_vector</b><i> (<code>HMGL</code> gr, <code>float Tet</code>, <code>float x</code>, <code>float y</code>, <code>float z</code>)</i></dt>
+<dd><p>Rotates a further plotting around vector {<var>x</var>, <var>y</var>, <var>z</var>} on angle <var>Tet</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Aspect-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Aspect</b><i> (<code>float</code> Ax, <code>float</code> Ay, <code>float</code> Az)</i></dt>
+<dt><a name="index-mgl_005faspect"></a><u>C function:</u> <code>void</code> <b>mgl_aspect</b><i> (<code>HMGL</code> gr, <code>float</code> Ax, <code>float</code> Ay, <code>float</code> Az)</i></dt>
+<dd><p>Defines aspect ratio for the plot. The viewable axes will be related one to another as the ratio <var>Ax:Ay:Az</var>. For the best effect it should be used after Rotate() function.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Perspective-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Perspective</b><i> (<code>float</code> a)</i></dt>
+<dt><a name="index-mgl_005fperspective"></a><u>C function:</u> <code>void</code> <b>mgl_perspective</b><i> (<code>HMGL</code> gr, <code>float</code> a)</i></dt>
+<dd><p>Add (switch on) the perspective to plot. The parameter <em>a ~ 1/z_eff \in [0,1)</em>. By default (<code>a=0</code>) the perspective is off.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Identity-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Identity</b><i> (<code>bool</code> rel=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fidentity"></a><u>C function:</u> <code>void</code> <b>mgl_identity</b><i> (<code>HMGL</code> gr, <code>int</code> rel)</i></dt>
+<dd><p>Clears transformation matrix. This function clears all previous effects of Aspect(), SubPlot(), InPlot() or Rotate() functions. It is equivalent to the call of <code>InPlot(0,1,0,1,rel)</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Push-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Push</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fmat_005fpush"></a><u>C function:</u> <code>void</code> <b>mgl_mat_push</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Push transformation matrix into stack. Later you can restore its current state by Pop() function. Stack can keep up to 10 matrices.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Pop-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pop</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fmat_005fpop"></a><u>C function:</u> <code>void</code> <b>mgl_mat_pop</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Pop (restore last &rsquo;pushed&rsquo;) transformation matrix into stack.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Export-to-file"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transformation-matrix" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Primitives-drawing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Export-to-file-1"></a>
+<h2 class="section">3.4 Export to file</h2>
+<a name="index-WriteFrame"></a>
+<a name="index-WritePNG"></a>
+<a name="index-WriteGIF"></a>
+<a name="index-WriteIDTF"></a>
+<a name="index-WriteSVG"></a>
+<a name="index-WriteBMP"></a>
+<a name="index-WriteEPS"></a>
+<a name="index-WriteJPEG"></a>
+<a name="index-SetSize"></a>
+<a name="index-Flush"></a>
+<a name="index-Finish"></a>
+<a name="index-ShowImage"></a>
+
+<p>These functions export current view to a graphic file. The filename <var>fname</var> should have appropriate extension. Parameter <var>descr</var> gives the short description of the picture. Just now the transparency is supported in PNG and SVG files.
+</p>
+<dl>
+<dt><a name="index-WriteFrame-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteFrame</b><i> (<code>const char *</code>fname=<code>&quot;&quot;</code>, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fframe"></a><u>C function:</u> <code>void</code> <b>mgl_write_frame</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Exports current frame to a file <var>fname</var> which type is determined by the extension. Parameter <var>descr</var> adds description to file (can be <code>&quot;&quot;</code>). If <var>fname</var>=<code>&quot;&quot;</code> then the file &lsquo;<samp>frame####.jpg</samp>&rsquo; is used, where &lsquo;<samp>####</samp>&rsquo; is current frame id and name &lsquo;<samp>frame</samp>&rsquo; is defined by <var>PlotId</var> class property.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WritePNG-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WritePNG</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>, <code>int</code> compr=<code>&quot;&quot;</code>, <code>bool</code> alpha=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fpng"></a><u>C function:</u> <code>void</code> <b>mgl_write_png</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fpng_005fsolid"></a><u>C function:</u> <code>void</code> <b>mgl_write_png_solid</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Exports current frame to PNG file. Parameter <var>fname</var> specifies the file name, <var>descr</var> adds description to file, <var>alpha</var> gives the transparency type. By default there are no description added and transparent image used. This function does nothing if NO_PNG is defined during compilation of MathGL library.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteJPEG-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteJPEG</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fjpg"></a><u>C function:</u> <code>void</code> <b>mgl_write_jpg</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Exports current frame to JPEG file. Parameter <var>fname</var> specifies the file name, <var>descr</var> adds description to file. By default there is no description added. This function does nothing if NO_JPEG is defined during compilation of MathGL library.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteGIF-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteGIF</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fgif"></a><u>C function:</u> <code>void</code> <b>mgl_write_gif</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Exports current frame to GIF file. Parameter <var>fname</var> specifies the file name, <var>descr</var> adds description to file. By default there is no description added.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteBMP-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteBMP</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fbmp"></a><u>C function:</u> <code>void</code> <b>mgl_write_bmp</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Exports current frame to BMP file. Parameter <var>fname</var> specifies the file name, <var>descr</var> adds description to file. There is no compression used.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteEPS-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteEPS</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005feps"></a><u>C function:</u> <code>void</code> <b>mgl_write_eps</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Exports current frame to EPS file. The vector representation is used if possible. So it is not recommended for the export of large data plot. It is better to use bitmap format (for example PNG or JPEG). However, program has no internal limitations for size of output file. Parameter <var>fname</var> specifies the file name, <var>descr</var> adds description to file. By default there is no description added. If file name is terminated by &lsquo;<samp>z</samp>&rsquo; (for example, &lsquo;<samp>fname.eps.gz</samp>&rsquo;) then file will be compressed in gzip format.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteSVG-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteSVG</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fsvg"></a><u>C function:</u> <code>void</code> <b>mgl_write_svg</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Exports current frame to SVG (Scalable Vector Graphics) file. The vector representation is used. In difference of EPS format, SVG format support transparency that allows to correctly draw half-transparent plot (like SurfA(), Surf3A(), CloudQ() or CloudP()). Note, the output file may be too large for graphic of large data array (especially for surfaces). It is better to use bitmap format (for example PNG or JPEG). However, program has no internal limitations for size of output file. Parameter <var>fname</var> specifies the file name, <var>descr</var> adds description to file (default is file name). If file name is terminated by &lsquo;<samp>z</samp>&rsquo; (for example, &lsquo;<samp>fname.svgz</samp>&rsquo;) then file will be compressed in gzip format.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteIDTF-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteIDTF</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fidtf"></a><u>C function:</u> <code>void</code> <b>mgl_write_idtf</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Exports current frame to IDTF file. Later this file can be converted to U3D format. The vector representation is used. So, the output file may be too large for graphic of large data array (especially for surfaces). However, program has no internal limitations for size of output file. Parameter <var>fname</var> specifies the file name, <var>descr</var> adds description to file (default is file name).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ShowImage-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ShowImage</b><i> (<code>const char *</code>viewer=<code>&quot;kuickshow&quot;</code>, <code>bool</code> nowait=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fshow_005fimage"></a><u>C function:</u> <code>void</code> <b>mgl_show_image</b><i> (<code>const char *</code>viewer, <code>int</code> nowait)</i></dt>
+<dd><p>Displays the current picture using external program <var>viewer</var> for viewing. The function save the picture to temporary file and call <var>viewer</var> to display it. If <var>nowait</var>=<code>true</code> then the function return immediately (it will not wait while window will be closed).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetSize-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetSize</b><i> (<code>int</code> width, <code>int</code> height)</i></dt>
+<dt><a name="index-mgl_005fset_005fsize"></a><u>C function:</u> <code>void</code> <b>mgl_set_size</b><i> (<code>HMGL</code> gr, <code>int</code> width, <code>int</code> height)</i></dt>
+<dd><p>Sets size of picture in pixels. This function <strong>must be</strong> called before any other plotting because it completely remove picture contents.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Flush-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flush</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fflush"></a><u>C function:</u> <code>void</code> <b>mgl_flush</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Flushes the plotting commands to frame. This function may be useful if one wants to remove array before the finishing of the plot (i.e. before calling <code>Finish()</code>). Also call of this function separate the objects in mglGraphIDTF. Most of plots call this function internally.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Finish-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Finish</b><i> ()</i></dt>
+<dd><p>Finishes plotting and create a picture. Normally this function is called internally.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Primitives-drawing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Export-to-file" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Primitives-drawing-2"></a>
+<h2 class="section">3.5 Primitives drawing</h2>
+<a name="index-Ball"></a>
+<a name="index-Clf"></a>
+<a name="index-Line"></a>
+<a name="index-Curve"></a>
+<a name="index-Glyph"></a>
+<a name="index-Mark"></a>
+<a name="index-Error"></a>
+<a name="index-Face"></a>
+<a name="index-FaceX"></a>
+<a name="index-FaceY"></a>
+<a name="index-FaceZ"></a>
+<a name="index-Cone"></a>
+<a name="index-Drop"></a>
+<a name="index-Sphere"></a>
+
+<p>These functions draw some simple objects like line, point, sphere, drop, cone and so on.
+</p>
+<dl>
+<dt><a name="index-Clf-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Clf</b><i> (<code>mglColor</code> Back=<code>WC</code>)</i></dt>
+<dt><a name="index-mgl_005fclf"></a><u>C function:</u> <code>void</code> <b>mgl_clf</b><i> (<code>HMGL</code> gr)</i></dt>
+<dt><a name="index-mgl_005fclf_005frgb"></a><u>C function:</u> <code>void</code> <b>mgl_clf_rgb</b><i> (<code>HMGL</code> gr, <code>float</code> r, <code>float</code> g, <code>float</code> b)</i></dt>
+<dd><p>Clear the picture and fill it by color <var>Back</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Ball-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Ball</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>mglColor</code> col=<code>RC</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-Ball-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Ball</b><i> (<code>mglPoint</code> p, <code>char</code> col=<code>'r'</code>)</i></dt>
+<dt><a name="index-Ball-3"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Ball</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> col=<code>'r'</code>)</i></dt>
+<dt><a name="index-mgl_005fball"></a><u>C function:</u> <code>void</code> <b>mgl_ball</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dt><a name="index-mgl_005fball_005frgb"></a><u>C function:</u> <code>void</code> <b>mgl_ball_rgb</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> r, <code>float</code> g, <code>float</code> b, <code>float</code> alpha)</i></dt>
+<dt><a name="index-mgl_005fball_005fstr"></a><u>C function:</u> <code>void</code> <b>mgl_ball_str</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> col)</i></dt>
+<dd><p>Draws a point (ball) at position <var>p</var>={<var>x</var>, <var>y</var>, <var>z</var>} with color <var>col</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Error-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Error</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> e, <code>char</code> *pen=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Draws a 3d error box at position <var>p</var> with sizes <var>e</var> and style <var>pen</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Line-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Line</b><i> (<code>mglPoint</code> p1, <code>mglPoint</code> p2, <code>char *</code>stl=<code>&quot;B&quot;</code>, <code>int</code>num=<code>2</code>)</i></dt>
+<dt><a name="index-Line-2"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Line</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>char *</code>stl=<code>&quot;B&quot;</code>, <code>int</code>num=<code>2</code>)</i></dt>
+<dt><a name="index-mgl_005fline"></a><u>C function:</u> <code>void</code> <b>mgl_line</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>char *</code>stl, <code>int</code>num)</i></dt>
+<dd><p>Draws a geodesic line (straight line in Cartesian coordinates) from point <var>p1</var> to <var>p2</var> using line style <var>stl</var>. Parameter <var>num</var> define the &ldquo;quality&rdquo; of the line. If <var>num</var>=<code>2</code> then the stright line will be drawn in all coordinate system (independently on transformation formulas (see section <a href="#Curved-coordinates">Curved coordinates</a>). Contrary, for large values (for example, =<code>100</code>) the geodesic line will be drawn in corresponding coordinate system (straight line in Cartesian coordinates, circle in polar coordinates and so on). Line will be drawn even if it lies out of bounding box.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Curve-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Curve</b><i> (<code>mglPoint</code> p1, <code>mglPoint</code> d1, <code>mglPoint</code> p2, <code>mglPoint</code> d2, <code>const char *</code>stl=<code>&quot;B&quot;</code>, <code>int</code> num=<code>100</code>)</i></dt>
+<dt><a name="index-Curve-2"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Curve</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> dx1, <code>float</code> dy1, <code>float</code> dz1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>float</code> dx2, <code>float</code> dy2, <code>float</code> dz2, <code>const char *</code>stl=<code>&quot;B&quot;</code>, <code>int</code> num=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005fcurve"></a><u>C function:</u> <code>void</code> <b>mgl_curve</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> dx1, <code>float</code> dy1, <code>float</code> dz1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>float</code> dx2, <code>float</code> dy2, <code>float</code> dz2, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Draws Bezier-like curve from point <var>p1</var> to <var>p2</var> using line style <var>stl</var>. At this tangent is codirected with <var>d1</var>, <var>d2</var> and proportional to its amplitude. Parameter <var>num</var> define the &ldquo;quality&rdquo; of the curve. If <var>num</var>=<code>2</code> then the straight line will be drawn in all coordinate system (independently on transformation formulas see section <a href="#Curved-coordinates">Curved coordinates</a>). Contrary, for large values (for example, =<code>100</code>) the spline like Bezier curve will be drawn in corresponding coordinate system. Curve will be drawn even if it lies out of bounding box.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Face-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Face</b><i> (<code>mglPoint</code> p1, <code>mglPoint</code> p2, <code>mglPoint</code> p3, <code>mglPoint</code> p4, <code>const char *</code>stl=<code>&quot;w&quot;</code>, <code>int</code> num=<code>2</code>, <code>float</code> val=<code>NAN</code>)</i></dt>
+<dd><p>Draws the solid quadrangle (face) with vertexes <var>p1</var>, <var>p2</var>, <var>p3</var>, <var>p4</var> and with color(s) <var>stl</var>. At this colors can be the same for all vertexes or different if all 4 colors are specified for each vertex. In first case parameter <var>val</var> (if not <code>NAN</code>) set the color according color scheme. Face will be drawn even if it lies out of bounding box.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FaceX-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>FaceX</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wy, <code>float</code> wz, <code>const char *</code>stl=<code>&quot;w&quot;</code>, <code>float</code> dx=<code>0</code>, <code>float</code> dy=<code>0</code>)</i></dt>
+<dt><a name="index-FaceY-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>FaceY</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wx, <code>float</code> wz, <code>const char *</code>stl=<code>&quot;w&quot;</code>, <code>float</code> dx=<code>0</code>, <code>float</code> dy=<code>0</code>)</i></dt>
+<dt><a name="index-FaceZ-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>FaceZ</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wx, <code>float</code> wy, <code>const char *</code>stl=<code>&quot;w&quot;</code>, <code>float</code> dx=<code>0</code>, <code>float</code> dy=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005ffacex"></a><u>C function:</u> <code>void</code> <b>mgl_facex</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wy, <code>float</code> wz, <code>const char *</code>stl, <code>float</code> d1, <code>float</code> d2)</i></dt>
+<dt><a name="index-mgl_005ffacey"></a><u>C function:</u> <code>void</code> <b>mgl_facey</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wx, <code>float</code> wz, <code>const char *</code>stl, <code>float</code> d1, <code>float</code> d2)</i></dt>
+<dt><a name="index-mgl_005ffacez"></a><u>C function:</u> <code>void</code> <b>mgl_facez</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wx, <code>float</code> wy, <code>const char *</code>stl, <code>float</code> d1, <code>float</code> d2)</i></dt>
+<dd><p>Draws the solid rectangle (face) perpendicular to [x,y,z]-axis correspondingly at position {<var>x0</var>, <var>y0</var>, <var>z0</var>} with color <var>stl</var> and with widths <var>wx</var>, <var>wy</var>, <var>wz</var> along corresponding directions. At this colors can be the same for all vertexes or separately if all 4 colors are specified for each vertex. Parameters <var>d1</var>!=0, <var>d2</var>!=0 set additional shift of the last vertex (i.e. to draw quadrangle).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Sphere-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Sphere</b><i> (<code>mglPoint</code> p, <code>float</code> r, <code>const char *</code>stl=<code>&quot;r&quot;</code>)</i></dt>
+<dt><a name="index-Sphere-2"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Sphere</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> r, <code>const char *</code>stl=<code>&quot;r&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsphere"></a><u>C function:</u> <code>void</code> <b>mgl_sphere</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> r, <code>const char *</code>stl)</i></dt>
+<dd><p>Draw the sphere with radius <var>r</var> and center at point <var>p</var>={<var>x</var>, <var>y</var>, <var>z</var>} and color <var>stl</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Drop-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Drop</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> q, <code>float</code> r, <code>mglColor</code> col, <code>float</code> shift=<code>1</code>, <code>float</code> ap=<code>1</code>)</i></dt>
+<dt><a name="index-Drop-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Drop</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> q, <code>float</code> r, <code>const char *</code>col=&quot;r&quot;, <code>float</code> shift=<code>1</code>, <code>float</code> ap=<code>1</code>)</i></dt>
+<dt><a name="index-Drop-3"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Drop</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>float</code> r, <code>const char *</code>col=&quot;r&quot;, <code>float</code> shift=<code>1</code>, <code>float</code> ap=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdrop"></a><u>C function:</u> <code>void</code> <b>mgl_drop</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>float</code> r, <code>const char *</code>col, <code>float</code> shift, <code>float</code> ap)</i></dt>
+<dd><p>Draw the drop with radius <var>r</var> at point <var>p</var> elongated in direction <var>q</var> and with color <var>col</var>. Parameter <var>shift</var> set the degree of drop oblongness: &lsquo;<samp>0</samp>&rsquo; is sphere, &lsquo;<samp>1</samp>&rsquo; is maximally oblongness drop. Parameter <var>ap</var> set relative width of the drop (this is analogue of &ldquo;ellipticity&rdquo; for the sphere). See section <a href="mathgl_en_9.html#Drops-sample">Drops sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cone-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Cone</b><i> (<code>mglPoint</code> p1, <code>mglPoint</code> p2, <code>float</code> r1, <code>float</code> r2=<code>-1</code>, <code>const char *</code>stl=<code>&quot;B&quot;</code>, <code>bool</code> edge=<code>false</code>)</i></dt>
+<dt><a name="index-Cone-2"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Cone</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>float</code> r1, <code>float</code> r2=<code>-1</code>, <code>const char *</code>stl=<code>&quot;B&quot;</code>, <code>bool</code> edge=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fcone"></a><u>C function:</u> <code>void</code> <b>mgl_cone</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>float</code> r1, <code>float</code> r2, <code>const char *</code>stl, <code>int</code> draw_edge)</i></dt>
+<dd><p>Draw tube (or truncated cone if <var>edge</var>=<code>false</code>) between points <var>p1</var>, <var>p2</var> with radius at the edges <var>r1</var>, <var>r2</var>. If <var>r2</var>&lt;0 then it is supposed that <var>r2</var>=<var>r1</var>. The cone color is defined by string <var>stl</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Mark-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Mark</b><i> (<code>mglPoint</code> p, <code>char</code> mark=<code>'.'</code>)</i></dt>
+<dt><a name="index-Mark-2"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Mark</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> mark=<code>'.'</code>)</i></dt>
+<dt><a name="index-mgl_005fmark"></a><u>C function:</u> <code>void</code> <b>mgl_mark</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> mark)</i></dt>
+<dd><p>Draws a marks of different type at position <var>p</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Glyph-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Glyph</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> f, <code>int</code> nt, <code>const short *</code>trig, <code>int</code> nl, <code>const short *</code>line)</i></dt>
+<dd><p>Draw a set of triangles (or lines if <var>trig</var>=<code>NULL</code>) for glyph which is placed at point {<var>x</var>, <var>y</var>}. Values in the arrays are normalized by factor <var>f</var>. Normally this function is used internally.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Text-printing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Primitives-drawing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-Colorbar" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-printing-1"></a>
+<h2 class="section">3.6 Text printing</h2>
+<a name="index-Puts"></a>
+<a name="index-Putsw"></a>
+<a name="index-Text"></a>
+<a name="index-Title"></a>
+
+<p>These functions draw the text. There are functions for drawing text in arbitrary place, in arbitrary direction and along arbitrary curve. The class mglFont (see section <a href="mathgl_en_7.html#mglFont-class">mglFont class</a>) is used for low-level string parsing and printing. It can use arbitrary font-faces and parse many TeX commands (for detail see section <a href="mathgl_en_1.html#Font-styles">Font styles</a>). All these functions have 2 variant: for printing 8-bit text (<code>char *</code>) and for printing Unicode text (<code>wchar_t *</code>). In first case the conversion in current locale is used. So sometimes you need to specify it by <code>setlocale()</code> function. The size argument control the size of text: if positive it give the value, if negative it give the value relative to <var>FontSize</var>. The font type (STIX, arial, courier, times and so on) can be selected by function SetFont(), GetFont(). See section <a href="#Font-settings">Font settings</a>.
+</p>
+<p>The font parameters are described by string. This string may contain several characters of font type (&lsquo;<samp>rbiwou</samp>&rsquo;) and/or align (&lsquo;<samp>LRC</samp>&rsquo;) specification. Also it may contain the text color &lsquo;<samp>wkrgbcymhRGBCYMHW</samp>&rsquo; (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>) after symbol &lsquo;<samp>:</samp>&rsquo;. The font types are: &lsquo;<samp>r</samp>&rsquo; &ndash; roman font, &lsquo;<samp>i</samp>&rsquo; &ndash; italic style, &lsquo;<samp>b</samp>&rsquo; &ndash; bold style, &lsquo;<samp>w</samp>&rsquo; &ndash; wired style, &lsquo;<samp>o</samp>&rsquo; &ndash; over-lined text, &lsquo;<samp>u</samp>&rsquo; &ndash; underlined text. By default roman font is used. The align types are: &lsquo;<samp>L</samp>&rsquo; &ndash; align left (default), &lsquo;<samp>C</samp>&rsquo; &ndash; align center, &lsquo;<samp>R</samp>&rsquo; &ndash; align right. For example, string &lsquo;<samp>iC:b</samp>&rsquo; correspond to italic font style for centered text which printed by blue color.
+</p>
+<p>If string contains symbols &lsquo;<samp>aA</samp>&rsquo; then text is printed at arbitrary position {<var>x</var>, <var>y</var>} (supposed to be in range [0,1]) of subplot (for &lsquo;<samp>a</samp>&rsquo;) or picture (for &lsquo;<samp>A</samp>&rsquo;).
+</p>
+<dl>
+<dt><a name="index-Puts-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Puts</b><i> (<code>mglPoint</code> p, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>, <code>char</code> dir=<code>0</code>, <code>float</code> shift=<code>0</code>)</i></dt>
+<dt><a name="index-Putsw-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Putsw</b><i> (<code>mglPoint</code> p, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>, <code>char</code> dir=<code>0</code>, <code>float</code> shift=<code>0</code>)</i></dt>
+<dt><a name="index-Puts-2"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Puts</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>, <code>char</code> dir=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fputs"></a><u>C function:</u> <code>void</code> <b>mgl_puts</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const char *</code>text)</i></dt>
+<dt><a name="index-mgl_005fputsw"></a><u>C function:</u> <code>void</code> <b>mgl_putsw</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const wchar_t *</code>text)</i></dt>
+<dt><a name="index-mgl_005fputs_005fext"></a><u>C function:</u> <code>void</code> <b>mgl_puts_ext</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const char *</code>text, <code>const char *</code>font, <code>float</code> size, <code>char</code> dir)</i></dt>
+<dt><a name="index-mgl_005fputsw_005fext"></a><u>C function:</u> <code>void</code> <b>mgl_putsw_ext</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const wchar_t *</code>text, <code>const char *</code>font, <code>float</code> size, <code>char</code> dir)</i></dt>
+<dd><p>The function plots the string <var>text</var> at position <var>p</var> with fonts specifying by the criteria <var>how</var>. The size of font is set by <var>size</var> parameter (default is <var>FontSize</var>). Parameter <var>dir</var> specifies the additional string align. The aligns are: &lsquo;<samp>x</samp>&rsquo; &ndash; align as x-label, &lsquo;<samp>y</samp>&rsquo; &ndash; align as y-label, &lsquo;<samp>z</samp>&rsquo; &ndash; align as z-label, &lsquo;<samp>i</samp>&rsquo; &ndash; align as x-label but inverse writing direction, &lsquo;<samp>t</samp>&rsquo; &ndash; no align (default), &lsquo;<samp>n</samp>&rsquo; &ndash; align in x-y plane.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Puts-3"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>float</code> <b>Puts</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> l, <code>const char *</code>text, <code>char</code>where=<code>'t'</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-Putsw-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>float</code> <b>Putsw</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> l, <code>const wchar_t *</code>text, <code>char</code>where=<code>'t'</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-Puts-4"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Puts</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>const char *</code>text, <code>char</code>where=<code>'t'</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fputs_005fdir"></a><u>C function:</u> <code>void</code> <b>mgl_puts_dir</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>const char *</code>text, <code>float</code> size)</i></dt>
+<dt><a name="index-mgl_005fputsw_005fdir"></a><u>C function:</u> <code>void</code> <b>mgl_putsw_dir</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>const wchar_t *</code>text, <code>float</code> size)</i></dt>
+<dd><p>The function plots the string <var>text</var> at position <var>p</var> along direction <var>l</var> with specified <var>size</var>. Parameter <var>where</var> set to print text above the line (&lsquo;<samp>T</samp>&rsquo;) or under the line (&lsquo;<samp>t</samp>&rsquo;). Function return the width of the string.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Text-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Text</b><i> (<code>mglPoint</code> p, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>, <code>char</code> dir=<code>0</code>)</i></dt>
+<dt><a name="index-Text-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Text</b><i> (<code>mglPoint</code> p, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>, <code>char</code> dir=<code>0</code>)</i></dt>
+<dd><p>The function plots the string <var>text</var> at position <var>p</var> with fonts <var>how</var>. These functions are obsolete &ndash; use Puts(), Putsw() functions instead.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Printf"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Printf</b><i> (<code>mglPoint</code> p, <code>const char *</code>arg, ...)</i></dt>
+<dd><p>Print formatted string at point <var>p</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Label"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Label</b><i> (<code>float</code> x, <code>float</code> y, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-Labelw"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Labelw</b><i> (<code>float</code> x, <code>float</code> y, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005flabel_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_label_xy</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>const char *</code>text, <code>const char *</code>font, <code>float</code> size)</i></dt>
+<dt><a name="index-mgl_005flabelw_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_labelw_xy</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>const wchar_t *</code>text, <code>const char *</code>font, <code>float</code> size)</i></dt>
+<dd><p>The function draws the string <var>text</var> at position {<var>x</var>, <var>y</var>} with fonts specifying by <var>font</var>. The size of font is set by <var>size</var> parameter (default is <var>FontSize</var>). Coordiantes <code>x, y</code> are supposed to be in range [0,1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Title-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Title</b><i> (<code>const char *</code>text, <code>const char *</code>font=<code>0</code>, <code>float</code> size=<code>-2</code>)</i></dt>
+<dt><a name="index-Title-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Title</b><i> (<code>const wchar_t *</code>text, <code>const char *</code>font=<code>0</code>, <code>float</code> size=<code>-2</code>)</i></dt>
+<dt><a name="index-Title-3"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>Title</b><i> (<code>const char *</code>text, <code>const char *</code>font=<code>0</code>, <code>int</code> size=<code>-2</code>)</i></dt>
+<dt><a name="index-mgl_005ftitle"></a><u>C function:</u> <code>void</code> <b>mgl_title</b><i> (<code>HMGL</code> gr, <code>const char *</code>text, <code>const char *</code>font, <code>int</code> size)</i></dt>
+<dt><a name="index-mgl_005ftitlew"></a><u>C function:</u> <code>void</code> <b>mgl_titlew</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>text, <code>const char *</code>font, <code>int</code> size)</i></dt>
+<dd><p>Print string <var>text</var> as title of the picture (at the top of the picture). Can be used at any place (even inside SubPlot()).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Text-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-4"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>y, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-5"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-6"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-7"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-8"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005ftext_005fy"></a><u>C function:</u> <code>void</code> <b>mgl_text_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>text, <code>const char *</code>font, float size)</i></dt>
+<dt><a name="index-mgl_005ftext_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_text_xy</b><i> (<code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>text, <code>const char *</code>font, float size)</i></dt>
+<dt><a name="index-mgl_005ftext_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_text_xyz</b><i> (<code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>text, <code>const char *</code>font, float size)</i></dt>
+<dd><p>The function draws <var>text</var> along the curve between points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} by font style <var>font</var> and with size <var>size</var>. The string <var>font</var> may contain symbols &lsquo;<samp>t</samp>&rsquo; for printing the text under the curve (default), or &lsquo;<samp>T</samp>&rsquo; for printing the text above the curve. The sizes of 1st dimension must be equal for all arrays <code>x.nx=y.nx=z.nx</code>. If array <var>x</var> is not specified then its an automatic array is used with values equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x] (see section <a href="#Ranges-_0028bounding-box_0029">Ranges (bounding box)</a>). If array <var>z</var> is not specified then <var>z</var>[i] = <var>zVal</var> is used. See section <a href="mathgl_en_9.html#Text-sample">Text sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axis-and-Colorbar"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-and-Colorbar-1"></a>
+<h2 class="section">3.7 Axis and Colorbar</h2>
+<a name="index-Axis-2"></a>
+<a name="index-Box"></a>
+<a name="index-Grid"></a>
+<a name="index-Colorbar"></a>
+<a name="index-Label-1"></a>
+
+<p>These functions draw the &ldquo;things for measuring&rdquo;, like axis with ticks, colorbar with ticks, grid along axis, bounding box and labels for axis. For more information see section <a href="#Axis-settings">Axis settings</a>.
+</p>
+<dl>
+<dt><a name="index-Axis-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axis</b><i> (<code>const char *</code>dir=<code>&quot;xyz&quot;</code>, <code>bool</code> adjust=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005faxis"></a><u>C function:</u> <code>void</code> <b>mgl_axis</b><i> (<code>HMGL</code> gr, <code>const char *</code>dir)</i></dt>
+<dd><p>Draws axes with ticks (see section <a href="#Axis-settings">Axis settings</a>) in directions determined by string parameter <var>dir</var>.If string contain the symbol &lsquo;<samp>_</samp>&rsquo; then tick labels are not printed. Font for ticks labels is determined by <var>FontDef</var> (see section <a href="#Font-settings">Font settings</a>). Ticks will be adjusted if <var>adjust</var>=<code>true</code> (by call of <code>AdjustTicks()</code>). You may specified an arrow at the end of axis (see see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>)
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Colorbar-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Colorbar</b><i> (<code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> where=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcolorbar"></a><u>C function:</u> <code>void</code> <b>mgl_colorbar</b><i> (<code>HMGL</code> gr, <code>const char *</code>sch, <code>int</code> where)</i></dt>
+<dd><p>Draws colorbar with color scheme <var>sch</var> (current scheme if <code>sch=&quot;&quot;</code>) at edge of plot. Parameter <var>where</var> specifies the position of the colorbar: &lsquo;<samp>0</samp>&rsquo; - at right (default), &lsquo;<samp>1</samp>&rsquo; - at left, &lsquo;<samp>2</samp>&rsquo; - at top, &lsquo;<samp>3</samp>&rsquo; - at bottom. If string <var>sch</var> contains &lsquo;<samp>&lt;&gt;^_</samp>&rsquo; then the parameter <var>pos</var> is defined as: <code>pos=0</code> for &lsquo;<samp>&gt;</samp>&rsquo; (right), <code>pos=1</code> for &lsquo;<samp>&lt;</samp>&rsquo; (left), <code>pos=2</code> for &lsquo;<samp>^</samp>&rsquo; (top), <code>pos=3</code> for &lsquo;<samp>_</samp>&rsquo; (bottom). If string have &lsquo;<samp>A</samp>&rsquo; then absolute (relative to picture) coordinates is used. See section <a href="mathgl_en_9.html#Dens-sample">Dens sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Colorbar-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Colorbar</b><i> (<code>const mglData &amp;</code>v, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> where=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcolorbar_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_colorbar_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const char *</code>sch, <code>int</code> where)</i></dt>
+<dd><p>The same as previous but with sharp colors <var>sch</var> (current palette if <code>sch=&quot;&quot;</code>) for values <var>v</var>. See section <a href="mathgl_en_9.html#ContD-sample">ContD sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Colorbar-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Colorbar</b><i> (<code>const char *</code>sch, <code>int</code> where, <code>float</code> x, <code>float</code> y, <code>float</code> w, <code>float</code> h)</i></dt>
+<dt><a name="index-Colorbar-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Colorbar</b><i> (<code>int</code> where, <code>float</code> x, <code>float</code> y, <code>float</code> w, <code>float</code> h)</i></dt>
+<dt><a name="index-mgl_005fcolorbar_005fext"></a><u>C function:</u> <code>void</code> <b>mgl_colorbar_ext</b><i> (<code>HMGL</code> gr, <code>const char *</code>sch, <code>int</code> where, <code>float</code> x, <code>float</code> y, <code>float</code> w, <code>float</code> h)</i></dt>
+<dd><p>The same as first one but at arbitrary position of subplot {<var>x</var>, <var>y</var>} (supposed to be in range [0,1]). Parameters <var>w</var>, <var>h</var> set the relative width and height of the colorbar.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Colorbar-5"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Colorbar</b><i> (<code>const mglData &amp;</code>v, <code>const char *</code>sch, <code>int</code> where, <code>float</code> x, <code>float</code> y, <code>float</code> w, <code>float</code> h)</i></dt>
+<dd><p>The same as previous but with sharp colors <var>sch</var> (current palette if <code>sch=&quot;&quot;</code>) for values <var>v</var>. See section <a href="mathgl_en_9.html#ContD-sample">ContD sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Grid-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid</b><i> (<code>const char *</code>dir=<code>&quot;xyz&quot;</code>, <code>const char *</code>pen=<code>&quot;B-&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005faxis_005fgrid"></a><u>C function:</u> <code>void</code> <b>mgl_axis_grid</b><i> (<code>HMGL</code> gr, <code>const char *</code>dir, <code>const char *</code>pen)</i></dt>
+<dd><p>Draws grid lines perpendicular to direction determined by string parameter <var>dir</var>. The step of grid lines is the same as tick step for an Axis(). The style of lines is determined by <var>pen</var> parameter (default value is dark blue solid line &lsquo;<samp>B-</samp>&rsquo;).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Box-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Box</b><i> (<code>const char *</code>col=<code>&quot;&quot;</code>, <code>bool</code> ticks=<code>true</code>)</i></dt>
+<dt><a name="index-Box-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Box</b><i> (<code>mglColor</code> col, <code>bool</code> ticks=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fbox"></a><u>C function:</u> <code>void</code> <b>mgl_box</b><i> (<code>HMGL</code> gr, <code>int</code> ticks)</i></dt>
+<dt><a name="index-mgl_005fbox_005frgb"></a><u>C function:</u> <code>void</code> <b>mgl_box_rgb</b><i> (<code>HMGL</code> gr, <code>float</code> r, <code>float</code> g, <code>float</code> b, <code>int</code> ticks)</i></dt>
+<dt><a name="index-mgl_005fbox_005fstr"></a><u>C function:</u> <code>void</code> <b>mgl_box_str</b><i> (<code>HMGL</code> gr, <code>const char *</code>col, <code>int</code> ticks)</i></dt>
+<dd><p>Draws bounding box outside the plotting volume with color <var>col</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Label-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Label</b><i> (<code>char</code> dir, <code>const char *</code>text, <code>float</code> pos=<code>0</code>, <code>float</code> size=<code>-1.4</code>, <code>float</code> shift=<code>0</code>)</i></dt>
+<dt><a name="index-Label-3"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Label</b><i> (<code>char</code> dir, <code>const wchar_t *</code>text, <code>float</code> pos=<code>0</code>, <code>float</code> size=<code>-1.4</code>, <code>float</code> shift=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005flabel"></a><u>C function:</u> <code>void</code> <b>mgl_label</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>const char *</code>text)</i></dt>
+<dt><a name="index-mgl_005flabel_005fext"></a><u>C function:</u> <code>void</code> <b>mgl_label_ext</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>const char *</code>text, <code>float</code> pos, <code>float</code> size, <code>float</code> shift)</i></dt>
+<dt><a name="index-mgl_005flabelw_005fext"></a><u>C function:</u> <code>void</code> <b>mgl_labelw_ext</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>const wchar_t *</code>text, <code>float</code> pos, <code>float</code> size, <code>float</code> shift)</i></dt>
+<dd><p>Prints the label <var>text</var> for axis <var>dir</var>=&lsquo;<samp>x</samp>&rsquo;,&lsquo;<samp>y</samp>&rsquo;,&lsquo;<samp>z</samp>&rsquo;,&lsquo;<samp>t</samp>&rsquo; (here &lsquo;<samp>t</samp>&rsquo; is &ldquo;ternary&rdquo; axis <em>t=1-x-y</em>). The position of label is determined by <var>pos</var> parameter. If <var>pos</var>=0 then label is printed at the center of axis. If <var>pos</var>&gt;0 then label is printed at the maximum of axis. If <var>pos</var>&lt;0 then label is printed at the minimum of axis. Parameter <var>size</var> determines the font size for the label. By default the font size is 1.4 times larger than the one for ticks <var>FontSize</var> (see section <a href="#Font-settings">Font settings</a>). See section <a href="#Text-printing">Text printing</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Legend"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-Colorbar" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Legend-1"></a>
+<h2 class="section">3.8 Legend</h2>
+<a name="index-Legend"></a>
+<a name="index-AddLegend"></a>
+<a name="index-ClearLegend"></a>
+<a name="index-SetLegendBox"></a>
+<a name="index-SetLegendMarks"></a>
+
+<p>These functions draw legend to the graph (useful for <a href="#g_t1D-plotting">1D plotting</a>). Legend entry is a pair of strings: one for style of the line, another one with description text (with included TeX parsing). The arrays of strings may be used directly or by accumulating first to the internal arrays (by function AddLegend()) and further plotting it. The position of the legend can be selected automatic or manually. Parameters <var>font</var> and <var>size</var> specify the font style and size (see section <a href="#Font-settings">Font settings</a>). Parameter <var>llen</var> set the relative width of the line sample and the text indent. If line style string for entry is empty then the corresponding text is printed without indent. If string <var>font</var> contains symbol &lsquo;<samp>A</samp>&rsquo; then legend coordinates set position in the picture (not in the current subplot). See section <a href="mathgl_en_9.html#Legend-sample">Legend sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Legend-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Legend</b><i> (<code>int</code> where=<code>0x3</code>, <code>const char *</code>font=<code>&quot;rL&quot;</code>, <code>float</code> size=<code>-0.8</code>, <code>float</code> llen=<code>0.1</code>)</i></dt>
+<dt><a name="index-mgl_005flegend"></a><u>C function:</u> <code>void</code> <b>mgl_legend</b><i> (<code>HMGL</code> gr, <code>int</code> where, <code>const char *</code>font, <code>float</code> size, <code>float</code> llen)</i></dt>
+<dd><p>Draws legend of accumulated legend entries by font <var>font</var> with <var>size</var>. Parameter <var>where</var> sets the position of the legend: &lsquo;<samp>0</samp>&rsquo; is bottom left corner, &lsquo;<samp>1</samp>&rsquo; is bottom right corner, &lsquo;<samp>2</samp>&rsquo; is top left corner, &lsquo;<samp>3</samp>&rsquo; is top right corner (is default).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Legend-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Legend</b><i> (<code>int</code> n, <code>wchar_t **</code>text, <code>char **</code>style, <code>int</code> where=<code>0x3</code>, <code>const char *</code>font=<code>&quot;rL&quot;</code>, <code>float</code> size=<code>-0.8</code>, <code>float</code> llen=<code>0.1</code>)</i></dt>
+<dd><p>Draws legend with <var>n</var>-th elements of string array <var>text</var> by font <var>font</var> with <var>size</var>. Entry strings <var>text</var> describe curves with line style <var>style</var> (including marks). Parameter <var>where</var> sets the position of the legend: &lsquo;<samp>0</samp>&rsquo; is bottom left corner, &lsquo;<samp>1</samp>&rsquo; is bottom right corner, &lsquo;<samp>2</samp>&rsquo; is top left corner, &lsquo;<samp>3</samp>&rsquo; is top right corner (is default).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Legend-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Legend</b><i> (<code>float</code> x, <code>float</code> y, <code>const char *</code>font=<code>&quot;rL&quot;</code>, <code>float</code> size=<code>-0.8</code>, <code>float</code> llen=<code>0.1</code>)</i></dt>
+<dt><a name="index-mgl_005flegend_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_legend_xy</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>const char *</code>font, <code>float</code> size, <code>float</code> llen)</i></dt>
+<dd><p>Draws legend of accumulated legend entries by font <var>font</var> with <var>size</var>. Position of legend is determined by parameter <var>x</var>, <var>y</var> which supposed to be normalized to interval [0,1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Legend-4"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Legend</b><i> (<code>int</code> n, <code>wchar_t **</code>text, <code>char **</code>style, <code>float</code> x, <code>float</code> y, <code>const char *</code>font=<code>&quot;rL&quot;</code>, <code>float</code> size=<code>-0.8</code>, <code>float</code> llen=<code>0.1</code>)</i></dt>
+<dd><p>Draws legend with <var>n</var>-th elements of string array <var>text</var> by font <var>font</var> with <var>size</var>. Entry strings <var>text</var> describe curves with line style <var>style</var> (including marks). Position of legend is determined by parameter <var>x</var>, <var>y</var> which supposed to be normalized to interval [0,1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AddLegend-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>AddLegend</b><i> (<code>const char *</code>text, <code>const char *</code>style)</i></dt>
+<dt><a name="index-AddLegend-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>AddLegend</b><i> (<code>const wchar_t *</code>text, <code>const char *</code>style)</i></dt>
+<dt><a name="index-mgl_005fadd_005flegend"></a><u>C function:</u> <code>void</code> <b>mgl_add_legend</b><i> (<code>HMGL</code> gr, <code>const char *</code>text, <code>const char *</code>style)</i></dt>
+<dt><a name="index-mgl_005fadd_005flegendw"></a><u>C function:</u> <code>void</code> <b>mgl_add_legendw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>text, <code>const char *</code>style)</i></dt>
+<dd><p>Adds string <var>text</var> to internal legend accumulator. The style of described line and mark is specified in string <var>style</var> (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). Maximal number of entries is 100.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ClearLegend-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ClearLegend</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fclear_005flegend"></a><u>C function:</u> <code>void</code> <b>mgl_clear_legend</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Clears saved legend strings.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetLegendBox-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetLegendBox</b><i> (<code>bool</code> enable)</i></dt>
+<dt><a name="index-mgl_005fset_005flegend_005fbox"></a><u>C function:</u> <code>void</code> <b>mgl_set_legend_box</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Switch on/off drawing box near legend. By default (=<code>true</code>) box is drawn.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetLegendMarks-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetLegendMarks</b><i> (<code>int</code> num)</i></dt>
+<dt><a name="index-mgl_005fset_005flegend_005fmarks"></a><u>C function:</u> <code>void</code> <b>mgl_set_legend_marks</b><i> (<code>HMGL</code> gr, <code>int</code> num)</i></dt>
+<dd><p>Set the number of marks in the legend. By default 1 mark is used.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-LegendBox-of-mglGraph"></a><u><em>Obsolete option</em> of mglGraph:</u> <code>bool</code> <b>LegendBox</b></dt>
+<dd><p>Switch on/off drawing box near legend. See <code>SetLegendBox()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t1D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-plotting-1"></a>
+<h2 class="section">3.9 1D plotting</h2>
+
+<p>These functions perform plotting of 1D data. 1D means that data depended from only 1 parameter like parametric curve {x(i),y(i),z(i)}, i=1...n. There are 5 generally different types of data representations: simple line plot (Plot), line plot with filling under it (Area), stairs plot (Step), bar plot (Bars, Barh) and vertical lines (Stem). Each type of plotting has similar interface. There are 3D version and two 2D versions. One of last requires single array. The parameters of line and marks are specified by the string argument. If the string parameter is &quot;&quot; then solid line with color from palette Pal is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). Also there are some special 1d plots having slightly different interface: surface of curve rotation (Torus), chart (Chart) and error boxes (Error), marks with variable size (Mark), tubes (Tube) and so on. See section <a href="mathgl_en_1.html#Line-styles">Line styles</a>. See section <a href="mathgl_en_9.html#g_t1D-plot-sample">1D plot sample</a>, for sample code and picture.
+</p>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plot">3.9.1 Plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Radar">3.9.2 Radar</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tens">3.9.3 Tens</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area">3.9.4 Area</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region">3.9.5 Region</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stem">3.9.6 Stem</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars">3.9.7 Bars</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Barh">3.9.8 Barh</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Chart">3.9.9 Chart</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Step">3.9.10 Step</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Torus">3.9.11 Torus</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tube">3.9.12 Tube</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mark">3.9.13 Mark</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TextMark">3.9.14 TextMark</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Error">3.9.15 Error</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#BoxPlot">3.9.16 BoxPlot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Radar" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plot-1"></a>
+<h3 class="subsection">3.9.1 Plot</h3>
+<a name="index-Plot"></a>
+
+<p>These functions draw continuous lines between points. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). See also <a href="#Area">Area</a>, <a href="#Step">Step</a>, <a href="#Stem">Stem</a>, <a href="#Tube">Tube</a>, <a href="#Mark">Mark</a>, <a href="#Error">Error</a>, <a href="#Belt">Belt</a>, <a href="#Tens">Tens</a>. See section <a href="mathgl_en_9.html#Plot-sample">Plot sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Plot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fplot_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_plot_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous lines between points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} in 3D space.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Plot-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fplot_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_plot_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous lines between points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Plot-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fplot"></a><u>C function:</u> <code>void</code> <b>mgl_plot</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous lines between points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>), where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Radar"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tens" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Radar-1"></a>
+<h3 class="subsection">3.9.2 Radar</h3>
+<a name="index-Radar"></a>
+
+<dl>
+<dt><a name="index-Radar-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Radar</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>pen=<code>&quot;&quot;</code>, <code>float</code> r=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fradar"></a><u>C function:</u> <code>void</code> <b>mgl_radar</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>pen, <code>float</code> r)</i></dt>
+<dd><p>This functions draws radar chart which is continuous lines between points located on an radial lines (like plot in Polar coordinates). The plots are drawn for each row if one of the data is the matrix. Parameter <var>r</var> set the additional shift of data (i.e. the data <var>a</var>+<var>r</var> is used instead of <var>a</var>). If <code>r&lt;0</code> then <code>r=max(0, -min(a)</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). If <var>pen</var> containt &lsquo;<samp>#</samp>&rsquo; symbol then &quot;grid&quot; (radial lines and circle for <var>r</var>) is drawn See also <a href="#Plot">Plot</a>. See section <a href="mathgl_en_9.html#Radar-sample">Radar sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Tens"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Radar" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tens-1"></a>
+<h3 class="subsection">3.9.3 Tens</h3>
+<a name="index-Tens"></a>
+
+<p>These functions draw continuous lines between points with color defined by the special array (look like tension plot). The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx</code>. String <var>pen</var> specifies the color scheme (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>) and style and/or width of line (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with current color scheme is used. See also <a href="#Plot">Plot</a>, <a href="#Mesh">Mesh</a>, <a href="#Fall">Fall</a>. See section <a href="mathgl_en_9.html#Tens-sample">Tens sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Tens-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tens</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftens_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_tens_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous lines between points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} in 3D space with color defined by <var>c</var>[i].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tens-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tens</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>c, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftens_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_tens_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> c, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous lines between points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>) with color defined by <var>c</var>[i].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tens-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tens</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>c, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftens"></a><u>C function:</u> <code>void</code> <b>mgl_tens</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> c, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous lines between points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>) with color defined by <var>c</var>[i], where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Area"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tens" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-1"></a>
+<h3 class="subsection">3.9.4 Area</h3>
+<a name="index-Area"></a>
+
+<p>These functions draw continuous lines between points and fills it to axis plane. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). Also you can use gradient filling if number of specified colors is equal to 2*number of curves. If string contain symbol &lsquo;<samp>a</samp>&rsquo; then lines are drawn one above another (like summation) &ndash; you can reach the same effect if call <code>y.CumSum(&quot;y&quot;);</code> before plot. See also <a href="#Plot">Plot</a>, <a href="#Bars">Bars</a>, <a href="#Stem">Stem</a>. See section <a href="mathgl_en_9.html#Area-sample">Area sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Area-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Area</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005farea_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_area_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous lines between points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} in 3D space and fills it down to <var>z</var> = Org.z.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Area-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Area</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005farea_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_area_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous lines between points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>) and fills it down to <var>y</var> = Org.y.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Area-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Area</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005farea"></a><u>C function:</u> <code>void</code> <b>mgl_area</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous lines between points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>) and fills it down to <var>y</var> = Org.y, where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Region"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stem" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-1"></a>
+<h3 class="subsection">3.9.5 Region</h3>
+<a name="index-Region"></a>
+
+<p>These functions fill area between 2 curves. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y1.nx=y2.nx</code> and all dimensions of arrays <var>y1</var> and <var>y2</var> must be equal too. String <var>pen</var> specifies the color (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). Also you can use gradient filling if number of specified colors is equal to 2*number of curves. See also <a href="#Area">Area</a>, <a href="#Bars">Bars</a>, <a href="#Stem">Stem</a>. See section <a href="mathgl_en_9.html#Region-sample">Region sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Region-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Region</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y1, <code>const mglData &amp;</code>y2, <code>const char *</code>pen=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>bool</code> inside=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fregion_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_region_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y1, <code>const HMDT</code> y2, <code>const char *</code>pen, <code>int</code> inside)</i></dt>
+<dd><p>The function fills area between curves {<var>x</var>[i], <var>y1</var>[i]} and {<var>x</var>[i], <var>y2</var>[i]} at z=<var>zVal</var>. Parameter <code>inside=false</code> set to fill are with y1&lt;y&lt;y2 else the area with y2&lt;y&lt;y1 will be also filled.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Region-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Region</b><i> (<code>const mglData &amp;</code>y1, <code>const mglData &amp;</code>y2, <code>const char *</code>pen=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>bool</code> inside=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fregion"></a><u>C function:</u> <code>void</code> <b>mgl_region</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y1, <code>const HMDT</code> y2, <code>const char *</code>pen, <code>int</code> inside)</i></dt>
+<dd><p>The function fills area between curves {<var>x</var>[i], <var>y1</var>[i]} and {<var>x</var>[i], <var>y2</var>[i]}, where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x] at z=<var>zVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Stem"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stem-1"></a>
+<h3 class="subsection">3.9.6 Stem</h3>
+<a name="index-Stem"></a>
+
+<p>These functions draw vertical lines from points to axis plane. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). See also <a href="#Area">Area</a>, <a href="#Bars">Bars</a>, <a href="#Plot">Plot</a>, <a href="#Mark">Mark</a>. See section <a href="mathgl_en_9.html#Stem-sample">Stem sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Stem-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Stem</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstem_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_stem_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws vertical lines from points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} down to <var>z</var> = Org.z.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Stem-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Stem</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstem_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_stem_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws vertical lines from points {<var>x</var>[i], <var>y</var>[i]} down to <var>y</var> = Org.y in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Stem-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Stem</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstem"></a><u>C function:</u> <code>void</code> <b>mgl_stem</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws vertical lines from points {<var>x</var>[i], <var>y</var>[i]} down to <var>y</var> = Org.y in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>), where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Bars"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Stem" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Barh" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-1"></a>
+<h3 class="subsection">3.9.7 Bars</h3>
+<a name="index-Bars"></a>
+
+<p>These functions draw vertical bars from points to axis plane. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). If string contain symbol &lsquo;<samp>a</samp>&rsquo; then lines are drawn one above another (like summation). If string contain symbol &lsquo;<samp>f</samp>&rsquo; then waterfall chart is drawn for determining the cumulative effect of sequentially introduced positive or negative values. You can different colors for positive and negative values if number of specified colors is equal to 2*number of curves. See also <a href="#Barh">Barh</a>, <a href="#Area">Area</a>, <a href="#Stem">Stem</a>, <a href="#Chart">Chart</a>, <a href="#Default-sizes">Default sizes</a>. See section <a href="mathgl_en_9.html#Bars-sample">Bars sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Bars-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Bars</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbars_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_bars_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws vertical bars from points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} down to <var>z</var> = Org.z.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Bars-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Bars</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbars_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_bars_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws vertical bars from points {<var>x</var>[i], <var>y</var>[i]} down to <var>y</var> = Org.y in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Bars-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Bars</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbars"></a><u>C function:</u> <code>void</code> <b>mgl_bars</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws vertical bars from points {<var>x</var>[i], <var>y</var>[i]} down to <var>y</var> = Org.y in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>), where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Barh"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Chart" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Barh-1"></a>
+<h3 class="subsection">3.9.8 Barh</h3>
+<a name="index-Barh"></a>
+
+<p>These functions draw horizontal bars from points to axis plane. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). If string contain symbol &lsquo;<samp>a</samp>&rsquo; then lines are drawn one above another (like summation). See also <a href="#Barh">Barh</a>, <a href="#Default-sizes">Default sizes</a>. See section <a href="mathgl_en_9.html#Barh-sample">Barh sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Barh-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Barh</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>v, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbarh_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_barh_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> v, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws horizontal bars from points {<var>v</var>[i], <var>y</var>[i]} down to <var>x</var> = Org.x in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Barh-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Barh</b><i> (<code>const mglData &amp;</code>v, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbarh"></a><u>C function:</u> <code>void</code> <b>mgl_barh</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws horizontal bars from points {<var>v</var>[i], <var>y</var>[i]} down to <var>x</var> = Org.x in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>), where <var>y</var>[i] values are equidistantly distributed in interval [<var>Min</var>.y, <var>Max</var>.y].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Chart"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Barh" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Step" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Chart-1"></a>
+<h3 class="subsection">3.9.9 Chart</h3>
+<a name="index-Chart"></a>
+
+<dl>
+<dt><a name="index-Chart-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Chart</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>col=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fchart"></a><u>C function:</u> <code>void</code> <b>mgl_chart</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>col)</i></dt>
+<dd><p>The function draws colored stripes (boxes) for data in array <var>a</var>. The number of stripes is equal to the number of rows in <var>a</var> (equal to <var>a.ny</var>). The color of each next stripe is cyclically changed from colors specified in string <var>col</var> or in palette Pal (see section <a href="#Palette-and-colors">Pallete and colors</a>). Spaces in colors denote transparent &ldquo;color&rdquo;, i.e. if <var>col</var> contain space(s) then corresponding stripe(s) are not drawn. The stripe width is proportional to value of element in <var>a</var>. Chart is plotted only for data with non-negative elements. If string <var>col</var> have symbol &lsquo;<samp>#</samp>&rsquo; then black border lines are drawn. The most nice form the chart have in 3d (after rotation of coordinates) or in cylindrical coordinates (becomes so called Pie chart). See section <a href="mathgl_en_9.html#Chart-sample">Chart sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Step"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Chart" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Torus" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Step-1"></a>
+<h3 class="subsection">3.9.10 Step</h3>
+<a name="index-Step"></a>
+
+<p>These functions draw continuous stairs for points to axis plane. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). See also <a href="#Plot">Plot</a>, <a href="#Stem">Stem</a>, <a href="#Tile">Tile</a>, <a href="#Boxs">Boxs</a>. See section <a href="mathgl_en_9.html#Step-sample">Step sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Step-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Step</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstep_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_step_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous stairs for points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Step-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Step</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstep_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_step_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous stairs for points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Step-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Step</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstep"></a><u>C function:</u> <code>void</code> <b>mgl_step</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws continuous stairs for points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>), where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Torus"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Step" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tube" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Torus-1"></a>
+<h3 class="subsection">3.9.11 Torus</h3>
+<a name="index-Torus"></a>
+
+<p>These functions draw surface which is result of curve {<var>r</var>, <var>z</var>} rotation around <var>AxialDir</var> axis (see section <a href="#Other-settings">Other settings</a>). The sizes of 1st dimension <strong>must be equal</strong> for all arrays <var>r.nx=z.nx</var>. String <var>pen</var> specifies the color (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). See also <a href="#Plot">Plot</a>, <a href="#Axial">Axial</a>. See section <a href="mathgl_en_9.html#Torus-sample">Torus sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Torus-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Torus</b><i> (<code>const mglData &amp;</code>r, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftorus"></a><u>C function:</u> <code>void</code> <b>mgl_torus</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> r, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws surface which is result of curve {<var>r</var>[i], <var>z</var>[i]} rotation.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Torus-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Torus</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>The function draws surface which is result of curve {<var>r</var>[i], <var>z</var>[i]} rotation, where <var>r</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Tube"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Torus" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mark" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tube-1"></a>
+<h3 class="subsection">3.9.12 Tube</h3>
+<a name="index-Tube"></a>
+
+<p>These functions draw the tube with variable radius <var>r</var>[i] along the curve between points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx=r.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). See also <a href="#Plot">Plot</a>. See section <a href="mathgl_en_9.html#Tube-sample">Tube sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Tube-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-Tube-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>float</code> r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftube_005fxyzr"></a><u>C function:</u> <code>void</code> <b>mgl_tube_xyzr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dt><a name="index-mgl_005ftube_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_tube_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>float</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws tube with radius <var>r</var> between points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} in 3D space.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tube-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-Tube-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>float</code> r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftube_005fxyr"></a><u>C function:</u> <code>void</code> <b>mgl_tube_xyr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dt><a name="index-mgl_005ftube_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_tube_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>float</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws tube with radius <var>r</var> between points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tube-5"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-Tube-6"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>y, <code>float</code> r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftube_005fr"></a><u>C function:</u> <code>void</code> <b>mgl_tube_r</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dt><a name="index-mgl_005ftube"></a><u>C function:</u> <code>void</code> <b>mgl_tube</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>float</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws tube with radius <var>r</var> between points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>), where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Mark"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tube" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TextMark" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mark-1"></a>
+<h3 class="subsection">3.9.13 Mark</h3>
+<a name="index-Mark-3"></a>
+
+<p>These functions draw marks with size <var>r</var>*<var>MarkSize</var> (see section <a href="#Default-sizes">Default sizes</a>) at points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx=r.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). If you need to draw markers of the same size then you may use <a href="#Plot">Plot</a> function. See also <a href="#Plot">Plot</a>, <a href="#TextMark">TextMark</a>, <a href="#Stem">Stem</a>, <a href="#Error">Error</a>. See section <a href="mathgl_en_9.html#Mark-sample">Mark sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Mark-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmark_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_mark_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws marks for points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} in 3D space.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Mark-5"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmark_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_mark_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws marks for points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Mark-6"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mark</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmark_005fy"></a><u>C function:</u> <code>void</code> <b>mgl_mark_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>The function draws marks for points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>), where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="TextMark"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mark" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Error" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TextMark-1"></a>
+<h3 class="subsection">3.9.14 TextMark</h3>
+<a name="index-TextMark"></a>
+
+<p>These functions draw string <var>text</var> as marks with size proportional to <var>r</var>*<var>MarkSize</var> (see section <a href="#Default-sizes">Default sizes</a>) at points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx=r.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). See also <a href="#Plot">Plot</a>, <a href="#Mark">Mark</a>, <a href="#Stem">Stem</a>. See section <a href="mathgl_en_9.html#TextMark-sample">TextMark sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-TextMark-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const char *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TextMark-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const wchar_t *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftextmarkw_005fxyzr"></a><u>C function:</u> <code>void</code> <b>mgl_textmarkw_xyzr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const wchar_t *</code>text, <code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005ftextmark_005fxyzr"></a><u>C function:</u> <code>void</code> <b>mgl_textmark_xyzr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const char *</code>text, <code>const char *</code>fnt)</i></dt>
+<dd><p>The function draws textual marks for points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} in 3D space.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TextMark-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TextMark-4"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const wchar_t *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftextmarkw_005fxyr"></a><u>C function:</u> <code>void</code> <b>mgl_textmarkw_xyr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const wchar_t *</code>text, <code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005ftextmark_005fxyr"></a><u>C function:</u> <code>void</code> <b>mgl_textmark_xyr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>text, <code>const char *</code>fnt)</i></dt>
+<dd><p>The function draws textual marks for points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TextMark-5"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TextMark-6"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const wchar_t *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftextmarkw_005fyr"></a><u>C function:</u> <code>void</code> <b>mgl_textmarkw_yr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const wchar_t *</code>text, <code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005ftextmark_005fyr"></a><u>C function:</u> <code>void</code> <b>mgl_textmark_yr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>text, <code>const char *</code>fnt)</i></dt>
+<dd><p>The function draws textual marks for points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>), where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TextMark-7"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TextMark-8"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>y, <code>const wchar_t *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftextmarkw"></a><u>C function:</u> <code>void</code> <b>mgl_textmarkw</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const wchar_t *</code>text, <code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005ftextmark"></a><u>C function:</u> <code>void</code> <b>mgl_textmark</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>text, <code>const char *</code>fnt)</i></dt>
+<dd><p>The function draws textual marks for points {<var>x</var>[i], <var>y</var>[i]} in plane <var>z</var>=<var>zVal</var> (default in plane <var>z</var>=<var>Min.z</var>), where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x]. The mark sizes <var>r</var>[i]=1 for all points.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Error"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TextMark" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#BoxPlot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Error-1"></a>
+<h3 class="subsection">3.9.15 Error</h3>
+<a name="index-Error-2"></a>
+
+<p>These functions draw error boxes at points {<var>x</var>[i], <var>y</var>[i]} on plane <var>z</var> = <var>zVal</var> (by default <var>z</var>=<var>Min.z</var>). This can be useful, for example, in experimental points, or to show numeric error or some estimations and so on. The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=y.nx=z.nx=r.nx</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). See also <a href="#Plot">Plot</a>. See section <a href="mathgl_en_9.html#Error-sample">Error sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-Error-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Error</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ex, <code>const mglData &amp;</code>ey, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ferror_005fexy"></a><u>C function:</u> <code>void</code> <b>mgl_error_exy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ex, <code>const HMDT</code> ey, <code>const char *</code>pen)</i></dt>
+<dd><p>Draws a error box {<var>ex</var>, <var>ey</var>} in point position {<var>x</var>, <var>y</var>}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Error-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Error</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ey, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ferror_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_error_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ey, <code>const char *</code>pen)</i></dt>
+<dd><p>Draws a error box <var>ey</var> (along only one direction) in point position {<var>x</var>, <var>y</var>}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Error-5"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Error</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ey, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ferror"></a><u>C function:</u> <code>void</code> <b>mgl_error</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> ey, <code>const char *</code>pen)</i></dt>
+<dd><p>Draws a error box <var>ey</var> (along only one direction) in point position {<var>x</var>, <var>y</var>}, where <var>x</var>[i] values are equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="BoxPlot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Error" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="BoxPlot-1"></a>
+<h3 class="subsection">3.9.16 BoxPlot</h3>
+<a name="index-BoxPlot"></a>
+
+<p>These functions draw boxplot (also known as a box-and-whisker diagram) at points <var>x</var>[i] on plane <var>z</var> = <var>zVal</var> (by default <var>z</var>=<var>Min.z</var>). This is five-number summaries of data <var>a</var>[i,j] (minimum, lower quartile (Q1), median (Q2), upper quartile (Q3) and maximum) along second (j-th) direction. The sizes of 1st dimension <strong>must be equal</strong> for all arrays <code>x.nx=a.nx</code>. String <var>pen</var> specifies the color and style of line (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). See also <a href="#Plot">Plot</a>, <a href="#Error">Error</a>, <a href="#Bars">Bars</a>, <a href="#Default-sizes">Default sizes</a>. See section <a href="mathgl_en_9.html#BoxPlot-sample">BoxPlot sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-BoxPlot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>BoxPlot</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fboxplot_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_boxplot_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const char *</code>pen)</i></dt>
+<dd><p>Draws a boxplot with specified values of coordinate <var>x</var>[i].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-BoxPlot-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>BoxPlot</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fboxplot"></a><u>C function:</u> <code>void</code> <b>mgl_boxplot</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>pen)</i></dt>
+<dd><p>Draws a boxplot with <var>x</var>[i] values equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t2D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#BoxPlot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mesh" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-plotting-1"></a>
+<h2 class="section">3.10 2D plotting</h2>
+
+<p>These functions perform plotting of 2D data. 2D means that data depend from 2 independent parameters like matrix <em>f(x_i,y_j), i=1...n, j=1...m</em>. There are several generally different types of data representations: simple mesh lines plot (Mesh), surface plot (Surf), surface plot by boxes (Boxs), surface plot by tiles (Tile), waterfall-like plot (Fall), belt plot (Belt), density plot (Dens), contour lines plot (Cont), solid contours plot (ContF) and its rotational figure (Axial). Cont, ContF and Axial functions have variants for automatic and manual selection of level values for contours. Also there are functions for plotting data grid lines according to the data format (Grid) for enhancing density or contour plots. Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. Parameters of color scheme are specified by the string argument. See section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>. See section <a href="mathgl_en_9.html#g_t2D-plot-sample">2D plot sample</a>, for sample code and picture.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Mesh">3.10.1 Mesh</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fall">3.10.2 Fall</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Belt">3.10.3 Belt</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf">3.10.4 Surf</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Boxs">3.10.5 Boxs</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tile">3.10.6 Tile</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens">3.10.7 Dens</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont">3.10.8 Cont</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF">3.10.9 ContF</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContD">3.10.10 ContD</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axial">3.10.11 Axial</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grad">3.10.12 Grad</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grid">3.10.13 Grid</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Mesh"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fall" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mesh-1"></a>
+<h3 class="subsection">3.10.1 Mesh</h3>
+<a name="index-Mesh"></a>
+
+<dl>
+<dt><a name="index-Mesh-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mesh</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmesh_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_mesh_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws mesh lines for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Mesh lines are plotted for each z slice of the data. See also <a href="#Surf">Surf</a>, <a href="#Fall">Fall</a>, MeshNum (see section <a href="#Other-settings">Other settings</a>), <a href="#Cont">Cont</a>, <a href="#Tens">Tens</a>. See section <a href="mathgl_en_9.html#Mesh-sample">Mesh sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Mesh-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mesh</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmesh"></a><u>C function:</u> <code>void</code> <b>mgl_mesh</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fall"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mesh" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Belt" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fall-1"></a>
+<h3 class="subsection">3.10.2 Fall</h3>
+<a name="index-Fall"></a>
+
+<dl>
+<dt><a name="index-Fall-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Fall</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ffall_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_fall_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws fall lines for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. This plot can be used for plotting several curves shifted in depth one from another. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If <var>sch</var> contain &lsquo;<samp>x</samp>&rsquo; then lines are drawn along x-direction else (by default) lines are drawn along y-direction. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Fall lines are plotted for each z slice of the data. See also <a href="#Belt">Belt</a>, <a href="#Mesh">Mesh</a>, <a href="#Tens">Tens</a>, MeshNum (see section <a href="#Other-settings">Other settings</a>). See section <a href="mathgl_en_9.html#Fall-sample">Fall sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fall-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Fall</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ffall"></a><u>C function:</u> <code>void</code> <b>mgl_fall</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Belt"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fall" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Belt-1"></a>
+<h3 class="subsection">3.10.3 Belt</h3>
+<a name="index-Belt"></a>
+
+<dl>
+<dt><a name="index-Belt-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Belt</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbelt_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_belt_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws belts for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. This plot can be used as 3d generalization of Plot (see section <a href="#Plot">Plot</a>). String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If <var>sch</var> contain &lsquo;<samp>x</samp>&rsquo; then belts are drawn along x-direction else (by default) belts are drawn along y-direction. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Belts are plotted for each z slice of the data. See also <a href="#Fall">Fall</a>, <a href="#Surf">Surf</a>, <a href="#Plot">Plot</a>, MeshNum (see section <a href="#Other-settings">Other settings</a>). See section <a href="mathgl_en_9.html#Belt-sample">Belt sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Belt-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Belt</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbelt"></a><u>C function:</u> <code>void</code> <b>mgl_belt</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Surf"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Belt" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Boxs" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-1"></a>
+<h3 class="subsection">3.10.4 Surf</h3>
+<a name="index-Surf"></a>
+
+<dl>
+<dt><a name="index-Surf-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_surf_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Mesh">Mesh</a>, <a href="#Dens">Dens</a>, <a href="#Belt">Belt</a>, <a href="#Tile">Tile</a>, <a href="#Boxs">Boxs</a>, <a href="#SurfC">SurfC</a>, <a href="#SurfA">SurfA</a>. See section <a href="mathgl_en_9.html#Surf-sample">Surf sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf"></a><u>C function:</u> <code>void</code> <b>mgl_surf</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Boxs"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tile" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Boxs-1"></a>
+<h3 class="subsection">3.10.5 Boxs</h3>
+<a name="index-Boxs"></a>
+
+<dl>
+<dt><a name="index-Boxs-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Boxs</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fboxs_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_boxs_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws vertical boxes for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Surf">Surf</a>, <a href="#Dens">Dens</a>, <a href="#Tile">Tile</a>, <a href="#Step">Step</a>. See section <a href="mathgl_en_9.html#Boxs-sample">Boxs sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Boxs-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Boxs</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fboxs"></a><u>C function:</u> <code>void</code> <b>mgl_boxs</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Tile"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Boxs" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tile-1"></a>
+<h3 class="subsection">3.10.6 Tile</h3>
+<a name="index-Tile"></a>
+
+<dl>
+<dt><a name="index-Tile-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tile</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftile_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_tile_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws horizontal tiles for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. Such plot can be used as 3d generalization of Step (see section <a href="#Step">Step</a>). String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Surf">Surf</a>, <a href="#Boxs">Boxs</a>, <a href="#Step">Step</a>, <a href="#TileS">TileS</a>. See section <a href="mathgl_en_9.html#Tile-sample">Tile sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tile-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tile</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftile"></a><u>C function:</u> <code>void</code> <b>mgl_tile</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Dens"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tile" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-1"></a>
+<h3 class="subsection">3.10.7 Dens</h3>
+<a name="index-Dens"></a>
+
+<dl>
+<dt><a name="index-Dens-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dens</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_dens_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws density plot for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} at <var>z</var> = <var>zVal</var>. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Surf">Surf</a>, <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>, <a href="#Boxs">Boxs</a>, <a href="#Tile">Tile</a>, <a href="#DensXYZ">DensXYZ</a>. See section <a href="mathgl_en_9.html#Dens-sample">Dens sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Dens-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dens</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens"></a><u>C function:</u> <code>void</code> <b>mgl_dens</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cont"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-1"></a>
+<h3 class="subsection">3.10.8 Cont</h3>
+<a name="index-Cont"></a>
+
+<dl>
+<dt><a name="index-Cont-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fxy_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_cont_xy_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws contour lines for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} at <var>z</var> = <var>zVal</var> (or for <var>z=v</var>[k] if <code>zVal==NAN</code>). Contours are plotted for <var>z</var>[i,j]=<var>v</var>[k] where <var>v</var>[k] are values of data array <var>v</var>. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. If string <var>sch</var> have symbol &lsquo;<samp>t</samp>&rsquo; or &lsquo;<samp>T</samp>&rsquo; then contour labels <var>v</var>[k] will be drawn below (or above) the contours. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Dens">Dens</a>, <a href="#ContF">ContF</a>, <a href="#ContD">ContD</a>, <a href="#Axial">Axial</a>, <a href="#ContXYZ">ContXYZ</a>. See section <a href="mathgl_en_9.html#Cont-sample">Cont sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005f_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_cont__val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_cont_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>The same as first one with vector <var>v</var> of <var>num</var>-th elements equidistantly distributed in range [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont"></a><u>C function:</u> <code>void</code> <b>mgl_cont</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContF"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContD" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF-1"></a>
+<h3 class="subsection">3.10.9 ContF</h3>
+<a name="index-ContF"></a>
+
+<dl>
+<dt><a name="index-ContF-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fxy_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_contf_xy_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws solid (or filled) contour lines for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} at <var>z</var> = <var>zVal</var> (or for <var>z=v</var>[k] if <code>zVal==NAN</code>). Contours are plotted for <var>z</var>[i,j]=<var>v</var>[k] where <var>v</var>[k] are values of data array <var>v</var> (must be <code>v.nx&gt;2</code>). String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Dens">Dens</a>, <a href="#Cont">Cont</a>, <a href="#Axial">Axial</a>, <a href="#ContFXYZ">ContFXYZ</a>. See section <a href="mathgl_en_9.html#ContF-sample">ContF sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_contf_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_contf_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>The same as first one with vector <var>v</var> of <var>num</var>-th elements equidistantly distributed in range [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf"></a><u>C function:</u> <code>void</code> <b>mgl_contf</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContD"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axial" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContD-1"></a>
+<h3 class="subsection">3.10.10 ContD</h3>
+<a name="index-ContD"></a>
+
+<dl>
+<dt><a name="index-ContD-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContD</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontd_005fxy_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_contd_xy_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws solid (or filled) contour lines for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} at <var>z</var> = <var>zVal</var> (or for <var>z=v</var>[k] if <code>zVal==NAN</code>) with manual colors. Contours are plotted for <var>z</var>[i,j]=<var>v</var>[k] where <var>v</var>[k] are values of data array <var>v</var> (must be <code>v.nx&gt;2</code>). String <var>sch</var> sets the contour colors: the color of k-th contour is determined by character <code>sch[k%strlen(sch)]</code>. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Dens">Dens</a>, <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>. See section <a href="mathgl_en_9.html#ContD-sample">ContD sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContD-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContD</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontd_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_contd_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContD-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContD</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontd_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_contd_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>The same as first one with vector <var>v</var> of <var>num</var>-th elements equidistantly distributed in range [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContD-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContD</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontd"></a><u>C function:</u> <code>void</code> <b>mgl_contd</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axial"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContD" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grad" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axial-1"></a>
+<h3 class="subsection">3.10.11 Axial</h3>
+<a name="index-Axial"></a>
+
+<dl>
+<dt><a name="index-Axial-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axial</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005faxial_005fxy_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_axial_xy_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws surface which is result of contour plot rotation for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. Contours are plotted for <var>z</var>[i,j]=<var>v</var>[k] where <var>v</var>[k] are values of data array <var>v</var>. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. If string contain symbols &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo; then rotation axis <var>AxialDir</var> (see section <a href="#Other-settings">Other settings</a>) will be set to specified direction. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>, <a href="#Torus">Torus</a>, <a href="#Surf3">Surf3</a>. See section <a href="mathgl_en_9.html#Axial-sample">Axial sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Axial-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axial</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005faxial_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_axial_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Axial-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axial</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005faxial_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_axial_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>The same as first one with vector <var>v</var> of <var>num</var>-th elements equidistantly distributed in range [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Axial-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axial</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005faxial"></a><u>C function:</u> <code>void</code> <b>mgl_axial</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Grad"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axial" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grid" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grad-1"></a>
+<h3 class="subsection">3.10.12 Grad</h3>
+<a name="index-Grad"></a>
+
+<dl>
+<dt><a name="index-Grad-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grad</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>phi, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>)</i></dt>
+<dt><a name="index-mgl_005fgrad_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_grad_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws gradient lines for scalar field <var>phi</var>[i,j,k] specified parametrically {<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]}. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. Number of lines is proportional to <var>num</var>. If <var>num</var>&lt;0 then lines start from borders only. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var>, <var>phi</var> should be equal <code>x.nx=phi.nx &amp;&amp; y.nx=phi.ny &amp;&amp; z.nx=phi.nz</code> or <code>x.nx=y.nx=z.nx=phi.nx &amp;&amp; x.ny=y.ny=z.ny=phi.ny &amp;&amp; x.nz=y.nz=z.nz=phi.nz</code>. Arrays <var>x</var>, <var>y</var> and <var>z</var> can be vectors (not matrices as <var>phi</var>). See also <a href="#Dens3">Dens3</a>, <a href="#Cont3">Cont3</a>, <a href="#Flow">Flow</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Grad-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grad</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fgrad_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_grad_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws gradient lines for scalar field <var>phi</var>[i,j] specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>phi</var>[i,j]} at <var>z</var> = <var>zVal</var>. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. Number of lines is proportional to <var>num</var>. If <var>num</var>&lt;0 then lines start from borders only. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>phi</var> should be equal <code>x.nx=phi.nx &amp;&amp; y.nx=phi.ny</code> or <code>x.nx=y.nx=phi.nx &amp;&amp; x.ny=y.ny=phi.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>phi</var>). Lines are plotted for each z slice of the data. See also <a href="#Dens">Dens</a>, <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>, <a href="#Flow">Flow</a>. See section <a href="mathgl_en_9.html#Grad-sample">Grad sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Grad-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grad</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fgrad"></a><u>C function:</u> <code>void</code> <b>mgl_grad</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Grid"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grad" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grid-1"></a>
+<h3 class="subsection">3.10.13 Grid</h3>
+<a name="index-Grid-2"></a>
+
+<dl>
+<dt><a name="index-Grid-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_grid_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws grid lines for density plot of surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} at <var>z</var> = <var>zVal</var>. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Grid is plotted for each z slice of the data. See also <a href="#Dens">Dens</a>, <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Grid-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid"></a><u>C function:</u> <code>void</code> <b>mgl_grid</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="g_t3D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grid" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-plotting-1"></a>
+<h2 class="section">3.11 3D plotting</h2>
+
+<p>These functions perform plotting of 3D data. 3D means that data depend from 3 independent parameters like matrix <em>f(x_i,y_j,z_k), i=1...n, j=1...m, k=1...l</em>. There are 5 generally different types of data representations: isosurface or surface of constant value (Surf3), density plot at slices (Dens3), contour lines plot at slices (Cont3), solid contours plot at slices (ContF3) and cloud-like plot (Cloud). Surf3, Cont3 and ContF3 functions have variants for automatic and manual selection of level values for surfaces/contours. Also there are functions for plotting data grid lines according to the data format (Grid3) for enhancing density or contour plots. Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. Parameters of color scheme are specified by the string argument. See section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>. See section <a href="mathgl_en_9.html#g_t3D-plot-sample">3D plot sample</a>, for sample code and picture.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf3">3.11.1 Surf3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens3">3.11.2 Dens3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont3">3.11.3 Cont3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF3">3.11.4 ContF3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grid3">3.11.5 Grid3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cloud">3.11.6 Cloud</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Beam">3.11.7 Beam</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Surf3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3-1"></a>
+<h3 class="subsection">3.11.1 Surf3</h3>
+<a name="index-Surf3"></a>
+
+<dl>
+<dt><a name="index-Surf3-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3</b><i> (<code>float</code> val, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3_005fxyz_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_surf3_xyz_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl)</i></dt>
+<dd><p>The function draws isosurface plot for 3d array specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) at <var>a</var>(x,y,z)=<var>val</var>. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). Note, that there is possibility of incorrect plotting due to uncertainty of cross-section defining if there are two or more isosurface intersections inside one cell. See also <a href="#Cloud">Cloud</a>, <a href="#Dens3">Dens3</a>, <a href="#Surf3C">Surf3C</a>, <a href="#Surf3A">Surf3A</a>, <a href="#Axial">Axial</a>. See section <a href="mathgl_en_9.html#Surf3-sample">Surf3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3</b><i> (<code>float</code> val, <code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_surf3_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> a, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_surf3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in range [<var>Cmin</var>, <var>Cmax</var>] isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3"></a><u>C function:</u> <code>void</code> <b>mgl_surf3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Dens3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens3-1"></a>
+<h3 class="subsection">3.11.2 Dens3</h3>
+<a name="index-Dens3"></a>
+<a name="index-DensA"></a>
+
+<dl>
+<dt><a name="index-Dens3-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dens3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdens3_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_dens3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl)</i></dt>
+<dd><p>The function draws density plot for 3d data specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). Density is plotted at slice <var>sVal</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string <var>stl</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> must be equal. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). See also <a href="#Cont3">Cont3</a>, <a href="#ContF3">ContF3</a>, <a href="#Dens">Dens</a>, <a href="#Grid3">Grid3</a>. See section <a href="mathgl_en_9.html#Dens3-sample">Dens3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Dens3-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dens3</b><i> (<code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdens3"></a><u>C function:</u> <code>void</code> <b>mgl_dens3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DensA-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdens3_005fall_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_dens3_all_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl)</i></dt>
+<dd><p>Draws density plots at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DensA-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensA</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdens3_005fall"></a><u>C function:</u> <code>void</code> <b>mgl_dens3_all</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cont3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont3-1"></a>
+<h3 class="subsection">3.11.3 Cont3</h3>
+<a name="index-Cont3"></a>
+<a name="index-ContA"></a>
+
+<dl>
+<dt><a name="index-Cont3-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont3</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fxyz_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_cont3_xyz_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl)</i></dt>
+<dd><p>The function draws contour plot for 3d data specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). Contours are plotted for values specified in array <var>v</var> at slice <var>sVal</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. String <var>stl</var> sets the color scheme. Previous color scheme is used by default. If string <var>stl</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. If string <var>stl</var> have symbol &lsquo;<samp>t</samp>&rsquo; or &lsquo;<samp>T</samp>&rsquo; then contour labels <var>v</var>[k] will be drawn below (or above) the contours. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> must be equal. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). See also <a href="#Dens3">Dens3</a>, <a href="#ContF3">ContF3</a>, <a href="#Cont">Cont</a>, <a href="#Grid3">Grid3</a>. See section <a href="mathgl_en_9.html#Cont3-sample">Cont3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont3-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont3</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_cont3_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont3-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_cont3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>The same as first one with vector <var>v</var> of <var>num</var>-th elements equidistantly distributed in range [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont3-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont3</b><i> (<code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3"></a><u>C function:</u> <code>void</code> <b>mgl_cont3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContA-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fall_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_cont3_all_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Draws contour plots at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContA-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContA</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fall"></a><u>C function:</u> <code>void</code> <b>mgl_cont3_all</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContF3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grid3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF3-1"></a>
+<h3 class="subsection">3.11.4 ContF3</h3>
+<a name="index-ContF3"></a>
+<a name="index-ContFA"></a>
+
+<dl>
+<dt><a name="index-ContF3-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF3</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fxyz_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_contf3_xyz_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl)</i></dt>
+<dd><p>The function draws solid (or filled) contour plot for 3d data specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). Contours are plotted for values specified in array <var>v</var> at slice <var>sVal</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string <var>stl</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> must be equal. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). See also <a href="#Dens3">Dens3</a>, <a href="#Cont3">Cont3</a>, <a href="#ContF">ContF</a>, <a href="#Grid3">Grid3</a>. See section <a href="mathgl_en_9.html#ContF3-sample">ContF3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF3-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF3</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_contf3_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF3-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_contf3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>The same as first one with vector <var>v</var> of <var>num</var>-th elements equidistantly distributed in range [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF3-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF3</b><i> (<code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3"></a><u>C function:</u> <code>void</code> <b>mgl_contf3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFA-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fall_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_contf3_all_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Draws contour plots at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFA-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFA</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fall"></a><u>C function:</u> <code>void</code> <b>mgl_contf3_all</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Grid3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cloud" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grid3-1"></a>
+<h3 class="subsection">3.11.5 Grid3</h3>
+<a name="index-Grid3"></a>
+<a name="index-GridA"></a>
+
+<dl>
+<dt><a name="index-Grid3-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid3_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_grid3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl)</i></dt>
+<dd><p>The function draws grid for 3d data specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). Grid is plotted at slice <var>sVal</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> must be equal. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). See also <a href="#Cont3">Cont3</a>, <a href="#ContF3">ContF3</a>, <a href="#Dens3">Dens3</a>, <a href="#Grid">Grid</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Grid3-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid3</b><i> (<code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid3"></a><u>C function:</u> <code>void</code> <b>mgl_grid3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GridA-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>GridA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid3_005fall_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_grid3_all_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl)</i></dt>
+<dd><p>Draws grids at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GridA-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>GridA</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid3_005fall"></a><u>C function:</u> <code>void</code> <b>mgl_grid3_all</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cloud"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grid3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Beam" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cloud-1"></a>
+<h3 class="subsection">3.11.6 Cloud</h3>
+<a name="index-CloudP"></a>
+<a name="index-CloudQ"></a>
+
+<dl>
+<dt><a name="index-Cloud"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cloud</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fcloud_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_cloud_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dd><p>The function draws cloud plot for 3d data specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). This plot is a set of cubes with color and transparency proportional to value of <var>a</var>. The resulting plot is like cloud &ndash; low value is transparent but higher ones are not. The number of plotting cells depend on MeshNum (see section <a href="#Other-settings">Other settings</a>). String <var>sch</var> sets the color scheme. Previous color scheme is used by default. Parameter <var>alpha</var> changes the overall transparency of plot. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> must be equal. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). See also <a href="#Surf3">Surf3</a>. See section <a href="mathgl_en_9.html#Cloud-sample">Cloud sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cloud-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cloud</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fcloud"></a><u>C function:</u> <code>void</code> <b>mgl_cloud</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CloudP-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>CloudP</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fcloudp_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_cloudp_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dd><p>The same as first one but the semi-transparent points are used instead of cubes. See section <a href="mathgl_en_9.html#CloudP-sample">CloudP sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CloudP-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>CloudP</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fcloudp"></a><u>C function:</u> <code>void</code> <b>mgl_cloudp</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Beam"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cloud" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Beam-1"></a>
+<h3 class="subsection">3.11.7 Beam</h3>
+<a name="index-Beam"></a>
+
+<dl>
+<dt><a name="index-Beam-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Beam</b><i> (<code>float</code> val, <code>const mglData &amp;</code>tr, <code>const mglData &amp;</code>g1, <code>const mglData &amp;</code>g2, <code>const mglData &amp;</code>a, <code>float</code> r, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fbeam_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_beam_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> tr, <code>const HMDT</code> g1, <code>const HMDT</code> g2, <code>const HMDT</code> a, <code>float</code> r, <code>const char *</code>stl, <code>int</code> flag)</i></dt>
+<dd><p>Draws the isosurface for 3d array <var>a</var> at constant values of <var>a</var>=<var>val</var>. This is special kind of plot for <var>a</var> specified in accompanied coordinates along curve <var>tr</var> with orts <var>g1</var>, <var>g2</var> and with transverse scale <var>r</var>. Variable <var>flag</var> is bitwise: &lsquo;<samp>0x1</samp>&rsquo; - draw in accompanied (not laboratory) coordinates; &lsquo;<samp>0x2</samp>&rsquo; - draw projection to <em>\rho-z</em> plane; &lsquo;<samp>0x4</samp>&rsquo; - draw normalized in each slice field. The x-size of data arrays <var>tr</var>, <var>g1</var>, <var>g2</var> must be nx&gt;2. The y-size of data arrays <var>tr</var>, <var>g1</var>, <var>g2</var> and z-size of the data array <var>a</var> must be equal. See section <a href="#Surf3">Surf3</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Beam-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Beam</b><i> (<code>const mglData &amp;</code>tr, <code>const mglData &amp;</code>g1, <code>const mglData &amp;</code>g2, <code>const mglData &amp;</code>a, <code>float</code> r, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> flag=<code>0</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fbeam"></a><u>C function:</u> <code>void</code> <b>mgl_beam</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> tr, <code>const HMDT</code> g1, <code>const HMDT</code> g2, <code>const HMDT</code> a, <code>float</code> r, <code>const char *</code>stl, <code>int</code> flag=<code>0</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in range [<var>Cmin</var>, <var>Cmax</var>] isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Dual-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Beam" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfC" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dual-plotting-1"></a>
+<h2 class="section">3.12 Dual plotting</h2>
+
+<p>These plotting functions draw <em>two matrix</em> simultaneously. There are 5 generally different types of data representations: surface or isosurface colored by other data (SurfC, Surf3C), surface or isosurface transpared by other data (SurfA, Surf3A), tiles with variable size (TileS), mapping diagram (Map), STFA diagram (STFA). Surf3A and Surf3C have variants for automatic and manual selection of level values for isosurfaces. Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. Parameters of color scheme are specified by the string argument. See section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#SurfC">3.12.1 SurfC</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3C">3.12.2 Surf3C</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#SurfA">3.12.3 SurfA</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3A">3.12.4 Surf3A</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TileS">3.12.5 TileS</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Map">3.12.6 Map</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#STFA">3.12.7 STFA</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="SurfC"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3C" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfC-1"></a>
+<h3 class="subsection">3.12.1 SurfC</h3>
+<a name="index-SurfC"></a>
+
+<dl>
+<dt><a name="index-SurfC-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SurfC</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurfc_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_surfc_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} and color it by matrix <var>c</var>[i,j]. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. All dimensions of arrays <var>z</var> and <var>c</var> must be equal. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Surf">Surf</a>, <a href="#SurfA">SurfA</a>, <a href="#Surf3C">Surf3C</a>. See section <a href="mathgl_en_9.html#SurfC-sample">SurfC sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SurfC-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SurfC</b><i> (<code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurfc"></a><u>C function:</u> <code>void</code> <b>mgl_surfc</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Surf3C"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfC" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfA" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3C-1"></a>
+<h3 class="subsection">3.12.2 Surf3C</h3>
+<a name="index-Surf3C"></a>
+
+<dl>
+<dt><a name="index-Surf3C-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3C</b><i> (<code>float</code> val, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3c_005fxyz_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_surf3c_xyz_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>stl)</i></dt>
+<dd><p>The function draws isosurface plot for 3d array specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) at <var>a</var>(x,y,z)=<var>val</var>. It is mostly the same as Surf3() function but the color of isosurface depends on values of array <var>c</var>. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. All dimensions of arrays <var>z</var> and <var>c</var> must be equal. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). Note, that there is possibility of incorrect plotting due to uncertainty of cross-section defining if there are two or more isosurface intersections inside one cell. See also <a href="#Surf3">Surf3</a>, <a href="#SurfC">SurfC</a>, <a href="#Surf3A">Surf3A</a>. See section <a href="mathgl_en_9.html#Surf3C-sample">Surf3C sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3C-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3C</b><i> (<code>float</code> val, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3c_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_surf3c_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3C-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3C</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3c_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_surf3c_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in range [<var>Cmin</var>, <var>Cmax</var>] isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3C-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3C</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3c"></a><u>C function:</u> <code>void</code> <b>mgl_surf3c</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="SurfA"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3C" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3A" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfA-1"></a>
+<h3 class="subsection">3.12.3 SurfA</h3>
+<a name="index-SurfA"></a>
+
+<dl>
+<dt><a name="index-SurfA-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SurfA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurfa_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_surfa_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} and transparent it by matrix <var>c</var>[i,j]. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. All dimensions of arrays <var>z</var> and <var>c</var> must be equal. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#Surf">Surf</a>, <a href="#SurfC">SurfC</a>, <a href="#Surf3A">Surf3A</a>, <a href="#TileS">TileS</a>. See section <a href="mathgl_en_9.html#SurfA-sample">SurfA sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SurfA-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SurfA</b><i> (<code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurfa"></a><u>C function:</u> <code>void</code> <b>mgl_surfa</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Surf3A"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfA" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TileS" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3A-1"></a>
+<h3 class="subsection">3.12.4 Surf3A</h3>
+<a name="index-Surf3A"></a>
+
+<dl>
+<dt><a name="index-Surf3A-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3A</b><i> (<code>float</code> val, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3a_005fxyz_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_surf3a_xyz_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>stl)</i></dt>
+<dd><p>The function draws isosurface plot for 3d array specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) at <var>a</var>(x,y,z)=<var>val</var>. It is mostly the same as Surf3() function but the transparency of isosurface depends on values of <var>b</var> array. This allows one to remove the part of isosurface where <var>b</var> is negligibly small (useful for phase plotting of a beam or a pulse). String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. All dimensions of arrays <var>z</var> and <var>c</var> must be equal. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). Note, that there is possibility of incorrect plotting due to uncertainty of cross-section defining if there are two or more isosurface intersections inside one cell. See also <a href="#Surf3">Surf3</a>, <a href="#SurfA">SurfA</a>, <a href="#Surf3C">Surf3C</a>. See section <a href="mathgl_en_9.html#Surf3A-sample">Surf3A sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3A-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3A</b><i> (<code>float</code> val, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3a_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_surf3a_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3A-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3A</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3a_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_surf3a_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in range [<var>Cmin</var>, <var>Cmax</var>] isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3A-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3A</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3a"></a><u>C function:</u> <code>void</code> <b>mgl_surf3a</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="TileS"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3A" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Map" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TileS-1"></a>
+<h3 class="subsection">3.12.5 TileS</h3>
+<a name="index-TileS"></a>
+
+<dl>
+<dt><a name="index-TileS-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TileS</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftiles_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_tiles_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws horizontal tiles for surface specified parametrically {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. It is mostly the same as Tile() but the size of tiles is determined by <var>r</var> array. This is some kind of &ldquo;transparency&rdquo; useful for exporting to EPS files. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>z</var> should be equal <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> or <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>z</var>). Surface is plotted for each z slice of the data. See also <a href="#SurfA">SurfA</a>, <a href="#Tile">Tile</a>. See section <a href="mathgl_en_9.html#TileS-sample">TileS sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TileS-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TileS</b><i> (<code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftiles"></a><u>C function:</u> <code>void</code> <b>mgl_tiles</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Map"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TileS" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#STFA" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Map-1"></a>
+<h3 class="subsection">3.12.6 Map</h3>
+<a name="index-Map"></a>
+
+<dl>
+<dt><a name="index-Map-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Map</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> ks=<code>0</code>, <code>bool</code> pnts=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fmap_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_map_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>int</code> ks, <code>int</code> pnts)</i></dt>
+<dd><p>The function draws mapping plot for matrices {<var>ax</var>, <var>ay</var> } which parametrically depend on coordinates <var>x</var>, <var>y</var>. The initial position of the cell (point) is marked by color. Height is proportional to Jacobian(ax,ay). This plot is like Arnold diagram ???. If <code>pnts=false</code> then face is drawn otherwise the color ball at matrix knots are drawn. Parameter <var>ks</var> specifies the slice of matrices which will be used. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The size of <var>ax</var> and <var>ay</var> must be the same. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>ax</var> should be equal. Arrays <var>x</var>, <var>y</var> can be vectors (not matrix as <var>ax</var>). See section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>. See section <a href="mathgl_en_9.html#Map-sample">Map sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Map-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Map</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> ks=<code>0</code>, <code>bool</code> pnts=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fmap"></a><u>C function:</u> <code>void</code> <b>mgl_map</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>int</code> ks, <code>int</code> pnts)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="STFA"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Map" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="STFA-1"></a>
+<h3 class="subsection">3.12.7 STFA</h3>
+<a name="index-STFA"></a>
+
+<dl>
+<dt><a name="index-STFA-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>STFA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>re, <code>const mglData &amp;</code>im, <code>int</code> dn, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fstfa_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_stfa_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> re, <code>const HMDT</code> im, <code>int</code> dn, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Draws spectrogram of complex array <var>re</var>+i*<code>im</code> for Fourier size of <var>dn</var> points at plane <var>z=zVal</var>. Parameter <var>dn</var> is arbitrary even integer. For example in 1D case, result is density plot of data <em>res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn</em> with size {int(nx/dn), dn, ny}. At this array <var>re</var>, <var>im</var> parametrically depend on coordinates <var>x</var>, <var>y</var>. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The size of <var>re</var> and <var>im</var> must be the same. The minor dimensions of arrays <var>x</var>, <var>y</var>, <var>re</var> should be equal. Arrays <var>x</var>, <var>y</var> can be vectors (not matrix as <var>re</var>).  See section <a href="mathgl_en_9.html#STFA-sample">STFA sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-STFA-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>STFA</b><i> (<code>const mglData &amp;</code>re, <code>const mglData &amp;</code>im, <code>int</code> dn, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fstfa"></a><u>C function:</u> <code>void</code> <b>mgl_stfa</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> re, <code>const HMDT</code> im, <code>int</code> dn, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Vector-fields"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#STFA" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Traj" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vector-fields-1"></a>
+<h2 class="section">3.13 Vector fields</h2>
+
+<p>These functions perform plotting of 2D and 3D vector fields. There are 5 generally different types of vector fields representations: simple vector field (Vect), vectors along the curve (Traj), vector field by dew-drops (Dew), flow threads (Flow, FlowP), flow pipes (Pipe). Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. Parameters of color scheme are specified by the string argument. See section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Traj">3.13.1 Traj</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect">3.13.2 Vect</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectL">3.13.3 VectL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectC">3.13.4 VectC</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dew">3.13.5 Dew</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow">3.13.6 Flow</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#FlowP">3.13.7 FlowP</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe">3.13.8 Pipe</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Traj"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-fields" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Traj-1"></a>
+<h3 class="subsection">3.13.1 Traj</h3>
+<a name="index-Traj"></a>
+
+<dl>
+<dt><a name="index-Traj-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Traj</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> len=<code>0</code>)</i></dt>
+<dt><a name="index-Traj-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Traj</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>float</code> len=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005ftraj_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_traj_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code>x, <code>const HMDT</code>y, <code>const HMDT</code>z, <code>const HMDT</code>ax, <code>const HMDT</code>ay, <code>const HMDT</code>az, <code>const char *</code>sch, <code>float</code> len)</i></dt>
+<dt><a name="index-mgl_005ftraj_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_traj_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code>x, <code>const HMDT</code>y, <code>const HMDT</code>ax, <code>const HMDT</code>ay, <code>const char *</code>sch, <code>float</code> zVal, <code>float</code> len)</i></dt>
+<dd><p>The function draws vectors {<var>ax</var>, <var>ay</var>, <var>az</var>} along a curve {<var>x</var>, <var>y</var>, <var>z</var>}. The length of arrows are proportional to <em>\sqrtax^2+ay^2+az^2</em>. String <var>pen</var> specifies the color (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>pen=&quot;&quot;</code>) color from palette is used (see section <a href="#Palette-and-colors">Pallete and colors</a>). Parameter <var>len</var> set the vector length factor (if non-zero) or vector length to be proportional the distance between curve points (if <var>len</var>=0). The minor sizes of all arrays must be equal and large 2. The plots are drawn for each row if one of the data is the matrix. See also <a href="#Vect">Vect</a>. See section <a href="mathgl_en_9.html#Traj-sample">Traj sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Vect"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Traj" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectL" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-1"></a>
+<h3 class="subsection">3.13.2 Vect</h3>
+<a name="index-Vect"></a>
+
+<dl>
+<dt><a name="index-Vect-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Vect</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fvect_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_vect_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal, <code>int</code> flag)</i></dt>
+<dd><p>The function draws plane vector field plot for the field {<var>ax</var>, <var>ay</var>} depending parametrically on coordinates <var>x</var>, <var>y</var> at level <var>z=zVal</var>. The length and color of arrows are proportional to <em>\sqrtax^2+ay^2</em>. The number of arrows depend on <var>MeshNum</var> (see section <a href="#Other-settings">Other settings</a>). The color is specified by the string argument <var>sch</var>. Previous color scheme is used by default. Parameter <var>flag</var> is bitwise flag for setup the hachures (arrows): <code>MGL_VEC_COL</code> for drawing bi-color arrow, <code>MGL_VEC_LEN</code> for drawing fixed length arrows, <code>MGL_VEC_DOT</code> for drawing hachures with dots instead of arrows, <code>MGL_VEC_END</code> for drawing arrows to the cell point, <code>MGL_VEC_MID</code> for drawing arrows with center at cell point. The size of <var>ax</var> and <var>ay</var> must be equal. The minor dimensions of arrays <var>x</var>, <var>y</var> and <var>ax</var> must be equal too. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>ax</var>). The vector field is plotted for each z slice of <var>ax</var>, <var>ay</var>. See also <a href="#VectL">VectL</a>, <a href="#VectC">VectC</a>, <a href="#Flow">Flow</a>, <a href="#Dew">Dew</a>. See section <a href="mathgl_en_9.html#Vect-sample">Vect sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Vect-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Vect</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fvect_005f2d"></a><u>C function:</u> <code>void</code> <b>mgl_vect_2d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal, <code>int</code> flag)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Vect-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Vect</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fvect_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_vect_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>int</code> flag)</i></dt>
+<dd><p>This is 3D version of the first functions. Here arrays <var>ax</var>, <var>ay</var>, <var>az</var> must be 3-ranged tensors with equal sizes and the length and color of arrows is proportional to <em>\sqrtax^2+ay^2+az^2</em>. See section <a href="mathgl_en_9.html#Vect-3D-sample">Vect 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Vect-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Vect</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fvect_005f3d"></a><u>C function:</u> <code>void</code> <b>mgl_vect_3d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>int</code> flag)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="VectL"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectC" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectL-1"></a>
+<h3 class="subsection">3.13.3 VectL</h3>
+<a name="index-VectL"></a>
+
+<p>These functions are obsolete &ndash; use Vect() functions instead.
+</p>
+<dl>
+<dt><a name="index-VectL-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>VectL</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fvectl_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_vectl_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws plane vector field plot for the field {<var>ax</var>, <var>ay</var>} depending parametrically on coordinates <var>x</var>, <var>y</var> at level <var>z=zVal</var>. The length of hachures is proportional to <em>\sqrtax^2+ay^2</em>. The number of hachures depend on <var>MeshNum</var> (see section <a href="#Other-settings">Other settings</a>). Points are denote the start of hachures. The color is specified by the string argument <var>sch</var>. Previous color scheme is used by default. The size of <var>ax</var> and <var>ay</var> must be equal. The minor dimensions of arrays <var>x</var>, <var>y</var> and <var>ax</var> must be equal too. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>ax</var>). The vector field is plotted for each z slice of <var>ax</var>, <var>ay</var>. See also <a href="#Vect">Vect</a>, <a href="#VectC">VectC</a>, <a href="#Flow">Flow</a>, <a href="#Dew">Dew</a>. See section <a href="mathgl_en_9.html#VectL-sample">VectL sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-VectL-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>VectL</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fvectl_005f2d"></a><u>C function:</u> <code>void</code> <b>mgl_vectl_2d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-VectL-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>VectL</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fvectl_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_vectl_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch)</i></dt>
+<dd><p>This is 3D version of the first functions. Here arrays <var>ax</var>, <var>ay</var>, <var>az</var> must be 3-ranged tensors with equal sizes and the length of hachures is proportional to <em>\sqrtax^2+ay^2+az^2</em>. See section <a href="mathgl_en_9.html#VectL-3D-sample">VectL 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-VectL-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>VectL</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fvectl_005f3d"></a><u>C function:</u> <code>void</code> <b>mgl_vectl_3d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="VectC"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectL" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dew" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectC-1"></a>
+<h3 class="subsection">3.13.4 VectC</h3>
+<a name="index-VectC"></a>
+
+<p>These functions are obsolete &ndash; use Vect() functions instead.
+</p>
+<dl>
+<dt><a name="index-VectC-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>VectC</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fvectc_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_vectc_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws plane vector field plot for the field {<var>ax</var>, <var>ay</var>} depending parametrically on coordinates <var>x</var>, <var>y</var> at level <var>z=zVal</var>. The color of hachures is proportional to <em>\sqrtax^2+ay^2</em>. The number of hachures depend on <var>MeshNum</var> (see section <a href="#Other-settings">Other settings</a>). Points are denote the start of hachures. The color is specified by the string argument <var>sch</var>. Previous color scheme is used by default. The size of <var>ax</var> and <var>ay</var> must be equal. The minor dimensions of arrays <var>x</var>, <var>y</var> and <var>ax</var> must be equal too. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>ax</var>). The vector field is plotted for each z slice of <var>ax</var>, <var>ay</var>. See also <a href="#Vect">Vect</a>, <a href="#VectL">VectL</a>, <a href="#Flow">Flow</a>, <a href="#Dew">Dew</a>. See section <a href="mathgl_en_9.html#VectC-sample">VectC sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-VectC-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>VectC</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fvectc_005f2d"></a><u>C function:</u> <code>void</code> <b>mgl_vectc_2d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-VectC-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>VectC</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fvectc_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_vectc_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch)</i></dt>
+<dd><p>This is 3D version of the first functions. Here arrays <var>ax</var>, <var>ay</var>, <var>az</var> must be 3-ranged tensors with equal sizes and the color of hachures is proportional to <em>\sqrtax^2+ay^2+az^2</em>. See section <a href="mathgl_en_9.html#VectC-3D-sample">VectC 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-VectC-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>VectC</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fvectc_005f3d"></a><u>C function:</u> <code>void</code> <b>mgl_vectc_3d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Dew"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectC" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dew-1"></a>
+<h3 class="subsection">3.13.5 Dew</h3>
+<a name="index-Dew"></a>
+
+<dl>
+<dt><a name="index-Dew-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dew</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdew_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_dew_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws dew-drops for plane vector field {<var>ax</var>, <var>ay</var>} depending parametrically on coordinates <var>x</var>, <var>y</var> at level <var>z=zVal</var>. Note that this is very expensive plot in memory usage and creation time! The color of drops is proportional to <em>\sqrtax^2+ay^2</em>. The number of drops depend on <var>MeshNum</var> (see section <a href="#Other-settings">Other settings</a>). The color is specified by the string argument <var>sch</var>. Previous color scheme is used by default. The size of <var>ax</var> and <var>ay</var> must be equal. The minor dimensions of arrays <var>x</var>, <var>y</var> and <var>ax</var> must be equal too. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>ax</var>). The vector field is plotted for each z slice of <var>ax</var>, <var>ay</var>. See also <a href="#Vect">Vect</a>, <a href="#VectC">VectC</a>. See section <a href="mathgl_en_9.html#Dew-sample">Dew sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Dew-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dew</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdew"></a><u>C function:</u> <code>void</code> <b>mgl_dew</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Flow"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dew" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#FlowP" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-1"></a>
+<h3 class="subsection">3.13.6 Flow</h3>
+<a name="index-Flow"></a>
+
+<dl>
+<dt><a name="index-Flow-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flow</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>, <code>bool</code> central=<code>true</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fflow_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_flow_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>int</code> num, <code>int</code> central, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws flow threads for the plane vector field {<var>ax</var>, <var>ay</var>} parametrically depending on coordinates <var>x</var>, <var>y</var> at level z = <var>zVal</var>. Number of threads is proportional to <var>num</var>. Parameter <var>central</var> sets the thread start from center (if true) or only from edges (if false). From v.1.11 it is ignored and always equal to (<var>num</var>&gt;0). The color of lines is proportional to <em>\sqrtax^2+ay^2</em>. Warm color corresponds to normal flow (like attractor). Cold one corresponds to inverse flow (like source). String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The size of <var>ax</var> and <var>ay</var> must be equal. The minor dimensions of arrays <var>x</var>, <var>y</var> and <var>ax</var> must be equal too. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>ax</var>). The vector field is plotted for each z slice of <var>ax</var>, <var>ay</var>. See also <a href="#Pipe">Pipe</a>, <a href="#VectC">VectC</a>, <a href="#Vect">Vect</a>. See section <a href="mathgl_en_9.html#Flow-sample">Flow sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Flow-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flow</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>, <code>bool</code> central=<code>true</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fflow_005f2d"></a><u>C function:</u> <code>void</code> <b>mgl_flow_2d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>int</code> num, <code>int</code> central, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Flow-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flow</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>, <code>bool</code> central=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fflow_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_flow_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>int</code> num, <code>int</code> central)</i></dt>
+<dd><p>This is 3D version of the first functions. Here arrays <var>ax</var>, <var>ay</var>, <var>az</var> must be 3-ranged tensors with equal sizes and the color of line is proportional to <em>\sqrtax^2+ay^2+az^2</em>. See section <a href="mathgl_en_9.html#Flow-3D-sample">Flow 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Flow-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flow</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>, <code>bool</code> central=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fflow_005f3d"></a><u>C function:</u> <code>void</code> <b>mgl_flow_3d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>int</code> num, <code>int</code> central)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="FlowP"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="FlowP-1"></a>
+<h3 class="subsection">3.13.7 FlowP</h3>
+<a name="index-FlowP"></a>
+
+<dl>
+<dt><a name="index-FlowP-1"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>FlowP</b><i> (<code>mglPoint</code> p0, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-FlowP-2"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>FlowP</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fflowp_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_flowp_xy</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws flow thread for the plane vector field {<var>ax</var>, <var>ay</var>} parametrically depending on coordinates <var>x</var>, <var>y</var> from point <var>p0</var> at level z = <var>p0</var>.z. The color of lines is proportional to <em>\sqrtax^2+ay^2</em>. Warm color corresponds to normal flow (like attractor). Cold one corresponds to inverse flow (like source). String <var>sch</var> sets the color scheme. Previous color scheme is used by default. The size of <var>ax</var> and <var>ay</var> must be equal. The minor dimensions of arrays <var>x</var>, <var>y</var> and <var>ax</var> must be equal too. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>ax</var>). The vector field is plotted for each z slice of <var>ax</var>, <var>ay</var>. See also <a href="#Pipe">Pipe</a>, <a href="#VectC">VectC</a>, <a href="#Vect">Vect</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FlowP-3"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>FlowP</b><i> (<code>mglPoint</code> p0, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-FlowP-4"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>FlowP</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fflowp_005f2d"></a><u>C function:</u> <code>void</code> <b>mgl_flowp_2d</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FlowP-5"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>FlowP</b><i> (<code>mglPoint</code> p0, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-FlowP-6"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>FlowP</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fflowp_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_flowp_xyz</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch)</i></dt>
+<dd><p>This is 3D version of the first functions. Here arrays <var>ax</var>, <var>ay</var>, <var>az</var> must be 3-ranged tensors with equal sizes and the color of line is proportional to <em>\sqrtax^2+ay^2+az^2</em>. See section <a href="mathgl_en_9.html#Flow-3D-sample">Flow 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FlowP-7"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>FlowP</b><i> (<code>mglPoint</code> p0, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-FlowP-8"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>FlowP</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fflowp_005f3d"></a><u>C function:</u> <code>void</code> <b>mgl_flowp_3d</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Pipe"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#FlowP" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-1"></a>
+<h3 class="subsection">3.13.8 Pipe</h3>
+<a name="index-Pipe"></a>
+
+<dl>
+<dt><a name="index-Pipe-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pipe</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> r0=<code>0.05</code>, <code>int</code> num=<code>5</code>, <code>bool</code> central=<code>true</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fpipe_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_pipe_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> r0, <code>int</code> num, <code>int</code> central, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws flow pipes for the plane vector field {<var>ax</var>, <var>ay</var>} parametrically depending on coordinates <var>x</var>, <var>y</var> at level z = <var>zVal</var>. Number of pipes is proportional to <var>num</var>. Parameter <var>central</var> sets the pipe start from center (if true) or only from edges (if false). From v.1.11 it is ignored and always equal to (<var>num</var>&gt;0). The color of lines is proportional to <em>\sqrtax^2+ay^2</em>. Warm color corresponds to normal flow (like attractor). Cold one corresponds to inverse flow (like source). String <var>sch</var> sets the color scheme. Previous color scheme is used by default. Parameter <var>r0</var> set the base pipe radius. If <var>r0</var>&lt;0 then pipe radius is inverse proportional to amplitude. The size of <var>ax</var> and <var>ay</var> must be equal. The minor dimensions of arrays <var>x</var>, <var>y</var> and <var>ax</var> must be equal too. Arrays <var>x</var> and <var>y</var> can be vectors (not matrices as <var>ax</var>). The vector field is plotted for each z slice of <var>ax</var>, <var>ay</var>. See also <a href="#Flow">Flow</a>, <a href="#VectC">VectC</a>, <a href="#Vect">Vect</a>. See section <a href="mathgl_en_9.html#Pipe-sample">Pipe sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Pipe-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pipe</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> r0=<code>0.05</code>, <code>int</code> num=<code>5</code>, <code>bool</code> central=<code>true</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fpipe_005f2d"></a><u>C function:</u> <code>void</code> <b>mgl_pipe_2d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> r0, <code>int</code> num, <code>int</code> central, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Pipe-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pipe</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> r0=<code>0.05</code>, <code>int</code> num=<code>3</code>, <code>bool</code> central=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fpipe_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_pipe_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>float</code> r0, <code>int</code> num, <code>int</code> central)</i></dt>
+<dd><p>This is 3D version of the first functions. Here arrays <var>ax</var>, <var>ay</var>, <var>az</var> must be 3-ranged tensors with equal sizes and the color of line is proportional to <em>\sqrtax^2+ay^2+az^2</em>. See section <a href="mathgl_en_9.html#Pipe-3D-sample">Pipe 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Pipe-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pipe</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> r0=<code>0.05</code>, <code>int</code> num=<code>3</code>, <code>bool</code> central=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fpipe_005f3d"></a><u>C function:</u> <code>void</code> <b>mgl_pipe_3d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>float</code> r0, <code>int</code> num, <code>int</code> central)</i></dt>
+<dd><p>The same as previous with <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Other-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#DensXYZ" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Other-plotting-1"></a>
+<h2 class="section">3.14 Other plotting</h2>
+
+<p>These functions perform miscelaneous plotting. There is unstructured data points plots (Dots), surface reconstruction (Crust), surfaces on the triangular mesh (TriPlot), textual formula plotting (Plots by formula), data plots at edges (Dens[XYZ], Cont[XYZ], ContF[XYZ]), simple plot (SimplePlot). Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. Parameters of color scheme are specified by the string argument. See section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#DensXYZ">3.14.1 DensXYZ</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContXYZ">3.14.2 ContXYZ</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContFXYZ">3.14.3 ContFXYZ</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dots">3.14.4 Dots</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Crust">3.14.5 Crust</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TriPlot">3.14.6 TriPlot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TriCont">3.14.7 TriCont</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#QuadPlot">3.14.8 QuadPlot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-by-formula">3.14.9 Plots by formula</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#SimplePlot">3.14.10 SimplePlot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="DensXYZ"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContXYZ" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="DensXYZ-1"></a>
+<h3 class="subsection">3.14.1 DensXYZ</h3>
+<a name="index-DensX"></a>
+<a name="index-DensY"></a>
+<a name="index-DensZ"></a>
+
+<p>These plotting functions draw density plot in x, y, or z plain. If <var>a</var> is a tensor (3-dimensional data) then interpolation to a given <var>sVal</var> is performed. These functions are useful for creating projections of the 3D data array to the bounding box. For example, code like
+</p><table><tr><td>&nbsp;</td><td><pre class="example">gr-&gt;DensX(c.Sum(&quot;x&quot;),&quot;BbcyrR&quot;,-1);
+gr-&gt;DensY(c.Sum(&quot;y&quot;),0,1);
+gr-&gt;DensZ(c.Sum(&quot;z&quot;),0,-1);
+</pre></td></tr></table>
+<p>will produce the following picture. See also <a href="#ContXYZ">ContXYZ</a>, <a href="#ContFXYZ">ContFXYZ</a>, <a href="#Dens">Dens</a>, <a href="#Data-distributions">Data distributions</a>. See section <a href="mathgl_en_9.html#Dens-projection-sample">Dens projection sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-DensX-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensX</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens_005fx"></a><u>C function:</u> <code>void</code> <b>mgl_dens_x</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Draws density plot for data <var>a</var> at x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DensY-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensY</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens_005fy"></a><u>C function:</u> <code>void</code> <b>mgl_dens_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Draws density plot for data <var>a</var> at y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DensZ-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensZ</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens_005fz"></a><u>C function:</u> <code>void</code> <b>mgl_dens_z</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Draws density plot for data <var>a</var> at z = <var>sVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContXYZ"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#DensXYZ" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContFXYZ" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContXYZ-1"></a>
+<h3 class="subsection">3.14.2 ContXYZ</h3>
+<a name="index-ContX"></a>
+<a name="index-ContY"></a>
+<a name="index-ContZ"></a>
+
+<p>These plotting functions draw contour lines in x, y, or z plain. If <var>a</var> is a tensor (3-dimensional data) then interpolation to a given <var>sVal</var> is performed. These functions are useful for creating projections of the 3D data array to the bounding box. For example, code like
+</p><table><tr><td>&nbsp;</td><td><pre class="example">gr-&gt;ContX(c.Sum(&quot;x&quot;),&quot;BbcyrR&quot;,-1);
+gr-&gt;ContY(c.Sum(&quot;y&quot;),0,1);
+gr-&gt;ContZ(c.Sum(&quot;z&quot;),0,-1);
+</pre></td></tr></table>
+<p>will produce the following picture. See also <a href="#ContFXYZ">ContFXYZ</a>, <a href="#DensXYZ">DensXYZ</a>, <a href="#Cont">Cont</a>, <a href="#Data-distributions">Data distributions</a>. See section <a href="mathgl_en_9.html#Cont-projection-sample">Cont projection sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-ContX-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContX</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fx"></a><u>C function:</u> <code>void</code> <b>mgl_cont_x</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Draws <var>num</var>-th contour lines for data <var>a</var> at x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContY-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContY</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fy"></a><u>C function:</u> <code>void</code> <b>mgl_cont_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Draws <var>num</var>-th contour lines for data <var>a</var> at y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContZ-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContZ</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fz"></a><u>C function:</u> <code>void</code> <b>mgl_cont_z</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Draws <var>num</var>-th contour lines for data <var>a</var> at z = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContX-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContX</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fx_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_cont_x_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Draws contour lines for data <var>a</var>=<var>v</var>[i] at x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContY-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContY</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fy_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_cont_y_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Draws contour lines for data <var>a</var>=<var>v</var>[i] at y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContZ-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContZ</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fz_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_cont_z_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Draws contour lines for data <var>a</var>=<var>v</var>[i] at z = <var>sVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContFXYZ"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContXYZ" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dots" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContFXYZ-1"></a>
+<h3 class="subsection">3.14.3 ContFXYZ</h3>
+<a name="index-ContFX"></a>
+<a name="index-ContFY"></a>
+<a name="index-ContFZ"></a>
+
+<p>These plotting functions draw solid contour lines in x, y, or z plain. If <var>a</var> is a tensor (3-dimensional data) then interpolation to a given <var>sVal</var> is performed. These functions are useful for creating projections of the 3D data array to the bounding box. See also <a href="#ContXYZ">ContXYZ</a>, <a href="#DensXYZ">DensXYZ</a>, <a href="#ContF">ContF</a>, <a href="#Data-distributions">Data distributions</a>.
+</p>
+<dl>
+<dt><a name="index-ContFX-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFX</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fx"></a><u>C function:</u> <code>void</code> <b>mgl_contf_x</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Draws <var>num</var>-th solid contours for data <var>a</var> at x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFY-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFY</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fy"></a><u>C function:</u> <code>void</code> <b>mgl_contf_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Draws <var>num</var>-th solid contours for data <var>a</var> at y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFZ-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFZ</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fz"></a><u>C function:</u> <code>void</code> <b>mgl_contf_z</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Draws <var>num</var>-th solid contours for data <var>a</var> at z = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFX-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFX</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fx_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_contf_x_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Draws solid contours for data <var>a</var>=<var>v</var>[i] at x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFY-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFY</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fy_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_contf_y_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Draws solid contours for data <var>a</var>=<var>v</var>[i] at y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFZ-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFZ</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fz_005fval"></a><u>C function:</u> <code>void</code> <b>mgl_contf_z_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Draws solid contours for data <var>a</var>=<var>v</var>[i] at z = <var>sVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Dots"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContFXYZ" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Crust" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dots-1"></a>
+<h3 class="subsection">3.14.4 Dots</h3>
+<a name="index-Dots"></a>
+
+<dl>
+<dt><a name="index-Dots-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dots</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-Dots-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dots</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdots"></a><u>C function:</u> <code>void</code> <b>mgl_dots</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dt><a name="index-mgl_005fdots_005fa"></a><u>C function:</u> <code>void</code> <b>mgl_dots_a</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws the arbitrary placed points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If array <var>a</var> is specified then it define the transparency of dots. Arrays <var>x</var>, <var>y</var>, <var>z</var>, <var>a</var> must have equal sizes. See also <a href="#Crust">Crust</a>, <a href="#Mark">Mark</a>, <a href="#Plot">Plot</a>. See section <a href="mathgl_en_9.html#Dots-sample">Dots sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Dots-3"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Dots</b><i> (<code>const mglData &amp;</code>tr, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdots_005ftr"></a><u>C function:</u> <code>void</code> <b>mgl_dots_tr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> tr, <code>const char *</code>sch)</i></dt>
+<dd><p>The same as previous with <var>x=tr</var>(0,:), <var>y=tr</var>(1,:), <var>z=tr</var>(2,:) and if <var>tr</var>.nx&gt;3 then <var>a=tr</var>(3,:).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Crust"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dots" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TriPlot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Crust-1"></a>
+<h3 class="subsection">3.14.5 Crust</h3>
+<a name="index-Crust"></a>
+
+<dl>
+<dt><a name="index-Crust-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Crust</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> er=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcrust"></a><u>C function:</u> <code>void</code> <b>mgl_crust</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> er)</i></dt>
+<dd><p>The function reconstruct and draws the surface for arbitrary placed points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. Parameter <var>er</var> set relative radius for (increase it for removing holes). String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. Arrays <var>x</var>, <var>y</var>, <var>z</var> must have equal sizes. See also <a href="#Dots">Dots</a>, <a href="#TriPlot">TriPlot</a>. See section <a href="mathgl_en_9.html#Crust-sample">Crust sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Crust-2"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Crust</b><i> (<code>const mglData &amp;</code>tr, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> er=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcrust_005ftr"></a><u>C function:</u> <code>void</code> <b>mgl_crust_tr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> tr, <code>const char *</code>sch, <code>float</code> er)</i></dt>
+<dd><p>The same as previous with <var>x=tr</var>(0,:), <var>y=tr</var>(1,:), <var>z=tr</var>(2,:).
+</p></dd></dl>
+
+<hr size="6">
+<a name="TriPlot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Crust" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TriCont" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TriPlot-1"></a>
+<h3 class="subsection">3.14.6 TriPlot</h3>
+<a name="index-TriPlot"></a>
+
+<dl>
+<dt><a name="index-TriPlot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TriPlot-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftriplot_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_triplot_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dt><a name="index-mgl_005ftriplot_005fxyzc"></a><u>C function:</u> <code>void</code> <b>mgl_triplot_xyzc</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws the surface of triangles. Triangle vertexes are set by indexes <var>id</var> of data points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. First dimensions of <var>id</var> must be 3 or greater. Arrays <var>x</var>, <var>y</var>, <var>z</var> must have equal sizes. Parameter <var>c</var> set the colors of triangles (if <var>id</var>.ny=<var>c</var>.nx) or colors of vertexes (if <var>x</var>.nx=<var>c</var>.nx). See also <a href="#Dots">Dots</a>, <a href="#Crust">Crust</a>, <a href="#QuadPlot">QuadPlot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TriPlot-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005ftriplot_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_triplot_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>z</var>[i]=<var>zVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="TriCont"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TriPlot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#QuadPlot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TriCont-1"></a>
+<h3 class="subsection">3.14.7 TriCont</h3>
+<a name="index-TriCont"></a>
+
+<dl>
+<dt><a name="index-TriContV"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriContV</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-TriContV-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriContV</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005ftricont_005fxyzcv"></a><u>C function:</u> <code>void</code> <b>mgl_tricont_xyzcv</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dt><a name="index-mgl_005ftricont_005fxyzv"></a><u>C function:</u> <code>void</code> <b>mgl_tricont_xyzv</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The function draws contour lines for surface of triangles at <var>z</var> = <var>zVal</var> (or for <var>z=v</var>[k] if <code>zVal==NAN</code>). Triangle vertexes are set by indexes <var>id</var> of data points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. Contours are plotted for <var>z</var>[i,j]=<var>v</var>[k] where <var>v</var>[k] are values of data array <var>v</var>. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. Array <var>c</var> (if specified) is used for contour coloring. First dimensions of <var>id</var> must be 3 or greater. Arrays <var>x</var>, <var>y</var>, <var>z</var> must have equal sizes. Parameter <var>c</var> set the colors of triangles (if <var>id</var>.ny=<var>c</var>.nx) or colors of vertexes (if <var>x</var>.nx=<var>c</var>.nx). See also <a href="#TriPlot">TriPlot</a>, <a href="#Cont">Cont</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TriCont-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriCont</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>num</code>=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-TriCont-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriCont</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>num</code>=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005ftricont_005fxyzc"></a><u>C function:</u> <code>void</code> <b>mgl_tricont_xyzc</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch, <code>num</code>, <code>float</code> zVal)</i></dt>
+<dt><a name="index-mgl_005ftricont_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_tricont_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>num</code>, <code>float</code> zVal)</i></dt>
+<dd><p>The same as first one with vector <var>v</var> of <var>num</var>-th elements equidistantly distributed in range [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="QuadPlot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TriCont" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-by-formula" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="QuadPlot-1"></a>
+<h3 class="subsection">3.14.8 QuadPlot</h3>
+<a name="index-QuadPlot"></a>
+
+<dl>
+<dt><a name="index-QuadPlot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>QuadPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-QuadPlot-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>QuadPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fquadplot_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_quadplot_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dt><a name="index-mgl_005fquadplot_005fxyzc"></a><u>C function:</u> <code>void</code> <b>mgl_quadplot_xyzc</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>The function draws the surface of quadrangles. Quadrangles vertexes are set by indexes <var>id</var> of data points {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. First dimensions of <var>id</var> must be 4 or greater. Arrays <var>x</var>, <var>y</var>, <var>z</var> must have equal sizes. Parameter <var>c</var> set the colors of quadrangles (if <var>id</var>.ny=<var>c</var>.nx) or colors of vertexes (if <var>x</var>.nx=<var>c</var>.nx). See also <a href="#TriPlot">TriPlot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-QuadPlot-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>QuadPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fquadplot_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_quadplot_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>The same as previous with <var>z</var>[i]=<var>zVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Plots-by-formula"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#QuadPlot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SimplePlot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-by-formula-1"></a>
+<h3 class="subsection">3.14.9 Plots by formula</h3>
+<a name="index-Plot-4"></a>
+<a name="index-Surf-3"></a>
+
+<p>These functions perform plotting of 1D or 2D functions specified by textual formula. You do not need to create the data arrays to plot it. The parameter <var>stl</var> set the line style (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>) for <code>Plot()</code> or color scheme (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>) for <code>Surf()</code>. The parameter <var>n</var> set the minimal number of points along coordinate(s) for plots. At this time (v. 1.10) there is adaptive increase of data points numbers but only for 1D variant (i.e. for Plot()).
+</p>
+<dl>
+<dt><a name="index-Plot-5"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const char *</code>eqY, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>int</code> n=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005ffplot"></a><u>C function:</u> <code>void</code> <b>mgl_fplot</b><i> (<code>HMGL</code> gr, <code>const char *</code>eqY, <code>const char *</code>stl, <code>float</code> zVal, <code>int</code> n)</i></dt>
+<dd><p>The function draws function &lsquo;<samp>eqY(x)</samp>&rsquo; at plane z=<var>zVal</var> where &lsquo;<samp>x</samp>&rsquo; variable is changed in range [<var>Min</var>.x, <var>Max</var>.x]. See also <a href="#Plot">Plot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Plot-6"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const char *</code>eqX, <code>const char *</code>eqY, <code>const char *</code>eqZ, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>int</code> n=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005ffplot_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_fplot_xyz</b><i> (<code>HMGL</code> gr, <code>const char *</code>eqX, <code>const char *</code>eqY, <code>const char *</code>eqZ, <code>const char *</code>stl, <code>float</code> zVal, <code>int</code> n)</i></dt>
+<dd><p>The function draws parametrical curve {&lsquo;<samp>eqX(t)</samp>&rsquo;, &lsquo;<samp>eqY(t)</samp>&rsquo;, &lsquo;<samp>eqZ(t)</samp>&rsquo;} where &lsquo;<samp>t</samp>&rsquo; variable is changed in range [0, 1]. See also <a href="#Plot">Plot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf</b><i> (<code>const char *</code>eqZ, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> n=<code>100</code>);</i></dt>
+<dt><a name="index-mgl_005ffsurf"></a><u>C function:</u> <code>void</code> <b>mgl_fsurf</b><i> (<code>HMGL</code> gr, <code>const char *</code>eqZ, <code>const char *</code>stl, <code>int</code> n);</i></dt>
+<dd><p>The function draws surface for function &lsquo;<samp>eqY(x,y)</samp>&rsquo; where &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; variables are changed in range [<var>Min</var>, <var>Max</var>]. See also <a href="#Surf">Surf</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf-5"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf</b><i> (<code>const char *</code>eqX, <code>const char *</code>eqY, <code>const char *</code>eqZ, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> n=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005ffsurf_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_fsurf_xyz</b><i> (<code>HMGL</code> gr, <code>const char *</code>eqX, <code>const char *</code>eqY, <code>const char *</code>eqZ, <code>const char *</code>stl, <code>int</code> n)</i></dt>
+<dd><p>The function draws parametrical surface {&lsquo;<samp>eqX(u,v)</samp>&rsquo;, &lsquo;<samp>eqY(u,v)</samp>&rsquo;, &lsquo;<samp>eqZ(u,v)</samp>&rsquo;} where &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo; variables are changed in range [0, 1]. See also <a href="#Surf">Surf</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="SimplePlot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-by-formula" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SimplePlot-1"></a>
+<h3 class="subsection">3.14.10 SimplePlot</h3>
+<a name="index-SimplePlot"></a>
+
+<dl>
+<dt><a name="index-SimplePlot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SimplePlot</b><i> (<code>const mglData &amp;</code>a, <code>int</code> type=<code>0</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsimple_005fplot"></a><u>C function:</u> <code>void</code> <b>mgl_simple_plot</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> type, <code>const char *</code>stl)</i></dt>
+<dd><p>Plots the array <var>a</var> depending on it&rsquo;s dimensions and <var>type</var> parameter. String <var>stl</var> specifies the style of plotting. For 1d data: <code>type=0</code> &ndash; <a href="#Plot">Plot</a>, <code>type=1</code> &ndash; <a href="#Area">Area</a>, <code>type=2</code> &ndash; <a href="#Step">Step</a>, <code>type=3</code> &ndash; <a href="#Stem">Stem</a>, <code>type=4</code> &ndash; <a href="#Bars">Bars</a>. For 2d data: <code>type=0</code> &ndash; <a href="#Surf">Surf</a>, <code>type=1</code> &ndash; <a href="#Dens">Dens</a>, <code>type=2</code> &ndash; <a href="#Mesh">Mesh</a>, <code>type=3</code> &ndash; <a href="#Cont">Cont</a>. For 3d data: <code>type=0</code> &ndash; <a href="#Surf3">Surf3</a>, <code>type=1</code> &ndash; <a href="#Dens3">Dens3</a>, <code>type=2</code> &ndash; <a href="#Cont3">Cont3</a>, <code>type=2</code> &ndash; <a href="#Cloud">Cloud</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Nonlinear-fitting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SimplePlot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-distributions" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-1"></a>
+<h2 class="section">3.15 Nonlinear fitting</h2>
+<a name="index-Fit"></a>
+<a name="index-FitS"></a>
+<a name="index-PutsFit"></a>
+<a name="index-FitPnts"></a>
+<a name="index-Fit2"></a>
+<a name="index-Fit3"></a>
+
+<p>These functions fit data to formula. Fitting goal is to find formula parameters for the best fit the data points, i.e. to minimize the sum <em>\sum_i (f(x_i, y_i, z_i) - a_i)^2/s_i^2</em>. At this, approximation function &lsquo;<samp>f</samp>&rsquo; can depend only on one argument &lsquo;<samp>x</samp>&rsquo; (1D case), on two arguments &lsquo;<samp>x,y</samp>&rsquo; (2D case) and on three arguments &lsquo;<samp>x,y,z</samp>&rsquo; (3D case). The function &lsquo;<samp>f</samp>&rsquo; also may depend on parameters. Normally the list of fitted parameters is specified by <var>var</var> string (like, &lsquo;<samp>abcd</samp>&rsquo;). Usually user should supply initial values for fitted parameters by <var>ini</var> variable. But if he/she don&rsquo;t supply it then the zeros are used. Parameter <var>print</var>=<code>true</code> switch on printing the found coefficients to <var>Message</var> (see section <a href="#Error-handling">Error handling</a>).
+</p>
+<p>Functions Fit() and FitS() do not draw the obtained data themselves. They fill the data <var>fit</var> by formula &lsquo;<samp>f</samp>&rsquo; with found coefficients and return the <em>\chi^2</em> error of approximation. At this, the &lsquo;<samp>x,y,z</samp>&rsquo; coordinates are equidistantly distributed in the interval <var>Min</var>&ndash;<var>Max</var>. Number of points in <var>fit</var> is selected as maximal value of <var>fit</var> size and the value of <var>FitPnts</var>. Note, that this functions use GSL library and do something only if MathGL was compiled with GSL support. See section <a href="mathgl_en_9.html#Fitting-sample">Fitting sample</a>, for sample code and picture.
+</p>
+<dl>
+<dt><a name="index-FitS-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-FitS-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyzas"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xyzas</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyzas_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xyzas_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-, y- and z-directions for 3d array specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FitS-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-FitS-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyzs"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xyzs</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyzs_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xyzs_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-, and y-directions for 2d array specified parametrically <var>a</var>[i,j](<var>x</var>[i,j], <var>y</var>[i,j]) for each data slice.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FitS-5"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-FitS-6"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxys"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xys</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxys_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xys_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-direction for 1d array specified parametrically <var>a</var>[i](<var>x</var>[i]) for each data slice.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FitS-7"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-FitS-8"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fys"></a><u>C function:</u> <code>float</code> <b>mgl_fit_ys</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fys_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_ys_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-direction for 1d array with <var>x</var> equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyza"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xyza</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyza_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xyza_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-, y- and z-directions for 3d array specified parametrically <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) with <var>s</var>[i,j,k]=1.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit-4"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyz"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xyz</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyz_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xyz_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-, and y-directions for 2d array specified parametrically <var>a</var>[i,j](<var>x</var>[i,j], <var>y</var>[i,j]) with <var>s</var>[i,j]=1 for each data slice.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit-5"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit-6"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxy"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xy</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxy_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_xy_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-direction for 1d array specified parametrically <var>a</var>[i](<var>x</var>[i]) with <var>s</var>[i]=1 for each data slice.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit-7"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>&quot;&quot;</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit-8"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005f1"></a><u>C function:</u> <code>float</code> <b>mgl_fit_1</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005f1_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_1_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-direction for 1d array <var>a</var> with <var>s</var>=1 and <var>x</var> equidistantly distributed in interval [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit2-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit2</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit2-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit2</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005f2"></a><u>C function:</u> <code>float</code> <b>mgl_fit_2</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005f2_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_2_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-, and y-directions for 2d array <var>a</var> with <var>s</var>=1 and <var>x</var>, <var>y</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit3-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit3</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit3-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit3</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005f3"></a><u>C function:</u> <code>float</code> <b>mgl_fit_3</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005f3_005fd"></a><u>C function:</u> <code>float</code> <b>mgl_fit_3_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>Fit data along x-, y- and z-directions for 3d array <var>a</var> with <var>s</var>=1 and <var>x</var>, <var>y</var>, <var>z</var> equidistantly distributed in interval [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-PutsFit-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>PutsFit</b><i> (<code>mglPoint</code> p, <code>const char *</code>prefix=<code>&quot;&quot;</code>, <code>const char *</code>font=<code>NULL</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fputs_005ffit"></a><u>C function:</u> <code>void</code> <b>mgl_puts_fit</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const char *</code>prefix, <code>const char *</code>font, <code>float</code> size=<code>-1</code>)</i></dt>
+<dd><p>Print last fitted formula with found coefficients (as numbers) at position <var>p0</var>. The string <var>prefix</var> will be printed before formula. All other parameters are the same as in <a href="#Text-printing">Text printing</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetFit"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>const char *</code> <b>GetFit</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fget_005ffit"></a><u>C function:</u> <code>const char *</code> <b>mgl_get_fit</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Get last fitted formula with found coefficients (as numbers).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FitPnts-of-mglGraph"></a><u>General option (C++) of mglGraph:</u> <code>int</code> <b>FitPnts</b></dt>
+<dd><p>Minimal number of points for output array after nonlinear fitting.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Data-distributions"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Frames_002fAnimation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-distributions-1"></a>
+<h2 class="section">3.16 Data distributions</h2>
+<a name="index-Hist"></a>
+
+<p>These functions make distribution (histogram) of data. They do not draw the obtained data themselves. These functions can be useful if user have data defined for random points (for example, after PIC simulation) and he want to produce a plot which require regular data (defined on grid(s)). The range for grids is always selected as axis range Min...Max. Arrays <var>x</var>, <var>y</var>, <var>z</var> define the positions (coordinates) of random points. Array <var>a</var> define the data value. Number of points in output array <var>res</var> is selected as maximal value of <var>res</var> size and the value of <var>FitPnts</var>.
+</p>
+<dl>
+<dt><a name="index-Hist-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Hist</b><i> (<code>mglData &amp;</code>res, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a)</i></dt>
+<dt><a name="index-mgl_005fhist_005fx"></a><u>C function:</u> <code>int</code> <b>mgl_hist_x</b><i> (<code>HMGL</code> gr, <code>HMDT</code> res, <code>const HMDT</code> x, <code>const HMDT</code> a)</i></dt>
+<dd><p>Creates 1D distribution of the data values <var>a</var> in range [Min, Max].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Hist-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Hist</b><i> (<code>mglData &amp;</code>res, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a)</i></dt>
+<dt><a name="index-mgl_005fhist_005fxy"></a><u>C function:</u> <code>int</code> <b>mgl_hist_xy</b><i> (<code>HMGL</code> gr, <code>HMDT</code> res, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a)</i></dt>
+<dd><p>Creates 2D distribution of the data values <var>a</var> in range [Min, Max].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Hist-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Hist</b><i> (<code>mglData &amp;</code>res, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a)</i></dt>
+<dt><a name="index-mgl_005fhist_005fxyz"></a><u>C function:</u> <code>int</code> <b>mgl_hist_xyz</b><i> (<code>HMGL</code> gr, <code>HMDT</code> res, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a)</i></dt>
+<dd><p>Creates 3D distribution of the data values <var>a</var> in range [Min, Max].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Frames_002fAnimation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-distributions" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#IDTF-functions" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Frames_002fAnimation-1"></a>
+<h2 class="section">3.17 Frames/Animation</h2>
+<a name="index-NewFrame"></a>
+<a name="index-EndFrame"></a>
+<a name="index-GetNumFrame"></a>
+
+<p>These functions provide ability to create several pictures simultaneously. For most of cases it is useless but for widget classes (see section <a href="mathgl_en_5.html#Widget-classes">Widget classes</a>) they can provide a way to show animation. Also you can write several frames into animated GIF file.
+</p>
+<dl>
+<dt><a name="index-NewFrame-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>int</code> <b>NewFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fnew_005fframe"></a><u>C function:</u> <code>int</code> <b>mgl_new_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Creates new frame. Function returns current frame id. This is not thread safe function in OpenGL mode! Use direct list creation in multi-threading drawing. The function <code>EndFrame()</code> <strong>must</strong> be call after the finishing of the frame drawing for each call of this function.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-EndFrame-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>EndFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fend_005fframe"></a><u>C function:</u> <code>void</code> <b>mgl_end_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Finishes the frame drawing.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetNumFrame-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>int</code> <b>GetNumFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fget_005fnum_005fframe"></a><u>C function:</u> <code>int</code> <b>mgl_get_num_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Gets the number of created frames.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ResetFrames"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ResetFrames</b><i> ()</i></dt>
+<dt><a name="index-mgl_005freset_005fframes"></a><u>C function:</u> <code>int</code> <b>mgl_reset_frames</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Reset frames counter (start it from zero).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-StartGIF"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>StartGIF</b><i> (<code>const char *</code>fname, <code>int</code> ms=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005fstart_005fgif"></a><u>C function:</u> <code>void</code> <b>mgl_start_gif</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>int</code> ms)</i></dt>
+<dd><p>Start writing frames into animated GIF file <var>fname</var>. Parameter <var>ms</var> set the delay between frames in milliseconds. You <strong>should not</strong> change the picture size during writing the cinema. Use CloseGIF() to finalize writing. Note, that this function is disabled in OpenGL mode.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CloseGIF"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>int</code> <b>CloseGIF</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fclose_005fgif"></a><u>C function:</u> <code>void</code> <b>mgl_close_gif</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Finish writing animated GIF and close connected pointers.
+</p></dd></dl>
+
+<hr size="6">
+<a name="IDTF-functions"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Frames_002fAnimation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="IDTF-functions-1"></a>
+<h2 class="section">3.18 IDTF functions</h2>
+<a name="index-NewFrame-2"></a>
+<a name="index-EndFrame-2"></a>
+<a name="index-GetNumFrame-2"></a>
+
+<p>These functions provide IDTF specific features. In all other cases they do nothing.
+</p>
+<dl>
+<dt><a name="index-VertexColor"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>VertexColor</b><i> (<code>bool</code> enable)</i></dt>
+<dd><p>Enables smooth color change.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Compression"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>Compression</b><i> (<code>bool</code> enable)</i></dt>
+<dd><p>Gives smaller files, but quality degrades.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-StartGroup"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>StartGroup</b><i> (const char *name)</i></dt>
+<dd><p>Starts group definition. Groups contain objects and other groups, they are used to select a part of a model to zoom to or to make invizible or to make transparent and so on.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-EndGroup"></a><u>Method on <code>mglGraph</code> (C++):</u> <code>void</code> <b>EndGroup</b><i> ()</i></dt>
+<dd><p>Ends group definition.
+</p></dd></dl>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_en.html/mathgl_en_4.html b/texinfo/mathgl_en.html/mathgl_en_4.html
new file mode 100644
index 0000000..0ff6ccc
--- /dev/null
+++ b/texinfo/mathgl_en.html/mathgl_en_4.html
@@ -0,0 +1,320 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: 4. Plotter classes</title>
+
+<meta name="description" content="MathGL 1.11: 4. Plotter classes">
+<meta name="keywords" content="MathGL 1.11: 4. Plotter classes">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Plotter-classes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_3.html#IDTF-functions" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglGraphAB-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_3.html#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_5.html#Widget-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+
+<a name="Plotter-classes-1"></a>
+<h1 class="chapter">4. Plotter classes</h1>
+<a name="index-mglGraphAB"></a>
+<a name="index-mglGraphZB"></a>
+<a name="index-mglGraphPS"></a>
+<a name="index-mglGraphGL"></a>
+<a name="index-mglGraphIDTF"></a>
+
+<p>The class mglGraph (see section <a href="mathgl_en_3.html#MathGL-core">MathGL core</a>) provide the basic tools for creating scientific graphics but it is abstract class. The matter is that there are several possible way to draw a graphics: in bitmap, in vector file, using OpenGL and so on. As result, user should use some of derived classes to do actual drawing. In principle, it is possible to derive a class exactly from mglGraph (and it was in v.1.6). But I recommend to derive from mglGraphAB class for higher compatibility of produced graphics from different classes. Class mglGraphAB is another abstract class which provide basic coordinates transformation, plotting functions and export to bitmap picture. It still require a functions for drawing lines, triangles and quadrangles. So below a set of &ldquo;plotter&rdquo; classes with short comments.
+</p>
+<dl>
+<dt><a name="index-mglGraphAB-1"></a><u>Class:</u> <b>mglGraphAB</b></dt>
+<dd><p>Abstract class mglGraphAB implements plotting function for 1D, 2D and 3D plots using Z-ordering and provides base functionality for to screen coordinate transformation, bitmap creation and so on. Class is defined in <code>#include &lt;mgl/mgl_ab.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglGraphZB-1"></a><u>Class:</u> <b>mglGraphZB</b></dt>
+<dd><p>Class mglGraphZB implements plotting function for 1D, 2D and 3D plots using Z-Buffer. It is useful for off-screen (for console or SSH terminal) programs. Also this class can be used in any other programs which may draw bitmap on the  screen (for example, by using FLTK, Qt, wxWidgets libraries and so on). Note that bitmap picture is saved while exporting to EPS format. The produced graphics have better quality but slower in comparison with graphics in the class mglGraphPS. Class is defined in <code>#include &lt;mgl/mgl_zb.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglGraphPS-1"></a><u>Class:</u> <b>mglGraphPS</b></dt>
+<dd><p>Class mglGraphPS implements plotting functions for 1D, 2D and 3D plots and exports them to PostScript or SVG file. It is useful for off-screen (for console or SSH terminal) programs. Note that there is no transparency support now and color interpolation and lightning support is limited (not so nice as in class mglGraphZB). As result the plots with transparency (SurfA, Surf3A, CloudP, CloudQ) may look not so good. However the speed of drawing is higher in comparison with one in the class mglGraphZB. Class is defined in <code>#include &lt;mgl/mgl_eps.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglGraphGL-1"></a><u>Class:</u> <b>mglGraphGL</b></dt>
+<dd><p>Class mglGraphGL implements plotting function for 1D, 2D and 3D plots under OpenGL. This class can not be used in off-screen applications. Note, that several transparent overlapped surfaces are drawn not so correctly due to OpenGL limitations. Class is defined in <code>#include &lt;mgl/mgl_gl.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglGraphIDTF-1"></a><u>Class:</u> <b>mglGraphIDTF</b></dt>
+<dd><p>Class mglGraphIDTF implements plotting function for 1D, 2D and 3D plots  and export it in IDTF format. Later this file can be converted in U3D format. Class is defined in <code>#include &lt;mgl/mgl_idtf.h&gt;</code>.
+</p></dd></dl>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#mglGraphAB-class">4.1 mglGraphAB class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="mglGraphAB-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plotter-classes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_5.html#Widget-classes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Plotter-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plotter-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_5.html#Widget-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglGraphAB-class-1"></a>
+<h2 class="section">4.1 mglGraphAB class</h2>
+<a name="index-mglGraphAB-2"></a>
+<a name="index-window-1"></a>
+<p>#cindex mglDraw
+</p>
+<p>Generally this class is a bit less abstract class than mglGraph class (see section <a href="mathgl_en_3.html#MathGL-core">MathGL core</a>). It provide many protected methods for handling intermediate data from mglGraph methods and require a few methods to be defined by derived class. The developers of derived classes should look on file &lsquo;<samp>mgl_ab.h</samp>&rsquo; and comments inside it or contact me.
+</p>
+<p>Here I just show main public methods for class mglGraphAB. There are functions returning the created picture (bitmap), its width and height. You may display it by yourself in any graphical library (see also, <a href="mathgl_en_5.html#Widget-classes">Widget classes</a>) or save in file (see also, <a href="mathgl_en_3.html#Export-to-file">Export to file</a>).
+</p>
+<dl>
+<dt><a name="index-GetBits"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>const unsigned char *</code> <b>GetBits</b><i> ()</i></dt>
+<dt><a name="index-GetRGB"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>GetRGB</b><i> (<code>char *</code>buf, <code>int</code> size)</i></dt>
+<dt><a name="index-GetBGRN"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>GetBGRN</b><i> (<code>char *</code>buf, <code>int</code> size)</i></dt>
+<dt><a name="index-mgl_005fget_005frgb"></a><u>C function:</u> <code>const unsigned char *</code> <b>mgl_get_rgb</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Gets RGB bitmap of the current state of the image. Format of each element of bits is: {red, green, blue}. Number of elements is Width*Height. Position of element {i,j} is [3*i + 3*Width*j] (or is [4*i + 4*Width*j] for <code>GetBGRN()</code>). For Python you have to provide the proper <var>size</var> of the buffer, <var>buf</var> i.e. the code should look like 
+</p><pre class="verbatim">from mathgl import *
+gr = mglGraph();
+bits='\t';
+bits=bits.expandtabs(4*gr.GetWidth()*gr.GetHeight());
+gr.GetBGRN(bits, len(bits));
+</pre></dd></dl>
+
+<dl>
+<dt><a name="index-GetRGBA"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>const unsigned char *</code> <b>GetRGBA</b><i> ()</i></dt>
+<dt><a name="index-GetRGBA-1"></a><u>Method on <code>mglGraph</code> (Python):</u> <code>void</code> <b>GetRGBA</b><i> (<code>char *</code>buf, <code>int</code> size)</i></dt>
+<dt><a name="index-mgl_005fget_005frgba"></a><u>C function:</u> <code>const unsigned char *</code> <b>mgl_get_rgba</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Gets RGBA bitmap of the current state of the image. Format of each element of bits is: {red, green, blue, alpha}. Number of elements is Width*Height. Position of element {i,j} is [4*i + 4*Width*j].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetWidth"></a><u>Method on <code>mglGraphAB</code> (C++, Python):</u> <code>int</code> <b>GetWidth</b><i> ()</i></dt>
+<dt><a name="index-GetHeight"></a><u>Method on <code>mglGraphAB</code> (C++, Python):</u> <code>int</code> <b>GetHeight</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fget_005fwidth"></a><u>C function:</u> <code>int</code> <b>mgl_get_width</b><i> (<code>HMGL</code> gr)</i></dt>
+<dt><a name="index-mgl_005fget_005fheight"></a><u>C function:</u> <code>int</code> <b>mgl_get_height</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Gets width and height of the image.
+</p></dd></dl>
+
+<p>Class mglGraphAB is the base class for &ldquo;widget classes&rdquo;. So there are set of functions for handling window behavior. Most of them are applicable only for &ldquo;window&rdquo; classes (like mglGraphFLTK and so on, see section <a href="mathgl_en_5.html#Widget-classes">Widget classes</a>). In all other classes these functions just do nothing. You should provide the corresponding interface in derived &ldquo;widget&rdquo; classes for user convenience.
+</p>
+<dl>
+<dt><a name="index-Window-on-mglGraphAB"></a><u>Method on mglGraphAB:</u> <code>void</code> <b>Window</b><i> (<code>int</code> argc, <code>char **</code>argv, <code>int (*</code>draw)(<code>mglGraph *</code>gr, <code>void *</code>p), <code>const char *</code>title, <code>void *</code>par=<code>NULL</code>, <code>void (*</code>reload)(<code>int</code> next, <code>void *</code>p)=<code>NULL</code>, <code>bool</code> maximize=<code>false</code>)</i></dt>
+<dd><p>This function creates a window for plotting. Parameters <var>argc</var>, <var>argv</var> contain OS specific information and should be the same as in function <code>main(int argc,char **argv)</code>. Parameter <var>draw</var> sets a pointer (this is the name of function) to drawing function. There is support of a list of plots (frames). So as one can prepare a set of frames at first and redraw it fast later (but it requires more memory). Function should return positive number of frames for the list or zero if it will plot directly. Note, that <var>draw</var> can be <code>NULL</code> for displaying static bitmaps only (no animation or slides). Parameter <var>title</var> sets the title of the window. Parameter <var>par</var> contains pointer to data for the plotting function <var>draw</var>. Parameter <var>maximize</var>=<code>true</code> open maximized window.
+</p>
+<p>There are some keys handles for manipulating by the plot: &rsquo;a&rsquo;, &rsquo;d&rsquo;, &rsquo;w&rsquo;, &rsquo;s&rsquo; for the rotating; &rsquo;,&rsquo;, &rsquo;.&rsquo; for viewing of the previous or next frames in the list; &rsquo;r&rsquo; for the switching of transparency; &rsquo;f&rsquo; for the switching of lightning; &rsquo;x&rsquo; for hiding (closing) the window.
+</p>
+<p><strong>IMPORTANT!!!</strong> You need to add a call of Rotate() (see section <a href="mathgl_en_3.html#Transformation-matrix">Transformation matrix</a>) function for having possibility of plot rotation. If plot should be unrotated by default just add <code>Rotate(0,0)</code> in drawing function.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Window-on-mglGraphAB-1"></a><u>Method on mglGraphAB:</u> <code>void</code> <b>Window</b><i> (<code>int</code> argc, <code>char **</code>argv, <code>mglDraw *</code>draw, <code>const char *</code>title, <code>bool</code> maximize=<code>false</code>)</i></dt>
+<dd><p>This function is mostly the same as previous one. The only difference is that the drawing function and function for data reloading are specified as methods on a class inherited from class <code>mglDraw</code>. This class is defined in <code>#include &lt;mgl/mgl_define.h&gt;</code> and have only 2 methods:
+</p><pre class="verbatim">class mglDraw
+{
+public:
+    virtual int Draw(mglGraph *) { return 0; };
+    virtual void Reload(int) {};
+};
+</pre><p>You should inherit yours class from <code>mglDraw</code> and reimplement one or both functions for using this function.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-ToggleAlpha"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleAlpha</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005falpha"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_alpha</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Switch on/off transparency but do not overwrite switches in user drawing function.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ToggleLight"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleLight</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005flight"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_light</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Switch on/off lighting but do not overwrite switches in user drawing function.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ToggleZoom"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleZoom</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005fzoom"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_zoom</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Switch on/off zooming by mouse as region selection.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ToggleRotate"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleRotate</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005frotate"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_rotate</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Switch on/off rotation by mouse. Usually, left button is used for rotation, middle button for shift, right button for zoom/perspective.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ToggleNo"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleNo</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005fno"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_no</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Switch off all zooming and rotation and restore initial state.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Update"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>Update</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fupdate"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_update</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Update window contents.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ReLoad"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ReLoad</b><i> (<code>bool</code> o)</i></dt>
+<dt><a name="index-mgl_005fwnd_005freload"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_reload</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+<dd><p>Reload user data and update picture.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Adjust"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>Adjust</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fadjust"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_adjust</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Adjust size of bitmap to window size.
+</p></dd></dl>
+<dl>
+<dt><a name="index-NextFrame"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>NextFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fnext_005fframe"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_next_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Show next frame if one.
+</p></dd></dl>
+<dl>
+<dt><a name="index-PrevFrame"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>PrevFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fprev_005fframe"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_prev_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Show previous frame if one.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Animation"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>Animation</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fanimation"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_animation</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Run/stop slideshow (animation) of frames.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fwnd_005fset_005fauto_005fclf"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_set_auto_clf</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+</dl>
+<dl>
+<dt><a name="index-AutoClf-of-mglGraphAB"></a><u>Widget option of mglGraphAB:</u> <code>bool</code> <b>AutoClf</b></dt>
+<dd><p>Clear canvas between drawing. You may switch it off for accumulate previous drawing (for example some points or parts of a picture).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fwnd_005fset_005fdelay"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_set_delay</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+</dl>
+<dl>
+<dt><a name="index-Delay-of-mglGraphAB"></a><u>Widget option of mglGraphAB:</u> <code>float</code> <b>Delay</b></dt>
+<dd><p>Delay for animation in seconds. Default value is 1 sec.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CalcXYZ"></a><u>Method on <code>mglGraphAB</code> (C++, Python):</u> <code>mglPoint</code> <b>CalcXYZ</b><i> (<code>int</code> xs, <code>int</code> ys)</i></dt>
+<dt><a name="index-mgl_005fcalc_005fxyz-1"></a><u>C function:</u> <code>void</code> <b>mgl_calc_xyz</b><i> (<code>HMGL</code> gr, <code>int</code> xs, <code>int</code> ys, <code>float *</code>x, <code>float *</code>y, <code>float *</code>z)</i></dt>
+<dd><p>Calculate 3D coordinate {x,y,z} for screen point {xs,ys}. At this moment it ignore perspective and transformation formulas (curvilinear coordinates). The calculation are done for the last used InPlot (see section <a href="mathgl_en_3.html#Transformation-matrix">Transformation matrix</a>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CalcScr"></a><u>Method on <code>mglGraphAB</code> (C++, Python):</u> <code>mglPoint</code> <b>CalcScr</b><i> (<code>mglPoint</code> p)</i></dt>
+<dt><a name="index-CalcScr-1"></a><u>Method on <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>CalcScr</b><i> (<code>mglPoint</code> p, <code>int *</code>xs, <code>int *</code>ys)</i></dt>
+<dt><a name="index-mgl_005fcalc_005fscr"></a><u>C function:</u> <code>void</code> <b>mgl_calc_scr</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>int *</code>xs, <code>int *</code>ys)</i></dt>
+<dd><p>Calculate screen point {xs,ys} for 3D coordinate {x,y,z}. The calculation are done for the last used InPlot (see section <a href="mathgl_en_3.html#Transformation-matrix">Transformation matrix</a>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fwnd_005fset_005fshow_005fmouse_005fpos"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_set_show_mouse_pos</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+</dl>
+<dl>
+<dt><a name="index-ShowMousePos-of-mglGraphAB"></a><u>Widget option of mglGraphAB:</u> <code>float</code> <b>ShowMousePos</b></dt>
+<dd><p>Switch to show or not in the widget the last mouse click position.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-LastMousePos-of-mglGraphAB"></a><u>Widget option of mglGraphAB:</u> <code>mglPoint</code> <b>LastMousePos</b></dt>
+<dd><p>Last position of mouse click.
+</p></dd></dl>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plotter-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_5.html#Widget-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_en.html/mathgl_en_5.html b/texinfo/mathgl_en.html/mathgl_en_5.html
new file mode 100644
index 0000000..bb55314
--- /dev/null
+++ b/texinfo/mathgl_en.html/mathgl_en_5.html
@@ -0,0 +1,504 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: 5. Widget classes</title>
+
+<meta name="description" content="MathGL 1.11: 5. Widget classes">
+<meta name="keywords" content="MathGL 1.11: 5. Widget classes">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Widget-classes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_4.html#mglGraphAB-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fl_005fMathGL-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_4.html#Plotter-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_6.html#mglData-class" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+
+<a name="Widget-classes-1"></a>
+<h1 class="chapter">5. Widget classes</h1>
+<a name="index-mglGraphFLTK"></a>
+<a name="index-mglGraphQT"></a>
+<a name="index-mglGraphGLUT"></a>
+<a name="index-Fl_005fMathGL"></a>
+<a name="index-QMathGL"></a>
+<a name="index-window-2"></a>
+<a name="index-widgets-1"></a>
+
+<p>There are set of &ldquo;window&rdquo; classes for making a window with MathGL graphics: <code>mglGraphFLTK</code>, <code>mglGraphQT</code>, <code>mglGraphGLUT</code>. All these classes allow user to show, rotate, export, and change view of the plot using keyboard. Most of them (except <code>mglGraphGLUT</code>) also have toolbar and menu for simplifying plot manipulation. Usually these classes (except <code>mglGraphGLUT</code>) are derived from <code>mglGraphZB</code> class and have a &ldquo;connected&rdquo; class for widget in corresponding window library. All window classes have the same set of functions (see section <a href="mathgl_en_4.html#mglGraphAB-class">mglGraphAB class</a>). Below the full list of classes with short comments.
+</p>
+<dl>
+<dt><a name="index-mglGraphFLTK-1"></a><u>Class:</u> <b>mglGraphFLTK</b></dt>
+<dd><p>Class <code>mglGraphFLTK</code> adds the possibility to create plotting window with the help of FLTK library. It allows one to show, rotate, export, and change view of the plot by keyboard, menu and toolbar. &ldquo;Corresponding&rdquo; widget class is <code>Fl_MathGL</code>. Class is defined in <code>#include &lt;mgl/mgl_fltk.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fl_005fMathGL-1"></a><u>Class:</u> <b>Fl_MathGL</b></dt>
+<dd><p>Class is FLTK widget for displaying the MathGL output. Class is defined in <code>#include &lt;mgl/mgl_fltk.h&gt;</code>.
+</p></dd></dl>
+
+<div class="float">
+<img src="fltk.png" alt="fltk">
+
+</div><p><strong>Example of FLTK window with MathGL plot.
+</strong>
+</p>
+<dl>
+<dt><a name="index-mglGraphQT-1"></a><u>Class:</u> <b>mglGraphQT</b></dt>
+<dd><p>Class <code>mglGraphQT</code> adds the possibility to create plotting window with the help of QT library. It allows one to show, rotate, export, and change view of the plot by keyboard, menu and toolbar. &ldquo;Corresponding&rdquo; widget class is <code>QMathGL</code>. Class is defined in <code>#include &lt;mgl/mgl_qt.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-QMathGL-1"></a><u>Class:</u> <b>QMathGL</b></dt>
+<dd><p>Class is Qt widget for dysplaying the MathGL output. Class is defined in <code>#include &lt;mgl/mgl_qt.h&gt;</code>.
+</p></dd></dl>
+
+<div class="float">
+<img src="qt.png" alt="qt">
+
+</div><p><strong>Example of Qt window with MathGL plot.
+</strong>
+</p>
+<dl>
+<dt><a name="index-mglGraphGLUT-1"></a><u>Class:</u> <b>mglGraphGLUT</b></dt>
+<dd><p>Class <code>mglGraphGLUT</code> adds the possibility to create plotting window with the help of GLUT library. It allows one to show, rotate, export, and change view of the plot only by keyboard. Class is defined in <code>#include &lt;mgl/mgl_glut.h&gt;</code>.
+</p></dd></dl>
+
+<div class="float">
+<img src="glut.png" alt="glut">
+
+</div><p><strong>Example of GLUT window with MathGL plot.
+</strong>
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Fl_005fMathGL-class">5.1 Fl_MathGL class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#QMathGL-class">5.2 QMathGL class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Fl_005fMathGL-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Widget-classes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#QMathGL-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Widget-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Widget-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_6.html#mglData-class" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fl_005fMathGL-class-1"></a>
+<h2 class="section">5.1 Fl_MathGL class</h2>
+<a name="index-Fl_005fMathGL-2"></a>
+<a name="index-widgets-2"></a>
+
+<p>Class is FLTK widget which display MathGL graphics (defined in <code>#include &lt;mgl/mgl_fltk.h&gt;</code>).
+</p>
+<dl>
+<dt><a name="index-set_005fdraw-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_draw</b><i> (<code>mglDraw *</code>dr)</i></dt>
+<dd><p>Sets drawing function from a class inherited from <code>mglDraw</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-update-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>update</b><i> (<code>mglGraph *</code>gr=<code>NULL</code>)</i></dt>
+<dd><p>Update (redraw) plot using grapher <var>gr</var> (built-in by default).
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fangle-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_angle</b><i> (<code>float</code> t, <code>float</code> p)</i></dt>
+<dd><p>Set angles for additional plot rotation
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fstate-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_state</b><i> (<code>int</code> f)</i></dt>
+<dd><p>Set bitwise flags for general state (1-Alpha, 2-Light)
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fstate-on-Fl_005fMathGL-1"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_state</b><i> (<code>bool</code> z, <code>bool</code> r)</i></dt>
+<dd><p>Set flags for handling mouse: <var>z</var>=<code>true</code> allow zooming, <var>r</var>=<code>true</code> allow rotation/shifting/perspective and so on.
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fzoom-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_zoom</b><i> (<code>float</code> X1, <code>float</code> Y1, <code>float</code> X2, <code>float</code> Y2)</i></dt>
+<dd><p>Set zoom in/out region
+</p></dd></dl>
+<dl>
+<dt><a name="index-get_005fzoom-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>get_zoom</b><i> (<code>float *</code>X1, <code>float *</code>Y1, <code>float *</code>X2, <code>float *</code>Y2)</i></dt>
+<dd><p>Get zoom in/out region
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fpopup-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_popup</b><i> (<code>const Fl_Menu_Item *</code>pmenu, <code>Fl_Widget *</code>w, <code>void *</code>v)</i></dt>
+<dd><p>Set popup menu pointer
+</p></dd></dl>
+<dl>
+<dt><a name="index-get_005fgraph-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>mglGraph *</code> <b>get_graph</b><i> ()</i></dt>
+<dd><p>Get pointer to grapher
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-tet_005fval-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>Fl_Valuator *</code> <b>tet_val</b></dt>
+<dd><p>Pointer to external tet-angle validator.
+</p></dd></dl>
+<dl>
+<dt><a name="index-phi_005fval-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>Fl_Valuator *</code> <b>phi_val</b></dt>
+<dd><p>Pointer to external phi-angle validator.
+</p></dd></dl>
+<dl>
+<dt><a name="index-graph-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>mglGraphAB *</code> <b>graph</b></dt>
+<dd><p>Pointer to grapher
+</p></dd></dl>
+<dl>
+<dt><a name="index-draw_005fpar-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>void *</code> <b>draw_par</b></dt>
+<dd><p>Parameters for drawing function mglGraph::DrawFunc.
+</p></dd></dl>
+<dl>
+<dt><a name="index-draw_005ffunc-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>int (*</code> <b>draw_func</b><i> <code>)(mglGraph *gr, void *par)</code></i></dt>
+<dd><p>Drawing function for window procedure. It should return the number of frames.
+</p></dd></dl>
+
+<hr size="6">
+<a name="QMathGL-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fl_005fMathGL-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_6.html#mglData-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Widget-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Widget-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_6.html#mglData-class" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="QMathGL-class-1"></a>
+<h2 class="section">5.2 QMathGL class</h2>
+<a name="index-QMathGL-2"></a>
+<a name="index-widgets-3"></a>
+
+<p>Class is Qt widget which display MathGL graphics (defined in <code>#include &lt;mgl/mgl_qt.h&gt;</code>).
+</p>
+<dl>
+<dt><a name="index-setDraw-on-QMathGL"></a><u>Method on QMathGL:</u> <code>void</code> <b>setDraw</b><i> (<code>mglDraw *</code>dr)</i></dt>
+<dd><p>Sets drawing functions from a class inherited from <code>mglDraw</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-setDraw-on-QMathGL-1"></a><u>Method on QMathGL:</u> <code>void</code> <b>setDraw</b><i> (<code>int (*</code>draw)(<code>mglGraph *</code>gr, <code>void *</code>p), <code>void *</code>par=<code>NULL</code>)</i></dt>
+<dd><p>Sets the drawing function <var>draw</var>. There is support of a list of plots (frames). So as one can prepare a set of frames at first and redraw it fast later (but it requires more memory). Function should return positive number of frames for the list or zero if it will plot directly. Parameter <var>par</var> contains pointer to data for the plotting function <var>draw</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-setGraph-on-QMathGL"></a><u>Method on QMathGL:</u> <code>void</code> <b>setGraph</b><i> (<code>mglGraphAB *</code>gr)</i></dt>
+<dd><p>Set pointer to external grapher (instead of built-in <code>mglGraphZB</code>). Note that QMathGL will automatically delete this object at destruction or at new <code>setGraph()</code> call.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-setPopup-on-QMathGL"></a><u>Method on QMathGL:</u> <code>void</code> <b>setPopup</b><i> (<code>QMenu *</code>p)</i></dt>
+<dd><p>Set popup menu pointer.
+</p></dd></dl>
+<dl>
+<dt><a name="index-setSize-on-QMathGL"></a><u>Method on QMathGL:</u> <code>void</code> <b>setSize</b><i> (<code>int</code> w, <code>int</code> h)</i></dt>
+<dd><p>Set widget/picture sizes
+</p></dd></dl>
+<dl>
+<dt><a name="index-getRatio-on-QMathGL"></a><u>Method on QMathGL:</u> <code>double</code> <b>getRatio</b><i> ()</i></dt>
+<dd><p>Return aspect ratio of the picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-getPer-on-QMathGL"></a><u>Method on QMathGL:</u> <code>int</code> <b>getPer</b><i> ()</i></dt>
+<dd><p>Get perspective value in percents.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getPhi-on-QMathGL"></a><u>Method on QMathGL:</u> <code>int</code> <b>getPhi</b><i> ()</i></dt>
+<dd><p>Get Phi-angle value in degrees.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getTet-on-QMathGL"></a><u>Method on QMathGL:</u> <code>int</code> <b>getTet</b><i> ()</i></dt>
+<dd><p>Get Theta-angle value in degrees.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getAlpha-on-QMathGL"></a><u>Method on QMathGL:</u> <code>bool</code> <b>getAlpha</b><i> ()</i></dt>
+<dd><p>Get transparency state.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getLight-on-QMathGL"></a><u>Method on QMathGL:</u> <code>bool</code> <b>getLight</b><i> ()</i></dt>
+<dd><p>Get lightning state.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getZoom-on-QMathGL"></a><u>Method on QMathGL:</u> <code>bool</code> <b>getZoom</b><i> ()</i></dt>
+<dd><p>Get mouse zooming state.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getRotate-on-QMathGL"></a><u>Method on QMathGL:</u> <code>bool</code> <b>getRotate</b><i> ()</i></dt>
+<dd><p>Get mouse rotation state.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-void-on-QMathGL"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> refresh ()</i></dt>
+<dd><p>Redraw saved bitmap without executing drawing function.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-1"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> update (<code>mglGraph *</code>gr=<code>NULL</code>)</i></dt>
+<dd><p>Update picture by executing drawing function.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-2"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> copy ()</i></dt>
+<dd><p>Copy graphics to clipboard.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-3"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setPer (<code>int</code> val)</i></dt>
+<dd><p>Set perspective value.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-4"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setPhi (<code>int</code> val)</i></dt>
+<dd><p>Set Phi-angle value.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-5"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setTet (<code>int</code> val)</i></dt>
+<dd><p>Set Theta-angle value.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-6"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setAlpha (<code>bool</code> val)</i></dt>
+<dd><p>Switch on/off transparency.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-7"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setLight (<code>bool</code> val)</i></dt>
+<dd><p>Switch on/off lightning.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-8"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setZoom (<code>bool</code> val)</i></dt>
+<dd><p>Switch on/off mouse zooming.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-9"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setRotate (<code>bool</code> val)</i></dt>
+<dd><p>Switch on/off mouse rotation.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-10"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> zoomIn ()</i></dt>
+<dd><p>Zoom in graphics.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-11"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> zoomOut ()</i></dt>
+<dd><p>Zoom out graphics.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-12"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> restore ()</i></dt>
+<dd><p>Restore zoom and rotation to default values.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-13"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> reload ()</i></dt>
+<dd><p>Reload data and redraw graphics.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-14"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> shiftLeft ()</i></dt>
+<dd><p>Shift graphics to left direction.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-15"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> shiftRight ()</i></dt>
+<dd><p>Shift graphics to right direction.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-16"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i>shiftUp  ()</i></dt>
+<dd><p>Shift graphics to up direction.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-17"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> shiftDown ()</i></dt>
+<dd><p>Shift graphics to down direction.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-18"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportPNG (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Export current picture to PNG file.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-19"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportPNGs (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Export current picture to PNG file (no transparency).
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-20"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportJPG (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Export current picture to JPEG file.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-21"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportBPS (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Export current picture to bitmap EPS file.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-22"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportEPS (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Export current picture to vector EPS file.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-23"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportSVG (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Export current picture to SVG file.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-24"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportIDTF (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Export current picture to IDTF file.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-25"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setMGLFont (<code>QString</code> path)</i></dt>
+<dd><p>Restore (<var>path</var>=<code>&quot;&quot;</code>) or load font for graphics.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-26"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> print ()</i></dt>
+<dd><p>Print current picture
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-27"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> adjust ()</i></dt>
+<dd><p>Adjust plot size to fill entire window. This function is executed only if graph is mglGraphQT instance.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-28"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> nextSlide ()</i></dt>
+<dd><p>Show next slide. This function is executed only if graph is mglGraphQT instance.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-29"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> prevSlide ()</i></dt>
+<dd><p>Show previous slide. This function is executed only if graph is mglGraphQT instance.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-30"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> animation (<code>bool</code> st=<code>true</code>)</i></dt>
+<dd><p>Start animation. This function is executed only if graph is mglGraphQT instance.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-31"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> about ()</i></dt>
+<dd><p>Show about information.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-32"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> aboutQt ()</i></dt>
+<dd><p>Show information about Qt version.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-void-on-QMathGL-33"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> phiChanged (<code>int</code> val)</i></dt>
+<dd><p>Phi angle changed (by mouse or by toolbar).
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-34"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> tetChanged (<code>int</code> val)</i></dt>
+<dd><p>Tet angle changed (by mouse or by toolbar).
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-35"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> perChanged (<code>int</code> val)</i></dt>
+<dd><p>Perspective changed (by mouse or by toolbar).
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-36"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> alphaChanged (<code>bool</code> val)</i></dt>
+<dd><p>Transparency changed (by toolbar).
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-37"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> lightChanged (<code>bool</code> val)</i></dt>
+<dd><p>Lighting changed (by toolbar).
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-38"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> zoomChanged (<code>bool</code> val)</i></dt>
+<dd><p>Zooming changed (by toolbar).
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-39"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> rotateChanged (<code>bool</code> val)</i></dt>
+<dd><p>Rotation changed (by toolbar).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-appName-of-QMathGL"></a><u>Widget option of QMathGL:</u> <code>QString</code> <b>appName</b></dt>
+<dd><p>Application name for message boxes.
+</p></dd></dl>
+<dl>
+<dt><a name="index-autoResize-of-QMathGL"></a><u>Widget option of QMathGL:</u> <code>bool</code> <b>autoResize</b></dt>
+<dd><p>Allow auto resizing (default is false).
+</p></dd></dl>
+<dl>
+<dt><a name="index-animDelay-of-QMathGL"></a><u>Widget option of QMathGL:</u> <code>int</code> <b>animDelay</b></dt>
+<dd><p>Animation delay in ms.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Widget-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_6.html#mglData-class" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_en.html/mathgl_en_6.html b/texinfo/mathgl_en.html/mathgl_en_6.html
new file mode 100644
index 0000000..10db6af
--- /dev/null
+++ b/texinfo/mathgl_en.html/mathgl_en_6.html
@@ -0,0 +1,1140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: 6. mglData class</title>
+
+<meta name="description" content="MathGL 1.11: 6. mglData class">
+<meta name="keywords" content="MathGL 1.11: 6. mglData class">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="mglData-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_5.html#QMathGL-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Public-variables" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_5.html#Widget-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglData-class-1"></a>
+<h1 class="chapter">6. mglData class</h1>
+
+<p>Class for working with data array. This class is defined in <code>#include &lt;mgl/mgl_data.h&gt;</code>. The class has functions for easy and safe allocation, resizing, loading and saving, modifying of data arrays. Also it can numerically differentiate and integrate data, interpolate, fill data by formula and so on. Class supports data with dimensions up to 3 (like function of 3 variables &ndash; x,y,z). The internal representation of numbers is float. Float type was chosen because it has smaller size in memory and usually it has enough precision in plotting purposes.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Public-variables">6.1 Public variables</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Create-and-delete">6.2 Create and delete</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fill">6.3 Fill</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Rearrange">6.4 Rearrange</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#File-I_002fO">6.5 File I/O</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Make-another-data">6.6 Make another data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Change-data">6.7 Change data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Interpolation">6.8 Interpolation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Informational-functions">6.9 Informational functions</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Operators">6.10 Operators</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Global-functions">6.11 Global functions</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Public-variables"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglData-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Create-and-delete" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Public-variables-1"></a>
+<h2 class="section">6.1 Public variables</h2>
+
+<dl>
+<dt><a name="index-a-of-mglData"></a><u>Variable of mglData:</u> <code>float *</code> <b>a</b></dt>
+<dd><p>Data array itself. The flat data representation is used. For example, matrix [nx x ny] is presented as flat (1d-) array with length nx*ny. The element with indexes {i, j, k} is a[i+nx*j+nx*ny*k] (indexes are zero based).
+</p></dd></dl>
+<dl>
+<dt><a name="index-nx-of-mglData"></a><u>Variable of mglData:</u> <code>int</code> <b>nx</b></dt>
+<dd><p>Number of points in 1st dimensions (&rsquo;x&rsquo; dimension).
+</p></dd></dl>
+<dl>
+<dt><a name="index-ny-of-mglData"></a><u>Variable of mglData:</u> <code>int</code> <b>ny</b></dt>
+<dd><p>Number of points in 2nd dimensions (&rsquo;y&rsquo; dimension).
+</p></dd></dl>
+<dl>
+<dt><a name="index-nz-of-mglData"></a><u>Variable of mglData:</u> <code>int</code> <b>nz</b></dt>
+<dd><p>Number of points in 3d dimensions (&rsquo;z&rsquo; dimension).
+</p></dd></dl>
+<dl>
+<dt><a name="index-id-of-mglData"></a><u>Variable of mglData:</u> <code>char *</code> <b>id</b></dt>
+<dd><p>Column (or slice if nz&gt;1) names &ndash; one character per column.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Create-and-delete"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Public-variables" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fill" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Create-and-delete-1"></a>
+<h2 class="section">6.2 Create and delete</h2>
+<a name="index-mglData"></a>
+<a name="index-Set"></a>
+
+<dl>
+<dt><a name="index--on-mglData"></a><u>Constructor on mglData:</u> <b><code></code></b><i> mglData (<code>int</code> mx=<code>1</code>, <code>int</code> my=<code>1</code>, <code>int</code> mz=<code>1</code>)</i></dt>
+<dd><p>Default constructor. Allocates the memory for data array and initializes it by zero.
+</p></dd></dl>
+<dl>
+<dt><a name="index--on-mglData-1"></a><u>Constructor on mglData:</u> <b><code></code></b><i> mglData (<code>const char *</code>fname)</i></dt>
+<dd><p>Initializes the data by reading from file.
+</p></dd></dl>
+<dl>
+<dt><a name="index--on-mglData-2"></a><u>Constructor on mglData:</u> <b><code></code></b><i> mglData (<code>const mglData</code> &amp;dat)</i></dt>
+<dd><p>Initiates by other <code>mglData</code> instance.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Create"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Create</b><i> (<code>int</code> mx, <code>int</code> my=<code>1</code>, <code>int</code> mz=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fcreate"></a><u>C function:</u> <code>void</code> <b>mgl_data_create</b><i> (<code>HMDT</code> dat, <code>int</code> mx, <code>int</code> my, <code>int</code> mz)</i></dt>
+<dd><p>Creates or recreates the array with specified size and fills it by zero. This function does nothing if one of parameters <var>mx</var>, <var>my</var>, <var>mz</var> is zero or negative.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-1"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const float *</code>A, <code>int</code> NX, <code>int</code> NY=<code>1</code>, <code>int</code> NZ=<code>1</code>)</i></dt>
+<dt><a name="index-Set-2"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const double *</code>A, <code>int</code> NX, <code>int</code> NY=<code>1</code>, <code>int</code> NZ=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005ffloat"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_float</b><i> (<code>HMDT</code> dat, <code>const float *</code>A, <code>int</code> NX, <code>int</code> NY, <code>int</code> NZ)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fdouble"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_double</b><i> (<code>HMDT</code> dat, <code>const double *</code>A, <code>int</code> NX, <code>int</code> NY, <code>int</code> NZ)</i></dt>
+<dd><p>Allocates memory and copies the data from the <strong>flat</strong> <code>float*</code> or <code>double*</code> array.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-3"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const float **</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-Set-4"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const double **</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005ffloat2"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_float2</b><i> (<code>HMDT</code> dat, <code>const float **</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fdouble2"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_double2</b><i> (<code>HMDT</code> dat, <code>const double **</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dd><p>Allocates memory and copies the data from the <code>float**</code> or <code>double**</code> array with dimensions <var>N1</var>, <var>N2</var>, i.e. from array defined as <code>float a[N1][N2];</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-5"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const float ***</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-Set-6"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const double ***</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005ffloat3"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_float3</b><i> (<code>HMDT</code> dat, <code>const float ***</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fdouble3"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_double3</b><i> (<code>HMDT</code> dat, <code>const double ***</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dd><p>Allocates memory and copies the data from the <code>float***</code> or <code>double***</code> array with dimensions <var>N1</var>, <var>N2</var>, <var>N3</var>, i.e. from array defined as <code>float a[N1][N2][N3];</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-7"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>gsl_vector *</code>v)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fvector"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_vector</b><i> (<code>HMDT</code> dat, <code>gsl_vector *</code>v)</i></dt>
+<dd><p>Allocates memory and copies the data from the <code>gsl_vector *</code> structure.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-8"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>gsl_matrix *</code>m)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fmatrix"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_matrix</b><i> (<code>HMDT</code> dat, <code>gsl_matrix *</code>m)</i></dt>
+<dd><p>Allocates memory and copies the data from the <code>gsl_matrix *</code> structure.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-9"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>inline void</code> <b>Set</b><i> (<code>const mglData &amp;</code>from)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset"></a><u>C function:</u> <code>void</code> <b>mgl_data_set</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> from)</i></dt>
+<dd><p>Copies the data from mglData instance <var>from</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-10"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const std::vector&lt;int&gt; &amp;</code>d)</i></dt>
+<dt><a name="index-Set-11"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const std::vector&lt;float&gt; &amp;</code>d)</i></dt>
+<dt><a name="index-Set-12"></a><u>Method on <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const std::vector&lt;double&gt; &amp;</code>d)</i></dt>
+<dd><p>Allocates memory and copies the data from the <code>std::vector&lt;T&gt;</code> array.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-Set-13"></a><u>Method on <code>mglData</code> (C+, Python):</u> <code>void</code> <b>Set</b><i> (<code>const char *</code>str, <code>int</code> NX, <code>int</code> NY=<code>1</code>, <code>int</code> NZ=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fvalues"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_values</b><i> (<code>const char *</code>str, <code>int</code> NX, <code>int</code> NY, <code>int</code> NZ)</i></dt>
+<dd><p>Allocates memory and scanf the data from the string.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fill"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Create-and-delete" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Rearrange" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fill-1"></a>
+<h2 class="section">6.3 Fill</h2>
+<a name="index-Fill"></a>
+<a name="index-Modify"></a>
+
+<dl>
+<dt><a name="index-Fill-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Fill</b><i> (<code>float</code> x1, <code>float</code> x2, <code>char</code> dir=<code>'x'</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005ffill"></a><u>C function:</u> <code>void</code> <b>mgl_data_fill</b><i> (<code>HMDT</code> dat, <code>float</code> x1, <code>float</code> x2, <code>char</code> dir)</i></dt>
+<dd><p>Equidistantly fills the data values to range [<var>x1</var>, <var>x2</var>] in direction <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;,&lsquo;<samp>y</samp>&rsquo;,&lsquo;<samp>z</samp>&rsquo;}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fill-2"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Fill</b><i> (<code>const char *</code>eq, <code>mglPoint</code> Min, <code>mglPoint</code> Max, <code>const mglData *</code>vdat=0, <code>const mglData *</code>wdat=0)</i></dt>
+<dt><a name="index-mgl_005fdata_005ffill-1"></a><u>C function:</u> <code>void</code> <b>mgl_data_fill</b><i> (<code>HMGL</code> gr, <code>HMDT</code> dat, <code>const char *</code>eq, <code>const HMDT *</code>vdat, <code>const HMDT *</code>wdat)</i></dt>
+<dd><p>Fills the value of array according to the formula in string <var>eq</var>. Formula is an arbitrary expression depending  on variables &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; are supposed to be normalized in range <var>Min</var> x <var>Max</var> (in difference from <code>Modify</code> functions). Variable &lsquo;<samp>u</samp>&rsquo; is the original value of the array. Variables &lsquo;<samp>v</samp>&rsquo; and &lsquo;<samp>w</samp>&rsquo; are values of <var>vdat</var>, <var>wdat</var> which can be <code>NULL</code> (i.e. can be omitted).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Modify-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Modify</b><i> (<code>const char *</code>eq, <code>int</code> dim=<code>0</code>)</i></dt>
+<dt><a name="index-Modify-2"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Modify</b><i> (<code>const char *</code>eq, <code>const mglData &amp;</code>v)</i></dt>
+<dt><a name="index-Modify-3"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Modify</b><i> (<code>const char *</code>eq, <code>const mglData &amp;</code>v, <code>const mglData &amp;</code>w)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmodify"></a><u>C function:</u> <code>void</code> <b>mgl_data_modify</b><i> (<code>HMDT</code> dat, <code>const char *</code>eq, <code>int</code> dim)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmodify_005fvw"></a><u>C function:</u> <code>void</code> <b>mgl_data_modify_vw</b><i> (<code>HMDT</code> dat, <code>const char *</code>eq, <code>const HMDT</code> v, <code>const HMDT</code> w)</i></dt>
+<dd><p>Fills the value of array according to the formula in string <var>eq</var>. Formula is an arbitrary expression depending  on variables &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; are supposed to be normalized in range [0,1] (in difference from <code>Fill</code> functions). Variable &lsquo;<samp>u</samp>&rsquo; is the original value of the array. Variables &lsquo;<samp>v</samp>&rsquo; and &lsquo;<samp>w</samp>&rsquo; are values of <var>vdat</var>, <var>wdat</var> which can be <code>NULL</code> (i.e. can be omitted). If <var>dim</var>&gt;0 is specified then modification will be fulfilled only for slices &gt;=<var>dim</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Put"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Put</b><i> (<code>float</code> val, <code>int</code> i=<code>-1</code>, <code>int</code> j=<code>-1</code>, <code>int</code> k=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fput_005fval"></a><u>mglData:</u> <code>void</code> <b>mgl_data_put_val</b><i> (<code>HMDT</code> a, <code>float</code> val, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Function sets value(s) of array a[<var>i</var>, <var>j</var>, <var>k</var>] = <var>val</var>. Negative indexes <var>i</var>, <var>j</var>, <var>k</var>=-1 set the value <var>val</var> to whole range in corresponding direction(s). For example, <code>Put(val,-1,0,-1);</code> sets a[i,0,j]=<var>val</var> for i=0...(nx-1), j=0...(nz-1).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Put-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Put</b><i> (<code>const mglData &amp;</code>v, <code>int</code> i=<code>-1</code>, <code>int</code> j=<code>-1</code>, <code>int</code> k=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fput_005fdat"></a><u>mglData:</u> <code>void</code> <b>mgl_data_put_dat</b><i> (<code>HMDT</code> a, <code>const HMDT</code> v, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Function copies value(s) from array <var>v</var> to the range of original array. Negative indexes <var>i</var>, <var>j</var>, <var>k</var>=-1 set the range in corresponding direction(s). At this minor dimensions of array <var>v</var> should be large than corresponding dimensions of this array. For example, <code>Put(v,-1,0,-1);</code> sets a[i,0,j]=v.ny&gt;nz ? v[i,j] : v[i], where i=0...(nx-1), j=0...(nz-1) and condition v.nx&gt;=nx is true.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fdata_005fset_005fvalue"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_value</b><i> (<code>HMDT</code> dat, <code>float</code> v, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Sets the value in specified cell of the data with border checking.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fdata_005fget_005fvalue"></a><u>C function:</u> <code>float</code> <b>mgl_data_get_value</b><i> (<code>HMDT</code> dat, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Gets the value in specified cell of the data with border checking.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetNx"></a><u>Method on <code>mglData</code> (C+, Python):</u> <code>void</code> <b>GetNx</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fdata_005fget_005fnx"></a><u>C function:</u> <code>float</code> <b>mgl_data_get_nx</b><i> (<code>HMDT</code> dat)</i></dt>
+<dd><p>Gets the x-size of the data.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetNy"></a><u>Method on <code>mglData</code> (C+, Python):</u> <code>void</code> <b>GetNy</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fdata_005fget_005fny"></a><u>C function:</u> <code>float</code> <b>mgl_data_get_ny</b><i> (<code>HMDT</code> dat)</i></dt>
+<dd><p>Gets the y-size of the data.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetNz"></a><u>Method on <code>mglData</code> (C+, Python):</u> <code>void</code> <b>GetNz</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fdata_005fget_005fnz"></a><u>C function:</u> <code>float</code> <b>mgl_data_get_nz</b><i> (<code>HMDT</code> dat)</i></dt>
+<dd><p>Gets the z-size of the data.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Rearrange"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fill" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#File-I_002fO" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Rearrange-1"></a>
+<h2 class="section">6.4 Rearrange</h2>
+<a name="index-Rearrange"></a>
+<a name="index-Extend"></a>
+<a name="index-Transpose"></a>
+<a name="index-Squeeze"></a>
+<a name="index-Crop"></a>
+<a name="index-InsertRows"></a>
+<a name="index-InsertColumns"></a>
+<a name="index-InsertSlices"></a>
+<a name="index-DeleteRows"></a>
+<a name="index-DeleteColumns"></a>
+<a name="index-DeleteSlices"></a>
+<a name="index-Insert"></a>
+<a name="index-Delete"></a>
+
+<dl>
+<dt><a name="index-Rearrange-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Rearrange</b><i> (<code>int</code> mx, <code>int</code> my=<code>0</code>, <code>int</code> mz=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005frearrange"></a><u>C function:</u> <code>void</code> <b>mgl_data_rearrange</b><i> (<code>HMDT</code> dat, <code>int</code> mx, <code>int</code> my, <code>int</code> mz)</i></dt>
+<dd><p>Rearrange dimensions without changing data array so that resulting sizes should  be <var>mx</var>*<var>my</var>*<var>mz</var> &lt; nx*ny*nz. If some of parameter <var>my</var> or <var>mz</var> are zero then it will be selected to optimal fill of data array. For example, if <var>my</var>=0 then it will be change to <var>my</var>=nx*ny*nz/<var>mx</var> and <var>mz</var> will be 1.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Extend-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Extend</b><i> (<code>int</code> n1, <code>int</code> n2=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fextend"></a><u>C function:</u> <code>void</code> <b>mgl_data_extend</b><i> (<code>HMDT</code> dat, <code>int</code> n1, <code>int</code> n2)</i></dt>
+<dd><p>Increase the dimensions of the data by inserting new (|<var>n1</var>|+1)-th slices after (for <var>n1</var>&gt;0) or before (for <var>n1</var>&lt;0) of existed one. It is possible to insert 2 dimensions simultaneously for 1d data by using parameter <var>n2</var>. Data to new slices is copy from existed one. For example, for <var>n1</var>&gt;0 new array will be 
+a_ij^new = a_i^old where j=0...<var>n1</var>. Correspondingly, for <var>n1</var>&lt;0 new array will be a_ij^new = a_j^old where i=0...|<var>n1</var>|.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Transpose-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Transpose</b><i> (<code>const char *</code>dim=<code>&quot;yx&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005ftranspose"></a><u>C function:</u> <code>void</code> <b>mgl_data_transpose</b><i> (<code>const char *</code>dim)</i></dt>
+<dd><p>Transposes (shift order of) dimensions of the data. New order of dimensions is specified int string <var>dim</var>. This function may be useful also for the reading of one-dimensional data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Squeeze-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Squeeze</b><i> (<code>int</code> rx, <code>int</code> ry=<code>1</code>, <code>int</code> rz=<code>1</code>, <code>bool</code> smooth=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsqueeze"></a><u>C function:</u> <code>void</code> <b>mgl_data_squeeze</b><i> (<code>HMDT</code> dat, <code>int</code> rx, <code>int</code> ry, <code>int</code> rz, <code>int</code> smooth)</i></dt>
+<dd><p>Reduces the data size by excluding data elements which indexes are not divisible by <var>rx</var>, <var>ry</var>, <var>rz</var> correspondingly. Parameter <var>smooth</var> set to use smoothing
+(i.e. out[i]=\sum_{j=i,i+r} a[j]/r) or not (i.e. out[i]=a[j*r]).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Crop-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Crop</b><i> (<code>int</code> n1, <code>int</code> n2, <code>char</code> dir=<code>'x'</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fcrop"></a><u>C function:</u> <code>void</code> <b>mgl_data_crop</b><i> (<code>HMDT</code> dat, <code>int</code> n1, <code>int</code> n2, <code>char</code> dir)</i></dt>
+<dd><p>Cuts off edges of the data <var>i</var>&lt;<var>n1</var> and <var>i</var>&gt;<var>n2</var> if <var>n2</var>&gt;0 or <var>i</var>&gt;<code>n[xyz]</code>-<var>n2</var> if <var>n2</var>&lt;=0 along direction <var>dir</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-InsertRows-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>InsertRows</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>, <code>const char *</code>eq=<code>NULL</code>)</i></dt>
+<dd><p>Insert <var>num</var> rows (slice along y-direction) at position <var>at</var> and fill it by formula <var>eq</var> (if <var>eq</var>!=0) or by zeros.
+</p></dd></dl>
+<dl>
+<dt><a name="index-InsertColumns-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>InsertColumns</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>, <code>const char *</code>eq=<code>NULL</code>)</i></dt>
+<dd><p>Insert <var>num</var> columns (slice along x-direction) at position <var>at</var> and fill it by formula <var>eq</var> (if <var>eq</var>!=0) or by zeros.
+</p></dd></dl>
+<dl>
+<dt><a name="index-InsertSlices-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>InsertSlices</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>, <code>const char *</code>eq=<code>NULL</code>)</i></dt>
+<dd><p>Insert <var>num</var> slices (slice along z-direction) at position <var>at</var> and fill it by formula <var>eq</var> (if <var>eq</var>!=0) or by zeros.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DeleteRows-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>DeleteRows</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>)</i></dt>
+<dd><p>Delete <var>num</var> rows (slice along y-direction) at position <var>at</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-DeleteColumns-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>DeleteColumns</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>)</i></dt>
+<dd><p>Delete <var>num</var> columns (slice along x-direction) at position <var>at</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-DeleteSlices-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>DeleteSlices</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>)</i></dt>
+<dd><p>Delete <var>num</var> slices (slice along z-direction) at position <var>at</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Insert-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Insert</b><i> (<code>char</code> dir, <code>int</code> pos=<code>0</code>, <code>int</code> num=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005finsert"></a><u>C function:</u> <code>void</code> <b>mgl_data_insert</b><i> (<code>HMDT</code> dat, <code>char</code> dir, <code>int</code> pos, <code>char</code> num)</i></dt>
+<dd><p>Insert <var>num</var> slices along <var>dir</var>-direction at position <var>pos</var> and fill it by zeros.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Delete-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Delete</b><i> (<code>char</code> dir, <code>int</code> pos=<code>0</code>, <code>int</code> num=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdelete"></a><u>C function:</u> <code>void</code> <b>mgl_data_delete</b><i> (<code>HMDT</code> dat, <code>char</code> dir, <code>int</code> pos, <code>char</code> num)</i></dt>
+<dd><p>Delete <var>num</var> slices along <var>dir</var>-direction at position <var>pos</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="File-I_002fO"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Rearrange" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Make-another-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="File-I_002fO-1"></a>
+<h2 class="section">6.5 File I/O</h2>
+<a name="index-Read"></a>
+<dl>
+<dt><a name="index-Read-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Read</b><i> (<code>const char *</code>fname)</i></dt>
+<dt><a name="index-mgl_005fdata_005fread"></a><u>C function:</u> <code>void</code> <b>mgl_data_read</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname)</i></dt>
+<dd><p>Reads data from tab-separated text file with auto determining sizes of the data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Read-2"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Read</b><i> (<code>const char *</code>fname, <code>int</code> mx, <code>int</code> my=<code>1</code>, <code>int</code> mz=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fread_005fdim"></a><u>C function:</u> <code>void</code> <b>mgl_data_read_dim</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname, <code>int</code> mx, <code>int</code> my, <code>int</code> mz)</i></dt>
+<dd><p>Reads data from text file with specified data sizes. This function does nothing if one of parameters <var>mx</var>, <var>my</var> or <var>mz</var> is zero or negative.
+</p></dd></dl>
+<a name="index-ReadMat"></a>
+<dl>
+<dt><a name="index-ReadMat-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>ReadMat</b><i> (<code>const char *</code>fname, <code>int</code> dim=<code>2</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fread_005fmat"></a><u>C function:</u> <code>void</code> <b>mgl_data_read_mat</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname, <code>int</code> dim)</i></dt>
+<dd><p>Read data from text file with size specified at beginning of the file by first <var>dim</var> numbers. At this, variable <var>dim</var> set data dimensions.
+</p></dd></dl>
+
+<a name="index-ReadRange"></a>
+<dl>
+<dt><a name="index-ReadRange-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>ReadRange</b><i> (<code>const char *</code>templ, <code>float</code> from, <code>float</code> to, <code>float</code> step=<code>1.f</code>, <code>bool</code> as_slice=<code>false</code>)</i></dt>
+<dd><p>Join data arrays from several text files. The file names are determined by function call <code>sprintf(fname,templ,val);</code>, where <var>val</var> changes from <var>from</var> to <var>to</var> with step <var>step</var>. The data load one-by-one in the same slice if <var>as_slice</var>=<code>false</code> or as slice-by-slice if <var>as_slice</var>=<code>true</code>.
+</p></dd></dl>
+<a name="index-ReadAll"></a>
+<dl>
+<dt><a name="index-ReadAll-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>ReadAll</b><i> (<code>const char *</code>templ, <code>bool</code> as_slice=<code>false</code>)</i></dt>
+<dd><p>Join data arrays from several text files which filenames satisfied the template <var>templ</var> (for example, <var>templ</var>=<code>&quot;t_*.dat&quot;</code>). The data load one-by-one in the same slice if <var>as_slice</var>=<code>false</code> or as slice-by-slice if <var>as_slice</var>=<code>true</code>.
+</p></dd></dl>
+
+<a name="index-Save"></a>
+<dl>
+<dt><a name="index-Save-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Save</b><i> (<code>const char *</code>fname, <code>int</code> ns=<code>-1</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fsave"></a><u>C function:</u> <code>void</code> <b>mgl_data_save</b><i> (<code>const HMDT</code> dat, <code>const char *</code>fname, <code>int</code> ns)</i></dt>
+<dd><p>Saves the whole data array (for <var>ns</var>=<code>-1</code>) or only <var>ns</var>-th slice to text file.
+</p></dd></dl>
+
+<a name="index-ReadHDF"></a>
+<dl>
+<dt><a name="index-ReadHDF-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>ReadHDF</b><i> (<code>const char *</code>fname, <code>const char *</code>dname)</i></dt>
+<dd><p>Reads data array named <var>dname</var> from HDF5 or HDF4 file. This function does nothing if NO_HDF5|NO_HDF4 was defined during library compilation.
+</p></dd></dl>
+<a name="index-SaveHDF"></a>
+<dl>
+<dt><a name="index-SaveHDF-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>SaveHDF</b><i> (<code>const char *</code>fname, <code>const char *</code>dname, <code>bool</code> rewrite=<code>false</code>) <code>const</code></i></dt>
+<dd><p>Saves data array named <var>dname</var> from HDF5 or HDF4 file. This function does nothing if NO_HDF5|NO_HDF4 was defined during library compilation.
+</p></dd></dl>
+
+<a name="index-Import"></a>
+<dl>
+<dt><a name="index-Import-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Import</b><i> (<code>const char *</code>fname, <code>const char *</code>scheme, <code>float</code> v1=<code>0</code>, float v2=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fimport"></a><u>C function:</u> <code>void</code> <b>mgl_data_import</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname, <code>const char *</code>scheme, <code>float</code> v1, float v2)</i></dt>
+<dd><p>Reads data from bitmap file (now support only PNG format). The RGB values of bitmap pixels are transformed to float values in range [<var>v1</var>, <var>v2</var>] using color scheme <var>scheme</var> (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>).
+</p></dd></dl>
+<a name="index-Export"></a>
+<dl>
+<dt><a name="index-Export-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Export</b><i> (<code>const char *</code>fname, <code>const char *</code>scheme, <code>float</code> v1=<code>0</code>, float v2=<code>0</code>, <code>int</code> ns=<code>-1</code>) const</i></dt>
+<dt><a name="index-mgl_005fdata_005fexport"></a><u>C function:</u> <code>void</code> <b>mgl_data_export</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname, <code>const char *</code>scheme, <code>float</code> v1, float v2, <code>int</code> ns) const</i></dt>
+<dd><p>Saves data matrix (or <code>ns</code>-th slice for 3d data) to bitmap file (now support only PNG format). The data values are transformed from range [<var>v1</var>, <var>v2</var>] to RGB pixels of bitmap using color scheme <var>scheme</var> (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>). If <var>v1</var>&gt;=<var>v2</var> then the values of <var>v1</var>, <var>v2</var> are automatically determined as minimal and maximal value of the data array.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Make-another-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#File-I_002fO" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Change-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Make-another-data-1"></a>
+<h2 class="section">6.6 Make another data</h2>
+
+<a name="index-SubData"></a>
+<dl>
+<dt><a name="index-SubData-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>SubData</b><i> (<code>int</code> xx, <code>int</code> yy=<code>-1</code>, <code>int</code> zz=<code>-1</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fsubdata"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_subdata</b><i> (<code>const HMDT</code> dat, <code>int</code> xx, <code>int</code> yy, <code>int</code> zz)</i></dt>
+<dd><p>Extracts sub-array data from the original data array keeping fixed positive index. For example <code>SubData(-1,2)</code> extracts 3d row (indexes are zero based), <code>SubData(4,-1)</code> extracts 5th column, <code>SubData(-1,-1,3)</code> extracts 4th slice and so on.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SubData-2"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>SubData</b><i> (<code>const mglData &amp;</code>xx, <code>const mglData &amp;</code>yy, <code>const mglData &amp;</code>zz) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fsubdata_005fext"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_subdata_ext</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> xx, <code>const HMDT</code> yy, <code>const HMDT</code> zz)</i></dt>
+<dd><p>Extracts sub-array data from the original data array for indexes specified by arrays <var>xx</var>, <var>yy</var>, <var>zz</var> (indirect access). The resulting array have the same dimensions as input arrays for 2D and 3D arguments. This function work like previous one for 1D arguments (or numbers). The dimensions of all argument must be the same if they are 2D or 3D arrays.
+</p></dd></dl>
+
+<a name="index-Column"></a>
+<dl>
+<dt><a name="index-Column-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Column</b><i> (<code>const char *</code>eq) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fcolumn"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_column</b><i> (<code>const HMDT</code> dat, <code>const char *</code>eq)</i></dt>
+<dd><p>Get column (or slice) of the data filled by formula <var>eq</var> of other named columns. For example, <code>Column(&quot;n*w^2/exp(t)&quot;);</code>. The column ids must be defined first by <code>SetColumnId()</code> function.
+</p></dd></dl>
+
+<a name="index-SetColumnId"></a>
+<dl>
+<dt><a name="index-SetColumnId-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>SetColumnId</b><i> (<code>const char *</code>ids)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fid"></a><u>C function:</u> <code>void</code> <b>mgl_data_set_id</b><i> (<code>HMDT</code> dat, <code>const char *</code>ids)</i></dt>
+<dd><p>Set the symbol id for data columns. The string must contain one symbol &rsquo;a&rsquo;...&rsquo;z&rsquo; per column (without spaces).
+</p></dd></dl>
+
+<a name="index-Trace"></a>
+<dl>
+<dt><a name="index-Trace-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Trace</b><i> () <code>const</code></i></dt>
+<dd><p>Gets array of diagonal elements a[i,i] (for 2D case) or a[i,i,i] (for 3D case) where i=0...nx-1. Function return copy of itself for 1D case. Data array must have dimensions ny,nz &gt;= nx or ny,nz = 1.
+</p></dd></dl>
+
+<a name="index-Hist-4"></a>
+<dl>
+<dt><a name="index-Hist-5"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Hist</b><i> (<code>int</code> n, <code>float</code> v1=<code>0</code>, <code>float</code> v2=<code>1</code>, <code>int</code> nsub=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fhist"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_hist</b><i> (<code>const HMDT</code> dat, <code>int</code> n, <code>float</code> v1, <code>float</code> v2, <code>int</code> nsub)</i></dt>
+<dd><p>Creates <var>n</var>-th points distribution of the data values in range [<var>v1</var>, <var>v2</var>]. Parameter <var>nsub</var> define the number of additional interpolated points (for smoothness of histogram).
+</p></dd></dl>
+<dl>
+<dt><a name="index-Hist-6"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Hist</b><i> (<code>const mglData &amp;</code>w, <code>int</code> n, <code>float</code> v1=<code>0</code>, <code>float</code> v2=<code>1</code>, <code>int</code> nsub=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fhist_005fw"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_hist_w</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> w, <code>int</code> n, <code>float</code> v1, <code>float</code> v2, <code>int</code> nsub)</i></dt>
+<dd><p>Creates <var>n</var>-th points distribution of the data values in range [<var>v1</var>, <var>v2</var>]. Array <var>w</var> specifies weights of the data elements. Parameter <var>nsub</var> define the number of additional interpolated points (for smoothness of histogram).
+</p></dd></dl>
+
+<a name="index-Momentum"></a>
+<dl>
+<dt><a name="index-Momentum-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Momentum</b><i> (<code>char</code> dir, <code>const char *</code>how) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmomentum"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_momentum</b><i> (<code>const HMDT</code> dat, <code>char</code> dir, <code>const char *</code>how)</i></dt>
+<dd><p>Get momentum (1D-array) of the data along direction <var>dir</var>. String <var>how</var> contain kind of momentum. The momentum is defined like as
+res_k = \sum_ij how(x_i,y_j,z_k) a_ij/ \sum_ij a_ij
+if <var>var</var>=&lsquo;<samp>z</samp>&rsquo; and so on. Coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; are data indexes normalized in range [0,1].
+</p></dd></dl>
+
+<a name="index-Sum"></a>
+<dl>
+<dt><a name="index-Sum-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Sum</b><i> (<code>const char *</code>dir) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fsum"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_sum</b><i> (<code>const HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Gets array which is the result of summation in given direction or direction(s).
+</p></dd></dl>
+<a name="index-Max-1"></a>
+<dl>
+<dt><a name="index-Max-2"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Max</b><i> (<code>const char *</code>dir) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmax_005fdir"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_max_dir</b><i> (<code>const HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Gets array which is the maximal data values in given direction or direction(s).
+</p></dd></dl>
+<a name="index-Min-1"></a>
+<dl>
+<dt><a name="index-Min-2"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Min</b><i> (<code>const char *</code>dir) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmin_005fdir"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_min_dir</b><i> (<code>const HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Gets array which is the maximal data values in given direction or direction(s).
+</p></dd></dl>
+
+<a name="index-Combine"></a>
+<dl>
+<dt><a name="index-Combine-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Combine</b><i> (<code>const mglData &amp;</code>a) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fcombine"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_combine</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> a)</i></dt>
+<dd><p>Return direct multiplication of arrays (like, res[i,j] = this[i]*a[j] and so on).
+</p></dd></dl>
+
+<a name="index-Evaluate"></a>
+<dl>
+<dt><a name="index-Evaluate-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Evaluate</b><i> (<code>const mglData &amp;</code>idat, <code>bool</code> norm=<code>true</code>) <code>const</code></i></dt>
+<dt><a name="index-Evaluate-2"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Evaluate</b><i> (<code>const mglData &amp;</code>idat, <code>const mglData &amp;</code>jdat, <code>bool</code> norm=<code>true</code>) <code>const</code></i></dt>
+<dt><a name="index-Evaluate-3"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Evaluate</b><i> (<code>const mglData &amp;</code>idat, <code>const mglData &amp;</code>jdat, <code>const mglData &amp;</code>kdat, <code>bool</code> norm=<code>true</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fevaluate_005fi"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_evaluate_i</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> idat, <code>int</code> norm)</i></dt>
+<dt><a name="index-mgl_005fdata_005fevaluate_005fij"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_evaluate_ij</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> idat, <code>const HMDT</code> jdat, <code>int</code> norm)</i></dt>
+<dt><a name="index-mgl_005fdata_005fevaluate_005fijk"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_evaluate_ijk</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> idat, <code>const HMDT</code> jdat, <code>const HMDT</code> kdat, <code>int</code> norm)</i></dt>
+<dd><p>Get array which values is result of interpolation of original array for coordinates from other arrays. All dimensions must be the same for data <var>idat</var>, <var>jdat</var>, <var>kdat</var>. Coordinates from <var>idat</var>, <var>jdat</var>, <var>kdat</var> are supposed to be normalized in range [0,1] (if <var>norm</var>=<code>true</code>) or in ranges [0,nx], [0,ny], [0,nz] correspondingly.
+</p></dd></dl>
+
+<a name="index-Resize"></a>
+<dl>
+<dt><a name="index-Resize-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Resize</b><i> (<code>int</code> mx, <code>int</code> my=<code>1</code>, <code>int</code> mz=<code>1</code>, <code>float</code> x1=<code>0</code>, <code>float</code> x2=<code>1</code>, <code>float</code> y1=<code>0</code>, <code>float</code> y2=<code>1</code>, <code>float</code> z1=<code>0</code>, <code>float</code> z2=<code>1</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fresize"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_resize</b><i> (<code>const HMDT</code> dat, <code>int</code> mx, <code>int</code> my, <code>int</code> mz)</i></dt>
+<dt><a name="index-mgl_005fdata_005fresize_005fbox"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_resize_box</b><i> (<code>const HMDT</code> dat, <code>int</code> mx, <code>int</code> my, <code>int</code> mz, <code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2, <code>float</code> z1, <code>float</code> z2)</i></dt>
+<dd><p>Resizes the data to new size <var>mx</var>, <var>my</var>, <var>mz</var> from box (part) [<var>x1</var>,<var>x2</var>] x [<var>y1</var>,<var>y2</var>] x [<var>z1</var>,<var>z2</var>] of original array. Initially x,y,z coordinates are supposed to be in [0,1].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Change-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Make-another-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Interpolation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Change-data-1"></a>
+<h2 class="section">6.7 Change data</h2>
+
+<p>These functions change the data in some direction like differentiations, integrations and so on. The direction in which the change will applied is specified by the string parameter, which may contain &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo; characters for 1-st, 2-nd and 3-d dimension correspondengly.
+</p>
+<a name="index-CumSum"></a>
+<dl>
+<dt><a name="index-CumSum-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>CumSum</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fcumsum"></a><u>C function:</u> <code>void</code> <b>mgl_data_cumsum</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Cumulative summation of the data in given direction or directions.
+</p></dd></dl>
+
+<a name="index-Integral"></a>
+<dl>
+<dt><a name="index-Integral-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Integral</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fintegral"></a><u>C function:</u> <code>void</code> <b>mgl_data_integral</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Integrates (like cumulative summation) the data in given direction or directions.
+</p></dd></dl>
+
+<a name="index-Diff"></a>
+<dl>
+<dt><a name="index-Diff-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Diff</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiff"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_diff</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Differentiates the data in given direction or directions.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Diff-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Diff</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y)</i></dt>
+<dt><a name="index-Diff-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Diff</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiff_005fpar"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_diff_par</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> x, <code>const HMDT</code>y, <code>const HMDT</code>z)</i></dt>
+<dd><p>Differentiates the data specified parametrically in direction <var>x</var> with <var>y</var>, <var>z</var>=constant. Parametrical differentiation uses the formula (for 2D case): <em>da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j)</em> where <em>a_i=da/di, a_j=da/dj</em> denotes usual differentiation along 1st and 2nd dimensions. The similar formula is used for 3D case. Note, that you may change the order of arguments &ndash; for example, if you have 2D data a(i,j) which depend on coordinates {x(i,j), y(i,j)} then usual derivative along &lsquo;<samp>x</samp>&rsquo; will be <code>Diff(x,y);</code> and usual derivative along &lsquo;<samp>y</samp>&rsquo; will be <code>Diff(y,x);</code>.
+</p></dd></dl>
+
+
+<a name="index-Diff2"></a>
+<dl>
+<dt><a name="index-Diff2-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Diff2</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiff2"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_diff2</b><i> (<code>const char *</code>dir)</i></dt>
+<dd><p>Double-differentiates (like Laplace operator) the data in given direction.
+</p></dd></dl>
+
+<a name="index-SinFFT"></a>
+<dl>
+<dt><a name="index-SinFFT-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>SinFFT</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsinfft"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_sinfft</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Do Sine transform of the data in given direction or directions. The Sine transform is <em>\sum a_i \sin(k i)</em>.
+</p></dd></dl>
+
+<a name="index-CosFFT"></a>
+<dl>
+<dt><a name="index-CosFFT-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>CosFFT</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fcosfft"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_cosfft</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Do Cosine transform of the data in given direction or directions. The Cosine transform is <em>\sum a_i \cos(k i)</em>.
+</p></dd></dl>
+
+<a name="index-Hankel"></a>
+<dl>
+<dt><a name="index-Hankel-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Hankel</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fhankel"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_hankel</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Do Hankel transform of the data in given direction or directions. The Hankel transform is <em>\sum a_i J_0(k i)</em>.
+</p></dd></dl>
+
+
+<a name="index-Swap"></a>
+<dl>
+<dt><a name="index-Swap-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Swap</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fswap"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_swap</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Swaps the left and right part of the data in given direction (useful for Fourier spectrum).
+</p></dd></dl>
+
+<a name="index-Roll"></a>
+<dl>
+<dt><a name="index-Roll-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Roll</b><i> (<code>char</code> dir, <code>num</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005froll"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_roll</b><i> (<code>HMDT</code> dat, <code>char</code> dir, <code>num</code>)</i></dt>
+<dd><p>Rolls the data along direction <var>dir</var>. Resulting array will be out[i] = ini[(i+num)%nx] if <code>dir='x'</code>.
+</p></dd></dl>
+
+<a name="index-Mirror"></a>
+<dl>
+<dt><a name="index-Mirror-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Mirror</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmirror"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_mirror</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Mirror the left-to-right part of the data in given direction. Looks like change the value index <var>i</var>-&gt;<var>n-i</var>.
+</p></dd></dl>
+
+<a name="index-Sew"></a>
+<dl>
+<dt><a name="index-Sew-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Sew</b><i> (<code>const char *</code>dir, <code>float</code> da=<code>2*M_PI</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsew"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_sew</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir, <code>float</code> da)</i></dt>
+<dd><p>Remove value steps (like phase jumps after inverse trigonometric functions) with period <var>da</var> in given direction.
+</p></dd></dl>
+
+<a name="index-Smooth"></a>
+<dl>
+<dt><a name="index-Smooth-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Smooth</b><i> (<code>int</code> Type, <code>const char *</code>dir, <code>float</code> delta=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsmooth"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_smooth</b><i> (<code>HMDT</code> dat, <code>int</code> Type, <code>float</code> delt, <code>const char *</code>dirs)</i></dt>
+<dd><p>Smooths the data on specified direction or directions by method <var>Type</var>. Now 4 methods are supported: <code>SMOOTH_NONE</code> does nothing for <var>delta</var>=0 or approaches data to zero with the step <var>delta</var>, <code>SMOOTH_LINE_3</code> linear averaging by 3 points, <code>SMOOTH_LINE_5</code> linear averaging by 5 points, <code>SMOOTH_QUAD_5</code> quadratic averaging by 5 points. Parameter <var>delta</var> forbids to change values of array more than <var>delta</var> from the original ones. String <var>dirs</var> specifies the dimensions which will be smoothed. It may contain characters: &rsquo;x&rsquo; for 1st dimension, &rsquo;y&rsquo; for 2nd dimension, &rsquo;z&rsquo; for 3d dimension.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Smooth-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Smooth</b><i> (<code>const char *</code>dir)</i></dt>
+<dd><p>Smooths the data on specified direction(s). This is the same as <code>Smooth()</code> but argument <var>Type</var> is specified in string as &lsquo;<samp>0</samp>&rsquo; for <code>SMOOTH_NONE</code>, &lsquo;<samp>3</samp>&rsquo; for <code>SMOOTH_LINE_3</code>, &lsquo;<samp>5</samp>&rsquo; for <code>SMOOTH_LINE_5</code>. If string <var>dir</var> don&rsquo;t contain digits &lsquo;<samp>035</samp>&rsquo; then <var>Type</var>=<code>SMOOTH_QUAD_5</code> is used.
+</p></dd></dl>
+
+<a name="index-Envelop"></a>
+<dl>
+<dt><a name="index-Envelop-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Envelop</b><i> (<code>char</code> dir=<code>'x'</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fenvelop"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_envelop</b><i> (<code>HMDT</code> dat, <code>char</code> dir)</i></dt>
+<dd><p>Find envelop for data values along direction <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-Norm"></a>
+<dl>
+<dt><a name="index-Norm-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Norm</b><i> (<code>float</code> v1=<code>0</code>, <code>float</code> v2=<code>1</code>, <code>bool</code> sym=<code>false</code>, <code>int</code> dim=<code>0</code>)</i></dt>
+<dd><p>Normalizes the data to range [<var>v1</var>,<var>v2</var>]. If flag <var>sym</var>=<code>true</code> then symmetrical interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used. Modification will be applied only for slices &gt;=<var>dim</var>.
+</p></dd></dl>
+
+<a name="index-NormSl"></a>
+<dl>
+<dt><a name="index-NormSl-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>NormSl</b><i> (<code>float</code> v1=<code>0</code>, <code>float</code> v2=<code>1</code>, <code>char</code> dir=<code>'z'</code>, <code>bool</code> keep_en=<code>true</code>, <code>bool</code> sym=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fnorm_005fslice"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_norm_slice</b><i> (<code>HMDT</code> dat, <code>float</code> v1, <code>float</code> v2, <code>char</code> dir, <code>int</code> keep_en, <code>int</code> sym)</i></dt>
+<dd><p>Normalizes data slice-by-slice along direction <var>dir</var> the data in slices to range [<var>v1</var>,<var>v2</var>]. If flag <var>sym</var>=<code>true</code> then symmetrical interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used. If <var>keep_en</var> is set then maximal value of k-th slice will be limited by 
+<em>\sqrt\sum a_ij(k)/\sum a_ij(0)</em>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Interpolation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Change-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Informational-functions" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Interpolation-1"></a>
+<h2 class="section">6.8 Interpolation</h2>
+<a name="index-Spline"></a>
+<dl>
+<dt><a name="index-Spline-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Spline</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fspline"></a><u>C function:</u> <code>float</code> <b>mgl_data_spline</b><i> (<code>const HMDT</code> dat, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dd><p>Interpolates data by cubic spline to the given point <var>x</var> in [0...nx-1], <var>y</var> in [0...ny-1], <var>z</var> in [0...nz-1].
+</p></dd></dl>
+<a name="index-Spline1"></a>
+<dl>
+<dt><a name="index-Spline1-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Spline1</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fspline1"></a><u>C function:</u> <code>float</code> <b>mgl_data_spline1</b><i> (<code>const HMDT</code> dat, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dd><p>Interpolates data by cubic spline to the given point <var>x</var>, <var>y</var>, <var>z</var> which assumed to be normalized in range [0, 1].
+</p></dd></dl>
+<a name="index-Linear"></a>
+<dl>
+<dt><a name="index-Linear-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Linear</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005flinear"></a><u>C function:</u> <code>float</code> <b>mgl_data_linear</b><i> (<code>const HMDT</code> dat, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dd><p>Interpolates data by linear function to the given point <var>x</var> in [0...nx-1], <var>y</var> in [0...ny-1], <var>z</var> in [0...nz-1].
+</p></dd></dl>
+<a name="index-Linear1"></a>
+<dl>
+<dt><a name="index-Linear1-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Linear1</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005flinear1"></a><u>C function:</u> <code>float</code> <b>mgl_data_linear1</b><i> (<code>const HMDT</code> dat, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dd><p>Interpolates data by linear function to the given point <var>x</var>, <var>y</var>, <var>z</var> which assumed to be normalized in range [0, 1].
+</p></dd></dl>
+<a name="index-v"></a>
+<dl>
+<dt><a name="index-v-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>v</b><i> (<code>int</code> i, <code>int</code> j=<code>0</code>, <code>int</code> k=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fget_005fvalue-1"></a><u>C function:</u> <code>float</code> <b>mgl_data_get_value</b><i> (<code>const HMDT</code> dat, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Gets the value in specified cell of the data with border checking.
+</p></dd></dl>
+<a name="index-Spline5"></a>
+<dl>
+<dt><a name="index-Spline5-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Spline5</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> &amp;dx, <code>float</code> &amp;dy, <code>float</code> &amp;dz) <code>const</code></i></dt>
+<dd><p>Interpolate by 5-th order splain the data to given point <var>x</var>, <var>y</var>, <var>z</var> which normalized in range [0, 1] and evaluate its derivatives.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fdata_005fvalue"></a><u>C function:</u> <code>float *</code> <b>mgl_data_value</b><i> (<code>HMDT</code> dat, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Gets the pointer to data element.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fdata_005fdata"></a><u>C function:</u> <code>const float *</code> <b>mgl_data_data</b><i> (<code>const HMDT</code> dat)</i></dt>
+<dd><p>Gets the pointer to internal data array.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Informational-functions"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Interpolation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Operators" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Informational-functions-1"></a>
+<h2 class="section">6.9 Informational functions</h2>
+<a name="index-PrintInfo"></a>
+<dl>
+<dt><a name="index-PrintInfo-1"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>PrintInfo</b><i> (<code>char *</code>buf, <code>bool</code> all=<code>false</code>) <code>const</code></i></dt>
+<dd><p>Print information about the data (sizes and momentum) to string <var>buf</var>. Parameter <var>all</var> set to print most of information (if <code>true</code>) or just basic one like dimensions, maximal an minimal values.
+</p></dd></dl>
+<dl>
+<dt><a name="index-PrintInfo-2"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>PrintInfo</b><i> (<code>FILE *</code>fp) <code>const</code></i></dt>
+<dd><p>Print information about the data (sizes and momentum) to FILE (for example, stdout).
+</p></dd></dl>
+
+<a name="index-Maximal"></a>
+<dl>
+<dt><a name="index-Maximal-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Maximal</b><i> () <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmax"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_max</b><i> (<code>const HMDT</code> dat)</i></dt>
+<dd><p>Gets maximal value of the data.
+</p></dd></dl>
+<a name="index-Minimal"></a>
+<dl>
+<dt><a name="index-Minimal-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Minimal</b><i> () <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmin"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_min</b><i> (<code>HMDT</code> dat) <code>const</code></i></dt>
+<dd><p>Gets minimal value of the data.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Maximal-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Maximal</b><i> (<code>int</code> &amp;i, <code>int</code> &amp;j, <code>int</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmax_005fint"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_max_int</b><i> (<code>const HMDT</code> dat, <code>int</code> *i, <code>int</code> *j, <code>int</code> *k)</i></dt>
+<dd><p>Gets maximal value of the data and its position in the array to variables <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Minimal-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Minimal</b><i> (<code>int</code> &amp;i, <code>int</code> &amp;j, <code>int</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmin_005fint"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_min_int</b><i> (<code>const HMDT</code> dat, <code>int</code> *i, <code>int</code> *j, <code>int</code> *k)</i></dt>
+<dd><p>Gets minimal value of the data and its position in the array to variables <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Maximal-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Maximal</b><i> (<code>float</code> &amp;i, <code>float</code> &amp;j, <code>float</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmax_005freal"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_max_real</b><i> (<code>const HMDT</code> dat, <code>float</code> *x, <code>float</code> *y, <code>float</code> *z)</i></dt>
+<dd><p>Gets maximal value of the data and its approximated (interpolated) position to variables <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Minimal-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Minimal</b><i> (<code>float</code> &amp;i, <code>float</code> &amp;j, <code>float</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmin_005freal"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_min_real</b><i> (<code>const HMDT</code> dat, <code>float</code> *x, <code>float</code> *y, <code>float</code> *z)</i></dt>
+<dd><p>Gets minimal value of the data and its approximated (interpolated) position to variables <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+
+<a name="index-Momentum-2"></a>
+<dl>
+<dt><a name="index-Momentum-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Momentum</b><i> (<code>char</code> dir, <code>float</code> &amp;m, <code>float</code> &amp;w) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmomentum_005fmw"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_momentum_mw</b><i> (<code>const HMDT</code> dat, <code>char</code> dir, <code>float</code> *m, <code>float</code> *w)</i></dt>
+<dd><p>Gets zero-momentum (energy, <em>I=\sum a_i</em>) and write first momentum (median, <em>m = \sum \xi_i a_i/I</em>) and second momentum (width, <em>w^2 = \sum (\xi_i-m)^2 a_i/I</em>) to variables. Here <em>\xi</em> is corresponding coordinate if <var>dir</var> is &lsquo;<samp>'x'</samp>&rsquo;, &lsquo;<samp>'y'</samp>&rsquo; or &lsquo;<samp>'z'</samp>&rsquo;. Otherwise median is <em>m = \sum a_i/N</em>, width is <em>w^2 = \sum (a_i-m)^2/N</em>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Momentum-4"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>float</code> <b>Momentum</b><i> (<code>char</code> dir, <code>float</code> &amp;m, <code>float</code> &amp;w, <code>float</code> &amp;s, <code>float</code> &amp;k) <code>const</code></i></dt>
+<dd><p>Gets zero-momentum (energy, <em>I=\sum a_i</em>) and write first momentum (median, <em>m = \sum \xi_i a_i/I</em>), second momentum (width, <em>w^2 = \sum (\xi_i-m)^2 a_i/I</em>), third momentum (skewness, <em>s = \sum (\xi_i-m)^3 a_i/ I w^3</em>) and fourth momentum (kurtosis, <em>k = \sum (\xi_i-m)^4 a_i / 3 I w^4</em>) to variables. Here <em>\xi</em> is corresponding coordinate if <var>dir</var> is &lsquo;<samp>'x'</samp>&rsquo;, &lsquo;<samp>'y'</samp>&rsquo; or &lsquo;<samp>'z'</samp>&rsquo;. Otherwise median is <em>m = \sum a_i/N</em>, width is <em>w^2 = \sum (a_i-m)^2/N</em> and so on.
+</p></dd></dl>
+
+<a name="index-Find"></a>
+<dl>
+<dt><a name="index-Find-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Find</b><i> (<code>const char *</code>cond, <code>int</code> &amp;i, <code>int</code> &amp;j, <code>int</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005ffirst"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_first</b><i> (<code>const HMDT</code> dat, <code>const char *</code>cond, <code>int</code> *i, <code>int</code> *j, <code>int</code> *k)</i></dt>
+<dd><p>Find position (after specified in <var>i</var>, <var>j</var>, <var>k</var>) of first nonzero value of formula <var>cond</var>. Function return the data value at found position.
+</p></dd></dl>
+<a name="index-Last"></a>
+<dl>
+<dt><a name="index-Last-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Last</b><i> (<code>const char *</code>cond, <code>int</code> &amp;i, <code>int</code> &amp;j, <code>int</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005flast"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_last</b><i> (<code>const HMDT</code> dat, <code>const char *</code>cond, <code>int</code> *i, <code>int</code> *j, <code>int</code> *k)</i></dt>
+<dd><p>Find position (before specified in <var>i</var>, <var>j</var>, <var>k</var>) of last nonzero value of formula <var>cond</var>. Function return the data value at found position.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Find-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>int</code> <b>Find</b><i> (<code>const char *</code>cond, <code>char</code> dir, <code>int</code> i=<code>0</code>, <code>int</code> j=<code>0</code>, <code>int</code> k=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005ffind"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_find</b><i> (<code>const HMDT</code> dat, <code>const char *</code>cond, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Return position of first in direction <var>dir</var> nonzero value of formula <var>cond</var>. The search is started from point {i,j,k}.
+</p></dd></dl>
+<a name="index-FindAny"></a>
+<dl>
+<dt><a name="index-FindAny-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>bool</code> <b>FindAny</b><i> (<code>const char *</code>cond) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005ffind_005fany"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_find_any</b><i> (<code>const HMDT</code> dat, <code>const char *</code>cond)</i></dt>
+<dd><p>Determines if any nonzero value of formula in the data array.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Operators"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Informational-functions" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Global-functions" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Operators-1"></a>
+<h2 class="section">6.10 Operators</h2>
+
+<dl>
+<dt><a name="index-operator_003d"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dd><p>Copies data from other variable.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a_003d"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator*=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmul_005fdat"></a><u>C function:</u> <code>void</code> <b>mgl_data_mul_dat</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> d)</i></dt>
+<dd><p>Multiplies the data by the other one for each element.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f_003d"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator/=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiv_005fdat"></a><u>C function:</u> <code>void</code> <b>mgl_data_div_dat</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> d)</i></dt>
+<dd><p>Divides the data by the other one for each element.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002b_003d"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator+=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fadd_005fdat"></a><u>C function:</u> <code>void</code> <b>mgl_data_add_dat</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> d)</i></dt>
+<dd><p>Adds the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d_003d"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator-=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsub_005fdat"></a><u>C function:</u> <code>void</code> <b>mgl_data_sub_dat</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> d)</i></dt>
+<dd><p>Subtracts the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a_003d-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator*=</b><i> (<code>float</code> d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmul_005fnum"></a><u>C function:</u> <code>void</code> <b>mgl_data_mul_num</b><i> (<code>HMDT</code> dat, <code>float</code> d)</i></dt>
+<dd><p>Multiplies each element by the number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f_003d-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator/=</b><i> (<code>float</code> d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiv_005fnum"></a><u>C function:</u> <code>void</code> <b>mgl_data_div_num</b><i> (<code>HMDT</code> dat, <code>float</code> d)</i></dt>
+<dd><p>Divides each element by the number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002b_003d-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator+=</b><i> (<code>float</code> d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fadd_005fnum"></a><u>C function:</u> <code>void</code> <b>mgl_data_add_num</b><i> (<code>HMDT</code> dat, <code>float</code> d)</i></dt>
+<dd><p>Adds the number to each element.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d_003d-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator-=</b><i> (<code>float</code> d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsub_005fnum"></a><u>C function:</u> <code>void</code> <b>mgl_data_sub_num</b><i> (<code>HMDT</code> dat, <code>float</code> d)</i></dt>
+<dd><p>Subtracts the number to each element.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-operator_002b"></a><u>Library Function:</u> mglData <b>operator+</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Adds the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002b-1"></a><u>Library Function:</u> mglData <b>operator+</b><i> (<code>float</code> a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Adds the number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002b-2"></a><u>Library Function:</u> mglData <b>operator+</b><i> (<code>const mglData &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Adds the number.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002d"></a><u>Library Function:</u> mglData <b>operator-</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Subtracts the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d-1"></a><u>Library Function:</u> mglData <b>operator-</b><i> (<code>float</code> a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Subtracts from the number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d-2"></a><u>Library Function:</u> mglData <b>operator-</b><i> (<code>const mglData &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Subtracts the number.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002a"></a><u>Library Function:</u> mglData <b>operator*</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Multiplies by the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-1"></a><u>Library Function:</u> mglData <b>operator*</b><i> (<code>float</code> a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Multiplies by the number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-2"></a><u>Library Function:</u> mglData <b>operator*</b><i> (<code>const mglData &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Multiplies by the number.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002f"></a><u>Library Function:</u> mglData <b>operator/</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Divides by the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f-1"></a><u>Library Function:</u> mglData <b>operator/</b><i> (<code>const mglData &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Divides by the number.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Global-functions"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Operators" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Global-functions-1"></a>
+<h2 class="section">6.11 Global functions</h2>
+
+<p>These functions are not methods of <code>mglData</code> class. However it have additional functionality to handle data. So I put it in this chapter.
+</p>
+<dl>
+<dt><a name="index-mglTransform"></a><u>Global function:</u> <code>mglData</code> <b>mglTransform</b><i> (<code>const mglData &amp;</code>real, <code>const mglData &amp;</code>imag, <code>const char *</code>type)</i></dt>
+<dt><a name="index-mgl_005ftransform"></a><u>C function:</u> <code>HMDT</code> <b>mgl_transform</b><i> (<code>const HMDT</code> real, <code>const HMDT</code> imag, <code>const char *</code>type)</i></dt>
+<dd><p>Do integral transformation of complex data <var>real</var>, <var>imag</var> on specified direction. The order of transformations is specified in string <var>type</var>: first character for x-dimension, second one for y-dimension, third one for z-dimension. The possible character are: &lsquo;<samp>f</samp>&rsquo; is forward Fourier transformation, &lsquo;<samp>i</samp>&rsquo; is inverse Fourier transformation, &lsquo;<samp>s</samp>&rsquo; is Sine transform, &lsquo;<samp>c</samp>&rsquo; is Cosine transform, &lsquo;<samp>h</samp>&rsquo; is Hankel transform, &lsquo;<samp>n</samp>&rsquo; or &lsquo;<samp> </samp>&rsquo; is no transformation.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglTransformA"></a><u>Global function:</u> <code>mglData</code> <b>mglTransformA</b><i> <code>const mglData &amp;</code>ampl, <code>const mglData &amp;</code>phase, <code>const char *</code>type)</i></dt>
+<dt><a name="index-mgl_005ftransform_005fa"></a><u>C function:</u> <code>HMDT</code> <b>mgl_transform_a</b><i> <code>const HMDT</code> ampl, <code>const HMDT</code> phase, <code>const char *</code>type)</i></dt>
+<dd><p>The same as previous but with specified amplitude <var>ampl</var> and phase <var>phase</var> of complex numbers.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglSTFA"></a><u>Global function:</u> <code>mglData</code> <b>mglSTFA</b><i> (<code>const mglData &amp;</code>real, <code>const mglData &amp;</code>imag, <code>int</code> dn, <code>char</code> dir=<code>'x'</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fstfa"></a><u>C function:</u> <code>HMDT</code> <b>mgl_data_stfa</b><i> (<code>const HMDT</code> real, <code>const HMDT</code> imag, <code>int</code> dn,<code>char</code> dir)</i></dt>
+<dd><p>Short time Fourier transformation for real and imaginary parts. Output  is amplitude of partial Fourier of length <var>dn</var>. For example if <var>dir</var>=&lsquo;<samp>x</samp>&rsquo;, result will have size {int(nx/dn), dn, ny} and it will contain <em>res[i,j,k]=|\sum_d^dn exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn</em>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglPDE"></a><u>Global function:</u> <code>mglData</code> <b>mglPDE</b><i> (<code>const char *</code>ham, <code>const mglData &amp;</code>ini_re, <code>const mglData &amp;</code>ini_im, <code>mglPoint</code> Min, <code>mglPoint</code> Max, <code>float</code> dz=<code>0.1</code>, <code>float</code> k0=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005fpde_005fsolve"></a><u>C function:</u> <code>HMDT</code> <b>mgl_pde_solve</b><i> (<code>HMGL</code> gr, <code>const char *</code>ham, <code>const HMDT</code> ini_re, <code>const HMDT</code> ini_im, <code>float</code> dz, <code>float</code> k0)</i></dt>
+<dd><p>Solves equation du/dz = i*k0*<var>ham</var>(p,q,x,y,z,|u|)[u], where p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators. Parameters <var>ini_re</var>, <var>ini_im</var> specify real and imaginary part of initial field distribution. Parameters <var>Min</var>, <var>Max</var> set the bounding box for the solution. Note, that really this ranges are increased by factor 3/2 for purpose of reducing reflection from boundaries. Parameter <var>dz</var> set the step along evolutionary coordinate z. At this moment, simplified form of function <var>ham</var> is supported &ndash; all &ldquo;mixed&rdquo; terms (like &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) are excluded. For example, in 2D case this function is effectively <em>ham = f(p,z) + g(x,z,u)</em>. However commutable combinations (like &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy) are allowed. Here variable &lsquo;<samp>u</samp>&rsquo; is used for field amplitude |u|. This allow one solve nonlinear problems &ndash; for example, for nonlinear Shrodinger equation you may set <code>ham=&quot;p^2 + q^2 - u^2&quot;</code>. You may specify imaginary part for wave absorption, like <code>ham = &quot;p^2 + i*x*(x&gt;0)&quot;</code>, but only if dependence on variable &lsquo;<samp>i</samp>&rsquo; is linear (i.e. <em>ham = hre+i*him</em>). See section <a href="mathgl_en_9.html#PDE-sample">PDE sample</a>, for sample code and picture.  See section <a href="mathgl_en_9.html#PDE-sample">PDE sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglRay"></a><u>Global function:</u> <code>mglData</code> <b>mglRay</b><i> (<code>const char *</code>ham, <code>mglPoint</code> r0, <code>mglPoint</code> p0, <code>float</code> dt=<code>0.1</code>, <code>float</code> tmax=<code>10</code>)</i></dt>
+<dt><a name="index-mgl_005fray_005ftrace"></a><u>C function:</u> <code>HMDT</code> <b>mgl_ray_trace</b><i> (<code>const char *</code>ham, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> px, <code>float</code> py, <code>float</code> pz, <code>float</code> dt, <code>float</code> tmax)</i></dt>
+<dd><p>Solves GO ray equation like dr/dt = d <var>ham</var>/dp, dp/dt = -d <var>ham</var>/dr. This is Hamiltonian equations for particle trajectory in 3D case. Here <var>ham</var> is Hamiltonian which may depend on coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, momentums &lsquo;<samp>p</samp>&rsquo;=px, &lsquo;<samp>q</samp>&rsquo;=py, &lsquo;<samp>v</samp>&rsquo;=pz and time &lsquo;<samp>t</samp>&rsquo;: <em>ham = H(x,y,z,p,q,v,t)</em>. The starting point (at <code>t=0</code>) is defined by variables <var>r0</var>, <var>p0</var>. Parameters <var>dt</var> and <var>tmax</var> specify the integration step and maximal time for ray tracing. Result is array of {x,y,z,p,q,v,t} with dimensions {7 * int(<var>tmax</var>/<var>dt</var>+1) }. See section <a href="mathgl_en_9.html#Beam-tracing-sample">Beam tracing sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglQO2d"></a><u>Global function:</u> <code>mglData</code> <b>mglQO2d</b><i> (<code>const char *</code>ham, <code>const mglData &amp;</code>ini_re, <code>const mglData &amp;</code>ini_im, <code>const mglData &amp;</code>ray, <code>float</code> r=<code>1</code>, <code>float</code> k0=<code>100</code>, <code>mglData *</code>xx=<code>0</code>, <code>mglData *</code>yy=<code>0</code>, <code>bool</code> UseR=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fqo2d_005fsolve"></a><u>C function:</u> <code>HMDT</code> <b>mgl_qo2d_solve</b><i> (<code>const char *</code>ham, <code>const HMDT</code> ini_re, <code>const HMDT</code> ini_im, <code>const HMDT</code> ray, <code>float</code> r, <code>float</code> k0, <code>HMDT</code> xx, <code>HMDT</code> yy)</i></dt>
+<dd><p>Solves equation du/dt = i*k0*<var>ham</var>(p,q,x,y,|u|)[u], where p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators (see <code>mglPDE()</code> for details). Parameters <var>ini_re</var>, <var>ini_im</var> specify real and imaginary part of initial field distribution. Parameters <var>ray</var> set the reference ray, i.e. the ray around which the accompanied coordinate system will be maked. You may use, for example, the array created by <code>mglRay()</code> function. Note, that the reference ray <strong>must be</strong> smooth enough to make accompanied coodrinates unambiguity. Otherwise errors in the solution may appear. If <var>xx</var> and <var>yy</var> are non-zero then Cartesian coordinates for each point will be written into them. See also <code>mglPDE()</code>. See section <a href="mathgl_en_9.html#Beam-tracing-sample">Beam tracing sample</a>, for sample code and picture. 
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglJacobian"></a><u>Global function:</u> <code>mglData</code> <b>mglJacobian</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y)</i></dt>
+<dt><a name="index-mglJacobian-1"></a><u>Global function:</u> <code>mglData</code> <b>mglJacobian</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z)</i></dt>
+<dt><a name="index-mgl_005fjacobian_005f2d"></a><u>C function:</u> <code>HMDT</code> <b>mgl_jacobian_2d</b><i> (<code>const HMDT</code> x, <code>const HMDT</code> y)</i></dt>
+<dt><a name="index-mgl_005fjacobian_005f3d"></a><u>C function:</u> <code>HMDT</code> <b>mgl_jacobian_3d</b><i> (<code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z)</i></dt>
+<dd><p>Computates the Jacobian for transformation {i,j,k} to {<var>x</var>,<var>y</var>,<var>z</var>} where initial coordinates  {i,j,k} are data indexes normalized in range [0,1]. The Jacobian is determined by formula det||<em>dr_\alpha/d\xi_\beta</em>|| where <em>r</em>={<var>x</var>,<var>y</var>,<var>z</var>} and <em>\xi</em>={i,j,k}. All dimensions must be the same for all data arrays. Data must be 3D if all 3 arrays {<var>x</var>,<var>y</var>,<var>z</var>} are specified or 2D if only 2 arrays {<var>x</var>,<var>y</var>} are specified.
+</p></dd></dl>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_en.html/mathgl_en_7.html b/texinfo/mathgl_en.html/mathgl_en_7.html
new file mode 100644
index 0000000..e0276d6
--- /dev/null
+++ b/texinfo/mathgl_en.html/mathgl_en_7.html
@@ -0,0 +1,797 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: 7. Other classes</title>
+
+<meta name="description" content="MathGL 1.11: 7. Other classes">
+<meta name="keywords" content="MathGL 1.11: 7. Other classes">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Other-classes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_6.html#Global-functions" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglParse-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_6.html#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+
+<a name="Other-classes-1"></a>
+<h1 class="chapter">7. Other classes</h1>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#mglParse-class">7.1 mglParse class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglFormula-class">7.2 mglFormula class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglFont-class">7.3 mglFont class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglColor-class">7.4 mglColor class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglPoint-class">7.5 mglPoint class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglVar-class">7.6 mglVar class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglCommand-class">7.7 mglCommand class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglArg-class">7.8 mglArg class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="mglParse-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-classes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglFormula-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglParse-class-1"></a>
+<h2 class="section">7.1 mglParse class</h2>
+<a name="index-mglParse"></a>
+
+<p>Class for parsing and executing MGL script. This class is defined in <code>#include &lt;mgl/mgl_parse.h&gt;</code>.
+</p>
+<p>Class mglParse is the interpreter for MGL scripts (see section <a href="mathgl_en_8.html#MGL-interface">MGL language</a>). The main function of mglParse class is <code>Parse()</code>. Exactly this function parses and executes the script string-by-string. Also there are two subservient functions for the finding and creation of a variable. These functions can be useful for displaying values of variables (arrays) in some external program (in window, for example). The variable <var>DataList</var> contains full list of variables in script. Flag <var>AllowSetSize</var> allows one to prevent changing the size of the  picture inside the script (forbids the MGL command <code>setsize</code>). 
+</p>
+<p>Note an important feature &ndash; if user defines function <var>func</var> in variable then it will be called before the destroying of this variable (see section <a href="#mglVar-class">mglVar class</a>).
+</p>
+<dl>
+<dt><a name="index-mglParse-1"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code></code> <b>mglParse</b><i> (<code>bool</code> setsize=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fcreate_005fparser"></a><u>C function:</u> <code>HMPR</code> <b>mgl_create_parser</b><i> ()</i></dt>
+<dd><p>Constructor initializes all values with zero and set <var>AllowSetSize</var> value.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-_007emglParse"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code></code> <b>~mglParse</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fdelete_005fparser"></a><u>C function:</u> <code>void</code> <b>mgl_delete_parser</b><i> (<code>HMPR</code> p)</i></dt>
+<dd><p>Destructor delete parser
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Parse"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>int</code> <b>Parse</b><i> (<code>mglGraph *</code>gr, <code>const char *</code>str, <code>long</code> pos=<code>0</code>)</i></dt>
+<dt><a name="index-Parse-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>int</code> <b>Parse</b><i> (<code>mglGraph *</code>gr, <code>const wchar_t *</code>str, <code>long</code> pos=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fparse"></a><u>C function:</u> <code>int</code> <b>mgl_parse</b><i> (<code>HMGL</code> gr, <code>HMPR</code> p, <code>const char *</code>str, <code>int</code> pos)</i></dt>
+<dt><a name="index-mgl_005fparsew"></a><u>C function:</u> <code>int</code> <b>mgl_parsew</b><i> (<code>HMGL</code> gr, <code>HMPR</code> p, <code>const wchar_t *</code>str, <code>int</code> pos)</i></dt>
+<dd><p>Main function in the class. It parses the string <var>str</var> and executes it by  using <var>gr</var> as a graphics plotter. Returns the value depending on an error presence in the string <var>str</var>: 0 &ndash; no error, 1 &ndash; wrong command argument(s), 2 &ndash; unknown command, 3 &ndash; string is too long. Optional argument <var>pos</var> allows to save the string position in the document (or file) for using <code>for|next</code> command.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Export-2"></a><u>Method on <code>mglParse</code> (C++):</u> <code>int</code> <b>Export</b><i> (<code>wchar_t</code> cpp_out<code>[1024]</code>, <code>mglGraph *</code>gr, <code>const wchar_t *</code>str)</i></dt>
+<dd><p>Function parses the string <var>str</var>, executes it by  using <var>gr</var> as a graphics plotter and exports it to C++ code. Returns the value depending on an error presence in the string <var>str</var>: 0 &ndash; no error, 1 &ndash; wrong command argument(s), 2 &ndash; unknown command, 3 &ndash; string is too long. Output C++ text will be placed in <var>out</var> variable. If string <var>str</var> have options (defined after &rsquo;;&rsquo; symbol) then the corresponding C++ texts are placed in variables <var>op1</var>, <var>op2</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Execute"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>Execute</b><i> (<code>mglGraph *</code>gr, <code>FILE *</code>fp, <code>bool</code> print=<code>false</code>)</i></dt>
+<dd><p>Function parse and execute line-by-line MGL script in file <var>fp</var>. If <var>print</var>=<code>true</code> then all warnings and information will be printed in stdout. Also this function support the <code>for|next</code> MGL commands.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Execute-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>Execute</b><i> (<code>mglGraph *</code>gr, <code>int</code> num, <code>const wchar_t **</code>text, <code>void (*</code> error <code>)(int line, int kind)=NULL</code>)</i></dt>
+<dd><p>Function parse and execute line-by-line MGL script in array <var>text</var>. If <var>error</var> is not <code>NULL</code> then this function will be called for all warnings, information and other messages. Also this function support the <code>for|next</code> MGL commands.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Execute-2"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>void</code> <b>Execute</b><i> (<code>mglGraph *</code>gr, <code>const char *</code>text, <code>void (*</code> error <code>)(int line, int kind)=NULL</code>)</i></dt>
+<dt><a name="index-Execute-3"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>Execute</b><i> (<code>mglGraph *</code>gr, <code>const wchar_t *</code>text, <code>void (*</code> error <code>)(int line, int kind)=NULL</code>)</i></dt>
+<dt><a name="index-mgl_005fparse_005ftext"></a><u>C function:</u> <code>void</code> <b>mgl_parse_text</b><i> (<code>HMGL</code> gr, <code>HMPR</code> p, <code>const char *</code>text)</i></dt>
+<dt><a name="index-mgl_005fparsew_005ftext"></a><u>C function:</u> <code>void</code> <b>mgl_parsew_text</b><i> (<code>HMGL</code> gr, <code>HMPR</code> p, <code>const wchar_t *</code>text)</i></dt>
+<dd><p>Function parse and execute line-by-line MGL script in string <var>text</var>. Lines are separated by &lsquo;<samp>\n</samp>&rsquo; symbol as usual. If <var>error</var> is not <code>NULL</code> then this function will be called for all warnings, information and other messages. Also this function support the <code>for|next</code> MGL commands.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AddParam"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>bool</code> <b>AddParam</b><i> (<code>int</code> n, <code>const char *</code>str, <code>bool</code> isstr=<code>true</code>)</i></dt>
+<dt><a name="index-AddParam-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>bool</code> <b>AddParam</b><i> (<code>int</code> n, <code>const wchar_t *</code>str, <code>bool</code> isstr=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fadd_005fparam"></a><u>C function:</u> <code>void</code> <b>mgl_add_param</b><i> (<code>HMPR</code> p, <code>int</code> id, <code>const char *</code>val)</i></dt>
+<dt><a name="index-mgl_005fadd_005fparamw"></a><u>C function:</u> <code>void</code> <b>mgl_add_paramw</b><i> (<code>HMPR</code> p, <code>int</code> id, <code>const wchar_t *</code>val)</i></dt>
+<dd><p>Function set the value of <var>n</var>-th parameter as string <var>str</var> (<var>n</var>=0, 1 ... 9). It return <code>true</code> for success.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FindVar"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>mglVar *</code> <b>FindVar</b><i> (<code>const char *</code>name)</i></dt>
+<dt><a name="index-FindVar-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>mglVar *</code> <b>FindVar</b><i> (<code>const wchar_t *</code>name)</i></dt>
+<dt><a name="index-mgl_005ffind_005fvar"></a><u>C function:</u> <code>const HMDT</code> <b>mgl_find_var</b><i>  (<code>HMPR</code> p, <code>const char *</code>name)</i></dt>
+<dd><p>Function returns the pointer to variable with name <var>name</var> or zero if variable is absent. Use this function to put external data array to the script or get the data from the script.
+</p></dd></dl>
+<dl>
+<dt><a name="index-AddVar"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>mglVar *</code> <b>AddVar</b><i> (<code>const char *</code>name)</i></dt>
+<dt><a name="index-AddVar-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>mglVar *</code> <b>AddVar</b><i> (<code>const wchar_t *</code>name)</i></dt>
+<dt><a name="index-mgl_005fadd_005fvar"></a><u>C function:</u> <code>const HMDT</code> <b>mgl_add_var</b><i> (<code>HMPR</code> p, <code>const char *</code>name)</i></dt>
+<dd><p>Function returns the pointer to variable with name <var>name</var>. If variable is absent then new variable is created with name <var>name</var>. Use this function to put external data array to the script or get the data from the script.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DeleteVar"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>DeleteVar</b><i> (<code>mglVar *</code>v)</i></dt>
+<dt><a name="index-DeleteVar-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>DeleteVar</b><i> (<code>const char *</code>name)</i></dt>
+<dt><a name="index-DeleteVar-2"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>DeleteVar</b><i> (<code>const wchar_t *</code>name)</i></dt>
+<dd><p>Function delete the variable specified by its name or by its pointer.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-RestoreOnce"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>inline void</code> <b>RestoreOnce</b><i> ()</i></dt>
+<dt><a name="index-mgl_005frestore_005fonce"></a><u>C function:</u> <code>void</code> <b>mgl_restore_once</b><i> (<code>HMPR</code> p)</i></dt>
+<dd><p>Restore Once flag.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AllowSetSize"></a><u>Method on <code>mglParse</code> (Python):</u> <code>void</code> <b>AllowSetSize</b><i> (<code>bool</code> a)</i></dt>
+<dt><a name="index-mgl_005fparser_005fallow_005fsetsize"></a><u>C function:</u> <code>void</code> <b>mgl_parser_allow_setsize</b><i> (<code>HMPR</code> p, <code>int</code> a)</i></dt>
+<dd><p>Allow to parse &rsquo;setsize&rsquo; command or not.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AddCommand"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>AddCommand</b><i> (<code>mglCommand *</code>cmd, <code>int</code> num=<code>0</code>)</i></dt>
+<dd><p>Add <var>num</var> commands <var>cmd</var> to the defined MGL commands list. Parameter <var>cmd</var> is array of <code>mglCommand</code> structures. If parameter <var>num</var>=0 then it will be determined automatically. At this, array <var>cmd</var> <strong>must have</strong> last element with <code>name=L&quot;&quot;</code>
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DataList-of-mglParse"></a><u>Option of mglParse:</u> <code>mglVar *</code> <b>DataList</b></dt>
+<dd><p>List of variables defined in script.
+</p></dd></dl>
+<dl>
+<dt><a name="index-AllowSetSize-of-mglParse"></a><u>Option of mglParse:</u> <code>bool</code> <b>AllowSetSize</b></dt>
+<dd><p>Flag which allows/forbids the command <code>setsize</code> in scripts.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Stop-of-mglParse"></a><u>Option of mglParse:</u> <code>bool</code> <b>Stop</b></dt>
+<dd><p>Flag which interrupt script execution.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Cmd-of-mglParse"></a><u>Option of mglParse:</u> <code>mglCommand *</code> <b>Cmd</b></dt>
+<dd><p>Table (array) of recognizable MGL commands (can be changed by user). Items in the table <strong>MUST be sorted</strong> by <var>name</var> field !!! Last items must have empty name (i.e. <code>L&quot;&quot;</code>).
+</p></dd></dl>
+<dl>
+<dt><a name="index-op1-of-mglParse"></a><u>Option of mglParse:</u> <code>wchar_t *</code> <b>op1</b></dt>
+<dd><p>These strings contain command options and should be placed before the command. These variables are used for MGL-&gt;C++ (or other language) conversion.
+</p></dd></dl>
+<dl>
+<dt><a name="index-op2-of-mglParse"></a><u>Option of mglParse:</u> <code>wchar_t *</code> <b>op2</b></dt>
+<dd><p>These strings contain command options and should be placed after the command. These variables are used for MGL-&gt;C++ (or other language) conversion.
+</p></dd></dl>
+
+<hr size="6">
+<a name="mglFormula-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglParse-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglFont-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglFormula-class-1"></a>
+<h2 class="section">7.2 mglFormula class</h2>
+<a name="index-mglFormula"></a>
+
+<p>Class for evaluating of formula specified by the string. This class is defined in <code>#include &lt;mgl/mgl_eval.h&gt;</code>.
+</p>
+<p>It is the fast variant of formula evaluation. At creation it will be recognized and compiled to tree-like internal code. At evaluation stage only fast calculations are performed. There is no difference between lower or upper case in formulas. If argument value lie outside the range of function definition then function returns NaN. See section <a href="mathgl_en_1.html#Textual-formulas">Textual formulas</a>.
+</p>
+<dl>
+<dt><a name="index-mglFormula-on-mglFormula"></a><u>Method on mglFormula:</u> <code></code> <b>mglFormula</b><i> (<code>const char *</code>str)</i></dt>
+<dd><p>Parses the formula <var>str</var> and creates formula-tree. Constructor recursively parses the formula and creates a tree-like structure containing functions and operators for fast further evaluating by <code>Calc()</code> or <code>CalcD()</code> functions.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Calc-on-mglFormula"></a><u>Method on mglFormula:</u> <code>float</code> <b>Calc</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>, <code>float</code> u=<code>0</code>)</i></dt>
+<dd><p>Evaluates the formula for <code>'x','r'</code>=<var>x</var>, <code>'y','n'</code>=<var>y</var>, <code>'z','t'</code>=<var>z</var>, <code>'a','u'</code>=<var>u</var>. Error code (if one) can be obtained from function <code>GetError()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Calc-on-mglFormula-1"></a><u>Method on mglFormula:</u> <code>float</code> <b>Calc</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> u, <code>float</code> v, <code>float</code> w)</i></dt>
+<dd><p>Evaluates the formula for <code>'x'</code>=<var>x</var>, <code>'y'</code>=<var>y</var>, <code>'z'</code>=<var>z</var>, <code>'u'</code>=<var>u</var>, <code>'v'</code>=<var>v</var>, <code>'w'</code>=<var>w</var>. Error code (if one) can be obtained from function <code>GetError()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Calc-on-mglFormula-2"></a><u>Method on mglFormula:</u> <code>float</code> <b>Calc</b><i> (<code>float</code> var<code>['z'-'a'+1]</code>)</i></dt>
+<dd><p>Evaluates the formula for variables in array <var>var</var>[&rsquo;z&rsquo;-&rsquo;a&rsquo;]. Error code (if one) can be obtained from function <code>GetError()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-CalcD-on-mglFormula"></a><u>Method on mglFormula:</u> <code>float</code> <b>CalcD</b><i> (<code>float</code> var<code>['z'-'a'+1]</code>, <code>char</code> diff)</i></dt>
+<dd><p>Evaluates the formula derivation respect to <var>diff</var> for variables in array <var>var</var>[&rsquo;z&rsquo;-&rsquo;a&rsquo;]. Error code (if one) can be obtained from function <code>GetError()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-GetError-on-mglFormula"></a><u>Method on mglFormula:</u> <code>int</code> <b>GetError</b><i> ()</i></dt>
+<dd><p>Returns error code: <code>0</code> means no error; <code>ERR_LOG</code> means error in logarithm or power functions; <code>ERR_ARC</code> means error in inverse functions (like asin); <code>ERR_SQRT</code> means error in sqrt function.
+</p></dd></dl>
+
+<hr size="6">
+<a name="mglFont-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglFormula-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Format-of-font-files" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglFont-class-1"></a>
+<h2 class="section">7.3 mglFont class</h2>
+<a name="index-mglFont"></a>
+
+<p>Class for working with font: load, get metrics, parse and draw strings. This class is defined in <code>#include &lt;mgl/mgl_font.h&gt;</code>.
+</p>
+<p>The class is based on loading and drawing of vector Hershey font. There are two styles of specifying of the font type and aligning: by integer parameters or by string.
+</p>
+<p>The string can be any combination of characters: &lsquo;<samp>rbiLCRwou</samp>&rsquo;. The font types are: &lsquo;<samp>r</samp>&rsquo; &ndash; roman font, &lsquo;<samp>i</samp>&rsquo; &ndash; italic style, &lsquo;<samp>b</samp>&rsquo; &ndash; bold style. By default roman font (that is &lsquo;<samp></samp>&rsquo; or &lsquo;<samp>r</samp>&rsquo;) is used. The align types are: &lsquo;<samp>L</samp>&rsquo; &ndash; align left (default), &lsquo;<samp>C</samp>&rsquo; &ndash; align center, &lsquo;<samp>R</samp>&rsquo; &ndash; align right. Additional font effects are: &lsquo;<samp>w</samp>&rsquo; &ndash; wire, &lsquo;<samp>o</samp>&rsquo; &ndash; over-lined, &lsquo;<samp>u</samp>&rsquo; &ndash; underlined. Parsing of the string to special (TeX-like) commands will be done if variable <var>parse</var> is true (it&rsquo;s default). See also see section <a href="mathgl_en_1.html#Font-styles">Font styles</a>.
+</p>
+<p>The over way of font and alignment setting is the using of the integer constant. Integer font Id can be one of predefined constants: <code>MGL_FONT_ITAL, MGL_FONT_BOLD, MGL_FONT_BOLD_ITAL = MGL_FONT_ITAL+MGL_FONT_BOLD</code>. Default font is <code>MGL_FONT_ROMAN</code>. Also there are flags <code>MGL_FONT_ULINE, MGL_FONT_OLINE, MGL_FONT_WIRE</code> for additional font effects. Align parameter controls the text alignment: 0 &ndash; align left, 1 &ndash; align center, 2 &ndash; align right.
+</p>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Format-of-font-files">7.3.1 Format of font files</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+
+<dl>
+<dt><a name="index-mglFont-on-mglFont"></a><u>Method on mglFont:</u> <code></code> <b>mglFont</b><i> (<code>const char *</code>name=<code>MGL_DEF_FONT_NAME</code>, <code>const char *</code>path=<code>NULL</code>)</i></dt>
+<dd><p>Initialize the font and load data from file <var>name</var> (default name is &quot;STIX&quot; for Linux and MacOS) or if  <var>name</var>=<code>NULL</code> limited data from memory (default for Windows).
+</p></dd></dl>
+<dl>
+<dt><a name="index-Load-on-mglFont"></a><u>Method on mglFont:</u> <code>bool</code> <b>Load</b><i> (<code>const char *</code> base, <code>const char *</code>path=<code>NULL</code>)</i></dt>
+<dd><p>Load font from file <var>path</var>/<var>base</var> into the memory. The font may contain 4 files: <var>base</var>.vfm, <var>base</var>_b.vfm, <var>base</var>_i.vfm, <var>base</var>_bi.vfm. Appendix contain detailed description of font format.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Restore-on-mglFont"></a><u>Method on mglFont:</u> <code>void</code> <b>Restore</b><i> ()</i></dt>
+<dd><p>Restore default font.
+</p></dd></dl>
+<dl>
+<dt><a name="index-_0028-on-mglFont"></a><u>Method on mglFont:</u> <code>void</code> <b>(</b><i><code>mglFont *</code> fnt)</i></dt>
+<dd><p>Copy data from other font instance.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Clear-on-mglFont"></a><u>Method on mglFont:</u> <code>void</code> <b>Clear</b><i> ()</i></dt>
+<dd><p>Clear memory by deleting the loaded font.
+</p></dd></dl>
+<dl>
+<dt><a name="index-GetNumGlyph-on-mglFont"></a><u>Method on mglFont:</u> <code>inline unsigned</code> <b>GetNumGlyph</b><i> ()</i></dt>
+<dd><p>Return the number of glyphs in the font.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Ready-on-mglFont"></a><u>Method on mglFont:</u> <code>inline bool</code> <b>Ready</b><i> ()</i></dt>
+<dd><p>Return true if font is loaded and ready for use.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-Height-on-mglFont"></a><u>Method on mglFont:</u> <code>float</code> <b>Height</b><i> (<code>int</code> font)</i></dt>
+<dd><p>Gets height of text for font specified by integer constant.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Puts-on-mglFont"></a><u>Method on mglFont:</u> <code>float</code> <b>Puts</b><i> (<code>const char *</code>str, <code>int</code> font=<code>0</code>, <code>int</code> align=<code>0</code>)</i></dt>
+<dd><p>Prints 8-bit text string for font specified by integer constant.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Width-on-mglFont"></a><u>Method on mglFont:</u> <code>float</code> <b>Width</b><i> (<code>const char *</code>str, <code>int</code> font=<code>0</code>)</i></dt>
+<dd><p>Gets width of 8-bit text string for font specified by integer constant.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Puts-on-mglFont-1"></a><u>Method on mglFont:</u> <code>float</code> <b>Puts</b><i> (<code>const wchar_t *</code>str, <code>int</code> font=<code>0</code>, <code>int</code> align=<code>0</code>)</i></dt>
+<dd><p>Prints Unicode text string for font specified by integer constant.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Width-on-mglFont-1"></a><u>Method on mglFont:</u> <code>float</code> <b>Width</b><i> (<code>const wchar_t *</code>str, <code>int</code> font=<code>0</code>)</i></dt>
+<dd><p>Gets width of Unicode text string for font specified by integer constant.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-Height-on-mglFont-1"></a><u>Method on mglFont:</u> <code>float</code> <b>Height</b><i> (<code>const char *</code>how)</i></dt>
+<dd><p>Gets height of text for font specified by string.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Puts-on-mglFont-2"></a><u>Method on mglFont:</u> <code>float</code> <b>Puts</b><i> (<code>const char *</code>str, <code>const char *</code>how)</i></dt>
+<dd><p>Prints 8-bit text string for font specified by string.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Width-on-mglFont-2"></a><u>Method on mglFont:</u> <code>float</code> <b>Width</b><i> (<code>const char *</code>str, <code>const char *</code>how)</i></dt>
+<dd><p>Gets width of 8-bit text string for font specified by string.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Puts-on-mglFont-3"></a><u>Method on mglFont:</u> <code>float</code> <b>Puts</b><i> (<code>const wchar_t *</code>str, <code>const char *</code>how)</i></dt>
+<dd><p>Prints Unicode text string for font specified by string.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Width-on-mglFont-3"></a><u>Method on mglFont:</u> <code>float</code> <b>Width</b><i> (<code>const wchar_t *</code>str, <code>const char *</code>how)</i></dt>
+<dd><p>Gets width of Unicode text string for font specified by string.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-gr-of-mglFont"></a><u>Parameter of mglFont:</u> <code>mglGraph *</code> <b>gr</b></dt>
+<dd><p>Instance of mglGraph class which is used for character drawing.
+</p></dd></dl>
+<dl>
+<dt><a name="index-parse-of-mglFont"></a><u>Parameter of mglFont:</u> <code>bool</code> <b>parse</b></dt>
+<dd><p>Flag for switching on/off the parsing of TeX commands. Default value is <code>true</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Format-of-font-files"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglFont-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglColor-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglFont-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Format-of-font-files-1"></a>
+<h3 class="subsection">7.3.1 Format of font files</h3>
+
+<p>Starting from v.1.6 the MathGL library uses new font files. The font is defined in 4 files with suffixes &lsquo;<samp>*.vfm</samp>&rsquo;, &lsquo;<samp>*_b.vfm</samp>&rsquo;, &lsquo;<samp>*_i.vfm</samp>&rsquo;, &lsquo;<samp>*_bi.vfm</samp>&rsquo;. These files are text files containing the data for roman font, bold font, italic font and bold italic font. The files (or some symbols in the files) for bold, italic or bold italic fonts can be absent. In this case the roman glyph will be used for them. By analogy, if the bold italic font is absent but the bold font is present then bold glyph will be used for bold italic. You may create these font files by yourself from *.ttf, *.otf files with the help of program <code>font_tools</code>. This program can be found at MathGL home site.
+</p>
+<p>The format of font files (*.vfm &ndash; vector font for MathGL) is the following.
+</p><ol>
+<li>
+First string contains human readable comment and is always ignored.
+</li><li>
+Second string contains 3 numbers, delimited by space or tabulation. The order of numbers is the following: <var>numg</var> &ndash; the number of glyphs in the file (integer), <var>fact</var> &ndash; the factor for glyph sizing (float), <var>size</var> &ndash; the size of buffer for glyph description (integer).
+</li><li>
+After it <var>numg</var>-th strings with glyphs description are placed. Each string contains 6 positive numbers, delimited by space of tabulation. The order of numbers is the following: Unicode glyph ID, glyph width, number of lines in glyph, position of lines coordinates in the buffer (length is 2*number of lines), number of triangles in glyph, position of triangles coordinates in the buffer (length is 6*number of triangles).
+</li><li>
+The end of file contains the buffer with point coordinates at lines or triangles vertexes. The size of buffer (the number of integer) is <var>size</var>.
+</li></ol>
+
+<p>Each font file can be compressed by gzip.
+</p>
+<p>Note: the closing contour line  is done automatically (so the last segment may be absent). For starting new contour use a point with coordinates <code>{0x3fff, 0x3fff}</code>.
+</p>
+
+<hr size="6">
+<a name="mglColor-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Format-of-font-files" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglPoint-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglColor-class-1"></a>
+<h2 class="section">7.4 mglColor class</h2>
+<a name="index-mglColor"></a>
+
+<p>Structure for working with colors. This structure is defined in <code>#include &lt;mgl/mgl.h&gt;</code>.
+</p>
+<p>There are two ways to set the color in MathGL. First one is using of float values of red, green and blue channels for precise color definition. The second way is the using of character id. There are a set of characters specifying frequently used colors. Normally capital letter gives more dark color than lowercase one. See section <a href="mathgl_en_1.html#Line-styles">Line styles</a>.
+</p>
+<dl>
+<dt><a name="index-r_002c-g_002c-b-of-mglVar"></a><u>Parameter of mglVar:</u> <code>float</code> <b>r, g, b</b></dt>
+<dd><p>Reg, green and blue component of color.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglColor-on-mglColor"></a><u>Method on mglColor:</u> <code></code> <b>mglColor</b><i> (<code>float</code> R, <code>float</code> G, <code>float</code> B)</i></dt>
+<dd><p>Constructor sets the color by float values of Red, Green and Blue channels.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mglColor-on-mglColor-1"></a><u>Method on mglColor:</u> <code></code> <b>mglColor</b><i> (<code>char</code> c=<code>'k'</code>)</i></dt>
+<dd><p>Constructor sets the color from character id. The black color is used by default.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-on-mglColor"></a><u>Method on mglColor:</u> <code>void</code> <b>Set</b><i> (<code>float</code> R, <code>float</code> G, <code>float</code> B)</i></dt>
+<dd><p>Sets color from values of Red, Green and Blue channels. This values should be in interval [0,1].
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-on-mglColor-1"></a><u>Method on mglColor:</u> <code>void</code> <b>Set</b><i> (<code>mglColor</code> c, <code>float</code> bright=<code>1</code>)</i></dt>
+<dd><p>Sets color as &ldquo;lighted&rdquo; version of color <var>c</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-on-mglColor-2"></a><u>Method on mglColor:</u> <code>void</code> <b>Set</b><i> (<code>char</code> p)</i></dt>
+<dd><p>Sets color from symbolic id.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Valid-on-mglColor"></a><u>Method on mglColor:</u> <code>bool</code> <b>Valid</b><i> ()</i></dt>
+<dd><p>Checks correctness of the color.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Norm-on-mglColor"></a><u>Method on mglColor:</u> <code>float</code> <b>Norm</b><i> ()</i></dt>
+<dd><p>Gets maximal of spectral component.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_003d_003d-on-mglColor"></a><u>Method on mglColor:</u> <code>bool</code> <b>operator==</b><i> (<code>const mglColor &amp;</code>c)</i></dt>
+<dd><p>Compare with another color
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002b-3"></a><u>Library Function:</u> inline mglColor <b>operator+</b><i> (<code>const mglColor &amp;</code>a, <code>const mglColor &amp;</code>b)</i></dt>
+<dd><p>Adds colors by its RGB values.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d-3"></a><u>Library Function:</u> inline mglColor <b>operator-</b><i> (<code>const mglColor &amp;</code>a, <code>const mglColor &amp;</code>b)</i></dt>
+<dd><p>Subtracts colors by its RGB values.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-3"></a><u>Library Function:</u> inline mglColor <b>operator*</b><i> (<code>const mglColor &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Multiplies color by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-4"></a><u>Library Function:</u> inline mglColor <b>operator*</b><i> (<code>float</code> a, <code>const mglColor &amp;</code>b)</i></dt>
+<dd><p>Multiplies color by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f-2"></a><u>Library Function:</u> inline mglColor <b>operator/</b><i> (<code>const mglColor &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Divide color by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_0021"></a><u>Library Function:</u> inline mglColor <b>operator!</b><i> (<code>const mglColor &amp;</code>a)</i></dt>
+<dd><p>Return inverted color.
+</p></dd></dl>
+
+<hr size="6">
+<a name="mglPoint-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglColor-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglVar-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglPoint-class-1"></a>
+<h2 class="section">7.5 mglPoint class</h2>
+<a name="index-mglPoint"></a>
+
+<p>Structure describes point in space. This structure is defined in <code>#include &lt;mgl/mgl.h&gt;</code>
+</p>
+<dl>
+<dt><a name="index-x_002c-y_002c-z-of-mglVar"></a><u>Parameter of mglVar:</u> <code>float</code> <b>x, y, z</b></dt>
+<dd><p>Point coordinates. By default all values are zero.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002b-4"></a><u>Library Function:</u> inline mglPoint <b>operator+</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Point of summation (summation of vectors).
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d-4"></a><u>Library Function:</u> inline mglPoint <b>operator-</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Point of difference (difference of vectors).
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-5"></a><u>Library Function:</u> inline mglPoint <b>operator*</b><i> (<code>float</code> a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Multiplies (scale) points by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-6"></a><u>Library Function:</u> inline mglPoint <b>operator*</b><i> (<code>const mglPoint &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Multiplies (scale) points by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f-3"></a><u>Library Function:</u> inline mglPoint <b>operator/</b><i> (<code>const mglPoint &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Multiplies (scale) points by number 1/b.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d-5"></a><u>Library Function:</u> inline float <b>operator-</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Scalar product of vectors.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_005e"></a><u>Library Function:</u> inline mglPoint <b>operator^</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Cross-product of vectors.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_0026"></a><u>Library Function:</u> inline mglPoint <b>operator&amp;</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>The part of <var>a</var> which is perpendicular to vector <var>b</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_007c"></a><u>Library Function:</u> inline mglPoint <b>operator|</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>The part of <var>a</var> which is parallel to vector <var>b</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_0021-1"></a><u>Library Function:</u> inline mglPoint <b>operator!</b><i> (<code>const mglPoint &amp;</code>a)</i></dt>
+<dd><p>Return vector perpendicular to vector <var>a</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Norm-2"></a><u>Library Function:</u> inline bool <b>Norm</b><i> (<code>const mglPoint &amp;</code>a)</i></dt>
+<dd><p>Return the norm |<var>a</var>|^2 of vector <var>a</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_003d_003d"></a><u>Library Function:</u> inline bool <b>operator==</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Return true if points are the same.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_0021_003d"></a><u>Library Function:</u> inline bool <b>operator!=</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Return true if points are different.
+</p></dd></dl>
+
+<hr size="6">
+<a name="mglVar-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglPoint-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglCommand-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglVar-class-1"></a>
+<h2 class="section">7.6 mglVar class</h2>
+<a name="index-mglVar"></a>
+
+<p>Structure describes variable of type <code>mglData</code> and its name in MGL script. This structure is used by <code>mglParse</code> and is defined in <code>#include &lt;mgl/mgl_parse.h&gt;</code>.
+</p>
+<dl>
+<dt><a name="index-d-of-mglVar"></a><u>Parameter of mglVar:</u> <code>mglData</code> <b>d</b></dt>
+<dd><p>Data itself
+</p></dd></dl>
+<dl>
+<dt><a name="index-s-of-mglVar"></a><u>Parameter of mglVar:</u> <code>wchar_t</code> <b>s</b><i>[256]</i></dt>
+<dd><p>Data name
+</p></dd></dl>
+<dl>
+<dt><a name="index-o-of-mglVar"></a><u>Parameter of mglVar:</u> <code>void *</code> <b>o</b></dt>
+<dd><p>Pointer to external object for function <var>func</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-next-of-mglVar"></a><u>Parameter of mglVar:</u> <code>mglVar *</code> <b>next</b></dt>
+<dd><p>Pointer to next instance in list
+</p></dd></dl>
+<dl>
+<dt><a name="index-prev-of-mglVar"></a><u>Parameter of mglVar:</u> <code>mglVar *</code> <b>prev</b></dt>
+<dd><p>Pointer to prev instance in list
+</p></dd></dl>
+<dl>
+<dt><a name="index-temp-of-mglVar"></a><u>Parameter of mglVar:</u> <code>bool</code> <b>temp</b></dt>
+<dd><p>Flag for temporar variable. Temporal variables will be destroyed after script execution.
+</p></dd></dl>
+<dl>
+<dt><a name="index-func-of-mglVar"></a><u>Parameter of mglVar:</u> <code>void (*</code> <b>func</b><i> <code>)(void *)</code></i></dt>
+<dd><p>Callback function for destroying non-temporal variable.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-MoveAfter-on-mglVar"></a><u>Method on mglVar:</u> <code>void</code> <b>MoveAfter</b><i> (<code>mglVar *</code>var)</i></dt>
+<dd><p>Move variable after <var>var</var> and copy <code>func</code> from <code>var</code> (if <code>func</code> is not 0)
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="mglCommand-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglVar-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglArg-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglCommand-class-1"></a>
+<h2 class="section">7.7 mglCommand class</h2>
+<a name="index-mglCommand"></a>
+
+<p>Structure describes MGL command, its name, short description, executable and export functions. The structure is used by <code>mglParse</code> and is defined in <code>#include &lt;mgl/mgl_parse.h&gt;</code>.
+</p>
+<dl>
+<dt><a name="index-name-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>const wchar_t *</code> <b>name</b></dt>
+<dd><p>Name of command.
+</p></dd></dl>
+<dl>
+<dt><a name="index-desc-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>const wchar_t *</code> <b>desc</b></dt>
+<dd><p>Short command description (can be NULL).
+</p></dd></dl>
+<dl>
+<dt><a name="index-form-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>const wchar_t *</code> <b>form</b></dt>
+<dd><p>Format of command arguments (can be NULL).
+</p></dd></dl>
+<dl>
+<dt><a name="index-exec-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>int (*</code> <b>exec</b><i> <code>)(mglGraph *gr, long n, mglArg *a, int k[10])const wchar_t *</code></i></dt>
+<dd><p>Function for executing (plotting) the command using grapher <var>gr</var> and having <var>n</var>-th arguments <var>a</var>. Function must return 0 if all is OK; or 1 if arguments are wrong.
+</p></dd></dl>
+<dl>
+<dt><a name="index-save-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>void (*</code> <b>save</b><i> <code>)(wchar_t out[1024], long n, mglArg *a, int k[10])const wchar_t *</code></i></dt>
+<dd><p>Function for exporting in C++ (can be NULL).
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="mglArg-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglCommand-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglArg-class-1"></a>
+<h2 class="section">7.8 mglArg class</h2>
+<a name="index-mglArg"></a>
+
+<p>Structure describes arguments of functions in the stucture <code>mglCommand</code>. It is defined in <code>#include &lt;mgl/mgl_parse.h&gt;</code>.
+</p>
+<dl>
+<dt><a name="index-type-of-mglArg"></a><u>Parameter of mglArg:</u> <code>int</code> <b>type</b></dt>
+<dd><p>Type of argument: 0-data, 1-string, 2-number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-d-of-mglArg"></a><u>Parameter of mglArg:</u> <code>mglData *</code> <b>d</b></dt>
+<dd><p>Pointer to data (used if type=0).
+</p></dd></dl>
+<dl>
+<dt><a name="index-w-of-mglArg"></a><u>Parameter of mglArg:</u> <code>wchar_t</code> <b>w</b><i>[2048]</i></dt>
+<dd><p>String with parameters (used if type=1 or if type=0 as variable name).
+</p></dd></dl>
+<dl>
+<dt><a name="index-s-of-mglArg"></a><u>Parameter of mglArg:</u> <code>char</code> <b>s</b><i>[2048]</i></dt>
+<dd><p>String with parameters (used if type=1).
+</p></dd></dl>
+<dl>
+<dt><a name="index-v-of-mglArg"></a><u>Parameter of mglArg:</u> <code>float</code> <b>v</b></dt>
+<dd><p>Numerical value (used if type==2)
+</p></dd></dl>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_en.html/mathgl_en_8.html b/texinfo/mathgl_en.html/mathgl_en_8.html
new file mode 100644
index 0000000..cc4f05c
--- /dev/null
+++ b/texinfo/mathgl_en.html/mathgl_en_8.html
@@ -0,0 +1,2921 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: 8. MGL language</title>
+
+<meta name="description" content="MathGL 1.11: 8. MGL language">
+<meta name="keywords" content="MathGL 1.11: 8. MGL language">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="MGL-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_7.html#mglArg-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_7.html#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MGL-language"></a>
+<h1 class="chapter">8. MGL language</h1>
+
+<p>MathGL library supports the simplest scripts for data handling and plotting. These scripts can be used independently (with the help of UDAV, mgl2png, mgl2eps, mgl2svg programs and others, see section <a href="#Utilities">Utilities for parsing MGL</a>) or in the frame of the library using.
+</p>
+<p>MGL script language is rather simple. Each string is a command. First word of string is the name of command. Other words are command arguments. Command may have up to 1000 arguments (at least for now). Words are separated from each other by space or tabulation symbol. The upper or lower case of words is sufficient, i.e. variables <var>a</var> and <var>A</var> are different variables. Symbol &lsquo;<samp>#</samp>&rsquo; starts the comment (all characters after # will be ignored). The exception is situation when &lsquo;<samp>#</samp>&rsquo; is a part of some string. Also options can be specified after symbol &lsquo;<samp>;</samp>&rsquo; (see section <a href="#Command-options-_0028MGL_0029">Command options (MGL)</a>). Symbol &lsquo;<samp>:</samp>&rsquo; starts new command (like new line character) if it is not placed inside a string or inside brackets.
+</p>
+<p>If string contain references to external parameters (substrings &lsquo;<samp>$0</samp>&rsquo;, &lsquo;<samp>$1</samp>&rsquo; ... &lsquo;<samp>$9</samp>&rsquo;) or definitions (substrings &lsquo;<samp>$a</samp>&rsquo;, &lsquo;<samp>$b</samp>&rsquo; ... &lsquo;<samp>$z</samp>&rsquo;) then before execution the values of parameter/definition will be substituted instead of reference. It allows to use the same MGL script for different parameters (filenames, paths, condition and so on).
+</p>
+<p>Argument can be a string, a variable name or a number. 
+</p><ul>
+<li> 
+The string is any symbols between ordinary marks &lsquo;<samp>'</samp>&rsquo;.
+
+</li><li> 
+Usually variable have a name which is arbitrary combination of symbols (except spaces and &lsquo;<samp>'</samp>&rsquo;) started from a letter and with length less than 64. A temporary array can be used as variable:
+<ul>
+<li> 
+sub-arrays (like in <a href="#subdata">subdata</a> command) as command argument. For example, <code>a(1)</code> or <code>a(1,:)</code> or <code>a(1,:,:)</code> is second row, <code>a(:,2)</code> or <code>a(:,2,:)</code> is third column, <code>a(:,:,0)</code> is first slice and so on. Also you can extract a part of array from m-th to n-th element by code <code>a(m:n,:,:)</code> or just <code>a(m:n)</code>.
+
+</li><li> 
+any column combinations defined by formulas, like <code>a('n*w^2/exp(t)')</code> if names for data columns was specified (by <a href="#idset">idset</a> command or in the file at string started with <code>##</code>).
+
+</li><li> 
+any expression (without spaces) of existed variables produce temporary variable. For example, &lsquo;<samp>sqrt(dat(:,5)+1)</samp>&rsquo; will produce temporary variable with data values equal to <code>tmp[i,j] = sqrt(dat[i,5,j]+1)</code>. 
+
+</li><li> 
+temporary variable of higher dimensions by help of []. For example, &lsquo;<samp>[1,2,3]</samp>&rsquo; will produce a temporary vector of 3 elements {1, 2, 3}; &lsquo;<samp>[[11,12],[21,22]]</samp>&rsquo; will produce matrix 2*2 and so on. Here you can join even an arrays of the same dimensions by construction like &lsquo;<samp>[v1,v2,...,vn]</samp>&rsquo;.
+
+</li><li> 
+result of code for making new data (see section <a href="#Make-another-data-_0028MGL_0029">Make another data (MGL)</a>) inside {}. For example, &lsquo;<samp>{sum dat 'x'}</samp>&rsquo; produce temporary variable which contain result of summation of <var>dat</var> along direction &rsquo;x&rsquo;. This is the same array <var>tmp</var> as produced by command &lsquo;<samp>sum tmp dat 'x'</samp>&rsquo;. You can use nested constructions, like &lsquo;<samp>{sum {max dat 'z'} 'x'}</samp>&rsquo;.
+</li></ul>
+<p>Temporary variables can not be used as 1st argument for commands which create (return) the data (like &lsquo;<samp>new</samp>&rsquo;, &lsquo;<samp>read</samp>&rsquo;, &lsquo;<samp>hist</samp>&rsquo; and so on).
+</p>
+</li><li> 
+Special names <code>nan=#QNAN, pi=3.1415926..., on=1, off=0, :=-1</code> are treated as number if they were not redefined by user. Variables with suffixes are treated as numbers (see section <a href="#Suffixes">Suffixes for variable</a>). Names defined by <a href="#define">define</a> command are treated as number. Also results of formulas with sizes 1x1x1 are treated as number (for example, &lsquo;<samp>pi/dat.nx</samp>&rsquo;).
+</li></ul>
+<p>Before the first using all variables must be defined with the help of commands, like, <a href="#new">new</a>, <a href="#var">var</a>, <a href="#list">list</a>, <a href="#copy">copy</a>, <a href="#read">read</a>, <a href="#hist">hist</a>, <a href="#sum">sum</a> and so on (see section <a href="#Data-create-_0028MGL_0029">Data create (MGL)</a> and <a href="#Make-another-data-_0028MGL_0029">Make another data (MGL)</a>). 
+</p>
+<p>Command may have several set of possible arguments (for example, <code>plot ydat</code> and <code>plot xdat ydat</code>). All command arguments for a selected set must be specified. However, some arguments can have default values. These argument are printed in [], like <code>plot ydat ['stl'='' zval=nan]</code>. At this, the record <code>[arg1 arg2 arg3 ...]</code> means <code>[arg1 [arg2 [arg3 ...]]]</code>, i.e. you can omit only tailing arguments if you agree with its default values. For example, <code>plot ydat '' 1</code> or <code>plot ydat ''</code> is correct, but <code>plot ydat 1</code> is incorrect (argument <code>'stl'</code> is missed).
+</p>
+<p>All MGL commands can be divided on several groups. I will use the following notation for a command description: command names are bold, strings are denoted by commas, variable names are italic, numbers are typewriter. Optional arguments are placed in square brackets and default values for them are shown. Detailed description of color, line styles (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>), color schemes (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>), font types, TeX-like symbols (see section <a href="mathgl_en_1.html#Font-styles">Font styles</a>) and formulas (see section <a href="mathgl_en_1.html#Textual-formulas">Textual formulas</a>) can be found in corresponding section.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Graphics-setup-_0028MGL_0029">8.1 Graphics setup (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transformation-matrix-_0028MGL_0029">8.3 Transformation matrix (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Export-to-file-_0028MGL_0029">8.4 Export to file (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing-_0028MGL_0029">8.6 Text printing (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Legend-_0028MGL_0029">8.8 Legend (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting-_0028MGL_0029">8.12 Dual plotting (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-fields-_0028MGL_0029">8.13 Vector fields (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-create-_0028MGL_0029">8.16 Data create (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-filling-_0028MGL_0029">8.17 Data filling (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Rearrange-data-_0028MGL_0029">8.18 Rearrange data (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Operators-_0028MGL_0029">8.22 Operators (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Suffixes">8.25 Suffixes for variable</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Utilities">8.26 Utilities for parsing MGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+</table>
+
+
+<hr size="6">
+<a name="Graphics-setup-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparency-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Graphics-setup-_0028MGL_0029-1"></a>
+<h2 class="section">8.1 Graphics setup (MGL)</h2>
+
+<p>Coomands in this group influences on overall graphics appearance. So all of them should be placed <em>before</em> any actual plotting commands. 
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Transparency-_0028MGL_0029">8.1.1 Transparency (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lighting-_0028MGL_0029">8.1.2 Lighting (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fog-_0028MGL_0029">8.1.3 Fog (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Default-sizes-_0028MGL_0029">8.1.4 Default sizes (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Zooming-_0028MGL_0029">8.1.5 Zooming (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cutting-_0028MGL_0029">8.1.6 Cutting (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-settings-_0028MGL_0029">8.1.7 Other settings (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Transparency-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lighting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transparency-_0028MGL_0029-1"></a>
+<h3 class="subsection">8.1.1 Transparency (MGL)</h3>
+
+<p>There are several commands for setup transparency. The general command is <a href="#alpha">alpha</a> which switch on/off the transparency for overall plot. It influence only for graphics which created after <a href="#alpha">alpha</a> call. Command <a href="#alphadef">alphadef</a> specify the default value of alpha-channel. You may switch off transparency of selected plot by command <a href="#transparent">transparent</a>. Finally, command <a href="#transptype">transptype</a> set the kind of transparency. See section <a href="mathgl_en_9.html#Transparent-surface-sample">Transparent surface sample</a>, for sample code and picture.
+</p>
+<a name="index-alpha"></a>
+<p><a name="alpha"></a>
+</p><dl>
+<dt><a name="index-alpha-1"></a><u>MGL command:</u> <b>alpha</b><i> <code>[val=on]</code></i></dt>
+<dd><p>Sets the transparency on/off. It is recommended to call this command before any plotting command. Default value is <code>off</code>. Use <code>transparent off</code> in particular plot to disable its transparency.
+</p></dd></dl>
+<a name="index-alphadef"></a>
+<p><a name="alphadef"></a>
+</p><dl>
+<dt><a name="index-alphadef-1"></a><u>MGL command:</u> <b>alphadef</b><i> <code>val</code></i></dt>
+<dd><p>Default value of alpha channel (transparency) for all plotting commands. Initial value is 0.5.
+</p></dd></dl>
+<a name="index-transparent"></a>
+<p><a name="transparent"></a>
+</p><dl>
+<dt><a name="index-transparent-1"></a><u>MGL command:</u> <b>transparent</b><i> <code>val</code></i></dt>
+<dd><p>Temporary switches transparency on/off for the plot.
+</p></dd></dl>
+<a name="index-transptype"></a>
+<p><a name="transptype"></a>
+</p><dl>
+<dt><a name="index-transptype-1"></a><u>MGL command:</u> <b>transptype</b><i> <code>val</code></i></dt>
+<dd><p>This command set the transparency type. Normal transparency (&lsquo;<samp>0</samp>&rsquo;) &ndash; below things is less visible than upper ones. Glass-like transparency (&lsquo;<samp>1</samp>&rsquo;) &ndash; below and upper things are commutable and just decrease intensity of light by RGB channel. Lamp-like transparency (&lsquo;<samp>2</samp>&rsquo;) &ndash; below and upper things are commutable and are the source of some additional light. I recommend to set <code>alphadef 0.3</code> or less for lamp-like transparency. See section <a href="mathgl_en_9.html#Normal-transparency">Normal transparency</a>, <a href="mathgl_en_9.html#Glass_002dlike-transparency">Glass-like transparency</a>, <a href="mathgl_en_9.html#Lamp_002dlike-transparency">Lamp-like transparency</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Lighting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparency-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fog-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Lighting-_0028MGL_0029-1"></a>
+<h3 class="subsection">8.1.2 Lighting (MGL)</h3>
+
+<p>There are several commands for setup lighting. The general command is <a href="#light">light</a> which switch on/off the lighting for overall plot. Generally MathGL support up to 10 independent light sources. The position, color, brightness of each light source can be set separately. By default only one light source is active. It is source number <code>0</code> with white color, located at top of the plot.
+</p>
+<a name="index-light"></a>
+<p><a name="light"></a>
+</p><dl>
+<dt><a name="index-light-1"></a><u>MGL command:</u> <b>light</b><i> <code>[val=on]</code></i></dt>
+<dd><p>Sets the using of light on/off for overall plot. It is recommended to call this command before any plotting command. Default value is lightning off.
+</p></dd></dl>
+<dl>
+<dt><a name="index-light-2"></a><u>MGL command:</u> <b>light</b><i> <code>num val</code></i></dt>
+<dd><p>Switch on/off <var>num</var>-th light source separately.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-light-3"></a><u>MGL command:</u> <b>light</b><i> <code>num xpos ypos zpos</code> ['col'='w' <code>br=0.5</code>]</i></dt>
+<dd><p>The command adds a light source with identification <var>num</var> at position {<var>xpos</var>, <var>ypos</var>, <var>zpos</var>}. The color of light is <var>col</var> (white by default). The brightness of light is <var>br</var> which must be in range [0,1].
+</p></dd></dl>
+
+<a name="index-ambient"></a>
+<p><a name="ambient"></a>
+</p><dl>
+<dt><a name="index-ambient-1"></a><u>MGL command:</u> <b>ambient</b><i> <code>val</code></i></dt>
+<dd><p>Sets the brightness of ambient light. The value should be in range [0,1]. Initial value is 0.5. 
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fog-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lighting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Default-sizes-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fog-_0028MGL_0029-1"></a>
+<h3 class="subsection">8.1.3 Fog (MGL)</h3>
+
+<a name="index-fog"></a>
+<p><a name="fog"></a>
+</p><dl>
+<dt><a name="index-fog-1"></a><u>MGL command:</u> <b>fog</b><i> <code>val [dz=0.25]</code></i></dt>
+<dd><p>Command imitate a fog in the plot. Fog start from relative distance <var>dz</var> from view point and its density growths exponentially in depth. So that the fog influence is determined by law ~<em>1-exp(-d*z)</em>. Here <em>z</em> is normalized to 1 depth of the plot. If value <var>val</var>=<code>0</code> then the fog is absent. See section <a href="mathgl_en_9.html#Surface-in-fog-sample">Surface in fog sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Default-sizes-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fog-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Zooming-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Default-sizes-_0028MGL_0029-1"></a>
+<h3 class="subsection">8.1.4 Default sizes (MGL)</h3>
+
+<p>These commands control the default (initial) values for most graphics parameters including sizes of markers, arrows, linewidth and so on. As any other settings these ones will influence only on plots created after the settings change.
+</p>
+<a name="index-barwidth"></a>
+<p><a name="barwidth"></a>
+</p><dl>
+<dt><a name="index-barwidth-1"></a><u>MGL command:</u> <b>barwidth</b><i> <code>val</code></i></dt>
+<dd><p>Sets relative width of rectangles in <code>bars, barh, boxplot</code>. Default value is <code>0.7</code>.
+</p></dd></dl>
+
+<a name="index-marksize"></a>
+<p><a name="marksize"></a>
+</p><dl>
+<dt><a name="index-marksize-1"></a><u>MGL command:</u> <b>marksize</b><i> <code>val</code></i></dt>
+<dd><p>The size of marks. Default value is <code>1</code>.
+</p></dd></dl>
+
+<a name="index-arrowsize"></a>
+<p><a name="arrowsize"></a>
+</p><dl>
+<dt><a name="index-arrowsize-1"></a><u>MGL command:</u> <b>arrowsize</b><i> <code>val</code></i></dt>
+<dd><p>The size of arrows for lines and curves. Default value is <code>1</code>.
+</p></dd></dl>
+
+<a name="index-linewidth"></a>
+<p><a name="linewidth"></a>
+</p><dl>
+<dt><a name="index-linewidth-1"></a><u>MGL command:</u> <b>linewidth</b><i> <code>val</code></i></dt>
+<dd><p>The variable define the base width for all lines. The value &lt;1 is ignored. Increase of this variables is actual for large bitmap pictures. Default value is <code>1</code>.
+</p></dd></dl>
+
+<a name="index-ticklen"></a>
+<p><a name="ticklen"></a>
+</p><dl>
+<dt><a name="index-ticklen-1"></a><u>MGL command:</u> <b>ticklen</b><i> <code>val</code> [<code>stt=1</code>]</i></dt>
+<dd><p>The relative length of axis ticks. Default value is <code>0.1</code>. Parameter <var>stt</var>&gt;0 set relative length of subticks which is in <code>sqrt(1+stt)</code> times smaller.
+</p></dd></dl>
+
+<a name="index-tickstl"></a>
+<p><a name="tickstl"></a>
+</p><dl>
+<dt><a name="index-tickstl-1"></a><u>MGL command:</u> <b>tickstl</b><i> 'stl' ['sub'='']</i></dt>
+<dd><p>The line style of axis ticks (<var>stl</var>) and subticks (<var>sub</var>). If <var>stl</var>=&rdquo; then default style is used (&lsquo;<samp>k</samp>&rsquo; or &lsquo;<samp>w</samp>&rsquo; depending on transparency type). If <var>sub</var>=&rdquo; then ticks style is used (i.e. <var>stl</var>).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Zooming-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Default-sizes-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cutting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Zooming-_0028MGL_0029-1"></a>
+<h3 class="subsection">8.1.5 Zooming (MGL)</h3>
+
+<p>These commands control the overall zooming of the picture or the sub-picture. Normally you can use these variables and commands for removing &ldquo;white&rdquo; spaces around a plot.
+</p>
+<a name="index-plotfactor"></a>
+<p><a name="plotfactor"></a>
+</p><dl>
+<dt><a name="index-plotfactor-1"></a><u>MGL command:</u> <b>plotfactor</b><i> <code>val</code></i></dt>
+<dd><p>The factor of plot size. It is not recommended to set it lower then 1.6. This is some analogue of command <a href="#zoom">zoom</a> but applied not to overall image but for each <a href="#inplot">inplot</a>. Use negative value to enable automatic <a href="#plotfactor">plotfactor</a> selection.
+</p></dd></dl>
+
+<a name="index-zoom"></a>
+<p><a name="zoom"></a>
+</p><dl>
+<dt><a name="index-zoom-1"></a><u>MGL command:</u> <b>zoom</b><i> <code>x1 y1 x2 y2</code></i></dt>
+<dd><p>The command changes the scale of graphics that correspond to zoom in/out of the picture. After command call the current plot will be cleared and further the picture will contain plotting from its part [x1,x2]*[y1,y2]. Here picture coordinates <var>x1</var>, <var>x2</var>, <var>y1</var>, <var>y2</var> changes from 0 to 1. Use <code>zoom 0 0 1 1</code> to return default view.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cutting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Zooming-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-settings-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cutting-_0028MGL_0029-1"></a>
+<h3 class="subsection">8.1.6 Cutting (MGL)</h3>
+
+<p>These commands set the condition when the points are excluded (cutted) from the drawing. Note, that a point with <code>nan</code> value(s) of coordinate or amplitude will be automatically excluded from the drawing.
+</p>
+<a name="index-cut"></a>
+<p><a name="cut"></a>
+</p><dl>
+<dt><a name="index-cut-1"></a><u>MGL command:</u> <b>cut</b><i> <code>val</code></i></dt>
+<dd><p>Determines how points outside bounding box are drawn. If it is <code>on</code> then points are excluded from plot (it is default) otherwise the points are projected to edges of bounding box.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cut-2"></a><u>MGL command:</u> <b>cut</b><i> <code>x1 y1 z1 x2 y2 z2</code></i></dt>
+<dd><p>Lower and upper edge of the box in which never points are drawn. If both edges are the same (the variables are equal) then the cutting box is empty. See section <a href="mathgl_en_9.html#CutMinMax-sample">CutMinMax sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cut-3"></a><u>MGL command:</u> <b>cut</b><i> 'cond'</i></dt>
+<dd><p>Command set the cutting off condition by formula <var>cond</var>. This condition determine will point be plotted or not. If value of formula is nonzero then point is omitted, otherwise it plotted. Set argument as <code>''</code> to disable cutting off condition. See section <a href="mathgl_en_9.html#CutOff-sample">CutOff sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Other-settings-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cutting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Other-settings-_0028MGL_0029-1"></a>
+<h3 class="subsection">8.1.7 Other settings (MGL)</h3>
+
+<a name="index-font"></a>
+<p><a name="font"></a>
+</p><dl>
+<dt><a name="index-font-1"></a><u>MGL command:</u> <b>font</b><i> 'fnt' [<code>val=6</code>]</i></dt>
+<dd><p>Font style for text and labels (see text). Initial style is &rsquo;fnt&rsquo;=&rsquo;rC&rsquo; give Roman font with centering. Parameter <code>val</code> sets the size of font for tick and axis labels. Default font size of axis labels is 1.4 times large than for tick labels. For more detail, see section <a href="mathgl_en_1.html#Font-styles">Font styles</a>.
+</p></dd></dl>
+
+<a name="index-rotatetext"></a>
+<p><a name="rotatetext"></a>
+</p><dl>
+<dt><a name="index-rotatetext-1"></a><u>MGL command:</u> <b>rotatetext</b><i> <code>val</code></i></dt>
+<dd><p>Set to use or not text rotation along axis. Initial value is <code>on</code>.
+</p></dd></dl>
+
+<a name="index-palette"></a>
+<p><a name="palette"></a>
+</p><dl>
+<dt><a name="index-palette-1"></a><u>MGL command:</u> <b>palette</b><i> 'colors'</i></dt>
+<dd><p>Set the palette as selected colors. Default value is <code>'Hbgrcmyhlnqeup'</code>. The palette is used mostly in 1D plots for curves which styles are not specified.
+</p></dd></dl>
+
+<a name="index-meshnum"></a>
+<p><a name="meshnum"></a>
+</p><dl>
+<dt><a name="index-meshnum-1"></a><u>MGL command:</u> <b>meshnum</b><i> <code>num</code></i></dt>
+<dd><p>Sets approximate number of lines in <a href="#mesh">mesh</a>, <a href="#fall">fall</a>, <a href="#grid">grid</a> and also the number of hachures in <a href="#vect">vect</a>, <a href="#vectc">vectc</a>, <a href="#dew">dew</a> and the number of cells in <a href="#cloud">cloud</a>. By default (=0) it draws all lines/hachures/cells.
+</p></dd></dl>
+
+<a name="index-axialdir"></a>
+<p><a name="axialdir"></a>
+</p><dl>
+<dt><a name="index-axialdir-1"></a><u>MGL command:</u> <b>axialdir</b><i> 'dir'</i></dt>
+<dd><p>Set direction around which curve rotated in <a href="#axial">axial</a>, <a href="#torus">torus</a>. Default value is &rsquo;z&rsquo;.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axis-settings-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-settings-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transformation-matrix-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-settings-_0028MGL_0029-1"></a>
+<h2 class="section">8.2 Axis settings (MGL)</h2>
+
+<p>These large set of commands control how the axis and ticks will be drawn. Note that there is 3-step transformation of data coordinates are performed. Firstly, coordinates are projected and cutting is applied (see section <a href="#Cutting-_0028MGL_0029">Cutting (MGL)</a>), after it transformation formulas are applied, and finally the data was normalized in bounding box.
+</p>
+<a name="index-axis"></a>
+<p><a name="axis"></a>
+</p><dl>
+<dt><a name="index-axis-1"></a><u>MGL command:</u> <b>axis</b><i> <code>x1 y1 x2 y2</code></i></dt>
+<dt><a name="index-axis-2"></a><u>MGL command:</u> <b>axis</b><i> <code>x1 y1 z1 x2 y2 z2</code></i></dt>
+<dd><a name="index-ranges"></a>
+<p><a name="ranges"></a>
+</p></dd><dt><a name="index-ranges-1"></a><u>MGL command:</u> <b>ranges</b><i> <code>x1 x2 y1 y2 [z1=0 z2=0]</code></i></dt>
+<dd><p>Sets the ranges of coordinates changing. Also it sets the range for coloring (analogous to <code>caxis z1 z2</code>). Initial ranges are [-1, 1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axis-3"></a><u>MGL command:</u> <b>axis</b><i> 'fx' 'fy' ['fz'='' 'fa'='']</i></dt>
+<dd><p>Sets the transformation formulas for curvilinear coordinates. Each string should contain mathematical expression for real coordinate depending on internal coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; and &lsquo;<samp>a</samp>&rsquo; or &lsquo;<samp>c</samp>&rsquo; for colorbar. For example, the cylindrical coordinates are introduced as <code>axis 'x*cos(y)' 'x*sin(y)' 'z'</code>. For removing of formulas the corresponding parameter should be <code>''</code>. The using of transformation formulas will slightly slowing the program, i.e. <code>axis '' '' ''</code> is faster than <code>axis '1*x' '1*y' '1*z'</code>. Initially all formulas are absent (Cartesian coordinates are used). For more details about functions and formulas, see section <a href="mathgl_en_1.html#Textual-formulas">Textual formulas</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axis-4"></a><u>MGL command:</u> <b>axis</b><i> <code>how</code></i></dt>
+<dd><p>Sets one of the predefined transformation formulas for curvilinear coordinate. Paramater <var>how</var> define the coordinates: &lsquo;<samp>0</samp>&rsquo; &ndash; Cartesian coordinates (no transformation); &lsquo;<samp>1</samp>&rsquo; &ndash; Polar coordiantes <em>x_n=x*cos(y),y_n=x*sin(y), z_n=z</em>; &lsquo;<samp>2</samp>&rsquo; &ndash; Spherical coordinates <em>x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y)</em>; &lsquo;<samp>3</samp>&rsquo; &ndash; Parabolic coordinates <em>x_n=x*y, y_n=(x*x-y*y)/2, z_n=z</em>; &lsquo;<samp>4</samp>&rsquo; &ndash; Paraboloidal coordinates <em>x_n=(x*x-y*y)*cos(z)/2, y_n=(x*x-y*y)*sin(z)/2, z_n=x*y</em>; &lsquo;<samp>5</samp>&rsquo; &ndash; Oblate coordinates <em>x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z), z_n=sinh(x)*sin(y)</em>; &lsquo;<samp>6</samp>&rsquo; &ndash; Prolate coordinates <em>x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z), z_n=cosh(x)*cos(y)</em>; &lsquo;<samp>7</samp>&rsquo; &ndash; Elliptic coordinates <em>x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z</em>; &lsquo;<samp>8</samp>&rsquo; &ndash; Toroidal coordinates <em>x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)), y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y))</em>; &lsquo;<samp>9</samp>&rsquo; &ndash; Bispherical coordinates <em>x_n=sin(y)*cos(z)/(cosh(x)-cos(y)), y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y))</em>; &lsquo;<samp>10</samp>&rsquo; &ndash; Bipolar coordinates <em>x_n=sinh(x)/(cosh(x)-cos(y)), y_n=sin(y)/(cosh(x)-cos(y)), z_n=z</em>.
+</p></dd></dl>
+
+<a name="index-caxis"></a>
+<p><a name="caxis"></a>
+</p><dl>
+<dt><a name="index-caxis-1"></a><u>MGL command:</u> <b>caxis</b><i> <code>z1 z2</code></i></dt>
+<dd><p>Sets the range for surface coloring. Initial range is [-1, 1].
+</p></dd></dl>
+
+<a name="index-origin"></a>
+<p><a name="origin"></a>
+</p><dl>
+<dt><a name="index-origin-1"></a><u>MGL command:</u> <b>origin</b><i> <code>x0 y0 [z0=nan]</code></i></dt>
+<dd><p>Center of axis cross section. If one of values is <code>nan</code> then MathGL library try to select optimal axis position.
+</p></dd></dl>
+
+<a name="index-ternary"></a>
+<p><a name="ternary"></a>
+</p><dl>
+<dt><a name="index-ternary-1"></a><u>MGL command:</u> <b>ternary</b><i> <code>val</code></i></dt>
+<dd><p>The command sets to draws Ternary plot. This special plot is for 3 dependent coordinates (components) <var>a</var>, <var>b</var>, <var>c</var> so that <var>a</var>+<var>b</var>+<var>c</var>=1. MathGL uses only 2 independent coordinates <var>a</var>=x and <var>b</var>=y since it is enough to plot everything. At this third coordinate z act as another parameter to produce contour lines, surfaces and so on. See section <a href="mathgl_en_9.html#Ternary-plot-sample">Ternary plot sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-xrange"></a>
+<p><a name="xrange"></a>
+</p><dl>
+<dt><a name="index-xrange-1"></a><u>MGL command:</u> <b>xrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-yrange"></a>
+<p><a name="yrange"></a>
+</p></dd><dt><a name="index-yrange-1"></a><u>MGL command:</u> <b>yrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-zrange"></a>
+<p><a name="zrange"></a>
+</p></dd><dt><a name="index-zrange-1"></a><u>MGL command:</u> <b>zrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-crange"></a>
+<p><a name="crange"></a>
+</p></dd><dt><a name="index-crange-1"></a><u>MGL command:</u> <b>crange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><p>Sets the range for x-,y-,z- coordinate or coloring as minimal and maximal values of data <var>dat</var>. Parameter <code>add=on</code> shows that the new range will be joined to existed one (nut will not replace it). Parameter <var>fact</var> add additional range increase on value (<var>Max</var>-<var>Min</var>)*<var>fact</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xrange-2"></a><u>MGL command:</u> <b>xrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-yrange-2"></a><u>MGL command:</u> <b>yrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-zrange-2"></a><u>MGL command:</u> <b>zrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-crange-2"></a><u>MGL command:</u> <b>crange</b><i> <code>x1 x2</code></i></dt>
+<dd><p>Sets the range for x-,y-,z- coordinate or coloring. See also <a href="#axis">axis</a>.
+</p></dd></dl>
+
+<a name="index-xtick"></a>
+<p><a name="xtick"></a>
+</p><dl>
+<dt><a name="index-xtick-1"></a><u>MGL command:</u> <b>xtick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ytick"></a>
+<p><a name="ytick"></a>
+</p></dd><dt><a name="index-ytick-1"></a><u>MGL command:</u> <b>ytick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ztick"></a>
+<p><a name="ztick"></a>
+</p></dd><dt><a name="index-ztick-1"></a><u>MGL command:</u> <b>ztick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ctick"></a>
+<p><a name="ctick"></a>
+</p></dd><dt><a name="index-ctick-1"></a><u>MGL command:</u> <b>ctick</b><i> <code>val</code></i></dt>
+<dd><p>Sets step for x-, y-, z-axis ticks or colorbar ticks (if <var>val</var>&gt;0) or it&rsquo;s number (if <var>val</var>&lt;0) in corresponding direction. Zero value <var>val</var>=0 sets logarithmic ticks. Parameter <var>sub</var> sets the number of sub-ticks. Parameter <var>org</var> set the starting points for ticks. If not <code>org=nan</code> then the value from <a href="#origin">origin</a> is used.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xtick-2"></a><u>MGL command:</u> <b>xtick</b><i> 'templ'</i></dt>
+<dt><a name="index-ytick-2"></a><u>MGL command:</u> <b>ytick</b><i> 'templ'</i></dt>
+<dt><a name="index-ztick-2"></a><u>MGL command:</u> <b>ztick</b><i> 'templ'</i></dt>
+<dt><a name="index-ctick-2"></a><u>MGL command:</u> <b>ctick</b><i> 'templ'</i></dt>
+<dd><p>Sets the template for x-, y-, z-axis ticks or colorbar ticks. It may contain TeX symbols also. If <var>templ</var>=<code>''</code> then default template is used (in simplest case it is &lsquo;<samp>%.2g</samp>&rsquo;) with automatic detaching of common multiplier or common component.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xtick-3"></a><u>MGL command:</u> <b>xtick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dt><a name="index-ytick-3"></a><u>MGL command:</u> <b>ytick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dt><a name="index-ztick-3"></a><u>MGL command:</u> <b>ztick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dd><p>Sets manual positions <var>val1</var>,<var>val2</var>,... and labels <var>lbl1</var>,<var>lbl2</var>,... for ticks along x-, y-, z-axis. Labels may contain TeX symbols also.
+</p></dd></dl>
+
+<a name="index-adjust"></a>
+<p><a name="adjust"></a>
+</p><dl>
+<dt><a name="index-adjust-1"></a><u>MGL command:</u> <b>adjust</b><i> ['dir'='xyzc']</i></dt>
+<dd><p>Set the ticks step, number of sub-ticks and initial ticks position to be the most human readable for the axis along direction(s) <var>dir</var>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Transformation-matrix-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-settings-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Export-to-file-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transformation-matrix-_0028MGL_0029-1"></a>
+<h2 class="section">8.3 Transformation matrix (MGL)</h2>
+
+<p>These commands control how and where further plotting will be placed. There is a curtain order of calling of these commands for the better plot view. First one should be <a href="#subplot">subplot</a> or <a href="#inplot">inplot</a> for specifying the place. After it a <a href="#rotate">rotate</a> and <a href="#aspect">aspect</a>. And finally any other plotting commands may be called. Alternatevely you can use <a href="#columnplot">columnplot</a> for position plots in the column one by another without gap between plot axis (bounding boxes).
+</p>
+<a name="index-subplot"></a>
+<p><a name="subplot"></a>
+</p><dl>
+<dt><a name="index-subplot-1"></a><u>MGL command:</u> <b>subplot</b><i> <code>nx ny m [dx=0 dy=0]</code></i></dt>
+<dd><p>Puts further plotting in a <var>m</var>-th cell of <var>nx</var>*<var>ny</var> grid of the whole frame area. This command set off any aspects or rotations. So it should be used first for creating the subplot. From the aesthetical point of view it is not recommended to use this command with different matrices in the same frame. The position of the cell can be shifted from its default position by relative size <var>dx</var>, <var>dy</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-subplot-2"></a><u>MGL command:</u> <b>subplot</b><i> <code>nx ny m</code> 'style'</i></dt>
+<dd><p>The same as previous but space reserved for axis/colorbar is saved only if <var>style</var> contain: &lsquo;<samp>L</samp>&rsquo; or &lsquo;<samp>&lt;</samp>&rsquo; &ndash; at left side, &lsquo;<samp>R</samp>&rsquo; or &lsquo;<samp>&gt;</samp>&rsquo; &ndash; at right side, &lsquo;<samp>A</samp>&rsquo; or &lsquo;<samp>^</samp>&rsquo; &ndash; at top side, &lsquo;<samp>U</samp>&rsquo; or &lsquo;<samp>_</samp>&rsquo; &ndash; at bottom side.
+</p></dd></dl>
+
+<a name="index-inplot"></a>
+<p><a name="inplot"></a>
+</p><dl>
+<dt><a name="index-inplot-1"></a><u>MGL command:</u> <b>inplot</b><i> <code>x1 x2 y1 y2 [rel=off]</code></i></dt>
+<dd><p>Puts further plotting in some region of the whole frame surface. This command allows one to create a plot in arbitrary place of the screen. The position is defined by rectangular coordinates [<var>x1</var>, <var>x2</var>]*[<var>y1</var>, <var>y2</var>]. The coordinates <var>x1</var>, <var>x2</var>, <var>y1</var>, <var>y2</var> are normalized to interval [0, 1]. If parameter <var>rel</var>=<code>on</code> then the relative position to current <a href="#subplot">subplot</a> is used. This command set off any aspects or rotations. So it should be used first for creating subplot.
+</p></dd></dl>
+
+<a name="index-columnplot"></a>
+<p><a name="columnplot"></a>
+</p><dl>
+<dt><a name="index-columnplot-1"></a><u>MGL command:</u> <b>columnplot</b><i> <code>num ind [d=0]</code></i></dt>
+<dd><p>Puts further plotting in <var>ind</var>-th cell of column with <var>num</var> cells. The position is relative to previous <a href="#subplot">subplot</a> call (or <a href="#inplot">inplot</a> with <code>rel=off</code>). Parameter <var>d</var> set extra gap between cells.
+</p></dd></dl>
+
+<a name="index-stickplot"></a>
+<p><a name="stickplot"></a>
+</p><dl>
+<dt><a name="index-stickplot-1"></a><u>MGL command:</u> <b>stickplot</b><i> <code>num ind tet phi</code></i></dt>
+<dd><p>Puts further plotting in <var>ind</var>-th cell of stick with <var>num</var> cells. At this, stick is rotated on angles <var>tet</var>, <var>phi</var>. The position is relative to previous <a href="#subplot">subplot</a> call (or <a href="#inplot">inplot</a> with <code>rel=off</code>).
+</p></dd></dl>
+
+<a name="index-rotate"></a>
+<p><a name="rotate"></a>
+</p><dl>
+<dt><a name="index-rotate-1"></a><u>MGL command:</u> <b>rotate</b><i> <code>tetz tetx [tety=0]</code></i></dt>
+<dd><p>Rotates a further plotting relative to each axis (x, z, y) consecutively on angles <var>tetx</var>, <var>tetz</var>, <var>tety</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-rotate-2"></a><u>MGL command:</u> <b>rotate</b><i> <code>tet x y z</code></i></dt>
+<dd><p>Rotates a further plotting around vector {x,y,z} on angle <var>tet</var>.
+</p></dd></dl>
+
+<a name="index-aspect"></a>
+<p><a name="aspect"></a>
+</p><dl>
+<dt><a name="index-aspect-1"></a><u>MGL command:</u> <b>aspect</b><i> <code>ax ay [az=1]</code></i></dt>
+<dd><p>Defines aspect ratio for the plot. The viewable axes will be related one to another as the ratio <var>ax:ay:az</var>. For the best effect it should be used after <a href="#rotate">rotate</a> command.
+</p></dd></dl>
+
+<a name="index-perspective"></a>
+<p><a name="perspective"></a>
+</p><dl>
+<dt><a name="index-perspective-1"></a><u>MGL command:</u> <b>perspective</b><i> <code>val</code></i></dt>
+<dd><p>Add (switch on) the perspective to plot. The parameter <em>val ~ 1/z_eff \in [0,1)</em>. By default (<code>val=0</code>) the perspective is off.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Export-to-file-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transformation-matrix-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Primitives-drawing-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Export-to-file-_0028MGL_0029-1"></a>
+<h2 class="section">8.4 Export to file (MGL)</h2>
+
+<a name="index-write"></a>
+<p><a name="write"></a>
+</p><dl>
+<dt><a name="index-write-1"></a><u>MGL command:</u> <b>write</b><i> 'fname' [<code>solid=off</code>]</i></dt>
+<dd><p>Exports current picture/frame to file &rsquo;fname&rsquo; (file type is determined by extension). Solid (usually white) background will be used if <code>solid=on</code>. If &rsquo;fname&rsquo;=&rdquo; then the file &lsquo;<samp>frameNNNN.jpg</samp>&rsquo; is used, where &lsquo;<samp>NNNN</samp>&rsquo; is current frame id.
+</p></dd></dl>
+
+<a name="index-setsize"></a>
+<p><a name="setsize"></a>
+</p><dl>
+<dt><a name="index-setsize-1"></a><u>MGL command:</u> <b>setsize</b><i> <code>w h</code></i></dt>
+<dd><p>Sets size of picture in pixels. This function call <strong>must be</strong> placed before any plotting command because it completely remove picture content. In some program the call of this function is forbidden.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Primitives-drawing-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Export-to-file-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Primitives-drawing-1"></a>
+<h2 class="section">8.5 Primitives drawing</h2>
+
+<p>These commands draw some simple objects like line, point, sphere, drop, cone and so on.
+</p>
+<a name="index-clf"></a>
+<p><a name="clf"></a>
+</p><dl>
+<dt><a name="index-clf-1"></a><u>MGL command:</u> <b>clf</b></dt>
+<dd><p>Clear the picture by removes all drawing from it. Does not change transformation matrix. 
+</p></dd></dl>
+
+<a name="index-ball"></a>
+<p><a name="ball"></a>
+</p><dl>
+<dt><a name="index-ball-1"></a><u>MGL command:</u> <b>ball</b><i> <code>x y</code> ['col'='r']</i></dt>
+<dt><a name="index-ball-2"></a><u>MGL command:</u> <b>ball</b><i> <code>x y z</code> ['col'='r']</i></dt>
+<dd><p>Draws a point (ball) at position {<var>x</var>, <var>y</var>, <var>z</var>} with color defined by string <var>col</var>.
+</p></dd></dl>
+
+<a name="index-line"></a>
+<p><a name="line"></a>
+</p><dl>
+<dt><a name="index-line-1"></a><u>MGL command:</u> <b>line</b><i> <code>x1 y1 x2 y2</code> ['stl'='']</i></dt>
+<dt><a name="index-line-2"></a><u>MGL command:</u> <b>line</b><i> <code>x1 y1 z1 x2 y2 z2</code> ['stl'='']</i></dt>
+<dd><p>Draws a geodesic line (straight line in Cartesian coordinates) from point {<var>x1</var>,<var>y1</var>,<var>z1</var>} to {<var>x2</var>,<var>y2</var>,<var>z2</var>} using line style <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-curve"></a>
+<p><a name="curve"></a>
+</p><dl>
+<dt><a name="index-curve-1"></a><u>MGL command:</u> <b>curve</b><i> <code>x1 y1 dx1 dy1 x2 y2 dx2 dy2</code> ['stl'='']</i></dt>
+<dt><a name="index-curve-2"></a><u>MGL command:</u> <b>curve</b><i> <code>x1 y1 z1 dx1 dy1 dz1 x2 y2 z2 dx2 dy2 dz2</code> ['stl'='']</i></dt>
+<dd><p>Draws Bezier-like curve from point {<var>x1</var>,<var>y1</var>,<var>z1</var>} to {<var>x2</var>,<var>y2</var>,<var>z2</var>} using line style <var>stl</var>. At this tangent is co-directed with {<var>dx1</var>,<var>dy1</var>,<var>dz1</var>}, {<var>dx2</var>,<var>dy2</var>,<var>dz2</var>} and proportional to its amplitude.
+</p></dd></dl>
+
+<a name="index-facex"></a>
+<p><a name="facex"></a>
+</p><dl>
+<dt><a name="index-facex-1"></a><u>MGL command:</u> <b>facex</b><i> <code>x0 y0 z0 wy wz</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><a name="index-facey"></a>
+<p><a name="facey"></a>
+</p></dd><dt><a name="index-facey-1"></a><u>MGL command:</u> <b>facey</b><i> <code>x0 y0 z0 wx wz</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><a name="index-facez"></a>
+<p><a name="facez"></a>
+</p></dd><dt><a name="index-facez-1"></a><u>MGL command:</u> <b>facez</b><i> <code>x0 y0 z0 wx wy</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><p>Draws the solid rectangle (face) perpendicular to [x,y,z]-axis correspondingly at position {<var>x0</var>, <var>y0</var>, <var>z0</var>} with color <var>stl</var> and with widths <var>wx</var>, <var>wy</var>, <var>wz</var> along corresponding directions. At this colors can be the same for all vertexes or different if all 4 colors are specified for each vertex. Parameters <var>d1</var>!=0, <var>d2</var>!=0 set additional shift of the last vertex (i.e. to draw quadrangle).
+</p></dd></dl>
+
+<a name="index-sphere"></a>
+<p><a name="sphere"></a>
+</p><dl>
+<dt><a name="index-sphere-1"></a><u>MGL command:</u> <b>sphere</b><i> <code>x0 y0 r</code> ['col'='r']</i></dt>
+<dt><a name="index-sphere-2"></a><u>MGL command:</u> <b>sphere</b><i> <code>x0 y0 z0 r</code> ['col'='r']</i></dt>
+<dd><p>Draw the sphere with radius <var>r</var> and center at point {<var>x0</var>, <var>y0</var>, <var>z0</var>} and color <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-drop"></a>
+<p><a name="drop"></a>
+</p><dl>
+<dt><a name="index-drop-1"></a><u>MGL command:</u> <b>drop</b><i> <code>x0 y0 dx dy r</code> ['col'='b' <code>sh=1 asp=1</code>]</i></dt>
+<dt><a name="index-drop-2"></a><u>MGL command:</u> <b>drop</b><i> <code>x0 y0 z0 dx dy dz r</code> ['col'='b' <code>sh=1 asp=1</code>]</i></dt>
+<dd><p>Draw the drop with radius <var>r</var> at point {<var>x0</var>,<var>y0</var>,<var>z0</var>} elongated in direction {<var>dx</var>,<var>dy</var>,<var>dz</var>} and with color <var>col</var>. Parameter <var>sh</var> set the degree of drop oblongness: &lsquo;<samp>0</samp>&rsquo; is sphere, &lsquo;<samp>1</samp>&rsquo; is maximally oblongness drop. Parameter <var>asp</var> set relative width of the drop (this is analogue of &ldquo;ellipticity&rdquo; for the sphere). See section <a href="mathgl_en_9.html#Drops-sample">Drops sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-cone"></a>
+<p><a name="cone"></a>
+</p><dl>
+<dt><a name="index-cone-1"></a><u>MGL command:</u> <b>cone</b><i> <code>x1 y1 z1 x2 y2 z2 r1</code> [<code>r2=-1</code> 'stl'='' <code>edge=off</code>]</i></dt>
+<dd><p>Draw tube (or truncated cone if <var>edge</var>=<code>off</code>) between points {<var>x1</var>,<var>y1</var>,<var>z1</var>}, {<var>x2</var>,<var>y2</var>,<var>z2</var>} with radiuses at the edges <var>r1</var>, <var>r2</var>. If <var>r2</var>&lt;0 then it is supposed that <var>r2</var>=<var>r1</var>. The cone color is defined by string <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-rect"></a>
+<p><a name="rect"></a>
+</p><dl>
+<dt><a name="index-rect-1"></a><u>MGL command:</u> <b>rect</b><i> <code>x1 y1 x2 y2</code> ['st'='']</i></dt>
+<dt><a name="index-rect-2"></a><u>MGL command:</u> <b>rect</b><i> <code>x1 y1 z1 x2 y2 z2</code> ['st'='']</i></dt>
+<dd><p>Draw rectangle from point {<var>x1</var>,<var>y1</var>,<var>z1</var>} to point {<var>x2</var>,<var>y2</var>,<var>z2</var>} using colors <var>stl</var>. If <var>stl</var> have 4 or more colors then it defines colors for each rectangle vertex (useful for making gradients, like &lsquo;<samp>wwrr</samp>&rsquo;) else first color is used for whole rectangle.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Text-printing-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Primitives-drawing-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-Colorbar-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-printing-_0028MGL_0029-1"></a>
+<h2 class="section">8.6 Text printing (MGL)</h2>
+
+<p>These commands draw the text. There are commands for drawing text in arbitrary place, in arbitrary direction and along arbitrary curve. It is possible to use arbitrary font-faces and parse many TeX commands. The Unicode text is supported. So sometimes you need to specify locale. The <code>size</code> argument control the size of text: if positive it give the value, if negative it give the value relative to defined by <code>font</code> command. See section <a href="mathgl_en_1.html#Font-styles">Font styles</a>.
+</p>
+<a name="index-text"></a>
+<p><a name="text"></a>
+</p><dl>
+<dt><a name="index-text-1"></a><u>MGL command:</u> <b>text</b><i> <code>x y</code> 'text' ['fnt'='' <code>size=-1.4</code>]</i></dt>
+<dt><a name="index-text-2"></a><u>MGL command:</u> <b>text</b><i> <code>x y z</code> 'text' ['fnt'='' <code>size=-1.4</code>]</i></dt>
+<dd><p>Draws unrotated text string <var>text</var> at position {<var>x</var>,<var>y</var>,<var>z</var>} with specified style <var>fnt</var> and <var>size</var>. By default parameters from <code>font</code> command are used.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-text-3"></a><u>MGL command:</u> <b>text</b><i> <code>x y dx dy</code> 'text' [<code>size=-1.4</code>]</i></dt>
+<dt><a name="index-text-4"></a><u>MGL command:</u> <b>text</b><i> <code>x y z dx dy dz</code> 'text' [<code>size=-1.4</code>]</i></dt>
+<dd><p>The command plots the string <var>text</var> at position {<var>x</var>,<var>y</var>,<var>z</var>} along direction {<var>dx</var>,<var>dy</var>,<var>dz</var>} with specified style <var>fnt</var> and <var>size</var>. By default parameters from <code>font</code> command are used.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-text-5"></a><u>MGL command:</u> <b>text</b><i> ydat 'text' ['fnt'='' <code>size=-1 zval=nan</code>]</i></dt>
+<dt><a name="index-text-6"></a><u>MGL command:</u> <b>text</b><i> xdat ydat 'text' ['fnt'='' <code>size=-1 zval=nan</code>]</i></dt>
+<dt><a name="index-text-7"></a><u>MGL command:</u> <b>text</b><i> xdat ydat zdat 'text' ['fnt'='' <code>size=-1</code>]</i></dt>
+<dd><p>The command draws <var>text</var> along the curve between points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} by font style <var>fnt</var> and with size <var>size</var>. The string <var>fnt</var> may contain symbols &lsquo;<samp>t</samp>&rsquo; for printing the text under the curve (default), or &lsquo;<samp>T</samp>&rsquo; for printing the text above the curve. The sizes of 1st dimension must be equal for all arrays <var>xdat.nx=ydat.nx=zdat.nx</var>. If array <var>xdat</var> is not specified then its an automatic array is used with values equidistantly distributed along x. If array <var>zdat</var> is not specified then <var>z</var>[i] = <var>zval</var> is used. See section <a href="mathgl_en_9.html#Text-sample">Text sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-title"></a>
+<p><a name="title"></a>
+</p><dl>
+<dt><a name="index-title-1"></a><u>MGL command:</u> <b>title</b><i> 'text' ['fnt'='' <code>size=-2</code>]</i></dt>
+<dd><p>Print string <var>text</var> as title of the picture (at the top of the picture). Can be used at any place (even inside <a href="#subplot">subplot</a>).
+</p></dd></dl>
+
+<a name="index-fgets"></a>
+<p><a name="fgets"></a>
+</p><dl>
+<dt><a name="index-fgets-1"></a><u>MGL command:</u> <b>fgets</b><i> <code>x y</code> 'fname' [<code>n=0</code> 'fnt'='' <code>size=-1.4</code>]</i></dt>
+<dt><a name="index-fgets-2"></a><u>MGL command:</u> <b>fgets</b><i> <code>x y z</code> 'fname' [<code>n=0</code> 'fnt'='' <code>size=-1.4</code>]</i></dt>
+<dd><p>Draws unrotated <var>n</var>-th line of file <var>fname</var> at position {<var>x</var>,<var>y</var>,<var>z</var>} with specified <var>size</var>. By default parameters from <a href="#font">font</a> command are used.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Axis-and-Colorbar-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-and-Colorbar-_0028MGL_0029-1"></a>
+<h2 class="section">8.7 Axis and Colorbar (MGL)</h2>
+
+<p>These commands draw the &ldquo;things for measuring&rdquo;, like axis with ticks, colorbar with ticks, grid along axis, bounding box and labels for axis. For more information see section <a href="#Axis-settings-_0028MGL_0029">Axis settings (MGL)</a>.
+</p>
+<a name="index-axis-5"></a>
+<dl>
+<dt><a name="index-axis-6"></a><u>MGL command:</u> <b>axis</b><i> ['dir'='xyz' <code>adjust=off</code>]</i></dt>
+<dd><p>Draws axes with ticks (see section <a href="#Axis-settings-_0028MGL_0029">Axis settings (MGL)</a>) in directions determined by string parameter <var>dir</var>.If string contain the symbol &lsquo;<samp>_</samp>&rsquo; then tick labels are not printed. Font for ticks labels is determined by command <a href="#font">font</a>. Ticks will be automatically adjusted if <var>adjust</var>=<code>on</code> (by call of <code>adjust 'dir'</code>).
+</p></dd></dl>
+
+<a name="index-colorbar"></a>
+<p><a name="colorbar"></a>
+</p><dl>
+<dt><a name="index-colorbar-1"></a><u>MGL command:</u> <b>colorbar</b><i> ['sch'='' <code>pos=0</code>]</i></dt>
+<dd><p>Draws colorbar with color scheme <var>sch</var> (current scheme if <code>sch=''</code>) at edge of plot. Parameter <var>pos</var> specifies the position of colorbar: &lsquo;<samp>0</samp>&rsquo; - at right (default), &lsquo;<samp>1</samp>&rsquo; - at left, &lsquo;<samp>2</samp>&rsquo; - at top, &lsquo;<samp>3</samp>&rsquo; - at bottom. If string <var>sch</var> contains &lsquo;<samp>&lt;&gt;^_</samp>&rsquo; then the parameter <var>pos</var> is defined as: <code>pos=0</code> for &lsquo;<samp>&gt;</samp>&rsquo; (right), <code>pos=1</code> for &lsquo;<samp>&lt;</samp>&rsquo; (left), <code>pos=2</code> for &lsquo;<samp>^</samp>&rsquo; (top), <code>pos=3</code> for &lsquo;<samp>_</samp>&rsquo; (bottom). If string have &lsquo;<samp>A</samp>&rsquo; then absolute (relative to picture) coordinates is used. See section <a href="mathgl_en_9.html#Dens-sample">Dens sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-colorbar-2"></a><u>MGL command:</u> <b>colorbar</b><i> vdat ['sch'='' <code>pos=0</code>]</i></dt>
+<dd><p>The same as previous but with sharp colors <var>sch</var> (current palette if <code>sch=&quot;&quot;</code>) for values <var>v</var>. See section <a href="mathgl_en_9.html#ContD-sample">ContD sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-colorbar-3"></a><u>MGL command:</u> <b>colorbar</b><i> 'sch' <code>pos x y w h</code></i></dt>
+<dd><p>The same as first one but at arbitrary position of subplot {<var>x</var>, <var>y</var>} (supposed to be in range [0,1]). Parameters <var>w</var>, <var>h</var> set the relative width and height of the colorbar.
+</p></dd></dl>
+
+<a name="index-grid"></a>
+<p><a name="grid"></a>
+</p><dl>
+<dt><a name="index-grid-1"></a><u>MGL command:</u> <b>grid</b><i> ['dir'='xyz' 'pen'='B']</i></dt>
+<dd><p>Draws grid lines perpendicular to direction determined by string parameter <var>dir</var>. The step of grid lines is the same as tick step for an <code>axis</code>. The style of lines is determined by <var>pen</var> parameter.
+</p></dd></dl>
+
+<a name="index-box"></a>
+<p><a name="box"></a>
+</p><dl>
+<dt><a name="index-box-1"></a><u>MGL command:</u> <b>box</b><i> ['stl'='k' <code>ticks=on</code>]</i></dt>
+<dd><p>Draws bounding box outside the plotting volume with line style &rsquo;stl&rsquo;. If <code>ticks=on</code> then ticks are drawn with current axis setting.
+</p></dd></dl>
+
+<a name="index-xlabel"></a>
+<p><a name="xlabel"></a>
+</p><dl>
+<dt><a name="index-xlabel-1"></a><u>MGL command:</u> <b>xlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-ylabel"></a>
+<p><a name="ylabel"></a>
+</p></dd><dt><a name="index-ylabel-1"></a><u>MGL command:</u> <b>ylabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-zlabel"></a>
+<p><a name="zlabel"></a>
+</p></dd><dt><a name="index-zlabel-1"></a><u>MGL command:</u> <b>zlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-tlabel"></a>
+<p><a name="tlabel"></a>
+</p></dd><dt><a name="index-tlabel-1"></a><u>MGL command:</u> <b>tlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><p>Prints the label <var>text</var> for x-,y-,z-,t-axis (here &lsquo;<samp>t</samp>&rsquo; is &ldquo;ternary&rdquo; axis <em>t=1-x-y</em>). The position of label is determined by <var>pos</var> parameter. If <var>pos</var>=0 then label is printed at the center of axis. If <var>pos</var>&gt;0 then label is printed at the maximum of axis (default). If <var>pos</var>&lt;0 then label is printed at the minimum of axis. The font size is 1.4 times larger than the one for ticks <code>font</code>. Parameter <code>shift</code> specify additional shifting of the label. See section <a href="#Text-printing-_0028MGL_0029">Text printing (MGL)</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Legend-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-Colorbar-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Legend-_0028MGL_0029-1"></a>
+<h2 class="section">8.8 Legend (MGL)</h2>
+
+<p>These commands draw legend to the graph (useful for <a href="#g_t1D-plotting-_0028MGL_0029">1D plotting (MGL)</a>). Legend entry is a pair of strings: one for style of the line, another one with description text (with included LaTeX parsing). The array of string are accumulated first to the internal arrays (by command <a href="#addlegend">addlegend</a>) and are plotted later. The position of the legend can be selected automatic or manually. Parameters <var>fnt</var> and <var>size</var> specify the font style and size. Parameter <var>llen</var> set the relative width of the line sample and the text indent (default value is 0.1). If line style string for entry is empty then the corresponding text is printed without indent. If string contains &lsquo;<samp>A</samp>&rsquo; then legend coordinates set position in the picture. See section <a href="mathgl_en_9.html#Legend-sample">Legend sample</a>, for sample code and picture.
+</p>
+<a name="index-legend"></a>
+<p><a name="legend"></a>
+</p><dl>
+<dt><a name="index-legend-1"></a><u>MGL command:</u> <b>legend</b><i> [<code>pos=3</code> 'fnt'='rL' <code>size=-1 llen=0.1</code>]</i></dt>
+<dd><p>Draws legend of accumulated legend entries by font <var>fnt</var> with specified <var>size</var>. Parameter <var>pos</var> sets the position of the legend: &lsquo;<samp>0</samp>&rsquo; is bottom left corner, &lsquo;<samp>1</samp>&rsquo; is bottom right corner, &lsquo;<samp>2</samp>&rsquo; is top left corner, &lsquo;<samp>3</samp>&rsquo; is top right corner (is default).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-legend-2"></a><u>MGL command:</u> <b>legend</b><i> <code>x y</code> ['fnt'='rL' <code>size=-1 llen=0.1</code>]</i></dt>
+<dd><p>Draws legend of accumulated legend entries by font <var>fnt</var> with <var>size</var>. Position of legend in the current subplot is determined by parameter <var>x</var>, <var>y</var> which supposed to be normalized to interval [0,1].
+</p></dd></dl>
+
+<a name="index-addlegend"></a>
+<p><a name="addlegend"></a>
+</p><dl>
+<dt><a name="index-addlegend-1"></a><u>MGL command:</u> <b>addlegend</b><i> 'text' 'stl'</i></dt>
+<dd><p>Adds string <var>text</var> to internal legend accumulator. The style of described line and mark is specified in string <var>stl</var> (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). Maximal number of entries is 100.
+</p></dd></dl>
+
+<a name="index-clearlegend"></a>
+<p><a name="clearlegend"></a>
+</p><dl>
+<dt><a name="index-clearlegend-1"></a><u>MGL command:</u> <b>clearlegend</b></dt>
+<dd><p>Clears saved legend strings.
+</p></dd></dl>
+
+<a name="index-legendbox"></a>
+<p><a name="legendbox"></a>
+</p><dl>
+<dt><a name="index-legendbox-1"></a><u>MGL command:</u> <b>legendbox</b><i> <code>val</code></i></dt>
+<dd><p>Switches on/off the drawing of a box near legend. By default, the box is drawn.
+</p></dd></dl>
+
+<a name="index-legendmarks"></a>
+<p><a name="legendmarks"></a>
+</p><dl>
+<dt><a name="index-legendmarks-1"></a><u>MGL command:</u> <b>legendmarks</b><i> <code>val</code></i></dt>
+<dd><p>Set the number of marks in the legend. By default 1 mark is used.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t1D-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-plotting-_0028MGL_0029-1"></a>
+<h2 class="section">8.9 1D plotting (MGL)</h2>
+
+<p>These commands perform plotting of 1D data. 1D means that data depended from only 1 parameter like parametric curve {x(i),y(i),z(i)}, i=1...n. There are 5 generally different types of data representations: simple line plot (<a href="#plot">plot</a>), line plot with filling under it (<a href="#area">area</a>), stairs plot (<a href="#step">step</a>), bar plot (<a href="#bars">bars</a>, <a href="#barh">barh</a>) and vertical lines (<a href="#stem">stem</a>). Each type of plotting has similar interface. Most of plotting type has similar interface. There are 3D version and two 2D versions. One of last requires single array. The parameters of line and marks are specified by the string argument. If the string parameter is NULL then solid line with color from palette is used (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). Also there are some special 1d plots having slightly different interface: surface of curve rotation (<a href="#torus">torus</a>), chart (<a href="#chart">chart</a>) and error boxes (<a href="#error">error</a>), marks with variable size (<a href="#mark">mark</a>), tubes (<a href="#tube">tube</a>) and so on. See section <a href="mathgl_en_9.html#g_t1D-plot-sample">1D plot sample</a>, for sample code and picture.
+</p>
+<p>The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <var>xdat.nx=ydat.nx=zdat.nx</var>. If array <var>xdat</var> is not specified then its an automatic array is used with values equidistantly distributed along x. If array <var>zdat</var> is not specified then <var>zdat</var>[i] = <var>zval</var> is used (the default is at the bottom of the bounding box). String <var>stl</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>stl=''</code>) solid line with color from palette is used (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>).
+</p>
+<a name="index-plot"></a>
+<p><a name="plot"></a>
+</p><dl>
+<dt><a name="index-plot-1"></a><u>MGL command:</u> <b>plot</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-plot-2"></a><u>MGL command:</u> <b>plot</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-plot-3"></a><u>MGL command:</u> <b>plot</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws continuous lines between points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. See also <a href="#area">area</a>, <a href="#step">step</a>, <a href="#stem">stem</a>, <a href="#tube">tube</a>, <a href="#mark">mark</a>, <a href="#error">error</a>, <a href="#belt">belt</a>, <a href="#tens">tens</a>. See section <a href="mathgl_en_9.html#Plot-sample">Plot sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+<a name="index-radar"></a>
+<p><a name="radar"></a>
+</p><dl>
+<dt><a name="index-radar-1"></a><u>MGL command:</u> <b>radar</b><i> adat ['stl'='' <code>r=-1</code>]</i></dt>
+<dd><p>Draws radar chart which is continuous lines between points located on an radial lines (like plot in Polar coordinates). The plots are drawn for each row if one of the data is the matrix. Parameter <var>r</var> set the additional shift of data (i.e. the data <var>adat</var>+<var>r</var> is used instead of <var>adat</var>). If <code>r&lt;0</code> then <code>r=max(0, -min(adat)</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). By default (<code>stl=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="mathgl_en_1.html#Line-styles">Line styles</a>). If <var>pen</var> containt &lsquo;<samp>#</samp>&rsquo; symbol then &quot;grid&quot; (radial lines and circle for <var>r</var>) is drawn See also <a href="#plot">plot</a>. See section <a href="mathgl_en_9.html#Radar-sample">Radar sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-tens"></a>
+<p><a name="tens"></a>
+</p><dl>
+<dt><a name="index-tens-1"></a><u>MGL command:</u> <b>tens</b><i> ydat cdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tens-2"></a><u>MGL command:</u> <b>tens</b><i> xdat ydat cdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tens-3"></a><u>MGL command:</u> <b>tens</b><i> xdat ydat zdat cdat ['stl'='']</i></dt>
+<dd><p>Draws continuous lines between points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} with color defined by <var>cdat</var>[i] (look like tension plot). See also <a href="#plot">plot</a>, <a href="#mesh">mesh</a>, <a href="#fall">fall</a>. See section <a href="mathgl_en_9.html#Tens-sample">Tens sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-area"></a>
+<p><a name="area"></a>
+</p><dl>
+<dt><a name="index-area-1"></a><u>MGL command:</u> <b>area</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-area-2"></a><u>MGL command:</u> <b>area</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-area-3"></a><u>MGL command:</u> <b>area</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws continuous lines between points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} and fills it down to axis (to axis plane in 3D). You can use gradient filling if number of specified colors is equal to 2*number of curves. If string contain symbol &lsquo;<samp>a</samp>&rsquo; then lines are drawn one above another (like summation). See also <a href="#plot">plot</a>, <a href="#bars">bars</a>, <a href="#stem">stem</a>, <a href="#region">region</a>. See section <a href="mathgl_en_9.html#Area-sample">Area sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-region"></a>
+<p><a name="region"></a>
+</p><dl>
+<dt><a name="index-region-1"></a><u>MGL command:</u> <b>region</b><i> fdat gdat ['stl'='' <code>inside=off</code>]</i></dt>
+<dt><a name="index-region-2"></a><u>MGL command:</u> <b>region</b><i> xdat fdat gdat ['stl'='' <code>inside=off</code>]</i></dt>
+<dd><p>Fills area between curves {<var>xdat</var>[i], <var>fdat</var>[i]} and {<var>xdat</var>[i], <var>gdat</var>[i]}. Parameter  <code>inside=off</code> set to fill are with y1&lt;y&lt;y2 else the area with y2&lt;y&lt;y1 will be also filled. You can use gradient filling if number of specified colors is equal to 2*number of curves. See also <a href="#area">area</a>, <a href="#bars">bars</a>, <a href="#stem">stem</a>. See section <a href="mathgl_en_9.html#Region-sample">Region sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-stem"></a>
+<p><a name="stem"></a>
+</p><dl>
+<dt><a name="index-stem-1"></a><u>MGL command:</u> <b>stem</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-stem-2"></a><u>MGL command:</u> <b>stem</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-stem-3"></a><u>MGL command:</u> <b>stem</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws vertical lines from points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} to axis (to axis plane in 3D). See also <a href="#area">area</a>, <a href="#bars">bars</a>, <a href="#plot">plot</a>, <a href="#mark">mark</a>. See section <a href="mathgl_en_9.html#Stem-sample">Stem sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-bars"></a>
+<p><a name="bars"></a>
+</p><dl>
+<dt><a name="index-bars-1"></a><u>MGL command:</u> <b>bars</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-bars-2"></a><u>MGL command:</u> <b>bars</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-bars-3"></a><u>MGL command:</u> <b>bars</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws vertical bars from points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} to axis (to axis plane in 3D). If style contain symbol &lsquo;<samp>a</samp>&rsquo; then lines are drawn one above another. If string contain symbol &lsquo;<samp>f</samp>&rsquo; then waterfall chart is drawn for determining the cumulative effect of sequentially introduced positive or negative values. You can different colors for positive and negative values if number of specified colors is equal to 2*number of curves. See also <a href="#barh">barh</a>, <a href="#area">area</a>, <a href="#stem">stem</a>, <a href="#chart">chart</a>. See section <a href="mathgl_en_9.html#Bars-sample">Bars sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-barh"></a>
+<p><a name="barh"></a>
+</p><dl>
+<dt><a name="index-barh-1"></a><u>MGL command:</u> <b>barh</b><i> vdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-barh-2"></a><u>MGL command:</u> <b>barh</b><i> ydat vdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws horizontal bars from points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} to y-axis. If array <var>ydat</var> is not specified then its an automatic array is used with values equidistantly distributed along y. Marks at data points are not drawn. If style contain symbol &lsquo;<samp>a</samp>&rsquo; then lines are drawn one above another. If string contain symbol &lsquo;<samp>f</samp>&rsquo; then waterfall chart is drawn for determining the cumulative effect of sequentially introduced positive or negative values. You can different colors for positive and negative values if number of specified colors is equal to 2*number of curves.
+See also <a href="#bars">bars</a>. See section <a href="mathgl_en_9.html#Barh-sample">Barh sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-chart"></a>
+<p><a name="chart"></a>
+</p><dl>
+<dt><a name="index-chart-1"></a><u>MGL command:</u> <b>chart</b><i> adat ['col'='']</i></dt>
+<dd><p>The command draws colored stripes (boxes) for data in array <var>adat</var>. The number of stripes is equal to the number of rows in <var>adat</var> (equal to <var>a.ny</var>). The color of each next stripe is cyclically changed from colors specified in string <var>col</var> or in palette. Spaces in colors denote transparent &ldquo;color&rdquo;, i.e. if <var>col</var> contain space(s) then corresponding stripe(s) are not drawn. The stripe width is proportional to value of element in <var>a</var>. Chart is plotted only for data with non-negative elements. If string <var>col</var> have symbol &lsquo;<samp>#</samp>&rsquo; then black border lines are drawn. The most nice form the chart have in 3d (after rotation of coordinates) or in cylindrical coordinates (becomes so called Pie chart). See section <a href="mathgl_en_9.html#Chart-sample">Chart sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-step"></a>
+<p><a name="step"></a>
+</p><dl>
+<dt><a name="index-step-1"></a><u>MGL command:</u> <b>step</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-step-2"></a><u>MGL command:</u> <b>step</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-step-3"></a><u>MGL command:</u> <b>step</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws continuous stairs for points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. See also <a href="#plot">plot</a>, <a href="#stem">stem</a>, <a href="#tile">tile</a>, <a href="#boxs">boxs</a>. See section <a href="mathgl_en_9.html#Step-sample">Step sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-torus"></a>
+<p><a name="torus"></a>
+</p><dl>
+<dt><a name="index-torus-1"></a><u>MGL command:</u> <b>torus</b><i> zdat ['stl'='']</i></dt>
+<dt><a name="index-torus-2"></a><u>MGL command:</u> <b>torus</b><i> rdat zdat ['stl'='']</i></dt>
+<dd><p>Draws surface which is result of curve {<var>rdat</var>[i], <var>zdat</var>[i], <var>zdat</var>[i]} rotation around <a href="#axialdir">axialdir</a> axis. If array <var>rdat</var> is not specified then its an automatic array is used with values equidistantly distributed along x. See also <a href="#plot">plot</a>, <a href="#axial">axial</a>. See section <a href="mathgl_en_9.html#Torus-sample">Torus sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-tube"></a>
+<p><a name="tube"></a>
+</p><dl>
+<dt><a name="index-tube-1"></a><u>MGL command:</u> <b>tube</b><i> ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-2"></a><u>MGL command:</u> <b>tube</b><i> ydat <code>rval</code> ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-3"></a><u>MGL command:</u> <b>tube</b><i> xdat ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-4"></a><u>MGL command:</u> <b>tube</b><i> xdat ydat <code>rval</code> ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-5"></a><u>MGL command:</u> <b>tube</b><i> xdat ydat zdat rdat ['stl'='']</i></dt>
+<dt><a name="index-tube-6"></a><u>MGL command:</u> <b>tube</b><i> xdat ydat zdat <code>rval</code> ['stl'='']</i></dt>
+<dd><p>Draws tube with variable radius <var>rdat</var>[i] (or <var>rval</var>) at points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. See also <a href="#plot">plot</a>. See section <a href="mathgl_en_9.html#Tube-sample">Tube sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-mark"></a>
+<p><a name="mark"></a>
+</p><dl>
+<dt><a name="index-mark-1"></a><u>MGL command:</u> <b>mark</b><i> ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-mark-2"></a><u>MGL command:</u> <b>mark</b><i> xdat ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-mark-3"></a><u>MGL command:</u> <b>mark</b><i> xdat ydat zdat rdat ['stl'='']</i></dt>
+<dd><p>Draws  marks with size <var>rdat</var>[i]*<code>marksize</code> at points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. See also <a href="#plot">plot</a>, <a href="#textmark">textmark</a>, <a href="#stem">stem</a>, <a href="#error">error</a>. See section <a href="mathgl_en_9.html#Mark-sample">Mark sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-textmark"></a>
+<p><a name="textmark"></a>
+</p><dl>
+<dt><a name="index-textmark-1"></a><u>MGL command:</u> <b>textmark</b><i> ydat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-2"></a><u>MGL command:</u> <b>textmark</b><i> ydat rdat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-3"></a><u>MGL command:</u> <b>textmark</b><i> xdat ydat rdat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-4"></a><u>MGL command:</u> <b>textmark</b><i> xdat ydat zdat rdat 'txt' ['stl'='']</i></dt>
+<dd><p>Draws string <var>txt</var> as marks with size <var>rdat</var>[i]*<code>marksize</code> at points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. If array <var>rdat</var> is not specified then <var>rdat</var>[i] = 1. See also <a href="#plot">plot</a>, <a href="#mark">mark</a>, <a href="#stem">stem</a>. See section <a href="mathgl_en_9.html#Error-sample">Error sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-error"></a>
+<p><a name="error"></a>
+</p><dl>
+<dt><a name="index-error-1"></a><u>MGL command:</u> <b>error</b><i> ydat yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-error-2"></a><u>MGL command:</u> <b>error</b><i> xdat ydat yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-error-3"></a><u>MGL command:</u> <b>error</b><i> xdat ydat xerr yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws error boxes {<var>xerr</var>[i], <var>yerr</var>[i]} at points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zval</var>}. See also <a href="#plot">plot</a>. See section <a href="mathgl_en_9.html#TextMark-sample">TextMark sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-boxplot"></a>
+<p><a name="boxplot"></a>
+</p><dl>
+<dt><a name="index-boxplot-1"></a><u>MGL command:</u> <b>boxplot</b><i> adat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-boxplot-2"></a><u>MGL command:</u> <b>boxplot</b><i> xdat adat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws boxplot (also known as a box-and-whisker diagram) at points <var>xdat</var> in plane z=<code>zval</code> (by default is at the bottom of the bounding box). This is five-number summaries of data &lt;em&gt;adat&lt;/em&gt; (minimum, lower quartile (Q1), median (Q2), upper quartile (Q3) and maximum) along second (j-th) direction. See also <a href="#plot">plot</a>, <a href="#error">error</a>, <a href="#bars">bars</a>. See section <a href="mathgl_en_9.html#BoxPlot-sample">BoxPlot sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t2D-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-plotting-_0028MGL_0029-1"></a>
+<h2 class="section">8.10 2D plotting (MGL)</h2>
+
+<p>These commands perform plotting of 2D data. 2D means that data depend from 2 independent parameters like matrix <em>f(x_i,y_j), i=1...n, j=1...m</em>. There are 6 generally different types of data representations: simple mesh lines plot (<a href="#mesh">mesh</a>), surface plot (<a href="#surf">surf</a>), surface plot by boxes (<a href="#boxs">boxs</a>), surface plot by tiles (<a href="#tile">tile</a>), waterfall-like plot (<a href="#fall">fall</a>), belt plot (<a href="#belt">belt</a>), density plot (<a href="#dens">dens</a>), contour lines plot (<a href="#cont">cont</a>), solid contours plot (<a href="#contf">contf</a>) and its rotational figure (<a href="#axial">axial</a>). Commands <a href="#cont">cont</a>, <a href="#contf">contf</a> and <a href="#axial">axial</a> have variants for automatic and manual selection of level values for contours. Also there are commands for plotting data grid lines according to the data format (<a href="#grid">grid</a>) for enhancing density or contour plots. Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. See section <a href="mathgl_en_9.html#g_t2D-plot-sample">2D plot sample</a>, for sample code and picture.
+</p>
+<p>String parameter <var>sch</var> sets the color scheme (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>). Previous color scheme is used by default. The minor dimensions of arrays <var>xdat</var>, <var>ydat</var>, <var>zdat</var> should be equal <code>xdat.nx=zdat.nx &amp;&amp; ydat.nx=zdat.ny</code> or <code>xdat.nx=ydat.nx=zdat.nx &amp;&amp; xdat.ny=ydat.ny=zdat.ny</code>. Arrays <var>xdat</var> and <var>ydat</var> can be vectors (not matrices as <var>zdat</var>). If array <var>xdat</var>, <var>ydat</var> is not specified then its an automatic arrays are used with values equidistantly distributed along x, y. Graphics are plotted for each z-slice of the data.
+</p>
+<a name="index-surf"></a>
+<p><a name="surf"></a>
+</p><dl>
+<dt><a name="index-surf-1"></a><u>MGL command:</u> <b>surf</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-surf-2"></a><u>MGL command:</u> <b>surf</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. See also <a href="#mesh">mesh</a>, <a href="#dens">dens</a>, <a href="#belt">belt</a>, <a href="#tile">tile</a>, <a href="#boxs">boxs</a>, <a href="#surfc">surfc</a>, <a href="#surfa">surfa</a>. See section <a href="mathgl_en_9.html#Surf-sample">Surf sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-mesh"></a>
+<p><a name="mesh"></a>
+</p><dl>
+<dt><a name="index-mesh-1"></a><u>MGL command:</u> <b>mesh</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-mesh-2"></a><u>MGL command:</u> <b>mesh</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws mesh lines for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. See also <a href="#surf">surf</a>, <a href="#fall">fall</a>, <a href="#meshnum">meshnum</a>, <a href="#cont">cont</a>, <a href="#tens">tens</a>. See section <a href="mathgl_en_9.html#Mesh-sample">Mesh sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-fall"></a>
+<p><a name="fall"></a>
+</p><dl>
+<dt><a name="index-fall-1"></a><u>MGL command:</u> <b>fall</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-fall-2"></a><u>MGL command:</u> <b>fall</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws fall lines for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. If <var>sch</var> contain &lsquo;<samp>x</samp>&rsquo; then lines are drawn along x-direction else (by default) lines are drawn along y-direction. See also <a href="#belt">belt</a>, <a href="#mesh">mesh</a>, <a href="#tens">tens</a>, <a href="#meshnum">meshnum</a>. See section <a href="mathgl_en_9.html#Fall-sample">Fall sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-belt"></a>
+<p><a name="belt"></a>
+</p><dl>
+<dt><a name="index-belt-1"></a><u>MGL command:</u> <b>belt</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-belt-2"></a><u>MGL command:</u> <b>belt</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws belts for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. If <var>sch</var> contain &lsquo;<samp>x</samp>&rsquo; then belts are drawn along x-direction else (by default) lines are drawn along y-direction. See also <a href="#fall">fall</a>, <a href="#surf">surf</a>, <a href="#plot">plot</a>, <a href="#meshnum">meshnum</a>. See section <a href="mathgl_en_9.html#Belt-sample">Belt sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-boxs"></a>
+<p><a name="boxs"></a>
+</p><dl>
+<dt><a name="index-boxs-1"></a><u>MGL command:</u> <b>boxs</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-boxs-2"></a><u>MGL command:</u> <b>boxs</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws vertical boxes for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. See also <a href="#surf">surf</a>, <a href="#dens">dens</a>, <a href="#tile">tile</a>, <a href="#step">step</a>. See section <a href="mathgl_en_9.html#Boxs-sample">Boxs sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-tile"></a>
+<p><a name="tile"></a>
+</p><dl>
+<dt><a name="index-tile-1"></a><u>MGL command:</u> <b>tile</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-tile-2"></a><u>MGL command:</u> <b>tile</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws horizontal tiles for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Such plot can be used as 3d generalization of <a href="#step">step</a>. See also <a href="#surf">surf</a>, <a href="#boxs">boxs</a>, <a href="#step">step</a>, <a href="#tiles">tiles</a>. See section <a href="mathgl_en_9.html#Tile-sample">Tile sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-dens"></a>
+<p><a name="dens"></a>
+</p><dl>
+<dt><a name="index-dens-1"></a><u>MGL command:</u> <b>dens</b><i> zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-dens-2"></a><u>MGL command:</u> <b>dens</b><i> xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws density plot for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var>. See also <a href="#surf">surf</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>, <a href="#boxs">boxs</a>, <a href="#tile">tile</a>, <code>dens[xyz]</code>. See section <a href="mathgl_en_9.html#Dens-sample">Dens sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-cont"></a>
+<p><a name="cont"></a>
+</p><dl>
+<dt><a name="index-cont-1"></a><u>MGL command:</u> <b>cont</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-cont-2"></a><u>MGL command:</u> <b>cont</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws contour lines for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var> (or for <var>z</var>=<var>vdat</var>[k] if <code>zval=nan</code>). Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k. If string <var>stl</var> contain &rsquo;t&rsquo; (or &rsquo;T&rsquo;) symbol then contour labels will be drawn below (or above) the contours. See also <a href="#dens">dens</a>, <a href="#contf">contf</a>, <a href="#contd">contd</a>, <a href="#axial">axial</a>, <code>cont[xyz]</code>. See section <a href="mathgl_en_9.html#Cont-sample">Cont sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cont-3"></a><u>MGL command:</u> <b>cont</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-cont-4"></a><u>MGL command:</u> <b>cont</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see, <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-contf"></a>
+<p><a name="contf"></a>
+</p><dl>
+<dt><a name="index-contf-1"></a><u>MGL command:</u> <b>contf</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-contf-2"></a><u>MGL command:</u> <b>contf</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws solid (or filled) contours for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var> (or for <var>z</var>=<var>vdat</var>[k] if <code>zval=nan</code>). Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k (must be <code>vdat.nx&gt;2</code>). See also <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contd">contd</a>, <code>contf[xyz]</code>. See section <a href="mathgl_en_9.html#ContF-sample">ContF sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contf-3"></a><u>MGL command:</u> <b>contf</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-contf-4"></a><u>MGL command:</u> <b>contf</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see, <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-contd"></a>
+<p><a name="contd"></a>
+</p><dl>
+<dt><a name="index-contd-1"></a><u>MGL command:</u> <b>contd</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-contd-2"></a><u>MGL command:</u> <b>contd</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws solid (or filled) contours for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var> (or for <var>z</var>=<var>vdat</var>[k] if <code>zval=nan</code>) with manual colors. Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k (must be <code>vdat.nx&gt;2</code>). The color of k-th contour is <code>sch[k%strlen(sch)]</code>. See also <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>. See section <a href="mathgl_en_9.html#ContD-sample">ContD sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contd-3"></a><u>MGL command:</u> <b>contd</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-contd-4"></a><u>MGL command:</u> <b>contd</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see, <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-axial"></a>
+<p><a name="axial"></a>
+</p><dl>
+<dt><a name="index-axial-1"></a><u>MGL command:</u> <b>axial</b><i> vdat zdat ['sch'='']</i></dt>
+<dt><a name="index-axial-2"></a><u>MGL command:</u> <b>axial</b><i> vdat xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws surface which is result of contour plot rotation surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. If string <var>sch</var> contain symbols &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo; then rotation axis <code>axialdir</code> will be set to specified direction. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#cont">cont</a>, <a href="#contf">contf</a>, <a href="#torus">torus</a>, <a href="#surf3">surf3</a>. See section <a href="mathgl_en_9.html#Axial-sample">Axial sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axial-3"></a><u>MGL command:</u> <b>axial</b><i> zdat ['sch'='' <code>num=3</code>]</i></dt>
+<dt><a name="index-axial-4"></a><u>MGL command:</u> <b>axial</b><i> xdat ydat zdat ['sch'='' <code>num=3</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see, <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-grad"></a>
+<p><a name="grad"></a>
+</p><dl>
+<dt><a name="index-grad-1"></a><u>MGL command:</u> <b>grad</b><i> pdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-grad-2"></a><u>MGL command:</u> <b>grad</b><i> xdat ydat pdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-grad-3"></a><u>MGL command:</u> <b>grad</b><i> xdat ydat zdat pdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Draws gradient lines for scalar field <var>pdat</var> specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j]} or {<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]}. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. Number of lines is proportional to <var>num</var>. If <var>num</var>&lt;0 then lines start from borders only. See also <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#dens3">dens3</a>, <a href="#cont3">cont3</a>, <a href="#flow">flow</a>. See section <a href="mathgl_en_9.html#Grad-sample">Grad sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+<a name="index-grid2"></a>
+<p><a name="grid2"></a>
+</p><dl>
+<dt><a name="index-grid2-1"></a><u>MGL command:</u> <b>grid2</b><i> zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-grid2-2"></a><u>MGL command:</u> <b>grid2</b><i> xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws grid lines for density plot of surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var>. See also <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="g_t3D-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-plotting-_0028MGL_0029-1"></a>
+<h2 class="section">8.11 3D plotting (MGL)</h2>
+
+<p>These commands perform plotting of 3D data. 3D means that data depend from 3 independent parameters like matrix <em>f(x_i,y_j,z_k), i=1...n, j=1...m, k=1...l</em>. There are 4 generally different types of data representations: isosurface or surface of constant value (<a href="#surf3">surf3</a>), density plot at slices (Dens3), contour lines plot at slices (<a href="#cont3">cont3</a>), solid contours plot at slices (<a href="#contf3">contf3</a>) and cloud-like plot (<a href="#cloud">cloud</a>). Commands <a href="#surf3">surf3</a>, <a href="#cont3">cont3</a> and <a href="#contf3">contf3</a> have variants for automatic and manual selection of level values for surfaces/contours. Also there are commands for plotting data grid lines according to the data format (<a href="#grid3">grid3</a>) for enhancing density or contour plots. Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. See section <a href="mathgl_en_9.html#g_t3D-plot-sample">3D plot sample</a>, for sample code and picture.
+</p>
+<p>String paramter <var>sch</var> sets the color scheme (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>). Previous color scheme is used by default. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). If array <var>xdat</var>, <var>ydat</var>, <var>zdat</var> is not specified then its an automatic arrays are used with values equidistantly distributed along x, y, z.
+</p>
+
+<a name="index-surf3"></a>
+<p><a name="surf3"></a>
+</p><dl>
+<dt><a name="index-surf3-1"></a><u>MGL command:</u> <b>surf3</b><i> adat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3-2"></a><u>MGL command:</u> <b>surf3</b><i> xdat ydat zdat adat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Draws isosurface plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) at <var>a</var>(x,y,z)=<var>val</var>. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#cloud">cloud</a>, <a href="#dens3">dens3</a>, <a href="#surf3c">surf3c</a>, <a href="#surf3a">surf3a</a>, <a href="#axial">axial</a>. See section <a href="mathgl_en_9.html#Surf3-sample">Surf3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3-3"></a><u>MGL command:</u> <b>surf3</b><i> adat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3-4"></a><u>MGL command:</u> <b>surf3</b><i> xdat ydat zdat adat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in color range (see <a href="#caxis">caxis</a>) isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-dens3"></a>
+<p><a name="dens3"></a>
+</p><dl>
+<dt><a name="index-dens3-1"></a><u>MGL command:</u> <b>dens3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-dens3-2"></a><u>MGL command:</u> <b>dens3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Draws density plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Density is plotted at slice <var>sval</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. If string <var>stl</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. See also <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a>, <a href="#dens">dens</a>, <a href="#grid3">grid3</a>. See section <a href="mathgl_en_9.html#Dens3-sample">Dens3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-densa"></a>
+<p><a name="densa"></a>
+</p><dl>
+<dt><a name="index-densa-1"></a><u>MGL command:</u> <b>densa</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-densa-2"></a><u>MGL command:</u> <b>densa</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Draws density plots at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-cont3"></a>
+<p><a name="cont3"></a>
+</p><dl>
+<dt><a name="index-cont3-1"></a><u>MGL command:</u> <b>cont3</b><i> vdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-cont3-2"></a><u>MGL command:</u> <b>cont3</b><i> vdat xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Draws contour plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Contours are plotted for values specified in array <var>vdat</var> at slice <var>sval</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. If string <var>stl</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. If string <var>stl</var> contain &rsquo;t&rsquo; (or &rsquo;T&rsquo;) symbol then contour labels will be drawn below (or above) the contours. See also <a href="#dens3">dens3</a>, <a href="#contf3">contf3</a>, <a href="#cont">cont</a>, <a href="#grid3">grid3</a>. See section <a href="mathgl_en_9.html#Cont3-sample">Cont3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cont3-3"></a><u>MGL command:</u> <b>cont3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-cont3-4"></a><u>MGL command:</u> <b>cont3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-conta"></a>
+<p><a name="conta"></a>
+</p><dl>
+<dt><a name="index-conta-1"></a><u>MGL command:</u> <b>conta</b><i> adat ['sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-conta-2"></a><u>MGL command:</u> <b>conta</b><i> xdat ydat zdat adat ['sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Draws contour plots at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-contf3"></a>
+<p><a name="contf3"></a>
+</p><dl>
+<dt><a name="index-contf3-1"></a><u>MGL command:</u> <b>contf3</b><i> vdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-contf3-2"></a><u>MGL command:</u> <b>contf3</b><i> vdat xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Draws solid contour plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Contours are plotted for values specified in array <var>vdat</var> at slice <var>sval</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. If string <var>stl</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. See also <a href="#dens3">dens3</a>, <a href="#cont3">cont3</a>, <a href="#contf">contf</a>, <a href="#grid3">grid3</a>. See section <a href="mathgl_en_9.html#ContF3-sample">ContF3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contf3-3"></a><u>MGL command:</u> <b>contf3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-contf3-4"></a><u>MGL command:</u> <b>contf3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-contfa"></a>
+<p><a name="contfa"></a>
+</p><dl>
+<dt><a name="index-contfa-1"></a><u>MGL command:</u> <b>contfa</b><i> adat ['sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-contfa-2"></a><u>MGL command:</u> <b>contfa</b><i> xdat ydat zdat adat ['sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Draws solid contour plots at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-grid3"></a>
+<p><a name="grid3"></a>
+</p><dl>
+<dt><a name="index-grid3-1"></a><u>MGL command:</u> <b>grid3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-grid3-2"></a><u>MGL command:</u> <b>grid3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Draws grid for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Grid is plotted at slice <var>sval</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. See also <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a>, <a href="#dens3">dens3</a>, <a href="#grid2">grid2</a>. See section <a href="mathgl_en_9.html#Dens3-sample">Dens3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-grida"></a>
+<p><a name="grida"></a>
+</p><dl>
+<dt><a name="index-grida-1"></a><u>MGL command:</u> <b>grida</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-grida-2"></a><u>MGL command:</u> <b>grida</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Draws grids at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-cloud"></a>
+<p><a name="cloud"></a>
+</p><dl>
+<dt><a name="index-cloud-1"></a><u>MGL command:</u> <b>cloud</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-cloud-2"></a><u>MGL command:</u> <b>cloud</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Draws cloud for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). This plot is a set of cubes with color and transparency proportional to value of <var>adat</var>. The resulting plot is like cloud &ndash; low value is transparent but higher ones are not. The number of plotting cells depend on <a href="#meshnum">meshnum</a>. Paramater <var>alpha</var> changes the overall transparency of plot. See also <a href="#surf3">surf3</a>. See section <a href="mathgl_en_9.html#Cloud-sample">Cloud sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-beam"></a>
+<p><a name="beam"></a>
+</p><dl>
+<dt><a name="index-beam-1"></a><u>MGL command:</u> <b>beam</b><i> tr g1 g2 adat <code>rval</code> ['sch'='' <code>flag=0 num=3</code>]</i></dt>
+<dd><p>Draws  <var>num</var>-th uniformly distributed in color range (see <code>caxis</code>) isosurfaces for 3d array <var>adat</var>. This is special kind of plot for <var>adat</var> specified in accompanied coordinates along curve <var>tr</var> with orts <var>g1</var>, <var>g2</var> and with transverse scale <var>rval</var>. Variable <var>flag</var> is bitwise: &lsquo;<samp>0x1</samp>&rsquo; - draw in accompanied (not laboratory) coordinates; &lsquo;<samp>0x2</samp>&rsquo; - draw projection to <em>\rho-z</em> plane; &lsquo;<samp>0x4</samp>&rsquo; - draw normalized in each slice field. The x-size of data arrays <var>tr</var>, <var>g1</var>, <var>g2</var> must be nx&gt;2. The y-size of data arrays <var>tr</var>, <var>g1</var>, <var>g2</var> and z-size of the data array <var>a</var> must be equal. See also <a href="#surf3">surf3</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Dual-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dual-plotting-_0028MGL_0029-1"></a>
+<h2 class="section">8.12 Dual plotting (MGL)</h2>
+
+<p>These plotting commands draw <em>two matrix</em> simultaneously. There are 5 generally different types of data representations: surface or isosurface colored by other data (<a href="#surfc">surfc</a>, <a href="#surf3c">surf3c</a>), surface or isosurface transpared by other data (<a href="#surfa">surfa</a>, <a href="#surf3a">surf3a</a>), tiles with variable size (<a href="#tiles">tiles</a>), mapping diagram (<a href="#map">map</a>), STFA diagram (<a href="#stfa">stfa</a>). Commands <a href="#surf3a">surf3a</a> and <a href="#surf3c">surf3c</a> have variants for automatic and manual selection of level values for isosurfaces. Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array.
+</p>
+<p>String paramter <var>sch</var> sets the color scheme (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>). Previous color scheme is used by default. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). If array <var>xdat</var>, <var>ydat</var>, <var>zdat</var> is not specified then its an automatic arrays are used with values equidistantly distributed along x, y, z.
+</p>
+<a name="index-surfc"></a>
+<p><a name="surfc"></a>
+</p><dl>
+<dt><a name="index-surfc-1"></a><u>MGL command:</u> <b>surfc</b><i> zdat cdat ['sch'='']</i></dt>
+<dt><a name="index-surfc-2"></a><u>MGL command:</u> <b>surfc</b><i> xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Draws surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} and color it by matrix <var>cdat</var>[i,j]. See also <a href="#surf">surf</a>, <a href="#surfa">surfa</a>, <a href="#surf3c">surf3c</a>. See section <a href="mathgl_en_9.html#SurfC-sample">SurfC sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-surf3c"></a>
+<p><a name="surf3c"></a>
+</p><dl>
+<dt><a name="index-surf3c-1"></a><u>MGL command:</u> <b>surf3c</b><i> adat cdat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3c-2"></a><u>MGL command:</u> <b>surf3c</b><i> xdat ydat zdat adat cdat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Draws isosurface plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) at <var>a</var>(x,y,z)=<var>val</var>. It is mostly the same as <a href="#surf3">surf3</a> command but the color of isosurface depends on values of array <var>cdat</var>. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#surf3">surf3</a>, <a href="#surfc">surfc</a>, <a href="#surf3a">surf3a</a>. See section <a href="mathgl_en_9.html#Surf3C-sample">Surf3C sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3c-3"></a><u>MGL command:</u> <b>surf3c</b><i> adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3c-4"></a><u>MGL command:</u> <b>surf3c</b><i> xdat ydat zdat adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in color range (see <code>caxis</code>) isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-surfa"></a>
+<p><a name="surfa"></a>
+</p><dl>
+<dt><a name="index-surfa-1"></a><u>MGL command:</u> <b>surfa</b><i> zdat cdat ['sch'='']</i></dt>
+<dt><a name="index-surfa-2"></a><u>MGL command:</u> <b>surfa</b><i> xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Draws surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} and transparent it by matrix <var>cdat</var>[i,j]. See also <a href="#surf">surf</a>, <a href="#surfc">surfc</a>, <a href="#surf3a">surf3a</a>, <a href="#tiles">tiles</a>. See section <a href="mathgl_en_9.html#SurfA-sample">SurfA sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-surf3a"></a>
+<p><a name="surf3a"></a>
+</p><dl>
+<dt><a name="index-surf3a-1"></a><u>MGL command:</u> <b>surf3a</b><i> adat cdat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3a-2"></a><u>MGL command:</u> <b>surf3a</b><i> xdat ydat zdat adat cdat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Draws isosurface plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) at <var>a</var>(x,y,z)=<var>val</var>. It is mostly the same as <a href="#surf3">surf3</a> command but the transparency of isosurface depends on values of array <var>cdat</var>. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#surf3">surf3</a>, <a href="#surfa">surfa</a>, <a href="#surf3c">surf3c</a>. See section <a href="mathgl_en_9.html#Surf3A-sample">Surf3A sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3a-3"></a><u>MGL command:</u> <b>surf3a</b><i> adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3a-4"></a><u>MGL command:</u> <b>surf3a</b><i> xdat ydat zdat adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in color range (see <code>caxis</code>) isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-tiles"></a>
+<p><a name="tiles"></a>
+</p><dl>
+<dt><a name="index-tiles-1"></a><u>MGL command:</u> <b>tiles</b><i> zdat rdat ['sch'='']</i></dt>
+<dt><a name="index-tiles-2"></a><u>MGL command:</u> <b>tiles</b><i> xdat ydat zdat rdat ['sch'='']</i></dt>
+<dd><p>Draws horizontal tiles for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. It is mostly the same as <a href="#tile">tile</a> but the size of tiles is determined by <var>rdat</var> array. See also <a href="#surfa">surfa</a>, <a href="#tile">tile</a>. See section <a href="mathgl_en_9.html#TileS-sample">TileS sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-map"></a>
+<p><a name="map"></a>
+</p><dl>
+<dt><a name="index-map-1"></a><u>MGL command:</u> <b>map</b><i> udat vdat ['sch'='' <code>pnts=on</code>]</i></dt>
+<dt><a name="index-map-2"></a><u>MGL command:</u> <b>map</b><i> xdat ydat udat vdat ['sch'='' <code>pnts=on</code>]</i></dt>
+<dd><p>Draws mapping plot for matrixes {<var>udat</var>, <var>vdat</var> } which parametrically depend on coordinates <var>xdat</var>, <var>ydat</var>. The previous position of the cell (point) is marked by color. Height is proportional to Jacobian(udat,vdat). This plot is like Arnold diagram ???. If <code>pnts=off</code> then face is drawn otherwise the color ball at matrix knots are drawn. The size of <var>udat</var> and <var>vdat</var> must be the same. See section <a href="mathgl_en_9.html#Map-sample">Map sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-stfa"></a>
+<p><a name="stfa"></a>
+</p><dl>
+<dt><a name="index-stfa-1"></a><u>MGL command:</u> <b>stfa</b><i> re im <code>dn</code> ['sch'='' <code>pnts=on</code>]</i></dt>
+<dt><a name="index-stfa-2"></a><u>MGL command:</u> <b>stfa</b><i> xdat ydat re im <code>dn</code> ['sch'='' <code>pnts=on</code>]</i></dt>
+<dd><p>Draws spectrogram of complex array <var>re</var>+i*<code>im</code> for Fourier size of <var>dn</var> points at plane <var>z=zVal</var>. Parameter <var>dn</var> is arbitrary even integer. For example in 1D case, result is density plot of data <em>res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn</em> with size {int(nx/dn), dn, ny}. See section <a href="mathgl_en_9.html#STFA-sample">STFA sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+
+
+<hr size="6">
+<a name="Vector-fields-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vector-fields-_0028MGL_0029-1"></a>
+<h2 class="section">8.13 Vector fields (MGL)</h2>
+
+<p>These commands perform plotting of 2D and 3D vector fields. There are 6 generally different types of vector fields representations: simple vector field (<a href="#vect">vect</a>), vector field by dew-drops (<a href="#dew">dew</a>), flow threads (<a href="#flow">flow</a>), flow pipes (<a href="#pipe">pipe</a>), vectors along a curve (<a href="#traj">traj</a>). Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. Parameters of color scheme are specified by the string argument. See section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>.
+</p>
+<p>The color is specified by the string argument <var>sch</var>. Previous color scheme is used by default. Parameter <var>flag</var> setup the hachures (arrows). It is combination of values: <code>1</code> for drawing bi-color arrow, <code>2</code> for drawing fixed length arrows, <code>4</code> for drawing arrows to the cell point, <code>8</code> for drawing arrows with center at cell point, <code>16</code> for drawing hachures with dots instead of arrows. 
+</p>
+<p>The size of <var>udat</var>, <var>vdat</var> and <var>wdat</var> must be equal. The minor dimensions of arrays <var>xdat</var>, <var>ydat</var>, <var>zdat</var> and <var>udat</var> must be equal too. Arrays <var>xdat</var>, <var>ydat</var> and <var>zdat</var> can be vectors (not matrices as <var>udat</var>). The graphics is plotted for each z slice of <var>udat</var>, <var>vdat</var> for 2D case.
+</p>
+<a name="index-traj"></a>
+<p><a name="traj"></a>
+</p><dl>
+<dt><a name="index-traj-1"></a><u>MGL command:</u> <b>traj</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan len=0</code>]</i></dt>
+<dt><a name="index-traj-2"></a><u>MGL command:</u> <b>traj</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>len=0</code>]</i></dt>
+<dd><p>Draws vectors {<var>udat</var>, <var>vdat</var>, <var>wdat</var>} along a curve <var>xdat</var>, <var>ydat</var>, <var>zdat</var>. The length and color of arrows are proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See also <code>vect</code>. See section <a href="mathgl_en_9.html#Traj-sample">Traj sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-vect"></a>
+<p><a name="vect"></a>
+</p><dl>
+<dt><a name="index-vect-1"></a><u>MGL command:</u> <b>vect</b><i> udat vdat ['sch'='' <code>zval=nan flag=0</code>]</i></dt>
+<dt><a name="index-vect-2"></a><u>MGL command:</u> <b>vect</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan flag=0</code>]</i></dt>
+<dd><p>Draws plane vector field plot for the field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zval</var>. The length and color of arrows are proportional to <em>\sqrtudat^2+vdat^2</em>. The number of arrows depend on <a href="#meshnum">meshnum</a>. See also <a href="#flow">flow</a>, <a href="#dew">dew</a>, <a href="#vectc">vectc</a>. See section <a href="mathgl_en_9.html#Vect-sample">Vect sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vect-3"></a><u>MGL command:</u> <b>vect</b><i> udat vdat wdat ['sch'='' <code>flag=0</code>]</i></dt>
+<dt><a name="index-vect-4"></a><u>MGL command:</u> <b>vect</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>flag=0</code>]</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the length and color of arrows are proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mathgl_en_9.html#Vect-3D-sample">Vect 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-vectc"></a>
+<p><a name="vectc"></a>
+</p><dl>
+<dt><a name="index-vectc-1"></a><u>MGL command:</u> <b>vectc</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-vectc-2"></a><u>MGL command:</u> <b>vectc</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws plane vector field plot for the field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zVal</var>. The color of hachures is proportional to <em>\sqrtudat^2+vdat^2</em>. The number of hachures depend on <var>meshnum</var>. See also <code>vect, flow, pipe, dew</code>. See section <a href="mathgl_en_9.html#VectC-sample">VectC sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vectc-3"></a><u>MGL command:</u> <b>vectc</b><i> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-vectc-4"></a><u>MGL command:</u> <b>vectc</b><i> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the color of hachures is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mathgl_en_9.html#VectC-3D-sample">VectC 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-vectl"></a>
+<p><a name="vectl"></a>
+</p><dl>
+<dt><a name="index-vectl-1"></a><u>MGL command:</u> <b>vectl</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-vectl-2"></a><u>MGL command:</u> <b>vectl</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws plane vector field plot for the field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zVal</var>. The length of hachures is proportional to <em>\sqrtudat^2+vdat^2</em>. The number of hachures depend on <var>meshnum</var>. See also <code>vectc, flow, pipe, dew</code>. See section <a href="mathgl_en_9.html#Vect-sample">Vect sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vectl-3"></a><u>MGL command:</u> <b>vectl</b><i> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-vectl-4"></a><u>MGL command:</u> <b>vectl</b><i> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the length of hachures is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mathgl_en_9.html#VectL-3D-sample">VectL 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-dew"></a>
+<p><a name="dew"></a>
+</p><dl>
+<dt><a name="index-dew-1"></a><u>MGL command:</u> <b>dew</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-dew-2"></a><u>MGL command:</u> <b>dew</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws dew-drops for plane vector field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zval</var>. The color of drops is proportional to <em>\sqrtudat^2+vdat^2</em>. The number of drops depend on <a href="#meshnum">meshnum</a>. Note that this is very expensive plot in memory usage and creation time! See also <a href="#vect">vect</a>. See section <a href="mathgl_en_9.html#Dew-sample">Dew sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-flow"></a>
+<p><a name="flow"></a>
+</p><dl>
+<dt><a name="index-flow-1"></a><u>MGL command:</u> <b>flow</b><i> udat vdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-flow-2"></a><u>MGL command:</u> <b>flow</b><i> xdat ydat udat vdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dd><p>Draws plane flow threads for the vector field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zVal</var>. Number of threads is proportional to <var>num</var>. The color of lines is proportional to <em>\sqrtudat^2+vdat^2</em>. Warm color corresponds to normal flow (like attractor). Cold one corresponds to inverse flow (like source). See also <code>vect, vectc, pipe</code>. See section <a href="mathgl_en_9.html#Flow-sample">Flow sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-3"></a><u>MGL command:</u> <b>flow</b><i> udat vdat wdat ['sch'='' <code>num=3</code>]</i></dt>
+<dt><a name="index-flow-4"></a><u>MGL command:</u> <b>flow</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>num=3</code>]</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the color is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mathgl_en_9.html#Flow-3D-sample">Flow 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-5"></a><u>MGL command:</u> <b>flow</b><i> <code>x0 y0</code> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-flow-6"></a><u>MGL command:</u> <b>flow</b><i> <code>x0 y0</code> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws plane flow threads for the vector field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> from point {<var>x0</var>, <var>y0</var>} at level <var>z=zVal</var>. The color of lines is proportional to <em>\sqrtudat^2+vdat^2</em>. Warm color corresponds to normal flow (like attractor). Cold one corresponds to inverse flow (like source). See also <code>vect, vectc, pipe</code>. See section <a href="mathgl_en_9.html#Flow-sample">Flow sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-7"></a><u>MGL command:</u> <b>flow</b><i> <code>x0 y0 z0</code> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-flow-8"></a><u>MGL command:</u> <b>flow</b><i> <code>x0 y0 z0</code> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>Draws flow thread from point {<var>x0</var>, <var>y0</var>, <var>z0</var>}. Arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the color is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mathgl_en_9.html#Flow-3D-sample">Flow 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+<a name="index-pipe"></a>
+<p><a name="pipe"></a>
+</p><dl>
+<dt><a name="index-pipe-1"></a><u>MGL command:</u> <b>pipe</b><i> udat vdat ['sch'='' <code>r0=0.05 num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-pipe-2"></a><u>MGL command:</u> <b>pipe</b><i> xdat ydat udat vdat ['sch'='' <code>r0=0.05 num=5 zval=nan</code>]</i></dt>
+<dd><p>Draws plane flow pipes for the vector field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zVal</var>. Number of pipes is proportional to <var>num</var>. The color of pipes is proportional to <em>\sqrtudat^2+vdat^2</em>. Warm color corresponds to normal flow (like attractor). Cold one corresponds to inverse flow (like source). Parameter <var>r0</var> set the base pipe radius. If <var>r0</var>&lt;0 then pipe radius is inverse proportional to amplitude. The size of <var>ax</var> and <var>ay</var> must be equal. See also <code>vect, vectc, pipe</code>. See section <a href="mathgl_en_9.html#Pipe-sample">Pipe sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-pipe-3"></a><u>MGL command:</u> <b>pipe</b><i> udat vdat wdat ['sch'='' <code>r0=0.05 num=3</code>]</i></dt>
+<dt><a name="index-pipe-4"></a><u>MGL command:</u> <b>pipe</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>r0=0.05 num=3</code>]</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the color is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mathgl_en_9.html#Pipe-3D-sample">Pipe 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Other-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-fields-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Other-plotting-_0028MGL_0029-1"></a>
+<h2 class="section">8.14 Other plotting (MGL)</h2>
+
+<p>These commands perform miscelaneous plotting. There is unstructured data points plots (Dots), surface reconstruction (Crust), surfaces on the triangular mesh (TriPlot) or quadrangular mesh (QuadPlot), textual formula plotting (Plots by formula), data plots at edges (Dens[XYZ], Cont[XYZ], ContF[XYZ]), simple plot (SimplePlot). Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. Parameters of color scheme are specified by the string argument. See section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>.
+</p>
+<a name="index-densx"></a>
+<a name="index-densy"></a>
+<a name="index-densz"></a>
+<p><a name="densz"></a> <a name="densy"></a> <a name="densx"></a>
+</p><dl>
+<dt><a name="index-densx-1"></a><u>MGL command:</u> <b>densx</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dt><a name="index-densy-1"></a><u>MGL command:</u> <b>densy</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dt><a name="index-densz-1"></a><u>MGL command:</u> <b>densz</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dd><p>These plotting commands draw density plot in x, y or z plain. If <var>dat</var> is a tensor (3-dimensional data) then interpolation to a given <var>val</var> is performed. These commands are useful for creating projections of the 3D data array to the bounding box. See also <code>cont[xyz], contf[xyz]</code>, <a href="#dens">dens</a>. See section <a href="mathgl_en_9.html#Dens-projection-sample">Dens projection sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-contx"></a>
+<a name="index-conty"></a>
+<a name="index-contz"></a>
+<p><a name="contz"></a> <a name="conty"></a> <a name="contx"></a>
+</p><dl>
+<dt><a name="index-contx-1"></a><u>MGL command:</u> <b>contx</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-conty-1"></a><u>MGL command:</u> <b>conty</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contz-1"></a><u>MGL command:</u> <b>contz</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dd><p>These plotting commands draw contour lines in x, y or z plain. If <var>dat</var> is a tensor (3-dimensional data) then interpolation to a given <var>val</var> is performed. These commands are useful for creating projections of the 3D data array to the bounding box. See also <code>dens[xyz], contf[xyz]</code>, <a href="#cont">cont</a>. See section <a href="mathgl_en_9.html#Cont-projection-sample">Cont projection sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-contfx"></a>
+<a name="index-contfy"></a>
+<a name="index-contfz"></a>
+<p><a name="contfz"></a> <a name="contfy"></a> <a name="contfx"></a>
+</p><dl>
+<dt><a name="index-contfx-1"></a><u>MGL command:</u> <b>contfx</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contfy-1"></a><u>MGL command:</u> <b>contfy</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contfz-1"></a><u>MGL command:</u> <b>contfz</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dd><p>These plotting commands draw solid contours in x, y or z plain. If <var>dat</var> is a tensor (3-dimensional data) then interpolation to a given <var>val</var> is performed. These commands are useful for creating projections of the 3D data array to the bounding box. See also <code>dens[xyz], cont[xyz]</code>, <a href="#contf">contf</a>.
+</p></dd></dl>
+
+<a name="index-dots"></a>
+<p><a name="dots"></a>
+</p><dl>
+<dt><a name="index-dots-1"></a><u>MGL command:</u> <b>dots</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-dots-2"></a><u>MGL command:</u> <b>dots</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Draws the arbitrary placed points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Variable <var>adat</var>[i] set transparency for dots. See also <a href="#crust">crust</a>, <a href="#mark">mark</a>, <a href="#plot">plot</a>. See section <a href="mathgl_en_9.html#Dots-sample">Dots sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-crust"></a>
+<p><a name="crust"></a>
+</p><dl>
+<dt><a name="index-crust-1"></a><u>MGL command:</u> <b>crust</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Reconstructs and draws the surface for arbitrary placed points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#dots">dots</a>, <a href="#triplot">triplot</a>. See section <a href="mathgl_en_9.html#Crust-sample">Crust sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-triplot"></a>
+<p><a name="triplot"></a>
+</p><dl>
+<dt><a name="index-triplot-1"></a><u>MGL command:</u> <b>triplot</b><i> idat xdat ydat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-triplot-2"></a><u>MGL command:</u> <b>triplot</b><i> idat xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-triplot-3"></a><u>MGL command:</u> <b>triplot</b><i> idat xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Draws the surface of triangles. Triangle vertexes are set by indexes <var>idat</var> of data points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. First dimensions of <var>idat</var> must be 3 or greater. See also <code>dots, crust, quadplot</code>. Parameter <var>cdat</var> set the colors of triangles (if <var>idat</var>.ny=<var>cdat</var>.nx) or colors of vertexes (if <var>xdat</var>.nx=<var>cdat</var>.nx). See also <a href="#dots">dots</a>, <a href="#crust">crust</a>, <a href="#quadplot">quadplot</a>, <a href="#tricont">tricont</a>.
+</p></dd></dl>
+
+<a name="index-tricont"></a>
+<p><a name="tricont"></a>
+</p><dl>
+<dt><a name="index-tricont-1"></a><u>MGL command:</u> <b>tricont</b><i> vdat idat xdat ydat zdat cdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tricont-2"></a><u>MGL command:</u> <b>tricont</b><i> vdat idat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tricont-3"></a><u>MGL command:</u> <b>tricont</b><i> idat xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Draws contour lines for surface of triangles at <var>z</var> = <var>zVal</var> (or for <var>z</var>=<var>vdat</var>[k] if <code>zval=nan</code>). Triangle vertexes are set by indexes <var>idat</var> of data points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k (or <var>num</var> contours equidistantly distributed in range [<var>Cmin</var>, <var>Cmax</var>].). See also <a href="#triplot">triplot</a>, <a href="#cont">cont</a>.
+</p></dd></dl>
+
+<a name="index-quadplot"></a>
+<p><a name="quadplot"></a>
+</p><dl>
+<dt><a name="index-quadplot-1"></a><u>MGL command:</u> <b>quadplot</b><i> idat xdat ydat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-quadplot-2"></a><u>MGL command:</u> <b>quadplot</b><i> idat xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-quadplot-3"></a><u>MGL command:</u> <b>quadplot</b><i> idat xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Draws the surface of quadrangles. Quadrangle vertexes are set by indexes <var>idat</var> of data points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. First dimensions of <var>idat</var> must be 4 or greater. See also <code>triplot, dots, crust</code>. Parameter <var>cdat</var> set the colors of triangles (if <var>idat</var>.ny=<var>cdat</var>.nx) or colors of vertexes (if <var>xdat</var>.nx=<var>cdat</var>.nx). See also <a href="#triplot">triplot</a>.
+</p></dd></dl>
+
+<a name="index-fplot"></a>
+<p><a name="fplot"></a>
+</p><dl>
+<dt><a name="index-fplot-1"></a><u>MGL command:</u> <b>fplot</b><i> 'y(x)' ['pen'='' <code>zval=nan num=100</code>]</i></dt>
+<dd><p>Draws command function &lsquo;<samp>y(x)</samp>&rsquo; at plane z=<var>zval</var> where &lsquo;<samp>x</samp>&rsquo; variable is changed in <code>xrange</code>. You do not need to create the data arrays to plot it. The parameter <var>num</var> set the minimal number of points along coordinate(s) for plots. See also <a href="#plot">plot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fplot-2"></a><u>MGL command:</u> <b>fplot</b><i> 'x(t)' 'y(t)' 'z(t)' ['pen'='' <code>num=100</code>]</i></dt>
+<dd><p>Draws command parametrical curve {&lsquo;<samp>x(t)</samp>&rsquo;, &lsquo;<samp>y(t)</samp>&rsquo;, &lsquo;<samp>z(t)</samp>&rsquo;} where &lsquo;<samp>t</samp>&rsquo; variable is changed in range [0, 1]. You do not need to create the data arrays to plot it. The parameter <var>num</var> set the minimal number of points along coordinate(s) for plots. See also <a href="#plot">plot</a>.
+</p></dd></dl>
+
+<a name="index-fsurf"></a>
+<p><a name="fsurf"></a>
+</p><dl>
+<dt><a name="index-fsurf-1"></a><u>MGL command:</u> <b>fsurf</b><i> 'z(x,y)' ['sch'='' <code>num=100</code>]</i></dt>
+<dd><p>Draws command surface for function &lsquo;<samp>z(x,y)</samp>&rsquo; where &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; variable are changed in <code>xrange, yrange</code>. You do not need to create the data arrays to plot it. The parameter <var>num</var> set the minimal number of points along coordinate(s) for plots. See also <a href="#surf">surf</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fsurf-2"></a><u>MGL command:</u> <b>fsurf</b><i> 'x(u,v)' 'y(u,v)' 'z(u,v)' ['sch'='' <code>num=100</code>]</i></dt>
+<dd><p>Draws command parametrical surface {&lsquo;<samp>x(u,v)</samp>&rsquo;, &lsquo;<samp>y(u,v)</samp>&rsquo;, &lsquo;<samp>z(u,v)</samp>&rsquo;} where &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo; variable are changed in range [0, 1]. You do not need to create the data arrays to plot it. The parameter <var>num</var> set the minimal number of points along coordinate(s) for plots. See also <a href="#surf">surf</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Nonlinear-fitting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-create-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-_0028MGL_0029-1"></a>
+<h2 class="section">8.15 Nonlinear fitting (MGL)</h2>
+
+<p>These commands fit data to formula. Fitting goal is to find formula parameters for the best fit the data points, i.e. to minimize the sum <em>\sum_i (f(x_i, y_i, z_i) - a_i)^2/s_i^2</em>. At this, approximation function &lsquo;<samp>f</samp>&rsquo; can depend only on one argument &lsquo;<samp>x</samp>&rsquo; (1D case), on two arguments &lsquo;<samp>x,y</samp>&rsquo; (2D case) and on three arguments &lsquo;<samp>x,y,z</samp>&rsquo; (3D case). The command &lsquo;<samp>f</samp>&rsquo; also may depend on parameters. Normally the list of fitted parameters is specified by <var>var</var> string (like, &lsquo;<samp>abcd</samp>&rsquo;). Usually user should supply initial values for fitted parameters by <var>ini</var> variable. But if he/she don&rsquo;t supply it then the zeros are used.
+</p>
+<p>Commands <a href="#fit">fit</a> and <a href="#fits">fits</a> do not draw the obtained data themselves. They fill the data <var>out</var> by formula &lsquo;<samp>f</samp>&rsquo; with found coefficients. At this, the &lsquo;<samp>x,y,z</samp>&rsquo; coordinates are equidistantly distributed in the bounding box. Number of points in <var>out</var> is selected as maximal value of <var>out</var> size or 100. Also you may print the last formula with found coefficients by <code>putsfit</code> command. See section <a href="mathgl_en_9.html#Fitting-sample">Fitting sample</a>, for sample code and picture.
+</p>
+<p>The dimensions of arrays must be at least the same as the number of specified arrays <var>xdat</var>, <var>ydat</var>, <var>zdat</var>. Also the fitting only along specified directions will be performed (for example, along x and y if only <var>xdat</var> and <var>ydat</var> are specified). If array <var>xdat</var> is not specified then its an automatic array is used with values equidistantly distributed along x.
+</p>
+
+<a name="index-fits"></a>
+<p><a name="fits"></a>
+</p><dl>
+<dt><a name="index-fits-1"></a><u>MGL command:</u> <b>fits</b><i> adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-2"></a><u>MGL command:</u> <b>fits</b><i> xdat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-3"></a><u>MGL command:</u> <b>fits</b><i> xdat ydat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-4"></a><u>MGL command:</u> <b>fits</b><i> xdat ydat zdat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dd><p>Fit data along x-, y- and z-directions for 1d-,2d- or 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) with weight factor <var>sdat</var>[i,j,k].
+</p></dd></dl>
+
+<a name="index-fit"></a>
+<p><a name="fit"></a>
+</p><dl>
+<dt><a name="index-fit-1"></a><u>MGL command:</u> <b>fit</b><i> adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-2"></a><u>MGL command:</u> <b>fit</b><i> xdat adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-3"></a><u>MGL command:</u> <b>fit</b><i> xdat ydat adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-4"></a><u>MGL command:</u> <b>fit</b><i> xdat ydat zdat adat 'func' 'var' [ini=0]</i></dt>
+<dd><p>Fit data along x-, y- and z-directions for 1d-,2d- or 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) with weight factor =1.
+</p></dd></dl>
+
+<a name="index-putsfit"></a>
+<p><a name="putsfit"></a>
+</p><dl>
+<dt><a name="index-putsfit-1"></a><u>MGL command:</u> <b>putsfit</b><i> <code>x y</code> ['pre'='' 'fnt'='' <code>size=-1</code>]</i></dt>
+<dd><p>Print last fitted formula with found coefficients (as numbers) at position {<var>x</var>, <var>y</var>}. The string <var>pre</var> will be printed before formula. All other parameters are the same as in <a href="#Text-printing-_0028MGL_0029">Text printing (MGL)</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Data-create-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-filling-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-create-_0028MGL_0029-1"></a>
+<h2 class="section">8.16 Data create (MGL)</h2>
+
+<a name="index-new"></a>
+<p><a name="new"></a>
+</p><dl>
+<dt><a name="index-new-1"></a><u>MGL command:</u> <b>new</b><i> dat [<code>nx=1 ny=1 nz=1</code>]</i></dt>
+<dd><p>Creates or recreates the array <var>dat</var> with specified size and fills it by zero. This command does nothing if one of parameters <var>nx</var>, <var>ny</var>, <var>nz</var> is zero or negative.
+</p></dd></dl>
+
+<a name="index-var"></a>
+<p><a name="var"></a>
+</p><dl>
+<dt><a name="index-var-1"></a><u>MGL command:</u> <b>var</b><i> dat <code>num v1 [v2=nan]</code></i></dt>
+<dd><p>Creates new variable with name <var>dat</var> for one-dimensional array of size <var>num</var>. Array elements are equidistantly distributed in range [<var>v1</var>, <var>v2</var>]. If <var>v2</var>=<code>nan</code> then <var>v2=v1</var> is used. 
+</p></dd></dl>
+
+<a name="index-list"></a>
+<p><a name="list"></a>
+</p><dl>
+<dt><a name="index-list-1"></a><u>MGL command:</u> <b>list</b><i> dat <code>v1 ...</code></i></dt>
+<dd><p>Creates new variable with name <var>dat</var> and fills it by numeric values of command arguments <code>v1 ...</code>. Command can create one-dimensional and two-dimensional arrays with arbitrary values. For creating 2d array the user should use delimiter &lsquo;<samp>|</samp>&rsquo; which means that the following values lie in next row. Array sizes are [maximal of row sizes * number of rows]. For example, command <code>list 1 | 2 3</code> creates the array [1 0; 2 3]. Note, that the maximal number of arguments is 1000. 
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-list-2"></a><u>MGL command:</u> <b>list</b><i> dat d1 ...</i></dt>
+<dd><p>Creates new variable with name <var>dat</var> and fills it by data values of arrays of command arguments <var>d1 ...</var>. Command can create two-dimensional or three-dimensional (if arrays in arguments are 2d arrays) arrays with arbitrary values. Minor dimensions of all arrays in arguments should be equal to dimensions of first array d1. In the opposite case the argument will be ignored. Note, that the maximal number of arguments is 1000. 
+</p></dd></dl>
+
+<a name="index-copy"></a>
+<p><a name="copy"></a>
+</p><dl>
+<dt><a name="index-copy-1"></a><u>MGL command:</u> <b>copy</b><i> dat1 dat2 ['eq'='' <code>on_axis=on</code>]</i></dt>
+<dt><a name="index-copy-2"></a><u>MGL command:</u> <b>copy</b><i> dat1 <code>val</code></i></dt>
+<dd><p>Creates new variable with name <var>dat1</var> and fills it by data values of array <var>dat2</var>. At this, if parameter <var>eq</var> is specified then the data will be modified by corresponding formula by the same way as in <a href="#fill">fill</a> command (for <code>on_axis=on</code>) or in <a href="#modify">modify</a> command (for <code>on_axis=off</code>).
+</p></dd></dl>
+
+<a name="index-idset"></a>
+<p><a name="idset"></a>
+</p><dl>
+<dt><a name="index-idset-1"></a><u>MGL command:</u> <b>idset</b><i> dat 'ids'</i></dt>
+<dd><p>Set the symbol id for data columns. The string must contain one symbol &rsquo;a&rsquo;...&rsquo;z&rsquo; per column (without spaces).
+</p></dd></dl>
+
+<a name="index-info"></a>
+<p><a name="info"></a>
+</p><dl>
+<dt><a name="index-info-1"></a><u>MGL command:</u> <b>info</b><i> dat [<code>detail=off</code>]</i></dt>
+<dd><p>Display information (sizes, maximum/minimum, momentums and so on) about the data dat. Show brief information by default (if <code>detail=off</code>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-info-2"></a><u>MGL command:</u> <b>info</b><i> 'text'</i></dt>
+<dd><p>Display <var>text</var> as information (warning).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Data-filling-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-create-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Rearrange-data-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-filling-_0028MGL_0029-1"></a>
+<h2 class="section">8.17 Data filling (MGL)</h2>
+<a name="index-fill"></a>
+<a name="index-modify"></a>
+
+<a name="index-fill-1"></a>
+<p><a name="fill"></a>
+</p><dl>
+<dt><a name="index-fill-2"></a><u>MGL command:</u> <b>fill</b><i> dat v1 v2 ['dir'='x']</i></dt>
+<dd><p>Equidistantly fills the data values to range [<var>x1</var>, <var>x2</var>] in direction <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;,&lsquo;<samp>y</samp>&rsquo;,&lsquo;<samp>z</samp>&rsquo;}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fill-3"></a><u>MGL command:</u> <b>fill</b><i> dat 'eq'</i></dt>
+<dt><a name="index-fill-4"></a><u>MGL command:</u> <b>fill</b><i> dat 'eq' vdat</i></dt>
+<dt><a name="index-fill-5"></a><u>MGL command:</u> <b>fill</b><i> dat 'eq' vdat wdat</i></dt>
+<dd><p>Command fills the value of array according to the formula in string <var>eq</var>. Formula is an arbitrary expression depending  on variables &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; are supposed to be normalized in <em>bounding box</em> (in difference from <code>modify</code> commands). Variable &lsquo;<samp>u</samp>&rsquo; is the original value of the array. Variables &lsquo;<samp>v</samp>&rsquo; and &lsquo;<samp>w</samp>&rsquo; are values of <var>vdat</var>, <var>wdat</var>.
+</p></dd></dl>
+
+<a name="index-modify-1"></a>
+<p><a name="modify"></a>
+</p><dl>
+<dt><a name="index-modify-2"></a><u>MGL command:</u> <b>modify</b><i> dat 'eq' [<code>dim=0</code>]</i></dt>
+<dt><a name="index-modify-3"></a><u>MGL command:</u> <b>modify</b><i> dat 'eq' vdat</i></dt>
+<dt><a name="index-modify-4"></a><u>MGL command:</u> <b>modify</b><i> dat 'eq' vdat wdat</i></dt>
+<dd><p>Command fills the value of array according to the formula in string <var>eq</var>. Formula is an arbitrary expression depending  on variables &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;. Coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; are data indexes normalized in range [0,1]. Variable &lsquo;<samp>u</samp>&rsquo; is the original value of the array. If <var>dim</var>&gt;0 is specified then modification will be fulfilled only for slices &gt;=<var>dim</var>.
+</p></dd></dl>
+
+
+<a name="index-put"></a>
+<p><a name="put"></a>
+</p><dl>
+<dt><a name="index-put-1"></a><u>MGL command:</u> <b>put</b><i> dat <code>val [i=: j=: k=:]</code></i></dt>
+<dd><p>Function sets value(s) of array <var>dat</var>[<var>i</var>, <var>j</var>, <var>k</var>] = <var>val</var>. Negative indexes <var>i</var>, <var>j</var>, <var>k</var>=&lsquo;<samp>:</samp>&rsquo; set the value <var>val</var> to whole range in corresponding direction(s). For example, <code>put dat val : 0 :</code> sets <var>dat</var>[i,0,j]=<var>val</var> for i=0...(<var>dat</var>.nx-1), j=0...(<var>dat</var>.nz-1).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-put-2"></a><u>MGL command:</u> <b>put</b><i> dat vdat [<code>i=: j=: k=:</code>]</i></dt>
+<dd><p>Function copies value(s) from array <var>vdat</var> to the range of array <var>dat</var>. Negative indexes <var>i</var>, <var>j</var>, <var>k</var>=&lsquo;<samp>:</samp>&rsquo; set the range in corresponding direction(s). At this minor dimensions of array <var>vdat</var> should be large than corresponding dimensions of array <var>dat</var>. For example, <code>put dat v : 0 :</code> sets <var>dat</var>[i,0,j]=<var>vdat</var>.ny&gt;<var>dat</var>.nz ? <var>vdat</var>[i,j] : <var>vdat</var>[i], where i=0...(<var>dat</var>.nx-1), j=0...(<var>dat</var>.nz-1) and condition vdat.nx&gt;=dat.nx is true.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Rearrange-data-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-filling-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#File-I_002fO-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Rearrange-data-_0028MGL_0029-1"></a>
+<h2 class="section">8.18 Rearrange data (MGL)</h2>
+
+<a name="index-rearrange"></a>
+<p><a name="rearrange"></a>
+</p><dl>
+<dt><a name="index-rearrange-1"></a><u>MGL command:</u> <b>rearrange</b><i> dat <code>mx [my=0 mz=0]</code></i></dt>
+<dd><p>Rearrange dimensions without changing data array so that resulting sizes should  be <var>mx</var>*<var>my</var>*<var>mz</var> &lt; nx*ny*nz. If some of parameter <var>my</var> or <var>mz</var> are zero then it will be selected to optimal fill of data array. For example, if <var>my</var>=0 then it will be change to <var>my</var>=nx*ny*nz/<var>mx</var> and <var>mz</var> will be 1.
+</p></dd></dl>
+
+<a name="index-extend"></a>
+<p><a name="extend"></a>
+</p><dl>
+<dt><a name="index-extend-1"></a><u>MGL command:</u> <b>extend</b><i> dat <code>n1 [n2=0]</code></i></dt>
+<dd><p>Increase the dimensions of the data by inserting new (|<var>n1</var>|+1)-th slices after (for <var>n1</var>&gt;0) or before (for <var>n1</var>&lt;0) of existed one. It is possible to insert 2 dimensions simultaneously for 1d data by using parameter <var>n2</var>. Data to new slices is copy from existed one. For example, for <var>n1</var>&gt;0 new array will be 
+a_ij^new = a_i^old where j=0...<var>n1</var>. Correspondingly, for <var>n1</var>&lt;0 new array will be a_ij^new = a_j^old where i=0...|<var>n1</var>|.
+</p></dd></dl>
+
+<a name="index-transpose"></a>
+<p><a name="transpose"></a>
+</p><dl>
+<dt><a name="index-transpose-1"></a><u>MGL command:</u> <b>transpose</b><i> dat ['dim'='yxz']</i></dt>
+<dd><p>Transposes (shift order of) dimensions of the data. New order of dimensions is specified int string <var>dim</var>. This command may be useful also for the reading of one-dimensional data.
+</p></dd></dl>
+
+<a name="index-squeeze"></a>
+<p><a name="squeeze"></a>
+</p><dl>
+<dt><a name="index-squeeze-1"></a><u>MGL command:</u> <b>squeeze</b><i> dat <code>rx [ry=1 rz=1 sm=off]</code></i></dt>
+<dd><p>Reduces the data size by excluding data elements which indexes are not divisible by <var>rx</var>, <var>ry</var>, <var>rz</var> correspondingly. Parameter <var>sm</var> set to use smoothing
+(i.e. out[i]=\sum_{j=i}^{i+r} a[j]/r) or not (i.e. out[i]=a[j*r]).
+</p></dd></dl>
+
+<a name="index-crop"></a>
+<p><a name="crop"></a>
+</p><dl>
+<dt><a name="index-crop-1"></a><u>MGL command:</u> <b>crop</b><i> dat <code>n1 n2</code> 'dir'</i></dt>
+<dd><p>Cuts off edges of the data <var>i</var>&lt;<var>n1</var> and <var>i</var>&gt;<var>n2</var> if <var>n2</var>&gt;0 or <var>i</var>&gt;<code>n[xyz]</code>-<var>n2</var> if <var>n2</var>&lt;=0 along direction <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-delete"></a>
+<p><a name="delete"></a>
+</p><dl>
+<dt><a name="index-delete-1"></a><u>MGL command:</u> <b>delete</b><i> dat</i></dt>
+<dd><p>Deletes variable <var>dat</var> and makes its memory free. Can be useful for huge data arrays.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-delete-2"></a><u>MGL command:</u> <b>delete</b><i> dat 'dir' <code>[pos=off num=0]</code></i></dt>
+<dd><p>Delete <var>num</var> slices along <var>dir</var>-direction at position <var>pos</var>.
+</p></dd></dl>
+
+<a name="index-insert"></a>
+<p><a name="insert"></a>
+</p><dl>
+<dt><a name="index-insert-1"></a><u>MGL command:</u> <b>insert</b><i> dat 'dir' <code>[pos=off num=0]</code></i></dt>
+<dd><p>Insert <var>num</var> slices along <var>dir</var>-direction at position <var>pos</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="File-I_002fO-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Rearrange-data-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Make-another-data-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="File-I_002fO-_0028MGL_0029-1"></a>
+<h2 class="section">8.19 File I/O (MGL)</h2>
+
+<a name="index-read"></a>
+<p><a name="read"></a>
+</p><dl>
+<dt><a name="index-read-1"></a><u>MGL command:</u> <b>read</b><i> dat 'fname'</i></dt>
+<dd><p>Reads data from tab-separated text file with auto determining sizes of the data.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-read-2"></a><u>MGL command:</u> <b>read</b><i> dat 'fname' <code>mx [my=1 mz=1]</code></i></dt>
+<dd><p>Reads data from text file with specified data sizes. This command does nothing if one of parameters <var>mx</var>, <var>my</var> or <var>mz</var> is zero or negative.
+</p></dd></dl>
+
+<a name="index-readmat"></a>
+<p><a name="readmat"></a>
+</p><dl>
+<dt><a name="index-readmat-1"></a><u>MGL command:</u> <b>readmat</b><i> dat 'fname' [<code>dim=2</code>]</i></dt>
+<dd><p>Read data from text file with size specified at beginning of the file by first <var>dim</var> numbers. At this, variable <var>dim</var> set data dimensions.
+</p></dd></dl>
+
+<a name="index-readall"></a>
+<p><a name="readall"></a>
+</p><dl>
+<dt><a name="index-readall-1"></a><u>MGL command:</u> <b>readall</b><i> dat 'templ' <code>v1 v2 [dv=1 slice=off]</code></i></dt>
+<dd><p>Join data arrays from several text files. The file names are determined by function call <code>sprintf(fname,templ,val);</code>, where <var>val</var> changes from <var>v1</var> to <var>v2</var> with step <var>dv</var>. The data load one-by-one in the same slice if <var>slice</var>=<code>off</code> or as slice-by-slice if <var>slice</var>=<code>on</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-readall-2"></a><u>MGL command:</u> <b>readall</b><i> dat 'templ' <code>[slice=off]</code></i></dt>
+<dd><p>Join data arrays from several text files which filenames satisfied the template <var>templ</var> (for example, <var>templ</var>=<code>&quot;t_*.dat&quot;</code>). The data load one-by-one in the same slice if <var>slice</var>=<code>off</code> or as slice-by-slice if <var>slice</var>=<code>on</code>.
+</p></dd></dl>
+
+<a name="index-save"></a>
+<p><a name="save"></a>
+</p><dl>
+<dt><a name="index-save-1"></a><u>MGL command:</u> <b>save</b><i> dat 'fname'</i></dt>
+<dd><p>Saves the whole data array to tab-separated text file.
+</p></dd></dl>
+
+<a name="index-readhdf"></a>
+<p><a name="readhdf"></a>
+</p><dl>
+<dt><a name="index-readhdf-1"></a><u>MGL command:</u> <b>readhdf</b><i> dat 'fname' 'dname'</i></dt>
+<dd><p>Reads data array named <var>dname</var> from HDF5 or HDF4 file <var>fname</var>.
+</p></dd></dl>
+
+<a name="index-savehdf"></a>
+<p><a name="savehdf"></a>
+</p><dl>
+<dt><a name="index-savehdf-1"></a><u>MGL command:</u> <b>savehdf</b><i> dat 'fname' 'dname'</i></dt>
+<dd><p>Saves data array named <var>dname</var> from HDF5 or HDF4 file <var>fname</var>.
+</p></dd></dl>
+
+<a name="index-import"></a>
+<p><a name="import"></a>
+</p><dl>
+<dt><a name="index-import-1"></a><u>MGL command:</u> <b>import</b><i> dat 'fname' 'sch' [<code>v1=0 v2=1</code>]</i></dt>
+<dd><p>Reads data from bitmap file. The RGB values of bitmap pixels are transformed to float values in range [<var>v1</var>, <var>v2</var>] using color scheme <var>sch</var> (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>).
+</p></dd></dl>
+
+<a name="index-export"></a>
+<p><a name="export"></a>
+</p><dl>
+<dt><a name="index-export-1"></a><u>MGL command:</u> <b>export</b><i> dat 'fname' 'sch' [<code>v1=0 v2=0</code>]</i></dt>
+<dd><p>Saves data matrix to bitmap file. The data values are transformed from range [<var>v1</var>, <var>v2</var>] to RGB pixels of bitmap using color scheme <var>sch</var> (see section <a href="mathgl_en_1.html#Color-scheme">Color scheme</a>). If <var>v1</var>&gt;=<var>v2</var> then the values of <var>v1</var>, <var>v2</var> are automatically determined as minimal and maximal value of the data array.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Make-another-data-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#File-I_002fO-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Change-data-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Make-another-data-_0028MGL_0029-1"></a>
+<h2 class="section">8.20 Make another data (MGL)</h2>
+
+<a name="index-combine"></a>
+<p><a name="combine"></a>
+</p><dl>
+<dt><a name="index-combine-1"></a><u>MGL command:</u> <b>combine</b><i> res adat bdat</i></dt>
+<dd><p>Returns direct multiplication of arrays (like, res[i,j] = adat[i]*bdat[j] and so on).
+</p></dd></dl>
+
+<a name="index-evaluate"></a>
+<p><a name="evaluate"></a>
+</p><dl>
+<dt><a name="index-evaluate-1"></a><u>MGL command:</u> <b>evaluate</b><i> res dat idat [<code>norm=on</code>]</i></dt>
+<dt><a name="index-evaluate-2"></a><u>MGL command:</u> <b>evaluate</b><i> res dat idat jdat [<code>norm=on</code>]</i></dt>
+<dt><a name="index-evaluate-3"></a><u>MGL command:</u> <b>evaluate</b><i> res dat idat jdat kdat [<code>norm=on</code>]</i></dt>
+<dd><p>Get array which values is result of interpolation of original array for coordinates from other arrays (for example, res[i,j]=dat[idat[i,j],jdat[i,j]]). All dimensions must be the same for data <var>idat</var>, <var>jdat</var>, <var>kdat</var>. Coordinates from <var>idat</var>, <var>jdat</var>, <var>kdat</var> are supposed to be normalized in range [0,1] (if <var>norm</var>=<code>true</code>) or in ranges [0,nx], [0,ny], [0,nz] correspondingly.
+</p></dd></dl>
+
+<a name="index-hist"></a>
+<p><a name="hist"></a>
+</p><dl>
+<dt><a name="index-hist-1"></a><u>MGL command:</u> <b>hist</b><i> res dat <code>num v1 v2 [nsub=0]</code></i></dt>
+<dt><a name="index-hist-2"></a><u>MGL command:</u> <b>hist</b><i> res dat wdat <code>num v1 v2 [nsub=0]</code></i></dt>
+<dd><p>Creates <var>num</var>-th points distribution <var>res</var> of the data values of <var>dat</var> in range [<var>v1</var>, <var>v2</var>]. Array <var>wdat</var> specifies weights of the data elements (all weight is 1 if <var>wdat</var> is not specified). Parameter <var>nsub</var> define the number of additional interpolated points (for smoothness of histogram).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-hist-3"></a><u>MGL command:</u> <b>hist</b><i> res xdat adat</i></dt>
+<dt><a name="index-hist-4"></a><u>MGL command:</u> <b>hist</b><i> res xdat ydat adat</i></dt>
+<dt><a name="index-hist-5"></a><u>MGL command:</u> <b>hist</b><i> res xdat ydat zdat adat</i></dt>
+<dd><p>Creates distribution <var>res</var> of the data values of <var>adat</var> in axis range [Min, Max]. Array <var>adat</var> look like weights of the data points.
+</p></dd></dl>
+
+
+<a name="index-momentum"></a>
+<p><a name="momentum"></a>
+</p><dl>
+<dt><a name="index-momentum-1"></a><u>MGL command:</u> <b>momentum</b><i> res dat 'how' ['dir'='z']</i></dt>
+<dd><p>Get momentum (1D-array) of the data along direction <var>dir</var>. String <var>how</var> contain kind of momentum. The momentum is defined like as
+res_k = \sum_ij how(x_i,y_j,z_k) a_ij/ \sum_ij a_ij
+if <var>var</var>=&lsquo;<samp>z</samp>&rsquo; and so on. Coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; are data indexes normalized in range [0,1].
+</p></dd></dl>
+
+<a name="index-sum"></a>
+<p><a name="sum"></a>
+</p><dl>
+<dt><a name="index-sum-1"></a><u>MGL command:</u> <b>sum</b><i> res dat 'dir'</i></dt>
+<dd><p>Gets array which is the result of summation in given direction or direction(s).
+</p></dd></dl>
+<a name="index-max"></a>
+<p><a name="max"></a>
+</p><dl>
+<dt><a name="index-max-1"></a><u>MGL command:</u> <b>max</b><i> res dat 'dir'</i></dt>
+<dd><p>Gets array which is the maximal data values in given direction or direction(s).
+</p></dd></dl>
+<a name="index-min"></a>
+<p><a name="min"></a>
+</p><dl>
+<dt><a name="index-min-1"></a><u>MGL command:</u> <b>min</b><i> res dat 'dir'</i></dt>
+<dd><p>Gets array which is the minimal data values in given direction or direction(s).
+</p></dd></dl>
+
+<a name="index-resize"></a>
+<p><a name="resize"></a>
+</p><dl>
+<dt><a name="index-resize-1"></a><u>MGL command:</u> <b>resize</b><i> res dat <code>mx [my=1 mz=1]</code></i></dt>
+<dd><p>Makes array <var>res</var> of sizes <var>mx</var>, <var>my</var>, <var>mz</var> with interpolated data of array <var>dat</var>. 
+</p></dd></dl>
+
+<a name="index-subdata"></a>
+<p><a name="subdata"></a>
+</p><dl>
+<dt><a name="index-subdata-1"></a><u>MGL command:</u> <b>subdata</b><i> res dat <code>xx [yy=: zz=:]</code></i></dt>
+<dd><p>Extracts sub-array data <var>res</var> from the original data <var>dat</var> array keeping fixed positive index. For example <code>subdata a b : 2</code> extracts 3d row (indexes are zero based), <code>subdata a b 4 :</code> extracts 5th column, <code>subdata a b : : 3</code> extracts 4th slice and so on. Note that symbol &lsquo;<samp>:</samp>&rsquo; is defined &lsquo;<samp>:</samp>&rsquo;=<code>-1</code> in MGL.
+</p></dd></dl>
+
+<a name="index-trace"></a>
+<p><a name="trace"></a>
+</p><dl>
+<dt><a name="index-trace-1"></a><u>MGL command:</u> <b>trace</b><i> res dat</i></dt>
+<dd><p>Gets array of diagonal elements <var>dat</var>[i,i] (for 2D case) or <var>dat</var>[i,i,i] (for 3D case) where i=0...nx-1. Function return copy of <var>dat</var> for 1D case. Data array must have dimensions <var>dat</var>.ny, <var>dat</var>.nz &gt;= <var>dat</var>.nx or <var>dat</var>.ny, <var>dat</var>.nz = 1.
+</p></dd></dl>
+
+<a name="index-transform"></a>
+<p><a name="transform"></a>
+</p><dl>
+<dt><a name="index-transform-1"></a><u>MGL command:</u> <b>transform</b><i> dat 'type' real imag</i></dt>
+<dd><p>Do integral transformation of complex data <var>real</var>, <var>imag</var> on specified direction. The order of transformations is specified in string <var>type</var>: first character for x-dimension, second one for y-dimension, third one for z-dimension. The possible character are: &lsquo;<samp>f</samp>&rsquo; is forward Fourier transformation, &lsquo;<samp>i</samp>&rsquo; is inverse Fourier transformation, &lsquo;<samp>s</samp>&rsquo; is Sine transform, &lsquo;<samp>c</samp>&rsquo; is Cosine transform, &lsquo;<samp>h</samp>&rsquo; is Hankel transform, &lsquo;<samp>n</samp>&rsquo; or &lsquo;<samp> </samp>&rsquo; is no transformation.
+</p></dd></dl>
+
+<a name="index-transforma"></a>
+<p><a name="transforma"></a>
+</p><dl>
+<dt><a name="index-transforma-1"></a><u>MGL command:</u> <b>transforma</b><i> dat 'type' ampl phase</i></dt>
+<dd><p>The same as previous but with specified amplitude <var>ampl</var> and phase <var>phase</var> of complex numbers.
+</p></dd></dl>
+
+<a name="index-stfad"></a>
+<p><a name="stfad"></a>
+</p><dl>
+<dt><a name="index-stfad-1"></a><u>MGL command:</u> <b>stfad</b><i> res real imag <code>dn</code> ['dir'='x']</i></dt>
+<dd><p>Short time Fourier transformation for real and imaginary parts. Output  is amplitude of partial Fourier of length <var>dn</var>. For example if <var>dir</var>=&lsquo;<samp>x</samp>&rsquo;, result will have size {int(nx/dn), dn, ny} and it will contain <em>res[i,j,k]=|\sum_d^dn exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn</em>.
+</p></dd></dl>
+
+<a name="index-pde"></a>
+<p><a name="pde"></a>
+</p><dl>
+<dt><a name="index-pde-1"></a><u>MGL command:</u> <b>pde</b><i> res 'ham' ini_re ini_im [<code>dz=0.1 k0=100</code>]</i></dt>
+<dd><p>Solves equation du/dz = i*k0*<var>ham</var>(p,q,x,y,z,|u|)[u], where p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators. Parameters <var>ini_re</var>, <var>ini_im</var> specify real and imaginary part of initial field distribution. Coordinates of the equation (and the solution) are supposed to be in the bounding box. Note, that really this ranges are increased by factor 3/2 for purpose of reducing reflection from boundaries. Parameter <var>dz</var> set the step along evolutionary coordinate z. At this moment, simplified form of function <var>ham</var> is supported &ndash; all &ldquo;mixed&rdquo; terms (like &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) are excluded. For example, in 2D case this function is effectively <em>ham = f(p,z) + g(x,z,u)</em>. However commutable combinations (like &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy) are allowed. Here variable &lsquo;<samp>u</samp>&rsquo; is used for field amplitude |u|. This allow one solve nonlinear problems &ndash; for example, for non-linear Shrodinger equation you may set <code>ham='p^2+q^2-u^2'</code>. You may specify imaginary part for wave absorption, like <code>ham = 'p^2+i*x*(x&gt;0)'</code>, but only if dependence on variable &lsquo;<samp>i</samp>&rsquo; is linear (i.e. <em>ham = hre+i*him</em>). See section <a href="mathgl_en_9.html#PDE-sample">PDE sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-ray"></a>
+<p><a name="ray"></a>
+</p><dl>
+<dt><a name="index-ray-1"></a><u>MGL command:</u> <b>ray</b><i> res 'ham' <code>x0 y0 z0 p0 q0 v0 [dt=0.1 tmax=10]</code></i></dt>
+<dd><p>Solves GO ray equation like d<em>r</em>/dt = d <var>ham</var>/d<em>p</em>, d<em>p</em>/dt = -d <var>ham</var>/d<em>r</em>. This is Hamiltonian equations for particle trajectory in 3D case. Here <var>ham</var> is Hamiltonian which may depend on coordiantes &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, momentums &lsquo;<samp>p</samp>&rsquo;=px, &lsquo;<samp>q</samp>&rsquo;=py, &lsquo;<samp>v</samp>&rsquo;=pz and time &lsquo;<samp>t</samp>&rsquo;: <em>ham = H(x,y,z,p,q,v,t)</em>. The starting point (at <code>t=0</code>) is defined by variables {<var>x0</var>, <var>y0</var>, <var>z0</var>, <var>p0</var>, <var>q0</var>, <var>v0</var>}. Parameters <var>dt</var> and <var>tmax</var> specify the integration step and maximal time for ray tracing. Result is array of {x,y,z,p,q,v,t} with dimensions {7 * int(<var>tmax</var>/<var>dt</var>+1) }. See also <a href="#pde">pde</a>. See section <a href="mathgl_en_9.html#Beam-tracing-sample">Beam tracing sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-qo2d"></a>
+<p><a name="qo2d"></a>
+</p><dl>
+<dt><a name="index-qo2d-1"></a><u>MGL command:</u> <b>qo2d</b><i> res 'ham' ini_re ini_im ray [<code>r=1 k0=100</code> xx=0 yy=0]</i></dt>
+<dd><p>Solves equation du/dt = i*k0*<var>ham</var>(p,q,x,y,|u|)[u], where p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators. Parameters <var>ini_re</var>, <var>ini_im</var> specify real and imaginary part of initial field distribution. Parameters <var>ray</var> set the reference ray, i.e. the ray around which the accompanied coordinate system will be maked. You may use, for example, the array created by <a href="#ray">ray</a> function. Note, that the reference ray <strong>must be</strong> smooth enough to make accompanied coodrinates unambiguity. Otherwise errors in the solution may appear. If <var>xx</var> and <var>yy</var> are non-zero then Cartesian coordinates for each point will be written into them. See section <a href="mathgl_en_9.html#Beam-tracing-sample">Beam tracing sample</a>, for sample code and picture. 
+</p></dd></dl>
+
+<a name="index-jacobian"></a>
+<p><a name="jacobian"></a>
+</p><dl>
+<dt><a name="index-jacobian-1"></a><u>MGL command:</u> <b>jacobian</b><i> res xdat ydat [zdat=0]</i></dt>
+<dd><p>Computates the Jacobian for transformation {i,j,k} to {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} where initial coordinates  {i,j,k} are data indexes normalized in range [0,1]. The Jacobian is determined by formula det||<em>dr_\alpha/d\xi_\beta</em>|| where <em>r</em>={<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} and <em>\  xi</em>={i,j,k}. All dimensions must be the same for all data arrays. Data must be 3D if all 3 arrays {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} are specified or 2D if only 2 arrays {<var>xdat</var>,<var>ydat</var>} are specified.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Change-data-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Make-another-data-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Operators-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Change-data-_0028MGL_0029-1"></a>
+<h2 class="section">8.21 Change data (MGL)</h2>
+
+<p>These commands change the data in some direction like differentiations, integrations and so on. The direction in which the change will applied is specified by the string parameter, which may contain &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo; characters for 1-st, 2-nd and 3-d dimension correspondingly.
+</p>
+<a name="index-cumsum"></a>
+<p><a name="cumsum"></a>
+</p><dl>
+<dt><a name="index-cumsum-1"></a><u>MGL command:</u> <b>cumsum</b><i> dat 'dir'</i></dt>
+<dd><p>Cumulative summation of the data in given direction or directions.
+</p></dd></dl>
+<a name="index-integrate"></a>
+<p><a name="integrate"></a>
+</p><dl>
+<dt><a name="index-integrate-1"></a><u>MGL command:</u> <b>integrate</b><i> dat 'dir'</i></dt>
+<dd><p>Integrates (like cumulative summation) the data in given direction or directions.
+</p></dd></dl>
+<a name="index-diff"></a>
+<p><a name="diff"></a>
+</p><dl>
+<dt><a name="index-diff-1"></a><u>MGL command:</u> <b>diff</b><i> dat 'dir'</i></dt>
+<dd><p>Differentiates the data in given direction or directions.
+</p></dd></dl>
+<dl>
+<dt><a name="index-diff-2"></a><u>MGL command:</u> <b>diff</b><i> dat xdat ydat [zdat=0]</i></dt>
+<dd><p>Differentiates the data <var>dat</var> specified parametrically in direction <var>xdat</var> with <var>ydat</var>, <var>zdat</var>=constant. Parameter <var>zdat</var> can be omitted that correspond to 2D case. Parametrical differentiation uses the formula (for 2D case): <em>da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j)</em> where <em>a_i=da/di, a_j=da/dj</em> denotes usual differentiation along 1st and 2nd dimensions. The similar formula is used for 3D case. Note, that you may change the order of arguments &ndash; for example, if you have 2D data a(i,j) which depend on coordinates {x(i,j), y(i,j)} then usual derivative along &lsquo;<samp>x</samp>&rsquo; will be <code>diff a x y</code> and usual derivative along &lsquo;<samp>y</samp>&rsquo; will be <code>diff a y x</code>.
+</p></dd></dl>
+
+<a name="index-diff2"></a>
+<p><a name="diff2"></a>
+</p><dl>
+<dt><a name="index-diff2-1"></a><u>MGL command:</u> <b>diff2</b><i> dat 'dir'</i></dt>
+<dd><p>Double-differentiates (like Laplace operator) the data in given direction.
+</p></dd></dl>
+
+<a name="index-sinfft"></a>
+<p><a name="sinfft"></a>
+</p><dl>
+<dt><a name="index-sinfft-1"></a><u>MGL command:</u> <b>sinfft</b><i> dat 'dir'</i></dt>
+<dd><p>Do Sine transform of the data in given direction or directions. The Sine transform is <em>\sum a_i \sin(k i)</em>.
+</p></dd></dl>
+<a name="index-cosfft"></a>
+<p><a name="cosfft"></a>
+</p><dl>
+<dt><a name="index-cosfft-1"></a><u>MGL command:</u> <b>cosfft</b><i> dat 'dir'</i></dt>
+<dd><p>Do Cosine transform of the data in given direction or directions. The Cosine transform is <em>\sum a_i \cos(k i)</em>.
+</p></dd></dl>
+<a name="index-hankel"></a>
+<p><a name="hankel"></a>
+</p><dl>
+<dt><a name="index-hankel-1"></a><u>MGL command:</u> <b>hankel</b><i> dat 'dir'</i></dt>
+<dd><p>Do Hankel transform of the data in given direction or directions. The Hankel transform is <em>\sum a_i J_0(k i)</em>.
+</p></dd></dl>
+
+
+<a name="index-swap"></a>
+<p><a name="swap"></a>
+</p><dl>
+<dt><a name="index-swap-1"></a><u>MGL command:</u> <b>swap</b><i> dat 'dir'</i></dt>
+<dd><p>Swaps the left and right part of the data in given direction (useful for Fourier spectrum).
+</p></dd></dl>
+<a name="index-roll"></a>
+<p><a name="roll"></a>
+</p><dl>
+<dt><a name="index-roll-1"></a><u>MGL command:</u> <b>roll</b><i> dat 'dir' num</i></dt>
+<dd><p>Rolls the data along direction &rsquo;dir&rsquo;. Resulting array will be out[i] = ini[(i+num)%nx] if <code>dir='x'</code>.
+</p></dd></dl>
+
+<a name="index-mirror"></a>
+<p><a name="mirror"></a>
+</p><dl>
+<dt><a name="index-mirror-1"></a><u>MGL command:</u> <b>mirror</b><i> dat 'dir'</i></dt>
+<dd><p>Mirror the left-to-right part of the data in given direction. Looks like change the value index <var>i</var>-&gt;<var>n-i</var>.
+</p></dd></dl>
+
+<a name="index-sew"></a>
+<p><a name="sew"></a>
+</p><dl>
+<dt><a name="index-sew-1"></a><u>MGL command:</u> <b>sew</b><i> dat ['dir'='xyz' <code>da=2*pi</code>]</i></dt>
+<dd><p>Remove value steps (like phase jumps after inverse trigonometric commands) with period <var>da</var> in given direction.
+</p></dd></dl>
+<a name="index-smooth"></a>
+<p><a name="smooth"></a>
+</p><dl>
+<dt><a name="index-smooth-1"></a><u>MGL command:</u> <b>smooth</b><i> data <code>type</code> ['dir'='xyz']</i></dt>
+<dd><p>Smooths the data on specified direction or directions by method <var>Type</var>. Now 4 methods are supported: &lsquo;<samp>0</samp>&rsquo; does nothing, &lsquo;<samp>1</samp>&rsquo; linear averaging by 3 points, &lsquo;<samp>2</samp>&rsquo; linear averaging by 5 points, &lsquo;<samp>3</samp>&rsquo; quadratic averaging by 5 points.
+</p></dd></dl>
+
+<a name="index-envelop"></a>
+<p><a name="envelop"></a>
+</p><dl>
+<dt><a name="index-envelop-1"></a><u>MGL command:</u> <b>envelop</b><i> dat ['dir'='x']</i></dt>
+<dd><p>Find envelop for data values along direction <var>dir</var>. Only one direction can be specified at once.
+</p></dd></dl>
+
+<a name="index-normsl"></a>
+<p><a name="normsl"></a>
+</p><dl>
+<dt><a name="index-normsl-1"></a><u>MGL command:</u> <b>normsl</b><i> dat <code>v1 v2</code> ['dir'='z' <code>keep=on sym=off</code>]</i></dt>
+<dd><p>Normalizes data slice-by-slice along direction <var>dir</var> the data in slices to range [<var>v1</var>,<var>v2</var>]. If flag <var>sym</var>=<code>on</code> then symmetrical interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used. If <var>keep</var> is set then maximal value of k-th slice will be limited by 
+<em>\sqrt\sum a_ij(k)/\sum a_ij(0)</em>.
+</p></dd></dl>
+
+<a name="index-norm"></a>
+<p><a name="norm"></a>
+</p><dl>
+<dt><a name="index-norm-1"></a><u>MGL command:</u> <b>norm</b><i> dat <code>v1 v2 [sym=off dim=0]</code></i></dt>
+<dd><p>Normalizes the data to range [<var>v1</var>,<var>v2</var>]. If flag <var>sym</var>=<code>on</code> then symmetrical interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used. Modification will be applied only for slices &gt;=<var>dim</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Operators-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Change-data-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Program-flow-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Operators-_0028MGL_0029-1"></a>
+<h2 class="section">8.22 Operators (MGL)</h2>
+
+<a name="index-multo"></a>
+<p><a name="multo"></a>
+</p><dl>
+<dt><a name="index-multo-1"></a><u>MGL command:</u> <b>multo</b><i> dat dat2</i></dt>
+<dd><p>Multiplies the data by the other one for each element.
+</p></dd></dl>
+<dl>
+<dt><a name="index-multo-2"></a><u>MGL command:</u> <b>multo</b><i> dat <code>val</code></i></dt>
+<dd><p>Multiplies each element by the number.
+</p></dd></dl>
+
+<a name="index-divto"></a>
+<p><a name="divto"></a>
+</p><dl>
+<dt><a name="index-divto-1"></a><u>MGL command:</u> <b>divto</b><i> dat dat2</i></dt>
+<dd><p>Divides the data by the other one for each element.
+</p></dd></dl>
+<dl>
+<dt><a name="index-divto-2"></a><u>MGL command:</u> <b>divto</b><i> dat <code>val</code></i></dt>
+<dd><p>Divides each element by the number.
+</p></dd></dl>
+
+<a name="index-addto"></a>
+<p><a name="addto"></a>
+</p><dl>
+<dt><a name="index-addto-1"></a><u>MGL command:</u> <b>addto</b><i> dat dat2</i></dt>
+<dd><p>Adds the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-addto-2"></a><u>MGL command:</u> <b>addto</b><i> dat <code>val</code></i></dt>
+<dd><p>Adds the number to each element.
+</p></dd></dl>
+
+<a name="index-subto"></a>
+<p><a name="subto"></a>
+</p><dl>
+<dt><a name="index-subto-1"></a><u>MGL command:</u> <b>subto</b><i> dat dat2</i></dt>
+<dd><p>Subtracts the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-subto-2"></a><u>MGL command:</u> <b>subto</b><i> dat <code>val</code></i></dt>
+<dd><p>Subtracts the number to each element.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Program-flow-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Operators-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Command-options-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Program-flow-_0028MGL_0029-1"></a>
+<h2 class="section">8.23 Program flow (MGL)</h2>
+
+<p>These commands control program flow, like, conditions, cycles, define script arguments and so on.
+</p>
+<a name="index-chdir"></a>
+<p><a name="chdir"></a>
+</p><dl>
+<dt><a name="index-chdir-1"></a><u>MGL command:</u> <b>chdir</b><i> 'path'</i></dt>
+<dd><p>Changes the current directory to <var>path</var>.
+</p></dd></dl>
+
+<a name="index-define"></a>
+<p><a name="define"></a>
+</p><dl>
+<dt><a name="index-define-1"></a><u>MGL command:</u> <b>define</b><i> $N smth</i></dt>
+<dd><p>Sets <var>N</var>-th script argument to <var>smth</var>. Note, that <var>smth</var> is used as is (with &lsquo;<samp>'</samp>&rsquo; symbols if present). Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<dl>
+<dt><a name="index-define-2"></a><u>MGL command:</u> <b>define</b><i> name smth</i></dt>
+<dd><p>Create scalar variable <code>name</code> which have the numeric value of <code>smth</code>. Later you can use this variable as usual number. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<a name="index-defchr"></a>
+<p><a name="defchr"></a>
+</p><dl>
+<dt><a name="index-defchr-1"></a><u>MGL command:</u> <b>defchr</b><i> $N smth</i></dt>
+<dd><p>Sets <var>N</var>-th script argument to character with value evaluated from <var>smth</var>. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<a name="index-defnum"></a>
+<p><a name="defnum"></a>
+</p><dl>
+<dt><a name="index-defnum-1"></a><u>MGL command:</u> <b>defnum</b><i> $N smth</i></dt>
+<dd><p>Sets <var>N</var>-th script argument to number with value evaluated from <var>smth</var>. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<a name="index-defpal"></a>
+<p><a name="defpal"></a>
+</p><dl>
+<dt><a name="index-defpal-1"></a><u>MGL command:</u> <b>defpal</b><i> $N smth</i></dt>
+<dd><p>Sets <var>N</var>-th script argument to palette character at position evaluated from <var>smth</var>. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+
+<a name="index-call"></a>
+<p><a name="call"></a>
+</p><dl>
+<dt><a name="index-call-1"></a><u>MGL command:</u> <b>call</b><i> 'fname' [ARG1 ARG2 ... ARG9]</i></dt>
+<dd><p>Executes function <var>fname</var> (or script if function is not found). Optional arguments will be passed to functions. See also <a href="#func">func</a>.
+</p></dd></dl>
+<a name="index-func"></a>
+<p><a name="func"></a>
+</p><dl>
+<dt><a name="index-func-1"></a><u>MGL command:</u> <b>func</b><i> 'fname' [narg=0]</i></dt>
+<dd><p>Define the function <var>fname</var> and number of required arguments. The arguments will be placed in script parameters $1, $2, ... $9. Note, you should stop script execution before function definition(s) by command <a href="#stop">stop</a>. See also <a href="#return">return</a>.
+</p></dd></dl>
+<a name="index-return"></a>
+<p><a name="return"></a>
+</p><dl>
+<dt><a name="index-return-1"></a><u>MGL command:</u> <b>return</b></dt>
+<dd><p>Return from the function. See also <a href="#func">func</a>.
+</p></dd></dl>
+
+
+<a name="index-if"></a>
+<p><a name="if"></a>
+</p><dl>
+<dt><a name="index-if-1"></a><u>MGL command:</u> <b>if</b><i> dat 'cond'</i></dt>
+<dd><p>Starts block which will be executed if <var>dat</var> satisfy to <var>cond</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-if-2"></a><u>MGL command:</u> <b>if</b><i> <code>val</code></i></dt>
+<dd><p>Starts block which will be executed if <code>val</code> is nonzero.
+</p></dd></dl>
+<a name="index-elseif"></a>
+<p><a name="elseif"></a>
+</p><dl>
+<dt><a name="index-elseif-1"></a><u>MGL command:</u> <b>elseif</b><i> dat 'cond'</i></dt>
+<dd><p>Starts block which will be executed if previous <code>if</code> or <code>elseif</code> is false and <var>dat</var> satisfy to <var>cond</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-elseif-2"></a><u>MGL command:</u> <b>elseif</b><i> <code>val</code></i></dt>
+<dd><p>Starts block which will be executed if previous <code>if</code> or <code>elseif</code> is false and <code>val</code> is nonzero.
+</p></dd></dl>
+<a name="index-else"></a>
+<p><a name="else"></a>
+</p><dl>
+<dt><a name="index-else-1"></a><u>MGL command:</u> <b>else</b></dt>
+<dd><p>Starts block which will be executed if previous <code>if</code> or <code>elseif</code> is false.
+</p></dd></dl>
+<a name="index-endif"></a>
+<p><a name="endif"></a>
+</p><dl>
+<dt><a name="index-endif-1"></a><u>MGL command:</u> <b>endif</b></dt>
+<dd><p>Finishes <code>if/elseif/else</code> block.
+</p></dd></dl>
+
+<a name="index-for"></a>
+<p><a name="for"></a>
+</p><dl>
+<dt><a name="index-for-1"></a><u>MGL command:</u> <b>for</b><i> $N <code>v1 v2 [dv=1]</code></i></dt>
+<dd><p>Starts cycle with $<var>N</var>-th argument changing from <var>v1</var> to <var>v2</var> with the step <var>dv</var>. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<dl>
+<dt><a name="index-for-2"></a><u>MGL command:</u> <b>for</b><i> $N dat</i></dt>
+<dd><p>Starts cycle with $<var>N</var>-th argument changing for <var>dat</var> values. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<a name="index-next"></a>
+<p><a name="next"></a>
+</p><dl>
+<dt><a name="index-next-1"></a><u>MGL command:</u> <b>next</b></dt>
+<dd><p>Finishes <code>for</code> cycle.
+</p></dd></dl>
+
+<a name="index-once"></a>
+<p><a name="once"></a>
+</p><dl>
+<dt><a name="index-once-1"></a><u>MGL command:</u> <b>once</b><i> <code>val</code></i></dt>
+<dd><p>The code between <code>once on</code> and <code>once off</code> will be executed only once. Useful for large data manipulation in programs like UDAV.
+</p></dd></dl>
+<a name="index-stop"></a>
+<p><a name="stop"></a>
+</p><dl>
+<dt><a name="index-stop-1"></a><u>MGL command:</u> <b>stop</b></dt>
+<dd><p>Terminate execution.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Command-options-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Program-flow-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Suffixes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Command-options-_0028MGL_0029-1"></a>
+<h2 class="section">8.24 Command options (MGL)</h2>
+
+<p>Command options allow the easy setup of the plot by changing of global settings only for this plot. Options are specified at the end of string. Each option is separated from the previous text by symbol &lsquo;<samp>;</samp>&rsquo;. Options work so that them remember the current settings, change settings as it being set in the option, execute command and return the original settings back. So, the options usage for data handling commands or for graphics setup commands is useless.
+</p>
+<p>The most useful options are <code>xrange, yrange, zrange</code>. They sets the boundaries for data change. This boundaries are used for automatically filled variables. So, these options allow one to change the position of some plots. For example, in command <code>plot y; xrange 0.1 0.9</code> the x coordinate will be equidistantly distributed in range 0.1 ... 0.9.
+</p>
+<p>The full list of options are:
+<a name="index-alpha-2"></a>
+<a name="index-alphadef-2"></a>
+</p><dl>
+<dt><a name="index-alpha-3"></a><u>MGL option:</u> <b>alpha</b><i> <code>val</code></i></dt>
+<dt><a name="index-alphadef-3"></a><u>MGL option:</u> <b>alphadef</b><i> <code>val</code></i></dt>
+<dd><p>Sets alpha value (transparency) of the plot. The value should be in range [0, 1]. See also <a href="#alphadef">alphadef</a>.
+</p></dd></dl>
+<a name="index-ambient-2"></a>
+<dl>
+<dt><a name="index-ambient-3"></a><u>MGL option:</u> <b>ambient</b><i> <code>val</code></i></dt>
+<dd><p>Sets brightness of ambient light for the plot. The value should be in range [0, 1]. See also <a href="#ambient">ambient</a>.
+</p></dd></dl>
+<a name="index-crange-3"></a>
+<dl>
+<dt><a name="index-crange-4"></a><u>MGL option:</u> <b>crange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Sets boundaries of color change for the plot. See also <a href="#crange">crange</a>.
+</p></dd></dl>
+<a name="index-xrange-3"></a>
+<dl>
+<dt><a name="index-xrange-4"></a><u>MGL option:</u> <b>xrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Sets boundaries of x coordinate change for the plot. See also <a href="#xrange">xrange</a>.
+</p></dd></dl>
+<a name="index-yrange-3"></a>
+<dl>
+<dt><a name="index-yrange-4"></a><u>MGL option:</u> <b>yrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Sets boundaries of y coordinate change for the plot. See also <a href="#yrange">yrange</a>.
+</p></dd></dl>
+<a name="index-zrange-3"></a>
+<dl>
+<dt><a name="index-zrange-4"></a><u>MGL option:</u> <b>zrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Sets boundaries of z coordinate change for the plot. See also <a href="#zrange">zrange</a>.
+</p></dd></dl>
+<a name="index-cut-4"></a>
+<dl>
+<dt><a name="index-cut-5"></a><u>MGL option:</u> <b>cut</b><i> <code>val</code></i></dt>
+<dd><p>Sets whether to cut or to project the plot points lying outside the bounding box. See also <a href="#cut">cut</a>.
+</p></dd></dl>
+<a name="index-fontsize"></a>
+<dl>
+<dt><a name="index-fontsize-1"></a><u>MGL option:</u> <b>fontsize</b><i> <code>val</code></i></dt>
+<dd><p>Sets the size of text. See also <a href="#font">font</a>.
+</p></dd></dl>
+<a name="index-marksize-2"></a>
+<dl>
+<dt><a name="index-marksize-3"></a><u>MGL option:</u> <b>marksize</b><i> <code>val</code></i></dt>
+<dd><p>Sets the size of marks. See also <a href="#marksize">marksize</a>.
+</p></dd></dl>
+<a name="index-meshnum-2"></a>
+<dl>
+<dt><a name="index-meshnum-3"></a><u>MGL option:</u> <b>meshnum</b><i> <code>val</code></i></dt>
+<dd><p>Work like <a href="#meshnum">meshnum</a> command.
+</p></dd></dl>
+<a name="index-legend-3"></a>
+<dl>
+<dt><a name="index-legend-4"></a><u>MGL option:</u> <b>legend</b><i> 'txt'</i></dt>
+<dd><p>Adds string &rsquo;txt&rsquo; to internal legend accumulator. The style of described line and mark is taken from arguments of the last <a href="#g_t1D-plotting-_0028MGL_0029">1D plotting (MGL)</a> command. See also <a href="#legend">legend</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Suffixes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Command-options-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Utilities" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Suffixes-for-variable"></a>
+<h2 class="section">8.25 Suffixes for variable</h2>
+
+<p>Suffixes can get some numerical value (like its size, maximal or minimal value, the sum of elements and so on) of the data array in variable and use it later as usual number in command arguments. The suffixes start from point &lsquo;<samp>.</samp>&rsquo; right after (without spaces) variable name or its sub-array. For example, <code>a.nx</code> give the x-size of data <var>a</var>, <code>b(1).max</code> give maximal value of second row of variable <var>b</var>, <code>(c(:,0)^2).sum</code> give the sum of squares of elements in the first column of <var>c</var> and so on.
+</p>
+<p>The full list of suffixes are:
+</p><dl compact="compact">
+<dt> <strong>nx, ny, nz</strong></dt>
+<dd><p>Give the data size in x-, y-, z-direction correspondingly.
+</p></dd>
+<dt> <strong>max</strong></dt>
+<dd><p>Give maximal value of the data.
+</p></dd>
+<dt> <strong>min</strong></dt>
+<dd><p>Give minimal value of the data.
+</p></dd>
+<dt> <strong>sum</strong></dt>
+<dd><p>Give sum of data values.
+</p></dd>
+<dt> <strong>a</strong></dt>
+<dd><p>Give first value of data array.
+</p></dd>
+<dt> <strong>fst</strong></dt>
+<dd><p>Give first nonzero value of data array.
+</p></dd>
+<dt> <strong>lst</strong></dt>
+<dd><p>Give last nonzero value of data array.
+</p></dd>
+<dt> <strong>mx, my, mz</strong></dt>
+<dd><p>Give x-, y-, z-position of data maximum.
+</p></dd>
+<dt> <strong>ax, ay, az, aa</strong></dt>
+<dd><p>Give x-, y-, z-position of data mass center or average data value.
+</p></dd>
+<dt> <strong>wx, wy, wz, wa</strong></dt>
+<dd><p>Give width in x-, y-, z-direction or data dispersion value.
+</p></dd>
+<dt> <strong>sx, sy, sz, sa</strong></dt>
+<dd><p>Give skewness in x-, y-, z-direction or data skewness value.
+</p></dd>
+<dt> <strong>kx, ky, kz, ka</strong></dt>
+<dd><p>Give kurtosis in x-, y-, z-direction or data kurtosis value.
+</p></dd>
+</dl>
+
+<hr size="6">
+<a name="Utilities"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Suffixes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Utilities-for-parsing-MGL"></a>
+<h2 class="section">8.26 Utilities for parsing MGL</h2>
+
+<p>MathGL library provides several tools for parsing MGL scripts. There is tools saving it to bitmap (<code>mgl2png</code>, <code>mgl2gif</code>) or vectorial (<code>mgl2eps</code>, <code>mgl2svg</code>) images. Tool <code>mglview</code> show MGL script and allow to rotate and setup the image. Also you can translate MGL script to C++ file by help of <code>mgl2cpp</code> tool.
+</p>
+<p>All of this tools have similar set of arguments. First argument is name of script file, next argument is optional output file name, last arguments are options. There are options for setting script parameters (it is <code>$0, $1, ... $9</code>) and locale settings. The script parameters have format &lsquo;<samp>-Nval</samp>&rsquo;. Here N=0,1...9 is parameter ID and val is its value. For example, option &lsquo;<samp>-1test</samp>&rsquo; set to substitute &lsquo;<samp>test</samp>&rsquo; instead of <code>$1</code> in the script. Option -Lval set locale to val. For example, &lsquo;<samp>-Lutf8</samp>&rsquo; will set UTF-8 locale for script.
+</p>
+<p>Additionally you can create animated GIF file or a set of JPEG files with names &lsquo;<samp>frameNNNN.jpg</samp>&rsquo; (here &lsquo;<samp>NNNN</samp>&rsquo; is frame index). You should use <code>mgl2gif</code> tool and specify the values of <code>$0</code> parameter for making animation. Values of the parameter <code>$0</code> can be specified inside the script by comment <code>##a val</code> for each value <code>val</code> (one comment for one value) or by option(s) &lsquo;<samp>-Aval</samp>&rsquo;. Also you can specify a cycle for animation by comment <code>##c v1 v2 dv</code> or by option <code>-Cn1:n2</code>. Tool <code>mgl2gif</code> will execute script several times (once for each specified value of <code>$0</code>) and save result in animated GIF file. For saving each frame in JPEG just add command <code>write ''</code> at the end of the script.
+</p>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_en.html/mathgl_en_9.html b/texinfo/mathgl_en.html/mathgl_en_9.html
new file mode 100644
index 0000000..4ea86a1
--- /dev/null
+++ b/texinfo/mathgl_en.html/mathgl_en_9.html
@@ -0,0 +1,8219 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: 9. Samples</title>
+
+<meta name="description" content="MathGL 1.11: 9. Samples">
+<meta name="keywords" content="MathGL 1.11: 9. Samples">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en_8.html#Utilities" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en_8.html#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Samples-1"></a>
+<h1 class="chapter">9. Samples</h1>
+<p>This chapter contain a lot of sample codes for all types of plots and for most important examples and hints. The same sample (with pictures) you can find at <a href="http://mathgl.sf.net/pictures.html">http://mathgl.sf.net/pictures.html</a>. 
+Most of examples have the sample code on 5 languages: C++, MGL, C, Fortran and Python. However, I put only C++ code for some of examples due to a lot of them and clearency how to write code for other languages. All samples are divided on 6 large categories.
+The minimal code to view the samples for different languages are following.
+<strong>C++ code</strong>
+For compilation use: <code>g++ -o sample sample.cpp -lmgl</code>.
+</p><pre class="verbatim">#include &lt;mgl/mgl_zb.h&gt;
+int main()
+{
+    mglGraph *gr = new mglGraphZB;
+    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // put sample code here
+    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    gr-&gt;ShowImage();    delete gr;
+    return 0;
+}
+</pre><p><strong>MGL code</strong>
+For preview use: <code>mglview sample.mgl</code>.
+</p><pre class="verbatim">#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# put sample code here
+#   --&gt;   you may use sample as is :)
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+</pre><p><strong>Pure C code</strong>
+For compilation use: <code>gcc -o sample sample.c -lmgl</code>.
+</p><pre class="verbatim">#include &lt;mgl/mgl_c.h&gt;
+int main()
+{
+    HMGL gr = mgl_create_graph_zb(600,400);
+    /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    /* put sample code here              */
+    /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    mgl_show_image(gr,&quot;&quot;,0);
+    mgl_delete_graph(gr);
+    return 0;
+}
+</pre><p><strong>Fortran code</strong>
+For compilation use: <code>gfortran -o sample sample.f90 -lmgl</code>. Note, fortran don&rsquo;t have argument checking. So you have to take special attention to pass real variables to real arguments of functions and integer variables to integer arguments of functions. There is no other special checking for that!!!
+</p><pre class="verbatim">integer gr, mgl_create_graph_zb
+gr = mgl_create_graph_zb(600,400)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! put sample code here
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+call mgl_show_image(gr,'',0)
+call mgl_delete_graph(gr)
+end
+</pre><p><strong>Python</strong>
+For preview use: <code>python sample.py</code>.
+</p><pre class="verbatim">from mathgl import *
+gr = mglGraph();
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# put sample code here
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+gr.ShowImage();
+</pre><table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting-samples">9.1 1D plotting samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting-samples">9.2 2D plotting samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting-samples">9.3 3D plotting samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting-samples">9.4 Dual plotting samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Basic-features">9.5 Basic features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Additional-features">9.6 Additional features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Advanced-features">9.7 Advanced features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+</table>
+<hr size="6">
+<a name="g_t1D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-plotting-samples-1"></a>
+<h2 class="section">9.1 1D plotting samples</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plot-sample">9.1.1 Plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Radar-sample">9.1.2 Radar sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tens-sample">9.1.3 Tens sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area-sample">9.1.4 Area sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area-gradient-sample">9.1.5 Area with gradient filling sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-sample">9.1.6 Bars sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-2-colors-sample">9.1.7 Bars 2 colors sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-above-sample">9.1.8 Bars above sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-fall-sample">9.1.9 Bars fall sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Barh-sample">9.1.10 Barh sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Step-sample">9.1.11 Step sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stem-sample">9.1.12 Stem sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region-sample">9.1.13 Region sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region-gradient-sample">9.1.14 Region gradient sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Error-sample">9.1.15 Error sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#BoxPlot-sample">9.1.16 BoxPlot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mark-sample">9.1.17 Mark sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TextMark-sample">9.1.18 TextMark sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tube-sample">9.1.19 Tube sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-sample">9.1.20 Text sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Torus-sample">9.1.21 Torus sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Chart-sample">9.1.22 Chart sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pie-chart-sample">9.1.23 Pie chart sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ring-chart-sample">9.1.24 Ring chart sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+<hr size="6">
+<a name="Plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Radar-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plot-sample-1"></a>
+<h3 class="subsection">9.1.1 Plot sample</h3>
+<a name="index-Plot-7"></a>
+<div class="float">
+<img src="../png/plot.png" alt="../png/plot">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Box();
+gr-&gt;Plot(y);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.Box();
+gr.Plot(y);
+</pre><hr size="6">
+<a name="Radar-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Radar-sample-1"></a>
+<h3 class="subsection">9.1.2 Radar sample</h3>
+<a name="index-Radar-2"></a>
+<div class="float">
+<img src="../png/radar.png" alt="../png/radar">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.4*sin(pi*(2*x+y/2))+0.1*rnd&quot;);
+gr-&gt;Radar(y,&quot;#&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.4*sin(pi*(2*x+y/2))+0.1*rnd'
+radar y '#'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.4*sin(pi*(2*x+y/2))+0.1*rnd&quot;,0);
+mgl_radar(gr,y,&quot;#&quot;,-1);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.4*sin(pi*(2*x+y/2))+0.1*rnd',0)
+call mgl_radar(gr,y,'#',-1.)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.4*sin(pi*(2*x+y/2))+0.1*rnd&quot;);
+gr.Radar(y,&quot;#&quot;);
+</pre><hr size="6">
+<a name="Tens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Radar-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tens-sample-1"></a>
+<h3 class="subsection">9.1.3 Tens sample</h3>
+<a name="index-Tens-4"></a>
+<div class="float">
+<img src="../png/tens.png" alt="../png/tens">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50), c(50);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;);
+c.Modify(&quot;sin(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Tens(y,c);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50
+new c 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify c 'sin(2*pi*x)'
+box
+tens y c
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,1,1);
+HMDT c = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(c,&quot;sin(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_tens(gr,y,c,NULL);
+mgl_delete_data(y);
+mgl_delete_data(c);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, c, mgl_create_data_size
+y = mgl_create_data_size(50,1,1)
+c = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(c,'sin(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_tens(gr,y,'')
+call mgl_delete_data(y)
+call mgl_delete_data(c)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50);
+c = mglData(50);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;);
+c.Modify(&quot;sin(2*pi*x)&quot;);
+gr.Box();
+gr.Tens(y,c);
+</pre><hr size="6">
+<a name="Area-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area-gradient-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-sample-1"></a>
+<h3 class="subsection">9.1.4 Area sample</h3>
+<a name="index-Area-4"></a>
+<div class="float">
+<img src="../png/area.png" alt="../png/area">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Area(y);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_area(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_area(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Area(y);
+</pre><hr size="6">
+<a name="Area-gradient-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-with-gradient-filling-sample"></a>
+<h3 class="subsection">9.1.5 Area with gradient filling sample</h3>
+<a name="index-Area-5"></a>
+<div class="float">
+<img src="../png/area_2.png" alt="../png/area_2">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Area(y,&quot;cbgGyr&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y 'cbgGyr'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_area(gr,y,&quot;cbgGyr&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_area(gr,y,'cbgGyr')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Area(y,&quot;cbgGyr&quot;);
+</pre><hr size="6">
+<a name="Bars-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area-gradient-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-2-colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-sample-1"></a>
+<h3 class="subsection">9.1.6 Bars sample</h3>
+<a name="index-Bars-4"></a>
+<div class="float">
+<img src="../png/bars.png" alt="../png/bars">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Bars(y);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y);
+</pre><hr size="6">
+<a name="Bars-2-colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-above-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-2-colors-sample-1"></a>
+<h3 class="subsection">9.1.7 Bars 2 colors sample</h3>
+<a name="index-Bars-5"></a>
+<div class="float">
+<img src="../png/bars_2.png" alt="../png/bars_2">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Bars(y,&quot;cbgGyr&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'cbgGyr'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,&quot;cbgGyr&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'cbgGyr')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,&quot;cbgGyr&quot;);
+</pre><hr size="6">
+<a name="Bars-above-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-2-colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-fall-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-above-sample-1"></a>
+<h3 class="subsection">9.1.8 Bars above sample</h3>
+<a name="index-Bars-6"></a>
+<div class="float">
+<img src="../png/bars_a.png" alt="../png/bars_a">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Bars(y,&quot;a&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'a'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,&quot;a&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'a')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,&quot;a&quot;);
+</pre><hr size="6">
+<a name="Bars-fall-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-above-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Barh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-fall-sample-1"></a>
+<h3 class="subsection">9.1.9 Bars fall sample</h3>
+<a name="index-Bars-7"></a>
+<div class="float">
+<img src="../png/bars_f.png" alt="../png/bars_f">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Bars(y,&quot;f&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'f'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,&quot;f&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'f')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,&quot;f&quot;);
+</pre><hr size="6">
+<a name="Barh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-fall-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Step-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Barh-sample-1"></a>
+<h3 class="subsection">9.1.10 Barh sample</h3>
+<a name="index-Barh-3"></a>
+<div class="float">
+<img src="../png/barh.png" alt="../png/barh">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Barh(y);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+barh y
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_barh(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_barh(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Barh(y);
+</pre><hr size="6">
+<a name="Step-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Barh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stem-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Step-sample-1"></a>
+<h3 class="subsection">9.1.11 Step sample</h3>
+<a name="index-Step-4"></a>
+<div class="float">
+<img src="../png/step.png" alt="../png/step">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Box();
+gr-&gt;Step(y);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+step y
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_box(gr,1);
+mgl_step(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_box(gr,1)
+call mgl_step(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.Box();
+gr.Step(y);
+</pre><hr size="6">
+<a name="Stem-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Step-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stem-sample-1"></a>
+<h3 class="subsection">9.1.12 Stem sample</h3>
+<a name="index-Stem-4"></a>
+<div class="float">
+<img src="../png/stem.png" alt="../png/stem">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Stem(y,&quot;o&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+stem y 'o'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_stem(gr,y,&quot;o&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_stem(gr,y,'o')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Stem(y,&quot;o&quot;);
+</pre><hr size="6">
+<a name="Region-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Stem-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region-gradient-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-sample-1"></a>
+<h3 class="subsection">9.1.13 Region sample</h3>
+<a name="index-Region-3"></a>
+<div class="float">
+<img src="../png/region.png" alt="../png/region">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y1(50), y2(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Region(y1,y2,&quot;r&quot;);
+gr-&gt;Plot(y1,&quot;k2&quot;);
+gr-&gt;Plot(y2,&quot;k2&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'r'
+plot y1 'k2'
+plot y2 'k2'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_region(gr,y1,y2,&quot;r&quot;,1);
+mgl_plot(gr,y1,&quot;k2&quot;);
+mgl_plot(gr,y2,&quot;k2&quot;);
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,'0.3*sin(2*pi*x)',0);
+call mgl_data_modify(y2,'0.5+0.3*cos(2*pi*x)',0);
+call mgl_box(gr,1);
+call mgl_region(gr,y1,y2,'r',1);
+call mgl_plot(gr,y1,'k2');
+call mgl_plot(gr,y2,'k2');
+call mgl_delete_data(y1);
+call mgl_delete_data(y2);
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y1, y2, x = mglData(50), mglData(50), mglData(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.Box();
+gr.Region(y1,y2,&quot;r&quot;);
+gr.Plot(y1,&quot;k2&quot;);
+gr.Plot(y2,&quot;k2&quot;);
+</pre><hr size="6">
+<a name="Region-gradient-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Error-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-gradient-sample-1"></a>
+<h3 class="subsection">9.1.14 Region gradient sample</h3>
+<a name="index-Region-4"></a>
+<div class="float">
+<img src="../png/region_2.png" alt="../png/region_2">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y1(50), y2(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Region(y1,y2,&quot;yr&quot;);
+gr-&gt;Plot(y1,&quot;k2&quot;);
+gr-&gt;Plot(y2,&quot;k2&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'yr'
+plot y1 'k2'
+plot y2 'k2'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_region(gr,y1,y2,&quot;yr&quot;,1);
+mgl_plot(gr,y1,&quot;k2&quot;);
+mgl_plot(gr,y2,&quot;k2&quot;);
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,'0.3*sin(2*pi*x)',0);
+call mgl_data_modify(y2,'0.5+0.3*cos(2*pi*x)',0);
+call mgl_box(gr,1);
+call mgl_region(gr,y1,y2,'yr',1);
+call mgl_plot(gr,y1,'k2');
+call mgl_plot(gr,y2,'k2');
+call mgl_delete_data(y1);
+call mgl_delete_data(y2);
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y1, y2, x = mglData(50), mglData(50), mglData(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.Box();
+gr.Region(y1,y2,&quot;yr&quot;);
+gr.Plot(y1,&quot;k2&quot;);
+gr.Plot(y2,&quot;k2&quot;);
+</pre><hr size="6">
+<a name="Error-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region-gradient-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#BoxPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Error-sample-1"></a>
+<h3 class="subsection">9.1.15 Error sample</h3>
+<a name="index-Error-6"></a>
+<div class="float">
+<img src="../png/error.png" alt="../png/error">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,1), x0(10), y0(10), ex(10), ey(10);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+x0.Modify(&quot;2*x-1 + 0.1*rnd-0.05&quot;);
+y0.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1&quot;);
+ey.Modify(&quot;0.2&quot;); ex.Modify(&quot;0.1&quot;);
+gr-&gt;Box();
+gr-&gt;Plot(y);
+gr-&gt;Error(x0,y0,ex,ey,&quot;ko&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50
+new x0 10
+new y0 10
+new ex 10
+new ey 10
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify x0 '2*x-1 + 0.1*rnd-0.05'
+modify y0 '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1'
+modify ey '0.2'
+modify ex '0.1'
+box
+plot y
+error x0 y0 ex ey 'ko'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,1,1);
+HMDT x0 = mgl_create_data_size(10,1,1);
+HMDT y0 = mgl_create_data_size(10,1,1);
+HMDT ex = mgl_create_data_size(10,1,1);
+HMDT ey = mgl_create_data_size(10,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(x0,&quot;2*x-1 + 0.1*rnd-0.05&quot;,0);
+mgl_data_modify(y0,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1&quot;,0);
+mgl_data_modify(ey,&quot;0.2&quot;,0); mgl_data_modify(ex,&quot;0.1&quot;,0);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_error_exy(gr,x0,y0,ex,ey,&quot;ko&quot;);
+mgl_delete_data(x0); mgl_delete_data(y0);
+mgl_delete_data(ex); mgl_delete_data(ey);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, x0, y0, ex, ey, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+x0 = mgl_create_data_size(10,1,1)
+y0 = mgl_create_data_size(10,1,1)
+ex = mgl_create_data_size(10,1,1)
+ey = mgl_create_data_size(10,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(x0,'2*x-1 + 0.1*rnd-0.05',0);
+call mgl_data_modify(y0,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + &amp;
+                         0.2*sin(pi*x) + 0.2*rnd-0.1',0);
+call mgl_data_modify(ey,'0.2',0)
+call mgl_data_modify(ex,'0.1',0);
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_error_exy(gr,x0,y0,ex,ey,'ko')
+call mgl_delete_data(x0)
+call mgl_delete_data(y0)
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y, x0, y0, ex, ey = mglData(50,1), mglData(10), mglData(10), mglData(10), mglData(10);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+x0.Modify(&quot;2*x-1+0.1*rnd-0.05&quot;);
+y0.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)+0.2*rnd-0.1&quot;);
+ey.Modify(&quot;0.2&quot;);   ex.Modify(&quot;0.1&quot;);
+gr.Box();           gr.Plot(y);
+gr.Error(x0,y0,ex,ey,&quot;ko&quot;);
+</pre><hr size="6">
+<a name="BoxPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Error-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mark-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="BoxPlot-sample-1"></a>
+<h3 class="subsection">9.1.16 BoxPlot sample</h3>
+<a name="index-BoxPlot-3"></a>
+<div class="float">
+<img src="../png/boxplot.png" alt="../png/boxplot">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(10,7);
+a.Modify(&quot;(2*rnd-1)^3/2&quot;);
+gr-&gt;BoxPlot(a);
+gr-&gt;Box();
+gr-&gt;Plot(a,&quot; ko&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 10 7
+modify a '(2*rnd-1)^3/2'
+boxplot a
+box:plot a ' ko'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(10,7,1);
+mgl_data_modify(a,&quot;(2*rnd-1)^3/2&quot;,0);
+mgl_box(gr,1);
+mgl_plot(gr,a,&quot; ko&quot;);
+mgl_boxplot(gr,a,NULL);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+y = mgl_create_data_size(10,7,1)
+call mgl_data_modify(a,'(2*rnd-1)^3/2',0);
+call mgl_box(gr,1)
+call mgl_plot(gr,a,' ko')
+call mgl_boxplot(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(10,7);
+a.Modify(&quot;(2*rnd-1)^3/2&quot;);
+gr.Box();
+gr.Plot(a,&quot; ko&quot;);
+gr.BoxPlot(a);
+</pre><hr size="6">
+<a name="Mark-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#BoxPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TextMark-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mark-sample-1"></a>
+<h3 class="subsection">9.1.17 Mark sample</h3>
+<a name="index-Mark-7"></a>
+<div class="float">
+<img src="../png/mark.png" alt="../png/mark">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3), y1(50);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Mark(y,y1,&quot;bs&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+mark y y1 'bs'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+HMDT y1 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_mark_y(gr,y,y1,&quot;bs&quot;);
+mgl_delete_data(y);
+mgl_delete_data(y1);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, y1, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+y1 = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_data_modify(y1,'0.5+0.3*cos(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_mark_y(gr,y,y1,'bs')
+call mgl_delete_data(y)
+call mgl_delete_data(y1)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y, y1 = mglData(50,3), mglData(50);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);     y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.Box();
+gr.Mark(y,y1,&quot;bs&quot;);
+</pre><hr size="6">
+<a name="TextMark-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mark-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tube-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TextMark-sample-1"></a>
+<h3 class="subsection">9.1.18 TextMark sample</h3>
+<a name="index-TextMark-9"></a>
+<div class="float">
+<img src="../png/textmark.png" alt="../png/textmark">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3), y1(50);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;TextMark(y,y1,&quot;\\gamma&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+textmark y y1 '\gamma'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y, y1;
+y = mgl_create_data_size(50,3,1);
+y1 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_textmark_yr(gr,y,y1,&quot;\\gamma&quot;,&quot;&quot;);
+mgl_delete_data(y);
+mgl_delete_data(y1);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, y1, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+y1 = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_data_modify(y1,'0.5+0.3*cos(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_textmark_yr(gr,y,y1,'\gamma','')
+call mgl_delete_data(y)
+call mgl_delete_data(y1)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y, y1 = mglData(50,3), mglData(50);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);     y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.Box();
+gr.TextMark(y,y1,&quot;\\gamma&quot;);
+</pre><hr size="6">
+<a name="Tube-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TextMark-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tube-sample-1"></a>
+<h3 class="subsection">9.1.19 Tube sample</h3>
+<a name="index-Tube-7"></a>
+<div class="float">
+<img src="../png/tube.png" alt="../png/tube">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Tube(y,0.05);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+rotate 40 60
+light on
+box
+tube y 0.05
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_tube(gr,y,0.05,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_tube(gr,y,0.05,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);  y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Tube(y,0.05);
+</pre><hr size="6">
+<a name="Text-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tube-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Torus-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-sample-1"></a>
+<h3 class="subsection">9.1.20 Text sample</h3>
+<a name="index-Text-9"></a>
+<div class="float">
+<img src="../png/text.png" alt="../png/text">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Box();
+gr-&gt;Plot(y.SubData(-1,0));
+gr-&gt;Text(y,&quot;This is very long string drawn along a curve&quot;,&quot;:k&quot;);
+gr-&gt;Text(y,&quot;Another string drawn above a curve&quot;,&quot;T:r&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y(:,0)
+text y 'This is very long string drawn along a curve' ':k'
+text y 'Another string drawn above a curve' 'T:r'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_text_y(gr,y,&quot;This is very long string drawn along a curve&quot;,&quot;:k&quot;,-1.);
+mgl_text_y(gr,y,&quot;Another string drawn above a curve&quot;,&quot;T:r&quot;,-1.);
+mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_text_y(gr,y,'This is very long string drawn along a curve',':k',-1.)
+call mgl_text_y(gr,y,'Another string drawn above a curve','T:r',-1.)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);     y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.Box();
+gr.Plot(y.SubData(-1,0));
+gr.Text(y,&quot;This is very long string drawn along a curve&quot;,&quot;:k&quot;);
+gr.Text(y,&quot;Another string drawn above a curve&quot;,&quot;T:r&quot;);
+</pre><hr size="6">
+<a name="Torus-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Torus-sample-1"></a>
+<h3 class="subsection">9.1.21 Torus sample</h3>
+<a name="index-Torus-3"></a>
+<div class="float">
+<img src="../png/torus.png" alt="../png/torus">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y1(50), y2(50);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+y2.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Torus(y1,y2,&quot;pz&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+rotate 40 60
+light on
+box
+torus y1 y2 'pz'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_torus(gr,y1,y2,&quot;pz&quot;);
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+call mgl_data_modify(y2,&quot;0.3*sin(2*pi*x)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_torus(gr,y1,y2,'pz')
+call mgl_delete_data(y1)
+call mgl_delete_data(y2)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y1, y2 = mglData(50), mglData(50);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+y2.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+gr.Rotate(40,60);    gr.Light(True);
+gr.Box();
+gr.Torus(y1,y2,&quot;pz&quot;);
+</pre><hr size="6">
+<a name="Chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Torus-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pie-chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Chart-sample-1"></a>
+<h3 class="subsection">9.1.22 Chart sample</h3>
+<a name="index-Chart-2"></a>
+<div class="float">
+<img src="../png/chart.png" alt="../png/chart">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData ch(7,2);
+ch.Modify(&quot;rnd+0.1&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Chart(ch,&quot;#&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+box
+chart ch
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,&quot;rnd+0.1&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_chart(gr,ch,&quot;#&quot;);
+mgl_delete_data(ch);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'#')
+call mgl_delete_data(ch)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ch = mglData(7,2);  ch.Modify(&quot;rnd+0.1&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Chart(ch,&quot;#&quot;);
+</pre><hr size="6">
+<a name="Pie-chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ring-chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pie-chart-sample-1"></a>
+<h3 class="subsection">9.1.23 Pie chart sample</h3>
+<a name="index-Chart-3"></a>
+<a name="index-Axis-4"></a>
+<div class="float">
+<img src="../png/pie_chart.png" alt="../png/pie_chart">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData ch(7,2);
+ch.Modify(&quot;rnd+0.1&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;SetFunc(&quot;(y+1)/2*cos(pi*x)&quot;,&quot;(y+1)/2*sin(pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Chart(ch,&quot;bgr cmy#&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+1)/2*cos(pi*x)' '(y+1)/2*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,&quot;rnd+0.1&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_func(gr,&quot;(y+1)/2*cos(pi*x)&quot;,&quot;(y+1)/2*sin(pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_chart(gr,ch,&quot;bgr cmy#&quot;);
+mgl_delete_data(ch);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_func(gr,'(y+1)/2*cos(pi*x)','(y+1)/2*sin(pi*x)','');
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'bgr cmy#')
+call mgl_delete_data(ch)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ch = mglData(7,2);  ch.Modify(&quot;rnd+0.1&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.SetFunc(&quot;(y+1)/2*cos(pi*x)&quot;,&quot;(y+1)/2*sin(pi*x)&quot;);
+gr.Box();
+gr.Chart(ch,&quot;bgr cmy#&quot;);
+</pre><hr size="6">
+<a name="Ring-chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pie-chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ring-chart-sample-1"></a>
+<h3 class="subsection">9.1.24 Ring chart sample</h3>
+<a name="index-Chart-4"></a>
+<a name="index-Axis-5"></a>
+<div class="float">
+<img src="../png/ring_chart.png" alt="../png/ring_chart">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData ch(7,2);
+ch.Modify(&quot;rnd+0.1&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;SetFunc(&quot;(y+2)/3*cos(pi*x)&quot;,&quot;(y+2)/3*sin(pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Chart(ch,&quot;bgr cmy#&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+2)/3*cos(pi*x)' '(y+2)/3*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,&quot;rnd+0.1&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_func(gr,&quot;(y+2)/3*cos(pi*x)&quot;,&quot;(y+2)/3*sin(pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_chart(gr,ch,&quot;bgr cmy#&quot;);
+mgl_delete_data(ch);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_func(gr,'(y+2)/3*cos(pi*x)','(y+2)/3*sin(pi*x)','');
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'bgr cmy#')
+call mgl_delete_data(ch)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ch = mglData(7,2);  ch.Modify(&quot;rnd+0.1&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.SetFunc(&quot;(y+2)/3*cos(pi*x)&quot;,&quot;(y+2)/3*sin(pi*x)&quot;);
+gr.Box();
+gr.Chart(ch,&quot;bgr cmy#&quot;);
+</pre><hr size="6">
+<a name="g_t2D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ring-chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-plotting-samples-1"></a>
+<h2 class="section">9.2 2D plotting samples</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf-sample">9.2.1 Surf sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transparent-surface-sample">9.2.2 Transparent surface sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surface-in-fog-sample">9.2.3 Surface in fog sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Sharp-colors-sample">9.2.4 Sharp colors sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mesh-sample">9.2.5 Mesh sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fall-sample">9.2.6 Fall sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Belt-sample">9.2.7 Belt sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tile-sample">9.2.8 Tile sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Boxs-sample">9.2.9 Boxs sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens-sample">9.2.10 Dens sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-sample">9.2.11 Cont sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF-sample">9.2.12 ContF sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContD-sample">9.2.13 ContD sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axial-sample">9.2.14 Axial sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grad-sample">9.2.15 Grad sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+</table>
+<hr size="6">
+<a name="Surf-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparent-surface-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-sample-1"></a>
+<h3 class="subsection">9.2.1 Surf sample</h3>
+<a name="index-Surf-6"></a>
+<div class="float">
+<img src="../png/surf.png" alt="../png/surf">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Surf(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Surf(a);
+</pre><hr size="6">
+<a name="Transparent-surface-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surface-in-fog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transparent-surface-sample-1"></a>
+<h3 class="subsection">9.2.2 Transparent surface sample</h3>
+<a name="index-Surf-7"></a>
+<a name="index-Alpha-2"></a>
+<div class="float">
+<img src="../png/surf_alpha.png" alt="../png/surf_alpha">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Surf(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surf a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Alpha(True);
+gr.Surf(a);
+</pre><hr size="6">
+<a name="Surface-in-fog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparent-surface-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Sharp-colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surface-in-fog-sample-1"></a>
+<h3 class="subsection">9.2.3 Surface in fog sample</h3>
+<a name="index-Surf-8"></a>
+<a name="index-Fog-2"></a>
+<div class="float">
+<img src="../png/surf_fog.png" alt="../png/surf_fog">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Fog(1);
+gr-&gt;Box();
+gr-&gt;Surf(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+fog 1
+box
+surf a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_fog(gr,1.,0.25);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_fog(gr,1.,0.25)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Fog(1);
+gr.Surf(a);
+</pre><hr size="6">
+<a name="Sharp-colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surface-in-fog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mesh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Sharp-colors-sample-1"></a>
+<h3 class="subsection">9.2.4 Sharp colors sample</h3>
+<a name="index-Surf-9"></a>
+<div class="float">
+<img src="../png/surf_sl.png" alt="../png/surf_sl">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Surf(a,&quot;BbcyrR|&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a 'BbcyrR|'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,&quot;BbcyrR|&quot;);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'BbcyrR|')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Surf(a,&quot;BbcyrR|&quot;);
+</pre><hr size="6">
+<a name="Mesh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Sharp-colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fall-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mesh-sample-1"></a>
+<h3 class="subsection">9.2.5 Mesh sample</h3>
+<a name="index-Mesh-3"></a>
+<div class="float">
+<img src="../png/mesh.png" alt="../png/mesh">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Mesh(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+mesh a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_mesh(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_mesh(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Mesh(a);
+</pre><hr size="6">
+<a name="Fall-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mesh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Belt-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fall-sample-1"></a>
+<h3 class="subsection">9.2.6 Fall sample</h3>
+<a name="index-Fall-3"></a>
+<div class="float">
+<img src="../png/fall.png" alt="../png/fall">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Fall(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+fall a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_fall(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_fall(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Fall(a);
+</pre><hr size="6">
+<a name="Belt-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fall-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tile-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Belt-sample-1"></a>
+<h3 class="subsection">9.2.7 Belt sample</h3>
+<a name="index-Belt-3"></a>
+<div class="float">
+<img src="../png/belt.png" alt="../png/belt">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Belt(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+belt a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_belt(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_belt(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Belt(a);
+</pre><hr size="6">
+<a name="Tile-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Belt-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Boxs-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tile-sample-1"></a>
+<h3 class="subsection">9.2.8 Tile sample</h3>
+<a name="index-Tile-3"></a>
+<div class="float">
+<img src="../png/tile.png" alt="../png/tile">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Tile(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+tile a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_tile(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_tile(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Tile(a);
+</pre><hr size="6">
+<a name="Boxs-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tile-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Boxs-sample-1"></a>
+<h3 class="subsection">9.2.9 Boxs sample</h3>
+<a name="index-Boxs-3"></a>
+<div class="float">
+<img src="../png/boxs.png" alt="../png/boxs">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);  gr-&gt;Light(true);
+gr-&gt;Org = mglPoint(0,0,0);
+gr-&gt;Box();
+gr-&gt;Boxs(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+origin 0 0 0
+box
+boxs a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_boxs(gr,a,0,0.);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_origin(gr,0.,0.,0.);
+call mgl_box(gr,1)
+call mgl_boxs(gr,a,'',0.)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);       gr.Light(True);
+gr.SetOrigin(0.,0.,0.); gr.Box();
+gr.Boxs(a);
+</pre><hr size="6">
+<a name="Dens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Boxs-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-sample-1"></a>
+<h3 class="subsection">9.2.10 Dens sample</h3>
+<a name="index-Dens-3"></a>
+<a name="index-Colorbar-6"></a>
+<div class="float">
+<img src="../png/dens.png" alt="../png/dens">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Dens(a);
+gr-&gt;Colorbar();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+dens a
+colorbar
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_dens(gr,a,0,0);
+mgl_colorbar(gr,&quot;&quot;,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_dens(gr,a,'',0)
+call mgl_colorbar(gr,'',0)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.Dens(a);
+gr.Colorbar();
+</pre><hr size="6">
+<a name="Cont-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-sample-1"></a>
+<h3 class="subsection">9.2.11 Cont sample</h3>
+<a name="index-Cont-5"></a>
+<div class="float">
+<img src="../png/cont.png" alt="../png/cont">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Cont(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+cont a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_cont(gr,a,0,7,NAN);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+real zero, nan
+! I don't know the NaN symbol in Fortran. So I produce it as zero/zero
+zero = 0; nan = zero/zero 
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_cont(gr,a,'',7,nan)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);
+gr.Box();
+gr.Cont(a);
+</pre><hr size="6">
+<a name="ContF-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContD-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF-sample-1"></a>
+<h3 class="subsection">9.2.12 ContF sample</h3>
+<a name="index-ContF-5"></a>
+<div class="float">
+<img src="../png/contf.png" alt="../png/contf">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);  gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;ContF(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+contf a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_contf(gr,a,0,7,NAN);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+real zero, nan
+! I don't know the NaN symbol in Fortran. So I produce it as zero/zero
+zero = 0; nan = zero/zero
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_contf(gr,a,'',7,nan)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.ContF(a);
+</pre><hr size="6">
+<a name="ContD-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axial-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContD-sample-1"></a>
+<h3 class="subsection">9.2.13 ContD sample</h3>
+<a name="index-ContD-5"></a>
+<div class="float">
+<img src="../png/contd.png" alt="../png/contd">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40), v(9);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+v.Fill(-1,1);
+gr-&gt;Box();
+gr-&gt;ContD(v,a);
+gr-&gt;Colorbar(v);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+var v 9 -1 1
+box
+contd v a
+colorbar v
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+HMDT v = mgl_create_data_size(9,1,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_fill(v,-1.,1.,'x');
+mgl_box(gr,1);
+mgl_contd_val(gr,v,a,0,0);
+mgl_colorbar_val(gr,v,NULL,0);
+mgl_delete_data(a);
+mgl_delete_data(v);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, v, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+v = mgl_create_data_size(9,1,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_fill(v,-1.,1.,'x');
+call mgl_box(gr,1)
+call mgl_contd_val(gr,v,a,'',0);
+call mgl_colorbar_val(gr,v,NULL,0);
+call mgl_delete_data(a)
+call mgl_delete_data(v)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, v = mglData(50,40), mglData(9);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+v.Fill(-1,1);
+gr.Box();
+gr.ContD(v,a);
+gr.Colorbar(v);
+</pre><hr size="6">
+<a name="Axial-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContD-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grad-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axial-sample-1"></a>
+<h3 class="subsection">9.2.14 Axial sample</h3>
+<a name="index-Axial-5"></a>
+<div class="float">
+<img src="../png/axial.png" alt="../png/axial">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Axial(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+axial a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_axial(gr,a,&quot;&quot;,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_axial(gr,a,'',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.Box();
+gr.Axial(a);
+</pre><hr size="6">
+<a name="Grad-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axial-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grad-sample-1"></a>
+<h3 class="subsection">9.2.15 Grad sample</h3>
+<a name="index-Grad-4"></a>
+<div class="float">
+<img src="../png/grad.png" alt="../png/grad">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();  gr-&gt;Alpha(true);    gr-&gt;Dens(a);
+gr-&gt;Grad(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box:alpha on:dens a
+grad a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_set_alpha(gr,1);
+mgl_dens(gr,a,0,0);
+mgl_grad(gr,a,0,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_dens(gr,a,'',0)
+call mgl_grad(gr,a,'',0)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();   gr.Alpha(1);    gr.Dens(a);
+gr.Colorbar();
+</pre><hr size="6">
+<a name="g_t3D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grad-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-plotting-samples-1"></a>
+<h2 class="section">9.3 3D plotting samples</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf3-sample">9.3.1 Surf3 sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cloud-sample">9.3.2 Cloud sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CloudP-sample">9.3.3 CloudP sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens3-sample">9.3.4 Dens3 sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont3-sample">9.3.5 Cont3 sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF3-sample">9.3.6 ContF3 sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-projection-sample">9.3.7 Cont projection sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens-projection-sample">9.3.8 Dens projection sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutMinMax-sample">9.3.9 CutMinMax sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutOff-sample">9.3.11 CutOff sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+<hr size="6">
+<a name="Surf3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cloud-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3-sample-1"></a>
+<h3 class="subsection">9.3.1 Surf3 sample</h3>
+<a name="index-Surf3-5"></a>
+<div class="float">
+<img src="../png/surf3.png" alt="../png/surf3">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Surf3(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+box
+surf3 a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf3(gr,a,0,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.Box();
+gr.Surf3(a);
+</pre><hr size="6">
+<a name="Cloud-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CloudP-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cloud-sample-1"></a>
+<h3 class="subsection">9.3.2 Cloud sample</h3>
+<a name="index-Cloud-2"></a>
+<div class="float">
+<img src="../png/cloud.png" alt="../png/cloud">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Cloud(a,&quot;wyrRk&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+box
+cloud a 'wyrRk'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_cloud(gr,a,&quot;wyrRk&quot;,1.);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_cloud(gr,a,'wyrRk',1.)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Alpha(True);
+gr.Box();
+gr.Cloud(a,&quot;wyrRk&quot;);
+</pre><hr size="6">
+<a name="CloudP-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cloud-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CloudP-sample-1"></a>
+<h3 class="subsection">9.3.3 CloudP sample</h3>
+<a name="index-CloudP-3"></a>
+<div class="float">
+<img src="../png/cloudp.png" alt="../png/cloudp">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;CloudP(a,&quot;wyrRk&quot;);
+</pre><p><strong>MGL code</strong>
+Not available.
+<strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_cloudp(gr,a,&quot;wyrRk&quot;,1.);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_cloudp(gr,a,'wyrRk',1.)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+Not available.
+</p><hr size="6">
+<a name="Dens3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CloudP-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens3-sample-1"></a>
+<h3 class="subsection">9.3.4 Dens3 sample</h3>
+<a name="index-Dens3-3"></a>
+<a name="index-Axis-6"></a>
+<div class="float">
+<img src="../png/densa.png" alt="../png/densa">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);  gr-&gt;Alpha(true);    gr-&gt;Org = mglPoint(0,0,0);
+gr-&gt;Box();
+gr-&gt;DensA(a);
+gr-&gt;Axis();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+origin 0 0 0
+box
+densa a
+axis
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_alpha(gr,1);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_dens3_all(gr,a,0);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_alpha(gr,1)
+call mgl_set_origin(gr,0.,0.,0.);
+call mgl_box(gr,1)
+call mgl_dens3_all(gr,a,'')
+call mgl_axis(gr,&quot;xyz&quot;)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);       gr.Alpha(True);
+gr.SetOrigin(0,0,0);    gr.Box();
+gr.Axis();
+gr.DensA(a);
+</pre><hr size="6">
+<a name="Cont3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont3-sample-1"></a>
+<h3 class="subsection">9.3.5 Cont3 sample</h3>
+<a name="index-Cont3-5"></a>
+<div class="float">
+<img src="../png/conta.png" alt="../png/conta">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;ContA(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+conta a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_cont_all(gr,a,0,7);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_cont_all(gr,a,'',7)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);
+gr.Box();
+gr.ContA(a);
+</pre><hr size="6">
+<a name="ContF3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-projection-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF3-sample-1"></a>
+<h3 class="subsection">9.3.6 ContF3 sample</h3>
+<a name="index-ContF3-5"></a>
+<div class="float">
+<img src="../png/contfa.png" alt="../png/contfa">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);  gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;ContFA(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+box
+contfa a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_contf_all(gr,a,0,7);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_contf_all(gr,a,'',7)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.ContFA(a);
+</pre><hr size="6">
+<a name="Cont-projection-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens-projection-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-projection-sample-1"></a>
+<h3 class="subsection">9.3.7 Cont projection sample</h3>
+<a name="index-ContX-3"></a>
+<a name="index-ContY-3"></a>
+<a name="index-ContZ-3"></a>
+<div class="float">
+<img src="../png/cont_xyz.png" alt="../png/cont_xyz">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;ContX(a.Sum(&quot;x&quot;),&quot;&quot;,-1);
+gr-&gt;ContY(a.Sum(&quot;y&quot;),&quot;&quot;,1);
+gr-&gt;ContZ(a.Sum(&quot;z&quot;),&quot;&quot;,-1);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+contx s '' -1
+sum s a 'y'
+conty s '' 1
+sum s a 'z'
+contz s '' -1
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40), s;
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+s=mgl_data_sum(a,&quot;x&quot;); mgl_cont_x(gr,s,0,-1.,7); mgl_delete_data(s);
+s=mgl_data_sum(a,&quot;y&quot;); mgl_cont_y(gr,s,0,1.,7); mgl_delete_data(s);
+s=mgl_data_sum(a,&quot;z&quot;); mgl_cont_z(gr,s,0,-1.,7); mgl_delete_data(s);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,s, mgl_create_data_size, mgl_data_sum
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+s=mgl_data_sum(a,'x')
+call mgl_cont_x(gr,s,'',-1.,7)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'y')
+call mgl_cont_y(gr,s,'',1.,7)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'z')
+call mgl_cont_z(gr,s,'',-1.,7)
+call mgl_delete_data(s)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);               gr.Box();
+gr.ContX(a.Sum(&quot;x&quot;),&quot;&quot;,-1);
+gr.ContY(a.Sum(&quot;y&quot;),&quot;&quot;,1);
+gr.ContZ(a.Sum(&quot;z&quot;),&quot;&quot;,-1);
+</pre><hr size="6">
+<a name="Dens-projection-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-projection-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutMinMax-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-projection-sample-1"></a>
+<h3 class="subsection">9.3.8 Dens projection sample</h3>
+<a name="index-DensX-2"></a>
+<a name="index-DensY-2"></a>
+<a name="index-DensZ-2"></a>
+<div class="float">
+<img src="../png/dens_xyz.png" alt="../png/dens_xyz">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;DensX(a.Sum(&quot;x&quot;),&quot;&quot;,-1);
+gr-&gt;DensY(a.Sum(&quot;y&quot;),&quot;&quot;,1);
+gr-&gt;DensZ(a.Sum(&quot;z&quot;),&quot;&quot;,-1);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+densx s '' -1
+sum s a 'y'
+densy s '' 1
+sum s a 'z'
+densz s '' -1
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a, s; a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+s=mgl_data_sum(a,&quot;x&quot;); mgl_dens_x(gr,s,0,-1.); mgl_delete_data(s);
+s=mgl_data_sum(a,&quot;y&quot;); mgl_dens_y(gr,s,0,1.); mgl_delete_data(s);
+s=mgl_data_sum(a,&quot;z&quot;); mgl_dens_z(gr,s,0,-1.); mgl_delete_data(s);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,s, mgl_create_data_size, mgl_data_sum
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+s=mgl_data_sum(a,'x')
+call mgl_dens_x(gr,s,'',-1.)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'y')
+call mgl_dens_y(gr,s,'',1.)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'z')
+call mgl_dens_z(gr,s,'',-1.)
+call mgl_delete_data(s)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);               gr.Box();
+gr.DensX(a.Sum(&quot;x&quot;),&quot;&quot;,-1);
+gr.DensY(a.Sum(&quot;y&quot;),&quot;&quot;,1);
+gr.DensZ(a.Sum(&quot;z&quot;),&quot;&quot;,-1);
+</pre><hr size="6">
+<a name="CutMinMax-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens-projection-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Isocaps-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutMinMax-sample-1"></a>
+<h3 class="subsection">9.3.9 CutMinMax sample</h3>
+<a name="index-Surf3-6"></a>
+<a name="index-CutMin"></a>
+<a name="index-CutMax"></a>
+<div class="float">
+<img src="../png/cutminmax.png" alt="../png/cutminmax">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;CutMin = mglPoint(0,-1,-1); gr-&gt;CutMax = mglPoint(1,0,1);
+gr-&gt;Box();
+gr-&gt;Surf3(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut 0 -1 -1 1 0 1
+box
+surf3 a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.);
+mgl_box(gr,1);
+mgl_surf3(gr,a,0,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.);
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.SetCutBox(0,-1,-1,1,0,1);    gr.Box();
+gr.Surf3(a);
+</pre><hr size="6">
+<a name="Isocaps-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutMinMax-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutOff-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Isocaps_0027_0027-sample"></a>
+<h3 class="subsection">9.3.10 &ldquo;Isocaps&rdquo; sample</h3>
+<a name="index-Surf3-7"></a>
+<a name="index-ContF3-6"></a>
+<a name="index-CutMin-1"></a>
+<a name="index-CutMax-1"></a>
+<div class="float">
+<img src="../png/cutminmax2.png" alt="../png/cutminmax2">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(61,51,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;CutMin = mglPoint(0,-1,-1); gr-&gt;CutMax = mglPoint(1,0,1.1);
+gr-&gt;Box();
+gr-&gt;Surf3(-1,a);
+gr-&gt;ContF3(a,'x',-1); gr-&gt;ContF3(a,'y',-1);
+gr-&gt;ContF3(a,'z', 0); gr-&gt;ContF3(a,'z',39);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 61 51 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+cut 0 -1 -1 1 0 1.1
+box
+surf3 a -1
+contf3 a 'x' -1
+contf3 a 'y' -1
+contf3 a 'z' 0
+contf3 a 'z' 39
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(61,51,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.1);
+mgl_box(gr,1);
+mgl_surf3_val(gr,-1.,a,0);
+mgl_contf3(gr,a,'x',-1, &quot;&quot;, 7);
+mgl_contf3(gr,a,'y',-1, &quot;&quot;, 7);
+mgl_contf3(gr,a,'z', 0, &quot;&quot;, 7);
+mgl_contf3(gr,a,'z',39, &quot;&quot;, 7);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">a = mgl_create_data_size(61,51,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.1);
+call mgl_box(gr,1)
+call mgl_surf3_val(gr,-1.,a,'')
+call mgl_contf3(gr,a,'x',-1, '', 7);
+call mgl_contf3(gr,a,'y',-1, '', 7);
+call mgl_contf3(gr,a,'z', 0, '', 7);
+call mgl_contf3(gr,a,'z',39, '', 7);
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(61,51,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.SetCutBox(0,-1,-1,1,0,1.1);    gr.Box();
+gr.Surf3(-1,a);
+gr.ContF3(a,&quot;x&quot;,-1);    gr.ContF3(a,&quot;y&quot;,-1);
+gr.ContF3(a,&quot;z&quot;,0);     gr.ContF3(a,&quot;z&quot;,39);
+</pre><hr size="6">
+<a name="CutOff-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Isocaps-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutOff-sample-1"></a>
+<h3 class="subsection">9.3.11 CutOff sample</h3>
+<a name="index-Surf3-8"></a>
+<a name="index-CutOff-2"></a>
+<div class="float">
+<img src="../png/surf3_cutoff.png" alt="../png/surf3_cutoff">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;CutOff(&quot;(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)&quot;);
+gr-&gt;Box();
+gr-&gt;Surf3(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut '(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)'
+box
+surf3 a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_set_cutoff(gr,&quot;(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)&quot;);
+mgl_box(gr,1);
+mgl_surf3(gr,a,0,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,'-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)',0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_set_cutoff(gr,'(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)')
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(61,51,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.CutOff(&quot;(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)&quot;);
+gr.Box();
+gr.Surf3(a);
+</pre><hr size="6">
+<a name="Dual-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutOff-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfC-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dual-plotting-samples-1"></a>
+<h2 class="section">9.4 Dual plotting samples</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#SurfC-sample">9.4.1 SurfC sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#SurfA-sample">9.4.2 SurfA sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TileS-sample">9.4.3 TileS sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Map-sample">9.4.4 Map sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Traj-sample">9.4.5 Traj sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect-sample">9.4.6 Vect sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectL-sample">9.4.7 VectL sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectC-sample">9.4.8 VectC sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-sample">9.4.9 Flow sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe-sample">9.4.10 Pipe sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dew-sample">9.4.11 Dew sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3C-sample">9.4.12 Surf3C sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3A-sample">9.4.13 Surf3A sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect-3D-sample">9.4.14 Vect 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectL-3D-sample">9.4.15 VectL 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectC-3D-sample">9.4.16 VectC 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-3D-sample">9.4.17 Flow 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe-3D-sample">9.4.18 Pipe 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Crust-sample">9.4.19 Crust sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dots-sample">9.4.20 Dots sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+</table>
+<hr size="6">
+<a name="SurfC-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfA-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfC-sample-1"></a>
+<h3 class="subsection">9.4.1 SurfC sample</h3>
+<a name="index-SurfC-3"></a>
+<div class="float">
+<img src="../png/surfc.png" alt="../png/surfc">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40), b(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;SurfC(a,b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surfc a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+HMDT b = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surfc(gr,a,b,0);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surfc(gr,a,b,'')
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(50,40), mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.SurfC(a,b);
+</pre><hr size="6">
+<a name="SurfA-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfC-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TileS-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfA-sample-1"></a>
+<h3 class="subsection">9.4.2 SurfA sample</h3>
+<a name="index-SurfA-3"></a>
+<div class="float">
+<img src="../png/surfa.png" alt="../png/surfa">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40), b(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;SurfA(a,b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surfa a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a, b;
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surfa(gr,a,b,0);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1);
+call mgl_box(gr,1)
+call mgl_surfa(gr,a,b,'')
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(50,40), mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.Box();
+gr.SurfC(a,b);
+</pre><hr size="6">
+<a name="TileS-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfA-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Map-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TileS-sample-1"></a>
+<h3 class="subsection">9.4.3 TileS sample</h3>
+<a name="index-TileS-3"></a>
+<div class="float">
+<img src="../png/tiles.png" alt="../png/tiles">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40), b(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;TileS(a,b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+tile a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a, b;
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_tiles(gr,a,b,0);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_tiles(gr,a,b,'')
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(50,40), mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.TileS(a,b);
+</pre><hr size="6">
+<a name="Map-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TileS-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Traj-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Map-sample-1"></a>
+<h3 class="subsection">9.4.4 Map sample</h3>
+<a name="index-Map-3"></a>
+<div class="float">
+<img src="../png/map.png" alt="../png/map">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50, 40), b(50, 40);
+gr-&gt;Puts(mglPoint(0, 0), &quot;\\to&quot;, &quot;&quot;, -1.4);
+gr-&gt;Axis(mglPoint(-1,-1,-2),mglPoint(1,1,2));
+gr-&gt;SubPlot(2, 1, 0);
+a.Fill(&quot;x&quot;, gr-&gt;Min, gr-&gt;Max);	b.Fill(&quot;y&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Puts(mglPoint(0, 1.1), &quot;\\{x, y\\}&quot;, &quot;C&quot;, -2);		gr-&gt;Box();
+gr-&gt;Map(a, b, &quot;brgk&quot;, 0, false);
+gr-&gt;SubPlot(2, 1, 1);
+a.Fill(&quot;(x^3+y^3)/2&quot;, gr-&gt;Min, gr-&gt;Max);
+b.Fill(&quot;(x-y)/2&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Puts(mglPoint(0, 1.1), &quot;\\{\\frac{x^3+y^3}{2}, \\frac{x-y}{2}\\}&quot;, &quot;C&quot;, -2);
+gr-&gt;Box();
+gr-&gt;Map(a, b, &quot;brgk&quot;, 0, false);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+text 0 0 '\to'
+zrange -2 2
+subplot 2 1 0
+text 0 1.1 '\{x, y\}' '' -2
+box
+fill a 'x'
+fill b 'y'
+map a b 'brgk' 0 0
+subplot 2 1 1
+text 0 1.1 '\{\frac{x^3+y^3}{2}, \frac{x-y}{2}\}' '' -2
+box
+fill a '(x^3+y^3)/2'
+fill b '(x-y)/2'
+map a b 'brgk' 0 0
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+HMDT b = mgl_create_data_size(50,40,1);
+mgl_puts_ext(gr, 0.,0.,0., &quot;\\to&quot;, &quot;&quot;, -1.4, 't');
+mgl_set_axis_3d(gr,-1.,-1.,-2.,1.,1.,2.);
+mgl_subplot(gr, 2, 1, 0);
+mgl_data_fill_eq(gr, a, &quot;x&quot;, 0, 0);
+mgl_data_fill_eq(gr, b, &quot;y&quot;, 0, 0);
+mgl_puts_ext(gr, 0.,1.1,0., &quot;\\{x, y\\}&quot;, &quot;C&quot;, -2., 't');
+mgl_box(gr,1);
+mgl_map(gr, a, b, &quot;brgk&quot;, 0, 0);
+mgl_subplot(gr, 2, 1, 1);
+mgl_data_fill_eq(gr, a, &quot;(x^3+y^3)/2&quot;, 0, 0);
+mgl_data_fill_eq(gr, b, &quot;(x-y)/2&quot;, 0, 0);
+mgl_puts_ext(gr, 0.,1.1,0., &quot;\\{\\frac{x^3+y^3}{2}, \\frac{x-y}{2}\\}&quot;, &quot;C&quot;, -2., 't');
+mgl_box(gr,1);
+mgl_map(gr, a, b, &quot;brgk&quot;, 0, 0);
+mgl_box(gr,1);
+mgl_map(gr,a,b,0,0,1);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_puts_ext(gr, 0.,0.,0., '\to', '', -1.4, 't');
+call mgl_set_axis_3d(gr,-1.,-1.,-2.,1.,1.,2.);
+call mgl_subplot(gr, 2, 1, 0);
+call mgl_data_fill_eq(gr, a, 'x', 0, 0);
+call mgl_data_fill_eq(gr, b, 'y', 0, 0);
+call mgl_puts_ext(gr, 0.,1.1,0., '\{x, y\}', 'C', -2., 't');
+call mgl_box(gr,1);
+call mgl_map(gr, a, b, 'brgk', 0, 0);
+call mgl_subplot(gr, 2, 1, 1);
+call mgl_data_fill_eq(gr, a, '(x^3+y^3)/2', 0, 0);
+call mgl_data_fill_eq(gr, b, '(x-y)/2', 0, 0);
+call mgl_puts_ext(gr, 0.,1.1,0., '\{\frac{x^3+y^3}{2}, \frac{x-y}{2}\}', 'C', -2., 't');
+call mgl_box(gr,1);
+call mgl_map(gr, a, b, 'brgk', 0, 0);
+call mgl_box(gr,1);
+call mgl_map(gr,a,b,0,0,1);
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(50,40), mglData(50,40);
+gr.Puts(0, 0, 0, &quot;\\to&quot;, &quot;&quot;, -1.4);
+gr.SetRanges(-1,1,-1,1,-2,2);
+gr.SubPlot(2, 1, 0);
+gr.Fill(a, &quot;x&quot;);    gr.Fill(b, &quot;y&quot;);
+gr.Puts(0, 1.1, 0, &quot;\\{x, y\\}&quot;, &quot;C&quot;, -2);
+gr.Box();
+gr.Map(a, b, &quot;brgk&quot;, 0, 0);
+gr.SubPlot(2, 1, 1);
+gr.Fill(a, &quot;(x^3+y^3)/2&quot;);   gr.Fill(b, &quot;(x-y)/2&quot;);
+gr.Puts(0, 1.1, 0, &quot;\\{\\frac{x^3+y^3}{2}, \\frac{x-y}{2}\\}&quot;, &quot;C&quot;, -2);
+gr.Box();
+gr.Map(a, b, &quot;brgk&quot;, 0, 0);
+</pre><hr size="6">
+<a name="Traj-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Map-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Traj-sample-1"></a>
+<h3 class="subsection">9.4.5 Traj sample</h3>
+<a name="index-Traj-3"></a>
+<div class="float">
+<img src="../png/traj.png" alt="../png/traj">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y(50,3), x(50), y1(50), y2(50);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+y2.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+x.Fill(-1,1,'x');
+gr-&gt;Box();
+gr-&gt;Plot(x,y);
+gr-&gt;Traj(x,y,y1,y2);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y 50 3
+new x 50
+new y1 50
+new y2 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+fill x -1 1
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+box
+plot x y
+traj x y y1 y2
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+HMDT x= mgl_create_data_size(50,1,1);
+HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_data_modify(x,&quot;2*x-1&quot;,0);
+mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_plot_xy(gr,x,y,NULL);
+mgl_traj_xy(gr,yx,y,y1,y2,NULL,0,0);
+mgl_delete_data(y);  mgl_delete_data(y1);
+mgl_delete_data(x);  mgl_delete_data(y2);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer x,y,y1,y2, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+x= mgl_create_data_size(50,1,1);
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_data_modify(x,'2*x-1',0);
+call mgl_data_modify(y1,'0.5+0.3*cos(2*pi*x)',0);
+call mgl_data_modify(y2,'0.3*sin(2*pi*x)',0);
+call mgl_box(gr,1)
+call mgl_plot_xy(gr,x,y,NULL);
+call mgl_traj_xy(gr,yx,y,y1,y2,NULL,0,0);
+call mgl_delete_data(y)
+call mgl_delete_data(x)
+call mgl_delete_data(y1)
+call mgl_delete_data(y2)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">x,y,y1,y2 = mglData(50), mglData(50,3), mglData(50), mglData(50);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+y2.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+x.Fill(-1,1,'x');
+gr.Box();
+gr.Plot(x,y);
+gr.Traj(x,y,y1,y2);
+</pre><hr size="6">
+<a name="Vect-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Traj-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectL-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-sample-1"></a>
+<h3 class="subsection">9.4.6 Vect sample</h3>
+<a name="index-Vect-5"></a>
+<div class="float">
+<img src="../png/vect.png" alt="../png/vect">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Vect(a,b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vect a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_vect_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_vect_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.Vect(a,b);
+</pre><hr size="6">
+<a name="VectL-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectC-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectL-sample-1"></a>
+<h3 class="subsection">9.4.7 VectL sample</h3>
+<a name="index-VectL-5"></a>
+<div class="float">
+<img src="../png/vectl.png" alt="../png/vectl">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;VectL(a,b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectl a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a, b;
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_vectl_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_vectl_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.VectL(a,b);
+</pre><hr size="6">
+<a name="VectC-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectL-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectC-sample-1"></a>
+<h3 class="subsection">9.4.8 VectC sample</h3>
+<a name="index-VectC-5"></a>
+<div class="float">
+<img src="../png/vectc.png" alt="../png/vectc">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;VectC(a,b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectc a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a, b;
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_vectc_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_vectc_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.VectC(a,b);
+</pre><hr size="6">
+<a name="Flow-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectC-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-sample-1"></a>
+<h3 class="subsection">9.4.9 Flow sample</h3>
+<a name="index-Flow-5"></a>
+<div class="float">
+<img src="../png/flow.png" alt="../png/flow">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Flow(a,b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+flow a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_flow_2d(gr,a,b,0,5,1,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_flow_2d(gr,a,b,'',5,1,0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.Flow(a,b);
+</pre><hr size="6">
+<a name="Pipe-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dew-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-sample-1"></a>
+<h3 class="subsection">9.4.10 Pipe sample</h3>
+<a name="index-Pipe-5"></a>
+<div class="float">
+<img src="../png/pipe.png" alt="../png/pipe">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Pipe(a,b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+box
+pipe a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_pipe_2d(gr,a,b,0,0.05,5,1,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_pipe_2d(gr,a,b,'',0.05,5,1,0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Light(True);    gr.Box();
+gr.Pipe(a,b);
+</pre><hr size="6">
+<a name="Dew-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3C-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dew-sample-1"></a>
+<h3 class="subsection">9.4.11 Dew sample</h3>
+<a name="index-Dew-3"></a>
+<div class="float">
+<img src="../png/dew.png" alt="../png/dew">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Light(true);
+gr-&gt;Dew(a,b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+light on
+dew a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_set_light(gr,1);
+mgl_dew_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_set_light(gr,1);
+call mgl_dew_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Light(True);    gr.Box();
+gr.Dew(a,b);
+</pre><hr size="6">
+<a name="Surf3C-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dew-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3A-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3C-sample-1"></a>
+<h3 class="subsection">9.4.12 Surf3C sample</h3>
+<a name="index-Surf3C-5"></a>
+<div class="float">
+<img src="../png/surf3c.png" alt="../png/surf3c">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40), b(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+b.Modify(&quot;1-2*tanh(4*(x+y-1)^2)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Surf3C(a, b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3c a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+HMDT b = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_data_modify(b,&quot;1-2*tanh(4*(x+y-1)^2)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf3c(gr,a,b,0,3);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+b = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_data_modify(b,&quot;1-2*tanh(4*(x+y-1)^2)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf3c(gr,a,b,'',3)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(60,50,40), mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2+(2*y-1)^2+(2*z-1)^4-(2*z-1)^2-0.1)&quot;);
+b.Modify(&quot;1-2*tanh(4*(x+y-1)^2)&quot;);
+gr.Rotate(40,60);   gr.Light(True);     gr.Alpha(True);
+gr.Box();
+gr.Surf3C(a,b);
+</pre><hr size="6">
+<a name="Surf3A-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3C-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3A-sample-1"></a>
+<h3 class="subsection">9.4.13 Surf3A sample</h3>
+<a name="index-Surf3A-5"></a>
+<div class="float">
+<img src="../png/surf3a.png" alt="../png/surf3a">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40), b(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+b.Modify(&quot;1-2*tanh(4*(x+y-1)^2)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Surf3A(a, b);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3a a b
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a, b; a = mgl_create_data_size(60,50,40);
+b = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_data_modify(b,&quot;1-2*tanh(4*(x+y-1)^2)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf3a(gr,a,b,0,3);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+b = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_data_modify(b,&quot;1-2*tanh(4*(x+y-1)^2)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf3a(gr,a,b,'',3)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(60,50,40), mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2+(2*y-1)^2+(2*z-1)^4-(2*z-1)^2-0.1)&quot;);
+b.Modify(&quot;1-2*tanh(4*(x+y-1)^2)&quot;);
+gr.Rotate(40,60);   gr.Light(True);     gr.Alpha(True);
+gr.Box();
+gr.Surf3A(a,b);
+</pre><hr size="6">
+<a name="Vect-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3A-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectL-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-3D-sample-1"></a>
+<h3 class="subsection">9.4.14 Vect 3D sample</h3>
+<a name="index-Vect-6"></a>
+<div class="float">
+<img src="../png/vect3.png" alt="../png/vect3">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Vect(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vect ex ey ez 'bwr'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_vect_3d(gr,ex,ey,ez,&quot;bwr&quot;);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_vect_3d(gr,ex,ey,ez,'bwr')
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.Vect(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="VectL-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectC-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectL-3D-sample-1"></a>
+<h3 class="subsection">9.4.15 VectL 3D sample</h3>
+<a name="index-VectL-6"></a>
+<div class="float">
+<img src="../png/vectl3.png" alt="../png/vectl3">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;VectL(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectl ex ey ez 'bwr'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_vectl_3d(gr,ex,ey,ez,&quot;bwr&quot;);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_vectl_3d(gr,ex,ey,ez,'bwr')
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.VectL(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="VectC-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectL-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectC-3D-sample-1"></a>
+<h3 class="subsection">9.4.16 VectC 3D sample</h3>
+<a name="index-VectC-6"></a>
+<div class="float">
+<img src="../png/vectc3.png" alt="../png/vectc3">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;VectC(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectc ex ey ez 'bwr'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_vectc_3d(gr,ex,ey,ez,&quot;bwr&quot;);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_vectc_3d(gr,ex,ey,ez,'bwr')
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.VectC(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="Flow-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectC-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-3D-sample-1"></a>
+<h3 class="subsection">9.4.17 Flow 3D sample</h3>
+<a name="index-Flow-6"></a>
+<div class="float">
+<img src="../png/flow3.png" alt="../png/flow3">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData ex(30,30,30), ey(30,30,30), ez(30,30,30);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Flow(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new ex 30 30 30
+new ey 30 30 30
+new ez 30 30 30
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+flow ex ey ez 'bwr'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(30,30,30);
+ey = mgl_create_data_size(30,30,30);
+ez = mgl_create_data_size(30,30,30);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_flow_3d(gr,ex,ey,ez,&quot;bwr&quot;,3,1);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(30,30,30)
+ey = mgl_create_data_size(30,30,30)
+ez = mgl_create_data_size(30,30,30)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_flow_3d(gr,ex,ey,ez,'bwr',3,1)
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.Flow(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="Pipe-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Crust-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-3D-sample-1"></a>
+<h3 class="subsection">9.4.18 Pipe 3D sample</h3>
+<a name="index-Pipe-6"></a>
+<div class="float">
+<img src="../png/pipe3.png" alt="../png/pipe3">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Pipe(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+light on
+box
+pipe ex ey ez 'bwr'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_pipe_3d(gr,ex,ey,ez,&quot;bwr&quot;,0.05,3,1);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1);
+call mgl_box(gr,1);
+call mgl_pipe_3d(gr,ex,ey,ez,'bwr',0.05,3,1)
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Pipe(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="Crust-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dots-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Crust-sample-1"></a>
+<h3 class="subsection">9.4.19 Crust sample</h3>
+<a name="index-Crust-3"></a>
+<div class="float">
+<img src="../png/crust.png" alt="../png/crust">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(&quot;hotdogs.pts&quot;);
+a.Norm(-1,1,true);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Crust(a,&quot;p&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+light on
+box
+crust a 'p'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_file(&quot;hotdogs.pts&quot;);
+mgl_data_norm(a,-1.,1.,1,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_crust_tr(gr,a,&quot;p&quot;,0.);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_file
+a = mgl_create_data_file(&quot;hotdogs.pts&quot;)
+call mgl_data_norm(a,-1.,1.,1,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_crust_tr(gr,a,&quot;p&quot;,0.)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(&quot;hotdogs.pts&quot;);
+a.Norm(-1,1,True);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Crust(a);
+</pre><hr size="6">
+<a name="Dots-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Crust-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dots-sample-1"></a>
+<h3 class="subsection">9.4.20 Dots sample</h3>
+<a name="index-Dots-4"></a>
+<div class="float">
+<img src="../png/dots.png" alt="../png/dots">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(&quot;hotdogs.pts&quot;);
+a.Norm(-1,1,true);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Dots(a,&quot;p&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+box
+dots a 'p'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_file(&quot;hotdogs.pts&quot;);
+mgl_data_norm(a,-1.,1.,1,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_dots_tr(gr,a,&quot;p&quot;);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_file
+a = mgl_create_data_file(&quot;hotdogs.pts&quot;)
+call mgl_data_norm(a,-1.,1.,1,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_dots_tr(gr,a,&quot;p&quot;)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(&quot;hotdogs.pts&quot;);
+a.Norm(-1,1,True);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Dots(a);
+</pre>
+<hr size="6">
+<a name="Basic-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dots-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Basic-features-1"></a>
+<h2 class="section">9.5 Basic features</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t1D-plot-sample">9.5.1 1D plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plot-sample">9.5.2 2D plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plot-sample">9.5.3 3D plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Line-styles-sample">9.5.4 Line styles sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Arrow-styles-sample">9.5.5 Arrow styles sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-styles-sample">9.5.6 Text styles sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TeX-parsing-sample">9.5.7 TeX parsing sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-faces-sample">9.5.8 Font faces sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Colors-sample">9.5.9 Colors sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Color-schemes-sample">9.5.10 Color schemes sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Normal-transparency">9.5.11 Normal transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Glass_002dlike-transparency">9.5.12 Glass-like transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lamp_002dlike-transparency">9.5.13 Lamp-like transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+</table>
+<hr size="6">
+<a name="g_t1D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Basic-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-plot-sample-1"></a>
+<h3 class="subsection">9.5.1 1D plot sample</h3>
+<a name="index-Plot-8"></a>
+<a name="index-Bars-8"></a>
+<a name="index-SubPlot-3"></a>
+<div class="float">
+<img src="../png/sample8.png" alt="../png/sample8">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y0(50);		y0.Modify(&quot;sin(pi*(2*x-1))&quot;);
+gr-&gt;SubPlot(2,2,0);
+gr-&gt;Plot(y0);		gr-&gt;Box();
+
+gr-&gt;SubPlot(2,2,1);
+mglData y1(50,2);
+y1.Modify(&quot;sin(pi*2*x-pi)&quot;);	y1.Modify(&quot;cos(pi*2*x-pi)/2&quot;,1);
+gr-&gt;Plot(y1);		gr-&gt;Box();
+
+mglData x(50);		x.Modify(&quot;cos(pi*2*x-pi)&quot;);
+gr-&gt;Plot(x,y0,&quot;Y+&quot;);
+
+gr-&gt;Plot(y1.SubData(-1,0),y1.SubData(-1,1),&quot;q|&quot;);
+
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(60,40);
+mglData z(50);		z.Modify(&quot;2*x-1&quot;);
+gr-&gt;Plot(x,y0,z);		gr-&gt;Box();
+
+mglData y2(10,3);	y2.Modify(&quot;cos(pi*(2*x-1-y))&quot;);
+y2.Modify(&quot;2*x-1&quot;,2);
+gr-&gt;Plot(y2.SubData(-1,0),y2.SubData(-1,1),y2.SubData(-1,2),&quot;bo &quot;);
+
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(60,40);
+gr-&gt;Bars(x,y0,z,&quot;ri&quot;);		gr-&gt;Box();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y0 50: modify y0 'sin(pi*(2*x-1))'
+subplot 2 2 0
+plot y0: box
+
+subplot 2 2 1
+new y1 50 2
+modify y1 'sin(pi*2*x-pi)'
+modify y1 'cos(pi*2*x-pi)/2' 1
+plot y1: box
+
+new x 50: modify x 'cos(pi*2*x-pi)'
+plot x y0 'Y+'
+plot y1(:,0) y(:,1) 'q|'
+
+subplot 2 2 2:rotate 60 40
+new z 50:   modify z '2*x-1'
+plot x y0 z 'g':box
+new y2 10 3
+modify y2 'cos(pi*(2*x-1-y))'
+modify y2 '2*x-1' 2
+plot y2(:,0) y2(:,1) y2(:,2) 'bo '
+
+subplot 2 2 3:rotate 60 40
+bars x y0 z 'r':box
+</pre><hr size="6">
+<a name="g_t2D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-plot-sample-1"></a>
+<h3 class="subsection">9.5.2 2D plot sample</h3>
+<a name="index-Surf-10"></a>
+<a name="index-Dens-4"></a>
+<a name="index-Alpha-3"></a>
+<div class="float">
+<img src="../png/sample9.png" alt="../png/sample9">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Light(true);
+mglData a0(50,40);
+a0.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(60,40);
+gr-&gt;Surf(a0);       gr-&gt;Box();
+
+mglData x(50,40),y(50,40),z(50,40);
+x.Modify(&quot;0.8*sin(2*pi*x)*sin(pi*y)&quot;);
+y.Modify(&quot;0.8*cos(2*pi*x)*sin(pi*y)&quot;);
+z.Modify(&quot;0.8*cos(pi*y)&quot;);
+gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(60,40);
+gr-&gt;Surf(x,y,z,&quot;BbwrR&quot;);    gr-&gt;Box();
+
+mglData a1(50,40,3);
+a1.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+a1.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*sin(3*pi*(x*y))&quot;,1);
+a1.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,2);
+gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(60,40);
+gr-&gt;Alpha(true);
+gr-&gt;Surf(a1);       gr-&gt;Box();
+
+gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(60,40);
+gr-&gt;Dens(a1);       gr-&gt;Box();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">light on
+
+new a0 50 40
+modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+subplot 2 2 0:rotate 60 40
+surf a0: box
+
+new x 50 40: new y 50 40: new z 50 40
+modify x '0.8*sin(2*pi*x)*sin(pi*y)'
+modify y '0.8*cos(2*pi*x)*sin(pi*y)'
+modify z '0.8*cos(pi*y)'
+subplot 2 2 1:rotate 60 40
+surf x y z 'bbwrr': box
+
+new a1 50 40 3
+modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
+subplot 2 2 2:rotate 60 40
+alpha on
+surf a1: box
+
+subplot 2 2 3: rotate 60 40
+dens a1: box
+</pre><hr size="6">
+<a name="g_t3D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Line-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-plot-sample-1"></a>
+<h3 class="subsection">9.5.3 3D plot sample</h3>
+<a name="index-Surf-11"></a>
+<a name="index-Dens-5"></a>
+<a name="index-Alpha-4"></a>
+<div class="float">
+<img src="../png/sampleb.png" alt="../png/sampleb">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true);	gr-&gt;Light(true);	gr-&gt;Light(0,mglPoint(0,0,1));
+mglData a(30,30,30), b(30,30,30);
+a.Modify(&quot;exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))&quot;);
+b.Modify(&quot;16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)&quot;);
+gr-&gt;CAxis(0,1);
+
+gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);
+gr-&gt;Surf3(a,&quot;wgk&quot;);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);
+gr-&gt;DensA(a);		gr-&gt;Box();	gr-&gt;Axis();
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);
+gr-&gt;Cloud(a);		gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);
+gr-&gt;Surf3A(b,a,&quot;q&quot;);		gr-&gt;Box();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">alpha on: light on
+light 0 0 0 1
+new a 30 30 30: new b 30 30 30
+modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
+modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
+caxis 0 1
+
+subplot 2 2 0: rotate 40 60
+surf3 a 'wgk': box
+subplot 2 2 1: rotate 40 60
+densa a: box: axis
+subplot 2 2 2: rotate 40 60
+cloud a: box
+subplot 2 2 3: rotate 40 60
+surf3a b a 'q': box
+</pre><hr size="6">
+<a name="Line-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Arrow-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Line-styles-sample-1"></a>
+<h3 class="subsection">9.5.4 Line styles sample</h3>
+<a name="index-Mark-8"></a>
+<a name="index-Line-3"></a>
+<div class="float">
+<img src="../png/sample5.png" alt="../png/sample5">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">float d,x1,x2,x0,y=0.95;
+d=0.3, x0=0.2, x1=0.5, x2=0.6;
+gr-&gt;Line(mglPoint(x0,1-0*d),mglPoint(x1,1-0*d),&quot;k-&quot;);	gr-&gt;Puts(mglPoint(x2,y-0*d),&quot;Solid '-'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-1*d),mglPoint(x1,1-1*d),&quot;k|&quot;);	gr-&gt;Puts(mglPoint(x2,y-1*d),&quot;Long Dash '|'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-2*d),mglPoint(x1,1-2*d),&quot;k;&quot;);	gr-&gt;Puts(mglPoint(x2,y-2*d),&quot;Dash ';'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-3*d),mglPoint(x1,1-3*d),&quot;k=&quot;);	gr-&gt;Puts(mglPoint(x2,y-3*d),&quot;Small dash '='&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-4*d),mglPoint(x1,1-4*d),&quot;kj&quot;);	gr-&gt;Puts(mglPoint(x2,y-4*d),&quot;Dash-dot 'j'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-5*d),mglPoint(x1,1-5*d),&quot;ki&quot;);	gr-&gt;Puts(mglPoint(x2,y-5*d),&quot;Small dash-dot 'i'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-6*d),mglPoint(x1,1-6*d),&quot;k:&quot;);	gr-&gt;Puts(mglPoint(x2,y-6*d),&quot;Dots ':'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-7*d),mglPoint(x1,1-7*d),&quot;k &quot;);	gr-&gt;Puts(mglPoint(x2,y-7*d),&quot;None ' '&quot;,&quot;rL&quot;);
+
+d=0.25; x1=-1; x0=-0.8;	y = -0.05;
+gr-&gt;Mark(mglPoint(x1,5*d),'.');		gr-&gt;Puts(mglPoint(x0,y+5*d),&quot;'.'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,4*d),'+');		gr-&gt;Puts(mglPoint(x0,y+4*d),&quot;'+'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,3*d),'x');		gr-&gt;Puts(mglPoint(x0,y+3*d),&quot;'x'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,2*d),'*');		gr-&gt;Puts(mglPoint(x0,y+2*d),&quot;'*'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,d),'s');		gr-&gt;Puts(mglPoint(x0,y+d),&quot;'s'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,0),'d');		gr-&gt;Puts(mglPoint(x0,y),&quot;'d'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-d,0),'o');	gr-&gt;Puts(mglPoint(x0,y-d),&quot;'o'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-2*d,0),'^');	gr-&gt;Puts(mglPoint(x0,y-2*d),&quot;'\\^'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-3*d,0),'v');	gr-&gt;Puts(mglPoint(x0,y-3*d),&quot;'v'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-4*d,0),'&lt;');	gr-&gt;Puts(mglPoint(x0,y-4*d),&quot;'&lt;'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-5*d,0),'&gt;');	gr-&gt;Puts(mglPoint(x0,y-5*d),&quot;'&gt;'&quot;,&quot;rL&quot;);
+
+d=0.25; x1=-0.5; x0=-0.3;	y = -0.05;
+gr-&gt;Mark(mglPoint(x1,5*d),'C');		gr-&gt;Puts(mglPoint(x0,y+5*d),&quot;'\\#.'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,4*d),'P');		gr-&gt;Puts(mglPoint(x0,y+4*d),&quot;'\\#+'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,3*d),'X');		gr-&gt;Puts(mglPoint(x0,y+3*d),&quot;'\\#x'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,2*d),'Y');		gr-&gt;Puts(mglPoint(x0,y+2*d),&quot;'\\#*'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,d),'S');		gr-&gt;Puts(mglPoint(x0,y+d),&quot;'\\#s'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,0),'D');		gr-&gt;Puts(mglPoint(x0,y),&quot;'\\#d'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-d,0),'O');	gr-&gt;Puts(mglPoint(x0,y-d),&quot;'\\#o'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-2*d,0),'T');	gr-&gt;Puts(mglPoint(x0,y-2*d),&quot;'\\#\\^'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-3*d,0),'V');	gr-&gt;Puts(mglPoint(x0,y-3*d),&quot;'\\#v'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-4*d,0),'L');	gr-&gt;Puts(mglPoint(x0,y-4*d),&quot;'\\#&lt;'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-5*d,0),'R');	gr-&gt;Puts(mglPoint(x0,y-5*d),&quot;'\\#&gt;'&quot;,&quot;rL&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Arrow-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Line-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Arrow-styles-sample-1"></a>
+<h3 class="subsection">9.5.5 Arrow styles sample</h3>
+<a name="index-Line-4"></a>
+<div class="float">
+<img src="../png/sampled.png" alt="../png/sampled">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">float a=0.1,b=0.4,c=0.5;
+gr-&gt;Line(mglPoint(a,1),mglPoint(b,1),&quot;k-A&quot;);		gr-&gt;Puts(mglPoint(c,1),&quot;Style 'A' or 'A\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.8),mglPoint(b,0.8),&quot;k-V&quot;);	gr-&gt;Puts(mglPoint(c,0.8),&quot;Style 'V' or 'V\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.6),mglPoint(b,0.6),&quot;k-K&quot;);	gr-&gt;Puts(mglPoint(c,0.6),&quot;Style 'K' or 'K\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.4),mglPoint(b,0.4),&quot;k-I&quot;);	gr-&gt;Puts(mglPoint(c,0.4),&quot;Style 'I' or 'I\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.2),mglPoint(b,0.2),&quot;k-D&quot;);	gr-&gt;Puts(mglPoint(c,0.2),&quot;Style 'D' or 'D\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0),mglPoint(b,0),&quot;k-S&quot;);		gr-&gt;Puts(mglPoint(c,0),&quot;Style 'S' or 'S\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.2),mglPoint(b,-0.2),&quot;k-O&quot;);	gr-&gt;Puts(mglPoint(c,-0.2),&quot;Style 'O' or 'O\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.4),mglPoint(b,-0.4),&quot;k-T&quot;);	gr-&gt;Puts(mglPoint(c,-0.4),&quot;Style 'T' or 'T\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.6),mglPoint(b,-0.6),&quot;k-_&quot;);	gr-&gt;Puts(mglPoint(c,-0.6),&quot;Style '\\_' or none&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.8),mglPoint(b,-0.8),&quot;k-AS&quot;);	gr-&gt;Puts(mglPoint(c,-0.8),&quot;Style 'AS'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-1),mglPoint(b,-1),&quot;k-_A&quot;);		gr-&gt;Puts(mglPoint(c,-1),&quot;Style '\\_A'&quot;,&quot;rL&quot;);
+
+a=-1;	b=-0.7;	c=-0.6;
+gr-&gt;Line(mglPoint(a,1),mglPoint(b,1),&quot;kAA&quot;);		gr-&gt;Puts(mglPoint(c,1),&quot;Style 'AA'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.8),mglPoint(b,0.8),&quot;kVV&quot;);	gr-&gt;Puts(mglPoint(c,0.8),&quot;Style 'VV'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.6),mglPoint(b,0.6),&quot;kKK&quot;);	gr-&gt;Puts(mglPoint(c,0.6),&quot;Style 'KK'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.4),mglPoint(b,0.4),&quot;kII&quot;);	gr-&gt;Puts(mglPoint(c,0.4),&quot;Style 'II'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.2),mglPoint(b,0.2),&quot;kDD&quot;);	gr-&gt;Puts(mglPoint(c,0.2),&quot;Style 'DD'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0),mglPoint(b,0),&quot;kSS&quot;);		gr-&gt;Puts(mglPoint(c,0),&quot;Style 'SS'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.2),mglPoint(b,-0.2),&quot;kOO&quot;);	gr-&gt;Puts(mglPoint(c,-0.2),&quot;Style 'OO'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.4),mglPoint(b,-0.4),&quot;kTT&quot;);	gr-&gt;Puts(mglPoint(c,-0.4),&quot;Style 'TT'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.6),mglPoint(b,-0.6),&quot;k-__&quot;);	gr-&gt;Puts(mglPoint(c,-0.6),&quot;Style '\\_\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.8),mglPoint(b,-0.8),&quot;k-VA&quot;);	gr-&gt;Puts(mglPoint(c,-0.8),&quot;Style 'VA'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-1),mglPoint(b,-1),&quot;k-AV&quot;);		gr-&gt;Puts(mglPoint(c,-1),&quot;Style 'AV'&quot;,&quot;rL&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Text-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Arrow-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TeX-parsing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-styles-sample-1"></a>
+<h3 class="subsection">9.5.6 Text styles sample</h3>
+<a name="index-Puts-5"></a>
+<div class="float">
+<img src="../png/sample4.png" alt="../png/sample4">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Putsw(mglPoint(0,1),L&quot;Text can be in ASCII and in Unicode&quot;);
+gr-&gt;Puts(mglPoint(0,0.6),&quot;It can be \\wire{wire}, \\big{big} or #r{colored}&quot;);
+gr-&gt;Puts(mglPoint(0,0.2),&quot;One can change style in string: &quot;
+        &quot;\\b{bold}, \\i{italic, \\b{both}}&quot;);
+gr-&gt;Puts(mglPoint(0,-0.2),&quot;Easy to \\a{overline} or &quot;
+        &quot;\\u{underline}&quot;);
+gr-&gt;Puts(mglPoint(0,-0.6),&quot;Easy to change indexes ^{up} _{down} @{center}&quot;);
+gr-&gt;Puts(mglPoint(0,-1),&quot;It parse TeX: \\int \\alpha \\cdot &quot;
+        &quot;\\sqrt3{sin(\\pi x)^2 + \\gamma_{i_k}} dx&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">text 0 1 'Text can be in ASCII and in Unicode'
+text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
+text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
+text 0 -0.2 'Easy to \a{overline} or \u{underline}'
+text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
+text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
+</pre><hr size="6">
+<a name="TeX-parsing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-faces-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TeX-parsing-sample-1"></a>
+<h3 class="subsection">9.5.7 TeX parsing sample</h3>
+<a name="index-Puts-6"></a>
+<div class="float">
+<img src="../png/samplee.png" alt="../png/samplee">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Puts(mglPoint(0), &quot;\\sqrt{\\frac{\\alpha^{\\gamma^2}+&quot;
+        &quot;\\overset 1{\\big\\infty}}{\\sqrt3{2+b}}}&quot;, 0, -4);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}' '' -4
+</pre><hr size="6">
+<a name="Font-faces-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TeX-parsing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Font-faces-sample-1"></a>
+<h3 class="subsection">9.5.8 Font faces sample</h3>
+<a name="index-Puts-7"></a>
+<div class="float">
+<img src="../png/fonts.png" alt="../png/fonts">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">float h=1.1, d=0.25;
+gr-&gt;LoadFont(&quot;STIX&quot;);		gr-&gt;Puts(mglPoint(0,h), &quot;default font (STIX)&quot;);
+gr-&gt;LoadFont(&quot;adventor&quot;);	gr-&gt;Puts(mglPoint(0,h-d), &quot;adventor font&quot;);
+gr-&gt;LoadFont(&quot;bonum&quot;);		gr-&gt;Puts(mglPoint(0,h-2*d), &quot;bonum font&quot;);
+gr-&gt;LoadFont(&quot;chorus&quot;);		gr-&gt;Puts(mglPoint(0,h-3*d), &quot;chorus font&quot;);
+gr-&gt;LoadFont(&quot;cursor&quot;);		gr-&gt;Puts(mglPoint(0,h-4*d), &quot;cursor font&quot;);
+gr-&gt;LoadFont(&quot;heros&quot;);		gr-&gt;Puts(mglPoint(0,h-5*d), &quot;heros font&quot;);
+gr-&gt;LoadFont(&quot;heroscn&quot;);	gr-&gt;Puts(mglPoint(0,h-6*d), &quot;heroscn font&quot;);
+gr-&gt;LoadFont(&quot;pagella&quot;);	gr-&gt;Puts(mglPoint(0,h-7*d), &quot;pagella font&quot;);
+gr-&gt;LoadFont(&quot;schola&quot;);		gr-&gt;Puts(mglPoint(0,h-8*d), &quot;schola font&quot;);
+gr-&gt;LoadFont(&quot;termes&quot;);		gr-&gt;Puts(mglPoint(0,h-9*d), &quot;termes font&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-faces-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Color-schemes-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Colors-sample-1"></a>
+<h3 class="subsection">9.5.9 Colors sample</h3>
+<div class="float">
+<img src="../png/colors.png" alt="../png/colors">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">//#LENUQ
+gr-&gt;FaceZ(-1,	-1, 0, 0.4, 0.3, &quot;L#&quot;);	gr-&gt;Puts(mglPoint(-0.8,-0.9), &quot;L&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	-1, 0, 0.4, 0.3, &quot;E#&quot;);	gr-&gt;Puts(mglPoint(-0.4,-0.9), &quot;E&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	-1, 0, 0.4, 0.3, &quot;N#&quot;);	gr-&gt;Puts(mglPoint(0,  -0.9), &quot;N&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	-1, 0, 0.4, 0.3, &quot;U#&quot;);	gr-&gt;Puts(mglPoint(0.4,-0.9), &quot;U&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	-1, 0, 0.4, 0.3, &quot;Q#&quot;);	gr-&gt;Puts(mglPoint(0.8,-0.9), &quot;Q&quot;, &quot;C:w&quot;, -1.4);
+//#lenuq
+gr-&gt;FaceZ(-1,	-0.7, 0, 0.4, 0.3, &quot;l#&quot;);	gr-&gt;Puts(mglPoint(-0.8,-0.6), &quot;l&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	-0.7, 0, 0.4, 0.3, &quot;e#&quot;);	gr-&gt;Puts(mglPoint(-0.4,-0.6), &quot;e&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	-0.7, 0, 0.4, 0.3, &quot;n#&quot;);	gr-&gt;Puts(mglPoint(0,  -0.6), &quot;n&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	-0.7, 0, 0.4, 0.3, &quot;u#&quot;);	gr-&gt;Puts(mglPoint(0.4,-0.6), &quot;u&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	-0.7, 0, 0.4, 0.3, &quot;q#&quot;);	gr-&gt;Puts(mglPoint(0.8,-0.6), &quot;q&quot;, &quot;C:k&quot;, -1.4);
+//#CMYkP
+gr-&gt;FaceZ(-1,	-0.4, 0, 0.4, 0.3, &quot;C#&quot;);	gr-&gt;Puts(mglPoint(-0.8,-0.3), &quot;C&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	-0.4, 0, 0.4, 0.3, &quot;M#&quot;);	gr-&gt;Puts(mglPoint(-0.4,-0.3), &quot;M&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	-0.4, 0, 0.4, 0.3, &quot;Y#&quot;);	gr-&gt;Puts(mglPoint(0,  -0.3), &quot;Y&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	-0.4, 0, 0.4, 0.3, &quot;k#&quot;);	gr-&gt;Puts(mglPoint(0.4,-0.3), &quot;k&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	-0.4, 0, 0.4, 0.3, &quot;P#&quot;);	gr-&gt;Puts(mglPoint(0.8,-0.3), &quot;P&quot;, &quot;C:w&quot;, -1.4);
+//#cmywp
+gr-&gt;FaceZ(-1,	-0.1, 0, 0.4, 0.3, &quot;c#&quot;);	gr-&gt;Puts(mglPoint(-0.8, 0), &quot;c&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	-0.1, 0, 0.4, 0.3, &quot;m#&quot;);	gr-&gt;Puts(mglPoint(-0.4, 0), &quot;m&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	-0.1, 0, 0.4, 0.3, &quot;y#&quot;);	gr-&gt;Puts(mglPoint(0,   0), &quot;y&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	-0.1, 0, 0.4, 0.3, &quot;w#&quot;);	gr-&gt;Puts(mglPoint(0.4, 0), &quot;w&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	-0.1, 0, 0.4, 0.3, &quot;p#&quot;);	gr-&gt;Puts(mglPoint(0.8, 0), &quot;p&quot;, &quot;C:k&quot;, -1.4);
+//#BGRHW
+gr-&gt;FaceZ(-1,	0.2, 0, 0.4, 0.3, &quot;B#&quot;);	gr-&gt;Puts(mglPoint(-0.8, 0.3), &quot;B&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	0.2, 0, 0.4, 0.3, &quot;G#&quot;);	gr-&gt;Puts(mglPoint(-0.4, 0.3), &quot;G&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	0.2, 0, 0.4, 0.3, &quot;R#&quot;);	gr-&gt;Puts(mglPoint(0,   0.3), &quot;R&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	0.2, 0, 0.4, 0.3, &quot;H#&quot;);	gr-&gt;Puts(mglPoint(0.4, 0.3), &quot;H&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	0.2, 0, 0.4, 0.3, &quot;W#&quot;);	gr-&gt;Puts(mglPoint(0.8, 0.3), &quot;W&quot;, &quot;C:w&quot;, -1.4);
+//#bgrhw
+gr-&gt;FaceZ(-1,	0.2, 0, 0.4, 0.3, &quot;b#&quot;);	gr-&gt;Puts(mglPoint(-0.8, 0.6), &quot;b&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	0.5, 0, 0.4, 0.3, &quot;g#&quot;);	gr-&gt;Puts(mglPoint(-0.4, 0.6), &quot;g&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	0.2, 0, 0.4, 0.3, &quot;r#&quot;);	gr-&gt;Puts(mglPoint(0,   0.6), &quot;r&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	0.2, 0, 0.4, 0.3, &quot;h#&quot;);	gr-&gt;Puts(mglPoint(0.4, 0.6), &quot;h&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	0.2, 0, 0.4, 0.3, &quot;w#&quot;);	gr-&gt;Puts(mglPoint(0.8, 0.6), &quot;w&quot;, &quot;C:k&quot;, -1.4);
+//#brighted
+gr-&gt;FaceZ(-1,	0.8, 0, 0.4, 0.3, &quot;r1#&quot;);	gr-&gt;Puts(mglPoint(-0.8, 0.9), &quot;r1&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	0.8, 0, 0.4, 0.3, &quot;r3#&quot;);	gr-&gt;Puts(mglPoint(-0.4, 0.9), &quot;r3&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	0.8, 0, 0.4, 0.3, &quot;r5#&quot;);	gr-&gt;Puts(mglPoint(0,   0.9), &quot;r5&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	0.8, 0, 0.4, 0.3, &quot;r7#&quot;);	gr-&gt;Puts(mglPoint(0.4, 0.9), &quot;r7&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	0.8, 0, 0.4, 0.3, &quot;r9#&quot;);	gr-&gt;Puts(mglPoint(0.8, 0.9), &quot;r9&quot;, &quot;C:k&quot;, -1.4);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">#LENUQ
+facez -1   -1 0 0.4 0.3 'L#': text -0.8 -0.9 'L' 'C:w'
+facez -0.6 -1 0 0.4 0.3 'E#': text -0.4 -0.9 'E' 'C:w'
+facez -0.2 -1 0 0.4 0.3 'N#': text  0   -0.9 'N' 'C:w'
+facez  0.2 -1 0 0.4 0.3 'U#': text  0.4 -0.9 'U' 'C:w'
+facez  0.6 -1 0 0.4 0.3 'Q#': text  0.8 -0.9 'Q' 'C:w'
+#lenuq
+facez -1   -0.7 0 0.4 0.3 'l#': text -0.8 -0.6 'l' 'C:k'
+facez -0.6 -0.7 0 0.4 0.3 'e#': text -0.4 -0.6 'e' 'C:k'
+facez -0.2 -0.7 0 0.4 0.3 'n#': text  0   -0.6 'n' 'C:k'
+facez  0.2 -0.7 0 0.4 0.3 'u#': text  0.4 -0.6 'u' 'C:k'
+facez  0.6 -0.7 0 0.4 0.3 'q#': text  0.8 -0.6 'q' 'C:k'
+#CMYkP
+facez -1   -0.4 0 0.4 0.3 'C#': text -0.8 -0.3 'C' 'C:w'
+facez -0.6 -0.4 0 0.4 0.3 'M#': text -0.4 -0.3 'M' 'C:w'
+facez -0.2 -0.4 0 0.4 0.3 'Y#': text  0   -0.3 'Y' 'C:w'
+facez  0.2 -0.4 0 0.4 0.3 'k#': text  0.4 -0.3 'k' 'C:w'
+facez  0.6 -0.4 0 0.4 0.3 'P#': text  0.8 -0.3 'P' 'C:w'
+#lenuq
+facez -1   -0.1 0 0.4 0.3 'c#': text -0.8 0 'c' 'C:k'
+facez -0.6 -0.1 0 0.4 0.3 'm#': text -0.4 0 'm' 'C:k'
+facez -0.2 -0.1 0 0.4 0.3 'y#': text  0   0 'y' 'C:k'
+facez  0.2 -0.1 0 0.4 0.3 'w#': text  0.4 0 'w' 'C:k'
+facez  0.6 -0.1 0 0.4 0.3 'p#': text  0.8 0 'p' 'C:k'
+#BGRHW
+facez -1   0.2 0 0.4 0.3 'B#': text -0.8 0.3 'B' 'C:k'
+facez -0.6 0.2 0 0.4 0.3 'G#': text -0.4 0.3 'G' 'C:k'
+facez -0.2 0.2 0 0.4 0.3 'R#': text  0   0.3 'R' 'C:k'
+facez  0.2 0.2 0 0.4 0.3 'H#': text  0.4 0.3 'H' 'C:k'
+facez  0.6 0.2 0 0.4 0.3 'W#': text  0.8 0.3 'W' 'C:k'
+#bgrhw
+facez -1   0.5 0 0.4 0.3 'b#': text -0.8 0.6 'b' 'C:w'
+facez -0.6 0.5 0 0.4 0.3 'g#': text -0.4 0.6 'g' 'C:w'
+facez -0.2 0.5 0 0.4 0.3 'r#': text  0   0.6 'r' 'C:w'
+facez  0.2 0.5 0 0.4 0.3 'h#': text  0.4 0.6 'h' 'C:w'
+facez  0.6 0.5 0 0.4 0.3 'w#': text  0.8 0.6 'w' 'C:w'
+#brighted
+facez -1   0.8 0 0.4 0.3 'r1#': text -0.8 0.9 'r1' 'C:k'
+facez -0.6 0.8 0 0.4 0.3 'r3#': text -0.4 0.9 'r3' 'C:k'
+facez -0.2 0.8 0 0.4 0.3 'r5#': text  0   0.9 'r5' 'C:k'
+facez  0.2 0.8 0 0.4 0.3 'r7#': text  0.4 0.9 'r7' 'C:k'
+facez  0.6 0.8 0 0.4 0.3 'r9#': text  0.8 0.9 'r9' 'C:k'
+</pre><hr size="6">
+<a name="Color-schemes-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Normal-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Color-schemes-sample-1"></a>
+<h3 class="subsection">9.5.10 Color schemes sample</h3>
+<a name="index-Colorbar-7"></a>
+<div class="float">
+<img src="../png/color_schemes.png" alt="../png/color_schemes">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(256,2);	a.Fill(-1,1);
+gr-&gt;SubPlot(2,10,0,0.2);	gr-&gt;Dens(a,&quot;kw&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kw&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,1,0.2);	gr-&gt;Dens(a,&quot;wk&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;wk&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,2,0.2);	gr-&gt;Dens(a,&quot;kHCcw&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kHCcw&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,3,0.2);	gr-&gt;Dens(a,&quot;kBbcw&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kBbcw&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,4,0.2);	gr-&gt;Dens(a,&quot;kRryw&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kRryw&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,5,0.2);	gr-&gt;Dens(a,&quot;kGgew&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kGgew&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,6,0.2);	gr-&gt;Dens(a,&quot;BbwrR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbwrR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,7,0.2);	gr-&gt;Dens(a,&quot;BbwgG&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbwgG&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,8,0.2);	gr-&gt;Dens(a,&quot;GgwmM&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;GgwmM&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,9,0.2);	gr-&gt;Dens(a,&quot;UuwqR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;UuwqR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,10,0.2);	gr-&gt;Dens(a,&quot;QqwcC&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;QqwcC&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,11,0.2);	gr-&gt;Dens(a,&quot;CcwyY&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;CcwyY&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,12,0.2);	gr-&gt;Dens(a,&quot;bcwyr&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;bcwyr&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,13,0.2);	gr-&gt;Dens(a,&quot;bwr&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;bwr&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,14,0.2);	gr-&gt;Dens(a,&quot;BbcyrR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbcyrR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,15,0.2);	gr-&gt;Dens(a,&quot;UbcyqR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;UbcyqR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,16,0.2);	gr-&gt;Dens(a,&quot;BbcwyrR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbcwyrR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,17,0.2);	gr-&gt;Dens(a,&quot;bcyr&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;bcyr&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,18,0.2);	gr-&gt;Dens(a,&quot;BbcyrR|&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbcyrR|&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,19,0.2);	gr-&gt;Dens(a,&quot;bgr&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;bgr&quot;, &quot;C&quot;, -8);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 256 2: fill a 'x'
+subplot 2 10 0 0.2:dens a 'kw'
+text -1.4 -0.3 'kw' '' -8
+subplot 2 10 1 0.2:dens a 'wk'
+text -1.4 -0.3 'wk' '' -8
+subplot 2 10 2 0.2:dens a 'kHCcw'
+text -1.4 -0.3 'kHCcw' '' -8
+subplot 2 10 3 0.2:dens a 'kBbcw'
+text -1.4 -0.3 'kBbcw' '' -8
+subplot 2 10 4 0.2:dens a 'kRryw'
+text -1.4 -0.3 'kRryw' '' -8
+subplot 2 10 5 0.2:dens a 'kGgew'
+text -1.4 -0.3 'kGgew' '' -8
+subplot 2 10 6 0.2:dens a 'BbwrR'
+text -1.4 -0.3 'BbwrR' '' -8
+subplot 2 10 7 0.2:dens a 'BbwgG'
+text -1.4 -0.3 'BbwgG' '' -8
+subplot 2 10 8 0.2:dens a 'GgwmM'
+text -1.4 -0.3 'GgwmM' '' -8
+subplot 2 10 9 0.2:dens a 'UuwqR'
+text -1.4 -0.3 'UuwqR' '' -8
+subplot 2 10 10 0.2:dens a 'QqwcC'
+text -1.4 -0.3 'QqwcC' '' -8
+subplot 2 10 11 0.2:dens a 'CcwyY'
+text -1.4 -0.3 'CcwyY' '' -8
+subplot 2 10 12 0.2:dens a 'bcwyr'
+text -1.4 -0.3 'bcwyr' '' -8
+subplot 2 10 13 0.2:dens a 'bwr'
+text -1.4 -0.3 'bwr' '' -8
+subplot 2 10 14 0.2:dens a 'BbcyrR'
+text -1.4 -0.3 'BbcyrR' '' -8
+subplot 2 10 15 0.2:dens a 'UbcyqR'
+text -1.4 -0.3 'UbcyqR' '' -8
+subplot 2 10 16 0.2:dens a 'BbcwyrR'
+text -1.4 -0.3 'BbcwyrR' '' -8
+subplot 2 10 17 0.2:dens a 'bcyr'
+text -1.4 -0.3 'bcyr' '' -8
+subplot 2 10 18 0.2:dens a 'BbcyrR|'
+text -1.4 -0.3 'BbcyrR|' '' -8
+subplot 2 10 19 0.2:dens a 'bgr'
+text -1.4 -0.3 'bgr' '' -8
+</pre><hr size="6">
+<a name="Normal-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Color-schemes-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Glass_002dlike-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Normal-transparency-1"></a>
+<h3 class="subsection">9.5.11 Normal transparency</h3>
+<a name="index-TranspType"></a>
+<div class="float">
+<img src="../png/type0.png" alt="../png/type0">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true);	gr-&gt;Light(true);
+mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+
+gr-&gt;TranspType = 0;	gr-&gt;Clf();
+gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);	gr-&gt;Surf(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);	gr-&gt;Dens(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);	gr-&gt;Cont(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);	gr-&gt;Axial(a);	gr-&gt;Box();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 0: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre><hr size="6">
+<a name="Glass_002dlike-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Normal-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lamp_002dlike-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Glass_002dlike-transparency-1"></a>
+<h3 class="subsection">9.5.12 Glass-like transparency</h3>
+<a name="index-TranspType-1"></a>
+<div class="float">
+<img src="../png/type1.png" alt="../png/type1">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true);	gr-&gt;Light(true);
+mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+
+gr-&gt;TranspType = 1;	gr-&gt;Clf();
+gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);	gr-&gt;Surf(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);	gr-&gt;Dens(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);	gr-&gt;Cont(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);	gr-&gt;Axial(a);	gr-&gt;Box();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 1: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre><hr size="6">
+<a name="Lamp_002dlike-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Glass_002dlike-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Lamp_002dlike-transparency-1"></a>
+<h3 class="subsection">9.5.13 Lamp-like transparency</h3>
+<a name="index-TranspType-2"></a>
+<div class="float">
+<img src="../png/type2.png" alt="../png/type2">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true);	gr-&gt;Light(true);
+mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+
+gr-&gt;TranspType = 2;	gr-&gt;Clf();
+gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);	gr-&gt;Surf(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);	gr-&gt;Dens(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);	gr-&gt;Cont(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);	gr-&gt;Axial(a);	gr-&gt;Box();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 2: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<hr size="6">
+<a name="Additional-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lamp_002dlike-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Additional-features-1"></a>
+<h2 class="section">9.6 Additional features</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Legend-sample">9.6.1 Legend sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Adding-mesh-sample">9.6.2 Adding mesh sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf-_0026-Cont-sample">9.6.3 Surf &amp; Cont sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-_0026-Dens-sample">9.6.4 Flow &amp; Dens sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Several-light-sample">9.6.5 Several light sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mirrored-surface-sample">9.6.6 Mirrored surface sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-with-labels-sample">9.6.7 Cont with labels sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ternary-plot-sample">9.6.8 Ternary plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Coloring-by-coordinates-sample">9.6.9 Coloring by coordinates sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Drops-sample">9.6.10 Drops sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Molecules-drawing-sample">9.6.11 Molecules drawing sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">    
+</td></tr>
+</table>
+<hr size="6">
+<a name="Legend-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Additional-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Adding-mesh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Legend-sample-1"></a>
+<h3 class="subsection">9.6.1 Legend sample</h3>
+<a name="index-Plot-9"></a>
+<a name="index-Legend-5"></a>
+<a name="index-AddLegend-3"></a>
+<div class="float">
+<img src="../png/legend.png" alt="../png/legend">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData f(50,3);
+f.Modify(&quot;sin(2*pi*x*x)&quot;,0);
+f.Modify(&quot;sin(2*pi*x)&quot;,1);
+f.Modify(&quot;sin(2*pi*sqrt(x))&quot;,2);
+gr-&gt;Axis(mglPoint(0,-1),mglPoint(1,1));
+gr-&gt;Box(); gr-&gt;Plot(f); gr-&gt;Axis();
+gr-&gt;AddLegend(&quot;sin(\\pi {x^2})&quot;,&quot;b&quot;);
+gr-&gt;AddLegend(&quot;sin(\\pi x)&quot;,&quot;g*&quot;);
+gr-&gt;AddLegend(&quot;sin(\\pi \\sqrt{\\a x})&quot;,&quot;r+&quot;);
+gr-&gt;Legend();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new f 50 3
+modify f 'sin(2*pi*x*x)'
+modify f 'sin(2*pi*x)' 1
+modify f 'sin(2*pi*sqrt(x))' 2
+axis 0 -1 1 1
+box
+plot f
+axis
+addlegend 'sin(\pi {x^2})' 'b'
+addlegend 'sin(\pi x)' 'g*'
+addlegend 'sin(\pi \sqrt{\a x})' 'r+'
+legend
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT f = mgl_create_data_size(50,3,1);
+mgl_data_modify(f,&quot;sin(2*pi*x*x)&quot;,0);
+mgl_data_modify(f,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(f,&quot;sin(2*pi*sqrt(x))&quot;,2);
+mgl_set_axis(gr, 0.,-1.,0., 1.,1.,1., 0.,0.,0.);
+mgl_box(gr,1);
+mgl_plot(gr,f,NULL);
+mgl_axis(gr,&quot;xy&quot;);
+mgl_add_legend(gr,&quot;sin(\\pi {x^2})&quot;,&quot;b&quot;);
+mgl_add_legend(gr,&quot;sin(\\pi x)&quot;,&quot;g*&quot;);
+mgl_add_legend(gr,&quot;sin(\\pi \\sqrt{\\a x})&quot;,&quot;r+&quot;);
+mgl_legend(gr,3,&quot;rL&quot;,-1.,0.1);
+mgl_delete_data(f);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer f, mgl_create_data_size
+f = mgl_create_data_size(50,3,1)
+call mgl_data_modify(f,'sin(2*pi*x*x)',0)
+call mgl_data_modify(f,'sin(2*pi*x)',1)
+call mgl_data_modify(f,'sin(2*pi*sqrt(x))',2)
+call mgl_set_axis(gr, 0.,-1.,0., 1.,1.,1., 0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_plot(gr,f,'')
+call mgl_axis(gr,'xy')
+call mgl_add_legend(gr,'sin(\pi {x^2})','b');
+call mgl_add_legend(gr,'sin(\pi x)','g*');
+call mgl_add_legend(gr,'sin(\pi \sqrt{\a x})','r+');
+call mgl_legend(gr,3,'rL',-1.,0.1);
+call mgl_delete_data(f)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">f = mglData(50,3);
+f.Modify(&quot;sin(2*pi*x*x)&quot;,0);    f.Modify(&quot;sin(2*pi*x)&quot;,1);      f.Modify(&quot;sin(2*pi*sqrt(x))&quot;,2);
+gr.SetRanges(0,1,-1,1);     gr.Box();   gr.Axis();  gr.Plot(f);
+gr.AddLegend(&quot;sin(\\pi x^2)&quot;,&quot;b&quot;);
+gr.AddLegend(&quot;sin(\\pi x)&quot;,&quot;g*&quot;);
+gr.AddLegend(&quot;sin(\\pi\\sqrt{\\a x})&quot;,&quot;r+&quot;);
+gr.Legend();
+</pre><hr size="6">
+<a name="Adding-mesh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf-_0026-Cont-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Adding-mesh-sample-1"></a>
+<h3 class="subsection">9.6.2 Adding mesh sample</h3>
+<a name="index-SubPlot-4"></a>
+<a name="index-Surf-12"></a>
+<a name="index-Dens-6"></a>
+<a name="index-Cont-6"></a>
+<a name="index-Axial-6"></a>
+<div class="float">
+<img src="../png/samplea.png" alt="../png/samplea">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(40,60);
+gr-&gt;Surf(a,&quot;BbcyrR#&quot;);  gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(40,60);
+gr-&gt;Dens(a,&quot;BbcyrR#&quot;);  gr-&gt;Box();
+gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(40,60);
+gr-&gt;Cont(a,&quot;BbcyrR#&quot;);  gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(40,60);
+gr-&gt;Axial(a,&quot;BbcyrR#&quot;); gr-&gt;Box();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+alpha on
+light on
+subplot 2 2 0
+rotate 40 60
+surf a 'BbcyrR#'
+box
+subplot 2 2 1
+rotate 40 60
+dens a 'BbcyrR#'
+box
+subplot 2 2 2
+rotate 40 60
+cont a 'BbcyrR#'
+box
+subplot 2 2 3
+rotate 40 60
+axial a 'BbcyrR#'
+box
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_set_alpha(gr,1);
+mgl_set_light(gr,1);
+mgl_subplot(gr,2,2,0); mgl_rotate(gr,40.,60.,0.);
+mgl_surf(gr,a,&quot;BbcyrR#&quot;);       mgl_box(gr,1);
+mgl_subplot(gr,2,2,1); mgl_rotate(gr,40.,60.,0.);
+mgl_dens(gr,a,&quot;BbcyrR#&quot;,-1.);   mgl_box(gr,1);
+mgl_subplot(gr,2,2,2); mgl_rotate(gr,40.,60.,0.);
+mgl_cont(gr,a,&quot;BbcyrR#&quot;,7,NAN); mgl_box(gr,1);
+mgl_subplot(gr,2,2,3); mgl_rotate(gr,40.,60.,0.);
+mgl_axial(gr,a,&quot;BbcyrR#&quot;,3);    mgl_box(gr,1);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+real zero, nan
+zero=0; nan=zero/zero
+a = mgl_create_data_size(50,40,1)
+call mgl_data_modify(a,'0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))',0)
+call mgl_set_alpha(gr,1)
+call mgl_set_light(gr,1)
+call mgl_subplot(gr,2,2,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_surf(gr,a,'BbcyrR#')
+call mgl_box(gr,1)
+call mgl_subplot(gr,2,2,1)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_dens(gr,a,'BbcyrR#',-1.)
+call mgl_box(gr,1)
+call mgl_subplot(gr,2,2,2)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_cont(gr,a,'BbcyrR#',7,nan)
+call mgl_box(gr,1)
+call mgl_subplot(gr,2,2,3)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_axial(gr,a,'BbcyrR#',3)
+call mgl_box(gr,1)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Light(True);     gr.Alpha(True);
+gr.SubPlot(2,2,0);
+gr.Rotate(40,60);   gr.Surf(a,&quot;BbcyrR#&quot;);   gr.Box();
+gr.SubPlot(2,2,1);
+gr.Rotate(40,60);   gr.Dens(a,&quot;BbcyrR#&quot;);   gr.Box();
+gr.SubPlot(2,2,2);
+gr.Rotate(40,60);   gr.Cont(a,&quot;BbcyrR#&quot;);   gr.Box();
+gr.SubPlot(2,2,3);
+gr.Rotate(40,60);   gr.Axial(a,&quot;BbcyrR#&quot;);  gr.Box();
+</pre><hr size="6">
+<a name="Surf-_0026-Cont-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Adding-mesh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-_0026-Dens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-_0026-Cont-sample-1"></a>
+<h3 class="subsection">9.6.3 Surf &amp; Cont sample</h3>
+<a name="index-Surf-13"></a>
+<a name="index-Cont-7"></a>
+<div class="float">
+<img src="../png/surf_cont_y.png" alt="../png/surf_cont_y">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Surf(a);
+gr-&gt;Cont(a,&quot;y&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+cont a 'y'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_cont(gr,a,&quot;y&quot;,7,NAN);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+real zero, nan
+zero = 0; nan = zero/zero
+a = mgl_create_data_size(50,40,1)
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_cont(gr,a,'y',7,nan)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Surf(a);         gr.Cont(a,&quot;y&quot;);
+</pre><hr size="6">
+<a name="Flow-_0026-Dens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf-_0026-Cont-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Several-light-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-_0026-Dens-sample-1"></a>
+<h3 class="subsection">9.6.4 Flow &amp; Dens sample</h3>
+<a name="index-Flow-7"></a>
+<a name="index-Dens-7"></a>
+<div class="float">
+<img src="../png/flow_dens.png" alt="../png/flow_dens">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40), b(50,40), d(a);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+d.Modify(&quot;sqrt(v^2+w^2)&quot;,a,b);
+gr-&gt;Box();
+gr-&gt;Flow(a,b,&quot;br&quot;); gr-&gt;Dens(d,&quot;BbcyrR&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+copy d a
+modify d 'sqrt(v^2+w^2)' a b
+box
+flow a b 'br'
+dens d 'BbcyrR'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a, b, d;
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+d = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(d,&quot;sqrt(v^2+w^2)&quot;,a,b);
+mgl_box(gr,1);
+mgl_flow_2d(gr,a,b,&quot;br&quot;,5,1,0.);
+mgl_dens(gr,d,&quot;BbcyrR&quot;,-1.);
+mgl_delete_data(a); mgl_delete_data(b); mgl_delete_data(d);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b,d, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+d = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(d,&quot;sqrt(v^2+w^2)&quot;,a,b);
+call mgl_box(gr,1)
+call mgl_flow_2d(gr,a,b,'br',5,1,0.)
+call mgl_dens(gr,d,'BbcyrR',-1.);
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+call mgl_delete_data(d)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b= mglData(50,40), mglData(50,40);   d = mglData(a)
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+d.Modify(&quot;sqrt(v^2+w^2)&quot;,a,b);
+gr.Box();
+gr.Flow(a,b,&quot;br&quot;);      gr.Dens(d,&quot;BbcyrR&quot;);
+</pre><hr size="6">
+<a name="Several-light-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-_0026-Dens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mirrored-surface-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Several-light-sample-1"></a>
+<h3 class="subsection">9.6.5 Several light sample</h3>
+<a name="index-Surf-14"></a>
+<a name="index-Light-5"></a>
+<div class="float">
+<img src="../png/several_light.png" alt="../png/several_light">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Light(1,mglPoint(0,1,0),'c');
+gr-&gt;Light(2,mglPoint(1,0,0),'y');
+gr-&gt;Light(3,mglPoint(0,-1,0),'m');
+gr-&gt;Box();
+gr-&gt;Surf(a,&quot;h&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+light 1 0 1 0 'c'
+light 2 1 0 0 'y'
+light 3 0 -1 0 'm'
+box
+surf a 'h'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_add_light_rgb(gr,1,0.,1.,0.,1, 0.,1.,1.,0.5);
+mgl_add_light_rgb(gr,2,1.,0.,0.,1, 1.,1.,0.,0.5);
+mgl_add_light_rgb(gr,3,0.,-1.,0.,1, 1.,0.,1.,0.5);
+mgl_box(gr,1);
+mgl_surf(gr,a,&quot;h&quot;);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_add_light_rgb(gr,1,0.,1.,0.,1, 0.,1.,1.,0.5)
+call mgl_add_light_rgb(gr,2,1.,0.,0.,1, 1.,1.,0.,0.5)
+call mgl_add_light_rgb(gr,3,0.,-1.,0.,1, 1.,0.,1.,0.5)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'h')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);       gr.Light(True);
+gr.AddLight(1,0,1,0,&quot;c&quot;);
+gr.AddLight(2,1,0,0,&quot;y&quot;);
+gr.AddLight(3,0,-1,0,&quot;m&quot;);
+gr.Box();
+gr.Surf(a,&quot;h&quot;)
+</pre><hr size="6">
+<a name="Mirrored-surface-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Several-light-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-with-labels-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mirrored-surface-sample-1"></a>
+<h3 class="subsection">9.6.6 Mirrored surface sample</h3>
+<a name="index-Surf-15"></a>
+<div class="float">
+<img src="../png/mirror.png" alt="../png/mirror">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(30,40),x(30),y1(40),y2(40);
+a.Modify(&quot;pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)&quot;);
+x.Fill(-1,1); y1.Fill(0,1); y2.Fill(0,-1);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Surf(x,y1,a,&quot;r&quot;); gr-&gt;Surf(x,y2,a,&quot;b&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 30 40
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf a 'r'; yrange 0 1
+surf a 'b'; yrange 0 -1
+box
+</pre><p>or
+</p><pre class="verbatim">new a 30 40
+var x 30 -1 1
+var y1 40 0 1
+var y2 40 0 -1
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf x y1 a 'r'
+surf x y2 a 'b'
+box
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a,x,y1,y2;
+a = mgl_create_data_size(30,40,1);
+x = mgl_create_data_size(30,1,1);
+y1 = mgl_create_data_size(40,1,1);
+y2 = mgl_create_data_size(40,1,1);
+mgl_data_modify(a,&quot;pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)&quot;,0);
+mgl_data_fill(x,-1.,1.,'x');
+mgl_data_fill(y1,0.,1.,'x');
+mgl_data_fill(y2,0.,-1.,'x');
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf_xy(gr,x,y1,a,&quot;r&quot;); mgl_surf_xy(gr,x,y2,a,&quot;b&quot;);
+mgl_delete_data(a); mgl_delete_data(y1);
+mgl_delete_data(x); mgl_delete_data(y2);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,x,y1,y2, mgl_create_data_size
+a = mgl_create_data_size(30,40,1)
+x = mgl_create_data_size(30,1,1)
+y1 = mgl_create_data_size(40,1,1)
+y2 = mgl_create_data_size(40,1,1)
+call mgl_data_modify(a,'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)',0)
+call mgl_data_fill(x,-1.,1.,'x')
+call mgl_data_fill(y1,0.,1.,'x')
+call mgl_data_fill(y2,0.,-1.,'x')
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf_xy(gr,x,y1,a,'r')
+call mgl_surf_xy(gr,x,y2,a,'b')
+call mgl_delete_data(a)
+call mgl_delete_data(y1)
+call mgl_delete_data(x)
+call mgl_delete_data(y2)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, x, y1, y2 = mglData(30,40), mglData(30), mglData(40), mglData(40);
+a.Modify(&quot;pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)&quot;);
+x.Fill(-1,1);   y1.Fill(0,1);   y2.Fill(0,-1);
+gr.Rotate(40,60);       gr.Light(True);         gr.Box();
+gr.Surf(x,y1,a,&quot;r&quot;);    gr.Surf(x,y2,a,&quot;b&quot;);
+</pre><hr size="6">
+<a name="Cont-with-labels-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mirrored-surface-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ternary-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-with-labels-sample-1"></a>
+<h3 class="subsection">9.6.7 Cont with labels sample</h3>
+<a name="index-Cont-8"></a>
+<div class="float">
+<img src="../png/contt.png" alt="../png/contt">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Cont(a,&quot;BbcyrRt&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+cont a 'BbcyrRt'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_cont(gr,a,&quot;BbcyrRt&quot;,7,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_cont(gr,a,'BbcyrRt',7,0)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.Cont(a,&quot;BbcyrRt&quot;);
+</pre><hr size="6">
+<a name="Ternary-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-with-labels-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Coloring-by-coordinates-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ternary-plot-sample-1"></a>
+<h3 class="subsection">9.6.8 Ternary plot sample</h3>
+<a name="index-Ternary-2"></a>
+<div class="float">
+<img src="../png/ternary.png" alt="../png/ternary">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData x(50),y(50),rx(10),ry(10), a(20,30);
+a.Modify(&quot;4*x*y&quot;);
+x.Modify(&quot;0.25*(1+cos(2*pi*x))&quot;);
+y.Modify(&quot;0.25*(1+sin(2*pi*x))&quot;);
+rx.Modify(&quot;rnd&quot;); ry.Modify(&quot;(1-v)*rnd&quot;,rx);
+gr-&gt;Text(mglPoint(-0.8,1.3), &quot;Ternary plot (x+y+t=1)&quot;);
+gr-&gt;Ternary(true);
+gr-&gt;Plot(x,y,&quot;r2&quot;);
+gr-&gt;Plot(rx,ry,&quot;q^ &quot;);
+gr-&gt;Cont(a);
+gr-&gt;Line(mglPoint(0.5,0), mglPoint(0,0.75), &quot;g2&quot;);
+gr-&gt;Axis(); gr-&gt;Grid(&quot;xyz&quot;,&quot;B;&quot;);
+gr-&gt;Label('x',&quot;x comp.&quot;);
+gr-&gt;Label('y',&quot;y comp.&quot;);
+gr-&gt;Label('t',&quot;t comp.&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new rx 10
+new ry 10
+new x 50
+new y 50
+new a 20 30
+modify a '4*x*y'
+modify x '0.25*(1+cos(2*pi*x))'
+modify y '0.25*(1+sin(2*pi*x))'
+modify rx 'rnd'
+modify ry 'rnd*(1-v)' rx
+text -0.8 1.3 'Ternary plot (x+y+t=1)'
+ternary on
+plot x y 'r2'
+plot rx ry 'q^ '
+cont a
+line 0.5 0 0 0.75 'g2'
+axis
+grid 'xyz' 'B;'
+xlabel 'x comp.'
+ylabel 'y comp.'
+tlabel 't comp.'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT x,y,rx,ry,a;
+x = mgl_create_data_size(50,1,1);
+y = mgl_create_data_size(50,1,1);
+rx = mgl_create_data_size(50,1,1);
+ry = mgl_create_data_size(50,1,1);
+a = mgl_create_data_size(20,30,1);
+mgl_data_modify(x,&quot;0.25*(1+cos(2*pi*x))&quot;,0);
+mgl_data_modify(y,&quot;0.25*(1+sin(2*pi*x))&quot;,0);
+mgl_data_modify(rx,&quot;rnd&quot;,0);
+mgl_data_modify_vw(ry,&quot;(1-v)*rnd&quot;,rx,0);
+mgl_data_modify(a,&quot;4*x*y&quot;,0);
+mgl_puts_ext(gr,-0.8,1.3,0.,&quot;Ternary plot (x+y+t=1)&quot;,&quot;C&quot;,-1.4,'t');
+mgl_set_ternary(gr,1);
+mgl_plot_xy(gr,x,y,&quot;r2&quot;);
+mgl_plot_xy(gr,rx,ry,&quot;q^ &quot;);
+mgl_cont(gr,a,&quot;&quot;,7,0.);
+mgl_line(gr,0.5,0.,0.,0.,0.75,0.,&quot;g2&quot;,2);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B:&quot;);
+mgl_label(gr,'x',&quot;x comp&quot;);
+mgl_label(gr,'y',&quot;y comp&quot;);
+mgl_label(gr,'t',&quot;t comp&quot;);
+mgl_delete_data(a);
+mgl_delete_data(x);     mgl_delete_data(y);
+mgl_delete_data(rx);    mgl_delete_data(ry);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,x,y,rx,ry, mgl_create_data_size
+x = mgl_create_data_size(50,1,1)
+y = mgl_create_data_size(50,1,1)
+rx = mgl_create_data_size(50,1,1)
+ry = mgl_create_data_size(50,1,1)
+a = mgl_create_data_size(20,30,1)
+call mgl_data_modify(x,'0.25*(1+cos(2*pi*x))',0)
+call mgl_data_modify(y,'0.25*(1+sin(2*pi*x))',0)
+call mgl_data_modify(rx,'rnd',0)
+call mgl_data_modify_vw(ry,'(1-v)*rnd',rx,rx)
+call mgl_data_modify(a,'4*x*y',0)
+call mgl_puts_ext(gr,-0.8,1.3,0.,'Ternary plot (x+y+t=1)','C',-1.4,'t')
+call mgl_set_ternary(gr,1)
+call mgl_plot_xy(gr,x,y,'r2')
+call mgl_plot_xy(gr,rx,ry,'q^ ')
+call mgl_cont(gr,a,'',7,0.)
+call mgl_line(gr,0.5,0.,0.,0.,0.75,0.,'g2',2)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B:')
+call mgl_label(gr,'x','x comp')
+call mgl_label(gr,'y','y comp')
+call mgl_label(gr,'t','t comp')
+call mgl_delete_data(a)
+call mgl_delete_data(x)
+call mgl_delete_data(y)
+call mgl_delete_data(rx)
+call mgl_delete_data(ry)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">x, y, rx, ry, a = mglData(50), mglData(50), mglData(10), mglData(10), mglData(20,30);
+a.Modify(&quot;4*x*y&quot;);
+x.Modify(&quot;0.25*(1+cos(2*pi*x))&quot;);   y.Modify(&quot;0.25*(1+sin(2*pi*x))&quot;);
+rx.Modify(&quot;rnd&quot;);   ry.Modify(&quot;(1-v)*rnd&quot;,rx);
+gr.Puts(-0.8,1.3,0,&quot;Ternary plot (x+y+t=1)&quot;,&quot;C&quot;,-1.4);
+gr.Ternary(True);
+gr.Plot(x,y,&quot;r2&quot;);  gr.Plot(rx,ry,&quot;q^ &quot;);   gr.Cont(a);
+gr.Line(0.5,0,0,0,0.75,0,&quot;g2&quot;);
+gr.Axis();          gr.Grid(&quot;xyz&quot;,&quot;B;&quot;);
+gr.Label(&quot;x&quot;,&quot;x comp.&quot;);
+gr.Label(&quot;y&quot;,&quot;y comp.&quot;);
+gr.Label(&quot;t&quot;,&quot;t comp.&quot;);
+</pre><hr size="6">
+<a name="Coloring-by-coordinates-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ternary-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Drops-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Coloring-by-coordinates-sample-1"></a>
+<h3 class="subsection">9.6.9 Coloring by coordinates sample</h3>
+<a name="index-Surf3-9"></a>
+<div class="float">
+<img src="../png/surf3_rgbd.png" alt="../png/surf3_rgbd">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Surf3(a,&quot;bgrd&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+surf3 a 'bgrd'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_surf3(gr,a,&quot;bgrd&quot;,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'bgrd',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2+(2*y-1)^2+(2*z-1)^4-(2*z-1)^2-0.1)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.Surf3(a,&quot;bgrd&quot;);
+</pre><hr size="6">
+<a name="Drops-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Coloring-by-coordinates-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Molecules-drawing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Drops-sample-1"></a>
+<h3 class="subsection">9.6.10 Drops sample</h3>
+<a name="index-Drop-4"></a>
+<div class="float">
+<img src="../png/drops.png" alt="../png/drops">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Light(true);
+gr-&gt;Puts(mglPoint(-1,1.2),&quot;sh=0&quot;);
+gr-&gt;Drop(mglPoint(-1,0),mglPoint(0,1),0.5,&quot;r&quot;,0);
+gr-&gt;Puts(mglPoint(-0.33,1.2),&quot;sh=0.33&quot;);
+gr-&gt;Drop(mglPoint(-0.33,0),mglPoint(0,1),0.5,&quot;r&quot;,0.33);
+gr-&gt;Puts(mglPoint(0.33,1.2),&quot;sh=0.67&quot;);
+gr-&gt;Drop(mglPoint(0.33,0),mglPoint(0,1),0.5,&quot;r&quot;,0.67);
+gr-&gt;Puts(mglPoint(1,1.2),&quot;sh=1&quot;);
+gr-&gt;Drop(mglPoint(1,0),mglPoint(0,1),0.5,&quot;r&quot;,1);
+gr-&gt;Ball(mglPoint(-1,0,1),'k');
+gr-&gt;Ball(mglPoint(-0.33,0,1),'k');
+gr-&gt;Ball(mglPoint(0.33,0,1),'k');
+gr-&gt;Ball(mglPoint(1,0,1),'k');
+gr-&gt;Line(mglPoint(-1,0,1),mglPoint(1,0,1),&quot;b&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">light on
+text -1 1.2 'sh=0'
+drop -1 0 0 1 0.5 'r' 0
+text -0.33 1.2 'sh=0.33'
+drop -0.33 0 0 1 0.5 'r' 0.33
+text 0.33 1.2 'sh=0.67'
+drop 0.33 0 0 1 0.5 'r' 0.67
+text 1 1.2 'sh=1'
+drop 1 0 0 1 0.5 'r' 1
+ball -1 0 1 'k'
+ball -0.33 0 1 'k'
+ball 0.33 0 1 'k'
+ball 1 0 1 'k'
+line -1 0 1 1 0 1 'b'
+new h 100
+modify h '0.25*(1+x)^2'
+plot h 'k|'
+text -1 0.6 'h\sim(1+sh)^2' 'rL'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">mgl_set_light(gr,1);
+mgl_puts(gr,-1.,1.2,0.,&quot;sh=0&quot;); 
+mgl_drop(gr,-1.,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.,1.);
+mgl_puts(gr,-0.33,1.2,0.,&quot;sh=0.33&quot;); 
+mgl_drop(gr,-0.33,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.33,1.);
+mgl_puts(gr,0.33,1.2,0.,&quot;sh=0.67&quot;); 
+mgl_drop(gr,0.33,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.67,1.);
+mgl_puts(gr,1.,1.2,0.,&quot;sh=1&quot;); 
+mgl_drop(gr,1.,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,1.,1.);
+mgl_ball_str(gr,-1.,0.,1.,&quot;k&quot;);
+mgl_ball_str(gr,-0.33,0.,1.,&quot;k&quot;);
+mgl_ball_str(gr,0.33,0.,1.,&quot;k&quot;);
+mgl_ball_str(gr,1.,0.,1.,&quot;k&quot;);
+mgl_line(gr,-1.,0.,1.,1.,0.,1.,&quot;b&quot;,2);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">call mgl_set_light(gr,1);
+call mgl_puts(gr,-1.,1.2,0.,&quot;sh=0&quot;); 
+call mgl_drop(gr,-1.,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.,1.);
+call mgl_puts(gr,-0.33,1.2,0.,&quot;sh=0.33&quot;); 
+call mgl_drop(gr,-0.33,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.33,1.);
+call mgl_puts(gr,0.33,1.2,0.,&quot;sh=0.67&quot;); 
+call mgl_drop(gr,0.33,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.67,1.);
+call mgl_puts(gr,1.,1.2,0.,&quot;sh=1&quot;); 
+call mgl_drop(gr,1.,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,1.,1.);
+call mgl_ball_str(gr,-1.,0.,1.,&quot;k&quot;);
+call mgl_ball_str(gr,-0.33,0.,1.,&quot;k&quot;);
+call mgl_ball_str(gr,0.33,0.,1.,&quot;k&quot;);
+call mgl_ball_str(gr,1.,0.,1.,&quot;k&quot;);
+call mgl_line(gr,-1.,0.,1.,1.,0.,1.,&quot;b&quot;,2);
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">gr.Light(True);
+gr.Puts(-1,1.2,0,&quot;sh=0&quot;,&quot;rC&quot;);
+gr.Drop(-1,0,0,0,1,0,0.5,&quot;r&quot;,0);
+gr.Puts(-0.33,1.2,0,&quot;sh=0.33&quot;,&quot;rC&quot;);
+gr.Drop(-0.33,0,0,0,1,0,0.5,&quot;r&quot;,0.33);
+gr.Puts(0.33,1.2,0,&quot;sh=0.67&quot;,&quot;rC&quot;);
+gr.Drop(0.33,0,0,0,1,0,0.5,&quot;r&quot;,0.67);
+gr.Puts(1,1.2,0,&quot;sh=1&quot;,&quot;rC&quot;);
+gr.Drop(1,0,0,0,1,0,0.5,&quot;r&quot;,1);
+gr.Ball(-1,0,1,&quot;k&quot;);    gr.Ball(-0.33,0,1,&quot;k&quot;);
+gr.Ball(0.33,0,1,&quot;k&quot;);  gr.Ball(1,0,1,&quot;k&quot;);
+gr.Line(-1,0,1,1,0,1,&quot;b&quot;);
+</pre><hr size="6">
+<a name="Molecules-drawing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Drops-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Molecules-drawing-sample-1"></a>
+<h3 class="subsection">9.6.11 Molecules drawing sample</h3>
+<a name="index-Drop-5"></a>
+<a name="index-Sphere-3"></a>
+<div class="float">
+<img src="../png/molecule.png" alt="../png/molecule">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true); gr-&gt;Light(true);
+gr-&gt;SubPlot(2,2,0);
+gr-&gt;Text(mglPoint(0,1.2),&quot;Methane, CH_4&quot;,0,-3); gr-&gt;Rotate(60,120);
+gr-&gt;Sphere(mglPoint(0,0,0),0.25,&quot;k&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0,0,1),0.35,&quot;h&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0,0,0.7),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(-0.94,0,-0.33),0.35,&quot;h&quot;,1,2);
+gr-&gt;Sphere(mglPoint(-0.66,0,-0.23),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.47,0.82,-0.33),0.35,&quot;h&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.33,0.57,-0.23),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.47,-0.82,-0.33),0.35,&quot;h&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.33,-0.57,-0.23),0.25,&quot;g&quot;);
+gr-&gt;SubPlot(2,2,1);
+gr-&gt;Text(mglPoint(0,1.2),&quot;Water, H{_2}O&quot;,0,-3); gr-&gt;Rotate(60,100);
+gr-&gt;Sphere(mglPoint(0,0,0),0.25,&quot;r&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.3,0.5,0),0.3,&quot;m&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.3,0.5,0),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.3,-0.5,0),0.3,&quot;m&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.3,-0.5,0),0.25,&quot;g&quot;);
+gr-&gt;SubPlot(2,2,2);
+gr-&gt;Text(mglPoint(0,1.2),&quot;Oxygen, O_2&quot;,0,-3); gr-&gt;Rotate(60,120);
+gr-&gt;Drop(mglPoint(0,0.5,0),mglPoint(0,-0.3,0),0.3,&quot;m&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0,0.5,0),0.25,&quot;r&quot;);
+gr-&gt;Drop(mglPoint(0,-0.5,0),mglPoint(0,0.3,0),0.3,&quot;m&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0,-0.5,0),0.25,&quot;r&quot;);
+gr-&gt;SubPlot(2,2,3);
+gr-&gt;Text(mglPoint(0,1.2),&quot;Ammonia, NH_3&quot;,0,-3); gr-&gt;Rotate(60,120);
+gr-&gt;Sphere(mglPoint(0,0,0),0.25,&quot;b&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.33,0.57,0),0.32,&quot;n&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.33,0.57,0),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.33,-0.57,0),0.32,&quot;n&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.33,-0.57,0),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(-0.65,0,0),0.32,&quot;n&quot;,1,2);
+gr-&gt;Sphere(mglPoint(-0.65,0,0),0.25,&quot;g&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">alpha on
+light on
+subplot 2 2 0
+text 0 1.2 'Methane, CH_4' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'k'
+drop 0 0 0 0 0 1 0.35 'h' 1 2
+sphere 0 0 0.7 0.25 'g'
+drop 0 0 0 -0.94 0 -0.33 0.35 'h' 1 2
+sphere -0.66 0 -0.23 0.25 'g'
+drop 0 0 0 0.47 0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 0.57 -0.23 0.25 'g'
+drop 0 0 0 0.47 -0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 -0.57 -0.23 0.25 'g'
+subplot 2 2 1
+text 0 1.2 'Water, H{_2}O' '' -3
+rotate 60 100
+sphere 0 0 0 0.25 'r'
+drop 0 0 0 0.3 0.5 0 0.3 'm' 1 2
+sphere 0.3 0.5 0 0.25 'g'
+drop 0 0 0 0.3 -0.5 0 0.3 'm' 1 2
+sphere 0.3 -0.5 0 0.25 'g'
+subplot 2 2 2
+text 0 1.2 'Oxygen, O_2' '' -3
+rotate 60 120
+drop 0 0.5 0 0 -0.3 0 0.3 'm' 1 2
+sphere 0 0.5 0 0.25 'r'
+drop 0 -0.5 0 0 0.3 0 0.3 'm' 1 2
+sphere 0 -0.5 0 0.25 'r'
+subplot 2 2 3
+text 0 1.2 0 'Ammonia, NH_3' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'b'
+drop 0 0 0 0.33 0.57 0 0.32 'n' 1 2
+sphere 0.33 0.57 0 0.25 'g'
+drop 0 0 0 0.33 -0.57 0 0.32 'n' 1 2
+sphere 0.33 -0.57 0 0.25 'g'
+drop 0 0 0 -0.65 0 0 0.32 'n' 1 2
+sphere -0.65 0 0 0.25 'g'
+</pre><hr size="6">
+<a name="Advanced-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Molecules-drawing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Curvelinear-coorinates-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Advanced-features-1"></a>
+<h2 class="section">9.7 Advanced features</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Curvelinear-coorinates-sample">9.7.1 Curvelinear coorinates sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2_002daxes-sample">9.7.2 2-axes sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Semi_002dlog-sample">9.7.3 Semi-log sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Log_002dlog-sample">9.7.4 Log-log sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fitting-sample">9.7.5 Fitting sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Envelop-sample">9.7.6 Envelop sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Sew-sample">9.7.7 Sew sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#STFA-sample">9.7.8 STFA sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#PDE-sample">9.7.9 PDE sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Beam-tracing-sample">9.7.10 Beam tracing sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Parser-sample">9.7.11 Parser sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Manual-ticks-sample">9.7.12 Tick values sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ColumnPlot-sample">9.7.13 ColumnPlot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#StickPlot-sample">9.7.14 StickPlot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stereo-image-sample">9.7.15 Stereo image sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+</table>
+<hr size="6">
+<a name="Curvelinear-coorinates-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Advanced-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2_002daxes-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Curvelinear-coorinates-sample-1"></a>
+<h3 class="subsection">9.7.1 Curvelinear coorinates sample</h3>
+<a name="index-Axis-7"></a>
+<div class="float">
+<img src="../png/sample3.png" alt="../png/sample3">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Org = mglPoint(-1,1,-1);
+gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(60,40);
+gr-&gt;Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),&quot;r2&quot;,100);
+gr-&gt;Axis(); gr-&gt;Grid();
+gr-&gt;Text(mglPoint(0,1.3,1),&quot;Cartesian&quot;);
+gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(60,40);
+gr-&gt;SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;);
+gr-&gt;Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),&quot;r2&quot;,100);
+gr-&gt;Axis(); gr-&gt;Grid();
+gr-&gt;Text(mglPoint(0,1.3,1),&quot;Cylindrical&quot;);
+gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(60,40);
+gr-&gt;SetFunc(&quot;2*y*x&quot;,&quot;y*y - x*x&quot;);
+gr-&gt;Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),&quot;r2&quot;,100);
+gr-&gt;Axis(); gr-&gt;Grid();
+gr-&gt;Text(mglPoint(0,1.3,1),&quot;Parabolic&quot;);
+gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(60,40);
+gr-&gt;SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,&quot;x+z&quot;);
+gr-&gt;Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),&quot;r2&quot;,100);
+gr-&gt;Axis(); gr-&gt;Grid();
+gr-&gt;Text(mglPoint(0,1.3,1),&quot;Spiral&quot;);
+gr-&gt;Axis(0,0,0); // set to default Cartesian
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">origin -1 1 -1
+subplot 2 2 0
+rotate 60 40
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cartesian'
+subplot 2 2 1
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cylindrical'
+subplot 2 2 2
+rotate 60 40
+axis '2*y*x' 'y*y - x*x' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Parabolic'
+subplot 2 2 3
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Spiral'
+axis '' '' '' # set to default Cartesian
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">mgl_set_origin(gr,-1,1,-1);
+mgl_subplot(gr,2,2,0); mgl_rotate(gr,60,40,0);
+mgl_line(gr,-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+mgl_axis(gr,&quot;xyz&quot;); mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B&quot;);
+mgl_text(gr,0,1.3,1,&quot;Cartesian&quot;);
+mgl_subplot(gr,2,2,1); mgl_rotate(gr,60,40,0);
+mgl_set_func(gr,&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,0);
+mgl_line(gr,-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+mgl_axis(gr,&quot;xyz&quot;); mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B&quot;);
+mgl_text(gr,0,1.3,1,&quot;Cylindrical&quot;);
+mgl_subplot(gr,2,2,2); mgl_rotate(gr,60,40,0);
+mgl_set_func(gr,&quot;2*y*x&quot;,&quot;y*y - x*x&quot;,&quot;&quot;);
+mgl_line(gr,-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+mgl_axis(gr,&quot;xyz&quot;); mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B&quot;);
+mgl_text(gr,0,1.3,1,&quot;Parabolic&quot;);
+mgl_subplot(gr,2,2,3); mgl_rotate(gr,60,40,0);
+mgl_set_func(gr,&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,&quot;x+z&quot;);
+mgl_line(gr,-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+mgl_axis(gr,&quot;xyz&quot;); mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B&quot;);
+mgl_text(gr,0,1.3,1,&quot;Spiral&quot;);
+mgl_set_func(gr,0,0,0); /* set to default Cartesian */
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">call mgl_set_origin(gr,-1.,1.,-1.)
+call mgl_subplot(gr,2,2,0)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,'Cartesian')
+call mgl_subplot(gr,2,2,1)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_set_func(gr,'y*sin(pi*x)','y*cos(pi*x)','')
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,'Cylindrical')
+call mgl_subplot(gr,2,2,2)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_set_func(gr,'2*y*x','y*y - x*x','')
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,&quot;Parabolic&quot;)
+call mgl_subplot(gr,2,2,3)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_set_func(gr,'y*sin(pi*x)','y*cos(pi*x)','x+z')
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,'Spiral')
+call mgl_set_func(gr,'','','') ! set to default Cartesian
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">gr.SetOrigin(-1,1,-1);
+gr.SubPlot(2,2,0);              gr.Rotate(60,40);
+gr.Line(-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+gr.Axis();              gr.Grid();
+gr.Puts(0,1.3,1,&quot;Gartesian&quot;,&quot;rC&quot;,-1.5);
+gr.SubPlot(2,2,1);  gr.Rotate(60,40);
+gr.SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;);
+gr.Line(-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+gr.Axis();          gr.Grid();
+gr.Puts(0,1.3,1,&quot;Cylindrical&quot;,&quot;rC&quot;,-1.5);
+gr.SubPlot(2,2,2);  gr.Rotate(60,40);
+gr.SetFunc(&quot;2*y*x&quot;,&quot;y*y-x*x&quot;);
+gr.Line(-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+gr.Axis();          gr.Grid();
+gr.Puts(0,1.3,1,&quot;Parabolic&quot;,&quot;rC&quot;,-1.5);
+gr.SubPlot(2,2,3);  gr.Rotate(60,40);
+gr.SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,&quot;x+z&quot;);
+gr.Line(-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+gr.Axis();          gr.Grid();
+gr.Puts(0,1.3,1,&quot;Spiral&quot;,&quot;rC&quot;,-1.5);
+gr.SetFunc(&quot;&quot;,&quot;&quot;);   # set to default Gartesian
+</pre><hr size="6">
+<a name="g_t2_002daxes-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Curvelinear-coorinates-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Semi_002dlog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2_002daxes-sample-1"></a>
+<h3 class="subsection">9.7.2 2-axes sample</h3>
+<a name="index-Axis-8"></a>
+<div class="float">
+<img src="../png/2_axis.png" alt="../png/2_axis">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData y1(50), y2(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;); y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,-1,-1));
+gr-&gt;Axis(); gr-&gt;Label('y',&quot;axis 1&quot;,0);
+gr-&gt;Plot(y1,&quot;b&quot;);
+gr-&gt;Axis(mglPoint(0,0,0),mglPoint(1,1,1),mglPoint(1,1,1));
+gr-&gt;Axis(); gr-&gt;Label('y',&quot;axis 2&quot;,0);
+gr-&gt;Stem(y2,&quot;r&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+axis -1 -1 -1 1 1 1
+origin -1 -1 -1
+axis
+ylabel 'axis 1' 0
+plot y1 'b'
+axis 0 0 0 1 1 1
+origin 1 1 1
+axis
+ylabel 'axis 2' 0
+stem y2 'r'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_set_axis_2d(gr,-1.,1.,-1.,1.);
+mgl_set_origin(gr,-1.,-1.,-1.);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_label_ext(gr,'y',&quot;axis 1&quot;,0,-1.4,0.);
+mgl_plot(gr,y1,&quot;b&quot;);
+mgl_set_axis_2d(gr,0.,0.,1.,1.);
+mgl_set_origin(gr,1.,1.,1.);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_label_ext(gr,'y',&quot;axis 2&quot;,0,-1.4,0.);
+mgl_stem(gr,y2,&quot;r&quot;);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer y1,y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1)
+y2 = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y1,'0.3*sin(2*pi*x)',0)
+call mgl_data_modify(y2,'0.5+0.3*cos(2*pi*x)',0)
+call mgl_set_axis_2d(gr,-1.,1.,-1.,1.)
+call mgl_set_origin(gr,-1.,-1.,-1.)
+call mgl_axis(gr,'xyz')
+call mgl_label_ext(gr,'y','axis 1',0,-1.4,0.)
+call mgl_plot(gr,y1,'b')
+call mgl_set_axis_2d(gr,0.,0.,1.,1.)
+call mgl_set_origin(gr,1.,1.,1.)
+call mgl_axis(gr,'xyz')
+call mgl_label_ext(gr,'y','axis 2',0,-1.4,0.)
+call mgl_stem(gr,y2,'r')
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y1, y2 = mglData(50), mglData(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);   y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.SetRanges(-1,1,-1,1);   gr.SetOrigin(-1,-1);
+gr.Axis();      gr.Label(&quot;y&quot;,&quot;axis 1&quot;,0);
+gr.Plot(y1,&quot;b&quot;);
+gr.SetRanges(0,1,0,1);      gr.SetOrigin(1,1);
+gr.Axis();      gr.Label(&quot;y&quot;,&quot;axis 2&quot;,0);
+gr.Stem(y2,&quot;r&quot;);
+</pre><hr size="6">
+<a name="Semi_002dlog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2_002daxes-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Log_002dlog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Semi_002dlog-sample-1"></a>
+<h3 class="subsection">9.7.3 Semi-log sample</h3>
+<a name="index-Axis-9"></a>
+<a name="index-SetTicks-2"></a>
+<a name="index-Plot-10"></a>
+<div class="float">
+<img src="../png/semilog.png" alt="../png/semilog">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData x(2000), y(2000);
+x.Modify(&quot;0.01/(x+10^(-5))&quot;); y.Modify(&quot;sin(1/v)&quot;,x);
+gr-&gt;Axis(mglPoint(0.01,-1),mglPoint(1000,1),mglPoint(0.01,-1));
+gr-&gt;SetFunc(&quot;lg(x)&quot;,0);  gr-&gt;SetTicks('x',0);
+gr-&gt;Box();
+gr-&gt;Plot(x,y,&quot;b2&quot;);
+gr-&gt;Axis(); gr-&gt;Grid(&quot;xy&quot;,&quot;g&quot;);
+gr-&gt;Label('x',&quot;x&quot;,0);   gr-&gt;Label('y', &quot;y = sin 1/x&quot;,0);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new x 2000
+new y 2000
+modify x '0.01/(x+10^(-5))'
+modify y 'sin(1/v)' x
+xrange 0.01 1000
+origin 0.01 -1 0
+xtick 0
+axis 'lg(x)' '' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g'
+xlabel 'x' 0
+ylabel 'y = sin 1/x' 0
+box
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT x = mgl_create_data_size(2000,1,1);
+HMDT y = mgl_create_data_size(2000,1,1);
+mgl_data_modify(x,&quot;0.01/(x+10^(-5))&quot;,0);
+mgl_data_modify_vw(y,&quot;sin(1/v)&quot;,x,0);
+mgl_set_axis(gr,0.01,-1.,0.,1000.,1.,0.,0.01,-1.,0.);
+mgl_set_func(gr,&quot;lg(x)&quot;,0,0);
+mgl_set_ticks(gr,0.,-5.,-5.);
+mgl_box(gr,1);
+mgl_plot_xy(gr,x,y,&quot;b2&quot;);
+mgl_axis(gr,&quot;xy&quot;); mgl_axis_grid(gr,&quot;xy&quot;,&quot;g&quot;);
+mgl_label_ext(gr,'x',&quot;x&quot;,0,-1.4,0);
+mgl_label_ext(gr,'y', &quot;y = sin 1/x&quot;,0,-1.4,0);
+mgl_delete_data(x); mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer x,y, mgl_create_data_size
+x = mgl_create_data_size(2000,1,1)
+y = mgl_create_data_size(2000,1,1)
+call mgl_data_modify(x,'0.01/(x+10^(-5))',0)
+call mgl_data_modify_vw(y,'sin(1/v)',x,x)
+call mgl_set_axis(gr,0.01,-1.,0.,1000.,1.,0.,0.01,-1.,0.)
+call mgl_set_func(gr,'lg(x)','','')
+call mgl_set_ticks(gr,0.,-5.,-5.)
+call mgl_box(gr,1)
+call mgl_plot_xy(gr,x,y,'b2')
+call mgl_axis(gr,'xy')
+call mgl_axis_grid(gr,'xy','g')
+call mgl_label_ext(gr,'x','x',0.,-1.4,0.)
+call mgl_label_ext(gr,'y', 'y = sin 1/x',0.,-1.4,0.)
+call mgl_delete_data(x)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">TO BE DONE
+</pre><hr size="6">
+<a name="Log_002dlog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Semi_002dlog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fitting-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Log_002dlog-sample-1"></a>
+<h3 class="subsection">9.7.4 Log-log sample</h3>
+<a name="index-Axis-10"></a>
+<a name="index-SetTicks-3"></a>
+<a name="index-Plot-11"></a>
+<div class="float">
+<img src="../png/loglog.png" alt="../png/loglog">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData x(100), y(100);
+x.Modify(&quot;pow(10,6*x-3)&quot;); y.Modify(&quot;sqrt(1+v^2)&quot;,x);
+gr-&gt;Axis(mglPoint(0.001,0.1),mglPoint(1000,1000),mglPoint(0.001,0.1));
+gr-&gt;SetFunc(&quot;lg(x)&quot;,&quot;lg(y)&quot;);
+gr-&gt;SetTicks('x',0);    gr-&gt;SetTicks('y',0);
+gr-&gt;Box();
+gr-&gt;Plot(x,y,&quot;b2&quot;);
+gr-&gt;Axis(); gr-&gt;Grid(&quot;xy&quot;,&quot;g;&quot;);
+gr-&gt;Label('x',&quot;x&quot;,0); gr-&gt;Label('y', &quot;y=\\sqrt{1+x^2}&quot;,0);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new x 100
+new y 100
+modify x 'pow(10,6*x-3)'
+modify y 'sqrt(1+v^2)' x
+axis 0.001 0.1 1000 1000
+xtick 0
+ytick 0
+axis 'lg(x)' 'lg(y)' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g;'
+xlabel 'x' 0
+ylabel 'y=\sqrt{1+x^2}' 0
+box
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT x = mgl_create_data_size(100,1,1);
+HMDT y = mgl_create_data_size(100,1,1);
+mgl_data_modify(x,&quot;pow(10,6*x-3)&quot;,0);
+mgl_data_modify_vw(y,&quot;sqrt(1+v^2)&quot;,x,0);
+mgl_set_axis(gr,0.001,0.1,0.,1000.,1000.,0.,0.001,0.1,0.);
+mgl_set_func(gr,&quot;lg(x)&quot;,&quot;lg(y)&quot;,0);
+mgl_set_ticks(gr,0.,0.,-5.);
+mgl_box(gr,1);
+mgl_plot_xy(gr,x,y,&quot;b2&quot;);
+mgl_axis(gr,&quot;xy&quot;); mgl_axis_grid(gr,&quot;xy&quot;,&quot;g;&quot;);
+mgl_label_ext(gr,'x',&quot;x&quot;,0,-1.4,0);
+mgl_label_ext(gr,'y', &quot;y=\\sqrt{1+x^2}&quot;,0,-1.4,0);
+mgl_delete_data(x); mgl_delete_data(y);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer x,y, mgl_create_data_size
+x = mgl_create_data_size(100,1,1)
+y = mgl_create_data_size(100,1,1)
+call mgl_data_modify(x,'pow(10,6*x-3)',0)
+call mgl_data_modify_vw(y,'sqrt(1+v^2)',x,x)
+call mgl_set_axis(gr,0.001,0.1,0.,1000.,1000.,0.,0.001,0.1,0.)
+call mgl_set_func(gr,'lg(x)','lg(y)','')
+call mgl_set_ticks(gr,0.,0.,-5.)
+call mgl_box(gr,1)
+call mgl_plot_xy(gr,x,y,'b2')
+call mgl_axis(gr,'xy')
+call mgl_axis_grid(gr,'xy','g;')
+call mgl_label_ext(gr,'x','x',0.,-1.4,0)
+call mgl_label_ext(gr,'y', 'y=\sqrt{1+x^2}',0.,-1.4,0)
+call mgl_delete_data(x)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">x, y = mglData(100), mglData(100);
+x.Modify(&quot;pow(10,6*x-3)&quot;);          y.Modify(&quot;sqrt(1+v^2)&quot;,x);
+gr.SetRanges(0.001,1000,0.1,1000);  gr.SetOrigin(0.001,0.1);
+gr.SetFunc(&quot;lg(x)&quot;,&quot;lg(y)&quot;);
+gr.SetTicks(&quot;x&quot;,0);     gr.SetTicks(&quot;y&quot;,0);
+gr.Box();               gr.Plot(x,y,&quot;b2&quot;);
+gr.Axis();              gr.Grid(&quot;xy&quot;,&quot;g;&quot;);
+gr.Label(&quot;x&quot;,&quot;x&quot;,0);    gr.Label(&quot;y&quot;,&quot;y=\\sqrt{1+x^2}&quot;,0);
+</pre><hr size="6">
+<a name="Fitting-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Log_002dlog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Envelop-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fitting-sample-1"></a>
+<h3 class="subsection">9.7.5 Fitting sample</h3>
+<a name="index-Fit-9"></a>
+<a name="index-PutsFit-2"></a>
+<div class="float">
+<img src="../png/fit.png" alt="../png/fit">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData rnd(100), in(100), res;
+rnd.Fill(&quot;0.4*rnd+0.1+sin(2*pi*x)&quot;, gr-&gt;Min, gr-&gt;Max);
+in.Fill(&quot;0.3+sin(2*pi*x)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Axis(mglPoint(-1,-2), mglPoint(1,2));
+gr-&gt;Plot(rnd, &quot;. &quot;);
+gr-&gt;Box();
+float ini[3] = {1,1,3};
+gr-&gt;Fit(res, rnd, &quot;a+b*sin(c*x)&quot;, &quot;abc&quot;, ini);
+gr-&gt;Plot(res, &quot;r&quot;);
+gr-&gt;Plot(in, &quot;b&quot;);
+gr-&gt;Text(mglPoint(-1, -1.3), &quot;fitted:&quot;, &quot;L:r&quot;, -1);
+gr-&gt;PutsFit(mglPoint(0, -1.8), &quot;y = &quot;, &quot;C:r&quot;, -1);
+gr-&gt;Text(mglPoint(0, 2.2), &quot;initial: y = 0.3+sin(2\\pi x)&quot;, &quot;C:b&quot;, -1);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new rnd 100
+fill rnd '0.4*rnd+0.1+sin(2*pi*x)'
+new in 100
+fill in '0.3+sin(2*pi*x)'
+yrange -2 2
+plot rnd '. '
+box
+list ini 1 1 3
+fit res rnd 'a+b*sin(c*x)' 'abc' ini
+plot res 'r'
+plot in 'b'
+text -1 -1.3 'fitted:' 'L:r' -1
+putsfit 0 -1.8 'y = ' 'C:r'
+text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT rnd,in,res;
+float ini[3] = {1,1,3};
+rnd = mgl_create_data_size(100,1,1);
+in = mgl_create_data_size(100,1,1);
+res = mgl_create_data();
+mgl_data_modify(rnd,&quot;0.4*rnd+0.1+sin(4*pi*x)&quot;,0);
+mgl_data_modify(in,&quot;0.3+sin(4*pi*x)&quot;,0);
+mgl_set_axis_2d(gr,-1.,-2.,1.,2.);
+mgl_plot(gr,rnd,&quot;. &quot;);
+mgl_box(gr,1);
+mgl_fit_1(gr,res,rnd,&quot;a+b*sin(c*x)&quot;,&quot;abc&quot;,ini);
+mgl_plot(gr,res,&quot;r&quot;);   mgl_plot(gr,in,&quot;b&quot;);
+mgl_puts_ext(gr,-1.,-1.3,0.,&quot;fitted:&quot;,&quot;L:r&quot;,-1.,'t');
+mgl_puts_fit(gr,0.,-1.8,0.,&quot;y = &quot;,&quot;C:r&quot;,-1.);
+mgl_puts_ext(gr,0.,2.2,0.,&quot;initial: y = 0.3+sin(2\\pi x)&quot;,&quot;C:b&quot;, -1., 't');
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer rnd,in,res, mgl_create_data_size
+real ini(3)
+ini(1)=1;   ini(2)=1;   ini(3)=3;
+rnd = mgl_create_data_size(100,1,1);
+in = mgl_create_data_size(100,1,1);
+res = mgl_create_data();
+call mgl_data_modify(rnd,&quot;0.4*rnd+0.1+sin(4*pi*x)&quot;,0);
+call mgl_data_modify(in,&quot;0.3+sin(4*pi*x)&quot;,0);
+call mgl_set_axis_2d(gr,-1.,-2.,1.,2.);
+call mgl_plot(gr,rnd,&quot;. &quot;);
+call mgl_box(gr,1);
+call mgl_fit_1(gr,res,rnd,&quot;a+b*sin(c*x)&quot;,&quot;abc&quot;,ini);
+call mgl_plot(gr,res,&quot;r&quot;);
+call mgl_plot(gr,in,&quot;b&quot;);
+call mgl_puts_ext(gr,-1.,-1.3,0.,&quot;fitted:&quot;,&quot;L:r&quot;,-1.,'t');
+call mgl_puts_fit(gr,0.,-1.8,0.,&quot;y = &quot;,&quot;C:r&quot;,-1.);
+call mgl_puts_ext(gr,0.,2.2,0.,&quot;initial: y = 0.3+sin(2\\pi x)&quot;,&quot;C:b&quot;, -1., 't');
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">rnd, In, res, ini = mglData(100), mglData(100), mglData(), mglData(3);
+rnd.Modify(&quot;0.4*rnd+0.1+sin(4*pi*x)&quot;);
+In.Modify(&quot;0.3+sin(4*pi*x)&quot;);
+gr.SetRanges(-1,1,-2,2);
+gr.Plot(rnd,&quot;. &quot;);
+gr.Box();
+ini[0], ini[1], ini[2] = 1, 1, 3;
+gr.Fit(res,rnd,&quot;a+b*sin(c*x)&quot;,&quot;abc&quot;,ini);
+gr.Plot(res,&quot;r&quot;);   gr.Plot(In,&quot;b&quot;);
+gr.Puts(-1,-1.3,0,&quot;fitted:&quot;,&quot;L:r&quot;,-1);
+gr.PutsFit(0,-1.8,0,&quot;y = &quot;,&quot;C:r&quot;,-1);
+gr.Puts(0,2.2,0,&quot;initial: y = 0.3+sin(2\\pi x)&quot;,&quot;C:b&quot;,-1);
+</pre><hr size="6">
+<a name="Envelop-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fitting-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Sew-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Envelop-sample-1"></a>
+<h3 class="subsection">9.7.6 Envelop sample</h3>
+<a name="index-Envelop-2"></a>
+<div class="float">
+<img src="../png/envelop.png" alt="../png/envelop">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(1000);
+a.Fill(&quot;exp(-8*x^2)*sin(10*pi*x)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Plot(a, &quot;b&quot;);
+a.Envelop('x');
+gr-&gt;Plot(a, &quot;r&quot;);
+gr-&gt;Axis();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 1000
+fill a 'exp(-8*x^2)*sin(10*pi*x)'
+plot a 'b'
+envelop a
+plot a 'r'
+axis
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(1000,1,1);
+mgl_data_fill_eq(gr,a, &quot;exp(-8*x^2)*sin(10*pi*x)&quot;, 0,0);
+mgl_plot(gr,a,&quot;b&quot;);
+mgl_data_envelop(a,'x');
+mgl_plot(gr,a,&quot;r&quot;);
+mgl_axis(gr,&quot;xyz&quot;);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(1000,1,1)
+call mgl_data_fill_eq(gr,a, 'exp(-8*x^2)*sin(10*pi*x)', 0,0)
+call mgl_plot(gr,a,'b')
+call mgl_data_envelop(a,'x')
+call mgl_plot(gr,a,'r')
+call mgl_axis(gr,'xyz')
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(1000);
+gr.Fill(a, &quot;exp(-8*x^2)*sin(10*pi*x)&quot;);
+gr.Plot(a,&quot;b&quot;);
+a.Envelop(&quot;x&quot;);
+gr.Plot(a,&quot;r&quot;);
+gr.Axis();
+</pre><hr size="6">
+<a name="Sew-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Envelop-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#STFA-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Sew-sample-1"></a>
+<h3 class="subsection">9.7.7 Sew sample</h3>
+<a name="index-Sew-2"></a>
+<div class="float">
+<img src="../png/sew.png" alt="../png/sew">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(100, 100);
+a.Modify(&quot;mod((y^2-(1-x)^2)/2,0.1)&quot;);
+gr-&gt;Rotate(40, 60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Surf(a, &quot;b&quot;);
+a.Sew(&quot;xy&quot;, 0.1);
+gr-&gt;Surf(a, &quot;r&quot;);
+gr-&gt;Box();
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 100 100
+modify a 'mod((y^2-(1-x)^2)/2,0.1)'
+rotate 40 60
+light on
+alpha on
+surf a 'b'
+sew a 'xy' 0.1
+surf a 'r'
+box
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(100,100,1);
+mgl_data_modify(a, &quot;mod((y^2-(1-x)^2)/2, 0.1)&quot;, 0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_surf(gr,a,&quot;b&quot;);
+mgl_data_sew(a,&quot;xy&quot;,0.1);
+mgl_surf(gr,a,&quot;r&quot;);
+mgl_box(gr,1);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(100,100,1)
+call mgl_data_modify(a, 'mod((y^2-(1-x)^2)/2, 0.1)', 0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_surf(gr,a,'b')
+call mgl_data_sew(a,'xy',0.1)
+call mgl_surf(gr,a,'r')
+call mgl_box(gr,1)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(100, 100);
+a.Modify(&quot;mod((y^2-(1-x)^2)/2, 0.1)&quot;);
+gr.Rotate(40, 60);  gr.Light(True);     gr.Alpha(True);
+gr.Surf(a, &quot;b&quot;);
+a.Sew(&quot;xy&quot;, 0.1);
+gr.Surf(a, &quot;r&quot;);
+gr.Box();
+</pre><hr size="6">
+<a name="STFA-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Sew-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#PDE-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="STFA-sample-1"></a>
+<h3 class="subsection">9.7.8 STFA sample</h3>
+<a name="index-STFA-3"></a>
+<div class="float">
+<img src="../png/stfa.png" alt="../png/stfa">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(2000), b(2000);
+a.Fill(&quot;cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+ \
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)&quot;, 
+        gr-&gt;Min, gr-&gt;Max);
+gr-&gt;SubPlot(1, 2, 0);
+gr-&gt;Plot(a);
+gr-&gt;Axis();
+gr-&gt;Label('x', &quot;\\i t&quot;);
+gr-&gt;SubPlot(1, 2, 1);
+gr-&gt;STFA(a, b, 64);
+gr-&gt;Axis();
+gr-&gt;Label('x', &quot;\\i t&quot;);
+gr-&gt;Label('y', &quot;\\omega&quot;, 0);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 2000
+new b 2000
+fill a 'cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)'
+subplot 1 2 0
+plot a
+axis
+xlabel '\i t'
+subplot 1 2 1
+stfa a b 64 ''
+axis
+ylabel '\omega' 0
+xlabel '\i t'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(2000,1,1);
+HMDT b = mgl_create_data_size(2000,1,1);
+mgl_data_fill_eq(gr, a, &quot;cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+ \
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)&quot;,0,0);
+mgl_subplot(gr,1,2,0);
+mgl_plot(gr,a,&quot;&quot;);
+mgl_axis(gr,&quot;xy&quot;);
+mgl_label(gr,'x', &quot;\\i t&quot;);
+mgl_subplot(gr,1,2,1);
+mgl_stfa(gr,a,b,64,&quot;&quot;,0.);
+mgl_axis(gr,&quot;xy&quot;);
+mgl_label(gr,'x', &quot;\\i t&quot;);
+mgl_label(gr,'y', &quot;\\omega&quot;);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(2000,1,1)
+b = mgl_create_data_size(2000,1,1)
+call mgl_data_fill_eq(gr, a, 'cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+ &amp;
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)',0,0)
+call mgl_subplot(gr,1,2,0)
+call mgl_plot(gr,a,'')
+call mgl_axis(gr,'xy')
+call mgl_label(gr,'x', '\i t')
+call mgl_subplot(gr,1,2,1)
+call mgl_stfa(gr,a,b,64,'',0.)
+call mgl_axis(gr,'xy')
+call mgl_label(gr,'x', '\i t')
+call mgl_label(gr,'y', '\omega')
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(2000), mglData(2000);
+gr.Fill(a,&quot;cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+ \
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)&quot;);
+gr.SubPlot(1, 2, 0);
+gr.Plot(a);
+gr.Axis();
+gr.Label('x', &quot;\\i t&quot;);
+gr.SubPlot(1, 2, 1);
+gr.STFA(a, b, 64);
+gr.Axis();
+gr.Label('x', &quot;\\i t&quot;);
+gr.Label('y', &quot;\\omega&quot;, 0);
+</pre><hr size="6">
+<a name="PDE-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#STFA-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Beam-tracing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="PDE-sample-1"></a>
+<h3 class="subsection">9.7.9 PDE sample</h3>
+<a name="index-mglPDE-1"></a>
+<a name="index-mglRay-1"></a>
+<div class="float">
+<img src="../png/pde.png" alt="../png/pde">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a,re(128),im(128);
+gr-&gt;Axis();
+gr-&gt;Label('x', &quot;\\i x&quot;);
+gr-&gt;Label('y', &quot;\\i z&quot;);
+	
+re.Fill(&quot;exp(-48*(x+0.7)^2)&quot;, gr-&gt;Min, gr-&gt;Max);
+a = mglPDE(&quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;, re, im, gr-&gt;Min, gr-&gt;Max, 0.01, 30);
+a.Transpose(&quot;yxz&quot;);
+gr-&gt;CAxis(0, 1);
+gr-&gt;Dens(a,&quot;wyrRk&quot;);
+gr-&gt;Plot(&quot;-x&quot;, &quot;k|&quot;);
+gr-&gt;Puts(mglPoint(0, 0.85), &quot;absorption: (x+z)/2 for x+z&gt;0&quot;);
+gr-&gt;Title(&quot;\\r{Equation:} ik_0\\partial_zu + \\Delta u + x\\cdot u + \
+i \\frac{x+z}{2}\\cdot u = 0&quot;, &quot;iC&quot;, -1.5);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+fill re 'exp(-48*(x+0.7)^2)'
+pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)' re im 0.01 30
+transpose a
+crange 0 1
+dens a 'wyrRk'
+fplot '-x' 'k|'
+text 0 0.85 'absorption: (x+z)/2 for x+z&gt;0' '' -1
+title 'Equation: ik_0\partial_zu + \Delta u + x\cdot u + i \frac{x+z}{2}\cdot u = 0' 'iC' -1.5
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data();
+HMDT re = mgl_create_data_size(128,1,1);
+HMDT im = mgl_create_data_size(128,1,1);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_label(gr,'x', &quot;\\i x&quot;);
+mgl_label(gr,'y', &quot;\\i z&quot;);
+mgl_data_fill_eq(gr,re,&quot;exp(-48*(x+0.7)^2)&quot;, 0, 0);
+a = mgl_pde_solve(gr, &quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;, re, im, 0.01, 30.);
+mgl_data_transpose(a, &quot;yxz&quot;);
+mgl_set_caxis(gr, 0, 1);
+mgl_dens(gr, a,&quot;wyrRk&quot;, -1.);
+mgl_fplot(gr, &quot;-x&quot;, &quot;k|&quot;, 100);
+mgl_puts(gr, 0., 0.85, 0., &quot;absorption: (x+z)/2 for x+z&gt;0&quot;);
+mgl_title(gr, &quot;\\r{Equation:} ik_0\\partial_zu + \\Delta u + x\\cdot u + \
+i \\frac{x+z}{2}\\cdot u = 0&quot;, &quot;iC&quot;, -1.5);
+mgl_delete_data(a);
+mgl_delete_data(im);
+mgl_delete_data(re);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a,re,im, mgl_create_data_size
+a = mgl_create_data()
+re = mgl_create_data_size(128,1,1)
+im = mgl_create_data_size(128,1,1)
+call mgl_axis(gr,'xyz')
+call mgl_label(gr,'x', '\i x')
+call mgl_label(gr,'y', '\i z')
+call mgl_data_fill_eq(gr,re,'exp(-48*(x+0.7)^2)', 0, 0)
+a = mgl_pde_solve(gr, 'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)', re, im, 0.01, 30.)
+call mgl_data_transpose(a, 'yxz')
+call mgl_set_caxis(gr, 0., 1.)
+call mgl_dens(gr, a,'wyrRk', -1.)
+call mgl_fplot(gr, '-x', 'k|', 100)
+call mgl_puts(gr, 0., 0.85, 0., 'absorption: (x+z)/2 for x+z&gt;0')
+call mgl_title(gr, '\r{Equation:} ik_0\partial_zu + \Delta u + x\cdot u + &amp;
+i \frac{x+z}{2}\cdot u = 0', 'iC', -1.5)
+call mgl_delete_data(a)
+call mgl_delete_data(im)
+call mgl_delete_data(re)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, re, im = mglData(), mglData(128), mglData(128);
+gr.Axis();
+gr.Label('x', &quot;\\i x&quot;);
+gr.Label('y', &quot;\\i z&quot;);
+	
+gr.Fill(re,&quot;exp(-48*(x+0.7)^2)&quot;);
+a = gr.PDE(&quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;, re, im, 0.01, 30);
+a.Transpose(&quot;yxz&quot;);
+gr.SetCRange(0, 1);
+gr.Dens(a,&quot;wyrRk&quot;);
+gr.Plot(&quot;-x&quot;, &quot;k|&quot;);
+gr.Puts(0, 0.85, 0., &quot;absorption: (x+z)/2 for x+z&gt;0&quot;);
+gr.Title(&quot;\\r{Equation:} ik_0\\partial_zu + \\Delta u + x\\cdot u + \
+i \\frac{x+z}{2}\\cdot u = 0&quot;, &quot;iC&quot;, -1.5);
+</pre><hr size="6">
+<a name="Beam-tracing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#PDE-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Parser-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Beam-tracing-sample-1"></a>
+<h3 class="subsection">9.7.10 Beam tracing sample</h3>
+<a name="index-mglQO2d-1"></a>
+<a name="index-mglRay-2"></a>
+<div class="float">
+<img src="../png/qo2d.png" alt="../png/qo2d">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData r, xx, yy, a, im(128), re(128);
+const char *ham = &quot;p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)&quot;;
+r = mglRay(ham, mglPoint(-0.7, -1), mglPoint(0, 0.5), 0.02, 2);
+gr-&gt;Plot(r.SubData(0), r.SubData(1), &quot;k&quot;);
+gr-&gt;Axis();	gr-&gt;Label('x', &quot;\\i x&quot;);	gr-&gt;Label('y', &quot;\\i z&quot;);
+// now start beam tracing
+re.Fill(&quot;exp(-48*x^2)&quot;, gr-&gt;Min, gr-&gt;Max);
+a = mglQO2d(ham, re, im, r, 1, 30, &amp;xx, &amp;yy);
+gr-&gt;CAxis(0, 1);
+gr-&gt;Dens(xx, yy, a, &quot;wyrRk&quot;);
+gr-&gt;Plot(&quot;-x&quot;, &quot;k|&quot;);
+gr-&gt;Puts(mglPoint(0, 0.85), &quot;absorption: (x+y)/2 for x+y&gt;0&quot;);
+gr-&gt;Puts(mglPoint(0.7, -0.05), &quot;central ray&quot;);
+gr-&gt;Title(&quot;Beam and ray tracing&quot;, &quot;C&quot;, -1.5);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)'
+ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
+plot r(0) r(1) 'k'
+axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+new xx
+new yy
+fill re 'exp(-48*x^2)'
+qo2d a $1 re im r 1 30 xx yy 
+crange 0 1
+dens xx yy a 'wyrRk'
+fplot '-x' 'k|'
+text -0.8 0.85 'absorption: (x+y)/2 for x+y&gt;0' 'L' -1
+text 0.5 -0.05 'central ray' 'L' -1
+title 'Beam and ray tracing' 'C' -1.5
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">const char *ham = &quot;p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)&quot;;
+HMDT r, xx, yy, a, im, re;
+im = mgl_create_data_size(128,1,1);
+re = mgl_create_data_size(128,1,1);
+r = mgl_ray_trace(ham, -0.7, -1., 0., 0., 0.5, 0., 0.02, 2.);
+xx = mgl_data_subdata(r,0,-1,-1);
+yy = mgl_data_subdata(r,1,-1,-1);
+mgl_plot_xy(gr, xx, yy, &quot;k&quot;);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_label(gr,'x',&quot;\\i x&quot;);
+mgl_label(gr,'y',&quot;\\i z&quot;);
+mgl_data_fill_eq(gr,re,&quot;exp(-48*x^2)&quot;, 0, 0);
+a = mgl_qo2d_solve(ham, re, im, r, 1, 30, xx, yy);
+mgl_set_caxis(gr,0.,1.);
+mgl_dens_xy(gr,xx, yy, a, &quot;wyrRk&quot;, -1.);
+mgl_fplot(gr,&quot;-x&quot;, &quot;k|&quot;,100);
+mgl_puts(gr, 0., 0.85, 0., &quot;absorption: (x+y)/2 for x+y&gt;0&quot;);
+mgl_puts(gr, 0.7, -0.05, 0., &quot;central ray&quot;);
+mgl_title(gr, &quot;Beam and ray tracing&quot;, &quot;C&quot;, -1.5);
+mgl_delete_data(a);     mgl_delete_data(r);
+mgl_delete_data(xx);    mgl_delete_data(yy);
+mgl_delete_data(im);    mgl_delete_data(re);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer r, xx, yy, a, im, re, mgl_create_data_size
+integer mgl_data_subdata, mgl_ray_trace, mgl_qo2d_solve
+character*64 ham
+ham = 'p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)'
+im = mgl_create_data_size(128,1,1)
+re = mgl_create_data_size(128,1,1)
+r = mgl_ray_trace(ham, -0.7, -1., 0., 0., 0.5, 0., 0.02, 2.)
+xx = mgl_data_subdata(r,0,-1,-1)
+yy = mgl_data_subdata(r,1,-1,-1)
+call mgl_plot_xy(gr, xx, yy, 'k')
+call mgl_axis(gr,'xyz')
+call mgl_label(gr,'x','\i x')
+call mgl_label(gr,'y','\i z')
+call mgl_data_fill_eq(gr,re,'exp(-48*x^2)', 0, 0)
+a = mgl_qo2d_solve(ham, re, im, r, 1., 30., xx, yy)
+call mgl_set_caxis(gr,0.,1.)
+call mgl_dens_xy(gr,xx, yy, a, 'wyrRk', -1.)
+call mgl_fplot(gr,'-x', 'k|',100)
+call mgl_puts(gr, 0., 0.85, 0., 'absorption: (x+y)/2 for x+y&gt;0')
+call mgl_puts(gr, 0.7, -0.05, 0., 'central ray')
+call mgl_title(gr, 'Beam and ray tracing', 'C', -1.5)
+call mgl_delete_data(a)
+call mgl_delete_data(r)
+call mgl_delete_data(xx)
+call mgl_delete_data(yy)
+call mgl_delete_data(im)
+call mgl_delete_data(re)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ham = &quot;p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)&quot;;
+r, xx, yy, a = mglData(), mglData(), mglData(), mglData();
+im, re = mglData(128), mglData(128);
+r = mglRay(ham, mglPoint(-0.7, -1), mglPoint(0, 0.5), 0.02, 2);
+gr.Plot(r.SubData(0), r.SubData(1), &quot;k&quot;);
+gr.Axis();	gr.Label('x', &quot;\\i x&quot;);	gr.Label('y', &quot;\\i z&quot;);
+gr.Fill(re,&quot;exp(-48*x^2)&quot;);
+a = mglQO2d(ham, re, im, r, 1, 30, xx, yy);
+gr.SetCRange(0, 1);
+gr.Dens(xx, yy, a, &quot;wyrRk&quot;);
+gr.Plot(&quot;-x&quot;, &quot;k|&quot;);
+gr.Puts(0, 0.85, 0, &quot;absorption: (x+y)/2 for x+y&gt;0&quot;);
+gr.Puts(0.7, -0.05, 0, &quot;central ray&quot;);
+gr.Title(&quot;Beam and ray tracing&quot;, &quot;C&quot;, -1.5);
+</pre><hr size="6">
+<a name="Parser-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Beam-tracing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Manual-ticks-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Parser-sample-1"></a>
+<h3 class="subsection">9.7.11 Parser sample</h3>
+<a name="index-mglParse-2"></a>
+<div class="float">
+<img src="../png/parser.png" alt="../png/parser">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">float a[100];   // let a_i = sin(4*pi*x), x=0...1
+for(int i=0;i&lt;100;i++) a[i]=sin(4*M_PI*i/99);
+mglParse *parser = new mglParse;
+mglData &amp;d = (parser-&gt;AddVar(&quot;dat&quot;))-&gt;d;
+d.Set(a,100);   // set data to variable
+parser-&gt;Execute(gr, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+// you may break script at any line do something
+// and continue after that
+parser-&gt;Execute(gr, &quot;xlabel 'x'\nylabel 'y'\nbox&quot;);
+// also you may use cycles or conditions in script
+parser-&gt;Execute(gr, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">float a[100];   /* let a_i = sin(4*pi*x), x=0...1 */
+int i;
+for(i=0;i&lt;100;i++)  a[i]=sin(4*M_PI*i/99);
+HMPR parser = mgl_create_parser();
+HMDT d = mgl_add_var(parser, &quot;dat&quot;);
+mgl_data_set_float(d,a,100,1,1);    /* set data to variable */
+mgl_parse_text(gr, parser, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+/* you may break script at any line do something 
+   and continue after that */
+mgl_parse_text(gr, parser, &quot;xlabel 'x'\nylabel 'y'&quot;);
+/* also you may use cycles or conditions in script */
+mgl_parse_text(gr, parser, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer i,parser,d, mgl_create_data_size, mgl_create_parser
+real a(100)
+! let a_i = sin(4*pi*x), x=0...1
+do i = 1,100
+    a(i)=sin(4*3.1415926*(i-1)/99)
+end do
+parser = mgl_create_parser()
+d = mgl_add_var(parser, &quot;dat&quot;)
+call mgl_data_set_real(d,a,100,1,1)    ! set data to variable
+! I don't know how put new line ('\n') into fortran string
+! So call mgl_parse_text() for each string :(
+call mgl_parse_text(gr, parser, &quot;plot dat; xrange 0 1&quot;)
+call mgl_parse_text(gr, parser, &quot;box&quot;)
+call mgl_parse_text(gr, parser, &quot;axis&quot;)
+! you may break script at any line do something 
+! and continue after that
+call mgl_parse_text(gr, parser, &quot;xlabel 'x'&quot;)
+call mgl_parse_text(gr, parser, &quot;ylabel 'y'&quot;)
+! there is now conditions because I don't know 
+! how to send several string into parser at once :(
+!! also you may use cycles or conditions in script
+!call mgl_parse_text(gr, parser, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;)
+</pre><p><strong>Python</strong>
+You may need to use <code>from numpy import *</code> for defining functions like <code>sin()</code>.
+</p><pre class="verbatim">parser = mglParse();
+dat = parser.AddVar(&quot;dat&quot;);
+dat.Create(100);
+for i in range(100):
+  dat[i] = sin(4*pi*i/99);
+parser.Execute(gr, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+# you may break script at any line do something 
+# and continue after that
+parser.Execute(gr, &quot;xlabel 'x'\nylabel 'y'&quot;);
+# also you may use cycles or conditions in script
+parser.Execute(gr, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+</pre><hr size="6">
+<a name="Manual-ticks-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Parser-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ColumnPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tick-values-sample"></a>
+<h3 class="subsection">9.7.12 Tick values sample</h3>
+<a name="index-SetTicksVal-4"></a>
+<div class="float">
+<img src="../png/tval.png" alt="../png/tval">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;Axis(mglPoint(-M_PI, 0), mglPoint(M_PI, 2));
+gr-&gt;SetTicksVal('x', 6, -M_PI, &quot;-\\pi&quot;, -M_PI/2, &quot;-\\pi/2&quot;, 0., &quot;0&quot;, 
+                0.886, &quot;x^*&quot;, M_PI/2, &quot;\\pi/2&quot;, M_PI, &quot;\\pi&quot;);
+gr-&gt;Axis();     gr-&gt;Grid();
+gr-&gt;Plot(&quot;2*cos(x^2)^2&quot;, &quot;r2&quot;, NAN, 300);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">axis -pi 0 pi 2
+xtick -pi '-\pi' -1.571 '-\pi/2' 0 '0' 0.886 'x^*' 1.571 '\pi/2' pi '\pi'
+axis 
+grid
+fplot '2*cos(x^2)^2' 'r2' nan 300
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">mgl_set_axis_2d(gr, -M_PI, 0, M_PI, 2);
+mgl_set_ticks_val(gr, 'x', 6, -M_PI, &quot;-\\pi&quot;, -M_PI/2, &quot;-\\pi/2&quot;,
+            0., &quot;0&quot;, 0.886, &quot;x^*&quot;, M_PI/2, &quot;\\pi/2&quot;, M_PI, &quot;\\pi&quot;);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_axis_grid(gr,&quot;xyz&quot;, &quot;B-&quot;);
+mgl_fplot(gr, &quot;2*cos(x^2)^2&quot;, &quot;r2&quot;, 300);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">gr.SetRanges(-pi, pi, 0, 2);
+parser = mglParse();
+# very &quot;stupid&quot; way because SWIG not support variable arguments
+parser.Execute(gr, &quot;xtick -pi '-\pi' -1.571 '-\pi/2' 0 '0' &quot;
+                    &quot;0.886 'x^*' 1.571 '\pi/2' pi '\pi'&quot;);
+gr.Axis();     gr.Grid();
+gr.Plot(&quot;2*cos(x^2)^2&quot;, &quot;r2&quot;, 300);
+</pre><hr size="6">
+<a name="ColumnPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Manual-ticks-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#StickPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ColumnPlot-sample-1"></a>
+<h3 class="subsection">9.7.13 ColumnPlot sample</h3>
+<a name="index-ColumnPlot-2"></a>
+<div class="float">
+<img src="../png/column.png" alt="../png/column">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">char str[32];
+for(int i=0;i&lt;4;i++)
+{
+        gr-&gt;ColumnPlot(4,i);
+        gr-&gt;Box();
+        sprintf(str,&quot;Plot %d of 4&quot;,i);
+        gr-&gt;Text(mglPoint(-0.5,0.5),str);
+        sprintf(str,&quot;sin(pi*x+pi*%d/2)&quot;,i);
+        gr-&gt;Plot(str);
+}
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">for $1 0 3
+columnplot 4 $1
+box
+text -0.5 0.5 'Plot $1 of 4'
+fplot 'sin(pi*x+pi*$1/2)'
+next
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">int i;
+char str[32];
+for(i=0;i&lt;4;i++)
+{
+        mgl_columnplot(gr,4,i);
+        mgl_box(gr,1);
+        sprintf(str,&quot;Plot %d of 4&quot;,i);
+        mgl_text(gr,-0.5,0.5,0.,str);
+        sprintf(str,&quot;sin(pi*x+pi*%d/2)&quot;,i);
+        mgl_fplot(gr,str,&quot;&quot;,100);
+}
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="StickPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ColumnPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stereo-image-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="StickPlot-sample-1"></a>
+<h3 class="subsection">9.7.14 StickPlot sample</h3>
+<a name="index-StickPlot-2"></a>
+<div class="float">
+<img src="../png/stick.png" alt="../png/stick">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">gr-&gt;SetRanges(-1, 1, -1, 1, 0, 1);  gr-&gt;Light(true);
+gr-&gt;StickPlot(3, 0, 40, 30);        gr-&gt;Axis(&quot;xyz_&quot;);
+gr-&gt;Surf(&quot;exp(-10*y^2-6*x^2)&quot;);
+gr-&gt;Text(mglPoint(0.2, 0, 1.2), &quot;z=0&quot;, &quot;&quot;, -2);
+gr-&gt;StickPlot(3, 1, 40, 30);        gr-&gt;Axis(&quot;xyz_&quot;);
+gr-&gt;Surf(&quot;exp(-10*y^2/2-6*x^2)/sqrt(2)&quot;);
+gr-&gt;Text(mglPoint(0.2, 0, 1.2), &quot;z=1&quot;, &quot;&quot;, -2);
+gr-&gt;StickPlot(3, 2, 40, 30);        gr-&gt;Axis(&quot;xyz_&quot;);
+gr-&gt;Surf(&quot;exp(-10*y^2/5-6*x^2)/sqrt(5)&quot;);
+gr-&gt;Text(mglPoint(0.2, 0, 1.2), &quot;z=2&quot;, &quot;&quot;, -2);
+gr-&gt;Label('x',&quot;\\tau&quot;, 0);  gr-&gt;Label('y', &quot;\\rho&quot;);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">ranges -1 1 -1 1 0 1:light on
+stickplot 3 0 40 30 : axis 'xyz_'
+fsurf 'exp(-10*y^2-6*x^2)'
+text 0.2 0 1.2 'z=0' '' -2
+stickplot 3 1 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/2-6*x^2)/sqrt(2)'
+text 0.2 0 1.2 'z=1' '' -2
+stickplot 3 2 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/5-6*x^2)/sqrt(5)'
+text 0.2 0 1.2 'z=2' '' -2
+xlabel '\tau' 0 : ylabel '\rho'
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">mgl_set_axis_3d(gr, -1, -1, 0, 1, 1, 1);
+mgl_set_light(gr, 1);
+mgl_stickplot(gr, 3, 0, 40, 30);
+mgl_axis(gr, &quot;xyz_&quot;);
+mgl_fsurf(gr,&quot;exp(-10*y^2-6*x^2)&quot;,&quot;&quot;,100);
+mgl_text(gr, 0.2, 0, 1.2, &quot;z=0&quot;);
+mgl_stickplot(gr, 3, 1, 40, 30);
+mgl_axis(gr, &quot;xyz_&quot;);
+mgl_fsurf(gr,&quot;exp(-10*y^2/2-6*x^2)/sqrt(2)&quot;,&quot;&quot;,100);
+mgl_text(gr, 0.2, 0, 1.2, &quot;z=1&quot;);
+mgl_stickplot(gr, 3, 2, 40, 30);
+mgl_axis(gr, &quot;xyz_&quot;);
+mgl_fsurf(gr,&quot;exp(-10*y^2/5-6*x^2)/sqrt(5)&quot;,&quot;&quot;,100);
+mgl_text(gr, 0.2, 0, 1.2, &quot;z=2&quot;);
+mgl_label(gr,'x',&quot;\\tau&quot;);
+mgl_label(gr,'y', &quot;\\rho&quot;);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">gr-&gt;SetRanges(-1, 1, -1, 1, 0, 1);  gr-&gt;Light(true);
+gr-&gt;StickPlot(3, 0, 40, 30);        gr-&gt;Axis(&quot;xyz_&quot;);
+gr-&gt;Surf(&quot;exp(-10*y^2-6*x^2)&quot;);
+gr-&gt;Text(mglPoint(0.2, 0, 1.2), &quot;z=0&quot;, &quot;&quot;, -2);
+gr-&gt;StickPlot(3, 1, 40, 30);        gr-&gt;Axis(&quot;xyz_&quot;);
+gr-&gt;Surf(&quot;exp(-10*y^2/2-6*x^2)/sqrt(2)&quot;);
+gr-&gt;Text(mglPoint(0.2, 0, 1.2), &quot;z=1&quot;, &quot;&quot;, -2);
+gr-&gt;StickPlot(3, 2, 40, 30);        gr-&gt;Axis(&quot;xyz_&quot;);
+gr-&gt;Surf(&quot;exp(-10*y^2/5-6*x^2)/sqrt(5)&quot;);
+gr-&gt;Text(mglPoint(0.2, 0, 1.2), &quot;z=2&quot;, &quot;&quot;, -2);
+gr-&gt;Label('x',&quot;\\tau&quot;, 0);  gr-&gt;Label('y', &quot;\\rho&quot;);
+</pre><hr size="6">
+<a name="Stereo-image-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#StickPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stereo-image-sample-1"></a>
+<h3 class="subsection">9.7.15 Stereo image sample</h3>
+<div class="float">
+<img src="../png/stereo.png" alt="../png/stereo">
+</div><p><strong>C++ code</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Light(true);
+gr-&gt;SubPlot(2,1,0);
+gr-&gt;Rotate(40,60+3);
+gr-&gt;Box();   gr-&gt;Surf(a);
+gr-&gt;SubPlot(2,1,1);
+gr-&gt;Rotate(40,60-3);
+gr-&gt;Box();   gr-&gt;Surf(a);
+</pre><p><strong>MGL code</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+subplot 2 1 0
+rotate 40 60+3
+box:surf a
+subplot 2 1 1
+rotate 40 60-3
+box:surf a
+</pre><p><strong>Pure C code</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_set_light(gr,1);
+mgl_subplot(gr,2,1,0);
+mgl_rotate(gr,40.,60.+3.,0.);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_subplot(gr,2,1,1);
+mgl_rotate(gr,40.,60.-3.,0.);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran code</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_set_light(gr,1)
+call mgl_subplot(gr,2,1,0)
+call mgl_rotate(gr,40.,60.+3.,0.)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_subplot(gr,2,1,1)
+call mgl_rotate(gr,40.,60.-3.,0.)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Light(True);
+gr.SubPlot(2,1,0);
+gr.Rotate(40,60+3);
+gr.Surf(a);  gr.Box();
+gr.SubPlot(2,1,1);
+gr.Rotate(40,60-3);
+gr.Surf(a);  gr.Box();
+</pre>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_en.html/mathgl_en_abt.html b/texinfo/mathgl_en.html/mathgl_en_abt.html
new file mode 100644
index 0000000..4eed15e
--- /dev/null
+++ b/texinfo/mathgl_en.html/mathgl_en_abt.html
@@ -0,0 +1,184 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: About This Document</title>
+
+<meta name="description" content="MathGL 1.11: About This Document">
+<meta name="keywords" content="MathGL 1.11: About This Document">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="SEC_About"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1>About This Document</h1>
+<p>
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+</p>
+<p>
+  The buttons in the navigation panels have the following meaning:
+</p>
+<table border="1">
+  <tr>
+    <th> Button </th>
+    <th> Name </th>
+    <th> Go to </th>
+    <th> From 1.2.3 go to</th>
+  </tr>
+  <tr>
+    <td align="center"> [ &lt; ] </td>
+    <td align="center">Back</td>
+    <td>Previous section in reading order</td>
+    <td>1.2.2</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &gt; ] </td>
+    <td align="center">Forward</td>
+    <td>Next section in reading order</td>
+    <td>1.2.4</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &lt;&lt; ] </td>
+    <td align="center">FastBack</td>
+    <td>Beginning of this chapter or previous chapter</td>
+    <td>1</td>
+  </tr>
+  <tr>
+    <td align="center"> [ Up ] </td>
+    <td align="center">Up</td>
+    <td>Up section</td>
+    <td>1.2</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &gt;&gt; ] </td>
+    <td align="center">FastForward</td>
+    <td>Next chapter</td>
+    <td>2</td>
+  </tr>
+  <tr>
+    <td align="center"> [Top] </td>
+    <td align="center">Top</td>
+    <td>Cover (top) of document</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [Contents] </td>
+    <td align="center">Contents</td>
+    <td>Table of contents</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [Index] </td>
+    <td align="center">Index</td>
+    <td>Index</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [ ? ] </td>
+    <td align="center">About</td>
+    <td>About (help)</td>
+    <td> &nbsp; </td>
+  </tr>
+</table>
+
+<p>
+  where the <strong> Example </strong> assumes that the current position is at <strong> Subsubsection One-Two-Three </strong> of a document of the following structure:
+</p>
+
+<ul>
+  <li> 1. Section One
+    <ul>
+      <li>1.1 Subsection One-One
+        <ul>
+          <li>...</li>
+        </ul>
+      </li>
+      <li>1.2 Subsection One-Two
+        <ul>
+          <li>1.2.1 Subsubsection One-Two-One</li>
+          <li>1.2.2 Subsubsection One-Two-Two</li>
+          <li>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp;
+            <strong>&lt;== Current Position </strong></li>
+          <li>1.2.4 Subsubsection One-Two-Four</li>
+        </ul>
+      </li>
+      <li>1.3 Subsection One-Three
+        <ul>
+          <li>...</li>
+        </ul>
+      </li>
+      <li>1.4 Subsection One-Four</li>
+    </ul>
+  </li>
+</ul>
+
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_en.html/mathgl_en_toc.html b/texinfo/mathgl_en.html/mathgl_en_toc.html
new file mode 100644
index 0000000..c519c66
--- /dev/null
+++ b/texinfo/mathgl_en.html/mathgl_en_toc.html
@@ -0,0 +1,484 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MathGL 1.11: Table of Contents</title>
+
+<meta name="description" content="MathGL 1.11: Table of Contents">
+<meta name="keywords" content="MathGL 1.11: Table of Contents">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="SEC_Contents"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1>Table of Contents</h1>
+<div class="contents">
+
+<ul class="toc">
+  <li><a name="toc-Overview-1" href="mathgl_en_1.html#Overview">1. Overview</a>
+  <ul class="toc">
+    <li><a name="toc-Why-have-I-written-MathGL_003f-1" href="mathgl_en_1.html#Why-have-I-written-MathGL_003f">1.1 Why have I written MathGL?</a></li>
+    <li><a name="toc-MathGL-features-1" href="mathgl_en_1.html#MathGL-features">1.2 MathGL features</a></li>
+    <li><a name="toc-Installation-and-usage-1" href="mathgl_en_1.html#Installation-and-usage">1.3 Installation and usage</a></li>
+    <li><a name="toc-General-concepts-1" href="mathgl_en_1.html#General-concepts">1.4 General concepts</a>
+    <ul class="toc">
+      <li><a name="toc-Coordinate-axes-1" href="mathgl_en_1.html#Coordinate-axes">1.4.1 Coordinate axes</a></li>
+      <li><a name="toc-Line-styles-1" href="mathgl_en_1.html#Line-styles">1.4.2 Line styles</a></li>
+      <li><a name="toc-Color-scheme-1" href="mathgl_en_1.html#Color-scheme">1.4.3 Color scheme</a></li>
+      <li><a name="toc-Font-styles-1" href="mathgl_en_1.html#Font-styles">1.4.4 Font styles</a></li>
+      <li><a name="toc-Textual-formulas-1" href="mathgl_en_1.html#Textual-formulas">1.4.5 Textual formulas</a></li>
+    </ul></li>
+    <li><a name="toc-FAQ-1" href="mathgl_en_1.html#FAQ">1.5 FAQ</a></li>
+    <li><a name="toc-Interfaces-1" href="mathgl_en_1.html#Interfaces">1.6 Interfaces</a>
+    <ul class="toc">
+      <li><a name="toc-C-interface-1" href="mathgl_en_1.html#C-interface">1.6.1 C interface</a></li>
+      <li><a name="toc-Python-interface-1" href="mathgl_en_1.html#Python-interface">1.6.2 Python interface</a></li>
+    </ul></li>
+    <li><a name="toc-Thanks-1" href="mathgl_en_1.html#Thanks">1.7 Thanks</a></li>
+  </ul></li>
+  <li><a name="toc-MathGL-examples" href="mathgl_en_2.html#Examples">2. MathGL examples</a>
+  <ul class="toc">
+    <li><a name="toc-Basic-usage-1" href="mathgl_en_2.html#Basic-usage">2.1 Basic usage</a>
+    <ul class="toc">
+      <li><a name="toc-Using-FLTK_002fQt_002fGLUT-window" href="mathgl_en_2.html#Using-FLTK_002fGLUT-window">2.1.1 Using FLTK/Qt/GLUT window</a></li>
+      <li><a name="toc-Drawing-to-file-1" href="mathgl_en_2.html#Drawing-to-file">2.1.2 Drawing to file</a></li>
+      <li><a name="toc-Drawing-in-memory-1" href="mathgl_en_2.html#Drawing-in-memory">2.1.3 Drawing in memory</a></li>
+      <li><a name="toc-Using-QMathGL-1" href="mathgl_en_2.html#Using-QMathGL">2.1.4 Using QMathGL</a></li>
+    </ul></li>
+    <li><a name="toc-Advanced-usage-1" href="mathgl_en_2.html#Advanced-usage">2.2 Advanced usage</a>
+    <ul class="toc">
+      <li><a name="toc-Subplots-1" href="mathgl_en_2.html#Subplots">2.2.1 Subplots</a></li>
+      <li><a name="toc-Axis-and-grids-1" href="mathgl_en_2.html#Axis-and-grids">2.2.2 Axis and grids</a></li>
+      <li><a name="toc-Curvilinear-coordinates-1" href="mathgl_en_2.html#Curvilinear-coordinates">2.2.3 Curvilinear coordinates</a></li>
+      <li><a name="toc-Text-printing-example-1" href="mathgl_en_2.html#Text-printing-example">2.2.4 Text printing example</a></li>
+      <li><a name="toc-Animation-1" href="mathgl_en_2.html#Animation">2.2.5 Animation</a></li>
+    </ul></li>
+    <li><a name="toc-Data-handling-1" href="mathgl_en_2.html#Data-handling">2.3 Data handling</a>
+    <ul class="toc">
+      <li><a name="toc-Array-creation-1" href="mathgl_en_2.html#Array-creation">2.3.1 Array creation</a></li>
+      <li><a name="toc-Data-changing-1" href="mathgl_en_2.html#Data-changing">2.3.2 Data changing</a></li>
+    </ul></li>
+    <li><a name="toc-Data-plotting-1" href="mathgl_en_2.html#Data-plotting">2.4 Data plotting</a>
+    <ul class="toc">
+      <li><a name="toc-Plots-for-1D-data-1" href="mathgl_en_2.html#Plots-for-1D-data">2.4.1 Plots for 1D data</a></li>
+      <li><a name="toc-Plots-for-2D-data-1" href="mathgl_en_2.html#Plots-for-2D-data">2.4.2 Plots for 2D data</a></li>
+      <li><a name="toc-Plots-for-3D-data-1" href="mathgl_en_2.html#Plots-for-3D-data">2.4.3 Plots for 3D data</a></li>
+      <li><a name="toc-Surface-transparency-1" href="mathgl_en_2.html#Surface-transparency">2.4.4 Surface transparency</a></li>
+    </ul></li>
+    <li><a name="toc-C_002fFortran-interface-1" href="mathgl_en_2.html#C_002fFortran-interface">2.5 C/Fortran interface</a></li>
+    <li><a name="toc-MathGL-and-PyQt-1" href="mathgl_en_2.html#MathGL-and-PyQt">2.6 MathGL and PyQt</a></li>
+    <li><a name="toc-Hints-1" href="mathgl_en_2.html#Hints">2.7 Hints</a>
+    <ul class="toc">
+      <li><a name="toc-_0060_0060Compound_0027_0027-graphics-1" href="mathgl_en_2.html#g_t_0060_0060Compound_0027_0027-graphics">2.7.1 &ldquo;Compound&rdquo; graphics</a></li>
+      <li><a name="toc-Two-axes-in-one-plot-1" href="mathgl_en_2.html#Two-axes-in-one-plot">2.7.2 Two axes in one plot</a></li>
+      <li><a name="toc-Titles-for-the-plot-1" href="mathgl_en_2.html#Titles-for-the-plot">2.7.3 Titles for the plot</a></li>
+      <li><a name="toc-Changing-of-the-color-range-1" href="mathgl_en_2.html#Changing-of-the-color-range">2.7.4 Changing of the color range</a></li>
+      <li><a name="toc-Management-of-a-point-cutting-1" href="mathgl_en_2.html#Management-of-a-point-cutting">2.7.5 Management of a point cutting</a></li>
+      <li><a name="toc-Vector-field-visualization-1" href="mathgl_en_2.html#Vector-field-visualization">2.7.6 Vector field visualization</a></li>
+      <li><a name="toc-Several-light-sources-1" href="mathgl_en_2.html#Several-light-sources">2.7.7 Several light sources</a></li>
+      <li><a name="toc-CutMin-and-CutMax-features-1" href="mathgl_en_2.html#CutMin-and-CutMax-features">2.7.8 CutMin and CutMax features</a></li>
+      <li><a name="toc-Mapping-visualization-1" href="mathgl_en_2.html#Mapping-visualization">2.7.9 Mapping visualization</a></li>
+      <li><a name="toc-Log_002dscaled-plot-1" href="mathgl_en_2.html#Log_002dscaled-plot">2.7.10 Log-scaled plot</a></li>
+      <li><a name="toc-_0060_0060Templates_0027_0027-1" href="mathgl_en_2.html#g_t_0060_0060Templates_0027_0027">2.7.11 &ldquo;Templates&rdquo;</a></li>
+      <li><a name="toc-Nonlinear-fitting-hints-1" href="mathgl_en_2.html#Nonlinear-fitting-hints">2.7.12 Nonlinear fitting hints</a></li>
+      <li><a name="toc-PDE-solving-hints-1" href="mathgl_en_2.html#PDE-solving-hints">2.7.13 PDE solving hints</a></li>
+      <li><a name="toc-MGL-parser-using-1" href="mathgl_en_2.html#MGL-parser-using">2.7.14 MGL parser using</a></li>
+      <li><a name="toc-Stereo-image-1" href="mathgl_en_2.html#Stereo-image">2.7.15 Stereo image</a></li>
+    </ul>
+</li>
+  </ul></li>
+  <li><a name="toc-MathGL-core-1" href="mathgl_en_3.html#MathGL-core">3. MathGL core</a>
+  <ul class="toc">
+    <li><a name="toc-Graphics-setup-1" href="mathgl_en_3.html#Graphics-setup">3.1 Graphics setup</a>
+    <ul class="toc">
+      <li><a name="toc-Transparency-1" href="mathgl_en_3.html#Transparency">3.1.1 Transparency</a></li>
+      <li><a name="toc-Lighting-1" href="mathgl_en_3.html#Lighting">3.1.2 Lighting</a></li>
+      <li><a name="toc-Fog-1" href="mathgl_en_3.html#Fog">3.1.3 Fog</a></li>
+      <li><a name="toc-Default-sizes-1" href="mathgl_en_3.html#Default-sizes">3.1.4 Default sizes</a></li>
+      <li><a name="toc-Zooming-1" href="mathgl_en_3.html#Zooming">3.1.5 Zooming</a></li>
+      <li><a name="toc-Cutting-1" href="mathgl_en_3.html#Cutting">3.1.6 Cutting</a></li>
+      <li><a name="toc-Font-settings-1" href="mathgl_en_3.html#Font-settings">3.1.7 Font settings</a></li>
+      <li><a name="toc-Pallete-and-colors" href="mathgl_en_3.html#Palette-and-colors">3.1.8 Pallete and colors</a></li>
+      <li><a name="toc-Error-handling-1" href="mathgl_en_3.html#Error-handling">3.1.9 Error handling</a></li>
+      <li><a name="toc-Other-settings-1" href="mathgl_en_3.html#Other-settings">3.1.10 Other settings</a></li>
+    </ul></li>
+    <li><a name="toc-Axis-settings-1" href="mathgl_en_3.html#Axis-settings">3.2 Axis settings</a>
+    <ul class="toc">
+      <li><a name="toc-Ranges-_0028bounding-box_0029-1" href="mathgl_en_3.html#Ranges-_0028bounding-box_0029">3.2.1 Ranges (bounding box)</a></li>
+      <li><a name="toc-Curved-coordinates-1" href="mathgl_en_3.html#Curved-coordinates">3.2.2 Curved coordinates</a></li>
+      <li><a name="toc-Ticks-1" href="mathgl_en_3.html#Ticks">3.2.3 Ticks</a></li>
+    </ul></li>
+    <li><a name="toc-Transformation-matrix-1" href="mathgl_en_3.html#Transformation-matrix">3.3 Transformation matrix</a></li>
+    <li><a name="toc-Export-to-file-1" href="mathgl_en_3.html#Export-to-file">3.4 Export to file</a></li>
+    <li><a name="toc-Primitives-drawing-2" href="mathgl_en_3.html#Primitives-drawing">3.5 Primitives drawing</a></li>
+    <li><a name="toc-Text-printing-1" href="mathgl_en_3.html#Text-printing">3.6 Text printing</a></li>
+    <li><a name="toc-Axis-and-Colorbar-1" href="mathgl_en_3.html#Axis-and-Colorbar">3.7 Axis and Colorbar</a></li>
+    <li><a name="toc-Legend-1" href="mathgl_en_3.html#Legend">3.8 Legend</a></li>
+    <li><a name="toc-1D-plotting-1" href="mathgl_en_3.html#g_t1D-plotting">3.9 1D plotting</a>
+    <ul class="toc">
+      <li><a name="toc-Plot-1" href="mathgl_en_3.html#Plot">3.9.1 Plot</a></li>
+      <li><a name="toc-Radar-1" href="mathgl_en_3.html#Radar">3.9.2 Radar</a></li>
+      <li><a name="toc-Tens-1" href="mathgl_en_3.html#Tens">3.9.3 Tens</a></li>
+      <li><a name="toc-Area-1" href="mathgl_en_3.html#Area">3.9.4 Area</a></li>
+      <li><a name="toc-Region-1" href="mathgl_en_3.html#Region">3.9.5 Region</a></li>
+      <li><a name="toc-Stem-1" href="mathgl_en_3.html#Stem">3.9.6 Stem</a></li>
+      <li><a name="toc-Bars-1" href="mathgl_en_3.html#Bars">3.9.7 Bars</a></li>
+      <li><a name="toc-Barh-1" href="mathgl_en_3.html#Barh">3.9.8 Barh</a></li>
+      <li><a name="toc-Chart-1" href="mathgl_en_3.html#Chart">3.9.9 Chart</a></li>
+      <li><a name="toc-Step-1" href="mathgl_en_3.html#Step">3.9.10 Step</a></li>
+      <li><a name="toc-Torus-1" href="mathgl_en_3.html#Torus">3.9.11 Torus</a></li>
+      <li><a name="toc-Tube-1" href="mathgl_en_3.html#Tube">3.9.12 Tube</a></li>
+      <li><a name="toc-Mark-1" href="mathgl_en_3.html#Mark">3.9.13 Mark</a></li>
+      <li><a name="toc-TextMark-1" href="mathgl_en_3.html#TextMark">3.9.14 TextMark</a></li>
+      <li><a name="toc-Error-1" href="mathgl_en_3.html#Error">3.9.15 Error</a></li>
+      <li><a name="toc-BoxPlot-1" href="mathgl_en_3.html#BoxPlot">3.9.16 BoxPlot</a></li>
+    </ul></li>
+    <li><a name="toc-2D-plotting-1" href="mathgl_en_3.html#g_t2D-plotting">3.10 2D plotting</a>
+    <ul class="toc">
+      <li><a name="toc-Mesh-1" href="mathgl_en_3.html#Mesh">3.10.1 Mesh</a></li>
+      <li><a name="toc-Fall-1" href="mathgl_en_3.html#Fall">3.10.2 Fall</a></li>
+      <li><a name="toc-Belt-1" href="mathgl_en_3.html#Belt">3.10.3 Belt</a></li>
+      <li><a name="toc-Surf-1" href="mathgl_en_3.html#Surf">3.10.4 Surf</a></li>
+      <li><a name="toc-Boxs-1" href="mathgl_en_3.html#Boxs">3.10.5 Boxs</a></li>
+      <li><a name="toc-Tile-1" href="mathgl_en_3.html#Tile">3.10.6 Tile</a></li>
+      <li><a name="toc-Dens-1" href="mathgl_en_3.html#Dens">3.10.7 Dens</a></li>
+      <li><a name="toc-Cont-1" href="mathgl_en_3.html#Cont">3.10.8 Cont</a></li>
+      <li><a name="toc-ContF-1" href="mathgl_en_3.html#ContF">3.10.9 ContF</a></li>
+      <li><a name="toc-ContD-1" href="mathgl_en_3.html#ContD">3.10.10 ContD</a></li>
+      <li><a name="toc-Axial-1" href="mathgl_en_3.html#Axial">3.10.11 Axial</a></li>
+      <li><a name="toc-Grad-1" href="mathgl_en_3.html#Grad">3.10.12 Grad</a></li>
+      <li><a name="toc-Grid-1" href="mathgl_en_3.html#Grid">3.10.13 Grid</a></li>
+    </ul></li>
+    <li><a name="toc-3D-plotting-1" href="mathgl_en_3.html#g_t3D-plotting">3.11 3D plotting</a>
+    <ul class="toc">
+      <li><a name="toc-Surf3-1" href="mathgl_en_3.html#Surf3">3.11.1 Surf3</a></li>
+      <li><a name="toc-Dens3-1" href="mathgl_en_3.html#Dens3">3.11.2 Dens3</a></li>
+      <li><a name="toc-Cont3-1" href="mathgl_en_3.html#Cont3">3.11.3 Cont3</a></li>
+      <li><a name="toc-ContF3-1" href="mathgl_en_3.html#ContF3">3.11.4 ContF3</a></li>
+      <li><a name="toc-Grid3-1" href="mathgl_en_3.html#Grid3">3.11.5 Grid3</a></li>
+      <li><a name="toc-Cloud-1" href="mathgl_en_3.html#Cloud">3.11.6 Cloud</a></li>
+      <li><a name="toc-Beam-1" href="mathgl_en_3.html#Beam">3.11.7 Beam</a></li>
+    </ul></li>
+    <li><a name="toc-Dual-plotting-1" href="mathgl_en_3.html#Dual-plotting">3.12 Dual plotting</a>
+    <ul class="toc">
+      <li><a name="toc-SurfC-1" href="mathgl_en_3.html#SurfC">3.12.1 SurfC</a></li>
+      <li><a name="toc-Surf3C-1" href="mathgl_en_3.html#Surf3C">3.12.2 Surf3C</a></li>
+      <li><a name="toc-SurfA-1" href="mathgl_en_3.html#SurfA">3.12.3 SurfA</a></li>
+      <li><a name="toc-Surf3A-1" href="mathgl_en_3.html#Surf3A">3.12.4 Surf3A</a></li>
+      <li><a name="toc-TileS-1" href="mathgl_en_3.html#TileS">3.12.5 TileS</a></li>
+      <li><a name="toc-Map-1" href="mathgl_en_3.html#Map">3.12.6 Map</a></li>
+      <li><a name="toc-STFA-1" href="mathgl_en_3.html#STFA">3.12.7 STFA</a></li>
+    </ul></li>
+    <li><a name="toc-Vector-fields-1" href="mathgl_en_3.html#Vector-fields">3.13 Vector fields</a>
+    <ul class="toc">
+      <li><a name="toc-Traj-1" href="mathgl_en_3.html#Traj">3.13.1 Traj</a></li>
+      <li><a name="toc-Vect-1" href="mathgl_en_3.html#Vect">3.13.2 Vect</a></li>
+      <li><a name="toc-VectL-1" href="mathgl_en_3.html#VectL">3.13.3 VectL</a></li>
+      <li><a name="toc-VectC-1" href="mathgl_en_3.html#VectC">3.13.4 VectC</a></li>
+      <li><a name="toc-Dew-1" href="mathgl_en_3.html#Dew">3.13.5 Dew</a></li>
+      <li><a name="toc-Flow-1" href="mathgl_en_3.html#Flow">3.13.6 Flow</a></li>
+      <li><a name="toc-FlowP-1" href="mathgl_en_3.html#FlowP">3.13.7 FlowP</a></li>
+      <li><a name="toc-Pipe-1" href="mathgl_en_3.html#Pipe">3.13.8 Pipe</a></li>
+    </ul></li>
+    <li><a name="toc-Other-plotting-1" href="mathgl_en_3.html#Other-plotting">3.14 Other plotting</a>
+    <ul class="toc">
+      <li><a name="toc-DensXYZ-1" href="mathgl_en_3.html#DensXYZ">3.14.1 DensXYZ</a></li>
+      <li><a name="toc-ContXYZ-1" href="mathgl_en_3.html#ContXYZ">3.14.2 ContXYZ</a></li>
+      <li><a name="toc-ContFXYZ-1" href="mathgl_en_3.html#ContFXYZ">3.14.3 ContFXYZ</a></li>
+      <li><a name="toc-Dots-1" href="mathgl_en_3.html#Dots">3.14.4 Dots</a></li>
+      <li><a name="toc-Crust-1" href="mathgl_en_3.html#Crust">3.14.5 Crust</a></li>
+      <li><a name="toc-TriPlot-1" href="mathgl_en_3.html#TriPlot">3.14.6 TriPlot</a></li>
+      <li><a name="toc-TriCont-1" href="mathgl_en_3.html#TriCont">3.14.7 TriCont</a></li>
+      <li><a name="toc-QuadPlot-1" href="mathgl_en_3.html#QuadPlot">3.14.8 QuadPlot</a></li>
+      <li><a name="toc-Plots-by-formula-1" href="mathgl_en_3.html#Plots-by-formula">3.14.9 Plots by formula</a></li>
+      <li><a name="toc-SimplePlot-1" href="mathgl_en_3.html#SimplePlot">3.14.10 SimplePlot</a></li>
+    </ul></li>
+    <li><a name="toc-Nonlinear-fitting-1" href="mathgl_en_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></li>
+    <li><a name="toc-Data-distributions-1" href="mathgl_en_3.html#Data-distributions">3.16 Data distributions</a></li>
+    <li><a name="toc-Frames_002fAnimation-1" href="mathgl_en_3.html#Frames_002fAnimation">3.17 Frames/Animation</a></li>
+    <li><a name="toc-IDTF-functions-1" href="mathgl_en_3.html#IDTF-functions">3.18 IDTF functions</a></li>
+  </ul></li>
+  <li><a name="toc-Plotter-classes-1" href="mathgl_en_4.html#Plotter-classes">4. Plotter classes</a>
+  <ul class="toc">
+    <li><a name="toc-mglGraphAB-class-1" href="mathgl_en_4.html#mglGraphAB-class">4.1 mglGraphAB class</a></li>
+  </ul></li>
+  <li><a name="toc-Widget-classes-1" href="mathgl_en_5.html#Widget-classes">5. Widget classes</a>
+  <ul class="toc">
+    <li><a name="toc-Fl_005fMathGL-class-1" href="mathgl_en_5.html#Fl_005fMathGL-class">5.1 Fl_MathGL class</a></li>
+    <li><a name="toc-QMathGL-class-1" href="mathgl_en_5.html#QMathGL-class">5.2 QMathGL class</a></li>
+  </ul></li>
+  <li><a name="toc-mglData-class-1" href="mathgl_en_6.html#mglData-class">6. mglData class</a>
+  <ul class="toc">
+    <li><a name="toc-Public-variables-1" href="mathgl_en_6.html#Public-variables">6.1 Public variables</a></li>
+    <li><a name="toc-Create-and-delete-1" href="mathgl_en_6.html#Create-and-delete">6.2 Create and delete</a></li>
+    <li><a name="toc-Fill-1" href="mathgl_en_6.html#Fill">6.3 Fill</a></li>
+    <li><a name="toc-Rearrange-1" href="mathgl_en_6.html#Rearrange">6.4 Rearrange</a></li>
+    <li><a name="toc-File-I_002fO-1" href="mathgl_en_6.html#File-I_002fO">6.5 File I/O</a></li>
+    <li><a name="toc-Make-another-data-1" href="mathgl_en_6.html#Make-another-data">6.6 Make another data</a></li>
+    <li><a name="toc-Change-data-1" href="mathgl_en_6.html#Change-data">6.7 Change data</a></li>
+    <li><a name="toc-Interpolation-1" href="mathgl_en_6.html#Interpolation">6.8 Interpolation</a></li>
+    <li><a name="toc-Informational-functions-1" href="mathgl_en_6.html#Informational-functions">6.9 Informational functions</a></li>
+    <li><a name="toc-Operators-1" href="mathgl_en_6.html#Operators">6.10 Operators</a></li>
+    <li><a name="toc-Global-functions-1" href="mathgl_en_6.html#Global-functions">6.11 Global functions</a></li>
+  </ul></li>
+  <li><a name="toc-Other-classes-1" href="mathgl_en_7.html#Other-classes">7. Other classes</a>
+  <ul class="toc">
+    <li><a name="toc-mglParse-class-1" href="mathgl_en_7.html#mglParse-class">7.1 mglParse class</a></li>
+    <li><a name="toc-mglFormula-class-1" href="mathgl_en_7.html#mglFormula-class">7.2 mglFormula class</a></li>
+    <li><a name="toc-mglFont-class-1" href="mathgl_en_7.html#mglFont-class">7.3 mglFont class</a>
+    <ul class="toc">
+      <li><a name="toc-Format-of-font-files-1" href="mathgl_en_7.html#Format-of-font-files">7.3.1 Format of font files</a></li>
+    </ul></li>
+    <li><a name="toc-mglColor-class-1" href="mathgl_en_7.html#mglColor-class">7.4 mglColor class</a></li>
+    <li><a name="toc-mglPoint-class-1" href="mathgl_en_7.html#mglPoint-class">7.5 mglPoint class</a></li>
+    <li><a name="toc-mglVar-class-1" href="mathgl_en_7.html#mglVar-class">7.6 mglVar class</a></li>
+    <li><a name="toc-mglCommand-class-1" href="mathgl_en_7.html#mglCommand-class">7.7 mglCommand class</a></li>
+    <li><a name="toc-mglArg-class-1" href="mathgl_en_7.html#mglArg-class">7.8 mglArg class</a></li>
+  </ul></li>
+  <li><a name="toc-MGL-language" href="mathgl_en_8.html#MGL-interface">8. MGL language</a>
+  <ul class="toc">
+    <li><a name="toc-Graphics-setup-_0028MGL_0029-1" href="mathgl_en_8.html#Graphics-setup-_0028MGL_0029">8.1 Graphics setup (MGL)</a>
+    <ul class="toc">
+      <li><a name="toc-Transparency-_0028MGL_0029-1" href="mathgl_en_8.html#Transparency-_0028MGL_0029">8.1.1 Transparency (MGL)</a></li>
+      <li><a name="toc-Lighting-_0028MGL_0029-1" href="mathgl_en_8.html#Lighting-_0028MGL_0029">8.1.2 Lighting (MGL)</a></li>
+      <li><a name="toc-Fog-_0028MGL_0029-1" href="mathgl_en_8.html#Fog-_0028MGL_0029">8.1.3 Fog (MGL)</a></li>
+      <li><a name="toc-Default-sizes-_0028MGL_0029-1" href="mathgl_en_8.html#Default-sizes-_0028MGL_0029">8.1.4 Default sizes (MGL)</a></li>
+      <li><a name="toc-Zooming-_0028MGL_0029-1" href="mathgl_en_8.html#Zooming-_0028MGL_0029">8.1.5 Zooming (MGL)</a></li>
+      <li><a name="toc-Cutting-_0028MGL_0029-1" href="mathgl_en_8.html#Cutting-_0028MGL_0029">8.1.6 Cutting (MGL)</a></li>
+      <li><a name="toc-Other-settings-_0028MGL_0029-1" href="mathgl_en_8.html#Other-settings-_0028MGL_0029">8.1.7 Other settings (MGL)</a></li>
+    </ul></li>
+    <li><a name="toc-Axis-settings-_0028MGL_0029-1" href="mathgl_en_8.html#Axis-settings-_0028MGL_0029">8.2 Axis settings (MGL)</a></li>
+    <li><a name="toc-Transformation-matrix-_0028MGL_0029-1" href="mathgl_en_8.html#Transformation-matrix-_0028MGL_0029">8.3 Transformation matrix (MGL)</a></li>
+    <li><a name="toc-Export-to-file-_0028MGL_0029-1" href="mathgl_en_8.html#Export-to-file-_0028MGL_0029">8.4 Export to file (MGL)</a></li>
+    <li><a name="toc-Primitives-drawing-1" href="mathgl_en_8.html#Primitives-drawing-_0028MGL_0029">8.5 Primitives drawing</a></li>
+    <li><a name="toc-Text-printing-_0028MGL_0029-1" href="mathgl_en_8.html#Text-printing-_0028MGL_0029">8.6 Text printing (MGL)</a></li>
+    <li><a name="toc-Axis-and-Colorbar-_0028MGL_0029-1" href="mathgl_en_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Axis and Colorbar (MGL)</a></li>
+    <li><a name="toc-Legend-_0028MGL_0029-1" href="mathgl_en_8.html#Legend-_0028MGL_0029">8.8 Legend (MGL)</a></li>
+    <li><a name="toc-1D-plotting-_0028MGL_0029-1" href="mathgl_en_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D plotting (MGL)</a></li>
+    <li><a name="toc-2D-plotting-_0028MGL_0029-1" href="mathgl_en_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D plotting (MGL)</a></li>
+    <li><a name="toc-3D-plotting-_0028MGL_0029-1" href="mathgl_en_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D plotting (MGL)</a></li>
+    <li><a name="toc-Dual-plotting-_0028MGL_0029-1" href="mathgl_en_8.html#Dual-plotting-_0028MGL_0029">8.12 Dual plotting (MGL)</a></li>
+    <li><a name="toc-Vector-fields-_0028MGL_0029-1" href="mathgl_en_8.html#Vector-fields-_0028MGL_0029">8.13 Vector fields (MGL)</a></li>
+    <li><a name="toc-Other-plotting-_0028MGL_0029-1" href="mathgl_en_8.html#Other-plotting-_0028MGL_0029">8.14 Other plotting (MGL)</a></li>
+    <li><a name="toc-Nonlinear-fitting-_0028MGL_0029-1" href="mathgl_en_8.html#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></li>
+    <li><a name="toc-Data-create-_0028MGL_0029-1" href="mathgl_en_8.html#Data-create-_0028MGL_0029">8.16 Data create (MGL)</a></li>
+    <li><a name="toc-Data-filling-_0028MGL_0029-1" href="mathgl_en_8.html#Data-filling-_0028MGL_0029">8.17 Data filling (MGL)</a></li>
+    <li><a name="toc-Rearrange-data-_0028MGL_0029-1" href="mathgl_en_8.html#Rearrange-data-_0028MGL_0029">8.18 Rearrange data (MGL)</a></li>
+    <li><a name="toc-File-I_002fO-_0028MGL_0029-1" href="mathgl_en_8.html#File-I_002fO-_0028MGL_0029">8.19 File I/O (MGL)</a></li>
+    <li><a name="toc-Make-another-data-_0028MGL_0029-1" href="mathgl_en_8.html#Make-another-data-_0028MGL_0029">8.20 Make another data (MGL)</a></li>
+    <li><a name="toc-Change-data-_0028MGL_0029-1" href="mathgl_en_8.html#Change-data-_0028MGL_0029">8.21 Change data (MGL)</a></li>
+    <li><a name="toc-Operators-_0028MGL_0029-1" href="mathgl_en_8.html#Operators-_0028MGL_0029">8.22 Operators (MGL)</a></li>
+    <li><a name="toc-Program-flow-_0028MGL_0029-1" href="mathgl_en_8.html#Program-flow-_0028MGL_0029">8.23 Program flow (MGL)</a></li>
+    <li><a name="toc-Command-options-_0028MGL_0029-1" href="mathgl_en_8.html#Command-options-_0028MGL_0029">8.24 Command options (MGL)</a></li>
+    <li><a name="toc-Suffixes-for-variable" href="mathgl_en_8.html#Suffixes">8.25 Suffixes for variable</a></li>
+    <li><a name="toc-Utilities-for-parsing-MGL" href="mathgl_en_8.html#Utilities">8.26 Utilities for parsing MGL</a></li>
+  </ul></li>
+  <li><a name="toc-Samples-1" href="mathgl_en_9.html#Samples">9. Samples</a>
+  <ul class="toc">
+    <li><a name="toc-1D-plotting-samples-1" href="mathgl_en_9.html#g_t1D-plotting-samples">9.1 1D plotting samples</a>
+    <ul class="toc">
+      <li><a name="toc-Plot-sample-1" href="mathgl_en_9.html#Plot-sample">9.1.1 Plot sample</a></li>
+      <li><a name="toc-Radar-sample-1" href="mathgl_en_9.html#Radar-sample">9.1.2 Radar sample</a></li>
+      <li><a name="toc-Tens-sample-1" href="mathgl_en_9.html#Tens-sample">9.1.3 Tens sample</a></li>
+      <li><a name="toc-Area-sample-1" href="mathgl_en_9.html#Area-sample">9.1.4 Area sample</a></li>
+      <li><a name="toc-Area-with-gradient-filling-sample" href="mathgl_en_9.html#Area-gradient-sample">9.1.5 Area with gradient filling sample</a></li>
+      <li><a name="toc-Bars-sample-1" href="mathgl_en_9.html#Bars-sample">9.1.6 Bars sample</a></li>
+      <li><a name="toc-Bars-2-colors-sample-1" href="mathgl_en_9.html#Bars-2-colors-sample">9.1.7 Bars 2 colors sample</a></li>
+      <li><a name="toc-Bars-above-sample-1" href="mathgl_en_9.html#Bars-above-sample">9.1.8 Bars above sample</a></li>
+      <li><a name="toc-Bars-fall-sample-1" href="mathgl_en_9.html#Bars-fall-sample">9.1.9 Bars fall sample</a></li>
+      <li><a name="toc-Barh-sample-1" href="mathgl_en_9.html#Barh-sample">9.1.10 Barh sample</a></li>
+      <li><a name="toc-Step-sample-1" href="mathgl_en_9.html#Step-sample">9.1.11 Step sample</a></li>
+      <li><a name="toc-Stem-sample-1" href="mathgl_en_9.html#Stem-sample">9.1.12 Stem sample</a></li>
+      <li><a name="toc-Region-sample-1" href="mathgl_en_9.html#Region-sample">9.1.13 Region sample</a></li>
+      <li><a name="toc-Region-gradient-sample-1" href="mathgl_en_9.html#Region-gradient-sample">9.1.14 Region gradient sample</a></li>
+      <li><a name="toc-Error-sample-1" href="mathgl_en_9.html#Error-sample">9.1.15 Error sample</a></li>
+      <li><a name="toc-BoxPlot-sample-1" href="mathgl_en_9.html#BoxPlot-sample">9.1.16 BoxPlot sample</a></li>
+      <li><a name="toc-Mark-sample-1" href="mathgl_en_9.html#Mark-sample">9.1.17 Mark sample</a></li>
+      <li><a name="toc-TextMark-sample-1" href="mathgl_en_9.html#TextMark-sample">9.1.18 TextMark sample</a></li>
+      <li><a name="toc-Tube-sample-1" href="mathgl_en_9.html#Tube-sample">9.1.19 Tube sample</a></li>
+      <li><a name="toc-Text-sample-1" href="mathgl_en_9.html#Text-sample">9.1.20 Text sample</a></li>
+      <li><a name="toc-Torus-sample-1" href="mathgl_en_9.html#Torus-sample">9.1.21 Torus sample</a></li>
+      <li><a name="toc-Chart-sample-1" href="mathgl_en_9.html#Chart-sample">9.1.22 Chart sample</a></li>
+      <li><a name="toc-Pie-chart-sample-1" href="mathgl_en_9.html#Pie-chart-sample">9.1.23 Pie chart sample</a></li>
+      <li><a name="toc-Ring-chart-sample-1" href="mathgl_en_9.html#Ring-chart-sample">9.1.24 Ring chart sample</a></li>
+    </ul></li>
+    <li><a name="toc-2D-plotting-samples-1" href="mathgl_en_9.html#g_t2D-plotting-samples">9.2 2D plotting samples</a>
+    <ul class="toc">
+      <li><a name="toc-Surf-sample-1" href="mathgl_en_9.html#Surf-sample">9.2.1 Surf sample</a></li>
+      <li><a name="toc-Transparent-surface-sample-1" href="mathgl_en_9.html#Transparent-surface-sample">9.2.2 Transparent surface sample</a></li>
+      <li><a name="toc-Surface-in-fog-sample-1" href="mathgl_en_9.html#Surface-in-fog-sample">9.2.3 Surface in fog sample</a></li>
+      <li><a name="toc-Sharp-colors-sample-1" href="mathgl_en_9.html#Sharp-colors-sample">9.2.4 Sharp colors sample</a></li>
+      <li><a name="toc-Mesh-sample-1" href="mathgl_en_9.html#Mesh-sample">9.2.5 Mesh sample</a></li>
+      <li><a name="toc-Fall-sample-1" href="mathgl_en_9.html#Fall-sample">9.2.6 Fall sample</a></li>
+      <li><a name="toc-Belt-sample-1" href="mathgl_en_9.html#Belt-sample">9.2.7 Belt sample</a></li>
+      <li><a name="toc-Tile-sample-1" href="mathgl_en_9.html#Tile-sample">9.2.8 Tile sample</a></li>
+      <li><a name="toc-Boxs-sample-1" href="mathgl_en_9.html#Boxs-sample">9.2.9 Boxs sample</a></li>
+      <li><a name="toc-Dens-sample-1" href="mathgl_en_9.html#Dens-sample">9.2.10 Dens sample</a></li>
+      <li><a name="toc-Cont-sample-1" href="mathgl_en_9.html#Cont-sample">9.2.11 Cont sample</a></li>
+      <li><a name="toc-ContF-sample-1" href="mathgl_en_9.html#ContF-sample">9.2.12 ContF sample</a></li>
+      <li><a name="toc-ContD-sample-1" href="mathgl_en_9.html#ContD-sample">9.2.13 ContD sample</a></li>
+      <li><a name="toc-Axial-sample-1" href="mathgl_en_9.html#Axial-sample">9.2.14 Axial sample</a></li>
+      <li><a name="toc-Grad-sample-1" href="mathgl_en_9.html#Grad-sample">9.2.15 Grad sample</a></li>
+    </ul></li>
+    <li><a name="toc-3D-plotting-samples-1" href="mathgl_en_9.html#g_t3D-plotting-samples">9.3 3D plotting samples</a>
+    <ul class="toc">
+      <li><a name="toc-Surf3-sample-1" href="mathgl_en_9.html#Surf3-sample">9.3.1 Surf3 sample</a></li>
+      <li><a name="toc-Cloud-sample-1" href="mathgl_en_9.html#Cloud-sample">9.3.2 Cloud sample</a></li>
+      <li><a name="toc-CloudP-sample-1" href="mathgl_en_9.html#CloudP-sample">9.3.3 CloudP sample</a></li>
+      <li><a name="toc-Dens3-sample-1" href="mathgl_en_9.html#Dens3-sample">9.3.4 Dens3 sample</a></li>
+      <li><a name="toc-Cont3-sample-1" href="mathgl_en_9.html#Cont3-sample">9.3.5 Cont3 sample</a></li>
+      <li><a name="toc-ContF3-sample-1" href="mathgl_en_9.html#ContF3-sample">9.3.6 ContF3 sample</a></li>
+      <li><a name="toc-Cont-projection-sample-1" href="mathgl_en_9.html#Cont-projection-sample">9.3.7 Cont projection sample</a></li>
+      <li><a name="toc-Dens-projection-sample-1" href="mathgl_en_9.html#Dens-projection-sample">9.3.8 Dens projection sample</a></li>
+      <li><a name="toc-CutMinMax-sample-1" href="mathgl_en_9.html#CutMinMax-sample">9.3.9 CutMinMax sample</a></li>
+      <li><a name="toc-_0060_0060Isocaps_0027_0027-sample" href="mathgl_en_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; sample</a></li>
+      <li><a name="toc-CutOff-sample-1" href="mathgl_en_9.html#CutOff-sample">9.3.11 CutOff sample</a></li>
+    </ul></li>
+    <li><a name="toc-Dual-plotting-samples-1" href="mathgl_en_9.html#Dual-plotting-samples">9.4 Dual plotting samples</a>
+    <ul class="toc">
+      <li><a name="toc-SurfC-sample-1" href="mathgl_en_9.html#SurfC-sample">9.4.1 SurfC sample</a></li>
+      <li><a name="toc-SurfA-sample-1" href="mathgl_en_9.html#SurfA-sample">9.4.2 SurfA sample</a></li>
+      <li><a name="toc-TileS-sample-1" href="mathgl_en_9.html#TileS-sample">9.4.3 TileS sample</a></li>
+      <li><a name="toc-Map-sample-1" href="mathgl_en_9.html#Map-sample">9.4.4 Map sample</a></li>
+      <li><a name="toc-Traj-sample-1" href="mathgl_en_9.html#Traj-sample">9.4.5 Traj sample</a></li>
+      <li><a name="toc-Vect-sample-1" href="mathgl_en_9.html#Vect-sample">9.4.6 Vect sample</a></li>
+      <li><a name="toc-VectL-sample-1" href="mathgl_en_9.html#VectL-sample">9.4.7 VectL sample</a></li>
+      <li><a name="toc-VectC-sample-1" href="mathgl_en_9.html#VectC-sample">9.4.8 VectC sample</a></li>
+      <li><a name="toc-Flow-sample-1" href="mathgl_en_9.html#Flow-sample">9.4.9 Flow sample</a></li>
+      <li><a name="toc-Pipe-sample-1" href="mathgl_en_9.html#Pipe-sample">9.4.10 Pipe sample</a></li>
+      <li><a name="toc-Dew-sample-1" href="mathgl_en_9.html#Dew-sample">9.4.11 Dew sample</a></li>
+      <li><a name="toc-Surf3C-sample-1" href="mathgl_en_9.html#Surf3C-sample">9.4.12 Surf3C sample</a></li>
+      <li><a name="toc-Surf3A-sample-1" href="mathgl_en_9.html#Surf3A-sample">9.4.13 Surf3A sample</a></li>
+      <li><a name="toc-Vect-3D-sample-1" href="mathgl_en_9.html#Vect-3D-sample">9.4.14 Vect 3D sample</a></li>
+      <li><a name="toc-VectL-3D-sample-1" href="mathgl_en_9.html#VectL-3D-sample">9.4.15 VectL 3D sample</a></li>
+      <li><a name="toc-VectC-3D-sample-1" href="mathgl_en_9.html#VectC-3D-sample">9.4.16 VectC 3D sample</a></li>
+      <li><a name="toc-Flow-3D-sample-1" href="mathgl_en_9.html#Flow-3D-sample">9.4.17 Flow 3D sample</a></li>
+      <li><a name="toc-Pipe-3D-sample-1" href="mathgl_en_9.html#Pipe-3D-sample">9.4.18 Pipe 3D sample</a></li>
+      <li><a name="toc-Crust-sample-1" href="mathgl_en_9.html#Crust-sample">9.4.19 Crust sample</a></li>
+      <li><a name="toc-Dots-sample-1" href="mathgl_en_9.html#Dots-sample">9.4.20 Dots sample</a></li>
+    </ul></li>
+    <li><a name="toc-Basic-features-1" href="mathgl_en_9.html#Basic-features">9.5 Basic features</a>
+    <ul class="toc">
+      <li><a name="toc-1D-plot-sample-1" href="mathgl_en_9.html#g_t1D-plot-sample">9.5.1 1D plot sample</a></li>
+      <li><a name="toc-2D-plot-sample-1" href="mathgl_en_9.html#g_t2D-plot-sample">9.5.2 2D plot sample</a></li>
+      <li><a name="toc-3D-plot-sample-1" href="mathgl_en_9.html#g_t3D-plot-sample">9.5.3 3D plot sample</a></li>
+      <li><a name="toc-Line-styles-sample-1" href="mathgl_en_9.html#Line-styles-sample">9.5.4 Line styles sample</a></li>
+      <li><a name="toc-Arrow-styles-sample-1" href="mathgl_en_9.html#Arrow-styles-sample">9.5.5 Arrow styles sample</a></li>
+      <li><a name="toc-Text-styles-sample-1" href="mathgl_en_9.html#Text-styles-sample">9.5.6 Text styles sample</a></li>
+      <li><a name="toc-TeX-parsing-sample-1" href="mathgl_en_9.html#TeX-parsing-sample">9.5.7 TeX parsing sample</a></li>
+      <li><a name="toc-Font-faces-sample-1" href="mathgl_en_9.html#Font-faces-sample">9.5.8 Font faces sample</a></li>
+      <li><a name="toc-Colors-sample-1" href="mathgl_en_9.html#Colors-sample">9.5.9 Colors sample</a></li>
+      <li><a name="toc-Color-schemes-sample-1" href="mathgl_en_9.html#Color-schemes-sample">9.5.10 Color schemes sample</a></li>
+      <li><a name="toc-Normal-transparency-1" href="mathgl_en_9.html#Normal-transparency">9.5.11 Normal transparency</a></li>
+      <li><a name="toc-Glass_002dlike-transparency-1" href="mathgl_en_9.html#Glass_002dlike-transparency">9.5.12 Glass-like transparency</a></li>
+      <li><a name="toc-Lamp_002dlike-transparency-1" href="mathgl_en_9.html#Lamp_002dlike-transparency">9.5.13 Lamp-like transparency</a></li>
+    </ul></li>
+    <li><a name="toc-Additional-features-1" href="mathgl_en_9.html#Additional-features">9.6 Additional features</a>
+    <ul class="toc">
+      <li><a name="toc-Legend-sample-1" href="mathgl_en_9.html#Legend-sample">9.6.1 Legend sample</a></li>
+      <li><a name="toc-Adding-mesh-sample-1" href="mathgl_en_9.html#Adding-mesh-sample">9.6.2 Adding mesh sample</a></li>
+      <li><a name="toc-Surf-_0026-Cont-sample-1" href="mathgl_en_9.html#Surf-_0026-Cont-sample">9.6.3 Surf &amp; Cont sample</a></li>
+      <li><a name="toc-Flow-_0026-Dens-sample-1" href="mathgl_en_9.html#Flow-_0026-Dens-sample">9.6.4 Flow &amp; Dens sample</a></li>
+      <li><a name="toc-Several-light-sample-1" href="mathgl_en_9.html#Several-light-sample">9.6.5 Several light sample</a></li>
+      <li><a name="toc-Mirrored-surface-sample-1" href="mathgl_en_9.html#Mirrored-surface-sample">9.6.6 Mirrored surface sample</a></li>
+      <li><a name="toc-Cont-with-labels-sample-1" href="mathgl_en_9.html#Cont-with-labels-sample">9.6.7 Cont with labels sample</a></li>
+      <li><a name="toc-Ternary-plot-sample-1" href="mathgl_en_9.html#Ternary-plot-sample">9.6.8 Ternary plot sample</a></li>
+      <li><a name="toc-Coloring-by-coordinates-sample-1" href="mathgl_en_9.html#Coloring-by-coordinates-sample">9.6.9 Coloring by coordinates sample</a></li>
+      <li><a name="toc-Drops-sample-1" href="mathgl_en_9.html#Drops-sample">9.6.10 Drops sample</a></li>
+      <li><a name="toc-Molecules-drawing-sample-1" href="mathgl_en_9.html#Molecules-drawing-sample">9.6.11 Molecules drawing sample</a></li>
+    </ul></li>
+    <li><a name="toc-Advanced-features-1" href="mathgl_en_9.html#Advanced-features">9.7 Advanced features</a>
+    <ul class="toc">
+      <li><a name="toc-Curvelinear-coorinates-sample-1" href="mathgl_en_9.html#Curvelinear-coorinates-sample">9.7.1 Curvelinear coorinates sample</a></li>
+      <li><a name="toc-2_002daxes-sample-1" href="mathgl_en_9.html#g_t2_002daxes-sample">9.7.2 2-axes sample</a></li>
+      <li><a name="toc-Semi_002dlog-sample-1" href="mathgl_en_9.html#Semi_002dlog-sample">9.7.3 Semi-log sample</a></li>
+      <li><a name="toc-Log_002dlog-sample-1" href="mathgl_en_9.html#Log_002dlog-sample">9.7.4 Log-log sample</a></li>
+      <li><a name="toc-Fitting-sample-1" href="mathgl_en_9.html#Fitting-sample">9.7.5 Fitting sample</a></li>
+      <li><a name="toc-Envelop-sample-1" href="mathgl_en_9.html#Envelop-sample">9.7.6 Envelop sample</a></li>
+      <li><a name="toc-Sew-sample-1" href="mathgl_en_9.html#Sew-sample">9.7.7 Sew sample</a></li>
+      <li><a name="toc-STFA-sample-1" href="mathgl_en_9.html#STFA-sample">9.7.8 STFA sample</a></li>
+      <li><a name="toc-PDE-sample-1" href="mathgl_en_9.html#PDE-sample">9.7.9 PDE sample</a></li>
+      <li><a name="toc-Beam-tracing-sample-1" href="mathgl_en_9.html#Beam-tracing-sample">9.7.10 Beam tracing sample</a></li>
+      <li><a name="toc-Parser-sample-1" href="mathgl_en_9.html#Parser-sample">9.7.11 Parser sample</a></li>
+      <li><a name="toc-Tick-values-sample" href="mathgl_en_9.html#Manual-ticks-sample">9.7.12 Tick values sample</a></li>
+      <li><a name="toc-ColumnPlot-sample-1" href="mathgl_en_9.html#ColumnPlot-sample">9.7.13 ColumnPlot sample</a></li>
+      <li><a name="toc-StickPlot-sample-1" href="mathgl_en_9.html#StickPlot-sample">9.7.14 StickPlot sample</a></li>
+      <li><a name="toc-Stereo-image-sample-1" href="mathgl_en_9.html#Stereo-image-sample">9.7.15 Stereo image sample</a></li>
+    </ul>
+</li>
+  </ul></li>
+  <li><a name="toc-TeX_002dlike-symbols-1" href="mathgl_en_10.html#TeX_002dlike-symbols">A. TeX-like symbols</a></li>
+  <li><a name="toc-GNU-Free-Documentation-License" href="mathgl_en_11.html#Copying-This-Manual">B. GNU Free Documentation License</a></li>
+  <li><a name="toc-Index-1" href="mathgl_en_12.html#Index">Index</a></li>
+</ul>
+</div>
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_en.info b/texinfo/mathgl_en.info
new file mode 100644
index 0000000..1eadf9b
--- /dev/null
+++ b/texinfo/mathgl_en.info
@@ -0,0 +1,578 @@
+This is mathgl_en.info, produced by makeinfo version 4.13 from
+mathgl_en.texi.
+
+This manual is for MathGL (version 1.11), a collection of classes and
+routines for scientific plotting. Please report any errors in this
+manual to <mathgl.abalakin at gmail.org>.
+
+   Copyright (C) 2008 Alexey Balakin.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with the Front-Cover Texts
+     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+     below.  A copy of the license is included in the section entitled
+     "GNU Free Documentation License."
+
+     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+     and modify this GNU manual.  Buying copies from the FSF supports
+     it in developing GNU and promoting software freedom."
+
+
+Indirect:
+mathgl_en.info-1: 949
+mathgl_en.info-2: 300534
+mathgl_en.info-3: 600101
+
+Tag Table:
+(Indirect)
+Node: Top949
+Node: Overview2283
+Node: Why have I written MathGL?2865
+Node: MathGL features4101
+Node: Installation and usage7527
+Node: General concepts9660
+Node: Coordinate axes13254
+Node: Line styles16065
+Node: Color scheme19425
+Node: Font styles22432
+Node: Textual formulas27170
+Node: FAQ30965
+Node: Interfaces40605
+Node: C interface41640
+Node: Python interface47973
+Node: Thanks52230
+Node: Examples52939
+Node: Basic usage53595
+Node: Using FLTK/GLUT window55527
+Node: Drawing to file59168
+Node: Drawing in memory62080
+Node: Using QMathGL64349
+Node: Advanced usage65979
+Node: Subplots66452
+Node: Axis and grids68204
+Node: Curvilinear coordinates71444
+Node: Text printing example73169
+Node: Animation76285
+Node: Data handling78515
+Node: Array creation79010
+Node: Data changing81545
+Node: Data plotting84729
+Node: Plots for 1D data85832
+Node: Plots for 2D data88626
+Node: Plots for 3D data92457
+Node: Surface transparency94551
+Node: C/Fortran interface96611
+Node: MathGL and PyQt99637
+Node: Hints101836
+Node: ``Compound'' graphics102702
+Node: Two axes in one plot104598
+Node: Titles for the plot105720
+Node: Changing of the color range106475
+Node: Management of a point cutting107192
+Node: Vector field visualization108363
+Node: Several light sources109003
+Node: CutMin and CutMax features109635
+Node: Mapping visualization110793
+Node: Log-scaled plot111963
+Node: ``Templates''112567
+Node: Nonlinear fitting hints114086
+Node: PDE solving hints115758
+Node: MGL parser using121323
+Node: Stereo image124602
+Node: MathGL core125124
+Node: Graphics setup127391
+Node: Transparency128058
+Node: Lighting131118
+Node: Fog133293
+Node: Default sizes133949
+Node: Zooming136763
+Node: Cutting138451
+Node: Font settings140510
+Node: Palette and colors143255
+Node: Error handling145258
+Node: Other settings147443
+Node: Axis settings149293
+Node: Ranges (bounding box)149849
+Node: Curved coordinates155382
+Node: Ticks158545
+Node: Transformation matrix163607
+Node: Export to file169341
+Node: Primitives drawing175886
+Node: Text printing184657
+Node: Axis and Colorbar193200
+Node: Legend198373
+Node: 1D plotting202699
+Node: Plot203922
+Node: Radar205699
+Node: Tens206741
+Node: Area208735
+Node: Region210836
+Node: Stem212562
+Node: Bars214332
+Node: Barh216479
+Node: Chart217946
+Node: Step219072
+Node: Torus220793
+Node: Tube221898
+Node: Mark224556
+Node: TextMark226507
+Node: Error230334
+Node: BoxPlot232226
+Node: 2D plotting233580
+Node: Mesh234859
+Node: Fall236108
+Node: Belt237567
+Node: Surf238993
+Node: Boxs240308
+Node: Tile241536
+Node: Dens242839
+Node: Cont244239
+Node: ContF246783
+Node: ContD249248
+Node: Axial251690
+Node: Grad254081
+Node: Grid256558
+Node: 3D plotting257796
+Node: Surf3258964
+Node: Dens3261198
+Node: Cont3263344
+Node: ContF3266710
+Node: Grid3269997
+Node: Cloud272007
+Node: Beam274372
+Node: Dual plotting275986
+Node: SurfC276872
+Node: Surf3C278281
+Node: SurfA280854
+Node: Surf3A282299
+Node: TileS285016
+Node: Map286458
+Node: STFA288086
+Node: Vector fields289623
+Node: Traj290365
+Node: Vect291950
+Node: VectL295063
+Node: VectC297800
+Node: Dew300534
+Node: Flow302137
+Node: FlowP305254
+Node: Pipe308824
+Node: Other plotting312194
+Node: DensXYZ313021
+Node: ContXYZ314535
+Node: ContFXYZ317213
+Node: Dots319686
+Node: Crust321069
+Node: TriPlot322237
+Node: TriCont323964
+Node: QuadPlot326550
+Node: Plots by formula328274
+Node: SimplePlot330662
+Node: Nonlinear fitting331547
+Node: Data distributions343029
+Node: Frames/Animation344748
+Node: IDTF functions346684
+Node: Plotter classes347457
+Node: mglGraphAB class350509
+Node: Widget classes358980
+Node: Fl_MathGL class361193
+Node: QMathGL class363132
+Node: mglData class369037
+Node: Public variables369933
+Node: Create and delete370728
+Node: Fill374565
+Node: Rearrange378636
+Node: File I/O382745
+Node: Make another data386680
+Node: Change data393284
+Node: Interpolation400130
+Node: Informational functions402454
+Node: Operators407515
+Node: Global functions410495
+Node: Other classes416846
+Node: mglParse class417140
+Node: mglFormula class424736
+Node: mglFont class426922
+Node: Format of font files431132
+Node: mglColor class433208
+Node: mglPoint class435570
+Node: mglVar class437688
+Node: mglCommand class438745
+Node: mglArg class439796
+Node: MGL interface440515
+Node: Graphics setup (MGL)446311
+Node: Transparency (MGL)446752
+Ref: alpha447400
+Ref: alphadef447644
+Ref: transparent447785
+Ref: transptype447882
+Node: Lighting (MGL)448478
+Ref: light449027
+Ref: ambient449591
+Node: Fog (MGL)449729
+Ref: fog449882
+Node: Default sizes (MGL)450294
+Ref: barwidth450702
+Ref: marksize450829
+Ref: arrowsize450908
+Ref: linewidth451010
+Ref: ticklen451220
+Ref: tickstl451425
+Node: Zooming (MGL)451664
+Ref: plotfactor452000
+Ref: zoom452305
+Node: Cutting (MGL)452689
+Ref: cut453059
+Node: Other settings (MGL)453895
+Ref: font454052
+Ref: rotatetext454395
+Ref: palette454502
+Ref: meshnum454707
+Ref: axialdir455005
+Node: Axis settings (MGL)455144
+Ref: axis455663
+Ref: ranges455741
+Ref: caxis457897
+Ref: origin457997
+Ref: ternary458162
+Ref: xrange458601
+Ref: yrange458648
+Ref: zrange458695
+Ref: crange458742
+Ref: xtick459294
+Ref: ytick459339
+Ref: ztick459384
+Ref: ctick459429
+Ref: adjust460492
+Node: Transformation matrix (MGL)460676
+Ref: subplot461351
+Ref: inplot462080
+Ref: columnplot462626
+Ref: stickplot462884
+Ref: rotate463152
+Ref: aspect463414
+Ref: perspective463644
+Node: Export to file (MGL)463817
+Ref: write464010
+Ref: setsize464309
+Node: Primitives drawing (MGL)464559
+Ref: clf464829
+Ref: ball464950
+Ref: line465120
+Ref: curve465350
+Ref: facex465698
+Ref: facey465760
+Ref: facez465822
+Ref: sphere466292
+Ref: drop466476
+Ref: cone466986
+Ref: rect467289
+Node: Text printing (MGL)467648
+Ref: text468282
+Ref: title469650
+Ref: fgets469838
+Node: Axis and Colorbar (MGL)470125
+Ref: colorbar470885
+Ref: grid471902
+Ref: box472158
+Ref: xlabel472350
+Ref: ylabel472409
+Ref: zlabel472468
+Ref: tlabel472527
+Node: Legend (MGL)473089
+Ref: legend474021
+Ref: addlegend474615
+Ref: clearlegend474841
+Ref: legendbox474905
+Ref: legendmarks475029
+Node: 1D plotting (MGL)475136
+Ref: plot476887
+Ref: radar477295
+Ref: tens478032
+Ref: area478439
+Ref: region479032
+Ref: stem479546
+Ref: bars479922
+Ref: barh480664
+Ref: chart481454
+Ref: step482285
+Ref: torus482628
+Ref: tube483044
+Ref: mark483554
+Ref: textmark483939
+Ref: error484456
+Ref: boxplot484799
+Node: 2D plotting (MGL)485347
+Ref: surf487051
+Ref: mesh487389
+Ref: fall487715
+Ref: belt488143
+Ref: boxs488566
+Ref: tile488879
+Ref: dens489260
+Ref: cont489633
+Ref: contf490461
+Ref: contd491202
+Ref: axial492004
+Ref: grad492901
+Ref: grid2493542
+Node: 3D plotting (MGL)493835
+Ref: surf3495227
+Ref: dens3495914
+Ref: densa496421
+Ref: cont3496606
+Ref: conta497564
+Ref: contf3497765
+Ref: contfa498628
+Ref: grid3498837
+Ref: grida499272
+Ref: cloud499449
+Ref: beam500044
+Node: Dual plotting (MGL)500721
+Ref: surfc501851
+Ref: surf3c502180
+Ref: surfa502968
+Ref: surf3a503318
+Ref: tiles504113
+Ref: map504508
+Ref: stfa505082
+Node: Vector fields (MGL)505559
+Ref: traj506926
+Ref: vect507298
+Ref: vectc508211
+Ref: vectl509045
+Ref: dew509881
+Ref: flow510398
+Ref: pipe512294
+Node: Other plotting (MGL)513448
+Ref: densz514199
+Ref: densy514199
+Ref: densx514199
+Ref: contz514723
+Ref: conty514723
+Ref: contx514723
+Ref: contfz515266
+Ref: contfy515266
+Ref: contfx515266
+Ref: dots515747
+Ref: crust516076
+Ref: triplot516378
+Ref: tricont517020
+Ref: quadplot517618
+Ref: fplot518214
+Ref: fsurf518896
+Node: Nonlinear fitting (MGL)519608
+Ref: fits521194
+Ref: fit521623
+Ref: putsfit522019
+Node: Data create (MGL)522298
+Ref: new522474
+Ref: var522690
+Ref: list522919
+Ref: copy523955
+Ref: idset524353
+Ref: info524507
+Node: Data filling (MGL)524777
+Ref: fill524952
+Ref: modify525604
+Ref: put526110
+Node: Rearrange data (MGL)526902
+Ref: rearrange527078
+Ref: extend527432
+Ref: transpose527923
+Ref: squeeze528162
+Ref: crop528449
+Ref: delete528596
+Ref: insert528832
+Node: File I/O (MGL)528945
+Ref: read529114
+Ref: readmat529436
+Ref: readall529634
+Ref: save530261
+Ref: readhdf530356
+Ref: savehdf530466
+Ref: import530576
+Ref: export530806
+Node: Make another data (MGL)531158
+Ref: combine531342
+Ref: evaluate531478
+Ref: hist532037
+Ref: momentum532707
+Ref: sum533055
+Ref: max533183
+Ref: min533312
+Ref: resize533439
+Ref: subdata533572
+Ref: trace533949
+Ref: transform534223
+Ref: transforma534743
+Ref: stfad534895
+Ref: pde535252
+Ref: ray536509
+Ref: qo2d537229
+Ref: jacobian538055
+Node: Change data (MGL)538565
+Ref: cumsum539015
+Ref: integrate539124
+Ref: diff539257
+Ref: diff2540080
+Ref: sinfft540199
+Ref: cosfft540352
+Ref: hankel540510
+Ref: swap540665
+Ref: roll540802
+Ref: mirror540951
+Ref: sew541100
+Ref: smooth541272
+Ref: envelop541566
+Ref: normsl541713
+Ref: norm542080
+Node: Operators (MGL)542322
+Ref: multo542486
+Ref: divto542657
+Ref: addto542822
+Ref: subto542953
+Node: Program flow (MGL)543094
+Ref: chdir543367
+Ref: define543442
+Ref: defchr543841
+Ref: defnum544000
+Ref: defpal544156
+Ref: call544322
+Ref: func544524
+Ref: return544832
+Ref: if544912
+Ref: elseif545100
+Ref: else545385
+Ref: endif545496
+Ref: for545559
+Ref: next545866
+Ref: once545917
+Ref: stop546086
+Node: Command options (MGL)546136
+Node: Suffixes548612
+Node: Utilities550046
+Node: Samples551712
+Node: 1D plotting samples554131
+Node: Plot sample554732
+Node: Radar sample555939
+Node: Tens sample556724
+Node: Area sample557940
+Node: Area gradient sample559292
+Node: Bars sample560727
+Node: Bars 2 colors sample561674
+Node: Bars above sample562675
+Node: Bars fall sample563650
+Node: Barh sample564614
+Node: Step sample565550
+Node: Stem sample566778
+Node: Region sample568137
+Node: Region gradient sample569532
+Node: Error sample570953
+Node: BoxPlot sample573554
+Node: Mark sample574419
+Node: TextMark sample576047
+Node: Tube sample577737
+Node: Text sample579196
+Node: Torus sample580945
+Node: Chart sample582303
+Node: Pie chart sample583246
+Node: Ring chart sample584526
+Node: 2D plotting samples585788
+Node: Surf sample586245
+Node: Transparent surface sample587359
+Node: Surface in fog sample588627
+Node: Sharp colors sample589886
+Node: Mesh sample591087
+Node: Fall sample592142
+Node: Belt sample593189
+Node: Tile sample594308
+Node: Boxs sample595427
+Node: Dens sample596681
+Node: Cont sample597695
+Node: ContF sample598848
+Node: ContD sample600101
+Node: Axial sample601409
+Node: Grad sample602633
+Node: 3D plotting samples603712
+Node: Surf3 sample604111
+Node: Cloud sample605360
+Node: CloudP sample606577
+Node: Dens3 sample607545
+Node: Cont3 sample608936
+Node: ContF3 sample610032
+Node: Cont projection sample611237
+Node: Dens projection sample613003
+Node: CutMinMax sample614763
+Node: Isocaps sample616260
+Node: CutOff sample618174
+Node: Dual plotting samples619730
+Node: SurfC sample620257
+Node: SurfA sample621875
+Node: TileS sample623607
+Node: Map sample625046
+Node: Traj sample628029
+Node: Vect sample630359
+Node: VectL sample631802
+Node: VectC sample633255
+Node: Flow sample634708
+Node: Pipe sample636159
+Node: Dew sample637711
+Node: Surf3C sample639240
+Node: Surf3A sample640899
+Node: Vect 3D sample642563
+Node: VectL 3D sample645316
+Node: VectC 3D sample648079
+Node: Flow 3D sample650842
+Node: Pipe 3D sample653604
+Node: Crust sample656461
+Node: Dots sample657429
+Node: Basic features658288
+Node: 1D plot sample658750
+Node: 2D plot sample660067
+Node: 3D plot sample661655
+Node: Line styles sample662743
+Node: Arrow styles sample665606
+Node: Text styles sample668070
+Node: TeX parsing sample669214
+Node: Font faces sample669657
+Node: Colors sample670612
+Node: Color schemes sample676015
+Node: Normal transparency679600
+Node: Glass-like transparency680528
+Node: Lamp-like transparency681466
+Node: Additional features682374
+Node: Legend sample682828
+Node: Adding mesh sample684874
+Node: Surf & Cont sample687518
+Node: Flow & Dens sample688823
+Node: Several light sample690787
+Node: Mirrored surface sample692527
+Node: Cont with labels sample694693
+Node: Ternary plot sample695721
+Node: Coloring by coordinates sample699120
+Node: Drops sample700303
+Node: Molecules drawing sample703036
+Node: Advanced features705946
+Node: Curvelinear coorinates sample706401
+Node: 2-axes sample710786
+Node: Semi-log sample712911
+Node: Log-log sample714755
+Node: Fitting sample717029
+Node: Envelop sample719768
+Node: Sew sample720774
+Node: STFA sample722044
+Node: PDE sample724148
+Node: Beam tracing sample727081
+Node: Parser sample730799
+Node: Manual ticks sample733556
+Node: ColumnPlot sample734795
+Node: StickPlot sample735681
+Node: Stereo image sample737906
+Node: TeX-like symbols739507
+Node: Copying This Manual774558
+Node: Index796985
+
+End Tag Table
diff --git a/texinfo/mathgl_en.info-1 b/texinfo/mathgl_en.info-1
new file mode 100644
index 0000000..f389c54
--- /dev/null
+++ b/texinfo/mathgl_en.info-1
@@ -0,0 +1,6555 @@
+This is mathgl_en.info, produced by makeinfo version 4.13 from
+mathgl_en.texi.
+
+This manual is for MathGL (version 1.11), a collection of classes and
+routines for scientific plotting. Please report any errors in this
+manual to <mathgl.abalakin at gmail.org>.
+
+   Copyright (C) 2008 Alexey Balakin.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with the Front-Cover Texts
+     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+     below.  A copy of the license is included in the section entitled
+     "GNU Free Documentation License."
+
+     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+     and modify this GNU manual.  Buying copies from the FSF supports
+     it in developing GNU and promoting software freedom."
+
+
+File: mathgl_en.info,  Node: Top,  Next: Overview,  Up: (dir)
+
+MathGL
+******
+
+This file documents the Mathematical Graphic Library (MathGL), a
+collection of classes and routines for scientific plotting. It
+corresponds to release 1.11 of the library. Please report any errors in
+this manual to <mathgl.abalakin at gmail.org>. More information about
+MathGL can be found at the project homepage,
+`http://mathgl.sourceforge.net/'.
+
+   Copyright (C) 2008 Alexey A. Balakin.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with the Front-Cover Texts
+     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+     below.  A copy of the license is included in the section entitled
+     "GNU Free Documentation License."
+
+     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+     and modify this GNU manual.  Buying copies from the FSF supports
+     it in developing GNU and promoting software freedom."
+
+* Menu:
+
+* Overview::
+* Examples::
+* MathGL core::
+* Plotter classes::
+* Widget classes::
+* mglData class::
+* Other classes::
+* MGL interface::
+* Samples::
+* TeX-like symbols::
+* Copying This Manual::
+* Index::
+
+
+File: mathgl_en.info,  Node: Overview,  Next: Examples,  Up: Top
+
+1 Overview
+**********
+
+MathGL is ...
+   * a library for making high-quality scientific graphics under Linux
+     and Windows;
+
+   * a library for the fast data plotting and handling of large data
+     arrays;
+
+   * a library for working in window and console modes and for easy
+     embedding into other programs;
+
+   * a library with large and growing set of graphics.
+
+* Menu:
+
+* Why have I written MathGL?::
+* MathGL features::
+* Installation and usage::
+* General concepts::
+* FAQ::
+* Interfaces::
+* Thanks::
+
+
+File: mathgl_en.info,  Node: Why have I written MathGL?,  Next: MathGL features,  Up: Overview
+
+1.1 Why have I written MathGL?
+==============================
+
+A code for making high-quality scientific graphics under Linux and
+Windows. A  code for the fast handling and plotting of large data
+arrays. A code for working in window and console regimes and for easy
+including into another program. A code with large and renewal set of
+graphics. Exactly such a code I was looking for in the last years.
+Exactly such a code I tried to realize in MathGL library.
+
+   At this version (1.11) MathGL has more than 20000 code strings, more
+than 40 general types of graphics for 1d, 2d and 3d data arrays. It can
+export graphics to bitmap and vector (EPS or SVG) files. It has OpenGL
+interface and can be used from console programs. It has functions for
+data handling and script MGL language for simplification of data
+plotting. It also has several types of transparency and smoothed
+lighting, vector fonts and TeX-like symbol parsing, arbitrary
+curvilinear coordinate system and many other useful things (see
+pictures section at homepage (http://mathgl.sf.net/)). Finally it is
+platform-independent and free (under GPL v.2.0 or later license).
+
+
+File: mathgl_en.info,  Node: MathGL features,  Next: Installation and usage,  Prev: Why have I written MathGL?,  Up: Overview
+
+1.2 MathGL features
+===================
+
+MathGL can plot a wide range of graphics. It includes:
+   * one-dimensional (Plot, Area, Bars, Step, Stem, Torus, Chart,
+     Error, Tube, Mark, *note 1D plotting::);
+
+   * two-dimensional plots (Mesh, Surf, Dens, Cont, ContF, Boxs, Axial,
+     Fall, Belt, Tile, *note 2D plotting::);
+
+   * three-dimensional plots (Surf3, Dens3, Cont3, ContF3, Cloud-like,
+     *note 3D plotting::);
+
+   * dual data plots: vector fields Vect and VectC, flow threads Flow,
+     mapping chart Map, surfaces and isosurfaces, transparent or
+     colored (i.e. with transparency or color varied) by other data
+     SurfA, SurfC, Surf3A, Surf3C (*note Dual plotting::);
+
+   * and so on. For details see *note MathGL core::.
+
+   In fact, I created the functions for drawing of all the types of
+scientific plots that I know. The list of plots is growing; if you need
+some special type of a plot then please email me e-mail
+<mathgl.abalakin at gmail.com> and it will appear in the new version.
+
+   I tried to make plots as nice looking as possible: e.g., a surface
+can be transparent and highlighted by several (up to 10) light sources.
+Most of the drawing functions have 2 variants: simple one for the fast
+plotting of data, complex one for specifying of the exact position of
+the plot (including parametric representation). Resulting image can be
+saved in bitmap (with the help of mglGraphZB, mglGraphGL) PNG, JPEG,
+TIFF, BMP format or in vector EPS or SVG format (with the help of
+mglGraphPS), or in IDTF format (with the help of mglGraphIDTF) which
+can be converted into U3D.
+
+   All texts are drawn by vector fonts, which allows for high
+scalability and portability. Texts may contain commands for: some of
+the TeX-like symbols, changing index (upper or lower indexes) and the
+style of font inside the text string (*note mglFont class::). Texts of
+ticks are rotated with axis rotation. It is possible to create a legend
+of plot and put text in an arbitrary position on the plot. Arbitrary
+text encoding (by the help of function `setlocale()') and UTF-16
+encoding are supported.
+
+   Special mglData class is used for data encapsulation (*note mglData
+class::). In addition to a safe creation and deletion of data arrays it
+includes functions for data processing (smoothing, differentiating,
+integrating, interpolating and so on) and reading of data files with
+automatic size determination. Class mglData can handle arrays with up
+to three dimensions (arrays which depend on up to 3 independent indexes
+a_{ijk}). Using an array with higher number of dimensions is not
+meaningful, because I do not know how it can be plotted. Data filling
+and modification may be done manually or by textual formulas.
+
+   The mglFormula class allows a fast evaluation of a textual
+mathematical expression (*note mglFormula class::). It is based on
+string precompilation to tree-like code at the creation of class
+instance. At evaluation stage code performs only fast tree-walk and
+returns the value of the expression. In addition to changing data
+values, textual formulas are also used for drawing in _arbitrary_
+curvilinear coordinates. A set of such curvilinear coordinates is
+limited only by user</samp>&rsquo;s imagination rather than a fixed
+list like: polar, parabolic, spherical, and so on.
+
+
+File: mathgl_en.info,  Node: Installation and usage,  Next: General concepts,  Prev: MathGL features,  Up: Overview
+
+1.3 Installation and usage
+==========================
+
+MathGL can be installed in 3 different ways.
+  1. Compile from sources. The standard script for autoconf/automake
+     tool is included in the library beginning from version 1.2.1. To
+     run it, one should execute 3 commands: `./configure' after it
+     `make' and `make install' with root/sudo rights. Sometimes after
+     installation you may need to update the library list - just
+     execute `ldconfig' with root/sudo rights.
+
+     Script `./configure' have several additional options which are
+     switched off by default. They are: `--enable-fltk, --enable-glut,
+     --enable-qt' for ebabling FLTK, GLUT and/or Qt windows;
+     `--enable-jpeg, --enable-tiff, --enable-hdf5' for enabling
+     corresponding file formats; `--enable-all' for enabling all
+     additional features. For using `double' as base internal data type
+     use option `--enable-double'. For enabling language interfaces use
+     `--enable-python, --enable-octave' or `--enable-langall' for all
+     languages. The full list of options can be viewed by command
+     `./configure --help'.
+
+  2. Use a precompiled binary. There are binaries for MinGW (platform
+     Win32). For a precompiled variant one needs only to unpack the
+     archive to the location of the compiler (or in any other folder
+     and setup paths). By default, precompiled versions include the
+     support of GSL (www.gsl.org) and PNG. So, one needs to have these
+     libraries installed on system.
+
+  3. Install precompiled versions from standard packages (RPM, deb,
+     DevPak and so on, see Download
+     (http://mathgl.sf.net/download.html) section at homepage).
+
+   To compile your own program, you need to specify the linker option
+`-lmgl' for a compilation in the console program or with external
+(non-MathGL) window library. If you want to use FLTK or GLUT windows
+then you need to add the option `-lmgl-fltk' or `-lmgl-glut'. Fortran
+users also should add C++ library by the option `-lstdc++'.
+
+
+File: mathgl_en.info,  Node: General concepts,  Next: FAQ,  Prev: Installation and usage,  Up: Overview
+
+1.4 General concepts
+====================
+
+The set of MathGL features is rather rich - just the number of basic
+graphics types is larger than 40. Also there are functions for data
+handling, plot setup and so on. In spite of it I tried to keep a
+similar style in function names and in the order of arguments. Mostly
+it is used for different drawing functions.
+
+   There are six most general (base) concepts:
+  1. *Any picture is created in memory first.* The internal (memory)
+     representation can be different: bitmap picture or the list of
+     vector primitives. After that the user may decide what he/she
+     want: save to file, display on the screen, run animation, do
+     additional editing and so on. This approach assures a high
+     portability of the program - the source code will produce exactly
+     the same picture in _any_ OS. Another big positive consequence is
+     the ability to create the picture in the console program (using
+     command line, without creating a window)!
+
+  2. *Every plot settings (style of lines, font, color scheme) are
+     specified by a string.* It provides convenience for
+     user/programmer - short string with parameters is more
+     comprehensible than a large set of parameters. Also it provides
+     portability - the strings are the same in any OS so that it is not
+     necessary to think about argument types.
+
+  3. *All functions have "simplified" and "advanced" forms.* It is done
+     for user</samp>&rsquo;s convenience. One needs to specify only one
+     data array in the "simplified" form in order to see the result.
+     But one may set parametric dependence of coordinates and produce
+     rather complex curves and surfaces in the "advanced" form. In both
+     cases the order of function arguments is the same: first data
+     arrays, second the string with plot parameters, and later optional
+     arguments for plot tuning.
+
+  4. *All data arrays for plotting are encapsulated in mglData class.*
+     This reduces the number of errors while working with memory and
+     provides a uniform interface for data of different types (float,
+     double and so on) or for formula plotting.
+
+  5. *All plots are vector plots.* The MathGL library is intended for
+     handling scientific data which have vector nature (lines, faces,
+     matrices and so on). As a result, vector representation is used in
+     all cases! In addition, the vector representation allows one to
+     scale the plot easily - change the canvas size by a factor of 2,
+     and the picture will be proportionally scaled.
+
+  6. *New drawing never clears things drawn already.* This, in some
+     sense, unexpected, idea allows to create a lot of "combined"
+     graphics. For example, to make a surface with contour lines one
+     needs to call the function for surface plotting and the function
+     for contour lines plotting (in any order). Thus the special
+     functions for making this "combined" plots (as it is done in
+     Matlab and some other plotting systems) are superfluous. Many more
+     examples of such plots can be found in section *note Hints:: and
+     in home site (`http://mathgl.sf.net/index.html').
+
+   In addition to the general concepts I want to comment on some
+non-trivial or less commonly used general ideas - plot positioning,
+axis specification and curvilinear coordinates, styles for lines, text
+and color scheme.
+
+* Menu:
+
+* Coordinate axes::
+* Line styles::
+* Color scheme::
+* Font styles::
+* Textual formulas::
+
+
+File: mathgl_en.info,  Node: Coordinate axes,  Next: Line styles,  Up: General concepts
+
+1.4.1 Coordinate axes
+---------------------
+
+Two axis representations are used in MathGL. The first one consists of
+normalizing the data point coordinates in a box MINxMAX (*note Axis
+settings::). If CUT is `true' then the outlier points are omitted,
+otherwise they are projected to the bounding box (*note Cutting::).
+Also, the point will be omitted if it lies inside the box defined by
+CUTMIN x CUTMAX or if the value of formula `CutOff'() is nonzero for
+its coordinates. After that, transformation formulas are applied to the
+data point. Finally, the data point is plotted by one of the functions.
+
+   There is a possibility to set members MAX, MIN directly, but one
+should call `RecalcBorder()' function to setup plotting routines. A
+safer way is to set these values by calling the `Axis()' function,
+which calls `RecalcBorder()' automatically. Another way to specify the
+scaling of the axis is to set it as a minimal or maximal value of the
+data array. Functions `XRange(), YRange(), ZRange()' do it. The second
+(optional) argument is used to replace the axis range or to join with
+the existed range.
+
+   The axis origin is defined by the variable ORG and is applied to all
+consequent calls of axes or grid drawing. By default, if this point
+lies outside the bounding box then it is projected onto the one
+(variable AUTOORG controls it). If one of the values of ORG is equal to
+NAN then the corresponding value will be selected automatically.
+
+   There is 4-th axis _c_ (color axis or colorbar) in addition to the
+usual axes _x, y, z_. It sets the range of values for the surface
+coloring. Its borders are automatically set to values of Min.z, Max.z
+during the call of `Axis()' function. Also, one can directly change the
+color range by setting variables CMAX, CMAX, or calling functions
+`CAxis()' or `CRange()'. Use `Colorbar()' function for showing the
+colorbar.
+
+   The form (appearence) of tick labels is controlled by `SetTicks()'
+function (*note Axis settings::). It has 3 arguments: first one D sets
+the tick step (if positive) or tick number (if negative) or switches
+logarithmic ticks on (if zero); the second one, NS, sets the number of
+subticks; the last one is the starting point for ticks (default is axis
+origin). Function SETTUNETICKS switches on/off tick enhancing by
+factoring out acommon multiplier (for small coordinate values, like
+0.001 to 0.002, or large, like from 1000 to 2000) or common component
+(for narrow range, like from 0.999 to 1.000). Finally, you may use
+functions `SetXTT(), SetYTT(), SetZTT(), SetCTT()' for setting
+templates for tick labels (it supports TeX symbols). Also, there is a
+possibility to print arbitrary text as tick labels the by help of
+`SetTicksVal()' function.
+
+
+File: mathgl_en.info,  Node: Line styles,  Next: Color scheme,  Prev: Coordinate axes,  Up: General concepts
+
+1.4.2 Line styles
+-----------------
+
+The line style is defined by the string which may contain
+specifications for color (`wkrgbcymhRGBCYMHWlenupqLENUPQ'), dashing
+style (`-|;:ji' or space), width (`0123456789') and marks (`o+xsd.^v'
+and `#' modifier). If one of the type of information is omitted then
+default values used with the previous color or one from palette (for
+*note 1D plotting::) are adopted.  The line style is defined by the
+string which may contain specifications for color
+(`wkrgbcymhRGBCYMHWlenupqLENUPQ'), dashing style (`-|;:ji' or space),
+width (`0123456789') and marks (`o+xsd.^v' and `#' modifier). If one of
+the type of information is omitted then default values used with the
+previous color or one from palette (for *note 1D plotting::) are
+adopted. By default palette contain following colors: dark gray `H',
+blue `b', green `g', red `r', cyan `c', magenta `m', yellow `y', gray
+`h', blue-green `l', sky-blue `n', orange `q', yellow-green `e',
+blue-violet `u', purple `p'.
+
+   The color types are: `k' - black, `r' - red, `R' - dark red, `g' -
+green, `G' - dark green, `b' - blue, `B' - dark blue, `c' - cyan, `C' -
+dark cyan, `m' - magenta, `M' - dark magenta, `y' - yellow, `Y' - dark
+yellow (gold), `h' - gray, `H' - dark gray, `w' - white, `W' - bright
+gray, `l' - green-blue, `L' - dark green-blue, `e' - green-yellow, `E'
+- dark green-yellow, `n' - sky-blue, `N' - dark sky-blue, `u' -
+blue-violet, `U' - dark blue-violet, `p' - purple, `P' - dark purple,
+`q' - orange, `Q' - dark orange (brown).
+
+   Dashing style has the following meaning: space - no line (usable for
+plotting only marks), `-' - solid line (################), `|' - long
+dashed line (########________), `;' - dashed line (####____####____),
+`=' - small dashed line (##__##__##__##__), `:' - dotted line
+(#___#___#___#___), `j' - dash-dotted line (#######____#____), `i' -
+small dash-dotted line (###__#__###__#__).
+
+   Marker types are: `o' - circle, `+' - cross, `x' - skew cross, `s' -
+square, `d' - rhomb (or diamond), `.' - dot (point), `^' - triangle up,
+`v' - triangle down, `<' - triangle left, `>' - triangle right, `#*' -
+Y sign, `#+' - squared cross, `#x' - squared skew cross, `#.' - circled
+dot. If string contain symbol `#' then the solid versions of markers
+are used.
+
+ [image src="../png/sample5.png" ]
+
+Styles of lines and marks.
+
+   One may specify to draw a special symbol (an arrow) at the beginning
+and at the end of line. This is done if the specification string
+contains one of the following symbols: `A' - outer arrow, `V' - inner
+arrow, `I' - transverse hatches, `K' - arrow with hatches, `T' -
+triangle, `S' - square, `D' - rhombus, `O' - circle, `_' - nothing (the
+default). The following rule applies: the first symbol specifies the
+arrow at the end of line, the second specifies the arrow at the
+beginning of the line. For example, `r-A' defines a red solid line with
+usual arrow at the end, `b|AI' defines a blue dash line with an arrow
+at the end and with hatches at the beginning, `_O' defines a line with
+the current style and with a circle at the beginning. These styles are
+applicable during the graphics plotting as well (for example, *note 1D
+plotting::).
+
+ [image src="../png/sampled.png" ]
+
+Arrow styles.
+
+
+File: mathgl_en.info,  Node: Color scheme,  Next: Font styles,  Prev: Line styles,  Up: General concepts
+
+1.4.3 Color scheme
+------------------
+
+The color scheme is used for determining the color of surfaces,
+isolines, isosurfaces and so on. The color scheme is defined by the
+string, which may contain several characters that are color id (*note
+Line styles::) or characters `d#:|'. Symbol `d' denotes the
+interpolation by 3d position instead of the coloring by amplitude.
+Symbol `#' switches to mesh drawing or to a wire plot. Symbol `|'
+disables color interpolation in color scheme, which can be useful, for
+example, for sharp colors during matrix plotting. Symbol `:' finishes
+the color scheme parsing. Following it, the user may put styles for the
+text, rotation axis for curves/isocontours, and so on. Color scheme may
+contain up to 32 color values.
+
+   You may also use "lighted" colors in the color scheme specification
+(_not in line style!_). The "lighted" color contain 2 symbols: first
+one is the usual symbol for color specification, the second one is a
+digit for its brightness. The digit can be in range `1'...`9'.  Number
+`5' corresponds to a normal color, `1' is a very dark version of the
+color (practically black), and `9' is a very bright version of the
+color (practically white). For example, the color scheme can be
+`b2b7wr7r2'.
+
+ [image src="../png/colors.png" ]
+
+Colors and its ids.
+
+   For coloring by _amplitude_ (most common) the final color is a
+linear interpolation of color array. The color array is constructed
+from the string ids. The argument is the amplitude normalized between
+CMIN - CMAX (*note Axis settings::). For example, string containing 4
+characters `bcyr' corresponds to a colorbar from blue (lowest value)
+through cyan (next value) through yellow (next value) to the red
+(highest value). String `kw' corresponds to a colorbar from black
+(lowest value) to white (highest value). String `m' corresponds to a
+simple magenta color.
+
+   There are several useful combinations. String `kw' corresponds to
+the simplest gray color scheme where higher values are brighter. String
+`wk' presents the inverse gray color scheme where higher value is
+darker. Strings `kRryw', `kGgw', `kBbcw' present the well-known _hot_,
+_summer_ and _winter_ color schemes. Strings `BbwrR' and `bBkRr' allow
+to view bi-color figure on white or black background, where negative
+values are blue and positive values are red. String `BbcyrR' gives a
+color scheme similar to the well-known _jet_ color scheme.
+
+ [image src="../png/color_schemes.png" ]
+
+Most popular color schemes.
+
+   When coloring by _coordinate_, the final color is determined by the
+position of the point in 3d space and is calculated from formula
+c=x*c[1] + y*c[2] + z*c[3]. Here, c[1], c[2], c[3] are the first three
+elements of color array; x, y, z are normalized to MIN - MAX
+coordinates of the point. This type of coloring is useful for
+isosurface plot where color may show the exact position of a piece of
+surface.
+
+
+File: mathgl_en.info,  Node: Font styles,  Next: Textual formulas,  Prev: Color scheme,  Up: General concepts
+
+1.4.4 Font styles
+-----------------
+
+Text style is specified by the string which may contain several
+characters of font (`ribwou') and/or alignment (`LRC') specifications.
+The string also may contain the color id characters `wkrgbcymhRGBCYMHW'
+(*note Line styles::) after the symbol `:'. For example, `biC:b' sets
+the bold italic font text aligned at the center and with blue color.
+
+   The font types are: `r' - roman font, `i' - italic style, `b' - bold
+style. By default roman roman font is used. The align types are: `L' -
+align left (default), `C' - align center, `R' - align right. Additional
+font effects are: `w' - wired, `o' - over-lined, `u' - underlined.
+
+   Also a parsing of the LaTeX-like syntax is provided. There are
+commands for the font style changing inside the string (for example,
+use \b for bold font): \a or \overline - over-lined, \b or \textbf -
+bold, \i or \textit - italic, \r or \textrm - roman (disable bold and
+italic attributes), \u or \underline - underlined, \w or \wire - wired,
+\big - bigger size, @ - smaller size. The lower and upper indexes are
+specified by `_' and `^' symbols. At this the changed font style is
+applied only on next symbol or symbols in braces {}. The text in braces
+{} are treated as single symbol that allow one to print the index of
+index. For example, compare the strings `sin (x^{2^3})' and `sin
+(x^2^3)'. You may also change text color inside string by command #? or
+by \color? where `?' is symbolic id of the color (*note Line styles::).
+For example, words `Blue' and `red' will be colored in the string
+`#b{Blue} and \colorr{red} text'. The most of functions understand the
+newline symbol `\n' and allows to print multi-line text. Finally, you
+can use arbitrary UTF codes by command `\utf0x????'. For example,
+`\utf0x3b1' will produce  \alpha symbol.
+
+   The most of commands for special TeX or AMSTeX symbols, the commands
+for font style changing (\textrm, \textbf, \textit, \textsc, \overline,
+\underline), accents (\hat, \tilde, \dot, \ddot, \acute, \check,
+\grave, \bar, \breve) and roots (\sqrt, \sqrt3, \sqrt4) are recognized.
+The full list contain approximately 2000 commands. Note that first
+space symbol after the command is ignored, but second one is printed as
+normal symbol (space). For example, the following strings produce the
+same result \tilde a: `\tilde{a}'; `\tilde a'; `\tilde{}a'.
+
+   In particular, the Greek letters are recognizable special symbols:
+\alpha - \alpha, \beta - \beta, \gamma - \gamma, \delta - \delta,
+\epsilon - \epsilon, \eta - \eta, \iota - \iota, \chi - \chi, \kappa -
+\kappa, \lambda - \lambda, \mu - \mu, \nu - \nu, o - \o, \omega -
+\omega, \phi - \phi, \pi - \pi, \psi - \psi, \rho - \rho, \sigma -
+\sigma, \theta - \theta, \tau - \tau, \upsilon - \upsilon, \xi - \xi,
+\zeta - \zeta, \varsigma - \varsigma, \varepsilon - \varepsilon,
+\vartheta - \vartheta, \varphi - \varphi, A - \Alpha, B - \Beta, \Gamma
+- \Gamma, \Delta - \Delta, E - \Epsilon, H - \Eta, I - \Iota, C - \Chi,
+K - \Kappa, \Lambda - \Lambda, M - \Mu, N - \Nu, O - \O, \Omega -
+\Omega, \Phi - \Phi, \Pi - \Pi, \Psi - \Psi, R - \Rho, \Sigma - \Sigma,
+\Theta - \Theta, T - \Tau, \Upsilon - \Upsilon, \Xi - \Xi, Z - \Zeta.
+
+   The small part of most common special TeX symbols are: \angle -
+\angle, \aleph - \aleph, \cdot - \cdot, \clubsuit - \clubsuit, \cup -
+\cup, \cap - \cap, \diamondsuit - \diamondsuit, \diamond - \diamond,
+\div - \div, \downarrow - \downarrow, \dag - \dag, \ddag - \ddag,
+\equiv - \equiv, \exists - \exists, \frown - \frown, \flat - \flat, \ge
+- \ge, \geq - \geq, \gets - \gets, \heartsuit - \heartsuit, \infty -
+\infty, \in - \in, \int - \int, \Im - \Im, \langle - \langle, \le -
+\le, \leq - \leq, \leftarrow - \leftarrow, \mp - \mp, \nabla - \nabla,
+\ne - \ne, \neq - \neq, \natural - \natural, \oint - \oint, \odot -
+\odot, \oplus - \oplus, \partial - \partial, \parallel - \parallel,
+\perp - \perp, \pm - \pm, \propto - \propto, \prod - \prod, \Re - \Re,
+\rightarrow - \rightarrow, \rangle - \rangle, \spadesuit - \spadesuit,
+\sim - \sim, \smile - \smile, \subset - \subset, \supset - \supset,
+\surd - \sqrt or \surd, \S - \S, \sharp - \sharp, \sum - \sum, \times -
+\times, \to - \to, \uparrow - \uparrow, \wp - \wp and so on.
+
+   The font size can be defined explicitly (if SIZE>0) or relative to a
+base font size as |SIZE|*FONTSIZE (if SIZE<0). The value SIZE=0
+specifies that the string will not be printed. The base font size is
+measured in internal "MathGL" units. Special functions
+`SetFontSizePT(), SetFontSizeCM(), SetFontSizeIN()' allow one to set it
+in more "common" variables for a given dpi value of the picture.
+
+
+File: mathgl_en.info,  Node: Textual formulas,  Prev: Font styles,  Up: General concepts
+
+1.4.5 Textual formulas
+----------------------
+
+MathGL have the fast variant of textual formula evaluation  (*note
+mglFormula class::) . There are a lot of functions and operators
+available. The operators are: `+' - addition, `-' - subtraction, `*' -
+multiplication, `/' - division, `^' - integer power. Also there are
+logical "operators": `<' - true if x<y, `>' - true if x>y, `=' - true
+if x=y, `&' - true if x and y both nonzero, `|' - true if x or y
+nonzero. These logical operators have lowest priority and return 1 if
+true or 0 if false.
+
+   The basic functions are: `sqrt(x)' - square root of X, `pow(x,y)' -
+power X in Y, `ln(x)' - natural logarithm of X, `lg(x)' - decimal
+logarithm of X, `log(a,x)' - logarithm base A of X, `abs(x)' - absolute
+value of X, `sign(x)' - sign of X, `mod(x,y)' - x modulo y, `step(x)' -
+step function, `int(x)' - integer part of X, `rnd' - random number,
+`pi' - number \pi=3.1415926...
+
+   Trigonometric functions are: `sin(x)', `cos(x)', `tan(x)' (or
+`tg(x)'). Inverse trigonometric functions are: `asin(x)', `acos(x)',
+`atan(x)'. Hyperbolic functions are: `sinh(x)' (or `sh(x)'), `cosh(x)'
+(or `ch(x)'), `tanh(x)' (or `th(x)'). Inverse hyperbolic functions are:
+`asinh(x)', `acosh(x)', `atanh(x)'.
+
+   There are a set of special functions: `gamma(x)' - Gamma function
+\Gamma(x) = \int_0^\infty dt t^{x-1} \exp(-t) , `psi(x)' - digamma
+function \psi(x) = \Gamma</samp>&rsquo; (x)/ \Gamma(x) for x!=0,
+`ai(x)' - Airy function Ai(x), `bi(x)' - Airy function Bi(x), `cl(x)' -
+Clausen function, `li2(x)' (or `dilog(x)') - dilogarithm Li_2(x) = -
+\Re \int_0^x ds \log(1-s)/s, `sinc(x)' - compute sinc(x) = \sin(\pi x)
+/ (\pi x) for any value of x, `zeta(x)' - Riemann zeta function
+\zeta(s) = \sum_{k=1}^\infty k^{-s} for arbitrary s!=1, `eta(x)' - eta
+function \eta(s) = (1-2^{1-s}) \zeta(s) for arbitrary s, `lp(l,x)' -
+Legendre polynomial P_l(x), (|x|<=1, l>=0), `w0(x)', `w1(x)' -
+principal branch of the Lambert W functions. Function W(x) is defined
+to be solution of the equation W \exp(W) = x.
+
+   The exponent integrals are: `ci(x)' - Cosine integral Ci(x) =
+\int_0^x dt \cos(t)/t, `si(x)' - Sine integral Si(x) = \int_0^x dt
+\sin(t)/t, `erf(x)' - error function erf(x) = (2/\sqrt(\pi)) \int_0^x
+dt \exp(-t^2), `ei(x)' - exponential integral Ei(x) := -
+PV(\int_{-x}^\infty dt \exp(-t)/t) (where PV denotes the principal
+value of the integral), `e1(x)' - exponential integral E_1(x) := Re
+\int_1^\infty dt \exp(-xt)/t , `e2(x)' - exponential integral E_2(x) :=
+Re \int_1^\infty dt \exp(-xt)/t^2, `ei3(x)' - exponential integral
+Ei_3(x) = \int_0^x dt \exp(-t^3) for x>=0.
+
+   Bessel functions are: `j(nu,x)' - regular cylindrical Bessel
+function of fractional order NU, `y(nu,x)' - irregular cylindrical
+Bessel function of fractional order NU, `i(nu,x)' - regular modified
+Bessel function of fractional order NU, `k(nu,x)' - irregular modified
+Bessel function of fractional order NU.
+
+   Elliptic integrals are: `ee(k)' - complete elliptic integral is
+denoted by E(k) = E(\pi/2, k), `ek(k)' - complete elliptic integral is
+denoted by K(k) = F(\pi/2, k), `e(phi,k)' - elliptic integral E(\phi,k)
+= \int_0^\phi dt \sqrt((1 - k^2 \sin^2(t))), `f(phi,k)' - elliptic
+integral F(\phi,k) = \int_0^\phi dt 1/\sqrt((1 - k^2 \sin^2(t))).
+
+   Jacobi elliptic functions are: `sn(u,m)', `cn(u,m)', `dn(u,m)',
+`sc(u,m)', `sd(u,m)', `ns(u,m)', `cs(u,m)', `cd(u,m)', `nc(u,m)',
+`ds(u,m)', `dc(u,m)', `nd(u,m)'.
+
+   Note, some of these functions are unavailable if NO_GSL is defined
+during compilation of MathGL library.
+
+   There is no difference between lower or upper case in formulas. If
+argument value lie outside the range of function definition then
+function returns NaN.
+
+
+File: mathgl_en.info,  Node: FAQ,  Next: Interfaces,  Prev: General concepts,  Up: Overview
+
+1.5 FAQ
+=======
+
+*The plot does not appear*
+     Check that points of the plot lie  inside the bounding box and
+     resize the bounding box using `Axis()' function. Check that the
+     data have correct dimensions for selected type of plot. Be sure
+     that  `Finish()' is called after the plotting functions (or be
+     sure that the plot is saved to a file). Sometimes the light
+     reflection from flat surfaces (like, `Dens()') can look as if the
+     plot were absent.
+
+*I can not find some special kind of plot.*
+     Most "new" types of plots can be created by using the existing
+     drawing functions. For example, the surface of curve rotation can
+     be created by a special function `Torus()', or as a parametrically
+     specified surface by `Surf()'. See also, *note Hints:: and *note
+     Examples:: of MathGL. If you can not find a specific type of plot,
+     please e-mail me and this plot will appear in the next version of
+     MathGL library.
+
+*Should I know some graphical libraries (like OpenGL) before using the MathGL library?*
+     No. The MathGL library is self-contained and does not require the
+     knowledge of external libraries.
+
+*In which language is the library written? For which languages does it have an interface?*
+     The core of the MathGL library is written in C++. But there are
+     interfaces for: pure C, Fortran, Pascal, Forth, and its own
+     command language MGL. Also there is a large set of interpreted
+     languages, which are supported (Python, Java,  ALLEGROCL, CHICKEN,
+     Lisp, CFFI, C#, Guile, Lua, Modula 3, Mzscheme, Ocaml, Octave,
+     Perl, PHP, Pike, R, Ruby, Tcl). These interfaces are written using
+     SWIG (both pure C functions and classes) but only the interface
+     for Python and Octave is included in the autoconf/automake script.
+     The reason is that I don</samp>&rsquo;t know any other interpreted
+     languages :(. Note that most other languages can use (link to) the
+     pure C functions.
+
+*How can I use MathGL with Fortran?*
+     You can use MathGL as is with `gfortran' because it uses by
+     default the AT&T notation for external functions. For other
+     compilers (like Visual Fortran) you have to switch on the AT&T
+     notation manually. The AT&T notation requires that the symbol `_'
+     is added at the end of each function name, function argument(s) is
+     passed by pointers and the string length(s) is passed at the end
+     of the argument list. For example:
+
+     _C function_ - `void mgl_fplot(HMGL graph, const char *fy, const
+     char *stl, int n);'
+
+     _AT&T function_ - `void mgl_fplot_(uintptr_t *graph, const char
+     *fy, const char *stl, int *n, int ly, int ls);'
+
+*I have a class Foo and a drawing method Foo::draw(mglGraph *gr). How I can use it in FLTK or GLUT window?*
+     The member-functions of classes have a hidden parameter (the
+     pointer to a class instance) in C++. So, their direct usage is
+     impossible. The solution is to write an interface function:
+          int foo_draw(mglGraph *gr, void *par)
+          {   ((Foo *)foo)->draw(gr);    }
+     and to use it in the call of `Window()' function:
+          gr->Window(argc,argv,foo_draw,"Title",this);
+
+     Alternatively you can inherit your class from `mglDraw' class and
+     use the functions like `gr->Window(argc, argv, foo, "Title");'.
+
+*How can I print in Russian/Spanish/Arabic/Japanese, and so on?*
+     The standard way is to use Unicode encoding for the text output.
+     But the MathGL library also has interface for 8-bit (char *)
+     strings with internal conversion to Unicode. This conversion
+     depends on the current locale OS. You may change it by
+     `setlocale()' function. For example, for Russian text in CP1251
+     encoding you may use `setlocale(LC_CTYPE, "ru_RU.cp1251");' (under
+     MS Windows the name of locale may differ - `setlocale(LC_CTYPE,
+     "russian_russia.1251")'). I strongly recommend not to use the
+     constant `LC_ALL' in the conversion. Since it also changes the
+     number format, it may lead to mistakes in formula writing and
+     reading of the text in data files. For example, the program will
+     await a `,' as a decimal point but the user will enter `.'.
+
+*How can I exclude a point or a region of plot from the drawing?*
+     There are 3 general ways. First, the point with `NAN' value as one
+     of the coordinates will never be plotted. Second, special
+     variables CUTMIN, CUTMAX or function `CutOff'() define the
+     condition when the points should be omitted (*note Cutting::).
+     Last, you may change the transparency of a part of the plot by the
+     help of functions `SurfA()', `Surf3A()' (*note Dual plotting::).
+     In this last case the transparency is switched on smoothly.
+
+*I use VisualStudio, CBuilder or some other compiler (not MinGW/gcc). How can I link the MathGL library?*
+     In version 1.10, you can use the header file `#include
+     <mgl/mgl_w.h>' which contains wrapper C++ classes, which should be
+     acceptable for any compiler. Note, that wrapper classes are
+     *incompatible* with classes in usual headers and you should use
+     only one of them (wrapper or usual)! However, I recommend to use
+     the usual headers if you use GNU compilers (like MinGW).
+
+*How I can build MathGL under Windows?*
+     The simplest way is using the combination CMake+MinGW. Also you
+     need some extra libraries like GSL, PNG, JPEG and so on. All of
+     them can be found at
+     `http://gnuwin32.sourceforge.net/packages.html'. After installing
+     all components, just run CMake configurator and make the MathGL
+     itself.
+
+*How I can create FLTK/GLUT/Qt window in parallel with calculation?*
+     You should create a separate thread for processing window
+     messages. The cross-platform way is using the `pthread' library.
+     You can update the data by calling `mglGraphFLTK::Update()'
+     function. The code can look like this: //-----------------------------------------------------------------------------
+     #include <mgl/mgl_fltk.h>
+     #include <pthread.h>
+     #include <unistd.h>
+
+     mglPoint pnt;  // some global variable for changable data
+     //-----------------------------------------------------------------------------
+     int sample(mglGraph *gr, void *)
+     {
+       gr->Box();  gr->Line(mglPoint(),pnt,"Ar2"); // just draw a vector
+       return 0;
+     }
+     //-----------------------------------------------------------------------------
+     void *mgl_fltk_tmp(void *)      {       mglFlRun();     return 0;       }
+     int main (int argc, char ** argv)
+     {
+       mglGraphFLTK gr;
+       gr.Window(argc,argv,sample,"test");  // create window
+       static pthread_t tmp;
+       pthread_create(&tmp, 0, mgl_fltk_tmp, 0);
+       pthread_detach(tmp);    // run window handling in the separate thread
+       for(int i=0;i<10;i++)   // do calculation
+       {
+         sleep(1);             // which can be very long
+         pnt = mglPoint(2*mgl_rnd()-1,2*mgl_rnd()-1);
+         gr.Update();          // update window
+       }
+       return 0;   // finish calculations and close the window
+     }
+     //-----------------------------------------------------------------------------
+
+*How many people write this library?*
+     Most of the library was written by one person. This is a result of
+     nearly a year of work (mostly in the evening and on holidays): I
+     spent half a year to write the kernel and half a year to a year on
+     extending, improving the library and writing documentation. This
+     process continues now :). The autoconf/automake script was written
+     mostly by D.Kulagin, and the export to IDTF was written mostly by
+     M.Vidassov.
+
+*How can I display a bitmap on the figure?*
+     You can import data into a `mglData' instance and display it by
+     `Dens()' function. For example, for black-and-white bitmap you can
+     use the code: `mglData bmp; bmp.Import("fname.png","wk");
+     gr->Dens(bmp,"wk");'.
+
+*How can I use MathGL in Qt, FLTK, wxWidgets etc.?*
+     There are special classes (widgets) for these libraries: QMathGL
+     for Qt, Fl_MathGL for FLTK and so on. If you don</samp>&rsquo;t
+     find the appropriate class then you can create your own widget
+     that displays a bitmap using mglGraphAB::GetBits().
+
+*How can I create U3D file (make 3D in PDF)?*
+     There are 2 steps: first you should create IDTF file, and later
+     convert it to U3D. You can use U3D tools
+     (http://sourceforge.net/project/showfiles.php?group_id=152187&package_id=300628)
+     for converting IDTF file to U3D. It needs libharu
+     (http://libharu.org) 2.1.0 or later. For installation use
+     `./bootstrap, ./configure, make, sudo make install'. It provides
+     IDTFConverter program for converting text files *.idtf to binary
+     files *.u3d. The latter can be included into PDF.
+
+*How I can change the font family?*
+     First, you should download new font files from here
+     (http://mathgl.sourceforge.net/download.html) or from here
+     (http://sourceforge.net/project/showfiles.php?group_id=152187&package_id=267177).
+     Next, you should load the font files into mglGraph class instance
+     GR by the following command: `gr->SetFont(new
+     mglFont(fontname,path));'. Here FONTNAME is the base font name
+     like `STIX' and PATH sets the location of font files. Use
+     `gr->SetFont(NULL);' to start using the default font.
+
+*How can I draw tick out of a bounding box?*
+     Just set a negative value for TICKLEN. For example, use
+     `gr->SetTickLen(-0.1);'.
+
+
+
+File: mathgl_en.info,  Node: Interfaces,  Next: Thanks,  Prev: FAQ,  Up: Overview
+
+1.6 Interfaces
+==============
+
+The MathGL library has interfaces for a set of languages. Most of them
+are based on the C interface via SWIG tool. There are Python, Java,
+Octave, Lisp, C#, Guile, Lua, Modula 3, Ocaml, Perl, PHP, Pike, R,
+Ruby, and Tcl interfaces. Also there is a Fortran interface which has a
+similar set of functions, but slightly different types of arguments
+(integers instead of pointers). These functions are marked as [C
+function].  Some of the languages listed above support classes (like
+Python). For them, a special wrapper was written. These classes and
+functions are marked as (Python).  Finally, a special command language
+MGL was written for a faster access to C++ plotting functions.
+Corresponding scripts can be executed separately (by UDAV, mgl2png,
+mgl2eps and so on) or from the C++ code (*note mglParse class::). These
+commands are described in *note MGL interface::.
+
+* Menu:
+
+* C interface::
+* Python interface::
+
+
+File: mathgl_en.info,  Node: C interface,  Next: Python interface,  Up: Interfaces
+
+1.6.1 C interface
+-----------------
+
+The C interface is a base for many other interfaces. It contains the
+pure C functions for most of the methods of MathGL classes. In
+distinction to C++ classes, C functions must have an argument HMGL (for
+graphics) and/or HMDT (for data arrays), which specifies the object for
+drawing or manipulating (changing). So, firstly, the user has to create
+this object by the function `mgl_create_*()' and has to delete it after
+the use by function `mgl_delete_*()'.
+
+   All C functions are described in the header file `#include
+<mgl/mgl_c.h>' and use variables of the following types:
+   * `HMGL' -- Pointer to class `mglGraph' (*note MathGL core::).
+
+   * `HMDT' -- Pointer to class `mglData' (*note mglData class::).
+
+   * `HMPR' -- Pointer to class `mglParse' (*note mglParse class::)..
+   These variables contain identifiers for graphics drawing objects and
+for the data objects.
+
+   Fortran functions/subroutines have the same names as C functions.
+However, there is a difference. Variable of type `HMGL, HMDT' must be
+an integer with sufficient size (`integer*4' in the 32-bit operating
+system or `integer*8' in the 64-bit operating system). All C functions
+are subroutines in Fortran, which are called by operator `call'. The
+exceptions are functions, which return variables of types `HMGL' or
+`HMDT'. These functions should be declared as integer in Fortran code.
+Also, one should keep in mind that strings in Fortran are denoted by
+`</samp>&rsquo;' symbol, not the `"' symbol.
+
+   *Create and delete objects*
+
+   * Functions for non-visual "grapher" creation:
+
+      -- C function: `HMGL' mgl_create_graph_gl ()
+          Create the instance of class mglGraphGL.
+
+      -- C function: `HMGL' mgl_create_graph_zb (`int' width, `int'
+               height)
+          Create the instance of class mglGraphZB with specified sizes.
+
+      -- C function: `HMGL' mgl_create_graph_ps (`int' width, `int'
+               height)
+          Create the instance of class mglGraphPS with specified sizes.
+
+      -- C function: `HMGL' mgl_create_graph_idtf ()
+          Create the instance of class mglGraphIDTF.
+
+   * Function for windowed "grapher" creation:
+
+      -- C function: `HMGL' mgl_create_graph_glut (`int (*'draw`)(HMGL
+               gr, void *p)', `const char *'title, `void *'par)
+          Create the instance of class mglGraphGLUT and the connected
+          GLUT window. Only one GLUT window can be opened at once.
+          Argument description can be found in *note mglGraphAB class::.
+
+      -- C function: `HMGL' mgl_create_graph_fltk (`int (*'draw`)(HMGL
+               gr, void *p)', `const char *'title, `void *'par)
+          Create the instance of class mglGraphFLTK and the connected
+          FLTK window. Several windows can be opened at the same time.
+          However user must call `mgl_fltk_run()' function to start the
+          message handling cycle. Argument description can be found in
+          *note mglGraphAB class::. Note that DRAW can be `NULL' for
+          displaying static bitmaps only (no animation or slides).
+
+      -- C function: `HMGL' mgl_create_graph_qt (`int (*'draw`)(HMGL
+               gr, void *p)', `const char *'title, `void *'par)
+          Create the instance of class mglGraphQT and the connected Qt
+          window. Several windows can be opened at the same time.
+          However user must call `mgl_qt_run()' function to start the
+          message handling cycle. Arguments description can be found in
+          *note mglGraphAB class::. Note, that DRAW can be `NULL' for
+          displaying static bitmaps only (no animation or slides).
+
+      -- C function: `void' mgl_fltk_run ()
+          Start FLTK message handling cycle. A normal program will end
+          main() function with `return mgl_fltk_run();'.
+
+      -- C function: `void' mgl_fltk_thread ()
+          Start FLTK message handling cycle. In distinction to
+          `mgl_fltk_run()' the loop is started in a separate thread, so
+          that program continues immediately.
+
+      -- C function: `void' mgl_qt_run ()
+          Start Qt message handling cycle. A normal program will end
+          main() function with `return mgl_qt_run();'. Alternatively,
+          the user may setup Qt application by direct Qt function calls.
+
+      -- C function: `void' mgl_qt_thread ()
+          Start Qt message handling cycle. In distinction to
+          `mgl_qt_run()' the loop is started in separate thread so that
+          the program continues immediately.
+
+      -- C function: `void' mgl_update (`HMGL' graph)
+          Manually update contents of the window.
+
+      -- C function: `void' mgl_set_show_mouse_pos (`HMGL' graph, `int'
+               enable)
+          Switch to show or not in the widget the last mouse click
+          position.
+
+      -- C function: `void' mgl_get_last_mouse_pos (`HMGL' graph,
+               `float *'x, `float *'y, `float *'z)
+          Last position of mouse click.
+
+      -- C function: `void' mgl_calc_xyz (`HMGL' graph, `int' xs, `int'
+               ys, `float *'x, `float *'y, `float *'z)
+          Calculate 3D coordinate {x,y,z} for screen point {xs,ys}. At
+          this moment, it ignores perspective and transformation
+          formulas (curvilinear coordinates). The calculations are done
+          for the last used InPlot (*note Transformation matrix::).
+
+   * Functions for data creation:
+
+      -- C function: `HMDT' mgl_create_data ()
+          Create a simple instance of class mglData.
+
+      -- C function: `HMDT' mgl_create_data_size (`int' nx, `int' ny,
+               `int' nz)
+          Create an instance of class mglData with specified sizes.
+
+      -- C function: `HMDT' mgl_create_data_file (`const char *'fname)
+          Create an instance of class mglData and fill it by data from
+          text file.
+
+   * Each created object *must* be deleted after usage by functions:
+
+      -- C function: `void' mgl_delete_graph (`HMGL' graph)
+          Delete the instance of a class. Must be used after plotting
+          for every created graphical object.
+
+      -- C function: `void' mgl_delete_data (`HMDT' dat)
+          Delete the instance of a class. Must be used after the use of
+          every created data object.
+
+
+File: mathgl_en.info,  Node: Python interface,  Prev: C interface,  Up: Interfaces
+
+1.6.2 Python interface
+----------------------
+
+MathGL provides the interface to a set of languages via SWIG library.
+Some of these languages support classes. The typical example is Python
+- which is named in this chapter</samp>&rsquo;s title.
+
+   To use Python classes just execute `import mathgl'. The simplest
+example will be:
+import mathgl
+a=mathgl.mglGraph()
+a.Box()
+a.WritePNG(</samp>&rsquo;test.png</samp>&rsquo;)
+ Alternatively you can import all classes from `mathgl' module and
+easily access MathGL classes like this:
+from mathgl import *
+a=mglGraph()
+a.Box()
+a.WritePNG(</samp>&rsquo;test.png</samp>&rsquo;)
+ This becomes useful if you create many `mglData' objects, for example.
+
+   There are 2 classes in Python interface:
+   * `mglGraph' - provide practically the same functionality as C++
+     class `mglGraph' (*note MathGL core::). But it is not an abstract
+     class and it allows one to select at construction stage which
+     plotter (ZB or PS and so on) will be used.
+
+   * `mglData' - is exactly the same class as C++ `mglData' (*note
+     mglData class::), but an additional feature to access data values
+     is added. You can use a construct like this: `dat[i]=sth;' or
+     `sth=dat[i]' where flat representation of data is used (i.e., I
+     can be in range 0...nx*nx*nz-1). You can also import NumPy arrays
+     as input arguments: `mgl_dat = mglData(numpy_dat);'.
+
+     To use Python classes just execute `import mathgl'. The simplest
+     example will be: import mathgl
+     a=mathgl.mglGraph()
+     a.Box()
+     a.WritePNG(</samp>&rsquo;test.png</samp>&rsquo;)
+      Alternatively, you can import all the classes from `mathgl'
+     module and easily access MathGL classes: from mathgl import *
+     a=mglGraph()
+     a.Box()
+     a.WritePNG(</samp>&rsquo;test.png</samp>&rsquo;)
+      This is useful if you create many `mglData' objects, for example.
+
+     There are 2 classes in Python interface:
+        * `mglGraph' - provide practically the same functionality as
+          C++ class `mglGraph' (*note MathGL core::). But it is not an
+          abstract class and it allows one to select at the
+          construction stage which plotter (ZB or PS and so on) will be
+          used.
+
+        * `mglData' - is exactly the same class as C++ `mglData' (*note
+          mglData class::), but an additional feature to access data
+          values is added. You can use a construct like this:
+          `dat[i]=sth;' or `sth=dat[i]' where flat representation of
+          data is used (i.e., I can be in range 0...nx*nx*nz-1).
+
+     There is one main difference from C++ classes - Python class
+     `mglGraph' does not have variables (options). All the
+     corresponding features are moved to methods.  The core of MathGL
+     Python class is the *mglGraph* class. It contains a lot of
+     plotting functions for 1D, 2D and 3D plots. So most of the
+     sections describe its methods. Its constructor has the following
+     arguments:
+
+      -- Constructor on mglGraph (Python): `' mglGraph (`int' kind=`0',
+               `int' width=`600', `int' height=`400')
+          Create the instance of class mglGraph with specified sizes
+          WIDTH and HEIGHT. Parameter TYPE may have following values:
+          `0' - use `mglGraphZB' plotter (default), `1' - use
+          `mglGraphPS' plotter, `2' - use `mglGraphGL' plotter, `3' -
+          use `mglGraphIDTF' plotter.
+
+   There is one difference from C++ classes - Python class `mglGraph'
+does not have variables (options). All the corresponding features are
+moved to methods.  The core of MathGL Python class is the *mglGraph*
+class. It contains a lot of plotting functions for 1D, 2D and 3D plots.
+So most of the sections describe its methods. Its constructor has the
+following arguments:
+
+ -- Constructor on mglGraph (Python): `' mglGraph (`int' kind=`0',
+          `int' width=`600', `int' height=`400')
+     Create the instance of class mglGraph with specified sizes WIDTH
+     and HEIGHT. Parameter TYPE may have following values: `0' - use
+     `mglGraphZB' plotter (default), `1' - use `mglGraphPS' plotter,
+     `2' - use `mglGraphGL' plotter, `3' - use `mglGraphIDTF' plotter.
+
+
+File: mathgl_en.info,  Node: Thanks,  Prev: Interfaces,  Up: Overview
+
+1.7 Thanks
+==========
+
+   * My special thanks to Marina Balakina for the patience during the
+     writing of this library and for the help in documentation writing
+     and spelling.
+
+   * I</samp>&rsquo;m thankful to D. Kulagin and S.M. Plis for making
+     Debian packages.
+
+   * I</samp>&rsquo;m thankful to M. Vidassov for the help in handling
+     solid UTF-8 fonts.
+
+   * I</samp>&rsquo;m thankful to N. Troickiy and V. Lipatov for making
+     RPM packages.
+
+   * I</samp>&rsquo;m thankful to S. Skobelev, A. Korotkevich, V.
+     Onuchin, S.M. Plis, R. Kiselev, A. Ivanov, M. Vidiassov and V.
+     Lipatov for fruitful comments.
+
+
+File: mathgl_en.info,  Node: Examples,  Next: MathGL core,  Prev: Overview,  Up: Top
+
+2 MathGL examples
+*****************
+
+This chapter contain information about basic and advanced MathGL, hints
+and samples for all types of graphics. I recommend you read first 2
+sections one after another and at least look on "Hints" section. Also I
+recommend you to look at *note General concepts:: and *note FAQ::.
+Sample code for some of these examples can be found in
+`http://mathgl.sf.net/pictures.html' and in *note Samples::.
+
+* Menu:
+
+* Basic usage::
+* Advanced usage::
+* Data handling::
+* Data plotting::
+* C/Fortran interface::
+* MathGL and PyQt::
+* Hints::
+
+
+File: mathgl_en.info,  Node: Basic usage,  Next: Advanced usage,  Up: Examples
+
+2.1 Basic usage
+===============
+
+MathGL library can be used by several manners. Each has positive and
+negative sides:
+   * _The using of MathGL library features for creating graphical
+     window (requires FLTK or GLUT libraries)._
+
+     Positive side is the possibility to view the plot at once and to
+     modify it (rotate, zoom or switch on transparency or lighting) by
+     hand or by mouse. Negative sides are: the need  of X-terminal and
+     limitation consisting in working with the only one set of data at
+     a time.
+
+   * _Direct writing to file in bitmap or vector format without
+     creation of graphical window._
+
+     Positive aspects are: batch processing of similar data set (for
+     example, a set of resulting data files for different calculation
+     parameters), running from the console program (including the
+     cluster calculation), fast and automated drawing, saving pictures
+     for further analysis (or demonstration). Negative sides are: the
+     usage of the external program for picture viewing. Also, the data
+     plotting is non-visual. So, you have to imagine the picture (view
+     angles, lighting and so on) before the plotting. I recommend to
+     use graphical window for determining the optimal parameters of
+     plotting on the base of some typical data set. And later use these
+     parameters for batch processing in console program.
+
+   * _Drawing in memory with the following displaying by other
+     graphical program._
+
+     In this case the programmer has more freedom in selecting the
+     window libraries (not only FLTK or GLUT), in positioning and
+     surroundings control and so on. I recommend to use such way for
+     "settled" programs.
+
+   Let me consider the aforesaid in more detail.
+
+* Menu:
+
+* Using FLTK/GLUT window::
+* Drawing to file::
+* Drawing in memory::
+* Using QMathGL::
+
+
+File: mathgl_en.info,  Node: Using FLTK/GLUT window,  Next: Drawing to file,  Up: Basic usage
+
+2.1.1 Using FLTK/Qt/GLUT window
+-------------------------------
+
+The "interactive" way of drawing in MathGL consists in window creation
+with help of class `mglGraphFLTK', `mglGraphQT' or `mglGraphGLUT'
+(*note Widget classes::) and the following drawing in this window.
+There is a corresponding code:
+    int sample(mglGraph *gr, void *)
+    {
+        gr->Rotate(60,40);
+        gr->Box();
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mglGraphFLTK gr;
+        gr.Window(argc,argv,sample,"MathGL examples");
+        return mglFlRun();
+    }
+ Here function `sample' is defined. This function does all drawing.
+Other function `main' is entry point function for console program.
+Arguments of `main' should be transfered to `Window()' since it may
+contain OS specific information (*note mglGraphAB class::).
+
+   Alternatively you can create yours own class inherited from class
+`mglDraw' and re-implement the function `Draw()' in it:
+    class Foo : public mglDraw
+    {
+    public:
+        int Draw(mglGraph *gr);
+    } foo;
+    //-----------------------------------------------------
+    int Foo::Draw(mglGraph *gr)
+    {
+        gr->Rotate(60,40);
+        gr->Box();
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mglGraphFLTK gr;
+        gr.Window(argc,argv,foo,"MathGL examples");
+        return mglFlRun();
+    }
+
+   The similar code can be written for `mglGraphQT' or for
+`mglGraphGLUT' window (function `sample()' is the same):
+    int main(int argc,char **argv)
+    {
+        mglGraphGLUT gr;
+        gr.Window(argc,argv,sample,"MathGL examples");
+        return 0;
+    }
+
+   The rotation, shift, zooming, switching on/off transparency and
+lighting can be done with help of tool-buttons (for `mglGraphFLTK' and
+`mglGraphQT') or by hot-keys: `a', `d', `w', `s' for plot rotation, `r'
+and `f' switching on/off transparency and lighting. Press `x' for exit
+(or closing the window).
+
+   In this example function `sample' rotates axes (`Rotate()', *note
+Transformation matrix::) and draws the bounding box (`Box()'). Drawing
+procedure is separated in a function since it will be used on demand
+when window canvas needs to be redrawn. Widget classes (`mglGraphFLTK',
+`mglGraphGLUT' and so on) support a delayed drawing, when all plotting
+functions are called once at the beginning of writing to memory lists.
+Further program displays the saved lists faster. Resulting redrawing
+will be faster but it requires sufficient memory. Several lists
+(frames) can be displayed one after another (by pressing `,', `.') or
+run as cinema. To switch these feature on one needs to modify function
+`sample':
+    int sample1(mglGraph *gr, void *)
+    {
+        gr->NewFrame();             // the first frame
+        gr->Rotate(60,40);
+        gr->Box();
+        gr->EndFrame();             // end of the first frame
+        gr->NewFrame();             // the second frame
+        gr->Box();
+        gr->Axis("xy");
+        gr->EndFrame();             // end of the second frame
+        return GetNumFrame();       // returns the frame number
+    }
+ First, the function creates a frame `NewFrame()' for rotated axes and
+draws the bounding box. After the frame drawing the function
+`EndFrame()' *must be* called! The second frame contains the bounding
+box and axes `Axis("xy")' in the initial (unrotated) coordinates.
+Function `sample' returns the number of created frames `GetNumFrame()'.
+
+
+File: mathgl_en.info,  Node: Drawing to file,  Next: Drawing in memory,  Prev: Using FLTK/GLUT window,  Up: Basic usage
+
+2.1.2 Drawing to file
+---------------------
+
+Another way of using MathGL library is the direct picture writing to
+file. It is most usable for plot creating during calculation or for
+using of small programs (like Matlab or Scilab scripts) for visualizing
+repetitive sets of data. But the speed of drawing is much higher in
+comparison with a script language. There are two classes for exporting
+in file: class `mglGraphZB' saves in bitmap format (like PNG),
+`mglGraphPS' saves in vector PostScript format (*note Plotter
+classes::).
+
+   The following code produces a bitmap PNG picture:
+    int main(int ,char **)
+    {
+        mglGraphZB gr;
+        gr.Alpha(true);
+        gr.Light(true);             gr.Light(0,mglPoint(1,0,-1));
+        sample(&gr,NULL);           // The same drawing function.
+        gr.WritePNG("test.png");    // Don't forget to save the result!
+        return 0;
+    }
+ The only difference from the previous (using windows) variant is
+manual switching the transparency  `Alpha' and lightning `Light' on, if
+the plot requires it. The using of frames is not advisable since the
+whole image is prepared each time. If function `sample' contains frames
+then each frame will be saved to a separate file. In principle, one
+does not need to separate drawing functions in case of direct file
+writing in consequence of the single calling of this function for each
+picture. However, one may use the same drawing procedure to create a
+plot with changed parameters, to export in different file types, to
+emphasize the drawing code and so on. So, in future I will put the
+drawing in separate function.
+
+   The code for export in vector EPS file looks the same:
+    int main(int ,char **)
+    {
+        mglGraphPS gr;
+        gr.Light(true);             gr.Light(0,mglPoint(1,0,-1));
+        sample(&gr,NULL);           // The same drawing function.
+        gr.WriteEPS("test.eps");    // Don't forget to save the result!
+        return 0;
+    }
+ The differences from the using of bitmap picture are: applying of the
+other class `mglGraphPS', and writing to other format (function
+`WriteEPS()' instead of function `WritePNG()'). Moreover, there is no
+switching of the plot transparency `Alpha' since EPS format does not
+support it. Possibly I shall include transparency in future by program
+emulation.
+
+   Classes `mglGraphZB' and `mglGraphPS' have some merits and demerits.
+Class `mglGraphZB' draws beautiful surface with transparency, smoothed
+colors and lightning, but the output picture is _bitmap_, that leads to
+a bad scalability. On the contrary, class `mglGraphPS' creates vector
+file with excellent scalability. But file has large size (especially
+for surfaces), it does not support transparency and color smoothing.
+So, vector picture looks stylish but a bit angularly.
+
+
+File: mathgl_en.info,  Node: Drawing in memory,  Next: Using QMathGL,  Prev: Drawing to file,  Up: Basic usage
+
+2.1.3 Drawing in memory
+-----------------------
+
+The last way of MathGL using is the drawing in memory. Class
+`mglGraphZB' allows one  to create a bitmap picture in memory. Further
+this picture can be displayed in window by some window libraries (like
+wxWidgets, FLTK, Windows GDI and so on). For example, the code for
+drawing in wxWidget library looks like:
+    void MyForm::OnPaint(wxPaintEvent& event)
+    {
+        int w,h,x,y;
+        GetClientSize(&w,&h);   // size of the picture
+        mglGraphZB gr(w,h);
+
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&gr,NULL);
+
+        wxImage img(w,h,gr.GetBits(),true);
+        ToolBar->GetSize(&x,&y);    // gets a height of the toolbar if any
+        wxPaintDC dc(this);         // and draws it
+        dc.DrawBitmap(wxBitmap(img),0,y);
+    }
+ The drawing in other libraries is most the same.
+
+   For example, FLTK code will look like
+    void Fl_MyWidget::draw()
+    {
+        mglGraphZB gr(w(),h());
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&gr,NULL);
+        fl_draw_image(gr.GetBits(), x(), y(), gr.GetWidth(), gr.GetHeight(), 3);
+    }
+ Qt code will look like
+    void MyWidget::paintEvent(QPaintEvent *)
+    {
+        mglGraphZB gr(w(),h());
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&gr,NULL);
+
+        // Qt don't support RGB format as is. So, let convert it to BGRN.
+        const uchar *bb = gr.GetBits();
+        register long i, w=gr.GetWidth(), h=gr.GetHeight();
+        *buf = new uchar[4*w*h];
+        for(i=0;i<w*h;i++)
+        {
+            (*buf)[4*i]   = bb[3*i+2];
+            (*buf)[4*i+1] = bb[3*i+1];
+            (*buf)[4*i+2] = bb[3*i];
+            (*buf)[4*i+3] = 255;
+        }
+        QPixmap pic = QPixmap::fromImage(QImage(*buf, w, h, QImage::Format_RGB32));
+
+        QPainter paint;
+        paint.begin(this);  paint.drawPixmap(0,0,pic);  paint.end();
+        delete []buf;
+    }
+
+
+File: mathgl_en.info,  Node: Using QMathGL,  Prev: Drawing in memory,  Up: Basic usage
+
+2.1.4 Using QMathGL
+-------------------
+
+MathGL have several interface widgets for different widget libraries.
+There are QMathGL for Qt, Fl_MathGL for FLTK in MathGL v.1.8. These
+classes provide control which display MathGL graphics. Unfortunately
+there is no uniform interface for widget classes because all libraries
+have slightly different set of functions, features and so on. However
+the usage of MathGL widgets is rather simple. Let me show it on the
+example of QMathGL.
+
+   First of all you have to define the drawing function or inherit a
+class from `mglDraw' class. After it just create a window and setup
+QMathGL instance as any other Qt widget:
+    int main(int argc,char **argv)
+    {
+        QApplication a(argc,argv);
+        QMainWindow *Wnd = new QMainWindow;
+        Wnd->resize(650,480);  // for fill up the QMGL, menu and toolbars
+        Wnd->setWindowTitle(title);
+        // here I allow to scroll QMathGL -- the case
+        // then user want to prepare huge picture
+        QScrollArea *scroll = new QScrollArea(Wnd);
+
+        // Create and setup QMathGL
+        QMathGL *QMGL = new QMathGL(Wnd);
+        QMGL->setPopup(popup); // if you want to setup popup menu for QMGL
+        QMGL->setDraw(sample, NULL);
+        // or use QMGL->setDraw(foo); for instance of class Foo:public mglDraw
+        QMGL->update();
+
+        // continue other setup (menu, toolbar and so on)
+        makeMenu();
+        scroll->setWidget(QMGL);
+        Wnd->setCentralWidget(scroll);
+        Wnd->show();
+        return a.exec();
+    }
+
+
+File: mathgl_en.info,  Node: Advanced usage,  Next: Data handling,  Prev: Basic usage,  Up: Examples
+
+2.2 Advanced usage
+==================
+
+Now I show several non-obvious features of MathGL: several subplots in
+a single picture, curvilinear coordinates, text printing and so on.
+Generally you may miss this section at first reading, but I don't
+recommend it.
+
+* Menu:
+
+* Subplots::
+* Axis and grids::
+* Curvilinear coordinates::
+* Text printing example::
+* Animation::
+
+
+File: mathgl_en.info,  Node: Subplots,  Next: Axis and grids,  Up: Advanced usage
+
+2.2.1 Subplots
+--------------
+
+Let me demonstrate possibilities of axes transformation. MathGL has the
+following functions: `SubPlot', `InPlot', `Aspect' and `Rotate' (*note
+Transformation matrix::). The order of their calling is strictly
+determined. First, one changes the position of axes in image area
+(functions `SubPlot' and `InPlot'). After that one may rotate the plot
+(function `Rotate'). Finally, one may change aspects of axes (function
+`Aspect'). The following code illustrates the aforesaid it:
+    int sample(mglGraph *gr, void *)
+    {
+        gr->SubPlot(2,2,0);
+        gr->Box();
+        gr->Puts(mglPoint(-1,1.1,1),"Just box","rL");
+        gr->InPlot(0.2,0.5,0.7,1);
+        gr->Box();
+        gr->Puts(mglPoint(0,1.2,1),"InPlot example");
+
+        gr->SubPlot(2,2,1);
+        gr->Rotate(60,40);
+        gr->Aspect(1,1,1);
+        gr->Box();
+        gr->Puts(mglPoint(1,1,1.5),"Rotate only","rR");
+
+        gr->SubPlot(2,2,2);
+        gr->Rotate(60,40);
+        gr->Aspect(1,1,2);
+        gr->Box();
+        gr->Puts(mglPoint(0,0,2),"Aspect and Rotate");
+
+        gr->SubPlot(2,2,3);
+        gr->Rotate(60,40);
+        gr->Aspect(1,2,2);
+        gr->Box();
+        gr->Puts(mglPoint(0,0,1.5),"Aspect in other direction");
+        return 0;
+    }
+ Here I used function `Puts' for printing the text in arbitrary
+position of picture (*note Text printing::). Text coordinates and size
+are connected with axes. However, text coordinates may be everywhere,
+including the outside the bounding box. I shall show its features later
+in *Note Text printing example::.
+
+ [image src="../png/sample1.png" ]
+
+Example of several subplots on the single picture.
+
+
+File: mathgl_en.info,  Node: Axis and grids,  Next: Curvilinear coordinates,  Prev: Subplots,  Up: Advanced usage
+
+2.2.2 Axis and grids
+--------------------
+
+MathGL library can draw not only the bounding box but also the axes,
+grids, labels and so on. The limits of axes and their origin (the point
+of intersection) are determined by function `Axis()'. Also you can use
+`XRange(), YRange(), ZRange()' functions (*note Ranges (bounding
+box)::). Ticks on axis are specified by function `SetTicks' (*note
+Ticks::). First argument the direction for each change will be applied.
+Second argument gives the step between ticks (if positive) or gives the
+number of ticks on the axis (if negative) or set to use logarithmic
+ticks (if zero). Third argument gives numbers of sub-ticks between
+ticks (default is zero). Last argument define the initial ticks
+position.
+
+   Function `Axis' draws axes. Its textual string shows in which
+directions the axis or axes will be drawn (by default `"xyz"', function
+draws axes in all directions). Function `Grid' draws grid
+perpendicularly to specified directions. Example of axes and grid
+drawing is:
+    int sample(mglGraph *gr, void *)
+    {
+        gr->SubPlot(2,2,0);
+        gr->SetTicks('x', 0.4, 3);  // sets tick step to 0.5
+        gr->SetTicks('y', 0.4, 3);  // and draws 3 subticks
+        gr->Box();                  // should be after the ticks change
+        gr->Axis("xy");
+        gr->Grid();
+        gr->Puts(mglPoint(0,1.3,1),"Axis and grid");
+
+        gr->SetTicks('x');  gr->SetTicks('y'); // restore back
+        gr->Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(0,0,0));
+
+        gr->SubPlot(2,2,1);
+        gr->Rotate(60,40);
+        gr->Axis();
+        gr->Label('x',"x");
+        gr->Label('y',"y");
+        gr->Label('z',"z");
+        gr->Puts(mglPoint(0,0,1.5),"Axis and labels");
+
+        gr->SubPlot(2,2,2);
+        gr->Rotate(60,40);
+        gr->SetTicks('x', 0.2); gr->SetTicks('y', 0.2);
+        gr->SetTicks('z', 0.2); // too low step of ticks
+        gr->Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,-1,-1));
+        gr->Axis();
+        gr->Grid();
+        gr->Puts(mglPoint(0,0,1.5),"Shift origin and add grid");
+        gr->Puts(mglPoint(0,0,1.2),"(note, too many ticks)");
+
+        gr->SubPlot(2,2,3);
+        gr->Rotate(60,40);
+        gr->SetTicks('x', -6);  // decrease the number of ticks
+        gr->SetTicks('y', -6);
+        gr->Axis("yz");
+        gr->Label('y',"Y axis",0);
+        gr->Label('z',"Z axis",0);
+        gr->Puts(mglPoint(0,0,1.5),"Remove X axis, and");
+        gr->Puts(mglPoint(0,0,1.2),"decrease number of ticks");
+        return 0;
+    }
+
+   This example shows the importance of the correct choosing of the
+number of ticks on axis. If tick step is too small then its text may
+overlap and becomes unreadable. This code has the example of `Label'
+function. It draws label for axis in specified direction. The text
+position on axis is specified by third argument of `Label' function. If
+it is positive then then text is drawn near the axis maximum, if
+negative then the same takes place near the minimum of axis, if zero -
+then at the center of axis.
+
+ [image src="../png/sample2.png" ]
+
+Example of setting up axis range and axis ticks.
+
+
+File: mathgl_en.info,  Node: Curvilinear coordinates,  Next: Text printing example,  Prev: Axis and grids,  Up: Advanced usage
+
+2.2.3 Curvilinear coordinates
+-----------------------------
+
+Now let use curvilinear coordinates. In difference from other systems
+of plot creation, MathGL uses textual formulas for connection of the
+old (data) and new (output) coordinates. This allows one to plot in
+arbitrary coordinates. The following code plots the line Y=0, Z=0 in
+Cartesian, polar, parabolic and spiral coordinates:
+    int sample(mglGraph *gr, void *)
+    {
+        mglData x(50),y(50),z(50);
+        y.Fill(0.5,0.5);
+        x.Fill(-1,1);           // creates data arrays
+
+        gr->Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,1,-1));
+        gr->dz = 0.5;           // sets tick step to 0.5
+
+        gr->SubPlot(2,2,0);
+        gr->Rotate(60,40);
+        gr->Plot(x,y,z,"r2");
+        gr->Axis(); gr->Grid();
+        gr->Puts(mglPoint(0,1.3,1),"Cartesian");
+
+        gr->SubPlot(2,2,1);
+        gr->SetFunc("y*sin(pi*x)","y*cos(pi*x)",0);
+        gr->Rotate(60,40);
+        gr->Plot(x,y,z,"r2");
+        gr->Axis(); gr->Grid();
+        gr->Puts(mglPoint(0,1.3,1),"Cylindrical");
+
+        gr->SubPlot(2,2,2);
+        gr->Rotate(60,40);
+        gr->SetFunc("2*y*x","y*y - x*x",0);
+        gr->Plot(x,y,z,"r2");
+        gr->Axis(); gr->Grid();
+        gr->Puts(mglPoint(0,1.3,1),"Parabolic");
+
+        gr->SubPlot(2,2,3);
+        gr->Rotate(60,40);
+        gr->SetFunc("y*sin(pi*x)","y*cos(pi*x)","x+z");
+        gr->Plot(x,y,z,"r2");
+        gr->Axis(); gr->Grid();
+        gr->Puts(mglPoint(0,1.3,1),"Spiral");
+        return 0;
+    }
+
+ [image src="../png/sample3.png" ]
+
+Example of curvilinear coordinates
+
+
+File: mathgl_en.info,  Node: Text printing example,  Next: Animation,  Prev: Curvilinear coordinates,  Up: Advanced usage
+
+2.2.4 Text printing example
+---------------------------
+
+MathGL prints text by vector font. There are functions for manual
+specifying of text position (like `Puts') and for its automatic
+selection (like `Label', `Legend' and so on). MathGL prints text always
+in specified position even if it lies outside the bounding box. The
+default size of font is specified by variables FONTSIZE (*note Font
+settings::). However, the actual size of output string depends on
+position of axes (depends on functions `SubPlot', `InPlot'). The
+switching of the font style (italic, bold, wire and so on) can be done
+for the whole string (by function parameter) or inside the string. By
+default MathGL parses TeX-like commands for symbols and indexes (see
+*note Font styles::). Example of MathGL font drawing is:
+    int sample(mglGraph *gr, void *)
+    {
+        setlocale(LC_CTYPE, "ru_RU.cp1251");
+        gr->Puts(mglPoint(0,1),"Text can be in ASCII and in Unicode");
+        gr->Puts(mglPoint(0,0.6),"It can be \\wire{wire}, \\big{big} "
+            "or #r{colored}");
+        gr->Puts(mglPoint(0,0.2),"One can change style in string: "
+            "\\b{bold}, \\i{italic, \\b{both}}");
+        gr->Puts(mglPoint(0,-0.2),"Easy to \\a{overline} or "
+            "\\u{underline}");
+        gr->Puts(mglPoint(0,-0.6),"Easy to change indexes "
+            "^{up} _{down} @{center}");
+        gr->Puts(mglPoint(0,-1),"It parse TeX: \\int \\alpha \\cdot "
+            "\\sqrt3{sin(\\pi x)^2 + \\gamma_{i_k}} dx");
+        return 0;
+    }
+
+ [image src="../png/sample4.png" ]
+
+Example of text printing with different font effects
+
+   Another example demonstrate the features of TeX formula parsing.
+    int sample(mglGraph *gr, void *)
+    {
+        gr->Puts(mglPoint(0), "\\sqrt{\\frac{\\alpha^{\\gamma^2}+"
+            "\\overset 1{\\big\\infty}}{\\sqrt3{2+b}}}", 0, -4);
+        return 0;
+    }
+
+ [image src="../png/samplee.png" ]
+
+Example of TeX formula parsing
+
+   Finally you can change font during execution (this work well for
+mglGraphZB class only).
+    int sample(mglGraph *gr, void *)
+    {
+        float h=1.1, d=0.25;
+        gr->LoadFont("STIX");       gr->Puts(mglPoint(0,h), "default font (STIX)");
+        gr->LoadFont("adventor");   gr->Puts(mglPoint(0,h-d), "adventor font");
+        gr->LoadFont("bonum");      gr->Puts(mglPoint(0,h-2*d), "bonum font");
+        gr->LoadFont("chorus");     gr->Puts(mglPoint(0,h-3*d), "chorus font");
+        gr->LoadFont("cursor");     gr->Puts(mglPoint(0,h-4*d), "cursor font");
+        gr->LoadFont("heros");      gr->Puts(mglPoint(0,h-5*d), "heros font");
+        gr->LoadFont("heroscn");    gr->Puts(mglPoint(0,h-6*d), "heroscn font");
+        gr->LoadFont("pagella");    gr->Puts(mglPoint(0,h-7*d), "pagella font");
+        gr->LoadFont("schola");     gr->Puts(mglPoint(0,h-8*d), "schola font");
+        gr->LoadFont("termes");     gr->Puts(mglPoint(0,h-9*d), "termes font");
+    }
+
+ [image src="../png/fonts.png" ]
+
+Example of font face changing.
+
+
+File: mathgl_en.info,  Node: Animation,  Prev: Text printing example,  Up: Advanced usage
+
+2.2.5 Animation
+---------------
+
+You can make animation by several methods in MathGL: by export in
+animated GIF, or by save each frame in separate file (usually JPEG) and
+convert these files into movie. Let me show both methods.
+
+   The simplest methods is making animated GIF. There are 3 steps: (1)
+open GIF file by `StartGIF()' function; (2) create the frames by
+calling `NewFrame()' before and `EndFrame()' after plotting; (3) close
+GIF by `CloseGIF()' function. So the simplest code for "running"
+sinusoid will look like this:
+    int sample(mglGraph *gr, void *)
+    {
+        mglData dat(100);
+        char str[32];
+        gr->StartGIF("sample.gif");
+        for(int i=0;i<100;i++)
+        {
+            gr->NewFrame();     // start frame
+            gr->Box();          // some plotting
+            sprintf(str,"sin(pi*x+%g*pi)",0.02*i);
+            dat.Modify(str);
+            gr->Plot(dat,"b");
+            gr->EndFrame();     // end frame
+        }
+        gr->CloseGIF();
+        return 0;
+    }
+
+   The second way is saving each frame in separate file (usually JPEG)
+and later make the movie from them. MathGL have special function for
+saving frames - it is `WriteFrame()'. This function save each frame
+with automatic name `frame0001.jpg, frame0002.jpg' and so on. Here
+prefix `frame' is defined by PLOTID variable of `mglGraph' class. So
+the similar code will look like this:
+    int sample(mglGraph *gr, void *)
+    {
+        mglData dat(100);
+        char str[32];
+        for(int i=0;i<100;i++)
+        {
+            gr->NewFrame();     // start frame
+            gr->Box();          // some plotting
+            sprintf(str,"sin(pi*x+%g*pi)",0.02*i);
+            dat.Modify(str);
+            gr->Plot(dat,"b");
+            gr->EndFrame();     // end frame
+            gr->WriteFrame();   // save frame
+        }
+        return 0;
+    }
+
+   Created files can be converted to movie by help of a lot of
+programs. For example, you can use ImageMagic (command `convert
+frame*.jpg movie.mpg'), MPEG library, GIMP and so on.
+
+   Finally, you can use `mgl2gif' tool for doing the same with MGL
+scripts (*note Utilities::).
+
+
+File: mathgl_en.info,  Node: Data handling,  Next: Data plotting,  Prev: Advanced usage,  Up: Examples
+
+2.3 Data handling
+=================
+
+Class `mglData' contains all functions for the data handling in MathGL
+(*note mglData class::). There are several matters why I use class
+`mglData' but not a single array: it does not depend on type of data
+(float or double), sizes of data arrays are kept with data, memory
+working is simpler and safer.
+
+* Menu:
+
+* Array creation::
+* Data changing::
+
+
+File: mathgl_en.info,  Node: Array creation,  Next: Data changing,  Up: Data handling
+
+2.3.1 Array creation
+--------------------
+
+One can put the data in `mglData' instance by several ways. Let us do
+it for sinus function:
+   * one can create external array, fill it and put to `mglData'
+     variable     double *a = new double[50];
+         for(int i=0;i<50;i++)   a[i] = sin(M_PI*i/49.);
+
+         mglData y;
+         y.Set(a,50);
+
+   * another way is to create `mglData' instance of the desired size
+     and then to work directly with data in this variable     mglData y(50);
+         for(int i=0;i<50;i++)   y.a[i] = sin(M_PI*i/49.);
+
+   * next way is to fill the data in `mglData' instance by textual
+     formula with the help of `Modify()' function     mglData y(50);
+         y.Modify("sin(pi*x)");
+
+   * or one may fill the array in some interval and modify it later     mglData y(50);
+         y.Fill(0,M_PI);
+         y.Modify("sin(u)");
+
+   * finally it can be loaded from file     FILE *fp=fopen("sin.dat","wt");   // create file first
+         for(int i=0;i<50;i++)   fprintf(fp,"%g\n",sin(M_PI*i/49.));
+         fclose(fp);
+
+         mglData y("sin.dat");             // load it
+
+   * at this one can read only part of data     FILE *fp-fopen("sin.dat","wt");   // create large file first
+         for(int i=0;i<70;i++)   fprintf(fp,"%g\n",sin(M_PI*i/49.));
+         fclose(fp);
+
+         mglData y;
+         y.Read("sin.dat",50);             // load it
+
+   Creation of 2d- and 3d-arrays is mostly the same. But one should
+keep in mind that class `mglData' uses flat data representation. For
+example, matrix 30*40 is presented as flat (1d-) array with length
+30*40=1200 (nx=30, ny=40). The element with indexes {i,j} is a[i+nx*j].
+So for 2d array we have:
+    mglData z(30,40);
+    for(int i=0;i<30;i++)   for(int j=0;j<40;j++)
+        z.a[i+30*j] = sin(M_PI*i/29.)*sin(M_PI*j/39.);
+ or by using `Modify()' function
+    mglData z(30,40);
+    z.Modify("sin(pi*x)*cos(pi*y)");
+
+   The only non-obvious thing here is using multidimensional arrays in
+C/C++, i.e. arrays defined like `float dat[40][30];'. Since, formaly
+this arrays element `dat[i]' can address the memory in arbitrary place
+you should use the proper function to convert such arrays to `mglData'
+object. For C++ this is functions like `mglData::Set(float **dat, int
+N1, int N2);'. For C this is functions like `mgl_data_set_float2(HMDT
+d, const float **dat, int N1, int N2);'. At this, you should keep in
+mind that `nx=N2' and `ny=N1' after conversion.
+
+
+File: mathgl_en.info,  Node: Data changing,  Prev: Array creation,  Up: Data handling
+
+2.3.2 Data changing
+-------------------
+
+MathGL has functions for data processing: differentiating, integrating,
+smoothing and so on (for more detail, *note mglData class::). Let us
+consider some examples. The simplest ones are integration and
+differentiation. The direction in which operation will be performed is
+specified by textual string, which may contain symbols `x', `y' or `z'.
+For example, the call of `Diff("x")' will differentiate data along `x'
+direction; the call of `Integral("xy")' perform the double integration
+of data along `x' and `y' directions; the call of `Diff2("xyz")' will
+apply 3d Laplace operator to data and so on. Example of this operations
+on 2d array a=x*y is presented in code:
+    int sample(mglGraph *gr, void *)
+    {
+        mglData a(30,40);   a.Modify("x*y");
+        gr->Axis(mglPoint(0,0,0),mglPoint(1,1,1));
+        gr->SubPlot(2,2,0); gr->Rotate(60,40);
+        gr->Surf(a);        gr->Box();
+        gr->Puts(mglPoint(0.7,1,1.2),"a(x,y)");
+        gr->SubPlot(2,2,1); gr->Rotate(60,40);
+        a.Diff("x");        gr->Surf(a);      gr->Box();
+        gr->Puts(mglPoint(0.7,1,1.2),"da/dx");
+        gr->SubPlot(2,2,2); gr->Rotate(60,40);
+        a.Integral("xy");   gr->Surf(a);      gr->Box();
+        gr->Puts(mglPoint(0.7,1,1.2),"\\int da/dx dxdy");
+        gr->SubPlot(2,2,3); gr->Rotate(60,40);
+        a.Diff2("y");       gr->Surf(a);      gr->Box();
+        gr->Puts(mglPoint(0.7,1,1.2),"\\int {d^2}a/dxdy dx");
+        return 0;
+    }
+
+ [image src="../png/sample6.png" ]
+
+Example of data differentiation and integration
+
+   Data smoothing (function `Smooth()') is more interesting and
+important. This function has 2 main arguments: type of smoothing and
+its direction. Now 4 methods are supported: `SMOOTH_NONE' does nothing
+for delta=0 or approaches data to zero with the step delta,
+`SMOOTH_LINE_3' linear averaging by 3 points, `SMOOTH_LINE_5' linear
+averaging by 5 points, `SMOOTH_QUAD_5' quadratic averaging by 5 points.
+Let me demonstrate it for 1d case:
+    int sample(mglGraph *gr, void *)
+    {
+        mglData y0(30),y1,y2,y3;
+        y0.Modify("0.4*sin(2*pi*x)+0.3*cos(3*pi*x)-0.4*sin(4*pi*x)+0.2*rnd");
+
+        y1=y0;  y1.Smooth(SMOOTH_LINE_3);
+        y2=y0;  y2.Smooth(SMOOTH_LINE_5);
+        y3=y0;  y3.Smooth(SMOOTH_QUAD_5);
+
+        gr->Plot(y0,"k");   gr->AddLegend("NONE","k");
+        gr->Plot(y1,"r");   gr->AddLegend("LINE_3","r");
+        gr->Plot(y2,"g");   gr->AddLegend("LINE_5","g");
+        gr->Plot(y3,"b");   gr->AddLegend("QUAD_5","b");
+        gr->Legend();       gr->Box();
+        return 0;
+    }
+
+ [image src="../png/sample7.png" ]
+
+Example of data smoothing
+
+   Finally one can create new data arrays on base of the existing one:
+extract slice, row or column of data (`SubData()'), summarize along
+some of direction(s) (`Sum()'), find distribution of data elements
+(`Hist()'). Note, that all these functions are not thread-safe because
+they use static internal variable for output array. In particular, the
+using of several of them in arguments of the same function will lead to
+unpredictable result.
+
+
+File: mathgl_en.info,  Node: Data plotting,  Next: C/Fortran interface,  Prev: Data handling,  Up: Examples
+
+2.4 Data plotting
+=================
+
+Let me now show how to plot the data. MathGL generally has 2 types of
+plotting functions. Simple variant requires a single data array for
+plotting, other data (coordinates) are considered uniformly distributed
+in interval MIN*MAX. Second variant requires data arrays for all
+coordinates. It allows one to plot rather complex multivalent curves
+and surfaces (in case of parametric dependencies). Argument setting to
+default values allows one to plot data in standard form. Manual
+arguments setting gives possibility for fine tuning of colors,
+positions and view of graphics. Note, that the call of drawing function
+adds something to picture but does not clear the previous plots (as it
+does in Matlab). Another difference from Matlab is that all setup (like
+transparency, lightning, axis borders and so on) must be specified
+*before* plotting functions.
+
+* Menu:
+
+* Plots for 1D data::
+* Plots for 2D data::
+* Plots for 3D data::
+* Surface transparency::
+
+
+File: mathgl_en.info,  Node: Plots for 1D data,  Next: Plots for 2D data,  Up: Data plotting
+
+2.4.1 Plots for 1D data
+-----------------------
+
+Term "1D data" means that data depend on single index (parameter) like
+curve in parametric form {x(i),y(i),z(i)}, i=1...n. There are 5
+generally different types of data representations: simple line plot,
+line plot with filling under it, stairs plot, bar plot and vertical
+lines (*note 1D plotting::). Each type of plotting has similar
+interface. There are 3D version and two 2D versions. One of last
+requires single array. The parameters of line and marks (*note Line
+styles::) are specified by the string argument. If the string parameter
+is `NULL' then solid line with color from palette is used (*note
+Palette and colors::).
+
+   Below I shall show the features of 1D plotting on base of `Plot()'
+function (*note Plot::). Let us start from sinus plot:
+    int sample(mglGraph *gr, void *)
+    {
+        mglData y0(50); 	y0.Modify("sin(pi*(2*x-1))");
+        gr->SubPlot(2,2,0);
+        gr->Plot(y0);   	gr->Box();
+ Style of line is not specified in `Plot()' function. So MathGL uses
+the solid line with first color of palette (this is blue). Next subplot
+shows array Y1 with 2 rows:
+        gr->SubPlot(2,2,1);
+        mglData y1(50,2);
+        y1.Modify("sin(pi*2*x-pi)");
+        y1.Modify("cos(pi*2*x-pi)/2",1);
+        gr->Plot(y1);   	gr->Box();
+ As previously I did not specify the style of lines. As a result,
+MathGL again uses solid line with next colors in palette (there are
+green and red). Now let us plot a circle on the same subplot. The
+circle is parametric curve x=cos(\pi t), y=sin(\pi t). I will set the
+color of the circle (dark yellow, `Y') and put marks `+' at point
+position:
+        mglData x(50);  	x.Modify("cos(pi*2*x-pi)");
+        gr->Plot(x,y0,"Y+");
+ Note that solid line is used because I did not specify the type of
+line. The same picture can be achieved by `Plot2()' function. Let us
+draw ellipse by orange dash line:
+        gr->Plot2(y1,"q|");
+
+   Drawing in 3D space is mostly the same. Let us draw spiral with
+default line style. Now its color is 4-th color from palette (this is
+cyan):
+        gr->SubPlot(2,2,2);	gr->Rotate(60,40);
+        mglData z(50);  	z.Modify("2*x-1");
+        gr->Plot(x,y0,z);	gr->Box();
+ Function `Plot3()' does 3D curve plot but for single array. Use it to
+put circle marks on the previous plot:
+        mglData y2(10,3);	y2.Modify("cos(pi*(2*x-1+y))");
+        y2.Modify("2*x-1",2);
+        gr->Plot3(y2,"bo ");
+ Note that line style is empty ` ' here. Usage of other 1D plotting
+functions looks similar:
+        gr->SubPlot(2,2,3);	gr->Rotate(60,40);
+        gr->Bars(x,y0,z,"r");	gr->Box();
+        return 0;
+    }
+
+ [image src="../png/sample8.png" ]
+
+Example of 1D data plot
+
+
+File: mathgl_en.info,  Node: Plots for 2D data,  Next: Plots for 3D data,  Prev: Plots for 1D data,  Up: Data plotting
+
+2.4.2 Plots for 2D data
+-----------------------
+
+Surfaces `Surf()' and other 2D plots (*note 2D plotting::) are drown
+the same simpler as 1D one. The difference is that the string parameter
+specifies not by line style but by the color scheme of the plot (*note
+Color scheme::). Here I draw attention on 4 most interesting color
+schemes. There is gray scheme where color is changed from black to
+white (string `kw') or from white to black (string `wk'). Another
+scheme is useful for accentuation of negative (by blue color) and
+positive (by red color) regions on plot (string `"BbwrR"'). Last one is
+the popular "jet" scheme (string `"BbcyrR"').
+
+   Now I shall show the example of a surface drawing. At first let us
+switch lightning on
+    int sample(mglGraph *gr, void *)
+    {
+        gr->Light(true);	gr->Light(0,mglPoint(0,0,1));
+ and draw the surface, considering coordinates x,y to be uniformly
+distributed in interval MIN*MAX
+        mglData a0(50,40);
+        a0.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+        gr->SubPlot(2,2,0);	gr->Rotate(60,40);
+        gr->Surf(a0);		gr->Box();
+ Color scheme was not specified. So previous color scheme is used. In
+this case it is default color scheme ("jet") for the first plot. Next
+example is a sphere. The sphere is parametrically specified surface:
+        mglData x(50,40),y(50,40),z(50,40);
+        x.Modify("0.8*sin(2*pi*x)*sin(pi*y)");
+        y.Modify("0.8*cos(2*pi*x)*sin(pi*y)");
+        z.Modify("0.8*cos(pi*y)");
+        gr->SubPlot(2,2,1);	gr->Rotate(60,40);
+        gr->Surf(x,y,z,"BbwrR");gr->Box();
+ I set color scheme to `"BbwrR"' that corresponds to red top and blue
+bottom of the sphere.
+
+   Surfaces will be plotted for each of slice of the data if NZ>1. Next
+example draws surfaces for data arrays with NZ=3:
+        mglData a1(50,40,3);
+        a1.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+        a1.Modify("0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))",1);
+        a1.Modify("0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))",2);
+        gr->SubPlot(2,2,2);	gr->Rotate(60,40);
+        gr->Alpha(true);
+        gr->Surf(a1);		gr->Box();
+ Note, that it may entail a confusion. However, if one will use density
+plot then the picture will look better:
+        gr->SubPlot(2,2,3);	gr->Rotate(60,40);
+        gr->Dens(a1);		gr->Box();
+        return 0;
+    }
+ Note, that the previous color scheme is used in last plots because
+there are no direct specification of the one.
+
+ [image src="../png/sample9.png" ]
+
+Example of surface plot for 2D data
+
+   Drawing of other 2D plots is analogous. The only peculiarity is the
+usage of flag `#'. By default this flag switches on the drawing of a
+grid on plot (`Grid()' or `Mesh()' for plots in plain or in volume).
+However, for isosurfaces (including surfaces of rotation `Axial()')
+this flag switches the  face drawing off. Figure becomes wired. The
+following code gives example of flag `#' using (compare with normal
+function drawing as in its description):
+    int sample(mglGraph *gr, void *)
+    {
+        gr->Alpha(true);	gr->Light(true);	gr->Light(0,mglPoint(0,0,1));
+        mglData a(30,20);
+        a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+
+        gr->SubPlot(2,2,0);	gr->Rotate(40,60);
+        gr->Surf(a,"BbcyrR#");		gr->Box();
+        gr->SubPlot(2,2,1);	gr->Rotate(40,60);
+        gr->Dens(a,"BbcyrR#");		gr->Box();
+        gr->SubPlot(2,2,2);	gr->Rotate(40,60);
+        gr->Cont(a,"BbcyrR#");		gr->Box();
+        gr->SubPlot(2,2,3);	gr->Rotate(40,60);
+        gr->Axial(a,"BbcyrR#");		gr->Box();
+        return 0;
+    }
+
+ [image src="../png/samplea.png" ]
+
+Example of 2D data plot with color scheme contained `#' symbol
+
+
+File: mathgl_en.info,  Node: Plots for 3D data,  Next: Surface transparency,  Prev: Plots for 2D data,  Up: Data plotting
+
+2.4.3 Plots for 3D data
+-----------------------
+
+Drawing procedures for 3D plot looks similarly to 1D and 2D plots
+described above. There are 3 general types of 3D plots (*note 3D
+plotting::): (i) plots on slices or on projections, (ii) isosurfaces,
+(iii) cloud-like plots. Plots on slice are clear enough - one specifies
+a slice (as its index or as coordinate value) and MathGL draws contour
+lines or density plot on slice plane. Isosurface gives more
+information. Isosurface is 3D analogue of the contour line `Cont()'. It
+shows the region where data array values exceed specified isosurface
+level. Plot becomes more informative if one adds transparency,
+lightning or sets color scheme depending on coordinates. Generalization
+of isosurface is the cloud-like plot. For this plot the darker color
+and less transparent regions correspond to higher values of data.
+Contrary, the regions with low values are transparent. For plotting of
+the phase of fields (or beams or pulses) one can use isosurface which
+transparency depends on the other data array (see function `Surf3A()').
+As example of 3D data plots let us draw the Gaussian beam diffraction
+in space. Beam propagates along X axis:
+    int sample(mglGraph *gr, void *)
+    {
+        gr->Alpha(true);    gr->Light(true);
+        gr->Light(0,mglPoint(0,0,1));
+        mglData a(30,30,30),b(30,30,30);
+        a.Modify("exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))");
+        b.Modify("16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)");
+        gr->CAxis(0,1);
+
+        gr->SubPlot(2,2,0); gr->Rotate(40,60);
+        gr->Surf3(a,"wgk"); gr->Box();
+        gr->SubPlot(2,2,1); gr->Rotate(40,60);
+        gr->DensA(a);       gr->Box();  gr->Axis();
+        gr->SubPlot(2,2,2); gr->Rotate(40,60);
+        gr->CloudQ(a);      gr->Box();
+        gr->SubPlot(2,2,3); gr->Rotate(40,60);
+        gr->Surf3A(b,a,"q");gr->Box();
+        return 0;
+    }
+
+ [image src="../png/sampleb.png" ]
+
+Example of Gaussian beam diffraction (3D data)
+
+
+File: mathgl_en.info,  Node: Surface transparency,  Prev: Plots for 3D data,  Up: Data plotting
+
+2.4.4 Surface transparency
+--------------------------
+
+MathGL library has advanced features for setting and handling the
+surface transparency. The simplest way to add transparency is the using
+of function `Alpha()'. As a result, all further surfaces (and
+isosurfaces, density plots and so on) become transparent. However,
+their  look can be additionally improved.
+
+   First, the selected surface will be non-transparent if one sets the
+flag `Transparent' before the surface drawing and sets it off after the
+drawing.
+
+   Second, the value of transparency can be different from surface to
+surface. To do it just change the value of `AlphaDef' before the
+drawing of the selected surface. If its value is close to 0 then the
+surface becomes more and more transparent. Contrary, if its value is
+close to 1 then the surface becomes practically non-transparent. This
+is some analogue of `Transparent=true'.
+
+   Third feature is the changing of the way how the light goes through
+overlapped surfaces. The variable `TranspType' defines it. By default
+the usual transparency is used (`TranspType=0') - surfaces below is
+less visible than the upper ones. A "glass-like" transparency
+(`TranspType=1') has a different look when the surface just decreases
+the background light (the surfaces are commutable in this case).
+
+   A "neon-like" transparency (`TranspType=2') has more interesting
+look. In this case a surface is the light source (like a lamp on the
+dark background) and just adds some intensity to the color. At this,
+the library sets automatically the black color for the background and
+changes the default line color to white.
+
+   As example I shall show the variant of plot from *note Plots for 2D
+data:: (grid drawing is disabled) for different types of transparency.
+ [image src="../png/type0.png" ]
+
+Example of `TranspType=0'.
+
+ [image src="../png/type1.png" ]
+
+Example of `TranspType=1'.
+
+ [image src="../png/type2.png" ]
+
+Example of `TranspType=2'.
+
+
+File: mathgl_en.info,  Node: C/Fortran interface,  Next: MathGL and PyQt,  Prev: Data plotting,  Up: Examples
+
+2.5 C/Fortran interface
+=======================
+
+The usage of pure C or Fortran or any similar interfaces (*note C
+interface::) is practically identical to classes usage. But there are
+some differences. C functions must have argument HMGL (for graphics)
+and/or HMDT (for data arrays) which specifies the object for drawing or
+manipulating (changing). Fortran users may regard these variables as
+integer. So, firstly the user has to create this object by function
+mgl_create_*() and has to delete it after the using by function
+mgl_delete_*().
+
+   Also, all arguments of C function have to be defined. So there are
+several functions with practically identical names doing practically
+the same. But some of them have simplified interface for the quick
+plotting and some of them have access to all plotting parameters for
+manual tunning.
+
+   As an example of C function usage let me draw the plot from *note
+Plots for 2D data::. The C code which does it is shown below:
+    #include <mgl/mgl_c.h>
+    int main()
+    {
+        HMGL gr = mgl_create_graph_zb(600, 400);
+        mgl_set_alpha(gr, true);
+        mgl_set_light(gr, true);
+        HMDT a = mgl_create_data_size(30,20,1);
+        mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+
+        mgl_subplot(gr, 2,2,0);
+        mgl_rotate(gr, 40,60,0);
+        mgl_surf(gr,a,"BbcyrR#");
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,1);
+        mgl_rotate(gr, 40,60,0);
+        mgl_dens(gr,a,"BbcyrR#",NAN);
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,2);
+        mgl_rotate(gr, 40,60,0);
+        mgl_cont(gr,a,"BbcyrR#",7,NAN);
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,3);
+        mgl_rotate(gr, 40,60,0);
+        mgl_axial(gr,a,"BbcyrR#",3);
+        mgl_box(gr, true);
+
+        /* don't forgot to save graphics */
+        mgl_write_png(gr,"sample.png",0);
+        return 0;
+    }
+
+   Practically the same simple to create a window. For example let
+rewrite the code from for window creation (*note Using FLTK/GLUT
+window::):
+    int sample(HMGL gr, void *)
+    {
+        mgl_rotate(gr,60,40,0);
+        mgl_box(gr,1);
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mgl_create_graph_fltk(sample, "MathGL examples", NULL);
+        mgl_fltk_run();
+        return 0;
+    }
+
+   The Fortran code have some peculiarities. Exactly it not allow one
+to send arbitrary parameter (which was `NULL' in previous example) to
+function. This is limitation of Fortran language. So, the corresponding
+code will be *NOT TESTED NOW!!!*:
+    program TEST
+    integer x,f,func
+        call mgl_create_graph_fltk(sample, 'MathGL examples');
+        call mgl_fltk_run();
+    end program TEST
+
+    integer function sample(gr)
+    integer*8 gr
+        call mgl_rotate(gr,60,40,0);
+        call mgl_box(gr,1);
+        sample=0
+    return
+    end
+
+
+File: mathgl_en.info,  Node: MathGL and PyQt,  Next: Hints,  Prev: C/Fortran interface,  Up: Examples
+
+2.6 MathGL and PyQt
+===================
+
+Generally SWIG based classes (including the Python one) are the same as
+C++ classes. However, there are few tips for using MathGL with PyQt.
+Below I place a very simple python code which demonstrate how MathGL
+can be used with PyQt. This code is mostly written by Prof. Dr. Heino
+Falcke. You can just copy it to a file `mgl-pyqt-test.py' and execute
+it from python shell by command `execfile("mgl-pyqt-test.py")'
+
+from PyQt4 import QtGui,QtCore
+from mathgl import *
+import sys
+app = QtGui.QApplication(sys.argv)
+qpointf=QtCore.QPointF()
+
+class hfQtPlot(QtGui.QWidget):
+    def __init__(self, parent=None):
+        QtGui.QWidget.__init__(self, parent)
+        self.img=(QtGui.QImage())
+    def setgraph(self,gr):
+        self.buffer='\t'
+        self.buffer=self.buffer.expandtabs(4*gr.GetWidth()*gr.GetHeight())
+        gr.GetBGRN(self.buffer,len(self.buffer))
+        self.img=QtGui.QImage(self.buffer, gr.GetWidth(),gr.GetHeight(),QtGui.QImage.Format_ARGB32)
+        self.update()
+    def paintEvent(self, event):
+        paint = QtGui.QPainter()
+        paint.begin(self)
+        paint.drawImage(qpointf,self.img)
+        paint.end()
+
+BackgroundColor=[1.0,1.0,1.0]
+size=100
+gr=mglGraph()
+y=mglData(size)
+#y.Modify("((0.7*cos(2*pi*(x+.2)*500)+0.3)*(rnd*0.5+0.5)+362.135+10000.)")
+y.Modify("(cos(2*pi*x*10)+1.1)*1000.*rnd-501")
+x=mglData(size)
+x.Modify("x^2");
+
+def plotpanel(gr,x,y,n):
+    gr.SubPlot(2,2,n)
+    gr.SetXRange(x)
+    gr.SetYRange(y)
+    gr.AdjustTicks()
+    gr.Axis()
+    gr.Box()
+    gr.Label("x","x-Axis",1)
+    gr.Label("y","y-Axis",1)
+    gr.ClearLegend()
+    gr.AddLegend("Legend: "+str(n),"k")
+    gr.Legend()
+    gr.Plot(x,y)
+
+
+gr.Clf(BackgroundColor[0],BackgroundColor[1],BackgroundColor[2])
+gr.SetPlotFactor(1.5)
+plotpanel(gr,x,y,0)
+y.Modify("(cos(2*pi*x*10)+1.1)*1000.*rnd-501")
+plotpanel(gr,x,y,1)
+y.Modify("(cos(2*pi*x*10)+1.1)*1000.*rnd-501")
+plotpanel(gr,x,y,2)
+y.Modify("(cos(2*pi*x*10)+1.1)*1000.*rnd-501")
+plotpanel(gr,x,y,3)
+
+gr.WritePNG("test.png","Test Plot")
+
+qw = hfQtPlot()
+qw.show()
+qw.setgraph(gr)
+qw.raise_()
+
+
+File: mathgl_en.info,  Node: Hints,  Prev: MathGL and PyQt,  Up: Examples
+
+2.7 Hints
+=========
+
+In this section I have included some small hints and advices for the
+improving of the quality of plots and for the demonstration of some
+non-trivial features of MathGL library. In contrast to previous
+examples I showed mostly the idea but not the whole drawing function.
+More examples with the source code can be find at
+`http://mathgl.sf.net/' or in section *note Samples::.
+
+* Menu:
+
+* ``Compound'' graphics::
+* Two axes in one plot::
+* Titles for the plot::
+* Changing of the color range::
+* Management of a point cutting::
+* Vector field visualization::
+* Several light sources::
+* CutMin and CutMax features::
+* Mapping visualization::
+* Log-scaled plot::
+* ``Templates''::
+* Nonlinear fitting hints::
+* PDE solving hints::
+* MGL parser using::
+* Stereo image::
+
+
+File: mathgl_en.info,  Node: ``Compound'' graphics,  Next: Two axes in one plot,  Up: Hints
+
+2.7.1 "Compound" graphics
+-------------------------
+
+As I noted above, MathGL functions (except the special one, like Clf())
+do  not erase the previous plotting but just add the new one. It allows
+one to draw "compound" plots easily. For example, popular Matlab
+command `surfc' can be emulated in MathGL by 2 calls:
+    Surf(a);
+    Cont(a, 0, 7, -1);     // draw contours at z = -1
+ Here A is 2-dimensional data for the plotting, `-1' is the value of
+z-coordinate at which the contour should be plotted (at the bottom in
+this example). Analogously, one can draw density plot instead of
+contour lines and so on.
+
+   Another nice plot is contour lines plotted directly on the surface:
+    Light(true);       // switch on light for the surface
+    Surf(a, "BbcyrR"); // select 'jet' colormap for the surface
+    Cont(a, "y");      // and yellow color for contours
+ The possible difficulties arise in black&white case, when the color of
+the surface can be close to the color of a contour line. In that case I
+may suggest the following code:
+    Light(true);       // switch on light for the surface
+    Surf(a, "kw");     // select 'gray' colormap for the surface
+    CAxis(-1,0);       // first draw for darker surface colors
+    Cont(a, "w");      // white contours
+    CAxis(0,1);        // now draw for brighter surface colors
+    Cont(a, "k");      // black contours
+    CAxis(-1,1);       // return color range to original state
+ The idea is to divide the color range on 2 parts (dark and bright) and
+to select the contrasting color for contour lines for each of part.
+
+   Similarly, one can plot flow thread over density plot of vector
+field amplitude (this is another amusing plot from Matlab) and so on.
+The list of compound graphics can be prolonged but I hope that the
+general idea is clear.
+
+
+File: mathgl_en.info,  Node: Two axes in one plot,  Next: Titles for the plot,  Prev: ``Compound'' graphics,  Up: Hints
+
+2.7.2 Two axes in one plot
+--------------------------
+
+Developing the previous hint one can make a plot with 2 or more axes.
+The idea is that the change of settings does not influence on the
+already drawn graphics. So, for 2-axes plot let us set the first axis
+and draw everything concerning it. Then let us setup the second axis
+and draw things for the second axis. The corresponding code is (*note
+2-axes sample::):
+    // set up first axis
+    Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,-1,-1));
+    Axis();            // draw it
+    Plot(y1,"b");      // draw something in first axis
+    // set up second axis
+    Axis(mglPoint(0,0,0),mglPoint(1,1,1),mglPoint(1,1,1));
+    Axis();            // draw it
+    Stem(y2,"r");      // draw something in second axis
+ Note, that the first and the second axes look better if being placed
+in different corners. In the code presented above the first axis is
+placed in the left-bottom corner, and the second one is placed in the
+right-top corner.
+
+
+File: mathgl_en.info,  Node: Titles for the plot,  Next: Changing of the color range,  Prev: Two axes in one plot,  Up: Hints
+
+2.7.3 Titles for the plot
+-------------------------
+
+The printing of nice titles for the plot is not so trivial task in
+general case. The problem is that the rotation and aspect change lead
+to different looks for titles of different subplots. So, the resulting
+look is not so good as it could be. The solution is simple - to print
+titles exactly after `SubPlot'() call and before any rotation, aspect
+change and so on! Analogously, the title for the whole picture looks
+better if it is printed first (before any `SubPlot()' calls).
+Alternatively you can use function `Title()' for plotting title for the
+picture at any time.
+
+
+File: mathgl_en.info,  Node: Changing of the color range,  Next: Management of a point cutting,  Prev: Titles for the plot,  Up: Hints
+
+2.7.4 Changing of the color range
+---------------------------------
+
+By default (for the user comfort), the color range is set equal to
+z-range of the plot. However, there are different ranges. So, one can
+obtain amusing plot by the change of color range manually. For example,
+there are plots with one-color bottom (or top) or practically bi-color
+picture and so on.
+
+   For example, compare 2 surfaces:
+    SubPlot(2,1,0)
+    Surf(a);           // usual coloring range
+    SubPlot(2,1,1)
+    CAxis(0,1);
+    Surf(a);           // bottom of the surface have one-colour filling
+
+
+File: mathgl_en.info,  Node: Management of a point cutting,  Next: Vector field visualization,  Prev: Changing of the color range,  Up: Hints
+
+2.7.5 Management of a point cutting
+-----------------------------------
+
+Sometimes an experimental or numerical surface has outstanding points.
+Visualization of such surface will lead to the hole(s) in place of such
+points. The standard method of "fighting"  - to change data values - is
+not always good and is not so convenient. MathGL library has another
+method - to set variable `Cut=false'. As a consequence, all outstanding
+points will be projected on the bounding box.
+
+   Such method is good not only for outstanding points but also for the
+case when one need to plane the bottom or the top of the plot. Exactly
+such case is demonstrated in the code:
+        mglData a(20,30);  // create some data
+        a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+        // set lower border above the data minimal value
+        Axis(mglPoint(-1,-1,0),mglPoint(1,1,1));
+        Cut = false;       // set off cutting flag
+`       Surf(a);           // and draw the surface
+ It is an interesting result, is not it?
+
+
+File: mathgl_en.info,  Node: Vector field visualization,  Next: Several light sources,  Prev: Management of a point cutting,  Up: Hints
+
+2.7.6 Vector field visualization
+--------------------------------
+
+Vector field visualization (especially in 3d case `Vect3' or `VectC')
+may look tangly - there are too many overlapping lines. I may suggest 2
+ways to solve this problem. The first one is to change `MeshNum' for
+decreasing the number of hachures. The second way is to use the flow
+thread chart `Flow'. Unfortunately, I don't know any other methods to
+visualize 3d vector field. If you know any, e-mail me and I shall add
+it to MatGL.
+
+
+File: mathgl_en.info,  Node: Several light sources,  Next: CutMin and CutMax features,  Prev: Vector field visualization,  Up: Hints
+
+2.7.7 Several light sources
+---------------------------
+
+In contrast to the most of other programs, MathGL supports several (up
+to 10) light sources. Moreover, the color each of them can be
+different: white (this is usual), yellow, red, cyan, green and so on.
+The use of several light sources may be interesting for the
+highlighting of some peculiarities of the plot or just to make an
+amusing picture. Note, each light source can be switched on/off
+individually (*note Several light sample::).
+
+
+File: mathgl_en.info,  Node: CutMin and CutMax features,  Next: Mapping visualization,  Prev: Several light sources,  Up: Hints
+
+2.7.8 CutMin and CutMax features
+--------------------------------
+
+MathGL library has a feature for cutting of points in some region
+CUTMIN*CUTMAX. Such an excision can be used to improve the look of the
+graphics. Moreover, this cutting may help to show an internal structure
+of an object (like `isocaps' plot in Matlab). For example, let us use
+the standard 3D data array and show its interior (*note CutMinMax
+sample::).
+
+    mglData  c(61,51,40);      // create the data
+    mglData v(10);	v.Fill(-0.5,1);
+    c.Modify("(-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1))");
+    gr->CutMin = mglPoint(0,-1,-1);     gr->CutMax = mglPoint(1,0,1.1);
+    gr->Surf3(-0.5,c,"BbcyrR");
+    gr->ContF3(v,c,'x',-1,"BbcyrR");    gr->ContF3(v,c,'y',-1,"BbcyrR");
+    gr->ContF3(v,c,'z',0,"BbcyrR");     gr->ContF3(v,c,'z',39,"BbcyrR");
+
+   One can also exclude points from arbitrary area in space. This area
+defined by textual formula `CutOff()' (*note Cutting::). The algorithm
+is the same as shown for "rectangular cutting".
+
+
+File: mathgl_en.info,  Node: Mapping visualization,  Next: Log-scaled plot,  Prev: CutMin and CutMax features,  Up: Hints
+
+2.7.9 Mapping visualization
+---------------------------
+
+Sometime ago I worked with mapping and have a question about its
+visualization. Let me remember you that mapping is some transformation
+rule for one set of number to another one. The 1d mapping is just an
+ordinary function - it takes a number and transforms it to another one.
+The 2d mapping (which I used) is a pair of functions which take 2
+numbers and transform them to another 2 ones. Except general plots
+(like `SurfC', `SurfA') there is a special plot - Arnold diagram. It
+shows the area which is the result of mapping of some initial area
+(usually square).
+
+   I tried to make such plot in `Map'. It shows the set of points or
+set of faces, which final position is the result of mapping. At this,
+the color gives information about their initial position and the height
+describes Jacobian value of the transformation. Unfortunately, it looks
+good only for the simplest mapping but for the  real multivalent
+quasi-chaotic mapping it produces a confusion. So, use it if you like
+:).
+
+
+File: mathgl_en.info,  Node: Log-scaled plot,  Next: ``Templates'',  Prev: Mapping visualization,  Up: Hints
+
+2.7.10 Log-scaled plot
+----------------------
+
+Log-scaled plot can be drawn by 2 steps. First, one should change the
+scale of axis by call `SetFunc("lg(x)", "lg(y)");' (in this example, x-
+and y-axis will be log-scaled). Second, one should set logarithmic
+scale for axis ticks by changing variables: `SetTicks('x',0);
+SetTicks('y',0);'. Finally, one should check (or change) the axis
+ranges and origin so that their values to be positive. For example of
+log-log plot *note Log-log sample::.
+
+
+File: mathgl_en.info,  Node: ``Templates'',  Next: Nonlinear fitting hints,  Prev: Log-scaled plot,  Up: Hints
+
+2.7.11 "Templates"
+------------------
+
+As I have noted before, the change of settings will influence only for
+the further plotting commands. This allows one to create template
+function which will contain settings and primitive drawing for often
+used plots. Correspondingly one may call this template-function for
+drawing simplification.
+
+   For example, let one has a set of points (experimental or numerical)
+and wants to compare it with theoretical law (for example, with
+exponent law \exp(-x/2), x \in [0, 20]). The template-function for this
+task is:
+    void template(mglGraph *gr)
+    {
+        mglData  law(100);      // create the law
+        law.Modify("exp(-10*x)");
+        gr->Axis(mglPoint(0,0.0001), mglPoint(20,1), mglPoint(0,0.0001));
+        gr->SetFunc(0,"lg(y)",0);   gr->dy = 0;
+        gr->Plot(law,"r2");
+        gr->Text(mglPoint(10,0.2),"Theoretical law: e^x","rL");
+        gr->Label('x',"x val."); gr->Label('y',"y val.");
+        gr->Axis(); gr->Grid("xy","g;"); gr->Box();
+    }
+ At this, one will only write a few lines for data drawing:
+    template(gr);     // apply settings and default drawing from template
+    mglData dat("fname.dat"); // load the data
+    // and draw it (suppose that data file have 2 columns)
+    gr->Plot(dat.SubData(0),dat.SubData(1),"bx ");
+ A template-function can also contain settings for font, transparency,
+lightning, color scheme and so on.
+
+
+File: mathgl_en.info,  Node: Nonlinear fitting hints,  Next: PDE solving hints,  Prev: ``Templates'',  Up: Hints
+
+2.7.12 Nonlinear fitting hints
+------------------------------
+
+Nonlinear fitting is rather simple. All that you need is the data to
+fit, the approximation formula and the list of coefficients to fit
+(better with its initial guess values). Let me demonstrate it on the
+following simple example (*note Fitting sample::). First, let us use
+sin function with some random noise:
+    mglData rnd(100), idl(50); //data to be fitted and ideal data
+    rnd.Modify("0.4*rnd+0.1+sin(4*pi*x)");
+    idl.Modify("0.3+sin(4*pi*x)");
+ and plot it to see that data we will fit
+    gr->Axis(mglPoint(-1,-2), mglPoint(1,2));
+    gr->Plot(rnd, ". "); gr->Plot(idl, "b");
+    gr->Box();
+    gr->Text(mglPoint(0,2.2), "initial: y = 0.3+sin(2\pi x)", "C:b", -1);
+
+   The next step is the fitting itself. For that let me specify an
+initial values INI for coefficients `abc' and do the fitting for
+approximation formula `a+b*sin(c*x)'
+    mglData res;   // The data for found formula
+    float ini[3] = {1, 1, 3};
+    gr->Fit(res, rnd, "a+b*sin(c*x)", "abc", ini);
+ Now display it
+    gr->Plot(res, "r");
+    gr->Text(mglPoint(-1,-1.3), "fitted:", "L:r", -1);
+    gr->PutsFit(mglPoint(0,-1.8), "y = ", "C:r", -1);
+
+   NOTE! the fitting results may have strong dependence on initial
+values for coefficients due to algorithm features. The problem is that
+in general case there are several local "optimums" for coefficients and
+the program returns only first found one! There are no guaranties that
+it will be the best. Try for example to set `ini[3] = {0, 0, 0}' in the
+code above.
+
+
+File: mathgl_en.info,  Node: PDE solving hints,  Next: MGL parser using,  Prev: Nonlinear fitting hints,  Up: Hints
+
+2.7.13 PDE solving hints
+------------------------
+
+Solving of Partial Differential Equations (PDE, including beam tracing)
+and ray tracing (or finding particle trajectory) are more or less
+common task. So, MathGL have several functions for that. There are
+`mglRay()' for ray tracing, `mglPDE()' for PDE solving, `mglQO2d()' for
+beam tracing in 2D case (*note Global functions::). Note, that these
+functions take "Hamiltonian" or equations as string values. And I don't
+plan now to allow one to use user-defined functions. There are 2
+reasons: the complexity of corresponding interface; and the basic
+nature of used methods which are good for samples but may not good for
+serious scientific calculations.
+
+   The ray tracing can be done by `mglRay()' function. Really ray
+tracing equation is Hamiltonian equation for 3D space. So, the function
+can be also used for finding a particle trajectory (i.e. solve
+Hamiltonian ODE) for 1D, 2D or 3D cases. The function have a set of
+arguments. First of all, it is Hamiltonian which defined the media (or
+the equation) you are planning to use. The Hamiltonian is defined by
+string which may depend on coordinates `x', `y', `z', time `t' (for
+particle dynamics) and momentums `p'=p_x, `q'=p_y, `v'=p_z. Next, you
+have to define the initial conditions for coordinates and momentums at
+`t'=0 and set the integrations step (default is 0.1) and its duration
+(default is 10). The Runge-Kutta method of 4-th order is used for
+integration.
+    mglData r,a,re(128),im(128);
+    r = mglRay("p^2+q^2-x-1", mglPoint(-0.7, -1), mglPoint(0, 0.5));
+    gr->Plot(r.SubData(0), r.SubData(1));
+ This example calculate the reflection from linear layer (media with
+Hamiltonian `p^2+q^2-x-1'=p_x^2+p_y^2-x-1). This is parabolic curve.
+The resulting array have 7 columns which contain data for
+{x,y,z,p,q,v,t}.
+
+   The solution of PDE is a bit more complicated. As previous you have
+to specify the equation as pseudo-differential operator \hat H(x,
+\nabla) which is called sometime as "Hamiltonian" (for example, in beam
+tracing). As previously, it is defined by string which may depend on
+coordinates `x', `y', `z' (but not time!), momentums `p'=(d/dx)/i k_0,
+`q'=(d/dy)/i k_0 and field amplitude `u'=|u|. The evolutionary
+coordinate is `z' in all cases. So that, the equation look like du/dz =
+ik_0 H(x,y,\hat p, \hat q, |u|)[u]. Dependence on field amplitude
+`u'=|u| allows one to solve nonlinear problems too. For example, for
+nonlinear Shrodinger equation you may set `ham="p^2 + q^2 - u^2"'. Also
+you may specify imaginary part for wave absorption, like `ham = "p^2 +
+i*x*(x>0)"', but only if dependence on variable `i' is linear (i.e. H =
+Hre+i*Him).
+
+   Next step is specifing the initial conditions at `z'=`Min.z'. The
+function need 2 arrays for real and for imaginary part. Note, that
+coordinates x,y,z are supposed to be in specified range [Min, Max]. So,
+the data arrays should have corresponding scales. Finally, you may set
+the integration step and paramter k0=k_0. Also keep in mind, that
+internally the 2 times large box is used (for suppressing numerical
+reflection from boundaries) and the equation should well defined even
+in this extended range.
+
+   Final comment is concerning the possible form of pseudo-differential
+operator H. At this moment, simplified form of operator H is supported
+- all "mixed" terms (like `x*p'->x*d/dx) are excluded. For example, in
+2D case this operator is effectively H = f(p,z) + g(x,z,u). However
+commutable combinations (like `x*q'->x*d/dy) are allowed for 3D case.
+
+   So, for example let solve the equation for beam deflected from
+linear layer and absorbed later. The operator will have the form
+`"p^2+q^2-x-1+i*0.5*(z+x)*(z>-x)"' that correspond to equation ik_0
+\partial_z u + \Delta u + x \cdot u + i (x+z)/2 \cdot u = 0. This is
+typical equation for Electron Cyclotron (EC) absorption in magnetized
+plasmas. For initial conditions let me select the beam with plane phase
+front exp(-48*(x+0.7)^2). The corresponding code looks like this (*note
+PDE sample::):
+    mglData a,re(128),im(128);
+    re.Fill("exp(-48*(x+0.7)^2)", gr->Min, gr->Max);
+    a = mglPDE("p^2+q^2-x-1+i*0.5*(z+x)*(z>-x)", re, im,
+                gr->Min, gr->Max, 0.01, 30);
+    a.Transpose("yxz");
+    gr->CAxis(0, 1);
+    gr->Dens(a,"wyrRk");
+
+   The last example is example of beam tracing. Beam tracing equation
+is special kind of PDE equation written in coordinates accompanied to a
+ray. Generally this is the same parameters and limitation as for PDE
+solving but the coordinates are defined by the ray and by parameter of
+grid width W in direction transverse the ray. So, you don't need to
+specify the range of coordinates. *BUT* there is limitation. The
+accompanied coordinates are well defined only for smooth enough rays,
+i.e. then the ray curvature K (which is defined as 1/K^2 = (|\ddot r|^2
+|\dot r|^2 - (\ddot r, \dot r)^2)/|\dot r|^6) is much large then the
+grid width: K>>w. So, you may receive incorrect results if this
+condition will be broken.
+
+   You may use following code for obtaining the same solution as in
+previous example:
+    mglData r, xx, yy, a, im(128), re(128);
+    const char *ham = "p^2+q^2-x-1+i*0.5*(y+x)*(y>-x)";
+    r = mglRay(ham, mglPoint(-0.7, -1), mglPoint(0, 0.5), 0.02, 2);
+    // now start beam tracing
+    re.Fill("exp(-48*x^2)", gr->Min, gr->Max);
+    a = mglQO2d(ham, re, im, r, 1, 30, &xx, &yy);
+    gr->CAxis(0, 1);
+    gr->Dens(xx, yy, a, "wyrRk");
+
+
+File: mathgl_en.info,  Node: MGL parser using,  Next: Stereo image,  Prev: PDE solving hints,  Up: Hints
+
+2.7.14 MGL parser using
+-----------------------
+
+Sometimes you may prefer to use MGL scripts in yours code. It is
+simpler (especially in comparison with C/Fortran interfaces) and fast
+way to plot the data with annotations, labels and so on. Class
+`mglParse' (*note mglParse class:: parse MGL scripts in C++. It have
+also the corresponding interface for C/Fortran.
+
+   The key function here is `mglParse::Parse()' (or `mgl_parse()' for
+C/Fortran) which execute one command per string. At this the detailed
+information about the possible errors or warnings is passed as function
+value. Or you may execute the whole script as long string with lines
+separated by `\n'. Functions `mglParse::Execute()' and
+`mgl_parse_text()' perform it. Also you may set the values of paramters
+`$0'...`$9' for the script by functions `mglParse::AddParam()' or
+`mgl_add_param()', allow/disable picture resizing, check "once" status
+and so on. The usage is rather stright-forward.
+
+   The only non-obvious thing is data transition between script and
+yours program. There are 2 stages: add or find variable; and set data
+to variable. In C++ you may use functions `mglParse::AddVar()' and
+`mglParse::FindVar()' which return pointer to `mglVar' structure. This
+structure contain data itself, the variable name and callback function
+which will be called if variable destroied. Last feature allows you to
+control the presence of the variable and, for example, close a window
+with data if this variable is destroyed. In C/Fortran the corresponding
+functions are `mgl_add_var()', `mgl_find_var()'. But these functions
+return the data array only. Note, you *must not delete or free* the
+data obtained from these functions!
+
+   So, some simple example at the end. Here I define a data array,
+create variable, put data into it and plot it. The C++ code looks like
+this:
+    float a[100];   // let a_i = sin(4*pi*x), x=0...1
+    for(int i=0;i<100;i++)  a[i]=sin(4*M_PI*i/99);
+    mglParse *parser = new mglParse;
+    mglData &d = (parser->AddVar("dat"))->d;
+    d.Set(a,100); // set data to variable
+    parser->Execute(gr, "plot dat; xrange 0 1\nbox\naxis");
+    // you may break script at any line do something
+    // and continue after that
+    parser->Execute(gr, "xlabel 'x'\nylabel 'y'");
+    // also you may use cycles or conditions in script
+    parser->Execute(gr, "for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext");
+    gr->WritePNG("test.png");   // don't forgot to save picture
+ The code in C/Fortran looks practically the same:
+    float a[100];   // let a_i = sin(4*pi*x), x=0...1
+    int i;
+    for(i=0;i<100;i++)  a[i]=sin(4*M_PI*i/99);
+    HMPR parser = mgl_create_parser();
+    HMDT d = mgl_add_var(parser, "dat");
+    mgl_data_set_float(d,a,100,1,1);    // set data to variable
+    mgl_parse_text(gr, parser, "plot dat; xrange 0 1\nbox\naxis");
+    // you may break script at any line do something
+    // and continue after that
+    mgl_parse_text(gr, parser, "xlabel 'x'\nylabel 'y'");
+    // also you may use cycles or conditions in script
+    mgl_parse_text(gr, parser, "for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext");
+    mgl_write_png(gr, "test.png", "");  // don't forgot to save picture
+
+
+File: mathgl_en.info,  Node: Stereo image,  Prev: MGL parser using,  Up: Hints
+
+2.7.15 Stereo image
+-------------------
+
+One can easily create stereo image in MathGL. Stereo image can be
+produced by making two subplots with slightly different rotation
+angles. The corresponding code looks like this (*note Stereo image
+sample::):
+    gr->SubPlot(2,1,0);     // left image
+    gr->Rotate(40,60+3);
+    // draw something here
+
+    gr->SubPlot(2,1,1);     // right image
+    gr->Rotate(40,60-3);
+    // draw the same here
+
+
+File: mathgl_en.info,  Node: MathGL core,  Next: Plotter classes,  Prev: Examples,  Up: Top
+
+3 MathGL core
+*************
+
+The core of MathGL is *mglGraph* class defined in `#include
+<mgl/mgl.h>'. It contains a lot of plotting functions for 1D, 2D and 3D
+plots. It also encapsulates parameters for axes drawing. Moreover an
+arbitrary coordinate transformation may be used for each axis. All
+plotting functions use data encapsulated in mglData class (*note
+mglData class::) that allows to check sizes of used arrays easily. Also
+it have many functions for data handling: modify it by formulas, find
+momentums and distribution (histogram), apply operator (differentiate,
+integrate, transpose, Fourier and so on), change data sizes
+(interpolate, squeeze, crop and so on). Additional information about
+colors, fonts, formula parsing can be found in *note Other classes::.
+
+   Note that class mglGraph is abstract and contains only interface
+functions for plotting but does not make plot by itself. For plotting
+in specific device (screen, memory or file) one should use derived
+classes: mglGraphZB - for bitmap picture in file or in memory;
+mglGraphPS - for vector PostScript picture; mglGraphGL - for drawing
+using OpenGL, or for GLUT windows interface; and so on, *note Plotter
+classes::. If you want not only to create a picture but to view it in a
+window/widget or to run animation and so on then look at *note Widget
+classes::.
+
+   There is a C++ wrapper class which have the same name `mglGraph' and
+defined in `mgl/mgl_graph.h'. You can use this class even with non-GNU
+compilers (i.e. in Borland or Microsoft one), but you *should not
+include* any `mgl/mgl.h' or `mgl/mgl_parse.h' headers in this case!
+This wrapper class also used as base for all SWIG-based interfaces
+(Python, Octave and so on). So, later it is refered as `Python' class
+for distinguish from original `C++' class defined in `mgl/mgl.h' .
+
+* Menu:
+
+* Graphics setup::
+* Axis settings::
+* Transformation matrix::
+* Export to file::
+* Primitives drawing::
+* Text printing::
+* Axis and Colorbar::
+* Legend::
+* 1D plotting::
+* 2D plotting::
+* 3D plotting::
+* Dual plotting::
+* Vector fields::
+* Other plotting::
+* Nonlinear fitting::
+* Data distributions::
+* Frames/Animation::
+* IDTF functions::
+
+
+File: mathgl_en.info,  Node: Graphics setup,  Next: Axis settings,  Up: MathGL core
+
+3.1 Graphics setup
+==================
+
+Functions and variables in this group influences on overall graphics
+appearance. So all of them should be placed _before_ any actual
+plotting function calls.
+
+ -- Method on `mglGraph' (C++, Python): `void' DefaultPlotParam ()
+ -- C function: `void' mgl_set_def_param (`HMGL' gr)
+     Restore initial values for all of parameters except described in
+     *note Zooming::.
+
+* Menu:
+
+* Transparency::
+* Lighting::
+* Fog::
+* Default sizes::
+* Zooming::
+* Cutting::
+* Font settings::
+* Palette and colors::
+* Error handling::
+* Other settings::
+
+
+File: mathgl_en.info,  Node: Transparency,  Next: Lighting,  Up: Graphics setup
+
+3.1.1 Transparency
+------------------
+
+There are several functions and variables for setup transparency. The
+general function is `Alpha()' which switch on/off the transparency for
+overall plot. It influence only for graphics which created after
+`Alpha()' call (with one exception, mglGraphGL). Function `SetAlphaDef'
+specify the default value of alpha-channel. You may switch off
+transparency of selected plot by function `SetTransparent'. Finally,
+function `SetTranspType' set the kind of transparency. *Note
+Transparent surface sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `bool' Alpha (`bool' enable)
+ -- C function: `void' mgl_set_alpha (`HMGL' gr, `int' enable)
+     Sets the transparency on/off and returns previous value of
+     transparency. It is recommended to call this function before any
+     plotting command. In any case it must be called before `Finish()'
+     function if the last is used. Default value is transparency off.
+     Unfortunately it switches the transparency on/off for all
+     subplots. Use `SetTransparent(false)' in particular plot to
+     disable its transparency.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetAlphaDef (`float' val)
+ -- C function: `void' mgl_set_alpha_default (`HMGL' gr, `float' alpha)
+     Sets default value of alpha channel (transparency) for all
+     plotting functions. Note, that OpenGL (mglGraphGL) has incorrect
+     drawing for large values of alpha in case of several overlapping
+     surfaces.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetTransparent (`bool'
+          val)
+ -- C function: `void' mgl_set_transp (`HMGL' gr, `int' enable)
+     Flag which temporary switches transparency on/off for the plot.
+     This is the same as `Alpha(val)' but more correctly work in
+     mglGraphGL class.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetTranspType (`int'
+          type)
+ -- C function: `void' mgl_set_transp_type (`HMGL' gr, `int' enable)
+     Set the transparency type. Normal transparency (`0') - below
+     things is less visible than upper ones. It does not look well in
+     OpenGL mode (mglGraphGL) for several surfaces. Glass-like
+     transparency (`1') - below and upper things are commutable and
+     just decrease intensity of light by RGB channel. Lamp-like
+     transparency (`2') - below and upper things are commutable and are
+     the source of some additional light. I recommend to set
+     `SetAlphaDef(0.3)' or less for lamp-like transparency. *Note
+     Normal transparency::, *note Glass-like transparency::, *note
+     Lamp-like transparency::.
+
+ -- _Obsolete option_ of mglGraph: `float' AlphaDef
+     Default value of alpha channel. See `SetAlphaDef()'.
+
+ -- _Obsolete option_ of mglGraph: `bool' Transparent
+     Flag which temporary switches transparency on/off for the plot.
+     See `SetTransparent()'.
+
+ -- _Obsolete option_ of mglGraph: `int' TranspType
+     This variable set the transparency type. See `SetTranspType()'.
+
+
+File: mathgl_en.info,  Node: Lighting,  Next: Fog,  Prev: Transparency,  Up: Graphics setup
+
+3.1.2 Lighting
+--------------
+
+There are several functions for setup lighting. The general function is
+`Light(bool)' which switch on/off the lighting for overall plot. It
+influence only for graphics which created after `Light()' call (with
+one exception, mglGraphGL). Generally MathGL support up to 10
+independent light sources. But in OpenGL mode only 8 of light sources
+is used due to OpenGL limitations. The position, color, brightness of
+each light source can be set separately. By default only one light
+source is active. It is source number `0' with white color, located at
+top of the plot.
+
+ -- Method on `mglGraph' (C++, Python): `bool' Light (`bool' enable)
+ -- C function: `void' mgl_set_light (`HMGL' gr, `int' enable)
+     Sets the using of light on/off for overall plot. Function returns
+     previous value of lighting. Default value is lightning off.
+
+ -- Method on `mglGraph' (C++, Python): `void' Light (`int' n, `bool'
+          enable)
+ -- C function: `void' mgl_set_light_n (`HMGL' gr, `int' n, `int'
+          enable)
+     Switch on/off N-th light source separately.
+
+ -- Method on `mglGraph' (C++, Python): `void' AddLight (`int' n,
+          `float' x, `float' y, `float' z, `char' c=`'w'')
+ -- Method on `mglGraph' (C++): `void' Light (`int' n, `mglPoint' p,
+          `char' c=`'w'', `float' bright=`0.5', `bool' infty=`true')
+ -- Method on `mglGraph' (C++): `void' Light (`int' n, `mglPoint' p,
+          `mglColor' c, `float' bright=`0.5', `bool' infty=`true')
+ -- C function: `void' mgl_add_light (`HMGL' gr, `int' n, `float' x,
+          `float' y, `float' z, `char' c)
+     The function adds a light source with identification N at position
+     P with color C and with brightness BRIGHT (which must be in range
+     [0,1]). Flag INFTY=`true' puts the source to infinite distance
+     (for the faster drawing).
+
+ -- Method on `mglGraph' (C++, Python): `void' Ambient (`float'
+          bright=`0.5')
+ -- C function: `void' mgl_set_ambbr (`HMGL' gr, `float' bright)
+     Sets the brightness of ambient light. The value should be in range
+     [0,1].
+
+
+File: mathgl_en.info,  Node: Fog,  Next: Default sizes,  Prev: Lighting,  Up: Graphics setup
+
+3.1.3 Fog
+---------
+
+ -- Method on `mglGraph' (C++, Python): `void' Fog (`float' d, `float'
+          dz=`0.25')
+ -- C function: `void' mgl_set_fog (`HMGL' gr, `float' d, `float' dz)
+     Function imitate a fog in the plot. Fog start from relative
+     distance DZ from view point and its density growths exponentially
+     in depth. So that the fog influence is determined by law ~
+     1-exp(-_d*z_). Here _z_ is normalized to 1 depth of the plot. If
+     value D=`0' then the fog is absent. *Note Surface in fog sample::,
+     for sample code and picture.
+
+
+File: mathgl_en.info,  Node: Default sizes,  Next: Zooming,  Prev: Fog,  Up: Graphics setup
+
+3.1.4 Default sizes
+-------------------
+
+These variables control the default (initial) values for most graphics
+parameters including sizes of markers, arrows, linewidth and so on. As
+any other settings these ones will influence only on plots created
+after the settings change.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetBarWidth ( `float'
+          val)
+ -- C function: `void' mgl_set_bar_width (`HMGL' gr, `float' val)
+     Sets relative width of rectangles in Bars, Barh, BoxPlot (*note
+     Bars::). Default value is `0.7'.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetMarkSize (`float' val)
+ -- C function: `void' mgl_set_mark_size (`HMGL' gr, `float' val)
+     Sets size of marks for *note 1D plotting::. Default value is
+     `0.02'.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetArrowSize (`float'
+          val)
+ -- C function: `void' mgl_set_arrow_size (`HMGL' gr, `float' val)
+     Sets size of arrows for *note 1D plotting::, lines and curves
+     (*note Primitives drawing::). Default value is `0.03'.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetBaseLineWidth
+          (`float' val)
+ -- C function: `void' mgl_set_base_line_width (`HMGL' gr, `float' val)
+     Defines the base width for all lines. The value <1 is ignored. For
+     values > 1 the real line width is result of multiplication of
+     specified line width and the value of BASELINEWIDTH. Increase of
+     this variables is actual for large bitmap pictures. Default value
+     is `1'.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetTickLen (`float' val,
+          `float' stt=`1')
+ -- C function: `void' mgl_set_tick_len (`HMGL' gr, `float' val,
+          `float' stt)
+     The relative length of axis ticks. Default value is `0.1'.
+     Parameter STT>0 set relative length of subticks which is in
+     `sqrt(1+stt)' times smaller.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetTickStl (`const char
+          *'stl, `const char *'sub=`0')
+ -- C function: `void' mgl_set_tick_stl (`HMGL' gr, `const char *'stl,
+          `const char *'sub)
+     The line style of axis ticks (STL) and subticks (SUB). If STL is
+     empty then default style is used (`k' or `w' depending on
+     transparency type). If SUB is empty then ticks style is used (i.e.
+     STL).
+
+ -- _Obsolete option_ of mglGraph: `float' BarWidth
+     Relative width of rectangles. See `SetBarWidth()'.
+
+ -- _Obsolete option_ of mglGraph: `float' MarkSize
+     The size of marks. See `SetMarkSize()'.
+
+ -- _Obsolete option_ of mglGraph: `float' ArrowSize
+     The size of arrows. See `SetArrowSize()'.
+
+ -- _Obsolete option_ of mglGraph: `float' BaseLineWidth
+     The variable define the base width for all lines. See
+     `SetBaseLineWidth()'.
+
+
+File: mathgl_en.info,  Node: Zooming,  Next: Cutting,  Prev: Default sizes,  Up: Graphics setup
+
+3.1.5 Zooming
+-------------
+
+These variables and functions control the overall zooming of the
+picture (see Zoom()) or the sub-picture (see PlotFactor). Normally you
+can use these variables and functions for removing "white" spaces
+around a plot.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetPlotFactor (`float'
+          val)
+ -- C function: `void' mgl_set_plotfactor (`HMGL' gr, `float' val)
+     Sets the factor of plot size. It is not recommended to set it
+     lower then 1.5. This is some analogue of function Zoom() but
+     applied not to overall image but for each InPlot. Use negative
+     value or zero to enable automatic `PlotFactor' selection.
+
+ -- Method on `mglGraph' (C++, Python): `void' Zoom (`float' x1,
+          `float' y1, `float' x2, `float' y2)
+ -- C function: `void' mgl_set_zoom (`HMGL' gr, `float' x1, `float' y1,
+          `float' x2, `float' y2)
+     The function changes the scale of graphics that correspond to zoom
+     in/out of the picture. After function call the current plot will
+     be cleared and further the picture will contain plotting from its
+     part [x1,x2]*[y1,y2]. Here picture coordinates X1, X2, Y1, Y2
+     changes from 0 to 1. Attention! this settings can not be
+     overwritten by any other functions. Use `Zoom(0,0,1,1)' to return
+     default view.
+
+ -- _Obsolete option_ of mglGraph: `float' PlotFactor
+     The factor of plot size. See `SetPlotFactor()'.
+
+ -- _Obsolete option_ of mglGraph: `bool' AutoPlotFactor
+     Switch on/off automatic change of PlotFactor variable during plot
+     rotation. See `SetPlotFactor()'.
+
+
+File: mathgl_en.info,  Node: Cutting,  Next: Font settings,  Prev: Zooming,  Up: Graphics setup
+
+3.1.6 Cutting
+-------------
+
+These variables and functions set the condition when the points are
+excluded (cutted) from the drawing. Note, that a point with NAN
+value(s) of coordinate or amplitude will be automatically excluded from
+the drawing.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetCut (`bool' val)
+ -- C function: `void' mgl_set_cut (`HMGL' gr, `int' val)
+     Flag which determines how points outside bounding box are drawn.
+     If it is `true' then points are excluded from plot (it is default)
+     otherwise the points are projected to edges of bounding box.
+
+ [image src="cut.png" ]
+
+Left figure is drawn with parameter `Cut=false'. Right one is drawn
+with parameter `Cut=true'.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetCutBox (`float' x1,
+          `float' y1, `float' z1, `float' x2, `float' y2, `float' z2)
+ -- C function: `void' mgl_set_cut_box (`HMGL' gr, `float' x1, `float'
+          y1, `float' z1, `float' x2, `float' y2, `float' z2)
+     Lower and upper edge of the box in which never points are drawn.
+     If both edges are the same (the variables are equal) then the
+     cutting box is empty. *Note CutMinMax sample::, for sample code
+     and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' CutOff (`const char
+          *'EqC)
+ -- C function: `void' mgl_set_cutoff (`HMGL' gr, `const char *'EqC)
+     Sets the cutting off condition by formula EQC. This condition
+     determine will point be plotted or not. If value of formula is
+     nonzero then point is omitted, otherwise it plotted. Set argument
+     as `""' to disable cutting off condition. *Note CutOff sample::,
+     for sample code and picture.
+
+ -- _Obsolete option_ of mglGraph: `bool' Cut
+     Flag which determines how points outside bounding box are drawn.
+     See `SetCut()'.
+
+ -- _Obsolete option_ of mglGraph: `mglPoint' CutMin, CutMax
+     Lower and upper edge of the box in which never points are drawn.
+     See `SetCutBox()'.
+
+
+File: mathgl_en.info,  Node: Font settings,  Next: Palette and colors,  Prev: Cutting,  Up: Graphics setup
+
+3.1.7 Font settings
+-------------------
+
+ -- Method on `mglGraph' (C++, Python): `void' SetFontSize (`float' val)
+ -- C function: `void' mgl_set_font_size (`HMGL' gr, `float' val)
+     Sets the size of font for tick and axis labels. Default font size
+     of axis labels is 1.4 times large than for tick labels.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetFontDef (`const char
+          *'fnt)
+ -- C function: `void' mgl_set_font_def (`HMGL' gr, `const char *' val)
+     Sets the font specification (*note Text printing::). Default is
+     `rC' - Roman font centering.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetRotatedText (`bool'
+          val)
+ -- C function: `void' mgl_set_rotated_text (`HMGL' gr, `int' val)
+     Sets to use or not text rotation along axis.
+
+ -- Method on `mglGraph' (C++, Python): `void' LoadFont (`const char
+          *'name, `const char *'path=`""')
+ -- C function: `void' mgl_load_font (`HMGL' gr, `const char *'name,
+          `const char *'path)
+     Load font typeface from PATH/NAME.
+
+ -- Method on `mglGraph' (C++, Python): `void' CopyFont (`mglGraph *'
+          from)
+ -- C function: `void' mgl_copy_font (`HMGL' gr, `HMGL' gr_from)
+     Copy font data from another `mglGraph' object.
+
+ -- Method on `mglGraph' (C++, Python): `void' RestoreFont ()
+ -- C function: `void' mgl_restore_font (`HMGL' gr)
+     Restore font data to default typeface.
+
+ -- Method on `mglGraph' (C++): `void' SetFontSizePT (`float' cm, `int'
+          dpi=`72')
+     Set FontSize by size in pt and picture DPI (default is 16 pt for
+     dpi=72).
+
+ -- Method on `mglGraph' (C++): `inline void' SetFontSizeCM (`float'
+          cm, `int' dpi=`72')
+     Set FontSize by size in centimeters and picture DPI (default is
+     0.56 cm = 16 pt).
+
+ -- Method on `mglGraph' (C++): `inline void' SetFontSizeIN (`float'
+          cm, `int' dpi=`72')
+     Set FontSize by size in inch and picture DPI (default is 0.22 in =
+     16 pt).
+
+ -- Method on `mglGraph' (C++): `void' SetFont (`mglFont *'f)
+     Sets font typeface. Note that each mglFont instance can be used
+     with _ONLY ONE_ mglGraph instance at a moment of time! If `f==""'
+     then default font is used.
+
+ -- Method on `mglGraph' (C++): `inline mglFont *' GetFont ()
+     Gets current typeface. Note that this variable can be deleted at
+     next SetFont() call!
+
+ -- _Obsolete option_ of mglGraph: `float' FontSize
+     The font size. See `SetFontSize()'.
+
+ -- _Obsolete option_ of mglGraph: `char' FontDef`[32]'
+     Font style. See `SetFontDef()'.
+
+ -- _Obsolete option_ of mglGraph: `bool' RotatedText
+     Set to use or not text rotation along axis.
+
+
+File: mathgl_en.info,  Node: Palette and colors,  Next: Error handling,  Prev: Font settings,  Up: Graphics setup
+
+3.1.8 Pallete and colors
+------------------------
+
+ -- Method on `mglGraph' (C++, Python): `void' SetPalette (`const char
+          *'COLORS)
+ -- C function: `void' mgl_set_palette (`HMGL' gr, `const char *'COLORS)
+     Sets the palette as selected colors. Default value is
+     `"Hbgrcmyhlnqeup"' that corresponds to colors: dark gray `H', blue
+     `b', green `g', red `r', cyan `c', magenta `m', yellow `y', gray
+     `h', blue-green `l', sky-blue `n', orange `q', yellow-green `e',
+     blue-violet `u', purple `p'. The palette is used mostly in 1D
+     plots (*note 1D plotting::) for curves which styles are not
+     specified.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetPalColor (`int' n,
+          `float' r, `float' g, `float' b)
+ -- C function: `void' mgl_set_pal_color (`HMGL' gr, `int' n, `float'
+          r, `float' g, `float' b)
+     Sets color for individual palette entry. Look at `SetPalette()'
+     function for simplified palette setting.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetPalNum (`int' num)
+ -- C function: `void' mgl_set_pal_num (`HMGL' gr, `int' num)
+     Sets the number of actual colors in palette. The value must be
+     less then 100.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetScheme (`const char
+          *'sch)
+ -- C function: `void' mgl_set_scheme (`HMGL' gr, `const char *'sch)
+     Set the color scheme for following plots. Usually this function is
+     used internally. *Note Color scheme::.
+
+ -- Method on `mglGraph' (C++): `void' SelectPen (`const char *'sch)
+     Set the line and mark styles for following plots. Usually this
+     function is used internally. *Note Line styles::.
+
+ -- _Obsolete option_ of mglGraph: `mglColor' Pal`[101]'
+     Color palette for *note 1D plotting::. See `SetPalette()'.
+
+ -- _Obsolete option_ of mglGraph: `int' NumPal
+     Number of actual colors in palette. See `SetPalette()'.
+
+
+File: mathgl_en.info,  Node: Error handling,  Next: Other settings,  Prev: Palette and colors,  Up: Graphics setup
+
+3.1.9 Error handling
+--------------------
+
+There are 2 variables which indicate the warnings/errors presence
+during plot creation. Normally user should set it to zero by
+`SetWarn(0);' before plotting and check if WARNCODE is not zero after
+plotting. Only last warning will be saved. All warnings/errors produced
+by MathGL is not critical - the plot just will not be drawn.
+
+ -- Method on `mglGraph' (C++): `void' SetWarn (`int' code, `const char
+          *'who=`""')
+     Set warning code and corresponding message from function WHO.
+     Normally you should call this function only for clearing the
+     warning state, i.e. call `SetWarn(0);'.
+
+ -- General option (C++) of mglGraph: `char *' Message
+     Pointer to buffer for writing messages about matters why some plot
+     are not drawn. Set to NULL to disable messages. The buffer length
+     must be at least 1024. If Message[0]==0 then there are no messages
+
+ -- Method on `mglGraph' (C++, Python): `int' GetWarnCode ()
+ -- C function: `int' mgl_get_warn_code (`HMGL' gr)
+     Return the numerical ID of warning about the not drawn plot.
+     Possible values are:
+    `mglWarnNone=0'
+          Everything OK
+
+    `mglWarnDim'
+          Data dimension(s) is incompatible
+
+    `mglWarnLow'
+          Data dimension(s) is too small
+
+    `mglWarnNeg'
+          Minimal data value is negative
+
+    `mglWarnFile'
+          No file or wrong data dimensions
+
+    `mglWarnMem'
+          Not enough memory
+
+    `mglWarnZero'
+          Data values are zero
+
+    `mglWarnLegA'
+          Too many legend entries
+
+    `mglWarnLeg'
+          No legend entries
+
+    `mglWarnSlc'
+          Slice value is out of range
+
+    `mglWarnCnt'
+          Number of contours is zero or negative
+
+    `mglWarnOpen'
+          Couldn't open file
+
+    `mglWarnLId'
+          Light: ID is out of range
+
+    `mglWarnSize'
+          Setsize: size(s) is zero or negative
+
+    `mglWarnFmt'
+          Format is not supported for that build
+
+ -- Obsolete option of mglGraph: `int' WarnCode
+     Numerical ID of warning about the not drawn plot.
+
+
+File: mathgl_en.info,  Node: Other settings,  Prev: Error handling,  Up: Graphics setup
+
+3.1.10 Other settings
+---------------------
+
+ -- Method on `mglGraph' (C++, Python): `void' SetMeshNum (`int' val)
+ -- C function: `void' mgl_set_meshnum (`HMGL' gr, `int' num)
+     Sets approximate number of lines in Mesh(), Fall(), Grid() and
+     also the number of hachures in Vect(), VectC(), Dew() and the
+     number of cells in Cloud*(). By default (=0) it draws all
+     lines/hachures/cells.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetAxialDir (`char' val)
+ -- C function: `' mgl_set_axial_dir (`HMGL' gr, `char' dir)
+     Sets direction around which curve rotated in Axial() and Torus().
+     Default value is 'z'.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetDrawFace (`bool' val)
+ -- C function: `void' mgl_set_draw_face (`HMGL' gr, `int' val)
+     Enable/disable faces drawing. It is useful for speeding up drawing
+     (for example, during rotation and so on).
+
+ -- General option (C++) of mglGraph: `const char *' PlotId
+     Id of plot for saving filename (in GLUT window for example).
+
+ -- _Obsolete option_ of mglGraph: `int' MeshNum
+     Sets approximate number of lines/hachures/cells. See
+     `SetMeshNum()'.
+
+ -- _Obsolete option_ of mglGraph: `char' AxialDir
+     Set rotation direction. See `SetAxialDir()'.
+
+ -- _Obsolete option_ of mglGraph: `bool' DrawFace
+     Flag for preventing faces drawing. See `SetDrawFace()'.
+
+ -- General option (C++) of mglGraph: `int' CirclePnts
+     Number of points used for a circle approximation (for example, in
+     *note Primitives drawing::, *note Tube::, *note Pipe:: and so on).
+     Default value is 40.
+
+ -- General option (C++) of mglGraph: `int' GridPnts
+     Number of points used for grid lines drawing (it is important for
+     curved coordinates). Default value is 50.
+
+
+File: mathgl_en.info,  Node: Axis settings,  Next: Transformation matrix,  Prev: Graphics setup,  Up: MathGL core
+
+3.2 Axis settings
+=================
+
+These large set of variables and functions control how the axis and
+ticks will be drawn. Note that there is 3-step transformation of data
+coordinates are performed. Firstly, coordinates are projected if
+`Cut=true' (*note Cutting::), after it transformation formulas are
+applied, and finally the data was normalized in bounding box.
+
+* Menu:
+
+* Ranges (bounding box)::
+* Curved coordinates::
+* Ticks::
+
+
+File: mathgl_en.info,  Node: Ranges (bounding box),  Next: Curved coordinates,  Up: Axis settings
+
+3.2.1 Ranges (bounding box)
+---------------------------
+
+ -- Method on `mglGraph' (C++, Python): `void' SetRanges (`float' x1,
+          `float' x2, `float' y1, `float' y2, `float' z1=`0', `float'
+          z2=`0')
+ -- Method on `mglGraph' (C++): `void' Axis (`mglPoint' min, `mglPoint'
+          max, `mglPoint' org=`mglPoint(NAN,NAN,NAN)')
+ -- C function: `void' mgl_set_axis_2d (`HMGL' gr, `float' x1, `float'
+          y1, `float' x2, `float' y2)
+ -- C function: `void' mgl_set_axis_3d (`HMGL' gr, `float' x1, `float'
+          y1, `float' z1, `float' x2, `float' y2, `float' z2)
+     Safely sets the value for MIN, MAX and ORG members (options) of
+     the class. If minimal and maximal values of the coordinate are the
+     same then they are ignored. This function also sets CMIN=`Min.z'
+     and CMAX=`Max.z'. This is default color range for 2d plots.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetCRange (`float' min,
+          `float' max)
+ -- Method on `mglGraph' (C++): `void' CAxis (`float' min, `float' max)
+ -- C function: `void' mgl_set_caxis (`HMGL' gr, `float' min, `float'
+          max)
+     Safely sets minimal and maximal values of data for coloring. This
+     values are used later for determining the color of the surface.
+
+ -- Method on `mglGraph' (C++, Python): `void' XRange (`const mglData
+          &' dat, `bool' add=`false', `float' fact=`0')
+ -- C function: `void' mgl_set_xrange (`HMGL' gr, `const HMDT' a, `int'
+          add)
+     Sets values of `Min.x' and `Max.x' as minimal and maximal values
+     of data A. Parameter ADD specify to add or not the new range to
+     current one. Parameter FACT add additional range increase on value
+     (MAX-MIN)*FACT. See also Axis().
+
+ -- Method on `mglGraph' (C++, Python): `void' YRange (`const mglData
+          &' dat, `bool' add=`false', `float' fact=`0')
+ -- C function: `void' mgl_set_yrange (`HMGL' gr, `const HMDT' a, `int'
+          add)
+     Sets values of `Min.y' and `Max.y' as minimal and maximal values
+     of data A. Parameter ADD specify to add or not the new range to
+     current one. Parameter FACT add additional range increase on value
+     (MAX-MIN)*FACT. See also Axis().
+
+ -- Method on `mglGraph' (C++, Python): `void' ZRange (`const mglData
+          &' dat, `bool' add=`false', `float' fact=`0')
+ -- C function: `void' mgl_set_zrange (`HMGL' gr, `const HMDT' a, `int'
+          add)
+     Sets values of `Min.z' and `Max.z' as minimal and maximal values
+     of data A. Parameter ADD specify to add or not the new range to
+     current one. Parameter FACT add additional range increase on value
+     (MAX-MIN)*FACT. See also Axis().
+
+ -- Method on `mglGraph' (C++, Python): `void' CRange (`const mglData
+          &' dat, `bool' add=`false', `float' fact=`0')
+ -- C function: `void' mgl_set_crange (`HMGL' gr, `const HMDT' a, `int'
+          add)
+     Sets values of `Cmin' and `Cmax' as minimal and maximal values of
+     data A. Parameter ADD specify to add or not the new range to
+     current one. Parameter FACT add additional range increase on value
+     (CMAX-CMIN)*FACT. See also CAxis().
+
+ -- Method on `mglGraph' (C++, Python): `void' SetAutoRanges (`float'
+          x1, `float' x2, `float' y1=`0', `float' y2=`0', `float'
+          z1=`0', `float' z2=`0')
+ -- C function: `void' mgl_set_auto (`HMGL' gr, `float' x1, `float' x2,
+          `float' y1, `float' y2, `float' z1, `float' z2)
+     Sets ranges for automatic variables of plots. It act as changing
+     of MIN, MAX proprties without calling of RecalcBorder(). Function
+     don't change the direction if minimal and maximal values are the
+     same. For example, if yY1=Y2 then ranges along y-direction will
+     not be changed (will be used previous one). Note that the
+     automatic range become axis range after next call of [XYZ]Range()
+     function(s).
+
+ -- Method on `mglGraph' (C++, Python): `void' SetOrigin (`float' x0,
+          `float' y0, `float' z0=`NAN')
+ -- C function: `void' mgl_set_origin (`HMGL' gr, `float' x0, `float'
+          y0, `float' z0)
+     Sets center of axis cross section. If one of values is NAN then
+     MathGL library try to select optimal axis position.
+
+ -- Method on `mglGraph' (C++): `void' RecalcBorder ()
+     Recalculates internal parameter for correct apply of
+     transformation rules. *Must be called* after any direct change of
+     members MIN, MAX, FX, FY, FZ if its changes should be seen on the
+     plot.
+
+ -- General option (C++) of mglGraph: `mglPoint' Min, Max
+     Lower and upper edges of bounding box for graphics. These
+     variables are used for determining the range of automatic
+     (non-specified) arrays in most of plotting functions. So, you may
+     change it before plot and return it back after it and the plot
+     will have automatic x-(y-,z-)coordinate normalized in this range
+     but not in bounding box. *BUT* if you want to change the bounding
+     box then you *must* call `RecalcBorder();' after it or use Axis()
+     function.
+
+ -- General option (C++) of mglGraph: `float' Cmin, Cmax
+     Minimal and maximal value for data (used for coloring).
+
+ -- General option (C++) of mglGraph: `mglPoint' Org
+     Center of axis cross section. If one of values is NAN then MathGL
+     library try to select optimal axis position.
+
+ -- General option (C++) of mglGraph: `bool' AutoOrg
+     Flag for automatic shifting of axes origin ORG if it lies out of
+     range MIN ... MAX.
+
+
+File: mathgl_en.info,  Node: Curved coordinates,  Next: Ticks,  Prev: Ranges (bounding box),  Up: Axis settings
+
+3.2.2 Curved coordinates
+------------------------
+
+ -- Method on `mglGraph' (C++, Python): `void' SetFunc (`const char
+          *'EqX, `const char *'EqY, `const char *'EqZ=`""', `const char
+          *'EqA=`""')
+ -- C function: `void' mgl_set_func (`HMGL' gr, `const char *'EqX,
+          `const char *'EqY, `const char *'EqZ)
+ -- C function: `void' mgl_set_func_ext (`HMGL' gr, `const char *'EqX,
+          `const char *'EqY, `const char *'EqZ, `const char *'EqA)
+     Sets transformation formulas for curvilinear coordinate. Each
+     string should contain mathematical expression for real coordinate
+     depending on internal coordinates `x', `y', `z' and `a' or `c' for
+     colorbar. For example, the cylindrical coordinates are introduced
+     as `Axis("x*cos(y)", "x*sin(y)", "z");'. For removing of formulas
+     the corresponding parameter should be empty or `NULL'. Using
+     transformation formulas will slightly slowing the program.
+     Parameter EQA set the similar transformation formula for color
+     scheme. *Note Textual formulas::.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetCoor (`int' how)
+ -- C function: `void' mgl_set_coor (`HMGL' gr, `int' how)
+     Sets one of the predefined transformation formulas for curvilinear
+     coordinate. Paramater HOW define the coordinates: `mglCartesian=0'
+     - Cartesian coordinates (no transformation); `mglPolar=1' - Polar
+     coordiantes x_n=x*cos(y),y_n=x*sin(y), z_n=z; `mglSpherical=2' -
+     Sperical coordinates x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z),
+     z_n=x*cos(y); `mglParabolic=3' - Parabolic coordinates x_n=x*y,
+     y_n=(x*x-y*y)/2, z_n=z; `mglParaboloidal=4' - Paraboloidal
+     coordinates x_n=(x*x-y*y)*cos(z)/2, y_n=(x*x-y*y)*sin(z)/2,
+     z_n=x*y; `mglOblate=5' - Oblate coordinates
+     x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z),
+     z_n=sinh(x)*sin(y); `mglProlate=6' - Prolate coordinates
+     x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z),
+     z_n=cosh(x)*cos(y); `mglElliptic=7' - Elliptic coordinates
+     x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z; `mglToroidal=8' -
+     Toroidal coordinates x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)),
+     y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y));
+     `mglBispherical=9' - Bispherical coordinates
+     x_n=sin(y)*cos(z)/(cosh(x)-cos(y)),
+     y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y));
+     `mglBipolar=10' - Bipolar coordinates
+     x_n=sinh(x)/(cosh(x)-cos(y)), y_n=sin(y)/(cosh(x)-cos(y)), z_n=z.
+
+ -- Method on `mglGraph' (C++, Python): `void' Ternary (`bool' tern)
+ -- C function: `void' mgl_set_ternary (`HMGL' gr, `int' tern)
+     The function sets to draws Ternary plot. This special plot is for
+     3 dependent coordinates (components) A, B, C so that A+B+C=1.
+     MathGL uses only 2 independent coordinates A=x and B=y since it is
+     enough to plot everything. At this third coordinate z act as
+     another parameter to produce contour lines, surfaces and so on.
+     *Note Ternary plot sample::, for sample code and picture.
+
+
+File: mathgl_en.info,  Node: Ticks,  Prev: Curved coordinates,  Up: Axis settings
+
+3.2.3 Ticks
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' AdjustTicks (`const char
+          *'dir=`"xyz"')
+ -- C function: `void' mgl_adjust_ticks (`HMGL' gr, `const char *'dir)
+     Set the ticks step, number of sub-ticks and initial ticks position
+     to be the most human readable for the axis along direction(s) DIR.
+     Also set `SetTuneTicks(true)'.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetTicks (`char' dir,
+          `float' d=`-5', `int' ns=`0', `float' org=`NAN')
+ -- C function: `void' mgl_set_ticks_dir (`HMGL' gr, `char' dir,
+          `float' d, `int' ns, `float' org)
+ -- C function: `void' mgl_set_ticks (`HMGL' gr, `float' dx, `float'
+          dy, `float' dz)
+ -- C function: `void' mgl_set_subticks (`HMGL' gr, `int' nx, `int' ny,
+          `int' nz)
+ -- C function: `void' mgl_set_tick_origin (`HMGL' gr, `float' x0,
+          `float' y0, `float' z0)
+     Set the ticks step D, number of sub-ticks NS and initial ticks
+     position ORG for the axis along direction DIR (use 'c' for
+     colorbar ticks). Variable D set step for axis ticks (if positive)
+     or it's number on the axis range (if negative). Zero value set
+     logarithmic ticks. If ORG value is NAN then value from ORG is used.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetTicksVal (`char' dir,
+          `int' n, `float *'val, `const char **'lbl)
+ -- Method on `mglGraph' (C++, Python): `void' SetTicksVal (`char' dir,
+          `int' n, `float *'val, `const wchar_t **'lbl)
+ -- Method on `mglGraph' (C++): `void' SetTicksVal (`char' dir, `int'
+          n, `float' val1, `wchar_t *'lbl1, ...)
+ -- C function: `void' mgl_set_ticks_vals (`HMGL' gr, `char' dir, `int'
+          n, `float *'val, `const char **'lbl)
+ -- C function: `void' mgl_set_ticks_val (`HMGL' gr, `char' dir, `int'
+          n, `double' val, `const char *'lbl, ...)
+     Set the manual positions VAL and its labels LBL for N-th ticks
+     along axis DIR. The arrays VAL and LBL must contain N elements.
+     Use `SetTicks()' to restore automatic ticks. Note, you *have to
+     be* very careful to use floating-point (not integer!!!) values as
+     ticks position due to limitations of stdarg library (argument
+     transfer). *Note Manual ticks sample::, for sample code and
+     picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetTuneTicks (`bool'
+          tune, `float' pos=`1.15')
+ -- C function: `void' mgl_tune_ticks (`HMGL' gr, `bool' tune, `float'
+          pos)
+     Switch on/off ticks enhancing by factoring common multiplier (for
+     small, like from 0.001 to 0.002, or large, like from 1000 to 2000,
+     coordinate values) or common component (for narrow range, like
+     from 0.999 to 1.000). Also set the position POS of common
+     multiplier/component on the axis: =0 at minimal axis value, =1 at
+     maximal axis value. Default value is 1.15.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetXTT (`const char
+          *'xtt)
+ -- Method on `mglGraph' (C++, Python): `void' SetYTT (`const char
+          *'ytt)
+ -- Method on `mglGraph' (C++, Python): `void' SetZTT (`const char
+          *'ztt)
+ -- Method on `mglGraph' (C++, Python): `void' SetCTT (`const char
+          *'ctt)
+ -- Method on `mglGraph' (C++, Python): `void' SetXTT (`const wchar_t
+          *'xtt)
+ -- Method on `mglGraph' (C++, Python): `void' SetYTT (`const wchar_t
+          *'ytt)
+ -- Method on `mglGraph' (C++, Python): `void' SetZTT (`const wchar_t
+          *'ztt)
+ -- Method on `mglGraph' (C++, Python): `void' SetCTT (`const wchar_t
+          *'ctt)
+ -- C function: `void' mgl_set_xttw (`HMGL' gr, `const wchar_t *'xtt)
+ -- C function: `void' mgl_set_yttw (`HMGL' gr, `const wchar_t *'ytt)
+ -- C function: `void' mgl_set_zttw (`HMGL' gr, `const wchar_t *'ztt)
+ -- C function: `void' mgl_set_cttw (`HMGL' gr, `const wchar_t *'ctt)
+ -- C function: `void' mgl_set_xtt (`HMGL' gr, `const wchar_t *'xtt)
+ -- C function: `void' mgl_set_ytt (`HMGL' gr, `const wchar_t *'ytt)
+ -- C function: `void' mgl_set_ztt (`HMGL' gr, `const wchar_t *'ztt)
+ -- C function: `void' mgl_set_ctt (`HMGL' gr, `const wchar_t *'ctt)
+     The template for x-,y-,z-axis ticks or colorbar ticks. It may
+     contain TeX symbols also. If XTT, YTT, ZTT, CTT=`""' then default
+     template is used (in simplest case it is `%.2g'). Setting of
+     template switch off automatic ticks tuning (see `SetTuneTicks()').
+
+ -- _Obsolete option_ of mglGraph: `float' dx, dy, dz
+     Step for axis ticks. See `SetTicks()'.
+
+ -- _Obsolete option_ of mglGraph: `int' NSx, NSy, NSz
+     Number of axis sub-ticks. See `SetTicks()'.
+
+ -- _Obsolete option_ of mglGraph: `mglPoint' OrgT
+     Starting point for ticks. See `SetTicks()'.
+
+ -- _Obsolete option_ of mglGraph: `bool' TuneTicks
+     Switch on/off ticks enhancing by factoring common multiplier. See
+     `SetTuneTicks()'.
+
+ -- _Obsolete option_ of mglGraph: `float' FactorPos
+     The position of common multiplier/component on the axis. See
+     `SetTuneTicks()'.
+
+
+File: mathgl_en.info,  Node: Transformation matrix,  Next: Export to file,  Prev: Axis settings,  Up: MathGL core
+
+3.3 Transformation matrix
+=========================
+
+These functions control how and where further plotting will be placed.
+There is a curtain order of calling of these functions for the better
+plot view. First one should be SubPlot() or InPlot() for specifying the
+place. After it a Rotate() and Aspect(). And finally any other plotting
+functions may be called. Alternatevely you can use ColumnPlot() for
+position plots in the column one by another without gap between plot
+axis (bounding boxes).
+
+ -- Method on `mglGraph' (C++, Python): `void' SubPlot (`int' nx, `int'
+          ny, `int' m, `float' dx=`0', `float' dy=`0')
+ -- C function: `void' mgl_subplot (`HMGL' gr, `int' nx, `int' ny,
+          `int' m)
+ -- C function: `void' mgl_subplot_d (`HMGL' gr, `int' nx, `int' ny,
+          `int' m, `float' dx, `float' dy)
+     Puts further plotting in a M-th cell of NX*NY grid of the whole
+     frame area. This function set off any aspects or rotations. So it
+     should be used first for creating the subplot. From the
+     aesthetical point of view it is not recommended to use this
+     function with different matrices in the same frame. The position
+     of the cell can be shifted from its default position by relative
+     size DX, DY.
+
+ -- Method on `mglGraph' (C++, Python): `void' SubPlot (`int' nx, `int'
+          ny, `int' m, `const char *'style)
+ -- C function: `void' mgl_subplot_s (`HMGL' gr, `int' nx, `int' ny,
+          `int' m, `const char *'style)
+     The same as previous but space reserved for axis/colorbar is saved
+     only if STYLE contain: `L' or `<' - at left side, `R' or `>' - at
+     right side, `A' or `^' - at top side, `U' or `_' - at bottom side.
+
+ -- Method on `mglGraph' (C++, Python): `void' InPlot (`float' x1,
+          `float' x2, `float' y1, `float' y2, `bool' rel=`false')
+ -- C function: `void' mgl_inplot (`HMGL' gr, `float' x1, `float' x2,
+          `float' y1, `float' y2)
+ -- C function: `void' mgl_relplot (`HMGL' gr, `float' x1, `float' x2,
+          `float' y1, `float' y2)
+     Puts further plotting in some region of the whole frame surface.
+     This function allows one to create a plot in arbitrary place of
+     the screen. The position is defined by rectangular coordinates
+     [X1, X2]*[Y1, Y2]. The coordinates X1, X2, Y1, Y2 are normalized
+     to interval [0, 1]. If parameter REL=`true' then the relative
+     position to current SubPlot() (or last InPlot() with REL=`false')
+     is used. This function set off any aspects or rotations. So it
+     should be used first for creating subplot.
+
+ -- Method on `mglGraph' (C++, Python): `void' ColumnPlot (`int' num,
+          `int' ind, `float' d=`0')
+ -- C function: `void' mgl_columnplot (`HMGL' gr, `int' num, `int' ind)
+ -- C function: `void' mgl_columnplot_d (`HMGL' gr, `int' num, `int'
+          ind, `float' d)
+     Puts further plotting in IND-th cell of column with NUM cells. The
+     position is relative to previous SubPlot() call (or InPlot() with
+     REL=`false'). Parameter D set extra gap between cells. *Note
+     ColumnPlot sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' StickPlot (`int' num,
+          `int' ind, `float' tet, `float' phi)
+ -- C function: `void' mgl_stickplot (`HMGL' gr, `int' num, `int' ind,
+          `float' tet, `float' phi)
+     Puts further plotting in IND-th cell of stick with NUM cells. At
+     this, stick is rotated on angles TET, PHI. The position is
+     relative to previous SubPlot() call (or InPlot() with
+     REL=`false'). *Note StickPlot sample::, for sample code and
+     picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Rotate (`float' TetX,
+          `float' TetZ, `float' TetY=`0')
+ -- C function: `void' mgl_rotate (`HMGL' gr, `float' TetX, `float'
+          TetZ, `float' TetY)
+     Rotates a further plotting relative to each axis {x, z, y}
+     consecutively on angles TETX, TETZ, TETY.
+
+ -- Method on `mglGraph' (C++, Python): `void' RotateN (`float' Tet,
+          `float' x, `float' y, `float' z)
+ -- C function: `void' mgl_rotate_vector (`HMGL' gr, `float Tet',
+          `float x', `float y', `float z')
+     Rotates a further plotting around vector {X, Y, Z} on angle TET.
+
+ -- Method on `mglGraph' (C++, Python): `void' Aspect (`float' Ax,
+          `float' Ay, `float' Az)
+ -- C function: `void' mgl_aspect (`HMGL' gr, `float' Ax, `float' Ay,
+          `float' Az)
+     Defines aspect ratio for the plot. The viewable axes will be
+     related one to another as the ratio AX:AY:AZ. For the best effect
+     it should be used after Rotate() function.
+
+ -- Method on `mglGraph' (C++, Python): `void' Perspective (`float' a)
+ -- C function: `void' mgl_perspective (`HMGL' gr, `float' a)
+     Add (switch on) the perspective to plot. The parameter a ~
+     1/z_{eff} \in [0,1). By default (`a=0') the perspective is off.
+
+ -- Method on `mglGraph' (C++, Python): `void' Identity (`bool'
+          rel=`false')
+ -- C function: `void' mgl_identity (`HMGL' gr, `int' rel)
+     Clears transformation matrix. This function clears all previous
+     effects of Aspect(), SubPlot(), InPlot() or Rotate() functions. It
+     is equivalent to the call of `InPlot(0,1,0,1,rel)'.
+
+ -- Method on `mglGraph' (C++, Python): `void' Push ()
+ -- C function: `void' mgl_mat_push (`HMGL' gr)
+     Push transformation matrix into stack. Later you can restore its
+     current state by Pop() function. Stack can keep up to 10 matrices.
+
+ -- Method on `mglGraph' (C++, Python): `void' Pop ()
+ -- C function: `void' mgl_mat_pop (`HMGL' gr)
+     Pop (restore last 'pushed') transformation matrix into stack.
+
+
+File: mathgl_en.info,  Node: Export to file,  Next: Primitives drawing,  Prev: Transformation matrix,  Up: MathGL core
+
+3.4 Export to file
+==================
+
+These functions export current view to a graphic file. The filename
+FNAME should have appropriate extension. Parameter DESCR gives the
+short description of the picture. Just now the transparency is
+supported in PNG and SVG files.
+
+ -- Method on `mglGraph' (C++, Python): `void' WriteFrame (`const char
+          *'fname=`""', `const char *'descr=`""')
+ -- C function: `void' mgl_write_frame (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+     Exports current frame to a file FNAME which type is determined by
+     the extension. Parameter DESCR adds description to file (can be
+     `""'). If FNAME=`""' then the file `frame####.jpg' is used, where
+     `####' is current frame id and name `frame' is defined by PLOTID
+     class property.
+
+ -- Method on `mglGraph' (C++, Python): `void' WritePNG (`const char
+          *'fname, `const char *'descr=`""', `int' compr=`""', `bool'
+          alpha=`true')
+ -- C function: `void' mgl_write_png (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+ -- C function: `void' mgl_write_png_solid (`HMGL' gr, `const char
+          *'fname, `const char *'descr)
+     Exports current frame to PNG file. Parameter FNAME specifies the
+     file name, DESCR adds description to file, ALPHA gives the
+     transparency type. By default there are no description added and
+     transparent image used. This function does nothing if NO_PNG is
+     defined during compilation of MathGL library.
+
+ -- Method on `mglGraph' (C++, Python): `void' WriteJPEG (`const char
+          *'fname, `const char *'descr=`""')
+ -- C function: `void' mgl_write_jpg (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+     Exports current frame to JPEG file. Parameter FNAME specifies the
+     file name, DESCR adds description to file. By default there is no
+     description added. This function does nothing if NO_JPEG is
+     defined during compilation of MathGL library.
+
+ -- Method on `mglGraph' (C++, Python): `void' WriteGIF (`const char
+          *'fname, `const char *'descr=`""')
+ -- C function: `void' mgl_write_gif (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+     Exports current frame to GIF file. Parameter FNAME specifies the
+     file name, DESCR adds description to file. By default there is no
+     description added.
+
+ -- Method on `mglGraph' (C++, Python): `void' WriteBMP (`const char
+          *'fname, `const char *'descr=`""')
+ -- C function: `void' mgl_write_bmp (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+     Exports current frame to BMP file. Parameter FNAME specifies the
+     file name, DESCR adds description to file. There is no compression
+     used.
+
+ -- Method on `mglGraph' (C++, Python): `void' WriteEPS (`const char
+          *'fname, `const char *'descr=`""')
+ -- C function: `void' mgl_write_eps (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+     Exports current frame to EPS file. The vector representation is
+     used if possible. So it is not recommended for the export of large
+     data plot. It is better to use bitmap format (for example PNG or
+     JPEG). However, program has no internal limitations for size of
+     output file. Parameter FNAME specifies the file name, DESCR adds
+     description to file. By default there is no description added. If
+     file name is terminated by `z' (for example, `fname.eps.gz') then
+     file will be compressed in gzip format.
+
+ -- Method on `mglGraph' (C++, Python): `void' WriteSVG (`const char
+          *'fname, `const char *'descr=`""')
+ -- C function: `void' mgl_write_svg (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+     Exports current frame to SVG (Scalable Vector Graphics) file. The
+     vector representation is used. In difference of EPS format, SVG
+     format support transparency that allows to correctly draw
+     half-transparent plot (like SurfA(), Surf3A(), CloudQ() or
+     CloudP()). Note, the output file may be too large for graphic of
+     large data array (especially for surfaces). It is better to use
+     bitmap format (for example PNG or JPEG). However, program has no
+     internal limitations for size of output file. Parameter FNAME
+     specifies the file name, DESCR adds description to file (default
+     is file name). If file name is terminated by `z' (for example,
+     `fname.svgz') then file will be compressed in gzip format.
+
+ -- Method on `mglGraph' (C++, Python): `void' WriteIDTF (`const char
+          *'fname, `const char *'descr=`""')
+ -- C function: `void' mgl_write_idtf (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+     Exports current frame to IDTF file. Later this file can be
+     converted to U3D format. The vector representation is used. So,
+     the output file may be too large for graphic of large data array
+     (especially for surfaces). However, program has no internal
+     limitations for size of output file. Parameter FNAME specifies the
+     file name, DESCR adds description to file (default is file name).
+
+ -- Method on `mglGraph' (C++, Python): `void' ShowImage (`const char
+          *'viewer=`"kuickshow"', `bool' nowait=`false')
+ -- C function: `void' mgl_show_image (`const char *'viewer, `int'
+          nowait)
+     Displays the current picture using external program VIEWER for
+     viewing. The function save the picture to temporary file and call
+     VIEWER to display it. If NOWAIT=`true' then the function return
+     immediately (it will not wait while window will be closed).
+
+ -- Method on `mglGraph' (C++, Python): `void' SetSize (`int' width,
+          `int' height)
+ -- C function: `void' mgl_set_size (`HMGL' gr, `int' width, `int'
+          height)
+     Sets size of picture in pixels. This function *must be* called
+     before any other plotting because it completely remove picture
+     contents.
+
+ -- Method on `mglGraph' (C++, Python): `void' Flush ()
+ -- C function: `void' mgl_flush (`HMGL' gr)
+     Flushes the plotting commands to frame. This function may be
+     useful if one wants to remove array before the finishing of the
+     plot (i.e. before calling `Finish()'). Also call of this function
+     separate the objects in mglGraphIDTF. Most of plots call this
+     function internally.
+
+ -- Method on `mglGraph' (C++): `void' Finish ()
+     Finishes plotting and create a picture. Normally this function is
+     called internally.
+
+
+File: mathgl_en.info,  Node: Primitives drawing,  Next: Text printing,  Prev: Export to file,  Up: MathGL core
+
+3.5 Primitives drawing
+======================
+
+These functions draw some simple objects like line, point, sphere,
+drop, cone and so on.
+
+ -- Method on `mglGraph' (C++, Python): `void' Clf (`mglColor'
+          Back=`WC')
+ -- C function: `void' mgl_clf (`HMGL' gr)
+ -- C function: `void' mgl_clf_rgb (`HMGL' gr, `float' r, `float' g,
+          `float' b)
+     Clear the picture and fill it by color BACK.
+
+ -- Method on `mglGraph' (C++): `void' Ball (`float' x, `float' y,
+          `float' z, `mglColor' col=`RC', `float' alpha=`1')
+ -- Method on `mglGraph' (C++): `void' Ball (`mglPoint' p, `char'
+          col=`'r'')
+ -- Method on `mglGraph' (Python): `void' Ball (`float' x, `float' y,
+          `float' z, `char' col=`'r'')
+ -- C function: `void' mgl_ball (`HMGL' gr, `float' x, `float' y,
+          `float' z)
+ -- C function: `void' mgl_ball_rgb (`HMGL' gr, `float' x, `float' y,
+          `float' z, `float' r, `float' g, `float' b, `float' alpha)
+ -- C function: `void' mgl_ball_str (`HMGL' gr, `float' x, `float' y,
+          `float' z, `char' col)
+     Draws a point (ball) at position P={X, Y, Z} with color COL.
+
+ -- Method on `mglGraph' (C++): `void' Error (`mglPoint' p, `mglPoint'
+          e, `char' *pen=`""')
+     Draws a 3d error box at position P with sizes E and style PEN.
+
+ -- Method on `mglGraph' (C++): `void' Line (`mglPoint' p1, `mglPoint'
+          p2, `char *'stl=`"B"', `int'num=`2')
+ -- Method on `mglGraph' (Python): `void' Line (`float' x1, `float' y1,
+          `float' z1, `float' x2, `float' y2, `float' z2, `char
+          *'stl=`"B"', `int'num=`2')
+ -- C function: `void' mgl_line (`HMGL' gr, `float' x1, `float' y1,
+          `float' z1, `float' x2, `float' y2, `float' z2, `char *'stl,
+          `int'num)
+     Draws a geodesic line (straight line in Cartesian coordinates)
+     from point P1 to P2 using line style STL. Parameter NUM define the
+     "quality" of the line. If NUM=`2' then the stright line will be
+     drawn in all coordinate system (independently on transformation
+     formulas (*note Curved coordinates::). Contrary, for large values
+     (for example, =`100') the geodesic line will be drawn in
+     corresponding coordinate system (straight line in Cartesian
+     coordinates, circle in polar coordinates and so on). Line will be
+     drawn even if it lies out of bounding box.
+
+ -- Method on `mglGraph' (C++): `void' Curve (`mglPoint' p1, `mglPoint'
+          d1, `mglPoint' p2, `mglPoint' d2, `const char *'stl=`"B"',
+          `int' num=`100')
+ -- Method on `mglGraph' (Python): `void' Curve (`float' x1, `float'
+          y1, `float' z1, `float' dx1, `float' dy1, `float' dz1,
+          `float' x2, `float' y2, `float' z2, `float' dx2, `float' dy2,
+          `float' dz2, `const char *'stl=`"B"', `int' num=`100')
+ -- C function: `void' mgl_curve (`HMGL' gr, `float' x1, `float' y1,
+          `float' z1, `float' dx1, `float' dy1, `float' dz1, `float'
+          x2, `float' y2, `float' z2, `float' dx2, `float' dy2, `float'
+          dz2, `const char *'stl, `int' num)
+     Draws Bezier-like curve from point P1 to P2 using line style STL.
+     At this tangent is codirected with D1, D2 and proportional to its
+     amplitude. Parameter NUM define the "quality" of the curve. If
+     NUM=`2' then the straight line will be drawn in all coordinate
+     system (independently on transformation formulas *note Curved
+     coordinates::). Contrary, for large values (for example, =`100')
+     the spline like Bezier curve will be drawn in corresponding
+     coordinate system. Curve will be drawn even if it lies out of
+     bounding box.
+
+ -- Method on `mglGraph' (C++): `void' Face (`mglPoint' p1, `mglPoint'
+          p2, `mglPoint' p3, `mglPoint' p4, `const char *'stl=`"w"',
+          `int' num=`2', `float' val=`NAN')
+     Draws the solid quadrangle (face) with vertexes P1, P2, P3, P4 and
+     with color(s) STL. At this colors can be the same for all vertexes
+     or different if all 4 colors are specified for each vertex. In
+     first case parameter VAL (if not `NAN') set the color according
+     color scheme. Face will be drawn even if it lies out of bounding
+     box.
+
+ -- Method on `mglGraph' (C++, Python): `void' FaceX (`float' x0,
+          `float' y0, `float' z0, `float' wy, `float' wz, `const char
+          *'stl=`"w"', `float' dx=`0', `float' dy=`0')
+ -- Method on `mglGraph' (C++, Python): `void' FaceY (`float' x0,
+          `float' y0, `float' z0, `float' wx, `float' wz, `const char
+          *'stl=`"w"', `float' dx=`0', `float' dy=`0')
+ -- Method on `mglGraph' (C++, Python): `void' FaceZ (`float' x0,
+          `float' y0, `float' z0, `float' wx, `float' wy, `const char
+          *'stl=`"w"', `float' dx=`0', `float' dy=`0')
+ -- C function: `void' mgl_facex (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `float' wy, `float' wz, `const char *'stl,
+          `float' d1, `float' d2)
+ -- C function: `void' mgl_facey (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `float' wx, `float' wz, `const char *'stl,
+          `float' d1, `float' d2)
+ -- C function: `void' mgl_facez (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `float' wx, `float' wy, `const char *'stl,
+          `float' d1, `float' d2)
+     Draws the solid rectangle (face) perpendicular to [x,y,z]-axis
+     correspondingly at position {X0, Y0, Z0} with color STL and with
+     widths WX, WY, WZ along corresponding directions. At this colors
+     can be the same for all vertexes or separately if all 4 colors are
+     specified for each vertex. Parameters D1!=0, D2!=0 set additional
+     shift of the last vertex (i.e. to draw quadrangle).
+
+ -- Method on `mglGraph' (C++): `void' Sphere (`mglPoint' p, `float' r,
+          `const char *'stl=`"r"')
+ -- Method on `mglGraph' (Python): `void' Sphere (`float' x0, `float'
+          y0, `float' z0, `float' r, `const char *'stl=`"r"')
+ -- C function: `void' mgl_sphere (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `float' r, `const char *'stl)
+     Draw the sphere with radius R and center at point P={X, Y, Z} and
+     color STL.
+
+ -- Method on `mglGraph' (C++): `void' Drop (`mglPoint' p, `mglPoint'
+          q, `float' r, `mglColor' col, `float' shift=`1', `float'
+          ap=`1')
+ -- Method on `mglGraph' (C++): `void' Drop (`mglPoint' p, `mglPoint'
+          q, `float' r, `const char *'col="r", `float' shift=`1',
+          `float' ap=`1')
+ -- Method on `mglGraph' (Python): `void' Drop (`float' x0, `float' y0,
+          `float' z0, `float' dx, `float' dy, `float' dz, `float' r,
+          `const char *'col="r", `float' shift=`1', `float' ap=`1')
+ -- C function: `void' mgl_drop (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `float' dx, `float' dy, `float' dz, `float' r,
+          `const char *'col, `float' shift, `float' ap)
+     Draw the drop with radius R at point P elongated in direction Q
+     and with color COL. Parameter SHIFT set the degree of drop
+     oblongness: `0' is sphere, `1' is maximally oblongness drop.
+     Parameter AP set relative width of the drop (this is analogue of
+     "ellipticity" for the sphere). *Note Drops sample::, for sample
+     code and picture.
+
+ -- Method on `mglGraph' (C++): `void' Cone (`mglPoint' p1, `mglPoint'
+          p2, `float' r1, `float' r2=`-1', `const char *'stl=`"B"',
+          `bool' edge=`false')
+ -- Method on `mglGraph' (Python): `void' Cone (`float' x1, `float' y1,
+          `float' z1, `float' x2, `float' y2, `float' z2, `float' r1,
+          `float' r2=`-1', `const char *'stl=`"B"', `bool' edge=`false')
+ -- C function: `void' mgl_cone (`HMGL' gr, `float' x1, `float' y1,
+          `float' z1, `float' x2, `float' y2, `float' z2, `float' r1,
+          `float' r2, `const char *'stl, `int' draw_edge)
+     Draw tube (or truncated cone if EDGE=`false') between points P1,
+     P2 with radius at the edges R1, R2. If R2<0 then it is supposed
+     that R2=R1. The cone color is defined by string STL.
+
+ -- Method on `mglGraph' (C++): `void' Mark (`mglPoint' p, `char'
+          mark=`'.'')
+ -- Method on `mglGraph' (Python): `void' Mark (`float' x, `float' y,
+          `float' z, `char' mark=`'.'')
+ -- C function: `void' mgl_mark (`HMGL' gr, `float' x, `float' y,
+          `float' z, `char' mark)
+     Draws a marks of different type at position P.
+
+ -- Method on `mglGraph' (C++): `void' Glyph (`float' x, `float' y,
+          `float' f, `int' nt, `const short *'trig, `int' nl, `const
+          short *'line)
+     Draw a set of triangles (or lines if TRIG=`NULL') for glyph which
+     is placed at point {X, Y}. Values in the arrays are normalized by
+     factor F. Normally this function is used internally.
+
+
+File: mathgl_en.info,  Node: Text printing,  Next: Axis and Colorbar,  Prev: Primitives drawing,  Up: MathGL core
+
+3.6 Text printing
+=================
+
+These functions draw the text. There are functions for drawing text in
+arbitrary place, in arbitrary direction and along arbitrary curve. The
+class mglFont (*note mglFont class::) is used for low-level string
+parsing and printing. It can use arbitrary font-faces and parse many
+TeX commands (for detail *note Font styles::). All these functions have
+2 variant: for printing 8-bit text (`char *') and for printing Unicode
+text (`wchar_t *'). In first case the conversion in current locale is
+used. So sometimes you need to specify it by `setlocale()' function.
+The size argument control the size of text: if positive it give the
+value, if negative it give the value relative to FONTSIZE. The font
+type (STIX, arial, courier, times and so on) can be selected by
+function SetFont(), GetFont(). *Note Font settings::.
+
+   The font parameters are described by string. This string may contain
+several characters of font type (`rbiwou') and/or align (`LRC')
+specification. Also it may contain the text color `wkrgbcymhRGBCYMHW'
+(*note Line styles::) after symbol `:'. The font types are: `r' - roman
+font, `i' - italic style, `b' - bold style, `w' - wired style, `o' -
+over-lined text, `u' - underlined text. By default roman font is used.
+The align types are: `L' - align left (default), `C' - align center,
+`R' - align right. For example, string `iC:b' correspond to italic font
+style for centered text which printed by blue color.
+
+   If string contains symbols `aA' then text is printed at arbitrary
+position {X, Y} (supposed to be in range [0,1]) of subplot (for `a') or
+picture (for `A').
+
+ -- Method on `mglGraph' (C++): `void' Puts (`mglPoint' p, `const char
+          *'text, `const char *'font=`""', `float' size=`-1', `char'
+          dir=`0', `float' shift=`0')
+ -- Method on `mglGraph' (C++): `void' Putsw (`mglPoint' p, `const
+          wchar_t *'text, `const char *'font=`""', `float' size=`-1',
+          `char' dir=`0', `float' shift=`0')
+ -- Method on `mglGraph' (Python): `void' Puts (`float' x, `float' y,
+          `float' z, `const char *'text, `const char *'font=`""',
+          `float' size=`-1', `char' dir=`0')
+ -- C function: `void' mgl_puts (`HMGL' gr, `float' x, `float' y,
+          `float' z, `const char *'text)
+ -- C function: `void' mgl_putsw (`HMGL' gr, `float' x, `float' y,
+          `float' z, `const wchar_t *'text)
+ -- C function: `void' mgl_puts_ext (`HMGL' gr, `float' x, `float' y,
+          `float' z, `const char *'text, `const char *'font, `float'
+          size, `char' dir)
+ -- C function: `void' mgl_putsw_ext (`HMGL' gr, `float' x, `float' y,
+          `float' z, `const wchar_t *'text, `const char *'font, `float'
+          size, `char' dir)
+     The function plots the string TEXT at position P with fonts
+     specifying by the criteria HOW. The size of font is set by SIZE
+     parameter (default is FONTSIZE). Parameter DIR specifies the
+     additional string align. The aligns are: `x' - align as x-label,
+     `y' - align as y-label, `z' - align as z-label, `i' - align as
+     x-label but inverse writing direction, `t' - no align (default),
+     `n' - align in x-y plane.
+
+ -- Method on `mglGraph' (C++): `float' Puts (`mglPoint' p, `mglPoint'
+          l, `const char *'text, `char'where=`'t'', `float' size=`-1')
+ -- Method on `mglGraph' (C++): `float' Putsw (`mglPoint' p, `mglPoint'
+          l, `const wchar_t *'text, `char'where=`'t'', `float'
+          size=`-1')
+ -- Method on `mglGraph' (Python): `void' Puts (`float' x, `float' y,
+          `float' z, `float' dx, `float' dy, `float' dz, `const char
+          *'text, `char'where=`'t'', `float' size=`-1')
+ -- C function: `void' mgl_puts_dir (`HMGL' gr, `float' x, `float' y,
+          `float' z, `float' dx, `float' dy, `float' dz, `const char
+          *'text, `float' size)
+ -- C function: `void' mgl_putsw_dir (`HMGL' gr, `float' x, `float' y,
+          `float' z, `float' dx, `float' dy, `float' dz, `const wchar_t
+          *'text, `float' size)
+     The function plots the string TEXT at position P along direction L
+     with specified SIZE. Parameter WHERE set to print text above the
+     line (`T') or under the line (`t'). Function return the width of
+     the string.
+
+ -- Method on `mglGraph' (C++): `void' Text (`mglPoint' p, `const char
+          *'text, `const char *'font=`""', `float' size=`-1', `char'
+          dir=`0')
+ -- Method on `mglGraph' (C++): `void' Text (`mglPoint' p, `const
+          wchar_t *'text, `const char *'font=`""', `float' size=`-1',
+          `char' dir=`0')
+     The function plots the string TEXT at position P with fonts HOW.
+     These functions are obsolete - use Puts(), Putsw() functions
+     instead.
+
+ -- Method on `mglGraph' (C++): `void' Printf (`mglPoint' p, `const
+          char *'arg, ...)
+     Print formatted string at point P.
+
+ -- Method on `mglGraph' (C++): `void' Label (`float' x, `float' y,
+          `const char *'text, `const char *'font=`""', `float'
+          size=`-1')
+ -- Method on `mglGraph' (C++): `void' Labelw (`float' x, `float' y,
+          `const wchar_t *'text, `const char *'font=`""', `float'
+          size=`-1')
+ -- C function: `void' mgl_label_xy (`HMGL' gr, `float' x, `float' y,
+          `const char *'text, `const char *'font, `float' size)
+ -- C function: `void' mgl_labelw_xy (`HMGL' gr, `float' x, `float' y,
+          `const wchar_t *'text, `const char *'font, `float' size)
+     The function draws the string TEXT at position {X, Y} with fonts
+     specifying by FONT. The size of font is set by SIZE parameter
+     (default is FONTSIZE). Coordiantes `x, y' are supposed to be in
+     range [0,1].
+
+ -- Method on `mglGraph' (C++): `void' Title (`const char *'text,
+          `const char *'font=`0', `float' size=`-2')
+ -- Method on `mglGraph' (C++): `void' Title (`const wchar_t *'text,
+          `const char *'font=`0', `float' size=`-2')
+ -- Method on `mglGraph' (Python): `void' Title (`const char *'text,
+          `const char *'font=`0', `int' size=`-2')
+ -- C function: `void' mgl_title (`HMGL' gr, `const char *'text, `const
+          char *'font, `int' size)
+ -- C function: `void' mgl_titlew (`HMGL' gr, `const wchar_t *'text,
+          `const char *'font, `int' size)
+     Print string TEXT as title of the picture (at the top of the
+     picture). Can be used at any place (even inside SubPlot()).
+
+ -- Method on `mglGraph' (C++, Python): `void' Text (`const mglData
+          &'y, `const char *'text, `const char *'font=`""', float
+          size=`-1')
+ -- Method on `mglGraph' (C++): `void' Text (`const mglData &'y, `const
+          wchar_t *'text, `const char *'font=`""', float size=`-1')
+ -- Method on `mglGraph' (C++, Python): `void' Text (`const mglData
+          &'x, `const mglData &'y, `const char *'text, `const char
+          *'font=`""', float size=`-1')
+ -- Method on `mglGraph' (C++): `void' Text (`const mglData &'x, `const
+          mglData &'y, `const wchar_t *'text, `const char *'font=`""',
+          float size=`-1')
+ -- Method on `mglGraph' (C++, Python): `void' Text (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'text, `const char *'font=`""', float size=`-1')
+ -- Method on `mglGraph' (C++): `void' Text (`const mglData &'x, `const
+          mglData &'y, `const mglData &'z, `const wchar_t *'text,
+          `const char *'font=`""', float size=`-1')
+ -- C function: `void' mgl_text_y (`HMGL' gr, `const HMDT' y, `const
+          char *'text, `const char *'font, float size)
+ -- C function: `void' mgl_text_xy (`const HMDT' x, `const HMDT' y,
+          `const char *'text, `const char *'font, float size)
+ -- C function: `void' mgl_text_xyz (`const HMDT' x, `const HMDT' y,
+          `const HMDT' z, `const char *'text, `const char *'font, float
+          size)
+     The function draws TEXT along the curve between points {X[i],
+     Y[i], Z[i]} by font style FONT and with size SIZE. The string FONT
+     may contain symbols `t' for printing the text under the curve
+     (default), or `T' for printing the text above the curve. The sizes
+     of 1st dimension must be equal for all arrays `x.nx=y.nx=z.nx'. If
+     array X is not specified then its an automatic array is used with
+     values equidistantly distributed in interval [MIN.x, MAX.x] (*note
+     Ranges (bounding box)::). If array Z is not specified then Z[i] =
+     ZVAL is used. *Note Text sample::, for sample code and picture.
+
+
+File: mathgl_en.info,  Node: Axis and Colorbar,  Next: Legend,  Prev: Text printing,  Up: MathGL core
+
+3.7 Axis and Colorbar
+=====================
+
+These functions draw the "things for measuring", like axis with ticks,
+colorbar with ticks, grid along axis, bounding box and labels for axis.
+For more information *note Axis settings::.
+
+ -- Method on `mglGraph' (C++, Python): `void' Axis (`const char
+          *'dir=`"xyz"', `bool' adjust=`false')
+ -- C function: `void' mgl_axis (`HMGL' gr, `const char *'dir)
+     Draws axes with ticks (*note Axis settings::) in directions
+     determined by string parameter DIR.If string contain the symbol
+     `_' then tick labels are not printed. Font for ticks labels is
+     determined by FONTDEF (*note Font settings::). Ticks will be
+     adjusted if ADJUST=`true' (by call of `AdjustTicks()'). You may
+     specified an arrow at the end of axis (see *note Line styles::)
+
+ -- Method on `mglGraph' (C++, Python): `void' Colorbar (`const char
+          *'sch=`""', `int' where=`0')
+ -- C function: `void' mgl_colorbar (`HMGL' gr, `const char *'sch,
+          `int' where)
+     Draws colorbar with color scheme SCH (current scheme if `sch=""')
+     at edge of plot. Parameter WHERE specifies the position of the
+     colorbar: `0' - at right (default), `1' - at left, `2' - at top,
+     `3' - at bottom. If string SCH contains `<>^_' then the parameter
+     POS is defined as: `pos=0' for `>' (right), `pos=1' for `<'
+     (left), `pos=2' for `^' (top), `pos=3' for `_' (bottom). If string
+     have `A' then absolute (relative to picture) coordinates is used.
+     *Note Dens sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Colorbar (`const mglData
+          &'v, `const char *'sch=`""', `int' where=`0')
+ -- C function: `void' mgl_colorbar_val (`HMGL' gr, `const HMDT' v,
+          `const char *'sch, `int' where)
+     The same as previous but with sharp colors SCH (current palette if
+     `sch=""') for values V. *Note ContD sample::, for sample code and
+     picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Colorbar (`const char
+          *'sch, `int' where, `float' x, `float' y, `float' w, `float'
+          h)
+ -- Method on `mglGraph' (C++, Python): `void' Colorbar (`int' where,
+          `float' x, `float' y, `float' w, `float' h)
+ -- C function: `void' mgl_colorbar_ext (`HMGL' gr, `const char *'sch,
+          `int' where, `float' x, `float' y, `float' w, `float' h)
+     The same as first one but at arbitrary position of subplot {X, Y}
+     (supposed to be in range [0,1]). Parameters W, H set the relative
+     width and height of the colorbar.
+
+ -- Method on `mglGraph' (C++): `void' Colorbar (`const mglData &'v,
+          `const char *'sch, `int' where, `float' x, `float' y, `float'
+          w, `float' h)
+     The same as previous but with sharp colors SCH (current palette if
+     `sch=""') for values V. *Note ContD sample::, for sample code and
+     picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Grid (`const char
+          *'dir=`"xyz"', `const char *'pen=`"B-"')
+ -- C function: `void' mgl_axis_grid (`HMGL' gr, `const char *'dir,
+          `const char *'pen)
+     Draws grid lines perpendicular to direction determined by string
+     parameter DIR. The step of grid lines is the same as tick step for
+     an Axis(). The style of lines is determined by PEN parameter
+     (default value is dark blue solid line `B-').
+
+ -- Method on `mglGraph' (C++, Python): `void' Box (`const char
+          *'col=`""', `bool' ticks=`true')
+ -- Method on `mglGraph' (C++): `void' Box (`mglColor' col, `bool'
+          ticks=`true')
+ -- C function: `void' mgl_box (`HMGL' gr, `int' ticks)
+ -- C function: `void' mgl_box_rgb (`HMGL' gr, `float' r, `float' g,
+          `float' b, `int' ticks)
+ -- C function: `void' mgl_box_str (`HMGL' gr, `const char *'col, `int'
+          ticks)
+     Draws bounding box outside the plotting volume with color COL.
+
+ -- Method on `mglGraph' (C++, Python): `void' Label (`char' dir,
+          `const char *'text, `float' pos=`0', `float' size=`-1.4',
+          `float' shift=`0')
+ -- Method on `mglGraph' (C++): `void' Label (`char' dir, `const
+          wchar_t *'text, `float' pos=`0', `float' size=`-1.4', `float'
+          shift=`0')
+ -- C function: `void' mgl_label (`HMGL' gr, `char' dir, `const char
+          *'text)
+ -- C function: `void' mgl_label_ext (`HMGL' gr, `char' dir, `const
+          char *'text, `float' pos, `float' size, `float' shift)
+ -- C function: `void' mgl_labelw_ext (`HMGL' gr, `char' dir, `const
+          wchar_t *'text, `float' pos, `float' size, `float' shift)
+     Prints the label TEXT for axis DIR=`x',`y',`z',`t' (here `t' is
+     "ternary" axis t=1-x-y). The position of label is determined by
+     POS parameter. If POS=0 then label is printed at the center of
+     axis. If POS>0 then label is printed at the maximum of axis. If
+     POS<0 then label is printed at the minimum of axis. Parameter SIZE
+     determines the font size for the label. By default the font size
+     is 1.4 times larger than the one for ticks FONTSIZE (*note Font
+     settings::). *Note Text printing::.
+
+
+File: mathgl_en.info,  Node: Legend,  Next: 1D plotting,  Prev: Axis and Colorbar,  Up: MathGL core
+
+3.8 Legend
+==========
+
+These functions draw legend to the graph (useful for *note 1D
+plotting::). Legend entry is a pair of strings: one for style of the
+line, another one with description text (with included TeX parsing).
+The arrays of strings may be used directly or by accumulating first to
+the internal arrays (by function AddLegend()) and further plotting it.
+The position of the legend can be selected automatic or manually.
+Parameters FONT and SIZE specify the font style and size (*note Font
+settings::). Parameter LLEN set the relative width of the line sample
+and the text indent. If line style string for entry is empty then the
+corresponding text is printed without indent. If string FONT contains
+symbol `A' then legend coordinates set position in the picture (not in
+the current subplot). *Note Legend sample::, for sample code and
+picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Legend (`int'
+          where=`0x3', `const char *'font=`"rL"', `float' size=`-0.8',
+          `float' llen=`0.1')
+ -- C function: `void' mgl_legend (`HMGL' gr, `int' where, `const char
+          *'font, `float' size, `float' llen)
+     Draws legend of accumulated legend entries by font FONT with SIZE.
+     Parameter WHERE sets the position of the legend: `0' is bottom
+     left corner, `1' is bottom right corner, `2' is top left corner,
+     `3' is top right corner (is default).
+
+ -- Method on `mglGraph' (C++): `void' Legend (`int' n, `wchar_t
+          **'text, `char **'style, `int' where=`0x3', `const char
+          *'font=`"rL"', `float' size=`-0.8', `float' llen=`0.1')
+     Draws legend with N-th elements of string array TEXT by font FONT
+     with SIZE. Entry strings TEXT describe curves with line style
+     STYLE (including marks). Parameter WHERE sets the position of the
+     legend: `0' is bottom left corner, `1' is bottom right corner, `2'
+     is top left corner, `3' is top right corner (is default).
+
+ -- Method on `mglGraph' (C++, Python): `void' Legend (`float' x,
+          `float' y, `const char *'font=`"rL"', `float' size=`-0.8',
+          `float' llen=`0.1')
+ -- C function: `void' mgl_legend_xy (`HMGL' gr, `float' x, `float' y,
+          `const char *'font, `float' size, `float' llen)
+     Draws legend of accumulated legend entries by font FONT with SIZE.
+     Position of legend is determined by parameter X, Y which supposed
+     to be normalized to interval [0,1].
+
+ -- Method on `mglGraph' (C++): `void' Legend (`int' n, `wchar_t
+          **'text, `char **'style, `float' x, `float' y, `const char
+          *'font=`"rL"', `float' size=`-0.8', `float' llen=`0.1')
+     Draws legend with N-th elements of string array TEXT by font FONT
+     with SIZE. Entry strings TEXT describe curves with line style
+     STYLE (including marks). Position of legend is determined by
+     parameter X, Y which supposed to be normalized to interval [0,1].
+
+ -- Method on `mglGraph' (C++, Python): `void' AddLegend (`const char
+          *'text, `const char *'style)
+ -- Method on `mglGraph' (C++): `void' AddLegend (`const wchar_t
+          *'text, `const char *'style)
+ -- C function: `void' mgl_add_legend (`HMGL' gr, `const char *'text,
+          `const char *'style)
+ -- C function: `void' mgl_add_legendw (`HMGL' gr, `const wchar_t
+          *'text, `const char *'style)
+     Adds string TEXT to internal legend accumulator. The style of
+     described line and mark is specified in string STYLE (*note Line
+     styles::). Maximal number of entries is 100.
+
+ -- Method on `mglGraph' (C++, Python): `void' ClearLegend ()
+ -- C function: `void' mgl_clear_legend (`HMGL' gr)
+     Clears saved legend strings.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetLegendBox (`bool'
+          enable)
+ -- C function: `void' mgl_set_legend_box (`HMGL' gr, `int' enable)
+     Switch on/off drawing box near legend. By default (=`true') box is
+     drawn.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetLegendMarks (`int'
+          num)
+ -- C function: `void' mgl_set_legend_marks (`HMGL' gr, `int' num)
+     Set the number of marks in the legend. By default 1 mark is used.
+
+ -- _Obsolete option_ of mglGraph: `bool' LegendBox
+     Switch on/off drawing box near legend. See `SetLegendBox()'.
+
+
+File: mathgl_en.info,  Node: 1D plotting,  Next: 2D plotting,  Prev: Legend,  Up: MathGL core
+
+3.9 1D plotting
+===============
+
+These functions perform plotting of 1D data. 1D means that data
+depended from only 1 parameter like parametric curve {x(i),y(i),z(i)},
+i=1...n. There are 5 generally different types of data representations:
+simple line plot (Plot), line plot with filling under it (Area), stairs
+plot (Step), bar plot (Bars, Barh) and vertical lines (Stem). Each type
+of plotting has similar interface. There are 3D version and two 2D
+versions. One of last requires single array. The parameters of line and
+marks are specified by the string argument. If the string parameter is
+"" then solid line with color from palette Pal is used (*note Palette
+and colors::). Also there are some special 1d plots having slightly
+different interface: surface of curve rotation (Torus), chart (Chart)
+and error boxes (Error), marks with variable size (Mark), tubes (Tube)
+and so on. *Note Line styles::. *Note 1D plot sample::, for sample code
+and picture.
+
+* Menu:
+
+* Plot::
+* Radar::
+* Tens::
+* Area::
+* Region::
+* Stem::
+* Bars::
+* Barh::
+* Chart::
+* Step::
+* Torus::
+* Tube::
+* Mark::
+* TextMark::
+* Error::
+* BoxPlot::
+
+
+File: mathgl_en.info,  Node: Plot,  Next: Radar,  Up: 1D plotting
+
+3.9.1 Plot
+----------
+
+These functions draw continuous lines between points. The plots are
+drawn for each row if one of the data is the matrix. By any case the
+sizes of 1st dimension *must be equal* for all arrays `x.nx=y.nx=z.nx'.
+String PEN specifies the color and style of line and marks (*note Line
+styles::). By default (`pen=""') solid line with color from palette is
+used (*note Palette and colors::). See also *note Area::, *note Step::,
+*note Stem::, *note Tube::, *note Mark::, *note Error::, *note Belt::,
+*note Tens::. *Note Plot sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Plot (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'pen=`""')
+ -- C function: `void' mgl_plot_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'pen)
+     The function draws continuous lines between points {X[i], Y[i],
+     Z[i]} in 3D space.
+
+ -- Method on `mglGraph' (C++, Python): `void' Plot (`const mglData
+          &'x, `const mglData &'y, `const char *'pen=`""')
+ -- C function: `void' mgl_plot_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const char *'pen)
+     The function draws continuous lines between points {X[i], Y[i]} in
+     plane Z=ZVAL (default in plane Z=MIN.Z).
+
+ -- Method on `mglGraph' (C++, Python): `void' Plot (`const mglData
+          &'y, `const char *'pen=`""')
+ -- C function: `void' mgl_plot (`HMGL' gr, `const HMDT' y, `const char
+          *'pen)
+     The function draws continuous lines between points {X[i], Y[i]} in
+     plane Z=ZVAL (default in plane Z=MIN.Z), where X[i] values are
+     equidistantly distributed in interval [MIN.x, MAX.x].
+
+
+File: mathgl_en.info,  Node: Radar,  Next: Tens,  Prev: Plot,  Up: 1D plotting
+
+3.9.2 Radar
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Radar (`const mglData
+          &'a, `const char *'pen=`""', `float' r=`-1')
+ -- C function: `void' mgl_radar (`HMGL' gr, `const HMDT' a, `const
+          char *'pen, `float' r)
+     This functions draws radar chart which is continuous lines between
+     points located on an radial lines (like plot in Polar
+     coordinates). The plots are drawn for each row if one of the data
+     is the matrix. Parameter R set the additional shift of data (i.e.
+     the data A+R is used instead of A). If `r<0' then `r=max(0,
+     -min(a)'. String PEN specifies the color and style of line and
+     marks (*note Line styles::). By default (`pen=""') solid line with
+     color from palette is used (*note Palette and colors::). If PEN
+     containt `#' symbol then "grid" (radial lines and circle for R) is
+     drawn See also *note Plot::. *Note Radar sample::, for sample code
+     and picture.
+
+
+File: mathgl_en.info,  Node: Tens,  Next: Area,  Prev: Radar,  Up: 1D plotting
+
+3.9.3 Tens
+----------
+
+These functions draw continuous lines between points with color defined
+by the special array (look like tension plot). The plots are drawn for
+each row if one of the data is the matrix. By any case the sizes of 1st
+dimension *must be equal* for all arrays `x.nx=y.nx=z.nx'. String PEN
+specifies the color scheme (*note Color scheme::) and style and/or
+width of line (*note Line styles::). By default (`pen=""') solid line
+with current color scheme is used. See also *note Plot::, *note Mesh::,
+*note Fall::. *Note Tens sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Tens (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'c, `const char *'pen=`""')
+ -- C function: `void' mgl_tens_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' c, `const char *'pen)
+     The function draws continuous lines between points {X[i], Y[i],
+     Z[i]} in 3D space with color defined by C[i].
+
+ -- Method on `mglGraph' (C++, Python): `void' Tens (`const mglData
+          &'x, `const mglData &'y, `const mglData &'c, `const char
+          *'pen=`""')
+ -- C function: `void' mgl_tens_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' c, `const char *'pen)
+     The function draws continuous lines between points {X[i], Y[i]} in
+     plane Z=ZVAL (default in plane Z=MIN.Z) with color defined by C[i].
+
+ -- Method on `mglGraph' (C++, Python): `void' Tens (`const mglData
+          &'y, `const mglData &'c, `const char *'pen=`""')
+ -- C function: `void' mgl_tens (`HMGL' gr, `const HMDT' y, `const
+          HMDT' c, `const char *'pen)
+     The function draws continuous lines between points {X[i], Y[i]} in
+     plane Z=ZVAL (default in plane Z=MIN.Z) with color defined by
+     C[i], where X[i] values are equidistantly distributed in interval
+     [MIN.x, MAX.x].
+
+
+File: mathgl_en.info,  Node: Area,  Next: Region,  Prev: Tens,  Up: 1D plotting
+
+3.9.4 Area
+----------
+
+These functions draw continuous lines between points and fills it to
+axis plane. The plots are drawn for each row if one of the data is the
+matrix. By any case the sizes of 1st dimension *must be equal* for all
+arrays `x.nx=y.nx=z.nx'. String PEN specifies the color and style of
+line and marks (*note Line styles::). By default (`pen=""') solid line
+with color from palette is used (*note Palette and colors::). Also you
+can use gradient filling if number of specified colors is equal to
+2*number of curves. If string contain symbol `a' then lines are drawn
+one above another (like summation) - you can reach the same effect if
+call `y.CumSum("y");' before plot. See also *note Plot::, *note Bars::,
+*note Stem::. *Note Area sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Area (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'pen=`""')
+ -- C function: `void' mgl_area_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'pen)
+     The function draws continuous lines between points {X[i], Y[i],
+     Z[i]} in 3D space and fills it down to Z = Org.z.
+
+ -- Method on `mglGraph' (C++, Python): `void' Area (`const mglData
+          &'x, `const mglData &'y, `const char *'pen=`""')
+ -- C function: `void' mgl_area_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const char *'pen)
+     The function draws continuous lines between points {X[i], Y[i]} in
+     plane Z=ZVAL (default in plane Z=MIN.Z) and fills it down to Y =
+     Org.y.
+
+ -- Method on `mglGraph' (C++, Python): `void' Area (`const mglData
+          &'y, `const char *'pen=`""')
+ -- C function: `void' mgl_area (`HMGL' gr, `const HMDT' y, `const char
+          *'pen)
+     The function draws continuous lines between points {X[i], Y[i]} in
+     plane Z=ZVAL (default in plane Z=MIN.Z) and fills it down to Y =
+     Org.y, where X[i] values are equidistantly distributed in interval
+     [MIN.x, MAX.x].
+
+
+File: mathgl_en.info,  Node: Region,  Next: Stem,  Prev: Area,  Up: 1D plotting
+
+3.9.5 Region
+------------
+
+These functions fill area between 2 curves. The plots are drawn for
+each row if one of the data is the matrix. By any case the sizes of 1st
+dimension *must be equal* for all arrays `x.nx=y1.nx=y2.nx' and all
+dimensions of arrays Y1 and Y2 must be equal too. String PEN specifies
+the color (*note Line styles::). By default (`pen=""') color from
+palette is used (*note Palette and colors::). Also you can use gradient
+filling if number of specified colors is equal to 2*number of curves.
+See also *note Area::, *note Bars::, *note Stem::. *Note Region
+sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Region (`const mglData
+          &'x, `const mglData &'y1, `const mglData &'y2, `const char
+          *'pen=`""', `float' zVal=`NAN', `bool' inside=`true')
+ -- C function: `void' mgl_region_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y1, `const HMDT' y2, `const char *'pen, `int' inside)
+     The function fills area between curves {X[i], Y1[i]} and {X[i],
+     Y2[i]} at z=ZVAL. Parameter `inside=false' set to fill are with
+     y1<y<y2 else the area with y2<y<y1 will be also filled.
+
+ -- Method on `mglGraph' (C++, Python): `void' Region (`const mglData
+          &'y1, `const mglData &'y2, `const char *'pen=`""', `float'
+          zVal=`NAN', `bool' inside=`true')
+ -- C function: `void' mgl_region (`HMGL' gr, `const HMDT' y1, `const
+          HMDT' y2, `const char *'pen, `int' inside)
+     The function fills area between curves {X[i], Y1[i]} and {X[i],
+     Y2[i]}, where X[i] values are equidistantly distributed in
+     interval [MIN.x, MAX.x] at z=ZVAL.
+
+
+File: mathgl_en.info,  Node: Stem,  Next: Bars,  Prev: Region,  Up: 1D plotting
+
+3.9.6 Stem
+----------
+
+These functions draw vertical lines from points to axis plane. The
+plots are drawn for each row if one of the data is the matrix. By any
+case the sizes of 1st dimension *must be equal* for all arrays
+`x.nx=y.nx=z.nx'. String PEN specifies the color and style of line and
+marks (*note Line styles::). By default (`pen=""') solid line with
+color from palette is used (*note Palette and colors::). See also *note
+Area::, *note Bars::, *note Plot::, *note Mark::. *Note Stem sample::,
+for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Stem (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'pen=`""')
+ -- C function: `void' mgl_stem_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'pen)
+     The function draws vertical lines from points {X[i], Y[i], Z[i]}
+     down to Z = Org.z.
+
+ -- Method on `mglGraph' (C++, Python): `void' Stem (`const mglData
+          &'x, `const mglData &'y, `const char *'pen=`""')
+ -- C function: `void' mgl_stem_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const char *'pen)
+     The function draws vertical lines from points {X[i], Y[i]} down to
+     Y = Org.y in plane Z=ZVAL (default in plane Z=MIN.Z).
+
+ -- Method on `mglGraph' (C++, Python): `void' Stem (`const mglData
+          &'y, `const char *'pen=`""')
+ -- C function: `void' mgl_stem (`HMGL' gr, `const HMDT' y, `const char
+          *'pen)
+     The function draws vertical lines from points {X[i], Y[i]} down to
+     Y = Org.y in plane Z=ZVAL (default in plane Z=MIN.Z), where X[i]
+     values are equidistantly distributed in interval [MIN.x, MAX.x].
+
+
+File: mathgl_en.info,  Node: Bars,  Next: Barh,  Prev: Stem,  Up: 1D plotting
+
+3.9.7 Bars
+----------
+
+These functions draw vertical bars from points to axis plane. The plots
+are drawn for each row if one of the data is the matrix. By any case
+the sizes of 1st dimension *must be equal* for all arrays
+`x.nx=y.nx=z.nx'. String PEN specifies the color and style of line and
+marks (*note Line styles::). By default (`pen=""') solid line with
+color from palette is used (*note Palette and colors::). If string
+contain symbol `a' then lines are drawn one above another (like
+summation). If string contain symbol `f' then waterfall chart is drawn
+for determining the cumulative effect of sequentially introduced
+positive or negative values. You can different colors for positive and
+negative values if number of specified colors is equal to 2*number of
+curves. See also *note Barh::, *note Area::, *note Stem::, *note
+Chart::, *note Default sizes::. *Note Bars sample::, for sample code
+and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Bars (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'pen=`""')
+ -- C function: `void' mgl_bars_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'pen)
+     The function draws vertical bars from points {X[i], Y[i], Z[i]}
+     down to Z = Org.z.
+
+ -- Method on `mglGraph' (C++, Python): `void' Bars (`const mglData
+          &'x, `const mglData &'y, `const char *'pen=`""')
+ -- C function: `void' mgl_bars_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const char *'pen)
+     The function draws vertical bars from points {X[i], Y[i]} down to
+     Y = Org.y in plane Z=ZVAL (default in plane Z=MIN.Z).
+
+ -- Method on `mglGraph' (C++, Python): `void' Bars (`const mglData
+          &'y, `const char *'pen=`""')
+ -- C function: `void' mgl_bars (`HMGL' gr, `const HMDT' y, `const char
+          *'pen)
+     The function draws vertical bars from points {X[i], Y[i]} down to
+     Y = Org.y in plane Z=ZVAL (default in plane Z=MIN.Z), where X[i]
+     values are equidistantly distributed in interval [MIN.x, MAX.x].
+
+
+File: mathgl_en.info,  Node: Barh,  Next: Chart,  Prev: Bars,  Up: 1D plotting
+
+3.9.8 Barh
+----------
+
+These functions draw horizontal bars from points to axis plane. The
+plots are drawn for each row if one of the data is the matrix. By any
+case the sizes of 1st dimension *must be equal* for all arrays
+`x.nx=y.nx=z.nx'. String PEN specifies the color and style of line and
+marks (*note Line styles::). By default (`pen=""') solid line with
+color from palette is used (*note Palette and colors::). If string
+contain symbol `a' then lines are drawn one above another (like
+summation). See also *note Barh::, *note Default sizes::. *Note Barh
+sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Barh (`const mglData
+          &'y, `const mglData &'v, `const char *'pen=`""')
+ -- C function: `void' mgl_barh_xy (`HMGL' gr, `const HMDT' y, `const
+          HMDT' v, `const char *'pen)
+     The function draws horizontal bars from points {V[i], Y[i]} down
+     to X = Org.x in plane Z=ZVAL (default in plane Z=MIN.Z).
+
+ -- Method on `mglGraph' (C++, Python): `void' Barh (`const mglData
+          &'v, `const char *'pen=`""')
+ -- C function: `void' mgl_barh (`HMGL' gr, `const HMDT' v, `const char
+          *'pen)
+     The function draws horizontal bars from points {V[i], Y[i]} down
+     to X = Org.x in plane Z=ZVAL (default in plane Z=MIN.Z), where
+     Y[i] values are equidistantly distributed in interval [MIN.y,
+     MAX.y].
+
+
+File: mathgl_en.info,  Node: Chart,  Next: Step,  Prev: Barh,  Up: 1D plotting
+
+3.9.9 Chart
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Chart (`const mglData
+          &'a, `const char *'col=`""')
+ -- C function: `void' mgl_chart (`HMGL' gr, `const HMDT' a, `const
+          char *'col)
+     The function draws colored stripes (boxes) for data in array A.
+     The number of stripes is equal to the number of rows in A (equal
+     to A.NY). The color of each next stripe is cyclically changed from
+     colors specified in string COL or in palette Pal (*note Palette
+     and colors::). Spaces in colors denote transparent "color", i.e.
+     if COL contain space(s) then corresponding stripe(s) are not
+     drawn. The stripe width is proportional to value of element in A.
+     Chart is plotted only for data with non-negative elements. If
+     string COL have symbol `#' then black border lines are drawn. The
+     most nice form the chart have in 3d (after rotation of
+     coordinates) or in cylindrical coordinates (becomes so called Pie
+     chart). *Note Chart sample::, for sample code and picture.
+
+
+File: mathgl_en.info,  Node: Step,  Next: Torus,  Prev: Chart,  Up: 1D plotting
+
+3.9.10 Step
+-----------
+
+These functions draw continuous stairs for points to axis plane. The
+plots are drawn for each row if one of the data is the matrix. By any
+case the sizes of 1st dimension *must be equal* for all arrays
+`x.nx=y.nx=z.nx'. String PEN specifies the color and style of line and
+marks (*note Line styles::). By default (`pen=""') solid line with
+color from palette is used (*note Palette and colors::). See also *note
+Plot::, *note Stem::, *note Tile::, *note Boxs::. *Note Step sample::,
+for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Step (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'pen=`""')
+ -- C function: `void' mgl_step_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'pen)
+     The function draws continuous stairs for points {X[i], Y[i], Z[i]}.
+
+ -- Method on `mglGraph' (C++, Python): `void' Step (`const mglData
+          &'x, `const mglData &'y, `const char *'pen=`""')
+ -- C function: `void' mgl_step_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const char *'pen)
+     The function draws continuous stairs for points {X[i], Y[i]} in
+     plane Z=ZVAL (default in plane Z=MIN.Z).
+
+ -- Method on `mglGraph' (C++, Python): `void' Step (`const mglData
+          &'y, `const char *'pen=`""')
+ -- C function: `void' mgl_step (`HMGL' gr, `const HMDT' y, `const char
+          *'pen)
+     The function draws continuous stairs for points {X[i], Y[i]} in
+     plane Z=ZVAL (default in plane Z=MIN.Z), where X[i] values are
+     equidistantly distributed in interval [MIN.x, MAX.x].
+
+
+File: mathgl_en.info,  Node: Torus,  Next: Tube,  Prev: Step,  Up: 1D plotting
+
+3.9.11 Torus
+------------
+
+These functions draw surface which is result of curve {R, Z} rotation
+around AXIALDIR axis (*note Other settings::). The sizes of 1st
+dimension *must be equal* for all arrays R.NX=Z.NX. String PEN
+specifies the color (*note Line styles::). By default (`pen=""') color
+from palette is used (*note Palette and colors::). See also *note
+Plot::, *note Axial::. *Note Torus sample::, for sample code and
+picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Torus (`const mglData
+          &'r, `const mglData &'z, `const char *'pen=`""')
+ -- C function: `void' mgl_torus (`HMGL' gr, `const HMDT' r, `const
+          HMDT' z, `const char *'pen)
+     The function draws surface which is result of curve {R[i], Z[i]}
+     rotation.
+
+ -- Method on `mglGraph' (C++): `void' Torus (`const mglData &'z,
+          `const char *'pen=`""')
+     The function draws surface which is result of curve {R[i], Z[i]}
+     rotation, where R[i] values are equidistantly distributed in
+     interval [MIN.x, MAX.x].
+
+
+File: mathgl_en.info,  Node: Tube,  Next: Mark,  Prev: Torus,  Up: 1D plotting
+
+3.9.12 Tube
+-----------
+
+These functions draw the tube with variable radius R[i] along the curve
+between points {X[i], Y[i], Z[i]}. The plots are drawn for each row if
+one of the data is the matrix. By any case the sizes of 1st dimension
+*must be equal* for all arrays `x.nx=y.nx=z.nx=r.nx'. String PEN
+specifies the color and style of line and marks (*note Line styles::).
+By default (`pen=""') solid line with color from palette is used (*note
+Palette and colors::). See also *note Plot::. *Note Tube sample::, for
+sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Tube (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'r, `const char *'pen=`""')
+ -- Method on `mglGraph' (C++, Python): `void' Tube (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `float' r,
+          `const char *'pen=`""')
+ -- C function: `void' mgl_tube_xyzr (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' r, `const char *'pen)
+ -- C function: `void' mgl_tube_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `float' r, `const char *'pen)
+     The function draws tube with radius R between points {X[i], Y[i],
+     Z[i]} in 3D space.
+
+ -- Method on `mglGraph' (C++, Python): `void' Tube (`const mglData
+          &'x, `const mglData &'y, `const mglData &'r, `const char
+          *'pen=`""')
+ -- Method on `mglGraph' (C++, Python): `void' Tube (`const mglData
+          &'x, `const mglData &'y, `float' r, `const char *'pen=`""')
+ -- C function: `void' mgl_tube_xyr (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' r, `const char *'pen)
+ -- C function: `void' mgl_tube_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `float' r, `const char *'pen)
+     The function draws tube with radius R between points {X[i], Y[i]}
+     in plane Z=ZVAL (default in plane Z=MIN.Z).
+
+ -- Method on `mglGraph' (C++, Python): `void' Tube (`const mglData
+          &'y, `const mglData &'r, `const char *'pen=`""')
+ -- Method on `mglGraph' (C++, Python): `void' Tube (`const mglData
+          &'y, `float' r, `const char *'pen=`""')
+ -- C function: `void' mgl_tube_r (`HMGL' gr, `const HMDT' y, `const
+          HMDT' r, `const char *'pen)
+ -- C function: `void' mgl_tube (`HMGL' gr, `const HMDT' y, `float' r,
+          `const char *'pen)
+     The function draws tube with radius R between points {X[i], Y[i]}
+     in plane Z=ZVAL (default in plane Z=MIN.Z), where X[i] values are
+     equidistantly distributed in interval [MIN.x, MAX.x].
+
+
+File: mathgl_en.info,  Node: Mark,  Next: TextMark,  Prev: Tube,  Up: 1D plotting
+
+3.9.13 Mark
+-----------
+
+These functions draw marks with size R*MARKSIZE (*note Default sizes::)
+at points {X[i], Y[i], Z[i]}. The plots are drawn for each row if one
+of the data is the matrix. By any case the sizes of 1st dimension *must
+be equal* for all arrays `x.nx=y.nx=z.nx=r.nx'. String PEN specifies
+the color and style of line and marks (*note Line styles::). By default
+(`pen=""') solid line with color from palette is used (*note Palette
+and colors::). If you need to draw markers of the same size then you
+may use *note Plot:: function. See also *note Plot::, *note TextMark::,
+*note Stem::, *note Error::. *Note Mark sample::, for sample code and
+picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Mark (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'r, `const char *'pen=`""')
+ -- C function: `void' mgl_mark_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' r, `const char *'pen)
+     The function draws marks for points {X[i], Y[i], Z[i]} in 3D space.
+
+ -- Method on `mglGraph' (C++, Python): `void' Mark (`const mglData
+          &'x, `const mglData &'y, `const mglData &'r, `const char
+          *'pen=`""')
+ -- C function: `void' mgl_mark_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' r, `const char *'pen)
+     The function draws marks for points {X[i], Y[i]} in plane Z=ZVAL
+     (default in plane Z=MIN.Z).
+
+ -- Method on `mglGraph' (C++, Python): `void' Mark (`const mglData
+          &'y, `const mglData &'r, `const char *'pen=`""')
+ -- C function: `void' mgl_mark_y (`HMGL' gr, `const HMDT' y, `const
+          HMDT' r, `const char *'pen)
+     The function draws marks for points {X[i], Y[i]} in plane Z=ZVAL
+     (default in plane Z=MIN.Z), where X[i] values are equidistantly
+     distributed in interval [MIN.x, MAX.x].
+
+
+File: mathgl_en.info,  Node: TextMark,  Next: Error,  Prev: Mark,  Up: 1D plotting
+
+3.9.14 TextMark
+---------------
+
+These functions draw string TEXT as marks with size proportional to
+R*MARKSIZE (*note Default sizes::) at points {X[i], Y[i], Z[i]}. The
+plots are drawn for each row if one of the data is the matrix. By any
+case the sizes of 1st dimension *must be equal* for all arrays
+`x.nx=y.nx=z.nx=r.nx'. String PEN specifies the color and style of line
+and marks (*note Line styles::). By default (`pen=""') solid line with
+color from palette is used (*note Palette and colors::). See also *note
+Plot::, *note Mark::, *note Stem::. *Note TextMark sample::, for sample
+code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' TextMark (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'r, `const char *'text, `const char *'fnt=`""')
+ -- Method on `mglGraph' (C++): `void' TextMark (`const mglData &'x,
+          `const mglData &'y, `const mglData &'z, `const mglData &'r,
+          `const wchar_t *'text, `const char *'fnt=`""')
+ -- C function: `void' mgl_textmarkw_xyzr (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' r, `const
+          wchar_t *'text, `const char *'fnt)
+ -- C function: `void' mgl_textmark_xyzr (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' r, `const char
+          *'text, `const char *'fnt)
+     The function draws textual marks for points {X[i], Y[i], Z[i]} in
+     3D space.
+
+ -- Method on `mglGraph' (C++, Python): `void' TextMark (`const mglData
+          &'x, `const mglData &'y, `const mglData &'r, `const char
+          *'text, `const char *'fnt=`""')
+ -- Method on `mglGraph' (C++): `void' TextMark (`const mglData &'x,
+          `const mglData &'y, `const mglData &'r, `const wchar_t
+          *'text, `const char *'fnt=`""')
+ -- C function: `void' mgl_textmarkw_xyr (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' r, `const wchar_t *'text, `const
+          char *'fnt)
+ -- C function: `void' mgl_textmark_xyr (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' r, `const char *'text, `const
+          char *'fnt)
+     The function draws textual marks for points {X[i], Y[i]} in plane
+     Z=ZVAL (default in plane Z=MIN.Z).
+
+ -- Method on `mglGraph' (C++, Python): `void' TextMark (`const mglData
+          &'y, `const mglData &'r, `const char *'text, `const char
+          *'fnt=`""')
+ -- Method on `mglGraph' (C++): `void' TextMark (`const mglData &'y,
+          `const mglData &'r, `const wchar_t *'text, `const char
+          *'fnt=`""')
+ -- C function: `void' mgl_textmarkw_yr (`HMGL' gr, `const HMDT' y,
+          `const HMDT' r, `const wchar_t *'text, `const char *'fnt)
+ -- C function: `void' mgl_textmark_yr (`HMGL' gr, `const HMDT' y,
+          `const HMDT' r, `const char *'text, `const char *'fnt)
+     The function draws textual marks for points {X[i], Y[i]} in plane
+     Z=ZVAL (default in plane Z=MIN.Z), where X[i] values are
+     equidistantly distributed in interval [MIN.x, MAX.x].
+
+ -- Method on `mglGraph' (C++, Python): `void' TextMark (`const mglData
+          &'y, `const char *'text, `const char *'fnt=`""')
+ -- Method on `mglGraph' (C++): `void' TextMark (`const mglData &'y,
+          `const wchar_t *'text, `const char *'fnt=`""')
+ -- C function: `void' mgl_textmarkw (`HMGL' gr, `const HMDT' y, `const
+          wchar_t *'text, `const char *'fnt)
+ -- C function: `void' mgl_textmark (`HMGL' gr, `const HMDT' y, `const
+          char *'text, `const char *'fnt)
+     The function draws textual marks for points {X[i], Y[i]} in plane
+     Z=ZVAL (default in plane Z=MIN.Z), where X[i] values are
+     equidistantly distributed in interval [MIN.x, MAX.x]. The mark
+     sizes R[i]=1 for all points.
+
+
+File: mathgl_en.info,  Node: Error,  Next: BoxPlot,  Prev: TextMark,  Up: 1D plotting
+
+3.9.15 Error
+------------
+
+These functions draw error boxes at points {X[i], Y[i]} on plane Z =
+ZVAL (by default Z=MIN.Z). This can be useful, for example, in
+experimental points, or to show numeric error or some estimations and
+so on. The plots are drawn for each row if one of the data is the
+matrix. By any case the sizes of 1st dimension *must be equal* for all
+arrays `x.nx=y.nx=z.nx=r.nx'. String PEN specifies the color and style
+of line and marks (*note Line styles::). By default (`pen=""') solid
+line with color from palette is used (*note Palette and colors::). See
+also *note Plot::. *Note Error sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Error (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ex, `const mglData
+          &'ey, `const char *'pen=`""')
+ -- C function: `void' mgl_error_exy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ex, `const HMDT' ey, `const char *'pen)
+     Draws a error box {EX, EY} in point position {X, Y}.
+
+ -- Method on `mglGraph' (C++, Python): `void' Error (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ey, `const char
+          *'pen=`""')
+ -- C function: `void' mgl_error_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ey, `const char *'pen)
+     Draws a error box EY (along only one direction) in point position
+     {X, Y}.
+
+ -- Method on `mglGraph' (C++, Python): `void' Error (`const mglData
+          &'y, `const mglData &'ey, `const char *'pen=`""')
+ -- C function: `void' mgl_error (`HMGL' gr, `const HMDT' y, `const
+          HMDT' ey, `const char *'pen)
+     Draws a error box EY (along only one direction) in point position
+     {X, Y}, where X[i] values are equidistantly distributed in
+     interval [MIN.x, MAX.x].
+
+
+File: mathgl_en.info,  Node: BoxPlot,  Prev: Error,  Up: 1D plotting
+
+3.9.16 BoxPlot
+--------------
+
+These functions draw boxplot (also known as a box-and-whisker diagram)
+at points X[i] on plane Z = ZVAL (by default Z=MIN.Z). This is
+five-number summaries of data A[i,j] (minimum, lower quartile (Q1),
+median (Q2), upper quartile (Q3) and maximum) along second (j-th)
+direction. The sizes of 1st dimension *must be equal* for all arrays
+`x.nx=a.nx'. String PEN specifies the color and style of line (*note
+Line styles::). By default (`pen=""') solid line with color from
+palette is used (*note Palette and colors::). See also *note Plot::,
+*note Error::, *note Bars::, *note Default sizes::. *Note BoxPlot
+sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' BoxPlot (`const mglData
+          &'x, `const mglData &'a, `const char *'pen=`""')
+ -- C function: `void' mgl_boxplot_xy (`HMGL' gr, `const HMDT' x,
+          `const HMDT' a, `const char *'pen)
+     Draws a boxplot with specified values of coordinate X[i].
+
+ -- Method on `mglGraph' (C++, Python): `void' BoxPlot (`const mglData
+          &'a, `const char *'pen=`""')
+ -- C function: `void' mgl_boxplot (`HMGL' gr, `const HMDT' a, `const
+          char *'pen)
+     Draws a boxplot with X[i] values equidistantly distributed in
+     interval [MIN.x, MAX.x].
+
+
+File: mathgl_en.info,  Node: 2D plotting,  Next: 3D plotting,  Prev: 1D plotting,  Up: MathGL core
+
+3.10 2D plotting
+================
+
+These functions perform plotting of 2D data. 2D means that data depend
+from 2 independent parameters like matrix f(x_i,y_j), i=1...n, j=1...m.
+There are several generally different types of data representations:
+simple mesh lines plot (Mesh), surface plot (Surf), surface plot by
+boxes (Boxs), surface plot by tiles (Tile), waterfall-like plot (Fall),
+belt plot (Belt), density plot (Dens), contour lines plot (Cont), solid
+contours plot (ContF) and its rotational figure (Axial). Cont, ContF
+and Axial functions have variants for automatic and manual selection of
+level values for contours. Also there are functions for plotting data
+grid lines according to the data format (Grid) for enhancing density or
+contour plots. Each type of plotting has similar interface. There are 2
+kind of versions which handle the arrays of data and coordinates or
+only single data array. Parameters of color scheme are specified by the
+string argument. *Note Color scheme::. *Note 2D plot sample::, for
+sample code and picture.
+
+* Menu:
+
+* Mesh::
+* Fall::
+* Belt::
+* Surf::
+* Boxs::
+* Tile::
+* Dens::
+* Cont::
+* ContF::
+* ContD::
+* Axial::
+* Grad::
+* Grid::
+
+
+File: mathgl_en.info,  Node: Mesh,  Next: Fall,  Up: 2D plotting
+
+3.10.1 Mesh
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Mesh (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""')
+ -- C function: `void' mgl_mesh_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch)
+     The function draws mesh lines for surface specified parametrically
+     {X[i,j], Y[i,j], Z[i,j]}. String SCH sets the color scheme.
+     Previous color scheme is used by default. The minor dimensions of
+     arrays X, Y, Z should be equal `x.nx=z.nx && y.nx=z.ny' or
+     `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Arrays X and Y can be vectors
+     (not matrices as Z). Mesh lines are plotted for each z slice of
+     the data. See also *note Surf::, *note Fall::, MeshNum (*note
+     Other settings::), *note Cont::, *note Tens::. *Note Mesh
+     sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Mesh (`const mglData
+          &'z, `const char *'sch=`""')
+ -- C function: `void' mgl_mesh (`HMGL' gr, `const HMDT' z, `const char
+          *'sch)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Fall,  Next: Belt,  Prev: Mesh,  Up: 2D plotting
+
+3.10.2 Fall
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Fall (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""')
+ -- C function: `void' mgl_fall_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch)
+     The function draws fall lines for surface specified parametrically
+     {X[i,j], Y[i,j], Z[i,j]}. This plot can be used for plotting
+     several curves shifted in depth one from another. String SCH sets
+     the color scheme. Previous color scheme is used by default. If SCH
+     contain `x' then lines are drawn along x-direction else (by
+     default) lines are drawn along y-direction. The minor dimensions
+     of arrays X, Y, Z should be equal `x.nx=z.nx && y.nx=z.ny' or
+     `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Arrays X and Y can be vectors
+     (not matrices as Z). Fall lines are plotted for each z slice of
+     the data. See also *note Belt::, *note Mesh::, *note Tens::,
+     MeshNum (*note Other settings::). *Note Fall sample::, for sample
+     code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Fall (`const mglData
+          &'z, `const char *'sch=`""')
+ -- C function: `void' mgl_fall (`HMGL' gr, `const HMDT' z, `const char
+          *'sch)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Belt,  Next: Surf,  Prev: Fall,  Up: 2D plotting
+
+3.10.3 Belt
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Belt (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""')
+ -- C function: `void' mgl_belt_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch)
+     The function draws belts for surface specified parametrically
+     {X[i,j], Y[i,j], Z[i,j]}. This plot can be used as 3d
+     generalization of Plot (*note Plot::). String SCH sets the color
+     scheme. Previous color scheme is used by default. If SCH contain
+     `x' then belts are drawn along x-direction else (by default) belts
+     are drawn along y-direction. The minor dimensions of arrays X, Y,
+     Z should be equal `x.nx=z.nx && y.nx=z.ny' or `x.nx=y.nx=z.nx &&
+     x.ny=y.ny=z.ny'. Arrays X and Y can be vectors (not matrices as
+     Z). Belts are plotted for each z slice of the data. See also *note
+     Fall::, *note Surf::, *note Plot::, MeshNum (*note Other
+     settings::). *Note Belt sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Belt (`const mglData
+          &'z, `const char *'sch=`""')
+ -- C function: `void' mgl_belt (`HMGL' gr, `const HMDT' z, `const char
+          *'sch)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Surf,  Next: Boxs,  Prev: Belt,  Up: 2D plotting
+
+3.10.4 Surf
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""')
+ -- C function: `void' mgl_surf_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch)
+     The function draws surface specified parametrically {X[i,j],
+     Y[i,j], Z[i,j]}. String SCH sets the color scheme. Previous color
+     scheme is used by default. If string SCH have symbol `#' then grid
+     lines are drawn. The minor dimensions of arrays X, Y, Z should be
+     equal `x.nx=z.nx && y.nx=z.ny' or `x.nx=y.nx=z.nx &&
+     x.ny=y.ny=z.ny'. Arrays X and Y can be vectors (not matrices as
+     Z). Surface is plotted for each z slice of the data. See also
+     *note Mesh::, *note Dens::, *note Belt::, *note Tile::, *note
+     Boxs::, *note SurfC::, *note SurfA::. *Note Surf sample::, for
+     sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf (`const mglData
+          &'z, `const char *'sch=`""')
+ -- C function: `void' mgl_surf (`HMGL' gr, `const HMDT' z, `const char
+          *'sch)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Boxs,  Next: Tile,  Prev: Surf,  Up: 2D plotting
+
+3.10.5 Boxs
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Boxs (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""')
+ -- C function: `void' mgl_boxs_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch)
+     The function draws vertical boxes for surface specified
+     parametrically {X[i,j], Y[i,j], Z[i,j]}. String SCH sets the color
+     scheme. Previous color scheme is used by default. The minor
+     dimensions of arrays X, Y, Z should be equal `x.nx=z.nx &&
+     y.nx=z.ny' or `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Arrays X and Y
+     can be vectors (not matrices as Z). Surface is plotted for each z
+     slice of the data. See also *note Surf::, *note Dens::, *note
+     Tile::, *note Step::. *Note Boxs sample::, for sample code and
+     picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Boxs (`const mglData
+          &'z, `const char *'sch=`""')
+ -- C function: `void' mgl_boxs (`HMGL' gr, `const HMDT' z, `const char
+          *'sch)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Tile,  Next: Dens,  Prev: Boxs,  Up: 2D plotting
+
+3.10.6 Tile
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Tile (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""')
+ -- C function: `void' mgl_tile_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch)
+     The function draws horizontal tiles for surface specified
+     parametrically {X[i,j], Y[i,j], Z[i,j]}. Such plot can be used as
+     3d generalization of Step (*note Step::). String SCH sets the
+     color scheme. Previous color scheme is used by default. The minor
+     dimensions of arrays X, Y, Z should be equal `x.nx=z.nx &&
+     y.nx=z.ny' or `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Arrays X and Y
+     can be vectors (not matrices as Z). Surface is plotted for each z
+     slice of the data. See also *note Surf::, *note Boxs::, *note
+     Step::, *note TileS::. *Note Tile sample::, for sample code and
+     picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Tile (`const mglData
+          &'z, `const char *'sch=`""')
+ -- C function: `void' mgl_tile (`HMGL' gr, `const HMDT' z, `const char
+          *'sch)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Dens,  Next: Cont,  Prev: Tile,  Up: 2D plotting
+
+3.10.7 Dens
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Dens (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `float' zVal=`NAN')
+ -- C function: `void' mgl_dens_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `float' zVal)
+     The function draws density plot for surface specified
+     parametrically {X[i,j], Y[i,j], Z[i,j]} at Z = ZVAL. String SCH
+     sets the color scheme. Previous color scheme is used by default.
+     If string SCH have symbol `#' then grid lines are drawn. The minor
+     dimensions of arrays X, Y, Z should be equal `x.nx=z.nx &&
+     y.nx=z.ny' or `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Arrays X and Y
+     can be vectors (not matrices as Z). Surface is plotted for each z
+     slice of the data. See also *note Surf::, *note Cont::, *note
+     ContF::, *note Boxs::, *note Tile::, *note DensXYZ::. *Note Dens
+     sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Dens (`const mglData
+          &'z, `const char *'sch=`""', `float' zVal=`NAN')
+ -- C function: `void' mgl_dens (`HMGL' gr, `const HMDT' z, `const char
+          *'sch, `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Cont,  Next: ContF,  Prev: Dens,  Up: 2D plotting
+
+3.10.8 Cont
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Cont (`const mglData
+          &'v, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const char *'sch=`""', `float' zVal=`NAN')
+ -- C function: `void' mgl_cont_xy_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const char
+          *'sch, `float' zVal)
+     The function draws contour lines for surface specified
+     parametrically {X[i,j], Y[i,j], Z[i,j]} at Z = ZVAL (or for Z=V[k]
+     if `zVal==NAN'). Contours are plotted for Z[i,j]=V[k] where V[k]
+     are values of data array V. String SCH sets the color scheme.
+     Previous color scheme is used by default. If string SCH have
+     symbol `#' then grid lines are drawn. If string SCH have symbol
+     `t' or `T' then contour labels V[k] will be drawn below (or above)
+     the contours. The minor dimensions of arrays X, Y, Z should be
+     equal `x.nx=z.nx && y.nx=z.ny' or `x.nx=y.nx=z.nx &&
+     x.ny=y.ny=z.ny'. Arrays X and Y can be vectors (not matrices as
+     Z). Surface is plotted for each z slice of the data. See also
+     *note Dens::, *note ContF::, *note ContD::, *note Axial::, *note
+     ContXYZ::. *Note Cont sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Cont (`const mglData
+          &'v, `const mglData &'z, `const char *'sch=`""', `float'
+          zVal=`NAN')
+ -- C function: `void' mgl_cont__val (`HMGL' gr, `const HMDT' v, `const
+          HMDT' z, `const char *'sch, `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' Cont (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `int' num=`7', `float' zVal=`NAN')
+ -- C function: `void' mgl_cont_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `int' num,
+          `float' zVal)
+     The same as first one with vector V of NUM-th elements
+     equidistantly distributed in range [CMIN, CMAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' Cont (`const mglData
+          &'z, `const char *'sch=`""', `int' num=`7', `float'
+          zVal=`NAN')
+ -- C function: `void' mgl_cont (`HMGL' gr, `const HMDT' z, `const char
+          *'sch, `int' num, `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: ContF,  Next: ContD,  Prev: Cont,  Up: 2D plotting
+
+3.10.9 ContF
+------------
+
+ -- Method on `mglGraph' (C++, Python): `void' ContF (`const mglData
+          &'v, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const char *'sch=`""', `float' zVal=`NAN')
+ -- C function: `void' mgl_contf_xy_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const char
+          *'sch, `float' zVal)
+     The function draws solid (or filled) contour lines for surface
+     specified parametrically {X[i,j], Y[i,j], Z[i,j]} at Z = ZVAL (or
+     for Z=V[k] if `zVal==NAN'). Contours are plotted for Z[i,j]=V[k]
+     where V[k] are values of data array V (must be `v.nx>2'). String
+     SCH sets the color scheme. Previous color scheme is used by
+     default. If string SCH have symbol `#' then grid lines are drawn.
+     The minor dimensions of arrays X, Y, Z should be equal `x.nx=z.nx
+     && y.nx=z.ny' or `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Arrays X and
+     Y can be vectors (not matrices as Z). Surface is plotted for each
+     z slice of the data. See also *note Dens::, *note Cont::, *note
+     Axial::, *note ContFXYZ::. *Note ContF sample::, for sample code
+     and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContF (`const mglData
+          &'v, `const mglData &'z, `const char *'sch=`""', `float'
+          zVal=`NAN')
+ -- C function: `void' mgl_contf_val (`HMGL' gr, `const HMDT' v, `const
+          HMDT' z, `const char *'sch, `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' ContF (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `int' num=`7', `float' zVal=`NAN')
+ -- C function: `void' mgl_contf_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `int' num,
+          `float' zVal)
+     The same as first one with vector V of NUM-th elements
+     equidistantly distributed in range [CMIN, CMAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' ContF (`const mglData
+          &'z, `const char *'sch=`""', `int' num=`7', `float'
+          zVal=`NAN')
+ -- C function: `void' mgl_contf (`HMGL' gr, `const HMDT' z, `const
+          char *'sch, `int' num, `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: ContD,  Next: Axial,  Prev: ContF,  Up: 2D plotting
+
+3.10.10 ContD
+-------------
+
+ -- Method on `mglGraph' (C++, Python): `void' ContD (`const mglData
+          &'v, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const char *'sch=`""', `float' zVal=`NAN')
+ -- C function: `void' mgl_contd_xy_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const char
+          *'sch, `float' zVal)
+     The function draws solid (or filled) contour lines for surface
+     specified parametrically {X[i,j], Y[i,j], Z[i,j]} at Z = ZVAL (or
+     for Z=V[k] if `zVal==NAN') with manual colors. Contours are
+     plotted for Z[i,j]=V[k] where V[k] are values of data array V
+     (must be `v.nx>2'). String SCH sets the contour colors: the color
+     of k-th contour is determined by character `sch[k%strlen(sch)]'.
+     The minor dimensions of arrays X, Y, Z should be equal `x.nx=z.nx
+     && y.nx=z.ny' or `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Arrays X and
+     Y can be vectors (not matrices as Z). Surface is plotted for each
+     z slice of the data. See also *note Dens::, *note Cont::, *note
+     ContF::. *Note ContD sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContD (`const mglData
+          &'v, `const mglData &'z, `const char *'sch=`""', `float'
+          zVal=`NAN')
+ -- C function: `void' mgl_contd_val (`HMGL' gr, `const HMDT' v, `const
+          HMDT' z, `const char *'sch, `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' ContD (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `int' num=`7', `float' zVal=`NAN')
+ -- C function: `void' mgl_contd_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `int' num,
+          `float' zVal)
+     The same as first one with vector V of NUM-th elements
+     equidistantly distributed in range [CMIN, CMAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' ContD (`const mglData
+          &'z, `const char *'sch=`""', `int' num=`7', `float'
+          zVal=`NAN')
+ -- C function: `void' mgl_contd (`HMGL' gr, `const HMDT' z, `const
+          char *'sch, `int' num, `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Axial,  Next: Grad,  Prev: ContD,  Up: 2D plotting
+
+3.10.11 Axial
+-------------
+
+ -- Method on `mglGraph' (C++, Python): `void' Axial (`const mglData
+          &'v, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const char *'sch=`""')
+ -- C function: `void' mgl_axial_xy_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const char
+          *'sch)
+     The function draws surface which is result of contour plot
+     rotation for surface specified parametrically {X[i,j], Y[i,j],
+     Z[i,j]}. Contours are plotted for Z[i,j]=V[k] where V[k] are
+     values of data array V. String SCH sets the color scheme. Previous
+     color scheme is used by default. If string SCH have symbol `#'
+     then wire plot is produced. If string contain symbols `x', `y' or
+     `z' then rotation axis AXIALDIR (*note Other settings::) will be
+     set to specified direction. The minor dimensions of arrays X, Y, Z
+     should be equal `x.nx=z.nx && y.nx=z.ny' or `x.nx=y.nx=z.nx &&
+     x.ny=y.ny=z.ny'. Arrays X and Y can be vectors (not matrices as
+     Z). Surface is plotted for each z slice of the data. See also
+     *note Cont::, *note ContF::, *note Torus::, *note Surf3::. *Note
+     Axial sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Axial (`const mglData
+          &'v, `const mglData &'z, `const char *'sch=`""')
+ -- C function: `void' mgl_axial_val (`HMGL' gr, `const HMDT' v, `const
+          HMDT' z, `const char *'sch)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' Axial (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `int' num=`3')
+ -- C function: `void' mgl_axial_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `int' num)
+     The same as first one with vector V of NUM-th elements
+     equidistantly distributed in range [CMIN, CMAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' Axial (`const mglData
+          &'z, `const char *'sch=`""', `int' num=`3')
+ -- C function: `void' mgl_axial (`HMGL' gr, `const HMDT' z, `const
+          char *'sch, `int' num)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Grad,  Next: Grid,  Prev: Axial,  Up: 2D plotting
+
+3.10.12 Grad
+------------
+
+ -- Method on `mglGraph' (C++, Python): `void' Grad (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'phi, `const char *'sch=`""', `int' num=`5')
+ -- C function: `void' mgl_grad_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `int' num,
+          `float' zVal)
+     The function draws gradient lines for scalar field PHI[i,j,k]
+     specified parametrically {X[i,j,k], Y[i,j,k], Z[i,j,k]}. String
+     SCH sets the color scheme. Previous color scheme is used by
+     default. Number of lines is proportional to NUM. If NUM<0 then
+     lines start from borders only. The minor dimensions of arrays X,
+     Y, Z, PHI should be equal `x.nx=phi.nx && y.nx=phi.ny &&
+     z.nx=phi.nz' or `x.nx=y.nx=z.nx=phi.nx && x.ny=y.ny=z.ny=phi.ny &&
+     x.nz=y.nz=z.nz=phi.nz'. Arrays X, Y and Z can be vectors (not
+     matrices as PHI). See also *note Dens3::, *note Cont3::, *note
+     Flow::.
+
+ -- Method on `mglGraph' (C++, Python): `void' Grad (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `int' num=`5', `float' zVal=`NAN')
+ -- C function: `void' mgl_grad_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `int' num,
+          `float' zVal)
+     The function draws gradient lines for scalar field PHI[i,j]
+     specified parametrically {X[i,j], Y[i,j], PHI[i,j]} at Z = ZVAL.
+     String SCH sets the color scheme. Previous color scheme is used by
+     default. Number of lines is proportional to NUM. If NUM<0 then
+     lines start from borders only. The minor dimensions of arrays X,
+     Y, PHI should be equal `x.nx=phi.nx && y.nx=phi.ny' or
+     `x.nx=y.nx=phi.nx && x.ny=y.ny=phi.ny'. Arrays X and Y can be
+     vectors (not matrices as PHI). Lines are plotted for each z slice
+     of the data. See also *note Dens::, *note Cont::, *note ContF::,
+     *note Flow::. *Note Grad sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Grad (`const mglData
+          &'z, `const char *'sch=`""', `int' num=`5', `float'
+          zVal=`NAN')
+ -- C function: `void' mgl_grad (`HMGL' gr, `const HMDT' z, `const char
+          *'sch, `int' num, `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Grid,  Prev: Grad,  Up: 2D plotting
+
+3.10.13 Grid
+------------
+
+ -- Method on `mglGraph' (C++, Python): `void' Grid (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `float' zVal=`NAN')
+ -- C function: `void' mgl_grid_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `float' zVal)
+     The function draws grid lines for density plot of surface
+     specified parametrically {X[i,j], Y[i,j], Z[i,j]} at Z = ZVAL.
+     String SCH sets the color scheme. Previous color scheme is used by
+     default. The minor dimensions of arrays X, Y, Z should be equal
+     `x.nx=z.nx && y.nx=z.ny' or `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'.
+     Arrays X and Y can be vectors (not matrices as Z). Grid is plotted
+     for each z slice of the data. See also *note Dens::, *note Cont::,
+     *note ContF::.
+
+ -- Method on `mglGraph' (C++, Python): `void' Grid (`const mglData
+          &'z, `const char *'sch=`""', `float' zVal=`NAN')
+ -- C function: `void' mgl_grid (`HMGL' gr, `const HMDT' z, `const char
+          *'sch, `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: 3D plotting,  Next: Dual plotting,  Prev: 2D plotting,  Up: MathGL core
+
+3.11 3D plotting
+================
+
+These functions perform plotting of 3D data. 3D means that data depend
+from 3 independent parameters like matrix f(x_i,y_j,z_k), i=1...n,
+j=1...m, k=1...l. There are 5 generally different types of data
+representations: isosurface or surface of constant value (Surf3),
+density plot at slices (Dens3), contour lines plot at slices (Cont3),
+solid contours plot at slices (ContF3) and cloud-like plot (Cloud).
+Surf3, Cont3 and ContF3 functions have variants for automatic and
+manual selection of level values for surfaces/contours. Also there are
+functions for plotting data grid lines according to the data format
+(Grid3) for enhancing density or contour plots. Each type of plotting
+has similar interface. There are 2 kind of versions which handle the
+arrays of data and coordinates or only single data array. Parameters of
+color scheme are specified by the string argument. *Note Color
+scheme::. *Note 3D plot sample::, for sample code and picture.
+
+* Menu:
+
+* Surf3::
+* Dens3::
+* Cont3::
+* ContF3::
+* Grid3::
+* Cloud::
+* Beam::
+
+
+File: mathgl_en.info,  Node: Surf3,  Next: Dens3,  Up: 3D plotting
+
+3.11.1 Surf3
+------------
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf3 (`float' val,
+          `const mglData &'x, `const mglData &'y, `const mglData &'z,
+          `const mglData &'a, `const char *'stl=`""')
+ -- C function: `void' mgl_surf3_xyz_val (`HMGL' gr, `float' val,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          a, `const char *'stl)
+     The function draws isosurface plot for 3d array specified
+     parametrically A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) at
+     A(x,y,z)=VAL. String SCH sets the color scheme. Previous color
+     scheme is used by default. If string contain `#' then wire plot is
+     produced. Arrays X, Y, Z can be vectors (not 3d arrays as A).
+     Note, that there is possibility of incorrect plotting due to
+     uncertainty of cross-section defining if there are two or more
+     isosurface intersections inside one cell. See also *note Cloud::,
+     *note Dens3::, *note Surf3C::, *note Surf3A::, *note Axial::.
+     *Note Surf3 sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf3 (`float' val,
+          `const mglData &'a, `const char *'sch=`""')
+ -- C function: `void' mgl_surf3_val (`HMGL' gr, `float' val, `const
+          HMDT' a, `const char *'sch)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf3 (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const char *'stl=`""', `int' num=`3')
+ -- C function: `void' mgl_surf3_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `const char *'stl,
+          `int' num)
+     Draws NUM-th uniformly distributed in range [CMIN, CMAX]
+     isosurfaces for 3d data specified parametrically.
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf3 (`const mglData
+          &'a, `const char *'sch=`""', `int' num=`3')
+ -- C function: `void' mgl_surf3 (`HMGL' gr, `const HMDT' a, `const
+          char *'sch, `int' num)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Dens3,  Next: Cont3,  Prev: Surf3,  Up: 3D plotting
+
+3.11.2 Dens3
+------------
+
+ -- Method on `mglGraph' (C++, Python): `void' Dens3 (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `char' dir, `int' sVal=`-1', `const char *'stl=`""')
+ -- C function: `void' mgl_dens3_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `char' dir, `int'
+          sVal, `const char *'stl)
+     The function draws density plot for 3d data specified
+     parametrically A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]). Density is
+     plotted at slice SVAL in DIR={`x', `y', `z'} direction. String SCH
+     sets the color scheme. Previous color scheme is used by default.
+     If string STL have symbol `#' then grid lines are drawn. The minor
+     dimensions of arrays X, Y, Z must be equal. Arrays X, Y, Z can be
+     vectors (not 3d arrays as A). See also *note Cont3::, *note
+     ContF3::, *note Dens::, *note Grid3::. *Note Dens3 sample::, for
+     sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Dens3 (`const mglData
+          &'a, `char' dir, `int' sVal=`-1', `const char *'sch=`""')
+ -- C function: `void' mgl_dens3 (`HMGL' gr, `const HMDT' a, `char'
+          dir, `int' sVal, `const char *'sch)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' DensA (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const char *'stl=`""')
+ -- C function: `void' mgl_dens3_all_xyz (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' a, `const char
+          *'stl)
+     Draws density plots at all central slices of the 3d data specified
+     parametrically.
+
+ -- Method on `mglGraph' (C++, Python): `void' DensA (`const mglData
+          &'a, `const char *'sch=`""')
+ -- C function: `void' mgl_dens3_all (`HMGL' gr, `const HMDT' a, `const
+          char *'sch)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Cont3,  Next: ContF3,  Prev: Dens3,  Up: 3D plotting
+
+3.11.3 Cont3
+------------
+
+ -- Method on `mglGraph' (C++, Python): `void' Cont3 (`const mglData
+          &'v, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const mglData &'a, `char' dir, `int' sVal=`-1', `const
+          char *'stl=`""')
+ -- C function: `void' mgl_cont3_xyz_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          a, `char' dir, `int' sVal, `const char *'stl)
+     The function draws contour plot for 3d data specified
+     parametrically A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]). Contours
+     are plotted for values specified in array V at slice SVAL in
+     DIR={`x', `y', `z'} direction. String STL sets the color scheme.
+     Previous color scheme is used by default. If string STL have
+     symbol `#' then grid lines are drawn. If string STL have symbol
+     `t' or `T' then contour labels V[k] will be drawn below (or above)
+     the contours. The minor dimensions of arrays X, Y, Z must be
+     equal. Arrays X, Y, Z can be vectors (not 3d arrays as A). See
+     also *note Dens3::, *note ContF3::, *note Cont::, *note Grid3::.
+     *Note Cont3 sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Cont3 (`const mglData
+          &'v, `const mglData &'a, `char' dir, `int' sVal=`-1', `const
+          char *'sch=`""')
+ -- C function: `void' mgl_cont3_val (`HMGL' gr, `const HMDT' v, `const
+          HMDT' a, `char' dir, `int' sVal, `const char *'sch)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' Cont3 (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `char' dir, `int' sVal=`-1', `const char *'stl=`""',
+          `int' num=`7')
+ -- C function: `void' mgl_cont3_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `char' dir, `int'
+          sVal, `const char *'stl, `int' num)
+     The same as first one with vector V of NUM-th elements
+     equidistantly distributed in range [CMIN, CMAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' Cont3 (`const mglData
+          &'a, `char' dir, `int' sVal=`-1', `const char *'sch=`""',
+          `int' num=`7')
+ -- C function: `void' mgl_cont3 (`HMGL' gr, `const HMDT' a, `char'
+          dir, `int' sVal, `const char *'sch, `int' num)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' ContA (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const char *'stl=`""', `int' num=`7')
+ -- C function: `void' mgl_cont3_all_xyz (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' a, `const char
+          *'stl, `int' num)
+     Draws contour plots at all central slices of the 3d data specified
+     parametrically.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContA (`const mglData
+          &'a, `const char *'sch=`""', `int' num=`7')
+ -- C function: `void' mgl_cont3_all (`HMGL' gr, `const HMDT' a, `const
+          char *'sch, `int' num)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: ContF3,  Next: Grid3,  Prev: Cont3,  Up: 3D plotting
+
+3.11.4 ContF3
+-------------
+
+ -- Method on `mglGraph' (C++, Python): `void' ContF3 (`const mglData
+          &'v, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const mglData &'a, `char' dir, `int' sVal=`-1', `const
+          char *'stl=`""')
+ -- C function: `void' mgl_contf3_xyz_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          a, `char' dir, `int' sVal, `const char *'stl)
+     The function draws solid (or filled) contour plot for 3d data
+     specified parametrically A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]).
+     Contours are plotted for values specified in array V at slice SVAL
+     in DIR={`x', `y', `z'} direction. String SCH sets the color
+     scheme. Previous color scheme is used by default. If string STL
+     have symbol `#' then grid lines are drawn. The minor dimensions of
+     arrays X, Y, Z must be equal. Arrays X, Y, Z can be vectors (not
+     3d arrays as A). See also *note Dens3::, *note Cont3::, *note
+     ContF::, *note Grid3::. *Note ContF3 sample::, for sample code and
+     picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContF3 (`const mglData
+          &'v, `const mglData &'a, `char' dir, `int' sVal=`-1', `const
+          char *'sch=`""')
+ -- C function: `void' mgl_contf3_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' a, `char' dir, `int' sVal, `const char *'sch)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' ContF3 (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `char' dir, `int' sVal=`-1', `const char *'stl=`""',
+          `int' num=`7')
+ -- C function: `void' mgl_contf3_xyz (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' a, `char' dir,
+          `int' sVal, `const char *'stl, `int' num)
+     The same as first one with vector V of NUM-th elements
+     equidistantly distributed in range [CMIN, CMAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' ContF3 (`const mglData
+          &'a, `char' dir, `int' sVal=`-1', `const char *'sch=`""',
+          `int' num=`7')
+ -- C function: `void' mgl_contf3 (`HMGL' gr, `const HMDT' a, `char'
+          dir, `int' sVal, `const char *'sch, `int' num)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' ContFA (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const char *'stl=`""', `int' num=`7')
+ -- C function: `void' mgl_contf3_all_xyz (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' a, `const char
+          *'stl, `int' num)
+     Draws contour plots at all central slices of the 3d data specified
+     parametrically.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContFA (`const mglData
+          &'a, `const char *'sch=`""', `int' num=`7')
+ -- C function: `void' mgl_contf3_all (`HMGL' gr, `const HMDT' a,
+          `const char *'sch, `int' num)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Grid3,  Next: Cloud,  Prev: ContF3,  Up: 3D plotting
+
+3.11.5 Grid3
+------------
+
+ -- Method on `mglGraph' (C++, Python): `void' Grid3 (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `char' dir, `int' sVal=`-1', `const char *'stl=`""')
+ -- C function: `void' mgl_grid3_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `char' dir, `int'
+          sVal, `const char *'stl)
+     The function draws grid for 3d data specified parametrically
+     A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]). Grid is plotted at slice
+     SVAL in DIR={`x', `y', `z'} direction. String SCH sets the color
+     scheme. Previous color scheme is used by default. The minor
+     dimensions of arrays X, Y, Z must be equal. Arrays X, Y, Z can be
+     vectors (not 3d arrays as A). See also *note Cont3::, *note
+     ContF3::, *note Dens3::, *note Grid::.
+
+ -- Method on `mglGraph' (C++, Python): `void' Grid3 (`const mglData
+          &'a, `char' dir, `int' sVal=`-1', `const char *'sch=`""')
+ -- C function: `void' mgl_grid3 (`HMGL' gr, `const HMDT' a, `char'
+          dir, `int' sVal, `const char *'sch)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' GridA (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const char *'stl=`""')
+ -- C function: `void' mgl_grid3_all_xyz (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' a, `const char
+          *'stl)
+     Draws grids at all central slices of the 3d data specified
+     parametrically.
+
+ -- Method on `mglGraph' (C++, Python): `void' GridA (`const mglData
+          &'a, `const char *'sch=`""')
+ -- C function: `void' mgl_grid3_all (`HMGL' gr, `const HMDT' a, `const
+          char *'sch)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Cloud,  Next: Beam,  Prev: Grid3,  Up: 3D plotting
+
+3.11.6 Cloud
+------------
+
+ -- Method on `mglGraph' (C++, Python): `void' Cloud (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const char *'stl=`""', `float' alpha=`1')
+ -- C function: `void' mgl_cloud_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `const char *'stl,
+          `float' alpha=`1')
+     The function draws cloud plot for 3d data specified parametrically
+     A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]). This plot is a set of
+     cubes with color and transparency proportional to value of A. The
+     resulting plot is like cloud - low value is transparent but higher
+     ones are not. The number of plotting cells depend on MeshNum
+     (*note Other settings::). String SCH sets the color scheme.
+     Previous color scheme is used by default. Parameter ALPHA changes
+     the overall transparency of plot. The minor dimensions of arrays
+     X, Y, Z must be equal. Arrays X, Y, Z can be vectors (not 3d
+     arrays as A). See also *note Surf3::. *Note Cloud sample::, for
+     sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Cloud (`const mglData
+          &'a, `const char *'stl=`""', `float' alpha=`1')
+ -- C function: `void' mgl_cloud (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' alpha=`1')
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++): `void' CloudP (`const mglData &'x,
+          `const mglData &'y, `const mglData &'z, `const mglData &'a,
+          `const char *'stl=`""', `float' alpha=`1')
+ -- C function: `void' mgl_cloudp_xyz (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' a, `const char
+          *'stl, `float' alpha=`1')
+     The same as first one but the semi-transparent points are used
+     instead of cubes. *Note CloudP sample::, for sample code and
+     picture.
+
+ -- Method on `mglGraph' (C++): `void' CloudP (`const mglData &'a,
+          `const char *'stl=`""', `float' alpha=`1')
+ -- C function: `void' mgl_cloudp (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' alpha=`1')
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Beam,  Prev: Cloud,  Up: 3D plotting
+
+3.11.7 Beam
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Beam (`float' val,
+          `const mglData &'tr, `const mglData &'g1, `const mglData
+          &'g2, `const mglData &'a, `float' r, `const char *'stl=`""',
+          `int' flag=`0')
+ -- C function: `void' mgl_beam_val (`HMGL' gr, `float' val, `const
+          HMDT' tr, `const HMDT' g1, `const HMDT' g2, `const HMDT' a,
+          `float' r, `const char *'stl, `int' flag)
+     Draws the isosurface for 3d array A at constant values of A=VAL.
+     This is special kind of plot for A specified in accompanied
+     coordinates along curve TR with orts G1, G2 and with transverse
+     scale R. Variable FLAG is bitwise: `0x1' - draw in accompanied
+     (not laboratory) coordinates; `0x2' - draw projection to \rho-z
+     plane; `0x4' - draw normalized in each slice field. The x-size of
+     data arrays TR, G1, G2 must be nx>2. The y-size of data arrays TR,
+     G1, G2 and z-size of the data array A must be equal. *Note Surf3::.
+
+ -- Method on `mglGraph' (C++, Python): `void' Beam (`const mglData
+          &'tr, `const mglData &'g1, `const mglData &'g2, `const
+          mglData &'a, `float' r, `const char *'stl=`""', `int'
+          flag=`0', `int' num=`3')
+ -- C function: `void' mgl_beam (`HMGL' gr, `const HMDT' tr, `const
+          HMDT' g1, `const HMDT' g2, `const HMDT' a, `float' r, `const
+          char *'stl, `int' flag=`0', `int' num=`3')
+     Draws NUM-th uniformly distributed in range [CMIN, CMAX]
+     isosurfaces for 3d data specified parametrically.
+
+
+File: mathgl_en.info,  Node: Dual plotting,  Next: Vector fields,  Prev: 3D plotting,  Up: MathGL core
+
+3.12 Dual plotting
+==================
+
+These plotting functions draw _two matrix_ simultaneously. There are 5
+generally different types of data representations: surface or
+isosurface colored by other data (SurfC, Surf3C), surface or isosurface
+transpared by other data (SurfA, Surf3A), tiles with variable size
+(TileS), mapping diagram (Map), STFA diagram (STFA). Surf3A and Surf3C
+have variants for automatic and manual selection of level values for
+isosurfaces. Each type of plotting has similar interface. There are 2
+kind of versions which handle the arrays of data and coordinates or
+only single data array. Parameters of color scheme are specified by the
+string argument. *Note Color scheme::.
+
+* Menu:
+
+* SurfC::
+* Surf3C::
+* SurfA::
+* Surf3A::
+* TileS::
+* Map::
+* STFA::
+
+
+File: mathgl_en.info,  Node: SurfC,  Next: Surf3C,  Up: Dual plotting
+
+3.12.1 SurfC
+------------
+
+ -- Method on `mglGraph' (C++, Python): `void' SurfC (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'c, `const char *'sch=`""')
+ -- C function: `void' mgl_surfc_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' c, `const char *'sch)
+     The function draws surface specified parametrically {X[i,j],
+     Y[i,j], Z[i,j]} and color it by matrix C[i,j]. String SCH sets the
+     color scheme. Previous color scheme is used by default. If string
+     SCH have symbol `#' then grid lines are drawn. All dimensions of
+     arrays Z and C must be equal. The minor dimensions of arrays X, Y,
+     Z should be equal `x.nx=z.nx && y.nx=z.ny' or `x.nx=y.nx=z.nx &&
+     x.ny=y.ny=z.ny'. Arrays X and Y can be vectors (not matrices as
+     Z). Surface is plotted for each z slice of the data. See also
+     *note Surf::, *note SurfA::, *note Surf3C::. *Note SurfC sample::,
+     for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' SurfC (`const mglData
+          &'z, `const mglData &'c, `const char *'sch=`""')
+ -- C function: `void' mgl_surfc (`HMGL' gr, `const HMDT' z, `const
+          HMDT' c, `const char *'sch)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Surf3C,  Next: SurfA,  Prev: SurfC,  Up: Dual plotting
+
+3.12.2 Surf3C
+-------------
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf3C (`float' val,
+          `const mglData &'x, `const mglData &'y, `const mglData &'z,
+          `const mglData &'a, `const mglData &'c, `const char
+          *'stl=`""')
+ -- C function: `void' mgl_surf3c_xyz_val (`HMGL' gr, `float' val,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          a, `const HMDT' c, `const char *'stl)
+     The function draws isosurface plot for 3d array specified
+     parametrically A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) at
+     A(x,y,z)=VAL. It is mostly the same as Surf3() function but the
+     color of isosurface depends on values of array C. String SCH sets
+     the color scheme. Previous color scheme is used by default. If
+     string contain `#' then wire plot is produced. All dimensions of
+     arrays Z and C must be equal. Arrays X, Y, Z can be vectors (not
+     3d arrays as A). Note, that there is possibility of incorrect
+     plotting due to uncertainty of cross-section defining if there are
+     two or more isosurface intersections inside one cell. See also
+     *note Surf3::, *note SurfC::, *note Surf3A::. *Note Surf3C
+     sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf3C (`float' val,
+          `const mglData &'a, `const mglData &'c, `const char
+          *'sch=`""')
+ -- C function: `void' mgl_surf3c_val (`HMGL' gr, `float' val, `const
+          HMDT' a, `const HMDT' c, `const char *'sch)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf3C (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const mglData &'c, `const char *'stl=`""', `int'
+          num=`3')
+ -- C function: `void' mgl_surf3c_xyz (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' a, `const HMDT'
+          c, `const char *'stl, `int' num)
+     Draws NUM-th uniformly distributed in range [CMIN, CMAX]
+     isosurfaces for 3d data specified parametrically.
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf3C (`const mglData
+          &'a, `const mglData &'c, `const char *'sch=`""', `int'
+          num=`3')
+ -- C function: `void' mgl_surf3c (`HMGL' gr, `const HMDT' a, `const
+          HMDT' c, `const char *'sch, `int' num)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: SurfA,  Next: Surf3A,  Prev: Surf3C,  Up: Dual plotting
+
+3.12.3 SurfA
+------------
+
+ -- Method on `mglGraph' (C++, Python): `void' SurfA (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'c, `const char *'sch=`""')
+ -- C function: `void' mgl_surfa_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' c, `const char *'sch)
+     The function draws surface specified parametrically {X[i,j],
+     Y[i,j], Z[i,j]} and transparent it by matrix C[i,j]. String SCH
+     sets the color scheme. Previous color scheme is used by default.
+     If string SCH have symbol `#' then grid lines are drawn. All
+     dimensions of arrays Z and C must be equal. The minor dimensions
+     of arrays X, Y, Z should be equal `x.nx=z.nx && y.nx=z.ny' or
+     `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Arrays X and Y can be vectors
+     (not matrices as Z). Surface is plotted for each z slice of the
+     data. See also *note Surf::, *note SurfC::, *note Surf3A::, *note
+     TileS::. *Note SurfA sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' SurfA (`const mglData
+          &'z, `const mglData &'c, `const char *'sch=`""')
+ -- C function: `void' mgl_surfa (`HMGL' gr, `const HMDT' z, `const
+          HMDT' c, `const char *'sch)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Surf3A,  Next: TileS,  Prev: SurfA,  Up: Dual plotting
+
+3.12.4 Surf3A
+-------------
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf3A (`float' val,
+          `const mglData &'x, `const mglData &'y, `const mglData &'z,
+          `const mglData &'a, `const mglData &'c, `const char
+          *'stl=`""')
+ -- C function: `void' mgl_surf3a_xyz_val (`HMGL' gr, `float' val,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          a, `const HMDT' c, `const char *'stl)
+     The function draws isosurface plot for 3d array specified
+     parametrically A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) at
+     A(x,y,z)=VAL. It is mostly the same as Surf3() function but the
+     transparency of isosurface depends on values of B array. This
+     allows one to remove the part of isosurface where B is negligibly
+     small (useful for phase plotting of a beam or a pulse). String SCH
+     sets the color scheme. Previous color scheme is used by default.
+     If string contain `#' then wire plot is produced. All dimensions
+     of arrays Z and C must be equal. Arrays X, Y, Z can be vectors
+     (not 3d arrays as A). Note, that there is possibility of incorrect
+     plotting due to uncertainty of cross-section defining if there are
+     two or more isosurface intersections inside one cell. See also
+     *note Surf3::, *note SurfA::, *note Surf3C::. *Note Surf3A
+     sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf3A (`float' val,
+          `const mglData &'a, `const mglData &'c, `const char
+          *'sch=`""')
+ -- C function: `void' mgl_surf3a_val (`HMGL' gr, `float' val, `const
+          HMDT' a, `const HMDT' c, `const char *'sch)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf3A (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const mglData &'c, `const char *'stl=`""', `int'
+          num=`3')
+ -- C function: `void' mgl_surf3a_xyz (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' a, `const HMDT'
+          c, `const char *'stl, `int' num)
+     Draws NUM-th uniformly distributed in range [CMIN, CMAX]
+     isosurfaces for 3d data specified parametrically.
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf3A (`const mglData
+          &'a, `const mglData &'c, `const char *'sch=`""', `int'
+          num=`3')
+ -- C function: `void' mgl_surf3a (`HMGL' gr, `const HMDT' a, `const
+          HMDT' c, `const char *'sch, `int' num)
+     The same as previous with X, Y, Z equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: TileS,  Next: Map,  Prev: Surf3A,  Up: Dual plotting
+
+3.12.5 TileS
+------------
+
+ -- Method on `mglGraph' (C++, Python): `void' TileS (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'r, `const char *'sch=`""')
+ -- C function: `void' mgl_tiles_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' r, `const char *'sch)
+     The function draws horizontal tiles for surface specified
+     parametrically {X[i,j], Y[i,j], Z[i,j]}. It is mostly the same as
+     Tile() but the size of tiles is determined by R array. This is
+     some kind of "transparency" useful for exporting to EPS files.
+     String SCH sets the color scheme. Previous color scheme is used by
+     default. The minor dimensions of arrays X, Y, Z should be equal
+     `x.nx=z.nx && y.nx=z.ny' or `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'.
+     Arrays X and Y can be vectors (not matrices as Z). Surface is
+     plotted for each z slice of the data. See also *note SurfA::,
+     *note Tile::. *Note TileS sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' TileS (`const mglData
+          &'z, `const mglData &'c, `const char *'sch=`""')
+ -- C function: `void' mgl_tiles (`HMGL' gr, `const HMDT' z, `const
+          HMDT' c, `const char *'sch)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Map,  Next: STFA,  Prev: TileS,  Up: Dual plotting
+
+3.12.6 Map
+----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Map (`const mglData &'x,
+          `const mglData &'y, `const mglData &'ax, `const mglData &'ay,
+          `const char *'sch=`""', `int' ks=`0', `bool' pnts=`true')
+ -- C function: `void' mgl_map_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ax, `const HMDT' ay, `const char *'sch,
+          `int' ks, `int' pnts)
+     The function draws mapping plot for matrices {AX, AY } which
+     parametrically depend on coordinates X, Y. The initial position of
+     the cell (point) is marked by color. Height is proportional to
+     Jacobian(ax,ay). This plot is like Arnold diagram ???. If
+     `pnts=false' then face is drawn otherwise the color ball at matrix
+     knots are drawn. Parameter KS specifies the slice of matrices
+     which will be used. String SCH sets the color scheme. Previous
+     color scheme is used by default. The size of AX and AY must be the
+     same. The minor dimensions of arrays X, Y, AX should be equal.
+     Arrays X, Y can be vectors (not matrix as AX). *Note Color
+     scheme::. *Note Map sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Map (`const mglData
+          &'ax, `const mglData &'ay, `const char *'sch=`""', `int'
+          ks=`0', `bool' pnts=`true')
+ -- C function: `void' mgl_map (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const char *'sch, `int' ks, `int' pnts)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: STFA,  Prev: Map,  Up: Dual plotting
+
+3.12.7 STFA
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' STFA (`const mglData
+          &'x, `const mglData &'y, `const mglData &'re, `const mglData
+          &'im, `int' dn, `const char *'sch=`""', `float' zVal=`NAN')
+ -- C function: `void' mgl_stfa_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' re, `const HMDT' im, `int' dn, `const
+          char *'sch, `float' zVal)
+     Draws spectrogram of complex array RE+i*`im' for Fourier size of
+     DN points at plane Z=ZVAL. Parameter DN is arbitrary even integer.
+     For example in 1D case, result is density plot of data
+     res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn with
+     size {int(nx/dn), dn, ny}. At this array RE, IM parametrically
+     depend on coordinates X, Y. String SCH sets the color scheme.
+     Previous color scheme is used by default. The size of RE and IM
+     must be the same. The minor dimensions of arrays X, Y, RE should
+     be equal. Arrays X, Y can be vectors (not matrix as RE).  *Note
+     STFA sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' STFA (`const mglData
+          &'re, `const mglData &'im, `int' dn, `const char *'sch=`""',
+          `float' zVal=`NAN')
+ -- C function: `void' mgl_stfa (`HMGL' gr, `const HMDT' re, `const
+          HMDT' im, `int' dn, `const char *'sch, `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Vector fields,  Next: Other plotting,  Prev: Dual plotting,  Up: MathGL core
+
+3.13 Vector fields
+==================
+
+These functions perform plotting of 2D and 3D vector fields. There are
+5 generally different types of vector fields representations: simple
+vector field (Vect), vectors along the curve (Traj), vector field by
+dew-drops (Dew), flow threads (Flow, FlowP), flow pipes (Pipe). Each
+type of plotting has similar interface. There are 2 kind of versions
+which handle the arrays of data and coordinates or only single data
+array. Parameters of color scheme are specified by the string argument.
+*Note Color scheme::.
+
+* Menu:
+
+* Traj::
+* Vect::
+* VectL::
+* VectC::
+* Dew::
+* Flow::
+* FlowP::
+* Pipe::
+
+
+File: mathgl_en.info,  Node: Traj,  Next: Vect,  Up: Vector fields
+
+3.13.1 Traj
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Traj (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""', `float' len=`0')
+ -- Method on `mglGraph' (C++, Python): `void' Traj (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ax, `const mglData
+          &'ay, `const char *'sch=`""', `float' zVal=`NAN', `float'
+          len=`0')
+ -- C function: `void' mgl_traj_xyz (`HMGL' gr, `const HMDT'x, `const
+          HMDT'y, `const HMDT'z, `const HMDT'ax, `const HMDT'ay, `const
+          HMDT'az, `const char *'sch, `float' len)
+ -- C function: `void' mgl_traj_xy (`HMGL' gr, `const HMDT'x, `const
+          HMDT'y, `const HMDT'ax, `const HMDT'ay, `const char *'sch,
+          `float' zVal, `float' len)
+     The function draws vectors {AX, AY, AZ} along a curve {X, Y, Z}.
+     The length of arrows are proportional to \sqrt{ax^2+ay^2+az^2}.
+     String PEN specifies the color (*note Line styles::). By default
+     (`pen=""') color from palette is used (*note Palette and
+     colors::). Parameter LEN set the vector length factor (if
+     non-zero) or vector length to be proportional the distance between
+     curve points (if LEN=0). The minor sizes of all arrays must be
+     equal and large 2. The plots are drawn for each row if one of the
+     data is the matrix. See also *note Vect::. *Note Traj sample::,
+     for sample code and picture.
+
+
+File: mathgl_en.info,  Node: Vect,  Next: VectL,  Prev: Traj,  Up: Vector fields
+
+3.13.2 Vect
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Vect (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ax, `const mglData
+          &'ay, `const char *'sch=`""', `float' zVal=`NAN', `int'
+          flag=`0')
+ -- C function: `void' mgl_vect_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ax, `const HMDT' ay, `const char *'sch,
+          `float' zVal, `int' flag)
+     The function draws plane vector field plot for the field {AX, AY}
+     depending parametrically on coordinates X, Y at level Z=ZVAL. The
+     length and color of arrows are proportional to \sqrt{ax^2+ay^2}.
+     The number of arrows depend on MESHNUM (*note Other settings::).
+     The color is specified by the string argument SCH. Previous color
+     scheme is used by default. Parameter FLAG is bitwise flag for
+     setup the hachures (arrows): `MGL_VEC_COL' for drawing bi-color
+     arrow, `MGL_VEC_LEN' for drawing fixed length arrows,
+     `MGL_VEC_DOT' for drawing hachures with dots instead of arrows,
+     `MGL_VEC_END' for drawing arrows to the cell point, `MGL_VEC_MID'
+     for drawing arrows with center at cell point. The size of AX and
+     AY must be equal. The minor dimensions of arrays X, Y and AX must
+     be equal too. Arrays X and Y can be vectors (not matrices as AX).
+     The vector field is plotted for each z slice of AX, AY. See also
+     *note VectL::, *note VectC::, *note Flow::, *note Dew::. *Note
+     Vect sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Vect (`const mglData
+          &'ax, `const mglData &'ay, `const char *'sch=`""', `float'
+          zVal=`NAN', `int' flag=`0')
+ -- C function: `void' mgl_vect_2d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const char *'sch, `float' zVal, `int' flag)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' Vect (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""', `int' flag=`0')
+ -- C function: `void' mgl_vect_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' ax, `const HMDT' ay,
+          `const HMDT' az, `const char *'sch, `int' flag)
+     This is 3D version of the first functions. Here arrays AX, AY, AZ
+     must be 3-ranged tensors with equal sizes and the length and color
+     of arrows is proportional to \sqrt{ax^2+ay^2+az^2}. *Note Vect 3D
+     sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Vect (`const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""', `int' flag=`0')
+ -- C function: `void' mgl_vect_3d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const HMDT' az, `const char *'sch, `int' flag)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: VectL,  Next: VectC,  Prev: Vect,  Up: Vector fields
+
+3.13.3 VectL
+------------
+
+These functions are obsolete - use Vect() functions instead.
+
+ -- Method on `mglGraph' (C++, Python): `void' VectL (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ax, `const mglData
+          &'ay, `const char *'sch=`""', `float' zVal=`NAN')
+ -- C function: `void' mgl_vectl_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ax, `const HMDT' ay, `const char *'sch,
+          `float' zVal)
+     The function draws plane vector field plot for the field {AX, AY}
+     depending parametrically on coordinates X, Y at level Z=ZVAL. The
+     length of hachures is proportional to \sqrt{ax^2+ay^2}. The number
+     of hachures depend on MESHNUM (*note Other settings::). Points are
+     denote the start of hachures. The color is specified by the string
+     argument SCH. Previous color scheme is used by default. The size
+     of AX and AY must be equal. The minor dimensions of arrays X, Y
+     and AX must be equal too. Arrays X and Y can be vectors (not
+     matrices as AX). The vector field is plotted for each z slice of
+     AX, AY. See also *note Vect::, *note VectC::, *note Flow::, *note
+     Dew::. *Note VectL sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' VectL (`const mglData
+          &'ax, `const mglData &'ay, `const char *'sch=`""', `float'
+          zVal=`NAN')
+ -- C function: `void' mgl_vectl_2d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const char *'sch, `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' VectL (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""')
+ -- C function: `void' mgl_vectl_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' ax, `const HMDT' ay,
+          `const HMDT' az, `const char *'sch)
+     This is 3D version of the first functions. Here arrays AX, AY, AZ
+     must be 3-ranged tensors with equal sizes and the length of
+     hachures is proportional to \sqrt{ax^2+ay^2+az^2}. *Note VectL 3D
+     sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' VectL (`const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""')
+ -- C function: `void' mgl_vectl_3d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const HMDT' az, `const char *'sch)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: VectC,  Next: Dew,  Prev: VectL,  Up: Vector fields
+
+3.13.4 VectC
+------------
+
+These functions are obsolete - use Vect() functions instead.
+
+ -- Method on `mglGraph' (C++, Python): `void' VectC (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ax, `const mglData
+          &'ay, `const char *'sch=`""', `float' zVal=`NAN')
+ -- C function: `void' mgl_vectc_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ax, `const HMDT' ay, `const char *'sch,
+          `float' zVal)
+     The function draws plane vector field plot for the field {AX, AY}
+     depending parametrically on coordinates X, Y at level Z=ZVAL. The
+     color of hachures is proportional to \sqrt{ax^2+ay^2}. The number
+     of hachures depend on MESHNUM (*note Other settings::). Points are
+     denote the start of hachures. The color is specified by the string
+     argument SCH. Previous color scheme is used by default. The size
+     of AX and AY must be equal. The minor dimensions of arrays X, Y
+     and AX must be equal too. Arrays X and Y can be vectors (not
+     matrices as AX). The vector field is plotted for each z slice of
+     AX, AY. See also *note Vect::, *note VectL::, *note Flow::, *note
+     Dew::. *Note VectC sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' VectC (`const mglData
+          &'ax, `const mglData &'ay, `const char *'sch=`""', `float'
+          zVal=`NAN')
+ -- C function: `void' mgl_vectc_2d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const char *'sch, `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' VectC (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""')
+ -- C function: `void' mgl_vectc_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' ax, `const HMDT' ay,
+          `const HMDT' az, `const char *'sch)
+     This is 3D version of the first functions. Here arrays AX, AY, AZ
+     must be 3-ranged tensors with equal sizes and the color of
+     hachures is proportional to \sqrt{ax^2+ay^2+az^2}. *Note VectC 3D
+     sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' VectC (`const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""')
+ -- C function: `void' mgl_vectc_3d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const HMDT' az, `const char *'sch)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
diff --git a/texinfo/mathgl_en.info-2 b/texinfo/mathgl_en.info-2
new file mode 100644
index 0000000..438c81a
--- /dev/null
+++ b/texinfo/mathgl_en.info-2
@@ -0,0 +1,7211 @@
+This is mathgl_en.info, produced by makeinfo version 4.13 from
+mathgl_en.texi.
+
+This manual is for MathGL (version 1.11), a collection of classes and
+routines for scientific plotting. Please report any errors in this
+manual to <mathgl.abalakin at gmail.org>.
+
+   Copyright (C) 2008 Alexey Balakin.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with the Front-Cover Texts
+     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+     below.  A copy of the license is included in the section entitled
+     "GNU Free Documentation License."
+
+     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+     and modify this GNU manual.  Buying copies from the FSF supports
+     it in developing GNU and promoting software freedom."
+
+
+File: mathgl_en.info,  Node: Dew,  Next: Flow,  Prev: VectC,  Up: Vector fields
+
+3.13.5 Dew
+----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Dew (`const mglData &'x,
+          `const mglData &'y, `const mglData &'ax, `const mglData &'ay,
+          `const char *'sch=`""', `float' zVal=`NAN')
+ -- C function: `void' mgl_dew_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ax, `const HMDT' ay, `const char *'sch,
+          `float' zVal)
+     The function draws dew-drops for plane vector field {AX, AY}
+     depending parametrically on coordinates X, Y at level Z=ZVAL. Note
+     that this is very expensive plot in memory usage and creation
+     time! The color of drops is proportional to \sqrt{ax^2+ay^2}. The
+     number of drops depend on MESHNUM (*note Other settings::). The
+     color is specified by the string argument SCH. Previous color
+     scheme is used by default. The size of AX and AY must be equal.
+     The minor dimensions of arrays X, Y and AX must be equal too.
+     Arrays X and Y can be vectors (not matrices as AX). The vector
+     field is plotted for each z slice of AX, AY. See also *note
+     Vect::, *note VectC::. *Note Dew sample::, for sample code and
+     picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Dew (`const mglData
+          &'ax, `const mglData &'ay, `const char *'sch=`""', `float'
+          zVal=`NAN')
+ -- C function: `void' mgl_dew (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const char *'sch, `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Flow,  Next: FlowP,  Prev: Dew,  Up: Vector fields
+
+3.13.6 Flow
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Flow (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ax, `const mglData
+          &'ay, `const char *'sch=`""', `int' num=`5', `bool'
+          central=`true', `float' zVal=`NAN')
+ -- C function: `void' mgl_flow_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ax, `const HMDT' ay, `const char *'sch,
+          `int' num, `int' central, `float' zVal)
+     The function draws flow threads for the plane vector field {AX,
+     AY} parametrically depending on coordinates X, Y at level z =
+     ZVAL. Number of threads is proportional to NUM. Parameter CENTRAL
+     sets the thread start from center (if true) or only from edges (if
+     false). From v.1.11 it is ignored and always equal to (NUM>0). The
+     color of lines is proportional to \sqrt{ax^2+ay^2}. Warm color
+     corresponds to normal flow (like attractor). Cold one corresponds
+     to inverse flow (like source). String SCH sets the color scheme.
+     Previous color scheme is used by default. The size of AX and AY
+     must be equal. The minor dimensions of arrays X, Y and AX must be
+     equal too. Arrays X and Y can be vectors (not matrices as AX). The
+     vector field is plotted for each z slice of AX, AY. See also *note
+     Pipe::, *note VectC::, *note Vect::. *Note Flow sample::, for
+     sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Flow (`const mglData
+          &'ax, `const mglData &'ay, `const char *'sch=`""', `int'
+          num=`5', `bool' central=`true', `float' zVal=`NAN')
+ -- C function: `void' mgl_flow_2d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const char *'sch, `int' num, `int' central,
+          `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' Flow (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""', `int' num=`3', `bool' central=`true')
+ -- C function: `void' mgl_flow_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' ax, `const HMDT' ay,
+          `const HMDT' az, `const char *'sch, `int' num, `int' central)
+     This is 3D version of the first functions. Here arrays AX, AY, AZ
+     must be 3-ranged tensors with equal sizes and the color of line is
+     proportional to \sqrt{ax^2+ay^2+az^2}. *Note Flow 3D sample::, for
+     sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Flow (`const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""', `int' num=`3', `bool' central=`true')
+ -- C function: `void' mgl_flow_3d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const HMDT' az, `const char *'sch, `int' num,
+          `int' central)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: FlowP,  Next: Pipe,  Prev: Flow,  Up: Vector fields
+
+3.13.7 FlowP
+------------
+
+ -- Method on `mglGraph' (C++): `void' FlowP (`mglPoint' p0, `const
+          mglData &'x, `const mglData &'y, `const mglData &'ax, `const
+          mglData &'ay, `const char *'sch=`""')
+ -- Method on `mglGraph' (Python): `void' FlowP (`float' x0, `float'
+          y0, `float' z0, `const mglData &'x, `const mglData &'y,
+          `const mglData &'ax, `const mglData &'ay, `const char
+          *'sch=`""')
+ -- C function: `void' mgl_flowp_xy (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `const HMDT' x, `const HMDT' y, `const HMDT' ax,
+          `const HMDT' ay, `const char *'sch)
+     The function draws flow thread for the plane vector field {AX, AY}
+     parametrically depending on coordinates X, Y from point P0 at
+     level z = P0.z. The color of lines is proportional to
+     \sqrt{ax^2+ay^2}. Warm color corresponds to normal flow (like
+     attractor). Cold one corresponds to inverse flow (like source).
+     String SCH sets the color scheme. Previous color scheme is used by
+     default. The size of AX and AY must be equal. The minor dimensions
+     of arrays X, Y and AX must be equal too. Arrays X and Y can be
+     vectors (not matrices as AX). The vector field is plotted for each
+     z slice of AX, AY. See also *note Pipe::, *note VectC::, *note
+     Vect::.
+
+ -- Method on `mglGraph' (C++): `void' FlowP (`mglPoint' p0, `const
+          mglData &'ax, `const mglData &'ay, `const char *'sch=`""')
+ -- Method on `mglGraph' (Python): `void' FlowP (`float' x0, `float'
+          y0, `float' z0, `const mglData &'ax, `const mglData &'ay,
+          `const char *'sch=`""')
+ -- C function: `void' mgl_flowp_2d (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `const HMDT' ax, `const HMDT' ay, `const char
+          *'sch)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++): `void' FlowP (`mglPoint' p0, `const
+          mglData &'x, `const mglData &'y, `const mglData &'z, `const
+          mglData &'ax, `const mglData &'ay, `const mglData &'az,
+          `const char *'sch=`""')
+ -- Method on `mglGraph' (Python): `void' FlowP (`float' x0, `float'
+          y0, `float' z0, `const mglData &'x, `const mglData &'y,
+          `const mglData &'z, `const mglData &'ax, `const mglData &'ay,
+          `const mglData &'az, `const char *'sch=`""')
+ -- C function: `void' mgl_flowp_xyz (`HMGL' gr, `float' x0, `float'
+          y0, `float' z0, `const HMDT' x, `const HMDT' y, `const HMDT'
+          z, `const HMDT' ax, `const HMDT' ay, `const HMDT' az, `const
+          char *'sch)
+     This is 3D version of the first functions. Here arrays AX, AY, AZ
+     must be 3-ranged tensors with equal sizes and the color of line is
+     proportional to \sqrt{ax^2+ay^2+az^2}. *Note Flow 3D sample::, for
+     sample code and picture.
+
+ -- Method on `mglGraph' (C++): `void' FlowP (`mglPoint' p0, `const
+          mglData &'ax, `const mglData &'ay, `const mglData &'az,
+          `const char *'sch=`""')
+ -- Method on `mglGraph' (Python): `void' FlowP (`float' x0, `float'
+          y0, `float' z0, `const mglData &'ax, `const mglData &'ay,
+          `const mglData &'az, `const char *'sch=`""')
+ -- C function: `void' mgl_flowp_3d (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `const HMDT' ax, `const HMDT' ay, `const HMDT'
+          az, `const char *'sch)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Pipe,  Prev: FlowP,  Up: Vector fields
+
+3.13.8 Pipe
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Pipe (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ax, `const mglData
+          &'ay, `const char *'sch=`""', `float' r0=`0.05', `int'
+          num=`5', `bool' central=`true', `float' zVal=`NAN')
+ -- C function: `void' mgl_pipe_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ax, `const HMDT' ay, `const char *'sch,
+          `float' r0, `int' num, `int' central, `float' zVal)
+     The function draws flow pipes for the plane vector field {AX, AY}
+     parametrically depending on coordinates X, Y at level z = ZVAL.
+     Number of pipes is proportional to NUM. Parameter CENTRAL sets the
+     pipe start from center (if true) or only from edges (if false).
+     From v.1.11 it is ignored and always equal to (NUM>0). The color
+     of lines is proportional to \sqrt{ax^2+ay^2}. Warm color
+     corresponds to normal flow (like attractor). Cold one corresponds
+     to inverse flow (like source). String SCH sets the color scheme.
+     Previous color scheme is used by default. Parameter R0 set the
+     base pipe radius. If R0<0 then pipe radius is inverse proportional
+     to amplitude. The size of AX and AY must be equal. The minor
+     dimensions of arrays X, Y and AX must be equal too. Arrays X and Y
+     can be vectors (not matrices as AX). The vector field is plotted
+     for each z slice of AX, AY. See also *note Flow::, *note VectC::,
+     *note Vect::. *Note Pipe sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Pipe (`const mglData
+          &'ax, `const mglData &'ay, `const char *'sch=`""', `float'
+          r0=`0.05', `int' num=`5', `bool' central=`true', `float'
+          zVal=`NAN')
+ -- C function: `void' mgl_pipe_2d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const char *'sch, `float' r0, `int' num, `int'
+          central, `float' zVal)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' Pipe (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""', `float' r0=`0.05', `int' num=`3', `bool'
+          central=`true')
+ -- C function: `void' mgl_pipe_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' ax, `const HMDT' ay,
+          `const HMDT' az, `const char *'sch, `float' r0, `int' num,
+          `int' central)
+     This is 3D version of the first functions. Here arrays AX, AY, AZ
+     must be 3-ranged tensors with equal sizes and the color of line is
+     proportional to \sqrt{ax^2+ay^2+az^2}. *Note Pipe 3D sample::, for
+     sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' Pipe (`const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""', `float' r0=`0.05', `int' num=`3', `bool'
+          central=`true')
+ -- C function: `void' mgl_pipe_3d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const HMDT' az, `const char *'sch, `float' r0,
+          `int' num, `int' central)
+     The same as previous with X, Y equidistantly distributed in
+     interval [MIN, MAX].
+
+
+File: mathgl_en.info,  Node: Other plotting,  Next: Nonlinear fitting,  Prev: Vector fields,  Up: MathGL core
+
+3.14 Other plotting
+===================
+
+These functions perform miscelaneous plotting. There is unstructured
+data points plots (Dots), surface reconstruction (Crust), surfaces on
+the triangular mesh (TriPlot), textual formula plotting (Plots by
+formula), data plots at edges (Dens[XYZ], Cont[XYZ], ContF[XYZ]),
+simple plot (SimplePlot). Each type of plotting has similar interface.
+There are 2 kind of versions which handle the arrays of data and
+coordinates or only single data array. Parameters of color scheme are
+specified by the string argument. *Note Color scheme::.
+
+* Menu:
+
+* DensXYZ::
+* ContXYZ::
+* ContFXYZ::
+* Dots::
+* Crust::
+* TriPlot::
+* TriCont::
+* QuadPlot::
+* Plots by formula::
+* SimplePlot::
+
+
+File: mathgl_en.info,  Node: DensXYZ,  Next: ContXYZ,  Up: Other plotting
+
+3.14.1 DensXYZ
+--------------
+
+These plotting functions draw density plot in x, y, or z plain. If A is
+a tensor (3-dimensional data) then interpolation to a given SVAL is
+performed. These functions are useful for creating projections of the
+3D data array to the bounding box. For example, code like
+     gr->DensX(c.Sum("x"),"BbcyrR",-1);
+     gr->DensY(c.Sum("y"),0,1);
+     gr->DensZ(c.Sum("z"),0,-1);
+   will produce the following picture. See also *note ContXYZ::, *note
+ContFXYZ::, *note Dens::, *note Data distributions::. *Note Dens
+projection sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' DensX (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN')
+ -- C function: `void' mgl_dens_x (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal)
+     Draws density plot for data A at x = SVAL.
+
+ -- Method on `mglGraph' (C++, Python): `void' DensY (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN')
+ -- C function: `void' mgl_dens_y (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal)
+     Draws density plot for data A at y = SVAL.
+
+ -- Method on `mglGraph' (C++, Python): `void' DensZ (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN')
+ -- C function: `void' mgl_dens_z (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal)
+     Draws density plot for data A at z = SVAL.
+
+
+File: mathgl_en.info,  Node: ContXYZ,  Next: ContFXYZ,  Prev: DensXYZ,  Up: Other plotting
+
+3.14.2 ContXYZ
+--------------
+
+These plotting functions draw contour lines in x, y, or z plain. If A
+is a tensor (3-dimensional data) then interpolation to a given SVAL is
+performed. These functions are useful for creating projections of the
+3D data array to the bounding box. For example, code like
+     gr->ContX(c.Sum("x"),"BbcyrR",-1);
+     gr->ContY(c.Sum("y"),0,1);
+     gr->ContZ(c.Sum("z"),0,-1);
+   will produce the following picture. See also *note ContFXYZ::, *note
+DensXYZ::, *note Cont::, *note Data distributions::. *Note Cont
+projection sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContX (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN', `int'
+          num=`7')
+ -- C function: `void' mgl_cont_x (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal, `int' num)
+     Draws NUM-th contour lines for data A at x = SVAL.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContY (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN', `int'
+          num=`7')
+ -- C function: `void' mgl_cont_y (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal, `int' num)
+     Draws NUM-th contour lines for data A at y = SVAL.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContZ (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN', `int'
+          num=`7')
+ -- C function: `void' mgl_cont_z (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal, `int' num)
+     Draws NUM-th contour lines for data A at z = SVAL.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContX (`const mglData
+          &'v, `const mglData &'a, `const char *'stl=`""', `float'
+          sVal=`NAN')
+ -- C function: `void' mgl_cont_x_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' a, `const char *'stl, `float' sVal)
+     Draws contour lines for data A=V[i] at x = SVAL.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContY (`const mglData
+          &'v, `const mglData &'a, `const char *'stl=`""', `float'
+          sVal=`NAN')
+ -- C function: `void' mgl_cont_y_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' a, `const char *'stl, `float' sVal)
+     Draws contour lines for data A=V[i] at y = SVAL.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContZ (`const mglData
+          &'v, `const mglData &'a, `const char *'stl=`""', `float'
+          sVal=`NAN')
+ -- C function: `void' mgl_cont_z_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' a, `const char *'stl, `float' sVal)
+     Draws contour lines for data A=V[i] at z = SVAL.
+
+
+File: mathgl_en.info,  Node: ContFXYZ,  Next: Dots,  Prev: ContXYZ,  Up: Other plotting
+
+3.14.3 ContFXYZ
+---------------
+
+These plotting functions draw solid contour lines in x, y, or z plain.
+If A is a tensor (3-dimensional data) then interpolation to a given
+SVAL is performed. These functions are useful for creating projections
+of the 3D data array to the bounding box. See also *note ContXYZ::,
+*note DensXYZ::, *note ContF::, *note Data distributions::.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContFX (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN', `int'
+          num=`7')
+ -- C function: `void' mgl_contf_x (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal, `int' num)
+     Draws NUM-th solid contours for data A at x = SVAL.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContFY (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN', `int'
+          num=`7')
+ -- C function: `void' mgl_contf_y (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal, `int' num)
+     Draws NUM-th solid contours for data A at y = SVAL.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContFZ (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN', `int'
+          num=`7')
+ -- C function: `void' mgl_contf_z (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal, `int' num)
+     Draws NUM-th solid contours for data A at z = SVAL.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContFX (`const mglData
+          &'v, `const mglData &'a, `const char *'stl=`""', `float'
+          sVal=`NAN')
+ -- C function: `void' mgl_contf_x_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' a, `const char *'stl, `float' sVal)
+     Draws solid contours for data A=V[i] at x = SVAL.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContFY (`const mglData
+          &'v, `const mglData &'a, `const char *'stl=`""', `float'
+          sVal=`NAN')
+ -- C function: `void' mgl_contf_y_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' a, `const char *'stl, `float' sVal)
+     Draws solid contours for data A=V[i] at y = SVAL.
+
+ -- Method on `mglGraph' (C++, Python): `void' ContFZ (`const mglData
+          &'v, `const mglData &'a, `const char *'stl=`""', `float'
+          sVal=`NAN')
+ -- C function: `void' mgl_contf_z_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' a, `const char *'stl, `float' sVal)
+     Draws solid contours for data A=V[i] at z = SVAL.
+
+
+File: mathgl_en.info,  Node: Dots,  Next: Crust,  Prev: ContFXYZ,  Up: Other plotting
+
+3.14.4 Dots
+-----------
+
+ -- Method on `mglGraph' (C++, Python): `void' Dots (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""')
+ -- Method on `mglGraph' (C++, Python): `void' Dots (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const char *'sch=`""')
+ -- C function: `void' mgl_dots (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch)
+ -- C function: `void' mgl_dots_a (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `const char *'sch)
+     The function draws the arbitrary placed points {X[i], Y[i], Z[i]}.
+     String SCH sets the color scheme. Previous color scheme is used by
+     default. If array A is specified then it define the transparency
+     of dots. Arrays X, Y, Z, A must have equal sizes. See also *note
+     Crust::, *note Mark::, *note Plot::. *Note Dots sample::, for
+     sample code and picture.
+
+ -- Method on `mglGraph' (C++): `void' Dots (`const mglData &'tr,
+          `const char *'sch=`""')
+ -- C function: `void' mgl_dots_tr (`HMGL' gr, `const HMDT' tr, `const
+          char *'sch)
+     The same as previous with X=TR(0,:), Y=TR(1,:), Z=TR(2,:) and if
+     TR.nx>3 then A=TR(3,:).
+
+
+File: mathgl_en.info,  Node: Crust,  Next: TriPlot,  Prev: Dots,  Up: Other plotting
+
+3.14.5 Crust
+------------
+
+ -- Method on `mglGraph' (C++, Python): `void' Crust (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `float' er=`0')
+ -- C function: `void' mgl_crust (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `float' er)
+     The function reconstruct and draws the surface for arbitrary
+     placed points {X[i], Y[i], Z[i]}. Parameter ER set relative radius
+     for (increase it for removing holes). String SCH sets the color
+     scheme. Previous color scheme is used by default. If string
+     contain `#' then wire plot is produced. Arrays X, Y, Z must have
+     equal sizes. See also *note Dots::, *note TriPlot::. *Note Crust
+     sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++): `void' Crust (`const mglData &'tr,
+          `const char *'sch=`""', `float' er=`0')
+ -- C function: `void' mgl_crust_tr (`HMGL' gr, `const HMDT' tr, `const
+          char *'sch, `float' er)
+     The same as previous with X=TR(0,:), Y=TR(1,:), Z=TR(2,:).
+
+
+File: mathgl_en.info,  Node: TriPlot,  Next: TriCont,  Prev: Crust,  Up: Other plotting
+
+3.14.6 TriPlot
+--------------
+
+ -- Method on `mglGraph' (C++, Python): `void' TriPlot (`const mglData
+          &'id, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const mglData &'c, `const char *'sch=`""')
+ -- Method on `mglGraph' (C++, Python): `void' TriPlot (`const mglData
+          &'id, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const char *'sch=`""')
+ -- C function: `void' mgl_triplot_xyz (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const char
+          *'sch)
+ -- C function: `void' mgl_triplot_xyzc (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          c, `const char *'sch)
+     The function draws the surface of triangles. Triangle vertexes are
+     set by indexes ID of data points {X[i], Y[i], Z[i]}. String SCH
+     sets the color scheme. Previous color scheme is used by default.
+     If string contain `#' then wire plot is produced. First dimensions
+     of ID must be 3 or greater. Arrays X, Y, Z must have equal sizes.
+     Parameter C set the colors of triangles (if ID.ny=C.nx) or colors
+     of vertexes (if X.nx=C.nx). See also *note Dots::, *note Crust::,
+     *note QuadPlot::.
+
+ -- Method on `mglGraph' (C++, Python): `void' TriPlot (`const mglData
+          &'id, `const mglData &'x, `const mglData &'y, `const char
+          *'sch=`""', `float' zVal=`NAN')
+ -- C function: `void' mgl_triplot_xy (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const char *'sch, `float'
+          zVal)
+     The same as previous with Z[i]=ZVAL.
+
+
+File: mathgl_en.info,  Node: TriCont,  Next: QuadPlot,  Prev: TriPlot,  Up: Other plotting
+
+3.14.7 TriCont
+--------------
+
+ -- Method on `mglGraph' (C++, Python): `void' TriContV (`const mglData
+          &'v, `const mglData &'id, `const mglData &'x, `const mglData
+          &'y, `const mglData &'z, `const mglData &'c, `const char
+          *'sch=`""', `float' zVal=`NAN')
+ -- Method on `mglGraph' (C++, Python): `void' TriContV (`const mglData
+          &'v, `const mglData &'id, `const mglData &'x, `const mglData
+          &'y, `const mglData &'z, `const char *'sch=`""', `float'
+          zVal=`NAN')
+ -- C function: `void' mgl_tricont_xyzcv (`HMGL' gr, `const HMDT' v,
+          `const HMDT' id, `const HMDT' x, `const HMDT' y, `const HMDT'
+          z, `const HMDT' c, `const char *'sch, `float' zVal)
+ -- C function: `void' mgl_tricont_xyzv (`HMGL' gr, `const HMDT' v,
+          `const HMDT' id, `const HMDT' x, `const HMDT' y, `const HMDT'
+          z, `const char *'sch, `float' zVal)
+     The function draws contour lines for surface of triangles at Z =
+     ZVAL (or for Z=V[k] if `zVal==NAN'). Triangle vertexes are set by
+     indexes ID of data points {X[i], Y[i], Z[i]}. Contours are plotted
+     for Z[i,j]=V[k] where V[k] are values of data array V. String SCH
+     sets the color scheme. Previous color scheme is used by default.
+     Array C (if specified) is used for contour coloring. First
+     dimensions of ID must be 3 or greater. Arrays X, Y, Z must have
+     equal sizes. Parameter C set the colors of triangles (if
+     ID.ny=C.nx) or colors of vertexes (if X.nx=C.nx). See also *note
+     TriPlot::, *note Cont::.
+
+ -- Method on `mglGraph' (C++, Python): `void' TriCont (`const mglData
+          &'id, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const mglData &'c, `const char *'sch=`""', `num'=`7',
+          `float' zVal=`NAN')
+ -- Method on `mglGraph' (C++, Python): `void' TriCont (`const mglData
+          &'id, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const char *'sch=`""', `num'=`7', `float' zVal=`NAN')
+ -- C function: `void' mgl_tricont_xyzc (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          c, `const char *'sch, `num', `float' zVal)
+ -- C function: `void' mgl_tricont_xyz (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const char
+          *'sch, `num', `float' zVal)
+     The same as first one with vector V of NUM-th elements
+     equidistantly distributed in range [CMIN, CMAX].
+
+
+File: mathgl_en.info,  Node: QuadPlot,  Next: Plots by formula,  Prev: TriCont,  Up: Other plotting
+
+3.14.8 QuadPlot
+---------------
+
+ -- Method on `mglGraph' (C++, Python): `void' QuadPlot (`const mglData
+          &'id, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const mglData &'c, `const char *'sch=`""')
+ -- Method on `mglGraph' (C++, Python): `void' QuadPlot (`const mglData
+          &'id, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const char *'sch=`""')
+ -- C function: `void' mgl_quadplot_xyz (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const char
+          *'sch)
+ -- C function: `void' mgl_quadplot_xyzc (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          c, `const char *'sch)
+     The function draws the surface of quadrangles. Quadrangles
+     vertexes are set by indexes ID of data points {X[i], Y[i], Z[i]}.
+     String SCH sets the color scheme. Previous color scheme is used by
+     default. If string contain `#' then wire plot is produced. First
+     dimensions of ID must be 4 or greater. Arrays X, Y, Z must have
+     equal sizes. Parameter C set the colors of quadrangles (if
+     ID.ny=C.nx) or colors of vertexes (if X.nx=C.nx). See also *note
+     TriPlot::.
+
+ -- Method on `mglGraph' (C++, Python): `void' QuadPlot (`const mglData
+          &'id, `const mglData &'x, `const mglData &'y, `const char
+          *'sch=`""', `float' zVal=`NAN')
+ -- C function: `void' mgl_quadplot_xy (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const char *'sch, `float'
+          zVal)
+     The same as previous with Z[i]=ZVAL.
+
+
+File: mathgl_en.info,  Node: Plots by formula,  Next: SimplePlot,  Prev: QuadPlot,  Up: Other plotting
+
+3.14.9 Plots by formula
+-----------------------
+
+These functions perform plotting of 1D or 2D functions specified by
+textual formula. You do not need to create the data arrays to plot it.
+The parameter STL set the line style (*note Line styles::) for `Plot()'
+or color scheme (*note Color scheme::) for `Surf()'. The parameter N
+set the minimal number of points along coordinate(s) for plots. At this
+time (v. 1.10) there is adaptive increase of data points numbers but
+only for 1D variant (i.e. for Plot()).
+
+ -- Method on `mglGraph' (C++, Python): `void' Plot (`const char *'eqY,
+          `const char *'stl=`""', `float' zVal=`NAN', `int' n=`100')
+ -- C function: `void' mgl_fplot (`HMGL' gr, `const char *'eqY, `const
+          char *'stl, `float' zVal, `int' n)
+     The function draws function `eqY(x)' at plane z=ZVAL where `x'
+     variable is changed in range [MIN.x, MAX.x]. See also *note Plot::.
+
+ -- Method on `mglGraph' (C++, Python): `void' Plot (`const char *'eqX,
+          `const char *'eqY, `const char *'eqZ, `const char *'stl=`""',
+          `float' zVal=`NAN', `int' n=`100')
+ -- C function: `void' mgl_fplot_xyz (`HMGL' gr, `const char *'eqX,
+          `const char *'eqY, `const char *'eqZ, `const char *'stl,
+          `float' zVal, `int' n)
+     The function draws parametrical curve {`eqX(t)', `eqY(t)',
+     `eqZ(t)'} where `t' variable is changed in range [0, 1]. See also
+     *note Plot::.
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf (`const char *'eqZ,
+          `const char *'stl=`""', `int' n=`100');
+ -- C function: `void' mgl_fsurf (`HMGL' gr, `const char *'eqZ, `const
+          char *'stl, `int' n);
+     The function draws surface for function `eqY(x,y)' where `x', `y'
+     variables are changed in range [MIN, MAX]. See also *note Surf::.
+
+ -- Method on `mglGraph' (C++, Python): `void' Surf (`const char *'eqX,
+          `const char *'eqY, `const char *'eqZ, `const char *'stl=`""',
+          `int' n=`100')
+ -- C function: `void' mgl_fsurf_xyz (`HMGL' gr, `const char *'eqX,
+          `const char *'eqY, `const char *'eqZ, `const char *'stl,
+          `int' n)
+     The function draws parametrical surface {`eqX(u,v)', `eqY(u,v)',
+     `eqZ(u,v)'} where `u', `v' variables are changed in range [0, 1].
+     See also *note Surf::.
+
+
+File: mathgl_en.info,  Node: SimplePlot,  Prev: Plots by formula,  Up: Other plotting
+
+3.14.10 SimplePlot
+------------------
+
+ -- Method on `mglGraph' (C++, Python): `void' SimplePlot (`const
+          mglData &'a, `int' type=`0', `const char *'stl=`""')
+ -- C function: `void' mgl_simple_plot (`HMGL' gr, `const HMDT' a,
+          `int' type, `const char *'stl)
+     Plots the array A depending on it's dimensions and TYPE parameter.
+     String STL specifies the style of plotting. For 1d data: `type=0'
+     - *note Plot::, `type=1' - *note Area::, `type=2' - *note Step::,
+     `type=3' - *note Stem::, `type=4' - *note Bars::. For 2d data:
+     `type=0' - *note Surf::, `type=1' - *note Dens::, `type=2' - *note
+     Mesh::, `type=3' - *note Cont::. For 3d data: `type=0' - *note
+     Surf3::, `type=1' - *note Dens3::, `type=2' - *note Cont3::,
+     `type=2' - *note Cloud::.
+
+
+File: mathgl_en.info,  Node: Nonlinear fitting,  Next: Data distributions,  Prev: Other plotting,  Up: MathGL core
+
+3.15 Nonlinear fitting
+======================
+
+These functions fit data to formula. Fitting goal is to find formula
+parameters for the best fit the data points, i.e. to minimize the sum
+\sum_i (f(x_i, y_i, z_i) - a_i)^2/s_i^2. At this, approximation
+function `f' can depend only on one argument `x' (1D case), on two
+arguments `x,y' (2D case) and on three arguments `x,y,z' (3D case). The
+function `f' also may depend on parameters. Normally the list of fitted
+parameters is specified by VAR string (like, `abcd'). Usually user
+should supply initial values for fitted parameters by INI variable. But
+if he/she don't supply it then the zeros are used. Parameter
+PRINT=`true' switch on printing the found coefficients to MESSAGE
+(*note Error handling::).
+
+   Functions Fit() and FitS() do not draw the obtained data themselves.
+They fill the data FIT by formula `f' with found coefficients and
+return the \chi^2 error of approximation. At this, the `x,y,z'
+coordinates are equidistantly distributed in the interval MIN-MAX.
+Number of points in FIT is selected as maximal value of FIT size and
+the value of FITPNTS. Note, that this functions use GSL library and do
+something only if MathGL was compiled with GSL support. *Note Fitting
+sample::, for sample code and picture.
+
+ -- Method on `mglGraph' (C++, Python): `float' FitS (`mglData &'fit,
+          `const mglData &'x, `const mglData &'y, `const mglData &'z,
+          `const mglData &'a, `const mglData &'s, `const char *'func,
+          `const char *'var, `float *'ini=`NULL', `bool' print=`false')
+ -- Method on `mglGraph' (C++, Python): `float' FitS (`mglData &'fit,
+          `const mglData &'x, `const mglData &'y, `const mglData &'z,
+          `const mglData &'a, `const mglData &'s, `const char *'func,
+          `const char *'var, `mglData &'ini, `bool' print=`false')
+ -- C function: `float' mgl_fit_xyzas (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT' a,
+          `const HMDT' s, `const char *'func, `const char *'var, `float
+          *'ini)
+ -- C function: `float' mgl_fit_xyzas_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT' a,
+          `const HMDT' s, `const char *'func, `const char *'var, `HMDT'
+          ini)
+     Fit data along x-, y- and z-directions for 3d array specified
+     parametrically A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]).
+
+ -- Method on `mglGraph' (C++, Python): `float' FitS (`mglData &'fit,
+          `const mglData &'x, `const mglData &'y, `const mglData &'a,
+          `const mglData &'s, `const char *'func, `const char *'var,
+          `float *'ini=`NULL', `bool' print=`false')
+ -- Method on `mglGraph' (C++, Python): `float' FitS (`mglData &'fit,
+          `const mglData &'x, `const mglData &'y, `const mglData &'a,
+          `const mglData &'s, `const char *'func, `const char *'var,
+          `mglData &'ini, `bool' print=`false')
+ -- C function: `float' mgl_fit_xyzs (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' a, `const HMDT' s,
+          `const char *'func, `const char *'var, `float *'ini)
+ -- C function: `float' mgl_fit_xyzs_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' a, `const HMDT' s,
+          `const char *'func, `const char *'var, `HMDT' ini)
+     Fit data along x-, and y-directions for 2d array specified
+     parametrically A[i,j](X[i,j], Y[i,j]) for each data slice.
+
+ -- Method on `mglGraph' (C++, Python): `float' FitS (`mglData &'fit,
+          `const mglData &'x, `const mglData &'a, `const mglData &'s,
+          `const char *'func, `const char *'var, `float *'ini=`NULL',
+          `bool' print=`false')
+ -- Method on `mglGraph' (C++, Python): `float' FitS (`mglData &'fit,
+          `const mglData &'x, `const mglData &'a, `const mglData &'s,
+          `const char *'func, `const char *'var, `mglData &'ini, `bool'
+          print=`false')
+ -- C function: `float' mgl_fit_xys (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' a, `const HMDT' s, `const char *'func,
+          `const char *'var, `float *'ini)
+ -- C function: `float' mgl_fit_xys_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' a, `const HMDT' s, `const char *'func,
+          `const char *'var, `HMDT' ini)
+     Fit data along x-direction for 1d array specified parametrically
+     A[i](X[i]) for each data slice.
+
+ -- Method on `mglGraph' (C++, Python): `float' FitS (`mglData &'fit,
+          `const mglData &'a, `const mglData &'s, `const char *'func,
+          `const char *'var, `float *'ini=`NULL', `bool' print=`false')
+ -- Method on `mglGraph' (C++, Python): `float' FitS (`mglData &'fit,
+          `const mglData &'a, `const mglData &'s, `const char *'func,
+          `const char *'var, `mglData &'ini, `bool' print=`false')
+ -- C function: `float' mgl_fit_ys (`HMGL' gr, `HMDT' fit, `const HMDT'
+          a, `const HMDT' s, `const char *'func, `const char *'var,
+          `float *'ini)
+ -- C function: `float' mgl_fit_ys_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' a, `const HMDT' s, `const char *'func, `const char
+          *'var, `HMDT' ini)
+     Fit data along x-direction for 1d array with X equidistantly
+     distributed in interval [MIN.x, MAX.x].
+
+ -- Method on `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'x, `const mglData &'y, `const mglData &'z,
+          `const mglData &'a, `const char *'func, `const char *'var,
+          `float *'ini=`NULL', `bool' print=`false')
+ -- Method on `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'x, `const mglData &'y, `const mglData &'z,
+          `const mglData &'a, `const char *'func, `const char *'var,
+          `mglData &'ini, `bool' print=`false')
+ -- C function: `float' mgl_fit_xyza (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT' a,
+          `const char *'func, `const char *'var, `float *'ini)
+ -- C function: `float' mgl_fit_xyza_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT' a,
+          `const char *'func, `const char *'var, `HMDT' ini)
+     Fit data along x-, y- and z-directions for 3d array specified
+     parametrically A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) with
+     S[i,j,k]=1.
+
+ -- Method on `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'x, `const mglData &'y, `const mglData &'a,
+          `const char *'func, `const char *'var, `float *'ini=`NULL',
+          `bool' print=`false')
+ -- Method on `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'x, `const mglData &'y, `const mglData &'a,
+          `const char *'func, `const char *'var, `mglData &'ini, `bool'
+          print=`false')
+ -- C function: `float' mgl_fit_xyz (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' a, `const char *'func,
+          `const char *'var, `float *'ini)
+ -- C function: `float' mgl_fit_xyz_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' a, `const char *'func,
+          `const char *'var, `HMDT' ini)
+     Fit data along x-, and y-directions for 2d array specified
+     parametrically A[i,j](X[i,j], Y[i,j]) with S[i,j]=1 for each data
+     slice.
+
+ -- Method on `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'x, `const mglData &'a, `const char *'func,
+          `const char *'var, `float *'ini=`NULL', `bool' print=`false')
+ -- Method on `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'x, `const mglData &'a, `const char *'func,
+          `const char *'var, `mglData &'ini, `bool' print=`false')
+ -- C function: `float' mgl_fit_xy (`HMGL' gr, `HMDT' fit, `const HMDT'
+          x, `const HMDT' a, `const char *'func, `const char *'var,
+          `float *'ini)
+ -- C function: `float' mgl_fit_xy_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' a, `const char *'func, `const char
+          *'var, `HMDT' ini)
+     Fit data along x-direction for 1d array specified parametrically
+     A[i](X[i]) with S[i]=1 for each data slice.
+
+ -- Method on `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'a, `const char *'func, `const char *'var,
+          `float *'ini=`""', `bool' print=`false')
+ -- Method on `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'a, `const char *'func, `const char *'var,
+          `mglData &'ini, `bool' print=`false')
+ -- C function: `float' mgl_fit_1 (`HMGL' gr, `HMDT' fit, `const HMDT'
+          a, `const char *'func, `const char *'var, `float *'ini)
+ -- C function: `float' mgl_fit_1_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' a, `const char *'func, `const char *'var, `HMDT' ini)
+     Fit data along x-direction for 1d array A with S=1 and X
+     equidistantly distributed in interval [MIN.x, MAX.x].
+
+ -- Method on `mglGraph' (C++, Python): `float' Fit2 (`mglData &'fit,
+          `const mglData &'a, `const char *'func, `const char *'var,
+          `float *'ini=`NULL', `bool' print=`false')
+ -- Method on `mglGraph' (C++, Python): `float' Fit2 (`mglData &'fit,
+          `const mglData &'a, `const char *'func, `const char *'var,
+          `mglData &'ini, `bool' print=`false')
+ -- C function: `float' mgl_fit_2 (`HMGL' gr, `HMDT' fit, `const HMDT'
+          a, `const char *'func, `const char *'var, `float *'ini)
+ -- C function: `float' mgl_fit_2_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' a, `const char *'func, `const char *'var, `HMDT' ini)
+     Fit data along x-, and y-directions for 2d array A with S=1 and X,
+     Y equidistantly distributed in interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `float' Fit3 (`mglData &'fit,
+          `const mglData &'a, `const char *'func, `const char *'var,
+          `float *'ini=`NULL', `bool' print=`false')
+ -- Method on `mglGraph' (C++, Python): `float' Fit3 (`mglData &'fit,
+          `const mglData &'a, `const char *'func, `const char *'var,
+          `mglData &'ini, `bool' print=`false')
+ -- C function: `float' mgl_fit_3 (`HMGL' gr, `HMDT' fit, `const HMDT'
+          a, `const char *'func, `const char *'var, `float *'ini)
+ -- C function: `float' mgl_fit_3_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' a, `const char *'func, `const char *'var, `HMDT' ini)
+     Fit data along x-, y- and z-directions for 3d array A with S=1 and
+     X, Y, Z equidistantly distributed in interval [MIN, MAX].
+
+ -- Method on `mglGraph' (C++, Python): `void' PutsFit (`mglPoint' p,
+          `const char *'prefix=`""', `const char *'font=`NULL', `float'
+          size=`-1')
+ -- C function: `void' mgl_puts_fit (`HMGL' gr, `float' x, `float' y,
+          `float' z, `const char *'prefix, `const char *'font, `float'
+          size=`-1')
+     Print last fitted formula with found coefficients (as numbers) at
+     position P0. The string PREFIX will be printed before formula. All
+     other parameters are the same as in *note Text printing::.
+
+ -- Method on `mglGraph' (C++, Python): `const char *' GetFit ()
+ -- C function: `const char *' mgl_get_fit (`HMGL' gr)
+     Get last fitted formula with found coefficients (as numbers).
+
+ -- General option (C++) of mglGraph: `int' FitPnts
+     Minimal number of points for output array after nonlinear fitting.
+
+
+File: mathgl_en.info,  Node: Data distributions,  Next: Frames/Animation,  Prev: Nonlinear fitting,  Up: MathGL core
+
+3.16 Data distributions
+=======================
+
+These functions make distribution (histogram) of data. They do not draw
+the obtained data themselves. These functions can be useful if user
+have data defined for random points (for example, after PIC simulation)
+and he want to produce a plot which require regular data (defined on
+grid(s)). The range for grids is always selected as axis range
+Min...Max. Arrays X, Y, Z define the positions (coordinates) of random
+points. Array A define the data value. Number of points in output array
+RES is selected as maximal value of RES size and the value of FITPNTS.
+
+ -- Method on `mglGraph' (C++, Python): `void' Hist (`mglData &'res,
+          `const mglData &'x, `const mglData &'a)
+ -- C function: `int' mgl_hist_x (`HMGL' gr, `HMDT' res, `const HMDT'
+          x, `const HMDT' a)
+     Creates 1D distribution of the data values A in range [Min, Max].
+
+ -- Method on `mglGraph' (C++, Python): `void' Hist (`mglData &'res,
+          `const mglData &'x, `const mglData &'y, `const mglData &'a)
+ -- C function: `int' mgl_hist_xy (`HMGL' gr, `HMDT' res, `const HMDT'
+          x, `const HMDT' y, `const HMDT' a)
+     Creates 2D distribution of the data values A in range [Min, Max].
+
+ -- Method on `mglGraph' (C++, Python): `void' Hist (`mglData &'res,
+          `const mglData &'x, `const mglData &'y, `const mglData &'z,
+          `const mglData &'a)
+ -- C function: `int' mgl_hist_xyz (`HMGL' gr, `HMDT' res, `const HMDT'
+          x, `const HMDT' y, `const HMDT' z, `const HMDT' a)
+     Creates 3D distribution of the data values A in range [Min, Max].
+
+
+File: mathgl_en.info,  Node: Frames/Animation,  Next: IDTF functions,  Prev: Data distributions,  Up: MathGL core
+
+3.17 Frames/Animation
+=====================
+
+These functions provide ability to create several pictures
+simultaneously. For most of cases it is useless but for widget classes
+(*note Widget classes::) they can provide a way to show animation. Also
+you can write several frames into animated GIF file.
+
+ -- Method on `mglGraph' (C++, Python): `int' NewFrame ()
+ -- C function: `int' mgl_new_frame (`HMGL' gr)
+     Creates new frame. Function returns current frame id. This is not
+     thread safe function in OpenGL mode! Use direct list creation in
+     multi-threading drawing. The function `EndFrame()' *must* be call
+     after the finishing of the frame drawing for each call of this
+     function.
+
+ -- Method on `mglGraph' (C++, Python): `void' EndFrame ()
+ -- C function: `void' mgl_end_frame (`HMGL' gr)
+     Finishes the frame drawing.
+
+ -- Method on `mglGraph' (C++, Python): `int' GetNumFrame ()
+ -- C function: `int' mgl_get_num_frame (`HMGL' gr)
+     Gets the number of created frames.
+
+ -- Method on `mglGraph' (C++, Python): `void' ResetFrames ()
+ -- C function: `int' mgl_reset_frames (`HMGL' gr)
+     Reset frames counter (start it from zero).
+
+ -- Method on `mglGraph' (C++, Python): `void' StartGIF (`const char
+          *'fname, `int' ms=`100')
+ -- C function: `void' mgl_start_gif (`HMGL' gr, `const char *'fname,
+          `int' ms)
+     Start writing frames into animated GIF file FNAME. Parameter MS
+     set the delay between frames in milliseconds. You *should not*
+     change the picture size during writing the cinema. Use CloseGIF()
+     to finalize writing. Note, that this function is disabled in
+     OpenGL mode.
+
+ -- Method on `mglGraph' (C++, Python): `int' CloseGIF ()
+ -- C function: `void' mgl_close_gif (`HMGL' gr)
+     Finish writing animated GIF and close connected pointers.
+
+
+File: mathgl_en.info,  Node: IDTF functions,  Prev: Frames/Animation,  Up: MathGL core
+
+3.18 IDTF functions
+===================
+
+These functions provide IDTF specific features. In all other cases they
+do nothing.
+
+ -- Method on `mglGraph' (C++): `void' VertexColor (`bool' enable)
+     Enables smooth color change.
+
+ -- Method on `mglGraph' (C++): `void' Compression (`bool' enable)
+     Gives smaller files, but quality degrades.
+
+ -- Method on `mglGraph' (C++): `void' StartGroup (const char *name)
+     Starts group definition. Groups contain objects and other groups,
+     they are used to select a part of a model to zoom to or to make
+     invizible or to make transparent and so on.
+
+ -- Method on `mglGraph' (C++): `void' EndGroup ()
+     Ends group definition.
+
+
+File: mathgl_en.info,  Node: Plotter classes,  Next: Widget classes,  Prev: MathGL core,  Up: Top
+
+4 Plotter classes
+*****************
+
+The class mglGraph (*note MathGL core::) provide the basic tools for
+creating scientific graphics but it is abstract class. The matter is
+that there are several possible way to draw a graphics: in bitmap, in
+vector file, using OpenGL and so on. As result, user should use some of
+derived classes to do actual drawing. In principle, it is possible to
+derive a class exactly from mglGraph (and it was in v.1.6). But I
+recommend to derive from mglGraphAB class for higher compatibility of
+produced graphics from different classes. Class mglGraphAB is another
+abstract class which provide basic coordinates transformation, plotting
+functions and export to bitmap picture. It still require a functions
+for drawing lines, triangles and quadrangles. So below a set of
+"plotter" classes with short comments.
+
+ -- Class: mglGraphAB
+     Abstract class mglGraphAB implements plotting function for 1D, 2D
+     and 3D plots using Z-ordering and provides base functionality for
+     to screen coordinate transformation, bitmap creation and so on.
+     Class is defined in `#include <mgl/mgl_ab.h>'.
+
+ -- Class: mglGraphZB
+     Class mglGraphZB implements plotting function for 1D, 2D and 3D
+     plots using Z-Buffer. It is useful for off-screen (for console or
+     SSH terminal) programs. Also this class can be used in any other
+     programs which may draw bitmap on the  screen (for example, by
+     using FLTK, Qt, wxWidgets libraries and so on). Note that bitmap
+     picture is saved while exporting to EPS format. The produced
+     graphics have better quality but slower in comparison with
+     graphics in the class mglGraphPS. Class is defined in `#include
+     <mgl/mgl_zb.h>'.
+
+ -- Class: mglGraphPS
+     Class mglGraphPS implements plotting functions for 1D, 2D and 3D
+     plots and exports them to PostScript or SVG file. It is useful for
+     off-screen (for console or SSH terminal) programs. Note that there
+     is no transparency support now and color interpolation and
+     lightning support is limited (not so nice as in class mglGraphZB).
+     As result the plots with transparency (SurfA, Surf3A, CloudP,
+     CloudQ) may look not so good. However the speed of drawing is
+     higher in comparison with one in the class mglGraphZB. Class is
+     defined in `#include <mgl/mgl_eps.h>'.
+
+ -- Class: mglGraphGL
+     Class mglGraphGL implements plotting function for 1D, 2D and 3D
+     plots under OpenGL. This class can not be used in off-screen
+     applications. Note, that several transparent overlapped surfaces
+     are drawn not so correctly due to OpenGL limitations. Class is
+     defined in `#include <mgl/mgl_gl.h>'.
+
+ -- Class: mglGraphIDTF
+     Class mglGraphIDTF implements plotting function for 1D, 2D and 3D
+     plots  and export it in IDTF format. Later this file can be
+     converted in U3D format. Class is defined in `#include
+     <mgl/mgl_idtf.h>'.
+
+* Menu:
+
+* mglGraphAB class::
+
+
+File: mathgl_en.info,  Node: mglGraphAB class,  Up: Plotter classes
+
+4.1 mglGraphAB class
+====================
+
+#cindex mglDraw
+
+   Generally this class is a bit less abstract class than mglGraph
+class (*note MathGL core::). It provide many protected methods for
+handling intermediate data from mglGraph methods and require a few
+methods to be defined by derived class. The developers of derived
+classes should look on file `mgl_ab.h' and comments inside it or
+contact me.
+
+   Here I just show main public methods for class mglGraphAB. There are
+functions returning the created picture (bitmap), its width and height.
+You may display it by yourself in any graphical library (see also,
+*note Widget classes::) or save in file (see also, *note Export to
+file::).
+
+ -- Method on `mglGraphAB' (C++): `const unsigned char *' GetBits ()
+ -- Method on `mglGraph' (Python): `void' GetRGB (`char *'buf, `int'
+          size)
+ -- Method on `mglGraph' (Python): `void' GetBGRN (`char *'buf, `int'
+          size)
+ -- C function: `const unsigned char *' mgl_get_rgb (`HMGL' gr)
+     Gets RGB bitmap of the current state of the image. Format of each
+     element of bits is: {red, green, blue}. Number of elements is
+     Width*Height. Position of element {i,j} is [3*i + 3*Width*j] (or
+     is [4*i + 4*Width*j] for `GetBGRN()'). For Python you have to
+     provide the proper SIZE of the buffer, BUF i.e. the code should
+     look like from mathgl import *
+     gr = mglGraph();
+     bits='\t';
+     bits=bits.expandtabs(4*gr.GetWidth()*gr.GetHeight());
+     gr.GetBGRN(bits, len(bits));
+
+ -- Method on `mglGraphAB' (C++): `const unsigned char *' GetRGBA ()
+ -- Method on `mglGraph' (Python): `void' GetRGBA (`char *'buf, `int'
+          size)
+ -- C function: `const unsigned char *' mgl_get_rgba (`HMGL' gr)
+     Gets RGBA bitmap of the current state of the image. Format of each
+     element of bits is: {red, green, blue, alpha}. Number of elements
+     is Width*Height. Position of element {i,j} is [4*i + 4*Width*j].
+
+ -- Method on `mglGraphAB' (C++, Python): `int' GetWidth ()
+ -- Method on `mglGraphAB' (C++, Python): `int' GetHeight ()
+ -- C function: `int' mgl_get_width (`HMGL' gr)
+ -- C function: `int' mgl_get_height (`HMGL' gr)
+     Gets width and height of the image.
+
+   Class mglGraphAB is the base class for "widget classes". So there
+are set of functions for handling window behavior. Most of them are
+applicable only for "window" classes (like mglGraphFLTK and so on,
+*note Widget classes::). In all other classes these functions just do
+nothing. You should provide the corresponding interface in derived
+"widget" classes for user convenience.
+
+ -- Method on mglGraphAB: `void' Window (`int' argc, `char **'argv,
+          `int (*'draw)(`mglGraph *'gr, `void *'p), `const char
+          *'title, `void *'par=`NULL', `void (*'reload)(`int' next,
+          `void *'p)=`NULL', `bool' maximize=`false')
+     This function creates a window for plotting. Parameters ARGC, ARGV
+     contain OS specific information and should be the same as in
+     function `main(int argc,char **argv)'. Parameter DRAW sets a
+     pointer (this is the name of function) to drawing function. There
+     is support of a list of plots (frames). So as one can prepare a
+     set of frames at first and redraw it fast later (but it requires
+     more memory). Function should return positive number of frames for
+     the list or zero if it will plot directly. Note, that DRAW can be
+     `NULL' for displaying static bitmaps only (no animation or
+     slides). Parameter TITLE sets the title of the window. Parameter
+     PAR contains pointer to data for the plotting function DRAW.
+     Parameter MAXIMIZE=`true' open maximized window.
+
+     There are some keys handles for manipulating by the plot: 'a',
+     'd', 'w', 's' for the rotating; ',', '.' for viewing of the
+     previous or next frames in the list; 'r' for the switching of
+     transparency; 'f' for the switching of lightning; 'x' for hiding
+     (closing) the window.
+
+     *IMPORTANT!!!* You need to add a call of Rotate() (*note
+     Transformation matrix::) function for having possibility of plot
+     rotation. If plot should be unrotated by default just add
+     `Rotate(0,0)' in drawing function.
+
+ -- Method on mglGraphAB: `void' Window (`int' argc, `char **'argv,
+          `mglDraw *'draw, `const char *'title, `bool' maximize=`false')
+     This function is mostly the same as previous one. The only
+     difference is that the drawing function and function for data
+     reloading are specified as methods on a class inherited from class
+     `mglDraw'. This class is defined in `#include <mgl/mgl_define.h>'
+     and have only 2 methods: class mglDraw
+     {
+     public:
+         virtual int Draw(mglGraph *) { return 0; };
+         virtual void Reload(int) {};
+     };
+      You should inherit yours class from `mglDraw' and reimplement one
+     or both functions for using this function.
+
+ -- Method on `mglGraphAB' (C++): `void' ToggleAlpha ()
+ -- C function: `int' mgl_wnd_toggle_alpha (`HMGL' gr)
+     Switch on/off transparency but do not overwrite switches in user
+     drawing function.
+
+ -- Method on `mglGraphAB' (C++): `void' ToggleLight ()
+ -- C function: `int' mgl_wnd_toggle_light (`HMGL' gr)
+     Switch on/off lighting but do not overwrite switches in user
+     drawing function.
+
+ -- Method on `mglGraphAB' (C++): `void' ToggleZoom ()
+ -- C function: `int' mgl_wnd_toggle_zoom (`HMGL' gr)
+     Switch on/off zooming by mouse as region selection.
+
+ -- Method on `mglGraphAB' (C++): `void' ToggleRotate ()
+ -- C function: `int' mgl_wnd_toggle_rotate (`HMGL' gr)
+     Switch on/off rotation by mouse. Usually, left button is used for
+     rotation, middle button for shift, right button for
+     zoom/perspective.
+
+ -- Method on `mglGraphAB' (C++): `void' ToggleNo ()
+ -- C function: `int' mgl_wnd_toggle_no (`HMGL' gr)
+     Switch off all zooming and rotation and restore initial state.
+
+ -- Method on `mglGraphAB' (C++): `void' Update ()
+ -- C function: `int' mgl_wnd_update (`HMGL' gr)
+     Update window contents.
+
+ -- Method on `mglGraphAB' (C++): `void' ReLoad (`bool' o)
+ -- C function: `int' mgl_wnd_reload (`HMGL' gr, `int' val)
+     Reload user data and update picture.
+
+ -- Method on `mglGraphAB' (C++): `void' Adjust ()
+ -- C function: `int' mgl_wnd_adjust (`HMGL' gr)
+     Adjust size of bitmap to window size.
+
+ -- Method on `mglGraphAB' (C++): `void' NextFrame ()
+ -- C function: `int' mgl_wnd_next_frame (`HMGL' gr)
+     Show next frame if one.
+
+ -- Method on `mglGraphAB' (C++): `void' PrevFrame ()
+ -- C function: `int' mgl_wnd_prev_frame (`HMGL' gr)
+     Show previous frame if one.
+
+ -- Method on `mglGraphAB' (C++): `void' Animation ()
+ -- C function: `int' mgl_wnd_animation (`HMGL' gr)
+     Run/stop slideshow (animation) of frames.
+
+ -- C function: `int' mgl_wnd_set_auto_clf (`HMGL' gr, `int' val)
+
+ -- Widget option of mglGraphAB: `bool' AutoClf
+     Clear canvas between drawing. You may switch it off for accumulate
+     previous drawing (for example some points or parts of a picture).
+
+ -- C function: `int' mgl_wnd_set_delay (`HMGL' gr, `int' val)
+
+ -- Widget option of mglGraphAB: `float' Delay
+     Delay for animation in seconds. Default value is 1 sec.
+
+ -- Method on `mglGraphAB' (C++, Python): `mglPoint' CalcXYZ (`int' xs,
+          `int' ys)
+ -- C function: `void' mgl_calc_xyz (`HMGL' gr, `int' xs, `int' ys,
+          `float *'x, `float *'y, `float *'z)
+     Calculate 3D coordinate {x,y,z} for screen point {xs,ys}. At this
+     moment it ignore perspective and transformation formulas
+     (curvilinear coordinates). The calculation are done for the last
+     used InPlot (*note Transformation matrix::).
+
+ -- Method on `mglGraphAB' (C++, Python): `mglPoint' CalcScr
+          (`mglPoint' p)
+ -- Method on `mglGraphAB' (C++): `void' CalcScr (`mglPoint' p, `int
+          *'xs, `int *'ys)
+ -- C function: `void' mgl_calc_scr (`HMGL' gr, `float' x, `float' y,
+          `float' z, `int *'xs, `int *'ys)
+     Calculate screen point {xs,ys} for 3D coordinate {x,y,z}. The
+     calculation are done for the last used InPlot (*note
+     Transformation matrix::).
+
+ -- C function: `int' mgl_wnd_set_show_mouse_pos (`HMGL' gr, `int' val)
+
+ -- Widget option of mglGraphAB: `float' ShowMousePos
+     Switch to show or not in the widget the last mouse click position.
+
+ -- Widget option of mglGraphAB: `mglPoint' LastMousePos
+     Last position of mouse click.
+
+
+File: mathgl_en.info,  Node: Widget classes,  Next: mglData class,  Prev: Plotter classes,  Up: Top
+
+5 Widget classes
+****************
+
+There are set of "window" classes for making a window with MathGL
+graphics: `mglGraphFLTK', `mglGraphQT', `mglGraphGLUT'. All these
+classes allow user to show, rotate, export, and change view of the plot
+using keyboard. Most of them (except `mglGraphGLUT') also have toolbar
+and menu for simplifying plot manipulation. Usually these classes
+(except `mglGraphGLUT') are derived from `mglGraphZB' class and have a
+"connected" class for widget in corresponding window library. All
+window classes have the same set of functions (*note mglGraphAB
+class::). Below the full list of classes with short comments.
+
+ -- Class: mglGraphFLTK
+     Class `mglGraphFLTK' adds the possibility to create plotting
+     window with the help of FLTK library. It allows one to show,
+     rotate, export, and change view of the plot by keyboard, menu and
+     toolbar. "Corresponding" widget class is `Fl_MathGL'. Class is
+     defined in `#include <mgl/mgl_fltk.h>'.
+
+ -- Class: Fl_MathGL
+     Class is FLTK widget for displaying the MathGL output. Class is
+     defined in `#include <mgl/mgl_fltk.h>'.
+
+ [image src="fltk.png" ]
+
+Example of FLTK window with MathGL plot.
+
+ -- Class: mglGraphQT
+     Class `mglGraphQT' adds the possibility to create plotting window
+     with the help of QT library. It allows one to show, rotate,
+     export, and change view of the plot by keyboard, menu and toolbar.
+     "Corresponding" widget class is `QMathGL'. Class is defined in
+     `#include <mgl/mgl_qt.h>'.
+
+ -- Class: QMathGL
+     Class is Qt widget for dysplaying the MathGL output. Class is
+     defined in `#include <mgl/mgl_qt.h>'.
+
+ [image src="qt.png" ]
+
+Example of Qt window with MathGL plot.
+
+ -- Class: mglGraphGLUT
+     Class `mglGraphGLUT' adds the possibility to create plotting
+     window with the help of GLUT library. It allows one to show,
+     rotate, export, and change view of the plot only by keyboard.
+     Class is defined in `#include <mgl/mgl_glut.h>'.
+
+ [image src="glut.png" ]
+
+Example of GLUT window with MathGL plot.
+
+* Menu:
+
+* Fl_MathGL class::
+* QMathGL class::
+
+
+File: mathgl_en.info,  Node: Fl_MathGL class,  Next: QMathGL class,  Up: Widget classes
+
+5.1 Fl_MathGL class
+===================
+
+Class is FLTK widget which display MathGL graphics (defined in
+`#include <mgl/mgl_fltk.h>').
+
+ -- Method on Fl_MathGL: `void' set_draw (`mglDraw *'dr)
+     Sets drawing function from a class inherited from `mglDraw'.
+
+ -- Method on Fl_MathGL: `void' update (`mglGraph *'gr=`NULL')
+     Update (redraw) plot using grapher GR (built-in by default).
+
+ -- Method on Fl_MathGL: `void' set_angle (`float' t, `float' p)
+     Set angles for additional plot rotation
+
+ -- Method on Fl_MathGL: `void' set_state (`int' f)
+     Set bitwise flags for general state (1-Alpha, 2-Light)
+
+ -- Method on Fl_MathGL: `void' set_state (`bool' z, `bool' r)
+     Set flags for handling mouse: Z=`true' allow zooming, R=`true'
+     allow rotation/shifting/perspective and so on.
+
+ -- Method on Fl_MathGL: `void' set_zoom (`float' X1, `float' Y1,
+          `float' X2, `float' Y2)
+     Set zoom in/out region
+
+ -- Method on Fl_MathGL: `void' get_zoom (`float *'X1, `float *'Y1,
+          `float *'X2, `float *'Y2)
+     Get zoom in/out region
+
+ -- Method on Fl_MathGL: `void' set_popup (`const Fl_Menu_Item *'pmenu,
+          `Fl_Widget *'w, `void *'v)
+     Set popup menu pointer
+
+ -- Method on Fl_MathGL: `mglGraph *' get_graph ()
+     Get pointer to grapher
+
+ -- Widget option of Fl_MathGL: `Fl_Valuator *' tet_val
+     Pointer to external tet-angle validator.
+
+ -- Widget option of Fl_MathGL: `Fl_Valuator *' phi_val
+     Pointer to external phi-angle validator.
+
+ -- Widget option of Fl_MathGL: `mglGraphAB *' graph
+     Pointer to grapher
+
+ -- Widget option of Fl_MathGL: `void *' draw_par
+     Parameters for drawing function mglGraph::DrawFunc.
+
+ -- Widget option of Fl_MathGL: `int (*' draw_func `)(mglGraph *gr,
+          void *par)'
+     Drawing function for window procedure. It should return the number
+     of frames.
+
+
+File: mathgl_en.info,  Node: QMathGL class,  Prev: Fl_MathGL class,  Up: Widget classes
+
+5.2 QMathGL class
+=================
+
+Class is Qt widget which display MathGL graphics (defined in `#include
+<mgl/mgl_qt.h>').
+
+ -- Method on QMathGL: `void' setDraw (`mglDraw *'dr)
+     Sets drawing functions from a class inherited from `mglDraw'.
+
+ -- Method on QMathGL: `void' setDraw (`int (*'draw)(`mglGraph *'gr,
+          `void *'p), `void *'par=`NULL')
+     Sets the drawing function DRAW. There is support of a list of
+     plots (frames). So as one can prepare a set of frames at first and
+     redraw it fast later (but it requires more memory). Function
+     should return positive number of frames for the list or zero if it
+     will plot directly. Parameter PAR contains pointer to data for the
+     plotting function DRAW.
+
+ -- Method on QMathGL: `void' setGraph (`mglGraphAB *'gr)
+     Set pointer to external grapher (instead of built-in
+     `mglGraphZB'). Note that QMathGL will automatically delete this
+     object at destruction or at new `setGraph()' call.
+
+ -- Method on QMathGL: `void' setPopup (`QMenu *'p)
+     Set popup menu pointer.
+
+ -- Method on QMathGL: `void' setSize (`int' w, `int' h)
+     Set widget/picture sizes
+
+ -- Method on QMathGL: `double' getRatio ()
+     Return aspect ratio of the picture.
+
+ -- Method on QMathGL: `int' getPer ()
+     Get perspective value in percents.
+
+ -- Method on QMathGL: `int' getPhi ()
+     Get Phi-angle value in degrees.
+
+ -- Method on QMathGL: `int' getTet ()
+     Get Theta-angle value in degrees.
+
+ -- Method on QMathGL: `bool' getAlpha ()
+     Get transparency state.
+
+ -- Method on QMathGL: `bool' getLight ()
+     Get lightning state.
+
+ -- Method on QMathGL: `bool' getZoom ()
+     Get mouse zooming state.
+
+ -- Method on QMathGL: `bool' getRotate ()
+     Get mouse rotation state.
+
+ -- Slot on QMathGL: `void' refresh ()
+     Redraw saved bitmap without executing drawing function.
+
+ -- Slot on QMathGL: `void' update (`mglGraph *'gr=`NULL')
+     Update picture by executing drawing function.
+
+ -- Slot on QMathGL: `void' copy ()
+     Copy graphics to clipboard.
+
+ -- Slot on QMathGL: `void' setPer (`int' val)
+     Set perspective value.
+
+ -- Slot on QMathGL: `void' setPhi (`int' val)
+     Set Phi-angle value.
+
+ -- Slot on QMathGL: `void' setTet (`int' val)
+     Set Theta-angle value.
+
+ -- Slot on QMathGL: `void' setAlpha (`bool' val)
+     Switch on/off transparency.
+
+ -- Slot on QMathGL: `void' setLight (`bool' val)
+     Switch on/off lightning.
+
+ -- Slot on QMathGL: `void' setZoom (`bool' val)
+     Switch on/off mouse zooming.
+
+ -- Slot on QMathGL: `void' setRotate (`bool' val)
+     Switch on/off mouse rotation.
+
+ -- Slot on QMathGL: `void' zoomIn ()
+     Zoom in graphics.
+
+ -- Slot on QMathGL: `void' zoomOut ()
+     Zoom out graphics.
+
+ -- Slot on QMathGL: `void' restore ()
+     Restore zoom and rotation to default values.
+
+ -- Slot on QMathGL: `void' reload ()
+     Reload data and redraw graphics.
+
+ -- Slot on QMathGL: `void' shiftLeft ()
+     Shift graphics to left direction.
+
+ -- Slot on QMathGL: `void' shiftRight ()
+     Shift graphics to right direction.
+
+ -- Slot on QMathGL: `void'shiftUp ()
+     Shift graphics to up direction.
+
+ -- Slot on QMathGL: `void' shiftDown ()
+     Shift graphics to down direction.
+
+ -- Slot on QMathGL: `void' exportPNG (`QString' fname=`""')
+     Export current picture to PNG file.
+
+ -- Slot on QMathGL: `void' exportPNGs (`QString' fname=`""')
+     Export current picture to PNG file (no transparency).
+
+ -- Slot on QMathGL: `void' exportJPG (`QString' fname=`""')
+     Export current picture to JPEG file.
+
+ -- Slot on QMathGL: `void' exportBPS (`QString' fname=`""')
+     Export current picture to bitmap EPS file.
+
+ -- Slot on QMathGL: `void' exportEPS (`QString' fname=`""')
+     Export current picture to vector EPS file.
+
+ -- Slot on QMathGL: `void' exportSVG (`QString' fname=`""')
+     Export current picture to SVG file.
+
+ -- Slot on QMathGL: `void' exportIDTF (`QString' fname=`""')
+     Export current picture to IDTF file.
+
+ -- Slot on QMathGL: `void' setMGLFont (`QString' path)
+     Restore (PATH=`""') or load font for graphics.
+
+ -- Slot on QMathGL: `void' print ()
+     Print current picture
+
+ -- Slot on QMathGL: `void' adjust ()
+     Adjust plot size to fill entire window. This function is executed
+     only if graph is mglGraphQT instance.
+
+ -- Slot on QMathGL: `void' nextSlide ()
+     Show next slide. This function is executed only if graph is
+     mglGraphQT instance.
+
+ -- Slot on QMathGL: `void' prevSlide ()
+     Show previous slide. This function is executed only if graph is
+     mglGraphQT instance.
+
+ -- Slot on QMathGL: `void' animation (`bool' st=`true')
+     Start animation. This function is executed only if graph is
+     mglGraphQT instance.
+
+ -- Slot on QMathGL: `void' about ()
+     Show about information.
+
+ -- Slot on QMathGL: `void' aboutQt ()
+     Show information about Qt version.
+
+ -- Signal on QMathGL: `void' phiChanged (`int' val)
+     Phi angle changed (by mouse or by toolbar).
+
+ -- Signal on QMathGL: `void' tetChanged (`int' val)
+     Tet angle changed (by mouse or by toolbar).
+
+ -- Signal on QMathGL: `void' perChanged (`int' val)
+     Perspective changed (by mouse or by toolbar).
+
+ -- Signal on QMathGL: `void' alphaChanged (`bool' val)
+     Transparency changed (by toolbar).
+
+ -- Signal on QMathGL: `void' lightChanged (`bool' val)
+     Lighting changed (by toolbar).
+
+ -- Signal on QMathGL: `void' zoomChanged (`bool' val)
+     Zooming changed (by toolbar).
+
+ -- Signal on QMathGL: `void' rotateChanged (`bool' val)
+     Rotation changed (by toolbar).
+
+ -- Widget option of QMathGL: `QString' appName
+     Application name for message boxes.
+
+ -- Widget option of QMathGL: `bool' autoResize
+     Allow auto resizing (default is false).
+
+ -- Widget option of QMathGL: `int' animDelay
+     Animation delay in ms.
+
+
+File: mathgl_en.info,  Node: mglData class,  Next: Other classes,  Prev: Widget classes,  Up: Top
+
+6 mglData class
+***************
+
+Class for working with data array. This class is defined in `#include
+<mgl/mgl_data.h>'. The class has functions for easy and safe
+allocation, resizing, loading and saving, modifying of data arrays.
+Also it can numerically differentiate and integrate data, interpolate,
+fill data by formula and so on. Class supports data with dimensions up
+to 3 (like function of 3 variables - x,y,z). The internal
+representation of numbers is float. Float type was chosen because it
+has smaller size in memory and usually it has enough precision in
+plotting purposes.
+
+* Menu:
+
+* Public variables::
+* Create and delete::
+* Fill::
+* Rearrange::
+* File I/O::
+* Make another data::
+* Change data::
+* Interpolation::
+* Informational functions::
+* Operators::
+* Global functions::
+
+
+File: mathgl_en.info,  Node: Public variables,  Next: Create and delete,  Up: mglData class
+
+6.1 Public variables
+====================
+
+ -- Variable of mglData: `float *' a
+     Data array itself. The flat data representation is used. For
+     example, matrix [nx x ny] is presented as flat (1d-) array with
+     length nx*ny. The element with indexes {i, j, k} is
+     a[i+nx*j+nx*ny*k] (indexes are zero based).
+
+ -- Variable of mglData: `int' nx
+     Number of points in 1st dimensions ('x' dimension).
+
+ -- Variable of mglData: `int' ny
+     Number of points in 2nd dimensions ('y' dimension).
+
+ -- Variable of mglData: `int' nz
+     Number of points in 3d dimensions ('z' dimension).
+
+ -- Variable of mglData: `char *' id
+     Column (or slice if nz>1) names - one character per column.
+
+
+File: mathgl_en.info,  Node: Create and delete,  Next: Fill,  Prev: Public variables,  Up: mglData class
+
+6.2 Create and delete
+=====================
+
+ -- Constructor on mglData: `' mglData (`int' mx=`1', `int' my=`1',
+          `int' mz=`1')
+     Default constructor. Allocates the memory for data array and
+     initializes it by zero.
+
+ -- Constructor on mglData: `' mglData (`const char *'fname)
+     Initializes the data by reading from file.
+
+ -- Constructor on mglData: `' mglData (`const mglData' &dat)
+     Initiates by other `mglData' instance.
+
+ -- Method on `mglData' (C++, Python): `void' Create (`int' mx, `int'
+          my=`1', `int' mz=`1')
+ -- C function: `void' mgl_data_create (`HMDT' dat, `int' mx, `int' my,
+          `int' mz)
+     Creates or recreates the array with specified size and fills it by
+     zero. This function does nothing if one of parameters MX, MY, MZ
+     is zero or negative.
+
+ -- Method on `mglData' (C++): `void' Set (`const float *'A, `int' NX,
+          `int' NY=`1', `int' NZ=`1')
+ -- Method on `mglData' (C++): `void' Set (`const double *'A, `int' NX,
+          `int' NY=`1', `int' NZ=`1')
+ -- C function: `void' mgl_data_set_float (`HMDT' dat, `const float
+          *'A, `int' NX, `int' NY, `int' NZ)
+ -- C function: `void' mgl_data_set_double (`HMDT' dat, `const double
+          *'A, `int' NX, `int' NY, `int' NZ)
+     Allocates memory and copies the data from the *flat* `float*' or
+     `double*' array.
+
+ -- Method on `mglData' (C++): `void' Set (`const float **'A, `int' N1,
+          `int' N2)
+ -- Method on `mglData' (C++): `void' Set (`const double **'A, `int'
+          N1, `int' N2)
+ -- C function: `void' mgl_data_set_float2 (`HMDT' dat, `const float
+          **'A, `int' N1, `int' N2)
+ -- C function: `void' mgl_data_set_double2 (`HMDT' dat, `const double
+          **'A, `int' N1, `int' N2)
+     Allocates memory and copies the data from the `float**' or
+     `double**' array with dimensions N1, N2, i.e. from array defined
+     as `float a[N1][N2];'.
+
+ -- Method on `mglData' (C++): `void' Set (`const float ***'A, `int'
+          N1, `int' N2)
+ -- Method on `mglData' (C++): `void' Set (`const double ***'A, `int'
+          N1, `int' N2)
+ -- C function: `void' mgl_data_set_float3 (`HMDT' dat, `const float
+          ***'A, `int' N1, `int' N2)
+ -- C function: `void' mgl_data_set_double3 (`HMDT' dat, `const double
+          ***'A, `int' N1, `int' N2)
+     Allocates memory and copies the data from the `float***' or
+     `double***' array with dimensions N1, N2, N3, i.e. from array
+     defined as `float a[N1][N2][N3];'.
+
+ -- Method on `mglData' (C++): `void' Set (`gsl_vector *'v)
+ -- C function: `void' mgl_data_set_vector (`HMDT' dat, `gsl_vector *'v)
+     Allocates memory and copies the data from the `gsl_vector *'
+     structure.
+
+ -- Method on `mglData' (C++): `void' Set (`gsl_matrix *'m)
+ -- C function: `void' mgl_data_set_matrix (`HMDT' dat, `gsl_matrix *'m)
+     Allocates memory and copies the data from the `gsl_matrix *'
+     structure.
+
+ -- Method on `mglData' (C++, Python): `inline void' Set (`const
+          mglData &'from)
+ -- C function: `void' mgl_data_set (`HMDT' dat, `const HMDT' from)
+     Copies the data from mglData instance FROM.
+
+ -- Method on `mglData' (C++): `void' Set (`const std::vector<int> &'d)
+ -- Method on `mglData' (C++): `void' Set (`const std::vector<float>
+          &'d)
+ -- Method on `mglData' (C++): `void' Set (`const std::vector<double>
+          &'d)
+     Allocates memory and copies the data from the `std::vector<T>'
+     array.
+
+ -- Method on `mglData' (C+, Python): `void' Set (`const char *'str,
+          `int' NX, `int' NY=`1', `int' NZ=`1')
+ -- C function: `void' mgl_data_set_values (`const char *'str, `int'
+          NX, `int' NY, `int' NZ)
+     Allocates memory and scanf the data from the string.
+
+
+File: mathgl_en.info,  Node: Fill,  Next: Rearrange,  Prev: Create and delete,  Up: mglData class
+
+6.3 Fill
+========
+
+ -- Method on `mglData' (C++, Python): `void' Fill (`float' x1, `float'
+          x2, `char' dir=`'x'')
+ -- C function: `void' mgl_data_fill (`HMDT' dat, `float' x1, `float'
+          x2, `char' dir)
+     Equidistantly fills the data values to range [X1, X2] in direction
+     DIR={`x',`y',`z'}.
+
+ -- Method on `mglData' (C++, Python): `void' Fill (`const char *'eq,
+          `mglPoint' Min, `mglPoint' Max, `const mglData *'vdat=0,
+          `const mglData *'wdat=0)
+ -- C function: `void' mgl_data_fill (`HMGL' gr, `HMDT' dat, `const
+          char *'eq, `const HMDT *'vdat, `const HMDT *'wdat)
+     Fills the value of array according to the formula in string EQ.
+     Formula is an arbitrary expression depending  on variables `x',
+     `y', `z', `u', `v', `w'. Coordinates `x', `y', `z' are supposed to
+     be normalized in range MIN x MAX (in difference from `Modify'
+     functions). Variable `u' is the original value of the array.
+     Variables `v' and `w' are values of VDAT, WDAT which can be `NULL'
+     (i.e. can be omitted).
+
+ -- Method on `mglData' (C++, Python): `void' Modify (`const char *'eq,
+          `int' dim=`0')
+ -- Method on `mglData' (C++, Python): `void' Modify (`const char *'eq,
+          `const mglData &'v)
+ -- Method on `mglData' (C++, Python): `void' Modify (`const char *'eq,
+          `const mglData &'v, `const mglData &'w)
+ -- C function: `void' mgl_data_modify (`HMDT' dat, `const char *'eq,
+          `int' dim)
+ -- C function: `void' mgl_data_modify_vw (`HMDT' dat, `const char
+          *'eq, `const HMDT' v, `const HMDT' w)
+     Fills the value of array according to the formula in string EQ.
+     Formula is an arbitrary expression depending  on variables `x',
+     `y', `z', `u', `v', `w'. Coordinates `x', `y', `z' are supposed to
+     be normalized in range [0,1] (in difference from `Fill'
+     functions). Variable `u' is the original value of the array.
+     Variables `v' and `w' are values of VDAT, WDAT which can be `NULL'
+     (i.e. can be omitted). If DIM>0 is specified then modification
+     will be fulfilled only for slices >=DIM.
+
+ -- Method on `mglData' (C++, Python): `void' Put (`float' val, `int'
+          i=`-1', `int' j=`-1', `int' k=`-1')
+ -- mglData: `void' mgl_data_put_val (`HMDT' a, `float' val, `int' i,
+          `int' j, `int' k)
+     Function sets value(s) of array a[I, J, K] = VAL. Negative indexes
+     I, J, K=-1 set the value VAL to whole range in corresponding
+     direction(s). For example, `Put(val,-1,0,-1);' sets a[i,0,j]=VAL
+     for i=0...(nx-1), j=0...(nz-1).
+
+ -- Method on `mglData' (C++, Python): `void' Put (`const mglData &'v,
+          `int' i=`-1', `int' j=`-1', `int' k=`-1')
+ -- mglData: `void' mgl_data_put_dat (`HMDT' a, `const HMDT' v, `int'
+          i, `int' j, `int' k)
+     Function copies value(s) from array V to the range of original
+     array. Negative indexes I, J, K=-1 set the range in corresponding
+     direction(s). At this minor dimensions of array V should be large
+     than corresponding dimensions of this array. For example,
+     `Put(v,-1,0,-1);' sets a[i,0,j]=v.ny>nz ? v[i,j] : v[i], where
+     i=0...(nx-1), j=0...(nz-1) and condition v.nx>=nx is true.
+
+ -- C function: `void' mgl_data_set_value (`HMDT' dat, `float' v, `int'
+          i, `int' j, `int' k)
+     Sets the value in specified cell of the data with border checking.
+
+ -- C function: `float' mgl_data_get_value (`HMDT' dat, `int' i, `int'
+          j, `int' k)
+     Gets the value in specified cell of the data with border checking.
+
+ -- Method on `mglData' (C+, Python): `void' GetNx ()
+ -- C function: `float' mgl_data_get_nx (`HMDT' dat)
+     Gets the x-size of the data.
+
+ -- Method on `mglData' (C+, Python): `void' GetNy ()
+ -- C function: `float' mgl_data_get_ny (`HMDT' dat)
+     Gets the y-size of the data.
+
+ -- Method on `mglData' (C+, Python): `void' GetNz ()
+ -- C function: `float' mgl_data_get_nz (`HMDT' dat)
+     Gets the z-size of the data.
+
+
+File: mathgl_en.info,  Node: Rearrange,  Next: File I/O,  Prev: Fill,  Up: mglData class
+
+6.4 Rearrange
+=============
+
+ -- Method on `mglData' (C++, Python): `void' Rearrange (`int' mx,
+          `int' my=`0', `int' mz=`0')
+ -- C function: `void' mgl_data_rearrange (`HMDT' dat, `int' mx, `int'
+          my, `int' mz)
+     Rearrange dimensions without changing data array so that resulting
+     sizes should  be MX*MY*MZ < nx*ny*nz. If some of parameter MY or
+     MZ are zero then it will be selected to optimal fill of data
+     array. For example, if MY=0 then it will be change to
+     MY=nx*ny*nz/MX and MZ will be 1.
+
+ -- Method on `mglData' (C++, Python): `void' Extend (`int' n1, `int'
+          n2=`0')
+ -- C function: `void' mgl_data_extend (`HMDT' dat, `int' n1, `int' n2)
+     Increase the dimensions of the data by inserting new (|N1|+1)-th
+     slices after (for N1>0) or before (for N1<0) of existed one. It is
+     possible to insert 2 dimensions simultaneously for 1d data by
+     using parameter N2. Data to new slices is copy from existed one.
+     For example, for N1>0 new array will be a_ij^new = a_i^old where
+     j=0...N1. Correspondingly, for N1<0 new array will be a_ij^new =
+     a_j^old where i=0...|N1|.
+
+ -- Method on `mglData' (C++, Python): `void' Transpose (`const char
+          *'dim=`"yx"')
+ -- C function: `void' mgl_data_transpose (`const char *'dim)
+     Transposes (shift order of) dimensions of the data. New order of
+     dimensions is specified int string DIM. This function may be
+     useful also for the reading of one-dimensional data.
+
+ -- Method on `mglData' (C++, Python): `void' Squeeze (`int' rx, `int'
+          ry=`1', `int' rz=`1', `bool' smooth=`false')
+ -- C function: `void' mgl_data_squeeze (`HMDT' dat, `int' rx, `int'
+          ry, `int' rz, `int' smooth)
+     Reduces the data size by excluding data elements which indexes are
+     not divisible by RX, RY, RZ correspondingly. Parameter SMOOTH set
+     to use smoothing (i.e. out[i]=\sum_{j=i,i+r} a[j]/r) or not (i.e.
+     out[i]=a[j*r]).
+
+ -- Method on `mglData' (C++, Python): `void' Crop (`int' n1, `int' n2,
+          `char' dir=`'x'')
+ -- C function: `void' mgl_data_crop (`HMDT' dat, `int' n1, `int' n2,
+          `char' dir)
+     Cuts off edges of the data I<N1 and I>N2 if N2>0 or I>`n[xyz]'-N2
+     if N2<=0 along direction DIR.
+
+ -- Method on `mglData' (C++, Python): `void' InsertRows (`int' at,
+          `int' num=`1', `const char *'eq=`NULL')
+     Insert NUM rows (slice along y-direction) at position AT and fill
+     it by formula EQ (if EQ!=0) or by zeros.
+
+ -- Method on `mglData' (C++, Python): `void' InsertColumns (`int' at,
+          `int' num=`1', `const char *'eq=`NULL')
+     Insert NUM columns (slice along x-direction) at position AT and
+     fill it by formula EQ (if EQ!=0) or by zeros.
+
+ -- Method on `mglData' (C++, Python): `void' InsertSlices (`int' at,
+          `int' num=`1', `const char *'eq=`NULL')
+     Insert NUM slices (slice along z-direction) at position AT and
+     fill it by formula EQ (if EQ!=0) or by zeros.
+
+ -- Method on `mglData' (C++, Python): `void' DeleteRows (`int' at,
+          `int' num=`1')
+     Delete NUM rows (slice along y-direction) at position AT.
+
+ -- Method on `mglData' (C++, Python): `void' DeleteColumns (`int' at,
+          `int' num=`1')
+     Delete NUM columns (slice along x-direction) at position AT.
+
+ -- Method on `mglData' (C++, Python): `void' DeleteSlices (`int' at,
+          `int' num=`1')
+     Delete NUM slices (slice along z-direction) at position AT.
+
+ -- Method on `mglData' (C++, Python): `void' Insert (`char' dir, `int'
+          pos=`0', `int' num=`1')
+ -- C function: `void' mgl_data_insert (`HMDT' dat, `char' dir, `int'
+          pos, `char' num)
+     Insert NUM slices along DIR-direction at position POS and fill it
+     by zeros.
+
+ -- Method on `mglData' (C++, Python): `void' Delete (`char' dir, `int'
+          pos=`0', `int' num=`1')
+ -- C function: `void' mgl_data_delete (`HMDT' dat, `char' dir, `int'
+          pos, `char' num)
+     Delete NUM slices along DIR-direction at position POS.
+
+
+File: mathgl_en.info,  Node: File I/O,  Next: Make another data,  Prev: Rearrange,  Up: mglData class
+
+6.5 File I/O
+============
+
+ -- Method on `mglData' (C++, Python): `void' Read (`const char *'fname)
+ -- C function: `void' mgl_data_read (`HMDT' dat, `const char *'fname)
+     Reads data from tab-separated text file with auto determining
+     sizes of the data.
+
+ -- Method on `mglData' (C++, Python): `void' Read (`const char
+          *'fname, `int' mx, `int' my=`1', `int' mz=`1')
+ -- C function: `void' mgl_data_read_dim (`HMDT' dat, `const char
+          *'fname, `int' mx, `int' my, `int' mz)
+     Reads data from text file with specified data sizes. This function
+     does nothing if one of parameters MX, MY or MZ is zero or negative.
+   
+ -- Method on `mglData' (C++, Python): `void' ReadMat (`const char
+          *'fname, `int' dim=`2')
+ -- C function: `void' mgl_data_read_mat (`HMDT' dat, `const char
+          *'fname, `int' dim)
+     Read data from text file with size specified at beginning of the
+     file by first DIM numbers. At this, variable DIM set data
+     dimensions.
+
+ -- Method on `mglData' (C++, Python): `void' ReadRange (`const char
+          *'templ, `float' from, `float' to, `float' step=`1.f', `bool'
+          as_slice=`false')
+     Join data arrays from several text files. The file names are
+     determined by function call `sprintf(fname,templ,val);', where VAL
+     changes from FROM to TO with step STEP. The data load one-by-one
+     in the same slice if AS_SLICE=`false' or as slice-by-slice if
+     AS_SLICE=`true'.
+   
+ -- Method on `mglData' (C++, Python): `void' ReadAll (`const char
+          *'templ, `bool' as_slice=`false')
+     Join data arrays from several text files which filenames satisfied
+     the template TEMPL (for example, TEMPL=`"t_*.dat"'). The data load
+     one-by-one in the same slice if AS_SLICE=`false' or as
+     slice-by-slice if AS_SLICE=`true'.
+
+ -- Method on `mglData' (C++, Python): `void' Save (`const char
+          *'fname, `int' ns=`-1') `const'
+ -- C function: `void' mgl_data_save (`const HMDT' dat, `const char
+          *'fname, `int' ns)
+     Saves the whole data array (for NS=`-1') or only NS-th slice to
+     text file.
+
+ -- Method on `mglData' (C++, Python): `void' ReadHDF (`const char
+          *'fname, `const char *'dname)
+     Reads data array named DNAME from HDF5 or HDF4 file. This function
+     does nothing if NO_HDF5|NO_HDF4 was defined during library
+     compilation.
+   
+ -- Method on `mglData' (C++, Python): `void' SaveHDF (`const char
+          *'fname, `const char *'dname, `bool' rewrite=`false') `const'
+     Saves data array named DNAME from HDF5 or HDF4 file. This function
+     does nothing if NO_HDF5|NO_HDF4 was defined during library
+     compilation.
+
+ -- Method on `mglData' (C++, Python): `void' Import (`const char
+          *'fname, `const char *'scheme, `float' v1=`0', float v2=`1')
+ -- C function: `void' mgl_data_import (`HMDT' dat, `const char
+          *'fname, `const char *'scheme, `float' v1, float v2)
+     Reads data from bitmap file (now support only PNG format). The RGB
+     values of bitmap pixels are transformed to float values in range
+     [V1, V2] using color scheme SCHEME (*note Color scheme::).
+   
+ -- Method on `mglData' (C++, Python): `void' Export (`const char
+          *'fname, `const char *'scheme, `float' v1=`0', float v2=`0',
+          `int' ns=`-1') const
+ -- C function: `void' mgl_data_export (`HMDT' dat, `const char
+          *'fname, `const char *'scheme, `float' v1, float v2, `int'
+          ns) const
+     Saves data matrix (or `ns'-th slice for 3d data) to bitmap file
+     (now support only PNG format). The data values are transformed
+     from range [V1, V2] to RGB pixels of bitmap using color scheme
+     SCHEME (*note Color scheme::). If V1>=V2 then the values of V1, V2
+     are automatically determined as minimal and maximal value of the
+     data array.
+
+
+File: mathgl_en.info,  Node: Make another data,  Next: Change data,  Prev: File I/O,  Up: mglData class
+
+6.6 Make another data
+=====================
+
+ -- Method on `mglData' (C++, Python): `mglData' SubData (`int' xx,
+          `int' yy=`-1', `int' zz=`-1') `const'
+ -- C function: `HMDT' mgl_data_subdata (`const HMDT' dat, `int' xx,
+          `int' yy, `int' zz)
+     Extracts sub-array data from the original data array keeping fixed
+     positive index. For example `SubData(-1,2)' extracts 3d row
+     (indexes are zero based), `SubData(4,-1)' extracts 5th column,
+     `SubData(-1,-1,3)' extracts 4th slice and so on.
+
+ -- Method on `mglData' (C++, Python): `mglData' SubData (`const
+          mglData &'xx, `const mglData &'yy, `const mglData &'zz)
+          `const'
+ -- C function: `HMDT' mgl_data_subdata_ext (`const HMDT' dat, `const
+          HMDT' xx, `const HMDT' yy, `const HMDT' zz)
+     Extracts sub-array data from the original data array for indexes
+     specified by arrays XX, YY, ZZ (indirect access). The resulting
+     array have the same dimensions as input arrays for 2D and 3D
+     arguments. This function work like previous one for 1D arguments
+     (or numbers). The dimensions of all argument must be the same if
+     they are 2D or 3D arrays.
+
+ -- Method on `mglData' (C++, Python): `mglData' Column (`const char
+          *'eq) `const'
+ -- C function: `HMDT' mgl_data_column (`const HMDT' dat, `const char
+          *'eq)
+     Get column (or slice) of the data filled by formula EQ of other
+     named columns. For example, `Column("n*w^2/exp(t)");'. The column
+     ids must be defined first by `SetColumnId()' function.
+
+ -- Method on `mglData' (C++, Python): `void' SetColumnId (`const char
+          *'ids)
+ -- C function: `void' mgl_data_set_id (`HMDT' dat, `const char *'ids)
+     Set the symbol id for data columns. The string must contain one
+     symbol 'a'...'z' per column (without spaces).
+
+ -- Method on `mglData' (C++, Python): `mglData' Trace () `const'
+     Gets array of diagonal elements a[i,i] (for 2D case) or a[i,i,i]
+     (for 3D case) where i=0...nx-1. Function return copy of itself for
+     1D case. Data array must have dimensions ny,nz >= nx or ny,nz = 1.
+
+ -- Method on `mglData' (C++, Python): `mglData' Hist (`int' n, `float'
+          v1=`0', `float' v2=`1', `int' nsub=`0') `const'
+ -- C function: `HMDT' mgl_data_hist (`const HMDT' dat, `int' n,
+          `float' v1, `float' v2, `int' nsub)
+     Creates N-th points distribution of the data values in range [V1,
+     V2]. Parameter NSUB define the number of additional interpolated
+     points (for smoothness of histogram).
+
+ -- Method on `mglData' (C++, Python): `mglData' Hist (`const mglData
+          &'w, `int' n, `float' v1=`0', `float' v2=`1', `int' nsub=`0')
+          `const'
+ -- C function: `HMDT' mgl_data_hist_w (`const HMDT' dat, `const HMDT'
+          w, `int' n, `float' v1, `float' v2, `int' nsub)
+     Creates N-th points distribution of the data values in range [V1,
+     V2]. Array W specifies weights of the data elements. Parameter
+     NSUB define the number of additional interpolated points (for
+     smoothness of histogram).
+
+ -- Method on `mglData' (C++, Python): `mglData' Momentum (`char' dir,
+          `const char *'how) `const'
+ -- C function: `HMDT' mgl_data_momentum (`const HMDT' dat, `char' dir,
+          `const char *'how)
+     Get momentum (1D-array) of the data along direction DIR. String
+     HOW contain kind of momentum. The momentum is defined like as
+     res_k = \sum_ij how(x_i,y_j,z_k) a_ij/ \sum_ij a_ij if VAR=`z' and
+     so on. Coordinates `x', `y', `z' are data indexes normalized in
+     range [0,1].
+
+ -- Method on `mglData' (C++, Python): `mglData' Sum (`const char
+          *'dir) `const'
+ -- C function: `HMDT' mgl_data_sum (`const HMDT' dat, `const char
+          *'dir)
+     Gets array which is the result of summation in given direction or
+     direction(s).
+   
+ -- Method on `mglData' (C++, Python): `mglData' Max (`const char
+          *'dir) `const'
+ -- C function: `HMDT' mgl_data_max_dir (`const HMDT' dat, `const char
+          *'dir)
+     Gets array which is the maximal data values in given direction or
+     direction(s).
+   
+ -- Method on `mglData' (C++, Python): `mglData' Min (`const char
+          *'dir) `const'
+ -- C function: `HMDT' mgl_data_min_dir (`const HMDT' dat, `const char
+          *'dir)
+     Gets array which is the maximal data values in given direction or
+     direction(s).
+
+ -- Method on `mglData' (C++, Python): `mglData' Combine (`const
+          mglData &'a) `const'
+ -- C function: `HMDT' mgl_data_combine (`const HMDT' dat, `const HMDT'
+          a)
+     Return direct multiplication of arrays (like, res[i,j] =
+     this[i]*a[j] and so on).
+
+ -- Method on `mglData' (C++, Python): `mglData' Evaluate (`const
+          mglData &'idat, `bool' norm=`true') `const'
+ -- Method on `mglData' (C++, Python): `mglData' Evaluate (`const
+          mglData &'idat, `const mglData &'jdat, `bool' norm=`true')
+          `const'
+ -- Method on `mglData' (C++, Python): `mglData' Evaluate (`const
+          mglData &'idat, `const mglData &'jdat, `const mglData &'kdat,
+          `bool' norm=`true') `const'
+ -- C function: `HMDT' mgl_data_evaluate_i (`const HMDT' dat, `const
+          HMDT' idat, `int' norm)
+ -- C function: `HMDT' mgl_data_evaluate_ij (`const HMDT' dat, `const
+          HMDT' idat, `const HMDT' jdat, `int' norm)
+ -- C function: `HMDT' mgl_data_evaluate_ijk (`const HMDT' dat, `const
+          HMDT' idat, `const HMDT' jdat, `const HMDT' kdat, `int' norm)
+     Get array which values is result of interpolation of original
+     array for coordinates from other arrays. All dimensions must be
+     the same for data IDAT, JDAT, KDAT. Coordinates from IDAT, JDAT,
+     KDAT are supposed to be normalized in range [0,1] (if NORM=`true')
+     or in ranges [0,nx], [0,ny], [0,nz] correspondingly.
+
+ -- Method on `mglData' (C++, Python): `mglData' Resize (`int' mx,
+          `int' my=`1', `int' mz=`1', `float' x1=`0', `float' x2=`1',
+          `float' y1=`0', `float' y2=`1', `float' z1=`0', `float'
+          z2=`1') `const'
+ -- C function: `HMDT' mgl_data_resize (`const HMDT' dat, `int' mx,
+          `int' my, `int' mz)
+ -- C function: `HMDT' mgl_data_resize_box (`const HMDT' dat, `int' mx,
+          `int' my, `int' mz, `float' x1, `float' x2, `float' y1,
+          `float' y2, `float' z1, `float' z2)
+     Resizes the data to new size MX, MY, MZ from box (part) [X1,X2] x
+     [Y1,Y2] x [Z1,Z2] of original array. Initially x,y,z coordinates
+     are supposed to be in [0,1].
+
+
+File: mathgl_en.info,  Node: Change data,  Next: Interpolation,  Prev: Make another data,  Up: mglData class
+
+6.7 Change data
+===============
+
+These functions change the data in some direction like
+differentiations, integrations and so on. The direction in which the
+change will applied is specified by the string parameter, which may
+contain `x', `y' or `z' characters for 1-st, 2-nd and 3-d dimension
+correspondengly.
+
+ -- Method on `mglData' (C++, Python): `void' CumSum (`const char *'dir)
+ -- C function: `void' mgl_data_cumsum (`HMDT' dat, `const char *'dir)
+     Cumulative summation of the data in given direction or directions.
+
+ -- Method on `mglData' (C++, Python): `void' Integral (`const char
+          *'dir)
+ -- C function: `void' mgl_data_integral (`HMDT' dat, `const char *'dir)
+     Integrates (like cumulative summation) the data in given direction
+     or directions.
+
+ -- Метод класса `mglData' (C++, Python): `void' Diff (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_diff (`HMDT' dat, `const char *'dir)
+     Differentiates the data in given direction or directions.
+
+ -- Метод класса `mglData' (C++, Python): `void' Diff (`const mglData
+          &'x, `const mglData &'y)
+ -- Метод класса `mglData' (C++, Python): `void' Diff (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z)
+ -- Функция С: `void' mgl_data_diff_par (`HMDT' dat, `const HMDT' x,
+          `const HMDT'y, `const HMDT'z)
+     Differentiates the data specified parametrically in direction X
+     with Y, Z=constant. Parametrical differentiation uses the formula
+     (for 2D case): da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j) where
+     a_i=da/di, a_j=da/dj denotes usual differentiation along 1st and
+     2nd dimensions. The similar formula is used for 3D case. Note,
+     that you may change the order of arguments - for example, if you
+     have 2D data a(i,j) which depend on coordinates {x(i,j), y(i,j)}
+     then usual derivative along `x' will be `Diff(x,y);' and usual
+     derivative along `y' will be `Diff(y,x);'.
+
+ -- Метод класса `mglData' (C++, Python): `void' Diff2 (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_diff2 (`const char *'dir)
+     Double-differentiates (like Laplace operator) the data in given
+     direction.
+
+ -- Метод класса `mglData' (C++, Python): `void' SinFFT (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_sinfft (`HMDT' dat, `const char *'dir)
+     Do Sine transform of the data in given direction or directions.
+     The Sine transform is \sum a_i \sin(k i).
+
+ -- Метод класса `mglData' (C++, Python): `void' CosFFT (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_cosfft (`HMDT' dat, `const char *'dir)
+     Do Cosine transform of the data in given direction or directions.
+     The Cosine transform is \sum a_i \cos(k i).
+
+ -- Метод класса `mglData' (C++, Python): `void' Hankel (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_hankel (`HMDT' dat, `const char *'dir)
+     Do Hankel transform of the data in given direction or directions.
+     The Hankel transform is \sum a_i J_0(k i).
+
+ -- Метод класса `mglData' (C++, Python): `void' Swap (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_swap (`HMDT' dat, `const char *'dir)
+     Swaps the left and right part of the data in given direction
+     (useful for Fourier spectrum).
+
+ -- Метод класса `mglData' (C++, Python): `void' Roll (`char' dir,
+          `num')
+ -- Функция С: `void' mgl_data_roll (`HMDT' dat, `char' dir, `num')
+     Rolls the data along direction DIR. Resulting array will be out[i]
+     = ini[(i+num)%nx] if `dir='x''.
+
+ -- Метод класса `mglData' (C++, Python): `void' Mirror (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_mirror (`HMDT' dat, `const char *'dir)
+     Mirror the left-to-right part of the data in given direction.
+     Looks like change the value index I->N-I.
+
+ -- Метод класса `mglData' (C++, Python): `void' Sew (`const char
+          *'dir, `float' da=`2*M_PI')
+ -- Функция С: `void' mgl_data_sew (`HMDT' dat, `const char *'dir,
+          `float' da)
+     Remove value steps (like phase jumps after inverse trigonometric
+     functions) with period DA in given direction.
+
+ -- Метод класса `mglData' (C++, Python): `void' Smooth (`int' Type,
+          `const char *'dir, `float' delta=`0')
+ -- Функция С: `void' mgl_data_smooth (`HMDT' dat, `int' Type, `float'
+          delt, `const char *'dirs)
+     Smooths the data on specified direction or directions by method
+     TYPE. Now 4 methods are supported: `SMOOTH_NONE' does nothing for
+     DELTA=0 or approaches data to zero with the step DELTA,
+     `SMOOTH_LINE_3' linear averaging by 3 points, `SMOOTH_LINE_5'
+     linear averaging by 5 points, `SMOOTH_QUAD_5' quadratic averaging
+     by 5 points. Parameter DELTA forbids to change values of array
+     more than DELTA from the original ones. String DIRS specifies the
+     dimensions which will be smoothed. It may contain characters: 'x'
+     for 1st dimension, 'y' for 2nd dimension, 'z' for 3d dimension.
+
+ -- Метод класса `mglData' (C++, Python): `void' Smooth (`const char
+          *'dir)
+     Smooths the data on specified direction(s). This is the same as
+     `Smooth()' but argument TYPE is specified in string as `0' for
+     `SMOOTH_NONE', `3' for `SMOOTH_LINE_3', `5' for `SMOOTH_LINE_5'.
+     If string DIR don't contain digits `035' then TYPE=`SMOOTH_QUAD_5'
+     is used.
+
+ -- Метод класса `mglData' (C++, Python): `void' Envelop (`char'
+          dir=`'x'')
+ -- Функция С: `void' mgl_data_envelop (`HMDT' dat, `char' dir)
+     Find envelop for data values along direction DIR.
+
+ -- Метод класса `mglData' (C++, Python): `void' Norm (`float' v1=`0',
+          `float' v2=`1', `bool' sym=`false', `int' dim=`0')
+     Normalizes the data to range [V1,V2]. If flag SYM=`true' then
+     symmetrical interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used.
+     Modification will be applied only for slices >=DIM.
+
+ -- Метод класса `mglData' (C++, Python): `void' NormSl (`float'
+          v1=`0', `float' v2=`1', `char' dir=`'z'', `bool'
+          keep_en=`true', `bool' sym=`false')
+ -- Функция С: `void' mgl_data_norm_slice (`HMDT' dat, `float' v1,
+          `float' v2, `char' dir, `int' keep_en, `int' sym)
+     Normalizes data slice-by-slice along direction DIR the data in
+     slices to range [V1,V2]. If flag SYM=`true' then symmetrical
+     interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used. If KEEP_EN is
+     set then maximal value of k-th slice will be limited by \sqrt{\sum
+     a_ij(k)/\sum a_ij(0)}.
+
+
+File: mathgl_en.info,  Node: Interpolation,  Next: Informational functions,  Prev: Change data,  Up: mglData class
+
+6.8 Interpolation
+=================
+
+ -- Method on `mglData' (C++, Python): `float' Spline (`float' x,
+          `float' y=`0', `float' z=`0') `const'
+ -- C function: `float' mgl_data_spline (`const HMDT' dat, `float' x,
+          `float' y, `float' z)
+     Interpolates data by cubic spline to the given point X in
+     [0...nx-1], Y in [0...ny-1], Z in [0...nz-1].
+
+ -- Method on `mglData' (C++, Python): `float' Spline1 (`float' x,
+          `float' y=`0', `float' z=`0') `const'
+ -- C function: `float' mgl_data_spline1 (`const HMDT' dat, `float' x,
+          `float' y, `float' z)
+     Interpolates data by cubic spline to the given point X, Y, Z which
+     assumed to be normalized in range [0, 1].
+   
+ -- Method on `mglData' (C++, Python): `float' Linear (`float' x,
+          `float' y=`0', `float' z=`0') `const'
+ -- C function: `float' mgl_data_linear (`const HMDT' dat, `float' x,
+          `float' y, `float' z)
+     Interpolates data by linear function to the given point X in
+     [0...nx-1], Y in [0...ny-1], Z in [0...nz-1].
+   
+ -- Method on `mglData' (C++, Python): `float' Linear1 (`float' x,
+          `float' y=`0', `float' z=`0') `const'
+ -- C function: `float' mgl_data_linear1 (`const HMDT' dat, `float' x,
+          `float' y, `float' z)
+     Interpolates data by linear function to the given point X, Y, Z
+     which assumed to be normalized in range [0, 1].
+   
+ -- Method on `mglData' (C++, Python): `float' v (`int' i, `int' j=`0',
+          `int' k=`0') `const'
+ -- C function: `float' mgl_data_get_value (`const HMDT' dat, `int' i,
+          `int' j, `int' k)
+     Gets the value in specified cell of the data with border checking.
+   
+ -- Method on `mglData' (C++, Python): `float' Spline5 (`float' x,
+          `float' y, `float' z, `float' &dx, `float' &dy, `float' &dz)
+          `const'
+     Interpolate by 5-th order splain the data to given point X, Y, Z
+     which normalized in range [0, 1] and evaluate its derivatives.
+
+ -- C function: `float *' mgl_data_value (`HMDT' dat, `int' i, `int' j,
+          `int' k)
+     Gets the pointer to data element.
+
+ -- C function: `const float *' mgl_data_data (`const HMDT' dat)
+     Gets the pointer to internal data array.
+
+
+File: mathgl_en.info,  Node: Informational functions,  Next: Operators,  Prev: Interpolation,  Up: mglData class
+
+6.9 Informational functions
+===========================
+
+ -- Метод класса `mglData' (C++): `void' PrintInfo (`char *'buf, `bool'
+          all=`false') `const'
+     Print information about the data (sizes and momentum) to string
+     BUF. Parameter ALL set to print most of information (if `true') or
+     just basic one like dimensions, maximal an minimal values.
+
+ -- Метод класса `mglData' (C++): `void' PrintInfo (`FILE *'fp) `const'
+     Print information about the data (sizes and momentum) to FILE (for
+     example, stdout).
+
+ -- Метод класса `mglData' (C++, Python): `float' Maximal () `const'
+ -- Функция С: `float' mgl_data_max (`const HMDT' dat)
+     Gets maximal value of the data.
+   
+ -- Метод класса `mglData' (C++, Python): `float' Minimal () `const'
+ -- Функция С: `float' mgl_data_min (`HMDT' dat) `const'
+     Gets minimal value of the data.
+
+ -- Метод класса `mglData' (C++, Python): `float' Maximal (`int' &i,
+          `int' &j, `int' &k) `const'
+ -- Функция С: `float' mgl_data_max_int (`const HMDT' dat, `int' *i,
+          `int' *j, `int' *k)
+     Gets maximal value of the data and its position in the array to
+     variables I, J, K.
+
+ -- Метод класса `mglData' (C++, Python): `float' Minimal (`int' &i,
+          `int' &j, `int' &k) `const'
+ -- Функция С: `float' mgl_data_min_int (`const HMDT' dat, `int' *i,
+          `int' *j, `int' *k)
+     Gets minimal value of the data and its position in the array to
+     variables I, J, K.
+
+ -- Метод класса `mglData' (C++, Python): `float' Maximal (`float' &i,
+          `float' &j, `float' &k) `const'
+ -- Функция С: `float' mgl_data_max_real (`const HMDT' dat, `float' *x,
+          `float' *y, `float' *z)
+     Gets maximal value of the data and its approximated (interpolated)
+     position to variables I, J, K.
+
+ -- Метод класса `mglData' (C++, Python): `float' Minimal (`float' &i,
+          `float' &j, `float' &k) `const'
+ -- Функция С: `float' mgl_data_min_real (`const HMDT' dat, `float' *x,
+          `float' *y, `float' *z)
+     Gets minimal value of the data and its approximated (interpolated)
+     position to variables I, J, K.
+
+ -- Метод класса `mglData' (C++, Python): `float' Momentum (`char' dir,
+          `float' &m, `float' &w) `const'
+ -- Функция С: `float' mgl_data_momentum_mw (`const HMDT' dat, `char'
+          dir, `float' *m, `float' *w)
+     Gets zero-momentum (energy, I=\sum a_i) and write first momentum
+     (median, m = \sum \xi_i a_i/I) and second momentum (width, w^2 =
+     \sum (\xi_i-m)^2 a_i/I) to variables. Here \xi is corresponding
+     coordinate if DIR is `'x'', `'y'' or `'z''. Otherwise median is m
+     = \sum a_i/N, width is w^2 = \sum (a_i-m)^2/N.
+
+ -- Метод класса `mglData' (C++): `float' Momentum (`char' dir, `float'
+          &m, `float' &w, `float' &s, `float' &k) `const'
+     Gets zero-momentum (energy, I=\sum a_i) and write first momentum
+     (median, m = \sum \xi_i a_i/I), second momentum (width, w^2 = \sum
+     (\xi_i-m)^2 a_i/I), third momentum (skewness, s = \sum (\xi_i-m)^3
+     a_i/ I w^3) and fourth momentum (kurtosis, k = \sum (\xi_i-m)^4
+     a_i / 3 I w^4) to variables. Here \xi is corresponding coordinate
+     if DIR is `'x'', `'y'' or `'z''. Otherwise median is m = \sum
+     a_i/N, width is w^2 = \sum (a_i-m)^2/N and so on.
+
+ -- Метод класса `mglData' (C++, Python): `float' Find (`const char
+          *'cond, `int' &i, `int' &j, `int' &k) `const'
+ -- Функция С: `float' mgl_data_first (`const HMDT' dat, `const char
+          *'cond, `int' *i, `int' *j, `int' *k)
+     Find position (after specified in I, J, K) of first nonzero value
+     of formula COND. Function return the data value at found position.
+   
+ -- Метод класса `mglData' (C++, Python): `float' Last (`const char
+          *'cond, `int' &i, `int' &j, `int' &k) `const'
+ -- Функция С: `float' mgl_data_last (`const HMDT' dat, `const char
+          *'cond, `int' *i, `int' *j, `int' *k)
+     Find position (before specified in I, J, K) of last nonzero value
+     of formula COND. Function return the data value at found position.
+
+ -- Метод класса `mglData' (C++, Python): `int' Find (`const char
+          *'cond, `char' dir, `int' i=`0', `int' j=`0', `int' k=`0')
+          `const'
+ -- Функция С: `float' mgl_data_find (`const HMDT' dat, `const char
+          *'cond, `int' i, `int' j, `int' k)
+     Return position of first in direction DIR nonzero value of formula
+     COND. The search is started from point {i,j,k}.
+   
+ -- Метод класса `mglData' (C++, Python): `bool' FindAny (`const char
+          *'cond) `const'
+ -- Функция С: `float' mgl_data_find_any (`const HMDT' dat, `const char
+          *'cond)
+     Determines if any nonzero value of formula in the data array.
+
+
+File: mathgl_en.info,  Node: Operators,  Next: Global functions,  Prev: Informational functions,  Up: mglData class
+
+6.10 Operators
+==============
+
+ -- Method on `mglData' (C++, Python): `void' operator= (`const mglData
+          &'d)
+     Copies data from other variable.
+
+ -- Method on `mglData' (C++, Python): `void' operator*= (`const
+          mglData &'d)
+ -- C function: `void' mgl_data_mul_dat (`HMDT' dat, `const HMDT' d)
+     Multiplies the data by the other one for each element.
+
+ -- Method on `mglData' (C++, Python): `void' operator/= (`const
+          mglData &'d)
+ -- C function: `void' mgl_data_div_dat (`HMDT' dat, `const HMDT' d)
+     Divides the data by the other one for each element.
+
+ -- Method on `mglData' (C++, Python): `void' operator+= (`const
+          mglData &'d)
+ -- C function: `void' mgl_data_add_dat (`HMDT' dat, `const HMDT' d)
+     Adds the other data.
+
+ -- Method on `mglData' (C++, Python): `void' operator-= (`const
+          mglData &'d)
+ -- C function: `void' mgl_data_sub_dat (`HMDT' dat, `const HMDT' d)
+     Subtracts the other data.
+
+ -- Method on `mglData' (C++, Python): `void' operator*= (`float' d)
+ -- C function: `void' mgl_data_mul_num (`HMDT' dat, `float' d)
+     Multiplies each element by the number.
+
+ -- Method on `mglData' (C++, Python): `void' operator/= (`float' d)
+ -- C function: `void' mgl_data_div_num (`HMDT' dat, `float' d)
+     Divides each element by the number.
+
+ -- Method on `mglData' (C++, Python): `void' operator+= (`float' d)
+ -- C function: `void' mgl_data_add_num (`HMDT' dat, `float' d)
+     Adds the number to each element.
+
+ -- Method on `mglData' (C++, Python): `void' operator-= (`float' d)
+ -- C function: `void' mgl_data_sub_num (`HMDT' dat, `float' d)
+     Subtracts the number to each element.
+
+ -- Library Function: mglData operator+ (`const mglData &'a, `const
+          mglData &'b)
+     Adds the other data.
+
+ -- Library Function: mglData operator+ (`float' a, `const mglData &'b)
+     Adds the number.
+
+ -- Library Function: mglData operator+ (`const mglData &'a, `float' b)
+     Adds the number.
+
+ -- Library Function: mglData operator- (`const mglData &'a, `const
+          mglData &'b)
+     Subtracts the other data.
+
+ -- Library Function: mglData operator- (`float' a, `const mglData &'b)
+     Subtracts from the number.
+
+ -- Library Function: mglData operator- (`const mglData &'a, `float' b)
+     Subtracts the number.
+
+ -- Library Function: mglData operator* (`const mglData &'a, `const
+          mglData &'b)
+     Multiplies by the other data.
+
+ -- Library Function: mglData operator* (`float' a, `const mglData &'b)
+     Multiplies by the number.
+
+ -- Library Function: mglData operator* (`const mglData &'a, `float' b)
+     Multiplies by the number.
+
+ -- Library Function: mglData operator/ (`const mglData &'a, `const
+          mglData &'b)
+     Divides by the other data.
+
+ -- Library Function: mglData operator/ (`const mglData &'a, `float' b)
+     Divides by the number.
+
+
+File: mathgl_en.info,  Node: Global functions,  Prev: Operators,  Up: mglData class
+
+6.11 Global functions
+=====================
+
+These functions are not methods of `mglData' class. However it have
+additional functionality to handle data. So I put it in this chapter.
+
+ -- Global function: `mglData' mglTransform (`const mglData &'real,
+          `const mglData &'imag, `const char *'type)
+ -- C function: `HMDT' mgl_transform (`const HMDT' real, `const HMDT'
+          imag, `const char *'type)
+     Do integral transformation of complex data REAL, IMAG on specified
+     direction. The order of transformations is specified in string
+     TYPE: first character for x-dimension, second one for y-dimension,
+     third one for z-dimension. The possible character are: `f' is
+     forward Fourier transformation, `i' is inverse Fourier
+     transformation, `s' is Sine transform, `c' is Cosine transform,
+     `h' is Hankel transform, `n' or ` ' is no transformation.
+
+ -- Global function: `mglData' mglTransformA `const mglData &'ampl,
+          `const mglData &'phase, `const char *'type)
+ -- C function: `HMDT' mgl_transform_a `const HMDT' ampl, `const HMDT'
+          phase, `const char *'type)
+     The same as previous but with specified amplitude AMPL and phase
+     PHASE of complex numbers.
+
+ -- Global function: `mglData' mglSTFA (`const mglData &'real, `const
+          mglData &'imag, `int' dn, `char' dir=`'x'')
+ -- C function: `HMDT' mgl_data_stfa (`const HMDT' real, `const HMDT'
+          imag, `int' dn,`char' dir)
+     Short time Fourier transformation for real and imaginary parts.
+     Output  is amplitude of partial Fourier of length DN. For example
+     if DIR=`x', result will have size {int(nx/dn), dn, ny} and it will
+     contain res[i,j,k]=|\sum_d^dn
+     exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn.
+
+ -- Global function: `mglData' mglPDE (`const char *'ham, `const
+          mglData &'ini_re, `const mglData &'ini_im, `mglPoint' Min,
+          `mglPoint' Max, `float' dz=`0.1', `float' k0=`100')
+ -- C function: `HMDT' mgl_pde_solve (`HMGL' gr, `const char *'ham,
+          `const HMDT' ini_re, `const HMDT' ini_im, `float' dz, `float'
+          k0)
+     Solves equation du/dz = i*k0*HAM(p,q,x,y,z,|u|)[u], where
+     p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators.
+     Parameters INI_RE, INI_IM specify real and imaginary part of
+     initial field distribution. Parameters MIN, MAX set the bounding
+     box for the solution. Note, that really this ranges are increased
+     by factor 3/2 for purpose of reducing reflection from boundaries.
+     Parameter DZ set the step along evolutionary coordinate z. At this
+     moment, simplified form of function HAM is supported - all "mixed"
+     terms (like `x*p'->x*d/dx) are excluded. For example, in 2D case
+     this function is effectively ham = f(p,z) + g(x,z,u). However
+     commutable combinations (like `x*q'->x*d/dy) are allowed. Here
+     variable `u' is used for field amplitude |u|. This allow one solve
+     nonlinear problems - for example, for nonlinear Shrodinger
+     equation you may set `ham="p^2 + q^2 - u^2"'. You may specify
+     imaginary part for wave absorption, like `ham = "p^2 +
+     i*x*(x>0)"', but only if dependence on variable `i' is linear
+     (i.e. ham = hre+i*him). *Note PDE sample::, for sample code and
+     picture.  *Note PDE sample::, for sample code and picture.
+
+ -- Global function: `mglData' mglRay (`const char *'ham, `mglPoint'
+          r0, `mglPoint' p0, `float' dt=`0.1', `float' tmax=`10')
+ -- C function: `HMDT' mgl_ray_trace (`const char *'ham, `float' x0,
+          `float' y0, `float' z0, `float' px, `float' py, `float' pz,
+          `float' dt, `float' tmax)
+     Solves GO ray equation like dr/dt = d HAM/dp, dp/dt = -d HAM/dr.
+     This is Hamiltonian equations for particle trajectory in 3D case.
+     Here HAM is Hamiltonian which may depend on coordinates `x', `y',
+     `z', momentums `p'=px, `q'=py, `v'=pz and time `t': ham =
+     H(x,y,z,p,q,v,t). The starting point (at `t=0') is defined by
+     variables R0, P0. Parameters DT and TMAX specify the integration
+     step and maximal time for ray tracing. Result is array of
+     {x,y,z,p,q,v,t} with dimensions {7 * int(TMAX/DT+1) }. *Note Beam
+     tracing sample::, for sample code and picture.
+
+ -- Global function: `mglData' mglQO2d (`const char *'ham, `const
+          mglData &'ini_re, `const mglData &'ini_im, `const mglData
+          &'ray, `float' r=`1', `float' k0=`100', `mglData *'xx=`0',
+          `mglData *'yy=`0', `bool' UseR=`true')
+ -- C function: `HMDT' mgl_qo2d_solve (`const char *'ham, `const HMDT'
+          ini_re, `const HMDT' ini_im, `const HMDT' ray, `float' r,
+          `float' k0, `HMDT' xx, `HMDT' yy)
+     Solves equation du/dt = i*k0*HAM(p,q,x,y,|u|)[u], where
+     p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators (see
+     `mglPDE()' for details). Parameters INI_RE, INI_IM specify real
+     and imaginary part of initial field distribution. Parameters RAY
+     set the reference ray, i.e. the ray around which the accompanied
+     coordinate system will be maked. You may use, for example, the
+     array created by `mglRay()' function. Note, that the reference ray
+     *must be* smooth enough to make accompanied coodrinates
+     unambiguity. Otherwise errors in the solution may appear. If XX
+     and YY are non-zero then Cartesian coordinates for each point will
+     be written into them. See also `mglPDE()'. *Note Beam tracing
+     sample::, for sample code and picture.
+
+ -- Global function: `mglData' mglJacobian (`const mglData &'x, `const
+          mglData &'y)
+ -- Global function: `mglData' mglJacobian (`const mglData &'x, `const
+          mglData &'y, `const mglData &'z)
+ -- C function: `HMDT' mgl_jacobian_2d (`const HMDT' x, `const HMDT' y)
+ -- C function: `HMDT' mgl_jacobian_3d (`const HMDT' x, `const HMDT' y,
+          `const HMDT' z)
+     Computates the Jacobian for transformation {i,j,k} to {X,Y,Z}
+     where initial coordinates  {i,j,k} are data indexes normalized in
+     range [0,1]. The Jacobian is determined by formula
+     det||dr_\alpha/d\xi_\beta|| where r={X,Y,Z} and \xi={i,j,k}. All
+     dimensions must be the same for all data arrays. Data must be 3D
+     if all 3 arrays {X,Y,Z} are specified or 2D if only 2 arrays {X,Y}
+     are specified.
+
+
+File: mathgl_en.info,  Node: Other classes,  Next: MGL interface,  Prev: mglData class,  Up: Top
+
+7 Other classes
+***************
+
+* Menu:
+
+* mglParse class::
+* mglFormula class::
+* mglFont class::
+* mglColor class::
+* mglPoint class::
+* mglVar class::
+* mglCommand class::
+* mglArg class::
+
+
+File: mathgl_en.info,  Node: mglParse class,  Next: mglFormula class,  Up: Other classes
+
+7.1 mglParse class
+==================
+
+Class for parsing and executing MGL script. This class is defined in
+`#include <mgl/mgl_parse.h>'.
+
+   Class mglParse is the interpreter for MGL scripts (*note MGL
+interface::). The main function of mglParse class is `Parse()'. Exactly
+this function parses and executes the script string-by-string. Also
+there are two subservient functions for the finding and creation of a
+variable. These functions can be useful for displaying values of
+variables (arrays) in some external program (in window, for example).
+The variable DATALIST contains full list of variables in script. Flag
+ALLOWSETSIZE allows one to prevent changing the size of the  picture
+inside the script (forbids the MGL command `setsize').
+
+   Note an important feature - if user defines function FUNC in
+variable then it will be called before the destroying of this variable
+(*note mglVar class::).
+
+ -- Method on `mglParse' (C++, Python): `' mglParse (`bool'
+          setsize=`false')
+ -- C function: `HMPR' mgl_create_parser ()
+     Constructor initializes all values with zero and set ALLOWSETSIZE
+     value.
+
+ -- Method on `mglParse' (C++, Python): `' ~mglParse ()
+ -- C function: `void' mgl_delete_parser (`HMPR' p)
+     Destructor delete parser
+
+ -- Method on `mglParse' (C++, Python): `int' Parse (`mglGraph *'gr,
+          `const char *'str, `long' pos=`0')
+ -- Method on `mglParse' (C++): `int' Parse (`mglGraph *'gr, `const
+          wchar_t *'str, `long' pos=`0')
+ -- C function: `int' mgl_parse (`HMGL' gr, `HMPR' p, `const char
+          *'str, `int' pos)
+ -- C function: `int' mgl_parsew (`HMGL' gr, `HMPR' p, `const wchar_t
+          *'str, `int' pos)
+     Main function in the class. It parses the string STR and executes
+     it by  using GR as a graphics plotter. Returns the value depending
+     on an error presence in the string STR: 0 - no error, 1 - wrong
+     command argument(s), 2 - unknown command, 3 - string is too long.
+     Optional argument POS allows to save the string position in the
+     document (or file) for using `for|next' command.
+
+ -- Method on `mglParse' (C++): `int' Export (`wchar_t'
+          cpp_out`[1024]', `mglGraph *'gr, `const wchar_t *'str)
+     Function parses the string STR, executes it by  using GR as a
+     graphics plotter and exports it to C++ code. Returns the value
+     depending on an error presence in the string STR: 0 - no error, 1
+     - wrong command argument(s), 2 - unknown command, 3 - string is
+     too long. Output C++ text will be placed in OUT variable. If
+     string STR have options (defined after ';' symbol) then the
+     corresponding C++ texts are placed in variables OP1, OP2.
+
+ -- Method on `mglParse' (C++): `void' Execute (`mglGraph *'gr, `FILE
+          *'fp, `bool' print=`false')
+     Function parse and execute line-by-line MGL script in file FP. If
+     PRINT=`true' then all warnings and information will be printed in
+     stdout. Also this function support the `for|next' MGL commands.
+
+ -- Method on `mglParse' (C++): `void' Execute (`mglGraph *'gr, `int'
+          num, `const wchar_t **'text, `void (*' error `)(int line, int
+          kind)=NULL')
+     Function parse and execute line-by-line MGL script in array TEXT.
+     If ERROR is not `NULL' then this function will be called for all
+     warnings, information and other messages. Also this function
+     support the `for|next' MGL commands.
+
+ -- Method on `mglParse' (C++, Python): `void' Execute (`mglGraph *'gr,
+          `const char *'text, `void (*' error `)(int line, int
+          kind)=NULL')
+ -- Method on `mglParse' (C++): `void' Execute (`mglGraph *'gr, `const
+          wchar_t *'text, `void (*' error `)(int line, int kind)=NULL')
+ -- C function: `void' mgl_parse_text (`HMGL' gr, `HMPR' p, `const char
+          *'text)
+ -- C function: `void' mgl_parsew_text (`HMGL' gr, `HMPR' p, `const
+          wchar_t *'text)
+     Function parse and execute line-by-line MGL script in string TEXT.
+     Lines are separated by `\n' symbol as usual. If ERROR is not
+     `NULL' then this function will be called for all warnings,
+     information and other messages. Also this function support the
+     `for|next' MGL commands.
+
+ -- Method on `mglParse' (C++, Python): `bool' AddParam (`int' n,
+          `const char *'str, `bool' isstr=`true')
+ -- Method on `mglParse' (C++): `bool' AddParam (`int' n, `const
+          wchar_t *'str, `bool' isstr=`true')
+ -- C function: `void' mgl_add_param (`HMPR' p, `int' id, `const char
+          *'val)
+ -- C function: `void' mgl_add_paramw (`HMPR' p, `int' id, `const
+          wchar_t *'val)
+     Function set the value of N-th parameter as string STR (N=0, 1 ...
+     9). It return `true' for success.
+
+ -- Method on `mglParse' (C++, Python): `mglVar *' FindVar (`const char
+          *'name)
+ -- Method on `mglParse' (C++): `mglVar *' FindVar (`const wchar_t
+          *'name)
+ -- C function: `const HMDT' mgl_find_var (`HMPR' p, `const char *'name)
+     Function returns the pointer to variable with name NAME or zero if
+     variable is absent. Use this function to put external data array
+     to the script or get the data from the script.
+
+ -- Method on `mglParse' (C++, Python): `mglVar *' AddVar (`const char
+          *'name)
+ -- Method on `mglParse' (C++): `mglVar *' AddVar (`const wchar_t
+          *'name)
+ -- C function: `const HMDT' mgl_add_var (`HMPR' p, `const char *'name)
+     Function returns the pointer to variable with name NAME. If
+     variable is absent then new variable is created with name NAME.
+     Use this function to put external data array to the script or get
+     the data from the script.
+
+ -- Method on `mglParse' (C++): `void' DeleteVar (`mglVar *'v)
+ -- Method on `mglParse' (C++): `void' DeleteVar (`const char *'name)
+ -- Method on `mglParse' (C++): `void' DeleteVar (`const wchar_t *'name)
+     Function delete the variable specified by its name or by its
+     pointer.
+
+ -- Method on `mglParse' (C++, Python): `inline void' RestoreOnce ()
+ -- C function: `void' mgl_restore_once (`HMPR' p)
+     Restore Once flag.
+
+ -- Method on `mglParse' (Python): `void' AllowSetSize (`bool' a)
+ -- C function: `void' mgl_parser_allow_setsize (`HMPR' p, `int' a)
+     Allow to parse 'setsize' command or not.
+
+ -- Method on `mglParse' (C++): `void' AddCommand (`mglCommand *'cmd,
+          `int' num=`0')
+     Add NUM commands CMD to the defined MGL commands list. Parameter
+     CMD is array of `mglCommand' structures. If parameter NUM=0 then
+     it will be determined automatically. At this, array CMD *must
+     have* last element with `name=L""'
+
+ -- Option of mglParse: `mglVar *' DataList
+     List of variables defined in script.
+
+ -- Option of mglParse: `bool' AllowSetSize
+     Flag which allows/forbids the command `setsize' in scripts.
+
+ -- Option of mglParse: `bool' Stop
+     Flag which interrupt script execution.
+
+ -- Option of mglParse: `mglCommand *' Cmd
+     Table (array) of recognizable MGL commands (can be changed by
+     user). Items in the table *MUST be sorted* by NAME field !!! Last
+     items must have empty name (i.e. `L""').
+
+ -- Option of mglParse: `wchar_t *' op1
+     These strings contain command options and should be placed before
+     the command. These variables are used for MGL->C++ (or other
+     language) conversion.
+
+ -- Option of mglParse: `wchar_t *' op2
+     These strings contain command options and should be placed after
+     the command. These variables are used for MGL->C++ (or other
+     language) conversion.
+
+
+File: mathgl_en.info,  Node: mglFormula class,  Next: mglFont class,  Prev: mglParse class,  Up: Other classes
+
+7.2 mglFormula class
+====================
+
+Class for evaluating of formula specified by the string. This class is
+defined in `#include <mgl/mgl_eval.h>'.
+
+   It is the fast variant of formula evaluation. At creation it will be
+recognized and compiled to tree-like internal code. At evaluation stage
+only fast calculations are performed. There is no difference between
+lower or upper case in formulas. If argument value lie outside the
+range of function definition then function returns NaN. *Note Textual
+formulas::.
+
+ -- Method on mglFormula: `' mglFormula (`const char *'str)
+     Parses the formula STR and creates formula-tree. Constructor
+     recursively parses the formula and creates a tree-like structure
+     containing functions and operators for fast further evaluating by
+     `Calc()' or `CalcD()' functions.
+
+ -- Method on mglFormula: `float' Calc (`float' x, `float' y=`0',
+          `float' z=`0', `float' u=`0')
+     Evaluates the formula for `'x','r''=X, `'y','n''=Y, `'z','t''=Z,
+     `'a','u''=U. Error code (if one) can be obtained from function
+     `GetError()'.
+
+ -- Method on mglFormula: `float' Calc (`float' x, `float' y, `float'
+          z, `float' u, `float' v, `float' w)
+     Evaluates the formula for `'x''=X, `'y''=Y, `'z''=Z, `'u''=U,
+     `'v''=V, `'w''=W. Error code (if one) can be obtained from
+     function `GetError()'.
+
+ -- Method on mglFormula: `float' Calc (`float' var`['z'-'a'+1]')
+     Evaluates the formula for variables in array VAR['z'-'a']. Error
+     code (if one) can be obtained from function `GetError()'.
+
+ -- Method on mglFormula: `float' CalcD (`float' var`['z'-'a'+1]',
+          `char' diff)
+     Evaluates the formula derivation respect to DIFF for variables in
+     array VAR['z'-'a']. Error code (if one) can be obtained from
+     function `GetError()'.
+
+ -- Method on mglFormula: `int' GetError ()
+     Returns error code: `0' means no error; `ERR_LOG' means error in
+     logarithm or power functions; `ERR_ARC' means error in inverse
+     functions (like asin); `ERR_SQRT' means error in sqrt function.
+
+
+File: mathgl_en.info,  Node: mglFont class,  Next: mglColor class,  Prev: mglFormula class,  Up: Other classes
+
+7.3 mglFont class
+=================
+
+Class for working with font: load, get metrics, parse and draw strings.
+This class is defined in `#include <mgl/mgl_font.h>'.
+
+   The class is based on loading and drawing of vector Hershey font.
+There are two styles of specifying of the font type and aligning: by
+integer parameters or by string.
+
+   The string can be any combination of characters: `rbiLCRwou'. The
+font types are: `r' - roman font, `i' - italic style, `b' - bold style.
+By default roman font (that is `' or `r') is used. The align types are:
+`L' - align left (default), `C' - align center, `R' - align right.
+Additional font effects are: `w' - wire, `o' - over-lined, `u' -
+underlined. Parsing of the string to special (TeX-like) commands will
+be done if variable PARSE is true (it's default). See also *note Font
+styles::.
+
+   The over way of font and alignment setting is the using of the
+integer constant. Integer font Id can be one of predefined constants:
+`MGL_FONT_ITAL, MGL_FONT_BOLD, MGL_FONT_BOLD_ITAL =
+MGL_FONT_ITAL+MGL_FONT_BOLD'. Default font is `MGL_FONT_ROMAN'. Also
+there are flags `MGL_FONT_ULINE, MGL_FONT_OLINE, MGL_FONT_WIRE' for
+additional font effects. Align parameter controls the text alignment: 0
+- align left, 1 - align center, 2 - align right.
+
+* Menu:
+
+* Format of font files::
+
+ -- Method on mglFont: `' mglFont (`const char
+          *'name=`MGL_DEF_FONT_NAME', `const char *'path=`NULL')
+     Initialize the font and load data from file NAME (default name is
+     "STIX" for Linux and MacOS) or if  NAME=`NULL' limited data from
+     memory (default for Windows).
+
+ -- Method on mglFont: `bool' Load (`const char *' base, `const char
+          *'path=`NULL')
+     Load font from file PATH/BASE into the memory. The font may
+     contain 4 files: BASE.vfm, BASE_b.vfm, BASE_i.vfm, BASE_bi.vfm.
+     Appendix contain detailed description of font format.
+
+ -- Method on mglFont: `void' Restore ()
+     Restore default font.
+
+ -- Method on mglFont: `void' (`mglFont *' fnt)
+     Copy data from other font instance.
+
+ -- Method on mglFont: `void' Clear ()
+     Clear memory by deleting the loaded font.
+
+ -- Method on mglFont: `inline unsigned' GetNumGlyph ()
+     Return the number of glyphs in the font.
+
+ -- Method on mglFont: `inline bool' Ready ()
+     Return true if font is loaded and ready for use.
+
+ -- Method on mglFont: `float' Height (`int' font)
+     Gets height of text for font specified by integer constant.
+
+ -- Method on mglFont: `float' Puts (`const char *'str, `int' font=`0',
+          `int' align=`0')
+     Prints 8-bit text string for font specified by integer constant.
+
+ -- Method on mglFont: `float' Width (`const char *'str, `int' font=`0')
+     Gets width of 8-bit text string for font specified by integer
+     constant.
+
+ -- Method on mglFont: `float' Puts (`const wchar_t *'str, `int'
+          font=`0', `int' align=`0')
+     Prints Unicode text string for font specified by integer constant.
+
+ -- Method on mglFont: `float' Width (`const wchar_t *'str, `int'
+          font=`0')
+     Gets width of Unicode text string for font specified by integer
+     constant.
+
+ -- Method on mglFont: `float' Height (`const char *'how)
+     Gets height of text for font specified by string.
+
+ -- Method on mglFont: `float' Puts (`const char *'str, `const char
+          *'how)
+     Prints 8-bit text string for font specified by string.
+
+ -- Method on mglFont: `float' Width (`const char *'str, `const char
+          *'how)
+     Gets width of 8-bit text string for font specified by string.
+
+ -- Method on mglFont: `float' Puts (`const wchar_t *'str, `const char
+          *'how)
+     Prints Unicode text string for font specified by string.
+
+ -- Method on mglFont: `float' Width (`const wchar_t *'str, `const char
+          *'how)
+     Gets width of Unicode text string for font specified by string.
+
+ -- Parameter of mglFont: `mglGraph *' gr
+     Instance of mglGraph class which is used for character drawing.
+
+ -- Parameter of mglFont: `bool' parse
+     Flag for switching on/off the parsing of TeX commands. Default
+     value is `true'.
+
+
+File: mathgl_en.info,  Node: Format of font files,  Up: mglFont class
+
+7.3.1 Format of font files
+--------------------------
+
+Starting from v.1.6 the MathGL library uses new font files. The font is
+defined in 4 files with suffixes `*.vfm', `*_b.vfm', `*_i.vfm',
+`*_bi.vfm'. These files are text files containing the data for roman
+font, bold font, italic font and bold italic font. The files (or some
+symbols in the files) for bold, italic or bold italic fonts can be
+absent. In this case the roman glyph will be used for them. By analogy,
+if the bold italic font is absent but the bold font is present then
+bold glyph will be used for bold italic. You may create these font
+files by yourself from *.ttf, *.otf files with the help of program
+`font_tools'. This program can be found at MathGL home site.
+
+   The format of font files (*.vfm - vector font for MathGL) is the
+following.
+  1. First string contains human readable comment and is always ignored.
+
+  2. Second string contains 3 numbers, delimited by space or
+     tabulation. The order of numbers is the following: NUMG - the
+     number of glyphs in the file (integer), FACT - the factor for
+     glyph sizing (float), SIZE - the size of buffer for glyph
+     description (integer).
+
+  3. After it NUMG-th strings with glyphs description are placed. Each
+     string contains 6 positive numbers, delimited by space of
+     tabulation. The order of numbers is the following: Unicode glyph
+     ID, glyph width, number of lines in glyph, position of lines
+     coordinates in the buffer (length is 2*number of lines), number of
+     triangles in glyph, position of triangles coordinates in the
+     buffer (length is 6*number of triangles).
+
+  4. The end of file contains the buffer with point coordinates at
+     lines or triangles vertexes. The size of buffer (the number of
+     integer) is SIZE.
+
+   Each font file can be compressed by gzip.
+
+   Note: the closing contour line  is done automatically (so the last
+segment may be absent). For starting new contour use a point with
+coordinates `{0x3fff, 0x3fff}'.
+
+
+File: mathgl_en.info,  Node: mglColor class,  Next: mglPoint class,  Prev: mglFont class,  Up: Other classes
+
+7.4 mglColor class
+==================
+
+Structure for working with colors. This structure is defined in
+`#include <mgl/mgl.h>'.
+
+   There are two ways to set the color in MathGL. First one is using of
+float values of red, green and blue channels for precise color
+definition. The second way is the using of character id. There are a
+set of characters specifying frequently used colors. Normally capital
+letter gives more dark color than lowercase one. *Note Line styles::.
+
+ -- Parameter of mglVar: `float' r, g, b
+     Reg, green and blue component of color.
+
+ -- Method on mglColor: `' mglColor (`float' R, `float' G, `float' B)
+     Constructor sets the color by float values of Red, Green and Blue
+     channels.
+
+ -- Method on mglColor: `' mglColor (`char' c=`'k'')
+     Constructor sets the color from character id. The black color is
+     used by default.
+
+ -- Method on mglColor: `void' Set (`float' R, `float' G, `float' B)
+     Sets color from values of Red, Green and Blue channels. This
+     values should be in interval [0,1].
+
+ -- Method on mglColor: `void' Set (`mglColor' c, `float' bright=`1')
+     Sets color as "lighted" version of color C.
+
+ -- Method on mglColor: `void' Set (`char' p)
+     Sets color from symbolic id.
+
+ -- Method on mglColor: `bool' Valid ()
+     Checks correctness of the color.
+
+ -- Method on mglColor: `float' Norm ()
+     Gets maximal of spectral component.
+
+ -- Method on mglColor: `bool' operator== (`const mglColor &'c)
+     Compare with another color
+
+ -- Library Function: inline mglColor operator+ (`const mglColor &'a,
+          `const mglColor &'b)
+     Adds colors by its RGB values.
+
+ -- Library Function: inline mglColor operator- (`const mglColor &'a,
+          `const mglColor &'b)
+     Subtracts colors by its RGB values.
+
+ -- Library Function: inline mglColor operator* (`const mglColor &'a,
+          `float' b)
+     Multiplies color by number.
+
+ -- Library Function: inline mglColor operator* (`float' a, `const
+          mglColor &'b)
+     Multiplies color by number.
+
+ -- Library Function: inline mglColor operator/ (`const mglColor &'a,
+          `float' b)
+     Divide color by number.
+
+ -- Library Function: inline mglColor operator! (`const mglColor &'a)
+     Return inverted color.
+
+
+File: mathgl_en.info,  Node: mglPoint class,  Next: mglArg class,  Prev: mglColor class,  Up: Other classes
+
+7.5 mglPoint class
+==================
+
+Structure describes point in space. This structure is defined in
+`#include <mgl/mgl.h>'
+
+ -- Parameter of mglVar: `float' x, y, z
+     Point coordinates. By default all values are zero.
+
+ -- Library Function: inline mglPoint operator+ (`const mglPoint &'a,
+          `const mglPoint &'b)
+     Point of summation (summation of vectors).
+
+ -- Library Function: inline mglPoint operator- (`const mglPoint &'a,
+          `const mglPoint &'b)
+     Point of difference (difference of vectors).
+
+ -- Library Function: inline mglPoint operator* (`float' a, `const
+          mglPoint &'b)
+     Multiplies (scale) points by number.
+
+ -- Library Function: inline mglPoint operator* (`const mglPoint &'a,
+          `float' b)
+     Multiplies (scale) points by number.
+
+ -- Library Function: inline mglPoint operator/ (`const mglPoint &'a,
+          `float' b)
+     Multiplies (scale) points by number 1/b.
+
+ -- Library Function: inline float operator- (`const mglPoint &'a,
+          `const mglPoint &'b)
+     Scalar product of vectors.
+
+ -- Library Function: inline mglPoint operator^ (`const mglPoint &'a,
+          `const mglPoint &'b)
+     Cross-product of vectors.
+
+ -- Library Function: inline mglPoint operator& (`const mglPoint &'a,
+          `const mglPoint &'b)
+     The part of A which is perpendicular to vector B.
+
+ -- Library Function: inline mglPoint operator| (`const mglPoint &'a,
+          `const mglPoint &'b)
+     The part of A which is parallel to vector B.
+
+ -- Library Function: inline mglPoint operator! (`const mglPoint &'a)
+     Return vector perpendicular to vector A.
+
+ -- Library Function: inline bool Norm (`const mglPoint &'a)
+     Return the norm |A|^2 of vector A.
+
+ -- Library Function: inline bool operator== (`const mglPoint &'a,
+          `const mglPoint &'b)
+     Return true if points are the same.
+
+ -- Library Function: inline bool operator!= (`const mglPoint &'a,
+          `const mglPoint &'b)
+     Return true if points are different.
+
+
+File: mathgl_en.info,  Node: mglVar class,  Next: mglCommand class,  Prev: mglArg class,  Up: Other classes
+
+7.6 mglVar class
+================
+
+Structure describes variable of type `mglData' and its name in MGL
+script. This structure is used by `mglParse' and is defined in
+`#include <mgl/mgl_parse.h>'.
+
+ -- Parameter of mglVar: `mglData' d
+     Data itself
+
+ -- Parameter of mglVar: `wchar_t' s[256]
+     Data name
+
+ -- Parameter of mglVar: `void *' o
+     Pointer to external object for function FUNC.
+
+ -- Parameter of mglVar: `mglVar *' next
+     Pointer to next instance in list
+
+ -- Parameter of mglVar: `mglVar *' prev
+     Pointer to prev instance in list
+
+ -- Parameter of mglVar: `bool' temp
+     Flag for temporar variable. Temporal variables will be destroyed
+     after script execution.
+
+ -- Parameter of mglVar: `void (*' func `)(void *)'
+     Callback function for destroying non-temporal variable.
+
+ -- Method on mglVar: `void' MoveAfter (`mglVar *'var)
+     Move variable after VAR and copy `func' from `var' (if `func' is
+     not 0)
+
+
+File: mathgl_en.info,  Node: mglCommand class,  Prev: mglVar class,  Up: Other classes
+
+7.7 mglCommand class
+====================
+
+Structure describes MGL command, its name, short description,
+executable and export functions. The structure is used by `mglParse'
+and is defined in `#include <mgl/mgl_parse.h>'.
+
+ -- Parameter of mglCommand: `const wchar_t *' name
+     Name of command.
+
+ -- Parameter of mglCommand: `const wchar_t *' desc
+     Short command description (can be NULL).
+
+ -- Parameter of mglCommand: `const wchar_t *' form
+     Format of command arguments (can be NULL).
+
+ -- Parameter of mglCommand: `int (*' exec `)(mglGraph *gr, long n,
+          mglArg *a, int k[10])const wchar_t *'
+     Function for executing (plotting) the command using grapher GR and
+     having N-th arguments A. Function must return 0 if all is OK; or 1
+     if arguments are wrong.
+
+ -- Parameter of mglCommand: `void (*' save `)(wchar_t out[1024], long
+          n, mglArg *a, int k[10])const wchar_t *'
+     Function for exporting in C++ (can be NULL).
+
+
+File: mathgl_en.info,  Node: mglArg class,  Next: mglVar class,  Prev: mglPoint class,  Up: Other classes
+
+7.8 mglArg class
+================
+
+Structure describes arguments of functions in the stucture
+`mglCommand'. It is defined in `#include <mgl/mgl_parse.h>'.
+
+ -- Parameter of mglArg: `int' type
+     Type of argument: 0-data, 1-string, 2-number.
+
+ -- Parameter of mglArg: `mglData *' d
+     Pointer to data (used if type=0).
+
+ -- Parameter of mglArg: `wchar_t' w[2048]
+     String with parameters (used if type=1 or if type=0 as variable
+     name).
+
+ -- Parameter of mglArg: `char' s[2048]
+     String with parameters (used if type=1).
+
+ -- Parameter of mglArg: `float' v
+     Numerical value (used if type==2)
+
+
+File: mathgl_en.info,  Node: MGL interface,  Next: Samples,  Prev: Other classes,  Up: Top
+
+8 MGL language
+**************
+
+MathGL library supports the simplest scripts for data handling and
+plotting. These scripts can be used independently (with the help of
+UDAV, mgl2png, mgl2eps, mgl2svg programs and others, *note Utilities::)
+or in the frame of the library using.
+
+   MGL script language is rather simple. Each string is a command.
+First word of string is the name of command. Other words are command
+arguments. Command may have up to 1000 arguments (at least for now).
+Words are separated from each other by space or tabulation symbol. The
+upper or lower case of words is sufficient, i.e. variables A and A are
+different variables. Symbol `#' starts the comment (all characters
+after # will be ignored). The exception is situation when `#' is a part
+of some string. Also options can be specified after symbol `;' (*note
+Command options (MGL)::). Symbol `:' starts new command (like new line
+character) if it is not placed inside a string or inside brackets.
+
+   If string contain references to external parameters (substrings
+`$0', `$1' ... `$9') or definitions (substrings `$a', `$b' ... `$z')
+then before execution the values of parameter/definition will be
+substituted instead of reference. It allows to use the same MGL script
+for different parameters (filenames, paths, condition and so on).
+
+   Argument can be a string, a variable name or a number.
+   * The string is any symbols between ordinary marks `''.
+
+   * Usually variable have a name which is arbitrary combination of
+     symbols (except spaces and `'') started from a letter and with
+     length less than 64. A temporary array can be used as variable:
+        * sub-arrays (like in *note subdata:: command) as command
+          argument. For example, `a(1)' or `a(1,:)' or `a(1,:,:)' is
+          second row, `a(:,2)' or `a(:,2,:)' is third column,
+          `a(:,:,0)' is first slice and so on. Also you can extract a
+          part of array from m-th to n-th element by code `a(m:n,:,:)'
+          or just `a(m:n)'.
+
+        * any column combinations defined by formulas, like
+          `a('n*w^2/exp(t)')' if names for data columns was specified
+          (by *note idset:: command or in the file at string started
+          with `##').
+
+        * any expression (without spaces) of existed variables produce
+          temporary variable. For example, `sqrt(dat(:,5)+1)' will
+          produce temporary variable with data values equal to
+          `tmp[i,j] = sqrt(dat[i,5,j]+1)'.
+
+        * temporary variable of higher dimensions by help of []. For
+          example, `[1,2,3]' will produce a temporary vector of 3
+          elements {1, 2, 3}; `[[11,12],[21,22]]' will produce matrix
+          2*2 and so on. Here you can join even an arrays of the same
+          dimensions by construction like `[v1,v2,...,vn]'.
+
+        * result of code for making new data (*note Make another data
+          (MGL)::) inside {}. For example, `{sum dat 'x'}' produce
+          temporary variable which contain result of summation of DAT
+          along direction 'x'. This is the same array TMP as produced
+          by command `sum tmp dat 'x''. You can use nested
+          constructions, like `{sum {max dat 'z'} 'x'}'.
+     Temporary variables can not be used as 1st argument for commands
+     which create (return) the data (like `new', `read', `hist' and so
+     on).
+
+   * Special names `nan=#QNAN, pi=3.1415926..., on=1, off=0, :=-1' are
+     treated as number if they were not redefined by user. Variables
+     with suffixes are treated as numbers (*note Suffixes::). Names
+     defined by *note define:: command are treated as number. Also
+     results of formulas with sizes 1x1x1 are treated as number (for
+     example, `pi/dat.nx').
+   Before the first using all variables must be defined with the help
+of commands, like, *note new::, *note var::, *note list::, *note
+copy::, *note read::, *note hist::, *note sum:: and so on (*note Data
+create (MGL):: and *note Make another data (MGL)::).
+
+   Command may have several set of possible arguments (for example,
+`plot ydat' and `plot xdat ydat'). All command arguments for a selected
+set must be specified. However, some arguments can have default values.
+These argument are printed in [], like `plot ydat ['stl'='' zval=nan]'.
+At this, the record `[arg1 arg2 arg3 ...]' means `[arg1 [arg2 [arg3
+...]]]', i.e. you can omit only tailing arguments if you agree with its
+default values. For example, `plot ydat '' 1' or `plot ydat ''' is
+correct, but `plot ydat 1' is incorrect (argument `'stl'' is missed).
+
+   All MGL commands can be divided on several groups. I will use the
+following notation for a command description: command names are bold,
+strings are denoted by commas, variable names are italic, numbers are
+typewriter. Optional arguments are placed in square brackets and
+default values for them are shown. Detailed description of color, line
+styles (*note Line styles::), color schemes (*note Color scheme::),
+font types, TeX-like symbols (*note Font styles::) and formulas (*note
+Textual formulas::) can be found in corresponding section.
+
+* Menu:
+
+* Graphics setup (MGL)::
+* Axis settings (MGL)::
+* Transformation matrix (MGL)::
+* Export to file (MGL)::
+* Primitives drawing (MGL)::
+* Text printing (MGL)::
+* Axis and Colorbar (MGL)::
+* Legend (MGL)::
+* 1D plotting (MGL)::
+* 2D plotting (MGL)::
+* 3D plotting (MGL)::
+* Dual plotting (MGL)::
+* Vector fields (MGL)::
+* Other plotting (MGL)::
+* Nonlinear fitting (MGL)::
+* Data create (MGL)::
+* Data filling (MGL)::
+* Rearrange data (MGL)::
+* File I/O (MGL)::
+* Make another data (MGL)::
+* Change data (MGL)::
+* Operators (MGL)::
+* Program flow (MGL)::
+* Command options (MGL)::
+* Suffixes::
+* Utilities::
+
+
+File: mathgl_en.info,  Node: Graphics setup (MGL),  Next: Axis settings (MGL),  Up: MGL interface
+
+8.1 Graphics setup (MGL)
+========================
+
+Coomands in this group influences on overall graphics appearance. So
+all of them should be placed _before_ any actual plotting commands.
+
+* Menu:
+
+* Transparency (MGL)::
+* Lighting (MGL)::
+* Fog (MGL)::
+* Default sizes (MGL)::
+* Zooming (MGL)::
+* Cutting (MGL)::
+* Other settings (MGL)::
+
+
+File: mathgl_en.info,  Node: Transparency (MGL),  Next: Lighting (MGL),  Up: Graphics setup (MGL)
+
+8.1.1 Transparency (MGL)
+------------------------
+
+There are several commands for setup transparency. The general command
+is *note alpha:: which switch on/off the transparency for overall plot.
+It influence only for graphics which created after *note alpha:: call.
+Command *note alphadef:: specify the default value of alpha-channel.
+You may switch off transparency of selected plot by command *note
+transparent::. Finally, command *note transptype:: set the kind of
+transparency. *Note Transparent surface sample::, for sample code and
+picture.
+
+ -- MGL command: alpha `[val=on]'
+     Sets the transparency on/off. It is recommended to call this
+     command before any plotting command. Default value is `off'. Use
+     `transparent off' in particular plot to disable its transparency.
+   
+ -- MGL command: alphadef `val'
+     Default value of alpha channel (transparency) for all plotting
+     commands. Initial value is 0.5.
+   
+ -- MGL command: transparent `val'
+     Temporary switches transparency on/off for the plot.
+   
+ -- MGL command: transptype `val'
+     This command set the transparency type. Normal transparency (`0')
+     - below things is less visible than upper ones. Glass-like
+     transparency (`1') - below and upper things are commutable and
+     just decrease intensity of light by RGB channel. Lamp-like
+     transparency (`2') - below and upper things are commutable and are
+     the source of some additional light. I recommend to set `alphadef
+     0.3' or less for lamp-like transparency. *Note Normal
+     transparency::, *note Glass-like transparency::, *note Lamp-like
+     transparency::.
+
+
+File: mathgl_en.info,  Node: Lighting (MGL),  Next: Fog (MGL),  Prev: Transparency (MGL),  Up: Graphics setup (MGL)
+
+8.1.2 Lighting (MGL)
+--------------------
+
+There are several commands for setup lighting. The general command is
+*note light:: which switch on/off the lighting for overall plot.
+Generally MathGL support up to 10 independent light sources. The
+position, color, brightness of each light source can be set separately.
+By default only one light source is active. It is source number `0'
+with white color, located at top of the plot.
+
+ -- MGL command: light `[val=on]'
+     Sets the using of light on/off for overall plot. It is recommended
+     to call this command before any plotting command. Default value is
+     lightning off.
+
+ -- MGL command: light `num val'
+     Switch on/off NUM-th light source separately.
+
+ -- MGL command: light `num xpos ypos zpos' ['col'='w' `br=0.5']
+     The command adds a light source with identification NUM at
+     position {XPOS, YPOS, ZPOS}. The color of light is COL (white by
+     default). The brightness of light is BR which must be in range
+     [0,1].
+
+ -- MGL command: ambient `val'
+     Sets the brightness of ambient light. The value should be in range
+     [0,1]. Initial value is 0.5.
+
+
+File: mathgl_en.info,  Node: Fog (MGL),  Next: Default sizes (MGL),  Prev: Lighting (MGL),  Up: Graphics setup (MGL)
+
+8.1.3 Fog (MGL)
+---------------
+
+ -- MGL command: fog `val [dz=0.25]'
+     Command imitate a fog in the plot. Fog start from relative
+     distance DZ from view point and its density growths exponentially
+     in depth. So that the fog influence is determined by law
+     ~1-exp(-d*z). Here _z_ is normalized to 1 depth of the plot. If
+     value VAL=`0' then the fog is absent. *Note Surface in fog
+     sample::, for sample code and picture.
+
+
+File: mathgl_en.info,  Node: Default sizes (MGL),  Next: Zooming (MGL),  Prev: Fog (MGL),  Up: Graphics setup (MGL)
+
+8.1.4 Default sizes (MGL)
+-------------------------
+
+These commands control the default (initial) values for most graphics
+parameters including sizes of markers, arrows, linewidth and so on. As
+any other settings these ones will influence only on plots created
+after the settings change.
+
+ -- MGL command: barwidth `val'
+     Sets relative width of rectangles in `bars, barh, boxplot'.
+     Default value is `0.7'.
+
+ -- MGL command: marksize `val'
+     The size of marks. Default value is `1'.
+
+ -- MGL command: arrowsize `val'
+     The size of arrows for lines and curves. Default value is `1'.
+
+ -- MGL command: linewidth `val'
+     The variable define the base width for all lines. The value <1 is
+     ignored. Increase of this variables is actual for large bitmap
+     pictures. Default value is `1'.
+
+ -- MGL command: ticklen `val' [`stt=1']
+     The relative length of axis ticks. Default value is `0.1'.
+     Parameter STT>0 set relative length of subticks which is in
+     `sqrt(1+stt)' times smaller.
+
+ -- MGL command: tickstl 'stl' ['sub'="]
+     The line style of axis ticks (STL) and subticks (SUB). If STL="
+     then default style is used (`k' or `w' depending on transparency
+     type). If SUB=" then ticks style is used (i.e. STL).
+
+
+File: mathgl_en.info,  Node: Zooming (MGL),  Next: Cutting (MGL),  Prev: Default sizes (MGL),  Up: Graphics setup (MGL)
+
+8.1.5 Zooming (MGL)
+-------------------
+
+These commands control the overall zooming of the picture or the
+sub-picture. Normally you can use these variables and commands for
+removing "white" spaces around a plot.
+
+ -- MGL command: plotfactor `val'
+     The factor of plot size. It is not recommended to set it lower
+     then 1.6. This is some analogue of command *note zoom:: but
+     applied not to overall image but for each *note inplot::. Use
+     negative value to enable automatic *note plotfactor:: selection.
+
+ -- MGL command: zoom `x1 y1 x2 y2'
+     The command changes the scale of graphics that correspond to zoom
+     in/out of the picture. After command call the current plot will be
+     cleared and further the picture will contain plotting from its
+     part [x1,x2]*[y1,y2]. Here picture coordinates X1, X2, Y1, Y2
+     changes from 0 to 1. Use `zoom 0 0 1 1' to return default view.
+
+
+File: mathgl_en.info,  Node: Cutting (MGL),  Next: Other settings (MGL),  Prev: Zooming (MGL),  Up: Graphics setup (MGL)
+
+8.1.6 Cutting (MGL)
+-------------------
+
+These commands set the condition when the points are excluded (cutted)
+from the drawing. Note, that a point with `nan' value(s) of coordinate
+or amplitude will be automatically excluded from the drawing.
+
+ -- MGL command: cut `val'
+     Determines how points outside bounding box are drawn. If it is
+     `on' then points are excluded from plot (it is default) otherwise
+     the points are projected to edges of bounding box.
+
+ -- MGL command: cut `x1 y1 z1 x2 y2 z2'
+     Lower and upper edge of the box in which never points are drawn.
+     If both edges are the same (the variables are equal) then the
+     cutting box is empty. *Note CutMinMax sample::, for sample code
+     and picture.
+
+ -- MGL command: cut 'cond'
+     Command set the cutting off condition by formula COND. This
+     condition determine will point be plotted or not. If value of
+     formula is nonzero then point is omitted, otherwise it plotted.
+     Set argument as `''' to disable cutting off condition. *Note
+     CutOff sample::, for sample code and picture.
+
+
+File: mathgl_en.info,  Node: Other settings (MGL),  Prev: Cutting (MGL),  Up: Graphics setup (MGL)
+
+8.1.7 Other settings (MGL)
+--------------------------
+
+ -- MGL command: font 'fnt' [`val=6']
+     Font style for text and labels (see text). Initial style is
+     'fnt'='rC' give Roman font with centering. Parameter `val' sets
+     the size of font for tick and axis labels. Default font size of
+     axis labels is 1.4 times large than for tick labels. For more
+     detail, *note Font styles::.
+
+ -- MGL command: rotatetext `val'
+     Set to use or not text rotation along axis. Initial value is `on'.
+
+ -- MGL command: palette 'colors'
+     Set the palette as selected colors. Default value is
+     `'Hbgrcmyhlnqeup''. The palette is used mostly in 1D plots for
+     curves which styles are not specified.
+
+ -- MGL command: meshnum `num'
+     Sets approximate number of lines in *note mesh::, *note fall::,
+     *note grid:: and also the number of hachures in *note vect::,
+     *note vectc::, *note dew:: and the number of cells in *note
+     cloud::. By default (=0) it draws all lines/hachures/cells.
+
+ -- MGL command: axialdir 'dir'
+     Set direction around which curve rotated in *note axial::, *note
+     torus::. Default value is 'z'.
+
+
+File: mathgl_en.info,  Node: Axis settings (MGL),  Next: Transformation matrix (MGL),  Prev: Graphics setup (MGL),  Up: MGL interface
+
+8.2 Axis settings (MGL)
+=======================
+
+These large set of commands control how the axis and ticks will be
+drawn. Note that there is 3-step transformation of data coordinates are
+performed. Firstly, coordinates are projected and cutting is applied
+(*note Cutting (MGL)::), after it transformation formulas are applied,
+and finally the data was normalized in bounding box.
+
+ -- MGL command: axis `x1 y1 x2 y2'
+ -- MGL command: axis `x1 y1 z1 x2 y2 z2'
+ -- MGL command: ranges `x1 x2 y1 y2 [z1=0 z2=0]'
+     Sets the ranges of coordinates changing. Also it sets the range
+     for coloring (analogous to `caxis z1 z2'). Initial ranges are [-1,
+     1].
+
+ -- MGL command: axis 'fx' 'fy' ['fz'=" 'fa'="]
+     Sets the transformation formulas for curvilinear coordinates. Each
+     string should contain mathematical expression for real coordinate
+     depending on internal coordinates `x', `y', `z' and `a' or `c' for
+     colorbar. For example, the cylindrical coordinates are introduced
+     as `axis 'x*cos(y)' 'x*sin(y)' 'z''. For removing of formulas the
+     corresponding parameter should be `'''. The using of
+     transformation formulas will slightly slowing the program, i.e.
+     `axis '' '' ''' is faster than `axis '1*x' '1*y' '1*z''. Initially
+     all formulas are absent (Cartesian coordinates are used). For more
+     details about functions and formulas, *note Textual formulas::.
+
+ -- MGL command: axis `how'
+     Sets one of the predefined transformation formulas for curvilinear
+     coordinate. Paramater HOW define the coordinates: `0' - Cartesian
+     coordinates (no transformation); `1' - Polar coordiantes
+     x_n=x*cos(y),y_n=x*sin(y), z_n=z; `2' - Spherical coordinates
+     x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y); `3' -
+     Parabolic coordinates x_n=x*y, y_n=(x*x-y*y)/2, z_n=z; `4' -
+     Paraboloidal coordinates x_n=(x*x-y*y)*cos(z)/2,
+     y_n=(x*x-y*y)*sin(z)/2, z_n=x*y; `5' - Oblate coordinates
+     x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z),
+     z_n=sinh(x)*sin(y); `6' - Prolate coordinates
+     x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z),
+     z_n=cosh(x)*cos(y); `7' - Elliptic coordinates x_n=cosh(x)*cos(y),
+     y_n=sinh(x)*sin(y), z_n=z; `8' - Toroidal coordinates
+     x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)),
+     y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y));
+     `9' - Bispherical coordinates x_n=sin(y)*cos(z)/(cosh(x)-cos(y)),
+     y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y));
+     `10' - Bipolar coordinates x_n=sinh(x)/(cosh(x)-cos(y)),
+     y_n=sin(y)/(cosh(x)-cos(y)), z_n=z.
+
+ -- MGL command: caxis `z1 z2'
+     Sets the range for surface coloring. Initial range is [-1, 1].
+
+ -- MGL command: origin `x0 y0 [z0=nan]'
+     Center of axis cross section. If one of values is `nan' then
+     MathGL library try to select optimal axis position.
+
+ -- MGL command: ternary `val'
+     The command sets to draws Ternary plot. This special plot is for 3
+     dependent coordinates (components) A, B, C so that A+B+C=1. MathGL
+     uses only 2 independent coordinates A=x and B=y since it is enough
+     to plot everything. At this third coordinate z act as another
+     parameter to produce contour lines, surfaces and so on. *Note
+     Ternary plot sample::, for sample code and picture.
+
+ -- MGL command: xrange dat [`add=off fact=0']
+ -- MGL command: yrange dat [`add=off fact=0']
+ -- MGL command: zrange dat [`add=off fact=0']
+ -- MGL command: crange dat [`add=off fact=0']
+     Sets the range for x-,y-,z- coordinate or coloring as minimal and
+     maximal values of data DAT. Parameter `add=on' shows that the new
+     range will be joined to existed one (nut will not replace it).
+     Parameter FACT add additional range increase on value
+     (MAX-MIN)*FACT.
+
+ -- MGL command: xrange `x1 x2'
+ -- MGL command: yrange `x1 x2'
+ -- MGL command: zrange `x1 x2'
+ -- MGL command: crange `x1 x2'
+     Sets the range for x-,y-,z- coordinate or coloring. See also *note
+     axis::.
+
+ -- MGL command: xtick `val [sub=0 org=nan]'
+ -- MGL command: ytick `val [sub=0 org=nan]'
+ -- MGL command: ztick `val [sub=0 org=nan]'
+ -- MGL command: ctick `val'
+     Sets step for x-, y-, z-axis ticks or colorbar ticks (if VAL>0) or
+     it's number (if VAL<0) in corresponding direction. Zero value
+     VAL=0 sets logarithmic ticks. Parameter SUB sets the number of
+     sub-ticks. Parameter ORG set the starting points for ticks. If not
+     `org=nan' then the value from *note origin:: is used.
+
+ -- MGL command: xtick 'templ'
+ -- MGL command: ytick 'templ'
+ -- MGL command: ztick 'templ'
+ -- MGL command: ctick 'templ'
+     Sets the template for x-, y-, z-axis ticks or colorbar ticks. It
+     may contain TeX symbols also. If TEMPL=`''' then default template
+     is used (in simplest case it is `%.2g') with automatic detaching
+     of common multiplier or common component.
+
+ -- MGL command: xtick `val1' 'lbl1' [`val2' 'lbl2' ...]
+ -- MGL command: ytick `val1' 'lbl1' [`val2' 'lbl2' ...]
+ -- MGL command: ztick `val1' 'lbl1' [`val2' 'lbl2' ...]
+     Sets manual positions VAL1,VAL2,... and labels LBL1,LBL2,... for
+     ticks along x-, y-, z-axis. Labels may contain TeX symbols also.
+
+ -- MGL command: adjust ['dir'='xyzc']
+     Set the ticks step, number of sub-ticks and initial ticks position
+     to be the most human readable for the axis along direction(s) DIR.
+
+
+File: mathgl_en.info,  Node: Transformation matrix (MGL),  Next: Export to file (MGL),  Prev: Axis settings (MGL),  Up: MGL interface
+
+8.3 Transformation matrix (MGL)
+===============================
+
+These commands control how and where further plotting will be placed.
+There is a curtain order of calling of these commands for the better
+plot view. First one should be *note subplot:: or *note inplot:: for
+specifying the place. After it a *note rotate:: and *note aspect::. And
+finally any other plotting commands may be called. Alternatevely you
+can use *note columnplot:: for position plots in the column one by
+another without gap between plot axis (bounding boxes).
+
+ -- MGL command: subplot `nx ny m [dx=0 dy=0]'
+     Puts further plotting in a M-th cell of NX*NY grid of the whole
+     frame area. This command set off any aspects or rotations. So it
+     should be used first for creating the subplot. From the
+     aesthetical point of view it is not recommended to use this
+     command with different matrices in the same frame. The position of
+     the cell can be shifted from its default position by relative size
+     DX, DY.
+
+ -- MGL command: subplot `nx ny m' 'style'
+     The same as previous but space reserved for axis/colorbar is saved
+     only if STYLE contain: `L' or `<' - at left side, `R' or `>' - at
+     right side, `A' or `^' - at top side, `U' or `_' - at bottom side.
+
+ -- MGL command: inplot `x1 x2 y1 y2 [rel=off]'
+     Puts further plotting in some region of the whole frame surface.
+     This command allows one to create a plot in arbitrary place of the
+     screen. The position is defined by rectangular coordinates [X1,
+     X2]*[Y1, Y2]. The coordinates X1, X2, Y1, Y2 are normalized to
+     interval [0, 1]. If parameter REL=`on' then the relative position
+     to current *note subplot:: is used. This command set off any
+     aspects or rotations. So it should be used first for creating
+     subplot.
+
+ -- MGL command: columnplot `num ind [d=0]'
+     Puts further plotting in IND-th cell of column with NUM cells. The
+     position is relative to previous *note subplot:: call (or *note
+     inplot:: with `rel=off'). Parameter D set extra gap between cells.
+
+ -- MGL command: stickplot `num ind tet phi'
+     Puts further plotting in IND-th cell of stick with NUM cells. At
+     this, stick is rotated on angles TET, PHI. The position is
+     relative to previous *note subplot:: call (or *note inplot:: with
+     `rel=off').
+
+ -- MGL command: rotate `tetz tetx [tety=0]'
+     Rotates a further plotting relative to each axis (x, z, y)
+     consecutively on angles TETX, TETZ, TETY.
+
+ -- MGL command: rotate `tet x y z'
+     Rotates a further plotting around vector {x,y,z} on angle TET.
+
+ -- MGL command: aspect `ax ay [az=1]'
+     Defines aspect ratio for the plot. The viewable axes will be
+     related one to another as the ratio AX:AY:AZ. For the best effect
+     it should be used after *note rotate:: command.
+
+ -- MGL command: perspective `val'
+     Add (switch on) the perspective to plot. The parameter val ~
+     1/z_{eff} \in [0,1). By default (`val=0') the perspective is off.
+
+
+File: mathgl_en.info,  Node: Export to file (MGL),  Next: Primitives drawing (MGL),  Prev: Transformation matrix (MGL),  Up: MGL interface
+
+8.4 Export to file (MGL)
+========================
+
+ -- MGL command: write 'fname' [`solid=off']
+     Exports current picture/frame to file 'fname' (file type is
+     determined by extension). Solid (usually white) background will be
+     used if `solid=on'. If 'fname'=" then the file `frameNNNN.jpg' is
+     used, where `NNNN' is current frame id.
+
+ -- MGL command: setsize `w h'
+     Sets size of picture in pixels. This function call *must be*
+     placed before any plotting command because it completely remove
+     picture content. In some program the call of this function is
+     forbidden.
+
+
+File: mathgl_en.info,  Node: Primitives drawing (MGL),  Next: Text printing (MGL),  Prev: Export to file (MGL),  Up: MGL interface
+
+8.5 Primitives drawing
+======================
+
+These commands draw some simple objects like line, point, sphere, drop,
+cone and so on.
+
+ -- MGL command: clf
+     Clear the picture by removes all drawing from it. Does not change
+     transformation matrix.
+
+ -- MGL command: ball `x y' ['col'='r']
+ -- MGL command: ball `x y z' ['col'='r']
+     Draws a point (ball) at position {X, Y, Z} with color defined by
+     string COL.
+
+ -- MGL command: line `x1 y1 x2 y2' ['stl'="]
+ -- MGL command: line `x1 y1 z1 x2 y2 z2' ['stl'="]
+     Draws a geodesic line (straight line in Cartesian coordinates)
+     from point {X1,Y1,Z1} to {X2,Y2,Z2} using line style STL.
+
+ -- MGL command: curve `x1 y1 dx1 dy1 x2 y2 dx2 dy2' ['stl'="]
+ -- MGL command: curve `x1 y1 z1 dx1 dy1 dz1 x2 y2 z2 dx2 dy2 dz2'
+          ['stl'="]
+     Draws Bezier-like curve from point {X1,Y1,Z1} to {X2,Y2,Z2} using
+     line style STL. At this tangent is co-directed with {DX1,DY1,DZ1},
+     {DX2,DY2,DZ2} and proportional to its amplitude.
+
+ -- MGL command: facex `x0 y0 z0 wy wz' ['stl'=" `d1=0 d2=0']
+ -- MGL command: facey `x0 y0 z0 wx wz' ['stl'=" `d1=0 d2=0']
+ -- MGL command: facez `x0 y0 z0 wx wy' ['stl'=" `d1=0 d2=0']
+     Draws the solid rectangle (face) perpendicular to [x,y,z]-axis
+     correspondingly at position {X0, Y0, Z0} with color STL and with
+     widths WX, WY, WZ along corresponding directions. At this colors
+     can be the same for all vertexes or different if all 4 colors are
+     specified for each vertex. Parameters D1!=0, D2!=0 set additional
+     shift of the last vertex (i.e. to draw quadrangle).
+
+ -- MGL command: sphere `x0 y0 r' ['col'='r']
+ -- MGL command: sphere `x0 y0 z0 r' ['col'='r']
+     Draw the sphere with radius R and center at point {X0, Y0, Z0} and
+     color STL.
+
+ -- MGL command: drop `x0 y0 dx dy r' ['col'='b' `sh=1 asp=1']
+ -- MGL command: drop `x0 y0 z0 dx dy dz r' ['col'='b' `sh=1 asp=1']
+     Draw the drop with radius R at point {X0,Y0,Z0} elongated in
+     direction {DX,DY,DZ} and with color COL. Parameter SH set the
+     degree of drop oblongness: `0' is sphere, `1' is maximally
+     oblongness drop. Parameter ASP set relative width of the drop
+     (this is analogue of "ellipticity" for the sphere). *Note Drops
+     sample::, for sample code and picture.
+
+ -- MGL command: cone `x1 y1 z1 x2 y2 z2 r1' [`r2=-1' 'stl'="
+          `edge=off']
+     Draw tube (or truncated cone if EDGE=`off') between points
+     {X1,Y1,Z1}, {X2,Y2,Z2} with radiuses at the edges R1, R2. If R2<0
+     then it is supposed that R2=R1. The cone color is defined by
+     string STL.
+
+ -- MGL command: rect `x1 y1 x2 y2' ['st'="]
+ -- MGL command: rect `x1 y1 z1 x2 y2 z2' ['st'="]
+     Draw rectangle from point {X1,Y1,Z1} to point {X2,Y2,Z2} using
+     colors STL. If STL have 4 or more colors then it defines colors
+     for each rectangle vertex (useful for making gradients, like
+     `wwrr') else first color is used for whole rectangle.
+
+
+File: mathgl_en.info,  Node: Text printing (MGL),  Next: Axis and Colorbar (MGL),  Prev: Primitives drawing (MGL),  Up: MGL interface
+
+8.6 Text printing (MGL)
+=======================
+
+These commands draw the text. There are commands for drawing text in
+arbitrary place, in arbitrary direction and along arbitrary curve. It
+is possible to use arbitrary font-faces and parse many TeX commands.
+The Unicode text is supported. So sometimes you need to specify locale.
+The `size' argument control the size of text: if positive it give the
+value, if negative it give the value relative to defined by `font'
+command. *Note Font styles::.
+
+ -- MGL command: text `x y' 'text' ['fnt'=" `size=-1.4']
+ -- MGL command: text `x y z' 'text' ['fnt'=" `size=-1.4']
+     Draws unrotated text string TEXT at position {X,Y,Z} with
+     specified style FNT and SIZE. By default parameters from `font'
+     command are used.
+
+ -- MGL command: text `x y dx dy' 'text' [`size=-1.4']
+ -- MGL command: text `x y z dx dy dz' 'text' [`size=-1.4']
+     The command plots the string TEXT at position {X,Y,Z} along
+     direction {DX,DY,DZ} with specified style FNT and SIZE. By default
+     parameters from `font' command are used.
+
+ -- MGL command: text ydat 'text' ['fnt'=" `size=-1 zval=nan']
+ -- MGL command: text xdat ydat 'text' ['fnt'=" `size=-1 zval=nan']
+ -- MGL command: text xdat ydat zdat 'text' ['fnt'=" `size=-1']
+     The command draws TEXT along the curve between points {XDAT[i],
+     YDAT[i], ZDAT[i]} by font style FNT and with size SIZE. The string
+     FNT may contain symbols `t' for printing the text under the curve
+     (default), or `T' for printing the text above the curve. The sizes
+     of 1st dimension must be equal for all arrays
+     XDAT.NX=YDAT.NX=ZDAT.NX. If array XDAT is not specified then its
+     an automatic array is used with values equidistantly distributed
+     along x. If array ZDAT is not specified then Z[i] = ZVAL is used.
+     *Note Text sample::, for sample code and picture.
+
+ -- MGL command: title 'text' ['fnt'=" `size=-2']
+     Print string TEXT as title of the picture (at the top of the
+     picture). Can be used at any place (even inside *note subplot::).
+
+ -- MGL command: fgets `x y' 'fname' [`n=0' 'fnt'=" `size=-1.4']
+ -- MGL command: fgets `x y z' 'fname' [`n=0' 'fnt'=" `size=-1.4']
+     Draws unrotated N-th line of file FNAME at position {X,Y,Z} with
+     specified SIZE. By default parameters from *note font:: command
+     are used.
+
+
+File: mathgl_en.info,  Node: Axis and Colorbar (MGL),  Next: Legend (MGL),  Prev: Text printing (MGL),  Up: MGL interface
+
+8.7 Axis and Colorbar (MGL)
+===========================
+
+These commands draw the "things for measuring", like axis with ticks,
+colorbar with ticks, grid along axis, bounding box and labels for axis.
+For more information *note Axis settings (MGL)::.
+
+ -- MGL command: axis ['dir'='xyz' `adjust=off']
+     Draws axes with ticks (*note Axis settings (MGL)::) in directions
+     determined by string parameter DIR.If string contain the symbol
+     `_' then tick labels are not printed. Font for ticks labels is
+     determined by command *note font::. Ticks will be automatically
+     adjusted if ADJUST=`on' (by call of `adjust 'dir'').
+
+ -- MGL command: colorbar ['sch'=" `pos=0']
+     Draws colorbar with color scheme SCH (current scheme if `sch=''')
+     at edge of plot. Parameter POS specifies the position of colorbar:
+     `0' - at right (default), `1' - at left, `2' - at top, `3' - at
+     bottom. If string SCH contains `<>^_' then the parameter POS is
+     defined as: `pos=0' for `>' (right), `pos=1' for `<' (left),
+     `pos=2' for `^' (top), `pos=3' for `_' (bottom). If string have
+     `A' then absolute (relative to picture) coordinates is used. *Note
+     Dens sample::, for sample code and picture.
+
+ -- MGL command: colorbar vdat ['sch'=" `pos=0']
+     The same as previous but with sharp colors SCH (current palette if
+     `sch=""') for values V. *Note ContD sample::, for sample code and
+     picture.
+
+ -- MGL command: colorbar 'sch' `pos x y w h'
+     The same as first one but at arbitrary position of subplot {X, Y}
+     (supposed to be in range [0,1]). Parameters W, H set the relative
+     width and height of the colorbar.
+
+ -- MGL command: grid ['dir'='xyz' 'pen'='B']
+     Draws grid lines perpendicular to direction determined by string
+     parameter DIR. The step of grid lines is the same as tick step for
+     an `axis'. The style of lines is determined by PEN parameter.
+
+ -- MGL command: box ['stl'='k' `ticks=on']
+     Draws bounding box outside the plotting volume with line style
+     'stl'. If `ticks=on' then ticks are drawn with current axis
+     setting.
+
+ -- MGL command: xlabel 'text' [`pos=0 size=-1.4 shift=0']
+ -- MGL command: ylabel 'text' [`pos=0 size=-1.4 shift=0']
+ -- MGL command: zlabel 'text' [`pos=0 size=-1.4 shift=0']
+ -- MGL command: tlabel 'text' [`pos=0 size=-1.4 shift=0']
+     Prints the label TEXT for x-,y-,z-,t-axis (here `t' is "ternary"
+     axis t=1-x-y). The position of label is determined by POS
+     parameter. If POS=0 then label is printed at the center of axis.
+     If POS>0 then label is printed at the maximum of axis (default).
+     If POS<0 then label is printed at the minimum of axis. The font
+     size is 1.4 times larger than the one for ticks `font'. Parameter
+     `shift' specify additional shifting of the label. *Note Text
+     printing (MGL)::.
+
+
+File: mathgl_en.info,  Node: Legend (MGL),  Next: 1D plotting (MGL),  Prev: Axis and Colorbar (MGL),  Up: MGL interface
+
+8.8 Legend (MGL)
+================
+
+These commands draw legend to the graph (useful for *note 1D plotting
+(MGL)::). Legend entry is a pair of strings: one for style of the line,
+another one with description text (with included LaTeX parsing). The
+array of string are accumulated first to the internal arrays (by
+command *note addlegend::) and are plotted later. The position of the
+legend can be selected automatic or manually. Parameters FNT and SIZE
+specify the font style and size. Parameter LLEN set the relative width
+of the line sample and the text indent (default value is 0.1). If line
+style string for entry is empty then the corresponding text is printed
+without indent. If string contains `A' then legend coordinates set
+position in the picture. *Note Legend sample::, for sample code and
+picture.
+
+ -- MGL command: legend [`pos=3' 'fnt'='rL' `size=-1 llen=0.1']
+     Draws legend of accumulated legend entries by font FNT with
+     specified SIZE. Parameter POS sets the position of the legend: `0'
+     is bottom left corner, `1' is bottom right corner, `2' is top left
+     corner, `3' is top right corner (is default).
+
+ -- MGL command: legend `x y' ['fnt'='rL' `size=-1 llen=0.1']
+     Draws legend of accumulated legend entries by font FNT with SIZE.
+     Position of legend in the current subplot is determined by
+     parameter X, Y which supposed to be normalized to interval [0,1].
+
+ -- MGL command: addlegend 'text' 'stl'
+     Adds string TEXT to internal legend accumulator. The style of
+     described line and mark is specified in string STL (*note Line
+     styles::). Maximal number of entries is 100.
+
+ -- MGL command: clearlegend
+     Clears saved legend strings.
+
+ -- MGL command: legendbox `val'
+     Switches on/off the drawing of a box near legend. By default, the
+     box is drawn.
+
+ -- MGL command: legendmarks `val'
+     Set the number of marks in the legend. By default 1 mark is used.
+
+
+File: mathgl_en.info,  Node: 1D plotting (MGL),  Next: 2D plotting (MGL),  Prev: Legend (MGL),  Up: MGL interface
+
+8.9 1D plotting (MGL)
+=====================
+
+These commands perform plotting of 1D data. 1D means that data depended
+from only 1 parameter like parametric curve {x(i),y(i),z(i)}, i=1...n.
+There are 5 generally different types of data representations: simple
+line plot (*note plot::), line plot with filling under it (*note
+area::), stairs plot (*note step::), bar plot (*note bars::, *note
+barh::) and vertical lines (*note stem::). Each type of plotting has
+similar interface. Most of plotting type has similar interface. There
+are 3D version and two 2D versions. One of last requires single array.
+The parameters of line and marks are specified by the string argument.
+If the string parameter is NULL then solid line with color from palette
+is used (*note Line styles::). Also there are some special 1d plots
+having slightly different interface: surface of curve rotation (*note
+torus::), chart (*note chart::) and error boxes (*note error::), marks
+with variable size (*note mark::), tubes (*note tube::) and so on.
+*Note 1D plot sample::, for sample code and picture.
+
+   The plots are drawn for each row if one of the data is the matrix.
+By any case the sizes of 1st dimension *must be equal* for all arrays
+XDAT.NX=YDAT.NX=ZDAT.NX. If array XDAT is not specified then its an
+automatic array is used with values equidistantly distributed along x.
+If array ZDAT is not specified then ZDAT[i] = ZVAL is used (the default
+is at the bottom of the bounding box). String STL specifies the color
+and style of line and marks (*note Line styles::). By default
+(`stl=''') solid line with color from palette is used (*note Line
+styles::).
+
+ -- MGL command: plot ydat ['stl'=" `zval=nan']
+ -- MGL command: plot xdat ydat ['stl'=" `zval=nan']
+ -- MGL command: plot xdat ydat zdat ['stl'="]
+     Draws continuous lines between points {XDAT[i], YDAT[i], ZDAT[i]}.
+     See also *note area::, *note step::, *note stem::, *note tube::,
+     *note mark::, *note error::, *note belt::, *note tens::. *Note
+     Plot sample::, for sample code and picture.
+
+ -- MGL command: radar adat ['stl'=" `r=-1']
+     Draws radar chart which is continuous lines between points located
+     on an radial lines (like plot in Polar coordinates). The plots are
+     drawn for each row if one of the data is the matrix. Parameter R
+     set the additional shift of data (i.e. the data ADAT+R is used
+     instead of ADAT). If `r<0' then `r=max(0, -min(adat)'. String PEN
+     specifies the color and style of line and marks (*note Line
+     styles::). By default (`stl=""') solid line with color from
+     palette is used (*note Line styles::). If PEN containt `#' symbol
+     then "grid" (radial lines and circle for R) is drawn See also
+     *note plot::. *Note Radar sample::, for sample code and picture.
+
+ -- MGL command: tens ydat cdat ['stl'=" `zval=nan']
+ -- MGL command: tens xdat ydat cdat ['stl'=" `zval=nan']
+ -- MGL command: tens xdat ydat zdat cdat ['stl'="]
+     Draws continuous lines between points {XDAT[i], YDAT[i], ZDAT[i]}
+     with color defined by CDAT[i] (look like tension plot). See also
+     *note plot::, *note mesh::, *note fall::. *Note Tens sample::, for
+     sample code and picture.
+
+ -- MGL command: area ydat ['stl'=" `zval=nan']
+ -- MGL command: area xdat ydat ['stl'=" `zval=nan']
+ -- MGL command: area xdat ydat zdat ['stl'="]
+     Draws continuous lines between points {XDAT[i], YDAT[i], ZDAT[i]}
+     and fills it down to axis (to axis plane in 3D). You can use
+     gradient filling if number of specified colors is equal to
+     2*number of curves. If string contain symbol `a' then lines are
+     drawn one above another (like summation). See also *note plot::,
+     *note bars::, *note stem::, *note region::. *Note Area sample::,
+     for sample code and picture.
+
+ -- MGL command: region fdat gdat ['stl'=" `inside=off']
+ -- MGL command: region xdat fdat gdat ['stl'=" `inside=off']
+     Fills area between curves {XDAT[i], FDAT[i]} and {XDAT[i],
+     GDAT[i]}. Parameter  `inside=off' set to fill are with y1<y<y2
+     else the area with y2<y<y1 will be also filled. You can use
+     gradient filling if number of specified colors is equal to
+     2*number of curves. See also *note area::, *note bars::, *note
+     stem::. *Note Region sample::, for sample code and picture.
+
+ -- MGL command: stem ydat ['stl'=" `zval=nan']
+ -- MGL command: stem xdat ydat ['stl'=" `zval=nan']
+ -- MGL command: stem xdat ydat zdat ['stl'="]
+     Draws vertical lines from points {XDAT[i], YDAT[i], ZDAT[i]} to
+     axis (to axis plane in 3D). See also *note area::, *note bars::,
+     *note plot::, *note mark::. *Note Stem sample::, for sample code
+     and picture.
+
+ -- MGL command: bars ydat ['stl'=" `zval=nan']
+ -- MGL command: bars xdat ydat ['stl'=" `zval=nan']
+ -- MGL command: bars xdat ydat zdat ['stl'="]
+     Draws vertical bars from points {XDAT[i], YDAT[i], ZDAT[i]} to
+     axis (to axis plane in 3D). If style contain symbol `a' then lines
+     are drawn one above another. If string contain symbol `f' then
+     waterfall chart is drawn for determining the cumulative effect of
+     sequentially introduced positive or negative values. You can
+     different colors for positive and negative values if number of
+     specified colors is equal to 2*number of curves. See also *note
+     barh::, *note area::, *note stem::, *note chart::. *Note Bars
+     sample::, for sample code and picture.
+
+ -- MGL command: barh vdat ['stl'=" `zval=nan']
+ -- MGL command: barh ydat vdat ['stl'=" `zval=nan']
+     Draws horizontal bars from points {XDAT[i], YDAT[i], ZDAT[i]} to
+     y-axis. If array YDAT is not specified then its an automatic array
+     is used with values equidistantly distributed along y. Marks at
+     data points are not drawn. If style contain symbol `a' then lines
+     are drawn one above another. If string contain symbol `f' then
+     waterfall chart is drawn for determining the cumulative effect of
+     sequentially introduced positive or negative values. You can
+     different colors for positive and negative values if number of
+     specified colors is equal to 2*number of curves.  See also *note
+     bars::. *Note Barh sample::, for sample code and picture.
+
+ -- MGL command: chart adat ['col'="]
+     The command draws colored stripes (boxes) for data in array ADAT.
+     The number of stripes is equal to the number of rows in ADAT
+     (equal to A.NY). The color of each next stripe is cyclically
+     changed from colors specified in string COL or in palette. Spaces
+     in colors denote transparent "color", i.e. if COL contain space(s)
+     then corresponding stripe(s) are not drawn. The stripe width is
+     proportional to value of element in A. Chart is plotted only for
+     data with non-negative elements. If string COL have symbol `#'
+     then black border lines are drawn. The most nice form the chart
+     have in 3d (after rotation of coordinates) or in cylindrical
+     coordinates (becomes so called Pie chart). *Note Chart sample::,
+     for sample code and picture.
+
+ -- MGL command: step ydat ['stl'=" `zval=nan']
+ -- MGL command: step xdat ydat ['stl'=" `zval=nan']
+ -- MGL command: step xdat ydat zdat ['stl'="]
+     Draws continuous stairs for points {XDAT[i], YDAT[i], ZDAT[i]}.
+     See also *note plot::, *note stem::, *note tile::, *note boxs::.
+     *Note Step sample::, for sample code and picture.
+
+ -- MGL command: torus zdat ['stl'="]
+ -- MGL command: torus rdat zdat ['stl'="]
+     Draws surface which is result of curve {RDAT[i], ZDAT[i], ZDAT[i]}
+     rotation around *note axialdir:: axis. If array RDAT is not
+     specified then its an automatic array is used with values
+     equidistantly distributed along x. See also *note plot::, *note
+     axial::. *Note Torus sample::, for sample code and picture.
+
+ -- MGL command: tube ydat rdat ['stl'=" `zval=nan']
+ -- MGL command: tube ydat `rval' ['stl'=" `zval=nan']
+ -- MGL command: tube xdat ydat rdat ['stl'=" `zval=nan']
+ -- MGL command: tube xdat ydat `rval' ['stl'=" `zval=nan']
+ -- MGL command: tube xdat ydat zdat rdat ['stl'="]
+ -- MGL command: tube xdat ydat zdat `rval' ['stl'="]
+     Draws tube with variable radius RDAT[i] (or RVAL) at points
+     {XDAT[i], YDAT[i], ZDAT[i]}. See also *note plot::. *Note Tube
+     sample::, for sample code and picture.
+
+ -- MGL command: mark ydat rdat ['stl'=" `zval=nan']
+ -- MGL command: mark xdat ydat rdat ['stl'=" `zval=nan']
+ -- MGL command: mark xdat ydat zdat rdat ['stl'="]
+     Draws  marks with size RDAT[i]*`marksize' at points {XDAT[i],
+     YDAT[i], ZDAT[i]}. See also *note plot::, *note textmark::, *note
+     stem::, *note error::. *Note Mark sample::, for sample code and
+     picture.
+
+ -- MGL command: textmark ydat 'txt' ['stl'=" `zval=nan']
+ -- MGL command: textmark ydat rdat 'txt' ['stl'=" `zval=nan']
+ -- MGL command: textmark xdat ydat rdat 'txt' ['stl'=" `zval=nan']
+ -- MGL command: textmark xdat ydat zdat rdat 'txt' ['stl'="]
+     Draws string TXT as marks with size RDAT[i]*`marksize' at points
+     {XDAT[i], YDAT[i], ZDAT[i]}. If array RDAT is not specified then
+     RDAT[i] = 1. See also *note plot::, *note mark::, *note stem::.
+     *Note Error sample::, for sample code and picture.
+
+ -- MGL command: error ydat yerr ['stl'=" `zval=nan']
+ -- MGL command: error xdat ydat yerr ['stl'=" `zval=nan']
+ -- MGL command: error xdat ydat xerr yerr ['stl'=" `zval=nan']
+     Draws error boxes {XERR[i], YERR[i]} at points {XDAT[i], YDAT[i],
+     ZVAL}. See also *note plot::. *Note TextMark sample::, for sample
+     code and picture.
+
+ -- MGL command: boxplot adat ['stl'=" `zval=nan']
+ -- MGL command: boxplot xdat adat ['stl'=" `zval=nan']
+     Draws boxplot (also known as a box-and-whisker diagram) at points
+     XDAT in plane z=`zval' (by default is at the bottom of the
+     bounding box). This is five-number summaries of data <em>adat</em>
+     (minimum, lower quartile (Q1), median (Q2), upper quartile (Q3)
+     and maximum) along second (j-th) direction. See also *note plot::,
+     *note error::, *note bars::. *Note BoxPlot sample::, for sample
+     code and picture.
+
+
+File: mathgl_en.info,  Node: 2D plotting (MGL),  Next: 3D plotting (MGL),  Prev: 1D plotting (MGL),  Up: MGL interface
+
+8.10 2D plotting (MGL)
+======================
+
+These commands perform plotting of 2D data. 2D means that data depend
+from 2 independent parameters like matrix f(x_i,y_j), i=1...n, j=1...m.
+There are 6 generally different types of data representations: simple
+mesh lines plot (*note mesh::), surface plot (*note surf::), surface
+plot by boxes (*note boxs::), surface plot by tiles (*note tile::),
+waterfall-like plot (*note fall::), belt plot (*note belt::), density
+plot (*note dens::), contour lines plot (*note cont::), solid contours
+plot (*note contf::) and its rotational figure (*note axial::).
+Commands *note cont::, *note contf:: and *note axial:: have variants
+for automatic and manual selection of level values for contours. Also
+there are commands for plotting data grid lines according to the data
+format (*note grid::) for enhancing density or contour plots. Each type
+of plotting has similar interface. There are 2 kind of versions which
+handle the arrays of data and coordinates or only single data array.
+*Note 2D plot sample::, for sample code and picture.
+
+   String parameter SCH sets the color scheme (*note Color scheme::).
+Previous color scheme is used by default. The minor dimensions of
+arrays XDAT, YDAT, ZDAT should be equal `xdat.nx=zdat.nx &&
+ydat.nx=zdat.ny' or `xdat.nx=ydat.nx=zdat.nx &&
+xdat.ny=ydat.ny=zdat.ny'. Arrays XDAT and YDAT can be vectors (not
+matrices as ZDAT). If array XDAT, YDAT is not specified then its an
+automatic arrays are used with values equidistantly distributed along
+x, y. Graphics are plotted for each z-slice of the data.
+
+ -- MGL command: surf zdat ['sch'="]
+ -- MGL command: surf xdat ydat zdat ['sch'="]
+     Draws surface specified parametrically {XDAT[i,j], YDAT[i,j],
+     ZDAT[i,j]}. See also *note mesh::, *note dens::, *note belt::,
+     *note tile::, *note boxs::, *note surfc::, *note surfa::. *Note
+     Surf sample::, for sample code and picture.
+
+ -- MGL command: mesh zdat ['sch'="]
+ -- MGL command: mesh xdat ydat zdat ['sch'="]
+     Draws mesh lines for surface specified parametrically {XDAT[i,j],
+     YDAT[i,j], ZDAT[i,j]}. See also *note surf::, *note fall::, *note
+     meshnum::, *note cont::, *note tens::. *Note Mesh sample::, for
+     sample code and picture.
+
+ -- MGL command: fall zdat ['sch'="]
+ -- MGL command: fall xdat ydat zdat ['sch'="]
+     Draws fall lines for surface specified parametrically {XDAT[i,j],
+     YDAT[i,j], ZDAT[i,j]}. If SCH contain `x' then lines are drawn
+     along x-direction else (by default) lines are drawn along
+     y-direction. See also *note belt::, *note mesh::, *note tens::,
+     *note meshnum::. *Note Fall sample::, for sample code and picture.
+
+ -- MGL command: belt zdat ['sch'="]
+ -- MGL command: belt xdat ydat zdat ['sch'="]
+     Draws belts for surface specified parametrically {XDAT[i,j],
+     YDAT[i,j], ZDAT[i,j]}. If SCH contain `x' then belts are drawn
+     along x-direction else (by default) lines are drawn along
+     y-direction. See also *note fall::, *note surf::, *note plot::,
+     *note meshnum::. *Note Belt sample::, for sample code and picture.
+
+ -- MGL command: boxs zdat ['sch'="]
+ -- MGL command: boxs xdat ydat zdat ['sch'="]
+     Draws vertical boxes for surface specified parametrically
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. See also *note surf::, *note
+     dens::, *note tile::, *note step::. *Note Boxs sample::, for
+     sample code and picture.
+
+ -- MGL command: tile zdat ['sch'="]
+ -- MGL command: tile xdat ydat zdat ['sch'="]
+     Draws horizontal tiles for surface specified parametrically
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. Such plot can be used as 3d
+     generalization of *note step::. See also *note surf::, *note
+     boxs::, *note step::, *note tiles::. *Note Tile sample::, for
+     sample code and picture.
+
+ -- MGL command: dens zdat ['sch'=" `zval=nan']
+ -- MGL command: dens xdat ydat zdat ['sch'=" `zval=nan']
+     Draws density plot for surface specified parametrically
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} at Z = ZVAL. See also *note
+     surf::, *note cont::, *note contf::, *note boxs::, *note tile::,
+     `dens[xyz]'. *Note Dens sample::, for sample code and picture.
+
+ -- MGL command: cont vdat zdat ['sch'=" `zval=nan']
+ -- MGL command: cont vdat xdat ydat zdat ['sch'=" `zval=nan']
+     Draws contour lines for surface specified parametrically
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} at Z = ZVAL (or for Z=VDAT[k] if
+     `zval=nan'). Contours are plotted for ZDAT[i,j]=VDAT[k] for all k.
+     If string STL contain 't' (or 'T') symbol then contour labels will
+     be drawn below (or above) the contours. See also *note dens::,
+     *note contf::, *note contd::, *note axial::, `cont[xyz]'. *Note
+     Cont sample::, for sample code and picture.
+
+ -- MGL command: cont zdat ['sch'=" `num=7 zval=nan']
+ -- MGL command: cont xdat ydat zdat ['sch'=" `num=7 zval=nan']
+     The same as previous one with vector VDAT of NUM-th elements
+     equidistantly distributed in color range (see, `caxis').
+
+ -- MGL command: contf vdat zdat ['sch'=" `zval=nan']
+ -- MGL command: contf vdat xdat ydat zdat ['sch'=" `zval=nan']
+     Draws solid (or filled) contours for surface specified
+     parametrically {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} at Z = ZVAL (or
+     for Z=VDAT[k] if `zval=nan'). Contours are plotted for
+     ZDAT[i,j]=VDAT[k] for all k (must be `vdat.nx>2'). See also *note
+     dens::, *note cont::, *note contd::, `contf[xyz]'. *Note ContF
+     sample::, for sample code and picture.
+
+ -- MGL command: contf zdat ['sch'=" `num=7 zval=nan']
+ -- MGL command: contf xdat ydat zdat ['sch'=" `num=7 zval=nan']
+     The same as previous one with vector VDAT of NUM-th elements
+     equidistantly distributed in color range (see, `caxis').
+
+ -- MGL command: contd vdat zdat ['sch'=" `zval=nan']
+ -- MGL command: contd vdat xdat ydat zdat ['sch'=" `zval=nan']
+     Draws solid (or filled) contours for surface specified
+     parametrically {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} at Z = ZVAL (or
+     for Z=VDAT[k] if `zval=nan') with manual colors. Contours are
+     plotted for ZDAT[i,j]=VDAT[k] for all k (must be `vdat.nx>2'). The
+     color of k-th contour is `sch[k%strlen(sch)]'. See also *note
+     dens::, *note cont::, *note contf::. *Note ContD sample::, for
+     sample code and picture.
+
+ -- MGL command: contd zdat ['sch'=" `num=7 zval=nan']
+ -- MGL command: contd xdat ydat zdat ['sch'=" `num=7 zval=nan']
+     The same as previous one with vector VDAT of NUM-th elements
+     equidistantly distributed in color range (see, `caxis').
+
+ -- MGL command: axial vdat zdat ['sch'="]
+ -- MGL command: axial vdat xdat ydat zdat ['sch'="]
+     Draws surface which is result of contour plot rotation surface
+     specified parametrically {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}.
+     Contours are plotted for ZDAT[i,j]=VDAT[k] for all k. If string
+     SCH have symbol `#' then wire plot is produced. If string SCH
+     contain symbols `x', `y' or `z' then rotation axis `axialdir' will
+     be set to specified direction. If string SCH have symbol `#' then
+     wire plot is produced. See also *note cont::, *note contf::, *note
+     torus::, *note surf3::. *Note Axial sample::, for sample code and
+     picture.
+
+ -- MGL command: axial zdat ['sch'=" `num=3']
+ -- MGL command: axial xdat ydat zdat ['sch'=" `num=3']
+     The same as previous one with vector VDAT of NUM-th elements
+     equidistantly distributed in color range (see, `caxis').
+
+ -- MGL command: grad pdat ['sch'=" `num=5 zval=nan']
+ -- MGL command: grad xdat ydat pdat ['sch'=" `num=5 zval=nan']
+ -- MGL command: grad xdat ydat zdat pdat ['sch'=" `num=5']
+     Draws gradient lines for scalar field PDAT specified
+     parametrically {XDAT[i,j], YDAT[i,j]} or {XDAT[i,j,k],
+     YDAT[i,j,k], ZDAT[i,j,k]}. String SCH sets the color scheme.
+     Previous color scheme is used by default. Number of lines is
+     proportional to NUM. If NUM<0 then lines start from borders only.
+     See also *note dens::, *note cont::, *note dens3::, *note cont3::,
+     *note flow::. *Note Grad sample::, for sample code and picture.
+
+ -- MGL command: grid2 zdat ['sch'=" `zval=nan']
+ -- MGL command: grid2 xdat ydat zdat ['sch'=" `zval=nan']
+     Draws grid lines for density plot of surface specified
+     parametrically {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} at Z = ZVAL. See
+     also *note dens::, *note cont::, *note contf::.
+
+
+File: mathgl_en.info,  Node: 3D plotting (MGL),  Next: Dual plotting (MGL),  Prev: 2D plotting (MGL),  Up: MGL interface
+
+8.11 3D plotting (MGL)
+======================
+
+These commands perform plotting of 3D data. 3D means that data depend
+from 3 independent parameters like matrix f(x_i,y_j,z_k), i=1...n,
+j=1...m, k=1...l. There are 4 generally different types of data
+representations: isosurface or surface of constant value (*note
+surf3::), density plot at slices (Dens3), contour lines plot at slices
+(*note cont3::), solid contours plot at slices (*note contf3::) and
+cloud-like plot (*note cloud::). Commands *note surf3::, *note cont3::
+and *note contf3:: have variants for automatic and manual selection of
+level values for surfaces/contours. Also there are commands for
+plotting data grid lines according to the data format (*note grid3::)
+for enhancing density or contour plots. Each type of plotting has
+similar interface. There are 2 kind of versions which handle the arrays
+of data and coordinates or only single data array. *Note 3D plot
+sample::, for sample code and picture.
+
+   String paramter SCH sets the color scheme (*note Color scheme::).
+Previous color scheme is used by default. Arrays X, Y, Z can be vectors
+(not 3d arrays as A). If array XDAT, YDAT, ZDAT is not specified then
+its an automatic arrays are used with values equidistantly distributed
+along x, y, z.
+
+ -- MGL command: surf3 adat `val' ['sch'="]
+ -- MGL command: surf3 xdat ydat zdat adat `val' ['sch'="]
+     Draws isosurface plot for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) at
+     A(x,y,z)=VAL. If string contain `#' then wire plot is produced.
+     See also *note cloud::, *note dens3::, *note surf3c::, *note
+     surf3a::, *note axial::. *Note Surf3 sample::, for sample code and
+     picture.
+
+ -- MGL command: surf3 adat ['sch'=" `num=5']
+ -- MGL command: surf3 xdat ydat zdat adat ['sch'=" `num=5']
+     Draws NUM-th uniformly distributed in color range (see *note
+     caxis::) isosurfaces for 3d data specified parametrically.
+
+ -- MGL command: dens3 adat 'dir' [`sval=-1' 'sch'="]
+ -- MGL command: dens3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="]
+     Draws density plot for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). Density is
+     plotted at slice SVAL in DIR={`x', `y', `z'} direction. If string
+     STL have symbol `#' then grid lines are drawn. See also *note
+     cont3::, *note contf3::, *note dens::, *note grid3::. *Note Dens3
+     sample::, for sample code and picture.
+
+ -- MGL command: densa adat ['sch'="]
+ -- MGL command: densa xdat ydat zdat adat ['sch'="]
+     Draws density plots at all central slices of the 3d data specified
+     parametrically.
+
+ -- MGL command: cont3 vdat adat 'dir' [`sval=-1' 'sch'="]
+ -- MGL command: cont3 vdat xdat ydat zdat adat 'dir' [`sval=-1'
+          'sch'="]
+     Draws contour plot for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). Contours are
+     plotted for values specified in array VDAT at slice SVAL in
+     DIR={`x', `y', `z'} direction. If string STL have symbol `#' then
+     grid lines are drawn. If string STL contain 't' (or 'T') symbol
+     then contour labels will be drawn below (or above) the contours.
+     See also *note dens3::, *note contf3::, *note cont::, *note
+     grid3::. *Note Cont3 sample::, for sample code and picture.
+
+ -- MGL command: cont3 adat 'dir' [`sval=-1' 'sch'=" `num=7']
+ -- MGL command: cont3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="
+          `num=7']
+     The same as previous one with vector VDAT of NUM-th elements
+     equidistantly distributed in color range (see `caxis').
+
+ -- MGL command: conta adat ['sch'=" `num=7']
+ -- MGL command: conta xdat ydat zdat adat ['sch'=" `num=7']
+     Draws contour plots at all central slices of the 3d data specified
+     parametrically.
+
+ -- MGL command: contf3 vdat adat 'dir' [`sval=-1' 'sch'="]
+ -- MGL command: contf3 vdat xdat ydat zdat adat 'dir' [`sval=-1'
+          'sch'="]
+     Draws solid contour plot for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). Contours are
+     plotted for values specified in array VDAT at slice SVAL in
+     DIR={`x', `y', `z'} direction. If string STL have symbol `#' then
+     grid lines are drawn. See also *note dens3::, *note cont3::, *note
+     contf::, *note grid3::. *Note ContF3 sample::, for sample code and
+     picture.
+
+ -- MGL command: contf3 adat 'dir' [`sval=-1' 'sch'=" `num=7']
+ -- MGL command: contf3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="
+          `num=7']
+     The same as previous one with vector VDAT of NUM-th elements
+     equidistantly distributed in color range (see *note caxis::).
+
+ -- MGL command: contfa adat ['sch'=" `num=7']
+ -- MGL command: contfa xdat ydat zdat adat ['sch'=" `num=7']
+     Draws solid contour plots at all central slices of the 3d data
+     specified parametrically.
+
+ -- MGL command: grid3 adat 'dir' [`sval=-1' 'sch'="]
+ -- MGL command: grid3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="]
+     Draws grid for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). Grid is
+     plotted at slice SVAL in DIR={`x', `y', `z'} direction. See also
+     *note cont3::, *note contf3::, *note dens3::, *note grid2::. *Note
+     Dens3 sample::, for sample code and picture.
+
+ -- MGL command: grida adat ['sch'="]
+ -- MGL command: grida xdat ydat zdat adat ['sch'="]
+     Draws grids at all central slices of the 3d data specified
+     parametrically.
+
+ -- MGL command: cloud adat ['sch'="]
+ -- MGL command: cloud xdat ydat zdat adat ['sch'="]
+     Draws cloud for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). This plot is a
+     set of cubes with color and transparency proportional to value of
+     ADAT. The resulting plot is like cloud - low value is transparent
+     but higher ones are not. The number of plotting cells depend on
+     *note meshnum::. Paramater ALPHA changes the overall transparency
+     of plot. See also *note surf3::. *Note Cloud sample::, for sample
+     code and picture.
+
+ -- MGL command: beam tr g1 g2 adat `rval' ['sch'=" `flag=0 num=3']
+     Draws  NUM-th uniformly distributed in color range (see `caxis')
+     isosurfaces for 3d array ADAT. This is special kind of plot for
+     ADAT specified in accompanied coordinates along curve TR with orts
+     G1, G2 and with transverse scale RVAL. Variable FLAG is bitwise:
+     `0x1' - draw in accompanied (not laboratory) coordinates; `0x2' -
+     draw projection to \rho-z plane; `0x4' - draw normalized in each
+     slice field. The x-size of data arrays TR, G1, G2 must be nx>2.
+     The y-size of data arrays TR, G1, G2 and z-size of the data array
+     A must be equal. See also *note surf3::.
+
+
+File: mathgl_en.info,  Node: Dual plotting (MGL),  Next: Vector fields (MGL),  Prev: 3D plotting (MGL),  Up: MGL interface
+
+8.12 Dual plotting (MGL)
+========================
+
+These plotting commands draw _two matrix_ simultaneously. There are 5
+generally different types of data representations: surface or
+isosurface colored by other data (*note surfc::, *note surf3c::),
+surface or isosurface transpared by other data (*note surfa::, *note
+surf3a::), tiles with variable size (*note tiles::), mapping diagram
+(*note map::), STFA diagram (*note stfa::). Commands *note surf3a:: and
+*note surf3c:: have variants for automatic and manual selection of
+level values for isosurfaces. Each type of plotting has similar
+interface. There are 2 kind of versions which handle the arrays of data
+and coordinates or only single data array.
+
+   String paramter SCH sets the color scheme (*note Color scheme::).
+Previous color scheme is used by default. Arrays X, Y, Z can be vectors
+(not 3d arrays as A). If array XDAT, YDAT, ZDAT is not specified then
+its an automatic arrays are used with values equidistantly distributed
+along x, y, z.
+
+ -- MGL command: surfc zdat cdat ['sch'="]
+ -- MGL command: surfc xdat ydat zdat cdat ['sch'="]
+     Draws surface specified parametrically {XDAT[i,j], YDAT[i,j],
+     ZDAT[i,j]} and color it by matrix CDAT[i,j]. See also *note
+     surf::, *note surfa::, *note surf3c::. *Note SurfC sample::, for
+     sample code and picture.
+
+ -- MGL command: surf3c adat cdat `val' ['sch'="]
+ -- MGL command: surf3c xdat ydat zdat adat cdat `val' ['sch'="]
+     Draws isosurface plot for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) at
+     A(x,y,z)=VAL. It is mostly the same as *note surf3:: command but
+     the color of isosurface depends on values of array CDAT. If string
+     contain `#' then wire plot is produced. See also *note surf3::,
+     *note surfc::, *note surf3a::. *Note Surf3C sample::, for sample
+     code and picture.
+
+ -- MGL command: surf3c adat cdat ['sch'=" `num=5']
+ -- MGL command: surf3c xdat ydat zdat adat cdat ['sch'=" `num=5']
+     Draws NUM-th uniformly distributed in color range (see `caxis')
+     isosurfaces for 3d data specified parametrically.
+
+ -- MGL command: surfa zdat cdat ['sch'="]
+ -- MGL command: surfa xdat ydat zdat cdat ['sch'="]
+     Draws surface specified parametrically {XDAT[i,j], YDAT[i,j],
+     ZDAT[i,j]} and transparent it by matrix CDAT[i,j]. See also *note
+     surf::, *note surfc::, *note surf3a::, *note tiles::. *Note SurfA
+     sample::, for sample code and picture.
+
+ -- MGL command: surf3a adat cdat `val' ['sch'="]
+ -- MGL command: surf3a xdat ydat zdat adat cdat `val' ['sch'="]
+     Draws isosurface plot for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) at
+     A(x,y,z)=VAL. It is mostly the same as *note surf3:: command but
+     the transparency of isosurface depends on values of array CDAT. If
+     string contain `#' then wire plot is produced. See also *note
+     surf3::, *note surfa::, *note surf3c::. *Note Surf3A sample::, for
+     sample code and picture.
+
+ -- MGL command: surf3a adat cdat ['sch'=" `num=5']
+ -- MGL command: surf3a xdat ydat zdat adat cdat ['sch'=" `num=5']
+     Draws NUM-th uniformly distributed in color range (see `caxis')
+     isosurfaces for 3d data specified parametrically.
+
+ -- MGL command: tiles zdat rdat ['sch'="]
+ -- MGL command: tiles xdat ydat zdat rdat ['sch'="]
+     Draws horizontal tiles for surface specified parametrically
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. It is mostly the same as *note
+     tile:: but the size of tiles is determined by RDAT array. See also
+     *note surfa::, *note tile::. *Note TileS sample::, for sample code
+     and picture.
+
+ -- MGL command: map udat vdat ['sch'=" `pnts=on']
+ -- MGL command: map xdat ydat udat vdat ['sch'=" `pnts=on']
+     Draws mapping plot for matrixes {UDAT, VDAT } which parametrically
+     depend on coordinates XDAT, YDAT. The previous position of the
+     cell (point) is marked by color. Height is proportional to
+     Jacobian(udat,vdat). This plot is like Arnold diagram ???. If
+     `pnts=off' then face is drawn otherwise the color ball at matrix
+     knots are drawn. The size of UDAT and VDAT must be the same. *Note
+     Map sample::, for sample code and picture.
+
+ -- MGL command: stfa re im `dn' ['sch'=" `pnts=on']
+ -- MGL command: stfa xdat ydat re im `dn' ['sch'=" `pnts=on']
+     Draws spectrogram of complex array RE+i*`im' for Fourier size of
+     DN points at plane Z=ZVAL. Parameter DN is arbitrary even integer.
+     For example in 1D case, result is density plot of data
+     res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn with
+     size {int(nx/dn), dn, ny}. *Note STFA sample::, for sample code
+     and picture.
+
+
+File: mathgl_en.info,  Node: Vector fields (MGL),  Next: Other plotting (MGL),  Prev: Dual plotting (MGL),  Up: MGL interface
+
+8.13 Vector fields (MGL)
+========================
+
+These commands perform plotting of 2D and 3D vector fields. There are 6
+generally different types of vector fields representations: simple
+vector field (*note vect::), vector field by dew-drops (*note dew::),
+flow threads (*note flow::), flow pipes (*note pipe::), vectors along a
+curve (*note traj::). Each type of plotting has similar interface.
+There are 2 kind of versions which handle the arrays of data and
+coordinates or only single data array. Parameters of color scheme are
+specified by the string argument. *Note Color scheme::.
+
+   The color is specified by the string argument SCH. Previous color
+scheme is used by default. Parameter FLAG setup the hachures (arrows).
+It is combination of values: `1' for drawing bi-color arrow, `2' for
+drawing fixed length arrows, `4' for drawing arrows to the cell point,
+`8' for drawing arrows with center at cell point, `16' for drawing
+hachures with dots instead of arrows.
+
+   The size of UDAT, VDAT and WDAT must be equal. The minor dimensions
+of arrays XDAT, YDAT, ZDAT and UDAT must be equal too. Arrays XDAT,
+YDAT and ZDAT can be vectors (not matrices as UDAT). The graphics is
+plotted for each z slice of UDAT, VDAT for 2D case.
+
+ -- MGL command: traj xdat ydat udat vdat ['sch'=" `zval=nan len=0']
+ -- MGL command: traj xdat ydat zdat udat vdat wdat ['sch'=" `len=0']
+     Draws vectors {UDAT, VDAT, WDAT} along a curve XDAT, YDAT, ZDAT.
+     The length and color of arrows are proportional to
+     \sqrt{udat^2+vdat^2+wdat^2}. See also `vect'. *Note Traj sample::,
+     for sample code and picture.
+
+ -- MGL command: vect udat vdat ['sch'=" `zval=nan flag=0']
+ -- MGL command: vect xdat ydat udat vdat ['sch'=" `zval=nan flag=0']
+     Draws plane vector field plot for the field {UDAT, VDAT} depending
+     parametrically on coordinates XDAT, YDAT at level Z=ZVAL. The
+     length and color of arrows are proportional to
+     \sqrt{udat^2+vdat^2}. The number of arrows depend on *note
+     meshnum::. See also *note flow::, *note dew::, *note vectc::.
+     *Note Vect sample::, for sample code and picture.
+
+ -- MGL command: vect udat vdat wdat ['sch'=" `flag=0']
+ -- MGL command: vect xdat ydat zdat udat vdat wdat ['sch'=" `flag=0']
+     This is 3D version of the previous command. Here arrays UDAT,
+     VDAT, WDAT must be 3-ranged tensors with equal sizes and the
+     length and color of arrows are proportional to
+     \sqrt{udat^2+vdat^2+wdat^2}. *Note Vect 3D sample::, for sample
+     code and picture.
+
+ -- MGL command: vectc udat vdat ['sch'=" `zval=nan']
+ -- MGL command: vectc xdat ydat udat vdat ['sch'=" `zval=nan']
+     Draws plane vector field plot for the field {UDAT, VDAT} depending
+     parametrically on coordinates XDAT, YDAT at level Z=ZVAL. The
+     color of hachures is proportional to \sqrt{udat^2+vdat^2}. The
+     number of hachures depend on MESHNUM. See also `vect, flow, pipe,
+     dew'. *Note VectC sample::, for sample code and picture.
+
+ -- MGL command: vectc udat vdat wdat ['sch'="]
+ -- MGL command: vectc xdat ydat zdat udat vdat wdat ['sch'="]
+     This is 3D version of the previous command. Here arrays UDAT,
+     VDAT, WDAT must be 3-ranged tensors with equal sizes and the color
+     of hachures is proportional to \sqrt{udat^2+vdat^2+wdat^2}. *Note
+     VectC 3D sample::, for sample code and picture.
+
+ -- MGL command: vectl udat vdat ['sch'=" `zval=nan']
+ -- MGL command: vectl xdat ydat udat vdat ['sch'=" `zval=nan']
+     Draws plane vector field plot for the field {UDAT, VDAT} depending
+     parametrically on coordinates XDAT, YDAT at level Z=ZVAL. The
+     length of hachures is proportional to \sqrt{udat^2+vdat^2}. The
+     number of hachures depend on MESHNUM. See also `vectc, flow, pipe,
+     dew'. *Note Vect sample::, for sample code and picture.
+
+ -- MGL command: vectl udat vdat wdat ['sch'="]
+ -- MGL command: vectl xdat ydat zdat udat vdat wdat ['sch'="]
+     This is 3D version of the previous command. Here arrays UDAT,
+     VDAT, WDAT must be 3-ranged tensors with equal sizes and the
+     length of hachures is proportional to \sqrt{udat^2+vdat^2+wdat^2}.
+     *Note VectL 3D sample::, for sample code and picture.
+
+ -- MGL command: dew udat vdat ['sch'=" `zval=nan']
+ -- MGL command: dew xdat ydat udat vdat ['sch'=" `zval=nan']
+     Draws dew-drops for plane vector field {UDAT, VDAT} depending
+     parametrically on coordinates XDAT, YDAT at level Z=ZVAL. The
+     color of drops is proportional to \sqrt{udat^2+vdat^2}. The number
+     of drops depend on *note meshnum::. Note that this is very
+     expensive plot in memory usage and creation time! See also *note
+     vect::. *Note Dew sample::, for sample code and picture.
+
+ -- MGL command: flow udat vdat ['sch'=" `num=5 zval=nan']
+ -- MGL command: flow xdat ydat udat vdat ['sch'=" `num=5 zval=nan']
+     Draws plane flow threads for the vector field {UDAT, VDAT}
+     depending parametrically on coordinates XDAT, YDAT at level
+     Z=ZVAL. Number of threads is proportional to NUM. The color of
+     lines is proportional to \sqrt{udat^2+vdat^2}. Warm color
+     corresponds to normal flow (like attractor). Cold one corresponds
+     to inverse flow (like source). See also `vect, vectc, pipe'. *Note
+     Flow sample::, for sample code and picture.
+
+ -- MGL command: flow udat vdat wdat ['sch'=" `num=3']
+ -- MGL command: flow xdat ydat zdat udat vdat wdat ['sch'=" `num=3']
+     This is 3D version of the previous command. Here arrays UDAT,
+     VDAT, WDAT must be 3-ranged tensors with equal sizes and the color
+     is proportional to \sqrt{udat^2+vdat^2+wdat^2}. *Note Flow 3D
+     sample::, for sample code and picture.
+
+ -- MGL command: flow `x0 y0' udat vdat ['sch'=" `zval=nan']
+ -- MGL command: flow `x0 y0' xdat ydat udat vdat ['sch'=" `zval=nan']
+     Draws plane flow threads for the vector field {UDAT, VDAT}
+     depending parametrically on coordinates XDAT, YDAT from point {X0,
+     Y0} at level Z=ZVAL. The color of lines is proportional to
+     \sqrt{udat^2+vdat^2}. Warm color corresponds to normal flow (like
+     attractor). Cold one corresponds to inverse flow (like source).
+     See also `vect, vectc, pipe'. *Note Flow sample::, for sample code
+     and picture.
+
+ -- MGL command: flow `x0 y0 z0' udat vdat wdat ['sch'="]
+ -- MGL command: flow `x0 y0 z0' xdat ydat zdat udat vdat wdat ['sch'="]
+     Draws flow thread from point {X0, Y0, Z0}. Arrays UDAT, VDAT, WDAT
+     must be 3-ranged tensors with equal sizes and the color is
+     proportional to \sqrt{udat^2+vdat^2+wdat^2}. *Note Flow 3D
+     sample::, for sample code and picture.
+
+ -- MGL command: pipe udat vdat ['sch'=" `r0=0.05 num=5 zval=nan']
+ -- MGL command: pipe xdat ydat udat vdat ['sch'=" `r0=0.05 num=5
+          zval=nan']
+     Draws plane flow pipes for the vector field {UDAT, VDAT} depending
+     parametrically on coordinates XDAT, YDAT at level Z=ZVAL. Number
+     of pipes is proportional to NUM. The color of pipes is
+     proportional to \sqrt{udat^2+vdat^2}. Warm color corresponds to
+     normal flow (like attractor). Cold one corresponds to inverse flow
+     (like source). Parameter R0 set the base pipe radius. If R0<0 then
+     pipe radius is inverse proportional to amplitude. The size of AX
+     and AY must be equal. See also `vect, vectc, pipe'. *Note Pipe
+     sample::, for sample code and picture.
+
+ -- MGL command: pipe udat vdat wdat ['sch'=" `r0=0.05 num=3']
+ -- MGL command: pipe xdat ydat zdat udat vdat wdat ['sch'=" `r0=0.05
+          num=3']
+     This is 3D version of the previous command. Here arrays UDAT,
+     VDAT, WDAT must be 3-ranged tensors with equal sizes and the color
+     is proportional to \sqrt{udat^2+vdat^2+wdat^2}. *Note Pipe 3D
+     sample::, for sample code and picture.
+
+
+File: mathgl_en.info,  Node: Other plotting (MGL),  Next: Nonlinear fitting (MGL),  Prev: Vector fields (MGL),  Up: MGL interface
+
+8.14 Other plotting (MGL)
+=========================
+
+These commands perform miscelaneous plotting. There is unstructured
+data points plots (Dots), surface reconstruction (Crust), surfaces on
+the triangular mesh (TriPlot) or quadrangular mesh (QuadPlot), textual
+formula plotting (Plots by formula), data plots at edges (Dens[XYZ],
+Cont[XYZ], ContF[XYZ]), simple plot (SimplePlot). Each type of plotting
+has similar interface. There are 2 kind of versions which handle the
+arrays of data and coordinates or only single data array. Parameters of
+color scheme are specified by the string argument. *Note Color scheme::.
+
+ -- MGL command: densx dat ['sch'=" `val=nan']
+ -- MGL command: densy dat ['sch'=" `val=nan']
+ -- MGL command: densz dat ['sch'=" `val=nan']
+     These plotting commands draw density plot in x, y or z plain. If
+     DAT is a tensor (3-dimensional data) then interpolation to a given
+     VAL is performed. These commands are useful for creating
+     projections of the 3D data array to the bounding box. See also
+     `cont[xyz], contf[xyz]', *note dens::. *Note Dens projection
+     sample::, for sample code and picture.
+
+ -- MGL command: contx dat ['sch'=" `val=nan num=7']
+ -- MGL command: conty dat ['sch'=" `val=nan num=7']
+ -- MGL command: contz dat ['sch'=" `val=nan num=7']
+     These plotting commands draw contour lines in x, y or z plain. If
+     DAT is a tensor (3-dimensional data) then interpolation to a given
+     VAL is performed. These commands are useful for creating
+     projections of the 3D data array to the bounding box. See also
+     `dens[xyz], contf[xyz]', *note cont::. *Note Cont projection
+     sample::, for sample code and picture.
+
+ -- MGL command: contfx dat ['sch'=" `val=nan num=7']
+ -- MGL command: contfy dat ['sch'=" `val=nan num=7']
+ -- MGL command: contfz dat ['sch'=" `val=nan num=7']
+     These plotting commands draw solid contours in x, y or z plain. If
+     DAT is a tensor (3-dimensional data) then interpolation to a given
+     VAL is performed. These commands are useful for creating
+     projections of the 3D data array to the bounding box. See also
+     `dens[xyz], cont[xyz]', *note contf::.
+
+ -- MGL command: dots xdat ydat zdat ['sch'="]
+ -- MGL command: dots xdat ydat zdat adat ['sch'="]
+     Draws the arbitrary placed points {XDAT[i], YDAT[i], ZDAT[i]}.
+     Variable ADAT[i] set transparency for dots. See also *note
+     crust::, *note mark::, *note plot::. *Note Dots sample::, for
+     sample code and picture.
+
+ -- MGL command: crust xdat ydat zdat ['sch'="]
+     Reconstructs and draws the surface for arbitrary placed points
+     {XDAT[i], YDAT[i], ZDAT[i]}. If string contain `#' then wire plot
+     is produced. See also *note dots::, *note triplot::. *Note Crust
+     sample::, for sample code and picture.
+
+ -- MGL command: triplot idat xdat ydat ['sch'=" `zval=nan']
+ -- MGL command: triplot idat xdat ydat zdat ['sch'="]
+ -- MGL command: triplot idat xdat ydat zdat cdat ['sch'="]
+     Draws the surface of triangles. Triangle vertexes are set by
+     indexes IDAT of data points {XDAT[i], YDAT[i], ZDAT[i]}. If string
+     contain `#' then wire plot is produced. First dimensions of IDAT
+     must be 3 or greater. See also `dots, crust, quadplot'. Parameter
+     CDAT set the colors of triangles (if IDAT.ny=CDAT.nx) or colors of
+     vertexes (if XDAT.nx=CDAT.nx). See also *note dots::, *note
+     crust::, *note quadplot::, *note tricont::.
+
+ -- MGL command: tricont vdat idat xdat ydat zdat cdat ['sch'="
+          `zval=nan']
+ -- MGL command: tricont vdat idat xdat ydat zdat ['sch'=" `zval=nan']
+ -- MGL command: tricont idat xdat ydat zdat ['sch'=" `num=7 zval=nan']
+     Draws contour lines for surface of triangles at Z = ZVAL (or for
+     Z=VDAT[k] if `zval=nan'). Triangle vertexes are set by indexes
+     IDAT of data points {XDAT[i], YDAT[i], ZDAT[i]}. Contours are
+     plotted for ZDAT[i,j]=VDAT[k] for all k (or NUM contours
+     equidistantly distributed in range [CMIN, CMAX].). See also *note
+     triplot::, *note cont::.
+
+ -- MGL command: quadplot idat xdat ydat ['sch'=" `zval=nan']
+ -- MGL command: quadplot idat xdat ydat zdat ['sch'="]
+ -- MGL command: quadplot idat xdat ydat zdat cdat ['sch'="]
+     Draws the surface of quadrangles. Quadrangle vertexes are set by
+     indexes IDAT of data points {XDAT[i], YDAT[i], ZDAT[i]}. If string
+     contain `#' then wire plot is produced. First dimensions of IDAT
+     must be 4 or greater. See also `triplot, dots, crust'. Parameter
+     CDAT set the colors of triangles (if IDAT.ny=CDAT.nx) or colors of
+     vertexes (if XDAT.nx=CDAT.nx). See also *note triplot::.
+
+ -- MGL command: fplot 'y(x)' ['pen'=" `zval=nan num=100']
+     Draws command function `y(x)' at plane z=ZVAL where `x' variable
+     is changed in `xrange'. You do not need to create the data arrays
+     to plot it. The parameter NUM set the minimal number of points
+     along coordinate(s) for plots. See also *note plot::.
+
+ -- MGL command: fplot 'x(t)' 'y(t)' 'z(t)' ['pen'=" `num=100']
+     Draws command parametrical curve {`x(t)', `y(t)', `z(t)'} where
+     `t' variable is changed in range [0, 1]. You do not need to create
+     the data arrays to plot it. The parameter NUM set the minimal
+     number of points along coordinate(s) for plots. See also *note
+     plot::.
+
+ -- MGL command: fsurf 'z(x,y)' ['sch'=" `num=100']
+     Draws command surface for function `z(x,y)' where `x', `y'
+     variable are changed in `xrange, yrange'. You do not need to
+     create the data arrays to plot it. The parameter NUM set the
+     minimal number of points along coordinate(s) for plots. See also
+     *note surf::.
+
+ -- MGL command: fsurf 'x(u,v)' 'y(u,v)' 'z(u,v)' ['sch'=" `num=100']
+     Draws command parametrical surface {`x(u,v)', `y(u,v)', `z(u,v)'}
+     where `u', `v' variable are changed in range [0, 1]. You do not
+     need to create the data arrays to plot it. The parameter NUM set
+     the minimal number of points along coordinate(s) for plots. See
+     also *note surf::.
+
+
+File: mathgl_en.info,  Node: Nonlinear fitting (MGL),  Next: Data create (MGL),  Prev: Other plotting (MGL),  Up: MGL interface
+
+8.15 Nonlinear fitting (MGL)
+============================
+
+These commands fit data to formula. Fitting goal is to find formula
+parameters for the best fit the data points, i.e. to minimize the sum
+\sum_i (f(x_i, y_i, z_i) - a_i)^2/s_i^2. At this, approximation
+function `f' can depend only on one argument `x' (1D case), on two
+arguments `x,y' (2D case) and on three arguments `x,y,z' (3D case). The
+command `f' also may depend on parameters. Normally the list of fitted
+parameters is specified by VAR string (like, `abcd'). Usually user
+should supply initial values for fitted parameters by INI variable. But
+if he/she don't supply it then the zeros are used.
+
+   Commands *note fit:: and *note fits:: do not draw the obtained data
+themselves. They fill the data OUT by formula `f' with found
+coefficients. At this, the `x,y,z' coordinates are equidistantly
+distributed in the bounding box. Number of points in OUT is selected as
+maximal value of OUT size or 100. Also you may print the last formula
+with found coefficients by `putsfit' command. *Note Fitting sample::,
+for sample code and picture.
+
+   The dimensions of arrays must be at least the same as the number of
+specified arrays XDAT, YDAT, ZDAT. Also the fitting only along
+specified directions will be performed (for example, along x and y if
+only XDAT and YDAT are specified). If array XDAT is not specified then
+its an automatic array is used with values equidistantly distributed
+along x.
+
+ -- MGL command: fits adat sdat 'func' 'var' [ini=0]
+ -- MGL command: fits xdat adat sdat 'func' 'var' [ini=0]
+ -- MGL command: fits xdat ydat adat sdat 'func' 'var' [ini=0]
+ -- MGL command: fits xdat ydat zdat adat sdat 'func' 'var' [ini=0]
+     Fit data along x-, y- and z-directions for 1d-,2d- or 3d array
+     specified parametrically ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k],
+     ZDAT[i,j,k]) with weight factor SDAT[i,j,k].
+
+ -- MGL command: fit adat 'func' 'var' [ini=0]
+ -- MGL command: fit xdat adat 'func' 'var' [ini=0]
+ -- MGL command: fit xdat ydat adat 'func' 'var' [ini=0]
+ -- MGL command: fit xdat ydat zdat adat 'func' 'var' [ini=0]
+     Fit data along x-, y- and z-directions for 1d-,2d- or 3d array
+     specified parametrically ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k],
+     ZDAT[i,j,k]) with weight factor =1.
+
+ -- MGL command: putsfit `x y' ['pre'=" 'fnt'=" `size=-1']
+     Print last fitted formula with found coefficients (as numbers) at
+     position {X, Y}. The string PRE will be printed before formula.
+     All other parameters are the same as in *note Text printing
+     (MGL)::.
+
+
+File: mathgl_en.info,  Node: Data create (MGL),  Next: Data filling (MGL),  Prev: Nonlinear fitting (MGL),  Up: MGL interface
+
+8.16 Data create (MGL)
+======================
+
+ -- MGL command: new dat [`nx=1 ny=1 nz=1']
+     Creates or recreates the array DAT with specified size and fills
+     it by zero. This command does nothing if one of parameters NX, NY,
+     NZ is zero or negative.
+
+ -- MGL command: var dat `num v1 [v2=nan]'
+     Creates new variable with name DAT for one-dimensional array of
+     size NUM. Array elements are equidistantly distributed in range
+     [V1, V2]. If V2=`nan' then V2=V1 is used.
+
+ -- MGL command: list dat `v1 ...'
+     Creates new variable with name DAT and fills it by numeric values
+     of command arguments `v1 ...'. Command can create one-dimensional
+     and two-dimensional arrays with arbitrary values. For creating 2d
+     array the user should use delimiter `|' which means that the
+     following values lie in next row. Array sizes are [maximal of row
+     sizes * number of rows]. For example, command `list 1 | 2 3'
+     creates the array [1 0; 2 3]. Note, that the maximal number of
+     arguments is 1000.
+
+ -- MGL command: list dat d1 ...
+     Creates new variable with name DAT and fills it by data values of
+     arrays of command arguments D1 .... Command can create
+     two-dimensional or three-dimensional (if arrays in arguments are
+     2d arrays) arrays with arbitrary values. Minor dimensions of all
+     arrays in arguments should be equal to dimensions of first array
+     d1. In the opposite case the argument will be ignored. Note, that
+     the maximal number of arguments is 1000.
+
+ -- MGL command: copy dat1 dat2 ['eq'=" `on_axis=on']
+ -- MGL command: copy dat1 `val'
+     Creates new variable with name DAT1 and fills it by data values of
+     array DAT2. At this, if parameter EQ is specified then the data
+     will be modified by corresponding formula by the same way as in
+     *note fill:: command (for `on_axis=on') or in *note modify::
+     command (for `on_axis=off').
+
+ -- MGL command: idset dat 'ids'
+     Set the symbol id for data columns. The string must contain one
+     symbol 'a'...'z' per column (without spaces).
+
+ -- MGL command: info dat [`detail=off']
+     Display information (sizes, maximum/minimum, momentums and so on)
+     about the data dat. Show brief information by default (if
+     `detail=off').
+
+ -- MGL command: info 'text'
+     Display TEXT as information (warning).
+
+
+File: mathgl_en.info,  Node: Data filling (MGL),  Next: Rearrange data (MGL),  Prev: Data create (MGL),  Up: MGL interface
+
+8.17 Data filling (MGL)
+=======================
+
+ -- MGL command: fill dat v1 v2 ['dir'='x']
+     Equidistantly fills the data values to range [X1, X2] in direction
+     DIR={`x',`y',`z'}.
+
+ -- MGL command: fill dat 'eq'
+ -- MGL command: fill dat 'eq' vdat
+ -- MGL command: fill dat 'eq' vdat wdat
+     Command fills the value of array according to the formula in
+     string EQ. Formula is an arbitrary expression depending  on
+     variables `x', `y', `z', `u', `v', `w'. Coordinates `x', `y', `z'
+     are supposed to be normalized in _bounding box_ (in difference
+     from `modify' commands). Variable `u' is the original value of the
+     array. Variables `v' and `w' are values of VDAT, WDAT.
+
+ -- MGL command: modify dat 'eq' [`dim=0']
+ -- MGL command: modify dat 'eq' vdat
+ -- MGL command: modify dat 'eq' vdat wdat
+     Command fills the value of array according to the formula in
+     string EQ. Formula is an arbitrary expression depending  on
+     variables `x', `y', `z', `u'. Coordinates `x', `y', `z' are data
+     indexes normalized in range [0,1]. Variable `u' is the original
+     value of the array. If DIM>0 is specified then modification will
+     be fulfilled only for slices >=DIM.
+
+ -- MGL command: put dat `val [i=: j=: k=:]'
+     Function sets value(s) of array DAT[I, J, K] = VAL. Negative
+     indexes I, J, K=`:' set the value VAL to whole range in
+     corresponding direction(s). For example, `put dat val : 0 :' sets
+     DAT[i,0,j]=VAL for i=0...(DAT.nx-1), j=0...(DAT.nz-1).
+
+ -- MGL command: put dat vdat [`i=: j=: k=:']
+     Function copies value(s) from array VDAT to the range of array
+     DAT. Negative indexes I, J, K=`:' set the range in corresponding
+     direction(s). At this minor dimensions of array VDAT should be
+     large than corresponding dimensions of array DAT. For example,
+     `put dat v : 0 :' sets DAT[i,0,j]=VDAT.ny>DAT.nz ? VDAT[i,j] :
+     VDAT[i], where i=0...(DAT.nx-1), j=0...(DAT.nz-1) and condition
+     vdat.nx>=dat.nx is true.
+
+
+File: mathgl_en.info,  Node: Rearrange data (MGL),  Next: File I/O (MGL),  Prev: Data filling (MGL),  Up: MGL interface
+
+8.18 Rearrange data (MGL)
+=========================
+
+ -- MGL command: rearrange dat `mx [my=0 mz=0]'
+     Rearrange dimensions without changing data array so that resulting
+     sizes should  be MX*MY*MZ < nx*ny*nz. If some of parameter MY or
+     MZ are zero then it will be selected to optimal fill of data
+     array. For example, if MY=0 then it will be change to
+     MY=nx*ny*nz/MX and MZ will be 1.
+
+ -- MGL command: extend dat `n1 [n2=0]'
+     Increase the dimensions of the data by inserting new (|N1|+1)-th
+     slices after (for N1>0) or before (for N1<0) of existed one. It is
+     possible to insert 2 dimensions simultaneously for 1d data by
+     using parameter N2. Data to new slices is copy from existed one.
+     For example, for N1>0 new array will be a_ij^new = a_i^old where
+     j=0...N1. Correspondingly, for N1<0 new array will be a_ij^new =
+     a_j^old where i=0...|N1|.
+
+ -- MGL command: transpose dat ['dim'='yxz']
+     Transposes (shift order of) dimensions of the data. New order of
+     dimensions is specified int string DIM. This command may be useful
+     also for the reading of one-dimensional data.
+
+ -- MGL command: squeeze dat `rx [ry=1 rz=1 sm=off]'
+     Reduces the data size by excluding data elements which indexes are
+     not divisible by RX, RY, RZ correspondingly. Parameter SM set to
+     use smoothing (i.e. out[i]=\sum_{j=i}^{i+r} a[j]/r) or not (i.e.
+     out[i]=a[j*r]).
+
+ -- MGL command: crop dat `n1 n2' 'dir'
+     Cuts off edges of the data I<N1 and I>N2 if N2>0 or I>`n[xyz]'-N2
+     if N2<=0 along direction DIR.
+
+ -- MGL command: delete dat
+     Deletes variable DAT and makes its memory free. Can be useful for
+     huge data arrays.
+
+ -- MGL command: delete dat 'dir' `[pos=off num=0]'
+     Delete NUM slices along DIR-direction at position POS.
+
+ -- MGL command: insert dat 'dir' `[pos=off num=0]'
+     Insert NUM slices along DIR-direction at position POS.
+
+
+File: mathgl_en.info,  Node: File I/O (MGL),  Next: Make another data (MGL),  Prev: Rearrange data (MGL),  Up: MGL interface
+
+8.19 File I/O (MGL)
+===================
+
+ -- MGL command: read dat 'fname'
+     Reads data from tab-separated text file with auto determining
+     sizes of the data.
+
+ -- MGL command: read dat 'fname' `mx [my=1 mz=1]'
+     Reads data from text file with specified data sizes. This command
+     does nothing if one of parameters MX, MY or MZ is zero or negative.
+
+ -- MGL command: readmat dat 'fname' [`dim=2']
+     Read data from text file with size specified at beginning of the
+     file by first DIM numbers. At this, variable DIM set data
+     dimensions.
+
+ -- MGL command: readall dat 'templ' `v1 v2 [dv=1 slice=off]'
+     Join data arrays from several text files. The file names are
+     determined by function call `sprintf(fname,templ,val);', where VAL
+     changes from V1 to V2 with step DV. The data load one-by-one in
+     the same slice if SLICE=`off' or as slice-by-slice if SLICE=`on'.
+
+ -- MGL command: readall dat 'templ' `[slice=off]'
+     Join data arrays from several text files which filenames satisfied
+     the template TEMPL (for example, TEMPL=`"t_*.dat"'). The data load
+     one-by-one in the same slice if SLICE=`off' or as slice-by-slice
+     if SLICE=`on'.
+
+ -- MGL command: save dat 'fname'
+     Saves the whole data array to tab-separated text file.
+
+ -- MGL command: readhdf dat 'fname' 'dname'
+     Reads data array named DNAME from HDF5 or HDF4 file FNAME.
+
+ -- MGL command: savehdf dat 'fname' 'dname'
+     Saves data array named DNAME from HDF5 or HDF4 file FNAME.
+
+ -- MGL command: import dat 'fname' 'sch' [`v1=0 v2=1']
+     Reads data from bitmap file. The RGB values of bitmap pixels are
+     transformed to float values in range [V1, V2] using color scheme
+     SCH (*note Color scheme::).
+
+ -- MGL command: export dat 'fname' 'sch' [`v1=0 v2=0']
+     Saves data matrix to bitmap file. The data values are transformed
+     from range [V1, V2] to RGB pixels of bitmap using color scheme SCH
+     (*note Color scheme::). If V1>=V2 then the values of V1, V2 are
+     automatically determined as minimal and maximal value of the data
+     array.
+
+
+File: mathgl_en.info,  Node: Make another data (MGL),  Next: Change data (MGL),  Prev: File I/O (MGL),  Up: MGL interface
+
+8.20 Make another data (MGL)
+============================
+
+ -- MGL command: combine res adat bdat
+     Returns direct multiplication of arrays (like, res[i,j] =
+     adat[i]*bdat[j] and so on).
+
+ -- MGL command: evaluate res dat idat [`norm=on']
+ -- MGL command: evaluate res dat idat jdat [`norm=on']
+ -- MGL command: evaluate res dat idat jdat kdat [`norm=on']
+     Get array which values is result of interpolation of original
+     array for coordinates from other arrays (for example,
+     res[i,j]=dat[idat[i,j],jdat[i,j]]). All dimensions must be the
+     same for data IDAT, JDAT, KDAT. Coordinates from IDAT, JDAT, KDAT
+     are supposed to be normalized in range [0,1] (if NORM=`true') or
+     in ranges [0,nx], [0,ny], [0,nz] correspondingly.
+
+ -- MGL command: hist res dat `num v1 v2 [nsub=0]'
+ -- MGL command: hist res dat wdat `num v1 v2 [nsub=0]'
+     Creates NUM-th points distribution RES of the data values of DAT
+     in range [V1, V2]. Array WDAT specifies weights of the data
+     elements (all weight is 1 if WDAT is not specified). Parameter
+     NSUB define the number of additional interpolated points (for
+     smoothness of histogram).
+
+ -- MGL command: hist res xdat adat
+ -- MGL command: hist res xdat ydat adat
+ -- MGL command: hist res xdat ydat zdat adat
+     Creates distribution RES of the data values of ADAT in axis range
+     [Min, Max]. Array ADAT look like weights of the data points.
+
+ -- MGL command: momentum res dat 'how' ['dir'='z']
+     Get momentum (1D-array) of the data along direction DIR. String
+     HOW contain kind of momentum. The momentum is defined like as
+     res_k = \sum_ij how(x_i,y_j,z_k) a_ij/ \sum_ij a_ij if VAR=`z' and
+     so on. Coordinates `x', `y', `z' are data indexes normalized in
+     range [0,1].
+
+ -- MGL command: sum res dat 'dir'
+     Gets array which is the result of summation in given direction or
+     direction(s).
+   
+ -- MGL command: max res dat 'dir'
+     Gets array which is the maximal data values in given direction or
+     direction(s).
+   
+ -- MGL command: min res dat 'dir'
+     Gets array which is the minimal data values in given direction or
+     direction(s).
+
+ -- MGL command: resize res dat `mx [my=1 mz=1]'
+     Makes array RES of sizes MX, MY, MZ with interpolated data of
+     array DAT.
+
+ -- MGL command: subdata res dat `xx [yy=: zz=:]'
+     Extracts sub-array data RES from the original data DAT array
+     keeping fixed positive index. For example `subdata a b : 2'
+     extracts 3d row (indexes are zero based), `subdata a b 4 :'
+     extracts 5th column, `subdata a b : : 3' extracts 4th slice and so
+     on. Note that symbol `:' is defined `:'=`-1' in MGL.
+
+ -- MGL command: trace res dat
+     Gets array of diagonal elements DAT[i,i] (for 2D case) or
+     DAT[i,i,i] (for 3D case) where i=0...nx-1. Function return copy of
+     DAT for 1D case. Data array must have dimensions DAT.ny, DAT.nz >=
+     DAT.nx or DAT.ny, DAT.nz = 1.
+
+ -- MGL command: transform dat 'type' real imag
+     Do integral transformation of complex data REAL, IMAG on specified
+     direction. The order of transformations is specified in string
+     TYPE: first character for x-dimension, second one for y-dimension,
+     third one for z-dimension. The possible character are: `f' is
+     forward Fourier transformation, `i' is inverse Fourier
+     transformation, `s' is Sine transform, `c' is Cosine transform,
+     `h' is Hankel transform, `n' or ` ' is no transformation.
+
+ -- MGL command: transforma dat 'type' ampl phase
+     The same as previous but with specified amplitude AMPL and phase
+     PHASE of complex numbers.
+
+ -- MGL command: stfad res real imag `dn' ['dir'='x']
+     Short time Fourier transformation for real and imaginary parts.
+     Output  is amplitude of partial Fourier of length DN. For example
+     if DIR=`x', result will have size {int(nx/dn), dn, ny} and it will
+     contain res[i,j,k]=|\sum_d^dn
+     exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn.
+
+ -- MGL command: pde res 'ham' ini_re ini_im [`dz=0.1 k0=100']
+     Solves equation du/dz = i*k0*HAM(p,q,x,y,z,|u|)[u], where
+     p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators.
+     Parameters INI_RE, INI_IM specify real and imaginary part of
+     initial field distribution. Coordinates of the equation (and the
+     solution) are supposed to be in the bounding box. Note, that
+     really this ranges are increased by factor 3/2 for purpose of
+     reducing reflection from boundaries. Parameter DZ set the step
+     along evolutionary coordinate z. At this moment, simplified form
+     of function HAM is supported - all "mixed" terms (like
+     `x*p'->x*d/dx) are excluded. For example, in 2D case this function
+     is effectively ham = f(p,z) + g(x,z,u). However commutable
+     combinations (like `x*q'->x*d/dy) are allowed. Here variable `u'
+     is used for field amplitude |u|. This allow one solve nonlinear
+     problems - for example, for non-linear Shrodinger equation you may
+     set `ham='p^2+q^2-u^2''. You may specify imaginary part for wave
+     absorption, like `ham = 'p^2+i*x*(x>0)'', but only if dependence
+     on variable `i' is linear (i.e. ham = hre+i*him). *Note PDE
+     sample::, for sample code and picture.
+
+ -- MGL command: ray res 'ham' `x0 y0 z0 p0 q0 v0 [dt=0.1 tmax=10]'
+     Solves GO ray equation like d_r_/dt = d HAM/d_p_, d_p_/dt = -d
+     HAM/d_r_. This is Hamiltonian equations for particle trajectory in
+     3D case. Here HAM is Hamiltonian which may depend on coordiantes
+     `x', `y', `z', momentums `p'=px, `q'=py, `v'=pz and time `t': ham
+     = H(x,y,z,p,q,v,t). The starting point (at `t=0') is defined by
+     variables {X0, Y0, Z0, P0, Q0, V0}. Parameters DT and TMAX specify
+     the integration step and maximal time for ray tracing. Result is
+     array of {x,y,z,p,q,v,t} with dimensions {7 * int(TMAX/DT+1) }.
+     See also *note pde::. *Note Beam tracing sample::, for sample code
+     and picture.
+
+ -- MGL command: qo2d res 'ham' ini_re ini_im ray [`r=1 k0=100' xx=0
+          yy=0]
+     Solves equation du/dt = i*k0*HAM(p,q,x,y,|u|)[u], where
+     p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators.
+     Parameters INI_RE, INI_IM specify real and imaginary part of
+     initial field distribution. Parameters RAY set the reference ray,
+     i.e. the ray around which the accompanied coordinate system will
+     be maked. You may use, for example, the array created by *note
+     ray:: function. Note, that the reference ray *must be* smooth
+     enough to make accompanied coodrinates unambiguity. Otherwise
+     errors in the solution may appear. If XX and YY are non-zero then
+     Cartesian coordinates for each point will be written into them.
+     *Note Beam tracing sample::, for sample code and picture.
+
+ -- MGL command: jacobian res xdat ydat [zdat=0]
+     Computates the Jacobian for transformation {i,j,k} to
+     {XDAT,YDAT,ZDAT} where initial coordinates  {i,j,k} are data
+     indexes normalized in range [0,1]. The Jacobian is determined by
+     formula det||dr_\alpha/d\xi_\beta|| where r={XDAT,YDAT,ZDAT} and \
+     xi={i,j,k}. All dimensions must be the same for all data arrays.
+     Data must be 3D if all 3 arrays {XDAT,YDAT,ZDAT} are specified or
+     2D if only 2 arrays {XDAT,YDAT} are specified.
+
+
+File: mathgl_en.info,  Node: Change data (MGL),  Next: Operators (MGL),  Prev: Make another data (MGL),  Up: MGL interface
+
+8.21 Change data (MGL)
+======================
+
+These commands change the data in some direction like differentiations,
+integrations and so on. The direction in which the change will applied
+is specified by the string parameter, which may contain `x', `y' or `z'
+characters for 1-st, 2-nd and 3-d dimension correspondingly.
+
+ -- MGL command: cumsum dat 'dir'
+     Cumulative summation of the data in given direction or directions.
+   
+ -- MGL command: integrate dat 'dir'
+     Integrates (like cumulative summation) the data in given direction
+     or directions.
+   
+ -- MGL command: diff dat 'dir'
+     Differentiates the data in given direction or directions.
+
+ -- MGL command: diff dat xdat ydat [zdat=0]
+     Differentiates the data DAT specified parametrically in direction
+     XDAT with YDAT, ZDAT=constant. Parameter ZDAT can be omitted that
+     correspond to 2D case. Parametrical differentiation uses the
+     formula (for 2D case): da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j)
+     where a_i=da/di, a_j=da/dj denotes usual differentiation along 1st
+     and 2nd dimensions. The similar formula is used for 3D case. Note,
+     that you may change the order of arguments - for example, if you
+     have 2D data a(i,j) which depend on coordinates {x(i,j), y(i,j)}
+     then usual derivative along `x' will be `diff a x y' and usual
+     derivative along `y' will be `diff a y x'.
+
+ -- MGL command: diff2 dat 'dir'
+     Double-differentiates (like Laplace operator) the data in given
+     direction.
+
+ -- MGL command: sinfft dat 'dir'
+     Do Sine transform of the data in given direction or directions.
+     The Sine transform is \sum a_i \sin(k i).
+   
+ -- MGL command: cosfft dat 'dir'
+     Do Cosine transform of the data in given direction or directions.
+     The Cosine transform is \sum a_i \cos(k i).
+   
+ -- MGL command: hankel dat 'dir'
+     Do Hankel transform of the data in given direction or directions.
+     The Hankel transform is \sum a_i J_0(k i).
+
+ -- MGL command: swap dat 'dir'
+     Swaps the left and right part of the data in given direction
+     (useful for Fourier spectrum).
+   
+ -- MGL command: roll dat 'dir' num
+     Rolls the data along direction 'dir'. Resulting array will be
+     out[i] = ini[(i+num)%nx] if `dir='x''.
+
+ -- MGL command: mirror dat 'dir'
+     Mirror the left-to-right part of the data in given direction.
+     Looks like change the value index I->N-I.
+
+ -- MGL command: sew dat ['dir'='xyz' `da=2*pi']
+     Remove value steps (like phase jumps after inverse trigonometric
+     commands) with period DA in given direction.
+   
+ -- MGL command: smooth data `type' ['dir'='xyz']
+     Smooths the data on specified direction or directions by method
+     TYPE. Now 4 methods are supported: `0' does nothing, `1' linear
+     averaging by 3 points, `2' linear averaging by 5 points, `3'
+     quadratic averaging by 5 points.
+
+ -- MGL command: envelop dat ['dir'='x']
+     Find envelop for data values along direction DIR. Only one
+     direction can be specified at once.
+
+ -- MGL command: normsl dat `v1 v2' ['dir'='z' `keep=on sym=off']
+     Normalizes data slice-by-slice along direction DIR the data in
+     slices to range [V1,V2]. If flag SYM=`on' then symmetrical
+     interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used. If KEEP is set
+     then maximal value of k-th slice will be limited by \sqrt{\sum
+     a_ij(k)/\sum a_ij(0)}.
+
+ -- MGL command: norm dat `v1 v2 [sym=off dim=0]'
+     Normalizes the data to range [V1,V2]. If flag SYM=`on' then
+     symmetrical interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used.
+     Modification will be applied only for slices >=DIM.
+
+
+File: mathgl_en.info,  Node: Operators (MGL),  Next: Program flow (MGL),  Prev: Change data (MGL),  Up: MGL interface
+
+8.22 Operators (MGL)
+====================
+
+ -- MGL command: multo dat dat2
+     Multiplies the data by the other one for each element.
+
+ -- MGL command: multo dat `val'
+     Multiplies each element by the number.
+
+ -- MGL command: divto dat dat2
+     Divides the data by the other one for each element.
+
+ -- MGL command: divto dat `val'
+     Divides each element by the number.
+
+ -- MGL command: addto dat dat2
+     Adds the other data.
+
+ -- MGL command: addto dat `val'
+     Adds the number to each element.
+
+ -- MGL command: subto dat dat2
+     Subtracts the other data.
+
+ -- MGL command: subto dat `val'
+     Subtracts the number to each element.
+
+
+File: mathgl_en.info,  Node: Program flow (MGL),  Next: Command options (MGL),  Prev: Operators (MGL),  Up: MGL interface
+
+8.23 Program flow (MGL)
+=======================
+
+These commands control program flow, like, conditions, cycles, define
+script arguments and so on.
+
+ -- MGL command: chdir 'path'
+     Changes the current directory to PATH.
+
+ -- MGL command: define $N smth
+     Sets N-th script argument to SMTH. Note, that SMTH is used as is
+     (with `'' symbols if present). Here N is digit (0...9) or alpha
+     (a...z).
+
+ -- MGL command: define name smth
+     Create scalar variable `name' which have the numeric value of
+     `smth'. Later you can use this variable as usual number. Here N is
+     digit (0...9) or alpha (a...z).
+   
+ -- MGL command: defchr $N smth
+     Sets N-th script argument to character with value evaluated from
+     SMTH. Here N is digit (0...9) or alpha (a...z).
+   
+ -- MGL command: defnum $N smth
+     Sets N-th script argument to number with value evaluated from
+     SMTH. Here N is digit (0...9) or alpha (a...z).
+   
+ -- MGL command: defpal $N smth
+     Sets N-th script argument to palette character at position
+     evaluated from SMTH. Here N is digit (0...9) or alpha (a...z).
+
+ -- MGL command: call 'fname' [ARG1 ARG2 ... ARG9]
+     Executes function FNAME (or script if function is not found).
+     Optional arguments will be passed to functions. See also *note
+     func::.
+   
+ -- MGL command: func 'fname' [narg=0]
+     Define the function FNAME and number of required arguments. The
+     arguments will be placed in script parameters $1, $2, ... $9.
+     Note, you should stop script execution before function
+     definition(s) by command *note stop::. See also *note return::.
+   
+ -- MGL command: return
+     Return from the function. See also *note func::.
+
+ -- MGL command: if dat 'cond'
+     Starts block which will be executed if DAT satisfy to COND.
+
+ -- MGL command: if `val'
+     Starts block which will be executed if `val' is nonzero.
+   
+ -- MGL command: elseif dat 'cond'
+     Starts block which will be executed if previous `if' or `elseif'
+     is false and DAT satisfy to COND.
+
+ -- MGL command: elseif `val'
+     Starts block which will be executed if previous `if' or `elseif'
+     is false and `val' is nonzero.
+   
+ -- MGL command: else
+     Starts block which will be executed if previous `if' or `elseif'
+     is false.
+   
+ -- MGL command: endif
+     Finishes `if/elseif/else' block.
+
+ -- MGL command: for $N `v1 v2 [dv=1]'
+     Starts cycle with $N-th argument changing from V1 to V2 with the
+     step DV. Here N is digit (0...9) or alpha (a...z).
+
+ -- MGL command: for $N dat
+     Starts cycle with $N-th argument changing for DAT values. Here N
+     is digit (0...9) or alpha (a...z).
+   
+ -- MGL command: next
+     Finishes `for' cycle.
+
+ -- MGL command: once `val'
+     The code between `once on' and `once off' will be executed only
+     once. Useful for large data manipulation in programs like UDAV.
+   
+ -- MGL command: stop
+     Terminate execution.
+
+
+File: mathgl_en.info,  Node: Command options (MGL),  Next: Suffixes,  Prev: Program flow (MGL),  Up: MGL interface
+
+8.24 Command options (MGL)
+==========================
+
+Command options allow the easy setup of the plot by changing of global
+settings only for this plot. Options are specified at the end of
+string. Each option is separated from the previous text by symbol `;'.
+Options work so that them remember the current settings, change
+settings as it being set in the option, execute command and return the
+original settings back. So, the options usage for data handling
+commands or for graphics setup commands is useless.
+
+   The most useful options are `xrange, yrange, zrange'. They sets the
+boundaries for data change. This boundaries are used for automatically
+filled variables. So, these options allow one to change the position of
+some plots. For example, in command `plot y; xrange 0.1 0.9' the x
+coordinate will be equidistantly distributed in range 0.1 ... 0.9.
+
+   The full list of options are: 
+
+ -- MGL option: alpha `val'
+ -- MGL option: alphadef `val'
+     Sets alpha value (transparency) of the plot. The value should be
+     in range [0, 1]. See also *note alphadef::.
+   
+ -- MGL option: ambient `val'
+     Sets brightness of ambient light for the plot. The value should be
+     in range [0, 1]. See also *note ambient::.
+   
+ -- MGL option: crange `val1 val2'
+     Sets boundaries of color change for the plot. See also *note
+     crange::.
+   
+ -- MGL option: xrange `val1 val2'
+     Sets boundaries of x coordinate change for the plot. See also
+     *note xrange::.
+   
+ -- MGL option: yrange `val1 val2'
+     Sets boundaries of y coordinate change for the plot. See also
+     *note yrange::.
+   
+ -- MGL option: zrange `val1 val2'
+     Sets boundaries of z coordinate change for the plot. See also
+     *note zrange::.
+   
+ -- MGL option: cut `val'
+     Sets whether to cut or to project the plot points lying outside
+     the bounding box. See also *note cut::.
+   
+ -- MGL option: fontsize `val'
+     Sets the size of text. See also *note font::.
+   
+ -- MGL option: marksize `val'
+     Sets the size of marks. See also *note marksize::.
+   
+ -- MGL option: meshnum `val'
+     Work like *note meshnum:: command.
+   
+ -- MGL option: legend 'txt'
+     Adds string 'txt' to internal legend accumulator. The style of
+     described line and mark is taken from arguments of the last *note
+     1D plotting (MGL):: command. See also *note legend::.
+
+
+File: mathgl_en.info,  Node: Suffixes,  Next: Utilities,  Prev: Command options (MGL),  Up: MGL interface
+
+8.25 Suffixes for variable
+==========================
+
+Suffixes can get some numerical value (like its size, maximal or
+minimal value, the sum of elements and so on) of the data array in
+variable and use it later as usual number in command arguments. The
+suffixes start from point `.' right after (without spaces) variable
+name or its sub-array. For example, `a.nx' give the x-size of data A,
+`b(1).max' give maximal value of second row of variable B,
+`(c(:,0)^2).sum' give the sum of squares of elements in the first
+column of C and so on.
+
+   The full list of suffixes are:
+*nx, ny, nz*
+     Give the data size in x-, y-, z-direction correspondingly.
+
+*max*
+     Give maximal value of the data.
+
+*min*
+     Give minimal value of the data.
+
+*sum*
+     Give sum of data values.
+
+*a*
+     Give first value of data array.
+
+*fst*
+     Give first nonzero value of data array.
+
+*lst*
+     Give last nonzero value of data array.
+
+*mx, my, mz*
+     Give x-, y-, z-position of data maximum.
+
+*ax, ay, az, aa*
+     Give x-, y-, z-position of data mass center or average data value.
+
+*wx, wy, wz, wa*
+     Give width in x-, y-, z-direction or data dispersion value.
+
+*sx, sy, sz, sa*
+     Give skewness in x-, y-, z-direction or data skewness value.
+
+*kx, ky, kz, ka*
+     Give kurtosis in x-, y-, z-direction or data kurtosis value.
+
+
+File: mathgl_en.info,  Node: Utilities,  Prev: Suffixes,  Up: MGL interface
+
+8.26 Utilities for parsing MGL
+==============================
+
+MathGL library provides several tools for parsing MGL scripts. There is
+tools saving it to bitmap (`mgl2png', `mgl2gif') or vectorial
+(`mgl2eps', `mgl2svg') images. Tool `mglview' show MGL script and allow
+to rotate and setup the image. Also you can translate MGL script to C++
+file by help of `mgl2cpp' tool.
+
+   All of this tools have similar set of arguments. First argument is
+name of script file, next argument is optional output file name, last
+arguments are options. There are options for setting script parameters
+(it is `$0, $1, ... $9') and locale settings. The script parameters
+have format `-Nval'. Here N=0,1...9 is parameter ID and val is its
+value. For example, option `-1test' set to substitute `test' instead of
+`$1' in the script. Option -Lval set locale to val. For example,
+`-Lutf8' will set UTF-8 locale for script.
+
+   Additionally you can create animated GIF file or a set of JPEG files
+with names `frameNNNN.jpg' (here `NNNN' is frame index). You should use
+`mgl2gif' tool and specify the values of `$0' parameter for making
+animation. Values of the parameter `$0' can be specified inside the
+script by comment `##a val' for each value `val' (one comment for one
+value) or by option(s) `-Aval'. Also you can specify a cycle for
+animation by comment `##c v1 v2 dv' or by option `-Cn1:n2'. Tool
+`mgl2gif' will execute script several times (once for each specified
+value of `$0') and save result in animated GIF file. For saving each
+frame in JPEG just add command `write ''' at the end of the script.
+
+
+File: mathgl_en.info,  Node: Samples,  Next: TeX-like symbols,  Prev: MGL interface,  Up: Top
+
+9 Samples
+*********
+
+This chapter contain a lot of sample codes for all types of plots and
+for most important examples and hints. The same sample (with pictures)
+you can find at `http://mathgl.sf.net/pictures.html'.  Most of examples
+have the sample code on 5 languages: C++, MGL, C, Fortran and Python.
+However, I put only C++ code for some of examples due to a lot of them
+and clearency how to write code for other languages. All samples are
+divided on 6 large categories.  The minimal code to view the samples
+for different languages are following.  *C++ code* For compilation use:
+`g++ -o sample sample.cpp -lmgl'.  #include <mgl/mgl_zb.h>
+int main()
+{
+    mglGraph *gr = new mglGraphZB;
+    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // put sample code here
+    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    gr->ShowImage();    delete gr;
+    return 0;
+}
+ *MGL code* For preview use: `mglview sample.mgl'.  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# put sample code here
+#   -->   you may use sample as is :)
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ *Pure C code* For compilation use: `gcc -o sample sample.c -lmgl'.  #include <mgl/mgl_c.h>
+int main()
+{
+    HMGL gr = mgl_create_graph_zb(600,400);
+    /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    /* put sample code here              */
+    /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    mgl_show_image(gr,"",0);
+    mgl_delete_graph(gr);
+    return 0;
+}
+ *Fortran code* For compilation use: `gfortran -o sample sample.f90
+-lmgl'. Note, fortran don't have argument checking. So you have to take
+special attention to pass real variables to real arguments of functions
+and integer variables to integer arguments of functions. There is no
+other special checking for that!!!  integer gr, mgl_create_graph_zb
+gr = mgl_create_graph_zb(600,400)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! put sample code here
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+call mgl_show_image(gr,'',0)
+call mgl_delete_graph(gr)
+end
+ *Python* For preview use: `python sample.py'.  from mathgl import *
+gr = mglGraph();
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# put sample code here
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+gr.ShowImage();
+
+* Menu:
+
+* 1D plotting samples::
+* 2D plotting samples::
+* 3D plotting samples::
+* Dual plotting samples::
+* Basic features::
+* Additional features::
+* Advanced features::
+
+
+File: mathgl_en.info,  Node: 1D plotting samples,  Next: 2D plotting samples,  Up: Samples
+
+9.1 1D plotting samples
+=======================
+
+* Menu:
+
+* Plot sample::
+* Radar sample::
+* Tens sample::
+* Area sample::
+* Area gradient sample::
+* Bars sample::
+* Bars 2 colors sample::
+* Bars above sample::
+* Bars fall sample::
+* Barh sample::
+* Step sample::
+* Stem sample::
+* Region sample::
+* Region gradient sample::
+* Error sample::
+* BoxPlot sample::
+* Mark sample::
+* TextMark sample::
+* Tube sample::
+* Text sample::
+* Torus sample::
+* Chart sample::
+* Pie chart sample::
+* Ring chart sample::
+
+
+File: mathgl_en.info,  Node: Plot sample,  Next: Radar sample,  Up: 1D plotting samples
+
+9.1.1 Plot sample
+-----------------
+
+ [image src="../png/plot.png" ]
+
+*C++ code* mglData y(50,3);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr->Box();
+gr->Plot(y);
+ *MGL code*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y
+ *Pure C code* HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_delete_data(y);
+ *Fortran code* integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_delete_data(y)
+ *Python* y = mglData(50,3);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr.Box();
+gr.Plot(y);
+
+
+File: mathgl_en.info,  Node: Radar sample,  Next: Tens sample,  Prev: Plot sample,  Up: 1D plotting samples
+
+9.1.2 Radar sample
+------------------
+
+ [image src="../png/radar.png" ]
+
+*C++ code* mglData y(10,3);
+y.Modify("0.4*sin(pi*(2*x+y/2))+0.1*rnd");
+gr->Radar(y,"#");
+ *MGL code*
+new y 10 3
+modify y '0.4*sin(pi*(2*x+y/2))+0.1*rnd'
+radar y '#'
+ *Pure C code* HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,"0.4*sin(pi*(2*x+y/2))+0.1*rnd",0);
+mgl_radar(gr,y,"#",-1);
+mgl_delete_data(y);
+ *Fortran code* integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.4*sin(pi*(2*x+y/2))+0.1*rnd',0)
+call mgl_radar(gr,y,'#',-1.)
+call mgl_delete_data(y)
+ *Python* y = mglData(10,3);
+y.Modify("0.4*sin(pi*(2*x+y/2))+0.1*rnd");
+gr.Radar(y,"#");
+
+
+File: mathgl_en.info,  Node: Tens sample,  Next: Area sample,  Prev: Radar sample,  Up: 1D plotting samples
+
+9.1.3 Tens sample
+-----------------
+
+ [image src="../png/tens.png" ]
+
+*C++ code* mglData y(50), c(50);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)");
+c.Modify("sin(2*pi*x)");
+gr->Box();
+gr->Tens(y,c);
+ *MGL code*
+new y 50
+new c 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify c 'sin(2*pi*x)'
+box
+tens y c
+ *Pure C code* HMDT y = mgl_create_data_size(50,1,1);
+HMDT c = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(c,"sin(2*pi*x)",0);
+mgl_box(gr,1);
+mgl_tens(gr,y,c,NULL);
+mgl_delete_data(y);
+mgl_delete_data(c);
+ *Fortran code* integer y, c, mgl_create_data_size
+y = mgl_create_data_size(50,1,1)
+c = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(c,'sin(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_tens(gr,y,'')
+call mgl_delete_data(y)
+call mgl_delete_data(c)
+ *Python* y = mglData(50);
+c = mglData(50);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)");
+c.Modify("sin(2*pi*x)");
+gr.Box();
+gr.Tens(y,c);
+
+
+File: mathgl_en.info,  Node: Area sample,  Next: Area gradient sample,  Prev: Tens sample,  Up: 1D plotting samples
+
+9.1.4 Area sample
+-----------------
+
+ [image src="../png/area.png" ]
+
+*C++ code* mglData y(50,3);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Area(y);
+ *MGL code*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y
+ *Pure C code* HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_area(gr,y,NULL);
+mgl_delete_data(y);
+ *Fortran code* integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_area(gr,y,'')
+call mgl_delete_data(y)
+ *Python* y = mglData(50,3);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Area(y);
+
+
+File: mathgl_en.info,  Node: Area gradient sample,  Next: Bars sample,  Prev: Area sample,  Up: 1D plotting samples
+
+9.1.5 Area with gradient filling sample
+---------------------------------------
+
+ [image src="../png/area_2.png" ]
+
+*C++ code* mglData y(50,3);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Area(y,"cbgGyr");
+ *MGL code*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y 'cbgGyr'
+ *Pure C code* HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_area(gr,y,"cbgGyr");
+mgl_delete_data(y);
+ *Fortran code* integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_area(gr,y,'cbgGyr')
+call mgl_delete_data(y)
+ *Python* y = mglData(50,3);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Area(y,"cbgGyr");
+
+
+File: mathgl_en.info,  Node: Bars sample,  Next: Bars 2 colors sample,  Prev: Area gradient sample,  Up: 1D plotting samples
+
+9.1.6 Bars sample
+-----------------
+
+ [image src="../png/bars.png" ]
+
+*C++ code* mglData y(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Bars(y);
+ *MGL code*
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y
+ *Pure C code* HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,"0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,NULL);
+mgl_delete_data(y);
+ *Fortran code* integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'')
+call mgl_delete_data(y)
+ *Python* y = mglData(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y);
+
+
+File: mathgl_en.info,  Node: Bars 2 colors sample,  Next: Bars above sample,  Prev: Bars sample,  Up: 1D plotting samples
+
+9.1.7 Bars 2 colors sample
+--------------------------
+
+ [image src="../png/bars_2.png" ]
+
+*C++ code* mglData y(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Bars(y,"cbgGyr");
+ *MGL code*
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'cbgGyr'
+ *Pure C code* HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,"0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,"cbgGyr");
+mgl_delete_data(y);
+ *Fortran code* integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'cbgGyr')
+call mgl_delete_data(y)
+ *Python* y = mglData(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,"cbgGyr");
+
+
+File: mathgl_en.info,  Node: Bars above sample,  Next: Bars fall sample,  Prev: Bars 2 colors sample,  Up: 1D plotting samples
+
+9.1.8 Bars above sample
+-----------------------
+
+ [image src="../png/bars_a.png" ]
+
+*C++ code* mglData y(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Bars(y,"a");
+ *MGL code*
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'a'
+ *Pure C code* HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,"0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,"a");
+mgl_delete_data(y);
+ *Fortran code* integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'a')
+call mgl_delete_data(y)
+ *Python* y = mglData(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,"a");
+
+
+File: mathgl_en.info,  Node: Bars fall sample,  Next: Barh sample,  Prev: Bars above sample,  Up: 1D plotting samples
+
+9.1.9 Bars fall sample
+----------------------
+
+ [image src="../png/bars_f.png" ]
+
+*C++ code* mglData y(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Bars(y,"f");
+ *MGL code*
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'f'
+ *Pure C code* HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,"0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,"f");
+mgl_delete_data(y);
+ *Fortran code* integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'f')
+call mgl_delete_data(y)
+ *Python* y = mglData(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,"f");
+
+
+File: mathgl_en.info,  Node: Barh sample,  Next: Step sample,  Prev: Bars fall sample,  Up: 1D plotting samples
+
+9.1.10 Barh sample
+------------------
+
+ [image src="../png/barh.png" ]
+
+*C++ code* mglData y(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Barh(y);
+ *MGL code*
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+barh y
+ *Pure C code* HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,"0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_barh(gr,y,NULL);
+mgl_delete_data(y);
+ *Fortran code* integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_barh(gr,y,'')
+call mgl_delete_data(y)
+ *Python* y = mglData(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Barh(y);
+
+
+File: mathgl_en.info,  Node: Step sample,  Next: Stem sample,  Prev: Barh sample,  Up: 1D plotting samples
+
+9.1.11 Step sample
+------------------
+
+ [image src="../png/step.png" ]
+
+*C++ code* mglData y(50,3);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr->Box();
+gr->Step(y);
+ *MGL code*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+step y
+ *Pure C code* HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_box(gr,1);
+mgl_step(gr,y,NULL);
+mgl_delete_data(y);
+ *Fortran code* integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_box(gr,1)
+call mgl_step(gr,y,'')
+call mgl_delete_data(y)
+ *Python* y = mglData(50,3);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr.Box();
+gr.Step(y);
+
+
+File: mathgl_en.info,  Node: Stem sample,  Next: Region sample,  Prev: Step sample,  Up: 1D plotting samples
+
+9.1.12 Stem sample
+------------------
+
+ [image src="../png/stem.png" ]
+
+*C++ code* mglData y(50,3);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Stem(y,"o");
+ *MGL code*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+stem y 'o'
+ *Pure C code* HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_stem(gr,y,"o");
+mgl_delete_data(y);
+ *Fortran code* integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_stem(gr,y,'o')
+call mgl_delete_data(y)
+ *Python* y = mglData(50,3);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Stem(y,"o");
+
+
+File: mathgl_en.info,  Node: Region sample,  Next: Region gradient sample,  Prev: Stem sample,  Up: 1D plotting samples
+
+9.1.13 Region sample
+--------------------
+
+ [image src="../png/region.png" ]
+
+*C++ code* mglData y1(50), y2(50);
+y1.Modify("0.3*sin(2*pi*x)");
+y2.Modify("0.5+0.3*cos(2*pi*x)");
+gr->Box();
+gr->Region(y1,y2,"r");
+gr->Plot(y1,"k2");
+gr->Plot(y2,"k2");
+ *MGL code*
+new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'r'
+plot y1 'k2'
+plot y2 'k2'
+ *Pure C code* HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,"0.3*sin(2*pi*x)",0);
+mgl_data_modify(y2,"0.5+0.3*cos(2*pi*x)",0);
+mgl_box(gr,1);
+mgl_region(gr,y1,y2,"r",1);
+mgl_plot(gr,y1,"k2");
+mgl_plot(gr,y2,"k2");
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+ *Fortran code* integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,'0.3*sin(2*pi*x)',0);
+call mgl_data_modify(y2,'0.5+0.3*cos(2*pi*x)',0);
+call mgl_box(gr,1);
+call mgl_region(gr,y1,y2,'r',1);
+call mgl_plot(gr,y1,'k2');
+call mgl_plot(gr,y2,'k2');
+call mgl_delete_data(y1);
+call mgl_delete_data(y2);
+ *Python* y1, y2, x = mglData(50), mglData(50), mglData(50);
+y1.Modify("0.3*sin(2*pi*x)");
+y2.Modify("0.5+0.3*cos(2*pi*x)");
+gr.Box();
+gr.Region(y1,y2,"r");
+gr.Plot(y1,"k2");
+gr.Plot(y2,"k2");
+
+
+File: mathgl_en.info,  Node: Region gradient sample,  Next: Error sample,  Prev: Region sample,  Up: 1D plotting samples
+
+9.1.14 Region gradient sample
+-----------------------------
+
+ [image src="../png/region_2.png" ]
+
+*C++ code* mglData y1(50), y2(50);
+y1.Modify("0.3*sin(2*pi*x)");
+y2.Modify("0.5+0.3*cos(2*pi*x)");
+gr->Box();
+gr->Region(y1,y2,"yr");
+gr->Plot(y1,"k2");
+gr->Plot(y2,"k2");
+ *MGL code*
+new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'yr'
+plot y1 'k2'
+plot y2 'k2'
+ *Pure C code* HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,"0.3*sin(2*pi*x)",0);
+mgl_data_modify(y2,"0.5+0.3*cos(2*pi*x)",0);
+mgl_box(gr,1);
+mgl_region(gr,y1,y2,"yr",1);
+mgl_plot(gr,y1,"k2");
+mgl_plot(gr,y2,"k2");
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+ *Fortran code* integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,'0.3*sin(2*pi*x)',0);
+call mgl_data_modify(y2,'0.5+0.3*cos(2*pi*x)',0);
+call mgl_box(gr,1);
+call mgl_region(gr,y1,y2,'yr',1);
+call mgl_plot(gr,y1,'k2');
+call mgl_plot(gr,y2,'k2');
+call mgl_delete_data(y1);
+call mgl_delete_data(y2);
+ *Python* y1, y2, x = mglData(50), mglData(50), mglData(50);
+y1.Modify("0.3*sin(2*pi*x)");
+y2.Modify("0.5+0.3*cos(2*pi*x)");
+gr.Box();
+gr.Region(y1,y2,"yr");
+gr.Plot(y1,"k2");
+gr.Plot(y2,"k2");
+
+
+File: mathgl_en.info,  Node: Error sample,  Next: BoxPlot sample,  Prev: Region gradient sample,  Up: 1D plotting samples
+
+9.1.15 Error sample
+-------------------
+
+ [image src="../png/error.png" ]
+
+*C++ code* mglData y(50,1), x0(10), y0(10), ex(10), ey(10);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+x0.Modify("2*x-1 + 0.1*rnd-0.05");
+y0.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1");
+ey.Modify("0.2"); ex.Modify("0.1");
+gr->Box();
+gr->Plot(y);
+gr->Error(x0,y0,ex,ey,"ko");
+ *MGL code*
+new y 50
+new x0 10
+new y0 10
+new ex 10
+new ey 10
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify x0 '2*x-1 + 0.1*rnd-0.05'
+modify y0 '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1'
+modify ey '0.2'
+modify ex '0.1'
+box
+plot y
+error x0 y0 ex ey 'ko'
+ *Pure C code* HMDT y = mgl_create_data_size(50,1,1);
+HMDT x0 = mgl_create_data_size(10,1,1);
+HMDT y0 = mgl_create_data_size(10,1,1);
+HMDT ex = mgl_create_data_size(10,1,1);
+HMDT ey = mgl_create_data_size(10,1,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(x0,"2*x-1 + 0.1*rnd-0.05",0);
+mgl_data_modify(y0,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1",0);
+mgl_data_modify(ey,"0.2",0); mgl_data_modify(ex,"0.1",0);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_error_exy(gr,x0,y0,ex,ey,"ko");
+mgl_delete_data(x0); mgl_delete_data(y0);
+mgl_delete_data(ex); mgl_delete_data(ey);
+mgl_delete_data(y);
+ *Fortran code* integer y, x0, y0, ex, ey, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+x0 = mgl_create_data_size(10,1,1)
+y0 = mgl_create_data_size(10,1,1)
+ex = mgl_create_data_size(10,1,1)
+ey = mgl_create_data_size(10,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(x0,'2*x-1 + 0.1*rnd-0.05',0);
+call mgl_data_modify(y0,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + &
+                         0.2*sin(pi*x) + 0.2*rnd-0.1',0);
+call mgl_data_modify(ey,'0.2',0)
+call mgl_data_modify(ex,'0.1',0);
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_error_exy(gr,x0,y0,ex,ey,'ko')
+call mgl_delete_data(x0)
+call mgl_delete_data(y0)
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(y)
+ *Python* y, x0, y0, ex, ey = mglData(50,1), mglData(10), mglData(10), mglData(10), mglData(10);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+x0.Modify("2*x-1+0.1*rnd-0.05");
+y0.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)+0.2*rnd-0.1");
+ey.Modify("0.2");   ex.Modify("0.1");
+gr.Box();           gr.Plot(y);
+gr.Error(x0,y0,ex,ey,"ko");
+
+
+File: mathgl_en.info,  Node: BoxPlot sample,  Next: Mark sample,  Prev: Error sample,  Up: 1D plotting samples
+
+9.1.16 BoxPlot sample
+---------------------
+
+ [image src="../png/boxplot.png" ]
+
+*C++ code* mglData a(10,7);
+a.Modify("(2*rnd-1)^3/2");
+gr->BoxPlot(a);
+gr->Box();
+gr->Plot(a," ko");
+ *MGL code*
+new a 10 7
+modify a '(2*rnd-1)^3/2'
+boxplot a
+box:plot a ' ko'
+ *Pure C code* HMDT a = mgl_create_data_size(10,7,1);
+mgl_data_modify(a,"(2*rnd-1)^3/2",0);
+mgl_box(gr,1);
+mgl_plot(gr,a," ko");
+mgl_boxplot(gr,a,NULL);
+mgl_delete_data(a);
+ *Fortran code* integer a, mgl_create_data_size
+y = mgl_create_data_size(10,7,1)
+call mgl_data_modify(a,'(2*rnd-1)^3/2',0);
+call mgl_box(gr,1)
+call mgl_plot(gr,a,' ko')
+call mgl_boxplot(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(10,7);
+a.Modify("(2*rnd-1)^3/2");
+gr.Box();
+gr.Plot(a," ko");
+gr.BoxPlot(a);
+
+
+File: mathgl_en.info,  Node: Mark sample,  Next: TextMark sample,  Prev: BoxPlot sample,  Up: 1D plotting samples
+
+9.1.17 Mark sample
+------------------
+
+ [image src="../png/mark.png" ]
+
+*C++ code* mglData y(50,3), y1(50);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+y1.Modify("0.5+0.3*cos(2*pi*x)");
+gr->Box();
+gr->Mark(y,y1,"bs");
+ *MGL code*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+mark y y1 'bs'
+ *Pure C code* HMDT y = mgl_create_data_size(50,3,1);
+HMDT y1 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_data_modify(y1,"0.5+0.3*cos(2*pi*x)",0);
+mgl_box(gr,1);
+mgl_mark_y(gr,y,y1,"bs");
+mgl_delete_data(y);
+mgl_delete_data(y1);
+ *Fortran code* integer y, y1, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+y1 = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_data_modify(y1,'0.5+0.3*cos(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_mark_y(gr,y,y1,'bs')
+call mgl_delete_data(y)
+call mgl_delete_data(y1)
+ *Python* y, y1 = mglData(50,3), mglData(50);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);     y.Modify("cos(2*pi*x)",2);
+y1.Modify("0.5+0.3*cos(2*pi*x)");
+gr.Box();
+gr.Mark(y,y1,"bs");
+
+
+File: mathgl_en.info,  Node: TextMark sample,  Next: Tube sample,  Prev: Mark sample,  Up: 1D plotting samples
+
+9.1.18 TextMark sample
+----------------------
+
+ [image src="../png/textmark.png" ]
+
+*C++ code* mglData y(50,3), y1(50);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+y1.Modify("0.5+0.3*cos(2*pi*x)");
+gr->Box();
+gr->TextMark(y,y1,"\\gamma");
+ *MGL code*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+textmark y y1 '\gamma'
+ *Pure C code* HMDT y, y1;
+y = mgl_create_data_size(50,3,1);
+y1 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_data_modify(y1,"0.5+0.3*cos(2*pi*x)",0);
+mgl_box(gr,1);
+mgl_textmark_yr(gr,y,y1,"\\gamma","");
+mgl_delete_data(y);
+mgl_delete_data(y1);
+ *Fortran code* integer y, y1, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+y1 = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_data_modify(y1,'0.5+0.3*cos(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_textmark_yr(gr,y,y1,'\gamma','')
+call mgl_delete_data(y)
+call mgl_delete_data(y1)
+ *Python* y, y1 = mglData(50,3), mglData(50);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);     y.Modify("cos(2*pi*x)",2);
+y1.Modify("0.5+0.3*cos(2*pi*x)");
+gr.Box();
+gr.TextMark(y,y1,"\\gamma");
+
+
+File: mathgl_en.info,  Node: Tube sample,  Next: Text sample,  Prev: TextMark sample,  Up: 1D plotting samples
+
+9.1.19 Tube sample
+------------------
+
+ [image src="../png/tube.png" ]
+
+*C++ code* mglData y(50,3);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Tube(y,0.05);
+ *MGL code*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+rotate 40 60
+light on
+box
+tube y 0.05
+ *Pure C code* HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_tube(gr,y,0.05,NULL);
+mgl_delete_data(y);
+ *Fortran code* integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_tube(gr,y,0.05,'')
+call mgl_delete_data(y)
+ *Python* y = mglData(50,3);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);  y.Modify("cos(2*pi*x)",2);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Tube(y,0.05);
+
+
+File: mathgl_en.info,  Node: Text sample,  Next: Torus sample,  Prev: Tube sample,  Up: 1D plotting samples
+
+9.1.20 Text sample
+------------------
+
+ [image src="../png/text.png" ]
+
+*C++ code* mglData y(50,3);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr->Box();
+gr->Plot(y.SubData(-1,0));
+gr->Text(y,"This is very long string drawn along a curve",":k");
+gr->Text(y,"Another string drawn above a curve","T:r");
+ *MGL code*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y(:,0)
+text y 'This is very long string drawn along a curve' ':k'
+text y 'Another string drawn above a curve' 'T:r'
+ *Pure C code* HMDT y = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_text_y(gr,y,"This is very long string drawn along a curve",":k",-1.);
+mgl_text_y(gr,y,"Another string drawn above a curve","T:r",-1.);
+mgl_delete_data(y);
+ *Fortran code* integer y, mgl_create_data_size
+y = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_text_y(gr,y,'This is very long string drawn along a curve',':k',-1.)
+call mgl_text_y(gr,y,'Another string drawn above a curve','T:r',-1.)
+call mgl_delete_data(y)
+ *Python* y = mglData(50,3);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);     y.Modify("cos(2*pi*x)",2);
+gr.Box();
+gr.Plot(y.SubData(-1,0));
+gr.Text(y,"This is very long string drawn along a curve",":k");
+gr.Text(y,"Another string drawn above a curve","T:r");
+
+
+File: mathgl_en.info,  Node: Torus sample,  Next: Chart sample,  Prev: Text sample,  Up: 1D plotting samples
+
+9.1.21 Torus sample
+-------------------
+
+ [image src="../png/torus.png" ]
+
+*C++ code* mglData y1(50), y2(50);
+y1.Modify("0.5+0.3*cos(2*pi*x)");
+y2.Modify("0.3*sin(2*pi*x)");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Torus(y1,y2,"pz");
+ *MGL code*
+new y1 50
+new y2 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+rotate 40 60
+light on
+box
+torus y1 y2 'pz'
+ *Pure C code* HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,"0.5+0.3*cos(2*pi*x)",0);
+mgl_data_modify(y2,"0.3*sin(2*pi*x)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_torus(gr,y1,y2,"pz");
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+ *Fortran code* integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,"0.5+0.3*cos(2*pi*x)",0);
+call mgl_data_modify(y2,"0.3*sin(2*pi*x)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_torus(gr,y1,y2,'pz')
+call mgl_delete_data(y1)
+call mgl_delete_data(y2)
+ *Python* y1, y2 = mglData(50), mglData(50);
+y1.Modify("0.5+0.3*cos(2*pi*x)");
+y2.Modify("0.3*sin(2*pi*x)");
+gr.Rotate(40,60);    gr.Light(True);
+gr.Box();
+gr.Torus(y1,y2,"pz");
+
+
+File: mathgl_en.info,  Node: Chart sample,  Next: Pie chart sample,  Prev: Torus sample,  Up: 1D plotting samples
+
+9.1.22 Chart sample
+-------------------
+
+ [image src="../png/chart.png" ]
+
+*C++ code* mglData ch(7,2);
+ch.Modify("rnd+0.1");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Chart(ch,"#");
+ *MGL code*
+new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+box
+chart ch
+ *Pure C code* HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,"rnd+0.1",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_chart(gr,ch,"#");
+mgl_delete_data(ch);
+ *Fortran code* integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'#')
+call mgl_delete_data(ch)
+ *Python* ch = mglData(7,2);  ch.Modify("rnd+0.1");
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Chart(ch,"#");
+
+
+File: mathgl_en.info,  Node: Pie chart sample,  Next: Ring chart sample,  Prev: Chart sample,  Up: 1D plotting samples
+
+9.1.23 Pie chart sample
+-----------------------
+
+ [image src="../png/pie_chart.png" ]
+
+*C++ code* mglData ch(7,2);
+ch.Modify("rnd+0.1");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->SetFunc("(y+1)/2*cos(pi*x)","(y+1)/2*sin(pi*x)");
+gr->Box();
+gr->Chart(ch,"bgr cmy#");
+ *MGL code*
+new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+1)/2*cos(pi*x)' '(y+1)/2*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+ *Pure C code* HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,"rnd+0.1",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_func(gr,"(y+1)/2*cos(pi*x)","(y+1)/2*sin(pi*x)",0);
+mgl_box(gr,1);
+mgl_chart(gr,ch,"bgr cmy#");
+mgl_delete_data(ch);
+ *Fortran code* integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_func(gr,'(y+1)/2*cos(pi*x)','(y+1)/2*sin(pi*x)','');
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'bgr cmy#')
+call mgl_delete_data(ch)
+ *Python* ch = mglData(7,2);  ch.Modify("rnd+0.1");
+gr.Rotate(40,60);   gr.Light(True);
+gr.SetFunc("(y+1)/2*cos(pi*x)","(y+1)/2*sin(pi*x)");
+gr.Box();
+gr.Chart(ch,"bgr cmy#");
+
+
+File: mathgl_en.info,  Node: Ring chart sample,  Prev: Pie chart sample,  Up: 1D plotting samples
+
+9.1.24 Ring chart sample
+------------------------
+
+ [image src="../png/ring_chart.png" ]
+
+*C++ code* mglData ch(7,2);
+ch.Modify("rnd+0.1");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->SetFunc("(y+2)/3*cos(pi*x)","(y+2)/3*sin(pi*x)");
+gr->Box();
+gr->Chart(ch,"bgr cmy#");
+ *MGL code*
+new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+2)/3*cos(pi*x)' '(y+2)/3*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+ *Pure C code* HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,"rnd+0.1",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_func(gr,"(y+2)/3*cos(pi*x)","(y+2)/3*sin(pi*x)",0);
+mgl_box(gr,1);
+mgl_chart(gr,ch,"bgr cmy#");
+mgl_delete_data(ch);
+ *Fortran code* integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_func(gr,'(y+2)/3*cos(pi*x)','(y+2)/3*sin(pi*x)','');
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'bgr cmy#')
+call mgl_delete_data(ch)
+ *Python* ch = mglData(7,2);  ch.Modify("rnd+0.1");
+gr.Rotate(40,60);   gr.Light(True);
+gr.SetFunc("(y+2)/3*cos(pi*x)","(y+2)/3*sin(pi*x)");
+gr.Box();
+gr.Chart(ch,"bgr cmy#");
+
+
+File: mathgl_en.info,  Node: 2D plotting samples,  Next: 3D plotting samples,  Prev: 1D plotting samples,  Up: Samples
+
+9.2 2D plotting samples
+=======================
+
+* Menu:
+
+* Surf sample::
+* Transparent surface sample::
+* Surface in fog sample::
+* Sharp colors sample::
+* Mesh sample::
+* Fall sample::
+* Belt sample::
+* Tile sample::
+* Boxs sample::
+* Dens sample::
+* Cont sample::
+* ContF sample::
+* ContD sample::
+* Axial sample::
+* Grad sample::
+
+
+File: mathgl_en.info,  Node: Surf sample,  Next: Transparent surface sample,  Up: 2D plotting samples
+
+9.2.1 Surf sample
+-----------------
+
+ [image src="../png/surf.png" ]
+
+*C++ code* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Surf(a);
+ *MGL code*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+ *Pure C code* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+ *Fortran code* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Surf(a);
+
+
+File: mathgl_en.info,  Node: Transparent surface sample,  Next: Surface in fog sample,  Prev: Surf sample,  Up: 2D plotting samples
+
+9.2.2 Transparent surface sample
+--------------------------------
+
+ [image src="../png/surf_alpha.png" ]
+
+*C++ code* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Alpha(true);
+gr->Box();
+gr->Surf(a);
+ *MGL code*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surf a
+ *Pure C code* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+ *Fortran code* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Alpha(True);
+gr.Surf(a);
+
+
+File: mathgl_en.info,  Node: Surface in fog sample,  Next: Sharp colors sample,  Prev: Transparent surface sample,  Up: 2D plotting samples
+
+9.2.3 Surface in fog sample
+---------------------------
+
+ [image src="../png/surf_fog.png" ]
+
+*C++ code* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Fog(1);
+gr->Box();
+gr->Surf(a);
+ *MGL code*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+fog 1
+box
+surf a
+ *Pure C code* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_fog(gr,1.,0.25);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+ *Fortran code* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_fog(gr,1.,0.25)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Fog(1);
+gr.Surf(a);
+
+
+File: mathgl_en.info,  Node: Sharp colors sample,  Next: Mesh sample,  Prev: Surface in fog sample,  Up: 2D plotting samples
+
+9.2.4 Sharp colors sample
+-------------------------
+
+ [image src="../png/surf_sl.png" ]
+
+*C++ code* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Surf(a,"BbcyrR|");
+ *MGL code*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a 'BbcyrR|'
+ *Pure C code* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,"BbcyrR|");
+mgl_delete_data(a);
+ *Fortran code* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'BbcyrR|')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Surf(a,"BbcyrR|");
+
+
+File: mathgl_en.info,  Node: Mesh sample,  Next: Fall sample,  Prev: Sharp colors sample,  Up: 2D plotting samples
+
+9.2.5 Mesh sample
+-----------------
+
+ [image src="../png/mesh.png" ]
+
+*C++ code* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Box();
+gr->Mesh(a);
+ *MGL code*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+mesh a
+ *Pure C code* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_mesh(gr,a,0);
+mgl_delete_data(a);
+ *Fortran code* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_mesh(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Mesh(a);
+
+
+File: mathgl_en.info,  Node: Fall sample,  Next: Belt sample,  Prev: Mesh sample,  Up: 2D plotting samples
+
+9.2.6 Fall sample
+-----------------
+
+ [image src="../png/fall.png" ]
+
+*C++ code* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Box();
+gr->Fall(a);
+ *MGL code*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+fall a
+ *Pure C code* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_fall(gr,a,0);
+mgl_delete_data(a);
+ *Fortran code* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_fall(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Fall(a);
+
+
+File: mathgl_en.info,  Node: Belt sample,  Next: Tile sample,  Prev: Fall sample,  Up: 2D plotting samples
+
+9.2.7 Belt sample
+-----------------
+
+ [image src="../png/belt.png" ]
+
+*C++ code* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Belt(a);
+ *MGL code*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+belt a
+ *Pure C code* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_belt(gr,a,0);
+mgl_delete_data(a);
+ *Fortran code* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_belt(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Belt(a);
+
+
+File: mathgl_en.info,  Node: Tile sample,  Next: Boxs sample,  Prev: Belt sample,  Up: 2D plotting samples
+
+9.2.8 Tile sample
+-----------------
+
+ [image src="../png/tile.png" ]
+
+*C++ code* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Tile(a);
+ *MGL code*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+tile a
+ *Pure C code* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_tile(gr,a,0);
+mgl_delete_data(a);
+ *Fortran code* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_tile(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Tile(a);
+
+
+File: mathgl_en.info,  Node: Boxs sample,  Next: Dens sample,  Prev: Tile sample,  Up: 2D plotting samples
+
+9.2.9 Boxs sample
+-----------------
+
+ [image src="../png/boxs.png" ]
+
+*C++ code* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);  gr->Light(true);
+gr->Org = mglPoint(0,0,0);
+gr->Box();
+gr->Boxs(a);
+ *MGL code*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+origin 0 0 0
+box
+boxs a
+ *Pure C code* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_boxs(gr,a,0,0.);
+mgl_delete_data(a);
+ *Fortran code* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_origin(gr,0.,0.,0.);
+call mgl_box(gr,1)
+call mgl_boxs(gr,a,'',0.)
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);       gr.Light(True);
+gr.SetOrigin(0.,0.,0.); gr.Box();
+gr.Boxs(a);
+
+
+File: mathgl_en.info,  Node: Dens sample,  Next: Cont sample,  Prev: Boxs sample,  Up: 2D plotting samples
+
+9.2.10 Dens sample
+------------------
+
+ [image src="../png/dens.png" ]
+
+*C++ code* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Box();
+gr->Dens(a);
+gr->Colorbar();
+ *MGL code*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+dens a
+colorbar
+ *Pure C code* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_box(gr,1);
+mgl_dens(gr,a,0,0);
+mgl_colorbar(gr,"",0);
+mgl_delete_data(a);
+ *Fortran code* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_box(gr,1)
+call mgl_dens(gr,a,'',0)
+call mgl_colorbar(gr,'',0)
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Box();
+gr.Dens(a);
+gr.Colorbar();
+
+
+File: mathgl_en.info,  Node: Cont sample,  Next: ContF sample,  Prev: Dens sample,  Up: 2D plotting samples
+
+9.2.11 Cont sample
+------------------
+
+ [image src="../png/cont.png" ]
+
+*C++ code* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Box();
+gr->Cont(a);
+ *MGL code*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+cont a
+ *Pure C code* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_cont(gr,a,0,7,NAN);
+mgl_delete_data(a);
+ *Fortran code* integer a, mgl_create_data_size
+real zero, nan
+! I don't know the NaN symbol in Fortran. So I produce it as zero/zero
+zero = 0; nan = zero/zero
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_cont(gr,a,'',7,nan)
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);
+gr.Box();
+gr.Cont(a);
+
+
+File: mathgl_en.info,  Node: ContF sample,  Next: ContD sample,  Prev: Cont sample,  Up: 2D plotting samples
+
+9.2.12 ContF sample
+-------------------
+
+ [image src="../png/contf.png" ]
+
+*C++ code* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);  gr->Light(true);
+gr->Box();
+gr->ContF(a);
+ *MGL code*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+contf a
+ *Pure C code* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_contf(gr,a,0,7,NAN);
+mgl_delete_data(a);
+ *Fortran code* integer a, mgl_create_data_size
+real zero, nan
+! I don't know the NaN symbol in Fortran. So I produce it as zero/zero
+zero = 0; nan = zero/zero
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_contf(gr,a,'',7,nan)
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.ContF(a);
+
diff --git a/texinfo/mathgl_en.info-3 b/texinfo/mathgl_en.info-3
new file mode 100644
index 0000000..c894f54
Binary files /dev/null and b/texinfo/mathgl_en.info-3 differ
diff --git a/texinfo/mathgl_ru.html/mathgl_ru.html b/texinfo/mathgl_ru.html/mathgl_ru.html
new file mode 100644
index 0000000..366166a
--- /dev/null
+++ b/texinfo/mathgl_ru.html/mathgl_ru.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: MathGL</title>
+
+<meta name="description" content="MathGL 1.11: MathGL">
+<meta name="keywords" content="MathGL 1.11: MathGL">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Top"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL"></a>
+<h1 class="settitle">MathGL</h1>
+
+<p>Это документация для MathGL (версии 1.11) &ndash; библиотеки классов и функций для построения научной графики. Пожалуйста сообщайте о любых ошибках в этом руководстве на <a href="mailto:mathgl.abalakin at gmail.org">mathgl.abalakin at gmail.org</a>. Дополнительную информацию о MathGL можно найти на домашней странице проекта <a href="http://mathgl.sourceforge.net/">http://mathgl.sourceforge.net/</a>.
+</p>
+<p>Copyright &copy; 2009 Алексей Балакин. 
+</p>
+<blockquote><p>Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being &ldquo;A GNU Manual,&rdquo;
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled &ldquo;GNU Free Documentation
+License.&rdquo;
+</p>
+<p>(a) The FSF&rsquo;s Back-Cover Text is: &ldquo;You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom.&rdquo;
+</p></blockquote>
+
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="mathgl_ru_1.html#Overview">1. Обзор MathGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_2.html#Examples">2. MathGL examples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_3.html#MathGL-core">3. Ядро MathGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_4.html#Plotter-classes">4. Классы для отрисовки</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_5.html#Widget-classes">5. &ldquo;Оконные&rdquo; классы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_6.html#mglData-class">6. Класс mglData</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_7.html#Other-classes">7. Other classes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_8.html#MGL-interface">8. Язык MGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_9.html#Samples">9. Примеры использования MathGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_10.html#TeX_002dlike-symbols">A. Символы TeX</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_11.html#Copying-This-Manual">B. GNU Free Documentation License</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mathgl_ru_12.html#Index">Индекс</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_ru.html/mathgl_ru_1.html b/texinfo/mathgl_ru.html/mathgl_ru_1.html
new file mode 100644
index 0000000..e97a614
--- /dev/null
+++ b/texinfo/mathgl_ru.html/mathgl_ru_1.html
@@ -0,0 +1,892 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: 1. Обзор MathGL</title>
+
+<meta name="description" content="MathGL 1.11: 1. Обзор MathGL">
+<meta name="keywords" content="MathGL 1.11: 1. Обзор MathGL">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Overview"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Why-I-have-written-MathGL_003f" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+
+<a name="g_t_041e_0431_0437_043e_0440-MathGL"></a>
+<h1 class="chapter">1. Обзор MathGL</h1>
+
+<a name="index-_041e_0431_0437_043e_0440-MathGL"></a>
+
+<p>MathGL это ...
+</p><ul>
+<li>
+библиотека для создания высококачественной научной графики под Linux и Windows;
+</li><li>
+библиотека для быстрого обработки и отображения больших массивов данных;
+</li><li>
+библиотека для работы в оконном и консольном режимах;
+</li><li>
+библиотека с большим набором базовых типов графиков.
+</li></ul>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Why-I-have-written-MathGL_003f">1.1 Зачем написана MathGL?</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#MathGL-features">1.2 Возможности MathGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Installation-and-using">1.3 Установка MathGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#General-concepts">1.4 Основные принципы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#FAQ">1.5 FAQ</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Interfaces">1.6 Интерфейсы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Thanks">1.7 Благодарности</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Why-I-have-written-MathGL_003f"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Overview" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0417_0430_0447e_043c-_043d_0430_043f_0438_0441_0430_043d_0430-MathGL_003f"></a>
+<h2 class="section">1.1 Зачем написана MathGL?</h2>
+
+<p>Код для создания качественной научной графики на различных платформах. Код для быстрой обработки и отображения больших массивов данных. Код для работы в графическом и консольном режимах и легкого интегрирования в другие программы. Код с большим обновляемым набором графиков и инструментами обработки данных. Именно такого кода мне не хватало в последние годы при работе на персональных компьютерах и на кластерах. И именно такой код я постарался создать в библиотеке MathGL.
+</p>
+<p>На данный момент (версия 1.11) MathGL это более 20000 строк кода, более 40 основных типов графиков для одно-, двух- и трехмерных массивов, возможность экспорта в растровые и векторные (EPS или SVG) файлы, интерфейс для OpenGL и возможность запуска в консольном режиме, функции для обработки данных и даже простейший командный (интерпретируемый) язык MGL для упрощения построения графиков. Кроме того, есть несколько типов прозрачности, гладкое освещение, векторные шрифты, TeX-ие команды в надписях, произвольные криволинейные системы координат и прочие полезные мелочи (см. раздел pictures на <a href="http://mathgl.sf.net/">домашней странице</a>). Ну, и, естественно, полная переносимость библиотеки и ее свободное распространение под лицензией GPL v.2.0 или более поздней.
+</p>
+<hr size="6">
+<a name="MathGL-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Why-I-have-written-MathGL_003f" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Installation-and-using" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0412_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438-MathGL"></a>
+<h2 class="section">1.2 Возможности MathGL</h2>
+
+<p>Библиотека MathGL позволяет строить широкий класс графиков, включая:
+</p><ul>
+<li>
+рисование одномерных массивов (Plot, Area, Bars, Step, Stem, Torus, Chart, Error, Tube, Mark, see section <a href="mathgl_ru_3.html#g_t1D-plotting">1D графики</a>);
+
+</li><li>
+рисование двумерных массивов (Mesh, Surf, Dens, Cont, ContF, Boxs, Axial, Fall, Belt, Tile, see section <a href="mathgl_ru_3.html#g_t2D-plotting">2D графики</a>);
+
+</li><li>
+рисование трехмерных массивов (Surf3, Dens3, Cont3, ContF3, Cloud-like, see section <a href="mathgl_ru_3.html#g_t3D-plotting">3D графики</a>);
+
+</li><li>
+рисование нескольких связанных массивов: векторные поля Vect и VectC, линии тока Flow, точечное отображение Map, поверхности с прозрачностью или цветом, определяемым другим массивом SurfA, SurfC, Surf3A, Surf3C (see section <a href="mathgl_ru_3.html#Dual-plotting">Парные графики</a>);
+
+</li><li>
+и другие (см. see section <a href="mathgl_ru_3.html#MathGL-core">Ядро MathGL</a>).
+</li></ul>
+
+<p>Фактически, я постарался реализовать все известные мне типы научных графиков. Список графиков постоянно пополняется, и если Вам нужен какой-то новый вариант, пишите на <a href="mailto:mathgl.abalakin at gmail.com">e-mail</a>, и в новой версии библиотеки этот график появится.
+</p>
+<p>Я постарался сделать графики максимально красивыми &ndash; поверхности могут быть прозрачными и освещены произвольно расположенными источниками света (максимальное их количество 10). Большинство функций рисования имеет два варианта: простой для быстрого построения картинки и более сложный для детальной настройки отображения, включающего в том числе возможность параметрического задания всех массивов. Получившееся изображение можно сохранить в растровом (с помощью классов mglGraphZB, mglGraphGL) формате PNG, JPEG, GIF, TIFF или BMP; в векторном EPS или SVG формате (с помощью класса mglGraphPS) и в IDTF формате (с помощью класса mglGraphIDTF), который можно конвертировать в U3D формат.
+</p>
+<p>Все надписи выводятся векторным шрифтом, что обеспечивает их хорошую масштабируемость и переносимость. Текст может содержать команды для большинства ТеХ-их символов, изменения положения (верхний и нижний индексы) и стиля шрифта внутри строки текста (see section <a href="mathgl_ru_7.html#mglFont-class">mglFont class</a>). Текст меток поворачивается вместе с осями. На график можно вывести описание кривых (легенду) и поместить надпись в произвольную точку экрана или пустить ее вдоль кривой. Поддерживаются произвольные кодировки текста (с помощью стандартной функции <code>setlocale()</code>) и текст в кодировке UTF-16.
+</p>
+<p>Для представления данных используется специальный класс mglData (see section <a href="mathgl_ru_6.html#mglData-class">Класс mglData</a>). Помимо безопасного создания и удаления массивов, он включает функции по их обработке (дифференцированию, интегрированию, сглаживанию, интерполяции и т.д.) и чтению текстового файла с автоматическим определением размеров данных. Класс mglData позволяет работать с массивами размерности вплоть до 3 (массивы, зависящие от трех независимых индексов <em>a_ijk</em>). Использование массивов с большим числом размерностей нецелесообразно, поскольку я не представляю, как их можно отобразить на экране. Заполнение или изменение значений массива можно выполнить как вручную, так и по формуле, заданной текстовой строкой.
+</p>
+<p>Для <em>быстрого</em> вычисления значения выражения, заданного текстовой строкой, используется класс mglFormula (see section <a href="mathgl_ru_7.html#mglFormula-class">mglFormula class</a>). Он основан на компиляции строки в древоподобную структуру при создании экземпляра класса. На этапе вычисления происходит быстрый обход дерева с выдачей результата для конкретных значений переменных. Помимо изменения значений массива данных, текстовые формулы используются для рисования в <em>произвольной</em> криволинейной системе координат. Набор таких координат ограничивается только фантазией пользователя, а не фиксированным числом (типа полярной, параболической, цилиндрической и т.д.).
+</p>
+<hr size="6">
+<a name="Installation-and-using"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MathGL-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0423_0441_0442_0430_043d_043e_0432_043a_0430-MathGL"></a>
+<h2 class="section">1.3 Установка MathGL</h2>
+
+<p>Установка библиотеки возможна тремя способами.
+</p><ol>
+<li>
+Скомпилировать библиотеку непосредственно из исходных файлов. С библиотекой поставляется стандартный скрипт для autoconf/automake. Для его запуска достаточно в командной строке выполнить 3 команды: сначала <code>./configure</code> далее <code>make</code> и, наконец, с правами суперпользователя <code>make install</code>. Иногда после компиляции библиотеки может потребоваться обновление списка библиотека в системе &ndash; выполните команду <code>ldconfig</code> с правами суперпользователя.
+
+<p>Скрипт <code>./configure</code> имеет несколько дополнительных опций, которые по умолчанию отключены. К их числу относятся: <code>--enable-fltk, --enable-glut, --enable-qt</code> для поддержки FLTK, GLUT и/или Qt окон; <code>--enable-jpeg, --enable-tiff, --enable-hdf5</code> для поддержки соответствующих форматов; <code>--enable-all</code> для включения всех возможностей. Для использования типа <code>double</code> для внутреннего хранения данных используйте опцию <code>--enable-double</code>. Для создания интерфейсов к другим языкам (кроме С/Фортран/MGL) используйте опции <code>--enable-python, --enable-octave</code> или <code>--enable-langall</code> для всех поддерживаемых языков. Полный список опций можно увидеть, выполнив <code>./configure --help</code>.
+</p></li><li>
+Использовать предварительно скомпилированные файлы &ndash; с библиотекой поставляются файлы для MinGW (платформа Win32). В скомпилированной версии достаточно распаковать заголовочные файлы в папку с заголовочными файлами и библиотеку libmgl.a в папку с библиотеками. По умолчанию, скомпилированная версия включают поддержку GSL (www.gsl.org) и PNG. Соответственно, при сборке программы эти библиотеки должны быть установлены (их можно найти на <a href="http://gnuwin32.sf.net">http://gnuwin32.sf.net</a>).
+</li><li>
+Установить из стандартных пакетов (RPM, deb, DevPak и пр.). 
+</li></ol>
+
+<p>При сборке пользовательской программы достаточно указать ключ <code>-lmgl</code> для компиляции в консольной программе или с использованием внешней графической библиотеки. При использовании окон FLTK или GLUT надо указать/добавить ключи, включающие соответствующие библиотеки &ndash; <code>-lmgl-fltk</code> или <code>-lmgl-glut</code>. Для использования в Фортране дополнительно надо указать опцию <code>-lstdc++</code> для библиотек C++.
+</p>
+<hr size="6">
+<a name="General-concepts"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Installation-and-using" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Coordinate-axes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_043d_043e_0432_043d_044be-_043f_0440_0438_043dc_0438_043f_044b"></a>
+<h2 class="section">1.4 Основные принципы</h2>
+
+<p>Возможности библиотеки MathGL довольно богаты &ndash; число только основных типов графиков превышает 50 видов. Кроме того, есть функции для обработки данных, настройки вида графика и пр. и пр. Тем не менее, я старался придерживаться единого стиля в порядке аргументов функций и способе их &ldquo;настройки&rdquo;. В основном все ниже сказанное относится к функциям рисования различных графиков.
+</p>
+<p>Всего основных концепций (базисных идей) шесть:
+</p><ol>
+<li>
+<strong>Все рисунки создаются в памяти.</strong> Это могут быть как растровые картинки, так и векторные списки примитивов. Дальнейшая судьба рисунков определяется пользователем: можно сохранить в файл, вывести на экран, создать анимацию/кино, дополнительно отредактировать и т.д. Такой подход обеспечивает высокую переносимость библиотеки &ndash; один и тот же программный код создаст в точности одинаковый рисунок на <em>любой</em> операционной системе. Кроме того, при таком подходе рисунки можно создавать непосредственно в консольной программе &ndash; графическое окно не нужно!
+</li><li>
+<strong>Все настройки графиков (стиль линий, цветовые схемы поверхностей, стиль и цвет текста) задаются строками.</strong> Это обеспечивает: удобство для пользователя &ndash; короткую строку легче читать и здесь тяжелее ошибиться, чем в большом списке параметров; переносимость &ndash; строки выглядят одинаково на всех платформах и не надо заботиться о типе и числе аргументов.
+</li><li>
+<strong>Все функции имеют &ldquo;упрощенный&rdquo; и &ldquo;продвинутый&rdquo; варианты.</strong> Сделано опять из-за удобства. В &ldquo;упрощенном&rdquo; варианте для построения графика нужны только один-два массив(а) данных, которые автоматически равнораспределяются в заданном диапазоне осей координат. В &ldquo;продвинутой&rdquo; версии можно не только указать явно диапазон построения графика, но и задать его параметрически. Последнее позволяет легко строить довольно сложные кривые и поверхности. В обоих вариантах функций порядок аргументов стандартен: сначала идут массивы данных, потом необязательный строковый параметр стиля графика, а далее &ndash; второстепенные необязательные параметры для более точной настройки графика.
+</li><li>
+<strong>Все данные передаются через экземпляры класса mglData.</strong> Такой подход позволяет избежать ошибок при работе с памятью и единообразно передавать данные разных типов (float, double, данные из файла, заполненных пользователем и пр.) в функции рисования.
+</li><li>
+<strong>Все элементы рисунков векторные.</strong> Изначально библиотека MathGL была ориентированна на работу с научными данными, которые по своей природе векторные (линии, грани, матрицы и т.д.). Поэтому векторность используется во всех рисунках! Причем иногда даже в ущерб производительности (например, при выводе шрифтов). Помимо всего прочего, векторность позволяет легко масштабировать рисунок &ndash; измените размер картинки в 2 раза, и рисунок пропорционально растянется.
+</li><li>
+<strong>Новые графики не удаляют уже нарисованное.</strong> Этот, в чем-то неожиданный, подход позволяет создавать огромное количество &ldquo;комбинированных&rdquo; графиков. Например, поверхность с наложенными линиями уровня строится двумя последовательными вызовами функций рисования поверхности и линий уровня (в любом порядке). И совершенно не надо писать специальную функцию (как в Matlab и некоторых других программах) для рисования этого графика. Примеров таких графиков можно привести множество (см. раздел <a href="mathgl_ru_2.html#Hints">Hints</a> и сайт программы <a href="http://mathgl.sf.net/index.html">http://mathgl.sf.net/index.html</a>).
+</li></ol>
+
+<p>Кроме основных концепций я хотел бы остановиться на нескольких, как оказалось, нетривиальных моментах &ndash; способе указания положения графика, осей координат и строковых параметров линий, поверхностей, текста.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Coordinate-axes">1.4.1 Оси координат</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Line-styles">1.4.2 Стиль линий</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Color-scheme">1.4.3 Цветовая схема</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-styles">1.4.4 Стиль текста</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Textual-formulas">1.4.5 Текстовые формулы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+
+
+
+<hr size="6">
+<a name="Coordinate-axes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#General-concepts" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Line-styles" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_0438-_043a_043e_043e_0440_0434_0438_043d_0430_0442"></a>
+<h3 class="subsection">1.4.1 Оси координат</h3>
+
+<p>Представление системы координат в MathGL состоит из двух частей. Вначале координаты нормируются в интервал <var>Min</var>x<var>Max</var> (see section <a href="mathgl_ru_3.html#Axis-settings">Настройки осей координат</a>). Если флаг <var>Cut</var> установлен, то точки вне интервала отбрасываются, в противном случае, они проецируются на ограничивающий параллелепипед (see section <a href="mathgl_ru_3.html#Cutting">Обрезание</a>). Кроме того, отбрасываются точки внутри границ, определенных переменными <var>CutMin</var>x<var>CutMax</var> и точки, для которых значение функции <code>CutOff</code>() не равно нулю. После этого формулы перехода в криволинейную систему координат <code>SetFunc()</code>применяются к каждой точке. Наконец, точка данных отображается с помощью одной из графических функций.
+</p>
+<p>Величины <var>Max</var>, <var>Min</var> можно изменять вручную. Однако, после этого необходимо вызвать функцию <code>RecalcBorder()</code> для настройки графика. Более удобный и безопасный путь состоит в вызове функций <code>Axis(), SetRanges()</code> и др. В последнем случае функция <code>RecalcBorder()</code> вызывается автоматически. Размеры осей можно задавать и автоматически по минимальному и максимальному значениям массива данных. Для этого предназначены функции <code>XRange(), YRange(), ZRange()</code>. Второй не обязательный аргумент указывает, заменять ли новые значения диапазона изменения оси координат (по умолчанию) или только расширить уже существующий диапазон.
+</p>
+<p>Точка пересечения осей координат задается переменной <var>Org</var> и действует на последующие вызовы функций рисования осей координат и сетки. По умолчанию, если точка пересечения осей координат попадает вне диапазона осей координат, то она проецируется на границу области. Изменить такое поведение можно, задав <var>AutoOrg</var>=<code>false</code>. В случае, если одно из значений <var>Org</var> равно NAN, то соответствующее значение будет выбрано автоматически.
+</p>
+<p>Кроме привычных осей <em>x, y, z</em> есть еще одна ось &ndash; цветовая шкала &ndash; ось <em>c</em>. Она используется при окрашивании поверхностей и задает границы изменения функции при окрашивании. При вызове <code>Axis()</code> ее границы автоматически устанавливаются равными Min.z и Max.z. Возможно и ручное изменение границ цветового интервала посредством вызова функции <code>CAxis()</code> или изменение границ по заданному массиву <code>CRange()</code>. Используйте <code>Colorbar()</code> для отображения цветовой шкалы.
+</p>
+<p>Вид меток по осям определяется функцией <code>SetTicks()</code> (see section <a href="mathgl_ru_3.html#Axis-settings">Настройки осей координат</a>). Она имеет 3 аргумента: первый <var>d</var> задает шаг меток (если положительны) или их число (если отрицательны) или логарифмические метки (если равны нулю); второ <var>ns</var> задает число &quot;подметок&quot;; последний определяет начальную точку для меток (по умолчанию это точка пересечения осей). Функция <var>SetTuneTicks</var> включает/выключает выделение общего множителя (большого или малого факторов в диапазоне) для меток осей координат. Наконец, если стандартный вид меток не устраивает пользователя, то их шаблон можно задать явно (можно использовать и ТеХ символы), воспользовавшись функциями  <code>SetXTT(), SetYTT(). SetZTT(). SetCTT()</code>. Кроме того, в качестве меток можно вывести произвольный текст использовав функцию <code>SetTicksVal()</code>.
+</p>
+<hr size="6">
+<a name="Line-styles"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Coordinate-axes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Color-scheme" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_0442_0438_043bx-_043b_0438_043d_0438_0439"></a>
+<h3 class="subsection">1.4.2 Стиль линий</h3>
+
+<a name="index-_0421_0442_0438_043bx-_043b_0438_043d_0438_0439"></a>
+<a name="index-_0421_0442_0438_043bx-_043c_0430_0440_043ae_0440_043e_0432"></a>
+<a name="index-_0421_0442_0438_043bx-_0441_0442_0440e_043b_043e_043a"></a>
+
+<p>Стиль линии задается строкой, которая может содержать символ цвета (&lsquo;<samp>wkrgbcymhRGBCYMHWlenupqLENUPQ</samp>&rsquo;), тип пунктира (&lsquo;<samp>-|;:ji</samp>&rsquo; или пробел), ширину линии (&lsquo;<samp>0123456789</samp>&rsquo;) и тип маркера (&lsquo;<samp>o+xsd.^v</samp>&rsquo; и модификатор &lsquo;<samp>#</samp>&rsquo;). Если пропущен цвет или тип пунктира, то используется значение по умолчанию с последним указанным цветом или значение из палитры (для see section <a href="mathgl_ru_3.html#g_t1D-plotting">1D графики</a>). 
+По умолчанию палитры содержит следующие цвета: <span style="color: rgb(76, 76, 76);">темно серый</span> &lsquo;<samp>H</samp>&rsquo;, <span style="color: rgb(0, 0, 255);">синий</span> &lsquo;<samp>b</samp>&rsquo;, <span style="color: rgb(0, 255, 0);">зеленый</span> &lsquo;<samp>g</samp>&rsquo;, <span style="color: rgb(255, 0, 0);">красный</span> &lsquo;<samp>r</samp>&rsquo;, <span style="color: rgb(0, 255, 255);">голубой</span> &lsquo;<samp>c</samp>&rsquo;, <span style="color: rgb(255, 0, 255);">пурпурный</span> &lsquo;<samp>m</samp>&rsquo;, <span style="color: rgb(255, 255, 0);">yellow</span> &lsquo;<samp>y</samp>&rsquo;, <span style="color: rgb(127, 127, 127);">серый</span> &lsquo;<samp>h</samp>&rsquo;, <span style="color: rgb(0, 255, 127);">сине-зеленый</span> &lsquo;<samp>l</samp>&rsquo;, <span style="color: rgb(0, 127, 255);">небесно-синий</span> &lsquo;<samp>n</samp>&rsquo;, <span style="color: rgb(255, 127, 0);">оранжевый</span> &lsquo;<samp>q</samp>&rsquo;, <span style="color: rgb(127, 255, 0);">желто-зеленый</span> &lsquo;<samp>e</samp>&rsquo;, <span style="color: rgb(127, 0, 255);">сине-фиолетовый</span> &lsquo;<samp>u</samp>&rsquo;, <span style="color: rgb(255, 0, 127);">фиолетовый</span> &lsquo;<samp>p</samp>&rsquo;.
+
+<p>Символы цвета: &lsquo;<samp>k</samp>&rsquo; -- черный, &lsquo;<samp>r</samp>&rsquo; -- <span style="color: rgb(255, 0, 0);">красный</span>, &lsquo;<samp>R</samp>&rsquo; -- <span style="color: rgb(127, 0, 0);">темно красный</span>, &lsquo;<samp>g</samp>&rsquo; -- <span style="color: rgb(0, 255, 0);">зеленый</span>, &lsquo;<samp>G</samp>&rsquo; -- <span style="color: rgb(0, 127, 0);">темно зеленый</span>, &lsquo;<samp>b</samp>&rsquo; -- <span style="color: rgb(0, 0, 255);">синий</span>, &lsquo;<samp>B</samp>&rsquo; -- <span style="color: rgb(0, 0, 127);">темно синий</span>, &lsquo;<samp>c</samp>&rsquo; -- <span style="color: rgb(0, 255, 255);">голубой</span>, &lsquo;<samp>C</samp>&rsquo; -- <span style="color: rgb(0, 127, 127);">темно голубой</span>, &lsquo;<samp>m</samp>&rsquo; -- <span style="color: rgb(255, 0, 255);">пурпурный</span>, &lsquo;<samp>M</samp>&rsquo; -- <span style="color: rgb(127, 0, 127);">темно пурпурный</span>, &lsquo;<samp>y</samp>&rsquo; -- <span style="color: rgb(255, 255, 0);">желтый</span>, &lsquo;<samp>Y</samp>&rsquo; -- <span style="color: rgb(127, 127, 0);">темно желтый (золотой)</span>, &lsquo;<samp>h</samp>&rsquo; -- <span style="color: rgb(127, 127, 127);">серый</span>, &lsquo;<samp>H</samp>&rsquo; -- <span style="color: rgb(76, 76, 76);">темно серый</span>, &lsquo;<samp>w</samp>&rsquo; -- белый, &lsquo;<samp>W</samp>&rsquo; -- <span style="color: rgb(178, 178, 178);">светло серый</span>, &lsquo;<samp>l</samp>&rsquo; -- <span style="color: rgb(0, 255, 127);">сине-зеленый</span>, &lsquo;<samp>L</samp>&rsquo; -- <span style="color: rgb(0, 127, 63);">темно сине-зеленый</span>, &lsquo;<samp>e</samp>&rsquo; -- <span style="color: rgb(127, 255, 0);">желто-зеленый</span>, &lsquo;<samp>E</samp>&rsquo; -- <span style="color: rgb(63, 127, 0);">темно желто-зеленый</span>, &lsquo;<samp>n</samp>&rsquo; -- <span style="color: rgb(0, 127, 255);">небесно-синий</span>, &lsquo;<samp>N</samp>&rsquo; -- <span style="color: rgb(0, 63, 127);">темно небесно-синий</span>, &lsquo;<samp>u</samp>&rsquo; -- <span style="color: rgb(127, 0, 255);">сине-фиолетовый</span>, &lsquo;<samp>U</samp>&rsquo; -- <span style="color: rgb(63, 0, 127);">темно сине-фиолетовый</span>, &lsquo;<samp>p</samp>&rsquo; -- <span style="color: rgb(255, 0, 127);">фиолетовый</span>, &lsquo;<samp>P</samp>&rsquo; -- <span style="color: rgb(127, 0, 63);">темно фиолетовый</span>, &lsquo;<samp>q</samp>&rsquo; -- <span style="color: rgb(255, 127, 0);">оранжевый</span>, &lsquo;<samp>Q</samp>&rsquo; -- <span style="color: rgb(127, 63, 0);">темно оранжевый (коричневый)</span>.</p>
+
+Тип пунктира: пробел -- нет линии (для рисования только маркеров), &lsquo;<samp>-</samp>&rsquo; -- сплошная линия (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;), &lsquo;<samp>|</samp>&rsquo; -- длинный пунктир (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>;</samp>&rsquo; -- пунктир (&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>=</samp>&rsquo; -- короткий пунктир (&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;), &lsquo;<samp>:</samp>&rsquo; -- точки (&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;), &lsquo;<samp>j</samp>&rsquo; -- пунктир с точками  (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>i</samp>&rsquo; -- мелкий пунктир с точками (&#9632;&#9632;&#9632;&#9633;&#9633;&#9632;&#9633;&#9633;&#9632;&#9632;&#9632;&#9633;&#9633;&#9632;&#9633;&#9633;).</p>
+<p>Типы маркеров: &lsquo;<samp>o</samp>&rsquo; &ndash; окружность, &lsquo;<samp>+</samp>&rsquo; &ndash; крест, &lsquo;<samp>x</samp>&rsquo; &ndash; косой крест, &lsquo;<samp>s</samp>&rsquo; - квадрат, &lsquo;<samp>d</samp>&rsquo; - ромб, &lsquo;<samp>.</samp>&rsquo; &ndash; точка, &lsquo;<samp>^</samp>&rsquo; &ndash; треугольник вверх, &lsquo;<samp>v</samp>&rsquo; &ndash; треугольник вниз, &lsquo;<samp>&lt;</samp>&rsquo; &ndash; треугольник влево, &lsquo;<samp>&gt;</samp>&rsquo; &ndash; треугольник вправо, &lsquo;<samp>#*</samp>&rsquo; &ndash; знак Y, &lsquo;<samp>#+</samp>&rsquo; &ndash; крест в квадрате, &lsquo;<samp>#x</samp>&rsquo; &ndash; косой крест в квадрате, &lsquo;<samp>#.</samp>&rsquo; &ndash; точка в окружности. Если в строке присутствует символ &lsquo;<samp>#</samp>&rsquo;, то используются символы с заполнением.
+</p>
+<div class="float">
+<img src="../png/sample5.png" alt="../png/sample5">
+
+</div><p><strong>Стили линий и маркеров.
+</strong>
+</p>
+<p>На конце и в начале линии можно выводить специальный символ (стрелку), если в строке указать один из символов: &lsquo;<samp>A</samp>&rsquo; &ndash; стрелка наружу, &lsquo;<samp>V</samp>&rsquo; &ndash; стрелка внутрь, &lsquo;<samp>I</samp>&rsquo; &ndash; поперечная черта, &lsquo;<samp>K</samp>&rsquo; &ndash; стрелка с чертой, &lsquo;<samp>T</samp>&rsquo; &ndash; треугольник, &lsquo;<samp>S</samp>&rsquo; &ndash; квадрат, &lsquo;<samp>D</samp>&rsquo; &ndash; ромб, &lsquo;<samp>O</samp>&rsquo; &ndash; круг, &lsquo;<samp>_</samp>&rsquo; &ndash; нет стрелки (по умолчанию). При этом действует следующее правило: первый символ определяет стрелку на конце линии, второй символ &ndash; стрелку в начале линии. Например, &lsquo;<samp>r-A</samp>&rsquo; &ndash; красная сплошная линия со стрелкой на конце, &lsquo;<samp>b|AI</samp>&rsquo; &ndash; синий пунктир со стрелкой на конце и чертой вначале, &lsquo;<samp>_O</samp>&rsquo; &ndash; линия с текущим стилем и кружком вначале. Эти стили действуют и при построении графиков (например, <a href="mathgl_ru_3.html#g_t1D-plotting">1D графики</a>).
+</p>
+<div class="float">
+<img src="../png/sampled.png" alt="../png/sampled">
+
+</div><p><strong>Стили стрелок.
+</strong>
+</p>
+<hr size="6">
+<a name="Color-scheme"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Line-styles" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-styles" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="C_0432e_0442_043e_0432_0430ya-_0441_0445e_043c_0430"></a>
+<h3 class="subsection">1.4.3 Цветовая схема</h3>
+
+<a name="index-C_0432e_0442_043e_0432_0430ya-_0441_0445e_043c_0430"></a>
+
+<p>Цветовая схема используется для определения цвета поверхностей, линий уровня и пр. Цветовая схема задается строкой <em>s</em>, которая содержит символы цвета (see section <a href="#Line-styles">Стиль линий</a>) или символы &lsquo;<samp>d#:|</samp>&rsquo;. Символ &lsquo;<samp>d</samp>&rsquo; указывает на определение цвета в зависимости от положения точки в пространстве, а не по амплитуде данных. Символ &lsquo;<samp>#</samp>&rsquo; переключает рисование поверхности на сетчатое (для трехмерных поверхностей) или включает рисование сетки на поверхности. Символ &lsquo;<samp>|</samp>&rsquo; отключает интерполяцию цвета в цветовой схеме. Это может быть полезно для &ldquo;резких&rdquo; цветов, например, при рисовании матриц. Если в строке встречается символ &lsquo;<samp>:</samp>&rsquo;, то он принудительно заканчивает разбор строки для стиля поверхности. После этого символа могут идти описание стиля текста или оси вращения кривой/линий уровня. Цветовая схема может содержать до 32 значений цвета.
+</p>
+<p>В цветовой схеме можно использовать тональные (&ldquo;подсвеченные&rdquo;) цвета (<em>не в стиле линий!</em>). Тональный цвет задается двумя символами: первый &ndash; обычный цвет, второй &ndash; его яркость цифрой. Цифра может быть в диапазоне &lsquo;<samp>1</samp>&rsquo;...&lsquo;<samp>9</samp>&rsquo;. При этом &lsquo;<samp>5</samp>&rsquo; соответствует нормальному цвету, &lsquo;<samp>1</samp>&rsquo; &ndash; очень темная версия цвета (почти черный), &lsquo;<samp>9</samp>&rsquo; &ndash; очень светлая версия цвета (почти белый). Например цветовая схема может быть &lsquo;<samp>b2b7wr7r2</samp>&rsquo;.
+</p>
+<div class="float">
+<img src="../png/colors.png" alt="../png/colors">
+
+</div><p><strong>Цвета и их идентификаторы.
+</strong>
+</p>
+<p>При определении цвета по <em>амплитуде</em> (наиболее часто используется) окончательный цвет определяется путем линейной интерполяции массива цветов. Массив цветов формируется из цветов, указанных в строке спецификации. Аргумент &ndash; амплитуда, нормированная между <var>Cmin</var> &ndash; <var>Cmax</var> (see section <a href="mathgl_ru_3.html#Axis-settings">Настройки осей координат</a>). Например, строка из 4 символов &lsquo;<samp>bcyr</samp>&rsquo; соответствует изменению цвета от синего (минимальное значение) через голубой и желтый (промежуточные значения) к красному (максимальное значение). Строка &lsquo;<samp>kw</samp>&rsquo; соответствует изменению цвета от черного (минимальное значение) к белому (максимальное значение). Строка из одного символа (например, &lsquo;<samp>g</samp>&rsquo;) соответствует однотонному цвету (в данному случае зеленому).
+</p>
+<p>Есть несколько полезных цветовых схем. Строка &lsquo;<samp>kw</samp>&rsquo; дает обычную серую (черно-белую) схему, когда большие значения светлее. Строка &lsquo;<samp>wk</samp>&rsquo; представляет обратную серую схему, когда большие значения темнее. Строки &lsquo;<samp>kRryw</samp>&rsquo;, &lsquo;<samp>kGgw</samp>&rsquo;, &lsquo;<samp>kBbcw</samp>&rsquo; представляют собой хорошо известные схемы <em>hot</em>, <em>summer</em> и <em>winter</em>. Строки &lsquo;<samp>BbwrR</samp>&rsquo; и &lsquo;<samp>bBkRr</samp>&rsquo; позволяют рисовать двухцветные фигуры на белом или черном фоне, когда отрицательные значения показаны синим цветом, а положительные &ndash; красным. Строка &lsquo;<samp>BbcyrR</samp>&rsquo; дает цветовую схему, близкую к хорошо известной схеме <em>jet</em>.
+</p>
+
+<div class="float">
+<img src="../png/color_schemes.png" alt="../png/color_schemes">
+
+</div><p><strong>Наиболее популярные цветовые схемы.
+</strong>
+</p>
+<p>При определении цвета по <em>положению точки в пространстве</em> окончательный цвет определяется по формуле c=x*c[1] + y*c[2] + z*c[3]. Здесь c[1], c[2], c[3] &ndash; первые три цвета в цветовом массиве; x, y, z &ndash; координаты точки, нормированные на <var>Min</var>x<var>Max</var>. Такой тип определения цвета полезен, например, при построении поверхностей уровня, когда цвет дает представление о положении точки в пространстве.
+</p>
+<hr size="6">
+<a name="Font-styles"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Color-scheme" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Textual-formulas" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_0442_0438_043bx-_0442e_043a_0441_0442_0430"></a>
+<h3 class="subsection">1.4.4 Стиль текста</h3>
+
+<a name="index-_0421_0442_0438_043bx-_0442e_043a_0441_0442_0430"></a>
+
+<p>Стиль текста задается строкой, которая может содержать несколько символов: тип шрифта (&lsquo;<samp>ribwou</samp>&rsquo;) и/или выравнивания (&lsquo;<samp>LRC</samp>&rsquo;), а также цвет текста &lsquo;<samp>wkrgbcymhRGBCYMHW</samp>&rsquo; (see section <a href="#Line-styles">Стиль линий</a>) после символа &lsquo;<samp>:</samp>&rsquo;. Например, &lsquo;<samp>biC:b</samp>&rsquo; соответствует жирному курсиву с выравниванием по центру синего цвета.
+</p>
+<p>Начертания шрифта: &lsquo;<samp>r</samp>&rsquo; &ndash; прямой шрифт, &lsquo;<samp>i</samp>&rsquo; &ndash; курсив, &lsquo;<samp>b</samp>&rsquo; &ndash; жирный. По умолчанию используется прямой шрифт. Типы выравнивания текста: &lsquo;<samp>L</samp>&rsquo; &ndash; по левому краю (по умолчанию), &lsquo;<samp>C</samp>&rsquo; &ndash; по центру, &lsquo;<samp>R</samp>&rsquo; &ndash; по правому краю. Дополнительные эффекты шрифта: &lsquo;<samp>w</samp>&rsquo; &ndash; контурный, &lsquo;<samp>o</samp>&rsquo; &ndash; надчеркнутый, &lsquo;<samp>u</samp>&rsquo; &ndash; подчеркнутый. 
+</p>
+<p>Синтаксический разбор LaTeX-их команд по умолчанию включен. Это команды смены стиля текста (например, \b для жирного текста): \a или \overline &ndash; надчеркивание, \b или \textbf &ndash; жирный, \i или \textit &ndash; курсив, \r или \textrm &ndash; прямой (отменяет стили жирного и курсива), \u или \underline &ndash; подчеркнутый, \w или \wire &ndash; контурный, \big &ndash; большего размера, @ &ndash; меньшего размера. Нижний и верхний индексы задаются символами &lsquo;<samp>_</samp>&rsquo; и &lsquo;<samp>^</samp>&rsquo;. При этом изменение стиля применяется только к следующему символу или к символам в фигурных скобках {}, которые понимаются как единый блок. Например, сравните строки &lsquo;<samp>sin (x^{2^3})</samp>&rsquo; и &lsquo;<samp>sin (x^2^3)</samp>&rsquo;. Можно также менять цвет текста внутри строки с помощью команд #? или \color?, где &lsquo;<samp>?</samp>&rsquo; &ndash; символ цвета (see section <a href="#Line-styles">Стиль линий</a>). Например, слова &lsquo;<samp>Blue</samp>&rsquo; и &lsquo;<samp>red</samp>&rsquo; будут окрашены в соответствующий цвет в строке &lsquo;<samp>#b{Blue} and \colorr{red} text</samp>&rsquo;. Большинство функций понимает символ новой строки &lsquo;<samp>\n</samp>&rsquo; и позволяет выводить много строчный текст. Наконец, можно использовать символы с произвольным UTF кодом с помощью команды <code>\utf0x????</code>. Например, <code>\utf0x3b1</code> даст символ 
+&alpha;.</p>
+<p>Распознаются также большинство символов TeX и AMSTeX, команды смены стиля текста (\textrm, \textbf, \textit, \textsc, \overline, \underline), акценты (\hat, \tilde, \dot, \ddot, \acute, \check, \grave, \bar, \breve) и корни (\sqrt, \sqrt3, \sqrt4). Полный список содержит около 2000 символов. Отмечу, что первый пробел (пробел, табуляция и пр.) после команды игнорируется, а все остальные пробелы печатаются обычным образом. Например, следующие строки дают одинаковый результат <em>\tilde a</em>: &lsquo;<samp>\tilde{a}</samp>&rsquo;; &lsquo;<samp>\tilde a</samp>&rsquo;; &lsquo;<samp>\tilde{}a</samp>&rsquo;.
+</p>
+В частности, распознаются греческие буквы: &alpha; &ndash; \alpha, &beta; &ndash; \beta, &gamma; &ndash; \gamma, &delta; &ndash; \delta, &epsilon; &ndash; \epsilon, &eta; &ndash; \eta, &iota; &ndash; \iota, &chi; &ndash; \chi, &kappa; &ndash; \kappa, &lambda; &ndash; \lambda, &mu; &ndash; \mu, &nu; &ndash; \nu, o &ndash; \o, &omega; &ndash; \omega, &#981; &ndash; \phi, &pi; &ndash; \pi, &psi; &ndash; \psi, &rho; &ndash; \rho, &sigma; &ndash; \sigma, &theta; &ndash; \theta, &tau; &ndash; \tau, &upsilon; &ndash; \upsilon, &xi; &ndash; \xi, &zeta; &ndash; \zeta, &sigmaf; &ndash; \varsigma, &#603; &ndash; \varepsilon, &thetasym; &ndash; \vartheta, &phi; &ndash; \varphi, &#1008; &ndash; \varkappa; A &ndash; \Alpha, B &ndash; \Beta, &Gamma; &ndash; \Gamma, &Delta; &ndash; \Delta, E &ndash; \Epsilon, H &ndash; \Eta, I &ndash; \Iota, C &ndash; \Chi, K &ndash; \Kappa, &Lambda; &ndash; \Lambda, M &ndash; \Mu, N &ndash; \Nu, O &ndash; \O, &Omega; &ndash; \Omega, &Phi; &ndash; \Phi, &Pi; &ndash; \Pi, &Psi; &ndash; \Psi, R &ndash; \Rho, &Sigma; &ndash; \Sigma, &Theta; &ndash; \Theta, T &ndash; \Tau, &Upsilon; &ndash; \Upsilon, &Xi; &ndash; \Xi, Z &ndash; \Zeta.
+
+<p>Еще примеры наиболее общеупотребительных TeX-их символов: &ang; &ndash; \angle, &sdot; &ndash; \cdot, &clubs; &ndash; \clubsuit, &#10003; &ndash; \checkmark, &cup; &ndash; \cup, &cap; &ndash; \cap, &#9826; &ndash; \diamondsuit, &#9671; &ndash; \diamond, &divide;
+ &ndash; \div, 
+&darr; &ndash; \downarrow, &dagger; &ndash; \dag, &Dagger; &ndash; \ddag, &equiv; &ndash; \equiv, &exist; &ndash; \exists, &#8994; &ndash; \frown, &#9837; &ndash; \flat, &ge; &ndash; \ge, &ge; &ndash; \geq, &#8807; &ndash; \geqq, &larr; &ndash; \gets, &#9825; &ndash; \heartsuit, &infin; &ndash; \infty, &int; &ndash; \int, \Int, &image;  &ndash; \Im, &#9826; &ndash; \lozenge, &#10216; &ndash; \langle, &le; &ndash; \le, &le; &ndash; \leq, &#8806; &ndash; \leqq, &larr; &ndash; \leftarrow, &#8723; &ndash; \mp, &nabla; &ndash; \nabla, &ne; &ndash; \ne, &ne; &ndash; \neq, &#9838; &ndash; \natural, &#8750; &ndash; \oint, &#8857; &ndash; \odot, &oplus; &ndash; \oplus, &part; &ndash; \partial, &#8741; &ndash; \parallel, &perp; &ndash;\perp, &plusmn; &ndash; \pm, &prop; &ndash; \propto, &prod; &ndash; \prod, &real; &ndash; \Re, &rarr; &ndash; \rightarrow, &#10217; &ndash; \rangle, &spades; &ndash; \spadesuit, ~ &ndash; \sim, &#8995; &ndash; \smile, &sub;  &ndash; \subset, &sup; &ndash; \supset, &radic; &ndash; \sqrt or \surd, &sect; &ndash; \S, &#9839; &ndash; \sharp, &sum; &ndash; \sum, &times; &ndash; \times, &rarr; &ndash; \to, &there4; &ndash; \therefore, &uarr; &ndash; \uparrow, &weierp; &ndash; \wp. </p>
+<p>Размер текста может быть задан явно (если <var>size</var>&gt;0) или относительно базового размера шрифта для рисунка |<var>size</var>|*<var>FontSize</var> при <var>size</var>&lt;0. Значение <var>size</var>=0 указывает, что соответствующая строка выводиться не будет. Базовый размер шрифта измеряется во внутренних единицах. Специальные функции <code>SetFontSizePT(), SetFontSizeCM(), SetFontSizeIN()</code> позволяют задавать его в более &ldquo;привычных&rdquo; единицах.
+</p>
+<hr size="6">
+<a name="Textual-formulas"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-styles" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#FAQ" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0422e_043a_0441_0442_043e_0432_044be-_0444_043e_0440_043c_0443_043b_044b"></a>
+<h3 class="subsection">1.4.5 Текстовые формулы</h3>
+
+<a name="index-_0422e_043a_0441_0442_043e_0432_044be-_0444_043e_0440_043c_0443_043b_044b"></a>
+
+<p>MathGL имеет быстрый парсер текстовых формул
+ (see section <a href="mathgl_ru_7.html#mglFormula-class">mglFormula class</a>)
+, понимающий большое число функций и операций. Базовые операции: &lsquo;<samp>+</samp>&rsquo; &ndash; сложение, &lsquo;<samp>-</samp>&rsquo; &ndash; вычитание, &lsquo;<samp>*</samp>&rsquo; &ndash; умножение, &lsquo;<samp>/</samp>&rsquo; &ndash; деление, &lsquo;<samp>^</samp>&rsquo; &ndash; возведение в целосичленную степень. Также есть логические операции: &lsquo;<samp>&lt;</samp>&rsquo; &ndash; истина если if x&lt;y, &lsquo;<samp>&gt;</samp>&rsquo; &ndash; истина если x&gt;y, &lsquo;<samp>=</samp>&rsquo; &ndash; истина если x=y, &lsquo;<samp>&amp;</samp>&rsquo; &ndash; истина если x и y оба не равны нулю, &lsquo;<samp>|</samp>&rsquo; &ndash; истина если x или y не нуль. Логические операции имеют наинизший приоритет и возвращают 1 если истина или 0 если ложно.
+</p>
+<p>Базовые функции: &lsquo;<samp>sqrt(x)</samp>&rsquo; &ndash; квадратный корень из <var>x</var>, &lsquo;<samp>pow(x,y)</samp>&rsquo; &ndash; <var>x</var> в степени <var>y</var>, &lsquo;<samp>ln(x)</samp>&rsquo; &ndash; натуральный логарифм <var>x</var>, &lsquo;<samp>lg(x)</samp>&rsquo; &ndash; десятичный логарифм <var>x</var>, &lsquo;<samp>log(a,x)</samp>&rsquo; &ndash; логарифм по основанию <var>a</var> от <var>x</var>, &lsquo;<samp>abs(x)</samp>&rsquo; &ndash; модуль <var>x</var>, &lsquo;<samp>sign(x)</samp>&rsquo; &ndash; знак <var>x</var>, &lsquo;<samp>mod(x,y)</samp>&rsquo; &ndash; остаток от деления x на y, &lsquo;<samp>step(x)</samp>&rsquo; &ndash; ступенчатая функция, &lsquo;<samp>int(x)</samp>&rsquo; &ndash; целая часть <var>x</var>, &lsquo;<samp>rnd</samp>&rsquo; &ndash; случайное число, &lsquo;<samp>pi</samp>&rsquo; &ndash; число 
+&pi; = 3.1415926&hellip;</p>
+<p>Тригонометрические функции: &lsquo;<samp>sin(x)</samp>&rsquo;, &lsquo;<samp>cos(x)</samp>&rsquo;, &lsquo;<samp>tan(x)</samp>&rsquo; (или &lsquo;<samp>tg(x)</samp>&rsquo;). Обратные тригонометрические функции: &lsquo;<samp>asin(x)</samp>&rsquo;, &lsquo;<samp>acos(x)</samp>&rsquo;, &lsquo;<samp>atan(x)</samp>&rsquo;. Гиперболические функции: &lsquo;<samp>sinh(x)</samp>&rsquo; (или &lsquo;<samp>sh(x)</samp>&rsquo;), &lsquo;<samp>cosh(x)</samp>&rsquo; (или &lsquo;<samp>ch(x)</samp>&rsquo;), &lsquo;<samp>tanh(x)</samp>&rsquo; (или &lsquo;<samp>th(x)</samp>&rsquo;). Обратные гиперболические функции: &lsquo;<samp>asinh(x)</samp>&rsquo;, &lsquo;<samp>acosh(x)</samp>&rsquo;, &lsquo;<samp>atanh(x)</samp>&rsquo;.
+</p>
+<p>Специальные функции: &lsquo;<samp>gamma(x)</samp>&rsquo; &ndash; гамма функция &Gamma;(x) = &int;<sub>0</sub><sup>&infin;</sup> t<sup>x-1</sup> exp(-t) dt, &lsquo;<samp>psi(x)</samp>&rsquo; &ndash; дигамма функция &psi;(x) = &Gamma;&prime;(x)/&Gamma;(x) для x&ne;0, &lsquo;<samp>ai(x)</samp>&rsquo; &ndash; Эйри функция Ai(x), &lsquo;<samp>bi(x)</samp>&rsquo; &ndash; Эйри функция Bi(x), &lsquo;<samp>cl(x)</samp>&rsquo; &ndash; функция Клаузена, &lsquo;<samp>li2(x)</samp>&rsquo; (или &lsquo;<samp>dilog(x)</samp>&rsquo;) &ndash; дилогарифм Li<sub>2</sub>(x) = -&real;&int;<sub>0</sub><sup>x</sup>ds log(1-s)/s, &lsquo;<samp>sinc(x)</samp>&rsquo; &ndash; функция sinc(x) = sin(&pi;x)/(&pi;x) для любых x, &lsquo;<samp>zeta(x)</samp>&rsquo; &ndash; зета функция Римана &zeta;(s) = &sum;<sub>k=1</sub><sup>&infin;</sup>k<sup>-s</sup> для s&ne;1, &lsquo;<samp>eta(x)</samp>&rsquo; &ndash; эта функция &eta;(s) = (1 - 2<sup>1-s</sup>)&zeta;(s) для произвольного s, &lsquo;<samp>lp(l,x)</samp>&rsquo; &ndash; полином Лежандра P<sub>l</sub>(x), (|x|&le;1, l&ge;0), &lsquo;<samp>w0(x)</samp>&rsquo;, &lsquo;<samp>w1(x)</samp>&rsquo; &ndash; функции Ламберта W. Функции W(x) определены как решение уравнения: W exp(W) = x. </p>
+
+<p>Экспоненциальные интегралы: &lsquo;<samp>ci(x)</samp>&rsquo; &ndash; cos-интеграл Ci(x) = &int;<sub>0</sub><sup>x</sup>dt cos(t)/t, &lsquo;<samp>si(x)</samp>&rsquo; &ndash; sin-интеграл Si(x) = &int;<sub>0</sub><sup>x</sup>dt sin(t)/t, &lsquo;<samp>erf(x)</samp>&rsquo; &ndash; функция ошибки erf(x) = (2/&radic;&pi;) &int;<sub>0</sub><sup>x</sup>dt exp(-t<sup>2</sup>) , &lsquo;<samp>ei(x)</samp>&rsquo; &ndash; интеграл Ei(x) = -PV(&int;<sub>-x</sub><sup>&infin;</sup>dt exp(-t)/t) (где PV обозначает главное значение), &lsquo;<samp>e1(x)</samp>&rsquo; &ndash; интеграл E<sub>1</sub>(x) = &real;&int;<sub>1</sub><sup>&infin;</sup>dt exp(-xt)/t, &lsquo;<samp>e2(x)</samp>&rsquo; &ndash; интеграл E<sub>2</sub>(x) = &real;&int;<sub>1</sub>&infin;</sup>dt exp(-xt)/t<sup>2</sup>, &lsquo;<samp>ei3(x)</samp>&rsquo; &ndash; интеграл Ei<sub>3</sub>(x) = &int;<sub>0</sub><sup>x</sup>dt exp(-t<sup>3</sup>) для x&ge;0. </p>
+
+<p>Функции Бесселя: &lsquo;<samp>j(nu,x)</samp>&rsquo; &ndash; функция Бесселя первого рода, &lsquo;<samp>y(nu,x)</samp>&rsquo; &ndash; функция Бесселя второго рода, &lsquo;<samp>i(nu,x)</samp>&rsquo; &ndash; модифицированная функция Бесселя первого рода, &lsquo;<samp>k(nu,x)</samp>&rsquo; &ndash; модифицированная функция Бесселя второго рода. </p>
+
+<p>Эллиптические интегралы: &lsquo;<samp>ee(k)</samp>&rsquo; &ndash; полный эллиптический интеграл E(k) = E(&pi;/2,k), &lsquo;<samp>ek(k)</samp>&rsquo; &ndash; полный эллиптический интеграл K(k) = F(&pi;/2,k), &lsquo;<samp>e(phi,k)</samp>&rsquo; &ndash; эллиптический интеграл E(&phi;,k) = &int;<sub>0</sub><sup>&phi;</sup>dt &radic;(1 - k<sup>2</sup>sin<sup>2</sup>(t)), &lsquo;<samp>f(phi,k)</samp>&rsquo; &ndash; эллиптический интеграл F(&phi;,k) = &int;<sub>0</sub><sup>&phi;</sup>dt 1/&radic;(1 - k<sup>2</sup>sin<sup>2</sup>(t))</p>
+<p>Функции Якоби: &lsquo;<samp>sn(u,m)</samp>&rsquo;, &lsquo;<samp>cn(u,m)</samp>&rsquo;, &lsquo;<samp>dn(u,m)</samp>&rsquo;, &lsquo;<samp>sc(u,m)</samp>&rsquo;, &lsquo;<samp>sd(u,m)</samp>&rsquo;, &lsquo;<samp>ns(u,m)</samp>&rsquo;, &lsquo;<samp>cs(u,m)</samp>&rsquo;, &lsquo;<samp>cd(u,m)</samp>&rsquo;, &lsquo;<samp>nc(u,m)</samp>&rsquo;, &lsquo;<samp>ds(u,m)</samp>&rsquo;, &lsquo;<samp>dc(u,m)</samp>&rsquo;, &lsquo;<samp>nd(u,m)</samp>&rsquo;.
+</p>
+<p>Некоторые из функций могут быть недоступны если флаг NO_GSL был определен при компиляции библиотеки MathGL. 
+</p>
+<p>При разборе формул нет различия между верхним и нижним регистром. Если аргумент лежит вне области определения функции, то возвращается NaN.
+</p>
+
+
+<hr size="6">
+<a name="FAQ"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Textual-formulas" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Interfaces" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="FAQ-1"></a>
+<h2 class="section">1.5 FAQ</h2>
+
+<dl compact="compact">
+<dt> <strong>График не рисуется?!</strong></dt>
+<dd><p>Проверьте, что точки графика находятся внутри ограничивающего параллелепипеда, при необходимости увеличьте его с помощью функции <code>Axis()</code>. Проверьте, что размерность массива правильная для выбранного типа графика. Убедитесь, что функция  <code>Finish()</code> была вызвана после построения графика (или график был сохранен в файл). Иногда отражение света от плоских поверхностей (типа, <code>Dens()</code>) может выглядеть как отсутствие графика.
+</p>
+</dd>
+<dt> <strong>Не нашел нужного графика?!</strong></dt>
+<dd><p>Многие &ldquo;новые&rdquo; графики можно строить, используя уже существующие функции. Например, поверхность вращения кривой относительно оси можно построить, используя специальную функцию <code>Torus()</code>, а можно построить как параметрически заданную поверхность <code>Surf()</code>. См. также <a href="mathgl_ru_2.html#Hints">Hints</a> и <a href="mathgl_ru_2.html#Examples">MathGL examples</a> MathGL. Если же нужного типа графика все равно нет, то пишите мне <a href="mailto:mathgl.abalakin at gmail.com">e-mail</a> и в следующей версии этот график появится.
+</p>
+</dd>
+<dt> <strong>Требуется ли знание сторонних библиотек (например, OpenGL) для использования библиотеки MathGL?</strong></dt>
+<dd><p>Нет. Библиотека MathGL самодостаточна и не требует знания сторонних библиотек.
+</p>
+</dd>
+<dt> <strong>На каком языке написана библиотека? Для каких языков у нее есть интерфейсы?</strong></dt>
+<dd><p>Ядро библиотеки написано на С++. Кроме него, есть интерфейсы для чистого С, фортрана, паскаля, форта и собственный командный язык MGL. Также есть поддержка большого числа интерпретируемых языков (Python, Java,  ALLEGROCL, CHICKEN, Lisp, CFFI, C#, Guile, Lua, Modula 3, Mzscheme, Ocaml, Octave, Perl, PHP, Pike, R, Ruby, Tcl). Эти интерфейсы написаны с помощью SWIG (и функции чистого С и классы). Однако на данный момент только интерфейсы для Python и Octave включены в скрипты сборки. Причина в том, что я не знаю других языков, чтобы проверить качество интерфейса :(. Замечу, что большинство прочих языков могут использовать С функции напрямую.
+</p>
+</dd>
+<dt> <strong>Как мне использовать MathGL с Фортраном?</strong></dt>
+<dd><p>Библиотеку MathGL можно использовать как есть с компилятором <code>gfortran</code> поскольку он использует по умолчанию AT&amp;T нотацию для внешних функций. Для других компиляторов (например, Visual Fortran) необходимо включить использование AT&amp;T нотации вручную. AT&amp;T нотация требует, чтобы имя функции завершалось символом &lsquo;<samp>_</samp>&rsquo;, аргументы функции передавались по указателю и длины строк передавались в конце списка аргументов. Например:
+</p>
+<p><em>C функция</em> &ndash; <code>void mgl_fplot(HMGL graph, const char *fy, const char *stl, int n);</code>
+</p>
+<p><em>AT&amp;T функция</em> &ndash; <code>void mgl_fplot_(uintptr_t *graph, const char *fy, const char *stl, int *n, int ly, int ls);</code>
+</p>
+</dd>
+<dt> <strong>У меня есть класс Foo и в нем метод рисования Foo::draw(mglGraph *gr). Как мне нарисовать что-то в окне FLTK, GLUT или Qt?</strong></dt>
+<dd><p>Функции-члены класса в С++ имеют &ldquo;скрытый&rdquo; параметр &ndash; указатель на экземпляр класса и их прямое использование невозможно. Решением будет определение интерфейсной функции:
+</p><table><tr><td>&nbsp;</td><td><pre class="example">int foo_draw(mglGraph *gr, void *par)
+{   ((Foo *)foo)-&gt;draw(gr);    }
+</pre></td></tr></table>
+<p>и подстановка именно ее в вызов функции <code>Window()</code>:
+</p><table><tr><td>&nbsp;</td><td><pre class="example">gr-&gt;Window(argc,argv,foo_draw,&quot;Title&quot;,this);
+</pre></td></tr></table>
+
+<p>Можно также наследовать Ваш класс от класса <code>mglDraw</code> и использовать функцию типа <code>gr-&gt;Window(argc, argv, foo, &quot;Title&quot;);</code>.
+</p>
+</dd>
+<dt> <strong>Как мне вывести текст на русском/испанском/арабском/японском и т.д.?</strong></dt>
+<dd><p>Стандартный путь состоит в использовании кодировки UTF-8 для вывода текста. Кроме того, все функции вывода текста имеют интерфейс для 8-битных (char *) строк. Однако в последнем случае Вам может потребоваться установить используемую в исходном тексте локаль. Например, для русского языка в кодировке CP1251 можно использовать <code>setlocale(LC_CTYPE, &quot;ru_RU.cp1251&quot;);</code> (под MS Windows имена локали другие &ndash;  <code>setlocale(LC_CTYPE, &quot;russian_russia.1251&quot;)</code>). Настоятельно не рекомендую использовать константу <code>LC_ALL</code>, поскольку при этом меняется и формат чисел (в частности, десятичная точка), что может, например, вызвать сложности (неудобство) при написании формул и чтении текстовых файлов. Например, программа ожидает &lsquo;<samp>,</samp>&rsquo; в качестве разделителя целой и дробной части, а пользователь вводит &lsquo;<samp>.</samp>&rsquo;.
+</p>
+</dd>
+<dt> <strong>Как мне вырезать (исключить из рисования) точку или область на графике?</strong></dt>
+<dd><p>Есть три основных способа. Во-первых, можно вырезать точку, задав одну из ее координат равной <code>NAN</code>. Во-вторых, можно воспользоваться функцией <code>SetCutBox()</code> или <code>CutOff()</code> для удаления точек из некоторой области (see section <a href="mathgl_ru_3.html#Cutting">Обрезание</a>). Наконец, можно сделать эти точки прозрачными (невидимыми) с помощью функций <code>SurfA()</code>, <code>Surf3A()</code> (see section <a href="mathgl_ru_3.html#Dual-plotting">Парные графики</a>). В последнем случае обеспечивается еще и плавность включения прозрачности.
+</p>
+</dd>
+<dt> <strong>Я использую VisualStudio, CBuilder или другой компилятор (не MinGW/gcc). Как мне подключить библиотеку MathGL?</strong></dt>
+<dd><p>Начиная с версии 1.10, можно использовать заголовочный файл <code>#include &lt;mgl/mgl_w.h&gt;</code>, содержащий C++ классы только с <code>inline</code> функциями. Такие классы должны быть совместимы с любым компилятором. Отмечу, что эти &quot;интерфейсные&quot; классы <strong>не совместимы</strong> с классами в обычных заголовочных файлах и использоваться должны только одни из них! Я рекомендую использовать обычные заголовочные классы для компиляторов GNU (например для MinGW).
+</p>
+
+</dd>
+<dt> <strong>Как мне собрать MathGL под Windows?</strong></dt>
+<dd><p>Простейший путь &ndash; использование комбинации CMake и MinGW. Также Вам может потребоваться дополнительные библиотеки, такие как GSL, PNG, JPEG и пр. Все они могут быть найдены на <a href="http://gnuwin32.sourceforge.net/packages.html">http://gnuwin32.sourceforge.net/packages.html</a>. После установки всех компонент, просто запустите конфигуратор CMake и соберите MathGL командой make.
+</p>
+</dd>
+<dt> <strong>Как создать окно FLTK/GLUT/Qt с текущими результатами параллельно с выполнением основных вычислений?</strong></dt>
+<dd><p>Следует создать отдельный поток для обработки сообщений в окно. Кросс-платформенный путь &ndash; использование библиотеки <code>pthread</code>. Обновление данных в окне можно выполнить вызовом функции <code>mglGraphFLTK::Update()</code>. Пример код имеет вид:
+</p><pre class="verbatim">//-----------------------------------------------------------------------------
+#include &lt;mgl/mgl_fltk.h&gt;
+#include &lt;pthread.h&gt;
+#include &lt;unistd.h&gt;
+
+mglPoint pnt;  // some global variable for changable data
+//-----------------------------------------------------------------------------
+int sample(mglGraph *gr, void *)
+{
+  gr-&gt;Box();  gr-&gt;Line(mglPoint(),pnt,&quot;Ar2&quot;); // just draw a vector
+  return 0;
+}
+//-----------------------------------------------------------------------------
+void *mgl_fltk_tmp(void *)      {       mglFlRun();     return 0;       }
+int main (int argc, char ** argv)
+{
+  mglGraphFLTK gr;
+  gr.Window(argc,argv,sample,&quot;test&quot;);  // create window
+  static pthread_t tmp;
+  pthread_create(&amp;tmp, 0, mgl_fltk_tmp, 0);
+  pthread_detach(tmp);    // run window handling in the separate thread
+  for(int i=0;i&lt;10;i++)   // do calculation
+  {
+    sleep(1);             // which can be very long
+    pnt = mglPoint(2*mgl_rnd()-1,2*mgl_rnd()-1);
+    gr.Update();          // update window
+  }
+  return 0;   // finish calculations and close the window
+}
+//-----------------------------------------------------------------------------
+</pre>
+
+
+</dd>
+<dt> <strong>Сколько человек участвовало в создании библиотеки?</strong></dt>
+<dd><p>Большую часть библиотеки написал один человек. Это результат примерно года работы на написание ядра библиотеки и базовых функций (в основном вечерами и по выходным). Процесс усовершенствования продолжается и теперь :). Скрипты сборки в основном написаны Д.Кулагиным, а экспорт в IDTF написан М.Видассовым.
+</p>
+</dd>
+<dt> <strong>Как мне показать растровую картинку на рисунке?</strong></dt>
+<dd><p>Можно импортировать ее в экземпляр <code>mglData</code> и построить с помощью функции <code>Dens()</code>. Например, для черно-белого рисунка можно использовать код: <code>mglData bmp; bmp.Import(&quot;fname.png&quot;,&quot;wk&quot;); gr-&gt;Dens(bmp,&quot;wk&quot;);</code>.
+</p>
+</dd>
+<dt> <strong>Как использовать MathGL в Qt, FLTK, wxWidgets ...?</strong></dt>
+<dd><p>Есть специальные классы (виджеты) для этих библиотек: QMathGL для Qt, Fl_MathGL для FLTK и т.д. Если Вы не нашли подходящий класс, то можете создать свой собственный виджет, рисующий растровое изображение из mglGraphAB::GetBits().
+</p>
+</dd>
+<dt> <strong>Как мне создать U3D файл (3D in PDF)?</strong></dt>
+<dd><p>Процедура состоит из двух шагов: создания файла IDTF и его конвертация в U3D. Можно использовать <a href="http://sourceforge.net/project/showfiles.php?group_id=152187&amp;package_id=300628">U3D tools</a> для конвертации IDTF в U3D. Ему требуется библиотека <a href="http://libharu.org">libharu</a> 2.1.0 или более поздняя. Для установки используйте обычную процедуру <code>./bootstrap, ./configure, make, sudo make install</code>. В результате появится программа IDTFConverter для конвертации файлов *.idtf в бинарные файлы *.u3d. Последние можно включить в PDF.
+</p>
+</dd>
+<dt> <strong>Как сменить шрифт (семейство шрифтов)?</strong></dt>
+<dd><p>Во-первых, надо загрузить файлы <a href="http://mathgl.sourceforge.net/download.html">отсюда</a> или <a href="http://sourceforge.net/project/showfiles.php?group_id=152187&amp;package_id=267177">отсюда</a>. Далее, в экземпляре mglGraph загружаем шрифты: <code>gr-&gt;SetFont(new mglFont(fontname,path));</code>. Здесь <var>fontname</var> &ndash; базовое имя шрифта, например &lsquo;<samp>STIX</samp>&rsquo;, и <var>path</var> &ndash; путь к папке с файлами шрифтов. Вызовите <code>gr-&gt;SetFont(NULL);</code> для использования шрифта по умолчанию.
+</p>
+</dd>
+<dt> <strong>Как нарисовать метки оси снаружи от графика?</strong></dt>
+<dd><p>Просто используйте отрицательные значения длины меток, например <code>gr-&gt;SetTickLen(-0.1);</code>.
+</p>
+</dd>
+</dl>
+
+<hr size="6">
+<a name="Interfaces"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#FAQ" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#C-interface" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_043d_0442e_0440_0444e_0439_0441_044b"></a>
+<h2 class="section">1.6 Интерфейсы</h2>
+
+<p>Библиотека MathGL имеет интерфейсы к целому ряду языков программирования. Большинство из них базируется на С интерфейсе и построены с помощью инструментария SWIG. Сюда входят Python, Java, Octave, Lisp, C#, Guile, Lua, Modula 3, Ocaml, Perl, PHP, Pike, R, Ruby, Tcl. Кроме того, есть отдельный интерфейс к Фортрану, имеющий похожий набор функций, но со слегка различным типом аргументов (использованы целые вместо указателей). Функции С и Фортран интерфейса помечены [функции С].
+Некоторое из языков представленных выше поддерживают объектное программирование (классы). Для них написан собственная оболочка и соответствующие функции/методы помечены (Python). Функции и методы доступные в С++ помечены (С++).
+Наконец, специальный командный язык MGL был написан для быстрого доступа к функциям C++ со всеми их возможностями. Скрипты MGL могут быть выполнены как из внешних программ (UDAV, mgl2png, mgl2eps и т.д.) так и из кода на C++/C/Python и пр. (see section <a href="mathgl_ru_7.html#mglParse-class">mglParse class</a>). Подробно эти команды описаны в <a href="mathgl_ru_8.html#MGL-interface">Язык MGL</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#C-interface">1.6.1 C интерфейс</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Python-interface">1.6.2 Python интерфейс</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="C-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Interfaces" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Python-interface" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Interfaces" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="C-_0438_043d_0442e_0440_0444e_0439_0441"></a>
+<h3 class="subsection">1.6.1 C интерфейс</h3>
+
+<p>C интерфейс является базовым для большинства других интерфейсов. Он содержит функции на чистом C для большинства методов классов MathGL. В отличие от членов-функций C++ классов, C функции в качестве аргументов должны явно иметь переменные типа HMGL (для графики) и/или HMDT (для массивов данных) для указания объекта рисования или данных. Таким образом, первым вызовом пользователя должно быть создание этих объектов с помощью функций <code>mgl_create_*()</code>, а последним &ndash; их удаление с помощью функций <code>mgl_delete_*()</code>.
+</p>
+<p>Все функции описанны в заголовочном файле <code>#include &lt;mgl/mgl_c.h&gt;</code> и используют переменные для идентификаторов объектов рисования/данных следующих типов:
+</p><ul>
+<li> 
+<code>HMGL</code> &mdash; Указатель на класс <code>mglGraph</code> (see section <a href="mathgl_ru_3.html#MathGL-core">Ядро MathGL</a>).
+</li><li> 
+<code>HMDT</code> &mdash; Указатель на класс <code>mglData</code> (see section <a href="mathgl_ru_6.html#mglData-class">Класс mglData</a>).
+</li><li> 
+<code>HMPR</code> &mdash; Указатель на класс <code>mglParse</code> (see section <a href="mathgl_ru_7.html#mglParse-class">mglParse class</a>)..
+</li></ul>
+<p>Эти переменные содержат идентификаторы объектов графики или данных. 
+</p>
+<p>Фортрановские функции имеют те же имена, что и функции C. Однако, есть различие: переменные типов <code>HMGL, HMDT</code> должны быть объявлены как целые достаточной разрядности (integer*4 на 32-битных системах или integer*8 на 64-битных системах). Все С функции являются процедурами для Фортрана (должны вызываться с помощью оператора call). Исключение составляют функции, возвращающие переменные типа <code>HMGL</code> или <code>HMDT</code>. Последние должны быть объявлены целыми  для использования в фортрановском коде. Также помните, что строки в фортране обозначаются одинарной кавычкой <code>&lt;/samp&gt;&amp;rsquo;</code>, а не двойной <code>&quot;</code> как в С/С++.
+</p>
+<p><strong>Создание и удаление графического объекта</strong>
+</p>
+<ul>
+<li> Функции для рисования в памяти:
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fgl"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_gl</b><i> ()</i></dt>
+<dd><p>Создает экземпляр класса mglGraphGL.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fzb"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_zb</b><i> (<code>int</code> width, <code>int</code> height)</i></dt>
+<dd><p>Создает экземпляр класса mglGraphZB с указанными размерами.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fps"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_ps</b><i> (<code>int</code> width, <code>int</code> height)</i></dt>
+<dd><p>Создает экземпляр класса mglGraphPS с указанными размерами.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fidtf"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_idtf</b><i> ()</i></dt>
+<dd><p>Создает экземпляр класса mglGraphIDTF.
+</p></dd></dl>
+
+</li><li> Функции для рисования в окне:
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fglut"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_glut</b><i> (<code>int (*</code>draw<code>)(HMGL gr, void *p)</code>, <code>const char *</code>title, <code>void *</code>par)</i></dt>
+<dd><p>Создает экземпляр класса mglGraphGLUT  и связанное с ним окно. Одновременно может быть открыто только одно окно. Описание аргументов функции см. в <a href="mathgl_ru_4.html#mglGraphAB-class">Класс mglGraphAB</a>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005ffltk"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_fltk</b><i> (<code>int (*</code>draw<code>)(HMGL gr, void *p)</code>, <code>const char *</code>title, <code>void *</code>par)</i></dt>
+<dd><p>Создает экземпляр класса mglGraphFLTK и связанное с ним окно. Одновременно может быть открыто несколько окно. Однако Вы должны вызвать функцию <code>mgl_fltk_run()</code> для начала обработки сообщений окну. Описание аргументов функции см. в <a href="mathgl_ru_4.html#mglGraphAB-class">Класс mglGraphAB</a>. Замечу, что параметр <var>draw</var> может быть равным <code>NULL</code> для отображения текущей статической картинки (анимация и слайды не доступны).
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fgraph_005fqt"></a><u>C function:</u> <code>HMGL</code> <b>mgl_create_graph_qt</b><i> (<code>int (*</code>draw<code>)(HMGL gr, void *p)</code>, <code>const char *</code>title, <code>void *</code>par)</i></dt>
+<dd><p>Создает экземпляр класса mglGraphQT и связанное с ним окно. Одновременно может быть открыто несколько окно. Однако Вы должны вызвать функцию <code>mgl_qt_run()</code> для начала обработки сообщений окну. Описание аргументов функции см. в <a href="mathgl_ru_4.html#mglGraphAB-class">Класс mglGraphAB</a>. Замечу, что параметр <var>draw</var> может быть равным <code>NULL</code> для отображения текущей статической картинки (анимация и слайды не доступны).
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005ffltk_005frun"></a><u>C function:</u> <code>void</code> <b>mgl_fltk_run</b><i> ()</i></dt>
+<dd><p>Запускает цикл обработки сообщений FLTK. Обычно программа завершает функцию main() вызовом <code>return mgl_fltk_run();</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005ffltk_005fthread"></a><u>C function:</u> <code>void</code> <b>mgl_fltk_thread</b><i> ()</i></dt>
+<dd><p>Запускает цикл обработки сообщений FLTK. В отличие от <code>mgl_fltk_run()</code> цикл запускается в отдельном потоке, так что основная программа продолжает выполнение сразу.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fqt_005frun"></a><u>C function:</u> <code>void</code> <b>mgl_qt_run</b><i> ()</i></dt>
+<dd><p>Запускает цикл обработки сообщений Qt. Обычно программа завершает функцию main() вызовом <code>return mgl_qt_run();</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fqt_005fthread"></a><u>C function:</u> <code>void</code> <b>mgl_qt_thread</b><i> ()</i></dt>
+<dd><p>Запускает цикл обработки сообщений Qt. В отличие от <code>mgl_qt_run()</code> цикл запускается в отдельном потоке, так что основная программа продолжает выполнение сразу.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fupdate"></a><u>C function:</u> <code>void</code> <b>mgl_update</b><i> (<code>HMGL</code> graph)</i></dt>
+<dd><p>Обновляет содержимое экрана.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fset_005fshow_005fmouse_005fpos"></a><u>C function:</u> <code>void</code> <b>mgl_set_show_mouse_pos</b><i> (<code>HMGL</code> graph, <code>int</code> enable)</i></dt>
+<dd><p>Switch to show or not in the widget the last mouse click position.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fget_005flast_005fmouse_005fpos"></a><u>C function:</u> <code>void</code> <b>mgl_get_last_mouse_pos</b><i> (<code>HMGL</code> graph, <code>float *</code>x, <code>float *</code>y, <code>float *</code>z)</i></dt>
+<dd><p>Last position of mouse click.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcalc_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_calc_xyz</b><i> (<code>HMGL</code> graph, <code>int</code> xs, <code>int</code> ys, <code>float *</code>x, <code>float *</code>y, <code>float *</code>z)</i></dt>
+<dd><p>Calculate 3D coordinate {x,y,z} for screen point {xs,ys}. At this moment it ignore perspective and transformation formulas (curvilinear coordinates). The calculation are done for the last used InPlot (see section <a href="mathgl_ru_3.html#Transformation-matrix">Матрица преобразования</a>).
+</p></dd></dl>
+
+
+</li><li> Functions for data creation:
+<dl>
+<dt><a name="index-mgl_005fcreate_005fdata"></a><u>C function:</u> <code>HMDT</code> <b>mgl_create_data</b><i> ()</i></dt>
+<dd><p>Create simple instance of class mglData.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fdata_005fsize"></a><u>C function:</u> <code>HMDT</code> <b>mgl_create_data_size</b><i> (<code>int</code> nx, <code>int</code> ny, <code>int</code> nz)</i></dt>
+<dd><p>Create instance of class mglData with specified sizes.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fcreate_005fdata_005ffile"></a><u>C function:</u> <code>HMDT</code> <b>mgl_create_data_file</b><i> (<code>const char *</code>fname)</i></dt>
+<dd><p>Create instance of class mglData and fill it by data from text file.
+</p></dd></dl>
+
+</li><li> Each created object <strong>must</strong> be deleted after usage by functions:
+<dl>
+<dt><a name="index-mgl_005fdelete_005fgraph"></a><u>C function:</u> <code>void</code> <b>mgl_delete_graph</b><i> (<code>HMGL</code> graph)</i></dt>
+<dd><p>Delete the instance of class. Must be used after plotting for every created graphical object.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fdelete_005fdata"></a><u>C function:</u> <code>void</code> <b>mgl_delete_data</b><i> (<code>HMDT</code> dat)</i></dt>
+<dd><p>Delete the instance of class. Must be used after using for every created data object.
+</p></dd></dl>
+</li></ul>
+
+<hr size="6">
+<a name="Python-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#C-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Thanks" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Interfaces" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Python-_0438_043d_0442e_0440_0444e_0439_0441"></a>
+<h3 class="subsection">1.6.2 Python интерфейс</h3>
+
+<p>MathGL provide the interface to a set of languages via SWIG library. Some of these languages support classes. The typical example is Python &ndash; which is denoted in the chapter title.
+</p>
+<p>To use Python classes just execute &lsquo;<samp>import mathgl</samp>&rsquo;. The simplest example will be:
+</p><pre class="verbatim">import mathgl
+a=mathgl.mglGraph()
+a.Box()
+a.WritePNG(&lt;/samp&gt;&amp;rsquo;test.png&lt;/samp&gt;&amp;rsquo;)
+</pre><p>Alternatively you can import all classes from <code>mathgl</code> module and easily access MathGL classes: 
+</p><pre class="verbatim">from mathgl import *
+a=mglGraph()
+a.Box()
+a.WritePNG(&lt;/samp&gt;&amp;rsquo;test.png&lt;/samp&gt;&amp;rsquo;)
+</pre><p>It become useful if you will create many <code>mglData</code> object, for example.
+</p>
+<p>There are 2 classes in Python interface:
+</p><ul>
+<li> <code>mglGraph</code>
+&ndash; provide practically the same functionality as C++ class <code>mglGraph</code> (see section <a href="mathgl_ru_3.html#MathGL-core">Ядро MathGL</a>). But it is not abstract class and it allows one to select at construction stage which plotter (ZB or PS and so on) will be used.
+</li><li> <code>mglData</code>
+&ndash; is absolutely the same class as C++ <code>mglData</code> (see section <a href="mathgl_ru_6.html#mglData-class">Класс mglData</a>). But an additional feature to acess data values is added. You can use construction like this: <code>dat[i]=sth;</code> or <code>sth=dat[i]</code> at this flat representation of data is used (i.e., <var>i</var> can be in range 0...nx*nx*nz-1. Also you can import NumPy arrays as input arguments: <code>mgl_dat = mglData(numpy_dat);</code>.
+
+<p>To use Python classes just execute &lsquo;<samp>import mathgl</samp>&rsquo;. The simplest example will be:
+</p><pre class="verbatim">import mathgl
+a=mathgl.mglGraph()
+a.Box()
+a.WritePNG(&lt;/samp&gt;&amp;rsquo;test.png&lt;/samp&gt;&amp;rsquo;)
+</pre><p>Alternatively you can import all classes from <code>mathgl</code> module and easily access MathGL classes: 
+</p><pre class="verbatim">from mathgl import *
+a=mglGraph()
+a.Box()
+a.WritePNG(&lt;/samp&gt;&amp;rsquo;test.png&lt;/samp&gt;&amp;rsquo;)
+</pre><p>It become useful if you will create many <code>mglData</code> object, for example.
+</p>
+<p>There are 2 classes in Python interface:
+</p><ul>
+<li> <code>mglGraph</code>
+&ndash; provide practically the same functionality as C++ class <code>mglGraph</code> (see section <a href="mathgl_ru_3.html#MathGL-core">Ядро MathGL</a>). But it is not abstract class and it allows one to select at construction stage which plotter (ZB or PS and so on) will be used.
+</li><li> <code>mglData</code>
+&ndash; is absolutely the same class as C++ <code>mglData</code> (see section <a href="mathgl_ru_6.html#mglData-class">Класс mglData</a>). But an additional feature to acess data values is added. You can use construction like this: <code>dat[i]=sth;</code> or <code>sth=dat[i]</code> at this flat representation of data is used (i.e., <var>i</var> can be in range 0...nx*nx*nz-1.
+</li></ul>
+
+<p>There is main difference from C++ classes &ndash; Python class <code>mglGraph</code> don&lt;/samp&gt;&amp;rsquo;t have variables (options). All corresponding features are moved to methods.
+The core of MathGL Python class is <strong>mglGraph</strong> class. It contains a lot of plotting functions for 1D, 2D and 3D plots. So most of sections is describe its methods. Its constructor have following arguments:
+</p>
+<dl>
+<dt><a name="index--on-mglGraph-_0028Python_0029"></a><u>Constructor on mglGraph (Python):</u> <b><code></code></b><i> mglGraph (<code>int</code> kind=<code>0</code>, <code>int</code> width=<code>600</code>, <code>int</code> height=<code>400</code>)</i></dt>
+<dd><p>Create the instance of class mglGraph with specified sizes <var>width</var> and <var>height</var>. Parameter <var>type</var> may have following values: &lsquo;<samp>0</samp>&rsquo; &ndash; use <code>mglGraphZB</code> plotter (default), &lsquo;<samp>1</samp>&rsquo; &ndash; use <code>mglGraphPS</code> plotter, &lsquo;<samp>2</samp>&rsquo; &ndash; use <code>mglGraphGL</code> plotter, &lsquo;<samp>3</samp>&rsquo; &ndash; use <code>mglGraphIDTF</code> plotter.
+</p></dd></dl>
+</li></ul>
+
+<p>There is main difference from C++ classes &ndash; Python class <code>mglGraph</code> don&lt;/samp&gt;&amp;rsquo;t have variables (options). All corresponding features are moved to methods. The core of MathGL Python class is <strong>mglGraph</strong> class. It contains a lot of plotting functions for 1D, 2D and 3D plots. So most of sections is describe its methods. Its constructor have following arguments:
+</p>
+<dl>
+<dt><a name="index--on-mglGraph-_0028Python_0029-1"></a><u>Constructor on mglGraph (Python):</u> <b><code></code></b><i> mglGraph (<code>int</code> kind=<code>0</code>, <code>int</code> width=<code>600</code>, <code>int</code> height=<code>400</code>)</i></dt>
+<dd><p>Create the instance of class mglGraph with specified sizes <var>width</var> and <var>height</var>. Parameter <var>type</var> may have following values: &lsquo;<samp>0</samp>&rsquo; &ndash; use <code>mglGraphZB</code> plotter (default), &lsquo;<samp>1</samp>&rsquo; &ndash; use <code>mglGraphPS</code> plotter, &lsquo;<samp>2</samp>&rsquo; &ndash; use <code>mglGraphGL</code> plotter, &lsquo;<samp>3</samp>&rsquo; &ndash; use <code>mglGraphIDTF</code> plotter.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Thanks"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Python-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Overview" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0411_043b_0430g_043e_0434_0430_0440_043d_043e_0441_0442_0438"></a>
+<h2 class="section">1.7 Благодарности</h2>
+
+<ul>
+<li>
+My special thanks to Marina Balakina for the patience during library writing and for the help in documentation writing and spelling.
+</li><li>
+I&lt;/samp&gt;&amp;rsquo;m thankful to D. Kulagin and S.M. Plis for making Debian packages.
+</li><li>
+I&lt;/samp&gt;&amp;rsquo;m thankful to M. Vidassov for the help in handling solid UTF-8 fonts.
+</li><li>
+I&lt;/samp&gt;&amp;rsquo;m thankful to N. Troickiy and V. Lipatov for making RPM packages.
+</li><li>
+I&lt;/samp&gt;&amp;rsquo;m thankful to S. Skobelev, A. Korotkevich, V. Onuchin, S.M. Plis, R. Kiselev, A. Ivanov, M. Vidiassov and V. Lipatov for fruitful comments.
+</li></ul>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_ru.html/mathgl_ru_10.html b/texinfo/mathgl_ru.html/mathgl_ru_10.html
new file mode 100644
index 0000000..c595635
--- /dev/null
+++ b/texinfo/mathgl_ru.html/mathgl_ru_10.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: A. Символы TeX</title>
+
+<meta name="description" content="MathGL 1.11: A. Символы TeX">
+<meta name="keywords" content="MathGL 1.11: A. Символы TeX">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="TeX_002dlike-symbols"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_9.html#Stereo-image-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_0438_043c_0432_043e_043b_044b-TeX"></a>
+<h1 class="appendix">A. Символы TeX</h1>
+<p>Ниже приведен полный список TeX-их команд, распознаваемых MathGL. Если команда была не распознана, то она будет напечатана как есть с пропущенным символом &lsquo;<samp>\</samp>&rsquo;. Например, &lsquo;<samp>\#</samp>&rsquo; выдаст &ldquo;#&rdquo;, &lsquo;<samp>\\</samp>&rsquo; выдаст &ldquo;\&rdquo;, &lsquo;<samp>\qq</samp>&rsquo; выдаст &ldquo;qq&rdquo;.
+</p>
+<p><strong>Положение символов</strong>: _, ^, @.
+</p>
+<p><strong>Стиль текста</strong>: \big, \b, \textbf, \i, \textit, \bi, \r, \textrm, \a, \overline, \u, \underline, \w, \wire, #, \color[wkrgbcymhRGBCYMHWlenupqLENUPQ]
+</p>
+<p><strong>Корни</strong>: \sqrt, \sqrt3, \sqrt4
+</p>
+<p><strong>Дроби</strong>: \frac, \stack, \overset, \underset, \stackr, \stackl
+</p>
+<p><strong>Акценты</strong>: \hat, \tilde, \dot, \ddot, \dddot, \ddddot, \acute, \check, \grave, \vec, \bar, \breve
+</p>
+<p><strong>Специальные символы</strong>:
+\# (#), \% (%), \&amp; (&amp;), \^ (^).
+</p>
+<p>\AA (Å), \AE (Æ), \APLboxquestion (⍰), \APLboxupcaret (⍓), \APLnotbackslash (⍀), \APLnotslash (⌿), \Alpha (Α), \And (&amp;), \Angstrom (Å), \Barv (⫧), \BbbC (ℂ), \BbbGamma (ℾ), \BbbH (ℍ), \BbbN (ℕ), \BbbP (ℙ), \BbbPi (ℿ), \BbbQ (ℚ), \BbbR (ℝ), \BbbZ (ℤ), \Bbbgamma (ℽ), \Bbbpi (ℼ), \Bbbsum (⅀), \Beta (Β), \Bumpeq (≎), \Cap (⋒), \Chi (Χ), \Colon (∷), \Coloneq (⩴), \Cup (⋓), \DDownarrow (⟱), \DH (Ð), \DJ (Đ), \DashV (⫥), \DashVDash (⟚), \Dashv (⫤), \Ddownarrow (⤋), \Delta (Δ), \Digamma (Ϝ), \Doteq (≑), \Downarrow (⇓), \Epsilon (Ε), \Equiv (≣), \Eta (Η), \Eulerconst (ℇ), \Exclam (‼), \Finv (Ⅎ), \Game (⅁), \Gamma (Γ), \Gt (⪢), \Hermaphrodite (⚥), \Im (ℑ), \Iota (Ι), \Kappa (Κ), \Koppa (Ϟ), \L (Ł), \LLeftarrow (⭅), \Lambda (Λ), \Lbrbrak (⟬), \Ldsh (↲), \Leftarrow (⇐), \Leftrightarrow (⇔), \Lleftarrow (⇚), \Longleftarrow (⟸), \Longleftrightarrow (⟺), \Longmapsfrom (⟽), \Longmapsto (⟾), \Longrightarrow (⟹), \Lparengtr (⦕), \Lsh (↰), \Lt (⪡), \Lvzigzag (⧚), \Mapsfrom (⤆), \Mapsto (⤇), \Mu (Μ), \NG (Ŋ), \Nearrow (⇗), \Not (⫬), \Nu (Ν), \Nwarrow (⇖), \O (Ø), \OE (Œ), \Ohorn (Ơ), \Omega (Ω), \Omicron (Ο), \Otimes (⨷), \P (¶), \Phi (Φ), \Pi (Π), \Planckconst (ℎ), \Prec (⪻), \PropertyLine (⅊), \Psi (Ψ), \QED (∎), \Question (⁇), \RRightarrow (⭆), \Rbrbrak (⟭), \Rdsh (↳), \Re (ℜ), \Rho (Ρ), \Rightarrow (⇒), \Rparenless (⦖), \Rrightarrow (⇛), \Rsh (↱), \Rvzigzag (⧛), \S (§), \Sc (⪼), \Searrow (⇘), \Sigma (Σ), \Sqcap (⩎), \Sqcup (⩏), \Stigma (Ϛ), \Subset (⋐), \Supset (⋑), \Swarrow (⇙), \TH (Þ), \Tau (Τ), \Theta (Θ), \UUparrow (⟰), \Uhorn (Ư), \Uparrow (⇑), \Updownarrow (⇕), \Uuparrow (⤊), \VDash (⊫), \Vbar (⫫), \Vdash (⊩), \Vee (⩔), \Vert (‖), \Vvdash (⊪), \Vvert (⦀), \Wedge (⩓), \XBox (☒), \Xi (Ξ), \Yup (⅄), \Zbar (Ƶ), \Zeta (Ζ).
+</p>
+<p>\aa (å), \ac (∾), \accurrent (⏦), \acidfree (♾), \acwcirclearrow (⥀), \acwgapcirclearrow (⟲), \acwleftarcarrow (⤹), \acwopencirclearrow (↺), \acwoverarcarrow (⤺), \acwundercurvearrow (⤻), \adots (⋰), \ae (æ), \aleph (ℵ), \alpha (α), \amalg (⨿), \angdnr (⦟), \angle (∠), \angles (⦞), \angleubar (⦤), \approx (≈), \approxeq (≊), \approxeqq (⩰), \approxident (≋), \arceq (≘), \aries (♈), \assert (⊦), \ast (∗), \asteq (⩮), \astrosun (☉), \asymp (≍), \awint (⨑).
+</p>
+<p>\bNot (⫭), \backcong (≌), \backdprime (‶), \backepsilon (϶), \backprime (‵), \backsim (∽), \backsimeq (⋍), \backslash (\), \backtrprime (‷), \bagmember (⋿), \barV (⫪), \barcap (⩃), \barcup (⩂), \bardownharpoonleft (⥡), \bardownharpoonright (⥝), \barleftarrow (⇤), \barleftarrowrightarrowbar (↹), \barleftharpoondown (⥖), \barleftharpoonup (⥒), \barovernorthwestarrow (↸), \barrightarrowdiamond (⤠), \barrightharpoondown (⥟), \barrightharpoonup (⥛), \baruparrow (⤒), \barupharpoonleft (⥘), \barupharpoonright (⥔), \barvee (⊽), \barwedge (⊼), \bbrktbrk (⎶), \bdHrule (═), \bdVrule (║), \bdbVbH (╬), \bdbVbh (╫), \bdbVlH (╣), \bdbVlh (╢), \bdbVrH (╠), \bdbVrh (╟), \bdbvbH (╪), \bdbvbh (┼), \bdbvlH (╡), \bdbvlh (┤), \bdbvrH (╞), \bdbvrh (├), \bddVbH (╦), \bddVbh (╥), \bddVlH (╗), \bddVlh (╖), \bddVrH (╔), \bddVrh (╓), \bddvbH (╤), \bddvbh (┬), \bddvlH (╕), \bddvlh (┐), \bddvrH (╒), \bddvrh (┌), \bdhrule (─), \bdnesw (╱), \bdnwse (╲), \bdquadhdash (┈), \bdquadvdash (┊), \bdtriplevdash (┆), \bduVbH (╩), \bduVbh (╨), \bduVlH (╝), \bduVlh (╜), \bduVrH (╚), \bduVrh (╙), \bduvbH (╧), \bduvbh (┴), \bduvlH (╛), \bduvlh (┘), \bduvrH (╘), \bduvrh (└), \bdvrule (│), \because (∵), \benzenr (⏣), \beta (β), \beth (ℶ), \between (≬), \bigblacktriangledown (▼), \bigblacktriangleup (▲), \bigbot (⟘), \bigcap (⋂), \bigcup (⋃), \bigslopedvee (⩗), \bigslopedwedge (⩘), \bigstar (★), \bigtop (⟙), \bigtriangledown (▽), \bigtriangleup (△), \bigvee (⋁), \bigwedge (⋀), \bigwhitestar (☆), \blackcircledownarrow (⧭), \blackcircledrightdot (⚈), \blackcircledsanseight (➑), \blackcircledsansfive (➎), \blackcircledsansfour (➍), \blackcircledsansnine (➒), \blackcircledsansone (➊), \blackcircledsansseven (➐), \blackcircledsanssix (➏), \blackcircledsansten (➓), \blackcircledsansthree (➌), \blackcircledsanstwo (➋), \blackcircledtwodots (⚉), \blackcircleulquadwhite (◕), \blackdiamonddownarrow (⧪), \blackhourglass (⧗), \blackinwhitediamond (◈), \blackinwhitesquare (▣), \blacklefthalfcircle (◖), \blackpointerleft (◄), \blackpointerright (►), \blackrighthalfcircle (◗), \blacksmiley (☻), \blacktriangle (▴), \blacktriangledown (▾), \blacktriangleleft (◀), \blacktriangleright (▶), \blkhorzoval (⬬), \blkvertoval (⬮), \blockfull (█), \blockhalfshaded (▒), \blocklefthalf (▌), \blocklowhalf (▄), \blockqtrshaded (░), \blockrighthalf (▐), \blockthreeqtrshaded (▓), \blockuphalf (▀), \bot (⊥), \botsemicircle (◡), \bowtie (⋈), \box (◻), \boxast (⧆), \boxbar (◫), \boxbox (⧈), \boxbslash (⧅), \boxcircle (⧇), \boxdiag (⧄), \boxdot (⊡), \boxminus (⊟), \boxonbox (⧉), \boxplus (⊞), \boxtimes (⊠), \bsimilarleftarrow (⭁), \bsimilarrightarrow (⭇), \bsolhsub (⟈), \btimes (⨲), \bullet (∙), \bullseye (◎), \bumpeq (≏), \bumpeqq (⪮).
+</p>
+<p>\calB (ℬ), \calE (ℰ), \calF (ℱ), \calH (ℋ), \calM (ℳ), \calR (ℛ), \cap (∩), \capdot (⩀), \capwedge (⩄), \caretinsert (‸), \carreturn (⏎), \carriagereturn (↵), \ccwundercurvearrow (⤿), \cdot (⋅), \cdotp (·), \cdots (⋯), \cdprime (ʺ), \checkmark (✓), \chi (χ), \cirE (⧃), \cirbot (⟟), \circ (∘), \circeq (≗), \circfint (⨐), \circlebottomhalfblack (◒), \circledA (Ⓐ), \circledB (Ⓑ), \circledC (Ⓒ), \circledD (Ⓓ), \circledE (Ⓔ), \circledF (Ⓕ), \circledG (Ⓖ), \circledH (Ⓗ), \circledI (Ⓘ), \circledJ (Ⓙ), \circledK (Ⓚ), \circledL (Ⓛ), \circledM (Ⓜ), \circledN (Ⓝ), \circledO (Ⓞ), \circledP (Ⓟ), \circledQ (Ⓠ), \circledR (Ⓡ), \circledS (Ⓢ), \circledT (Ⓣ), \circledU (Ⓤ), \circledV (Ⓥ), \circledW (Ⓦ), \circledX (Ⓧ), \circledY (Ⓨ), \circledZ (Ⓩ), \circleda (ⓐ), \circledast (⊛), \circledb (ⓑ), \circledbullet (⦿), \circledc (ⓒ), \circledcirc (⊚), \circledd (ⓓ), \circleddash (⊝), \circlede (ⓔ), \circledeight (⑧), \circledequal (⊜), \circledf (ⓕ), \circledfive (⑤), \circledfour (④), \circledg (ⓖ), \circledh (ⓗ), \circledi (ⓘ), \circledj (ⓙ), \circledk (ⓚ), \circledl (ⓛ), \circledm (ⓜ), \circledn (ⓝ), \circlednine (⑨), \circledo (ⓞ), \circledone (①), \circledownarrow (⧬), \circledp (ⓟ), \circledparallel (⦷), \circledq (ⓠ), \circledr (ⓡ), \circledrightdot (⚆), \circleds (ⓢ), \circledsanseight (➇), \circledsansfive (➄), \circledsansfour (➃), \circledsansnine (➈), \circledsansone (➀), \circledsansseven (➆), \circledsanssix (➅), \circledsansten (➉), \circledsansthree (➂), \circledsanstwo (➁), \circledseven (⑦), \circledsix (⑥), \circledstar (✪), \circledt (ⓣ), \circledthree (③), \circledtwo (②), \circledtwodots (⚇), \circledu (ⓤ), \circledv (ⓥ), \circledvert (⦶), \circledw (ⓦ), \circledwhitebullet (⦾), \circledx (ⓧ), \circledy (ⓨ), \circledz (ⓩ), \circledzero (⓪), \circlehbar (⦵), \circlelefthalfblack (◐), \circlellquad (◵), \circlelrquad (◶), \circleonleftarrow (⬰), \circleonrightarrow (⇴), \circlerighthalfblack (◑), \circletophalfblack (◓), \circleulquad (◴), \circleurquad (◷), \circleurquadblack (◔), \circlevertfill (◍), \cirmid (⫯), \cirscir (⧂), \clangle (〈), \closedvarcap (⩍), \closedvarcup (⩌), \closedvarcupsmashprod (⩐), \closure (⁐), \cloverleaf (⌘), \clubsuit (♣), \colon (:), \colon (∶), \coloneq (≔), \commaminus (⨩), \complement (∁), \concavediamond (⟡), \concavediamondtickleft (⟢), \concavediamondtickright (⟣), \cong (≅), \congdot (⩭), \conictaper (⌲), \conjunction (☌), \coprod (∐), \cprime (ʹ), \crangle (〉), \csub (⫏), \csube (⫑), \csup (⫐), \csupe (⫒), \cuberoot (∛), \cup (∪), \cupdot (⊍), \cupleftarrow (⊌), \cupvee (⩅), \curlyeqprec (⋞), \curlyeqsucc (⋟), \curlyvee (⋎), \curlywedge (⋏), \curvearrowleft (↶), \curvearrowleftplus (⤽), \curvearrowright (↷), \curvearrowrightminus (⤼), \cwcirclearrow (⥁), \cwgapcirclearrow (⟳), \cwopencirclearrow (↻), \cwrightarcarrow (⤸), \cwundercurvearrow (⤾), \cylcty (⌭).
+</p>
+<p>\dag (†), \dagger (†), \daleth (ℸ), \danger (☡), \dashV (⫣), \dashVdash (⟛), \dashcolon (∹), \dashleftharpoondown (⥫), \dashrightharpoondown (⥭), \dashv (⊣), \dbkarow (⤏), \ddag (‡), \ddagger (‡), \ddots (⋱), \ddotseq (⩷), \delta (δ), \dh (ð), \diameter (⌀), \diamond (◇), \diamondbotblack (⬙), \diamondcdot (⟐), \diamondleftarrow (⤝), \diamondleftarrowbar (⤟), \diamondleftblack (⬖), \diamondrightblack (⬗), \diamondsuit (♢), \diamondtopblack (⬘), \dicei (⚀), \diceii (⚁), \diceiii (⚂), \diceiv (⚃), \dicev (⚄), \dicevi (⚅), \digamma (ϝ), \dingasterisk (✽), \dircurrent (⎓), \disin (⋲), \div (÷), \divideontimes (⋇), \dj (đ), \dlcrop (⌍), \doteq (≐), \dotequiv (⩧), \dotminus (∸), \dotplus (∔), \dots (…), \dotsim (⩪), \dotsminusdots (∺), \dottedcircle (◌), \dottedsquare (⬚), \dottimes (⨰), \doublebarvee (⩢), \doublebarwedge (⩞), \doubleplus (⧺), \downarrow (↓), \downarrowbar (⤓), \downarrowbarred (⤈), \downdasharrow (⇣), \downdownarrows (⇊), \downfishtail (⥿), \downharpoonleft (⇃), \downharpoonleftbar (⥙), \downharpoonright (⇂), \downharpoonrightbar (⥕), \downharpoonsleftright (⥥), \downrightcurvedarrow (⤵), \downtriangleleftblack (⧨), \downtrianglerightblack (⧩), \downuparrows (⇵), \downupharpoonsleftright (⥯), \downwhitearrow (⇩), \downzigzagarrow (↯), \dprime (″), \draftingarrow (➛), \drbkarow (⤐), \drcrop (⌌), \dsol (⧶), \dsub (⩤), \dualmap (⧟).
+</p>
+<p>\earth (♁), \egsdot (⪘), \eighthnote (♪), \elinters (⏧), \ell (ℓ), \elsdot (⪗), \emdash (—), \emptyset (∅), \emptysetoarr (⦳), \emptysetoarrl (⦴), \emptysetobar (⦱), \emptysetocirc (⦲), \endash (–), \enleadertwodots (‥), \envelope (✉), \eparsl (⧣), \epsilon (ϵ), \eqcirc (≖), \eqcolon (≕), \eqdef (≝), \eqdot (⩦), \eqeq (⩵), \eqeqeq (⩶), \eqgtr (⋝), \eqless (⋜), \eqqgtr (⪚), \eqqless (⪙), \eqqplus (⩱), \eqqsim (⩳), \eqqslantgtr (⪜), \eqqslantless (⪛), \eqsim (≂), \eqslantgtr (⪖), \eqslantless (⪕), \equalleftarrow (⭀), \equalparallel (⋕), \equalrightarrow (⥱), \equiv (≡), \equivDD (⩸), \equivVert (⩨), \equivVvert (⩩), \eqvparsl (⧥), \errbarblackcircle (⧳), \errbarblackdiamond (⧱), \errbarblacksquare (⧯), \errbarcircle (⧲), \errbardiamond (⧰), \errbarsquare (⧮), \eta (η), \euro (€), \exists (∃).
+</p>
+<p>\fallingdotseq (≒), \fbowtie (⧓), \fcmp (⨾), \fdiagovnearrow (⤯), \fdiagovrdiag (⤬), \female (♀), \figdash (‒), \fint (⨏), \fisheye (◉), \flat (♭), \fltns (⏥), \forall (∀), \forks (⫝̸), \forksnot (⫝), \forkv (⫙), \fourthroot (∜), \fourvdots (⦙), \fracfiveeighths (⅝), \fracfivesixths (⅚), \fracfourfifths (⅘), \fraconeeighth (⅛), \fraconefifth (⅕), \fraconesixth (⅙), \fraconethird (⅓), \fracseveneights (⅞), \fracslash (⁄), \fracthreeeighths (⅜), \fracthreefifths (⅗), \fractwofifths (⅖), \fractwothirds (⅔), \frakC (ℭ), \frakH (ℌ), \frakZ (ℨ), \frown (⌢), \frownie (☹), \fullouterjoin (⟗).
+</p>
+<p>\gamma (γ), \ge (≥), \geq (≥), \geqq (≧), \geqslant (⩾), \gescc (⪩), \gesdot (⪀), \gesdoto (⪂), \gesdotol (⪄), \gesles (⪔), \gets (←), \gg (≫), \ggg (⋙), \gggnest (⫸), \gimel (ℷ), \glE (⪒), \gla (⪥), \gleichstark (⧦), \glj (⪤), \gnapprox (⪊), \gneq (⪈), \gneqq (≩), \gnsim (⋧), \greater (&gt;), \gsime (⪎), \gsiml (⪐), \gtcc (⪧), \gtcir (⩺), \gtlpar (⦠), \gtquest (⩼), \gtrapprox (⪆), \gtrarr (⥸), \gtrdot (⋗), \gtreqless (⋛), \gtreqqless (⪌), \gtrless (≷), \gtrsim (≳), \guillemotleft («), \guillemotright (»), \guilsinglleft (‹), \guilsinglright (›).
+</p>
+<p>\harrowextender (⎯), \hatapprox (⩯), \hbar (ℏ), \heartsuit (♡), \hermitmatrix (⊹), \hexagon (⎔), \hexagonblack (⬣), \hiraganano (の), \hknearrow (⤤), \hknwarrow (⤣), \hksearow (⤥), \hkswarow (⤦), \hookleftarrow (↩), \hookrightarrow (↪), \horizbar (―), \hourglass (⧖), \house (⌂), \hrectangle (▭), \hrectangleblack (▬), \hslash (ℏ), \hyphenbullet (⁃), \hzigzag (〰).
+</p>
+<p>\iiiint (⨌), \iiint (∭), \iinfin (⧜), \iint (∬), \imageof (⊷), \in (∈), \incare (℅), \increment (∆), \infty (∞), \int (∫), \intBar (⨎), \intbar (⨍), \intbottom (⌡), \intcap (⨙), \intclockwise (∱), \intcup (⨚), \intercal (⊺), \interleave (⫴), \intextender (⎮), \intlharhk (⨗), \intprod (⨼), \intprodr (⨽), \inttop (⌠), \intx (⨘), \inversebullet (◘), \inversewhitecircle (◙), \invnot (⌐), \invwhitelowerhalfcircle (◛), \invwhiteupperhalfcircle (◚), \iota (ι), \ipasupgamma (ˠ), \ipasupl (ˡ), \ipasuprerglotstpp (ˤ), \ipasups (ˢ), \ipasupx (ˣ), \ipaunaspirated (˭), \ipavoicing (ˬ), \isinE (⋹), \isindot (⋵), \isinobar (⋷), \isins (⋴), \isinvb (⋸), \itBbbD (ⅅ), \itBbbd (ⅆ), \itBbbe (ⅇ), \itBbbi (ⅈ), \itBbbj (ⅉ).
+</p>
+<p>\jupiter (♃), \kappa (κ), \kernelcontraction (∻), \koppa (ϟ).
+</p>
+<p>\l (ł), \lAngle (⟪), \lBrace (⦃), \lBrack (⟦), \lParen (⦅), \lambda (λ), \lambdabar (ƛ), \langle (⟨), \langledot (⦑), \laplac (⧠), \lasp (ʽ), \lat (⪫), \late (⪭), \lbag (⟅), \lblkbrbrak (⦗), \lbrace ({), \lbracelend (⎩), \lbracemid (⎨), \lbraceuend (⎧), \lbrack ([), \lbrackextender (⎢), \lbracklend (⎣), \lbracklltick (⦏), \lbrackubar (⦋), \lbrackuend (⎡), \lbrackultick (⦍), \lbrbrak (❲), \lceil (⌈), \lcurvyangle (⧼), \ldasharrhead (⇠), \le (≤), \leadsto (↝), \leftarrow (←), \leftarrowapprox (⭊), \leftarrowbackapprox (⭂), \leftarrowbsimilar (⭋), \leftarrowless (⥷), \leftarrowonoplus (⬲), \leftarrowplus (⥆), \leftarrowshortrightarrow (⥃), \leftarrowsimilar (⥳), \leftarrowsubset (⥺), \leftarrowtail (↢), \leftarrowtriangle (⇽), \leftarrowx (⬾), \leftbkarrow (⤌), \leftcurvedarrow (⬿), \leftdasharrow (⇠), \leftdasharrowhead (⇡), \leftdbkarrow (⤎), \leftdbltail (⤛), \leftdotarrow (⬸), \leftdowncurvedarrow (⤶), \leftfishtail (⥼), \leftharpoondown (↽), \leftharpoondownbar (⥞), \leftharpoonsupdown (⥢), \leftharpoonup (↼), \leftharpoonupbar (⥚), \leftharpoonupdash (⥪), \leftleftarrows (⇇), \leftmoon (☾), \leftouterjoin (⟕), \leftrightarrow (↔), \leftrightarrowcircle (⥈), \leftrightarrows (⇆), \leftrightarrowtriangle (⇿), \leftrightharpoondowndown (⥐), \leftrightharpoondownup (⥋), \leftrightharpoons (⇋), \leftrightharpoonsdown (⥧), \leftrightharpoonsup (⥦), \leftrightharpoonupdown (⥊), \leftrightharpoonupup (⥎), \leftrightsquigarrow (↭), \leftsquigarrow (↜), \leftsquigarrow (⇜), \lefttail (⤙), \leftthreearrows (⬱), \leftthreetimes (⋋), \leftwhitearrow (⇦), \leq (≤), \leqq (≦), \leqqslant (⫹), \leqqslant (⫺), \leqslant (⩽), \lescc (⪨), \lesdot (⩿), \lesdoto (⪁), \lesdotor (⪃), \lesges (⪓), \less (&lt;), \lessapprox (⪅), \lessdot (⋖), \lesseqgtr (⋚), \lesseqqgtr (⪋), \lessgtr (≶), \lesssim (≲), \lfbowtie (⧑), \lfloor (⌊), \lftimes (⧔), \lgE (⪑), \lgblkcircle (⬤), \lgblksquare (⬛), \lgwhtcircle (◯), \lgwhtsquare (⬜), \lhd (⊲), \linefeed (↴), \ll (≪), \llangle (⦉), \llarc (◟), \llblacktriangle (◣), \llcorner (⌞), \lll (⋘), \lllnest (⫷), \llparenthesis (⦇), \lltriangle (◺), \lmoustache (⎰), \lnapprox (⪉), \lneq (⪇), \lneqq (≨), \lnsim (⋦), \longdashv (⟞), \longdivision (⟌), \longleftarrow (⟵), \longleftrightarrow (⟷), \longleftsquigarrow (⬳), \longmapsfrom (⟻), \longmapsto (⟼), \longrightarrow (⟶), \longrightsquigarrow (⟿), \looparrowleft (↫), \looparrowright (↬), \lowint (⨜), \lozenge (◊), \lozengeminus (⟠), \lparenextender (⎜), \lparenlend (⎝), \lparenless (⦓), \lparenuend (⎛), \lq (‘), \lrarc (◞), \lrblacktriangle (◢), \lrcorner (⌟), \lrtriangle (◿), \lrtriangleeq (⧡), \lsime (⪍), \lsimg (⪏), \lsqhook (⫍), \ltcc (⪦), \ltcir (⩹), \ltimes (⋉), \ltlarr (⥶), \ltquest (⩻), \ltrivb (⧏), \lvboxline (⎸), \lvzigzag (⧘).
+</p>
+<p>\male (♂), \maltese (✠), \mapsdown (↧), \mapsfrom (↤), \mapsto (↦), \mapsup (↥), \mdblkdiamond (⬥), \mdblklozenge (⬧), \mdblkrcl (⚫), \mdblksquare (◼), \mdlgblkcircle (●), \mdlgblkdiamond (◆), \mdlgblklozenge (⧫), \mdlgblksquare (■), \mdlgwhtcircle (○), \mdlgwhtdiamond (◇), \mdlgwhtsquare (□), \mdsmblkcircle (⦁), \mdsmblksquare (◾), \mdsmwhtcircl (⚬), \mdsmwhtsquare (◽), \mdwhtcircl (⚪), \mdwhtdiamond (⬦), \mdwhtlozenge (⬨), \mdwhtsquare (◻), \measangledltosw (⦯), \measangledrtose (⦮), \measangleldtosw (⦫), \measanglelutonw (⦩), \measanglerdtose (⦪), \measanglerutone (⦨), \measangleultonw (⦭), \measangleurtone (⦬), \measeq (≞), \measuredangle (∡), \measuredangleleft (⦛), \measuredrightangle (⊾), \medblackstar (⭑), \medmathspace ( ), \medwhitestar (⭐), \mercury (☿), \mho (℧), \mid (∣), \midbarvee (⩝), \midbarwedge (⩜), \midcir (⫰), \minus (−), \minusdot (⨪), \minusfdots (⨫), \minusrdots (⨬), \mlcp (⫛), \models (⊧), \mp (∓), \mu (μ), \multimap (⊸), \multimapinv (⟜).
+</p>
+<p>\nHdownarrow (⇟), \nHuparrow (⇞), \nLeftarrow (⇍), \nLeftrightarrow (⇎), \nRightarrow (⇏), \nVDash (⊯), \nVdash (⊮), \nVleftarrow (⇺), \nVleftarrowtail (⬺), \nVleftrightarrow (⇼), \nVrightarrow (⇻), \nVrightarrowtail (⤕), \nVtwoheadleftarrow (⬵), \nVtwoheadleftarrowtail (⬽), \nVtwoheadrightarrow (⤁), \nVtwoheadrightarrowtail (⤘), \nabla (∇), \napprox (≉), \nasymp (≭), \natural (♮), \ncong (≇), \ne (≠), \nearrow (↗), \neg (¬), \neovnwarrow (⤱), \neovsearrow (⤮), \neptune (♆), \neq (≠), \nequiv (≢), \neswarrow (⤢), \neuter (⚲), \nexists (∄), \ng (ŋ), \ngeq (≱), \ngtr (≯), \ngtrless (≹), \ngtrsim (≵), \nhVvert (⫵), \nhpar (⫲), \ni (∋), \niobar (⋾), \nis (⋼), \nisd (⋺), \nleftarrow (↚), \nleftrightarrow (↮), \nleq (≰), \nless (≮), \nlessgtr (≸), \nlesssim (≴), \nmid (∤), \nni (∌), \nobreakhyphen (‑), \notin (∉), \nparallel (∦), \npolint (⨔), \nprec (⊀), \npreccurlyeq (⋠), \nrightarrow (↛), \nsim (≁), \nsime (≄), \nsqsubseteq (⋢), \nsqsupseteq (⋣), \nsubset (⊄), \nsubseteq (⊈), \nsucc (⊁), \nsucccurlyeq (⋡), \nsupset (⊅), \nsupseteq (⊉), \ntriangleleft (⋪), \ntrianglelefteq (⋬), \ntriangleright (⋫), \ntrianglerighteq (⋭), \nu (ν), \nvDash (⊭), \nvLeftarrow (⤂), \nvLeftrightarrow (⤄), \nvRightarrow (⤃), \nvdash (⊬), \nvinfty (⧞), \nvleftarrow (⇷), \nvleftarrowtail (⬹), \nvleftrightarrow (⇹), \nvrightarrow (⇸), \nvrightarrowtail (⤔), \nvtwoheadleftarrow (⬴), \nvtwoheadleftarrowtail (⬼), \nvtwoheadrightarrow (⤀), \nvtwoheadrightarrowtail (⤗), \nwarrow (↖), \nwovnearrow (⤲), \nwsearrow (⤡).
+</p>
+<p>\o (ø), \obar (⌽), \obot (⦺), \obrbrak (⏠), \obslash (⦸), \odiv (⨸), \odot (⊙), \odotslashdot (⦼), \oe (œ), \ogreaterthan (⧁), \ohorn (ơ), \oiiint (∰), \oiint (∯), \oint (∮), \ointctrclockwise (∳), \olcross (⦻), \oldKoppa (Ϙ), \oldkoppa (ϙ), \olessthan (⧀), \omega (ω), \omicron (ο), \ominus (⊖), \operp (⦹), \oplus (⊕), \opluslhrim (⨭), \oplusrhrim (⨮), \origof (⊶), \oslash (⊘), \otimes (⊗), \otimeshat (⨶), \otimeslhrim (⨴), \otimesrhrim (⨵), \overbrace (⏞), \overbracket (⎴), \overline (‾), \overparen (⏜), \owns (∋).
+</p>
+<p>\parallel (∥), \parallelogram (▱), \parallelogramblack (▰), \parsim (⫳), \partial (∂), \partialmeetcontraction (⪣), \pentagon (⬠), \pentagonblack (⬟), \perp (⟂), \perps (⫡), \phi (ϕ), \phone (☎), \pi (π), \pitchfork (⋔), \plusdot (⨥), \pluseqq (⩲), \plushat (⨣), \plussim (⨦), \plussubtwo (⨧), \plustrif (⨨), \pluto (♇), \pm (±), \pointnt (⨕), \postalmark (〒), \prec (≺), \precapprox (⪷), \preccurlyeq (≼), \preceq (⪯), \preceqq (⪳), \precnapprox (⪹), \precneq (⪱), \precneqq (⪵), \precnsim (⋨), \precsim (≾), \prime (′), \prod (∏), \profalar (⌮), \profline (⌒), \profsurf (⌓), \propto (∝), \prurel (⊰), \psi (ψ), \pullback (⟓), \pushout (⟔).
+</p>
+<p>\qprime (⁗), \quarternote (♩), \questeq (≟), \quotdblbase („), \quotdblright (‟), \quotsinglbase (‚), \quotsinglright (‛).
+</p>
+<p>\rAngle (⟫), \rBrace (⦄), \rBrack (⟧), \rParen (⦆), \rangle (⟩), \rangledot (⦒), \rangledownzigzagarrow (⍼), \rasp (ʼ), \rbag (⟆), \rblkbrbrak (⦘), \rbrace (}), \rbracelend (⎭), \rbracemid (⎬), \rbraceuend (⎫), \rbrack (]), \rbrackextender (⎥), \rbracklend (⎦), \rbracklrtick (⦎), \rbrackubar (⦌), \rbrackuend (⎤), \rbrackurtick (⦐), \rbrbrak (❳), \rceil (⌉), \rcurvyangle (⧽), \rdiagovfdiag (⤫), \rdiagovsearrow (⤰), \recorder (⌕), \revangle (⦣), \revangleubar (⦥), \revemptyset (⦰), \revnmid (⫮), \rfbowtie (⧒), \rfloor (⌋), \rftimes (⧕), \rhd (⊳), \rho (ρ), \righarrowbsimilar (⭌), \rightangle (∟), \rightanglemdot (⦝), \rightanglesqr (⦜), \rightarrow (→), \rightarrowapprox (⥵), \rightarrowbackapprox (⭈), \rightarrowbar (⇥), \rightarrowdiamond (⤞), \rightarrowgtr (⭃), \rightarrowonoplus (⟴), \rightarrowplus (⥅), \rightarrowshortleftarrow (⥂), \rightarrowsimilar (⥴), \rightarrowsupset (⭄), \rightarrowtail (↣), \rightarrowtriangle (⇾), \rightarrowx (⥇), \rightbkarrow (⤍), \rightcurvedarrow (⤳), \rightdasharrow (⇢), \rightdbltail (⤜), \rightdotarrow (⤑), \rightdowncurvedarrow (⤷), \rightfishtail (⥽), \rightharpoondown (⇁), \rightharpoondownbar (⥗), \rightharpoonsupdown (⥤), \rightharpoonup (⇀), \rightharpoonupbar (⥓), \rightharpoonupdash (⥬), \rightimply (⥰), \rightleftarrows (⇄), \rightleftharpoons (⇌), \rightleftharpoonsdown (⥩), \rightleftharpoonsup (⥨), \rightmoon (☽), \rightouterjoin (⟖), \rightpentagon (⭔), \rightpentagonblack (⭓), \rightrightarrows (⇉), \rightsquigarrow (↝), \rightsquigarrow (⇝), \righttail (⤚), \rightthreearrows (⇶), \rightthreetimes (⋌), \rightwhitearrow (⇨), \ringplus (⨢), \risingdotseq (≓), \rmoustache (⎱), \rparenextender (⎟), \rparengtr (⦔), \rparenlend (⎠), \rparenuend (⎞), \rppolint (⨒), \rq (’), \rrangle (⦊), \rrparenthesis (⦈), \rsolbar (⧷), \rsqhook (⫎), \rsub (⩥), \rtimes (⋊), \rtriltri (⧎), \ruledelayed (⧴), \rvboxline (⎹), \rvzigzag (⧙).
+</p>
+<p>\sampi (ϡ), \sansLmirrored (⅃), \sansLturned (⅂), \saturn (♄), \scissors (✂), \scpolint (⨓), \scrB (ℬ), \scrE (ℰ), \scrF (ℱ), \scrH (ℋ), \scrI (ℐ), \scrL (ℒ), \scrM (ℳ), \scrR (ℛ), \scre (ℯ), \scrg (ℊ), \scro (ℴ), \scurel (⊱), \searrow (↘), \seovnearrow (⤭), \setminus (∖), \setminus (⧵), \sharp (♯), \shortdowntack (⫟), \shortleftarrow (←), \shortlefttack (⫞), \shortrightarrow (→), \shortrightarrowleftarrow (⥄), \shortuptack (⫠), \shuffle (⧢), \sigma (σ), \silon (υ), \silon (ϒ), \sim (∼), \simeq (≃), \simgE (⪠), \simgtr (⪞), \similarleftarrow (⭉), \similarrightarrow (⥲), \simlE (⪟), \simless (⪝), \simminussim (⩬), \simneqq (≆), \simplus (⨤), \simrdots (⩫), \sinewave (∿), \slash (∕), \smallblacktriangleleft (◂), \smallblacktriangleright (▸), \smalldiamond (⋄), \smallin (∊), \smallint (∫), \smallni (∍), \smallsetminus (∖), \smalltriangleleft (◃), \smalltriangleright (▹), \smashtimes (⨳), \smblkdiamond (⬩), \smblklozenge (⬪), \smblksquare (▪), \smeparsl (⧤), \smile (⌣), \smiley (☺), \smt (⪪), \smte (⪬), \smwhitestar (⭒), \smwhtcircle (◦), \smwhtlozenge (⬫), \smwhtsquare (▫), \spadesuit (♠), \sphericalangle (∢), \sphericalangleup (⦡), \sqcap (⊓), \sqcup (⊔), \sqint (⨖), \sqlozenge (⌑), \sqrt (√), \sqrt3 (∛), \sqrt4 (∜), \sqrtbottom (⎷), \sqsubset (⊏), \sqsubseteq (⊑), \sqsubsetneq (⋤), \sqsupset (⊐), \sqsupseteq (⊒), \sqsupsetneq (⋥), \squarecrossfill (▩), \squaregrayfill (▩), \squarehfill (▤), \squarehvfill (▦), \squareleftblack (◧), \squareleftblack (◨), \squarellblack (⬕), \squarellquad (◱), \squarelrblack (◪), \squarelrquad (◲), \squareneswfill (▨), \squarenwsefill (▧), \squareulblack (◩), \squareulquad (◰), \squareurblack (⬔), \squareurquad (◳), \squarevfill (▥), \squoval (▢), \ss (ß), \star (⋆), \stareq (≛), \sterling (£), \stigma (ϛ), \strns (⏤), \subedot (⫃), \submult (⫁), \subrarr (⥹), \subset (⊂), \subsetapprox (⫉), \subsetcirc (⟃), \subsetdot (⪽), \subseteq (⊆), \subseteqq (⫅), \subsetneq (⊊), \subsetneqq (⫋), \subsetplus (⪿), \subsim (⫇), \subsub (⫕), \subsup (⫓), \succ (≻), \succapprox (⪸), \succcurlyeq (≽), \succeq (⪰), \succeqq (⪴), \succnapprox (⪺), \succneq (⪲), \succneqq (⪶), \succnsim (⋩), \succsim (≿), \sum (∑), \sumbottom (⎳), \sumint (⨋), \sumtop (⎲), \sun (☼), \supdsub (⫘), \supedot (⫄), \suphsol (⟉), \suphsub (⫗), \suplarr (⥻), \supmult (⫂), \supn (ⁿ), \supset (⊃), \supsetapprox (⫊), \supsetcirc (⟄), \supsetdot (⪾), \supseteq (⊇), \supseteqq (⫆), \supsetneq (⊋), \supsetneqq (⫌), \supsetplus (⫀), \supsim (⫈), \supsub (⫔), \supsup (⫖), \surd (√), \swarrow (↙).
+</p>
+<p>\talloblong (⫾), \target (⌖), \tau (τ), \taurus (♉), \testhookx (ᶍ), \textAsterisks (⁑), \textacute (ˊ), \textadvanced (˖), \textain (ʿ), \textasciiacute (´), \textasciicircum (^), \textasciidieresis (¨), \textasciigrave (&lsquo;), \textasciimacron (¯), \textasciitilde (~), \textasterisklow (⁎), \textbackdprime (‶), \textbackprime (‵), \textbacktrprime (‷), \textbardotlessj (ɟ), \textbardotlessjvar (ʄ), \textbarglotstop (ʡ), \textbari (ɨ), \textbarl (ƚ), \textbaro (ɵ), \textbarrevglotstop (ʢ), \textbaru (ʉ), \textbeltl (ɬ), \textbenttailyogh (ƺ), \textbreve (˘), \textbrokenbar (¦), \textbullet (•), \textbullseye (ʘ), \textcent (¢), \textcircledP (℗), \textcloseepsilon (ʚ), \textcloseomega (ɷ), \textcloserevepsilon (ɞ), \textcopyright (©), \textcrb (ƀ), \textcrh (ħ), \textcrinvglotstop (ƾ), \textcrlambda (ƛ), \textcrtwo (ƻ), \textctc (ɕ), \textctd (ȡ), \textctesh (ʆ), \textctj (ʝ), \textctl (ȴ), \textctn (ȵ), \textctt (ȶ), \textctyogh (ʓ), \textctz (ʑ), \textcurrency (¤), \textdctzlig (ʥ), \textdegree (°), \textdiscount (⁒), \textdollar ($), \textdotaccent (˙), \textdotlessj (ȷ), \textdoubleacute (˝), \textdoublebarpipe (ǂ), \textdoublepipe (ǁ), \textdprime (″), \textdptr (˅), \textdyoghlig (ʤ), \textdzlig (ʣ), \textepsilon (ɛ), \textesh (ʃ), \textestimated (℮), \textexclam (ǃ), \textexclamdown (¡), \textfishhookr (ɾ), \textflorin (ƒ), \textfranc (₣), \textgamma (ɣ), \textglotstop (ʔ), \textgrave (ˋ), \texthalflength (ˑ), \texthamza (ʾ), \texthen (ꜧ), \textheng (ꜧ), \texthooks (ᶊ), \texthookz (ᶎ), \texthtb (ɓ), \texthtc (ƈ), \texthtd (ɗ), \texthtg (ɠ), \texthth (ɦ), \texththeng (ɧ), \texthtk (ƙ), \texthtp (ƥ), \texthtq (ʠ), \texthtscg (ʛ), \texthtt (ƭ), \texthvlig (ƕ), \texthyphen (‐), \textinvglotstop (ʖ), \textinvscr (ʁ), \textiota (ɩ), \textlengthmark (ː), \textlhalfring (˓), \textlhookd (ᶁ), \textlhookk (ᶄ), \textlhookl (ᶅ), \textlhookt (ƫ), \textlhti (ɿ), \textlira (₤), \textlonglegr (ɼ), \textlongy (ʮ), \textlongy (ʯ), \textlooptoprevesh (ƪ), \textlowacute (ˏ), \textlowered (˕), \textlowgrave (ˎ), \textlowmacron (ˍ), \textlptr (˂), \textltailm (ɱ), \textltailn (ɲ), \textltilde (ɫ), \textlyoghlig (ɮ), \textmacron (ˉ), \textmu (µ), \textnumero (№), \textogonek (˛), \textohm (Ω), \textonehalf (½), \textonequarter (¼), \textonesuperior (¹), \textopeno (ɔ), \textordfeminine (ª), \textordmasculine (º), \textovercross (˟), \textoz (℥), \textpertenthousand (‱), \textperthousand (‰), \textpesetas (₧), \textphi (ɸ), \textpipe (ǀ), \textprime (′), \textprimstress (ˈ), \textqprime (⁗), \textquestiondown (¿), \textquotedbl (&quot;), \textquotedblleft (“), \textquotedblright (”), \textraised (˔), \textraiseglotstop (ˀ), \textraiserevglotstop (ˁ), \textramshorns (ɤ), \textrecipe (℞), \textreferencemark (※), \textregistered (®), \textretracted (˗), \textreve (ɘ), \textrevepsilon (ɜ), \textrevglotstop (ʕ), \textrhalfring (˒), \textrhookrevepsilon (ɝ), \textrhookschwa (ɚ), \textrhoticity (˞), \textringaccent (˚), \textrptr (˃), \textrtaild (ɖ), \textrtaill (ɭ), \textrtailn (ɳ), \textrtailr (ɽ), \textrtails (ʂ), \textrtailt (ʈ), \textrtailz (ʐ), \textsca (ᴀ), \textscb (ʙ), \textsce (ᴇ), \textscg (ɢ), \textsch (ʜ), \textschwa (ə), \textsci (ɪ), \textscl (ʟ), \textscn (ɴ), \textscoelig (ɶ), \textscr (ʀ), \textscripta (ɑ), \textscriptg (ɡ), \textscriptv (ʋ), \textscu (ᴜ), \textscy (ʏ), \textsecstress (ˌ), \textsemicolonreversed (⁏), \textsilon (Υ), \textsmalltilde (˜), \textstretchcvar (ʗ), \textsubw (w), \textsuph (ʰ), \textsuphth (ʱ), \textsupinvscr (ʶ), \textsupj (ʲ), \textsupr (ʳ), \textsupturnr (ʴ), \textsupturnrrtail (ʵ), \textsupw (ʷ), \textsupy (ʸ), \texttctctlig (ʧ), \texttctctlig (ʨ), \textthreequarters (¾), \textthreesuperior (³), \texttrademark (™), \texttrprime (‴), \texttslig (ʦ), \textturna (ɐ), \textturncomma (ʻ), \textturnh (ɥ), \textturnk (ʞ), \textturnlonglegr (ɺ), \textturnm (ɯ), \textturnmrleg (ɰ), \textturnr (ɹ), \textturnrrtail (ɻ), \textturnscripta (ɒ), \textturnt (ʇ), \textturnv (ʌ), \textturnw (ʍ), \textturny (ʎ), \texttwosuperior (²), \textupsilon (ʊ), \textuptr (˄), \textvibyi (ʅ), \textvisiblespace (␣), \textyogh (ʒ), \th (þ), \therefore (∴), \thermod (⧧), \theta (θ), \thickapprox (≈), \thicksim (∼), \threedangle (⟀), \threedotcolon (⫶), \tieconcat (⁀), \tieinfty (⧝), \times (×), \timesbar (⨱), \tminus (⧿), \to (→), \toea (⤨), \tona (⤧), \tonebarextrahigh (˥), \tonebarextralow (˩), \tonebarhigh (˦), \tonebarlow (˨), \tonebarmid (˧), \top (⊤), \topbot (⌶), \topcir (⫱), \topfork (⫚), \topsemicircle (◠), \tosa (⤩), \towa (⤪), \tplus (⧾), \trapezium (⏢), \trianglecdot (◬), \triangledown (▿), \triangleexclam (⚠), \triangleleft (◁), \triangleleftblack (◭), \trianglelefteq (⊴), \triangleminus (⨺), \triangleodot (⧊), \triangleplus (⨹), \triangleq (≜), \triangleright (▷), \trianglerightblack (◮), \trianglerighteq (⊵), \triangles (⧌), \triangleserifs (⧍), \triangletimes (⨻), \triangleubar (⧋), \tripleplus (⧻), \trprime (‴), \turnangle (⦢), \turnediota (℩), \turnednot (⌙), \twocaps (⩋), \twocups (⩊), \twoheaddownarrow (↡), \twoheadleftarrow (↞), \twoheadleftarrowtail (⬻), \twoheadleftdbkarrow (⬷), \twoheadmapsfrom (⬶), \twoheadmapsto (⤅), \twoheadrightarrow (↠), \twoheadrightarrowtail (⤖), \twoheaduparrow (↟), \twoheaduparrowcircle (⥉), \twolowline (‗), \twonotes (♫), \typecolon (⦂).
+</p>
+<p>\ubrbrak (⏡), \uhorn (ư), \ularc (◜), \ulblacktriangle (◤), \ulcorner (⌜), \ulcrop (⌏), \ultriangle (◸), \uminus (⩁), \underbrace (⏟), \underbracket (⎵), \underparen (⏝), \unlhd (⊴), \unrhd (⊵), \upand (⅋), \uparrow (↑), \uparrowbarred (⤉), \uparrowoncircle (⦽), \updasharrow (⇢), \updownarrow (↕), \updownarrowbar (↨), \updownarrows (⇅), \updownharpoonleftleft (⥑), \updownharpoonleftright (⥍), \updownharpoonrightleft (⥌), \updownharpoonrightright (⥏), \updownharpoonsleftright (⥮), \upfishtail (⥾), \upharpoonleft (↿), \upharpoonleftbar (⥠), \upharpoonright (↾), \upharpoonrightbar (⥜), \upharpoonsleftright (⥣), \upin (⟒), \upint (⨛), \uplus (⊎), \uprightcurvearrow (⤴), \upuparrows (⇈), \upwhitearrow (⇧), \urarc (◝), \urblacktriangle (◥), \urcorner (⌝), \urcrop (⌎), \urtriangle (◹).
+</p>
+<p>\v (ˇ), \vBar (⫨), \vBarv (⫩), \vDash (⊨), \vDdash (⫢), \varTheta (ϴ), \varVdash (⫦), \varbarwedge (⌅), \varbeta (ϐ), \varclubsuit (♧), \vardiamondsuit (♦), \vardoublebarwedge (⌆), \varepsilon (ε), \varheartsuit (♥), \varhexagon (⬡), \varhexagonblack (⬢), \varhexagonlrbonds (⌬), \varin (∈), \varisinobar (⋶), \varisins (⋳), \varkappa (ϰ), \varlrtriangle (⊿), \varni (∋), \varniobar (⋽), \varnis (⋻), \varnothing (∅), \varointclockwise (∲), \varphi (φ), \varpi (ϖ), \varpropto (∝), \varrho (ϱ), \varrowextender (⏐), \varsigma (ς), \varspadesuit (♤), \varstar (✶), \vartheta (ϑ), \vartriangle (▵), \vartriangleleft (⊲), \vartriangleright (⊳), \varveebar (⩡), \vbraceextender (⎪), \vbrtri (⧐), \vdash (⊢), \vdots (⋮), \vectimes (⨯), \vee (∨), \veebar (⊻), \veedot (⟇), \veedoublebar (⩣), \veeeq (≚), \veemidvert (⩛), \veeodot (⩒), \veeonvee (⩖), \veeonwedge (⩙), \vert (|), \viewdata (⌗), \vlongdash (⟝), \vrectangle (▯), \vrectangleblack (▮), \vysmlblksquare (⬝), \vysmlwhtsquare (⬞), \vzigzag (⦚).
+</p>
+<p>\watchicon (⌚), \wedge (∧), \wedgebar (⩟), \wedgedot (⟑), \wedgedoublebar (⩠), \wedgemidvert (⩚), \wedgeodot (⩑), \wedgeonwedge (⩕), \wedgeq (≙), \whitearrowupfrombar (⇪), \whiteinwhitetriangle (⟁), \whitepointerleft (◅), \whitepointerright (▻), \whitesquaretickleft (⟤), \whitesquaretickright (⟥), \whthorzoval (⬭), \whtvertoval (⬯), \wideangledown (⦦), \wideangleup (⦧), \wp (℘), \wr (≀).
+</p>
+<p>\xbsol (⧹), \xi (ξ), \xsol (⧸), \yen (¥), \zeta (ζ), \zpipe (⨠), 
+</p>
+<p>Я БУДУ КРАЙНЕ ПРИЗНАТЕЛЕН ЕСЛИ КТО-НИБУДЬ ПРОВЕРИТ СООТВЕТСТВИЕ ВСЕХ ИМЕН ПРАВИЛЬНЫМ ТЕХ-ИМ СИМВОЛАМ. 
+</p>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_ru.html/mathgl_ru_11.html b/texinfo/mathgl_ru.html/mathgl_ru_11.html
new file mode 100644
index 0000000..2014b23
--- /dev/null
+++ b/texinfo/mathgl_ru.html/mathgl_ru_11.html
@@ -0,0 +1,514 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: B. GNU Free Documentation License</title>
+
+<meta name="description" content="MathGL 1.11: B. GNU Free Documentation License">
+<meta name="keywords" content="MathGL 1.11: B. GNU Free Documentation License">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Copying-This-Manual"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="GNU-Free-Documentation-License"></a>
+<h1 class="appendix">B. GNU Free Documentation License</h1>
+<p align="center"> Version 1.2, November 2002
+</p>
+
+<table><tr><td>&nbsp;</td><td><pre class="display">Copyright &copy; 2000,2001,2002 Free Software Foundation, Inc.
+51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+</pre></td></tr></table>
+
+<ol>
+<li>
+PREAMBLE
+
+<p>The purpose of this License is to make a manual, textbook, or other
+functional and useful document <em>free</em> in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+</p>
+<p>This License is a kind of &ldquo;copyleft&rdquo;, which means that derivative
+works of the document must themselves be free in the same sense.  It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+</p>
+<p>We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does.  But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book.  We recommend this License
+principally for works whose purpose is instruction or reference.
+</p>
+</li><li>
+APPLICABILITY AND DEFINITIONS
+
+<p>This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License.  Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein.  The &ldquo;Document&rdquo;, below,
+refers to any such manual or work.  Any member of the public is a
+licensee, and is addressed as &ldquo;you&rdquo;.  You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+</p>
+<p>A &ldquo;Modified Version&rdquo; of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+</p>
+<p>A &ldquo;Secondary Section&rdquo; is a named appendix or a front-matter section
+of the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document&rsquo;s overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject.  (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.)  The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+</p>
+<p>The &ldquo;Invariant Sections&rdquo; are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License.  If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant.  The Document may contain zero
+Invariant Sections.  If the Document does not identify any Invariant
+Sections then there are none.
+</p>
+<p>The &ldquo;Cover Texts&rdquo; are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.  A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+</p>
+<p>A &ldquo;Transparent&rdquo; copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters.  A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text.  A copy that is not &ldquo;Transparent&rdquo; is called &ldquo;Opaque&rdquo;.
+</p>
+<p>Examples of suitable formats for Transparent copies include plain
+<small>ASCII</small> without markup, Texinfo input format, LaTeX input
+format, <acronym>SGML</acronym> or <acronym>XML</acronym> using a publicly available
+<acronym>DTD</acronym>, and standard-conforming simple <acronym>HTML</acronym>,
+PostScript or <acronym>PDF</acronym> designed for human modification.  Examples
+of transparent image formats include <acronym>PNG</acronym>, <acronym>XCF</acronym> and
+<acronym>JPG</acronym>.  Opaque formats include proprietary formats that can be
+read and edited only by proprietary word processors, <acronym>SGML</acronym> or
+<acronym>XML</acronym> for which the <acronym>DTD</acronym> and/or processing tools are
+not generally available, and the machine-generated <acronym>HTML</acronym>,
+PostScript or <acronym>PDF</acronym> produced by some word processors for
+output purposes only.
+</p>
+<p>The &ldquo;Title Page&rdquo; means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page.  For works in
+formats which do not have any title page as such, &ldquo;Title Page&rdquo; means
+the text near the most prominent appearance of the work&rsquo;s title,
+preceding the beginning of the body of the text.
+</p>
+<p>A section &ldquo;Entitled XYZ&rdquo; means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language.  (Here XYZ stands for a
+specific section name mentioned below, such as &ldquo;Acknowledgements&rdquo;,
+&ldquo;Dedications&rdquo;, &ldquo;Endorsements&rdquo;, or &ldquo;History&rdquo;.)  To &ldquo;Preserve the Title&rdquo;
+of such a section when you modify the Document means that it remains a
+section &ldquo;Entitled XYZ&rdquo; according to this definition.
+</p>
+<p>The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document.  These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+</p>
+</li><li>
+VERBATIM COPYING
+
+<p>You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License.  You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute.  However, you may accept
+compensation in exchange for copies.  If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+</p>
+<p>You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+</p>
+</li><li>
+COPYING IN QUANTITY
+
+<p>If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document&rsquo;s license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover.  Both covers must also clearly and legibly identify
+you as the publisher of these copies.  The front cover must present
+the full title with all words of the title equally prominent and
+visible.  You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+</p>
+<p>If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+</p>
+<p>If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+</p>
+<p>It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+</p>
+</li><li>
+MODIFICATIONS
+
+<p>You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it.  In addition, you must do these things in the Modified Version:
+</p>
+<ol>
+<li>
+Use in the Title Page (and on the covers, if any) a title distinct
+from that of the Document, and from those of previous versions
+(which should, if there were any, be listed in the History section
+of the Document).  You may use the same title as a previous version
+if the original publisher of that version gives permission.
+
+</li><li>
+List on the Title Page, as authors, one or more persons or entities
+responsible for authorship of the modifications in the Modified
+Version, together with at least five of the principal authors of the
+Document (all of its principal authors, if it has fewer than five),
+unless they release you from this requirement.
+
+</li><li>
+State on the Title page the name of the publisher of the
+Modified Version, as the publisher.
+
+</li><li>
+Preserve all the copyright notices of the Document.
+
+</li><li>
+Add an appropriate copyright notice for your modifications
+adjacent to the other copyright notices.
+
+</li><li>
+Include, immediately after the copyright notices, a license notice
+giving the public permission to use the Modified Version under the
+terms of this License, in the form shown in the Addendum below.
+
+</li><li>
+Preserve in that license notice the full lists of Invariant Sections
+and required Cover Texts given in the Document&rsquo;s license notice.
+
+</li><li>
+Include an unaltered copy of this License.
+
+</li><li>
+Preserve the section Entitled &ldquo;History&rdquo;, Preserve its Title, and add
+to it an item stating at least the title, year, new authors, and
+publisher of the Modified Version as given on the Title Page.  If
+there is no section Entitled &ldquo;History&rdquo; in the Document, create one
+stating the title, year, authors, and publisher of the Document as
+given on its Title Page, then add an item describing the Modified
+Version as stated in the previous sentence.
+
+</li><li>
+Preserve the network location, if any, given in the Document for
+public access to a Transparent copy of the Document, and likewise
+the network locations given in the Document for previous versions
+it was based on.  These may be placed in the &ldquo;History&rdquo; section.
+You may omit a network location for a work that was published at
+least four years before the Document itself, or if the original
+publisher of the version it refers to gives permission.
+
+</li><li>
+For any section Entitled &ldquo;Acknowledgements&rdquo; or &ldquo;Dedications&rdquo;, Preserve
+the Title of the section, and preserve in the section all the
+substance and tone of each of the contributor acknowledgements and/or
+dedications given therein.
+
+</li><li>
+Preserve all the Invariant Sections of the Document,
+unaltered in their text and in their titles.  Section numbers
+or the equivalent are not considered part of the section titles.
+
+</li><li>
+Delete any section Entitled &ldquo;Endorsements&rdquo;.  Such a section
+may not be included in the Modified Version.
+
+</li><li>
+Do not retitle any existing section to be Entitled &ldquo;Endorsements&rdquo; or
+to conflict in title with any Invariant Section.
+
+</li><li>
+Preserve any Warranty Disclaimers.
+</li></ol>
+
+<p>If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant.  To do this, add their titles to the
+list of Invariant Sections in the Modified Version&rsquo;s license notice.
+These titles must be distinct from any other section titles.
+</p>
+<p>You may add a section Entitled &ldquo;Endorsements&rdquo;, provided it contains
+nothing but endorsements of your Modified Version by various
+parties&mdash;for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+</p>
+<p>You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version.  Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity.  If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+</p>
+<p>The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+</p>
+</li><li>
+COMBINING DOCUMENTS
+
+<p>You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+</p>
+<p>The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy.  If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+</p>
+<p>In the combination, you must combine any sections Entitled &ldquo;History&rdquo;
+in the various original documents, forming one section Entitled
+&ldquo;History&rdquo;; likewise combine any sections Entitled &ldquo;Acknowledgements&rdquo;,
+and any sections Entitled &ldquo;Dedications&rdquo;.  You must delete all
+sections Entitled &ldquo;Endorsements.&rdquo;
+</p>
+</li><li>
+COLLECTIONS OF DOCUMENTS
+
+<p>You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+</p>
+<p>You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+</p>
+</li><li>
+AGGREGATION WITH INDEPENDENT WORKS
+
+<p>A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an &ldquo;aggregate&rdquo; if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation&rsquo;s users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+</p>
+<p>If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document&rsquo;s Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+</p>
+</li><li>
+TRANSLATION
+
+<p>Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections.  You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers.  In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+</p>
+<p>If a section in the Document is Entitled &ldquo;Acknowledgements&rdquo;,
+&ldquo;Dedications&rdquo;, or &ldquo;History&rdquo;, the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+</p>
+</li><li>
+TERMINATION
+
+<p>You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License.  Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License.  However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+</p>
+</li><li>
+FUTURE REVISIONS OF THIS LICENSE
+
+<p>The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time.  Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.  See
+<a href="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</a>.
+</p>
+<p>Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License &ldquo;or any later version&rdquo; applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation.  If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+</p></li></ol>
+
+
+<a name="ADDENDUM_003a-How-to-use-this-License-for-your-documents"></a>
+<h2 class="heading">ADDENDUM: How to use this License for your documents</h2>
+
+<p>To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample">  Copyright (C)  <var>year</var>  <var>your name</var>.
+  Permission is granted to copy, distribute and/or modify this document
+  under the terms of the GNU Free Documentation License, Version 1.2
+  or any later version published by the Free Software Foundation;
+  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+  Texts.  A copy of the license is included in the section entitled ``GNU
+  Free Documentation License''.
+</pre></td></tr></table>
+
+<p>If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the &ldquo;with&hellip;Texts.&rdquo; line with this:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample">    with the Invariant Sections being <var>list their titles</var>, with
+    the Front-Cover Texts being <var>list</var>, and with the Back-Cover Texts
+    being <var>list</var>.
+</pre></td></tr></table>
+
+<p>If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+</p>
+<p>If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
+</p>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_ru.html/mathgl_ru_12.html b/texinfo/mathgl_ru.html/mathgl_ru_12.html
new file mode 100644
index 0000000..31d9157
--- /dev/null
+++ b/texinfo/mathgl_ru.html/mathgl_ru_12.html
@@ -0,0 +1,366 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: Индекс</title>
+
+<meta name="description" content="MathGL 1.11: Индекс">
+<meta name="keywords" content="MathGL 1.11: Индекс">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Index"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_13.html#index_split-0" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_043d_0434e_043a_0441"></a>
+<h1 class="unnumbered">Индекс</h1>
+
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_ru_16.html#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="g_t_0418_043d_0434e_043a_0441_cp_letter-A">A</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-AddLegend">AddLegend</a></td><td valign="top"><a href="mathgl_ru_3.html#Legend">3.8 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-addlegend">addlegend</a></td><td valign="top"><a href="mathgl_ru_8.html#Legend-_0028MGL_0029">8.8 Легенда (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-AddLegend-3">AddLegend</a></td><td valign="top"><a href="mathgl_ru_9.html#Legend-sample">9.6.1 Legend &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-AddLight">AddLight</a></td><td valign="top"><a href="mathgl_ru_3.html#Lighting">3.1.2 Освещение</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-addto">addto</a></td><td valign="top"><a href="mathgl_ru_8.html#Operators-_0028MGL_0029">8.22 Операторы (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-adjust">adjust</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-AdjustTicks">AdjustTicks</a></td><td valign="top"><a href="mathgl_ru_3.html#Ticks">3.2.3 Метки осей</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Alpha">Alpha</a></td><td valign="top"><a href="mathgl_ru_3.html#Transparency">3.1.1 Прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-alpha">alpha</a></td><td valign="top"><a href="mathgl_ru_8.html#Transparency-_0028MGL_0029">8.1.1 Прозрачность (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Alpha-2">Alpha</a></td><td valign="top"><a href="mathgl_ru_9.html#Transparent-surface-sample">9.2.2 Transparent surface &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-alpha-2">alpha</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Alpha-3">Alpha</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t2D-plot-sample">9.5.2 Пример графиков 2D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Alpha-4">Alpha</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t3D-plot-sample">9.5.3 Пример графиков 3D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-alphadef">alphadef</a></td><td valign="top"><a href="mathgl_ru_8.html#Transparency-_0028MGL_0029">8.1.1 Прозрачность (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-alphadef-2">alphadef</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ambient">ambient</a></td><td valign="top"><a href="mathgl_ru_8.html#Lighting-_0028MGL_0029">8.1.2 Освещение (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Ambient">Ambient</a></td><td valign="top"><a href="mathgl_ru_3.html#Lighting">3.1.2 Освещение</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ambient-2">ambient</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-area">area</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Area">Area</a></td><td valign="top"><a href="mathgl_ru_3.html#Area">3.9.4 Area</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Area-4">Area</a></td><td valign="top"><a href="mathgl_ru_9.html#Area-sample">9.1.4 Area &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Area-5">Area</a></td><td valign="top"><a href="mathgl_ru_9.html#Area-gradient-sample">9.1.5 Area с градиентной заливкой &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-arrowsize">arrowsize</a></td><td valign="top"><a href="mathgl_ru_8.html#Default-sizes-_0028MGL_0029">8.1.4 Базовые размеры (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Aspect">Aspect</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-aspect">aspect</a></td><td valign="top"><a href="mathgl_ru_8.html#Transformation-matrix-_0028MGL_0029">8.3 Матрица преобразования (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-AutoOrg">AutoOrg</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Axial">Axial</a></td><td valign="top"><a href="mathgl_ru_3.html#Axial">3.10.11 Axial</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-axial">axial</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Axial-5">Axial</a></td><td valign="top"><a href="mathgl_ru_9.html#Axial-sample">9.2.14 Axial &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Axial-6">Axial</a></td><td valign="top"><a href="mathgl_ru_9.html#Adding-mesh-sample">9.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-axialdir">axialdir</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-settings-_0028MGL_0029">8.1.7 Прочие настройки (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-axis">axis</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Axis">Axis</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Axis-2">Axis</a></td><td valign="top"><a href="mathgl_ru_3.html#Axis-and-Colorbar">3.7 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-axis-5">axis</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Axis-4">Axis</a></td><td valign="top"><a href="mathgl_ru_9.html#Pie-chart-sample">9.1.23 Pie chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Axis-5">Axis</a></td><td valign="top"><a href="mathgl_ru_9.html#Ring-chart-sample">9.1.24 Ring chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Axis-6">Axis</a></td><td valign="top"><a href="mathgl_ru_9.html#Dens3-sample">9.3.4 Dens3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Axis-7">Axis</a></td><td valign="top"><a href="mathgl_ru_9.html#Curvelinear-coorinates-sample">9.7.1 Криволинейные координаты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Axis-8">Axis</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t2_002daxes-sample">9.7.2 Несколько осей на одном графике</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Axis-9">Axis</a></td><td valign="top"><a href="mathgl_ru_9.html#Semi_002dlog-sample">9.7.3 Semi-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Axis-10">Axis</a></td><td valign="top"><a href="mathgl_ru_9.html#Log_002dlog-sample">9.7.4 Log-log &ndash; пример использования</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="g_t_0418_043d_0434e_043a_0441_cp_letter-B">B</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ball">ball</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Ball">Ball</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-barh">barh</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Barh">Barh</a></td><td valign="top"><a href="mathgl_ru_3.html#Barh">3.9.8 Barh</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Barh-3">Barh</a></td><td valign="top"><a href="mathgl_ru_9.html#Barh-sample">9.1.10 Barh &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-bars">bars</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Bars">Bars</a></td><td valign="top"><a href="mathgl_ru_3.html#Bars">3.9.7 Bars</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Bars-4">Bars</a></td><td valign="top"><a href="mathgl_ru_9.html#Bars-sample">9.1.6 Bars &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Bars-5">Bars</a></td><td valign="top"><a href="mathgl_ru_9.html#Bars-2-colors-sample">9.1.7 Bars (2 цвета) &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Bars-6">Bars</a></td><td valign="top"><a href="mathgl_ru_9.html#Bars-above-sample">9.1.8 Bars (один над другим) &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Bars-7">Bars</a></td><td valign="top"><a href="mathgl_ru_9.html#Bars-fall-sample">9.1.9 Bars &quot;водопад&quot; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Bars-8">Bars</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t1D-plot-sample">9.5.1 Пример графиков 1D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-barwidth">barwidth</a></td><td valign="top"><a href="mathgl_ru_8.html#Default-sizes-_0028MGL_0029">8.1.4 Базовые размеры (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Beam">Beam</a></td><td valign="top"><a href="mathgl_ru_3.html#Beam">3.11.7 Beam</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-beam">beam</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Belt">Belt</a></td><td valign="top"><a href="mathgl_ru_3.html#Belt">3.10.3 Belt</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-belt">belt</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Belt-3">Belt</a></td><td valign="top"><a href="mathgl_ru_9.html#Belt-sample">9.2.7 Belt &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Box">Box</a></td><td valign="top"><a href="mathgl_ru_3.html#Axis-and-Colorbar">3.7 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-box">box</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-BoxPlot">BoxPlot</a></td><td valign="top"><a href="mathgl_ru_3.html#BoxPlot">3.9.16 BoxPlot</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-boxplot">boxplot</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-BoxPlot-3">BoxPlot</a></td><td valign="top"><a href="mathgl_ru_9.html#BoxPlot-sample">9.1.16 BoxPlot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-boxs">boxs</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Boxs">Boxs</a></td><td valign="top"><a href="mathgl_ru_3.html#Boxs">3.10.5 Boxs</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Boxs-3">Boxs</a></td><td valign="top"><a href="mathgl_ru_9.html#Boxs-sample">9.2.9 Boxs &ndash; пример использования</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="g_t_0418_043d_0434e_043a_0441_cp_letter-C">C</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-call">call</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-caxis">caxis</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-CAxis">CAxis</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-chart">chart</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Chart">Chart</a></td><td valign="top"><a href="mathgl_ru_3.html#Chart">3.9.9 Chart</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Chart-2">Chart</a></td><td valign="top"><a href="mathgl_ru_9.html#Chart-sample">9.1.22 Chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Chart-3">Chart</a></td><td valign="top"><a href="mathgl_ru_9.html#Pie-chart-sample">9.1.23 Pie chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Chart-4">Chart</a></td><td valign="top"><a href="mathgl_ru_9.html#Ring-chart-sample">9.1.24 Ring chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-chdir">chdir</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ClearLegend">ClearLegend</a></td><td valign="top"><a href="mathgl_ru_3.html#Legend">3.8 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-clearlegend">clearlegend</a></td><td valign="top"><a href="mathgl_ru_8.html#Legend-_0028MGL_0029">8.8 Легенда (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-clf">clf</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Clf">Clf</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-cloud">cloud</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Cloud-2">Cloud</a></td><td valign="top"><a href="mathgl_ru_9.html#Cloud-sample">9.3.2 Cloud &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-CloudP">CloudP</a></td><td valign="top"><a href="mathgl_ru_3.html#Cloud">3.11.6 Cloud</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-CloudP-3">CloudP</a></td><td valign="top"><a href="mathgl_ru_9.html#CloudP-sample">9.3.3 CloudP &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-CloudQ">CloudQ</a></td><td valign="top"><a href="mathgl_ru_3.html#Cloud">3.11.6 Cloud</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Cmax">Cmax</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Cmin">Cmin</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-colorbar">colorbar</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Colorbar">Colorbar</a></td><td valign="top"><a href="mathgl_ru_3.html#Axis-and-Colorbar">3.7 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Colorbar-6">Colorbar</a></td><td valign="top"><a href="mathgl_ru_9.html#Dens-sample">9.2.10 Dens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Colorbar-7">Colorbar</a></td><td valign="top"><a href="mathgl_ru_9.html#Color-schemes-sample">9.5.10 Примеры цветовых схем</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Column">Column</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ColumnPlot">ColumnPlot</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-columnplot">columnplot</a></td><td valign="top"><a href="mathgl_ru_8.html#Transformation-matrix-_0028MGL_0029">8.3 Матрица преобразования (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-combine">combine</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Combine">Combine</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Cone">Cone</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-cone">cone</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Cont">Cont</a></td><td valign="top"><a href="mathgl_ru_3.html#Cont">3.10.8 Cont</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-cont">cont</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Cont-5">Cont</a></td><td valign="top"><a href="mathgl_ru_9.html#Cont-sample">9.2.11 Cont &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Cont-6">Cont</a></td><td valign="top"><a href="mathgl_ru_9.html#Adding-mesh-sample">9.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Cont-7">Cont</a></td><td valign="top"><a href="mathgl_ru_9.html#Surf-_0026-Cont-sample">9.6.3 Surf &amp; Cont &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Cont-8">Cont</a></td><td valign="top"><a href="mathgl_ru_9.html#Cont-with-labels-sample">9.6.7 Cont и подписи &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Cont3">Cont3</a></td><td valign="top"><a href="mathgl_ru_3.html#Cont3">3.11.3 Cont3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-cont3">cont3</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Cont3-5">Cont3</a></td><td valign="top"><a href="mathgl_ru_9.html#Cont3-sample">9.3.5 Cont3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContA">ContA</a></td><td valign="top"><a href="mathgl_ru_3.html#Cont3">3.11.3 Cont3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-conta">conta</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-contd">contd</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContD">ContD</a></td><td valign="top"><a href="mathgl_ru_3.html#ContD">3.10.10 ContD</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-ContD-5">ContD</a></td><td valign="top"><a href="mathgl_ru_9.html#ContD-sample">9.2.13 ContD &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContF">ContF</a></td><td valign="top"><a href="mathgl_ru_3.html#ContF">3.10.9 ContF</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-contf">contf</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-ContF-5">ContF</a></td><td valign="top"><a href="mathgl_ru_9.html#ContF-sample">9.2.12 ContF &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContF3">ContF3</a></td><td valign="top"><a href="mathgl_ru_3.html#ContF3">3.11.4 ContF3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-contf3">contf3</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-ContF3-5">ContF3</a></td><td valign="top"><a href="mathgl_ru_9.html#ContF3-sample">9.3.6 ContF3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-ContF3-6">ContF3</a></td><td valign="top"><a href="mathgl_ru_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-contfa">contfa</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContFA">ContFA</a></td><td valign="top"><a href="mathgl_ru_3.html#ContF3">3.11.4 ContF3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContFX">ContFX</a></td><td valign="top"><a href="mathgl_ru_3.html#ContFXYZ">3.14.3 ContFXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-contfx">contfx</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-contfy">contfy</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContFY">ContFY</a></td><td valign="top"><a href="mathgl_ru_3.html#ContFXYZ">3.14.3 ContFXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-contfz">contfz</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContFZ">ContFZ</a></td><td valign="top"><a href="mathgl_ru_3.html#ContFXYZ">3.14.3 ContFXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContX">ContX</a></td><td valign="top"><a href="mathgl_ru_3.html#ContXYZ">3.14.2 ContXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-contx">contx</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-ContX-3">ContX</a></td><td valign="top"><a href="mathgl_ru_9.html#Cont-projection-sample">9.3.7 Cont projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContY">ContY</a></td><td valign="top"><a href="mathgl_ru_3.html#ContXYZ">3.14.2 ContXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-conty">conty</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-ContY-3">ContY</a></td><td valign="top"><a href="mathgl_ru_9.html#Cont-projection-sample">9.3.7 Cont projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-contz">contz</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ContZ">ContZ</a></td><td valign="top"><a href="mathgl_ru_3.html#ContXYZ">3.14.2 ContXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-ContZ-3">ContZ</a></td><td valign="top"><a href="mathgl_ru_9.html#Cont-projection-sample">9.3.7 Cont projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-copy">copy</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-create-_0028MGL_0029">8.16 Создание данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-CopyFont">CopyFont</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-cosfft">cosfft</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-CosFFT">CosFFT</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-crange">crange</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-crange-3">crange</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Crop">Crop</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-crop">crop</a></td><td valign="top"><a href="mathgl_ru_8.html#Rearrange-data-_0028MGL_0029">8.18 Изменение размеров данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-crust">crust</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Crust">Crust</a></td><td valign="top"><a href="mathgl_ru_3.html#Crust">3.14.5 Crust</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Crust-3">Crust</a></td><td valign="top"><a href="mathgl_ru_9.html#Crust-sample">9.4.19 Crust &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ctick">ctick</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-cumsum">cumsum</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-CumSum">CumSum</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Curve">Curve</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-curve">curve</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-cut">cut</a></td><td valign="top"><a href="mathgl_ru_8.html#Cutting-_0028MGL_0029">8.1.6 Обрезание (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-cut-4">cut</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-CutMax">CutMax</a></td><td valign="top"><a href="mathgl_ru_9.html#CutMinMax-sample">9.3.9 CutMinMax &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-CutMax-1">CutMax</a></td><td valign="top"><a href="mathgl_ru_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-CutMin">CutMin</a></td><td valign="top"><a href="mathgl_ru_9.html#CutMinMax-sample">9.3.9 CutMinMax &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-CutMin-1">CutMin</a></td><td valign="top"><a href="mathgl_ru_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-CutOff">CutOff</a></td><td valign="top"><a href="mathgl_ru_3.html#Cutting">3.1.6 Обрезание</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-CutOff-2">CutOff</a></td><td valign="top"><a href="mathgl_ru_9.html#CutOff-sample">9.3.11 CutOff &ndash; пример использования</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_ru_16.html#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_ru.html/mathgl_ru_13.html b/texinfo/mathgl_ru.html/mathgl_ru_13.html
new file mode 100644
index 0000000..5a1131a
--- /dev/null
+++ b/texinfo/mathgl_ru.html/mathgl_ru_13.html
@@ -0,0 +1,309 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: Индекс: D &ndash; F</title>
+
+<meta name="description" content="MathGL 1.11: Индекс: D &ndash; F">
+<meta name="keywords" content="MathGL 1.11: Индекс: D &ndash; F">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-0"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_14.html#index_split-1" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Индекс: D &ndash; F</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_ru_16.html#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-D">D</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-defchr">defchr</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-define">define</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-defnum">defnum</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-defpal">defpal</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Delete">Delete</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-delete">delete</a></td><td valign="top"><a href="mathgl_ru_8.html#Rearrange-data-_0028MGL_0029">8.18 Изменение размеров данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-DeleteColumns">DeleteColumns</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-DeleteRows">DeleteRows</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-DeleteSlices">DeleteSlices</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-dens">dens</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Dens">Dens</a></td><td valign="top"><a href="mathgl_ru_3.html#Dens">3.10.7 Dens</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Dens-3">Dens</a></td><td valign="top"><a href="mathgl_ru_9.html#Dens-sample">9.2.10 Dens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Dens-4">Dens</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t2D-plot-sample">9.5.2 Пример графиков 2D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Dens-5">Dens</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t3D-plot-sample">9.5.3 Пример графиков 3D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Dens-6">Dens</a></td><td valign="top"><a href="mathgl_ru_9.html#Adding-mesh-sample">9.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Dens-7">Dens</a></td><td valign="top"><a href="mathgl_ru_9.html#Flow-_0026-Dens-sample">9.6.4 Flow &amp; Dens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-dens3">dens3</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Dens3">Dens3</a></td><td valign="top"><a href="mathgl_ru_3.html#Dens3">3.11.2 Dens3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Dens3-3">Dens3</a></td><td valign="top"><a href="mathgl_ru_9.html#Dens3-sample">9.3.4 Dens3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-DensA">DensA</a></td><td valign="top"><a href="mathgl_ru_3.html#Dens3">3.11.2 Dens3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-densa">densa</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-DensX">DensX</a></td><td valign="top"><a href="mathgl_ru_3.html#DensXYZ">3.14.1 DensXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-densx">densx</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-DensX-2">DensX</a></td><td valign="top"><a href="mathgl_ru_9.html#Dens-projection-sample">9.3.8 Dens projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-densy">densy</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-DensY">DensY</a></td><td valign="top"><a href="mathgl_ru_3.html#DensXYZ">3.14.1 DensXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-DensY-2">DensY</a></td><td valign="top"><a href="mathgl_ru_9.html#Dens-projection-sample">9.3.8 Dens projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-densz">densz</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-DensZ">DensZ</a></td><td valign="top"><a href="mathgl_ru_3.html#DensXYZ">3.14.1 DensXYZ</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-DensZ-2">DensZ</a></td><td valign="top"><a href="mathgl_ru_9.html#Dens-projection-sample">9.3.8 Dens projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Dew">Dew</a></td><td valign="top"><a href="mathgl_ru_3.html#Dew">3.13.3 Dew</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-dew">dew</a></td><td valign="top"><a href="mathgl_ru_8.html#Vector-fields-_0028MGL_0029">8.13 Векторные поля (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Dew-3">Dew</a></td><td valign="top"><a href="mathgl_ru_9.html#Dew-sample">9.4.11 Dew &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-diff">diff</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Diff">Diff</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-diff2">diff2</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Diff2">Diff2</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-divto">divto</a></td><td valign="top"><a href="mathgl_ru_8.html#Operators-_0028MGL_0029">8.22 Операторы (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-dots">dots</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Dots">Dots</a></td><td valign="top"><a href="mathgl_ru_3.html#Dots">3.14.4 Dots</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Dots-4">Dots</a></td><td valign="top"><a href="mathgl_ru_9.html#Dots-sample">9.4.20 Dots &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-drop">drop</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Drop">Drop</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Drop-4">Drop</a></td><td valign="top"><a href="mathgl_ru_9.html#Drops-sample">9.6.10 Drops &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Drop-5">Drop</a></td><td valign="top"><a href="mathgl_ru_9.html#Molecules-drawing-sample">9.6.11 Рисование молекул</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-E">E</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-else">else</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-elseif">elseif</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-EndFrame">EndFrame</a></td><td valign="top"><a href="mathgl_ru_3.html#Frames_002fAnimation">3.17 Кадры/Анимация</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-EndFrame-2">EndFrame</a></td><td valign="top"><a href="mathgl_ru_3.html#IDTF-functions">3.18 IDTF функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-endif">endif</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Envelop">Envelop</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-envelop">envelop</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Envelop-2">Envelop</a></td><td valign="top"><a href="mathgl_ru_9.html#Envelop-sample">9.7.6 Envelop &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Error">Error</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-error">error</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Error-2">Error</a></td><td valign="top"><a href="mathgl_ru_3.html#Error">3.9.15 Error</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Error-6">Error</a></td><td valign="top"><a href="mathgl_ru_9.html#Error-sample">9.1.15 Error &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-evaluate">evaluate</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Evaluate">Evaluate</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-export">export</a></td><td valign="top"><a href="mathgl_ru_8.html#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Export">Export</a></td><td valign="top"><a href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-extend">extend</a></td><td valign="top"><a href="mathgl_ru_8.html#Rearrange-data-_0028MGL_0029">8.18 Изменение размеров данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Extend">Extend</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-F">F</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Face">Face</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-facex">facex</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-FaceX">FaceX</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-facey">facey</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-FaceY">FaceY</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-FaceZ">FaceZ</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-facez">facez</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Fall">Fall</a></td><td valign="top"><a href="mathgl_ru_3.html#Fall">3.10.2 Fall</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fall">fall</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Fall-3">Fall</a></td><td valign="top"><a href="mathgl_ru_9.html#Fall-sample">9.2.6 Fall &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fgets">fgets</a></td><td valign="top"><a href="mathgl_ru_8.html#Text-printing-_0028MGL_0029">8.6 Вывод текста (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Fill">Fill</a></td><td valign="top"><a href="mathgl_ru_6.html#Fill">6.3 Заполнение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fill">fill</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-filling-_0028MGL_0029">8.17 Заполнение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fill-1">fill</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-filling-_0028MGL_0029">8.17 Заполнение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Find">Find</a></td><td valign="top"><a href="mathgl_ru_6.html#Informational-functions">6.9 Информационные функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-FindAny">FindAny</a></td><td valign="top"><a href="mathgl_ru_6.html#Informational-functions">6.9 Информационные функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Finish">Finish</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fit">fit</a></td><td valign="top"><a href="mathgl_ru_8.html#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Fit">Fit</a></td><td valign="top"><a href="mathgl_ru_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Fit-9">Fit</a></td><td valign="top"><a href="mathgl_ru_9.html#Fitting-sample">9.7.5 Fitting &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Fit2">Fit2</a></td><td valign="top"><a href="mathgl_ru_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Fit3">Fit3</a></td><td valign="top"><a href="mathgl_ru_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-FitPnts">FitPnts</a></td><td valign="top"><a href="mathgl_ru_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fits">fits</a></td><td valign="top"><a href="mathgl_ru_8.html#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-FitS">FitS</a></td><td valign="top"><a href="mathgl_ru_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Flow">Flow</a></td><td valign="top"><a href="mathgl_ru_3.html#Flow">3.13.4 Flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-flow">flow</a></td><td valign="top"><a href="mathgl_ru_8.html#Vector-fields-_0028MGL_0029">8.13 Векторные поля (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Flow-5">Flow</a></td><td valign="top"><a href="mathgl_ru_9.html#Flow-sample">9.4.9 Flow &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Flow-6">Flow</a></td><td valign="top"><a href="mathgl_ru_9.html#Flow-3D-sample">9.4.17 Flow 3D &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Flow-7">Flow</a></td><td valign="top"><a href="mathgl_ru_9.html#Flow-_0026-Dens-sample">9.6.4 Flow &amp; Dens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-FlowP">FlowP</a></td><td valign="top"><a href="mathgl_ru_3.html#FlowP">3.13.5 FlowP</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Flush">Flush</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-Fl_005fMathGL">Fl_MathGL</a></td><td valign="top"><a href="mathgl_ru_5.html#Widget-classes">5. &ldquo;Оконные&rdquo; классы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-Fl_005fMathGL-2">Fl_MathGL</a></td><td valign="top"><a href="mathgl_ru_5.html#Fl_005fMathGL-class">5.1 Класс Fl_MathGL</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fog">fog</a></td><td valign="top"><a href="mathgl_ru_8.html#Fog-_0028MGL_0029">8.1.3 Туман (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Fog">Fog</a></td><td valign="top"><a href="mathgl_ru_3.html#Fog">3.1.3 Туман</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Fog-2">Fog</a></td><td valign="top"><a href="mathgl_ru_9.html#Surface-in-fog-sample">9.2.3 Surface in fog &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-font">font</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-settings-_0028MGL_0029">8.1.7 Прочие настройки (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fontsize">fontsize</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-for">for</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fplot">fplot</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-fsurf">fsurf</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-func">func</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_ru_16.html#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_ru.html/mathgl_ru_14.html b/texinfo/mathgl_ru.html/mathgl_ru_14.html
new file mode 100644
index 0000000..05c4192
--- /dev/null
+++ b/texinfo/mathgl_ru.html/mathgl_ru_14.html
@@ -0,0 +1,324 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: Индекс: G &ndash; M</title>
+
+<meta name="description" content="MathGL 1.11: Индекс: G &ndash; M">
+<meta name="keywords" content="MathGL 1.11: Индекс: G &ndash; M">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-1"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_13.html#index_split-0" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_15.html#index_split-2" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Индекс: G &ndash; M</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_ru_16.html#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-G">G</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-GetFont">GetFont</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-GetNumFrame">GetNumFrame</a></td><td valign="top"><a href="mathgl_ru_3.html#Frames_002fAnimation">3.17 Кадры/Анимация</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-GetNumFrame-2">GetNumFrame</a></td><td valign="top"><a href="mathgl_ru_3.html#IDTF-functions">3.18 IDTF функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-GetWarnCode">GetWarnCode</a></td><td valign="top"><a href="mathgl_ru_3.html#Error-handling">3.1.9 Обработка ошибок</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Glyph">Glyph</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Grad">Grad</a></td><td valign="top"><a href="mathgl_ru_3.html#Grad">3.10.12 Grad</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-grad">grad</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Grad-4">Grad</a></td><td valign="top"><a href="mathgl_ru_9.html#Grad-sample">9.2.15 Grad &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Grid">Grid</a></td><td valign="top"><a href="mathgl_ru_3.html#Axis-and-Colorbar">3.7 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-grid">grid</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Grid-2">Grid</a></td><td valign="top"><a href="mathgl_ru_3.html#Grid">3.10.13 Grid</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-grid2">grid2</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-grid3">grid3</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Grid3">Grid3</a></td><td valign="top"><a href="mathgl_ru_3.html#Grid3">3.11.5 Grid3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-GridA">GridA</a></td><td valign="top"><a href="mathgl_ru_3.html#Grid3">3.11.5 Grid3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-grida">grida</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-H">H</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Hankel">Hankel</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-hankel">hankel</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Hist">Hist</a></td><td valign="top"><a href="mathgl_ru_3.html#Data-distributions">3.16 Распределение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-hist">hist</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Hist-4">Hist</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-I">I</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Identity">Identity</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-idset">idset</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-create-_0028MGL_0029">8.16 Создание данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-if">if</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Import">Import</a></td><td valign="top"><a href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-import">import</a></td><td valign="top"><a href="mathgl_ru_8.html#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-info">info</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-create-_0028MGL_0029">8.16 Создание данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-InPlot">InPlot</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-inplot">inplot</a></td><td valign="top"><a href="mathgl_ru_8.html#Transformation-matrix-_0028MGL_0029">8.3 Матрица преобразования (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-insert">insert</a></td><td valign="top"><a href="mathgl_ru_8.html#Rearrange-data-_0028MGL_0029">8.18 Изменение размеров данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Insert">Insert</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-InsertColumns">InsertColumns</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-InsertRows">InsertRows</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-InsertSlices">InsertSlices</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Integral">Integral</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-integrate">integrate</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-J">J</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-jacobian">jacobian</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-L">L</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Label-1">Label</a></td><td valign="top"><a href="mathgl_ru_3.html#Axis-and-Colorbar">3.7 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Last">Last</a></td><td valign="top"><a href="mathgl_ru_6.html#Informational-functions">6.9 Информационные функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Legend">Legend</a></td><td valign="top"><a href="mathgl_ru_3.html#Legend">3.8 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-legend">legend</a></td><td valign="top"><a href="mathgl_ru_8.html#Legend-_0028MGL_0029">8.8 Легенда (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Legend-5">Legend</a></td><td valign="top"><a href="mathgl_ru_9.html#Legend-sample">9.6.1 Legend &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-legend-3">legend</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-legendbox">legendbox</a></td><td valign="top"><a href="mathgl_ru_8.html#Legend-_0028MGL_0029">8.8 Легенда (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-legendmarks">legendmarks</a></td><td valign="top"><a href="mathgl_ru_8.html#Legend-_0028MGL_0029">8.8 Легенда (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-light">light</a></td><td valign="top"><a href="mathgl_ru_8.html#Lighting-_0028MGL_0029">8.1.2 Освещение (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Light">Light</a></td><td valign="top"><a href="mathgl_ru_3.html#Lighting">3.1.2 Освещение</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Light-5">Light</a></td><td valign="top"><a href="mathgl_ru_9.html#Several-light-sample">9.6.5 Несколько источников света</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-line">line</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Line">Line</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Line-3">Line</a></td><td valign="top"><a href="mathgl_ru_9.html#Line-styles-sample">9.5.4 Пример стилей линий и маркеров</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Line-4">Line</a></td><td valign="top"><a href="mathgl_ru_9.html#Arrow-styles-sample">9.5.5 Пример стилей стрелок</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Linear">Linear</a></td><td valign="top"><a href="mathgl_ru_6.html#Interpolation">6.8 Интерполяция</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Linear1">Linear1</a></td><td valign="top"><a href="mathgl_ru_6.html#Interpolation">6.8 Интерполяция</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-linewidth">linewidth</a></td><td valign="top"><a href="mathgl_ru_8.html#Default-sizes-_0028MGL_0029">8.1.4 Базовые размеры (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-list">list</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-create-_0028MGL_0029">8.16 Создание данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-LoadFont">LoadFont</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-M">M</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-map">map</a></td><td valign="top"><a href="mathgl_ru_8.html#Dual-plotting-_0028MGL_0029">8.12 Парные графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Map">Map</a></td><td valign="top"><a href="mathgl_ru_3.html#Map">3.12.6 Map</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Map-3">Map</a></td><td valign="top"><a href="mathgl_ru_9.html#Map-sample">9.4.4 Map &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-mark">mark</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Mark">Mark</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Mark-3">Mark</a></td><td valign="top"><a href="mathgl_ru_3.html#Mark">3.9.13 Mark</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Mark-7">Mark</a></td><td valign="top"><a href="mathgl_ru_9.html#Mark-sample">9.1.17 Mark &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Mark-8">Mark</a></td><td valign="top"><a href="mathgl_ru_9.html#Line-styles-sample">9.5.4 Пример стилей линий и маркеров</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-marksize">marksize</a></td><td valign="top"><a href="mathgl_ru_8.html#Default-sizes-_0028MGL_0029">8.1.4 Базовые размеры (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-marksize-2">marksize</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-max">max</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Max">Max</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Max-1">Max</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Maximal">Maximal</a></td><td valign="top"><a href="mathgl_ru_6.html#Informational-functions">6.9 Информационные функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-mesh">mesh</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Mesh">Mesh</a></td><td valign="top"><a href="mathgl_ru_3.html#Mesh">3.10.1 Mesh</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Mesh-3">Mesh</a></td><td valign="top"><a href="mathgl_ru_9.html#Mesh-sample">9.2.5 Mesh &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-meshnum">meshnum</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-settings-_0028MGL_0029">8.1.7 Прочие настройки (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-meshnum-2">meshnum</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Message">Message</a></td><td valign="top"><a href="mathgl_ru_3.html#Error-handling">3.1.9 Обработка ошибок</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_7.html#index-mglArg">mglArg</a></td><td valign="top"><a href="mathgl_ru_7.html#mglArg-class">7.8 mglArg class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_7.html#index-mglColor">mglColor</a></td><td valign="top"><a href="mathgl_ru_7.html#mglColor-class">7.4 mglColor class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_7.html#index-mglCommand">mglCommand</a></td><td valign="top"><a href="mathgl_ru_7.html#mglCommand-class">7.7 mglCommand class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-mglData">mglData</a></td><td valign="top"><a href="mathgl_ru_6.html#Create-and-delete">6.2 Создание и удаление</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_4.html#index-mglDraw">mglDraw</a></td><td valign="top"><a href="mathgl_ru_4.html#mglGraphAB-class">4.1 Класс mglGraphAB</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_7.html#index-mglFont">mglFont</a></td><td valign="top"><a href="mathgl_ru_7.html#mglFont-class">7.3 mglFont class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_7.html#index-mglFormula">mglFormula</a></td><td valign="top"><a href="mathgl_ru_7.html#mglFormula-class">7.2 mglFormula class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-mglGraph">mglGraph</a></td><td valign="top"><a href="mathgl_ru_3.html#MathGL-core">3. Ядро MathGL</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_4.html#index-mglGraphAB">mglGraphAB</a></td><td valign="top"><a href="mathgl_ru_4.html#Plotter-classes">4. Классы для отрисовки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_4.html#index-mglGraphAB-2">mglGraphAB</a></td><td valign="top"><a href="mathgl_ru_4.html#mglGraphAB-class">4.1 Класс mglGraphAB</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-mglGraphFLTK">mglGraphFLTK</a></td><td valign="top"><a href="mathgl_ru_5.html#Widget-classes">5. &ldquo;Оконные&rdquo; классы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_4.html#index-mglGraphGL">mglGraphGL</a></td><td valign="top"><a href="mathgl_ru_4.html#Plotter-classes">4. Классы для отрисовки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-mglGraphGLUT">mglGraphGLUT</a></td><td valign="top"><a href="mathgl_ru_5.html#Widget-classes">5. &ldquo;Оконные&rdquo; классы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_4.html#index-mglGraphIDTF">mglGraphIDTF</a></td><td valign="top"><a href="mathgl_ru_4.html#Plotter-classes">4. Классы для отрисовки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_4.html#index-mglGraphPS">mglGraphPS</a></td><td valign="top"><a href="mathgl_ru_4.html#Plotter-classes">4. Классы для отрисовки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-mglGraphQT">mglGraphQT</a></td><td valign="top"><a href="mathgl_ru_5.html#Widget-classes">5. &ldquo;Оконные&rdquo; классы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_4.html#index-mglGraphZB">mglGraphZB</a></td><td valign="top"><a href="mathgl_ru_4.html#Plotter-classes">4. Классы для отрисовки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_7.html#index-mglParse">mglParse</a></td><td valign="top"><a href="mathgl_ru_7.html#mglParse-class">7.1 mglParse class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-mglParse-2">mglParse</a></td><td valign="top"><a href="mathgl_ru_9.html#Parser-sample">9.7.11 Parser &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-mglPDE-1">mglPDE</a></td><td valign="top"><a href="mathgl_ru_9.html#PDE-sample">9.7.9 PDE &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_7.html#index-mglPoint">mglPoint</a></td><td valign="top"><a href="mathgl_ru_7.html#mglPoint-class">7.5 mglPoint class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-mglQO2d-1">mglQO2d</a></td><td valign="top"><a href="mathgl_ru_9.html#Beam-tracing-sample">9.7.10 Beam tracing &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-mglRay-1">mglRay</a></td><td valign="top"><a href="mathgl_ru_9.html#PDE-sample">9.7.9 PDE &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-mglRay-2">mglRay</a></td><td valign="top"><a href="mathgl_ru_9.html#Beam-tracing-sample">9.7.10 Beam tracing &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_7.html#index-mglVar">mglVar</a></td><td valign="top"><a href="mathgl_ru_7.html#mglVar-class">7.6 mglVar class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Min">Min</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-min">min</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Min-1">Min</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Minimal">Minimal</a></td><td valign="top"><a href="mathgl_ru_6.html#Informational-functions">6.9 Информационные функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Mirror">Mirror</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-mirror">mirror</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Modify">Modify</a></td><td valign="top"><a href="mathgl_ru_6.html#Fill">6.3 Заполнение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-modify">modify</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-filling-_0028MGL_0029">8.17 Заполнение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-modify-1">modify</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-filling-_0028MGL_0029">8.17 Заполнение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Momentum">Momentum</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-momentum">momentum</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Momentum-2">Momentum</a></td><td valign="top"><a href="mathgl_ru_6.html#Informational-functions">6.9 Информационные функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-multo">multo</a></td><td valign="top"><a href="mathgl_ru_8.html#Operators-_0028MGL_0029">8.22 Операторы (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_ru_16.html#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_ru.html/mathgl_ru_15.html b/texinfo/mathgl_ru.html/mathgl_ru_15.html
new file mode 100644
index 0000000..dfa0094
--- /dev/null
+++ b/texinfo/mathgl_ru.html/mathgl_ru_15.html
@@ -0,0 +1,412 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: Индекс: N &ndash; S</title>
+
+<meta name="description" content="MathGL 1.11: Индекс: N &ndash; S">
+<meta name="keywords" content="MathGL 1.11: Индекс: N &ndash; S">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-2"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_14.html#index_split-1" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_16.html#index_split-3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Индекс: N &ndash; S</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_ru_16.html#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-N">N</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-new">new</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-create-_0028MGL_0029">8.16 Создание данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-NewFrame">NewFrame</a></td><td valign="top"><a href="mathgl_ru_3.html#Frames_002fAnimation">3.17 Кадры/Анимация</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-NewFrame-2">NewFrame</a></td><td valign="top"><a href="mathgl_ru_3.html#IDTF-functions">3.18 IDTF функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-next">next</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-norm">norm</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Norm">Norm</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-NormSl">NormSl</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-normsl">normsl</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-O">O</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-once">once</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Org">Org</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-origin">origin</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-P">P</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-palette">palette</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-settings-_0028MGL_0029">8.1.7 Прочие настройки (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-pde">pde</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-perspective">perspective</a></td><td valign="top"><a href="mathgl_ru_8.html#Transformation-matrix-_0028MGL_0029">8.3 Матрица преобразования (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Perspective">Perspective</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-pipe">pipe</a></td><td valign="top"><a href="mathgl_ru_8.html#Vector-fields-_0028MGL_0029">8.13 Векторные поля (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Pipe">Pipe</a></td><td valign="top"><a href="mathgl_ru_3.html#Pipe">3.13.6 Pipe</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Pipe-5">Pipe</a></td><td valign="top"><a href="mathgl_ru_9.html#Pipe-sample">9.4.10 Pipe &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Pipe-6">Pipe</a></td><td valign="top"><a href="mathgl_ru_9.html#Pipe-3D-sample">9.4.18 Pipe 3D &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Plot">Plot</a></td><td valign="top"><a href="mathgl_ru_3.html#Plot">3.9.1 Plot</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-plot">plot</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Plot-4">Plot</a></td><td valign="top"><a href="mathgl_ru_3.html#Plots-by-formula">3.14.9 Графики функций</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Plot-7">Plot</a></td><td valign="top"><a href="mathgl_ru_9.html#Plot-sample">9.1.1 Plot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Plot-8">Plot</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t1D-plot-sample">9.5.1 Пример графиков 1D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Plot-9">Plot</a></td><td valign="top"><a href="mathgl_ru_9.html#Legend-sample">9.6.1 Legend &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Plot-10">Plot</a></td><td valign="top"><a href="mathgl_ru_9.html#Semi_002dlog-sample">9.7.3 Semi-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Plot-11">Plot</a></td><td valign="top"><a href="mathgl_ru_9.html#Log_002dlog-sample">9.7.4 Log-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-plotfactor">plotfactor</a></td><td valign="top"><a href="mathgl_ru_8.html#Zooming-_0028MGL_0029">8.1.5 Масштабирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-PlotId">PlotId</a></td><td valign="top"><a href="mathgl_ru_3.html#Other-settings">3.1.10 Прочие настройки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-PrintInfo">PrintInfo</a></td><td valign="top"><a href="mathgl_ru_6.html#Informational-functions">6.9 Информационные функции</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-put">put</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-filling-_0028MGL_0029">8.17 Заполнение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Puts">Puts</a></td><td valign="top"><a href="mathgl_ru_3.html#Text-printing">3.6 Вывод текста</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Puts-5">Puts</a></td><td valign="top"><a href="mathgl_ru_9.html#Text-styles-sample">9.5.6 Пример стилей текста</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Puts-6">Puts</a></td><td valign="top"><a href="mathgl_ru_9.html#TeX-parsing-sample">9.5.7 Пример TeX формулы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Puts-7">Puts</a></td><td valign="top"><a href="mathgl_ru_9.html#Font-faces-sample">9.5.8 Примеры начертаний шрифта</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-PutsFit">PutsFit</a></td><td valign="top"><a href="mathgl_ru_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-putsfit">putsfit</a></td><td valign="top"><a href="mathgl_ru_8.html#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-PutsFit-2">PutsFit</a></td><td valign="top"><a href="mathgl_ru_9.html#Fitting-sample">9.7.5 Fitting &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Putsw">Putsw</a></td><td valign="top"><a href="mathgl_ru_3.html#Text-printing">3.6 Вывод текста</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-Q">Q</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-QMathGL">QMathGL</a></td><td valign="top"><a href="mathgl_ru_5.html#Widget-classes">5. &ldquo;Оконные&rdquo; классы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-QMathGL-2">QMathGL</a></td><td valign="top"><a href="mathgl_ru_5.html#QMathGL-class">5.2 QMathGL class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-qo2d">qo2d</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-quadplot">quadplot</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-QuadPlot">QuadPlot</a></td><td valign="top"><a href="mathgl_ru_3.html#QuadPlot">3.14.8 QuadPlot</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-R">R</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Radar">Radar</a></td><td valign="top"><a href="mathgl_ru_3.html#Radar">3.9.2 Radar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-radar">radar</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Radar-2">Radar</a></td><td valign="top"><a href="mathgl_ru_9.html#Radar-sample">9.1.2 Radar &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ranges">ranges</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ray">ray</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-read">read</a></td><td valign="top"><a href="mathgl_ru_8.html#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Read">Read</a></td><td valign="top"><a href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-ReadAll">ReadAll</a></td><td valign="top"><a href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-readall">readall</a></td><td valign="top"><a href="mathgl_ru_8.html#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-readhdf">readhdf</a></td><td valign="top"><a href="mathgl_ru_8.html#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-ReadHDF">ReadHDF</a></td><td valign="top"><a href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-ReadMat">ReadMat</a></td><td valign="top"><a href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-readmat">readmat</a></td><td valign="top"><a href="mathgl_ru_8.html#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-ReadRange">ReadRange</a></td><td valign="top"><a href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Rearrange">Rearrange</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-rearrange">rearrange</a></td><td valign="top"><a href="mathgl_ru_8.html#Rearrange-data-_0028MGL_0029">8.18 Изменение размеров данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-RecalcBorder">RecalcBorder</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-rect">rect</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Region">Region</a></td><td valign="top"><a href="mathgl_ru_3.html#Region">3.9.5 Region</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-region">region</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Region-3">Region</a></td><td valign="top"><a href="mathgl_ru_9.html#Region-sample">9.1.13 Region &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Region-4">Region</a></td><td valign="top"><a href="mathgl_ru_9.html#Region-gradient-sample">9.1.14 Region с градиентной заливкой &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Resize">Resize</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-resize">resize</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-RestoreFont">RestoreFont</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-RestoreM">RestoreM</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-return">return</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Roll">Roll</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-roll">roll</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-rotate">rotate</a></td><td valign="top"><a href="mathgl_ru_8.html#Transformation-matrix-_0028MGL_0029">8.3 Матрица преобразования (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Rotate">Rotate</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-RotateN">RotateN</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-rotatetext">rotatetext</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-settings-_0028MGL_0029">8.1.7 Прочие настройки (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-S">S</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-save">save</a></td><td valign="top"><a href="mathgl_ru_8.html#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Save">Save</a></td><td valign="top"><a href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-SaveHDF">SaveHDF</a></td><td valign="top"><a href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-savehdf">savehdf</a></td><td valign="top"><a href="mathgl_ru_8.html#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SelectPen">SelectPen</a></td><td valign="top"><a href="mathgl_ru_3.html#Palette-and-colors">3.1.8 Палитра и цвета</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Set">Set</a></td><td valign="top"><a href="mathgl_ru_6.html#Create-and-delete">6.2 Создание и удаление</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetAlphaDef">SetAlphaDef</a></td><td valign="top"><a href="mathgl_ru_3.html#Transparency">3.1.1 Прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetArrowSize">SetArrowSize</a></td><td valign="top"><a href="mathgl_ru_3.html#Default-sizes">3.1.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetAutoRanges">SetAutoRanges</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetAxialDir">SetAxialDir</a></td><td valign="top"><a href="mathgl_ru_3.html#Other-settings">3.1.10 Прочие настройки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetBarWidth">SetBarWidth</a></td><td valign="top"><a href="mathgl_ru_3.html#Default-sizes">3.1.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetBaseLineWidth">SetBaseLineWidth</a></td><td valign="top"><a href="mathgl_ru_3.html#Default-sizes">3.1.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-SetColumnId">SetColumnId</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetCoor">SetCoor</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation">3.2.2 Криволинейные координаты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetCTT">SetCTT</a></td><td valign="top"><a href="mathgl_ru_3.html#Ticks">3.2.3 Метки осей</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetCut">SetCut</a></td><td valign="top"><a href="mathgl_ru_3.html#Cutting">3.1.6 Обрезание</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetCutBox">SetCutBox</a></td><td valign="top"><a href="mathgl_ru_3.html#Cutting">3.1.6 Обрезание</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetDrawFace">SetDrawFace</a></td><td valign="top"><a href="mathgl_ru_3.html#Other-settings">3.1.10 Прочие настройки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetFont">SetFont</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetFontDef">SetFontDef</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetFontSize">SetFontSize</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetFontSizeCM">SetFontSizeCM</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetFontSizeIN">SetFontSizeIN</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetFontSizePT">SetFontSizePT</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetFunc">SetFunc</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation">3.2.2 Криволинейные координаты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetLegendBox">SetLegendBox</a></td><td valign="top"><a href="mathgl_ru_3.html#Legend">3.8 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetLegendMarks">SetLegendMarks</a></td><td valign="top"><a href="mathgl_ru_3.html#Legend">3.8 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetMarkSize">SetMarkSize</a></td><td valign="top"><a href="mathgl_ru_3.html#Default-sizes">3.1.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetMeshNum">SetMeshNum</a></td><td valign="top"><a href="mathgl_ru_3.html#Other-settings">3.1.10 Прочие настройки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetPalColor">SetPalColor</a></td><td valign="top"><a href="mathgl_ru_3.html#Palette-and-colors">3.1.8 Палитра и цвета</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetPalette">SetPalette</a></td><td valign="top"><a href="mathgl_ru_3.html#Palette-and-colors">3.1.8 Палитра и цвета</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetPalNum">SetPalNum</a></td><td valign="top"><a href="mathgl_ru_3.html#Palette-and-colors">3.1.8 Палитра и цвета</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetPlotFactor">SetPlotFactor</a></td><td valign="top"><a href="mathgl_ru_3.html#Zooming">3.1.5 Масштабирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetRanges">SetRanges</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetRotatedText">SetRotatedText</a></td><td valign="top"><a href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetScheme">SetScheme</a></td><td valign="top"><a href="mathgl_ru_3.html#Palette-and-colors">3.1.8 Палитра и цвета</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-setsize">setsize</a></td><td valign="top"><a href="mathgl_ru_8.html#Export-to-file-_0028MGL_0029">8.4 Экспорт в файл (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetSize">SetSize</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetTickLen">SetTickLen</a></td><td valign="top"><a href="mathgl_ru_3.html#Default-sizes">3.1.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetTicks">SetTicks</a></td><td valign="top"><a href="mathgl_ru_3.html#Ticks">3.2.3 Метки осей</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-SetTicks-2">SetTicks</a></td><td valign="top"><a href="mathgl_ru_9.html#Semi_002dlog-sample">9.7.3 Semi-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-SetTicks-3">SetTicks</a></td><td valign="top"><a href="mathgl_ru_9.html#Log_002dlog-sample">9.7.4 Log-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetTickStl">SetTickStl</a></td><td valign="top"><a href="mathgl_ru_3.html#Default-sizes">3.1.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetTicksVal">SetTicksVal</a></td><td valign="top"><a href="mathgl_ru_3.html#Ticks">3.2.3 Метки осей</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-SetTicksVal-4">SetTicksVal</a></td><td valign="top"><a href="mathgl_ru_9.html#Manual-ticks-sample">9.7.12 Особые метки по осям</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-SetTicksVal-5">SetTicksVal</a></td><td valign="top"><a href="mathgl_ru_9.html#ColumnPlot-sample">9.7.13 ColumnPlot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-SetTicksVal-6">SetTicksVal</a></td><td valign="top"><a href="mathgl_ru_9.html#StickPlot-sample">9.7.14 StickPlot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetTransparent">SetTransparent</a></td><td valign="top"><a href="mathgl_ru_3.html#Transparency">3.1.1 Прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetTranspType">SetTranspType</a></td><td valign="top"><a href="mathgl_ru_3.html#Transparency">3.1.1 Прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetTuneTicks">SetTuneTicks</a></td><td valign="top"><a href="mathgl_ru_3.html#Ticks">3.2.3 Метки осей</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetWarn">SetWarn</a></td><td valign="top"><a href="mathgl_ru_3.html#Error-handling">3.1.9 Обработка ошибок</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetXTT">SetXTT</a></td><td valign="top"><a href="mathgl_ru_3.html#Ticks">3.2.3 Метки осей</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetYTT">SetYTT</a></td><td valign="top"><a href="mathgl_ru_3.html#Ticks">3.2.3 Метки осей</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SetZTT">SetZTT</a></td><td valign="top"><a href="mathgl_ru_3.html#Ticks">3.2.3 Метки осей</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Sew">Sew</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-sew">sew</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Sew-2">Sew</a></td><td valign="top"><a href="mathgl_ru_9.html#Sew-sample">9.7.7 Sew &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ShowImage">ShowImage</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SimplePlot">SimplePlot</a></td><td valign="top"><a href="mathgl_ru_3.html#SimplePlot">3.14.10 SimplePlot</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-sinfft">sinfft</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-SinFFT">SinFFT</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-smooth">smooth</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Smooth">Smooth</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Sphere">Sphere</a></td><td valign="top"><a href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-sphere">sphere</a></td><td valign="top"><a href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Sphere-3">Sphere</a></td><td valign="top"><a href="mathgl_ru_9.html#Molecules-drawing-sample">9.6.11 Рисование молекул</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Spline">Spline</a></td><td valign="top"><a href="mathgl_ru_6.html#Interpolation">6.8 Интерполяция</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Spline1">Spline1</a></td><td valign="top"><a href="mathgl_ru_6.html#Interpolation">6.8 Интерполяция</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Spline5">Spline5</a></td><td valign="top"><a href="mathgl_ru_6.html#Interpolation">6.8 Интерполяция</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Squeeze">Squeeze</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-squeeze">squeeze</a></td><td valign="top"><a href="mathgl_ru_8.html#Rearrange-data-_0028MGL_0029">8.18 Изменение размеров данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-stem">stem</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Stem">Stem</a></td><td valign="top"><a href="mathgl_ru_3.html#Stem">3.9.6 Stem</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Stem-4">Stem</a></td><td valign="top"><a href="mathgl_ru_9.html#Stem-sample">9.1.12 Stem &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-step">step</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Step">Step</a></td><td valign="top"><a href="mathgl_ru_3.html#Step">3.9.10 Step</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Step-4">Step</a></td><td valign="top"><a href="mathgl_ru_9.html#Step-sample">9.1.11 Step &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-stfa">stfa</a></td><td valign="top"><a href="mathgl_ru_8.html#Dual-plotting-_0028MGL_0029">8.12 Парные графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-STFA">STFA</a></td><td valign="top"><a href="mathgl_ru_3.html#STFA">3.12.7 STFA</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-STFA-3">STFA</a></td><td valign="top"><a href="mathgl_ru_9.html#STFA-sample">9.7.8 STFA &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-stfad">stfad</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-stickplot">stickplot</a></td><td valign="top"><a href="mathgl_ru_8.html#Transformation-matrix-_0028MGL_0029">8.3 Матрица преобразования (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-stop">stop</a></td><td valign="top"><a href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-subdata">subdata</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-SubData">SubData</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SubPlot">SubPlot</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-subplot">subplot</a></td><td valign="top"><a href="mathgl_ru_8.html#Transformation-matrix-_0028MGL_0029">8.3 Матрица преобразования (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-SubPlot-3">SubPlot</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t1D-plot-sample">9.5.1 Пример графиков 1D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-SubPlot-4">SubPlot</a></td><td valign="top"><a href="mathgl_ru_9.html#Adding-mesh-sample">9.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-subto">subto</a></td><td valign="top"><a href="mathgl_ru_8.html#Operators-_0028MGL_0029">8.22 Операторы (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-sum">sum</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Sum">Sum</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Surf">Surf</a></td><td valign="top"><a href="mathgl_ru_3.html#Surf">3.10.4 Surf</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-surf">surf</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Surf-3">Surf</a></td><td valign="top"><a href="mathgl_ru_3.html#Plots-by-formula">3.14.9 Графики функций</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-6">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#Surf-sample">9.2.1 Surf &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-7">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#Transparent-surface-sample">9.2.2 Transparent surface &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-8">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#Surface-in-fog-sample">9.2.3 Surface in fog &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-9">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#Sharp-colors-sample">9.2.4 Sharp colors &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-10">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t2D-plot-sample">9.5.2 Пример графиков 2D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-11">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#g_t3D-plot-sample">9.5.3 Пример графиков 3D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-12">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#Adding-mesh-sample">9.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-13">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#Surf-_0026-Cont-sample">9.6.3 Surf &amp; Cont &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-14">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#Several-light-sample">9.6.5 Несколько источников света</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf-15">Surf</a></td><td valign="top"><a href="mathgl_ru_9.html#Mirrored-surface-sample">9.6.6 Отражение поверхности</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-surf3">surf3</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Surf3">Surf3</a></td><td valign="top"><a href="mathgl_ru_3.html#Surf3">3.11.1 Surf3</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf3-5">Surf3</a></td><td valign="top"><a href="mathgl_ru_9.html#Surf3-sample">9.3.1 Surf3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf3-6">Surf3</a></td><td valign="top"><a href="mathgl_ru_9.html#CutMinMax-sample">9.3.9 CutMinMax &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf3-7">Surf3</a></td><td valign="top"><a href="mathgl_ru_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf3-8">Surf3</a></td><td valign="top"><a href="mathgl_ru_9.html#CutOff-sample">9.3.11 CutOff &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf3-9">Surf3</a></td><td valign="top"><a href="mathgl_ru_9.html#Coloring-by-coordinates-sample">9.6.9 Окрашивание по положению грани</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Surf3A">Surf3A</a></td><td valign="top"><a href="mathgl_ru_3.html#Surf3A">3.12.4 Surf3A</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-surf3a">surf3a</a></td><td valign="top"><a href="mathgl_ru_8.html#Dual-plotting-_0028MGL_0029">8.12 Парные графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf3A-5">Surf3A</a></td><td valign="top"><a href="mathgl_ru_9.html#Surf3A-sample">9.4.13 Surf3A &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Surf3C">Surf3C</a></td><td valign="top"><a href="mathgl_ru_3.html#Surf3C">3.12.2 Surf3C</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-surf3c">surf3c</a></td><td valign="top"><a href="mathgl_ru_8.html#Dual-plotting-_0028MGL_0029">8.12 Парные графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Surf3C-5">Surf3C</a></td><td valign="top"><a href="mathgl_ru_9.html#Surf3C-sample">9.4.12 Surf3C &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-surfa">surfa</a></td><td valign="top"><a href="mathgl_ru_8.html#Dual-plotting-_0028MGL_0029">8.12 Парные графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SurfA">SurfA</a></td><td valign="top"><a href="mathgl_ru_3.html#SurfA">3.12.3 SurfA</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-SurfA-3">SurfA</a></td><td valign="top"><a href="mathgl_ru_9.html#SurfA-sample">9.4.2 SurfA &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-surfc">surfc</a></td><td valign="top"><a href="mathgl_ru_8.html#Dual-plotting-_0028MGL_0029">8.12 Парные графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-SurfC">SurfC</a></td><td valign="top"><a href="mathgl_ru_3.html#SurfC">3.12.1 SurfC</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-SurfC-3">SurfC</a></td><td valign="top"><a href="mathgl_ru_9.html#SurfC-sample">9.4.1 SurfC &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-swap">swap</a></td><td valign="top"><a href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Swap">Swap</a></td><td valign="top"><a href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mathgl_ru_16.html#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mathgl_ru_16.html#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_ru.html/mathgl_ru_16.html b/texinfo/mathgl_ru.html/mathgl_ru_16.html
new file mode 100644
index 0000000..f76cdc4
--- /dev/null
+++ b/texinfo/mathgl_ru.html/mathgl_ru_16.html
@@ -0,0 +1,321 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: Индекс: T &ndash; Ц</title>
+
+<meta name="description" content="MathGL 1.11: Индекс: T &ndash; Ц">
+<meta name="keywords" content="MathGL 1.11: Индекс: T &ndash; Ц">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_15.html#index_split-2" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[ &gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Индекс: T &ndash; Ц</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-T">T</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Tens">Tens</a></td><td valign="top"><a href="mathgl_ru_3.html#Tens">3.9.3 Tens</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-tens">tens</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Tens-4">Tens</a></td><td valign="top"><a href="mathgl_ru_9.html#Tens-sample">9.1.3 Tens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Ternary">Ternary</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation">3.2.2 Криволинейные координаты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ternary">ternary</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Ternary-2">Ternary</a></td><td valign="top"><a href="mathgl_ru_9.html#Ternary-plot-sample">9.6.8 Ternary plot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Text">Text</a></td><td valign="top"><a href="mathgl_ru_3.html#Text-printing">3.6 Вывод текста</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-text">text</a></td><td valign="top"><a href="mathgl_ru_8.html#Text-printing-_0028MGL_0029">8.6 Вывод текста (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Text-7">Text</a></td><td valign="top"><a href="mathgl_ru_9.html#Text-sample">9.1.20 Text &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-textmark">textmark</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-TextMark">TextMark</a></td><td valign="top"><a href="mathgl_ru_3.html#TextMark">3.9.14 TextMark</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-TextMark-9">TextMark</a></td><td valign="top"><a href="mathgl_ru_9.html#TextMark-sample">9.1.18 TextMark &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ticklen">ticklen</a></td><td valign="top"><a href="mathgl_ru_8.html#Default-sizes-_0028MGL_0029">8.1.4 Базовые размеры (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-tickstl">tickstl</a></td><td valign="top"><a href="mathgl_ru_8.html#Default-sizes-_0028MGL_0029">8.1.4 Базовые размеры (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-tile">tile</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Tile">Tile</a></td><td valign="top"><a href="mathgl_ru_3.html#Tile">3.10.6 Tile</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Tile-3">Tile</a></td><td valign="top"><a href="mathgl_ru_9.html#Tile-sample">9.2.8 Tile &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-tiles">tiles</a></td><td valign="top"><a href="mathgl_ru_8.html#Dual-plotting-_0028MGL_0029">8.12 Парные графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-TileS">TileS</a></td><td valign="top"><a href="mathgl_ru_3.html#TileS">3.12.5 TileS</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-TileS-3">TileS</a></td><td valign="top"><a href="mathgl_ru_9.html#TileS-sample">9.4.3 TileS &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-title">title</a></td><td valign="top"><a href="mathgl_ru_8.html#Text-printing-_0028MGL_0029">8.6 Вывод текста (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Title">Title</a></td><td valign="top"><a href="mathgl_ru_3.html#Text-printing">3.6 Вывод текста</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-tlabel">tlabel</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-torus">torus</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Torus">Torus</a></td><td valign="top"><a href="mathgl_ru_3.html#Torus">3.9.11 Torus</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Torus-3">Torus</a></td><td valign="top"><a href="mathgl_ru_9.html#Torus-sample">9.1.21 Torus &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-trace">trace</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Trace">Trace</a></td><td valign="top"><a href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Traj">Traj</a></td><td valign="top"><a href="mathgl_ru_3.html#Traj">3.13.1 Traj</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-traj">traj</a></td><td valign="top"><a href="mathgl_ru_8.html#Vector-fields-_0028MGL_0029">8.13 Векторные поля (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Traj-3">Traj</a></td><td valign="top"><a href="mathgl_ru_9.html#Traj-sample">9.4.5 Traj &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-transform">transform</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-transforma">transforma</a></td><td valign="top"><a href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-transparent">transparent</a></td><td valign="top"><a href="mathgl_ru_8.html#Transparency-_0028MGL_0029">8.1.1 Прозрачность (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-transpose">transpose</a></td><td valign="top"><a href="mathgl_ru_8.html#Rearrange-data-_0028MGL_0029">8.18 Изменение размеров данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-Transpose">Transpose</a></td><td valign="top"><a href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-TranspType">TranspType</a></td><td valign="top"><a href="mathgl_ru_9.html#Normal-transparency">9.5.11 Обычная прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-transptype">transptype</a></td><td valign="top"><a href="mathgl_ru_8.html#Transparency-_0028MGL_0029">8.1.1 Прозрачность (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-TranspType-1">TranspType</a></td><td valign="top"><a href="mathgl_ru_9.html#Glass_002dlike-transparency">9.5.12 &quot;Стеклянная&quot; прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-TranspType-2">TranspType</a></td><td valign="top"><a href="mathgl_ru_9.html#Lamp_002dlike-transparency">9.5.13 &quot;Ламповая&quot; прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-TriCont">TriCont</a></td><td valign="top"><a href="mathgl_ru_3.html#TriCont">3.14.7 TriCont</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-tricont">tricont</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-triplot">triplot</a></td><td valign="top"><a href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-TriPlot">TriPlot</a></td><td valign="top"><a href="mathgl_ru_3.html#TriPlot">3.14.6 TriPlot</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Tube">Tube</a></td><td valign="top"><a href="mathgl_ru_3.html#Tube">3.9.12 Tube</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-tube">tube</a></td><td valign="top"><a href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Tube-7">Tube</a></td><td valign="top"><a href="mathgl_ru_9.html#Tube-sample">9.1.19 Tube &ndash; пример использования</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-V">V</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_6.html#index-v">v</a></td><td valign="top"><a href="mathgl_ru_6.html#Interpolation">6.8 Интерполяция</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-var">var</a></td><td valign="top"><a href="mathgl_ru_8.html#Data-create-_0028MGL_0029">8.16 Создание данных (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-vect">vect</a></td><td valign="top"><a href="mathgl_ru_8.html#Vector-fields-_0028MGL_0029">8.13 Векторные поля (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Vect">Vect</a></td><td valign="top"><a href="mathgl_ru_3.html#Vect">3.13.2 Vect</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Vect-5">Vect</a></td><td valign="top"><a href="mathgl_ru_9.html#Vect-sample">9.4.6 Vect &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-Vect-6">Vect</a></td><td valign="top"><a href="mathgl_ru_9.html#Vect-3D-sample">9.4.14 Vect 3D &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-VectC">VectC</a></td><td valign="top"><a href="mathgl_ru_9.html#VectC-sample">9.4.8 VectC &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-vectc">vectc</a></td><td valign="top"><a href="mathgl_ru_8.html#Vector-fields-_0028MGL_0029">8.13 Векторные поля (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-VectC-1">VectC</a></td><td valign="top"><a href="mathgl_ru_9.html#VectC-3D-sample">9.4.16 VectC 3D &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-vectl">vectl</a></td><td valign="top"><a href="mathgl_ru_8.html#Vector-fields-_0028MGL_0029">8.13 Векторные поля (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-VectL">VectL</a></td><td valign="top"><a href="mathgl_ru_9.html#VectL-sample">9.4.7 VectL &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_9.html#index-VectL-1">VectL</a></td><td valign="top"><a href="mathgl_ru_9.html#VectL-3D-sample">9.4.15 VectL 3D &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-View">View</a></td><td valign="top"><a href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-W">W</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_2.html#index-widgets">widgets</a></td><td valign="top"><a href="mathgl_ru_2.html#Using-FLTK_002fGLUT-window">2.1.1 Using FLTK/Qt/GLUT window</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-widgets-1">widgets</a></td><td valign="top"><a href="mathgl_ru_5.html#Widget-classes">5. &ldquo;Оконные&rdquo; классы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-widgets-2">widgets</a></td><td valign="top"><a href="mathgl_ru_5.html#Fl_005fMathGL-class">5.1 Класс Fl_MathGL</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-widgets-3">widgets</a></td><td valign="top"><a href="mathgl_ru_5.html#QMathGL-class">5.2 QMathGL class</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_2.html#index-window">window</a></td><td valign="top"><a href="mathgl_ru_2.html#Using-FLTK_002fGLUT-window">2.1.1 Using FLTK/Qt/GLUT window</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_4.html#index-window-1">window</a></td><td valign="top"><a href="mathgl_ru_4.html#mglGraphAB-class">4.1 Класс mglGraphAB</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_5.html#index-window-2">window</a></td><td valign="top"><a href="mathgl_ru_5.html#Widget-classes">5. &ldquo;Оконные&rdquo; классы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-write">write</a></td><td valign="top"><a href="mathgl_ru_8.html#Export-to-file-_0028MGL_0029">8.4 Экспорт в файл (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-WriteBMP">WriteBMP</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-WriteEPS">WriteEPS</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-WriteFrame">WriteFrame</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-WriteGIF">WriteGIF</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-WriteIDTF">WriteIDTF</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-WriteJPEG">WriteJPEG</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-WritePNG">WritePNG</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-WriteSVG">WriteSVG</a></td><td valign="top"><a href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-X">X</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-xlabel">xlabel</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-XRange">XRange</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-xrange">xrange</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-xrange-3">xrange</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-xtick">xtick</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-Y">Y</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ylabel">ylabel</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-YRange">YRange</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-yrange">yrange</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-yrange-3">yrange</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ytick">ytick</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_letter-Z">Z</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-zlabel">zlabel</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-Zoom">Zoom</a></td><td valign="top"><a href="mathgl_ru_3.html#Zooming">3.1.5 Масштабирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-zoom">zoom</a></td><td valign="top"><a href="mathgl_ru_8.html#Zooming-_0028MGL_0029">8.1.5 Масштабирование (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-ZRange">ZRange</a></td><td valign="top"><a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-zrange">zrange</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-zrange-3">zrange</a></td><td valign="top"><a href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_8.html#index-ztick">ztick</a></td><td valign="top"><a href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_symbol-1">Н</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_3.html#index-_041d_0430_0441_0442_0440_043e_0439_043a_0430-MathGL">Настройка MathGL</a></td><td valign="top"><a href="mathgl_ru_3.html#Graphics-setup">3.1 Настройка графика</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_symbol-2">О</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_1.html#index-_041e_0431_0437_043e_0440-MathGL">Обзор MathGL</a></td><td valign="top"><a href="mathgl_ru_1.html#Overview">1. Обзор MathGL</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_symbol-3">С</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_1.html#index-_0421_0442_0438_043bx-_043b_0438_043d_0438_0439">Стиль линий</a></td><td valign="top"><a href="mathgl_ru_1.html#Line-styles">1.4.2 Стиль линий</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_1.html#index-_0421_0442_0438_043bx-_043c_0430_0440_043ae_0440_043e_0432">Стиль маркеров</a></td><td valign="top"><a href="mathgl_ru_1.html#Line-styles">1.4.2 Стиль линий</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_1.html#index-_0421_0442_0438_043bx-_0441_0442_0440e_043b_043e_043a">Стиль стрелок</a></td><td valign="top"><a href="mathgl_ru_1.html#Line-styles">1.4.2 Стиль линий</a></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_1.html#index-_0421_0442_0438_043bx-_0442e_043a_0441_0442_0430">Стиль текста</a></td><td valign="top"><a href="mathgl_ru_1.html#Font-styles">1.4.4 Стиль текста</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_symbol-4">Т</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_1.html#index-_0422e_043a_0441_0442_043e_0432_044be-_0444_043e_0440_043c_0443_043b_044b">Текстовые формулы</a></td><td valign="top"><a href="mathgl_ru_1.html#Textual-formulas">1.4.5 Текстовые формулы</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-3_cp_symbol-5">Ц</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mathgl_ru_1.html#index-C_0432e_0442_043e_0432_0430ya-_0441_0445e_043c_0430">Цветовая схема</a></td><td valign="top"><a href="mathgl_ru_1.html#Color-scheme">1.4.3 Цветовая схема</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#index_split-3_cp_symbol-1" class="summary-letter"><b>Н</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_symbol-2" class="summary-letter"><b>О</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_symbol-3" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_symbol-4" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_symbol-5" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mathgl_ru_12.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mathgl_ru_13.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mathgl_ru_14.html#index_split-1_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mathgl_ru_15.html#index_split-2_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="#index_split-3_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_11.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_ru.html/mathgl_ru_2.html b/texinfo/mathgl_ru.html/mathgl_ru_2.html
new file mode 100644
index 0000000..b045955
--- /dev/null
+++ b/texinfo/mathgl_ru.html/mathgl_ru_2.html
@@ -0,0 +1,1983 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: 2. MathGL examples</title>
+
+<meta name="description" content="MathGL 1.11: 2. MathGL examples">
+<meta name="keywords" content="MathGL 1.11: 2. MathGL examples">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Examples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_1.html#Thanks" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_1.html#Overview" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL-examples"></a>
+<h1 class="chapter">2. MathGL examples</h1>
+
+<p>This chapter contain information about basic and advanced MathGL, hints and samples for all types of graphics. I recommend you read first 2 sections one after another and at least look on &ldquo;Hints&rdquo; section. Also I recommend you to look at <a href="mathgl_ru_1.html#General-concepts">Основные принципы</a> and <a href="mathgl_ru_1.html#FAQ">FAQ</a>. Sample code for some of these examples can be found in <a href="http://mathgl.sf.net/pictures.html">http://mathgl.sf.net/pictures.html</a> and in <a href="mathgl_ru_9.html#Samples">Примеры использования MathGL</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Basic-usage">2.1 Basic usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Advanced-usage">2.2 Advanced usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-handling">2.3 Data handling</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-plotting">2.4 Data plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#C_002fFortran-interface">2.5 C/Fortran interface</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#MathGL-and-PyQt">2.6 MathGL and PyQt</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Hints">2.7 Hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Basic-usage"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Examples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Using-FLTK_002fGLUT-window" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Basic-usage-1"></a>
+<h2 class="section">2.1 Basic usage</h2>
+
+<p>MathGL library can be used by several manners. Each has positive and negative sides:
+</p><ul>
+<li>
+<em>The using of MathGL library features for creating graphical window (requires FLTK or GLUT libraries).</em>
+
+<p>Positive side is the possibility to view the plot at once and to modify it (rotate, zoom or switch on transparency or lighting) by hand or by mouse. Negative sides are: the need  of X-terminal and limitation consisting in working with the only one set of data at a time.
+</p></li><li>
+<em>Direct writing to file in bitmap or vector format without creation of graphical window.</em>
+
+<p>Positive aspects are: batch processing of similar data set (for example, a set of resulting data files for different calculation parameters), running from the console program (including the cluster calculation), fast and automated drawing, saving pictures for further analysis (or demonstration). Negative sides are: the usage of the external program for picture viewing. Also, the data plotting is non-visual. So, you have to imagine the picture (view angles, lighting and so on) before the plotting. I recommend to use graphical window for determining the optimal parameters of plotting on the base of some typical data set. And later use these parameters for batch processing in console program.
+</p></li><li>
+<em>Drawing in memory with the following displaying by other graphical program.</em>
+
+<p>In this case the programmer has more freedom in selecting the window libraries (not only FLTK or GLUT), in positioning and surroundings control and so on. I recommend to use such way for &ldquo;settled&rdquo; programs.
+</p></li></ul>
+
+<p>Let me consider the aforesaid in more detail.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Using-FLTK_002fGLUT-window">2.1.1 Using FLTK/Qt/GLUT window</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Drawing-to-file">2.1.2 Drawing to file</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Drawing-in-memory">2.1.3 Drawing in memory</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Using-QMathGL">2.1.4 Using QMathGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+
+
+<hr size="6">
+<a name="Using-FLTK_002fGLUT-window"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Basic-usage" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Drawing-to-file" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Using-FLTK_002fQt_002fGLUT-window"></a>
+<h3 class="subsection">2.1.1 Using FLTK/Qt/GLUT window</h3>
+<a name="index-window"></a>
+<a name="index-widgets"></a>
+
+<p>The &ldquo;interactive&rdquo; way of drawing in MathGL consists in window creation  with help of class <code>mglGraphFLTK</code>, <code>mglGraphQT</code> or <code>mglGraphGLUT</code> (see section <a href="mathgl_ru_5.html#Widget-classes">&ldquo;Оконные&rdquo; классы</a>) and the following drawing in this window. There is a corresponding code:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Box();
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mglGraphFLTK gr;
+        gr.Window(argc,argv,sample,&quot;MathGL examples&quot;);
+        return mglFlRun();
+    }
+</pre><p>Here function <code>sample</code> is defined. This function does all drawing. Other function <code>main</code> is entry point function for console program. Arguments of <code>main</code> should be transfered to <code>Window()</code> since it may contain OS specific information (see section <a href="mathgl_ru_4.html#mglGraphAB-class">Класс mglGraphAB</a>).
+</p>
+<p>Alternatively you can create yours own class inherited from class <code>mglDraw</code> and re-implement the function <code>Draw()</code> in it:
+</p><pre class="verbatim">    class Foo : public mglDraw
+    {
+    public:
+        int Draw(mglGraph *gr);
+    } foo;
+    //-----------------------------------------------------
+    int Foo::Draw(mglGraph *gr)
+    {
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Box();
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mglGraphFLTK gr;
+        gr.Window(argc,argv,foo,&quot;MathGL examples&quot;);
+        return mglFlRun();
+    }
+</pre>
+<p>The similar code can be written for <code>mglGraphQT</code> or for <code>mglGraphGLUT</code> window (function <code>sample()</code> is the same):
+</p><pre class="verbatim">    int main(int argc,char **argv)
+    {
+        mglGraphGLUT gr;
+        gr.Window(argc,argv,sample,&quot;MathGL examples&quot;);
+        return 0;
+    }
+</pre>
+<p>The rotation, shift, zooming, switching on/off transparency and lighting can be done with help of tool-buttons (for <code>mglGraphFLTK</code> and <code>mglGraphQT</code>) or by hot-keys: &lsquo;<samp>a</samp>&rsquo;, &lsquo;<samp>d</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;, &lsquo;<samp>s</samp>&rsquo; for plot rotation, &lsquo;<samp>r</samp>&rsquo; and &lsquo;<samp>f</samp>&rsquo; switching on/off transparency and lighting. Press &lsquo;<samp>x</samp>&rsquo; for exit (or closing the window).
+</p>
+<p>In this example function <code>sample</code> rotates axes (<code>Rotate()</code>, see section <a href="mathgl_ru_3.html#Transformation-matrix">Матрица преобразования</a>) and draws the bounding box (<code>Box()</code>). Drawing procedure is separated in a function since it will be used on demand when window canvas needs to be redrawn. Widget classes (<code>mglGraphFLTK</code>, <code>mglGraphGLUT</code> and so on) support a delayed drawing, when all plotting functions are called once at the beginning of writing to memory lists. Further program displays the saved lists faster. Resulting redrawing will be faster but it requires sufficient memory. Several lists (frames) can be displayed one after another (by pressing &lsquo;<samp>,</samp>&rsquo;, &lsquo;<samp>.</samp>&rsquo;) or run as cinema. To switch these feature on one needs to modify function <code>sample</code>:
+</p><pre class="verbatim">    int sample1(mglGraph *gr, void *)
+    {
+        gr-&gt;NewFrame();             // the first frame
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Box();
+        gr-&gt;EndFrame();             // end of the first frame
+        gr-&gt;NewFrame();             // the second frame
+        gr-&gt;Box();
+        gr-&gt;Axis(&quot;xy&quot;);
+        gr-&gt;EndFrame();             // end of the second frame
+        return GetNumFrame();       // returns the frame number
+    }
+</pre><p>First, the function creates a frame <code>NewFrame()</code> for rotated axes and draws the bounding box. After the frame drawing the function <code>EndFrame()</code> <strong>must be</strong> called! The second frame contains the bounding box and axes <code>Axis(&quot;xy&quot;)</code> in the initial (unrotated) coordinates. Function <code>sample</code> returns the number of created frames <code>GetNumFrame()</code>.
+</p>
+<hr size="6">
+<a name="Drawing-to-file"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Using-FLTK_002fGLUT-window" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Drawing-in-memory" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Drawing-to-file-1"></a>
+<h3 class="subsection">2.1.2 Drawing to file</h3>
+
+<p>Another way of using MathGL library is the direct picture writing to file. It is most usable for plot creating during calculation or for using of small programs (like Matlab or Scilab scripts) for visualizing repetitive sets of data. But the speed of drawing is much higher in comparison with a script language. There are two classes for exporting in file: class <code>mglGraphZB</code> saves in bitmap format (like PNG), <code>mglGraphPS</code> saves in vector PostScript format (see section <a href="mathgl_ru_4.html#Plotter-classes">Классы для отрисовки</a>).
+</p>
+<p>The following code produces a bitmap PNG picture:
+</p><pre class="verbatim">    int main(int ,char **)
+    {
+        mglGraphZB gr;
+        gr.Alpha(true);
+        gr.Light(true);             gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);           // The same drawing function.
+        gr.WritePNG(&quot;test.png&quot;);    // Don't forget to save the result!
+        return 0;
+    }
+</pre><p>The only difference from the previous (using windows) variant is manual switching the transparency  <code>Alpha</code> and lightning <code>Light</code> on, if the plot requires it. The using of frames is not advisable since the whole image is prepared each time. If function <code>sample</code> contains frames then each frame will be saved to a separate file. In principle, one does not need to separate drawing functions in case of direct file writing in consequence of the single calling of this function for each picture. However, one may use the same drawing procedure to create a plot with changed parameters, to export in different file types, to emphasize the drawing code and so on. So, in future I will put the drawing in separate function.
+</p>
+<p>The code for export in vector EPS file looks the same:
+</p><pre class="verbatim">    int main(int ,char **)
+    {
+        mglGraphPS gr;
+        gr.Light(true);             gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);           // The same drawing function.
+        gr.WriteEPS(&quot;test.eps&quot;);    // Don't forget to save the result!
+        return 0;
+    }
+</pre><p>The differences from the using of bitmap picture are: applying of the other class <code>mglGraphPS</code>, and writing to other format (function <code>WriteEPS()</code> instead of function <code>WritePNG()</code>). Moreover, there is no switching of the plot transparency <code>Alpha</code> since EPS format does not support it. Possibly I shall include transparency in future by program emulation.
+</p>
+<p>Classes <code>mglGraphZB</code> and <code>mglGraphPS</code> have some merits and demerits. Class <code>mglGraphZB</code> draws beautiful surface with transparency, smoothed colors and lightning, but the output picture is <em>bitmap</em>, that leads to a bad scalability. On the contrary, class <code>mglGraphPS</code> creates vector file with excellent scalability. But file has large size (especially for surfaces), it does not support transparency and color smoothing. So, vector picture looks stylish but a bit angularly.
+</p>
+<hr size="6">
+<a name="Drawing-in-memory"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Drawing-to-file" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Using-QMathGL" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Drawing-in-memory-1"></a>
+<h3 class="subsection">2.1.3 Drawing in memory</h3>
+
+<p>The last way of MathGL using is the drawing in memory. Class <code>mglGraphZB</code> allows one  to create a bitmap picture in memory. Further this picture can be displayed in window by some window libraries (like wxWidgets, FLTK, Windows GDI and so on). For example, the code for drawing in wxWidget library looks like:
+</p><pre class="verbatim">    void MyForm::OnPaint(wxPaintEvent&amp; event)
+    {
+        int w,h,x,y;
+        GetClientSize(&amp;w,&amp;h);   // size of the picture
+        mglGraphZB gr(w,h);
+
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);
+
+        wxImage img(w,h,gr.GetBits(),true);
+        ToolBar-&gt;GetSize(&amp;x,&amp;y);    // gets a height of the toolbar if any
+        wxPaintDC dc(this);         // and draws it
+        dc.DrawBitmap(wxBitmap(img),0,y);
+    }
+</pre><p>The drawing in other libraries is most the same.
+</p>
+<p>For example, FLTK code will look like
+</p><pre class="verbatim">    void Fl_MyWidget::draw()
+    {
+        mglGraphZB gr(w(),h());
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);
+        fl_draw_image(gr.GetBits(), x(), y(), gr.GetWidth(), gr.GetHeight(), 3);
+    }
+</pre><p>Qt code will look like
+</p><pre class="verbatim">    void MyWidget::paintEvent(QPaintEvent *)
+    {
+        mglGraphZB gr(w(),h());
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&amp;gr,NULL);
+
+        // Qt don't support RGB format as is. So, let convert it to BGRN.
+        const uchar *bb = gr.GetBits();
+        register long i, w=gr.GetWidth(), h=gr.GetHeight();
+        *buf = new uchar[4*w*h];
+        for(i=0;i&lt;w*h;i++)
+        {
+            (*buf)[4*i]   = bb[3*i+2];
+            (*buf)[4*i+1] = bb[3*i+1];
+            (*buf)[4*i+2] = bb[3*i];
+            (*buf)[4*i+3] = 255;
+        }
+        QPixmap pic = QPixmap::fromImage(QImage(*buf, w, h, QImage::Format_RGB32));
+
+        QPainter paint;
+        paint.begin(this);  paint.drawPixmap(0,0,pic);  paint.end();
+        delete []buf;
+    }
+</pre>
+<hr size="6">
+<a name="Using-QMathGL"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Drawing-in-memory" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Using-QMathGL-1"></a>
+<h3 class="subsection">2.1.4 Using QMathGL</h3>
+
+<p>MathGL have several interface widgets for different widget libraries. There are QMathGL for Qt, Fl_MathGL for FLTK in MathGL v.1.8. These classes provide control which display MathGL graphics. Unfortunately there is no uniform interface for widget classes because all libraries have slightly different set of functions, features and so on. However the usage of MathGL widgets is rather simple. Let me show it on the example of QMathGL.
+</p>
+<p>First of all you have to define the drawing function or inherit a class from <code>mglDraw</code> class. After it just create a window and setup QMathGL instance as any other Qt widget:
+</p><pre class="verbatim">    int main(int argc,char **argv)
+    {
+        QApplication a(argc,argv);
+        QMainWindow *Wnd = new QMainWindow;
+        Wnd-&gt;resize(650,480);  // for fill up the QMGL, menu and toolbars
+        Wnd-&gt;setWindowTitle(title);
+        // here I allow to scroll QMathGL -- the case 
+        // then user want to prepare huge picture
+        QScrollArea *scroll = new QScrollArea(Wnd);
+
+        // Create and setup QMathGL
+        QMathGL *QMGL = new QMathGL(Wnd);
+        QMGL-&gt;setPopup(popup); // if you want to setup popup menu for QMGL
+        QMGL-&gt;setDraw(sample, NULL);
+        // or use QMGL-&gt;setDraw(foo); for instance of class Foo:public mglDraw
+        QMGL-&gt;update();
+
+        // continue other setup (menu, toolbar and so on)
+        makeMenu();
+        scroll-&gt;setWidget(QMGL);
+        Wnd-&gt;setCentralWidget(scroll);
+        Wnd-&gt;show();
+        return a.exec();
+    }
+</pre>
+
+<hr size="6">
+<a name="Advanced-usage"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Using-QMathGL" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Subplots" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Advanced-usage-1"></a>
+<h2 class="section">2.2 Advanced usage</h2>
+
+<p>Now I show several non-obvious features of MathGL: several subplots in a single picture, curvilinear coordinates, text printing and so on. Generally you may miss this section at first reading, but I don&rsquo;t recommend it.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Subplots">2.2.1 Subplots</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-grids">2.2.2 Axis and grids</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Curvilinear-coordinates">2.2.3 Curvilinear coordinates</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing-example">2.2.4 Text printing example</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Animation">2.2.5 Animation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Subplots"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Advanced-usage" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-grids" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Subplots-1"></a>
+<h3 class="subsection">2.2.1 Subplots</h3>
+
+<p>Let me demonstrate possibilities of axes transformation. MathGL has the following functions: <code>SubPlot</code>, <code>InPlot</code>, <code>Aspect</code> and <code>Rotate</code> (see section <a href="mathgl_ru_3.html#Transformation-matrix">Матрица преобразования</a>). The order of their calling is strictly determined. First, one changes the position of axes in image area (functions <code>SubPlot</code> and <code>InPlot</code>). After that one may rotate the plot (function <code>Rotate</code>). Finally, one may change aspects of axes (function <code>Aspect</code>). The following code illustrates the aforesaid it:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;SubPlot(2,2,0);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(-1,1.1,1),&quot;Just box&quot;,&quot;rL&quot;);
+        gr-&gt;InPlot(0.2,0.5,0.7,1);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0,1.2,1),&quot;InPlot example&quot;);
+
+        gr-&gt;SubPlot(2,2,1);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Aspect(1,1,1);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(1,1,1.5),&quot;Rotate only&quot;,&quot;rR&quot;);
+
+        gr-&gt;SubPlot(2,2,2);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Aspect(1,1,2);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0,0,2),&quot;Aspect and Rotate&quot;);
+
+        gr-&gt;SubPlot(2,2,3);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Aspect(1,2,2);
+        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0,0,1.5),&quot;Aspect in other direction&quot;);
+        return 0;
+    }
+</pre><p>Here I used function <code>Puts</code> for printing the text in arbitrary position of picture (see section <a href="mathgl_ru_3.html#Text-printing">Вывод текста</a>). Text coordinates and size are connected with axes. However, text coordinates may be everywhere, including the outside the bounding box. I shall show its features later in See section <a href="#Text-printing-example">Text printing example</a>.
+</p>
+<div class="float">
+<img src="../png/sample1.png" alt="../png/sample1">
+
+</div><p><strong>Example of several subplots on the single picture.
+</strong>
+</p>
+<hr size="6">
+<a name="Axis-and-grids"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Subplots" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Curvilinear-coordinates" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-and-grids-1"></a>
+<h3 class="subsection">2.2.2 Axis and grids</h3>
+
+<p>MathGL library can draw not only the bounding box but also the axes, grids, labels and so on. The limits of axes and their origin (the point of intersection) are determined by function <code>Axis()</code>. Also you can use <code>XRange(), YRange(), ZRange()</code> functions (see section <a href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">Масштаб осей координат</a>). Ticks on axis are specified by function <code>SetTicks</code> (see section <a href="mathgl_ru_3.html#Ticks">Метки осей</a>). First argument the direction for each change will be applied. Second argument gives the step between ticks (if positive) or gives the number of ticks on the axis (if negative) or set to use logarithmic ticks (if zero). Third argument gives numbers of sub-ticks between ticks (default is zero). Last argument define the initial ticks position.
+</p>
+<p>Function <code>Axis</code> draws axes. Its textual string shows in which directions the axis or axes will be drawn (by default <code>&quot;xyz&quot;</code>, function draws axes in all directions). Function <code>Grid</code> draws grid perpendicularly to specified directions. Example of axes and grid drawing is:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;SubPlot(2,2,0);
+        gr-&gt;SetTicks('x', 0.4, 3);  // sets tick step to 0.5
+        gr-&gt;SetTicks('y', 0.4, 3);  // and draws 3 subticks
+        gr-&gt;Box();                  // should be after the ticks change
+        gr-&gt;Axis(&quot;xy&quot;);
+        gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Axis and grid&quot;);
+
+        gr-&gt;SetTicks('x');  gr-&gt;SetTicks('y'); // restore back
+        gr-&gt;Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(0,0,0));
+
+        gr-&gt;SubPlot(2,2,1);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Axis();
+        gr-&gt;Label('x',&quot;x&quot;);
+        gr-&gt;Label('y',&quot;y&quot;);
+        gr-&gt;Label('z',&quot;z&quot;);
+        gr-&gt;Puts(mglPoint(0,0,1.5),&quot;Axis and labels&quot;);
+
+        gr-&gt;SubPlot(2,2,2);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;SetTicks('x', 0.2); gr-&gt;SetTicks('y', 0.2);
+        gr-&gt;SetTicks('z', 0.2); // too low step of ticks
+        gr-&gt;Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,-1,-1));
+        gr-&gt;Axis();
+        gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,0,1.5),&quot;Shift origin and add grid&quot;);
+        gr-&gt;Puts(mglPoint(0,0,1.2),&quot;(note, too many ticks)&quot;);
+
+        gr-&gt;SubPlot(2,2,3);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;SetTicks('x', -6);  // decrease the number of ticks
+        gr-&gt;SetTicks('y', -6);
+        gr-&gt;Axis(&quot;yz&quot;);
+        gr-&gt;Label('y',&quot;Y axis&quot;,0);
+        gr-&gt;Label('z',&quot;Z axis&quot;,0);
+        gr-&gt;Puts(mglPoint(0,0,1.5),&quot;Remove X axis, and&quot;);
+        gr-&gt;Puts(mglPoint(0,0,1.2),&quot;decrease number of ticks&quot;);
+        return 0;
+    }
+</pre>
+<p>This example shows the importance of the correct choosing of the number of ticks on axis. If tick step is too small then its text may overlap and becomes unreadable. This code has the example of <code>Label</code> function. It draws label for axis in specified direction. The text position on axis is specified by third argument of <code>Label</code> function. If it is positive then then text is drawn near the axis maximum, if negative then the same takes place near the minimum of axis, if zero - then at the center of axis.
+</p>
+<div class="float">
+<img src="../png/sample2.png" alt="../png/sample2">
+
+</div><p><strong>Example of setting up axis range and axis ticks.
+</strong>
+</p>
+<hr size="6">
+<a name="Curvilinear-coordinates"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-grids" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing-example" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Curvilinear-coordinates-1"></a>
+<h3 class="subsection">2.2.3 Curvilinear coordinates</h3>
+
+
+<p>Now let use curvilinear coordinates. In difference from other systems of plot creation, MathGL uses textual formulas for connection of the old (data) and new (output) coordinates. This allows one to plot in arbitrary coordinates. The following code plots the line <var>y</var>=0, <var>z</var>=0 in Cartesian, polar, parabolic and spiral coordinates:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData x(50),y(50),z(50);
+        y.Fill(0.5,0.5);
+        x.Fill(-1,1);           // creates data arrays
+
+        gr-&gt;Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,1,-1));
+        gr-&gt;dz = 0.5;           // sets tick step to 0.5
+
+        gr-&gt;SubPlot(2,2,0);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Plot(x,y,z,&quot;r2&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Cartesian&quot;);
+
+        gr-&gt;SubPlot(2,2,1);
+        gr-&gt;SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,0);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;Plot(x,y,z,&quot;r2&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Cylindrical&quot;);
+
+        gr-&gt;SubPlot(2,2,2);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;SetFunc(&quot;2*y*x&quot;,&quot;y*y - x*x&quot;,0);
+        gr-&gt;Plot(x,y,z,&quot;r2&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Parabolic&quot;);
+
+        gr-&gt;SubPlot(2,2,3);
+        gr-&gt;Rotate(60,40);
+        gr-&gt;SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,&quot;x+z&quot;);
+        gr-&gt;Plot(x,y,z,&quot;r2&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid();
+        gr-&gt;Puts(mglPoint(0,1.3,1),&quot;Spiral&quot;);
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample3.png" alt="../png/sample3">
+
+</div><p><strong>Example of curvilinear coordinates
+</strong>
+</p>
+
+<hr size="6">
+<a name="Text-printing-example"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Curvilinear-coordinates" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Animation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-printing-example-1"></a>
+<h3 class="subsection">2.2.4 Text printing example</h3>
+
+<p>MathGL prints text by vector font. There are functions for manual specifying of text position (like <code>Puts</code>) and for its automatic selection (like <code>Label</code>, <code>Legend</code> and so on). MathGL prints text always in specified position even if it lies outside the bounding box. The default size of font is specified by variables <var>FontSize</var> (see section <a href="mathgl_ru_3.html#Font-settings">Шрифты</a>). However, the actual size of output string depends on position of axes (depends on functions <code>SubPlot</code>, <code>InPlot</code>). The switching of the font style (italic, bold, wire and so on) can be done for the whole string (by function parameter) or inside the string. By default MathGL parses TeX-like commands for symbols and indexes (see see section <a href="mathgl_ru_1.html#Font-styles">Стиль текста</a>). Example of MathGL font drawing is:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        setlocale(LC_CTYPE, &quot;ru_RU.cp1251&quot;);
+        gr-&gt;Puts(mglPoint(0,1),&quot;Text can be in ASCII and in Unicode&quot;);
+        gr-&gt;Puts(mglPoint(0,0.6),&quot;It can be \\wire{wire}, \\big{big} &quot;
+            &quot;or #r{colored}&quot;);
+        gr-&gt;Puts(mglPoint(0,0.2),&quot;One can change style in string: &quot;
+            &quot;\\b{bold}, \\i{italic, \\b{both}}&quot;);
+        gr-&gt;Puts(mglPoint(0,-0.2),&quot;Easy to \\a{overline} or &quot;
+            &quot;\\u{underline}&quot;);
+        gr-&gt;Puts(mglPoint(0,-0.6),&quot;Easy to change indexes &quot;
+            &quot;^{up} _{down} @{center}&quot;);
+        gr-&gt;Puts(mglPoint(0,-1),&quot;It parse TeX: \\int \\alpha \\cdot &quot;
+            &quot;\\sqrt3{sin(\\pi x)^2 + \\gamma_{i_k}} dx&quot;);
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample4.png" alt="../png/sample4">
+
+</div><p><strong>Example of text printing with different font effects
+</strong>
+</p>
+<p>Another example demonstrate the features of TeX formula parsing.
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Puts(mglPoint(0), &quot;\\sqrt{\\frac{\\alpha^{\\gamma^2}+&quot;
+            &quot;\\overset 1{\\big\\infty}}{\\sqrt3{2+b}}}&quot;, 0, -4);
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/samplee.png" alt="../png/samplee">
+
+</div><p><strong>Example of TeX formula parsing
+</strong>
+</p>
+<p>Finally you can change font during execution (this work well for mglGraphZB class only).
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        float h=1.1, d=0.25;
+        gr-&gt;LoadFont(&quot;STIX&quot;);       gr-&gt;Puts(mglPoint(0,h), &quot;default font (STIX)&quot;);
+        gr-&gt;LoadFont(&quot;adventor&quot;);   gr-&gt;Puts(mglPoint(0,h-d), &quot;adventor font&quot;);
+        gr-&gt;LoadFont(&quot;bonum&quot;);      gr-&gt;Puts(mglPoint(0,h-2*d), &quot;bonum font&quot;);
+        gr-&gt;LoadFont(&quot;chorus&quot;);     gr-&gt;Puts(mglPoint(0,h-3*d), &quot;chorus font&quot;);
+        gr-&gt;LoadFont(&quot;cursor&quot;);     gr-&gt;Puts(mglPoint(0,h-4*d), &quot;cursor font&quot;);
+        gr-&gt;LoadFont(&quot;heros&quot;);      gr-&gt;Puts(mglPoint(0,h-5*d), &quot;heros font&quot;);
+        gr-&gt;LoadFont(&quot;heroscn&quot;);    gr-&gt;Puts(mglPoint(0,h-6*d), &quot;heroscn font&quot;);
+        gr-&gt;LoadFont(&quot;pagella&quot;);    gr-&gt;Puts(mglPoint(0,h-7*d), &quot;pagella font&quot;);
+        gr-&gt;LoadFont(&quot;schola&quot;);     gr-&gt;Puts(mglPoint(0,h-8*d), &quot;schola font&quot;);
+        gr-&gt;LoadFont(&quot;termes&quot;);     gr-&gt;Puts(mglPoint(0,h-9*d), &quot;termes font&quot;);
+    }
+</pre>
+<div class="float">
+<img src="../png/fonts.png" alt="../png/fonts">
+
+</div><p><strong>Example of font face changing.
+</strong>
+</p>
+<hr size="6">
+<a name="Animation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing-example" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Animation-1"></a>
+<h3 class="subsection">2.2.5 Animation</h3>
+
+<p>You can make animation by several methods in MathGL: by export in animated GIF, or by save each frame in separate file (usually JPEG) and convert these files into movie. Let me show both methods.
+</p>
+<p>The simplest methods is making animated GIF. There are 3 steps: (1) open GIF file by <code>StartGIF()</code> function; (2) create the frames by calling <code>NewFrame()</code> before and <code>EndFrame()</code> after plotting; (3) close GIF by <code>CloseGIF()</code> function. So the simplest code for &ldquo;running&rdquo; sinusoid will look like this:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData dat(100);
+        char str[32];
+        gr-&gt;StartGIF(&quot;sample.gif&quot;);
+        for(int i=0;i&lt;100;i++)
+        {
+            gr-&gt;NewFrame();     // start frame
+            gr-&gt;Box();          // some plotting
+            sprintf(str,&quot;sin(pi*x+%g*pi)&quot;,0.02*i);
+            dat.Modify(str);
+            gr-&gt;Plot(dat,&quot;b&quot;);
+            gr-&gt;EndFrame();     // end frame
+        }
+        gr-&gt;CloseGIF();
+        return 0;
+    }
+</pre>
+<p>The second way is saving each frame in separate file (usually JPEG) and later make the movie from them. MathGL have special function for saving frames &ndash; it is <code>WriteFrame()</code>. This function save each frame with automatic name &lsquo;<samp>frame0001.jpg, frame0002.jpg</samp>&rsquo; and so on. Here prefix &lsquo;<samp>frame</samp>&rsquo; is defined by <var>PlotId</var> variable of <code>mglGraph</code> class. So the similar code will look like this:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData dat(100);
+        char str[32];
+        for(int i=0;i&lt;100;i++)
+        {
+            gr-&gt;NewFrame();     // start frame
+            gr-&gt;Box();          // some plotting
+            sprintf(str,&quot;sin(pi*x+%g*pi)&quot;,0.02*i);
+            dat.Modify(str);
+            gr-&gt;Plot(dat,&quot;b&quot;);
+            gr-&gt;EndFrame();     // end frame
+            gr-&gt;WriteFrame();   // save frame
+        }
+        return 0;
+    }
+</pre>
+<p>Created files can be converted to movie by help of a lot of programs. For example, you can use ImageMagic (command &lsquo;<samp>convert frame*.jpg movie.mpg</samp>&rsquo;), MPEG library, GIMP and so on.
+</p>
+<p>Finally, you can use <code>mgl2gif</code> tool for doing the same with MGL scripts (see section <a href="mathgl_ru_8.html#Utilities">Утилиты для MGL</a>).
+</p>
+<hr size="6">
+<a name="Data-handling"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Animation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Array-creation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-handling-1"></a>
+<h2 class="section">2.3 Data handling</h2>
+
+<p>Class <code>mglData</code> contains all functions for the data handling in MathGL (see section <a href="mathgl_ru_6.html#mglData-class">Класс mglData</a>). There are several matters why I use class <code>mglData</code> but not a single array: it does not depend on type of data (float or double), sizes of data arrays are kept with data, memory working is simpler and safer.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Array-creation">2.3.1 Array creation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-changing">2.3.2 Data changing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Array-creation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-handling" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-changing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Array-creation-1"></a>
+<h3 class="subsection">2.3.1 Array creation</h3>
+
+<p>One can put the data in <code>mglData</code> instance by several ways. Let us do it for sinus function:
+</p><ul>
+<li>
+one can create external array, fill it and put to <code>mglData</code> variable
+<pre class="verbatim">    double *a = new double[50];
+    for(int i=0;i&lt;50;i++)   a[i] = sin(M_PI*i/49.);
+
+    mglData y;
+    y.Set(a,50);
+</pre>
+</li><li>
+another way is to create <code>mglData</code> instance of the desired size and then to work directly with data in this variable
+<pre class="verbatim">    mglData y(50);
+    for(int i=0;i&lt;50;i++)   y.a[i] = sin(M_PI*i/49.);
+</pre>
+</li><li>
+next way is to fill the data in <code>mglData</code> instance by textual formula with the help of <code>Modify()</code> function
+<pre class="verbatim">    mglData y(50);
+    y.Modify(&quot;sin(pi*x)&quot;);
+</pre>
+</li><li>
+or one may fill the array in some interval and modify it later
+<pre class="verbatim">    mglData y(50);
+    y.Fill(0,M_PI);
+    y.Modify(&quot;sin(u)&quot;);
+</pre>
+</li><li>
+finally it can be loaded from file
+<pre class="verbatim">    FILE *fp=fopen(&quot;sin.dat&quot;,&quot;wt&quot;);   // create file first
+    for(int i=0;i&lt;50;i++)   fprintf(fp,&quot;%g\n&quot;,sin(M_PI*i/49.));
+    fclose(fp);
+
+    mglData y(&quot;sin.dat&quot;);             // load it
+</pre>
+</li><li>
+at this one can read only part of data
+<pre class="verbatim">    FILE *fp-fopen(&quot;sin.dat&quot;,&quot;wt&quot;);   // create large file first
+    for(int i=0;i&lt;70;i++)   fprintf(fp,&quot;%g\n&quot;,sin(M_PI*i/49.));
+    fclose(fp);
+
+    mglData y;
+    y.Read(&quot;sin.dat&quot;,50);             // load it
+</pre></li></ul>
+
+<p>Creation of 2d- and 3d-arrays is mostly the same. But one should keep in mind that class <code>mglData</code> uses flat data representation. For example, matrix 30*40 is presented as flat (1d-) array with length 30*40=1200 (nx=30, ny=40). The element with indexes {i,j} is a[i+nx*j]. So for 2d array we have:
+</p><pre class="verbatim">    mglData z(30,40);
+    for(int i=0;i&lt;30;i++)   for(int j=0;j&lt;40;j++)
+        z.a[i+30*j] = sin(M_PI*i/29.)*sin(M_PI*j/39.);
+</pre><p>or by using <code>Modify()</code> function
+</p><pre class="verbatim">    mglData z(30,40);
+    z.Modify(&quot;sin(pi*x)*cos(pi*y)&quot;);
+</pre>
+<p>The only non-obvious thing here is using multidimensional arrays in C/C++, i.e. arrays defined like <code>float dat[40][30];</code>. Since, formaly this arrays element <code>dat[i]</code> can address the memory in arbitrary place you should use the proper function to convert such arrays to <code>mglData</code> object. For C++ this is functions like <code>mglData::Set(float **dat, int N1, int N2);</code>. For C this is functions like <code>mgl_data_set_float2(HMDT d, const float **dat, int N1, int N2);</code>. At this, you should keep in mind that <code>nx=N2</code> and <code>ny=N1</code> after conversion.
+</p>
+<hr size="6">
+<a name="Data-changing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Array-creation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-changing-1"></a>
+<h3 class="subsection">2.3.2 Data changing</h3>
+
+<p>MathGL has functions for data processing: differentiating, integrating, smoothing and so on (for more detail, see section <a href="mathgl_ru_6.html#mglData-class">Класс mglData</a>). Let us consider some examples. The simplest ones are integration and differentiation. The direction in which operation will be performed is specified by textual string, which may contain symbols &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo;. For example, the call of <code>Diff(&quot;x&quot;)</code> will differentiate data along &lsquo;<samp>x</samp>&rsquo; direction; the call of <code>Integral(&quot;xy&quot;)</code> perform the double integration of data along &lsquo;<samp>x</samp>&rsquo; and &lsquo;<samp>y</samp>&rsquo; directions; the call of <code>Diff2(&quot;xyz&quot;)</code> will apply 3d Laplace operator to data and so on. Example of this operations on 2d array a=x*y is presented in code:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData a(30,40);   a.Modify(&quot;x*y&quot;);
+        gr-&gt;Axis(mglPoint(0,0,0),mglPoint(1,1,1));
+        gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(60,40);
+        gr-&gt;Surf(a);        gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0.7,1,1.2),&quot;a(x,y)&quot;);
+        gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(60,40);
+        a.Diff(&quot;x&quot;);        gr-&gt;Surf(a);      gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0.7,1,1.2),&quot;da/dx&quot;);
+        gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(60,40);
+        a.Integral(&quot;xy&quot;);   gr-&gt;Surf(a);      gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0.7,1,1.2),&quot;\\int da/dx dxdy&quot;);
+        gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(60,40);
+        a.Diff2(&quot;y&quot;);       gr-&gt;Surf(a);      gr-&gt;Box();
+        gr-&gt;Puts(mglPoint(0.7,1,1.2),&quot;\\int {d^2}a/dxdy dx&quot;);
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample6.png" alt="../png/sample6">
+
+</div><p><strong>Example of data differentiation and integration
+</strong>
+</p>
+<p>Data smoothing (function <code>Smooth()</code>) is more interesting and important. This function has 2 main arguments: type of smoothing and its direction. Now 4 methods are supported: <code>SMOOTH_NONE</code> does nothing for delta=0 or approaches data to zero with the step delta, <code>SMOOTH_LINE_3</code> linear averaging by 3 points, <code>SMOOTH_LINE_5</code> linear averaging by 5 points, <code>SMOOTH_QUAD_5</code> quadratic averaging by 5 points. Let me demonstrate it for 1d case:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData y0(30),y1,y2,y3;
+        y0.Modify(&quot;0.4*sin(2*pi*x)+0.3*cos(3*pi*x)-0.4*sin(4*pi*x)+0.2*rnd&quot;);
+
+        y1=y0;  y1.Smooth(SMOOTH_LINE_3);
+        y2=y0;  y2.Smooth(SMOOTH_LINE_5);
+        y3=y0;  y3.Smooth(SMOOTH_QUAD_5);
+
+        gr-&gt;Plot(y0,&quot;k&quot;);   gr-&gt;AddLegend(&quot;NONE&quot;,&quot;k&quot;);
+        gr-&gt;Plot(y1,&quot;r&quot;);   gr-&gt;AddLegend(&quot;LINE_3&quot;,&quot;r&quot;);
+        gr-&gt;Plot(y2,&quot;g&quot;);   gr-&gt;AddLegend(&quot;LINE_5&quot;,&quot;g&quot;);
+        gr-&gt;Plot(y3,&quot;b&quot;);   gr-&gt;AddLegend(&quot;QUAD_5&quot;,&quot;b&quot;);
+        gr-&gt;Legend();       gr-&gt;Box();
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample7.png" alt="../png/sample7">
+
+</div><p><strong>Example of data smoothing
+</strong>
+</p>
+<p>Finally one can create new data arrays on base of the existing one: extract slice, row or column of data (<code>SubData()</code>), summarize along some of direction(s) (<code>Sum()</code>), find distribution of data elements (<code>Hist()</code>). Note, that all these functions are not thread-safe because they use static internal variable for output array. In particular, the using of several of them in arguments of the same function will lead to unpredictable result.
+</p>
+<hr size="6">
+<a name="Data-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-changing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-1D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-plotting-1"></a>
+<h2 class="section">2.4 Data plotting</h2>
+
+<p>Let me now show how to plot the data. MathGL generally has 2 types of plotting functions. Simple variant requires a single data array for plotting, other data (coordinates) are considered uniformly distributed in interval <var>Min</var>*<var>Max</var>. Second variant requires data arrays for all coordinates. It allows one to plot rather complex multivalent curves and surfaces (in case of parametric dependencies). Argument setting to default values allows one to plot data in standard form. Manual arguments setting gives possibility for fine tuning of colors, positions and view of graphics. Note, that the call of drawing function adds something to picture but does not clear the previous plots (as it does in Matlab). Another difference from Matlab is that all setup (like transparency, lightning, axis borders and so on) must be specified <strong>before</strong> plotting functions.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plots-for-1D-data">2.4.1 Plots for 1D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-for-2D-data">2.4.2 Plots for 2D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-for-3D-data">2.4.3 Plots for 3D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surface-transparency">2.4.4 Surface transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Plots-for-1D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-2D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-1D-data-1"></a>
+<h3 class="subsection">2.4.1 Plots for 1D data</h3>
+
+<p>Term &ldquo;1D data&rdquo; means that data depend on single index (parameter) like curve in parametric form {x(i),y(i),z(i)}, i=1...n. There are 5 generally different types of data representations: simple line plot, line plot with filling under it, stairs plot, bar plot and vertical lines (see section <a href="mathgl_ru_3.html#g_t1D-plotting">1D графики</a>). Each type of plotting has similar interface. There are 3D version and two 2D versions. One of last requires single array. The parameters of line and marks (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>) are specified by the string argument. If the string parameter is <code>NULL</code> then solid line with color from palette is used (see section <a href="mathgl_ru_3.html#Palette-and-colors">Палитра и цвета</a>).
+</p>
+<p>Below I shall show the features of 1D plotting on base of <code>Plot()</code> function (see section <a href="mathgl_ru_3.html#Plot">Plot</a>). Let us start from sinus plot:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        mglData y0(50); 	y0.Modify(&quot;sin(pi*(2*x-1))&quot;);
+        gr-&gt;SubPlot(2,2,0);
+        gr-&gt;Plot(y0);   	gr-&gt;Box();
+</pre><p>Style of line is not specified in <code>Plot()</code> function. So MathGL uses the solid line with first color of palette (this is blue). Next subplot shows array <var>y1</var> with 2 rows:
+</p><pre class="verbatim">        gr-&gt;SubPlot(2,2,1);
+        mglData y1(50,2);
+        y1.Modify(&quot;sin(pi*2*x-pi)&quot;);
+        y1.Modify(&quot;cos(pi*2*x-pi)/2&quot;,1);
+        gr-&gt;Plot(y1);   	gr-&gt;Box();
+</pre><p>As previously I did not specify the style of lines. As a result, MathGL again uses solid line with next colors in palette (there are green and red). Now let us plot a circle on the same subplot. The circle is parametric curve <em>x=cos(\pi t), y=sin(\pi t)</em>. I will set the color of the circle (dark yellow, &lsquo;<samp>Y</samp>&rsquo;) and put marks &lsquo;<samp>+</samp>&rsquo; at point position:
+</p><pre class="verbatim">        mglData x(50);  	x.Modify(&quot;cos(pi*2*x-pi)&quot;);
+        gr-&gt;Plot(x,y0,&quot;Y+&quot;);
+</pre><p>Note that solid line is used because I did not specify the type of line. The same picture can be achieved by <code>Plot2()</code> function. Let us draw ellipse by orange dash line:
+</p><pre class="verbatim">        gr-&gt;Plot2(y1,&quot;q|&quot;);
+</pre>
+<p>Drawing in 3D space is mostly the same. Let us draw spiral with default line style. Now its color is 4-th color from palette (this is cyan):
+</p><pre class="verbatim">        gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(60,40);
+        mglData z(50);  	z.Modify(&quot;2*x-1&quot;);
+        gr-&gt;Plot(x,y0,z);	gr-&gt;Box();
+</pre><p>Function <code>Plot3()</code> does 3D curve plot but for single array. Use it to put circle marks on the previous plot:
+</p><pre class="verbatim">        mglData y2(10,3);	y2.Modify(&quot;cos(pi*(2*x-1+y))&quot;);
+        y2.Modify(&quot;2*x-1&quot;,2);
+        gr-&gt;Plot3(y2,&quot;bo &quot;);
+</pre><p>Note that line style is empty &lsquo;<samp> </samp>&rsquo; here. Usage of other 1D plotting functions looks similar:
+</p><pre class="verbatim">        gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(60,40);
+        gr-&gt;Bars(x,y0,z,&quot;r&quot;);	gr-&gt;Box();
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sample8.png" alt="../png/sample8">
+
+</div><p><strong>Example of 1D data plot
+</strong>
+</p>
+<hr size="6">
+<a name="Plots-for-2D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-1D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-3D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-2D-data-1"></a>
+<h3 class="subsection">2.4.2 Plots for 2D data</h3>
+
+<p>Surfaces <code>Surf()</code> and other 2D plots (see section <a href="mathgl_ru_3.html#g_t2D-plotting">2D графики</a>) are drown the same simpler as 1D one. The difference is that the string parameter specifies not by line style but by the color scheme of the plot (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>). Here I draw attention on 4 most interesting color schemes. There is gray scheme where color is changed from black to white (string &lsquo;<samp>kw</samp>&rsquo;) or from white to black (string &lsquo;<samp>wk</samp>&rsquo;). Another scheme is useful for accentuation of negative (by blue color) and positive (by red color) regions on plot (string &lsquo;<samp>&quot;BbwrR&quot;</samp>&rsquo;). Last one is the popular &ldquo;jet&rdquo; scheme (string &lsquo;<samp>&quot;BbcyrR&quot;</samp>&rsquo;).
+</p>
+<p>Now I shall show the example of a surface drawing. At first let us switch lightning on
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Light(true);	gr-&gt;Light(0,mglPoint(0,0,1));
+</pre><p>and draw the surface, considering coordinates x,y to be uniformly distributed in interval <var>Min</var>*<var>Max</var>
+</p><pre class="verbatim">        mglData a0(50,40);
+        a0.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+        gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(60,40);
+        gr-&gt;Surf(a0);		gr-&gt;Box();
+</pre><p>Color scheme was not specified. So previous color scheme is used. In this case it is default color scheme (&ldquo;jet&rdquo;) for the first plot. Next example is a sphere. The sphere is parametrically specified surface:
+</p><pre class="verbatim">        mglData x(50,40),y(50,40),z(50,40);
+        x.Modify(&quot;0.8*sin(2*pi*x)*sin(pi*y)&quot;);
+        y.Modify(&quot;0.8*cos(2*pi*x)*sin(pi*y)&quot;);
+        z.Modify(&quot;0.8*cos(pi*y)&quot;);
+        gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(60,40);
+        gr-&gt;Surf(x,y,z,&quot;BbwrR&quot;);gr-&gt;Box();
+</pre><p>I set color scheme to <code>&quot;BbwrR&quot;</code> that corresponds to red top and blue bottom of the sphere.
+</p>
+<p>Surfaces will be plotted for each of slice of the data if <var>nz</var>&gt;1. Next example draws surfaces for data arrays with <var>nz</var>=3:
+</p><pre class="verbatim">        mglData a1(50,40,3);
+        a1.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+        a1.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))&quot;,1);
+        a1.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;,2);
+        gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(60,40);
+        gr-&gt;Alpha(true);
+        gr-&gt;Surf(a1);		gr-&gt;Box();
+</pre><p>Note, that it may entail a confusion. However, if one will use density plot then the picture will look better:
+</p><pre class="verbatim">        gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(60,40);
+        gr-&gt;Dens(a1);		gr-&gt;Box();
+        return 0;
+    }
+</pre><p>Note, that the previous color scheme is used in last plots because there are no direct specification of the one.
+</p>
+<div class="float">
+<img src="../png/sample9.png" alt="../png/sample9">
+
+</div><p><strong>Example of surface plot for 2D data
+</strong>
+</p>
+<p>Drawing of other 2D plots is analogous. The only peculiarity is the usage of flag &lsquo;<samp>#</samp>&rsquo;. By default this flag switches on the drawing of a grid on plot (<code>Grid()</code> or <code>Mesh()</code> for plots in plain or in volume). However, for isosurfaces (including surfaces of rotation <code>Axial()</code>) this flag switches the  face drawing off. Figure becomes wired. The following code gives example of flag &lsquo;<samp>#</samp>&rsquo; using (compare with normal function drawing as in its description):
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Alpha(true);	gr-&gt;Light(true);	gr-&gt;Light(0,mglPoint(0,0,1));
+        mglData a(30,20);
+        a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+
+        gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);
+        gr-&gt;Surf(a,&quot;BbcyrR#&quot;);		gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);
+        gr-&gt;Dens(a,&quot;BbcyrR#&quot;);		gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);
+        gr-&gt;Cont(a,&quot;BbcyrR#&quot;);		gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);
+        gr-&gt;Axial(a,&quot;BbcyrR#&quot;);		gr-&gt;Box();
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/samplea.png" alt="../png/samplea">
+
+</div><p><strong>Example of 2D data plot with color scheme contained &lsquo;<samp>#</samp>&rsquo; symbol
+</strong>
+</p>
+<hr size="6">
+<a name="Plots-for-3D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-2D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surface-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-3D-data-1"></a>
+<h3 class="subsection">2.4.3 Plots for 3D data</h3>
+
+<p>Drawing procedures for 3D plot looks similarly to 1D and 2D plots described above. There are 3 general types of 3D plots (see section <a href="mathgl_ru_3.html#g_t3D-plotting">3D графики</a>): (i) plots on slices or on projections, (ii) isosurfaces, (iii) cloud-like plots. Plots on slice are clear enough &ndash; one specifies a slice (as its index or as coordinate value) and MathGL draws contour lines or density plot on slice plane. Isosurface gives more information. Isosurface is 3D analogue of the contour line <code>Cont()</code>. It shows the region where data array values exceed specified isosurface level. Plot becomes more informative if one adds transparency, lightning or sets color scheme depending on coordinates. Generalization of isosurface is the cloud-like plot. For this plot the darker color and less transparent regions correspond to higher values of data. Contrary, the regions with low values are transparent. For plotting of the phase of fields (or beams or pulses) one can use isosurface which transparency depends on the other data array (see function <code>Surf3A()</code>). As example of 3D data plots let us draw the Gaussian beam diffraction in space. Beam propagates along <var>x</var> axis:
+</p><pre class="verbatim">    int sample(mglGraph *gr, void *)
+    {
+        gr-&gt;Alpha(true);    gr-&gt;Light(true);
+        gr-&gt;Light(0,mglPoint(0,0,1));
+        mglData a(30,30,30),b(30,30,30);
+        a.Modify(&quot;exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))&quot;);
+        b.Modify(&quot;16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)&quot;);
+        gr-&gt;CAxis(0,1);
+
+        gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(40,60);
+        gr-&gt;Surf3(a,&quot;wgk&quot;); gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(40,60);
+        gr-&gt;DensA(a);       gr-&gt;Box();  gr-&gt;Axis();
+        gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(40,60);
+        gr-&gt;CloudQ(a);      gr-&gt;Box();
+        gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(40,60);
+        gr-&gt;Surf3A(b,a,&quot;q&quot;);gr-&gt;Box();
+        return 0;
+    }
+</pre>
+<div class="float">
+<img src="../png/sampleb.png" alt="../png/sampleb">
+
+</div><p><strong>Example of Gaussian beam diffraction (3D data)
+</strong>
+</p>
+
+<hr size="6">
+<a name="Surface-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-3D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#C_002fFortran-interface" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surface-transparency-1"></a>
+<h3 class="subsection">2.4.4 Surface transparency</h3>
+
+<p>MathGL library has advanced features for setting and handling the surface transparency. The simplest way to add transparency is the using of function <code>Alpha()</code>. As a result, all further surfaces (and isosurfaces, density plots and so on) become transparent. However, their  look can be additionally improved.
+</p>
+<p>First, the selected surface will be non-transparent if one sets the flag <code>Transparent</code> before the surface drawing and sets it off after the drawing.
+</p>
+<p>Second, the value of transparency can be different from surface to surface. To do it just change the value of <code>AlphaDef</code> before the drawing of the selected surface. If its value is close to 0 then the surface becomes more and more transparent. Contrary, if its value is close to 1 then the surface becomes practically non-transparent. This is some analogue of <code>Transparent=true</code>.
+</p>
+<p>Third feature is the changing of the way how the light goes through overlapped surfaces. The variable <code>TranspType</code> defines it. By default the usual transparency is used (<code>TranspType=0</code>) &ndash; surfaces below is less visible than the upper ones. A &ldquo;glass-like&rdquo; transparency (<code>TranspType=1</code>) has a different look when the surface just decreases the background light (the surfaces are commutable in this case).
+</p>
+<p>A &ldquo;neon-like&rdquo; transparency (<code>TranspType=2</code>) has more interesting look. In this case a surface is the light source (like a lamp on the dark background) and just adds some intensity to the color. At this, the library sets automatically the black color for the background and changes the default line color to white.
+</p>
+<p>As example I shall show the variant of plot from <a href="#Plots-for-2D-data">Plots for 2D data</a> (grid drawing is disabled) for different types of transparency.
+</p><div class="float">
+<img src="../png/type0.png" alt="../png/type0">
+
+</div><p><strong>Example of <code>TranspType=0</code>.
+</strong>
+</p><div class="float">
+<img src="../png/type1.png" alt="../png/type1">
+
+</div><p><strong>Example of <code>TranspType=1</code>.
+</strong>
+</p><div class="float">
+<img src="../png/type2.png" alt="../png/type2">
+
+</div><p><strong>Example of <code>TranspType=2</code>.
+</strong>
+</p>
+<hr size="6">
+<a name="C_002fFortran-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surface-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-and-PyQt" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="C_002fFortran-interface-1"></a>
+<h2 class="section">2.5 C/Fortran interface</h2>
+
+<p>The usage of pure C or Fortran or any similar interfaces (see section <a href="mathgl_ru_1.html#C-interface">C интерфейс</a>) is practically identical to classes usage. But there are some differences. C functions must have argument HMGL (for graphics) and/or HMDT (for data arrays) which specifies the object for drawing or manipulating (changing). Fortran users may regard these variables as integer. So, firstly the user has to create this object by function mgl_create_*() and has to delete it after the using by function mgl_delete_*().
+</p>
+<p>Also, all arguments of C function have to be defined. So there are several functions with practically identical names doing practically the same. But some of them have simplified interface for the quick plotting and some of them have access to all plotting parameters for manual tunning.
+</p>
+<p>As an example of C function usage let me draw the plot from <a href="#Plots-for-2D-data">Plots for 2D data</a>. The C code which does it is shown below:
+</p><pre class="verbatim">    #include &lt;mgl/mgl_c.h&gt;
+    int main()
+    {
+        HMGL gr = mgl_create_graph_zb(600, 400);
+        mgl_set_alpha(gr, true);
+        mgl_set_light(gr, true);
+        HMDT a = mgl_create_data_size(30,20,1);
+        mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+
+        mgl_subplot(gr, 2,2,0);
+        mgl_rotate(gr, 40,60,0);
+        mgl_surf(gr,a,&quot;BbcyrR#&quot;);
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,1);
+        mgl_rotate(gr, 40,60,0);
+        mgl_dens(gr,a,&quot;BbcyrR#&quot;,NAN);
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,2);
+        mgl_rotate(gr, 40,60,0);
+        mgl_cont(gr,a,&quot;BbcyrR#&quot;,7,NAN);
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,3);
+        mgl_rotate(gr, 40,60,0);
+        mgl_axial(gr,a,&quot;BbcyrR#&quot;,3);
+        mgl_box(gr, true);
+
+        /* don't forgot to save graphics */
+        mgl_write_png(gr,&quot;sample.png&quot;,0);
+        return 0;
+    }
+</pre>
+<p>Practically the same simple to create a window. For example let rewrite the code from for window creation (see section <a href="#Using-FLTK_002fGLUT-window">Using FLTK/Qt/GLUT window</a>):
+</p><pre class="verbatim">    int sample(HMGL gr, void *)
+    {
+        mgl_rotate(gr,60,40,0);
+        mgl_box(gr,1);
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mgl_create_graph_fltk(sample, &quot;MathGL examples&quot;, NULL);
+        mgl_fltk_run();
+        return 0;
+    }
+</pre>
+<p>The Fortran code have some peculiarities. Exactly it not allow one to send arbitrary parameter (which was <code>NULL</code> in previous example) to function. This is limitation of Fortran language. So, the corresponding code will be <strong>NOT TESTED NOW!!!</strong>:
+</p><pre class="verbatim">    program TEST
+    integer x,f,func
+        call mgl_create_graph_fltk(sample, 'MathGL examples');
+        call mgl_fltk_run();
+    end program TEST
+ 
+    integer function sample(gr)
+    integer*8 gr
+        call mgl_rotate(gr,60,40,0);
+        call mgl_box(gr,1);
+        sample=0
+    return
+    end
+</pre>
+<hr size="6">
+<a name="MathGL-and-PyQt"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#C_002fFortran-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL-and-PyQt-1"></a>
+<h2 class="section">2.6 MathGL and PyQt</h2>
+
+<p>Generally SWIG based classes (including the Python one) are the same as C++ classes. However, there are few tips for using MathGL with PyQt. Below I place a very simple python code which demonstrate how MathGL can be used with PyQt. This code is mostly written by Prof. Dr. Heino Falcke. You can just copy it to a file <code>mgl-pyqt-test.py</code> and execute it from python shell by command <code>execfile(&quot;mgl-pyqt-test.py&quot;)</code>
+</p>
+<pre class="verbatim">from PyQt4 import QtGui,QtCore
+from mathgl import *
+import sys
+app = QtGui.QApplication(sys.argv)
+qpointf=QtCore.QPointF()
+
+class hfQtPlot(QtGui.QWidget):
+    def __init__(self, parent=None):
+        QtGui.QWidget.__init__(self, parent)
+        self.img=(QtGui.QImage())
+    def setgraph(self,gr):
+        self.buffer='\t' 
+        self.buffer=self.buffer.expandtabs(4*gr.GetWidth()*gr.GetHeight())
+        gr.GetBGRN(self.buffer,len(self.buffer))
+        self.img=QtGui.QImage(self.buffer, gr.GetWidth(),gr.GetHeight(),QtGui.QImage.Format_ARGB32)
+        self.update()
+    def paintEvent(self, event):
+        paint = QtGui.QPainter()
+        paint.begin(self)
+        paint.drawImage(qpointf,self.img)
+        paint.end()
+
+BackgroundColor=[1.0,1.0,1.0]
+size=100
+gr=mglGraph()
+y=mglData(size)
+#y.Modify(&quot;((0.7*cos(2*pi*(x+.2)*500)+0.3)*(rnd*0.5+0.5)+362.135+10000.)&quot;)
+y.Modify(&quot;(cos(2*pi*x*10)+1.1)*1000.*rnd-501&quot;)
+x=mglData(size)
+x.Modify(&quot;x^2&quot;);
+
+def plotpanel(gr,x,y,n):
+    gr.SubPlot(2,2,n)
+    gr.SetXRange(x)
+    gr.SetYRange(y)
+    gr.AdjustTicks()
+    gr.Axis()
+    gr.Box()
+    gr.Label(&quot;x&quot;,&quot;x-Axis&quot;,1)
+    gr.Label(&quot;y&quot;,&quot;y-Axis&quot;,1)
+    gr.ClearLegend()
+    gr.AddLegend(&quot;Legend: &quot;+str(n),&quot;k&quot;)
+    gr.Legend()
+    gr.Plot(x,y)
+
+
+gr.Clf(BackgroundColor[0],BackgroundColor[1],BackgroundColor[2])
+gr.SetPlotFactor(1.5)
+plotpanel(gr,x,y,0)
+y.Modify(&quot;(cos(2*pi*x*10)+1.1)*1000.*rnd-501&quot;)
+plotpanel(gr,x,y,1)
+y.Modify(&quot;(cos(2*pi*x*10)+1.1)*1000.*rnd-501&quot;)
+plotpanel(gr,x,y,2)
+y.Modify(&quot;(cos(2*pi*x*10)+1.1)*1000.*rnd-501&quot;)
+plotpanel(gr,x,y,3)
+
+gr.WritePNG(&quot;test.png&quot;,&quot;Test Plot&quot;)
+
+qw = hfQtPlot()
+qw.show()
+qw.setgraph(gr)
+qw.raise_()
+</pre>
+
+<hr size="6">
+<a name="Hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MathGL-and-PyQt" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t_0060_0060Compound_0027_0027-graphics" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Hints-1"></a>
+<h2 class="section">2.7 Hints</h2>
+
+<p>In this section I have included some small hints and advices for the improving of the quality of plots and for the demonstration of some non-trivial features of MathGL library. In contrast to previous examples I showed mostly the idea but not the whole drawing function. More examples with the source code can be find at <a href="http://mathgl.sf.net/">http://mathgl.sf.net/</a> or in section <a href="mathgl_ru_9.html#Samples">Примеры использования MathGL</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t_0060_0060Compound_0027_0027-graphics">2.7.1 &ldquo;Compound&rdquo; graphics</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Two-axes-in-one-plot">2.7.2 Two axes in one plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Titles-for-the-plot">2.7.3 Titles for the plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Changing-of-the-color-range">2.7.4 Changing of the color range</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Management-of-a-point-cutting">2.7.5 Management of a point cutting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-field-visualization">2.7.6 Vector field visualization</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Several-light-sources">2.7.7 Several light sources</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutMin-and-CutMax-features">2.7.8 CutMin and CutMax features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mapping-visualization">2.7.9 Mapping visualization</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Log_002dscaled-plot">2.7.10 Log-scaled plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t_0060_0060Templates_0027_0027">2.7.11 &ldquo;Templates&rdquo;</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting-hints">2.7.12 Nonlinear fitting hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#PDE-solving-hints">2.7.13 PDE solving hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#MGL-parser-using">2.7.14 MGL parser using</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stereo-image">2.7.15 Stereo image</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="g_t_0060_0060Compound_0027_0027-graphics"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Two-axes-in-one-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Compound_0027_0027-graphics-1"></a>
+<h3 class="subsection">2.7.1 &ldquo;Compound&rdquo; graphics</h3>
+
+<p>As I noted above, MathGL functions (except the special one, like Clf()) do  not erase the previous plotting but just add the new one. It allows one to draw &ldquo;compound&rdquo; plots easily. For example, popular Matlab command <code>surfc</code> can be emulated in MathGL by 2 calls:
+</p><pre class="verbatim">    Surf(a);
+    Cont(a, 0, 7, -1);     // draw contours at z = -1
+</pre><p>Here <var>a</var> is 2-dimensional data for the plotting, <code>-1</code> is the value of z-coordinate at which the contour should be plotted (at the bottom in this example). Analogously, one can draw density plot instead of contour lines and so on.
+</p>
+<p>Another nice plot is contour lines plotted directly on the surface:
+</p><pre class="verbatim">    Light(true);       // switch on light for the surface
+    Surf(a, &quot;BbcyrR&quot;); // select 'jet' colormap for the surface
+    Cont(a, &quot;y&quot;);      // and yellow color for contours
+</pre><p>The possible difficulties arise in black&amp;white case, when the color of the surface can be close to the color of a contour line. In that case I may suggest the following code:
+</p><pre class="verbatim">    Light(true);       // switch on light for the surface
+    Surf(a, &quot;kw&quot;);     // select 'gray' colormap for the surface
+    CAxis(-1,0);       // first draw for darker surface colors
+    Cont(a, &quot;w&quot;);      // white contours
+    CAxis(0,1);        // now draw for brighter surface colors
+    Cont(a, &quot;k&quot;);      // black contours
+    CAxis(-1,1);       // return color range to original state
+</pre><p>The idea is to divide the color range on 2 parts (dark and bright) and to select the contrasting color for contour lines for each of part.
+</p>
+<p>Similarly, one can plot flow thread over density plot of vector field amplitude (this is another amusing plot from Matlab) and so on. The list of compound graphics can be prolonged but I hope that the general idea is clear.
+</p>
+<hr size="6">
+<a name="Two-axes-in-one-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t_0060_0060Compound_0027_0027-graphics" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Titles-for-the-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Two-axes-in-one-plot-1"></a>
+<h3 class="subsection">2.7.2 Two axes in one plot</h3>
+
+<p>Developing the previous hint one can make a plot with 2 or more axes. The idea is that the change of settings does not influence on the already drawn graphics. So, for 2-axes plot let us set the first axis and draw everything concerning it. Then let us setup the second axis and draw things for the second axis. The corresponding code is (see section <a href="mathgl_ru_9.html#g_t2_002daxes-sample">Несколько осей на одном графике</a>):
+</p><pre class="verbatim">    // set up first axis
+    Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,-1,-1));
+    Axis();            // draw it
+    Plot(y1,&quot;b&quot;);      // draw something in first axis
+    // set up second axis
+    Axis(mglPoint(0,0,0),mglPoint(1,1,1),mglPoint(1,1,1));
+    Axis();            // draw it
+    Stem(y2,&quot;r&quot;);      // draw something in second axis
+</pre><p>Note, that the first and the second axes look better if being placed in different corners. In the code presented above the first axis is placed in the left-bottom corner, and the second one is placed in the right-top corner.
+</p>
+<hr size="6">
+<a name="Titles-for-the-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Two-axes-in-one-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Changing-of-the-color-range" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Titles-for-the-plot-1"></a>
+<h3 class="subsection">2.7.3 Titles for the plot</h3>
+
+<p>The printing of nice titles for the plot is not so trivial task in general case. The problem is that the rotation and aspect change lead to different looks for titles of different subplots. So, the resulting look is not so good as it could be. The solution is simple &ndash; to print titles exactly after <code>SubPlot</code>() call and before any rotation, aspect change and so on! Analogously, the title for the whole picture looks better if it is printed first (before any <code>SubPlot()</code> calls). Alternatively you can use function <code>Title()</code> for plotting title for the picture at any time.
+</p>
+<hr size="6">
+<a name="Changing-of-the-color-range"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Titles-for-the-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Management-of-a-point-cutting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Changing-of-the-color-range-1"></a>
+<h3 class="subsection">2.7.4 Changing of the color range</h3>
+
+<p>By default (for the user comfort), the color range is set equal to z-range of the plot. However, there are different ranges. So, one can obtain amusing plot by the change of color range manually. For example, there are plots with one-color bottom (or top) or practically bi-color picture and so on.
+</p>
+<p>For example, compare 2 surfaces:
+</p><pre class="verbatim">    SubPlot(2,1,0)
+    Surf(a);           // usual coloring range
+    SubPlot(2,1,1)
+    CAxis(0,1);
+    Surf(a);           // bottom of the surface have one-colour filling
+</pre>
+<hr size="6">
+<a name="Management-of-a-point-cutting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Changing-of-the-color-range" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-field-visualization" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Management-of-a-point-cutting-1"></a>
+<h3 class="subsection">2.7.5 Management of a point cutting</h3>
+
+<p>Sometimes an experimental or numerical surface has outstanding points. Visualization of such surface will lead to the hole(s) in place of such points. The standard method of &ldquo;fighting&rdquo;  &ndash; to change data values &ndash; is not always good and is not so convenient. MathGL library has another method &ndash; to set variable <code>Cut=false</code>. As a consequence, all outstanding points will be projected on the bounding box.
+</p>
+<p>Such method is good not only for outstanding points but also for the case when one need to plane the bottom or the top of the plot. Exactly such case is demonstrated in the code:
+</p><pre class="verbatim">        mglData a(20,30);  // create some data
+        a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+        // set lower border above the data minimal value
+        Axis(mglPoint(-1,-1,0),mglPoint(1,1,1));
+        Cut = false;       // set off cutting flag
+`       Surf(a);           // and draw the surface
+</pre><p>It is an interesting result, is not it?
+</p>
+<hr size="6">
+<a name="Vector-field-visualization"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Management-of-a-point-cutting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Several-light-sources" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vector-field-visualization-1"></a>
+<h3 class="subsection">2.7.6 Vector field visualization</h3>
+
+<p>Vector field visualization (especially in 3d case <code>Vect3</code> or <code>VectC</code>) may look tangly &ndash; there are too many overlapping lines. I may suggest 2 ways to solve this problem. The first one is to change <code>MeshNum</code> for decreasing the number of hachures. The second way is to use the flow thread chart <code>Flow</code>. Unfortunately, I don&rsquo;t know any other methods to visualize 3d vector field. If you know any, e-mail me and I shall add it to MatGL.
+</p>
+<hr size="6">
+<a name="Several-light-sources"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-field-visualization" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutMin-and-CutMax-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Several-light-sources-1"></a>
+<h3 class="subsection">2.7.7 Several light sources</h3>
+
+<p>In contrast to the most of other programs, MathGL supports several (up to 10) light sources. Moreover, the color each of them can be different: white (this is usual), yellow, red, cyan, green and so on. The use of several light sources may be interesting for the highlighting of some peculiarities of the plot or just to make an amusing picture. Note, each light source can be switched on/off individually (see section <a href="mathgl_ru_9.html#Several-light-sample">Несколько источников света</a>).
+</p>
+<hr size="6">
+<a name="CutMin-and-CutMax-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Several-light-sources" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mapping-visualization" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutMin-and-CutMax-features-1"></a>
+<h3 class="subsection">2.7.8 CutMin and CutMax features</h3>
+
+<p>MathGL library has a feature for cutting of points in some region <var>CutMin*CutMax</var>. Such an excision can be used to improve the look of the graphics. Moreover, this cutting may help to show an internal structure of an object (like <code>isocaps</code> plot in Matlab). For example, let us use the standard 3D data array and show its interior (see section <a href="mathgl_ru_9.html#CutMinMax-sample">CutMinMax &ndash; пример использования</a>).
+</p>
+<pre class="verbatim">    mglData  c(61,51,40);      // create the data
+    mglData v(10);	v.Fill(-0.5,1);
+    c.Modify(&quot;(-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1))&quot;);
+    gr-&gt;CutMin = mglPoint(0,-1,-1);     gr-&gt;CutMax = mglPoint(1,0,1.1);
+    gr-&gt;Surf3(-0.5,c,&quot;BbcyrR&quot;);
+    gr-&gt;ContF3(v,c,'x',-1,&quot;BbcyrR&quot;);    gr-&gt;ContF3(v,c,'y',-1,&quot;BbcyrR&quot;);
+    gr-&gt;ContF3(v,c,'z',0,&quot;BbcyrR&quot;);     gr-&gt;ContF3(v,c,'z',39,&quot;BbcyrR&quot;);
+</pre>
+<p>One can also exclude points from arbitrary area in space. This area defined by textual formula <code>CutOff()</code> (see section <a href="mathgl_ru_3.html#Cutting">Обрезание</a>). The algorithm is the same as shown for &ldquo;rectangular cutting&rdquo;.
+</p>
+<hr size="6">
+<a name="Mapping-visualization"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutMin-and-CutMax-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Log_002dscaled-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mapping-visualization-1"></a>
+<h3 class="subsection">2.7.9 Mapping visualization</h3>
+
+<p>Sometime ago I worked with mapping and have a question about its visualization. Let me remember you that mapping is some transformation rule for one set of number to another one. The 1d mapping is just an ordinary function &ndash; it takes a number and transforms it to another one. The 2d mapping (which I used) is a pair of functions which take 2 numbers and transform them to another 2 ones. Except general plots (like <code>SurfC</code>, <code>SurfA</code>) there is a special plot &ndash; Arnold diagram. It shows the area which is the result of mapping of some initial area (usually square).
+</p>
+<p>I tried to make such plot in <code>Map</code>. It shows the set of points or set of faces, which final position is the result of mapping. At this, the color gives information about their initial position and the height describes Jacobian value of the transformation. Unfortunately, it looks good only for the simplest mapping but for the  real multivalent quasi-chaotic mapping it produces a confusion. So, use it if you like :).
+</p>
+<hr size="6">
+<a name="Log_002dscaled-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mapping-visualization" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t_0060_0060Templates_0027_0027" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Log_002dscaled-plot-1"></a>
+<h3 class="subsection">2.7.10 Log-scaled plot</h3>
+
+<p>Log-scaled plot can be drawn by 2 steps. First, one should change the scale of axis by call <code>SetFunc(&quot;lg(x)&quot;, &quot;lg(y)&quot;);</code> (in this example, x- and y-axis will be log-scaled). Second, one should set logarithmic scale for axis ticks by changing variables: <code>SetTicks('x',0); SetTicks('y',0);</code>. Finally, one should check (or change) the axis ranges and origin so that their values to be positive. For example of log-log plot see section <a href="mathgl_ru_9.html#Log_002dlog-sample">Log-log &ndash; пример использования</a>.
+</p>
+<hr size="6">
+<a name="g_t_0060_0060Templates_0027_0027"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Log_002dscaled-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting-hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Templates_0027_0027-1"></a>
+<h3 class="subsection">2.7.11 &ldquo;Templates&rdquo;</h3>
+
+<p>As I have noted before, the change of settings will influence only for the further plotting commands. This allows one to create template function which will contain settings and primitive drawing for often used plots. Correspondingly one may call this template-function for drawing simplification.
+</p>
+<p>For example, let one has a set of points (experimental or numerical) and wants to compare it with theoretical law (for example, with exponent law <em>\exp(-x/2), x \in [0, 20]</em>). The template-function for this task is:
+</p><pre class="verbatim">    void template(mglGraph *gr)
+    {
+        mglData  law(100);      // create the law
+        law.Modify(&quot;exp(-10*x)&quot;);
+        gr-&gt;Axis(mglPoint(0,0.0001), mglPoint(20,1), mglPoint(0,0.0001));
+        gr-&gt;SetFunc(0,&quot;lg(y)&quot;,0);   gr-&gt;dy = 0;
+        gr-&gt;Plot(law,&quot;r2&quot;);
+        gr-&gt;Text(mglPoint(10,0.2),&quot;Theoretical law: e^x&quot;,&quot;rL&quot;);
+        gr-&gt;Label('x',&quot;x val.&quot;); gr-&gt;Label('y',&quot;y val.&quot;);
+        gr-&gt;Axis(); gr-&gt;Grid(&quot;xy&quot;,&quot;g;&quot;); gr-&gt;Box();
+    }
+</pre><p>At this, one will only write a few lines for data drawing:
+</p><pre class="verbatim">    template(gr);     // apply settings and default drawing from template
+    mglData dat(&quot;fname.dat&quot;); // load the data
+    // and draw it (suppose that data file have 2 columns)
+    gr-&gt;Plot(dat.SubData(0),dat.SubData(1),&quot;bx &quot;);
+</pre><p>A template-function can also contain settings for font, transparency, lightning, color scheme and so on.
+</p>
+<hr size="6">
+<a name="Nonlinear-fitting-hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t_0060_0060Templates_0027_0027" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#PDE-solving-hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-hints-1"></a>
+<h3 class="subsection">2.7.12 Nonlinear fitting hints</h3>
+
+<p>Nonlinear fitting is rather simple. All that you need is the data to fit, the approximation formula and the list of coefficients to fit (better with its initial guess values). Let me demonstrate it on the following simple example (see section <a href="mathgl_ru_9.html#Fitting-sample">Fitting &ndash; пример использования</a>). First, let us use sin function with some random noise:
+</p><pre class="verbatim">    mglData rnd(100), idl(50); //data to be fitted and ideal data
+    rnd.Modify(&quot;0.4*rnd+0.1+sin(4*pi*x)&quot;);
+    idl.Modify(&quot;0.3+sin(4*pi*x)&quot;);
+</pre><p>and plot it to see that data we will fit
+</p><pre class="verbatim">    gr-&gt;Axis(mglPoint(-1,-2), mglPoint(1,2));
+    gr-&gt;Plot(rnd, &quot;. &quot;); gr-&gt;Plot(idl, &quot;b&quot;);
+    gr-&gt;Box();
+    gr-&gt;Text(mglPoint(0,2.2), &quot;initial: y = 0.3+sin(2\pi x)&quot;, &quot;C:b&quot;, -1);
+</pre>
+<p>The next step is the fitting itself. For that let me specify an initial values <var>ini</var> for coefficients &lsquo;<samp>abc</samp>&rsquo; and do the fitting for approximation formula &lsquo;<samp>a+b*sin(c*x)</samp>&rsquo;
+</p><pre class="verbatim">    mglData res;   // The data for found formula
+    float ini[3] = {1, 1, 3};
+    gr-&gt;Fit(res, rnd, &quot;a+b*sin(c*x)&quot;, &quot;abc&quot;, ini);
+</pre><p>Now display it
+</p><pre class="verbatim">    gr-&gt;Plot(res, &quot;r&quot;);
+    gr-&gt;Text(mglPoint(-1,-1.3), &quot;fitted:&quot;, &quot;L:r&quot;, -1);
+    gr-&gt;PutsFit(mglPoint(0,-1.8), &quot;y = &quot;, &quot;C:r&quot;, -1);
+</pre>
+<p>NOTE! the fitting results may have strong dependence on initial values for coefficients due to algorithm features. The problem is that in general case there are several local &quot;optimums&quot; for coefficients and the program returns only first found one! There are no guaranties that it will be the best. Try for example to set <code>ini[3] = {0, 0, 0}</code> in the code above.
+</p>
+<hr size="6">
+<a name="PDE-solving-hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting-hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-parser-using" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="PDE-solving-hints-1"></a>
+<h3 class="subsection">2.7.13 PDE solving hints</h3>
+
+<p>Solving of Partial Differential Equations (PDE, including beam tracing) and ray tracing (or finding particle trajectory) are more or less common task. So, MathGL have several functions for that. There are <code>mglRay()</code> for ray tracing, <code>mglPDE()</code> for PDE solving, <code>mglQO2d()</code> for beam tracing in 2D case (see section <a href="mathgl_ru_6.html#Global-functions">Глобальные функции</a>). Note, that these functions take &ldquo;Hamiltonian&rdquo; or equations as string values. And I don&rsquo;t plan now to allow one to use user-defined functions. There are 2 reasons: the complexity of corresponding interface; and the basic nature of used methods which are good for samples but may not good for serious scientific calculations.
+</p>
+<p>The ray tracing can be done by <code>mglRay()</code> function. Really ray tracing equation is Hamiltonian equation for 3D space. So, the function can be also used for finding a particle trajectory (i.e. solve Hamiltonian ODE) for 1D, 2D or 3D cases. The function have a set of arguments. First of all, it is Hamiltonian which defined the media (or the equation) you are planning to use. The Hamiltonian is defined by string which may depend on coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, time &lsquo;<samp>t</samp>&rsquo; (for particle dynamics) and momentums &lsquo;<samp>p</samp>&rsquo;=<em>p_x</em>, &lsquo;<samp>q</samp>&rsquo;=<em>p_y</em>, &lsquo;<samp>v</samp>&rsquo;=<em>p_z</em>. Next, you have to define the initial conditions for coordinates and momentums at &lsquo;<samp>t</samp>&rsquo;=0 and set the integrations step (default is 0.1) and its duration (default is 10). The Runge-Kutta method of 4-th order is used for integration.
+</p><pre class="verbatim">    mglData r,a,re(128),im(128);
+    r = mglRay(&quot;p^2+q^2-x-1&quot;, mglPoint(-0.7, -1), mglPoint(0, 0.5));
+    gr-&gt;Plot(r.SubData(0), r.SubData(1));
+</pre><p>This example calculate the reflection from linear layer (media with Hamiltonian &lsquo;<samp>p^2+q^2-x-1</samp>&rsquo;=<em>p_x^2+p_y^2-x-1</em>). This is parabolic curve. The resulting array have 7 columns which contain data for {x,y,z,p,q,v,t}.
+</p>
+<p>The solution of PDE is a bit more complicated. As previous you have to specify the equation as pseudo-differential operator <em>\hat H(x, \nabla)</em> which is called sometime as &ldquo;Hamiltonian&rdquo; (for example, in beam tracing). As previously, it is defined by string which may depend on coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; (but not time!), momentums &lsquo;<samp>p</samp>&rsquo;=<em>(d/dx)/i k_0</em>, &lsquo;<samp>q</samp>&rsquo;=<em>(d/dy)/i k_0</em> and field amplitude &lsquo;<samp>u</samp>&rsquo;=<em>|u|</em>. The evolutionary coordinate is &lsquo;<samp>z</samp>&rsquo; in all cases. So that, the equation look like <em>du/dz = ik_0 H(x,y,\hat p, \hat q, |u|)[u]</em>. Dependence on field amplitude &lsquo;<samp>u</samp>&rsquo;=<em>|u|</em> allows one to solve nonlinear problems too. For example, for nonlinear Shrodinger equation you may set <code>ham=&quot;p^2 + q^2 - u^2&quot;</code>. Also you may specify imaginary part for wave absorption, like <code>ham = &quot;p^2 + i*x*(x&gt;0)&quot;</code>, but only if dependence on variable &lsquo;<samp>i</samp>&rsquo; is linear (i.e. <em>H = Hre+i*Him</em>).
+</p>
+<p>Next step is specifing the initial conditions at &lsquo;<samp>z</samp>&rsquo;=<code>Min.z</code>. The function need 2 arrays for real and for imaginary part. Note, that coordinates x,y,z are supposed to be in specified range [Min, Max]. So, the data arrays should have corresponding scales. Finally, you may set the integration step and paramter k0=<em>k_0</em>. Also keep in mind, that internally the 2 times large box is used (for suppressing numerical reflection from boundaries) and the equation should well defined even in this extended range.
+</p>
+<p>Final comment is concerning the possible form of pseudo-differential operator <em>H</em>. At this moment, simplified form of operator <em>H</em> is supported &ndash; all &ldquo;mixed&rdquo; terms (like &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) are excluded. For example, in 2D case this operator is effectively <em>H = f(p,z) + g(x,z,u)</em>. However commutable combinations (like &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy) are allowed for 3D case. 
+</p>
+<p>So, for example let solve the equation for beam deflected from linear layer and absorbed later. The operator will have the form &lsquo;<samp>&quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;</samp>&rsquo; that correspond to equation <em>ik_0 \partial_z u + \Delta u + x \cdot u + i (x+z)/2 \cdot u = 0</em>. This is typical equation for Electron Cyclotron (EC) absorption in magnetized plasmas. For initial conditions let me select the beam with plane phase front <em>exp(-48*(x+0.7)^2)</em>. The corresponding code looks like this (see section <a href="mathgl_ru_9.html#PDE-sample">PDE &ndash; пример использования</a>):
+</p><pre class="verbatim">    mglData a,re(128),im(128);
+    re.Fill(&quot;exp(-48*(x+0.7)^2)&quot;, gr-&gt;Min, gr-&gt;Max);
+    a = mglPDE(&quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;, re, im,
+                gr-&gt;Min, gr-&gt;Max, 0.01, 30);
+    a.Transpose(&quot;yxz&quot;);
+    gr-&gt;CAxis(0, 1);
+    gr-&gt;Dens(a,&quot;wyrRk&quot;);
+</pre>
+<p>The last example is example of beam tracing. Beam tracing equation is special kind of PDE equation written in coordinates accompanied to a ray. Generally this is the same parameters and limitation as for PDE solving but the coordinates are defined by the ray and by parameter of grid width <var>w</var> in direction transverse the ray. So, you don&rsquo;t need to specify the range of coordinates. <strong>BUT</strong> there is limitation. The accompanied coordinates are well defined only for smooth enough rays, i.e. then the ray curvature <em>K</em> (which is defined as <em>1/K^2 = (|\ddot r|^2 |\dot r|^2 - (\ddot r, \dot r)^2)/|\dot r|^6</em>) is much large then the grid width: <em>K&gt;&gt;w</em>. So, you may receive incorrect results if this condition will be broken.
+</p>
+<p>You may use following code for obtaining the same solution as in previous example:
+</p><pre class="verbatim">    mglData r, xx, yy, a, im(128), re(128);
+    const char *ham = &quot;p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)&quot;;
+    r = mglRay(ham, mglPoint(-0.7, -1), mglPoint(0, 0.5), 0.02, 2);
+    // now start beam tracing
+    re.Fill(&quot;exp(-48*x^2)&quot;, gr-&gt;Min, gr-&gt;Max);
+    a = mglQO2d(ham, re, im, r, 1, 30, &amp;xx, &amp;yy);
+    gr-&gt;CAxis(0, 1);
+    gr-&gt;Dens(xx, yy, a, &quot;wyrRk&quot;);
+</pre>
+
+<hr size="6">
+<a name="MGL-parser-using"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#PDE-solving-hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stereo-image" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MGL-parser-using-1"></a>
+<h3 class="subsection">2.7.14 MGL parser using</h3>
+
+<p>Sometimes you may prefer to use MGL scripts in yours code. It is simpler (especially in comparison with C/Fortran interfaces) and fast way to plot the data with annotations, labels and so on. Class <code>mglParse</code> (see section <a href="mathgl_ru_7.html#mglParse-class">mglParse class</a> parse MGL scripts in C++. It have also the corresponding interface for C/Fortran.
+</p>
+<p>The key function here is <code>mglParse::Parse()</code> (or <code>mgl_parse()</code> for C/Fortran) which execute one command per string. At this the detailed information about the possible errors or warnings is passed as function value. Or you may execute the whole script as long string with lines separated by &lsquo;<samp>\n</samp>&rsquo;. Functions <code>mglParse::Execute()</code> and <code>mgl_parse_text()</code> perform it. Also you may set the values of paramters &lsquo;<samp>$0</samp>&rsquo;...&lsquo;<samp>$9</samp>&rsquo; for the script by functions <code>mglParse::AddParam()</code> or <code>mgl_add_param()</code>, allow/disable picture resizing, check &ldquo;once&rdquo; status and so on. The usage is rather stright-forward.
+</p>
+<p>The only non-obvious thing is data transition between script and yours program. There are 2 stages: add or find variable; and set data to variable. In C++ you may use functions <code>mglParse::AddVar()</code> and <code>mglParse::FindVar()</code> which return pointer to <code>mglVar</code> structure. This structure contain data itself, the variable name and callback function which will be called if variable destroied. Last feature allows you to control the presence of the variable and, for example, close a window with data if this variable is destroyed. In C/Fortran the corresponding functions are <code>mgl_add_var()</code>, <code>mgl_find_var()</code>. But these functions return the data array only. Note, you <strong>must not delete or free</strong> the data obtained from these functions!
+</p>
+<p>So, some simple example at the end. Here I define a data array, create variable, put data into it and plot it. The C++ code looks like this:
+</p><pre class="verbatim">    float a[100];   // let a_i = sin(4*pi*x), x=0...1
+    for(int i=0;i&lt;100;i++)  a[i]=sin(4*M_PI*i/99);
+    mglParse *parser = new mglParse;
+    mglData &amp;d = (parser-&gt;AddVar(&quot;dat&quot;))-&gt;d;
+    d.Set(a,100); // set data to variable
+    parser-&gt;Execute(gr, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+    // you may break script at any line do something 
+    // and continue after that
+    parser-&gt;Execute(gr, &quot;xlabel 'x'\nylabel 'y'&quot;);
+    // also you may use cycles or conditions in script
+    parser-&gt;Execute(gr, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+    gr-&gt;WritePNG(&quot;test.png&quot;);   // don't forgot to save picture
+</pre><p>The code in C/Fortran looks practically the same:
+</p><pre class="verbatim">    float a[100];   // let a_i = sin(4*pi*x), x=0...1
+    int i;
+    for(i=0;i&lt;100;i++)  a[i]=sin(4*M_PI*i/99);
+    HMPR parser = mgl_create_parser();
+    HMDT d = mgl_add_var(parser, &quot;dat&quot;);
+    mgl_data_set_float(d,a,100,1,1);    // set data to variable
+    mgl_parse_text(gr, parser, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+    // you may break script at any line do something 
+    // and continue after that
+    mgl_parse_text(gr, parser, &quot;xlabel 'x'\nylabel 'y'&quot;);
+    // also you may use cycles or conditions in script
+    mgl_parse_text(gr, parser, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+    mgl_write_png(gr, &quot;test.png&quot;, &quot;&quot;);  // don't forgot to save picture
+</pre>
+<hr size="6">
+<a name="Stereo-image"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-parser-using" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stereo-image-1"></a>
+<h3 class="subsection">2.7.15 Stereo image</h3>
+
+<p>One can easily create stereo image in MathGL. Stereo image can be produced by making two subplots with slightly different rotation angles. The corresponding code looks like this (see section <a href="mathgl_ru_9.html#Stereo-image-sample">Пример стерео изображения</a>):
+</p><pre class="verbatim">    gr-&gt;SubPlot(2,1,0);     // left image
+    gr-&gt;Rotate(40,60+3);
+    // draw something here
+    
+    gr-&gt;SubPlot(2,1,1);     // right image
+    gr-&gt;Rotate(40,60-3);
+    // draw the same here
+</pre>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_ru.html/mathgl_ru_3.html b/texinfo/mathgl_ru.html/mathgl_ru_3.html
new file mode 100644
index 0000000..d2befb9
--- /dev/null
+++ b/texinfo/mathgl_ru.html/mathgl_ru_3.html
@@ -0,0 +1,4719 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: 3. Ядро MathGL</title>
+
+<meta name="description" content="MathGL 1.11: 3. Ядро MathGL">
+<meta name="keywords" content="MathGL 1.11: 3. Ядро MathGL">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="MathGL-core"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_2.html#Stereo-image" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_2.html#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="YA_0434_0440_043e-MathGL"></a>
+<h1 class="chapter">3. Ядро MathGL</h1>
+<a name="index-mglGraph"></a>
+
+<p>Основным классом MathGL является класс <strong>mglGraph</strong>, определенный в <code>#include &lt;mgl/mgl.h&gt;</code>. Он включает в себя множество функций для построения графиков от 1D, 2D и 3D массивов. Он также содержит функции вывода текста и построения осей координат. Есть возможность построения в произвольной системе координат, которая  задается строковыми формулами. Все графические функции используют класс mglData (see section <a href="mathgl_ru_6.html#mglData-class">Класс mglData</a>) для хранения массивов данных. Это позволяет легко контролировать размеры, работу с памятью и производить обработку данных. Дополнительная информация о цветах, шрифтах, вычисления формул может быть найдена в <a href="mathgl_ru_7.html#Other-classes">Other classes</a>.
+</p>
+<p>Замечу, что класс mglGraph &ndash; абстрактный класс, содержащий только интерфейсную часть для построения графиков. Он не выполняет собственно построения на конкретное устройство. Для практического использования (при выводе на экран, в память или в файл) используйте производные классы: mglGraphZB для растровых рисунков; mglGraphPS для векторных рисунков (в форматах EPS и/или SVG) и для быстрого, но менее аккуратного рисования растровой картинки; mglGraphGL для рисования с использованием OpenGL; и т.д. see section <a href="mathgl_ru_4.html#Plotter-classes">Классы для отрисовки</a>. Если вы хотите не только построить картинку, но и отобразить ее в окне/органе управления или запустить анимацию, то посмотрите также <a href="mathgl_ru_5.html#Widget-classes">&ldquo;Оконные&rdquo; классы</a>.
+</p>
+<p>Начиная с версии 1.10 есть специальный класс &quot;оболочка&quot; к функциям С-интерфейса. Он также называется <code>mglGraph</code> и определен в файле <code>mgl/mgl_graph.h</code>. Этот класс можно использовать и на не-GNU компиляторах (т.е. в Borland или Microsoft компиляторах), но в этом случае вы <strong>не должны подключать</strong> заголовочные файлы <code>mgl/mgl.h</code> или <code>mgl/mgl_parse.h</code>! Этот класс используется также как базовый класс для интерфейсов на основе SWIG (Python, Octave и пр). Далее в документации функции члены &quot;оболочечного&quot; класса обозначены как &lsquo;<samp>Python</samp>&rsquo; для отделения от оригинального класса &lsquo;<samp>C++</samp>&rsquo;, определенного в <code>mgl/mgl.h</code>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Graphics-setup">3.1 Настройка графика</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-settings">3.2 Настройки осей координат</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transformation-matrix">3.3 Матрица преобразования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Export-to-file">3.4 Экспорт в файл</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Primitives-drawing">3.5 Рисование примитивов</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing">3.6 Вывод текста</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-Colorbar">3.7 Оси и Colorbar</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Legend">3.8 Легенда</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting">3.9 1D графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting">3.10 2D графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting">3.11 3D графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting">3.12 Парные графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-fields">3.13 Векторные поля</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-plotting">3.14 Прочие графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting">3.15 Nonlinear fitting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-distributions">3.16 Распределение данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Frames_002fAnimation">3.17 Кадры/Анимация</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#IDTF-functions">3.18 IDTF функции</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Graphics-setup"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MathGL-core" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041d_0430_0441_0442_0440_043e_0439_043a_0430-g_0440_0430_0444_0438_043a_0430"></a>
+<h2 class="section">3.1 Настройка графика</h2>
+<a name="index-_041d_0430_0441_0442_0440_043e_0439_043a_0430-MathGL"></a>
+
+<p>Функции и переменные в этой группе влияют на вид всего рисунка. Соответственно они должны располагаться <em>перед</em> вызовом функций непосредственно рисующих графики.
+</p>
+<dl>
+<dt><a name="index-DefaultPlotParam"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DefaultPlotParam</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fset_005fdef_005fparam"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_def_param</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Устанавливает все настройки по умолчанию, кроме описанных в <a href="#Zooming">Масштабирование</a>.
+</p></dd></dl>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Transparency">3.1.1 Прозрачность</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lighting">3.1.2 Освещение</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fog">3.1.3 Туман</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Default-sizes">3.1.4 Базовые размеры</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Zooming">3.1.5 Масштабирование</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cutting">3.1.6 Обрезание</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-settings">3.1.7 Шрифты</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Palette-and-colors">3.1.8 Палитра и цвета</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Error-handling">3.1.9 Обработка ошибок</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-settings">3.1.10 Прочие настройки</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Graphics-setup" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lighting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x"></a>
+<h3 class="subsection">3.1.1 Прозрачность</h3>
+<a name="index-Alpha"></a>
+<a name="index-SetAlphaDef"></a>
+<a name="index-SetTransparent"></a>
+<a name="index-SetTranspType"></a>
+
+<p>Эти функции и переменные настраивают тип и степень прозрачности поверхностей. Главной является функция <code>Alpha()</code>, которая включает/выключает прозрачность для всех графиков, созданных после вызова <code>Alpha()</code> (за исключением mglGraphGL). Функция <code>SetAlphaDef</code> устанавливает величину alpha-канала по умолчанию. Прозрачность можно выключить для отдельного графика с помощью <code>SetTransparent</code>. Наконец, функция <code>SetTranspType</code> задает тип прозрачности. См. раздел <a href="mathgl_ru_9.html#Transparent-surface-sample">Transparent surface &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Alpha-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>bool</code> <b>Alpha</b><i> (<code>bool</code> enable)</i></dt>
+<dt><a name="index-mgl_005fset_005falpha"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_alpha</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Включает/выключает прозрачность и возвращает свое предыдущее состояние. По умолчанию прозрачность выключена. Функция включает прозрачность для <em>всего</em> рисунка. Используйте <code>SetTransparent(false)</code> для конкретного графика для выключения прозрачности.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetAlphaDef-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetAlphaDef</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005falpha_005f_043f_043e"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_alpha_по</b><i> умолчанию (<code>HMGL</code> gr, <code>float</code> alpha)</i></dt>
+<dd><p>Задает значение прозрачности по умолчанию для всех графиков. Отмечу, что OpenGL (mglGraphGL) некорректно рисует большое число перекрывающихся прозрачных поверхностей (больше двух).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTransparent-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTransparent</b><i> (<code>bool</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005ftransp"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_transp</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Временно включает/возвращает прозрачность графиков. Это аналог <code>Alpha(val)</code>, но работает более корректно для класса mglGraphGL.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTranspType-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTranspType</b><i> (<code>int</code> type)</i></dt>
+<dt><a name="index-mgl_005fset_005ftransp_005ftype"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_transp_type</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Задает тип прозрачности. Обычная прозрачность (&lsquo;<samp>0</samp>&rsquo;) &ndash; &quot;закрытые&quot; объекты видны меньше чем закрывающие. Этот режим некорректно отображается в OpenGL (mglGraphGL) для нескольких перекрывающихся поверхностей. &quot;Стеклянная&quot; прозрачность (&lsquo;<samp>1</samp>&rsquo;) &ndash; закрытые и закрывающие объекты единообразно ослабляют интенсивность света (по RGB каналам). &quot;Ламповая&quot; прозрачность (&lsquo;<samp>2</samp>&rsquo;) &ndash; закрытые и закрывающие объекты являются источниками дополнительного освещения (рекомендую установить <code>SetAlphaDef(0.3)</code> или меньше в этом случае). See section <a href="mathgl_ru_9.html#Normal-transparency">Обычная прозрачность</a>, <a href="mathgl_ru_9.html#Glass_002dlike-transparency">&quot;Стеклянная&quot; прозрачность</a>, <a href="mathgl_ru_9.html#Lamp_002dlike-transparency">&quot;Ламповая&quot; прозрачность</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AlphaDef-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>float</code> <b>AlphaDef</b></dt>
+<dd><p>Значение прозрачности по умолчанию для всех графиков. См. <code>SetAlphaDef()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Transparent-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>bool</code> <b>Transparent</b></dt>
+<dd><p>Флаг, временно включающий/выключающий прозрачность графиков. См. <code>SetTransparent()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TranspType-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>int</code> <b>TranspType</b></dt>
+<dd><p>Тип прозрачности. См. <code>SetTranspType()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Lighting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fog" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_0432e_0449e_043d_0438e"></a>
+<h3 class="subsection">3.1.2 Освещение</h3>
+<a name="index-Light"></a>
+<a name="index-Ambient"></a>
+<a name="index-AddLight"></a>
+
+<p>Эти функции настраивают освещение графика. Главная функция <code>Light(bool)</code> включает/выключает освещение графиков построенных после ее вызова (в OpenGL работает сразу для всего рисунка). MathGL  поддерживает до 10 независимых источников света. Но в режиме OpenGL можно использовать только первые 8 из них. Положение, цвет, яркость каждого источника света можно задавать по отдельности. По умолчанию включен только первый (с порядковым номером <code>0</code>) источник света белого цвета, расположенный сверху.
+</p>
+<dl>
+<dt><a name="index-Light-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>bool</code> <b>Light</b><i> (<code>bool</code> enable)</i></dt>
+<dt><a name="index-mgl_005fset_005flight"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_light</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Включает/выключает освещение графика и возвращает предыдущее состояние. По умолчанию освещение выключено.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Light-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Light</b><i> (<code>int</code> n, <code>bool</code> enable)</i></dt>
+<dt><a name="index-mgl_005fset_005flight_005fn"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_light_n</b><i> (<code>HMGL</code> gr, <code>int</code> n, <code>int</code> enable)</i></dt>
+<dd><p>Включает/выключает <var>n</var>-ый источник света.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AddLight-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>AddLight</b><i> (<code>int</code> n, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> c=<code>'w'</code>)</i></dt>
+<dt><a name="index-Light-3"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Light</b><i> (<code>int</code> n, <code>mglPoint</code> p, <code>char</code> c=<code>'w'</code>, <code>float</code> bright=<code>0.5</code>, <code>bool</code> infty=<code>true</code>)</i></dt>
+<dt><a name="index-Light-4"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Light</b><i> (<code>int</code> n, <code>mglPoint</code> p, <code>mglColor</code> c, <code>float</code> bright=<code>0.5</code>, <code>bool</code> infty=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fadd_005flight"></a><u>Функция С:</u> <code>void</code> <b>mgl_add_light</b><i> (<code>HMGL</code> gr, <code>int</code> n, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> c)</i></dt>
+<dd><p>Добавляет источник света с номером <var>n</var> в положение <var>p</var> с цветом <var>c</var> и яркостью <var>bright</var>, которая должна быть в диапазоне [0,1]. Флаг <var>infty</var>=<code>true</code> делает источник бесконечно удаленным (для более быстрого рисования).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Ambient-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Ambient</b><i> (<code>float</code> bright=<code>0.5</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fambbr"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_ambbr</b><i> (<code>HMGL</code> gr, <code>float</code> bright)</i></dt>
+<dd><p>Задает яркость рассеянного освещения. Значение должно быть в диапазоне [0,1].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fog"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lighting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Default-sizes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0422_0443_043c_0430_043d"></a>
+<h3 class="subsection">3.1.3 Туман</h3>
+<a name="index-Fog"></a>
+
+<dl>
+<dt><a name="index-Fog-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Fog</b><i> (<code>float</code> d, <code>float</code> dz=<code>0.25</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005ffog"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_fog</b><i> (<code>HMGL</code> gr, <code>float</code> d, <code>float</code> dz)</i></dt>
+<dd><p>Имитирует туман на графике. Туман начинается на относительном расстоянии <var>dz</var> от точки обзора и его плотность растет экспоненциально вглубь по закону ~<em>1-exp(-d*z)</em>. Здесь <em>z</em> &ndash; нормализованная на 1 глубина графика. Если <var>d</var>=<code>0</code> то туман отсутствует. См. раздел <a href="mathgl_ru_9.html#Surface-in-fog-sample">Surface in fog &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Default-sizes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fog" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Zooming" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0411_0430_0437_043e_0432_044be-_0440_0430_0437_043ce_0440_044b"></a>
+<h3 class="subsection">3.1.4 Базовые размеры</h3>
+<a name="index-SetTickLen"></a>
+<a name="index-SetTickStl"></a>
+<a name="index-SetBarWidth"></a>
+<a name="index-SetMarkSize"></a>
+<a name="index-SetArrowSize"></a>
+<a name="index-SetBaseLineWidth"></a>
+
+<p>Эти функции задают величины большинства параметров графика, включая размеры маркеров, стрелок, толщину линий и т.д. Как и любые другие настройки, они подействуют только на графики созданные после изменения настроек.
+</p>
+<dl>
+<dt><a name="index-SetBarWidth-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetBarWidth</b><i> ( <code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fbar_005fwidth"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_bar_width</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Задает относительный размер прямоугольников в Bars, Barh, BoxPlot (see section <a href="#Bars">Bars</a>). Значение по умолчанию <code>0.7</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetMarkSize-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetMarkSize</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fmark_005fsize"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_mark_size</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Задает размер маркеров для <a href="#g_t1D-plotting">1D графики</a>. Значение по умолчанию <code>0.02</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetArrowSize-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetArrowSize</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005farrow_005fsize"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_arrow_size</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Задает размер стрелок для <a href="#g_t1D-plotting">1D графики</a>, линий и кривых (see section <a href="#Primitives-drawing">Рисование примитивов</a>). Значение по умолчанию <code>0.03</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetBaseLineWidth-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetBaseLineWidth</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fbase_005fline_005fwidth"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_base_line_width</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Задает базовую толщину линий. Значения &lt;1 игнорируются. Для значений &gt;1 реальная толщина получается перемножением указанной ширины линии на данное значение. Увеличение ширины линии актуально для больших растровых рисунков. Значение по умолчанию <code>1</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTickLen-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTickLen</b><i> (<code>float</code> val, <code>float</code> stt=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005ftick_005flen"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_tick_len</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>float</code> stt)</i></dt>
+<dd><p>Задает относительную длину меток осей координат. Значение по умолчанию <code>0.1</code>. Параметр <var>stt</var>&gt;0 задает относительную длину подметок, которые в <code>sqrt(1+stt)</code> раз меньше.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTickStl-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTickStl</b><i> (<code>const char *</code>stl, <code>const char *</code>sub=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005ftick_005fstl"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_tick_stl</b><i> (<code>HMGL</code> gr, <code>const char *</code>stl, <code>const char *</code>sub)</i></dt>
+<dd><p>Задает стиль меток (<var>stl</var>) и подметок (<var>sub</var>) осей координат. Если <var>stl</var> пустая или ноль, то используется стиль по умолчанию (&lsquo;<samp>k</samp>&rsquo; или &lsquo;<samp>w</samp>&rsquo; в зависимости от типа прозрачности). Если <var>sub</var> пустая или ноль, то используется стиль меток (т.е. <var>stl</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-BarWidth-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>float</code> <b>BarWidth</b></dt>
+<dd><p>Относительная ширина боксов. См. <code>SetBarWidth()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-MarkSize-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>float</code> <b>MarkSize</b></dt>
+<dd><p>Размер маркеров. См. <code>SetMarkSize()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ArrowSize-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>float</code> <b>ArrowSize</b></dt>
+<dd><p>Размер стрелок. См. <code>SetArrowSize()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-BaseLineWidth-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>float</code> <b>BaseLineWidth</b></dt>
+<dd><p>Базовая ширина линий. См. <code>SetBaseLineWidth()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Zooming"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Default-sizes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cutting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041c_0430_0441_0448_0442_0430_0431_0438_0440_043e_0432_0430_043d_0438e"></a>
+<h3 class="subsection">3.1.5 Масштабирование</h3>
+<a name="index-SetPlotFactor"></a>
+<a name="index-Zoom"></a>
+
+<p>Эти функции управляют масштабированием всего рисунка (см Zoom()) или отдельной картинки (см PlotFactor). Обычно эти функции используются для удаления пустого места вокруг графиков.
+</p>
+<dl>
+<dt><a name="index-SetPlotFactor-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetPlotFactor</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fplotfactor"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_plotfactor</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Задает масштаб картинки (значение должно быть больше 1). Не рекомендуется устанавливать значения меньше 1.5. Это аналог функции Zoom(), но применяется только к конкретной картинке, заданной InPlot. Используйте ноль для включения автоматического масштабирования.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Zoom-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Zoom</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> x2, <code>float</code> y2)</i></dt>
+<dt><a name="index-mgl_005fset_005fzoom"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_zoom</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> x2, <code>float</code> y2)</i></dt>
+<dd><p>Масштабирует весь рисунок. После вызова функции текущий график будет очищен и в дальнейшем рисунок будет содержать только область [x1,x2]*[y1,y2] от исходного рисунка. Координаты <var>x1</var>, <var>x2</var>, <var>y1</var>, <var>y2</var> меняются в диапазоне от 0 до 1. Внимание! эти настройки не могут быть переписаны никакими другими функциями. Используйте <code>Zoom(0,0,1,1)</code> для перехода в масштаб по умолчанию.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-PlotFactor-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>float</code> <b>PlotFactor</b></dt>
+<dd><p>Множитель масштаба картинки. См. <code>SetPlotFactor()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AutoPlotFactor-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>bool</code> <b>AutoPlotFactor</b></dt>
+<dd><p>Включает/выключает автоматическое изменение PlotFactor при вращении графика. См. <code>SetPlotFactor()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cutting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Zooming" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0431_0440e_0437_0430_043d_0438e"></a>
+<h3 class="subsection">3.1.6 Обрезание</h3>
+<a name="index-SetCut"></a>
+<a name="index-SetCutBox"></a>
+<a name="index-CutOff"></a>
+
+<p>Эти функции задают условия когда точка будет исключена (вырезана) из рисования. Замечу, что все точки со значением(-ями) NAN по одной из координат или амплитуде автоматически исключаются из рисования.
+</p>
+<dl>
+<dt><a name="index-SetCut-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCut</b><i> (<code>bool</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fcut"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_cut</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+<dd><p>Задает обрезание точек за пределами осей координат. Если <code>true</code> то такие точки исключаются из рисования (это по умолчанию) иначе они проецируются на ограничивающий прямоугольник.
+</p></dd></dl>
+
+<div class="float">
+<img src="cut.png" alt="cut">
+
+</div><p><strong>Левый рисунок нарисован при <code>Cut=false</code>, правый при <code>Cut=true</code>.
+</strong>
+</p>
+<dl>
+<dt><a name="index-SetCutBox-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCutBox</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2)</i></dt>
+<dt><a name="index-mgl_005fset_005fcut_005fbox"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_cut_box</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2)</i></dt>
+<dd><p>Задает границы параллелепипеда внутри которого точки не рисуются. Если границы одинаковы (переменные равны), то параллелепипеда считается пустым. См. раздел <a href="mathgl_ru_9.html#CutMinMax-sample">CutMinMax &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CutOff-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>CutOff</b><i> (<code>const char *</code>EqC)</i></dt>
+<dt><a name="index-mgl_005fset_005fcutoff"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_cutoff</b><i> (<code>HMGL</code> gr, <code>const char *</code>EqC)</i></dt>
+<dd><p>Задает условие обрезания по формуле <var>EqC</var>. Это условие исключает точки из рисования если результат вычисления формулы не равен нулю. Установите аргумент <code>&quot;&quot;</code> для выключения условия обрезания. См. раздел <a href="mathgl_ru_9.html#CutOff-sample">CutOff &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cut-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>bool</code> <b>Cut</b></dt>
+<dd><p>Флаг рисования точек вне осей координат. См. <code>SetCut()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CutMin_002c-CutMax-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>mglPoint</code> <b>CutMin, CutMax</b></dt>
+<dd><p>Нижний и верхний угол параллелепипеда внутри которого точки не рисуются. См. <code>SetCutBox()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Font-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cutting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Palette-and-colors" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0428_0440_0438_0444_0442_044b"></a>
+<h3 class="subsection">3.1.7 Шрифты</h3>
+<a name="index-SetFontSize"></a>
+<a name="index-SetFontDef"></a>
+<a name="index-SetRotatedText"></a>
+<a name="index-SetFontSizePT"></a>
+<a name="index-SetFontSizeCM"></a>
+<a name="index-SetFontSizeIN"></a>
+<a name="index-SetFont"></a>
+<a name="index-GetFont"></a>
+<a name="index-LoadFont"></a>
+<a name="index-CopyFont"></a>
+<a name="index-RestoreFont"></a>
+
+<dl>
+<dt><a name="index-SetFontSize-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetFontSize</b><i> (<code>float</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005ffont_005fsize"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_font_size</b><i> (<code>HMGL</code> gr, <code>float</code> val)</i></dt>
+<dd><p>Задает базовый размер шрифта. По умолчанию размер подписей оси координат в 1.4 раза больше.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetFontDef-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetFontDef</b><i> (<code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005fset_005ffont_005fdef"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_font_def</b><i> (<code>HMGL</code> gr, <code>const char *</code> val)</i></dt>
+<dd><p>Задает стиль шрифта (see section <a href="#Text-printing">Вывод текста</a>). По умолчанию используется &lsquo;<samp>rC</samp>&rsquo; &ndash; прямой шрифт с выравниванием по центру.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetRotatedText-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetRotatedText</b><i> (<code>bool</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005frotated_005ftext"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_rotated_text</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+<dd><p>Включает/выключает вращение меток и подписей осей координат вдоль оси.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-LoadFont-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>LoadFont</b><i> (<code>const char *</code>name, <code>const char *</code>path=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fload_005ffont"></a><u>Функция С:</u> <code>void</code> <b>mgl_load_font</b><i> (<code>HMGL</code> gr, <code>const char *</code>name, <code>const char *</code>path)</i></dt>
+<dd><p>Загружает начертание шрифта из файла <var>path</var>/<var>name</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CopyFont-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>CopyFont</b><i> (<code>mglGraph *</code> from)</i></dt>
+<dt><a name="index-mgl_005fcopy_005ffont"></a><u>Функция С:</u> <code>void</code> <b>mgl_copy_font</b><i> (<code>HMGL</code> gr, <code>HMGL</code> gr_from)</i></dt>
+<dd><p>Копирует начертание шрифта из другого объекта <code>mglGraph</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-RestoreFont-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>RestoreFont</b><i> ()</i></dt>
+<dt><a name="index-mgl_005frestore_005ffont"></a><u>Функция С:</u> <code>void</code> <b>mgl_restore_font</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Восстанавливает начертание шрифта по умолчанию.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetFontSizePT-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>SetFontSizePT</b><i> (<code>float</code> cm, <code>int</code> dpi=<code>72</code>)</i></dt>
+<dd><p>Задает размер шрифта в пунктах для заданного DPI (по умолчанию 16 pt для dpi=72).
+</p></dd></dl>
+<dl>
+<dt><a name="index-SetFontSizeCM-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>inline void</code> <b>SetFontSizeCM</b><i> (<code>float</code> cm, <code>int</code> dpi=<code>72</code>)</i></dt>
+<dd><p>Задает размер шрифта в сантиметрах для заданного DPI (по умолчанию 0.56 см = 16 pt).
+</p></dd></dl>
+<dl>
+<dt><a name="index-SetFontSizeIN-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>inline void</code> <b>SetFontSizeIN</b><i> (<code>float</code> cm, <code>int</code> dpi=<code>72</code>)</i></dt>
+<dd><p>Задает размер шрифта в дюймах для заданного DPI (по умолчанию 0.22 in = 16 pt).
+</p></dd></dl>
+<dl>
+<dt><a name="index-SetFont-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>SetFont</b><i> (<code>mglFont *</code>f)</i></dt>
+<dd><p>Задает начертание шрифта. Замечу, что каждый объект mglFont может использоваться <em>только с одним</em> объектом mglGraph в каждый момент времени! Если <code>f==NULL</code>, то используется начертание по умолчанию.
+</p></dd></dl>
+<dl>
+<dt><a name="index-GetFont-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>inline mglFont *</code> <b>GetFont</b><i> ()</i></dt>
+<dd><p>Возвращает текущее начертание шрифта. Указатель правилен только до следующего вызова функции SetFont()!
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FontSize-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>float</code> <b>FontSize</b></dt>
+<dd><p>Размер шрифта. См. <code>SetFontSize()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-FontDef-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>char</code> <b>FontDef</b><i><code>[32]</code></i></dt>
+<dd><p>Стиль шрифта. См. <code>SetFontDef()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-RotatedText-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>bool</code> <b>RotatedText</b></dt>
+<dd><p>Флаг вращения меток и подписей к осям координат.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Palette-and-colors"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Error-handling" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0430_043b_0438_0442_0440_0430-_0438-c_0432e_0442_0430"></a>
+<h3 class="subsection">3.1.8 Палитра и цвета</h3>
+<a name="index-SetPalColor"></a>
+<a name="index-SetPalNum"></a>
+<a name="index-SetPalette"></a>
+<a name="index-SetScheme"></a>
+<a name="index-SelectPen"></a>
+
+<dl>
+<dt><a name="index-SetPalette-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetPalette</b><i> (<code>const char *</code><var>colors</var>)</i></dt>
+<dt><a name="index-mgl_005fset_005fpalette"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_palette</b><i> (<code>HMGL</code> gr, <code>const char *</code><var>colors</var>)</i></dt>
+<dd><p>Задает палитру как последовательность цветов. Значение по умолчанию <code>&quot;Hbgrcmyhlnqeup&quot;</code>, что соответствует цветам: темно серый &lsquo;<samp>H</samp>&rsquo;, синий &lsquo;<samp>b</samp>&rsquo;, зеленый &lsquo;<samp>g</samp>&rsquo;, красный &lsquo;<samp>r</samp>&rsquo;, голубой &lsquo;<samp>c</samp>&rsquo;, малиновый &lsquo;<samp>m</samp>&rsquo;, желтый &lsquo;<samp>y</samp>&rsquo;, серый &lsquo;<samp>h</samp>&rsquo;, сине-зеленый  &lsquo;<samp>l</samp>&rsquo;, небесно-голубой &lsquo;<samp>n</samp>&rsquo;, оранжевый &lsquo;<samp>q</samp>&rsquo;, желто-зеленый &lsquo;<samp>e</samp>&rsquo;, сине-фиолетовый &lsquo;<samp>u</samp>&rsquo;, фиолетовый &lsquo;<samp>p</samp>&rsquo;. Палитра в основном используется в 1D графиках (see section <a href="#g_t1D-plotting">1D графики</a>) для кривых с неопределенным стилем линии.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetPalColor-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetPalColor</b><i> (<code>int</code> n, <code>float</code> r, <code>float</code> g, <code>float</code> b)</i></dt>
+<dt><a name="index-mgl_005fset_005fpal_005fcolor"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_pal_color</b><i> (<code>HMGL</code> gr, <code>int</code> n, <code>float</code> r, <code>float</code> g, <code>float</code> b)</i></dt>
+<dd><p>Задает цвет отдельной ячейки палитры. См. функцию <code>SetPalette()</code> для упрощенного задания палитры.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetPalNum-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetPalNum</b><i> (<code>int</code> num)</i></dt>
+<dt><a name="index-mgl_005fset_005fpal_005fnum"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_pal_num</b><i> (<code>HMGL</code> gr, <code>int</code> num)</i></dt>
+<dd><p>Задает число цветов в палитре. Значение должно быть меньше 100.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetScheme-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetScheme</b><i> (<code>const char *</code>sch)</i></dt>
+<dt><a name="index-mgl_005fset_005fscheme"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_scheme</b><i> (<code>HMGL</code> gr, <code>const char *</code>sch)</i></dt>
+<dd><p>Задает цветовую схему. Обычно функция вызывается внутри библиотеки. See section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SelectPen-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>SelectPen</b><i> (<code>const char *</code>sch)</i></dt>
+<dd><p>Задает стиль линий и маркеров. Обычно функция вызывается внутри библиотеки. See section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-Pal-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>mglColor</code> <b>Pal</b><i><code>[101]</code></i></dt>
+<dd><p>Палитра <a href="#g_t1D-plotting">1D графики</a>. См. <code>SetPalette()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-NumPal-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>int</code> <b>NumPal</b></dt>
+<dd><p>Число цветов в палитре. См. <code>SetPalette()</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Error-handling"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Palette-and-colors" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0431_0440_0430_0431_043e_0442_043a_0430-_043e_0448_0438_0431_043e_043a"></a>
+<h3 class="subsection">3.1.9 Обработка ошибок</h3>
+
+<a name="index-Message"></a>
+<a name="index-GetWarnCode"></a>
+<a name="index-SetWarn"></a>
+
+<p>Есть 2 переменные показывающие наличие предупреждения/ошибки при создании графика. Обычно вы должны сбросить их с помощью <code>SetWarn(0);</code> перед построением и проверить переменную <var>WarnCode</var> на наличие ошибок после построения. Только последнее предупреждение сохраняется. Замечу, что все предупреждения/ошибки в MathGL не являются критичными &ndash; в худшем из вариантов соответствующий график просто не будет построен.
+</p>
+<dl>
+<dt><a name="index-SetWarn-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>SetWarn</b><i> (<code>int</code> code, <code>const char *</code>who=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Задает код предупреждения и поясняющее сообщение от функции <var>who</var>. Обычно вызывается только для очистки предупреждений (<code>SetWarn(0);</code>) или внутри библиотеки.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Message-of-mglGraph"></a><u>Переменная(C++) of mglGraph:</u> <code>char *</code> <b>Message</b></dt>
+<dd><p>Указатель на строку для вывода сообщений библиотеки о причине отсутствия графика. Если равен NULL, то сообщения не выводятся. Размер буфера должен быть не менее 1024 байт. Если Message[0]==0, то сообщений нет.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetWarn"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>int</code> <b>GetWarn</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fget_005fwarn"></a><u>C function:</u> <code>int</code> <b>mgl_get_warn</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Возвращает код сообщения о причине отсутствия графика. Возможные значения:
+</p><dl compact="compact">
+<dt> <code>mglWarnNone=0</code></dt>
+<dd><p>Предупреждений нет
+</p></dd>
+<dt> <code>mglWarnDim</code></dt>
+<dd><p>Неправильные или несовместимые размеры данных
+</p></dd>
+<dt> <code>mglWarnLow</code></dt>
+<dd><p>Размеры данных слишком малы
+</p></dd>
+<dt> <code>mglWarnNeg</code></dt>
+<dd><p>Минимальное значение отрицательно
+</p></dd>
+<dt> <code>mglWarnFile</code></dt>
+<dd><p>Файл не найден или указаны неправильные размерности
+</p></dd>
+<dt> <code>mglWarnMem</code></dt>
+<dd><p>Не достаточно памяти
+</p></dd>
+<dt> <code>mglWarnZero</code></dt>
+<dd><p>Значение данных равно нулю
+</p></dd>
+<dt> <code>mglWarnLegA</code></dt>
+<dd><p>Слишком много записей в легенде
+</p></dd>
+<dt> <code>mglWarnLeg</code></dt>
+<dd><p>Нет записей в легенде
+</p></dd>
+<dt> <code>mglWarnSlc</code></dt>
+<dd><p>Индекс среза вне данных
+</p></dd>
+<dt> <code>mglWarnCnt</code></dt>
+<dd><p>Число линий уровня меньше или равно нулю
+</p></dd>
+<dt> <code>mglWarnOpen</code></dt>
+<dd><p>Не могу открыть файл
+</p></dd>
+<dt> <code>mglWarnLId</code></dt>
+<dd><p>Light: ID вне допустимых значений
+</p></dd>
+<dt> <code>mglWarnSize</code></dt>
+<dd><p>Setsize: размер(ы) равны нулю или отрицательны
+</p></dd>
+<dt> <code>mglWarnFmt</code></dt>
+<dd><p>Формат не поддерживается
+</p></dd>
+</dl>
+</dd></dl>
+
+<dl>
+<dt><a name="index-WarnCode-of-mglGraph"></a><u>Устаревшая переменная of mglGraph:</u> <code>int</code> <b>WarnCode</b></dt>
+<dd><p>Код сообщения о причине отсутствия графика. 
+</p></dd></dl>
+
+<hr size="6">
+<a name="Other-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Error-handling" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043e_0447_0438e-_043d_0430_0441_0442_0440_043e_0439_043a_0438"></a>
+<h3 class="subsection">3.1.10 Прочие настройки</h3>
+<a name="index-SetMeshNum"></a>
+<a name="index-SetAxialDir"></a>
+<a name="index-SetDrawFace"></a>
+<a name="index-PlotId"></a>
+
+<dl>
+<dt><a name="index-SetMeshNum-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetMeshNum</b><i> (<code>int</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fmeshnum"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_meshnum</b><i> (<code>HMGL</code> gr, <code>int</code> num)</i></dt>
+<dd><p>Задает ориентировочное число линий в Mesh(), Fall(), Grid() и число стрелок (штрихов) в Vect(), Dew() и число ячеек в Cloud*(). По умолчанию (=0) рисуются все линии, стрелки, ячейки.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetAxialDir-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetAxialDir</b><i> (<code>char</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005faxial_005fdir"></a><u>Функция С:</u> <code></code> <b>mgl_set_axial_dir</b><i> (<code>HMGL</code> gr, <code>char</code> dir)</i></dt>
+<dd><p>Задает ось вращения для Axial() и Torus(). По умолчанию это &rsquo;z&rsquo;.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetDrawFace-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetDrawFace</b><i> (<code>bool</code> val)</i></dt>
+<dt><a name="index-mgl_005fset_005fdraw_005fface"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_draw_face</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+<dd><p>Запрещает/разрешает рисование граней. Запрет вывода граней позволяет ускорить рисование (например для вращения картинки).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-PlotId-of-mglGraph"></a><u>Переменная(C++) of mglGraph:</u> <code>const char *</code> <b>PlotId</b></dt>
+<dd><p>Идентификатор рисунка для сохранения в файл.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-MeshNum-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>int</code> <b>MeshNum</b></dt>
+<dd><p>Число линий, стрелок, ячеек. См. <code>SetMeshNum()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AxialDir-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>char</code> <b>AxialDir</b></dt>
+<dd><p>Ось вращения. См. <code>SetAxialDir()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DrawFace-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>bool</code> <b>DrawFace</b></dt>
+<dd><p>Флаг запрета рисования граней. См. <code>SetDrawFace()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CirclePnts-of-mglGraph"></a><u>Переменная(C++) of mglGraph:</u> <code>int</code> <b>CirclePnts</b></dt>
+<dd><p>Число точек при аппроксимации окружности в <a href="#Primitives-drawing">Рисование примитивов</a>, <a href="#Tube">Tube</a>, <a href="#Pipe">Pipe</a> и т.д. По умолчанию 40.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GridPnts-of-mglGraph"></a><u>Переменная(C++) of mglGraph:</u> <code>int</code> <b>GridPnts</b></dt>
+<dd><p>Число точек при построении линий сеток &ndash; важно для криволинейных координат. По умолчанию 50.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axis-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ranges-_0028bounding-box_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041d_0430_0441_0442_0440_043e_0439_043a_0438-_043e_0441e_0439-_043a_043e_043e_0440_0434_0438_043d_0430_0442"></a>
+<h2 class="section">3.2 Настройки осей координат</h2>
+
+<p>Эти функции управляет видом и масштабом осей координат. Перед построением для каждой точки выполняются 3 преобразования: сначала определяется возможность рисования точки (see section <a href="#Cutting">Обрезание</a>), далее применяются формулы перехода к криволинейным координатам и наконец точка отображается.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transformation">3.2.2 Криволинейные координаты</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ticks">3.2.3 Метки осей</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Ranges-_0028bounding-box_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transformation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041c_0430_0441_0448_0442_0430_0431-_043e_0441e_0439-_043a_043e_043e_0440_0434_0438_043d_0430_0442"></a>
+<h3 class="subsection">3.2.1 Масштаб осей координат</h3>
+<a name="index-Axis"></a>
+<a name="index-CAxis"></a>
+<a name="index-XRange"></a>
+<a name="index-YRange"></a>
+<a name="index-ZRange"></a>
+<a name="index-Min"></a>
+<a name="index-Max"></a>
+<a name="index-Cmin"></a>
+<a name="index-Cmax"></a>
+<a name="index-RecalcBorder"></a>
+<a name="index-Org"></a>
+<a name="index-AutoOrg"></a>
+<a name="index-SetRanges"></a>
+<a name="index-SetAutoRanges"></a>
+
+<dl>
+<dt><a name="index-SetRanges-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetRanges</b><i> (<code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2, <code>float</code> z1=<code>0</code>, <code>float</code> z2=<code>0</code>)</i></dt>
+<dt><a name="index-Axis-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Axis</b><i> (<code>mglPoint</code> min, <code>mglPoint</code> max, <code>mglPoint</code> org=<code>mglPoint(NAN,NAN,NAN)</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005faxis_005f2d"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_axis_2d</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> x2, <code>float</code> y2)</i></dt>
+<dt><a name="index-mgl_005fset_005faxis_005f3d"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_axis_3d</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2)</i></dt>
+<dd><p>Безопасным образом задает значения переменных <var>Min</var>, <var>Max</var> и <var>Org</var>. Если минимальное и максимальное значение координаты равны, то они игнорируются по данному направлению. Эта функция также устанавливает размер цветовой шкалы <var>Cmin</var>=<code>Min.z</code> и <var>Cmax</var>=<code>Max.z</code> &ndash; это режим по умолчанию для 2d графиков.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetCRange"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCRange</b><i> (<code>float</code> min, <code>float</code> max)</i></dt>
+<dt><a name="index-CAxis-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>CAxis</b><i> (<code>float</code> min, <code>float</code> max)</i></dt>
+<dt><a name="index-mgl_005fset_005fcaxis"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_caxis</b><i> (<code>HMGL</code> gr, <code>float</code> min, <code>float</code> max)</i></dt>
+<dd><p>Задает масштаб цветовой шкалы. Эти значения используются для определения цвета поверхностей и прочих 2D и 3D графиков.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-XRange-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>XRange</b><i> (<code>const mglData &amp;</code> dat, <code>bool</code> add=<code>false</code>, <code>float</code> fact=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fxrange"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_xrange</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> add)</i></dt>
+<dd><p>Задает масштаб по оси X как минимальное и максимальное значение массива <var>a</var>. Параметр <var>add</var> указывает добавлять новый диапазон к существующему или заменять его. Параметр <var>fact</var> дополнительно расширяет диапазон на величину (<var>Max</var>-<var>Min</var>)*<var>fact</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-YRange-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>YRange</b><i> (<code>const mglData &amp;</code> dat, <code>bool</code> add=<code>false</code>, <code>float</code> fact=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fyrange"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_yrange</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> add)</i></dt>
+<dd><p>Задает масштаб по оси Y как минимальное и максимальное значение массива <var>a</var>. Параметр <var>add</var> указывает добавлять новый диапазон к существующему или заменять его. Параметр <var>fact</var> дополнительно расширяет диапазон на величину (<var>Max</var>-<var>Min</var>)*<var>fact</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ZRange-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ZRange</b><i> (<code>const mglData &amp;</code> dat, <code>bool</code> add=<code>false</code>, <code>float</code> fact=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fzrange"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_zrange</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> add)</i></dt>
+<dd><p>Задает масштаб по оси Z как минимальное и максимальное значение массива <var>a</var>. Параметр <var>add</var> указывает добавлять новый диапазон к существующему или заменять его. Параметр <var>fact</var> дополнительно расширяет диапазон на величину (<var>Max</var>-<var>Min</var>)*<var>fact</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CRange"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>CRange</b><i> (<code>const mglData &amp;</code> dat, <code>bool</code> add=<code>false</code>, <code>float</code> fact=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fcrange"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_crange</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> add)</i></dt>
+<dd><p>Задает цветовой масштаб как минимальное и максимальное значение массива <var>a</var>. Параметр <var>add</var> указывает добавлять новый диапазон к существующему или заменять его. Параметр <var>fact</var> дополнительно расширяет диапазон на величину (<var>Max</var>-<var>Min</var>)*<var>fact</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetAutoRanges-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetAutoRanges</b><i> (<code>float</code> x1, <code>float</code> x2, <code>float</code> y1=<code>0</code>, <code>float</code> y2=<code>0</code>, <code>float</code> z1=<code>0</code>, <code>float</code> z2=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fauto"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_auto</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2, <code>float</code> z1, <code>float</code> z2)</i></dt>
+<dd><p>Задает масштаб &quot;автоматических&quot; (не указанных явно) переменных. Функция меняет значения <var>Min</var>, <var>Max</var> буз вызова RecalcBorder(). Если минимальное и максимальное значение координаты равны, то они игнорируются по данному направлению. Замечу, что этот масштаб становится масштабом осей при следующем вызове функций [XYZ]Range().
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetOrigin"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetOrigin</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005forigin"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_origin</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0)</i></dt>
+<dd><p>Задает центр пересечения осей координат. Если одно из значений равно NAN, то MathGL попытается выбрать оптимальное положение осей координат по этому направлению.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-RecalcBorder-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>RecalcBorder</b><i> ()</i></dt>
+<dd><p>Повторно вычисляет внутренние параметры для правильного применения функций перехода в криволинейную систему координат. <strong>Должна быть вызвана</strong> после каждого прямого изменения переменных <var>Min</var>, <var>Max</var>, <var>fx</var>, <var>fy</var>, <var>fz</var> если их изменение должно отразиться на графике.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Min_002c-Max-of-mglGraph"></a><u>Переменная(C++) of mglGraph:</u> <code>mglPoint</code> <b>Min, Max</b></dt>
+<dd><p>Масштаб осей координат. Эти переменные используются также для определения диапазона &quot;автоматических&quot; массивов (массивов не указанных явно при построении графика). Вы можете изменить их перед построением графика и потом вернуть их назад. В результате график будет в указанном диапазоне, а не в диапазоне осей координат. <strong>НО</strong> если вы хотите поменять масштаб осей, то вы <strong>должны</strong> вызвать функцию <code>RecalcBorder();</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cmin_002c-Cmax-of-mglGraph"></a><u>Переменная(C++) of mglGraph:</u> <code>float</code> <b>Cmin, Cmax</b></dt>
+<dd><p>Масштаб цветовой шкалы. См. <code>CAxis(), CRange()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Org-of-mglGraph"></a><u>Переменная(C++) of mglGraph:</u> <code>mglPoint</code> <b>Org</b></dt>
+<dd><p>Центр пересечения осей координат. См. <code>SetOrigin()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AutoOrg-of-mglGraph"></a><u>Переменная(C++) of mglGraph:</u> <code>bool</code> <b>AutoOrg</b></dt>
+<dd><p>Флаг для автоматического сдвига осей координат если их центр пересечения лежит вне диапазона осей координат <var>Min</var> ... <var>Max</var>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Transformation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ranges-_0028bounding-box_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ticks" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041a_0440_0438_0432_043e_043b_0438_043de_0439_043d_044be-_043a_043e_043e_0440_0434_0438_043d_0430_0442_044b"></a>
+<h3 class="subsection">3.2.2 Криволинейные координаты</h3>
+<a name="index-SetFunc"></a>
+<a name="index-SetCoor"></a>
+<a name="index-Ternary"></a>
+
+<dl>
+<dt><a name="index-SetFunc-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetFunc</b><i> (<code>const char *</code>EqX, <code>const char *</code>EqY, <code>const char *</code>EqZ=<code>&quot;&quot;</code>, <code>const char *</code>EqA=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005ffunc"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_func</b><i> (<code>HMGL</code> gr, <code>const char *</code>EqX, <code>const char *</code>EqY, <code>const char *</code>EqZ)</i></dt>
+<dt><a name="index-mgl_005fset_005ffunc_005fext"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_func_ext</b><i> (<code>HMGL</code> gr, <code>const char *</code>EqX, <code>const char *</code>EqY, <code>const char *</code>EqZ, <code>const char *</code>EqA)</i></dt>
+<dd><p>Задает формулы перехода к криволинейным координатам. Каждая строка является математическим выражением, зависящим от старых координат &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; и &lsquo;<samp>a</samp>&rsquo; или &lsquo;<samp>c</samp>&rsquo; для цветовой шкалы. Например, для цилиндрических координат будет <code>Axis(&quot;x*cos(y)&quot;, &quot;x*sin(y)&quot;, &quot;z&quot;);</code>. Для удаления формул соответствующий параметр должен быть пустым или <code>NULL</code>. Использование формул преобразования слегка замедляет программу, т.е.. <code>Axis(&quot;&quot;, &quot;&quot;, &quot;&quot;)</code> быстрее чем <code>Axis(&quot;1*x&quot;, &quot;1*y&quot;, &quot;1*z&quot;)</code>. Параметр <var>EqA</var> задает аналогичную формулу для цветовой шкалы. See section <a href="mathgl_ru_1.html#Textual-formulas">Текстовые формулы</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetCoor-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCoor</b><i> (<code>int</code> how)</i></dt>
+<dt><a name="index-mgl_005fset_005fcoor"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_coor</b><i> (<code>HMGL</code> gr, <code>int</code> how)</i></dt>
+<dd><p>Устанавливает одну из предопределенных систем криволинейных координат в зависимости от параметра <var>how</var>: <code>mglCartesian=0</code> &ndash; декартова система (нет преобразования координат, наиболее быстрая); <code>mglPolar=1</code> &ndash; полярные координаты <em>x_n=x*cos(y),y_n=x*sin(y), z_n=z</em>; <code>mglSpherical=2</code> &ndash; сферические координаты <em>x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y)</em>; <code>mglParabolic=3</code> &ndash; параболические координаты <em>x_n=x*y, y_n=(x*x-y*y)/2, z_n=z</em>; <code>mglParaboloidal=4</code> &ndash; Paraboloidal coordinates <em>x_n=(x*x-y*y)*cos(z)/2, y_n=(x*x-y*y)*sin(z)/2, z_n=x*y</em>; <code>mglOblate=5</code> &ndash; Oblate coordinates <em>x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z), z_n=sinh(x)*sin(y)</em>; <code>mglProlate=6</code> &ndash; Prolate coordinates <em>x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z), z_n=cosh(x)*cos(y)</em>; <code>mglElliptic=7</code> &ndash; эллиптические координаты <em>x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z</em>; <code>mglToroidal=8</code> &ndash; тороидальные координаты <em>x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)), y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y))</em>; <code>mglBispherical=9</code> &ndash; бисферические координаты <em>x_n=sin(y)*cos(z)/(cosh(x)-cos(y)), y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y))</em>; <code>mglBipolar=10</code> &ndash; биполярные координаты <em>x_n=sinh(x)/(cosh(x)-cos(y)), y_n=sin(y)/(cosh(x)-cos(y)), z_n=z</em>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Ternary-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Ternary</b><i> (<code>bool</code> tern)</i></dt>
+<dt><a name="index-mgl_005fset_005fternary"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_ternary</b><i> (<code>HMGL</code> gr, <code>int</code> tern)</i></dt>
+<dd><p>Задает рисование треугольных (Ternary) осей координат. Это специальный тип графика для 3 зависимых координат (компонент) <var>a</var>, <var>b</var>, <var>c</var> таких, что <var>a</var>+<var>b</var>+<var>c</var>=1. MathGL использует только 2 независимые координаты <var>a</var>=x и <var>b</var>=y поскольку их достаточно для построения всех графиков. При этом третья координата z является независимым параметром для построения линий уровня, поверхностей и т.д. См. раздел <a href="mathgl_ru_9.html#Ternary-plot-sample">Ternary plot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Ticks"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transformation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transformation-matrix" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041ce_0442_043a_0438-_043e_0441e_0439"></a>
+<h3 class="subsection">3.2.3 Метки осей</h3>
+
+<a name="index-SetTicks"></a>
+<a name="index-SetTicksVal"></a>
+<a name="index-SetTuneTicks"></a>
+<a name="index-AdjustTicks"></a>
+<a name="index-SetXTT"></a>
+<a name="index-SetYTT"></a>
+<a name="index-SetZTT"></a>
+<a name="index-SetCTT"></a>
+
+<dl>
+<dt><a name="index-AdjustTicks-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>AdjustTicks</b><i> (<code>const char *</code>dir=<code>&quot;xyz&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fadjust_005fticks"></a><u>Функция С:</u> <code>void</code> <b>mgl_adjust_ticks</b><i> (<code>HMGL</code> gr, <code>const char *</code>dir)</i></dt>
+<dd><p>Автоматически задает шаг меток осей, число подметок и начальное положение меток для осей координат <var>dir</var> в виде наиболее удобном для человека. Также задает <code>SetTuneTicks(true)</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTicks-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTicks</b><i> (<code>char</code> dir, <code>float</code> d=<code>-5</code>, <code>int</code> ns=<code>0</code>, <code>float</code> org=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fset_005fticks_005fdir"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_ticks_dir</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>float</code> d, <code>int</code> ns, <code>float</code> org)</i></dt>
+<dt><a name="index-mgl_005fset_005fticks"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_ticks</b><i> (<code>HMGL</code> gr, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz)</i></dt>
+<dt><a name="index-mgl_005fset_005fsubticks"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_subticks</b><i> (<code>HMGL</code> gr, <code>int</code> nx, <code>int</code> ny, <code>int</code> nz)</i></dt>
+<dt><a name="index-mgl_005fset_005ftick_005forigin"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_tick_origin</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0)</i></dt>
+<dd><p>Задает шаг меток осей <var>d</var>, число подметок <var>ns</var> и начальное положение меток <var>org</var> для оси вдоль направления <var>dir</var> (используйте &rsquo;c&rsquo; для меток colorbar). Переменная <var>d</var> задает шаг меток (если положительна) или их число на оси (если отрицательна). Нулевое значение задает логарифмические метки. Если <var>org</var>=<code>NAN</code>, то используется значение из переменной <var>Org</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTicksVal-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTicksVal</b><i> (<code>char</code> dir, <code>int</code> n, <code>float *</code>val, <code>const char **</code>lbl)</i></dt>
+<dt><a name="index-SetTicksVal-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTicksVal</b><i> (<code>char</code> dir, <code>int</code> n, <code>float *</code>val, <code>const wchar_t **</code>lbl)</i></dt>
+<dt><a name="index-SetTicksVal-3"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>SetTicksVal</b><i> (<code>char</code> dir, <code>int</code> n, <code>float</code> val1, <code>wchar_t *</code>lbl1, ...)</i></dt>
+<dt><a name="index-mgl_005fset_005fticks_005fvals"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_ticks_vals</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>int</code> n, <code>float *</code>val, <code>const char **</code>lbl)</i></dt>
+<dt><a name="index-mgl_005fset_005fticks_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_ticks_val</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>int</code> n, <code>double</code> val, <code>const char *</code>lbl, ...)</i></dt>
+<dd><p>Задает явное положение <var>val</var> и подписи <var>lbl</var> для <var>n</var> меток вдоль оси <var>dir</var>. Массивы <var>val</var> и <var>lbl</var> должны содержать <var>n</var> элементов. Используйте <code>SetTicks()</code> для восстановления автоматических меток. Вы должны быть <strong>очень осторожны</strong> и использовать числа с плавающей точкой (а <em>не целые!!!</em>) для положения меток &ndash; из-за ограничений передачи аргументов в библиотеке stdarg. См. раздел <a href="mathgl_ru_9.html#Manual-ticks-sample">Особые метки по осям</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetTuneTicks-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetTuneTicks</b><i> (<code>bool</code> tune, <code>float</code> pos=<code>1.15</code>)</i></dt>
+<dt><a name="index-mgl_005ftune_005fticks"></a><u>Функция С:</u> <code>void</code> <b>mgl_tune_ticks</b><i> (<code>HMGL</code> gr, <code>bool</code> tune, <code>float</code> pos)</i></dt>
+<dd><p>Включает/выключает улучшение вида меток осей путем вынесения общего множителя (для маленьких, типа 0.001...0.002, или больших, типа 1000...2000, значений координат) или общей компоненты (для узкого диапазона, типа 0.999...1.000). Также задает положение <var>pos</var> общего множителя на оси: =0 около минимального значения, =1 около максимального значения.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetXTT-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetXTT</b><i> (<code>const char *</code>xtt)</i></dt>
+<dt><a name="index-SetYTT-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetYTT</b><i> (<code>const char *</code>ytt)</i></dt>
+<dt><a name="index-SetZTT-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetZTT</b><i> (<code>const char *</code>ztt)</i></dt>
+<dt><a name="index-SetCTT-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCTT</b><i> (<code>const char *</code>ctt)</i></dt>
+<dt><a name="index-SetXTT-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetXTT</b><i> (<code>const wchar_t *</code>xtt)</i></dt>
+<dt><a name="index-SetYTT-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetYTT</b><i> (<code>const wchar_t *</code>ytt)</i></dt>
+<dt><a name="index-SetZTT-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetZTT</b><i> (<code>const wchar_t *</code>ztt)</i></dt>
+<dt><a name="index-SetCTT-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetCTT</b><i> (<code>const wchar_t *</code>ctt)</i></dt>
+<dt><a name="index-mgl_005fset_005fxttw"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_xttw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>xtt)</i></dt>
+<dt><a name="index-mgl_005fset_005fyttw"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_yttw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ytt)</i></dt>
+<dt><a name="index-mgl_005fset_005fzttw"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_zttw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ztt)</i></dt>
+<dt><a name="index-mgl_005fset_005fcttw"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_cttw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ctt)</i></dt>
+<dt><a name="index-mgl_005fset_005fxtt"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_xtt</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>xtt)</i></dt>
+<dt><a name="index-mgl_005fset_005fytt"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_ytt</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ytt)</i></dt>
+<dt><a name="index-mgl_005fset_005fztt"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_ztt</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ztt)</i></dt>
+<dt><a name="index-mgl_005fset_005fctt"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_ctt</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>ctt)</i></dt>
+<dd><p>Задает шаблоны для меток вдоль x-,y-,z-оси или colorbar. Шаблон может содержать и символы TeX. Если <var>xtt</var>, <var>ytt</var>, <var>ztt</var>, <var>ctt</var>=<code>&quot;&quot;</code>, то используется шаблон по умолчанию (в простейшем случае &lsquo;<samp>%.2g</samp>&rsquo;). Установка шаблона выключает автоматическое улучшение вида меток (См. <code>SetTuneTicks()</code>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-dx_002c-dy_002c-dz-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>float</code> <b>dx, dy, dz</b></dt>
+<dd><p>Шаг меток осей. См. <code>SetTicks()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-NSx_002c-NSy_002c-NSz-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>int</code> <b>NSx, NSy, NSz</b></dt>
+<dd><p>Число подметок. См. <code>SetTicks()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-OrgT-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>mglPoint</code> <b>OrgT</b></dt>
+<dd><p>Начальная точка для меток. См. <code>SetTicks()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TuneTicks-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>bool</code> <b>TuneTicks</b></dt>
+<dd><p>Флаг автоматического улучшения меток. См. <code>SetTuneTicks()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FactorPos-of-mglGraph"></a><u><em>Устаревшая переменная</em> of mglGraph:</u> <code>float</code> <b>FactorPos</b></dt>
+<dd><p>Положение общего множителя. См. <code>SetTuneTicks()</code>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Transformation-matrix"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ticks" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Export-to-file" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041c_0430_0442_0440_0438c_0430-_043f_0440e_043e_0431_0440_0430_0437_043e_0432_0430_043d_0438ya"></a>
+<h2 class="section">3.3 Матрица преобразования</h2>
+<a name="index-Aspect"></a>
+<a name="index-Rotate"></a>
+<a name="index-RotateN"></a>
+<a name="index-SubPlot"></a>
+<a name="index-InPlot"></a>
+<a name="index-Identity"></a>
+<a name="index-Perspective"></a>
+<a name="index-RestoreM"></a>
+<a name="index-View"></a>
+<a name="index-ColumnPlot"></a>
+
+<p>Эти функции контролируют где и как график будет расположен. Существует определенный порядок вызова этих функций для лучшего вида графика. Вначале должны вызываться функции SubPlot() или InPlot() для указания местоположения вывода. После них &ndash; функции вращения Rotate() и сжатия Aspect(). И наконец любые другие функции для рисования графика. Вместо вращения графика можно вызвать функцию ColumnPlot() для расположения графиков в столбец одного над другим без зазора между осями.
+</p>
+<dl>
+<dt><a name="index-SubPlot-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SubPlot</b><i> (<code>int</code> nx, <code>int</code> ny, <code>int</code> m, <code>float</code> dx=<code>0</code>, <code>float</code> dy=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fsubplot"></a><u>Функция С:</u> <code>void</code> <b>mgl_subplot</b><i> (<code>HMGL</code> gr, <code>int</code> nx, <code>int</code> ny, <code>int</code> m)</i></dt>
+<dt><a name="index-mgl_005fsubplot_005fd"></a><u>Функция С:</u> <code>void</code> <b>mgl_subplot_d</b><i> (<code>HMGL</code> gr, <code>int</code> nx, <code>int</code> ny, <code>int</code> m, <code>float</code> dx, <code>float</code> dy)</i></dt>
+<dd><p>Помещает последующий вывод в <var>m</var>-ую ячейку сетки размером <var>nx</var>*<var>ny</var> от всего рисунка. Функция сбрасывает матрицу трансформации (повороты и сжатие графика) и должна вызываться первой для создания &quot;подграфика&quot;. С эстетической точки зрения не рекомендуется вызывать эту функцию с различными (или не кратными) размерами сетки. Ячейка может быть дополнительно сдвинута относительно своего обычного положения на относительный размер <var>dx</var>, <var>dy</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SubPlot-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SubPlot</b><i> (<code>int</code> nx, <code>int</code> ny, <code>int</code> m, <code>const char *</code>style)</i></dt>
+<dt><a name="index-mgl_005fsubplot_005fs"></a><u>C function:</u> <code>void</code> <b>mgl_subplot_s</b><i> (<code>HMGL</code> gr, <code>int</code> nx, <code>int</code> ny, <code>int</code> m, <code>const char *</code>style)</i></dt>
+<dd><p>Аналогично предыдущему, но место для осей/colorbar резервируется только если строка <var>style</var> содержит: &lsquo;<samp>L</samp>&rsquo; или &lsquo;<samp>&lt;</samp>&rsquo; &ndash; с левого края, &lsquo;<samp>R</samp>&rsquo; или &lsquo;<samp>&gt;</samp>&rsquo; &ndash; с правого края, &lsquo;<samp>A</samp>&rsquo; или &lsquo;<samp>^</samp>&rsquo; &ndash; с верхнего края, &lsquo;<samp>U</samp>&rsquo; или &lsquo;<samp>_</samp>&rsquo; &ndash; с нижнего края.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-InPlot-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>InPlot</b><i> (<code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2, <code>bool</code> rel=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005finplot"></a><u>Функция С:</u> <code>void</code> <b>mgl_inplot</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2)</i></dt>
+<dt><a name="index-mgl_005frelplot"></a><u>Функция С:</u> <code>void</code> <b>mgl_relplot</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2)</i></dt>
+<dd><p>Помещает последующий вывод в прямоугольную область [<var>x1</var>, <var>x2</var>]*[<var>y1</var>, <var>y2</var>] (исходный размер [0,1]*[0,1]). Эта функция позволяет поместить график в произвольную область рисунка. Если параметр <var>rel</var>=<code>true</code>, то используется позиция относительно текщего SubPlot() (или InPlot() с <var>rel</var>=<code>false</code>). Функция сбрасывает матрицу трансформации (повороты и сжатие графика) и должна вызываться первой для создания &quot;подграфика&quot;.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ColumnPlot-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ColumnPlot</b><i> (<code>int</code> num, <code>int</code> ind, <code>float</code> d=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcolumnplot"></a><u>Функция С:</u> <code>void</code> <b>mgl_columnplot</b><i> (<code>HMGL</code> gr, <code>int</code> num, <code>int</code> ind)</i></dt>
+<dt><a name="index-mgl_005fcolumnplot-1"></a><u>Функция С:</u> <code>void</code> <b>mgl_columnplot</b><i> (<code>HMGL</code> gr, <code>int</code> num, <code>int</code> ind, <code>float</code> d)</i></dt>
+<dd><p>Помещает последующий вывод в <var>ind</var>-ую строку столбца из <var>num</var> строк. Положение столбца выбирается относительно последнего вызова SubPlot() (или InPlot() с <var>rel</var>=<code>false</code>). Параметр <var>d</var> задает дополнительный зазор между строк. См. раздел <a href="mathgl_ru_9.html#ColumnPlot-sample">ColumnPlot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-StickPlot"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>StickPlot</b><i> (<code>int</code> num, <code>int</code> ind, <code>float</code> tet, <code>float</code> phi)</i></dt>
+<dt><a name="index-mgl_005fstickplot"></a><u>C function:</u> <code>void</code> <b>mgl_stickplot</b><i> (<code>HMGL</code> gr, <code>int</code> num, <code>int</code> ind, <code>float</code> tet, <code>float</code> phi)</i></dt>
+<dd><p>Помещает последующий вывод в <var>ind</var>-ую ячейку &quot;бруска&quot; из <var>num</var> ячеек. При этом сам брусок повернут на углы <var>tet</var>, <var>phi</var>. Положение выбирается относительно последнего вызова SubPlot() (или InPlot() с <var>rel</var>=<code>false</code>). См. раздел <a href="mathgl_ru_9.html#StickPlot-sample">StickPlot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Rotate-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Rotate</b><i> (<code>float</code> TetX, <code>float</code> TetZ, <code>float</code> TetY=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005frotate"></a><u>Функция С:</u> <code>void</code> <b>mgl_rotate</b><i> (<code>HMGL</code> gr, <code>float</code> TetX, <code>float</code> TetZ, <code>float</code> TetY)</i></dt>
+<dd><p>Вращает систему координат относительно осей {x, z, y} последовательно на углы <var>TetX</var>, <var>TetZ</var>, <var>TetY</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-RotateN-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>RotateN</b><i> (<code>float</code> Tet, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dt><a name="index-mgl_005frotate_005fvector"></a><u>Функция С:</u> <code>void</code> <b>mgl_rotate_vector</b><i> (<code>HMGL</code> gr, <code>float Tet</code>, <code>float x</code>, <code>float y</code>, <code>float z</code>)</i></dt>
+<dd><p>Вращает систему координат относительно вектора {<var>x</var>, <var>y</var>, <var>z</var>} на угол <var>Tet</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Aspect-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Aspect</b><i> (<code>float</code> Ax, <code>float</code> Ay, <code>float</code> Az)</i></dt>
+<dt><a name="index-mgl_005faspect"></a><u>Функция С:</u> <code>void</code> <b>mgl_aspect</b><i> (<code>HMGL</code> gr, <code>float</code> Ax, <code>float</code> Ay, <code>float</code> Az)</i></dt>
+<dd><p>Устанавливает соотношение размеров осей в отношении <var>Ax:Ay:Az</var>. Для лучшего вида следует вызывать после функции Rotate().
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Perspective-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Perspective</b><i> (<code>float</code> a)</i></dt>
+<dt><a name="index-mgl_005fperspective"></a><u>Функция С:</u> <code>void</code> <b>mgl_perspective</b><i> (<code>HMGL</code> gr, <code>float</code> a)</i></dt>
+<dd><p>Добавляет (включает) перспективу для графика. Параметр <em>a ~ 1/z_eff \in [0,1)</em>. По умолчанию (<code>a=0</code>) перспектива отключена.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Identity-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Identity</b><i> (<code>bool</code> rel=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fidentity"></a><u>Функция С:</u> <code>void</code> <b>mgl_identity</b><i> (<code>HMGL</code> gr, <code>int</code> rel)</i></dt>
+<dd><p>Сбрасывает матрицу трансформации. Эквивалентно вызову <code>InPlot(0,1,0,1,rel)</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Push"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Push</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fmat_005fpush"></a><u>C function:</u> <code>void</code> <b>mgl_mat_push</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Помещает матрицу преобразования в стек. Позднее вы можете восстановить текущее состояние с помощью функции Pop(). Стек может содержать до 10 матриц.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Pop"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pop</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fmat_005fpop"></a><u>C function:</u> <code>void</code> <b>mgl_mat_pop</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Заменяет (восстанавливает) матрицу преобразования на последнюю помещенную в стек матрицу.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Export-to-file"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transformation-matrix" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Primitives-drawing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_042d_043a_0441_043f_043e_0440_0442-_0432-_0444_0430_0439_043b"></a>
+<h2 class="section">3.4 Экспорт в файл</h2>
+<a name="index-WriteFrame"></a>
+<a name="index-WritePNG"></a>
+<a name="index-WriteGIF"></a>
+<a name="index-WriteIDTF"></a>
+<a name="index-WriteSVG"></a>
+<a name="index-WriteBMP"></a>
+<a name="index-WriteEPS"></a>
+<a name="index-WriteJPEG"></a>
+<a name="index-SetSize"></a>
+<a name="index-Flush"></a>
+<a name="index-Finish"></a>
+<a name="index-ShowImage"></a>
+
+<p>Эти функции экспортируют текущую картинку (кадр) в файл. Имя файла <var>fname</var> должно иметь соответствующее расширение. Параметр <var>descr</var> дает краткое описание картинки. Пока прозрачность поддерживается только для форматов PNG, SVG и IDTF.
+</p>
+<dl>
+<dt><a name="index-WriteFrame-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteFrame</b><i> (<code>const char *</code>fname=<code>&quot;&quot;</code>, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fframe"></a><u>Функция С:</u> <code>void</code> <b>mgl_write_frame</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Экспортирует текущий кадр в файл <var>fname</var> с типом, определяемым по расширению. Параметр <var>descr</var> добавляет описание (может быть пустым). Если <var>fname</var> пустой, то используется имя &lsquo;<samp>frame####.jpg</samp>&rsquo;, где &lsquo;<samp>####</samp>&rsquo; &ndash; текущий номер кадра и имя &lsquo;<samp>frame</samp>&rsquo; определяется переменной <var>PlotId</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WritePNG-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WritePNG</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>, <code>int</code> compr=<code>&quot;&quot;</code>, <code>bool</code> alpha=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fpng"></a><u>Функция С:</u> <code>void</code> <b>mgl_write_png</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fpng_005fsolid"></a><u>Функция С:</u> <code>void</code> <b>mgl_write_png_solid</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Экспортирует текущий кадр в PNG файл. Параметры функции следующие: <var>fname</var> &ndash; имя файла, <var>descr</var> &ndash; описание файла, <var>alpha</var> &ndash; прозрачность фона.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteJPEG-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteJPEG</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fjpg"></a><u>Функция С:</u> <code>void</code> <b>mgl_write_jpg</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Экспортирует текущий кадр в JPEG файл. Параметры функции следующие: <var>fname</var> &ndash; имя файла, <var>descr</var> &ndash; описание файла. Если при компиляции MathGL не был определен флаг HAVE_JPEG, то экспорт в файл не производится.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteGIF-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteGIF</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fgif"></a><u>Функция С:</u> <code>void</code> <b>mgl_write_gif</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Экспортирует текущий кадр в GIF файл. Параметры функции следующие: <var>fname</var> &ndash; имя файла, <var>descr</var> &ndash; описание файла. Если при компиляции MathGL не был определен флаг HAVE_GIF, то экспорт в файл не производится.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteBMP-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteBMP</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fbmp"></a><u>Функция С:</u> <code>void</code> <b>mgl_write_bmp</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Экспортирует текущий кадр в BMP файл. Параметры функции следующие: <var>fname</var> &ndash; имя файла, <var>descr</var> &ndash; описание файла.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteEPS-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteEPS</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005feps"></a><u>Функция С:</u> <code>void</code> <b>mgl_write_eps</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Экспортирует текущий кадр в EPS файл, используя векторное представление графика (класс mglGraphPS). Вследствие чего не рекомендуется сохранять большие графики (поверхности, а особенно поверхности уровня) в формате EPS из-за большого размера файла. Хотя никаких внутренних ограничений на размер выходного файла нет. Для них лучше использовать растровый формат (например, PNG или JPEG). Параметры функции следующие: <var>fname</var> &ndash; имя файла, <var>descr</var> &ndash; описание файла. Если имя файла оканчивается на &lsquo;<samp>z</samp>&rsquo; (например, &lsquo;<samp>fname.eps.gz</samp>&rsquo;), то файл автоматически архивируется в формате gzip.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteSVG-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteSVG</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fsvg"></a><u>Функция С:</u> <code>void</code> <b>mgl_write_svg</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Экспортирует текущий кадр в SVG файл, используя векторное представление графика (класс mglGraphPS). Вследствие чего не рекомендуется сохранять большие графики (поверхности, а особенно поверхности уровня) в формате SVG из-за большого размера файла. Хотя никаких внутренних ограничений на размер выходного файла нет. Для них лучше использовать растровый формат (например, PNG или JPEG). Параметры функции следующие: <var>fname</var> &ndash; имя файла, <var>descr</var> &ndash; описание файла. Если имя файла оканчивается на &lsquo;<samp>z</samp>&rsquo; (например, &lsquo;<samp>fname.svgz</samp>&rsquo;), то файл автоматически архивируется в формате gzip.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-WriteIDTF-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>WriteIDTF</b><i> (<code>const char *</code>fname, <code>const char *</code>descr=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fwrite_005fidtf"></a><u>Функция С:</u> <code>void</code> <b>mgl_write_idtf</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>const char *</code>descr)</i></dt>
+<dd><p>Экспортирует текущий кадр в IDTF файл, используя векторное представление графика (класс mglGraphIDTF). Параметры функции следующие: <var>fname</var> &ndash; имя файла, <var>descr</var> &ndash; описание файла.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ShowImage-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ShowImage</b><i> (<code>const char *</code>viewer=<code>&quot;kuickshow&quot;</code>, <code>bool</code> nowait=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fshow_005fimage"></a><u>Функция С:</u> <code>void</code> <b>mgl_show_image</b><i> (<code>const char *</code>viewer, <code>int</code> nowait)</i></dt>
+<dd><p>Отображает текущий кадр используя внешнюю программу просмотра <var>viewer</var>. Функция сохраняет картинку во временный файл и вызывает <var>viewer</var> для его отображения. Если <var>nowait</var>=<code>true</code>, то функция возвращает управление немедленно &ndash; не ждет пока окно просмотра будет закрыто.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetSize-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetSize</b><i> (<code>int</code> width, <code>int</code> height)</i></dt>
+<dt><a name="index-mgl_005fset_005fsize"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_size</b><i> (<code>HMGL</code> gr, <code>int</code> width, <code>int</code> height)</i></dt>
+<dd><p>Изменяет размер картинки в пикселях. Функция должна вызываться <strong>перед</strong> любыми функциями построения потому что полностью очищает содержимое рисунка.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Flush-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flush</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fflush"></a><u>Функция С:</u> <code>void</code> <b>mgl_flush</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Завершает рисование текущих графических команд, подготавливает кадр к экспорту в файл и служит для разделения объектов в mglGraphIDTF. Однако обычно данная функция вызывается внутри библиотеки.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Finish-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Finish</b><i> ()</i></dt>
+<dd><p>Завершает рисование и готовит растровое изображение.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Primitives-drawing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Export-to-file" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0420_0438_0441_043e_0432_0430_043d_0438e-_043f_0440_0438_043c_0438_0442_0438_0432_043e_0432-1"></a>
+<h2 class="section">3.5 Рисование примитивов</h2>
+<a name="index-Ball"></a>
+<a name="index-Clf"></a>
+<a name="index-Line"></a>
+<a name="index-Curve"></a>
+<a name="index-Glyph"></a>
+<a name="index-Mark"></a>
+<a name="index-Error"></a>
+<a name="index-Face"></a>
+<a name="index-FaceX"></a>
+<a name="index-FaceY"></a>
+<a name="index-FaceZ"></a>
+<a name="index-Cone"></a>
+<a name="index-Drop"></a>
+<a name="index-Sphere"></a>
+
+<p>Эти функции рисуют рисуют простые объекты типа линий, точек, сфер, капель, конусов, и т.д.
+</p>
+<dl>
+<dt><a name="index-Clf-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Clf</b><i> (<code>mglColor</code> Back=<code>WC</code>)</i></dt>
+<dt><a name="index-mgl_005fclf"></a><u>Функция С:</u> <code>void</code> <b>mgl_clf</b><i> (<code>HMGL</code> gr)</i></dt>
+<dt><a name="index-mgl_005fclf_005frgb"></a><u>Функция С:</u> <code>void</code> <b>mgl_clf_rgb</b><i> (<code>HMGL</code> gr, <code>float</code> r, <code>float</code> g, <code>float</code> b)</i></dt>
+<dd><p>Очищает рисунок и заполняет его цветом <var>Back</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Ball-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Ball</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>mglColor</code> col=<code>RC</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-Ball-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Ball</b><i> (<code>mglPoint</code> p, <code>char</code> col=<code>'r'</code>)</i></dt>
+<dt><a name="index-Ball-3"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Ball</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> col=<code>'r'</code>)</i></dt>
+<dt><a name="index-mgl_005fball"></a><u>Функция С:</u> <code>void</code> <b>mgl_ball</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dt><a name="index-mgl_005fball_005frgb"></a><u>Функция С:</u> <code>void</code> <b>mgl_ball_rgb</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> r, <code>float</code> g, <code>float</code> b, <code>float</code> alpha)</i></dt>
+<dt><a name="index-mgl_005fball_005fstr"></a><u>Функция С:</u> <code>void</code> <b>mgl_ball_str</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> col)</i></dt>
+<dd><p>Рисует точку (шарик) с координатами <var>p</var>={<var>x</var>, <var>y</var>, <var>z</var>} и цветом <var>col</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Error-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Error</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> e, <code>char</code> *pen=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Рисует 3d error box в точке <var>p</var> размером <var>e</var> и стилем <var>pen</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Line-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Line</b><i> (<code>mglPoint</code> p1, <code>mglPoint</code> p2, <code>char *</code>stl=<code>&quot;B&quot;</code>, <code>int</code>num=<code>2</code>)</i></dt>
+<dt><a name="index-Line-2"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Line</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>char *</code>stl=<code>&quot;B&quot;</code>, <code>int</code>num=<code>2</code>)</i></dt>
+<dt><a name="index-mgl_005fline"></a><u>Функция С:</u> <code>void</code> <b>mgl_line</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>char *</code>stl, <code>int</code>num)</i></dt>
+<dd><p>Рисует геодезическую линию (декартовых координатах &ndash; прямую) из точки <var>p1</var> в <var>p2</var> использую стиль линии <var>stl</var>. Параметр <var>num</var> определяет гладкость линии (число точек на линии). Если <var>num</var>=<code>2</code>, то рисуется прямая даже в криволинейных координатах. Наоборот, для больших значений (например, =<code>100</code>) рисуется геодезическая линия (окружность в полярных координатах, парабола в параболических и т.д.). Линия рисуется даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Curve-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Curve</b><i> (<code>mglPoint</code> p1, <code>mglPoint</code> d1, <code>mglPoint</code> p2, <code>mglPoint</code> d2, <code>const char *</code>stl=<code>&quot;B&quot;</code>, <code>int</code> num=<code>100</code>)</i></dt>
+<dt><a name="index-Curve-2"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Curve</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> dx1, <code>float</code> dy1, <code>float</code> dz1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>float</code> dx2, <code>float</code> dy2, <code>float</code> dz2, <code>const char *</code>stl=<code>&quot;B&quot;</code>, <code>int</code> num=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005fcurve"></a><u>Функция С:</u> <code>void</code> <b>mgl_curve</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> dx1, <code>float</code> dy1, <code>float</code> dz1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>float</code> dx2, <code>float</code> dy2, <code>float</code> dz2, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Рисует кривую Безье из точки <var>p1</var> в <var>p2</var> используя стиль линии <var>stl</var>. Касательные в точках пропорциональны <var>d1</var>, <var>d2</var>. Параметр <var>num</var> определяет гладкость линии (число точек на линии). Кривая рисуется даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Face-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Face</b><i> (<code>mglPoint</code> p1, <code>mglPoint</code> p2, <code>mglPoint</code> p3, <code>mglPoint</code> p4, <code>const char *</code>stl=<code>&quot;w&quot;</code>, <code>int</code> num=<code>2</code>, <code>float</code> val=<code>NAN</code>)</i></dt>
+<dd><p>Рисует заполненный четырехугольник (грань) с углами в точках <var>p1</var>, <var>p2</var>, <var>p3</var>, <var>p4</var> и цветом(-ами) <var>stl</var>. При этом цвет может быть один для всей грани, или различным если указаны все 4 цвета. В последнем случае параметр <var>val</var> (если не <code>NAN</code>) задает цвет в соответствии с цветовой схемой. Грань будет нарисована даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FaceX-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>FaceX</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wy, <code>float</code> wz, <code>const char *</code>stl=<code>&quot;w&quot;</code>, <code>float</code> dx=<code>0</code>, <code>float</code> dy=<code>0</code>)</i></dt>
+<dt><a name="index-FaceY-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>FaceY</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wx, <code>float</code> wz, <code>const char *</code>stl=<code>&quot;w&quot;</code>, <code>float</code> dx=<code>0</code>, <code>float</code> dy=<code>0</code>)</i></dt>
+<dt><a name="index-FaceZ-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>FaceZ</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wx, <code>float</code> wy, <code>const char *</code>stl=<code>&quot;w&quot;</code>, <code>float</code> dx=<code>0</code>, <code>float</code> dy=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005ffacex"></a><u>Функция С:</u> <code>void</code> <b>mgl_facex</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wy, <code>float</code> wz, <code>const char *</code>stl, <code>float</code> d1, <code>float</code> d2)</i></dt>
+<dt><a name="index-mgl_005ffacey"></a><u>Функция С:</u> <code>void</code> <b>mgl_facey</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wx, <code>float</code> wz, <code>const char *</code>stl, <code>float</code> d1, <code>float</code> d2)</i></dt>
+<dt><a name="index-mgl_005ffacez"></a><u>Функция С:</u> <code>void</code> <b>mgl_facez</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> wx, <code>float</code> wy, <code>const char *</code>stl, <code>float</code> d1, <code>float</code> d2)</i></dt>
+<dd><p>Рисует закрашенный прямоугольник (грань) перпендикулярно оси [x,y,z] в точке {<var>x0</var>, <var>y0</var>, <var>z0</var>} цветом <var>stl</var> и шириной <var>wx</var>, <var>wy</var>, <var>wz</var> вдоль соответствующего направления. При этом цвет может быть один для всей грани, или различным для разных вершин если указаны все 4 цвета. Параметры <var>d1</var>!=0, <var>d2</var>!=0 задают дополнительный сдвиг последней точки (т.е. рисуют четырехугольник).Грань будет нарисована даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Sphere-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Sphere</b><i> (<code>mglPoint</code> p, <code>float</code> r, <code>const char *</code>stl=<code>&quot;r&quot;</code>)</i></dt>
+<dt><a name="index-Sphere-2"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Sphere</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> r, <code>const char *</code>stl=<code>&quot;r&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsphere"></a><u>Функция С:</u> <code>void</code> <b>mgl_sphere</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> r, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует сферу радиуса <var>r</var> с центром в точке <var>p</var>={<var>x</var>, <var>y</var>, <var>z</var>} цветом <var>stl</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Drop-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Drop</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> q, <code>float</code> r, <code>mglColor</code> col, <code>float</code> shift=<code>1</code>, <code>float</code> ap=<code>1</code>)</i></dt>
+<dt><a name="index-Drop-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Drop</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> q, <code>float</code> r, <code>const char *</code>col=&quot;r&quot;, <code>float</code> shift=<code>1</code>, <code>float</code> ap=<code>1</code>)</i></dt>
+<dt><a name="index-Drop-3"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Drop</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>float</code> r, <code>const char *</code>col=&quot;r&quot;, <code>float</code> shift=<code>1</code>, <code>float</code> ap=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdrop"></a><u>Функция С:</u> <code>void</code> <b>mgl_drop</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>float</code> r, <code>const char *</code>col, <code>float</code> shift, <code>float</code> ap)</i></dt>
+<dd><p>Рисует каплю радиуса <var>r</var> в точке <var>p</var> вытянутую вдоль направления <var>q</var> цветом <var>col</var>. Параметр <var>shift</var> определяет степень вытянутости: &lsquo;<samp>0</samp>&rsquo; &ndash; сфера, &lsquo;<samp>1</samp>&rsquo; &ndash; классическая капля. Параметр <var>ap</var> определяет относительную ширину капли (аналог &quot;эллиптичности&quot; для сферы). См. раздел <a href="mathgl_ru_9.html#Drops-sample">Drops &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cone-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Cone</b><i> (<code>mglPoint</code> p1, <code>mglPoint</code> p2, <code>float</code> r1, <code>float</code> r2=<code>-1</code>, <code>const char *</code>stl=<code>&quot;B&quot;</code>, <code>bool</code> edge=<code>false</code>)</i></dt>
+<dt><a name="index-Cone-2"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Cone</b><i> (<code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>float</code> r1, <code>float</code> r2=<code>-1</code>, <code>const char *</code>stl=<code>&quot;B&quot;</code>, <code>bool</code> edge=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fcone"></a><u>Функция С:</u> <code>void</code> <b>mgl_cone</b><i> (<code>HMGL</code> gr, <code>float</code> x1, <code>float</code> y1, <code>float</code> z1, <code>float</code> x2, <code>float</code> y2, <code>float</code> z2, <code>float</code> r1, <code>float</code> r2, <code>const char *</code>stl, <code>int</code> draw_edge)</i></dt>
+<dd><p>Рисует трубу (или усеченный конус если <var>edge</var>=<code>false</code>) между точками <var>p1</var>, <var>p2</var> с радиусами на концах <var>r1</var>, <var>r2</var>. Если <var>r2</var>&lt;0, то полагается <var>r2</var>=<var>r1</var>. Цвет конуса задается строкой <var>stl</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Mark-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Mark</b><i> (<code>mglPoint</code> p, <code>char</code> mark=<code>'.'</code>)</i></dt>
+<dt><a name="index-Mark-2"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Mark</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> mark=<code>'.'</code>)</i></dt>
+<dt><a name="index-mgl_005fmark"></a><u>Функция С:</u> <code>void</code> <b>mgl_mark</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>char</code> mark)</i></dt>
+<dd><p>Рисует маркер типа <var>mark</var> в точке <var>p</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Glyph-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Glyph</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> f, <code>int</code> nt, <code>const short *</code>trig, <code>int</code> nl, <code>const short *</code>line)</i></dt>
+<dd><p>Рисует набор треугольников (или линий если <var>trig</var>=<code>NULL</code>) для буквы расположенной в точке {<var>x</var>, <var>y</var>}. Значения массивов будут нормированы на множитель <var>f</var>. Обычно эта функция используется внутри библиотеки.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Text-printing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Primitives-drawing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-Colorbar" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0412_044b_0432_043e_0434-_0442e_043a_0441_0442_0430"></a>
+<h2 class="section">3.6 Вывод текста</h2>
+<a name="index-Puts"></a>
+<a name="index-Putsw"></a>
+<a name="index-Text"></a>
+<a name="index-Title"></a>
+
+<p>Функции для вывода текста позволяют вывести строку текста в произвольном месте рисунка, в произвольном направлении и вдоль произвольной кривой. Для низкоуровневого вывода и разбора ТеХ-их выражений используется класс mglFont (see section <a href="mathgl_ru_7.html#mglFont-class">mglFont class</a>). Он позволяет использовать произвольное начертание шрифта и многие ТеХ-ие команды (детальнее see section <a href="mathgl_ru_1.html#Font-styles">Стиль текста</a>). Все функции вывода текста имеют варианты для 8-bit строк (<code>char *</code>) и для Unicode строк (<code>wchar_t *</code>). В первом случае используется конверсия из текущей локали, т.е. иногда вам требуется явно указать локаль с помощью функции <code>setlocale()</code>. Аргумент <var>size</var> определяет размер текста: размер шрифта если положителен или относительный размер (=-<var>size</var>*<var>FontSize</var>) если отрицателен. Начертание шрифта (STIX, arial, courier, times и др) можно изменить с помощью функций SetFont(), GetFont(). See section <a href="#Font-settings">Шрифты</a>.
+</p>
+<p>Параметры шрифта задаются строкой, которая может содержать символы стиля (&lsquo;<samp>rbiwou</samp>&rsquo;) и/или выравнивания (&lsquo;<samp>LRC</samp>&rsquo;). Также строка может содержать символы цвета &lsquo;<samp>wkrgbcymhRGBCYMHW</samp>&rsquo; (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>) после символа &lsquo;<samp>:</samp>&rsquo;. Стили шрифта: &lsquo;<samp>r</samp>&rsquo; &ndash; прямой, &lsquo;<samp>i</samp>&rsquo; &ndash; курсив, &lsquo;<samp>b</samp>&rsquo; &ndash; жирный, &lsquo;<samp>w</samp>&rsquo; &ndash; контурный, &lsquo;<samp>o</samp>&rsquo; &ndash; надчеркнутый, &lsquo;<samp>u</samp>&rsquo; &ndash; подчеркнутый. По умолчанию используется прямой шрифт. Типы выравнивания: &lsquo;<samp>L</samp>&rsquo; &ndash; по левому краю (по умолчанию), &lsquo;<samp>C</samp>&rsquo; &ndash; по центру, &lsquo;<samp>R</samp>&rsquo; &ndash; по правому краю. Например, строка &lsquo;<samp>iC:b</samp>&rsquo; соответствует курсиву синего цвета с выравниванием по центру.
+</p>
+<p>Если строка содержит символы &lsquo;<samp>aA</samp>&rsquo;, то текст выводится в абсолютных координатах (полагаются в диапазоне [0,1]). При этом используются координаты относительно рисунка (если указано &lsquo;<samp>A</samp>&rsquo;) или относительно последнего SubPlot()/InPlot() (если указано &lsquo;<samp>a</samp>&rsquo;).
+</p>
+<dl>
+<dt><a name="index-Puts-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Puts</b><i> (<code>mglPoint</code> p, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>, <code>char</code> dir=<code>0</code>, <code>float</code> shift=<code>0</code>)</i></dt>
+<dt><a name="index-Putsw-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Putsw</b><i> (<code>mglPoint</code> p, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>, <code>char</code> dir=<code>0</code>, <code>float</code> shift=<code>0</code>)</i></dt>
+<dt><a name="index-Puts-2"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Puts</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>, <code>char</code> dir=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fputs"></a><u>Функция С:</u> <code>void</code> <b>mgl_puts</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const char *</code>text)</i></dt>
+<dt><a name="index-mgl_005fputsw"></a><u>Функция С:</u> <code>void</code> <b>mgl_putsw</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const wchar_t *</code>text)</i></dt>
+<dt><a name="index-mgl_005fputs_005fext"></a><u>Функция С:</u> <code>void</code> <b>mgl_puts_ext</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const char *</code>text, <code>const char *</code>font, <code>float</code> size, <code>char</code> dir)</i></dt>
+<dt><a name="index-mgl_005fputsw_005fext"></a><u>Функция С:</u> <code>void</code> <b>mgl_putsw_ext</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const wchar_t *</code>text, <code>const char *</code>font, <code>float</code> size, <code>char</code> dir)</i></dt>
+<dd><p>Выводит строку <var>text</var> от точки <var>p</var> шрифтом определяемым строкой <var>how</var>. Параметр <var>dir</var> указывает дополнительное выравнивание строки: &lsquo;<samp>x</samp>&rsquo; &ndash; как метку вдоль оси x, &lsquo;<samp>y</samp>&rsquo; &ndash; как метку вдоль оси y, &lsquo;<samp>z</samp>&rsquo; &ndash; как метку вдоль оси z, &lsquo;<samp>i</samp>&rsquo; &ndash; как метку вдоль оси x с инвертированием, &lsquo;<samp>t</samp>&rsquo; &ndash; без выравнивания (по умолчанию), &lsquo;<samp>n</samp>&rsquo; &ndash; выровнять в плоскости x-y.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Puts-3"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>float</code> <b>Puts</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> l, <code>const char *</code>text, <code>char</code>where=<code>'t'</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-Putsw-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>float</code> <b>Putsw</b><i> (<code>mglPoint</code> p, <code>mglPoint</code> l, <code>const wchar_t *</code>text, <code>char</code>where=<code>'t'</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-Puts-4"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Puts</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>const char *</code>text, <code>char</code>where=<code>'t'</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fputs_005fdir"></a><u>Функция С:</u> <code>void</code> <b>mgl_puts_dir</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>const char *</code>text, <code>float</code> size)</i></dt>
+<dt><a name="index-mgl_005fputsw_005fdir"></a><u>Функция С:</u> <code>void</code> <b>mgl_putsw_dir</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> dx, <code>float</code> dy, <code>float</code> dz, <code>const wchar_t *</code>text, <code>float</code> size)</i></dt>
+<dd><p>Выводит строку <var>text</var> от точки <var>p</var> вдоль направления <var>l</var>. Параметр <var>where</var> указывает выводить текст над линией (&lsquo;<samp>T</samp>&rsquo;) или под ней (&lsquo;<samp>t</samp>&rsquo;). Функция возвращает ширину строки.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Printf"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Printf</b><i> (<code>mglPoint</code> p, <code>const char *</code>arg, ...)</i></dt>
+<dd><p>Выводит форматированную строку от точки <var>p</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Label"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Label</b><i> (<code>float</code> x, <code>float</code> y, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-Labelw"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Labelw</b><i> (<code>float</code> x, <code>float</code> y, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005flabel_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_label_xy</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>const char *</code>text, <code>const char *</code>font, <code>float</code> size)</i></dt>
+<dt><a name="index-mgl_005flabelw_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_labelw_xy</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>const wchar_t *</code>text, <code>const char *</code>font, <code>float</code> size)</i></dt>
+<dd><p>Выводит строку <var>text</var> в произвольном месте экрана от точки {<var>x</var>, <var>y</var>} шрифтом указанным <var>font</var>. Координаты <code>x, y</code> считаются лежащими в диапазоне [0,1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Title-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Title</b><i> (<code>const char *</code>text, <code>const char *</code>font=<code>0</code>, <code>float</code> size=<code>-2</code>)</i></dt>
+<dt><a name="index-Title-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Title</b><i> (<code>const wchar_t *</code>text, <code>const char *</code>font=<code>0</code>, <code>float</code> size=<code>-2</code>)</i></dt>
+<dt><a name="index-Title-3"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>Title</b><i> (<code>const char *</code>text, <code>const char *</code>font=<code>0</code>, <code>int</code> size=<code>-2</code>)</i></dt>
+<dt><a name="index-mgl_005ftitle"></a><u>Функция С:</u> <code>void</code> <b>mgl_title</b><i> (<code>HMGL</code> gr, <code>const char *</code>text, <code>const char *</code>font, <code>int</code> size)</i></dt>
+<dt><a name="index-mgl_005ftitlew"></a><u>Функция С:</u> <code>void</code> <b>mgl_titlew</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>text, <code>const char *</code>font, <code>int</code> size)</i></dt>
+<dd><p>Выводит строку <var>text</var> как заголовок рисунка (по верху рисунка). Может использоваться из любого места (даже изнутри SubPlot()).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Text-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>y, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-4"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-5"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-Text-6"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Text</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const wchar_t *</code>text, <code>const char *</code>font=<code>&quot;&quot;</code>, float size=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005ftext_005fy"></a><u>Функция С:</u> <code>void</code> <b>mgl_text_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>text, <code>const char *</code>font, float size)</i></dt>
+<dt><a name="index-mgl_005ftext_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_text_xy</b><i> (<code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>text, <code>const char *</code>font, float size)</i></dt>
+<dt><a name="index-mgl_005ftext_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_text_xyz</b><i> (<code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>text, <code>const char *</code>font, float size)</i></dt>
+<dd><p>Выводит строку <var>text</var> вдоль кривой {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} шрифтом <var>font</var>. Строка <var>font</var> может содержать символы: &lsquo;<samp>t</samp>&rsquo; для вывода текста под кривой (по умолчанию), или &lsquo;<samp>T</samp>&rsquo; для вывода текста над кривой. Размеры по 1-ой размерности должны быть одинаковы для всех массивов <code>x.nx=y.nx=z.nx</code>. Если массив <var>x</var> не указан, то используется &quot;автоматический&quot; массив со значениями в диапазоне [<var>Min</var>.x, <var>Max</var>.x] (see section <a href="#Ranges-_0028bounding-box_0029">Масштаб осей координат</a>). Если массив <var>z</var> не указан, то используется <var>z</var>[i] = <var>zVal</var>. См. раздел <a href="mathgl_ru_9.html#Text-sample">Text &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axis-and-Colorbar"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_0438-_0438-Colorbar"></a>
+<h2 class="section">3.7 Оси и Colorbar</h2>
+<a name="index-Axis-2"></a>
+<a name="index-Box"></a>
+<a name="index-Grid"></a>
+<a name="index-Colorbar"></a>
+<a name="index-Label-1"></a>
+
+<p>Эти функции рисуют объекты для &quot;измерения&quot; типа осей координат, цветовой таблицы (colorbar), сетку по осям, обрамляющий параллелепипед и подписи по осям координат. См. также see section <a href="#Axis-settings">Настройки осей координат</a>.
+</p>
+<dl>
+<dt><a name="index-Axis-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axis</b><i> (<code>const char *</code>dir=<code>&quot;xyz&quot;</code>, <code>bool</code> adjust=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005faxis"></a><u>Функция С:</u> <code>void</code> <b>mgl_axis</b><i> (<code>HMGL</code> gr, <code>const char *</code>dir)</i></dt>
+<dd><p>Рисует оси координат и метки на них (see section <a href="#Axis-settings">Настройки осей координат</a>) в направлениях, указанных строкой <var>dir</var>. Если строка содержит символ &lsquo;<samp>_</samp>&rsquo;, то подписи меток отображаться не будут. Шрифт подписей определяется функцией <code>SetFontDef()</code> (see section <a href="#Font-settings">Шрифты</a>). Метки будут &quot;подогнаны&quot; если <var>adjust</var>=<code>true</code> (с помощью вызова функции <code>AdjustTicks()</code>). 
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Colorbar-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Colorbar</b><i> (<code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> pos=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcolorbar"></a><u>Функция С:</u> <code>void</code> <b>mgl_colorbar</b><i> (<code>HMGL</code> gr, <code>const char *</code>sch, <code>int</code> pos)</i></dt>
+<dd><p>Рисует полосу соответствия цвета и числовых значений (colorbar) для цветовой схемы <var>sch</var> (используется текущая для <code>sch=&quot;&quot;</code>) с краю от графика. Параметр <var>pos</var> задает местоположение: &lsquo;<samp>0</samp>&rsquo; - справа (по умолчанию), &lsquo;<samp>1</samp>&rsquo; - слева, &lsquo;<samp>2</samp>&rsquo; - сверху, &lsquo;<samp>3</samp>&rsquo; - снизу. Если строка <var>sch</var> содержит &lsquo;<samp>&lt;&gt;^_</samp>&rsquo;, то параметр <var>pos</var> определяется как: <code>pos=0</code> для &lsquo;<samp>&gt;</samp>&rsquo; (справа), <code>pos=1</code> для &lsquo;<samp>&lt;</samp>&rsquo; (слева), <code>pos=2</code> для &lsquo;<samp>^</samp>&rsquo; (сверху), <code>pos=3</code> для &lsquo;<samp>_</samp>&rsquo; (снизу). Если строка содержит &lsquo;<samp>A</samp>&rsquo;, то используются абсолютные координаты (относительно рисунка). См. раздел <a href="mathgl_ru_9.html#Dens-sample">Dens &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Colorbar-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Colorbar</b><i> (<code>const mglData &amp;</code>v, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> where=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcolorbar_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_colorbar_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const char *</code>sch, <code>int</code> where)</i></dt>
+<dd><p>Аналогично предыдущему, но для цветовой схемы без сглаживания с заданными значениями <var>v</var>. См. раздел <a href="mathgl_ru_9.html#ContD-sample">ContD &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Colorbar-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Colorbar</b><i> (<code>const char *</code>sch, <code>int</code> where, <code>float</code> x, <code>float</code> y, <code>float</code> w, <code>float</code> h)</i></dt>
+<dt><a name="index-Colorbar-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Colorbar</b><i> (<code>int</code> where, <code>float</code> x, <code>float</code> y, <code>float</code> w, <code>float</code> h)</i></dt>
+<dt><a name="index-mgl_005fcolorbar_005fext"></a><u>Функция С:</u> <code>void</code> <b>mgl_colorbar_ext</b><i> (<code>HMGL</code> gr, <code>const char *</code>sch, <code>int</code> where, <code>float</code> x, <code>float</code> y, <code>float</code> w, <code>float</code> h)</i></dt>
+<dd><p>Аналогично первому, но в произвольном месте графика {<var>x</var>, <var>y</var>} (полагаются в диапазоне [0,1]). Параметры <var>w</var>, <var>h</var> задают относительную ширину и высоту colorbar.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Colorbar-5"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Colorbar</b><i> (<code>const mglData &amp;</code>v, <code>const char *</code>sch, <code>int</code> where, <code>float</code> x, <code>float</code> y, <code>float</code> w, <code>float</code> h)</i></dt>
+<dd><p>Аналогично предыдущему, но для цветовой схемы без сглаживания с заданными значениями <var>v</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Grid-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid</b><i> (<code>const char *</code>dir=<code>&quot;xyz&quot;</code>, <code>const char *</code>pen=<code>&quot;B-&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005faxis_005fgrid"></a><u>Функция С:</u> <code>void</code> <b>mgl_axis_grid</b><i> (<code>HMGL</code> gr, <code>const char *</code>dir, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует линии сетки в направлениях перпендикулярным <var>dir</var>. Шаг сетки такой же как у меток осей координат. Стиль линий задается параметром <var>pen</var> (по умолчанию &ndash; сплошная темно синяя линия &lsquo;<samp>B-</samp>&rsquo;).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Box-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Box</b><i> (<code>const char *</code>col=<code>&quot;&quot;</code>, <code>bool</code> ticks=<code>true</code>)</i></dt>
+<dt><a name="index-Box-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Box</b><i> (<code>mglColor</code> col, <code>bool</code> ticks=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fbox"></a><u>Функция С:</u> <code>void</code> <b>mgl_box</b><i> (<code>HMGL</code> gr, <code>int</code> ticks)</i></dt>
+<dt><a name="index-mgl_005fbox_005frgb"></a><u>Функция С:</u> <code>void</code> <b>mgl_box_rgb</b><i> (<code>HMGL</code> gr, <code>float</code> r, <code>float</code> g, <code>float</code> b, <code>int</code> ticks)</i></dt>
+<dt><a name="index-mgl_005fbox_005fstr"></a><u>Функция С:</u> <code>void</code> <b>mgl_box_str</b><i> (<code>HMGL</code> gr, <code>const char *</code>col, <code>int</code> ticks)</i></dt>
+<dd><p>Рисует ограничивающий параллелепипед цветом <var>col</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Label-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Label</b><i> (<code>char</code> dir, <code>const char *</code>text, <code>float</code> pos=<code>0</code>, <code>float</code> size=<code>-1.4</code>, <code>float</code> shift=<code>0</code>)</i></dt>
+<dt><a name="index-Label-3"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Label</b><i> (<code>char</code> dir, <code>const wchar_t *</code>text, <code>float</code> pos=<code>0</code>, <code>float</code> size=<code>-1.4</code>, <code>float</code> shift=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005flabel"></a><u>Функция С:</u> <code>void</code> <b>mgl_label</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>const char *</code>text)</i></dt>
+<dt><a name="index-mgl_005flabel_005fext"></a><u>Функция С:</u> <code>void</code> <b>mgl_label_ext</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>const char *</code>text, <code>float</code> pos, <code>float</code> size, <code>float</code> shift)</i></dt>
+<dt><a name="index-mgl_005flabelw_005fext"></a><u>Функция С:</u> <code>void</code> <b>mgl_labelw_ext</b><i> (<code>HMGL</code> gr, <code>char</code> dir, <code>const wchar_t *</code>text, <code>float</code> pos, <code>float</code> size, <code>float</code> shift)</i></dt>
+<dd><p>Выводит подпись <var>text</var> для оси <var>dir</var>=&lsquo;<samp>x</samp>&rsquo;,&lsquo;<samp>y</samp>&rsquo;,&lsquo;<samp>z</samp>&rsquo;,&lsquo;<samp>t</samp>&rsquo; (где &lsquo;<samp>t</samp>&rsquo; &ndash; &ldquo;тернарная&rdquo; ось <em>t=1-x-y</em>). Параметр <var>pos</var> задает положение подписи: при <var>pos</var>=0 &ndash; по центру оси, при <var>pos</var>&gt;0 &ndash; около максимальных значений, при <var>pos</var>&lt;0 &ndash; около минимальных значений. Параметр <var>size</var> задает размер шрифта (по умолчанию в 1.4 раза больше чем у меток, see section <a href="#Font-settings">Шрифты</a>). See section <a href="#Text-printing">Вывод текста</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Legend"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-Colorbar" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041bege_043d_0434_0430"></a>
+<h2 class="section">3.8 Легенда</h2>
+<a name="index-Legend"></a>
+<a name="index-AddLegend"></a>
+<a name="index-ClearLegend"></a>
+<a name="index-SetLegendBox"></a>
+<a name="index-SetLegendMarks"></a>
+
+<p>Эти функции обеспечивают рисование легенды графика (полезно для <a href="#g_t1D-plotting">1D графики</a>). Запись в легенде состоит из двух строк: одна для стиля линии и маркеров, другая с текстом описания (с включенным разбором TeX-их команд). Можно использовать непосредственно массивы строк, или накопление во внутренние массивы с помощью функции AddLegend() с последующим отображением. Положение легенды можно задать автоматически или вручную. Параметры <var>font</var> и <var>size</var> задают стиль и размер шрифта (see section <a href="#Font-settings">Шрифты</a>). Параметр <var>llen</var> задает относительную ширину примера линии. Ели стиль линии пустой, то соответствующий текст печатается без отступа. Если строка <var>font</var> содержит символ &lsquo;<samp>A</samp>&rsquo;, то координаты легенды считаются относительно картинки (а не текущего subplot). См. раздел <a href="mathgl_ru_9.html#Legend-sample">Legend &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Legend-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Legend</b><i> (<code>int</code> where=<code>0x3</code>, <code>const char *</code>font=<code>&quot;rL&quot;</code>, <code>float</code> size=<code>-0.8</code>, <code>float</code> llen=<code>0.1</code>)</i></dt>
+<dt><a name="index-mgl_005flegend"></a><u>Функция С:</u> <code>void</code> <b>mgl_legend</b><i> (<code>HMGL</code> gr, <code>int</code> where, <code>const char *</code>font, <code>float</code> size, <code>float</code> llen)</i></dt>
+<dd><p>Рисует легенду из накопленных записей шрифтом <var>font</var> размером <var>size</var>. Параметр <var>where</var> задает положение легенды: &lsquo;<samp>0</samp>&rsquo; &ndash; в нижнем левом углу, &lsquo;<samp>1</samp>&rsquo; &ndash; нижнем правом углу, &lsquo;<samp>2</samp>&rsquo; &ndash; верхнем левом углу, &lsquo;<samp>3</samp>&rsquo; &ndash; верхнем правом углу (по умолчанию).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Legend-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Legend</b><i> (<code>int</code> n, <code>wchar_t **</code>text, <code>char **</code>style, <code>int</code> where=<code>0x3</code>, <code>const char *</code>font=<code>&quot;rL&quot;</code>, <code>float</code> size=<code>-0.8</code>, <code>float</code> llen=<code>0.1</code>)</i></dt>
+<dd><p>Рисует легенду из <var>n</var> записей шрифтом <var>font</var> размером <var>size</var>. Массив <var>text</var> задает описание кривых со стилем <var>style</var> (включая маркеры). Параметр <var>where</var> задает положение легенды: &lsquo;<samp>0</samp>&rsquo; &ndash; в нижнем левом углу, &lsquo;<samp>1</samp>&rsquo; &ndash; нижнем правом углу, &lsquo;<samp>2</samp>&rsquo; &ndash; верхнем левом углу, &lsquo;<samp>3</samp>&rsquo; &ndash; верхнем правом углу (по умолчанию).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Legend-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Legend</b><i> (<code>float</code> x, <code>float</code> y, <code>const char *</code>font=<code>&quot;rL&quot;</code>, <code>float</code> size=<code>-0.8</code>, <code>float</code> llen=<code>0.1</code>)</i></dt>
+<dt><a name="index-mgl_005flegend_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_legend_xy</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>const char *</code>font, <code>float</code> size, <code>float</code> llen)</i></dt>
+<dd><p>Рисует легенду из накопленных записей шрифтом <var>font</var> размером <var>size</var>. Положение легенды задается параметрами <var>x</var>, <var>y</var>, которые полагаются нормированными в диапазоне [0,1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Legend-4"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Legend</b><i> (<code>int</code> n, <code>wchar_t **</code>text, <code>char **</code>style, <code>float</code> x, <code>float</code> y, <code>const char *</code>font=<code>&quot;rL&quot;</code>, <code>float</code> size=<code>-0.8</code>, <code>float</code> llen=<code>0.1</code>)</i></dt>
+<dd><p>Рисует легенду из <var>n</var> записей шрифтом <var>font</var> размером <var>size</var>. Массив <var>text</var> задает описание кривых со стилем <var>style</var> (включая маркеры). Положение легенды задается параметрами <var>x</var>, <var>y</var>, которые полагаются нормированными в диапазоне [0,1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AddLegend-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>AddLegend</b><i> (<code>const char *</code>text, <code>const char *</code>style)</i></dt>
+<dt><a name="index-AddLegend-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>AddLegend</b><i> (<code>const wchar_t *</code>text, <code>const char *</code>style)</i></dt>
+<dt><a name="index-mgl_005fadd_005flegend"></a><u>Функция С:</u> <code>void</code> <b>mgl_add_legend</b><i> (<code>HMGL</code> gr, <code>const char *</code>text, <code>const char *</code>style)</i></dt>
+<dt><a name="index-mgl_005fadd_005flegendw"></a><u>Функция С:</u> <code>void</code> <b>mgl_add_legendw</b><i> (<code>HMGL</code> gr, <code>const wchar_t *</code>text, <code>const char *</code>style)</i></dt>
+<dd><p>Добавляет описание <var>text</var> кривой со стилем <var>style</var> (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>) во внутренний массив записей легенды. Максимальное число записей 100.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ClearLegend-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ClearLegend</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fclear_005flegend"></a><u>Функция С:</u> <code>void</code> <b>mgl_clear_legend</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Очищает внутренний массив записей легенды.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetLegendBox-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetLegendBox</b><i> (<code>bool</code> enable)</i></dt>
+<dt><a name="index-mgl_005fset_005flegend_005fbox"></a><u>Функция С:</u> <code>void</code> <b>mgl_set_legend_box</b><i> (<code>HMGL</code> gr, <code>int</code> enable)</i></dt>
+<dd><p>Включает/выключает рисование прямоугольника вокруг легенды. По умолчанию (=<code>true</code>) прямоугольник рисуется.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SetLegendMarks-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SetLegendMarks</b><i> (<code>int</code> num)</i></dt>
+<dt><a name="index-mgl_005fset_005flegend_005fmarks"></a><u>C function:</u> <code>void</code> <b>mgl_set_legend_marks</b><i> (<code>HMGL</code> gr, <code>int</code> num)</i></dt>
+<dd><p>Задает число маркеров в легенде. По умолчанию используется 1 маркер.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t1D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">3.9 1D графики</h2>
+
+<p>Эти функции строят графики для одномерных (1D) массивов. Одномерными считаются массивы, зависящие только от одного параметра (индекса) подобно кривой в параметрической форме {x(i),y(i),z(i)}, i=1...n. Есть 5 основных типов 1D графиков: линия (Plot), линия с заполнением (Area), ступеньки (Step), прямоугольники (Bars, Barh) и вертикальные линии (Stem). Все эти типы графиков имеют похожий интерфейс. Есть версии для рисования в пространстве и на плоскости. В последнем случае имеется возможность использования только одного массива. Стиль линии и маркеров указывается строковой переменной. Если она равна &quot;&quot;, то используется сплошная линия с цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). Кроме того, есть еще несколько типов графиков для одномерных массивов, имеющих другой интерфейс и вид: поверхность вращения кривой (Torus), диаграмма (Chart), размер ошибки (Error), маркеры переменного размера (Mark), трубками (Tube) и т.д. See section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>. См. раздел <a href="mathgl_ru_9.html#g_t1D-plot-sample">Пример графиков 1D данных</a>, для примеров кода и графика.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plot">3.9.1 Plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Radar">3.9.2 Radar</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tens">3.9.3 Tens</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area">3.9.4 Area</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region">3.9.5 Region</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stem">3.9.6 Stem</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars">3.9.7 Bars</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Barh">3.9.8 Barh</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Chart">3.9.9 Chart</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Step">3.9.10 Step</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Torus">3.9.11 Torus</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tube">3.9.12 Tube</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mark">3.9.13 Mark</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TextMark">3.9.14 TextMark</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Error">3.9.15 Error</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#BoxPlot">3.9.16 BoxPlot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Radar" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plot-1"></a>
+<h3 class="subsection">3.9.1 Plot</h3>
+<a name="index-Plot"></a>
+
+<p>Функции рисуют ломанную линию по точкам. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) рисуется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). См. также <a href="#Area">Area</a>, <a href="#Step">Step</a>, <a href="#Stem">Stem</a>, <a href="#Tube">Tube</a>, <a href="#Mark">Mark</a>, <a href="#Error">Error</a>, <a href="#Belt">Belt</a>, <a href="#Tens">Tens</a>. См. раздел <a href="mathgl_ru_9.html#Plot-sample">Plot &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Plot-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fplot_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_plot_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует в пространстве линию между точками {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Plot-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fplot_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_plot_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует линию между точками {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Plot-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fplot"></a><u>Функция С:</u> <code>void</code> <b>mgl_plot</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует линию между точками {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>), где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Radar"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tens" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Radar-1"></a>
+<h3 class="subsection">3.9.2 Radar</h3>
+<a name="index-Radar"></a>
+
+<dl>
+<dt><a name="index-Radar-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Radar</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>pen=<code>&quot;&quot;</code>, <code>float</code> r=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fradar"></a><u>Функция С:</u> <code>void</code> <b>mgl_radar</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>pen, <code>float</code> r)</i></dt>
+<dd><p>Функции рисуют radar chart, представляющий собой ломанную с вершинами на радиальных линиях (типа ломанной в полярных координатах). График рисуется для каждой строки если один из массивов матрица. Параметр <var>r</var> задает дополнительный сдвиг данных (т.е. используется <var>a</var>+<var>r</var> вместо <var>a</var>). Если <code>r&lt;0</code>, то <code>r=max(0, -min(a)</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). Если <var>pen</var> содержит символ &lsquo;<samp>#</samp>&rsquo;, то также рисуется &quot;сетка&quot; (радиальные линии и круг для <var>r</var>). См. также <a href="#Plot">Plot</a>. См. раздел <a href="mathgl_ru_9.html#Radar-sample">Radar &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Tens"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Radar" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tens-1"></a>
+<h3 class="subsection">3.9.3 Tens</h3>
+<a name="index-Tens"></a>
+
+<p>Функции рисуют ломанную линию по точкам с цветом, определяемым массивом <var>c</var> (типа графика натяжений). График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx=c.nx</code>. Строка <var>pen</var> задает цветовую схему (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>) и стиль и/или толщину линии (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущей цветовой схемой. См. также <a href="#Plot">Plot</a>, <a href="#Mesh">Mesh</a>, <a href="#Fall">Fall</a>. См. раздел <a href="mathgl_ru_9.html#Tens-sample">Tens &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Tens-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tens</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftens_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_tens_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует в пространстве линию между точками {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} с цветом <var>c</var>[i].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tens-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tens</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>c, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftens_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_tens_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> c, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует линию между точками {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>) с цветом <var>c</var>[i].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tens-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tens</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>c, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftens"></a><u>Функция С:</u> <code>void</code> <b>mgl_tens</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> c, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует линию между точками {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>) с цветом <var>c</var>[i], где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Area"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tens" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-1"></a>
+<h3 class="subsection">3.9.4 Area</h3>
+<a name="index-Area"></a>
+
+<p>Функции рисуют ломанную линию между точками и закрашивает ее вниз до плоскости осей координат. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). Также можно использовать градиентное закрашивание если число указанных цветов равно удвоенному числу кривых для построения. Если строка содержит символ &lsquo;<samp>a</samp>&rsquo;, то линии рисуются одна поверх другой (с суммированием) &ndash; того же эффекта можно достичь вызовом <code>y.CumSum(&quot;y&quot;);</code> перед построением графика. См. также <a href="#Plot">Plot</a>, <a href="#Bars">Bars</a>, <a href="#Stem">Stem</a>. См. раздел <a href="mathgl_ru_9.html#Area-sample">Area &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Area-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Area</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005farea_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_area_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует в пространстве линию между точками {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} и закрашивает ее вниз до плоскости <var>z</var> = Org.z.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Area-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Area</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005farea_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_area_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует линию между точками {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>) и закрашивает ее до прямой <var>y</var> = Org.y.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Area-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Area</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>, <code>bool</code> sum=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005farea"></a><u>Функция С:</u> <code>void</code> <b>mgl_area</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dt><a name="index-mgl_005farea_005fs"></a><u>Функция С:</u> <code>void</code> <b>mgl_area_s</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует линию между точками {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>) и закрашивает ее до прямой <var>y</var> = Org.y, где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x]. Параметр <var>sum</var> задает режим рисования линий одна поверх другой (с сумированием). Замечу, что того же эффекта можно достичь вызовом <code>y.CumSum(&quot;y&quot;);</code> перед построением графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Region"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stem" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-1"></a>
+<h3 class="subsection">3.9.5 Region</h3>
+<a name="index-Region"></a>
+
+<p>Функции закрашивают область между 2 кривыми. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y1.nx=y2.nx</code> и размеры массивов <var>y1</var>, <var>y2</var> должны быть также одинаковы. Строка <var>pen</var> задает цвет (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется текущий цвет из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). Также можно использовать градиентное закрашивание если число указанных цветов равно удвоенному числу кривых для построения. См. также <a href="#Area">Area</a>, <a href="#Bars">Bars</a>, <a href="#Stem">Stem</a>. См. раздел <a href="mathgl_ru_9.html#Region-sample">Region &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Region-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Region</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y1, <code>const mglData &amp;</code>y2, <code>const char *</code>pen=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>bool</code> inside=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fregion_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_region_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y1, <code>const HMDT</code> y2, <code>const char *</code>pen, <code>int</code> inside)</i></dt>
+<dd><p>Закрашивает область между кривыми {<var>x</var>[i], <var>y1</var>[i]} и {<var>x</var>[i], <var>y2</var>[i]} при z=<var>zVal</var>. При  <code>inside=off</code> закрашивается только область y1&lt;y&lt;y2, в противном случае также будет закращена область y2&lt;y&lt;y1.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Region-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Region</b><i> (<code>const mglData &amp;</code>y1, <code>const mglData &amp;</code>y2, <code>const char *</code>pen=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>bool</code> inside=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fregion"></a><u>Функция С:</u> <code>void</code> <b>mgl_region</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y1, <code>const HMDT</code> y2, <code>const char *</code>pen, <code>int</code> inside)</i></dt>
+<dd><p>Закрашивает область между кривыми {<var>x</var>[i], <var>y1</var>[i]} и {<var>x</var>[i], <var>y2</var>[i]} при z=<var>zVal</var>, где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Stem"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stem-1"></a>
+<h3 class="subsection">3.9.6 Stem</h3>
+<a name="index-Stem"></a>
+
+<p>Функции рисуют вертикальные линии из точек до плоскости осей координат. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). См. также <a href="#Area">Area</a>, <a href="#Bars">Bars</a>, <a href="#Plot">Plot</a>, <a href="#Mark">Mark</a>. См. раздел <a href="mathgl_ru_9.html#Stem-sample">Stem &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Stem-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Stem</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstem_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_stem_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует вертикальные линии из точек {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} вниз до плоскости <var>z</var> = Org.z.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Stem-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Stem</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstem_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_stem_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует вертикальные линии из точек {<var>x</var>[i], <var>y</var>[i]} до <var>y</var> = Org.y в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Stem-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Stem</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstem"></a><u>Функция С:</u> <code>void</code> <b>mgl_stem</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует вертикальные линии из точек {<var>x</var>[i], <var>y</var>[i]} до <var>y</var> = Org.y в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>), где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Bars"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Stem" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Barh" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-1"></a>
+<h3 class="subsection">3.9.7 Bars</h3>
+<a name="index-Bars"></a>
+
+<p>Функции рисуют вертикальные полосы (прямоугольники) из точек до плоскости осей координат. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). Если строка содержит символ &lsquo;<samp>a</samp>&rsquo;, то линии рисуются одна поверх другой. Если строка содержит символ &lsquo;<samp>f</samp>&rsquo;, то рисуется график типа waterfall для определения кумулятивного эффекта последовательности положительных и отрицательных значений. Можно использовать разные цвета для положительных и отрицательных значений если число указанных цветов равно удвоенному числу кривых для построения. См. также <a href="#Barh">Barh</a>, <a href="#Area">Area</a>, <a href="#Stem">Stem</a>, <a href="#Chart">Chart</a>, <a href="#Default-sizes">Базовые размеры</a>. См. раздел <a href="mathgl_ru_9.html#Bars-sample">Bars &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Bars-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Bars</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbars_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_bars_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует вертикальные полосы из точек {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} вниз до плоскости <var>z</var> = Org.z.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Bars-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Bars</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbars_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_bars_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует вертикальные полосы из точек {<var>x</var>[i], <var>y</var>[i]} до <var>y</var> = Org.y в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Bars-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Bars</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbars"></a><u>Функция С:</u> <code>void</code> <b>mgl_bars</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует вертикальные полосы из точек {<var>x</var>[i], <var>y</var>[i]} до <var>y</var> = Org.y в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>), где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Barh"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Chart" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Barh-1"></a>
+<h3 class="subsection">3.9.8 Barh</h3>
+<a name="index-Barh"></a>
+
+<p>Функции рисуют горизонтальные полосы (прямоугольники) из точек до плоскости осей координат. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). Если строка содержит символ &lsquo;<samp>a</samp>&rsquo;, то линии рисуются одна поверх другой. Если строка содержит символ &lsquo;<samp>f</samp>&rsquo;, то рисуется график типа waterfall для определения кумулятивного эффекта последовательности положительных и отрицательных значений. Можно использовать разные цвета для положительных и отрицательных значений если число указанных цветов равно удвоенному числу кривых для построения. См. также <a href="#Barh">Barh</a>, <a href="#Default-sizes">Базовые размеры</a>. См. раздел <a href="mathgl_ru_9.html#Barh-sample">Barh &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Barh-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Barh</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>v, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbarh_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_barh_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> v, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует горизонтальные полосы из точек {<var>v</var>[i], <var>y</var>[i]} до <var>x</var> = Org.x в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Barh-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Barh</b><i> (<code>const mglData &amp;</code>v, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbarh"></a><u>Функция С:</u> <code>void</code> <b>mgl_barh</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует горизонтальные полосы из точек {<var>v</var>[i], <var>y</var>[i]} до <var>x</var> = Org.x в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>), где значения <var>y</var>[i] равно распределены в интервале [<var>Min</var>.y, <var>Max</var>.y].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Chart"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Barh" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Step" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Chart-1"></a>
+<h3 class="subsection">3.9.9 Chart</h3>
+<a name="index-Chart"></a>
+
+<dl>
+<dt><a name="index-Chart-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Chart</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>col=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fchart"></a><u>Функция С:</u> <code>void</code> <b>mgl_chart</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>col)</i></dt>
+<dd><p>Рисует цветные полосы (пояса) для массива данных <var>a</var>. Число полос равно числу строк <var>a</var> (равно <var>a.ny</var>). Цвет полос поочередно меняется из цветов указанных в <var>col</var> или в палитре (see section <a href="#Palette-and-colors">Палитра и цвета</a>). Пробел в цветах соответствует прозрачному &quot;цвету&quot;, т.е. если <var>col</var> содержит пробел(ы), то соответствующая полоса не рисуется. Ширина полосы пропорциональна значению элемента в <var>a</var>. График строится только для массивов не содержащих отрицательных значений. Если строка <var>col</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется также черная граница полос. График выглядит лучше в (после вращения системы координат) и/или в полярной системе координат (становится Pie chart). См. раздел <a href="mathgl_ru_9.html#Chart-sample">Chart &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Step"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Chart" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Torus" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Step-1"></a>
+<h3 class="subsection">3.9.10 Step</h3>
+<a name="index-Step"></a>
+
+<p>Функции рисуют ступеньки для точек массива. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). См. также <a href="#Plot">Plot</a>, <a href="#Stem">Stem</a>, <a href="#Tile">Tile</a>, <a href="#Boxs">Boxs</a>. См. раздел <a href="mathgl_ru_9.html#Step-sample">Step &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Step-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Step</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstep_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_step_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует ступеньки для точек {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Step-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Step</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstep_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_step_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует ступеньки для точек {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Step-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Step</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fstep"></a><u>Функция С:</u> <code>void</code> <b>mgl_step</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует ступеньки для точек {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>), где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Torus"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Step" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tube" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Torus-1"></a>
+<h3 class="subsection">3.9.11 Torus</h3>
+<a name="index-Torus"></a>
+
+<p>Функции рисуют поверхность вращения кривой {<var>r</var>, <var>z</var>} относительно оси, заданной <code>SetAxialDir()</code> (see section <a href="#Other-settings">Прочие настройки</a>). Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <var>r.nx=z.nx</var>. Строка <var>pen</var> задает цвет (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется цвет из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). См. также <a href="#Plot">Plot</a>, <a href="#Axial">Axial</a>. См. раздел <a href="mathgl_ru_9.html#Torus-sample">Torus &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Torus-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Torus</b><i> (<code>const mglData &amp;</code>r, <code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftorus"></a><u>Функция С:</u> <code>void</code> <b>mgl_torus</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> r, <code>const HMDT</code> z, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует поверхность вращения кривой {<var>r</var>[i], <var>z</var>[i]}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Torus-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Torus</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Рисует поверхность вращения кривой {<var>r</var>[i], <var>z</var>[i]}, где значения <var>r</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Tube"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Torus" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mark" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tube-1"></a>
+<h3 class="subsection">3.9.12 Tube</h3>
+<a name="index-Tube"></a>
+
+<p>Функции рисуют трубу радиуса <var>r</var>[i] вдоль кривой между точками {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx=r.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). См. также <a href="#Plot">Plot</a>. См. раздел <a href="mathgl_ru_9.html#Tube-sample">Tube &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Tube-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-Tube-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>float</code> r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftube_005fxyzr"></a><u>Функция С:</u> <code>void</code> <b>mgl_tube_xyzr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dt><a name="index-mgl_005ftube_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_tube_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>float</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует трубу радиуса <var>r</var>  в пространстве между точками {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tube-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-Tube-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>float</code> r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftube_005fxyr"></a><u>Функция С:</u> <code>void</code> <b>mgl_tube_xyr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dt><a name="index-mgl_005ftube_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_tube_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>float</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует трубу радиуса <var>r</var> между точками {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tube-5"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-Tube-6"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tube</b><i> (<code>const mglData &amp;</code>y, <code>float</code> r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftube_005fr"></a><u>Функция С:</u> <code>void</code> <b>mgl_tube_r</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dt><a name="index-mgl_005ftube"></a><u>Функция С:</u> <code>void</code> <b>mgl_tube</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>float</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует трубу радиуса <var>r</var> между точками {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>), где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Mark"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tube" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TextMark" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mark-1"></a>
+<h3 class="subsection">3.9.13 Mark</h3>
+<a name="index-Mark-3"></a>
+
+<p>Функции рисуют маркеры размером <var>r</var>*<var>MarkSize</var> (see section <a href="#Default-sizes">Базовые размеры</a>) в точках {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx=r.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). Для рисования маркеров одинакового размера можно использовать функцию <a href="#Plot">Plot</a> с невидимой линией (со стилем содержащим &lsquo;<samp> </samp>&rsquo;). См. также <a href="#Plot">Plot</a>, <a href="#TextMark">TextMark</a>, <a href="#Stem">Stem</a>, <a href="#Error">Error</a>. См. раздел <a href="mathgl_ru_9.html#Mark-sample">Mark &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Mark-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmark_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_mark_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует маркеры для точек {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Mark-5"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmark_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_mark_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует маркеры для точек {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Mark-6"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mark</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmark_005fy"></a><u>Функция С:</u> <code>void</code> <b>mgl_mark_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует маркеры для точек {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>), где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="TextMark"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mark" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Error" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TextMark-1"></a>
+<h3 class="subsection">3.9.14 TextMark</h3>
+<a name="index-TextMark"></a>
+
+<p>Функции рисуют текст <var>text</var> как маркер с размером пропорциональным <var>r</var>*<var>MarkSize</var> (see section <a href="#Default-sizes">Базовые размеры</a>) в точках {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx=r.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). См. также <a href="#Plot">Plot</a>, <a href="#Mark">Mark</a>, <a href="#Stem">Stem</a>. См. раздел <a href="mathgl_ru_9.html#TextMark-sample">TextMark &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-TextMark-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const char *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TextMark-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const wchar_t *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftextmarkw_005fxyzr"></a><u>Функция С:</u> <code>void</code> <b>mgl_textmarkw_xyzr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const wchar_t *</code>text, <code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005ftextmark_005fxyzr"></a><u>Функция С:</u> <code>void</code> <b>mgl_textmark_xyzr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const char *</code>text, <code>const char *</code>fnt)</i></dt>
+<dd><p>Рисует текстовые маркеры в точках {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TextMark-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TextMark-4"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const wchar_t *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftextmarkw_005fxyr"></a><u>Функция С:</u> <code>void</code> <b>mgl_textmarkw_xyr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const wchar_t *</code>text, <code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005ftextmark_005fxyr"></a><u>Функция С:</u> <code>void</code> <b>mgl_textmark_xyr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>text, <code>const char *</code>fnt)</i></dt>
+<dd><p>Рисует текстовые маркеры в точках {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TextMark-5"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const char *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TextMark-6"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>r, <code>const wchar_t *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftextmarkw_005fyr"></a><u>Функция С:</u> <code>void</code> <b>mgl_textmarkw_yr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const wchar_t *</code>text, <code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005ftextmark_005fyr"></a><u>Функция С:</u> <code>void</code> <b>mgl_textmark_yr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> r, <code>const char *</code>text, <code>const char *</code>fnt)</i></dt>
+<dd><p>Рисует текстовые маркеры в точках {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>), где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TextMark-7"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>y, <code>const char *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TextMark-8"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>TextMark</b><i> (<code>const mglData &amp;</code>y, <code>const wchar_t *</code>text, <code>const char *</code>fnt=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftextmarkw"></a><u>Функция С:</u> <code>void</code> <b>mgl_textmarkw</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const wchar_t *</code>text, <code>const char *</code>fnt)</i></dt>
+<dt><a name="index-mgl_005ftextmark"></a><u>Функция С:</u> <code>void</code> <b>mgl_textmark</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const char *</code>text, <code>const char *</code>fnt)</i></dt>
+<dd><p>Рисует текстовые маркеры в точках {<var>x</var>[i], <var>y</var>[i]} в плоскости <var>z</var>=<var>zVal</var> (по умолчанию в плоскости <var>z</var>=<var>Min.z</var>), где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x]. The mark sizes <var>r</var>[i]=1 for all points.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Error"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TextMark" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#BoxPlot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Error-1"></a>
+<h3 class="subsection">3.9.15 Error</h3>
+<a name="index-Error-2"></a>
+
+<p>Функции рисуют размер ошибки в точках {<var>x</var>[i], <var>y</var>[i]} на плоскости <var>z</var> = <var>zVal</var> (по умолчанию <var>z</var>=<var>Min.z</var>). Такой график полезен для отображения ошибки эксперимента, вычислений и пр. График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=y.nx=z.nx=r.nx</code>. Строка <var>pen</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). См. также <a href="#Plot">Plot</a>. См. раздел <a href="mathgl_ru_9.html#Error-sample">Error &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-Error-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Error</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ex, <code>const mglData &amp;</code>ey, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ferror_005fexy"></a><u>Функция С:</u> <code>void</code> <b>mgl_error_exy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ex, <code>const HMDT</code> ey, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует размер ошибки {<var>ex</var>, <var>ey</var>} в точках {<var>x</var>, <var>y</var>}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Error-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Error</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ey, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ferror_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_error_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ey, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует размер ошибки <var>ey</var> (только вдоль одного направления) в точках {<var>x</var>, <var>y</var>}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Error-5"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Error</b><i> (<code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ey, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ferror"></a><u>Функция С:</u> <code>void</code> <b>mgl_error</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> y, <code>const HMDT</code> ey, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует размер ошибки <var>ey</var>  (только вдоль одного направления) в точках {<var>x</var>, <var>y</var>}, где значения <var>x</var>[i] равно распределены в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="BoxPlot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Error" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="BoxPlot-1"></a>
+<h3 class="subsection">3.9.16 BoxPlot</h3>
+<a name="index-BoxPlot"></a>
+
+<p>Функции рисуют boxplot (называемый также как box-and-whisker diagram или как &quot;ящик с усами&quot;) в точках <var>x</var>[i] на плоскости <var>z</var> = <var>zVal</var> (по умолчанию <var>z</var>=<var>Min.z</var>). Это график, компактно изображающий распределение вероятностей <var>a</var>[i,j] (минимум, нижний квартиль (Q1), медиана (Q2), верхний квартиль (Q3) и максимум) вдоль второго (j-го) направления. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>x.nx=a.nx</code>. Строка <var>pen</var> задает цвет и стиль линий (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется сплошная линия с текущим цветом из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). См. также <a href="#Plot">Plot</a>, <a href="#Error">Error</a>, <a href="#Bars">Bars</a>, <a href="#Default-sizes">Базовые размеры</a>. См. раздел <a href="mathgl_ru_9.html#BoxPlot-sample">BoxPlot &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-BoxPlot-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>BoxPlot</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fboxplot_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_boxplot_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует boxplot с заданными значениями координат <var>x</var>[i].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-BoxPlot-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>BoxPlot</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>pen=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fboxplot"></a><u>Функция С:</u> <code>void</code> <b>mgl_boxplot</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>pen)</i></dt>
+<dd><p>Рисует boxplot со значениями <var>x</var>[i] равно распределенными в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t2D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#BoxPlot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mesh" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">3.10 2D графики</h2>
+
+<p>Эти функции строят графики для двумерных (2D) массивов. Двумерными считаются массивы, зависящие только от двух параметров (индексов) подобно матрице <em>f(x_i,y_j), i=1...n, j=1...m</em>. Есть несколько основных типов 2D графиков: сплошная поверхность (Surf), сетчатая поверхность (Mesh), поверхность из ящиков (Boxs), поверхность из плиток (Tile), водопад (Fall), ленточки (Belt), график плотности (Dens), линии уровня (Cont), линии уровня с заполнением (ContF) и результат их вращения (Axial). В функциях Cont(), ContF() и Axial() значения уровней можно задавать автоматически и вручную. Можно также нарисовать сетку (Grid) по массиву данных для улучшения вида графика плотности или линий уровня. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданной поверхности. Параметры цветовой схемы задаются строкой See section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>. См. раздел <a href="mathgl_ru_9.html#g_t2D-plot-sample">Пример графиков 2D данных</a>, для примеров кода и графика.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Mesh">3.10.1 Mesh</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fall">3.10.2 Fall</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Belt">3.10.3 Belt</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf">3.10.4 Surf</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Boxs">3.10.5 Boxs</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tile">3.10.6 Tile</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens">3.10.7 Dens</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont">3.10.8 Cont</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF">3.10.9 ContF</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContD">3.10.10 ContD</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axial">3.10.11 Axial</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grad">3.10.12 Grad</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grid">3.10.13 Grid</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Mesh"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fall" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mesh-1"></a>
+<h3 class="subsection">3.10.1 Mesh</h3>
+<a name="index-Mesh"></a>
+
+<dl>
+<dt><a name="index-Mesh-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mesh</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmesh_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_mesh_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует сетчатую поверхность, заданную параметрически {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Surf">Surf</a>, <a href="#Fall">Fall</a>, MeshNum (see section <a href="#Other-settings">Прочие настройки</a>), <a href="#Cont">Cont</a>, <a href="#Tens">Tens</a>. См. раздел <a href="mathgl_ru_9.html#Mesh-sample">Mesh &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Mesh-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Mesh</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fmesh"></a><u>Функция С:</u> <code>void</code> <b>mgl_mesh</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fall"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mesh" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Belt" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fall-1"></a>
+<h3 class="subsection">3.10.2 Fall</h3>
+<a name="index-Fall"></a>
+
+<dl>
+<dt><a name="index-Fall-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Fall</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ffall_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_fall_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует водопад для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. График удобен для построения нескольких кривых, сдвинутых вглубь друг относительно друга. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>x</samp>&rsquo;, то линии рисуются вдоль x-оси (по умолчанию линии рисуются вдоль y-оси). Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Belt">Belt</a>, <a href="#Mesh">Mesh</a>, <a href="#Tens">Tens</a>, MeshNum (see section <a href="#Other-settings">Прочие настройки</a>). См. раздел <a href="mathgl_ru_9.html#Fall-sample">Fall &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fall-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Fall</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ffall"></a><u>Функция С:</u> <code>void</code> <b>mgl_fall</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Belt"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fall" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Belt-1"></a>
+<h3 class="subsection">3.10.3 Belt</h3>
+<a name="index-Belt"></a>
+
+<dl>
+<dt><a name="index-Belt-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Belt</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbelt_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_belt_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует ленточки для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. График может использоваться как 3d обобщение графика Plot() (see section <a href="#Plot">Plot</a>). Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>x</samp>&rsquo;, то линии рисуются вдоль x-оси (по умолчанию линии рисуются вдоль y-оси). Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Fall">Fall</a>, <a href="#Surf">Surf</a>, <a href="#Plot">Plot</a>, MeshNum (see section <a href="#Other-settings">Прочие настройки</a>). См. раздел <a href="mathgl_ru_9.html#Belt-sample">Belt &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Belt-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Belt</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fbelt"></a><u>Функция С:</u> <code>void</code> <b>mgl_belt</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Surf"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Belt" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Boxs" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-1"></a>
+<h3 class="subsection">3.10.4 Surf</h3>
+<a name="index-Surf"></a>
+
+<dl>
+<dt><a name="index-Surf-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует параметрически заданную поверхность {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на поверхности рисуется сетка. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Mesh">Mesh</a>, <a href="#Dens">Dens</a>, <a href="#Belt">Belt</a>, <a href="#Tile">Tile</a>, <a href="#Boxs">Boxs</a>, <a href="#SurfC">SurfC</a>, <a href="#SurfA">SurfA</a>. См. раздел <a href="mathgl_ru_9.html#Surf-sample">Surf &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Boxs"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tile" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Boxs-1"></a>
+<h3 class="subsection">3.10.5 Boxs</h3>
+<a name="index-Boxs"></a>
+
+<dl>
+<dt><a name="index-Boxs-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Boxs</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fboxs_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_boxs_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует вертикальные ящики для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Surf">Surf</a>, <a href="#Dens">Dens</a>, <a href="#Tile">Tile</a>, <a href="#Step">Step</a>. См. раздел <a href="mathgl_ru_9.html#Boxs-sample">Boxs &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Boxs-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Boxs</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fboxs"></a><u>Функция С:</u> <code>void</code> <b>mgl_boxs</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Tile"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Boxs" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tile-1"></a>
+<h3 class="subsection">3.10.6 Tile</h3>
+<a name="index-Tile"></a>
+
+<dl>
+<dt><a name="index-Tile-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tile</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftile_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_tile_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует плитки для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. График может использоваться как 3d обобщение Step() (see section <a href="#Step">Step</a>). Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Surf">Surf</a>, <a href="#Boxs">Boxs</a>, <a href="#Step">Step</a>, <a href="#TileS">TileS</a>. См. раздел <a href="mathgl_ru_9.html#Tile-sample">Tile &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Tile-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Tile</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftile"></a><u>Функция С:</u> <code>void</code> <b>mgl_tile</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Dens"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tile" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-1"></a>
+<h3 class="subsection">3.10.7 Dens</h3>
+<a name="index-Dens"></a>
+
+<dl>
+<dt><a name="index-Dens-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dens</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_dens_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует график плотности для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} при <var>z</var> = <var>zVal</var>. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетка. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Surf">Surf</a>, <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>, <a href="#Boxs">Boxs</a>, <a href="#Tile">Tile</a>, <a href="#DensXYZ">DensXYZ</a>. См. раздел <a href="mathgl_ru_9.html#Dens-sample">Dens &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Dens-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dens</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens"></a><u>Функция С:</u> <code>void</code> <b>mgl_dens</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cont"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-1"></a>
+<h3 class="subsection">3.10.8 Cont</h3>
+<a name="index-Cont"></a>
+
+<dl>
+<dt><a name="index-Cont-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fxy_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont_xy_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует линии уровня для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} при <var>z</var> = <var>zVal</var> (или при <var>z=v</var>[k] если <code>zVal==NAN</code>). Линии уровня рисуются для <var>z</var>[i,j]=<var>v</var>[k]. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетка. Если <var>sch</var> содержит &lsquo;<samp>t</samp>&rsquo; или &lsquo;<samp>T</samp>&rsquo;, то значения <var>v</var>[k] будут выведены вдоль контуров над (или под) кривой. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Dens">Dens</a>, <a href="#ContF">ContF</a>, <a href="#ContD">ContD</a>, <a href="#Axial">Axial</a>, <a href="#ContXYZ">ContXYZ</a>. См. раздел <a href="mathgl_ru_9.html#Cont-sample">Cont &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005f_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont__val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContF"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContD" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF-1"></a>
+<h3 class="subsection">3.10.9 ContF</h3>
+<a name="index-ContF"></a>
+
+<dl>
+<dt><a name="index-ContF-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fxy_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf_xy_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} при <var>z</var> = <var>zVal</var> (или при <var>z=v</var>[k] если <code>zVal==NAN</code>). Линии уровня рисуются для <var>z</var>[i,j]=<var>v</var>[k]. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетка. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Dens">Dens</a>, <a href="#Cont">Cont</a>, <a href="#Axial">Axial</a>, <a href="#ContFXYZ">ContFXYZ</a>. См. раздел <a href="mathgl_ru_9.html#ContF-sample">ContF &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContD"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axial" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContD-1"></a>
+<h3 class="subsection">3.10.10 ContD</h3>
+<a name="index-ContD"></a>
+
+<dl>
+<dt><a name="index-ContD-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContD</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontd_005fxy_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_contd_xy_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} при <var>z</var> = <var>zVal</var> (или при <var>z=v</var>[k] если <code>zVal==NAN</code>) цветами заданными явно. Линии уровня рисуются для <var>z</var>[i,j]=<var>v</var>[k] (должно быть <code>v.nx&gt;2</code>). Строка <var>sch</var> задает цвет контуров: цвет k-го контура определяется символом <code>sch[k%strlen(sch)]</code>. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Dens">Dens</a>, <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>. См. раздел <a href="mathgl_ru_9.html#ContD-sample">ContD &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContD-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContD</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontd_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_contd_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContD-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContD</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontd_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_contd_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContD-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContD</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontd"></a><u>Функция С:</u> <code>void</code> <b>mgl_contd</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axial"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContD" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grad" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axial-1"></a>
+<h3 class="subsection">3.10.11 Axial</h3>
+<a name="index-Axial"></a>
+
+<dl>
+<dt><a name="index-Axial-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axial</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005faxial_005fxy_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_axial_xy_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует поверхность вращения линии уровня для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. Линии уровня рисуются для <var>z</var>[i,j]=<var>v</var>[k]. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Если строка содержит символы &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; или &lsquo;<samp>z</samp>&rsquo;, то ось вращения (see section <a href="#Other-settings">Прочие настройки</a>) устанавливается в указанное направление. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>, <a href="#Torus">Torus</a>, <a href="#Surf3">Surf3</a>. См. раздел <a href="mathgl_ru_9.html#Axial-sample">Axial &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Axial-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axial</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005faxial_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_axial_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Axial-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axial</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005faxial_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_axial_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Axial-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Axial</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005faxial"></a><u>Функция С:</u> <code>void</code> <b>mgl_axial</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Grad"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axial" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grid" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grad-1"></a>
+<h3 class="subsection">3.10.12 Grad</h3>
+<a name="index-Grad"></a>
+
+<dl>
+<dt><a name="index-Grad-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grad</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>phi, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>)</i></dt>
+<dt><a name="index-mgl_005fgrad_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_grad_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует линии градиента скалярного поля <var>phi</var>[i,j,k] заданного параметрически {<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Число линий пропорционально <var>num</var>. Линии рисуются только с границ интервала при <var>num</var>&lt;0. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var>, <var>phi</var> должны быть одинаковы <code>x.nx=phi.nx &amp;&amp; y.nx=phi.ny &amp;&amp; z.nx=phi.nz</code> или <code>x.nx=y.nx=z.nx=phi.nx &amp;&amp; x.ny=y.ny=z.ny=phi.ny &amp;&amp; x.nz=y.nz=z.nz=phi.nz</code>. Массивы <var>x</var>, <var>y</var> и <var>z</var> могут быть векторами (не матрицами как <var>phi</var>). См. также <a href="#Dens3">Dens3</a>, <a href="#Cont3">Cont3</a>, <a href="#Flow">Flow</a>.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-Grad-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grad</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fgrad_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_grad_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует линии градиента скалярного поля <var>phi</var>[i,j] заданного параметрически {<var>x</var>[i,j], <var>y</var>[i,j]} при <var>z</var> = <var>zVal</var>. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Число линий пропорционально <var>num</var>. Линии рисуются только с границ интервала при <var>num</var>&lt;0. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>phi</var> должны быть одинаковы <code>x.nx=phi.nx &amp;&amp; y.nx=phi.ny</code> или <code>x.nx=y.nx=phi.nx &amp;&amp; x.ny=y.ny=phi.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>phi</var>). График строится для каждого z среза данных. См. также <a href="#Dens">Dens</a>, <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>, <a href="#Flow">Flow</a>. См. раздел <a href="mathgl_ru_9.html#Grad-sample">Grad &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Grad-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grad</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fgrad"></a><u>Функция С:</u> <code>void</code> <b>mgl_grad</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>int</code> num, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Grid"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grad" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grid-1"></a>
+<h3 class="subsection">3.10.13 Grid</h3>
+<a name="index-Grid-2"></a>
+
+<dl>
+<dt><a name="index-Grid-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_grid_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует плоскую сету для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} при <var>z</var> = <var>zVal</var>. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Dens">Dens</a>, <a href="#Cont">Cont</a>, <a href="#ContF">ContF</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Grid-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid</b><i> (<code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid"></a><u>Функция С:</u> <code>void</code> <b>mgl_grid</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="g_t3D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grid" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">3.11 3D графики</h2>
+
+<p>Эти функции строят графики для трехмерных (3D) массивов. Трехмерными считаются массивы, зависящие от трех параметров (индексов) подобно матрице <em>f(x_i,y_j,z_k), i=1...n, j=1...m, k=1...l</em>. Есть 5 основных типов 3D графиков: поверхность постоянного уровня (Surf3), график плотности на срезе (Dens3), линии уровня на срезе (Cont3), закрашенные контуры уровня на срезе (ContF3) и график объемной прозрачности типа облака (Cloud). В функциях Cont3(), ContF3() и Surf3() значения уровней можно задавать автоматически и вручную. Можно также нарисовать на срезе сетку (Grid3) по массиву данных для улучшения вида графика плотности или линий уровня. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива. Параметры цветовой схемы задаются строкой See section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>. См. раздел <a href="mathgl_ru_9.html#g_t3D-plot-sample">Пример графиков 3D данных</a>, для примеров кода и графика.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf3">3.11.1 Surf3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens3">3.11.2 Dens3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont3">3.11.3 Cont3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF3">3.11.4 ContF3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grid3">3.11.5 Grid3</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cloud">3.11.6 Cloud</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Beam">3.11.7 Beam</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Surf3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3-1"></a>
+<h3 class="subsection">3.11.1 Surf3</h3>
+<a name="index-Surf3"></a>
+
+<dl>
+<dt><a name="index-Surf3-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3</b><i> (<code>float</code> val, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3_005fxyz_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3_xyz_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива, заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) при <var>a</var>(x,y,z)=<var>val</var>. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). Замечу, что возможно некорректная отрисовка граней вследствие неопределенности построения сечения если поверхность пересекает ячейку данных 2 и более раз. См. также <a href="#Cloud">Cloud</a>, <a href="#Dens3">Dens3</a>, <a href="#Surf3C">Surf3C</a>, <a href="#Surf3A">Surf3A</a>, <a href="#Axial">Axial</a>. См. раздел <a href="mathgl_ru_9.html#Surf3-sample">Surf3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3</b><i> (<code>float</code> val, <code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> a, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Рисует <var>num</var> поверхностей уровня равномерно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Dens3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens3-1"></a>
+<h3 class="subsection">3.11.2 Dens3</h3>
+<a name="index-Dens3"></a>
+<a name="index-DensA"></a>
+
+<dl>
+<dt><a name="index-Dens3-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dens3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdens3_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_dens3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует график плотности для 3d массива, заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). График рисуется на срезе <var>sVal</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>stl</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на срезе рисуется сетка. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). См. также <a href="#Cont3">Cont3</a>, <a href="#ContF3">ContF3</a>, <a href="#Dens">Dens</a>, <a href="#Grid3">Grid3</a>. См. раздел <a href="mathgl_ru_9.html#Dens3-sample">Dens3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Dens3-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dens3</b><i> (<code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdens3"></a><u>Функция С:</u> <code>void</code> <b>mgl_dens3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DensA-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdens3_005fall_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_dens3_all_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует графики плотности на всех центральных срезах 3d данных, заданных параметрически.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DensA-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensA</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdens3_005fall"></a><u>Функция С:</u> <code>void</code> <b>mgl_dens3_all</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cont3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont3-1"></a>
+<h3 class="subsection">3.11.3 Cont3</h3>
+<a name="index-Cont3"></a>
+<a name="index-ContA"></a>
+
+<dl>
+<dt><a name="index-Cont3-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont3</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fxyz_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont3_xyz_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует линии уровня для 3d массива, заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). Линии рисуются для значений из массива <var>v</var> на срезе <var>sVal</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Строка <var>stl</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>stl</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на срезе рисуется сетка. Если <var>sch</var> содержит &lsquo;<samp>t</samp>&rsquo; или &lsquo;<samp>T</samp>&rsquo;, то значения <var>v</var>[k] будут выведены вдоль контуров над (или под) кривой. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). См. также <a href="#Dens3">Dens3</a>, <a href="#ContF3">ContF3</a>, <a href="#Cont">Cont</a>, <a href="#Grid3">Grid3</a>. См. раздел <a href="mathgl_ru_9.html#Cont3-sample">Cont3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont3-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont3</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont3_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont3-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cont3-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cont3</b><i> (<code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContA-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fall_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont3_all_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Рисует линии уровня на всех центральных срезах 3d данных, заданных параметрически.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContA-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContA</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont3_005fall"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont3_all</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContF3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grid3" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF3-1"></a>
+<h3 class="subsection">3.11.4 ContF3</h3>
+<a name="index-ContF3"></a>
+<a name="index-ContFA"></a>
+
+<dl>
+<dt><a name="index-ContF3-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF3</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fxyz_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf3_xyz_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня для 3d массива, заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). Линии рисуются для значений из массива <var>v</var> на срезе <var>sVal</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>stl</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на срезе рисуется сетка. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). См. также <a href="#Dens3">Dens3</a>, <a href="#Cont3">Cont3</a>, <a href="#ContF">ContF</a>, <a href="#Grid3">Grid3</a>. См. раздел <a href="mathgl_ru_9.html#ContF3-sample">ContF3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF3-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF3</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf3_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF3-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContF3-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContF3</b><i> (<code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFA-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fall_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf3_all_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня на всех центральных срезах 3d данных, заданных параметрически.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFA-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFA</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf3_005fall"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf3_all</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Grid3"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cloud" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grid3-1"></a>
+<h3 class="subsection">3.11.5 Grid3</h3>
+<a name="index-Grid3"></a>
+<a name="index-GridA"></a>
+
+<dl>
+<dt><a name="index-Grid3-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid3</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid3_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_grid3_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует сетку для 3d массива, заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). График рисуется на срезе <var>sVal</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). См. также <a href="#Cont3">Cont3</a>, <a href="#ContF3">ContF3</a>, <a href="#Dens3">Dens3</a>, <a href="#Grid">Grid</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Grid3-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Grid3</b><i> (<code>const mglData &amp;</code>a, <code>char</code> dir, <code>int</code> sVal=<code>-1</code>, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid3"></a><u>Функция С:</u> <code>void</code> <b>mgl_grid3</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>char</code> dir, <code>int</code> sVal, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GridA-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>GridA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid3_005fall_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_grid3_all_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует сетку на всех центральных срезах 3d данных, заданных параметрически.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GridA-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>GridA</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fgrid3_005fall"></a><u>Функция С:</u> <code>void</code> <b>mgl_grid3_all</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cloud"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grid3" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Beam" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cloud-1"></a>
+<h3 class="subsection">3.11.6 Cloud</h3>
+<a name="index-CloudP"></a>
+<a name="index-CloudQ"></a>
+
+<dl>
+<dt><a name="index-Cloud"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cloud</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fcloud_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_cloud_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dd><p>Рисует облачный график для 3d массива, заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]). График состоит из кубиков с цветом и прозрачностью пропорциональной значениям <var>a</var>. Результат похож на облако &ndash; малые значения прозрачны, а большие нет. Число кубиков зависит от SetMeshNum() (see section <a href="#Other-settings">Прочие настройки</a>). Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Параметр <var>alpha</var> меняет общую прозрачность графика. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). См. также <a href="#Surf3">Surf3</a>. См. раздел <a href="mathgl_ru_9.html#Cloud-sample">Cloud &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Cloud-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Cloud</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fcloud"></a><u>Функция С:</u> <code>void</code> <b>mgl_cloud</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CloudP-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>CloudP</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fcloudp_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_cloudp_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dd><p>Как первый, но используются полупрозрачные точки вместо кубиков. См. раздел <a href="mathgl_ru_9.html#CloudP-sample">CloudP &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CloudP-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>CloudP</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fcloudp"></a><u>Функция С:</u> <code>void</code> <b>mgl_cloudp</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> alpha=<code>1</code>)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Beam"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cloud" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Beam-1"></a>
+<h3 class="subsection">3.11.7 Beam</h3>
+<a name="index-Beam"></a>
+
+<dl>
+<dt><a name="index-Beam-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Beam</b><i> (<code>float</code> val, <code>const mglData &amp;</code>tr, <code>const mglData &amp;</code>g1, <code>const mglData &amp;</code>g2, <code>const mglData &amp;</code>a, <code>float</code> r, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fbeam_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_beam_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> tr, <code>const HMDT</code> g1, <code>const HMDT</code> g2, <code>const HMDT</code> a, <code>float</code> r, <code>const char *</code>stl, <code>int</code> flag)</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива <var>a</var> при постоянном значении <var>a</var>=<var>val</var>. Это специальный тип графика для <var>a</var> заданного в сопровождающей системе координат вдоль кривой <var>tr</var> с ортами <var>g1</var>, <var>g2</var> и с поперечным размером <var>r</var>. Переменная <var>flag</var> &ndash; битовый флаг: &lsquo;<samp>0x1</samp>&rsquo; - рисовать в сопровождающих (не лабораторных) координатах; &lsquo;<samp>0x2</samp>&rsquo; - рисовать проекцию на плоскость <em>\rho-z</em>; &lsquo;<samp>0x4</samp>&rsquo; - рисовать нормированное в каждом сечении поле. Размеры массивов по 1-му индексу <var>tr</var>, <var>g1</var>, <var>g2</var> должны быть nx&gt;2. Размеры массивов по 2-му индексу <var>tr</var>, <var>g1</var>, <var>g2</var> и размер по 3-му индексу массива <var>a</var> должны быть одинаковы. См. также <a href="#Surf3">Surf3</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Beam-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Beam</b><i> (<code>const mglData &amp;</code>tr, <code>const mglData &amp;</code>g1, <code>const mglData &amp;</code>g2, <code>const mglData &amp;</code>a, <code>float</code> r, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> flag=<code>0</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fbeam"></a><u>Функция С:</u> <code>void</code> <b>mgl_beam</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> tr, <code>const HMDT</code> g1, <code>const HMDT</code> g2, <code>const HMDT</code> a, <code>float</code> r, <code>const char *</code>stl, <code>int</code> flag=<code>0</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dd><p>Рисует <var>num</var> равномерно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>] поверхностей уровня 3d массива в сопровождающей системе координат.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Dual-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Beam" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfC" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0430_0440_043d_044be-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">3.12 Парные графики</h2>
+
+<p>Эти функции строят графики для двух связанных массивов. Есть несколько основных типов 3D графиков: поверхность и поверхность уровня с окраской по второму массиву (SurfC, Surf3C), поверхность и поверхность уровня с прозрачностью по второму массиву (SurfA, Surf3A), плитки переменного размера (TileS), диаграмма точечного отображения (Map), STFA диаграмма (STFA). В функциях Surf3A() и Surf3C() значения уровней можно задавать автоматически и вручную. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива. Параметры цветовой схемы задаются строкой See section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#SurfC">3.12.1 SurfC</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3C">3.12.2 Surf3C</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#SurfA">3.12.3 SurfA</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3A">3.12.4 Surf3A</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TileS">3.12.5 TileS</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Map">3.12.6 Map</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#STFA">3.12.7 STFA</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="SurfC"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3C" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfC-1"></a>
+<h3 class="subsection">3.12.1 SurfC</h3>
+<a name="index-SurfC"></a>
+
+<dl>
+<dt><a name="index-SurfC-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SurfC</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurfc_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_surfc_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует параметрически заданную поверхность {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} с цветом, заданным массивом <var>c</var>[i,j]. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на поверхности рисуется сетка. Все размеры массивов <var>z</var> и <var>c</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Surf">Surf</a>, <a href="#SurfA">SurfA</a>, <a href="#Surf3C">Surf3C</a>. См. раздел <a href="mathgl_ru_9.html#SurfC-sample">SurfC &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SurfC-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SurfC</b><i> (<code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurfc"></a><u>Функция С:</u> <code>void</code> <b>mgl_surfc</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Surf3C"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfC" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfA" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3C-1"></a>
+<h3 class="subsection">3.12.2 Surf3C</h3>
+<a name="index-Surf3C"></a>
+
+<dl>
+<dt><a name="index-Surf3C-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3C</b><i> (<code>float</code> val, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3c_005fxyz_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3c_xyz_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива, заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) при <var>a</var>(x,y,z)=<var>val</var>. Аналогично Surf3(), но цвет задается массивом <var>c</var>. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Все размеры массивов <var>z</var> и <var>c</var> должны быть одинаковы. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). Замечу, что возможно некорректная отрисовка граней вследствие неопределенности построения сечения если поверхность пересекает ячейку данных 2 и более раз. См. также <a href="#Surf3">Surf3</a>, <a href="#SurfC">SurfC</a>, <a href="#Surf3A">Surf3A</a>. См. раздел <a href="mathgl_ru_9.html#Surf3C-sample">Surf3C &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3C-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3C</b><i> (<code>float</code> val, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3c_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3c_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3C-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3C</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3c_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3c_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Рисует <var>num</var> поверхностей уровня равномерно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3C-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3C</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3c"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3c</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="SurfA"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3C" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3A" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfA-1"></a>
+<h3 class="subsection">3.12.3 SurfA</h3>
+<a name="index-SurfA"></a>
+
+<dl>
+<dt><a name="index-SurfA-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SurfA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurfa_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_surfa_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует параметрически заданную поверхность {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]} с прозрачностью, заданным массивом <var>c</var>[i,j]. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на поверхности рисуется сетка. Все размеры массивов <var>z</var> и <var>c</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#Surf">Surf</a>, <a href="#SurfC">SurfC</a>, <a href="#Surf3A">Surf3A</a>, <a href="#TileS">TileS</a>. См. раздел <a href="mathgl_ru_9.html#SurfA-sample">SurfA &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SurfA-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SurfA</b><i> (<code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurfa"></a><u>Функция С:</u> <code>void</code> <b>mgl_surfa</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Surf3A"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfA" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TileS" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3A-1"></a>
+<h3 class="subsection">3.12.4 Surf3A</h3>
+<a name="index-Surf3A"></a>
+
+<dl>
+<dt><a name="index-Surf3A-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3A</b><i> (<code>float</code> val, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3a_005fxyz_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3a_xyz_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива, заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) при <var>a</var>(x,y,z)=<var>val</var>. Аналогично Surf3(), но прозрачность задается массивом <var>c</var>. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Все размеры массивов <var>z</var> и <var>c</var> должны быть одинаковы. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). Замечу, что возможно некорректная отрисовка граней вследствие неопределенности построения сечения если поверхность пересекает ячейку данных 2 и более раз. См. также <a href="#Surf3">Surf3</a>, <a href="#SurfA">SurfA</a>, <a href="#Surf3C">Surf3C</a>. См. раздел <a href="mathgl_ru_9.html#Surf3A-sample">Surf3A &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3A-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3A</b><i> (<code>float</code> val, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3a_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3a_val</b><i> (<code>HMGL</code> gr, <code>float</code> val, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3A-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3A</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3a_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3a_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>stl, <code>int</code> num)</i></dt>
+<dd><p>Рисует <var>num</var> поверхностей уровня равномерно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf3A-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf3A</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>)</i></dt>
+<dt><a name="index-mgl_005fsurf3a"></a><u>Функция С:</u> <code>void</code> <b>mgl_surf3a</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const HMDT</code> c, <code>const char *</code>sch, <code>int</code> num)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="TileS"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3A" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Map" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TileS-1"></a>
+<h3 class="subsection">3.12.5 TileS</h3>
+<a name="index-TileS"></a>
+
+<dl>
+<dt><a name="index-TileS-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TileS</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>r, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftiles_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_tiles_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> r, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует плитки для параметрически заданной поверхности {<var>x</var>[i,j], <var>y</var>[i,j], <var>z</var>[i,j]}. Аналогично Tile(), но размер плиток задается массивов <var>r</var>. Это создает эффект &quot;прозрачности&quot; при экспорте в файлы EPS. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>z</var> должны быть одинаковы <code>x.nx=z.nx &amp;&amp; y.nx=z.ny</code> или <code>x.nx=y.nx=z.nx &amp;&amp; x.ny=y.ny=z.ny</code>. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>z</var>). График строится для каждого z среза данных. См. также <a href="#SurfA">SurfA</a>, <a href="#Tile">Tile</a>. См. раздел <a href="mathgl_ru_9.html#TileS-sample">TileS &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TileS-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TileS</b><i> (<code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftiles"></a><u>Функция С:</u> <code>void</code> <b>mgl_tiles</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Map"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TileS" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#STFA" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Map-1"></a>
+<h3 class="subsection">3.12.6 Map</h3>
+<a name="index-Map"></a>
+
+<dl>
+<dt><a name="index-Map-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Map</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> ks=<code>0</code>, <code>bool</code> pnts=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fmap_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_map_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>int</code> ks, <code>int</code> pnts)</i></dt>
+<dd><p>Визуализирует точечное отображение для матриц {<var>ax</var>, <var>ay</var> } параметрически зависящих от координат <var>x</var>, <var>y</var>. Исходное положение ячейки задает ее цвет. Высота пропорциональна якобиану J(ax,ay). График является аналогом диаграммы Арнольда. Если <code>pnts=false</code>, то рисуются грани, иначе цветные точки рисуются в узлах матриц (полезно для &quot;запутанного&quot; отображения). Параметр <var>ks</var> задает используемый срез матриц. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Все размеры массивов <var>ax</var> и <var>ay</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>ax</var> должны быть одинаковы. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>ax</var>). See section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>. См. раздел <a href="mathgl_ru_9.html#Map-sample">Map &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Map-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Map</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> ks=<code>0</code>, <code>bool</code> pnts=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fmap"></a><u>Функция С:</u> <code>void</code> <b>mgl_map</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>int</code> ks, <code>int</code> pnts)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="STFA"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Map" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="STFA-1"></a>
+<h3 class="subsection">3.12.7 STFA</h3>
+<a name="index-STFA"></a>
+
+<dl>
+<dt><a name="index-STFA-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>STFA</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>re, <code>const mglData &amp;</code>im, <code>int</code> dn, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fstfa_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_stfa_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> re, <code>const HMDT</code> im, <code>int</code> dn, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует спектрограмму комплексного массива <var>re</var>+i*<code>im</code> для Фурье размером <var>dn</var> точек в плоскости <var>z=zVal</var>. Параметр <var>dn</var> &ndash; любое четное число. Например в 1D случае, результатом будет график плотности от массива <em>res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn</em> размером {int(nx/dn), dn, ny}. Массивы <var>re</var>, <var>im</var> параметрически зависят от координат <var>x</var>, <var>y</var>. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Все размеры массивов <var>re</var> и <var>im</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var>, <var>re</var> должны быть одинаковы. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>re</var>).  См. раздел <a href="mathgl_ru_9.html#STFA-sample">STFA &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-STFA-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>STFA</b><i> (<code>const mglData &amp;</code>re, <code>const mglData &amp;</code>im, <code>int</code> dn, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fstfa"></a><u>Функция С:</u> <code>void</code> <b>mgl_stfa</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> re, <code>const HMDT</code> im, <code>int</code> dn, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Vector-fields"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#STFA" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Traj" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0412e_043a_0442_043e_0440_043d_044be-_043f_043e_043bya"></a>
+<h2 class="section">3.13 Векторные поля</h2>
+
+<p>Эти функции рисуют графики для 2D и 3D векторных полей. Есть несколько типов графиков: просто векторное поле (Vect), вектора вдоль траектории (Traj), векторное поле каплями (Dew), нити тока (Flow, FlowP), трубки тока (Pipe). Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива. Параметры цветовой схемы задаются строкой See section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Traj">3.13.1 Traj</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect">3.13.2 Vect</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dew">3.13.3 Dew</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow">3.13.4 Flow</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#FlowP">3.13.5 FlowP</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe">3.13.6 Pipe</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Traj"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-fields" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Traj-1"></a>
+<h3 class="subsection">3.13.1 Traj</h3>
+<a name="index-Traj"></a>
+
+<dl>
+<dt><a name="index-Traj-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Traj</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> len=<code>0</code>)</i></dt>
+<dt><a name="index-Traj-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Traj</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>float</code> len=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005ftraj_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_traj_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code>x, <code>const HMDT</code>y, <code>const HMDT</code>z, <code>const HMDT</code>ax, <code>const HMDT</code>ay, <code>const HMDT</code>az, <code>const char *</code>sch, <code>float</code> len)</i></dt>
+<dt><a name="index-mgl_005ftraj_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_traj_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code>x, <code>const HMDT</code>y, <code>const HMDT</code>ax, <code>const HMDT</code>ay, <code>const char *</code>sch, <code>float</code> zVal, <code>float</code> len)</i></dt>
+<dd><p>Рисует вектора {<var>ax</var>, <var>ay</var>, <var>az</var>} вдоль кривой {<var>x</var>, <var>y</var>, <var>z</var>}. Длина векторов пропорциональна <em>\sqrtax^2+ay^2+az^2</em>. Строка <var>pen</var> задает цвет (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=&quot;&quot;</code>) используется текущий цвет из палитры (see section <a href="#Palette-and-colors">Палитра и цвета</a>). Параметр <var>len</var> задает фактор длины векторов (если не нуль) или выбирать длину пропорционально расстоянию между точками кривой (если <var>len</var>=0). Размер по 1-му индексу должен быть 2 или больше. График рисуется для каждой строки если один из массивов матрица. См. также <a href="#Vect">Vect</a>. См. раздел <a href="mathgl_ru_9.html#Traj-sample">Traj &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Vect"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Traj" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dew" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-1"></a>
+<h3 class="subsection">3.13.2 Vect</h3>
+<a name="index-Vect"></a>
+
+<dl>
+<dt><a name="index-Vect-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Vect</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fvect_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_vect_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal, <code>int</code> flag)</i></dt>
+<dd><p>Рисует векторное поле {<var>ax</var>, <var>ay</var>} параметрически зависящее от координат <var>x</var>, <var>y</var> на плоскости при <var>z</var>=<var>zVal</var>. Длина и цвет векторов пропорциональна <em>\sqrtax^2+ay^2</em>. Число рисуемых векторов зависит от <code>SetMeshNum()</code> (see section <a href="#Other-settings">Прочие настройки</a>). Цвет задается строкой <var>sch</var>. Предыдущая цветовая схема используется по умолчанию. Параметр <var>flag</var> побитовый флаг для настройки вид векторов: <code>MGL_VEC_COL</code> &ndash; двуцветный вектор, <code>MGL_VEC_LEN</code> &ndash; одинаковая длина векторов, <code>MGL_VEC_DOT</code> &ndash; рисует штрихи вместо стрелок, <code>MGL_VEC_END</code> &ndash; рисует стрелку в точку сетки, <code>MGL_VEC_MID</code> &ndash; рисует стрелку с серединой в точке сетки. Все размеры массивов <var>ax</var> и <var>ay</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var> и <var>ax</var> должны быть одинаковы. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>ax</var>). График строится для каждого z среза <var>ax</var>, <var>ay</var>. См. также <a href="#Flow">Flow</a>, <a href="#Dew">Dew</a>. См. раздел <a href="mathgl_ru_9.html#Vect-sample">Vect &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Vect-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Vect</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fvect_005f2d"></a><u>Функция С:</u> <code>void</code> <b>mgl_vect_2d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal, <code>int</code> flag)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Vect-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Vect</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fvect_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_vect_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>int</code> flag)</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>ax</var>, <var>ay</var>, <var>az</var> должны быть 3d массивами, а длина и цвет пропорциональны <em>\sqrtax^2+ay^2+az^2</em>. См. раздел <a href="mathgl_ru_9.html#Vect-3D-sample">Vect 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Vect-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Vect</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> flag=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fvect_005f3d"></a><u>Функция С:</u> <code>void</code> <b>mgl_vect_3d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>int</code> flag)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Dew"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dew-1"></a>
+<h3 class="subsection">3.13.3 Dew</h3>
+<a name="index-Dew"></a>
+
+<dl>
+<dt><a name="index-Dew-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dew</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdew_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_dew_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует капли для векторного поля {<var>ax</var>, <var>ay</var>}, параметрически зависящего от координат <var>x</var>, <var>y</var> при <var>z=zVal</var>. Замечу, что график требует много памяти и процессорного времени для своего создания! Цвет капель пропорционален <em>\sqrtax^2+ay^2</em>. Число капель определяется <code>SetMeshNum()</code> (see section <a href="#Other-settings">Прочие настройки</a>). Цвет задается строкой <var>sch</var>. Предыдущая цветовая схема используется по умолчанию. Все размеры массивов <var>ax</var> и <var>ay</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var> и <var>ax</var> должны быть одинаковы. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>ax</var>). График строится для каждого z среза <var>ax</var>, <var>ay</var>. См. также <a href="#Vect">Vect</a>. См. раздел <a href="mathgl_ru_9.html#Dew-sample">Dew &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Dew-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dew</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdew"></a><u>Функция С:</u> <code>void</code> <b>mgl_dew</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Flow"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dew" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#FlowP" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-1"></a>
+<h3 class="subsection">3.13.4 Flow</h3>
+<a name="index-Flow"></a>
+
+<dl>
+<dt><a name="index-Flow-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flow</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>, <code>bool</code> central=<code>true</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fflow_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_flow_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>int</code> num, <code>int</code> central, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует нити тока для векторного поля {<var>ax</var>, <var>ay</var>}, параметрически зависящего от координат <var>x</var>, <var>y</var> на плоскости при z = <var>zVal</var>. Число нитей пропорционально <var>num</var>. Параметр <var>central</var> задает возможность старта нитей изнутри сетки (если true) или только с краев (если false). С версии 1.11 он игнорируется и всегда равен (<var>num</var>&gt;0). Цвет нитей пропорционален <em>\sqrtax^2+ay^2</em>. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника). Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Все размеры массивов <var>ax</var> и <var>ay</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var> и <var>ax</var> должны быть одинаковы. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>ax</var>). График строится для каждого z среза <var>ax</var>, <var>ay</var>. См. также <a href="#Pipe">Pipe</a>, <a href="#Vect">Vect</a>. См. раздел <a href="mathgl_ru_9.html#Flow-sample">Flow &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Flow-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flow</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>5</code>, <code>bool</code> central=<code>true</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fflow_005f2d"></a><u>Функция С:</u> <code>void</code> <b>mgl_flow_2d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>int</code> num, <code>int</code> central, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Flow-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flow</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>, <code>bool</code> central=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fflow_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_flow_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>int</code> num, <code>int</code> central)</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>ax</var>, <var>ay</var>, <var>az</var> должны быть 3d массивами, а цвет пропорционален <em>\sqrtax^2+ay^2+az^2</em>. См. раздел <a href="mathgl_ru_9.html#Flow-3D-sample">Flow 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Flow-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Flow</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>int</code> num=<code>3</code>, <code>bool</code> central=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fflow_005f3d"></a><u>Функция С:</u> <code>void</code> <b>mgl_flow_3d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>int</code> num, <code>int</code> central)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="FlowP"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="FlowP-1"></a>
+<h3 class="subsection">3.13.5 FlowP</h3>
+<a name="index-FlowP"></a>
+
+<dl>
+<dt><a name="index-FlowP-1"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>FlowP</b><i> (<code>mglPoint</code> p0, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-FlowP-2"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>FlowP</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fflowp_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_flowp_xy</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует нить тока из точки <var>p0</var> для векторного поля {<var>ax</var>, <var>ay</var>}, параметрически зависящего от координат <var>x</var>, <var>y</var> на плоскости при z = <var>p0</var>.z. Цвет нити пропорционален <em>\sqrtax^2+ay^2</em>. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника). Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Все размеры массивов <var>ax</var> и <var>ay</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var> и <var>ax</var> должны быть одинаковы. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>ax</var>). График строится для каждого z среза <var>ax</var>, <var>ay</var>. См. также <a href="#Pipe">Pipe</a>, <a href="#Vect">Vect</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FlowP-3"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>FlowP</b><i> (<code>mglPoint</code> p0, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-FlowP-4"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>FlowP</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fflowp_005f2d"></a><u>Функция С:</u> <code>void</code> <b>mgl_flowp_2d</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FlowP-5"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>FlowP</b><i> (<code>mglPoint</code> p0, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-FlowP-6"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>FlowP</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fflowp_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_flowp_xyz</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch)</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>ax</var>, <var>ay</var>, <var>az</var> должны быть 3d массивами, а цвет пропорциональны <em>\sqrtax^2+ay^2+az^2</em>. См. раздел <a href="mathgl_ru_9.html#Flow-3D-sample">Flow 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FlowP-7"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>FlowP</b><i> (<code>mglPoint</code> p0, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-FlowP-8"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>FlowP</b><i> (<code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fflowp_005f3d"></a><u>Функция С:</u> <code>void</code> <b>mgl_flowp_3d</b><i> (<code>HMGL</code> gr, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Pipe"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#FlowP" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-1"></a>
+<h3 class="subsection">3.13.6 Pipe</h3>
+<a name="index-Pipe"></a>
+
+<dl>
+<dt><a name="index-Pipe-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pipe</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> r0=<code>0.05</code>, <code>int</code> num=<code>5</code>, <code>bool</code> central=<code>true</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fpipe_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_pipe_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> r0, <code>int</code> num, <code>int</code> central, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует трубки тока для векторного поля {<var>ax</var>, <var>ay</var>}, параметрически зависящего от координат <var>x</var>, <var>y</var> на плоскости при z = <var>zVal</var>. Число трубок пропорционально <var>num</var>. Параметр <var>central</var> задает возможность старта трубок изнутри сетки (если true) или только с краев (если false). С версии 1.11 он игнорируется и всегда равен (<var>num</var>&gt;0). Цвет и радиус трубок пропорционален <em>\sqrtax^2+ay^2</em>. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника). Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Параметр <var>r0</var> задает радиус трубок. При <var>r0</var>&lt;0 радиус трубок обратно пропорционален их амплитуде. Все размеры массивов <var>ax</var> и <var>ay</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var> и <var>ax</var> должны быть одинаковы. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>ax</var>). График строится для каждого z среза <var>ax</var>, <var>ay</var>. См. также <a href="#Flow">Flow</a>, <a href="#Vect">Vect</a>. См. раздел <a href="mathgl_ru_9.html#Pipe-sample">Pipe &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Pipe-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pipe</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> r0=<code>0.05</code>, <code>int</code> num=<code>5</code>, <code>bool</code> central=<code>true</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fpipe_005f2d"></a><u>Функция С:</u> <code>void</code> <b>mgl_pipe_2d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const char *</code>sch, <code>float</code> r0, <code>int</code> num, <code>int</code> central, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Pipe-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pipe</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> r0=<code>0.05</code>, <code>int</code> num=<code>3</code>, <code>bool</code> central=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fpipe_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_pipe_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>float</code> r0, <code>int</code> num, <code>int</code> central)</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>ax</var>, <var>ay</var>, <var>az</var> должны быть 3d массивами, а цвет пропорциональны <em>\sqrtax^2+ay^2+az^2</em>. См. раздел <a href="mathgl_ru_9.html#Pipe-3D-sample">Pipe 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Pipe-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Pipe</b><i> (<code>const mglData &amp;</code>ax, <code>const mglData &amp;</code>ay, <code>const mglData &amp;</code>az, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> r0=<code>0.05</code>, <code>int</code> num=<code>3</code>, <code>bool</code> central=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fpipe_005f3d"></a><u>Функция С:</u> <code>void</code> <b>mgl_pipe_3d</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> ax, <code>const HMDT</code> ay, <code>const HMDT</code> az, <code>const char *</code>sch, <code>float</code> r0, <code>int</code> num, <code>int</code> central)</i></dt>
+<dd><p>Как предыдущий с <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Other-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#DensXYZ" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043e_0447_0438e-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">3.14 Прочие графики</h2>
+
+<p>Это функции, не относящиеся к какой-то специальной категории. Сюда входят функции построения графиков по текстовым формулам (Plots by formula), рисования поверхностей из треугольников (TriPlot), произвольных точек в пространстве (Dots) и реконструкции по ним поверхности (Crust), графики плотности и линии уровня на плоскостях, перпендикулярных осям x, y или z (Dens[XYZ], Cont[XYZ], ContF[XYZ]), функция &quot;упрощенного&quot; рисования (SimplePlot). Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива. Параметры цветовой схемы задаются строкой. See section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#DensXYZ">3.14.1 DensXYZ</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContXYZ">3.14.2 ContXYZ</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContFXYZ">3.14.3 ContFXYZ</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dots">3.14.4 Dots</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Crust">3.14.5 Crust</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TriPlot">3.14.6 TriPlot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TriCont">3.14.7 TriCont</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#QuadPlot">3.14.8 QuadPlot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-by-formula">3.14.9 Графики функций</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#SimplePlot">3.14.10 SimplePlot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="DensXYZ"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContXYZ" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="DensXYZ-1"></a>
+<h3 class="subsection">3.14.1 DensXYZ</h3>
+<a name="index-DensX"></a>
+<a name="index-DensY"></a>
+<a name="index-DensZ"></a>
+
+<p>Эти функции рисуют график плотности на x, y или z плоскостях. Если <var>a</var> &ndash; 3d массив, то выполняется интерполяция к заданному срезу <var>sVal</var>. Функции полезны для создания проекций 3D массивов на оси координат. Например, код
+</p><table><tr><td>&nbsp;</td><td><pre class="example">gr-&gt;DensX(c.Sum(&quot;x&quot;),&quot;BbcyrR&quot;,-1);
+gr-&gt;DensY(c.Sum(&quot;y&quot;),0,1);
+gr-&gt;DensZ(c.Sum(&quot;z&quot;),0,-1);
+</pre></td></tr></table>
+<p>создают такую картинку. См. также <a href="#ContXYZ">ContXYZ</a>, <a href="#ContFXYZ">ContFXYZ</a>, <a href="#Dens">Dens</a>, <a href="#Data-distributions">Распределение данных</a>. См. раздел <a href="mathgl_ru_9.html#Dens-projection-sample">Dens projection &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-DensX-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensX</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens_005fx"></a><u>Функция С:</u> <code>void</code> <b>mgl_dens_x</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Рисует график плотности <var>a</var> при x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DensY-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensY</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens_005fy"></a><u>Функция С:</u> <code>void</code> <b>mgl_dens_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Рисует график плотности <var>a</var> при y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DensZ-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>DensZ</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fdens_005fz"></a><u>Функция С:</u> <code>void</code> <b>mgl_dens_z</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Рисует график плотности <var>a</var> при z = <var>sVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContXYZ"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#DensXYZ" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContFXYZ" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContXYZ-1"></a>
+<h3 class="subsection">3.14.2 ContXYZ</h3>
+<a name="index-ContX"></a>
+<a name="index-ContY"></a>
+<a name="index-ContZ"></a>
+
+<p>Эти функции рисуют линии уровня на x, y или z плоскостях. Если <var>a</var> &ndash; 3d массив, то выполняется интерполяция к заданному срезу <var>sVal</var>. Функции полезны для создания проекций 3D массивов на оси координат. Например, код
+</p><table><tr><td>&nbsp;</td><td><pre class="example">gr-&gt;ContX(c.Sum(&quot;x&quot;),&quot;BbcyrR&quot;,-1);
+gr-&gt;ContY(c.Sum(&quot;y&quot;),0,1);
+gr-&gt;ContZ(c.Sum(&quot;z&quot;),0,-1);
+</pre></td></tr></table>
+<p>создают такую картинку. См. также <a href="#ContFXYZ">ContFXYZ</a>, <a href="#DensXYZ">DensXYZ</a>, <a href="#Cont">Cont</a>, <a href="#Data-distributions">Распределение данных</a>. См. раздел <a href="mathgl_ru_9.html#Cont-projection-sample">Cont projection &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-ContX-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContX</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fx"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont_x</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Рисует <var>num</var> линий уровня для массива <var>a</var> при x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContY-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContY</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fy"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Рисует <var>num</var> линий уровня для массива <var>a</var> при y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContZ-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContZ</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fz"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont_z</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Рисует <var>num</var> линий уровня для массива <var>a</var> при z = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContX-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContX</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fx_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont_x_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Рисует линии уровня для массива  <var>a</var>=<var>v</var>[i] при x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContY-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContY</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fy_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont_y_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Рисует линии уровня для массива  <var>a</var>=<var>v</var>[i] при y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContZ-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContZ</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcont_005fz_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_cont_z_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Рисует линии уровня для массива  <var>a</var>=<var>v</var>[i] при z = <var>sVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="ContFXYZ"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContXYZ" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dots" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContFXYZ-1"></a>
+<h3 class="subsection">3.14.3 ContFXYZ</h3>
+<a name="index-ContFX"></a>
+<a name="index-ContFY"></a>
+<a name="index-ContFZ"></a>
+
+<p>Эти функции рисуют закрашенные контуры уровня на x, y или z плоскостях. Если <var>a</var> &ndash; 3d массив, то выполняется интерполяция к заданному срезу <var>sVal</var>. Функции полезны для создания проекций 3D массивов на оси координат. См. также <a href="#ContXYZ">ContXYZ</a>, <a href="#DensXYZ">DensXYZ</a>, <a href="#ContF">ContF</a>, <a href="#Data-distributions">Распределение данных</a>.
+</p>
+<dl>
+<dt><a name="index-ContFX-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFX</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fx"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf_x</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Рисует <var>num</var> закрашенных контуров уровня для массива <var>a</var> при x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFY-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFY</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fy"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf_y</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Рисует <var>num</var> закрашенных контуров уровня для массива <var>a</var> при y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFZ-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFZ</b><i> (<code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>, <code>int</code> num=<code>7</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fz"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf_z</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal, <code>int</code> num)</i></dt>
+<dd><p>Рисует <var>num</var> закрашенных контуров уровня для массива <var>a</var> при z = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFX-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFX</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fx_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf_x_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Рисует закрашенные конутры уровня для массива <var>a</var>=<var>v</var>[i] при x = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFY-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFY</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fy_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf_y_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Рисует закрашенные конутры уровня для массива <var>a</var>=<var>v</var>[i] при y = <var>sVal</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ContFZ-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ContFZ</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>a, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> sVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fcontf_005fz_005fval"></a><u>Функция С:</u> <code>void</code> <b>mgl_contf_z_val</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> a, <code>const char *</code>stl, <code>float</code> sVal)</i></dt>
+<dd><p>Рисует закрашенные конутры уровня для массива <var>a</var>=<var>v</var>[i] при z = <var>sVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Dots"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContFXYZ" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Crust" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dots-1"></a>
+<h3 class="subsection">3.14.4 Dots</h3>
+<a name="index-Dots"></a>
+
+<dl>
+<dt><a name="index-Dots-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dots</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-Dots-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Dots</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdots"></a><u>Функция С:</u> <code>void</code> <b>mgl_dots</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dt><a name="index-mgl_005fdots_005fa"></a><u>Функция С:</u> <code>void</code> <b>mgl_dots_a</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует произвольно расположенные точки {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если определен массив <var>a</var>, то он задает прозрачность точек. Массивы <var>x</var>, <var>y</var>, <var>z</var>, <var>a</var> должны иметь одинаковые размеры. См. также <a href="#Crust">Crust</a>, <a href="#Mark">Mark</a>, <a href="#Plot">Plot</a>. См. раздел <a href="mathgl_ru_9.html#Dots-sample">Dots &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Dots-3"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Dots</b><i> (<code>const mglData &amp;</code>tr, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdots_005ftr"></a><u>Функция С:</u> <code>void</code> <b>mgl_dots_tr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> tr, <code>const char *</code>sch)</i></dt>
+<dd><p>Как предыдущий с <var>x=tr</var>(0,:), <var>y=tr</var>(1,:), <var>z=tr</var>(2,:) и если <var>tr</var>.nx&gt;3, то <var>a=tr</var>(3,:).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Crust"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dots" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TriPlot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Crust-1"></a>
+<h3 class="subsection">3.14.5 Crust</h3>
+<a name="index-Crust"></a>
+
+<dl>
+<dt><a name="index-Crust-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Crust</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> er=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcrust"></a><u>Функция С:</u> <code>void</code> <b>mgl_crust</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> er)</i></dt>
+<dd><p>Реконструирует и рисует поверхность по произвольно расположенным точкам {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. Параметр <var>er</var> задает радиус ошибки (увеличте для удаления дыр). Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если строка содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Массивы <var>x</var>, <var>y</var>, <var>z</var> должны иметь одинаковые размеры. См. также <a href="#Dots">Dots</a>, <a href="#TriPlot">TriPlot</a>. См. раздел <a href="mathgl_ru_9.html#Crust-sample">Crust &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Crust-2"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Crust</b><i> (<code>const mglData &amp;</code>tr, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> er=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fcrust_005ftr"></a><u>Функция С:</u> <code>void</code> <b>mgl_crust_tr</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> tr, <code>const char *</code>sch, <code>float</code> er)</i></dt>
+<dd><p>Как предыдущий с <var>x=tr</var>(0,:), <var>y=tr</var>(1,:), <var>z=tr</var>(2,:).
+</p></dd></dl>
+
+<hr size="6">
+<a name="TriPlot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Crust" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TriCont" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TriPlot-1"></a>
+<h3 class="subsection">3.14.6 TriPlot</h3>
+<a name="index-TriPlot"></a>
+
+<dl>
+<dt><a name="index-TriPlot-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-TriPlot-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005ftriplot_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_triplot_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dt><a name="index-mgl_005ftriplot_005fxyzc"></a><u>Функция С:</u> <code>void</code> <b>mgl_triplot_xyzc</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует поверхность из треугольников. Вершины треугольников задаются индексами <var>id</var> в массиве точек {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если строка содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Размер по 1-му индексу массива <var>id</var> должен быть 3 или больше. Массивы <var>x</var>, <var>y</var>, <var>z</var> должны иметь одинаковые размеры. Массив <var>c</var> задает цвет треугольников (если <var>id</var>.ny=<var>c</var>.nx) или цвет вершин (если <var>x</var>.nx=<var>c</var>.nx). См. также <a href="#Dots">Dots</a>, <a href="#Crust">Crust</a>, <a href="#QuadPlot">QuadPlot</a>, <a href="#TriCont">TriCont</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TriPlot-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005ftriplot_005fxy"></a><u>Функция С:</u> <code>void</code> <b>mgl_triplot_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>z</var>[i]=<var>zVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="TriCont"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TriPlot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#QuadPlot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TriCont-1"></a>
+<h3 class="subsection">3.14.7 TriCont</h3>
+<a name="index-TriCont"></a>
+
+<dl>
+<dt><a name="index-TriContV"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriContV</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-TriContV-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriContV</b><i> (<code>const mglData &amp;</code>v, <code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005ftricont_005fxyzcv"></a><u>C function:</u> <code>void</code> <b>mgl_tricont_xyzcv</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dt><a name="index-mgl_005ftricont_005fxyzv"></a><u>C function:</u> <code>void</code> <b>mgl_tricont_xyzv</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> v, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Рисует линии уровня поверхности из треугольников при <var>z</var> = <var>zVal</var> (или для <var>z=v</var>[k] если <code>zVal==NAN</code>). Вершины треугольников задаются индексами <var>id</var> в массиве точек {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Размер по 1-му индексу массива <var>id</var> должен быть 3 или больше. Массивы <var>x</var>, <var>y</var>, <var>z</var> должны иметь одинаковые размеры. Массив <var>c</var> задает цвет треугольников (если <var>id</var>.ny=<var>c</var>.nx) или цвет вершин (если <var>x</var>.nx=<var>c</var>.nx). См. также <a href="#TriPlot">TriPlot</a>, <a href="#Cont">Cont</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-TriCont-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriCont</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>num</code>=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-TriCont-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>TriCont</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>num</code>=<code>7</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005ftricont_005fxyzc"></a><u>C function:</u> <code>void</code> <b>mgl_tricont_xyzc</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch, <code>num</code>, <code>float</code> zVal)</i></dt>
+<dt><a name="index-mgl_005ftricont_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_tricont_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch, <code>num</code>, <code>float</code> zVal)</i></dt>
+<dd><p>Аналогично предыдущему с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале [<var>Cmin</var>, <var>Cmax</var>].
+</p></dd></dl>
+
+<hr size="6">
+<a name="QuadPlot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TriCont" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-by-formula" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="QuadPlot-1"></a>
+<h3 class="subsection">3.14.8 QuadPlot</h3>
+<a name="index-QuadPlot"></a>
+
+<dl>
+<dt><a name="index-QuadPlot-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>QuadPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>c, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-QuadPlot-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>QuadPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const char *</code>sch=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fquadplot_005fxyz"></a><u>C function:</u> <code>void</code> <b>mgl_quadplot_xyz</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const char *</code>sch)</i></dt>
+<dt><a name="index-mgl_005fquadplot_005fxyzc"></a><u>C function:</u> <code>void</code> <b>mgl_quadplot_xyzc</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> c, <code>const char *</code>sch)</i></dt>
+<dd><p>Рисует поверхность из четырехугольников. Вершины четырехугольников задаются индексами <var>id</var> в массиве точек {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. Строка <var>sch</var> задает цветовую схему. Предыдущая цветовая схема используется по умолчанию. Если строка содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Размер по 1-му индексу массива <var>id</var> должен быть 4 или больше. Массивы <var>x</var>, <var>y</var>, <var>z</var> должны иметь одинаковые размеры. Массив <var>c</var> задает цвет четырехугольников (если <var>id</var>.ny=<var>c</var>.nx) или цвет вершин (если <var>x</var>.nx=<var>c</var>.nx). См. также <a href="#TriPlot">TriPlot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-QuadPlot-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>QuadPlot</b><i> (<code>const mglData &amp;</code>id, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const char *</code>sch=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>)</i></dt>
+<dt><a name="index-mgl_005fquadplot_005fxy"></a><u>C function:</u> <code>void</code> <b>mgl_quadplot_xy</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> id, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const char *</code>sch, <code>float</code> zVal)</i></dt>
+<dd><p>Как предыдущий с <var>z</var>[i]=<var>zVal</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Plots-by-formula"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#QuadPlot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SimplePlot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0413_0440_0430_0444_0438_043a_0438-_0444_0443_043d_043ac_0438_0439"></a>
+<h3 class="subsection">3.14.9 Графики функций</h3>
+<a name="index-Plot-4"></a>
+<a name="index-Surf-3"></a>
+
+<p>Эти функции строят графики 1D или 2D функций, заданный текстовыми формулами. Вам не нужно создавать массивы для их построения. Параметр <var>stl</var> задаект стиль линии (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>) для <code>Plot()</code> или цветовую схему (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>) для <code>Surf()</code>. Параметр <var>n</var> задает минимальное число точек по координате(ам) для графика. В настоящее время (v. 1.10) число точек автоматически увеличивается для области резкого изменения функции, но только для 1D графиков (т.е. для Plot()).
+</p>
+<dl>
+<dt><a name="index-Plot-5"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const char *</code>eqY, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>int</code> n=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005ffplot"></a><u>Функция С:</u> <code>void</code> <b>mgl_fplot</b><i> (<code>HMGL</code> gr, <code>const char *</code>eqY, <code>const char *</code>stl, <code>float</code> zVal, <code>int</code> n)</i></dt>
+<dd><p>Рисует функцию &lsquo;<samp>eqY(x)</samp>&rsquo; в плоскости z=<var>zVal</var> с координатой &lsquo;<samp>x</samp>&rsquo; в диапазоне [<var>Min</var>.x, <var>Max</var>.x]. См. также <a href="#Plot">Plot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Plot-6"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Plot</b><i> (<code>const char *</code>eqX, <code>const char *</code>eqY, <code>const char *</code>eqZ, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>float</code> zVal=<code>NAN</code>, <code>int</code> n=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005ffplot_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_fplot_xyz</b><i> (<code>HMGL</code> gr, <code>const char *</code>eqX, <code>const char *</code>eqY, <code>const char *</code>eqZ, <code>const char *</code>stl, <code>float</code> zVal, <code>int</code> n)</i></dt>
+<dd><p>Рисует параметрическую кривую {&lsquo;<samp>eqX(t)</samp>&rsquo;, &lsquo;<samp>eqY(t)</samp>&rsquo;, &lsquo;<samp>eqZ(t)</samp>&rsquo;}, где координата &lsquo;<samp>t</samp>&rsquo; меняется в диапазоне [0, 1]. См. также <a href="#Plot">Plot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf</b><i> (<code>const char *</code>eqZ, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> n=<code>100</code>);</i></dt>
+<dt><a name="index-mgl_005ffsurf"></a><u>Функция С:</u> <code>void</code> <b>mgl_fsurf</b><i> (<code>HMGL</code> gr, <code>const char *</code>eqZ, <code>const char *</code>stl, <code>int</code> n);</i></dt>
+<dd><p>Рисует поверхность &lsquo;<samp>eqY(x,y)</samp>&rsquo; с координатами &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; в диапазоне [<var>Min</var>, <var>Max</var>]. См. также <a href="#Surf">Surf</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Surf-5"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Surf</b><i> (<code>const char *</code>eqX, <code>const char *</code>eqY, <code>const char *</code>eqZ, <code>const char *</code>stl=<code>&quot;&quot;</code>, <code>int</code> n=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005ffsurf_005fxyz"></a><u>Функция С:</u> <code>void</code> <b>mgl_fsurf_xyz</b><i> (<code>HMGL</code> gr, <code>const char *</code>eqX, <code>const char *</code>eqY, <code>const char *</code>eqZ, <code>const char *</code>stl, <code>int</code> n)</i></dt>
+<dd><p>Рисует параметрическую поверхность {&lsquo;<samp>eqX(u,v)</samp>&rsquo;, &lsquo;<samp>eqY(u,v)</samp>&rsquo;, &lsquo;<samp>eqZ(u,v)</samp>&rsquo;}, где координаты &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo; меняются в диапазоне [0, 1]. См. также <a href="#Surf">Surf</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="SimplePlot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-by-formula" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SimplePlot-1"></a>
+<h3 class="subsection">3.14.10 SimplePlot</h3>
+<a name="index-SimplePlot"></a>
+
+<dl>
+<dt><a name="index-SimplePlot-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>SimplePlot</b><i> (<code>const mglData &amp;</code>a, <code>int</code> type=<code>0</code>, <code>const char *</code>stl=<code>&quot;&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fsimple_005fplot"></a><u>Функция С:</u> <code>void</code> <b>mgl_simple_plot</b><i> (<code>HMGL</code> gr, <code>const HMDT</code> a, <code>int</code> type, <code>const char *</code>stl)</i></dt>
+<dd><p>Рисует график массива <var>a</var> в зависимости от его размерности и параметра <var>type</var>. Строка <var>stl</var> задает стиль графика. Для 1d массивов: <code>type=0</code> &ndash; <a href="#Plot">Plot</a>, <code>type=1</code> &ndash; <a href="#Area">Area</a>, <code>type=2</code> &ndash; <a href="#Step">Step</a>, <code>type=3</code> &ndash; <a href="#Stem">Stem</a>, <code>type=4</code> &ndash; <a href="#Bars">Bars</a>. Для 2d массивов: <code>type=0</code> &ndash; <a href="#Surf">Surf</a>, <code>type=1</code> &ndash; <a href="#Dens">Dens</a>, <code>type=2</code> &ndash; <a href="#Mesh">Mesh</a>, <code>type=3</code> &ndash; <a href="#Cont">Cont</a>. Для 3d массивов: <code>type=0</code> &ndash; <a href="#Surf3">Surf3</a>, <code>type=1</code> &ndash; <a href="#Dens3">Dens3</a>, <code>type=2</code> &ndash; <a href="#Cont3">Cont3</a>, <code>type=2</code> &ndash; <a href="#Cloud">Cloud</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Nonlinear-fitting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SimplePlot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-distributions" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-1"></a>
+<h2 class="section">3.15 Nonlinear fitting</h2>
+<a name="index-Fit"></a>
+<a name="index-FitS"></a>
+<a name="index-PutsFit"></a>
+<a name="index-FitPnts"></a>
+<a name="index-Fit2"></a>
+<a name="index-Fit3"></a>
+
+<p>Эти функции подбирают параметры функции для наилучшей аппроксимации данных, т.е. минимизируют сумму <em>\sum_i (f(x_i, y_i, z_i) - a_i)^2/s_i^2</em>. При этом аппроксимирующая функция &lsquo;<samp>f</samp>&rsquo; может зависеть от одного аргумента &lsquo;<samp>x</samp>&rsquo; (1D случай), от двух аргументов &lsquo;<samp>x,y</samp>&rsquo; (2D случай) или от трех аргументов &lsquo;<samp>x,y,z</samp>&rsquo; (3D случай). Функция &lsquo;<samp>f</samp>&rsquo; также может зависеть от параметров. Список параметров задается строкой <var>var</var> (например, &lsquo;<samp>abcd</samp>&rsquo;). Обычно пользователь должен предоставить начальные значения параметров в переменной <var>ini</var>. Однако, при его отсутствии используются нулевые значения. Параметр <var>print</var>=<code>true</code> включает вывод найденной формулы в <var>Message</var> (see section <a href="#Error-handling">Обработка ошибок</a>).
+</p>
+<p>Функции Fit() и FitS() не рисуют полученные массивы. Они заполняют массив <var>fit</var> по формуле &lsquo;<samp>f</samp>&rsquo; с найденными коэффициентами и возвращают <em>\chi^2</em> ошибку аппроксимации. При этом, координаты &lsquo;<samp>x,y,z</samp>&rsquo; равнораспределены в интервале <var>Min</var>&ndash;<var>Max</var>. Число точек в <var>fit</var> выбирается максимальным из размера массива <var>fit</var> и значения переменной <var>FitPnts</var>. Функции используют библиотеку GSL. См. раздел <a href="mathgl_ru_9.html#Fitting-sample">Fitting &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<dl>
+<dt><a name="index-FitS-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-FitS-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyzas"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xyzas</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyzas_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xyzas_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-, y- и z-направлений для 3d массива заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FitS-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-FitS-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyzs"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xyzs</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyzs_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xyzs_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x- и y-направлений для 2d массива заданного параметрически <var>a</var>[i,j](<var>x</var>[i,j], <var>y</var>[i,j]) для каждого среза данных.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FitS-5"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-FitS-6"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxys"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xys</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxys_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xys_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-направления для 1d массива заданного параметрически <var>a</var>[i](<var>x</var>[i]) для каждого среза данных.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FitS-7"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-FitS-8"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>FitS</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const mglData &amp;</code>s, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fys"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_ys</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fys_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_ys_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const HMDT</code> s, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-направления для 1d массива с <var>x</var> равно распределенным в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyza"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xyza</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyza_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xyza_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-, y- и z-направлений для 3d массива заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) с <var>s</var>[i,j,k]=1.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit-3"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit-4"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyz"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xyz</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxyz_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xyz_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x- и y-направлений для 2d массива заданного параметрически <var>a</var>[i,j](<var>x</var>[i,j], <var>y</var>[i,j]) с <var>s</var>[i,j]=1 для каждого среза данных.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit-5"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit-6"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxy"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xy</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005fxy_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_xy_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> x, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-направления для 1d массива заданного параметрически <var>a</var>[i](<var>x</var>[i]) с <var>s</var>[i]=1 для каждого среза данных.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit-7"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>&quot;&quot;</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit-8"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005f1"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_1</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005f1_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_1_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-направления для 1d массива <var>a</var> с <var>s</var>=1 и <var>x</var> равно распределенным в интервале [<var>Min</var>.x, <var>Max</var>.x].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit2-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit2</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit2-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit2</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005f2"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_2</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005f2_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_2_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x- и y-направлений для 2d массива <var>a</var> с <var>s</var>=1 и <var>x</var>, <var>y</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fit3-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit3</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini=<code>NULL</code>, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-Fit3-2"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>float</code> <b>Fit3</b><i> (<code>mglData &amp;</code>fit, <code>const mglData &amp;</code>a, <code>const char *</code>func, <code>const char *</code>var, <code>mglData &amp;</code>ini, <code>bool</code> print=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005ffit_005f3"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_3</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>float *</code>ini)</i></dt>
+<dt><a name="index-mgl_005ffit_005f3_005fd"></a><u>Функция С:</u> <code>float</code> <b>mgl_fit_3_d</b><i> (<code>HMGL</code> gr, <code>HMDT</code> fit, <code>const HMDT</code> a, <code>const char *</code>func, <code>const char *</code>var, <code>HMDT</code> ini)</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-, y- и z-направлений для 3d массива <var>a</var> с <var>s</var>=1 и <var>x</var>, <var>y</var>, <var>z</var> равно распределенными в интервале [<var>Min</var>, <var>Max</var>].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-PutsFit-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>PutsFit</b><i> (<code>mglPoint</code> p, <code>const char *</code>prefix=<code>&quot;&quot;</code>, <code>const char *</code>font=<code>NULL</code>, <code>float</code> size=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fputs_005ffit"></a><u>Функция С:</u> <code>void</code> <b>mgl_puts_fit</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>const char *</code>prefix, <code>const char *</code>font, <code>float</code> size=<code>-1</code>)</i></dt>
+<dd><p>Печатает последнюю подобранную формулу с найденными коэффициентами в точке <var>p0</var>. Строка <var>prefix</var> будет напечатана перед формулой. Все другие параметры такие же как в <a href="#Text-printing">Вывод текста</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetFit"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>const char *</code> <b>GetFit</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fget_005ffit"></a><u>Функция С:</u> <code>const char *</code> <b>mgl_get_fit</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Возвращает последнюю подобранную формулу с найденными коэффициентами.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FitPnts-of-mglGraph"></a><u>Переменная(C++) of mglGraph:</u> <code>int</code> <b>FitPnts</b></dt>
+<dd><p>Минимальное число точек для массива со значениями подобранной формулы.
+</p></dd></dl>
+
+
+
+
+<hr size="6">
+<a name="Data-distributions"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Frames_002fAnimation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0420_0430_0441_043f_0440e_0434e_043be_043d_0438e-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">3.16 Распределение данных</h2>
+<a name="index-Hist"></a>
+
+<p>Эти функции создают распределения данных. Они не выполняют построение сами по себе. Функции могут быть полезны в случае когда данные пользователя определены на случайно расположенных точка (например, после PIC расчетов) и он хочет построить график, требующий регулярных данных (данных на сетках). Диапазон сеток равен диапазону осей координат Min...Max. Массивы <var>x</var>, <var>y</var>, <var>z</var> определяют положение (координаты) точек. Массив <var>a</var> задает значения данных. Число точек в результате <var>res</var> &ndash; максимум из размера <var>res</var> и значения <var>FitPnts</var>.
+</p>
+<dl>
+<dt><a name="index-Hist-1"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Hist</b><i> (<code>mglData &amp;</code>res, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>a)</i></dt>
+<dt><a name="index-mgl_005fhist_005fx"></a><u>C function:</u> <code>int</code> <b>mgl_hist_x</b><i> (<code>HMGL</code> gr, <code>HMDT</code> res, <code>const HMDT</code> x, <code>const HMDT</code> a)</i></dt>
+<dd><p>Создет 1D распределение значений массива <var>a</var> в диапазоне [Min, Max].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Hist-2"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Hist</b><i> (<code>mglData &amp;</code>res, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>a)</i></dt>
+<dt><a name="index-mgl_005fhist_005fxy"></a><u>C function:</u> <code>int</code> <b>mgl_hist_xy</b><i> (<code>HMGL</code> gr, <code>HMDT</code> res, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> a)</i></dt>
+<dd><p>Создет 2D распределение значений массива <var>a</var> в диапазоне [Min, Max].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Hist-3"></a><u>Method on <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>Hist</b><i> (<code>mglData &amp;</code>res, <code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z, <code>const mglData &amp;</code>a)</i></dt>
+<dt><a name="index-mgl_005fhist_005fxyz"></a><u>C function:</u> <code>int</code> <b>mgl_hist_xyz</b><i> (<code>HMGL</code> gr, <code>HMDT</code> res, <code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z, <code>const HMDT</code> a)</i></dt>
+<dd><p>Создет 3D распределение значений массива <var>a</var> в диапазоне [Min, Max].
+</p></dd></dl>
+
+
+
+
+<hr size="6">
+<a name="Frames_002fAnimation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-distributions" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#IDTF-functions" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041a_0430_0434_0440_044b_002f_0410_043d_0438_043c_0430c_0438ya"></a>
+<h2 class="section">3.17 Кадры/Анимация</h2>
+<a name="index-NewFrame"></a>
+<a name="index-EndFrame"></a>
+<a name="index-GetNumFrame"></a>
+
+<p>Эти функции позволяют создавать несколько картинок одновременно. В большинстве случаев это бесполезно, но для органов управления (see section <a href="mathgl_ru_5.html#Widget-classes">&ldquo;Оконные&rdquo; классы</a>) это позволяет показывать анимацию. Также можно записать несколько кадров в анимированный GIF файл.
+</p>
+<dl>
+<dt><a name="index-NewFrame-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>int</code> <b>NewFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fnew_005fframe"></a><u>Функция С:</u> <code>int</code> <b>mgl_new_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Создает новый кадр. Функция возвращает номер текущего кадра. В режиме OpenGL функция не должны вызываться в параллельных потоках! &ndash; используйте прямое создание списка. Функция <code>EndFrame()</code> <strong>должна</strong> быть вызвана после рисования кадра для каждого вызова этой функции.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-EndFrame-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>EndFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fend_005fframe"></a><u>Функция С:</u> <code>void</code> <b>mgl_end_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Завершает рисование кадра.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetNumFrame-1"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>int</code> <b>GetNumFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fget_005fnum_005fframe"></a><u>Функция С:</u> <code>int</code> <b>mgl_get_num_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Возвращает число созданных кадров.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ResetFrames"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>ResetFrames</b><i> ()</i></dt>
+<dt><a name="index-mgl_005freset_005fframes"></a><u>Функция С:</u> <code>int</code> <b>mgl_reset_frames</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Сбрасывает счетчик кадров в 0.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-StartGIF"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>void</code> <b>StartGIF</b><i> (<code>const char *</code>fname, <code>int</code> ms=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005fstart_005fgif"></a><u>Функция С:</u> <code>void</code> <b>mgl_start_gif</b><i> (<code>HMGL</code> gr, <code>const char *</code>fname, <code>int</code> ms)</i></dt>
+<dd><p>Начинает запись кадров в анимированный GIF файл <var>fname</var>. Параметр <var>ms</var> задает задержку между кадрами в миллисекундах. Вы <strong>не должны</strong> менять размер рисунка во время создания кино. Используйте CloseGIF() для завершения записи. Эта функция не работает в режиме OpenGL.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CloseGIF"></a><u>Метод класса <code>mglGraph</code> (C++, Python):</u> <code>int</code> <b>CloseGIF</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fclose_005fgif"></a><u>Функция С:</u> <code>void</code> <b>mgl_close_gif</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Завершает запись анимированного GIF файла.
+</p></dd></dl>
+
+<hr size="6">
+<a name="IDTF-functions"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Frames_002fAnimation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MathGL-core" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="IDTF-_0444_0443_043d_043ac_0438_0438"></a>
+<h2 class="section">3.18 IDTF функции</h2>
+<a name="index-NewFrame-2"></a>
+<a name="index-EndFrame-2"></a>
+<a name="index-GetNumFrame-2"></a>
+
+<p>Эти функции обеспечивают поддержку особых возможностей при создании IDTF. Во всех прочих случаях они не делают ничего.
+</p>
+<dl>
+<dt><a name="index-VertexColor"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>VertexColor</b><i> (<code>bool</code> enable)</i></dt>
+<dd><p>Разрешает плавное изменение цвета.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Compression"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>Compression</b><i> (<code>bool</code> enable)</i></dt>
+<dd><p>Дает меньший объем файла, но с худшим качеством.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-StartGroup"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>StartGroup</b><i> (const char *name)</i></dt>
+<dd><p>Начинает определение группы. Группа может содержать объекты и другие группы. Они используются для выбора части модели при приближении, изменении прозрачности и т.д.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-EndGroup"></a><u>Метод класса <code>mglGraph</code> (C++):</u> <code>void</code> <b>EndGroup</b><i> ()</i></dt>
+<dd><p>Завершает определение группы.
+</p></dd></dl>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_ru.html/mathgl_ru_4.html b/texinfo/mathgl_ru.html/mathgl_ru_4.html
new file mode 100644
index 0000000..736b711
--- /dev/null
+++ b/texinfo/mathgl_ru.html/mathgl_ru_4.html
@@ -0,0 +1,295 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: 4. Классы для отрисовки</title>
+
+<meta name="description" content="MathGL 1.11: 4. Классы для отрисовки">
+<meta name="keywords" content="MathGL 1.11: 4. Классы для отрисовки">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Plotter-classes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_3.html#IDTF-functions" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglGraphAB-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_3.html#MathGL-core" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_5.html#Widget-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+
+<a name="g_t_041a_043b_0430_0441_0441_044b-_0434_043bya-_043e_0442_0440_0438_0441_043e_0432_043a_0438"></a>
+<h1 class="chapter">4. Классы для отрисовки</h1>
+<a name="index-mglGraphAB"></a>
+<a name="index-mglGraphZB"></a>
+<a name="index-mglGraphPS"></a>
+<a name="index-mglGraphGL"></a>
+<a name="index-mglGraphIDTF"></a>
+
+<p>Класс mglGraph (see section <a href="mathgl_ru_3.html#MathGL-core">Ядро MathGL</a>) обеспечивает базовые функции для создания научной графики, но это абстрактный класс. Причина в том, что существует несколько возможностей вывода/отображения получившегося рисунка: в растровый или в векторный файлы, используя OpenGL и т.д. В результате, для конечной отрисовки необходимо использовать производные классы. В принципе, можно наследовать непосредственно mglGraph (и так было до версии 1.6). Однако, я рекомендую использовать в качестве базового класс mglGraphAB для большего единообразия получающейся графики в различных классах. Класс mglGraphAB &ndash; другой абстрактный класс, обеспечивающий преобразование координат, базовые функции рисования и сохранения в растровое изображение. Он требует доопределения функций рисования линий, треугольников и четырехугольников. Ниже приведены классы &ldquo;отрисовки&rdquo; с короткими комментариями.
+</p>
+<dl>
+<dt><a name="index-mglGraphAB-1"></a><u>Класс:</u> <b>mglGraphAB</b></dt>
+<dd><p>Абстрактный класс, обеспечивающий отрисовку по глубине, преобразование к экранным координатам, сохранение в растровое изображение и т.д. Класс определен в <code>#include &lt;mgl/mgl_ab.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglGraphZB-1"></a><u>Класс:</u> <b>mglGraphZB</b></dt>
+<dd><p>Реализует растровую отрисовку изображения используя Z-Buffer. Можно использовать для рисования в памяти (или в консоли/SSH терминале). Также этот класс используется как базовый для рисования в окне (например, используя FLTK, Qt, wxWidgets библиотеки и пр.). При экспорте в EPS формат сохраняется растровая картинка. Получающийся рисунок лучшего качества, но рисуется медленнее чем в классе mglGraphPS. Класс определен в <code>#include &lt;mgl/mgl_zb.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglGraphPS-1"></a><u>Класс:</u> <b>mglGraphPS</b></dt>
+<dd><p>Реализует векторную отрисовку изображения с возможностью сохранения в векторный PostScript или SVG файл. Можно использовать для рисования в памяти (или в консоли/SSH терминале). Замечу, что сглаживание цвета не поддерживается, а при экспорте в EPS не поддерживается и прозрачность (в силу ограничения формата). В результате рисунок получается быстрее, но более низкого качества чем в классе mglGraphZB. Класс определен в <code>#include &lt;mgl/mgl_eps.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglGraphGL-1"></a><u>Класс:</u> <b>mglGraphGL</b></dt>
+<dd><p>Реализует векторную графику с использованием OpenGL. Класс не может быть использован для рисования в консоли. В силу ограничения OpenGL возможна проблема корректного отображения нескольких перекрывающихся поверхностей. Класс определен в <code>#include &lt;mgl/mgl_gl.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglGraphIDTF-1"></a><u>Класс:</u> <b>mglGraphIDTF</b></dt>
+<dd><p>Реализует экспорт графики в IDTF формате, который затем можно преобразовать в формат U3D. Класс определен в <code>#include &lt;mgl/mgl_idtf.h&gt;</code>.
+</p></dd></dl>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#mglGraphAB-class">4.1 Класс mglGraphAB</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="mglGraphAB-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plotter-classes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_5.html#Widget-classes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Plotter-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plotter-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_5.html#Widget-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041a_043b_0430_0441_0441-mglGraphAB"></a>
+<h2 class="section">4.1 Класс mglGraphAB</h2>
+<a name="index-mglGraphAB-2"></a>
+<a name="index-window-1"></a>
+<a name="index-mglDraw"></a>
+
+<p>Вообще говоря это чуть &ldquo;менее абстрактный&rdquo; класс чем mglGraph (see section <a href="mathgl_ru_3.html#MathGL-core">Ядро MathGL</a>). Он предоставляет много методов для обработки промежуточных данных и требует в производных классах определения только нескольких методов для отрисовки примитивов. Разработчикам, наследующим этот класс, следует посмотреть файл &lsquo;<samp>mgl_ab.h</samp>&rsquo; и комментарии в нем или обратиться к автору.
+</p>
+<p>Ниже я только перечислю основные общедоступные методы класса mglGraphAB. В первую очередь это функции, возвращающие созданный растровый рисунок, его ширину и высоту. В дальнейшем его можно использовать в любой графической библиотеке (см. также, <a href="mathgl_ru_5.html#Widget-classes">&ldquo;Оконные&rdquo; классы</a>) или сохранить в файл (см. также, <a href="mathgl_ru_3.html#Export-to-file">Экспорт в файл</a>).
+</p>
+<dl>
+<dt><a name="index-GetBits"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>const unsigned char *</code> <b>GetBits</b><i> ()</i></dt>
+<dt><a name="index-GetRGB"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>GetRGB</b><i> (<code>char *</code>buf, <code>int</code> size)</i></dt>
+<dt><a name="index-GetBGRN"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>GetBGRN</b><i> (<code>char *</code>buf, <code>int</code> size)</i></dt>
+<dt><a name="index-mgl_005fget_005frgb"></a><u>C function:</u> <code>const unsigned char *</code> <b>mgl_get_rgb</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Возвращает растровое изображение в формате RGB для текущего кадра. Формат каждого элемента (пикселя): {red, green, blue}. Число элементов Width*Height. Положение элемента {i,j} есть [3*i + 3*Width*j] (или [4*i + 4*Width*j] для <code>GetBGRN()</code>). В Python вы должны предоставить буфер <var>buf</var> достаточного размера <var>size</var>, т.е. код должен выглядеть следующим образом 
+</p><pre class="verbatim">from mathgl import *
+gr = mglGraph();
+bits='\t';
+bits=bits.expandtabs(4*gr.GetWidth()*gr.GetHeight());
+gr.GetBGRN(bits, len(bits));
+</pre></dd></dl>
+
+<dl>
+<dt><a name="index-GetRGBA"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>const unsigned char *</code> <b>GetRGBA</b><i> ()</i></dt>
+<dt><a name="index-GetRGBA-1"></a><u>Метод класса <code>mglGraph</code> (Python):</u> <code>void</code> <b>GetRGBA</b><i> (<code>char *</code>buf, <code>int</code> size)</i></dt>
+<dt><a name="index-mgl_005fget_005frgba"></a><u>C function:</u> <code>const unsigned char *</code> <b>mgl_get_rgba</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Возвращает растровое изображение в формате RGBA для текущего кадра. Формат каждого элемента (пикселя): {red, green, blue, alpha}. Число элементов Width*Height. Положение элемента {i,j} есть [4*i + 4*Width*j].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetWidth"></a><u>Метод класса <code>mglGraphAB</code> (C++, Python):</u> <code>int</code> <b>GetWidth</b><i> ()</i></dt>
+<dt><a name="index-GetHeight"></a><u>Метод класса <code>mglGraphAB</code> (C++, Python):</u> <code>int</code> <b>GetHeight</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fget_005fwidth"></a><u>C function:</u> <code>int</code> <b>mgl_get_width</b><i> (<code>HMGL</code> gr)</i></dt>
+<dt><a name="index-mgl_005fget_005fheight"></a><u>C function:</u> <code>int</code> <b>mgl_get_height</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Возвращает ширину и высоту изображения.
+</p></dd></dl>
+
+<p>Класс mglGraphAB &ndash; базовый класс для &ldquo;оконных классов&rdquo;. Поэтому он содержит набор функций для создания и управления окном. Большинство из них применимо только в &ldquo;оконных классах&rdquo; (типа mglGraphFLTK и др, see section <a href="mathgl_ru_5.html#Widget-classes">&ldquo;Оконные&rdquo; классы</a>). В остальных случаях функции ничего не делают. Если вы создаете оконный класс, то Вам следует предоставить такой же интерфейс для удобства пользователя.
+</p>
+<dl>
+<dt><a name="index-Window-on-mglGraphAB"></a><u>Method on mglGraphAB:</u> <code>void</code> <b>Window</b><i> (<code>int</code> argc, <code>char **</code>argv, <code>int (*</code>draw)(<code>mglGraph *</code>gr, <code>void *</code>p), <code>const char *</code>title, <code>void *</code>par=<code>NULL</code>, <code>void (*</code>reload)(<code>int</code> next, <code>void *</code>p)=<code>NULL</code>, <code>bool</code> maximize=<code>false</code>)</i></dt>
+<dd><p>Создает окно для вывода графика. Параметры <var>argc</var>, <var>argv</var> содержат информацию операционной системы и их слеудет передать в эту функцию из функции <code>main(int argc,char **argv)</code> (хотя они и могут быть равны <code>NULL</code>). Параметр <var>draw</var> &ndash; указатель (имя) функции рисования. Есть возможность создания нескольких кадров вначале (требует больше памяти) и их быстрая анимации в дальнейшем. В этом случае функция <var>draw</var> должна возвращать число кадров или ноль для рисования по запросу. Замечу, что <var>draw</var> может быть равна <code>NULL</code> для отображения статической (текущей) картинки. Параметр <var>title</var> задает заголовок окна. Параметр <var>par</var> содержит указатель на данные, передаваемые функции рисования <var>draw</var>. Параметр <var>maximize</var>=<code>true</code> открывает окно раскрытым на весь экран.
+</p>
+<p>В окне просмотра можно использовать клавиши: &rsquo;a&rsquo;, &rsquo;d&rsquo;, &rsquo;w&rsquo;, &rsquo;s&rsquo; для вращения; &rsquo;,&rsquo;, &rsquo;.&rsquo; для просмотра предыдущего и следующего кадров; &rsquo;r&rsquo; для переключения прозрачности; &rsquo;f&rsquo; для переключения оспещенности; &rsquo;x&rsquo; для закрытия окна.
+</p>
+<p><strong>ВАЖНО!!!</strong> Вам не следует вызывать функцию Rotate() (see section <a href="mathgl_ru_3.html#Transformation-matrix">Матрица преобразования</a>) если Вы хотите вращать график.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Window-on-mglGraphAB-1"></a><u>Method on mglGraphAB:</u> <code>void</code> <b>Window</b><i> (<code>int</code> argc, <code>char **</code>argv, <code>mglDraw *</code>draw, <code>const char *</code>title, <code>bool</code> maximize=<code>false</code>)</i></dt>
+<dd><p>В основном аналогична предыдущей. Основное отличие в том, что функции рисования и обновления данных определены в классе наследнике класса <code>mglDraw</code>. Этот класс определен в <code>#include &lt;mgl/mgl_define.h&gt;</code> и имеет только 2 метода:
+</p><pre class="verbatim">class mglDraw
+{
+public:
+    virtual int Draw(mglGraph *) { return 0; };
+    virtual void Reload(int) {};
+};
+</pre><p>Вы можете создать класс-наследник <code>mglDraw</code> и переопределить один или оба метода для использования с данной функцией.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-ToggleAlpha"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleAlpha</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005falpha"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_alpha</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Включает/выключает прозрачность, но не перезаписывает настройки пользовательской функции рисования.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ToggleLight"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleLight</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005flight"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_light</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Включает/выключает освещение, но не перезаписывает настройки пользовательской функции рисования.
+Switch on/off lighting but do not overwrite switches in user drawing function.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ToggleZoom"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleZoom</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005fzoom"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_zoom</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Включает/выключает приближение выбранного мышью области рисунка.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ToggleRotate"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleRotate</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005frotate"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_rotate</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Включает/выключает режим вращения мышью. Обычно левая кнопка вращает график, средняя сдвигает, правая приближает и меняет перспективу.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ToggleNo"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ToggleNo</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005ftoggle_005fno"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_toggle_no</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Выключает режим приближения/вращения и восстанавливает вид по умолчанию.
+Switch off all zooming and rotation and restore initial state.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Update"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>Update</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fupdate"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_update</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Обновляет содержимое окна.
+</p></dd></dl>
+<dl>
+<dt><a name="index-ReLoad"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>ReLoad</b><i> (<code>bool</code> o)</i></dt>
+<dt><a name="index-mgl_005fwnd_005freload"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_reload</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+<dd><p>Перезагружает данные пользователя и обновляет картинку.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Adjust"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>Adjust</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fadjust"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_adjust</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Подгоняет размер картинки под размер окна (виджета).
+</p></dd></dl>
+<dl>
+<dt><a name="index-NextFrame"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>NextFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fnext_005fframe"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_next_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Показывает следующий кадр.
+</p></dd></dl>
+<dl>
+<dt><a name="index-PrevFrame"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>PrevFrame</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fprev_005fframe"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_prev_frame</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Показывает предыдущий кадр.
+Show previous frame if one.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Animation"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>Animation</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fwnd_005fanimation"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_animation</b><i> (<code>HMGL</code> gr)</i></dt>
+<dd><p>Запускает/останавливает слайд-шоу (анимацию) кадров.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fwnd_005fset_005fauto_005fclf"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_set_auto_clf</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+</dl>
+<dl>
+<dt><a name="index-AutoClf-of-mglGraphAB"></a><u>Widget option of mglGraphAB:</u> <code>bool</code> <b>AutoClf</b></dt>
+<dd><p>Включает/выключает автоматическую очистку рисунка между перерисовкой. Выключение полезно для рисования с накоплением (например, результатов/точек расчета).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fwnd_005fset_005fdelay"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_set_delay</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+</dl>
+<dl>
+<dt><a name="index-Delay-of-mglGraphAB"></a><u>Widget option of mglGraphAB:</u> <code>float</code> <b>Delay</b></dt>
+<dd><p>Задержка анимации в секундах. По умолчанию равно 1 секунде.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CalcXYZ"></a><u>Метод класса <code>mglGraphAB</code> (C++, Python):</u> <code>mglPoint</code> <b>CalcXYZ</b><i> (<code>int</code> xs, <code>int</code> ys)</i></dt>
+<dt><a name="index-mgl_005fcalc_005fxyz-1"></a><u>C function:</u> <code>void</code> <b>mgl_calc_xyz</b><i> (<code>HMGL</code> gr, <code>int</code> xs, <code>int</code> ys, <code>float *</code>x, <code>float *</code>y, <code>float *</code>z)</i></dt>
+<dd><p>Вычисляет 3D координаты {x,y,z} для экранной точки {xs,ys}. В данный момент игнорируется перспектива графика и формулы перехода в криволинейные координаты. Вычисления производятся для последнего использованного InPlot (see section <a href="mathgl_ru_3.html#Transformation-matrix">Матрица преобразования</a>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-CalcScr"></a><u>Метод класса <code>mglGraphAB</code> (C++, Python):</u> <code>mglPoint</code> <b>CalcScr</b><i> (<code>mglPoint</code> p)</i></dt>
+<dt><a name="index-CalcScr-1"></a><u>Метод класса <code>mglGraphAB</code> (C++):</u> <code>void</code> <b>CalcScr</b><i> (<code>mglPoint</code> p, <code>int *</code>xs, <code>int *</code>ys)</i></dt>
+<dt><a name="index-mgl_005fcalc_005fscr"></a><u>C function:</u> <code>void</code> <b>mgl_calc_scr</b><i> (<code>HMGL</code> gr, <code>float</code> x, <code>float</code> y, <code>float</code> z, <code>int *</code>xs, <code>int *</code>ys)</i></dt>
+<dd><p>Вычисляет экранные координаты {xs,ys} для 3D координат {x,y,z}. Вычисления производятся для последнего использованного InPlot (see section <a href="mathgl_ru_3.html#Transformation-matrix">Матрица преобразования</a>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fwnd_005fset_005fshow_005fmouse_005fpos"></a><u>C function:</u> <code>int</code> <b>mgl_wnd_set_show_mouse_pos</b><i> (<code>HMGL</code> gr, <code>int</code> val)</i></dt>
+</dl>
+<dl>
+<dt><a name="index-ShowMousePos-of-mglGraphAB"></a><u>Widget option of mglGraphAB:</u> <code>float</code> <b>ShowMousePos</b></dt>
+<dd><p>Включает/выключает показ координат последнего нажатия кнопки мыши на рисунке.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-LastMousePos-of-mglGraphAB"></a><u>Widget option of mglGraphAB:</u> <code>mglPoint</code> <b>LastMousePos</b></dt>
+<dd><p>Последнее положение нажатия кнопки мыши.
+</p></dd></dl>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plotter-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_5.html#Widget-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_ru.html/mathgl_ru_5.html b/texinfo/mathgl_ru.html/mathgl_ru_5.html
new file mode 100644
index 0000000..a502e42
--- /dev/null
+++ b/texinfo/mathgl_ru.html/mathgl_ru_5.html
@@ -0,0 +1,477 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: 5. &ldquo;Оконные&rdquo; классы</title>
+
+<meta name="description" content="MathGL 1.11: 5. &ldquo;Оконные&rdquo; классы">
+<meta name="keywords" content="MathGL 1.11: 5. &ldquo;Оконные&rdquo; классы">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Widget-classes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_4.html#mglGraphAB-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fl_005fMathGL-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_4.html#Plotter-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_6.html#mglData-class" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+
+<a name="g_t_0060_0060_041e_043a_043e_043d_043d_044be_0027_0027-_043a_043b_0430_0441_0441_044b"></a>
+<h1 class="chapter">5. &ldquo;Оконные&rdquo; классы</h1>
+<a name="index-mglGraphFLTK"></a>
+<a name="index-mglGraphQT"></a>
+<a name="index-mglGraphGLUT"></a>
+<a name="index-Fl_005fMathGL"></a>
+<a name="index-QMathGL"></a>
+<a name="index-window-2"></a>
+<a name="index-widgets-1"></a>
+
+<p>Есть целый набор &ldquo;оконных&rdquo; классов для создания окон с графикой MathGL: <code>mglGraphFLTK</code>, <code>mglGraphQT</code>, <code>mglGraphGLUT</code>. Все эти классы позволяют пользователю просмотривать, вращать, экспортировать рисунок. Большинство из них (кроме <code>mglGraphGLUT</code>) являются наследниками класса <code>mglGraphZB</code> и используют &ldquo;присоединенный&rdquo; класс для центрального виджета окна. Все оконные классы имеют схожий набор функций (see section <a href="mathgl_ru_4.html#mglGraphAB-class">Класс mglGraphAB</a>). Ниже приведен список классов с краткими комментариями.
+</p>
+<dl>
+<dt><a name="index-mglGraphFLTK-1"></a><u>Class:</u> <b>mglGraphFLTK</b></dt>
+<dd><p>Создает окно используя библиотеку FLTK. Окно имеет панель инструментов и меню  для упрощения действий с графиками. &ldquo;Присоединенный&rdquo; класс элемента интерфейса &ndash; <code>Fl_MathGL</code>. Класс определен в <code>#include &lt;mgl/mgl_fltk.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fl_005fMathGL-1"></a><u>Class:</u> <b>Fl_MathGL</b></dt>
+<dd><p>Класс реализует элемент интерфейса FLTK для отображения графики MathGL. Класс определен в <code>#include &lt;mgl/mgl_fltk.h&gt;</code>.
+</p></dd></dl>
+
+<div class="float">
+<img src="fltk.png" alt="fltk">
+
+</div><p><strong>Пример окна FLTK с графикой MathGL.
+</strong>
+</p>
+<dl>
+<dt><a name="index-mglGraphQT-1"></a><u>Class:</u> <b>mglGraphQT</b></dt>
+<dd><p>Создает окно используя библиотеку Qt. Окно имеет панель инструментов и меню  для упрощения действий с графиками. &ldquo;Присоединенный&rdquo; класс элемента интерфейса &ndash; <code>QMathGL</code>. Класс определен в <code>#include &lt;mgl/mgl_qt.h&gt;</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-QMathGL-1"></a><u>Class:</u> <b>QMathGL</b></dt>
+<dd><p>Класс реализует элемент интерфейса Qt для отображения графики MathGL. Класс определен в <code>#include &lt;mgl/mgl_qt.h&gt;</code>.
+</p></dd></dl>
+
+<div class="float">
+<img src="qt.png" alt="qt">
+
+</div><p><strong>Пример окна Qt с графикой MathGL.
+</strong>
+</p>
+<dl>
+<dt><a name="index-mglGraphGLUT-1"></a><u>Class:</u> <b>mglGraphGLUT</b></dt>
+<dd><p>Создает окно используя библиотеку GLUT. Класс определен в <code>#include &lt;mgl/mgl_glut.h&gt;</code>.
+</p></dd></dl>
+
+<div class="float">
+<img src="glut.png" alt="glut">
+
+</div><p><strong>Пример окна GLUT с графикой MathGL.
+</strong>
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Fl_005fMathGL-class">5.1 Класс Fl_MathGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#QMathGL-class">5.2 QMathGL class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Fl_005fMathGL-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Widget-classes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#QMathGL-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Widget-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Widget-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_6.html#mglData-class" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041a_043b_0430_0441_0441-Fl_005fMathGL"></a>
+<h2 class="section">5.1 Класс Fl_MathGL</h2>
+<a name="index-Fl_005fMathGL-2"></a>
+<a name="index-widgets-2"></a>
+
+<p>Класс реализует элемент интерфейса FLTK для отображения графики MathGL (определен в <code>#include &lt;mgl/mgl_fltk.h&gt;</code>).
+</p>
+<dl>
+<dt><a name="index-set_005fdraw-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_draw</b><i> (<code>mglDraw *</code>dr)</i></dt>
+<dd><p>Задает функцию рисования из класса производного от <code>mglDraw</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-update-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>update</b><i> (<code>mglGraph *</code>gr=<code>NULL</code>)</i></dt>
+<dd><p>Обновляет (перерисовывает) график, используя экземпляр класса <var>gr</var> (по умолчанию встроенный).
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fangle-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_angle</b><i> (<code>float</code> t, <code>float</code> p)</i></dt>
+<dd><p>Задает углы для дополнительного вращения графика.
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fstate-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_state</b><i> (<code>int</code> f)</i></dt>
+<dd><p>Задает битовые флаги для: 1 - прозрачности, 2 - освещения.
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fstate-on-Fl_005fMathGL-1"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_state</b><i> (<code>bool</code> z, <code>bool</code> r)</i></dt>
+<dd><p>Задает флаги обработки движений мыши: <var>z</var>=<code>true</code> &ndash; разрешает приближение выделения, <var>r</var>=<code>true</code> разрешает вращение/сдвиг/приближение/перспективу.
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fzoom-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_zoom</b><i> (<code>float</code> X1, <code>float</code> Y1, <code>float</code> X2, <code>float</code> Y2)</i></dt>
+<dd><p>Задает область приближения.
+</p></dd></dl>
+<dl>
+<dt><a name="index-get_005fzoom-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>get_zoom</b><i> (<code>float *</code>X1, <code>float *</code>Y1, <code>float *</code>X2, <code>float *</code>Y2)</i></dt>
+<dd><p>Возвращает область приближения.
+</p></dd></dl>
+<dl>
+<dt><a name="index-set_005fpopup-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>void</code> <b>set_popup</b><i> (<code>const Fl_Menu_Item *</code>pmenu, <code>Fl_Widget *</code>w, <code>void *</code>v)</i></dt>
+<dd><p>Задает указатель на всплывающее меню.
+</p></dd></dl>
+<dl>
+<dt><a name="index-get_005fgraph-on-Fl_005fMathGL"></a><u>Method on Fl_MathGL:</u> <code>mglGraph *</code> <b>get_graph</b><i> ()</i></dt>
+<dd><p>Возвращает указатель на класс, строящий графики.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-tet_005fval-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>Fl_Valuator *</code> <b>tet_val</b></dt>
+<dd><p>Указатель на внешний элемент управления для изменения угла tet.
+</p></dd></dl>
+<dl>
+<dt><a name="index-phi_005fval-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>Fl_Valuator *</code> <b>phi_val</b></dt>
+<dd><p>Указатель на внешний элемент управления для изменения угла phi.
+</p></dd></dl>
+<dl>
+<dt><a name="index-graph-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>mglGraphAB *</code> <b>graph</b></dt>
+<dd><p>Указатель на экземпляр класса для построения графиков.
+</p></dd></dl>
+<dl>
+<dt><a name="index-draw_005fpar-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>void *</code> <b>draw_par</b></dt>
+<dd><p>Параметр для функции рисования.
+</p></dd></dl>
+<dl>
+<dt><a name="index-draw_005ffunc-of-Fl_005fMathGL"></a><u>Widget option of Fl_MathGL:</u> <code>int (*</code> <b>draw_func</b><i> <code>)(mglGraph *gr, void *par)</code></i></dt>
+<dd><p>Указатель на функцию рисования.
+</p></dd></dl>
+
+<hr size="6">
+<a name="QMathGL-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fl_005fMathGL-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_6.html#mglData-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Widget-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Widget-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_6.html#mglData-class" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="QMathGL-class-1"></a>
+<h2 class="section">5.2 QMathGL class</h2>
+<a name="index-QMathGL-2"></a>
+<a name="index-widgets-3"></a>
+
+<p>Класс реализует элемент интерфейса Qt для отображения графики MathGL (определен в <code>#include &lt;mgl/mgl_qt.h&gt;</code>).
+</p>
+<dl>
+<dt><a name="index-setDraw-on-QMathGL"></a><u>Method on QMathGL:</u> <code>void</code> <b>setDraw</b><i> (<code>mglDraw *</code>dr)</i></dt>
+<dd><p>Задает функцию рисования из класса производного от <code>mglDraw</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-setDraw-on-QMathGL-1"></a><u>Method on QMathGL:</u> <code>void</code> <b>setDraw</b><i> (<code>int (*</code>draw)(<code>mglGraph *</code>gr, <code>void *</code>p), <code>void *</code>par=<code>NULL</code>)</i></dt>
+<dd><p>Задает функцию рисования <var>draw</var> и укзатель <var>par</var> на параметр для нее.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-setGraph-on-QMathGL"></a><u>Method on QMathGL:</u> <code>void</code> <b>setGraph</b><i> (<code>mglGraphAB *</code>gr)</i></dt>
+<dd><p>Устанавливает указатель на внешний экземпляр класса для рисования (вместо встроенного <code>mglGraphZB</code>). Отмечу, что QMathGL автоматически удалит этот объект при удалении элемента интерфейса или при новом вызове <code>setGraph()</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-setPopup-on-QMathGL"></a><u>Method on QMathGL:</u> <code>void</code> <b>setPopup</b><i> (<code>QMenu *</code>p)</i></dt>
+<dd><p>Задает указатель на всплывающее меню.
+</p></dd></dl>
+<dl>
+<dt><a name="index-setSize-on-QMathGL"></a><u>Method on QMathGL:</u> <code>void</code> <b>setSize</b><i> (<code>int</code> w, <code>int</code> h)</i></dt>
+<dd><p>Задает размеры элемента управления и картинки.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getRatio-on-QMathGL"></a><u>Method on QMathGL:</u> <code>double</code> <b>getRatio</b><i> ()</i></dt>
+<dd><p>Возвращает соотношение сторон рисунка.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-getPer-on-QMathGL"></a><u>Method on QMathGL:</u> <code>int</code> <b>getPer</b><i> ()</i></dt>
+<dd><p>Возвращает величину перспективы в процентах.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getPhi-on-QMathGL"></a><u>Method on QMathGL:</u> <code>int</code> <b>getPhi</b><i> ()</i></dt>
+<dd><p>Возвращает величину угла Phi в градусах.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getTet-on-QMathGL"></a><u>Method on QMathGL:</u> <code>int</code> <b>getTet</b><i> ()</i></dt>
+<dd><p>Возвращает величину угла Theta в градусах.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getAlpha-on-QMathGL"></a><u>Method on QMathGL:</u> <code>bool</code> <b>getAlpha</b><i> ()</i></dt>
+<dd><p>Возвращает состояние переключателя прозрачности.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getLight-on-QMathGL"></a><u>Method on QMathGL:</u> <code>bool</code> <b>getLight</b><i> ()</i></dt>
+<dd><p>Возвращает состояние переключателя освещения.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getZoom-on-QMathGL"></a><u>Method on QMathGL:</u> <code>bool</code> <b>getZoom</b><i> ()</i></dt>
+<dd><p>Возвращает состояние переключателя приближения мышью.
+</p></dd></dl>
+<dl>
+<dt><a name="index-getRotate-on-QMathGL"></a><u>Method on QMathGL:</u> <code>bool</code> <b>getRotate</b><i> ()</i></dt>
+<dd><p>Возвращает состояние переключателя вращения мышью.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-void-on-QMathGL"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> refresh ()</i></dt>
+<dd><p>Перерисовывает (обновляет) элемент управления без вызова функции рисования.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-1"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> update (<code>mglGraph *</code>gr=<code>NULL</code>)</i></dt>
+<dd><p>Обновляет рисунок путем вызова функции рисования.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-2"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> copy ()</i></dt>
+<dd><p>Копирует график в буфер обмена.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-3"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setPer (<code>int</code> val)</i></dt>
+<dd><p>Задает величину перспективы.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-4"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setPhi (<code>int</code> val)</i></dt>
+<dd><p>Задает величину угла Phi.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-5"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setTet (<code>int</code> val)</i></dt>
+<dd><p>Задает величину угла Theta.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-6"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setAlpha (<code>bool</code> val)</i></dt>
+<dd><p>Включает/выключает прозрачность.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-7"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setLight (<code>bool</code> val)</i></dt>
+<dd><p>Включает/выключает освещение.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-8"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setZoom (<code>bool</code> val)</i></dt>
+<dd><p>Включает/выключает приближение мышью.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-9"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setRotate (<code>bool</code> val)</i></dt>
+<dd><p>Включает/выключает вращение мышью.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-10"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> zoomIn ()</i></dt>
+<dd><p>Приблиажет график.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-11"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> zoomOut ()</i></dt>
+<dd><p>Отдаляет график.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-12"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> restore ()</i></dt>
+<dd><p>Восстанавливает приближение и поворот графика в значения по умолчанию.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-13"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> reload ()</i></dt>
+<dd><p>Обновляет данные и перерисовывает график.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-14"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> shiftLeft ()</i></dt>
+<dd><p>Сдвигает график влево.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-15"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> shiftRight ()</i></dt>
+<dd><p>Сдвигает график вправо.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-16"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i>shiftUp  ()</i></dt>
+<dd><p>Сдвигает график вверх.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-17"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> shiftDown ()</i></dt>
+<dd><p>Сдвигает график вниз.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-18"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportPNG (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Сохраняет текущий рисунок в PNG файл.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-19"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportPNGs (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Сохраняет текущий рисунок в PNG файл без прозрачности.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-20"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportJPG (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Сохраняет текущий рисунок в JPEG файл.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-21"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportBPS (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Сохраняет текущий рисунок в растровый EPS файл.
+Export current picture to bitmap EPS file.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-22"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportEPS (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Сохраняет текущий рисунок в векторный EPS файл.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-23"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportSVG (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Сохраняет текущий рисунок в векторный SVG файл.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-24"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> exportIDTF (<code>QString</code> fname=<code>&quot;&quot;</code>)</i></dt>
+<dd><p>Сохраняет текущий рисунок в IDTF файл.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-25"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> setMGLFont (<code>QString</code> path)</i></dt>
+<dd><p>Восстанавливает (<var>path</var>=<code>&quot;&quot;</code>) или загружает файлы шрифтов.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-26"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> print ()</i></dt>
+<dd><p>Печатает текущий рисунок.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-27"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> adjust ()</i></dt>
+<dd><p>Подгоняет размер картинки под размер окна. Функция выполняется только если graph &ndash; экземпляр класса mglGraphQT.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-28"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> nextSlide ()</i></dt>
+<dd><p>Показывает следующий кадр. Функция выполняется только если graph &ndash; экземпляр класса mglGraphQT.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-29"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> prevSlide ()</i></dt>
+<dd><p>Показывает предыдущий кадр. Функция выполняется только если graph &ndash; экземпляр класса mglGraphQT.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-30"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> animation (<code>bool</code> st=<code>true</code>)</i></dt>
+<dd><p>Запускает анимацию. Функция выполняется только если graph &ndash; экземпляр класса mglGraphQT.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-31"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> about ()</i></dt>
+<dd><p>Показывает информацию о программе.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-32"></a><u>Slot on QMathGL:</u> <b><code>void</code></b><i> aboutQt ()</i></dt>
+<dd><p>Показывает информацию о версии Qt.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-void-on-QMathGL-33"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> phiChanged (<code>int</code> val)</i></dt>
+<dd><p>Угол Phi изменен.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-34"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> tetChanged (<code>int</code> val)</i></dt>
+<dd><p>Угол Tet изменен.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-35"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> perChanged (<code>int</code> val)</i></dt>
+<dd><p>Перспектива изменена.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-36"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> alphaChanged (<code>bool</code> val)</i></dt>
+<dd><p>Прозрачность изменена.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-37"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> lightChanged (<code>bool</code> val)</i></dt>
+<dd><p>Освещение изменено.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-38"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> zoomChanged (<code>bool</code> val)</i></dt>
+<dd><p>Режим приближения мышью изменен.
+</p></dd></dl>
+<dl>
+<dt><a name="index-void-on-QMathGL-39"></a><u>Signal on QMathGL:</u> <b><code>void</code></b><i> rotateChanged (<code>bool</code> val)</i></dt>
+<dd><p>Режим вращения мышью изменен.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-appName-of-QMathGL"></a><u>Widget option of QMathGL:</u> <code>QString</code> <b>appName</b></dt>
+<dd><p>Имя приложения для окон сообщений.
+</p></dd></dl>
+<dl>
+<dt><a name="index-autoResize-of-QMathGL"></a><u>Widget option of QMathGL:</u> <code>bool</code> <b>autoResize</b></dt>
+<dd><p>Разрешить изменять размер рисунка (по умолчанию false).
+</p></dd></dl>
+<dl>
+<dt><a name="index-animDelay-of-QMathGL"></a><u>Widget option of QMathGL:</u> <code>int</code> <b>animDelay</b></dt>
+<dd><p>Задержка анимации в мсек.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Widget-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_6.html#mglData-class" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_ru.html/mathgl_ru_6.html b/texinfo/mathgl_ru.html/mathgl_ru_6.html
new file mode 100644
index 0000000..eb2d865
--- /dev/null
+++ b/texinfo/mathgl_ru.html/mathgl_ru_6.html
@@ -0,0 +1,1115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: 6. Класс mglData</title>
+
+<meta name="description" content="MathGL 1.11: 6. Класс mglData">
+<meta name="keywords" content="MathGL 1.11: 6. Класс mglData">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="mglData-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_5.html#QMathGL-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Public-variables" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_5.html#Widget-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041a_043b_0430_0441_0441-mglData"></a>
+<h1 class="chapter">6. Класс mglData</h1>
+
+<p>Это класс для работы с массивами данных, определенный в <code>#include &lt;mgl/mgl_data.h&gt;</code>. Он содержит функции для выделения памяти и изменения размера данных, чтения данных из файла, численного дифференцирования/интегрирования/интерполяции и пр., заполнения по текстовой формуле и т.д. Класс позволяет работать с данными размерности не более 3 (как функции от трех переменных &ndash; x,y,z). По умолчанию внутреннее представление данных &ndash; float, выбранный в силу меньшего размера занимаемой памяти и достаточной для построения графиков точности. Базовый тип можно сменить на этапе установки (see section <a href="mathgl_ru_1.html#Installation-and-using">Установка MathGL</a>) указав опцию <code>--enable-double</code>. Однако, в дальнейшем в документации будет использован тип <code>float</code>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Public-variables">6.1 Переменные</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Create-and-delete">6.2 Создание и удаление</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fill">6.3 Заполнение данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Rearrange">6.4 Изменение размеров данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#File-I_002fO">6.5 Чтение/сохранение данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Make-another-data">6.6 Создание новых данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Change-data">6.7 Изменение данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Interpolation">6.8 Интерполяция</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Informational-functions">6.9 Информационные функции</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Operators">6.10 Операторы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Global-functions">6.11 Глобальные функции</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Public-variables"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglData-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Create-and-delete" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041fe_0440e_043ce_043d_043d_044be"></a>
+<h2 class="section">6.1 Переменные</h2>
+
+<dl>
+<dt><a name="index-a-of-mglData"></a><u>Variable of mglData:</u> <code>float *</code> <b>a</b></dt>
+<dd><p>Указатель на массив данных. Это одномерный массив. Например, матрица [nx x ny x nz] представляется одномерным массивом длиной nx*ny*nz, где элемент с индексами {i, j, k} находится как a[i+nx*j+nx*ny*k] (индексы отсчитываются от нуля).
+</p></dd></dl>
+<dl>
+<dt><a name="index-nx-of-mglData"></a><u>Variable of mglData:</u> <code>int</code> <b>nx</b></dt>
+<dd><p>Размер массива по 1-ой размерности (&rsquo;x&rsquo; размерности).
+</p></dd></dl>
+<dl>
+<dt><a name="index-ny-of-mglData"></a><u>Variable of mglData:</u> <code>int</code> <b>ny</b></dt>
+<dd><p>Размер массива по 2-ой размерности (&rsquo;y&rsquo; размерности).
+</p></dd></dl>
+<dl>
+<dt><a name="index-nz-of-mglData"></a><u>Variable of mglData:</u> <code>int</code> <b>nz</b></dt>
+<dd><p>Размер массива по 3-ей размерности (&rsquo;z&rsquo; размерности).
+</p></dd></dl>
+<dl>
+<dt><a name="index-id-of-mglData"></a><u>Variable of mglData:</u> <code>char *</code> <b>id</b></dt>
+<dd><p>Имена колонки (или среза при nz&gt;1) &ndash; один символ на колонку.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Create-and-delete"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Public-variables" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fill" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_043e_0437_0434_0430_043d_0438e-_0438-_0443_0434_0430_043be_043d_0438e"></a>
+<h2 class="section">6.2 Создание и удаление</h2>
+<a name="index-mglData"></a>
+<a name="index-Set"></a>
+
+<dl>
+<dt><a name="index--on-mglData"></a><u>Конструктор on <code>mglData</code>:</u> <b><code></code></b><i> mglData (<code>int</code> mx=<code>1</code>, <code>int</code> my=<code>1</code>, <code>int</code> mz=<code>1</code>)</i></dt>
+<dd><p>Конструктор по умолчанию. Выделяет память для массива данных и заполняет ее нулями.
+</p></dd></dl>
+<dl>
+<dt><a name="index--on-mglData-1"></a><u>Конструктор on <code>mglData</code>:</u> <b><code></code></b><i> mglData (<code>const char *</code>fname)</i></dt>
+<dd><p>Читает данные из файла.
+</p></dd></dl>
+<dl>
+<dt><a name="index--on-mglData-2"></a><u>Конструктор on <code>mglData</code>:</u> <b><code></code></b><i> mglData (<code>const mglData</code> &amp;dat)</i></dt>
+<dd><p>Копирует данные из другого экземпляра <code>mglData</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Create"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Create</b><i> (<code>int</code> mx, <code>int</code> my=<code>1</code>, <code>int</code> mz=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fcreate"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_create</b><i> (<code>HMDT</code> dat, <code>int</code> mx, <code>int</code> my, <code>int</code> mz)</i></dt>
+<dd><p>Создает/пересоздает массив данных указанного размера и заполняет его нулями. Ничего не делает при <var>mx</var>, <var>my</var>, <var>mz</var> отрицательных или равных нулю.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-1"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const float *</code>A, <code>int</code> NX, <code>int</code> NY=<code>1</code>, <code>int</code> NZ=<code>1</code>)</i></dt>
+<dt><a name="index-Set-2"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const double *</code>A, <code>int</code> NX, <code>int</code> NY=<code>1</code>, <code>int</code> NZ=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005ffloat"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_float</b><i> (<code>HMDT</code> dat, <code>const float *</code>A, <code>int</code> NX, <code>int</code> NY, <code>int</code> NZ)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fdouble"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_double</b><i> (<code>HMDT</code> dat, <code>const double *</code>A, <code>int</code> NX, <code>int</code> NY, <code>int</code> NZ)</i></dt>
+<dd><p>Выделяет память и копирует данные из массивов типа <code>float*</code> или <code>double*</code>, т.е. из массивов определенных как <code>float a[NX*NY*NZ];</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-3"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const float **</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-Set-4"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const double **</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005ffloat2"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_float2</b><i> (<code>HMDT</code> dat, <code>const float **</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fdouble2"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_double2</b><i> (<code>HMDT</code> dat, <code>const double **</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dd><p>Выделяет память и копирует данные из массивов типа <code>float**</code> или <code>double**</code> с размерностями <var>N1</var>, <var>N2</var>, т.е. из массивов определенных как <code>float a[N1][N2];</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-5"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const float ***</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-Set-6"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const double ***</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005ffloat3"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_float3</b><i> (<code>HMDT</code> dat, <code>const float ***</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fdouble3"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_double3</b><i> (<code>HMDT</code> dat, <code>const double ***</code>A, <code>int</code> N1, <code>int</code> N2)</i></dt>
+<dd><p>Выделяет память и копирует данные из массивов типа <code>float***</code> или <code>double***</code> с размерностями <var>N1</var>, <var>N2</var>, <var>N3</var>, т.е. из массивов определенных как <code>float a[N1][N2][N3];</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-7"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>gsl_vector *</code>v)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fvector"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_vector</b><i> (<code>HMDT</code> dat, <code>gsl_vector *</code>v)</i></dt>
+<dd><p>Выделяет память и копирует данные из структуры типа <code>gsl_vector *</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-8"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>gsl_matrix *</code>m)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fmatrix"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_matrix</b><i> (<code>HMDT</code> dat, <code>gsl_matrix *</code>m)</i></dt>
+<dd><p>Выделяет память и копирует данные из структуры типа <code>gsl_matrix *</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-9"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>inline void</code> <b>Set</b><i> (<code>const mglData &amp;</code>from)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> from)</i></dt>
+<dd><p>Выделяет память и копирует данные из другого экземпляра <var>from</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Set-10"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const std::vector&lt;int&gt; &amp;</code>d)</i></dt>
+<dt><a name="index-Set-11"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const std::vector&lt;float&gt; &amp;</code>d)</i></dt>
+<dt><a name="index-Set-12"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>Set</b><i> (<code>const std::vector&lt;double&gt; &amp;</code>d)</i></dt>
+<dd><p>Выделяет память и копирует данные из массива типа <code>std::vector&lt;T&gt;</code>.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-Set-13"></a><u>Метод класса <code>mglData</code> (C+, Python):</u> <code>void</code> <b>Set</b><i> (<code>const char *</code>str, <code>int</code> NX, <code>int</code> NY=<code>1</code>, <code>int</code> NZ=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fvalues"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_values</b><i> (<code>const char *</code>str, <code>int</code> NX, <code>int</code> NY, <code>int</code> NZ)</i></dt>
+<dd><p>Выделяет память и сканирует (scanf) данные из строки.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fill"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Create-and-delete" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Rearrange" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0417_0430_043f_043e_043b_043de_043d_0438e-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">6.3 Заполнение данных</h2>
+<a name="index-Fill"></a>
+<a name="index-Modify"></a>
+
+<dl>
+<dt><a name="index-Fill-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Fill</b><i> (<code>float</code> x1, <code>float</code> x2, <code>char</code> dir=<code>'x'</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005ffill"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_fill</b><i> (<code>HMDT</code> dat, <code>float</code> x1, <code>float</code> x2, <code>char</code> dir)</i></dt>
+<dd><p>Заполняет значениями равно распределенными в диапазоне [<var>x1</var>, <var>x2</var>] в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;,&lsquo;<samp>y</samp>&rsquo;,&lsquo;<samp>z</samp>&rsquo;}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Fill-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Fill</b><i> (<code>const char *</code>eq, <code>mglPoint</code> Min, <code>mglPoint</code> Max, <code>const mglData *</code>vdat=0, <code>const mglData *</code>wdat=0)</i></dt>
+<dt><a name="index-mgl_005fdata_005ffill-1"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_fill</b><i> (<code>HMGL</code> gr, <code>HMDT</code> dat, <code>const char *</code>eq, <code>const HMDT *</code>vdat, <code>const HMDT *</code>wdat)</i></dt>
+<dd><p>Заполняет значениями вычисленными по формуле <var>eq</var>. Формула представляет собой произвольное выражение, зависящее от переменных &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Координаты &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; полагаются меняющимися в диапазоне <var>Min</var> x <var>Max</var> (в отличие от функции <code>Modify</code>). Переменная &lsquo;<samp>u</samp>&rsquo; &ndash; значения исходного массива, переменные &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo; &ndash; значения массивов <var>vdat</var>, <var>wdat</var>. Последние могут быть <code>NULL</code>, т.е. опущены.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Modify-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Modify</b><i> (<code>const char *</code>eq, <code>int</code> dim=<code>0</code>)</i></dt>
+<dt><a name="index-Modify-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Modify</b><i> (<code>const char *</code>eq, <code>const mglData &amp;</code>v)</i></dt>
+<dt><a name="index-Modify-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Modify</b><i> (<code>const char *</code>eq, <code>const mglData &amp;</code>v, <code>const mglData &amp;</code>w)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmodify"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_modify</b><i> (<code>HMDT</code> dat, <code>const char *</code>eq, <code>int</code> dim)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmodify_005fvw"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_modify_vw</b><i> (<code>HMDT</code> dat, <code>const char *</code>eq, <code>const HMDT</code> v, <code>const HMDT</code> w)</i></dt>
+<dd><p>Заполняет значениями вычисленными по формуле <var>eq</var>. Формула представляет собой произвольное выражение, зависящее от переменных &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Координаты &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; полагаются меняющимися в диапазоне [0,1] (в отличие от функции <code>Fill</code>). Переменная &lsquo;<samp>u</samp>&rsquo; &ndash; значения исходного массива, переменные &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo; &ndash; значения массивов <var>vdat</var>, <var>wdat</var>. Последние могут быть <code>NULL</code>, т.е. опущены. Если указан <var>dim</var>&gt;0, то изменяются только слои &gt;=<var>dim</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Put"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Put</b><i> (<code>float</code> val, <code>int</code> i=<code>-1</code>, <code>int</code> j=<code>-1</code>, <code>int</code> k=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fput_005fval"></a><u>mglData:</u> <code>void</code> <b>mgl_data_put_val</b><i> (<code>HMDT</code> a, <code>float</code> val, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Присваивает значения (под-)массива <var>dat</var>[<var>i</var>, <var>j</var>, <var>k</var>] = <var>val</var>. Индексы <var>i</var>, <var>j</var>, <var>k</var> равные &lsquo;<samp>-1</samp>&rsquo; задают значениия <var>val</var> для всего диапазона соответствующего направления(ий). Например, <code>Put(val,-1,0,-1);</code> задает a[i,0,j]=<var>val</var> для i=0...(nx-1), j=0...(nz-1).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Put-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Put</b><i> (<code>const mglData &amp;</code>v, <code>int</code> i=<code>-1</code>, <code>int</code> j=<code>-1</code>, <code>int</code> k=<code>-1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fput_005fdat"></a><u>mglData:</u> <code>void</code> <b>mgl_data_put_dat</b><i> (<code>HMDT</code> a, <code>const HMDT</code> v, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Копирует значения из массива <var>v</var> в диапазон значений данного массива. Индексы <var>i</var>, <var>j</var>, <var>k</var> равные &lsquo;<samp>-1</samp>&rsquo; задают диапазон изменения значений в соответствующих направление(ях). Младшие размерности массива <var>v</var> должны быть больше выбранного диапазона массива. Например, <code>Put(v,-1,0,-1);</code> присвоитa[i,0,j]=<var>v</var>.ny&gt;nz ? <var>v</var>.a[i,j] : <var>v</var>.a[i], где i=0...(nx-1), j=0...(nz-1) и условие v.nx&gt;=nx выполнено.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fdata_005fset_005fvalue"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_value</b><i> (<code>HMDT</code> dat, <code>float</code> v, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Присваивает значение выбранной ячейке массива данных.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fdata_005fget_005fvalue"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_get_value</b><i> (<code>HMDT</code> dat, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Возвращает значение выбранной ячейки массива данных.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetNx"></a><u>Метод класса <code>mglData</code> (C+, Python):</u> <code>void</code> <b>GetNx</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fdata_005fget_005fnx"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_get_nx</b><i> (<code>HMDT</code> dat)</i></dt>
+<dd><p>Возвращает размер по x-направлению.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetNy"></a><u>Метод класса <code>mglData</code> (C+, Python):</u> <code>void</code> <b>GetNy</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fdata_005fget_005fny"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_get_ny</b><i> (<code>HMDT</code> dat)</i></dt>
+<dd><p>Возвращает размер по y-направлению.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-GetNz"></a><u>Метод класса <code>mglData</code> (C+, Python):</u> <code>void</code> <b>GetNz</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fdata_005fget_005fnz"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_get_nz</b><i> (<code>HMDT</code> dat)</i></dt>
+<dd><p>Возвращает размер по z-направлению.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Rearrange"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fill" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#File-I_002fO" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_0437_043ce_043de_043d_0438e-_0440_0430_0437_043ce_0440_043e_0432-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">6.4 Изменение размеров данных</h2>
+<a name="index-Rearrange"></a>
+<a name="index-Extend"></a>
+<a name="index-Transpose"></a>
+<a name="index-Squeeze"></a>
+<a name="index-Crop"></a>
+<a name="index-InsertRows"></a>
+<a name="index-InsertColumns"></a>
+<a name="index-InsertSlices"></a>
+<a name="index-DeleteRows"></a>
+<a name="index-DeleteColumns"></a>
+<a name="index-DeleteSlices"></a>
+<a name="index-Insert"></a>
+<a name="index-Delete"></a>
+
+<dl>
+<dt><a name="index-Rearrange-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Rearrange</b><i> (<code>int</code> mx, <code>int</code> my=<code>0</code>, <code>int</code> mz=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005frearrange"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_rearrange</b><i> (<code>HMDT</code> dat, <code>int</code> mx, <code>int</code> my, <code>int</code> mz)</i></dt>
+<dd><p>Изменяет размерность данных без изменения самого массива данных, так что результирующий массив <var>mx</var>*<var>my</var>*<var>mz</var> &lt; nx*ny*nz. Если один из параметров <var>my</var> или <var>mz</var> ноль, то он будет выбран оптимальным образом. Например, если <var>my</var>=0, то будет <var>my</var>=nx*ny*nz/<var>mx</var> и <var>mz</var>=1.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Extend-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Extend</b><i> (<code>int</code> n1, <code>int</code> n2=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fextend"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_extend</b><i> (<code>HMDT</code> dat, <code>int</code> n1, <code>int</code> n2)</i></dt>
+<dd><p>Увеличивает размер данных путем вставки (|<var>n1</var>|+1) новых срезов после (для <var>n1</var>&gt;0) или перед (для <var>n1</var>&lt;0) существующими данными. Можно добавить сразу 2 размерности для 1d массива, используя второй параметр <var>n2</var>. Данные в новые срезы будут скопированы из существующих. Например, для <var>n1</var>&gt;0 новый массив будет
+a_ij^new = a_i^old where j=0...<var>n1</var>. Соответственно, для <var>n1</var>&lt;0 новый массив будет a_ij^new = a_j^old, где i=0...|<var>n1</var>|.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Transpose-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Transpose</b><i> (<code>const char *</code>dim=<code>&quot;yx&quot;</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005ftranspose"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_transpose</b><i> (<code>const char *</code>dim)</i></dt>
+<dd><p>Транспонирует (меняет порядок размерностей) массив данных. Новый порядок размерностей задается строкой <var>dim</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Squeeze-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Squeeze</b><i> (<code>int</code> rx, <code>int</code> ry=<code>1</code>, <code>int</code> rz=<code>1</code>, <code>bool</code> smooth=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsqueeze"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_squeeze</b><i> (<code>HMDT</code> dat, <code>int</code> rx, <code>int</code> ry, <code>int</code> rz, <code>int</code> smooth)</i></dt>
+<dd><p>Уменьшает размер данных путем удаления элементов с индексами не кратными <var>rx</var>, <var>ry</var>, <var>rz</var> соответственно. Параметр <var>smooth</var> задает использовать сглаживания
+(т.е. out[i]=\sum_{j=i,i+r} a[j]/r) или нет (т.е. out[i]=a[j*r]).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Crop-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Crop</b><i> (<code>int</code> n1, <code>int</code> n2, <code>char</code> dir=<code>'x'</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fcrop"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_crop</b><i> (<code>HMDT</code> dat, <code>int</code> n1, <code>int</code> n2, <code>char</code> dir)</i></dt>
+<dd><p>Обрезает границы данных при <var>i</var>&lt;<var>n1</var> и <var>i</var>&gt;<var>n2</var> (при <var>n2</var>&gt;0) или <var>i</var>&gt;<code>n[xyz]</code>-<var>n2</var> (при <var>n2</var>&lt;=0) вдоль направления <var>dir</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-InsertRows-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>InsertRows</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>, <code>const char *</code>eq=<code>NULL</code>)</i></dt>
+<dd><p>Вставляет <var>num</var> срезов вдоль направления &rsquo;y&rsquo; (строк) с позиции <var>at</var> и заполняет их по формуле <var>eq</var> (при <var>eq</var>!=0) или нулями.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-InsertColumns-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>InsertColumns</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>, <code>const char *</code>eq=<code>NULL</code>)</i></dt>
+<dd><p>Вставляет <var>num</var> срезов вдоль направления &rsquo;x&rsquo; (колонок) с позиции <var>at</var> и заполняет их по формуле <var>eq</var> (при <var>eq</var>!=0) или нулями.
+</p></dd></dl>
+<dl>
+<dt><a name="index-InsertSlices-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>InsertSlices</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>, <code>const char *</code>eq=<code>NULL</code>)</i></dt>
+<dd><p>Вставляет <var>num</var> срезов вдоль направления &rsquo;z&rsquo; с позиции <var>at</var> и заполняет их по формуле <var>eq</var> (при <var>eq</var>!=0) или нулями.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DeleteRows-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>DeleteRows</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>)</i></dt>
+<dd><p>Удаляет <var>num</var> срезов вдоль направления &rsquo;y&rsquo; (строк) с позиции <var>at</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-DeleteColumns-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>DeleteColumns</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>)</i></dt>
+<dd><p>Удаляет <var>num</var> срезов вдоль направления &rsquo;x&rsquo; (колонок) с позиции <var>at</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-DeleteSlices-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>DeleteSlices</b><i> (<code>int</code> at, <code>int</code> num=<code>1</code>)</i></dt>
+<dd><p>Удаляет <var>num</var> срезов вдоль направления &rsquo;z&rsquo; с позиции <var>at</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Insert-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Insert</b><i> (<code>char</code> dir, <code>int</code> pos=<code>0</code>, <code>int</code> num=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005finsert"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_insert</b><i> (<code>HMDT</code> dat, <code>char</code> dir, <code>int</code> pos, <code>char</code> num)</i></dt>
+<dd><p>Вставляет <var>num</var> срезов вдоль направления <var>dir</var> с позиции <var>pos</var> и заполняет их нулями.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Delete-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Delete</b><i> (<code>char</code> dir, <code>int</code> pos=<code>0</code>, <code>int</code> num=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdelete"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_delete</b><i> (<code>HMDT</code> dat, <code>char</code> dir, <code>int</code> pos, <code>char</code> num)</i></dt>
+<dd><p>Удаляет <var>num</var> срезов вдоль направления <var>dir</var> с позиции <var>pos</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="File-I_002fO"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Rearrange" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Make-another-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0427_0442e_043d_0438e_002f_0441_043e_0445_0440_0430_043de_043d_0438e-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">6.5 Чтение/сохранение данных</h2>
+<a name="index-Read"></a>
+<a name="index-ReadMat"></a>
+<a name="index-ReadAll"></a>
+<a name="index-ReadRange"></a>
+<a name="index-ReadHDF"></a>
+<a name="index-Save"></a>
+<a name="index-SaveHDF"></a>
+<a name="index-Export"></a>
+<a name="index-Import"></a>
+
+<dl>
+<dt><a name="index-Read-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Read</b><i> (<code>const char *</code>fname)</i></dt>
+<dt><a name="index-mgl_005fdata_005fread"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_read</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname)</i></dt>
+<dd><p>Читает данные из текстового файла с разделителями символом пробела/табуляции с автоматическим определением размера массива. Двойной перевод строки начинает новый срез данных (по направлению z).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Read-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Read</b><i> (<code>const char *</code>fname, <code>int</code> mx, <code>int</code> my=<code>1</code>, <code>int</code> mz=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fread_005fdim"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_read_dim</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname, <code>int</code> mx, <code>int</code> my, <code>int</code> mz)</i></dt>
+<dd><p>Читает данные из текстового файла с заданными размерами. Ничего не делается если параметры <var>mx</var>, <var>my</var> или <var>mz</var> равны нулю или отрицательны.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ReadMat-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>ReadMat</b><i> (<code>const char *</code>fname, <code>int</code> dim=<code>2</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fread_005fmat"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_read_mat</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname, <code>int</code> dim)</i></dt>
+<dd><p>Читает данные из текстового файла с размерами, указанными в первых <var>dim</var> числах файла. При этом переменная <var>dim</var> задает размерность (1d, 2d, 3d) данных.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ReadRange-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>ReadRange</b><i> (<code>const char *</code>templ, <code>float</code> from, <code>float</code> to, <code>float</code> step=<code>1.f</code>, <code>bool</code> as_slice=<code>false</code>)</i></dt>
+<dd><p>Объединяет данные из нескольких текстовых файлов. Имена файлов определяются вызовом функции <code>sprintf(fname,templ,val);</code>, где <var>val</var> меняется от <var>from</var> до <var>to</var> с шагом <var>step</var>. Данные загружаются один за другим в один и тот же срез данных (при <var>as_slice</var>=<code>false</code>) или срез-за-срезом (при <var>as_slice</var>=<code>true</code>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ReadAll-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>ReadAll</b><i> (<code>const char *</code>templ, <code>bool</code> as_slice=<code>false</code>)</i></dt>
+<dd><p>Объединяет данные из нескольких текстовых файлов, чьи имена удовлетворяют шаблону <var>templ</var> (например, <var>templ</var>=<code>&quot;t_*.dat&quot;</code>). Данные загружаются один за другим в один и тот же срез данных (при <var>as_slice</var>=<code>false</code>) или срез-за-срезом (при <var>as_slice</var>=<code>true</code>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Save-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Save</b><i> (<code>const char *</code>fname, <code>int</code> ns=<code>-1</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fsave"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_save</b><i> (<code>const HMDT</code> dat, <code>const char *</code>fname, <code>int</code> ns)</i></dt>
+<dd><p>Сохраняет весь массив данных при <var>ns</var>=<code>-1</code> или только <var>ns</var>-ый срез в текстовый файл.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-ReadHDF-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>ReadHDF</b><i> (<code>const char *</code>fname, <code>const char *</code>dname)</i></dt>
+<dd><p>Читает массив с именем <var>dname</var> из HDF5 или HDF4 файла <var>fname</var>. Функция ничего не делает если библиотека была собрана с флагами NO_HDF5|NO_HDF4.
+</p></dd></dl>
+<dl>
+<dt><a name="index-SaveHDF-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>SaveHDF</b><i> (<code>const char *</code>fname, <code>const char *</code>dname, <code>bool</code> rewrite=<code>false</code>) <code>const</code></i></dt>
+<dd><p>Сохраняет массив под именем <var>dname</var> в HDF5 или HDF4 файл <var>fname</var>. Функция ничего не делает если библиотека была собрана с флагами NO_HDF5|NO_HDF4.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Import-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Import</b><i> (<code>const char *</code>fname, <code>const char *</code>scheme, <code>float</code> v1=<code>0</code>, float v2=<code>1</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fimport"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_import</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname, <code>const char *</code>scheme, <code>float</code> v1, float v2)</i></dt>
+<dd><p>Читает данные из растрового файла. RGB значения пикселов преобразуются в число в диапазоне [<var>v1</var>, <var>v2</var>] используя цветовую схему <var>sch</var> (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Export-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Export</b><i> (<code>const char *</code>fname, <code>const char *</code>scheme, <code>float</code> v1=<code>0</code>, float v2=<code>0</code>, <code>int</code> ns=<code>-1</code>) const</i></dt>
+<dt><a name="index-mgl_005fdata_005fexport"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_export</b><i> (<code>HMDT</code> dat, <code>const char *</code>fname, <code>const char *</code>scheme, <code>float</code> v1, float v2, <code>int</code> ns) const</i></dt>
+<dd><p>Сохраняет данные в растровый файл. Числовые значения, нормированные в диапазон [<var>v1</var>, <var>v2</var>], преобразуются в RGB значения пикселов, используя цветовую схему <var>sch</var> (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>). Если <var>v1</var>&gt;=<var>v2</var>, то значения <var>v1</var>, <var>v2</var> определяются автоматически как минимальное и максимальное значение данных.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Make-another-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#File-I_002fO" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Change-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_043e_0437_0434_0430_043d_0438e-_043d_043e_0432_044b_0445-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">6.6 Создание новых данных</h2>
+<a name="index-SubData"></a>
+<a name="index-Column"></a>
+<a name="index-SetColumnId"></a>
+<a name="index-Hist-4"></a>
+<a name="index-Momentum"></a>
+<a name="index-Sum"></a>
+<a name="index-Max-1"></a>
+<a name="index-Min-1"></a>
+<a name="index-Combine"></a>
+<a name="index-Evaluate"></a>
+<a name="index-Resize"></a>
+<a name="index-Trace"></a>
+
+<dl>
+<dt><a name="index-SubData-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>SubData</b><i> (<code>int</code> xx, <code>int</code> yy=<code>-1</code>, <code>int</code> zz=<code>-1</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fsubdata"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_subdata</b><i> (<code>const HMDT</code> dat, <code>int</code> xx, <code>int</code> yy, <code>int</code> zz)</i></dt>
+<dd><p>Возвращает в <var>res</var> подмассив массива данных <var>dat</var> с фиксированными значениями индексов с положительными значениями. Например, <code>SubData(-1,2)</code> выделяет третью строку (индексы начинаются с нуля), <code>SubData(4,-1)</code> выделяет 5-ую колонку, <code>SubData(-1,-1,3)</code> выделяет 4-ый срез и т.д.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-SubData-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>SubData</b><i> (<code>const mglData &amp;</code>xx, <code>const mglData &amp;</code>yy, <code>const mglData &amp;</code>zz) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fsubdata_005fext"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_subdata_ext</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> xx, <code>const HMDT</code> yy, <code>const HMDT</code> zz)</i></dt>
+<dd><p>Extracts sub-array data from the original data array for indexes specified by arrays <var>xx</var>, <var>yy</var>, <var>zz</var> (indirect access). The resulting array have the same dimensions as input arrays for 2D and 3D arguments. This function work like previous one for 1D arguments (or numbers). The dimensions of all argument must be the same if they are 2D or 3D arrays.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Column-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Column</b><i> (<code>const char *</code>eq) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fcolumn"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_column</b><i> (<code>const HMDT</code> dat, <code>const char *</code>eq)</i></dt>
+<dd><p>Возвращает массив данных заполненный по формуле <var>eq</var>, вычисленной для именованных колонок (или срезов). Например, <code>Column(&quot;n*w^2/exp(t)&quot;);</code>. Имена колонок задается функцией <code>SetColumnId()</code> или при чтении файлов данных.
+</p></dd></dl>
+<dl>
+<dt><a name="index-SetColumnId-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>SetColumnId</b><i> (<code>const char *</code>ids)</i></dt>
+<dt><a name="index-mgl_005fdata_005fset_005fid"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_set_id</b><i> (<code>HMDT</code> dat, <code>const char *</code>ids)</i></dt>
+<dd><p>Устанавливает символьные обозначения для колонок данных. Строка должна содержать символы &rsquo;a&rsquo;...&rsquo;z&rsquo; один на колонку (без пробелов).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Trace-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Trace</b><i> () <code>const</code></i></dt>
+<dd><p>Возвращает массив диагональных элементов a[i,i] (для 2D данных) или a[i,i,i] (для 3D данных) где i=0...nx-1. В 1D случае возвращается сам массив данных. Размеры массива данных должен быть ny,nz &gt;= nx или ny,nz = 1.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Hist-5"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Hist</b><i> (<code>int</code> n, <code>float</code> v1=<code>0</code>, <code>float</code> v2=<code>1</code>, <code>int</code> nsub=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fhist"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_hist</b><i> (<code>const HMDT</code> dat, <code>int</code> n, <code>float</code> v1, <code>float</code> v2, <code>int</code> nsub)</i></dt>
+<dd><p>Возвращает распределение (гистограмму) из <var>n</var> точек от значений массива в диапазоне [<var>v1</var>, <var>v2</var>]. Параметр <var>nsub</var> задает число дополнительных точек интерполяции (для сглаживания получившейся гистограммы).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Hist-6"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Hist</b><i> (<code>const mglData &amp;</code>w, <code>int</code> n, <code>float</code> v1=<code>0</code>, <code>float</code> v2=<code>1</code>, <code>int</code> nsub=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fhist_005fw"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_hist_w</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> w, <code>int</code> n, <code>float</code> v1, <code>float</code> v2, <code>int</code> nsub)</i></dt>
+<dd><p>Возвращает распределение (гистограмму) из <var>n</var> точек от значений массива в диапазоне [<var>v1</var>, <var>v2</var>]. Массив <var>w</var> задает веса элементов. Параметр <var>nsub</var> задает число дополнительных точек интерполяции (для сглаживания получившейся гистограммы).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Momentum-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Momentum</b><i> (<code>char</code> dir, <code>const char *</code>how) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmomentum"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_momentum</b><i> (<code>const HMDT</code> dat, <code>char</code> dir, <code>const char *</code>how)</i></dt>
+<dd><p>Возвращает момент (1d массив) данных вдоль направления <var>dir</var>. Строка <var>how</var> определяет тип момента. Момент определяется как
+res_k = \sum_ij how(x_i,y_j,z_k) a_ij/ \sum_ij a_ij
+если <var>dir</var>=&lsquo;<samp>z</samp>&rsquo; и т.д. Координаты &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; &ndash; индексы массива в диапазоне [0,1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Sum-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Sum</b><i> (<code>const char *</code>dir) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fsum"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_sum</b><i> (<code>const HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Возвращает результат суммирования данных вдоль направления(ий) <var>dir</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Max-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Max</b><i> (<code>const char *</code>dir) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmax_005fdir"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_max_dir</b><i> (<code>const HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Возвращает максимальное значение данных вдоль направления(ий) <var>dir</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Min-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Min</b><i> (<code>const char *</code>dir) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmin_005fdir"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_min_dir</b><i> (<code>const HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Возвращает минимальное значение данных вдоль направления(ий) <var>dir</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Combine-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Combine</b><i> (<code>const mglData &amp;</code>a) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fcombine"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_combine</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> a)</i></dt>
+<dd><p>Возвращает прямое произведение массивов (наподобие, res[i,j] = adat[i]*bdat[j] и т.д.).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Evaluate-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Evaluate</b><i> (<code>const mglData &amp;</code>idat, <code>bool</code> norm=<code>true</code>) <code>const</code></i></dt>
+<dt><a name="index-Evaluate-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Evaluate</b><i> (<code>const mglData &amp;</code>idat, <code>const mglData &amp;</code>jdat, <code>bool</code> norm=<code>true</code>) <code>const</code></i></dt>
+<dt><a name="index-Evaluate-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Evaluate</b><i> (<code>const mglData &amp;</code>idat, <code>const mglData &amp;</code>jdat, <code>const mglData &amp;</code>kdat, <code>bool</code> norm=<code>true</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fevaluate_005fi"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_evaluate_i</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> idat, <code>int</code> norm)</i></dt>
+<dt><a name="index-mgl_005fdata_005fevaluate_005fij"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_evaluate_ij</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> idat, <code>const HMDT</code> jdat, <code>int</code> norm)</i></dt>
+<dt><a name="index-mgl_005fdata_005fevaluate_005fijk"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_evaluate_ijk</b><i> (<code>const HMDT</code> dat, <code>const HMDT</code> idat, <code>const HMDT</code> jdat, <code>const HMDT</code> kdat, <code>int</code> norm)</i></dt>
+<dd><p>Возвращает массив данных, полученный в результате интерполяции исходного массива в точках других массивов (например, res[i,j]=dat[idat[i,j],jdat[i,j]]). Размеры массивов <var>idat</var>, <var>jdat</var>, <var>kdat</var> должны совпадать. Координаты в <var>idat</var>, <var>jdat</var>, <var>kdat</var> полагаются нормированными в диапазон [0,1] (при <var>norm</var>=<code>true</code>) или в диапазоны [0,nx], [0,ny], [0,nz] соответственно.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Resize-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>mglData</code> <b>Resize</b><i> (<code>int</code> mx, <code>int</code> my=<code>1</code>, <code>int</code> mz=<code>1</code>, <code>float</code> x1=<code>0</code>, <code>float</code> x2=<code>1</code>, <code>float</code> y1=<code>0</code>, <code>float</code> y2=<code>1</code>, <code>float</code> z1=<code>0</code>, <code>float</code> z2=<code>1</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fresize"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_resize</b><i> (<code>const HMDT</code> dat, <code>int</code> mx, <code>int</code> my, <code>int</code> mz)</i></dt>
+<dt><a name="index-mgl_005fdata_005fresize_005fbox"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_resize_box</b><i> (<code>const HMDT</code> dat, <code>int</code> mx, <code>int</code> my, <code>int</code> mz, <code>float</code> x1, <code>float</code> x2, <code>float</code> y1, <code>float</code> y2, <code>float</code> z1, <code>float</code> z2)</i></dt>
+<dd><p>Возвращает массив данных размером <var>mx</var>, <var>my</var>, <var>mz</var> со значениями полученными интерполяцией значений из части [<var>x1</var>,<var>x2</var>] x [<var>y1</var>,<var>y2</var>] x [<var>z1</var>,<var>z2</var>] исходного массива. Величины x,y,z полагаются нормированными в диапазоне [0,1].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Change-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Make-another-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Interpolation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_0437_043ce_043de_043d_0438e-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">6.7 Изменение данных</h2>
+
+<p>Эти функции изменяют данные вдоль заданного направления(ий) типа например дифференцирования, интегрирования и т.д. Направление указывается строкой <var>dir</var>, которая может содержать символы &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; и/или &lsquo;<samp>z</samp>&rsquo;, вдоль которых изменения будут применены.
+</p>
+<a name="index-CumSum"></a>
+<dl>
+<dt><a name="index-CumSum-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>CumSum</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fcumsum"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_cumsum</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Суммирует с накоплением в выбранном направлении(ях).
+</p></dd></dl>
+
+<a name="index-Integral"></a>
+<dl>
+<dt><a name="index-Integral-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Integral</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fintegral"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_integral</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Выполняет интегрирование (подобно суммированию с накоплением) в выбранном направлении(ях).
+</p></dd></dl>
+
+<a name="index-Diff"></a>
+<dl>
+<dt><a name="index-Diff-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Diff</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiff"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_diff</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Выполняет дифференцирование в выбранном направлении(ях).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Diff-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Diff</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y)</i></dt>
+<dt><a name="index-Diff-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Diff</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiff_005fpar"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_diff_par</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> x, <code>const HMDT</code>y, <code>const HMDT</code>z)</i></dt>
+<dd><p>Выполняет дифференцирование данных, параметрически зависящих от координат, в направлении <var>x</var> с <var>y</var>, <var>z</var>=constant. Параметр <var>z</var> может быть опущен, что соответствует 2D случаю. Используются следующие формулы (2D случай): <em>da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j)</em>, где <em>a_i=da/di, a_j=da/dj</em> обозначает дифференцирование вдоль 1-ой и 2-ой размерности. Похожие формулы используются и в 3D случае. Порядок аргументов можно менять &ndash; например, если данные a(i,j) зависят от координат {x(i,j), y(i,j)}, то обычная производная по &lsquo;<samp>x</samp>&rsquo; будет равна <code>Diff(x,y);</code>, а обычная производная по &lsquo;<samp>y</samp>&rsquo; будет равна <code>Diff(y,x);</code>.
+</p></dd></dl>
+
+
+<a name="index-Diff2"></a>
+<dl>
+<dt><a name="index-Diff2-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Diff2</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiff2"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_diff2</b><i> (<code>const char *</code>dir)</i></dt>
+<dd><p>Выполняет двойное дифференцирование (как в операторе Лапласа) в выбранном направлении(ях).
+</p></dd></dl>
+
+<a name="index-SinFFT"></a>
+<dl>
+<dt><a name="index-SinFFT-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>SinFFT</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsinfft"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_sinfft</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Выполняет синус преобразование в выбранном направлении(ях). Синус преобразование есть <em>\sum a_i \sin(k i)</em>.
+</p></dd></dl>
+
+<a name="index-CosFFT"></a>
+<dl>
+<dt><a name="index-CosFFT-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>CosFFT</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fcosfft"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_cosfft</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Выполняет косинус преобразование в выбранном направлении(ях). Синус преобразование есть <em>\sum a_i \cos(k i)</em>.
+</p></dd></dl>
+
+<a name="index-Hankel"></a>
+<dl>
+<dt><a name="index-Hankel-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Hankel</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fhankel"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_hankel</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Выполняет преобразование Ханкеля в выбранном направлении(ях). Преобразование Ханкеля есть <em>\sum a_i J_0(k i)</em>.
+</p></dd></dl>
+
+
+<a name="index-Swap"></a>
+<dl>
+<dt><a name="index-Swap-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Swap</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fswap"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_swap</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Меняет местами левую и правую части данных в выбранном направлении(ях). Полезно для отображения результата FFT.
+</p></dd></dl>
+
+<a name="index-Roll"></a>
+<dl>
+<dt><a name="index-Roll-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Roll</b><i> (<code>char</code> dir, <code>num</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005froll"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_roll</b><i> (<code>HMDT</code> dat, <code>char</code> dir, <code>num</code>)</i></dt>
+<dd><p>Сдвигает данные на <var>num</var> ячеек в выбранном направлении(ях). Соответствует замене индекса на <var>i</var>-&gt;(<var>i</var>+<var>num</var>)%<var>n</var>.
+</p></dd></dl>
+
+<a name="index-Mirror"></a>
+<dl>
+<dt><a name="index-Mirror-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Mirror</b><i> (<code>const char *</code>dir)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmirror"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_mirror</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir)</i></dt>
+<dd><p>Отражает данные в выбранном направлении(ях). Соответствует замене индекса на <var>i</var>-&gt;<var>n</var>-<var>i</var>.
+</p></dd></dl>
+
+<a name="index-Sew"></a>
+<dl>
+<dt><a name="index-Sew-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Sew</b><i> (<code>const char *</code>dir, <code>float</code> da=<code>2*M_PI</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsew"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_sew</b><i> (<code>HMDT</code> dat, <code>const char *</code>dir, <code>float</code> da)</i></dt>
+<dd><p>Удаляет скачки данных (например, скачки фазы после обратных тригонометрических функций) с периодом <var>da</var> в выбранном направлении(ях).
+</p></dd></dl>
+
+<a name="index-Smooth"></a>
+<dl>
+<dt><a name="index-Smooth-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Smooth</b><i> (<code>int</code> Type, <code>const char *</code>dir, <code>float</code> delta=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsmooth"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_smooth</b><i> (<code>HMDT</code> dat, <code>int</code> Type, <code>float</code> delt, <code>const char *</code>dirs)</i></dt>
+<dd><p>Сглаживает данные в выбранном направлении(ях) <var>dir</var> методом <var>Type</var>. Сейчас поддерживаются 4 метода: <code>SMOOTH_NONE=0</code> ничего не делает при <var>delta</var>=0 или сдвигает данные к нулю на шагом <var>delta</var>, <code>SMOOTH_LINE_3=1</code> линейное усреднение по 3 точкам, <code>SMOOTH_LINE_5=2</code> линейное усреднение по 5 точкам, <code>SMOOTH_QUAD_5=3</code> квадратичное усреднение по 5 точкам. Параметр <var>delta</var> запрещает изменение значений на величину большую <var>delta</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Smooth-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Smooth</b><i> (<code>const char *</code>dir)</i></dt>
+<dd><p>Smooths the data on specified direction(s). This is the same as <code>Smooth()</code> but argument <var>Type</var> is specified in string as &lsquo;<samp>0</samp>&rsquo; for <code>SMOOTH_NONE</code>, &lsquo;<samp>3</samp>&rsquo; for <code>SMOOTH_LINE_3</code>, &lsquo;<samp>5</samp>&rsquo; for <code>SMOOTH_LINE_5</code>. If string <var>dir</var> don&rsquo;t contain digits &lsquo;<samp>035</samp>&rsquo; then <var>Type</var>=<code>SMOOTH_QUAD_5</code> is used.
+</p></dd></dl>
+
+<a name="index-Envelop"></a>
+<dl>
+<dt><a name="index-Envelop-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Envelop</b><i> (<code>char</code> dir=<code>'x'</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fenvelop"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_envelop</b><i> (<code>HMDT</code> dat, <code>char</code> dir)</i></dt>
+<dd><p>Находит огибающую данных в выбранном направлении <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-Norm"></a>
+<dl>
+<dt><a name="index-Norm-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>Norm</b><i> (<code>float</code> v1=<code>0</code>, <code>float</code> v2=<code>1</code>, <code>bool</code> sym=<code>false</code>, <code>int</code> dim=<code>0</code>)</i></dt>
+<dd><p>Нормирует данные в интервал [<var>v1</var>,<var>v2</var>]. Если <var>sym</var>=<code>true</code>, то используется симметричный интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Изменения применяются только к срезам &gt;=<var>dim</var>.
+</p></dd></dl>
+
+<a name="index-NormSl"></a>
+<dl>
+<dt><a name="index-NormSl-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>NormSl</b><i> (<code>float</code> v1=<code>0</code>, <code>float</code> v2=<code>1</code>, <code>char</code> dir=<code>'z'</code>, <code>bool</code> keep_en=<code>true</code>, <code>bool</code> sym=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fnorm_005fslice"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_norm_slice</b><i> (<code>HMDT</code> dat, <code>float</code> v1, <code>float</code> v2, <code>char</code> dir, <code>int</code> keep_en, <code>int</code> sym)</i></dt>
+<dd><p>Нормирует данные срез-за-срезом в выбранном направлении <var>dir</var> в интервал [<var>v1</var>,<var>v2</var>]. Если <var>sym</var>=<code>true</code>, то используется симметричный интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Если <var>keep</var>=<code>true</code>, то максимальное значение k-го среза ограничено величиной
+<em>\sqrt\sum a_ij(k)/\sum a_ij(0)</em>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Interpolation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Change-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Informational-functions" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_043d_0442e_0440_043f_043e_043byac_0438ya"></a>
+<h2 class="section">6.8 Интерполяция</h2>
+<a name="index-Spline"></a>
+<dl>
+<dt><a name="index-Spline-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Spline</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fspline"></a><u>C function:</u> <code>float</code> <b>mgl_data_spline</b><i> (<code>const HMDT</code> dat, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dd><p>Интерполирует данные кубическим сплайном в точке <var>x</var> в [0...nx-1], <var>y</var> в [0...ny-1], <var>z</var> в [0...nz-1].
+</p></dd></dl>
+<a name="index-Spline1"></a>
+<dl>
+<dt><a name="index-Spline1-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Spline1</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fspline1"></a><u>C function:</u> <code>float</code> <b>mgl_data_spline1</b><i> (<code>const HMDT</code> dat, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dd><p>Интерполирует данные кубическим сплайном в точке <var>x</var>, <var>y</var>, <var>z</var>, где координаты полагаются в интервале [0, 1].
+</p></dd></dl>
+<a name="index-Linear"></a>
+<dl>
+<dt><a name="index-Linear-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Linear</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005flinear"></a><u>C function:</u> <code>float</code> <b>mgl_data_linear</b><i> (<code>const HMDT</code> dat, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dd><p>Интерполирует данные линейной функцией в точке <var>x</var> в [0...nx-1], <var>y</var> в [0...ny-1], <var>z</var> в [0...nz-1].
+</p></dd></dl>
+<a name="index-Linear1"></a>
+<dl>
+<dt><a name="index-Linear1-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Linear1</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005flinear1"></a><u>C function:</u> <code>float</code> <b>mgl_data_linear1</b><i> (<code>const HMDT</code> dat, <code>float</code> x, <code>float</code> y, <code>float</code> z)</i></dt>
+<dd><p>Интерполирует данные линейной функцией в точке <var>x</var>, <var>y</var>, <var>z</var>, где координаты полагаются в интервале [0, 1].
+</p></dd></dl>
+<a name="index-v"></a>
+<dl>
+<dt><a name="index-v-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>v</b><i> (<code>int</code> i, <code>int</code> j=<code>0</code>, <code>int</code> k=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fget_005fvalue-1"></a><u>C function:</u> <code>float</code> <b>mgl_data_get_value</b><i> (<code>const HMDT</code> dat, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Возвращает значение ячейки с проверкой на границы массива данных.
+</p></dd></dl>
+<a name="index-Spline5"></a>
+<dl>
+<dt><a name="index-Spline5-1"></a><u>Method on <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Spline5</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> &amp;dx, <code>float</code> &amp;dy, <code>float</code> &amp;dz) <code>const</code></i></dt>
+<dd><p>Интерполирует данные сплайном 5-го порядка в точке <var>x</var>, <var>y</var>, <var>z</var>, где координаты полагаются в интервале [0, 1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mgl_005fdata_005fvalue"></a><u>C function:</u> <code>float *</code> <b>mgl_data_value</b><i> (<code>HMDT</code> dat, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Возвращает указатель на ячейку данных. Может быть не действителен после вызова любой функции изменяющей данные.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mgl_005fdata_005fdata"></a><u>C function:</u> <code>const float *</code> <b>mgl_data_data</b><i> (<code>const HMDT</code> dat)</i></dt>
+<dd><p>Возвращает указатель на весь массив данных. Может быть не действителен после вызова любой функции изменяющей данные.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Informational-functions"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Interpolation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Operators" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_043d_0444_043e_0440_043c_0430c_0438_043e_043d_043d_044be-_0444_0443_043d_043ac_0438_0438"></a>
+<h2 class="section">6.9 Информационные функции</h2>
+<a name="index-PrintInfo"></a>
+<dl>
+<dt><a name="index-PrintInfo-1"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>PrintInfo</b><i> (<code>char *</code>buf, <code>bool</code> all=<code>false</code>) <code>const</code></i></dt>
+<dd><p>Печатает информацию о данных (размеры, моменты и пр.) в строку <var>buf</var>. Параметр <var>all</var> устанавливает печатать ли подробную информацию (если <code>true</code>) или только базовую информацию.
+</p></dd></dl>
+<dl>
+<dt><a name="index-PrintInfo-2"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>void</code> <b>PrintInfo</b><i> (<code>FILE *</code>fp) <code>const</code></i></dt>
+<dd><p>Аналогично, но выводит в файл (или, например, в stdout).
+</p></dd></dl>
+
+<a name="index-Maximal"></a>
+<dl>
+<dt><a name="index-Maximal-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Maximal</b><i> () <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmax"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_max</b><i> (<code>const HMDT</code> dat)</i></dt>
+<dd><p>Возвращает максимальное значение массива данных.
+</p></dd></dl>
+<a name="index-Minimal"></a>
+<dl>
+<dt><a name="index-Minimal-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Minimal</b><i> () <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmin"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_min</b><i> (<code>HMDT</code> dat) <code>const</code></i></dt>
+<dd><p>Возвращает минимальное значение массива данных.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Maximal-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Maximal</b><i> (<code>int</code> &amp;i, <code>int</code> &amp;j, <code>int</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmax_005fint"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_max_int</b><i> (<code>const HMDT</code> dat, <code>int</code> *i, <code>int</code> *j, <code>int</code> *k)</i></dt>
+<dd><p>Возвращает максимальное значение массива данных и его положение в переменные <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Minimal-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Minimal</b><i> (<code>int</code> &amp;i, <code>int</code> &amp;j, <code>int</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmin_005fint"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_min_int</b><i> (<code>const HMDT</code> dat, <code>int</code> *i, <code>int</code> *j, <code>int</code> *k)</i></dt>
+<dd><p>Возвращает минимальное значение массива данных и его положение в переменные <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Maximal-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Maximal</b><i> (<code>float</code> &amp;i, <code>float</code> &amp;j, <code>float</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmax_005freal"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_max_real</b><i> (<code>const HMDT</code> dat, <code>float</code> *x, <code>float</code> *y, <code>float</code> *z)</i></dt>
+<dd><p>Возвращает максимальное значение массива данных и его приближенное (интерполированное) положение в переменные <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Minimal-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Minimal</b><i> (<code>float</code> &amp;i, <code>float</code> &amp;j, <code>float</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmin_005freal"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_min_real</b><i> (<code>const HMDT</code> dat, <code>float</code> *x, <code>float</code> *y, <code>float</code> *z)</i></dt>
+<dd><p>Возвращает минимальное значение массива данных и его приближенное (интерполированное) положение в переменные <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+
+<a name="index-Momentum-2"></a>
+<dl>
+<dt><a name="index-Momentum-3"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Momentum</b><i> (<code>char</code> dir, <code>float</code> &amp;m, <code>float</code> &amp;w) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005fmomentum_005fmw"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_momentum_mw</b><i> (<code>const HMDT</code> dat, <code>char</code> dir, <code>float</code> *m, <code>float</code> *w)</i></dt>
+<dd><p>Возвращает нулевой момент (энергию, <em>I=\sum a_i</em>) и записывает первый (среднее, <em>m = \sum \xi_i a_i/I</em>) и второй момент (ширину, <em>w^2 = \sum (\xi_i-m)^2 a_i/I</em>). Здесь <em>\xi</em> &ndash; соответствующая кордината если <var>dir</var> равно &lsquo;<samp>'x'</samp>&rsquo;, &lsquo;<samp>'y'</samp>&rsquo;, &lsquo;<samp>'z'</samp>&rsquo;. В противном случае среднее и ширина равны <em>m = \sum a_i/N</em>, <em>w^2 = \sum (a_i-m)^2/N</em>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Momentum-4"></a><u>Метод класса <code>mglData</code> (C++):</u> <code>float</code> <b>Momentum</b><i> (<code>char</code> dir, <code>float</code> &amp;m, <code>float</code> &amp;w, <code>float</code> &amp;s, <code>float</code> &amp;k) <code>const</code></i></dt>
+<dd><p>Возвращает нулевой момент (энергию, <em>I=\sum a_i</em>) и записывает первый (среднее, <em>m = \sum \xi_i a_i/I</em>), второй (ширину, <em>w^2 = \sum (\xi_i-m)^2 a_i/I</em>), третий (асимметрия, <em>s = \sum (\xi_i-m)^3 a_i/ I w^3</em>) и четвертый моменты (эксцесс, <em>k = \sum (\xi_i-m)^4 a_i / 3 I w^4</em>)). Здесь <em>\xi</em> &ndash; соответствующая кордината если <var>dir</var> равно &lsquo;<samp>'x'</samp>&rsquo;, &lsquo;<samp>'y'</samp>&rsquo;, &lsquo;<samp>'z'</samp>&rsquo;. В противном случае среднее, ширина, асимметрия, эксцесс равны <em>m = \sum a_i/N</em>, <em>w^2 = \sum (a_i-m)^2/N</em> и т.д.
+</p></dd></dl>
+
+<a name="index-Find"></a>
+<dl>
+<dt><a name="index-Find-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Find</b><i> (<code>const char *</code>cond, <code>int</code> &amp;i, <code>int</code> &amp;j, <code>int</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005ffirst"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_first</b><i> (<code>const HMDT</code> dat, <code>const char *</code>cond, <code>int</code> *i, <code>int</code> *j, <code>int</code> *k)</i></dt>
+<dd><p>Находит положение (после заданного в <var>i</var>, <var>j</var>, <var>k</var>) первого не нулевого значения формулы <var>cond</var>. Функция возвращает найденное значение и записывает его положение в <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+<a name="index-Last"></a>
+<dl>
+<dt><a name="index-Last-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>float</code> <b>Last</b><i> (<code>const char *</code>cond, <code>int</code> &amp;i, <code>int</code> &amp;j, <code>int</code> &amp;k) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005flast"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_last</b><i> (<code>const HMDT</code> dat, <code>const char *</code>cond, <code>int</code> *i, <code>int</code> *j, <code>int</code> *k)</i></dt>
+<dd><p>Находит положение (перед заданного в <var>i</var>, <var>j</var>, <var>k</var>) последнего не нулевого значения формулы <var>cond</var>. Функция возвращает найденное значение и записывает его положение в <var>i</var>, <var>j</var>, <var>k</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Find-2"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>int</code> <b>Find</b><i> (<code>const char *</code>cond, <code>char</code> dir, <code>int</code> i=<code>0</code>, <code>int</code> j=<code>0</code>, <code>int</code> k=<code>0</code>) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005ffind"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_find</b><i> (<code>const HMDT</code> dat, <code>const char *</code>cond, <code>int</code> i, <code>int</code> j, <code>int</code> k)</i></dt>
+<dd><p>Возвращает положение первого в направлении <var>dir</var> не нулевого значения формулы <var>cond</var>. Поиск начинается с точки {i,j,k}.
+</p></dd></dl>
+<a name="index-FindAny"></a>
+<dl>
+<dt><a name="index-FindAny-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>bool</code> <b>FindAny</b><i> (<code>const char *</code>cond) <code>const</code></i></dt>
+<dt><a name="index-mgl_005fdata_005ffind_005fany"></a><u>Функция С:</u> <code>float</code> <b>mgl_data_find_any</b><i> (<code>const HMDT</code> dat, <code>const char *</code>cond)</i></dt>
+<dd><p>Определяет есть ли хоть одно значение массива, удовлетворяющее условию <var>cond</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Operators"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Informational-functions" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Global-functions" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_043fe_0440_0430_0442_043e_0440_044b"></a>
+<h2 class="section">6.10 Операторы</h2>
+
+<dl>
+<dt><a name="index-operator_003d"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dd><p>Копирует данные из другого экземпляра.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a_003d"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator*=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmul_005fdat"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_mul_dat</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> d)</i></dt>
+<dd><p>Поэлементно умножает массив <var>d</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f_003d"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator/=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiv_005fdat"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_div_dat</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> d)</i></dt>
+<dd><p>Поэлементно делит массив <var>d</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002b_003d"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator+=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fadd_005fdat"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_add_dat</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> d)</i></dt>
+<dd><p>Поэлементно прибавляет <var>d</var>.
+Adds the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d_003d"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator-=</b><i> (<code>const mglData &amp;</code>d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsub_005fdat"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_sub_dat</b><i> (<code>HMDT</code> dat, <code>const HMDT</code> d)</i></dt>
+<dd><p>Поэлементно вычитает <var>d</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a_003d-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator*=</b><i> (<code>float</code> d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fmul_005fnum"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_mul_num</b><i> (<code>HMDT</code> dat, <code>float</code> d)</i></dt>
+<dd><p>Умножает каждый элемент на число.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f_003d-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator/=</b><i> (<code>float</code> d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fdiv_005fnum"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_div_num</b><i> (<code>HMDT</code> dat, <code>float</code> d)</i></dt>
+<dd><p>Делит каждый элемент на число.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002b_003d-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator+=</b><i> (<code>float</code> d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fadd_005fnum"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_add_num</b><i> (<code>HMDT</code> dat, <code>float</code> d)</i></dt>
+<dd><p>Прибавляет число к каждому элементу.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d_003d-1"></a><u>Метод класса <code>mglData</code> (C++, Python):</u> <code>void</code> <b>operator-=</b><i> (<code>float</code> d)</i></dt>
+<dt><a name="index-mgl_005fdata_005fsub_005fnum"></a><u>Функция С:</u> <code>void</code> <b>mgl_data_sub_num</b><i> (<code>HMDT</code> dat, <code>float</code> d)</i></dt>
+<dd><p>Вычитает число из каждого элемента.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-operator_002b"></a><u>Функция библиотеки:</u> mglData <b>operator+</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Возвращает поэлементную сумму данных.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002b-1"></a><u>Функция библиотеки:</u> mglData <b>operator+</b><i> (<code>float</code> a, <code>const mglData &amp;</code>b)</i></dt>
+<dt><a name="index-operator_002b-2"></a><u>Функция библиотеки:</u> mglData <b>operator+</b><i> (<code>const mglData &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Возвращает поэлементную сумму данных и числа.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002d"></a><u>Функция библиотеки:</u> mglData <b>operator-</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Возвращает поэлементную разность данных.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d-1"></a><u>Функция библиотеки:</u> mglData <b>operator-</b><i> (<code>float</code> a, <code>const mglData &amp;</code>b)</i></dt>
+<dt><a name="index-operator_002d-2"></a><u>Функция библиотеки:</u> mglData <b>operator-</b><i> (<code>const mglData &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Возвращает поэлементную разность числа и данных.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002a"></a><u>Функция библиотеки:</u> mglData <b>operator*</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Возвращает поэлементное произведение данных.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-1"></a><u>Функция библиотеки:</u> mglData <b>operator*</b><i> (<code>float</code> a, <code>const mglData &amp;</code>b)</i></dt>
+<dt><a name="index-operator_002a-2"></a><u>Функция библиотеки:</u> mglData <b>operator*</b><i> (<code>const mglData &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Возвращает поэлементное произведение данных на число.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002f"></a><u>Функция библиотеки:</u> mglData <b>operator/</b><i> (<code>const mglData &amp;</code>a, <code>const mglData &amp;</code>b)</i></dt>
+<dd><p>Возвращает поэлементное деление данных.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f-1"></a><u>Функция библиотеки:</u> mglData <b>operator/</b><i> (<code>const mglData &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Возвращает поэлементное деление данных на число.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Global-functions"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Operators" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglData-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0413_043b_043e_0431_0430_043bx_043d_044be-_0444_0443_043d_043ac_0438_0438"></a>
+<h2 class="section">6.11 Глобальные функции</h2>
+
+<p>Эти функции не методы класса <code>mglData</code>, но они дают дополнительные возможности по обработке данных. Поэтому я поместил их в эту главу.
+</p>
+<dl>
+<dt><a name="index-mglTransform"></a><u>Функция библиотеки:</u> <code>mglData</code> <b>mglTransform</b><i> (<code>const mglData &amp;</code>real, <code>const mglData &amp;</code>imag, <code>const char *</code>type)</i></dt>
+<dt><a name="index-mgl_005ftransform"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_transform</b><i> (<code>const HMDT</code> real, <code>const HMDT</code> imag, <code>const char *</code>type)</i></dt>
+<dd><p>Выполняет интегральное преобразование комплексных данных <var>real</var>, <var>imag</var> в выбранном направлении и возвращает модуль результата. Порядок и тип преобразований задается строкой <var>type</var>: первый символ для x-направления, второй для y-направления, третий для z-направления. Возможные символы: &lsquo;<samp>f</samp>&rsquo; &ndash; прямое преобразование Фурье, &lsquo;<samp>i</samp>&rsquo; &ndash; обратное преобразование Фурье, &lsquo;<samp>s</samp>&rsquo; &ndash; синус преобразование, &lsquo;<samp>c</samp>&rsquo; &ndash; косинус преобразование, &lsquo;<samp>h</samp>&rsquo; &ndash; преобразование Ханкеля, &lsquo;<samp>n</samp>&rsquo; или &lsquo;<samp> </samp>&rsquo; &ndash; нет преобразования.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglTransformA"></a><u>Функция библиотеки:</u> <code>mglData</code> <b>mglTransformA</b><i> <code>const mglData &amp;</code>ampl, <code>const mglData &amp;</code>phase, <code>const char *</code>type)</i></dt>
+<dt><a name="index-mgl_005ftransform_005fa"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_transform_a</b><i> <code>const HMDT</code> ampl, <code>const HMDT</code> phase, <code>const char *</code>type)</i></dt>
+<dd><p>Аналогично предыдущему с заданными амплитудой <var>ampl</var> и фазой <var>phase</var> комплексных чисел.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglSTFA"></a><u>Функция библиотеки:</u> <code>mglData</code> <b>mglSTFA</b><i> (<code>const mglData &amp;</code>real, <code>const mglData &amp;</code>imag, <code>int</code> dn, <code>char</code> dir=<code>'x'</code>)</i></dt>
+<dt><a name="index-mgl_005fdata_005fstfa"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_data_stfa</b><i> (<code>const HMDT</code> real, <code>const HMDT</code> imag, <code>int</code> dn,<code>char</code> dir)</i></dt>
+<dd><p>Выполняет оконное преобразование Фурье длиной <var>dn</var> для комплексных данных <var>real</var>, <var>imag</var> и возвращает модуль результата. Например, для <var>dir</var>=&lsquo;<samp>x</samp>&rsquo; результат будет иметь размер {int(nx/dn), dn, ny} и будет равен <em>res[i,j,k]=|\sum_d^dn exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn</em>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglPDE"></a><u>Функция библиотеки:</u> <code>mglData</code> <b>mglPDE</b><i> (<code>const char *</code>ham, <code>const mglData &amp;</code>ini_re, <code>const mglData &amp;</code>ini_im, <code>mglPoint</code> Min, <code>mglPoint</code> Max, <code>float</code> dz=<code>0.1</code>, <code>float</code> k0=<code>100</code>)</i></dt>
+<dt><a name="index-mgl_005fpde_005fsolve"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_pde_solve</b><i> (<code>HMGL</code> gr, <code>const char *</code>ham, <code>const HMDT</code> ini_re, <code>const HMDT</code> ini_im, <code>float</code> dz, <code>float</code> k0)</i></dt>
+<dd><p>Решает уравнение в частных производных du/dz = i*k0*<var>ham</var>(p,q,x,y,z,|u|)[u], где p=-i/k0*d/dx, q=-i/k0*d/dy &ndash; псевдо-дифференциальные операторы. Параметры <var>ini_re</var>, <var>ini_im</var> задают начальное распределение поля. Координаты в уравнении и в решении полагаются в диапазоне осей координат. Замечу, что внутри этот диапазон увеличивается в 3/2 раза для уменьшения отражения от границ расчетного интервала. Параметр <var>dz</var> задает шаг по эволюционной координате z. В данный момент использован упрощенный алгоритм, когда все &ldquo;смешанные&rdquo; члена (типа &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) исключаются. Например, в 2D случае это функции типа <em>ham = f(p,z) + g(x,z,u)</em>. При этом допускаются коммутирующие комбинации (типа &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy). Переменная &lsquo;<samp>u</samp>&rsquo; используется для обозначения амплитуды поля |u|. Это позволяет решать нелинейные задачи &ndash; например, нелинейное уравнение Шредингера <code>ham='p^2+q^2-u^2'</code>. Также можно указать мнимую часть для поглощения (типа <code>ham = 'p^2+i*x*(x&gt;0)'</code>), но только если зависимость от &lsquo;<samp>i</samp>&rsquo; линейная, т.е. <em>ham = hre+i*him</em>. См. раздел <a href="mathgl_ru_9.html#PDE-sample">PDE &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglRay"></a><u>Функция библиотеки:</u> <code>mglData</code> <b>mglRay</b><i> (<code>const char *</code>ham, <code>mglPoint</code> r0, <code>mglPoint</code> p0, <code>float</code> dt=<code>0.1</code>, <code>float</code> tmax=<code>10</code>)</i></dt>
+<dt><a name="index-mgl_005fray_005ftrace"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_ray_trace</b><i> (<code>const char *</code>ham, <code>float</code> x0, <code>float</code> y0, <code>float</code> z0, <code>float</code> px, <code>float</code> py, <code>float</code> pz, <code>float</code> dt, <code>float</code> tmax)</i></dt>
+<dd><p>Решает систему геометрооптических уравнений d<em>r</em>/dt = d <var>ham</var>/d<em>p</em>, d<em>p</em>/dt = -d <var>ham</var>/d<em>r</em>. Это гамильтоновы уравнения для траектории частицы в 3D случае. Гамильтониан <var>ham</var> может зависеть от координат &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, импульсов &lsquo;<samp>p</samp>&rsquo;=px, &lsquo;<samp>q</samp>&rsquo;=py, &lsquo;<samp>v</samp>&rsquo;=pz и времени &lsquo;<samp>t</samp>&rsquo;: <em>ham = H(x,y,z,p,q,v,t)</em>. Начальная точка (при <code>t=0</code>) задается переменными {<var>x0</var>, <var>y0</var>, <var>z0</var>, <var>p0</var>, <var>q0</var>, <var>v0</var>}. Параметры <var>dt</var> и <var>tmax</var> задают шаг и максимальное время интегрирования. Результат &ndash; массив {x,y,z,p,q,v,t} с размером {7 * int(<var>tmax</var>/<var>dt</var>+1) }. См. раздел <a href="mathgl_ru_9.html#Beam-tracing-sample">Beam tracing &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglQO2d"></a><u>Функция библиотеки:</u> <code>mglData</code> <b>mglQO2d</b><i> (<code>const char *</code>ham, <code>const mglData &amp;</code>ini_re, <code>const mglData &amp;</code>ini_im, <code>const mglData &amp;</code>ray, <code>float</code> r=<code>1</code>, <code>float</code> k0=<code>100</code>, <code>mglData *</code>xx=<code>0</code>, <code>mglData *</code>yy=<code>0</code>, <code>bool</code> UseR=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fqo2d_005fsolve"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_qo2d_solve</b><i> (<code>const char *</code>ham, <code>const HMDT</code> ini_re, <code>const HMDT</code> ini_im, <code>const HMDT</code> ray, <code>float</code> r, <code>float</code> k0, <code>HMDT</code> xx, <code>HMDT</code> yy)</i></dt>
+<dd><p>Решает уравнение в частных производных du/dt = i*k0*<var>ham</var>(p,q,x,y,|u|)[u] в сопровождающей системе координат, где p=-i/k0*d/dx, q=-i/k0*d/dy &ndash; псевдо-дифференциальные операторы. Параметры <var>ini_re</var>, <var>ini_im</var> задают начальное распределение поля. Параметр <var>ray</var> задает опорный луч для сопровождающей системы координат. Можно использовать луч найденный с помощью <code>mglRay()</code>. Опорный луч должен быть достаточно гладкий, чтобы система координат была однозначной и для исключения ошибок интегрирования. Если массивы <var>xx</var> и <var>yy</var> указаны, то в них записываются декартовы координаты для каждой точки найденного решения. См. также <code>mglPDE()</code>. См. раздел <a href="mathgl_ru_9.html#Beam-tracing-sample">Beam tracing &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglJacobian"></a><u>Функция библиотеки:</u> <code>mglData</code> <b>mglJacobian</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y)</i></dt>
+<dt><a name="index-mglJacobian-1"></a><u>Функция библиотеки:</u> <code>mglData</code> <b>mglJacobian</b><i> (<code>const mglData &amp;</code>x, <code>const mglData &amp;</code>y, <code>const mglData &amp;</code>z)</i></dt>
+<dt><a name="index-mgl_005fjacobian_005f2d"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_jacobian_2d</b><i> (<code>const HMDT</code> x, <code>const HMDT</code> y)</i></dt>
+<dt><a name="index-mgl_005fjacobian_005f3d"></a><u>Функция С:</u> <code>HMDT</code> <b>mgl_jacobian_3d</b><i> (<code>const HMDT</code> x, <code>const HMDT</code> y, <code>const HMDT</code> z)</i></dt>
+<dd><p>Вычисляет якобиан преобразования {i,j,k} в {<var>x</var>,<var>y</var>,<var>z</var>}, где координаты {i,j,k} полагаются нормированными в интервал [0,1]. Якобиан находится по формуле det||<em>dr_\alpha/d\xi_\beta</em>||, где <em>r</em>={<var>x</var>,<var>y</var>,<var>z</var>} и <em>\xi</em>={i,j,k}. Все размерности всех массивов должны быть одинаковы. Данные должны быть трехмерными если указаны все 3 массива {<var>x</var>,<var>y</var>,<var>z</var>} или двумерными если только 2 массива {<var>x</var>,<var>y</var>}.
+</p></dd></dl>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_ru.html/mathgl_ru_7.html b/texinfo/mathgl_ru.html/mathgl_ru_7.html
new file mode 100644
index 0000000..4ebcaee
--- /dev/null
+++ b/texinfo/mathgl_ru.html/mathgl_ru_7.html
@@ -0,0 +1,769 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: 7. Other classes</title>
+
+<meta name="description" content="MathGL 1.11: 7. Other classes">
+<meta name="keywords" content="MathGL 1.11: 7. Other classes">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Other-classes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_6.html#Global-functions" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglParse-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_6.html#mglData-class" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+
+<a name="Other-classes-1"></a>
+<h1 class="chapter">7. Other classes</h1>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#mglParse-class">7.1 mglParse class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglFormula-class">7.2 mglFormula class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglFont-class">7.3 mglFont class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglColor-class">7.4 mglColor class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglPoint-class">7.5 mglPoint class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglVar-class">7.6 mglVar class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglCommand-class">7.7 mglCommand class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#mglArg-class">7.8 mglArg class</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="mglParse-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-classes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglFormula-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglParse-class-1"></a>
+<h2 class="section">7.1 mglParse class</h2>
+<a name="index-mglParse"></a>
+
+<p>Class for parsing and executing MGL script. This class is defined in <code>#include &lt;mgl/mgl_parse.h&gt;</code>.
+</p>
+<p>Class mglParse is the interpreter for MGL scripts (see section <a href="mathgl_ru_8.html#MGL-interface">Язык MGL</a>). The main function of mglParse class is <code>Parse()</code>. Exactly this function parses and executes the script string-by-string. Also there are two subservient functions for the finding and creation of a variable. These functions can be useful for displaying values of variables (arrays) in some external program (in window, for example). The variable <var>DataList</var> contains full list of variables in script. Flag <var>AllowSetSize</var> allows one to prevent changing the size of the  picture inside the script (forbids the MGL command <code>setsize</code>). 
+</p>
+<p>Note an important feature &ndash; if user defines function <var>func</var> in variable then it will be called before the destroying of this variable (see section <a href="#mglVar-class">mglVar class</a>).
+</p>
+<dl>
+<dt><a name="index-mglParse-1"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code></code> <b>mglParse</b><i> (<code>bool</code> setsize=<code>false</code>)</i></dt>
+<dt><a name="index-mgl_005fcreate_005fparser"></a><u>C function:</u> <code>HMPR</code> <b>mgl_create_parser</b><i> ()</i></dt>
+<dd><p>Constructor initializes all values with zero and set <var>AllowSetSize</var> value.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-_007emglParse"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code></code> <b>~mglParse</b><i> ()</i></dt>
+<dt><a name="index-mgl_005fdelete_005fparser"></a><u>C function:</u> <code>void</code> <b>mgl_delete_parser</b><i> (<code>HMPR</code> p)</i></dt>
+<dd><p>Destructor delete parser
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Parse"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>int</code> <b>Parse</b><i> (<code>mglGraph *</code>gr, <code>const char *</code>str, <code>long</code> pos=<code>0</code>)</i></dt>
+<dt><a name="index-Parse-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>int</code> <b>Parse</b><i> (<code>mglGraph *</code>gr, <code>const wchar_t *</code>str, <code>long</code> pos=<code>0</code>)</i></dt>
+<dt><a name="index-mgl_005fparse"></a><u>C function:</u> <code>int</code> <b>mgl_parse</b><i> (<code>HMGL</code> gr, <code>HMPR</code> p, <code>const char *</code>str, <code>int</code> pos)</i></dt>
+<dt><a name="index-mgl_005fparsew"></a><u>C function:</u> <code>int</code> <b>mgl_parsew</b><i> (<code>HMGL</code> gr, <code>HMPR</code> p, <code>const wchar_t *</code>str, <code>int</code> pos)</i></dt>
+<dd><p>Main function in the class. It parses the string <var>str</var> and executes it by  using <var>gr</var> as a graphics plotter. Returns the value depending on an error presence in the string <var>str</var>: 0 &ndash; no error, 1 &ndash; wrong command argument(s), 2 &ndash; unknown command, 3 &ndash; string is too long. Optional argument <var>pos</var> allows to save the string position in the document (or file) for using <code>for|next</code> command.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Export-2"></a><u>Method on <code>mglParse</code> (C++):</u> <code>int</code> <b>Export</b><i> (<code>wchar_t</code> cpp_out<code>[1024]</code>, <code>mglGraph *</code>gr, <code>const wchar_t *</code>str)</i></dt>
+<dd><p>Function parses the string <var>str</var>, executes it by  using <var>gr</var> as a graphics plotter and exports it to C++ code. Returns the value depending on an error presence in the string <var>str</var>: 0 &ndash; no error, 1 &ndash; wrong command argument(s), 2 &ndash; unknown command, 3 &ndash; string is too long. Output C++ text will be placed in <var>out</var> variable. If string <var>str</var> have options (defined after &rsquo;;&rsquo; symbol) then the corresponding C++ texts are placed in variables <var>op1</var>, <var>op2</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Execute"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>Execute</b><i> (<code>mglGraph *</code>gr, <code>FILE *</code>fp, <code>bool</code> print=<code>false</code>)</i></dt>
+<dd><p>Function parse and execute line-by-line MGL script in file <var>fp</var>. If <var>print</var>=<code>true</code> then all warnings and information will be printed in stdout. Also this function support the <code>for|next</code> MGL commands.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Execute-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>Execute</b><i> (<code>mglGraph *</code>gr, <code>int</code> num, <code>const wchar_t **</code>text, <code>void (*</code> error <code>)(int line, int kind)=NULL</code>)</i></dt>
+<dd><p>Function parse and execute line-by-line MGL script in array <var>text</var>. If <var>error</var> is not <code>NULL</code> then this function will be called for all warnings, information and other messages. Also this function support the <code>for|next</code> MGL commands.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-Execute-2"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>void</code> <b>Execute</b><i> (<code>mglGraph *</code>gr, <code>const char *</code>text, <code>void (*</code> error <code>)(int line, int kind)=NULL</code>)</i></dt>
+<dt><a name="index-Execute-3"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>Execute</b><i> (<code>mglGraph *</code>gr, <code>const wchar_t *</code>text, <code>void (*</code> error <code>)(int line, int kind)=NULL</code>)</i></dt>
+<dt><a name="index-mgl_005fparse_005ftext"></a><u>C function:</u> <code>void</code> <b>mgl_parse_text</b><i> (<code>HMGL</code> gr, <code>HMPR</code> p, <code>const char *</code>text)</i></dt>
+<dt><a name="index-mgl_005fparsew_005ftext"></a><u>C function:</u> <code>void</code> <b>mgl_parsew_text</b><i> (<code>HMGL</code> gr, <code>HMPR</code> p, <code>const wchar_t *</code>text)</i></dt>
+<dd><p>Function parse and execute line-by-line MGL script in string <var>text</var>. Lines are separated by &lsquo;<samp>\n</samp>&rsquo; symbol as usual. If <var>error</var> is not <code>NULL</code> then this function will be called for all warnings, information and other messages. Also this function support the <code>for|next</code> MGL commands.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AddParam"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>bool</code> <b>AddParam</b><i> (<code>int</code> n, <code>const char *</code>str, <code>bool</code> isstr=<code>true</code>)</i></dt>
+<dt><a name="index-AddParam-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>bool</code> <b>AddParam</b><i> (<code>int</code> n, <code>const wchar_t *</code>str, <code>bool</code> isstr=<code>true</code>)</i></dt>
+<dt><a name="index-mgl_005fadd_005fparam"></a><u>C function:</u> <code>void</code> <b>mgl_add_param</b><i> (<code>HMPR</code> p, <code>int</code> id, <code>const char *</code>val)</i></dt>
+<dt><a name="index-mgl_005fadd_005fparamw"></a><u>C function:</u> <code>void</code> <b>mgl_add_paramw</b><i> (<code>HMPR</code> p, <code>int</code> id, <code>const wchar_t *</code>val)</i></dt>
+<dd><p>Function set the value of <var>n</var>-th parameter as string <var>str</var> (<var>n</var>=0, 1 ... 9). It return <code>true</code> for success.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-FindVar"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>mglVar *</code> <b>FindVar</b><i> (<code>const char *</code>name)</i></dt>
+<dt><a name="index-FindVar-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>mglVar *</code> <b>FindVar</b><i> (<code>const wchar_t *</code>name)</i></dt>
+<dt><a name="index-mgl_005ffind_005fvar"></a><u>C function:</u> <code>const HMDT</code> <b>mgl_find_var</b><i>  (<code>HMPR</code> p, <code>const char *</code>name)</i></dt>
+<dd><p>Function returns the pointer to variable with name <var>name</var> or zero if variable is absent. Use this function to put external data array to the script or get the data from the script.
+</p></dd></dl>
+<dl>
+<dt><a name="index-AddVar"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>mglVar *</code> <b>AddVar</b><i> (<code>const char *</code>name)</i></dt>
+<dt><a name="index-AddVar-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>mglVar *</code> <b>AddVar</b><i> (<code>const wchar_t *</code>name)</i></dt>
+<dt><a name="index-mgl_005fadd_005fvar"></a><u>C function:</u> <code>const HMDT</code> <b>mgl_add_var</b><i> (<code>HMPR</code> p, <code>const char *</code>name)</i></dt>
+<dd><p>Function returns the pointer to variable with name <var>name</var>. If variable is absent then new variable is created with name <var>name</var>. Use this function to put external data array to the script or get the data from the script.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DeleteVar"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>DeleteVar</b><i> (<code>mglVar *</code>v)</i></dt>
+<dt><a name="index-DeleteVar-1"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>DeleteVar</b><i> (<code>const char *</code>name)</i></dt>
+<dt><a name="index-DeleteVar-2"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>DeleteVar</b><i> (<code>const wchar_t *</code>name)</i></dt>
+<dd><p>Function delete the variable specified by its name or by its pointer.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-RestoreOnce"></a><u>Method on <code>mglParse</code> (C++, Python):</u> <code>inline void</code> <b>RestoreOnce</b><i> ()</i></dt>
+<dt><a name="index-mgl_005frestore_005fonce"></a><u>C function:</u> <code>void</code> <b>mgl_restore_once</b><i> (<code>HMPR</code> p)</i></dt>
+<dd><p>Restore Once flag.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AllowSetSize"></a><u>Method on <code>mglParse</code> (Python):</u> <code>void</code> <b>AllowSetSize</b><i> (<code>bool</code> a)</i></dt>
+<dt><a name="index-mgl_005fparser_005fallow_005fsetsize"></a><u>C function:</u> <code>void</code> <b>mgl_parser_allow_setsize</b><i> (<code>HMPR</code> p, <code>int</code> a)</i></dt>
+<dd><p>Allow to parse &rsquo;setsize&rsquo; command or not.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-AddCommand"></a><u>Method on <code>mglParse</code> (C++):</u> <code>void</code> <b>AddCommand</b><i> (<code>mglCommand *</code>cmd, <code>int</code> num=<code>0</code>)</i></dt>
+<dd><p>Add <var>num</var> commands <var>cmd</var> to the defined MGL commands list. Parameter <var>cmd</var> is array of <code>mglCommand</code> structures. If parameter <var>num</var>=0 then it will be determined automatically. At this, array <var>cmd</var> <strong>must have</strong> last element with <code>name=L&quot;&quot;</code>
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-DataList-of-mglParse"></a><u>Option of mglParse:</u> <code>mglVar *</code> <b>DataList</b></dt>
+<dd><p>List of variables defined in script.
+</p></dd></dl>
+<dl>
+<dt><a name="index-AllowSetSize-of-mglParse"></a><u>Option of mglParse:</u> <code>bool</code> <b>AllowSetSize</b></dt>
+<dd><p>Flag which allows/forbids the command <code>setsize</code> in scripts.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Stop-of-mglParse"></a><u>Option of mglParse:</u> <code>bool</code> <b>Stop</b></dt>
+<dd><p>Flag which interrupt script execution.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Cmd-of-mglParse"></a><u>Option of mglParse:</u> <code>mglCommand *</code> <b>Cmd</b></dt>
+<dd><p>Table (array) of recognizable MGL commands (can be changed by user). Items in the table <strong>MUST be sorted</strong> by <var>name</var> field !!! Last items must have empty name (i.e. <code>L&quot;&quot;</code>).
+</p></dd></dl>
+<dl>
+<dt><a name="index-op1-of-mglParse"></a><u>Option of mglParse:</u> <code>wchar_t *</code> <b>op1</b></dt>
+<dd><p>These strings contain command options and should be placed before the command. These variables are used for MGL-&gt;C++ (or other language) conversion.
+</p></dd></dl>
+<dl>
+<dt><a name="index-op2-of-mglParse"></a><u>Option of mglParse:</u> <code>wchar_t *</code> <b>op2</b></dt>
+<dd><p>These strings contain command options and should be placed after the command. These variables are used for MGL-&gt;C++ (or other language) conversion.
+</p></dd></dl>
+
+<hr size="6">
+<a name="mglFormula-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglParse-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglFont-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglFormula-class-1"></a>
+<h2 class="section">7.2 mglFormula class</h2>
+<a name="index-mglFormula"></a>
+
+<p>Class for evaluating of formula specified by the string. This class is defined in <code>#include &lt;mgl/mgl_eval.h&gt;</code>.
+</p>
+<p>It is the fast variant of formula evaluation. At creation it will be recognized and compiled to tree-like internal code. At evaluation stage only fast calculations are performed. There is no difference between lower or upper case in formulas. If argument value lie outside the range of function definition then function returns NaN. See section <a href="mathgl_ru_1.html#Textual-formulas">Текстовые формулы</a>.
+</p>
+<dl>
+<dt><a name="index-mglFormula-on-mglFormula"></a><u>Method on mglFormula:</u> <code></code> <b>mglFormula</b><i> (<code>const char *</code>str)</i></dt>
+<dd><p>Parses the formula <var>str</var> and creates formula-tree. Constructor recursively parses the formula and creates a tree-like structure containing functions and operators for fast further evaluating by <code>Calc()</code> or <code>CalcD()</code> functions.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Calc-on-mglFormula"></a><u>Method on mglFormula:</u> <code>float</code> <b>Calc</b><i> (<code>float</code> x, <code>float</code> y=<code>0</code>, <code>float</code> z=<code>0</code>, <code>float</code> u=<code>0</code>)</i></dt>
+<dd><p>Evaluates the formula for <code>'x','r'</code>=<var>x</var>, <code>'y','n'</code>=<var>y</var>, <code>'z','t'</code>=<var>z</var>, <code>'a','u'</code>=<var>u</var>. Error code (if one) can be obtained from function <code>GetError()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Calc-on-mglFormula-1"></a><u>Method on mglFormula:</u> <code>float</code> <b>Calc</b><i> (<code>float</code> x, <code>float</code> y, <code>float</code> z, <code>float</code> u, <code>float</code> v, <code>float</code> w)</i></dt>
+<dd><p>Evaluates the formula for <code>'x'</code>=<var>x</var>, <code>'y'</code>=<var>y</var>, <code>'z'</code>=<var>z</var>, <code>'u'</code>=<var>u</var>, <code>'v'</code>=<var>v</var>, <code>'w'</code>=<var>w</var>. Error code (if one) can be obtained from function <code>GetError()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Calc-on-mglFormula-2"></a><u>Method on mglFormula:</u> <code>float</code> <b>Calc</b><i> (<code>float</code> var<code>['z'-'a'+1]</code>)</i></dt>
+<dd><p>Evaluates the formula for variables in array <var>var</var>[&rsquo;z&rsquo;-&rsquo;a&rsquo;]. Error code (if one) can be obtained from function <code>GetError()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-CalcD-on-mglFormula"></a><u>Method on mglFormula:</u> <code>float</code> <b>CalcD</b><i> (<code>float</code> var<code>['z'-'a'+1]</code>, <code>char</code> diff)</i></dt>
+<dd><p>Evaluates the formula derivation respect to <var>diff</var> for variables in array <var>var</var>[&rsquo;z&rsquo;-&rsquo;a&rsquo;]. Error code (if one) can be obtained from function <code>GetError()</code>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-GetError-on-mglFormula"></a><u>Method on mglFormula:</u> <code>int</code> <b>GetError</b><i> ()</i></dt>
+<dd><p>Returns error code: <code>0</code> means no error; <code>ERR_LOG</code> means error in logarithm or power functions; <code>ERR_ARC</code> means error in inverse functions (like asin); <code>ERR_SQRT</code> means error in sqrt function.
+</p></dd></dl>
+
+<hr size="6">
+<a name="mglFont-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglFormula-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Format-of-font-files" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglFont-class-1"></a>
+<h2 class="section">7.3 mglFont class</h2>
+<a name="index-mglFont"></a>
+
+<p>Class for working with font: load, get metrics, parse and draw strings. This class is defined in <code>#include &lt;mgl/mgl_font.h&gt;</code>.
+</p>
+<p>The class is based on loading and drawing of vector Hershey font. There are two styles of specifying of the font type and aligning: by integer parameters or by string.
+</p>
+<p>The string can be any combination of characters: &lsquo;<samp>rbiLCRwou</samp>&rsquo;. The font types are: &lsquo;<samp>r</samp>&rsquo; &ndash; roman font, &lsquo;<samp>i</samp>&rsquo; &ndash; italic style, &lsquo;<samp>b</samp>&rsquo; &ndash; bold style. By default roman font (that is &lsquo;<samp></samp>&rsquo; or &lsquo;<samp>r</samp>&rsquo;) is used. The align types are: &lsquo;<samp>L</samp>&rsquo; &ndash; align left (default), &lsquo;<samp>C</samp>&rsquo; &ndash; align center, &lsquo;<samp>R</samp>&rsquo; &ndash; align right. Additional font effects are: &lsquo;<samp>w</samp>&rsquo; &ndash; wire, &lsquo;<samp>o</samp>&rsquo; &ndash; over-lined, &lsquo;<samp>u</samp>&rsquo; &ndash; underlined. Parsing of the string to special (TeX-like) commands will be done if variable <var>parse</var> is true (it&rsquo;s default). See also see section <a href="mathgl_ru_1.html#Font-styles">Стиль текста</a>.
+</p>
+<p>The over way of font and alignment setting is the using of the integer constant. Integer font Id can be one of predefined constants: <code>MGL_FONT_ITAL, MGL_FONT_BOLD, MGL_FONT_BOLD_ITAL = MGL_FONT_ITAL+MGL_FONT_BOLD</code>. Default font is <code>MGL_FONT_ROMAN</code>. Also there are flags <code>MGL_FONT_ULINE, MGL_FONT_OLINE, MGL_FONT_WIRE</code> for additional font effects. Align parameter controls the text alignment: 0 &ndash; align left, 1 &ndash; align center, 2 &ndash; align right.
+</p>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Format-of-font-files">7.3.1 Format of font files</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+
+<dl>
+<dt><a name="index-mglFont-on-mglFont"></a><u>Method on mglFont:</u> <code></code> <b>mglFont</b><i> (<code>const char *</code>name=<code>MGL_DEF_FONT_NAME</code>, <code>const char *</code>path=<code>NULL</code>)</i></dt>
+<dd><p>Initialize the font and load data from file <var>name</var> (default name is &quot;STIX&quot; for Linux and MacOS) or if  <var>name</var>=<code>NULL</code> limited data from memory (default for Windows).
+</p></dd></dl>
+<dl>
+<dt><a name="index-Load-on-mglFont"></a><u>Method on mglFont:</u> <code>bool</code> <b>Load</b><i> (<code>const char *</code> base, <code>const char *</code>path=<code>NULL</code>)</i></dt>
+<dd><p>Load font from file <var>path</var>/<var>base</var> into the memory. The font may contain 4 files: <var>base</var>.vfm, <var>base</var>_b.vfm, <var>base</var>_i.vfm, <var>base</var>_bi.vfm. Appendix contain detailed description of font format.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Restore-on-mglFont"></a><u>Method on mglFont:</u> <code>void</code> <b>Restore</b><i> ()</i></dt>
+<dd><p>Restore default font.
+</p></dd></dl>
+<dl>
+<dt><a name="index-_0028-on-mglFont"></a><u>Method on mglFont:</u> <code>void</code> <b>(</b><i><code>mglFont *</code> fnt)</i></dt>
+<dd><p>Copy data from other font instance.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Clear-on-mglFont"></a><u>Method on mglFont:</u> <code>void</code> <b>Clear</b><i> ()</i></dt>
+<dd><p>Clear memory by deleting the loaded font.
+</p></dd></dl>
+<dl>
+<dt><a name="index-GetNumGlyph-on-mglFont"></a><u>Method on mglFont:</u> <code>inline unsigned</code> <b>GetNumGlyph</b><i> ()</i></dt>
+<dd><p>Return the number of glyphs in the font.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Ready-on-mglFont"></a><u>Method on mglFont:</u> <code>inline bool</code> <b>Ready</b><i> ()</i></dt>
+<dd><p>Return true if font is loaded and ready for use.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-Height-on-mglFont"></a><u>Method on mglFont:</u> <code>float</code> <b>Height</b><i> (<code>int</code> font)</i></dt>
+<dd><p>Gets height of text for font specified by integer constant.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Puts-on-mglFont"></a><u>Method on mglFont:</u> <code>float</code> <b>Puts</b><i> (<code>const char *</code>str, <code>int</code> font=<code>0</code>, <code>int</code> align=<code>0</code>)</i></dt>
+<dd><p>Prints 8-bit text string for font specified by integer constant.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Width-on-mglFont"></a><u>Method on mglFont:</u> <code>float</code> <b>Width</b><i> (<code>const char *</code>str, <code>int</code> font=<code>0</code>)</i></dt>
+<dd><p>Gets width of 8-bit text string for font specified by integer constant.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Puts-on-mglFont-1"></a><u>Method on mglFont:</u> <code>float</code> <b>Puts</b><i> (<code>const wchar_t *</code>str, <code>int</code> font=<code>0</code>, <code>int</code> align=<code>0</code>)</i></dt>
+<dd><p>Prints Unicode text string for font specified by integer constant.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Width-on-mglFont-1"></a><u>Method on mglFont:</u> <code>float</code> <b>Width</b><i> (<code>const wchar_t *</code>str, <code>int</code> font=<code>0</code>)</i></dt>
+<dd><p>Gets width of Unicode text string for font specified by integer constant.
+</p></dd></dl>
+
+
+<dl>
+<dt><a name="index-Height-on-mglFont-1"></a><u>Method on mglFont:</u> <code>float</code> <b>Height</b><i> (<code>const char *</code>how)</i></dt>
+<dd><p>Gets height of text for font specified by string.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Puts-on-mglFont-2"></a><u>Method on mglFont:</u> <code>float</code> <b>Puts</b><i> (<code>const char *</code>str, <code>const char *</code>how)</i></dt>
+<dd><p>Prints 8-bit text string for font specified by string.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Width-on-mglFont-2"></a><u>Method on mglFont:</u> <code>float</code> <b>Width</b><i> (<code>const char *</code>str, <code>const char *</code>how)</i></dt>
+<dd><p>Gets width of 8-bit text string for font specified by string.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Puts-on-mglFont-3"></a><u>Method on mglFont:</u> <code>float</code> <b>Puts</b><i> (<code>const wchar_t *</code>str, <code>const char *</code>how)</i></dt>
+<dd><p>Prints Unicode text string for font specified by string.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Width-on-mglFont-3"></a><u>Method on mglFont:</u> <code>float</code> <b>Width</b><i> (<code>const wchar_t *</code>str, <code>const char *</code>how)</i></dt>
+<dd><p>Gets width of Unicode text string for font specified by string.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-gr-of-mglFont"></a><u>Parameter of mglFont:</u> <code>mglGraph *</code> <b>gr</b></dt>
+<dd><p>Instance of mglGraph class which is used for character drawing.
+</p></dd></dl>
+<dl>
+<dt><a name="index-parse-of-mglFont"></a><u>Parameter of mglFont:</u> <code>bool</code> <b>parse</b></dt>
+<dd><p>Flag for switching on/off the parsing of TeX commands. Default value is <code>true</code>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Format-of-font-files"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglFont-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglColor-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglFont-class" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Format-of-font-files-1"></a>
+<h3 class="subsection">7.3.1 Format of font files</h3>
+
+<p>Starting from v.1.6 the MathGL library uses new font files. The font is defined in 4 files with suffixes &lsquo;<samp>*.vfm</samp>&rsquo;, &lsquo;<samp>*_b.vfm</samp>&rsquo;, &lsquo;<samp>*_i.vfm</samp>&rsquo;, &lsquo;<samp>*_bi.vfm</samp>&rsquo;. These files are text files containing the data for roman font, bold font, italic font and bold italic font. The files (or some symbols in the files) for bold, italic or bold italic fonts can be absent. In this case the roman glyph will be used for them. By analogy, if the bold italic font is absent but the bold font is present then bold glyph will be used for bold italic. You may create these font files by yourself from *.ttf, *.otf files with the help of program <code>font_tools</code>. This program can be found at MathGL home site.
+</p>
+<p>The format of font files (*.vfm &ndash; vector font for MathGL) is the following.
+</p><ol>
+<li>
+First string contains human readable comment and is always ignored.
+</li><li>
+Second string contains 3 numbers, delimited by space or tabulation. The order of numbers is the following: <var>numg</var> &ndash; the number of glyphs in the file (integer), <var>fact</var> &ndash; the factor for glyph sizing (float), <var>size</var> &ndash; the size of buffer for glyph description (integer).
+</li><li>
+After it <var>numg</var>-th strings with glyphs description are placed. Each string contains 6 positive numbers, delimited by space of tabulation. The order of numbers is the following: Unicode glyph ID, glyph width, number of lines in glyph, position of lines coordinates in the buffer (length is 2*number of lines), number of triangles in glyph, position of triangles coordinates in the buffer (length is 6*number of triangles).
+</li><li>
+The end of file contains the buffer with point coordinates at lines or triangles vertexes. The size of buffer (the number of integer) is <var>size</var>.
+</li></ol>
+
+<p>Each font file can be compressed by gzip.
+</p>
+<p>Note: the closing contour line  is done automatically (so the last segment may be absent). For starting new contour use a point with coordinates <code>{0x3fff, 0x3fff}</code>.
+</p>
+
+<hr size="6">
+<a name="mglColor-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Format-of-font-files" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglPoint-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglColor-class-1"></a>
+<h2 class="section">7.4 mglColor class</h2>
+<a name="index-mglColor"></a>
+
+<p>Structure for working with colors. This structure is defined in <code>#include &lt;mgl/mgl.h&gt;</code>.
+</p>
+<p>There are two ways to set the color in MathGL. First one is using of float values of red, green and blue channels for precise color definition. The second way is the using of character id. There are a set of characters specifying frequently used colors. Normally capital letter gives more dark color than lowercase one. See section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>.
+</p>
+<dl>
+<dt><a name="index-r_002c-g_002c-b-of-mglVar"></a><u>Parameter of mglVar:</u> <code>float</code> <b>r, g, b</b></dt>
+<dd><p>Reg, green and blue component of color.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-mglColor-on-mglColor"></a><u>Method on mglColor:</u> <code></code> <b>mglColor</b><i> (<code>float</code> R, <code>float</code> G, <code>float</code> B)</i></dt>
+<dd><p>Constructor sets the color by float values of Red, Green and Blue channels.
+</p></dd></dl>
+<dl>
+<dt><a name="index-mglColor-on-mglColor-1"></a><u>Method on mglColor:</u> <code></code> <b>mglColor</b><i> (<code>char</code> c=<code>'k'</code>)</i></dt>
+<dd><p>Constructor sets the color from character id. The black color is used by default.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-on-mglColor"></a><u>Method on mglColor:</u> <code>void</code> <b>Set</b><i> (<code>float</code> R, <code>float</code> G, <code>float</code> B)</i></dt>
+<dd><p>Sets color from values of Red, Green and Blue channels. This values should be in interval [0,1].
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-on-mglColor-1"></a><u>Method on mglColor:</u> <code>void</code> <b>Set</b><i> (<code>mglColor</code> c, <code>float</code> bright=<code>1</code>)</i></dt>
+<dd><p>Sets color as &ldquo;lighted&rdquo; version of color <var>c</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Set-on-mglColor-2"></a><u>Method on mglColor:</u> <code>void</code> <b>Set</b><i> (<code>char</code> p)</i></dt>
+<dd><p>Sets color from symbolic id.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Valid-on-mglColor"></a><u>Method on mglColor:</u> <code>bool</code> <b>Valid</b><i> ()</i></dt>
+<dd><p>Checks correctness of the color.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Norm-on-mglColor"></a><u>Method on mglColor:</u> <code>float</code> <b>Norm</b><i> ()</i></dt>
+<dd><p>Gets maximal of spectral component.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_003d_003d-on-mglColor"></a><u>Method on mglColor:</u> <code>bool</code> <b>operator==</b><i> (<code>const mglColor &amp;</code>c)</i></dt>
+<dd><p>Compare with another color
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002b-3"></a><u>Library Function:</u> inline mglColor <b>operator+</b><i> (<code>const mglColor &amp;</code>a, <code>const mglColor &amp;</code>b)</i></dt>
+<dd><p>Adds colors by its RGB values.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d-3"></a><u>Library Function:</u> inline mglColor <b>operator-</b><i> (<code>const mglColor &amp;</code>a, <code>const mglColor &amp;</code>b)</i></dt>
+<dd><p>Subtracts colors by its RGB values.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-3"></a><u>Library Function:</u> inline mglColor <b>operator*</b><i> (<code>const mglColor &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Multiplies color by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-4"></a><u>Library Function:</u> inline mglColor <b>operator*</b><i> (<code>float</code> a, <code>const mglColor &amp;</code>b)</i></dt>
+<dd><p>Multiplies color by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f-2"></a><u>Library Function:</u> inline mglColor <b>operator/</b><i> (<code>const mglColor &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Divide color by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_0021"></a><u>Library Function:</u> inline mglColor <b>operator!</b><i> (<code>const mglColor &amp;</code>a)</i></dt>
+<dd><p>Return inverted color.
+</p></dd></dl>
+
+<hr size="6">
+<a name="mglPoint-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglColor-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglVar-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglPoint-class-1"></a>
+<h2 class="section">7.5 mglPoint class</h2>
+<a name="index-mglPoint"></a>
+
+<p>Structure describes point in space. This structure is defined in <code>#include &lt;mgl/mgl.h&gt;</code>
+</p>
+<dl>
+<dt><a name="index-x_002c-y_002c-z-of-mglVar"></a><u>Parameter of mglVar:</u> <code>float</code> <b>x, y, z</b></dt>
+<dd><p>Point coordinates. By default all values are zero.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_002b-4"></a><u>Library Function:</u> inline mglPoint <b>operator+</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Point of summation (summation of vectors).
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d-4"></a><u>Library Function:</u> inline mglPoint <b>operator-</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Point of difference (difference of vectors).
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-5"></a><u>Library Function:</u> inline mglPoint <b>operator*</b><i> (<code>float</code> a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Multiplies (scale) points by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002a-6"></a><u>Library Function:</u> inline mglPoint <b>operator*</b><i> (<code>const mglPoint &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Multiplies (scale) points by number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002f-3"></a><u>Library Function:</u> inline mglPoint <b>operator/</b><i> (<code>const mglPoint &amp;</code>a, <code>float</code> b)</i></dt>
+<dd><p>Multiplies (scale) points by number 1/b.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_002d-5"></a><u>Library Function:</u> inline float <b>operator-</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Scalar product of vectors.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_005e"></a><u>Library Function:</u> inline mglPoint <b>operator^</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Cross-product of vectors.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_0026"></a><u>Library Function:</u> inline mglPoint <b>operator&amp;</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>The part of <var>a</var> which is perpendicular to vector <var>b</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_007c"></a><u>Library Function:</u> inline mglPoint <b>operator|</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>The part of <var>a</var> which is parallel to vector <var>b</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_0021-1"></a><u>Library Function:</u> inline mglPoint <b>operator!</b><i> (<code>const mglPoint &amp;</code>a)</i></dt>
+<dd><p>Return vector perpendicular to vector <var>a</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-Norm-2"></a><u>Library Function:</u> inline bool <b>Norm</b><i> (<code>const mglPoint &amp;</code>a)</i></dt>
+<dd><p>Return the norm |<var>a</var>|^2 of vector <var>a</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-operator_003d_003d"></a><u>Library Function:</u> inline bool <b>operator==</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Return true if points are the same.
+</p></dd></dl>
+<dl>
+<dt><a name="index-operator_0021_003d"></a><u>Library Function:</u> inline bool <b>operator!=</b><i> (<code>const mglPoint &amp;</code>a, <code>const mglPoint &amp;</code>b)</i></dt>
+<dd><p>Return true if points are different.
+</p></dd></dl>
+
+<hr size="6">
+<a name="mglVar-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglPoint-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglCommand-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglVar-class-1"></a>
+<h2 class="section">7.6 mglVar class</h2>
+<a name="index-mglVar"></a>
+
+<p>Structure describes variable of type <code>mglData</code> and its name in MGL script. This structure is used by <code>mglParse</code> and is defined in <code>#include &lt;mgl/mgl_parse.h&gt;</code>.
+</p>
+<dl>
+<dt><a name="index-d-of-mglVar"></a><u>Parameter of mglVar:</u> <code>mglData</code> <b>d</b></dt>
+<dd><p>Data itself
+</p></dd></dl>
+<dl>
+<dt><a name="index-s-of-mglVar"></a><u>Parameter of mglVar:</u> <code>wchar_t</code> <b>s</b><i>[256]</i></dt>
+<dd><p>Data name
+</p></dd></dl>
+<dl>
+<dt><a name="index-o-of-mglVar"></a><u>Parameter of mglVar:</u> <code>void *</code> <b>o</b></dt>
+<dd><p>Pointer to external object for function <var>func</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-next-of-mglVar"></a><u>Parameter of mglVar:</u> <code>mglVar *</code> <b>next</b></dt>
+<dd><p>Pointer to next instance in list
+</p></dd></dl>
+<dl>
+<dt><a name="index-prev-of-mglVar"></a><u>Parameter of mglVar:</u> <code>mglVar *</code> <b>prev</b></dt>
+<dd><p>Pointer to prev instance in list
+</p></dd></dl>
+<dl>
+<dt><a name="index-temp-of-mglVar"></a><u>Parameter of mglVar:</u> <code>bool</code> <b>temp</b></dt>
+<dd><p>Flag for temporar variable. Temporal variables will be destroyed after script execution.
+</p></dd></dl>
+<dl>
+<dt><a name="index-func-of-mglVar"></a><u>Parameter of mglVar:</u> <code>void (*</code> <b>func</b><i> <code>)(void *)</code></i></dt>
+<dd><p>Callback function for destroying non-temporal variable.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-MoveAfter-on-mglVar"></a><u>Method on mglVar:</u> <code>void</code> <b>MoveAfter</b><i> (<code>mglVar *</code>var)</i></dt>
+<dd><p>Move variable after <var>var</var> and copy <code>func</code> from <code>var</code> (if <code>func</code> is not 0)
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="mglCommand-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglVar-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#mglArg-class" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglCommand-class-1"></a>
+<h2 class="section">7.7 mglCommand class</h2>
+<a name="index-mglCommand"></a>
+
+<p>Structure describes MGL command, its name, short description, executable and export functions. The structure is used by <code>mglParse</code> and is defined in <code>#include &lt;mgl/mgl_parse.h&gt;</code>.
+</p>
+<dl>
+<dt><a name="index-name-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>const wchar_t *</code> <b>name</b></dt>
+<dd><p>Name of command.
+</p></dd></dl>
+<dl>
+<dt><a name="index-desc-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>const wchar_t *</code> <b>desc</b></dt>
+<dd><p>Short command description (can be NULL).
+</p></dd></dl>
+<dl>
+<dt><a name="index-form-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>const wchar_t *</code> <b>form</b></dt>
+<dd><p>Format of command arguments (can be NULL).
+</p></dd></dl>
+<dl>
+<dt><a name="index-exec-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>int (*</code> <b>exec</b><i> <code>)(mglGraph *gr, long n, mglArg *a, int k[10])const wchar_t *</code></i></dt>
+<dd><p>Function for executing (plotting) the command using grapher <var>gr</var> and having <var>n</var>-th arguments <var>a</var>. Function must return 0 if all is OK; or 1 if arguments are wrong.
+</p></dd></dl>
+<dl>
+<dt><a name="index-save-of-mglCommand"></a><u>Parameter of mglCommand:</u> <code>void (*</code> <b>save</b><i> <code>)(wchar_t out[1024], long n, mglArg *a, int k[10])const wchar_t *</code></i></dt>
+<dd><p>Function for exporting in C++ (can be NULL).
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="mglArg-class"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#mglCommand-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-classes" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="mglArg-class-1"></a>
+<h2 class="section">7.8 mglArg class</h2>
+<a name="index-mglArg"></a>
+
+<p>Structure describes arguments of functions in the stucture <code>mglCommand</code>. It is defined in <code>#include &lt;mgl/mgl_parse.h&gt;</code>.
+</p>
+<dl>
+<dt><a name="index-type-of-mglArg"></a><u>Parameter of mglArg:</u> <code>int</code> <b>type</b></dt>
+<dd><p>Type of argument: 0-data, 1-string, 2-number.
+</p></dd></dl>
+<dl>
+<dt><a name="index-d-of-mglArg"></a><u>Parameter of mglArg:</u> <code>mglData *</code> <b>d</b></dt>
+<dd><p>Pointer to data (used if type=0).
+</p></dd></dl>
+<dl>
+<dt><a name="index-w-of-mglArg"></a><u>Parameter of mglArg:</u> <code>wchar_t</code> <b>w</b><i>[2048]</i></dt>
+<dd><p>String with parameters (used if type=1 or if type=0 as variable name).
+</p></dd></dl>
+<dl>
+<dt><a name="index-s-of-mglArg"></a><u>Parameter of mglArg:</u> <code>char</code> <b>s</b><i>[2048]</i></dt>
+<dd><p>String with parameters (used if type=1).
+</p></dd></dl>
+<dl>
+<dt><a name="index-v-of-mglArg"></a><u>Parameter of mglArg:</u> <code>float</code> <b>v</b></dt>
+<dd><p>Numerical value (used if type==2)
+</p></dd></dl>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_ru.html/mathgl_ru_8.html b/texinfo/mathgl_ru.html/mathgl_ru_8.html
new file mode 100644
index 0000000..0d1f712
--- /dev/null
+++ b/texinfo/mathgl_ru.html/mathgl_ru_8.html
@@ -0,0 +1,2895 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: 8. Язык MGL</title>
+
+<meta name="description" content="MathGL 1.11: 8. Язык MGL">
+<meta name="keywords" content="MathGL 1.11: 8. Язык MGL">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="MGL-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_7.html#mglArg-class" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_7.html#Other-classes" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="YA_0437_044b_043a-MGL"></a>
+<h1 class="chapter">8. Язык MGL</h1>
+
+<p>MathGL имеет встроенный скриптовый язык MGL для обработки и отображения данных. Скрипты MGL можно использовать как независимо (программами UDAV, mgl2png, mgl2eps, mgl2svg и пр., see section <a href="#Utilities">Утилиты для MGL</a>) так и вызовами библиотеки.
+</p>
+<p>Язык MGL достаточно простой. Каждая строка &ndash; отдельная команда. Первое слово &ndash; имя команды, а все остальные ее аргументы. Команда может иметь до 1000 аргументов (по крайней мере сейчас). Слова разделяются одно от другого пробелом или символом табуляции. Различий между верхним и нижним индексом нет, т.е. переменные <var>a</var> и <var>A</var> идентичны. Символ &lsquo;<samp>#</samp>&rsquo; начинает комментарий &ndash; все символы после него игнорируются до конца строки. Исключением является случай, когда &lsquo;<samp>#</samp>&rsquo; входит в строку. Опции команды указываются после символа &lsquo;<samp>;</samp>&rsquo; (see section <a href="#Command-options-_0028MGL_0029">Опции команд (MGL)</a>). Символ &lsquo;<samp>:</samp>&rsquo; начинает новую команду (подобно переводу строки) если он расположен не внутри скобок или строки.
+</p>
+<p>Если строка содержит ссылки на внешние параметры (&lsquo;<samp>$0</samp>&rsquo;, &lsquo;<samp>$1</samp>&rsquo; ... &lsquo;<samp>$9</samp>&rsquo;) или макроопределения (&lsquo;<samp>$a</samp>&rsquo;, &lsquo;<samp>$b</samp>&rsquo; ... &lsquo;<samp>$z</samp>&rsquo;), то текущие значения параметров/макроопределений подставляются в строку вместо ссылки до выполнением команды. Это позволяет использовать один и тот же скрипт при различных входных параметрах командной строки или вводить макроопределения по ходу исполнения команд скрипта.
+</p>
+<p>Аргументы команды могут быть строками, переменными или числами. 
+</p><ul>
+<li> 
+Строка &ndash; произвольный набор символов между метками &lsquo;<samp>'</samp>&rsquo;.
+
+</li><li> 
+Обычно переменная имеет имя, состоящее из букв и чисел (должно начинаться с буквы и не быть длиннее 64 символов). В качестве переменной можно использовать временные массивы, включающие в себя:
+<ul>
+<li> 
+срезы (&ldquo;подмассивы&rdquo;) массивов данных (подобно команде <a href="#subdata">subdata</a>). Например, <code>a(1)</code> или <code>a(1,:)</code> или <code>a(1,:,:)</code> &ndash; вторая строка массива <var>a</var>, <code>a(:,2)</code> или <code>a(:,2,:)</code> &ndash; третий столбец, <code>a(:,:,0)</code> &ndash; первый срез и т.д. Также можно выделить часть массива с m-го по n-ый элемент <code>a(m:n,:,:)</code> или просто <code>a(m:n)</code>.
+
+</li><li> 
+произвольные комбинации столбцов данных (например, <code>a('n*w^2/exp(t)')</code>), если столбцы данных были именованы командой <a href="#idset">idset</a> или в файле данных (в строке начинающейся с <code>##</code>).
+
+</li><li> 
+произвольное выражение из существующих переменных и констант. Например, &lsquo;<samp>sqrt(dat(:,5)+1)</samp>&rsquo; даст временный массив данных с элементами равными <code>tmp[i,j] = sqrt(dat[i,5,j]+1)</code>.
+
+</li><li> 
+массивы с элементами заданными в квадратных скобках [], разделенные &lsquo;<samp>,</samp>&rsquo;. При этом внутри выражения не должно быть пробелов! Например, &lsquo;<samp>[1,2,3]</samp>&rsquo; даст временный массив из 3 элементов {1, 2, 3}; &lsquo;<samp>[[11,12],[21,22]]</samp>&rsquo; даст матрицу 2*2 и т.д. Элементами такой конструкции могут быть и массивы если их размерности одинаковые, например &lsquo;<samp>[v1,v2,...,vn]</samp>&rsquo;.
+
+</li><li> 
+результат команд построения новых данных (see section <a href="mathgl_ru_6.html#Make-another-data">Создание новых данных</a>), если они заключены в фигурные скобки {}. Например, &lsquo;<samp>{sum dat 'x'}</samp>&rsquo; даст временный массив, который есть результат суммирования <var>dat</var> вдоль &rsquo;x&rsquo;. Это такой же массив как и <var>tmp</var>, полученный командой &lsquo;<samp>sum tmp dat 'x'</samp>&rsquo;. При этом можно использовать вложенные конструкции, например &lsquo;<samp>{sum {max dat 'z'} 'x'}</samp>&rsquo;.
+</li></ul>
+<p>Временные массивы не могут стоять в качестве первого аргумента команд, создающих массивы (например, &lsquo;<samp>new</samp>&rsquo;, &lsquo;<samp>read</samp>&rsquo;, &lsquo;<samp>hist</samp>&rsquo; и т.д.).
+</p>
+</li><li> 
+К скалярным переменным, кроме собственно чисел, относятся: специальные переменные <code>nan=#QNAN, pi=3.1415926..., on=1, off=0, :=-1</code>, переменные с суффиксами (see section <a href="#Suffixes">Суффиксы переменных</a>), переменные определенные командой <a href="#define">define</a>. Также массивы размером 1x1x1 считаются скалярами (например, &lsquo;<samp>pi/dat.nx</samp>&rsquo;).
+</li></ul>
+<p>Перед первым использованием все переменные должны быть определены с помощью команд, создающих массивы (<a href="#new">new</a>, <a href="#var">var</a>, <a href="#list">list</a>, <a href="#copy">copy</a>, <a href="#read">read</a>, <a href="#hist">hist</a>, <a href="#sum">sum</a> и др., see section <a href="#Data-create-_0028MGL_0029">Создание данных (MGL)</a> и <a href="#Make-another-data-_0028MGL_0029">Создание новых данных (MGL)</a>). 
+</p>
+<p>Команды могут иметь несколько наборов аргументов (например, <code>plot ydat</code> и <code>plot xdat ydat</code>). Все аргументы команды для выбранного набора должны быть указаны, однако часть из них могут иметь значения по умолчанию. Такие аргументы в описании команд будут помещены в квадратные скобки [], например <code>plot ydat ['stl'='' zval=nan]</code>. При этом запись <code>[arg1 arg2 arg3 ...]</code> подразумевает <code>[arg1 [arg2 [arg3 ...]]]</code>, т.е. опускать можно только аргументы с конца, если вы согласны с их значениями по умолчанию. Например, <code>plot ydat '' 1</code> или <code>plot ydat ''</code> правильно, а <code>plot ydat 1</code> не правильно (аргумент <code>'stl'</code> пропущен).
+</p>
+<p>Все команды MGL можно разделить на несколько групп. В дальнейшем будет использованы следующие обозначения при описании команд: имя команды выделено жирным, строки заключены в одинарные кавычки &rdquo;, переменные выделены курсивом, числа (скаляры) выделены моноширинным шрифтом. Необязательные аргументы будут помещены в квадратные скобки [] и показаны их значения по умолчанию. Подробную информацию о цвете и стиле линий (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>), цветовых схемах (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>), стиле текста и символах TeX (see section <a href="mathgl_ru_1.html#Font-styles">Стиль текста</a>), текстовых формулах (see section <a href="mathgl_ru_1.html#Textual-formulas">Текстовые формулы</a>) можно найти в соответствующих разделах.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Graphics-setup-_0028MGL_0029">8.1 Настройка графика (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transformation-matrix-_0028MGL_0029">8.3 Матрица преобразования (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Export-to-file-_0028MGL_0029">8.4 Экспорт в файл (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing-_0028MGL_0029">8.6 Вывод текста (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Legend-_0028MGL_0029">8.8 Легенда (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting-_0028MGL_0029">8.12 Парные графики (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-fields-_0028MGL_0029">8.13 Векторные поля (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-create-_0028MGL_0029">8.16 Создание данных (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-filling-_0028MGL_0029">8.17 Заполнение данных (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Rearrange-data-_0028MGL_0029">8.18 Изменение размеров данных (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Operators-_0028MGL_0029">8.22 Операторы (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Suffixes">8.25 Суффиксы переменных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Utilities">8.26 Утилиты для MGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+</table>
+
+
+<hr size="6">
+<a name="Graphics-setup-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparency-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041d_0430_0441_0442_0440_043e_0439_043a_0430-g_0440_0430_0444_0438_043a_0430-_0028MGL_0029"></a>
+<h2 class="section">8.1 Настройка графика (MGL)</h2>
+
+<p>Команды в этой группе влияют на вид всего рисунка. Соответственно они должны располагаться <em>перед</em> вызовом функций непосредственно рисующих графики.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Transparency-_0028MGL_0029">8.1.1 Прозрачность (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lighting-_0028MGL_0029">8.1.2 Освещение (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fog-_0028MGL_0029">8.1.3 Туман (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Default-sizes-_0028MGL_0029">8.1.4 Базовые размеры (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Zooming-_0028MGL_0029">8.1.5 Масштабирование (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cutting-_0028MGL_0029">8.1.6 Обрезание (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-settings-_0028MGL_0029">8.1.7 Прочие настройки (MGL)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Transparency-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lighting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x-_0028MGL_0029"></a>
+<h3 class="subsection">8.1.1 Прозрачность (MGL)</h3>
+
+<p>Эти команды настраивают тип и степень прозрачности поверхностей. Главной является функция <a href="#alpha">alpha</a>, которая включает/выключает прозрачность для всех графиков, созданных после вызова <a href="#alpha">alpha</a>. Функция <a href="#alphadef">alphadef</a> устанавливает величину alpha-канала по умолчанию. Прозрачность можно выключить для отдельного графика с помощью <a href="#transparent">transparent</a>. Наконец, функция <a href="#transptype">transptype</a> задает тип прозрачности. См. раздел <a href="mathgl_ru_9.html#Transparent-surface-sample">Transparent surface &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<a name="index-alpha"></a>
+<p><a name="alpha"></a>
+</p><dl>
+<dt><a name="index-alpha-1"></a><u>Команда MGL:</u> <b>alpha</b><i> <code>[val=on]</code></i></dt>
+<dd><p>Включает/выключает прозрачность для <em>всего</em> рисунка. По умолчанию прозрачность выключена. Используйте <code>transparent off</code> для конкретного графика для выключения прозрачности.
+</p></dd></dl>
+<a name="index-alphadef"></a>
+<p><a name="alphadef"></a>
+</p><dl>
+<dt><a name="index-alphadef-1"></a><u>Команда MGL:</u> <b>alphadef</b><i> <code>val</code></i></dt>
+<dd><p>Задает значение прозрачности по умолчанию для всех графиков. Начальное значение 0.5.
+</p></dd></dl>
+<a name="index-transparent"></a>
+<p><a name="transparent"></a>
+</p><dl>
+<dt><a name="index-transparent-1"></a><u>Команда MGL:</u> <b>transparent</b><i> <code>val</code></i></dt>
+<dd><p>Временно включает/возвращает прозрачность графиков.
+</p></dd></dl>
+<a name="index-transptype"></a>
+<p><a name="transptype"></a>
+</p><dl>
+<dt><a name="index-transptype-1"></a><u>Команда MGL:</u> <b>transptype</b><i> <code>val</code></i></dt>
+<dd><p>Задает тип прозрачности. Обычная прозрачность (&lsquo;<samp>0</samp>&rsquo;) &ndash; &quot;закрытые&quot; объекты видны меньше чем закрывающие. &quot;Стеклянная&quot; прозрачность (&lsquo;<samp>1</samp>&rsquo;) &ndash; закрытые и закрывающие объекты единообразно ослабляют интенсивность света (по RGB каналам). &quot;Ламповая&quot; прозрачность (&lsquo;<samp>2</samp>&rsquo;) &ndash; закрытые и закрывающие объекты являются источниками дополнительного освещения (рекомендую установить <code>alphadef 0.3</code> или меньше в этом случае). See section <a href="mathgl_ru_9.html#Normal-transparency">Обычная прозрачность</a>, <a href="mathgl_ru_9.html#Glass_002dlike-transparency">&quot;Стеклянная&quot; прозрачность</a>, <a href="mathgl_ru_9.html#Lamp_002dlike-transparency">&quot;Ламповая&quot; прозрачность</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Lighting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparency-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fog-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_0432e_0449e_043d_0438e-_0028MGL_0029"></a>
+<h3 class="subsection">8.1.2 Освещение (MGL)</h3>
+
+<p>Эти функции настраивают освещение графика. Главная функция <a href="#light">light</a> включает/выключает освещение графиков построенных после ее вызова. MathGL  поддерживает до 10 независимых источников света. Положение, цвет, яркость каждого источника света можно задавать по отдельности. По умолчанию включен только первый (с порядковым номером <code>0</code>) источник света белого цвета, расположенный сверху.
+</p>
+<a name="index-light"></a>
+<p><a name="light"></a>
+</p><dl>
+<dt><a name="index-light-1"></a><u>Команда MGL:</u> <b>light</b><i> <code>[val=on]</code></i></dt>
+<dd><p>Включает/выключает освещение графика. По умолчанию освещение выключено.
+</p></dd></dl>
+<dl>
+<dt><a name="index-light-2"></a><u>Команда MGL:</u> <b>light</b><i> <code>n val</code></i></dt>
+<dd><p>Включает/выключает <var>n</var>-ый источник света.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-light-3"></a><u>Команда MGL:</u> <b>light</b><i> <code>n xpos ypos zpos</code> ['col'='w' <code>br=0.5</code>]</i></dt>
+<dd><p>Добавляет источник света с номером <var>n</var> в положение {<var>xpos</var>, <var>ypos</var>, <var>zpos</var>} с цветом <var>col</var> и яркостью <var>br</var>, которая должна быть в диапазоне [0,1].
+</p></dd></dl>
+
+<a name="index-ambient"></a>
+<p><a name="ambient"></a>
+</p><dl>
+<dt><a name="index-ambient-1"></a><u>Команда MGL:</u> <b>ambient</b><i> <code>val</code></i></dt>
+<dd><p>Задает яркость рассеянного освещения. Значение должно быть в диапазоне [0,1].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fog-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lighting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Default-sizes-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0422_0443_043c_0430_043d-_0028MGL_0029"></a>
+<h3 class="subsection">8.1.3 Туман (MGL)</h3>
+
+<a name="index-fog"></a>
+<p><a name="fog"></a>
+</p><dl>
+<dt><a name="index-fog-1"></a><u>Команда MGL:</u> <b>fog</b><i> <code>val [dz=0.25]</code></i></dt>
+<dd><p>Имитирует туман на графике. Туман начинается на относительном расстоянии <var>dz</var> от точки обзора и его плотность растет экспоненциально вглубь по закону ~<em>1-exp(-d*z)</em>. Здесь <em>z</em> &ndash; нормализованная на 1 глубина графика. Если <var>d</var>=<code>0</code> то туман отсутствует. См. раздел <a href="mathgl_ru_9.html#Surface-in-fog-sample">Surface in fog &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Default-sizes-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fog-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Zooming-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0411_0430_0437_043e_0432_044be-_0440_0430_0437_043ce_0440_044b-_0028MGL_0029"></a>
+<h3 class="subsection">8.1.4 Базовые размеры (MGL)</h3>
+
+<p>Эти команды задают величины большинства параметров графика, включая размеры маркеров, стрелок, толщину линий и т.д. Как и любые другие настройки, они подействуют только на графики созданные после изменения настроек.
+</p>
+<a name="index-barwidth"></a>
+<p><a name="barwidth"></a>
+</p><dl>
+<dt><a name="index-barwidth-1"></a><u>Команда MGL:</u> <b>barwidth</b><i> <code>val</code></i></dt>
+<dd><p>Относительный размер прямоугольников в <code>bars, barh, boxplot</code>. Значение по умолчанию <code>0.7</code>.
+</p></dd></dl>
+
+<a name="index-marksize"></a>
+<p><a name="marksize"></a>
+</p><dl>
+<dt><a name="index-marksize-1"></a><u>Команда MGL:</u> <b>marksize</b><i> <code>val</code></i></dt>
+<dd><p>Размер маркеров для <a href="mathgl_ru_3.html#g_t1D-plotting">1D графики</a>. Значение по умолчанию <code>1</code>.
+</p></dd></dl>
+
+<a name="index-arrowsize"></a>
+<p><a name="arrowsize"></a>
+</p><dl>
+<dt><a name="index-arrowsize-1"></a><u>Команда MGL:</u> <b>arrowsize</b><i> <code>val</code></i></dt>
+<dd><p>Размер стрелок для <a href="mathgl_ru_3.html#g_t1D-plotting">1D графики</a>, линий и кривых (see section <a href="mathgl_ru_3.html#Primitives-drawing">Рисование примитивов</a>). Значение по умолчанию <code>1</code>.
+</p></dd></dl>
+
+<a name="index-linewidth"></a>
+<p><a name="linewidth"></a>
+</p><dl>
+<dt><a name="index-linewidth-1"></a><u>Команда MGL:</u> <b>linewidth</b><i> <code>val</code></i></dt>
+<dd><p>Базовая толщина линий. Значения &lt;1 игнорируются. Для значений &gt;1 реальная толщина получается перемножением указанной ширины линии на данное значение. Увеличение ширины линии актуально для больших растровых рисунков. Значение по умолчанию <code>1</code>.
+</p></dd></dl>
+
+<a name="index-ticklen"></a>
+<p><a name="ticklen"></a>
+</p><dl>
+<dt><a name="index-ticklen-1"></a><u>Команда MGL:</u> <b>ticklen</b><i> <code>val</code> [<code>stt=1</code>]</i></dt>
+<dd><p>Относительная длина меток осей координат. Значение по умолчанию <code>0.1</code>. Параметр <var>stt</var>&gt;0 задает относительную длину подметок, которые в <code>sqrt(1+stt)</code> раз меньше.
+</p></dd></dl>
+
+<a name="index-tickstl"></a>
+<p><a name="tickstl"></a>
+</p><dl>
+<dt><a name="index-tickstl-1"></a><u>Команда MGL:</u> <b>tickstl</b><i> 'stl' ['sub'='']</i></dt>
+<dd><p>Стиль меток (<var>stl</var>) и подметок (<var>sub</var>) осей координат. Если <code>stl=''</code>, то используется стиль по умолчанию (&lsquo;<samp>k</samp>&rsquo; или &lsquo;<samp>w</samp>&rsquo; в зависимости от типа прозрачности). Если <code>sub=''</code>, то используется стиль меток (т.е. <var>stl</var>).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Zooming-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Default-sizes-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cutting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041c_0430_0441_0448_0442_0430_0431_0438_0440_043e_0432_0430_043d_0438e-_0028MGL_0029"></a>
+<h3 class="subsection">8.1.5 Масштабирование (MGL)</h3>
+
+<p>Эти команды управляют масштабированием всего рисунка (<a href="#zoom">zoom</a>) или отдельной картинки (<a href="#plotfactor">plotfactor</a>). Обычно эти функции используются для удаления пустого места вокруг графиков.
+</p>
+<a name="index-plotfactor"></a>
+<p><a name="plotfactor"></a>
+</p><dl>
+<dt><a name="index-plotfactor-1"></a><u>Команда MGL:</u> <b>plotfactor</b><i> <code>val</code></i></dt>
+<dd><p>Масштаб картинки (значение должно быть больше 1). Не рекомендуется устанавливать значения меньше 1.5. Это аналог <a href="#zoom">zoom</a>, но применяется только к конкретной картинке, заданной <a href="#inplot">inplot</a>. Используйте ноль для включения автоматического масштабирования.
+</p></dd></dl>
+
+<a name="index-zoom"></a>
+<p><a name="zoom"></a>
+</p><dl>
+<dt><a name="index-zoom-1"></a><u>Команда MGL:</u> <b>zoom</b><i> <code>x1 y1 x2 y2</code></i></dt>
+<dd><p>Масштабирует весь рисунок. После вызова функции текущий график будет очищен и в дальнейшем рисунок будет содержать только область [x1,x2]*[y1,y2] от исходного рисунка. Координаты <var>x1</var>, <var>x2</var>, <var>y1</var>, <var>y2</var> меняются в диапазоне от 0 до 1. Внимание! эти настройки не могут быть переписаны никакими другими функциями. Используйте <code>zoom 0 0 1 1</code> для перехода в масштаб по умолчанию.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cutting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Zooming-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-settings-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0431_0440e_0437_0430_043d_0438e-_0028MGL_0029"></a>
+<h3 class="subsection">8.1.6 Обрезание (MGL)</h3>
+
+<p>Эти команды задают условия когда точка будет исключена (вырезана) из рисования. Замечу, что все точки со значением(-ями) <code>nan</code> по одной из координат или амплитуде автоматически исключаются из рисования.
+</p>
+<a name="index-cut"></a>
+<p><a name="cut"></a>
+</p><dl>
+<dt><a name="index-cut-1"></a><u>Команда MGL:</u> <b>cut</b><i> <code>val</code></i></dt>
+<dd><p>Задает обрезание точек за пределами осей координат. Если <code>on</code> то такие точки исключаются из рисования (это по умолчанию) иначе они проецируются на ограничивающий прямоугольник.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cut-2"></a><u>Команда MGL:</u> <b>cut</b><i> <code>x1 y1 z1 x2 y2 z2</code></i></dt>
+<dd><p>Задает границы параллелепипеда внутри которого точки не рисуются. Если границы одинаковы (переменные равны), то параллелепипеда считается пустым. См. раздел <a href="mathgl_ru_9.html#CutMinMax-sample">CutMinMax &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cut-3"></a><u>Команда MGL:</u> <b>cut</b><i> 'cond'</i></dt>
+<dd><p>Задает условие обрезания по формуле <var>cond</var>. Это условие исключает точки из рисования если результат вычисления формулы не равен нулю. Установите аргумент <code>''</code> для выключения условия обрезания. См. раздел <a href="mathgl_ru_9.html#CutOff-sample">CutOff &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Other-settings-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cutting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup-_0028MGL_0029" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043e_0447_0438e-_043d_0430_0441_0442_0440_043e_0439_043a_0438-_0028MGL_0029"></a>
+<h3 class="subsection">8.1.7 Прочие настройки (MGL)</h3>
+
+<a name="index-font"></a>
+<p><a name="font"></a>
+</p><dl>
+<dt><a name="index-font-1"></a><u>Команда MGL:</u> <b>font</b><i> 'fnt' [<code>val=6</code>]</i></dt>
+<dd><p>Задает стиль и размер шрифта (see section <a href="mathgl_ru_3.html#Text-printing">Вывод текста</a>). Вначале используется &lsquo;<samp>rC</samp>&rsquo; &ndash; прямой шрифт с выравниванием по центру. По умолчанию размер подписей оси координат в 1.4 раза больше.
+</p></dd></dl>
+
+<a name="index-rotatetext"></a>
+<p><a name="rotatetext"></a>
+</p><dl>
+<dt><a name="index-rotatetext-1"></a><u>Команда MGL:</u> <b>rotatetext</b><i> <code>val</code></i></dt>
+<dd><p>Включает/выключает вращение меток и подписей осей координат вдоль оси. Начальное значение <code>on</code>.
+</p></dd></dl>
+
+<a name="index-palette"></a>
+<p><a name="palette"></a>
+</p><dl>
+<dt><a name="index-palette-1"></a><u>Команда MGL:</u> <b>palette</b><i> 'colors'</i></dt>
+<dd><p>Задает палитру как последовательность цветов. Значение по умолчанию <code>&quot;Hbgrcmyhlnqeup&quot;</code>, что соответствует цветам: темно серый &lsquo;<samp>H</samp>&rsquo;, синий &lsquo;<samp>b</samp>&rsquo;, зеленый &lsquo;<samp>g</samp>&rsquo;, красный &lsquo;<samp>r</samp>&rsquo;, голубой &lsquo;<samp>c</samp>&rsquo;, малиновый &lsquo;<samp>m</samp>&rsquo;, желтый &lsquo;<samp>y</samp>&rsquo;, серый &lsquo;<samp>h</samp>&rsquo;, сине-зеленый  &lsquo;<samp>l</samp>&rsquo;, небесно-голубой &lsquo;<samp>n</samp>&rsquo;, оранжевый &lsquo;<samp>q</samp>&rsquo;, желто-зеленый &lsquo;<samp>e</samp>&rsquo;, сине-фиолетовый &lsquo;<samp>u</samp>&rsquo;, фиолетовый &lsquo;<samp>p</samp>&rsquo;. Палитра в основном используется в 1D графиках (see section <a href="mathgl_ru_3.html#g_t1D-plotting">1D графики</a>) для кривых с неопределенным стилем линии.
+</p></dd></dl>
+
+<a name="index-meshnum"></a>
+<p><a name="meshnum"></a>
+</p><dl>
+<dt><a name="index-meshnum-1"></a><u>Команда MGL:</u> <b>meshnum</b><i> <code>num</code></i></dt>
+<dd><p>Задает ориентировочное число линий в <a href="#mesh">mesh</a>, <a href="#fall">fall</a>, <a href="#grid">grid</a>, число стрелок (штрихов) в <a href="#vect">vect</a>, <a href="#dew">dew</a> и число ячеек в <a href="#cloud">cloud</a>. По умолчанию (=0) рисуются все линии, стрелки, ячейки.
+</p></dd></dl>
+
+<a name="index-axialdir"></a>
+<p><a name="axialdir"></a>
+</p><dl>
+<dt><a name="index-axialdir-1"></a><u>Команда MGL:</u> <b>axialdir</b><i> 'dir'</i></dt>
+<dd><p>Задает ось вращения для <a href="#axial">axial</a>, <a href="#torus">torus</a>. По умолчанию это &rsquo;z&rsquo;.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axis-settings-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-settings-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transformation-matrix-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0430_0440_0430_043ce_0442_0440_044b-_043e_0441e_0439-_043a_043e_043e_0440_0434_0438_043d_0430_0442-_0028MGL_0029"></a>
+<h2 class="section">8.2 Параметры осей координат (MGL)</h2>
+
+<p>Этот большой набор команд определяет вид осей и меток координат. Перед построением для каждой точки выполняются 3 преобразования: сначала определяется возможность рисования точки (see section <a href="#Cutting-_0028MGL_0029">Обрезание (MGL)</a>), далее применяются формулы перехода к криволинейным координатам и наконец точка отображается.
+</p>
+<a name="index-axis"></a>
+<p><a name="axis"></a>
+</p><dl>
+<dt><a name="index-axis-1"></a><u>Команда MGL:</u> <b>axis</b><i> <code>x1 y1 x2 y2</code></i></dt>
+<dt><a name="index-axis-2"></a><u>Команда MGL:</u> <b>axis</b><i> <code>x1 y1 z1 x2 y2 z2</code></i></dt>
+<dd><a name="index-ranges"></a>
+<p><a name="ranges"></a>
+</p></dd><dt><a name="index-ranges-1"></a><u>Команда MGL:</u> <b>ranges</b><i> <code>x1 x2 y1 y2 [z1=0 z2=0]</code></i></dt>
+<dd><p>Задает диапазон изменения координат. Если минимальное и максимальное значение координаты равны, то они игнорируются по данному направлению. Также устанавливает размер цветовой шкалы, аналогично команде  <code>caxis z1 z2</code>. Начальные диапазоны равны [-1, 1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axis-3"></a><u>Команда MGL:</u> <b>axis</b><i> 'fx' 'fy' ['fz'='' 'fa'='']</i></dt>
+<dd><p>Задает формулы перехода к криволинейным координатам. Каждая строка является математическим выражением, зависящим от старых координат &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; и &lsquo;<samp>a</samp>&rsquo; или &lsquo;<samp>c</samp>&rsquo; для цветовой шкалы. Например, для цилиндрических координат будет <code>axis 'x*cos(y)' 'x*sin(y)' 'z'</code>. Для удаления формул соответствующий параметр должен быть пустым <code>''</code>. Использование формул преобразования слегка замедляет программу, т.е.. <code>axis '' '' ''</code> быстрее чем <code>axis '1*x' '1*y' '1*z'</code>. Параметр <var>fa</var> задает аналогичную формулу для цветовой шкалы. See section <a href="mathgl_ru_1.html#Textual-formulas">Текстовые формулы</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axis-4"></a><u>Команда MGL:</u> <b>axis</b><i> <code>how</code></i></dt>
+<dd><p>Устанавливает одну из предопределенных систем криволинейных координат в зависимости от параметра <var>how</var>: &lsquo;<samp>0</samp>&rsquo; &ndash; декартова система (нет преобразования координат, наиболее быстрая); &lsquo;<samp>1</samp>&rsquo; &ndash; полярные координаты <em>x_n=x*cos(y),y_n=x*sin(y), z_n=z</em>; &lsquo;<samp>2</samp>&rsquo; &ndash; сферические координаты <em>x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y)</em>; &lsquo;<samp>3</samp>&rsquo; &ndash; параболические координаты <em>x_n=x*y, y_n=(x*x-y*y)/2, z_n=z</em>; &lsquo;<samp>4</samp>&rsquo; &ndash; Paraboloidal coordinates <em>x_n=(x*x-y*y)*cos(z)/2, y_n=(x*x-y*y)*sin(z)/2, z_n=x*y</em>; &lsquo;<samp>5</samp>&rsquo; &ndash; Oblate coordinates <em>x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z), z_n=sinh(x)*sin(y)</em>; &lsquo;<samp>6</samp>&rsquo; &ndash; Prolate coordinates <em>x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z), z_n=cosh(x)*cos(y)</em>; &lsquo;<samp>7</samp>&rsquo; &ndash; эллиптические координаты <em>x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z</em>; &lsquo;<samp>8</samp>&rsquo; &ndash; тороидальные координаты <em>x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)), y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y))</em>; &lsquo;<samp>9</samp>&rsquo; &ndash; бисферические координаты <em>x_n=sin(y)*cos(z)/(cosh(x)-cos(y)), y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y))</em>; &lsquo;<samp>10</samp>&rsquo; &ndash; биполярные координаты <em>x_n=sinh(x)/(cosh(x)-cos(y)), y_n=sin(y)/(cosh(x)-cos(y)), z_n=z</em>.
+</p></dd></dl>
+
+<a name="index-caxis"></a>
+<p><a name="caxis"></a>
+</p><dl>
+<dt><a name="index-caxis-1"></a><u>Команда MGL:</u> <b>caxis</b><i> <code>z1 z2</code></i></dt>
+<dd><p>Задает масштаб цветовой шкалы (c-координаты). Эти значения используются для определения цвета поверхностей и прочих 2D и 3D графиков. Начальный диапазон равен [-1, 1].
+</p></dd></dl>
+
+<a name="index-origin"></a>
+<p><a name="origin"></a>
+</p><dl>
+<dt><a name="index-origin-1"></a><u>Команда MGL:</u> <b>origin</b><i> <code>x0 y0 [z0=nan]</code></i></dt>
+<dd><p>Задает центр пересечения осей координат. Если одно из значений равно <code>nan</code>, то выбрается оптимальное положение осей координат по этому направлению.
+</p></dd></dl>
+
+<a name="index-ternary"></a>
+<p><a name="ternary"></a>
+</p><dl>
+<dt><a name="index-ternary-1"></a><u>Команда MGL:</u> <b>ternary</b><i> <code>val</code></i></dt>
+<dd><p>Задает рисование треугольных (Ternary) осей координат. Это специальный тип графика для 3 зависимых координат (компонент) <var>a</var>, <var>b</var>, <var>c</var> таких, что <var>a</var>+<var>b</var>+<var>c</var>=1. MathGL использует только 2 независимые координаты <var>a</var>=x и <var>b</var>=y поскольку их достаточно для построения всех графиков. При этом третья координата z является независимым параметром для построения линий уровня, поверхностей и т.д. См. раздел <a href="mathgl_ru_9.html#Ternary-plot-sample">Ternary plot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-xrange"></a>
+<p><a name="xrange"></a>
+</p><dl>
+<dt><a name="index-xrange-1"></a><u>Команда MGL:</u> <b>xrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-yrange"></a>
+<p><a name="yrange"></a>
+</p></dd><dt><a name="index-yrange-1"></a><u>Команда MGL:</u> <b>yrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-zrange"></a>
+<p><a name="zrange"></a>
+</p></dd><dt><a name="index-zrange-1"></a><u>Команда MGL:</u> <b>zrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-crange"></a>
+<p><a name="crange"></a>
+</p></dd><dt><a name="index-crange-1"></a><u>Команда MGL:</u> <b>crange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><p>Задает диапазон изменения x-,y-,z-,c- координат как минимальное и максимальное значение массива <var>dat</var>. Параметр <var>add</var> указывает добавлять новый диапазон к существующему или заменять его. Параметр <var>fact</var> дополнительно расширяет диапазон на величину (<var>Max</var>-<var>Min</var>)*<var>fact</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xrange-2"></a><u>Команда MGL:</u> <b>xrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-yrange-2"></a><u>Команда MGL:</u> <b>yrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-zrange-2"></a><u>Команда MGL:</u> <b>zrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-crange-2"></a><u>Команда MGL:</u> <b>crange</b><i> <code>x1 x2</code></i></dt>
+<dd><p>Задает диапазон изменения x-,y-,z-,c- координат. См. также <a href="#axis">axis</a>.
+</p></dd></dl>
+
+<a name="index-xtick"></a>
+<p><a name="xtick"></a>
+</p><dl>
+<dt><a name="index-xtick-1"></a><u>Команда MGL:</u> <b>xtick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ytick"></a>
+<p><a name="ytick"></a>
+</p></dd><dt><a name="index-ytick-1"></a><u>Команда MGL:</u> <b>ytick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ztick"></a>
+<p><a name="ztick"></a>
+</p></dd><dt><a name="index-ztick-1"></a><u>Команда MGL:</u> <b>ztick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ctick"></a>
+<p><a name="ctick"></a>
+</p></dd><dt><a name="index-ctick-1"></a><u>Команда MGL:</u> <b>ctick</b><i> <code>val</code></i></dt>
+<dd><p>Задает шаг меток осей <var>val</var>, число подметок <var>ns</var> и начальное положение меток <var>org</var>. Переменная <var>val</var> задает шаг меток (если положительна) или их число на оси (если отрицательна). Нулевое значение задает логарифмические метки. Если <var>org</var>=<code>NAN</code>, то используется значение из <a href="#origin">origin</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xtick-2"></a><u>Команда MGL:</u> <b>xtick</b><i> 'templ'</i></dt>
+<dt><a name="index-ytick-2"></a><u>Команда MGL:</u> <b>ytick</b><i> 'templ'</i></dt>
+<dt><a name="index-ztick-2"></a><u>Команда MGL:</u> <b>ztick</b><i> 'templ'</i></dt>
+<dt><a name="index-ctick-2"></a><u>Команда MGL:</u> <b>ctick</b><i> 'templ'</i></dt>
+<dd><p>Задает шаблоны для меток вдоль x-,y-,z-оси или colorbar. Шаблон может содержать и символы TeX. Если <var>xtt</var>, <var>ytt</var>, <var>ztt</var>, <var>ctt</var>=<code>''</code>, то используется шаблон по умолчанию (в простейшем случае &lsquo;<samp>%.2g</samp>&rsquo;). Установка шаблона выключает автоматическое улучшение вида меток.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xtick-3"></a><u>Команда MGL:</u> <b>xtick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dt><a name="index-ytick-3"></a><u>Команда MGL:</u> <b>ytick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dt><a name="index-ztick-3"></a><u>Команда MGL:</u> <b>ztick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dd><p>Задает явное положение <var>val</var> и подписи <var>lbl</var> для меток вдоль оси. Метки могут содержать и символы TeX.
+</p></dd></dl>
+
+<a name="index-adjust"></a>
+<p><a name="adjust"></a>
+</p><dl>
+<dt><a name="index-adjust-1"></a><u>Команда MGL:</u> <b>adjust</b><i> ['dir'='xyzc']</i></dt>
+<dd><p>Автоматически задает шаг меток осей, число подметок и начальное положение меток для осей координат <var>dir</var> в виде наиболее удобном для человека.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Transformation-matrix-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-settings-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Export-to-file-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041c_0430_0442_0440_0438c_0430-_043f_0440e_043e_0431_0440_0430_0437_043e_0432_0430_043d_0438ya-_0028MGL_0029"></a>
+<h2 class="section">8.3 Матрица преобразования (MGL)</h2>
+
+<p>Эти команды контролируют где и как график будет расположен. Существует определенный порядок вызова этих функций для лучшего вида графика. Вначале должны вызываться команды <a href="#subplot">subplot</a> или <a href="#inplot">inplot</a> для указания местоположения вывода. После них &ndash; команды вращения <a href="#rotate">rotate</a> и сжатия <a href="#aspect">aspect</a>. И наконец любые другие функции для рисования графика. Вместо вращения графика можно вызвать команды <a href="#columnplot">columnplot</a> для расположения графиков в столбец одного над другим или <a href="#stickplot">stickplot</a> для расположения в линейку.
+</p>
+<a name="index-subplot"></a>
+<p><a name="subplot"></a>
+</p><dl>
+<dt><a name="index-subplot-1"></a><u>Команда MGL:</u> <b>subplot</b><i> <code>nx ny m [dx=0 dy=0]</code></i></dt>
+<dd><p>Помещает последующий вывод в <var>m</var>-ую ячейку сетки размером <var>nx</var>*<var>ny</var> от всего рисунка. Функция сбрасывает матрицу трансформации (повороты и сжатие графика) и должна вызываться первой для создания &quot;подграфика&quot;. С эстетической точки зрения не рекомендуется вызывать эту функцию с различными (или не кратными) размерами сетки. Ячейка может быть дополнительно сдвинута относительно своего обычного положения на относительный размер <var>dx</var>, <var>dy</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-subplot-2"></a><u>Команда MGL:</u> <b>subplot</b><i> <code>nx ny m</code> 'style'</i></dt>
+<dd><p>Аналогично предыдущему, но место для осей/colorbar резервируется только если строка <var>style</var> содержит: &lsquo;<samp>L</samp>&rsquo; или &lsquo;<samp>&lt;</samp>&rsquo; &ndash; с левого края, &lsquo;<samp>R</samp>&rsquo; или &lsquo;<samp>&gt;</samp>&rsquo; &ndash; с правого края, &lsquo;<samp>A</samp>&rsquo; или &lsquo;<samp>^</samp>&rsquo; &ndash; с верхнего края, &lsquo;<samp>U</samp>&rsquo; или &lsquo;<samp>_</samp>&rsquo; &ndash; с нижнего края.
+</p></dd></dl>
+
+<a name="index-inplot"></a>
+<p><a name="inplot"></a>
+</p><dl>
+<dt><a name="index-inplot-1"></a><u>Команда MGL:</u> <b>inplot</b><i> <code>x1 x2 y1 y2 [rel=off]</code></i></dt>
+<dd><p>Помещает последующий вывод в прямоугольную область [<var>x1</var>, <var>x2</var>]*[<var>y1</var>, <var>y2</var>] (исходный размер [0,1]*[0,1]). Эта функция позволяет поместить график в произвольную область рисунка. Если параметр <var>rel</var>=<code>on</code>, то используется позиция относительно текщего <a href="#subplot">subplot</a> (или <a href="#inplot">inplot</a> с <var>rel</var>=<code>off</code>). Функция сбрасывает матрицу трансформации (повороты и сжатие графика) и должна вызываться первой для создания &quot;подграфика&quot;.
+</p></dd></dl>
+
+<a name="index-columnplot"></a>
+<p><a name="columnplot"></a>
+</p><dl>
+<dt><a name="index-columnplot-1"></a><u>Команда MGL:</u> <b>columnplot</b><i> <code>num ind [d=0]</code></i></dt>
+<dd><p>Помещает последующий вывод в <var>ind</var>-ую строку столбца из <var>num</var> строк. Положение столбца выбирается относительно последнего вызова <a href="#subplot">subplot</a> (или <a href="#inplot">inplot</a> с <var>rel</var>=<code>off</code>). Параметр <var>d</var> задает дополнительный зазор между строк. См. раздел <a href="mathgl_ru_9.html#ColumnPlot-sample">ColumnPlot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-stickplot"></a>
+<p><a name="stickplot"></a>
+</p><dl>
+<dt><a name="index-stickplot-1"></a><u>Команда MGL:</u> <b>stickplot</b><i> <code>num ind tet phi</code></i></dt>
+<dd><p>Помещает последующий вывод в <var>ind</var>-ую ячейку &quot;бруска&quot; из <var>num</var> ячеек. При этом сам брусок повернут на углы <var>tet</var>, <var>phi</var>. Положение выбирается относительно последнего вызова <a href="#subplot">subplot</a> (или <a href="#inplot">inplot</a> с <var>rel</var>=<code>off</code>). См. раздел <a href="mathgl_ru_9.html#StickPlot-sample">StickPlot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-rotate"></a>
+<p><a name="rotate"></a>
+</p><dl>
+<dt><a name="index-rotate-1"></a><u>Команда MGL:</u> <b>rotate</b><i> <code>tetz tetx [tety=0]</code></i></dt>
+<dd><p>Вращает систему координат относительно осей {x, z, y} последовательно на углы <var>tetx</var>, <var>tetz</var>, <var>tety</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-rotate-2"></a><u>Команда MGL:</u> <b>rotate</b><i> <code>tet x y z</code></i></dt>
+<dd><p>Вращает систему координат относительно вектора {<var>x</var>, <var>y</var>, <var>z</var>} на угол <var>tet</var>.
+</p></dd></dl>
+
+<a name="index-aspect"></a>
+<p><a name="aspect"></a>
+</p><dl>
+<dt><a name="index-aspect-1"></a><u>Команда MGL:</u> <b>aspect</b><i> <code>ax ay [az=1]</code></i></dt>
+<dd><p>Устанавливает соотношение размеров осей в отношении <var>ax:ay:az</var>. Для лучшего вида следует вызывать после функции <a href="#rotate">rotate</a>.
+</p></dd></dl>
+
+<a name="index-perspective"></a>
+<p><a name="perspective"></a>
+</p><dl>
+<dt><a name="index-perspective-1"></a><u>Команда MGL:</u> <b>perspective</b><i> <code>val</code></i></dt>
+<dd><p>Добавляет (включает) перспективу для графика. Параметр <em>val ~ 1/z_eff \in [0,1)</em>. По умолчанию (<code>val=0</code>) перспектива отключена.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Export-to-file-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transformation-matrix-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Primitives-drawing-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_042d_043a_0441_043f_043e_0440_0442-_0432-_0444_0430_0439_043b-_0028MGL_0029"></a>
+<h2 class="section">8.4 Экспорт в файл (MGL)</h2>
+
+<a name="index-write"></a>
+<p><a name="write"></a>
+</p><dl>
+<dt><a name="index-write-1"></a><u>Команда MGL:</u> <b>write</b><i> 'fname' [<code>solid=off</code>]</i></dt>
+<dd><p>Экспортирует текущий кадр в файл &rsquo;fname&rsquo; (тип определяется по расширению). Параметр <var>solid</var> задает вывод картинки на текущем фоне (обычно белом) или полупрозрачной. Если &rsquo;fname&rsquo;=&rdquo;, то используется имя &lsquo;<samp>frame####.jpg</samp>&rsquo;, где &lsquo;<samp>####</samp>&rsquo; &ndash; текущий номер кадра.
+</p></dd></dl>
+
+<a name="index-setsize"></a>
+<p><a name="setsize"></a>
+</p><dl>
+<dt><a name="index-setsize-1"></a><u>Команда MGL:</u> <b>setsize</b><i> <code>w h</code></i></dt>
+<dd><p>Изменяет размер картинки в пикселях. Функция должна вызываться <strong>перед</strong> любыми функциями построения потому что полностью очищает содержимое рисунка. В некоторых программах исполнение этой команды может запрещено.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Primitives-drawing-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Export-to-file-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0420_0438_0441_043e_0432_0430_043d_0438e-_043f_0440_0438_043c_0438_0442_0438_0432_043e_0432"></a>
+<h2 class="section">8.5 Рисование примитивов</h2>
+
+<p>Эти команды рисуют рисуют простые объекты типа линий, точек, сфер, капель, конусов, и т.д.
+</p>
+<a name="index-clf"></a>
+<p><a name="clf"></a>
+</p><dl>
+<dt><a name="index-clf-1"></a><u>Команда MGL:</u> <b>clf</b></dt>
+<dd><p>Очищает рисунок и заполняет его цветом по умолчанию (обычно белым). 
+</p></dd></dl>
+
+<a name="index-ball"></a>
+<p><a name="ball"></a>
+</p><dl>
+<dt><a name="index-ball-1"></a><u>Команда MGL:</u> <b>ball</b><i> <code>x y</code> ['col'='r']</i></dt>
+<dt><a name="index-ball-2"></a><u>Команда MGL:</u> <b>ball</b><i> <code>x y z</code> ['col'='r']</i></dt>
+<dd><p>Рисует точку (шарик) с координатами {<var>x</var>, <var>y</var>, <var>z</var>} и цветом <var>col</var>.
+</p></dd></dl>
+
+<a name="index-line"></a>
+<p><a name="line"></a>
+</p><dl>
+<dt><a name="index-line-1"></a><u>Команда MGL:</u> <b>line</b><i> <code>x1 y1 x2 y2</code> ['stl'='']</i></dt>
+<dt><a name="index-line-2"></a><u>Команда MGL:</u> <b>line</b><i> <code>x1 y1 z1 x2 y2 z2</code> ['stl'='']</i></dt>
+<dd><p>Рисует геодезическую линию (декартовых координатах &ndash; прямую) из точки {<var>x1</var>,<var>y1</var>,<var>z1</var>} в {<var>x2</var>,<var>y2</var>,<var>z2</var>} использую стиль линии <var>stl</var>. Кривая рисуется даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<a name="index-curve"></a>
+<p><a name="curve"></a>
+</p><dl>
+<dt><a name="index-curve-1"></a><u>Команда MGL:</u> <b>curve</b><i> <code>x1 y1 dx1 dy1 x2 y2 dx2 dy2</code> ['stl'='']</i></dt>
+<dt><a name="index-curve-2"></a><u>Команда MGL:</u> <b>curve</b><i> <code>x1 y1 z1 dx1 dy1 dz1 x2 y2 z2 dx2 dy2 dz2</code> ['stl'='']</i></dt>
+<dd><p>Рисует кривую Безье из точки {<var>x1</var>,<var>y1</var>,<var>z1</var>} в {<var>x2</var>,<var>y2</var>,<var>z2</var>} использую стиль линии <var>stl</var>. Касательные в точках пропорциональны {<var>dx1</var>,<var>dy1</var>,<var>dz1</var>}, {<var>dx2</var>,<var>dy2</var>,<var>dz2</var>}. Кривая рисуется даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<a name="index-facex"></a>
+<p><a name="facex"></a>
+</p><dl>
+<dt><a name="index-facex-1"></a><u>Команда MGL:</u> <b>facex</b><i> <code>x0 y0 z0 wy wz</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><a name="index-facey"></a>
+<p><a name="facey"></a>
+</p></dd><dt><a name="index-facey-1"></a><u>Команда MGL:</u> <b>facey</b><i> <code>x0 y0 z0 wx wz</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><a name="index-facez"></a>
+<p><a name="facez"></a>
+</p></dd><dt><a name="index-facez-1"></a><u>Команда MGL:</u> <b>facez</b><i> <code>x0 y0 z0 wx wy</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><p>Рисует закрашенный прямоугольник (грань) перпендикулярно оси [x,y,z] в точке {<var>x0</var>, <var>y0</var>, <var>z0</var>} цветом <var>stl</var> и шириной <var>wx</var>, <var>wy</var>, <var>wz</var> вдоль соответствующего направления. При этом цвет может быть один для всей грани, или различным для разных вершин если указаны все 4 цвета (полезно для градиента цвета, например &lsquo;<samp>wwrr</samp>&rsquo;). Параметры <var>d1</var>!=0, <var>d2</var>!=0 задают дополнительный сдвиг последней точки (т.е. рисуют четырехугольник). Грань будет нарисована даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<a name="index-sphere"></a>
+<p><a name="sphere"></a>
+</p><dl>
+<dt><a name="index-sphere-1"></a><u>Команда MGL:</u> <b>sphere</b><i> <code>x0 y0 r</code> ['col'='r']</i></dt>
+<dt><a name="index-sphere-2"></a><u>Команда MGL:</u> <b>sphere</b><i> <code>x0 y0 z0 r</code> ['col'='r']</i></dt>
+<dd><p>Рисует сферу радиуса <var>r</var> с центром в точке {<var>x</var>, <var>y</var>, <var>z</var>} цветом <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-drop"></a>
+<p><a name="drop"></a>
+</p><dl>
+<dt><a name="index-drop-1"></a><u>Команда MGL:</u> <b>drop</b><i> <code>x0 y0 dx dy r</code> ['col'='b' <code>sh=1 asp=1</code>]</i></dt>
+<dt><a name="index-drop-2"></a><u>Команда MGL:</u> <b>drop</b><i> <code>x0 y0 z0 dx dy dz r</code> ['col'='b' <code>sh=1 asp=1</code>]</i></dt>
+<dd><p>Рисует каплю радиуса <var>r</var> в точке {<var>x0</var>,<var>y0</var>,<var>z0</var>} вытянутую вдоль направления {<var>dx</var>,<var>dy</var>,<var>dz</var>} цветом <var>col</var>. Параметр <var>sh</var> определяет степень вытянутости: &lsquo;<samp>0</samp>&rsquo; &ndash; сфера, &lsquo;<samp>1</samp>&rsquo; &ndash; классическая капля. Параметр <var>asp</var> определяет относительную ширину капли (аналог &quot;эллиптичности&quot; для сферы). См. раздел <a href="mathgl_ru_9.html#Drops-sample">Drops &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-cone"></a>
+<p><a name="cone"></a>
+</p><dl>
+<dt><a name="index-cone-1"></a><u>Команда MGL:</u> <b>cone</b><i> <code>x1 y1 z1 x2 y2 z2 r1</code> [<code>r2=-1</code> 'stl'='' <code>edge=off</code>]</i></dt>
+<dd><p>Рисует трубу (или усеченный конус если <var>edge</var>=<code>off</code>) между точками {<var>x1</var>,<var>y1</var>,<var>z1</var>}, {<var>x2</var>,<var>y2</var>,<var>z2</var>} с радиусами на концах <var>r1</var>, <var>r2</var>. Если <var>r2</var>&lt;0, то полагается <var>r2</var>=<var>r1</var>. Цвет конуса задается строкой <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-rect"></a>
+<p><a name="rect"></a>
+</p><dl>
+<dt><a name="index-rect-1"></a><u>Команда MGL:</u> <b>rect</b><i> <code>x1 y1 x2 y2</code> ['st'='']</i></dt>
+<dt><a name="index-rect-2"></a><u>Команда MGL:</u> <b>rect</b><i> <code>x1 y1 z1 x2 y2 z2</code> ['st'='']</i></dt>
+<dd><p>Рисует закрашенный прямоугольник (грань) с противоположными вершинами в точках {<var>x1</var>,<var>y1</var>,<var>z1</var>}, {<var>x2</var>,<var>y2</var>,<var>z2</var>} цветом <var>stl</var>. При этом цвет может быть один для всей грани, или различным для разных вершин если указаны все 4 цвета (полезно для градиента цвета, например &lsquo;<samp>wwrr</samp>&rsquo;). Грань будет нарисована даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Text-printing-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Primitives-drawing-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-Colorbar-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0412_044b_0432_043e_0434-_0442e_043a_0441_0442_0430-_0028MGL_0029"></a>
+<h2 class="section">8.6 Вывод текста (MGL)</h2>
+
+<p>Команды для вывода текста позволяют вывести строку текста в произвольном месте рисунка, в произвольном направлении и вдоль произвольной кривой. Можно использовать произвольное начертание шрифта и многие ТеХ-ие команды (детальнее see section <a href="mathgl_ru_1.html#Font-styles">Стиль текста</a>). Аргумент <var>size</var> определяет размер текста: размер шрифта если положителен или относительный размер (=-<var>size</var>*<var>fontsize</var>) если отрицателен.
+</p>
+<p>Параметры шрифта задаются строкой, которая может содержать символы стиля (&lsquo;<samp>rbiwou</samp>&rsquo;) и/или выравнивания (&lsquo;<samp>LRC</samp>&rsquo;). Также строка может содержать символы цвета &lsquo;<samp>wkrgbcymhRGBCYMHW</samp>&rsquo; (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>) после символа &lsquo;<samp>:</samp>&rsquo;. Стили шрифта: &lsquo;<samp>r</samp>&rsquo; &ndash; прямой, &lsquo;<samp>i</samp>&rsquo; &ndash; курсив, &lsquo;<samp>b</samp>&rsquo; &ndash; жирный, &lsquo;<samp>w</samp>&rsquo; &ndash; контурный, &lsquo;<samp>o</samp>&rsquo; &ndash; надчеркнутый, &lsquo;<samp>u</samp>&rsquo; &ndash; подчеркнутый. По умолчанию используется прямой шрифт. Типы выравнивания: &lsquo;<samp>L</samp>&rsquo; &ndash; по левому краю (по умолчанию), &lsquo;<samp>C</samp>&rsquo; &ndash; по центру, &lsquo;<samp>R</samp>&rsquo; &ndash; по правому краю. Например, строка &lsquo;<samp>iC:b</samp>&rsquo; соответствует курсиву синего цвета с выравниванием по центру. По умолчанию используются параметры, определенные командой <a href="#font">font</a>.
+</p>
+<p>Если строка содержит символы &lsquo;<samp>aA</samp>&rsquo;, то текст выводится в абсолютных координатах (полагаются в диапазоне [0,1]). При этом используются координаты относительно рисунка (если указано &lsquo;<samp>A</samp>&rsquo;) или относительно последнего <a href="#subplot">subplot</a>/<a href="#inplot">inplot</a> (если указано &lsquo;<samp>a</samp>&rsquo;).
+</p>
+<a name="index-text"></a>
+<p><a name="text"></a>
+</p><dl>
+<dt><a name="index-text-1"></a><u>Команда MGL:</u> <b>text</b><i> <code>x y</code> 'text' ['fnt'='' <code>size=-1.4</code>]</i></dt>
+<dt><a name="index-text-2"></a><u>Команда MGL:</u> <b>text</b><i> <code>x y z</code> 'text' ['fnt'='' <code>size=-1.4</code>]</i></dt>
+<dd><p>Выводит строку <var>text</var> от точки {<var>x</var>,<var>y</var>,<var>z</var>} шрифтом <var>fnt</var> и размером <var>size</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-text-3"></a><u>Команда MGL:</u> <b>text</b><i> <code>x y dx dy</code> 'text' [<code>size=-1.4</code>]</i></dt>
+<dt><a name="index-text-4"></a><u>Команда MGL:</u> <b>text</b><i> <code>x y z dx dy dz</code> 'text' [<code>size=-1.4</code>]</i></dt>
+<dd><p>Выводит строку <var>text</var> от точки {<var>x</var>,<var>y</var>,<var>z</var>} вдоль направления {<var>dx</var>,<var>dy</var>,<var>dz</var>} шрифтом <var>fnt</var> и размером <var>size</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-text-5"></a><u>Команда MGL:</u> <b>text</b><i> ydat 'text' ['fnt'='' <code>size=-1 zval=nan</code>]</i></dt>
+<dt><a name="index-text-6"></a><u>Команда MGL:</u> <b>text</b><i> xdat ydat 'text' ['fnt'='' <code>size=-1 zval=nan</code>]</i></dt>
+<dt><a name="index-text-7"></a><u>Команда MGL:</u> <b>text</b><i> xdat ydat zdat 'text' ['fnt'='' <code>size=-1</code>]</i></dt>
+<dd><p>Выводит строку <var>text</var> вдоль кривой {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} шрифтом <var>font</var>. Строка <var>font</var> может содержать символы: &lsquo;<samp>t</samp>&rsquo; для вывода текста под кривой (по умолчанию), или &lsquo;<samp>T</samp>&rsquo; для вывода текста над кривой. Если массив <var>xdat</var> не указан, то используется массив со значениями равно распределенными вдоль оси x. Если массив <var>zdat</var> не указан, то используется <var>zdat</var>[i] = <var>zval</var>. См. раздел <a href="mathgl_ru_9.html#Text-sample">Text &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-title"></a>
+<p><a name="title"></a>
+</p><dl>
+<dt><a name="index-title-1"></a><u>Команда MGL:</u> <b>title</b><i> 'text' ['fnt'='' <code>size=-2</code>]</i></dt>
+<dd><p>Выводит строку <var>text</var> как заголовок (сверху рисунка). Может использоваться в любом месте (даже внутри <a href="#subplot">subplot</a>).
+</p></dd></dl>
+
+<a name="index-fgets"></a>
+<p><a name="fgets"></a>
+</p><dl>
+<dt><a name="index-fgets-1"></a><u>Команда MGL:</u> <b>fgets</b><i> <code>x y</code> 'fname' [<code>n=0</code> 'fnt'='' <code>size=-1.4</code>]</i></dt>
+<dt><a name="index-fgets-2"></a><u>Команда MGL:</u> <b>fgets</b><i> <code>x y z</code> 'fname' [<code>n=0</code> 'fnt'='' <code>size=-1.4</code>]</i></dt>
+<dd><p>Выводит <var>n</var>-ую строку файла <var>fname</var> от точки {<var>x</var>,<var>y</var>,<var>z</var>} шрифтом <var>fnt</var> и размером <var>size</var>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Axis-and-Colorbar-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_0438-_0438-Colorbar-_0028MGL_0029"></a>
+<h2 class="section">8.7 Оси и Colorbar (MGL)</h2>
+
+<p>Эти команды рисуют объекты для &quot;измерения&quot; типа осей координат, цветовой таблицы (colorbar), сетку по осям, обрамляющий параллелепипед и подписи по осям координат. См. также <a href="#Axis-settings-_0028MGL_0029">Параметры осей координат (MGL)</a>.
+</p>
+<a name="index-axis-5"></a>
+<dl>
+<dt><a name="index-axis-6"></a><u>Команда MGL:</u> <b>axis</b><i> ['dir'='xyz' <code>adjust=off</code>]</i></dt>
+<dd><p>Рисует оси координат и метки на них (see section <a href="#Axis-settings-_0028MGL_0029">Параметры осей координат (MGL)</a>) в направлениях, указанных строкой <var>dir</var>. Если строка содержит символ &lsquo;<samp>_</samp>&rsquo;, то подписи меток отображаться не будут. Шрифт подписей определяется командой <a href="#font">font</a>. Метки будут &quot;подогнаны&quot; если <var>adjust</var>=<code>on</code> (с помощью вызова <code>adjust 'dir'</code>). 
+</p></dd></dl>
+
+<a name="index-colorbar"></a>
+<p><a name="colorbar"></a>
+</p><dl>
+<dt><a name="index-colorbar-1"></a><u>Команда MGL:</u> <b>colorbar</b><i> ['sch'='' <code>pos=0</code>]</i></dt>
+<dd><p>Рисует полосу соответствия цвета и числовых значений (colorbar) для цветовой схемы <var>sch</var> (используется текущая для <code>sch=''</code>) с краю от графика. Параметр <var>pos</var> задает местоположение: &lsquo;<samp>0</samp>&rsquo; - справа (по умолчанию), &lsquo;<samp>1</samp>&rsquo; - слева, &lsquo;<samp>2</samp>&rsquo; - сверху, &lsquo;<samp>3</samp>&rsquo; - снизу. Если строка <var>sch</var> содержит &lsquo;<samp>&lt;&gt;^_</samp>&rsquo;, то параметр <var>pos</var> определяется как: <code>pos=0</code> для &lsquo;<samp>&gt;</samp>&rsquo; (справа), <code>pos=1</code> для &lsquo;<samp>&lt;</samp>&rsquo; (слева), <code>pos=2</code> для &lsquo;<samp>^</samp>&rsquo; (сверху), <code>pos=3</code> для &lsquo;<samp>_</samp>&rsquo; (снизу). Если строка содержит &lsquo;<samp>A</samp>&rsquo;, то используются абсолютные координаты (относительно рисунка). См. раздел <a href="mathgl_ru_9.html#Dens-sample">Dens &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-colorbar-2"></a><u>Команда MGL:</u> <b>colorbar</b><i> vdat ['sch'='' <code>pos=0</code>]</i></dt>
+<dd><p>Аналогично предыдущему, но для цветовой схемы без сглаживания с заданными значениями <var>vdat</var>. См. раздел <a href="mathgl_ru_9.html#ContD-sample">ContD &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-colorbar-3"></a><u>Команда MGL:</u> <b>colorbar</b><i> 'sch' <code>pos x y w h</code></i></dt>
+<dd><p>Аналогично первому, но в произвольном месте графика {<var>x</var>, <var>y</var>} (полагаются в диапазоне [0,1]). Параметры <var>w</var>, <var>h</var> задают относительную ширину и высоту colorbar.
+</p></dd></dl>
+
+<a name="index-grid"></a>
+<p><a name="grid"></a>
+</p><dl>
+<dt><a name="index-grid-1"></a><u>Команда MGL:</u> <b>grid</b><i> ['dir'='xyz' 'pen'='B']</i></dt>
+<dd><p>Рисует линии сетки в направлениях перпендикулярным <var>dir</var>. Шаг сетки такой же как у меток осей координат. Стиль линий задается параметром <var>pen</var> (по умолчанию &ndash; сплошная темно синяя линия &lsquo;<samp>B-</samp>&rsquo;).
+</p></dd></dl>
+
+<a name="index-box"></a>
+<p><a name="box"></a>
+</p><dl>
+<dt><a name="index-box-1"></a><u>Команда MGL:</u> <b>box</b><i> ['stl'='k' <code>ticks=on</code>]</i></dt>
+<dd><p>Рисует ограничивающий параллелепипед цветом &rsquo;stl&rsquo;. При <code>ticks=on</code> рисуются метки в соответствии с текущими настройками осей координат <a href="#axis">axis</a>.
+</p></dd></dl>
+
+<a name="index-xlabel"></a>
+<p><a name="xlabel"></a>
+</p><dl>
+<dt><a name="index-xlabel-1"></a><u>Команда MGL:</u> <b>xlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-ylabel"></a>
+<p><a name="ylabel"></a>
+</p></dd><dt><a name="index-ylabel-1"></a><u>Команда MGL:</u> <b>ylabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-zlabel"></a>
+<p><a name="zlabel"></a>
+</p></dd><dt><a name="index-zlabel-1"></a><u>Команда MGL:</u> <b>zlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-tlabel"></a>
+<p><a name="tlabel"></a>
+</p></dd><dt><a name="index-tlabel-1"></a><u>Команда MGL:</u> <b>tlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><p>Выводит подпись <var>text</var> для x-,y-,z-,t-оси (где &lsquo;<samp>t</samp>&rsquo; &ndash; &ldquo;тернарная&rdquo; ось <em>t=1-x-y</em>). Параметр <var>pos</var> задает положение подписи: при <var>pos</var>=0 &ndash; по центру оси, при <var>pos</var>&gt;0 &ndash; около максимальных значений, при <var>pos</var>&lt;0 &ndash; около минимальных значений. Параметр <var>size</var> задает размер шрифта (по умолчанию в 1.4 раза больше чем у меток). See section <a href="#Text-printing-_0028MGL_0029">Вывод текста (MGL)</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Legend-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-Colorbar-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041bege_043d_0434_0430-_0028MGL_0029"></a>
+<h2 class="section">8.8 Легенда (MGL)</h2>
+
+<p>Эти команды обеспечивают рисование легенды графика (полезно для <a href="mathgl_ru_3.html#g_t1D-plotting">1D графики</a>). Запись в легенде состоит из двух строк: одна для стиля линии и маркеров, другая с текстом описания (с включенным разбором TeX-их команд), накапливаемые во внутренние массивы с помощью команды <a href="#addlegend">addlegend</a> или опции <a href="#legend">legend</a>. Положение легенды можно задать автоматически или вручную. Параметры <var>font</var> и <var>size</var> задают стиль и размер шрифта. Параметр <var>llen</var> задает относительную ширину примера линии. Ели стиль линии пустой, то соответствующий текст печатается без отступа. Если строка <var>font</var> содержит символ &lsquo;<samp>A</samp>&rsquo;, то координаты легенды считаются относительно картинки (а не текущего subplot). См. раздел <a href="mathgl_ru_9.html#Legend-sample">Legend &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<a name="index-legend"></a>
+<p><a name="legend"></a>
+</p><dl>
+<dt><a name="index-legend-1"></a><u>Команда MGL:</u> <b>legend</b><i> [<code>pos=3</code> 'fnt'='rL' <code>size=-1 llen=0.1</code>]</i></dt>
+<dd><p>Рисует легенду из накопленных записей шрифтом <var>fnt</var> размером <var>size</var>. Параметр <var>pos</var> задает положение легенды: &lsquo;<samp>0</samp>&rsquo; &ndash; в нижнем левом углу, &lsquo;<samp>1</samp>&rsquo; &ndash; нижнем правом углу, &lsquo;<samp>2</samp>&rsquo; &ndash; верхнем левом углу, &lsquo;<samp>3</samp>&rsquo; &ndash; верхнем правом углу (по умолчанию).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-legend-2"></a><u>Команда MGL:</u> <b>legend</b><i> <code>x y</code> ['fnt'='rL' <code>size=-1 llen=0.1</code>]</i></dt>
+<dd><p>Рисует легенду из накопленных записей шрифтом <var>font</var> размером <var>size</var>. Положение легенды задается параметрами <var>x</var>, <var>y</var>, которые полагаются нормированными в диапазоне [0,1].
+</p></dd></dl>
+
+<a name="index-addlegend"></a>
+<p><a name="addlegend"></a>
+</p><dl>
+<dt><a name="index-addlegend-1"></a><u>Команда MGL:</u> <b>addlegend</b><i> 'text' 'stl'</i></dt>
+<dd><p>Добавляет описание <var>text</var> кривой со стилем <var>stl</var> (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>) во внутренний массив записей легенды. Максимальное число записей 100.
+</p></dd></dl>
+
+<a name="index-clearlegend"></a>
+<p><a name="clearlegend"></a>
+</p><dl>
+<dt><a name="index-clearlegend-1"></a><u>Команда MGL:</u> <b>clearlegend</b></dt>
+<dd><p>Очищает внутренний массив записей легенды.
+</p></dd></dl>
+
+<a name="index-legendbox"></a>
+<p><a name="legendbox"></a>
+</p><dl>
+<dt><a name="index-legendbox-1"></a><u>Команда MGL:</u> <b>legendbox</b><i> <code>val</code></i></dt>
+<dd><p>Включает/выключает рисование прямоугольника вокруг легенды. По умолчанию (=<code>on</code>) прямоугольник рисуется.
+</p></dd></dl>
+
+<a name="index-legendmarks"></a>
+<p><a name="legendmarks"></a>
+</p><dl>
+<dt><a name="index-legendmarks-1"></a><u>Команда MGL:</u> <b>legendmarks</b><i> <code>val</code></i></dt>
+<dd><p>Задает число маркеров в легенде. По умолчанию используется 1 маркер.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t1D-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029"></a>
+<h2 class="section">8.9 1D графики (MGL)</h2>
+
+<p>Эти команды строят графики для одномерных (1D) массивов. Одномерными считаются массивы, зависящие только от одного параметра (индекса) подобно кривой в параметрической форме {x(i),y(i),z(i)}, i=1...n. Есть 5 основных типов 1D графиков: линия (<a href="#plot">plot</a>), линия с заполнением (<a href="#area">area</a>), ступеньки (<a href="#step">step</a>), прямоугольники (<a href="#bars">bars</a>, <a href="#barh">barh</a>) и вертикальные линии (<a href="#stem">stem</a>). Все эти типы графиков имеют похожий интерфейс. Есть версии для рисования в пространстве и на плоскости. В последнем случае имеется возможность использования только одного массива. Стиль линии и маркеров указывается строковой переменной. Если она равна <code>''</code>. Кроме того, есть еще несколько типов графиков для одномерных массивов, имеющих другой интерфейс и вид: поверхность вращения кривой (<a href="#torus">torus</a>), диаграмма (<a href="#chart">chart</a>), размер ошибки (<a href="#error">error</a>), маркеры переменного размера (<a href="#mark">mark</a>), трубками (<a href="#tube">tube</a>) и т.д. См. раздел <a href="mathgl_ru_9.html#g_t1D-plot-sample">Пример графиков 1D данных</a>, для примеров кода и графика.
+</p>
+<p>График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>xdat.nx=ydat.nx=zdat.nx</code>. Если массив <var>xdat</var> не указан, то используется массив со значениями равно распределенными вдоль оси x. Если массив <var>zdat</var> не указан, то используется <var>zdat</var>[i] = <var>zval</var>. Строка <var>stl</var> задает цвет и стиль линии и маркеров (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>stl=''</code>) рисуется сплошная линия с текущим цветом из палитры.
+</p>
+<a name="index-plot"></a>
+<p><a name="plot"></a>
+</p><dl>
+<dt><a name="index-plot-1"></a><u>Команда MGL:</u> <b>plot</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-plot-2"></a><u>Команда MGL:</u> <b>plot</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-plot-3"></a><u>Команда MGL:</u> <b>plot</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует ломанную линию между точками {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. См. также <a href="#area">area</a>, <a href="#step">step</a>, <a href="#stem">stem</a>, <a href="#tube">tube</a>, <a href="#mark">mark</a>, <a href="#error">error</a>, <a href="#belt">belt</a>, <a href="#tens">tens</a>. См. раздел <a href="mathgl_ru_9.html#Plot-sample">Plot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+
+<a name="index-radar"></a>
+<p><a name="radar"></a>
+</p><dl>
+<dt><a name="index-radar-1"></a><u>Команда MGL:</u> <b>radar</b><i> adat ['stl'='' <code>r=-1</code>]</i></dt>
+<dd><p>Рисует radar chart, представляющий собой ломанную с вершинами на радиальных линиях (типа ломанной в полярных координатах). График рисуется для каждой строки если один из массивов матрица. Параметр <var>r</var> задает дополнительный сдвиг данных (т.е. используется <var>a</var>+<var>r</var> вместо <var>a</var>). Если <code>r&lt;0</code>, то <code>r=max(0, -min(a)</code>. Если <var>stl</var> содержит символ &lsquo;<samp>#</samp>&rsquo;, то также рисуется &quot;сетка&quot; (радиальные линии и круг для <var>r</var>). См. также <a href="#plot">plot</a>. См. раздел <a href="mathgl_ru_9.html#Radar-sample">Radar &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-tens"></a>
+<p><a name="tens"></a>
+</p><dl>
+<dt><a name="index-tens-1"></a><u>Команда MGL:</u> <b>tens</b><i> ydat cdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tens-2"></a><u>Команда MGL:</u> <b>tens</b><i> xdat ydat cdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tens-3"></a><u>Команда MGL:</u> <b>tens</b><i> xdat ydat zdat cdat ['stl'='']</i></dt>
+<dd><p>Рисует ломанную линию по точкам {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} с цветом, определяемым массивом <var>c</var>[i] (типа графика натяжений). См. также <a href="#plot">plot</a>, <a href="#mesh">mesh</a>, <a href="#fall">fall</a>. См. раздел <a href="mathgl_ru_9.html#Tens-sample">Tens &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-area"></a>
+<p><a name="area"></a>
+</p><dl>
+<dt><a name="index-area-1"></a><u>Команда MGL:</u> <b>area</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-area-2"></a><u>Команда MGL:</u> <b>area</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-area-3"></a><u>Команда MGL:</u> <b>area</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует ломанную линию по точками {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} и закрашивает ее вниз до плоскости осей координат. Можно использовать градиентное закрашивание если число указанных цветов в <var>stl</var> равно удвоенному числу кривых для построения. Если строка содержит символ &lsquo;<samp>a</samp>&rsquo;, то линии рисуются одна поверх другой (с суммированием) &ndash; того же эффекта можно достичь вызовом <code>cumsum ydat 'y'</code> перед построением графика. См. также <a href="#plot">plot</a>, <a href="#bars">bars</a>, <a href="#stem">stem</a>, <a href="#region">region</a>. См. раздел <a href="mathgl_ru_9.html#Area-sample">Area &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-region"></a>
+<p><a name="region"></a>
+</p><dl>
+<dt><a name="index-region-1"></a><u>Команда MGL:</u> <b>region</b><i> fdat gdat ['stl'='' <code>inside=off</code>]</i></dt>
+<dt><a name="index-region-2"></a><u>Команда MGL:</u> <b>region</b><i> xdat fdat gdat ['stl'='' <code>inside=off</code>]</i></dt>
+<dd><p>Закрашивает область между 2 кривыми {<var>xdat</var>[i], <var>fdat</var>[i]} и {<var>xdat</var>[i], <var>gdat</var>[i]}. При  <code>inside=off</code> закрашивается только область y1&lt;y&lt;y2, в противном случае также будет закращена область y2&lt;y&lt;y1. Можно использовать градиентное закрашивание если число указанных цветов <var>stl</var> равно удвоенному числу кривых для построения. См. также <a href="#area">area</a>, <a href="#bars">bars</a>, <a href="#stem">stem</a>. См. раздел <a href="mathgl_ru_9.html#Region-sample">Region &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-stem"></a>
+<p><a name="stem"></a>
+</p><dl>
+<dt><a name="index-stem-1"></a><u>Команда MGL:</u> <b>stem</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-stem-2"></a><u>Команда MGL:</u> <b>stem</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-stem-3"></a><u>Команда MGL:</u> <b>stem</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует вертикальные линии из точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} до плоскости осей координат. См. также <a href="#area">area</a>, <a href="#bars">bars</a>, <a href="#plot">plot</a>, <a href="#mark">mark</a>. См. раздел <a href="mathgl_ru_9.html#Stem-sample">Stem &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-bars"></a>
+<p><a name="bars"></a>
+</p><dl>
+<dt><a name="index-bars-1"></a><u>Команда MGL:</u> <b>bars</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-bars-2"></a><u>Команда MGL:</u> <b>bars</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-bars-3"></a><u>Команда MGL:</u> <b>bars</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует вертикальные полосы (прямоугольники) из точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} до плоскости осей координат. Если строка <var>stl</var> содержит символ &lsquo;<samp>a</samp>&rsquo;, то линии рисуются одна поверх другой. Если строка содержит символ &lsquo;<samp>f</samp>&rsquo;, то рисуется график типа waterfall для определения кумулятивного эффекта последовательности положительных и отрицательных значений. Можно использовать разные цвета для положительных и отрицательных значений если число указанных цветов равно удвоенному числу кривых для построения. См. также <a href="#barh">barh</a>, <a href="#area">area</a>, <a href="#stem">stem</a>, <a href="#chart">chart</a>. См. раздел <a href="mathgl_ru_9.html#Bars-sample">Bars &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-barh"></a>
+<p><a name="barh"></a>
+</p><dl>
+<dt><a name="index-barh-1"></a><u>Команда MGL:</u> <b>barh</b><i> xdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-barh-2"></a><u>Команда MGL:</u> <b>barh</b><i> ydat xdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует горизонтальные полосы (прямоугольники) из точек {<var>xdat</var>[i], <var>ydat</var>[i]} до плоскости оси y. Если массив <var>ydat</var> не указан, то используется массив со значениями равно распределенными вдоль оси y. Если строка <var>stl</var> содержит символ &lsquo;<samp>a</samp>&rsquo;, то линии рисуются одна поверх другой. Если строка содержит символ &lsquo;<samp>f</samp>&rsquo;, то рисуется график типа waterfall для определения кумулятивного эффекта последовательности положительных и отрицательных значений. Можно использовать разные цвета для положительных и отрицательных значений если число указанных цветов равно удвоенному числу кривых для построения. См. также <a href="#bars">bars</a>. См. раздел <a href="mathgl_ru_9.html#Barh-sample">Barh &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-chart"></a>
+<p><a name="chart"></a>
+</p><dl>
+<dt><a name="index-chart-1"></a><u>Команда MGL:</u> <b>chart</b><i> adat ['col'='']</i></dt>
+<dd><p>Рисует цветные полосы (пояса) для массива данных <var>adat</var>. Число полос равно числу строк <var>adat</var> (равно <var>a.ny</var>). Цвет полос поочередно меняется из цветов указанных в <var>col</var> или в палитре (если <code>col=''</code>). Пробел в цветах соответствует прозрачному &quot;цвету&quot;, т.е. соответствующая полоса не рисуется. Ширина полосы пропорциональна значению элемента в <var>adat</var>. График строится только для массивов не содержащих отрицательных значений. Если строка <var>col</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется также черная граница полос. График выглядит лучше в 3d (после вращения системы координат) и/или в полярной системе координат (становится Pie chart). См. раздел <a href="mathgl_ru_9.html#Chart-sample">Chart &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-step"></a>
+<p><a name="step"></a>
+</p><dl>
+<dt><a name="index-step-1"></a><u>Команда MGL:</u> <b>step</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-step-2"></a><u>Команда MGL:</u> <b>step</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-step-3"></a><u>Команда MGL:</u> <b>step</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует ступеньки для точек массива {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. См. также <a href="#plot">plot</a>, <a href="#stem">stem</a>, <a href="#tile">tile</a>, <a href="#boxs">boxs</a>. См. раздел <a href="mathgl_ru_9.html#Step-sample">Step &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-torus"></a>
+<p><a name="torus"></a>
+</p><dl>
+<dt><a name="index-torus-1"></a><u>Команда MGL:</u> <b>torus</b><i> zdat ['stl'='']</i></dt>
+<dt><a name="index-torus-2"></a><u>Команда MGL:</u> <b>torus</b><i> rdat zdat ['stl'='']</i></dt>
+<dd><p>Рисует поверхность вращения кривой {<var>rdat</var>[i], <var>zdat</var>[i], <var>zdat</var>[i]} относительно оси <a href="#axialdir">axialdir</a>. Если массив <var>rdat</var> не указан, то используется массив со значениями равно распределенными вдоль оси x. См. также <a href="#plot">plot</a>, <a href="#axial">axial</a>. См. раздел <a href="mathgl_ru_9.html#Torus-sample">Torus &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-tube"></a>
+<p><a name="tube"></a>
+</p><dl>
+<dt><a name="index-tube-1"></a><u>Команда MGL:</u> <b>tube</b><i> ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-2"></a><u>Команда MGL:</u> <b>tube</b><i> ydat <code>rval</code> ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-3"></a><u>Команда MGL:</u> <b>tube</b><i> xdat ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-4"></a><u>Команда MGL:</u> <b>tube</b><i> xdat ydat <code>rval</code> ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-5"></a><u>Команда MGL:</u> <b>tube</b><i> xdat ydat zdat rdat ['stl'='']</i></dt>
+<dt><a name="index-tube-6"></a><u>Команда MGL:</u> <b>tube</b><i> xdat ydat zdat <code>rval</code> ['stl'='']</i></dt>
+<dd><p>Рисует трубу радиуса <var>rdat</var>[i] (or <var>rval</var>) вдоль кривой между точками {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. См. также <a href="#plot">plot</a>. См. раздел <a href="mathgl_ru_9.html#Tube-sample">Tube &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-mark"></a>
+<p><a name="mark"></a>
+</p><dl>
+<dt><a name="index-mark-1"></a><u>Команда MGL:</u> <b>mark</b><i> ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-mark-2"></a><u>Команда MGL:</u> <b>mark</b><i> xdat ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-mark-3"></a><u>Команда MGL:</u> <b>mark</b><i> xdat ydat zdat rdat ['stl'='']</i></dt>
+<dd><p>Рисует маркеры размером <var>rdat</var>[i]*<code>marksize</code> в точках {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Для рисования маркеров одинакового размера можно использовать функцию <code>plot</code> с невидимой линией (со стилем содержащим &lsquo;<samp> </samp>&rsquo;). См. также <a href="#plot">plot</a>, <a href="#textmark">textmark</a>, <a href="#stem">stem</a>, <a href="#error">error</a>. См. раздел <a href="mathgl_ru_9.html#Mark-sample">Mark &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-textmark"></a>
+<p><a name="textmark"></a>
+</p><dl>
+<dt><a name="index-textmark-1"></a><u>Команда MGL:</u> <b>textmark</b><i> ydat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-2"></a><u>Команда MGL:</u> <b>textmark</b><i> ydat rdat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-3"></a><u>Команда MGL:</u> <b>textmark</b><i> xdat ydat rdat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-4"></a><u>Команда MGL:</u> <b>textmark</b><i> xdat ydat zdat rdat 'txt' ['stl'='']</i></dt>
+<dd><p>Рисует текст <var>txt</var> как маркер с размером пропорциональным <var>rdat</var>[i]*<code>marksize</code> в точках {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если массив <var>rdat</var> не указан, то полагается <var>rdat</var>[i] = 1. См. также <a href="#plot">plot</a>, <a href="#mark">mark</a>, <a href="#stem">stem</a>. См. раздел <a href="mathgl_ru_9.html#TextMark-sample">TextMark &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-error"></a>
+<p><a name="error"></a>
+</p><dl>
+<dt><a name="index-error-1"></a><u>Команда MGL:</u> <b>error</b><i> ydat yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-error-2"></a><u>Команда MGL:</u> <b>error</b><i> xdat ydat yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-error-3"></a><u>Команда MGL:</u> <b>error</b><i> xdat ydat xerr yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует размер ошибки {<var>xerr</var>[i], <var>yerr</var>[i]} в точках {<var>xdat</var>[i], <var>ydat</var>[i]} на плоскости <var>z</var> = <var>zval</var>. Такой график полезен для отображения ошибки эксперимента, вычислений и пр. См. также <a href="#plot">plot</a>. См. раздел <a href="mathgl_ru_9.html#Error-sample">Error &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-boxplot"></a>
+<p><a name="boxplot"></a>
+</p><dl>
+<dt><a name="index-boxplot-1"></a><u>Команда MGL:</u> <b>boxplot</b><i> adat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-boxplot-2"></a><u>Команда MGL:</u> <b>boxplot</b><i> xdat adat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует boxplot (называемый также как box-and-whisker diagram или как &quot;ящик с усами&quot;) в точках <var>xdat</var>[i] на плоскости <var>z</var> = <var>zval</var>. Это график, компактно изображающий распределение вероятностей <var>adat</var>[i,j] (минимум, нижний квартиль (Q1), медиана (Q2), верхний квартиль (Q3) и максимум) вдоль второго (j-го) направления. См. также <a href="#plot">plot</a>, <a href="#error">error</a>, <a href="#bars">bars</a>. См. раздел <a href="mathgl_ru_9.html#BoxPlot-sample">BoxPlot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t2D-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029"></a>
+<h2 class="section">8.10 2D графики (MGL)</h2>
+
+<p>Эти команды строят графики для двумерных (2D) массивов. Двумерными считаются массивы, зависящие только от двух параметров (индексов) подобно матрице <em>f(x_i,y_j), i=1...n, j=1...m</em>. Есть несколько основных типов 2D графиков: сплошная поверхность (<a href="#surf">surf</a>), сетчатая поверхность (<a href="#mesh">mesh</a>), поверхность из ящиков (<a href="#boxs">boxs</a>), поверхность из плиток (<a href="#tile">tile</a>), водопад (<a href="#fall">fall</a>), ленточки (<a href="#belt">belt</a>), график плотности (<a href="#dens">dens</a>), линии уровня (<a href="#cont">cont</a>), линии уровня с заполнением (<a href="#contf">contf</a>) и результат их вращения (<a href="#axial">axial</a>). В функциях <a href="#cont">cont</a>, <a href="#contf">contf</a> и <a href="#axial">axial</a> значения уровней можно задавать автоматически и вручную. Можно также нарисовать сетку (<a href="#grid">grid</a>) по массиву данных для улучшения вида графика плотности или линий уровня. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданной поверхности. См. раздел <a href="mathgl_ru_9.html#g_t1D-plot-sample">Пример графиков 1D данных</a>, для примеров кода и графика.
+</p>
+<p>Строка <var>sch</var> задает цветовую схему (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>. Предыдущая цветовая схема используется по умолчанию. Младшие размерности массивов <var>xdat</var>, <var>ydat</var>, <var>zdat</var> должны быть одинаковы <code>xdat.nx=zdat.nx &amp;&amp; ydat.nx=zdat.ny</code> или <code>xdat.nx=ydat.nx=zdat.nx &amp;&amp; xdat.ny=ydat.ny=zdat.ny</code>. Массивы <var>xdat</var> и <var>ydat</var> могут быть векторами (не матрицами как <var>zdat</var>). Если массивы <var>xdat</var>, <var>ydat</var> не указаны, то используются массивы со значениями равно распределенными вдоль осей x, y. График строится для каждого z среза данных.
+</p>
+<a name="index-surf"></a>
+<p><a name="surf"></a>
+</p><dl>
+<dt><a name="index-surf-1"></a><u>Команда MGL:</u> <b>surf</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-surf-2"></a><u>Команда MGL:</u> <b>surf</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует параметрически заданную поверхность {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на поверхности рисуется сетка. См. также <a href="#mesh">mesh</a>, <a href="#dens">dens</a>, <a href="#belt">belt</a>, <a href="#tile">tile</a>, <a href="#boxs">boxs</a>, <a href="#surfc">surfc</a>, <a href="#surfa">surfa</a>. См. раздел <a href="mathgl_ru_9.html#Surf-sample">Surf &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-mesh"></a>
+<p><a name="mesh"></a>
+</p><dl>
+<dt><a name="index-mesh-1"></a><u>Команда MGL:</u> <b>mesh</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-mesh-2"></a><u>Команда MGL:</u> <b>mesh</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует сетчатую поверхность, заданную параметрически {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. См. также <a href="#surf">surf</a>, <a href="#fall">fall</a>, <a href="#meshnum">meshnum</a>, <a href="#cont">cont</a>, <a href="#tens">tens</a>. См. раздел <a href="mathgl_ru_9.html#Mesh-sample">Mesh &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-fall"></a>
+<p><a name="fall"></a>
+</p><dl>
+<dt><a name="index-fall-1"></a><u>Команда MGL:</u> <b>fall</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-fall-2"></a><u>Команда MGL:</u> <b>fall</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует водопад для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. График удобен для построения нескольких кривых, сдвинутых вглубь друг относительно друга. Если <var>sch</var> содержит &lsquo;<samp>x</samp>&rsquo;, то линии рисуются вдоль x-оси (по умолчанию линии рисуются вдоль y-оси). См. также <a href="#belt">belt</a>, <a href="#mesh">mesh</a>, <a href="#tens">tens</a>, <a href="#meshnum">meshnum</a>. См. раздел <a href="mathgl_ru_9.html#Fall-sample">Fall &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-belt"></a>
+<p><a name="belt"></a>
+</p><dl>
+<dt><a name="index-belt-1"></a><u>Команда MGL:</u> <b>belt</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-belt-2"></a><u>Команда MGL:</u> <b>belt</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует ленточки для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Если <var>sch</var> содержит &lsquo;<samp>x</samp>&rsquo;, то линии рисуются вдоль x-оси (по умолчанию линии рисуются вдоль y-оси). См. также <a href="#fall">fall</a>, <a href="#surf">surf</a>, <a href="#plot">plot</a>, <a href="#meshnum">meshnum</a>. См. раздел <a href="mathgl_ru_9.html#Belt-sample">Belt &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-boxs"></a>
+<p><a name="boxs"></a>
+</p><dl>
+<dt><a name="index-boxs-1"></a><u>Команда MGL:</u> <b>boxs</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-boxs-2"></a><u>Команда MGL:</u> <b>boxs</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует вертикальные ящики для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. См. также <a href="#surf">surf</a>, <a href="#dens">dens</a>, <a href="#tile">tile</a>, <a href="#step">step</a>. См. раздел <a href="mathgl_ru_9.html#Boxs-sample">Boxs &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-tile"></a>
+<p><a name="tile"></a>
+</p><dl>
+<dt><a name="index-tile-1"></a><u>Команда MGL:</u> <b>tile</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-tile-2"></a><u>Команда MGL:</u> <b>tile</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует плитки для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. График может использоваться как 3d обобщение <a href="#step">step</a>. См. также <a href="#surf">surf</a>, <a href="#boxs">boxs</a>, <a href="#step">step</a>, <a href="#tiles">tiles</a>. См. раздел <a href="mathgl_ru_9.html#Tile-sample">Tile &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-dens"></a>
+<p><a name="dens"></a>
+</p><dl>
+<dt><a name="index-dens-1"></a><u>Команда MGL:</u> <b>dens</b><i> zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-dens-2"></a><u>Команда MGL:</u> <b>dens</b><i> xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует график плотности для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zVal</var>. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетка. См. также <a href="#surf">surf</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>, <a href="#boxs">boxs</a>, <a href="#tile">tile</a>, <code>dens[xyz]</code>. См. раздел <a href="mathgl_ru_9.html#Dens-sample">Dens &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-cont"></a>
+<p><a name="cont"></a>
+</p><dl>
+<dt><a name="index-cont-1"></a><u>Команда MGL:</u> <b>cont</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-cont-2"></a><u>Команда MGL:</u> <b>cont</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует линии уровня для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zval</var> (или при <var>z=vdat</var>[k] если <code>zval==nan</code>). Линии уровня рисуются для <var>z</var>=<var>vdat</var>[k]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетка. Если <var>sch</var> содержит &lsquo;<samp>t</samp>&rsquo; или &lsquo;<samp>T</samp>&rsquo;, то значения <var>vdat</var>[k] будут выведены вдоль контуров над (или под) кривой. См. также <a href="#dens">dens</a>, <a href="#contf">contf</a>, <a href="#contd">contd</a>, <a href="#axial">axial</a>, <code>cont[xyz]</code>. См. раздел <a href="mathgl_ru_9.html#Cont-sample">Cont &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cont-3"></a><u>Команда MGL:</u> <b>cont</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-cont-4"></a><u>Команда MGL:</u> <b>cont</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-contf"></a>
+<p><a name="contf"></a>
+</p><dl>
+<dt><a name="index-contf-1"></a><u>Команда MGL:</u> <b>contf</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-contf-2"></a><u>Команда MGL:</u> <b>contf</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zval</var> (или при <var>z=v</var>[k] если <code>zval=nan</code>). Линии уровня рисуются для <var>z</var>=<var>vdat</var>[k]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетка. См. также <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contd">contd</a>, <code>contf[xyz]</code>. См. раздел <a href="mathgl_ru_9.html#ContF-sample">ContF &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contf-3"></a><u>Команда MGL:</u> <b>contf</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-contf-4"></a><u>Команда MGL:</u> <b>contf</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-contd"></a>
+<p><a name="contd"></a>
+</p><dl>
+<dt><a name="index-contd-1"></a><u>Команда MGL:</u> <b>contd</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-contd-2"></a><u>Команда MGL:</u> <b>contd</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zval</var> (или при <var>z=v</var>[k] если <code>zval==nan</code>) цветами заданными явно. Линии уровня рисуются для <var>z</var>=<var>vdat</var>[k]. Строка <var>sch</var> задает цвет контуров: цвет k-го контура определяется символом <code>sch[k%strlen(sch)]</code>. См. также <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>, <code>cont[xyz]</code>. См. раздел <a href="mathgl_ru_9.html#ContD-sample">ContD &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contd-3"></a><u>Команда MGL:</u> <b>contd</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-contd-4"></a><u>Команда MGL:</u> <b>contd</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-axial"></a>
+<p><a name="axial"></a>
+</p><dl>
+<dt><a name="index-axial-1"></a><u>Команда MGL:</u> <b>axial</b><i> vdat zdat ['sch'='']</i></dt>
+<dt><a name="index-axial-2"></a><u>Команда MGL:</u> <b>axial</b><i> vdat xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует поверхность вращения линии уровня для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Линии уровня рисуются для <var>zdat</var>[i,j]=<var>vdat</var>[k]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Если строка содержит символы &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; или &lsquo;<samp>z</samp>&rsquo;, то ось вращения устанавливается в указанное направление (по умолчанию вдоль оси <a href="#axialdir">axialdir</a>). См. также <a href="#cont">cont</a>, <a href="#contf">contf</a>, <a href="#torus">torus</a>, <a href="#surf3">surf3</a>. См. раздел <a href="mathgl_ru_9.html#Axial-sample">Axial &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axial-3"></a><u>Команда MGL:</u> <b>axial</b><i> zdat ['sch'='' <code>num=3</code>]</i></dt>
+<dt><a name="index-axial-4"></a><u>Команда MGL:</u> <b>axial</b><i> xdat ydat zdat ['sch'='' <code>num=3</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-grad"></a>
+<p><a name="grad"></a>
+</p><dl>
+<dt><a name="index-grad-1"></a><u>Команда MGL:</u> <b>grad</b><i> pdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-grad-2"></a><u>Команда MGL:</u> <b>grad</b><i> xdat ydat pdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-grad-3"></a><u>Команда MGL:</u> <b>grad</b><i> xdat ydat zdat pdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Рисует линии градиента скалярного поля <var>pdat</var> заданного параметрически {<var>xdat</var>[i,j], <var>ydat</var>[i,j]} или {<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]}. Число линий пропорционально <var>num</var>. Линии рисуются только с границ интервала при <var>num</var>&lt;0. См. также <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#dens3">dens3</a>, <a href="#cont3">cont3</a>, <a href="#flow">flow</a>. См. раздел <a href="mathgl_ru_9.html#Grad-sample">Grad &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+
+<a name="index-grid2"></a>
+<p><a name="grid2"></a>
+</p><dl>
+<dt><a name="index-grid2-1"></a><u>Команда MGL:</u> <b>grid2</b><i> zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-grid2-2"></a><u>Команда MGL:</u> <b>grid2</b><i> xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует плоскую сету для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zval</var>. См. также <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="g_t3D-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029"></a>
+<h2 class="section">8.11 3D графики (MGL)</h2>
+
+<p>Эти функции строят графики для трехмерных (3D) массивов. Трехмерными считаются массивы, зависящие от трех параметров (индексов) подобно матрице <em>f(x_i,y_j,z_k), i=1...n, j=1...m, k=1...l</em>. Есть 5 основных типов 3D графиков: поверхность постоянного уровня (<a href="#surf3">surf3</a>), график плотности на срезе (<var>dens3</var>), линии уровня на срезе (<a href="#cont3">cont3</a>), закрашенные контуры уровня на срезе (<a href="#contf3">contf3</a>) и график объемной прозрачности типа облака (<a href="#cloud">cloud</a>). В функциях <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a> и <a href="#surf3">surf3</a> значения уровней можно задавать автоматически и вручную. Можно также нарисовать на срезе сетку (<a href="#grid3">grid3</a>) по массиву данных для улучшения вида графика плотности или линий уровня. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива. См. раздел <a href="mathgl_ru_9.html#g_t3D-plot-sample">Пример графиков 3D данных</a>, для примеров кода и графика.
+</p>
+<p>Строка <var>sch</var> задает цветовую схему (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>). Предыдущая цветовая схема используется по умолчанию. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). Если массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> не указаны, то используются массивы со значениями равно распределенными вдоль осей x, y, z.
+</p>
+
+<a name="index-surf3"></a>
+<p><a name="surf3"></a>
+</p><dl>
+<dt><a name="index-surf3-1"></a><u>Команда MGL:</u> <b>surf3</b><i> adat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3-2"></a><u>Команда MGL:</u> <b>surf3</b><i> xdat ydat zdat adat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) при <var>adat</var>(x,y,z)=<var>val</var>. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. См. также <a href="#cloud">cloud</a>, <a href="#dens3">dens3</a>, <a href="#surf3c">surf3c</a>, <a href="#surf3a">surf3a</a>, <a href="#axial">axial</a>. См. раздел <a href="mathgl_ru_9.html#Surf3-sample">Surf3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3-3"></a><u>Команда MGL:</u> <b>surf3</b><i> adat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3-4"></a><u>Команда MGL:</u> <b>surf3</b><i> xdat ydat zdat adat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Рисует <var>num</var> поверхностей уровня равномерно распределенных в интервале цветовой шкалы (см. <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-dens3"></a>
+<p><a name="dens3"></a>
+</p><dl>
+<dt><a name="index-dens3-1"></a><u>Команда MGL:</u> <b>dens3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-dens3-2"></a><u>Команда MGL:</u> <b>dens3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Рисует график плотности для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). График рисуется на срезе <var>sval</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Если <var>stl</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на срезе рисуется сетка. См. также <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a>, <a href="#dens">dens</a>, <a href="#grid3">grid3</a>. См. раздел <a href="mathgl_ru_9.html#Dens3-sample">Dens3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-densa"></a>
+<p><a name="densa"></a>
+</p><dl>
+<dt><a name="index-densa-1"></a><u>Команда MGL:</u> <b>densa</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-densa-2"></a><u>Команда MGL:</u> <b>densa</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Рисует графики плотности на всех центральных срезах 3d данных.
+</p></dd></dl>
+
+<a name="index-cont3"></a>
+<p><a name="cont3"></a>
+</p><dl>
+<dt><a name="index-cont3-1"></a><u>Команда MGL:</u> <b>cont3</b><i> vdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-cont3-2"></a><u>Команда MGL:</u> <b>cont3</b><i> vdat xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Рисует линии уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Линии рисуются для значений из массива <var>v</var> на срезе <var>sval</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Если <var>stl</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на срезе рисуется сетка. Если <var>sch</var> содержит &lsquo;<samp>t</samp>&rsquo; или &lsquo;<samp>T</samp>&rsquo;, то значения <var>vdat</var>[k] будут выведены вдоль контуров над (или под) кривой. См. также <a href="#dens3">dens3</a>, <a href="#contf3">contf3</a>, <a href="#cont">cont</a>, <a href="#grid3">grid3</a>. См. раздел <a href="mathgl_ru_9.html#Cont3-sample">Cont3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cont3-3"></a><u>Команда MGL:</u> <b>cont3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-cont3-4"></a><u>Команда MGL:</u> <b>cont3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-conta"></a>
+<p><a name="conta"></a>
+</p><dl>
+<dt><a name="index-conta-1"></a><u>Команда MGL:</u> <b>conta</b><i> adat ['sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-conta-2"></a><u>Команда MGL:</u> <b>conta</b><i> xdat ydat zdat adat ['sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Рисует линии уровня на всех центральных срезах 3d данных.
+</p></dd></dl>
+
+<a name="index-contf3"></a>
+<p><a name="contf3"></a>
+</p><dl>
+<dt><a name="index-contf3-1"></a><u>Команда MGL:</u> <b>contf3</b><i> vdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-contf3-2"></a><u>Команда MGL:</u> <b>contf3</b><i> vdat xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Линии рисуются для значений из массива <var>v</var> на срезе <var>sval</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Если <var>stl</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на срезе рисуется сетка. См. также <a href="#dens3">dens3</a>, <a href="#cont3">cont3</a>, <a href="#contf">contf</a>, <a href="#grid3">grid3</a>. См. раздел <a href="mathgl_ru_9.html#ContF3-sample">ContF3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contf3-3"></a><u>Команда MGL:</u> <b>contf3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-contf3-4"></a><u>Команда MGL:</u> <b>contf3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-contfa"></a>
+<p><a name="contfa"></a>
+</p><dl>
+<dt><a name="index-contfa-1"></a><u>Команда MGL:</u> <b>contfa</b><i> adat ['sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-contfa-2"></a><u>Команда MGL:</u> <b>contfa</b><i> xdat ydat zdat adat ['sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня на всех центральных срезах 3d данных.
+</p></dd></dl>
+
+<a name="index-grid3"></a>
+<p><a name="grid3"></a>
+</p><dl>
+<dt><a name="index-grid3-1"></a><u>Команда MGL:</u> <b>grid3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-grid3-2"></a><u>Команда MGL:</u> <b>grid3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Рисует сетку для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). График рисуется на срезе <var>sval</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. См. также <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a>, <a href="#dens3">dens3</a>, <a href="#grid2">grid2</a>.
+</p></dd></dl>
+
+<a name="index-grida"></a>
+<p><a name="grida"></a>
+</p><dl>
+<dt><a name="index-grida-1"></a><u>Команда MGL:</u> <b>grida</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-grida-2"></a><u>Команда MGL:</u> <b>grida</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Рисует сетку на всех центральных срезах 3d данных.
+</p></dd></dl>
+
+<a name="index-cloud"></a>
+<p><a name="cloud"></a>
+</p><dl>
+<dt><a name="index-cloud-1"></a><u>Команда MGL:</u> <b>cloud</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-cloud-2"></a><u>Команда MGL:</u> <b>cloud</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Рисует облачный график для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). График состоит из кубиков с цветом и прозрачностью пропорциональной значениям <var>adat</var>. Результат похож на облако &ndash; малые значения прозрачны, а большие нет. Число кубиков зависит от <a href="#meshnum">meshnum</a>. Параметр <var>alpha</var> меняет общую прозрачность графика. См. также <a href="#surf3">surf3</a>. См. раздел <a href="mathgl_ru_9.html#Cloud-sample">Cloud &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-beam"></a>
+<p><a name="beam"></a>
+</p><dl>
+<dt><a name="index-beam-1"></a><u>Команда MGL:</u> <b>beam</b><i> tr g1 g2 adat <code>rval</code> ['sch'='' <code>flag=0 num=3</code>]</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива <var>adat</var> при постоянном значении <var>adat</var>=<var>val</var>. Это специальный тип графика для <var>adat</var> заданного в сопровождающей системе координат вдоль кривой <var>tr</var> с ортами <var>g1</var>, <var>g2</var> и с поперечным размером <var>rval</var>. Переменная <var>flag</var> &ndash; битовый флаг: &lsquo;<samp>0x1</samp>&rsquo; - рисовать в сопровождающих (не лабораторных) координатах; &lsquo;<samp>0x2</samp>&rsquo; - рисовать проекцию на плоскость <em>\rho-z</em>; &lsquo;<samp>0x4</samp>&rsquo; - рисовать нормированное в каждом сечении поле. Размеры массивов по 1-му индексу <var>tr</var>, <var>g1</var>, <var>g2</var> должны быть nx&gt;2. Размеры массивов по 2-му индексу <var>tr</var>, <var>g1</var>, <var>g2</var> и размер по 3-му индексу массива <var>adat</var> должны быть одинаковы. См. также <a href="#surf3">surf3</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Dual-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0430_0440_043d_044be-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029"></a>
+<h2 class="section">8.12 Парные графики (MGL)</h2>
+
+<p>Эти команды строят графики для двух связанных массивов. Есть несколько основных типов 3D графиков: поверхность и поверхность уровня с окраской по второму массиву (<a href="#surfc">surfc</a>, <a href="#surf3c">surf3c</a>), поверхность и поверхность уровня с прозрачностью по второму массиву (<a href="#surfa">surfa</a>, <a href="#surf3a">surf3a</a>), плитки переменного размера (<a href="#tiles">tiles</a>), диаграмма точечного отображения (<a href="#map">map</a>), STFA диаграмма (<a href="#stfa">stfa</a>). В командах <a href="#surf3a">surf3a</a> и <a href="#surf3c">surf3c</a> значения уровней можно задавать автоматически и вручную. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива.
+</p>
+<p>Строка <var>sch</var> задает цветовую схему (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>). Предыдущая цветовая схема используется по умолчанию. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). Если массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> не указаны, то используются массивы со значениями равно распределенными вдоль осей x, y, z.
+</p>
+<a name="index-surfc"></a>
+<p><a name="surfc"></a>
+</p><dl>
+<dt><a name="index-surfc-1"></a><u>Команда MGL:</u> <b>surfc</b><i> zdat cdat ['sch'='']</i></dt>
+<dt><a name="index-surfc-2"></a><u>Команда MGL:</u> <b>surfc</b><i> xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Рисует параметрически заданную поверхность {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} с цветом, заданным массивом <var>cdat</var>[i,j]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на поверхности рисуется сетка. См. также <a href="#surf">surf</a>, <a href="#surfa">surfa</a>, <a href="#surf3c">surf3c</a>. См. раздел <a href="mathgl_ru_9.html#SurfC-sample">SurfC &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-surf3c"></a>
+<p><a name="surf3c"></a>
+</p><dl>
+<dt><a name="index-surf3c-1"></a><u>Команда MGL:</u> <b>surf3c</b><i> adat cdat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3c-2"></a><u>Команда MGL:</u> <b>surf3c</b><i> xdat ydat zdat adat cdat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) при <var>a</var>(x,y,z)=<var>val</var>. Аналогично <a href="#surf3">surf3</a>, но цвет задается массивом <var>cdat</var>. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. См. также <a href="#surf3">surf3</a>, <a href="#surfc">surfc</a>, <a href="#surf3a">surf3a</a>. См. раздел <a href="mathgl_ru_9.html#Surf3C-sample">Surf3C &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3c-3"></a><u>Команда MGL:</u> <b>surf3c</b><i> adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3c-4"></a><u>Команда MGL:</u> <b>surf3c</b><i> xdat ydat zdat adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Рисует <var>num</var> поверхностей уровня равномерно распределенных в интервале цветовой шкалы (см. <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-surfa"></a>
+<p><a name="surfa"></a>
+</p><dl>
+<dt><a name="index-surfa-1"></a><u>Команда MGL:</u> <b>surfa</b><i> zdat cdat ['sch'='']</i></dt>
+<dt><a name="index-surfa-2"></a><u>Команда MGL:</u> <b>surfa</b><i> xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Рисует параметрически заданную поверхность {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} с прозрачностью, заданным массивом <var>cdat</var>[i,j]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на поверхности рисуется сетка. См. также <a href="#surf">surf</a>, <a href="#surfc">surfc</a>, <a href="#surf3a">surf3a</a>. См. раздел <a href="mathgl_ru_9.html#SurfA-sample">SurfA &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-surf3a"></a>
+<p><a name="surf3a"></a>
+</p><dl>
+<dt><a name="index-surf3a-1"></a><u>Команда MGL:</u> <b>surf3a</b><i> adat cdat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3a-2"></a><u>Команда MGL:</u> <b>surf3a</b><i> xdat ydat zdat adat cdat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) при <var>a</var>(x,y,z)=<var>val</var>. Аналогично <a href="#surf3">surf3</a>, но прозрачность задается массивом <var>cdat</var>. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. См. также <a href="#surf3">surf3</a>, <a href="#surfa">surfa</a>, <a href="#surf3c">surf3c</a>. См. раздел <a href="mathgl_ru_9.html#Surf3A-sample">Surf3A &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3a-3"></a><u>Команда MGL:</u> <b>surf3a</b><i> adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3a-4"></a><u>Команда MGL:</u> <b>surf3a</b><i> xdat ydat zdat adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Рисует <var>num</var> поверхностей уровня равномерно распределенных в интервале цветовой шкалы (см. <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-tiles"></a>
+<p><a name="tiles"></a>
+</p><dl>
+<dt><a name="index-tiles-1"></a><u>Команда MGL:</u> <b>tiles</b><i> zdat rdat ['sch'='']</i></dt>
+<dt><a name="index-tiles-2"></a><u>Команда MGL:</u> <b>tiles</b><i> xdat ydat zdat rdat ['sch'='']</i></dt>
+<dd><p>Рисует плитки для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Аналогично <a href="#tile">tile</a>, но размер плиток задается массивов <var>rdat</var>. Это создает эффект &quot;прозрачности&quot; при экспорте в файлы EPS. См. также <a href="#surfa">surfa</a>, <a href="#tile">tile</a>. См. раздел <a href="mathgl_ru_9.html#TileS-sample">TileS &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-map"></a>
+<p><a name="map"></a>
+</p><dl>
+<dt><a name="index-map-1"></a><u>Команда MGL:</u> <b>map</b><i> udat vdat ['sch'='' <code>pnts=on</code>]</i></dt>
+<dt><a name="index-map-2"></a><u>Команда MGL:</u> <b>map</b><i> xdat ydat udat vdat ['sch'='' <code>pnts=on</code>]</i></dt>
+<dd><p>Визуализирует точечное отображение для матриц {<var>udat</var>, <var>vdat</var> } параметрически зависящих от координат <var>xdat</var>, <var>ydat</var>. Исходное положение ячейки задает ее цвет. Высота пропорциональна якобиану Jacobian(udat,vdat). График является аналогом диаграммы Арнольда. Если <code>pnts=off</code>, то рисуются грани, иначе цветные точки рисуются в узлах матриц (полезно для &quot;запутанного&quot; отображения). См. раздел <a href="mathgl_ru_9.html#Map-sample">Map &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-stfa"></a>
+<p><a name="stfa"></a>
+</p><dl>
+<dt><a name="index-stfa-1"></a><u>Команда MGL:</u> <b>stfa</b><i> re im <code>dn</code> ['sch'='' <code>pnts=on</code>]</i></dt>
+<dt><a name="index-stfa-2"></a><u>Команда MGL:</u> <b>stfa</b><i> xdat ydat re im <code>dn</code> ['sch'='' <code>pnts=on</code>]</i></dt>
+<dd><p>Рисует спектрограмму комплексного массива <var>re</var>+i*<code>im</code> для Фурье размером <var>dn</var> точек. Параметр <var>dn</var> &ndash; любое четное число. Например в 1D случае, результатом будет график плотности от массива <em>res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn</em> размером {int(nx/dn), dn, ny}. Массивы <var>re</var>, <var>im</var> параметрически зависят от координат <var>xdat</var>, <var>ydat</var>. См. раздел <a href="mathgl_ru_9.html#STFA-sample">STFA &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+
+
+
+<hr size="6">
+<a name="Vector-fields-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0412e_043a_0442_043e_0440_043d_044be-_043f_043e_043bya-_0028MGL_0029"></a>
+<h2 class="section">8.13 Векторные поля (MGL)</h2>
+
+<p>Эти функции рисуют графики для 2D и 3D векторных полей. Есть несколько типов графиков: просто векторное поле (<a href="#vect">vect</a>), вектора вдоль траектории (<a href="#traj">traj</a>), векторное поле каплями (<a href="#dew">dew</a>), нити тока (<a href="#flow">flow</a>), трубки тока (<a href="#pipe">pipe</a>). Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива.
+</p>
+<p>Строка <var>sch</var> задает цветовую схему (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>). Предыдущая цветовая схема используется по умолчанию. Все размеры массивов <var>ax</var> и <var>ay</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var> и <var>ax</var> должны быть одинаковы. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>ax</var>). График строится для каждого z среза <var>ax</var>, <var>ay</var> для 2D случаев.
+</p>
+<a name="index-traj"></a>
+<p><a name="traj"></a>
+</p><dl>
+<dt><a name="index-traj-1"></a><u>Команда MGL:</u> <b>traj</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan len=0</code>]</i></dt>
+<dt><a name="index-traj-2"></a><u>Команда MGL:</u> <b>traj</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>len=0</code>]</i></dt>
+<dd><p>Рисует вектора {<var>udat</var>, <var>vdat</var>, <var>wdat</var>} вдоль кривой {<var>xdat</var>, <var>ydat</var>, <var>zdat</var>}. Длина векторов пропорциональна <em>\sqrtudat^2+vdat^2+wdat^2</em>. Строка <var>pen</var> задает цвет (see section <a href="mathgl_ru_1.html#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=''</code>). Параметр <var>len</var> задает фактор длины векторов (если не нуль) или выбирать длину пропорционально расстоянию между точками кривой (если <var>len</var>=0). См. также <a href="#vect">vect</a>. См. раздел <a href="mathgl_ru_9.html#Traj-sample">Traj &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-vect"></a>
+<p><a name="vect"></a>
+</p><dl>
+<dt><a name="index-vect-1"></a><u>Команда MGL:</u> <b>vect</b><i> udat vdat ['sch'='' <code>zval=nan flag=0</code>]</i></dt>
+<dt><a name="index-vect-2"></a><u>Команда MGL:</u> <b>vect</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan flag=0</code>]</i></dt>
+<dd><p>Рисует векторное поле {<var>udat</var>, <var>vdat</var>} параметрически зависящее от координат <var>xdat</var>, <var>ydat</var> на плоскости при <var>z</var>=<var>zval</var>. Длина и цвет векторов пропорциональна <em>\sqrtax^2+ay^2</em>. Число рисуемых векторов зависит от <a href="#meshnum">meshnum</a>. Параметр <var>flag</var> побитовый флаг для настройки вид векторов: <code>1</code> &ndash; двуцветный вектор, <code>2</code> &ndash; одинаковая длина векторов, <code>4</code> &ndash; рисует стрелку в точку сетки, <code>8</code> &ndash; рисует стрелку с серединой в точке сетки, <code>16</code> &ndash; рисует штрихи вместо стрелок. См. также <a href="#flow">flow</a>, <a href="#dew">dew</a>, <a href="#vectc">vectc</a>. См. раздел <a href="mathgl_ru_9.html#Vect-sample">Vect &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vect-3"></a><u>Команда MGL:</u> <b>vect</b><i> udat vdat wdat ['sch'='' <code>flag=0</code>]</i></dt>
+<dt><a name="index-vect-4"></a><u>Команда MGL:</u> <b>vect</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>flag=0</code>]</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а длина и цвет пропорциональны <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mathgl_ru_9.html#Vect-3D-sample">Vect 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-vectc"></a>
+<p><a name="vectc"></a>
+</p><dl>
+<dt><a name="index-vectc-1"></a><u>Команда MGL:</u> <b>vectc</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-vectc-2"></a><u>Команда MGL:</u> <b>vectc</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Аналогично <a href="#vect">vect</a> c <code>flag=2+16=18</code>. См. раздел <a href="mathgl_ru_9.html#VectC-sample">VectC &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vectc-3"></a><u>Команда MGL:</u> <b>vectc</b><i> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-vectc-4"></a><u>Команда MGL:</u> <b>vectc</b><i> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а длина и цвет пропорциональны <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mathgl_ru_9.html#VectC-3D-sample">VectC 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-vectl"></a>
+<p><a name="vectl"></a>
+</p><dl>
+<dt><a name="index-vectl-1"></a><u>Команда MGL:</u> <b>vectl</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-vectl-2"></a><u>Команда MGL:</u> <b>vectl</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Аналогично <a href="#vect">vect</a> c <code>flag=1+16=17</code>. См. раздел <a href="mathgl_ru_9.html#VectL-sample">VectL &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vectl-3"></a><u>Команда MGL:</u> <b>vectl</b><i> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-vectl-4"></a><u>Команда MGL:</u> <b>vectl</b><i> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а длина и цвет пропорциональны <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mathgl_ru_9.html#VectL-3D-sample">VectL 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-dew"></a>
+<p><a name="dew"></a>
+</p><dl>
+<dt><a name="index-dew-1"></a><u>Команда MGL:</u> <b>dew</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-dew-2"></a><u>Команда MGL:</u> <b>dew</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует капли для векторного поля {<var>udat</var>, <var>vdat</var>}, параметрически зависящего от координат <var>xdat</var>, <var>ydat</var> при <var>z=zval</var>. Замечу, что график требует много памяти и процессорного времени для своего создания! Цвет капель пропорционален <em>\sqrtax^2+ay^2</em>. Число капель определяется <a href="#meshnum">meshnum</a>. См. также <a href="#vect">vect</a>. См. раздел <a href="mathgl_ru_9.html#Dew-sample">Dew &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-flow"></a>
+<p><a name="flow"></a>
+</p><dl>
+<dt><a name="index-flow-1"></a><u>Команда MGL:</u> <b>flow</b><i> udat vdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-flow-2"></a><u>Команда MGL:</u> <b>flow</b><i> xdat ydat udat vdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dd><p>Рисует нити тока для векторного поля {<var>udat</var>, <var>vdat</var>}, параметрически зависящего от координат <var>xdat</var>, <var>ydat</var> на плоскости при z = <var>zval</var>. Число нитей пропорционально <var>num</var>. При <var>num</var>&gt;0 нитей могут стартовать и изнутри сетки, в противном случае только с краев. Цвет нитей пропорционален <em>\sqrtudat^2+vdat^2</em>. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника). См. также <a href="#pipe">pipe</a>, <a href="#vect">vect</a>. См. раздел <a href="mathgl_ru_9.html#Flow-sample">Flow &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-3"></a><u>Команда MGL:</u> <b>flow</b><i> udat vdat wdat ['sch'='' <code>num=3</code>]</i></dt>
+<dt><a name="index-flow-4"></a><u>Команда MGL:</u> <b>flow</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>num=3</code>]</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а цвет пропорционален <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mathgl_ru_9.html#Flow-3D-sample">Flow 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-5"></a><u>Команда MGL:</u> <b>flow</b><i> <code>x0 y0</code> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-flow-6"></a><u>Команда MGL:</u> <b>flow</b><i> <code>x0 y0</code> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует нить тока из точки {<var>x0</var>, <var>y0</var>} для векторного поля {<var>udat</var>, <var>vdat</var>}, параметрически зависящего от координат <var>xdat</var>, <var>ydat</var> на плоскости при z = <var>zval</var>. Цвет нити пропорционален <em>\sqrtudat^2+vdat^2</em>. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-7"></a><u>Команда MGL:</u> <b>flow</b><i> <code>x0 y0 z0</code> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-flow-8"></a><u>Команда MGL:</u> <b>flow</b><i> <code>x0 y0 z0</code> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а цвет пропорционален <em>\sqrtudat^2+vdat^2+wdat^2</em>.
+</p></dd></dl>
+
+
+<a name="index-pipe"></a>
+<p><a name="pipe"></a>
+</p><dl>
+<dt><a name="index-pipe-1"></a><u>Команда MGL:</u> <b>pipe</b><i> udat vdat ['sch'='' <code>r0=0.05 num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-pipe-2"></a><u>Команда MGL:</u> <b>pipe</b><i> xdat ydat udat vdat ['sch'='' <code>r0=0.05 num=5 zval=nan</code>]</i></dt>
+<dd><p>Рисует трубки тока для векторного поля {<var>udat</var>, <var>vdat</var>}, параметрически зависящего от координат <var>xdat</var>, <var>ydat</var> на плоскости при z = <var>zval</var>. Число трубок пропорционально <var>num</var>. При <var>num</var>&gt;0 нитей могут стартовать и изнутри сетки, в противном случае только с краев. Цвет и радиус трубок пропорционален <em>\sqrtudat^2+vdat^2</em>. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника). Параметр <var>r0</var> задает радиус трубок. При <var>r0</var>&lt;0 радиус трубок обратно пропорционален их амплитуде. См. также <a href="#flow">flow</a>, <a href="#vect">vect</a>. См. раздел <a href="mathgl_ru_9.html#Pipe-sample">Pipe &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-pipe-3"></a><u>Команда MGL:</u> <b>pipe</b><i> udat vdat wdat ['sch'='' <code>r0=0.05 num=3</code>]</i></dt>
+<dt><a name="index-pipe-4"></a><u>Команда MGL:</u> <b>pipe</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>r0=0.05 num=3</code>]</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а цвет пропорционален <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mathgl_ru_9.html#Pipe-3D-sample">Pipe 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Other-plotting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-fields-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043e_0447_0438e-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029"></a>
+<h2 class="section">8.14 Прочие графики (MGL)</h2>
+
+<p>Это команды, не относящиеся к какой-то специальной категории. Сюда входят функции построения графиков по текстовым формулам (<a href="#fplot">fplot</a>, <a href="#fsurf">fsurf</a>), рисования поверхностей из треугольников (<a href="#triplot">triplot</a>), произвольных точек в пространстве (<a href="#dots">dots</a>) и реконструкции по ним поверхности (<a href="#crust">crust</a>), графики плотности и линии уровня на плоскостях, перпендикулярных осям x, y или z (dens[xyz], cont[xyz], contf[xyz]). Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива. Строка <var>sch</var> задает цветовую схему (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>). Предыдущая цветовая схема используется по умолчанию.
+</p>
+<a name="index-densx"></a>
+<a name="index-densy"></a>
+<a name="index-densz"></a>
+<p><a name="densx"></a> <a name="densy"></a> <a name="densz"></a>
+</p><dl>
+<dt><a name="index-densx-1"></a><u>Команда MGL:</u> <b>densx</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dt><a name="index-densy-1"></a><u>Команда MGL:</u> <b>densy</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dt><a name="index-densz-1"></a><u>Команда MGL:</u> <b>densz</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dd><p>Рисуют график плотности на x, y или z плоскостях. Если <var>dat</var> &ndash; 3d массив, то выполняется интерполяция к заданному срезу <var>val</var>. Функции полезны для создания проекций 3D массивов на оси координат. См. также <code>cont[xyz], contf[xyz]</code>, <a href="#dens">dens</a>. См. раздел <a href="mathgl_ru_9.html#Dens-projection-sample">Dens projection &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-contx"></a>
+<a name="index-conty"></a>
+<a name="index-contz"></a>
+<p><a name="contz"></a> <a name="conty"></a> <a name="contx"></a>
+</p><dl>
+<dt><a name="index-contx-1"></a><u>Команда MGL:</u> <b>contx</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-conty-1"></a><u>Команда MGL:</u> <b>conty</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contz-1"></a><u>Команда MGL:</u> <b>contz</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dd><p>Рисуют линии уровня на x, y или z плоскостях. Если <var>dat</var> &ndash; 3d массив, то выполняется интерполяция к заданному срезу <var>val</var>. Функции полезны для создания проекций 3D массивов на оси координат. См. также <code>dens[xyz], contf[xyz]</code>, <a href="#cont">cont</a>. См. раздел <a href="mathgl_ru_9.html#Cont-projection-sample">Cont projection &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-contfx"></a>
+<a name="index-contfy"></a>
+<a name="index-contfz"></a>
+<p><a name="contfz"></a> <a name="contfy"></a> <a name="contfx"></a>
+</p><dl>
+<dt><a name="index-contfx-1"></a><u>Команда MGL:</u> <b>contfx</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contfy-1"></a><u>Команда MGL:</u> <b>contfy</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contfz-1"></a><u>Команда MGL:</u> <b>contfz</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dd><p>Рисуют закрашенные контуры уровня на x, y или z плоскостях. Если <var>dat</var> &ndash; 3d массив, то выполняется интерполяция к заданному срезу <var>val</var>. Функции полезны для создания проекций 3D массивов на оси координат. См. также <code>dens[xyz], cont[xyz]</code>, <a href="#contf">contf</a>.
+</p></dd></dl>
+
+<a name="index-dots"></a>
+<p><a name="dots"></a>
+</p><dl>
+<dt><a name="index-dots-1"></a><u>Команда MGL:</u> <b>dots</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-dots-2"></a><u>Команда MGL:</u> <b>dots</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Рисует произвольно расположенные точки {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если определен массив <var>adat</var>[i], то он задает прозрачность точек. См. также <a href="#crust">crust</a>, <a href="#mark">mark</a>, <a href="#plot">plot</a>. См. раздел <a href="mathgl_ru_9.html#Dots-sample">Dots &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-crust"></a>
+<p><a name="crust"></a>
+</p><dl>
+<dt><a name="index-crust-1"></a><u>Команда MGL:</u> <b>crust</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Реконструирует и рисует поверхность по произвольно расположенным точкам {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если строка содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. См. также <a href="#dots">dots</a>, <a href="#triplot">triplot</a>. См. раздел <a href="mathgl_ru_9.html#Crust-sample">Crust &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-triplot"></a>
+<p><a name="triplot"></a>
+</p><dl>
+<dt><a name="index-triplot-1"></a><u>Команда MGL:</u> <b>triplot</b><i> idat xdat ydat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-triplot-2"></a><u>Команда MGL:</u> <b>triplot</b><i> idat xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-triplot-3"></a><u>Команда MGL:</u> <b>triplot</b><i> idat xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Рисует поверхность из треугольников. Вершины треугольников задаются индексами <var>idat</var> в массиве точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если строка содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Размер по 1-му индексу массива <var>idat</var> должен быть 3 или больше. Массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> должны иметь одинаковые размеры. Массив <var>cdat</var> задает цвет треугольников (если <var>idat</var>.ny=<var>cdat</var>.nx) или цвет вершин (если <var>xdat</var>.nx=<var>cdat</var>.nx). См. также <a href="#dots">dots</a>, <a href="#crust">crust</a>, <a href="#quadplot">quadplot</a>, <a href="#tricont">tricont</a>.
+</p></dd></dl>
+
+<a name="index-tricont"></a>
+<p><a name="tricont"></a>
+</p><dl>
+<dt><a name="index-tricont-1"></a><u>Команда MGL:</u> <b>tricont</b><i> vdat idat xdat ydat zdat cdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tricont-2"></a><u>Команда MGL:</u> <b>tricont</b><i> vdat idat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tricont-3"></a><u>Команда MGL:</u> <b>tricont</b><i> idat xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Рисует линии уровня поверхности из треугольников при <var>z</var> = <var>zval</var> (или для z=<var>vdat</var>[k] если <code>zval==NAN</code>). Вершины треугольников задаются индексами <var>idat</var> в массиве точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Размер по 1-му индексу массива <var>idat</var> должен быть 3 или больше. Массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> должны иметь одинаковые размеры. Массив <var>cdat</var> (если указан) задает цвет треугольников (если <var>idat</var>.ny=<var>cdat</var>.nx) или цвет вершин (если <var>xdat</var>.nx=<var>cdat</var>.nx). См. также <a href="#triplot">triplot</a>, <a href="#cont">cont</a>.
+</p></dd></dl>
+
+<a name="index-quadplot"></a>
+<p><a name="quadplot"></a>
+</p><dl>
+<dt><a name="index-quadplot-1"></a><u>Команда MGL:</u> <b>quadplot</b><i> idat xdat ydat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-quadplot-2"></a><u>Команда MGL:</u> <b>quadplot</b><i> idat xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-quadplot-3"></a><u>Команда MGL:</u> <b>quadplot</b><i> idat xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Рисует поверхность из четырехугольников. Вершины треугольников задаются индексами <var>idat</var> в массиве точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если строка содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Размер по 1-му индексу массива <var>idat</var> должен быть 4 или больше. Массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> должны иметь одинаковые размеры. Массив <var>cdat</var> задает цвет четырехугольников (если <var>idat</var>.ny=<var>cdat</var>.nx) или цвет вершин (если <var>xdat</var>.nx=<var>cdat</var>.nx). См. также <a href="#triplot">triplot</a>.
+</p></dd></dl>
+
+<a name="index-fplot"></a>
+<p><a name="fplot"></a>
+</p><dl>
+<dt><a name="index-fplot-1"></a><u>Команда MGL:</u> <b>fplot</b><i> 'y(x)' ['pen'='' <code>zval=nan num=100</code>]</i></dt>
+<dd><p>Рисует функцию &lsquo;<samp>y(x)</samp>&rsquo; в плоскости z=<var>zval</var> с координатой &lsquo;<samp>x</samp>&rsquo; в диапазоне x-оси координат. Параметр <var>num</var> задает минимальное число точек по координате для графика. См. также <a href="#plot">plot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fplot-2"></a><u>Команда MGL:</u> <b>fplot</b><i> 'x(t)' 'y(t)' 'z(t)' ['pen'='' <code>num=100</code>]</i></dt>
+<dd><p>Рисует параметрическую кривую {&lsquo;<samp>x(t)</samp>&rsquo;, &lsquo;<samp>y(t)</samp>&rsquo;, &lsquo;<samp>z(t)</samp>&rsquo;}, где координата &lsquo;<samp>t</samp>&rsquo; меняется в диапазоне [0, 1]. Параметр <var>num</var> задает минимальное число точек по координате для графика. См. также <a href="#plot">plot</a>.
+</p></dd></dl>
+
+<a name="index-fsurf"></a>
+<p><a name="fsurf"></a>
+</p><dl>
+<dt><a name="index-fsurf-1"></a><u>Команда MGL:</u> <b>fsurf</b><i> 'z(x,y)' ['sch'='' <code>num=100</code>]</i></dt>
+<dd><p>Рисует поверхность &lsquo;<samp>z(x,y)</samp>&rsquo; с координатами &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; в диапазоне x-,y-осей координат. Параметр <var>num</var> задает минимальное число точек по координатам для графика. См. также <a href="#surf">surf</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fsurf-2"></a><u>Команда MGL:</u> <b>fsurf</b><i> 'x(u,v)' 'y(u,v)' 'z(u,v)' ['sch'='' <code>num=100</code>]</i></dt>
+<dd><p>Рисует параметрическую поверхность {&lsquo;<samp>x(u,v)</samp>&rsquo;, &lsquo;<samp>y(u,v)</samp>&rsquo;, &lsquo;<samp>z(u,v)</samp>&rsquo;}, где координаты &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo; меняются в диапазоне [0, 1]. Параметр <var>num</var> задает минимальное число точек по координатам для графика. См. также <a href="#surf">surf</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Nonlinear-fitting-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-plotting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-create-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-_0028MGL_0029-1"></a>
+<h2 class="section">8.15 Nonlinear fitting (MGL)</h2>
+
+<p>Эти команды подбирают параметры функций для наилучшей аппроксимации данных, т.е. минимизируют сумму <em>\sum_i (f(x_i, y_i, z_i) - a_i)^2/s_i^2</em>. При этом аппроксимирующая функция &lsquo;<samp>f</samp>&rsquo; может зависеть от одного аргумента &lsquo;<samp>x</samp>&rsquo; (1D случай), от двух аргументов &lsquo;<samp>x,y</samp>&rsquo; (2D случай) или от трех аргументов &lsquo;<samp>x,y,z</samp>&rsquo; (3D случай). Функция &lsquo;<samp>f</samp>&rsquo; также может зависеть от параметров. Список параметров задается строкой <var>var</var> (например, &lsquo;<samp>abcd</samp>&rsquo;). Обычно пользователь должен предоставить начальные значения параметров в переменной <var>ini</var>. Однако, при его отсутствии используются нулевые значения.
+</p>
+<p>Команды <a href="#fit">fit</a> и <a href="#fits">fits</a> не рисуют полученные массивы. Они заполняют массив <var>fit</var> по формуле &lsquo;<samp>f</samp>&rsquo; с найденными коэффициентами. При этом, координаты &lsquo;<samp>x,y,z</samp>&rsquo; равно распределены в вдоль осей координат. Число точек в <var>fit</var> выбирается максимальным из размера массива <var>fit</var> и 100. Формулу с найденными коэффициентами можно вывести с помощью команды <a href="#putsfit">putsfit</a>. См. раздел <a href="mathgl_ru_9.html#Fitting-sample">Fitting &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<p>Размерность массивов должны быть не меньше, чем число указанных массивов <var>xdat</var>, <var>ydat</var>, <var>zdat</var>. Также подбор коэффициентов будет осуществляться только вдоль указанных направлений (например, вдоль x и y если указаны только <var>xdat</var> и <var>ydat</var>). Если массив <var>xdat</var> не указан, то используется массив со значениями равно распределенными вдоль оси x.
+</p>
+<a name="index-fits"></a>
+<p><a name="fits"></a>
+</p><dl>
+<dt><a name="index-fits-1"></a><u>Команда MGL:</u> <b>fits</b><i> adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-2"></a><u>Команда MGL:</u> <b>fits</b><i> xdat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-3"></a><u>Команда MGL:</u> <b>fits</b><i> xdat ydat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-4"></a><u>Команда MGL:</u> <b>fits</b><i> xdat ydat zdat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-, y- и z-направлений для массива заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) с весовыми коэффициентами <var>sdat</var>[i,j,k].
+</p></dd></dl>
+
+<a name="index-fit"></a>
+<p><a name="fit"></a>
+</p><dl>
+<dt><a name="index-fit-1"></a><u>Команда MGL:</u> <b>fit</b><i> adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-2"></a><u>Команда MGL:</u> <b>fit</b><i> xdat adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-3"></a><u>Команда MGL:</u> <b>fit</b><i> xdat ydat adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-4"></a><u>Команда MGL:</u> <b>fit</b><i> xdat ydat zdat adat 'func' 'var' [ini=0]</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-, y- и z-направлений для массива заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) с весовыми коэффициентами равными 1.
+</p></dd></dl>
+
+<a name="index-putsfit"></a>
+<p><a name="putsfit"></a>
+</p><dl>
+<dt><a name="index-putsfit-1"></a><u>Команда MGL:</u> <b>putsfit</b><i> <code>x y</code> ['pre'='' 'fnt'='' <code>size=-1</code>]</i></dt>
+<dd><p>Печатает последнюю подобранную формулу с найденными коэффициентами в точке {<var>x</var>, <var>y</var>}. Строка <var>pre</var> будет напечатана перед формулой. Все другие параметры такие же как в <a href="#Text-printing-_0028MGL_0029">Вывод текста (MGL)</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Data-create-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-filling-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_043e_0437_0434_0430_043d_0438e-_0434_0430_043d_043d_044b_0445-_0028MGL_0029"></a>
+<h2 class="section">8.16 Создание данных (MGL)</h2>
+
+<a name="index-new"></a>
+<p><a name="new"></a>
+</p><dl>
+<dt><a name="index-new-1"></a><u>Команда MGL:</u> <b>new</b><i> dat [<code>nx=1 ny=1 nz=1</code>]</i></dt>
+<dd><p>Создает/пересоздает массив с именем <var>dat</var> данных указанного размера и заполняет его нулями. Ничего не делает при <var>nx</var>, <var>ny</var>, <var>nz</var> отрицательных или равных нулю.
+</p></dd></dl>
+
+<a name="index-var"></a>
+<p><a name="var"></a>
+</p><dl>
+<dt><a name="index-var-1"></a><u>Команда MGL:</u> <b>var</b><i> dat <code>num v1 [v2=nan]</code></i></dt>
+<dd><p>Создает одномерный массив с именем <var>dat</var> размером <code>num</code> и заполняет его равномерно в диапазоне [<var>v1</var>, <var>v2</var>]. Если <var>v2</var>=<code>nan</code>, то используется <var>v2=v1</var>. 
+</p></dd></dl>
+
+<a name="index-list"></a>
+<p><a name="list"></a>
+</p><dl>
+<dt><a name="index-list-1"></a><u>Команда MGL:</u> <b>list</b><i> dat <code>v1 ...</code></i></dt>
+<dd><p>Создает массив с именем <var>dat</var> и заполняет его числовыми значениями аргументов <code>v1 ...</code>. Команда может создавать 1d- и 2d-массивы. Для создания 2d-массивов требуется указать разделитель строк данных &lsquo;<samp>|</samp>&rsquo;. Размер массива будет [максимальное число чисел в строке * число строк]. Например, команда <code>list 1 | 2 3</code> создаст массив [1 0; 2 3]. Отмечу, что максимальное число аргументов 1000. 
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-list-2"></a><u>Команда MGL:</u> <b>list</b><i> dat d1 ...</i></dt>
+<dd><p>Создает массив с именем <var>dat</var> и заполняет его числами из массивов <code>d1 ...</code>. Команда может создавать 2d- и 3d-массивы (если аргументы 2d массивы). Младшие размерности всех массивов в аргументах должны быть равны размерности <var>d1</var>. Отмечу, что максимальное число аргументов 1000. 
+</p></dd></dl>
+
+<a name="index-copy"></a>
+<p><a name="copy"></a>
+</p><dl>
+<dt><a name="index-copy-1"></a><u>Команда MGL:</u> <b>copy</b><i> dat dat2 ['eq'='' <code>on_axis=on</code>]</i></dt>
+<dt><a name="index-copy-2"></a><u>Команда MGL:</u> <b>copy</b><i> dat <code>val</code></i></dt>
+<dd><p>Создает массив с именем <var>dat</var> и копирует в него данные из массива <var>dat2</var>. При этом, если указан параметр <var>eq</var>, то данные будут изменены по формуле аналогично команде <a href="#fill">fill</a> (для <code>on_axis=on</code>) или <a href="#modify">modify</a> (для <code>on_axis=off</code>).
+</p></dd></dl>
+
+<a name="index-idset"></a>
+<p><a name="idset"></a>
+</p><dl>
+<dt><a name="index-idset-1"></a><u>Команда MGL:</u> <b>idset</b><i> dat 'ids'</i></dt>
+<dd><p>Устанавливает символьные обозначения для колонок данных. Строка должна содержать символы &rsquo;a&rsquo;...&rsquo;z&rsquo; один на колонку (без пробелов).
+</p></dd></dl>
+
+<a name="index-info"></a>
+<p><a name="info"></a>
+</p><dl>
+<dt><a name="index-info-1"></a><u>Команда MGL:</u> <b>info</b><i> dat [<code>detail=off</code>]</i></dt>
+<dd><p>Выводит информацию о массиве (размер, максимальное/минимальное значение, моменты и пр.). При <code>detail=off</code> показывается только краткая информация.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-info-2"></a><u>Команда MGL:</u> <b>info</b><i> 'text'</i></dt>
+<dd><p>Выводит текст <var>text</var> как информацию (предупреждение).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Data-filling-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-create-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Rearrange-data-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0417_0430_043f_043e_043b_043de_043d_0438e-_0434_0430_043d_043d_044b_0445-_0028MGL_0029"></a>
+<h2 class="section">8.17 Заполнение данных (MGL)</h2>
+<a name="index-fill"></a>
+<a name="index-modify"></a>
+
+<a name="index-fill-1"></a>
+<p><a name="fill"></a>
+</p><dl>
+<dt><a name="index-fill-2"></a><u>Команда MGL:</u> <b>fill</b><i> dat v1 v2 ['dir'='x']</i></dt>
+<dd><p>Заполняет значениями равно распределенными в диапазоне [<var>v1</var>, <var>v2</var>] в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;,&lsquo;<samp>y</samp>&rsquo;,&lsquo;<samp>z</samp>&rsquo;}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fill-3"></a><u>Команда MGL:</u> <b>fill</b><i> dat 'eq' [vdat=0 wdat=0]</i></dt>
+<dd><p>Заполняет значениями вычисленными по формуле <var>eq</var>. Формула представляет собой произвольное выражение, зависящее от переменных &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Координаты &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; полагаются меняющимися в диапазоне осей координат (в отличие от <a href="#modify">modify</a>). Переменная &lsquo;<samp>u</samp>&rsquo; &ndash; значения исходного массива, переменные &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo; &ndash; значения массивов <var>vdat</var>, <var>wdat</var>. Последние могут быть опущены.
+</p></dd></dl>
+
+<a name="index-modify-1"></a>
+<p><a name="modify"></a>
+</p><dl>
+<dt><a name="index-modify-2"></a><u>Команда MGL:</u> <b>modify</b><i> dat 'eq' [<code>dim=0</code>]</i></dt>
+<dt><a name="index-modify-3"></a><u>Команда MGL:</u> <b>modify</b><i> dat 'eq' vdat [wdat=0]</i></dt>
+<dd><p>Заполняет значениями вычисленными по формуле <var>eq</var>. Формула представляет собой произвольное выражение, зависящее от переменных &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Координаты &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; полагаются меняющимися в диапазоне [0,1] (в отличие от <a href="#fill">fill</a>). Переменная &lsquo;<samp>u</samp>&rsquo; &ndash; значения исходного массива, переменные &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo; &ndash; значения массивов <var>vdat</var>, <var>wdat</var>. Последние могут быть опущены. Если указан <var>dim</var>&gt;0, то изменяются только слои &gt;=<var>dim</var>.
+</p></dd></dl>
+
+
+<a name="index-put"></a>
+<p><a name="put"></a>
+</p><dl>
+<dt><a name="index-put-1"></a><u>MGL command:</u> <b>put</b><i> dat <code>val [i=: j=: k=:]</code></i></dt>
+<dd><p>Присваивает значения (под-)массива <var>dat</var>[<var>i</var>, <var>j</var>, <var>k</var>] = <var>val</var>. Индексы <var>i</var>, <var>j</var>, <var>k</var> равные &lsquo;<samp>:</samp>&rsquo; задают значениия <var>val</var> для всего диапазона соответствующего направления(ий). Например, <code>put dat val : 0 :</code> задает <var>dat</var>[i,0,j]=<var>val</var> для i=0...(<var>dat</var>.nx-1), j=0...(<var>dat</var>.nz-1).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-put-2"></a><u>MGL command:</u> <b>put</b><i> dat vdat [<code>i=: j=: k=:</code>]</i></dt>
+<dd><p>Копирует значения из массива <var>vdat</var> в диапазон значений массива <var>dat</var>. Индексы <var>i</var>, <var>j</var>, <var>k</var> равные &lsquo;<samp>:</samp>&rsquo; задают диапазон изменения значений в соответствующих направление(ях). Младшие размерности массива <var>vdat</var> должны быть больше выбранного диапазона массива <var>dat</var>. Например, <code>put dat v : 0 :</code> присвоит <var>dat</var>[i,0,j]=<var>vdat</var>.ny&gt;<var>dat</var>.nz ? <var>vdat</var>[i,j] : <var>vdat</var>[i], где i=0...(<var>dat</var>.nx-1), j=0...(<var>dat</var>.nz-1) и условие vdat.nx&gt;=dat.nx выполнено.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Rearrange-data-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-filling-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#File-I_002fO-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_0437_043ce_043de_043d_0438e-_0440_0430_0437_043ce_0440_043e_0432-_0434_0430_043d_043d_044b_0445-_0028MGL_0029"></a>
+<h2 class="section">8.18 Изменение размеров данных (MGL)</h2>
+
+<a name="index-rearrange"></a>
+<p><a name="rearrange"></a>
+</p><dl>
+<dt><a name="index-rearrange-1"></a><u>Команда MGL:</u> <b>rearrange</b><i> dat <code>mx [my=0 mz=0]</code></i></dt>
+<dd><p>Изменяет размерность данных без изменения самого массива данных, так что результирующий массив <var>mx</var>*<var>my</var>*<var>mz</var> &lt; nx*ny*nz. Если один из параметров <var>my</var> или <var>mz</var> ноль, то он будет выбран оптимальным образом. Например, если <var>my</var>=0, то будет <var>my</var>=nx*ny*nz/<var>mx</var> и <var>mz</var>=1.
+</p></dd></dl>
+
+<a name="index-extend"></a>
+<p><a name="extend"></a>
+</p><dl>
+<dt><a name="index-extend-1"></a><u>Команда MGL:</u> <b>extend</b><i> dat <code>n1 [n2=0]</code></i></dt>
+<dd><p>Увеличивает размер данных путем вставки (|<var>n1</var>|+1) новых срезов после (для <var>n1</var>&gt;0) или перед (для <var>n1</var>&lt;0) существующими данными. Можно добавить сразу 2 размерности для 1d массива, используя второй параметр <var>n2</var>. Данные в новые срезы будут скопированы из существующих. Например, для <var>n1</var>&gt;0 новый массив будет
+a_ij^new = a_i^old where j=0...<var>n1</var>. Соответственно, для <var>n1</var>&lt;0 новый массив будет a_ij^new = a_j^old, где i=0...|<var>n1</var>|.
+</p></dd></dl>
+
+<a name="index-transpose"></a>
+<p><a name="transpose"></a>
+</p><dl>
+<dt><a name="index-transpose-1"></a><u>Команда MGL:</u> <b>transpose</b><i> dat ['dim'='yxz']</i></dt>
+<dd><p>Транспонирует (меняет порядок размерностей) массив данных. Новый порядок размерностей задается строкой <var>dim</var>.
+</p></dd></dl>
+
+<a name="index-squeeze"></a>
+<p><a name="squeeze"></a>
+</p><dl>
+<dt><a name="index-squeeze-1"></a><u>Команда MGL:</u> <b>squeeze</b><i> dat <code>rx [ry=1 rz=1 sm=off]</code></i></dt>
+<dd><p>Уменьшает размер данных путем удаления элементов с индексами не кратными <var>rx</var>, <var>ry</var>, <var>rz</var> соответственно. Параметр <var>smooth</var> задает использовать сглаживания
+(т.е. out[i]=\sum_{j=i,i+r} a[j]/r) или нет (т.е. out[i]=a[j*r]).
+</p></dd></dl>
+
+<a name="index-crop"></a>
+<p><a name="crop"></a>
+</p><dl>
+<dt><a name="index-crop-1"></a><u>Команда MGL:</u> <b>crop</b><i> dat <code>n1 n2</code> 'dir'</i></dt>
+<dd><p>Обрезает границы данных при <var>i</var>&lt;<var>n1</var> и <var>i</var>&gt;<var>n2</var> (при <var>n2</var>&gt;0) или <var>i</var>&gt;<code>n[xyz]</code>-<var>n2</var> (при <var>n2</var>&lt;=0) вдоль направления <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-delete"></a>
+<p><a name="delete"></a>
+</p><dl>
+<dt><a name="index-delete-1"></a><u>Команда MGL:</u> <b>delete</b><i> dat</i></dt>
+<dd><p>Удаляет массив <var>dat</var> и освобождает использованную память. Может быть полезно для больших неиспользуемых массивов.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-delete-2"></a><u>Команда MGL:</u> <b>delete</b><i> dat 'dir' <code>[pos=off num=0]</code></i></dt>
+<dd><p>Удаляет <var>num</var> срезов вдоль направления <var>dir</var> с позиции <var>pos</var>.
+</p></dd></dl>
+
+<a name="index-insert"></a>
+<p><a name="insert"></a>
+</p><dl>
+<dt><a name="index-insert-1"></a><u>Команда MGL:</u> <b>insert</b><i> dat 'dir' <code>[pos=off num=0]</code></i></dt>
+<dd><p>Вставляет <var>num</var> срезов вдоль направления <var>dir</var> с позиции <var>pos</var> и заполняет их нулями.
+</p></dd></dl>
+
+<hr size="6">
+<a name="File-I_002fO-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Rearrange-data-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Make-another-data-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0427_0442e_043d_0438e_002f_0441_043e_0445_0440_0430_043de_043d_0438e-_0434_0430_043d_043d_044b_0445-_0028MGL_0029"></a>
+<h2 class="section">8.19 Чтение/сохранение данных (MGL)</h2>
+
+<a name="index-read"></a>
+<p><a name="read"></a>
+</p><dl>
+<dt><a name="index-read-1"></a><u>Команда MGL:</u> <b>read</b><i> dat 'fname'</i></dt>
+<dd><p>Читает данные из текстового файла с разделителями символом пробела/табуляции с автоматическим определением размера массива. Двойной перевод строки начинает новый срез данных (по направлению z).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-read-2"></a><u>Команда MGL:</u> <b>read</b><i> dat 'fname' <code>mx [my=1 mz=1]</code></i></dt>
+<dd><p>Читает данные из текстового файла с заданными размерами. Ничего не делается если параметры <var>mx</var>, <var>my</var> или <var>mz</var> равны нулю или отрицательны.
+</p></dd></dl>
+
+<a name="index-readmat"></a>
+<p><a name="readmat"></a>
+</p><dl>
+<dt><a name="index-readmat-1"></a><u>Команда MGL:</u> <b>readmat</b><i> dat 'fname' [<code>dim=2</code>]</i></dt>
+<dd><p>Читает данные из текстового файла с размерами, указанными в первых <var>dim</var> числах файла. При этом переменная <var>dim</var> задает размерность (1d, 2d, 3d) данных.
+</p></dd></dl>
+
+<a name="index-readall"></a>
+<p><a name="readall"></a>
+</p><dl>
+<dt><a name="index-readall-1"></a><u>Команда MGL:</u> <b>readall</b><i> dat 'templ' <code>v1 v2 [dv=1 slice=off]</code></i></dt>
+<dd><p>Объединяет данные из нескольких текстовых файлов. Имена файлов определяются вызовом функции <code>sprintf(fname,templ,val);</code>, где <var>val</var> меняется от <var>v1</var> до <var>v2</var> с шагом <var>dv</var>. Данные загружаются один за другим в один и тот же срез данных (при <var>slice</var>=<code>off</code>) или срез-за-срезом (при <var>slice</var>=<code>on</code>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-readall-2"></a><u>Команда MGL:</u> <b>readall</b><i> dat 'templ' <code>[slice=off]</code></i></dt>
+<dd><p>Объединяет данные из нескольких текстовых файлов, чьи имена удовлетворяют шаблону <var>templ</var> (например, <var>templ</var>=<code>&quot;t_*.dat&quot;</code>). Данные загружаются один за другим в один и тот же срез данных (при <var>slice</var>=<code>off</code>) или срез-за-срезом (при <var>slice</var>=<code>on</code>).
+</p></dd></dl>
+
+<a name="index-save"></a>
+<p><a name="save"></a>
+</p><dl>
+<dt><a name="index-save-1"></a><u>Команда MGL:</u> <b>save</b><i> dat 'fname'</i></dt>
+<dd><p>Сохраняет массив данных в текстовый файл.
+</p></dd></dl>
+
+<a name="index-readhdf"></a>
+<p><a name="readhdf"></a>
+</p><dl>
+<dt><a name="index-readhdf-1"></a><u>Команда MGL:</u> <b>readhdf</b><i> dat 'fname' 'dname'</i></dt>
+<dd><p>Читает массив с именем <var>dname</var> из HDF5 или HDF4 файла <var>fname</var>.
+</p></dd></dl>
+
+<a name="index-savehdf"></a>
+<p><a name="savehdf"></a>
+</p><dl>
+<dt><a name="index-savehdf-1"></a><u>Команда MGL:</u> <b>savehdf</b><i> dat 'fname' 'dname'</i></dt>
+<dd><p>Сохраняет массив под именем <var>dname</var> в HDF5 или HDF4 файл <var>fname</var>.
+</p></dd></dl>
+
+<a name="index-import"></a>
+<p><a name="import"></a>
+</p><dl>
+<dt><a name="index-import-1"></a><u>Команда MGL:</u> <b>import</b><i> dat 'fname' 'sch' [<code>v1=0 v2=1</code>]</i></dt>
+<dd><p>Читает данные из растрового файла. RGB значения пикселов преобразуются в число в диапазоне [<var>v1</var>, <var>v2</var>] используя цветовую схему <var>sch</var> (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>).
+</p></dd></dl>
+
+<a name="index-export"></a>
+<p><a name="export"></a>
+</p><dl>
+<dt><a name="index-export-1"></a><u>Команда MGL:</u> <b>export</b><i> dat 'fname' 'sch' [<code>v1=0 v2=0</code>]</i></dt>
+<dd><p>Сохраняет данные в растровый файл. Числовые значения, нормированные в диапазон [<var>v1</var>, <var>v2</var>], преобразуются в RGB значения пикселов, используя цветовую схему <var>sch</var> (see section <a href="mathgl_ru_1.html#Color-scheme">Цветовая схема</a>). Если <var>v1</var>&gt;=<var>v2</var>, то значения <var>v1</var>, <var>v2</var> определяются автоматически как минимальное и максимальное значение данных.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Make-another-data-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#File-I_002fO-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Change-data-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_043e_0437_0434_0430_043d_0438e-_043d_043e_0432_044b_0445-_0434_0430_043d_043d_044b_0445-_0028MGL_0029"></a>
+<h2 class="section">8.20 Создание новых данных (MGL)</h2>
+
+<a name="index-combine"></a>
+<p><a name="combine"></a>
+</p><dl>
+<dt><a name="index-combine-1"></a><u>Команда MGL:</u> <b>combine</b><i> res adat bdat</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> прямое произведение массивов (наподобие, res[i,j] = adat[i]*bdat[j] и т.д.).
+</p></dd></dl>
+
+<a name="index-evaluate"></a>
+<p><a name="evaluate"></a>
+</p><dl>
+<dt><a name="index-evaluate-1"></a><u>Команда MGL:</u> <b>evaluate</b><i> res dat idat [<code>norm=on</code>]</i></dt>
+<dt><a name="index-evaluate-2"></a><u>Команда MGL:</u> <b>evaluate</b><i> res dat idat jdat [<code>norm=on</code>]</i></dt>
+<dt><a name="index-evaluate-3"></a><u>Команда MGL:</u> <b>evaluate</b><i> res dat idat jdat kdat [<code>norm=on</code>]</i></dt>
+<dd><p>Возвращает массив данных <var>res</var>, полученный в результате интерполяции исходного массива в точках других массивов (например, res[i,j]=dat[idat[i,j],jdat[i,j]]). Размеры массивов <var>idat</var>, <var>jdat</var>, <var>kdat</var> должны совпадать. Координаты в <var>idat</var>, <var>jdat</var>, <var>kdat</var> полагаются нормированными в диапазон [0,1] (при <var>norm</var>=<code>on</code>) или в диапазоны [0,nx], [0,ny], [0,nz] соответственно.
+</p></dd></dl>
+
+<a name="index-hist"></a>
+<p><a name="hist"></a>
+</p><dl>
+<dt><a name="index-hist-1"></a><u>Команда MGL:</u> <b>hist</b><i> res dat <code>num v1 v2 [nsub=0]</code></i></dt>
+<dt><a name="index-hist-2"></a><u>Команда MGL:</u> <b>hist</b><i> res dat wdat <code>num v1 v2 [nsub=0]</code></i></dt>
+<dd><p>Возвращает распределение (гистограмму) <var>res</var> из <var>num</var> точек от значений массива <var>dat</var> в диапазоне [<var>v1</var>, <var>v2</var>]. Массив <var>wdat</var> задает веса элементов (все веса равны 1 если <var>wdat</var> не указан). Параметр <var>nsub</var> задает число дополнительных точек интерполяции (для сглаживания получившейся гистограммы).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-hist-3"></a><u>Команда MGL:</u> <b>hist</b><i> res xdat adat</i></dt>
+<dt><a name="index-hist-4"></a><u>Команда MGL:</u> <b>hist</b><i> res xdat ydat adat</i></dt>
+<dt><a name="index-hist-5"></a><u>Команда MGL:</u> <b>hist</b><i> res xdat ydat zdat adat</i></dt>
+<dd><p>Возвращает распределение (гистограмму) <var>res</var> от значений массива <var>adat</var>, параметрически зависящего от координат {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} в диапазоне осей координат. Массив <var>adat</var> играет роль веса точки. Число точек в результате <var>res</var> &ndash; максимум из размера <var>res</var> и 100.
+</p></dd></dl>
+
+
+<a name="index-momentum"></a>
+<p><a name="momentum"></a>
+</p><dl>
+<dt><a name="index-momentum-1"></a><u>Команда MGL:</u> <b>momentum</b><i> res dat 'how' ['dir'='z']</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> момент (1d массив) данных <var>dat</var> вдоль направления <var>dir</var>. Строка <var>how</var> определяет тип момента. Момент определяется как
+res_k = \sum_ij how(x_i,y_j,z_k) dat_ij/ \sum_ij a_ij
+если <var>dir</var>=&lsquo;<samp>z</samp>&rsquo; и т.д. Координаты &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; &ndash; индексы массива в диапазоне [0,1].
+</p></dd></dl>
+
+<a name="index-sum"></a>
+<p><a name="sum"></a>
+</p><dl>
+<dt><a name="index-sum-1"></a><u>Команда MGL:</u> <b>sum</b><i> res dat 'dir'</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> результат суммирования <var>dat</var> вдоль направления(ий) <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-max"></a>
+<p><a name="max"></a>
+</p><dl>
+<dt><a name="index-max-1"></a><u>Команда MGL:</u> <b>max</b><i> res dat 'dir'</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> максимальное значение <var>dat</var> вдоль направления(ий) <var>dir</var>.
+Gets array which is the maximal data values in given direction or direction(s).
+</p></dd></dl>
+
+<a name="index-min"></a>
+<p><a name="min"></a>
+</p><dl>
+<dt><a name="index-min-1"></a><u>Команда MGL:</u> <b>min</b><i> res dat 'dir'</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> минимальное значение <var>dat</var> вдоль направления(ий) <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-resize"></a>
+<p><a name="resize"></a>
+</p><dl>
+<dt><a name="index-resize-1"></a><u>Команда MGL:</u> <b>resize</b><i> res dat <code>mx [my=1 mz=1]</code></i></dt>
+<dd><p>Возвращает массив данных <var>res</var> размером <var>mx</var>, <var>my</var>, <var>mz</var> со значениями полученными интерполяцией значений массива <var>dat</var>.
+</p></dd></dl>
+
+<a name="index-subdata"></a>
+<p><a name="subdata"></a>
+</p><dl>
+<dt><a name="index-subdata-1"></a><u>Команда MGL:</u> <b>subdata</b><i> res dat <code>xx [yy=: zz=:]</code></i></dt>
+<dd><p>Возвращает в <var>res</var> подмассив массива данных <var>dat</var> с фиксированными значениями индексов с положительными значениями. Например, <code>subdata a b : 2</code> выделяет третью строку (индексы начинаются с нуля), <code>subdata a b 4 :</code> выделяет 5-ую колонку, <code>subdata a b : : 3</code> выделяет 4-ый срез и т.д.
+</p></dd></dl>
+
+<a name="index-trace"></a>
+<p><a name="trace"></a>
+</p><dl>
+<dt><a name="index-trace-1"></a><u>Команда MGL:</u> <b>trace</b><i> res dat</i></dt>
+<dd><p>Возвращает массив <var>ref</var> диагональных элементов <var>dat</var>[i,i] (для 2D данных) или <var>dat</var>[i,i,i] (для 3D данных) где i=0...nx-1. В 1D случае возвращается сам массив данных <var>dat</var>. Размеры массива данных должен быть <var>dat</var>.ny, <var>dat</var>.nz &gt;= <var>dat</var>.nx или <var>dat</var>.ny, <var>dat</var>.nz = 1.
+</p></dd></dl>
+
+<a name="index-transform"></a>
+<p><a name="transform"></a>
+</p><dl>
+<dt><a name="index-transform-1"></a><u>Команда MGL:</u> <b>transform</b><i> dat 'type' real imag</i></dt>
+<dd><p>Выполняет интегральное преобразование комплексных данных <var>real</var>, <var>imag</var> в выбранном направлении и возвращает модуль результата в <var>res</var>. Порядок и тип преобразований задается строкой <var>type</var>: первый символ для x-направления, второй для y-направления, третий для z-направления. Возможные символы: &lsquo;<samp>f</samp>&rsquo; &ndash; прямое преобразование Фурье, &lsquo;<samp>i</samp>&rsquo; &ndash; обратное преобразование Фурье, &lsquo;<samp>s</samp>&rsquo; &ndash; синус преобразование, &lsquo;<samp>c</samp>&rsquo; &ndash; косинус преобразование, &lsquo;<samp>h</samp>&rsquo; &ndash; преобразование Ханкеля, &lsquo;<samp>n</samp>&rsquo; или &lsquo;<samp> </samp>&rsquo; &ndash; нет преобразования.
+</p></dd></dl>
+
+<a name="index-transforma"></a>
+<p><a name="transforma"></a>
+</p><dl>
+<dt><a name="index-transforma-1"></a><u>Команда MGL:</u> <b>transforma</b><i> dat 'type' ampl phase</i></dt>
+<dd><p>Аналогично предыдущему с заданными амплитудой <var>ampl</var> и фазой <var>phase</var> комплексных чисел.
+</p></dd></dl>
+
+<a name="index-stfad"></a>
+<p><a name="stfad"></a>
+</p><dl>
+<dt><a name="index-stfad-1"></a><u>Команда MGL:</u> <b>stfad</b><i> res real imag <code>dn</code> ['dir'='x']</i></dt>
+<dd><p>Выполняет оконное преобразование Фурье длиной <var>dn</var> для комплексных данных <var>real</var>, <var>imag</var> и возвращает модуль результата в <var>res</var>. Например, для <var>dir</var>=&lsquo;<samp>x</samp>&rsquo; результат будет иметь размер {int(nx/dn), dn, ny} и будет равен <em>res[i,j,k]=|\sum_d^dn exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn</em>.
+</p></dd></dl>
+
+<a name="index-pde"></a>
+<p><a name="pde"></a>
+</p><dl>
+<dt><a name="index-pde-1"></a><u>Команда MGL:</u> <b>pde</b><i> res 'ham' ini_re ini_im [<code>dz=0.1 k0=100</code>]</i></dt>
+<dd><p>Решает уравнение в частных производных du/dz = i*k0*<var>ham</var>(p,q,x,y,z,|u|)[u], где p=-i/k0*d/dx, q=-i/k0*d/dy &ndash; псевдо-дифференциальные операторы. Параметры <var>ini_re</var>, <var>ini_im</var> задают начальное распределение поля. Координаты в уравнении и в решении полагаются в диапазоне осей координат. Замечу, что внутри этот диапазон увеличивается в 3/2 раза для уменьшения отражения от границ расчетного интервала. Параметр <var>dz</var> задает шаг по эволюционной координате z. В данный момент использован упрощенный алгоритм, когда все &ldquo;смешанные&rdquo; члена (типа &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) исключаются. Например, в 2D случае это функции типа <em>ham = f(p,z) + g(x,z,u)</em>. При этом допускаются коммутирующие комбинации (типа &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy). Переменная &lsquo;<samp>u</samp>&rsquo; используется для обозначения амплитуды поля |u|. Это позволяет решать нелинейные задачи &ndash; например, нелинейное уравнение Шредингера <code>ham='p^2+q^2-u^2'</code>. Также можно указать мнимую часть для поглощения (типа <code>ham = 'p^2+i*x*(x&gt;0)'</code>), но только если зависимость от &lsquo;<samp>i</samp>&rsquo; линейная, т.е. <em>ham = hre+i*him</em>. См. раздел <a href="mathgl_ru_9.html#PDE-sample">PDE &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-ray"></a>
+<p><a name="ray"></a>
+</p><dl>
+<dt><a name="index-ray-1"></a><u>Команда MGL:</u> <b>ray</b><i> res 'ham' <code>x0 y0 z0 p0 q0 v0 [dt=0.1 tmax=10]</code></i></dt>
+<dd><p>Решает систему геометрооптических уравнений d<em>r</em>/dt = d <var>ham</var>/d<em>p</em>, d<em>p</em>/dt = -d <var>ham</var>/d<em>r</em>. Это гамильтоновы уравнения для траектории частицы в 3D случае. Гамильтониан <var>ham</var> может зависеть от координат &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, импульсов &lsquo;<samp>p</samp>&rsquo;=px, &lsquo;<samp>q</samp>&rsquo;=py, &lsquo;<samp>v</samp>&rsquo;=pz и времени &lsquo;<samp>t</samp>&rsquo;: <em>ham = H(x,y,z,p,q,v,t)</em>. Начальная точка (при <code>t=0</code>) задается переменными {<var>x0</var>, <var>y0</var>, <var>z0</var>, <var>p0</var>, <var>q0</var>, <var>v0</var>}. Параметры <var>dt</var> и <var>tmax</var> задают шаг и максимальное время интегрирования. Результат <var>res</var> &ndash; массив {x,y,z,p,q,v,t} с размером {7 * int(<var>tmax</var>/<var>dt</var>+1) }. См. раздел <a href="mathgl_ru_9.html#Beam-tracing-sample">Beam tracing &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-qo2d"></a>
+<p><a name="qo2d"></a>
+</p><dl>
+<dt><a name="index-qo2d-1"></a><u>Команда MGL:</u> <b>qo2d</b><i> res 'ham' ini_re ini_im ray [<code>r=1 k0=100</code> xx=0 yy=0]</i></dt>
+<dd><p>Решает уравнение в частных производных du/dt = i*k0*<var>ham</var>(p,q,x,y,|u|)[u] в сопровождающей системе координат, где p=-i/k0*d/dx, q=-i/k0*d/dy &ndash; псевдо-дифференциальные операторы. Параметры <var>ini_re</var>, <var>ini_im</var> задают начальное распределение поля. Параметр <var>ray</var> задает опорный луч для сопровождающей системы координат. Можно использовать луч найденный с помощью <code>ray</code>. Опорный луч должен быть достаточно гладкий, чтобы система координат была однозначной и для исключения ошибок интегрирования. Если массивы <var>xx</var> и <var>yy</var> указаны, то в них записываются декартовы координаты для каждой точки найденного решения. См. также <a href="#pde">pde</a>. См. раздел <a href="mathgl_ru_9.html#Beam-tracing-sample">Beam tracing &ndash; пример использования</a>, для примеров кода и графика. 
+</p></dd></dl>
+
+<a name="index-jacobian"></a>
+<p><a name="jacobian"></a>
+</p><dl>
+<dt><a name="index-jacobian-1"></a><u>Команда MGL:</u> <b>jacobian</b><i> res xdat ydat [zdat=0]</i></dt>
+<dd><p>Вычисляет якобиан преобразования {i,j,k} в {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>}, где координаты {i,j,k} полагаются нормированными в интервал [0,1]. Якобиан находится по формуле det||<em>dr_\alpha/d\xi_\beta</em>||, где <em>r</em>={<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} и <em>\xi</em>={i,j,k}. Все размерности всех массивов должны быть одинаковы. Данные должны быть трехмерными если указаны все 3 массива {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} или двумерными если только 2 массива {<var>xdat</var>,<var>ydat</var>}.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Change-data-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Make-another-data-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Operators-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_0437_043ce_043de_043d_0438e-_0434_0430_043d_043d_044b_0445-_0028MGL_0029"></a>
+<h2 class="section">8.21 Изменение данных (MGL)</h2>
+
+<p>Эти команды изменяют данные вдоль заданного направления(ий) типа например дифференцирования, интегрирования и т.д. Направление указывается строкой <var>dir</var>, которая может содержать символы &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; и/или &lsquo;<samp>z</samp>&rsquo;, вдоль которых изменения будут применены.
+</p>
+<a name="index-cumsum"></a>
+<p><a name="cumsum"></a>
+</p><dl>
+<dt><a name="index-cumsum-1"></a><u>Команда MGL:</u> <b>cumsum</b><i> dat 'dir'</i></dt>
+<dd><p>Суммирует с накоплением в выбранном направлении(ях).
+</p></dd></dl>
+<a name="index-integrate"></a>
+<p><a name="integrate"></a>
+</p><dl>
+<dt><a name="index-integrate-1"></a><u>Команда MGL:</u> <b>integrate</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет интегрирование (подобно суммированию с накоплением) в выбранном направлении(ях).
+</p></dd></dl>
+<a name="index-diff"></a>
+<p><a name="diff"></a>
+</p><dl>
+<dt><a name="index-diff-1"></a><u>Команда MGL:</u> <b>diff</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет дифференцирование в выбранном направлении(ях).
+</p></dd></dl>
+<dl>
+<dt><a name="index-diff-2"></a><u>Команда MGL:</u> <b>diff</b><i> dat xdat ydat [zdat=0]</i></dt>
+<dd><p>Выполняет дифференцирование данных <var>dat</var>, параметрически зависящих от координат, в направлении <var>xdat</var> с <var>ydat</var>, <var>zdat</var>=constant. Параметр <var>zdat</var> может быть опущен, что соответствует 2D случаю. Используются следующие формулы (2D случай): <em>da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j)</em>, где <em>a_i=da/di, a_j=da/dj</em> обозначает дифференцирование вдоль 1-ой и 2-ой размерности. Похожие формулы используются и в 3D случае. Порядок аргументов можно менять &ndash; например, если данные a(i,j) зависят от координат {x(i,j), y(i,j)}, то обычная производная по &lsquo;<samp>x</samp>&rsquo; будет равна <code>diff a x y</code>, а обычная производная по &lsquo;<samp>y</samp>&rsquo; будет равна <code>diff a y x</code>.
+</p></dd></dl>
+
+<a name="index-diff2"></a>
+<p><a name="diff2"></a>
+</p><dl>
+<dt><a name="index-diff2-1"></a><u>Команда MGL:</u> <b>diff2</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет двойное дифференцирование (как в операторе Лапласа) в выбранном направлении(ях).
+</p></dd></dl>
+
+<a name="index-sinfft"></a>
+<p><a name="sinfft"></a>
+</p><dl>
+<dt><a name="index-sinfft-1"></a><u>Команда MGL:</u> <b>sinfft</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет синус преобразование в выбранном направлении(ях). Синус преобразование есть <em>\sum a_i \sin(k i)</em>.
+</p></dd></dl>
+<a name="index-cosfft"></a>
+<p><a name="cosfft"></a>
+</p><dl>
+<dt><a name="index-cosfft-1"></a><u>Команда MGL:</u> <b>cosfft</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет косинус преобразование в выбранном направлении(ях). Синус преобразование есть <em>\sum a_i \cos(k i)</em>.
+</p></dd></dl>
+<a name="index-hankel"></a>
+<p><a name="hankel"></a>
+</p><dl>
+<dt><a name="index-hankel-1"></a><u>Команда MGL:</u> <b>hankel</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет преобразование Ханкеля в выбранном направлении(ях). Преобразование Ханкеля есть <em>\sum a_i J_0(k i)</em>.
+</p></dd></dl>
+
+
+<a name="index-swap"></a>
+<p><a name="swap"></a>
+</p><dl>
+<dt><a name="index-swap-1"></a><u>Команда MGL:</u> <b>swap</b><i> dat 'dir'</i></dt>
+<dd><p>Меняет местами левую и правую части данных в выбранном направлении(ях). Полезно для отображения результата FFT.
+</p></dd></dl>
+<a name="index-roll"></a>
+<p><a name="roll"></a>
+</p><dl>
+<dt><a name="index-roll-1"></a><u>Команда MGL:</u> <b>roll</b><i> dat 'dir' num</i></dt>
+<dd><p>Сдвигает данные на <var>num</var> ячеек в выбранном направлении(ях). Соответствует замене индекса на <var>i</var>-&gt;(<var>i</var>+<var>num</var>)%<var>n</var>.
+</p></dd></dl>
+
+<a name="index-mirror"></a>
+<p><a name="mirror"></a>
+</p><dl>
+<dt><a name="index-mirror-1"></a><u>Команда MGL:</u> <b>mirror</b><i> dat 'dir'</i></dt>
+<dd><p>Отражает данные в выбранном направлении(ях). Соответствует замене индекса на <var>i</var>-&gt;<var>n</var>-<var>i</var>.
+</p></dd></dl>
+
+<a name="index-sew"></a>
+<p><a name="sew"></a>
+</p><dl>
+<dt><a name="index-sew-1"></a><u>Команда MGL:</u> <b>sew</b><i> dat ['dir'='xyz' <code>da=2*pi</code>]</i></dt>
+<dd><p>Удаляет скачки данных (например, скачки фазы после обратных тригонометрических функций) с периодом <var>da</var> в выбранном направлении(ях).
+</p></dd></dl>
+
+<a name="index-smooth"></a>
+<p><a name="smooth"></a>
+</p><dl>
+<dt><a name="index-smooth-1"></a><u>Команда MGL:</u> <b>smooth</b><i> data <code>type</code> ['dir'='xyz']</i></dt>
+<dd><p>Сглаживает данные в выбранном направлении(ях) методом <var>type</var>. Сейчас поддерживаются 4 метода: <code>0</code> ничего не делает, <code>1</code> линейное усреднение по 3 точкам, <code>2</code> линейное усреднение по 5 точкам, <code>3</code> квадратичное усреднение по 5 точкам.
+</p></dd></dl>
+
+<a name="index-envelop"></a>
+<p><a name="envelop"></a>
+</p><dl>
+<dt><a name="index-envelop-1"></a><u>Команда MGL:</u> <b>envelop</b><i> dat ['dir'='x']</i></dt>
+<dd><p>Находит огибающую данных в выбранном направлении. Только одно направление может быть выбрано за раз.
+</p></dd></dl>
+
+<a name="index-normsl"></a>
+<p><a name="normsl"></a>
+</p><dl>
+<dt><a name="index-normsl-1"></a><u>Команда MGL:</u> <b>normsl</b><i> dat <code>v1 v2</code> ['dir'='z' <code>keep=on sym=off</code>]</i></dt>
+<dd><p>Нормирует данные срез-за-срезом в выбранном направлении <var>dir</var> в интервал [<var>v1</var>,<var>v2</var>]. Если <var>sym</var>=<code>on</code>, то используется симметричный интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Если <var>keep</var>=<code>on</code>, то максимальное значение k-го среза ограничено величиной
+<em>\sqrt\sum a_ij(k)/\sum a_ij(0)</em>.
+</p></dd></dl>
+
+<a name="index-norm"></a>
+<p><a name="norm"></a>
+</p><dl>
+<dt><a name="index-norm-1"></a><u>Команда MGL:</u> <b>norm</b><i> dat <code>v1 v2 [sym=off dim=0]</code></i></dt>
+<dd><p>Нормирует данные в интервал [<var>v1</var>,<var>v2</var>]. Если <var>sym</var>=<code>on</code>, то используется симметричный интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Изменения применяются только к срезам &gt;=<var>dim</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Operators-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Change-data-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Program-flow-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_043fe_0440_0430_0442_043e_0440_044b-_0028MGL_0029"></a>
+<h2 class="section">8.22 Операторы (MGL)</h2>
+
+<a name="index-multo"></a>
+<p><a name="multo"></a>
+</p><dl>
+<dt><a name="index-multo-1"></a><u>Команда MGL:</u> <b>multo</b><i> dat dat2</i></dt>
+<dd><p>Поэлементно умножает массив <var>dat</var> на <var>dat2</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-multo-2"></a><u>Команда MGL:</u> <b>multo</b><i> dat <code>val</code></i></dt>
+<dd><p>Умножает каждый элемент на число.
+</p></dd></dl>
+
+<a name="index-divto"></a>
+<p><a name="divto"></a>
+</p><dl>
+<dt><a name="index-divto-1"></a><u>Команда MGL:</u> <b>divto</b><i> dat dat2</i></dt>
+<dd><p>Поэлементно делит массив <var>dat</var> на <var>dat2</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-divto-2"></a><u>Команда MGL:</u> <b>divto</b><i> dat <code>val</code></i></dt>
+<dd><p>Делит каждый элемент на число.
+</p></dd></dl>
+
+<a name="index-addto"></a>
+<p><a name="addto"></a>
+</p><dl>
+<dt><a name="index-addto-1"></a><u>Команда MGL:</u> <b>addto</b><i> dat dat2</i></dt>
+<dd><p>Поэлементно прибавляет <var>dat2</var> к массиву <var>dat</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-addto-2"></a><u>Команда MGL:</u> <b>addto</b><i> dat <code>val</code></i></dt>
+<dd><p>Прибавляет число к каждому элементу.
+</p></dd></dl>
+
+<a name="index-subto"></a>
+<p><a name="subto"></a>
+</p><dl>
+<dt><a name="index-subto-1"></a><u>Команда MGL:</u> <b>subto</b><i> dat dat2</i></dt>
+<dd><p>Поэлементно вычитает <var>dat2</var> из массива <var>dat</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-subto-2"></a><u>Команда MGL:</u> <b>subto</b><i> dat <code>val</code></i></dt>
+<dd><p>Вычитает число из каждого элемента.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Program-flow-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Operators-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Command-options-_0028MGL_0029" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043eg_0440_0430_043c_043c_0438_0440_043e_0432_0430_043d_0438e-_0028MGL_0029"></a>
+<h2 class="section">8.23 Программирование (MGL)</h2>
+
+<p>Эти команды управляют порядком выполнения других команд (условия, циклы, подпрограммы), (пере-)определяют аргументы скрипта и пр.
+</p>
+<a name="index-chdir"></a>
+<p><a name="chdir"></a>
+</p><dl>
+<dt><a name="index-chdir-1"></a><u>Команда MGL:</u> <b>chdir</b><i> 'path'</i></dt>
+<dd><p>Переходит в папку <var>path</var>.
+</p></dd></dl>
+
+<a name="index-define"></a>
+<p><a name="define"></a>
+</p><dl>
+<dt><a name="index-define-1"></a><u>Команда MGL:</u> <b>define</b><i> $N smth</i></dt>
+<dd><p>Задает <var>N</var>-ый аргумент скрипта равным <var>smth</var>. Отмечу, что <var>smth</var> используется как есть (с символами &lsquo;<samp>'</samp>&rsquo; если присутствуют). Выполняется только подстановка других макроопределений $0...$9, $a...$z. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<dl>
+<dt><a name="index-define-2"></a><u>Команда MGL:</u> <b>define</b><i> name smth</i></dt>
+<dd><p>Определяет константу (скаляр) с именем <code>name</code> и числовым значением <code>smth</code>. Позднее она может быть использована как обычное число.
+</p></dd></dl>
+<a name="index-defchr"></a>
+<p><a name="defchr"></a>
+</p><dl>
+<dt><a name="index-defchr-1"></a><u>Команда MGL:</u> <b>defchr</b><i> $N smth</i></dt>
+<dd><p>Задает <var>N</var>-ый аргумент скрипта равным символу с UTF кодом <var>smth</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<a name="index-defnum"></a>
+<p><a name="defnum"></a>
+</p><dl>
+<dt><a name="index-defnum-1"></a><u>Команда MGL:</u> <b>defnum</b><i> $N smth</i></dt>
+<dd><p>Задает <var>N</var>-ый аргумент скрипта равным числовому значению <var>smth</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<a name="index-defpal"></a>
+<p><a name="defpal"></a>
+</p><dl>
+<dt><a name="index-defpal-1"></a><u>Команда MGL:</u> <b>defpal</b><i> $N smth</i></dt>
+<dd><p>Задает <var>N</var>-ый аргумент скрипта равным символу палитры с индексом, найденным из <var>smth</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+
+<a name="index-call"></a>
+<p><a name="call"></a>
+</p><dl>
+<dt><a name="index-call-1"></a><u>Команда MGL:</u> <b>call</b><i> 'fname' [ARG1 ARG2 ... ARG9]</i></dt>
+<dd><p>Переходит к выполнению (вызывает) подпрограммы <var>fname</var> (или внешнего скрипта, если функция не была найдена). Опциональные аргументы передаются в подпрограмму. См. также <a href="#func">func</a>.
+</p></dd></dl>
+<a name="index-func"></a>
+<p><a name="func"></a>
+</p><dl>
+<dt><a name="index-func-1"></a><u>Команда MGL:</u> <b>func</b><i> 'fname' [narg=0]</i></dt>
+<dd><p>Определяет подпрограмму с именем <var>fname</var> и задает число требуемых аргументов. Аргументы будут помещены в параметры скрипта $1, $2, ... $9. Отмечу, что выполнение основной программы должно быть остановлено до начала определений подпрограмм. См. также <a href="#stop">stop</a>,  <a href="#return">return</a>.
+</p></dd></dl>
+<a name="index-return"></a>
+<p><a name="return"></a>
+</p><dl>
+<dt><a name="index-return-1"></a><u>Команда MGL:</u> <b>return</b></dt>
+<dd><p>Возвращается из подпрограммы.
+</p></dd></dl>
+
+
+<a name="index-if"></a>
+<p><a name="if"></a>
+</p><dl>
+<dt><a name="index-if-1"></a><u>Команда MGL:</u> <b>if</b><i> dat 'cond'</i></dt>
+<dd><p>Начинает блок команд, выполняемый если каждый элемент <var>dat</var> удовлетворяет условию <var>cond</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-if-2"></a><u>Команда MGL:</u> <b>if</b><i> <code>val</code></i></dt>
+<dd><p>Начинает блок команд, выполняемый если <code>val</code> не ноль.
+</p></dd></dl>
+<a name="index-elseif"></a>
+<p><a name="elseif"></a>
+</p><dl>
+<dt><a name="index-elseif-1"></a><u>Команда MGL:</u> <b>elseif</b><i> dat 'cond'</i></dt>
+<dd><p>Начинает блок команд, выполняемый если предыдущий <code>if</code> или <code>elseif</code> не был выполнен и каждый элемент <var>dat</var> удовлетворяет условию <var>cond</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-elseif-2"></a><u>Команда MGL:</u> <b>elseif</b><i> <code>val</code></i></dt>
+<dd><p>Начинает блок команд, выполняемый если предыдущий <code>if</code> или <code>elseif</code> не был выполнен и <code>val</code> не ноль.
+</p></dd></dl>
+<a name="index-else"></a>
+<p><a name="else"></a>
+</p><dl>
+<dt><a name="index-else-1"></a><u>Команда MGL:</u> <b>else</b></dt>
+<dd><p>Начинает блок команд, выполняемый если предыдущий <code>if</code> или <code>elseif</code> не был выполнен.
+</p></dd></dl>
+<a name="index-endif"></a>
+<p><a name="endif"></a>
+</p><dl>
+<dt><a name="index-endif-1"></a><u>Команда MGL:</u> <b>endif</b></dt>
+<dd><p>Заканчивает определение блока <code>if/elseif/else</code>.
+</p></dd></dl>
+
+<a name="index-for"></a>
+<p><a name="for"></a>
+</p><dl>
+<dt><a name="index-for-1"></a><u>Команда MGL:</u> <b>for</b><i> $N <code>v1 v2 [dv=1]</code></i></dt>
+<dd><p>Начинает блок команд, выполняемый в цикле с $<var>N</var>-ым аргументом изменяющимся от <var>v1</var> до <var>v2</var> с шагом <var>dv</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<dl>
+<dt><a name="index-for-2"></a><u>Команда MGL:</u> <b>for</b><i> $N dat</i></dt>
+<dd><p>Начинает блок команд, выполняемый в цикле с $<var>N</var>-ым аргументом пробегающим значения массива <var>dat</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<a name="index-next"></a>
+<p><a name="next"></a>
+</p><dl>
+<dt><a name="index-next-1"></a><u>Команда MGL:</u> <b>next</b></dt>
+<dd><p>Заканчивает блок цикла <code>for</code>.
+</p></dd></dl>
+
+<a name="index-once"></a>
+<p><a name="once"></a>
+</p><dl>
+<dt><a name="index-once-1"></a><u>Команда MGL:</u> <b>once</b><i> <code>val</code></i></dt>
+<dd><p>Определяет код (между <code>once on</code> и <code>once off</code>) который будет выполнен только один раз. Полезно для работы с большими данными в программах типа UDAV.
+</p></dd></dl>
+<a name="index-stop"></a>
+<p><a name="stop"></a>
+</p><dl>
+<dt><a name="index-stop-1"></a><u>Команда MGL:</u> <b>stop</b></dt>
+<dd><p>Останавливает выполнение скрипта.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Command-options-_0028MGL_0029"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Program-flow-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Suffixes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_043fc_0438_0438-_043a_043e_043c_0430_043d_0434-_0028MGL_0029"></a>
+<h2 class="section">8.24 Опции команд (MGL)</h2>
+
+<p>Опции команд позволяют легко настроить вид отдельного графика не меняя глобальных настроек для все рисунка. Опции указываются после команды. Каждая опция отделяется от предыдущей символом &lsquo;<samp>;</samp>&rsquo;. Опции работают так, что запоминают текущие настройки рисунка, применяют собственные настройки, выполняют команду и возвращают глобальные настройки обратно. Поэтому использование опций для команд обработки данных или настройки графика бесполезно.
+</p>
+<p>Наиболее часто используемые опции &ndash; <code>xrange, yrange, zrange</code>, устанавливающие границы изменения осей координат (и тем самым автоматических массивов). Например, команда <code>plot y; xrange 0.1 0.9</code> построит кривую с x-координатой равно распределенной в интервале 0.1 ... 0.9, а не вдоль текущей оси x.
+</p>
+<p>Полный список опций:
+<a name="index-alpha-2"></a>
+<a name="index-alphadef-2"></a>
+</p><dl>
+<dt><a name="index-alpha-3"></a><u>Опция MGL:</u> <b>alpha</b><i> <code>val</code></i></dt>
+<dt><a name="index-alphadef-3"></a><u>Опция MGL:</u> <b>alphadef</b><i> <code>val</code></i></dt>
+<dd><p>Задает величину прозрачности поверхности. Значение должно быть в диапазоне [0, 1]. См. также <a href="#alphadef">alphadef</a>
+</p></dd></dl>
+<a name="index-ambient-2"></a>
+<dl>
+<dt><a name="index-ambient-3"></a><u>Опция MGL:</u> <b>ambient</b><i> <code>val</code></i></dt>
+<dd><p>Задает яркость фонового освещения. Значение должно быть в диапазоне [0, 1]. См. также <a href="#ambient">ambient</a>
+</p></dd></dl>
+<a name="index-crange-3"></a>
+<dl>
+<dt><a name="index-crange-4"></a><u>Опция MGL:</u> <b>crange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Задает границы цветовой шкалы. См. также <a href="#crange">crange</a>
+</p></dd></dl>
+<a name="index-xrange-3"></a>
+<dl>
+<dt><a name="index-xrange-4"></a><u>Опция MGL:</u> <b>xrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Задает границы изменения координаты x. См. также <a href="#xrange">xrange</a>
+</p></dd></dl>
+<a name="index-yrange-3"></a>
+<dl>
+<dt><a name="index-yrange-4"></a><u>Опция MGL:</u> <b>yrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Задает границы изменения координаты y. См. также <a href="#yrange">yrange</a>
+</p></dd></dl>
+<a name="index-zrange-3"></a>
+<dl>
+<dt><a name="index-zrange-4"></a><u>Опция MGL:</u> <b>zrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Задает границы изменения координаты z. См. также <a href="#zrange">zrange</a>
+</p></dd></dl>
+<a name="index-cut-4"></a>
+<dl>
+<dt><a name="index-cut-5"></a><u>Опция MGL:</u> <b>cut</b><i> <code>val</code></i></dt>
+<dd><p>Задает обрезание точек за пределами осей координат. См. также <a href="#cut">cut</a>
+</p></dd></dl>
+<a name="index-fontsize"></a>
+<dl>
+<dt><a name="index-fontsize-1"></a><u>Опция MGL:</u> <b>fontsize</b><i> <code>val</code></i></dt>
+<dd><p>Задает размер текста. См. также <a href="#font">font</a>
+</p></dd></dl>
+<a name="index-marksize-2"></a>
+<dl>
+<dt><a name="index-marksize-3"></a><u>Опция MGL:</u> <b>marksize</b><i> <code>val</code></i></dt>
+<dd><p>Задает размер маркеров. См. также <a href="#marksize">marksize</a>
+</p></dd></dl>
+<a name="index-meshnum-2"></a>
+<dl>
+<dt><a name="index-meshnum-3"></a><u>Опция MGL:</u> <b>meshnum</b><i> <code>val</code></i></dt>
+<dd><p>Задает ориентировочное число линий, стрелок, ячеек и пр. См. также <a href="#meshnum">meshnum</a>
+</p></dd></dl>
+<a name="index-legend-3"></a>
+<dl>
+<dt><a name="index-legend-4"></a><u>Опция MGL:</u> <b>legend</b><i> 'txt'</i></dt>
+<dd><p>Добавляет строку &rsquo;txt&rsquo; во внутренний массив записей легенды. Стиль линии и маркера аргумента последней вызванной команды построения <a href="#g_t1D-plotting-_0028MGL_0029">1D графики (MGL)</a>. См. также <a href="#legend">legend</a>
+</p></dd></dl>
+
+<hr size="6">
+<a name="Suffixes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Command-options-_0028MGL_0029" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Utilities" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_0443_0444_0444_0438_043a_0441_044b-_043fe_0440e_043ce_043d_043d_044b_0445"></a>
+<h2 class="section">8.25 Суффиксы переменных</h2>
+
+<p>Суффиксы позволяют быстро получить числовую характеристику (размер, максимальное или минимальное значение, сумму элементов и т.д.) массива данных и использовать ее как число (скаляр) в аргументах. Суффиксы начинаются с точки &lsquo;<samp>.</samp>&rsquo; сразу после (без пробелов) имени переменной и временного массива. Например, <code>a.nx</code> даст размер массива <var>a</var> по оси х, <code>b(1).max</code> даст максимальное значение второй строки массива <var>b</var>, <code>(c(:,0)^2).sum</code> даст сумму квадратов элементов первой колонки массива <var>c</var> и т.д.
+</p>
+<p>Полный список суффиксов:
+</p><dl compact="compact">
+<dt> <strong>nx, ny, nz</strong></dt>
+<dd><p>Размер массива в направлении x, y, z соответственно.
+</p></dd>
+<dt> <strong>max</strong></dt>
+<dd><p>Максимальное значение массива.
+</p></dd>
+<dt> <strong>min</strong></dt>
+<dd><p>Минимальное значение массива.
+</p></dd>
+<dt> <strong>sum</strong></dt>
+<dd><p>Сумма элементов массива.
+</p></dd>
+<dt> <strong>a</strong></dt>
+<dd><p>Первый элемент массива (элемент с индексами 0,0,0).
+</p></dd>
+<dt> <strong>fst</strong></dt>
+<dd><p>Первое не нулевое значение массива.
+</p></dd>
+<dt> <strong>lst</strong></dt>
+<dd><p>Последнее не нулевое значение массива.
+</p></dd>
+<dt> <strong>mx, my, mz</strong></dt>
+<dd><p>Положение максимума в направлении x, y, z соответственно.
+</p></dd>
+<dt> <strong>ax, ay, az, aa</strong></dt>
+<dd><p>Положение центра масс в направлении x, y, z соответственно или среднее значение массива.
+</p></dd>
+<dt> <strong>wx, wy, wz, wa</strong></dt>
+<dd><p>Ширина в направлении x, y, z соответственно или дисперсия элементов массива.
+</p></dd>
+<dt> <strong>sx, sy, sz, sa</strong></dt>
+<dd><p>Асимметрия в направлении x, y, z соответственно или элементов массива.
+</p></dd>
+<dt> <strong>kx, ky, kz, ka</strong></dt>
+<dd><p>Эксцесс в направлении x, y, z соответственно или элементов массива.
+</p></dd>
+</dl>
+
+<hr size="6">
+<a name="Utilities"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Suffixes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0423_0442_0438_043b_0438_0442_044b-_0434_043bya-MGL"></a>
+<h2 class="section">8.26 Утилиты для MGL</h2>
+
+<p>MathGL содержит несколько программ для работы со скриптами MGL. Есть утилита для сохранения в растровое (<code>mgl2png</code>, <code>mgl2gif</code>) или векторное (<code>mgl2eps</code>, <code>mgl2svg</code>) изображения. Программа <code>mglview</code> показывает результат выполнения скрипта MGL и позволяет вращать и настраивать график. Также можно транслировать MGL скрипт в C++ файл с помощью программы <code>mgl2cpp</code>.
+</p>
+<p>Все эти программы имеют схожий набор аргументов. Первым идет имя скрипта, а вторым идет имя выходного файлы (может быть опущено), последние аргументы &ndash; опции скрипта и программы. К опциям относятся параметры скрипта (это <code>$0, $1, ... $9</code>) и настройки локали. Параметры скрипта имеют формат &lsquo;<samp>-Nval</samp>&rsquo;, где N=0,1...9 &ndash; номер параметра, val &ndash; его значние. Например, опция &lsquo;<samp>-1test</samp>&rsquo; заменит <code>$1</code> на &lsquo;<samp>test</samp>&rsquo; в скрипте. Опция -Lval устанавливает локаль в значение val. Например, &lsquo;<samp>-Lutf8</samp>&rsquo; будет использовать UTF-8 в скрипте.
+</p>
+<p>Также можно создавать анимированные изображения GIF или набор JPEG файлов с именами &lsquo;<samp>frameNNNN.jpg</samp>&rsquo; (где &lsquo;<samp>NNNN</samp>&rsquo; &ndash; номер кадра). Для этого в скрипте надо указать параметры анимации для каждого кадра (строками с коментариями <code>##a val</code> или опциями &lsquo;<samp>-Aval</samp>&rsquo;) или в цикле (строкой с комментарием <code>##с v1 v2 [dv]</code> или опцию &lsquo;<samp>-Cn1:n2</samp>&rsquo;), которые будут подставлены в качестве параметра <code>$0</code> при последовательном вызове скрипта. Для сохранения кадров в JPEG просто добавьте команду <code>write ''</code> в конце скрипта.
+</p>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_9.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_ru.html/mathgl_ru_9.html b/texinfo/mathgl_ru.html/mathgl_ru_9.html
new file mode 100644
index 0000000..c2b79df
--- /dev/null
+++ b/texinfo/mathgl_ru.html/mathgl_ru_9.html
@@ -0,0 +1,8180 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: 9. Примеры использования MathGL</title>
+
+<meta name="description" content="MathGL 1.11: 9. Примеры использования MathGL">
+<meta name="keywords" content="MathGL 1.11: 9. Примеры использования MathGL">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru_8.html#Utilities" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru_8.html#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya-MathGL"></a>
+<h1 class="chapter">9. Примеры использования MathGL</h1>
+<p>Эта глава содержит множество примеров кода для всех типов графиков, наиболее важных возможностей библиотеки и советов. Аналогичные примеры (с картинками) можно найти на <a href="http://mathgl.sf.net/pictures.html">http://mathgl.sf.net/pictures.html</a>. 
+MБольшинство примеров содержат код на 5 языках: C++, MGL, C, Fortran и Python. Однако, в некоторых я помещал только C++ код, поскольку соответствующий код слишком большой и ясно как его можно переписать на другие языки.
+Минимальный код для запуска и просмотра примеров на различных языках следующий.
+<strong>C++ код</strong>
+Для компиляции используйте: <code>g++ -o sample sample.cpp -lmgl</code>.
+</p><pre class="verbatim">#include &lt;mgl/mgl_zb.h&gt;
+int main()
+{
+    mglGraph *gr = new mglGraphZB;
+    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // put sample code here
+    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    gr-&gt;ShowImage();    delete gr;
+    return 0;
+}
+</pre><p><strong>MGL скрипт</strong>
+Для просмотра используйте: <code>mglview sample.mgl</code>.
+</p><pre class="verbatim">#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# put sample code here
+#   --&gt;   you may sample as is :)
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+</pre><p><strong>C-ый код</strong>
+Для компиляции используйте: <code>gcc -o sample sample.c -lmgl</code>.
+</p><pre class="verbatim">#include &lt;mgl/mgl_c.h&gt;
+int main()
+{
+    HMGL gr = mgl_create_graph_zb(600,400);
+    /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    /* put sample code here              */
+    /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    mgl_show_image(gr,&quot;&quot;,0);
+    mgl_delete_graph(gr);
+    return 0;
+}
+</pre><p><strong>Fortran</strong>
+Для компиляции используйте: <code>gfortran -o sample sample.f90 -lmgl</code>. Замечу, что фортран не имеет проверки аргументов. Поэтому обратите особое внимание на передаваемые аргументы &ndash; не путайте целые и действительные (с плавающей точкой) числа/аргументы. Никакого контроля в компиляторе для этого не предусмотрено!!!
+</p><pre class="verbatim">integer gr, mgl_create_graph_zb
+gr = mgl_create_graph_zb(600,400)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! put sample code here
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+call mgl_show_image(gr,'',0)
+call mgl_delete_graph(gr)
+end
+</pre><p><strong>Python</strong>
+Для просмотра используйте: <code>python sample.py</code>.
+</p><pre class="verbatim">from mathgl import *
+gr = mglGraph();
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# put sample code here
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+gr.ShowImage();
+</pre><table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting-samples">9.1 Примеры 1D графиков</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting-samples">9.2 Примеры 2D графиков</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting-samples">9.3 Примеры 3D графиков</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting-samples">9.4 Примеры парных/векторных графиков</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Basic-features">9.5 Базовые возможности</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Additional-features">9.6 Дополнительные возможности</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Advanced-features">9.7 &quot;Продвинутые&quot; возможности</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+</table>
+<hr size="6">
+<a name="g_t1D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-1D-g_0440_0430_0444_0438_043a_043e_0432"></a>
+<h2 class="section">9.1 Примеры 1D графиков</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plot-sample">9.1.1 Plot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Radar-sample">9.1.2 Radar &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tens-sample">9.1.3 Tens &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area-sample">9.1.4 Area &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area-gradient-sample">9.1.5 Area с градиентной заливкой &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-sample">9.1.6 Bars &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-2-colors-sample">9.1.7 Bars (2 цвета) &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-above-sample">9.1.8 Bars (один над другим) &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-fall-sample">9.1.9 Bars &quot;водопад&quot; &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Barh-sample">9.1.10 Barh &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Step-sample">9.1.11 Step &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stem-sample">9.1.12 Stem &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region-sample">9.1.13 Region &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region-gradient-sample">9.1.14 Region с градиентной заливкой &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Error-sample">9.1.15 Error &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#BoxPlot-sample">9.1.16 BoxPlot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mark-sample">9.1.17 Mark &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TextMark-sample">9.1.18 TextMark &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tube-sample">9.1.19 Tube &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-sample">9.1.20 Text &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Torus-sample">9.1.21 Torus &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Chart-sample">9.1.22 Chart &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pie-chart-sample">9.1.23 Pie chart &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ring-chart-sample">9.1.24 Ring chart &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+<hr size="6">
+<a name="Plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Radar-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.1 Plot &ndash; пример использования</h3>
+<a name="index-Plot-7"></a>
+<div class="float">
+<img src="../png/plot.png" alt="../png/plot">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Box();
+gr-&gt;Plot(y);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.Box();
+gr.Plot(y);
+</pre><hr size="6">
+<a name="Radar-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Radar-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.2 Radar &ndash; пример использования</h3>
+<a name="index-Radar-2"></a>
+<div class="float">
+<img src="../png/radar.png" alt="../png/radar">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.4*sin(pi*(2*x+y/2))+0.1*rnd&quot;);
+gr-&gt;Radar(y,&quot;#&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.4*sin(pi*(2*x+y/2))+0.1*rnd'
+radar y '#'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.4*sin(pi*(2*x+y/2))+0.1*rnd&quot;,0);
+mgl_radar(gr,y,&quot;#&quot;,-1);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.4*sin(pi*(2*x+y/2))+0.1*rnd',0)
+call mgl_radar(gr,y,'#',-1.)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.4*sin(pi*(2*x+y/2))+0.1*rnd&quot;);
+gr.Radar(y,&quot;#&quot;);
+</pre><hr size="6">
+<a name="Tens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Radar-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.3 Tens &ndash; пример использования</h3>
+<a name="index-Tens-4"></a>
+<div class="float">
+<img src="../png/tens.png" alt="../png/tens">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50), c(50);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;);
+c.Modify(&quot;sin(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Tens(y,c);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50
+new c 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify c 'sin(2*pi*x)'
+box
+tens y c
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,1,1);
+HMDT c = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(c,&quot;sin(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_tens(gr,y,c,NULL);
+mgl_delete_data(y);
+mgl_delete_data(c);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, c, mgl_create_data_size
+y = mgl_create_data_size(50,1,1)
+c = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(c,'sin(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_tens(gr,y,'')
+call mgl_delete_data(y)
+call mgl_delete_data(c)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50);
+c = mglData(50);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;);
+c.Modify(&quot;sin(2*pi*x)&quot;);
+gr.Box();
+gr.Tens(y,c);
+</pre><hr size="6">
+<a name="Area-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area-gradient-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.4 Area &ndash; пример использования</h3>
+<a name="index-Area-4"></a>
+<div class="float">
+<img src="../png/area.png" alt="../png/area">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Area(y);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_area(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_area(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Area(y);
+</pre><hr size="6">
+<a name="Area-gradient-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-_0441-g_0440_0430_0434_0438e_043d_0442_043d_043e_0439-_0437_0430_043b_0438_0432_043a_043e_0439-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.5 Area с градиентной заливкой &ndash; пример использования</h3>
+<a name="index-Area-5"></a>
+<div class="float">
+<img src="../png/area_2.png" alt="../png/area_2">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Area(y,&quot;cbgGyr&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y 'cbgGyr'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_area(gr,y,&quot;cbgGyr&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_area(gr,y,'cbgGyr')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Area(y,&quot;cbgGyr&quot;);
+</pre><hr size="6">
+<a name="Bars-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area-gradient-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-2-colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.6 Bars &ndash; пример использования</h3>
+<a name="index-Bars-4"></a>
+<div class="float">
+<img src="../png/bars.png" alt="../png/bars">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Bars(y);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y);
+</pre>
+<hr size="6">
+<a name="Bars-2-colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-above-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-_00282-c_0432e_0442_0430_0029-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.7 Bars (2 цвета) &ndash; пример использования</h3>
+<a name="index-Bars-5"></a>
+<div class="float">
+<img src="../png/bars_2.png" alt="../png/bars_2">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Bars(y,&quot;cbgGyr&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'cbgGyr'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,&quot;cbgGyr&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'cbgGyr')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,&quot;cbgGyr&quot;);
+</pre><hr size="6">
+<a name="Bars-above-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-2-colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-fall-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-_0028_043e_0434_0438_043d-_043d_0430_0434-_0434_0440_0443g_0438_043c_0029-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.8 Bars (один над другим) &ndash; пример использования</h3>
+<a name="index-Bars-6"></a>
+<div class="float">
+<img src="../png/bars_a.png" alt="../png/bars_a">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Bars(y,&quot;a&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'a'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,&quot;a&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'a')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,&quot;a&quot;);
+</pre><hr size="6">
+<a name="Bars-fall-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-above-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Barh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-_0022_0432_043e_0434_043e_043f_0430_0434_0022-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.9 Bars &quot;водопад&quot; &ndash; пример использования</h3>
+<a name="index-Bars-7"></a>
+<div class="float">
+<img src="../png/bars_f.png" alt="../png/bars_f">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Bars(y,&quot;f&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'f'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,&quot;f&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'f')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,&quot;f&quot;);
+</pre>
+
+<hr size="6">
+<a name="Barh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-fall-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Step-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Barh-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.10 Barh &ndash; пример использования</h3>
+<a name="index-Barh-3"></a>
+<div class="float">
+<img src="../png/barh.png" alt="../png/barh">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Barh(y);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+barh y
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_barh(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_barh(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(10,3);
+y.Modify(&quot;0.8*sin(pi*(2*x+y/2))+0.2*rnd&quot;);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Barh(y);
+</pre><hr size="6">
+<a name="Step-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Barh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stem-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Step-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.11 Step &ndash; пример использования</h3>
+<a name="index-Step-4"></a>
+<div class="float">
+<img src="../png/step.png" alt="../png/step">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Box();
+gr-&gt;Step(y);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+step y
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_box(gr,1);
+mgl_step(gr,y,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_box(gr,1)
+call mgl_step(gr,y,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.Box();
+gr.Step(y);
+</pre><hr size="6">
+<a name="Stem-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Step-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stem-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.12 Stem &ndash; пример использования</h3>
+<a name="index-Stem-4"></a>
+<div class="float">
+<img src="../png/stem.png" alt="../png/stem">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Org=mglPoint(0,0);
+gr-&gt;Box();
+gr-&gt;Stem(y,&quot;o&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+stem y 'o'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_stem(gr,y,&quot;o&quot;);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_stem(gr,y,'o')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Stem(y,&quot;o&quot;);
+</pre><hr size="6">
+<a name="Region-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Stem-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region-gradient-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.13 Region &ndash; пример использования</h3>
+<a name="index-Region-3"></a>
+<div class="float">
+<img src="../png/region.png" alt="../png/region">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y1(50), y2(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Region(y1,y2,&quot;r&quot;);
+gr-&gt;Plot(y1,&quot;k2&quot;);
+gr-&gt;Plot(y2,&quot;k2&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'r'
+plot y1 'k2'
+plot y2 'k2'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_region(gr,y1,y2,&quot;r&quot;,1);
+mgl_plot(gr,y1,&quot;k2&quot;);
+mgl_plot(gr,y2,&quot;k2&quot;);
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,'0.3*sin(2*pi*x)',0);
+call mgl_data_modify(y2,'0.5+0.3*cos(2*pi*x)',0);
+call mgl_box(gr,1);
+call mgl_region(gr,y1,y2,'r',1);
+call mgl_plot(gr,y1,'k2');
+call mgl_plot(gr,y2,'k2');
+call mgl_delete_data(y1);
+call mgl_delete_data(y2);
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y1, y2, x = mglData(50), mglData(50), mglData(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.Box();
+gr.Region(y1,y2,&quot;r&quot;);
+gr.Plot(y1,&quot;k2&quot;);
+gr.Plot(y2,&quot;k2&quot;);
+</pre><hr size="6">
+<a name="Region-gradient-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Error-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-_0441-g_0440_0430_0434_0438e_043d_0442_043d_043e_0439-_0437_0430_043b_0438_0432_043a_043e_0439-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.14 Region с градиентной заливкой &ndash; пример использования</h3>
+<a name="index-Region-4"></a>
+<div class="float">
+<img src="../png/region_2.png" alt="../png/region_2">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y1(50), y2(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Region(y1,y2,&quot;yr&quot;);
+gr-&gt;Plot(y1,&quot;k2&quot;);
+gr-&gt;Plot(y2,&quot;k2&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'yr'
+plot y1 'k2'
+plot y2 'k2'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_region(gr,y1,y2,&quot;yr&quot;,1);
+mgl_plot(gr,y1,&quot;k2&quot;);
+mgl_plot(gr,y2,&quot;k2&quot;);
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,'0.3*sin(2*pi*x)',0);
+call mgl_data_modify(y2,'0.5+0.3*cos(2*pi*x)',0);
+call mgl_box(gr,1);
+call mgl_region(gr,y1,y2,'yr',1);
+call mgl_plot(gr,y1,'k2');
+call mgl_plot(gr,y2,'k2');
+call mgl_delete_data(y1);
+call mgl_delete_data(y2);
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y1, y2, x = mglData(50), mglData(50), mglData(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.Box();
+gr.Region(y1,y2,&quot;yr&quot;);
+gr.Plot(y1,&quot;k2&quot;);
+gr.Plot(y2,&quot;k2&quot;);
+</pre><hr size="6">
+<a name="Error-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region-gradient-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#BoxPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Error-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.15 Error &ndash; пример использования</h3>
+<a name="index-Error-6"></a>
+<div class="float">
+<img src="../png/error.png" alt="../png/error">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,1), x0(10), y0(10), ex(10), ey(10);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+x0.Modify(&quot;2*x-1 + 0.1*rnd-0.05&quot;);
+y0.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1&quot;);
+ey.Modify(&quot;0.2&quot;); ex.Modify(&quot;0.1&quot;);
+gr-&gt;Box();
+gr-&gt;Plot(y);
+gr-&gt;Error(x0,y0,ex,ey,&quot;ko&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50
+new x0 10
+new y0 10
+new ex 10
+new ey 10
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify x0 '2*x-1 + 0.1*rnd-0.05'
+modify y0 '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1'
+modify ey '0.2'
+modify ex '0.1'
+box
+plot y
+error x0 y0 ex ey 'ko'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,1,1);
+HMDT x0 = mgl_create_data_size(10,1,1);
+HMDT y0 = mgl_create_data_size(10,1,1);
+HMDT ex = mgl_create_data_size(10,1,1);
+HMDT ey = mgl_create_data_size(10,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(x0,&quot;2*x-1 + 0.1*rnd-0.05&quot;,0);
+mgl_data_modify(y0,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1&quot;,0);
+mgl_data_modify(ey,&quot;0.2&quot;,0); mgl_data_modify(ex,&quot;0.1&quot;,0);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_error_exy(gr,x0,y0,ex,ey,&quot;ko&quot;);
+mgl_delete_data(x0); mgl_delete_data(y0);
+mgl_delete_data(ex); mgl_delete_data(ey);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, x0, y0, ex, ey, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+x0 = mgl_create_data_size(10,1,1)
+y0 = mgl_create_data_size(10,1,1)
+ex = mgl_create_data_size(10,1,1)
+ey = mgl_create_data_size(10,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(x0,'2*x-1 + 0.1*rnd-0.05',0);
+call mgl_data_modify(y0,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + &amp;
+                         0.2*sin(pi*x) + 0.2*rnd-0.1',0);
+call mgl_data_modify(ey,'0.2',0)
+call mgl_data_modify(ex,'0.1',0);
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_error_exy(gr,x0,y0,ex,ey,'ko')
+call mgl_delete_data(x0)
+call mgl_delete_data(y0)
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y, x0, y0, ex, ey = mglData(50,1), mglData(10), mglData(10), mglData(10), mglData(10);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+x0.Modify(&quot;2*x-1+0.1*rnd-0.05&quot;);
+y0.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)+0.2*rnd-0.1&quot;);
+ey.Modify(&quot;0.2&quot;);   ex.Modify(&quot;0.1&quot;);
+gr.Box();           gr.Plot(y);
+gr.Error(x0,y0,ex,ey,&quot;ko&quot;);
+</pre><hr size="6">
+<a name="BoxPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Error-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mark-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="BoxPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.16 BoxPlot &ndash; пример использования</h3>
+<a name="index-BoxPlot-3"></a>
+<div class="float">
+<img src="../png/boxplot.png" alt="../png/boxplot">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(10,7);
+a.Modify(&quot;(2*rnd-1)^3/2&quot;);
+gr-&gt;Box();
+gr-&gt;BoxPlot(a);
+gr-&gt;Plot(a,&quot; ko&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 10 7
+modify a '(2*rnd-1)^3/2'
+box
+boxplot a
+plot a ' ko'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(10,7,1);
+mgl_data_modify(a,&quot;(2*rnd-1)^3/2&quot;,0);
+mgl_box(gr,1);
+mgl_plot(gr,a,&quot; ko&quot;);
+mgl_boxplot(gr,a,NULL);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+y = mgl_create_data_size(10,7,1)
+call mgl_data_modify(a,'(2*rnd-1)^3/2',0);
+call mgl_box(gr,1)
+call mgl_plot(gr,a,' ko')
+call mgl_boxplot(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(10,7);
+a.Modify(&quot;(2*rnd-1)^3/2&quot;);
+gr.Box();
+gr.Plot(a,&quot; ko&quot;);
+gr.BoxPlot(a);
+</pre><hr size="6">
+<a name="Mark-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#BoxPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TextMark-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mark-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.17 Mark &ndash; пример использования</h3>
+<a name="index-Mark-7"></a>
+<div class="float">
+<img src="../png/mark.png" alt="../png/mark">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3), y1(50);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Mark(y,y1,&quot;bs&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+mark y y1 'bs'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+HMDT y1 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_mark_y(gr,y,y1,&quot;bs&quot;);
+mgl_delete_data(y);
+mgl_delete_data(y1);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, y1, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+y1 = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_data_modify(y1,'0.5+0.3*cos(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_mark_y(gr,y,y1,'bs')
+call mgl_delete_data(y)
+call mgl_delete_data(y1)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y, y1 = mglData(50,3), mglData(50);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);     y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.Box();
+gr.Mark(y,y1,&quot;bs&quot;);
+</pre><hr size="6">
+<a name="TextMark-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mark-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tube-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TextMark-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.18 TextMark &ndash; пример использования</h3>
+<a name="index-TextMark-9"></a>
+<div class="float">
+<img src="../png/textmark.png" alt="../png/textmark">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3), y1(50);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;TextMark(y,y1,&quot;\\gamma&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+textmark y y1 '\gamma'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y, y1;
+y = mgl_create_data_size(50,3,1);
+y1 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_textmark_yr(gr,y,y1,&quot;\\gamma&quot;,&quot;&quot;);
+mgl_delete_data(y);
+mgl_delete_data(y1);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, y1, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+y1 = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_data_modify(y1,'0.5+0.3*cos(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_textmark_yr(gr,y,y1,'\gamma','')
+call mgl_delete_data(y)
+call mgl_delete_data(y1)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y, y1 = mglData(50,3), mglData(50);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);     y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.Box();
+gr.TextMark(y,y1,&quot;\\gamma&quot;);
+</pre><hr size="6">
+<a name="Tube-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TextMark-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tube-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.19 Tube &ndash; пример использования</h3>
+<a name="index-Tube-7"></a>
+<div class="float">
+<img src="../png/tube.png" alt="../png/tube">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Tube(y,0.05);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+rotate 40 60
+light on
+box
+tube y 0.05
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_tube(gr,y,0.05,NULL);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_tube(gr,y,0.05,'')
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);  y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Tube(y,0.05);
+</pre><hr size="6">
+<a name="Text-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tube-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Torus-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.20 Text &ndash; пример использования</h3>
+<a name="index-Text-7"></a>
+<div class="float">
+<img src="../png/text.png" alt="../png/text">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr-&gt;Box();
+gr-&gt;Plot(y.SubData(-1,0));
+gr-&gt;Text(y,&quot;This is very long string drawn along a curve&quot;,&quot;:k&quot;);
+gr-&gt;Text(y,&quot;Another string drawn above a curve&quot;,&quot;T:r&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y(:,0)
+text y 'This is very long string drawn along a curve' ':k'
+text y 'Another string drawn above a curve' 'T:r'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_text_y(gr,y,&quot;This is very long string drawn along a curve&quot;,&quot;:k&quot;,-1.);
+mgl_text_y(gr,y,&quot;Another string drawn above a curve&quot;,&quot;T:r&quot;,-1.);
+mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y, mgl_create_data_size
+y = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_text_y(gr,y,'This is very long string drawn along a curve',':k',-1.)
+call mgl_text_y(gr,y,'Another string drawn above a curve','T:r',-1.)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y = mglData(50,3);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);     y.Modify(&quot;cos(2*pi*x)&quot;,2);
+gr.Box();
+gr.Plot(y.SubData(-1,0));
+gr.Text(y,&quot;This is very long string drawn along a curve&quot;,&quot;:k&quot;);
+gr.Text(y,&quot;Another string drawn above a curve&quot;,&quot;T:r&quot;);
+</pre><hr size="6">
+<a name="Torus-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Torus-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.21 Torus &ndash; пример использования</h3>
+<a name="index-Torus-3"></a>
+<div class="float">
+<img src="../png/torus.png" alt="../png/torus">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y1(50), y2(50);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+y2.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Torus(y1,y2,&quot;pz&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+rotate 40 60
+light on
+box
+torus y1 y2 'pz'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_torus(gr,y1,y2,&quot;pz&quot;);
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+call mgl_data_modify(y2,&quot;0.3*sin(2*pi*x)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_torus(gr,y1,y2,'pz')
+call mgl_delete_data(y1)
+call mgl_delete_data(y2)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y1, y2 = mglData(50), mglData(50);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+y2.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+gr.Rotate(40,60);    gr.Light(True);
+gr.Box();
+gr.Torus(y1,y2,&quot;pz&quot;);
+</pre><hr size="6">
+<a name="Chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Torus-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pie-chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.22 Chart &ndash; пример использования</h3>
+<a name="index-Chart-2"></a>
+<div class="float">
+<img src="../png/chart.png" alt="../png/chart">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData ch(7,2);
+ch.Modify(&quot;rnd+0.1&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Chart(ch,&quot;#&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+box
+chart ch
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,&quot;rnd+0.1&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_chart(gr,ch,&quot;#&quot;);
+mgl_delete_data(ch);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'#')
+call mgl_delete_data(ch)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ch = mglData(7,2);  ch.Modify(&quot;rnd+0.1&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Chart(ch,&quot;#&quot;);
+</pre><hr size="6">
+<a name="Pie-chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ring-chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pie-chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.23 Pie chart &ndash; пример использования</h3>
+<a name="index-Chart-3"></a>
+<a name="index-Axis-4"></a>
+<div class="float">
+<img src="../png/pie_chart.png" alt="../png/pie_chart">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData ch(7,2);
+ch.Modify(&quot;rnd+0.1&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;SetFunc(&quot;(y+1)/2*cos(pi*x)&quot;,&quot;(y+1)/2*sin(pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Chart(ch,&quot;bgr cmy#&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+1)/2*cos(pi*x)' '(y+1)/2*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,&quot;rnd+0.1&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_func(gr,&quot;(y+1)/2*cos(pi*x)&quot;,&quot;(y+1)/2*sin(pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_chart(gr,ch,&quot;bgr cmy#&quot;);
+mgl_delete_data(ch);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_func(gr,'(y+1)/2*cos(pi*x)','(y+1)/2*sin(pi*x)','');
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'bgr cmy#')
+call mgl_delete_data(ch)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ch = mglData(7,2);  ch.Modify(&quot;rnd+0.1&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.SetFunc(&quot;(y+1)/2*cos(pi*x)&quot;,&quot;(y+1)/2*sin(pi*x)&quot;);
+gr.Box();
+gr.Chart(ch,&quot;bgr cmy#&quot;);
+</pre><hr size="6">
+<a name="Ring-chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pie-chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ring-chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.1.24 Ring chart &ndash; пример использования</h3>
+<a name="index-Chart-4"></a>
+<a name="index-Axis-5"></a>
+<div class="float">
+<img src="../png/ring_chart.png" alt="../png/ring_chart">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData ch(7,2);
+ch.Modify(&quot;rnd+0.1&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;SetFunc(&quot;(y+2)/3*cos(pi*x)&quot;,&quot;(y+2)/3*sin(pi*x)&quot;);
+gr-&gt;Box();
+gr-&gt;Chart(ch,&quot;bgr cmy#&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+2)/3*cos(pi*x)' '(y+2)/3*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,&quot;rnd+0.1&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_func(gr,&quot;(y+2)/3*cos(pi*x)&quot;,&quot;(y+2)/3*sin(pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_chart(gr,ch,&quot;bgr cmy#&quot;);
+mgl_delete_data(ch);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_func(gr,'(y+2)/3*cos(pi*x)','(y+2)/3*sin(pi*x)','');
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'bgr cmy#')
+call mgl_delete_data(ch)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ch = mglData(7,2);  ch.Modify(&quot;rnd+0.1&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.SetFunc(&quot;(y+2)/3*cos(pi*x)&quot;,&quot;(y+2)/3*sin(pi*x)&quot;);
+gr.Box();
+gr.Chart(ch,&quot;bgr cmy#&quot;);
+</pre><hr size="6">
+<a name="g_t2D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ring-chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-2D-g_0440_0430_0444_0438_043a_043e_0432"></a>
+<h2 class="section">9.2 Примеры 2D графиков</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf-sample">9.2.1 Surf &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transparent-surface-sample">9.2.2 Transparent surface &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surface-in-fog-sample">9.2.3 Surface in fog &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Sharp-colors-sample">9.2.4 Sharp colors &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mesh-sample">9.2.5 Mesh &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fall-sample">9.2.6 Fall &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Belt-sample">9.2.7 Belt &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tile-sample">9.2.8 Tile &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Boxs-sample">9.2.9 Boxs &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens-sample">9.2.10 Dens &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-sample">9.2.11 Cont &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF-sample">9.2.12 ContF &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContD-sample">9.2.13 ContD &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axial-sample">9.2.14 Axial &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grad-sample">9.2.15 Grad &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+</table>
+<hr size="6">
+<a name="Surf-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparent-surface-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.1 Surf &ndash; пример использования</h3>
+<a name="index-Surf-6"></a>
+<div class="float">
+<img src="../png/surf.png" alt="../png/surf">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Surf(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Surf(a);
+</pre><hr size="6">
+<a name="Transparent-surface-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surface-in-fog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transparent-surface-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.2 Transparent surface &ndash; пример использования</h3>
+<a name="index-Surf-7"></a>
+<a name="index-Alpha-2"></a>
+<div class="float">
+<img src="../png/surf_alpha.png" alt="../png/surf_alpha">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Surf(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surf a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Alpha(True);
+gr.Surf(a);
+</pre><hr size="6">
+<a name="Surface-in-fog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparent-surface-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Sharp-colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surface-in-fog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.3 Surface in fog &ndash; пример использования</h3>
+<a name="index-Surf-8"></a>
+<a name="index-Fog-2"></a>
+<div class="float">
+<img src="../png/surf_fog.png" alt="../png/surf_fog">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Fog(1);
+gr-&gt;Box();
+gr-&gt;Surf(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+fog 1
+box
+surf a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_fog(gr,1.,0.25);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_fog(gr,1.,0.25)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Fog(1);
+gr.Surf(a);
+</pre><hr size="6">
+<a name="Sharp-colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surface-in-fog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mesh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Sharp-colors-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.4 Sharp colors &ndash; пример использования</h3>
+<a name="index-Surf-9"></a>
+<div class="float">
+<img src="../png/surf_sl.png" alt="../png/surf_sl">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Surf(a,&quot;BbcyrR|&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a 'BbcyrR|'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,&quot;BbcyrR|&quot;);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'BbcyrR|')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Surf(a,&quot;BbcyrR|&quot;);
+</pre><hr size="6">
+<a name="Mesh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Sharp-colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fall-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mesh-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.5 Mesh &ndash; пример использования</h3>
+<a name="index-Mesh-3"></a>
+<div class="float">
+<img src="../png/mesh.png" alt="../png/mesh">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Mesh(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+mesh a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_mesh(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_mesh(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Mesh(a);
+</pre><hr size="6">
+<a name="Fall-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mesh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Belt-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fall-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.6 Fall &ndash; пример использования</h3>
+<a name="index-Fall-3"></a>
+<div class="float">
+<img src="../png/fall.png" alt="../png/fall">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Fall(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+fall a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_fall(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_fall(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Fall(a);
+</pre><hr size="6">
+<a name="Belt-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fall-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tile-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Belt-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.7 Belt &ndash; пример использования</h3>
+<a name="index-Belt-3"></a>
+<div class="float">
+<img src="../png/belt.png" alt="../png/belt">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Belt(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+belt a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_belt(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_belt(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Belt(a);
+</pre><hr size="6">
+<a name="Tile-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Belt-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Boxs-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tile-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.8 Tile &ndash; пример использования</h3>
+<a name="index-Tile-3"></a>
+<div class="float">
+<img src="../png/tile.png" alt="../png/tile">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Tile(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+tile a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_tile(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_tile(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Tile(a);
+</pre><hr size="6">
+<a name="Boxs-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tile-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Boxs-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.9 Boxs &ndash; пример использования</h3>
+<a name="index-Boxs-3"></a>
+<div class="float">
+<img src="../png/boxs.png" alt="../png/boxs">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);  gr-&gt;Light(true);
+gr-&gt;Org = mglPoint(0,0,0);
+gr-&gt;Box();
+gr-&gt;Boxs(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+origin 0 0 0
+box
+boxs a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_boxs(gr,a,0,0.);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_origin(gr,0.,0.,0.);
+call mgl_box(gr,1)
+call mgl_boxs(gr,a,'',0.)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);       gr.Light(True);
+gr.SetOrigin(0.,0.,0.); gr.Box();
+gr.Boxs(a);
+</pre><hr size="6">
+<a name="Dens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Boxs-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.10 Dens &ndash; пример использования</h3>
+<a name="index-Dens-3"></a>
+<a name="index-Colorbar-6"></a>
+<div class="float">
+<img src="../png/dens.png" alt="../png/dens">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Dens(a);
+gr-&gt;Colorbar();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+dens a
+colorbar
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_dens(gr,a,0,0);
+mgl_colorbar(gr,&quot;&quot;,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_dens(gr,a,'',0)
+call mgl_colorbar(gr,'',0)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.Dens(a);
+gr.Colorbar();
+</pre><hr size="6">
+<a name="Cont-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.11 Cont &ndash; пример использования</h3>
+<a name="index-Cont-5"></a>
+<div class="float">
+<img src="../png/cont.png" alt="../png/cont">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Cont(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+cont a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_cont(gr,a,0,7,NAN);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+real zero, nan
+! I don't know the NaN symbol in Fortran. So I produce it as zero/zero
+zero = 0; nan = zero/zero 
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_cont(gr,a,'',7,nan)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);
+gr.Box();
+gr.Cont(a);
+</pre><hr size="6">
+<a name="ContF-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContD-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.12 ContF &ndash; пример использования</h3>
+<a name="index-ContF-5"></a>
+<div class="float">
+<img src="../png/contf.png" alt="../png/contf">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);  gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;ContF(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+contf a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_contf(gr,a,0,7,NAN);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+real zero, nan
+! I don't know the NaN symbol in Fortran. So I produce it as zero/zero
+zero = 0; nan = zero/zero
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_contf(gr,a,'',7,nan)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.ContF(a);
+</pre><hr size="6">
+<a name="ContD-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axial-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContD-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.13 ContD &ndash; пример использования</h3>
+<a name="index-ContD-5"></a>
+<div class="float">
+<img src="../png/contd.png" alt="../png/contd">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40), v(9);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+v.Fill(-1,1);
+gr-&gt;Box();
+gr-&gt;ContD(v,a);
+gr-&gt;Colorbar(v);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+var v 9 -1 1
+box
+contd v a
+colorbar v
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+HMDT v = mgl_create_data_size(9,1,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_fill(v,-1.,1.,'x');
+mgl_box(gr,1);
+mgl_contd_val(gr,v,a,0,0);
+mgl_colorbar_val(gr,v,NULL,0);
+mgl_delete_data(a);
+mgl_delete_data(v);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, v, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+v = mgl_create_data_size(9,1,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_fill(v,-1.,1.,'x');
+call mgl_box(gr,1)
+call mgl_contd_val(gr,v,a,'',0);
+call mgl_colorbar_val(gr,v,NULL,0);
+call mgl_delete_data(a)
+call mgl_delete_data(v)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, v = mglData(50,40), mglData(9);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+v.Fill(-1,1);
+gr.Box();
+gr.ContD(v,a);
+gr.Colorbar(v);
+</pre><hr size="6">
+<a name="Axial-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContD-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grad-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axial-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.14 Axial &ndash; пример использования</h3>
+<a name="index-Axial-5"></a>
+<div class="float">
+<img src="../png/axial.png" alt="../png/axial">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Axial(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+axial a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_axial(gr,a,&quot;&quot;,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_axial(gr,a,'',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.Box();
+gr.Axial(a);
+</pre><hr size="6">
+<a name="Grad-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axial-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grad-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.2.15 Grad &ndash; пример использования</h3>
+<a name="index-Grad-4"></a>
+<div class="float">
+<img src="../png/grad.png" alt="../png/grad">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();  gr-&gt;Alpha(true);    gr-&gt;Dens(a);
+gr-&gt;Grad(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box:alpha on:dens a
+grad a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_set_alpha(gr,1);
+mgl_dens(gr,a,0,0);
+mgl_grad(gr,a,0,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_dens(gr,a,'',0)
+call mgl_grad(gr,a,'',0)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();   gr.Alpha(1);    gr.Dens(a);
+gr.Colorbar();
+</pre><hr size="6">
+<a name="g_t3D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grad-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-3D-g_0440_0430_0444_0438_043a_043e_0432"></a>
+<h2 class="section">9.3 Примеры 3D графиков</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf3-sample">9.3.1 Surf3 &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cloud-sample">9.3.2 Cloud &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CloudP-sample">9.3.3 CloudP &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens3-sample">9.3.4 Dens3 &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont3-sample">9.3.5 Cont3 &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF3-sample">9.3.6 ContF3 &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-projection-sample">9.3.7 Cont projection &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens-projection-sample">9.3.8 Dens projection &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutMinMax-sample">9.3.9 CutMinMax &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutOff-sample">9.3.11 CutOff &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+<hr size="6">
+<a name="Surf3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cloud-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.1 Surf3 &ndash; пример использования</h3>
+<a name="index-Surf3-5"></a>
+<div class="float">
+<img src="../png/surf3.png" alt="../png/surf3">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Surf3(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+box
+surf3 a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf3(gr,a,0,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.Box();
+gr.Surf3(a);
+</pre><hr size="6">
+<a name="Cloud-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CloudP-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cloud-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.2 Cloud &ndash; пример использования</h3>
+<a name="index-Cloud-2"></a>
+<div class="float">
+<img src="../png/cloud.png" alt="../png/cloud">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Cloud(a,&quot;wyrRk&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+box
+cloud a 'wyrRk'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_cloud(gr,a,&quot;wyrRk&quot;,1.);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_cloud(gr,a,'wyrRk',1.)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Alpha(True);
+gr.Box();
+gr.Cloud(a,&quot;wyrRk&quot;);
+</pre><hr size="6">
+<a name="CloudP-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cloud-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CloudP-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.3 CloudP &ndash; пример использования</h3>
+<a name="index-CloudP-3"></a>
+<div class="float">
+<img src="../png/cloudp.png" alt="../png/cloudp">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;CloudP(a,&quot;wyrRk&quot;);
+</pre><p><strong>MGL скрипт</strong>
+Not available.
+<strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_cloudp(gr,a,&quot;wyrRk&quot;,1.);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_cloudp(gr,a,'wyrRk',1.)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+Not available.
+</p><hr size="6">
+<a name="Dens3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CloudP-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.4 Dens3 &ndash; пример использования</h3>
+<a name="index-Dens3-3"></a>
+<a name="index-Axis-6"></a>
+<div class="float">
+<img src="../png/densa.png" alt="../png/densa">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);  gr-&gt;Alpha(true);    gr-&gt;Org = mglPoint(0,0,0);
+gr-&gt;Box();
+gr-&gt;DensA(a);
+gr-&gt;Axis();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+origin 0 0 0
+box
+densa a
+axis
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_alpha(gr,1);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_dens3_all(gr,a,0);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_alpha(gr,1)
+call mgl_set_origin(gr,0.,0.,0.);
+call mgl_box(gr,1)
+call mgl_dens3_all(gr,a,'')
+call mgl_axis(gr,&quot;xyz&quot;)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);       gr.Alpha(True);
+gr.SetOrigin(0,0,0);    gr.Box();
+gr.Axis();
+gr.DensA(a);
+</pre><hr size="6">
+<a name="Cont3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.5 Cont3 &ndash; пример использования</h3>
+<a name="index-Cont3-5"></a>
+<div class="float">
+<img src="../png/conta.png" alt="../png/conta">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;ContA(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+conta a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_cont_all(gr,a,0,7);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_cont_all(gr,a,'',7)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);
+gr.Box();
+gr.ContA(a);
+</pre><hr size="6">
+<a name="ContF3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-projection-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.6 ContF3 &ndash; пример использования</h3>
+<a name="index-ContF3-5"></a>
+<div class="float">
+<img src="../png/contfa.png" alt="../png/contfa">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);  gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;ContFA(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+box
+contfa a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_contf_all(gr,a,0,7);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_contf_all(gr,a,'',7)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.ContFA(a);
+</pre><hr size="6">
+<a name="Cont-projection-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens-projection-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-projection-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.7 Cont projection &ndash; пример использования</h3>
+<a name="index-ContX-3"></a>
+<a name="index-ContY-3"></a>
+<a name="index-ContZ-3"></a>
+<div class="float">
+<img src="../png/cont_xyz.png" alt="../png/cont_xyz">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;ContX(a.Sum(&quot;x&quot;),&quot;&quot;,-1);
+gr-&gt;ContY(a.Sum(&quot;y&quot;),&quot;&quot;,1);
+gr-&gt;ContZ(a.Sum(&quot;z&quot;),&quot;&quot;,-1);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+contx s '' -1
+sum s a 'y'
+conty s '' 1
+sum s a 'z'
+contz s '' -1
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40), s;
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+s=mgl_data_sum(a,&quot;x&quot;); mgl_cont_x(gr,s,0,-1.,7); mgl_delete_data(s);
+s=mgl_data_sum(a,&quot;y&quot;); mgl_cont_y(gr,s,0,1.,7); mgl_delete_data(s);
+s=mgl_data_sum(a,&quot;z&quot;); mgl_cont_z(gr,s,0,-1.,7); mgl_delete_data(s);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,s, mgl_create_data_size, mgl_data_sum
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+s=mgl_data_sum(a,'x')
+call mgl_cont_x(gr,s,'',-1.,7)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'y')
+call mgl_cont_y(gr,s,'',1.,7)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'z')
+call mgl_cont_z(gr,s,'',-1.,7)
+call mgl_delete_data(s)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);               gr.Box();
+gr.ContX(a.Sum(&quot;x&quot;),&quot;&quot;,-1);
+gr.ContY(a.Sum(&quot;y&quot;),&quot;&quot;,1);
+gr.ContZ(a.Sum(&quot;z&quot;),&quot;&quot;,-1);
+</pre><hr size="6">
+<a name="Dens-projection-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-projection-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutMinMax-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-projection-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.8 Dens projection &ndash; пример использования</h3>
+<a name="index-DensX-2"></a>
+<a name="index-DensY-2"></a>
+<a name="index-DensZ-2"></a>
+<div class="float">
+<img src="../png/dens_xyz.png" alt="../png/dens_xyz">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;DensX(a.Sum(&quot;x&quot;),&quot;&quot;,-1);
+gr-&gt;DensY(a.Sum(&quot;y&quot;),&quot;&quot;,1);
+gr-&gt;DensZ(a.Sum(&quot;z&quot;),&quot;&quot;,-1);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+densx s '' -1
+sum s a 'y'
+densy s '' 1
+sum s a 'z'
+densz s '' -1
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a, s; a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+s=mgl_data_sum(a,&quot;x&quot;); mgl_dens_x(gr,s,0,-1.); mgl_delete_data(s);
+s=mgl_data_sum(a,&quot;y&quot;); mgl_dens_y(gr,s,0,1.); mgl_delete_data(s);
+s=mgl_data_sum(a,&quot;z&quot;); mgl_dens_z(gr,s,0,-1.); mgl_delete_data(s);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,s, mgl_create_data_size, mgl_data_sum
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+s=mgl_data_sum(a,'x')
+call mgl_dens_x(gr,s,'',-1.)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'y')
+call mgl_dens_y(gr,s,'',1.)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'z')
+call mgl_dens_z(gr,s,'',-1.)
+call mgl_delete_data(s)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);               gr.Box();
+gr.DensX(a.Sum(&quot;x&quot;),&quot;&quot;,-1);
+gr.DensY(a.Sum(&quot;y&quot;),&quot;&quot;,1);
+gr.DensZ(a.Sum(&quot;z&quot;),&quot;&quot;,-1);
+</pre><hr size="6">
+<a name="CutMinMax-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens-projection-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Isocaps-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutMinMax-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.9 CutMinMax &ndash; пример использования</h3>
+<a name="index-Surf3-6"></a>
+<a name="index-CutMin"></a>
+<a name="index-CutMax"></a>
+<div class="float">
+<img src="../png/cutminmax.png" alt="../png/cutminmax">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;CutMin = mglPoint(0,-1,-1); gr-&gt;CutMax = mglPoint(1,0,1);
+gr-&gt;Box();
+gr-&gt;Surf3(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut 0 -1 -1 1 0 1
+box
+surf3 a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.);
+mgl_box(gr,1);
+mgl_surf3(gr,a,0,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.);
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.SetCutBox(0,-1,-1,1,0,1);    gr.Box();
+gr.Surf3(a);
+</pre><hr size="6">
+<a name="Isocaps-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutMinMax-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutOff-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Isocaps_0027_0027-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</h3>
+<a name="index-Surf3-7"></a>
+<a name="index-ContF3-6"></a>
+<a name="index-CutMin-1"></a>
+<a name="index-CutMax-1"></a>
+<div class="float">
+<img src="../png/cutminmax2.png" alt="../png/cutminmax2">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(61,51,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;CutMin = mglPoint(0,-1,-1); gr-&gt;CutMax = mglPoint(1,0,1.1);
+gr-&gt;Box();
+gr-&gt;Surf3(-1,a);
+gr-&gt;ContF3(a,'x',-1); gr-&gt;ContF3(a,'y',-1);
+gr-&gt;ContF3(a,'z', 0); gr-&gt;ContF3(a,'z',39);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 61 51 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+cut 0 -1 -1 1 0 1.1
+box
+surf3 a -1
+contf3 a 'x' -1
+contf3 a 'y' -1
+contf3 a 'z' 0
+contf3 a 'z' 39
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(61,51,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.1);
+mgl_box(gr,1);
+mgl_surf3_val(gr,-1.,a,0);
+mgl_contf3(gr,a,'x',-1, &quot;&quot;, 7);
+mgl_contf3(gr,a,'y',-1, &quot;&quot;, 7);
+mgl_contf3(gr,a,'z', 0, &quot;&quot;, 7);
+mgl_contf3(gr,a,'z',39, &quot;&quot;, 7);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">a = mgl_create_data_size(61,51,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.1);
+call mgl_box(gr,1)
+call mgl_surf3_val(gr,-1.,a,'')
+call mgl_contf3(gr,a,'x',-1, '', 7);
+call mgl_contf3(gr,a,'y',-1, '', 7);
+call mgl_contf3(gr,a,'z', 0, '', 7);
+call mgl_contf3(gr,a,'z',39, '', 7);
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(61,51,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.SetCutBox(0,-1,-1,1,0,1.1);    gr.Box();
+gr.Surf3(-1,a);
+gr.ContF3(a,&quot;x&quot;,-1);    gr.ContF3(a,&quot;y&quot;,-1);
+gr.ContF3(a,&quot;z&quot;,0);     gr.ContF3(a,&quot;z&quot;,39);
+</pre><hr size="6">
+<a name="CutOff-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Isocaps-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutOff-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.3.11 CutOff &ndash; пример использования</h3>
+<a name="index-Surf3-8"></a>
+<a name="index-CutOff-2"></a>
+<div class="float">
+<img src="../png/surf3_cutoff.png" alt="../png/surf3_cutoff">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;CutOff(&quot;(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)&quot;);
+gr-&gt;Box();
+gr-&gt;Surf3(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut '(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)'
+box
+surf3 a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_set_cutoff(gr,&quot;(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)&quot;);
+mgl_box(gr,1);
+mgl_surf3(gr,a,0,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,'-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)',0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_set_cutoff(gr,'(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)')
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(61,51,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.CutOff(&quot;(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)&quot;);
+gr.Box();
+gr.Surf3(a);
+</pre><hr size="6">
+<a name="Dual-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutOff-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfC-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-_043f_0430_0440_043d_044b_0445_002f_0432e_043a_0442_043e_0440_043d_044b_0445-g_0440_0430_0444_0438_043a_043e_0432"></a>
+<h2 class="section">9.4 Примеры парных/векторных графиков</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#SurfC-sample">9.4.1 SurfC &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#SurfA-sample">9.4.2 SurfA &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TileS-sample">9.4.3 TileS &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Map-sample">9.4.4 Map &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Traj-sample">9.4.5 Traj &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect-sample">9.4.6 Vect &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectL-sample">9.4.7 VectL &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectC-sample">9.4.8 VectC &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-sample">9.4.9 Flow &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe-sample">9.4.10 Pipe &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dew-sample">9.4.11 Dew &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3C-sample">9.4.12 Surf3C &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3A-sample">9.4.13 Surf3A &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect-3D-sample">9.4.14 Vect 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectL-3D-sample">9.4.15 VectL 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectC-3D-sample">9.4.16 VectC 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-3D-sample">9.4.17 Flow 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe-3D-sample">9.4.18 Pipe 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Crust-sample">9.4.19 Crust &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dots-sample">9.4.20 Dots &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+</table>
+<hr size="6">
+<a name="SurfC-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfA-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfC-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.1 SurfC &ndash; пример использования</h3>
+<a name="index-SurfC-3"></a>
+<div class="float">
+<img src="../png/surfc.png" alt="../png/surfc">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40), b(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;SurfC(a,b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surfc a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+HMDT b = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surfc(gr,a,b,0);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surfc(gr,a,b,'')
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(50,40), mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.SurfC(a,b);
+</pre><hr size="6">
+<a name="SurfA-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfC-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TileS-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfA-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.2 SurfA &ndash; пример использования</h3>
+<a name="index-SurfA-3"></a>
+<div class="float">
+<img src="../png/surfa.png" alt="../png/surfa">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40), b(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;SurfA(a,b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surfa a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a, b;
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surfa(gr,a,b,0);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1);
+call mgl_box(gr,1)
+call mgl_surfa(gr,a,b,'')
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(50,40), mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.Box();
+gr.SurfC(a,b);
+</pre><hr size="6">
+<a name="TileS-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfA-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Map-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TileS-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.3 TileS &ndash; пример использования</h3>
+<a name="index-TileS-3"></a>
+<div class="float">
+<img src="../png/tiles.png" alt="../png/tiles">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40), b(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;TileS(a,b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+tile a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a, b;
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_tiles(gr,a,b,0);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_tiles(gr,a,b,'')
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(50,40), mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.TileS(a,b);
+</pre><hr size="6">
+<a name="Map-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TileS-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Traj-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Map-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.4 Map &ndash; пример использования</h3>
+<a name="index-Map-3"></a>
+<div class="float">
+<img src="../png/map.png" alt="../png/map">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50, 40), b(50, 40);
+gr-&gt;Puts(mglPoint(0, 0), &quot;\\to&quot;, &quot;&quot;, -1.4);
+gr-&gt;Axis(mglPoint(-1,-1,-2),mglPoint(1,1,2));
+gr-&gt;SubPlot(2, 1, 0);
+a.Fill(&quot;x&quot;, gr-&gt;Min, gr-&gt;Max);	b.Fill(&quot;y&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Puts(mglPoint(0, 1.1), &quot;\\{x, y\\}&quot;, &quot;C&quot;, -2);		gr-&gt;Box();
+gr-&gt;Map(a, b, &quot;brgk&quot;, 0, false);
+gr-&gt;SubPlot(2, 1, 1);
+a.Fill(&quot;(x^3+y^3)/2&quot;, gr-&gt;Min, gr-&gt;Max);
+b.Fill(&quot;(x-y)/2&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Puts(mglPoint(0, 1.1), &quot;\\{\\frac{x^3+y^3}{2}, \\frac{x-y}{2}\\}&quot;, &quot;C&quot;, -2);
+gr-&gt;Box();
+gr-&gt;Map(a, b, &quot;brgk&quot;, 0, false);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+text 0 0 '\to'
+zrange -2 2
+subplot 2 1 0
+text 0 1.1 '\{x, y\}' '' -2
+box
+fill a 'x'
+fill b 'y'
+map a b 'brgk' 0 0
+subplot 2 1 1
+text 0 1.1 '\{\frac{x^3+y^3}{2}, \frac{x-y}{2}\}' '' -2
+box
+fill a '(x^3+y^3)/2'
+fill b '(x-y)/2'
+map a b 'brgk' 0 0
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+HMDT b = mgl_create_data_size(50,40,1);
+mgl_puts_ext(gr, 0.,0.,0., &quot;\\to&quot;, &quot;&quot;, -1.4, 't');
+mgl_set_axis_3d(gr,-1.,-1.,-2.,1.,1.,2.);
+mgl_subplot(gr, 2, 1, 0);
+mgl_data_fill_eq(gr, a, &quot;x&quot;, 0, 0);
+mgl_data_fill_eq(gr, b, &quot;y&quot;, 0, 0);
+mgl_puts_ext(gr, 0.,1.1,0., &quot;\\{x, y\\}&quot;, &quot;C&quot;, -2., 't');
+mgl_box(gr,1);
+mgl_map(gr, a, b, &quot;brgk&quot;, 0, 0);
+mgl_subplot(gr, 2, 1, 1);
+mgl_data_fill_eq(gr, a, &quot;(x^3+y^3)/2&quot;, 0, 0);
+mgl_data_fill_eq(gr, b, &quot;(x-y)/2&quot;, 0, 0);
+mgl_puts_ext(gr, 0.,1.1,0., &quot;\\{\\frac{x^3+y^3}{2}, \\frac{x-y}{2}\\}&quot;, &quot;C&quot;, -2., 't');
+mgl_box(gr,1);
+mgl_map(gr, a, b, &quot;brgk&quot;, 0, 0);
+mgl_box(gr,1);
+mgl_map(gr,a,b,0,0,1);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_puts_ext(gr, 0.,0.,0., '\to', '', -1.4, 't');
+call mgl_set_axis_3d(gr,-1.,-1.,-2.,1.,1.,2.);
+call mgl_subplot(gr, 2, 1, 0);
+call mgl_data_fill_eq(gr, a, 'x', 0, 0);
+call mgl_data_fill_eq(gr, b, 'y', 0, 0);
+call mgl_puts_ext(gr, 0.,1.1,0., '\{x, y\}', 'C', -2., 't');
+call mgl_box(gr,1);
+call mgl_map(gr, a, b, 'brgk', 0, 0);
+call mgl_subplot(gr, 2, 1, 1);
+call mgl_data_fill_eq(gr, a, '(x^3+y^3)/2', 0, 0);
+call mgl_data_fill_eq(gr, b, '(x-y)/2', 0, 0);
+call mgl_puts_ext(gr, 0.,1.1,0., '\{\frac{x^3+y^3}{2}, \frac{x-y}{2}\}', 'C', -2., 't');
+call mgl_box(gr,1);
+call mgl_map(gr, a, b, 'brgk', 0, 0);
+call mgl_box(gr,1);
+call mgl_map(gr,a,b,0,0,1);
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(50,40), mglData(50,40);
+gr.Puts(0, 0, 0, &quot;\\to&quot;, &quot;&quot;, -1.4);
+gr.SetRanges(-1,1,-1,1,-2,2);
+gr.SubPlot(2, 1, 0);
+gr.Fill(a, &quot;x&quot;);    gr.Fill(b, &quot;y&quot;);
+gr.Puts(0, 1.1, 0, &quot;\\{x, y\\}&quot;, &quot;C&quot;, -2);
+gr.Box();
+gr.Map(a, b, &quot;brgk&quot;, 0, 0);
+gr.SubPlot(2, 1, 1);
+gr.Fill(a, &quot;(x^3+y^3)/2&quot;);   gr.Fill(b, &quot;(x-y)/2&quot;);
+gr.Puts(0, 1.1, 0, &quot;\\{\\frac{x^3+y^3}{2}, \\frac{x-y}{2}\\}&quot;, &quot;C&quot;, -2);
+gr.Box();
+gr.Map(a, b, &quot;brgk&quot;, 0, 0);
+</pre><hr size="6">
+<a name="Traj-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Map-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Traj-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.5 Traj &ndash; пример использования</h3>
+<a name="index-Traj-3"></a>
+<div class="float">
+<img src="../png/traj.png" alt="../png/traj">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y(50,3), x(50), y1(50), y2(50);
+y.Modify(&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+y2.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+x.Fill(-1,1,'x');
+gr-&gt;Box();
+gr-&gt;Plot(x,y);
+gr-&gt;Traj(x,y,y1,y2);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y 50 3
+new x 50
+new y1 50
+new y2 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+fill x -1 1
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+box
+plot x y
+traj x y y1 y2
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y = mgl_create_data_size(50,3,1);
+HMDT x= mgl_create_data_size(50,1,1);
+HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,&quot;0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)&quot;,0);
+mgl_data_modify(y,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(y,&quot;cos(2*pi*x)&quot;,2);
+mgl_data_modify(x,&quot;2*x-1&quot;,0);
+mgl_data_modify(y1,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_box(gr,1);
+mgl_plot_xy(gr,x,y,NULL);
+mgl_traj_xy(gr,yx,y,y1,y2,NULL,0,0);
+mgl_delete_data(y);  mgl_delete_data(y1);
+mgl_delete_data(x);  mgl_delete_data(y2);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer x,y,y1,y2, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+x= mgl_create_data_size(50,1,1);
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_data_modify(x,'2*x-1',0);
+call mgl_data_modify(y1,'0.5+0.3*cos(2*pi*x)',0);
+call mgl_data_modify(y2,'0.3*sin(2*pi*x)',0);
+call mgl_box(gr,1)
+call mgl_plot_xy(gr,x,y,NULL);
+call mgl_traj_xy(gr,yx,y,y1,y2,NULL,0,0);
+call mgl_delete_data(y)
+call mgl_delete_data(x)
+call mgl_delete_data(y1)
+call mgl_delete_data(y2)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">x,y,y1,y2 = mglData(50), mglData(50,3), mglData(50), mglData(50);
+y.Modify(&quot;0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)&quot;,0);
+y.Modify(&quot;sin(2*pi*x)&quot;,1);
+y.Modify(&quot;cos(2*pi*x)&quot;,2);
+y1.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+y2.Modify(&quot;0.3*sin(2*pi*x)&quot;);
+x.Fill(-1,1,'x');
+gr.Box();
+gr.Plot(x,y);
+gr.Traj(x,y,y1,y2);
+</pre><hr size="6">
+<a name="Vect-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Traj-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectL-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.6 Vect &ndash; пример использования</h3>
+<a name="index-Vect-5"></a>
+<div class="float">
+<img src="../png/vect.png" alt="../png/vect">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Vect(a,b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vect a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_vect_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_vect_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.Vect(a,b);
+</pre><hr size="6">
+<a name="VectL-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectC-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectL-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.7 VectL &ndash; пример использования</h3>
+<a name="index-VectL"></a>
+<div class="float">
+<img src="../png/vectl.png" alt="../png/vectl">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;VectL(a,b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectl a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a, b;
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_vectl_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_vectl_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.VectL(a,b);
+</pre><hr size="6">
+<a name="VectC-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectL-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectC-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.8 VectC &ndash; пример использования</h3>
+<a name="index-VectC"></a>
+<div class="float">
+<img src="../png/vectc.png" alt="../png/vectc">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;VectC(a,b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectc a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a, b;
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_vectc_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_vectc_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.VectC(a,b);
+</pre><hr size="6">
+<a name="Flow-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectC-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.9 Flow &ndash; пример использования</h3>
+<a name="index-Flow-5"></a>
+<div class="float">
+<img src="../png/flow.png" alt="../png/flow">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Flow(a,b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+flow a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_flow_2d(gr,a,b,0,5,1,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_flow_2d(gr,a,b,'',5,1,0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.Flow(a,b);
+</pre><hr size="6">
+<a name="Pipe-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dew-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.10 Pipe &ndash; пример использования</h3>
+<a name="index-Pipe-5"></a>
+<div class="float">
+<img src="../png/pipe.png" alt="../png/pipe">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Pipe(a,b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+box
+pipe a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_pipe_2d(gr,a,b,0,0.05,5,1,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_pipe_2d(gr,a,b,'',0.05,5,1,0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Light(True);    gr.Box();
+gr.Pipe(a,b);
+</pre><hr size="6">
+<a name="Dew-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3C-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dew-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.11 Dew &ndash; пример использования</h3>
+<a name="index-Dew-3"></a>
+<div class="float">
+<img src="../png/dew.png" alt="../png/dew">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(20,30), b(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Light(true);
+gr-&gt;Dew(a,b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+light on
+dew a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_set_light(gr,1);
+mgl_dew_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_set_light(gr,1);
+call mgl_dew_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(20,30), mglData(20,30);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Light(True);    gr.Box();
+gr.Dew(a,b);
+</pre><hr size="6">
+<a name="Surf3C-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dew-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3A-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3C-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.12 Surf3C &ndash; пример использования</h3>
+<a name="index-Surf3C-5"></a>
+<div class="float">
+<img src="../png/surf3c.png" alt="../png/surf3c">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40), b(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+b.Modify(&quot;1-2*tanh(4*(x+y-1)^2)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Surf3C(a, b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3c a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+HMDT b = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_data_modify(b,&quot;1-2*tanh(4*(x+y-1)^2)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf3c(gr,a,b,0,3);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+b = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_data_modify(b,&quot;1-2*tanh(4*(x+y-1)^2)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf3c(gr,a,b,'',3)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(60,50,40), mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2+(2*y-1)^2+(2*z-1)^4-(2*z-1)^2-0.1)&quot;);
+b.Modify(&quot;1-2*tanh(4*(x+y-1)^2)&quot;);
+gr.Rotate(40,60);   gr.Light(True);     gr.Alpha(True);
+gr.Box();
+gr.Surf3C(a,b);
+</pre><hr size="6">
+<a name="Surf3A-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3C-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3A-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.13 Surf3A &ndash; пример использования</h3>
+<a name="index-Surf3A-5"></a>
+<div class="float">
+<img src="../png/surf3a.png" alt="../png/surf3a">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40), b(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+b.Modify(&quot;1-2*tanh(4*(x+y-1)^2)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Box();
+gr-&gt;Surf3A(a, b);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3a a b
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a, b; a = mgl_create_data_size(60,50,40);
+b = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_data_modify(b,&quot;1-2*tanh(4*(x+y-1)^2)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf3a(gr,a,b,0,3);
+mgl_delete_data(a); mgl_delete_data(b);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+b = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_data_modify(b,&quot;1-2*tanh(4*(x+y-1)^2)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf3a(gr,a,b,'',3)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(60,50,40), mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2+(2*y-1)^2+(2*z-1)^4-(2*z-1)^2-0.1)&quot;);
+b.Modify(&quot;1-2*tanh(4*(x+y-1)^2)&quot;);
+gr.Rotate(40,60);   gr.Light(True);     gr.Alpha(True);
+gr.Box();
+gr.Surf3A(a,b);
+</pre><hr size="6">
+<a name="Vect-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3A-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectL-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.14 Vect 3D &ndash; пример использования</h3>
+<a name="index-Vect-6"></a>
+<div class="float">
+<img src="../png/vect3.png" alt="../png/vect3">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Vect(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vect ex ey ez 'bwr'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_vect_3d(gr,ex,ey,ez,&quot;bwr&quot;);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_vect_3d(gr,ex,ey,ez,'bwr')
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.Vect(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="VectL-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectC-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectL-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.15 VectL 3D &ndash; пример использования</h3>
+<a name="index-VectL-1"></a>
+<div class="float">
+<img src="../png/vectl3.png" alt="../png/vectl3">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;VectL(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectl ex ey ez 'bwr'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_vectl_3d(gr,ex,ey,ez,&quot;bwr&quot;);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_vectl_3d(gr,ex,ey,ez,'bwr')
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.VectL(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="VectC-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectL-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectC-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.16 VectC 3D &ndash; пример использования</h3>
+<a name="index-VectC-1"></a>
+<div class="float">
+<img src="../png/vectc3.png" alt="../png/vectc3">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;VectC(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectc ex ey ez 'bwr'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_vectc_3d(gr,ex,ey,ez,&quot;bwr&quot;);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_vectc_3d(gr,ex,ey,ez,'bwr')
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.VectC(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="Flow-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectC-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.17 Flow 3D &ndash; пример использования</h3>
+<a name="index-Flow-6"></a>
+<div class="float">
+<img src="../png/flow3.png" alt="../png/flow3">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData ex(30,30,30), ey(30,30,30), ez(30,30,30);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Flow(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new ex 30 30 30
+new ey 30 30 30
+new ez 30 30 30
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+flow ex ey ez 'bwr'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(30,30,30);
+ey = mgl_create_data_size(30,30,30);
+ez = mgl_create_data_size(30,30,30);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_flow_3d(gr,ex,ey,ez,&quot;bwr&quot;,3,1);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(30,30,30)
+ey = mgl_create_data_size(30,30,30)
+ez = mgl_create_data_size(30,30,30)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_flow_3d(gr,ex,ey,ez,'bwr',3,1)
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.Flow(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="Pipe-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Crust-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.18 Pipe 3D &ndash; пример использования</h3>
+<a name="index-Pipe-6"></a>
+<div class="float">
+<img src="../png/pipe3.png" alt="../png/pipe3">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill(&quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ey.Fill(&quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+ez.Fill(&quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Pipe(ex, ey, ez, &quot;bwr&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+light on
+box
+pipe ex ey ez 'bwr'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_data_fill_eq(gr, ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;,0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_pipe_3d(gr,ex,ey,ez,&quot;bwr&quot;,0.05,3,1);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &amp;
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1);
+call mgl_box(gr,1);
+call mgl_pipe_3d(gr,ex,ey,ez,'bwr',0.05,3,1)
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, &quot;0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ey, &quot;0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Fill(ez, &quot;0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)&quot;);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Pipe(ex,ey,ez,&quot;bwr&quot;);
+</pre><hr size="6">
+<a name="Crust-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dots-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Crust-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.19 Crust &ndash; пример использования</h3>
+<a name="index-Crust-3"></a>
+<div class="float">
+<img src="../png/crust.png" alt="../png/crust">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(&quot;hotdogs.pts&quot;);
+a.Norm(-1,1,true);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Crust(a,&quot;p&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+light on
+box
+crust a 'p'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_file(&quot;hotdogs.pts&quot;);
+mgl_data_norm(a,-1.,1.,1,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_crust_tr(gr,a,&quot;p&quot;,0.);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_file
+a = mgl_create_data_file(&quot;hotdogs.pts&quot;)
+call mgl_data_norm(a,-1.,1.,1,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_crust_tr(gr,a,&quot;p&quot;,0.)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(&quot;hotdogs.pts&quot;);
+a.Norm(-1,1,True);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Crust(a);
+</pre><hr size="6">
+<a name="Dots-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Crust-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dots-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.4.20 Dots &ndash; пример использования</h3>
+<a name="index-Dots-4"></a>
+<div class="float">
+<img src="../png/dots.png" alt="../png/dots">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(&quot;hotdogs.pts&quot;);
+a.Norm(-1,1,true);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Dots(a,&quot;p&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+box
+dots a 'p'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_file(&quot;hotdogs.pts&quot;);
+mgl_data_norm(a,-1.,1.,1,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_dots_tr(gr,a,&quot;p&quot;);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_file
+a = mgl_create_data_file(&quot;hotdogs.pts&quot;)
+call mgl_data_norm(a,-1.,1.,1,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_dots_tr(gr,a,&quot;p&quot;)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(&quot;hotdogs.pts&quot;);
+a.Norm(-1,1,True);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Dots(a);
+</pre>
+
+<hr size="6">
+<a name="Basic-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dots-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0411_0430_0437_043e_0432_044be-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438"></a>
+<h2 class="section">9.5 Базовые возможности</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t1D-plot-sample">9.5.1 Пример графиков 1D данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plot-sample">9.5.2 Пример графиков 2D данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plot-sample">9.5.3 Пример графиков 3D данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Line-styles-sample">9.5.4 Пример стилей линий и маркеров</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Arrow-styles-sample">9.5.5 Пример стилей стрелок</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-styles-sample">9.5.6 Пример стилей текста</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TeX-parsing-sample">9.5.7 Пример TeX формулы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-faces-sample">9.5.8 Примеры начертаний шрифта</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Colors-sample">9.5.9 Примеры цветов</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Color-schemes-sample">9.5.10 Примеры цветовых схем</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Normal-transparency">9.5.11 Обычная прозрачность</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Glass_002dlike-transparency">9.5.12 &quot;Стеклянная&quot; прозрачность</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lamp_002dlike-transparency">9.5.13 &quot;Ламповая&quot; прозрачность</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+</table>
+<hr size="6">
+<a name="g_t1D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Basic-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-1D-_0434_0430_043d_043d_044b_0445"></a>
+<h3 class="subsection">9.5.1 Пример графиков 1D данных</h3>
+<a name="index-Plot-8"></a>
+<a name="index-Bars-8"></a>
+<a name="index-SubPlot-3"></a>
+<div class="float">
+<img src="../png/sample8.png" alt="../png/sample8">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y0(50);		y0.Modify(&quot;sin(pi*(2*x-1))&quot;);
+gr-&gt;SubPlot(2,2,0);
+gr-&gt;Plot(y0);		gr-&gt;Box();
+
+gr-&gt;SubPlot(2,2,1);
+mglData y1(50,2);
+y1.Modify(&quot;sin(pi*2*x-pi)&quot;);	y1.Modify(&quot;cos(pi*2*x-pi)/2&quot;,1);
+gr-&gt;Plot(y1);		gr-&gt;Box();
+
+mglData x(50);		x.Modify(&quot;cos(pi*2*x-pi)&quot;);
+gr-&gt;Plot(x,y0,&quot;Y+&quot;);
+
+gr-&gt;Plot(y1.SubData(-1,0),y1.SubData(-1,1),&quot;q|&quot;);
+
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(60,40);
+mglData z(50);		z.Modify(&quot;2*x-1&quot;);
+gr-&gt;Plot(x,y0,z);		gr-&gt;Box();
+
+mglData y2(10,3);	y2.Modify(&quot;cos(pi*(2*x-1-y))&quot;);
+y2.Modify(&quot;2*x-1&quot;,2);
+gr-&gt;Plot(y2.SubData(-1,0),y2.SubData(-1,1),y2.SubData(-1,2),&quot;bo &quot;);
+
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(60,40);
+gr-&gt;Bars(x,y0,z,&quot;ri&quot;);		gr-&gt;Box();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y0 50: modify y0 'sin(pi*(2*x-1))'
+subplot 2 2 0
+plot y0: box
+
+subplot 2 2 1
+new y1 50 2
+modify y1 'sin(pi*2*x-pi)'
+modify y1 'cos(pi*2*x-pi)/2' 1
+plot y1: box
+
+new x 50: modify x 'cos(pi*2*x-pi)'
+plot x y0 'Y+'
+plot y1(:,0) y(:,1) 'q|'
+
+subplot 2 2 2:rotate 60 40
+new z 50:   modify z '2*x-1'
+plot x y0 z 'g':box
+new y2 10 3
+modify y2 'cos(pi*(2*x-1-y))'
+modify y2 '2*x-1' 2
+plot y2(:,0) y2(:,1) y2(:,2) 'bo '
+
+subplot 2 2 3:rotate 60 40
+bars x y0 z 'r':box
+</pre><hr size="6">
+<a name="g_t2D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-2D-_0434_0430_043d_043d_044b_0445"></a>
+<h3 class="subsection">9.5.2 Пример графиков 2D данных</h3>
+<a name="index-Surf-10"></a>
+<a name="index-Dens-4"></a>
+<a name="index-Alpha-3"></a>
+<div class="float">
+<img src="../png/sample9.png" alt="../png/sample9">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Light(true);
+mglData a0(50,40);
+a0.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(60,40);
+gr-&gt;Surf(a0);       gr-&gt;Box();
+
+mglData x(50,40),y(50,40),z(50,40);
+x.Modify(&quot;0.8*sin(2*pi*x)*sin(pi*y)&quot;);
+y.Modify(&quot;0.8*cos(2*pi*x)*sin(pi*y)&quot;);
+z.Modify(&quot;0.8*cos(pi*y)&quot;);
+gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(60,40);
+gr-&gt;Surf(x,y,z,&quot;BbwrR&quot;);    gr-&gt;Box();
+
+mglData a1(50,40,3);
+a1.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+a1.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*sin(3*pi*(x*y))&quot;,1);
+a1.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,2);
+gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(60,40);
+gr-&gt;Alpha(true);
+gr-&gt;Surf(a1);       gr-&gt;Box();
+
+gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(60,40);
+gr-&gt;Dens(a1);       gr-&gt;Box();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">light on
+
+new a0 50 40
+modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+subplot 2 2 0:rotate 60 40
+surf a0: box
+
+new x 50 40: new y 50 40: new z 50 40
+modify x '0.8*sin(2*pi*x)*sin(pi*y)'
+modify y '0.8*cos(2*pi*x)*sin(pi*y)'
+modify z '0.8*cos(pi*y)'
+subplot 2 2 1:rotate 60 40
+surf x y z 'bbwrr': box
+
+new a1 50 40 3
+modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
+subplot 2 2 2:rotate 60 40
+alpha on
+surf a1: box
+
+subplot 2 2 3: rotate 60 40
+dens a1: box
+</pre><hr size="6">
+<a name="g_t3D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Line-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-3D-_0434_0430_043d_043d_044b_0445"></a>
+<h3 class="subsection">9.5.3 Пример графиков 3D данных</h3>
+<a name="index-Surf-11"></a>
+<a name="index-Dens-5"></a>
+<a name="index-Alpha-4"></a>
+<div class="float">
+<img src="../png/sampleb.png" alt="../png/sampleb">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true);	gr-&gt;Light(true);	gr-&gt;Light(0,mglPoint(0,0,1));
+mglData a(30,30,30), b(30,30,30);
+a.Modify(&quot;exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))&quot;);
+b.Modify(&quot;16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)&quot;);
+gr-&gt;CAxis(0,1);
+
+gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);
+gr-&gt;Surf3(a,&quot;wgk&quot;);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);
+gr-&gt;DensA(a);		gr-&gt;Box();	gr-&gt;Axis();
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);
+gr-&gt;Cloud(a);		gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);
+gr-&gt;Surf3A(b,a,&quot;q&quot;);		gr-&gt;Box();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">alpha on: light on
+light 0 0 0 1
+new a 30 30 30: new b 30 30 30
+modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
+modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
+caxis 0 1
+
+subplot 2 2 0: rotate 40 60
+surf3 a 'wgk': box
+subplot 2 2 1: rotate 40 60
+densa a: box: axis
+subplot 2 2 2: rotate 40 60
+cloud a: box
+subplot 2 2 3: rotate 40 60
+surf3a b a 'q': box
+</pre><hr size="6">
+<a name="Line-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Arrow-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_043b_0438_043d_0438_0439-_0438-_043c_0430_0440_043ae_0440_043e_0432"></a>
+<h3 class="subsection">9.5.4 Пример стилей линий и маркеров</h3>
+<a name="index-Mark-8"></a>
+<a name="index-Line-3"></a>
+<div class="float">
+<img src="../png/sample5.png" alt="../png/sample5">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">float d,x1,x2,x0,y=0.95;
+d=0.3, x0=0.2, x1=0.5, x2=0.6;
+gr-&gt;Line(mglPoint(x0,1-0*d),mglPoint(x1,1-0*d),&quot;k-&quot;);	gr-&gt;Puts(mglPoint(x2,y-0*d),&quot;Solid '-'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-1*d),mglPoint(x1,1-1*d),&quot;k|&quot;);	gr-&gt;Puts(mglPoint(x2,y-1*d),&quot;Long Dash '|'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-2*d),mglPoint(x1,1-2*d),&quot;k;&quot;);	gr-&gt;Puts(mglPoint(x2,y-2*d),&quot;Dash ';'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-3*d),mglPoint(x1,1-3*d),&quot;k=&quot;);	gr-&gt;Puts(mglPoint(x2,y-3*d),&quot;Small dash '='&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-4*d),mglPoint(x1,1-4*d),&quot;kj&quot;);	gr-&gt;Puts(mglPoint(x2,y-4*d),&quot;Dash-dot 'j'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-5*d),mglPoint(x1,1-5*d),&quot;ki&quot;);	gr-&gt;Puts(mglPoint(x2,y-5*d),&quot;Small dash-dot 'i'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-6*d),mglPoint(x1,1-6*d),&quot;k:&quot;);	gr-&gt;Puts(mglPoint(x2,y-6*d),&quot;Dots ':'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(x0,1-7*d),mglPoint(x1,1-7*d),&quot;k &quot;);	gr-&gt;Puts(mglPoint(x2,y-7*d),&quot;None ' '&quot;,&quot;rL&quot;);
+
+d=0.25; x1=-1; x0=-0.8;	y = -0.05;
+gr-&gt;Mark(mglPoint(x1,5*d),'.');		gr-&gt;Puts(mglPoint(x0,y+5*d),&quot;'.'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,4*d),'+');		gr-&gt;Puts(mglPoint(x0,y+4*d),&quot;'+'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,3*d),'x');		gr-&gt;Puts(mglPoint(x0,y+3*d),&quot;'x'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,2*d),'*');		gr-&gt;Puts(mglPoint(x0,y+2*d),&quot;'*'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,d),'s');		gr-&gt;Puts(mglPoint(x0,y+d),&quot;'s'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,0),'d');		gr-&gt;Puts(mglPoint(x0,y),&quot;'d'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-d,0),'o');	gr-&gt;Puts(mglPoint(x0,y-d),&quot;'o'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-2*d,0),'^');	gr-&gt;Puts(mglPoint(x0,y-2*d),&quot;'\\^'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-3*d,0),'v');	gr-&gt;Puts(mglPoint(x0,y-3*d),&quot;'v'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-4*d,0),'&lt;');	gr-&gt;Puts(mglPoint(x0,y-4*d),&quot;'&lt;'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-5*d,0),'&gt;');	gr-&gt;Puts(mglPoint(x0,y-5*d),&quot;'&gt;'&quot;,&quot;rL&quot;);
+
+d=0.25; x1=-0.5; x0=-0.3;	y = -0.05;
+gr-&gt;Mark(mglPoint(x1,5*d),'C');		gr-&gt;Puts(mglPoint(x0,y+5*d),&quot;'\\#.'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,4*d),'P');		gr-&gt;Puts(mglPoint(x0,y+4*d),&quot;'\\#+'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,3*d),'X');		gr-&gt;Puts(mglPoint(x0,y+3*d),&quot;'\\#x'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,2*d),'Y');		gr-&gt;Puts(mglPoint(x0,y+2*d),&quot;'\\#*'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,d),'S');		gr-&gt;Puts(mglPoint(x0,y+d),&quot;'\\#s'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,0),'D');		gr-&gt;Puts(mglPoint(x0,y),&quot;'\\#d'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-d,0),'O');	gr-&gt;Puts(mglPoint(x0,y-d),&quot;'\\#o'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-2*d,0),'T');	gr-&gt;Puts(mglPoint(x0,y-2*d),&quot;'\\#\\^'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-3*d,0),'V');	gr-&gt;Puts(mglPoint(x0,y-3*d),&quot;'\\#v'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-4*d,0),'L');	gr-&gt;Puts(mglPoint(x0,y-4*d),&quot;'\\#&lt;'&quot;,&quot;rL&quot;);
+gr-&gt;Mark(mglPoint(x1,-5*d,0),'R');	gr-&gt;Puts(mglPoint(x0,y-5*d),&quot;'\\#&gt;'&quot;,&quot;rL&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Arrow-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Line-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_0441_0442_0440e_043b_043e_043a"></a>
+<h3 class="subsection">9.5.5 Пример стилей стрелок</h3>
+<a name="index-Line-4"></a>
+<div class="float">
+<img src="../png/sampled.png" alt="../png/sampled">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">float a=0.1,b=0.4,c=0.5;
+gr-&gt;Line(mglPoint(a,1),mglPoint(b,1),&quot;k-A&quot;);		gr-&gt;Puts(mglPoint(c,1),&quot;Style 'A' or 'A\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.8),mglPoint(b,0.8),&quot;k-V&quot;);	gr-&gt;Puts(mglPoint(c,0.8),&quot;Style 'V' or 'V\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.6),mglPoint(b,0.6),&quot;k-K&quot;);	gr-&gt;Puts(mglPoint(c,0.6),&quot;Style 'K' or 'K\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.4),mglPoint(b,0.4),&quot;k-I&quot;);	gr-&gt;Puts(mglPoint(c,0.4),&quot;Style 'I' or 'I\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.2),mglPoint(b,0.2),&quot;k-D&quot;);	gr-&gt;Puts(mglPoint(c,0.2),&quot;Style 'D' or 'D\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0),mglPoint(b,0),&quot;k-S&quot;);		gr-&gt;Puts(mglPoint(c,0),&quot;Style 'S' or 'S\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.2),mglPoint(b,-0.2),&quot;k-O&quot;);	gr-&gt;Puts(mglPoint(c,-0.2),&quot;Style 'O' or 'O\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.4),mglPoint(b,-0.4),&quot;k-T&quot;);	gr-&gt;Puts(mglPoint(c,-0.4),&quot;Style 'T' or 'T\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.6),mglPoint(b,-0.6),&quot;k-_&quot;);	gr-&gt;Puts(mglPoint(c,-0.6),&quot;Style '\\_' or none&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.8),mglPoint(b,-0.8),&quot;k-AS&quot;);	gr-&gt;Puts(mglPoint(c,-0.8),&quot;Style 'AS'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-1),mglPoint(b,-1),&quot;k-_A&quot;);		gr-&gt;Puts(mglPoint(c,-1),&quot;Style '\\_A'&quot;,&quot;rL&quot;);
+
+a=-1;	b=-0.7;	c=-0.6;
+gr-&gt;Line(mglPoint(a,1),mglPoint(b,1),&quot;kAA&quot;);		gr-&gt;Puts(mglPoint(c,1),&quot;Style 'AA'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.8),mglPoint(b,0.8),&quot;kVV&quot;);	gr-&gt;Puts(mglPoint(c,0.8),&quot;Style 'VV'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.6),mglPoint(b,0.6),&quot;kKK&quot;);	gr-&gt;Puts(mglPoint(c,0.6),&quot;Style 'KK'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.4),mglPoint(b,0.4),&quot;kII&quot;);	gr-&gt;Puts(mglPoint(c,0.4),&quot;Style 'II'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0.2),mglPoint(b,0.2),&quot;kDD&quot;);	gr-&gt;Puts(mglPoint(c,0.2),&quot;Style 'DD'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,0),mglPoint(b,0),&quot;kSS&quot;);		gr-&gt;Puts(mglPoint(c,0),&quot;Style 'SS'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.2),mglPoint(b,-0.2),&quot;kOO&quot;);	gr-&gt;Puts(mglPoint(c,-0.2),&quot;Style 'OO'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.4),mglPoint(b,-0.4),&quot;kTT&quot;);	gr-&gt;Puts(mglPoint(c,-0.4),&quot;Style 'TT'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.6),mglPoint(b,-0.6),&quot;k-__&quot;);	gr-&gt;Puts(mglPoint(c,-0.6),&quot;Style '\\_\\_'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-0.8),mglPoint(b,-0.8),&quot;k-VA&quot;);	gr-&gt;Puts(mglPoint(c,-0.8),&quot;Style 'VA'&quot;,&quot;rL&quot;);
+gr-&gt;Line(mglPoint(a,-1),mglPoint(b,-1),&quot;k-AV&quot;);		gr-&gt;Puts(mglPoint(c,-1),&quot;Style 'AV'&quot;,&quot;rL&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Text-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Arrow-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TeX-parsing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_0442e_043a_0441_0442_0430"></a>
+<h3 class="subsection">9.5.6 Пример стилей текста</h3>
+<a name="index-Puts-5"></a>
+<div class="float">
+<img src="../png/sample4.png" alt="../png/sample4">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Putsw(mglPoint(0,1),L&quot;Text can be in ASCII and in Unicode&quot;);
+gr-&gt;Puts(mglPoint(0,0.6),&quot;It can be \\wire{wire}, \\big{big} or #r{colored}&quot;);
+gr-&gt;Puts(mglPoint(0,0.2),&quot;One can change style in string: &quot;
+        &quot;\\b{bold}, \\i{italic, \\b{both}}&quot;);
+gr-&gt;Puts(mglPoint(0,-0.2),&quot;Easy to \\a{overline} or &quot;
+        &quot;\\u{underline}&quot;);
+gr-&gt;Puts(mglPoint(0,-0.6),&quot;Easy to change indexes ^{up} _{down} @{center}&quot;);
+gr-&gt;Puts(mglPoint(0,-1),&quot;It parse TeX: \\int \\alpha \\cdot &quot;
+        &quot;\\sqrt3{sin(\\pi x)^2 + \\gamma_{i_k}} dx&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">text 0 1 'Text can be in ASCII and in Unicode'
+text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
+text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
+text 0 -0.2 'Easy to \a{overline} or \u{underline}'
+text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
+text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
+</pre><hr size="6">
+<a name="TeX-parsing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-faces-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-TeX-_0444_043e_0440_043c_0443_043b_044b"></a>
+<h3 class="subsection">9.5.7 Пример TeX формулы</h3>
+<a name="index-Puts-6"></a>
+<div class="float">
+<img src="../png/samplee.png" alt="../png/samplee">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Puts(mglPoint(0), &quot;\\sqrt{\\frac{\\alpha^{\\gamma^2}+&quot;
+        &quot;\\overset 1{\\big\\infty}}{\\sqrt3{2+b}}}&quot;, 0, -4);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}' '' -4
+</pre><hr size="6">
+<a name="Font-faces-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TeX-parsing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-_043d_0430_0447e_0440_0442_0430_043d_0438_0439-_0448_0440_0438_0444_0442_0430"></a>
+<h3 class="subsection">9.5.8 Примеры начертаний шрифта</h3>
+<a name="index-Puts-7"></a>
+<div class="float">
+<img src="../png/fonts.png" alt="../png/fonts">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">float h=1.1, d=0.25;
+gr-&gt;LoadFont(&quot;STIX&quot;);		gr-&gt;Puts(mglPoint(0,h), &quot;default font (STIX)&quot;);
+gr-&gt;LoadFont(&quot;adventor&quot;);	gr-&gt;Puts(mglPoint(0,h-d), &quot;adventor font&quot;);
+gr-&gt;LoadFont(&quot;bonum&quot;);		gr-&gt;Puts(mglPoint(0,h-2*d), &quot;bonum font&quot;);
+gr-&gt;LoadFont(&quot;chorus&quot;);		gr-&gt;Puts(mglPoint(0,h-3*d), &quot;chorus font&quot;);
+gr-&gt;LoadFont(&quot;cursor&quot;);		gr-&gt;Puts(mglPoint(0,h-4*d), &quot;cursor font&quot;);
+gr-&gt;LoadFont(&quot;heros&quot;);		gr-&gt;Puts(mglPoint(0,h-5*d), &quot;heros font&quot;);
+gr-&gt;LoadFont(&quot;heroscn&quot;);	gr-&gt;Puts(mglPoint(0,h-6*d), &quot;heroscn font&quot;);
+gr-&gt;LoadFont(&quot;pagella&quot;);	gr-&gt;Puts(mglPoint(0,h-7*d), &quot;pagella font&quot;);
+gr-&gt;LoadFont(&quot;schola&quot;);		gr-&gt;Puts(mglPoint(0,h-8*d), &quot;schola font&quot;);
+gr-&gt;LoadFont(&quot;termes&quot;);		gr-&gt;Puts(mglPoint(0,h-9*d), &quot;termes font&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-faces-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Color-schemes-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-c_0432e_0442_043e_0432"></a>
+<h3 class="subsection">9.5.9 Примеры цветов</h3>
+<div class="float">
+<img src="../png/colors.png" alt="../png/colors">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">//#LENUQ
+gr-&gt;FaceZ(-1,	-1, 0, 0.4, 0.3, &quot;L#&quot;);	gr-&gt;Puts(mglPoint(-0.8,-0.9), &quot;L&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	-1, 0, 0.4, 0.3, &quot;E#&quot;);	gr-&gt;Puts(mglPoint(-0.4,-0.9), &quot;E&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	-1, 0, 0.4, 0.3, &quot;N#&quot;);	gr-&gt;Puts(mglPoint(0,  -0.9), &quot;N&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	-1, 0, 0.4, 0.3, &quot;U#&quot;);	gr-&gt;Puts(mglPoint(0.4,-0.9), &quot;U&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	-1, 0, 0.4, 0.3, &quot;Q#&quot;);	gr-&gt;Puts(mglPoint(0.8,-0.9), &quot;Q&quot;, &quot;C:w&quot;, -1.4);
+//#lenuq
+gr-&gt;FaceZ(-1,	-0.7, 0, 0.4, 0.3, &quot;l#&quot;);	gr-&gt;Puts(mglPoint(-0.8,-0.6), &quot;l&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	-0.7, 0, 0.4, 0.3, &quot;e#&quot;);	gr-&gt;Puts(mglPoint(-0.4,-0.6), &quot;e&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	-0.7, 0, 0.4, 0.3, &quot;n#&quot;);	gr-&gt;Puts(mglPoint(0,  -0.6), &quot;n&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	-0.7, 0, 0.4, 0.3, &quot;u#&quot;);	gr-&gt;Puts(mglPoint(0.4,-0.6), &quot;u&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	-0.7, 0, 0.4, 0.3, &quot;q#&quot;);	gr-&gt;Puts(mglPoint(0.8,-0.6), &quot;q&quot;, &quot;C:k&quot;, -1.4);
+//#CMYkP
+gr-&gt;FaceZ(-1,	-0.4, 0, 0.4, 0.3, &quot;C#&quot;);	gr-&gt;Puts(mglPoint(-0.8,-0.3), &quot;C&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	-0.4, 0, 0.4, 0.3, &quot;M#&quot;);	gr-&gt;Puts(mglPoint(-0.4,-0.3), &quot;M&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	-0.4, 0, 0.4, 0.3, &quot;Y#&quot;);	gr-&gt;Puts(mglPoint(0,  -0.3), &quot;Y&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	-0.4, 0, 0.4, 0.3, &quot;k#&quot;);	gr-&gt;Puts(mglPoint(0.4,-0.3), &quot;k&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	-0.4, 0, 0.4, 0.3, &quot;P#&quot;);	gr-&gt;Puts(mglPoint(0.8,-0.3), &quot;P&quot;, &quot;C:w&quot;, -1.4);
+//#cmywp
+gr-&gt;FaceZ(-1,	-0.1, 0, 0.4, 0.3, &quot;c#&quot;);	gr-&gt;Puts(mglPoint(-0.8, 0), &quot;c&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	-0.1, 0, 0.4, 0.3, &quot;m#&quot;);	gr-&gt;Puts(mglPoint(-0.4, 0), &quot;m&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	-0.1, 0, 0.4, 0.3, &quot;y#&quot;);	gr-&gt;Puts(mglPoint(0,   0), &quot;y&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	-0.1, 0, 0.4, 0.3, &quot;w#&quot;);	gr-&gt;Puts(mglPoint(0.4, 0), &quot;w&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	-0.1, 0, 0.4, 0.3, &quot;p#&quot;);	gr-&gt;Puts(mglPoint(0.8, 0), &quot;p&quot;, &quot;C:k&quot;, -1.4);
+//#BGRHW
+gr-&gt;FaceZ(-1,	0.2, 0, 0.4, 0.3, &quot;B#&quot;);	gr-&gt;Puts(mglPoint(-0.8, 0.3), &quot;B&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	0.2, 0, 0.4, 0.3, &quot;G#&quot;);	gr-&gt;Puts(mglPoint(-0.4, 0.3), &quot;G&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	0.2, 0, 0.4, 0.3, &quot;R#&quot;);	gr-&gt;Puts(mglPoint(0,   0.3), &quot;R&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	0.2, 0, 0.4, 0.3, &quot;H#&quot;);	gr-&gt;Puts(mglPoint(0.4, 0.3), &quot;H&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	0.2, 0, 0.4, 0.3, &quot;W#&quot;);	gr-&gt;Puts(mglPoint(0.8, 0.3), &quot;W&quot;, &quot;C:w&quot;, -1.4);
+//#bgrhw
+gr-&gt;FaceZ(-1,	0.2, 0, 0.4, 0.3, &quot;b#&quot;);	gr-&gt;Puts(mglPoint(-0.8, 0.6), &quot;b&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	0.5, 0, 0.4, 0.3, &quot;g#&quot;);	gr-&gt;Puts(mglPoint(-0.4, 0.6), &quot;g&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	0.2, 0, 0.4, 0.3, &quot;r#&quot;);	gr-&gt;Puts(mglPoint(0,   0.6), &quot;r&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	0.2, 0, 0.4, 0.3, &quot;h#&quot;);	gr-&gt;Puts(mglPoint(0.4, 0.6), &quot;h&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	0.2, 0, 0.4, 0.3, &quot;w#&quot;);	gr-&gt;Puts(mglPoint(0.8, 0.6), &quot;w&quot;, &quot;C:k&quot;, -1.4);
+//#brighted
+gr-&gt;FaceZ(-1,	0.8, 0, 0.4, 0.3, &quot;r1#&quot;);	gr-&gt;Puts(mglPoint(-0.8, 0.9), &quot;r1&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.6,	0.8, 0, 0.4, 0.3, &quot;r3#&quot;);	gr-&gt;Puts(mglPoint(-0.4, 0.9), &quot;r3&quot;, &quot;C:w&quot;, -1.4);
+gr-&gt;FaceZ(-0.2,	0.8, 0, 0.4, 0.3, &quot;r5#&quot;);	gr-&gt;Puts(mglPoint(0,   0.9), &quot;r5&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.2,	0.8, 0, 0.4, 0.3, &quot;r7#&quot;);	gr-&gt;Puts(mglPoint(0.4, 0.9), &quot;r7&quot;, &quot;C:k&quot;, -1.4);
+gr-&gt;FaceZ(0.6,	0.8, 0, 0.4, 0.3, &quot;r9#&quot;);	gr-&gt;Puts(mglPoint(0.8, 0.9), &quot;r9&quot;, &quot;C:k&quot;, -1.4);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">#LENUQ
+facez -1   -1 0 0.4 0.3 'L#': text -0.8 -0.9 'L' 'C:w'
+facez -0.6 -1 0 0.4 0.3 'E#': text -0.4 -0.9 'E' 'C:w'
+facez -0.2 -1 0 0.4 0.3 'N#': text  0   -0.9 'N' 'C:w'
+facez  0.2 -1 0 0.4 0.3 'U#': text  0.4 -0.9 'U' 'C:w'
+facez  0.6 -1 0 0.4 0.3 'Q#': text  0.8 -0.9 'Q' 'C:w'
+#lenuq
+facez -1   -0.7 0 0.4 0.3 'l#': text -0.8 -0.6 'l' 'C:k'
+facez -0.6 -0.7 0 0.4 0.3 'e#': text -0.4 -0.6 'e' 'C:k'
+facez -0.2 -0.7 0 0.4 0.3 'n#': text  0   -0.6 'n' 'C:k'
+facez  0.2 -0.7 0 0.4 0.3 'u#': text  0.4 -0.6 'u' 'C:k'
+facez  0.6 -0.7 0 0.4 0.3 'q#': text  0.8 -0.6 'q' 'C:k'
+#CMYkP
+facez -1   -0.4 0 0.4 0.3 'C#': text -0.8 -0.3 'C' 'C:w'
+facez -0.6 -0.4 0 0.4 0.3 'M#': text -0.4 -0.3 'M' 'C:w'
+facez -0.2 -0.4 0 0.4 0.3 'Y#': text  0   -0.3 'Y' 'C:w'
+facez  0.2 -0.4 0 0.4 0.3 'k#': text  0.4 -0.3 'k' 'C:w'
+facez  0.6 -0.4 0 0.4 0.3 'P#': text  0.8 -0.3 'P' 'C:w'
+#lenuq
+facez -1   -0.1 0 0.4 0.3 'c#': text -0.8 0 'c' 'C:k'
+facez -0.6 -0.1 0 0.4 0.3 'm#': text -0.4 0 'm' 'C:k'
+facez -0.2 -0.1 0 0.4 0.3 'y#': text  0   0 'y' 'C:k'
+facez  0.2 -0.1 0 0.4 0.3 'w#': text  0.4 0 'w' 'C:k'
+facez  0.6 -0.1 0 0.4 0.3 'p#': text  0.8 0 'p' 'C:k'
+#BGRHW
+facez -1   0.2 0 0.4 0.3 'B#': text -0.8 0.3 'B' 'C:k'
+facez -0.6 0.2 0 0.4 0.3 'G#': text -0.4 0.3 'G' 'C:k'
+facez -0.2 0.2 0 0.4 0.3 'R#': text  0   0.3 'R' 'C:k'
+facez  0.2 0.2 0 0.4 0.3 'H#': text  0.4 0.3 'H' 'C:k'
+facez  0.6 0.2 0 0.4 0.3 'W#': text  0.8 0.3 'W' 'C:k'
+#bgrhw
+facez -1   0.5 0 0.4 0.3 'b#': text -0.8 0.6 'b' 'C:w'
+facez -0.6 0.5 0 0.4 0.3 'g#': text -0.4 0.6 'g' 'C:w'
+facez -0.2 0.5 0 0.4 0.3 'r#': text  0   0.6 'r' 'C:w'
+facez  0.2 0.5 0 0.4 0.3 'h#': text  0.4 0.6 'h' 'C:w'
+facez  0.6 0.5 0 0.4 0.3 'w#': text  0.8 0.6 'w' 'C:w'
+#brighted
+facez -1   0.8 0 0.4 0.3 'r1#': text -0.8 0.9 'r1' 'C:k'
+facez -0.6 0.8 0 0.4 0.3 'r3#': text -0.4 0.9 'r3' 'C:k'
+facez -0.2 0.8 0 0.4 0.3 'r5#': text  0   0.9 'r5' 'C:k'
+facez  0.2 0.8 0 0.4 0.3 'r7#': text  0.4 0.9 'r7' 'C:k'
+facez  0.6 0.8 0 0.4 0.3 'r9#': text  0.8 0.9 'r9' 'C:k'
+</pre><hr size="6">
+<a name="Color-schemes-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Normal-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-c_0432e_0442_043e_0432_044b_0445-_0441_0445e_043c"></a>
+<h3 class="subsection">9.5.10 Примеры цветовых схем</h3>
+<a name="index-Colorbar-7"></a>
+<div class="float">
+<img src="../png/color_schemes.png" alt="../png/color_schemes">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(256,2);	a.Fill(-1,1);
+gr-&gt;SubPlot(2,10,0,0.2);	gr-&gt;Dens(a,&quot;kw&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kw&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,1,0.2);	gr-&gt;Dens(a,&quot;wk&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;wk&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,2,0.2);	gr-&gt;Dens(a,&quot;kHCcw&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kHCcw&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,3,0.2);	gr-&gt;Dens(a,&quot;kBbcw&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kBbcw&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,4,0.2);	gr-&gt;Dens(a,&quot;kRryw&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kRryw&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,5,0.2);	gr-&gt;Dens(a,&quot;kGgew&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;kGgew&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,6,0.2);	gr-&gt;Dens(a,&quot;BbwrR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbwrR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,7,0.2);	gr-&gt;Dens(a,&quot;BbwgG&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbwgG&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,8,0.2);	gr-&gt;Dens(a,&quot;GgwmM&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;GgwmM&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,9,0.2);	gr-&gt;Dens(a,&quot;UuwqR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;UuwqR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,10,0.2);	gr-&gt;Dens(a,&quot;QqwcC&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;QqwcC&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,11,0.2);	gr-&gt;Dens(a,&quot;CcwyY&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;CcwyY&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,12,0.2);	gr-&gt;Dens(a,&quot;bcwyr&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;bcwyr&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,13,0.2);	gr-&gt;Dens(a,&quot;bwr&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;bwr&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,14,0.2);	gr-&gt;Dens(a,&quot;BbcyrR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbcyrR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,15,0.2);	gr-&gt;Dens(a,&quot;UbcyqR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;UbcyqR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,16,0.2);	gr-&gt;Dens(a,&quot;BbcwyrR&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbcwyrR&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,17,0.2);	gr-&gt;Dens(a,&quot;bcyr&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;bcyr&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,18,0.2);	gr-&gt;Dens(a,&quot;BbcyrR|&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;BbcyrR|&quot;, &quot;C&quot;, -8);
+gr-&gt;SubPlot(2,10,19,0.2);	gr-&gt;Dens(a,&quot;bgr&quot;, nan);
+gr-&gt;Puts(mglPoint(-1.4, -0.3), &quot;bgr&quot;, &quot;C&quot;, -8);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 256 2: fill a 'x'
+subplot 2 10 0 0.2:dens a 'kw'
+text -1.4 -0.3 'kw' '' -8
+subplot 2 10 1 0.2:dens a 'wk'
+text -1.4 -0.3 'wk' '' -8
+subplot 2 10 2 0.2:dens a 'kHCcw'
+text -1.4 -0.3 'kHCcw' '' -8
+subplot 2 10 3 0.2:dens a 'kBbcw'
+text -1.4 -0.3 'kBbcw' '' -8
+subplot 2 10 4 0.2:dens a 'kRryw'
+text -1.4 -0.3 'kRryw' '' -8
+subplot 2 10 5 0.2:dens a 'kGgew'
+text -1.4 -0.3 'kGgew' '' -8
+subplot 2 10 6 0.2:dens a 'BbwrR'
+text -1.4 -0.3 'BbwrR' '' -8
+subplot 2 10 7 0.2:dens a 'BbwgG'
+text -1.4 -0.3 'BbwgG' '' -8
+subplot 2 10 8 0.2:dens a 'GgwmM'
+text -1.4 -0.3 'GgwmM' '' -8
+subplot 2 10 9 0.2:dens a 'UuwqR'
+text -1.4 -0.3 'UuwqR' '' -8
+subplot 2 10 10 0.2:dens a 'QqwcC'
+text -1.4 -0.3 'QqwcC' '' -8
+subplot 2 10 11 0.2:dens a 'CcwyY'
+text -1.4 -0.3 'CcwyY' '' -8
+subplot 2 10 12 0.2:dens a 'bcwyr'
+text -1.4 -0.3 'bcwyr' '' -8
+subplot 2 10 13 0.2:dens a 'bwr'
+text -1.4 -0.3 'bwr' '' -8
+subplot 2 10 14 0.2:dens a 'BbcyrR'
+text -1.4 -0.3 'BbcyrR' '' -8
+subplot 2 10 15 0.2:dens a 'UbcyqR'
+text -1.4 -0.3 'UbcyqR' '' -8
+subplot 2 10 16 0.2:dens a 'BbcwyrR'
+text -1.4 -0.3 'BbcwyrR' '' -8
+subplot 2 10 17 0.2:dens a 'bcyr'
+text -1.4 -0.3 'bcyr' '' -8
+subplot 2 10 18 0.2:dens a 'BbcyrR|'
+text -1.4 -0.3 'BbcyrR|' '' -8
+subplot 2 10 19 0.2:dens a 'bgr'
+text -1.4 -0.3 'bgr' '' -8
+</pre><hr size="6">
+<a name="Normal-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Color-schemes-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Glass_002dlike-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0431_044b_0447_043d_0430ya-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x"></a>
+<h3 class="subsection">9.5.11 Обычная прозрачность</h3>
+<a name="index-TranspType"></a>
+<div class="float">
+<img src="../png/type0.png" alt="../png/type0">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true);	gr-&gt;Light(true);
+mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+
+gr-&gt;TranspType = 0;	gr-&gt;Clf();
+gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);	gr-&gt;Surf(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);	gr-&gt;Dens(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);	gr-&gt;Cont(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);	gr-&gt;Axial(a);	gr-&gt;Box();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 0: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre><hr size="6">
+<a name="Glass_002dlike-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Normal-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lamp_002dlike-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0022_0421_0442e_043a_043bya_043d_043d_0430ya_0022-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x"></a>
+<h3 class="subsection">9.5.12 &quot;Стеклянная&quot; прозрачность</h3>
+<a name="index-TranspType-1"></a>
+<div class="float">
+<img src="../png/type1.png" alt="../png/type1">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true);	gr-&gt;Light(true);
+mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+
+gr-&gt;TranspType = 1;	gr-&gt;Clf();
+gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);	gr-&gt;Surf(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);	gr-&gt;Dens(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);	gr-&gt;Cont(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);	gr-&gt;Axial(a);	gr-&gt;Box();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 1: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre><hr size="6">
+<a name="Lamp_002dlike-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Glass_002dlike-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0022_041b_0430_043c_043f_043e_0432_0430ya_0022-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x"></a>
+<h3 class="subsection">9.5.13 &quot;Ламповая&quot; прозрачность</h3>
+<a name="index-TranspType-2"></a>
+<div class="float">
+<img src="../png/type2.png" alt="../png/type2">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true);	gr-&gt;Light(true);
+mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+
+gr-&gt;TranspType = 2;	gr-&gt;Clf();
+gr-&gt;SubPlot(2,2,0);	gr-&gt;Rotate(40,60);	gr-&gt;Surf(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1);	gr-&gt;Rotate(40,60);	gr-&gt;Dens(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,2);	gr-&gt;Rotate(40,60);	gr-&gt;Cont(a);	gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3);	gr-&gt;Rotate(40,60);	gr-&gt;Axial(a);	gr-&gt;Box();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 2: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre>
+
+
+
+
+
+
+
+
+<hr size="6">
+<a name="Additional-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lamp_002dlike-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0414_043e_043f_043e_043b_043d_0438_0442e_043bx_043d_044be-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438"></a>
+<h2 class="section">9.6 Дополнительные возможности</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Legend-sample">9.6.1 Legend &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Adding-mesh-sample">9.6.2 Добавляем сетку</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf-_0026-Cont-sample">9.6.3 Surf &amp; Cont &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-_0026-Dens-sample">9.6.4 Flow &amp; Dens &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Several-light-sample">9.6.5 Несколько источников света</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mirrored-surface-sample">9.6.6 Отражение поверхности</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-with-labels-sample">9.6.7 Cont и подписи &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ternary-plot-sample">9.6.8 Ternary plot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Coloring-by-coordinates-sample">9.6.9 Окрашивание по положению грани</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Drops-sample">9.6.10 Drops &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Molecules-drawing-sample">9.6.11 Рисование молекул</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">    
+</td></tr>
+</table>
+<hr size="6">
+<a name="Legend-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Additional-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Adding-mesh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Legend-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.6.1 Legend &ndash; пример использования</h3>
+<a name="index-Plot-9"></a>
+<a name="index-Legend-5"></a>
+<a name="index-AddLegend-3"></a>
+<div class="float">
+<img src="../png/legend.png" alt="../png/legend">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData f(50,3);
+f.Modify(&quot;sin(2*pi*x*x)&quot;,0);
+f.Modify(&quot;sin(2*pi*x)&quot;,1);
+f.Modify(&quot;sin(2*pi*sqrt(x))&quot;,2);
+gr-&gt;Axis(mglPoint(0,-1),mglPoint(1,1));
+gr-&gt;Box(); gr-&gt;Plot(f); gr-&gt;Axis();
+gr-&gt;AddLegend(&quot;sin(\\pi {x^2})&quot;,&quot;b&quot;);
+gr-&gt;AddLegend(&quot;sin(\\pi x)&quot;,&quot;g*&quot;);
+gr-&gt;AddLegend(&quot;sin(\\pi \\sqrt{\\a x})&quot;,&quot;r+&quot;);
+gr-&gt;Legend();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new f 50 3
+modify f 'sin(2*pi*x*x)'
+modify f 'sin(2*pi*x)' 1
+modify f 'sin(2*pi*sqrt(x))' 2
+axis 0 -1 1 1
+box
+plot f
+axis
+addlegend 'sin(\pi {x^2})' 'b'
+addlegend 'sin(\pi x)' 'g*'
+addlegend 'sin(\pi \sqrt{\a x})' 'r+'
+legend
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT f = mgl_create_data_size(50,3,1);
+mgl_data_modify(f,&quot;sin(2*pi*x*x)&quot;,0);
+mgl_data_modify(f,&quot;sin(2*pi*x)&quot;,1);
+mgl_data_modify(f,&quot;sin(2*pi*sqrt(x))&quot;,2);
+mgl_set_axis(gr, 0.,-1.,0., 1.,1.,1., 0.,0.,0.);
+mgl_box(gr,1);
+mgl_plot(gr,f,NULL);
+mgl_axis(gr,&quot;xy&quot;);
+mgl_add_legend(gr,&quot;sin(\\pi {x^2})&quot;,&quot;b&quot;);
+mgl_add_legend(gr,&quot;sin(\\pi x)&quot;,&quot;g*&quot;);
+mgl_add_legend(gr,&quot;sin(\\pi \\sqrt{\\a x})&quot;,&quot;r+&quot;);
+mgl_legend(gr,3,&quot;rL&quot;,-1.,0.1);
+mgl_delete_data(f);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer f, mgl_create_data_size
+f = mgl_create_data_size(50,3,1)
+call mgl_data_modify(f,'sin(2*pi*x*x)',0)
+call mgl_data_modify(f,'sin(2*pi*x)',1)
+call mgl_data_modify(f,'sin(2*pi*sqrt(x))',2)
+call mgl_set_axis(gr, 0.,-1.,0., 1.,1.,1., 0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_plot(gr,f,'')
+call mgl_axis(gr,'xy')
+call mgl_add_legend(gr,'sin(\pi {x^2})','b');
+call mgl_add_legend(gr,'sin(\pi x)','g*');
+call mgl_add_legend(gr,'sin(\pi \sqrt{\a x})','r+');
+call mgl_legend(gr,3,'rL',-1.,0.1);
+call mgl_delete_data(f)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">f = mglData(50,3);
+f.Modify(&quot;sin(2*pi*x*x)&quot;,0);    f.Modify(&quot;sin(2*pi*x)&quot;,1);      f.Modify(&quot;sin(2*pi*sqrt(x))&quot;,2);
+gr.SetRanges(0,1,-1,1);     gr.Box();   gr.Axis();  gr.Plot(f);
+gr.AddLegend(&quot;sin(\\pi x^2)&quot;,&quot;b&quot;);
+gr.AddLegend(&quot;sin(\\pi x)&quot;,&quot;g*&quot;);
+gr.AddLegend(&quot;sin(\\pi\\sqrt{\\a x})&quot;,&quot;r+&quot;);
+gr.Legend();
+</pre><hr size="6">
+<a name="Adding-mesh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf-_0026-Cont-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0414_043e_0431_0430_0432_043byae_043c-_0441e_0442_043a_0443"></a>
+<h3 class="subsection">9.6.2 Добавляем сетку</h3>
+<a name="index-SubPlot-4"></a>
+<a name="index-Surf-12"></a>
+<a name="index-Dens-6"></a>
+<a name="index-Cont-6"></a>
+<a name="index-Axial-6"></a>
+<div class="float">
+<img src="../png/samplea.png" alt="../png/samplea">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(40,60);
+gr-&gt;Surf(a,&quot;BbcyrR#&quot;);  gr-&gt;Box();
+gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(40,60);
+gr-&gt;Dens(a,&quot;BbcyrR#&quot;);  gr-&gt;Box();
+gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(40,60);
+gr-&gt;Cont(a,&quot;BbcyrR#&quot;);  gr-&gt;Box();
+gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(40,60);
+gr-&gt;Axial(a,&quot;BbcyrR#&quot;); gr-&gt;Box();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+alpha on
+light on
+subplot 2 2 0
+rotate 40 60
+surf a 'BbcyrR#'
+box
+subplot 2 2 1
+rotate 40 60
+dens a 'BbcyrR#'
+box
+subplot 2 2 2
+rotate 40 60
+cont a 'BbcyrR#'
+box
+subplot 2 2 3
+rotate 40 60
+axial a 'BbcyrR#'
+box
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_set_alpha(gr,1);
+mgl_set_light(gr,1);
+mgl_subplot(gr,2,2,0); mgl_rotate(gr,40.,60.,0.);
+mgl_surf(gr,a,&quot;BbcyrR#&quot;);       mgl_box(gr,1);
+mgl_subplot(gr,2,2,1); mgl_rotate(gr,40.,60.,0.);
+mgl_dens(gr,a,&quot;BbcyrR#&quot;,-1.);   mgl_box(gr,1);
+mgl_subplot(gr,2,2,2); mgl_rotate(gr,40.,60.,0.);
+mgl_cont(gr,a,&quot;BbcyrR#&quot;,7,NAN); mgl_box(gr,1);
+mgl_subplot(gr,2,2,3); mgl_rotate(gr,40.,60.,0.);
+mgl_axial(gr,a,&quot;BbcyrR#&quot;,3);    mgl_box(gr,1);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+real zero, nan
+zero=0; nan=zero/zero
+a = mgl_create_data_size(50,40,1)
+call mgl_data_modify(a,'0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))',0)
+call mgl_set_alpha(gr,1)
+call mgl_set_light(gr,1)
+call mgl_subplot(gr,2,2,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_surf(gr,a,'BbcyrR#')
+call mgl_box(gr,1)
+call mgl_subplot(gr,2,2,1)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_dens(gr,a,'BbcyrR#',-1.)
+call mgl_box(gr,1)
+call mgl_subplot(gr,2,2,2)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_cont(gr,a,'BbcyrR#',7,nan)
+call mgl_box(gr,1)
+call mgl_subplot(gr,2,2,3)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_axial(gr,a,'BbcyrR#',3)
+call mgl_box(gr,1)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Light(True);     gr.Alpha(True);
+gr.SubPlot(2,2,0);
+gr.Rotate(40,60);   gr.Surf(a,&quot;BbcyrR#&quot;);   gr.Box();
+gr.SubPlot(2,2,1);
+gr.Rotate(40,60);   gr.Dens(a,&quot;BbcyrR#&quot;);   gr.Box();
+gr.SubPlot(2,2,2);
+gr.Rotate(40,60);   gr.Cont(a,&quot;BbcyrR#&quot;);   gr.Box();
+gr.SubPlot(2,2,3);
+gr.Rotate(40,60);   gr.Axial(a,&quot;BbcyrR#&quot;);  gr.Box();
+</pre><hr size="6">
+<a name="Surf-_0026-Cont-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Adding-mesh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-_0026-Dens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-_0026-Cont-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.6.3 Surf &amp; Cont &ndash; пример использования</h3>
+<a name="index-Surf-13"></a>
+<a name="index-Cont-7"></a>
+<div class="float">
+<img src="../png/surf_cont_y.png" alt="../png/surf_cont_y">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Surf(a);
+gr-&gt;Cont(a,&quot;y&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+cont a 'y'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_cont(gr,a,&quot;y&quot;,7,NAN);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+real zero, nan
+zero = 0; nan = zero/zero
+a = mgl_create_data_size(50,40,1)
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_cont(gr,a,'y',7,nan)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Surf(a);         gr.Cont(a,&quot;y&quot;);
+</pre><hr size="6">
+<a name="Flow-_0026-Dens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf-_0026-Cont-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Several-light-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-_0026-Dens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.6.4 Flow &amp; Dens &ndash; пример использования</h3>
+<a name="index-Flow-7"></a>
+<a name="index-Dens-7"></a>
+<div class="float">
+<img src="../png/flow_dens.png" alt="../png/flow_dens">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40), b(50,40), d(a);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+d.Modify(&quot;sqrt(v^2+w^2)&quot;,a,b);
+gr-&gt;Box();
+gr-&gt;Flow(a,b,&quot;br&quot;); gr-&gt;Dens(d,&quot;BbcyrR&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+copy d a
+modify d 'sqrt(v^2+w^2)' a b
+box
+flow a b 'br'
+dens d 'BbcyrR'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a, b, d;
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+d = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_data_modify(d,&quot;sqrt(v^2+w^2)&quot;,a,b);
+mgl_box(gr,1);
+mgl_flow_2d(gr,a,b,&quot;br&quot;,5,1,0.);
+mgl_dens(gr,d,&quot;BbcyrR&quot;,-1.);
+mgl_delete_data(a); mgl_delete_data(b); mgl_delete_data(d);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b,d, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+d = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(b,&quot;0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_data_modify(d,&quot;sqrt(v^2+w^2)&quot;,a,b);
+call mgl_box(gr,1)
+call mgl_flow_2d(gr,a,b,'br',5,1,0.)
+call mgl_dens(gr,d,'BbcyrR',-1.);
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+call mgl_delete_data(d)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b= mglData(50,40), mglData(50,40);   d = mglData(a)
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+b.Modify(&quot;0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+d.Modify(&quot;sqrt(v^2+w^2)&quot;,a,b);
+gr.Box();
+gr.Flow(a,b,&quot;br&quot;);      gr.Dens(d,&quot;BbcyrR&quot;);
+</pre><hr size="6">
+<a name="Several-light-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-_0026-Dens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mirrored-surface-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041de_0441_043a_043e_043bx_043a_043e-_0438_0441_0442_043e_0447_043d_0438_043a_043e_0432-_0441_0432e_0442_0430"></a>
+<h3 class="subsection">9.6.5 Несколько источников света</h3>
+<a name="index-Surf-14"></a>
+<a name="index-Light-5"></a>
+<div class="float">
+<img src="../png/several_light.png" alt="../png/several_light">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Light(1,mglPoint(0,1,0),'c');
+gr-&gt;Light(2,mglPoint(1,0,0),'y');
+gr-&gt;Light(3,mglPoint(0,-1,0),'m');
+gr-&gt;Box();
+gr-&gt;Surf(a,&quot;h&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+light 1 0 1 0 'c'
+light 2 1 0 0 'y'
+light 3 0 -1 0 'm'
+box
+surf a 'h'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_add_light_rgb(gr,1,0.,1.,0.,1, 0.,1.,1.,0.5);
+mgl_add_light_rgb(gr,2,1.,0.,0.,1, 1.,1.,0.,0.5);
+mgl_add_light_rgb(gr,3,0.,-1.,0.,1, 1.,0.,1.,0.5);
+mgl_box(gr,1);
+mgl_surf(gr,a,&quot;h&quot;);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_add_light_rgb(gr,1,0.,1.,0.,1, 0.,1.,1.,0.5)
+call mgl_add_light_rgb(gr,2,1.,0.,0.,1, 1.,1.,0.,0.5)
+call mgl_add_light_rgb(gr,3,0.,-1.,0.,1, 1.,0.,1.,0.5)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'h')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Rotate(40,60);       gr.Light(True);
+gr.AddLight(1,0,1,0,&quot;c&quot;);
+gr.AddLight(2,1,0,0,&quot;y&quot;);
+gr.AddLight(3,0,-1,0,&quot;m&quot;);
+gr.Box();
+gr.Surf(a,&quot;h&quot;)
+</pre><hr size="6">
+<a name="Mirrored-surface-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Several-light-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-with-labels-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0442_0440_0430_0436e_043d_0438e-_043f_043e_0432e_0440_0445_043d_043e_0441_0442_0438"></a>
+<h3 class="subsection">9.6.6 Отражение поверхности</h3>
+<a name="index-Surf-15"></a>
+<div class="float">
+<img src="../png/mirror.png" alt="../png/mirror">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(30,40),x(30),y1(40),y2(40);
+a.Modify(&quot;pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)&quot;);
+x.Fill(-1,1); y1.Fill(0,1); y2.Fill(0,-1);
+gr-&gt;Rotate(40,60);
+gr-&gt;Light(true);
+gr-&gt;Box();
+gr-&gt;Surf(x,y1,a,&quot;r&quot;); gr-&gt;Surf(x,y2,a,&quot;b&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 30 40
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf a 'r'; yrange 0 1
+surf a 'b'; yrange 0 -1
+box
+</pre><p>or
+</p><pre class="verbatim">new a 30 40
+var x 30 -1 1
+var y1 40 0 1
+var y2 40 0 -1
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf x y1 a 'r'
+surf x y2 a 'b'
+box
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a,x,y1,y2;
+a = mgl_create_data_size(30,40,1);
+x = mgl_create_data_size(30,1,1);
+y1 = mgl_create_data_size(40,1,1);
+y2 = mgl_create_data_size(40,1,1);
+mgl_data_modify(a,&quot;pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)&quot;,0);
+mgl_data_fill(x,-1.,1.,'x');
+mgl_data_fill(y1,0.,1.,'x');
+mgl_data_fill(y2,0.,-1.,'x');
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf_xy(gr,x,y1,a,&quot;r&quot;); mgl_surf_xy(gr,x,y2,a,&quot;b&quot;);
+mgl_delete_data(a); mgl_delete_data(y1);
+mgl_delete_data(x); mgl_delete_data(y2);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,x,y1,y2, mgl_create_data_size
+a = mgl_create_data_size(30,40,1)
+x = mgl_create_data_size(30,1,1)
+y1 = mgl_create_data_size(40,1,1)
+y2 = mgl_create_data_size(40,1,1)
+call mgl_data_modify(a,'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)',0)
+call mgl_data_fill(x,-1.,1.,'x')
+call mgl_data_fill(y1,0.,1.,'x')
+call mgl_data_fill(y2,0.,-1.,'x')
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf_xy(gr,x,y1,a,'r')
+call mgl_surf_xy(gr,x,y2,a,'b')
+call mgl_delete_data(a)
+call mgl_delete_data(y1)
+call mgl_delete_data(x)
+call mgl_delete_data(y2)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, x, y1, y2 = mglData(30,40), mglData(30), mglData(40), mglData(40);
+a.Modify(&quot;pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)&quot;);
+x.Fill(-1,1);   y1.Fill(0,1);   y2.Fill(0,-1);
+gr.Rotate(40,60);       gr.Light(True);         gr.Box();
+gr.Surf(x,y1,a,&quot;r&quot;);    gr.Surf(x,y2,a,&quot;b&quot;);
+</pre><hr size="6">
+<a name="Cont-with-labels-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mirrored-surface-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ternary-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-_0438-_043f_043e_0434_043f_0438_0441_0438-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.6.7 Cont и подписи &ndash; пример использования</h3>
+<a name="index-Cont-8"></a>
+<div class="float">
+<img src="../png/contt.png" alt="../png/contt">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Box();
+gr-&gt;Cont(a,&quot;BbcyrRt&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+cont a 'BbcyrRt'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_box(gr,1);
+mgl_cont(gr,a,&quot;BbcyrRt&quot;,7,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_box(gr,1)
+call mgl_cont(gr,a,'BbcyrRt',7,0)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Box();
+gr.Cont(a,&quot;BbcyrRt&quot;);
+</pre><hr size="6">
+<a name="Ternary-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-with-labels-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Coloring-by-coordinates-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ternary-plot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.6.8 Ternary plot &ndash; пример использования</h3>
+<a name="index-Ternary-2"></a>
+<div class="float">
+<img src="../png/ternary.png" alt="../png/ternary">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData x(50),y(50),rx(10),ry(10), a(20,30);
+a.Modify(&quot;4*x*y&quot;);
+x.Modify(&quot;0.25*(1+cos(2*pi*x))&quot;);
+y.Modify(&quot;0.25*(1+sin(2*pi*x))&quot;);
+rx.Modify(&quot;rnd&quot;); ry.Modify(&quot;(1-v)*rnd&quot;,rx);
+gr-&gt;Text(mglPoint(-0.8,1.3), &quot;Ternary plot (x+y+t=1)&quot;);
+gr-&gt;Ternary(true);
+gr-&gt;Plot(x,y,&quot;r2&quot;);
+gr-&gt;Plot(rx,ry,&quot;q^ &quot;);
+gr-&gt;Cont(a);
+gr-&gt;Line(mglPoint(0.5,0), mglPoint(0,0.75), &quot;g2&quot;);
+gr-&gt;Axis(); gr-&gt;Grid(&quot;xyz&quot;,&quot;B;&quot;);
+gr-&gt;Label('x',&quot;x comp.&quot;);
+gr-&gt;Label('y',&quot;y comp.&quot;);
+gr-&gt;Label('t',&quot;t comp.&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new rx 10
+new ry 10
+new x 50
+new y 50
+new a 20 30
+modify a '4*x*y'
+modify x '0.25*(1+cos(2*pi*x))'
+modify y '0.25*(1+sin(2*pi*x))'
+modify rx 'rnd'
+modify ry 'rnd*(1-v)' rx
+text -0.8 1.3 'Ternary plot (x+y+t=1)'
+ternary on
+plot x y 'r2'
+plot rx ry 'q^ '
+cont a
+line 0.5 0 0 0.75 'g2'
+axis
+grid 'xyz' 'B;'
+xlabel 'x comp.'
+ylabel 'y comp.'
+tlabel 't comp.'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT x,y,rx,ry,a;
+x = mgl_create_data_size(50,1,1);
+y = mgl_create_data_size(50,1,1);
+rx = mgl_create_data_size(50,1,1);
+ry = mgl_create_data_size(50,1,1);
+a = mgl_create_data_size(20,30,1);
+mgl_data_modify(x,&quot;0.25*(1+cos(2*pi*x))&quot;,0);
+mgl_data_modify(y,&quot;0.25*(1+sin(2*pi*x))&quot;,0);
+mgl_data_modify(rx,&quot;rnd&quot;,0);
+mgl_data_modify_vw(ry,&quot;(1-v)*rnd&quot;,rx,0);
+mgl_data_modify(a,&quot;4*x*y&quot;,0);
+mgl_puts_ext(gr,-0.8,1.3,0.,&quot;Ternary plot (x+y+t=1)&quot;,&quot;C&quot;,-1.4,'t');
+mgl_set_ternary(gr,1);
+mgl_plot_xy(gr,x,y,&quot;r2&quot;);
+mgl_plot_xy(gr,rx,ry,&quot;q^ &quot;);
+mgl_cont(gr,a,&quot;&quot;,7,0.);
+mgl_line(gr,0.5,0.,0.,0.,0.75,0.,&quot;g2&quot;,2);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B:&quot;);
+mgl_label(gr,'x',&quot;x comp&quot;);
+mgl_label(gr,'y',&quot;y comp&quot;);
+mgl_label(gr,'t',&quot;t comp&quot;);
+mgl_delete_data(a);
+mgl_delete_data(x);     mgl_delete_data(y);
+mgl_delete_data(rx);    mgl_delete_data(ry);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,x,y,rx,ry, mgl_create_data_size
+x = mgl_create_data_size(50,1,1)
+y = mgl_create_data_size(50,1,1)
+rx = mgl_create_data_size(50,1,1)
+ry = mgl_create_data_size(50,1,1)
+a = mgl_create_data_size(20,30,1)
+call mgl_data_modify(x,'0.25*(1+cos(2*pi*x))',0)
+call mgl_data_modify(y,'0.25*(1+sin(2*pi*x))',0)
+call mgl_data_modify(rx,'rnd',0)
+call mgl_data_modify_vw(ry,'(1-v)*rnd',rx,rx)
+call mgl_data_modify(a,'4*x*y',0)
+call mgl_puts_ext(gr,-0.8,1.3,0.,'Ternary plot (x+y+t=1)','C',-1.4,'t')
+call mgl_set_ternary(gr,1)
+call mgl_plot_xy(gr,x,y,'r2')
+call mgl_plot_xy(gr,rx,ry,'q^ ')
+call mgl_cont(gr,a,'',7,0.)
+call mgl_line(gr,0.5,0.,0.,0.,0.75,0.,'g2',2)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B:')
+call mgl_label(gr,'x','x comp')
+call mgl_label(gr,'y','y comp')
+call mgl_label(gr,'t','t comp')
+call mgl_delete_data(a)
+call mgl_delete_data(x)
+call mgl_delete_data(y)
+call mgl_delete_data(rx)
+call mgl_delete_data(ry)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">x, y, rx, ry, a = mglData(50), mglData(50), mglData(10), mglData(10), mglData(20,30);
+a.Modify(&quot;4*x*y&quot;);
+x.Modify(&quot;0.25*(1+cos(2*pi*x))&quot;);   y.Modify(&quot;0.25*(1+sin(2*pi*x))&quot;);
+rx.Modify(&quot;rnd&quot;);   ry.Modify(&quot;(1-v)*rnd&quot;,rx);
+gr.Puts(-0.8,1.3,0,&quot;Ternary plot (x+y+t=1)&quot;,&quot;C&quot;,-1.4);
+gr.Ternary(True);
+gr.Plot(x,y,&quot;r2&quot;);  gr.Plot(rx,ry,&quot;q^ &quot;);   gr.Cont(a);
+gr.Line(0.5,0,0,0,0.75,0,&quot;g2&quot;);
+gr.Axis();          gr.Grid(&quot;xyz&quot;,&quot;B;&quot;);
+gr.Label(&quot;x&quot;,&quot;x comp.&quot;);
+gr.Label(&quot;y&quot;,&quot;y comp.&quot;);
+gr.Label(&quot;t&quot;,&quot;t comp.&quot;);
+</pre><hr size="6">
+<a name="Coloring-by-coordinates-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ternary-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Drops-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_043a_0440_0430_0448_0438_0432_0430_043d_0438e-_043f_043e-_043f_043e_043b_043e_0436e_043d_0438_044e-g_0440_0430_043d_0438"></a>
+<h3 class="subsection">9.6.9 Окрашивание по положению грани</h3>
+<a name="index-Surf3-9"></a>
+<div class="float">
+<img src="../png/surf3_rgbd.png" alt="../png/surf3_rgbd">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;);
+gr-&gt;Rotate(40,60);
+gr-&gt;Box();
+gr-&gt;Surf3(a,&quot;bgrd&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+surf3 a 'bgrd'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_surf3(gr,a,&quot;bgrd&quot;,3);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,&quot;-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)&quot;,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'bgrd',3)
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(60,50,40);
+a.Modify(&quot;-2*((2*x-1)^2+(2*y-1)^2+(2*z-1)^4-(2*z-1)^2-0.1)&quot;);
+gr.Rotate(40,60);       gr.Box();
+gr.Surf3(a,&quot;bgrd&quot;);
+</pre><hr size="6">
+<a name="Drops-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Coloring-by-coordinates-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Molecules-drawing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Drops-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.6.10 Drops &ndash; пример использования</h3>
+<a name="index-Drop-4"></a>
+<div class="float">
+<img src="../png/drops.png" alt="../png/drops">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Light(true);
+gr-&gt;Puts(mglPoint(-1,1.2),&quot;sh=0&quot;);
+gr-&gt;Drop(mglPoint(-1,0),mglPoint(0,1),0.5,&quot;r&quot;,0);
+gr-&gt;Puts(mglPoint(-0.33,1.2),&quot;sh=0.33&quot;);
+gr-&gt;Drop(mglPoint(-0.33,0),mglPoint(0,1),0.5,&quot;r&quot;,0.33);
+gr-&gt;Puts(mglPoint(0.33,1.2),&quot;sh=0.67&quot;);
+gr-&gt;Drop(mglPoint(0.33,0),mglPoint(0,1),0.5,&quot;r&quot;,0.67);
+gr-&gt;Puts(mglPoint(1,1.2),&quot;sh=1&quot;);
+gr-&gt;Drop(mglPoint(1,0),mglPoint(0,1),0.5,&quot;r&quot;,1);
+gr-&gt;Ball(mglPoint(-1,0,1),'k');
+gr-&gt;Ball(mglPoint(-0.33,0,1),'k');
+gr-&gt;Ball(mglPoint(0.33,0,1),'k');
+gr-&gt;Ball(mglPoint(1,0,1),'k');
+gr-&gt;Line(mglPoint(-1,0,1),mglPoint(1,0,1),&quot;b&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">light on
+text -1 1.2 'sh=0'
+drop -1 0 0 1 0.5 'r' 0
+text -0.33 1.2 'sh=0.33'
+drop -0.33 0 0 1 0.5 'r' 0.33
+text 0.33 1.2 'sh=0.67'
+drop 0.33 0 0 1 0.5 'r' 0.67
+text 1 1.2 'sh=1'
+drop 1 0 0 1 0.5 'r' 1
+ball -1 0 1 'k'
+ball -0.33 0 1 'k'
+ball 0.33 0 1 'k'
+ball 1 0 1 'k'
+line -1 0 1 1 0 1 'b'
+new h 100
+modify h '0.25*(1+x)^2'
+plot h 'k|'
+text -1 0.6 'h\sim(1+sh)^2' 'rL'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">mgl_set_light(gr,1);
+mgl_puts(gr,-1.,1.2,0.,&quot;sh=0&quot;); 
+mgl_drop(gr,-1.,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.,1.);
+mgl_puts(gr,-0.33,1.2,0.,&quot;sh=0.33&quot;); 
+mgl_drop(gr,-0.33,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.33,1.);
+mgl_puts(gr,0.33,1.2,0.,&quot;sh=0.67&quot;); 
+mgl_drop(gr,0.33,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.67,1.);
+mgl_puts(gr,1.,1.2,0.,&quot;sh=1&quot;); 
+mgl_drop(gr,1.,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,1.,1.);
+mgl_ball_str(gr,-1.,0.,1.,&quot;k&quot;);
+mgl_ball_str(gr,-0.33,0.,1.,&quot;k&quot;);
+mgl_ball_str(gr,0.33,0.,1.,&quot;k&quot;);
+mgl_ball_str(gr,1.,0.,1.,&quot;k&quot;);
+mgl_line(gr,-1.,0.,1.,1.,0.,1.,&quot;b&quot;,2);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">call mgl_set_light(gr,1);
+call mgl_puts(gr,-1.,1.2,0.,&quot;sh=0&quot;); 
+call mgl_drop(gr,-1.,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.,1.);
+call mgl_puts(gr,-0.33,1.2,0.,&quot;sh=0.33&quot;); 
+call mgl_drop(gr,-0.33,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.33,1.);
+call mgl_puts(gr,0.33,1.2,0.,&quot;sh=0.67&quot;); 
+call mgl_drop(gr,0.33,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,0.67,1.);
+call mgl_puts(gr,1.,1.2,0.,&quot;sh=1&quot;); 
+call mgl_drop(gr,1.,0.,0.,0.,1.,0.,0.5,&quot;r&quot;,1.,1.);
+call mgl_ball_str(gr,-1.,0.,1.,&quot;k&quot;);
+call mgl_ball_str(gr,-0.33,0.,1.,&quot;k&quot;);
+call mgl_ball_str(gr,0.33,0.,1.,&quot;k&quot;);
+call mgl_ball_str(gr,1.,0.,1.,&quot;k&quot;);
+call mgl_line(gr,-1.,0.,1.,1.,0.,1.,&quot;b&quot;,2);
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">gr.Light(True);
+gr.Puts(-1,1.2,0,&quot;sh=0&quot;,&quot;rC&quot;);
+gr.Drop(-1,0,0,0,1,0,0.5,&quot;r&quot;,0);
+gr.Puts(-0.33,1.2,0,&quot;sh=0.33&quot;,&quot;rC&quot;);
+gr.Drop(-0.33,0,0,0,1,0,0.5,&quot;r&quot;,0.33);
+gr.Puts(0.33,1.2,0,&quot;sh=0.67&quot;,&quot;rC&quot;);
+gr.Drop(0.33,0,0,0,1,0,0.5,&quot;r&quot;,0.67);
+gr.Puts(1,1.2,0,&quot;sh=1&quot;,&quot;rC&quot;);
+gr.Drop(1,0,0,0,1,0,0.5,&quot;r&quot;,1);
+gr.Ball(-1,0,1,&quot;k&quot;);    gr.Ball(-0.33,0,1,&quot;k&quot;);
+gr.Ball(0.33,0,1,&quot;k&quot;);  gr.Ball(1,0,1,&quot;k&quot;);
+gr.Line(-1,0,1,1,0,1,&quot;b&quot;);
+</pre><hr size="6">
+<a name="Molecules-drawing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Drops-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0420_0438_0441_043e_0432_0430_043d_0438e-_043c_043e_043be_043a_0443_043b"></a>
+<h3 class="subsection">9.6.11 Рисование молекул</h3>
+<a name="index-Drop-5"></a>
+<a name="index-Sphere-3"></a>
+<div class="float">
+<img src="../png/molecule.png" alt="../png/molecule">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Alpha(true); gr-&gt;Light(true);
+gr-&gt;SubPlot(2,2,0);
+gr-&gt;Text(mglPoint(0,1.2),&quot;Methane, CH_4&quot;,0,-3); gr-&gt;Rotate(60,120);
+gr-&gt;Sphere(mglPoint(0,0,0),0.25,&quot;k&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0,0,1),0.35,&quot;h&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0,0,0.7),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(-0.94,0,-0.33),0.35,&quot;h&quot;,1,2);
+gr-&gt;Sphere(mglPoint(-0.66,0,-0.23),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.47,0.82,-0.33),0.35,&quot;h&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.33,0.57,-0.23),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.47,-0.82,-0.33),0.35,&quot;h&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.33,-0.57,-0.23),0.25,&quot;g&quot;);
+gr-&gt;SubPlot(2,2,1);
+gr-&gt;Text(mglPoint(0,1.2),&quot;Water, H{_2}O&quot;,0,-3); gr-&gt;Rotate(60,100);
+gr-&gt;Sphere(mglPoint(0,0,0),0.25,&quot;r&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.3,0.5,0),0.3,&quot;m&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.3,0.5,0),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.3,-0.5,0),0.3,&quot;m&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.3,-0.5,0),0.25,&quot;g&quot;);
+gr-&gt;SubPlot(2,2,2);
+gr-&gt;Text(mglPoint(0,1.2),&quot;Oxygen, O_2&quot;,0,-3); gr-&gt;Rotate(60,120);
+gr-&gt;Drop(mglPoint(0,0.5,0),mglPoint(0,-0.3,0),0.3,&quot;m&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0,0.5,0),0.25,&quot;r&quot;);
+gr-&gt;Drop(mglPoint(0,-0.5,0),mglPoint(0,0.3,0),0.3,&quot;m&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0,-0.5,0),0.25,&quot;r&quot;);
+gr-&gt;SubPlot(2,2,3);
+gr-&gt;Text(mglPoint(0,1.2),&quot;Ammonia, NH_3&quot;,0,-3); gr-&gt;Rotate(60,120);
+gr-&gt;Sphere(mglPoint(0,0,0),0.25,&quot;b&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.33,0.57,0),0.32,&quot;n&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.33,0.57,0),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(0.33,-0.57,0),0.32,&quot;n&quot;,1,2);
+gr-&gt;Sphere(mglPoint(0.33,-0.57,0),0.25,&quot;g&quot;);
+gr-&gt;Drop(mglPoint(0,0,0),mglPoint(-0.65,0,0),0.32,&quot;n&quot;,1,2);
+gr-&gt;Sphere(mglPoint(-0.65,0,0),0.25,&quot;g&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">alpha on
+light on
+subplot 2 2 0
+text 0 1.2 'Methane, CH_4' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'k'
+drop 0 0 0 0 0 1 0.35 'h' 1 2
+sphere 0 0 0.7 0.25 'g'
+drop 0 0 0 -0.94 0 -0.33 0.35 'h' 1 2
+sphere -0.66 0 -0.23 0.25 'g'
+drop 0 0 0 0.47 0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 0.57 -0.23 0.25 'g'
+drop 0 0 0 0.47 -0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 -0.57 -0.23 0.25 'g'
+subplot 2 2 1
+text 0 1.2 'Water, H{_2}O' '' -3
+rotate 60 100
+sphere 0 0 0 0.25 'r'
+drop 0 0 0 0.3 0.5 0 0.3 'm' 1 2
+sphere 0.3 0.5 0 0.25 'g'
+drop 0 0 0 0.3 -0.5 0 0.3 'm' 1 2
+sphere 0.3 -0.5 0 0.25 'g'
+subplot 2 2 2
+text 0 1.2 'Oxygen, O_2' '' -3
+rotate 60 120
+drop 0 0.5 0 0 -0.3 0 0.3 'm' 1 2
+sphere 0 0.5 0 0.25 'r'
+drop 0 -0.5 0 0 0.3 0 0.3 'm' 1 2
+sphere 0 -0.5 0 0.25 'r'
+subplot 2 2 3
+text 0 1.2 0 'Ammonia, NH_3' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'b'
+drop 0 0 0 0.33 0.57 0 0.32 'n' 1 2
+sphere 0.33 0.57 0 0.25 'g'
+drop 0 0 0 0.33 -0.57 0 0.32 'n' 1 2
+sphere 0.33 -0.57 0 0.25 'g'
+drop 0 0 0 -0.65 0 0 0.32 'n' 1 2
+sphere -0.65 0 0 0.25 'g'
+</pre><hr size="6">
+<a name="Advanced-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Molecules-drawing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Curvelinear-coorinates-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0022_041f_0440_043e_0434_0432_0438_043d_0443_0442_044be_0022-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438"></a>
+<h2 class="section">9.7 &quot;Продвинутые&quot; возможности</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Curvelinear-coorinates-sample">9.7.1 Криволинейные координаты</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2_002daxes-sample">9.7.2 Несколько осей на одном графике</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Semi_002dlog-sample">9.7.3 Semi-log &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Log_002dlog-sample">9.7.4 Log-log &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fitting-sample">9.7.5 Fitting &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Envelop-sample">9.7.6 Envelop &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Sew-sample">9.7.7 Sew &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#STFA-sample">9.7.8 STFA &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#PDE-sample">9.7.9 PDE &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Beam-tracing-sample">9.7.10 Beam tracing &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Parser-sample">9.7.11 Parser &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Manual-ticks-sample">9.7.12 Особые метки по осям</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ColumnPlot-sample">9.7.13 ColumnPlot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#StickPlot-sample">9.7.14 StickPlot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stereo-image-sample">9.7.15 Пример стерео изображения</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+</table>
+<hr size="6">
+<a name="Curvelinear-coorinates-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Advanced-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2_002daxes-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041a_0440_0438_0432_043e_043b_0438_043de_0439_043d_044be-_043a_043e_043e_0440_0434_0438_043d_0430_0442_044b-1"></a>
+<h3 class="subsection">9.7.1 Криволинейные координаты</h3>
+<a name="index-Axis-7"></a>
+<div class="float">
+<img src="../png/sample3.png" alt="../png/sample3">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Org = mglPoint(-1,1,-1);
+gr-&gt;SubPlot(2,2,0); gr-&gt;Rotate(60,40);
+gr-&gt;Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),&quot;r2&quot;,100);
+gr-&gt;Axis(); gr-&gt;Grid();
+gr-&gt;Text(mglPoint(0,1.3,1),&quot;Cartesian&quot;);
+gr-&gt;SubPlot(2,2,1); gr-&gt;Rotate(60,40);
+gr-&gt;SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;);
+gr-&gt;Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),&quot;r2&quot;,100);
+gr-&gt;Axis(); gr-&gt;Grid();
+gr-&gt;Text(mglPoint(0,1.3,1),&quot;Cylindrical&quot;);
+gr-&gt;SubPlot(2,2,2); gr-&gt;Rotate(60,40);
+gr-&gt;SetFunc(&quot;2*y*x&quot;,&quot;y*y - x*x&quot;);
+gr-&gt;Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),&quot;r2&quot;,100);
+gr-&gt;Axis(); gr-&gt;Grid();
+gr-&gt;Text(mglPoint(0,1.3,1),&quot;Parabolic&quot;);
+gr-&gt;SubPlot(2,2,3); gr-&gt;Rotate(60,40);
+gr-&gt;SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,&quot;x+z&quot;);
+gr-&gt;Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),&quot;r2&quot;,100);
+gr-&gt;Axis(); gr-&gt;Grid();
+gr-&gt;Text(mglPoint(0,1.3,1),&quot;Spiral&quot;);
+gr-&gt;Axis(0,0,0); // set to default Cartesian
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">origin -1 1 -1
+subplot 2 2 0
+rotate 60 40
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cartesian'
+subplot 2 2 1
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cylindrical'
+subplot 2 2 2
+rotate 60 40
+axis '2*y*x' 'y*y - x*x' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Parabolic'
+subplot 2 2 3
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Spiral'
+axis '' '' '' # set to default Cartesian
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">mgl_set_origin(gr,-1,1,-1);
+mgl_subplot(gr,2,2,0); mgl_rotate(gr,60,40,0);
+mgl_line(gr,-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+mgl_axis(gr,&quot;xyz&quot;); mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B&quot;);
+mgl_text(gr,0,1.3,1,&quot;Cartesian&quot;);
+mgl_subplot(gr,2,2,1); mgl_rotate(gr,60,40,0);
+mgl_set_func(gr,&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,0);
+mgl_line(gr,-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+mgl_axis(gr,&quot;xyz&quot;); mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B&quot;);
+mgl_text(gr,0,1.3,1,&quot;Cylindrical&quot;);
+mgl_subplot(gr,2,2,2); mgl_rotate(gr,60,40,0);
+mgl_set_func(gr,&quot;2*y*x&quot;,&quot;y*y - x*x&quot;,&quot;&quot;);
+mgl_line(gr,-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+mgl_axis(gr,&quot;xyz&quot;); mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B&quot;);
+mgl_text(gr,0,1.3,1,&quot;Parabolic&quot;);
+mgl_subplot(gr,2,2,3); mgl_rotate(gr,60,40,0);
+mgl_set_func(gr,&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,&quot;x+z&quot;);
+mgl_line(gr,-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+mgl_axis(gr,&quot;xyz&quot;); mgl_axis_grid(gr,&quot;xyz&quot;,&quot;B&quot;);
+mgl_text(gr,0,1.3,1,&quot;Spiral&quot;);
+mgl_set_func(gr,0,0,0); /* set to default Cartesian */
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">call mgl_set_origin(gr,-1.,1.,-1.)
+call mgl_subplot(gr,2,2,0)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,'Cartesian')
+call mgl_subplot(gr,2,2,1)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_set_func(gr,'y*sin(pi*x)','y*cos(pi*x)','')
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,'Cylindrical')
+call mgl_subplot(gr,2,2,2)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_set_func(gr,'2*y*x','y*y - x*x','')
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,&quot;Parabolic&quot;)
+call mgl_subplot(gr,2,2,3)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_set_func(gr,'y*sin(pi*x)','y*cos(pi*x)','x+z')
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,'Spiral')
+call mgl_set_func(gr,'','','') ! set to default Cartesian
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">gr.SetOrigin(-1,1,-1);
+gr.SubPlot(2,2,0);              gr.Rotate(60,40);
+gr.Line(-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+gr.Axis();              gr.Grid();
+gr.Puts(0,1.3,1,&quot;Gartesian&quot;,&quot;rC&quot;,-1.5);
+gr.SubPlot(2,2,1);  gr.Rotate(60,40);
+gr.SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;);
+gr.Line(-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+gr.Axis();          gr.Grid();
+gr.Puts(0,1.3,1,&quot;Cylindrical&quot;,&quot;rC&quot;,-1.5);
+gr.SubPlot(2,2,2);  gr.Rotate(60,40);
+gr.SetFunc(&quot;2*y*x&quot;,&quot;y*y-x*x&quot;);
+gr.Line(-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+gr.Axis();          gr.Grid();
+gr.Puts(0,1.3,1,&quot;Parabolic&quot;,&quot;rC&quot;,-1.5);
+gr.SubPlot(2,2,3);  gr.Rotate(60,40);
+gr.SetFunc(&quot;y*sin(pi*x)&quot;,&quot;y*cos(pi*x)&quot;,&quot;x+z&quot;);
+gr.Line(-1,0.5,0,1,0.5,0,&quot;r2&quot;,100);
+gr.Axis();          gr.Grid();
+gr.Puts(0,1.3,1,&quot;Spiral&quot;,&quot;rC&quot;,-1.5);
+gr.SetFunc(&quot;&quot;,&quot;&quot;);   # set to default Gartesian
+</pre><hr size="6">
+<a name="g_t2_002daxes-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Curvelinear-coorinates-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Semi_002dlog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041de_0441_043a_043e_043bx_043a_043e-_043e_0441e_0439-_043d_0430-_043e_0434_043d_043e_043c-g_0440_0430_0444_0438_043ae"></a>
+<h3 class="subsection">9.7.2 Несколько осей на одном графике</h3>
+<a name="index-Axis-8"></a>
+<div class="float">
+<img src="../png/2_axis.png" alt="../png/2_axis">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData y1(50), y2(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;); y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr-&gt;Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,-1,-1));
+gr-&gt;Axis(); gr-&gt;Label('y',&quot;axis 1&quot;,0);
+gr-&gt;Plot(y1,&quot;b&quot;);
+gr-&gt;Axis(mglPoint(0,0,0),mglPoint(1,1,1),mglPoint(1,1,1));
+gr-&gt;Axis(); gr-&gt;Label('y',&quot;axis 2&quot;,0);
+gr-&gt;Stem(y2,&quot;r&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+axis -1 -1 -1 1 1 1
+origin -1 -1 -1
+axis
+ylabel 'axis 1' 0
+plot y1 'b'
+axis 0 0 0 1 1 1
+origin 1 1 1
+axis
+ylabel 'axis 2' 0
+stem y2 'r'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,&quot;0.3*sin(2*pi*x)&quot;,0);
+mgl_data_modify(y2,&quot;0.5+0.3*cos(2*pi*x)&quot;,0);
+mgl_set_axis_2d(gr,-1.,1.,-1.,1.);
+mgl_set_origin(gr,-1.,-1.,-1.);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_label_ext(gr,'y',&quot;axis 1&quot;,0,-1.4,0.);
+mgl_plot(gr,y1,&quot;b&quot;);
+mgl_set_axis_2d(gr,0.,0.,1.,1.);
+mgl_set_origin(gr,1.,1.,1.);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_label_ext(gr,'y',&quot;axis 2&quot;,0,-1.4,0.);
+mgl_stem(gr,y2,&quot;r&quot;);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer y1,y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1)
+y2 = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y1,'0.3*sin(2*pi*x)',0)
+call mgl_data_modify(y2,'0.5+0.3*cos(2*pi*x)',0)
+call mgl_set_axis_2d(gr,-1.,1.,-1.,1.)
+call mgl_set_origin(gr,-1.,-1.,-1.)
+call mgl_axis(gr,'xyz')
+call mgl_label_ext(gr,'y','axis 1',0,-1.4,0.)
+call mgl_plot(gr,y1,'b')
+call mgl_set_axis_2d(gr,0.,0.,1.,1.)
+call mgl_set_origin(gr,1.,1.,1.)
+call mgl_axis(gr,'xyz')
+call mgl_label_ext(gr,'y','axis 2',0,-1.4,0.)
+call mgl_stem(gr,y2,'r')
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">y1, y2 = mglData(50), mglData(50);
+y1.Modify(&quot;0.3*sin(2*pi*x)&quot;);   y2.Modify(&quot;0.5+0.3*cos(2*pi*x)&quot;);
+gr.SetRanges(-1,1,-1,1);   gr.SetOrigin(-1,-1);
+gr.Axis();      gr.Label(&quot;y&quot;,&quot;axis 1&quot;,0);
+gr.Plot(y1,&quot;b&quot;);
+gr.SetRanges(0,1,0,1);      gr.SetOrigin(1,1);
+gr.Axis();      gr.Label(&quot;y&quot;,&quot;axis 2&quot;,0);
+gr.Stem(y2,&quot;r&quot;);
+</pre><hr size="6">
+<a name="Semi_002dlog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2_002daxes-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Log_002dlog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Semi_002dlog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.3 Semi-log &ndash; пример использования</h3>
+<a name="index-Axis-9"></a>
+<a name="index-SetTicks-2"></a>
+<a name="index-Plot-10"></a>
+<div class="float">
+<img src="../png/semilog.png" alt="../png/semilog">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData x(2000), y(2000);
+x.Modify(&quot;0.01/(x+10^(-5))&quot;); y.Modify(&quot;sin(1/v)&quot;,x);
+gr-&gt;Axis(mglPoint(0.01,-1),mglPoint(1000,1),mglPoint(0.01,-1));
+gr-&gt;SetFunc(&quot;lg(x)&quot;,0);  gr-&gt;SetTicks('x',0);
+gr-&gt;Box();
+gr-&gt;Plot(x,y,&quot;b2&quot;);
+gr-&gt;Axis(); gr-&gt;Grid(&quot;xy&quot;,&quot;g&quot;);
+gr-&gt;Label('x',&quot;x&quot;,0);   gr-&gt;Label('y', &quot;y = sin 1/x&quot;,0);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new x 2000
+new y 2000
+modify x '0.01/(x+10^(-5))'
+modify y 'sin(1/v)' x
+xrange 0.01 1000
+origin 0.01 -1 0
+xtick 0
+axis 'lg(x)' '' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g'
+xlabel 'x' 0
+ylabel 'y = sin 1/x' 0
+box
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT x = mgl_create_data_size(2000,1,1);
+HMDT y = mgl_create_data_size(2000,1,1);
+mgl_data_modify(x,&quot;0.01/(x+10^(-5))&quot;,0);
+mgl_data_modify_vw(y,&quot;sin(1/v)&quot;,x,0);
+mgl_set_axis(gr,0.01,-1.,0.,1000.,1.,0.,0.01,-1.,0.);
+mgl_set_func(gr,&quot;lg(x)&quot;,0,0);
+mgl_set_ticks(gr,0.,-5.,-5.);
+mgl_box(gr,1);
+mgl_plot_xy(gr,x,y,&quot;b2&quot;);
+mgl_axis(gr,&quot;xy&quot;); mgl_axis_grid(gr,&quot;xy&quot;,&quot;g&quot;);
+mgl_label_ext(gr,'x',&quot;x&quot;,0,-1.4,0);
+mgl_label_ext(gr,'y', &quot;y = sin 1/x&quot;,0,-1.4,0);
+mgl_delete_data(x); mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer x,y, mgl_create_data_size
+x = mgl_create_data_size(2000,1,1)
+y = mgl_create_data_size(2000,1,1)
+call mgl_data_modify(x,'0.01/(x+10^(-5))',0)
+call mgl_data_modify_vw(y,'sin(1/v)',x,x)
+call mgl_set_axis(gr,0.01,-1.,0.,1000.,1.,0.,0.01,-1.,0.)
+call mgl_set_func(gr,'lg(x)','','')
+call mgl_set_ticks(gr,0.,-5.,-5.)
+call mgl_box(gr,1)
+call mgl_plot_xy(gr,x,y,'b2')
+call mgl_axis(gr,'xy')
+call mgl_axis_grid(gr,'xy','g')
+call mgl_label_ext(gr,'x','x',0.,-1.4,0.)
+call mgl_label_ext(gr,'y', 'y = sin 1/x',0.,-1.4,0.)
+call mgl_delete_data(x)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">TO BE DONE
+</pre><hr size="6">
+<a name="Log_002dlog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Semi_002dlog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fitting-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Log_002dlog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.4 Log-log &ndash; пример использования</h3>
+<a name="index-Axis-10"></a>
+<a name="index-SetTicks-3"></a>
+<a name="index-Plot-11"></a>
+<div class="float">
+<img src="../png/loglog.png" alt="../png/loglog">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData x(100), y(100);
+x.Modify(&quot;pow(10,6*x-3)&quot;); y.Modify(&quot;sqrt(1+v^2)&quot;,x);
+gr-&gt;Axis(mglPoint(0.001,0.1),mglPoint(1000,1000),mglPoint(0.001,0.1));
+gr-&gt;SetFunc(&quot;lg(x)&quot;,&quot;lg(y)&quot;);
+gr-&gt;SetTicks('x',0);    gr-&gt;SetTicks('y',0);
+gr-&gt;Box();
+gr-&gt;Plot(x,y,&quot;b2&quot;);
+gr-&gt;Axis(); gr-&gt;Grid(&quot;xy&quot;,&quot;g;&quot;);
+gr-&gt;Label('x',&quot;x&quot;,0); gr-&gt;Label('y', &quot;y=\\sqrt{1+x^2}&quot;,0);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new x 100
+new y 100
+modify x 'pow(10,6*x-3)'
+modify y 'sqrt(1+v^2)' x
+axis 0.001 0.1 1000 1000
+xtick 0
+ytick 0
+axis 'lg(x)' 'lg(y)' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g;'
+xlabel 'x' 0
+ylabel 'y=\sqrt{1+x^2}' 0
+box
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT x = mgl_create_data_size(100,1,1);
+HMDT y = mgl_create_data_size(100,1,1);
+mgl_data_modify(x,&quot;pow(10,6*x-3)&quot;,0);
+mgl_data_modify_vw(y,&quot;sqrt(1+v^2)&quot;,x,0);
+mgl_set_axis(gr,0.001,0.1,0.,1000.,1000.,0.,0.001,0.1,0.);
+mgl_set_func(gr,&quot;lg(x)&quot;,&quot;lg(y)&quot;,0);
+mgl_set_ticks(gr,0.,0.,-5.);
+mgl_box(gr,1);
+mgl_plot_xy(gr,x,y,&quot;b2&quot;);
+mgl_axis(gr,&quot;xy&quot;); mgl_axis_grid(gr,&quot;xy&quot;,&quot;g;&quot;);
+mgl_label_ext(gr,'x',&quot;x&quot;,0,-1.4,0);
+mgl_label_ext(gr,'y', &quot;y=\\sqrt{1+x^2}&quot;,0,-1.4,0);
+mgl_delete_data(x); mgl_delete_data(y);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer x,y, mgl_create_data_size
+x = mgl_create_data_size(100,1,1)
+y = mgl_create_data_size(100,1,1)
+call mgl_data_modify(x,'pow(10,6*x-3)',0)
+call mgl_data_modify_vw(y,'sqrt(1+v^2)',x,x)
+call mgl_set_axis(gr,0.001,0.1,0.,1000.,1000.,0.,0.001,0.1,0.)
+call mgl_set_func(gr,'lg(x)','lg(y)','')
+call mgl_set_ticks(gr,0.,0.,-5.)
+call mgl_box(gr,1)
+call mgl_plot_xy(gr,x,y,'b2')
+call mgl_axis(gr,'xy')
+call mgl_axis_grid(gr,'xy','g;')
+call mgl_label_ext(gr,'x','x',0.,-1.4,0)
+call mgl_label_ext(gr,'y', 'y=\sqrt{1+x^2}',0.,-1.4,0)
+call mgl_delete_data(x)
+call mgl_delete_data(y)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">x, y = mglData(100), mglData(100);
+x.Modify(&quot;pow(10,6*x-3)&quot;);          y.Modify(&quot;sqrt(1+v^2)&quot;,x);
+gr.SetRanges(0.001,1000,0.1,1000);  gr.SetOrigin(0.001,0.1);
+gr.SetFunc(&quot;lg(x)&quot;,&quot;lg(y)&quot;);
+gr.SetTicks(&quot;x&quot;,0);     gr.SetTicks(&quot;y&quot;,0);
+gr.Box();               gr.Plot(x,y,&quot;b2&quot;);
+gr.Axis();              gr.Grid(&quot;xy&quot;,&quot;g;&quot;);
+gr.Label(&quot;x&quot;,&quot;x&quot;,0);    gr.Label(&quot;y&quot;,&quot;y=\\sqrt{1+x^2}&quot;,0);
+</pre><hr size="6">
+<a name="Fitting-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Log_002dlog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Envelop-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fitting-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.5 Fitting &ndash; пример использования</h3>
+<a name="index-Fit-9"></a>
+<a name="index-PutsFit-2"></a>
+<div class="float">
+<img src="../png/fit.png" alt="../png/fit">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData rnd(100), in(100), res;
+rnd.Fill(&quot;0.4*rnd+0.1+sin(2*pi*x)&quot;, gr-&gt;Min, gr-&gt;Max);
+in.Fill(&quot;0.3+sin(2*pi*x)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Axis(mglPoint(-1,-2), mglPoint(1,2));
+gr-&gt;Plot(rnd, &quot;. &quot;);
+gr-&gt;Box();
+float ini[3] = {1,1,3};
+gr-&gt;Fit(res, rnd, &quot;a+b*sin(c*x)&quot;, &quot;abc&quot;, ini);
+gr-&gt;Plot(res, &quot;r&quot;);
+gr-&gt;Plot(in, &quot;b&quot;);
+gr-&gt;Text(mglPoint(-1, -1.3), &quot;fitted:&quot;, &quot;L:r&quot;, -1);
+gr-&gt;PutsFit(mglPoint(0, -1.8), &quot;y = &quot;, &quot;C:r&quot;, -1);
+gr-&gt;Text(mglPoint(0, 2.2), &quot;initial: y = 0.3+sin(2\\pi x)&quot;, &quot;C:b&quot;, -1);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new rnd 100
+fill rnd '0.4*rnd+0.1+sin(2*pi*x)'
+new in 100
+fill in '0.3+sin(2*pi*x)'
+yrange -2 2
+plot rnd '. '
+box
+list ini 1 1 3
+fit res rnd 'a+b*sin(c*x)' 'abc' ini
+plot res 'r'
+plot in 'b'
+text -1 -1.3 'fitted:' 'L:r' -1
+putsfit 0 -1.8 'y = ' 'C:r'
+text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT rnd,in,res;
+float ini[3] = {1,1,3};
+rnd = mgl_create_data_size(100,1,1);
+in = mgl_create_data_size(100,1,1);
+res = mgl_create_data();
+mgl_data_modify(rnd,&quot;0.4*rnd+0.1+sin(4*pi*x)&quot;,0);
+mgl_data_modify(in,&quot;0.3+sin(4*pi*x)&quot;,0);
+mgl_set_axis_2d(gr,-1.,-2.,1.,2.);
+mgl_plot(gr,rnd,&quot;. &quot;);
+mgl_box(gr,1);
+mgl_fit_1(gr,res,rnd,&quot;a+b*sin(c*x)&quot;,&quot;abc&quot;,ini);
+mgl_plot(gr,res,&quot;r&quot;);   mgl_plot(gr,in,&quot;b&quot;);
+mgl_puts_ext(gr,-1.,-1.3,0.,&quot;fitted:&quot;,&quot;L:r&quot;,-1.,'t');
+mgl_puts_fit(gr,0.,-1.8,0.,&quot;y = &quot;,&quot;C:r&quot;,-1.);
+mgl_puts_ext(gr,0.,2.2,0.,&quot;initial: y = 0.3+sin(2\\pi x)&quot;,&quot;C:b&quot;, -1., 't');
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer rnd,in,res, mgl_create_data_size
+real ini(3)
+ini(1)=1;   ini(2)=1;   ini(3)=3;
+rnd = mgl_create_data_size(100,1,1);
+in = mgl_create_data_size(100,1,1);
+res = mgl_create_data();
+call mgl_data_modify(rnd,&quot;0.4*rnd+0.1+sin(4*pi*x)&quot;,0);
+call mgl_data_modify(in,&quot;0.3+sin(4*pi*x)&quot;,0);
+call mgl_set_axis_2d(gr,-1.,-2.,1.,2.);
+call mgl_plot(gr,rnd,&quot;. &quot;);
+call mgl_box(gr,1);
+call mgl_fit_1(gr,res,rnd,&quot;a+b*sin(c*x)&quot;,&quot;abc&quot;,ini);
+call mgl_plot(gr,res,&quot;r&quot;);
+call mgl_plot(gr,in,&quot;b&quot;);
+call mgl_puts_ext(gr,-1.,-1.3,0.,&quot;fitted:&quot;,&quot;L:r&quot;,-1.,'t');
+call mgl_puts_fit(gr,0.,-1.8,0.,&quot;y = &quot;,&quot;C:r&quot;,-1.);
+call mgl_puts_ext(gr,0.,2.2,0.,&quot;initial: y = 0.3+sin(2\\pi x)&quot;,&quot;C:b&quot;, -1., 't');
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">rnd, In, res, ini = mglData(100), mglData(100), mglData(), mglData(3);
+rnd.Modify(&quot;0.4*rnd+0.1+sin(4*pi*x)&quot;);
+In.Modify(&quot;0.3+sin(4*pi*x)&quot;);
+gr.SetRanges(-1,1,-2,2);
+gr.Plot(rnd,&quot;. &quot;);
+gr.Box();
+ini[0], ini[1], ini[2] = 1, 1, 3;
+gr.Fit(res,rnd,&quot;a+b*sin(c*x)&quot;,&quot;abc&quot;,ini);
+gr.Plot(res,&quot;r&quot;);   gr.Plot(In,&quot;b&quot;);
+gr.Puts(-1,-1.3,0,&quot;fitted:&quot;,&quot;L:r&quot;,-1);
+gr.PutsFit(0,-1.8,0,&quot;y = &quot;,&quot;C:r&quot;,-1);
+gr.Puts(0,2.2,0,&quot;initial: y = 0.3+sin(2\\pi x)&quot;,&quot;C:b&quot;,-1);
+</pre><hr size="6">
+<a name="Envelop-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fitting-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Sew-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Envelop-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.6 Envelop &ndash; пример использования</h3>
+<a name="index-Envelop-2"></a>
+<div class="float">
+<img src="../png/envelop.png" alt="../png/envelop">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(1000);
+a.Fill(&quot;exp(-8*x^2)*sin(10*pi*x)&quot;, gr-&gt;Min, gr-&gt;Max);
+gr-&gt;Plot(a, &quot;b&quot;);
+a.Envelop('x');
+gr-&gt;Plot(a, &quot;r&quot;);
+gr-&gt;Axis();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 1000
+fill a 'exp(-8*x^2)*sin(10*pi*x)'
+plot a 'b'
+envelop a
+plot a 'r'
+axis
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(1000,1,1);
+mgl_data_fill_eq(gr,a, &quot;exp(-8*x^2)*sin(10*pi*x)&quot;, 0,0);
+mgl_plot(gr,a,&quot;b&quot;);
+mgl_data_envelop(a,'x');
+mgl_plot(gr,a,&quot;r&quot;);
+mgl_axis(gr,&quot;xyz&quot;);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(1000,1,1)
+call mgl_data_fill_eq(gr,a, 'exp(-8*x^2)*sin(10*pi*x)', 0,0)
+call mgl_plot(gr,a,'b')
+call mgl_data_envelop(a,'x')
+call mgl_plot(gr,a,'r')
+call mgl_axis(gr,'xyz')
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(1000);
+gr.Fill(a, &quot;exp(-8*x^2)*sin(10*pi*x)&quot;);
+gr.Plot(a,&quot;b&quot;);
+a.Envelop(&quot;x&quot;);
+gr.Plot(a,&quot;r&quot;);
+gr.Axis();
+</pre><hr size="6">
+<a name="Sew-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Envelop-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#STFA-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Sew-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.7 Sew &ndash; пример использования</h3>
+<a name="index-Sew-2"></a>
+<div class="float">
+<img src="../png/sew.png" alt="../png/sew">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(100, 100);
+a.Modify(&quot;mod((y^2-(1-x)^2)/2,0.1)&quot;);
+gr-&gt;Rotate(40, 60);
+gr-&gt;Light(true);
+gr-&gt;Alpha(true);
+gr-&gt;Surf(a, &quot;b&quot;);
+a.Sew(&quot;xy&quot;, 0.1);
+gr-&gt;Surf(a, &quot;r&quot;);
+gr-&gt;Box();
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 100 100
+modify a 'mod((y^2-(1-x)^2)/2,0.1)'
+rotate 40 60
+light on
+alpha on
+surf a 'b'
+sew a 'xy' 0.1
+surf a 'r'
+box
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(100,100,1);
+mgl_data_modify(a, &quot;mod((y^2-(1-x)^2)/2, 0.1)&quot;, 0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_surf(gr,a,&quot;b&quot;);
+mgl_data_sew(a,&quot;xy&quot;,0.1);
+mgl_surf(gr,a,&quot;r&quot;);
+mgl_box(gr,1);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(100,100,1)
+call mgl_data_modify(a, 'mod((y^2-(1-x)^2)/2, 0.1)', 0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_surf(gr,a,'b')
+call mgl_data_sew(a,'xy',0.1)
+call mgl_surf(gr,a,'r')
+call mgl_box(gr,1)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(100, 100);
+a.Modify(&quot;mod((y^2-(1-x)^2)/2, 0.1)&quot;);
+gr.Rotate(40, 60);  gr.Light(True);     gr.Alpha(True);
+gr.Surf(a, &quot;b&quot;);
+a.Sew(&quot;xy&quot;, 0.1);
+gr.Surf(a, &quot;r&quot;);
+gr.Box();
+</pre><hr size="6">
+<a name="STFA-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Sew-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#PDE-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="STFA-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.8 STFA &ndash; пример использования</h3>
+<a name="index-STFA-3"></a>
+<div class="float">
+<img src="../png/stfa.png" alt="../png/stfa">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(2000), b(2000);
+a.Fill(&quot;cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+ \
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)&quot;, 
+        gr-&gt;Min, gr-&gt;Max);
+gr-&gt;SubPlot(1, 2, 0);
+gr-&gt;Plot(a);
+gr-&gt;Axis();
+gr-&gt;Label('x', &quot;\\i t&quot;);
+gr-&gt;SubPlot(1, 2, 1);
+gr-&gt;STFA(a, b, 64);
+gr-&gt;Axis();
+gr-&gt;Label('x', &quot;\\i t&quot;);
+gr-&gt;Label('y', &quot;\\omega&quot;, 0);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 2000
+new b 2000
+fill a 'cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)'
+subplot 1 2 0
+plot a
+axis
+xlabel '\i t'
+subplot 1 2 1
+stfa a b 64 ''
+axis
+ylabel '\omega' 0
+xlabel '\i t'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(2000,1,1);
+HMDT b = mgl_create_data_size(2000,1,1);
+mgl_data_fill_eq(gr, a, &quot;cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+ \
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)&quot;,0,0);
+mgl_subplot(gr,1,2,0);
+mgl_plot(gr,a,&quot;&quot;);
+mgl_axis(gr,&quot;xy&quot;);
+mgl_label(gr,'x', &quot;\\i t&quot;);
+mgl_subplot(gr,1,2,1);
+mgl_stfa(gr,a,b,64,&quot;&quot;,0.);
+mgl_axis(gr,&quot;xy&quot;);
+mgl_label(gr,'x', &quot;\\i t&quot;);
+mgl_label(gr,'y', &quot;\\omega&quot;);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,b, mgl_create_data_size
+a = mgl_create_data_size(2000,1,1)
+b = mgl_create_data_size(2000,1,1)
+call mgl_data_fill_eq(gr, a, 'cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+ &amp;
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)',0,0)
+call mgl_subplot(gr,1,2,0)
+call mgl_plot(gr,a,'')
+call mgl_axis(gr,'xy')
+call mgl_label(gr,'x', '\i t')
+call mgl_subplot(gr,1,2,1)
+call mgl_stfa(gr,a,b,64,'',0.)
+call mgl_axis(gr,'xy')
+call mgl_label(gr,'x', '\i t')
+call mgl_label(gr,'y', '\omega')
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, b = mglData(2000), mglData(2000);
+gr.Fill(a,&quot;cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+ \
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)&quot;);
+gr.SubPlot(1, 2, 0);
+gr.Plot(a);
+gr.Axis();
+gr.Label('x', &quot;\\i t&quot;);
+gr.SubPlot(1, 2, 1);
+gr.STFA(a, b, 64);
+gr.Axis();
+gr.Label('x', &quot;\\i t&quot;);
+gr.Label('y', &quot;\\omega&quot;, 0);
+</pre><hr size="6">
+<a name="PDE-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#STFA-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Beam-tracing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="PDE-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.9 PDE &ndash; пример использования</h3>
+<a name="index-mglPDE-1"></a>
+<a name="index-mglRay-1"></a>
+<div class="float">
+<img src="../png/pde.png" alt="../png/pde">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a,re(128),im(128);
+gr-&gt;Axis();
+gr-&gt;Label('x', &quot;\\i x&quot;);
+gr-&gt;Label('y', &quot;\\i z&quot;);
+	
+re.Fill(&quot;exp(-48*(x+0.7)^2)&quot;, gr-&gt;Min, gr-&gt;Max);
+a = mglPDE(&quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;, re, im, gr-&gt;Min, gr-&gt;Max, 0.01, 30);
+a.Transpose(&quot;yxz&quot;);
+gr-&gt;CAxis(0, 1);
+gr-&gt;Dens(a,&quot;wyrRk&quot;);
+gr-&gt;Plot(&quot;-x&quot;, &quot;k|&quot;);
+gr-&gt;Puts(mglPoint(0, 0.85), &quot;absorption: (x+z)/2 for x+z&gt;0&quot;);
+gr-&gt;Title(&quot;\\r{Equation:} ik_0\\partial_zu + \\Delta u + x\\cdot u + \
+i \\frac{x+z}{2}\\cdot u = 0&quot;, &quot;iC&quot;, -1.5);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+fill re 'exp(-48*(x+0.7)^2)'
+pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)' re im 0.01 30
+transpose a
+crange 0 1
+dens a 'wyrRk'
+fplot '-x' 'k|'
+text 0 0.85 'absorption: (x+z)/2 for x+z&gt;0' '' -1
+title 'Equation: ik_0\partial_zu + \Delta u + x\cdot u + i \frac{x+z}{2}\cdot u = 0' 'iC' -1.5
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data();
+HMDT re = mgl_create_data_size(128,1,1);
+HMDT im = mgl_create_data_size(128,1,1);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_label(gr,'x', &quot;\\i x&quot;);
+mgl_label(gr,'y', &quot;\\i z&quot;);
+mgl_data_fill_eq(gr,re,&quot;exp(-48*(x+0.7)^2)&quot;, 0, 0);
+a = mgl_pde_solve(gr, &quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;, re, im, 0.01, 30.);
+mgl_data_transpose(a, &quot;yxz&quot;);
+mgl_set_caxis(gr, 0, 1);
+mgl_dens(gr, a,&quot;wyrRk&quot;, -1.);
+mgl_fplot(gr, &quot;-x&quot;, &quot;k|&quot;, 100);
+mgl_puts(gr, 0., 0.85, 0., &quot;absorption: (x+z)/2 for x+z&gt;0&quot;);
+mgl_title(gr, &quot;\\r{Equation:} ik_0\\partial_zu + \\Delta u + x\\cdot u + \
+i \\frac{x+z}{2}\\cdot u = 0&quot;, &quot;iC&quot;, -1.5);
+mgl_delete_data(a);
+mgl_delete_data(im);
+mgl_delete_data(re);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a,re,im, mgl_create_data_size
+a = mgl_create_data()
+re = mgl_create_data_size(128,1,1)
+im = mgl_create_data_size(128,1,1)
+call mgl_axis(gr,'xyz')
+call mgl_label(gr,'x', '\i x')
+call mgl_label(gr,'y', '\i z')
+call mgl_data_fill_eq(gr,re,'exp(-48*(x+0.7)^2)', 0, 0)
+a = mgl_pde_solve(gr, 'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)', re, im, 0.01, 30.)
+call mgl_data_transpose(a, 'yxz')
+call mgl_set_caxis(gr, 0., 1.)
+call mgl_dens(gr, a,'wyrRk', -1.)
+call mgl_fplot(gr, '-x', 'k|', 100)
+call mgl_puts(gr, 0., 0.85, 0., 'absorption: (x+z)/2 for x+z&gt;0')
+call mgl_title(gr, '\r{Equation:} ik_0\partial_zu + \Delta u + x\cdot u + &amp;
+i \frac{x+z}{2}\cdot u = 0', 'iC', -1.5)
+call mgl_delete_data(a)
+call mgl_delete_data(im)
+call mgl_delete_data(re)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a, re, im = mglData(), mglData(128), mglData(128);
+gr.Axis();
+gr.Label('x', &quot;\\i x&quot;);
+gr.Label('y', &quot;\\i z&quot;);
+	
+gr.Fill(re,&quot;exp(-48*(x+0.7)^2)&quot;);
+a = gr.PDE(&quot;p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)&quot;, re, im, 0.01, 30);
+a.Transpose(&quot;yxz&quot;);
+gr.SetCRange(0, 1);
+gr.Dens(a,&quot;wyrRk&quot;);
+gr.Plot(&quot;-x&quot;, &quot;k|&quot;);
+gr.Puts(0, 0.85, 0., &quot;absorption: (x+z)/2 for x+z&gt;0&quot;);
+gr.Title(&quot;\\r{Equation:} ik_0\\partial_zu + \\Delta u + x\\cdot u + \
+i \\frac{x+z}{2}\\cdot u = 0&quot;, &quot;iC&quot;, -1.5);
+</pre><hr size="6">
+<a name="Beam-tracing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#PDE-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Parser-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Beam-tracing-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.10 Beam tracing &ndash; пример использования</h3>
+<a name="index-mglQO2d-1"></a>
+<a name="index-mglRay-2"></a>
+<div class="float">
+<img src="../png/qo2d.png" alt="../png/qo2d">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData r, xx, yy, a, im(128), re(128);
+const char *ham = &quot;p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)&quot;;
+r = mglRay(ham, mglPoint(-0.7, -1), mglPoint(0, 0.5), 0.02, 2);
+gr-&gt;Plot(r.SubData(0), r.SubData(1), &quot;k&quot;);
+gr-&gt;Axis();	gr-&gt;Label('x', &quot;\\i x&quot;);	gr-&gt;Label('y', &quot;\\i z&quot;);
+// now start beam tracing
+re.Fill(&quot;exp(-48*x^2)&quot;, gr-&gt;Min, gr-&gt;Max);
+a = mglQO2d(ham, re, im, r, 1, 30, &amp;xx, &amp;yy);
+gr-&gt;CAxis(0, 1);
+gr-&gt;Dens(xx, yy, a, &quot;wyrRk&quot;);
+gr-&gt;Plot(&quot;-x&quot;, &quot;k|&quot;);
+gr-&gt;Puts(mglPoint(0, 0.85), &quot;absorption: (x+y)/2 for x+y&gt;0&quot;);
+gr-&gt;Puts(mglPoint(0.7, -0.05), &quot;central ray&quot;);
+gr-&gt;Title(&quot;Beam and ray tracing&quot;, &quot;C&quot;, -1.5);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)'
+ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
+plot r(0) r(1) 'k'
+axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+new xx
+new yy
+fill re 'exp(-48*x^2)'
+qo2d a $1 re im r 1 30 xx yy 
+crange 0 1
+dens xx yy a 'wyrRk'
+fplot '-x' 'k|'
+text -0.8 0.85 'absorption: (x+y)/2 for x+y&gt;0' 'L' -1
+text 0.5 -0.05 'central ray' 'L' -1
+title 'Beam and ray tracing' 'C' -1.5
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">const char *ham = &quot;p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)&quot;;
+HMDT r, xx, yy, a, im, re;
+im = mgl_create_data_size(128,1,1);
+re = mgl_create_data_size(128,1,1);
+r = mgl_ray_trace(ham, -0.7, -1., 0., 0., 0.5, 0., 0.02, 2.);
+xx = mgl_data_subdata(r,0,-1,-1);
+yy = mgl_data_subdata(r,1,-1,-1);
+mgl_plot_xy(gr, xx, yy, &quot;k&quot;);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_label(gr,'x',&quot;\\i x&quot;);
+mgl_label(gr,'y',&quot;\\i z&quot;);
+mgl_data_fill_eq(gr,re,&quot;exp(-48*x^2)&quot;, 0, 0);
+a = mgl_qo2d_solve(ham, re, im, r, 1, 30, xx, yy);
+mgl_set_caxis(gr,0.,1.);
+mgl_dens_xy(gr,xx, yy, a, &quot;wyrRk&quot;, -1.);
+mgl_fplot(gr,&quot;-x&quot;, &quot;k|&quot;,100);
+mgl_puts(gr, 0., 0.85, 0., &quot;absorption: (x+y)/2 for x+y&gt;0&quot;);
+mgl_puts(gr, 0.7, -0.05, 0., &quot;central ray&quot;);
+mgl_title(gr, &quot;Beam and ray tracing&quot;, &quot;C&quot;, -1.5);
+mgl_delete_data(a);     mgl_delete_data(r);
+mgl_delete_data(xx);    mgl_delete_data(yy);
+mgl_delete_data(im);    mgl_delete_data(re);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer r, xx, yy, a, im, re, mgl_create_data_size
+integer mgl_data_subdata, mgl_ray_trace, mgl_qo2d_solve
+character*64 ham
+ham = 'p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)'
+im = mgl_create_data_size(128,1,1)
+re = mgl_create_data_size(128,1,1)
+r = mgl_ray_trace(ham, -0.7, -1., 0., 0., 0.5, 0., 0.02, 2.)
+xx = mgl_data_subdata(r,0,-1,-1)
+yy = mgl_data_subdata(r,1,-1,-1)
+call mgl_plot_xy(gr, xx, yy, 'k')
+call mgl_axis(gr,'xyz')
+call mgl_label(gr,'x','\i x')
+call mgl_label(gr,'y','\i z')
+call mgl_data_fill_eq(gr,re,'exp(-48*x^2)', 0, 0)
+a = mgl_qo2d_solve(ham, re, im, r, 1., 30., xx, yy)
+call mgl_set_caxis(gr,0.,1.)
+call mgl_dens_xy(gr,xx, yy, a, 'wyrRk', -1.)
+call mgl_fplot(gr,'-x', 'k|',100)
+call mgl_puts(gr, 0., 0.85, 0., 'absorption: (x+y)/2 for x+y&gt;0')
+call mgl_puts(gr, 0.7, -0.05, 0., 'central ray')
+call mgl_title(gr, 'Beam and ray tracing', 'C', -1.5)
+call mgl_delete_data(a)
+call mgl_delete_data(r)
+call mgl_delete_data(xx)
+call mgl_delete_data(yy)
+call mgl_delete_data(im)
+call mgl_delete_data(re)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">ham = &quot;p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)&quot;;
+r, xx, yy, a = mglData(), mglData(), mglData(), mglData();
+im, re = mglData(128), mglData(128);
+r = mglRay(ham, mglPoint(-0.7, -1), mglPoint(0, 0.5), 0.02, 2);
+gr.Plot(r.SubData(0), r.SubData(1), &quot;k&quot;);
+gr.Axis();	gr.Label('x', &quot;\\i x&quot;);	gr.Label('y', &quot;\\i z&quot;);
+gr.Fill(re,&quot;exp(-48*x^2)&quot;);
+a = mglQO2d(ham, re, im, r, 1, 30, xx, yy);
+gr.SetCRange(0, 1);
+gr.Dens(xx, yy, a, &quot;wyrRk&quot;);
+gr.Plot(&quot;-x&quot;, &quot;k|&quot;);
+gr.Puts(0, 0.85, 0, &quot;absorption: (x+y)/2 for x+y&gt;0&quot;);
+gr.Puts(0.7, -0.05, 0, &quot;central ray&quot;);
+gr.Title(&quot;Beam and ray tracing&quot;, &quot;C&quot;, -1.5);
+</pre><hr size="6">
+<a name="Parser-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Beam-tracing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Manual-ticks-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Parser-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.11 Parser &ndash; пример использования</h3>
+<a name="index-mglParse-2"></a>
+<div class="float">
+<img src="../png/parser.png" alt="../png/parser">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">float a[100];   // let a_i = sin(4*pi*x), x=0...1
+for(int i=0;i&lt;100;i++) a[i]=sin(4*M_PI*i/99);
+mglParse *parser = new mglParse;
+mglData &amp;d = (parser-&gt;AddVar(&quot;dat&quot;))-&gt;d;
+d.Set(a,100);   // set data to variable
+parser-&gt;Execute(gr, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+// you may break script at any line do something
+// and continue after that
+parser-&gt;Execute(gr, &quot;xlabel 'x'\nylabel 'y'\nbox&quot;);
+// also you may use cycles or conditions in script
+parser-&gt;Execute(gr, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">float a[100];   /* let a_i = sin(4*pi*x), x=0...1 */
+int i;
+for(i=0;i&lt;100;i++)  a[i]=sin(4*M_PI*i/99);
+HMPR parser = mgl_create_parser();
+HMDT d = mgl_add_var(parser, &quot;dat&quot;);
+mgl_data_set_float(d,a,100,1,1);    /* set data to variable */
+mgl_parse_text(gr, parser, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+/* you may break script at any line do something 
+   and continue after that */
+mgl_parse_text(gr, parser, &quot;xlabel 'x'\nylabel 'y'&quot;);
+/* also you may use cycles or conditions in script */
+mgl_parse_text(gr, parser, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer i,parser,d, mgl_create_data_size, mgl_create_parser
+real a(100)
+! let a_i = sin(4*pi*x), x=0...1
+do i = 1,100
+    a(i)=sin(4*3.1415926*(i-1)/99)
+end do
+parser = mgl_create_parser()
+d = mgl_add_var(parser, &quot;dat&quot;)
+call mgl_data_set_real(d,a,100,1,1)    ! set data to variable
+! I don't know how put new line ('\n') into fortran string
+! So call mgl_parse_text() for each string :(
+call mgl_parse_text(gr, parser, &quot;plot dat; xrange 0 1&quot;)
+call mgl_parse_text(gr, parser, &quot;box&quot;)
+call mgl_parse_text(gr, parser, &quot;axis&quot;)
+! you may break script at any line do something 
+! and continue after that
+call mgl_parse_text(gr, parser, &quot;xlabel 'x'&quot;)
+call mgl_parse_text(gr, parser, &quot;ylabel 'y'&quot;)
+! there is now conditions because I don't know 
+! how to send several string into parser at once :(
+!! also you may use cycles or conditions in script
+!call mgl_parse_text(gr, parser, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;)
+</pre><p><strong>Python</strong>
+You may need to use <code>from numpy import *</code> for defining functions like <code>sin()</code>.
+</p><pre class="verbatim">parser = mglParse();
+dat = parser.AddVar(&quot;dat&quot;);
+dat.Create(100);
+for i in range(100):
+  dat[i] = sin(4*pi*i/99);
+parser.Execute(gr, &quot;plot dat; xrange 0 1\nbox\naxis&quot;);
+# you may break script at any line do something 
+# and continue after that
+parser.Execute(gr, &quot;xlabel 'x'\nylabel 'y'&quot;);
+# also you may use cycles or conditions in script
+parser.Execute(gr, &quot;for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext&quot;);
+</pre><hr size="6">
+<a name="Manual-ticks-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Parser-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ColumnPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_043e_0431_044be-_043ce_0442_043a_0438-_043f_043e-_043e_0441ya_043c"></a>
+<h3 class="subsection">9.7.12 Особые метки по осям</h3>
+<a name="index-SetTicksVal-4"></a>
+<div class="float">
+<img src="../png/tval.png" alt="../png/tval">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;Axis(mglPoint(-M_PI, 0), mglPoint(M_PI, 2));
+gr-&gt;SetTicksVal('x', 6, -M_PI, &quot;-\\pi&quot;, -M_PI/2, &quot;-\\pi/2&quot;, 0., &quot;0&quot;, 
+                0.886, &quot;x^*&quot;, M_PI/2, &quot;\\pi/2&quot;, M_PI, &quot;\\pi&quot;);
+gr-&gt;Axis();     gr-&gt;Grid();
+gr-&gt;Plot(&quot;2*cos(x^2)^2&quot;, &quot;r2&quot;, NAN, 300);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">axis -pi 0 pi 2
+xtick -pi '-\pi' -1.571 '-\pi/2' 0 '0' 0.886 'x^*' 1.571 '\pi/2' pi '\pi'
+axis 
+grid
+fplot '2*cos(x^2)^2' 'r2' nan 300
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">mgl_set_axis_2d(gr, -M_PI, 0, M_PI, 2);
+mgl_set_ticks_val(gr, 'x', 6, -M_PI, &quot;-\\pi&quot;, -M_PI/2, &quot;-\\pi/2&quot;,
+            0., &quot;0&quot;, 0.886, &quot;x^*&quot;, M_PI/2, &quot;\\pi/2&quot;, M_PI, &quot;\\pi&quot;);
+mgl_axis(gr,&quot;xyz&quot;);
+mgl_axis_grid(gr,&quot;xyz&quot;, &quot;B-&quot;);
+mgl_fplot(gr, &quot;2*cos(x^2)^2&quot;, &quot;r2&quot;, 300);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">gr.SetRanges(-pi, pi, 0, 2);
+parser = mglParse();
+# very &quot;stupid&quot; way because SWIG not support variable arguments
+parser.Execute(gr, &quot;xtick -pi '-\pi' -1.571 '-\pi/2' 0 '0' &quot;
+                    &quot;0.886 'x^*' 1.571 '\pi/2' pi '\pi'&quot;);
+gr.Axis();     gr.Grid();
+gr.Plot(&quot;2*cos(x^2)^2&quot;, &quot;r2&quot;, 300);
+</pre><hr size="6">
+<a name="ColumnPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Manual-ticks-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#StickPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ColumnPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.13 ColumnPlot &ndash; пример использования</h3>
+<a name="index-SetTicksVal-5"></a>
+<div class="float">
+<img src="../png/column.png" alt="../png/column">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">char str[32];
+for(int i=0;i&lt;4;i++)
+{
+        gr-&gt;ColumnPlot(4,i);
+        gr-&gt;Box();
+        sprintf(str,&quot;Plot %d of 4&quot;,i);
+        gr-&gt;Text(mglPoint(-0.5,0.5),str);
+        sprintf(str,&quot;sin(pi*x+pi*%d/2)&quot;,i);
+        gr-&gt;Plot(str);
+}
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">for $1 0 3
+columnplot 4 $1
+box
+text -0.5 0.5 'Plot $1 of 4'
+fplot 'sin(pi*x+pi*$1/2)'
+next
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">int i;
+char str[32];
+for(i=0;i&lt;4;i++)
+{
+        mgl_columnplot(gr,4,i);
+        mgl_box(gr,1);
+        sprintf(str,&quot;Plot %d of 4&quot;,i);
+        mgl_text(gr,-0.5,0.5,0.,str);
+        sprintf(str,&quot;sin(pi*x+pi*%d/2)&quot;,i);
+        mgl_fplot(gr,str,&quot;&quot;,100);
+}
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="StickPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ColumnPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stereo-image-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="StickPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">9.7.14 StickPlot &ndash; пример использования</h3>
+<a name="index-SetTicksVal-6"></a>
+<div class="float">
+<img src="../png/stick.png" alt="../png/stick">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">gr-&gt;SetRanges(-1, 1, -1, 1, 0, 1);  gr-&gt;Light(true);
+gr-&gt;StickPlot(3, 0, 40, 30);        gr-&gt;Axis(&quot;xyz_&quot;);
+gr-&gt;Surf(&quot;exp(-10*y^2-6*x^2)&quot;);
+gr-&gt;Text(mglPoint(0.2, 0, 1.2), &quot;z=0&quot;, &quot;&quot;, -2);
+gr-&gt;StickPlot(3, 1, 40, 30);        gr-&gt;Axis(&quot;xyz_&quot;);
+gr-&gt;Surf(&quot;exp(-10*y^2/2-6*x^2)/sqrt(2)&quot;);
+gr-&gt;Text(mglPoint(0.2, 0, 1.2), &quot;z=1&quot;, &quot;&quot;, -2);
+gr-&gt;StickPlot(3, 2, 40, 30);        gr-&gt;Axis(&quot;xyz_&quot;);
+gr-&gt;Surf(&quot;exp(-10*y^2/5-6*x^2)/sqrt(5)&quot;);
+gr-&gt;Text(mglPoint(0.2, 0, 1.2), &quot;z=2&quot;, &quot;&quot;, -2);
+gr-&gt;Label('x',&quot;\\tau&quot;, 0);  gr-&gt;Label('y', &quot;\\rho&quot;);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">ranges -1 1 -1 1 0 1:light on
+stickplot 3 0 40 30 : axis 'xyz_'
+fsurf 'exp(-10*y^2-6*x^2)'
+text 0.2 0 1.2 'z=0' '' -2
+stickplot 3 1 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/2-6*x^2)/sqrt(2)'
+text 0.2 0 1.2 'z=1' '' -2
+stickplot 3 2 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/5-6*x^2)/sqrt(5)'
+text 0.2 0 1.2 'z=2' '' -2
+xlabel '\tau' 0 : ylabel '\rho'
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">mgl_set_axis_3d(gr, -1, -1, 0, 1, 1, 1);
+mgl_set_light(gr, 1);
+mgl_stickplot(gr, 3, 0, 40, 30);
+mgl_axis(gr, &quot;xyz_&quot;);
+mgl_fsurf(gr,&quot;exp(-10*y^2-6*x^2)&quot;,&quot;&quot;,100);
+mgl_text(gr, 0.2, 0, 1.2, &quot;z=0&quot;);
+mgl_stickplot(gr, 3, 1, 40, 30);
+mgl_axis(gr, &quot;xyz_&quot;);
+mgl_fsurf(gr,&quot;exp(-10*y^2/2-6*x^2)/sqrt(2)&quot;,&quot;&quot;,100);
+mgl_text(gr, 0.2, 0, 1.2, &quot;z=1&quot;);
+mgl_stickplot(gr, 3, 2, 40, 30);
+mgl_axis(gr, &quot;xyz_&quot;);
+mgl_fsurf(gr,&quot;exp(-10*y^2/5-6*x^2)/sqrt(5)&quot;,&quot;&quot;,100);
+mgl_text(gr, 0.2, 0, 1.2, &quot;z=2&quot;);
+mgl_label(gr,'x',&quot;\\tau&quot;);
+mgl_label(gr,'y', &quot;\\rho&quot;);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Stereo-image-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#StickPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-_0441_0442e_0440e_043e-_0438_0437_043e_0431_0440_0430_0436e_043d_0438ya"></a>
+<h3 class="subsection">9.7.15 Пример стерео изображения</h3>
+<div class="float">
+<img src="../png/stereo.png" alt="../png/stereo">
+</div><p><strong>C++ код</strong>
+</p><pre class="verbatim">mglData a(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;);
+gr-&gt;Light(true);
+gr-&gt;SubPlot(2,1,0);
+gr-&gt;Rotate(40,60+3);
+gr-&gt;Box();   gr-&gt;Surf(a);
+gr-&gt;SubPlot(2,1,1);
+gr-&gt;Rotate(40,60-3);
+gr-&gt;Box();   gr-&gt;Surf(a);
+</pre><p><strong>MGL скрипт</strong>
+</p><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+subplot 2 1 0
+rotate 40 60+3
+box:surf a
+subplot 2 1 1
+rotate 40 60-3
+box:surf a
+</pre><p><strong>C-ый код</strong>
+</p><pre class="verbatim">HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+mgl_set_light(gr,1);
+mgl_subplot(gr,2,1,0);
+mgl_rotate(gr,40.,60.+3.,0.);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_subplot(gr,2,1,1);
+mgl_rotate(gr,40.,60.-3.,0.);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+</pre><p><strong>Fortran</strong>
+</p><pre class="verbatim">integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,&quot;0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))&quot;,0);
+call mgl_set_light(gr,1)
+call mgl_subplot(gr,2,1,0)
+call mgl_rotate(gr,40.,60.+3.,0.)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_subplot(gr,2,1,1)
+call mgl_rotate(gr,40.,60.-3.,0.)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+</pre><p><strong>Python</strong>
+</p><pre class="verbatim">a = mglData(50,40);
+a.Modify(&quot;0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))&quot;);
+gr.Light(True);
+gr.SubPlot(2,1,0);
+gr.Rotate(40,60+3);
+gr.Surf(a);  gr.Box();
+gr.SubPlot(2,1,1);
+gr.Rotate(40,60-3);
+gr.Surf(a);  gr.Box();
+</pre>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_10.html#TeX_002dlike-symbols" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_ru.html/mathgl_ru_abt.html b/texinfo/mathgl_ru.html/mathgl_ru_abt.html
new file mode 100644
index 0000000..02abc7b
--- /dev/null
+++ b/texinfo/mathgl_ru.html/mathgl_ru_abt.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: About This Document</title>
+
+<meta name="description" content="MathGL 1.11: About This Document">
+<meta name="keywords" content="MathGL 1.11: About This Document">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="SEC_About"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1>About This Document</h1>
+<p>
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+</p>
+<p>
+  The buttons in the navigation panels have the following meaning:
+</p>
+<table border="1">
+  <tr>
+    <th> Button </th>
+    <th> Name </th>
+    <th> Go to </th>
+    <th> From 1.2.3 go to</th>
+  </tr>
+  <tr>
+    <td align="center"> [ &lt; ] </td>
+    <td align="center">Back</td>
+    <td>Previous section in reading order</td>
+    <td>1.2.2</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &gt; ] </td>
+    <td align="center">Forward</td>
+    <td>Next section in reading order</td>
+    <td>1.2.4</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &lt;&lt; ] </td>
+    <td align="center">FastBack</td>
+    <td>Beginning of this chapter or previous chapter</td>
+    <td>1</td>
+  </tr>
+  <tr>
+    <td align="center"> [ Up ] </td>
+    <td align="center">Up</td>
+    <td>Up section</td>
+    <td>1.2</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &gt;&gt; ] </td>
+    <td align="center">FastForward</td>
+    <td>Next chapter</td>
+    <td>2</td>
+  </tr>
+  <tr>
+    <td align="center"> [Top] </td>
+    <td align="center">Top</td>
+    <td>Cover (top) of document</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [Contents] </td>
+    <td align="center">Contents</td>
+    <td>Table of contents</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [Index] </td>
+    <td align="center">Index</td>
+    <td>Index</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [ ? ] </td>
+    <td align="center">About</td>
+    <td>About (help)</td>
+    <td> &nbsp; </td>
+  </tr>
+</table>
+
+<p>
+  where the <strong> Example </strong> assumes that the current position is at <strong> Subsubsection One-Two-Three </strong> of a document of the following structure:
+</p>
+
+<ul>
+  <li> 1. Section One
+    <ul>
+      <li>1.1 Subsection One-One
+        <ul>
+          <li>...</li>
+        </ul>
+      </li>
+      <li>1.2 Subsection One-Two
+        <ul>
+          <li>1.2.1 Subsubsection One-Two-One</li>
+          <li>1.2.2 Subsubsection One-Two-Two</li>
+          <li>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp;
+            <strong>&lt;== Current Position </strong></li>
+          <li>1.2.4 Subsubsection One-Two-Four</li>
+        </ul>
+      </li>
+      <li>1.3 Subsection One-Three
+        <ul>
+          <li>...</li>
+        </ul>
+      </li>
+      <li>1.4 Subsection One-Four</li>
+    </ul>
+  </li>
+</ul>
+
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_ru.html/mathgl_ru_toc.html b/texinfo/mathgl_ru.html/mathgl_ru_toc.html
new file mode 100644
index 0000000..991ca34
--- /dev/null
+++ b/texinfo/mathgl_ru.html/mathgl_ru_toc.html
@@ -0,0 +1,454 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>MathGL 1.11: Table of Contents</title>
+
+<meta name="description" content="MathGL 1.11: Table of Contents">
+<meta name="keywords" content="MathGL 1.11: Table of Contents">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="SEC_Contents"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1>Table of Contents</h1>
+<div class="contents">
+
+<ul class="toc">
+  <li><a name="toc-_041e_0431_0437_043e_0440-MathGL" href="mathgl_ru_1.html#Overview">1. Обзор MathGL</a>
+  <ul class="toc">
+    <li><a name="toc-_0417_0430_0447e_043c-_043d_0430_043f_0438_0441_0430_043d_0430-MathGL_003f" href="mathgl_ru_1.html#Why-I-have-written-MathGL_003f">1.1 Зачем написана MathGL?</a></li>
+    <li><a name="toc-_0412_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438-MathGL" href="mathgl_ru_1.html#MathGL-features">1.2 Возможности MathGL</a></li>
+    <li><a name="toc-_0423_0441_0442_0430_043d_043e_0432_043a_0430-MathGL" href="mathgl_ru_1.html#Installation-and-using">1.3 Установка MathGL</a></li>
+    <li><a name="toc-_041e_0441_043d_043e_0432_043d_044be-_043f_0440_0438_043dc_0438_043f_044b" href="mathgl_ru_1.html#General-concepts">1.4 Основные принципы</a>
+    <ul class="toc">
+      <li><a name="toc-_041e_0441_0438-_043a_043e_043e_0440_0434_0438_043d_0430_0442" href="mathgl_ru_1.html#Coordinate-axes">1.4.1 Оси координат</a></li>
+      <li><a name="toc-_0421_0442_0438_043bx-_043b_0438_043d_0438_0439" href="mathgl_ru_1.html#Line-styles">1.4.2 Стиль линий</a></li>
+      <li><a name="toc-C_0432e_0442_043e_0432_0430ya-_0441_0445e_043c_0430" href="mathgl_ru_1.html#Color-scheme">1.4.3 Цветовая схема</a></li>
+      <li><a name="toc-_0421_0442_0438_043bx-_0442e_043a_0441_0442_0430" href="mathgl_ru_1.html#Font-styles">1.4.4 Стиль текста</a></li>
+      <li><a name="toc-_0422e_043a_0441_0442_043e_0432_044be-_0444_043e_0440_043c_0443_043b_044b" href="mathgl_ru_1.html#Textual-formulas">1.4.5 Текстовые формулы</a></li>
+    </ul></li>
+    <li><a name="toc-FAQ-1" href="mathgl_ru_1.html#FAQ">1.5 FAQ</a></li>
+    <li><a name="toc-_0418_043d_0442e_0440_0444e_0439_0441_044b" href="mathgl_ru_1.html#Interfaces">1.6 Интерфейсы</a>
+    <ul class="toc">
+      <li><a name="toc-C-_0438_043d_0442e_0440_0444e_0439_0441" href="mathgl_ru_1.html#C-interface">1.6.1 C интерфейс</a></li>
+      <li><a name="toc-Python-_0438_043d_0442e_0440_0444e_0439_0441" href="mathgl_ru_1.html#Python-interface">1.6.2 Python интерфейс</a></li>
+    </ul></li>
+    <li><a name="toc-_0411_043b_0430g_043e_0434_0430_0440_043d_043e_0441_0442_0438" href="mathgl_ru_1.html#Thanks">1.7 Благодарности</a></li>
+  </ul></li>
+  <li><a name="toc-MathGL-examples" href="mathgl_ru_2.html#Examples">2. MathGL examples</a>
+  <ul class="toc">
+    <li><a name="toc-Basic-usage-1" href="mathgl_ru_2.html#Basic-usage">2.1 Basic usage</a>
+    <ul class="toc">
+      <li><a name="toc-Using-FLTK_002fQt_002fGLUT-window" href="mathgl_ru_2.html#Using-FLTK_002fGLUT-window">2.1.1 Using FLTK/Qt/GLUT window</a></li>
+      <li><a name="toc-Drawing-to-file-1" href="mathgl_ru_2.html#Drawing-to-file">2.1.2 Drawing to file</a></li>
+      <li><a name="toc-Drawing-in-memory-1" href="mathgl_ru_2.html#Drawing-in-memory">2.1.3 Drawing in memory</a></li>
+      <li><a name="toc-Using-QMathGL-1" href="mathgl_ru_2.html#Using-QMathGL">2.1.4 Using QMathGL</a></li>
+    </ul></li>
+    <li><a name="toc-Advanced-usage-1" href="mathgl_ru_2.html#Advanced-usage">2.2 Advanced usage</a>
+    <ul class="toc">
+      <li><a name="toc-Subplots-1" href="mathgl_ru_2.html#Subplots">2.2.1 Subplots</a></li>
+      <li><a name="toc-Axis-and-grids-1" href="mathgl_ru_2.html#Axis-and-grids">2.2.2 Axis and grids</a></li>
+      <li><a name="toc-Curvilinear-coordinates-1" href="mathgl_ru_2.html#Curvilinear-coordinates">2.2.3 Curvilinear coordinates</a></li>
+      <li><a name="toc-Text-printing-example-1" href="mathgl_ru_2.html#Text-printing-example">2.2.4 Text printing example</a></li>
+      <li><a name="toc-Animation-1" href="mathgl_ru_2.html#Animation">2.2.5 Animation</a></li>
+    </ul></li>
+    <li><a name="toc-Data-handling-1" href="mathgl_ru_2.html#Data-handling">2.3 Data handling</a>
+    <ul class="toc">
+      <li><a name="toc-Array-creation-1" href="mathgl_ru_2.html#Array-creation">2.3.1 Array creation</a></li>
+      <li><a name="toc-Data-changing-1" href="mathgl_ru_2.html#Data-changing">2.3.2 Data changing</a></li>
+    </ul></li>
+    <li><a name="toc-Data-plotting-1" href="mathgl_ru_2.html#Data-plotting">2.4 Data plotting</a>
+    <ul class="toc">
+      <li><a name="toc-Plots-for-1D-data-1" href="mathgl_ru_2.html#Plots-for-1D-data">2.4.1 Plots for 1D data</a></li>
+      <li><a name="toc-Plots-for-2D-data-1" href="mathgl_ru_2.html#Plots-for-2D-data">2.4.2 Plots for 2D data</a></li>
+      <li><a name="toc-Plots-for-3D-data-1" href="mathgl_ru_2.html#Plots-for-3D-data">2.4.3 Plots for 3D data</a></li>
+      <li><a name="toc-Surface-transparency-1" href="mathgl_ru_2.html#Surface-transparency">2.4.4 Surface transparency</a></li>
+    </ul></li>
+    <li><a name="toc-C_002fFortran-interface-1" href="mathgl_ru_2.html#C_002fFortran-interface">2.5 C/Fortran interface</a></li>
+    <li><a name="toc-MathGL-and-PyQt-1" href="mathgl_ru_2.html#MathGL-and-PyQt">2.6 MathGL and PyQt</a></li>
+    <li><a name="toc-Hints-1" href="mathgl_ru_2.html#Hints">2.7 Hints</a>
+    <ul class="toc">
+      <li><a name="toc-_0060_0060Compound_0027_0027-graphics-1" href="mathgl_ru_2.html#g_t_0060_0060Compound_0027_0027-graphics">2.7.1 &ldquo;Compound&rdquo; graphics</a></li>
+      <li><a name="toc-Two-axes-in-one-plot-1" href="mathgl_ru_2.html#Two-axes-in-one-plot">2.7.2 Two axes in one plot</a></li>
+      <li><a name="toc-Titles-for-the-plot-1" href="mathgl_ru_2.html#Titles-for-the-plot">2.7.3 Titles for the plot</a></li>
+      <li><a name="toc-Changing-of-the-color-range-1" href="mathgl_ru_2.html#Changing-of-the-color-range">2.7.4 Changing of the color range</a></li>
+      <li><a name="toc-Management-of-a-point-cutting-1" href="mathgl_ru_2.html#Management-of-a-point-cutting">2.7.5 Management of a point cutting</a></li>
+      <li><a name="toc-Vector-field-visualization-1" href="mathgl_ru_2.html#Vector-field-visualization">2.7.6 Vector field visualization</a></li>
+      <li><a name="toc-Several-light-sources-1" href="mathgl_ru_2.html#Several-light-sources">2.7.7 Several light sources</a></li>
+      <li><a name="toc-CutMin-and-CutMax-features-1" href="mathgl_ru_2.html#CutMin-and-CutMax-features">2.7.8 CutMin and CutMax features</a></li>
+      <li><a name="toc-Mapping-visualization-1" href="mathgl_ru_2.html#Mapping-visualization">2.7.9 Mapping visualization</a></li>
+      <li><a name="toc-Log_002dscaled-plot-1" href="mathgl_ru_2.html#Log_002dscaled-plot">2.7.10 Log-scaled plot</a></li>
+      <li><a name="toc-_0060_0060Templates_0027_0027-1" href="mathgl_ru_2.html#g_t_0060_0060Templates_0027_0027">2.7.11 &ldquo;Templates&rdquo;</a></li>
+      <li><a name="toc-Nonlinear-fitting-hints-1" href="mathgl_ru_2.html#Nonlinear-fitting-hints">2.7.12 Nonlinear fitting hints</a></li>
+      <li><a name="toc-PDE-solving-hints-1" href="mathgl_ru_2.html#PDE-solving-hints">2.7.13 PDE solving hints</a></li>
+      <li><a name="toc-MGL-parser-using-1" href="mathgl_ru_2.html#MGL-parser-using">2.7.14 MGL parser using</a></li>
+      <li><a name="toc-Stereo-image-1" href="mathgl_ru_2.html#Stereo-image">2.7.15 Stereo image</a></li>
+    </ul>
+</li>
+  </ul></li>
+  <li><a name="toc-YA_0434_0440_043e-MathGL" href="mathgl_ru_3.html#MathGL-core">3. Ядро MathGL</a>
+  <ul class="toc">
+    <li><a name="toc-_041d_0430_0441_0442_0440_043e_0439_043a_0430-g_0440_0430_0444_0438_043a_0430" href="mathgl_ru_3.html#Graphics-setup">3.1 Настройка графика</a>
+    <ul class="toc">
+      <li><a name="toc-_041f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x" href="mathgl_ru_3.html#Transparency">3.1.1 Прозрачность</a></li>
+      <li><a name="toc-_041e_0441_0432e_0449e_043d_0438e" href="mathgl_ru_3.html#Lighting">3.1.2 Освещение</a></li>
+      <li><a name="toc-_0422_0443_043c_0430_043d" href="mathgl_ru_3.html#Fog">3.1.3 Туман</a></li>
+      <li><a name="toc-_0411_0430_0437_043e_0432_044be-_0440_0430_0437_043ce_0440_044b" href="mathgl_ru_3.html#Default-sizes">3.1.4 Базовые размеры</a></li>
+      <li><a name="toc-_041c_0430_0441_0448_0442_0430_0431_0438_0440_043e_0432_0430_043d_0438e" href="mathgl_ru_3.html#Zooming">3.1.5 Масштабирование</a></li>
+      <li><a name="toc-_041e_0431_0440e_0437_0430_043d_0438e" href="mathgl_ru_3.html#Cutting">3.1.6 Обрезание</a></li>
+      <li><a name="toc-_0428_0440_0438_0444_0442_044b" href="mathgl_ru_3.html#Font-settings">3.1.7 Шрифты</a></li>
+      <li><a name="toc-_041f_0430_043b_0438_0442_0440_0430-_0438-c_0432e_0442_0430" href="mathgl_ru_3.html#Palette-and-colors">3.1.8 Палитра и цвета</a></li>
+      <li><a name="toc-_041e_0431_0440_0430_0431_043e_0442_043a_0430-_043e_0448_0438_0431_043e_043a" href="mathgl_ru_3.html#Error-handling">3.1.9 Обработка ошибок</a></li>
+      <li><a name="toc-_041f_0440_043e_0447_0438e-_043d_0430_0441_0442_0440_043e_0439_043a_0438" href="mathgl_ru_3.html#Other-settings">3.1.10 Прочие настройки</a></li>
+    </ul></li>
+    <li><a name="toc-_041d_0430_0441_0442_0440_043e_0439_043a_0438-_043e_0441e_0439-_043a_043e_043e_0440_0434_0438_043d_0430_0442" href="mathgl_ru_3.html#Axis-settings">3.2 Настройки осей координат</a>
+    <ul class="toc">
+      <li><a name="toc-_041c_0430_0441_0448_0442_0430_0431-_043e_0441e_0439-_043a_043e_043e_0440_0434_0438_043d_0430_0442" href="mathgl_ru_3.html#Ranges-_0028bounding-box_0029">3.2.1 Масштаб осей координат</a></li>
+      <li><a name="toc-_041a_0440_0438_0432_043e_043b_0438_043de_0439_043d_044be-_043a_043e_043e_0440_0434_0438_043d_0430_0442_044b" href="mathgl_ru_3.html#Transformation">3.2.2 Криволинейные координаты</a></li>
+      <li><a name="toc-_041ce_0442_043a_0438-_043e_0441e_0439" href="mathgl_ru_3.html#Ticks">3.2.3 Метки осей</a></li>
+    </ul></li>
+    <li><a name="toc-_041c_0430_0442_0440_0438c_0430-_043f_0440e_043e_0431_0440_0430_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_3.html#Transformation-matrix">3.3 Матрица преобразования</a></li>
+    <li><a name="toc-_042d_043a_0441_043f_043e_0440_0442-_0432-_0444_0430_0439_043b" href="mathgl_ru_3.html#Export-to-file">3.4 Экспорт в файл</a></li>
+    <li><a name="toc-_0420_0438_0441_043e_0432_0430_043d_0438e-_043f_0440_0438_043c_0438_0442_0438_0432_043e_0432-1" href="mathgl_ru_3.html#Primitives-drawing">3.5 Рисование примитивов</a></li>
+    <li><a name="toc-_0412_044b_0432_043e_0434-_0442e_043a_0441_0442_0430" href="mathgl_ru_3.html#Text-printing">3.6 Вывод текста</a></li>
+    <li><a name="toc-_041e_0441_0438-_0438-Colorbar" href="mathgl_ru_3.html#Axis-and-Colorbar">3.7 Оси и Colorbar</a></li>
+    <li><a name="toc-_041bege_043d_0434_0430" href="mathgl_ru_3.html#Legend">3.8 Легенда</a></li>
+    <li><a name="toc-1D-g_0440_0430_0444_0438_043a_0438" href="mathgl_ru_3.html#g_t1D-plotting">3.9 1D графики</a>
+    <ul class="toc">
+      <li><a name="toc-Plot-1" href="mathgl_ru_3.html#Plot">3.9.1 Plot</a></li>
+      <li><a name="toc-Radar-1" href="mathgl_ru_3.html#Radar">3.9.2 Radar</a></li>
+      <li><a name="toc-Tens-1" href="mathgl_ru_3.html#Tens">3.9.3 Tens</a></li>
+      <li><a name="toc-Area-1" href="mathgl_ru_3.html#Area">3.9.4 Area</a></li>
+      <li><a name="toc-Region-1" href="mathgl_ru_3.html#Region">3.9.5 Region</a></li>
+      <li><a name="toc-Stem-1" href="mathgl_ru_3.html#Stem">3.9.6 Stem</a></li>
+      <li><a name="toc-Bars-1" href="mathgl_ru_3.html#Bars">3.9.7 Bars</a></li>
+      <li><a name="toc-Barh-1" href="mathgl_ru_3.html#Barh">3.9.8 Barh</a></li>
+      <li><a name="toc-Chart-1" href="mathgl_ru_3.html#Chart">3.9.9 Chart</a></li>
+      <li><a name="toc-Step-1" href="mathgl_ru_3.html#Step">3.9.10 Step</a></li>
+      <li><a name="toc-Torus-1" href="mathgl_ru_3.html#Torus">3.9.11 Torus</a></li>
+      <li><a name="toc-Tube-1" href="mathgl_ru_3.html#Tube">3.9.12 Tube</a></li>
+      <li><a name="toc-Mark-1" href="mathgl_ru_3.html#Mark">3.9.13 Mark</a></li>
+      <li><a name="toc-TextMark-1" href="mathgl_ru_3.html#TextMark">3.9.14 TextMark</a></li>
+      <li><a name="toc-Error-1" href="mathgl_ru_3.html#Error">3.9.15 Error</a></li>
+      <li><a name="toc-BoxPlot-1" href="mathgl_ru_3.html#BoxPlot">3.9.16 BoxPlot</a></li>
+    </ul></li>
+    <li><a name="toc-2D-g_0440_0430_0444_0438_043a_0438" href="mathgl_ru_3.html#g_t2D-plotting">3.10 2D графики</a>
+    <ul class="toc">
+      <li><a name="toc-Mesh-1" href="mathgl_ru_3.html#Mesh">3.10.1 Mesh</a></li>
+      <li><a name="toc-Fall-1" href="mathgl_ru_3.html#Fall">3.10.2 Fall</a></li>
+      <li><a name="toc-Belt-1" href="mathgl_ru_3.html#Belt">3.10.3 Belt</a></li>
+      <li><a name="toc-Surf-1" href="mathgl_ru_3.html#Surf">3.10.4 Surf</a></li>
+      <li><a name="toc-Boxs-1" href="mathgl_ru_3.html#Boxs">3.10.5 Boxs</a></li>
+      <li><a name="toc-Tile-1" href="mathgl_ru_3.html#Tile">3.10.6 Tile</a></li>
+      <li><a name="toc-Dens-1" href="mathgl_ru_3.html#Dens">3.10.7 Dens</a></li>
+      <li><a name="toc-Cont-1" href="mathgl_ru_3.html#Cont">3.10.8 Cont</a></li>
+      <li><a name="toc-ContF-1" href="mathgl_ru_3.html#ContF">3.10.9 ContF</a></li>
+      <li><a name="toc-ContD-1" href="mathgl_ru_3.html#ContD">3.10.10 ContD</a></li>
+      <li><a name="toc-Axial-1" href="mathgl_ru_3.html#Axial">3.10.11 Axial</a></li>
+      <li><a name="toc-Grad-1" href="mathgl_ru_3.html#Grad">3.10.12 Grad</a></li>
+      <li><a name="toc-Grid-1" href="mathgl_ru_3.html#Grid">3.10.13 Grid</a></li>
+    </ul></li>
+    <li><a name="toc-3D-g_0440_0430_0444_0438_043a_0438" href="mathgl_ru_3.html#g_t3D-plotting">3.11 3D графики</a>
+    <ul class="toc">
+      <li><a name="toc-Surf3-1" href="mathgl_ru_3.html#Surf3">3.11.1 Surf3</a></li>
+      <li><a name="toc-Dens3-1" href="mathgl_ru_3.html#Dens3">3.11.2 Dens3</a></li>
+      <li><a name="toc-Cont3-1" href="mathgl_ru_3.html#Cont3">3.11.3 Cont3</a></li>
+      <li><a name="toc-ContF3-1" href="mathgl_ru_3.html#ContF3">3.11.4 ContF3</a></li>
+      <li><a name="toc-Grid3-1" href="mathgl_ru_3.html#Grid3">3.11.5 Grid3</a></li>
+      <li><a name="toc-Cloud-1" href="mathgl_ru_3.html#Cloud">3.11.6 Cloud</a></li>
+      <li><a name="toc-Beam-1" href="mathgl_ru_3.html#Beam">3.11.7 Beam</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0430_0440_043d_044be-g_0440_0430_0444_0438_043a_0438" href="mathgl_ru_3.html#Dual-plotting">3.12 Парные графики</a>
+    <ul class="toc">
+      <li><a name="toc-SurfC-1" href="mathgl_ru_3.html#SurfC">3.12.1 SurfC</a></li>
+      <li><a name="toc-Surf3C-1" href="mathgl_ru_3.html#Surf3C">3.12.2 Surf3C</a></li>
+      <li><a name="toc-SurfA-1" href="mathgl_ru_3.html#SurfA">3.12.3 SurfA</a></li>
+      <li><a name="toc-Surf3A-1" href="mathgl_ru_3.html#Surf3A">3.12.4 Surf3A</a></li>
+      <li><a name="toc-TileS-1" href="mathgl_ru_3.html#TileS">3.12.5 TileS</a></li>
+      <li><a name="toc-Map-1" href="mathgl_ru_3.html#Map">3.12.6 Map</a></li>
+      <li><a name="toc-STFA-1" href="mathgl_ru_3.html#STFA">3.12.7 STFA</a></li>
+    </ul></li>
+    <li><a name="toc-_0412e_043a_0442_043e_0440_043d_044be-_043f_043e_043bya" href="mathgl_ru_3.html#Vector-fields">3.13 Векторные поля</a>
+    <ul class="toc">
+      <li><a name="toc-Traj-1" href="mathgl_ru_3.html#Traj">3.13.1 Traj</a></li>
+      <li><a name="toc-Vect-1" href="mathgl_ru_3.html#Vect">3.13.2 Vect</a></li>
+      <li><a name="toc-Dew-1" href="mathgl_ru_3.html#Dew">3.13.3 Dew</a></li>
+      <li><a name="toc-Flow-1" href="mathgl_ru_3.html#Flow">3.13.4 Flow</a></li>
+      <li><a name="toc-FlowP-1" href="mathgl_ru_3.html#FlowP">3.13.5 FlowP</a></li>
+      <li><a name="toc-Pipe-1" href="mathgl_ru_3.html#Pipe">3.13.6 Pipe</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0440_043e_0447_0438e-g_0440_0430_0444_0438_043a_0438" href="mathgl_ru_3.html#Other-plotting">3.14 Прочие графики</a>
+    <ul class="toc">
+      <li><a name="toc-DensXYZ-1" href="mathgl_ru_3.html#DensXYZ">3.14.1 DensXYZ</a></li>
+      <li><a name="toc-ContXYZ-1" href="mathgl_ru_3.html#ContXYZ">3.14.2 ContXYZ</a></li>
+      <li><a name="toc-ContFXYZ-1" href="mathgl_ru_3.html#ContFXYZ">3.14.3 ContFXYZ</a></li>
+      <li><a name="toc-Dots-1" href="mathgl_ru_3.html#Dots">3.14.4 Dots</a></li>
+      <li><a name="toc-Crust-1" href="mathgl_ru_3.html#Crust">3.14.5 Crust</a></li>
+      <li><a name="toc-TriPlot-1" href="mathgl_ru_3.html#TriPlot">3.14.6 TriPlot</a></li>
+      <li><a name="toc-TriCont-1" href="mathgl_ru_3.html#TriCont">3.14.7 TriCont</a></li>
+      <li><a name="toc-QuadPlot-1" href="mathgl_ru_3.html#QuadPlot">3.14.8 QuadPlot</a></li>
+      <li><a name="toc-_0413_0440_0430_0444_0438_043a_0438-_0444_0443_043d_043ac_0438_0439" href="mathgl_ru_3.html#Plots-by-formula">3.14.9 Графики функций</a></li>
+      <li><a name="toc-SimplePlot-1" href="mathgl_ru_3.html#SimplePlot">3.14.10 SimplePlot</a></li>
+    </ul></li>
+    <li><a name="toc-Nonlinear-fitting-1" href="mathgl_ru_3.html#Nonlinear-fitting">3.15 Nonlinear fitting</a></li>
+    <li><a name="toc-_0420_0430_0441_043f_0440e_0434e_043be_043d_0438e-_0434_0430_043d_043d_044b_0445" href="mathgl_ru_3.html#Data-distributions">3.16 Распределение данных</a></li>
+    <li><a name="toc-_041a_0430_0434_0440_044b_002f_0410_043d_0438_043c_0430c_0438ya" href="mathgl_ru_3.html#Frames_002fAnimation">3.17 Кадры/Анимация</a></li>
+    <li><a name="toc-IDTF-_0444_0443_043d_043ac_0438_0438" href="mathgl_ru_3.html#IDTF-functions">3.18 IDTF функции</a></li>
+  </ul></li>
+  <li><a name="toc-_041a_043b_0430_0441_0441_044b-_0434_043bya-_043e_0442_0440_0438_0441_043e_0432_043a_0438" href="mathgl_ru_4.html#Plotter-classes">4. Классы для отрисовки</a>
+  <ul class="toc">
+    <li><a name="toc-_041a_043b_0430_0441_0441-mglGraphAB" href="mathgl_ru_4.html#mglGraphAB-class">4.1 Класс mglGraphAB</a></li>
+  </ul></li>
+  <li><a name="toc-_0060_0060_041e_043a_043e_043d_043d_044be_0027_0027-_043a_043b_0430_0441_0441_044b" href="mathgl_ru_5.html#Widget-classes">5. &ldquo;Оконные&rdquo; классы</a>
+  <ul class="toc">
+    <li><a name="toc-_041a_043b_0430_0441_0441-Fl_005fMathGL" href="mathgl_ru_5.html#Fl_005fMathGL-class">5.1 Класс Fl_MathGL</a></li>
+    <li><a name="toc-QMathGL-class-1" href="mathgl_ru_5.html#QMathGL-class">5.2 QMathGL class</a></li>
+  </ul></li>
+  <li><a name="toc-_041a_043b_0430_0441_0441-mglData" href="mathgl_ru_6.html#mglData-class">6. Класс mglData</a>
+  <ul class="toc">
+    <li><a name="toc-_041fe_0440e_043ce_043d_043d_044be" href="mathgl_ru_6.html#Public-variables">6.1 Переменные</a></li>
+    <li><a name="toc-_0421_043e_0437_0434_0430_043d_0438e-_0438-_0443_0434_0430_043be_043d_0438e" href="mathgl_ru_6.html#Create-and-delete">6.2 Создание и удаление</a></li>
+    <li><a name="toc-_0417_0430_043f_043e_043b_043de_043d_0438e-_0434_0430_043d_043d_044b_0445" href="mathgl_ru_6.html#Fill">6.3 Заполнение данных</a></li>
+    <li><a name="toc-_0418_0437_043ce_043de_043d_0438e-_0440_0430_0437_043ce_0440_043e_0432-_0434_0430_043d_043d_044b_0445" href="mathgl_ru_6.html#Rearrange">6.4 Изменение размеров данных</a></li>
+    <li><a name="toc-_0427_0442e_043d_0438e_002f_0441_043e_0445_0440_0430_043de_043d_0438e-_0434_0430_043d_043d_044b_0445" href="mathgl_ru_6.html#File-I_002fO">6.5 Чтение/сохранение данных</a></li>
+    <li><a name="toc-_0421_043e_0437_0434_0430_043d_0438e-_043d_043e_0432_044b_0445-_0434_0430_043d_043d_044b_0445" href="mathgl_ru_6.html#Make-another-data">6.6 Создание новых данных</a></li>
+    <li><a name="toc-_0418_0437_043ce_043de_043d_0438e-_0434_0430_043d_043d_044b_0445" href="mathgl_ru_6.html#Change-data">6.7 Изменение данных</a></li>
+    <li><a name="toc-_0418_043d_0442e_0440_043f_043e_043byac_0438ya" href="mathgl_ru_6.html#Interpolation">6.8 Интерполяция</a></li>
+    <li><a name="toc-_0418_043d_0444_043e_0440_043c_0430c_0438_043e_043d_043d_044be-_0444_0443_043d_043ac_0438_0438" href="mathgl_ru_6.html#Informational-functions">6.9 Информационные функции</a></li>
+    <li><a name="toc-_041e_043fe_0440_0430_0442_043e_0440_044b" href="mathgl_ru_6.html#Operators">6.10 Операторы</a></li>
+    <li><a name="toc-_0413_043b_043e_0431_0430_043bx_043d_044be-_0444_0443_043d_043ac_0438_0438" href="mathgl_ru_6.html#Global-functions">6.11 Глобальные функции</a></li>
+  </ul></li>
+  <li><a name="toc-Other-classes-1" href="mathgl_ru_7.html#Other-classes">7. Other classes</a>
+  <ul class="toc">
+    <li><a name="toc-mglParse-class-1" href="mathgl_ru_7.html#mglParse-class">7.1 mglParse class</a></li>
+    <li><a name="toc-mglFormula-class-1" href="mathgl_ru_7.html#mglFormula-class">7.2 mglFormula class</a></li>
+    <li><a name="toc-mglFont-class-1" href="mathgl_ru_7.html#mglFont-class">7.3 mglFont class</a>
+    <ul class="toc">
+      <li><a name="toc-Format-of-font-files-1" href="mathgl_ru_7.html#Format-of-font-files">7.3.1 Format of font files</a></li>
+    </ul></li>
+    <li><a name="toc-mglColor-class-1" href="mathgl_ru_7.html#mglColor-class">7.4 mglColor class</a></li>
+    <li><a name="toc-mglPoint-class-1" href="mathgl_ru_7.html#mglPoint-class">7.5 mglPoint class</a></li>
+    <li><a name="toc-mglVar-class-1" href="mathgl_ru_7.html#mglVar-class">7.6 mglVar class</a></li>
+    <li><a name="toc-mglCommand-class-1" href="mathgl_ru_7.html#mglCommand-class">7.7 mglCommand class</a></li>
+    <li><a name="toc-mglArg-class-1" href="mathgl_ru_7.html#mglArg-class">7.8 mglArg class</a></li>
+  </ul></li>
+  <li><a name="toc-YA_0437_044b_043a-MGL" href="mathgl_ru_8.html#MGL-interface">8. Язык MGL</a>
+  <ul class="toc">
+    <li><a name="toc-_041d_0430_0441_0442_0440_043e_0439_043a_0430-g_0440_0430_0444_0438_043a_0430-_0028MGL_0029" href="mathgl_ru_8.html#Graphics-setup-_0028MGL_0029">8.1 Настройка графика (MGL)</a>
+    <ul class="toc">
+      <li><a name="toc-_041f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x-_0028MGL_0029" href="mathgl_ru_8.html#Transparency-_0028MGL_0029">8.1.1 Прозрачность (MGL)</a></li>
+      <li><a name="toc-_041e_0441_0432e_0449e_043d_0438e-_0028MGL_0029" href="mathgl_ru_8.html#Lighting-_0028MGL_0029">8.1.2 Освещение (MGL)</a></li>
+      <li><a name="toc-_0422_0443_043c_0430_043d-_0028MGL_0029" href="mathgl_ru_8.html#Fog-_0028MGL_0029">8.1.3 Туман (MGL)</a></li>
+      <li><a name="toc-_0411_0430_0437_043e_0432_044be-_0440_0430_0437_043ce_0440_044b-_0028MGL_0029" href="mathgl_ru_8.html#Default-sizes-_0028MGL_0029">8.1.4 Базовые размеры (MGL)</a></li>
+      <li><a name="toc-_041c_0430_0441_0448_0442_0430_0431_0438_0440_043e_0432_0430_043d_0438e-_0028MGL_0029" href="mathgl_ru_8.html#Zooming-_0028MGL_0029">8.1.5 Масштабирование (MGL)</a></li>
+      <li><a name="toc-_041e_0431_0440e_0437_0430_043d_0438e-_0028MGL_0029" href="mathgl_ru_8.html#Cutting-_0028MGL_0029">8.1.6 Обрезание (MGL)</a></li>
+      <li><a name="toc-_041f_0440_043e_0447_0438e-_043d_0430_0441_0442_0440_043e_0439_043a_0438-_0028MGL_0029" href="mathgl_ru_8.html#Other-settings-_0028MGL_0029">8.1.7 Прочие настройки (MGL)</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0430_0440_0430_043ce_0442_0440_044b-_043e_0441e_0439-_043a_043e_043e_0440_0434_0438_043d_0430_0442-_0028MGL_0029" href="mathgl_ru_8.html#Axis-settings-_0028MGL_0029">8.2 Параметры осей координат (MGL)</a></li>
+    <li><a name="toc-_041c_0430_0442_0440_0438c_0430-_043f_0440e_043e_0431_0440_0430_0437_043e_0432_0430_043d_0438ya-_0028MGL_0029" href="mathgl_ru_8.html#Transformation-matrix-_0028MGL_0029">8.3 Матрица преобразования (MGL)</a></li>
+    <li><a name="toc-_042d_043a_0441_043f_043e_0440_0442-_0432-_0444_0430_0439_043b-_0028MGL_0029" href="mathgl_ru_8.html#Export-to-file-_0028MGL_0029">8.4 Экспорт в файл (MGL)</a></li>
+    <li><a name="toc-_0420_0438_0441_043e_0432_0430_043d_0438e-_043f_0440_0438_043c_0438_0442_0438_0432_043e_0432" href="mathgl_ru_8.html#Primitives-drawing-_0028MGL_0029">8.5 Рисование примитивов</a></li>
+    <li><a name="toc-_0412_044b_0432_043e_0434-_0442e_043a_0441_0442_0430-_0028MGL_0029" href="mathgl_ru_8.html#Text-printing-_0028MGL_0029">8.6 Вывод текста (MGL)</a></li>
+    <li><a name="toc-_041e_0441_0438-_0438-Colorbar-_0028MGL_0029" href="mathgl_ru_8.html#Axis-and-Colorbar-_0028MGL_0029">8.7 Оси и Colorbar (MGL)</a></li>
+    <li><a name="toc-_041bege_043d_0434_0430-_0028MGL_0029" href="mathgl_ru_8.html#Legend-_0028MGL_0029">8.8 Легенда (MGL)</a></li>
+    <li><a name="toc-1D-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029" href="mathgl_ru_8.html#g_t1D-plotting-_0028MGL_0029">8.9 1D графики (MGL)</a></li>
+    <li><a name="toc-2D-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029" href="mathgl_ru_8.html#g_t2D-plotting-_0028MGL_0029">8.10 2D графики (MGL)</a></li>
+    <li><a name="toc-3D-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029" href="mathgl_ru_8.html#g_t3D-plotting-_0028MGL_0029">8.11 3D графики (MGL)</a></li>
+    <li><a name="toc-_041f_0430_0440_043d_044be-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029" href="mathgl_ru_8.html#Dual-plotting-_0028MGL_0029">8.12 Парные графики (MGL)</a></li>
+    <li><a name="toc-_0412e_043a_0442_043e_0440_043d_044be-_043f_043e_043bya-_0028MGL_0029" href="mathgl_ru_8.html#Vector-fields-_0028MGL_0029">8.13 Векторные поля (MGL)</a></li>
+    <li><a name="toc-_041f_0440_043e_0447_0438e-g_0440_0430_0444_0438_043a_0438-_0028MGL_0029" href="mathgl_ru_8.html#Other-plotting-_0028MGL_0029">8.14 Прочие графики (MGL)</a></li>
+    <li><a name="toc-Nonlinear-fitting-_0028MGL_0029-1" href="mathgl_ru_8.html#Nonlinear-fitting-_0028MGL_0029">8.15 Nonlinear fitting (MGL)</a></li>
+    <li><a name="toc-_0421_043e_0437_0434_0430_043d_0438e-_0434_0430_043d_043d_044b_0445-_0028MGL_0029" href="mathgl_ru_8.html#Data-create-_0028MGL_0029">8.16 Создание данных (MGL)</a></li>
+    <li><a name="toc-_0417_0430_043f_043e_043b_043de_043d_0438e-_0434_0430_043d_043d_044b_0445-_0028MGL_0029" href="mathgl_ru_8.html#Data-filling-_0028MGL_0029">8.17 Заполнение данных (MGL)</a></li>
+    <li><a name="toc-_0418_0437_043ce_043de_043d_0438e-_0440_0430_0437_043ce_0440_043e_0432-_0434_0430_043d_043d_044b_0445-_0028MGL_0029" href="mathgl_ru_8.html#Rearrange-data-_0028MGL_0029">8.18 Изменение размеров данных (MGL)</a></li>
+    <li><a name="toc-_0427_0442e_043d_0438e_002f_0441_043e_0445_0440_0430_043de_043d_0438e-_0434_0430_043d_043d_044b_0445-_0028MGL_0029" href="mathgl_ru_8.html#File-I_002fO-_0028MGL_0029">8.19 Чтение/сохранение данных (MGL)</a></li>
+    <li><a name="toc-_0421_043e_0437_0434_0430_043d_0438e-_043d_043e_0432_044b_0445-_0434_0430_043d_043d_044b_0445-_0028MGL_0029" href="mathgl_ru_8.html#Make-another-data-_0028MGL_0029">8.20 Создание новых данных (MGL)</a></li>
+    <li><a name="toc-_0418_0437_043ce_043de_043d_0438e-_0434_0430_043d_043d_044b_0445-_0028MGL_0029" href="mathgl_ru_8.html#Change-data-_0028MGL_0029">8.21 Изменение данных (MGL)</a></li>
+    <li><a name="toc-_041e_043fe_0440_0430_0442_043e_0440_044b-_0028MGL_0029" href="mathgl_ru_8.html#Operators-_0028MGL_0029">8.22 Операторы (MGL)</a></li>
+    <li><a name="toc-_041f_0440_043eg_0440_0430_043c_043c_0438_0440_043e_0432_0430_043d_0438e-_0028MGL_0029" href="mathgl_ru_8.html#Program-flow-_0028MGL_0029">8.23 Программирование (MGL)</a></li>
+    <li><a name="toc-_041e_043fc_0438_0438-_043a_043e_043c_0430_043d_0434-_0028MGL_0029" href="mathgl_ru_8.html#Command-options-_0028MGL_0029">8.24 Опции команд (MGL)</a></li>
+    <li><a name="toc-_0421_0443_0444_0444_0438_043a_0441_044b-_043fe_0440e_043ce_043d_043d_044b_0445" href="mathgl_ru_8.html#Suffixes">8.25 Суффиксы переменных</a></li>
+    <li><a name="toc-_0423_0442_0438_043b_0438_0442_044b-_0434_043bya-MGL" href="mathgl_ru_8.html#Utilities">8.26 Утилиты для MGL</a></li>
+  </ul></li>
+  <li><a name="toc-_041f_0440_0438_043ce_0440_044b-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya-MathGL" href="mathgl_ru_9.html#Samples">9. Примеры использования MathGL</a>
+  <ul class="toc">
+    <li><a name="toc-_041f_0440_0438_043ce_0440_044b-1D-g_0440_0430_0444_0438_043a_043e_0432" href="mathgl_ru_9.html#g_t1D-plotting-samples">9.1 Примеры 1D графиков</a>
+    <ul class="toc">
+      <li><a name="toc-Plot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Plot-sample">9.1.1 Plot &ndash; пример использования</a></li>
+      <li><a name="toc-Radar-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Radar-sample">9.1.2 Radar &ndash; пример использования</a></li>
+      <li><a name="toc-Tens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Tens-sample">9.1.3 Tens &ndash; пример использования</a></li>
+      <li><a name="toc-Area-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Area-sample">9.1.4 Area &ndash; пример использования</a></li>
+      <li><a name="toc-Area-_0441-g_0440_0430_0434_0438e_043d_0442_043d_043e_0439-_0437_0430_043b_0438_0432_043a_043e_0439-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Area-gradient-sample">9.1.5 Area с градиентной заливкой &ndash; пример использования</a></li>
+      <li><a name="toc-Bars-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Bars-sample">9.1.6 Bars &ndash; пример использования</a></li>
+      <li><a name="toc-Bars-_00282-c_0432e_0442_0430_0029-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Bars-2-colors-sample">9.1.7 Bars (2 цвета) &ndash; пример использования</a></li>
+      <li><a name="toc-Bars-_0028_043e_0434_0438_043d-_043d_0430_0434-_0434_0440_0443g_0438_043c_0029-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Bars-above-sample">9.1.8 Bars (один над другим) &ndash; пример использования</a></li>
+      <li><a name="toc-Bars-_0022_0432_043e_0434_043e_043f_0430_0434_0022-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Bars-fall-sample">9.1.9 Bars &quot;водопад&quot; &ndash; пример использования</a></li>
+      <li><a name="toc-Barh-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Barh-sample">9.1.10 Barh &ndash; пример использования</a></li>
+      <li><a name="toc-Step-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Step-sample">9.1.11 Step &ndash; пример использования</a></li>
+      <li><a name="toc-Stem-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Stem-sample">9.1.12 Stem &ndash; пример использования</a></li>
+      <li><a name="toc-Region-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Region-sample">9.1.13 Region &ndash; пример использования</a></li>
+      <li><a name="toc-Region-_0441-g_0440_0430_0434_0438e_043d_0442_043d_043e_0439-_0437_0430_043b_0438_0432_043a_043e_0439-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Region-gradient-sample">9.1.14 Region с градиентной заливкой &ndash; пример использования</a></li>
+      <li><a name="toc-Error-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Error-sample">9.1.15 Error &ndash; пример использования</a></li>
+      <li><a name="toc-BoxPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#BoxPlot-sample">9.1.16 BoxPlot &ndash; пример использования</a></li>
+      <li><a name="toc-Mark-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Mark-sample">9.1.17 Mark &ndash; пример использования</a></li>
+      <li><a name="toc-TextMark-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#TextMark-sample">9.1.18 TextMark &ndash; пример использования</a></li>
+      <li><a name="toc-Tube-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Tube-sample">9.1.19 Tube &ndash; пример использования</a></li>
+      <li><a name="toc-Text-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Text-sample">9.1.20 Text &ndash; пример использования</a></li>
+      <li><a name="toc-Torus-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Torus-sample">9.1.21 Torus &ndash; пример использования</a></li>
+      <li><a name="toc-Chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Chart-sample">9.1.22 Chart &ndash; пример использования</a></li>
+      <li><a name="toc-Pie-chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Pie-chart-sample">9.1.23 Pie chart &ndash; пример использования</a></li>
+      <li><a name="toc-Ring-chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Ring-chart-sample">9.1.24 Ring chart &ndash; пример использования</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0440_0438_043ce_0440_044b-2D-g_0440_0430_0444_0438_043a_043e_0432" href="mathgl_ru_9.html#g_t2D-plotting-samples">9.2 Примеры 2D графиков</a>
+    <ul class="toc">
+      <li><a name="toc-Surf-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Surf-sample">9.2.1 Surf &ndash; пример использования</a></li>
+      <li><a name="toc-Transparent-surface-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Transparent-surface-sample">9.2.2 Transparent surface &ndash; пример использования</a></li>
+      <li><a name="toc-Surface-in-fog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Surface-in-fog-sample">9.2.3 Surface in fog &ndash; пример использования</a></li>
+      <li><a name="toc-Sharp-colors-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Sharp-colors-sample">9.2.4 Sharp colors &ndash; пример использования</a></li>
+      <li><a name="toc-Mesh-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Mesh-sample">9.2.5 Mesh &ndash; пример использования</a></li>
+      <li><a name="toc-Fall-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Fall-sample">9.2.6 Fall &ndash; пример использования</a></li>
+      <li><a name="toc-Belt-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Belt-sample">9.2.7 Belt &ndash; пример использования</a></li>
+      <li><a name="toc-Tile-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Tile-sample">9.2.8 Tile &ndash; пример использования</a></li>
+      <li><a name="toc-Boxs-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Boxs-sample">9.2.9 Boxs &ndash; пример использования</a></li>
+      <li><a name="toc-Dens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Dens-sample">9.2.10 Dens &ndash; пример использования</a></li>
+      <li><a name="toc-Cont-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Cont-sample">9.2.11 Cont &ndash; пример использования</a></li>
+      <li><a name="toc-ContF-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#ContF-sample">9.2.12 ContF &ndash; пример использования</a></li>
+      <li><a name="toc-ContD-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#ContD-sample">9.2.13 ContD &ndash; пример использования</a></li>
+      <li><a name="toc-Axial-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Axial-sample">9.2.14 Axial &ndash; пример использования</a></li>
+      <li><a name="toc-Grad-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Grad-sample">9.2.15 Grad &ndash; пример использования</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0440_0438_043ce_0440_044b-3D-g_0440_0430_0444_0438_043a_043e_0432" href="mathgl_ru_9.html#g_t3D-plotting-samples">9.3 Примеры 3D графиков</a>
+    <ul class="toc">
+      <li><a name="toc-Surf3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Surf3-sample">9.3.1 Surf3 &ndash; пример использования</a></li>
+      <li><a name="toc-Cloud-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Cloud-sample">9.3.2 Cloud &ndash; пример использования</a></li>
+      <li><a name="toc-CloudP-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#CloudP-sample">9.3.3 CloudP &ndash; пример использования</a></li>
+      <li><a name="toc-Dens3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Dens3-sample">9.3.4 Dens3 &ndash; пример использования</a></li>
+      <li><a name="toc-Cont3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Cont3-sample">9.3.5 Cont3 &ndash; пример использования</a></li>
+      <li><a name="toc-ContF3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#ContF3-sample">9.3.6 ContF3 &ndash; пример использования</a></li>
+      <li><a name="toc-Cont-projection-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Cont-projection-sample">9.3.7 Cont projection &ndash; пример использования</a></li>
+      <li><a name="toc-Dens-projection-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Dens-projection-sample">9.3.8 Dens projection &ndash; пример использования</a></li>
+      <li><a name="toc-CutMinMax-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#CutMinMax-sample">9.3.9 CutMinMax &ndash; пример использования</a></li>
+      <li><a name="toc-_0060_0060Isocaps_0027_0027-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Isocaps-sample">9.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></li>
+      <li><a name="toc-CutOff-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#CutOff-sample">9.3.11 CutOff &ndash; пример использования</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0440_0438_043ce_0440_044b-_043f_0430_0440_043d_044b_0445_002f_0432e_043a_0442_043e_0440_043d_044b_0445-g_0440_0430_0444_0438_043a_043e_0432" href="mathgl_ru_9.html#Dual-plotting-samples">9.4 Примеры парных/векторных графиков</a>
+    <ul class="toc">
+      <li><a name="toc-SurfC-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#SurfC-sample">9.4.1 SurfC &ndash; пример использования</a></li>
+      <li><a name="toc-SurfA-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#SurfA-sample">9.4.2 SurfA &ndash; пример использования</a></li>
+      <li><a name="toc-TileS-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#TileS-sample">9.4.3 TileS &ndash; пример использования</a></li>
+      <li><a name="toc-Map-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Map-sample">9.4.4 Map &ndash; пример использования</a></li>
+      <li><a name="toc-Traj-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Traj-sample">9.4.5 Traj &ndash; пример использования</a></li>
+      <li><a name="toc-Vect-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Vect-sample">9.4.6 Vect &ndash; пример использования</a></li>
+      <li><a name="toc-VectL-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#VectL-sample">9.4.7 VectL &ndash; пример использования</a></li>
+      <li><a name="toc-VectC-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#VectC-sample">9.4.8 VectC &ndash; пример использования</a></li>
+      <li><a name="toc-Flow-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Flow-sample">9.4.9 Flow &ndash; пример использования</a></li>
+      <li><a name="toc-Pipe-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Pipe-sample">9.4.10 Pipe &ndash; пример использования</a></li>
+      <li><a name="toc-Dew-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Dew-sample">9.4.11 Dew &ndash; пример использования</a></li>
+      <li><a name="toc-Surf3C-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Surf3C-sample">9.4.12 Surf3C &ndash; пример использования</a></li>
+      <li><a name="toc-Surf3A-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Surf3A-sample">9.4.13 Surf3A &ndash; пример использования</a></li>
+      <li><a name="toc-Vect-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Vect-3D-sample">9.4.14 Vect 3D &ndash; пример использования</a></li>
+      <li><a name="toc-VectL-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#VectL-3D-sample">9.4.15 VectL 3D &ndash; пример использования</a></li>
+      <li><a name="toc-VectC-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#VectC-3D-sample">9.4.16 VectC 3D &ndash; пример использования</a></li>
+      <li><a name="toc-Flow-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Flow-3D-sample">9.4.17 Flow 3D &ndash; пример использования</a></li>
+      <li><a name="toc-Pipe-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Pipe-3D-sample">9.4.18 Pipe 3D &ndash; пример использования</a></li>
+      <li><a name="toc-Crust-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Crust-sample">9.4.19 Crust &ndash; пример использования</a></li>
+      <li><a name="toc-Dots-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Dots-sample">9.4.20 Dots &ndash; пример использования</a></li>
+    </ul></li>
+    <li><a name="toc-_0411_0430_0437_043e_0432_044be-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438" href="mathgl_ru_9.html#Basic-features">9.5 Базовые возможности</a>
+    <ul class="toc">
+      <li><a name="toc-_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-1D-_0434_0430_043d_043d_044b_0445" href="mathgl_ru_9.html#g_t1D-plot-sample">9.5.1 Пример графиков 1D данных</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-2D-_0434_0430_043d_043d_044b_0445" href="mathgl_ru_9.html#g_t2D-plot-sample">9.5.2 Пример графиков 2D данных</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-3D-_0434_0430_043d_043d_044b_0445" href="mathgl_ru_9.html#g_t3D-plot-sample">9.5.3 Пример графиков 3D данных</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_043b_0438_043d_0438_0439-_0438-_043c_0430_0440_043ae_0440_043e_0432" href="mathgl_ru_9.html#Line-styles-sample">9.5.4 Пример стилей линий и маркеров</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_0441_0442_0440e_043b_043e_043a" href="mathgl_ru_9.html#Arrow-styles-sample">9.5.5 Пример стилей стрелок</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_0442e_043a_0441_0442_0430" href="mathgl_ru_9.html#Text-styles-sample">9.5.6 Пример стилей текста</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-TeX-_0444_043e_0440_043c_0443_043b_044b" href="mathgl_ru_9.html#TeX-parsing-sample">9.5.7 Пример TeX формулы</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440_044b-_043d_0430_0447e_0440_0442_0430_043d_0438_0439-_0448_0440_0438_0444_0442_0430" href="mathgl_ru_9.html#Font-faces-sample">9.5.8 Примеры начертаний шрифта</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440_044b-c_0432e_0442_043e_0432" href="mathgl_ru_9.html#Colors-sample">9.5.9 Примеры цветов</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440_044b-c_0432e_0442_043e_0432_044b_0445-_0441_0445e_043c" href="mathgl_ru_9.html#Color-schemes-sample">9.5.10 Примеры цветовых схем</a></li>
+      <li><a name="toc-_041e_0431_044b_0447_043d_0430ya-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x" href="mathgl_ru_9.html#Normal-transparency">9.5.11 Обычная прозрачность</a></li>
+      <li><a name="toc-_0022_0421_0442e_043a_043bya_043d_043d_0430ya_0022-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x" href="mathgl_ru_9.html#Glass_002dlike-transparency">9.5.12 &quot;Стеклянная&quot; прозрачность</a></li>
+      <li><a name="toc-_0022_041b_0430_043c_043f_043e_0432_0430ya_0022-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x" href="mathgl_ru_9.html#Lamp_002dlike-transparency">9.5.13 &quot;Ламповая&quot; прозрачность</a></li>
+    </ul></li>
+    <li><a name="toc-_0414_043e_043f_043e_043b_043d_0438_0442e_043bx_043d_044be-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438" href="mathgl_ru_9.html#Additional-features">9.6 Дополнительные возможности</a>
+    <ul class="toc">
+      <li><a name="toc-Legend-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Legend-sample">9.6.1 Legend &ndash; пример использования</a></li>
+      <li><a name="toc-_0414_043e_0431_0430_0432_043byae_043c-_0441e_0442_043a_0443" href="mathgl_ru_9.html#Adding-mesh-sample">9.6.2 Добавляем сетку</a></li>
+      <li><a name="toc-Surf-_0026-Cont-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Surf-_0026-Cont-sample">9.6.3 Surf &amp; Cont &ndash; пример использования</a></li>
+      <li><a name="toc-Flow-_0026-Dens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Flow-_0026-Dens-sample">9.6.4 Flow &amp; Dens &ndash; пример использования</a></li>
+      <li><a name="toc-_041de_0441_043a_043e_043bx_043a_043e-_0438_0441_0442_043e_0447_043d_0438_043a_043e_0432-_0441_0432e_0442_0430" href="mathgl_ru_9.html#Several-light-sample">9.6.5 Несколько источников света</a></li>
+      <li><a name="toc-_041e_0442_0440_0430_0436e_043d_0438e-_043f_043e_0432e_0440_0445_043d_043e_0441_0442_0438" href="mathgl_ru_9.html#Mirrored-surface-sample">9.6.6 Отражение поверхности</a></li>
+      <li><a name="toc-Cont-_0438-_043f_043e_0434_043f_0438_0441_0438-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Cont-with-labels-sample">9.6.7 Cont и подписи &ndash; пример использования</a></li>
+      <li><a name="toc-Ternary-plot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Ternary-plot-sample">9.6.8 Ternary plot &ndash; пример использования</a></li>
+      <li><a name="toc-_041e_043a_0440_0430_0448_0438_0432_0430_043d_0438e-_043f_043e-_043f_043e_043b_043e_0436e_043d_0438_044e-g_0440_0430_043d_0438" href="mathgl_ru_9.html#Coloring-by-coordinates-sample">9.6.9 Окрашивание по положению грани</a></li>
+      <li><a name="toc-Drops-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Drops-sample">9.6.10 Drops &ndash; пример использования</a></li>
+      <li><a name="toc-_0420_0438_0441_043e_0432_0430_043d_0438e-_043c_043e_043be_043a_0443_043b" href="mathgl_ru_9.html#Molecules-drawing-sample">9.6.11 Рисование молекул</a></li>
+    </ul></li>
+    <li><a name="toc-_0022_041f_0440_043e_0434_0432_0438_043d_0443_0442_044be_0022-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438" href="mathgl_ru_9.html#Advanced-features">9.7 &quot;Продвинутые&quot; возможности</a>
+    <ul class="toc">
+      <li><a name="toc-_041a_0440_0438_0432_043e_043b_0438_043de_0439_043d_044be-_043a_043e_043e_0440_0434_0438_043d_0430_0442_044b-1" href="mathgl_ru_9.html#Curvelinear-coorinates-sample">9.7.1 Криволинейные координаты</a></li>
+      <li><a name="toc-_041de_0441_043a_043e_043bx_043a_043e-_043e_0441e_0439-_043d_0430-_043e_0434_043d_043e_043c-g_0440_0430_0444_0438_043ae" href="mathgl_ru_9.html#g_t2_002daxes-sample">9.7.2 Несколько осей на одном графике</a></li>
+      <li><a name="toc-Semi_002dlog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Semi_002dlog-sample">9.7.3 Semi-log &ndash; пример использования</a></li>
+      <li><a name="toc-Log_002dlog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Log_002dlog-sample">9.7.4 Log-log &ndash; пример использования</a></li>
+      <li><a name="toc-Fitting-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Fitting-sample">9.7.5 Fitting &ndash; пример использования</a></li>
+      <li><a name="toc-Envelop-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Envelop-sample">9.7.6 Envelop &ndash; пример использования</a></li>
+      <li><a name="toc-Sew-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Sew-sample">9.7.7 Sew &ndash; пример использования</a></li>
+      <li><a name="toc-STFA-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#STFA-sample">9.7.8 STFA &ndash; пример использования</a></li>
+      <li><a name="toc-PDE-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#PDE-sample">9.7.9 PDE &ndash; пример использования</a></li>
+      <li><a name="toc-Beam-tracing-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Beam-tracing-sample">9.7.10 Beam tracing &ndash; пример использования</a></li>
+      <li><a name="toc-Parser-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#Parser-sample">9.7.11 Parser &ndash; пример использования</a></li>
+      <li><a name="toc-_041e_0441_043e_0431_044be-_043ce_0442_043a_0438-_043f_043e-_043e_0441ya_043c" href="mathgl_ru_9.html#Manual-ticks-sample">9.7.12 Особые метки по осям</a></li>
+      <li><a name="toc-ColumnPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#ColumnPlot-sample">9.7.13 ColumnPlot &ndash; пример использования</a></li>
+      <li><a name="toc-StickPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mathgl_ru_9.html#StickPlot-sample">9.7.14 StickPlot &ndash; пример использования</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-_0441_0442e_0440e_043e-_0438_0437_043e_0431_0440_0430_0436e_043d_0438ya" href="mathgl_ru_9.html#Stereo-image-sample">9.7.15 Пример стерео изображения</a></li>
+    </ul>
+</li>
+  </ul></li>
+  <li><a name="toc-_0421_0438_043c_0432_043e_043b_044b-TeX" href="mathgl_ru_10.html#TeX_002dlike-symbols">A. Символы TeX</a></li>
+  <li><a name="toc-GNU-Free-Documentation-License" href="mathgl_ru_11.html#Copying-This-Manual">B. GNU Free Documentation License</a></li>
+  <li><a name="toc-_0418_043d_0434e_043a_0441" href="mathgl_ru_12.html#Index">Индекс</a></li>
+</ul>
+</div>
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mathgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_12.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mathgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mathgl_ru.info b/texinfo/mathgl_ru.info
new file mode 100644
index 0000000..04d758d
--- /dev/null
+++ b/texinfo/mathgl_ru.info
@@ -0,0 +1,582 @@
+This is mathgl_ru.info, produced by makeinfo version 4.13 from
+mathgl_ru.texi.
+
+Это документация для MathGL (версии 1.11) - библиотеки классов и
+функций для построения научной графики. Пожалуйста сообщайте о любых
+ошибках в этом руководстве на <mathgl.abalakin at gmail.org>.
+
+   Copyright (C) 2009 Алексей Балакин.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with the Front-Cover Texts
+     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+     below.  A copy of the license is included in the section entitled
+     "GNU Free Documentation License."
+
+     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+     and modify this GNU manual.  Buying copies from the FSF supports
+     it in developing GNU and promoting software freedom."
+
+
+Indirect:
+mathgl_ru.info-1: 1107
+mathgl_ru.info-2: 300827
+mathgl_ru.info-3: 603738
+mathgl_ru.info-4: 900992
+
+Tag Table:
+(Indirect)
+Node: Top1107
+Node: Overview2596
+Node: Why I have written MathGL?3370
+Node: MathGL features5747
+Node: Installation and using11944
+Node: General concepts15721
+Node: Coordinate axes22515
+Node: Line styles27699
+Node: Color scheme32310
+Node: Font styles37711
+Node: Textual formulas44006
+Node: FAQ49025
+Node: Interfaces63620
+Node: C interface65508
+Node: Python interface74206
+Node: Thanks78438
+Node: Examples79175
+Node: Basic usage79831
+Node: Using FLTK/GLUT window81763
+Node: Drawing to file85404
+Node: Drawing in memory88316
+Node: Using QMathGL90585
+Node: Advanced usage92215
+Node: Subplots92688
+Node: Axis and grids94440
+Node: Curvilinear coordinates97680
+Node: Text printing example99405
+Node: Animation102521
+Node: Data handling104751
+Node: Array creation105246
+Node: Data changing107781
+Node: Data plotting110965
+Node: Plots for 1D data112068
+Node: Plots for 2D data114862
+Node: Plots for 3D data118693
+Node: Surface transparency120787
+Node: C/Fortran interface122847
+Node: MathGL and PyQt125873
+Node: Hints128072
+Node: ``Compound'' graphics128938
+Node: Two axes in one plot130834
+Node: Titles for the plot131956
+Node: Changing of the color range132711
+Node: Management of a point cutting133428
+Node: Vector field visualization134599
+Node: Several light sources135239
+Node: CutMin and CutMax features135871
+Node: Mapping visualization137029
+Node: Log-scaled plot138199
+Node: ``Templates''138803
+Node: Nonlinear fitting hints140322
+Node: PDE solving hints141994
+Node: MGL parser using147559
+Node: Stereo image150838
+Node: MathGL core151360
+Node: Graphics setup155113
+Node: Transparency156026
+Node: Lighting160382
+Node: Fog163282
+Node: Default sizes164156
+Node: Zooming168142
+Node: Cutting170624
+Node: Font settings173499
+Node: Palette and colors177431
+Node: Error handling180134
+Node: Other settings183606
+Node: Axis settings185989
+Node: Ranges (bounding box)186784
+Node: Transformation194636
+Node: Ticks198989
+Node: Transformation matrix205707
+Node: Export to file213628
+Node: Primitives drawing222145
+Node: Text printing232826
+Node: Axis and Colorbar243082
+Node: Legend249571
+Node: 1D plotting255355
+Node: Plot257367
+Node: Radar259590
+Node: Tens261079
+Node: Area263564
+Node: Region267000
+Node: Stem269360
+Node: Bars271701
+Node: Barh274802
+Node: Chart277429
+Node: Step279016
+Node: Torus281184
+Node: Tube282574
+Node: Mark285801
+Node: TextMark288365
+Node: Error292905
+Node: BoxPlot295346
+Node: 2D plotting297284
+Node: Mesh299220
+Node: Fall300827
+Node: Belt302782
+Node: Surf304692
+Node: Boxs306406
+Node: Tile308017
+Node: Dens309716
+Node: Cont311513
+Node: ContF314620
+Node: ContD317587
+Node: Axial320540
+Node: Grad323526
+Node: Grid326758
+Node: 3D plotting328320
+Node: Surf3330122
+Node: Dens3332941
+Node: Cont3335652
+Node: ContF3339757
+Node: Grid3343786
+Node: Cloud346266
+Node: Beam349281
+Node: Dual plotting351554
+Node: SurfC352976
+Node: Surf3C354857
+Node: SurfA358036
+Node: Surf3A359961
+Node: TileS363156
+Node: Map365007
+Node: STFA367293
+Node: Vector fields369379
+Node: Traj370395
+Node: Vect372349
+Node: Dew376107
+Node: Flow378185
+Node: FlowP382090
+Node: Pipe386334
+Node: Other plotting390596
+Node: DensXYZ392055
+Node: ContXYZ393863
+Node: ContFXYZ397024
+Node: Dots400108
+Node: Crust401809
+Node: TriPlot403364
+Node: TriCont405554
+Node: QuadPlot408410
+Node: Plots by formula410529
+Node: SimplePlot413540
+Node: Nonlinear fitting414569
+Node: Data distributions428292
+Node: Frames/Animation430547
+Node: IDTF functions433290
+Node: Plotter classes434503
+Node: mglGraphAB class439068
+Node: Widget classes451369
+Node: Fl_MathGL class454040
+Node: QMathGL class456861
+Node: mglData class464909
+Node: Public variables466482
+Node: Create and delete467619
+Node: Fill472544
+Node: Rearrange477977
+Node: File I/O483443
+Node: Make another data488943
+Node: Change data497675
+Node: Interpolation506397
+Node: Informational functions509415
+Node: Operators515971
+Node: Global functions520035
+Node: Other classes528869
+Node: mglParse class529163
+Node: mglFormula class536759
+Node: mglFont class538945
+Node: Format of font files543155
+Node: mglColor class545231
+Node: mglPoint class547593
+Node: mglVar class549711
+Node: mglCommand class550768
+Node: mglArg class551819
+Node: MGL interface552538
+Node: Graphics setup (MGL)561659
+Node: Transparency (MGL)562276
+Ref: alpha563264
+Ref: alphadef563629
+Ref: transparent563836
+Ref: transptype563985
+Node: Lighting (MGL)564873
+Ref: light565753
+Ref: ambient566359
+Node: Fog (MGL)566547
+Ref: fog566714
+Node: Default sizes (MGL)567318
+Ref: barwidth567919
+Ref: marksize568114
+Ref: arrowsize568263
+Ref: linewidth568473
+Ref: ticklen568977
+Ref: tickstl569312
+Node: Zooming (MGL)569716
+Ref: plotfactor570248
+Ref: zoom570764
+Node: Cutting (MGL)571472
+Ref: cut572025
+Node: Other settings (MGL)573328
+Ref: font573519
+Ref: rotatetext573888
+Ref: palette574113
+Ref: meshnum574914
+Ref: axialdir575294
+Node: Axis settings (MGL)575454
+Ref: axis576238
+Ref: ranges576330
+Ref: caxis579388
+Ref: origin579738
+Ref: ternary580070
+Ref: xrange580893
+Ref: yrange580947
+Ref: zrange581001
+Ref: crange581055
+Ref: xtick581861
+Ref: ytick581913
+Ref: ztick581965
+Ref: ctick582017
+Ref: adjust583523
+Node: Transformation matrix (MGL)583841
+Ref: subplot584991
+Ref: inplot586283
+Ref: columnplot587066
+Ref: stickplot587616
+Ref: rotate588133
+Ref: aspect588524
+Ref: perspective588794
+Node: Export to file (MGL)589052
+Ref: write589269
+Ref: setsize589756
+Node: Primitives drawing (MGL)590208
+Ref: clf590593
+Ref: ball590750
+Ref: line590948
+Ref: curve591405
+Ref: facex591944
+Ref: facey592013
+Ref: facez592082
+Ref: sphere593032
+Ref: drop593248
+Ref: cone593963
+Ref: rect594357
+Node: Text printing (MGL)595094
+Ref: text597450
+Ref: title598908
+Ref: fgets599172
+Node: Axis and Colorbar (MGL)599450
+Ref: colorbar600543
+Ref: grid602199
+Ref: box602601
+Ref: xlabel602918
+Ref: ylabel602984
+Ref: zlabel603050
+Ref: tlabel603116
+Node: Legend (MGL)603738
+Ref: legend605176
+Ref: addlegend606020
+Ref: clearlegend606307
+Ref: legendbox606429
+Ref: legendmarks606670
+Node: 1D plotting (MGL)606848
+Ref: plot609449
+Ref: radar609948
+Ref: tens610830
+Ref: area611374
+Ref: region612463
+Ref: stem613303
+Ref: bars613804
+Ref: barh615072
+Ref: chart616402
+Ref: step617653
+Ref: torus618097
+Ref: tube618679
+Ref: mark619328
+Ref: textmark620042
+Ref: error620752
+Ref: boxplot621365
+Node: 2D plotting (MGL)622178
+Ref: surf624796
+Ref: mesh625343
+Ref: fall625779
+Ref: belt626550
+Ref: boxs627151
+Ref: tile627595
+Ref: dens628118
+Ref: cont628698
+Ref: contf629893
+Ref: contd630935
+Ref: axial632113
+Ref: grad633347
+Ref: grid2634103
+Node: 3D plotting (MGL)634465
+Ref: surf3636666
+Ref: dens3637607
+Ref: densa638299
+Ref: cont3638524
+Ref: conta639817
+Ref: contf3640048
+Ref: contfa641212
+Ref: grid3641490
+Ref: grida641974
+Ref: cloud642176
+Ref: beam643038
+Node: Dual plotting (MGL)644185
+Ref: surfc646017
+Ref: surf3c646583
+Ref: surfa647605
+Ref: surf3a648185
+Ref: tiles649228
+Ref: map649851
+Ref: stfa650741
+Node: Vector fields (MGL)651522
+Ref: traj653017
+Ref: vect653850
+Ref: vectc655410
+Ref: vectl656153
+Ref: dew656896
+Ref: flow657643
+Ref: pipe660173
+Node: Other plotting (MGL)661899
+Ref: densx663293
+Ref: densy663293
+Ref: densz663293
+Ref: contz663972
+Ref: conty663972
+Ref: contx663972
+Ref: contfz664661
+Ref: contfy664661
+Ref: contfx664661
+Ref: dots665272
+Ref: crust665771
+Ref: triplot666265
+Ref: tricont667250
+Ref: quadplot668259
+Ref: fplot669211
+Ref: fsurf670010
+Node: Nonlinear fitting (MGL)670826
+Ref: fits673269
+Ref: fit673808
+Ref: putsfit674328
+Node: Data create (MGL)674731
+Ref: new674943
+Ref: var675279
+Ref: list675575
+Ref: copy676839
+Ref: idset677321
+Ref: info677605
+Node: Data filling (MGL)678058
+Ref: fill678275
+Ref: modify679227
+Ref: put680069
+Node: Rearrange data (MGL)681223
+Ref: rearrange681467
+Ref: extend681954
+Ref: transpose682707
+Ref: squeeze682967
+Ref: crop683386
+Ref: delete683598
+Ref: insert684007
+Node: File I/O (MGL)684214
+Ref: read684459
+Ref: readmat685186
+Ref: readall685512
+Ref: save686523
+Ref: readhdf686647
+Ref: savehdf686793
+Ref: import686945
+Ref: export687273
+Node: Make another data (MGL)687849
+Ref: combine688079
+Ref: evaluate688307
+Ref: hist689084
+Ref: momentum690305
+Ref: sum690816
+Ref: max691018
+Ref: min691304
+Ref: resize691502
+Ref: subdata691761
+Ref: trace692298
+Ref: transform692734
+Ref: transforma693666
+Ref: stfad693881
+Ref: pde694383
+Ref: ray696298
+Ref: qo2d697274
+Ref: jacobian698578
+Node: Change data (MGL)699301
+Ref: cumsum699953
+Ref: integrate700099
+Ref: diff700325
+Ref: diff2701564
+Ref: sinfft701782
+Ref: cosfft702016
+Ref: hankel702255
+Ref: swap702495
+Ref: roll702749
+Ref: mirror702980
+Ref: sew703182
+Ref: smooth703492
+Ref: envelop703967
+Ref: normsl704212
+Ref: norm704733
+Node: Operators (MGL)705071
+Ref: multo705253
+Ref: divto705474
+Ref: addto705683
+Ref: subto705914
+Node: Program flow (MGL)706141
+Ref: chdir706592
+Ref: define706674
+Ref: defchr707404
+Ref: defnum707627
+Ref: defpal707853
+Ref: call708116
+Ref: func708506
+Ref: return709053
+Ref: if709147
+Ref: elseif709482
+Ref: else709984
+Ref: endif710171
+Ref: for710283
+Ref: next710867
+Ref: once710953
+Ref: stop711253
+Node: Command options (MGL)711353
+Node: Suffixes714898
+Node: Utilities717334
+Node: Samples719772
+Node: 1D plotting samples722982
+Node: Plot sample723613
+Node: Radar sample724897
+Node: Tens sample725759
+Node: Area sample727052
+Node: Area gradient sample728481
+Node: Bars sample730035
+Node: Bars 2 colors sample731059
+Node: Bars above sample732149
+Node: Bars fall sample733251
+Node: Barh sample734322
+Node: Step sample735335
+Node: Stem sample736640
+Node: Region sample738076
+Node: Region gradient sample739548
+Node: Error sample741114
+Node: BoxPlot sample743792
+Node: Mark sample744734
+Node: TextMark sample746439
+Node: Tube sample748206
+Node: Text sample749742
+Node: Torus sample751568
+Node: Chart sample753003
+Node: Pie chart sample754023
+Node: Ring chart sample755380
+Node: 2D plotting samples756719
+Node: Surf sample757206
+Node: Transparent surface sample758397
+Node: Surface in fog sample759742
+Node: Sharp colors sample761078
+Node: Mesh sample762356
+Node: Fall sample763488
+Node: Belt sample764612
+Node: Tile sample765808
+Node: Boxs sample767004
+Node: Dens sample768335
+Node: Cont sample769426
+Node: ContF sample770656
+Node: ContD sample771986
+Node: Axial sample773371
+Node: Grad sample774672
+Node: 3D plotting samples775828
+Node: Surf3 sample776257
+Node: Cloud sample777583
+Node: CloudP sample778877
+Node: Dens3 sample779922
+Node: Cont3 sample781390
+Node: ContF3 sample782563
+Node: Cont projection sample783845
+Node: Dens projection sample785688
+Node: CutMinMax sample787525
+Node: Isocaps sample789099
+Node: CutOff sample791090
+Node: Dual plotting samples792723
+Node: SurfC sample793334
+Node: SurfA sample795029
+Node: TileS sample796838
+Node: Map sample798354
+Node: Traj sample801414
+Node: Vect sample803821
+Node: VectL sample805341
+Node: VectC sample806871
+Node: Flow sample808401
+Node: Pipe sample809929
+Node: Dew sample811558
+Node: Surf3C sample813164
+Node: Surf3A sample814900
+Node: Vect 3D sample816641
+Node: VectL 3D sample819471
+Node: VectC 3D sample822311
+Node: Flow 3D sample825151
+Node: Pipe 3D sample827990
+Node: Crust sample830924
+Node: Dots sample831969
+Node: Basic features832905
+Node: 1D plot sample833413
+Node: 2D plot sample834802
+Node: 3D plot sample836462
+Node: Line styles sample837622
+Node: Arrow styles sample840571
+Node: Text styles sample843087
+Node: TeX parsing sample844281
+Node: Font faces sample844760
+Node: Colors sample845787
+Node: Color schemes sample851228
+Node: Normal transparency854863
+Node: Glass-like transparency855841
+Node: Lamp-like transparency856837
+Node: Additional features857797
+Node: Legend sample858308
+Node: Adding mesh sample860431
+Node: Surf & Cont sample863104
+Node: Flow & Dens sample864486
+Node: Several light sample866527
+Node: Mirrored surface sample868334
+Node: Cont with labels sample870543
+Node: Ternary plot sample871660
+Node: Coloring by coordinates sample875136
+Node: Drops sample876380
+Node: Molecules drawing sample879190
+Node: Advanced features882128
+Node: Curvelinear coorinates sample882643
+Node: 2-axes sample887071
+Node: Semi-log sample889293
+Node: Log-log sample891214
+Node: Fitting sample893565
+Node: Envelop sample896381
+Node: Sew sample897464
+Node: STFA sample898811
+Node: PDE sample900992
+Node: Beam tracing sample904002
+Node: Parser sample907797
+Node: Manual ticks sample910631
+Node: ColumnPlot sample911915
+Node: StickPlot sample912878
+Node: Stereo image sample914638
+Node: TeX-like symbols916304
+Node: Copying This Manual951654
+Node: Index974081
+
+End Tag Table
+
+
+Local Variables:
+coding: utf-8
+End:
diff --git a/texinfo/mathgl_ru.info-1 b/texinfo/mathgl_ru.info-1
new file mode 100644
index 0000000..1353b0d
--- /dev/null
+++ b/texinfo/mathgl_ru.info-1
@@ -0,0 +1,5224 @@
+This is mathgl_ru.info, produced by makeinfo version 4.13 from
+mathgl_ru.texi.
+
+Это документация для MathGL (версии 1.11) - библиотеки классов и
+функций для построения научной графики. Пожалуйста сообщайте о любых
+ошибках в этом руководстве на <mathgl.abalakin at gmail.org>.
+
+   Copyright (C) 2009 Алексей Балакин.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with the Front-Cover Texts
+     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+     below.  A copy of the license is included in the section entitled
+     "GNU Free Documentation License."
+
+     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+     and modify this GNU manual.  Buying copies from the FSF supports
+     it in developing GNU and promoting software freedom."
+
+
+File: mathgl_ru.info,  Node: Top,  Next: Overview,  Up: (dir)
+
+MathGL
+******
+
+Это документация для MathGL (версии 1.11) - библиотеки классов и
+функций для построения научной графики. Пожалуйста сообщайте о любых
+ошибках в этом руководстве на <mathgl.abalakin at gmail.org>.
+Дополнительную информацию о MathGL можно найти на домашней странице
+проекта `http://mathgl.sourceforge.net/'.
+
+   Copyright (C) 2009 Алексей Балакин.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with the Front-Cover Texts
+     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+     below.  A copy of the license is included in the section entitled
+     "GNU Free Documentation License."
+
+     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+     and modify this GNU manual.  Buying copies from the FSF supports
+     it in developing GNU and promoting software freedom."
+
+* Menu:
+
+* Overview::
+* Examples::
+* MathGL core::
+* Plotter classes::
+* Widget classes::
+* mglData class::
+* Other classes::
+* MGL interface::
+* Samples::
+* TeX-like symbols::
+* Copying This Manual::
+* Index::
+
+
+File: mathgl_ru.info,  Node: Overview,  Next: Examples,  Up: Top
+
+1 Обзор MathGL
+*******************
+
+MathGL это ...
+   * библиотека для создания высококачественной научной графики под
+     Linux и Windows;
+
+   * библиотека для быстрого обработки и отображения больших массивов
+     данных;
+
+   * библиотека для работы в оконном и консольном режимах;
+
+   * библиотека с большим набором базовых типов графиков.
+
+* Menu:
+
+* Why I have written MathGL?::
+* MathGL features::
+* Installation and using::
+* General concepts::
+* FAQ::
+* Interfaces::
+* Thanks::
+
+
+File: mathgl_ru.info,  Node: Why I have written MathGL?,  Next: MathGL features,  Up: Overview
+
+1.1 Зачем написана MathGL?
+=======================================
+
+Код для создания качественной научной графики на различных платформах.
+Код для быстрой обработки и отображения больших массивов данных. Код
+для работы в графическом и консольном режимах и легкого интегрирования
+в другие программы. Код с большим обновляемым набором графиков и
+инструментами обработки данных. Именно такого кода мне не хватало в
+последние годы при работе на персональных компьютерах и на кластерах. И
+именно такой код я постарался создать в библиотеке MathGL.
+
+   На данный момент (версия 1.11) MathGL это более 20000 строк кода,
+более 40 основных типов графиков для одно-, двух- и трехмерных
+массивов, возможность экспорта в растровые и векторные (EPS или SVG)
+файлы, интерфейс для OpenGL и возможность запуска в консольном режиме,
+функции для обработки данных и даже простейший командный
+(интерпретируемый) язык MGL для упрощения построения графиков. Кроме
+того, есть несколько типов прозрачности, гладкое освещение, векторные
+шрифты, TeX-ие команды в надписях, произвольные криволинейные системы
+координат и прочие полезные мелочи (см. раздел pictures на домашней
+странице (http://mathgl.sf.net/)). Ну, и, естественно, полная
+переносимость библиотеки и ее свободное распространение под лицензией
+GPL v.2.0 или более поздней.
+
+
+File: mathgl_ru.info,  Node: MathGL features,  Next: Installation and using,  Prev: Why I have written MathGL?,  Up: Overview
+
+1.2 Возможности MathGL
+=================================
+
+Библиотека MathGL позволяет строить широкий класс графиков, включая:
+   * рисование одномерных массивов (Plot, Area, Bars, Step, Stem,
+     Torus, Chart, Error, Tube, Mark, *note 1D plotting::);
+
+   * рисование двумерных массивов (Mesh, Surf, Dens, Cont, ContF, Boxs,
+     Axial, Fall, Belt, Tile, *note 2D plotting::);
+
+   * рисование трехмерных массивов (Surf3, Dens3, Cont3, ContF3,
+     Cloud-like, *note 3D plotting::);
+
+   * рисование нескольких связанных массивов: векторные поля Vect и
+     VectC, линии тока Flow, точечное отображение Map, поверхности с
+     прозрачностью или цветом, определяемым другим массивом SurfA,
+     SurfC, Surf3A, Surf3C (*note Dual plotting::);
+
+   * и другие (см. *note MathGL core::).
+
+   Фактически, я постарался реализовать все известные мне типы научных
+графиков. Список графиков постоянно пополняется, и если Вам нужен
+какой-то новый вариант, пишите на e-mail <mathgl.abalakin at gmail.com>, и
+в новой версии библиотеки этот график появится.
+
+   Я постарался сделать графики максимально красивыми - поверхности
+могут быть прозрачными и освещены произвольно расположенными
+источниками света (максимальное их количество 10). Большинство функций
+рисования имеет два варианта: простой для быстрого построения картинки
+и более сложный для детальной настройки отображения, включающего в том
+числе возможность параметрического задания всех массивов. Получившееся
+изображение можно сохранить в растровом (с помощью классов mglGraphZB,
+mglGraphGL) формате PNG, JPEG, GIF, TIFF или BMP; в векторном EPS или
+SVG формате (с помощью класса mglGraphPS) и в IDTF формате (с помощью
+класса mglGraphIDTF), который можно конвертировать в U3D формат.
+
+   Все надписи выводятся векторным шрифтом, что обеспечивает их хорошую
+масштабируемость и переносимость. Текст может содержать команды для
+большинства ТеХ-их символов, изменения положения (верхний и нижний
+индексы) и стиля шрифта внутри строки текста (*note mglFont class::).
+Текст меток поворачивается вместе с осями. На график можно вывести
+описание кривых (легенду) и поместить надпись в произвольную точку
+экрана или пустить ее вдоль кривой. Поддерживаются произвольные
+кодировки текста (с помощью стандартной функции `setlocale()') и текст
+в кодировке UTF-16.
+
+   Для представления данных используется специальный класс mglData
+(*note mglData class::). Помимо безопасного создания и удаления
+массивов, он включает функции по их обработке (дифференцированию,
+интегрированию, сглаживанию, интерполяции и т.д.) и чтению текстового
+файла с автоматическим определением размеров данных. Класс mglData
+позволяет работать с массивами размерности вплоть до 3 (массивы,
+зависящие от трех независимых индексов a_{ijk}). Использование массивов
+с большим числом размерностей нецелесообразно, поскольку я не
+представляю, как их можно отобразить на экране. Заполнение или
+изменение значений массива можно выполнить как вручную, так и по
+формуле, заданной текстовой строкой.
+
+   Для _быстрого_ вычисления значения выражения, заданного текстовой
+строкой, используется класс mglFormula (*note mglFormula class::). Он
+основан на компиляции строки в древоподобную структуру при создании
+экземпляра класса. На этапе вычисления происходит быстрый обход дерева
+с выдачей результата для конкретных значений переменных. Помимо
+изменения значений массива данных, текстовые формулы используются для
+рисования в _произвольной_ криволинейной системе координат. Набор таких
+координат ограничивается только фантазией пользователя, а не
+фиксированным числом (типа полярной, параболической, цилиндрической и
+т.д.).
+
+
+File: mathgl_ru.info,  Node: Installation and using,  Next: General concepts,  Prev: MathGL features,  Up: Overview
+
+1.3 Установка MathGL
+=============================
+
+Установка библиотеки возможна тремя способами.
+  1. Скомпилировать библиотеку непосредственно из исходных файлов. С
+     библиотекой поставляется стандартный скрипт для autoconf/automake.
+     Для его запуска достаточно в командной строке выполнить 3 команды:
+     сначала `./configure' далее `make' и, наконец, с правами
+     суперпользователя `make install'. Иногда после компиляции
+     библиотеки может потребоваться обновление списка библиотека в
+     системе - выполните команду `ldconfig' с правами суперпользователя.
+
+     Скрипт `./configure' имеет несколько дополнительных опций, которые
+     по умолчанию отключены. К их числу относятся: `--enable-fltk,
+     --enable-glut, --enable-qt' для поддержки FLTK, GLUT и/или Qt
+     окон; `--enable-jpeg, --enable-tiff, --enable-hdf5' для поддержки
+     соответствующих форматов; `--enable-all' для включения всех
+     возможностей. Для использования типа `double' для внутреннего
+     хранения данных используйте опцию `--enable-double'. Для создания
+     интерфейсов к другим языкам (кроме С/Фортран/MGL) используйте
+     опции `--enable-python, --enable-octave' или `--enable-langall'
+     для всех поддерживаемых языков. Полный список опций можно увидеть,
+     выполнив `./configure --help'.
+
+  2. Использовать предварительно скомпилированные файлы - с библиотекой
+     поставляются файлы для MinGW (платформа Win32). В скомпилированной
+     версии достаточно распаковать заголовочные файлы в папку с
+     заголовочными файлами и библиотеку libmgl.a в папку с
+     библиотеками. По умолчанию, скомпилированная версия включают
+     поддержку GSL (www.gsl.org) и PNG. Соответственно, при сборке
+     программы эти библиотеки должны быть установлены (их можно найти
+     на `http://gnuwin32.sf.net').
+
+  3. Установить из стандартных пакетов (RPM, deb, DevPak и пр.).
+
+   При сборке пользовательской программы достаточно указать ключ
+`-lmgl' для компиляции в консольной программе или с использованием
+внешней графической библиотеки. При использовании окон FLTK или GLUT
+надо указать/добавить ключи, включающие соответствующие библиотеки -
+`-lmgl-fltk' или `-lmgl-glut'. Для использования в Фортране
+дополнительно надо указать опцию `-lstdc++' для библиотек C++.
+
+
+File: mathgl_ru.info,  Node: General concepts,  Next: FAQ,  Prev: Installation and using,  Up: Overview
+
+1.4 Основные принципы
+=====================================
+
+Возможности библиотеки MathGL довольно богаты - число только основных
+типов графиков превышает 50 видов. Кроме того, есть функции для
+обработки данных, настройки вида графика и пр. и пр. Тем не менее, я
+старался придерживаться единого стиля в порядке аргументов функций и
+способе их "настройки". В основном все ниже сказанное относится к
+функциям рисования различных графиков.
+
+   Всего основных концепций (базисных идей) шесть:
+  1. *Все рисунки создаются в памяти.* Это могут быть как растровые
+     картинки, так и векторные списки примитивов. Дальнейшая судьба
+     рисунков определяется пользователем: можно сохранить в файл,
+     вывести на экран, создать анимацию/кино, дополнительно
+     отредактировать и т.д. Такой подход обеспечивает высокую
+     переносимость библиотеки - один и тот же программный код создаст в
+     точности одинаковый рисунок на _любой_ операционной системе. Кроме
+     того, при таком подходе рисунки можно создавать непосредственно в
+     консольной программе - графическое окно не нужно!
+
+  2. *Все настройки графиков (стиль линий, цветовые схемы поверхностей,
+     стиль и цвет текста) задаются строками.* Это обеспечивает:
+     удобство для пользователя - короткую строку легче читать и здесь
+     тяжелее ошибиться, чем в большом списке параметров; переносимость
+     - строки выглядят одинаково на всех платформах и не надо
+     заботиться о типе и числе аргументов.
+
+  3. *Все функции имеют "упрощенный" и "продвинутый" варианты.* Сделано
+     опять из-за удобства. В "упрощенном" варианте для построения
+     графика нужны только один-два массив(а) данных, которые
+     автоматически равнораспределяются в заданном диапазоне осей
+     координат. В "продвинутой" версии можно не только указать явно
+     диапазон построения графика, но и задать его параметрически.
+     Последнее позволяет легко строить довольно сложные кривые и
+     поверхности. В обоих вариантах функций порядок аргументов
+     стандартен: сначала идут массивы данных, потом необязательный
+     строковый параметр стиля графика, а далее - второстепенные
+     необязательные параметры для более точной настройки графика.
+
+  4. *Все данные передаются через экземпляры класса mglData.* Такой
+     подход позволяет избежать ошибок при работе с памятью и
+     единообразно передавать данные разных типов (float, double, данные
+     из файла, заполненных пользователем и пр.) в функции рисования.
+
+  5. *Все элементы рисунков векторные.* Изначально библиотека MathGL
+     была ориентированна на работу с научными данными, которые по своей
+     природе векторные (линии, грани, матрицы и т.д.). Поэтому
+     векторность используется во всех рисунках! Причем иногда даже в
+     ущерб производительности (например, при выводе шрифтов). Помимо
+     всего прочего, векторность позволяет легко масштабировать рисунок
+     - измените размер картинки в 2 раза, и рисунок пропорционально
+     растянется.
+
+  6. *Новые графики не удаляют уже нарисованное.* Этот, в чем-то
+     неожиданный, подход позволяет создавать огромное количество
+     "комбинированных" графиков. Например, поверхность с наложенными
+     линиями уровня строится двумя последовательными вызовами функций
+     рисования поверхности и линий уровня (в любом порядке). И
+     совершенно не надо писать специальную функцию (как в Matlab и
+     некоторых других программах) для рисования этого графика. Примеров
+     таких графиков можно привести множество (см. раздел *note Hints::
+     и сайт программы `http://mathgl.sf.net/index.html').
+
+   Кроме основных концепций я хотел бы остановиться на нескольких, как
+оказалось, нетривиальных моментах - способе указания положения графика,
+осей координат и строковых параметров линий, поверхностей, текста.
+
+* Menu:
+
+* Coordinate axes::
+* Line styles::
+* Color scheme::
+* Font styles::
+* Textual formulas::
+
+
+File: mathgl_ru.info,  Node: Coordinate axes,  Next: Line styles,  Up: General concepts
+
+1.4.1 Оси координат
+-------------------------------
+
+Представление системы координат в MathGL состоит из двух частей.
+Вначале координаты нормируются в интервал MINxMAX (*note Axis
+settings::). Если флаг CUT установлен, то точки вне интервала
+отбрасываются, в противном случае, они проецируются на ограничивающий
+параллелепипед (*note Cutting::). Кроме того, отбрасываются точки
+внутри границ, определенных переменными CUTMINxCUTMAX и точки, для
+которых значение функции `CutOff'() не равно нулю. После этого формулы
+перехода в криволинейную систему координат `SetFunc()'применяются к
+каждой точке. Наконец, точка данных отображается с помощью одной из
+графических функций.
+
+   Величины MAX, MIN можно изменять вручную. Однако, после этого
+необходимо вызвать функцию `RecalcBorder()' для настройки графика.
+Более удобный и безопасный путь состоит в вызове функций `Axis(),
+SetRanges()' и др. В последнем случае функция `RecalcBorder()'
+вызывается автоматически. Размеры осей можно задавать и автоматически
+по минимальному и максимальному значениям массива данных. Для этого
+предназначены функции `XRange(), YRange(), ZRange()'. Второй не
+обязательный аргумент указывает, заменять ли новые значения диапазона
+изменения оси координат (по умолчанию) или только расширить уже
+существующий диапазон.
+
+   Точка пересечения осей координат задается переменной ORG и действует
+на последующие вызовы функций рисования осей координат и сетки. По
+умолчанию, если точка пересечения осей координат попадает вне диапазона
+осей координат, то она проецируется на границу области. Изменить такое
+поведение можно, задав AUTOORG=`false'. В случае, если одно из значений
+ORG равно NAN, то соответствующее значение будет выбрано автоматически.
+
+   Кроме привычных осей _x, y, z_ есть еще одна ось - цветовая шкала -
+ось _c_. Она используется при окрашивании поверхностей и задает границы
+изменения функции при окрашивании. При вызове `Axis()' ее границы
+автоматически устанавливаются равными Min.z и Max.z. Возможно и ручное
+изменение границ цветового интервала посредством вызова функции
+`CAxis()' или изменение границ по заданному массиву `CRange()'.
+Используйте `Colorbar()' для отображения цветовой шкалы.
+
+   Вид меток по осям определяется функцией `SetTicks()' (*note Axis
+settings::). Она имеет 3 аргумента: первый D задает шаг меток (если
+положительны) или их число (если отрицательны) или логарифмические
+метки (если равны нулю); второ NS задает число "подметок"; последний
+определяет начальную точку для меток (по умолчанию это точка
+пересечения осей). Функция SETTUNETICKS включает/выключает выделение
+общего множителя (большого или малого факторов в диапазоне) для меток
+осей координат. Наконец, если стандартный вид меток не устраивает
+пользователя, то их шаблон можно задать явно (можно использовать и ТеХ
+символы), воспользовавшись функциями  `SetXTT(), SetYTT(). SetZTT().
+SetCTT()'. Кроме того, в качестве меток можно вывести произвольный
+текст использовав функцию `SetTicksVal()'.
+
+
+File: mathgl_ru.info,  Node: Line styles,  Next: Color scheme,  Prev: Coordinate axes,  Up: General concepts
+
+1.4.2 Стиль линий
+---------------------------
+
+Стиль линии задается строкой, которая может содержать символ цвета
+(`wkrgbcymhRGBCYMHWlenupqLENUPQ'), тип пунктира (`-|;:ji' или пробел),
+ширину линии (`0123456789') и тип маркера (`o+xsd.^v' и модификатор
+`#'). Если пропущен цвет или тип пунктира, то используется значение по
+умолчанию с последним указанным цветом или значение из палитры (для
+*note 1D plotting::).  По умолчанию палитры содержит следующие цвета:
+темно серый `H', синий `b', зеленый `g', красный `r', голубой `c',
+пурпурный `m', yellow `y', серый `h', сине-зеленый `l', небесно-синий
+`n', оранжевый `q', желто-зеленый `e', сине-фиолетовый `u', фиолетовый
+`p'.
+
+   Символы цвета те же, что и в классе mglColor (*note mglColor
+class::): `k' - черный, `r' - красный, `R' - темно красный, `g' -
+зеленый, `G' - темно зеленый, `b' - синий, `B' - темно синий, `c' -
+голубой, `C' - темно голубой, `m' - пурпурный, `M' - темно пурпурный,
+`y' - желтый, `Y' - темно желтый (золотой), `h' - серый, `H' - темно
+серый, `w' - белый, `W' - светло серый, `l' - сине-зеленый, `L' - темно
+сине-зеленый, `e' - желто-зеленый, `E' - темно желто-зеленый, `n' -
+небесно-синий, `N' - темно небесно-синий, `u' - сине-фиолетовый, `U' -
+темно сине-фиолетовый, `p' - фиолетовый, `P' - темно фиолетовый, `q' -
+оранжевый, `Q' - темно оранжевый (коричневый).
+
+   Тип пунктира: пробел - нет линии (для рисования только маркеров),
+`-' - сплошная линия (################), `|' - длинный пунктир
+(########________), `;' - пунктир (####____####____), `=' - короткий
+пунктир (##__##__##__##__), `:' - точки (#___#___#___#___), `j' -
+пунктир с точками  (#######____#____), `i' - мелкий пунктир с точками
+(###__#__###__#__).
+
+   Типы маркеров: `o' - окружность, `+' - крест, `x' - косой крест, `s'
+- квадрат, `d' - ромб, `.' - точка, `^' - треугольник вверх, `v' -
+треугольник вниз, `<' - треугольник влево, `>' - треугольник вправо,
+`#*' - знак Y, `#+' - крест в квадрате, `#x' - косой крест в квадрате,
+`#.' - точка в окружности. Если в строке присутствует символ `#', то
+используются символы с заполнением.
+
+ [image src="../png/sample5.png" ]
+
+Стили линий и маркеров.
+
+   На конце и в начале линии можно выводить специальный символ
+(стрелку), если в строке указать один из символов: `A' - стрелка
+наружу, `V' - стрелка внутрь, `I' - поперечная черта, `K' - стрелка с
+чертой, `T' - треугольник, `S' - квадрат, `D' - ромб, `O' - круг, `_' -
+нет стрелки (по умолчанию). При этом действует следующее правило:
+первый символ определяет стрелку на конце линии, второй символ -
+стрелку в начале линии. Например, `r-A' - красная сплошная линия со
+стрелкой на конце, `b|AI' - синий пунктир со стрелкой на конце и чертой
+вначале, `_O' - линия с текущим стилем и кружком вначале. Эти стили
+действуют и при построении графиков (например, *note 1D plotting::).
+
+ [image src="../png/sampled.png" ]
+
+Стили стрелок.
+
+
+File: mathgl_ru.info,  Node: Color scheme,  Next: Font styles,  Prev: Line styles,  Up: General concepts
+
+1.4.3 Цветовая схема
+---------------------------------
+
+Цветовая схема используется для определения цвета поверхностей, линий
+уровня и пр. Цветовая схема задается строкой _s_, которая содержит
+символы цвета (*note Line styles::) или символы `d#:|'. Символ `d'
+указывает на определение цвета в зависимости от положения точки в
+пространстве, а не по амплитуде данных. Символ `#' переключает
+рисование поверхности на сетчатое (для трехмерных поверхностей) или
+включает рисование сетки на поверхности. Символ `|' отключает
+интерполяцию цвета в цветовой схеме. Это может быть полезно для
+"резких" цветов, например, при рисовании матриц. Если в строке
+встречается символ `:', то он принудительно заканчивает разбор строки
+для стиля поверхности. После этого символа могут идти описание стиля
+текста или оси вращения кривой/линий уровня. Цветовая схема может
+содержать до 32 значений цвета.
+
+   В цветовой схеме можно использовать тональные ("подсвеченные") цвета
+(_не в стиле линий!_). Тональный цвет задается двумя символами: первый
+- обычный цвет, второй - его яркость цифрой. Цифра может быть в
+диапазоне `1'...`9'. При этом `5' соответствует нормальному цвету, `1'
+- очень темная версия цвета (почти черный), `9' - очень светлая версия
+цвета (почти белый). Например цветовая схема может быть `b2b7wr7r2'.
+
+ [image src="../png/colors.png" ]
+
+Цвета и их идентификаторы.
+
+   При определении цвета по _амплитуде_ (наиболее часто используется)
+окончательный цвет определяется путем линейной интерполяции массива
+цветов. Массив цветов формируется из цветов, указанных в строке
+спецификации. Аргумент - амплитуда, нормированная между CMIN - CMAX
+(*note Axis settings::). Например, строка из 4 символов `bcyr'
+соответствует изменению цвета от синего (минимальное значение) через
+голубой и желтый (промежуточные значения) к красному (максимальное
+значение). Строка `kw' соответствует изменению цвета от черного
+(минимальное значение) к белому (максимальное значение). Строка из
+одного символа (например, `g') соответствует однотонному цвету (в
+данному случае зеленому).
+
+   Есть несколько полезных цветовых схем. Строка `kw' дает обычную
+серую (черно-белую) схему, когда большие значения светлее. Строка `wk'
+представляет обратную серую схему, когда большие значения темнее.
+Строки `kRryw', `kGgw', `kBbcw' представляют собой хорошо известные
+схемы _hot_, _summer_ и _winter_. Строки `BbwrR' и `bBkRr' позволяют
+рисовать двухцветные фигуры на белом или черном фоне, когда
+отрицательные значения показаны синим цветом, а положительные -
+красным. Строка `BbcyrR' дает цветовую схему, близкую к хорошо
+известной схеме _jet_.
+
+ [image src="../png/color_schemes.png" ]
+
+Наиболее популярные цветовые схемы.
+
+   При определении цвета по _положению точки в пространстве_
+окончательный цвет определяется по формуле c=x*c[1] + y*c[2] + z*c[3].
+Здесь c[1], c[2], c[3] - первые три цвета в цветовом массиве; x, y, z -
+координаты точки, нормированные на MINxMAX. Такой тип определения цвета
+полезен, например, при построении поверхностей уровня, когда цвет дает
+представление о положении точки в пространстве.
+
+
+File: mathgl_ru.info,  Node: Font styles,  Next: Textual formulas,  Prev: Color scheme,  Up: General concepts
+
+1.4.4 Стиль текста
+-----------------------------
+
+Стиль текста задается строкой, которая может содержать несколько
+символов: тип шрифта (`ribwou') и/или выравнивания (`LRC'), а также
+цвет текста `wkrgbcymhRGBCYMHW' (*note Line styles::) после символа
+`:'. Например, `biC:b' соответствует жирному курсиву с выравниванием по
+центру синего цвета.
+
+   Начертания шрифта: `r' - прямой шрифт, `i' - курсив, `b' - жирный.
+По умолчанию используется прямой шрифт. Типы выравнивания текста: `L' -
+по левому краю (по умолчанию), `C' - по центру, `R' - по правому краю.
+Дополнительные эффекты шрифта: `w' - контурный, `o' - надчеркнутый, `u'
+- подчеркнутый.
+
+   Синтаксический разбор LaTeX-их команд по умолчанию включен. Это
+команды смены стиля текста (например, \b для жирного текста): \a или
+\overline - надчеркивание, \b или \textbf - жирный, \i или \textit -
+курсив, \r или \textrm - прямой (отменяет стили жирного и курсива), \u
+или \underline - подчеркнутый, \w или \wire - контурный, \big -
+большего размера, @ - меньшего размера. Нижний и верхний индексы
+задаются символами `_' и `^'. При этом изменение стиля применяется
+только к следующему символу или к символам в фигурных скобках {},
+которые понимаются как единый блок. Например, сравните строки `sin
+(x^{2^3})' и `sin (x^2^3)'. Можно также менять цвет текста внутри
+строки с помощью команд #? или \color?, где `?' - символ цвета (*note
+Line styles::). Например, слова `Blue' и `red' будут окрашены в
+соответствующий цвет в строке `#b{Blue} and \colorr{red} text'.
+Большинство функций понимает символ новой строки `\n' и позволяет
+выводить много строчный текст. Наконец, можно использовать символы с
+произвольным UTF кодом с помощью команды `\utf0x????'. Например,
+`\utf0x3b1' даст символ \alpha.
+
+   Распознаются также большинство символов TeX и AMSTeX, команды смены
+стиля текста (\textrm, \textbf, \textit, \textsc, \overline,
+\underline), акценты (\hat, \tilde, \dot, \ddot, \acute, \check,
+\grave, \bar, \breve) и корни (\sqrt, \sqrt3, \sqrt4). Полный список
+содержит около 2000 символов. Отмечу, что первый пробел (пробел,
+табуляция и пр.) после команды игнорируется, а все остальные пробелы
+печатаются обычным образом. Например, следующие строки дают одинаковый
+результат \tilde a: `\tilde{a}'; `\tilde a'; `\tilde{}a'.
+
+   В частности, распознаются греческие буквы: \alpha - \alpha, \beta -
+\beta, \gamma - \gamma, \delta - \delta, \epsilon - \epsilon, \eta -
+\eta, \iota - \iota, \chi - \chi, \kappa - \kappa, \lambda - \lambda,
+\mu - \mu, \nu - \nu, o - \o, \omega - \omega, \phi - \phi, \pi - \pi,
+\psi - \psi, \rho - \rho, \sigma - \sigma, \theta - \theta, \tau -
+\tau, \upsilon - \upsilon, \xi - \xi, \zeta - \zeta, \varsigma -
+\varsigma, \varepsilon - \varepsilon, \vartheta - \vartheta, \varphi -
+\varphi, A - \Alpha, B - \Beta, \Gamma - \Gamma, \Delta - \Delta, E -
+\Epsilon, H - \Eta, I - \Iota, C - \Chi, K - \Kappa, \Lambda - \Lambda,
+M - \Mu, N - \Nu, O - \O, \Omega - \Omega, \Phi - \Phi, \Pi - \Pi, \Psi
+- \Psi, R - \Rho, \Sigma - \Sigma, \Theta - \Theta, T - \Tau, \Upsilon
+- \Upsilon, \Xi - \Xi, Z - \Zeta.
+
+   Еще примеры наиболее общеупотребительных TeX-их символов: \angle -
+\angle, \aleph - \aleph, \cdot - \cdot, \clubsuit - \clubsuit, \cup -
+\cup, \cap - \cap, \diamondsuit - \diamondsuit, \diamond - \diamond,
+\div - \div, \downarrow - \downarrow, \dag - \dag, \ddag - \ddag,
+\equiv - \equiv, \exists - \exists, \frown - \frown, \flat - \flat, \ge
+- \ge, \geq - \geq, \gets - \gets, \heartsuit - \heartsuit, \infty -
+\infty, \in - \in, \int - \int, \Im - \Im, \langle - \langle, \le -
+\le, \leq - \leq, \leftarrow - \leftarrow, \mp - \mp, \nabla - \nabla,
+\ne - \ne, \neq - \neq, \natural - \natural, \oint - \oint, \odot -
+\odot, \oplus - \oplus, \partial - \partial, \parallel - \parallel,
+\perp - \perp, \pm - \pm, \propto - \propto, \prod - \prod, \Re - \Re,
+\rightarrow - \rightarrow, \rangle - \rangle, \spadesuit - \spadesuit,
+\sim - \sim, \smile - \smile, \subset - \subset, \supset - \supset,
+\surd - \sqrt or \surd, \S - \S, \sharp - \sharp, \sum - \sum, \times -
+\times, \to - \to, \uparrow - \uparrow, \wp - \wp and so on.
+
+   Размер текста может быть задан явно (если SIZE>0) или относительно
+базового размера шрифта для рисунка |SIZE|*FONTSIZE при SIZE<0.
+Значение SIZE=0 указывает, что соответствующая строка выводиться не
+будет. Базовый размер шрифта измеряется во внутренних единицах.
+Специальные функции `SetFontSizePT(), SetFontSizeCM(), SetFontSizeIN()'
+позволяют задавать его в более "привычных" единицах.
+
+
+File: mathgl_ru.info,  Node: Textual formulas,  Prev: Font styles,  Up: General concepts
+
+1.4.5 Текстовые формулы
+---------------------------------------
+
+MathGL имеет быстрый парсер текстовых формул  (*note mglFormula class::)
+, понимающий большое число функций и операций. Базовые операции: `+' -
+сложение, `-' - вычитание, `*' - умножение, `/' - деление, `^' -
+возведение в целосичленную степень. Также есть логические операции: `<'
+- истина если if x<y, `>' - истина если x>y, `=' - истина если x=y, `&'
+- истина если x и y оба не равны нулю, `|' - истина если x или y не
+нуль. Логические операции имеют наинизший приоритет и возвращают 1 если
+истина или 0 если ложно.
+
+   Базовые функции: `sqrt(x)' - квадратный корень из X, `pow(x,y)' - X
+в степени Y, `ln(x)' - натуральный логарифм X, `lg(x)' - десятичный
+логарифм X, `log(a,x)' - логарифм по основанию A от X, `abs(x)' -
+модуль X, `sign(x)' - знак X, `mod(x,y)' - остаток от деления x на y,
+`step(x)' - ступенчатая функция, `int(x)' - целая часть X, `rnd' -
+случайное число, `pi' - число \pi=3.1415926...
+
+   Тригонометрические функции: `sin(x)', `cos(x)', `tan(x)' (или
+`tg(x)'). Обратные тригонометрические функции: `asin(x)', `acos(x)',
+`atan(x)'. Гиперболические функции: `sinh(x)' (или `sh(x)'), `cosh(x)'
+(или `ch(x)'), `tanh(x)' (или `th(x)'). Обратные гиперболические
+функции: `asinh(x)', `acosh(x)', `atanh(x)'.
+
+   Специальные функции: `gamma(x)' - гамма функция \Gamma(x) =
+\int_0^\infty dt t^{x-1} \exp(-t) , `psi(x)' - дигамма функция \psi(x)
+= \Gamma</samp>&rsquo;(x)/\Gamma(x) для x!=0, `ai(x)' - Эйри функция
+Ai(x), `bi(x)' - Эйри функция Bi(x), `cl(x)' - функция Клаузена,
+`li2(x)' (или `dilog(x)') - дилогарифм Li_2(x) = - \Re \int_0^x ds
+\log(1-s)/s, `sinc(x)' - функция sinc(x) = \sin(\pi x) / (\pi x) для
+любых x, `zeta(x)' - зета функция Римана \zeta(s) = \sum_{k=1}^\infty
+k^{-s} для s!=1, `eta(x)' - эта функция \eta(s) = (1-2^{1-s}) \zeta(s)
+для произвольного s, `lp(l,x)' - полином Лежандра P_l(x), (|x|<=1,
+l>=0), `w0(x)', `w1(x)' - функции Ламберта W. Функции W(x) определены
+как решение уравнения W \exp(W) = x.
+
+   Экспоненциальные интегралы: `ci(x)' - cos-интеграл Ci(x) = \int_0^x
+dt \cos(t)/t, `si(x)' - sin-интеграл Si(x) = \int_0^x dt \sin(t)/t,
+`erf(x)' - функция ошибки erf(x) = (2/\sqrt(\pi)) \int_0^x dt
+\exp(-t^2), `ei(x)' - интеграл Ei(x) := - PV(\int_{-x}^\infty dt
+\exp(-t)/t) (где PV обозначает главное значение), `e1(x)' - интеграл
+E_1(x) := Re \int_1^\infty dt \exp(-xt)/t , `e2(x)' - интеграл E_2(x)
+:= Re \int_1^\infty dt \exp(-xt)/t^2, `ei3(x)' - интеграл Ei_3(x) =
+\int_0^x dt \exp(-t^3) для x>=0.
+
+   Функции Бесселя: `j(nu,x)' - функция Бесселя первого рода, `y(nu,x)'
+- функция Бесселя второго рода, `i(nu,x)' - модифицированная функция
+Бесселя первого рода, `k(nu,x)' - модифицированная функция Бесселя
+второго рода.
+
+   Эллиптические интегралы: `ee(k)' - полный эллиптический интеграл
+E(k) = E(\pi/2, k), `ek(k)' - полный эллиптический интеграл K(k) =
+F(\pi/2, k), `e(phi,k)' - эллиптический интеграл E(\phi,k) =
+\int_0^\phi dt \sqrt((1 - k^2 \sin^2(t))), `f(phi,k)' - эллиптический
+интеграл F(\phi,k) = \int_0^\phi dt 1/\sqrt((1 - k^2 \sin^2(t))).
+
+   Функции Якоби: `sn(u,m)', `cn(u,m)', `dn(u,m)', `sc(u,m)',
+`sd(u,m)', `ns(u,m)', `cs(u,m)', `cd(u,m)', `nc(u,m)', `ds(u,m)',
+`dc(u,m)', `nd(u,m)'.
+
+   Некоторые из функций могут быть недоступны если флаг NO_GSL был
+определен при компиляции библиотеки MathGL.
+
+   При разборе формул нет различия между верхним и нижним регистром.
+Если аргумент лежит вне области определения функции, то возвращается
+NaN.
+
+
+File: mathgl_ru.info,  Node: FAQ,  Next: Interfaces,  Prev: General concepts,  Up: Overview
+
+1.5 FAQ
+=======
+
+*График не рисуется?!*
+     Проверьте, что точки графика находятся внутри ограничивающего
+     параллелепипеда, при необходимости увеличьте его с помощью функции
+     `Axis()'. Проверьте, что размерность массива правильная для
+     выбранного типа графика. Убедитесь, что функция  `Finish()' была
+     вызвана после построения графика (или график был сохранен в файл).
+     Иногда отражение света от плоских поверхностей (типа, `Dens()')
+     может выглядеть как отсутствие графика.
+
+*Не нашел нужного графика?!*
+     Многие "новые" графики можно строить, используя уже существующие
+     функции. Например, поверхность вращения кривой относительно оси
+     можно построить, используя специальную функцию `Torus()', а можно
+     построить как параметрически заданную поверхность `Surf()'. См.
+     также *note Hints:: и *note Examples:: MathGL. Если же нужного
+     типа графика все равно нет, то пишите мне e-mail
+     <mathgl.abalakin at gmail.com> и в следующей версии этот график
+     появится.
+
+*Требуется ли знание сторонних библиотек (например, OpenGL) для использования библиотеки MathGL?*
+     Нет. Библиотека MathGL самодостаточна и не требует знания
+     сторонних библиотек.
+
+*На каком языке написана библиотека? Для каких языков у нее есть интерфейсы?*
+     Ядро библиотеки написано на С++. Кроме него, есть интерфейсы для
+     чистого С, фортрана, паскаля, форта и собственный командный язык
+     MGL. Также есть поддержка большого числа интерпретируемых языков
+     (Python, Java,  ALLEGROCL, CHICKEN, Lisp, CFFI, C#, Guile, Lua,
+     Modula 3, Mzscheme, Ocaml, Octave, Perl, PHP, Pike, R, Ruby, Tcl).
+     Эти интерфейсы написаны с помощью SWIG (и функции чистого С и
+     классы). Однако на данный момент только интерфейсы для Python и
+     Octave включены в скрипты сборки. Причина в том, что я не знаю
+     других языков, чтобы проверить качество интерфейса :(. Замечу, что
+     большинство прочих языков могут использовать С функции напрямую.
+
+*Как мне использовать MathGL с Фортраном?*
+     Библиотеку MathGL можно использовать как есть с компилятором
+     `gfortran' поскольку он использует по умолчанию AT&T нотацию для
+     внешних функций. Для других компиляторов (например, Visual
+     Fortran) необходимо включить использование AT&T нотации вручную.
+     AT&T нотация требует, чтобы имя функции завершалось символом `_',
+     аргументы функции передавались по указателю и длины строк
+     передавались в конце списка аргументов. Например:
+
+     _C функция_ - `void mgl_fplot(HMGL graph, const char *fy, const
+     char *stl, int n);'
+
+     _AT&T функция_ - `void mgl_fplot_(uintptr_t *graph, const char
+     *fy, const char *stl, int *n, int ly, int ls);'
+
+*У меня есть класс Foo и в нем метод рисования Foo::draw(mglGraph *gr). Как мне нарисовать что-то в окне FLTK, GLUT или Qt?*
+     Функции-члены класса в С++ имеют "скрытый" параметр - указатель на
+     экземпляр класса и их прямое использование невозможно. Решением
+     будет определение интерфейсной функции:
+          int foo_draw(mglGraph *gr, void *par)
+          {   ((Foo *)foo)->draw(gr);    }
+     и подстановка именно ее в вызов функции `Window()':
+          gr->Window(argc,argv,foo_draw,"Title",this);
+
+     Можно также наследовать Ваш класс от класса `mglDraw' и
+     использовать функцию типа `gr->Window(argc, argv, foo, "Title");'.
+
+*Как мне вывести текст на русском/испанском/арабском/японском и т.д.?*
+     Стандартный путь состоит в использовании кодировки UTF-8 для
+     вывода текста. Кроме того, все функции вывода текста имеют
+     интерфейс для 8-битных (char *) строк. Однако в последнем случае
+     Вам может потребоваться установить используемую в исходном тексте
+     локаль. Например, для русского языка в кодировке CP1251 можно
+     использовать `setlocale(LC_CTYPE, "ru_RU.cp1251");' (под MS
+     Windows имена локали другие -  `setlocale(LC_CTYPE,
+     "russian_russia.1251")'). Настоятельно не рекомендую использовать
+     константу `LC_ALL', поскольку при этом меняется и формат чисел (в
+     частности, десятичная точка), что может, например, вызвать
+     сложности (неудобство) при написании формул и чтении текстовых
+     файлов. Например, программа ожидает `,' в качестве разделителя
+     целой и дробной части, а пользователь вводит `.'.
+
+*Как мне вырезать (исключить из рисования) точку или область на графике?*
+     Есть три основных способа. Во-первых, можно вырезать точку, задав
+     одну из ее координат равной `NAN'. Во-вторых, можно
+     воспользоваться функцией `SetCutBox()' или `CutOff()' для удаления
+     точек из некоторой области (*note Cutting::). Наконец, можно
+     сделать эти точки прозрачными (невидимыми) с помощью функций
+     `SurfA()', `Surf3A()' (*note Dual plotting::). В последнем случае
+     обеспечивается еще и плавность включения прозрачности.
+
+*Я использую VisualStudio, CBuilder или другой компилятор (не MinGW/gcc). Как мне подключить библиотеку MathGL?*
+     Начиная с версии 1.10, можно использовать заголовочный файл
+     `#include <mgl/mgl_w.h>', содержащий C++ классы только с `inline'
+     функциями. Такие классы должны быть совместимы с любым
+     компилятором. Отмечу, что эти "интерфейсные" классы *не
+     совместимы* с классами в обычных заголовочных файлах и
+     использоваться должны только одни из них! Я рекомендую
+     использовать обычные заголовочные классы для компиляторов GNU
+     (например для MinGW).
+
+*Как мне собрать MathGL под Windows?*
+     Простейший путь - использование комбинации CMake и MinGW. Также
+     Вам может потребоваться дополнительные библиотеки, такие как GSL,
+     PNG, JPEG и пр. Все они могут быть найдены на
+     `http://gnuwin32.sourceforge.net/packages.html'. После установки
+     всех компонент, просто запустите конфигуратор CMake и соберите
+     MathGL командой make.
+
+*Как создать окно FLTK/GLUT/Qt с текущими результатами параллельно с выполнением основных вычислений?*
+     Следует создать отдельный поток для обработки сообщений в окно.
+     Кросс-платформенный путь - использование библиотеки `pthread'.
+     Обновление данных в окне можно выполнить вызовом функции
+     `mglGraphFLTK::Update()'. Пример код имеет вид: //-----------------------------------------------------------------------------
+     #include <mgl/mgl_fltk.h>
+     #include <pthread.h>
+     #include <unistd.h>
+
+     mglPoint pnt;  // some global variable for changable data
+     //-----------------------------------------------------------------------------
+     int sample(mglGraph *gr, void *)
+     {
+       gr->Box();  gr->Line(mglPoint(),pnt,"Ar2"); // just draw a vector
+       return 0;
+     }
+     //-----------------------------------------------------------------------------
+     void *mgl_fltk_tmp(void *)      {       mglFlRun();     return 0;       }
+     int main (int argc, char ** argv)
+     {
+       mglGraphFLTK gr;
+       gr.Window(argc,argv,sample,"test");  // create window
+       static pthread_t tmp;
+       pthread_create(&tmp, 0, mgl_fltk_tmp, 0);
+       pthread_detach(tmp);    // run window handling in the separate thread
+       for(int i=0;i<10;i++)   // do calculation
+       {
+         sleep(1);             // which can be very long
+         pnt = mglPoint(2*mgl_rnd()-1,2*mgl_rnd()-1);
+         gr.Update();          // update window
+       }
+       return 0;   // finish calculations and close the window
+     }
+     //-----------------------------------------------------------------------------
+
+*Сколько человек участвовало в создании библиотеки?*
+     Большую часть библиотеки написал один человек. Это результат
+     примерно года работы на написание ядра библиотеки и базовых
+     функций (в основном вечерами и по выходным). Процесс
+     усовершенствования продолжается и теперь :). Скрипты сборки в
+     основном написаны Д.Кулагиным, а экспорт в IDTF написан
+     М.Видассовым.
+
+*Как мне показать растровую картинку на рисунке?*
+     Можно импортировать ее в экземпляр `mglData' и построить с помощью
+     функции `Dens()'. Например, для черно-белого рисунка можно
+     использовать код: `mglData bmp; bmp.Import("fname.png","wk");
+     gr->Dens(bmp,"wk");'.
+
+*Как использовать MathGL в Qt, FLTK, wxWidgets ...?*
+     Есть специальные классы (виджеты) для этих библиотек: QMathGL для
+     Qt, Fl_MathGL для FLTK и т.д. Если Вы не нашли подходящий класс,
+     то можете создать свой собственный виджет, рисующий растровое
+     изображение из mglGraphAB::GetBits().
+
+*Как мне создать U3D файл (3D in PDF)?*
+     Процедура состоит из двух шагов: создания файла IDTF и его
+     конвертация в U3D. Можно использовать U3D tools
+     (http://sourceforge.net/project/showfiles.php?group_id=152187&package_id=300628)
+     для конвертации IDTF в U3D. Ему требуется библиотека libharu
+     (http://libharu.org) 2.1.0 или более поздняя. Для установки
+     используйте обычную процедуру `./bootstrap, ./configure, make,
+     sudo make install'. В результате появится программа IDTFConverter
+     для конвертации файлов *.idtf в бинарные файлы *.u3d. Последние
+     можно включить в PDF.
+
+*Как сменить шрифт (семейство шрифтов)?*
+     Во-первых, надо загрузить файлы отсюда
+     (http://mathgl.sourceforge.net/download.html) или отсюда
+     (http://sourceforge.net/project/showfiles.php?group_id=152187&package_id=267177).
+     Далее, в экземпляре mglGraph загружаем шрифты: `gr->SetFont(new
+     mglFont(fontname,path));'. Здесь FONTNAME - базовое имя шрифта,
+     например `STIX', и PATH - путь к папке с файлами шрифтов. Вызовите
+     `gr->SetFont(NULL);' для использования шрифта по умолчанию.
+
+*Как нарисовать метки оси снаружи от графика?*
+     Просто используйте отрицательные значения длины меток, например
+     `gr->SetTickLen(-0.1);'.
+
+
+
+File: mathgl_ru.info,  Node: Interfaces,  Next: Thanks,  Prev: FAQ,  Up: Overview
+
+1.6 Интерфейсы
+========================
+
+Библиотека MathGL имеет интерфейсы к целому ряду языков
+программирования. Большинство из них базируется на С интерфейсе и
+построены с помощью инструментария SWIG. Сюда входят Python, Java,
+Octave, Lisp, C#, Guile, Lua, Modula 3, Ocaml, Perl, PHP, Pike, R,
+Ruby, Tcl. Кроме того, есть отдельный интерфейс к Фортрану, имеющий
+похожий набор функций, но со слегка различным типом аргументов
+(использованы целые вместо указателей). Функции С и Фортран интерфейса
+помечены [функции С].  Некоторое из языков представленных выше
+поддерживают объектное программирование (классы). Для них написан
+собственная оболочка и соответствующие функции/методы помечены
+(Python). Функции и методы доступные в С++ помечены (С++).  Наконец,
+специальный командный язык MGL был написан для быстрого доступа к
+функциям C++ со всеми их возможностями. Скрипты MGL могут быть
+выполнены как из внешних программ (UDAV, mgl2png, mgl2eps и т.д.) так и
+из кода на C++/C/Python и пр. (*note mglParse class::). Подробно эти
+команды описаны в *note MGL interface::.
+
+* Menu:
+
+* C interface::
+* Python interface::
+
+
+File: mathgl_ru.info,  Node: C interface,  Next: Python interface,  Up: Interfaces
+
+1.6.1 C интерфейс
+--------------------------
+
+C интерфейс является базовым для большинства других интерфейсов. Он
+содержит функции на чистом C для большинства методов классов MathGL. В
+отличие от членов-функций C++ классов, C функции в качестве аргументов
+должны явно иметь переменные типа HMGL (для графики) и/или HMDT (для
+массивов данных) для указания объекта рисования или данных. Таким
+образом, первым вызовом пользователя должно быть создание этих объектов
+с помощью функций `mgl_create_*()', а последним - их удаление с помощью
+функций `mgl_delete_*()'.
+
+   Все функции описанны в заголовочном файле `#include <mgl/mgl_c.h>' и
+используют переменные для идентификаторов объектов рисования/данных
+следующих типов:
+   * `HMGL' -- Указатель на класс `mglGraph' (*note MathGL core::).
+
+   * `HMDT' -- Указатель на класс `mglData' (*note mglData class::).
+
+   * `HMPR' -- Указатель на класс `mglParse' (*note mglParse class::)..
+   Эти переменные содержат идентификаторы объектов графики или данных.
+
+   Фортрановские функции имеют те же имена, что и функции C. Однако,
+есть различие: переменные типов `HMGL, HMDT' должны быть объявлены как
+целые достаточной разрядности (integer*4 на 32-битных системах или
+integer*8 на 64-битных системах). Все С функции являются процедурами
+для Фортрана (должны вызываться с помощью оператора call). Исключение
+составляют функции, возвращающие переменные типа `HMGL' или `HMDT'.
+Последние должны быть объявлены целыми  для использования в
+фортрановском коде. Также помните, что строки в фортране обозначаются
+одинарной кавычкой `</samp>&rsquo;', а не двойной `"' как в С/С++.
+
+   *Создание и удаление графического объекта*
+
+   * Функции для рисования в памяти:
+
+      -- C function: `HMGL' mgl_create_graph_gl ()
+          Создает экземпляр класса mglGraphGL.
+
+      -- C function: `HMGL' mgl_create_graph_zb (`int' width, `int'
+               height)
+          Создает экземпляр класса mglGraphZB с указанными размерами.
+
+      -- C function: `HMGL' mgl_create_graph_ps (`int' width, `int'
+               height)
+          Создает экземпляр класса mglGraphPS с указанными размерами.
+
+      -- C function: `HMGL' mgl_create_graph_idtf ()
+          Создает экземпляр класса mglGraphIDTF.
+
+   * Функции для рисования в окне:
+
+      -- C function: `HMGL' mgl_create_graph_glut (`int (*'draw`)(HMGL
+               gr, void *p)', `const char *'title, `void *'par)
+          Создает экземпляр класса mglGraphGLUT  и связанное с ним
+          окно. Одновременно может быть открыто только одно окно.
+          Описание аргументов функции см. в *note mglGraphAB class::.
+
+      -- C function: `HMGL' mgl_create_graph_fltk (`int (*'draw`)(HMGL
+               gr, void *p)', `const char *'title, `void *'par)
+          Создает экземпляр класса mglGraphFLTK и связанное с ним окно.
+          Одновременно может быть открыто несколько окно. Однако Вы
+          должны вызвать функцию `mgl_fltk_run()' для начала обработки
+          сообщений окну. Описание аргументов функции см. в *note
+          mglGraphAB class::. Замечу, что параметр DRAW может быть
+          равным `NULL' для отображения текущей статической картинки
+          (анимация и слайды не доступны).
+
+      -- C function: `HMGL' mgl_create_graph_qt (`int (*'draw`)(HMGL
+               gr, void *p)', `const char *'title, `void *'par)
+          Создает экземпляр класса mglGraphQT и связанное с ним окно.
+          Одновременно может быть открыто несколько окно. Однако Вы
+          должны вызвать функцию `mgl_qt_run()' для начала обработки
+          сообщений окну. Описание аргументов функции см. в *note
+          mglGraphAB class::. Замечу, что параметр DRAW может быть
+          равным `NULL' для отображения текущей статической картинки
+          (анимация и слайды не доступны).
+
+      -- C function: `void' mgl_fltk_run ()
+          Запускает цикл обработки сообщений FLTK. Обычно программа
+          завершает функцию main() вызовом `return mgl_fltk_run();'.
+
+      -- C function: `void' mgl_fltk_thread ()
+          Запускает цикл обработки сообщений FLTK. В отличие от
+          `mgl_fltk_run()' цикл запускается в отдельном потоке, так что
+          основная программа продолжает выполнение сразу.
+
+      -- C function: `void' mgl_qt_run ()
+          Запускает цикл обработки сообщений Qt. Обычно программа
+          завершает функцию main() вызовом `return mgl_qt_run();'.
+
+      -- C function: `void' mgl_qt_thread ()
+          Запускает цикл обработки сообщений Qt. В отличие от
+          `mgl_qt_run()' цикл запускается в отдельном потоке, так что
+          основная программа продолжает выполнение сразу.
+
+      -- C function: `void' mgl_update (`HMGL' graph)
+          Обновляет содержимое экрана.
+
+      -- C function: `void' mgl_set_show_mouse_pos (`HMGL' graph, `int'
+               enable)
+          Switch to show or not in the widget the last mouse click
+          position.
+
+      -- C function: `void' mgl_get_last_mouse_pos (`HMGL' graph,
+               `float *'x, `float *'y, `float *'z)
+          Last position of mouse click.
+
+      -- C function: `void' mgl_calc_xyz (`HMGL' graph, `int' xs, `int'
+               ys, `float *'x, `float *'y, `float *'z)
+          Calculate 3D coordinate {x,y,z} for screen point {xs,ys}. At
+          this moment it ignore perspective and transformation formulas
+          (curvilinear coordinates). The calculation are done for the
+          last used InPlot (*note Transformation matrix::).
+
+   * Functions for data creation:
+
+      -- C function: `HMDT' mgl_create_data ()
+          Create simple instance of class mglData.
+
+      -- C function: `HMDT' mgl_create_data_size (`int' nx, `int' ny,
+               `int' nz)
+          Create instance of class mglData with specified sizes.
+
+      -- C function: `HMDT' mgl_create_data_file (`const char *'fname)
+          Create instance of class mglData and fill it by data from
+          text file.
+
+   * Each created object *must* be deleted after usage by functions:
+
+      -- C function: `void' mgl_delete_graph (`HMGL' graph)
+          Delete the instance of class. Must be used after plotting for
+          every created graphical object.
+
+      -- C function: `void' mgl_delete_data (`HMDT' dat)
+          Delete the instance of class. Must be used after using for
+          every created data object.
+
+
+File: mathgl_ru.info,  Node: Python interface,  Prev: C interface,  Up: Interfaces
+
+1.6.2 Python интерфейс
+-------------------------------
+
+MathGL provide the interface to a set of languages via SWIG library.
+Some of these languages support classes. The typical example is Python
+- which is denoted in the chapter title.
+
+   To use Python classes just execute `import mathgl'. The simplest
+example will be:
+import mathgl
+a=mathgl.mglGraph()
+a.Box()
+a.WritePNG(</samp>&rsquo;test.png</samp>&rsquo;)
+ Alternatively you can import all classes from `mathgl' module and
+easily access MathGL classes:
+from mathgl import *
+a=mglGraph()
+a.Box()
+a.WritePNG(</samp>&rsquo;test.png</samp>&rsquo;)
+ It become useful if you will create many `mglData' object, for example.
+
+   There are 2 classes in Python interface:
+   * `mglGraph' - provide practically the same functionality as C++
+     class `mglGraph' (*note MathGL core::). But it is not abstract
+     class and it allows one to select at construction stage which
+     plotter (ZB or PS and so on) will be used.
+
+   * `mglData' - is absolutely the same class as C++ `mglData' (*note
+     mglData class::). But an additional feature to acess data values
+     is added. You can use construction like this: `dat[i]=sth;' or
+     `sth=dat[i]' at this flat representation of data is used (i.e., I
+     can be in range 0...nx*nx*nz-1. Also you can import NumPy arrays
+     as input arguments: `mgl_dat = mglData(numpy_dat);'.
+
+     To use Python classes just execute `import mathgl'. The simplest
+     example will be: import mathgl
+     a=mathgl.mglGraph()
+     a.Box()
+     a.WritePNG(</samp>&rsquo;test.png</samp>&rsquo;)
+      Alternatively you can import all classes from `mathgl' module and
+     easily access MathGL classes: from mathgl import *
+     a=mglGraph()
+     a.Box()
+     a.WritePNG(</samp>&rsquo;test.png</samp>&rsquo;)
+      It become useful if you will create many `mglData' object, for
+     example.
+
+     There are 2 classes in Python interface:
+        * `mglGraph' - provide practically the same functionality as
+          C++ class `mglGraph' (*note MathGL core::). But it is not
+          abstract class and it allows one to select at construction
+          stage which plotter (ZB or PS and so on) will be used.
+
+        * `mglData' - is absolutely the same class as C++ `mglData'
+          (*note mglData class::). But an additional feature to acess
+          data values is added. You can use construction like this:
+          `dat[i]=sth;' or `sth=dat[i]' at this flat representation of
+          data is used (i.e., I can be in range 0...nx*nx*nz-1.
+
+     There is main difference from C++ classes - Python class
+     `mglGraph' don</samp>&rsquo;t have variables (options). All
+     corresponding features are moved to methods.  The core of MathGL
+     Python class is *mglGraph* class. It contains a lot of plotting
+     functions for 1D, 2D and 3D plots. So most of sections is describe
+     its methods. Its constructor have following arguments:
+
+      -- Constructor on mglGraph (Python): `' mglGraph (`int' kind=`0',
+               `int' width=`600', `int' height=`400')
+          Create the instance of class mglGraph with specified sizes
+          WIDTH and HEIGHT. Parameter TYPE may have following values:
+          `0' - use `mglGraphZB' plotter (default), `1' - use
+          `mglGraphPS' plotter, `2' - use `mglGraphGL' plotter, `3' -
+          use `mglGraphIDTF' plotter.
+
+   There is main difference from C++ classes - Python class `mglGraph'
+don</samp>&rsquo;t have variables (options). All corresponding features
+are moved to methods. The core of MathGL Python class is *mglGraph*
+class. It contains a lot of plotting functions for 1D, 2D and 3D plots.
+So most of sections is describe its methods. Its constructor have
+following arguments:
+
+ -- Constructor on mglGraph (Python): `' mglGraph (`int' kind=`0',
+          `int' width=`600', `int' height=`400')
+     Create the instance of class mglGraph with specified sizes WIDTH
+     and HEIGHT. Parameter TYPE may have following values: `0' - use
+     `mglGraphZB' plotter (default), `1' - use `mglGraphPS' plotter,
+     `2' - use `mglGraphGL' plotter, `3' - use `mglGraphIDTF' plotter.
+
+
+File: mathgl_ru.info,  Node: Thanks,  Prev: Interfaces,  Up: Overview
+
+1.7 Благодарности
+==============================
+
+   * My special thanks to Marina Balakina for the patience during
+     library writing and for the help in documentation writing and
+     spelling.
+
+   * I</samp>&rsquo;m thankful to D. Kulagin and S.M. Plis for making
+     Debian packages.
+
+   * I</samp>&rsquo;m thankful to M. Vidassov for the help in handling
+     solid UTF-8 fonts.
+
+   * I</samp>&rsquo;m thankful to N. Troickiy and V. Lipatov for making
+     RPM packages.
+
+   * I</samp>&rsquo;m thankful to S. Skobelev, A. Korotkevich, V.
+     Onuchin, S.M. Plis, R. Kiselev, A. Ivanov, M. Vidiassov and V.
+     Lipatov for fruitful comments.
+
+
+File: mathgl_ru.info,  Node: Examples,  Next: MathGL core,  Prev: Overview,  Up: Top
+
+2 MathGL examples
+*****************
+
+This chapter contain information about basic and advanced MathGL, hints
+and samples for all types of graphics. I recommend you read first 2
+sections one after another and at least look on "Hints" section. Also I
+recommend you to look at *note General concepts:: and *note FAQ::.
+Sample code for some of these examples can be found in
+`http://mathgl.sf.net/pictures.html' and in *note Samples::.
+
+* Menu:
+
+* Basic usage::
+* Advanced usage::
+* Data handling::
+* Data plotting::
+* C/Fortran interface::
+* MathGL and PyQt::
+* Hints::
+
+
+File: mathgl_ru.info,  Node: Basic usage,  Next: Advanced usage,  Up: Examples
+
+2.1 Basic usage
+===============
+
+MathGL library can be used by several manners. Each has positive and
+negative sides:
+   * _The using of MathGL library features for creating graphical
+     window (requires FLTK or GLUT libraries)._
+
+     Positive side is the possibility to view the plot at once and to
+     modify it (rotate, zoom or switch on transparency or lighting) by
+     hand or by mouse. Negative sides are: the need  of X-terminal and
+     limitation consisting in working with the only one set of data at
+     a time.
+
+   * _Direct writing to file in bitmap or vector format without
+     creation of graphical window._
+
+     Positive aspects are: batch processing of similar data set (for
+     example, a set of resulting data files for different calculation
+     parameters), running from the console program (including the
+     cluster calculation), fast and automated drawing, saving pictures
+     for further analysis (or demonstration). Negative sides are: the
+     usage of the external program for picture viewing. Also, the data
+     plotting is non-visual. So, you have to imagine the picture (view
+     angles, lighting and so on) before the plotting. I recommend to
+     use graphical window for determining the optimal parameters of
+     plotting on the base of some typical data set. And later use these
+     parameters for batch processing in console program.
+
+   * _Drawing in memory with the following displaying by other
+     graphical program._
+
+     In this case the programmer has more freedom in selecting the
+     window libraries (not only FLTK or GLUT), in positioning and
+     surroundings control and so on. I recommend to use such way for
+     "settled" programs.
+
+   Let me consider the aforesaid in more detail.
+
+* Menu:
+
+* Using FLTK/GLUT window::
+* Drawing to file::
+* Drawing in memory::
+* Using QMathGL::
+
+
+File: mathgl_ru.info,  Node: Using FLTK/GLUT window,  Next: Drawing to file,  Up: Basic usage
+
+2.1.1 Using FLTK/Qt/GLUT window
+-------------------------------
+
+The "interactive" way of drawing in MathGL consists in window creation
+with help of class `mglGraphFLTK', `mglGraphQT' or `mglGraphGLUT'
+(*note Widget classes::) and the following drawing in this window.
+There is a corresponding code:
+    int sample(mglGraph *gr, void *)
+    {
+        gr->Rotate(60,40);
+        gr->Box();
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mglGraphFLTK gr;
+        gr.Window(argc,argv,sample,"MathGL examples");
+        return mglFlRun();
+    }
+ Here function `sample' is defined. This function does all drawing.
+Other function `main' is entry point function for console program.
+Arguments of `main' should be transfered to `Window()' since it may
+contain OS specific information (*note mglGraphAB class::).
+
+   Alternatively you can create yours own class inherited from class
+`mglDraw' and re-implement the function `Draw()' in it:
+    class Foo : public mglDraw
+    {
+    public:
+        int Draw(mglGraph *gr);
+    } foo;
+    //-----------------------------------------------------
+    int Foo::Draw(mglGraph *gr)
+    {
+        gr->Rotate(60,40);
+        gr->Box();
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mglGraphFLTK gr;
+        gr.Window(argc,argv,foo,"MathGL examples");
+        return mglFlRun();
+    }
+
+   The similar code can be written for `mglGraphQT' or for
+`mglGraphGLUT' window (function `sample()' is the same):
+    int main(int argc,char **argv)
+    {
+        mglGraphGLUT gr;
+        gr.Window(argc,argv,sample,"MathGL examples");
+        return 0;
+    }
+
+   The rotation, shift, zooming, switching on/off transparency and
+lighting can be done with help of tool-buttons (for `mglGraphFLTK' and
+`mglGraphQT') or by hot-keys: `a', `d', `w', `s' for plot rotation, `r'
+and `f' switching on/off transparency and lighting. Press `x' for exit
+(or closing the window).
+
+   In this example function `sample' rotates axes (`Rotate()', *note
+Transformation matrix::) and draws the bounding box (`Box()'). Drawing
+procedure is separated in a function since it will be used on demand
+when window canvas needs to be redrawn. Widget classes (`mglGraphFLTK',
+`mglGraphGLUT' and so on) support a delayed drawing, when all plotting
+functions are called once at the beginning of writing to memory lists.
+Further program displays the saved lists faster. Resulting redrawing
+will be faster but it requires sufficient memory. Several lists
+(frames) can be displayed one after another (by pressing `,', `.') or
+run as cinema. To switch these feature on one needs to modify function
+`sample':
+    int sample1(mglGraph *gr, void *)
+    {
+        gr->NewFrame();             // the first frame
+        gr->Rotate(60,40);
+        gr->Box();
+        gr->EndFrame();             // end of the first frame
+        gr->NewFrame();             // the second frame
+        gr->Box();
+        gr->Axis("xy");
+        gr->EndFrame();             // end of the second frame
+        return GetNumFrame();       // returns the frame number
+    }
+ First, the function creates a frame `NewFrame()' for rotated axes and
+draws the bounding box. After the frame drawing the function
+`EndFrame()' *must be* called! The second frame contains the bounding
+box and axes `Axis("xy")' in the initial (unrotated) coordinates.
+Function `sample' returns the number of created frames `GetNumFrame()'.
+
+
+File: mathgl_ru.info,  Node: Drawing to file,  Next: Drawing in memory,  Prev: Using FLTK/GLUT window,  Up: Basic usage
+
+2.1.2 Drawing to file
+---------------------
+
+Another way of using MathGL library is the direct picture writing to
+file. It is most usable for plot creating during calculation or for
+using of small programs (like Matlab or Scilab scripts) for visualizing
+repetitive sets of data. But the speed of drawing is much higher in
+comparison with a script language. There are two classes for exporting
+in file: class `mglGraphZB' saves in bitmap format (like PNG),
+`mglGraphPS' saves in vector PostScript format (*note Plotter
+classes::).
+
+   The following code produces a bitmap PNG picture:
+    int main(int ,char **)
+    {
+        mglGraphZB gr;
+        gr.Alpha(true);
+        gr.Light(true);             gr.Light(0,mglPoint(1,0,-1));
+        sample(&gr,NULL);           // The same drawing function.
+        gr.WritePNG("test.png");    // Don't forget to save the result!
+        return 0;
+    }
+ The only difference from the previous (using windows) variant is
+manual switching the transparency  `Alpha' and lightning `Light' on, if
+the plot requires it. The using of frames is not advisable since the
+whole image is prepared each time. If function `sample' contains frames
+then each frame will be saved to a separate file. In principle, one
+does not need to separate drawing functions in case of direct file
+writing in consequence of the single calling of this function for each
+picture. However, one may use the same drawing procedure to create a
+plot with changed parameters, to export in different file types, to
+emphasize the drawing code and so on. So, in future I will put the
+drawing in separate function.
+
+   The code for export in vector EPS file looks the same:
+    int main(int ,char **)
+    {
+        mglGraphPS gr;
+        gr.Light(true);             gr.Light(0,mglPoint(1,0,-1));
+        sample(&gr,NULL);           // The same drawing function.
+        gr.WriteEPS("test.eps");    // Don't forget to save the result!
+        return 0;
+    }
+ The differences from the using of bitmap picture are: applying of the
+other class `mglGraphPS', and writing to other format (function
+`WriteEPS()' instead of function `WritePNG()'). Moreover, there is no
+switching of the plot transparency `Alpha' since EPS format does not
+support it. Possibly I shall include transparency in future by program
+emulation.
+
+   Classes `mglGraphZB' and `mglGraphPS' have some merits and demerits.
+Class `mglGraphZB' draws beautiful surface with transparency, smoothed
+colors and lightning, but the output picture is _bitmap_, that leads to
+a bad scalability. On the contrary, class `mglGraphPS' creates vector
+file with excellent scalability. But file has large size (especially
+for surfaces), it does not support transparency and color smoothing.
+So, vector picture looks stylish but a bit angularly.
+
+
+File: mathgl_ru.info,  Node: Drawing in memory,  Next: Using QMathGL,  Prev: Drawing to file,  Up: Basic usage
+
+2.1.3 Drawing in memory
+-----------------------
+
+The last way of MathGL using is the drawing in memory. Class
+`mglGraphZB' allows one  to create a bitmap picture in memory. Further
+this picture can be displayed in window by some window libraries (like
+wxWidgets, FLTK, Windows GDI and so on). For example, the code for
+drawing in wxWidget library looks like:
+    void MyForm::OnPaint(wxPaintEvent& event)
+    {
+        int w,h,x,y;
+        GetClientSize(&w,&h);   // size of the picture
+        mglGraphZB gr(w,h);
+
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&gr,NULL);
+
+        wxImage img(w,h,gr.GetBits(),true);
+        ToolBar->GetSize(&x,&y);    // gets a height of the toolbar if any
+        wxPaintDC dc(this);         // and draws it
+        dc.DrawBitmap(wxBitmap(img),0,y);
+    }
+ The drawing in other libraries is most the same.
+
+   For example, FLTK code will look like
+    void Fl_MyWidget::draw()
+    {
+        mglGraphZB gr(w(),h());
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&gr,NULL);
+        fl_draw_image(gr.GetBits(), x(), y(), gr.GetWidth(), gr.GetHeight(), 3);
+    }
+ Qt code will look like
+    void MyWidget::paintEvent(QPaintEvent *)
+    {
+        mglGraphZB gr(w(),h());
+        gr.Alpha(true);         // draws something using MathGL
+        gr.Light(true);         gr.Light(0,mglPoint(1,0,-1));
+        sample(&gr,NULL);
+
+        // Qt don't support RGB format as is. So, let convert it to BGRN.
+        const uchar *bb = gr.GetBits();
+        register long i, w=gr.GetWidth(), h=gr.GetHeight();
+        *buf = new uchar[4*w*h];
+        for(i=0;i<w*h;i++)
+        {
+            (*buf)[4*i]   = bb[3*i+2];
+            (*buf)[4*i+1] = bb[3*i+1];
+            (*buf)[4*i+2] = bb[3*i];
+            (*buf)[4*i+3] = 255;
+        }
+        QPixmap pic = QPixmap::fromImage(QImage(*buf, w, h, QImage::Format_RGB32));
+
+        QPainter paint;
+        paint.begin(this);  paint.drawPixmap(0,0,pic);  paint.end();
+        delete []buf;
+    }
+
+
+File: mathgl_ru.info,  Node: Using QMathGL,  Prev: Drawing in memory,  Up: Basic usage
+
+2.1.4 Using QMathGL
+-------------------
+
+MathGL have several interface widgets for different widget libraries.
+There are QMathGL for Qt, Fl_MathGL for FLTK in MathGL v.1.8. These
+classes provide control which display MathGL graphics. Unfortunately
+there is no uniform interface for widget classes because all libraries
+have slightly different set of functions, features and so on. However
+the usage of MathGL widgets is rather simple. Let me show it on the
+example of QMathGL.
+
+   First of all you have to define the drawing function or inherit a
+class from `mglDraw' class. After it just create a window and setup
+QMathGL instance as any other Qt widget:
+    int main(int argc,char **argv)
+    {
+        QApplication a(argc,argv);
+        QMainWindow *Wnd = new QMainWindow;
+        Wnd->resize(650,480);  // for fill up the QMGL, menu and toolbars
+        Wnd->setWindowTitle(title);
+        // here I allow to scroll QMathGL -- the case
+        // then user want to prepare huge picture
+        QScrollArea *scroll = new QScrollArea(Wnd);
+
+        // Create and setup QMathGL
+        QMathGL *QMGL = new QMathGL(Wnd);
+        QMGL->setPopup(popup); // if you want to setup popup menu for QMGL
+        QMGL->setDraw(sample, NULL);
+        // or use QMGL->setDraw(foo); for instance of class Foo:public mglDraw
+        QMGL->update();
+
+        // continue other setup (menu, toolbar and so on)
+        makeMenu();
+        scroll->setWidget(QMGL);
+        Wnd->setCentralWidget(scroll);
+        Wnd->show();
+        return a.exec();
+    }
+
+
+File: mathgl_ru.info,  Node: Advanced usage,  Next: Data handling,  Prev: Basic usage,  Up: Examples
+
+2.2 Advanced usage
+==================
+
+Now I show several non-obvious features of MathGL: several subplots in
+a single picture, curvilinear coordinates, text printing and so on.
+Generally you may miss this section at first reading, but I don't
+recommend it.
+
+* Menu:
+
+* Subplots::
+* Axis and grids::
+* Curvilinear coordinates::
+* Text printing example::
+* Animation::
+
+
+File: mathgl_ru.info,  Node: Subplots,  Next: Axis and grids,  Up: Advanced usage
+
+2.2.1 Subplots
+--------------
+
+Let me demonstrate possibilities of axes transformation. MathGL has the
+following functions: `SubPlot', `InPlot', `Aspect' and `Rotate' (*note
+Transformation matrix::). The order of their calling is strictly
+determined. First, one changes the position of axes in image area
+(functions `SubPlot' and `InPlot'). After that one may rotate the plot
+(function `Rotate'). Finally, one may change aspects of axes (function
+`Aspect'). The following code illustrates the aforesaid it:
+    int sample(mglGraph *gr, void *)
+    {
+        gr->SubPlot(2,2,0);
+        gr->Box();
+        gr->Puts(mglPoint(-1,1.1,1),"Just box","rL");
+        gr->InPlot(0.2,0.5,0.7,1);
+        gr->Box();
+        gr->Puts(mglPoint(0,1.2,1),"InPlot example");
+
+        gr->SubPlot(2,2,1);
+        gr->Rotate(60,40);
+        gr->Aspect(1,1,1);
+        gr->Box();
+        gr->Puts(mglPoint(1,1,1.5),"Rotate only","rR");
+
+        gr->SubPlot(2,2,2);
+        gr->Rotate(60,40);
+        gr->Aspect(1,1,2);
+        gr->Box();
+        gr->Puts(mglPoint(0,0,2),"Aspect and Rotate");
+
+        gr->SubPlot(2,2,3);
+        gr->Rotate(60,40);
+        gr->Aspect(1,2,2);
+        gr->Box();
+        gr->Puts(mglPoint(0,0,1.5),"Aspect in other direction");
+        return 0;
+    }
+ Here I used function `Puts' for printing the text in arbitrary
+position of picture (*note Text printing::). Text coordinates and size
+are connected with axes. However, text coordinates may be everywhere,
+including the outside the bounding box. I shall show its features later
+in *Note Text printing example::.
+
+ [image src="../png/sample1.png" ]
+
+Example of several subplots on the single picture.
+
+
+File: mathgl_ru.info,  Node: Axis and grids,  Next: Curvilinear coordinates,  Prev: Subplots,  Up: Advanced usage
+
+2.2.2 Axis and grids
+--------------------
+
+MathGL library can draw not only the bounding box but also the axes,
+grids, labels and so on. The limits of axes and their origin (the point
+of intersection) are determined by function `Axis()'. Also you can use
+`XRange(), YRange(), ZRange()' functions (*note Ranges (bounding
+box)::). Ticks on axis are specified by function `SetTicks' (*note
+Ticks::). First argument the direction for each change will be applied.
+Second argument gives the step between ticks (if positive) or gives the
+number of ticks on the axis (if negative) or set to use logarithmic
+ticks (if zero). Third argument gives numbers of sub-ticks between
+ticks (default is zero). Last argument define the initial ticks
+position.
+
+   Function `Axis' draws axes. Its textual string shows in which
+directions the axis or axes will be drawn (by default `"xyz"', function
+draws axes in all directions). Function `Grid' draws grid
+perpendicularly to specified directions. Example of axes and grid
+drawing is:
+    int sample(mglGraph *gr, void *)
+    {
+        gr->SubPlot(2,2,0);
+        gr->SetTicks('x', 0.4, 3);  // sets tick step to 0.5
+        gr->SetTicks('y', 0.4, 3);  // and draws 3 subticks
+        gr->Box();                  // should be after the ticks change
+        gr->Axis("xy");
+        gr->Grid();
+        gr->Puts(mglPoint(0,1.3,1),"Axis and grid");
+
+        gr->SetTicks('x');  gr->SetTicks('y'); // restore back
+        gr->Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(0,0,0));
+
+        gr->SubPlot(2,2,1);
+        gr->Rotate(60,40);
+        gr->Axis();
+        gr->Label('x',"x");
+        gr->Label('y',"y");
+        gr->Label('z',"z");
+        gr->Puts(mglPoint(0,0,1.5),"Axis and labels");
+
+        gr->SubPlot(2,2,2);
+        gr->Rotate(60,40);
+        gr->SetTicks('x', 0.2); gr->SetTicks('y', 0.2);
+        gr->SetTicks('z', 0.2); // too low step of ticks
+        gr->Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,-1,-1));
+        gr->Axis();
+        gr->Grid();
+        gr->Puts(mglPoint(0,0,1.5),"Shift origin and add grid");
+        gr->Puts(mglPoint(0,0,1.2),"(note, too many ticks)");
+
+        gr->SubPlot(2,2,3);
+        gr->Rotate(60,40);
+        gr->SetTicks('x', -6);  // decrease the number of ticks
+        gr->SetTicks('y', -6);
+        gr->Axis("yz");
+        gr->Label('y',"Y axis",0);
+        gr->Label('z',"Z axis",0);
+        gr->Puts(mglPoint(0,0,1.5),"Remove X axis, and");
+        gr->Puts(mglPoint(0,0,1.2),"decrease number of ticks");
+        return 0;
+    }
+
+   This example shows the importance of the correct choosing of the
+number of ticks on axis. If tick step is too small then its text may
+overlap and becomes unreadable. This code has the example of `Label'
+function. It draws label for axis in specified direction. The text
+position on axis is specified by third argument of `Label' function. If
+it is positive then then text is drawn near the axis maximum, if
+negative then the same takes place near the minimum of axis, if zero -
+then at the center of axis.
+
+ [image src="../png/sample2.png" ]
+
+Example of setting up axis range and axis ticks.
+
+
+File: mathgl_ru.info,  Node: Curvilinear coordinates,  Next: Text printing example,  Prev: Axis and grids,  Up: Advanced usage
+
+2.2.3 Curvilinear coordinates
+-----------------------------
+
+Now let use curvilinear coordinates. In difference from other systems
+of plot creation, MathGL uses textual formulas for connection of the
+old (data) and new (output) coordinates. This allows one to plot in
+arbitrary coordinates. The following code plots the line Y=0, Z=0 in
+Cartesian, polar, parabolic and spiral coordinates:
+    int sample(mglGraph *gr, void *)
+    {
+        mglData x(50),y(50),z(50);
+        y.Fill(0.5,0.5);
+        x.Fill(-1,1);           // creates data arrays
+
+        gr->Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,1,-1));
+        gr->dz = 0.5;           // sets tick step to 0.5
+
+        gr->SubPlot(2,2,0);
+        gr->Rotate(60,40);
+        gr->Plot(x,y,z,"r2");
+        gr->Axis(); gr->Grid();
+        gr->Puts(mglPoint(0,1.3,1),"Cartesian");
+
+        gr->SubPlot(2,2,1);
+        gr->SetFunc("y*sin(pi*x)","y*cos(pi*x)",0);
+        gr->Rotate(60,40);
+        gr->Plot(x,y,z,"r2");
+        gr->Axis(); gr->Grid();
+        gr->Puts(mglPoint(0,1.3,1),"Cylindrical");
+
+        gr->SubPlot(2,2,2);
+        gr->Rotate(60,40);
+        gr->SetFunc("2*y*x","y*y - x*x",0);
+        gr->Plot(x,y,z,"r2");
+        gr->Axis(); gr->Grid();
+        gr->Puts(mglPoint(0,1.3,1),"Parabolic");
+
+        gr->SubPlot(2,2,3);
+        gr->Rotate(60,40);
+        gr->SetFunc("y*sin(pi*x)","y*cos(pi*x)","x+z");
+        gr->Plot(x,y,z,"r2");
+        gr->Axis(); gr->Grid();
+        gr->Puts(mglPoint(0,1.3,1),"Spiral");
+        return 0;
+    }
+
+ [image src="../png/sample3.png" ]
+
+Example of curvilinear coordinates
+
+
+File: mathgl_ru.info,  Node: Text printing example,  Next: Animation,  Prev: Curvilinear coordinates,  Up: Advanced usage
+
+2.2.4 Text printing example
+---------------------------
+
+MathGL prints text by vector font. There are functions for manual
+specifying of text position (like `Puts') and for its automatic
+selection (like `Label', `Legend' and so on). MathGL prints text always
+in specified position even if it lies outside the bounding box. The
+default size of font is specified by variables FONTSIZE (*note Font
+settings::). However, the actual size of output string depends on
+position of axes (depends on functions `SubPlot', `InPlot'). The
+switching of the font style (italic, bold, wire and so on) can be done
+for the whole string (by function parameter) or inside the string. By
+default MathGL parses TeX-like commands for symbols and indexes (see
+*note Font styles::). Example of MathGL font drawing is:
+    int sample(mglGraph *gr, void *)
+    {
+        setlocale(LC_CTYPE, "ru_RU.cp1251");
+        gr->Puts(mglPoint(0,1),"Text can be in ASCII and in Unicode");
+        gr->Puts(mglPoint(0,0.6),"It can be \\wire{wire}, \\big{big} "
+            "or #r{colored}");
+        gr->Puts(mglPoint(0,0.2),"One can change style in string: "
+            "\\b{bold}, \\i{italic, \\b{both}}");
+        gr->Puts(mglPoint(0,-0.2),"Easy to \\a{overline} or "
+            "\\u{underline}");
+        gr->Puts(mglPoint(0,-0.6),"Easy to change indexes "
+            "^{up} _{down} @{center}");
+        gr->Puts(mglPoint(0,-1),"It parse TeX: \\int \\alpha \\cdot "
+            "\\sqrt3{sin(\\pi x)^2 + \\gamma_{i_k}} dx");
+        return 0;
+    }
+
+ [image src="../png/sample4.png" ]
+
+Example of text printing with different font effects
+
+   Another example demonstrate the features of TeX formula parsing.
+    int sample(mglGraph *gr, void *)
+    {
+        gr->Puts(mglPoint(0), "\\sqrt{\\frac{\\alpha^{\\gamma^2}+"
+            "\\overset 1{\\big\\infty}}{\\sqrt3{2+b}}}", 0, -4);
+        return 0;
+    }
+
+ [image src="../png/samplee.png" ]
+
+Example of TeX formula parsing
+
+   Finally you can change font during execution (this work well for
+mglGraphZB class only).
+    int sample(mglGraph *gr, void *)
+    {
+        float h=1.1, d=0.25;
+        gr->LoadFont("STIX");       gr->Puts(mglPoint(0,h), "default font (STIX)");
+        gr->LoadFont("adventor");   gr->Puts(mglPoint(0,h-d), "adventor font");
+        gr->LoadFont("bonum");      gr->Puts(mglPoint(0,h-2*d), "bonum font");
+        gr->LoadFont("chorus");     gr->Puts(mglPoint(0,h-3*d), "chorus font");
+        gr->LoadFont("cursor");     gr->Puts(mglPoint(0,h-4*d), "cursor font");
+        gr->LoadFont("heros");      gr->Puts(mglPoint(0,h-5*d), "heros font");
+        gr->LoadFont("heroscn");    gr->Puts(mglPoint(0,h-6*d), "heroscn font");
+        gr->LoadFont("pagella");    gr->Puts(mglPoint(0,h-7*d), "pagella font");
+        gr->LoadFont("schola");     gr->Puts(mglPoint(0,h-8*d), "schola font");
+        gr->LoadFont("termes");     gr->Puts(mglPoint(0,h-9*d), "termes font");
+    }
+
+ [image src="../png/fonts.png" ]
+
+Example of font face changing.
+
+
+File: mathgl_ru.info,  Node: Animation,  Prev: Text printing example,  Up: Advanced usage
+
+2.2.5 Animation
+---------------
+
+You can make animation by several methods in MathGL: by export in
+animated GIF, or by save each frame in separate file (usually JPEG) and
+convert these files into movie. Let me show both methods.
+
+   The simplest methods is making animated GIF. There are 3 steps: (1)
+open GIF file by `StartGIF()' function; (2) create the frames by
+calling `NewFrame()' before and `EndFrame()' after plotting; (3) close
+GIF by `CloseGIF()' function. So the simplest code for "running"
+sinusoid will look like this:
+    int sample(mglGraph *gr, void *)
+    {
+        mglData dat(100);
+        char str[32];
+        gr->StartGIF("sample.gif");
+        for(int i=0;i<100;i++)
+        {
+            gr->NewFrame();     // start frame
+            gr->Box();          // some plotting
+            sprintf(str,"sin(pi*x+%g*pi)",0.02*i);
+            dat.Modify(str);
+            gr->Plot(dat,"b");
+            gr->EndFrame();     // end frame
+        }
+        gr->CloseGIF();
+        return 0;
+    }
+
+   The second way is saving each frame in separate file (usually JPEG)
+and later make the movie from them. MathGL have special function for
+saving frames - it is `WriteFrame()'. This function save each frame
+with automatic name `frame0001.jpg, frame0002.jpg' and so on. Here
+prefix `frame' is defined by PLOTID variable of `mglGraph' class. So
+the similar code will look like this:
+    int sample(mglGraph *gr, void *)
+    {
+        mglData dat(100);
+        char str[32];
+        for(int i=0;i<100;i++)
+        {
+            gr->NewFrame();     // start frame
+            gr->Box();          // some plotting
+            sprintf(str,"sin(pi*x+%g*pi)",0.02*i);
+            dat.Modify(str);
+            gr->Plot(dat,"b");
+            gr->EndFrame();     // end frame
+            gr->WriteFrame();   // save frame
+        }
+        return 0;
+    }
+
+   Created files can be converted to movie by help of a lot of
+programs. For example, you can use ImageMagic (command `convert
+frame*.jpg movie.mpg'), MPEG library, GIMP and so on.
+
+   Finally, you can use `mgl2gif' tool for doing the same with MGL
+scripts (*note Utilities::).
+
+
+File: mathgl_ru.info,  Node: Data handling,  Next: Data plotting,  Prev: Advanced usage,  Up: Examples
+
+2.3 Data handling
+=================
+
+Class `mglData' contains all functions for the data handling in MathGL
+(*note mglData class::). There are several matters why I use class
+`mglData' but not a single array: it does not depend on type of data
+(float or double), sizes of data arrays are kept with data, memory
+working is simpler and safer.
+
+* Menu:
+
+* Array creation::
+* Data changing::
+
+
+File: mathgl_ru.info,  Node: Array creation,  Next: Data changing,  Up: Data handling
+
+2.3.1 Array creation
+--------------------
+
+One can put the data in `mglData' instance by several ways. Let us do
+it for sinus function:
+   * one can create external array, fill it and put to `mglData'
+     variable     double *a = new double[50];
+         for(int i=0;i<50;i++)   a[i] = sin(M_PI*i/49.);
+
+         mglData y;
+         y.Set(a,50);
+
+   * another way is to create `mglData' instance of the desired size
+     and then to work directly with data in this variable     mglData y(50);
+         for(int i=0;i<50;i++)   y.a[i] = sin(M_PI*i/49.);
+
+   * next way is to fill the data in `mglData' instance by textual
+     formula with the help of `Modify()' function     mglData y(50);
+         y.Modify("sin(pi*x)");
+
+   * or one may fill the array in some interval and modify it later     mglData y(50);
+         y.Fill(0,M_PI);
+         y.Modify("sin(u)");
+
+   * finally it can be loaded from file     FILE *fp=fopen("sin.dat","wt");   // create file first
+         for(int i=0;i<50;i++)   fprintf(fp,"%g\n",sin(M_PI*i/49.));
+         fclose(fp);
+
+         mglData y("sin.dat");             // load it
+
+   * at this one can read only part of data     FILE *fp-fopen("sin.dat","wt");   // create large file first
+         for(int i=0;i<70;i++)   fprintf(fp,"%g\n",sin(M_PI*i/49.));
+         fclose(fp);
+
+         mglData y;
+         y.Read("sin.dat",50);             // load it
+
+   Creation of 2d- and 3d-arrays is mostly the same. But one should
+keep in mind that class `mglData' uses flat data representation. For
+example, matrix 30*40 is presented as flat (1d-) array with length
+30*40=1200 (nx=30, ny=40). The element with indexes {i,j} is a[i+nx*j].
+So for 2d array we have:
+    mglData z(30,40);
+    for(int i=0;i<30;i++)   for(int j=0;j<40;j++)
+        z.a[i+30*j] = sin(M_PI*i/29.)*sin(M_PI*j/39.);
+ or by using `Modify()' function
+    mglData z(30,40);
+    z.Modify("sin(pi*x)*cos(pi*y)");
+
+   The only non-obvious thing here is using multidimensional arrays in
+C/C++, i.e. arrays defined like `float dat[40][30];'. Since, formaly
+this arrays element `dat[i]' can address the memory in arbitrary place
+you should use the proper function to convert such arrays to `mglData'
+object. For C++ this is functions like `mglData::Set(float **dat, int
+N1, int N2);'. For C this is functions like `mgl_data_set_float2(HMDT
+d, const float **dat, int N1, int N2);'. At this, you should keep in
+mind that `nx=N2' and `ny=N1' after conversion.
+
+
+File: mathgl_ru.info,  Node: Data changing,  Prev: Array creation,  Up: Data handling
+
+2.3.2 Data changing
+-------------------
+
+MathGL has functions for data processing: differentiating, integrating,
+smoothing and so on (for more detail, *note mglData class::). Let us
+consider some examples. The simplest ones are integration and
+differentiation. The direction in which operation will be performed is
+specified by textual string, which may contain symbols `x', `y' or `z'.
+For example, the call of `Diff("x")' will differentiate data along `x'
+direction; the call of `Integral("xy")' perform the double integration
+of data along `x' and `y' directions; the call of `Diff2("xyz")' will
+apply 3d Laplace operator to data and so on. Example of this operations
+on 2d array a=x*y is presented in code:
+    int sample(mglGraph *gr, void *)
+    {
+        mglData a(30,40);   a.Modify("x*y");
+        gr->Axis(mglPoint(0,0,0),mglPoint(1,1,1));
+        gr->SubPlot(2,2,0); gr->Rotate(60,40);
+        gr->Surf(a);        gr->Box();
+        gr->Puts(mglPoint(0.7,1,1.2),"a(x,y)");
+        gr->SubPlot(2,2,1); gr->Rotate(60,40);
+        a.Diff("x");        gr->Surf(a);      gr->Box();
+        gr->Puts(mglPoint(0.7,1,1.2),"da/dx");
+        gr->SubPlot(2,2,2); gr->Rotate(60,40);
+        a.Integral("xy");   gr->Surf(a);      gr->Box();
+        gr->Puts(mglPoint(0.7,1,1.2),"\\int da/dx dxdy");
+        gr->SubPlot(2,2,3); gr->Rotate(60,40);
+        a.Diff2("y");       gr->Surf(a);      gr->Box();
+        gr->Puts(mglPoint(0.7,1,1.2),"\\int {d^2}a/dxdy dx");
+        return 0;
+    }
+
+ [image src="../png/sample6.png" ]
+
+Example of data differentiation and integration
+
+   Data smoothing (function `Smooth()') is more interesting and
+important. This function has 2 main arguments: type of smoothing and
+its direction. Now 4 methods are supported: `SMOOTH_NONE' does nothing
+for delta=0 or approaches data to zero with the step delta,
+`SMOOTH_LINE_3' linear averaging by 3 points, `SMOOTH_LINE_5' linear
+averaging by 5 points, `SMOOTH_QUAD_5' quadratic averaging by 5 points.
+Let me demonstrate it for 1d case:
+    int sample(mglGraph *gr, void *)
+    {
+        mglData y0(30),y1,y2,y3;
+        y0.Modify("0.4*sin(2*pi*x)+0.3*cos(3*pi*x)-0.4*sin(4*pi*x)+0.2*rnd");
+
+        y1=y0;  y1.Smooth(SMOOTH_LINE_3);
+        y2=y0;  y2.Smooth(SMOOTH_LINE_5);
+        y3=y0;  y3.Smooth(SMOOTH_QUAD_5);
+
+        gr->Plot(y0,"k");   gr->AddLegend("NONE","k");
+        gr->Plot(y1,"r");   gr->AddLegend("LINE_3","r");
+        gr->Plot(y2,"g");   gr->AddLegend("LINE_5","g");
+        gr->Plot(y3,"b");   gr->AddLegend("QUAD_5","b");
+        gr->Legend();       gr->Box();
+        return 0;
+    }
+
+ [image src="../png/sample7.png" ]
+
+Example of data smoothing
+
+   Finally one can create new data arrays on base of the existing one:
+extract slice, row or column of data (`SubData()'), summarize along
+some of direction(s) (`Sum()'), find distribution of data elements
+(`Hist()'). Note, that all these functions are not thread-safe because
+they use static internal variable for output array. In particular, the
+using of several of them in arguments of the same function will lead to
+unpredictable result.
+
+
+File: mathgl_ru.info,  Node: Data plotting,  Next: C/Fortran interface,  Prev: Data handling,  Up: Examples
+
+2.4 Data plotting
+=================
+
+Let me now show how to plot the data. MathGL generally has 2 types of
+plotting functions. Simple variant requires a single data array for
+plotting, other data (coordinates) are considered uniformly distributed
+in interval MIN*MAX. Second variant requires data arrays for all
+coordinates. It allows one to plot rather complex multivalent curves
+and surfaces (in case of parametric dependencies). Argument setting to
+default values allows one to plot data in standard form. Manual
+arguments setting gives possibility for fine tuning of colors,
+positions and view of graphics. Note, that the call of drawing function
+adds something to picture but does not clear the previous plots (as it
+does in Matlab). Another difference from Matlab is that all setup (like
+transparency, lightning, axis borders and so on) must be specified
+*before* plotting functions.
+
+* Menu:
+
+* Plots for 1D data::
+* Plots for 2D data::
+* Plots for 3D data::
+* Surface transparency::
+
+
+File: mathgl_ru.info,  Node: Plots for 1D data,  Next: Plots for 2D data,  Up: Data plotting
+
+2.4.1 Plots for 1D data
+-----------------------
+
+Term "1D data" means that data depend on single index (parameter) like
+curve in parametric form {x(i),y(i),z(i)}, i=1...n. There are 5
+generally different types of data representations: simple line plot,
+line plot with filling under it, stairs plot, bar plot and vertical
+lines (*note 1D plotting::). Each type of plotting has similar
+interface. There are 3D version and two 2D versions. One of last
+requires single array. The parameters of line and marks (*note Line
+styles::) are specified by the string argument. If the string parameter
+is `NULL' then solid line with color from palette is used (*note
+Palette and colors::).
+
+   Below I shall show the features of 1D plotting on base of `Plot()'
+function (*note Plot::). Let us start from sinus plot:
+    int sample(mglGraph *gr, void *)
+    {
+        mglData y0(50); 	y0.Modify("sin(pi*(2*x-1))");
+        gr->SubPlot(2,2,0);
+        gr->Plot(y0);   	gr->Box();
+ Style of line is not specified in `Plot()' function. So MathGL uses
+the solid line with first color of palette (this is blue). Next subplot
+shows array Y1 with 2 rows:
+        gr->SubPlot(2,2,1);
+        mglData y1(50,2);
+        y1.Modify("sin(pi*2*x-pi)");
+        y1.Modify("cos(pi*2*x-pi)/2",1);
+        gr->Plot(y1);   	gr->Box();
+ As previously I did not specify the style of lines. As a result,
+MathGL again uses solid line with next colors in palette (there are
+green and red). Now let us plot a circle on the same subplot. The
+circle is parametric curve x=cos(\pi t), y=sin(\pi t). I will set the
+color of the circle (dark yellow, `Y') and put marks `+' at point
+position:
+        mglData x(50);  	x.Modify("cos(pi*2*x-pi)");
+        gr->Plot(x,y0,"Y+");
+ Note that solid line is used because I did not specify the type of
+line. The same picture can be achieved by `Plot2()' function. Let us
+draw ellipse by orange dash line:
+        gr->Plot2(y1,"q|");
+
+   Drawing in 3D space is mostly the same. Let us draw spiral with
+default line style. Now its color is 4-th color from palette (this is
+cyan):
+        gr->SubPlot(2,2,2);	gr->Rotate(60,40);
+        mglData z(50);  	z.Modify("2*x-1");
+        gr->Plot(x,y0,z);	gr->Box();
+ Function `Plot3()' does 3D curve plot but for single array. Use it to
+put circle marks on the previous plot:
+        mglData y2(10,3);	y2.Modify("cos(pi*(2*x-1+y))");
+        y2.Modify("2*x-1",2);
+        gr->Plot3(y2,"bo ");
+ Note that line style is empty ` ' here. Usage of other 1D plotting
+functions looks similar:
+        gr->SubPlot(2,2,3);	gr->Rotate(60,40);
+        gr->Bars(x,y0,z,"r");	gr->Box();
+        return 0;
+    }
+
+ [image src="../png/sample8.png" ]
+
+Example of 1D data plot
+
+
+File: mathgl_ru.info,  Node: Plots for 2D data,  Next: Plots for 3D data,  Prev: Plots for 1D data,  Up: Data plotting
+
+2.4.2 Plots for 2D data
+-----------------------
+
+Surfaces `Surf()' and other 2D plots (*note 2D plotting::) are drown
+the same simpler as 1D one. The difference is that the string parameter
+specifies not by line style but by the color scheme of the plot (*note
+Color scheme::). Here I draw attention on 4 most interesting color
+schemes. There is gray scheme where color is changed from black to
+white (string `kw') or from white to black (string `wk'). Another
+scheme is useful for accentuation of negative (by blue color) and
+positive (by red color) regions on plot (string `"BbwrR"'). Last one is
+the popular "jet" scheme (string `"BbcyrR"').
+
+   Now I shall show the example of a surface drawing. At first let us
+switch lightning on
+    int sample(mglGraph *gr, void *)
+    {
+        gr->Light(true);	gr->Light(0,mglPoint(0,0,1));
+ and draw the surface, considering coordinates x,y to be uniformly
+distributed in interval MIN*MAX
+        mglData a0(50,40);
+        a0.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+        gr->SubPlot(2,2,0);	gr->Rotate(60,40);
+        gr->Surf(a0);		gr->Box();
+ Color scheme was not specified. So previous color scheme is used. In
+this case it is default color scheme ("jet") for the first plot. Next
+example is a sphere. The sphere is parametrically specified surface:
+        mglData x(50,40),y(50,40),z(50,40);
+        x.Modify("0.8*sin(2*pi*x)*sin(pi*y)");
+        y.Modify("0.8*cos(2*pi*x)*sin(pi*y)");
+        z.Modify("0.8*cos(pi*y)");
+        gr->SubPlot(2,2,1);	gr->Rotate(60,40);
+        gr->Surf(x,y,z,"BbwrR");gr->Box();
+ I set color scheme to `"BbwrR"' that corresponds to red top and blue
+bottom of the sphere.
+
+   Surfaces will be plotted for each of slice of the data if NZ>1. Next
+example draws surfaces for data arrays with NZ=3:
+        mglData a1(50,40,3);
+        a1.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+        a1.Modify("0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))",1);
+        a1.Modify("0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))",2);
+        gr->SubPlot(2,2,2);	gr->Rotate(60,40);
+        gr->Alpha(true);
+        gr->Surf(a1);		gr->Box();
+ Note, that it may entail a confusion. However, if one will use density
+plot then the picture will look better:
+        gr->SubPlot(2,2,3);	gr->Rotate(60,40);
+        gr->Dens(a1);		gr->Box();
+        return 0;
+    }
+ Note, that the previous color scheme is used in last plots because
+there are no direct specification of the one.
+
+ [image src="../png/sample9.png" ]
+
+Example of surface plot for 2D data
+
+   Drawing of other 2D plots is analogous. The only peculiarity is the
+usage of flag `#'. By default this flag switches on the drawing of a
+grid on plot (`Grid()' or `Mesh()' for plots in plain or in volume).
+However, for isosurfaces (including surfaces of rotation `Axial()')
+this flag switches the  face drawing off. Figure becomes wired. The
+following code gives example of flag `#' using (compare with normal
+function drawing as in its description):
+    int sample(mglGraph *gr, void *)
+    {
+        gr->Alpha(true);	gr->Light(true);	gr->Light(0,mglPoint(0,0,1));
+        mglData a(30,20);
+        a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+
+        gr->SubPlot(2,2,0);	gr->Rotate(40,60);
+        gr->Surf(a,"BbcyrR#");		gr->Box();
+        gr->SubPlot(2,2,1);	gr->Rotate(40,60);
+        gr->Dens(a,"BbcyrR#");		gr->Box();
+        gr->SubPlot(2,2,2);	gr->Rotate(40,60);
+        gr->Cont(a,"BbcyrR#");		gr->Box();
+        gr->SubPlot(2,2,3);	gr->Rotate(40,60);
+        gr->Axial(a,"BbcyrR#");		gr->Box();
+        return 0;
+    }
+
+ [image src="../png/samplea.png" ]
+
+Example of 2D data plot with color scheme contained `#' symbol
+
+
+File: mathgl_ru.info,  Node: Plots for 3D data,  Next: Surface transparency,  Prev: Plots for 2D data,  Up: Data plotting
+
+2.4.3 Plots for 3D data
+-----------------------
+
+Drawing procedures for 3D plot looks similarly to 1D and 2D plots
+described above. There are 3 general types of 3D plots (*note 3D
+plotting::): (i) plots on slices or on projections, (ii) isosurfaces,
+(iii) cloud-like plots. Plots on slice are clear enough - one specifies
+a slice (as its index or as coordinate value) and MathGL draws contour
+lines or density plot on slice plane. Isosurface gives more
+information. Isosurface is 3D analogue of the contour line `Cont()'. It
+shows the region where data array values exceed specified isosurface
+level. Plot becomes more informative if one adds transparency,
+lightning or sets color scheme depending on coordinates. Generalization
+of isosurface is the cloud-like plot. For this plot the darker color
+and less transparent regions correspond to higher values of data.
+Contrary, the regions with low values are transparent. For plotting of
+the phase of fields (or beams or pulses) one can use isosurface which
+transparency depends on the other data array (see function `Surf3A()').
+As example of 3D data plots let us draw the Gaussian beam diffraction
+in space. Beam propagates along X axis:
+    int sample(mglGraph *gr, void *)
+    {
+        gr->Alpha(true);    gr->Light(true);
+        gr->Light(0,mglPoint(0,0,1));
+        mglData a(30,30,30),b(30,30,30);
+        a.Modify("exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))");
+        b.Modify("16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)");
+        gr->CAxis(0,1);
+
+        gr->SubPlot(2,2,0); gr->Rotate(40,60);
+        gr->Surf3(a,"wgk"); gr->Box();
+        gr->SubPlot(2,2,1); gr->Rotate(40,60);
+        gr->DensA(a);       gr->Box();  gr->Axis();
+        gr->SubPlot(2,2,2); gr->Rotate(40,60);
+        gr->CloudQ(a);      gr->Box();
+        gr->SubPlot(2,2,3); gr->Rotate(40,60);
+        gr->Surf3A(b,a,"q");gr->Box();
+        return 0;
+    }
+
+ [image src="../png/sampleb.png" ]
+
+Example of Gaussian beam diffraction (3D data)
+
+
+File: mathgl_ru.info,  Node: Surface transparency,  Prev: Plots for 3D data,  Up: Data plotting
+
+2.4.4 Surface transparency
+--------------------------
+
+MathGL library has advanced features for setting and handling the
+surface transparency. The simplest way to add transparency is the using
+of function `Alpha()'. As a result, all further surfaces (and
+isosurfaces, density plots and so on) become transparent. However,
+their  look can be additionally improved.
+
+   First, the selected surface will be non-transparent if one sets the
+flag `Transparent' before the surface drawing and sets it off after the
+drawing.
+
+   Second, the value of transparency can be different from surface to
+surface. To do it just change the value of `AlphaDef' before the
+drawing of the selected surface. If its value is close to 0 then the
+surface becomes more and more transparent. Contrary, if its value is
+close to 1 then the surface becomes practically non-transparent. This
+is some analogue of `Transparent=true'.
+
+   Third feature is the changing of the way how the light goes through
+overlapped surfaces. The variable `TranspType' defines it. By default
+the usual transparency is used (`TranspType=0') - surfaces below is
+less visible than the upper ones. A "glass-like" transparency
+(`TranspType=1') has a different look when the surface just decreases
+the background light (the surfaces are commutable in this case).
+
+   A "neon-like" transparency (`TranspType=2') has more interesting
+look. In this case a surface is the light source (like a lamp on the
+dark background) and just adds some intensity to the color. At this,
+the library sets automatically the black color for the background and
+changes the default line color to white.
+
+   As example I shall show the variant of plot from *note Plots for 2D
+data:: (grid drawing is disabled) for different types of transparency.
+ [image src="../png/type0.png" ]
+
+Example of `TranspType=0'.
+
+ [image src="../png/type1.png" ]
+
+Example of `TranspType=1'.
+
+ [image src="../png/type2.png" ]
+
+Example of `TranspType=2'.
+
+
+File: mathgl_ru.info,  Node: C/Fortran interface,  Next: MathGL and PyQt,  Prev: Data plotting,  Up: Examples
+
+2.5 C/Fortran interface
+=======================
+
+The usage of pure C or Fortran or any similar interfaces (*note C
+interface::) is practically identical to classes usage. But there are
+some differences. C functions must have argument HMGL (for graphics)
+and/or HMDT (for data arrays) which specifies the object for drawing or
+manipulating (changing). Fortran users may regard these variables as
+integer. So, firstly the user has to create this object by function
+mgl_create_*() and has to delete it after the using by function
+mgl_delete_*().
+
+   Also, all arguments of C function have to be defined. So there are
+several functions with practically identical names doing practically
+the same. But some of them have simplified interface for the quick
+plotting and some of them have access to all plotting parameters for
+manual tunning.
+
+   As an example of C function usage let me draw the plot from *note
+Plots for 2D data::. The C code which does it is shown below:
+    #include <mgl/mgl_c.h>
+    int main()
+    {
+        HMGL gr = mgl_create_graph_zb(600, 400);
+        mgl_set_alpha(gr, true);
+        mgl_set_light(gr, true);
+        HMDT a = mgl_create_data_size(30,20,1);
+        mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+
+        mgl_subplot(gr, 2,2,0);
+        mgl_rotate(gr, 40,60,0);
+        mgl_surf(gr,a,"BbcyrR#");
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,1);
+        mgl_rotate(gr, 40,60,0);
+        mgl_dens(gr,a,"BbcyrR#",NAN);
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,2);
+        mgl_rotate(gr, 40,60,0);
+        mgl_cont(gr,a,"BbcyrR#",7,NAN);
+        mgl_box(gr, true);
+        mgl_subplot(gr, 2,2,3);
+        mgl_rotate(gr, 40,60,0);
+        mgl_axial(gr,a,"BbcyrR#",3);
+        mgl_box(gr, true);
+
+        /* don't forgot to save graphics */
+        mgl_write_png(gr,"sample.png",0);
+        return 0;
+    }
+
+   Practically the same simple to create a window. For example let
+rewrite the code from for window creation (*note Using FLTK/GLUT
+window::):
+    int sample(HMGL gr, void *)
+    {
+        mgl_rotate(gr,60,40,0);
+        mgl_box(gr,1);
+        return 0;
+    }
+    //-----------------------------------------------------
+    int main(int argc,char **argv)
+    {
+        mgl_create_graph_fltk(sample, "MathGL examples", NULL);
+        mgl_fltk_run();
+        return 0;
+    }
+
+   The Fortran code have some peculiarities. Exactly it not allow one
+to send arbitrary parameter (which was `NULL' in previous example) to
+function. This is limitation of Fortran language. So, the corresponding
+code will be *NOT TESTED NOW!!!*:
+    program TEST
+    integer x,f,func
+        call mgl_create_graph_fltk(sample, 'MathGL examples');
+        call mgl_fltk_run();
+    end program TEST
+
+    integer function sample(gr)
+    integer*8 gr
+        call mgl_rotate(gr,60,40,0);
+        call mgl_box(gr,1);
+        sample=0
+    return
+    end
+
+
+File: mathgl_ru.info,  Node: MathGL and PyQt,  Next: Hints,  Prev: C/Fortran interface,  Up: Examples
+
+2.6 MathGL and PyQt
+===================
+
+Generally SWIG based classes (including the Python one) are the same as
+C++ classes. However, there are few tips for using MathGL with PyQt.
+Below I place a very simple python code which demonstrate how MathGL
+can be used with PyQt. This code is mostly written by Prof. Dr. Heino
+Falcke. You can just copy it to a file `mgl-pyqt-test.py' and execute
+it from python shell by command `execfile("mgl-pyqt-test.py")'
+
+from PyQt4 import QtGui,QtCore
+from mathgl import *
+import sys
+app = QtGui.QApplication(sys.argv)
+qpointf=QtCore.QPointF()
+
+class hfQtPlot(QtGui.QWidget):
+    def __init__(self, parent=None):
+        QtGui.QWidget.__init__(self, parent)
+        self.img=(QtGui.QImage())
+    def setgraph(self,gr):
+        self.buffer='\t'
+        self.buffer=self.buffer.expandtabs(4*gr.GetWidth()*gr.GetHeight())
+        gr.GetBGRN(self.buffer,len(self.buffer))
+        self.img=QtGui.QImage(self.buffer, gr.GetWidth(),gr.GetHeight(),QtGui.QImage.Format_ARGB32)
+        self.update()
+    def paintEvent(self, event):
+        paint = QtGui.QPainter()
+        paint.begin(self)
+        paint.drawImage(qpointf,self.img)
+        paint.end()
+
+BackgroundColor=[1.0,1.0,1.0]
+size=100
+gr=mglGraph()
+y=mglData(size)
+#y.Modify("((0.7*cos(2*pi*(x+.2)*500)+0.3)*(rnd*0.5+0.5)+362.135+10000.)")
+y.Modify("(cos(2*pi*x*10)+1.1)*1000.*rnd-501")
+x=mglData(size)
+x.Modify("x^2");
+
+def plotpanel(gr,x,y,n):
+    gr.SubPlot(2,2,n)
+    gr.SetXRange(x)
+    gr.SetYRange(y)
+    gr.AdjustTicks()
+    gr.Axis()
+    gr.Box()
+    gr.Label("x","x-Axis",1)
+    gr.Label("y","y-Axis",1)
+    gr.ClearLegend()
+    gr.AddLegend("Legend: "+str(n),"k")
+    gr.Legend()
+    gr.Plot(x,y)
+
+
+gr.Clf(BackgroundColor[0],BackgroundColor[1],BackgroundColor[2])
+gr.SetPlotFactor(1.5)
+plotpanel(gr,x,y,0)
+y.Modify("(cos(2*pi*x*10)+1.1)*1000.*rnd-501")
+plotpanel(gr,x,y,1)
+y.Modify("(cos(2*pi*x*10)+1.1)*1000.*rnd-501")
+plotpanel(gr,x,y,2)
+y.Modify("(cos(2*pi*x*10)+1.1)*1000.*rnd-501")
+plotpanel(gr,x,y,3)
+
+gr.WritePNG("test.png","Test Plot")
+
+qw = hfQtPlot()
+qw.show()
+qw.setgraph(gr)
+qw.raise_()
+
+
+File: mathgl_ru.info,  Node: Hints,  Prev: MathGL and PyQt,  Up: Examples
+
+2.7 Hints
+=========
+
+In this section I have included some small hints and advices for the
+improving of the quality of plots and for the demonstration of some
+non-trivial features of MathGL library. In contrast to previous
+examples I showed mostly the idea but not the whole drawing function.
+More examples with the source code can be find at
+`http://mathgl.sf.net/' or in section *note Samples::.
+
+* Menu:
+
+* ``Compound'' graphics::
+* Two axes in one plot::
+* Titles for the plot::
+* Changing of the color range::
+* Management of a point cutting::
+* Vector field visualization::
+* Several light sources::
+* CutMin and CutMax features::
+* Mapping visualization::
+* Log-scaled plot::
+* ``Templates''::
+* Nonlinear fitting hints::
+* PDE solving hints::
+* MGL parser using::
+* Stereo image::
+
+
+File: mathgl_ru.info,  Node: ``Compound'' graphics,  Next: Two axes in one plot,  Up: Hints
+
+2.7.1 "Compound" graphics
+-------------------------
+
+As I noted above, MathGL functions (except the special one, like Clf())
+do  not erase the previous plotting but just add the new one. It allows
+one to draw "compound" plots easily. For example, popular Matlab
+command `surfc' can be emulated in MathGL by 2 calls:
+    Surf(a);
+    Cont(a, 0, 7, -1);     // draw contours at z = -1
+ Here A is 2-dimensional data for the plotting, `-1' is the value of
+z-coordinate at which the contour should be plotted (at the bottom in
+this example). Analogously, one can draw density plot instead of
+contour lines and so on.
+
+   Another nice plot is contour lines plotted directly on the surface:
+    Light(true);       // switch on light for the surface
+    Surf(a, "BbcyrR"); // select 'jet' colormap for the surface
+    Cont(a, "y");      // and yellow color for contours
+ The possible difficulties arise in black&white case, when the color of
+the surface can be close to the color of a contour line. In that case I
+may suggest the following code:
+    Light(true);       // switch on light for the surface
+    Surf(a, "kw");     // select 'gray' colormap for the surface
+    CAxis(-1,0);       // first draw for darker surface colors
+    Cont(a, "w");      // white contours
+    CAxis(0,1);        // now draw for brighter surface colors
+    Cont(a, "k");      // black contours
+    CAxis(-1,1);       // return color range to original state
+ The idea is to divide the color range on 2 parts (dark and bright) and
+to select the contrasting color for contour lines for each of part.
+
+   Similarly, one can plot flow thread over density plot of vector
+field amplitude (this is another amusing plot from Matlab) and so on.
+The list of compound graphics can be prolonged but I hope that the
+general idea is clear.
+
+
+File: mathgl_ru.info,  Node: Two axes in one plot,  Next: Titles for the plot,  Prev: ``Compound'' graphics,  Up: Hints
+
+2.7.2 Two axes in one plot
+--------------------------
+
+Developing the previous hint one can make a plot with 2 or more axes.
+The idea is that the change of settings does not influence on the
+already drawn graphics. So, for 2-axes plot let us set the first axis
+and draw everything concerning it. Then let us setup the second axis
+and draw things for the second axis. The corresponding code is (*note
+2-axes sample::):
+    // set up first axis
+    Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,-1,-1));
+    Axis();            // draw it
+    Plot(y1,"b");      // draw something in first axis
+    // set up second axis
+    Axis(mglPoint(0,0,0),mglPoint(1,1,1),mglPoint(1,1,1));
+    Axis();            // draw it
+    Stem(y2,"r");      // draw something in second axis
+ Note, that the first and the second axes look better if being placed
+in different corners. In the code presented above the first axis is
+placed in the left-bottom corner, and the second one is placed in the
+right-top corner.
+
+
+File: mathgl_ru.info,  Node: Titles for the plot,  Next: Changing of the color range,  Prev: Two axes in one plot,  Up: Hints
+
+2.7.3 Titles for the plot
+-------------------------
+
+The printing of nice titles for the plot is not so trivial task in
+general case. The problem is that the rotation and aspect change lead
+to different looks for titles of different subplots. So, the resulting
+look is not so good as it could be. The solution is simple - to print
+titles exactly after `SubPlot'() call and before any rotation, aspect
+change and so on! Analogously, the title for the whole picture looks
+better if it is printed first (before any `SubPlot()' calls).
+Alternatively you can use function `Title()' for plotting title for the
+picture at any time.
+
+
+File: mathgl_ru.info,  Node: Changing of the color range,  Next: Management of a point cutting,  Prev: Titles for the plot,  Up: Hints
+
+2.7.4 Changing of the color range
+---------------------------------
+
+By default (for the user comfort), the color range is set equal to
+z-range of the plot. However, there are different ranges. So, one can
+obtain amusing plot by the change of color range manually. For example,
+there are plots with one-color bottom (or top) or practically bi-color
+picture and so on.
+
+   For example, compare 2 surfaces:
+    SubPlot(2,1,0)
+    Surf(a);           // usual coloring range
+    SubPlot(2,1,1)
+    CAxis(0,1);
+    Surf(a);           // bottom of the surface have one-colour filling
+
+
+File: mathgl_ru.info,  Node: Management of a point cutting,  Next: Vector field visualization,  Prev: Changing of the color range,  Up: Hints
+
+2.7.5 Management of a point cutting
+-----------------------------------
+
+Sometimes an experimental or numerical surface has outstanding points.
+Visualization of such surface will lead to the hole(s) in place of such
+points. The standard method of "fighting"  - to change data values - is
+not always good and is not so convenient. MathGL library has another
+method - to set variable `Cut=false'. As a consequence, all outstanding
+points will be projected on the bounding box.
+
+   Such method is good not only for outstanding points but also for the
+case when one need to plane the bottom or the top of the plot. Exactly
+such case is demonstrated in the code:
+        mglData a(20,30);  // create some data
+        a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+        // set lower border above the data minimal value
+        Axis(mglPoint(-1,-1,0),mglPoint(1,1,1));
+        Cut = false;       // set off cutting flag
+`       Surf(a);           // and draw the surface
+ It is an interesting result, is not it?
+
+
+File: mathgl_ru.info,  Node: Vector field visualization,  Next: Several light sources,  Prev: Management of a point cutting,  Up: Hints
+
+2.7.6 Vector field visualization
+--------------------------------
+
+Vector field visualization (especially in 3d case `Vect3' or `VectC')
+may look tangly - there are too many overlapping lines. I may suggest 2
+ways to solve this problem. The first one is to change `MeshNum' for
+decreasing the number of hachures. The second way is to use the flow
+thread chart `Flow'. Unfortunately, I don't know any other methods to
+visualize 3d vector field. If you know any, e-mail me and I shall add
+it to MatGL.
+
+
+File: mathgl_ru.info,  Node: Several light sources,  Next: CutMin and CutMax features,  Prev: Vector field visualization,  Up: Hints
+
+2.7.7 Several light sources
+---------------------------
+
+In contrast to the most of other programs, MathGL supports several (up
+to 10) light sources. Moreover, the color each of them can be
+different: white (this is usual), yellow, red, cyan, green and so on.
+The use of several light sources may be interesting for the
+highlighting of some peculiarities of the plot or just to make an
+amusing picture. Note, each light source can be switched on/off
+individually (*note Several light sample::).
+
+
+File: mathgl_ru.info,  Node: CutMin and CutMax features,  Next: Mapping visualization,  Prev: Several light sources,  Up: Hints
+
+2.7.8 CutMin and CutMax features
+--------------------------------
+
+MathGL library has a feature for cutting of points in some region
+CUTMIN*CUTMAX. Such an excision can be used to improve the look of the
+graphics. Moreover, this cutting may help to show an internal structure
+of an object (like `isocaps' plot in Matlab). For example, let us use
+the standard 3D data array and show its interior (*note CutMinMax
+sample::).
+
+    mglData  c(61,51,40);      // create the data
+    mglData v(10);	v.Fill(-0.5,1);
+    c.Modify("(-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1))");
+    gr->CutMin = mglPoint(0,-1,-1);     gr->CutMax = mglPoint(1,0,1.1);
+    gr->Surf3(-0.5,c,"BbcyrR");
+    gr->ContF3(v,c,'x',-1,"BbcyrR");    gr->ContF3(v,c,'y',-1,"BbcyrR");
+    gr->ContF3(v,c,'z',0,"BbcyrR");     gr->ContF3(v,c,'z',39,"BbcyrR");
+
+   One can also exclude points from arbitrary area in space. This area
+defined by textual formula `CutOff()' (*note Cutting::). The algorithm
+is the same as shown for "rectangular cutting".
+
+
+File: mathgl_ru.info,  Node: Mapping visualization,  Next: Log-scaled plot,  Prev: CutMin and CutMax features,  Up: Hints
+
+2.7.9 Mapping visualization
+---------------------------
+
+Sometime ago I worked with mapping and have a question about its
+visualization. Let me remember you that mapping is some transformation
+rule for one set of number to another one. The 1d mapping is just an
+ordinary function - it takes a number and transforms it to another one.
+The 2d mapping (which I used) is a pair of functions which take 2
+numbers and transform them to another 2 ones. Except general plots
+(like `SurfC', `SurfA') there is a special plot - Arnold diagram. It
+shows the area which is the result of mapping of some initial area
+(usually square).
+
+   I tried to make such plot in `Map'. It shows the set of points or
+set of faces, which final position is the result of mapping. At this,
+the color gives information about their initial position and the height
+describes Jacobian value of the transformation. Unfortunately, it looks
+good only for the simplest mapping but for the  real multivalent
+quasi-chaotic mapping it produces a confusion. So, use it if you like
+:).
+
+
+File: mathgl_ru.info,  Node: Log-scaled plot,  Next: ``Templates'',  Prev: Mapping visualization,  Up: Hints
+
+2.7.10 Log-scaled plot
+----------------------
+
+Log-scaled plot can be drawn by 2 steps. First, one should change the
+scale of axis by call `SetFunc("lg(x)", "lg(y)");' (in this example, x-
+and y-axis will be log-scaled). Second, one should set logarithmic
+scale for axis ticks by changing variables: `SetTicks('x',0);
+SetTicks('y',0);'. Finally, one should check (or change) the axis
+ranges and origin so that their values to be positive. For example of
+log-log plot *note Log-log sample::.
+
+
+File: mathgl_ru.info,  Node: ``Templates'',  Next: Nonlinear fitting hints,  Prev: Log-scaled plot,  Up: Hints
+
+2.7.11 "Templates"
+------------------
+
+As I have noted before, the change of settings will influence only for
+the further plotting commands. This allows one to create template
+function which will contain settings and primitive drawing for often
+used plots. Correspondingly one may call this template-function for
+drawing simplification.
+
+   For example, let one has a set of points (experimental or numerical)
+and wants to compare it with theoretical law (for example, with
+exponent law \exp(-x/2), x \in [0, 20]). The template-function for this
+task is:
+    void template(mglGraph *gr)
+    {
+        mglData  law(100);      // create the law
+        law.Modify("exp(-10*x)");
+        gr->Axis(mglPoint(0,0.0001), mglPoint(20,1), mglPoint(0,0.0001));
+        gr->SetFunc(0,"lg(y)",0);   gr->dy = 0;
+        gr->Plot(law,"r2");
+        gr->Text(mglPoint(10,0.2),"Theoretical law: e^x","rL");
+        gr->Label('x',"x val."); gr->Label('y',"y val.");
+        gr->Axis(); gr->Grid("xy","g;"); gr->Box();
+    }
+ At this, one will only write a few lines for data drawing:
+    template(gr);     // apply settings and default drawing from template
+    mglData dat("fname.dat"); // load the data
+    // and draw it (suppose that data file have 2 columns)
+    gr->Plot(dat.SubData(0),dat.SubData(1),"bx ");
+ A template-function can also contain settings for font, transparency,
+lightning, color scheme and so on.
+
+
+File: mathgl_ru.info,  Node: Nonlinear fitting hints,  Next: PDE solving hints,  Prev: ``Templates'',  Up: Hints
+
+2.7.12 Nonlinear fitting hints
+------------------------------
+
+Nonlinear fitting is rather simple. All that you need is the data to
+fit, the approximation formula and the list of coefficients to fit
+(better with its initial guess values). Let me demonstrate it on the
+following simple example (*note Fitting sample::). First, let us use
+sin function with some random noise:
+    mglData rnd(100), idl(50); //data to be fitted and ideal data
+    rnd.Modify("0.4*rnd+0.1+sin(4*pi*x)");
+    idl.Modify("0.3+sin(4*pi*x)");
+ and plot it to see that data we will fit
+    gr->Axis(mglPoint(-1,-2), mglPoint(1,2));
+    gr->Plot(rnd, ". "); gr->Plot(idl, "b");
+    gr->Box();
+    gr->Text(mglPoint(0,2.2), "initial: y = 0.3+sin(2\pi x)", "C:b", -1);
+
+   The next step is the fitting itself. For that let me specify an
+initial values INI for coefficients `abc' and do the fitting for
+approximation formula `a+b*sin(c*x)'
+    mglData res;   // The data for found formula
+    float ini[3] = {1, 1, 3};
+    gr->Fit(res, rnd, "a+b*sin(c*x)", "abc", ini);
+ Now display it
+    gr->Plot(res, "r");
+    gr->Text(mglPoint(-1,-1.3), "fitted:", "L:r", -1);
+    gr->PutsFit(mglPoint(0,-1.8), "y = ", "C:r", -1);
+
+   NOTE! the fitting results may have strong dependence on initial
+values for coefficients due to algorithm features. The problem is that
+in general case there are several local "optimums" for coefficients and
+the program returns only first found one! There are no guaranties that
+it will be the best. Try for example to set `ini[3] = {0, 0, 0}' in the
+code above.
+
+
+File: mathgl_ru.info,  Node: PDE solving hints,  Next: MGL parser using,  Prev: Nonlinear fitting hints,  Up: Hints
+
+2.7.13 PDE solving hints
+------------------------
+
+Solving of Partial Differential Equations (PDE, including beam tracing)
+and ray tracing (or finding particle trajectory) are more or less
+common task. So, MathGL have several functions for that. There are
+`mglRay()' for ray tracing, `mglPDE()' for PDE solving, `mglQO2d()' for
+beam tracing in 2D case (*note Global functions::). Note, that these
+functions take "Hamiltonian" or equations as string values. And I don't
+plan now to allow one to use user-defined functions. There are 2
+reasons: the complexity of corresponding interface; and the basic
+nature of used methods which are good for samples but may not good for
+serious scientific calculations.
+
+   The ray tracing can be done by `mglRay()' function. Really ray
+tracing equation is Hamiltonian equation for 3D space. So, the function
+can be also used for finding a particle trajectory (i.e. solve
+Hamiltonian ODE) for 1D, 2D or 3D cases. The function have a set of
+arguments. First of all, it is Hamiltonian which defined the media (or
+the equation) you are planning to use. The Hamiltonian is defined by
+string which may depend on coordinates `x', `y', `z', time `t' (for
+particle dynamics) and momentums `p'=p_x, `q'=p_y, `v'=p_z. Next, you
+have to define the initial conditions for coordinates and momentums at
+`t'=0 and set the integrations step (default is 0.1) and its duration
+(default is 10). The Runge-Kutta method of 4-th order is used for
+integration.
+    mglData r,a,re(128),im(128);
+    r = mglRay("p^2+q^2-x-1", mglPoint(-0.7, -1), mglPoint(0, 0.5));
+    gr->Plot(r.SubData(0), r.SubData(1));
+ This example calculate the reflection from linear layer (media with
+Hamiltonian `p^2+q^2-x-1'=p_x^2+p_y^2-x-1). This is parabolic curve.
+The resulting array have 7 columns which contain data for
+{x,y,z,p,q,v,t}.
+
+   The solution of PDE is a bit more complicated. As previous you have
+to specify the equation as pseudo-differential operator \hat H(x,
+\nabla) which is called sometime as "Hamiltonian" (for example, in beam
+tracing). As previously, it is defined by string which may depend on
+coordinates `x', `y', `z' (but not time!), momentums `p'=(d/dx)/i k_0,
+`q'=(d/dy)/i k_0 and field amplitude `u'=|u|. The evolutionary
+coordinate is `z' in all cases. So that, the equation look like du/dz =
+ik_0 H(x,y,\hat p, \hat q, |u|)[u]. Dependence on field amplitude
+`u'=|u| allows one to solve nonlinear problems too. For example, for
+nonlinear Shrodinger equation you may set `ham="p^2 + q^2 - u^2"'. Also
+you may specify imaginary part for wave absorption, like `ham = "p^2 +
+i*x*(x>0)"', but only if dependence on variable `i' is linear (i.e. H =
+Hre+i*Him).
+
+   Next step is specifing the initial conditions at `z'=`Min.z'. The
+function need 2 arrays for real and for imaginary part. Note, that
+coordinates x,y,z are supposed to be in specified range [Min, Max]. So,
+the data arrays should have corresponding scales. Finally, you may set
+the integration step and paramter k0=k_0. Also keep in mind, that
+internally the 2 times large box is used (for suppressing numerical
+reflection from boundaries) and the equation should well defined even
+in this extended range.
+
+   Final comment is concerning the possible form of pseudo-differential
+operator H. At this moment, simplified form of operator H is supported
+- all "mixed" terms (like `x*p'->x*d/dx) are excluded. For example, in
+2D case this operator is effectively H = f(p,z) + g(x,z,u). However
+commutable combinations (like `x*q'->x*d/dy) are allowed for 3D case.
+
+   So, for example let solve the equation for beam deflected from
+linear layer and absorbed later. The operator will have the form
+`"p^2+q^2-x-1+i*0.5*(z+x)*(z>-x)"' that correspond to equation ik_0
+\partial_z u + \Delta u + x \cdot u + i (x+z)/2 \cdot u = 0. This is
+typical equation for Electron Cyclotron (EC) absorption in magnetized
+plasmas. For initial conditions let me select the beam with plane phase
+front exp(-48*(x+0.7)^2). The corresponding code looks like this (*note
+PDE sample::):
+    mglData a,re(128),im(128);
+    re.Fill("exp(-48*(x+0.7)^2)", gr->Min, gr->Max);
+    a = mglPDE("p^2+q^2-x-1+i*0.5*(z+x)*(z>-x)", re, im,
+                gr->Min, gr->Max, 0.01, 30);
+    a.Transpose("yxz");
+    gr->CAxis(0, 1);
+    gr->Dens(a,"wyrRk");
+
+   The last example is example of beam tracing. Beam tracing equation
+is special kind of PDE equation written in coordinates accompanied to a
+ray. Generally this is the same parameters and limitation as for PDE
+solving but the coordinates are defined by the ray and by parameter of
+grid width W in direction transverse the ray. So, you don't need to
+specify the range of coordinates. *BUT* there is limitation. The
+accompanied coordinates are well defined only for smooth enough rays,
+i.e. then the ray curvature K (which is defined as 1/K^2 = (|\ddot r|^2
+|\dot r|^2 - (\ddot r, \dot r)^2)/|\dot r|^6) is much large then the
+grid width: K>>w. So, you may receive incorrect results if this
+condition will be broken.
+
+   You may use following code for obtaining the same solution as in
+previous example:
+    mglData r, xx, yy, a, im(128), re(128);
+    const char *ham = "p^2+q^2-x-1+i*0.5*(y+x)*(y>-x)";
+    r = mglRay(ham, mglPoint(-0.7, -1), mglPoint(0, 0.5), 0.02, 2);
+    // now start beam tracing
+    re.Fill("exp(-48*x^2)", gr->Min, gr->Max);
+    a = mglQO2d(ham, re, im, r, 1, 30, &xx, &yy);
+    gr->CAxis(0, 1);
+    gr->Dens(xx, yy, a, "wyrRk");
+
+
+File: mathgl_ru.info,  Node: MGL parser using,  Next: Stereo image,  Prev: PDE solving hints,  Up: Hints
+
+2.7.14 MGL parser using
+-----------------------
+
+Sometimes you may prefer to use MGL scripts in yours code. It is
+simpler (especially in comparison with C/Fortran interfaces) and fast
+way to plot the data with annotations, labels and so on. Class
+`mglParse' (*note mglParse class:: parse MGL scripts in C++. It have
+also the corresponding interface for C/Fortran.
+
+   The key function here is `mglParse::Parse()' (or `mgl_parse()' for
+C/Fortran) which execute one command per string. At this the detailed
+information about the possible errors or warnings is passed as function
+value. Or you may execute the whole script as long string with lines
+separated by `\n'. Functions `mglParse::Execute()' and
+`mgl_parse_text()' perform it. Also you may set the values of paramters
+`$0'...`$9' for the script by functions `mglParse::AddParam()' or
+`mgl_add_param()', allow/disable picture resizing, check "once" status
+and so on. The usage is rather stright-forward.
+
+   The only non-obvious thing is data transition between script and
+yours program. There are 2 stages: add or find variable; and set data
+to variable. In C++ you may use functions `mglParse::AddVar()' and
+`mglParse::FindVar()' which return pointer to `mglVar' structure. This
+structure contain data itself, the variable name and callback function
+which will be called if variable destroied. Last feature allows you to
+control the presence of the variable and, for example, close a window
+with data if this variable is destroyed. In C/Fortran the corresponding
+functions are `mgl_add_var()', `mgl_find_var()'. But these functions
+return the data array only. Note, you *must not delete or free* the
+data obtained from these functions!
+
+   So, some simple example at the end. Here I define a data array,
+create variable, put data into it and plot it. The C++ code looks like
+this:
+    float a[100];   // let a_i = sin(4*pi*x), x=0...1
+    for(int i=0;i<100;i++)  a[i]=sin(4*M_PI*i/99);
+    mglParse *parser = new mglParse;
+    mglData &d = (parser->AddVar("dat"))->d;
+    d.Set(a,100); // set data to variable
+    parser->Execute(gr, "plot dat; xrange 0 1\nbox\naxis");
+    // you may break script at any line do something
+    // and continue after that
+    parser->Execute(gr, "xlabel 'x'\nylabel 'y'");
+    // also you may use cycles or conditions in script
+    parser->Execute(gr, "for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext");
+    gr->WritePNG("test.png");   // don't forgot to save picture
+ The code in C/Fortran looks practically the same:
+    float a[100];   // let a_i = sin(4*pi*x), x=0...1
+    int i;
+    for(i=0;i<100;i++)  a[i]=sin(4*M_PI*i/99);
+    HMPR parser = mgl_create_parser();
+    HMDT d = mgl_add_var(parser, "dat");
+    mgl_data_set_float(d,a,100,1,1);    // set data to variable
+    mgl_parse_text(gr, parser, "plot dat; xrange 0 1\nbox\naxis");
+    // you may break script at any line do something
+    // and continue after that
+    mgl_parse_text(gr, parser, "xlabel 'x'\nylabel 'y'");
+    // also you may use cycles or conditions in script
+    mgl_parse_text(gr, parser, "for $0 -1 1 0.1\nline 0 0 -1 $0 'r'\nnext");
+    mgl_write_png(gr, "test.png", "");  // don't forgot to save picture
+
+
+File: mathgl_ru.info,  Node: Stereo image,  Prev: MGL parser using,  Up: Hints
+
+2.7.15 Stereo image
+-------------------
+
+One can easily create stereo image in MathGL. Stereo image can be
+produced by making two subplots with slightly different rotation
+angles. The corresponding code looks like this (*note Stereo image
+sample::):
+    gr->SubPlot(2,1,0);     // left image
+    gr->Rotate(40,60+3);
+    // draw something here
+
+    gr->SubPlot(2,1,1);     // right image
+    gr->Rotate(40,60-3);
+    // draw the same here
+
+
+File: mathgl_ru.info,  Node: MathGL core,  Next: Plotter classes,  Prev: Examples,  Up: Top
+
+3 Ядро MathGL
+*****************
+
+Основным классом MathGL является класс *mglGraph*, определенный в
+`#include <mgl/mgl.h>'. Он включает в себя множество функций для
+построения графиков от 1D, 2D и 3D массивов. Он также содержит функции
+вывода текста и построения осей координат. Есть возможность построения
+в произвольной системе координат, которая  задается строковыми
+формулами. Все графические функции используют класс mglData (*note
+mglData class::) для хранения массивов данных. Это позволяет легко
+контролировать размеры, работу с памятью и производить обработку
+данных. Дополнительная информация о цветах, шрифтах, вычисления формул
+может быть найдена в *note Other classes::.
+
+   Замечу, что класс mglGraph - абстрактный класс, содержащий только
+интерфейсную часть для построения графиков. Он не выполняет собственно
+построения на конкретное устройство. Для практического использования
+(при выводе на экран, в память или в файл) используйте производные
+классы: mglGraphZB для растровых рисунков; mglGraphPS для векторных
+рисунков (в форматах EPS и/или SVG) и для быстрого, но менее
+аккуратного рисования растровой картинки; mglGraphGL для рисования с
+использованием OpenGL; и т.д. *note Plotter classes::. Если вы хотите
+не только построить картинку, но и отобразить ее в окне/органе
+управления или запустить анимацию, то посмотрите также *note Widget
+classes::.
+
+   Начиная с версии 1.10 есть специальный класс "оболочка" к функциям
+С-интерфейса. Он также называется `mglGraph' и определен в файле
+`mgl/mgl_graph.h'. Этот класс можно использовать и на не-GNU
+компиляторах (т.е. в Borland или Microsoft компиляторах), но в этом
+случае вы *не должны подключать* заголовочные файлы `mgl/mgl.h' или
+`mgl/mgl_parse.h'! Этот класс используется также как базовый класс для
+интерфейсов на основе SWIG (Python, Octave и пр). Далее в документации
+функции члены "оболочечного" класса обозначены как `Python' для
+отделения от оригинального класса `C++', определенного в `mgl/mgl.h'.
+
+* Menu:
+
+* Graphics setup::
+* Axis settings::
+* Transformation matrix::
+* Export to file::
+* Primitives drawing::
+* Text printing::
+* Axis and Colorbar::
+* Legend::
+* 1D plotting::
+* 2D plotting::
+* 3D plotting::
+* Dual plotting::
+* Vector fields::
+* Other plotting::
+* Nonlinear fitting::
+* Data distributions::
+* Frames/Animation::
+* IDTF functions::
+
+
+File: mathgl_ru.info,  Node: Graphics setup,  Next: Axis settings,  Up: MathGL core
+
+3.1 Настройка графика
+=====================================
+
+Функции и переменные в этой группе влияют на вид всего рисунка.
+Соответственно они должны располагаться _перед_ вызовом функций
+непосредственно рисующих графики.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' DefaultPlotParam ()
+ -- Функция С: `void' mgl_set_def_param (`HMGL' gr)
+     Устанавливает все настройки по умолчанию, кроме описанных в *note
+     Zooming::.
+
+* Menu:
+
+* Transparency::
+* Lighting::
+* Fog::
+* Default sizes::
+* Zooming::
+* Cutting::
+* Font settings::
+* Palette and colors::
+* Error handling::
+* Other settings::
+
+
+File: mathgl_ru.info,  Node: Transparency,  Next: Lighting,  Up: Graphics setup
+
+3.1.1 Прозрачность
+------------------------------
+
+Эти функции и переменные настраивают тип и степень прозрачности
+поверхностей. Главной является функция `Alpha()', которая
+включает/выключает прозрачность для всех графиков, созданных после
+вызова `Alpha()' (за исключением mglGraphGL). Функция `SetAlphaDef'
+устанавливает величину alpha-канала по умолчанию. Прозрачность можно
+выключить для отдельного графика с помощью `SetTransparent'. Наконец,
+функция `SetTranspType' задает тип прозрачности. См. раздел *note
+Transparent surface sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `bool' Alpha (`bool' enable)
+ -- Функция С: `void' mgl_set_alpha (`HMGL' gr, `int' enable)
+     Включает/выключает прозрачность и возвращает свое предыдущее
+     состояние. По умолчанию прозрачность выключена. Функция включает
+     прозрачность для _всего_ рисунка. Используйте
+     `SetTransparent(false)' для конкретного графика для выключения
+     прозрачности.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetAlphaDef (`float'
+          val)
+ -- Функция С: `void' mgl_set_alpha_по умолчанию (`HMGL' gr, `float'
+          alpha)
+     Задает значение прозрачности по умолчанию для всех графиков.
+     Отмечу, что OpenGL (mglGraphGL) некорректно рисует большое число
+     перекрывающихся прозрачных поверхностей (больше двух).
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetTransparent
+          (`bool' val)
+ -- Функция С: `void' mgl_set_transp (`HMGL' gr, `int' enable)
+     Временно включает/возвращает прозрачность графиков. Это аналог
+     `Alpha(val)', но работает более корректно для класса mglGraphGL.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetTranspType (`int'
+          type)
+ -- Функция С: `void' mgl_set_transp_type (`HMGL' gr, `int' enable)
+     Задает тип прозрачности. Обычная прозрачность (`0') - "закрытые"
+     объекты видны меньше чем закрывающие. Этот режим некорректно
+     отображается в OpenGL (mglGraphGL) для нескольких перекрывающихся
+     поверхностей. "Стеклянная" прозрачность (`1') - закрытые и
+     закрывающие объекты единообразно ослабляют интенсивность света (по
+     RGB каналам). "Ламповая" прозрачность (`2') - закрытые и
+     закрывающие объекты являются источниками дополнительного освещения
+     (рекомендую установить `SetAlphaDef(0.3)' или меньше в этом
+     случае). *Note Normal transparency::, *note Glass-like
+     transparency::, *note Lamp-like transparency::.
+
+ -- _Устаревшая переменная_ of mglGraph: `float' AlphaDef
+     Значение прозрачности по умолчанию для всех графиков. См.
+     `SetAlphaDef()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `bool' Transparent
+     Флаг, временно включающий/выключающий прозрачность графиков. См.
+     `SetTransparent()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `int' TranspType
+     Тип прозрачности. См. `SetTranspType()'.
+
+
+File: mathgl_ru.info,  Node: Lighting,  Next: Fog,  Prev: Transparency,  Up: Graphics setup
+
+3.1.2 Освещение
+------------------------
+
+Эти функции настраивают освещение графика. Главная функция
+`Light(bool)' включает/выключает освещение графиков построенных после
+ее вызова (в OpenGL работает сразу для всего рисунка). MathGL
+поддерживает до 10 независимых источников света. Но в режиме OpenGL
+можно использовать только первые 8 из них. Положение, цвет, яркость
+каждого источника света можно задавать по отдельности. По умолчанию
+включен только первый (с порядковым номером `0') источник света белого
+цвета, расположенный сверху.
+
+ -- Метод класса `mglGraph' (C++, Python): `bool' Light (`bool' enable)
+ -- Функция С: `void' mgl_set_light (`HMGL' gr, `int' enable)
+     Включает/выключает освещение графика и возвращает предыдущее
+     состояние. По умолчанию освещение выключено.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Light (`int' n,
+          `bool' enable)
+ -- Функция С: `void' mgl_set_light_n (`HMGL' gr, `int' n, `int' enable)
+     Включает/выключает N-ый источник света.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' AddLight (`int' n,
+          `float' x, `float' y, `float' z, `char' c=`'w'')
+ -- Метод класса `mglGraph' (C++): `void' Light (`int' n, `mglPoint' p,
+          `char' c=`'w'', `float' bright=`0.5', `bool' infty=`true')
+ -- Метод класса `mglGraph' (C++): `void' Light (`int' n, `mglPoint' p,
+          `mglColor' c, `float' bright=`0.5', `bool' infty=`true')
+ -- Функция С: `void' mgl_add_light (`HMGL' gr, `int' n, `float' x,
+          `float' y, `float' z, `char' c)
+     Добавляет источник света с номером N в положение P с цветом C и
+     яркостью BRIGHT, которая должна быть в диапазоне [0,1]. Флаг
+     INFTY=`true' делает источник бесконечно удаленным (для более
+     быстрого рисования).
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Ambient (`float'
+          bright=`0.5')
+ -- Функция С: `void' mgl_set_ambbr (`HMGL' gr, `float' bright)
+     Задает яркость рассеянного освещения. Значение должно быть в
+     диапазоне [0,1].
+
+
+File: mathgl_ru.info,  Node: Fog,  Next: Default sizes,  Prev: Lighting,  Up: Graphics setup
+
+3.1.3 Туман
+----------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Fog (`float' d,
+          `float' dz=`0.25')
+ -- Функция С: `void' mgl_set_fog (`HMGL' gr, `float' d, `float' dz)
+     Имитирует туман на графике. Туман начинается на относительном
+     расстоянии DZ от точки обзора и его плотность растет
+     экспоненциально вглубь по закону ~1-exp(-d*z). Здесь _z_ -
+     нормализованная на 1 глубина графика. Если D=`0' то туман
+     отсутствует. См. раздел *note Surface in fog sample::, для
+     примеров кода и графика.
+
+
+File: mathgl_ru.info,  Node: Default sizes,  Next: Zooming,  Prev: Fog,  Up: Graphics setup
+
+3.1.4 Базовые размеры
+-----------------------------------
+
+Эти функции задают величины большинства параметров графика, включая
+размеры маркеров, стрелок, толщину линий и т.д. Как и любые другие
+настройки, они подействуют только на графики созданные после изменения
+настроек.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetBarWidth ( `float'
+          val)
+ -- Функция С: `void' mgl_set_bar_width (`HMGL' gr, `float' val)
+     Задает относительный размер прямоугольников в Bars, Barh, BoxPlot
+     (*note Bars::). Значение по умолчанию `0.7'.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetMarkSize (`float'
+          val)
+ -- Функция С: `void' mgl_set_mark_size (`HMGL' gr, `float' val)
+     Задает размер маркеров для *note 1D plotting::. Значение по
+     умолчанию `0.02'.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetArrowSize (`float'
+          val)
+ -- Функция С: `void' mgl_set_arrow_size (`HMGL' gr, `float' val)
+     Задает размер стрелок для *note 1D plotting::, линий и кривых
+     (*note Primitives drawing::). Значение по умолчанию `0.03'.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetBaseLineWidth
+          (`float' val)
+ -- Функция С: `void' mgl_set_base_line_width (`HMGL' gr, `float' val)
+     Задает базовую толщину линий. Значения <1 игнорируются. Для
+     значений >1 реальная толщина получается перемножением указанной
+     ширины линии на данное значение. Увеличение ширины линии актуально
+     для больших растровых рисунков. Значение по умолчанию `1'.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetTickLen (`float'
+          val, `float' stt=`1')
+ -- Функция С: `void' mgl_set_tick_len (`HMGL' gr, `float' val, `float'
+          stt)
+     Задает относительную длину меток осей координат. Значение по
+     умолчанию `0.1'. Параметр STT>0 задает относительную длину
+     подметок, которые в `sqrt(1+stt)' раз меньше.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetTickStl (`const
+          char *'stl, `const char *'sub=`0')
+ -- Функция С: `void' mgl_set_tick_stl (`HMGL' gr, `const char *'stl,
+          `const char *'sub)
+     Задает стиль меток (STL) и подметок (SUB) осей координат. Если STL
+     пустая или ноль, то используется стиль по умолчанию (`k' или `w' в
+     зависимости от типа прозрачности). Если SUB пустая или ноль, то
+     используется стиль меток (т.е. STL).
+
+ -- _Устаревшая переменная_ of mglGraph: `float' BarWidth
+     Относительная ширина боксов. См. `SetBarWidth()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `float' MarkSize
+     Размер маркеров. См. `SetMarkSize()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `float' ArrowSize
+     Размер стрелок. См. `SetArrowSize()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `float' BaseLineWidth
+     Базовая ширина линий. См. `SetBaseLineWidth()'.
+
+
+File: mathgl_ru.info,  Node: Zooming,  Next: Cutting,  Prev: Default sizes,  Up: Graphics setup
+
+3.1.5 Масштабирование
+------------------------------------
+
+Эти функции управляют масштабированием всего рисунка (см Zoom()) или
+отдельной картинки (см PlotFactor). Обычно эти функции используются для
+удаления пустого места вокруг графиков.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetPlotFactor
+          (`float' val)
+ -- Функция С: `void' mgl_set_plotfactor (`HMGL' gr, `float' val)
+     Задает масштаб картинки (значение должно быть больше 1). Не
+     рекомендуется устанавливать значения меньше 1.5. Это аналог
+     функции Zoom(), но применяется только к конкретной картинке,
+     заданной InPlot. Используйте ноль для включения автоматического
+     масштабирования.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Zoom (`float' x1,
+          `float' y1, `float' x2, `float' y2)
+ -- Функция С: `void' mgl_set_zoom (`HMGL' gr, `float' x1, `float' y1,
+          `float' x2, `float' y2)
+     Масштабирует весь рисунок. После вызова функции текущий график
+     будет очищен и в дальнейшем рисунок будет содержать только область
+     [x1,x2]*[y1,y2] от исходного рисунка. Координаты X1, X2, Y1, Y2
+     меняются в диапазоне от 0 до 1. Внимание! эти настройки не могут
+     быть переписаны никакими другими функциями. Используйте
+     `Zoom(0,0,1,1)' для перехода в масштаб по умолчанию.
+
+ -- _Устаревшая переменная_ of mglGraph: `float' PlotFactor
+     Множитель масштаба картинки. См. `SetPlotFactor()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `bool' AutoPlotFactor
+     Включает/выключает автоматическое изменение PlotFactor при
+     вращении графика. См. `SetPlotFactor()'.
+
+
+File: mathgl_ru.info,  Node: Cutting,  Next: Font settings,  Prev: Zooming,  Up: Graphics setup
+
+3.1.6 Обрезание
+------------------------
+
+Эти функции задают условия когда точка будет исключена (вырезана) из
+рисования. Замечу, что все точки со значением(-ями) NAN по одной из
+координат или амплитуде автоматически исключаются из рисования.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetCut (`bool' val)
+ -- Функция С: `void' mgl_set_cut (`HMGL' gr, `int' val)
+     Задает обрезание точек за пределами осей координат. Если `true' то
+     такие точки исключаются из рисования (это по умолчанию) иначе они
+     проецируются на ограничивающий прямоугольник.
+
+ [image src="cut.png" ]
+
+Левый рисунок нарисован при `Cut=false', правый при `Cut=true'.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetCutBox (`float'
+          x1, `float' y1, `float' z1, `float' x2, `float' y2, `float'
+          z2)
+ -- Функция С: `void' mgl_set_cut_box (`HMGL' gr, `float' x1, `float'
+          y1, `float' z1, `float' x2, `float' y2, `float' z2)
+     Задает границы параллелепипеда внутри которого точки не рисуются.
+     Если границы одинаковы (переменные равны), то параллелепипеда
+     считается пустым. См. раздел *note CutMinMax sample::, для
+     примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' CutOff (`const char
+          *'EqC)
+ -- Функция С: `void' mgl_set_cutoff (`HMGL' gr, `const char *'EqC)
+     Задает условие обрезания по формуле EQC. Это условие исключает
+     точки из рисования если результат вычисления формулы не равен
+     нулю. Установите аргумент `""' для выключения условия обрезания.
+     См. раздел *note CutOff sample::, для примеров кода и графика.
+
+ -- _Устаревшая переменная_ of mglGraph: `bool' Cut
+     Флаг рисования точек вне осей координат. См. `SetCut()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `mglPoint' CutMin, CutMax
+     Нижний и верхний угол параллелепипеда внутри которого точки не
+     рисуются. См. `SetCutBox()'.
+
+
+File: mathgl_ru.info,  Node: Font settings,  Next: Palette and colors,  Prev: Cutting,  Up: Graphics setup
+
+3.1.7 Шрифты
+------------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetFontSize (`float'
+          val)
+ -- Функция С: `void' mgl_set_font_size (`HMGL' gr, `float' val)
+     Задает базовый размер шрифта. По умолчанию размер подписей оси
+     координат в 1.4 раза больше.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetFontDef (`const
+          char *'fnt)
+ -- Функция С: `void' mgl_set_font_def (`HMGL' gr, `const char *' val)
+     Задает стиль шрифта (*note Text printing::). По умолчанию
+     используется `rC' - прямой шрифт с выравниванием по центру.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetRotatedText
+          (`bool' val)
+ -- Функция С: `void' mgl_set_rotated_text (`HMGL' gr, `int' val)
+     Включает/выключает вращение меток и подписей осей координат вдоль
+     оси.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' LoadFont (`const char
+          *'name, `const char *'path=`""')
+ -- Функция С: `void' mgl_load_font (`HMGL' gr, `const char *'name,
+          `const char *'path)
+     Загружает начертание шрифта из файла PATH/NAME.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' CopyFont (`mglGraph
+          *' from)
+ -- Функция С: `void' mgl_copy_font (`HMGL' gr, `HMGL' gr_from)
+     Копирует начертание шрифта из другого объекта `mglGraph'.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' RestoreFont ()
+ -- Функция С: `void' mgl_restore_font (`HMGL' gr)
+     Восстанавливает начертание шрифта по умолчанию.
+
+ -- Метод класса `mglGraph' (C++): `void' SetFontSizePT (`float' cm,
+          `int' dpi=`72')
+     Задает размер шрифта в пунктах для заданного DPI (по умолчанию 16
+     pt для dpi=72).
+
+ -- Метод класса `mglGraph' (C++): `inline void' SetFontSizeCM (`float'
+          cm, `int' dpi=`72')
+     Задает размер шрифта в сантиметрах для заданного DPI (по умолчанию
+     0.56 см = 16 pt).
+
+ -- Метод класса `mglGraph' (C++): `inline void' SetFontSizeIN (`float'
+          cm, `int' dpi=`72')
+     Задает размер шрифта в дюймах для заданного DPI (по умолчанию 0.22
+     in = 16 pt).
+
+ -- Метод класса `mglGraph' (C++): `void' SetFont (`mglFont *'f)
+     Задает начертание шрифта. Замечу, что каждый объект mglFont может
+     использоваться _только с одним_ объектом mglGraph в каждый момент
+     времени! Если `f==NULL', то используется начертание по умолчанию.
+
+ -- Метод класса `mglGraph' (C++): `inline mglFont *' GetFont ()
+     Возвращает текущее начертание шрифта. Указатель правилен только до
+     следующего вызова функции SetFont()!
+
+ -- _Устаревшая переменная_ of mglGraph: `float' FontSize
+     Размер шрифта. См. `SetFontSize()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `char' FontDef`[32]'
+     Стиль шрифта. См. `SetFontDef()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `bool' RotatedText
+     Флаг вращения меток и подписей к осям координат.
+
+
+File: mathgl_ru.info,  Node: Palette and colors,  Next: Error handling,  Prev: Font settings,  Up: Graphics setup
+
+3.1.8 Палитра и цвета
+----------------------------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetPalette (`const
+          char *'COLORS)
+ -- Функция С: `void' mgl_set_palette (`HMGL' gr, `const char *'COLORS)
+     Задает палитру как последовательность цветов. Значение по
+     умолчанию `"Hbgrcmyhlnqeup"', что соответствует цветам: темно
+     серый `H', синий `b', зеленый `g', красный `r', голубой `c',
+     малиновый `m', желтый `y', серый `h', сине-зеленый  `l',
+     небесно-голубой `n', оранжевый `q', желто-зеленый `e',
+     сине-фиолетовый `u', фиолетовый `p'. Палитра в основном
+     используется в 1D графиках (*note 1D plotting::) для кривых с
+     неопределенным стилем линии.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetPalColor (`int' n,
+          `float' r, `float' g, `float' b)
+ -- Функция С: `void' mgl_set_pal_color (`HMGL' gr, `int' n, `float' r,
+          `float' g, `float' b)
+     Задает цвет отдельной ячейки палитры. См. функцию `SetPalette()'
+     для упрощенного задания палитры.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetPalNum (`int' num)
+ -- Функция С: `void' mgl_set_pal_num (`HMGL' gr, `int' num)
+     Задает число цветов в палитре. Значение должно быть меньше 100.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetScheme (`const
+          char *'sch)
+ -- Функция С: `void' mgl_set_scheme (`HMGL' gr, `const char *'sch)
+     Задает цветовую схему. Обычно функция вызывается внутри
+     библиотеки. *Note Color scheme::.
+
+ -- Метод класса `mglGraph' (C++): `void' SelectPen (`const char *'sch)
+     Задает стиль линий и маркеров. Обычно функция вызывается внутри
+     библиотеки. *Note Line styles::.
+
+ -- _Устаревшая переменная_ of mglGraph: `mglColor' Pal`[101]'
+     Палитра *note 1D plotting::. См. `SetPalette()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `int' NumPal
+     Число цветов в палитре. См. `SetPalette()'.
+
+
+File: mathgl_ru.info,  Node: Error handling,  Next: Other settings,  Prev: Palette and colors,  Up: Graphics setup
+
+3.1.9 Обработка ошибок
+-------------------------------------
+
+Есть 2 переменные показывающие наличие предупреждения/ошибки при
+создании графика. Обычно вы должны сбросить их с помощью `SetWarn(0);'
+перед построением и проверить переменную WARNCODE на наличие ошибок
+после построения. Только последнее предупреждение сохраняется. Замечу,
+что все предупреждения/ошибки в MathGL не являются критичными - в
+худшем из вариантов соответствующий график просто не будет построен.
+
+ -- Метод класса `mglGraph' (C++): `void' SetWarn (`int' code, `const
+          char *'who=`""')
+     Задает код предупреждения и поясняющее сообщение от функции WHO.
+     Обычно вызывается только для очистки предупреждений
+     (`SetWarn(0);') или внутри библиотеки.
+
+ -- Переменная(C++) of mglGraph: `char *' Message
+     Указатель на строку для вывода сообщений библиотеки о причине
+     отсутствия графика. Если равен NULL, то сообщения не выводятся.
+     Размер буфера должен быть не менее 1024 байт. Если Message[0]==0,
+     то сообщений нет.
+
+ -- Method on `mglGraph' (C++, Python): `int' GetWarn ()
+ -- C function: `int' mgl_get_warn (`HMGL' gr)
+     Возвращает код сообщения о причине отсутствия графика. Возможные
+     значения:
+    `mglWarnNone=0'
+          Предупреждений нет
+
+    `mglWarnDim'
+          Неправильные или несовместимые размеры данных
+
+    `mglWarnLow'
+          Размеры данных слишком малы
+
+    `mglWarnNeg'
+          Минимальное значение отрицательно
+
+    `mglWarnFile'
+          Файл не найден или указаны неправильные размерности
+
+    `mglWarnMem'
+          Не достаточно памяти
+
+    `mglWarnZero'
+          Значение данных равно нулю
+
+    `mglWarnLegA'
+          Слишком много записей в легенде
+
+    `mglWarnLeg'
+          Нет записей в легенде
+
+    `mglWarnSlc'
+          Индекс среза вне данных
+
+    `mglWarnCnt'
+          Число линий уровня меньше или равно нулю
+
+    `mglWarnOpen'
+          Не могу открыть файл
+
+    `mglWarnLId'
+          Light: ID вне допустимых значений
+
+    `mglWarnSize'
+          Setsize: размер(ы) равны нулю или отрицательны
+
+    `mglWarnFmt'
+          Формат не поддерживается
+
+ -- Устаревшая переменная of mglGraph: `int' WarnCode
+     Код сообщения о причине отсутствия графика.
+
+
+File: mathgl_ru.info,  Node: Other settings,  Prev: Error handling,  Up: Graphics setup
+
+3.1.10 Прочие настройки
+--------------------------------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetMeshNum (`int' val)
+ -- Функция С: `void' mgl_set_meshnum (`HMGL' gr, `int' num)
+     Задает ориентировочное число линий в Mesh(), Fall(), Grid() и
+     число стрелок (штрихов) в Vect(), Dew() и число ячеек в Cloud*().
+     По умолчанию (=0) рисуются все линии, стрелки, ячейки.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetAxialDir (`char'
+          val)
+ -- Функция С: `' mgl_set_axial_dir (`HMGL' gr, `char' dir)
+     Задает ось вращения для Axial() и Torus(). По умолчанию это 'z'.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetDrawFace (`bool'
+          val)
+ -- Функция С: `void' mgl_set_draw_face (`HMGL' gr, `int' val)
+     Запрещает/разрешает рисование граней. Запрет вывода граней
+     позволяет ускорить рисование (например для вращения картинки).
+
+ -- Переменная(C++) of mglGraph: `const char *' PlotId
+     Идентификатор рисунка для сохранения в файл.
+
+ -- _Устаревшая переменная_ of mglGraph: `int' MeshNum
+     Число линий, стрелок, ячеек. См. `SetMeshNum()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `char' AxialDir
+     Ось вращения. См. `SetAxialDir()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `bool' DrawFace
+     Флаг запрета рисования граней. См. `SetDrawFace()'.
+
+ -- Переменная(C++) of mglGraph: `int' CirclePnts
+     Число точек при аппроксимации окружности в *note Primitives
+     drawing::, *note Tube::, *note Pipe:: и т.д. По умолчанию 40.
+
+ -- Переменная(C++) of mglGraph: `int' GridPnts
+     Число точек при построении линий сеток - важно для криволинейных
+     координат. По умолчанию 50.
+
+
+File: mathgl_ru.info,  Node: Axis settings,  Next: Transformation matrix,  Prev: Graphics setup,  Up: MathGL core
+
+3.2 Настройки осей координат
+==================================================
+
+Эти функции управляет видом и масштабом осей координат. Перед
+построением для каждой точки выполняются 3 преобразования: сначала
+определяется возможность рисования точки (*note Cutting::), далее
+применяются формулы перехода к криволинейным координатам и наконец
+точка отображается.
+
+* Menu:
+
+* Ranges (bounding box)::
+* Transformation::
+* Ticks::
+
+
+File: mathgl_ru.info,  Node: Ranges (bounding box),  Next: Transformation,  Up: Axis settings
+
+3.2.1 Масштаб осей координат
+------------------------------------------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetRanges (`float'
+          x1, `float' x2, `float' y1, `float' y2, `float' z1=`0',
+          `float' z2=`0')
+ -- Метод класса `mglGraph' (C++): `void' Axis (`mglPoint' min,
+          `mglPoint' max, `mglPoint' org=`mglPoint(NAN,NAN,NAN)')
+ -- Функция С: `void' mgl_set_axis_2d (`HMGL' gr, `float' x1, `float'
+          y1, `float' x2, `float' y2)
+ -- Функция С: `void' mgl_set_axis_3d (`HMGL' gr, `float' x1, `float'
+          y1, `float' z1, `float' x2, `float' y2, `float' z2)
+     Безопасным образом задает значения переменных MIN, MAX и ORG. Если
+     минимальное и максимальное значение координаты равны, то они
+     игнорируются по данному направлению. Эта функция также
+     устанавливает размер цветовой шкалы CMIN=`Min.z' и CMAX=`Max.z' -
+     это режим по умолчанию для 2d графиков.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetCRange (`float'
+          min, `float' max)
+ -- Метод класса `mglGraph' (C++): `void' CAxis (`float' min, `float'
+          max)
+ -- Функция С: `void' mgl_set_caxis (`HMGL' gr, `float' min, `float'
+          max)
+     Задает масштаб цветовой шкалы. Эти значения используются для
+     определения цвета поверхностей и прочих 2D и 3D графиков.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' XRange (`const
+          mglData &' dat, `bool' add=`false', `float' fact=`0')
+ -- Функция С: `void' mgl_set_xrange (`HMGL' gr, `const HMDT' a, `int'
+          add)
+     Задает масштаб по оси X как минимальное и максимальное значение
+     массива A. Параметр ADD указывает добавлять новый диапазон к
+     существующему или заменять его. Параметр FACT дополнительно
+     расширяет диапазон на величину (MAX-MIN)*FACT.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' YRange (`const
+          mglData &' dat, `bool' add=`false', `float' fact=`0')
+ -- Функция С: `void' mgl_set_yrange (`HMGL' gr, `const HMDT' a, `int'
+          add)
+     Задает масштаб по оси Y как минимальное и максимальное значение
+     массива A. Параметр ADD указывает добавлять новый диапазон к
+     существующему или заменять его. Параметр FACT дополнительно
+     расширяет диапазон на величину (MAX-MIN)*FACT.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ZRange (`const
+          mglData &' dat, `bool' add=`false', `float' fact=`0')
+ -- Функция С: `void' mgl_set_zrange (`HMGL' gr, `const HMDT' a, `int'
+          add)
+     Задает масштаб по оси Z как минимальное и максимальное значение
+     массива A. Параметр ADD указывает добавлять новый диапазон к
+     существующему или заменять его. Параметр FACT дополнительно
+     расширяет диапазон на величину (MAX-MIN)*FACT.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' CRange (`const
+          mglData &' dat, `bool' add=`false', `float' fact=`0')
+ -- Функция С: `void' mgl_set_crange (`HMGL' gr, `const HMDT' a, `int'
+          add)
+     Задает цветовой масштаб как минимальное и максимальное значение
+     массива A. Параметр ADD указывает добавлять новый диапазон к
+     существующему или заменять его. Параметр FACT дополнительно
+     расширяет диапазон на величину (MAX-MIN)*FACT.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetAutoRanges
+          (`float' x1, `float' x2, `float' y1=`0', `float' y2=`0',
+          `float' z1=`0', `float' z2=`0')
+ -- Функция С: `void' mgl_set_auto (`HMGL' gr, `float' x1, `float' x2,
+          `float' y1, `float' y2, `float' z1, `float' z2)
+     Задает масштаб "автоматических" (не указанных явно) переменных.
+     Функция меняет значения MIN, MAX буз вызова RecalcBorder(). Если
+     минимальное и максимальное значение координаты равны, то они
+     игнорируются по данному направлению. Замечу, что этот масштаб
+     становится масштабом осей при следующем вызове функций
+     [XYZ]Range().
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetOrigin (`float'
+          x0, `float' y0, `float' z0=`NAN')
+ -- Функция С: `void' mgl_set_origin (`HMGL' gr, `float' x0, `float'
+          y0, `float' z0)
+     Задает центр пересечения осей координат. Если одно из значений
+     равно NAN, то MathGL попытается выбрать оптимальное положение осей
+     координат по этому направлению.
+
+ -- Метод класса `mglGraph' (C++): `void' RecalcBorder ()
+     Повторно вычисляет внутренние параметры для правильного применения
+     функций перехода в криволинейную систему координат. *Должна быть
+     вызвана* после каждого прямого изменения переменных MIN, MAX, FX,
+     FY, FZ если их изменение должно отразиться на графике.
+
+ -- Переменная(C++) of mglGraph: `mglPoint' Min, Max
+     Масштаб осей координат. Эти переменные используются также для
+     определения диапазона "автоматических" массивов (массивов не
+     указанных явно при построении графика). Вы можете изменить их
+     перед построением графика и потом вернуть их назад. В результате
+     график будет в указанном диапазоне, а не в диапазоне осей
+     координат. *НО* если вы хотите поменять масштаб осей, то вы
+     *должны* вызвать функцию `RecalcBorder();'.
+
+ -- Переменная(C++) of mglGraph: `float' Cmin, Cmax
+     Масштаб цветовой шкалы. См. `CAxis(), CRange()'.
+
+ -- Переменная(C++) of mglGraph: `mglPoint' Org
+     Центр пересечения осей координат. См. `SetOrigin()'.
+
+ -- Переменная(C++) of mglGraph: `bool' AutoOrg
+     Флаг для автоматического сдвига осей координат если их центр
+     пересечения лежит вне диапазона осей координат MIN ... MAX.
+
+
+File: mathgl_ru.info,  Node: Transformation,  Next: Ticks,  Prev: Ranges (bounding box),  Up: Axis settings
+
+3.2.2 Криволинейные координаты
+-----------------------------------------------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetFunc (`const char
+          *'EqX, `const char *'EqY, `const char *'EqZ=`""', `const char
+          *'EqA=`""')
+ -- Функция С: `void' mgl_set_func (`HMGL' gr, `const char *'EqX,
+          `const char *'EqY, `const char *'EqZ)
+ -- Функция С: `void' mgl_set_func_ext (`HMGL' gr, `const char *'EqX,
+          `const char *'EqY, `const char *'EqZ, `const char *'EqA)
+     Задает формулы перехода к криволинейным координатам. Каждая строка
+     является математическим выражением, зависящим от старых координат
+     `x', `y', `z' и `a' или `c' для цветовой шкалы. Например, для
+     цилиндрических координат будет `Axis("x*cos(y)", "x*sin(y)",
+     "z");'. Для удаления формул соответствующий параметр должен быть
+     пустым или `NULL'. Использование формул преобразования слегка
+     замедляет программу, т.е.. `Axis("", "", "")' быстрее чем
+     `Axis("1*x", "1*y", "1*z")'. Параметр EQA задает аналогичную
+     формулу для цветовой шкалы. *Note Textual formulas::.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetCoor (`int' how)
+ -- Функция С: `void' mgl_set_coor (`HMGL' gr, `int' how)
+     Устанавливает одну из предопределенных систем криволинейных
+     координат в зависимости от параметра HOW: `mglCartesian=0' -
+     декартова система (нет преобразования координат, наиболее
+     быстрая); `mglPolar=1' - полярные координаты
+     x_n=x*cos(y),y_n=x*sin(y), z_n=z; `mglSpherical=2' - сферические
+     координаты x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y);
+     `mglParabolic=3' - параболические координаты x_n=x*y,
+     y_n=(x*x-y*y)/2, z_n=z; `mglParaboloidal=4' - Paraboloidal
+     coordinates x_n=(x*x-y*y)*cos(z)/2, y_n=(x*x-y*y)*sin(z)/2,
+     z_n=x*y; `mglOblate=5' - Oblate coordinates
+     x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z),
+     z_n=sinh(x)*sin(y); `mglProlate=6' - Prolate coordinates
+     x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z),
+     z_n=cosh(x)*cos(y); `mglElliptic=7' - эллиптические координаты
+     x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z; `mglToroidal=8' -
+     тороидальные координаты x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)),
+     y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y));
+     `mglBispherical=9' - бисферические координаты
+     x_n=sin(y)*cos(z)/(cosh(x)-cos(y)),
+     y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y));
+     `mglBipolar=10' - биполярные координаты
+     x_n=sinh(x)/(cosh(x)-cos(y)), y_n=sin(y)/(cosh(x)-cos(y)), z_n=z.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Ternary (`bool' tern)
+ -- Функция С: `void' mgl_set_ternary (`HMGL' gr, `int' tern)
+     Задает рисование треугольных (Ternary) осей координат. Это
+     специальный тип графика для 3 зависимых координат (компонент) A,
+     B, C таких, что A+B+C=1. MathGL использует только 2 независимые
+     координаты A=x и B=y поскольку их достаточно для построения всех
+     графиков. При этом третья координата z является независимым
+     параметром для построения линий уровня, поверхностей и т.д. См.
+     раздел *note Ternary plot sample::, для примеров кода и графика.
+
+
+File: mathgl_ru.info,  Node: Ticks,  Prev: Transformation,  Up: Axis settings
+
+3.2.3 Метки осей
+-------------------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' AdjustTicks (`const
+          char *'dir=`"xyz"')
+ -- Функция С: `void' mgl_adjust_ticks (`HMGL' gr, `const char *'dir)
+     Автоматически задает шаг меток осей, число подметок и начальное
+     положение меток для осей координат DIR в виде наиболее удобном для
+     человека. Также задает `SetTuneTicks(true)'.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetTicks (`char' dir,
+          `float' d=`-5', `int' ns=`0', `float' org=`NAN')
+ -- Функция С: `void' mgl_set_ticks_dir (`HMGL' gr, `char' dir, `float'
+          d, `int' ns, `float' org)
+ -- Функция С: `void' mgl_set_ticks (`HMGL' gr, `float' dx, `float' dy,
+          `float' dz)
+ -- Функция С: `void' mgl_set_subticks (`HMGL' gr, `int' nx, `int' ny,
+          `int' nz)
+ -- Функция С: `void' mgl_set_tick_origin (`HMGL' gr, `float' x0,
+          `float' y0, `float' z0)
+     Задает шаг меток осей D, число подметок NS и начальное положение
+     меток ORG для оси вдоль направления DIR (используйте 'c' для меток
+     colorbar). Переменная D задает шаг меток (если положительна) или
+     их число на оси (если отрицательна). Нулевое значение задает
+     логарифмические метки. Если ORG=`NAN', то используется значение из
+     переменной ORG.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetTicksVal (`char'
+          dir, `int' n, `float *'val, `const char **'lbl)
+ -- Метод класса `mglGraph' (C++, Python): `void' SetTicksVal (`char'
+          dir, `int' n, `float *'val, `const wchar_t **'lbl)
+ -- Метод класса `mglGraph' (C++): `void' SetTicksVal (`char' dir,
+          `int' n, `float' val1, `wchar_t *'lbl1, ...)
+ -- Функция С: `void' mgl_set_ticks_vals (`HMGL' gr, `char' dir, `int'
+          n, `float *'val, `const char **'lbl)
+ -- Функция С: `void' mgl_set_ticks_val (`HMGL' gr, `char' dir, `int'
+          n, `double' val, `const char *'lbl, ...)
+     Задает явное положение VAL и подписи LBL для N меток вдоль оси
+     DIR. Массивы VAL и LBL должны содержать N элементов. Используйте
+     `SetTicks()' для восстановления автоматических меток. Вы должны
+     быть *очень осторожны* и использовать числа с плавающей точкой (а
+     _не целые!!!_) для положения меток - из-за ограничений передачи
+     аргументов в библиотеке stdarg. См. раздел *note Manual ticks
+     sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetTuneTicks (`bool'
+          tune, `float' pos=`1.15')
+ -- Функция С: `void' mgl_tune_ticks (`HMGL' gr, `bool' tune, `float'
+          pos)
+     Включает/выключает улучшение вида меток осей путем вынесения
+     общего множителя (для маленьких, типа 0.001...0.002, или больших,
+     типа 1000...2000, значений координат) или общей компоненты (для
+     узкого диапазона, типа 0.999...1.000). Также задает положение POS
+     общего множителя на оси: =0 около минимального значения, =1 около
+     максимального значения.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetXTT (`const char
+          *'xtt)
+ -- Метод класса `mglGraph' (C++, Python): `void' SetYTT (`const char
+          *'ytt)
+ -- Метод класса `mglGraph' (C++, Python): `void' SetZTT (`const char
+          *'ztt)
+ -- Метод класса `mglGraph' (C++, Python): `void' SetCTT (`const char
+          *'ctt)
+ -- Метод класса `mglGraph' (C++, Python): `void' SetXTT (`const
+          wchar_t *'xtt)
+ -- Метод класса `mglGraph' (C++, Python): `void' SetYTT (`const
+          wchar_t *'ytt)
+ -- Метод класса `mglGraph' (C++, Python): `void' SetZTT (`const
+          wchar_t *'ztt)
+ -- Метод класса `mglGraph' (C++, Python): `void' SetCTT (`const
+          wchar_t *'ctt)
+ -- Функция С: `void' mgl_set_xttw (`HMGL' gr, `const wchar_t *'xtt)
+ -- Функция С: `void' mgl_set_yttw (`HMGL' gr, `const wchar_t *'ytt)
+ -- Функция С: `void' mgl_set_zttw (`HMGL' gr, `const wchar_t *'ztt)
+ -- Функция С: `void' mgl_set_cttw (`HMGL' gr, `const wchar_t *'ctt)
+ -- Функция С: `void' mgl_set_xtt (`HMGL' gr, `const wchar_t *'xtt)
+ -- Функция С: `void' mgl_set_ytt (`HMGL' gr, `const wchar_t *'ytt)
+ -- Функция С: `void' mgl_set_ztt (`HMGL' gr, `const wchar_t *'ztt)
+ -- Функция С: `void' mgl_set_ctt (`HMGL' gr, `const wchar_t *'ctt)
+     Задает шаблоны для меток вдоль x-,y-,z-оси или colorbar. Шаблон
+     может содержать и символы TeX. Если XTT, YTT, ZTT, CTT=`""', то
+     используется шаблон по умолчанию (в простейшем случае `%.2g').
+     Установка шаблона выключает автоматическое улучшение вида меток
+     (См. `SetTuneTicks()').
+
+ -- _Устаревшая переменная_ of mglGraph: `float' dx, dy, dz
+     Шаг меток осей. См. `SetTicks()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `int' NSx, NSy, NSz
+     Число подметок. См. `SetTicks()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `mglPoint' OrgT
+     Начальная точка для меток. См. `SetTicks()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `bool' TuneTicks
+     Флаг автоматического улучшения меток. См. `SetTuneTicks()'.
+
+ -- _Устаревшая переменная_ of mglGraph: `float' FactorPos
+     Положение общего множителя. См. `SetTuneTicks()'.
+
+
+File: mathgl_ru.info,  Node: Transformation matrix,  Next: Export to file,  Prev: Axis settings,  Up: MathGL core
+
+3.3 Матрица преобразования
+===============================================
+
+Эти функции контролируют где и как график будет расположен. Существует
+определенный порядок вызова этих функций для лучшего вида графика.
+Вначале должны вызываться функции SubPlot() или InPlot() для указания
+местоположения вывода. После них - функции вращения Rotate() и сжатия
+Aspect(). И наконец любые другие функции для рисования графика. Вместо
+вращения графика можно вызвать функцию ColumnPlot() для расположения
+графиков в столбец одного над другим без зазора между осями.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SubPlot (`int' nx,
+          `int' ny, `int' m, `float' dx=`0', `float' dy=`0')
+ -- Функция С: `void' mgl_subplot (`HMGL' gr, `int' nx, `int' ny, `int'
+          m)
+ -- Функция С: `void' mgl_subplot_d (`HMGL' gr, `int' nx, `int' ny,
+          `int' m, `float' dx, `float' dy)
+     Помещает последующий вывод в M-ую ячейку сетки размером NX*NY от
+     всего рисунка. Функция сбрасывает матрицу трансформации (повороты
+     и сжатие графика) и должна вызываться первой для создания
+     "подграфика". С эстетической точки зрения не рекомендуется
+     вызывать эту функцию с различными (или не кратными) размерами
+     сетки. Ячейка может быть дополнительно сдвинута относительно
+     своего обычного положения на относительный размер DX, DY.
+
+ -- Method on `mglGraph' (C++, Python): `void' SubPlot (`int' nx, `int'
+          ny, `int' m, `const char *'style)
+ -- C function: `void' mgl_subplot_s (`HMGL' gr, `int' nx, `int' ny,
+          `int' m, `const char *'style)
+     Аналогично предыдущему, но место для осей/colorbar резервируется
+     только если строка STYLE содержит: `L' или `<' - с левого края,
+     `R' или `>' - с правого края, `A' или `^' - с верхнего края, `U'
+     или `_' - с нижнего края.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' InPlot (`float' x1,
+          `float' x2, `float' y1, `float' y2, `bool' rel=`false')
+ -- Функция С: `void' mgl_inplot (`HMGL' gr, `float' x1, `float' x2,
+          `float' y1, `float' y2)
+ -- Функция С: `void' mgl_relplot (`HMGL' gr, `float' x1, `float' x2,
+          `float' y1, `float' y2)
+     Помещает последующий вывод в прямоугольную область [X1, X2]*[Y1,
+     Y2] (исходный размер [0,1]*[0,1]). Эта функция позволяет поместить
+     график в произвольную область рисунка. Если параметр REL=`true',
+     то используется позиция относительно текщего SubPlot() (или
+     InPlot() с REL=`false'). Функция сбрасывает матрицу трансформации
+     (повороты и сжатие графика) и должна вызываться первой для
+     создания "подграфика".
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ColumnPlot (`int'
+          num, `int' ind, `float' d=`0')
+ -- Функция С: `void' mgl_columnplot (`HMGL' gr, `int' num, `int' ind)
+ -- Функция С: `void' mgl_columnplot (`HMGL' gr, `int' num, `int' ind,
+          `float' d)
+     Помещает последующий вывод в IND-ую строку столбца из NUM строк.
+     Положение столбца выбирается относительно последнего вызова
+     SubPlot() (или InPlot() с REL=`false'). Параметр D задает
+     дополнительный зазор между строк. См. раздел *note ColumnPlot
+     sample::, для примеров кода и графика.
+
+ -- Method on `mglGraph' (C++, Python): `void' StickPlot (`int' num,
+          `int' ind, `float' tet, `float' phi)
+ -- C function: `void' mgl_stickplot (`HMGL' gr, `int' num, `int' ind,
+          `float' tet, `float' phi)
+     Помещает последующий вывод в IND-ую ячейку "бруска" из NUM ячеек.
+     При этом сам брусок повернут на углы TET, PHI. Положение
+     выбирается относительно последнего вызова SubPlot() (или InPlot()
+     с REL=`false'). См. раздел *note StickPlot sample::, для примеров
+     кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Rotate (`float' TetX,
+          `float' TetZ, `float' TetY=`0')
+ -- Функция С: `void' mgl_rotate (`HMGL' gr, `float' TetX, `float'
+          TetZ, `float' TetY)
+     Вращает систему координат относительно осей {x, z, y}
+     последовательно на углы TETX, TETZ, TETY.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' RotateN (`float' Tet,
+          `float' x, `float' y, `float' z)
+ -- Функция С: `void' mgl_rotate_vector (`HMGL' gr, `float Tet', `float
+          x', `float y', `float z')
+     Вращает систему координат относительно вектора {X, Y, Z} на угол
+     TET.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Aspect (`float' Ax,
+          `float' Ay, `float' Az)
+ -- Функция С: `void' mgl_aspect (`HMGL' gr, `float' Ax, `float' Ay,
+          `float' Az)
+     Устанавливает соотношение размеров осей в отношении AX:AY:AZ. Для
+     лучшего вида следует вызывать после функции Rotate().
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Perspective (`float'
+          a)
+ -- Функция С: `void' mgl_perspective (`HMGL' gr, `float' a)
+     Добавляет (включает) перспективу для графика. Параметр a ~
+     1/z_{eff} \in [0,1). По умолчанию (`a=0') перспектива отключена.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Identity (`bool'
+          rel=`false')
+ -- Функция С: `void' mgl_identity (`HMGL' gr, `int' rel)
+     Сбрасывает матрицу трансформации. Эквивалентно вызову
+     `InPlot(0,1,0,1,rel)'.
+
+ -- Method on `mglGraph' (C++, Python): `void' Push ()
+ -- C function: `void' mgl_mat_push (`HMGL' gr)
+     Помещает матрицу преобразования в стек. Позднее вы можете
+     восстановить текущее состояние с помощью функции Pop(). Стек может
+     содержать до 10 матриц.
+
+ -- Method on `mglGraph' (C++, Python): `void' Pop ()
+ -- C function: `void' mgl_mat_pop (`HMGL' gr)
+     Заменяет (восстанавливает) матрицу преобразования на последнюю
+     помещенную в стек матрицу.
+
+
+File: mathgl_ru.info,  Node: Export to file,  Next: Primitives drawing,  Prev: Transformation matrix,  Up: MathGL core
+
+3.4 Экспорт в файл
+==============================
+
+Эти функции экспортируют текущую картинку (кадр) в файл. Имя файла
+FNAME должно иметь соответствующее расширение. Параметр DESCR дает
+краткое описание картинки. Пока прозрачность поддерживается только для
+форматов PNG, SVG и IDTF.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' WriteFrame (`const
+          char *'fname=`""', `const char *'descr=`""')
+ -- Функция С: `void' mgl_write_frame (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+     Экспортирует текущий кадр в файл FNAME с типом, определяемым по
+     расширению. Параметр DESCR добавляет описание (может быть пустым).
+     Если FNAME пустой, то используется имя `frame####.jpg', где `####'
+     - текущий номер кадра и имя `frame' определяется переменной PLOTID.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' WritePNG (`const char
+          *'fname, `const char *'descr=`""', `int' compr=`""', `bool'
+          alpha=`true')
+ -- Функция С: `void' mgl_write_png (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+ -- Функция С: `void' mgl_write_png_solid (`HMGL' gr, `const char
+          *'fname, `const char *'descr)
+     Экспортирует текущий кадр в PNG файл. Параметры функции следующие:
+     FNAME - имя файла, DESCR - описание файла, ALPHA - прозрачность
+     фона.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' WriteJPEG (`const
+          char *'fname, `const char *'descr=`""')
+ -- Функция С: `void' mgl_write_jpg (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+     Экспортирует текущий кадр в JPEG файл. Параметры функции
+     следующие: FNAME - имя файла, DESCR - описание файла. Если при
+     компиляции MathGL не был определен флаг HAVE_JPEG, то экспорт в
+     файл не производится.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' WriteGIF (`const char
+          *'fname, `const char *'descr=`""')
+ -- Функция С: `void' mgl_write_gif (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+     Экспортирует текущий кадр в GIF файл. Параметры функции следующие:
+     FNAME - имя файла, DESCR - описание файла. Если при компиляции
+     MathGL не был определен флаг HAVE_GIF, то экспорт в файл не
+     производится.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' WriteBMP (`const char
+          *'fname, `const char *'descr=`""')
+ -- Функция С: `void' mgl_write_bmp (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+     Экспортирует текущий кадр в BMP файл. Параметры функции следующие:
+     FNAME - имя файла, DESCR - описание файла.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' WriteEPS (`const char
+          *'fname, `const char *'descr=`""')
+ -- Функция С: `void' mgl_write_eps (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+     Экспортирует текущий кадр в EPS файл, используя векторное
+     представление графика (класс mglGraphPS). Вследствие чего не
+     рекомендуется сохранять большие графики (поверхности, а особенно
+     поверхности уровня) в формате EPS из-за большого размера файла.
+     Хотя никаких внутренних ограничений на размер выходного файла нет.
+     Для них лучше использовать растровый формат (например, PNG или
+     JPEG). Параметры функции следующие: FNAME - имя файла, DESCR -
+     описание файла. Если имя файла оканчивается на `z' (например,
+     `fname.eps.gz'), то файл автоматически архивируется в формате gzip.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' WriteSVG (`const char
+          *'fname, `const char *'descr=`""')
+ -- Функция С: `void' mgl_write_svg (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+     Экспортирует текущий кадр в SVG файл, используя векторное
+     представление графика (класс mglGraphPS). Вследствие чего не
+     рекомендуется сохранять большие графики (поверхности, а особенно
+     поверхности уровня) в формате SVG из-за большого размера файла.
+     Хотя никаких внутренних ограничений на размер выходного файла нет.
+     Для них лучше использовать растровый формат (например, PNG или
+     JPEG). Параметры функции следующие: FNAME - имя файла, DESCR -
+     описание файла. Если имя файла оканчивается на `z' (например,
+     `fname.svgz'), то файл автоматически архивируется в формате gzip.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' WriteIDTF (`const
+          char *'fname, `const char *'descr=`""')
+ -- Функция С: `void' mgl_write_idtf (`HMGL' gr, `const char *'fname,
+          `const char *'descr)
+     Экспортирует текущий кадр в IDTF файл, используя векторное
+     представление графика (класс mglGraphIDTF). Параметры функции
+     следующие: FNAME - имя файла, DESCR - описание файла.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ShowImage (`const
+          char *'viewer=`"kuickshow"', `bool' nowait=`false')
+ -- Функция С: `void' mgl_show_image (`const char *'viewer, `int'
+          nowait)
+     Отображает текущий кадр используя внешнюю программу просмотра
+     VIEWER. Функция сохраняет картинку во временный файл и вызывает
+     VIEWER для его отображения. Если NOWAIT=`true', то функция
+     возвращает управление немедленно - не ждет пока окно просмотра
+     будет закрыто.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetSize (`int' width,
+          `int' height)
+ -- Функция С: `void' mgl_set_size (`HMGL' gr, `int' width, `int'
+          height)
+     Изменяет размер картинки в пикселях. Функция должна вызываться
+     *перед* любыми функциями построения потому что полностью очищает
+     содержимое рисунка.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Flush ()
+ -- Функция С: `void' mgl_flush (`HMGL' gr)
+     Завершает рисование текущих графических команд, подготавливает
+     кадр к экспорту в файл и служит для разделения объектов в
+     mglGraphIDTF. Однако обычно данная функция вызывается внутри
+     библиотеки.
+
+ -- Метод класса `mglGraph' (C++): `void' Finish ()
+     Завершает рисование и готовит растровое изображение.
+
+
+File: mathgl_ru.info,  Node: Primitives drawing,  Next: Text printing,  Prev: Export to file,  Up: MathGL core
+
+3.5 Рисование примитивов
+===========================================
+
+Эти функции рисуют рисуют простые объекты типа линий, точек, сфер,
+капель, конусов, и т.д.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Clf (`mglColor'
+          Back=`WC')
+ -- Функция С: `void' mgl_clf (`HMGL' gr)
+ -- Функция С: `void' mgl_clf_rgb (`HMGL' gr, `float' r, `float' g,
+          `float' b)
+     Очищает рисунок и заполняет его цветом BACK.
+
+ -- Метод класса `mglGraph' (C++): `void' Ball (`float' x, `float' y,
+          `float' z, `mglColor' col=`RC', `float' alpha=`1')
+ -- Метод класса `mglGraph' (C++): `void' Ball (`mglPoint' p, `char'
+          col=`'r'')
+ -- Метод класса `mglGraph' (Python): `void' Ball (`float' x, `float'
+          y, `float' z, `char' col=`'r'')
+ -- Функция С: `void' mgl_ball (`HMGL' gr, `float' x, `float' y,
+          `float' z)
+ -- Функция С: `void' mgl_ball_rgb (`HMGL' gr, `float' x, `float' y,
+          `float' z, `float' r, `float' g, `float' b, `float' alpha)
+ -- Функция С: `void' mgl_ball_str (`HMGL' gr, `float' x, `float' y,
+          `float' z, `char' col)
+     Рисует точку (шарик) с координатами P={X, Y, Z} и цветом COL.
+
+ -- Метод класса `mglGraph' (C++): `void' Error (`mglPoint' p,
+          `mglPoint' e, `char' *pen=`""')
+     Рисует 3d error box в точке P размером E и стилем PEN.
+
+ -- Метод класса `mglGraph' (C++): `void' Line (`mglPoint' p1,
+          `mglPoint' p2, `char *'stl=`"B"', `int'num=`2')
+ -- Метод класса `mglGraph' (Python): `void' Line (`float' x1, `float'
+          y1, `float' z1, `float' x2, `float' y2, `float' z2, `char
+          *'stl=`"B"', `int'num=`2')
+ -- Функция С: `void' mgl_line (`HMGL' gr, `float' x1, `float' y1,
+          `float' z1, `float' x2, `float' y2, `float' z2, `char *'stl,
+          `int'num)
+     Рисует геодезическую линию (декартовых координатах - прямую) из
+     точки P1 в P2 использую стиль линии STL. Параметр NUM определяет
+     гладкость линии (число точек на линии). Если NUM=`2', то рисуется
+     прямая даже в криволинейных координатах. Наоборот, для больших
+     значений (например, =`100') рисуется геодезическая линия
+     (окружность в полярных координатах, парабола в параболических и
+     т.д.). Линия рисуется даже если часть ее лежит вне диапазона осей
+     координат.
+
+ -- Метод класса `mglGraph' (C++): `void' Curve (`mglPoint' p1,
+          `mglPoint' d1, `mglPoint' p2, `mglPoint' d2, `const char
+          *'stl=`"B"', `int' num=`100')
+ -- Метод класса `mglGraph' (Python): `void' Curve (`float' x1, `float'
+          y1, `float' z1, `float' dx1, `float' dy1, `float' dz1,
+          `float' x2, `float' y2, `float' z2, `float' dx2, `float' dy2,
+          `float' dz2, `const char *'stl=`"B"', `int' num=`100')
+ -- Функция С: `void' mgl_curve (`HMGL' gr, `float' x1, `float' y1,
+          `float' z1, `float' dx1, `float' dy1, `float' dz1, `float'
+          x2, `float' y2, `float' z2, `float' dx2, `float' dy2, `float'
+          dz2, `const char *'stl, `int' num)
+     Рисует кривую Безье из точки P1 в P2 используя стиль линии STL.
+     Касательные в точках пропорциональны D1, D2. Параметр NUM
+     определяет гладкость линии (число точек на линии). Кривая рисуется
+     даже если часть ее лежит вне диапазона осей координат.
+
+ -- Метод класса `mglGraph' (C++): `void' Face (`mglPoint' p1,
+          `mglPoint' p2, `mglPoint' p3, `mglPoint' p4, `const char
+          *'stl=`"w"', `int' num=`2', `float' val=`NAN')
+     Рисует заполненный четырехугольник (грань) с углами в точках P1,
+     P2, P3, P4 и цветом(-ами) STL. При этом цвет может быть один для
+     всей грани, или различным если указаны все 4 цвета. В последнем
+     случае параметр VAL (если не `NAN') задает цвет в соответствии с
+     цветовой схемой. Грань будет нарисована даже если часть ее лежит
+     вне диапазона осей координат.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' FaceX (`float' x0,
+          `float' y0, `float' z0, `float' wy, `float' wz, `const char
+          *'stl=`"w"', `float' dx=`0', `float' dy=`0')
+ -- Метод класса `mglGraph' (C++, Python): `void' FaceY (`float' x0,
+          `float' y0, `float' z0, `float' wx, `float' wz, `const char
+          *'stl=`"w"', `float' dx=`0', `float' dy=`0')
+ -- Метод класса `mglGraph' (C++, Python): `void' FaceZ (`float' x0,
+          `float' y0, `float' z0, `float' wx, `float' wy, `const char
+          *'stl=`"w"', `float' dx=`0', `float' dy=`0')
+ -- Функция С: `void' mgl_facex (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `float' wy, `float' wz, `const char *'stl,
+          `float' d1, `float' d2)
+ -- Функция С: `void' mgl_facey (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `float' wx, `float' wz, `const char *'stl,
+          `float' d1, `float' d2)
+ -- Функция С: `void' mgl_facez (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `float' wx, `float' wy, `const char *'stl,
+          `float' d1, `float' d2)
+     Рисует закрашенный прямоугольник (грань) перпендикулярно оси
+     [x,y,z] в точке {X0, Y0, Z0} цветом STL и шириной WX, WY, WZ вдоль
+     соответствующего направления. При этом цвет может быть один для
+     всей грани, или различным для разных вершин если указаны все 4
+     цвета. Параметры D1!=0, D2!=0 задают дополнительный сдвиг
+     последней точки (т.е. рисуют четырехугольник).Грань будет
+     нарисована даже если часть ее лежит вне диапазона осей координат.
+
+ -- Метод класса `mglGraph' (C++): `void' Sphere (`mglPoint' p, `float'
+          r, `const char *'stl=`"r"')
+ -- Метод класса `mglGraph' (Python): `void' Sphere (`float' x0,
+          `float' y0, `float' z0, `float' r, `const char *'stl=`"r"')
+ -- Функция С: `void' mgl_sphere (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `float' r, `const char *'stl)
+     Рисует сферу радиуса R с центром в точке P={X, Y, Z} цветом STL.
+
+ -- Метод класса `mglGraph' (C++): `void' Drop (`mglPoint' p,
+          `mglPoint' q, `float' r, `mglColor' col, `float' shift=`1',
+          `float' ap=`1')
+ -- Метод класса `mglGraph' (C++): `void' Drop (`mglPoint' p,
+          `mglPoint' q, `float' r, `const char *'col="r", `float'
+          shift=`1', `float' ap=`1')
+ -- Метод класса `mglGraph' (Python): `void' Drop (`float' x0, `float'
+          y0, `float' z0, `float' dx, `float' dy, `float' dz, `float'
+          r, `const char *'col="r", `float' shift=`1', `float' ap=`1')
+ -- Функция С: `void' mgl_drop (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `float' dx, `float' dy, `float' dz, `float' r,
+          `const char *'col, `float' shift, `float' ap)
+     Рисует каплю радиуса R в точке P вытянутую вдоль направления Q
+     цветом COL. Параметр SHIFT определяет степень вытянутости: `0' -
+     сфера, `1' - классическая капля. Параметр AP определяет
+     относительную ширину капли (аналог "эллиптичности" для сферы). См.
+     раздел *note Drops sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++): `void' Cone (`mglPoint' p1,
+          `mglPoint' p2, `float' r1, `float' r2=`-1', `const char
+          *'stl=`"B"', `bool' edge=`false')
+ -- Метод класса `mglGraph' (Python): `void' Cone (`float' x1, `float'
+          y1, `float' z1, `float' x2, `float' y2, `float' z2, `float'
+          r1, `float' r2=`-1', `const char *'stl=`"B"', `bool'
+          edge=`false')
+ -- Функция С: `void' mgl_cone (`HMGL' gr, `float' x1, `float' y1,
+          `float' z1, `float' x2, `float' y2, `float' z2, `float' r1,
+          `float' r2, `const char *'stl, `int' draw_edge)
+     Рисует трубу (или усеченный конус если EDGE=`false') между точками
+     P1, P2 с радиусами на концах R1, R2. Если R2<0, то полагается
+     R2=R1. Цвет конуса задается строкой STL.
+
+ -- Метод класса `mglGraph' (C++): `void' Mark (`mglPoint' p, `char'
+          mark=`'.'')
+ -- Метод класса `mglGraph' (Python): `void' Mark (`float' x, `float'
+          y, `float' z, `char' mark=`'.'')
+ -- Функция С: `void' mgl_mark (`HMGL' gr, `float' x, `float' y,
+          `float' z, `char' mark)
+     Рисует маркер типа MARK в точке P.
+
+ -- Метод класса `mglGraph' (C++): `void' Glyph (`float' x, `float' y,
+          `float' f, `int' nt, `const short *'trig, `int' nl, `const
+          short *'line)
+     Рисует набор треугольников (или линий если TRIG=`NULL') для буквы
+     расположенной в точке {X, Y}. Значения массивов будут нормированы
+     на множитель F. Обычно эта функция используется внутри библиотеки.
+
+
+File: mathgl_ru.info,  Node: Text printing,  Next: Axis and Colorbar,  Prev: Primitives drawing,  Up: MathGL core
+
+3.6 Вывод текста
+===========================
+
+Функции для вывода текста позволяют вывести строку текста в
+произвольном месте рисунка, в произвольном направлении и вдоль
+произвольной кривой. Для низкоуровневого вывода и разбора ТеХ-их
+выражений используется класс mglFont (*note mglFont class::). Он
+позволяет использовать произвольное начертание шрифта и многие ТеХ-ие
+команды (детальнее *note Font styles::). Все функции вывода текста
+имеют варианты для 8-bit строк (`char *') и для Unicode строк (`wchar_t
+*'). В первом случае используется конверсия из текущей локали, т.е.
+иногда вам требуется явно указать локаль с помощью функции
+`setlocale()'. Аргумент SIZE определяет размер текста: размер шрифта
+если положителен или относительный размер (=-SIZE*FONTSIZE) если
+отрицателен. Начертание шрифта (STIX, arial, courier, times и др) можно
+изменить с помощью функций SetFont(), GetFont(). *Note Font settings::.
+
+   Параметры шрифта задаются строкой, которая может содержать символы
+стиля (`rbiwou') и/или выравнивания (`LRC'). Также строка может
+содержать символы цвета `wkrgbcymhRGBCYMHW' (*note Line styles::) после
+символа `:'. Стили шрифта: `r' - прямой, `i' - курсив, `b' - жирный,
+`w' - контурный, `o' - надчеркнутый, `u' - подчеркнутый. По умолчанию
+используется прямой шрифт. Типы выравнивания: `L' - по левому краю (по
+умолчанию), `C' - по центру, `R' - по правому краю. Например, строка
+`iC:b' соответствует курсиву синего цвета с выравниванием по центру.
+
+   Если строка содержит символы `aA', то текст выводится в абсолютных
+координатах (полагаются в диапазоне [0,1]). При этом используются
+координаты относительно рисунка (если указано `A') или относительно
+последнего SubPlot()/InPlot() (если указано `a').
+
+ -- Метод класса `mglGraph' (C++): `void' Puts (`mglPoint' p, `const
+          char *'text, `const char *'font=`""', `float' size=`-1',
+          `char' dir=`0', `float' shift=`0')
+ -- Метод класса `mglGraph' (C++): `void' Putsw (`mglPoint' p, `const
+          wchar_t *'text, `const char *'font=`""', `float' size=`-1',
+          `char' dir=`0', `float' shift=`0')
+ -- Метод класса `mglGraph' (Python): `void' Puts (`float' x, `float'
+          y, `float' z, `const char *'text, `const char *'font=`""',
+          `float' size=`-1', `char' dir=`0')
+ -- Функция С: `void' mgl_puts (`HMGL' gr, `float' x, `float' y,
+          `float' z, `const char *'text)
+ -- Функция С: `void' mgl_putsw (`HMGL' gr, `float' x, `float' y,
+          `float' z, `const wchar_t *'text)
+ -- Функция С: `void' mgl_puts_ext (`HMGL' gr, `float' x, `float' y,
+          `float' z, `const char *'text, `const char *'font, `float'
+          size, `char' dir)
+ -- Функция С: `void' mgl_putsw_ext (`HMGL' gr, `float' x, `float' y,
+          `float' z, `const wchar_t *'text, `const char *'font, `float'
+          size, `char' dir)
+     Выводит строку TEXT от точки P шрифтом определяемым строкой HOW.
+     Параметр DIR указывает дополнительное выравнивание строки: `x' -
+     как метку вдоль оси x, `y' - как метку вдоль оси y, `z' - как
+     метку вдоль оси z, `i' - как метку вдоль оси x с инвертированием,
+     `t' - без выравнивания (по умолчанию), `n' - выровнять в плоскости
+     x-y.
+
+ -- Метод класса `mglGraph' (C++): `float' Puts (`mglPoint' p,
+          `mglPoint' l, `const char *'text, `char'where=`'t'', `float'
+          size=`-1')
+ -- Метод класса `mglGraph' (C++): `float' Putsw (`mglPoint' p,
+          `mglPoint' l, `const wchar_t *'text, `char'where=`'t'',
+          `float' size=`-1')
+ -- Метод класса `mglGraph' (Python): `void' Puts (`float' x, `float'
+          y, `float' z, `float' dx, `float' dy, `float' dz, `const char
+          *'text, `char'where=`'t'', `float' size=`-1')
+ -- Функция С: `void' mgl_puts_dir (`HMGL' gr, `float' x, `float' y,
+          `float' z, `float' dx, `float' dy, `float' dz, `const char
+          *'text, `float' size)
+ -- Функция С: `void' mgl_putsw_dir (`HMGL' gr, `float' x, `float' y,
+          `float' z, `float' dx, `float' dy, `float' dz, `const wchar_t
+          *'text, `float' size)
+     Выводит строку TEXT от точки P вдоль направления L. Параметр WHERE
+     указывает выводить текст над линией (`T') или под ней (`t').
+     Функция возвращает ширину строки.
+
+ -- Метод класса `mglGraph' (C++): `void' Printf (`mglPoint' p, `const
+          char *'arg, ...)
+     Выводит форматированную строку от точки P.
+
+ -- Метод класса `mglGraph' (C++): `void' Label (`float' x, `float' y,
+          `const char *'text, `const char *'font=`""', `float'
+          size=`-1')
+ -- Метод класса `mglGraph' (C++): `void' Labelw (`float' x, `float' y,
+          `const wchar_t *'text, `const char *'font=`""', `float'
+          size=`-1')
+ -- Функция С: `void' mgl_label_xy (`HMGL' gr, `float' x, `float' y,
+          `const char *'text, `const char *'font, `float' size)
+ -- Функция С: `void' mgl_labelw_xy (`HMGL' gr, `float' x, `float' y,
+          `const wchar_t *'text, `const char *'font, `float' size)
+     Выводит строку TEXT в произвольном месте экрана от точки {X, Y}
+     шрифтом указанным FONT. Координаты `x, y' считаются лежащими в
+     диапазоне [0,1].
+
+ -- Метод класса `mglGraph' (C++): `void' Title (`const char *'text,
+          `const char *'font=`0', `float' size=`-2')
+ -- Метод класса `mglGraph' (C++): `void' Title (`const wchar_t *'text,
+          `const char *'font=`0', `float' size=`-2')
+ -- Метод класса `mglGraph' (Python): `void' Title (`const char *'text,
+          `const char *'font=`0', `int' size=`-2')
+ -- Функция С: `void' mgl_title (`HMGL' gr, `const char *'text, `const
+          char *'font, `int' size)
+ -- Функция С: `void' mgl_titlew (`HMGL' gr, `const wchar_t *'text,
+          `const char *'font, `int' size)
+     Выводит строку TEXT как заголовок рисунка (по верху рисунка).
+     Может использоваться из любого места (даже изнутри SubPlot()).
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Text (`const mglData
+          &'y, `const char *'text, `const char *'font=`""', float
+          size=`-1')
+ -- Метод класса `mglGraph' (C++): `void' Text (`const mglData &'y,
+          `const wchar_t *'text, `const char *'font=`""', float
+          size=`-1')
+ -- Метод класса `mglGraph' (C++, Python): `void' Text (`const mglData
+          &'x, `const mglData &'y, `const char *'text, `const char
+          *'font=`""', float size=`-1')
+ -- Метод класса `mglGraph' (C++): `void' Text (`const mglData &'x,
+          `const mglData &'y, `const wchar_t *'text, `const char
+          *'font=`""', float size=`-1')
+ -- Метод класса `mglGraph' (C++, Python): `void' Text (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'text, `const char *'font=`""', float size=`-1')
+ -- Метод класса `mglGraph' (C++): `void' Text (`const mglData &'x,
+          `const mglData &'y, `const mglData &'z, `const wchar_t
+          *'text, `const char *'font=`""', float size=`-1')
+ -- Функция С: `void' mgl_text_y (`HMGL' gr, `const HMDT' y, `const
+          char *'text, `const char *'font, float size)
+ -- Функция С: `void' mgl_text_xy (`const HMDT' x, `const HMDT' y,
+          `const char *'text, `const char *'font, float size)
+ -- Функция С: `void' mgl_text_xyz (`const HMDT' x, `const HMDT' y,
+          `const HMDT' z, `const char *'text, `const char *'font, float
+          size)
+     Выводит строку TEXT вдоль кривой {X[i], Y[i], Z[i]} шрифтом FONT.
+     Строка FONT может содержать символы: `t' для вывода текста под
+     кривой (по умолчанию), или `T' для вывода текста над кривой.
+     Размеры по 1-ой размерности должны быть одинаковы для всех
+     массивов `x.nx=y.nx=z.nx'. Если массив X не указан, то
+     используется "автоматический" массив со значениями в диапазоне
+     [MIN.x, MAX.x] (*note Ranges (bounding box)::). Если массив Z не
+     указан, то используется Z[i] = ZVAL. См. раздел *note Text
+     sample::, для примеров кода и графика.
+
+
+File: mathgl_ru.info,  Node: Axis and Colorbar,  Next: Legend,  Prev: Text printing,  Up: MathGL core
+
+3.7 Оси и Colorbar
+======================
+
+Эти функции рисуют объекты для "измерения" типа осей координат,
+цветовой таблицы (colorbar), сетку по осям, обрамляющий параллелепипед
+и подписи по осям координат. См. также *note Axis settings::.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Axis (`const char
+          *'dir=`"xyz"', `bool' adjust=`false')
+ -- Функция С: `void' mgl_axis (`HMGL' gr, `const char *'dir)
+     Рисует оси координат и метки на них (*note Axis settings::) в
+     направлениях, указанных строкой DIR. Если строка содержит символ
+     `_', то подписи меток отображаться не будут. Шрифт подписей
+     определяется функцией `SetFontDef()' (*note Font settings::).
+     Метки будут "подогнаны" если ADJUST=`true' (с помощью вызова
+     функции `AdjustTicks()').
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Colorbar (`const char
+          *'sch=`""', `int' pos=`0')
+ -- Функция С: `void' mgl_colorbar (`HMGL' gr, `const char *'sch, `int'
+          pos)
+     Рисует полосу соответствия цвета и числовых значений (colorbar)
+     для цветовой схемы SCH (используется текущая для `sch=""') с краю
+     от графика. Параметр POS задает местоположение: `0' - справа (по
+     умолчанию), `1' - слева, `2' - сверху, `3' - снизу. Если строка
+     SCH содержит `<>^_', то параметр POS определяется как: `pos=0' для
+     `>' (справа), `pos=1' для `<' (слева), `pos=2' для `^' (сверху),
+     `pos=3' для `_' (снизу). Если строка содержит `A', то используются
+     абсолютные координаты (относительно рисунка). См. раздел *note
+     Dens sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Colorbar (`const
+          mglData &'v, `const char *'sch=`""', `int' where=`0')
+ -- Функция С: `void' mgl_colorbar_val (`HMGL' gr, `const HMDT' v,
+          `const char *'sch, `int' where)
+     Аналогично предыдущему, но для цветовой схемы без сглаживания с
+     заданными значениями V. См. раздел *note ContD sample::, для
+     примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Colorbar (`const char
+          *'sch, `int' where, `float' x, `float' y, `float' w, `float'
+          h)
+ -- Метод класса `mglGraph' (C++, Python): `void' Colorbar (`int'
+          where, `float' x, `float' y, `float' w, `float' h)
+ -- Функция С: `void' mgl_colorbar_ext (`HMGL' gr, `const char *'sch,
+          `int' where, `float' x, `float' y, `float' w, `float' h)
+     Аналогично первому, но в произвольном месте графика {X, Y}
+     (полагаются в диапазоне [0,1]). Параметры W, H задают
+     относительную ширину и высоту colorbar.
+
+ -- Метод класса `mglGraph' (C++): `void' Colorbar (`const mglData &'v,
+          `const char *'sch, `int' where, `float' x, `float' y, `float'
+          w, `float' h)
+     Аналогично предыдущему, но для цветовой схемы без сглаживания с
+     заданными значениями V.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Grid (`const char
+          *'dir=`"xyz"', `const char *'pen=`"B-"')
+ -- Функция С: `void' mgl_axis_grid (`HMGL' gr, `const char *'dir,
+          `const char *'pen)
+     Рисует линии сетки в направлениях перпендикулярным DIR. Шаг сетки
+     такой же как у меток осей координат. Стиль линий задается
+     параметром PEN (по умолчанию - сплошная темно синяя линия `B-').
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Box (`const char
+          *'col=`""', `bool' ticks=`true')
+ -- Метод класса `mglGraph' (C++): `void' Box (`mglColor' col, `bool'
+          ticks=`true')
+ -- Функция С: `void' mgl_box (`HMGL' gr, `int' ticks)
+ -- Функция С: `void' mgl_box_rgb (`HMGL' gr, `float' r, `float' g,
+          `float' b, `int' ticks)
+ -- Функция С: `void' mgl_box_str (`HMGL' gr, `const char *'col, `int'
+          ticks)
+     Рисует ограничивающий параллелепипед цветом COL.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Label (`char' dir,
+          `const char *'text, `float' pos=`0', `float' size=`-1.4',
+          `float' shift=`0')
+ -- Метод класса `mglGraph' (C++): `void' Label (`char' dir, `const
+          wchar_t *'text, `float' pos=`0', `float' size=`-1.4', `float'
+          shift=`0')
+ -- Функция С: `void' mgl_label (`HMGL' gr, `char' dir, `const char
+          *'text)
+ -- Функция С: `void' mgl_label_ext (`HMGL' gr, `char' dir, `const char
+          *'text, `float' pos, `float' size, `float' shift)
+ -- Функция С: `void' mgl_labelw_ext (`HMGL' gr, `char' dir, `const
+          wchar_t *'text, `float' pos, `float' size, `float' shift)
+     Выводит подпись TEXT для оси DIR=`x',`y',`z',`t' (где `t' -
+     "тернарная" ось t=1-x-y). Параметр POS задает положение подписи:
+     при POS=0 - по центру оси, при POS>0 - около максимальных
+     значений, при POS<0 - около минимальных значений. Параметр SIZE
+     задает размер шрифта (по умолчанию в 1.4 раза больше чем у меток,
+     *note Font settings::). *Note Text printing::.
+
+
+File: mathgl_ru.info,  Node: Legend,  Next: 1D plotting,  Prev: Axis and Colorbar,  Up: MathGL core
+
+3.8 Легенда
+==================
+
+Эти функции обеспечивают рисование легенды графика (полезно для *note
+1D plotting::). Запись в легенде состоит из двух строк: одна для стиля
+линии и маркеров, другая с текстом описания (с включенным разбором
+TeX-их команд). Можно использовать непосредственно массивы строк, или
+накопление во внутренние массивы с помощью функции AddLegend() с
+последующим отображением. Положение легенды можно задать автоматически
+или вручную. Параметры FONT и SIZE задают стиль и размер шрифта (*note
+Font settings::). Параметр LLEN задает относительную ширину примера
+линии. Ели стиль линии пустой, то соответствующий текст печатается без
+отступа. Если строка FONT содержит символ `A', то координаты легенды
+считаются относительно картинки (а не текущего subplot). См. раздел
+*note Legend sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Legend (`int'
+          where=`0x3', `const char *'font=`"rL"', `float' size=`-0.8',
+          `float' llen=`0.1')
+ -- Функция С: `void' mgl_legend (`HMGL' gr, `int' where, `const char
+          *'font, `float' size, `float' llen)
+     Рисует легенду из накопленных записей шрифтом FONT размером SIZE.
+     Параметр WHERE задает положение легенды: `0' - в нижнем левом
+     углу, `1' - нижнем правом углу, `2' - верхнем левом углу, `3' -
+     верхнем правом углу (по умолчанию).
+
+ -- Метод класса `mglGraph' (C++): `void' Legend (`int' n, `wchar_t
+          **'text, `char **'style, `int' where=`0x3', `const char
+          *'font=`"rL"', `float' size=`-0.8', `float' llen=`0.1')
+     Рисует легенду из N записей шрифтом FONT размером SIZE. Массив
+     TEXT задает описание кривых со стилем STYLE (включая маркеры).
+     Параметр WHERE задает положение легенды: `0' - в нижнем левом
+     углу, `1' - нижнем правом углу, `2' - верхнем левом углу, `3' -
+     верхнем правом углу (по умолчанию).
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Legend (`float' x,
+          `float' y, `const char *'font=`"rL"', `float' size=`-0.8',
+          `float' llen=`0.1')
+ -- Функция С: `void' mgl_legend_xy (`HMGL' gr, `float' x, `float' y,
+          `const char *'font, `float' size, `float' llen)
+     Рисует легенду из накопленных записей шрифтом FONT размером SIZE.
+     Положение легенды задается параметрами X, Y, которые полагаются
+     нормированными в диапазоне [0,1].
+
+ -- Метод класса `mglGraph' (C++): `void' Legend (`int' n, `wchar_t
+          **'text, `char **'style, `float' x, `float' y, `const char
+          *'font=`"rL"', `float' size=`-0.8', `float' llen=`0.1')
+     Рисует легенду из N записей шрифтом FONT размером SIZE. Массив
+     TEXT задает описание кривых со стилем STYLE (включая маркеры).
+     Положение легенды задается параметрами X, Y, которые полагаются
+     нормированными в диапазоне [0,1].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' AddLegend (`const
+          char *'text, `const char *'style)
+ -- Метод класса `mglGraph' (C++): `void' AddLegend (`const wchar_t
+          *'text, `const char *'style)
+ -- Функция С: `void' mgl_add_legend (`HMGL' gr, `const char *'text,
+          `const char *'style)
+ -- Функция С: `void' mgl_add_legendw (`HMGL' gr, `const wchar_t
+          *'text, `const char *'style)
+     Добавляет описание TEXT кривой со стилем STYLE (*note Line
+     styles::) во внутренний массив записей легенды. Максимальное число
+     записей 100.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ClearLegend ()
+ -- Функция С: `void' mgl_clear_legend (`HMGL' gr)
+     Очищает внутренний массив записей легенды.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SetLegendBox (`bool'
+          enable)
+ -- Функция С: `void' mgl_set_legend_box (`HMGL' gr, `int' enable)
+     Включает/выключает рисование прямоугольника вокруг легенды. По
+     умолчанию (=`true') прямоугольник рисуется.
+
+ -- Method on `mglGraph' (C++, Python): `void' SetLegendMarks (`int'
+          num)
+ -- C function: `void' mgl_set_legend_marks (`HMGL' gr, `int' num)
+     Задает число маркеров в легенде. По умолчанию используется 1
+     маркер.
+
+
+File: mathgl_ru.info,  Node: 1D plotting,  Next: 2D plotting,  Prev: Legend,  Up: MathGL core
+
+3.9 1D графики
+=====================
+
+Эти функции строят графики для одномерных (1D) массивов. Одномерными
+считаются массивы, зависящие только от одного параметра (индекса)
+подобно кривой в параметрической форме {x(i),y(i),z(i)}, i=1...n. Есть
+5 основных типов 1D графиков: линия (Plot), линия с заполнением (Area),
+ступеньки (Step), прямоугольники (Bars, Barh) и вертикальные линии
+(Stem). Все эти типы графиков имеют похожий интерфейс. Есть версии для
+рисования в пространстве и на плоскости. В последнем случае имеется
+возможность использования только одного массива. Стиль линии и маркеров
+указывается строковой переменной. Если она равна "", то используется
+сплошная линия с цветом из палитры (*note Palette and colors::). Кроме
+того, есть еще несколько типов графиков для одномерных массивов,
+имеющих другой интерфейс и вид: поверхность вращения кривой (Torus),
+диаграмма (Chart), размер ошибки (Error), маркеры переменного размера
+(Mark), трубками (Tube) и т.д. *Note Line styles::. См. раздел *note 1D
+plot sample::, для примеров кода и графика.
+
+* Menu:
+
+* Plot::
+* Radar::
+* Tens::
+* Area::
+* Region::
+* Stem::
+* Bars::
+* Barh::
+* Chart::
+* Step::
+* Torus::
+* Tube::
+* Mark::
+* TextMark::
+* Error::
+* BoxPlot::
+
+
+File: mathgl_ru.info,  Node: Plot,  Next: Radar,  Up: 1D plotting
+
+3.9.1 Plot
+----------
+
+Функции рисуют ломанную линию по точкам. График рисуется для каждой
+строки если один из массивов матрица. Размер по 1-ой координате *должен
+быть одинаков* для всех массивов `x.nx=y.nx=z.nx'. Строка PEN задает
+цвет и стиль линии и маркеров (*note Line styles::). По умолчанию
+(`pen=""') рисуется сплошная линия с текущим цветом из палитры (*note
+Palette and colors::). См. также *note Area::, *note Step::, *note
+Stem::, *note Tube::, *note Mark::, *note Error::, *note Belt::, *note
+Tens::. См. раздел *note Plot sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Plot (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'pen=`""')
+ -- Функция С: `void' mgl_plot_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'pen)
+     Рисует в пространстве линию между точками {X[i], Y[i], Z[i]}.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Plot (`const mglData
+          &'x, `const mglData &'y, `const char *'pen=`""')
+ -- Функция С: `void' mgl_plot_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const char *'pen)
+     Рисует линию между точками {X[i], Y[i]} в плоскости Z=ZVAL (по
+     умолчанию в плоскости Z=MIN.Z).
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Plot (`const mglData
+          &'y, `const char *'pen=`""')
+ -- Функция С: `void' mgl_plot (`HMGL' gr, `const HMDT' y, `const char
+          *'pen)
+     Рисует линию между точками {X[i], Y[i]} в плоскости Z=ZVAL (по
+     умолчанию в плоскости Z=MIN.Z), где значения X[i] равно
+     распределены в интервале [MIN.x, MAX.x].
+
+
+File: mathgl_ru.info,  Node: Radar,  Next: Tens,  Prev: Plot,  Up: 1D plotting
+
+3.9.2 Radar
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Radar (`const mglData
+          &'a, `const char *'pen=`""', `float' r=`-1')
+ -- Функция С: `void' mgl_radar (`HMGL' gr, `const HMDT' a, `const char
+          *'pen, `float' r)
+     Функции рисуют radar chart, представляющий собой ломанную с
+     вершинами на радиальных линиях (типа ломанной в полярных
+     координатах). График рисуется для каждой строки если один из
+     массивов матрица. Параметр R задает дополнительный сдвиг данных
+     (т.е. используется A+R вместо A). Если `r<0', то `r=max(0,
+     -min(a)'. Строка PEN задает цвет и стиль линии и маркеров (*note
+     Line styles::). По умолчанию (`pen=""') используется сплошная
+     линия с текущим цветом из палитры (*note Palette and colors::).
+     Если PEN содержит символ `#', то также рисуется "сетка"
+     (радиальные линии и круг для R). См. также *note Plot::. См.
+     раздел *note Radar sample::, для примеров кода и графика.
+
+
+File: mathgl_ru.info,  Node: Tens,  Next: Area,  Prev: Radar,  Up: 1D plotting
+
+3.9.3 Tens
+----------
+
+Функции рисуют ломанную линию по точкам с цветом, определяемым массивом
+C (типа графика натяжений). График рисуется для каждой строки если один
+из массивов матрица. Размер по 1-ой координате *должен быть одинаков*
+для всех массивов `x.nx=y.nx=z.nx=c.nx'. Строка PEN задает цветовую
+схему (*note Color scheme::) и стиль и/или толщину линии (*note Line
+styles::). По умолчанию (`pen=""') используется сплошная линия с
+текущей цветовой схемой. См. также *note Plot::, *note Mesh::, *note
+Fall::. См. раздел *note Tens sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Tens (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'c, `const char *'pen=`""')
+ -- Функция С: `void' mgl_tens_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' c, `const char *'pen)
+     Рисует в пространстве линию между точками {X[i], Y[i], Z[i]} с
+     цветом C[i].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Tens (`const mglData
+          &'x, `const mglData &'y, `const mglData &'c, `const char
+          *'pen=`""')
+ -- Функция С: `void' mgl_tens_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' c, `const char *'pen)
+     Рисует линию между точками {X[i], Y[i]} в плоскости Z=ZVAL (по
+     умолчанию в плоскости Z=MIN.Z) с цветом C[i].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Tens (`const mglData
+          &'y, `const mglData &'c, `const char *'pen=`""')
+ -- Функция С: `void' mgl_tens (`HMGL' gr, `const HMDT' y, `const HMDT'
+          c, `const char *'pen)
+     Рисует линию между точками {X[i], Y[i]} в плоскости Z=ZVAL (по
+     умолчанию в плоскости Z=MIN.Z) с цветом C[i], где значения X[i]
+     равно распределены в интервале [MIN.x, MAX.x].
+
+
+File: mathgl_ru.info,  Node: Area,  Next: Region,  Prev: Tens,  Up: 1D plotting
+
+3.9.4 Area
+----------
+
+Функции рисуют ломанную линию между точками и закрашивает ее вниз до
+плоскости осей координат. График рисуется для каждой строки если один
+из массивов матрица. Размер по 1-ой координате *должен быть одинаков*
+для всех массивов `x.nx=y.nx=z.nx'. Строка PEN задает цвет и стиль
+линии и маркеров (*note Line styles::). По умолчанию (`pen=""')
+используется сплошная линия с текущим цветом из палитры (*note Palette
+and colors::). Также можно использовать градиентное закрашивание если
+число указанных цветов равно удвоенному числу кривых для построения.
+Если строка содержит символ `a', то линии рисуются одна поверх другой
+(с суммированием) - того же эффекта можно достичь вызовом
+`y.CumSum("y");' перед построением графика. См. также *note Plot::,
+*note Bars::, *note Stem::. См. раздел *note Area sample::, для
+примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Area (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'pen=`""')
+ -- Функция С: `void' mgl_area_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'pen)
+     Рисует в пространстве линию между точками {X[i], Y[i], Z[i]} и
+     закрашивает ее вниз до плоскости Z = Org.z.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Area (`const mglData
+          &'x, `const mglData &'y, `const char *'pen=`""')
+ -- Функция С: `void' mgl_area_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const char *'pen)
+     Рисует линию между точками {X[i], Y[i]} в плоскости Z=ZVAL (по
+     умолчанию в плоскости Z=MIN.Z) и закрашивает ее до прямой Y =
+     Org.y.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Area (`const mglData
+          &'y, `const char *'pen=`""', `bool' sum=`false')
+ -- Функция С: `void' mgl_area (`HMGL' gr, `const HMDT' y, `const char
+          *'pen)
+ -- Функция С: `void' mgl_area_s (`HMGL' gr, `const HMDT' y, `const
+          char *'pen)
+     Рисует линию между точками {X[i], Y[i]} в плоскости Z=ZVAL (по
+     умолчанию в плоскости Z=MIN.Z) и закрашивает ее до прямой Y =
+     Org.y, где значения X[i] равно распределены в интервале [MIN.x,
+     MAX.x]. Параметр SUM задает режим рисования линий одна поверх
+     другой (с сумированием). Замечу, что того же эффекта можно достичь
+     вызовом `y.CumSum("y");' перед построением графика.
+
+
+File: mathgl_ru.info,  Node: Region,  Next: Stem,  Prev: Area,  Up: 1D plotting
+
+3.9.5 Region
+------------
+
+Функции закрашивают область между 2 кривыми. График рисуется для каждой
+строки если один из массивов матрица. Размер по 1-ой координате *должен
+быть одинаков* для всех массивов `x.nx=y1.nx=y2.nx' и размеры массивов
+Y1, Y2 должны быть также одинаковы. Строка PEN задает цвет (*note Line
+styles::). По умолчанию (`pen=""') используется текущий цвет из палитры
+(*note Palette and colors::). Также можно использовать градиентное
+закрашивание если число указанных цветов равно удвоенному числу кривых
+для построения. См. также *note Area::, *note Bars::, *note Stem::. См.
+раздел *note Region sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Region (`const
+          mglData &'x, `const mglData &'y1, `const mglData &'y2, `const
+          char *'pen=`""', `float' zVal=`NAN', `bool' inside=`true')
+ -- Функция С: `void' mgl_region_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y1, `const HMDT' y2, `const char *'pen, `int' inside)
+     Закрашивает область между кривыми {X[i], Y1[i]} и {X[i], Y2[i]}
+     при z=ZVAL. При  `inside=off' закрашивается только область
+     y1<y<y2, в противном случае также будет закращена область y2<y<y1.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Region (`const
+          mglData &'y1, `const mglData &'y2, `const char *'pen=`""',
+          `float' zVal=`NAN', `bool' inside=`true')
+ -- Функция С: `void' mgl_region (`HMGL' gr, `const HMDT' y1, `const
+          HMDT' y2, `const char *'pen, `int' inside)
+     Закрашивает область между кривыми {X[i], Y1[i]} и {X[i], Y2[i]}
+     при z=ZVAL, где значения X[i] равно распределены в интервале
+     [MIN.x, MAX.x].
+
+
+File: mathgl_ru.info,  Node: Stem,  Next: Bars,  Prev: Region,  Up: 1D plotting
+
+3.9.6 Stem
+----------
+
+Функции рисуют вертикальные линии из точек до плоскости осей координат.
+График рисуется для каждой строки если один из массивов матрица. Размер
+по 1-ой координате *должен быть одинаков* для всех массивов
+`x.nx=y.nx=z.nx'. Строка PEN задает цвет и стиль линии и маркеров
+(*note Line styles::). По умолчанию (`pen=""') используется сплошная
+линия с текущим цветом из палитры (*note Palette and colors::). См.
+также *note Area::, *note Bars::, *note Plot::, *note Mark::. См.
+раздел *note Stem sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Stem (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'pen=`""')
+ -- Функция С: `void' mgl_stem_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'pen)
+     Рисует вертикальные линии из точек {X[i], Y[i], Z[i]} вниз до
+     плоскости Z = Org.z.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Stem (`const mglData
+          &'x, `const mglData &'y, `const char *'pen=`""')
+ -- Функция С: `void' mgl_stem_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const char *'pen)
+     Рисует вертикальные линии из точек {X[i], Y[i]} до Y = Org.y в
+     плоскости Z=ZVAL (по умолчанию в плоскости Z=MIN.Z).
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Stem (`const mglData
+          &'y, `const char *'pen=`""')
+ -- Функция С: `void' mgl_stem (`HMGL' gr, `const HMDT' y, `const char
+          *'pen)
+     Рисует вертикальные линии из точек {X[i], Y[i]} до Y = Org.y в
+     плоскости Z=ZVAL (по умолчанию в плоскости Z=MIN.Z), где значения
+     X[i] равно распределены в интервале [MIN.x, MAX.x].
+
+
+File: mathgl_ru.info,  Node: Bars,  Next: Barh,  Prev: Stem,  Up: 1D plotting
+
+3.9.7 Bars
+----------
+
+Функции рисуют вертикальные полосы (прямоугольники) из точек до
+плоскости осей координат. График рисуется для каждой строки если один
+из массивов матрица. Размер по 1-ой координате *должен быть одинаков*
+для всех массивов `x.nx=y.nx=z.nx'. Строка PEN задает цвет и стиль
+линии и маркеров (*note Line styles::). По умолчанию (`pen=""')
+используется сплошная линия с текущим цветом из палитры (*note Palette
+and colors::). Если строка содержит символ `a', то линии рисуются одна
+поверх другой. Если строка содержит символ `f', то рисуется график типа
+waterfall для определения кумулятивного эффекта последовательности
+положительных и отрицательных значений. Можно использовать разные цвета
+для положительных и отрицательных значений если число указанных цветов
+равно удвоенному числу кривых для построения. См. также *note Barh::,
+*note Area::, *note Stem::, *note Chart::, *note Default sizes::. См.
+раздел *note Bars sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Bars (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'pen=`""')
+ -- Функция С: `void' mgl_bars_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'pen)
+     Рисует вертикальные полосы из точек {X[i], Y[i], Z[i]} вниз до
+     плоскости Z = Org.z.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Bars (`const mglData
+          &'x, `const mglData &'y, `const char *'pen=`""')
+ -- Функция С: `void' mgl_bars_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const char *'pen)
+     Рисует вертикальные полосы из точек {X[i], Y[i]} до Y = Org.y в
+     плоскости Z=ZVAL (по умолчанию в плоскости Z=MIN.Z).
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Bars (`const mglData
+          &'y, `const char *'pen=`""')
+ -- Функция С: `void' mgl_bars (`HMGL' gr, `const HMDT' y, `const char
+          *'pen)
+     Рисует вертикальные полосы из точек {X[i], Y[i]} до Y = Org.y в
+     плоскости Z=ZVAL (по умолчанию в плоскости Z=MIN.Z), где значения
+     X[i] равно распределены в интервале [MIN.x, MAX.x].
+
+
+File: mathgl_ru.info,  Node: Barh,  Next: Chart,  Prev: Bars,  Up: 1D plotting
+
+3.9.8 Barh
+----------
+
+Функции рисуют горизонтальные полосы (прямоугольники) из точек до
+плоскости осей координат. График рисуется для каждой строки если один
+из массивов матрица. Размер по 1-ой координате *должен быть одинаков*
+для всех массивов `x.nx=y.nx=z.nx'. Строка PEN задает цвет и стиль
+линии и маркеров (*note Line styles::). По умолчанию (`pen=""')
+используется сплошная линия с текущим цветом из палитры (*note Palette
+and colors::). Если строка содержит символ `a', то линии рисуются одна
+поверх другой. Если строка содержит символ `f', то рисуется график типа
+waterfall для определения кумулятивного эффекта последовательности
+положительных и отрицательных значений. Можно использовать разные цвета
+для положительных и отрицательных значений если число указанных цветов
+равно удвоенному числу кривых для построения. См. также *note Barh::,
+*note Default sizes::. См. раздел *note Barh sample::, для примеров
+кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Barh (`const mglData
+          &'y, `const mglData &'v, `const char *'pen=`""')
+ -- Функция С: `void' mgl_barh_xy (`HMGL' gr, `const HMDT' y, `const
+          HMDT' v, `const char *'pen)
+     Рисует горизонтальные полосы из точек {V[i], Y[i]} до X = Org.x в
+     плоскости Z=ZVAL (по умолчанию в плоскости Z=MIN.Z).
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Barh (`const mglData
+          &'v, `const char *'pen=`""')
+ -- Функция С: `void' mgl_barh (`HMGL' gr, `const HMDT' v, `const char
+          *'pen)
+     Рисует горизонтальные полосы из точек {V[i], Y[i]} до X = Org.x в
+     плоскости Z=ZVAL (по умолчанию в плоскости Z=MIN.Z), где значения
+     Y[i] равно распределены в интервале [MIN.y, MAX.y].
+
+
+File: mathgl_ru.info,  Node: Chart,  Next: Step,  Prev: Barh,  Up: 1D plotting
+
+3.9.9 Chart
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Chart (`const mglData
+          &'a, `const char *'col=`""')
+ -- Функция С: `void' mgl_chart (`HMGL' gr, `const HMDT' a, `const char
+          *'col)
+     Рисует цветные полосы (пояса) для массива данных A. Число полос
+     равно числу строк A (равно A.NY). Цвет полос поочередно меняется
+     из цветов указанных в COL или в палитре (*note Palette and
+     colors::). Пробел в цветах соответствует прозрачному "цвету", т.е.
+     если COL содержит пробел(ы), то соответствующая полоса не
+     рисуется. Ширина полосы пропорциональна значению элемента в A.
+     График строится только для массивов не содержащих отрицательных
+     значений. Если строка COL содержит `#', то рисуется также черная
+     граница полос. График выглядит лучше в (после вращения системы
+     координат) и/или в полярной системе координат (становится Pie
+     chart). См. раздел *note Chart sample::, для примеров кода и
+     графика.
+
+
+File: mathgl_ru.info,  Node: Step,  Next: Torus,  Prev: Chart,  Up: 1D plotting
+
+3.9.10 Step
+-----------
+
+Функции рисуют ступеньки для точек массива. График рисуется для каждой
+строки если один из массивов матрица. Размер по 1-ой координате *должен
+быть одинаков* для всех массивов `x.nx=y.nx=z.nx'. Строка PEN задает
+цвет и стиль линии и маркеров (*note Line styles::). По умолчанию
+(`pen=""') используется сплошная линия с текущим цветом из палитры
+(*note Palette and colors::). См. также *note Plot::, *note Stem::,
+*note Tile::, *note Boxs::. См. раздел *note Step sample::, для
+примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Step (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'pen=`""')
+ -- Функция С: `void' mgl_step_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'pen)
+     Рисует ступеньки для точек {X[i], Y[i], Z[i]}.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Step (`const mglData
+          &'x, `const mglData &'y, `const char *'pen=`""')
+ -- Функция С: `void' mgl_step_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const char *'pen)
+     Рисует ступеньки для точек {X[i], Y[i]} в плоскости Z=ZVAL (по
+     умолчанию в плоскости Z=MIN.Z).
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Step (`const mglData
+          &'y, `const char *'pen=`""')
+ -- Функция С: `void' mgl_step (`HMGL' gr, `const HMDT' y, `const char
+          *'pen)
+     Рисует ступеньки для точек {X[i], Y[i]} в плоскости Z=ZVAL (по
+     умолчанию в плоскости Z=MIN.Z), где значения X[i] равно
+     распределены в интервале [MIN.x, MAX.x].
+
+
+File: mathgl_ru.info,  Node: Torus,  Next: Tube,  Prev: Step,  Up: 1D plotting
+
+3.9.11 Torus
+------------
+
+Функции рисуют поверхность вращения кривой {R, Z} относительно оси,
+заданной `SetAxialDir()' (*note Other settings::). Размер по 1-ой
+координате *должен быть одинаков* для всех массивов R.NX=Z.NX. Строка
+PEN задает цвет (*note Line styles::). По умолчанию (`pen=""')
+используется цвет из палитры (*note Palette and colors::). См. также
+*note Plot::, *note Axial::. См. раздел *note Torus sample::, для
+примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Torus (`const mglData
+          &'r, `const mglData &'z, `const char *'pen=`""')
+ -- Функция С: `void' mgl_torus (`HMGL' gr, `const HMDT' r, `const
+          HMDT' z, `const char *'pen)
+     Рисует поверхность вращения кривой {R[i], Z[i]}.
+
+ -- Метод класса `mglGraph' (C++): `void' Torus (`const mglData &'z,
+          `const char *'pen=`""')
+     Рисует поверхность вращения кривой {R[i], Z[i]}, где значения R[i]
+     равно распределены в интервале [MIN.x, MAX.x].
+
+
+File: mathgl_ru.info,  Node: Tube,  Next: Mark,  Prev: Torus,  Up: 1D plotting
+
+3.9.12 Tube
+-----------
+
+Функции рисуют трубу радиуса R[i] вдоль кривой между точками {X[i],
+Y[i], Z[i]}. График рисуется для каждой строки если один из массивов
+матрица. Размер по 1-ой координате *должен быть одинаков* для всех
+массивов `x.nx=y.nx=z.nx=r.nx'. Строка PEN задает цвет и стиль линии и
+маркеров (*note Line styles::). По умолчанию (`pen=""') используется
+сплошная линия с текущим цветом из палитры (*note Palette and
+colors::). См. также *note Plot::. См. раздел *note Tube sample::, для
+примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Tube (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'r, `const char *'pen=`""')
+ -- Метод класса `mglGraph' (C++, Python): `void' Tube (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `float' r,
+          `const char *'pen=`""')
+ -- Функция С: `void' mgl_tube_xyzr (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' r, `const char *'pen)
+ -- Функция С: `void' mgl_tube_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `float' r, `const char *'pen)
+     Рисует трубу радиуса R  в пространстве между точками {X[i], Y[i],
+     Z[i]}.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Tube (`const mglData
+          &'x, `const mglData &'y, `const mglData &'r, `const char
+          *'pen=`""')
+ -- Метод класса `mglGraph' (C++, Python): `void' Tube (`const mglData
+          &'x, `const mglData &'y, `float' r, `const char *'pen=`""')
+ -- Функция С: `void' mgl_tube_xyr (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' r, `const char *'pen)
+ -- Функция С: `void' mgl_tube_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `float' r, `const char *'pen)
+     Рисует трубу радиуса R между точками {X[i], Y[i]} в плоскости
+     Z=ZVAL (по умолчанию в плоскости Z=MIN.Z).
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Tube (`const mglData
+          &'y, `const mglData &'r, `const char *'pen=`""')
+ -- Метод класса `mglGraph' (C++, Python): `void' Tube (`const mglData
+          &'y, `float' r, `const char *'pen=`""')
+ -- Функция С: `void' mgl_tube_r (`HMGL' gr, `const HMDT' y, `const
+          HMDT' r, `const char *'pen)
+ -- Функция С: `void' mgl_tube (`HMGL' gr, `const HMDT' y, `float' r,
+          `const char *'pen)
+     Рисует трубу радиуса R между точками {X[i], Y[i]} в плоскости
+     Z=ZVAL (по умолчанию в плоскости Z=MIN.Z), где значения X[i] равно
+     распределены в интервале [MIN.x, MAX.x].
+
+
+File: mathgl_ru.info,  Node: Mark,  Next: TextMark,  Prev: Tube,  Up: 1D plotting
+
+3.9.13 Mark
+-----------
+
+Функции рисуют маркеры размером R*MARKSIZE (*note Default sizes::) в
+точках {X[i], Y[i], Z[i]}. График рисуется для каждой строки если один
+из массивов матрица. Размер по 1-ой координате *должен быть одинаков*
+для всех массивов `x.nx=y.nx=z.nx=r.nx'. Строка PEN задает цвет и стиль
+линии и маркеров (*note Line styles::). По умолчанию (`pen=""')
+используется сплошная линия с текущим цветом из палитры (*note Palette
+and colors::). Для рисования маркеров одинакового размера можно
+использовать функцию *note Plot:: с невидимой линией (со стилем
+содержащим ` '). См. также *note Plot::, *note TextMark::, *note
+Stem::, *note Error::. См. раздел *note Mark sample::, для примеров
+кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Mark (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'r, `const char *'pen=`""')
+ -- Функция С: `void' mgl_mark_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' r, `const char *'pen)
+     Рисует маркеры для точек {X[i], Y[i], Z[i]}.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Mark (`const mglData
+          &'x, `const mglData &'y, `const mglData &'r, `const char
+          *'pen=`""')
+ -- Функция С: `void' mgl_mark_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' r, `const char *'pen)
+     Рисует маркеры для точек {X[i], Y[i]} в плоскости Z=ZVAL (по
+     умолчанию в плоскости Z=MIN.Z).
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Mark (`const mglData
+          &'y, `const mglData &'r, `const char *'pen=`""')
+ -- Функция С: `void' mgl_mark_y (`HMGL' gr, `const HMDT' y, `const
+          HMDT' r, `const char *'pen)
+     Рисует маркеры для точек {X[i], Y[i]} в плоскости Z=ZVAL (по
+     умолчанию в плоскости Z=MIN.Z), где значения X[i] равно
+     распределены в интервале [MIN.x, MAX.x].
+
+
+File: mathgl_ru.info,  Node: TextMark,  Next: Error,  Prev: Mark,  Up: 1D plotting
+
+3.9.14 TextMark
+---------------
+
+Функции рисуют текст TEXT как маркер с размером пропорциональным
+R*MARKSIZE (*note Default sizes::) в точках {X[i], Y[i], Z[i]}. График
+рисуется для каждой строки если один из массивов матрица. Размер по
+1-ой координате *должен быть одинаков* для всех массивов
+`x.nx=y.nx=z.nx=r.nx'. Строка PEN задает цвет и стиль линии и маркеров
+(*note Line styles::). По умолчанию (`pen=""') используется сплошная
+линия с текущим цветом из палитры (*note Palette and colors::). См.
+также *note Plot::, *note Mark::, *note Stem::. См. раздел *note
+TextMark sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' TextMark (`const
+          mglData &'x, `const mglData &'y, `const mglData &'z, `const
+          mglData &'r, `const char *'text, `const char *'fnt=`""')
+ -- Метод класса `mglGraph' (C++): `void' TextMark (`const mglData &'x,
+          `const mglData &'y, `const mglData &'z, `const mglData &'r,
+          `const wchar_t *'text, `const char *'fnt=`""')
+ -- Функция С: `void' mgl_textmarkw_xyzr (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' r, `const
+          wchar_t *'text, `const char *'fnt)
+ -- Функция С: `void' mgl_textmark_xyzr (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' r, `const char
+          *'text, `const char *'fnt)
+     Рисует текстовые маркеры в точках {X[i], Y[i], Z[i]}.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' TextMark (`const
+          mglData &'x, `const mglData &'y, `const mglData &'r, `const
+          char *'text, `const char *'fnt=`""')
+ -- Метод класса `mglGraph' (C++): `void' TextMark (`const mglData &'x,
+          `const mglData &'y, `const mglData &'r, `const wchar_t
+          *'text, `const char *'fnt=`""')
+ -- Функция С: `void' mgl_textmarkw_xyr (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' r, `const wchar_t *'text, `const
+          char *'fnt)
+ -- Функция С: `void' mgl_textmark_xyr (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' r, `const char *'text, `const
+          char *'fnt)
+     Рисует текстовые маркеры в точках {X[i], Y[i]} в плоскости Z=ZVAL
+     (по умолчанию в плоскости Z=MIN.Z).
+
+ -- Метод класса `mglGraph' (C++, Python): `void' TextMark (`const
+          mglData &'y, `const mglData &'r, `const char *'text, `const
+          char *'fnt=`""')
+ -- Метод класса `mglGraph' (C++): `void' TextMark (`const mglData &'y,
+          `const mglData &'r, `const wchar_t *'text, `const char
+          *'fnt=`""')
+ -- Функция С: `void' mgl_textmarkw_yr (`HMGL' gr, `const HMDT' y,
+          `const HMDT' r, `const wchar_t *'text, `const char *'fnt)
+ -- Функция С: `void' mgl_textmark_yr (`HMGL' gr, `const HMDT' y,
+          `const HMDT' r, `const char *'text, `const char *'fnt)
+     Рисует текстовые маркеры в точках {X[i], Y[i]} в плоскости Z=ZVAL
+     (по умолчанию в плоскости Z=MIN.Z), где значения X[i] равно
+     распределены в интервале [MIN.x, MAX.x].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' TextMark (`const
+          mglData &'y, `const char *'text, `const char *'fnt=`""')
+ -- Метод класса `mglGraph' (C++): `void' TextMark (`const mglData &'y,
+          `const wchar_t *'text, `const char *'fnt=`""')
+ -- Функция С: `void' mgl_textmarkw (`HMGL' gr, `const HMDT' y, `const
+          wchar_t *'text, `const char *'fnt)
+ -- Функция С: `void' mgl_textmark (`HMGL' gr, `const HMDT' y, `const
+          char *'text, `const char *'fnt)
+     Рисует текстовые маркеры в точках {X[i], Y[i]} в плоскости Z=ZVAL
+     (по умолчанию в плоскости Z=MIN.Z), где значения X[i] равно
+     распределены в интервале [MIN.x, MAX.x]. The mark sizes R[i]=1 for
+     all points.
+
+
+File: mathgl_ru.info,  Node: Error,  Next: BoxPlot,  Prev: TextMark,  Up: 1D plotting
+
+3.9.15 Error
+------------
+
+Функции рисуют размер ошибки в точках {X[i], Y[i]} на плоскости Z =
+ZVAL (по умолчанию Z=MIN.Z). Такой график полезен для отображения
+ошибки эксперимента, вычислений и пр. График рисуется для каждой строки
+если один из массивов матрица. Размер по 1-ой координате *должен быть
+одинаков* для всех массивов `x.nx=y.nx=z.nx=r.nx'. Строка PEN задает
+цвет и стиль линии и маркеров (*note Line styles::). По умолчанию
+(`pen=""') используется сплошная линия с текущим цветом из палитры
+(*note Palette and colors::). См. также *note Plot::. См. раздел *note
+Error sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Error (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ex, `const mglData
+          &'ey, `const char *'pen=`""')
+ -- Функция С: `void' mgl_error_exy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ex, `const HMDT' ey, `const char *'pen)
+     Рисует размер ошибки {EX, EY} в точках {X, Y}.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Error (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ey, `const char
+          *'pen=`""')
+ -- Функция С: `void' mgl_error_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ey, `const char *'pen)
+     Рисует размер ошибки EY (только вдоль одного направления) в точках
+     {X, Y}.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Error (`const mglData
+          &'y, `const mglData &'ey, `const char *'pen=`""')
+ -- Функция С: `void' mgl_error (`HMGL' gr, `const HMDT' y, `const
+          HMDT' ey, `const char *'pen)
+     Рисует размер ошибки EY  (только вдоль одного направления) в
+     точках {X, Y}, где значения X[i] равно распределены в интервале
+     [MIN.x, MAX.x].
+
+
+File: mathgl_ru.info,  Node: BoxPlot,  Prev: Error,  Up: 1D plotting
+
+3.9.16 BoxPlot
+--------------
+
+Функции рисуют boxplot (называемый также как box-and-whisker diagram
+или как "ящик с усами") в точках X[i] на плоскости Z = ZVAL (по
+умолчанию Z=MIN.Z). Это график, компактно изображающий распределение
+вероятностей A[i,j] (минимум, нижний квартиль (Q1), медиана (Q2),
+верхний квартиль (Q3) и максимум) вдоль второго (j-го) направления.
+Размер по 1-ой координате *должен быть одинаков* для всех массивов
+`x.nx=a.nx'. Строка PEN задает цвет и стиль линий (*note Line
+styles::). По умолчанию (`pen=""') используется сплошная линия с
+текущим цветом из палитры (*note Palette and colors::). См. также *note
+Plot::, *note Error::, *note Bars::, *note Default sizes::. См. раздел
+*note BoxPlot sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' BoxPlot (`const
+          mglData &'x, `const mglData &'a, `const char *'pen=`""')
+ -- Функция С: `void' mgl_boxplot_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' a, `const char *'pen)
+     Рисует boxplot с заданными значениями координат X[i].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' BoxPlot (`const
+          mglData &'a, `const char *'pen=`""')
+ -- Функция С: `void' mgl_boxplot (`HMGL' gr, `const HMDT' a, `const
+          char *'pen)
+     Рисует boxplot со значениями X[i] равно распределенными в
+     интервале [MIN.x, MAX.x].
+
+
+File: mathgl_ru.info,  Node: 2D plotting,  Next: 3D plotting,  Prev: 1D plotting,  Up: MathGL core
+
+3.10 2D графики
+======================
+
+Эти функции строят графики для двумерных (2D) массивов. Двумерными
+считаются массивы, зависящие только от двух параметров (индексов)
+подобно матрице f(x_i,y_j), i=1...n, j=1...m. Есть несколько основных
+типов 2D графиков: сплошная поверхность (Surf), сетчатая поверхность
+(Mesh), поверхность из ящиков (Boxs), поверхность из плиток (Tile),
+водопад (Fall), ленточки (Belt), график плотности (Dens), линии уровня
+(Cont), линии уровня с заполнением (ContF) и результат их вращения
+(Axial). В функциях Cont(), ContF() и Axial() значения уровней можно
+задавать автоматически и вручную. Можно также нарисовать сетку (Grid)
+по массиву данных для улучшения вида графика плотности или линий
+уровня. Каждый тип графика имеет похожий интерфейс. Есть версия для
+рисования одного массива с автоматическими координатами и версия для
+параметрически заданной поверхности. Параметры цветовой схемы задаются
+строкой *Note Color scheme::. См. раздел *note 2D plot sample::, для
+примеров кода и графика.
+
+* Menu:
+
+* Mesh::
+* Fall::
+* Belt::
+* Surf::
+* Boxs::
+* Tile::
+* Dens::
+* Cont::
+* ContF::
+* ContD::
+* Axial::
+* Grad::
+* Grid::
+
+
+File: mathgl_ru.info,  Node: Mesh,  Next: Fall,  Up: 2D plotting
+
+3.10.1 Mesh
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Mesh (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""')
+ -- Функция С: `void' mgl_mesh_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch)
+     Рисует сетчатую поверхность, заданную параметрически {X[i,j],
+     Y[i,j], Z[i,j]}. Строка SCH задает цветовую схему. Предыдущая
+     цветовая схема используется по умолчанию. Младшие размерности
+     массивов X, Y, Z должны быть одинаковы `x.nx=z.nx && y.nx=z.ny'
+     или `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Массивы X и Y могут быть
+     векторами (не матрицами как Z). График строится для каждого z
+     среза данных. См. также *note Surf::, *note Fall::, MeshNum (*note
+     Other settings::), *note Cont::, *note Tens::. См. раздел *note
+     Mesh sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Mesh (`const mglData
+          &'z, `const char *'sch=`""')
+ -- Функция С: `void' mgl_mesh (`HMGL' gr, `const HMDT' z, `const char
+          *'sch)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+
+Local Variables:
+coding: utf-8
+End:
diff --git a/texinfo/mathgl_ru.info-2 b/texinfo/mathgl_ru.info-2
new file mode 100644
index 0000000..a5e0002
--- /dev/null
+++ b/texinfo/mathgl_ru.info-2
@@ -0,0 +1,5091 @@
+This is mathgl_ru.info, produced by makeinfo version 4.13 from
+mathgl_ru.texi.
+
+Это документация для MathGL (версии 1.11) - библиотеки классов и
+функций для построения научной графики. Пожалуйста сообщайте о любых
+ошибках в этом руководстве на <mathgl.abalakin at gmail.org>.
+
+   Copyright (C) 2009 Алексей Балакин.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with the Front-Cover Texts
+     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+     below.  A copy of the license is included in the section entitled
+     "GNU Free Documentation License."
+
+     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+     and modify this GNU manual.  Buying copies from the FSF supports
+     it in developing GNU and promoting software freedom."
+
+
+File: mathgl_ru.info,  Node: Fall,  Next: Belt,  Prev: Mesh,  Up: 2D plotting
+
+3.10.2 Fall
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Fall (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""')
+ -- Функция С: `void' mgl_fall_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch)
+     Рисует водопад для параметрически заданной поверхности {X[i,j],
+     Y[i,j], Z[i,j]}. График удобен для построения нескольких кривых,
+     сдвинутых вглубь друг относительно друга. Строка SCH задает
+     цветовую схему. Предыдущая цветовая схема используется по
+     умолчанию. Если SCH содержит `x', то линии рисуются вдоль x-оси
+     (по умолчанию линии рисуются вдоль y-оси). Младшие размерности
+     массивов X, Y, Z должны быть одинаковы `x.nx=z.nx && y.nx=z.ny'
+     или `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Массивы X и Y могут быть
+     векторами (не матрицами как Z). График строится для каждого z
+     среза данных. См. также *note Belt::, *note Mesh::, *note Tens::,
+     MeshNum (*note Other settings::). См. раздел *note Fall sample::,
+     для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Fall (`const mglData
+          &'z, `const char *'sch=`""')
+ -- Функция С: `void' mgl_fall (`HMGL' gr, `const HMDT' z, `const char
+          *'sch)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Belt,  Next: Surf,  Prev: Fall,  Up: 2D plotting
+
+3.10.3 Belt
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Belt (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""')
+ -- Функция С: `void' mgl_belt_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch)
+     Рисует ленточки для параметрически заданной поверхности {X[i,j],
+     Y[i,j], Z[i,j]}. График может использоваться как 3d обобщение
+     графика Plot() (*note Plot::). Строка SCH задает цветовую схему.
+     Предыдущая цветовая схема используется по умолчанию. Если SCH
+     содержит `x', то линии рисуются вдоль x-оси (по умолчанию линии
+     рисуются вдоль y-оси). Младшие размерности массивов X, Y, Z должны
+     быть одинаковы `x.nx=z.nx && y.nx=z.ny' или `x.nx=y.nx=z.nx &&
+     x.ny=y.ny=z.ny'. Массивы X и Y могут быть векторами (не матрицами
+     как Z). График строится для каждого z среза данных. См. также
+     *note Fall::, *note Surf::, *note Plot::, MeshNum (*note Other
+     settings::). См. раздел *note Belt sample::, для примеров кода и
+     графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Belt (`const mglData
+          &'z, `const char *'sch=`""')
+ -- Функция С: `void' mgl_belt (`HMGL' gr, `const HMDT' z, `const char
+          *'sch)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Surf,  Next: Boxs,  Prev: Belt,  Up: 2D plotting
+
+3.10.4 Surf
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""')
+ -- Функция С: `void' mgl_surf_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch)
+     Рисует параметрически заданную поверхность {X[i,j], Y[i,j],
+     Z[i,j]}. Строка SCH задает цветовую схему. Предыдущая цветовая
+     схема используется по умолчанию. Если SCH содержит `#', то на
+     поверхности рисуется сетка. Младшие размерности массивов X, Y, Z
+     должны быть одинаковы `x.nx=z.nx && y.nx=z.ny' или `x.nx=y.nx=z.nx
+     && x.ny=y.ny=z.ny'. Массивы X и Y могут быть векторами (не
+     матрицами как Z). График строится для каждого z среза данных. См.
+     также *note Mesh::, *note Dens::, *note Belt::, *note Tile::,
+     *note Boxs::, *note SurfC::, *note SurfA::. См. раздел *note Surf
+     sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf (`const mglData
+          &'z, `const char *'sch=`""')
+ -- Функция С: `void' mgl_surf (`HMGL' gr, `const HMDT' z, `const char
+          *'sch)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Boxs,  Next: Tile,  Prev: Surf,  Up: 2D plotting
+
+3.10.5 Boxs
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Boxs (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""')
+ -- Функция С: `void' mgl_boxs_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch)
+     Рисует вертикальные ящики для параметрически заданной поверхности
+     {X[i,j], Y[i,j], Z[i,j]}. Строка SCH задает цветовую схему.
+     Предыдущая цветовая схема используется по умолчанию. Младшие
+     размерности массивов X, Y, Z должны быть одинаковы `x.nx=z.nx &&
+     y.nx=z.ny' или `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Массивы X и Y
+     могут быть векторами (не матрицами как Z). График строится для
+     каждого z среза данных. См. также *note Surf::, *note Dens::,
+     *note Tile::, *note Step::. См. раздел *note Boxs sample::, для
+     примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Boxs (`const mglData
+          &'z, `const char *'sch=`""')
+ -- Функция С: `void' mgl_boxs (`HMGL' gr, `const HMDT' z, `const char
+          *'sch)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Tile,  Next: Dens,  Prev: Boxs,  Up: 2D plotting
+
+3.10.6 Tile
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Tile (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""')
+ -- Функция С: `void' mgl_tile_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch)
+     Рисует плитки для параметрически заданной поверхности {X[i,j],
+     Y[i,j], Z[i,j]}. График может использоваться как 3d обобщение
+     Step() (*note Step::). Строка SCH задает цветовую схему.
+     Предыдущая цветовая схема используется по умолчанию. Младшие
+     размерности массивов X, Y, Z должны быть одинаковы `x.nx=z.nx &&
+     y.nx=z.ny' или `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Массивы X и Y
+     могут быть векторами (не матрицами как Z). График строится для
+     каждого z среза данных. См. также *note Surf::, *note Boxs::,
+     *note Step::, *note TileS::. См. раздел *note Tile sample::, для
+     примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Tile (`const mglData
+          &'z, `const char *'sch=`""')
+ -- Функция С: `void' mgl_tile (`HMGL' gr, `const HMDT' z, `const char
+          *'sch)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Dens,  Next: Cont,  Prev: Tile,  Up: 2D plotting
+
+3.10.7 Dens
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Dens (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_dens_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `float' zVal)
+     Рисует график плотности для параметрически заданной поверхности
+     {X[i,j], Y[i,j], Z[i,j]} при Z = ZVAL. Строка SCH задает цветовую
+     схему. Предыдущая цветовая схема используется по умолчанию. Если
+     SCH содержит `#', то рисуется сетка. Младшие размерности массивов
+     X, Y, Z должны быть одинаковы `x.nx=z.nx && y.nx=z.ny' или
+     `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Массивы X и Y могут быть
+     векторами (не матрицами как Z). График строится для каждого z
+     среза данных. См. также *note Surf::, *note Cont::, *note ContF::,
+     *note Boxs::, *note Tile::, *note DensXYZ::. См. раздел *note Dens
+     sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Dens (`const mglData
+          &'z, `const char *'sch=`""', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_dens (`HMGL' gr, `const HMDT' z, `const char
+          *'sch, `float' zVal)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Cont,  Next: ContF,  Prev: Dens,  Up: 2D plotting
+
+3.10.8 Cont
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Cont (`const mglData
+          &'v, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const char *'sch=`""', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_cont_xy_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const char
+          *'sch, `float' zVal)
+     Рисует линии уровня для параметрически заданной поверхности
+     {X[i,j], Y[i,j], Z[i,j]} при Z = ZVAL (или при Z=V[k] если
+     `zVal==NAN'). Линии уровня рисуются для Z[i,j]=V[k]. Строка SCH
+     задает цветовую схему. Предыдущая цветовая схема используется по
+     умолчанию. Если SCH содержит `#', то рисуется сетка. Если SCH
+     содержит `t' или `T', то значения V[k] будут выведены вдоль
+     контуров над (или под) кривой. Младшие размерности массивов X, Y,
+     Z должны быть одинаковы `x.nx=z.nx && y.nx=z.ny' или
+     `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Массивы X и Y могут быть
+     векторами (не матрицами как Z). График строится для каждого z
+     среза данных. См. также *note Dens::, *note ContF::, *note
+     ContD::, *note Axial::, *note ContXYZ::. См. раздел *note Cont
+     sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Cont (`const mglData
+          &'v, `const mglData &'z, `const char *'sch=`""', `float'
+          zVal=`NAN')
+ -- Функция С: `void' mgl_cont__val (`HMGL' gr, `const HMDT' v, `const
+          HMDT' z, `const char *'sch, `float' zVal)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Cont (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `int' num=`7', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_cont_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `int' num,
+          `float' zVal)
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале [CMIN, CMAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Cont (`const mglData
+          &'z, `const char *'sch=`""', `int' num=`7', `float'
+          zVal=`NAN')
+ -- Функция С: `void' mgl_cont (`HMGL' gr, `const HMDT' z, `const char
+          *'sch, `int' num, `float' zVal)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: ContF,  Next: ContD,  Prev: Cont,  Up: 2D plotting
+
+3.10.9 ContF
+------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContF (`const mglData
+          &'v, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const char *'sch=`""', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_contf_xy_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const char
+          *'sch, `float' zVal)
+     Рисует закрашенные линии (контуры) уровня для параметрически
+     заданной поверхности {X[i,j], Y[i,j], Z[i,j]} при Z = ZVAL (или
+     при Z=V[k] если `zVal==NAN'). Линии уровня рисуются для
+     Z[i,j]=V[k]. Строка SCH задает цветовую схему. Предыдущая цветовая
+     схема используется по умолчанию. Если SCH содержит `#', то
+     рисуется сетка. Младшие размерности массивов X, Y, Z должны быть
+     одинаковы `x.nx=z.nx && y.nx=z.ny' или `x.nx=y.nx=z.nx &&
+     x.ny=y.ny=z.ny'. Массивы X и Y могут быть векторами (не матрицами
+     как Z). График строится для каждого z среза данных. См. также
+     *note Dens::, *note Cont::, *note Axial::, *note ContFXYZ::. См.
+     раздел *note ContF sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContF (`const mglData
+          &'v, `const mglData &'z, `const char *'sch=`""', `float'
+          zVal=`NAN')
+ -- Функция С: `void' mgl_contf_val (`HMGL' gr, `const HMDT' v, `const
+          HMDT' z, `const char *'sch, `float' zVal)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContF (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `int' num=`7', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_contf_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `int' num,
+          `float' zVal)
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале [CMIN, CMAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContF (`const mglData
+          &'z, `const char *'sch=`""', `int' num=`7', `float'
+          zVal=`NAN')
+ -- Функция С: `void' mgl_contf (`HMGL' gr, `const HMDT' z, `const char
+          *'sch, `int' num, `float' zVal)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: ContD,  Next: Axial,  Prev: ContF,  Up: 2D plotting
+
+3.10.10 ContD
+-------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContD (`const mglData
+          &'v, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const char *'sch=`""', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_contd_xy_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const char
+          *'sch, `float' zVal)
+     Рисует закрашенные линии (контуры) уровня для параметрически
+     заданной поверхности {X[i,j], Y[i,j], Z[i,j]} при Z = ZVAL (или
+     при Z=V[k] если `zVal==NAN') цветами заданными явно. Линии уровня
+     рисуются для Z[i,j]=V[k] (должно быть `v.nx>2'). Строка SCH задает
+     цвет контуров: цвет k-го контура определяется символом
+     `sch[k%strlen(sch)]'. Младшие размерности массивов X, Y, Z должны
+     быть одинаковы `x.nx=z.nx && y.nx=z.ny' или `x.nx=y.nx=z.nx &&
+     x.ny=y.ny=z.ny'. Массивы X и Y могут быть векторами (не матрицами
+     как Z). График строится для каждого z среза данных. См. также
+     *note Dens::, *note Cont::, *note ContF::. См. раздел *note ContD
+     sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContD (`const mglData
+          &'v, `const mglData &'z, `const char *'sch=`""', `float'
+          zVal=`NAN')
+ -- Функция С: `void' mgl_contd_val (`HMGL' gr, `const HMDT' v, `const
+          HMDT' z, `const char *'sch, `float' zVal)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContD (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `int' num=`7', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_contd_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `int' num,
+          `float' zVal)
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале [CMIN, CMAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContD (`const mglData
+          &'z, `const char *'sch=`""', `int' num=`7', `float'
+          zVal=`NAN')
+ -- Функция С: `void' mgl_contd (`HMGL' gr, `const HMDT' z, `const char
+          *'sch, `int' num, `float' zVal)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Axial,  Next: Grad,  Prev: ContD,  Up: 2D plotting
+
+3.10.11 Axial
+-------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Axial (`const mglData
+          &'v, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const char *'sch=`""')
+ -- Функция С: `void' mgl_axial_xy_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const char
+          *'sch)
+     Рисует поверхность вращения линии уровня для параметрически
+     заданной поверхности {X[i,j], Y[i,j], Z[i,j]}. Линии уровня
+     рисуются для Z[i,j]=V[k]. Строка SCH задает цветовую схему.
+     Предыдущая цветовая схема используется по умолчанию. Если SCH
+     содержит `#', то рисуется сетчатая поверхность. Если строка
+     содержит символы `x', `y' или `z', то ось вращения (*note Other
+     settings::) устанавливается в указанное направление. Младшие
+     размерности массивов X, Y, Z должны быть одинаковы `x.nx=z.nx &&
+     y.nx=z.ny' или `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Массивы X и Y
+     могут быть векторами (не матрицами как Z). График строится для
+     каждого z среза данных. См. также *note Cont::, *note ContF::,
+     *note Torus::, *note Surf3::. См. раздел *note Axial sample::, для
+     примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Axial (`const mglData
+          &'v, `const mglData &'z, `const char *'sch=`""')
+ -- Функция С: `void' mgl_axial_val (`HMGL' gr, `const HMDT' v, `const
+          HMDT' z, `const char *'sch)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Axial (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `int' num=`3')
+ -- Функция С: `void' mgl_axial_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `int' num)
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале [CMIN, CMAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Axial (`const mglData
+          &'z, `const char *'sch=`""', `int' num=`3')
+ -- Функция С: `void' mgl_axial (`HMGL' gr, `const HMDT' z, `const char
+          *'sch, `int' num)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Grad,  Next: Grid,  Prev: Axial,  Up: 2D plotting
+
+3.10.12 Grad
+------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Grad (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'phi, `const char *'sch=`""', `int' num=`5')
+ -- Функция С: `void' mgl_grad_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `int' num,
+          `float' zVal)
+     Рисует линии градиента скалярного поля PHI[i,j,k] заданного
+     параметрически {X[i,j,k], Y[i,j,k], Z[i,j,k]}. Строка SCH задает
+     цветовую схему. Предыдущая цветовая схема используется по
+     умолчанию. Число линий пропорционально NUM. Линии рисуются только
+     с границ интервала при NUM<0. Младшие размерности массивов X, Y,
+     Z, PHI должны быть одинаковы `x.nx=phi.nx && y.nx=phi.ny &&
+     z.nx=phi.nz' или `x.nx=y.nx=z.nx=phi.nx && x.ny=y.ny=z.ny=phi.ny
+     && x.nz=y.nz=z.nz=phi.nz'. Массивы X, Y и Z могут быть векторами
+     (не матрицами как PHI). См. также *note Dens3::, *note Cont3::,
+     *note Flow::.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Grad (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `int' num=`5', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_grad_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `int' num,
+          `float' zVal)
+     Рисует линии градиента скалярного поля PHI[i,j] заданного
+     параметрически {X[i,j], Y[i,j]} при Z = ZVAL. Строка SCH задает
+     цветовую схему. Предыдущая цветовая схема используется по
+     умолчанию. Число линий пропорционально NUM. Линии рисуются только
+     с границ интервала при NUM<0. Младшие размерности массивов X, Y,
+     PHI должны быть одинаковы `x.nx=phi.nx && y.nx=phi.ny' или
+     `x.nx=y.nx=phi.nx && x.ny=y.ny=phi.ny'. Массивы X и Y могут быть
+     векторами (не матрицами как PHI). График строится для каждого z
+     среза данных. См. также *note Dens::, *note Cont::, *note ContF::,
+     *note Flow::. См. раздел *note Grad sample::, для примеров кода и
+     графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Grad (`const mglData
+          &'z, `const char *'sch=`""', `int' num=`5', `float'
+          zVal=`NAN')
+ -- Функция С: `void' mgl_grad (`HMGL' gr, `const HMDT' z, `const char
+          *'sch, `int' num, `float' zVal)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Grid,  Prev: Grad,  Up: 2D plotting
+
+3.10.13 Grid
+------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Grid (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_grid_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `float' zVal)
+     Рисует плоскую сету для параметрически заданной поверхности
+     {X[i,j], Y[i,j], Z[i,j]} при Z = ZVAL. Строка SCH задает цветовую
+     схему. Предыдущая цветовая схема используется по умолчанию.
+     Младшие размерности массивов X, Y, Z должны быть одинаковы
+     `x.nx=z.nx && y.nx=z.ny' или `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'.
+     Массивы X и Y могут быть векторами (не матрицами как Z). График
+     строится для каждого z среза данных. См. также *note Dens::, *note
+     Cont::, *note ContF::.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Grid (`const mglData
+          &'z, `const char *'sch=`""', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_grid (`HMGL' gr, `const HMDT' z, `const char
+          *'sch, `float' zVal)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: 3D plotting,  Next: Dual plotting,  Prev: 2D plotting,  Up: MathGL core
+
+3.11 3D графики
+======================
+
+Эти функции строят графики для трехмерных (3D) массивов. Трехмерными
+считаются массивы, зависящие от трех параметров (индексов) подобно
+матрице f(x_i,y_j,z_k), i=1...n, j=1...m, k=1...l. Есть 5 основных
+типов 3D графиков: поверхность постоянного уровня (Surf3), график
+плотности на срезе (Dens3), линии уровня на срезе (Cont3), закрашенные
+контуры уровня на срезе (ContF3) и график объемной прозрачности типа
+облака (Cloud). В функциях Cont3(), ContF3() и Surf3() значения уровней
+можно задавать автоматически и вручную. Можно также нарисовать на срезе
+сетку (Grid3) по массиву данных для улучшения вида графика плотности
+или линий уровня. Каждый тип графика имеет похожий интерфейс. Есть
+версия для рисования одного массива с автоматическими координатами и
+версия для параметрически заданного массива. Параметры цветовой схемы
+задаются строкой *Note Color scheme::. См. раздел *note 3D plot
+sample::, для примеров кода и графика.
+
+* Menu:
+
+* Surf3::
+* Dens3::
+* Cont3::
+* ContF3::
+* Grid3::
+* Cloud::
+* Beam::
+
+
+File: mathgl_ru.info,  Node: Surf3,  Next: Dens3,  Up: 3D plotting
+
+3.11.1 Surf3
+------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf3 (`float' val,
+          `const mglData &'x, `const mglData &'y, `const mglData &'z,
+          `const mglData &'a, `const char *'stl=`""')
+ -- Функция С: `void' mgl_surf3_xyz_val (`HMGL' gr, `float' val, `const
+          HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT' a,
+          `const char *'stl)
+     Рисует поверхность уровня для 3d массива, заданного параметрически
+     A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) при A(x,y,z)=VAL. Строка
+     SCH задает цветовую схему. Предыдущая цветовая схема используется
+     по умолчанию. Если SCH содержит `#', то рисуется сетчатая
+     поверхность. Массивы X, Y, Z могут быть векторами (не 3d массивами
+     как A). Замечу, что возможно некорректная отрисовка граней
+     вследствие неопределенности построения сечения если поверхность
+     пересекает ячейку данных 2 и более раз. См. также *note Cloud::,
+     *note Dens3::, *note Surf3C::, *note Surf3A::, *note Axial::. См.
+     раздел *note Surf3 sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf3 (`float' val,
+          `const mglData &'a, `const char *'sch=`""')
+ -- Функция С: `void' mgl_surf3_val (`HMGL' gr, `float' val, `const
+          HMDT' a, `const char *'sch)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf3 (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const char *'stl=`""', `int' num=`3')
+ -- Функция С: `void' mgl_surf3_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `const char *'stl,
+          `int' num)
+     Рисует NUM поверхностей уровня равномерно распределенных в
+     интервале [CMIN, CMAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf3 (`const mglData
+          &'a, `const char *'sch=`""', `int' num=`3')
+ -- Функция С: `void' mgl_surf3 (`HMGL' gr, `const HMDT' a, `const char
+          *'sch, `int' num)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+
+File: mathgl_ru.info,  Node: Dens3,  Next: Cont3,  Prev: Surf3,  Up: 3D plotting
+
+3.11.2 Dens3
+------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Dens3 (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `char' dir, `int' sVal=`-1', `const char *'stl=`""')
+ -- Функция С: `void' mgl_dens3_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `char' dir, `int'
+          sVal, `const char *'stl)
+     Рисует график плотности для 3d массива, заданного параметрически
+     A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]). График рисуется на срезе
+     SVAL в направлении DIR={`x', `y', `z'}. Строка SCH задает цветовую
+     схему. Предыдущая цветовая схема используется по умолчанию. Если
+     STL содержит `#', то на срезе рисуется сетка. Младшие размерности
+     массивов X, Y, Z должны быть одинаковы. Массивы X, Y, Z могут быть
+     векторами (не 3d массивами как A). См. также *note Cont3::, *note
+     ContF3::, *note Dens::, *note Grid3::. См. раздел *note Dens3
+     sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Dens3 (`const mglData
+          &'a, `char' dir, `int' sVal=`-1', `const char *'sch=`""')
+ -- Функция С: `void' mgl_dens3 (`HMGL' gr, `const HMDT' a, `char' dir,
+          `int' sVal, `const char *'sch)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' DensA (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const char *'stl=`""')
+ -- Функция С: `void' mgl_dens3_all_xyz (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' a, `const char
+          *'stl)
+     Рисует графики плотности на всех центральных срезах 3d данных,
+     заданных параметрически.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' DensA (`const mglData
+          &'a, `const char *'sch=`""')
+ -- Функция С: `void' mgl_dens3_all (`HMGL' gr, `const HMDT' a, `const
+          char *'sch)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+
+File: mathgl_ru.info,  Node: Cont3,  Next: ContF3,  Prev: Dens3,  Up: 3D plotting
+
+3.11.3 Cont3
+------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Cont3 (`const mglData
+          &'v, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const mglData &'a, `char' dir, `int' sVal=`-1', `const
+          char *'stl=`""')
+ -- Функция С: `void' mgl_cont3_xyz_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          a, `char' dir, `int' sVal, `const char *'stl)
+     Рисует линии уровня для 3d массива, заданного параметрически
+     A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]). Линии рисуются для
+     значений из массива V на срезе SVAL в направлении DIR={`x', `y',
+     `z'}. Строка STL задает цветовую схему. Предыдущая цветовая схема
+     используется по умолчанию. Если STL содержит `#', то на срезе
+     рисуется сетка. Если SCH содержит `t' или `T', то значения V[k]
+     будут выведены вдоль контуров над (или под) кривой. Младшие
+     размерности массивов X, Y, Z должны быть одинаковы. Массивы X, Y,
+     Z могут быть векторами (не 3d массивами как A). См. также *note
+     Dens3::, *note ContF3::, *note Cont::, *note Grid3::. См. раздел
+     *note Cont3 sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Cont3 (`const mglData
+          &'v, `const mglData &'a, `char' dir, `int' sVal=`-1', `const
+          char *'sch=`""')
+ -- Функция С: `void' mgl_cont3_val (`HMGL' gr, `const HMDT' v, `const
+          HMDT' a, `char' dir, `int' sVal, `const char *'sch)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Cont3 (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `char' dir, `int' sVal=`-1', `const char *'stl=`""',
+          `int' num=`7')
+ -- Функция С: `void' mgl_cont3_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `char' dir, `int'
+          sVal, `const char *'stl, `int' num)
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале [CMIN, CMAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Cont3 (`const mglData
+          &'a, `char' dir, `int' sVal=`-1', `const char *'sch=`""',
+          `int' num=`7')
+ -- Функция С: `void' mgl_cont3 (`HMGL' gr, `const HMDT' a, `char' dir,
+          `int' sVal, `const char *'sch, `int' num)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContA (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const char *'stl=`""', `int' num=`7')
+ -- Функция С: `void' mgl_cont3_all_xyz (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' a, `const char
+          *'stl, `int' num)
+     Рисует линии уровня на всех центральных срезах 3d данных, заданных
+     параметрически.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContA (`const mglData
+          &'a, `const char *'sch=`""', `int' num=`7')
+ -- Функция С: `void' mgl_cont3_all (`HMGL' gr, `const HMDT' a, `const
+          char *'sch, `int' num)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+
+File: mathgl_ru.info,  Node: ContF3,  Next: Grid3,  Prev: Cont3,  Up: 3D plotting
+
+3.11.4 ContF3
+-------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContF3 (`const
+          mglData &'v, `const mglData &'x, `const mglData &'y, `const
+          mglData &'z, `const mglData &'a, `char' dir, `int' sVal=`-1',
+          `const char *'stl=`""')
+ -- Функция С: `void' mgl_contf3_xyz_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          a, `char' dir, `int' sVal, `const char *'stl)
+     Рисует закрашенные линии (контуры) уровня для 3d массива,
+     заданного параметрически A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]).
+     Линии рисуются для значений из массива V на срезе SVAL в
+     направлении DIR={`x', `y', `z'}. Строка SCH задает цветовую схему.
+     Предыдущая цветовая схема используется по умолчанию. Если STL
+     содержит `#', то на срезе рисуется сетка. Младшие размерности
+     массивов X, Y, Z должны быть одинаковы. Массивы X, Y, Z могут быть
+     векторами (не 3d массивами как A). См. также *note Dens3::, *note
+     Cont3::, *note ContF::, *note Grid3::. См. раздел *note ContF3
+     sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContF3 (`const
+          mglData &'v, `const mglData &'a, `char' dir, `int' sVal=`-1',
+          `const char *'sch=`""')
+ -- Функция С: `void' mgl_contf3_val (`HMGL' gr, `const HMDT' v, `const
+          HMDT' a, `char' dir, `int' sVal, `const char *'sch)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContF3 (`const
+          mglData &'x, `const mglData &'y, `const mglData &'z, `const
+          mglData &'a, `char' dir, `int' sVal=`-1', `const char
+          *'stl=`""', `int' num=`7')
+ -- Функция С: `void' mgl_contf3_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `char' dir, `int'
+          sVal, `const char *'stl, `int' num)
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале [CMIN, CMAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContF3 (`const
+          mglData &'a, `char' dir, `int' sVal=`-1', `const char
+          *'sch=`""', `int' num=`7')
+ -- Функция С: `void' mgl_contf3 (`HMGL' gr, `const HMDT' a, `char'
+          dir, `int' sVal, `const char *'sch, `int' num)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContFA (`const
+          mglData &'x, `const mglData &'y, `const mglData &'z, `const
+          mglData &'a, `const char *'stl=`""', `int' num=`7')
+ -- Функция С: `void' mgl_contf3_all_xyz (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' a, `const char
+          *'stl, `int' num)
+     Рисует закрашенные линии (контуры) уровня на всех центральных
+     срезах 3d данных, заданных параметрически.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContFA (`const
+          mglData &'a, `const char *'sch=`""', `int' num=`7')
+ -- Функция С: `void' mgl_contf3_all (`HMGL' gr, `const HMDT' a, `const
+          char *'sch, `int' num)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+
+File: mathgl_ru.info,  Node: Grid3,  Next: Cloud,  Prev: ContF3,  Up: 3D plotting
+
+3.11.5 Grid3
+------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Grid3 (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `char' dir, `int' sVal=`-1', `const char *'stl=`""')
+ -- Функция С: `void' mgl_grid3_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `char' dir, `int'
+          sVal, `const char *'stl)
+     Рисует сетку для 3d массива, заданного параметрически
+     A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]). График рисуется на срезе
+     SVAL в направлении DIR={`x', `y', `z'}. Строка SCH задает цветовую
+     схему. Предыдущая цветовая схема используется по умолчанию.
+     Младшие размерности массивов X, Y, Z должны быть одинаковы.
+     Массивы X, Y, Z могут быть векторами (не 3d массивами как A). См.
+     также *note Cont3::, *note ContF3::, *note Dens3::, *note Grid::.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Grid3 (`const mglData
+          &'a, `char' dir, `int' sVal=`-1', `const char *'sch=`""')
+ -- Функция С: `void' mgl_grid3 (`HMGL' gr, `const HMDT' a, `char' dir,
+          `int' sVal, `const char *'sch)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' GridA (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const char *'stl=`""')
+ -- Функция С: `void' mgl_grid3_all_xyz (`HMGL' gr, `const HMDT' x,
+          `const HMDT' y, `const HMDT' z, `const HMDT' a, `const char
+          *'stl)
+     Рисует сетку на всех центральных срезах 3d данных, заданных
+     параметрически.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' GridA (`const mglData
+          &'a, `const char *'sch=`""')
+ -- Функция С: `void' mgl_grid3_all (`HMGL' gr, `const HMDT' a, `const
+          char *'sch)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+
+File: mathgl_ru.info,  Node: Cloud,  Next: Beam,  Prev: Grid3,  Up: 3D plotting
+
+3.11.6 Cloud
+------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Cloud (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const char *'stl=`""', `float' alpha=`1')
+ -- Функция С: `void' mgl_cloud_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `const char *'stl,
+          `float' alpha=`1')
+     Рисует облачный график для 3d массива, заданного параметрически
+     A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]). График состоит из кубиков
+     с цветом и прозрачностью пропорциональной значениям A. Результат
+     похож на облако - малые значения прозрачны, а большие нет. Число
+     кубиков зависит от SetMeshNum() (*note Other settings::). Строка
+     SCH задает цветовую схему. Предыдущая цветовая схема используется
+     по умолчанию. Параметр ALPHA меняет общую прозрачность графика.
+     Младшие размерности массивов X, Y, Z должны быть одинаковы.
+     Массивы X, Y, Z могут быть векторами (не 3d массивами как A). См.
+     также *note Surf3::. См. раздел *note Cloud sample::, для примеров
+     кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Cloud (`const mglData
+          &'a, `const char *'stl=`""', `float' alpha=`1')
+ -- Функция С: `void' mgl_cloud (`HMGL' gr, `const HMDT' a, `const char
+          *'stl, `float' alpha=`1')
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+ -- Метод класса `mglGraph' (C++): `void' CloudP (`const mglData &'x,
+          `const mglData &'y, `const mglData &'z, `const mglData &'a,
+          `const char *'stl=`""', `float' alpha=`1')
+ -- Функция С: `void' mgl_cloudp_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `const char *'stl,
+          `float' alpha=`1')
+     Как первый, но используются полупрозрачные точки вместо кубиков.
+     См. раздел *note CloudP sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++): `void' CloudP (`const mglData &'a,
+          `const char *'stl=`""', `float' alpha=`1')
+ -- Функция С: `void' mgl_cloudp (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' alpha=`1')
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+
+File: mathgl_ru.info,  Node: Beam,  Prev: Cloud,  Up: 3D plotting
+
+3.11.7 Beam
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Beam (`float' val,
+          `const mglData &'tr, `const mglData &'g1, `const mglData
+          &'g2, `const mglData &'a, `float' r, `const char *'stl=`""',
+          `int' flag=`0')
+ -- Функция С: `void' mgl_beam_val (`HMGL' gr, `float' val, `const
+          HMDT' tr, `const HMDT' g1, `const HMDT' g2, `const HMDT' a,
+          `float' r, `const char *'stl, `int' flag)
+     Рисует поверхность уровня для 3d массива A при постоянном значении
+     A=VAL. Это специальный тип графика для A заданного в
+     сопровождающей системе координат вдоль кривой TR с ортами G1, G2 и
+     с поперечным размером R. Переменная FLAG - битовый флаг: `0x1' -
+     рисовать в сопровождающих (не лабораторных) координатах; `0x2' -
+     рисовать проекцию на плоскость \rho-z; `0x4' - рисовать
+     нормированное в каждом сечении поле. Размеры массивов по 1-му
+     индексу TR, G1, G2 должны быть nx>2. Размеры массивов по 2-му
+     индексу TR, G1, G2 и размер по 3-му индексу массива A должны быть
+     одинаковы. См. также *note Surf3::.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Beam (`const mglData
+          &'tr, `const mglData &'g1, `const mglData &'g2, `const
+          mglData &'a, `float' r, `const char *'stl=`""', `int'
+          flag=`0', `int' num=`3')
+ -- Функция С: `void' mgl_beam (`HMGL' gr, `const HMDT' tr, `const
+          HMDT' g1, `const HMDT' g2, `const HMDT' a, `float' r, `const
+          char *'stl, `int' flag=`0', `int' num=`3')
+     Рисует NUM равномерно распределенных в интервале [CMIN, CMAX]
+     поверхностей уровня 3d массива в сопровождающей системе координат.
+
+
+File: mathgl_ru.info,  Node: Dual plotting,  Next: Vector fields,  Prev: 3D plotting,  Up: MathGL core
+
+3.12 Парные графики
+================================
+
+Эти функции строят графики для двух связанных массивов. Есть несколько
+основных типов 3D графиков: поверхность и поверхность уровня с окраской
+по второму массиву (SurfC, Surf3C), поверхность и поверхность уровня с
+прозрачностью по второму массиву (SurfA, Surf3A), плитки переменного
+размера (TileS), диаграмма точечного отображения (Map), STFA диаграмма
+(STFA). В функциях Surf3A() и Surf3C() значения уровней можно задавать
+автоматически и вручную. Каждый тип графика имеет похожий интерфейс.
+Есть версия для рисования одного массива с автоматическими координатами
+и версия для параметрически заданного массива. Параметры цветовой схемы
+задаются строкой *Note Color scheme::.
+
+* Menu:
+
+* SurfC::
+* Surf3C::
+* SurfA::
+* Surf3A::
+* TileS::
+* Map::
+* STFA::
+
+
+File: mathgl_ru.info,  Node: SurfC,  Next: Surf3C,  Up: Dual plotting
+
+3.12.1 SurfC
+------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SurfC (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'c, `const char *'sch=`""')
+ -- Функция С: `void' mgl_surfc_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' c, `const char *'sch)
+     Рисует параметрически заданную поверхность {X[i,j], Y[i,j],
+     Z[i,j]} с цветом, заданным массивом C[i,j]. Строка SCH задает
+     цветовую схему. Предыдущая цветовая схема используется по
+     умолчанию. Если SCH содержит `#', то на поверхности рисуется
+     сетка. Все размеры массивов Z и C должны быть одинаковы. Младшие
+     размерности массивов X, Y, Z должны быть одинаковы `x.nx=z.nx &&
+     y.nx=z.ny' или `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Массивы X и Y
+     могут быть векторами (не матрицами как Z). График строится для
+     каждого z среза данных. См. также *note Surf::, *note SurfA::,
+     *note Surf3C::. См. раздел *note SurfC sample::, для примеров кода
+     и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SurfC (`const mglData
+          &'z, `const mglData &'c, `const char *'sch=`""')
+ -- Функция С: `void' mgl_surfc (`HMGL' gr, `const HMDT' z, `const
+          HMDT' c, `const char *'sch)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Surf3C,  Next: SurfA,  Prev: SurfC,  Up: Dual plotting
+
+3.12.2 Surf3C
+-------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf3C (`float' val,
+          `const mglData &'x, `const mglData &'y, `const mglData &'z,
+          `const mglData &'a, `const mglData &'c, `const char
+          *'stl=`""')
+ -- Функция С: `void' mgl_surf3c_xyz_val (`HMGL' gr, `float' val,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          a, `const HMDT' c, `const char *'stl)
+     Рисует поверхность уровня для 3d массива, заданного параметрически
+     A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) при A(x,y,z)=VAL.
+     Аналогично Surf3(), но цвет задается массивом C. Строка SCH задает
+     цветовую схему. Предыдущая цветовая схема используется по
+     умолчанию. Если SCH содержит `#', то рисуется сетчатая
+     поверхность. Все размеры массивов Z и C должны быть одинаковы.
+     Массивы X, Y, Z могут быть векторами (не 3d массивами как A).
+     Замечу, что возможно некорректная отрисовка граней вследствие
+     неопределенности построения сечения если поверхность пересекает
+     ячейку данных 2 и более раз. См. также *note Surf3::, *note
+     SurfC::, *note Surf3A::. См. раздел *note Surf3C sample::, для
+     примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf3C (`float' val,
+          `const mglData &'a, `const mglData &'c, `const char
+          *'sch=`""')
+ -- Функция С: `void' mgl_surf3c_val (`HMGL' gr, `float' val, `const
+          HMDT' a, `const HMDT' c, `const char *'sch)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf3C (`const
+          mglData &'x, `const mglData &'y, `const mglData &'z, `const
+          mglData &'a, `const mglData &'c, `const char *'stl=`""',
+          `int' num=`3')
+ -- Функция С: `void' mgl_surf3c_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `const HMDT' c,
+          `const char *'stl, `int' num)
+     Рисует NUM поверхностей уровня равномерно распределенных в
+     интервале [CMIN, CMAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf3C (`const
+          mglData &'a, `const mglData &'c, `const char *'sch=`""',
+          `int' num=`3')
+ -- Функция С: `void' mgl_surf3c (`HMGL' gr, `const HMDT' a, `const
+          HMDT' c, `const char *'sch, `int' num)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+
+File: mathgl_ru.info,  Node: SurfA,  Next: Surf3A,  Prev: Surf3C,  Up: Dual plotting
+
+3.12.3 SurfA
+------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SurfA (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'c, `const char *'sch=`""')
+ -- Функция С: `void' mgl_surfa_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' c, `const char *'sch)
+     Рисует параметрически заданную поверхность {X[i,j], Y[i,j],
+     Z[i,j]} с прозрачностью, заданным массивом C[i,j]. Строка SCH
+     задает цветовую схему. Предыдущая цветовая схема используется по
+     умолчанию. Если SCH содержит `#', то на поверхности рисуется
+     сетка. Все размеры массивов Z и C должны быть одинаковы. Младшие
+     размерности массивов X, Y, Z должны быть одинаковы `x.nx=z.nx &&
+     y.nx=z.ny' или `x.nx=y.nx=z.nx && x.ny=y.ny=z.ny'. Массивы X и Y
+     могут быть векторами (не матрицами как Z). График строится для
+     каждого z среза данных. См. также *note Surf::, *note SurfC::,
+     *note Surf3A::, *note TileS::. См. раздел *note SurfA sample::,
+     для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SurfA (`const mglData
+          &'z, `const mglData &'c, `const char *'sch=`""')
+ -- Функция С: `void' mgl_surfa (`HMGL' gr, `const HMDT' z, `const
+          HMDT' c, `const char *'sch)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Surf3A,  Next: TileS,  Prev: SurfA,  Up: Dual plotting
+
+3.12.4 Surf3A
+-------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf3A (`float' val,
+          `const mglData &'x, `const mglData &'y, `const mglData &'z,
+          `const mglData &'a, `const mglData &'c, `const char
+          *'stl=`""')
+ -- Функция С: `void' mgl_surf3a_xyz_val (`HMGL' gr, `float' val,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          a, `const HMDT' c, `const char *'stl)
+     Рисует поверхность уровня для 3d массива, заданного параметрически
+     A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) при A(x,y,z)=VAL.
+     Аналогично Surf3(), но прозрачность задается массивом C. Строка
+     SCH задает цветовую схему. Предыдущая цветовая схема используется
+     по умолчанию. Если SCH содержит `#', то рисуется сетчатая
+     поверхность. Все размеры массивов Z и C должны быть одинаковы.
+     Массивы X, Y, Z могут быть векторами (не 3d массивами как A).
+     Замечу, что возможно некорректная отрисовка граней вследствие
+     неопределенности построения сечения если поверхность пересекает
+     ячейку данных 2 и более раз. См. также *note Surf3::, *note
+     SurfA::, *note Surf3C::. См. раздел *note Surf3A sample::, для
+     примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf3A (`float' val,
+          `const mglData &'a, `const mglData &'c, `const char
+          *'sch=`""')
+ -- Функция С: `void' mgl_surf3a_val (`HMGL' gr, `float' val, `const
+          HMDT' a, `const HMDT' c, `const char *'sch)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf3A (`const
+          mglData &'x, `const mglData &'y, `const mglData &'z, `const
+          mglData &'a, `const mglData &'c, `const char *'stl=`""',
+          `int' num=`3')
+ -- Функция С: `void' mgl_surf3a_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `const HMDT' c,
+          `const char *'stl, `int' num)
+     Рисует NUM поверхностей уровня равномерно распределенных в
+     интервале [CMIN, CMAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf3A (`const
+          mglData &'a, `const mglData &'c, `const char *'sch=`""',
+          `int' num=`3')
+ -- Функция С: `void' mgl_surf3a (`HMGL' gr, `const HMDT' a, `const
+          HMDT' c, `const char *'sch, `int' num)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+
+File: mathgl_ru.info,  Node: TileS,  Next: Map,  Prev: Surf3A,  Up: Dual plotting
+
+3.12.5 TileS
+------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' TileS (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'r, `const char *'sch=`""')
+ -- Функция С: `void' mgl_tiles_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' r, `const char *'sch)
+     Рисует плитки для параметрически заданной поверхности {X[i,j],
+     Y[i,j], Z[i,j]}. Аналогично Tile(), но размер плиток задается
+     массивов R. Это создает эффект "прозрачности" при экспорте в файлы
+     EPS. Строка SCH задает цветовую схему. Предыдущая цветовая схема
+     используется по умолчанию. Младшие размерности массивов X, Y, Z
+     должны быть одинаковы `x.nx=z.nx && y.nx=z.ny' или `x.nx=y.nx=z.nx
+     && x.ny=y.ny=z.ny'. Массивы X и Y могут быть векторами (не
+     матрицами как Z). График строится для каждого z среза данных. См.
+     также *note SurfA::, *note Tile::. См. раздел *note TileS
+     sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' TileS (`const mglData
+          &'z, `const mglData &'c, `const char *'sch=`""')
+ -- Функция С: `void' mgl_tiles (`HMGL' gr, `const HMDT' z, `const
+          HMDT' c, `const char *'sch)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Map,  Next: STFA,  Prev: TileS,  Up: Dual plotting
+
+3.12.6 Map
+----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Map (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ax, `const mglData
+          &'ay, `const char *'sch=`""', `int' ks=`0', `bool'
+          pnts=`true')
+ -- Функция С: `void' mgl_map_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ax, `const HMDT' ay, `const char *'sch,
+          `int' ks, `int' pnts)
+     Визуализирует точечное отображение для матриц {AX, AY }
+     параметрически зависящих от координат X, Y. Исходное положение
+     ячейки задает ее цвет. Высота пропорциональна якобиану J(ax,ay).
+     График является аналогом диаграммы Арнольда. Если `pnts=false', то
+     рисуются грани, иначе цветные точки рисуются в узлах матриц
+     (полезно для "запутанного" отображения). Параметр KS задает
+     используемый срез матриц. Строка SCH задает цветовую схему.
+     Предыдущая цветовая схема используется по умолчанию. Все размеры
+     массивов AX и AY должны быть одинаковы. Младшие размерности
+     массивов X, Y, AX должны быть одинаковы. Массивы X и Y могут быть
+     векторами (не матрицами как AX). *Note Color scheme::. См. раздел
+     *note Map sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Map (`const mglData
+          &'ax, `const mglData &'ay, `const char *'sch=`""', `int'
+          ks=`0', `bool' pnts=`true')
+ -- Функция С: `void' mgl_map (`HMGL' gr, `const HMDT' ax, `const HMDT'
+          ay, `const char *'sch, `int' ks, `int' pnts)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: STFA,  Prev: Map,  Up: Dual plotting
+
+3.12.7 STFA
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' STFA (`const mglData
+          &'x, `const mglData &'y, `const mglData &'re, `const mglData
+          &'im, `int' dn, `const char *'sch=`""', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_stfa_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' re, `const HMDT' im, `int' dn, `const
+          char *'sch, `float' zVal)
+     Рисует спектрограмму комплексного массива RE+i*`im' для Фурье
+     размером DN точек в плоскости Z=ZVAL. Параметр DN - любое четное
+     число. Например в 1D случае, результатом будет график плотности от
+     массива res[i,j]=|\sum_d^dn
+     exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn размером {int(nx/dn), dn,
+     ny}. Массивы RE, IM параметрически зависят от координат X, Y.
+     Строка SCH задает цветовую схему. Предыдущая цветовая схема
+     используется по умолчанию. Все размеры массивов RE и IM должны
+     быть одинаковы. Младшие размерности массивов X, Y, RE должны быть
+     одинаковы. Массивы X и Y могут быть векторами (не матрицами как
+     RE).  См. раздел *note STFA sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' STFA (`const mglData
+          &'re, `const mglData &'im, `int' dn, `const char *'sch=`""',
+          `float' zVal=`NAN')
+ -- Функция С: `void' mgl_stfa (`HMGL' gr, `const HMDT' re, `const
+          HMDT' im, `int' dn, `const char *'sch, `float' zVal)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Vector fields,  Next: Other plotting,  Prev: Dual plotting,  Up: MathGL core
+
+3.13 Векторные поля
+================================
+
+Эти функции рисуют графики для 2D и 3D векторных полей. Есть несколько
+типов графиков: просто векторное поле (Vect), вектора вдоль траектории
+(Traj), векторное поле каплями (Dew), нити тока (Flow, FlowP), трубки
+тока (Pipe). Каждый тип графика имеет похожий интерфейс. Есть версия
+для рисования одного массива с автоматическими координатами и версия
+для параметрически заданного массива. Параметры цветовой схемы задаются
+строкой *Note Color scheme::.
+
+* Menu:
+
+* Traj::
+* Vect::
+* Dew::
+* Flow::
+* FlowP::
+* Pipe::
+
+
+File: mathgl_ru.info,  Node: Traj,  Next: Vect,  Up: Vector fields
+
+3.13.1 Traj
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Traj (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""', `float' len=`0')
+ -- Метод класса `mglGraph' (C++, Python): `void' Traj (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ax, `const mglData
+          &'ay, `const char *'sch=`""', `float' zVal=`NAN', `float'
+          len=`0')
+ -- Функция С: `void' mgl_traj_xyz (`HMGL' gr, `const HMDT'x, `const
+          HMDT'y, `const HMDT'z, `const HMDT'ax, `const HMDT'ay, `const
+          HMDT'az, `const char *'sch, `float' len)
+ -- Функция С: `void' mgl_traj_xy (`HMGL' gr, `const HMDT'x, `const
+          HMDT'y, `const HMDT'ax, `const HMDT'ay, `const char *'sch,
+          `float' zVal, `float' len)
+     Рисует вектора {AX, AY, AZ} вдоль кривой {X, Y, Z}. Длина векторов
+     пропорциональна \sqrt{ax^2+ay^2+az^2}. Строка PEN задает цвет
+     (*note Line styles::). По умолчанию (`pen=""') используется
+     текущий цвет из палитры (*note Palette and colors::). Параметр LEN
+     задает фактор длины векторов (если не нуль) или выбирать длину
+     пропорционально расстоянию между точками кривой (если LEN=0).
+     Размер по 1-му индексу должен быть 2 или больше. График рисуется
+     для каждой строки если один из массивов матрица. См. также *note
+     Vect::. См. раздел *note Traj sample::, для примеров кода и
+     графика.
+
+
+File: mathgl_ru.info,  Node: Vect,  Next: Dew,  Prev: Traj,  Up: Vector fields
+
+3.13.2 Vect
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Vect (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ax, `const mglData
+          &'ay, `const char *'sch=`""', `float' zVal=`NAN', `int'
+          flag=`0')
+ -- Функция С: `void' mgl_vect_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ax, `const HMDT' ay, `const char *'sch,
+          `float' zVal, `int' flag)
+     Рисует векторное поле {AX, AY} параметрически зависящее от
+     координат X, Y на плоскости при Z=ZVAL. Длина и цвет векторов
+     пропорциональна \sqrt{ax^2+ay^2}. Число рисуемых векторов зависит
+     от `SetMeshNum()' (*note Other settings::). Цвет задается строкой
+     SCH. Предыдущая цветовая схема используется по умолчанию. Параметр
+     FLAG побитовый флаг для настройки вид векторов: `MGL_VEC_COL' -
+     двуцветный вектор, `MGL_VEC_LEN' - одинаковая длина векторов,
+     `MGL_VEC_DOT' - рисует штрихи вместо стрелок, `MGL_VEC_END' -
+     рисует стрелку в точку сетки, `MGL_VEC_MID' - рисует стрелку с
+     серединой в точке сетки. Все размеры массивов AX и AY должны быть
+     одинаковы. Младшие размерности массивов X, Y и AX должны быть
+     одинаковы. Массивы X и Y могут быть векторами (не матрицами как
+     AX). График строится для каждого z среза AX, AY. См. также *note
+     Flow::, *note Dew::. См. раздел *note Vect sample::, для примеров
+     кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Vect (`const mglData
+          &'ax, `const mglData &'ay, `const char *'sch=`""', `float'
+          zVal=`NAN', `int' flag=`0')
+ -- Функция С: `void' mgl_vect_2d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const char *'sch, `float' zVal, `int' flag)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Vect (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""', `int' flag=`0')
+ -- Функция С: `void' mgl_vect_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' ax, `const HMDT' ay,
+          `const HMDT' az, `const char *'sch, `int' flag)
+     Это 3D версия графика. Здесь массивы AX, AY, AZ должны быть 3d
+     массивами, а длина и цвет пропорциональны \sqrt{ax^2+ay^2+az^2}.
+     См. раздел *note Vect 3D sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Vect (`const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""', `int' flag=`0')
+ -- Функция С: `void' mgl_vect_3d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const HMDT' az, `const char *'sch, `int' flag)
+     Как предыдущий с X, Y, Z равно распределенными в интервале [MIN,
+     MAX].
+
+
+File: mathgl_ru.info,  Node: Dew,  Next: Flow,  Prev: Vect,  Up: Vector fields
+
+3.13.3 Dew
+----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Dew (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ax, `const mglData
+          &'ay, `const char *'sch=`""', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_dew_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ax, `const HMDT' ay, `const char *'sch,
+          `float' zVal)
+     Рисует капли для векторного поля {AX, AY}, параметрически
+     зависящего от координат X, Y при Z=ZVAL. Замечу, что график
+     требует много памяти и процессорного времени для своего создания!
+     Цвет капель пропорционален \sqrt{ax^2+ay^2}. Число капель
+     определяется `SetMeshNum()' (*note Other settings::). Цвет
+     задается строкой SCH. Предыдущая цветовая схема используется по
+     умолчанию. Все размеры массивов AX и AY должны быть одинаковы.
+     Младшие размерности массивов X, Y и AX должны быть одинаковы.
+     Массивы X и Y могут быть векторами (не матрицами как AX). График
+     строится для каждого z среза AX, AY. См. также *note Vect::. См.
+     раздел *note Dew sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Dew (`const mglData
+          &'ax, `const mglData &'ay, `const char *'sch=`""', `float'
+          zVal=`NAN')
+ -- Функция С: `void' mgl_dew (`HMGL' gr, `const HMDT' ax, `const HMDT'
+          ay, `const char *'sch, `float' zVal)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Flow,  Next: FlowP,  Prev: Dew,  Up: Vector fields
+
+3.13.4 Flow
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Flow (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ax, `const mglData
+          &'ay, `const char *'sch=`""', `int' num=`5', `bool'
+          central=`true', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_flow_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ax, `const HMDT' ay, `const char *'sch,
+          `int' num, `int' central, `float' zVal)
+     Рисует нити тока для векторного поля {AX, AY}, параметрически
+     зависящего от координат X, Y на плоскости при z = ZVAL. Число
+     нитей пропорционально NUM. Параметр CENTRAL задает возможность
+     старта нитей изнутри сетки (если true) или только с краев (если
+     false). С версии 1.11 он игнорируется и всегда равен (NUM>0). Цвет
+     нитей пропорционален \sqrt{ax^2+ay^2}. Теплые цвета соответствуют
+     нормальному току (типа стока). Холодные цвета соответствуют
+     обратному току (типа источника). Строка SCH задает цветовую схему.
+     Предыдущая цветовая схема используется по умолчанию. Все размеры
+     массивов AX и AY должны быть одинаковы. Младшие размерности
+     массивов X, Y и AX должны быть одинаковы. Массивы X и Y могут быть
+     векторами (не матрицами как AX). График строится для каждого z
+     среза AX, AY. См. также *note Pipe::, *note Vect::. См. раздел
+     *note Flow sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Flow (`const mglData
+          &'ax, `const mglData &'ay, `const char *'sch=`""', `int'
+          num=`5', `bool' central=`true', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_flow_2d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const char *'sch, `int' num, `int' central,
+          `float' zVal)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Flow (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""', `int' num=`3', `bool' central=`true')
+ -- Функция С: `void' mgl_flow_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' ax, `const HMDT' ay,
+          `const HMDT' az, `const char *'sch, `int' num, `int' central)
+     Это 3D версия графика. Здесь массивы AX, AY, AZ должны быть 3d
+     массивами, а цвет пропорционален \sqrt{ax^2+ay^2+az^2}. См. раздел
+     *note Flow 3D sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Flow (`const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""', `int' num=`3', `bool' central=`true')
+ -- Функция С: `void' mgl_flow_3d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const HMDT' az, `const char *'sch, `int' num,
+          `int' central)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: FlowP,  Next: Pipe,  Prev: Flow,  Up: Vector fields
+
+3.13.5 FlowP
+------------
+
+ -- Метод класса `mglGraph' (C++): `void' FlowP (`mglPoint' p0, `const
+          mglData &'x, `const mglData &'y, `const mglData &'ax, `const
+          mglData &'ay, `const char *'sch=`""')
+ -- Метод класса `mglGraph' (Python): `void' FlowP (`float' x0, `float'
+          y0, `float' z0, `const mglData &'x, `const mglData &'y,
+          `const mglData &'ax, `const mglData &'ay, `const char
+          *'sch=`""')
+ -- Функция С: `void' mgl_flowp_xy (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `const HMDT' x, `const HMDT' y, `const HMDT' ax,
+          `const HMDT' ay, `const char *'sch)
+     Рисует нить тока из точки P0 для векторного поля {AX, AY},
+     параметрически зависящего от координат X, Y на плоскости при z =
+     P0.z. Цвет нити пропорционален \sqrt{ax^2+ay^2}. Теплые цвета
+     соответствуют нормальному току (типа стока). Холодные цвета
+     соответствуют обратному току (типа источника). Строка SCH задает
+     цветовую схему. Предыдущая цветовая схема используется по
+     умолчанию. Все размеры массивов AX и AY должны быть одинаковы.
+     Младшие размерности массивов X, Y и AX должны быть одинаковы.
+     Массивы X и Y могут быть векторами (не матрицами как AX). График
+     строится для каждого z среза AX, AY. См. также *note Pipe::, *note
+     Vect::.
+
+ -- Метод класса `mglGraph' (C++): `void' FlowP (`mglPoint' p0, `const
+          mglData &'ax, `const mglData &'ay, `const char *'sch=`""')
+ -- Метод класса `mglGraph' (Python): `void' FlowP (`float' x0, `float'
+          y0, `float' z0, `const mglData &'ax, `const mglData &'ay,
+          `const char *'sch=`""')
+ -- Функция С: `void' mgl_flowp_2d (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `const HMDT' ax, `const HMDT' ay, `const char
+          *'sch)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+ -- Метод класса `mglGraph' (C++): `void' FlowP (`mglPoint' p0, `const
+          mglData &'x, `const mglData &'y, `const mglData &'z, `const
+          mglData &'ax, `const mglData &'ay, `const mglData &'az,
+          `const char *'sch=`""')
+ -- Метод класса `mglGraph' (Python): `void' FlowP (`float' x0, `float'
+          y0, `float' z0, `const mglData &'x, `const mglData &'y,
+          `const mglData &'z, `const mglData &'ax, `const mglData &'ay,
+          `const mglData &'az, `const char *'sch=`""')
+ -- Функция С: `void' mgl_flowp_xyz (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `const HMDT' x, `const HMDT' y, `const HMDT' z,
+          `const HMDT' ax, `const HMDT' ay, `const HMDT' az, `const
+          char *'sch)
+     Это 3D версия графика. Здесь массивы AX, AY, AZ должны быть 3d
+     массивами, а цвет пропорциональны \sqrt{ax^2+ay^2+az^2}. См.
+     раздел *note Flow 3D sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++): `void' FlowP (`mglPoint' p0, `const
+          mglData &'ax, `const mglData &'ay, `const mglData &'az,
+          `const char *'sch=`""')
+ -- Метод класса `mglGraph' (Python): `void' FlowP (`float' x0, `float'
+          y0, `float' z0, `const mglData &'ax, `const mglData &'ay,
+          `const mglData &'az, `const char *'sch=`""')
+ -- Функция С: `void' mgl_flowp_3d (`HMGL' gr, `float' x0, `float' y0,
+          `float' z0, `const HMDT' ax, `const HMDT' ay, `const HMDT'
+          az, `const char *'sch)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Pipe,  Prev: FlowP,  Up: Vector fields
+
+3.13.6 Pipe
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Pipe (`const mglData
+          &'x, `const mglData &'y, `const mglData &'ax, `const mglData
+          &'ay, `const char *'sch=`""', `float' r0=`0.05', `int'
+          num=`5', `bool' central=`true', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_pipe_xy (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' ax, `const HMDT' ay, `const char *'sch,
+          `float' r0, `int' num, `int' central, `float' zVal)
+     Рисует трубки тока для векторного поля {AX, AY}, параметрически
+     зависящего от координат X, Y на плоскости при z = ZVAL. Число
+     трубок пропорционально NUM. Параметр CENTRAL задает возможность
+     старта трубок изнутри сетки (если true) или только с краев (если
+     false). С версии 1.11 он игнорируется и всегда равен (NUM>0). Цвет
+     и радиус трубок пропорционален \sqrt{ax^2+ay^2}. Теплые цвета
+     соответствуют нормальному току (типа стока). Холодные цвета
+     соответствуют обратному току (типа источника). Строка SCH задает
+     цветовую схему. Предыдущая цветовая схема используется по
+     умолчанию. Параметр R0 задает радиус трубок. При R0<0 радиус
+     трубок обратно пропорционален их амплитуде. Все размеры массивов
+     AX и AY должны быть одинаковы. Младшие размерности массивов X, Y и
+     AX должны быть одинаковы. Массивы X и Y могут быть векторами (не
+     матрицами как AX). График строится для каждого z среза AX, AY. См.
+     также *note Flow::, *note Vect::. См. раздел *note Pipe sample::,
+     для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Pipe (`const mglData
+          &'ax, `const mglData &'ay, `const char *'sch=`""', `float'
+          r0=`0.05', `int' num=`5', `bool' central=`true', `float'
+          zVal=`NAN')
+ -- Функция С: `void' mgl_pipe_2d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const char *'sch, `float' r0, `int' num, `int'
+          central, `float' zVal)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Pipe (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""', `float' r0=`0.05', `int' num=`3', `bool'
+          central=`true')
+ -- Функция С: `void' mgl_pipe_xyz (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' ax, `const HMDT' ay,
+          `const HMDT' az, `const char *'sch, `float' r0, `int' num,
+          `int' central)
+     Это 3D версия графика. Здесь массивы AX, AY, AZ должны быть 3d
+     массивами, а цвет пропорциональны \sqrt{ax^2+ay^2+az^2}. См.
+     раздел *note Pipe 3D sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Pipe (`const mglData
+          &'ax, `const mglData &'ay, `const mglData &'az, `const char
+          *'sch=`""', `float' r0=`0.05', `int' num=`3', `bool'
+          central=`true')
+ -- Функция С: `void' mgl_pipe_3d (`HMGL' gr, `const HMDT' ax, `const
+          HMDT' ay, `const HMDT' az, `const char *'sch, `float' r0,
+          `int' num, `int' central)
+     Как предыдущий с X, Y равно распределенными в интервале [MIN, MAX].
+
+
+File: mathgl_ru.info,  Node: Other plotting,  Next: Nonlinear fitting,  Prev: Vector fields,  Up: MathGL core
+
+3.14 Прочие графики
+================================
+
+Это функции, не относящиеся к какой-то специальной категории. Сюда
+входят функции построения графиков по текстовым формулам (Plots by
+formula), рисования поверхностей из треугольников (TriPlot),
+произвольных точек в пространстве (Dots) и реконструкции по ним
+поверхности (Crust), графики плотности и линии уровня на плоскостях,
+перпендикулярных осям x, y или z (Dens[XYZ], Cont[XYZ], ContF[XYZ]),
+функция "упрощенного" рисования (SimplePlot). Каждый тип графика имеет
+похожий интерфейс. Есть версия для рисования одного массива с
+автоматическими координатами и версия для параметрически заданного
+массива. Параметры цветовой схемы задаются строкой. *Note Color
+scheme::.
+
+* Menu:
+
+* DensXYZ::
+* ContXYZ::
+* ContFXYZ::
+* Dots::
+* Crust::
+* TriPlot::
+* TriCont::
+* QuadPlot::
+* Plots by formula::
+* SimplePlot::
+
+
+File: mathgl_ru.info,  Node: DensXYZ,  Next: ContXYZ,  Up: Other plotting
+
+3.14.1 DensXYZ
+--------------
+
+Эти функции рисуют график плотности на x, y или z плоскостях. Если A -
+3d массив, то выполняется интерполяция к заданному срезу SVAL. Функции
+полезны для создания проекций 3D массивов на оси координат. Например,
+код
+     gr->DensX(c.Sum("x"),"BbcyrR",-1);
+     gr->DensY(c.Sum("y"),0,1);
+     gr->DensZ(c.Sum("z"),0,-1);
+   создают такую картинку. См. также *note ContXYZ::, *note ContFXYZ::,
+*note Dens::, *note Data distributions::. См. раздел *note Dens
+projection sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' DensX (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN')
+ -- Функция С: `void' mgl_dens_x (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal)
+     Рисует график плотности A при x = SVAL.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' DensY (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN')
+ -- Функция С: `void' mgl_dens_y (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal)
+     Рисует график плотности A при y = SVAL.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' DensZ (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN')
+ -- Функция С: `void' mgl_dens_z (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal)
+     Рисует график плотности A при z = SVAL.
+
+
+File: mathgl_ru.info,  Node: ContXYZ,  Next: ContFXYZ,  Prev: DensXYZ,  Up: Other plotting
+
+3.14.2 ContXYZ
+--------------
+
+Эти функции рисуют линии уровня на x, y или z плоскостях. Если A - 3d
+массив, то выполняется интерполяция к заданному срезу SVAL. Функции
+полезны для создания проекций 3D массивов на оси координат. Например,
+код
+     gr->ContX(c.Sum("x"),"BbcyrR",-1);
+     gr->ContY(c.Sum("y"),0,1);
+     gr->ContZ(c.Sum("z"),0,-1);
+   создают такую картинку. См. также *note ContFXYZ::, *note DensXYZ::,
+*note Cont::, *note Data distributions::. См. раздел *note Cont
+projection sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContX (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN', `int'
+          num=`7')
+ -- Функция С: `void' mgl_cont_x (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal, `int' num)
+     Рисует NUM линий уровня для массива A при x = SVAL.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContY (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN', `int'
+          num=`7')
+ -- Функция С: `void' mgl_cont_y (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal, `int' num)
+     Рисует NUM линий уровня для массива A при y = SVAL.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContZ (`const mglData
+          &'a, `const char *'stl=`""', `float' sVal=`NAN', `int'
+          num=`7')
+ -- Функция С: `void' mgl_cont_z (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal, `int' num)
+     Рисует NUM линий уровня для массива A при z = SVAL.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContX (`const mglData
+          &'v, `const mglData &'a, `const char *'stl=`""', `float'
+          sVal=`NAN')
+ -- Функция С: `void' mgl_cont_x_val (`HMGL' gr, `const HMDT' v, `const
+          HMDT' a, `const char *'stl, `float' sVal)
+     Рисует линии уровня для массива  A=V[i] при x = SVAL.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContY (`const mglData
+          &'v, `const mglData &'a, `const char *'stl=`""', `float'
+          sVal=`NAN')
+ -- Функция С: `void' mgl_cont_y_val (`HMGL' gr, `const HMDT' v, `const
+          HMDT' a, `const char *'stl, `float' sVal)
+     Рисует линии уровня для массива  A=V[i] при y = SVAL.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContZ (`const mglData
+          &'v, `const mglData &'a, `const char *'stl=`""', `float'
+          sVal=`NAN')
+ -- Функция С: `void' mgl_cont_z_val (`HMGL' gr, `const HMDT' v, `const
+          HMDT' a, `const char *'stl, `float' sVal)
+     Рисует линии уровня для массива  A=V[i] при z = SVAL.
+
+
+File: mathgl_ru.info,  Node: ContFXYZ,  Next: Dots,  Prev: ContXYZ,  Up: Other plotting
+
+3.14.3 ContFXYZ
+---------------
+
+Эти функции рисуют закрашенные контуры уровня на x, y или z плоскостях.
+Если A - 3d массив, то выполняется интерполяция к заданному срезу SVAL.
+Функции полезны для создания проекций 3D массивов на оси координат. См.
+также *note ContXYZ::, *note DensXYZ::, *note ContF::, *note Data
+distributions::.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContFX (`const
+          mglData &'a, `const char *'stl=`""', `float' sVal=`NAN',
+          `int' num=`7')
+ -- Функция С: `void' mgl_contf_x (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal, `int' num)
+     Рисует NUM закрашенных контуров уровня для массива A при x = SVAL.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContFY (`const
+          mglData &'a, `const char *'stl=`""', `float' sVal=`NAN',
+          `int' num=`7')
+ -- Функция С: `void' mgl_contf_y (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal, `int' num)
+     Рисует NUM закрашенных контуров уровня для массива A при y = SVAL.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContFZ (`const
+          mglData &'a, `const char *'stl=`""', `float' sVal=`NAN',
+          `int' num=`7')
+ -- Функция С: `void' mgl_contf_z (`HMGL' gr, `const HMDT' a, `const
+          char *'stl, `float' sVal, `int' num)
+     Рисует NUM закрашенных контуров уровня для массива A при z = SVAL.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContFX (`const
+          mglData &'v, `const mglData &'a, `const char *'stl=`""',
+          `float' sVal=`NAN')
+ -- Функция С: `void' mgl_contf_x_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' a, `const char *'stl, `float' sVal)
+     Рисует закрашенные конутры уровня для массива A=V[i] при x = SVAL.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContFY (`const
+          mglData &'v, `const mglData &'a, `const char *'stl=`""',
+          `float' sVal=`NAN')
+ -- Функция С: `void' mgl_contf_y_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' a, `const char *'stl, `float' sVal)
+     Рисует закрашенные конутры уровня для массива A=V[i] при y = SVAL.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ContFZ (`const
+          mglData &'v, `const mglData &'a, `const char *'stl=`""',
+          `float' sVal=`NAN')
+ -- Функция С: `void' mgl_contf_z_val (`HMGL' gr, `const HMDT' v,
+          `const HMDT' a, `const char *'stl, `float' sVal)
+     Рисует закрашенные конутры уровня для массива A=V[i] при z = SVAL.
+
+
+File: mathgl_ru.info,  Node: Dots,  Next: Crust,  Prev: ContFXYZ,  Up: Other plotting
+
+3.14.4 Dots
+-----------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Dots (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""')
+ -- Метод класса `mglGraph' (C++, Python): `void' Dots (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const mglData
+          &'a, `const char *'sch=`""')
+ -- Функция С: `void' mgl_dots (`HMGL' gr, `const HMDT' x, `const HMDT'
+          y, `const HMDT' z, `const char *'sch)
+ -- Функция С: `void' mgl_dots_a (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const HMDT' a, `const char *'sch)
+     Рисует произвольно расположенные точки {X[i], Y[i], Z[i]}. Строка
+     SCH задает цветовую схему. Предыдущая цветовая схема используется
+     по умолчанию. Если определен массив A, то он задает прозрачность
+     точек. Массивы X, Y, Z, A должны иметь одинаковые размеры. См.
+     также *note Crust::, *note Mark::, *note Plot::. См. раздел *note
+     Dots sample::, для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++): `void' Dots (`const mglData &'tr,
+          `const char *'sch=`""')
+ -- Функция С: `void' mgl_dots_tr (`HMGL' gr, `const HMDT' tr, `const
+          char *'sch)
+     Как предыдущий с X=TR(0,:), Y=TR(1,:), Z=TR(2,:) и если TR.nx>3,
+     то A=TR(3,:).
+
+
+File: mathgl_ru.info,  Node: Crust,  Next: TriPlot,  Prev: Dots,  Up: Other plotting
+
+3.14.5 Crust
+------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Crust (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z, `const char
+          *'sch=`""', `float' er=`0')
+ -- Функция С: `void' mgl_crust (`HMGL' gr, `const HMDT' x, `const
+          HMDT' y, `const HMDT' z, `const char *'sch, `float' er)
+     Реконструирует и рисует поверхность по произвольно расположенным
+     точкам {X[i], Y[i], Z[i]}. Параметр ER задает радиус ошибки
+     (увеличте для удаления дыр). Строка SCH задает цветовую схему.
+     Предыдущая цветовая схема используется по умолчанию. Если строка
+     содержит `#', то рисуется сетчатая поверхность. Массивы X, Y, Z
+     должны иметь одинаковые размеры. См. также *note Dots::, *note
+     TriPlot::. См. раздел *note Crust sample::, для примеров кода и
+     графика.
+
+ -- Метод класса `mglGraph' (C++): `void' Crust (`const mglData &'tr,
+          `const char *'sch=`""', `float' er=`0')
+ -- Функция С: `void' mgl_crust_tr (`HMGL' gr, `const HMDT' tr, `const
+          char *'sch, `float' er)
+     Как предыдущий с X=TR(0,:), Y=TR(1,:), Z=TR(2,:).
+
+
+File: mathgl_ru.info,  Node: TriPlot,  Next: TriCont,  Prev: Crust,  Up: Other plotting
+
+3.14.6 TriPlot
+--------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' TriPlot (`const
+          mglData &'id, `const mglData &'x, `const mglData &'y, `const
+          mglData &'z, `const mglData &'c, `const char *'sch=`""')
+ -- Метод класса `mglGraph' (C++, Python): `void' TriPlot (`const
+          mglData &'id, `const mglData &'x, `const mglData &'y, `const
+          mglData &'z, `const char *'sch=`""')
+ -- Функция С: `void' mgl_triplot_xyz (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const char
+          *'sch)
+ -- Функция С: `void' mgl_triplot_xyzc (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          c, `const char *'sch)
+     Рисует поверхность из треугольников. Вершины треугольников
+     задаются индексами ID в массиве точек {X[i], Y[i], Z[i]}. Строка
+     SCH задает цветовую схему. Предыдущая цветовая схема используется
+     по умолчанию. Если строка содержит `#', то рисуется сетчатая
+     поверхность. Размер по 1-му индексу массива ID должен быть 3 или
+     больше. Массивы X, Y, Z должны иметь одинаковые размеры. Массив C
+     задает цвет треугольников (если ID.ny=C.nx) или цвет вершин (если
+     X.nx=C.nx). См. также *note Dots::, *note Crust::, *note
+     QuadPlot::, *note TriCont::.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' TriPlot (`const
+          mglData &'id, `const mglData &'x, `const mglData &'y, `const
+          char *'sch=`""', `float' zVal=`NAN')
+ -- Функция С: `void' mgl_triplot_xy (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const char *'sch, `float'
+          zVal)
+     Как предыдущий с Z[i]=ZVAL.
+
+
+File: mathgl_ru.info,  Node: TriCont,  Next: QuadPlot,  Prev: TriPlot,  Up: Other plotting
+
+3.14.7 TriCont
+--------------
+
+ -- Method on `mglGraph' (C++, Python): `void' TriContV (`const mglData
+          &'v, `const mglData &'id, `const mglData &'x, `const mglData
+          &'y, `const mglData &'z, `const mglData &'c, `const char
+          *'sch=`""', `float' zVal=`NAN')
+ -- Method on `mglGraph' (C++, Python): `void' TriContV (`const mglData
+          &'v, `const mglData &'id, `const mglData &'x, `const mglData
+          &'y, `const mglData &'z, `const char *'sch=`""', `float'
+          zVal=`NAN')
+ -- C function: `void' mgl_tricont_xyzcv (`HMGL' gr, `const HMDT' v,
+          `const HMDT' id, `const HMDT' x, `const HMDT' y, `const HMDT'
+          z, `const HMDT' c, `const char *'sch, `float' zVal)
+ -- C function: `void' mgl_tricont_xyzv (`HMGL' gr, `const HMDT' v,
+          `const HMDT' id, `const HMDT' x, `const HMDT' y, `const HMDT'
+          z, `const char *'sch, `float' zVal)
+     Рисует линии уровня поверхности из треугольников при Z = ZVAL (или
+     для Z=V[k] если `zVal==NAN'). Вершины треугольников задаются
+     индексами ID в массиве точек {X[i], Y[i], Z[i]}. Строка SCH задает
+     цветовую схему. Предыдущая цветовая схема используется по
+     умолчанию. Размер по 1-му индексу массива ID должен быть 3 или
+     больше. Массивы X, Y, Z должны иметь одинаковые размеры. Массив C
+     задает цвет треугольников (если ID.ny=C.nx) или цвет вершин (если
+     X.nx=C.nx). См. также *note TriPlot::, *note Cont::.
+
+ -- Method on `mglGraph' (C++, Python): `void' TriCont (`const mglData
+          &'id, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const mglData &'c, `const char *'sch=`""', `num'=`7',
+          `float' zVal=`NAN')
+ -- Method on `mglGraph' (C++, Python): `void' TriCont (`const mglData
+          &'id, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const char *'sch=`""', `num'=`7', `float' zVal=`NAN')
+ -- C function: `void' mgl_tricont_xyzc (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          c, `const char *'sch, `num', `float' zVal)
+ -- C function: `void' mgl_tricont_xyz (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const char
+          *'sch, `num', `float' zVal)
+     Аналогично предыдущему с вектором V из NUM элементов равно
+     распределенных в интервале [CMIN, CMAX].
+
+
+File: mathgl_ru.info,  Node: QuadPlot,  Next: Plots by formula,  Prev: TriCont,  Up: Other plotting
+
+3.14.8 QuadPlot
+---------------
+
+ -- Method on `mglGraph' (C++, Python): `void' QuadPlot (`const mglData
+          &'id, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const mglData &'c, `const char *'sch=`""')
+ -- Method on `mglGraph' (C++, Python): `void' QuadPlot (`const mglData
+          &'id, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const char *'sch=`""')
+ -- C function: `void' mgl_quadplot_xyz (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const char
+          *'sch)
+ -- C function: `void' mgl_quadplot_xyzc (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT'
+          c, `const char *'sch)
+     Рисует поверхность из четырехугольников. Вершины четырехугольников
+     задаются индексами ID в массиве точек {X[i], Y[i], Z[i]}. Строка
+     SCH задает цветовую схему. Предыдущая цветовая схема используется
+     по умолчанию. Если строка содержит `#', то рисуется сетчатая
+     поверхность. Размер по 1-му индексу массива ID должен быть 4 или
+     больше. Массивы X, Y, Z должны иметь одинаковые размеры. Массив C
+     задает цвет четырехугольников (если ID.ny=C.nx) или цвет вершин
+     (если X.nx=C.nx). См. также *note TriPlot::.
+
+ -- Method on `mglGraph' (C++, Python): `void' QuadPlot (`const mglData
+          &'id, `const mglData &'x, `const mglData &'y, `const char
+          *'sch=`""', `float' zVal=`NAN')
+ -- C function: `void' mgl_quadplot_xy (`HMGL' gr, `const HMDT' id,
+          `const HMDT' x, `const HMDT' y, `const char *'sch, `float'
+          zVal)
+     Как предыдущий с Z[i]=ZVAL.
+
+
+File: mathgl_ru.info,  Node: Plots by formula,  Next: SimplePlot,  Prev: QuadPlot,  Up: Other plotting
+
+3.14.9 Графики функций
+------------------------------------
+
+Эти функции строят графики 1D или 2D функций, заданный текстовыми
+формулами. Вам не нужно создавать массивы для их построения. Параметр
+STL задаект стиль линии (*note Line styles::) для `Plot()' или цветовую
+схему (*note Color scheme::) для `Surf()'. Параметр N задает
+минимальное число точек по координате(ам) для графика. В настоящее
+время (v. 1.10) число точек автоматически увеличивается для области
+резкого изменения функции, но только для 1D графиков (т.е. для Plot()).
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Plot (`const char
+          *'eqY, `const char *'stl=`""', `float' zVal=`NAN', `int'
+          n=`100')
+ -- Функция С: `void' mgl_fplot (`HMGL' gr, `const char *'eqY, `const
+          char *'stl, `float' zVal, `int' n)
+     Рисует функцию `eqY(x)' в плоскости z=ZVAL с координатой `x' в
+     диапазоне [MIN.x, MAX.x]. См. также *note Plot::.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Plot (`const char
+          *'eqX, `const char *'eqY, `const char *'eqZ, `const char
+          *'stl=`""', `float' zVal=`NAN', `int' n=`100')
+ -- Функция С: `void' mgl_fplot_xyz (`HMGL' gr, `const char *'eqX,
+          `const char *'eqY, `const char *'eqZ, `const char *'stl,
+          `float' zVal, `int' n)
+     Рисует параметрическую кривую {`eqX(t)', `eqY(t)', `eqZ(t)'}, где
+     координата `t' меняется в диапазоне [0, 1]. См. также *note Plot::.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf (`const char
+          *'eqZ, `const char *'stl=`""', `int' n=`100');
+ -- Функция С: `void' mgl_fsurf (`HMGL' gr, `const char *'eqZ, `const
+          char *'stl, `int' n);
+     Рисует поверхность `eqY(x,y)' с координатами `x', `y' в диапазоне
+     [MIN, MAX]. См. также *note Surf::.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' Surf (`const char
+          *'eqX, `const char *'eqY, `const char *'eqZ, `const char
+          *'stl=`""', `int' n=`100')
+ -- Функция С: `void' mgl_fsurf_xyz (`HMGL' gr, `const char *'eqX,
+          `const char *'eqY, `const char *'eqZ, `const char *'stl,
+          `int' n)
+     Рисует параметрическую поверхность {`eqX(u,v)', `eqY(u,v)',
+     `eqZ(u,v)'}, где координаты `u', `v' меняются в диапазоне [0, 1].
+     См. также *note Surf::.
+
+
+File: mathgl_ru.info,  Node: SimplePlot,  Prev: Plots by formula,  Up: Other plotting
+
+3.14.10 SimplePlot
+------------------
+
+ -- Метод класса `mglGraph' (C++, Python): `void' SimplePlot (`const
+          mglData &'a, `int' type=`0', `const char *'stl=`""')
+ -- Функция С: `void' mgl_simple_plot (`HMGL' gr, `const HMDT' a, `int'
+          type, `const char *'stl)
+     Рисует график массива A в зависимости от его размерности и
+     параметра TYPE. Строка STL задает стиль графика. Для 1d массивов:
+     `type=0' - *note Plot::, `type=1' - *note Area::, `type=2' - *note
+     Step::, `type=3' - *note Stem::, `type=4' - *note Bars::. Для 2d
+     массивов: `type=0' - *note Surf::, `type=1' - *note Dens::,
+     `type=2' - *note Mesh::, `type=3' - *note Cont::. Для 3d массивов:
+     `type=0' - *note Surf3::, `type=1' - *note Dens3::, `type=2' -
+     *note Cont3::, `type=2' - *note Cloud::.
+
+
+File: mathgl_ru.info,  Node: Nonlinear fitting,  Next: Data distributions,  Prev: Other plotting,  Up: MathGL core
+
+3.15 Nonlinear fitting
+======================
+
+Эти функции подбирают параметры функции для наилучшей аппроксимации
+данных, т.е. минимизируют сумму \sum_i (f(x_i, y_i, z_i) -
+a_i)^2/s_i^2. При этом аппроксимирующая функция `f' может зависеть от
+одного аргумента `x' (1D случай), от двух аргументов `x,y' (2D случай)
+или от трех аргументов `x,y,z' (3D случай). Функция `f' также может
+зависеть от параметров. Список параметров задается строкой VAR
+(например, `abcd'). Обычно пользователь должен предоставить начальные
+значения параметров в переменной INI. Однако, при его отсутствии
+используются нулевые значения. Параметр PRINT=`true' включает вывод
+найденной формулы в MESSAGE (*note Error handling::).
+
+   Функции Fit() и FitS() не рисуют полученные массивы. Они заполняют
+массив FIT по формуле `f' с найденными коэффициентами и возвращают
+\chi^2 ошибку аппроксимации. При этом, координаты `x,y,z'
+равнораспределены в интервале MIN-MAX. Число точек в FIT выбирается
+максимальным из размера массива FIT и значения переменной FITPNTS.
+Функции используют библиотеку GSL. См. раздел *note Fitting sample::,
+для примеров кода и графика.
+
+ -- Метод класса `mglGraph' (C++, Python): `float' FitS (`mglData
+          &'fit, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const mglData &'a, `const mglData &'s, `const char
+          *'func, `const char *'var, `float *'ini=`NULL', `bool'
+          print=`false')
+ -- Метод класса `mglGraph' (C++, Python): `float' FitS (`mglData
+          &'fit, `const mglData &'x, `const mglData &'y, `const mglData
+          &'z, `const mglData &'a, `const mglData &'s, `const char
+          *'func, `const char *'var, `mglData &'ini, `bool'
+          print=`false')
+ -- Функция С: `float' mgl_fit_xyzas (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT' a,
+          `const HMDT' s, `const char *'func, `const char *'var, `float
+          *'ini)
+ -- Функция С: `float' mgl_fit_xyzas_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT' a,
+          `const HMDT' s, `const char *'func, `const char *'var, `HMDT'
+          ini)
+     "Подгоняют" формулу вдоль x-, y- и z-направлений для 3d массива
+     заданного параметрически A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]).
+
+ -- Метод класса `mglGraph' (C++, Python): `float' FitS (`mglData
+          &'fit, `const mglData &'x, `const mglData &'y, `const mglData
+          &'a, `const mglData &'s, `const char *'func, `const char
+          *'var, `float *'ini=`NULL', `bool' print=`false')
+ -- Метод класса `mglGraph' (C++, Python): `float' FitS (`mglData
+          &'fit, `const mglData &'x, `const mglData &'y, `const mglData
+          &'a, `const mglData &'s, `const char *'func, `const char
+          *'var, `mglData &'ini, `bool' print=`false')
+ -- Функция С: `float' mgl_fit_xyzs (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' a, `const HMDT' s,
+          `const char *'func, `const char *'var, `float *'ini)
+ -- Функция С: `float' mgl_fit_xyzs_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' a, `const HMDT' s,
+          `const char *'func, `const char *'var, `HMDT' ini)
+     "Подгоняют" формулу вдоль x- и y-направлений для 2d массива
+     заданного параметрически A[i,j](X[i,j], Y[i,j]) для каждого среза
+     данных.
+
+ -- Метод класса `mglGraph' (C++, Python): `float' FitS (`mglData
+          &'fit, `const mglData &'x, `const mglData &'a, `const mglData
+          &'s, `const char *'func, `const char *'var, `float
+          *'ini=`NULL', `bool' print=`false')
+ -- Метод класса `mglGraph' (C++, Python): `float' FitS (`mglData
+          &'fit, `const mglData &'x, `const mglData &'a, `const mglData
+          &'s, `const char *'func, `const char *'var, `mglData &'ini,
+          `bool' print=`false')
+ -- Функция С: `float' mgl_fit_xys (`HMGL' gr, `HMDT' fit, `const HMDT'
+          x, `const HMDT' a, `const HMDT' s, `const char *'func, `const
+          char *'var, `float *'ini)
+ -- Функция С: `float' mgl_fit_xys_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' a, `const HMDT' s, `const char *'func,
+          `const char *'var, `HMDT' ini)
+     "Подгоняют" формулу вдоль x-направления для 1d массива заданного
+     параметрически A[i](X[i]) для каждого среза данных.
+
+ -- Метод класса `mglGraph' (C++, Python): `float' FitS (`mglData
+          &'fit, `const mglData &'a, `const mglData &'s, `const char
+          *'func, `const char *'var, `float *'ini=`NULL', `bool'
+          print=`false')
+ -- Метод класса `mglGraph' (C++, Python): `float' FitS (`mglData
+          &'fit, `const mglData &'a, `const mglData &'s, `const char
+          *'func, `const char *'var, `mglData &'ini, `bool'
+          print=`false')
+ -- Функция С: `float' mgl_fit_ys (`HMGL' gr, `HMDT' fit, `const HMDT'
+          a, `const HMDT' s, `const char *'func, `const char *'var,
+          `float *'ini)
+ -- Функция С: `float' mgl_fit_ys_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' a, `const HMDT' s, `const char *'func, `const char
+          *'var, `HMDT' ini)
+     "Подгоняют" формулу вдоль x-направления для 1d массива с X равно
+     распределенным в интервале [MIN.x, MAX.x].
+
+ -- Метод класса `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'x, `const mglData &'y, `const mglData &'z,
+          `const mglData &'a, `const char *'func, `const char *'var,
+          `float *'ini=`NULL', `bool' print=`false')
+ -- Метод класса `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'x, `const mglData &'y, `const mglData &'z,
+          `const mglData &'a, `const char *'func, `const char *'var,
+          `mglData &'ini, `bool' print=`false')
+ -- Функция С: `float' mgl_fit_xyza (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT' a,
+          `const char *'func, `const char *'var, `float *'ini)
+ -- Функция С: `float' mgl_fit_xyza_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' z, `const HMDT' a,
+          `const char *'func, `const char *'var, `HMDT' ini)
+     "Подгоняют" формулу вдоль x-, y- и z-направлений для 3d массива
+     заданного параметрически A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) с
+     S[i,j,k]=1.
+
+ -- Метод класса `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'x, `const mglData &'y, `const mglData &'a,
+          `const char *'func, `const char *'var, `float *'ini=`NULL',
+          `bool' print=`false')
+ -- Метод класса `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'x, `const mglData &'y, `const mglData &'a,
+          `const char *'func, `const char *'var, `mglData &'ini, `bool'
+          print=`false')
+ -- Функция С: `float' mgl_fit_xyz (`HMGL' gr, `HMDT' fit, `const HMDT'
+          x, `const HMDT' y, `const HMDT' a, `const char *'func, `const
+          char *'var, `float *'ini)
+ -- Функция С: `float' mgl_fit_xyz_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' y, `const HMDT' a, `const char *'func,
+          `const char *'var, `HMDT' ini)
+     "Подгоняют" формулу вдоль x- и y-направлений для 2d массива
+     заданного параметрически A[i,j](X[i,j], Y[i,j]) с S[i,j]=1 для
+     каждого среза данных.
+
+ -- Метод класса `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'x, `const mglData &'a, `const char *'func,
+          `const char *'var, `float *'ini=`NULL', `bool' print=`false')
+ -- Метод класса `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'x, `const mglData &'a, `const char *'func,
+          `const char *'var, `mglData &'ini, `bool' print=`false')
+ -- Функция С: `float' mgl_fit_xy (`HMGL' gr, `HMDT' fit, `const HMDT'
+          x, `const HMDT' a, `const char *'func, `const char *'var,
+          `float *'ini)
+ -- Функция С: `float' mgl_fit_xy_d (`HMGL' gr, `HMDT' fit, `const
+          HMDT' x, `const HMDT' a, `const char *'func, `const char
+          *'var, `HMDT' ini)
+     "Подгоняют" формулу вдоль x-направления для 1d массива заданного
+     параметрически A[i](X[i]) с S[i]=1 для каждого среза данных.
+
+ -- Метод класса `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'a, `const char *'func, `const char *'var,
+          `float *'ini=`""', `bool' print=`false')
+ -- Метод класса `mglGraph' (C++, Python): `float' Fit (`mglData &'fit,
+          `const mglData &'a, `const char *'func, `const char *'var,
+          `mglData &'ini, `bool' print=`false')
+ -- Функция С: `float' mgl_fit_1 (`HMGL' gr, `HMDT' fit, `const HMDT'
+          a, `const char *'func, `const char *'var, `float *'ini)
+ -- Функция С: `float' mgl_fit_1_d (`HMGL' gr, `HMDT' fit, `const HMDT'
+          a, `const char *'func, `const char *'var, `HMDT' ini)
+     "Подгоняют" формулу вдоль x-направления для 1d массива A с S=1 и X
+     равно распределенным в интервале [MIN.x, MAX.x].
+
+ -- Метод класса `mglGraph' (C++, Python): `float' Fit2 (`mglData
+          &'fit, `const mglData &'a, `const char *'func, `const char
+          *'var, `float *'ini=`NULL', `bool' print=`false')
+ -- Метод класса `mglGraph' (C++, Python): `float' Fit2 (`mglData
+          &'fit, `const mglData &'a, `const char *'func, `const char
+          *'var, `mglData &'ini, `bool' print=`false')
+ -- Функция С: `float' mgl_fit_2 (`HMGL' gr, `HMDT' fit, `const HMDT'
+          a, `const char *'func, `const char *'var, `float *'ini)
+ -- Функция С: `float' mgl_fit_2_d (`HMGL' gr, `HMDT' fit, `const HMDT'
+          a, `const char *'func, `const char *'var, `HMDT' ini)
+     "Подгоняют" формулу вдоль x- и y-направлений для 2d массива A с
+     S=1 и X, Y равно распределенными в интервале [MIN, MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `float' Fit3 (`mglData
+          &'fit, `const mglData &'a, `const char *'func, `const char
+          *'var, `float *'ini=`NULL', `bool' print=`false')
+ -- Метод класса `mglGraph' (C++, Python): `float' Fit3 (`mglData
+          &'fit, `const mglData &'a, `const char *'func, `const char
+          *'var, `mglData &'ini, `bool' print=`false')
+ -- Функция С: `float' mgl_fit_3 (`HMGL' gr, `HMDT' fit, `const HMDT'
+          a, `const char *'func, `const char *'var, `float *'ini)
+ -- Функция С: `float' mgl_fit_3_d (`HMGL' gr, `HMDT' fit, `const HMDT'
+          a, `const char *'func, `const char *'var, `HMDT' ini)
+     "Подгоняют" формулу вдоль x-, y- и z-направлений для 3d массива A
+     с S=1 и X, Y, Z равно распределенными в интервале [MIN, MAX].
+
+ -- Метод класса `mglGraph' (C++, Python): `void' PutsFit (`mglPoint'
+          p, `const char *'prefix=`""', `const char *'font=`NULL',
+          `float' size=`-1')
+ -- Функция С: `void' mgl_puts_fit (`HMGL' gr, `float' x, `float' y,
+          `float' z, `const char *'prefix, `const char *'font, `float'
+          size=`-1')
+     Печатает последнюю подобранную формулу с найденными коэффициентами
+     в точке P0. Строка PREFIX будет напечатана перед формулой. Все
+     другие параметры такие же как в *note Text printing::.
+
+ -- Метод класса `mglGraph' (C++, Python): `const char *' GetFit ()
+ -- Функция С: `const char *' mgl_get_fit (`HMGL' gr)
+     Возвращает последнюю подобранную формулу с найденными
+     коэффициентами.
+
+ -- Переменная(C++) of mglGraph: `int' FitPnts
+     Минимальное число точек для массива со значениями подобранной
+     формулы.
+
+
+File: mathgl_ru.info,  Node: Data distributions,  Next: Frames/Animation,  Prev: Nonlinear fitting,  Up: MathGL core
+
+3.16 Распределение данных
+============================================
+
+Эти функции создают распределения данных. Они не выполняют построение
+сами по себе. Функции могут быть полезны в случае когда данные
+пользователя определены на случайно расположенных точка (например,
+после PIC расчетов) и он хочет построить график, требующий регулярных
+данных (данных на сетках). Диапазон сеток равен диапазону осей
+координат Min...Max. Массивы X, Y, Z определяют положение (координаты)
+точек. Массив A задает значения данных. Число точек в результате RES -
+максимум из размера RES и значения FITPNTS.
+
+ -- Method on `mglGraph' (C++, Python): `void' Hist (`mglData &'res,
+          `const mglData &'x, `const mglData &'a)
+ -- C function: `int' mgl_hist_x (`HMGL' gr, `HMDT' res, `const HMDT'
+          x, `const HMDT' a)
+     Создет 1D распределение значений массива A в диапазоне [Min, Max].
+
+ -- Method on `mglGraph' (C++, Python): `void' Hist (`mglData &'res,
+          `const mglData &'x, `const mglData &'y, `const mglData &'a)
+ -- C function: `int' mgl_hist_xy (`HMGL' gr, `HMDT' res, `const HMDT'
+          x, `const HMDT' y, `const HMDT' a)
+     Создет 2D распределение значений массива A в диапазоне [Min, Max].
+
+ -- Method on `mglGraph' (C++, Python): `void' Hist (`mglData &'res,
+          `const mglData &'x, `const mglData &'y, `const mglData &'z,
+          `const mglData &'a)
+ -- C function: `int' mgl_hist_xyz (`HMGL' gr, `HMDT' res, `const HMDT'
+          x, `const HMDT' y, `const HMDT' z, `const HMDT' a)
+     Создет 3D распределение значений массива A в диапазоне [Min, Max].
+
+
+File: mathgl_ru.info,  Node: Frames/Animation,  Next: IDTF functions,  Prev: Data distributions,  Up: MathGL core
+
+3.17 Кадры/Анимация
+================================
+
+Эти функции позволяют создавать несколько картинок одновременно. В
+большинстве случаев это бесполезно, но для органов управления (*note
+Widget classes::) это позволяет показывать анимацию. Также можно
+записать несколько кадров в анимированный GIF файл.
+
+ -- Метод класса `mglGraph' (C++, Python): `int' NewFrame ()
+ -- Функция С: `int' mgl_new_frame (`HMGL' gr)
+     Создает новый кадр. Функция возвращает номер текущего кадра. В
+     режиме OpenGL функция не должны вызываться в параллельных потоках!
+     - используйте прямое создание списка. Функция `EndFrame()'
+     *должна* быть вызвана после рисования кадра для каждого вызова
+     этой функции.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' EndFrame ()
+ -- Функция С: `void' mgl_end_frame (`HMGL' gr)
+     Завершает рисование кадра.
+
+ -- Метод класса `mglGraph' (C++, Python): `int' GetNumFrame ()
+ -- Функция С: `int' mgl_get_num_frame (`HMGL' gr)
+     Возвращает число созданных кадров.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' ResetFrames ()
+ -- Функция С: `int' mgl_reset_frames (`HMGL' gr)
+     Сбрасывает счетчик кадров в 0.
+
+ -- Метод класса `mglGraph' (C++, Python): `void' StartGIF (`const char
+          *'fname, `int' ms=`100')
+ -- Функция С: `void' mgl_start_gif (`HMGL' gr, `const char *'fname,
+          `int' ms)
+     Начинает запись кадров в анимированный GIF файл FNAME. Параметр MS
+     задает задержку между кадрами в миллисекундах. Вы *не должны*
+     менять размер рисунка во время создания кино. Используйте
+     CloseGIF() для завершения записи. Эта функция не работает в режиме
+     OpenGL.
+
+ -- Метод класса `mglGraph' (C++, Python): `int' CloseGIF ()
+ -- Функция С: `void' mgl_close_gif (`HMGL' gr)
+     Завершает запись анимированного GIF файла.
+
+
+File: mathgl_ru.info,  Node: IDTF functions,  Prev: Frames/Animation,  Up: MathGL core
+
+3.18 IDTF функции
+========================
+
+Эти функции обеспечивают поддержку особых возможностей при создании
+IDTF. Во всех прочих случаях они не делают ничего.
+
+ -- Метод класса `mglGraph' (C++): `void' VertexColor (`bool' enable)
+     Разрешает плавное изменение цвета.
+
+ -- Метод класса `mglGraph' (C++): `void' Compression (`bool' enable)
+     Дает меньший объем файла, но с худшим качеством.
+
+ -- Метод класса `mglGraph' (C++): `void' StartGroup (const char *name)
+     Начинает определение группы. Группа может содержать объекты и
+     другие группы. Они используются для выбора части модели при
+     приближении, изменении прозрачности и т.д.
+
+ -- Метод класса `mglGraph' (C++): `void' EndGroup ()
+     Завершает определение группы.
+
+
+File: mathgl_ru.info,  Node: Plotter classes,  Next: Widget classes,  Prev: MathGL core,  Up: Top
+
+4 Классы для отрисовки
+****************************************
+
+Класс mglGraph (*note MathGL core::) обеспечивает базовые функции для
+создания научной графики, но это абстрактный класс. Причина в том, что
+существует несколько возможностей вывода/отображения получившегося
+рисунка: в растровый или в векторный файлы, используя OpenGL и т.д. В
+результате, для конечной отрисовки необходимо использовать производные
+классы. В принципе, можно наследовать непосредственно mglGraph (и так
+было до версии 1.6). Однако, я рекомендую использовать в качестве
+базового класс mglGraphAB для большего единообразия получающейся
+графики в различных классах. Класс mglGraphAB - другой абстрактный
+класс, обеспечивающий преобразование координат, базовые функции
+рисования и сохранения в растровое изображение. Он требует
+доопределения функций рисования линий, треугольников и
+четырехугольников. Ниже приведены классы "отрисовки" с короткими
+комментариями.
+
+ -- Класс: mglGraphAB
+     Абстрактный класс, обеспечивающий отрисовку по глубине,
+     преобразование к экранным координатам, сохранение в растровое
+     изображение и т.д. Класс определен в `#include <mgl/mgl_ab.h>'.
+
+ -- Класс: mglGraphZB
+     Реализует растровую отрисовку изображения используя Z-Buffer.
+     Можно использовать для рисования в памяти (или в консоли/SSH
+     терминале). Также этот класс используется как базовый для
+     рисования в окне (например, используя FLTK, Qt, wxWidgets
+     библиотеки и пр.). При экспорте в EPS формат сохраняется растровая
+     картинка. Получающийся рисунок лучшего качества, но рисуется
+     медленнее чем в классе mglGraphPS. Класс определен в `#include
+     <mgl/mgl_zb.h>'.
+
+ -- Класс: mglGraphPS
+     Реализует векторную отрисовку изображения с возможностью
+     сохранения в векторный PostScript или SVG файл. Можно использовать
+     для рисования в памяти (или в консоли/SSH терминале). Замечу, что
+     сглаживание цвета не поддерживается, а при экспорте в EPS не
+     поддерживается и прозрачность (в силу ограничения формата). В
+     результате рисунок получается быстрее, но более низкого качества
+     чем в классе mglGraphZB. Класс определен в `#include
+     <mgl/mgl_eps.h>'.
+
+ -- Класс: mglGraphGL
+     Реализует векторную графику с использованием OpenGL. Класс не
+     может быть использован для рисования в консоли. В силу ограничения
+     OpenGL возможна проблема корректного отображения нескольких
+     перекрывающихся поверхностей. Класс определен в `#include
+     <mgl/mgl_gl.h>'.
+
+ -- Класс: mglGraphIDTF
+     Реализует экспорт графики в IDTF формате, который затем можно
+     преобразовать в формат U3D. Класс определен в `#include
+     <mgl/mgl_idtf.h>'.
+
+* Menu:
+
+* mglGraphAB class::
+
+
+File: mathgl_ru.info,  Node: mglGraphAB class,  Up: Plotter classes
+
+4.1 Класс mglGraphAB
+=========================
+
+Вообще говоря это чуть "менее абстрактный" класс чем mglGraph (*note
+MathGL core::). Он предоставляет много методов для обработки
+промежуточных данных и требует в производных классах определения только
+нескольких методов для отрисовки примитивов. Разработчикам, наследующим
+этот класс, следует посмотреть файл `mgl_ab.h' и комментарии в нем или
+обратиться к автору.
+
+   Ниже я только перечислю основные общедоступные методы класса
+mglGraphAB. В первую очередь это функции, возвращающие созданный
+растровый рисунок, его ширину и высоту. В дальнейшем его можно
+использовать в любой графической библиотеке (см. также, *note Widget
+classes::) или сохранить в файл (см. также, *note Export to file::).
+
+ -- Метод класса `mglGraphAB' (C++): `const unsigned char *' GetBits ()
+ -- Метод класса `mglGraph' (Python): `void' GetRGB (`char *'buf, `int'
+          size)
+ -- Метод класса `mglGraph' (Python): `void' GetBGRN (`char *'buf,
+          `int' size)
+ -- C function: `const unsigned char *' mgl_get_rgb (`HMGL' gr)
+     Возвращает растровое изображение в формате RGB для текущего кадра.
+     Формат каждого элемента (пикселя): {red, green, blue}. Число
+     элементов Width*Height. Положение элемента {i,j} есть [3*i +
+     3*Width*j] (или [4*i + 4*Width*j] для `GetBGRN()'). В Python вы
+     должны предоставить буфер BUF достаточного размера SIZE, т.е. код
+     должен выглядеть следующим образом from mathgl import *
+     gr = mglGraph();
+     bits='\t';
+     bits=bits.expandtabs(4*gr.GetWidth()*gr.GetHeight());
+     gr.GetBGRN(bits, len(bits));
+
+ -- Метод класса `mglGraphAB' (C++): `const unsigned char *' GetRGBA ()
+ -- Метод класса `mglGraph' (Python): `void' GetRGBA (`char *'buf,
+          `int' size)
+ -- C function: `const unsigned char *' mgl_get_rgba (`HMGL' gr)
+     Возвращает растровое изображение в формате RGBA для текущего
+     кадра. Формат каждого элемента (пикселя): {red, green, blue,
+     alpha}. Число элементов Width*Height. Положение элемента {i,j}
+     есть [4*i + 4*Width*j].
+
+ -- Метод класса `mglGraphAB' (C++, Python): `int' GetWidth ()
+ -- Метод класса `mglGraphAB' (C++, Python): `int' GetHeight ()
+ -- C function: `int' mgl_get_width (`HMGL' gr)
+ -- C function: `int' mgl_get_height (`HMGL' gr)
+     Возвращает ширину и высоту изображения.
+
+   Класс mglGraphAB - базовый класс для "оконных классов". Поэтому он
+содержит набор функций для создания и управления окном. Большинство из
+них применимо только в "оконных классах" (типа mglGraphFLTK и др, *note
+Widget classes::). В остальных случаях функции ничего не делают. Если
+вы создаете оконный класс, то Вам следует предоставить такой же
+интерфейс для удобства пользователя.
+
+ -- Method on mglGraphAB: `void' Window (`int' argc, `char **'argv,
+          `int (*'draw)(`mglGraph *'gr, `void *'p), `const char
+          *'title, `void *'par=`NULL', `void (*'reload)(`int' next,
+          `void *'p)=`NULL', `bool' maximize=`false')
+     Создает окно для вывода графика. Параметры ARGC, ARGV содержат
+     информацию операционной системы и их слеудет передать в эту
+     функцию из функции `main(int argc,char **argv)' (хотя они и могут
+     быть равны `NULL'). Параметр DRAW - указатель (имя) функции
+     рисования. Есть возможность создания нескольких кадров вначале
+     (требует больше памяти) и их быстрая анимации в дальнейшем. В этом
+     случае функция DRAW должна возвращать число кадров или ноль для
+     рисования по запросу. Замечу, что DRAW может быть равна `NULL' для
+     отображения статической (текущей) картинки. Параметр TITLE задает
+     заголовок окна. Параметр PAR содержит указатель на данные,
+     передаваемые функции рисования DRAW. Параметр MAXIMIZE=`true'
+     открывает окно раскрытым на весь экран.
+
+     В окне просмотра можно использовать клавиши: 'a', 'd', 'w', 's'
+     для вращения; ',', '.' для просмотра предыдущего и следующего
+     кадров; 'r' для переключения прозрачности; 'f' для переключения
+     оспещенности; 'x' для закрытия окна.
+
+     *ВАЖНО!!!* Вам не следует вызывать функцию Rotate() (*note
+     Transformation matrix::) если Вы хотите вращать график.
+
+ -- Method on mglGraphAB: `void' Window (`int' argc, `char **'argv,
+          `mglDraw *'draw, `const char *'title, `bool' maximize=`false')
+     В основном аналогична предыдущей. Основное отличие в том, что
+     функции рисования и обновления данных определены в классе
+     наследнике класса `mglDraw'. Этот класс определен в `#include
+     <mgl/mgl_define.h>' и имеет только 2 метода: class mglDraw
+     {
+     public:
+         virtual int Draw(mglGraph *) { return 0; };
+         virtual void Reload(int) {};
+     };
+      Вы можете создать класс-наследник `mglDraw' и переопределить один
+     или оба метода для использования с данной функцией.
+
+ -- Метод класса `mglGraphAB' (C++): `void' ToggleAlpha ()
+ -- C function: `int' mgl_wnd_toggle_alpha (`HMGL' gr)
+     Включает/выключает прозрачность, но не перезаписывает настройки
+     пользовательской функции рисования.
+
+ -- Метод класса `mglGraphAB' (C++): `void' ToggleLight ()
+ -- C function: `int' mgl_wnd_toggle_light (`HMGL' gr)
+     Включает/выключает освещение, но не перезаписывает настройки
+     пользовательской функции рисования.  Switch on/off lighting but do
+     not overwrite switches in user drawing function.
+
+ -- Метод класса `mglGraphAB' (C++): `void' ToggleZoom ()
+ -- C function: `int' mgl_wnd_toggle_zoom (`HMGL' gr)
+     Включает/выключает приближение выбранного мышью области рисунка.
+
+ -- Метод класса `mglGraphAB' (C++): `void' ToggleRotate ()
+ -- C function: `int' mgl_wnd_toggle_rotate (`HMGL' gr)
+     Включает/выключает режим вращения мышью. Обычно левая кнопка
+     вращает график, средняя сдвигает, правая приближает и меняет
+     перспективу.
+
+ -- Метод класса `mglGraphAB' (C++): `void' ToggleNo ()
+ -- C function: `int' mgl_wnd_toggle_no (`HMGL' gr)
+     Выключает режим приближения/вращения и восстанавливает вид по
+     умолчанию.  Switch off all zooming and rotation and restore
+     initial state.
+
+ -- Метод класса `mglGraphAB' (C++): `void' Update ()
+ -- C function: `int' mgl_wnd_update (`HMGL' gr)
+     Обновляет содержимое окна.
+
+ -- Метод класса `mglGraphAB' (C++): `void' ReLoad (`bool' o)
+ -- C function: `int' mgl_wnd_reload (`HMGL' gr, `int' val)
+     Перезагружает данные пользователя и обновляет картинку.
+
+ -- Метод класса `mglGraphAB' (C++): `void' Adjust ()
+ -- C function: `int' mgl_wnd_adjust (`HMGL' gr)
+     Подгоняет размер картинки под размер окна (виджета).
+
+ -- Метод класса `mglGraphAB' (C++): `void' NextFrame ()
+ -- C function: `int' mgl_wnd_next_frame (`HMGL' gr)
+     Показывает следующий кадр.
+
+ -- Метод класса `mglGraphAB' (C++): `void' PrevFrame ()
+ -- C function: `int' mgl_wnd_prev_frame (`HMGL' gr)
+     Показывает предыдущий кадр.  Show previous frame if one.
+
+ -- Метод класса `mglGraphAB' (C++): `void' Animation ()
+ -- C function: `int' mgl_wnd_animation (`HMGL' gr)
+     Запускает/останавливает слайд-шоу (анимацию) кадров.
+
+ -- C function: `int' mgl_wnd_set_auto_clf (`HMGL' gr, `int' val)
+
+ -- Widget option of mglGraphAB: `bool' AutoClf
+     Включает/выключает автоматическую очистку рисунка между
+     перерисовкой. Выключение полезно для рисования с накоплением
+     (например, результатов/точек расчета).
+
+ -- C function: `int' mgl_wnd_set_delay (`HMGL' gr, `int' val)
+
+ -- Widget option of mglGraphAB: `float' Delay
+     Задержка анимации в секундах. По умолчанию равно 1 секунде.
+
+ -- Метод класса `mglGraphAB' (C++, Python): `mglPoint' CalcXYZ (`int'
+          xs, `int' ys)
+ -- C function: `void' mgl_calc_xyz (`HMGL' gr, `int' xs, `int' ys,
+          `float *'x, `float *'y, `float *'z)
+     Вычисляет 3D координаты {x,y,z} для экранной точки {xs,ys}. В
+     данный момент игнорируется перспектива графика и формулы перехода
+     в криволинейные координаты. Вычисления производятся для последнего
+     использованного InPlot (*note Transformation matrix::).
+
+ -- Метод класса `mglGraphAB' (C++, Python): `mglPoint' CalcScr
+          (`mglPoint' p)
+ -- Метод класса `mglGraphAB' (C++): `void' CalcScr (`mglPoint' p, `int
+          *'xs, `int *'ys)
+ -- C function: `void' mgl_calc_scr (`HMGL' gr, `float' x, `float' y,
+          `float' z, `int *'xs, `int *'ys)
+     Вычисляет экранные координаты {xs,ys} для 3D координат {x,y,z}.
+     Вычисления производятся для последнего использованного InPlot
+     (*note Transformation matrix::).
+
+ -- C function: `int' mgl_wnd_set_show_mouse_pos (`HMGL' gr, `int' val)
+
+ -- Widget option of mglGraphAB: `float' ShowMousePos
+     Включает/выключает показ координат последнего нажатия кнопки мыши
+     на рисунке.
+
+ -- Widget option of mglGraphAB: `mglPoint' LastMousePos
+     Последнее положение нажатия кнопки мыши.
+
+
+File: mathgl_ru.info,  Node: Widget classes,  Next: mglData class,  Prev: Plotter classes,  Up: Top
+
+5 "Оконные" классы
+*******************************
+
+Есть целый набор "оконных" классов для создания окон с графикой MathGL:
+`mglGraphFLTK', `mglGraphQT', `mglGraphGLUT'. Все эти классы позволяют
+пользователю просмотривать, вращать, экспортировать рисунок.
+Большинство из них (кроме `mglGraphGLUT') являются наследниками класса
+`mglGraphZB' и используют "присоединенный" класс для центрального
+виджета окна. Все оконные классы имеют схожий набор функций (*note
+mglGraphAB class::). Ниже приведен список классов с краткими
+комментариями.
+
+ -- Class: mglGraphFLTK
+     Создает окно используя библиотеку FLTK. Окно имеет панель
+     инструментов и меню  для упрощения действий с графиками.
+     "Присоединенный" класс элемента интерфейса - `Fl_MathGL'. Класс
+     определен в `#include <mgl/mgl_fltk.h>'.
+
+ -- Class: Fl_MathGL
+     Класс реализует элемент интерфейса FLTK для отображения графики
+     MathGL. Класс определен в `#include <mgl/mgl_fltk.h>'.
+
+ [image src="fltk.png" ]
+
+Пример окна FLTK с графикой MathGL.
+
+ -- Class: mglGraphQT
+     Создает окно используя библиотеку Qt. Окно имеет панель
+     инструментов и меню  для упрощения действий с графиками.
+     "Присоединенный" класс элемента интерфейса - `QMathGL'. Класс
+     определен в `#include <mgl/mgl_qt.h>'.
+
+ -- Class: QMathGL
+     Класс реализует элемент интерфейса Qt для отображения графики
+     MathGL. Класс определен в `#include <mgl/mgl_qt.h>'.
+
+ [image src="qt.png" ]
+
+Пример окна Qt с графикой MathGL.
+
+ -- Class: mglGraphGLUT
+     Создает окно используя библиотеку GLUT. Класс определен в
+     `#include <mgl/mgl_glut.h>'.
+
+ [image src="glut.png" ]
+
+Пример окна GLUT с графикой MathGL.
+
+* Menu:
+
+* Fl_MathGL class::
+* QMathGL class::
+
+
+File: mathgl_ru.info,  Node: Fl_MathGL class,  Next: QMathGL class,  Up: Widget classes
+
+5.1 Класс Fl_MathGL
+========================
+
+Класс реализует элемент интерфейса FLTK для отображения графики MathGL
+(определен в `#include <mgl/mgl_fltk.h>').
+
+ -- Method on Fl_MathGL: `void' set_draw (`mglDraw *'dr)
+     Задает функцию рисования из класса производного от `mglDraw'.
+
+ -- Method on Fl_MathGL: `void' update (`mglGraph *'gr=`NULL')
+     Обновляет (перерисовывает) график, используя экземпляр класса GR
+     (по умолчанию встроенный).
+
+ -- Method on Fl_MathGL: `void' set_angle (`float' t, `float' p)
+     Задает углы для дополнительного вращения графика.
+
+ -- Method on Fl_MathGL: `void' set_state (`int' f)
+     Задает битовые флаги для: 1 - прозрачности, 2 - освещения.
+
+ -- Method on Fl_MathGL: `void' set_state (`bool' z, `bool' r)
+     Задает флаги обработки движений мыши: Z=`true' - разрешает
+     приближение выделения, R=`true' разрешает
+     вращение/сдвиг/приближение/перспективу.
+
+ -- Method on Fl_MathGL: `void' set_zoom (`float' X1, `float' Y1,
+          `float' X2, `float' Y2)
+     Задает область приближения.
+
+ -- Method on Fl_MathGL: `void' get_zoom (`float *'X1, `float *'Y1,
+          `float *'X2, `float *'Y2)
+     Возвращает область приближения.
+
+ -- Method on Fl_MathGL: `void' set_popup (`const Fl_Menu_Item *'pmenu,
+          `Fl_Widget *'w, `void *'v)
+     Задает указатель на всплывающее меню.
+
+ -- Method on Fl_MathGL: `mglGraph *' get_graph ()
+     Возвращает указатель на класс, строящий графики.
+
+ -- Widget option of Fl_MathGL: `Fl_Valuator *' tet_val
+     Указатель на внешний элемент управления для изменения угла tet.
+
+ -- Widget option of Fl_MathGL: `Fl_Valuator *' phi_val
+     Указатель на внешний элемент управления для изменения угла phi.
+
+ -- Widget option of Fl_MathGL: `mglGraphAB *' graph
+     Указатель на экземпляр класса для построения графиков.
+
+ -- Widget option of Fl_MathGL: `void *' draw_par
+     Параметр для функции рисования.
+
+ -- Widget option of Fl_MathGL: `int (*' draw_func `)(mglGraph *gr,
+          void *par)'
+     Указатель на функцию рисования.
+
+
+File: mathgl_ru.info,  Node: QMathGL class,  Prev: Fl_MathGL class,  Up: Widget classes
+
+5.2 QMathGL class
+=================
+
+Класс реализует элемент интерфейса Qt для отображения графики MathGL
+(определен в `#include <mgl/mgl_qt.h>').
+
+ -- Method on QMathGL: `void' setDraw (`mglDraw *'dr)
+     Задает функцию рисования из класса производного от `mglDraw'.
+
+ -- Method on QMathGL: `void' setDraw (`int (*'draw)(`mglGraph *'gr,
+          `void *'p), `void *'par=`NULL')
+     Задает функцию рисования DRAW и укзатель PAR на параметр для нее.
+
+ -- Method on QMathGL: `void' setGraph (`mglGraphAB *'gr)
+     Устанавливает указатель на внешний экземпляр класса для рисования
+     (вместо встроенного `mglGraphZB'). Отмечу, что QMathGL
+     автоматически удалит этот объект при удалении элемента интерфейса
+     или при новом вызове `setGraph()'.
+
+ -- Method on QMathGL: `void' setPopup (`QMenu *'p)
+     Задает указатель на всплывающее меню.
+
+ -- Method on QMathGL: `void' setSize (`int' w, `int' h)
+     Задает размеры элемента управления и картинки.
+
+ -- Method on QMathGL: `double' getRatio ()
+     Возвращает соотношение сторон рисунка.
+
+ -- Method on QMathGL: `int' getPer ()
+     Возвращает величину перспективы в процентах.
+
+ -- Method on QMathGL: `int' getPhi ()
+     Возвращает величину угла Phi в градусах.
+
+ -- Method on QMathGL: `int' getTet ()
+     Возвращает величину угла Theta в градусах.
+
+ -- Method on QMathGL: `bool' getAlpha ()
+     Возвращает состояние переключателя прозрачности.
+
+ -- Method on QMathGL: `bool' getLight ()
+     Возвращает состояние переключателя освещения.
+
+ -- Method on QMathGL: `bool' getZoom ()
+     Возвращает состояние переключателя приближения мышью.
+
+ -- Method on QMathGL: `bool' getRotate ()
+     Возвращает состояние переключателя вращения мышью.
+
+ -- Slot on QMathGL: `void' refresh ()
+     Перерисовывает (обновляет) элемент управления без вызова функции
+     рисования.
+
+ -- Slot on QMathGL: `void' update (`mglGraph *'gr=`NULL')
+     Обновляет рисунок путем вызова функции рисования.
+
+ -- Slot on QMathGL: `void' copy ()
+     Копирует график в буфер обмена.
+
+ -- Slot on QMathGL: `void' setPer (`int' val)
+     Задает величину перспективы.
+
+ -- Slot on QMathGL: `void' setPhi (`int' val)
+     Задает величину угла Phi.
+
+ -- Slot on QMathGL: `void' setTet (`int' val)
+     Задает величину угла Theta.
+
+ -- Slot on QMathGL: `void' setAlpha (`bool' val)
+     Включает/выключает прозрачность.
+
+ -- Slot on QMathGL: `void' setLight (`bool' val)
+     Включает/выключает освещение.
+
+ -- Slot on QMathGL: `void' setZoom (`bool' val)
+     Включает/выключает приближение мышью.
+
+ -- Slot on QMathGL: `void' setRotate (`bool' val)
+     Включает/выключает вращение мышью.
+
+ -- Slot on QMathGL: `void' zoomIn ()
+     Приблиажет график.
+
+ -- Slot on QMathGL: `void' zoomOut ()
+     Отдаляет график.
+
+ -- Slot on QMathGL: `void' restore ()
+     Восстанавливает приближение и поворот графика в значения по
+     умолчанию.
+
+ -- Slot on QMathGL: `void' reload ()
+     Обновляет данные и перерисовывает график.
+
+ -- Slot on QMathGL: `void' shiftLeft ()
+     Сдвигает график влево.
+
+ -- Slot on QMathGL: `void' shiftRight ()
+     Сдвигает график вправо.
+
+ -- Slot on QMathGL: `void'shiftUp ()
+     Сдвигает график вверх.
+
+ -- Slot on QMathGL: `void' shiftDown ()
+     Сдвигает график вниз.
+
+ -- Slot on QMathGL: `void' exportPNG (`QString' fname=`""')
+     Сохраняет текущий рисунок в PNG файл.
+
+ -- Slot on QMathGL: `void' exportPNGs (`QString' fname=`""')
+     Сохраняет текущий рисунок в PNG файл без прозрачности.
+
+ -- Slot on QMathGL: `void' exportJPG (`QString' fname=`""')
+     Сохраняет текущий рисунок в JPEG файл.
+
+ -- Slot on QMathGL: `void' exportBPS (`QString' fname=`""')
+     Сохраняет текущий рисунок в растровый EPS файл.  Export current
+     picture to bitmap EPS file.
+
+ -- Slot on QMathGL: `void' exportEPS (`QString' fname=`""')
+     Сохраняет текущий рисунок в векторный EPS файл.
+
+ -- Slot on QMathGL: `void' exportSVG (`QString' fname=`""')
+     Сохраняет текущий рисунок в векторный SVG файл.
+
+ -- Slot on QMathGL: `void' exportIDTF (`QString' fname=`""')
+     Сохраняет текущий рисунок в IDTF файл.
+
+ -- Slot on QMathGL: `void' setMGLFont (`QString' path)
+     Восстанавливает (PATH=`""') или загружает файлы шрифтов.
+
+ -- Slot on QMathGL: `void' print ()
+     Печатает текущий рисунок.
+
+ -- Slot on QMathGL: `void' adjust ()
+     Подгоняет размер картинки под размер окна. Функция выполняется
+     только если graph - экземпляр класса mglGraphQT.
+
+ -- Slot on QMathGL: `void' nextSlide ()
+     Показывает следующий кадр. Функция выполняется только если graph -
+     экземпляр класса mglGraphQT.
+
+ -- Slot on QMathGL: `void' prevSlide ()
+     Показывает предыдущий кадр. Функция выполняется только если graph
+     - экземпляр класса mglGraphQT.
+
+ -- Slot on QMathGL: `void' animation (`bool' st=`true')
+     Запускает анимацию. Функция выполняется только если graph -
+     экземпляр класса mglGraphQT.
+
+ -- Slot on QMathGL: `void' about ()
+     Показывает информацию о программе.
+
+ -- Slot on QMathGL: `void' aboutQt ()
+     Показывает информацию о версии Qt.
+
+ -- Signal on QMathGL: `void' phiChanged (`int' val)
+     Угол Phi изменен.
+
+ -- Signal on QMathGL: `void' tetChanged (`int' val)
+     Угол Tet изменен.
+
+ -- Signal on QMathGL: `void' perChanged (`int' val)
+     Перспектива изменена.
+
+ -- Signal on QMathGL: `void' alphaChanged (`bool' val)
+     Прозрачность изменена.
+
+ -- Signal on QMathGL: `void' lightChanged (`bool' val)
+     Освещение изменено.
+
+ -- Signal on QMathGL: `void' zoomChanged (`bool' val)
+     Режим приближения мышью изменен.
+
+ -- Signal on QMathGL: `void' rotateChanged (`bool' val)
+     Режим вращения мышью изменен.
+
+ -- Widget option of QMathGL: `QString' appName
+     Имя приложения для окон сообщений.
+
+ -- Widget option of QMathGL: `bool' autoResize
+     Разрешить изменять размер рисунка (по умолчанию false).
+
+ -- Widget option of QMathGL: `int' animDelay
+     Задержка анимации в мсек.
+
+
+File: mathgl_ru.info,  Node: mglData class,  Next: Other classes,  Prev: Widget classes,  Up: Top
+
+6 Класс mglData
+********************
+
+Это класс для работы с массивами данных, определенный в `#include
+<mgl/mgl_data.h>'. Он содержит функции для выделения памяти и изменения
+размера данных, чтения данных из файла, численного
+дифференцирования/интегрирования/интерполяции и пр., заполнения по
+текстовой формуле и т.д. Класс позволяет работать с данными размерности
+не более 3 (как функции от трех переменных - x,y,z). По умолчанию
+внутреннее представление данных - float, выбранный в силу меньшего
+размера занимаемой памяти и достаточной для построения графиков
+точности. Базовый тип можно сменить на этапе установки (*note
+Installation and using::) указав опцию `--enable-double'. Однако, в
+дальнейшем в документации будет использован тип `float'.
+
+* Menu:
+
+* Public variables::
+* Create and delete::
+* Fill::
+* Rearrange::
+* File I/O::
+* Make another data::
+* Change data::
+* Interpolation::
+* Informational functions::
+* Operators::
+* Global functions::
+
+
+File: mathgl_ru.info,  Node: Public variables,  Next: Create and delete,  Up: mglData class
+
+6.1 Переменные
+========================
+
+ -- Variable of mglData: `float *' a
+     Указатель на массив данных. Это одномерный массив. Например,
+     матрица [nx x ny x nz] представляется одномерным массивом длиной
+     nx*ny*nz, где элемент с индексами {i, j, k} находится как
+     a[i+nx*j+nx*ny*k] (индексы отсчитываются от нуля).
+
+ -- Variable of mglData: `int' nx
+     Размер массива по 1-ой размерности ('x' размерности).
+
+ -- Variable of mglData: `int' ny
+     Размер массива по 2-ой размерности ('y' размерности).
+
+ -- Variable of mglData: `int' nz
+     Размер массива по 3-ей размерности ('z' размерности).
+
+ -- Variable of mglData: `char *' id
+     Имена колонки (или среза при nz>1) - один символ на колонку.
+
+
+File: mathgl_ru.info,  Node: Create and delete,  Next: Fill,  Prev: Public variables,  Up: mglData class
+
+6.2 Создание и удаление
+========================================
+
+ -- Конструктор on `mglData': `' mglData (`int' mx=`1', `int' my=`1',
+          `int' mz=`1')
+     Конструктор по умолчанию. Выделяет память для массива данных и
+     заполняет ее нулями.
+
+ -- Конструктор on `mglData': `' mglData (`const char *'fname)
+     Читает данные из файла.
+
+ -- Конструктор on `mglData': `' mglData (`const mglData' &dat)
+     Копирует данные из другого экземпляра `mglData'.
+
+ -- Метод класса `mglData' (C++, Python): `void' Create (`int' mx,
+          `int' my=`1', `int' mz=`1')
+ -- Функция С: `void' mgl_data_create (`HMDT' dat, `int' mx, `int' my,
+          `int' mz)
+     Создает/пересоздает массив данных указанного размера и заполняет
+     его нулями. Ничего не делает при MX, MY, MZ отрицательных или
+     равных нулю.
+
+ -- Метод класса `mglData' (C++): `void' Set (`const float *'A, `int'
+          NX, `int' NY=`1', `int' NZ=`1')
+ -- Метод класса `mglData' (C++): `void' Set (`const double *'A, `int'
+          NX, `int' NY=`1', `int' NZ=`1')
+ -- Функция С: `void' mgl_data_set_float (`HMDT' dat, `const float *'A,
+          `int' NX, `int' NY, `int' NZ)
+ -- Функция С: `void' mgl_data_set_double (`HMDT' dat, `const double
+          *'A, `int' NX, `int' NY, `int' NZ)
+     Выделяет память и копирует данные из массивов типа `float*' или
+     `double*', т.е. из массивов определенных как `float a[NX*NY*NZ];'.
+
+ -- Метод класса `mglData' (C++): `void' Set (`const float **'A, `int'
+          N1, `int' N2)
+ -- Метод класса `mglData' (C++): `void' Set (`const double **'A, `int'
+          N1, `int' N2)
+ -- Функция С: `void' mgl_data_set_float2 (`HMDT' dat, `const float
+          **'A, `int' N1, `int' N2)
+ -- Функция С: `void' mgl_data_set_double2 (`HMDT' dat, `const double
+          **'A, `int' N1, `int' N2)
+     Выделяет память и копирует данные из массивов типа `float**' или
+     `double**' с размерностями N1, N2, т.е. из массивов определенных
+     как `float a[N1][N2];'.
+
+ -- Метод класса `mglData' (C++): `void' Set (`const float ***'A, `int'
+          N1, `int' N2)
+ -- Метод класса `mglData' (C++): `void' Set (`const double ***'A,
+          `int' N1, `int' N2)
+ -- Функция С: `void' mgl_data_set_float3 (`HMDT' dat, `const float
+          ***'A, `int' N1, `int' N2)
+ -- Функция С: `void' mgl_data_set_double3 (`HMDT' dat, `const double
+          ***'A, `int' N1, `int' N2)
+     Выделяет память и копирует данные из массивов типа `float***' или
+     `double***' с размерностями N1, N2, N3, т.е. из массивов
+     определенных как `float a[N1][N2][N3];'.
+
+ -- Метод класса `mglData' (C++): `void' Set (`gsl_vector *'v)
+ -- Функция С: `void' mgl_data_set_vector (`HMDT' dat, `gsl_vector *'v)
+     Выделяет память и копирует данные из структуры типа `gsl_vector *'.
+
+ -- Метод класса `mglData' (C++): `void' Set (`gsl_matrix *'m)
+ -- Функция С: `void' mgl_data_set_matrix (`HMDT' dat, `gsl_matrix *'m)
+     Выделяет память и копирует данные из структуры типа `gsl_matrix *'.
+
+ -- Метод класса `mglData' (C++, Python): `inline void' Set (`const
+          mglData &'from)
+ -- Функция С: `void' mgl_data_set (`HMDT' dat, `const HMDT' from)
+     Выделяет память и копирует данные из другого экземпляра FROM.
+
+ -- Метод класса `mglData' (C++): `void' Set (`const std::vector<int>
+          &'d)
+ -- Метод класса `mglData' (C++): `void' Set (`const std::vector<float>
+          &'d)
+ -- Метод класса `mglData' (C++): `void' Set (`const
+          std::vector<double> &'d)
+     Выделяет память и копирует данные из массива типа `std::vector<T>'.
+
+ -- Метод класса `mglData' (C+, Python): `void' Set (`const char *'str,
+          `int' NX, `int' NY=`1', `int' NZ=`1')
+ -- Функция С: `void' mgl_data_set_values (`const char *'str, `int' NX,
+          `int' NY, `int' NZ)
+     Выделяет память и сканирует (scanf) данные из строки.
+
+
+File: mathgl_ru.info,  Node: Fill,  Next: Rearrange,  Prev: Create and delete,  Up: mglData class
+
+6.3 Заполнение данных
+=====================================
+
+ -- Метод класса `mglData' (C++, Python): `void' Fill (`float' x1,
+          `float' x2, `char' dir=`'x'')
+ -- Функция С: `void' mgl_data_fill (`HMDT' dat, `float' x1, `float'
+          x2, `char' dir)
+     Заполняет значениями равно распределенными в диапазоне [X1, X2] в
+     направлении DIR={`x',`y',`z'}.
+
+ -- Метод класса `mglData' (C++, Python): `void' Fill (`const char
+          *'eq, `mglPoint' Min, `mglPoint' Max, `const mglData
+          *'vdat=0, `const mglData *'wdat=0)
+ -- Функция С: `void' mgl_data_fill (`HMGL' gr, `HMDT' dat, `const char
+          *'eq, `const HMDT *'vdat, `const HMDT *'wdat)
+     Заполняет значениями вычисленными по формуле EQ. Формула
+     представляет собой произвольное выражение, зависящее от переменных
+     `x', `y', `z', `u', `v', `w'. Координаты `x', `y', `z' полагаются
+     меняющимися в диапазоне MIN x MAX (в отличие от функции `Modify').
+     Переменная `u' - значения исходного массива, переменные `v', `w' -
+     значения массивов VDAT, WDAT. Последние могут быть `NULL', т.е.
+     опущены.
+
+ -- Метод класса `mglData' (C++, Python): `void' Modify (`const char
+          *'eq, `int' dim=`0')
+ -- Метод класса `mglData' (C++, Python): `void' Modify (`const char
+          *'eq, `const mglData &'v)
+ -- Метод класса `mglData' (C++, Python): `void' Modify (`const char
+          *'eq, `const mglData &'v, `const mglData &'w)
+ -- Функция С: `void' mgl_data_modify (`HMDT' dat, `const char *'eq,
+          `int' dim)
+ -- Функция С: `void' mgl_data_modify_vw (`HMDT' dat, `const char *'eq,
+          `const HMDT' v, `const HMDT' w)
+     Заполняет значениями вычисленными по формуле EQ. Формула
+     представляет собой произвольное выражение, зависящее от переменных
+     `x', `y', `z', `u', `v', `w'. Координаты `x', `y', `z' полагаются
+     меняющимися в диапазоне [0,1] (в отличие от функции `Fill').
+     Переменная `u' - значения исходного массива, переменные `v', `w' -
+     значения массивов VDAT, WDAT. Последние могут быть `NULL', т.е.
+     опущены. Если указан DIM>0, то изменяются только слои >=DIM.
+
+ -- Метод класса `mglData' (C++, Python): `void' Put (`float' val,
+          `int' i=`-1', `int' j=`-1', `int' k=`-1')
+ -- mglData: `void' mgl_data_put_val (`HMDT' a, `float' val, `int' i,
+          `int' j, `int' k)
+     Присваивает значения (под-)массива DAT[I, J, K] = VAL. Индексы I,
+     J, K равные `-1' задают значениия VAL для всего диапазона
+     соответствующего направления(ий). Например, `Put(val,-1,0,-1);'
+     задает a[i,0,j]=VAL для i=0...(nx-1), j=0...(nz-1).
+
+ -- Метод класса `mglData' (C++, Python): `void' Put (`const mglData
+          &'v, `int' i=`-1', `int' j=`-1', `int' k=`-1')
+ -- mglData: `void' mgl_data_put_dat (`HMDT' a, `const HMDT' v, `int'
+          i, `int' j, `int' k)
+     Копирует значения из массива V в диапазон значений данного
+     массива. Индексы I, J, K равные `-1' задают диапазон изменения
+     значений в соответствующих направление(ях). Младшие размерности
+     массива V должны быть больше выбранного диапазона массива.
+     Например, `Put(v,-1,0,-1);' присвоитa[i,0,j]=V.ny>nz ? V.a[i,j] :
+     V.a[i], где i=0...(nx-1), j=0...(nz-1) и условие v.nx>=nx
+     выполнено.
+
+ -- Функция С: `void' mgl_data_set_value (`HMDT' dat, `float' v, `int'
+          i, `int' j, `int' k)
+     Присваивает значение выбранной ячейке массива данных.
+
+ -- Функция С: `float' mgl_data_get_value (`HMDT' dat, `int' i, `int'
+          j, `int' k)
+     Возвращает значение выбранной ячейки массива данных.
+
+ -- Метод класса `mglData' (C+, Python): `void' GetNx ()
+ -- Функция С: `float' mgl_data_get_nx (`HMDT' dat)
+     Возвращает размер по x-направлению.
+
+ -- Метод класса `mglData' (C+, Python): `void' GetNy ()
+ -- Функция С: `float' mgl_data_get_ny (`HMDT' dat)
+     Возвращает размер по y-направлению.
+
+ -- Метод класса `mglData' (C+, Python): `void' GetNz ()
+ -- Функция С: `float' mgl_data_get_nz (`HMDT' dat)
+     Возвращает размер по z-направлению.
+
+
+File: mathgl_ru.info,  Node: Rearrange,  Next: File I/O,  Prev: Fill,  Up: mglData class
+
+6.4 Изменение размеров данных
+====================================================
+
+ -- Метод класса `mglData' (C++, Python): `void' Rearrange (`int' mx,
+          `int' my=`0', `int' mz=`0')
+ -- Функция С: `void' mgl_data_rearrange (`HMDT' dat, `int' mx, `int'
+          my, `int' mz)
+     Изменяет размерность данных без изменения самого массива данных,
+     так что результирующий массив MX*MY*MZ < nx*ny*nz. Если один из
+     параметров MY или MZ ноль, то он будет выбран оптимальным образом.
+     Например, если MY=0, то будет MY=nx*ny*nz/MX и MZ=1.
+
+ -- Метод класса `mglData' (C++, Python): `void' Extend (`int' n1,
+          `int' n2=`0')
+ -- Функция С: `void' mgl_data_extend (`HMDT' dat, `int' n1, `int' n2)
+     Увеличивает размер данных путем вставки (|N1|+1) новых срезов
+     после (для N1>0) или перед (для N1<0) существующими данными. Можно
+     добавить сразу 2 размерности для 1d массива, используя второй
+     параметр N2. Данные в новые срезы будут скопированы из
+     существующих. Например, для N1>0 новый массив будет a_ij^new =
+     a_i^old where j=0...N1. Соответственно, для N1<0 новый массив
+     будет a_ij^new = a_j^old, где i=0...|N1|.
+
+ -- Метод класса `mglData' (C++, Python): `void' Transpose (`const char
+          *'dim=`"yx"')
+ -- Функция С: `void' mgl_data_transpose (`const char *'dim)
+     Транспонирует (меняет порядок размерностей) массив данных. Новый
+     порядок размерностей задается строкой DIM.
+
+ -- Метод класса `mglData' (C++, Python): `void' Squeeze (`int' rx,
+          `int' ry=`1', `int' rz=`1', `bool' smooth=`false')
+ -- Функция С: `void' mgl_data_squeeze (`HMDT' dat, `int' rx, `int' ry,
+          `int' rz, `int' smooth)
+     Уменьшает размер данных путем удаления элементов с индексами не
+     кратными RX, RY, RZ соответственно. Параметр SMOOTH задает
+     использовать сглаживания (т.е. out[i]=\sum_{j=i,i+r} a[j]/r) или
+     нет (т.е. out[i]=a[j*r]).
+
+ -- Метод класса `mglData' (C++, Python): `void' Crop (`int' n1, `int'
+          n2, `char' dir=`'x'')
+ -- Функция С: `void' mgl_data_crop (`HMDT' dat, `int' n1, `int' n2,
+          `char' dir)
+     Обрезает границы данных при I<N1 и I>N2 (при N2>0) или
+     I>`n[xyz]'-N2 (при N2<=0) вдоль направления DIR.
+
+ -- Метод класса `mglData' (C++, Python): `void' InsertRows (`int' at,
+          `int' num=`1', `const char *'eq=`NULL')
+     Вставляет NUM срезов вдоль направления 'y' (строк) с позиции AT и
+     заполняет их по формуле EQ (при EQ!=0) или нулями.
+
+ -- Метод класса `mglData' (C++, Python): `void' InsertColumns (`int'
+          at, `int' num=`1', `const char *'eq=`NULL')
+     Вставляет NUM срезов вдоль направления 'x' (колонок) с позиции AT
+     и заполняет их по формуле EQ (при EQ!=0) или нулями.
+
+ -- Метод класса `mglData' (C++, Python): `void' InsertSlices (`int'
+          at, `int' num=`1', `const char *'eq=`NULL')
+     Вставляет NUM срезов вдоль направления 'z' с позиции AT и
+     заполняет их по формуле EQ (при EQ!=0) или нулями.
+
+ -- Метод класса `mglData' (C++, Python): `void' DeleteRows (`int' at,
+          `int' num=`1')
+     Удаляет NUM срезов вдоль направления 'y' (строк) с позиции AT.
+
+ -- Метод класса `mglData' (C++, Python): `void' DeleteColumns (`int'
+          at, `int' num=`1')
+     Удаляет NUM срезов вдоль направления 'x' (колонок) с позиции AT.
+
+ -- Метод класса `mglData' (C++, Python): `void' DeleteSlices (`int'
+          at, `int' num=`1')
+     Удаляет NUM срезов вдоль направления 'z' с позиции AT.
+
+ -- Метод класса `mglData' (C++, Python): `void' Insert (`char' dir,
+          `int' pos=`0', `int' num=`1')
+ -- Функция С: `void' mgl_data_insert (`HMDT' dat, `char' dir, `int'
+          pos, `char' num)
+     Вставляет NUM срезов вдоль направления DIR с позиции POS и
+     заполняет их нулями.
+
+ -- Метод класса `mglData' (C++, Python): `void' Delete (`char' dir,
+          `int' pos=`0', `int' num=`1')
+ -- Функция С: `void' mgl_data_delete (`HMDT' dat, `char' dir, `int'
+          pos, `char' num)
+     Удаляет NUM срезов вдоль направления DIR с позиции POS.
+
+
+File: mathgl_ru.info,  Node: File I/O,  Next: Make another data,  Prev: Rearrange,  Up: mglData class
+
+6.5 Чтение/сохранение данных
+==================================================
+
+ -- Метод класса `mglData' (C++, Python): `void' Read (`const char
+          *'fname)
+ -- Функция С: `void' mgl_data_read (`HMDT' dat, `const char *'fname)
+     Читает данные из текстового файла с разделителями символом
+     пробела/табуляции с автоматическим определением размера массива.
+     Двойной перевод строки начинает новый срез данных (по направлению
+     z).
+
+ -- Метод класса `mglData' (C++, Python): `void' Read (`const char
+          *'fname, `int' mx, `int' my=`1', `int' mz=`1')
+ -- Функция С: `void' mgl_data_read_dim (`HMDT' dat, `const char
+          *'fname, `int' mx, `int' my, `int' mz)
+     Читает данные из текстового файла с заданными размерами. Ничего не
+     делается если параметры MX, MY или MZ равны нулю или отрицательны.
+
+ -- Метод класса `mglData' (C++, Python): `void' ReadMat (`const char
+          *'fname, `int' dim=`2')
+ -- Функция С: `void' mgl_data_read_mat (`HMDT' dat, `const char
+          *'fname, `int' dim)
+     Читает данные из текстового файла с размерами, указанными в первых
+     DIM числах файла. При этом переменная DIM задает размерность (1d,
+     2d, 3d) данных.
+
+ -- Метод класса `mglData' (C++, Python): `void' ReadRange (`const char
+          *'templ, `float' from, `float' to, `float' step=`1.f', `bool'
+          as_slice=`false')
+     Объединяет данные из нескольких текстовых файлов. Имена файлов
+     определяются вызовом функции `sprintf(fname,templ,val);', где VAL
+     меняется от FROM до TO с шагом STEP. Данные загружаются один за
+     другим в один и тот же срез данных (при AS_SLICE=`false') или
+     срез-за-срезом (при AS_SLICE=`true').
+
+ -- Метод класса `mglData' (C++, Python): `void' ReadAll (`const char
+          *'templ, `bool' as_slice=`false')
+     Объединяет данные из нескольких текстовых файлов, чьи имена
+     удовлетворяют шаблону TEMPL (например, TEMPL=`"t_*.dat"'). Данные
+     загружаются один за другим в один и тот же срез данных (при
+     AS_SLICE=`false') или срез-за-срезом (при AS_SLICE=`true').
+
+ -- Метод класса `mglData' (C++, Python): `void' Save (`const char
+          *'fname, `int' ns=`-1') `const'
+ -- Функция С: `void' mgl_data_save (`const HMDT' dat, `const char
+          *'fname, `int' ns)
+     Сохраняет весь массив данных при NS=`-1' или только NS-ый срез в
+     текстовый файл.
+
+ -- Метод класса `mglData' (C++, Python): `void' ReadHDF (`const char
+          *'fname, `const char *'dname)
+     Читает массив с именем DNAME из HDF5 или HDF4 файла FNAME. Функция
+     ничего не делает если библиотека была собрана с флагами
+     NO_HDF5|NO_HDF4.
+
+ -- Метод класса `mglData' (C++, Python): `void' SaveHDF (`const char
+          *'fname, `const char *'dname, `bool' rewrite=`false') `const'
+     Сохраняет массив под именем DNAME в HDF5 или HDF4 файл FNAME.
+     Функция ничего не делает если библиотека была собрана с флагами
+     NO_HDF5|NO_HDF4.
+
+ -- Метод класса `mglData' (C++, Python): `void' Import (`const char
+          *'fname, `const char *'scheme, `float' v1=`0', float v2=`1')
+ -- Функция С: `void' mgl_data_import (`HMDT' dat, `const char *'fname,
+          `const char *'scheme, `float' v1, float v2)
+     Читает данные из растрового файла. RGB значения пикселов
+     преобразуются в число в диапазоне [V1, V2] используя цветовую
+     схему SCH (*note Color scheme::).
+
+ -- Метод класса `mglData' (C++, Python): `void' Export (`const char
+          *'fname, `const char *'scheme, `float' v1=`0', float v2=`0',
+          `int' ns=`-1') const
+ -- Функция С: `void' mgl_data_export (`HMDT' dat, `const char *'fname,
+          `const char *'scheme, `float' v1, float v2, `int' ns) const
+     Сохраняет данные в растровый файл. Числовые значения,
+     нормированные в диапазон [V1, V2], преобразуются в RGB значения
+     пикселов, используя цветовую схему SCH (*note Color scheme::).
+     Если V1>=V2, то значения V1, V2 определяются автоматически как
+     минимальное и максимальное значение данных.
+
+
+File: mathgl_ru.info,  Node: Make another data,  Next: Change data,  Prev: File I/O,  Up: mglData class
+
+6.6 Создание новых данных
+============================================
+
+ -- Метод класса `mglData' (C++, Python): `mglData' SubData (`int' xx,
+          `int' yy=`-1', `int' zz=`-1') `const'
+ -- Функция С: `HMDT' mgl_data_subdata (`const HMDT' dat, `int' xx,
+          `int' yy, `int' zz)
+     Возвращает в RES подмассив массива данных DAT с фиксированными
+     значениями индексов с положительными значениями. Например,
+     `SubData(-1,2)' выделяет третью строку (индексы начинаются с
+     нуля), `SubData(4,-1)' выделяет 5-ую колонку, `SubData(-1,-1,3)'
+     выделяет 4-ый срез и т.д.
+
+ -- Метод класса `mglData' (C++, Python): `mglData' SubData (`const
+          mglData &'xx, `const mglData &'yy, `const mglData &'zz)
+          `const'
+ -- Функция С: `HMDT' mgl_data_subdata_ext (`const HMDT' dat, `const
+          HMDT' xx, `const HMDT' yy, `const HMDT' zz)
+     Extracts sub-array data from the original data array for indexes
+     specified by arrays XX, YY, ZZ (indirect access). The resulting
+     array have the same dimensions as input arrays for 2D and 3D
+     arguments. This function work like previous one for 1D arguments
+     (or numbers). The dimensions of all argument must be the same if
+     they are 2D or 3D arrays.
+
+ -- Метод класса `mglData' (C++, Python): `mglData' Column (`const char
+          *'eq) `const'
+ -- Функция С: `HMDT' mgl_data_column (`const HMDT' dat, `const char
+          *'eq)
+     Возвращает массив данных заполненный по формуле EQ, вычисленной
+     для именованных колонок (или срезов). Например,
+     `Column("n*w^2/exp(t)");'. Имена колонок задается функцией
+     `SetColumnId()' или при чтении файлов данных.
+
+ -- Метод класса `mglData' (C++, Python): `void' SetColumnId (`const
+          char *'ids)
+ -- Функция С: `void' mgl_data_set_id (`HMDT' dat, `const char *'ids)
+     Устанавливает символьные обозначения для колонок данных. Строка
+     должна содержать символы 'a'...'z' один на колонку (без пробелов).
+
+ -- Метод класса `mglData' (C++, Python): `mglData' Trace () `const'
+     Возвращает массив диагональных элементов a[i,i] (для 2D данных)
+     или a[i,i,i] (для 3D данных) где i=0...nx-1. В 1D случае
+     возвращается сам массив данных. Размеры массива данных должен быть
+     ny,nz >= nx или ny,nz = 1.
+
+ -- Метод класса `mglData' (C++, Python): `mglData' Hist (`int' n,
+          `float' v1=`0', `float' v2=`1', `int' nsub=`0') `const'
+ -- Функция С: `HMDT' mgl_data_hist (`const HMDT' dat, `int' n, `float'
+          v1, `float' v2, `int' nsub)
+     Возвращает распределение (гистограмму) из N точек от значений
+     массива в диапазоне [V1, V2]. Параметр NSUB задает число
+     дополнительных точек интерполяции (для сглаживания получившейся
+     гистограммы).
+
+ -- Метод класса `mglData' (C++, Python): `mglData' Hist (`const
+          mglData &'w, `int' n, `float' v1=`0', `float' v2=`1', `int'
+          nsub=`0') `const'
+ -- Функция С: `HMDT' mgl_data_hist_w (`const HMDT' dat, `const HMDT'
+          w, `int' n, `float' v1, `float' v2, `int' nsub)
+     Возвращает распределение (гистограмму) из N точек от значений
+     массива в диапазоне [V1, V2]. Массив W задает веса элементов.
+     Параметр NSUB задает число дополнительных точек интерполяции (для
+     сглаживания получившейся гистограммы).
+
+ -- Метод класса `mglData' (C++, Python): `mglData' Momentum (`char'
+          dir, `const char *'how) `const'
+ -- Функция С: `HMDT' mgl_data_momentum (`const HMDT' dat, `char' dir,
+          `const char *'how)
+     Возвращает момент (1d массив) данных вдоль направления DIR. Строка
+     HOW определяет тип момента. Момент определяется как res_k =
+     \sum_ij how(x_i,y_j,z_k) a_ij/ \sum_ij a_ij если DIR=`z' и т.д.
+     Координаты `x', `y', `z' - индексы массива в диапазоне [0,1].
+
+ -- Метод класса `mglData' (C++, Python): `mglData' Sum (`const char
+          *'dir) `const'
+ -- Функция С: `HMDT' mgl_data_sum (`const HMDT' dat, `const char *'dir)
+     Возвращает результат суммирования данных вдоль направления(ий) DIR.
+
+ -- Метод класса `mglData' (C++, Python): `mglData' Max (`const char
+          *'dir) `const'
+ -- Функция С: `HMDT' mgl_data_max_dir (`const HMDT' dat, `const char
+          *'dir)
+     Возвращает максимальное значение данных вдоль направления(ий) DIR.
+
+ -- Метод класса `mglData' (C++, Python): `mglData' Min (`const char
+          *'dir) `const'
+ -- Функция С: `HMDT' mgl_data_min_dir (`const HMDT' dat, `const char
+          *'dir)
+     Возвращает минимальное значение данных вдоль направления(ий) DIR.
+
+ -- Метод класса `mglData' (C++, Python): `mglData' Combine (`const
+          mglData &'a) `const'
+ -- Функция С: `HMDT' mgl_data_combine (`const HMDT' dat, `const HMDT'
+          a)
+     Возвращает прямое произведение массивов (наподобие, res[i,j] =
+     adat[i]*bdat[j] и т.д.).
+
+ -- Метод класса `mglData' (C++, Python): `mglData' Evaluate (`const
+          mglData &'idat, `bool' norm=`true') `const'
+ -- Метод класса `mglData' (C++, Python): `mglData' Evaluate (`const
+          mglData &'idat, `const mglData &'jdat, `bool' norm=`true')
+          `const'
+ -- Метод класса `mglData' (C++, Python): `mglData' Evaluate (`const
+          mglData &'idat, `const mglData &'jdat, `const mglData &'kdat,
+          `bool' norm=`true') `const'
+ -- Функция С: `HMDT' mgl_data_evaluate_i (`const HMDT' dat, `const
+          HMDT' idat, `int' norm)
+ -- Функция С: `HMDT' mgl_data_evaluate_ij (`const HMDT' dat, `const
+          HMDT' idat, `const HMDT' jdat, `int' norm)
+ -- Функция С: `HMDT' mgl_data_evaluate_ijk (`const HMDT' dat, `const
+          HMDT' idat, `const HMDT' jdat, `const HMDT' kdat, `int' norm)
+     Возвращает массив данных, полученный в результате интерполяции
+     исходного массива в точках других массивов (например,
+     res[i,j]=dat[idat[i,j],jdat[i,j]]). Размеры массивов IDAT, JDAT,
+     KDAT должны совпадать. Координаты в IDAT, JDAT, KDAT полагаются
+     нормированными в диапазон [0,1] (при NORM=`true') или в диапазоны
+     [0,nx], [0,ny], [0,nz] соответственно.
+
+ -- Метод класса `mglData' (C++, Python): `mglData' Resize (`int' mx,
+          `int' my=`1', `int' mz=`1', `float' x1=`0', `float' x2=`1',
+          `float' y1=`0', `float' y2=`1', `float' z1=`0', `float'
+          z2=`1') `const'
+ -- Функция С: `HMDT' mgl_data_resize (`const HMDT' dat, `int' mx,
+          `int' my, `int' mz)
+ -- Функция С: `HMDT' mgl_data_resize_box (`const HMDT' dat, `int' mx,
+          `int' my, `int' mz, `float' x1, `float' x2, `float' y1,
+          `float' y2, `float' z1, `float' z2)
+     Возвращает массив данных размером MX, MY, MZ со значениями
+     полученными интерполяцией значений из части [X1,X2] x [Y1,Y2] x
+     [Z1,Z2] исходного массива. Величины x,y,z полагаются
+     нормированными в диапазоне [0,1].
+
+
+File: mathgl_ru.info,  Node: Change data,  Next: Interpolation,  Prev: Make another data,  Up: mglData class
+
+6.7 Изменение данных
+===================================
+
+Эти функции изменяют данные вдоль заданного направления(ий) типа
+например дифференцирования, интегрирования и т.д. Направление
+указывается строкой DIR, которая может содержать символы `x', `y' и/или
+`z', вдоль которых изменения будут применены.
+
+ -- Метод класса `mglData' (C++, Python): `void' CumSum (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_cumsum (`HMDT' dat, `const char *'dir)
+     Суммирует с накоплением в выбранном направлении(ях).
+
+ -- Метод класса `mglData' (C++, Python): `void' Integral (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_integral (`HMDT' dat, `const char *'dir)
+     Выполняет интегрирование (подобно суммированию с накоплением) в
+     выбранном направлении(ях).
+
+ -- Метод класса `mglData' (C++, Python): `void' Diff (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_diff (`HMDT' dat, `const char *'dir)
+     Выполняет дифференцирование в выбранном направлении(ях).
+
+ -- Метод класса `mglData' (C++, Python): `void' Diff (`const mglData
+          &'x, `const mglData &'y)
+ -- Метод класса `mglData' (C++, Python): `void' Diff (`const mglData
+          &'x, `const mglData &'y, `const mglData &'z)
+ -- Функция С: `void' mgl_data_diff_par (`HMDT' dat, `const HMDT' x,
+          `const HMDT'y, `const HMDT'z)
+     Выполняет дифференцирование данных, параметрически зависящих от
+     координат, в направлении X с Y, Z=constant. Параметр Z может быть
+     опущен, что соответствует 2D случаю. Используются следующие
+     формулы (2D случай): da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j),
+     где a_i=da/di, a_j=da/dj обозначает дифференцирование вдоль 1-ой и
+     2-ой размерности. Похожие формулы используются и в 3D случае.
+     Порядок аргументов можно менять - например, если данные a(i,j)
+     зависят от координат {x(i,j), y(i,j)}, то обычная производная по
+     `x' будет равна `Diff(x,y);', а обычная производная по `y' будет
+     равна `Diff(y,x);'.
+
+ -- Метод класса `mglData' (C++, Python): `void' Diff2 (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_diff2 (`const char *'dir)
+     Выполняет двойное дифференцирование (как в операторе Лапласа) в
+     выбранном направлении(ях).
+
+ -- Метод класса `mglData' (C++, Python): `void' SinFFT (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_sinfft (`HMDT' dat, `const char *'dir)
+     Выполняет синус преобразование в выбранном направлении(ях). Синус
+     преобразование есть \sum a_i \sin(k i).
+
+ -- Метод класса `mglData' (C++, Python): `void' CosFFT (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_cosfft (`HMDT' dat, `const char *'dir)
+     Выполняет косинус преобразование в выбранном направлении(ях).
+     Синус преобразование есть \sum a_i \cos(k i).
+
+ -- Метод класса `mglData' (C++, Python): `void' Hankel (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_hankel (`HMDT' dat, `const char *'dir)
+     Выполняет преобразование Ханкеля в выбранном направлении(ях).
+     Преобразование Ханкеля есть \sum a_i J_0(k i).
+
+ -- Метод класса `mglData' (C++, Python): `void' Swap (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_swap (`HMDT' dat, `const char *'dir)
+     Меняет местами левую и правую части данных в выбранном
+     направлении(ях). Полезно для отображения результата FFT.
+
+ -- Метод класса `mglData' (C++, Python): `void' Roll (`char' dir,
+          `num')
+ -- Функция С: `void' mgl_data_roll (`HMDT' dat, `char' dir, `num')
+     Сдвигает данные на NUM ячеек в выбранном направлении(ях).
+     Соответствует замене индекса на I->(I+NUM)%N.
+
+ -- Метод класса `mglData' (C++, Python): `void' Mirror (`const char
+          *'dir)
+ -- Функция С: `void' mgl_data_mirror (`HMDT' dat, `const char *'dir)
+     Отражает данные в выбранном направлении(ях). Соответствует замене
+     индекса на I->N-I.
+
+ -- Метод класса `mglData' (C++, Python): `void' Sew (`const char
+          *'dir, `float' da=`2*M_PI')
+ -- Функция С: `void' mgl_data_sew (`HMDT' dat, `const char *'dir,
+          `float' da)
+     Удаляет скачки данных (например, скачки фазы после обратных
+     тригонометрических функций) с периодом DA в выбранном
+     направлении(ях).
+
+ -- Метод класса `mglData' (C++, Python): `void' Smooth (`int' Type,
+          `const char *'dir, `float' delta=`0')
+ -- Функция С: `void' mgl_data_smooth (`HMDT' dat, `int' Type, `float'
+          delt, `const char *'dirs)
+     Сглаживает данные в выбранном направлении(ях) DIR методом TYPE.
+     Сейчас поддерживаются 4 метода: `SMOOTH_NONE=0' ничего не делает
+     при DELTA=0 или сдвигает данные к нулю на шагом DELTA,
+     `SMOOTH_LINE_3=1' линейное усреднение по 3 точкам,
+     `SMOOTH_LINE_5=2' линейное усреднение по 5 точкам,
+     `SMOOTH_QUAD_5=3' квадратичное усреднение по 5 точкам. Параметр
+     DELTA запрещает изменение значений на величину большую DELTA.
+
+ -- Метод класса `mglData' (C++, Python): `void' Smooth (`const char
+          *'dir)
+     Smooths the data on specified direction(s). This is the same as
+     `Smooth()' but argument TYPE is specified in string as `0' for
+     `SMOOTH_NONE', `3' for `SMOOTH_LINE_3', `5' for `SMOOTH_LINE_5'.
+     If string DIR don't contain digits `035' then TYPE=`SMOOTH_QUAD_5'
+     is used.
+
+ -- Метод класса `mglData' (C++, Python): `void' Envelop (`char'
+          dir=`'x'')
+ -- Функция С: `void' mgl_data_envelop (`HMDT' dat, `char' dir)
+     Находит огибающую данных в выбранном направлении DIR.
+
+ -- Метод класса `mglData' (C++, Python): `void' Norm (`float' v1=`0',
+          `float' v2=`1', `bool' sym=`false', `int' dim=`0')
+     Нормирует данные в интервал [V1,V2]. Если SYM=`true', то
+     используется симметричный интервал [-max(|v1|,|v2|),
+     max(|v1|,|v2|)]. Изменения применяются только к срезам >=DIM.
+
+ -- Метод класса `mglData' (C++, Python): `void' NormSl (`float'
+          v1=`0', `float' v2=`1', `char' dir=`'z'', `bool'
+          keep_en=`true', `bool' sym=`false')
+ -- Функция С: `void' mgl_data_norm_slice (`HMDT' dat, `float' v1,
+          `float' v2, `char' dir, `int' keep_en, `int' sym)
+     Нормирует данные срез-за-срезом в выбранном направлении DIR в
+     интервал [V1,V2]. Если SYM=`true', то используется симметричный
+     интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Если KEEP=`true', то
+     максимальное значение k-го среза ограничено величиной \sqrt{\sum
+     a_ij(k)/\sum a_ij(0)}.
+
+
+File: mathgl_ru.info,  Node: Interpolation,  Next: Informational functions,  Prev: Change data,  Up: mglData class
+
+6.8 Интерполяция
+============================
+
+ -- Method on `mglData' (C++, Python): `float' Spline (`float' x,
+          `float' y=`0', `float' z=`0') `const'
+ -- C function: `float' mgl_data_spline (`const HMDT' dat, `float' x,
+          `float' y, `float' z)
+     Интерполирует данные кубическим сплайном в точке X в [0...nx-1], Y
+     в [0...ny-1], Z в [0...nz-1].
+
+ -- Method on `mglData' (C++, Python): `float' Spline1 (`float' x,
+          `float' y=`0', `float' z=`0') `const'
+ -- C function: `float' mgl_data_spline1 (`const HMDT' dat, `float' x,
+          `float' y, `float' z)
+     Интерполирует данные кубическим сплайном в точке X, Y, Z, где
+     координаты полагаются в интервале [0, 1].
+   
+ -- Method on `mglData' (C++, Python): `float' Linear (`float' x,
+          `float' y=`0', `float' z=`0') `const'
+ -- C function: `float' mgl_data_linear (`const HMDT' dat, `float' x,
+          `float' y, `float' z)
+     Интерполирует данные линейной функцией в точке X в [0...nx-1], Y в
+     [0...ny-1], Z в [0...nz-1].
+   
+ -- Method on `mglData' (C++, Python): `float' Linear1 (`float' x,
+          `float' y=`0', `float' z=`0') `const'
+ -- C function: `float' mgl_data_linear1 (`const HMDT' dat, `float' x,
+          `float' y, `float' z)
+     Интерполирует данные линейной функцией в точке X, Y, Z, где
+     координаты полагаются в интервале [0, 1].
+   
+ -- Method on `mglData' (C++, Python): `float' v (`int' i, `int' j=`0',
+          `int' k=`0') `const'
+ -- C function: `float' mgl_data_get_value (`const HMDT' dat, `int' i,
+          `int' j, `int' k)
+     Возвращает значение ячейки с проверкой на границы массива данных.
+   
+ -- Method on `mglData' (C++, Python): `float' Spline5 (`float' x,
+          `float' y, `float' z, `float' &dx, `float' &dy, `float' &dz)
+          `const'
+     Интерполирует данные сплайном 5-го порядка в точке X, Y, Z, где
+     координаты полагаются в интервале [0, 1].
+
+ -- C function: `float *' mgl_data_value (`HMDT' dat, `int' i, `int' j,
+          `int' k)
+     Возвращает указатель на ячейку данных. Может быть не действителен
+     после вызова любой функции изменяющей данные.
+
+ -- C function: `const float *' mgl_data_data (`const HMDT' dat)
+     Возвращает указатель на весь массив данных. Может быть не
+     действителен после вызова любой функции изменяющей данные.
+
+
+File: mathgl_ru.info,  Node: Informational functions,  Next: Operators,  Prev: Interpolation,  Up: mglData class
+
+6.9 Информационные функции
+===============================================
+
+ -- Метод класса `mglData' (C++): `void' PrintInfo (`char *'buf, `bool'
+          all=`false') `const'
+     Печатает информацию о данных (размеры, моменты и пр.) в строку
+     BUF. Параметр ALL устанавливает печатать ли подробную информацию
+     (если `true') или только базовую информацию.
+
+ -- Метод класса `mglData' (C++): `void' PrintInfo (`FILE *'fp) `const'
+     Аналогично, но выводит в файл (или, например, в stdout).
+
+ -- Метод класса `mglData' (C++, Python): `float' Maximal () `const'
+ -- Функция С: `float' mgl_data_max (`const HMDT' dat)
+     Возвращает максимальное значение массива данных.
+   
+ -- Метод класса `mglData' (C++, Python): `float' Minimal () `const'
+ -- Функция С: `float' mgl_data_min (`HMDT' dat) `const'
+     Возвращает минимальное значение массива данных.
+
+ -- Метод класса `mglData' (C++, Python): `float' Maximal (`int' &i,
+          `int' &j, `int' &k) `const'
+ -- Функция С: `float' mgl_data_max_int (`const HMDT' dat, `int' *i,
+          `int' *j, `int' *k)
+     Возвращает максимальное значение массива данных и его положение в
+     переменные I, J, K.
+
+ -- Метод класса `mglData' (C++, Python): `float' Minimal (`int' &i,
+          `int' &j, `int' &k) `const'
+ -- Функция С: `float' mgl_data_min_int (`const HMDT' dat, `int' *i,
+          `int' *j, `int' *k)
+     Возвращает минимальное значение массива данных и его положение в
+     переменные I, J, K.
+
+ -- Метод класса `mglData' (C++, Python): `float' Maximal (`float' &i,
+          `float' &j, `float' &k) `const'
+ -- Функция С: `float' mgl_data_max_real (`const HMDT' dat, `float' *x,
+          `float' *y, `float' *z)
+     Возвращает максимальное значение массива данных и его приближенное
+     (интерполированное) положение в переменные I, J, K.
+
+ -- Метод класса `mglData' (C++, Python): `float' Minimal (`float' &i,
+          `float' &j, `float' &k) `const'
+ -- Функция С: `float' mgl_data_min_real (`const HMDT' dat, `float' *x,
+          `float' *y, `float' *z)
+     Возвращает минимальное значение массива данных и его приближенное
+     (интерполированное) положение в переменные I, J, K.
+
+ -- Метод класса `mglData' (C++, Python): `float' Momentum (`char' dir,
+          `float' &m, `float' &w) `const'
+ -- Функция С: `float' mgl_data_momentum_mw (`const HMDT' dat, `char'
+          dir, `float' *m, `float' *w)
+     Возвращает нулевой момент (энергию, I=\sum a_i) и записывает
+     первый (среднее, m = \sum \xi_i a_i/I) и второй момент (ширину,
+     w^2 = \sum (\xi_i-m)^2 a_i/I). Здесь \xi - соответствующая
+     кордината если DIR равно `'x'', `'y'', `'z''. В противном случае
+     среднее и ширина равны m = \sum a_i/N, w^2 = \sum (a_i-m)^2/N.
+
+ -- Метод класса `mglData' (C++): `float' Momentum (`char' dir, `float'
+          &m, `float' &w, `float' &s, `float' &k) `const'
+     Возвращает нулевой момент (энергию, I=\sum a_i) и записывает
+     первый (среднее, m = \sum \xi_i a_i/I), второй (ширину, w^2 = \sum
+     (\xi_i-m)^2 a_i/I), третий (асимметрия, s = \sum (\xi_i-m)^3 a_i/
+     I w^3) и четвертый моменты (эксцесс, k = \sum (\xi_i-m)^4 a_i / 3
+     I w^4)). Здесь \xi - соответствующая кордината если DIR равно
+     `'x'', `'y'', `'z''. В противном случае среднее, ширина,
+     асимметрия, эксцесс равны m = \sum a_i/N, w^2 = \sum (a_i-m)^2/N и
+     т.д.
+
+ -- Метод класса `mglData' (C++, Python): `float' Find (`const char
+          *'cond, `int' &i, `int' &j, `int' &k) `const'
+ -- Функция С: `float' mgl_data_first (`const HMDT' dat, `const char
+          *'cond, `int' *i, `int' *j, `int' *k)
+     Находит положение (после заданного в I, J, K) первого не нулевого
+     значения формулы COND. Функция возвращает найденное значение и
+     записывает его положение в I, J, K.
+   
+ -- Метод класса `mglData' (C++, Python): `float' Last (`const char
+          *'cond, `int' &i, `int' &j, `int' &k) `const'
+ -- Функция С: `float' mgl_data_last (`const HMDT' dat, `const char
+          *'cond, `int' *i, `int' *j, `int' *k)
+     Находит положение (перед заданного в I, J, K) последнего не
+     нулевого значения формулы COND. Функция возвращает найденное
+     значение и записывает его положение в I, J, K.
+
+ -- Метод класса `mglData' (C++, Python): `int' Find (`const char
+          *'cond, `char' dir, `int' i=`0', `int' j=`0', `int' k=`0')
+          `const'
+ -- Функция С: `float' mgl_data_find (`const HMDT' dat, `const char
+          *'cond, `int' i, `int' j, `int' k)
+     Возвращает положение первого в направлении DIR не нулевого
+     значения формулы COND. Поиск начинается с точки {i,j,k}.
+   
+ -- Метод класса `mglData' (C++, Python): `bool' FindAny (`const char
+          *'cond) `const'
+ -- Функция С: `float' mgl_data_find_any (`const HMDT' dat, `const char
+          *'cond)
+     Определяет есть ли хоть одно значение массива, удовлетворяющее
+     условию COND.
+
+
+File: mathgl_ru.info,  Node: Operators,  Next: Global functions,  Prev: Informational functions,  Up: mglData class
+
+6.10 Операторы
+=======================
+
+ -- Метод класса `mglData' (C++, Python): `void' operator= (`const
+          mglData &'d)
+     Копирует данные из другого экземпляра.
+
+ -- Метод класса `mglData' (C++, Python): `void' operator*= (`const
+          mglData &'d)
+ -- Функция С: `void' mgl_data_mul_dat (`HMDT' dat, `const HMDT' d)
+     Поэлементно умножает массив D.
+
+ -- Метод класса `mglData' (C++, Python): `void' operator/= (`const
+          mglData &'d)
+ -- Функция С: `void' mgl_data_div_dat (`HMDT' dat, `const HMDT' d)
+     Поэлементно делит массив D.
+
+ -- Метод класса `mglData' (C++, Python): `void' operator+= (`const
+          mglData &'d)
+ -- Функция С: `void' mgl_data_add_dat (`HMDT' dat, `const HMDT' d)
+     Поэлементно прибавляет D.  Adds the other data.
+
+ -- Метод класса `mglData' (C++, Python): `void' operator-= (`const
+          mglData &'d)
+ -- Функция С: `void' mgl_data_sub_dat (`HMDT' dat, `const HMDT' d)
+     Поэлементно вычитает D.
+
+ -- Метод класса `mglData' (C++, Python): `void' operator*= (`float' d)
+ -- Функция С: `void' mgl_data_mul_num (`HMDT' dat, `float' d)
+     Умножает каждый элемент на число.
+
+ -- Метод класса `mglData' (C++, Python): `void' operator/= (`float' d)
+ -- Функция С: `void' mgl_data_div_num (`HMDT' dat, `float' d)
+     Делит каждый элемент на число.
+
+ -- Метод класса `mglData' (C++, Python): `void' operator+= (`float' d)
+ -- Функция С: `void' mgl_data_add_num (`HMDT' dat, `float' d)
+     Прибавляет число к каждому элементу.
+
+ -- Метод класса `mglData' (C++, Python): `void' operator-= (`float' d)
+ -- Функция С: `void' mgl_data_sub_num (`HMDT' dat, `float' d)
+     Вычитает число из каждого элемента.
+
+ -- Функция библиотеки: mglData operator+ (`const mglData &'a, `const
+          mglData &'b)
+     Возвращает поэлементную сумму данных.
+
+ -- Функция библиотеки: mglData operator+ (`float' a, `const mglData
+          &'b)
+ -- Функция библиотеки: mglData operator+ (`const mglData &'a, `float'
+          b)
+     Возвращает поэлементную сумму данных и числа.
+
+ -- Функция библиотеки: mglData operator- (`const mglData &'a, `const
+          mglData &'b)
+     Возвращает поэлементную разность данных.
+
+ -- Функция библиотеки: mglData operator- (`float' a, `const mglData
+          &'b)
+ -- Функция библиотеки: mglData operator- (`const mglData &'a, `float'
+          b)
+     Возвращает поэлементную разность числа и данных.
+
+ -- Функция библиотеки: mglData operator* (`const mglData &'a, `const
+          mglData &'b)
+     Возвращает поэлементное произведение данных.
+
+ -- Функция библиотеки: mglData operator* (`float' a, `const mglData
+          &'b)
+ -- Функция библиотеки: mglData operator* (`const mglData &'a, `float'
+          b)
+     Возвращает поэлементное произведение данных на число.
+
+ -- Функция библиотеки: mglData operator/ (`const mglData &'a, `const
+          mglData &'b)
+     Возвращает поэлементное деление данных.
+
+ -- Функция библиотеки: mglData operator/ (`const mglData &'a, `float'
+          b)
+     Возвращает поэлементное деление данных на число.
+
+
+File: mathgl_ru.info,  Node: Global functions,  Prev: Operators,  Up: mglData class
+
+6.11 Глобальные функции
+========================================
+
+Эти функции не методы класса `mglData', но они дают дополнительные
+возможности по обработке данных. Поэтому я поместил их в эту главу.
+
+ -- Функция библиотеки: `mglData' mglTransform (`const mglData &'real,
+          `const mglData &'imag, `const char *'type)
+ -- Функция С: `HMDT' mgl_transform (`const HMDT' real, `const HMDT'
+          imag, `const char *'type)
+     Выполняет интегральное преобразование комплексных данных REAL,
+     IMAG в выбранном направлении и возвращает модуль результата.
+     Порядок и тип преобразований задается строкой TYPE: первый символ
+     для x-направления, второй для y-направления, третий для
+     z-направления. Возможные символы: `f' - прямое преобразование
+     Фурье, `i' - обратное преобразование Фурье, `s' - синус
+     преобразование, `c' - косинус преобразование, `h' - преобразование
+     Ханкеля, `n' или ` ' - нет преобразования.
+
+ -- Функция библиотеки: `mglData' mglTransformA `const mglData &'ampl,
+          `const mglData &'phase, `const char *'type)
+ -- Функция С: `HMDT' mgl_transform_a `const HMDT' ampl, `const HMDT'
+          phase, `const char *'type)
+     Аналогично предыдущему с заданными амплитудой AMPL и фазой PHASE
+     комплексных чисел.
+
+ -- Функция библиотеки: `mglData' mglSTFA (`const mglData &'real,
+          `const mglData &'imag, `int' dn, `char' dir=`'x'')
+ -- Функция С: `HMDT' mgl_data_stfa (`const HMDT' real, `const HMDT'
+          imag, `int' dn,`char' dir)
+     Выполняет оконное преобразование Фурье длиной DN для комплексных
+     данных REAL, IMAG и возвращает модуль результата. Например, для
+     DIR=`x' результат будет иметь размер {int(nx/dn), dn, ny} и будет
+     равен res[i,j,k]=|\sum_d^dn
+     exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn.
+
+ -- Функция библиотеки: `mglData' mglPDE (`const char *'ham, `const
+          mglData &'ini_re, `const mglData &'ini_im, `mglPoint' Min,
+          `mglPoint' Max, `float' dz=`0.1', `float' k0=`100')
+ -- Функция С: `HMDT' mgl_pde_solve (`HMGL' gr, `const char *'ham,
+          `const HMDT' ini_re, `const HMDT' ini_im, `float' dz, `float'
+          k0)
+     Решает уравнение в частных производных du/dz =
+     i*k0*HAM(p,q,x,y,z,|u|)[u], где p=-i/k0*d/dx, q=-i/k0*d/dy -
+     псевдо-дифференциальные операторы. Параметры INI_RE, INI_IM задают
+     начальное распределение поля. Координаты в уравнении и в решении
+     полагаются в диапазоне осей координат. Замечу, что внутри этот
+     диапазон увеличивается в 3/2 раза для уменьшения отражения от
+     границ расчетного интервала. Параметр DZ задает шаг по
+     эволюционной координате z. В данный момент использован упрощенный
+     алгоритм, когда все "смешанные" члена (типа `x*p'->x*d/dx)
+     исключаются. Например, в 2D случае это функции типа ham = f(p,z) +
+     g(x,z,u). При этом допускаются коммутирующие комбинации (типа
+     `x*q'->x*d/dy). Переменная `u' используется для обозначения
+     амплитуды поля |u|. Это позволяет решать нелинейные задачи -
+     например, нелинейное уравнение Шредингера `ham='p^2+q^2-u^2''.
+     Также можно указать мнимую часть для поглощения (типа `ham =
+     'p^2+i*x*(x>0)''), но только если зависимость от `i' линейная,
+     т.е. ham = hre+i*him. См. раздел *note PDE sample::, для примеров
+     кода и графика.
+
+ -- Функция библиотеки: `mglData' mglRay (`const char *'ham, `mglPoint'
+          r0, `mglPoint' p0, `float' dt=`0.1', `float' tmax=`10')
+ -- Функция С: `HMDT' mgl_ray_trace (`const char *'ham, `float' x0,
+          `float' y0, `float' z0, `float' px, `float' py, `float' pz,
+          `float' dt, `float' tmax)
+     Решает систему геометрооптических уравнений d_r_/dt = d HAM/d_p_,
+     d_p_/dt = -d HAM/d_r_. Это гамильтоновы уравнения для траектории
+     частицы в 3D случае. Гамильтониан HAM может зависеть от координат
+     `x', `y', `z', импульсов `p'=px, `q'=py, `v'=pz и времени `t': ham
+     = H(x,y,z,p,q,v,t). Начальная точка (при `t=0') задается
+     переменными {X0, Y0, Z0, P0, Q0, V0}. Параметры DT и TMAX задают
+     шаг и максимальное время интегрирования. Результат - массив
+     {x,y,z,p,q,v,t} с размером {7 * int(TMAX/DT+1) }. См. раздел *note
+     Beam tracing sample::, для примеров кода и графика.
+
+ -- Функция библиотеки: `mglData' mglQO2d (`const char *'ham, `const
+          mglData &'ini_re, `const mglData &'ini_im, `const mglData
+          &'ray, `float' r=`1', `float' k0=`100', `mglData *'xx=`0',
+          `mglData *'yy=`0', `bool' UseR=`true')
+ -- Функция С: `HMDT' mgl_qo2d_solve (`const char *'ham, `const HMDT'
+          ini_re, `const HMDT' ini_im, `const HMDT' ray, `float' r,
+          `float' k0, `HMDT' xx, `HMDT' yy)
+     Решает уравнение в частных производных du/dt =
+     i*k0*HAM(p,q,x,y,|u|)[u] в сопровождающей системе координат, где
+     p=-i/k0*d/dx, q=-i/k0*d/dy - псевдо-дифференциальные операторы.
+     Параметры INI_RE, INI_IM задают начальное распределение поля.
+     Параметр RAY задает опорный луч для сопровождающей системы
+     координат. Можно использовать луч найденный с помощью `mglRay()'.
+     Опорный луч должен быть достаточно гладкий, чтобы система
+     координат была однозначной и для исключения ошибок интегрирования.
+     Если массивы XX и YY указаны, то в них записываются декартовы
+     координаты для каждой точки найденного решения. См. также
+     `mglPDE()'. См. раздел *note Beam tracing sample::, для примеров
+     кода и графика.
+
+ -- Функция библиотеки: `mglData' mglJacobian (`const mglData &'x,
+          `const mglData &'y)
+ -- Функция библиотеки: `mglData' mglJacobian (`const mglData &'x,
+          `const mglData &'y, `const mglData &'z)
+ -- Функция С: `HMDT' mgl_jacobian_2d (`const HMDT' x, `const HMDT' y)
+ -- Функция С: `HMDT' mgl_jacobian_3d (`const HMDT' x, `const HMDT' y,
+          `const HMDT' z)
+     Вычисляет якобиан преобразования {i,j,k} в {X,Y,Z}, где координаты
+     {i,j,k} полагаются нормированными в интервал [0,1]. Якобиан
+     находится по формуле det||dr_\alpha/d\xi_\beta||, где r={X,Y,Z} и
+     \xi={i,j,k}. Все размерности всех массивов должны быть одинаковы.
+     Данные должны быть трехмерными если указаны все 3 массива {X,Y,Z}
+     или двумерными если только 2 массива {X,Y}.
+
+
+File: mathgl_ru.info,  Node: Other classes,  Next: MGL interface,  Prev: mglData class,  Up: Top
+
+7 Other classes
+***************
+
+* Menu:
+
+* mglParse class::
+* mglFormula class::
+* mglFont class::
+* mglColor class::
+* mglPoint class::
+* mglVar class::
+* mglCommand class::
+* mglArg class::
+
+
+File: mathgl_ru.info,  Node: mglParse class,  Next: mglFormula class,  Up: Other classes
+
+7.1 mglParse class
+==================
+
+Class for parsing and executing MGL script. This class is defined in
+`#include <mgl/mgl_parse.h>'.
+
+   Class mglParse is the interpreter for MGL scripts (*note MGL
+interface::). The main function of mglParse class is `Parse()'. Exactly
+this function parses and executes the script string-by-string. Also
+there are two subservient functions for the finding and creation of a
+variable. These functions can be useful for displaying values of
+variables (arrays) in some external program (in window, for example).
+The variable DATALIST contains full list of variables in script. Flag
+ALLOWSETSIZE allows one to prevent changing the size of the  picture
+inside the script (forbids the MGL command `setsize').
+
+   Note an important feature - if user defines function FUNC in
+variable then it will be called before the destroying of this variable
+(*note mglVar class::).
+
+ -- Method on `mglParse' (C++, Python): `' mglParse (`bool'
+          setsize=`false')
+ -- C function: `HMPR' mgl_create_parser ()
+     Constructor initializes all values with zero and set ALLOWSETSIZE
+     value.
+
+ -- Method on `mglParse' (C++, Python): `' ~mglParse ()
+ -- C function: `void' mgl_delete_parser (`HMPR' p)
+     Destructor delete parser
+
+ -- Method on `mglParse' (C++, Python): `int' Parse (`mglGraph *'gr,
+          `const char *'str, `long' pos=`0')
+ -- Method on `mglParse' (C++): `int' Parse (`mglGraph *'gr, `const
+          wchar_t *'str, `long' pos=`0')
+ -- C function: `int' mgl_parse (`HMGL' gr, `HMPR' p, `const char
+          *'str, `int' pos)
+ -- C function: `int' mgl_parsew (`HMGL' gr, `HMPR' p, `const wchar_t
+          *'str, `int' pos)
+     Main function in the class. It parses the string STR and executes
+     it by  using GR as a graphics plotter. Returns the value depending
+     on an error presence in the string STR: 0 - no error, 1 - wrong
+     command argument(s), 2 - unknown command, 3 - string is too long.
+     Optional argument POS allows to save the string position in the
+     document (or file) for using `for|next' command.
+
+ -- Method on `mglParse' (C++): `int' Export (`wchar_t'
+          cpp_out`[1024]', `mglGraph *'gr, `const wchar_t *'str)
+     Function parses the string STR, executes it by  using GR as a
+     graphics plotter and exports it to C++ code. Returns the value
+     depending on an error presence in the string STR: 0 - no error, 1
+     - wrong command argument(s), 2 - unknown command, 3 - string is
+     too long. Output C++ text will be placed in OUT variable. If
+     string STR have options (defined after ';' symbol) then the
+     corresponding C++ texts are placed in variables OP1, OP2.
+
+ -- Method on `mglParse' (C++): `void' Execute (`mglGraph *'gr, `FILE
+          *'fp, `bool' print=`false')
+     Function parse and execute line-by-line MGL script in file FP. If
+     PRINT=`true' then all warnings and information will be printed in
+     stdout. Also this function support the `for|next' MGL commands.
+
+ -- Method on `mglParse' (C++): `void' Execute (`mglGraph *'gr, `int'
+          num, `const wchar_t **'text, `void (*' error `)(int line, int
+          kind)=NULL')
+     Function parse and execute line-by-line MGL script in array TEXT.
+     If ERROR is not `NULL' then this function will be called for all
+     warnings, information and other messages. Also this function
+     support the `for|next' MGL commands.
+
+ -- Method on `mglParse' (C++, Python): `void' Execute (`mglGraph *'gr,
+          `const char *'text, `void (*' error `)(int line, int
+          kind)=NULL')
+ -- Method on `mglParse' (C++): `void' Execute (`mglGraph *'gr, `const
+          wchar_t *'text, `void (*' error `)(int line, int kind)=NULL')
+ -- C function: `void' mgl_parse_text (`HMGL' gr, `HMPR' p, `const char
+          *'text)
+ -- C function: `void' mgl_parsew_text (`HMGL' gr, `HMPR' p, `const
+          wchar_t *'text)
+     Function parse and execute line-by-line MGL script in string TEXT.
+     Lines are separated by `\n' symbol as usual. If ERROR is not
+     `NULL' then this function will be called for all warnings,
+     information and other messages. Also this function support the
+     `for|next' MGL commands.
+
+ -- Method on `mglParse' (C++, Python): `bool' AddParam (`int' n,
+          `const char *'str, `bool' isstr=`true')
+ -- Method on `mglParse' (C++): `bool' AddParam (`int' n, `const
+          wchar_t *'str, `bool' isstr=`true')
+ -- C function: `void' mgl_add_param (`HMPR' p, `int' id, `const char
+          *'val)
+ -- C function: `void' mgl_add_paramw (`HMPR' p, `int' id, `const
+          wchar_t *'val)
+     Function set the value of N-th parameter as string STR (N=0, 1 ...
+     9). It return `true' for success.
+
+ -- Method on `mglParse' (C++, Python): `mglVar *' FindVar (`const char
+          *'name)
+ -- Method on `mglParse' (C++): `mglVar *' FindVar (`const wchar_t
+          *'name)
+ -- C function: `const HMDT' mgl_find_var (`HMPR' p, `const char *'name)
+     Function returns the pointer to variable with name NAME or zero if
+     variable is absent. Use this function to put external data array
+     to the script or get the data from the script.
+
+ -- Method on `mglParse' (C++, Python): `mglVar *' AddVar (`const char
+          *'name)
+ -- Method on `mglParse' (C++): `mglVar *' AddVar (`const wchar_t
+          *'name)
+ -- C function: `const HMDT' mgl_add_var (`HMPR' p, `const char *'name)
+     Function returns the pointer to variable with name NAME. If
+     variable is absent then new variable is created with name NAME.
+     Use this function to put external data array to the script or get
+     the data from the script.
+
+ -- Method on `mglParse' (C++): `void' DeleteVar (`mglVar *'v)
+ -- Method on `mglParse' (C++): `void' DeleteVar (`const char *'name)
+ -- Method on `mglParse' (C++): `void' DeleteVar (`const wchar_t *'name)
+     Function delete the variable specified by its name or by its
+     pointer.
+
+ -- Method on `mglParse' (C++, Python): `inline void' RestoreOnce ()
+ -- C function: `void' mgl_restore_once (`HMPR' p)
+     Restore Once flag.
+
+ -- Method on `mglParse' (Python): `void' AllowSetSize (`bool' a)
+ -- C function: `void' mgl_parser_allow_setsize (`HMPR' p, `int' a)
+     Allow to parse 'setsize' command or not.
+
+ -- Method on `mglParse' (C++): `void' AddCommand (`mglCommand *'cmd,
+          `int' num=`0')
+     Add NUM commands CMD to the defined MGL commands list. Parameter
+     CMD is array of `mglCommand' structures. If parameter NUM=0 then
+     it will be determined automatically. At this, array CMD *must
+     have* last element with `name=L""'
+
+ -- Option of mglParse: `mglVar *' DataList
+     List of variables defined in script.
+
+ -- Option of mglParse: `bool' AllowSetSize
+     Flag which allows/forbids the command `setsize' in scripts.
+
+ -- Option of mglParse: `bool' Stop
+     Flag which interrupt script execution.
+
+ -- Option of mglParse: `mglCommand *' Cmd
+     Table (array) of recognizable MGL commands (can be changed by
+     user). Items in the table *MUST be sorted* by NAME field !!! Last
+     items must have empty name (i.e. `L""').
+
+ -- Option of mglParse: `wchar_t *' op1
+     These strings contain command options and should be placed before
+     the command. These variables are used for MGL->C++ (or other
+     language) conversion.
+
+ -- Option of mglParse: `wchar_t *' op2
+     These strings contain command options and should be placed after
+     the command. These variables are used for MGL->C++ (or other
+     language) conversion.
+
+
+File: mathgl_ru.info,  Node: mglFormula class,  Next: mglFont class,  Prev: mglParse class,  Up: Other classes
+
+7.2 mglFormula class
+====================
+
+Class for evaluating of formula specified by the string. This class is
+defined in `#include <mgl/mgl_eval.h>'.
+
+   It is the fast variant of formula evaluation. At creation it will be
+recognized and compiled to tree-like internal code. At evaluation stage
+only fast calculations are performed. There is no difference between
+lower or upper case in formulas. If argument value lie outside the
+range of function definition then function returns NaN. *Note Textual
+formulas::.
+
+ -- Method on mglFormula: `' mglFormula (`const char *'str)
+     Parses the formula STR and creates formula-tree. Constructor
+     recursively parses the formula and creates a tree-like structure
+     containing functions and operators for fast further evaluating by
+     `Calc()' or `CalcD()' functions.
+
+ -- Method on mglFormula: `float' Calc (`float' x, `float' y=`0',
+          `float' z=`0', `float' u=`0')
+     Evaluates the formula for `'x','r''=X, `'y','n''=Y, `'z','t''=Z,
+     `'a','u''=U. Error code (if one) can be obtained from function
+     `GetError()'.
+
+ -- Method on mglFormula: `float' Calc (`float' x, `float' y, `float'
+          z, `float' u, `float' v, `float' w)
+     Evaluates the formula for `'x''=X, `'y''=Y, `'z''=Z, `'u''=U,
+     `'v''=V, `'w''=W. Error code (if one) can be obtained from
+     function `GetError()'.
+
+ -- Method on mglFormula: `float' Calc (`float' var`['z'-'a'+1]')
+     Evaluates the formula for variables in array VAR['z'-'a']. Error
+     code (if one) can be obtained from function `GetError()'.
+
+ -- Method on mglFormula: `float' CalcD (`float' var`['z'-'a'+1]',
+          `char' diff)
+     Evaluates the formula derivation respect to DIFF for variables in
+     array VAR['z'-'a']. Error code (if one) can be obtained from
+     function `GetError()'.
+
+ -- Method on mglFormula: `int' GetError ()
+     Returns error code: `0' means no error; `ERR_LOG' means error in
+     logarithm or power functions; `ERR_ARC' means error in inverse
+     functions (like asin); `ERR_SQRT' means error in sqrt function.
+
+
+File: mathgl_ru.info,  Node: mglFont class,  Next: mglColor class,  Prev: mglFormula class,  Up: Other classes
+
+7.3 mglFont class
+=================
+
+Class for working with font: load, get metrics, parse and draw strings.
+This class is defined in `#include <mgl/mgl_font.h>'.
+
+   The class is based on loading and drawing of vector Hershey font.
+There are two styles of specifying of the font type and aligning: by
+integer parameters or by string.
+
+   The string can be any combination of characters: `rbiLCRwou'. The
+font types are: `r' - roman font, `i' - italic style, `b' - bold style.
+By default roman font (that is `' or `r') is used. The align types are:
+`L' - align left (default), `C' - align center, `R' - align right.
+Additional font effects are: `w' - wire, `o' - over-lined, `u' -
+underlined. Parsing of the string to special (TeX-like) commands will
+be done if variable PARSE is true (it's default). See also *note Font
+styles::.
+
+   The over way of font and alignment setting is the using of the
+integer constant. Integer font Id can be one of predefined constants:
+`MGL_FONT_ITAL, MGL_FONT_BOLD, MGL_FONT_BOLD_ITAL =
+MGL_FONT_ITAL+MGL_FONT_BOLD'. Default font is `MGL_FONT_ROMAN'. Also
+there are flags `MGL_FONT_ULINE, MGL_FONT_OLINE, MGL_FONT_WIRE' for
+additional font effects. Align parameter controls the text alignment: 0
+- align left, 1 - align center, 2 - align right.
+
+* Menu:
+
+* Format of font files::
+
+ -- Method on mglFont: `' mglFont (`const char
+          *'name=`MGL_DEF_FONT_NAME', `const char *'path=`NULL')
+     Initialize the font and load data from file NAME (default name is
+     "STIX" for Linux and MacOS) or if  NAME=`NULL' limited data from
+     memory (default for Windows).
+
+ -- Method on mglFont: `bool' Load (`const char *' base, `const char
+          *'path=`NULL')
+     Load font from file PATH/BASE into the memory. The font may
+     contain 4 files: BASE.vfm, BASE_b.vfm, BASE_i.vfm, BASE_bi.vfm.
+     Appendix contain detailed description of font format.
+
+ -- Method on mglFont: `void' Restore ()
+     Restore default font.
+
+ -- Method on mglFont: `void' (`mglFont *' fnt)
+     Copy data from other font instance.
+
+ -- Method on mglFont: `void' Clear ()
+     Clear memory by deleting the loaded font.
+
+ -- Method on mglFont: `inline unsigned' GetNumGlyph ()
+     Return the number of glyphs in the font.
+
+ -- Method on mglFont: `inline bool' Ready ()
+     Return true if font is loaded and ready for use.
+
+ -- Method on mglFont: `float' Height (`int' font)
+     Gets height of text for font specified by integer constant.
+
+ -- Method on mglFont: `float' Puts (`const char *'str, `int' font=`0',
+          `int' align=`0')
+     Prints 8-bit text string for font specified by integer constant.
+
+ -- Method on mglFont: `float' Width (`const char *'str, `int' font=`0')
+     Gets width of 8-bit text string for font specified by integer
+     constant.
+
+ -- Method on mglFont: `float' Puts (`const wchar_t *'str, `int'
+          font=`0', `int' align=`0')
+     Prints Unicode text string for font specified by integer constant.
+
+ -- Method on mglFont: `float' Width (`const wchar_t *'str, `int'
+          font=`0')
+     Gets width of Unicode text string for font specified by integer
+     constant.
+
+ -- Method on mglFont: `float' Height (`const char *'how)
+     Gets height of text for font specified by string.
+
+ -- Method on mglFont: `float' Puts (`const char *'str, `const char
+          *'how)
+     Prints 8-bit text string for font specified by string.
+
+ -- Method on mglFont: `float' Width (`const char *'str, `const char
+          *'how)
+     Gets width of 8-bit text string for font specified by string.
+
+ -- Method on mglFont: `float' Puts (`const wchar_t *'str, `const char
+          *'how)
+     Prints Unicode text string for font specified by string.
+
+ -- Method on mglFont: `float' Width (`const wchar_t *'str, `const char
+          *'how)
+     Gets width of Unicode text string for font specified by string.
+
+ -- Parameter of mglFont: `mglGraph *' gr
+     Instance of mglGraph class which is used for character drawing.
+
+ -- Parameter of mglFont: `bool' parse
+     Flag for switching on/off the parsing of TeX commands. Default
+     value is `true'.
+
+
+File: mathgl_ru.info,  Node: Format of font files,  Up: mglFont class
+
+7.3.1 Format of font files
+--------------------------
+
+Starting from v.1.6 the MathGL library uses new font files. The font is
+defined in 4 files with suffixes `*.vfm', `*_b.vfm', `*_i.vfm',
+`*_bi.vfm'. These files are text files containing the data for roman
+font, bold font, italic font and bold italic font. The files (or some
+symbols in the files) for bold, italic or bold italic fonts can be
+absent. In this case the roman glyph will be used for them. By analogy,
+if the bold italic font is absent but the bold font is present then
+bold glyph will be used for bold italic. You may create these font
+files by yourself from *.ttf, *.otf files with the help of program
+`font_tools'. This program can be found at MathGL home site.
+
+   The format of font files (*.vfm - vector font for MathGL) is the
+following.
+  1. First string contains human readable comment and is always ignored.
+
+  2. Second string contains 3 numbers, delimited by space or
+     tabulation. The order of numbers is the following: NUMG - the
+     number of glyphs in the file (integer), FACT - the factor for
+     glyph sizing (float), SIZE - the size of buffer for glyph
+     description (integer).
+
+  3. After it NUMG-th strings with glyphs description are placed. Each
+     string contains 6 positive numbers, delimited by space of
+     tabulation. The order of numbers is the following: Unicode glyph
+     ID, glyph width, number of lines in glyph, position of lines
+     coordinates in the buffer (length is 2*number of lines), number of
+     triangles in glyph, position of triangles coordinates in the
+     buffer (length is 6*number of triangles).
+
+  4. The end of file contains the buffer with point coordinates at
+     lines or triangles vertexes. The size of buffer (the number of
+     integer) is SIZE.
+
+   Each font file can be compressed by gzip.
+
+   Note: the closing contour line  is done automatically (so the last
+segment may be absent). For starting new contour use a point with
+coordinates `{0x3fff, 0x3fff}'.
+
+
+File: mathgl_ru.info,  Node: mglColor class,  Next: mglPoint class,  Prev: mglFont class,  Up: Other classes
+
+7.4 mglColor class
+==================
+
+Structure for working with colors. This structure is defined in
+`#include <mgl/mgl.h>'.
+
+   There are two ways to set the color in MathGL. First one is using of
+float values of red, green and blue channels for precise color
+definition. The second way is the using of character id. There are a
+set of characters specifying frequently used colors. Normally capital
+letter gives more dark color than lowercase one. *Note Line styles::.
+
+ -- Parameter of mglVar: `float' r, g, b
+     Reg, green and blue component of color.
+
+ -- Method on mglColor: `' mglColor (`float' R, `float' G, `float' B)
+     Constructor sets the color by float values of Red, Green and Blue
+     channels.
+
+ -- Method on mglColor: `' mglColor (`char' c=`'k'')
+     Constructor sets the color from character id. The black color is
+     used by default.
+
+ -- Method on mglColor: `void' Set (`float' R, `float' G, `float' B)
+     Sets color from values of Red, Green and Blue channels. This
+     values should be in interval [0,1].
+
+ -- Method on mglColor: `void' Set (`mglColor' c, `float' bright=`1')
+     Sets color as "lighted" version of color C.
+
+ -- Method on mglColor: `void' Set (`char' p)
+     Sets color from symbolic id.
+
+ -- Method on mglColor: `bool' Valid ()
+     Checks correctness of the color.
+
+ -- Method on mglColor: `float' Norm ()
+     Gets maximal of spectral component.
+
+ -- Method on mglColor: `bool' operator== (`const mglColor &'c)
+     Compare with another color
+
+ -- Library Function: inline mglColor operator+ (`const mglColor &'a,
+          `const mglColor &'b)
+     Adds colors by its RGB values.
+
+ -- Library Function: inline mglColor operator- (`const mglColor &'a,
+          `const mglColor &'b)
+     Subtracts colors by its RGB values.
+
+ -- Library Function: inline mglColor operator* (`const mglColor &'a,
+          `float' b)
+     Multiplies color by number.
+
+ -- Library Function: inline mglColor operator* (`float' a, `const
+          mglColor &'b)
+     Multiplies color by number.
+
+ -- Library Function: inline mglColor operator/ (`const mglColor &'a,
+          `float' b)
+     Divide color by number.
+
+ -- Library Function: inline mglColor operator! (`const mglColor &'a)
+     Return inverted color.
+
+
+File: mathgl_ru.info,  Node: mglPoint class,  Next: mglArg class,  Prev: mglColor class,  Up: Other classes
+
+7.5 mglPoint class
+==================
+
+Structure describes point in space. This structure is defined in
+`#include <mgl/mgl.h>'
+
+ -- Parameter of mglVar: `float' x, y, z
+     Point coordinates. By default all values are zero.
+
+ -- Library Function: inline mglPoint operator+ (`const mglPoint &'a,
+          `const mglPoint &'b)
+     Point of summation (summation of vectors).
+
+ -- Library Function: inline mglPoint operator- (`const mglPoint &'a,
+          `const mglPoint &'b)
+     Point of difference (difference of vectors).
+
+ -- Library Function: inline mglPoint operator* (`float' a, `const
+          mglPoint &'b)
+     Multiplies (scale) points by number.
+
+ -- Library Function: inline mglPoint operator* (`const mglPoint &'a,
+          `float' b)
+     Multiplies (scale) points by number.
+
+ -- Library Function: inline mglPoint operator/ (`const mglPoint &'a,
+          `float' b)
+     Multiplies (scale) points by number 1/b.
+
+ -- Library Function: inline float operator- (`const mglPoint &'a,
+          `const mglPoint &'b)
+     Scalar product of vectors.
+
+ -- Library Function: inline mglPoint operator^ (`const mglPoint &'a,
+          `const mglPoint &'b)
+     Cross-product of vectors.
+
+ -- Library Function: inline mglPoint operator& (`const mglPoint &'a,
+          `const mglPoint &'b)
+     The part of A which is perpendicular to vector B.
+
+ -- Library Function: inline mglPoint operator| (`const mglPoint &'a,
+          `const mglPoint &'b)
+     The part of A which is parallel to vector B.
+
+ -- Library Function: inline mglPoint operator! (`const mglPoint &'a)
+     Return vector perpendicular to vector A.
+
+ -- Library Function: inline bool Norm (`const mglPoint &'a)
+     Return the norm |A|^2 of vector A.
+
+ -- Library Function: inline bool operator== (`const mglPoint &'a,
+          `const mglPoint &'b)
+     Return true if points are the same.
+
+ -- Library Function: inline bool operator!= (`const mglPoint &'a,
+          `const mglPoint &'b)
+     Return true if points are different.
+
+
+File: mathgl_ru.info,  Node: mglVar class,  Next: mglCommand class,  Prev: mglArg class,  Up: Other classes
+
+7.6 mglVar class
+================
+
+Structure describes variable of type `mglData' and its name in MGL
+script. This structure is used by `mglParse' and is defined in
+`#include <mgl/mgl_parse.h>'.
+
+ -- Parameter of mglVar: `mglData' d
+     Data itself
+
+ -- Parameter of mglVar: `wchar_t' s[256]
+     Data name
+
+ -- Parameter of mglVar: `void *' o
+     Pointer to external object for function FUNC.
+
+ -- Parameter of mglVar: `mglVar *' next
+     Pointer to next instance in list
+
+ -- Parameter of mglVar: `mglVar *' prev
+     Pointer to prev instance in list
+
+ -- Parameter of mglVar: `bool' temp
+     Flag for temporar variable. Temporal variables will be destroyed
+     after script execution.
+
+ -- Parameter of mglVar: `void (*' func `)(void *)'
+     Callback function for destroying non-temporal variable.
+
+ -- Method on mglVar: `void' MoveAfter (`mglVar *'var)
+     Move variable after VAR and copy `func' from `var' (if `func' is
+     not 0)
+
+
+File: mathgl_ru.info,  Node: mglCommand class,  Prev: mglVar class,  Up: Other classes
+
+7.7 mglCommand class
+====================
+
+Structure describes MGL command, its name, short description,
+executable and export functions. The structure is used by `mglParse'
+and is defined in `#include <mgl/mgl_parse.h>'.
+
+ -- Parameter of mglCommand: `const wchar_t *' name
+     Name of command.
+
+ -- Parameter of mglCommand: `const wchar_t *' desc
+     Short command description (can be NULL).
+
+ -- Parameter of mglCommand: `const wchar_t *' form
+     Format of command arguments (can be NULL).
+
+ -- Parameter of mglCommand: `int (*' exec `)(mglGraph *gr, long n,
+          mglArg *a, int k[10])const wchar_t *'
+     Function for executing (plotting) the command using grapher GR and
+     having N-th arguments A. Function must return 0 if all is OK; or 1
+     if arguments are wrong.
+
+ -- Parameter of mglCommand: `void (*' save `)(wchar_t out[1024], long
+          n, mglArg *a, int k[10])const wchar_t *'
+     Function for exporting in C++ (can be NULL).
+
+
+File: mathgl_ru.info,  Node: mglArg class,  Next: mglVar class,  Prev: mglPoint class,  Up: Other classes
+
+7.8 mglArg class
+================
+
+Structure describes arguments of functions in the stucture
+`mglCommand'. It is defined in `#include <mgl/mgl_parse.h>'.
+
+ -- Parameter of mglArg: `int' type
+     Type of argument: 0-data, 1-string, 2-number.
+
+ -- Parameter of mglArg: `mglData *' d
+     Pointer to data (used if type=0).
+
+ -- Parameter of mglArg: `wchar_t' w[2048]
+     String with parameters (used if type=1 or if type=0 as variable
+     name).
+
+ -- Parameter of mglArg: `char' s[2048]
+     String with parameters (used if type=1).
+
+ -- Parameter of mglArg: `float' v
+     Numerical value (used if type==2)
+
+
+File: mathgl_ru.info,  Node: MGL interface,  Next: Samples,  Prev: Other classes,  Up: Top
+
+8 Язык MGL
+**************
+
+MathGL имеет встроенный скриптовый язык MGL для обработки и отображения
+данных. Скрипты MGL можно использовать как независимо (программами
+UDAV, mgl2png, mgl2eps, mgl2svg и пр., *note Utilities::) так и
+вызовами библиотеки.
+
+   Язык MGL достаточно простой. Каждая строка - отдельная команда.
+Первое слово - имя команды, а все остальные ее аргументы. Команда может
+иметь до 1000 аргументов (по крайней мере сейчас). Слова разделяются
+одно от другого пробелом или символом табуляции. Различий между верхним
+и нижним индексом нет, т.е. переменные A и A идентичны. Символ `#'
+начинает комментарий - все символы после него игнорируются до конца
+строки. Исключением является случай, когда `#' входит в строку. Опции
+команды указываются после символа `;' (*note Command options (MGL)::).
+Символ `:' начинает новую команду (подобно переводу строки) если он
+расположен не внутри скобок или строки.
+
+   Если строка содержит ссылки на внешние параметры (`$0', `$1' ...
+`$9') или макроопределения (`$a', `$b' ... `$z'), то текущие значения
+параметров/макроопределений подставляются в строку вместо ссылки до
+выполнением команды. Это позволяет использовать один и тот же скрипт
+при различных входных параметрах командной строки или вводить
+макроопределения по ходу исполнения команд скрипта.
+
+   Аргументы команды могут быть строками, переменными или числами.
+   * Строка - произвольный набор символов между метками `''.
+
+   * Обычно переменная имеет имя, состоящее из букв и чисел (должно
+     начинаться с буквы и не быть длиннее 64 символов). В качестве
+     переменной можно использовать временные массивы, включающие в себя:
+        * срезы ("подмассивы") массивов данных (подобно команде *note
+          subdata::). Например, `a(1)' или `a(1,:)' или `a(1,:,:)' -
+          вторая строка массива A, `a(:,2)' или `a(:,2,:)' - третий
+          столбец, `a(:,:,0)' - первый срез и т.д. Также можно выделить
+          часть массива с m-го по n-ый элемент `a(m:n,:,:)' или просто
+          `a(m:n)'.
+
+        * произвольные комбинации столбцов данных (например,
+          `a('n*w^2/exp(t)')'), если столбцы данных были именованы
+          командой *note idset:: или в файле данных (в строке
+          начинающейся с `##').
+
+        * произвольное выражение из существующих переменных и констант.
+          Например, `sqrt(dat(:,5)+1)' даст временный массив данных с
+          элементами равными `tmp[i,j] = sqrt(dat[i,5,j]+1)'.
+
+        * массивы с элементами заданными в квадратных скобках [],
+          разделенные `,'. При этом внутри выражения не должно быть
+          пробелов! Например, `[1,2,3]' даст временный массив из 3
+          элементов {1, 2, 3}; `[[11,12],[21,22]]' даст матрицу 2*2 и
+          т.д. Элементами такой конструкции могут быть и массивы если
+          их размерности одинаковые, например `[v1,v2,...,vn]'.
+
+        * результат команд построения новых данных (*note Make another
+          data::), если они заключены в фигурные скобки {}. Например,
+          `{sum dat 'x'}' даст временный массив, который есть результат
+          суммирования DAT вдоль 'x'. Это такой же массив как и TMP,
+          полученный командой `sum tmp dat 'x''. При этом можно
+          использовать вложенные конструкции, например `{sum {max dat
+          'z'} 'x'}'.
+     Временные массивы не могут стоять в качестве первого аргумента
+     команд, создающих массивы (например, `new', `read', `hist' и т.д.).
+
+   * К скалярным переменным, кроме собственно чисел, относятся:
+     специальные переменные `nan=#QNAN, pi=3.1415926..., on=1, off=0,
+     :=-1', переменные с суффиксами (*note Suffixes::), переменные
+     определенные командой *note define::. Также массивы размером 1x1x1
+     считаются скалярами (например, `pi/dat.nx').
+   Перед первым использованием все переменные должны быть определены с
+помощью команд, создающих массивы (*note new::, *note var::, *note
+list::, *note copy::, *note read::, *note hist::, *note sum:: и др.,
+*note Data create (MGL):: и *note Make another data (MGL)::).
+
+   Команды могут иметь несколько наборов аргументов (например, `plot
+ydat' и `plot xdat ydat'). Все аргументы команды для выбранного набора
+должны быть указаны, однако часть из них могут иметь значения по
+умолчанию. Такие аргументы в описании команд будут помещены в
+квадратные скобки [], например `plot ydat ['stl'='' zval=nan]'. При
+этом запись `[arg1 arg2 arg3 ...]' подразумевает `[arg1 [arg2 [arg3
+...]]]', т.е. опускать можно только аргументы с конца, если вы согласны
+с их значениями по умолчанию. Например, `plot ydat '' 1' или `plot ydat
+''' правильно, а `plot ydat 1' не правильно (аргумент `'stl'' пропущен).
+
+   Все команды MGL можно разделить на несколько групп. В дальнейшем
+будет использованы следующие обозначения при описании команд: имя
+команды выделено жирным, строки заключены в одинарные кавычки ",
+переменные выделены курсивом, числа (скаляры) выделены моноширинным
+шрифтом. Необязательные аргументы будут помещены в квадратные скобки []
+и показаны их значения по умолчанию. Подробную информацию о цвете и
+стиле линий (*note Line styles::), цветовых схемах (*note Color
+scheme::), стиле текста и символах TeX (*note Font styles::), текстовых
+формулах (*note Textual formulas::) можно найти в соответствующих
+разделах.
+
+* Menu:
+
+* Graphics setup (MGL)::
+* Axis settings (MGL)::
+* Transformation matrix (MGL)::
+* Export to file (MGL)::
+* Primitives drawing (MGL)::
+* Text printing (MGL)::
+* Axis and Colorbar (MGL)::
+* Legend (MGL)::
+* 1D plotting (MGL)::
+* 2D plotting (MGL)::
+* 3D plotting (MGL)::
+* Dual plotting (MGL)::
+* Vector fields (MGL)::
+* Other plotting (MGL)::
+* Nonlinear fitting (MGL)::
+* Data create (MGL)::
+* Data filling (MGL)::
+* Rearrange data (MGL)::
+* File I/O (MGL)::
+* Make another data (MGL)::
+* Change data (MGL)::
+* Operators (MGL)::
+* Program flow (MGL)::
+* Command options (MGL)::
+* Suffixes::
+* Utilities::
+
+
+File: mathgl_ru.info,  Node: Graphics setup (MGL),  Next: Axis settings (MGL),  Up: MGL interface
+
+8.1 Настройка графика (MGL)
+===========================================
+
+Команды в этой группе влияют на вид всего рисунка. Соответственно они
+должны располагаться _перед_ вызовом функций непосредственно рисующих
+графики.
+
+* Menu:
+
+* Transparency (MGL)::
+* Lighting (MGL)::
+* Fog (MGL)::
+* Default sizes (MGL)::
+* Zooming (MGL)::
+* Cutting (MGL)::
+* Other settings (MGL)::
+
+
+File: mathgl_ru.info,  Node: Transparency (MGL),  Next: Lighting (MGL),  Up: Graphics setup (MGL)
+
+8.1.1 Прозрачность (MGL)
+------------------------------------
+
+Эти команды настраивают тип и степень прозрачности поверхностей.
+Главной является функция *note alpha::, которая включает/выключает
+прозрачность для всех графиков, созданных после вызова *note alpha::.
+Функция *note alphadef:: устанавливает величину alpha-канала по
+умолчанию. Прозрачность можно выключить для отдельного графика с
+помощью *note transparent::. Наконец, функция *note transptype:: задает
+тип прозрачности. См. раздел *note Transparent surface sample::, для
+примеров кода и графика.
+
+ -- Команда MGL: alpha `[val=on]'
+     Включает/выключает прозрачность для _всего_ рисунка. По умолчанию
+     прозрачность выключена. Используйте `transparent off' для
+     конкретного графика для выключения прозрачности.
+   
+ -- Команда MGL: alphadef `val'
+     Задает значение прозрачности по умолчанию для всех графиков.
+     Начальное значение 0.5.
+   
+ -- Команда MGL: transparent `val'
+     Временно включает/возвращает прозрачность графиков.
+   
+ -- Команда MGL: transptype `val'
+     Задает тип прозрачности. Обычная прозрачность (`0') - "закрытые"
+     объекты видны меньше чем закрывающие. "Стеклянная" прозрачность
+     (`1') - закрытые и закрывающие объекты единообразно ослабляют
+     интенсивность света (по RGB каналам). "Ламповая" прозрачность
+     (`2') - закрытые и закрывающие объекты являются источниками
+     дополнительного освещения (рекомендую установить `alphadef 0.3'
+     или меньше в этом случае). *Note Normal transparency::, *note
+     Glass-like transparency::, *note Lamp-like transparency::.
+
+
+File: mathgl_ru.info,  Node: Lighting (MGL),  Next: Fog (MGL),  Prev: Transparency (MGL),  Up: Graphics setup (MGL)
+
+8.1.2 Освещение (MGL)
+------------------------------
+
+Эти функции настраивают освещение графика. Главная функция *note
+light:: включает/выключает освещение графиков построенных после ее
+вызова. MathGL  поддерживает до 10 независимых источников света.
+Положение, цвет, яркость каждого источника света можно задавать по
+отдельности. По умолчанию включен только первый (с порядковым номером
+`0') источник света белого цвета, расположенный сверху.
+
+ -- Команда MGL: light `[val=on]'
+     Включает/выключает освещение графика. По умолчанию освещение
+     выключено.
+
+ -- Команда MGL: light `n val'
+     Включает/выключает N-ый источник света.
+
+ -- Команда MGL: light `n xpos ypos zpos' ['col'='w' `br=0.5']
+     Добавляет источник света с номером N в положение {XPOS, YPOS,
+     ZPOS} с цветом COL и яркостью BR, которая должна быть в диапазоне
+     [0,1].
+
+ -- Команда MGL: ambient `val'
+     Задает яркость рассеянного освещения. Значение должно быть в
+     диапазоне [0,1].
+
+
+File: mathgl_ru.info,  Node: Fog (MGL),  Next: Default sizes (MGL),  Prev: Lighting (MGL),  Up: Graphics setup (MGL)
+
+8.1.3 Туман (MGL)
+----------------------
+
+ -- Команда MGL: fog `val [dz=0.25]'
+     Имитирует туман на графике. Туман начинается на относительном
+     расстоянии DZ от точки обзора и его плотность растет
+     экспоненциально вглубь по закону ~1-exp(-d*z). Здесь _z_ -
+     нормализованная на 1 глубина графика. Если D=`0' то туман
+     отсутствует. См. раздел *note Surface in fog sample::, для
+     примеров кода и графика.
+
+
+File: mathgl_ru.info,  Node: Default sizes (MGL),  Next: Zooming (MGL),  Prev: Fog (MGL),  Up: Graphics setup (MGL)
+
+8.1.4 Базовые размеры (MGL)
+-----------------------------------------
+
+Эти команды задают величины большинства параметров графика, включая
+размеры маркеров, стрелок, толщину линий и т.д. Как и любые другие
+настройки, они подействуют только на графики созданные после изменения
+настроек.
+
+ -- Команда MGL: barwidth `val'
+     Относительный размер прямоугольников в `bars, barh, boxplot'.
+     Значение по умолчанию `0.7'.
+
+ -- Команда MGL: marksize `val'
+     Размер маркеров для *note 1D plotting::. Значение по умолчанию `1'.
+
+ -- Команда MGL: arrowsize `val'
+     Размер стрелок для *note 1D plotting::, линий и кривых (*note
+     Primitives drawing::). Значение по умолчанию `1'.
+
+ -- Команда MGL: linewidth `val'
+     Базовая толщина линий. Значения <1 игнорируются. Для значений >1
+     реальная толщина получается перемножением указанной ширины линии
+     на данное значение. Увеличение ширины линии актуально для больших
+     растровых рисунков. Значение по умолчанию `1'.
+
+ -- Команда MGL: ticklen `val' [`stt=1']
+     Относительная длина меток осей координат. Значение по умолчанию
+     `0.1'. Параметр STT>0 задает относительную длину подметок, которые
+     в `sqrt(1+stt)' раз меньше.
+
+ -- Команда MGL: tickstl 'stl' ['sub'="]
+     Стиль меток (STL) и подметок (SUB) осей координат. Если `stl=''',
+     то используется стиль по умолчанию (`k' или `w' в зависимости от
+     типа прозрачности). Если `sub=''', то используется стиль меток
+     (т.е. STL).
+
+
+File: mathgl_ru.info,  Node: Zooming (MGL),  Next: Cutting (MGL),  Prev: Default sizes (MGL),  Up: Graphics setup (MGL)
+
+8.1.5 Масштабирование (MGL)
+------------------------------------------
+
+Эти команды управляют масштабированием всего рисунка (*note zoom::) или
+отдельной картинки (*note plotfactor::). Обычно эти функции
+используются для удаления пустого места вокруг графиков.
+
+ -- Команда MGL: plotfactor `val'
+     Масштаб картинки (значение должно быть больше 1). Не рекомендуется
+     устанавливать значения меньше 1.5. Это аналог *note zoom::, но
+     применяется только к конкретной картинке, заданной *note inplot::.
+     Используйте ноль для включения автоматического масштабирования.
+
+ -- Команда MGL: zoom `x1 y1 x2 y2'
+     Масштабирует весь рисунок. После вызова функции текущий график
+     будет очищен и в дальнейшем рисунок будет содержать только область
+     [x1,x2]*[y1,y2] от исходного рисунка. Координаты X1, X2, Y1, Y2
+     меняются в диапазоне от 0 до 1. Внимание! эти настройки не могут
+     быть переписаны никакими другими функциями. Используйте `zoom 0 0
+     1 1' для перехода в масштаб по умолчанию.
+
+
+File: mathgl_ru.info,  Node: Cutting (MGL),  Next: Other settings (MGL),  Prev: Zooming (MGL),  Up: Graphics setup (MGL)
+
+8.1.6 Обрезание (MGL)
+------------------------------
+
+Эти команды задают условия когда точка будет исключена (вырезана) из
+рисования. Замечу, что все точки со значением(-ями) `nan' по одной из
+координат или амплитуде автоматически исключаются из рисования.
+
+ -- Команда MGL: cut `val'
+     Задает обрезание точек за пределами осей координат. Если `on' то
+     такие точки исключаются из рисования (это по умолчанию) иначе они
+     проецируются на ограничивающий прямоугольник.
+
+ -- Команда MGL: cut `x1 y1 z1 x2 y2 z2'
+     Задает границы параллелепипеда внутри которого точки не рисуются.
+     Если границы одинаковы (переменные равны), то параллелепипеда
+     считается пустым. См. раздел *note CutMinMax sample::, для
+     примеров кода и графика.
+
+ -- Команда MGL: cut 'cond'
+     Задает условие обрезания по формуле COND. Это условие исключает
+     точки из рисования если результат вычисления формулы не равен
+     нулю. Установите аргумент `''' для выключения условия обрезания.
+     См. раздел *note CutOff sample::, для примеров кода и графика.
+
+
+File: mathgl_ru.info,  Node: Other settings (MGL),  Prev: Cutting (MGL),  Up: Graphics setup (MGL)
+
+8.1.7 Прочие настройки (MGL)
+-------------------------------------------
+
+ -- Команда MGL: font 'fnt' [`val=6']
+     Задает стиль и размер шрифта (*note Text printing::). Вначале
+     используется `rC' - прямой шрифт с выравниванием по центру. По
+     умолчанию размер подписей оси координат в 1.4 раза больше.
+
+ -- Команда MGL: rotatetext `val'
+     Включает/выключает вращение меток и подписей осей координат вдоль
+     оси. Начальное значение `on'.
+
+ -- Команда MGL: palette 'colors'
+     Задает палитру как последовательность цветов. Значение по
+     умолчанию `"Hbgrcmyhlnqeup"', что соответствует цветам: темно
+     серый `H', синий `b', зеленый `g', красный `r', голубой `c',
+     малиновый `m', желтый `y', серый `h', сине-зеленый  `l',
+     небесно-голубой `n', оранжевый `q', желто-зеленый `e',
+     сине-фиолетовый `u', фиолетовый `p'. Палитра в основном
+     используется в 1D графиках (*note 1D plotting::) для кривых с
+     неопределенным стилем линии.
+
+ -- Команда MGL: meshnum `num'
+     Задает ориентировочное число линий в *note mesh::, *note fall::,
+     *note grid::, число стрелок (штрихов) в *note vect::, *note dew::
+     и число ячеек в *note cloud::. По умолчанию (=0) рисуются все
+     линии, стрелки, ячейки.
+
+ -- Команда MGL: axialdir 'dir'
+     Задает ось вращения для *note axial::, *note torus::. По умолчанию
+     это 'z'.
+
+
+File: mathgl_ru.info,  Node: Axis settings (MGL),  Next: Transformation matrix (MGL),  Prev: Graphics setup (MGL),  Up: MGL interface
+
+8.2 Параметры осей координат (MGL)
+========================================================
+
+Этот большой набор команд определяет вид осей и меток координат. Перед
+построением для каждой точки выполняются 3 преобразования: сначала
+определяется возможность рисования точки (*note Cutting (MGL)::), далее
+применяются формулы перехода к криволинейным координатам и наконец
+точка отображается.
+
+ -- Команда MGL: axis `x1 y1 x2 y2'
+ -- Команда MGL: axis `x1 y1 z1 x2 y2 z2'
+ -- Команда MGL: ranges `x1 x2 y1 y2 [z1=0 z2=0]'
+     Задает диапазон изменения координат. Если минимальное и
+     максимальное значение координаты равны, то они игнорируются по
+     данному направлению. Также устанавливает размер цветовой шкалы,
+     аналогично команде  `caxis z1 z2'. Начальные диапазоны равны [-1,
+     1].
+
+ -- Команда MGL: axis 'fx' 'fy' ['fz'=" 'fa'="]
+     Задает формулы перехода к криволинейным координатам. Каждая строка
+     является математическим выражением, зависящим от старых координат
+     `x', `y', `z' и `a' или `c' для цветовой шкалы. Например, для
+     цилиндрических координат будет `axis 'x*cos(y)' 'x*sin(y)' 'z''.
+     Для удаления формул соответствующий параметр должен быть пустым
+     `'''. Использование формул преобразования слегка замедляет
+     программу, т.е.. `axis '' '' ''' быстрее чем `axis '1*x' '1*y'
+     '1*z''. Параметр FA задает аналогичную формулу для цветовой шкалы.
+     *Note Textual formulas::.
+
+ -- Команда MGL: axis `how'
+     Устанавливает одну из предопределенных систем криволинейных
+     координат в зависимости от параметра HOW: `0' - декартова система
+     (нет преобразования координат, наиболее быстрая); `1' - полярные
+     координаты x_n=x*cos(y),y_n=x*sin(y), z_n=z; `2' - сферические
+     координаты x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y);
+     `3' - параболические координаты x_n=x*y, y_n=(x*x-y*y)/2, z_n=z;
+     `4' - Paraboloidal coordinates x_n=(x*x-y*y)*cos(z)/2,
+     y_n=(x*x-y*y)*sin(z)/2, z_n=x*y; `5' - Oblate coordinates
+     x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z),
+     z_n=sinh(x)*sin(y); `6' - Prolate coordinates
+     x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z),
+     z_n=cosh(x)*cos(y); `7' - эллиптические координаты
+     x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z; `8' - тороидальные
+     координаты x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)),
+     y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y));
+     `9' - бисферические координаты x_n=sin(y)*cos(z)/(cosh(x)-cos(y)),
+     y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y));
+     `10' - биполярные координаты x_n=sinh(x)/(cosh(x)-cos(y)),
+     y_n=sin(y)/(cosh(x)-cos(y)), z_n=z.
+
+ -- Команда MGL: caxis `z1 z2'
+     Задает масштаб цветовой шкалы (c-координаты). Эти значения
+     используются для определения цвета поверхностей и прочих 2D и 3D
+     графиков. Начальный диапазон равен [-1, 1].
+
+ -- Команда MGL: origin `x0 y0 [z0=nan]'
+     Задает центр пересечения осей координат. Если одно из значений
+     равно `nan', то выбрается оптимальное положение осей координат по
+     этому направлению.
+
+ -- Команда MGL: ternary `val'
+     Задает рисование треугольных (Ternary) осей координат. Это
+     специальный тип графика для 3 зависимых координат (компонент) A,
+     B, C таких, что A+B+C=1. MathGL использует только 2 независимые
+     координаты A=x и B=y поскольку их достаточно для построения всех
+     графиков. При этом третья координата z является независимым
+     параметром для построения линий уровня, поверхностей и т.д. См.
+     раздел *note Ternary plot sample::, для примеров кода и графика.
+
+ -- Команда MGL: xrange dat [`add=off fact=0']
+ -- Команда MGL: yrange dat [`add=off fact=0']
+ -- Команда MGL: zrange dat [`add=off fact=0']
+ -- Команда MGL: crange dat [`add=off fact=0']
+     Задает диапазон изменения x-,y-,z-,c- координат как минимальное и
+     максимальное значение массива DAT. Параметр ADD указывает
+     добавлять новый диапазон к существующему или заменять его.
+     Параметр FACT дополнительно расширяет диапазон на величину
+     (MAX-MIN)*FACT.
+
+ -- Команда MGL: xrange `x1 x2'
+ -- Команда MGL: yrange `x1 x2'
+ -- Команда MGL: zrange `x1 x2'
+ -- Команда MGL: crange `x1 x2'
+     Задает диапазон изменения x-,y-,z-,c- координат. См. также *note
+     axis::.
+
+ -- Команда MGL: xtick `val [sub=0 org=nan]'
+ -- Команда MGL: ytick `val [sub=0 org=nan]'
+ -- Команда MGL: ztick `val [sub=0 org=nan]'
+ -- Команда MGL: ctick `val'
+     Задает шаг меток осей VAL, число подметок NS и начальное положение
+     меток ORG. Переменная VAL задает шаг меток (если положительна) или
+     их число на оси (если отрицательна). Нулевое значение задает
+     логарифмические метки. Если ORG=`NAN', то используется значение из
+     *note origin::.
+
+ -- Команда MGL: xtick 'templ'
+ -- Команда MGL: ytick 'templ'
+ -- Команда MGL: ztick 'templ'
+ -- Команда MGL: ctick 'templ'
+     Задает шаблоны для меток вдоль x-,y-,z-оси или colorbar. Шаблон
+     может содержать и символы TeX. Если XTT, YTT, ZTT, CTT=`''', то
+     используется шаблон по умолчанию (в простейшем случае `%.2g').
+     Установка шаблона выключает автоматическое улучшение вида меток.
+
+ -- Команда MGL: xtick `val1' 'lbl1' [`val2' 'lbl2' ...]
+ -- Команда MGL: ytick `val1' 'lbl1' [`val2' 'lbl2' ...]
+ -- Команда MGL: ztick `val1' 'lbl1' [`val2' 'lbl2' ...]
+     Задает явное положение VAL и подписи LBL для меток вдоль оси.
+     Метки могут содержать и символы TeX.
+
+ -- Команда MGL: adjust ['dir'='xyzc']
+     Автоматически задает шаг меток осей, число подметок и начальное
+     положение меток для осей координат DIR в виде наиболее удобном для
+     человека.
+
+
+File: mathgl_ru.info,  Node: Transformation matrix (MGL),  Next: Export to file (MGL),  Prev: Axis settings (MGL),  Up: MGL interface
+
+8.3 Матрица преобразования (MGL)
+=====================================================
+
+Эти команды контролируют где и как график будет расположен. Существует
+определенный порядок вызова этих функций для лучшего вида графика.
+Вначале должны вызываться команды *note subplot:: или *note inplot::
+для указания местоположения вывода. После них - команды вращения *note
+rotate:: и сжатия *note aspect::. И наконец любые другие функции для
+рисования графика. Вместо вращения графика можно вызвать команды *note
+columnplot:: для расположения графиков в столбец одного над другим или
+*note stickplot:: для расположения в линейку.
+
+ -- Команда MGL: subplot `nx ny m [dx=0 dy=0]'
+     Помещает последующий вывод в M-ую ячейку сетки размером NX*NY от
+     всего рисунка. Функция сбрасывает матрицу трансформации (повороты
+     и сжатие графика) и должна вызываться первой для создания
+     "подграфика". С эстетической точки зрения не рекомендуется
+     вызывать эту функцию с различными (или не кратными) размерами
+     сетки. Ячейка может быть дополнительно сдвинута относительно
+     своего обычного положения на относительный размер DX, DY.
+
+ -- Команда MGL: subplot `nx ny m' 'style'
+     Аналогично предыдущему, но место для осей/colorbar резервируется
+     только если строка STYLE содержит: `L' или `<' - с левого края,
+     `R' или `>' - с правого края, `A' или `^' - с верхнего края, `U'
+     или `_' - с нижнего края.
+
+ -- Команда MGL: inplot `x1 x2 y1 y2 [rel=off]'
+     Помещает последующий вывод в прямоугольную область [X1, X2]*[Y1,
+     Y2] (исходный размер [0,1]*[0,1]). Эта функция позволяет поместить
+     график в произвольную область рисунка. Если параметр REL=`on', то
+     используется позиция относительно текщего *note subplot:: (или
+     *note inplot:: с REL=`off'). Функция сбрасывает матрицу
+     трансформации (повороты и сжатие графика) и должна вызываться
+     первой для создания "подграфика".
+
+ -- Команда MGL: columnplot `num ind [d=0]'
+     Помещает последующий вывод в IND-ую строку столбца из NUM строк.
+     Положение столбца выбирается относительно последнего вызова *note
+     subplot:: (или *note inplot:: с REL=`off'). Параметр D задает
+     дополнительный зазор между строк. См. раздел *note ColumnPlot
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: stickplot `num ind tet phi'
+     Помещает последующий вывод в IND-ую ячейку "бруска" из NUM ячеек.
+     При этом сам брусок повернут на углы TET, PHI. Положение
+     выбирается относительно последнего вызова *note subplot:: (или
+     *note inplot:: с REL=`off'). См. раздел *note StickPlot sample::,
+     для примеров кода и графика.
+
+ -- Команда MGL: rotate `tetz tetx [tety=0]'
+     Вращает систему координат относительно осей {x, z, y}
+     последовательно на углы TETX, TETZ, TETY.
+
+ -- Команда MGL: rotate `tet x y z'
+     Вращает систему координат относительно вектора {X, Y, Z} на угол
+     TET.
+
+ -- Команда MGL: aspect `ax ay [az=1]'
+     Устанавливает соотношение размеров осей в отношении AX:AY:AZ. Для
+     лучшего вида следует вызывать после функции *note rotate::.
+
+ -- Команда MGL: perspective `val'
+     Добавляет (включает) перспективу для графика. Параметр val ~
+     1/z_{eff} \in [0,1). По умолчанию (`val=0') перспектива отключена.
+
+
+File: mathgl_ru.info,  Node: Export to file (MGL),  Next: Primitives drawing (MGL),  Prev: Transformation matrix (MGL),  Up: MGL interface
+
+8.4 Экспорт в файл (MGL)
+====================================
+
+ -- Команда MGL: write 'fname' [`solid=off']
+     Экспортирует текущий кадр в файл 'fname' (тип определяется по
+     расширению). Параметр SOLID задает вывод картинки на текущем фоне
+     (обычно белом) или полупрозрачной. Если 'fname'=", то используется
+     имя `frame####.jpg', где `####' - текущий номер кадра.
+
+ -- Команда MGL: setsize `w h'
+     Изменяет размер картинки в пикселях. Функция должна вызываться
+     *перед* любыми функциями построения потому что полностью очищает
+     содержимое рисунка. В некоторых программах исполнение этой команды
+     может запрещено.
+
+
+File: mathgl_ru.info,  Node: Primitives drawing (MGL),  Next: Text printing (MGL),  Prev: Export to file (MGL),  Up: MGL interface
+
+8.5 Рисование примитивов
+===========================================
+
+Эти команды рисуют рисуют простые объекты типа линий, точек, сфер,
+капель, конусов, и т.д.
+
+ -- Команда MGL: clf
+     Очищает рисунок и заполняет его цветом по умолчанию (обычно белым).
+
+ -- Команда MGL: ball `x y' ['col'='r']
+ -- Команда MGL: ball `x y z' ['col'='r']
+     Рисует точку (шарик) с координатами {X, Y, Z} и цветом COL.
+
+ -- Команда MGL: line `x1 y1 x2 y2' ['stl'="]
+ -- Команда MGL: line `x1 y1 z1 x2 y2 z2' ['stl'="]
+     Рисует геодезическую линию (декартовых координатах - прямую) из
+     точки {X1,Y1,Z1} в {X2,Y2,Z2} использую стиль линии STL. Кривая
+     рисуется даже если часть ее лежит вне диапазона осей координат.
+
+ -- Команда MGL: curve `x1 y1 dx1 dy1 x2 y2 dx2 dy2' ['stl'="]
+ -- Команда MGL: curve `x1 y1 z1 dx1 dy1 dz1 x2 y2 z2 dx2 dy2 dz2'
+          ['stl'="]
+     Рисует кривую Безье из точки {X1,Y1,Z1} в {X2,Y2,Z2} использую
+     стиль линии STL. Касательные в точках пропорциональны
+     {DX1,DY1,DZ1}, {DX2,DY2,DZ2}. Кривая рисуется даже если часть ее
+     лежит вне диапазона осей координат.
+
+ -- Команда MGL: facex `x0 y0 z0 wy wz' ['stl'=" `d1=0 d2=0']
+ -- Команда MGL: facey `x0 y0 z0 wx wz' ['stl'=" `d1=0 d2=0']
+ -- Команда MGL: facez `x0 y0 z0 wx wy' ['stl'=" `d1=0 d2=0']
+     Рисует закрашенный прямоугольник (грань) перпендикулярно оси
+     [x,y,z] в точке {X0, Y0, Z0} цветом STL и шириной WX, WY, WZ вдоль
+     соответствующего направления. При этом цвет может быть один для
+     всей грани, или различным для разных вершин если указаны все 4
+     цвета (полезно для градиента цвета, например `wwrr'). Параметры
+     D1!=0, D2!=0 задают дополнительный сдвиг последней точки (т.е.
+     рисуют четырехугольник). Грань будет нарисована даже если часть ее
+     лежит вне диапазона осей координат.
+
+ -- Команда MGL: sphere `x0 y0 r' ['col'='r']
+ -- Команда MGL: sphere `x0 y0 z0 r' ['col'='r']
+     Рисует сферу радиуса R с центром в точке {X, Y, Z} цветом STL.
+
+ -- Команда MGL: drop `x0 y0 dx dy r' ['col'='b' `sh=1 asp=1']
+ -- Команда MGL: drop `x0 y0 z0 dx dy dz r' ['col'='b' `sh=1 asp=1']
+     Рисует каплю радиуса R в точке {X0,Y0,Z0} вытянутую вдоль
+     направления {DX,DY,DZ} цветом COL. Параметр SH определяет степень
+     вытянутости: `0' - сфера, `1' - классическая капля. Параметр ASP
+     определяет относительную ширину капли (аналог "эллиптичности" для
+     сферы). См. раздел *note Drops sample::, для примеров кода и
+     графика.
+
+ -- Команда MGL: cone `x1 y1 z1 x2 y2 z2 r1' [`r2=-1' 'stl'="
+          `edge=off']
+     Рисует трубу (или усеченный конус если EDGE=`off') между точками
+     {X1,Y1,Z1}, {X2,Y2,Z2} с радиусами на концах R1, R2. Если R2<0, то
+     полагается R2=R1. Цвет конуса задается строкой STL.
+
+ -- Команда MGL: rect `x1 y1 x2 y2' ['st'="]
+ -- Команда MGL: rect `x1 y1 z1 x2 y2 z2' ['st'="]
+     Рисует закрашенный прямоугольник (грань) с противоположными
+     вершинами в точках {X1,Y1,Z1}, {X2,Y2,Z2} цветом STL. При этом
+     цвет может быть один для всей грани, или различным для разных
+     вершин если указаны все 4 цвета (полезно для градиента цвета,
+     например `wwrr'). Грань будет нарисована даже если часть ее лежит
+     вне диапазона осей координат.
+
+
+File: mathgl_ru.info,  Node: Text printing (MGL),  Next: Axis and Colorbar (MGL),  Prev: Primitives drawing (MGL),  Up: MGL interface
+
+8.6 Вывод текста (MGL)
+=================================
+
+Команды для вывода текста позволяют вывести строку текста в
+произвольном месте рисунка, в произвольном направлении и вдоль
+произвольной кривой. Можно использовать произвольное начертание шрифта
+и многие ТеХ-ие команды (детальнее *note Font styles::). Аргумент SIZE
+определяет размер текста: размер шрифта если положителен или
+относительный размер (=-SIZE*FONTSIZE) если отрицателен.
+
+   Параметры шрифта задаются строкой, которая может содержать символы
+стиля (`rbiwou') и/или выравнивания (`LRC'). Также строка может
+содержать символы цвета `wkrgbcymhRGBCYMHW' (*note Line styles::) после
+символа `:'. Стили шрифта: `r' - прямой, `i' - курсив, `b' - жирный,
+`w' - контурный, `o' - надчеркнутый, `u' - подчеркнутый. По умолчанию
+используется прямой шрифт. Типы выравнивания: `L' - по левому краю (по
+умолчанию), `C' - по центру, `R' - по правому краю. Например, строка
+`iC:b' соответствует курсиву синего цвета с выравниванием по центру. По
+умолчанию используются параметры, определенные командой *note font::.
+
+   Если строка содержит символы `aA', то текст выводится в абсолютных
+координатах (полагаются в диапазоне [0,1]). При этом используются
+координаты относительно рисунка (если указано `A') или относительно
+последнего *note subplot::/*note inplot:: (если указано `a').
+
+ -- Команда MGL: text `x y' 'text' ['fnt'=" `size=-1.4']
+ -- Команда MGL: text `x y z' 'text' ['fnt'=" `size=-1.4']
+     Выводит строку TEXT от точки {X,Y,Z} шрифтом FNT и размером SIZE.
+
+ -- Команда MGL: text `x y dx dy' 'text' [`size=-1.4']
+ -- Команда MGL: text `x y z dx dy dz' 'text' [`size=-1.4']
+     Выводит строку TEXT от точки {X,Y,Z} вдоль направления {DX,DY,DZ}
+     шрифтом FNT и размером SIZE.
+
+ -- Команда MGL: text ydat 'text' ['fnt'=" `size=-1 zval=nan']
+ -- Команда MGL: text xdat ydat 'text' ['fnt'=" `size=-1 zval=nan']
+ -- Команда MGL: text xdat ydat zdat 'text' ['fnt'=" `size=-1']
+     Выводит строку TEXT вдоль кривой {XDAT[i], YDAT[i], ZDAT[i]}
+     шрифтом FONT. Строка FONT может содержать символы: `t' для вывода
+     текста под кривой (по умолчанию), или `T' для вывода текста над
+     кривой. Если массив XDAT не указан, то используется массив со
+     значениями равно распределенными вдоль оси x. Если массив ZDAT не
+     указан, то используется ZDAT[i] = ZVAL. См. раздел *note Text
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: title 'text' ['fnt'=" `size=-2']
+     Выводит строку TEXT как заголовок (сверху рисунка). Может
+     использоваться в любом месте (даже внутри *note subplot::).
+
+ -- Команда MGL: fgets `x y' 'fname' [`n=0' 'fnt'=" `size=-1.4']
+ -- Команда MGL: fgets `x y z' 'fname' [`n=0' 'fnt'=" `size=-1.4']
+     Выводит N-ую строку файла FNAME от точки {X,Y,Z} шрифтом FNT и
+     размером SIZE.
+
+
+File: mathgl_ru.info,  Node: Axis and Colorbar (MGL),  Next: Legend (MGL),  Prev: Text printing (MGL),  Up: MGL interface
+
+8.7 Оси и Colorbar (MGL)
+============================
+
+Эти команды рисуют объекты для "измерения" типа осей координат,
+цветовой таблицы (colorbar), сетку по осям, обрамляющий параллелепипед
+и подписи по осям координат. См. также *note Axis settings (MGL)::.
+
+ -- Команда MGL: axis ['dir'='xyz' `adjust=off']
+     Рисует оси координат и метки на них (*note Axis settings (MGL)::)
+     в направлениях, указанных строкой DIR. Если строка содержит символ
+     `_', то подписи меток отображаться не будут. Шрифт подписей
+     определяется командой *note font::. Метки будут "подогнаны" если
+     ADJUST=`on' (с помощью вызова `adjust 'dir'').
+
+ -- Команда MGL: colorbar ['sch'=" `pos=0']
+     Рисует полосу соответствия цвета и числовых значений (colorbar)
+     для цветовой схемы SCH (используется текущая для `sch=''') с краю
+     от графика. Параметр POS задает местоположение: `0' - справа (по
+     умолчанию), `1' - слева, `2' - сверху, `3' - снизу. Если строка
+     SCH содержит `<>^_', то параметр POS определяется как: `pos=0' для
+     `>' (справа), `pos=1' для `<' (слева), `pos=2' для `^' (сверху),
+     `pos=3' для `_' (снизу). Если строка содержит `A', то используются
+     абсолютные координаты (относительно рисунка). См. раздел *note
+     Dens sample::, для примеров кода и графика.
+
+ -- Команда MGL: colorbar vdat ['sch'=" `pos=0']
+     Аналогично предыдущему, но для цветовой схемы без сглаживания с
+     заданными значениями VDAT. См. раздел *note ContD sample::, для
+     примеров кода и графика.
+
+ -- Команда MGL: colorbar 'sch' `pos x y w h'
+     Аналогично первому, но в произвольном месте графика {X, Y}
+     (полагаются в диапазоне [0,1]). Параметры W, H задают
+     относительную ширину и высоту colorbar.
+
+ -- Команда MGL: grid ['dir'='xyz' 'pen'='B']
+     Рисует линии сетки в направлениях перпендикулярным DIR. Шаг сетки
+     такой же как у меток осей координат. Стиль линий задается
+     параметром PEN (по умолчанию - сплошная темно синяя линия `B-').
+
+ -- Команда MGL: box ['stl'='k' `ticks=on']
+     Рисует ограничивающий параллелепипед цветом 'stl'. При `ticks=on'
+     рисуются метки в соответствии с текущими настройками осей
+     координат *note axis::.
+
+ -- Команда MGL: xlabel 'text' [`pos=0 size=-1.4 shift=0']
+ -- Команда MGL: ylabel 'text' [`pos=0 size=-1.4 shift=0']
+ -- Команда MGL: zlabel 'text' [`pos=0 size=-1.4 shift=0']
+ -- Команда MGL: tlabel 'text' [`pos=0 size=-1.4 shift=0']
+     Выводит подпись TEXT для x-,y-,z-,t-оси (где `t' - "тернарная" ось
+     t=1-x-y). Параметр POS задает положение подписи: при POS=0 - по
+     центру оси, при POS>0 - около максимальных значений, при POS<0 -
+     около минимальных значений. Параметр SIZE задает размер шрифта (по
+     умолчанию в 1.4 раза больше чем у меток). *Note Text printing
+     (MGL)::.
+
+
+
+Local Variables:
+coding: utf-8
+End:
diff --git a/texinfo/mathgl_ru.info-3 b/texinfo/mathgl_ru.info-3
new file mode 100644
index 0000000..04e55fc
--- /dev/null
+++ b/texinfo/mathgl_ru.info-3
@@ -0,0 +1,7146 @@
+This is mathgl_ru.info, produced by makeinfo version 4.13 from
+mathgl_ru.texi.
+
+Это документация для MathGL (версии 1.11) - библиотеки классов и
+функций для построения научной графики. Пожалуйста сообщайте о любых
+ошибках в этом руководстве на <mathgl.abalakin at gmail.org>.
+
+   Copyright (C) 2009 Алексей Балакин.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with the Front-Cover Texts
+     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+     below.  A copy of the license is included in the section entitled
+     "GNU Free Documentation License."
+
+     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+     and modify this GNU manual.  Buying copies from the FSF supports
+     it in developing GNU and promoting software freedom."
+
+
+File: mathgl_ru.info,  Node: Legend (MGL),  Next: 1D plotting (MGL),  Prev: Axis and Colorbar (MGL),  Up: MGL interface
+
+8.8 Легенда (MGL)
+========================
+
+Эти команды обеспечивают рисование легенды графика (полезно для *note
+1D plotting::). Запись в легенде состоит из двух строк: одна для стиля
+линии и маркеров, другая с текстом описания (с включенным разбором
+TeX-их команд), накапливаемые во внутренние массивы с помощью команды
+*note addlegend:: или опции *note legend::. Положение легенды можно
+задать автоматически или вручную. Параметры FONT и SIZE задают стиль и
+размер шрифта. Параметр LLEN задает относительную ширину примера линии.
+Ели стиль линии пустой, то соответствующий текст печатается без
+отступа. Если строка FONT содержит символ `A', то координаты легенды
+считаются относительно картинки (а не текущего subplot). См. раздел
+*note Legend sample::, для примеров кода и графика.
+
+ -- Команда MGL: legend [`pos=3' 'fnt'='rL' `size=-1 llen=0.1']
+     Рисует легенду из накопленных записей шрифтом FNT размером SIZE.
+     Параметр POS задает положение легенды: `0' - в нижнем левом углу,
+     `1' - нижнем правом углу, `2' - верхнем левом углу, `3' - верхнем
+     правом углу (по умолчанию).
+
+ -- Команда MGL: legend `x y' ['fnt'='rL' `size=-1 llen=0.1']
+     Рисует легенду из накопленных записей шрифтом FONT размером SIZE.
+     Положение легенды задается параметрами X, Y, которые полагаются
+     нормированными в диапазоне [0,1].
+
+ -- Команда MGL: addlegend 'text' 'stl'
+     Добавляет описание TEXT кривой со стилем STL (*note Line styles::)
+     во внутренний массив записей легенды. Максимальное число записей
+     100.
+
+ -- Команда MGL: clearlegend
+     Очищает внутренний массив записей легенды.
+
+ -- Команда MGL: legendbox `val'
+     Включает/выключает рисование прямоугольника вокруг легенды. По
+     умолчанию (=`on') прямоугольник рисуется.
+
+ -- Команда MGL: legendmarks `val'
+     Задает число маркеров в легенде. По умолчанию используется 1
+     маркер.
+
+
+File: mathgl_ru.info,  Node: 1D plotting (MGL),  Next: 2D plotting (MGL),  Prev: Legend (MGL),  Up: MGL interface
+
+8.9 1D графики (MGL)
+===========================
+
+Эти команды строят графики для одномерных (1D) массивов. Одномерными
+считаются массивы, зависящие только от одного параметра (индекса)
+подобно кривой в параметрической форме {x(i),y(i),z(i)}, i=1...n. Есть
+5 основных типов 1D графиков: линия (*note plot::), линия с заполнением
+(*note area::), ступеньки (*note step::), прямоугольники (*note bars::,
+*note barh::) и вертикальные линии (*note stem::). Все эти типы
+графиков имеют похожий интерфейс. Есть версии для рисования в
+пространстве и на плоскости. В последнем случае имеется возможность
+использования только одного массива. Стиль линии и маркеров указывается
+строковой переменной. Если она равна `'''. Кроме того, есть еще
+несколько типов графиков для одномерных массивов, имеющих другой
+интерфейс и вид: поверхность вращения кривой (*note torus::), диаграмма
+(*note chart::), размер ошибки (*note error::), маркеры переменного
+размера (*note mark::), трубками (*note tube::) и т.д. См. раздел *note
+1D plot sample::, для примеров кода и графика.
+
+   График рисуется для каждой строки если один из массивов матрица.
+Размер по 1-ой координате *должен быть одинаков* для всех массивов
+`xdat.nx=ydat.nx=zdat.nx'. Если массив XDAT не указан, то используется
+массив со значениями равно распределенными вдоль оси x. Если массив
+ZDAT не указан, то используется ZDAT[i] = ZVAL. Строка STL задает цвет
+и стиль линии и маркеров (*note Line styles::). По умолчанию (`stl=''')
+рисуется сплошная линия с текущим цветом из палитры.
+
+ -- Команда MGL: plot ydat ['stl'=" `zval=nan']
+ -- Команда MGL: plot xdat ydat ['stl'=" `zval=nan']
+ -- Команда MGL: plot xdat ydat zdat ['stl'="]
+     Рисует ломанную линию между точками {X[i], Y[i], Z[i]}. См. также
+     *note area::, *note step::, *note stem::, *note tube::, *note
+     mark::, *note error::, *note belt::, *note tens::. См. раздел
+     *note Plot sample::, для примеров кода и графика.
+
+ -- Команда MGL: radar adat ['stl'=" `r=-1']
+     Рисует radar chart, представляющий собой ломанную с вершинами на
+     радиальных линиях (типа ломанной в полярных координатах). График
+     рисуется для каждой строки если один из массивов матрица. Параметр
+     R задает дополнительный сдвиг данных (т.е. используется A+R вместо
+     A). Если `r<0', то `r=max(0, -min(a)'. Если STL содержит символ
+     `#', то также рисуется "сетка" (радиальные линии и круг для R).
+     См. также *note plot::. См. раздел *note Radar sample::, для
+     примеров кода и графика.
+
+ -- Команда MGL: tens ydat cdat ['stl'=" `zval=nan']
+ -- Команда MGL: tens xdat ydat cdat ['stl'=" `zval=nan']
+ -- Команда MGL: tens xdat ydat zdat cdat ['stl'="]
+     Рисует ломанную линию по точкам {X[i], Y[i], Z[i]} с цветом,
+     определяемым массивом C[i] (типа графика натяжений). См. также
+     *note plot::, *note mesh::, *note fall::. См. раздел *note Tens
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: area ydat ['stl'=" `zval=nan']
+ -- Команда MGL: area xdat ydat ['stl'=" `zval=nan']
+ -- Команда MGL: area xdat ydat zdat ['stl'="]
+     Рисует ломанную линию по точками {XDAT[i], YDAT[i], ZDAT[i]} и
+     закрашивает ее вниз до плоскости осей координат. Можно
+     использовать градиентное закрашивание если число указанных цветов
+     в STL равно удвоенному числу кривых для построения. Если строка
+     содержит символ `a', то линии рисуются одна поверх другой (с
+     суммированием) - того же эффекта можно достичь вызовом `cumsum
+     ydat 'y'' перед построением графика. См. также *note plot::, *note
+     bars::, *note stem::, *note region::. См. раздел *note Area
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: region fdat gdat ['stl'=" `inside=off']
+ -- Команда MGL: region xdat fdat gdat ['stl'=" `inside=off']
+     Закрашивает область между 2 кривыми {XDAT[i], FDAT[i]} и {XDAT[i],
+     GDAT[i]}. При  `inside=off' закрашивается только область y1<y<y2,
+     в противном случае также будет закращена область y2<y<y1. Можно
+     использовать градиентное закрашивание если число указанных цветов
+     STL равно удвоенному числу кривых для построения. См. также *note
+     area::, *note bars::, *note stem::. См. раздел *note Region
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: stem ydat ['stl'=" `zval=nan']
+ -- Команда MGL: stem xdat ydat ['stl'=" `zval=nan']
+ -- Команда MGL: stem xdat ydat zdat ['stl'="]
+     Рисует вертикальные линии из точек {XDAT[i], YDAT[i], ZDAT[i]} до
+     плоскости осей координат. См. также *note area::, *note bars::,
+     *note plot::, *note mark::. См. раздел *note Stem sample::, для
+     примеров кода и графика.
+
+ -- Команда MGL: bars ydat ['stl'=" `zval=nan']
+ -- Команда MGL: bars xdat ydat ['stl'=" `zval=nan']
+ -- Команда MGL: bars xdat ydat zdat ['stl'="]
+     Рисует вертикальные полосы (прямоугольники) из точек {XDAT[i],
+     YDAT[i], ZDAT[i]} до плоскости осей координат. Если строка STL
+     содержит символ `a', то линии рисуются одна поверх другой. Если
+     строка содержит символ `f', то рисуется график типа waterfall для
+     определения кумулятивного эффекта последовательности положительных
+     и отрицательных значений. Можно использовать разные цвета для
+     положительных и отрицательных значений если число указанных цветов
+     равно удвоенному числу кривых для построения. См. также *note
+     barh::, *note area::, *note stem::, *note chart::. См. раздел
+     *note Bars sample::, для примеров кода и графика.
+
+ -- Команда MGL: barh xdat ['stl'=" `zval=nan']
+ -- Команда MGL: barh ydat xdat ['stl'=" `zval=nan']
+     Рисует горизонтальные полосы (прямоугольники) из точек {XDAT[i],
+     YDAT[i]} до плоскости оси y. Если массив YDAT не указан, то
+     используется массив со значениями равно распределенными вдоль оси
+     y. Если строка STL содержит символ `a', то линии рисуются одна
+     поверх другой. Если строка содержит символ `f', то рисуется график
+     типа waterfall для определения кумулятивного эффекта
+     последовательности положительных и отрицательных значений. Можно
+     использовать разные цвета для положительных и отрицательных
+     значений если число указанных цветов равно удвоенному числу кривых
+     для построения. См. также *note bars::. См. раздел *note Barh
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: chart adat ['col'="]
+     Рисует цветные полосы (пояса) для массива данных ADAT. Число полос
+     равно числу строк ADAT (равно A.NY). Цвет полос поочередно
+     меняется из цветов указанных в COL или в палитре (если `col=''').
+     Пробел в цветах соответствует прозрачному "цвету", т.е.
+     соответствующая полоса не рисуется. Ширина полосы пропорциональна
+     значению элемента в ADAT. График строится только для массивов не
+     содержащих отрицательных значений. Если строка COL содержит `#',
+     то рисуется также черная граница полос. График выглядит лучше в 3d
+     (после вращения системы координат) и/или в полярной системе
+     координат (становится Pie chart). См. раздел *note Chart sample::,
+     для примеров кода и графика.
+
+ -- Команда MGL: step ydat ['stl'=" `zval=nan']
+ -- Команда MGL: step xdat ydat ['stl'=" `zval=nan']
+ -- Команда MGL: step xdat ydat zdat ['stl'="]
+     Рисует ступеньки для точек массива {XDAT[i], YDAT[i], ZDAT[i]}.
+     См. также *note plot::, *note stem::, *note tile::, *note boxs::.
+     См. раздел *note Step sample::, для примеров кода и графика.
+
+ -- Команда MGL: torus zdat ['stl'="]
+ -- Команда MGL: torus rdat zdat ['stl'="]
+     Рисует поверхность вращения кривой {RDAT[i], ZDAT[i], ZDAT[i]}
+     относительно оси *note axialdir::. Если массив RDAT не указан, то
+     используется массив со значениями равно распределенными вдоль оси
+     x. См. также *note plot::, *note axial::. См. раздел *note Torus
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: tube ydat rdat ['stl'=" `zval=nan']
+ -- Команда MGL: tube ydat `rval' ['stl'=" `zval=nan']
+ -- Команда MGL: tube xdat ydat rdat ['stl'=" `zval=nan']
+ -- Команда MGL: tube xdat ydat `rval' ['stl'=" `zval=nan']
+ -- Команда MGL: tube xdat ydat zdat rdat ['stl'="]
+ -- Команда MGL: tube xdat ydat zdat `rval' ['stl'="]
+     Рисует трубу радиуса RDAT[i] (or RVAL) вдоль кривой между точками
+     {XDAT[i], YDAT[i], ZDAT[i]}. См. также *note plot::. См. раздел
+     *note Tube sample::, для примеров кода и графика.
+
+ -- Команда MGL: mark ydat rdat ['stl'=" `zval=nan']
+ -- Команда MGL: mark xdat ydat rdat ['stl'=" `zval=nan']
+ -- Команда MGL: mark xdat ydat zdat rdat ['stl'="]
+     Рисует маркеры размером RDAT[i]*`marksize' в точках {XDAT[i],
+     YDAT[i], ZDAT[i]}. Для рисования маркеров одинакового размера
+     можно использовать функцию `plot' с невидимой линией (со стилем
+     содержащим ` '). См. также *note plot::, *note textmark::, *note
+     stem::, *note error::. См. раздел *note Mark sample::, для
+     примеров кода и графика.
+
+ -- Команда MGL: textmark ydat 'txt' ['stl'=" `zval=nan']
+ -- Команда MGL: textmark ydat rdat 'txt' ['stl'=" `zval=nan']
+ -- Команда MGL: textmark xdat ydat rdat 'txt' ['stl'=" `zval=nan']
+ -- Команда MGL: textmark xdat ydat zdat rdat 'txt' ['stl'="]
+     Рисует текст TXT как маркер с размером пропорциональным
+     RDAT[i]*`marksize' в точках {XDAT[i], YDAT[i], ZDAT[i]}. Если
+     массив RDAT не указан, то полагается RDAT[i] = 1. См. также *note
+     plot::, *note mark::, *note stem::. См. раздел *note TextMark
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: error ydat yerr ['stl'=" `zval=nan']
+ -- Команда MGL: error xdat ydat yerr ['stl'=" `zval=nan']
+ -- Команда MGL: error xdat ydat xerr yerr ['stl'=" `zval=nan']
+     Рисует размер ошибки {XERR[i], YERR[i]} в точках {XDAT[i],
+     YDAT[i]} на плоскости Z = ZVAL. Такой график полезен для
+     отображения ошибки эксперимента, вычислений и пр. См. также *note
+     plot::. См. раздел *note Error sample::, для примеров кода и
+     графика.
+
+ -- Команда MGL: boxplot adat ['stl'=" `zval=nan']
+ -- Команда MGL: boxplot xdat adat ['stl'=" `zval=nan']
+     Рисует boxplot (называемый также как box-and-whisker diagram или
+     как "ящик с усами") в точках XDAT[i] на плоскости Z = ZVAL. Это
+     график, компактно изображающий распределение вероятностей
+     ADAT[i,j] (минимум, нижний квартиль (Q1), медиана (Q2), верхний
+     квартиль (Q3) и максимум) вдоль второго (j-го) направления. См.
+     также *note plot::, *note error::, *note bars::. См. раздел *note
+     BoxPlot sample::, для примеров кода и графика.
+
+
+File: mathgl_ru.info,  Node: 2D plotting (MGL),  Next: 3D plotting (MGL),  Prev: 1D plotting (MGL),  Up: MGL interface
+
+8.10 2D графики (MGL)
+============================
+
+Эти команды строят графики для двумерных (2D) массивов. Двумерными
+считаются массивы, зависящие только от двух параметров (индексов)
+подобно матрице f(x_i,y_j), i=1...n, j=1...m. Есть несколько основных
+типов 2D графиков: сплошная поверхность (*note surf::), сетчатая
+поверхность (*note mesh::), поверхность из ящиков (*note boxs::),
+поверхность из плиток (*note tile::), водопад (*note fall::), ленточки
+(*note belt::), график плотности (*note dens::), линии уровня (*note
+cont::), линии уровня с заполнением (*note contf::) и результат их
+вращения (*note axial::). В функциях *note cont::, *note contf:: и
+*note axial:: значения уровней можно задавать автоматически и вручную.
+Можно также нарисовать сетку (*note grid::) по массиву данных для
+улучшения вида графика плотности или линий уровня. Каждый тип графика
+имеет похожий интерфейс. Есть версия для рисования одного массива с
+автоматическими координатами и версия для параметрически заданной
+поверхности. См. раздел *note 1D plot sample::, для примеров кода и
+графика.
+
+   Строка SCH задает цветовую схему (*note Color scheme::. Предыдущая
+цветовая схема используется по умолчанию. Младшие размерности массивов
+XDAT, YDAT, ZDAT должны быть одинаковы `xdat.nx=zdat.nx &&
+ydat.nx=zdat.ny' или `xdat.nx=ydat.nx=zdat.nx &&
+xdat.ny=ydat.ny=zdat.ny'. Массивы XDAT и YDAT могут быть векторами (не
+матрицами как ZDAT). Если массивы XDAT, YDAT не указаны, то
+используются массивы со значениями равно распределенными вдоль осей x,
+y. График строится для каждого z среза данных.
+
+ -- Команда MGL: surf zdat ['sch'="]
+ -- Команда MGL: surf xdat ydat zdat ['sch'="]
+     Рисует параметрически заданную поверхность {XDAT[i,j], YDAT[i,j],
+     ZDAT[i,j]}. Если SCH содержит `#', то на поверхности рисуется
+     сетка. См. также *note mesh::, *note dens::, *note belt::, *note
+     tile::, *note boxs::, *note surfc::, *note surfa::. См. раздел
+     *note Surf sample::, для примеров кода и графика.
+
+ -- Команда MGL: mesh zdat ['sch'="]
+ -- Команда MGL: mesh xdat ydat zdat ['sch'="]
+     Рисует сетчатую поверхность, заданную параметрически {XDAT[i,j],
+     YDAT[i,j], ZDAT[i,j]}. См. также *note surf::, *note fall::, *note
+     meshnum::, *note cont::, *note tens::. См. раздел *note Mesh
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: fall zdat ['sch'="]
+ -- Команда MGL: fall xdat ydat zdat ['sch'="]
+     Рисует водопад для параметрически заданной поверхности {XDAT[i,j],
+     YDAT[i,j], ZDAT[i,j]}. График удобен для построения нескольких
+     кривых, сдвинутых вглубь друг относительно друга. Если SCH
+     содержит `x', то линии рисуются вдоль x-оси (по умолчанию линии
+     рисуются вдоль y-оси). См. также *note belt::, *note mesh::, *note
+     tens::, *note meshnum::. См. раздел *note Fall sample::, для
+     примеров кода и графика.
+
+ -- Команда MGL: belt zdat ['sch'="]
+ -- Команда MGL: belt xdat ydat zdat ['sch'="]
+     Рисует ленточки для параметрически заданной поверхности
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. Если SCH содержит `x', то линии
+     рисуются вдоль x-оси (по умолчанию линии рисуются вдоль y-оси).
+     См. также *note fall::, *note surf::, *note plot::, *note
+     meshnum::. См. раздел *note Belt sample::, для примеров кода и
+     графика.
+
+ -- Команда MGL: boxs zdat ['sch'="]
+ -- Команда MGL: boxs xdat ydat zdat ['sch'="]
+     Рисует вертикальные ящики для параметрически заданной поверхности
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. См. также *note surf::, *note
+     dens::, *note tile::, *note step::. См. раздел *note Boxs
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: tile zdat ['sch'="]
+ -- Команда MGL: tile xdat ydat zdat ['sch'="]
+     Рисует плитки для параметрически заданной поверхности {XDAT[i,j],
+     YDAT[i,j], ZDAT[i,j]}. График может использоваться как 3d
+     обобщение *note step::. См. также *note surf::, *note boxs::,
+     *note step::, *note tiles::. См. раздел *note Tile sample::, для
+     примеров кода и графика.
+
+ -- Команда MGL: dens zdat ['sch'=" `zval=nan']
+ -- Команда MGL: dens xdat ydat zdat ['sch'=" `zval=nan']
+     Рисует график плотности для параметрически заданной поверхности
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z = ZVAL. Если SCH содержит
+     `#', то рисуется сетка. См. также *note surf::, *note cont::,
+     *note contf::, *note boxs::, *note tile::, `dens[xyz]'. См. раздел
+     *note Dens sample::, для примеров кода и графика.
+
+ -- Команда MGL: cont vdat zdat ['sch'=" `zval=nan']
+ -- Команда MGL: cont vdat xdat ydat zdat ['sch'=" `zval=nan']
+     Рисует линии уровня для параметрически заданной поверхности
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z = ZVAL (или при Z=VDAT[k]
+     если `zval==nan'). Линии уровня рисуются для Z=VDAT[k]. Если SCH
+     содержит `#', то рисуется сетка. Если SCH содержит `t' или `T', то
+     значения VDAT[k] будут выведены вдоль контуров над (или под)
+     кривой. См. также *note dens::, *note contf::, *note contd::,
+     *note axial::, `cont[xyz]'. См. раздел *note Cont sample::, для
+     примеров кода и графика.
+
+ -- Команда MGL: cont zdat ['sch'=" `num=7 zval=nan']
+ -- Команда MGL: cont xdat ydat zdat ['sch'=" `num=7 zval=nan']
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале цветовой шкалы (см., *note caxis::).
+
+ -- Команда MGL: contf vdat zdat ['sch'=" `zval=nan']
+ -- Команда MGL: contf vdat xdat ydat zdat ['sch'=" `zval=nan']
+     Рисует закрашенные линии (контуры) уровня для параметрически
+     заданной поверхности {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z =
+     ZVAL (или при Z=V[k] если `zval=nan'). Линии уровня рисуются для
+     Z=VDAT[k]. Если SCH содержит `#', то рисуется сетка. См. также
+     *note dens::, *note cont::, *note contd::, `contf[xyz]'. См.
+     раздел *note ContF sample::, для примеров кода и графика.
+
+ -- Команда MGL: contf zdat ['sch'=" `num=7 zval=nan']
+ -- Команда MGL: contf xdat ydat zdat ['sch'=" `num=7 zval=nan']
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале цветовой шкалы (см., *note caxis::).
+
+ -- Команда MGL: contd vdat zdat ['sch'=" `zval=nan']
+ -- Команда MGL: contd vdat xdat ydat zdat ['sch'=" `zval=nan']
+     Рисует закрашенные линии (контуры) уровня для параметрически
+     заданной поверхности {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z =
+     ZVAL (или при Z=V[k] если `zval==nan') цветами заданными явно.
+     Линии уровня рисуются для Z=VDAT[k]. Строка SCH задает цвет
+     контуров: цвет k-го контура определяется символом
+     `sch[k%strlen(sch)]'. См. также *note dens::, *note cont::, *note
+     contf::, `cont[xyz]'. См. раздел *note ContD sample::, для
+     примеров кода и графика.
+
+ -- Команда MGL: contd zdat ['sch'=" `num=7 zval=nan']
+ -- Команда MGL: contd xdat ydat zdat ['sch'=" `num=7 zval=nan']
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале цветовой шкалы (см., *note caxis::).
+
+ -- Команда MGL: axial vdat zdat ['sch'="]
+ -- Команда MGL: axial vdat xdat ydat zdat ['sch'="]
+     Рисует поверхность вращения линии уровня для параметрически
+     заданной поверхности {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. Линии
+     уровня рисуются для ZDAT[i,j]=VDAT[k]. Если SCH содержит `#', то
+     рисуется сетчатая поверхность. Если строка содержит символы `x',
+     `y' или `z', то ось вращения устанавливается в указанное
+     направление (по умолчанию вдоль оси *note axialdir::). См. также
+     *note cont::, *note contf::, *note torus::, *note surf3::. См.
+     раздел *note Axial sample::, для примеров кода и графика.
+
+ -- Команда MGL: axial zdat ['sch'=" `num=3']
+ -- Команда MGL: axial xdat ydat zdat ['sch'=" `num=3']
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале цветовой шкалы (см., *note caxis::).
+
+ -- Команда MGL: grad pdat ['sch'=" `num=5 zval=nan']
+ -- Команда MGL: grad xdat ydat pdat ['sch'=" `num=5 zval=nan']
+ -- Команда MGL: grad xdat ydat zdat pdat ['sch'=" `num=5']
+     Рисует линии градиента скалярного поля PDAT заданного
+     параметрически {XDAT[i,j], YDAT[i,j]} или {XDAT[i,j,k],
+     YDAT[i,j,k], ZDAT[i,j,k]}. Число линий пропорционально NUM. Линии
+     рисуются только с границ интервала при NUM<0. См. также *note
+     dens::, *note cont::, *note dens3::, *note cont3::, *note flow::.
+     См. раздел *note Grad sample::, для примеров кода и графика.
+
+ -- Команда MGL: grid2 zdat ['sch'=" `zval=nan']
+ -- Команда MGL: grid2 xdat ydat zdat ['sch'=" `zval=nan']
+     Рисует плоскую сету для параметрически заданной поверхности
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} при Z = ZVAL. См. также *note
+     dens::, *note cont::, *note contf::.
+
+
+File: mathgl_ru.info,  Node: 3D plotting (MGL),  Next: Dual plotting (MGL),  Prev: 2D plotting (MGL),  Up: MGL interface
+
+8.11 3D графики (MGL)
+============================
+
+Эти функции строят графики для трехмерных (3D) массивов. Трехмерными
+считаются массивы, зависящие от трех параметров (индексов) подобно
+матрице f(x_i,y_j,z_k), i=1...n, j=1...m, k=1...l. Есть 5 основных
+типов 3D графиков: поверхность постоянного уровня (*note surf3::),
+график плотности на срезе (DENS3), линии уровня на срезе (*note
+cont3::), закрашенные контуры уровня на срезе (*note contf3::) и график
+объемной прозрачности типа облака (*note cloud::). В функциях *note
+cont3::, *note contf3:: и *note surf3:: значения уровней можно задавать
+автоматически и вручную. Можно также нарисовать на срезе сетку (*note
+grid3::) по массиву данных для улучшения вида графика плотности или
+линий уровня. Каждый тип графика имеет похожий интерфейс. Есть версия
+для рисования одного массива с автоматическими координатами и версия
+для параметрически заданного массива. См. раздел *note 3D plot
+sample::, для примеров кода и графика.
+
+   Строка SCH задает цветовую схему (*note Color scheme::). Предыдущая
+цветовая схема используется по умолчанию. Массивы X, Y, Z могут быть
+векторами (не 3d массивами как A). Если массивы XDAT, YDAT, ZDAT не
+указаны, то используются массивы со значениями равно распределенными
+вдоль осей x, y, z.
+
+ -- Команда MGL: surf3 adat `val' ['sch'="]
+ -- Команда MGL: surf3 xdat ydat zdat adat `val' ['sch'="]
+     Рисует поверхность уровня для 3d массива, заданного параметрически
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) при
+     ADAT(x,y,z)=VAL. Если SCH содержит `#', то рисуется сетчатая
+     поверхность. См. также *note cloud::, *note dens3::, *note
+     surf3c::, *note surf3a::, *note axial::. См. раздел *note Surf3
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: surf3 adat ['sch'=" `num=5']
+ -- Команда MGL: surf3 xdat ydat zdat adat ['sch'=" `num=5']
+     Рисует NUM поверхностей уровня равномерно распределенных в
+     интервале цветовой шкалы (см. *note caxis::).
+
+ -- Команда MGL: dens3 adat 'dir' [`sval=-1' 'sch'="]
+ -- Команда MGL: dens3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="]
+     Рисует график плотности для 3d массива, заданного параметрически
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). График
+     рисуется на срезе SVAL в направлении DIR={`x', `y', `z'}. Если STL
+     содержит `#', то на срезе рисуется сетка. См. также *note cont3::,
+     *note contf3::, *note dens::, *note grid3::. См. раздел *note
+     Dens3 sample::, для примеров кода и графика.
+
+ -- Команда MGL: densa adat ['sch'="]
+ -- Команда MGL: densa xdat ydat zdat adat ['sch'="]
+     Рисует графики плотности на всех центральных срезах 3d данных.
+
+ -- Команда MGL: cont3 vdat adat 'dir' [`sval=-1' 'sch'="]
+ -- Команда MGL: cont3 vdat xdat ydat zdat adat 'dir' [`sval=-1'
+          'sch'="]
+     Рисует линии уровня для 3d массива, заданного параметрически
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). Линии рисуются
+     для значений из массива V на срезе SVAL в направлении DIR={`x',
+     `y', `z'}. Если STL содержит `#', то на срезе рисуется сетка. Если
+     SCH содержит `t' или `T', то значения VDAT[k] будут выведены вдоль
+     контуров над (или под) кривой. См. также *note dens3::, *note
+     contf3::, *note cont::, *note grid3::. См. раздел *note Cont3
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: cont3 adat 'dir' [`sval=-1' 'sch'=" `num=7']
+ -- Команда MGL: cont3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="
+          `num=7']
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале цветовой шкалы (см., *note caxis::).
+
+ -- Команда MGL: conta adat ['sch'=" `num=7']
+ -- Команда MGL: conta xdat ydat zdat adat ['sch'=" `num=7']
+     Рисует линии уровня на всех центральных срезах 3d данных.
+
+ -- Команда MGL: contf3 vdat adat 'dir' [`sval=-1' 'sch'="]
+ -- Команда MGL: contf3 vdat xdat ydat zdat adat 'dir' [`sval=-1'
+          'sch'="]
+     Рисует закрашенные линии (контуры) уровня для 3d массива,
+     заданного параметрически ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k],
+     ZDAT[i,j,k]). Линии рисуются для значений из массива V на срезе
+     SVAL в направлении DIR={`x', `y', `z'}. Если STL содержит `#', то
+     на срезе рисуется сетка. См. также *note dens3::, *note cont3::,
+     *note contf::, *note grid3::. См. раздел *note ContF3 sample::,
+     для примеров кода и графика.
+
+ -- Команда MGL: contf3 adat 'dir' [`sval=-1' 'sch'=" `num=7']
+ -- Команда MGL: contf3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="
+          `num=7']
+     Как предыдущий с вектором V из NUM элементов равно распределенных
+     в интервале цветовой шкалы (см., *note caxis::).
+
+ -- Команда MGL: contfa adat ['sch'=" `num=7']
+ -- Команда MGL: contfa xdat ydat zdat adat ['sch'=" `num=7']
+     Рисует закрашенные линии (контуры) уровня на всех центральных
+     срезах 3d данных.
+
+ -- Команда MGL: grid3 adat 'dir' [`sval=-1' 'sch'="]
+ -- Команда MGL: grid3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="]
+     Рисует сетку для 3d массива, заданного параметрически
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). График
+     рисуется на срезе SVAL в направлении DIR={`x', `y', `z'}. См.
+     также *note cont3::, *note contf3::, *note dens3::, *note grid2::.
+
+ -- Команда MGL: grida adat ['sch'="]
+ -- Команда MGL: grida xdat ydat zdat adat ['sch'="]
+     Рисует сетку на всех центральных срезах 3d данных.
+
+ -- Команда MGL: cloud adat ['sch'="]
+ -- Команда MGL: cloud xdat ydat zdat adat ['sch'="]
+     Рисует облачный график для 3d массива, заданного параметрически
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). График состоит
+     из кубиков с цветом и прозрачностью пропорциональной значениям
+     ADAT. Результат похож на облако - малые значения прозрачны, а
+     большие нет. Число кубиков зависит от *note meshnum::. Параметр
+     ALPHA меняет общую прозрачность графика. См. также *note surf3::.
+     См. раздел *note Cloud sample::, для примеров кода и графика.
+
+ -- Команда MGL: beam tr g1 g2 adat `rval' ['sch'=" `flag=0 num=3']
+     Рисует поверхность уровня для 3d массива ADAT при постоянном
+     значении ADAT=VAL. Это специальный тип графика для ADAT заданного
+     в сопровождающей системе координат вдоль кривой TR с ортами G1, G2
+     и с поперечным размером RVAL. Переменная FLAG - битовый флаг:
+     `0x1' - рисовать в сопровождающих (не лабораторных) координатах;
+     `0x2' - рисовать проекцию на плоскость \rho-z; `0x4' - рисовать
+     нормированное в каждом сечении поле. Размеры массивов по 1-му
+     индексу TR, G1, G2 должны быть nx>2. Размеры массивов по 2-му
+     индексу TR, G1, G2 и размер по 3-му индексу массива ADAT должны
+     быть одинаковы. См. также *note surf3::.
+
+
+File: mathgl_ru.info,  Node: Dual plotting (MGL),  Next: Vector fields (MGL),  Prev: 3D plotting (MGL),  Up: MGL interface
+
+8.12 Парные графики (MGL)
+======================================
+
+Эти команды строят графики для двух связанных массивов. Есть несколько
+основных типов 3D графиков: поверхность и поверхность уровня с окраской
+по второму массиву (*note surfc::, *note surf3c::), поверхность и
+поверхность уровня с прозрачностью по второму массиву (*note surfa::,
+*note surf3a::), плитки переменного размера (*note tiles::), диаграмма
+точечного отображения (*note map::), STFA диаграмма (*note stfa::). В
+командах *note surf3a:: и *note surf3c:: значения уровней можно
+задавать автоматически и вручную. Каждый тип графика имеет похожий
+интерфейс. Есть версия для рисования одного массива с автоматическими
+координатами и версия для параметрически заданного массива.
+
+   Строка SCH задает цветовую схему (*note Color scheme::). Предыдущая
+цветовая схема используется по умолчанию. Массивы X, Y, Z могут быть
+векторами (не 3d массивами как A). Если массивы XDAT, YDAT, ZDAT не
+указаны, то используются массивы со значениями равно распределенными
+вдоль осей x, y, z.
+
+ -- Команда MGL: surfc zdat cdat ['sch'="]
+ -- Команда MGL: surfc xdat ydat zdat cdat ['sch'="]
+     Рисует параметрически заданную поверхность {XDAT[i,j], YDAT[i,j],
+     ZDAT[i,j]} с цветом, заданным массивом CDAT[i,j]. Если SCH
+     содержит `#', то на поверхности рисуется сетка. См. также *note
+     surf::, *note surfa::, *note surf3c::. См. раздел *note SurfC
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: surf3c adat cdat `val' ['sch'="]
+ -- Команда MGL: surf3c xdat ydat zdat adat cdat `val' ['sch'="]
+     Рисует поверхность уровня для 3d массива, заданного параметрически
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) при
+     A(x,y,z)=VAL. Аналогично *note surf3::, но цвет задается массивом
+     CDAT. Если SCH содержит `#', то рисуется сетчатая поверхность. См.
+     также *note surf3::, *note surfc::, *note surf3a::. См. раздел
+     *note Surf3C sample::, для примеров кода и графика.
+
+ -- Команда MGL: surf3c adat cdat ['sch'=" `num=5']
+ -- Команда MGL: surf3c xdat ydat zdat adat cdat ['sch'=" `num=5']
+     Рисует NUM поверхностей уровня равномерно распределенных в
+     интервале цветовой шкалы (см. *note caxis::).
+
+ -- Команда MGL: surfa zdat cdat ['sch'="]
+ -- Команда MGL: surfa xdat ydat zdat cdat ['sch'="]
+     Рисует параметрически заданную поверхность {XDAT[i,j], YDAT[i,j],
+     ZDAT[i,j]} с прозрачностью, заданным массивом CDAT[i,j]. Если SCH
+     содержит `#', то на поверхности рисуется сетка. См. также *note
+     surf::, *note surfc::, *note surf3a::. См. раздел *note SurfA
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: surf3a adat cdat `val' ['sch'="]
+ -- Команда MGL: surf3a xdat ydat zdat adat cdat `val' ['sch'="]
+     Рисует поверхность уровня для 3d массива, заданного параметрически
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) при
+     A(x,y,z)=VAL. Аналогично *note surf3::, но прозрачность задается
+     массивом CDAT. Если SCH содержит `#', то рисуется сетчатая
+     поверхность. См. также *note surf3::, *note surfa::, *note
+     surf3c::. См. раздел *note Surf3A sample::, для примеров кода и
+     графика.
+
+ -- Команда MGL: surf3a adat cdat ['sch'=" `num=5']
+ -- Команда MGL: surf3a xdat ydat zdat adat cdat ['sch'=" `num=5']
+     Рисует NUM поверхностей уровня равномерно распределенных в
+     интервале цветовой шкалы (см. *note caxis::).
+
+ -- Команда MGL: tiles zdat rdat ['sch'="]
+ -- Команда MGL: tiles xdat ydat zdat rdat ['sch'="]
+     Рисует плитки для параметрически заданной поверхности {XDAT[i,j],
+     YDAT[i,j], ZDAT[i,j]}. Аналогично *note tile::, но размер плиток
+     задается массивов RDAT. Это создает эффект "прозрачности" при
+     экспорте в файлы EPS. См. также *note surfa::, *note tile::. См.
+     раздел *note TileS sample::, для примеров кода и графика.
+
+ -- Команда MGL: map udat vdat ['sch'=" `pnts=on']
+ -- Команда MGL: map xdat ydat udat vdat ['sch'=" `pnts=on']
+     Визуализирует точечное отображение для матриц {UDAT, VDAT }
+     параметрически зависящих от координат XDAT, YDAT. Исходное
+     положение ячейки задает ее цвет. Высота пропорциональна якобиану
+     Jacobian(udat,vdat). График является аналогом диаграммы Арнольда.
+     Если `pnts=off', то рисуются грани, иначе цветные точки рисуются в
+     узлах матриц (полезно для "запутанного" отображения). См. раздел
+     *note Map sample::, для примеров кода и графика.
+
+ -- Команда MGL: stfa re im `dn' ['sch'=" `pnts=on']
+ -- Команда MGL: stfa xdat ydat re im `dn' ['sch'=" `pnts=on']
+     Рисует спектрограмму комплексного массива RE+i*`im' для Фурье
+     размером DN точек. Параметр DN - любое четное число. Например в 1D
+     случае, результатом будет график плотности от массива
+     res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn
+     размером {int(nx/dn), dn, ny}. Массивы RE, IM параметрически
+     зависят от координат XDAT, YDAT. См. раздел *note STFA sample::,
+     для примеров кода и графика.
+
+
+File: mathgl_ru.info,  Node: Vector fields (MGL),  Next: Other plotting (MGL),  Prev: Dual plotting (MGL),  Up: MGL interface
+
+8.13 Векторные поля (MGL)
+======================================
+
+Эти функции рисуют графики для 2D и 3D векторных полей. Есть несколько
+типов графиков: просто векторное поле (*note vect::), вектора вдоль
+траектории (*note traj::), векторное поле каплями (*note dew::), нити
+тока (*note flow::), трубки тока (*note pipe::). Каждый тип графика
+имеет похожий интерфейс. Есть версия для рисования одного массива с
+автоматическими координатами и версия для параметрически заданного
+массива.
+
+   Строка SCH задает цветовую схему (*note Color scheme::). Предыдущая
+цветовая схема используется по умолчанию. Все размеры массивов AX и AY
+должны быть одинаковы. Младшие размерности массивов X, Y и AX должны
+быть одинаковы. Массивы X и Y могут быть векторами (не матрицами как
+AX). График строится для каждого z среза AX, AY для 2D случаев.
+
+ -- Команда MGL: traj xdat ydat udat vdat ['sch'=" `zval=nan len=0']
+ -- Команда MGL: traj xdat ydat zdat udat vdat wdat ['sch'=" `len=0']
+     Рисует вектора {UDAT, VDAT, WDAT} вдоль кривой {XDAT, YDAT, ZDAT}.
+     Длина векторов пропорциональна \sqrt{udat^2+vdat^2+wdat^2}. Строка
+     PEN задает цвет (*note Line styles::). По умолчанию (`pen=''').
+     Параметр LEN задает фактор длины векторов (если не нуль) или
+     выбирать длину пропорционально расстоянию между точками кривой
+     (если LEN=0). См. также *note vect::. См. раздел *note Traj
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: vect udat vdat ['sch'=" `zval=nan flag=0']
+ -- Команда MGL: vect xdat ydat udat vdat ['sch'=" `zval=nan flag=0']
+     Рисует векторное поле {UDAT, VDAT} параметрически зависящее от
+     координат XDAT, YDAT на плоскости при Z=ZVAL. Длина и цвет
+     векторов пропорциональна \sqrt{ax^2+ay^2}. Число рисуемых векторов
+     зависит от *note meshnum::. Параметр FLAG побитовый флаг для
+     настройки вид векторов: `1' - двуцветный вектор, `2' - одинаковая
+     длина векторов, `4' - рисует стрелку в точку сетки, `8' - рисует
+     стрелку с серединой в точке сетки, `16' - рисует штрихи вместо
+     стрелок. См. также *note flow::, *note dew::, *note vectc::. См.
+     раздел *note Vect sample::, для примеров кода и графика.
+
+ -- Команда MGL: vect udat vdat wdat ['sch'=" `flag=0']
+ -- Команда MGL: vect xdat ydat zdat udat vdat wdat ['sch'=" `flag=0']
+     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
+     3d массивами, а длина и цвет пропорциональны
+     \sqrt{udat^2+vdat^2+wdat^2}. См. раздел *note Vect 3D sample::,
+     для примеров кода и графика.
+
+ -- Команда MGL: vectc udat vdat ['sch'=" `zval=nan']
+ -- Команда MGL: vectc xdat ydat udat vdat ['sch'=" `zval=nan']
+     Аналогично *note vect:: c `flag=2+16=18'. См. раздел *note VectC
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: vectc udat vdat wdat ['sch'="]
+ -- Команда MGL: vectc xdat ydat zdat udat vdat wdat ['sch'="]
+     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
+     3d массивами, а длина и цвет пропорциональны
+     \sqrt{udat^2+vdat^2+wdat^2}. См. раздел *note VectC 3D sample::,
+     для примеров кода и графика.
+
+ -- Команда MGL: vectl udat vdat ['sch'=" `zval=nan']
+ -- Команда MGL: vectl xdat ydat udat vdat ['sch'=" `zval=nan']
+     Аналогично *note vect:: c `flag=1+16=17'. См. раздел *note VectL
+     sample::, для примеров кода и графика.
+
+ -- Команда MGL: vectl udat vdat wdat ['sch'="]
+ -- Команда MGL: vectl xdat ydat zdat udat vdat wdat ['sch'="]
+     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
+     3d массивами, а длина и цвет пропорциональны
+     \sqrt{udat^2+vdat^2+wdat^2}. См. раздел *note VectL 3D sample::,
+     для примеров кода и графика.
+
+ -- Команда MGL: dew udat vdat ['sch'=" `zval=nan']
+ -- Команда MGL: dew xdat ydat udat vdat ['sch'=" `zval=nan']
+     Рисует капли для векторного поля {UDAT, VDAT}, параметрически
+     зависящего от координат XDAT, YDAT при Z=ZVAL. Замечу, что график
+     требует много памяти и процессорного времени для своего создания!
+     Цвет капель пропорционален \sqrt{ax^2+ay^2}. Число капель
+     определяется *note meshnum::. См. также *note vect::. См. раздел
+     *note Dew sample::, для примеров кода и графика.
+
+ -- Команда MGL: flow udat vdat ['sch'=" `num=5 zval=nan']
+ -- Команда MGL: flow xdat ydat udat vdat ['sch'=" `num=5 zval=nan']
+     Рисует нити тока для векторного поля {UDAT, VDAT}, параметрически
+     зависящего от координат XDAT, YDAT на плоскости при z = ZVAL.
+     Число нитей пропорционально NUM. При NUM>0 нитей могут стартовать
+     и изнутри сетки, в противном случае только с краев. Цвет нитей
+     пропорционален \sqrt{udat^2+vdat^2}. Теплые цвета соответствуют
+     нормальному току (типа стока). Холодные цвета соответствуют
+     обратному току (типа источника). См. также *note pipe::, *note
+     vect::. См. раздел *note Flow sample::, для примеров кода и
+     графика.
+
+ -- Команда MGL: flow udat vdat wdat ['sch'=" `num=3']
+ -- Команда MGL: flow xdat ydat zdat udat vdat wdat ['sch'=" `num=3']
+     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
+     3d массивами, а цвет пропорционален \sqrt{udat^2+vdat^2+wdat^2}.
+     См. раздел *note Flow 3D sample::, для примеров кода и графика.
+
+ -- Команда MGL: flow `x0 y0' udat vdat ['sch'=" `zval=nan']
+ -- Команда MGL: flow `x0 y0' xdat ydat udat vdat ['sch'=" `zval=nan']
+     Рисует нить тока из точки {X0, Y0} для векторного поля {UDAT,
+     VDAT}, параметрически зависящего от координат XDAT, YDAT на
+     плоскости при z = ZVAL. Цвет нити пропорционален
+     \sqrt{udat^2+vdat^2}. Теплые цвета соответствуют нормальному току
+     (типа стока). Холодные цвета соответствуют обратному току (типа
+     источника).
+
+ -- Команда MGL: flow `x0 y0 z0' udat vdat wdat ['sch'="]
+ -- Команда MGL: flow `x0 y0 z0' xdat ydat zdat udat vdat wdat ['sch'="]
+     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
+     3d массивами, а цвет пропорционален \sqrt{udat^2+vdat^2+wdat^2}.
+
+ -- Команда MGL: pipe udat vdat ['sch'=" `r0=0.05 num=5 zval=nan']
+ -- Команда MGL: pipe xdat ydat udat vdat ['sch'=" `r0=0.05 num=5
+          zval=nan']
+     Рисует трубки тока для векторного поля {UDAT, VDAT},
+     параметрически зависящего от координат XDAT, YDAT на плоскости при
+     z = ZVAL. Число трубок пропорционально NUM. При NUM>0 нитей могут
+     стартовать и изнутри сетки, в противном случае только с краев.
+     Цвет и радиус трубок пропорционален \sqrt{udat^2+vdat^2}. Теплые
+     цвета соответствуют нормальному току (типа стока). Холодные цвета
+     соответствуют обратному току (типа источника). Параметр R0 задает
+     радиус трубок. При R0<0 радиус трубок обратно пропорционален их
+     амплитуде. См. также *note flow::, *note vect::. См. раздел *note
+     Pipe sample::, для примеров кода и графика.
+
+ -- Команда MGL: pipe udat vdat wdat ['sch'=" `r0=0.05 num=3']
+ -- Команда MGL: pipe xdat ydat zdat udat vdat wdat ['sch'=" `r0=0.05
+          num=3']
+     Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть
+     3d массивами, а цвет пропорционален \sqrt{udat^2+vdat^2+wdat^2}.
+     См. раздел *note Pipe 3D sample::, для примеров кода и графика.
+
+
+File: mathgl_ru.info,  Node: Other plotting (MGL),  Next: Nonlinear fitting (MGL),  Prev: Vector fields (MGL),  Up: MGL interface
+
+8.14 Прочие графики (MGL)
+======================================
+
+Это команды, не относящиеся к какой-то специальной категории. Сюда
+входят функции построения графиков по текстовым формулам (*note
+fplot::, *note fsurf::), рисования поверхностей из треугольников (*note
+triplot::), произвольных точек в пространстве (*note dots::) и
+реконструкции по ним поверхности (*note crust::), графики плотности и
+линии уровня на плоскостях, перпендикулярных осям x, y или z
+(dens[xyz], cont[xyz], contf[xyz]). Каждый тип графика имеет похожий
+интерфейс. Есть версия для рисования одного массива с автоматическими
+координатами и версия для параметрически заданного массива. Строка SCH
+задает цветовую схему (*note Color scheme::). Предыдущая цветовая схема
+используется по умолчанию.
+
+ -- Команда MGL: densx dat ['sch'=" `val=nan']
+ -- Команда MGL: densy dat ['sch'=" `val=nan']
+ -- Команда MGL: densz dat ['sch'=" `val=nan']
+     Рисуют график плотности на x, y или z плоскостях. Если DAT - 3d
+     массив, то выполняется интерполяция к заданному срезу VAL. Функции
+     полезны для создания проекций 3D массивов на оси координат. См.
+     также `cont[xyz], contf[xyz]', *note dens::. См. раздел *note Dens
+     projection sample::, для примеров кода и графика.
+
+ -- Команда MGL: contx dat ['sch'=" `val=nan num=7']
+ -- Команда MGL: conty dat ['sch'=" `val=nan num=7']
+ -- Команда MGL: contz dat ['sch'=" `val=nan num=7']
+     Рисуют линии уровня на x, y или z плоскостях. Если DAT - 3d
+     массив, то выполняется интерполяция к заданному срезу VAL. Функции
+     полезны для создания проекций 3D массивов на оси координат. См.
+     также `dens[xyz], contf[xyz]', *note cont::. См. раздел *note Cont
+     projection sample::, для примеров кода и графика.
+
+ -- Команда MGL: contfx dat ['sch'=" `val=nan num=7']
+ -- Команда MGL: contfy dat ['sch'=" `val=nan num=7']
+ -- Команда MGL: contfz dat ['sch'=" `val=nan num=7']
+     Рисуют закрашенные контуры уровня на x, y или z плоскостях. Если
+     DAT - 3d массив, то выполняется интерполяция к заданному срезу
+     VAL. Функции полезны для создания проекций 3D массивов на оси
+     координат. См. также `dens[xyz], cont[xyz]', *note contf::.
+
+ -- Команда MGL: dots xdat ydat zdat ['sch'="]
+ -- Команда MGL: dots xdat ydat zdat adat ['sch'="]
+     Рисует произвольно расположенные точки {XDAT[i], YDAT[i],
+     ZDAT[i]}. Если определен массив ADAT[i], то он задает прозрачность
+     точек. См. также *note crust::, *note mark::, *note plot::. См.
+     раздел *note Dots sample::, для примеров кода и графика.
+
+ -- Команда MGL: crust xdat ydat zdat ['sch'="]
+     Реконструирует и рисует поверхность по произвольно расположенным
+     точкам {XDAT[i], YDAT[i], ZDAT[i]}. Если строка содержит `#', то
+     рисуется сетчатая поверхность. См. также *note dots::, *note
+     triplot::. См. раздел *note Crust sample::, для примеров кода и
+     графика.
+
+ -- Команда MGL: triplot idat xdat ydat ['sch'=" `zval=nan']
+ -- Команда MGL: triplot idat xdat ydat zdat ['sch'="]
+ -- Команда MGL: triplot idat xdat ydat zdat cdat ['sch'="]
+     Рисует поверхность из треугольников. Вершины треугольников
+     задаются индексами IDAT в массиве точек {XDAT[i], YDAT[i],
+     ZDAT[i]}. Если строка содержит `#', то рисуется сетчатая
+     поверхность. Размер по 1-му индексу массива IDAT должен быть 3 или
+     больше. Массивы XDAT, YDAT, ZDAT должны иметь одинаковые размеры.
+     Массив CDAT задает цвет треугольников (если IDAT.ny=CDAT.nx) или
+     цвет вершин (если XDAT.nx=CDAT.nx). См. также *note dots::, *note
+     crust::, *note quadplot::, *note tricont::.
+
+ -- Команда MGL: tricont vdat idat xdat ydat zdat cdat ['sch'="
+          `zval=nan']
+ -- Команда MGL: tricont vdat idat xdat ydat zdat ['sch'=" `zval=nan']
+ -- Команда MGL: tricont idat xdat ydat zdat ['sch'=" `num=7 zval=nan']
+     Рисует линии уровня поверхности из треугольников при Z = ZVAL (или
+     для z=VDAT[k] если `zval==NAN'). Вершины треугольников задаются
+     индексами IDAT в массиве точек {XDAT[i], YDAT[i], ZDAT[i]}. Размер
+     по 1-му индексу массива IDAT должен быть 3 или больше. Массивы
+     XDAT, YDAT, ZDAT должны иметь одинаковые размеры. Массив CDAT
+     (если указан) задает цвет треугольников (если IDAT.ny=CDAT.nx) или
+     цвет вершин (если XDAT.nx=CDAT.nx). См. также *note triplot::,
+     *note cont::.
+
+ -- Команда MGL: quadplot idat xdat ydat ['sch'=" `zval=nan']
+ -- Команда MGL: quadplot idat xdat ydat zdat ['sch'="]
+ -- Команда MGL: quadplot idat xdat ydat zdat cdat ['sch'="]
+     Рисует поверхность из четырехугольников. Вершины треугольников
+     задаются индексами IDAT в массиве точек {XDAT[i], YDAT[i],
+     ZDAT[i]}. Если строка содержит `#', то рисуется сетчатая
+     поверхность. Размер по 1-му индексу массива IDAT должен быть 4 или
+     больше. Массивы XDAT, YDAT, ZDAT должны иметь одинаковые размеры.
+     Массив CDAT задает цвет четырехугольников (если IDAT.ny=CDAT.nx)
+     или цвет вершин (если XDAT.nx=CDAT.nx). См. также *note triplot::.
+
+ -- Команда MGL: fplot 'y(x)' ['pen'=" `zval=nan num=100']
+     Рисует функцию `y(x)' в плоскости z=ZVAL с координатой `x' в
+     диапазоне x-оси координат. Параметр NUM задает минимальное число
+     точек по координате для графика. См. также *note plot::.
+
+ -- Команда MGL: fplot 'x(t)' 'y(t)' 'z(t)' ['pen'=" `num=100']
+     Рисует параметрическую кривую {`x(t)', `y(t)', `z(t)'}, где
+     координата `t' меняется в диапазоне [0, 1]. Параметр NUM задает
+     минимальное число точек по координате для графика. См. также *note
+     plot::.
+
+ -- Команда MGL: fsurf 'z(x,y)' ['sch'=" `num=100']
+     Рисует поверхность `z(x,y)' с координатами `x', `y' в диапазоне
+     x-,y-осей координат. Параметр NUM задает минимальное число точек
+     по координатам для графика. См. также *note surf::.
+
+ -- Команда MGL: fsurf 'x(u,v)' 'y(u,v)' 'z(u,v)' ['sch'=" `num=100']
+     Рисует параметрическую поверхность {`x(u,v)', `y(u,v)', `z(u,v)'},
+     где координаты `u', `v' меняются в диапазоне [0, 1]. Параметр NUM
+     задает минимальное число точек по координатам для графика. См.
+     также *note surf::.
+
+
+File: mathgl_ru.info,  Node: Nonlinear fitting (MGL),  Next: Data create (MGL),  Prev: Other plotting (MGL),  Up: MGL interface
+
+8.15 Nonlinear fitting (MGL)
+============================
+
+Эти команды подбирают параметры функций для наилучшей аппроксимации
+данных, т.е. минимизируют сумму \sum_i (f(x_i, y_i, z_i) -
+a_i)^2/s_i^2. При этом аппроксимирующая функция `f' может зависеть от
+одного аргумента `x' (1D случай), от двух аргументов `x,y' (2D случай)
+или от трех аргументов `x,y,z' (3D случай). Функция `f' также может
+зависеть от параметров. Список параметров задается строкой VAR
+(например, `abcd'). Обычно пользователь должен предоставить начальные
+значения параметров в переменной INI. Однако, при его отсутствии
+используются нулевые значения.
+
+   Команды *note fit:: и *note fits:: не рисуют полученные массивы. Они
+заполняют массив FIT по формуле `f' с найденными коэффициентами. При
+этом, координаты `x,y,z' равно распределены в вдоль осей координат.
+Число точек в FIT выбирается максимальным из размера массива FIT и 100.
+Формулу с найденными коэффициентами можно вывести с помощью команды
+*note putsfit::. См. раздел *note Fitting sample::, для примеров кода и
+графика.
+
+   Размерность массивов должны быть не меньше, чем число указанных
+массивов XDAT, YDAT, ZDAT. Также подбор коэффициентов будет
+осуществляться только вдоль указанных направлений (например, вдоль x и
+y если указаны только XDAT и YDAT). Если массив XDAT не указан, то
+используется массив со значениями равно распределенными вдоль оси x.
+
+ -- Команда MGL: fits adat sdat 'func' 'var' [ini=0]
+ -- Команда MGL: fits xdat adat sdat 'func' 'var' [ini=0]
+ -- Команда MGL: fits xdat ydat adat sdat 'func' 'var' [ini=0]
+ -- Команда MGL: fits xdat ydat zdat adat sdat 'func' 'var' [ini=0]
+     "Подгоняют" формулу вдоль x-, y- и z-направлений для массива
+     заданного параметрически A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) с
+     весовыми коэффициентами SDAT[i,j,k].
+
+ -- Команда MGL: fit adat 'func' 'var' [ini=0]
+ -- Команда MGL: fit xdat adat 'func' 'var' [ini=0]
+ -- Команда MGL: fit xdat ydat adat 'func' 'var' [ini=0]
+ -- Команда MGL: fit xdat ydat zdat adat 'func' 'var' [ini=0]
+     "Подгоняют" формулу вдоль x-, y- и z-направлений для массива
+     заданного параметрически A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) с
+     весовыми коэффициентами равными 1.
+
+ -- Команда MGL: putsfit `x y' ['pre'=" 'fnt'=" `size=-1']
+     Печатает последнюю подобранную формулу с найденными коэффициентами
+     в точке {X, Y}. Строка PRE будет напечатана перед формулой. Все
+     другие параметры такие же как в *note Text printing (MGL)::.
+
+
+File: mathgl_ru.info,  Node: Data create (MGL),  Next: Data filling (MGL),  Prev: Nonlinear fitting (MGL),  Up: MGL interface
+
+8.16 Создание данных (MGL)
+========================================
+
+ -- Команда MGL: new dat [`nx=1 ny=1 nz=1']
+     Создает/пересоздает массив с именем DAT данных указанного размера
+     и заполняет его нулями. Ничего не делает при NX, NY, NZ
+     отрицательных или равных нулю.
+
+ -- Команда MGL: var dat `num v1 [v2=nan]'
+     Создает одномерный массив с именем DAT размером `num' и заполняет
+     его равномерно в диапазоне [V1, V2]. Если V2=`nan', то
+     используется V2=V1.
+
+ -- Команда MGL: list dat `v1 ...'
+     Создает массив с именем DAT и заполняет его числовыми значениями
+     аргументов `v1 ...'. Команда может создавать 1d- и 2d-массивы. Для
+     создания 2d-массивов требуется указать разделитель строк данных
+     `|'. Размер массива будет [максимальное число чисел в строке *
+     число строк]. Например, команда `list 1 | 2 3' создаст массив [1
+     0; 2 3]. Отмечу, что максимальное число аргументов 1000.
+
+ -- Команда MGL: list dat d1 ...
+     Создает массив с именем DAT и заполняет его числами из массивов
+     `d1 ...'. Команда может создавать 2d- и 3d-массивы (если аргументы
+     2d массивы). Младшие размерности всех массивов в аргументах должны
+     быть равны размерности D1. Отмечу, что максимальное число
+     аргументов 1000.
+
+ -- Команда MGL: copy dat dat2 ['eq'=" `on_axis=on']
+ -- Команда MGL: copy dat `val'
+     Создает массив с именем DAT и копирует в него данные из массива
+     DAT2. При этом, если указан параметр EQ, то данные будут изменены
+     по формуле аналогично команде *note fill:: (для `on_axis=on') или
+     *note modify:: (для `on_axis=off').
+
+ -- Команда MGL: idset dat 'ids'
+     Устанавливает символьные обозначения для колонок данных. Строка
+     должна содержать символы 'a'...'z' один на колонку (без пробелов).
+
+ -- Команда MGL: info dat [`detail=off']
+     Выводит информацию о массиве (размер, максимальное/минимальное
+     значение, моменты и пр.). При `detail=off' показывается только
+     краткая информация.
+
+ -- Команда MGL: info 'text'
+     Выводит текст TEXT как информацию (предупреждение).
+
+
+File: mathgl_ru.info,  Node: Data filling (MGL),  Next: Rearrange data (MGL),  Prev: Data create (MGL),  Up: MGL interface
+
+8.17 Заполнение данных (MGL)
+============================================
+
+ -- Команда MGL: fill dat v1 v2 ['dir'='x']
+     Заполняет значениями равно распределенными в диапазоне [V1, V2] в
+     направлении DIR={`x',`y',`z'}.
+
+ -- Команда MGL: fill dat 'eq' [vdat=0 wdat=0]
+     Заполняет значениями вычисленными по формуле EQ. Формула
+     представляет собой произвольное выражение, зависящее от переменных
+     `x', `y', `z', `u', `v', `w'. Координаты `x', `y', `z' полагаются
+     меняющимися в диапазоне осей координат (в отличие от *note
+     modify::). Переменная `u' - значения исходного массива, переменные
+     `v', `w' - значения массивов VDAT, WDAT. Последние могут быть
+     опущены.
+
+ -- Команда MGL: modify dat 'eq' [`dim=0']
+ -- Команда MGL: modify dat 'eq' vdat [wdat=0]
+     Заполняет значениями вычисленными по формуле EQ. Формула
+     представляет собой произвольное выражение, зависящее от переменных
+     `x', `y', `z', `u', `v', `w'. Координаты `x', `y', `z' полагаются
+     меняющимися в диапазоне [0,1] (в отличие от *note fill::).
+     Переменная `u' - значения исходного массива, переменные `v', `w' -
+     значения массивов VDAT, WDAT. Последние могут быть опущены. Если
+     указан DIM>0, то изменяются только слои >=DIM.
+
+ -- MGL command: put dat `val [i=: j=: k=:]'
+     Присваивает значения (под-)массива DAT[I, J, K] = VAL. Индексы I,
+     J, K равные `:' задают значениия VAL для всего диапазона
+     соответствующего направления(ий). Например, `put dat val : 0 :'
+     задает DAT[i,0,j]=VAL для i=0...(DAT.nx-1), j=0...(DAT.nz-1).
+
+ -- MGL command: put dat vdat [`i=: j=: k=:']
+     Копирует значения из массива VDAT в диапазон значений массива DAT.
+     Индексы I, J, K равные `:' задают диапазон изменения значений в
+     соответствующих направление(ях). Младшие размерности массива VDAT
+     должны быть больше выбранного диапазона массива DAT. Например,
+     `put dat v : 0 :' присвоит DAT[i,0,j]=VDAT.ny>DAT.nz ? VDAT[i,j] :
+     VDAT[i], где i=0...(DAT.nx-1), j=0...(DAT.nz-1) и условие
+     vdat.nx>=dat.nx выполнено.
+
+
+File: mathgl_ru.info,  Node: Rearrange data (MGL),  Next: File I/O (MGL),  Prev: Data filling (MGL),  Up: MGL interface
+
+8.18 Изменение размеров данных (MGL)
+===========================================================
+
+ -- Команда MGL: rearrange dat `mx [my=0 mz=0]'
+     Изменяет размерность данных без изменения самого массива данных,
+     так что результирующий массив MX*MY*MZ < nx*ny*nz. Если один из
+     параметров MY или MZ ноль, то он будет выбран оптимальным образом.
+     Например, если MY=0, то будет MY=nx*ny*nz/MX и MZ=1.
+
+ -- Команда MGL: extend dat `n1 [n2=0]'
+     Увеличивает размер данных путем вставки (|N1|+1) новых срезов
+     после (для N1>0) или перед (для N1<0) существующими данными. Можно
+     добавить сразу 2 размерности для 1d массива, используя второй
+     параметр N2. Данные в новые срезы будут скопированы из
+     существующих. Например, для N1>0 новый массив будет a_ij^new =
+     a_i^old where j=0...N1. Соответственно, для N1<0 новый массив
+     будет a_ij^new = a_j^old, где i=0...|N1|.
+
+ -- Команда MGL: transpose dat ['dim'='yxz']
+     Транспонирует (меняет порядок размерностей) массив данных. Новый
+     порядок размерностей задается строкой DIM.
+
+ -- Команда MGL: squeeze dat `rx [ry=1 rz=1 sm=off]'
+     Уменьшает размер данных путем удаления элементов с индексами не
+     кратными RX, RY, RZ соответственно. Параметр SMOOTH задает
+     использовать сглаживания (т.е. out[i]=\sum_{j=i,i+r} a[j]/r) или
+     нет (т.е. out[i]=a[j*r]).
+
+ -- Команда MGL: crop dat `n1 n2' 'dir'
+     Обрезает границы данных при I<N1 и I>N2 (при N2>0) или
+     I>`n[xyz]'-N2 (при N2<=0) вдоль направления DIR.
+
+ -- Команда MGL: delete dat
+     Удаляет массив DAT и освобождает использованную память. Может быть
+     полезно для больших неиспользуемых массивов.
+
+ -- Команда MGL: delete dat 'dir' `[pos=off num=0]'
+     Удаляет NUM срезов вдоль направления DIR с позиции POS.
+
+ -- Команда MGL: insert dat 'dir' `[pos=off num=0]'
+     Вставляет NUM срезов вдоль направления DIR с позиции POS и
+     заполняет их нулями.
+
+
+File: mathgl_ru.info,  Node: File I/O (MGL),  Next: Make another data (MGL),  Prev: Rearrange data (MGL),  Up: MGL interface
+
+8.19 Чтение/сохранение данных (MGL)
+=========================================================
+
+ -- Команда MGL: read dat 'fname'
+     Читает данные из текстового файла с разделителями символом
+     пробела/табуляции с автоматическим определением размера массива.
+     Двойной перевод строки начинает новый срез данных (по направлению
+     z).
+
+ -- Команда MGL: read dat 'fname' `mx [my=1 mz=1]'
+     Читает данные из текстового файла с заданными размерами. Ничего не
+     делается если параметры MX, MY или MZ равны нулю или отрицательны.
+
+ -- Команда MGL: readmat dat 'fname' [`dim=2']
+     Читает данные из текстового файла с размерами, указанными в первых
+     DIM числах файла. При этом переменная DIM задает размерность (1d,
+     2d, 3d) данных.
+
+ -- Команда MGL: readall dat 'templ' `v1 v2 [dv=1 slice=off]'
+     Объединяет данные из нескольких текстовых файлов. Имена файлов
+     определяются вызовом функции `sprintf(fname,templ,val);', где VAL
+     меняется от V1 до V2 с шагом DV. Данные загружаются один за другим
+     в один и тот же срез данных (при SLICE=`off') или срез-за-срезом
+     (при SLICE=`on').
+
+ -- Команда MGL: readall dat 'templ' `[slice=off]'
+     Объединяет данные из нескольких текстовых файлов, чьи имена
+     удовлетворяют шаблону TEMPL (например, TEMPL=`"t_*.dat"'). Данные
+     загружаются один за другим в один и тот же срез данных (при
+     SLICE=`off') или срез-за-срезом (при SLICE=`on').
+
+ -- Команда MGL: save dat 'fname'
+     Сохраняет массив данных в текстовый файл.
+
+ -- Команда MGL: readhdf dat 'fname' 'dname'
+     Читает массив с именем DNAME из HDF5 или HDF4 файла FNAME.
+
+ -- Команда MGL: savehdf dat 'fname' 'dname'
+     Сохраняет массив под именем DNAME в HDF5 или HDF4 файл FNAME.
+
+ -- Команда MGL: import dat 'fname' 'sch' [`v1=0 v2=1']
+     Читает данные из растрового файла. RGB значения пикселов
+     преобразуются в число в диапазоне [V1, V2] используя цветовую
+     схему SCH (*note Color scheme::).
+
+ -- Команда MGL: export dat 'fname' 'sch' [`v1=0 v2=0']
+     Сохраняет данные в растровый файл. Числовые значения,
+     нормированные в диапазон [V1, V2], преобразуются в RGB значения
+     пикселов, используя цветовую схему SCH (*note Color scheme::).
+     Если V1>=V2, то значения V1, V2 определяются автоматически как
+     минимальное и максимальное значение данных.
+
+
+File: mathgl_ru.info,  Node: Make another data (MGL),  Next: Change data (MGL),  Prev: File I/O (MGL),  Up: MGL interface
+
+8.20 Создание новых данных (MGL)
+===================================================
+
+ -- Команда MGL: combine res adat bdat
+     Возвращает в массиве данных RES прямое произведение массивов
+     (наподобие, res[i,j] = adat[i]*bdat[j] и т.д.).
+
+ -- Команда MGL: evaluate res dat idat [`norm=on']
+ -- Команда MGL: evaluate res dat idat jdat [`norm=on']
+ -- Команда MGL: evaluate res dat idat jdat kdat [`norm=on']
+     Возвращает массив данных RES, полученный в результате интерполяции
+     исходного массива в точках других массивов (например,
+     res[i,j]=dat[idat[i,j],jdat[i,j]]). Размеры массивов IDAT, JDAT,
+     KDAT должны совпадать. Координаты в IDAT, JDAT, KDAT полагаются
+     нормированными в диапазон [0,1] (при NORM=`on') или в диапазоны
+     [0,nx], [0,ny], [0,nz] соответственно.
+
+ -- Команда MGL: hist res dat `num v1 v2 [nsub=0]'
+ -- Команда MGL: hist res dat wdat `num v1 v2 [nsub=0]'
+     Возвращает распределение (гистограмму) RES из NUM точек от
+     значений массива DAT в диапазоне [V1, V2]. Массив WDAT задает веса
+     элементов (все веса равны 1 если WDAT не указан). Параметр NSUB
+     задает число дополнительных точек интерполяции (для сглаживания
+     получившейся гистограммы).
+
+ -- Команда MGL: hist res xdat adat
+ -- Команда MGL: hist res xdat ydat adat
+ -- Команда MGL: hist res xdat ydat zdat adat
+     Возвращает распределение (гистограмму) RES от значений массива
+     ADAT, параметрически зависящего от координат {XDAT,YDAT,ZDAT} в
+     диапазоне осей координат. Массив ADAT играет роль веса точки.
+     Число точек в результате RES - максимум из размера RES и 100.
+
+ -- Команда MGL: momentum res dat 'how' ['dir'='z']
+     Возвращает в массиве данных RES момент (1d массив) данных DAT
+     вдоль направления DIR. Строка HOW определяет тип момента. Момент
+     определяется как res_k = \sum_ij how(x_i,y_j,z_k) dat_ij/ \sum_ij
+     a_ij если DIR=`z' и т.д. Координаты `x', `y', `z' - индексы
+     массива в диапазоне [0,1].
+
+ -- Команда MGL: sum res dat 'dir'
+     Возвращает в массиве данных RES результат суммирования DAT вдоль
+     направления(ий) DIR.
+
+ -- Команда MGL: max res dat 'dir'
+     Возвращает в массиве данных RES максимальное значение DAT вдоль
+     направления(ий) DIR.  Gets array which is the maximal data values
+     in given direction or direction(s).
+
+ -- Команда MGL: min res dat 'dir'
+     Возвращает в массиве данных RES минимальное значение DAT вдоль
+     направления(ий) DIR.
+
+ -- Команда MGL: resize res dat `mx [my=1 mz=1]'
+     Возвращает массив данных RES размером MX, MY, MZ со значениями
+     полученными интерполяцией значений массива DAT.
+
+ -- Команда MGL: subdata res dat `xx [yy=: zz=:]'
+     Возвращает в RES подмассив массива данных DAT с фиксированными
+     значениями индексов с положительными значениями. Например,
+     `subdata a b : 2' выделяет третью строку (индексы начинаются с
+     нуля), `subdata a b 4 :' выделяет 5-ую колонку, `subdata a b : :
+     3' выделяет 4-ый срез и т.д.
+
+ -- Команда MGL: trace res dat
+     Возвращает массив REF диагональных элементов DAT[i,i] (для 2D
+     данных) или DAT[i,i,i] (для 3D данных) где i=0...nx-1. В 1D случае
+     возвращается сам массив данных DAT. Размеры массива данных должен
+     быть DAT.ny, DAT.nz >= DAT.nx или DAT.ny, DAT.nz = 1.
+
+ -- Команда MGL: transform dat 'type' real imag
+     Выполняет интегральное преобразование комплексных данных REAL,
+     IMAG в выбранном направлении и возвращает модуль результата в RES.
+     Порядок и тип преобразований задается строкой TYPE: первый символ
+     для x-направления, второй для y-направления, третий для
+     z-направления. Возможные символы: `f' - прямое преобразование
+     Фурье, `i' - обратное преобразование Фурье, `s' - синус
+     преобразование, `c' - косинус преобразование, `h' - преобразование
+     Ханкеля, `n' или ` ' - нет преобразования.
+
+ -- Команда MGL: transforma dat 'type' ampl phase
+     Аналогично предыдущему с заданными амплитудой AMPL и фазой PHASE
+     комплексных чисел.
+
+ -- Команда MGL: stfad res real imag `dn' ['dir'='x']
+     Выполняет оконное преобразование Фурье длиной DN для комплексных
+     данных REAL, IMAG и возвращает модуль результата в RES. Например,
+     для DIR=`x' результат будет иметь размер {int(nx/dn), dn, ny} и
+     будет равен res[i,j,k]=|\sum_d^dn
+     exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn.
+
+ -- Команда MGL: pde res 'ham' ini_re ini_im [`dz=0.1 k0=100']
+     Решает уравнение в частных производных du/dz =
+     i*k0*HAM(p,q,x,y,z,|u|)[u], где p=-i/k0*d/dx, q=-i/k0*d/dy -
+     псевдо-дифференциальные операторы. Параметры INI_RE, INI_IM задают
+     начальное распределение поля. Координаты в уравнении и в решении
+     полагаются в диапазоне осей координат. Замечу, что внутри этот
+     диапазон увеличивается в 3/2 раза для уменьшения отражения от
+     границ расчетного интервала. Параметр DZ задает шаг по
+     эволюционной координате z. В данный момент использован упрощенный
+     алгоритм, когда все "смешанные" члена (типа `x*p'->x*d/dx)
+     исключаются. Например, в 2D случае это функции типа ham = f(p,z) +
+     g(x,z,u). При этом допускаются коммутирующие комбинации (типа
+     `x*q'->x*d/dy). Переменная `u' используется для обозначения
+     амплитуды поля |u|. Это позволяет решать нелинейные задачи -
+     например, нелинейное уравнение Шредингера `ham='p^2+q^2-u^2''.
+     Также можно указать мнимую часть для поглощения (типа `ham =
+     'p^2+i*x*(x>0)''), но только если зависимость от `i' линейная,
+     т.е. ham = hre+i*him. См. раздел *note PDE sample::, для примеров
+     кода и графика.
+
+ -- Команда MGL: ray res 'ham' `x0 y0 z0 p0 q0 v0 [dt=0.1 tmax=10]'
+     Решает систему геометрооптических уравнений d_r_/dt = d HAM/d_p_,
+     d_p_/dt = -d HAM/d_r_. Это гамильтоновы уравнения для траектории
+     частицы в 3D случае. Гамильтониан HAM может зависеть от координат
+     `x', `y', `z', импульсов `p'=px, `q'=py, `v'=pz и времени `t': ham
+     = H(x,y,z,p,q,v,t). Начальная точка (при `t=0') задается
+     переменными {X0, Y0, Z0, P0, Q0, V0}. Параметры DT и TMAX задают
+     шаг и максимальное время интегрирования. Результат RES - массив
+     {x,y,z,p,q,v,t} с размером {7 * int(TMAX/DT+1) }. См. раздел *note
+     Beam tracing sample::, для примеров кода и графика.
+
+ -- Команда MGL: qo2d res 'ham' ini_re ini_im ray [`r=1 k0=100' xx=0
+          yy=0]
+     Решает уравнение в частных производных du/dt =
+     i*k0*HAM(p,q,x,y,|u|)[u] в сопровождающей системе координат, где
+     p=-i/k0*d/dx, q=-i/k0*d/dy - псевдо-дифференциальные операторы.
+     Параметры INI_RE, INI_IM задают начальное распределение поля.
+     Параметр RAY задает опорный луч для сопровождающей системы
+     координат. Можно использовать луч найденный с помощью `ray'.
+     Опорный луч должен быть достаточно гладкий, чтобы система
+     координат была однозначной и для исключения ошибок интегрирования.
+     Если массивы XX и YY указаны, то в них записываются декартовы
+     координаты для каждой точки найденного решения. См. также *note
+     pde::. См. раздел *note Beam tracing sample::, для примеров кода и
+     графика.
+
+ -- Команда MGL: jacobian res xdat ydat [zdat=0]
+     Вычисляет якобиан преобразования {i,j,k} в {XDAT,YDAT,ZDAT}, где
+     координаты {i,j,k} полагаются нормированными в интервал [0,1].
+     Якобиан находится по формуле det||dr_\alpha/d\xi_\beta||, где
+     r={XDAT,YDAT,ZDAT} и \xi={i,j,k}. Все размерности всех массивов
+     должны быть одинаковы. Данные должны быть трехмерными если указаны
+     все 3 массива {XDAT,YDAT,ZDAT} или двумерными если только 2
+     массива {XDAT,YDAT}.
+
+
+File: mathgl_ru.info,  Node: Change data (MGL),  Next: Operators (MGL),  Prev: Make another data (MGL),  Up: MGL interface
+
+8.21 Изменение данных (MGL)
+==========================================
+
+Эти команды изменяют данные вдоль заданного направления(ий) типа
+например дифференцирования, интегрирования и т.д. Направление
+указывается строкой DIR, которая может содержать символы `x', `y' и/или
+`z', вдоль которых изменения будут применены.
+
+ -- Команда MGL: cumsum dat 'dir'
+     Суммирует с накоплением в выбранном направлении(ях).
+   
+ -- Команда MGL: integrate dat 'dir'
+     Выполняет интегрирование (подобно суммированию с накоплением) в
+     выбранном направлении(ях).
+   
+ -- Команда MGL: diff dat 'dir'
+     Выполняет дифференцирование в выбранном направлении(ях).
+
+ -- Команда MGL: diff dat xdat ydat [zdat=0]
+     Выполняет дифференцирование данных DAT, параметрически зависящих
+     от координат, в направлении XDAT с YDAT, ZDAT=constant. Параметр
+     ZDAT может быть опущен, что соответствует 2D случаю. Используются
+     следующие формулы (2D случай): da/dx =
+     (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j), где a_i=da/di, a_j=da/dj
+     обозначает дифференцирование вдоль 1-ой и 2-ой размерности.
+     Похожие формулы используются и в 3D случае. Порядок аргументов
+     можно менять - например, если данные a(i,j) зависят от координат
+     {x(i,j), y(i,j)}, то обычная производная по `x' будет равна `diff
+     a x y', а обычная производная по `y' будет равна `diff a y x'.
+
+ -- Команда MGL: diff2 dat 'dir'
+     Выполняет двойное дифференцирование (как в операторе Лапласа) в
+     выбранном направлении(ях).
+
+ -- Команда MGL: sinfft dat 'dir'
+     Выполняет синус преобразование в выбранном направлении(ях). Синус
+     преобразование есть \sum a_i \sin(k i).
+   
+ -- Команда MGL: cosfft dat 'dir'
+     Выполняет косинус преобразование в выбранном направлении(ях).
+     Синус преобразование есть \sum a_i \cos(k i).
+   
+ -- Команда MGL: hankel dat 'dir'
+     Выполняет преобразование Ханкеля в выбранном направлении(ях).
+     Преобразование Ханкеля есть \sum a_i J_0(k i).
+
+ -- Команда MGL: swap dat 'dir'
+     Меняет местами левую и правую части данных в выбранном
+     направлении(ях). Полезно для отображения результата FFT.
+   
+ -- Команда MGL: roll dat 'dir' num
+     Сдвигает данные на NUM ячеек в выбранном направлении(ях).
+     Соответствует замене индекса на I->(I+NUM)%N.
+
+ -- Команда MGL: mirror dat 'dir'
+     Отражает данные в выбранном направлении(ях). Соответствует замене
+     индекса на I->N-I.
+
+ -- Команда MGL: sew dat ['dir'='xyz' `da=2*pi']
+     Удаляет скачки данных (например, скачки фазы после обратных
+     тригонометрических функций) с периодом DA в выбранном
+     направлении(ях).
+
+ -- Команда MGL: smooth data `type' ['dir'='xyz']
+     Сглаживает данные в выбранном направлении(ях) методом TYPE. Сейчас
+     поддерживаются 4 метода: `0' ничего не делает, `1' линейное
+     усреднение по 3 точкам, `2' линейное усреднение по 5 точкам, `3'
+     квадратичное усреднение по 5 точкам.
+
+ -- Команда MGL: envelop dat ['dir'='x']
+     Находит огибающую данных в выбранном направлении. Только одно
+     направление может быть выбрано за раз.
+
+ -- Команда MGL: normsl dat `v1 v2' ['dir'='z' `keep=on sym=off']
+     Нормирует данные срез-за-срезом в выбранном направлении DIR в
+     интервал [V1,V2]. Если SYM=`on', то используется симметричный
+     интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Если KEEP=`on', то
+     максимальное значение k-го среза ограничено величиной \sqrt{\sum
+     a_ij(k)/\sum a_ij(0)}.
+
+ -- Команда MGL: norm dat `v1 v2 [sym=off dim=0]'
+     Нормирует данные в интервал [V1,V2]. Если SYM=`on', то
+     используется симметричный интервал [-max(|v1|,|v2|),
+     max(|v1|,|v2|)]. Изменения применяются только к срезам >=DIM.
+
+
+File: mathgl_ru.info,  Node: Operators (MGL),  Next: Program flow (MGL),  Prev: Change data (MGL),  Up: MGL interface
+
+8.22 Операторы (MGL)
+=============================
+
+ -- Команда MGL: multo dat dat2
+     Поэлементно умножает массив DAT на DAT2.
+
+ -- Команда MGL: multo dat `val'
+     Умножает каждый элемент на число.
+
+ -- Команда MGL: divto dat dat2
+     Поэлементно делит массив DAT на DAT2.
+
+ -- Команда MGL: divto dat `val'
+     Делит каждый элемент на число.
+
+ -- Команда MGL: addto dat dat2
+     Поэлементно прибавляет DAT2 к массиву DAT.
+
+ -- Команда MGL: addto dat `val'
+     Прибавляет число к каждому элементу.
+
+ -- Команда MGL: subto dat dat2
+     Поэлементно вычитает DAT2 из массива DAT.
+
+ -- Команда MGL: subto dat `val'
+     Вычитает число из каждого элемента.
+
+
+File: mathgl_ru.info,  Node: Program flow (MGL),  Next: Command options (MGL),  Prev: Operators (MGL),  Up: MGL interface
+
+8.23 Программирование (MGL)
+===========================================
+
+Эти команды управляют порядком выполнения других команд (условия,
+циклы, подпрограммы), (пере-)определяют аргументы скрипта и пр.
+
+ -- Команда MGL: chdir 'path'
+     Переходит в папку PATH.
+
+ -- Команда MGL: define $N smth
+     Задает N-ый аргумент скрипта равным SMTH. Отмечу, что SMTH
+     используется как есть (с символами `'' если присутствуют).
+     Выполняется только подстановка других макроопределений $0...$9,
+     $a...$z. Здесь N это цифра (0...9) или буква (a...z).
+
+ -- Команда MGL: define name smth
+     Определяет константу (скаляр) с именем `name' и числовым значением
+     `smth'. Позднее она может быть использована как обычное число.
+   
+ -- Команда MGL: defchr $N smth
+     Задает N-ый аргумент скрипта равным символу с UTF кодом SMTH.
+     Здесь N это цифра (0...9) или буква (a...z).
+   
+ -- Команда MGL: defnum $N smth
+     Задает N-ый аргумент скрипта равным числовому значению SMTH. Здесь
+     N это цифра (0...9) или буква (a...z).
+   
+ -- Команда MGL: defpal $N smth
+     Задает N-ый аргумент скрипта равным символу палитры с индексом,
+     найденным из SMTH. Здесь N это цифра (0...9) или буква (a...z).
+
+ -- Команда MGL: call 'fname' [ARG1 ARG2 ... ARG9]
+     Переходит к выполнению (вызывает) подпрограммы FNAME (или внешнего
+     скрипта, если функция не была найдена). Опциональные аргументы
+     передаются в подпрограмму. См. также *note func::.
+   
+ -- Команда MGL: func 'fname' [narg=0]
+     Определяет подпрограмму с именем FNAME и задает число требуемых
+     аргументов. Аргументы будут помещены в параметры скрипта $1, $2,
+     ... $9. Отмечу, что выполнение основной программы должно быть
+     остановлено до начала определений подпрограмм. См. также *note
+     stop::,  *note return::.
+   
+ -- Команда MGL: return
+     Возвращается из подпрограммы.
+
+ -- Команда MGL: if dat 'cond'
+     Начинает блок команд, выполняемый если каждый элемент DAT
+     удовлетворяет условию COND.
+
+ -- Команда MGL: if `val'
+     Начинает блок команд, выполняемый если `val' не ноль.
+   
+ -- Команда MGL: elseif dat 'cond'
+     Начинает блок команд, выполняемый если предыдущий `if' или
+     `elseif' не был выполнен и каждый элемент DAT удовлетворяет
+     условию COND.
+
+ -- Команда MGL: elseif `val'
+     Начинает блок команд, выполняемый если предыдущий `if' или
+     `elseif' не был выполнен и `val' не ноль.
+   
+ -- Команда MGL: else
+     Начинает блок команд, выполняемый если предыдущий `if' или
+     `elseif' не был выполнен.
+   
+ -- Команда MGL: endif
+     Заканчивает определение блока `if/elseif/else'.
+
+ -- Команда MGL: for $N `v1 v2 [dv=1]'
+     Начинает блок команд, выполняемый в цикле с $N-ым аргументом
+     изменяющимся от V1 до V2 с шагом DV. Здесь N это цифра (0...9) или
+     буква (a...z).
+
+ -- Команда MGL: for $N dat
+     Начинает блок команд, выполняемый в цикле с $N-ым аргументом
+     пробегающим значения массива DAT. Здесь N это цифра (0...9) или
+     буква (a...z).
+   
+ -- Команда MGL: next
+     Заканчивает блок цикла `for'.
+
+ -- Команда MGL: once `val'
+     Определяет код (между `once on' и `once off') который будет
+     выполнен только один раз. Полезно для работы с большими данными в
+     программах типа UDAV.
+   
+ -- Команда MGL: stop
+     Останавливает выполнение скрипта.
+
+
+File: mathgl_ru.info,  Node: Command options (MGL),  Next: Suffixes,  Prev: Program flow (MGL),  Up: MGL interface
+
+8.24 Опции команд (MGL)
+==================================
+
+Опции команд позволяют легко настроить вид отдельного графика не меняя
+глобальных настроек для все рисунка. Опции указываются после команды.
+Каждая опция отделяется от предыдущей символом `;'. Опции работают так,
+что запоминают текущие настройки рисунка, применяют собственные
+настройки, выполняют команду и возвращают глобальные настройки обратно.
+Поэтому использование опций для команд обработки данных или настройки
+графика бесполезно.
+
+   Наиболее часто используемые опции - `xrange, yrange, zrange',
+устанавливающие границы изменения осей координат (и тем самым
+автоматических массивов). Например, команда `plot y; xrange 0.1 0.9'
+построит кривую с x-координатой равно распределенной в интервале 0.1
+... 0.9, а не вдоль текущей оси x.
+
+   Полный список опций: 
+
+ -- Опция MGL: alpha `val'
+ -- Опция MGL: alphadef `val'
+     Задает величину прозрачности поверхности. Значение должно быть в
+     диапазоне [0, 1]. См. также *note alphadef::
+   
+ -- Опция MGL: ambient `val'
+     Задает яркость фонового освещения. Значение должно быть в
+     диапазоне [0, 1]. См. также *note ambient::
+   
+ -- Опция MGL: crange `val1 val2'
+     Задает границы цветовой шкалы. См. также *note crange::
+   
+ -- Опция MGL: xrange `val1 val2'
+     Задает границы изменения координаты x. См. также *note xrange::
+   
+ -- Опция MGL: yrange `val1 val2'
+     Задает границы изменения координаты y. См. также *note yrange::
+   
+ -- Опция MGL: zrange `val1 val2'
+     Задает границы изменения координаты z. См. также *note zrange::
+   
+ -- Опция MGL: cut `val'
+     Задает обрезание точек за пределами осей координат. См. также
+     *note cut::
+   
+ -- Опция MGL: fontsize `val'
+     Задает размер текста. См. также *note font::
+   
+ -- Опция MGL: marksize `val'
+     Задает размер маркеров. См. также *note marksize::
+   
+ -- Опция MGL: meshnum `val'
+     Задает ориентировочное число линий, стрелок, ячеек и пр. См. также
+     *note meshnum::
+   
+ -- Опция MGL: legend 'txt'
+     Добавляет строку 'txt' во внутренний массив записей легенды. Стиль
+     линии и маркера аргумента последней вызванной команды построения
+     *note 1D plotting (MGL)::. См. также *note legend::
+
+
+File: mathgl_ru.info,  Node: Suffixes,  Next: Utilities,  Prev: Command options (MGL),  Up: MGL interface
+
+8.25 Суффиксы переменных
+==========================================
+
+Суффиксы позволяют быстро получить числовую характеристику (размер,
+максимальное или минимальное значение, сумму элементов и т.д.) массива
+данных и использовать ее как число (скаляр) в аргументах. Суффиксы
+начинаются с точки `.' сразу после (без пробелов) имени переменной и
+временного массива. Например, `a.nx' даст размер массива A по оси х,
+`b(1).max' даст максимальное значение второй строки массива B,
+`(c(:,0)^2).sum' даст сумму квадратов элементов первой колонки массива
+C и т.д.
+
+   Полный список суффиксов:
+*nx, ny, nz*
+     Размер массива в направлении x, y, z соответственно.
+
+*max*
+     Максимальное значение массива.
+
+*min*
+     Минимальное значение массива.
+
+*sum*
+     Сумма элементов массива.
+
+*a*
+     Первый элемент массива (элемент с индексами 0,0,0).
+
+*fst*
+     Первое не нулевое значение массива.
+
+*lst*
+     Последнее не нулевое значение массива.
+
+*mx, my, mz*
+     Положение максимума в направлении x, y, z соответственно.
+
+*ax, ay, az, aa*
+     Положение центра масс в направлении x, y, z соответственно или
+     среднее значение массива.
+
+*wx, wy, wz, wa*
+     Ширина в направлении x, y, z соответственно или дисперсия
+     элементов массива.
+
+*sx, sy, sz, sa*
+     Асимметрия в направлении x, y, z соответственно или элементов
+     массива.
+
+*kx, ky, kz, ka*
+     Эксцесс в направлении x, y, z соответственно или элементов массива.
+
+
+File: mathgl_ru.info,  Node: Utilities,  Prev: Suffixes,  Up: MGL interface
+
+8.26 Утилиты для MGL
+==============================
+
+MathGL содержит несколько программ для работы со скриптами MGL. Есть
+утилита для сохранения в растровое (`mgl2png', `mgl2gif') или векторное
+(`mgl2eps', `mgl2svg') изображения. Программа `mglview' показывает
+результат выполнения скрипта MGL и позволяет вращать и настраивать
+график. Также можно транслировать MGL скрипт в C++ файл с помощью
+программы `mgl2cpp'.
+
+   Все эти программы имеют схожий набор аргументов. Первым идет имя
+скрипта, а вторым идет имя выходного файлы (может быть опущено),
+последние аргументы - опции скрипта и программы. К опциям относятся
+параметры скрипта (это `$0, $1, ... $9') и настройки локали. Параметры
+скрипта имеют формат `-Nval', где N=0,1...9 - номер параметра, val -
+его значние. Например, опция `-1test' заменит `$1' на `test' в скрипте.
+Опция -Lval устанавливает локаль в значение val. Например, `-Lutf8'
+будет использовать UTF-8 в скрипте.
+
+   Также можно создавать анимированные изображения GIF или набор JPEG
+файлов с именами `frameNNNN.jpg' (где `NNNN' - номер кадра). Для этого
+в скрипте надо указать параметры анимации для каждого кадра (строками с
+коментариями `##a val' или опциями `-Aval') или в цикле (строкой с
+комментарием `##с v1 v2 [dv]' или опцию `-Cn1:n2'), которые будут
+подставлены в качестве параметра `$0' при последовательном вызове
+скрипта. Для сохранения кадров в JPEG просто добавьте команду `write
+''' в конце скрипта.
+
+
+File: mathgl_ru.info,  Node: Samples,  Next: TeX-like symbols,  Prev: MGL interface,  Up: Top
+
+9 Примеры использования MathGL
+**************************************************
+
+Эта глава содержит множество примеров кода для всех типов графиков,
+наиболее важных возможностей библиотеки и советов. Аналогичные примеры
+(с картинками) можно найти на `http://mathgl.sf.net/pictures.html'.
+MБольшинство примеров содержат код на 5 языках: C++, MGL, C, Fortran и
+Python. Однако, в некоторых я помещал только C++ код, поскольку
+соответствующий код слишком большой и ясно как его можно переписать на
+другие языки.  Минимальный код для запуска и просмотра примеров на
+различных языках следующий.  *C++ код* Для компиляции используйте: `g++
+-o sample sample.cpp -lmgl'.  #include <mgl/mgl_zb.h>
+int main()
+{
+    mglGraph *gr = new mglGraphZB;
+    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // put sample code here
+    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    gr->ShowImage();    delete gr;
+    return 0;
+}
+ *MGL скрипт* Для просмотра используйте: `mglview sample.mgl'.  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# put sample code here
+#   -->   you may sample as is :)
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ *C-ый код* Для компиляции используйте: `gcc -o sample sample.c -lmgl'.  #include <mgl/mgl_c.h>
+int main()
+{
+    HMGL gr = mgl_create_graph_zb(600,400);
+    /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    /* put sample code here              */
+    /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+    mgl_show_image(gr,"",0);
+    mgl_delete_graph(gr);
+    return 0;
+}
+ *Fortran* Для компиляции используйте: `gfortran -o sample sample.f90
+-lmgl'. Замечу, что фортран не имеет проверки аргументов. Поэтому
+обратите особое внимание на передаваемые аргументы - не путайте целые и
+действительные (с плавающей точкой) числа/аргументы. Никакого контроля
+в компиляторе для этого не предусмотрено!!!  integer gr, mgl_create_graph_zb
+gr = mgl_create_graph_zb(600,400)
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+! put sample code here
+!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+call mgl_show_image(gr,'',0)
+call mgl_delete_graph(gr)
+end
+ *Python* Для просмотра используйте: `python sample.py'.  from mathgl import *
+gr = mglGraph();
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# put sample code here
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+gr.ShowImage();
+
+* Menu:
+
+* 1D plotting samples::
+* 2D plotting samples::
+* 3D plotting samples::
+* Dual plotting samples::
+* Basic features::
+* Additional features::
+* Advanced features::
+
+
+File: mathgl_ru.info,  Node: 1D plotting samples,  Next: 2D plotting samples,  Up: Samples
+
+9.1 Примеры 1D графиков
+======================================
+
+* Menu:
+
+* Plot sample::
+* Radar sample::
+* Tens sample::
+* Area sample::
+* Area gradient sample::
+* Bars sample::
+* Bars 2 colors sample::
+* Bars above sample::
+* Bars fall sample::
+* Barh sample::
+* Step sample::
+* Stem sample::
+* Region sample::
+* Region gradient sample::
+* Error sample::
+* BoxPlot sample::
+* Mark sample::
+* TextMark sample::
+* Tube sample::
+* Text sample::
+* Torus sample::
+* Chart sample::
+* Pie chart sample::
+* Ring chart sample::
+
+
+File: mathgl_ru.info,  Node: Plot sample,  Next: Radar sample,  Up: 1D plotting samples
+
+9.1.1 Plot - пример использования
+----------------------------------------------------
+
+ [image src="../png/plot.png" ]
+
+*C++ код* mglData y(50,3);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr->Box();
+gr->Plot(y);
+ *MGL скрипт*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y
+ *C-ый код* HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_delete_data(y);
+ *Fortran* integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_delete_data(y)
+ *Python* y = mglData(50,3);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr.Box();
+gr.Plot(y);
+
+
+File: mathgl_ru.info,  Node: Radar sample,  Next: Tens sample,  Prev: Plot sample,  Up: 1D plotting samples
+
+9.1.2 Radar - пример использования
+-----------------------------------------------------
+
+ [image src="../png/radar.png" ]
+
+*C++ код* mglData y(10,3);
+y.Modify("0.4*sin(pi*(2*x+y/2))+0.1*rnd");
+gr->Radar(y,"#");
+ *MGL скрипт*
+new y 10 3
+modify y '0.4*sin(pi*(2*x+y/2))+0.1*rnd'
+radar y '#'
+ *C-ый код* HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,"0.4*sin(pi*(2*x+y/2))+0.1*rnd",0);
+mgl_radar(gr,y,"#",-1);
+mgl_delete_data(y);
+ *Fortran* integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.4*sin(pi*(2*x+y/2))+0.1*rnd',0)
+call mgl_radar(gr,y,'#',-1.)
+call mgl_delete_data(y)
+ *Python* y = mglData(10,3);
+y.Modify("0.4*sin(pi*(2*x+y/2))+0.1*rnd");
+gr.Radar(y,"#");
+
+
+File: mathgl_ru.info,  Node: Tens sample,  Next: Area sample,  Prev: Radar sample,  Up: 1D plotting samples
+
+9.1.3 Tens - пример использования
+----------------------------------------------------
+
+ [image src="../png/tens.png" ]
+
+*C++ код* mglData y(50), c(50);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)");
+c.Modify("sin(2*pi*x)");
+gr->Box();
+gr->Tens(y,c);
+ *MGL скрипт*
+new y 50
+new c 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify c 'sin(2*pi*x)'
+box
+tens y c
+ *C-ый код* HMDT y = mgl_create_data_size(50,1,1);
+HMDT c = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(c,"sin(2*pi*x)",0);
+mgl_box(gr,1);
+mgl_tens(gr,y,c,NULL);
+mgl_delete_data(y);
+mgl_delete_data(c);
+ *Fortran* integer y, c, mgl_create_data_size
+y = mgl_create_data_size(50,1,1)
+c = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(c,'sin(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_tens(gr,y,'')
+call mgl_delete_data(y)
+call mgl_delete_data(c)
+ *Python* y = mglData(50);
+c = mglData(50);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)");
+c.Modify("sin(2*pi*x)");
+gr.Box();
+gr.Tens(y,c);
+
+
+File: mathgl_ru.info,  Node: Area sample,  Next: Area gradient sample,  Prev: Tens sample,  Up: 1D plotting samples
+
+9.1.4 Area - пример использования
+----------------------------------------------------
+
+ [image src="../png/area.png" ]
+
+*C++ код* mglData y(50,3);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Area(y);
+ *MGL скрипт*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y
+ *C-ый код* HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_area(gr,y,NULL);
+mgl_delete_data(y);
+ *Fortran* integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_area(gr,y,'')
+call mgl_delete_data(y)
+ *Python* y = mglData(50,3);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Area(y);
+
+
+File: mathgl_ru.info,  Node: Area gradient sample,  Next: Bars sample,  Prev: Tens sample,  Up: 1D plotting samples
+
+9.1.5 Area с градиентной заливкой - пример использования
+-----------------------------------------------------------------------------------------------
+
+ [image src="../png/area_2.png" ]
+
+*C++ код* mglData y(50,3);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Area(y,"cbgGyr");
+ *MGL скрипт*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y 'cbgGyr'
+ *C-ый код* HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_area(gr,y,"cbgGyr");
+mgl_delete_data(y);
+ *Fortran* integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_area(gr,y,'cbgGyr')
+call mgl_delete_data(y)
+ *Python* y = mglData(50,3);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Area(y,"cbgGyr");
+
+
+File: mathgl_ru.info,  Node: Bars sample,  Next: Bars 2 colors sample,  Prev: Area gradient sample,  Up: 1D plotting samples
+
+9.1.6 Bars - пример использования
+----------------------------------------------------
+
+ [image src="../png/bars.png" ]
+
+*C++ код* mglData y(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Bars(y);
+ *MGL скрипт*
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y
+ *C-ый код* HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,"0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,NULL);
+mgl_delete_data(y);
+ *Fortran* integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'')
+call mgl_delete_data(y)
+ *Python* y = mglData(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y);
+
+
+File: mathgl_ru.info,  Node: Bars 2 colors sample,  Next: Bars above sample,  Prev: Bars sample,  Up: 1D plotting samples
+
+9.1.7 Bars (2 цвета) - пример использования
+-------------------------------------------------------------------
+
+ [image src="../png/bars_2.png" ]
+
+*C++ код* mglData y(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Bars(y,"cbgGyr");
+ *MGL скрипт*
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'cbgGyr'
+ *C-ый код* HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,"0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,"cbgGyr");
+mgl_delete_data(y);
+ *Fortran* integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'cbgGyr')
+call mgl_delete_data(y)
+ *Python* y = mglData(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,"cbgGyr");
+
+
+File: mathgl_ru.info,  Node: Bars above sample,  Next: Bars fall sample,  Prev: Bars 2 colors sample,  Up: 1D plotting samples
+
+9.1.8 Bars (один над другим) - пример использования
+-----------------------------------------------------------------------------------
+
+ [image src="../png/bars_a.png" ]
+
+*C++ код* mglData y(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Bars(y,"a");
+ *MGL скрипт*
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'a'
+ *C-ый код* HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,"0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,"a");
+mgl_delete_data(y);
+ *Fortran* integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'a')
+call mgl_delete_data(y)
+ *Python* y = mglData(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,"a");
+
+
+File: mathgl_ru.info,  Node: Bars fall sample,  Next: Bars above sample,  Prev: Bars above sample,  Up: 1D plotting samples
+
+9.1.9 Bars "водопад" - пример использования
+---------------------------------------------------------------------
+
+ [image src="../png/bars_f.png" ]
+
+*C++ код* mglData y(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Bars(y,"f");
+ *MGL скрипт*
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'f'
+ *C-ый код* HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,"0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_bars(gr,y,"f");
+mgl_delete_data(y);
+ *Fortran* integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_bars(gr,y,'f')
+call mgl_delete_data(y)
+ *Python* y = mglData(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Bars(y,"f");
+
+
+File: mathgl_ru.info,  Node: Barh sample,  Next: Step sample,  Prev: Bars fall sample,  Up: 1D plotting samples
+
+9.1.10 Barh - пример использования
+-----------------------------------------------------
+
+ [image src="../png/barh.png" ]
+
+*C++ код* mglData y(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Barh(y);
+ *MGL скрипт*
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+barh y
+ *C-ый код* HMDT y = mgl_create_data_size(10,3,1);
+mgl_data_modify(y,"0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_barh(gr,y,NULL);
+mgl_delete_data(y);
+ *Fortran* integer y, mgl_create_data_size
+y = mgl_create_data_size(10,3,1)
+call mgl_data_modify(y,'0.8*sin(pi*(2*x+y/2))+0.2*rnd')
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_barh(gr,y,'')
+call mgl_delete_data(y)
+ *Python* y = mglData(10,3);
+y.Modify("0.8*sin(pi*(2*x+y/2))+0.2*rnd");
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Barh(y);
+
+
+File: mathgl_ru.info,  Node: Step sample,  Next: Stem sample,  Prev: Barh sample,  Up: 1D plotting samples
+
+9.1.11 Step - пример использования
+-----------------------------------------------------
+
+ [image src="../png/step.png" ]
+
+*C++ код* mglData y(50,3);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr->Box();
+gr->Step(y);
+ *MGL скрипт*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+step y
+ *C-ый код* HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_box(gr,1);
+mgl_step(gr,y,NULL);
+mgl_delete_data(y);
+ *Fortran* integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_box(gr,1)
+call mgl_step(gr,y,'')
+call mgl_delete_data(y)
+ *Python* y = mglData(50,3);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr.Box();
+gr.Step(y);
+
+
+File: mathgl_ru.info,  Node: Stem sample,  Next: Region sample,  Prev: Step sample,  Up: 1D plotting samples
+
+9.1.12 Stem - пример использования
+-----------------------------------------------------
+
+ [image src="../png/stem.png" ]
+
+*C++ код* mglData y(50,3);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr->Org=mglPoint(0,0);
+gr->Box();
+gr->Stem(y,"o");
+ *MGL скрипт*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+stem y 'o'
+ *C-ый код* HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_stem(gr,y,"o");
+mgl_delete_data(y);
+ *Fortran* integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_set_origin(gr,0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_stem(gr,y,'o')
+call mgl_delete_data(y)
+ *Python* y = mglData(50,3);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr.SetOrigin(0.,0.);
+gr.Box();
+gr.Stem(y,"o");
+
+
+File: mathgl_ru.info,  Node: Region sample,  Next: Region gradient sample,  Prev: Stem sample,  Up: 1D plotting samples
+
+9.1.13 Region - пример использования
+-------------------------------------------------------
+
+ [image src="../png/region.png" ]
+
+*C++ код* mglData y1(50), y2(50);
+y1.Modify("0.3*sin(2*pi*x)");
+y2.Modify("0.5+0.3*cos(2*pi*x)");
+gr->Box();
+gr->Region(y1,y2,"r");
+gr->Plot(y1,"k2");
+gr->Plot(y2,"k2");
+ *MGL скрипт*
+new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'r'
+plot y1 'k2'
+plot y2 'k2'
+ *C-ый код* HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,"0.3*sin(2*pi*x)",0);
+mgl_data_modify(y2,"0.5+0.3*cos(2*pi*x)",0);
+mgl_box(gr,1);
+mgl_region(gr,y1,y2,"r",1);
+mgl_plot(gr,y1,"k2");
+mgl_plot(gr,y2,"k2");
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+ *Fortran* integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,'0.3*sin(2*pi*x)',0);
+call mgl_data_modify(y2,'0.5+0.3*cos(2*pi*x)',0);
+call mgl_box(gr,1);
+call mgl_region(gr,y1,y2,'r',1);
+call mgl_plot(gr,y1,'k2');
+call mgl_plot(gr,y2,'k2');
+call mgl_delete_data(y1);
+call mgl_delete_data(y2);
+ *Python* y1, y2, x = mglData(50), mglData(50), mglData(50);
+y1.Modify("0.3*sin(2*pi*x)");
+y2.Modify("0.5+0.3*cos(2*pi*x)");
+gr.Box();
+gr.Region(y1,y2,"r");
+gr.Plot(y1,"k2");
+gr.Plot(y2,"k2");
+
+
+File: mathgl_ru.info,  Node: Region gradient sample,  Next: Error sample,  Prev: Region sample,  Up: 1D plotting samples
+
+9.1.14 Region с градиентной заливкой - пример использования
+--------------------------------------------------------------------------------------------------
+
+ [image src="../png/region_2.png" ]
+
+*C++ код* mglData y1(50), y2(50);
+y1.Modify("0.3*sin(2*pi*x)");
+y2.Modify("0.5+0.3*cos(2*pi*x)");
+gr->Box();
+gr->Region(y1,y2,"yr");
+gr->Plot(y1,"k2");
+gr->Plot(y2,"k2");
+ *MGL скрипт*
+new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'yr'
+plot y1 'k2'
+plot y2 'k2'
+ *C-ый код* HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,"0.3*sin(2*pi*x)",0);
+mgl_data_modify(y2,"0.5+0.3*cos(2*pi*x)",0);
+mgl_box(gr,1);
+mgl_region(gr,y1,y2,"yr",1);
+mgl_plot(gr,y1,"k2");
+mgl_plot(gr,y2,"k2");
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+ *Fortran* integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,'0.3*sin(2*pi*x)',0);
+call mgl_data_modify(y2,'0.5+0.3*cos(2*pi*x)',0);
+call mgl_box(gr,1);
+call mgl_region(gr,y1,y2,'yr',1);
+call mgl_plot(gr,y1,'k2');
+call mgl_plot(gr,y2,'k2');
+call mgl_delete_data(y1);
+call mgl_delete_data(y2);
+ *Python* y1, y2, x = mglData(50), mglData(50), mglData(50);
+y1.Modify("0.3*sin(2*pi*x)");
+y2.Modify("0.5+0.3*cos(2*pi*x)");
+gr.Box();
+gr.Region(y1,y2,"yr");
+gr.Plot(y1,"k2");
+gr.Plot(y2,"k2");
+
+
+File: mathgl_ru.info,  Node: Error sample,  Next: BoxPlot sample,  Prev: Region gradient sample,  Up: 1D plotting samples
+
+9.1.15 Error - пример использования
+------------------------------------------------------
+
+ [image src="../png/error.png" ]
+
+*C++ код* mglData y(50,1), x0(10), y0(10), ex(10), ey(10);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+x0.Modify("2*x-1 + 0.1*rnd-0.05");
+y0.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1");
+ey.Modify("0.2"); ex.Modify("0.1");
+gr->Box();
+gr->Plot(y);
+gr->Error(x0,y0,ex,ey,"ko");
+ *MGL скрипт*
+new y 50
+new x0 10
+new y0 10
+new ex 10
+new ey 10
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify x0 '2*x-1 + 0.1*rnd-0.05'
+modify y0 '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1'
+modify ey '0.2'
+modify ex '0.1'
+box
+plot y
+error x0 y0 ex ey 'ko'
+ *C-ый код* HMDT y = mgl_create_data_size(50,1,1);
+HMDT x0 = mgl_create_data_size(10,1,1);
+HMDT y0 = mgl_create_data_size(10,1,1);
+HMDT ex = mgl_create_data_size(10,1,1);
+HMDT ey = mgl_create_data_size(10,1,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(x0,"2*x-1 + 0.1*rnd-0.05",0);
+mgl_data_modify(y0,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1",0);
+mgl_data_modify(ey,"0.2",0); mgl_data_modify(ex,"0.1",0);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_error_exy(gr,x0,y0,ex,ey,"ko");
+mgl_delete_data(x0); mgl_delete_data(y0);
+mgl_delete_data(ex); mgl_delete_data(ey);
+mgl_delete_data(y);
+ *Fortran* integer y, x0, y0, ex, ey, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+x0 = mgl_create_data_size(10,1,1)
+y0 = mgl_create_data_size(10,1,1)
+ex = mgl_create_data_size(10,1,1)
+ey = mgl_create_data_size(10,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(x0,'2*x-1 + 0.1*rnd-0.05',0);
+call mgl_data_modify(y0,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + &
+                         0.2*sin(pi*x) + 0.2*rnd-0.1',0);
+call mgl_data_modify(ey,'0.2',0)
+call mgl_data_modify(ex,'0.1',0);
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_error_exy(gr,x0,y0,ex,ey,'ko')
+call mgl_delete_data(x0)
+call mgl_delete_data(y0)
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(y)
+ *Python* y, x0, y0, ex, ey = mglData(50,1), mglData(10), mglData(10), mglData(10), mglData(10);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+x0.Modify("2*x-1+0.1*rnd-0.05");
+y0.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)+0.2*rnd-0.1");
+ey.Modify("0.2");   ex.Modify("0.1");
+gr.Box();           gr.Plot(y);
+gr.Error(x0,y0,ex,ey,"ko");
+
+
+File: mathgl_ru.info,  Node: BoxPlot sample,  Next: Mark sample,  Prev: Error sample,  Up: 1D plotting samples
+
+9.1.16 BoxPlot - пример использования
+--------------------------------------------------------
+
+ [image src="../png/boxplot.png" ]
+
+*C++ код* mglData a(10,7);
+a.Modify("(2*rnd-1)^3/2");
+gr->Box();
+gr->BoxPlot(a);
+gr->Plot(a," ko");
+ *MGL скрипт*
+new a 10 7
+modify a '(2*rnd-1)^3/2'
+box
+boxplot a
+plot a ' ko'
+ *C-ый код* HMDT a = mgl_create_data_size(10,7,1);
+mgl_data_modify(a,"(2*rnd-1)^3/2",0);
+mgl_box(gr,1);
+mgl_plot(gr,a," ko");
+mgl_boxplot(gr,a,NULL);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+y = mgl_create_data_size(10,7,1)
+call mgl_data_modify(a,'(2*rnd-1)^3/2',0);
+call mgl_box(gr,1)
+call mgl_plot(gr,a,' ko')
+call mgl_boxplot(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(10,7);
+a.Modify("(2*rnd-1)^3/2");
+gr.Box();
+gr.Plot(a," ko");
+gr.BoxPlot(a);
+
+
+File: mathgl_ru.info,  Node: Mark sample,  Next: TextMark sample,  Prev: BoxPlot sample,  Up: 1D plotting samples
+
+9.1.17 Mark - пример использования
+-----------------------------------------------------
+
+ [image src="../png/mark.png" ]
+
+*C++ код* mglData y(50,3), y1(50);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+y1.Modify("0.5+0.3*cos(2*pi*x)");
+gr->Box();
+gr->Mark(y,y1,"bs");
+ *MGL скрипт*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+mark y y1 'bs'
+ *C-ый код* HMDT y = mgl_create_data_size(50,3,1);
+HMDT y1 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_data_modify(y1,"0.5+0.3*cos(2*pi*x)",0);
+mgl_box(gr,1);
+mgl_mark_y(gr,y,y1,"bs");
+mgl_delete_data(y);
+mgl_delete_data(y1);
+ *Fortran* integer y, y1, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+y1 = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_data_modify(y1,'0.5+0.3*cos(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_mark_y(gr,y,y1,'bs')
+call mgl_delete_data(y)
+call mgl_delete_data(y1)
+ *Python* y, y1 = mglData(50,3), mglData(50);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);     y.Modify("cos(2*pi*x)",2);
+y1.Modify("0.5+0.3*cos(2*pi*x)");
+gr.Box();
+gr.Mark(y,y1,"bs");
+
+
+File: mathgl_ru.info,  Node: TextMark sample,  Next: Tube sample,  Prev: Mark sample,  Up: 1D plotting samples
+
+9.1.18 TextMark - пример использования
+---------------------------------------------------------
+
+ [image src="../png/textmark.png" ]
+
+*C++ код* mglData y(50,3), y1(50);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+y1.Modify("0.5+0.3*cos(2*pi*x)");
+gr->Box();
+gr->TextMark(y,y1,"\\gamma");
+ *MGL скрипт*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+textmark y y1 '\gamma'
+ *C-ый код* HMDT y, y1;
+y = mgl_create_data_size(50,3,1);
+y1 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_data_modify(y1,"0.5+0.3*cos(2*pi*x)",0);
+mgl_box(gr,1);
+mgl_textmark_yr(gr,y,y1,"\\gamma","");
+mgl_delete_data(y);
+mgl_delete_data(y1);
+ *Fortran* integer y, y1, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+y1 = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_data_modify(y1,'0.5+0.3*cos(2*pi*x)',0)
+call mgl_box(gr,1)
+call mgl_textmark_yr(gr,y,y1,'\gamma','')
+call mgl_delete_data(y)
+call mgl_delete_data(y1)
+ *Python* y, y1 = mglData(50,3), mglData(50);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);     y.Modify("cos(2*pi*x)",2);
+y1.Modify("0.5+0.3*cos(2*pi*x)");
+gr.Box();
+gr.TextMark(y,y1,"\\gamma");
+
+
+File: mathgl_ru.info,  Node: Tube sample,  Next: Text sample,  Prev: TextMark sample,  Up: 1D plotting samples
+
+9.1.19 Tube - пример использования
+-----------------------------------------------------
+
+ [image src="../png/tube.png" ]
+
+*C++ код* mglData y(50,3);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Tube(y,0.05);
+ *MGL скрипт*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+rotate 40 60
+light on
+box
+tube y 0.05
+ *C-ый код* HMDT y = mgl_create_data_size(50,3,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_tube(gr,y,0.05,NULL);
+mgl_delete_data(y);
+ *Fortran* integer y, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_tube(gr,y,0.05,'')
+call mgl_delete_data(y)
+ *Python* y = mglData(50,3);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);  y.Modify("cos(2*pi*x)",2);
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Tube(y,0.05);
+
+
+File: mathgl_ru.info,  Node: Text sample,  Next: Torus sample,  Prev: Tube sample,  Up: 1D plotting samples
+
+9.1.20 Text - пример использования
+-----------------------------------------------------
+
+ [image src="../png/text.png" ]
+
+*C++ код* mglData y(50,3);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+gr->Box();
+gr->Plot(y.SubData(-1,0));
+gr->Text(y,"This is very long string drawn along a curve",":k");
+gr->Text(y,"Another string drawn above a curve","T:r");
+ *MGL скрипт*
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y(:,0)
+text y 'This is very long string drawn along a curve' ':k'
+text y 'Another string drawn above a curve' 'T:r'
+ *C-ый код* HMDT y = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_box(gr,1);
+mgl_plot(gr,y,NULL);
+mgl_text_y(gr,y,"This is very long string drawn along a curve",":k",-1.);
+mgl_text_y(gr,y,"Another string drawn above a curve","T:r",-1.);
+mgl_delete_data(y);
+ *Fortran* integer y, mgl_create_data_size
+y = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_box(gr,1)
+call mgl_plot(gr,y,'')
+call mgl_text_y(gr,y,'This is very long string drawn along a curve',':k',-1.)
+call mgl_text_y(gr,y,'Another string drawn above a curve','T:r',-1.)
+call mgl_delete_data(y)
+ *Python* y = mglData(50,3);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);     y.Modify("cos(2*pi*x)",2);
+gr.Box();
+gr.Plot(y.SubData(-1,0));
+gr.Text(y,"This is very long string drawn along a curve",":k");
+gr.Text(y,"Another string drawn above a curve","T:r");
+
+
+File: mathgl_ru.info,  Node: Torus sample,  Next: Chart sample,  Prev: Text sample,  Up: 1D plotting samples
+
+9.1.21 Torus - пример использования
+------------------------------------------------------
+
+ [image src="../png/torus.png" ]
+
+*C++ код* mglData y1(50), y2(50);
+y1.Modify("0.5+0.3*cos(2*pi*x)");
+y2.Modify("0.3*sin(2*pi*x)");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Torus(y1,y2,"pz");
+ *MGL скрипт*
+new y1 50
+new y2 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+rotate 40 60
+light on
+box
+torus y1 y2 'pz'
+ *C-ый код* HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,"0.5+0.3*cos(2*pi*x)",0);
+mgl_data_modify(y2,"0.3*sin(2*pi*x)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_torus(gr,y1,y2,"pz");
+mgl_delete_data(y1);
+mgl_delete_data(y2);
+ *Fortran* integer y1, y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y1,"0.5+0.3*cos(2*pi*x)",0);
+call mgl_data_modify(y2,"0.3*sin(2*pi*x)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_torus(gr,y1,y2,'pz')
+call mgl_delete_data(y1)
+call mgl_delete_data(y2)
+ *Python* y1, y2 = mglData(50), mglData(50);
+y1.Modify("0.5+0.3*cos(2*pi*x)");
+y2.Modify("0.3*sin(2*pi*x)");
+gr.Rotate(40,60);    gr.Light(True);
+gr.Box();
+gr.Torus(y1,y2,"pz");
+
+
+File: mathgl_ru.info,  Node: Chart sample,  Next: Pie chart sample,  Prev: Torus sample,  Up: 1D plotting samples
+
+9.1.22 Chart - пример использования
+------------------------------------------------------
+
+ [image src="../png/chart.png" ]
+
+*C++ код* mglData ch(7,2);
+ch.Modify("rnd+0.1");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Chart(ch,"#");
+ *MGL скрипт*
+new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+box
+chart ch
+ *C-ый код* HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,"rnd+0.1",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_chart(gr,ch,"#");
+mgl_delete_data(ch);
+ *Fortran* integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'#')
+call mgl_delete_data(ch)
+ *Python* ch = mglData(7,2);  ch.Modify("rnd+0.1");
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Chart(ch,"#");
+
+
+File: mathgl_ru.info,  Node: Pie chart sample,  Next: Ring chart sample,  Prev: Chart sample,  Up: 1D plotting samples
+
+9.1.23 Pie chart - пример использования
+----------------------------------------------------------
+
+ [image src="../png/pie_chart.png" ]
+
+*C++ код* mglData ch(7,2);
+ch.Modify("rnd+0.1");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->SetFunc("(y+1)/2*cos(pi*x)","(y+1)/2*sin(pi*x)");
+gr->Box();
+gr->Chart(ch,"bgr cmy#");
+ *MGL скрипт*
+new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+1)/2*cos(pi*x)' '(y+1)/2*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+ *C-ый код* HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,"rnd+0.1",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_func(gr,"(y+1)/2*cos(pi*x)","(y+1)/2*sin(pi*x)",0);
+mgl_box(gr,1);
+mgl_chart(gr,ch,"bgr cmy#");
+mgl_delete_data(ch);
+ *Fortran* integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_func(gr,'(y+1)/2*cos(pi*x)','(y+1)/2*sin(pi*x)','');
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'bgr cmy#')
+call mgl_delete_data(ch)
+ *Python* ch = mglData(7,2);  ch.Modify("rnd+0.1");
+gr.Rotate(40,60);   gr.Light(True);
+gr.SetFunc("(y+1)/2*cos(pi*x)","(y+1)/2*sin(pi*x)");
+gr.Box();
+gr.Chart(ch,"bgr cmy#");
+
+
+File: mathgl_ru.info,  Node: Ring chart sample,  Prev: Pie chart sample,  Up: 1D plotting samples
+
+9.1.24 Ring chart - пример использования
+-----------------------------------------------------------
+
+ [image src="../png/ring_chart.png" ]
+
+*C++ код* mglData ch(7,2);
+ch.Modify("rnd+0.1");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->SetFunc("(y+2)/3*cos(pi*x)","(y+2)/3*sin(pi*x)");
+gr->Box();
+gr->Chart(ch,"bgr cmy#");
+ *MGL скрипт*
+new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+2)/3*cos(pi*x)' '(y+2)/3*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+ *C-ый код* HMDT ch = mgl_create_data_size(7,2,1);
+mgl_data_modify(ch,"rnd+0.1",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_func(gr,"(y+2)/3*cos(pi*x)","(y+2)/3*sin(pi*x)",0);
+mgl_box(gr,1);
+mgl_chart(gr,ch,"bgr cmy#");
+mgl_delete_data(ch);
+ *Fortran* integer ch, mgl_create_data_size
+ch = mgl_create_data_size(7,2,1)
+call mgl_data_modify(ch,'rnd+0.1',0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_func(gr,'(y+2)/3*cos(pi*x)','(y+2)/3*sin(pi*x)','');
+call mgl_box(gr,1)
+call mgl_chart(gr,ch,'bgr cmy#')
+call mgl_delete_data(ch)
+ *Python* ch = mglData(7,2);  ch.Modify("rnd+0.1");
+gr.Rotate(40,60);   gr.Light(True);
+gr.SetFunc("(y+2)/3*cos(pi*x)","(y+2)/3*sin(pi*x)");
+gr.Box();
+gr.Chart(ch,"bgr cmy#");
+
+
+File: mathgl_ru.info,  Node: 2D plotting samples,  Next: 3D plotting samples,  Prev: 1D plotting samples,  Up: Samples
+
+9.2 Примеры 2D графиков
+======================================
+
+* Menu:
+
+* Surf sample::
+* Transparent surface sample::
+* Surface in fog sample::
+* Sharp colors sample::
+* Mesh sample::
+* Fall sample::
+* Belt sample::
+* Tile sample::
+* Boxs sample::
+* Dens sample::
+* Cont sample::
+* ContF sample::
+* ContD sample::
+* Axial sample::
+* Grad sample::
+
+
+File: mathgl_ru.info,  Node: Surf sample,  Next: Transparent surface sample,  Up: 2D plotting samples
+
+9.2.1 Surf - пример использования
+----------------------------------------------------
+
+ [image src="../png/surf.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Surf(a);
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Surf(a);
+
+
+File: mathgl_ru.info,  Node: Transparent surface sample,  Next: Surface in fog sample,  Prev: Surf sample,  Up: 2D plotting samples
+
+9.2.2 Transparent surface - пример использования
+-------------------------------------------------------------------
+
+ [image src="../png/surf_alpha.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Alpha(true);
+gr->Box();
+gr->Surf(a);
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surf a
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Alpha(True);
+gr.Surf(a);
+
+
+File: mathgl_ru.info,  Node: Surface in fog sample,  Next: Sharp colors sample,  Prev: Transparent surface sample,  Up: 2D plotting samples
+
+9.2.3 Surface in fog - пример использования
+--------------------------------------------------------------
+
+ [image src="../png/surf_fog.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Fog(1);
+gr->Box();
+gr->Surf(a);
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+fog 1
+box
+surf a
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_fog(gr,1.,0.25);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_fog(gr,1.,0.25)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Fog(1);
+gr.Surf(a);
+
+
+File: mathgl_ru.info,  Node: Sharp colors sample,  Next: Mesh sample,  Prev: Surface in fog sample,  Up: 2D plotting samples
+
+9.2.4 Sharp colors - пример использования
+------------------------------------------------------------
+
+ [image src="../png/surf_sl.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Surf(a,"BbcyrR|");
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a 'BbcyrR|'
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,"BbcyrR|");
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'BbcyrR|')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Surf(a,"BbcyrR|");
+
+
+File: mathgl_ru.info,  Node: Mesh sample,  Next: Fall sample,  Prev: Sharp colors sample,  Up: 2D plotting samples
+
+9.2.5 Mesh - пример использования
+----------------------------------------------------
+
+ [image src="../png/mesh.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Box();
+gr->Mesh(a);
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+mesh a
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_mesh(gr,a,0);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_mesh(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Mesh(a);
+
+
+File: mathgl_ru.info,  Node: Fall sample,  Next: Belt sample,  Prev: Mesh sample,  Up: 2D plotting samples
+
+9.2.6 Fall - пример использования
+----------------------------------------------------
+
+ [image src="../png/fall.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Box();
+gr->Fall(a);
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+fall a
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_fall(gr,a,0);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_fall(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Fall(a);
+
+
+File: mathgl_ru.info,  Node: Belt sample,  Next: Tile sample,  Prev: Fall sample,  Up: 2D plotting samples
+
+9.2.7 Belt - пример использования
+----------------------------------------------------
+
+ [image src="../png/belt.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Belt(a);
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+belt a
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_belt(gr,a,0);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_belt(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Belt(a);
+
+
+File: mathgl_ru.info,  Node: Tile sample,  Next: Boxs sample,  Prev: Belt sample,  Up: 2D plotting samples
+
+9.2.8 Tile - пример использования
+----------------------------------------------------
+
+ [image src="../png/tile.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Tile(a);
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+tile a
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_tile(gr,a,0);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_tile(gr,a,'')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Tile(a);
+
+
+File: mathgl_ru.info,  Node: Boxs sample,  Next: Dens sample,  Prev: Tile sample,  Up: 2D plotting samples
+
+9.2.9 Boxs - пример использования
+----------------------------------------------------
+
+ [image src="../png/boxs.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);  gr->Light(true);
+gr->Org = mglPoint(0,0,0);
+gr->Box();
+gr->Boxs(a);
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+origin 0 0 0
+box
+boxs a
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_boxs(gr,a,0,0.);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_origin(gr,0.,0.,0.);
+call mgl_box(gr,1)
+call mgl_boxs(gr,a,'',0.)
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);       gr.Light(True);
+gr.SetOrigin(0.,0.,0.); gr.Box();
+gr.Boxs(a);
+
+
+File: mathgl_ru.info,  Node: Dens sample,  Next: Cont sample,  Prev: Boxs sample,  Up: 2D plotting samples
+
+9.2.10 Dens - пример использования
+-----------------------------------------------------
+
+ [image src="../png/dens.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Box();
+gr->Dens(a);
+gr->Colorbar();
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+dens a
+colorbar
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_box(gr,1);
+mgl_dens(gr,a,0,0);
+mgl_colorbar(gr,"",0);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_box(gr,1)
+call mgl_dens(gr,a,'',0)
+call mgl_colorbar(gr,'',0)
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Box();
+gr.Dens(a);
+gr.Colorbar();
+
+
+File: mathgl_ru.info,  Node: Cont sample,  Next: ContF sample,  Prev: Dens sample,  Up: 2D plotting samples
+
+9.2.11 Cont - пример использования
+-----------------------------------------------------
+
+ [image src="../png/cont.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Box();
+gr->Cont(a);
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+cont a
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_cont(gr,a,0,7,NAN);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+real zero, nan
+! I don't know the NaN symbol in Fortran. So I produce it as zero/zero
+zero = 0; nan = zero/zero
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_cont(gr,a,'',7,nan)
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);
+gr.Box();
+gr.Cont(a);
+
+
+File: mathgl_ru.info,  Node: ContF sample,  Next: ContD sample,  Prev: Cont sample,  Up: 2D plotting samples
+
+9.2.12 ContF - пример использования
+------------------------------------------------------
+
+ [image src="../png/contf.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);  gr->Light(true);
+gr->Box();
+gr->ContF(a);
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+contf a
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_contf(gr,a,0,7,NAN);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+real zero, nan
+! I don't know the NaN symbol in Fortran. So I produce it as zero/zero
+zero = 0; nan = zero/zero
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_contf(gr,a,'',7,nan)
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.ContF(a);
+
+
+File: mathgl_ru.info,  Node: ContD sample,  Next: Axial sample,  Prev: ContF sample,  Up: 2D plotting samples
+
+9.2.13 ContD - пример использования
+------------------------------------------------------
+
+ [image src="../png/contd.png" ]
+
+*C++ код* mglData a(50,40), v(9);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+v.Fill(-1,1);
+gr->Box();
+gr->ContD(v,a);
+gr->Colorbar(v);
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+var v 9 -1 1
+box
+contd v a
+colorbar v
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+HMDT v = mgl_create_data_size(9,1,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_data_fill(v,-1.,1.,'x');
+mgl_box(gr,1);
+mgl_contd_val(gr,v,a,0,0);
+mgl_colorbar_val(gr,v,NULL,0);
+mgl_delete_data(a);
+mgl_delete_data(v);
+ *Fortran* integer a, v, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+v = mgl_create_data_size(9,1,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_data_fill(v,-1.,1.,'x');
+call mgl_box(gr,1)
+call mgl_contd_val(gr,v,a,'',0);
+call mgl_colorbar_val(gr,v,NULL,0);
+call mgl_delete_data(a)
+call mgl_delete_data(v)
+ *Python* a, v = mglData(50,40), mglData(9);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+v.Fill(-1,1);
+gr.Box();
+gr.ContD(v,a);
+gr.Colorbar(v);
+
+
+File: mathgl_ru.info,  Node: Axial sample,  Next: Grad sample,  Prev: ContD sample,  Up: 2D plotting samples
+
+9.2.14 Axial - пример использования
+------------------------------------------------------
+
+ [image src="../png/axial.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Alpha(true);
+gr->Box();
+gr->Axial(a);
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+axial a
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_axial(gr,a,"",3);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_axial(gr,a,'',3)
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.Box();
+gr.Axial(a);
+
+
+File: mathgl_ru.info,  Node: Grad sample,  Prev: Axial sample,  Up: 2D plotting samples
+
+9.2.15 Grad - пример использования
+-----------------------------------------------------
+
+ [image src="../png/grad.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Box();  gr->Alpha(true);    gr->Dens(a);
+gr->Grad(a);
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box:alpha on:dens a
+grad a
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_box(gr,1);
+mgl_set_alpha(gr,1);
+mgl_dens(gr,a,0,0);
+mgl_grad(gr,a,0,0);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_box(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_dens(gr,a,'',0)
+call mgl_grad(gr,a,'',0)
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Box();   gr.Alpha(1);    gr.Dens(a);
+gr.Colorbar();
+
+
+File: mathgl_ru.info,  Node: 3D plotting samples,  Next: Dual plotting samples,  Prev: 2D plotting samples,  Up: Samples
+
+9.3 Примеры 3D графиков
+======================================
+
+* Menu:
+
+* Surf3 sample::
+* Cloud sample::
+* CloudP sample::
+* Dens3 sample::
+* Cont3 sample::
+* ContF3 sample::
+* Cont projection sample::
+* Dens projection sample::
+* CutMinMax sample::
+* Isocaps sample::
+* CutOff sample::
+
+
+File: mathgl_ru.info,  Node: Surf3 sample,  Next: Cloud sample,  Up: 3D plotting samples
+
+9.3.1 Surf3 - пример использования
+-----------------------------------------------------
+
+ [image src="../png/surf3.png" ]
+
+*C++ код* mglData a(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Alpha(true);
+gr->Box();
+gr->Surf3(a);
+ *MGL скрипт*
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+box
+surf3 a
+ *C-ый код* HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf3(gr,a,0,3);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'',3)
+call mgl_delete_data(a)
+ *Python* a = mglData(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.Box();
+gr.Surf3(a);
+
+
+File: mathgl_ru.info,  Node: Cloud sample,  Next: CloudP sample,  Prev: Surf3 sample,  Up: 3D plotting samples
+
+9.3.2 Cloud - пример использования
+-----------------------------------------------------
+
+ [image src="../png/cloud.png" ]
+
+*C++ код* mglData a(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr->Rotate(40,60);
+gr->Alpha(true);
+gr->Box();
+gr->Cloud(a,"wyrRk");
+ *MGL скрипт*
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+box
+cloud a 'wyrRk'
+ *C-ый код* HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_cloud(gr,a,"wyrRk",1.);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_cloud(gr,a,'wyrRk',1.)
+call mgl_delete_data(a)
+ *Python* a = mglData(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr.Rotate(40,60);   gr.Alpha(True);
+gr.Box();
+gr.Cloud(a,"wyrRk");
+
+
+File: mathgl_ru.info,  Node: CloudP sample,  Next: Dens3 sample,  Prev: Cloud sample,  Up: 3D plotting samples
+
+9.3.3 CloudP - пример использования
+------------------------------------------------------
+
+ [image src="../png/cloudp.png" ]
+
+*C++ код* mglData a(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr->Rotate(40,60);
+gr->Alpha(true);
+gr->Box();
+gr->CloudP(a,"wyrRk");
+ *MGL скрипт* Not available.  *C-ый код* HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_cloudp(gr,a,"wyrRk",1.);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_cloudp(gr,a,'wyrRk',1.)
+call mgl_delete_data(a)
+ *Python* Not available.
+
+
+File: mathgl_ru.info,  Node: Dens3 sample,  Next: Cont3 sample,  Prev: CloudP sample,  Up: 3D plotting samples
+
+9.3.4 Dens3 - пример использования
+-----------------------------------------------------
+
+ [image src="../png/densa.png" ]
+
+*C++ код* mglData a(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr->Rotate(40,60);  gr->Alpha(true);    gr->Org = mglPoint(0,0,0);
+gr->Box();
+gr->DensA(a);
+gr->Axis();
+ *MGL скрипт*
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+origin 0 0 0
+box
+densa a
+axis
+ *C-ый код* HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_alpha(gr,1);
+mgl_set_origin(gr,0.,0.,0.);
+mgl_box(gr,1);
+mgl_dens3_all(gr,a,0);
+mgl_axis(gr,"xyz");
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_alpha(gr,1)
+call mgl_set_origin(gr,0.,0.,0.);
+call mgl_box(gr,1)
+call mgl_dens3_all(gr,a,'')
+call mgl_axis(gr,"xyz")
+call mgl_delete_data(a)
+ *Python* a = mglData(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr.Rotate(40,60);       gr.Alpha(True);
+gr.SetOrigin(0,0,0);    gr.Box();
+gr.Axis();
+gr.DensA(a);
+
+
+File: mathgl_ru.info,  Node: Cont3 sample,  Next: ContF3 sample,  Prev: Dens3 sample,  Up: 3D plotting samples
+
+9.3.5 Cont3 - пример использования
+-----------------------------------------------------
+
+ [image src="../png/conta.png" ]
+
+*C++ код* mglData a(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr->Rotate(40,60);
+gr->Box();
+gr->ContA(a);
+ *MGL скрипт*
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+conta a
+ *C-ый код* HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_cont_all(gr,a,0,7);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_cont_all(gr,a,'',7)
+call mgl_delete_data(a)
+ *Python* a = mglData(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr.Rotate(40,60);
+gr.Box();
+gr.ContA(a);
+
+
+File: mathgl_ru.info,  Node: ContF3 sample,  Next: Cont projection sample,  Prev: Cont3 sample,  Up: 3D plotting samples
+
+9.3.6 ContF3 - пример использования
+------------------------------------------------------
+
+ [image src="../png/contfa.png" ]
+
+*C++ код* mglData a(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr->Rotate(40,60);  gr->Light(true);
+gr->Box();
+gr->ContFA(a);
+ *MGL скрипт*
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+box
+contfa a
+ *C-ый код* HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_contf_all(gr,a,0,7);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_contf_all(gr,a,'',7)
+call mgl_delete_data(a)
+ *Python* a = mglData(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.ContFA(a);
+
+
+File: mathgl_ru.info,  Node: Cont projection sample,  Next: Dens projection sample,  Prev: ContF3 sample,  Up: 3D plotting samples
+
+9.3.7 Cont projection - пример использования
+---------------------------------------------------------------
+
+ [image src="../png/cont_xyz.png" ]
+
+*C++ код* mglData a(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr->Rotate(40,60);
+gr->Box();
+gr->ContX(a.Sum("x"),"",-1);
+gr->ContY(a.Sum("y"),"",1);
+gr->ContZ(a.Sum("z"),"",-1);
+ *MGL скрипт*
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+contx s '' -1
+sum s a 'y'
+conty s '' 1
+sum s a 'z'
+contz s '' -1
+ *C-ый код* HMDT a = mgl_create_data_size(60,50,40), s;
+mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+s=mgl_data_sum(a,"x"); mgl_cont_x(gr,s,0,-1.,7); mgl_delete_data(s);
+s=mgl_data_sum(a,"y"); mgl_cont_y(gr,s,0,1.,7); mgl_delete_data(s);
+s=mgl_data_sum(a,"z"); mgl_cont_z(gr,s,0,-1.,7); mgl_delete_data(s);
+mgl_delete_data(a);
+ *Fortran* integer a,s, mgl_create_data_size, mgl_data_sum
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+s=mgl_data_sum(a,'x')
+call mgl_cont_x(gr,s,'',-1.,7)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'y')
+call mgl_cont_y(gr,s,'',1.,7)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'z')
+call mgl_cont_z(gr,s,'',-1.,7)
+call mgl_delete_data(s)
+call mgl_delete_data(a)
+ *Python* a = mglData(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr.Rotate(40,60);               gr.Box();
+gr.ContX(a.Sum("x"),"",-1);
+gr.ContY(a.Sum("y"),"",1);
+gr.ContZ(a.Sum("z"),"",-1);
+
+
+File: mathgl_ru.info,  Node: Dens projection sample,  Next: CutMinMax sample,  Prev: Cont projection sample,  Up: 3D plotting samples
+
+9.3.8 Dens projection - пример использования
+---------------------------------------------------------------
+
+ [image src="../png/dens_xyz.png" ]
+
+*C++ код* mglData a(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr->Rotate(40,60);
+gr->Box();
+gr->DensX(a.Sum("x"),"",-1);
+gr->DensY(a.Sum("y"),"",1);
+gr->DensZ(a.Sum("z"),"",-1);
+ *MGL скрипт*
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+densx s '' -1
+sum s a 'y'
+densy s '' 1
+sum s a 'z'
+densz s '' -1
+ *C-ый код* HMDT a, s; a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+s=mgl_data_sum(a,"x"); mgl_dens_x(gr,s,0,-1.); mgl_delete_data(s);
+s=mgl_data_sum(a,"y"); mgl_dens_y(gr,s,0,1.); mgl_delete_data(s);
+s=mgl_data_sum(a,"z"); mgl_dens_z(gr,s,0,-1.); mgl_delete_data(s);
+mgl_delete_data(a);
+ *Fortran* integer a,s, mgl_create_data_size, mgl_data_sum
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+s=mgl_data_sum(a,'x')
+call mgl_dens_x(gr,s,'',-1.)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'y')
+call mgl_dens_y(gr,s,'',1.)
+call mgl_delete_data(s)
+s=mgl_data_sum(a,'z')
+call mgl_dens_z(gr,s,'',-1.)
+call mgl_delete_data(s)
+call mgl_delete_data(a)
+ *Python* a = mglData(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr.Rotate(40,60);               gr.Box();
+gr.DensX(a.Sum("x"),"",-1);
+gr.DensY(a.Sum("y"),"",1);
+gr.DensZ(a.Sum("z"),"",-1);
+
+
+File: mathgl_ru.info,  Node: CutMinMax sample,  Next: Isocaps sample,  Prev: Dens projection sample,  Up: 3D plotting samples
+
+9.3.9 CutMinMax - пример использования
+---------------------------------------------------------
+
+ [image src="../png/cutminmax.png" ]
+
+*C++ код* mglData a(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Alpha(true);
+gr->CutMin = mglPoint(0,-1,-1); gr->CutMax = mglPoint(1,0,1);
+gr->Box();
+gr->Surf3(a);
+ *MGL скрипт*
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut 0 -1 -1 1 0 1
+box
+surf3 a
+ *C-ый код* HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.);
+mgl_box(gr,1);
+mgl_surf3(gr,a,0,3);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.);
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'',3)
+call mgl_delete_data(a)
+ *Python* a = mglData(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.SetCutBox(0,-1,-1,1,0,1);    gr.Box();
+gr.Surf3(a);
+
+
+File: mathgl_ru.info,  Node: Isocaps sample,  Next: CutOff sample,  Prev: CutMinMax sample,  Up: 3D plotting samples
+
+9.3.10 "Isocaps" - пример использования
+----------------------------------------------------------
+
+ [image src="../png/cutminmax2.png" ]
+
+*C++ код* mglData a(61,51,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->CutMin = mglPoint(0,-1,-1); gr->CutMax = mglPoint(1,0,1.1);
+gr->Box();
+gr->Surf3(-1,a);
+gr->ContF3(a,'x',-1); gr->ContF3(a,'y',-1);
+gr->ContF3(a,'z', 0); gr->ContF3(a,'z',39);
+ *MGL скрипт*
+new a 61 51 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+cut 0 -1 -1 1 0 1.1
+box
+surf3 a -1
+contf3 a 'x' -1
+contf3 a 'y' -1
+contf3 a 'z' 0
+contf3 a 'z' 39
+ *C-ый код* HMDT a = mgl_create_data_size(61,51,40);
+mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.1);
+mgl_box(gr,1);
+mgl_surf3_val(gr,-1.,a,0);
+mgl_contf3(gr,a,'x',-1, "", 7);
+mgl_contf3(gr,a,'y',-1, "", 7);
+mgl_contf3(gr,a,'z', 0, "", 7);
+mgl_contf3(gr,a,'z',39, "", 7);
+mgl_delete_data(a);
+ *Fortran* a = mgl_create_data_size(61,51,40);
+call mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_cut_box(gr,0.,-1.,-1.,1.,0.,1.1);
+call mgl_box(gr,1)
+call mgl_surf3_val(gr,-1.,a,'')
+call mgl_contf3(gr,a,'x',-1, '', 7);
+call mgl_contf3(gr,a,'y',-1, '', 7);
+call mgl_contf3(gr,a,'z', 0, '', 7);
+call mgl_contf3(gr,a,'z',39, '', 7);
+call mgl_delete_data(a)
+ *Python* a = mglData(61,51,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr.Rotate(40,60);   gr.Light(True);
+gr.SetCutBox(0,-1,-1,1,0,1.1);    gr.Box();
+gr.Surf3(-1,a);
+gr.ContF3(a,"x",-1);    gr.ContF3(a,"y",-1);
+gr.ContF3(a,"z",0);     gr.ContF3(a,"z",39);
+
+
+File: mathgl_ru.info,  Node: CutOff sample,  Prev: Isocaps sample,  Up: 3D plotting samples
+
+9.3.11 CutOff - пример использования
+-------------------------------------------------------
+
+ [image src="../png/surf3_cutoff.png" ]
+
+*C++ код* mglData a(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Alpha(true);
+gr->CutOff("(z>(x+0.5*y-1)^2-1) & (z>(x-0.5*y-1)^2-1)");
+gr->Box();
+gr->Surf3(a);
+ *MGL скрипт*
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut '(z>(x+0.5*y-1)^2-1) & (z>(x-0.5*y-1)^2-1)'
+box
+surf3 a
+ *C-ый код* HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_set_cutoff(gr,"(z>(x+0.5*y-1)^2-1) & (z>(x-0.5*y-1)^2-1)");
+mgl_box(gr,1);
+mgl_surf3(gr,a,0,3);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,'-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)',0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_set_cutoff(gr,'(z>(x+0.5*y-1)^2-1) & (z>(x-0.5*y-1)^2-1)')
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'',3)
+call mgl_delete_data(a)
+ *Python* a = mglData(61,51,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.CutOff("(z>(x+0.5*y-1)^2-1) & (z>(x-0.5*y-1)^2-1)");
+gr.Box();
+gr.Surf3(a);
+
+
+File: mathgl_ru.info,  Node: Dual plotting samples,  Next: Basic features,  Prev: 3D plotting samples,  Up: Samples
+
+9.4 Примеры парных/векторных графиков
+===================================================================
+
+* Menu:
+
+* SurfC sample::
+* SurfA sample::
+* TileS sample::
+* Map sample::
+* Traj sample::
+* Vect sample::
+* VectL sample::
+* VectC sample::
+* Flow sample::
+* Pipe sample::
+* Dew sample::
+* Surf3C sample::
+* Surf3A sample::
+* Vect 3D sample::
+* VectL 3D sample::
+* VectC 3D sample::
+* Flow 3D sample::
+* Pipe 3D sample::
+* Crust sample::
+* Dots sample::
+
+
+File: mathgl_ru.info,  Node: SurfC sample,  Next: SurfA sample,  Up: Dual plotting samples
+
+9.4.1 SurfC - пример использования
+-----------------------------------------------------
+
+ [image src="../png/surfc.png" ]
+
+*C++ код* mglData a(50,40), b(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->SurfC(a,b);
+ *MGL скрипт*
+new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surfc a b
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+HMDT b = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surfc(gr,a,b,0);
+mgl_delete_data(a); mgl_delete_data(b);
+ *Fortran* integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surfc(gr,a,b,'')
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+ *Python* a, b = mglData(50,40), mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.SurfC(a,b);
+
+
+File: mathgl_ru.info,  Node: SurfA sample,  Next: TileS sample,  Prev: SurfC sample,  Up: Dual plotting samples
+
+9.4.2 SurfA - пример использования
+-----------------------------------------------------
+
+ [image src="../png/surfa.png" ]
+
+*C++ код* mglData a(50,40), b(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Alpha(true);
+gr->Box();
+gr->SurfA(a,b);
+ *MGL скрипт*
+new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surfa a b
+ *C-ый код* HMDT a, b;
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surfa(gr,a,b,0);
+mgl_delete_data(a); mgl_delete_data(b);
+ *Fortran* integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1);
+call mgl_box(gr,1)
+call mgl_surfa(gr,a,b,'')
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+ *Python* a, b = mglData(50,40), mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);    gr.Alpha(True);
+gr.Box();
+gr.SurfC(a,b);
+
+
+File: mathgl_ru.info,  Node: TileS sample,  Next: Map sample,  Prev: SurfA sample,  Up: Dual plotting samples
+
+9.4.3 TileS - пример использования
+-----------------------------------------------------
+
+ [image src="../png/tiles.png" ]
+
+*C++ код* mglData a(50,40), b(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Box();
+gr->TileS(a,b);
+ *MGL скрипт*
+new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+tile a b
+ *C-ый код* HMDT a, b;
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_box(gr,1);
+mgl_tiles(gr,a,b,0);
+mgl_delete_data(a); mgl_delete_data(b);
+ *Fortran* integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_box(gr,1)
+call mgl_tiles(gr,a,b,'')
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+ *Python* a, b = mglData(50,40), mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Box();
+gr.TileS(a,b);
+
+
+File: mathgl_ru.info,  Node: Map sample,  Next: Traj sample,  Prev: TileS sample,  Up: Dual plotting samples
+
+9.4.4 Map - пример использования
+---------------------------------------------------
+
+ [image src="../png/map.png" ]
+
+*C++ код* mglData a(50, 40), b(50, 40);
+gr->Puts(mglPoint(0, 0), "\\to", "", -1.4);
+gr->Axis(mglPoint(-1,-1,-2),mglPoint(1,1,2));
+gr->SubPlot(2, 1, 0);
+a.Fill("x", gr->Min, gr->Max);	b.Fill("y", gr->Min, gr->Max);
+gr->Puts(mglPoint(0, 1.1), "\\{x, y\\}", "C", -2);		gr->Box();
+gr->Map(a, b, "brgk", 0, false);
+gr->SubPlot(2, 1, 1);
+a.Fill("(x^3+y^3)/2", gr->Min, gr->Max);
+b.Fill("(x-y)/2", gr->Min, gr->Max);
+gr->Puts(mglPoint(0, 1.1), "\\{\\frac{x^3+y^3}{2}, \\frac{x-y}{2}\\}", "C", -2);
+gr->Box();
+gr->Map(a, b, "brgk", 0, false);
+ *MGL скрипт*
+new a 50 40
+new b 50 40
+text 0 0 '\to'
+zrange -2 2
+subplot 2 1 0
+text 0 1.1 '\{x, y\}' '' -2
+box
+fill a 'x'
+fill b 'y'
+map a b 'brgk' 0 0
+subplot 2 1 1
+text 0 1.1 '\{\frac{x^3+y^3}{2}, \frac{x-y}{2}\}' '' -2
+box
+fill a '(x^3+y^3)/2'
+fill b '(x-y)/2'
+map a b 'brgk' 0 0
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+HMDT b = mgl_create_data_size(50,40,1);
+mgl_puts_ext(gr, 0.,0.,0., "\\to", "", -1.4, 't');
+mgl_set_axis_3d(gr,-1.,-1.,-2.,1.,1.,2.);
+mgl_subplot(gr, 2, 1, 0);
+mgl_data_fill_eq(gr, a, "x", 0, 0);
+mgl_data_fill_eq(gr, b, "y", 0, 0);
+mgl_puts_ext(gr, 0.,1.1,0., "\\{x, y\\}", "C", -2., 't');
+mgl_box(gr,1);
+mgl_map(gr, a, b, "brgk", 0, 0);
+mgl_subplot(gr, 2, 1, 1);
+mgl_data_fill_eq(gr, a, "(x^3+y^3)/2", 0, 0);
+mgl_data_fill_eq(gr, b, "(x-y)/2", 0, 0);
+mgl_puts_ext(gr, 0.,1.1,0., "\\{\\frac{x^3+y^3}{2}, \\frac{x-y}{2}\\}", "C", -2., 't');
+mgl_box(gr,1);
+mgl_map(gr, a, b, "brgk", 0, 0);
+mgl_box(gr,1);
+mgl_map(gr,a,b,0,0,1);
+mgl_delete_data(a); mgl_delete_data(b);
+ *Fortran* integer a,b, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+call mgl_puts_ext(gr, 0.,0.,0., '\to', '', -1.4, 't');
+call mgl_set_axis_3d(gr,-1.,-1.,-2.,1.,1.,2.);
+call mgl_subplot(gr, 2, 1, 0);
+call mgl_data_fill_eq(gr, a, 'x', 0, 0);
+call mgl_data_fill_eq(gr, b, 'y', 0, 0);
+call mgl_puts_ext(gr, 0.,1.1,0., '\{x, y\}', 'C', -2., 't');
+call mgl_box(gr,1);
+call mgl_map(gr, a, b, 'brgk', 0, 0);
+call mgl_subplot(gr, 2, 1, 1);
+call mgl_data_fill_eq(gr, a, '(x^3+y^3)/2', 0, 0);
+call mgl_data_fill_eq(gr, b, '(x-y)/2', 0, 0);
+call mgl_puts_ext(gr, 0.,1.1,0., '\{\frac{x^3+y^3}{2}, \frac{x-y}{2}\}', 'C', -2., 't');
+call mgl_box(gr,1);
+call mgl_map(gr, a, b, 'brgk', 0, 0);
+call mgl_box(gr,1);
+call mgl_map(gr,a,b,0,0,1);
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+ *Python* a, b = mglData(50,40), mglData(50,40);
+gr.Puts(0, 0, 0, "\\to", "", -1.4);
+gr.SetRanges(-1,1,-1,1,-2,2);
+gr.SubPlot(2, 1, 0);
+gr.Fill(a, "x");    gr.Fill(b, "y");
+gr.Puts(0, 1.1, 0, "\\{x, y\\}", "C", -2);
+gr.Box();
+gr.Map(a, b, "brgk", 0, 0);
+gr.SubPlot(2, 1, 1);
+gr.Fill(a, "(x^3+y^3)/2");   gr.Fill(b, "(x-y)/2");
+gr.Puts(0, 1.1, 0, "\\{\\frac{x^3+y^3}{2}, \\frac{x-y}{2}\\}", "C", -2);
+gr.Box();
+gr.Map(a, b, "brgk", 0, 0);
+
+
+File: mathgl_ru.info,  Node: Traj sample,  Next: Vect sample,  Prev: Map sample,  Up: Dual plotting samples
+
+9.4.5 Traj - пример использования
+----------------------------------------------------
+
+ [image src="../png/traj.png" ]
+
+*C++ код* mglData y(50,3), x(50), y1(50), y2(50);
+y.Modify("0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+y1.Modify("0.5+0.3*cos(2*pi*x)");
+y2.Modify("0.3*sin(2*pi*x)");
+x.Fill(-1,1,'x');
+gr->Box();
+gr->Plot(x,y);
+gr->Traj(x,y,y1,y2);
+ *MGL скрипт*
+new y 50 3
+new x 50
+new y1 50
+new y2 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+fill x -1 1
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+box
+plot x y
+traj x y y1 y2
+ *C-ый код* HMDT y = mgl_create_data_size(50,3,1);
+HMDT x= mgl_create_data_size(50,1,1);
+HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y,"0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)",0);
+mgl_data_modify(y,"sin(2*pi*x)",1);
+mgl_data_modify(y,"cos(2*pi*x)",2);
+mgl_data_modify(x,"2*x-1",0);
+mgl_data_modify(y1,"0.5+0.3*cos(2*pi*x)",0);
+mgl_data_modify(y2,"0.3*sin(2*pi*x)",0);
+mgl_box(gr,1);
+mgl_plot_xy(gr,x,y,NULL);
+mgl_traj_xy(gr,yx,y,y1,y2,NULL,0,0);
+mgl_delete_data(y);  mgl_delete_data(y1);
+mgl_delete_data(x);  mgl_delete_data(y2);
+ *Fortran* integer x,y,y1,y2, mgl_create_data_size
+y = mgl_create_data_size(50,3,1)
+x= mgl_create_data_size(50,1,1);
+y1 = mgl_create_data_size(50,1,1);
+y2 = mgl_create_data_size(50,1,1);
+call mgl_data_modify(y,'0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)',0)
+call mgl_data_modify(y,'sin(2*pi*x)',1)
+call mgl_data_modify(y,'cos(2*pi*x)',2)
+call mgl_data_modify(x,'2*x-1',0);
+call mgl_data_modify(y1,'0.5+0.3*cos(2*pi*x)',0);
+call mgl_data_modify(y2,'0.3*sin(2*pi*x)',0);
+call mgl_box(gr,1)
+call mgl_plot_xy(gr,x,y,NULL);
+call mgl_traj_xy(gr,yx,y,y1,y2,NULL,0,0);
+call mgl_delete_data(y)
+call mgl_delete_data(x)
+call mgl_delete_data(y1)
+call mgl_delete_data(y2)
+ *Python* x,y,y1,y2 = mglData(50), mglData(50,3), mglData(50), mglData(50);
+y.Modify("0.7*sin(2*pi*x)+0.5*cos(3*pi*x)+0.2*sin(pi*x)",0);
+y.Modify("sin(2*pi*x)",1);
+y.Modify("cos(2*pi*x)",2);
+y1.Modify("0.5+0.3*cos(2*pi*x)");
+y2.Modify("0.3*sin(2*pi*x)");
+x.Fill(-1,1,'x');
+gr.Box();
+gr.Plot(x,y);
+gr.Traj(x,y,y1,y2);
+
+
+File: mathgl_ru.info,  Node: Vect sample,  Next: VectL sample,  Prev: Traj sample,  Up: Dual plotting samples
+
+9.4.6 Vect - пример использования
+----------------------------------------------------
+
+ [image src="../png/vect.png" ]
+
+*C++ код* mglData a(20,30), b(20,30);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Box();
+gr->Vect(a,b);
+ *MGL скрипт*
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vect a b
+ *C-ый код* HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_box(gr,1);
+mgl_vect_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+ *Fortran* integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_box(gr,1)
+call mgl_vect_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+ *Python* a, b = mglData(20,30), mglData(20,30);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Box();
+gr.Vect(a,b);
+
+
+File: mathgl_ru.info,  Node: VectL sample,  Next: VectC sample,  Prev: Vect sample,  Up: Dual plotting samples
+
+9.4.7 VectL - пример использования
+-----------------------------------------------------
+
+ [image src="../png/vectl.png" ]
+
+*C++ код* mglData a(20,30), b(20,30);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Box();
+gr->VectL(a,b);
+ *MGL скрипт*
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectl a b
+ *C-ый код* HMDT a, b;
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_box(gr,1);
+mgl_vectl_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+ *Fortran* integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_box(gr,1)
+call mgl_vectl_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+ *Python* a, b = mglData(20,30), mglData(20,30);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Box();
+gr.VectL(a,b);
+
+
+File: mathgl_ru.info,  Node: VectC sample,  Next: Flow sample,  Prev: VectL sample,  Up: Dual plotting samples
+
+9.4.8 VectC - пример использования
+-----------------------------------------------------
+
+ [image src="../png/vectc.png" ]
+
+*C++ код* mglData a(20,30), b(20,30);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Box();
+gr->VectC(a,b);
+ *MGL скрипт*
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectc a b
+ *C-ый код* HMDT a, b;
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_box(gr,1);
+mgl_vectc_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+ *Fortran* integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_box(gr,1)
+call mgl_vectc_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+ *Python* a, b = mglData(20,30), mglData(20,30);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Box();
+gr.VectC(a,b);
+
+
+File: mathgl_ru.info,  Node: Flow sample,  Next: Pipe sample,  Prev: VectC sample,  Up: Dual plotting samples
+
+9.4.9 Flow - пример использования
+----------------------------------------------------
+
+ [image src="../png/flow.png" ]
+
+*C++ код* mglData a(20,30), b(20,30);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Box();
+gr->Flow(a,b);
+ *MGL скрипт*
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+flow a b
+ *C-ый код* HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_box(gr,1);
+mgl_flow_2d(gr,a,b,0,5,1,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+ *Fortran* integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_box(gr,1)
+call mgl_flow_2d(gr,a,b,'',5,1,0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+ *Python* a, b = mglData(20,30), mglData(20,30);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Box();
+gr.Flow(a,b);
+
+
+File: mathgl_ru.info,  Node: Pipe sample,  Next: Dew sample,  Prev: Flow sample,  Up: Dual plotting samples
+
+9.4.10 Pipe - пример использования
+-----------------------------------------------------
+
+ [image src="../png/pipe.png" ]
+
+*C++ код* mglData a(20,30), b(20,30);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Light(true);
+gr->Box();
+gr->Pipe(a,b);
+ *MGL скрипт*
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+box
+pipe a b
+ *C-ый код* HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_pipe_2d(gr,a,b,0,0.05,5,1,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+ *Fortran* integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_pipe_2d(gr,a,b,'',0.05,5,1,0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+ *Python* a, b = mglData(20,30), mglData(20,30);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Light(True);    gr.Box();
+gr.Pipe(a,b);
+
+
+File: mathgl_ru.info,  Node: Dew sample,  Next: Surf3C sample,  Prev: Pipe sample,  Up: Dual plotting samples
+
+9.4.11 Dew - пример использования
+----------------------------------------------------
+
+ [image src="../png/dew.png" ]
+
+*C++ код* mglData a(20,30), b(20,30);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Box();
+gr->Light(true);
+gr->Dew(a,b);
+ *MGL скрипт*
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+light on
+dew a b
+ *C-ый код* HMDT a = mgl_create_data_size(20,30,1);
+HMDT b = mgl_create_data_size(20,30,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_box(gr,1);
+mgl_set_light(gr,1);
+mgl_dew_2d(gr,a,b,0,0.);
+mgl_delete_data(a); mgl_delete_data(b);
+ *Fortran* integer a,b, mgl_create_data_size
+a = mgl_create_data_size(20,30,1);
+b = mgl_create_data_size(20,30,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_box(gr,1)
+call mgl_set_light(gr,1);
+call mgl_dew_2d(gr,a,b,'',0.)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+ *Python* a, b = mglData(20,30), mglData(20,30);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Light(True);    gr.Box();
+gr.Dew(a,b);
+
+
+File: mathgl_ru.info,  Node: Surf3C sample,  Next: Surf3A sample,  Prev: Dew sample,  Up: Dual plotting samples
+
+9.4.12 Surf3C - пример использования
+-------------------------------------------------------
+
+ [image src="../png/surf3c.png" ]
+
+*C++ код* mglData a(60,50,40), b(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+b.Modify("1-2*tanh(4*(x+y-1)^2)");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Alpha(true);
+gr->Box();
+gr->Surf3C(a, b);
+ *MGL скрипт*
+new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3c a b
+ *C-ый код* HMDT a = mgl_create_data_size(60,50,40);
+HMDT b = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+mgl_data_modify(b,"1-2*tanh(4*(x+y-1)^2)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf3c(gr,a,b,0,3);
+mgl_delete_data(a); mgl_delete_data(b);
+ *Fortran* integer a,b, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+b = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+call mgl_data_modify(b,"1-2*tanh(4*(x+y-1)^2)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf3c(gr,a,b,'',3)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+ *Python* a, b = mglData(60,50,40), mglData(60,50,40);
+a.Modify("-2*((2*x-1)^2+(2*y-1)^2+(2*z-1)^4-(2*z-1)^2-0.1)");
+b.Modify("1-2*tanh(4*(x+y-1)^2)");
+gr.Rotate(40,60);   gr.Light(True);     gr.Alpha(True);
+gr.Box();
+gr.Surf3C(a,b);
+
+
+File: mathgl_ru.info,  Node: Surf3A sample,  Next: Vect 3D sample,  Prev: Surf3C sample,  Up: Dual plotting samples
+
+9.4.13 Surf3A - пример использования
+-------------------------------------------------------
+
+ [image src="../png/surf3a.png" ]
+
+*C++ код* mglData a(60,50,40), b(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+b.Modify("1-2*tanh(4*(x+y-1)^2)");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Alpha(true);
+gr->Box();
+gr->Surf3A(a, b);
+ *MGL скрипт*
+new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3a a b
+ *C-ый код* HMDT a, b; a = mgl_create_data_size(60,50,40);
+b = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+mgl_data_modify(b,"1-2*tanh(4*(x+y-1)^2)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_box(gr,1);
+mgl_surf3a(gr,a,b,0,3);
+mgl_delete_data(a); mgl_delete_data(b);
+ *Fortran* integer a,b, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+b = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+call mgl_data_modify(b,"1-2*tanh(4*(x+y-1)^2)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_box(gr,1)
+call mgl_surf3a(gr,a,b,'',3)
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+ *Python* a, b = mglData(60,50,40), mglData(60,50,40);
+a.Modify("-2*((2*x-1)^2+(2*y-1)^2+(2*z-1)^4-(2*z-1)^2-0.1)");
+b.Modify("1-2*tanh(4*(x+y-1)^2)");
+gr.Rotate(40,60);   gr.Light(True);     gr.Alpha(True);
+gr.Box();
+gr.Surf3A(a,b);
+
+
+File: mathgl_ru.info,  Node: Vect 3D sample,  Next: VectL 3D sample,  Prev: Surf3A sample,  Up: Dual plotting samples
+
+9.4.14 Vect 3D - пример использования
+--------------------------------------------------------
+
+ [image src="../png/vect3.png" ]
+
+*C++ код* mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill("0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+ey.Fill("0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+ez.Fill("0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+gr->Rotate(40,60);
+gr->Box();
+gr->Vect(ex, ey, ez, "bwr");
+ *MGL скрипт*
+new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vect ex ey ez 'bwr'
+ *C-ый код* HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, "0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_data_fill_eq(gr, ey, "0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_data_fill_eq(gr, ez, "0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_vect_3d(gr,ex,ey,ez,"bwr");
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+ *Fortran* integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_vect_3d(gr,ex,ey,ez,'bwr')
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+ *Python* ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, "0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Fill(ey, "0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Fill(ez, "0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Rotate(40,60);       gr.Box();
+gr.Vect(ex,ey,ez,"bwr");
+
+
+File: mathgl_ru.info,  Node: VectL 3D sample,  Next: VectC 3D sample,  Prev: Vect 3D sample,  Up: Dual plotting samples
+
+9.4.15 VectL 3D - пример использования
+---------------------------------------------------------
+
+ [image src="../png/vectl3.png" ]
+
+*C++ код* mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill("0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+ey.Fill("0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+ez.Fill("0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+gr->Rotate(40,60);
+gr->Box();
+gr->VectL(ex, ey, ez, "bwr");
+ *MGL скрипт*
+new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectl ex ey ez 'bwr'
+ *C-ый код* HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, "0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_data_fill_eq(gr, ey, "0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_data_fill_eq(gr, ez, "0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_vectl_3d(gr,ex,ey,ez,"bwr");
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+ *Fortran* integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_vectl_3d(gr,ex,ey,ez,'bwr')
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+ *Python* ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, "0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Fill(ey, "0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Fill(ez, "0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Rotate(40,60);       gr.Box();
+gr.VectL(ex,ey,ez,"bwr");
+
+
+File: mathgl_ru.info,  Node: VectC 3D sample,  Next: Flow 3D sample,  Prev: VectL 3D sample,  Up: Dual plotting samples
+
+9.4.16 VectC 3D - пример использования
+---------------------------------------------------------
+
+ [image src="../png/vectc3.png" ]
+
+*C++ код* mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill("0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+ey.Fill("0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+ez.Fill("0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+gr->Rotate(40,60);
+gr->Box();
+gr->VectC(ex, ey, ez, "bwr");
+ *MGL скрипт*
+new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectc ex ey ez 'bwr'
+ *C-ый код* HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, "0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_data_fill_eq(gr, ey, "0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_data_fill_eq(gr, ez, "0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_vectc_3d(gr,ex,ey,ez,"bwr");
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+ *Fortran* integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_vectc_3d(gr,ex,ey,ez,'bwr')
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+ *Python* ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, "0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Fill(ey, "0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Fill(ez, "0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Rotate(40,60);       gr.Box();
+gr.VectC(ex,ey,ez,"bwr");
+
+
+File: mathgl_ru.info,  Node: Flow 3D sample,  Next: Pipe 3D sample,  Prev: VectC 3D sample,  Up: Dual plotting samples
+
+9.4.17 Flow 3D - пример использования
+--------------------------------------------------------
+
+ [image src="../png/flow3.png" ]
+
+*C++ код* mglData ex(30,30,30), ey(30,30,30), ez(30,30,30);
+ex.Fill("0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+ey.Fill("0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+ez.Fill("0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+gr->Rotate(40,60);
+gr->Box();
+gr->Flow(ex, ey, ez, "bwr");
+ *MGL скрипт*
+new ex 30 30 30
+new ey 30 30 30
+new ez 30 30 30
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+flow ex ey ez 'bwr'
+ *C-ый код* HMDT ex, ey, ez;
+ex = mgl_create_data_size(30,30,30);
+ey = mgl_create_data_size(30,30,30);
+ez = mgl_create_data_size(30,30,30);
+mgl_data_fill_eq(gr, ex, "0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_data_fill_eq(gr, ey, "0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_data_fill_eq(gr, ez, "0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_flow_3d(gr,ex,ey,ez,"bwr",3,1);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+ *Fortran* integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(30,30,30)
+ey = mgl_create_data_size(30,30,30)
+ez = mgl_create_data_size(30,30,30)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1);
+call mgl_flow_3d(gr,ex,ey,ez,'bwr',3,1)
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+ *Python* ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, "0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Fill(ey, "0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Fill(ez, "0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Rotate(40,60);       gr.Box();
+gr.Flow(ex,ey,ez,"bwr");
+
+
+File: mathgl_ru.info,  Node: Pipe 3D sample,  Next: Crust sample,  Prev: Flow 3D sample,  Up: Dual plotting samples
+
+9.4.18 Pipe 3D - пример использования
+--------------------------------------------------------
+
+ [image src="../png/pipe3.png" ]
+
+*C++ код* mglData ex(10,10,10), ey(10,10,10), ez(10,10,10);
+ex.Fill("0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+ey.Fill("0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+ez.Fill("0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)", gr->Min, gr->Max);
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Pipe(ex, ey, ez, "bwr");
+ *MGL скрипт*
+new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+light on
+box
+pipe ex ey ez 'bwr'
+ *C-ый код* HMDT ex, ey, ez;
+ex = mgl_create_data_size(10,10,10);
+ey = mgl_create_data_size(10,10,10);
+ez = mgl_create_data_size(10,10,10);
+mgl_data_fill_eq(gr, ex, "0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_data_fill_eq(gr, ey, "0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_data_fill_eq(gr, ez, "0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)",0,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_pipe_3d(gr,ex,ey,ez,"bwr",0.05,3,1);
+mgl_delete_data(ex); mgl_delete_data(ey); mgl_delete_data(ez);
+ *Fortran* integer ex,ey,ez, mgl_create_data_size
+ex = mgl_create_data_size(10,10,10)
+ey = mgl_create_data_size(10,10,10)
+ez = mgl_create_data_size(10,10,10)
+call mgl_data_fill_eq(gr, ex, '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ey, '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_data_fill_eq(gr, ez, '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - &
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)',0,0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1);
+call mgl_box(gr,1);
+call mgl_pipe_3d(gr,ex,ey,ez,'bwr',0.05,3,1)
+call mgl_delete_data(ex)
+call mgl_delete_data(ey)
+call mgl_delete_data(ez)
+ *Python* ex, ey, ez = mglData(10,10,10), mglData(10,10,10), mglData(10,10,10);
+gr.Fill(ex, "0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+        0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Fill(ey, "0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Fill(ez, "0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - \
+         0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)");
+gr.Rotate(40,60);   gr.Light(True);    gr.Box();
+gr.Pipe(ex,ey,ez,"bwr");
+
+
+File: mathgl_ru.info,  Node: Crust sample,  Next: Dots sample,  Prev: Pipe 3D sample,  Up: Dual plotting samples
+
+9.4.19 Crust - пример использования
+------------------------------------------------------
+
+ [image src="../png/crust.png" ]
+
+*C++ код* mglData a("hotdogs.pts");
+a.Norm(-1,1,true);
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Crust(a,"p");
+ *MGL скрипт*
+read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+light on
+box
+crust a 'p'
+ *C-ый код* HMDT a = mgl_create_data_file("hotdogs.pts");
+mgl_data_norm(a,-1.,1.,1,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_crust_tr(gr,a,"p",0.);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_file
+a = mgl_create_data_file("hotdogs.pts")
+call mgl_data_norm(a,-1.,1.,1,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_crust_tr(gr,a,"p",0.)
+call mgl_delete_data(a)
+ *Python* a = mglData("hotdogs.pts");
+a.Norm(-1,1,True);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Crust(a);
+
+
+File: mathgl_ru.info,  Node: Dots sample,  Prev: Crust sample,  Up: Dual plotting samples
+
+9.4.20 Dots - пример использования
+-----------------------------------------------------
+
+ [image src="../png/dots.png" ]
+
+*C++ код* mglData a("hotdogs.pts");
+a.Norm(-1,1,true);
+gr->Rotate(40,60);
+gr->Box();
+gr->Dots(a,"p");
+ *MGL скрипт*
+read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+box
+dots a 'p'
+ *C-ый код* HMDT a = mgl_create_data_file("hotdogs.pts");
+mgl_data_norm(a,-1.,1.,1,0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_dots_tr(gr,a,"p");
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_file
+a = mgl_create_data_file("hotdogs.pts")
+call mgl_data_norm(a,-1.,1.,1,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_dots_tr(gr,a,"p")
+call mgl_delete_data(a)
+ *Python* a = mglData("hotdogs.pts");
+a.Norm(-1,1,True);
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Dots(a);
+
+
+File: mathgl_ru.info,  Node: Basic features,  Next: Additional features,  Prev: Dual plotting samples,  Up: Samples
+
+9.5 Базовые возможности
+=========================================
+
+* Menu:
+
+* 1D plot sample::
+* 2D plot sample::
+* 3D plot sample::
+* Line styles sample::
+* Arrow styles sample::
+* Text styles sample::
+* TeX parsing sample::
+* Font faces sample::
+* Colors sample::
+* Color schemes sample::
+* Normal transparency::
+* Glass-like transparency::
+* Lamp-like transparency::
+
+
+File: mathgl_ru.info,  Node: 1D plot sample,  Next: 2D plot sample,  Up: Basic features
+
+9.5.1 Пример графиков 1D данных
+---------------------------------------------------
+
+ [image src="../png/sample8.png" ]
+
+*C++ код* mglData y0(50);		y0.Modify("sin(pi*(2*x-1))");
+gr->SubPlot(2,2,0);
+gr->Plot(y0);		gr->Box();
+
+gr->SubPlot(2,2,1);
+mglData y1(50,2);
+y1.Modify("sin(pi*2*x-pi)");	y1.Modify("cos(pi*2*x-pi)/2",1);
+gr->Plot(y1);		gr->Box();
+
+mglData x(50);		x.Modify("cos(pi*2*x-pi)");
+gr->Plot(x,y0,"Y+");
+
+gr->Plot(y1.SubData(-1,0),y1.SubData(-1,1),"q|");
+
+gr->SubPlot(2,2,2);	gr->Rotate(60,40);
+mglData z(50);		z.Modify("2*x-1");
+gr->Plot(x,y0,z);		gr->Box();
+
+mglData y2(10,3);	y2.Modify("cos(pi*(2*x-1-y))");
+y2.Modify("2*x-1",2);
+gr->Plot(y2.SubData(-1,0),y2.SubData(-1,1),y2.SubData(-1,2),"bo ");
+
+gr->SubPlot(2,2,3);	gr->Rotate(60,40);
+gr->Bars(x,y0,z,"ri");		gr->Box();
+ *MGL скрипт*
+new y0 50: modify y0 'sin(pi*(2*x-1))'
+subplot 2 2 0
+plot y0: box
+
+subplot 2 2 1
+new y1 50 2
+modify y1 'sin(pi*2*x-pi)'
+modify y1 'cos(pi*2*x-pi)/2' 1
+plot y1: box
+
+new x 50: modify x 'cos(pi*2*x-pi)'
+plot x y0 'Y+'
+plot y1(:,0) y(:,1) 'q|'
+
+subplot 2 2 2:rotate 60 40
+new z 50:   modify z '2*x-1'
+plot x y0 z 'g':box
+new y2 10 3
+modify y2 'cos(pi*(2*x-1-y))'
+modify y2 '2*x-1' 2
+plot y2(:,0) y2(:,1) y2(:,2) 'bo '
+
+subplot 2 2 3:rotate 60 40
+bars x y0 z 'r':box
+
+
+File: mathgl_ru.info,  Node: 2D plot sample,  Next: 3D plot sample,  Prev: 1D plot sample,  Up: Basic features
+
+9.5.2 Пример графиков 2D данных
+---------------------------------------------------
+
+ [image src="../png/sample9.png" ]
+
+*C++ код* gr->Light(true);
+mglData a0(50,40);
+a0.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->SubPlot(2,2,0); gr->Rotate(60,40);
+gr->Surf(a0);       gr->Box();
+
+mglData x(50,40),y(50,40),z(50,40);
+x.Modify("0.8*sin(2*pi*x)*sin(pi*y)");
+y.Modify("0.8*cos(2*pi*x)*sin(pi*y)");
+z.Modify("0.8*cos(pi*y)");
+gr->SubPlot(2,2,1); gr->Rotate(60,40);
+gr->Surf(x,y,z,"BbwrR");    gr->Box();
+
+mglData a1(50,40,3);
+a1.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+a1.Modify("0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*sin(3*pi*(x*y))",1);
+a1.Modify("0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",2);
+gr->SubPlot(2,2,2); gr->Rotate(60,40);
+gr->Alpha(true);
+gr->Surf(a1);       gr->Box();
+
+gr->SubPlot(2,2,3); gr->Rotate(60,40);
+gr->Dens(a1);       gr->Box();
+ *MGL скрипт*
+light on
+
+new a0 50 40
+modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+subplot 2 2 0:rotate 60 40
+surf a0: box
+
+new x 50 40: new y 50 40: new z 50 40
+modify x '0.8*sin(2*pi*x)*sin(pi*y)'
+modify y '0.8*cos(2*pi*x)*sin(pi*y)'
+modify z '0.8*cos(pi*y)'
+subplot 2 2 1:rotate 60 40
+surf x y z 'bbwrr': box
+
+new a1 50 40 3
+modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
+subplot 2 2 2:rotate 60 40
+alpha on
+surf a1: box
+
+subplot 2 2 3: rotate 60 40
+dens a1: box
+
+
+File: mathgl_ru.info,  Node: 3D plot sample,  Next: Line styles sample,  Prev: 2D plot sample,  Up: Basic features
+
+9.5.3 Пример графиков 3D данных
+---------------------------------------------------
+
+ [image src="../png/sampleb.png" ]
+
+*C++ код* gr->Alpha(true);	gr->Light(true);	gr->Light(0,mglPoint(0,0,1));
+mglData a(30,30,30), b(30,30,30);
+a.Modify("exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))");
+b.Modify("16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)");
+gr->CAxis(0,1);
+
+gr->SubPlot(2,2,0);	gr->Rotate(40,60);
+gr->Surf3(a,"wgk");	gr->Box();
+gr->SubPlot(2,2,1);	gr->Rotate(40,60);
+gr->DensA(a);		gr->Box();	gr->Axis();
+gr->SubPlot(2,2,2);	gr->Rotate(40,60);
+gr->Cloud(a);		gr->Box();
+gr->SubPlot(2,2,3);	gr->Rotate(40,60);
+gr->Surf3A(b,a,"q");		gr->Box();
+ *MGL скрипт*
+alpha on: light on
+light 0 0 0 1
+new a 30 30 30: new b 30 30 30
+modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
+modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
+caxis 0 1
+
+subplot 2 2 0: rotate 40 60
+surf3 a 'wgk': box
+subplot 2 2 1: rotate 40 60
+densa a: box: axis
+subplot 2 2 2: rotate 40 60
+cloud a: box
+subplot 2 2 3: rotate 40 60
+surf3a b a 'q': box
+
+
+File: mathgl_ru.info,  Node: Line styles sample,  Next: Arrow styles sample,  Prev: 3D plot sample,  Up: Basic features
+
+9.5.4 Пример стилей линий и маркеров
+--------------------------------------------------------------
+
+ [image src="../png/sample5.png" ]
+
+*C++ код* float d,x1,x2,x0,y=0.95;
+d=0.3, x0=0.2, x1=0.5, x2=0.6;
+gr->Line(mglPoint(x0,1-0*d),mglPoint(x1,1-0*d),"k-");	gr->Puts(mglPoint(x2,y-0*d),"Solid '-'","rL");
+gr->Line(mglPoint(x0,1-1*d),mglPoint(x1,1-1*d),"k|");	gr->Puts(mglPoint(x2,y-1*d),"Long Dash '|'","rL");
+gr->Line(mglPoint(x0,1-2*d),mglPoint(x1,1-2*d),"k;");	gr->Puts(mglPoint(x2,y-2*d),"Dash ';'","rL");
+gr->Line(mglPoint(x0,1-3*d),mglPoint(x1,1-3*d),"k=");	gr->Puts(mglPoint(x2,y-3*d),"Small dash '='","rL");
+gr->Line(mglPoint(x0,1-4*d),mglPoint(x1,1-4*d),"kj");	gr->Puts(mglPoint(x2,y-4*d),"Dash-dot 'j'","rL");
+gr->Line(mglPoint(x0,1-5*d),mglPoint(x1,1-5*d),"ki");	gr->Puts(mglPoint(x2,y-5*d),"Small dash-dot 'i'","rL");
+gr->Line(mglPoint(x0,1-6*d),mglPoint(x1,1-6*d),"k:");	gr->Puts(mglPoint(x2,y-6*d),"Dots ':'","rL");
+gr->Line(mglPoint(x0,1-7*d),mglPoint(x1,1-7*d),"k ");	gr->Puts(mglPoint(x2,y-7*d),"None ' '","rL");
+
+d=0.25; x1=-1; x0=-0.8;	y = -0.05;
+gr->Mark(mglPoint(x1,5*d),'.');		gr->Puts(mglPoint(x0,y+5*d),"'.'","rL");
+gr->Mark(mglPoint(x1,4*d),'+');		gr->Puts(mglPoint(x0,y+4*d),"'+'","rL");
+gr->Mark(mglPoint(x1,3*d),'x');		gr->Puts(mglPoint(x0,y+3*d),"'x'","rL");
+gr->Mark(mglPoint(x1,2*d),'*');		gr->Puts(mglPoint(x0,y+2*d),"'*'","rL");
+gr->Mark(mglPoint(x1,d),'s');		gr->Puts(mglPoint(x0,y+d),"'s'","rL");
+gr->Mark(mglPoint(x1,0),'d');		gr->Puts(mglPoint(x0,y),"'d'","rL");
+gr->Mark(mglPoint(x1,-d,0),'o');	gr->Puts(mglPoint(x0,y-d),"'o'","rL");
+gr->Mark(mglPoint(x1,-2*d,0),'^');	gr->Puts(mglPoint(x0,y-2*d),"'\\^'","rL");
+gr->Mark(mglPoint(x1,-3*d,0),'v');	gr->Puts(mglPoint(x0,y-3*d),"'v'","rL");
+gr->Mark(mglPoint(x1,-4*d,0),'<');	gr->Puts(mglPoint(x0,y-4*d),"'<'","rL");
+gr->Mark(mglPoint(x1,-5*d,0),'>');	gr->Puts(mglPoint(x0,y-5*d),"'>'","rL");
+
+d=0.25; x1=-0.5; x0=-0.3;	y = -0.05;
+gr->Mark(mglPoint(x1,5*d),'C');		gr->Puts(mglPoint(x0,y+5*d),"'\\#.'","rL");
+gr->Mark(mglPoint(x1,4*d),'P');		gr->Puts(mglPoint(x0,y+4*d),"'\\#+'","rL");
+gr->Mark(mglPoint(x1,3*d),'X');		gr->Puts(mglPoint(x0,y+3*d),"'\\#x'","rL");
+gr->Mark(mglPoint(x1,2*d),'Y');		gr->Puts(mglPoint(x0,y+2*d),"'\\#*'","rL");
+gr->Mark(mglPoint(x1,d),'S');		gr->Puts(mglPoint(x0,y+d),"'\\#s'","rL");
+gr->Mark(mglPoint(x1,0),'D');		gr->Puts(mglPoint(x0,y),"'\\#d'","rL");
+gr->Mark(mglPoint(x1,-d,0),'O');	gr->Puts(mglPoint(x0,y-d),"'\\#o'","rL");
+gr->Mark(mglPoint(x1,-2*d,0),'T');	gr->Puts(mglPoint(x0,y-2*d),"'\\#\\^'","rL");
+gr->Mark(mglPoint(x1,-3*d,0),'V');	gr->Puts(mglPoint(x0,y-3*d),"'\\#v'","rL");
+gr->Mark(mglPoint(x1,-4*d,0),'L');	gr->Puts(mglPoint(x0,y-4*d),"'\\#<'","rL");
+gr->Mark(mglPoint(x1,-5*d,0),'R');	gr->Puts(mglPoint(x0,y-5*d),"'\\#>'","rL");
+ *MGL скрипт*
+NOT AVAILABLE
+
+
+File: mathgl_ru.info,  Node: Arrow styles sample,  Next: Text styles sample,  Prev: Line styles sample,  Up: Basic features
+
+9.5.5 Пример стилей стрелок
+----------------------------------------------
+
+ [image src="../png/sampled.png" ]
+
+*C++ код* float a=0.1,b=0.4,c=0.5;
+gr->Line(mglPoint(a,1),mglPoint(b,1),"k-A");		gr->Puts(mglPoint(c,1),"Style 'A' or 'A\\_'","rL");
+gr->Line(mglPoint(a,0.8),mglPoint(b,0.8),"k-V");	gr->Puts(mglPoint(c,0.8),"Style 'V' or 'V\\_'","rL");
+gr->Line(mglPoint(a,0.6),mglPoint(b,0.6),"k-K");	gr->Puts(mglPoint(c,0.6),"Style 'K' or 'K\\_'","rL");
+gr->Line(mglPoint(a,0.4),mglPoint(b,0.4),"k-I");	gr->Puts(mglPoint(c,0.4),"Style 'I' or 'I\\_'","rL");
+gr->Line(mglPoint(a,0.2),mglPoint(b,0.2),"k-D");	gr->Puts(mglPoint(c,0.2),"Style 'D' or 'D\\_'","rL");
+gr->Line(mglPoint(a,0),mglPoint(b,0),"k-S");		gr->Puts(mglPoint(c,0),"Style 'S' or 'S\\_'","rL");
+gr->Line(mglPoint(a,-0.2),mglPoint(b,-0.2),"k-O");	gr->Puts(mglPoint(c,-0.2),"Style 'O' or 'O\\_'","rL");
+gr->Line(mglPoint(a,-0.4),mglPoint(b,-0.4),"k-T");	gr->Puts(mglPoint(c,-0.4),"Style 'T' or 'T\\_'","rL");
+gr->Line(mglPoint(a,-0.6),mglPoint(b,-0.6),"k-_");	gr->Puts(mglPoint(c,-0.6),"Style '\\_' or none","rL");
+gr->Line(mglPoint(a,-0.8),mglPoint(b,-0.8),"k-AS");	gr->Puts(mglPoint(c,-0.8),"Style 'AS'","rL");
+gr->Line(mglPoint(a,-1),mglPoint(b,-1),"k-_A");		gr->Puts(mglPoint(c,-1),"Style '\\_A'","rL");
+
+a=-1;	b=-0.7;	c=-0.6;
+gr->Line(mglPoint(a,1),mglPoint(b,1),"kAA");		gr->Puts(mglPoint(c,1),"Style 'AA'","rL");
+gr->Line(mglPoint(a,0.8),mglPoint(b,0.8),"kVV");	gr->Puts(mglPoint(c,0.8),"Style 'VV'","rL");
+gr->Line(mglPoint(a,0.6),mglPoint(b,0.6),"kKK");	gr->Puts(mglPoint(c,0.6),"Style 'KK'","rL");
+gr->Line(mglPoint(a,0.4),mglPoint(b,0.4),"kII");	gr->Puts(mglPoint(c,0.4),"Style 'II'","rL");
+gr->Line(mglPoint(a,0.2),mglPoint(b,0.2),"kDD");	gr->Puts(mglPoint(c,0.2),"Style 'DD'","rL");
+gr->Line(mglPoint(a,0),mglPoint(b,0),"kSS");		gr->Puts(mglPoint(c,0),"Style 'SS'","rL");
+gr->Line(mglPoint(a,-0.2),mglPoint(b,-0.2),"kOO");	gr->Puts(mglPoint(c,-0.2),"Style 'OO'","rL");
+gr->Line(mglPoint(a,-0.4),mglPoint(b,-0.4),"kTT");	gr->Puts(mglPoint(c,-0.4),"Style 'TT'","rL");
+gr->Line(mglPoint(a,-0.6),mglPoint(b,-0.6),"k-__");	gr->Puts(mglPoint(c,-0.6),"Style '\\_\\_'","rL");
+gr->Line(mglPoint(a,-0.8),mglPoint(b,-0.8),"k-VA");	gr->Puts(mglPoint(c,-0.8),"Style 'VA'","rL");
+gr->Line(mglPoint(a,-1),mglPoint(b,-1),"k-AV");		gr->Puts(mglPoint(c,-1),"Style 'AV'","rL");
+ *MGL скрипт*
+NOT AVAILABLE
+
+
+File: mathgl_ru.info,  Node: Text styles sample,  Next: TeX parsing sample,  Prev: Arrow styles sample,  Up: Basic features
+
+9.5.6 Пример стилей текста
+--------------------------------------------
+
+ [image src="../png/sample4.png" ]
+
+*C++ код* gr->Putsw(mglPoint(0,1),L"Text can be in ASCII and in Unicode");
+gr->Puts(mglPoint(0,0.6),"It can be \\wire{wire}, \\big{big} or #r{colored}");
+gr->Puts(mglPoint(0,0.2),"One can change style in string: "
+        "\\b{bold}, \\i{italic, \\b{both}}");
+gr->Puts(mglPoint(0,-0.2),"Easy to \\a{overline} or "
+        "\\u{underline}");
+gr->Puts(mglPoint(0,-0.6),"Easy to change indexes ^{up} _{down} @{center}");
+gr->Puts(mglPoint(0,-1),"It parse TeX: \\int \\alpha \\cdot "
+        "\\sqrt3{sin(\\pi x)^2 + \\gamma_{i_k}} dx");
+ *MGL скрипт*
+text 0 1 'Text can be in ASCII and in Unicode'
+text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
+text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
+text 0 -0.2 'Easy to \a{overline} or \u{underline}'
+text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
+text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
+
+
+File: mathgl_ru.info,  Node: TeX parsing sample,  Next: Font faces sample,  Prev: Text styles sample,  Up: Basic features
+
+9.5.7 Пример TeX формулы
+-------------------------------------
+
+ [image src="../png/samplee.png" ]
+
+*C++ код* gr->Puts(mglPoint(0), "\\sqrt{\\frac{\\alpha^{\\gamma^2}+"
+        "\\overset 1{\\big\\infty}}{\\sqrt3{2+b}}}", 0, -4);
+ *MGL скрипт*
+text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}' '' -4
+
+
+File: mathgl_ru.info,  Node: Font faces sample,  Next: Colors sample,  Prev: TeX parsing sample,  Up: Basic features
+
+9.5.8 Примеры начертаний шрифта
+------------------------------------------------------
+
+ [image src="../png/fonts.png" ]
+
+*C++ код* float h=1.1, d=0.25;
+gr->LoadFont("STIX");		gr->Puts(mglPoint(0,h), "default font (STIX)");
+gr->LoadFont("adventor");	gr->Puts(mglPoint(0,h-d), "adventor font");
+gr->LoadFont("bonum");		gr->Puts(mglPoint(0,h-2*d), "bonum font");
+gr->LoadFont("chorus");		gr->Puts(mglPoint(0,h-3*d), "chorus font");
+gr->LoadFont("cursor");		gr->Puts(mglPoint(0,h-4*d), "cursor font");
+gr->LoadFont("heros");		gr->Puts(mglPoint(0,h-5*d), "heros font");
+gr->LoadFont("heroscn");	gr->Puts(mglPoint(0,h-6*d), "heroscn font");
+gr->LoadFont("pagella");	gr->Puts(mglPoint(0,h-7*d), "pagella font");
+gr->LoadFont("schola");		gr->Puts(mglPoint(0,h-8*d), "schola font");
+gr->LoadFont("termes");		gr->Puts(mglPoint(0,h-9*d), "termes font");
+ *MGL скрипт*
+NOT AVAILABLE
+
+
+File: mathgl_ru.info,  Node: Colors sample,  Next: Color schemes sample,  Prev: Font faces sample,  Up: Basic features
+
+9.5.9 Примеры цветов
+---------------------------------
+
+ [image src="../png/colors.png" ]
+
+*C++ код* //#LENUQ
+gr->FaceZ(-1,	-1, 0, 0.4, 0.3, "L#");	gr->Puts(mglPoint(-0.8,-0.9), "L", "C:w", -1.4);
+gr->FaceZ(-0.6,	-1, 0, 0.4, 0.3, "E#");	gr->Puts(mglPoint(-0.4,-0.9), "E", "C:w", -1.4);
+gr->FaceZ(-0.2,	-1, 0, 0.4, 0.3, "N#");	gr->Puts(mglPoint(0,  -0.9), "N", "C:w", -1.4);
+gr->FaceZ(0.2,	-1, 0, 0.4, 0.3, "U#");	gr->Puts(mglPoint(0.4,-0.9), "U", "C:w", -1.4);
+gr->FaceZ(0.6,	-1, 0, 0.4, 0.3, "Q#");	gr->Puts(mglPoint(0.8,-0.9), "Q", "C:w", -1.4);
+//#lenuq
+gr->FaceZ(-1,	-0.7, 0, 0.4, 0.3, "l#");	gr->Puts(mglPoint(-0.8,-0.6), "l", "C:k", -1.4);
+gr->FaceZ(-0.6,	-0.7, 0, 0.4, 0.3, "e#");	gr->Puts(mglPoint(-0.4,-0.6), "e", "C:k", -1.4);
+gr->FaceZ(-0.2,	-0.7, 0, 0.4, 0.3, "n#");	gr->Puts(mglPoint(0,  -0.6), "n", "C:k", -1.4);
+gr->FaceZ(0.2,	-0.7, 0, 0.4, 0.3, "u#");	gr->Puts(mglPoint(0.4,-0.6), "u", "C:k", -1.4);
+gr->FaceZ(0.6,	-0.7, 0, 0.4, 0.3, "q#");	gr->Puts(mglPoint(0.8,-0.6), "q", "C:k", -1.4);
+//#CMYkP
+gr->FaceZ(-1,	-0.4, 0, 0.4, 0.3, "C#");	gr->Puts(mglPoint(-0.8,-0.3), "C", "C:w", -1.4);
+gr->FaceZ(-0.6,	-0.4, 0, 0.4, 0.3, "M#");	gr->Puts(mglPoint(-0.4,-0.3), "M", "C:w", -1.4);
+gr->FaceZ(-0.2,	-0.4, 0, 0.4, 0.3, "Y#");	gr->Puts(mglPoint(0,  -0.3), "Y", "C:w", -1.4);
+gr->FaceZ(0.2,	-0.4, 0, 0.4, 0.3, "k#");	gr->Puts(mglPoint(0.4,-0.3), "k", "C:w", -1.4);
+gr->FaceZ(0.6,	-0.4, 0, 0.4, 0.3, "P#");	gr->Puts(mglPoint(0.8,-0.3), "P", "C:w", -1.4);
+//#cmywp
+gr->FaceZ(-1,	-0.1, 0, 0.4, 0.3, "c#");	gr->Puts(mglPoint(-0.8, 0), "c", "C:k", -1.4);
+gr->FaceZ(-0.6,	-0.1, 0, 0.4, 0.3, "m#");	gr->Puts(mglPoint(-0.4, 0), "m", "C:k", -1.4);
+gr->FaceZ(-0.2,	-0.1, 0, 0.4, 0.3, "y#");	gr->Puts(mglPoint(0,   0), "y", "C:k", -1.4);
+gr->FaceZ(0.2,	-0.1, 0, 0.4, 0.3, "w#");	gr->Puts(mglPoint(0.4, 0), "w", "C:k", -1.4);
+gr->FaceZ(0.6,	-0.1, 0, 0.4, 0.3, "p#");	gr->Puts(mglPoint(0.8, 0), "p", "C:k", -1.4);
+//#BGRHW
+gr->FaceZ(-1,	0.2, 0, 0.4, 0.3, "B#");	gr->Puts(mglPoint(-0.8, 0.3), "B", "C:w", -1.4);
+gr->FaceZ(-0.6,	0.2, 0, 0.4, 0.3, "G#");	gr->Puts(mglPoint(-0.4, 0.3), "G", "C:w", -1.4);
+gr->FaceZ(-0.2,	0.2, 0, 0.4, 0.3, "R#");	gr->Puts(mglPoint(0,   0.3), "R", "C:w", -1.4);
+gr->FaceZ(0.2,	0.2, 0, 0.4, 0.3, "H#");	gr->Puts(mglPoint(0.4, 0.3), "H", "C:w", -1.4);
+gr->FaceZ(0.6,	0.2, 0, 0.4, 0.3, "W#");	gr->Puts(mglPoint(0.8, 0.3), "W", "C:w", -1.4);
+//#bgrhw
+gr->FaceZ(-1,	0.2, 0, 0.4, 0.3, "b#");	gr->Puts(mglPoint(-0.8, 0.6), "b", "C:k", -1.4);
+gr->FaceZ(-0.6,	0.5, 0, 0.4, 0.3, "g#");	gr->Puts(mglPoint(-0.4, 0.6), "g", "C:k", -1.4);
+gr->FaceZ(-0.2,	0.2, 0, 0.4, 0.3, "r#");	gr->Puts(mglPoint(0,   0.6), "r", "C:k", -1.4);
+gr->FaceZ(0.2,	0.2, 0, 0.4, 0.3, "h#");	gr->Puts(mglPoint(0.4, 0.6), "h", "C:k", -1.4);
+gr->FaceZ(0.6,	0.2, 0, 0.4, 0.3, "w#");	gr->Puts(mglPoint(0.8, 0.6), "w", "C:k", -1.4);
+//#brighted
+gr->FaceZ(-1,	0.8, 0, 0.4, 0.3, "r1#");	gr->Puts(mglPoint(-0.8, 0.9), "r1", "C:w", -1.4);
+gr->FaceZ(-0.6,	0.8, 0, 0.4, 0.3, "r3#");	gr->Puts(mglPoint(-0.4, 0.9), "r3", "C:w", -1.4);
+gr->FaceZ(-0.2,	0.8, 0, 0.4, 0.3, "r5#");	gr->Puts(mglPoint(0,   0.9), "r5", "C:k", -1.4);
+gr->FaceZ(0.2,	0.8, 0, 0.4, 0.3, "r7#");	gr->Puts(mglPoint(0.4, 0.9), "r7", "C:k", -1.4);
+gr->FaceZ(0.6,	0.8, 0, 0.4, 0.3, "r9#");	gr->Puts(mglPoint(0.8, 0.9), "r9", "C:k", -1.4);
+ *MGL скрипт*
+#LENUQ
+facez -1   -1 0 0.4 0.3 'L#': text -0.8 -0.9 'L' 'C:w'
+facez -0.6 -1 0 0.4 0.3 'E#': text -0.4 -0.9 'E' 'C:w'
+facez -0.2 -1 0 0.4 0.3 'N#': text  0   -0.9 'N' 'C:w'
+facez  0.2 -1 0 0.4 0.3 'U#': text  0.4 -0.9 'U' 'C:w'
+facez  0.6 -1 0 0.4 0.3 'Q#': text  0.8 -0.9 'Q' 'C:w'
+#lenuq
+facez -1   -0.7 0 0.4 0.3 'l#': text -0.8 -0.6 'l' 'C:k'
+facez -0.6 -0.7 0 0.4 0.3 'e#': text -0.4 -0.6 'e' 'C:k'
+facez -0.2 -0.7 0 0.4 0.3 'n#': text  0   -0.6 'n' 'C:k'
+facez  0.2 -0.7 0 0.4 0.3 'u#': text  0.4 -0.6 'u' 'C:k'
+facez  0.6 -0.7 0 0.4 0.3 'q#': text  0.8 -0.6 'q' 'C:k'
+#CMYkP
+facez -1   -0.4 0 0.4 0.3 'C#': text -0.8 -0.3 'C' 'C:w'
+facez -0.6 -0.4 0 0.4 0.3 'M#': text -0.4 -0.3 'M' 'C:w'
+facez -0.2 -0.4 0 0.4 0.3 'Y#': text  0   -0.3 'Y' 'C:w'
+facez  0.2 -0.4 0 0.4 0.3 'k#': text  0.4 -0.3 'k' 'C:w'
+facez  0.6 -0.4 0 0.4 0.3 'P#': text  0.8 -0.3 'P' 'C:w'
+#lenuq
+facez -1   -0.1 0 0.4 0.3 'c#': text -0.8 0 'c' 'C:k'
+facez -0.6 -0.1 0 0.4 0.3 'm#': text -0.4 0 'm' 'C:k'
+facez -0.2 -0.1 0 0.4 0.3 'y#': text  0   0 'y' 'C:k'
+facez  0.2 -0.1 0 0.4 0.3 'w#': text  0.4 0 'w' 'C:k'
+facez  0.6 -0.1 0 0.4 0.3 'p#': text  0.8 0 'p' 'C:k'
+#BGRHW
+facez -1   0.2 0 0.4 0.3 'B#': text -0.8 0.3 'B' 'C:k'
+facez -0.6 0.2 0 0.4 0.3 'G#': text -0.4 0.3 'G' 'C:k'
+facez -0.2 0.2 0 0.4 0.3 'R#': text  0   0.3 'R' 'C:k'
+facez  0.2 0.2 0 0.4 0.3 'H#': text  0.4 0.3 'H' 'C:k'
+facez  0.6 0.2 0 0.4 0.3 'W#': text  0.8 0.3 'W' 'C:k'
+#bgrhw
+facez -1   0.5 0 0.4 0.3 'b#': text -0.8 0.6 'b' 'C:w'
+facez -0.6 0.5 0 0.4 0.3 'g#': text -0.4 0.6 'g' 'C:w'
+facez -0.2 0.5 0 0.4 0.3 'r#': text  0   0.6 'r' 'C:w'
+facez  0.2 0.5 0 0.4 0.3 'h#': text  0.4 0.6 'h' 'C:w'
+facez  0.6 0.5 0 0.4 0.3 'w#': text  0.8 0.6 'w' 'C:w'
+#brighted
+facez -1   0.8 0 0.4 0.3 'r1#': text -0.8 0.9 'r1' 'C:k'
+facez -0.6 0.8 0 0.4 0.3 'r3#': text -0.4 0.9 'r3' 'C:k'
+facez -0.2 0.8 0 0.4 0.3 'r5#': text  0   0.9 'r5' 'C:k'
+facez  0.2 0.8 0 0.4 0.3 'r7#': text  0.4 0.9 'r7' 'C:k'
+facez  0.6 0.8 0 0.4 0.3 'r9#': text  0.8 0.9 'r9' 'C:k'
+
+
+File: mathgl_ru.info,  Node: Color schemes sample,  Next: Normal transparency,  Prev: Colors sample,  Up: Basic features
+
+9.5.10 Примеры цветовых схем
+-----------------------------------------------
+
+ [image src="../png/color_schemes.png" ]
+
+*C++ код* mglData a(256,2);	a.Fill(-1,1);
+gr->SubPlot(2,10,0,0.2);	gr->Dens(a,"kw", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "kw", "C", -8);
+gr->SubPlot(2,10,1,0.2);	gr->Dens(a,"wk", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "wk", "C", -8);
+gr->SubPlot(2,10,2,0.2);	gr->Dens(a,"kHCcw", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "kHCcw", "C", -8);
+gr->SubPlot(2,10,3,0.2);	gr->Dens(a,"kBbcw", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "kBbcw", "C", -8);
+gr->SubPlot(2,10,4,0.2);	gr->Dens(a,"kRryw", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "kRryw", "C", -8);
+gr->SubPlot(2,10,5,0.2);	gr->Dens(a,"kGgew", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "kGgew", "C", -8);
+gr->SubPlot(2,10,6,0.2);	gr->Dens(a,"BbwrR", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "BbwrR", "C", -8);
+gr->SubPlot(2,10,7,0.2);	gr->Dens(a,"BbwgG", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "BbwgG", "C", -8);
+gr->SubPlot(2,10,8,0.2);	gr->Dens(a,"GgwmM", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "GgwmM", "C", -8);
+gr->SubPlot(2,10,9,0.2);	gr->Dens(a,"UuwqR", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "UuwqR", "C", -8);
+gr->SubPlot(2,10,10,0.2);	gr->Dens(a,"QqwcC", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "QqwcC", "C", -8);
+gr->SubPlot(2,10,11,0.2);	gr->Dens(a,"CcwyY", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "CcwyY", "C", -8);
+gr->SubPlot(2,10,12,0.2);	gr->Dens(a,"bcwyr", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "bcwyr", "C", -8);
+gr->SubPlot(2,10,13,0.2);	gr->Dens(a,"bwr", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "bwr", "C", -8);
+gr->SubPlot(2,10,14,0.2);	gr->Dens(a,"BbcyrR", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "BbcyrR", "C", -8);
+gr->SubPlot(2,10,15,0.2);	gr->Dens(a,"UbcyqR", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "UbcyqR", "C", -8);
+gr->SubPlot(2,10,16,0.2);	gr->Dens(a,"BbcwyrR", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "BbcwyrR", "C", -8);
+gr->SubPlot(2,10,17,0.2);	gr->Dens(a,"bcyr", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "bcyr", "C", -8);
+gr->SubPlot(2,10,18,0.2);	gr->Dens(a,"BbcyrR|", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "BbcyrR|", "C", -8);
+gr->SubPlot(2,10,19,0.2);	gr->Dens(a,"bgr", nan);
+gr->Puts(mglPoint(-1.4, -0.3), "bgr", "C", -8);
+ *MGL скрипт*
+new a 256 2: fill a 'x'
+subplot 2 10 0 0.2:dens a 'kw'
+text -1.4 -0.3 'kw' '' -8
+subplot 2 10 1 0.2:dens a 'wk'
+text -1.4 -0.3 'wk' '' -8
+subplot 2 10 2 0.2:dens a 'kHCcw'
+text -1.4 -0.3 'kHCcw' '' -8
+subplot 2 10 3 0.2:dens a 'kBbcw'
+text -1.4 -0.3 'kBbcw' '' -8
+subplot 2 10 4 0.2:dens a 'kRryw'
+text -1.4 -0.3 'kRryw' '' -8
+subplot 2 10 5 0.2:dens a 'kGgew'
+text -1.4 -0.3 'kGgew' '' -8
+subplot 2 10 6 0.2:dens a 'BbwrR'
+text -1.4 -0.3 'BbwrR' '' -8
+subplot 2 10 7 0.2:dens a 'BbwgG'
+text -1.4 -0.3 'BbwgG' '' -8
+subplot 2 10 8 0.2:dens a 'GgwmM'
+text -1.4 -0.3 'GgwmM' '' -8
+subplot 2 10 9 0.2:dens a 'UuwqR'
+text -1.4 -0.3 'UuwqR' '' -8
+subplot 2 10 10 0.2:dens a 'QqwcC'
+text -1.4 -0.3 'QqwcC' '' -8
+subplot 2 10 11 0.2:dens a 'CcwyY'
+text -1.4 -0.3 'CcwyY' '' -8
+subplot 2 10 12 0.2:dens a 'bcwyr'
+text -1.4 -0.3 'bcwyr' '' -8
+subplot 2 10 13 0.2:dens a 'bwr'
+text -1.4 -0.3 'bwr' '' -8
+subplot 2 10 14 0.2:dens a 'BbcyrR'
+text -1.4 -0.3 'BbcyrR' '' -8
+subplot 2 10 15 0.2:dens a 'UbcyqR'
+text -1.4 -0.3 'UbcyqR' '' -8
+subplot 2 10 16 0.2:dens a 'BbcwyrR'
+text -1.4 -0.3 'BbcwyrR' '' -8
+subplot 2 10 17 0.2:dens a 'bcyr'
+text -1.4 -0.3 'bcyr' '' -8
+subplot 2 10 18 0.2:dens a 'BbcyrR|'
+text -1.4 -0.3 'BbcyrR|' '' -8
+subplot 2 10 19 0.2:dens a 'bgr'
+text -1.4 -0.3 'bgr' '' -8
+
+
+File: mathgl_ru.info,  Node: Normal transparency,  Next: Glass-like transparency,  Prev: Color schemes sample,  Up: Basic features
+
+9.5.11 Обычная прозрачность
+----------------------------------------------
+
+ [image src="../png/type0.png" ]
+
+*C++ код* gr->Alpha(true);	gr->Light(true);
+mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+
+gr->TranspType = 0;	gr->Clf();
+gr->SubPlot(2,2,0);	gr->Rotate(40,60);	gr->Surf(a);	gr->Box();
+gr->SubPlot(2,2,1);	gr->Rotate(40,60);	gr->Dens(a);	gr->Box();
+gr->SubPlot(2,2,2);	gr->Rotate(40,60);	gr->Cont(a);	gr->Box();
+gr->SubPlot(2,2,3);	gr->Rotate(40,60);	gr->Axial(a);	gr->Box();
+ *MGL скрипт*
+alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 0: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+
+
+File: mathgl_ru.info,  Node: Glass-like transparency,  Next: Lamp-like transparency,  Prev: Normal transparency,  Up: Basic features
+
+9.5.12 "Стеклянная" прозрачность
+------------------------------------------------------
+
+ [image src="../png/type1.png" ]
+
+*C++ код* gr->Alpha(true);	gr->Light(true);
+mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+
+gr->TranspType = 1;	gr->Clf();
+gr->SubPlot(2,2,0);	gr->Rotate(40,60);	gr->Surf(a);	gr->Box();
+gr->SubPlot(2,2,1);	gr->Rotate(40,60);	gr->Dens(a);	gr->Box();
+gr->SubPlot(2,2,2);	gr->Rotate(40,60);	gr->Cont(a);	gr->Box();
+gr->SubPlot(2,2,3);	gr->Rotate(40,60);	gr->Axial(a);	gr->Box();
+ *MGL скрипт*
+alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 1: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+
+
+File: mathgl_ru.info,  Node: Lamp-like transparency,  Prev: Glass-like transparency,  Up: Basic features
+
+9.5.13 "Ламповая" прозрачность
+--------------------------------------------------
+
+ [image src="../png/type2.png" ]
+
+*C++ код* gr->Alpha(true);	gr->Light(true);
+mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+
+gr->TranspType = 2;	gr->Clf();
+gr->SubPlot(2,2,0);	gr->Rotate(40,60);	gr->Surf(a);	gr->Box();
+gr->SubPlot(2,2,1);	gr->Rotate(40,60);	gr->Dens(a);	gr->Box();
+gr->SubPlot(2,2,2);	gr->Rotate(40,60);	gr->Cont(a);	gr->Box();
+gr->SubPlot(2,2,3);	gr->Rotate(40,60);	gr->Axial(a);	gr->Box();
+ *MGL скрипт*
+alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 2: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+
+
+File: mathgl_ru.info,  Node: Additional features,  Next: Advanced features,  Prev: Basic features,  Up: Samples
+
+9.6 Дополнительные возможности
+=======================================================
+
+* Menu:
+
+* Legend sample::
+* Adding mesh sample::
+* Surf & Cont sample::
+* Flow & Dens sample::
+* Several light sample::
+* Mirrored surface sample::
+* Cont with labels sample::
+* Ternary plot sample::
+* Coloring by coordinates sample::
+* Drops sample::
+* Molecules drawing sample::
+
+
+File: mathgl_ru.info,  Node: Legend sample,  Next: Adding mesh sample,  Up: Additional features
+
+9.6.1 Legend - пример использования
+------------------------------------------------------
+
+ [image src="../png/legend.png" ]
+
+*C++ код* mglData f(50,3);
+f.Modify("sin(2*pi*x*x)",0);
+f.Modify("sin(2*pi*x)",1);
+f.Modify("sin(2*pi*sqrt(x))",2);
+gr->Axis(mglPoint(0,-1),mglPoint(1,1));
+gr->Box(); gr->Plot(f); gr->Axis();
+gr->AddLegend("sin(\\pi {x^2})","b");
+gr->AddLegend("sin(\\pi x)","g*");
+gr->AddLegend("sin(\\pi \\sqrt{\\a x})","r+");
+gr->Legend();
+ *MGL скрипт*
+new f 50 3
+modify f 'sin(2*pi*x*x)'
+modify f 'sin(2*pi*x)' 1
+modify f 'sin(2*pi*sqrt(x))' 2
+axis 0 -1 1 1
+box
+plot f
+axis
+addlegend 'sin(\pi {x^2})' 'b'
+addlegend 'sin(\pi x)' 'g*'
+addlegend 'sin(\pi \sqrt{\a x})' 'r+'
+legend
+ *C-ый код* HMDT f = mgl_create_data_size(50,3,1);
+mgl_data_modify(f,"sin(2*pi*x*x)",0);
+mgl_data_modify(f,"sin(2*pi*x)",1);
+mgl_data_modify(f,"sin(2*pi*sqrt(x))",2);
+mgl_set_axis(gr, 0.,-1.,0., 1.,1.,1., 0.,0.,0.);
+mgl_box(gr,1);
+mgl_plot(gr,f,NULL);
+mgl_axis(gr,"xy");
+mgl_add_legend(gr,"sin(\\pi {x^2})","b");
+mgl_add_legend(gr,"sin(\\pi x)","g*");
+mgl_add_legend(gr,"sin(\\pi \\sqrt{\\a x})","r+");
+mgl_legend(gr,3,"rL",-1.,0.1);
+mgl_delete_data(f);
+ *Fortran* integer f, mgl_create_data_size
+f = mgl_create_data_size(50,3,1)
+call mgl_data_modify(f,'sin(2*pi*x*x)',0)
+call mgl_data_modify(f,'sin(2*pi*x)',1)
+call mgl_data_modify(f,'sin(2*pi*sqrt(x))',2)
+call mgl_set_axis(gr, 0.,-1.,0., 1.,1.,1., 0.,0.,0.)
+call mgl_box(gr,1)
+call mgl_plot(gr,f,'')
+call mgl_axis(gr,'xy')
+call mgl_add_legend(gr,'sin(\pi {x^2})','b');
+call mgl_add_legend(gr,'sin(\pi x)','g*');
+call mgl_add_legend(gr,'sin(\pi \sqrt{\a x})','r+');
+call mgl_legend(gr,3,'rL',-1.,0.1);
+call mgl_delete_data(f)
+ *Python* f = mglData(50,3);
+f.Modify("sin(2*pi*x*x)",0);    f.Modify("sin(2*pi*x)",1);      f.Modify("sin(2*pi*sqrt(x))",2);
+gr.SetRanges(0,1,-1,1);     gr.Box();   gr.Axis();  gr.Plot(f);
+gr.AddLegend("sin(\\pi x^2)","b");
+gr.AddLegend("sin(\\pi x)","g*");
+gr.AddLegend("sin(\\pi\\sqrt{\\a x})","r+");
+gr.Legend();
+
+
+File: mathgl_ru.info,  Node: Adding mesh sample,  Next: Surf & Cont sample,  Prev: Legend sample,  Up: Additional features
+
+9.6.2 Добавляем сетку
+-----------------------------------
+
+ [image src="../png/samplea.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Light(true);
+gr->Alpha(true);
+gr->SubPlot(2,2,0); gr->Rotate(40,60);
+gr->Surf(a,"BbcyrR#");  gr->Box();
+gr->SubPlot(2,2,1); gr->Rotate(40,60);
+gr->Dens(a,"BbcyrR#");  gr->Box();
+gr->SubPlot(2,2,2); gr->Rotate(40,60);
+gr->Cont(a,"BbcyrR#");  gr->Box();
+gr->SubPlot(2,2,3); gr->Rotate(40,60);
+gr->Axial(a,"BbcyrR#"); gr->Box();
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+alpha on
+light on
+subplot 2 2 0
+rotate 40 60
+surf a 'BbcyrR#'
+box
+subplot 2 2 1
+rotate 40 60
+dens a 'BbcyrR#'
+box
+subplot 2 2 2
+rotate 40 60
+cont a 'BbcyrR#'
+box
+subplot 2 2 3
+rotate 40 60
+axial a 'BbcyrR#'
+box
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_set_alpha(gr,1);
+mgl_set_light(gr,1);
+mgl_subplot(gr,2,2,0); mgl_rotate(gr,40.,60.,0.);
+mgl_surf(gr,a,"BbcyrR#");       mgl_box(gr,1);
+mgl_subplot(gr,2,2,1); mgl_rotate(gr,40.,60.,0.);
+mgl_dens(gr,a,"BbcyrR#",-1.);   mgl_box(gr,1);
+mgl_subplot(gr,2,2,2); mgl_rotate(gr,40.,60.,0.);
+mgl_cont(gr,a,"BbcyrR#",7,NAN); mgl_box(gr,1);
+mgl_subplot(gr,2,2,3); mgl_rotate(gr,40.,60.,0.);
+mgl_axial(gr,a,"BbcyrR#",3);    mgl_box(gr,1);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+real zero, nan
+zero=0; nan=zero/zero
+a = mgl_create_data_size(50,40,1)
+call mgl_data_modify(a,'0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))',0)
+call mgl_set_alpha(gr,1)
+call mgl_set_light(gr,1)
+call mgl_subplot(gr,2,2,0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_surf(gr,a,'BbcyrR#')
+call mgl_box(gr,1)
+call mgl_subplot(gr,2,2,1)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_dens(gr,a,'BbcyrR#',-1.)
+call mgl_box(gr,1)
+call mgl_subplot(gr,2,2,2)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_cont(gr,a,'BbcyrR#',7,nan)
+call mgl_box(gr,1)
+call mgl_subplot(gr,2,2,3)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_axial(gr,a,'BbcyrR#',3)
+call mgl_box(gr,1)
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Light(True);     gr.Alpha(True);
+gr.SubPlot(2,2,0);
+gr.Rotate(40,60);   gr.Surf(a,"BbcyrR#");   gr.Box();
+gr.SubPlot(2,2,1);
+gr.Rotate(40,60);   gr.Dens(a,"BbcyrR#");   gr.Box();
+gr.SubPlot(2,2,2);
+gr.Rotate(40,60);   gr.Cont(a,"BbcyrR#");   gr.Box();
+gr.SubPlot(2,2,3);
+gr.Rotate(40,60);   gr.Axial(a,"BbcyrR#");  gr.Box();
+
+
+File: mathgl_ru.info,  Node: Surf & Cont sample,  Next: Flow & Dens sample,  Prev: Adding mesh sample,  Up: Additional features
+
+9.6.3 Surf & Cont - пример использования
+-----------------------------------------------------------
+
+ [image src="../png/surf_cont_y.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Surf(a);
+gr->Cont(a,"y");
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+cont a 'y'
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf(gr,a,0);
+mgl_cont(gr,a,"y",7,NAN);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+real zero, nan
+zero = 0; nan = zero/zero
+a = mgl_create_data_size(50,40,1)
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'')
+call mgl_cont(gr,a,'y',7,nan)
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);   gr.Light(True);
+gr.Box();
+gr.Surf(a);         gr.Cont(a,"y");
+
+
+File: mathgl_ru.info,  Node: Flow & Dens sample,  Next: Several light sample,  Prev: Surf & Cont sample,  Up: Additional features
+
+9.6.4 Flow & Dens - пример использования
+-----------------------------------------------------------
+
+ [image src="../png/flow_dens.png" ]
+
+*C++ код* mglData a(50,40), b(50,40), d(a);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+d.Modify("sqrt(v^2+w^2)",a,b);
+gr->Box();
+gr->Flow(a,b,"br"); gr->Dens(d,"BbcyrR");
+ *MGL скрипт*
+new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+copy d a
+modify d 'sqrt(v^2+w^2)' a b
+box
+flow a b 'br'
+dens d 'BbcyrR'
+ *C-ый код* HMDT a, b, d;
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+d = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_data_modify(d,"sqrt(v^2+w^2)",a,b);
+mgl_box(gr,1);
+mgl_flow_2d(gr,a,b,"br",5,1,0.);
+mgl_dens(gr,d,"BbcyrR",-1.);
+mgl_delete_data(a); mgl_delete_data(b); mgl_delete_data(d);
+ *Fortran* integer a,b,d, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+b = mgl_create_data_size(50,40,1);
+d = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_data_modify(b,"0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_data_modify(d,"sqrt(v^2+w^2)",a,b);
+call mgl_box(gr,1)
+call mgl_flow_2d(gr,a,b,'br',5,1,0.)
+call mgl_dens(gr,d,'BbcyrR',-1.);
+call mgl_delete_data(a)
+call mgl_delete_data(b)
+call mgl_delete_data(d)
+ *Python* a, b= mglData(50,40), mglData(50,40);   d = mglData(a)
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+b.Modify("0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))");
+d.Modify("sqrt(v^2+w^2)",a,b);
+gr.Box();
+gr.Flow(a,b,"br");      gr.Dens(d,"BbcyrR");
+
+
+File: mathgl_ru.info,  Node: Several light sample,  Next: Mirrored surface sample,  Prev: Flow & Dens sample,  Up: Additional features
+
+9.6.5 Несколько источников света
+--------------------------------------------------------
+
+ [image src="../png/several_light.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Light(1,mglPoint(0,1,0),'c');
+gr->Light(2,mglPoint(1,0,0),'y');
+gr->Light(3,mglPoint(0,-1,0),'m');
+gr->Box();
+gr->Surf(a,"h");
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+light 1 0 1 0 'c'
+light 2 1 0 0 'y'
+light 3 0 -1 0 'm'
+box
+surf a 'h'
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_add_light_rgb(gr,1,0.,1.,0.,1, 0.,1.,1.,0.5);
+mgl_add_light_rgb(gr,2,1.,0.,0.,1, 1.,1.,0.,0.5);
+mgl_add_light_rgb(gr,3,0.,-1.,0.,1, 1.,0.,1.,0.5);
+mgl_box(gr,1);
+mgl_surf(gr,a,"h");
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_add_light_rgb(gr,1,0.,1.,0.,1, 0.,1.,1.,0.5)
+call mgl_add_light_rgb(gr,2,1.,0.,0.,1, 1.,1.,0.,0.5)
+call mgl_add_light_rgb(gr,3,0.,-1.,0.,1, 1.,0.,1.,0.5)
+call mgl_box(gr,1)
+call mgl_surf(gr,a,'h')
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Rotate(40,60);       gr.Light(True);
+gr.AddLight(1,0,1,0,"c");
+gr.AddLight(2,1,0,0,"y");
+gr.AddLight(3,0,-1,0,"m");
+gr.Box();
+gr.Surf(a,"h")
+
+
+File: mathgl_ru.info,  Node: Mirrored surface sample,  Next: Cont with labels sample,  Prev: Several light sample,  Up: Additional features
+
+9.6.6 Отражение поверхности
+-----------------------------------------------
+
+ [image src="../png/mirror.png" ]
+
+*C++ код* mglData a(30,40),x(30),y1(40),y2(40);
+a.Modify("pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)");
+x.Fill(-1,1); y1.Fill(0,1); y2.Fill(0,-1);
+gr->Rotate(40,60);
+gr->Light(true);
+gr->Box();
+gr->Surf(x,y1,a,"r"); gr->Surf(x,y2,a,"b");
+ *MGL скрипт*
+new a 30 40
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf a 'r'; yrange 0 1
+surf a 'b'; yrange 0 -1
+box
+ or
+new a 30 40
+var x 30 -1 1
+var y1 40 0 1
+var y2 40 0 -1
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf x y1 a 'r'
+surf x y2 a 'b'
+box
+ *C-ый код* HMDT a,x,y1,y2;
+a = mgl_create_data_size(30,40,1);
+x = mgl_create_data_size(30,1,1);
+y1 = mgl_create_data_size(40,1,1);
+y2 = mgl_create_data_size(40,1,1);
+mgl_data_modify(a,"pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)",0);
+mgl_data_fill(x,-1.,1.,'x');
+mgl_data_fill(y1,0.,1.,'x');
+mgl_data_fill(y2,0.,-1.,'x');
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_box(gr,1);
+mgl_surf_xy(gr,x,y1,a,"r"); mgl_surf_xy(gr,x,y2,a,"b");
+mgl_delete_data(a); mgl_delete_data(y1);
+mgl_delete_data(x); mgl_delete_data(y2);
+ *Fortran* integer a,x,y1,y2, mgl_create_data_size
+a = mgl_create_data_size(30,40,1)
+x = mgl_create_data_size(30,1,1)
+y1 = mgl_create_data_size(40,1,1)
+y2 = mgl_create_data_size(40,1,1)
+call mgl_data_modify(a,'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)',0)
+call mgl_data_fill(x,-1.,1.,'x')
+call mgl_data_fill(y1,0.,1.,'x')
+call mgl_data_fill(y2,0.,-1.,'x')
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_box(gr,1)
+call mgl_surf_xy(gr,x,y1,a,'r')
+call mgl_surf_xy(gr,x,y2,a,'b')
+call mgl_delete_data(a)
+call mgl_delete_data(y1)
+call mgl_delete_data(x)
+call mgl_delete_data(y2)
+ *Python* a, x, y1, y2 = mglData(30,40), mglData(30), mglData(40), mglData(40);
+a.Modify("pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)");
+x.Fill(-1,1);   y1.Fill(0,1);   y2.Fill(0,-1);
+gr.Rotate(40,60);       gr.Light(True);         gr.Box();
+gr.Surf(x,y1,a,"r");    gr.Surf(x,y2,a,"b");
+
+
+File: mathgl_ru.info,  Node: Cont with labels sample,  Next: Ternary plot sample,  Prev: Mirrored surface sample,  Up: Additional features
+
+9.6.7 Cont и подписи - пример использования
+----------------------------------------------------------------------
+
+ [image src="../png/contt.png" ]
+
+*C++ код* mglData a(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
+gr->Box();
+gr->Cont(a,"BbcyrRt");
+ *MGL скрипт*
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+cont a 'BbcyrRt'
+ *C-ый код* HMDT a = mgl_create_data_size(50,40,1);
+mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+mgl_box(gr,1);
+mgl_cont(gr,a,"BbcyrRt",7,0);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(50,40,1);
+call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
+call mgl_box(gr,1)
+call mgl_cont(gr,a,'BbcyrRt',7,0)
+call mgl_delete_data(a)
+ *Python* a = mglData(50,40);
+a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
+gr.Box();
+gr.Cont(a,"BbcyrRt");
+
+
+File: mathgl_ru.info,  Node: Ternary plot sample,  Next: Coloring by coordinates sample,  Prev: Cont with labels sample,  Up: Additional features
+
+9.6.8 Ternary plot - пример использования
+------------------------------------------------------------
+
+ [image src="../png/ternary.png" ]
+
+*C++ код* mglData x(50),y(50),rx(10),ry(10), a(20,30);
+a.Modify("4*x*y");
+x.Modify("0.25*(1+cos(2*pi*x))");
+y.Modify("0.25*(1+sin(2*pi*x))");
+rx.Modify("rnd"); ry.Modify("(1-v)*rnd",rx);
+gr->Text(mglPoint(-0.8,1.3), "Ternary plot (x+y+t=1)");
+gr->Ternary(true);
+gr->Plot(x,y,"r2");
+gr->Plot(rx,ry,"q^ ");
+gr->Cont(a);
+gr->Line(mglPoint(0.5,0), mglPoint(0,0.75), "g2");
+gr->Axis(); gr->Grid("xyz","B;");
+gr->Label('x',"x comp.");
+gr->Label('y',"y comp.");
+gr->Label('t',"t comp.");
+ *MGL скрипт*
+new rx 10
+new ry 10
+new x 50
+new y 50
+new a 20 30
+modify a '4*x*y'
+modify x '0.25*(1+cos(2*pi*x))'
+modify y '0.25*(1+sin(2*pi*x))'
+modify rx 'rnd'
+modify ry 'rnd*(1-v)' rx
+text -0.8 1.3 'Ternary plot (x+y+t=1)'
+ternary on
+plot x y 'r2'
+plot rx ry 'q^ '
+cont a
+line 0.5 0 0 0.75 'g2'
+axis
+grid 'xyz' 'B;'
+xlabel 'x comp.'
+ylabel 'y comp.'
+tlabel 't comp.'
+ *C-ый код* HMDT x,y,rx,ry,a;
+x = mgl_create_data_size(50,1,1);
+y = mgl_create_data_size(50,1,1);
+rx = mgl_create_data_size(50,1,1);
+ry = mgl_create_data_size(50,1,1);
+a = mgl_create_data_size(20,30,1);
+mgl_data_modify(x,"0.25*(1+cos(2*pi*x))",0);
+mgl_data_modify(y,"0.25*(1+sin(2*pi*x))",0);
+mgl_data_modify(rx,"rnd",0);
+mgl_data_modify_vw(ry,"(1-v)*rnd",rx,0);
+mgl_data_modify(a,"4*x*y",0);
+mgl_puts_ext(gr,-0.8,1.3,0.,"Ternary plot (x+y+t=1)","C",-1.4,'t');
+mgl_set_ternary(gr,1);
+mgl_plot_xy(gr,x,y,"r2");
+mgl_plot_xy(gr,rx,ry,"q^ ");
+mgl_cont(gr,a,"",7,0.);
+mgl_line(gr,0.5,0.,0.,0.,0.75,0.,"g2",2);
+mgl_axis(gr,"xyz");
+mgl_axis_grid(gr,"xyz","B:");
+mgl_label(gr,'x',"x comp");
+mgl_label(gr,'y',"y comp");
+mgl_label(gr,'t',"t comp");
+mgl_delete_data(a);
+mgl_delete_data(x);     mgl_delete_data(y);
+mgl_delete_data(rx);    mgl_delete_data(ry);
+ *Fortran* integer a,x,y,rx,ry, mgl_create_data_size
+x = mgl_create_data_size(50,1,1)
+y = mgl_create_data_size(50,1,1)
+rx = mgl_create_data_size(50,1,1)
+ry = mgl_create_data_size(50,1,1)
+a = mgl_create_data_size(20,30,1)
+call mgl_data_modify(x,'0.25*(1+cos(2*pi*x))',0)
+call mgl_data_modify(y,'0.25*(1+sin(2*pi*x))',0)
+call mgl_data_modify(rx,'rnd',0)
+call mgl_data_modify_vw(ry,'(1-v)*rnd',rx,rx)
+call mgl_data_modify(a,'4*x*y',0)
+call mgl_puts_ext(gr,-0.8,1.3,0.,'Ternary plot (x+y+t=1)','C',-1.4,'t')
+call mgl_set_ternary(gr,1)
+call mgl_plot_xy(gr,x,y,'r2')
+call mgl_plot_xy(gr,rx,ry,'q^ ')
+call mgl_cont(gr,a,'',7,0.)
+call mgl_line(gr,0.5,0.,0.,0.,0.75,0.,'g2',2)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B:')
+call mgl_label(gr,'x','x comp')
+call mgl_label(gr,'y','y comp')
+call mgl_label(gr,'t','t comp')
+call mgl_delete_data(a)
+call mgl_delete_data(x)
+call mgl_delete_data(y)
+call mgl_delete_data(rx)
+call mgl_delete_data(ry)
+ *Python* x, y, rx, ry, a = mglData(50), mglData(50), mglData(10), mglData(10), mglData(20,30);
+a.Modify("4*x*y");
+x.Modify("0.25*(1+cos(2*pi*x))");   y.Modify("0.25*(1+sin(2*pi*x))");
+rx.Modify("rnd");   ry.Modify("(1-v)*rnd",rx);
+gr.Puts(-0.8,1.3,0,"Ternary plot (x+y+t=1)","C",-1.4);
+gr.Ternary(True);
+gr.Plot(x,y,"r2");  gr.Plot(rx,ry,"q^ ");   gr.Cont(a);
+gr.Line(0.5,0,0,0,0.75,0,"g2");
+gr.Axis();          gr.Grid("xyz","B;");
+gr.Label("x","x comp.");
+gr.Label("y","y comp.");
+gr.Label("t","t comp.");
+
+
+File: mathgl_ru.info,  Node: Coloring by coordinates sample,  Next: Drops sample,  Prev: Ternary plot sample,  Up: Additional features
+
+9.6.9 Окрашивание по положению грани
+---------------------------------------------------------------
+
+ [image src="../png/surf3_rgbd.png" ]
+
+*C++ код* mglData a(60,50,40);
+a.Modify("-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)");
+gr->Rotate(40,60);
+gr->Box();
+gr->Surf3(a,"bgrd");
+ *MGL скрипт*
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+surf3 a 'bgrd'
+ *C-ый код* HMDT a = mgl_create_data_size(60,50,40);
+mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_box(gr,1);
+mgl_surf3(gr,a,"bgrd",3);
+mgl_delete_data(a);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(60,50,40);
+call mgl_data_modify(a,"-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)",0);
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_box(gr,1)
+call mgl_surf3(gr,a,'bgrd',3)
+call mgl_delete_data(a)
+ *Python* a = mglData(60,50,40);
+a.Modify("-2*((2*x-1)^2+(2*y-1)^2+(2*z-1)^4-(2*z-1)^2-0.1)");
+gr.Rotate(40,60);       gr.Box();
+gr.Surf3(a,"bgrd");
+
+
+File: mathgl_ru.info,  Node: Drops sample,  Next: Molecules drawing sample,  Prev: Coloring by coordinates sample,  Up: Additional features
+
+9.6.10 Drops - пример использования
+------------------------------------------------------
+
+ [image src="../png/drops.png" ]
+
+*C++ код* gr->Light(true);
+gr->Puts(mglPoint(-1,1.2),"sh=0");
+gr->Drop(mglPoint(-1,0),mglPoint(0,1),0.5,"r",0);
+gr->Puts(mglPoint(-0.33,1.2),"sh=0.33");
+gr->Drop(mglPoint(-0.33,0),mglPoint(0,1),0.5,"r",0.33);
+gr->Puts(mglPoint(0.33,1.2),"sh=0.67");
+gr->Drop(mglPoint(0.33,0),mglPoint(0,1),0.5,"r",0.67);
+gr->Puts(mglPoint(1,1.2),"sh=1");
+gr->Drop(mglPoint(1,0),mglPoint(0,1),0.5,"r",1);
+gr->Ball(mglPoint(-1,0,1),'k');
+gr->Ball(mglPoint(-0.33,0,1),'k');
+gr->Ball(mglPoint(0.33,0,1),'k');
+gr->Ball(mglPoint(1,0,1),'k');
+gr->Line(mglPoint(-1,0,1),mglPoint(1,0,1),"b");
+ *MGL скрипт*
+light on
+text -1 1.2 'sh=0'
+drop -1 0 0 1 0.5 'r' 0
+text -0.33 1.2 'sh=0.33'
+drop -0.33 0 0 1 0.5 'r' 0.33
+text 0.33 1.2 'sh=0.67'
+drop 0.33 0 0 1 0.5 'r' 0.67
+text 1 1.2 'sh=1'
+drop 1 0 0 1 0.5 'r' 1
+ball -1 0 1 'k'
+ball -0.33 0 1 'k'
+ball 0.33 0 1 'k'
+ball 1 0 1 'k'
+line -1 0 1 1 0 1 'b'
+new h 100
+modify h '0.25*(1+x)^2'
+plot h 'k|'
+text -1 0.6 'h\sim(1+sh)^2' 'rL'
+ *C-ый код* mgl_set_light(gr,1);
+mgl_puts(gr,-1.,1.2,0.,"sh=0");
+mgl_drop(gr,-1.,0.,0.,0.,1.,0.,0.5,"r",0.,1.);
+mgl_puts(gr,-0.33,1.2,0.,"sh=0.33");
+mgl_drop(gr,-0.33,0.,0.,0.,1.,0.,0.5,"r",0.33,1.);
+mgl_puts(gr,0.33,1.2,0.,"sh=0.67");
+mgl_drop(gr,0.33,0.,0.,0.,1.,0.,0.5,"r",0.67,1.);
+mgl_puts(gr,1.,1.2,0.,"sh=1");
+mgl_drop(gr,1.,0.,0.,0.,1.,0.,0.5,"r",1.,1.);
+mgl_ball_str(gr,-1.,0.,1.,"k");
+mgl_ball_str(gr,-0.33,0.,1.,"k");
+mgl_ball_str(gr,0.33,0.,1.,"k");
+mgl_ball_str(gr,1.,0.,1.,"k");
+mgl_line(gr,-1.,0.,1.,1.,0.,1.,"b",2);
+ *Fortran* call mgl_set_light(gr,1);
+call mgl_puts(gr,-1.,1.2,0.,"sh=0");
+call mgl_drop(gr,-1.,0.,0.,0.,1.,0.,0.5,"r",0.,1.);
+call mgl_puts(gr,-0.33,1.2,0.,"sh=0.33");
+call mgl_drop(gr,-0.33,0.,0.,0.,1.,0.,0.5,"r",0.33,1.);
+call mgl_puts(gr,0.33,1.2,0.,"sh=0.67");
+call mgl_drop(gr,0.33,0.,0.,0.,1.,0.,0.5,"r",0.67,1.);
+call mgl_puts(gr,1.,1.2,0.,"sh=1");
+call mgl_drop(gr,1.,0.,0.,0.,1.,0.,0.5,"r",1.,1.);
+call mgl_ball_str(gr,-1.,0.,1.,"k");
+call mgl_ball_str(gr,-0.33,0.,1.,"k");
+call mgl_ball_str(gr,0.33,0.,1.,"k");
+call mgl_ball_str(gr,1.,0.,1.,"k");
+call mgl_line(gr,-1.,0.,1.,1.,0.,1.,"b",2);
+ *Python* gr.Light(True);
+gr.Puts(-1,1.2,0,"sh=0","rC");
+gr.Drop(-1,0,0,0,1,0,0.5,"r",0);
+gr.Puts(-0.33,1.2,0,"sh=0.33","rC");
+gr.Drop(-0.33,0,0,0,1,0,0.5,"r",0.33);
+gr.Puts(0.33,1.2,0,"sh=0.67","rC");
+gr.Drop(0.33,0,0,0,1,0,0.5,"r",0.67);
+gr.Puts(1,1.2,0,"sh=1","rC");
+gr.Drop(1,0,0,0,1,0,0.5,"r",1);
+gr.Ball(-1,0,1,"k");    gr.Ball(-0.33,0,1,"k");
+gr.Ball(0.33,0,1,"k");  gr.Ball(1,0,1,"k");
+gr.Line(-1,0,1,1,0,1,"b");
+
+
+File: mathgl_ru.info,  Node: Molecules drawing sample,  Prev: Drops sample,  Up: Additional features
+
+9.6.11 Рисование молекул
+----------------------------------------
+
+ [image src="../png/molecule.png" ]
+
+*C++ код* gr->Alpha(true); gr->Light(true);
+gr->SubPlot(2,2,0);
+gr->Text(mglPoint(0,1.2),"Methane, CH_4",0,-3); gr->Rotate(60,120);
+gr->Sphere(mglPoint(0,0,0),0.25,"k");
+gr->Drop(mglPoint(0,0,0),mglPoint(0,0,1),0.35,"h",1,2);
+gr->Sphere(mglPoint(0,0,0.7),0.25,"g");
+gr->Drop(mglPoint(0,0,0),mglPoint(-0.94,0,-0.33),0.35,"h",1,2);
+gr->Sphere(mglPoint(-0.66,0,-0.23),0.25,"g");
+gr->Drop(mglPoint(0,0,0),mglPoint(0.47,0.82,-0.33),0.35,"h",1,2);
+gr->Sphere(mglPoint(0.33,0.57,-0.23),0.25,"g");
+gr->Drop(mglPoint(0,0,0),mglPoint(0.47,-0.82,-0.33),0.35,"h",1,2);
+gr->Sphere(mglPoint(0.33,-0.57,-0.23),0.25,"g");
+gr->SubPlot(2,2,1);
+gr->Text(mglPoint(0,1.2),"Water, H{_2}O",0,-3); gr->Rotate(60,100);
+gr->Sphere(mglPoint(0,0,0),0.25,"r");
+gr->Drop(mglPoint(0,0,0),mglPoint(0.3,0.5,0),0.3,"m",1,2);
+gr->Sphere(mglPoint(0.3,0.5,0),0.25,"g");
+gr->Drop(mglPoint(0,0,0),mglPoint(0.3,-0.5,0),0.3,"m",1,2);
+gr->Sphere(mglPoint(0.3,-0.5,0),0.25,"g");
+gr->SubPlot(2,2,2);
+gr->Text(mglPoint(0,1.2),"Oxygen, O_2",0,-3); gr->Rotate(60,120);
+gr->Drop(mglPoint(0,0.5,0),mglPoint(0,-0.3,0),0.3,"m",1,2);
+gr->Sphere(mglPoint(0,0.5,0),0.25,"r");
+gr->Drop(mglPoint(0,-0.5,0),mglPoint(0,0.3,0),0.3,"m",1,2);
+gr->Sphere(mglPoint(0,-0.5,0),0.25,"r");
+gr->SubPlot(2,2,3);
+gr->Text(mglPoint(0,1.2),"Ammonia, NH_3",0,-3); gr->Rotate(60,120);
+gr->Sphere(mglPoint(0,0,0),0.25,"b");
+gr->Drop(mglPoint(0,0,0),mglPoint(0.33,0.57,0),0.32,"n",1,2);
+gr->Sphere(mglPoint(0.33,0.57,0),0.25,"g");
+gr->Drop(mglPoint(0,0,0),mglPoint(0.33,-0.57,0),0.32,"n",1,2);
+gr->Sphere(mglPoint(0.33,-0.57,0),0.25,"g");
+gr->Drop(mglPoint(0,0,0),mglPoint(-0.65,0,0),0.32,"n",1,2);
+gr->Sphere(mglPoint(-0.65,0,0),0.25,"g");
+ *MGL скрипт*
+alpha on
+light on
+subplot 2 2 0
+text 0 1.2 'Methane, CH_4' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'k'
+drop 0 0 0 0 0 1 0.35 'h' 1 2
+sphere 0 0 0.7 0.25 'g'
+drop 0 0 0 -0.94 0 -0.33 0.35 'h' 1 2
+sphere -0.66 0 -0.23 0.25 'g'
+drop 0 0 0 0.47 0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 0.57 -0.23 0.25 'g'
+drop 0 0 0 0.47 -0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 -0.57 -0.23 0.25 'g'
+subplot 2 2 1
+text 0 1.2 'Water, H{_2}O' '' -3
+rotate 60 100
+sphere 0 0 0 0.25 'r'
+drop 0 0 0 0.3 0.5 0 0.3 'm' 1 2
+sphere 0.3 0.5 0 0.25 'g'
+drop 0 0 0 0.3 -0.5 0 0.3 'm' 1 2
+sphere 0.3 -0.5 0 0.25 'g'
+subplot 2 2 2
+text 0 1.2 'Oxygen, O_2' '' -3
+rotate 60 120
+drop 0 0.5 0 0 -0.3 0 0.3 'm' 1 2
+sphere 0 0.5 0 0.25 'r'
+drop 0 -0.5 0 0 0.3 0 0.3 'm' 1 2
+sphere 0 -0.5 0 0.25 'r'
+subplot 2 2 3
+text 0 1.2 0 'Ammonia, NH_3' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'b'
+drop 0 0 0 0.33 0.57 0 0.32 'n' 1 2
+sphere 0.33 0.57 0 0.25 'g'
+drop 0 0 0 0.33 -0.57 0 0.32 'n' 1 2
+sphere 0.33 -0.57 0 0.25 'g'
+drop 0 0 0 -0.65 0 0 0.32 'n' 1 2
+sphere -0.65 0 0 0.25 'g'
+
+
+File: mathgl_ru.info,  Node: Advanced features,  Prev: Additional features,  Up: Samples
+
+9.7 "Продвинутые" возможности
+===================================================
+
+* Menu:
+
+* Curvelinear coorinates sample::
+* 2-axes sample::
+* Semi-log sample::
+* Log-log sample::
+* Fitting sample::
+* Envelop sample::
+* Sew sample::
+* STFA sample::
+* PDE sample::
+* Beam tracing sample::
+* Parser sample::
+* Manual ticks sample::
+* ColumnPlot sample::
+* StickPlot sample::
+* Stereo image sample::
+
+
+File: mathgl_ru.info,  Node: Curvelinear coorinates sample,  Next: 2-axes sample,  Up: Advanced features
+
+9.7.1 Криволинейные координаты
+-----------------------------------------------------
+
+ [image src="../png/sample3.png" ]
+
+*C++ код* gr->Org = mglPoint(-1,1,-1);
+gr->SubPlot(2,2,0); gr->Rotate(60,40);
+gr->Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),"r2",100);
+gr->Axis(); gr->Grid();
+gr->Text(mglPoint(0,1.3,1),"Cartesian");
+gr->SubPlot(2,2,1); gr->Rotate(60,40);
+gr->SetFunc("y*sin(pi*x)","y*cos(pi*x)");
+gr->Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),"r2",100);
+gr->Axis(); gr->Grid();
+gr->Text(mglPoint(0,1.3,1),"Cylindrical");
+gr->SubPlot(2,2,2); gr->Rotate(60,40);
+gr->SetFunc("2*y*x","y*y - x*x");
+gr->Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),"r2",100);
+gr->Axis(); gr->Grid();
+gr->Text(mglPoint(0,1.3,1),"Parabolic");
+gr->SubPlot(2,2,3); gr->Rotate(60,40);
+gr->SetFunc("y*sin(pi*x)","y*cos(pi*x)","x+z");
+gr->Line(mglPoint(-1,0.5,0),mglPoint(1,0.5,0),"r2",100);
+gr->Axis(); gr->Grid();
+gr->Text(mglPoint(0,1.3,1),"Spiral");
+gr->Axis(0,0,0); // set to default Cartesian
+ *MGL скрипт*
+origin -1 1 -1
+subplot 2 2 0
+rotate 60 40
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cartesian'
+subplot 2 2 1
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cylindrical'
+subplot 2 2 2
+rotate 60 40
+axis '2*y*x' 'y*y - x*x' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Parabolic'
+subplot 2 2 3
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Spiral'
+axis '' '' '' # set to default Cartesian
+ *C-ый код* mgl_set_origin(gr,-1,1,-1);
+mgl_subplot(gr,2,2,0); mgl_rotate(gr,60,40,0);
+mgl_line(gr,-1,0.5,0,1,0.5,0,"r2",100);
+mgl_axis(gr,"xyz"); mgl_axis_grid(gr,"xyz","B");
+mgl_text(gr,0,1.3,1,"Cartesian");
+mgl_subplot(gr,2,2,1); mgl_rotate(gr,60,40,0);
+mgl_set_func(gr,"y*sin(pi*x)","y*cos(pi*x)",0);
+mgl_line(gr,-1,0.5,0,1,0.5,0,"r2",100);
+mgl_axis(gr,"xyz"); mgl_axis_grid(gr,"xyz","B");
+mgl_text(gr,0,1.3,1,"Cylindrical");
+mgl_subplot(gr,2,2,2); mgl_rotate(gr,60,40,0);
+mgl_set_func(gr,"2*y*x","y*y - x*x","");
+mgl_line(gr,-1,0.5,0,1,0.5,0,"r2",100);
+mgl_axis(gr,"xyz"); mgl_axis_grid(gr,"xyz","B");
+mgl_text(gr,0,1.3,1,"Parabolic");
+mgl_subplot(gr,2,2,3); mgl_rotate(gr,60,40,0);
+mgl_set_func(gr,"y*sin(pi*x)","y*cos(pi*x)","x+z");
+mgl_line(gr,-1,0.5,0,1,0.5,0,"r2",100);
+mgl_axis(gr,"xyz"); mgl_axis_grid(gr,"xyz","B");
+mgl_text(gr,0,1.3,1,"Spiral");
+mgl_set_func(gr,0,0,0); /* set to default Cartesian */
+ *Fortran* call mgl_set_origin(gr,-1.,1.,-1.)
+call mgl_subplot(gr,2,2,0)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,'Cartesian')
+call mgl_subplot(gr,2,2,1)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_set_func(gr,'y*sin(pi*x)','y*cos(pi*x)','')
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,'Cylindrical')
+call mgl_subplot(gr,2,2,2)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_set_func(gr,'2*y*x','y*y - x*x','')
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,"Parabolic")
+call mgl_subplot(gr,2,2,3)
+call mgl_rotate(gr,60.,40.,0.)
+call mgl_set_func(gr,'y*sin(pi*x)','y*cos(pi*x)','x+z')
+call mgl_line(gr,-1.,0.5,0.,1.,0.5,0.,'r2',100)
+call mgl_axis(gr,'xyz')
+call mgl_axis_grid(gr,'xyz','B')
+call mgl_text(gr,0.,1.3,1.,'Spiral')
+call mgl_set_func(gr,'','','') ! set to default Cartesian
+ *Python* gr.SetOrigin(-1,1,-1);
+gr.SubPlot(2,2,0);              gr.Rotate(60,40);
+gr.Line(-1,0.5,0,1,0.5,0,"r2",100);
+gr.Axis();              gr.Grid();
+gr.Puts(0,1.3,1,"Gartesian","rC",-1.5);
+gr.SubPlot(2,2,1);  gr.Rotate(60,40);
+gr.SetFunc("y*sin(pi*x)","y*cos(pi*x)");
+gr.Line(-1,0.5,0,1,0.5,0,"r2",100);
+gr.Axis();          gr.Grid();
+gr.Puts(0,1.3,1,"Cylindrical","rC",-1.5);
+gr.SubPlot(2,2,2);  gr.Rotate(60,40);
+gr.SetFunc("2*y*x","y*y-x*x");
+gr.Line(-1,0.5,0,1,0.5,0,"r2",100);
+gr.Axis();          gr.Grid();
+gr.Puts(0,1.3,1,"Parabolic","rC",-1.5);
+gr.SubPlot(2,2,3);  gr.Rotate(60,40);
+gr.SetFunc("y*sin(pi*x)","y*cos(pi*x)","x+z");
+gr.Line(-1,0.5,0,1,0.5,0,"r2",100);
+gr.Axis();          gr.Grid();
+gr.Puts(0,1.3,1,"Spiral","rC",-1.5);
+gr.SetFunc("","");   # set to default Gartesian
+
+
+File: mathgl_ru.info,  Node: 2-axes sample,  Next: Semi-log sample,  Prev: Curvelinear coorinates sample,  Up: Advanced features
+
+9.7.2 Несколько осей на одном графике
+----------------------------------------------------------------
+
+ [image src="../png/2_axis.png" ]
+
+*C++ код* mglData y1(50), y2(50);
+y1.Modify("0.3*sin(2*pi*x)"); y2.Modify("0.5+0.3*cos(2*pi*x)");
+gr->Axis(mglPoint(-1,-1,-1),mglPoint(1,1,1),mglPoint(-1,-1,-1));
+gr->Axis(); gr->Label('y',"axis 1",0);
+gr->Plot(y1,"b");
+gr->Axis(mglPoint(0,0,0),mglPoint(1,1,1),mglPoint(1,1,1));
+gr->Axis(); gr->Label('y',"axis 2",0);
+gr->Stem(y2,"r");
+ *MGL скрипт*
+new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+axis -1 -1 -1 1 1 1
+origin -1 -1 -1
+axis
+ylabel 'axis 1' 0
+plot y1 'b'
+axis 0 0 0 1 1 1
+origin 1 1 1
+axis
+ylabel 'axis 2' 0
+stem y2 'r'
+ *C-ый код* HMDT y1 = mgl_create_data_size(50,1,1);
+HMDT y2 = mgl_create_data_size(50,1,1);
+mgl_data_modify(y1,"0.3*sin(2*pi*x)",0);
+mgl_data_modify(y2,"0.5+0.3*cos(2*pi*x)",0);
+mgl_set_axis_2d(gr,-1.,1.,-1.,1.);
+mgl_set_origin(gr,-1.,-1.,-1.);
+mgl_axis(gr,"xyz");
+mgl_label_ext(gr,'y',"axis 1",0,-1.4,0.);
+mgl_plot(gr,y1,"b");
+mgl_set_axis_2d(gr,0.,0.,1.,1.);
+mgl_set_origin(gr,1.,1.,1.);
+mgl_axis(gr,"xyz");
+mgl_label_ext(gr,'y',"axis 2",0,-1.4,0.);
+mgl_stem(gr,y2,"r");
+ *Fortran* integer y1,y2, mgl_create_data_size
+y1 = mgl_create_data_size(50,1,1)
+y2 = mgl_create_data_size(50,1,1)
+call mgl_data_modify(y1,'0.3*sin(2*pi*x)',0)
+call mgl_data_modify(y2,'0.5+0.3*cos(2*pi*x)',0)
+call mgl_set_axis_2d(gr,-1.,1.,-1.,1.)
+call mgl_set_origin(gr,-1.,-1.,-1.)
+call mgl_axis(gr,'xyz')
+call mgl_label_ext(gr,'y','axis 1',0,-1.4,0.)
+call mgl_plot(gr,y1,'b')
+call mgl_set_axis_2d(gr,0.,0.,1.,1.)
+call mgl_set_origin(gr,1.,1.,1.)
+call mgl_axis(gr,'xyz')
+call mgl_label_ext(gr,'y','axis 2',0,-1.4,0.)
+call mgl_stem(gr,y2,'r')
+ *Python* y1, y2 = mglData(50), mglData(50);
+y1.Modify("0.3*sin(2*pi*x)");   y2.Modify("0.5+0.3*cos(2*pi*x)");
+gr.SetRanges(-1,1,-1,1);   gr.SetOrigin(-1,-1);
+gr.Axis();      gr.Label("y","axis 1",0);
+gr.Plot(y1,"b");
+gr.SetRanges(0,1,0,1);      gr.SetOrigin(1,1);
+gr.Axis();      gr.Label("y","axis 2",0);
+gr.Stem(y2,"r");
+
+
+File: mathgl_ru.info,  Node: Semi-log sample,  Next: Log-log sample,  Prev: 2-axes sample,  Up: Advanced features
+
+9.7.3 Semi-log - пример использования
+--------------------------------------------------------
+
+ [image src="../png/semilog.png" ]
+
+*C++ код* mglData x(2000), y(2000);
+x.Modify("0.01/(x+10^(-5))"); y.Modify("sin(1/v)",x);
+gr->Axis(mglPoint(0.01,-1),mglPoint(1000,1),mglPoint(0.01,-1));
+gr->SetFunc("lg(x)",0);  gr->SetTicks('x',0);
+gr->Box();
+gr->Plot(x,y,"b2");
+gr->Axis(); gr->Grid("xy","g");
+gr->Label('x',"x",0);   gr->Label('y', "y = sin 1/x",0);
+ *MGL скрипт*
+new x 2000
+new y 2000
+modify x '0.01/(x+10^(-5))'
+modify y 'sin(1/v)' x
+xrange 0.01 1000
+origin 0.01 -1 0
+xtick 0
+axis 'lg(x)' '' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g'
+xlabel 'x' 0
+ylabel 'y = sin 1/x' 0
+box
+ *C-ый код* HMDT x = mgl_create_data_size(2000,1,1);
+HMDT y = mgl_create_data_size(2000,1,1);
+mgl_data_modify(x,"0.01/(x+10^(-5))",0);
+mgl_data_modify_vw(y,"sin(1/v)",x,0);
+mgl_set_axis(gr,0.01,-1.,0.,1000.,1.,0.,0.01,-1.,0.);
+mgl_set_func(gr,"lg(x)",0,0);
+mgl_set_ticks(gr,0.,-5.,-5.);
+mgl_box(gr,1);
+mgl_plot_xy(gr,x,y,"b2");
+mgl_axis(gr,"xy"); mgl_axis_grid(gr,"xy","g");
+mgl_label_ext(gr,'x',"x",0,-1.4,0);
+mgl_label_ext(gr,'y', "y = sin 1/x",0,-1.4,0);
+mgl_delete_data(x); mgl_delete_data(y);
+ *Fortran* integer x,y, mgl_create_data_size
+x = mgl_create_data_size(2000,1,1)
+y = mgl_create_data_size(2000,1,1)
+call mgl_data_modify(x,'0.01/(x+10^(-5))',0)
+call mgl_data_modify_vw(y,'sin(1/v)',x,x)
+call mgl_set_axis(gr,0.01,-1.,0.,1000.,1.,0.,0.01,-1.,0.)
+call mgl_set_func(gr,'lg(x)','','')
+call mgl_set_ticks(gr,0.,-5.,-5.)
+call mgl_box(gr,1)
+call mgl_plot_xy(gr,x,y,'b2')
+call mgl_axis(gr,'xy')
+call mgl_axis_grid(gr,'xy','g')
+call mgl_label_ext(gr,'x','x',0.,-1.4,0.)
+call mgl_label_ext(gr,'y', 'y = sin 1/x',0.,-1.4,0.)
+call mgl_delete_data(x)
+call mgl_delete_data(y)
+ *Python* TO BE DONE
+
+
+File: mathgl_ru.info,  Node: Log-log sample,  Next: Fitting sample,  Prev: Semi-log sample,  Up: Advanced features
+
+9.7.4 Log-log - пример использования
+-------------------------------------------------------
+
+ [image src="../png/loglog.png" ]
+
+*C++ код* mglData x(100), y(100);
+x.Modify("pow(10,6*x-3)"); y.Modify("sqrt(1+v^2)",x);
+gr->Axis(mglPoint(0.001,0.1),mglPoint(1000,1000),mglPoint(0.001,0.1));
+gr->SetFunc("lg(x)","lg(y)");
+gr->SetTicks('x',0);    gr->SetTicks('y',0);
+gr->Box();
+gr->Plot(x,y,"b2");
+gr->Axis(); gr->Grid("xy","g;");
+gr->Label('x',"x",0); gr->Label('y', "y=\\sqrt{1+x^2}",0);
+ *MGL скрипт*
+new x 100
+new y 100
+modify x 'pow(10,6*x-3)'
+modify y 'sqrt(1+v^2)' x
+axis 0.001 0.1 1000 1000
+xtick 0
+ytick 0
+axis 'lg(x)' 'lg(y)' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g;'
+xlabel 'x' 0
+ylabel 'y=\sqrt{1+x^2}' 0
+box
+ *C-ый код* HMDT x = mgl_create_data_size(100,1,1);
+HMDT y = mgl_create_data_size(100,1,1);
+mgl_data_modify(x,"pow(10,6*x-3)",0);
+mgl_data_modify_vw(y,"sqrt(1+v^2)",x,0);
+mgl_set_axis(gr,0.001,0.1,0.,1000.,1000.,0.,0.001,0.1,0.);
+mgl_set_func(gr,"lg(x)","lg(y)",0);
+mgl_set_ticks(gr,0.,0.,-5.);
+mgl_box(gr,1);
+mgl_plot_xy(gr,x,y,"b2");
+mgl_axis(gr,"xy"); mgl_axis_grid(gr,"xy","g;");
+mgl_label_ext(gr,'x',"x",0,-1.4,0);
+mgl_label_ext(gr,'y', "y=\\sqrt{1+x^2}",0,-1.4,0);
+mgl_delete_data(x); mgl_delete_data(y);
+ *Fortran* integer x,y, mgl_create_data_size
+x = mgl_create_data_size(100,1,1)
+y = mgl_create_data_size(100,1,1)
+call mgl_data_modify(x,'pow(10,6*x-3)',0)
+call mgl_data_modify_vw(y,'sqrt(1+v^2)',x,x)
+call mgl_set_axis(gr,0.001,0.1,0.,1000.,1000.,0.,0.001,0.1,0.)
+call mgl_set_func(gr,'lg(x)','lg(y)','')
+call mgl_set_ticks(gr,0.,0.,-5.)
+call mgl_box(gr,1)
+call mgl_plot_xy(gr,x,y,'b2')
+call mgl_axis(gr,'xy')
+call mgl_axis_grid(gr,'xy','g;')
+call mgl_label_ext(gr,'x','x',0.,-1.4,0)
+call mgl_label_ext(gr,'y', 'y=\sqrt{1+x^2}',0.,-1.4,0)
+call mgl_delete_data(x)
+call mgl_delete_data(y)
+ *Python* x, y = mglData(100), mglData(100);
+x.Modify("pow(10,6*x-3)");          y.Modify("sqrt(1+v^2)",x);
+gr.SetRanges(0.001,1000,0.1,1000);  gr.SetOrigin(0.001,0.1);
+gr.SetFunc("lg(x)","lg(y)");
+gr.SetTicks("x",0);     gr.SetTicks("y",0);
+gr.Box();               gr.Plot(x,y,"b2");
+gr.Axis();              gr.Grid("xy","g;");
+gr.Label("x","x",0);    gr.Label("y","y=\\sqrt{1+x^2}",0);
+
+
+File: mathgl_ru.info,  Node: Fitting sample,  Next: Envelop sample,  Prev: Log-log sample,  Up: Advanced features
+
+9.7.5 Fitting - пример использования
+-------------------------------------------------------
+
+ [image src="../png/fit.png" ]
+
+*C++ код* mglData rnd(100), in(100), res;
+rnd.Fill("0.4*rnd+0.1+sin(2*pi*x)", gr->Min, gr->Max);
+in.Fill("0.3+sin(2*pi*x)", gr->Min, gr->Max);
+gr->Axis(mglPoint(-1,-2), mglPoint(1,2));
+gr->Plot(rnd, ". ");
+gr->Box();
+float ini[3] = {1,1,3};
+gr->Fit(res, rnd, "a+b*sin(c*x)", "abc", ini);
+gr->Plot(res, "r");
+gr->Plot(in, "b");
+gr->Text(mglPoint(-1, -1.3), "fitted:", "L:r", -1);
+gr->PutsFit(mglPoint(0, -1.8), "y = ", "C:r", -1);
+gr->Text(mglPoint(0, 2.2), "initial: y = 0.3+sin(2\\pi x)", "C:b", -1);
+ *MGL скрипт*
+new rnd 100
+fill rnd '0.4*rnd+0.1+sin(2*pi*x)'
+new in 100
+fill in '0.3+sin(2*pi*x)'
+yrange -2 2
+plot rnd '. '
+box
+list ini 1 1 3
+fit res rnd 'a+b*sin(c*x)' 'abc' ini
+plot res 'r'
+plot in 'b'
+text -1 -1.3 'fitted:' 'L:r' -1
+putsfit 0 -1.8 'y = ' 'C:r'
+text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
+ *C-ый код* HMDT rnd,in,res;
+float ini[3] = {1,1,3};
+rnd = mgl_create_data_size(100,1,1);
+in = mgl_create_data_size(100,1,1);
+res = mgl_create_data();
+mgl_data_modify(rnd,"0.4*rnd+0.1+sin(4*pi*x)",0);
+mgl_data_modify(in,"0.3+sin(4*pi*x)",0);
+mgl_set_axis_2d(gr,-1.,-2.,1.,2.);
+mgl_plot(gr,rnd,". ");
+mgl_box(gr,1);
+mgl_fit_1(gr,res,rnd,"a+b*sin(c*x)","abc",ini);
+mgl_plot(gr,res,"r");   mgl_plot(gr,in,"b");
+mgl_puts_ext(gr,-1.,-1.3,0.,"fitted:","L:r",-1.,'t');
+mgl_puts_fit(gr,0.,-1.8,0.,"y = ","C:r",-1.);
+mgl_puts_ext(gr,0.,2.2,0.,"initial: y = 0.3+sin(2\\pi x)","C:b", -1., 't');
+ *Fortran* integer rnd,in,res, mgl_create_data_size
+real ini(3)
+ini(1)=1;   ini(2)=1;   ini(3)=3;
+rnd = mgl_create_data_size(100,1,1);
+in = mgl_create_data_size(100,1,1);
+res = mgl_create_data();
+call mgl_data_modify(rnd,"0.4*rnd+0.1+sin(4*pi*x)",0);
+call mgl_data_modify(in,"0.3+sin(4*pi*x)",0);
+call mgl_set_axis_2d(gr,-1.,-2.,1.,2.);
+call mgl_plot(gr,rnd,". ");
+call mgl_box(gr,1);
+call mgl_fit_1(gr,res,rnd,"a+b*sin(c*x)","abc",ini);
+call mgl_plot(gr,res,"r");
+call mgl_plot(gr,in,"b");
+call mgl_puts_ext(gr,-1.,-1.3,0.,"fitted:","L:r",-1.,'t');
+call mgl_puts_fit(gr,0.,-1.8,0.,"y = ","C:r",-1.);
+call mgl_puts_ext(gr,0.,2.2,0.,"initial: y = 0.3+sin(2\\pi x)","C:b", -1., 't');
+ *Python* rnd, In, res, ini = mglData(100), mglData(100), mglData(), mglData(3);
+rnd.Modify("0.4*rnd+0.1+sin(4*pi*x)");
+In.Modify("0.3+sin(4*pi*x)");
+gr.SetRanges(-1,1,-2,2);
+gr.Plot(rnd,". ");
+gr.Box();
+ini[0], ini[1], ini[2] = 1, 1, 3;
+gr.Fit(res,rnd,"a+b*sin(c*x)","abc",ini);
+gr.Plot(res,"r");   gr.Plot(In,"b");
+gr.Puts(-1,-1.3,0,"fitted:","L:r",-1);
+gr.PutsFit(0,-1.8,0,"y = ","C:r",-1);
+gr.Puts(0,2.2,0,"initial: y = 0.3+sin(2\\pi x)","C:b",-1);
+
+
+File: mathgl_ru.info,  Node: Envelop sample,  Next: Sew sample,  Prev: Fitting sample,  Up: Advanced features
+
+9.7.6 Envelop - пример использования
+-------------------------------------------------------
+
+ [image src="../png/envelop.png" ]
+
+*C++ код* mglData a(1000);
+a.Fill("exp(-8*x^2)*sin(10*pi*x)", gr->Min, gr->Max);
+gr->Plot(a, "b");
+a.Envelop('x');
+gr->Plot(a, "r");
+gr->Axis();
+ *MGL скрипт*
+new a 1000
+fill a 'exp(-8*x^2)*sin(10*pi*x)'
+plot a 'b'
+envelop a
+plot a 'r'
+axis
+ *C-ый код* HMDT a = mgl_create_data_size(1000,1,1);
+mgl_data_fill_eq(gr,a, "exp(-8*x^2)*sin(10*pi*x)", 0,0);
+mgl_plot(gr,a,"b");
+mgl_data_envelop(a,'x');
+mgl_plot(gr,a,"r");
+mgl_axis(gr,"xyz");
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(1000,1,1)
+call mgl_data_fill_eq(gr,a, 'exp(-8*x^2)*sin(10*pi*x)', 0,0)
+call mgl_plot(gr,a,'b')
+call mgl_data_envelop(a,'x')
+call mgl_plot(gr,a,'r')
+call mgl_axis(gr,'xyz')
+ *Python* a = mglData(1000);
+gr.Fill(a, "exp(-8*x^2)*sin(10*pi*x)");
+gr.Plot(a,"b");
+a.Envelop("x");
+gr.Plot(a,"r");
+gr.Axis();
+
+
+File: mathgl_ru.info,  Node: Sew sample,  Next: STFA sample,  Prev: Envelop sample,  Up: Advanced features
+
+9.7.7 Sew - пример использования
+---------------------------------------------------
+
+ [image src="../png/sew.png" ]
+
+*C++ код* mglData a(100, 100);
+a.Modify("mod((y^2-(1-x)^2)/2,0.1)");
+gr->Rotate(40, 60);
+gr->Light(true);
+gr->Alpha(true);
+gr->Surf(a, "b");
+a.Sew("xy", 0.1);
+gr->Surf(a, "r");
+gr->Box();
+ *MGL скрипт*
+new a 100 100
+modify a 'mod((y^2-(1-x)^2)/2,0.1)'
+rotate 40 60
+light on
+alpha on
+surf a 'b'
+sew a 'xy' 0.1
+surf a 'r'
+box
+ *C-ый код* HMDT a = mgl_create_data_size(100,100,1);
+mgl_data_modify(a, "mod((y^2-(1-x)^2)/2, 0.1)", 0);
+mgl_rotate(gr,40.,60.,0.);
+mgl_set_light(gr,1);
+mgl_set_alpha(gr,1);
+mgl_surf(gr,a,"b");
+mgl_data_sew(a,"xy",0.1);
+mgl_surf(gr,a,"r");
+mgl_box(gr,1);
+ *Fortran* integer a, mgl_create_data_size
+a = mgl_create_data_size(100,100,1)
+call mgl_data_modify(a, 'mod((y^2-(1-x)^2)/2, 0.1)', 0)
+call mgl_rotate(gr,40.,60.,0.)
+call mgl_set_light(gr,1)
+call mgl_set_alpha(gr,1)
+call mgl_surf(gr,a,'b')
+call mgl_data_sew(a,'xy',0.1)
+call mgl_surf(gr,a,'r')
+call mgl_box(gr,1)
+ *Python* a = mglData(100, 100);
+a.Modify("mod((y^2-(1-x)^2)/2, 0.1)");
+gr.Rotate(40, 60);  gr.Light(True);     gr.Alpha(True);
+gr.Surf(a, "b");
+a.Sew("xy", 0.1);
+gr.Surf(a, "r");
+gr.Box();
+
+
+File: mathgl_ru.info,  Node: STFA sample,  Next: PDE sample,  Prev: Sew sample,  Up: Advanced features
+
+9.7.8 STFA - пример использования
+----------------------------------------------------
+
+ [image src="../png/stfa.png" ]
+
+*C++ код* mglData a(2000), b(2000);
+a.Fill("cos(50*pi*x)*(x<-.5)+cos(100*pi*x)*(x<0)*(x>-.5)+ \
+        cos(200*pi*x)*(x<.5)*(x>0)+cos(400*pi*x)*(x>.5)",
+        gr->Min, gr->Max);
+gr->SubPlot(1, 2, 0);
+gr->Plot(a);
+gr->Axis();
+gr->Label('x', "\\i t");
+gr->SubPlot(1, 2, 1);
+gr->STFA(a, b, 64);
+gr->Axis();
+gr->Label('x', "\\i t");
+gr->Label('y', "\\omega", 0);
+ *MGL скрипт*
+new a 2000
+new b 2000
+fill a 'cos(50*pi*x)*(x<-.5)+cos(100*pi*x)*(x<0)*(x>-.5)+
+        cos(200*pi*x)*(x<.5)*(x>0)+cos(400*pi*x)*(x>.5)'
+subplot 1 2 0
+plot a
+axis
+xlabel '\i t'
+subplot 1 2 1
+stfa a b 64 ''
+axis
+ylabel '\omega' 0
+xlabel '\i t'
+ *C-ый код* HMDT a = mgl_create_data_size(2000,1,1);
+HMDT b = mgl_create_data_size(2000,1,1);
+mgl_data_fill_eq(gr, a, "cos(50*pi*x)*(x<-.5)+cos(100*pi*x)*(x<0)*(x>-.5)+ \
+        cos(200*pi*x)*(x<.5)*(x>0)+cos(400*pi*x)*(x>.5)",0,0);
+mgl_subplot(gr,1,2,0);
+mgl_plot(gr,a,"");
+mgl_axis(gr,"xy");
+mgl_label(gr,'x', "\\i t");
+mgl_subplot(gr,1,2,1);
+mgl_stfa(gr,a,b,64,"",0.);
+mgl_axis(gr,"xy");
+mgl_label(gr,'x', "\\i t");
+mgl_label(gr,'y', "\\omega");
+ *Fortran* integer a,b, mgl_create_data_size
+a = mgl_create_data_size(2000,1,1)
+b = mgl_create_data_size(2000,1,1)
+call mgl_data_fill_eq(gr, a, 'cos(50*pi*x)*(x<-.5)+cos(100*pi*x)*(x<0)*(x>-.5)+ &
+        cos(200*pi*x)*(x<.5)*(x>0)+cos(400*pi*x)*(x>.5)',0,0)
+call mgl_subplot(gr,1,2,0)
+call mgl_plot(gr,a,'')
+call mgl_axis(gr,'xy')
+call mgl_label(gr,'x', '\i t')
+call mgl_subplot(gr,1,2,1)
+call mgl_stfa(gr,a,b,64,'',0.)
+call mgl_axis(gr,'xy')
+call mgl_label(gr,'x', '\i t')
+call mgl_label(gr,'y', '\omega')
+ *Python* a, b = mglData(2000), mglData(2000);
+gr.Fill(a,"cos(50*pi*x)*(x<-.5)+cos(100*pi*x)*(x<0)*(x>-.5)+ \
+        cos(200*pi*x)*(x<.5)*(x>0)+cos(400*pi*x)*(x>.5)");
+gr.SubPlot(1, 2, 0);
+gr.Plot(a);
+gr.Axis();
+gr.Label('x', "\\i t");
+gr.SubPlot(1, 2, 1);
+gr.STFA(a, b, 64);
+gr.Axis();
+gr.Label('x', "\\i t");
+gr.Label('y', "\\omega", 0);
+
+
+
+Local Variables:
+coding: utf-8
+End:
diff --git a/texinfo/mathgl_ru.info-4 b/texinfo/mathgl_ru.info-4
new file mode 100644
index 0000000..b3379ba
Binary files /dev/null and b/texinfo/mathgl_ru.info-4 differ
diff --git a/texinfo/mgl_en.html/mgl_en.html b/texinfo/mgl_en.html/mgl_en.html
new file mode 100644
index 0000000..fd75109
--- /dev/null
+++ b/texinfo/mgl_en.html/mgl_en.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: MGL script language</title>
+
+<meta name="description" content="MGL script language for version 1.11: MGL script language">
+<meta name="keywords" content="MGL script language for version 1.11: MGL script language">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Top"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MGL-script-language"></a>
+<h1 class="settitle">MGL script language</h1>
+
+<p>This file documents the MGL script language. It corresponds to release 1.11 of the MathGL library. Please report any errors in this manual to <a href="mailto:mathgl.abalakin at gmail.org">mathgl.abalakin at gmail.org</a>. More information about MGL and MathGL can be found at the project homepage, <a href="http://mathgl.sourceforge.net/">http://mathgl.sourceforge.net/</a>.
+</p>
+<p>Copyright &copy; 2008 Alexey A. Balakin. 
+</p>
+<blockquote><p>Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being &ldquo;A GNU Manual,&rdquo;
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled &ldquo;GNU Free Documentation
+License.&rdquo;
+</p>
+<p>(a) The FSF&rsquo;s Back-Cover Text is: &ldquo;You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom.&rdquo;
+</p></blockquote>
+
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="mgl_en_1.html#MGL-interface">1. MGL language</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mgl_en_2.html#Examples">2. MathGL examples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mgl_en_3.html#Samples">3. Samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mgl_en_4.html#Copying-This-Manual">A. GNU Free Documentation License</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mgl_en_5.html#Index">Index</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mgl_en.html/mgl_en_1.html b/texinfo/mgl_en.html/mgl_en_1.html
new file mode 100644
index 0000000..9a08f6f
--- /dev/null
+++ b/texinfo/mgl_en.html/mgl_en_1.html
@@ -0,0 +1,3182 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: 1. MGL language</title>
+
+<meta name="description" content="MGL script language for version 1.11: 1. MGL language">
+<meta name="keywords" content="MGL script language for version 1.11: 1. MGL language">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="MGL-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MGL-language"></a>
+<h1 class="chapter">1. MGL language</h1>
+
+<p>MathGL library supports the simplest scripts for data handling and plotting. These scripts can be used independently (with the help of UDAV, mgl2png, mgl2eps, mgl2svg programs and others, see section <a href="#Utilities">Utilities for parsing MGL</a>) or in the frame of the library using.
+</p>
+<p>MGL script language is rather simple. Each string is a command. First word of string is the name of command. Other words are command arguments. Command may have up to 1000 arguments (at least for now). Words are separated from each other by space or tabulation symbol. The upper or lower case of words is sufficient, i.e. variables <var>a</var> and <var>A</var> are different variables. Symbol &lsquo;<samp>#</samp>&rsquo; starts the comment (all characters after # will be ignored). The exception is situation when &lsquo;<samp>#</samp>&rsquo; is a part of some string. Also options can be specified after symbol &lsquo;<samp>;</samp>&rsquo; (see section <a href="#Command-options">Command options</a>). Symbol &lsquo;<samp>:</samp>&rsquo; starts new command (like new line character) if it is not placed inside a string or inside brackets.
+</p>
+<p>If string contain references to external parameters (substrings &lsquo;<samp>$0</samp>&rsquo;, &lsquo;<samp>$1</samp>&rsquo; ... &lsquo;<samp>$9</samp>&rsquo;) or definitions (substrings &lsquo;<samp>$a</samp>&rsquo;, &lsquo;<samp>$b</samp>&rsquo; ... &lsquo;<samp>$z</samp>&rsquo;) then before execution the values of parameter/definition will be substituted instead of reference. It allows to use the same MGL script for different parameters (filenames, paths, condition and so on).
+</p>
+<p>Argument can be a string, a variable name or a number. 
+</p><ul>
+<li> 
+The string is any symbols between ordinary marks &lsquo;<samp>'</samp>&rsquo;.
+
+</li><li> 
+Usually variable have a name which is arbitrary combination of symbols (except spaces and &lsquo;<samp>'</samp>&rsquo;) started from a letter and with length less than 64. A temporary array can be used as variable:
+<ul>
+<li> 
+sub-arrays (like in <a href="#subdata">subdata</a> command) as command argument. For example, <code>a(1)</code> or <code>a(1,:)</code> or <code>a(1,:,:)</code> is second row, <code>a(:,2)</code> or <code>a(:,2,:)</code> is third column, <code>a(:,:,0)</code> is first slice and so on. Also you can extract a part of array from m-th to n-th element by code <code>a(m:n,:,:)</code> or just <code>a(m:n)</code>.
+
+</li><li> 
+any column combinations defined by formulas, like <code>a('n*w^2/exp(t)')</code> if names for data columns was specified (by <a href="#idset">idset</a> command or in the file at string started with <code>##</code>).
+
+</li><li> 
+any expression (without spaces) of existed variables produce temporary variable. For example, &lsquo;<samp>sqrt(dat(:,5)+1)</samp>&rsquo; will produce temporary variable with data values equal to <code>tmp[i,j] = sqrt(dat[i,5,j]+1)</code>. 
+
+</li><li> 
+temporary variable of higher dimensions by help of []. For example, &lsquo;<samp>[1,2,3]</samp>&rsquo; will produce a temporary vector of 3 elements {1, 2, 3}; &lsquo;<samp>[[11,12],[21,22]]</samp>&rsquo; will produce matrix 2*2 and so on. Here you can join even an arrays of the same dimensions by construction like &lsquo;<samp>[v1,v2,...,vn]</samp>&rsquo;.
+
+</li><li> 
+result of code for making new data (see section <a href="#Make-another-data">Make another data</a>) inside {}. For example, &lsquo;<samp>{sum dat 'x'}</samp>&rsquo; produce temporary variable which contain result of summation of <var>dat</var> along direction &rsquo;x&rsquo;. This is the same array <var>tmp</var> as produced by command &lsquo;<samp>sum tmp dat 'x'</samp>&rsquo;. You can use nested constructions, like &lsquo;<samp>{sum {max dat 'z'} 'x'}</samp>&rsquo;.
+</li></ul>
+<p>Temporary variables can not be used as 1st argument for commands which create (return) the data (like &lsquo;<samp>new</samp>&rsquo;, &lsquo;<samp>read</samp>&rsquo;, &lsquo;<samp>hist</samp>&rsquo; and so on).
+</p>
+</li><li> 
+Special names <code>nan=#QNAN, pi=3.1415926..., on=1, off=0, :=-1</code> are treated as number if they were not redefined by user. Variables with suffixes are treated as numbers (see section <a href="#Suffixes">Suffixes for variable</a>). Names defined by <a href="#define">define</a> command are treated as number. Also results of formulas with sizes 1x1x1 are treated as number (for example, &lsquo;<samp>pi/dat.nx</samp>&rsquo;).
+</li></ul>
+<p>Before the first using all variables must be defined with the help of commands, like, <a href="#new">new</a>, <a href="#var">var</a>, <a href="#list">list</a>, <a href="#copy">copy</a>, <a href="#read">read</a>, <a href="#hist">hist</a>, <a href="#sum">sum</a> and so on (see section <a href="#Data-create">Data create</a> and <a href="#Make-another-data">Make another data</a>). 
+</p>
+<p>Command may have several set of possible arguments (for example, <code>plot ydat</code> and <code>plot xdat ydat</code>). All command arguments for a selected set must be specified. However, some arguments can have default values. These argument are printed in [], like <code>plot ydat ['stl'='' zval=nan]</code>. At this, the record <code>[arg1 arg2 arg3 ...]</code> means <code>[arg1 [arg2 [arg3 ...]]]</code>, i.e. you can omit only tailing arguments if you agree with its default values. For example, <code>plot ydat '' 1</code> or <code>plot ydat ''</code> is correct, but <code>plot ydat 1</code> is incorrect (argument <code>'stl'</code> is missed).
+</p>
+<p>All MGL commands can be divided on several groups. I will use the following notation for a command description: command names are bold, strings are denoted by commas, variable names are italic, numbers are typewriter. Optional arguments are placed in square brackets and default values for them are shown. Detailed description of color, line styles (see section <a href="#Line-styles">Line styles</a>), color schemes (see section <a href="#Color-scheme">Color scheme</a>), font types, TeX-like symbols (see section <a href="#Font-styles">Font styles</a>) and formulas (see section <a href="#Textual-formulas">Textual formulas</a>) can be found in corresponding section.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#General-concepts">1.1 General concepts</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Graphics-setup">1.2 Graphics setup</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-settings">1.3 Axis settings</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transformation-matrix">1.4 Transformation matrix</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Export-to-file">1.5 Export to file</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Primitives-drawing">1.6 Primitives drawing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing">1.7 Text printing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-Colorbar">1.8 Axis and Colorbar</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Legend">1.9 Legend</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting">1.10 1D plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting">1.11 2D plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting">1.12 3D plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting">1.13 Dual plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-fields">1.14 Vector fields</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-plotting">1.15 Other plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting">1.16 Nonlinear fitting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-create">1.17 Data create</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-filling">1.18 Data filling</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Rearrange-data">1.19 Rearrange data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#File-I_002fO">1.20 File I/O</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Make-another-data">1.21 Make another data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Change-data">1.22 Change data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Operators">1.23 Operators</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Program-flow">1.24 Program flow</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Command-options">1.25 Command options</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Suffixes">1.26 Suffixes for variable</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Utilities">1.27 Utilities for parsing MGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="General-concepts"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Coordinate-axes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="General-concepts-1"></a>
+<h2 class="section">1.1 General concepts</h2>
+
+<p>The set of MathGL features is rather rich &ndash; just the number of basic graphics types is larger than 40. Also there are functions for data handling, plot setup and so on. In spite of it I tried to keep a similar style in command names and in the order of arguments. Mostly it is used for different drawing functions.
+</p>
+<p>There are 4 most general (base) concepts:
+</p><ol>
+<li>
+<strong>Every plot settings (style of lines, font, color scheme) are specified by a string.</strong> It provides convenience for user/programmer &ndash; short string with parameters is more comprehensible than a large set of parameters. Also it provides portability &ndash; the strings are the same in any OS so that it is not necessary to think about argument types.
+</li><li>
+<strong>All commands have &ldquo;simplified&rdquo; and &ldquo;advanced&rdquo; forms.</strong> It is done for user&lt;/samp&gt;&amp;rsquo;s convenience. One needs to specify only one data array in the &ldquo;simplified&rdquo; form in order to see the result. But one may set parametric dependence of coordinates and produce rather complex curves and surfaces in the &ldquo;advanced&rdquo; form. In both cases the order of function arguments is the same: first data arrays, second the string with plot parameters, and later optional arguments for plot tuning.
+</li><li>
+<strong>All plots are vector plots.</strong> The MathGL library is intended for handling scientific data which have vector nature (lines, faces, matrices and so on). As a result, vector representation is used in all cases! In addition, the vector representation allows one to scale the plot easily &ndash; change the canvas size by a factor of 2, and the picture will be proportionally scaled.
+</li><li>
+<strong>New drawing never clears things drawn already.</strong> This, in some sense, unexpected, idea allows to create a lot of &ldquo;combined&rdquo; graphics. For example, to make a surface with contour lines one needs to call the function for surface plotting and the function for contour lines plotting (in any order). Thus the special functions for making this &ldquo;combined&rdquo; plots (as it is done in Matlab and some other plotting systems) are superfluous. Many more examples of such plots can be found in section <a href="mgl_en_2.html#Hints">Hints</a> and in home site (<a href="http://mathgl.sf.net/index.html">http://mathgl.sf.net/index.html</a>).
+</li></ol>
+
+<p>In addition to the general concepts I want to comment on some non-trivial or less commonly used general ideas &ndash; plot positioning, axis specification and curvilinear coordinates, styles for lines, text and color scheme.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Coordinate-axes">1.1.1 Coordinate axes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Line-styles">1.1.2 Line styles</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Color-scheme">1.1.3 Color scheme</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-styles">1.1.4 Font styles</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Textual-formulas">1.1.5 Textual formulas</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+
+
+<hr size="6">
+<a name="Coordinate-axes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#General-concepts" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Line-styles" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Coordinate-axes-1"></a>
+<h3 class="subsection">1.1.1 Coordinate axes</h3>
+
+<p>Two axis representations are used in MathGL. The first one consists of normalizing the data point coordinates in a box <var>Min</var>x<var>Max</var> (see section <a href="#Axis-settings">Axis settings</a>). If <var>Cut</var> is <code>true</code> then the outlier points are omitted, otherwise they are projected to the bounding box (see section <a href="#Cutting">Cutting</a>). Also, the point will be omitted if it lies inside the box defined by <var>CutMin</var> x <var>CutMax</var> or if the value of formula <code>CutOff</code>() is nonzero for its coordinates. After that, transformation formulas are applied to the data point. Finally, the data point is plotted by one of the functions.
+</p>
+<p>There is a possibility to set members <var>Max</var>, <var>Min</var> directly, but one should call <code>RecalcBorder()</code> function to setup plotting routines. A safer way is to set these values by calling the <code>Axis()</code> function, which calls <code>RecalcBorder()</code> automatically. Another way to specify the scaling of the axis is to set it as a minimal or maximal value of the data array. Functions <code>XRange(), YRange(), ZRange()</code> do it. The second (optional) argument is used to replace the axis range or to join with the existed range.
+</p>
+<p>The axis origin is defined by the variable <var>Org</var> and is applied to all consequent calls of axes or grid drawing. By default, if this point lies outside the bounding box then it is projected onto the one (variable <var>AutoOrg</var> controls it). If one of the values of <var>Org</var> is equal to NAN then the corresponding value will be selected automatically.
+</p>
+<p>There is 4-th axis <em>c</em> (color axis or colorbar) in addition to the usual axes <em>x, y, z</em>. It sets the range of values for the surface coloring. Its borders are automatically set to values of Min.z, Max.z during the call of <code>Axis()</code> function. Also, one can directly change the color range by setting variables <var>Cmax</var>, <var>Cmax</var>, or calling functions <code>CAxis()</code> or <code>CRange()</code>. Use <code>Colorbar()</code> function for showing the colorbar.
+</p>
+<p>The form (appearence) of tick labels is controlled by <code>SetTicks()</code> function (see section <a href="#Axis-settings">Axis settings</a>). It has 3 arguments: first one <var>d</var> sets the tick step (if positive) or tick number (if negative) or switches logarithmic ticks on (if zero); the second one, <var>ns</var>, sets the number of subticks; the last one is the starting point for ticks (default is axis origin). Function <var>SetTuneTicks</var> switches on/off tick enhancing by factoring out acommon multiplier (for small coordinate values, like 0.001 to 0.002, or large, like from 1000 to 2000) or common component (for narrow range, like from 0.999 to 1.000). Finally, you may use functions <code>SetXTT(), SetYTT(), SetZTT(), SetCTT()</code> for setting templates for tick labels (it supports TeX symbols). Also, there is a possibility to print arbitrary text as tick labels the by help of <code>SetTicksVal()</code> function.
+</p>
+<hr size="6">
+<a name="Line-styles"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Coordinate-axes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Color-scheme" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Line-styles-1"></a>
+<h3 class="subsection">1.1.2 Line styles</h3>
+
+<a name="index-Line-style"></a>
+<a name="index-Mark-style"></a>
+<a name="index-Arrows"></a>
+
+<p>The line style is defined by the string which may contain specifications for color (&lsquo;<samp>wkrgbcymhRGBCYMHWlenupqLENUPQ</samp>&rsquo;), dashing style (&lsquo;<samp>-|;:ji</samp>&rsquo; or space), width (&lsquo;<samp>0123456789</samp>&rsquo;) and marks (&lsquo;<samp>o+xsd.^v</samp>&rsquo; and &lsquo;<samp>#</samp>&rsquo; modifier). If one of the type of information is omitted then default values used with the previous color or one from palette (for see section <a href="#g_t1D-plotting">1D plotting</a>) are adopted. 
+By default palette contain following colors: <span style="color: rgb(76, 76, 76);">dark gray</span> &lsquo;<samp>H</samp>&rsquo;, <span style="color: rgb(0, 0, 255);">blue</span> &lsquo;<samp>b</samp>&rsquo;, <span style="color: rgb(0, 255, 0);">green</span> &lsquo;<samp>g</samp>&rsquo;, <span style="color: rgb(255, 0, 0);">red</span> &lsquo;<samp>r</samp>&rsquo;, <span style="color: rgb(0, 255, 255);">cyan</span> &lsquo;<samp>c</samp>&rsquo;, <span style="color: rgb(255, 0, 255);">magenta</span> &lsquo;<samp>m</samp>&rsquo;, <span style="color: rgb(255, 255, 0);">yellow</span> &lsquo;<samp>y</samp>&rsquo;, <span style="color: rgb(127, 127, 127);">gray</span> &lsquo;<samp>h</samp>&rsquo;, <span style="color: rgb(0, 255, 127);">green-blue</span> &lsquo;<samp>l</samp>&rsquo;, <span style="color: rgb(0, 127, 255);">sky-blue</span> &lsquo;<samp>n</samp>&rsquo;, <span style="color: rgb(255, 127, 0);">orange</span> &lsquo;<samp>q</samp>&rsquo;, <span style="color: rgb(127, 255, 0);">green-yellow</span> &lsquo;<samp>e</samp>&rsquo;, <span style="color: rgb(127, 0, 255);">blue-violet</span> &lsquo;<samp>u</samp>&rsquo;, <span style="color: rgb(255, 0, 127);">purple</span> &lsquo;<samp>p</samp>&rsquo;.
+
+<p>The color types are: &lsquo;<samp>k</samp>&rsquo; -- black, &lsquo;<samp>r</samp>&rsquo; -- <span style="color: rgb(255, 0, 0);">red</span>, &lsquo;<samp>R</samp>&rsquo; -- <span style="color: rgb(127, 0, 0);">dark red</span>, &lsquo;<samp>g</samp>&rsquo; -- <span style="color: rgb(0, 255, 0);">green</span>, &lsquo;<samp>G</samp>&rsquo; -- <span style="color: rgb(0, 127, 0);">dark green</span>, &lsquo;<samp>b</samp>&rsquo; -- <span style="color: rgb(0, 0, 255);">blue</span>, &lsquo;<samp>B</samp>&rsquo; -- <span style="color: rgb(0, 0, 127);">dark blue</span>, &lsquo;<samp>c</samp>&rsquo; -- <span style="color: rgb(0, 255, 255);">cyan</span>, &lsquo;<samp>C</samp>&rsquo; -- <span style="color: rgb(0, 127, 127);">dark cyan</span>, &lsquo;<samp>m</samp>&rsquo; -- <span style="color: rgb(255, 0, 255);">magenta</span>, &lsquo;<samp>M</samp>&rsquo; -- <span style="color: rgb(127, 0, 127);">dark magenta</span>, &lsquo;<samp>y</samp>&rsquo; -- <span style="color: rgb(255, 255, 0);">yellow</span>, &lsquo;<samp>Y</samp>&rsquo; -- <span style="color: rgb(127, 127, 0);">dark yellow (gold)</span>, &lsquo;<samp>h</samp>&rsquo; -- <span style="color: rgb(127, 127, 127);">gray</span>, &lsquo;<samp>H</samp>&rsquo; -- <span style="color: rgb(76, 76, 76);">dark gray</span>, &lsquo;<samp>w</samp>&rsquo; -- white, &lsquo;<samp>W</samp>&rsquo; -- <span style="color: rgb(178, 178, 178);">bright gray</span>, &lsquo;<samp>l</samp>&rsquo; -- <span style="color: rgb(0, 255, 127);">green-blue</span>, &lsquo;<samp>L</samp>&rsquo; -- <span style="color: rgb(0, 127, 63);">dark green-blue</span>, &lsquo;<samp>e</samp>&rsquo; -- <span style="color: rgb(127, 255, 0);">green-yellow</span>, &lsquo;<samp>E</samp>&rsquo; -- <span style="color: rgb(63, 127, 0);">dark green-yellow</span>, &lsquo;<samp>n</samp>&rsquo; -- <span style="color: rgb(0, 127, 255);">sky-blue</span>, &lsquo;<samp>N</samp>&rsquo; -- <span style="color: rgb(0, 63, 127);">dark sky-blue</span>, &lsquo;<samp>u</samp>&rsquo; -- <span style="color: rgb(127, 0, 255);">blue-violet</span>, &lsquo;<samp>U</samp>&rsquo; -- <span style="color: rgb(63, 0, 127);">dark blue-violet</span>, &lsquo;<samp>p</samp>&rsquo; -- <span style="color: rgb(255, 0, 127);">purple</span>, &lsquo;<samp>P</samp>&rsquo; -- <span style="color: rgb(127, 0, 63);">dark purple</span>, &lsquo;<samp>q</samp>&rsquo; -- <span style="color: rgb(255, 127, 0);">orange</span>, &lsquo;<samp>Q</samp>&rsquo; -- <span style="color: rgb(127, 63, 0);">dark orange (brown)</span>.</p>
+
+Dashing style has the following meaning: space -- no line (usable for plotting only marks), &lsquo;<samp>-</samp>&rsquo; -- solid line (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;), &lsquo;<samp>|</samp>&rsquo; -- long dashed line (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>;</samp>&rsquo; -- dashed line (&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>=</samp>&rsquo; -- small dashed line (&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;), &lsquo;<samp>:</samp>&rsquo; -- dotted line (&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;), &lsquo;<samp>j</samp>&rsquo; -- dash-dotted line (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>i</samp>&rsquo; -- small dash-dotted line (&#9632;&#9632;&#9632;&#9633;&#9633;&#9632;&#9633;&#9633;&#9632;&#9632;&#9632;&#9633;&#9633;&#9632;&#9633;&#9633;).</p>
+<p>Marker types are: &lsquo;<samp>o</samp>&rsquo; &ndash; circle, &lsquo;<samp>+</samp>&rsquo; &ndash; cross, &lsquo;<samp>x</samp>&rsquo; &ndash; skew cross, &lsquo;<samp>s</samp>&rsquo; - square, &lsquo;<samp>d</samp>&rsquo; - rhomb (or diamond), &lsquo;<samp>.</samp>&rsquo; &ndash; dot (point), &lsquo;<samp>^</samp>&rsquo; &ndash; triangle up, &lsquo;<samp>v</samp>&rsquo; &ndash; triangle down, &lsquo;<samp>&lt;</samp>&rsquo; &ndash; triangle left, &lsquo;<samp>&gt;</samp>&rsquo; &ndash; triangle right, &lsquo;<samp>#*</samp>&rsquo; &ndash; Y sign, &lsquo;<samp>#+</samp>&rsquo; &ndash; squared cross, &lsquo;<samp>#x</samp>&rsquo; &ndash; squared skew cross, &lsquo;<samp>#.</samp>&rsquo; &ndash; circled dot. If string contain symbol &lsquo;<samp>#</samp>&rsquo; then the solid versions of markers are used.
+</p>
+<div class="float">
+<img src="../png/sample5.png" alt="../png/sample5">
+
+</div><p><strong>Styles of lines and marks.
+</strong>
+</p>
+<p>One may specify to draw a special symbol (an arrow) at the beginning and at the end of line. This is done if the specification string contains one of the following symbols: &lsquo;<samp>A</samp>&rsquo; &ndash; outer arrow, &lsquo;<samp>V</samp>&rsquo; &ndash; inner arrow, &lsquo;<samp>I</samp>&rsquo; &ndash; transverse hatches, &lsquo;<samp>K</samp>&rsquo; &ndash; arrow with hatches, &lsquo;<samp>T</samp>&rsquo; &ndash; triangle, &lsquo;<samp>S</samp>&rsquo; &ndash; square, &lsquo;<samp>D</samp>&rsquo; &ndash; rhombus, &lsquo;<samp>O</samp>&rsquo; &ndash; circle, &lsquo;<samp>_</samp>&rsquo; &ndash; nothing (the default). The following rule applies: the first symbol specifies the arrow at the end of line, the second specifies the arrow at the beginning of the line. For example, &lsquo;<samp>r-A</samp>&rsquo; defines a red solid line with usual arrow at the end, &lsquo;<samp>b|AI</samp>&rsquo; defines a blue dash line with an arrow at the end and with hatches at the beginning, &lsquo;<samp>_O</samp>&rsquo; defines a line with the current style and with a circle at the beginning. These styles are applicable during the graphics plotting as well (for example, <a href="#g_t1D-plotting">1D plotting</a>).
+</p>
+<div class="float">
+<img src="../png/sampled.png" alt="../png/sampled">
+
+</div><p><strong>Arrow styles.
+</strong>
+</p>
+<hr size="6">
+<a name="Color-scheme"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Line-styles" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-styles" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Color-scheme-1"></a>
+<h3 class="subsection">1.1.3 Color scheme</h3>
+
+<a name="index-Color-scheme"></a>
+
+<p>The color scheme is used for determining the color of surfaces, isolines, isosurfaces and so on. The color scheme is defined by the string, which may contain several characters that are color id (see section <a href="#Line-styles">Line styles</a>) or characters &lsquo;<samp>d#:|</samp>&rsquo;. Symbol &lsquo;<samp>d</samp>&rsquo; denotes the interpolation by 3d position instead of the coloring by amplitude. Symbol &lsquo;<samp>#</samp>&rsquo; switches to mesh drawing or to a wire plot. Symbol &lsquo;<samp>|</samp>&rsquo; disables color interpolation in color scheme, which can be useful, for example, for sharp colors during matrix plotting. Symbol &lsquo;<samp>:</samp>&rsquo; finishes the color scheme parsing. Following it, the user may put styles for the text, rotation axis for curves/isocontours, and so on. Color scheme may contain up to 32 color values.
+</p>
+<p>You may also use &ldquo;lighted&rdquo; colors in the color scheme specification (<em>not in line style!</em>). The &ldquo;lighted&rdquo; color contain 2 symbols: first one is the usual symbol for color specification, the second one is a digit for its brightness. The digit can be in range &lsquo;<samp>1</samp>&rsquo;...&lsquo;<samp>9</samp>&rsquo;. 
+Number &lsquo;<samp>5</samp>&rsquo; corresponds to a normal color, &lsquo;<samp>1</samp>&rsquo; is a very dark version of the color (practically black), and &lsquo;<samp>9</samp>&rsquo; is a very bright version of the color (practically white). For example, the color scheme can be &lsquo;<samp>b2b7wr7r2</samp>&rsquo;.
+</p>
+<div class="float">
+<img src="../png/colors.png" alt="../png/colors">
+
+</div><p><strong>Colors and its ids.
+</strong>
+</p>
+<p>For coloring by <em>amplitude</em> (most common) the final color is a linear interpolation of color array. The color array is constructed from the string ids. The argument is the amplitude normalized between <var>Cmin</var> &ndash; <var>Cmax</var> (see section <a href="#Axis-settings">Axis settings</a>). For example, string containing 4 characters &lsquo;<samp>bcyr</samp>&rsquo; corresponds to a colorbar from blue (lowest value) through cyan (next value) through yellow (next value) to the red (highest value). String &lsquo;<samp>kw</samp>&rsquo; corresponds to a colorbar from black (lowest value) to white (highest value). String &lsquo;<samp>m</samp>&rsquo; corresponds to a simple magenta color.
+</p>
+<p>There are several useful combinations. String &lsquo;<samp>kw</samp>&rsquo; corresponds to the simplest gray color scheme where higher values are brighter. String &lsquo;<samp>wk</samp>&rsquo; presents the inverse gray color scheme where higher value is darker. Strings &lsquo;<samp>kRryw</samp>&rsquo;, &lsquo;<samp>kGgw</samp>&rsquo;, &lsquo;<samp>kBbcw</samp>&rsquo; present the well-known <em>hot</em>, <em>summer</em> and <em>winter</em> color schemes. Strings &lsquo;<samp>BbwrR</samp>&rsquo; and &lsquo;<samp>bBkRr</samp>&rsquo; allow to view bi-color figure on white or black background, where negative values are blue and positive values are red. String &lsquo;<samp>BbcyrR</samp>&rsquo; gives a color scheme similar to the well-known <em>jet</em> color scheme.
+</p>
+<div class="float">
+<img src="../png/color_schemes.png" alt="../png/color_schemes">
+
+</div><p><strong>Most popular color schemes.
+</strong>
+</p>
+<p>When coloring by <em>coordinate</em>, the final color is determined by the position of the point in 3d space and is calculated from formula c=x*c[1] + y*c[2] + z*c[3]. Here, c[1], c[2], c[3] are the first three elements of color array; x, y, z are normalized to <var>Min</var> &ndash; <var>Max</var> coordinates of the point. This type of coloring is useful for isosurface plot where color may show the exact position of a piece of surface.
+</p>
+<hr size="6">
+<a name="Font-styles"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Color-scheme" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Textual-formulas" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Font-styles-1"></a>
+<h3 class="subsection">1.1.4 Font styles</h3>
+
+<a name="index-Font-styles"></a>
+
+<p>Text style is specified by the string which may contain several characters of font (&lsquo;<samp>ribwou</samp>&rsquo;) and/or alignment (&lsquo;<samp>LRC</samp>&rsquo;) specifications. The string also may contain the color id characters &lsquo;<samp>wkrgbcymhRGBCYMHW</samp>&rsquo; (see section <a href="#Line-styles">Line styles</a>) after the symbol &lsquo;<samp>:</samp>&rsquo;. For example, &lsquo;<samp>biC:b</samp>&rsquo; sets the bold italic font text aligned at the center and with blue color.
+</p>
+<p>The font types are: &lsquo;<samp>r</samp>&rsquo; &ndash; roman font, &lsquo;<samp>i</samp>&rsquo; &ndash; italic style, &lsquo;<samp>b</samp>&rsquo; &ndash; bold style. By default roman roman font is used. The align types are: &lsquo;<samp>L</samp>&rsquo; &ndash; align left (default), &lsquo;<samp>C</samp>&rsquo; &ndash; align center, &lsquo;<samp>R</samp>&rsquo; &ndash; align right. Additional font effects are: &lsquo;<samp>w</samp>&rsquo; &ndash; wired, &lsquo;<samp>o</samp>&rsquo; &ndash; over-lined, &lsquo;<samp>u</samp>&rsquo; &ndash; underlined. 
+</p>
+<p>Also a parsing of the LaTeX-like syntax is provided. There are commands for the font style changing inside the string (for example, use \b for bold font): \a or \overline &ndash; over-lined, \b or \textbf &ndash; bold, \i or \textit &ndash; italic, \r or \textrm &ndash; roman (disable bold and italic attributes), \u or \underline &ndash; underlined, \w or \wire &ndash; wired, \big &ndash; bigger size, @ &ndash; smaller size. The lower and upper indexes are specified by &lsquo;<samp>_</samp>&rsquo; and &lsquo;<samp>^</samp>&rsquo; symbols. At this the changed font style is applied only on next symbol or symbols in braces {}. The text in braces {} are treated as single symbol that allow one to print the index of index. For example, compare the strings &lsquo;<samp>sin (x^{2^3})</samp>&rsquo; and &lsquo;<samp>sin (x^2^3)</samp>&rsquo;. You may also change text color inside string by command #? or by \color? where &lsquo;<samp>?</samp>&rsquo; is symbolic id of the color (see section <a href="#Line-styles">Line styles</a>). For example, words &lsquo;<samp>Blue</samp>&rsquo; and &lsquo;<samp>red</samp>&rsquo; will be colored in the string &lsquo;<samp>#b{Blue} and \colorr{red} text</samp>&rsquo;. The most of functions understand the newline symbol &lsquo;<samp>\n</samp>&rsquo; and allows to print multi-line text. Finally, you can use arbitrary UTF codes by command <code>\utf0x????</code>. For example, <code>\utf0x3b1</code> will produce
+ &alpha; symbol.</p>
+<p>The most of commands for special TeX or AMSTeX symbols, the commands for font style changing (\textrm, \textbf, \textit, \textsc, \overline, \underline), accents (\hat, \tilde, \dot, \ddot, \acute, \check, \grave, \bar, \breve) and roots (\sqrt, \sqrt3, \sqrt4) are recognized. The full list contain approximately 2000 commands. Note that first space symbol after the command is ignored, but second one is printed as normal symbol (space). For example, the following strings produce the same result <em>\tilde a</em>: &lsquo;<samp>\tilde{a}</samp>&rsquo;; &lsquo;<samp>\tilde a</samp>&rsquo;; &lsquo;<samp>\tilde{}a</samp>&rsquo;.
+</p>
+In particular, the Greek letters are recognizable special symbols: &alpha; &ndash; \alpha, &beta; &ndash; \beta, &gamma; &ndash; \gamma, &delta; &ndash; \delta, &epsilon; &ndash; \epsilon, &eta; &ndash; \eta, &iota; &ndash; \iota, &chi; &ndash; \chi, &kappa; &ndash; \kappa, &lambda; &ndash; \lambda, &mu; &ndash; \mu, &nu; &ndash; \nu, o &ndash; \o, &omega; &ndash; \omega, &#981; &ndash; \phi, &pi; &ndash; \pi, &psi; &ndash; \psi, &rho; &ndash; \rho, &sigma; &ndash; \sigma, &theta; &ndash; \theta, &tau; &ndash; \tau, &upsilon; &ndash; \upsilon, &xi; &ndash; \xi, &zeta; &ndash; \zeta, &sigmaf; &ndash; \varsigma, &#603; &ndash; \varepsilon, &thetasym; &ndash; \vartheta, &phi; &ndash; \varphi, &#1008; &ndash; \varkappa; A &ndash; \Alpha, B &ndash; \Beta, &Gamma; &ndash; \Gamma, &Delta; &ndash; \Delta, E &ndash; \Epsilon, H &ndash; \Eta, I &ndash; \Iota, C &ndash; \Chi, K &ndash; \Kappa, &Lambda; &ndash; \Lambda, M &ndash; \Mu, N &ndash; \Nu, O &ndash; \O, &Omega; &ndash; \Omega, &Phi; &ndash; \Phi, &Pi; &ndash; \Pi, &Psi; &ndash; \Psi, R &ndash; \Rho, &Sigma; &ndash; \Sigma, &Theta; &ndash; \Theta, T &ndash; \Tau, &Upsilon; &ndash; \Upsilon, &Xi; &ndash; \Xi, Z &ndash; \Zeta.
+
+<p>The small part of most common special TeX symbols are: &ang; &ndash; \angle, &sdot; &ndash; \cdot, &clubs; &ndash; \clubsuit, &#10003; &ndash; \checkmark, &cup; &ndash; \cup, &cap; &ndash; \cap, &#9826; &ndash; \diamondsuit, &#9671; &ndash; \diamond, &divide;
+ &ndash; \div, 
+&darr; &ndash; \downarrow, &dagger; &ndash; \dag, &Dagger; &ndash; \ddag, &equiv; &ndash; \equiv, &exist; &ndash; \exists, &#8994; &ndash; \frown, &#9837; &ndash; \flat, &ge; &ndash; \ge, &ge; &ndash; \geq, &#8807; &ndash; \geqq, &larr; &ndash; \gets, &#9825; &ndash; \heartsuit, &infin; &ndash; \infty, &int; &ndash; \int, \Int, &image;  &ndash; \Im, &#9826; &ndash; \lozenge, &#10216; &ndash; \langle, &le; &ndash; \le, &le; &ndash; \leq, &#8806; &ndash; \leqq, &larr; &ndash; \leftarrow, &#8723; &ndash; \mp, &nabla; &ndash; \nabla, &ne; &ndash; \ne, &ne; &ndash; \neq, &#9838; &ndash; \natural, &#8750; &ndash; \oint, &#8857; &ndash; \odot, &oplus; &ndash; \oplus, &part; &ndash; \partial, &#8741; &ndash; \parallel, &perp; &ndash;\perp, &plusmn; &ndash; \pm, &prop; &ndash; \propto, &prod; &ndash; \prod, &real; &ndash; \Re, &rarr; &ndash; \rightarrow, &#10217; &ndash; \rangle, &spades; &ndash; \spadesuit, ~ &ndash; \sim, &#8995; &ndash; \smile, &sub;  &ndash; \subset, &sup; &ndash; \supset, &radic; &ndash; \sqrt or \surd, &sect; &ndash; \S, &#9839; &ndash; \sharp, &sum; &ndash; \sum, &times; &ndash; \times, &rarr; &ndash; \to, &there4; &ndash; \therefore, &uarr; &ndash; \uparrow, &weierp; &ndash; \wp. </p>
+<p>The font size can be defined explicitly (if <var>size</var>&gt;0) or relative to a base font size as |<var>size</var>|*<var>FontSize</var> (if <var>size</var>&lt;0). The value <var>size</var>=0 specifies that the string will not be printed. The base font size is measured in internal &ldquo;MathGL&rdquo; units. Special functions <code>SetFontSizePT(), SetFontSizeCM(), SetFontSizeIN()</code> allow one to set it in more &ldquo;common&rdquo; variables for a given dpi value of the picture.
+</p>
+
+<hr size="6">
+<a name="Textual-formulas"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-styles" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Textual-formulas-1"></a>
+<h3 class="subsection">1.1.5 Textual formulas</h3>
+
+<a name="index-Textual-formulas"></a>
+
+<p>MathGL have the fast variant of textual formula evaluation 
+. There are a lot of functions and operators available. The operators are: &lsquo;<samp>+</samp>&rsquo; &ndash; addition, &lsquo;<samp>-</samp>&rsquo; &ndash; subtraction, &lsquo;<samp>*</samp>&rsquo; &ndash; multiplication, &lsquo;<samp>/</samp>&rsquo; &ndash; division, &lsquo;<samp>^</samp>&rsquo; &ndash; integer power. Also there are logical &ldquo;operators&rdquo;: &lsquo;<samp>&lt;</samp>&rsquo; &ndash; true if x&lt;y, &lsquo;<samp>&gt;</samp>&rsquo; &ndash; true if x&gt;y, &lsquo;<samp>=</samp>&rsquo; &ndash; true if x=y, &lsquo;<samp>&amp;</samp>&rsquo; &ndash; true if x and y both nonzero, &lsquo;<samp>|</samp>&rsquo; &ndash; true if x or y nonzero. These logical operators have lowest priority and return 1 if true or 0 if false.
+</p>
+<p>The basic functions are: &lsquo;<samp>sqrt(x)</samp>&rsquo; &ndash; square root of <var>x</var>, &lsquo;<samp>pow(x,y)</samp>&rsquo; &ndash; power <var>x</var> in <var>y</var>, &lsquo;<samp>ln(x)</samp>&rsquo; &ndash; natural logarithm of <var>x</var>, &lsquo;<samp>lg(x)</samp>&rsquo; &ndash; decimal logarithm of <var>x</var>, &lsquo;<samp>log(a,x)</samp>&rsquo; &ndash; logarithm base <var>a</var> of <var>x</var>, &lsquo;<samp>abs(x)</samp>&rsquo; &ndash; absolute value of <var>x</var>, &lsquo;<samp>sign(x)</samp>&rsquo; &ndash; sign of <var>x</var>, &lsquo;<samp>mod(x,y)</samp>&rsquo; &ndash; x modulo y, &lsquo;<samp>step(x)</samp>&rsquo; &ndash; step function, &lsquo;<samp>int(x)</samp>&rsquo; &ndash; integer part of <var>x</var>, &lsquo;<samp>rnd</samp>&rsquo; &ndash; random number, &lsquo;<samp>pi</samp>&rsquo; &ndash; number
+&pi; = 3.1415926&hellip;</p>
+
+<p>Trigonometric functions are: &lsquo;<samp>sin(x)</samp>&rsquo;, &lsquo;<samp>cos(x)</samp>&rsquo;, &lsquo;<samp>tan(x)</samp>&rsquo; (or &lsquo;<samp>tg(x)</samp>&rsquo;). Inverse trigonometric functions are: &lsquo;<samp>asin(x)</samp>&rsquo;, &lsquo;<samp>acos(x)</samp>&rsquo;, &lsquo;<samp>atan(x)</samp>&rsquo;. Hyperbolic functions are: &lsquo;<samp>sinh(x)</samp>&rsquo; (or &lsquo;<samp>sh(x)</samp>&rsquo;), &lsquo;<samp>cosh(x)</samp>&rsquo; (or &lsquo;<samp>ch(x)</samp>&rsquo;), &lsquo;<samp>tanh(x)</samp>&rsquo; (or &lsquo;<samp>th(x)</samp>&rsquo;). Inverse hyperbolic functions are: &lsquo;<samp>asinh(x)</samp>&rsquo;, &lsquo;<samp>acosh(x)</samp>&rsquo;, &lsquo;<samp>atanh(x)</samp>&rsquo;.
+</p>
+<p>There are a set of special functions: &lsquo;<samp>gamma(x)</samp>&rsquo; &ndash; Gamma function &Gamma;(x) = &int;<sub>0</sub><sup>&infin;</sup> t<sup>x-1</sup> exp(-t) dt, &lsquo;<samp>psi(x)</samp>&rsquo; &ndash; digamma function &psi;(x) = &Gamma;&prime;(x)/&Gamma;(x) for x&ne;0, &lsquo;<samp>ai(x)</samp>&rsquo; &ndash; Airy function Ai(x), &lsquo;<samp>bi(x)</samp>&rsquo; &ndash; Airy function Bi(x), &lsquo;<samp>cl(x)</samp>&rsquo; &ndash; Clausen function, &lsquo;<samp>li2(x)</samp>&rsquo; (or &lsquo;<samp>dilog(x)</samp>&rsquo;) &ndash; dilogarithm Li<sub>2</sub>(x) = -&real;&int;<sub>0</sub><sup>x</sup>ds log(1-s)/s, &lsquo;<samp>sinc(x)</samp>&rsquo; &ndash; compute sinc(x) = sin(&pi;x)/(&pi;x) for any value of x, &lsquo;<samp>zeta(x)</samp>&rsquo; &ndash; Riemann zeta function &zeta;(s) = &sum;<sub>k=1</sub><sup>&infin;</sup>k<sup>-s</sup> for arbitrary s&ne;1, &lsquo;<samp>eta(x)</samp>&rsquo; &ndash; eta function &eta;(s) = (1 - 2<sup>1-s</sup>)&zeta;(s) for arbitrary s, &lsquo;<samp>lp(l,x)</samp>&rsquo; &ndash; Legendre polynomial P<sub>l</sub>(x), (|x|&le;1, l&ge;0), &lsquo;<samp>w0(x)</samp>&rsquo; &ndash; principal branch of the Lambert W function, &lsquo;<samp>w1(x)</samp>&rsquo; &ndash; principal branch of the Lambert W function. Function W(x) is defined to be solution of the equation: W exp(W) = x. </p>
+
+<p>The exponent integrals are: &lsquo;<samp>ci(x)</samp>&rsquo; &ndash; Cosine integral Ci(x) = &int;<sub>0</sub><sup>x</sup>dt cos(t)/t, &lsquo;<samp>si(x)</samp>&rsquo; &ndash; Sine integral Si(x) = &int;<sub>0</sub><sup>x</sup>dt sin(t)/t, &lsquo;<samp>erf(x)</samp>&rsquo; &ndash; error function erf(x) = (2/&radic;&pi;) &int;<sub>0</sub><sup>x</sup>dt exp(-t<sup>2</sup>) , &lsquo;<samp>ei(x)</samp>&rsquo; &ndash; exponential integral Ei(x) = -PV(&int;<sub>-x</sub><sup>&infin;</sup>dt exp(-t)/t) (where PV denotes the principal value of the integral), &lsquo;<samp>e1(x)</samp>&rsquo; &ndash; exponential integral E<sub>1</sub>(x) = &real;&int;<sub>1</sub><sup>&infin;</sup>dt exp(-xt)/t, &lsquo;<samp>e2(x)</samp>&rsquo; &ndash; exponential integral E<sub>2</sub>(x) = &real;&int;<sub>1</sub>&infin;</sup>dt exp(-xt)/t<sup>2</sup>, &lsquo;<samp>ei3(x)</samp>&rsquo; &ndash; exponential integral Ei<sub>3</sub>(x) = &int;<sub>0</sub><sup>x</sup>dt exp(-t<sup>3</sup>) for x&ge;0. </p>
+
+<p>Bessel functions are: &lsquo;<samp>j(nu,x)</samp>&rsquo; &ndash; regular cylindrical Bessel function of fractional order <em>nu</em>, &lsquo;<samp>y(nu,x)</samp>&rsquo; &ndash; irregular cylindrical Bessel function of fractional order <em>nu</em>, &lsquo;<samp>i(nu,x)</samp>&rsquo; &ndash; regular modified Bessel function of fractional order <em>nu</em>, &lsquo;<samp>k(nu,x)</samp>&rsquo; &ndash; irregular modified Bessel function of fractional order <em>nu</em>. </p>
+
+<p>Elliptic integrals are: &lsquo;<samp>ee(k)</samp>&rsquo; &ndash; complete elliptic integral is denoted by E(k) = E(&pi;/2,k), &lsquo;<samp>ek(k)</samp>&rsquo; &ndash; complete elliptic integral is denoted by K(k) = F(&pi;/2,k), &lsquo;<samp>e(phi,k)</samp>&rsquo; &ndash; elliptic integral E(&phi;,k) = &int;<sub>0</sub><sup>&phi;</sup>dt &radic;(1 - k<sup>2</sup>sin<sup>2</sup>(t)), &lsquo;<samp>f(phi,k)</samp>&rsquo; &ndash; elliptic integral F(&phi;,k) = &int;<sub>0</sub><sup>&phi;</sup>dt 1/&radic;(1 - k<sup>2</sup>sin<sup>2</sup>(t))</p>
+<p>Jacobi elliptic functions are: &lsquo;<samp>sn(u,m)</samp>&rsquo;, &lsquo;<samp>cn(u,m)</samp>&rsquo;, &lsquo;<samp>dn(u,m)</samp>&rsquo;, &lsquo;<samp>sc(u,m)</samp>&rsquo;, &lsquo;<samp>sd(u,m)</samp>&rsquo;, &lsquo;<samp>ns(u,m)</samp>&rsquo;, &lsquo;<samp>cs(u,m)</samp>&rsquo;, &lsquo;<samp>cd(u,m)</samp>&rsquo;, &lsquo;<samp>nc(u,m)</samp>&rsquo;, &lsquo;<samp>ds(u,m)</samp>&rsquo;, &lsquo;<samp>dc(u,m)</samp>&rsquo;, &lsquo;<samp>nd(u,m)</samp>&rsquo;.
+</p>
+<p>Note, some of these functions are unavailable if NO_GSL is defined during compilation of MathGL library. 
+</p>
+<p>There is no difference between lower or upper case in formulas. If argument value lie outside the range of function definition then function returns NaN.
+</p>
+
+
+<hr size="6">
+<a name="Graphics-setup"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Textual-formulas" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Graphics-setup-1"></a>
+<h2 class="section">1.2 Graphics setup</h2>
+
+<p>Coomands in this group influences on overall graphics appearance. So all of them should be placed <em>before</em> any actual plotting commands. 
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Transparency">1.2.1 Transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lighting">1.2.2 Lighting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fog">1.2.3 Fog</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Default-sizes">1.2.4 Default sizes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Zooming">1.2.5 Zooming</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cutting">1.2.6 Cutting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-settings">1.2.7 Other settings</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Graphics-setup" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lighting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transparency-1"></a>
+<h3 class="subsection">1.2.1 Transparency</h3>
+
+<p>There are several commands for setup transparency. The general command is <a href="#alpha">alpha</a> which switch on/off the transparency for overall plot. It influence only for graphics which created after <a href="#alpha">alpha</a> call. Command <a href="#alphadef">alphadef</a> specify the default value of alpha-channel. You may switch off transparency of selected plot by command <a href="#transparent">transparent</a>. Finally, command <a href="#transptype">transptype</a> set the kind of transparency. See section <a href="mgl_en_3.html#Transparent-surface-sample">Transparent surface sample</a>, for sample code and picture.
+</p>
+<a name="index-alpha"></a>
+<p><a name="alpha"></a>
+</p><dl>
+<dt><a name="index-alpha-1"></a><u>MGL command:</u> <b>alpha</b><i> <code>[val=on]</code></i></dt>
+<dd><p>Sets the transparency on/off. It is recommended to call this command before any plotting command. Default value is <code>off</code>. Use <code>transparent off</code> in particular plot to disable its transparency.
+</p></dd></dl>
+<a name="index-alphadef"></a>
+<p><a name="alphadef"></a>
+</p><dl>
+<dt><a name="index-alphadef-1"></a><u>MGL command:</u> <b>alphadef</b><i> <code>val</code></i></dt>
+<dd><p>Default value of alpha channel (transparency) for all plotting commands. Initial value is 0.5.
+</p></dd></dl>
+<a name="index-transparent"></a>
+<p><a name="transparent"></a>
+</p><dl>
+<dt><a name="index-transparent-1"></a><u>MGL command:</u> <b>transparent</b><i> <code>val</code></i></dt>
+<dd><p>Temporary switches transparency on/off for the plot.
+</p></dd></dl>
+<a name="index-transptype"></a>
+<p><a name="transptype"></a>
+</p><dl>
+<dt><a name="index-transptype-1"></a><u>MGL command:</u> <b>transptype</b><i> <code>val</code></i></dt>
+<dd><p>This command set the transparency type. Normal transparency (&lsquo;<samp>0</samp>&rsquo;) &ndash; below things is less visible than upper ones. Glass-like transparency (&lsquo;<samp>1</samp>&rsquo;) &ndash; below and upper things are commutable and just decrease intensity of light by RGB channel. Lamp-like transparency (&lsquo;<samp>2</samp>&rsquo;) &ndash; below and upper things are commutable and are the source of some additional light. I recommend to set <code>alphadef 0.3</code> or less for lamp-like transparency. See section <a href="mgl_en_3.html#Normal-transparency">Normal transparency</a>, <a href="mgl_en_3.html#Glass_002dlike-transparency">Glass-like transparency</a>, <a href="mgl_en_3.html#Lamp_002dlike-transparency">Lamp-like transparency</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Lighting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fog" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Lighting-1"></a>
+<h3 class="subsection">1.2.2 Lighting</h3>
+
+<p>There are several commands for setup lighting. The general command is <a href="#light">light</a> which switch on/off the lighting for overall plot. Generally MathGL support up to 10 independent light sources. The position, color, brightness of each light source can be set separately. By default only one light source is active. It is source number <code>0</code> with white color, located at top of the plot.
+</p>
+<a name="index-light"></a>
+<p><a name="light"></a>
+</p><dl>
+<dt><a name="index-light-1"></a><u>MGL command:</u> <b>light</b><i> <code>[val=on]</code></i></dt>
+<dd><p>Sets the using of light on/off for overall plot. It is recommended to call this command before any plotting command. Default value is lightning off.
+</p></dd></dl>
+<dl>
+<dt><a name="index-light-2"></a><u>MGL command:</u> <b>light</b><i> <code>num val</code></i></dt>
+<dd><p>Switch on/off <var>num</var>-th light source separately.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-light-3"></a><u>MGL command:</u> <b>light</b><i> <code>num xpos ypos zpos</code> ['col'='w' <code>br=0.5</code>]</i></dt>
+<dd><p>The command adds a light source with identification <var>num</var> at position {<var>xpos</var>, <var>ypos</var>, <var>zpos</var>}. The color of light is <var>col</var> (white by default). The brightness of light is <var>br</var> which must be in range [0,1].
+</p></dd></dl>
+
+<a name="index-ambient"></a>
+<p><a name="ambient"></a>
+</p><dl>
+<dt><a name="index-ambient-1"></a><u>MGL command:</u> <b>ambient</b><i> <code>val</code></i></dt>
+<dd><p>Sets the brightness of ambient light. The value should be in range [0,1]. Initial value is 0.5. 
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fog"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lighting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Default-sizes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fog-1"></a>
+<h3 class="subsection">1.2.3 Fog</h3>
+
+<a name="index-fog"></a>
+<p><a name="fog"></a>
+</p><dl>
+<dt><a name="index-fog-1"></a><u>MGL command:</u> <b>fog</b><i> <code>val [dz=0.25]</code></i></dt>
+<dd><p>Command imitate a fog in the plot. Fog start from relative distance <var>dz</var> from view point and its density growths exponentially in depth. So that the fog influence is determined by law ~<em>1-exp(-d*z)</em>. Here <em>z</em> is normalized to 1 depth of the plot. If value <var>val</var>=<code>0</code> then the fog is absent. See section <a href="mgl_en_3.html#Surface-in-fog-sample">Surface in fog sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Default-sizes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fog" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Zooming" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Default-sizes-1"></a>
+<h3 class="subsection">1.2.4 Default sizes</h3>
+
+<p>These commands control the default (initial) values for most graphics parameters including sizes of markers, arrows, linewidth and so on. As any other settings these ones will influence only on plots created after the settings change.
+</p>
+<a name="index-barwidth"></a>
+<p><a name="barwidth"></a>
+</p><dl>
+<dt><a name="index-barwidth-1"></a><u>MGL command:</u> <b>barwidth</b><i> <code>val</code></i></dt>
+<dd><p>Sets relative width of rectangles in <code>bars, barh, boxplot</code>. Default value is <code>0.7</code>.
+</p></dd></dl>
+
+<a name="index-marksize"></a>
+<p><a name="marksize"></a>
+</p><dl>
+<dt><a name="index-marksize-1"></a><u>MGL command:</u> <b>marksize</b><i> <code>val</code></i></dt>
+<dd><p>The size of marks. Default value is <code>1</code>.
+</p></dd></dl>
+
+<a name="index-arrowsize"></a>
+<p><a name="arrowsize"></a>
+</p><dl>
+<dt><a name="index-arrowsize-1"></a><u>MGL command:</u> <b>arrowsize</b><i> <code>val</code></i></dt>
+<dd><p>The size of arrows for lines and curves. Default value is <code>1</code>.
+</p></dd></dl>
+
+<a name="index-linewidth"></a>
+<p><a name="linewidth"></a>
+</p><dl>
+<dt><a name="index-linewidth-1"></a><u>MGL command:</u> <b>linewidth</b><i> <code>val</code></i></dt>
+<dd><p>The variable define the base width for all lines. The value &lt;1 is ignored. Increase of this variables is actual for large bitmap pictures. Default value is <code>1</code>.
+</p></dd></dl>
+
+<a name="index-ticklen"></a>
+<p><a name="ticklen"></a>
+</p><dl>
+<dt><a name="index-ticklen-1"></a><u>MGL command:</u> <b>ticklen</b><i> <code>val</code> [<code>stt=1</code>]</i></dt>
+<dd><p>The relative length of axis ticks. Default value is <code>0.1</code>. Parameter <var>stt</var>&gt;0 set relative length of subticks which is in <code>sqrt(1+stt)</code> times smaller.
+</p></dd></dl>
+
+<a name="index-tickstl"></a>
+<p><a name="tickstl"></a>
+</p><dl>
+<dt><a name="index-tickstl-1"></a><u>MGL command:</u> <b>tickstl</b><i> 'stl' ['sub'='']</i></dt>
+<dd><p>The line style of axis ticks (<var>stl</var>) and subticks (<var>sub</var>). If <var>stl</var>=&rdquo; then default style is used (&lsquo;<samp>k</samp>&rsquo; or &lsquo;<samp>w</samp>&rsquo; depending on transparency type). If <var>sub</var>=&rdquo; then ticks style is used (i.e. <var>stl</var>).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Zooming"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Default-sizes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cutting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Zooming-1"></a>
+<h3 class="subsection">1.2.5 Zooming</h3>
+
+<p>These commands control the overall zooming of the picture or the sub-picture. Normally you can use these variables and commands for removing &ldquo;white&rdquo; spaces around a plot.
+</p>
+<a name="index-plotfactor"></a>
+<p><a name="plotfactor"></a>
+</p><dl>
+<dt><a name="index-plotfactor-1"></a><u>MGL command:</u> <b>plotfactor</b><i> <code>val</code></i></dt>
+<dd><p>The factor of plot size. It is not recommended to set it lower then 1.6. This is some analogue of command <a href="#zoom">zoom</a> but applied not to overall image but for each <a href="#inplot">inplot</a>. Use negative value to enable automatic <a href="#plotfactor">plotfactor</a> selection.
+</p></dd></dl>
+
+<a name="index-zoom"></a>
+<p><a name="zoom"></a>
+</p><dl>
+<dt><a name="index-zoom-1"></a><u>MGL command:</u> <b>zoom</b><i> <code>x1 y1 x2 y2</code></i></dt>
+<dd><p>The command changes the scale of graphics that correspond to zoom in/out of the picture. After command call the current plot will be cleared and further the picture will contain plotting from its part [x1,x2]*[y1,y2]. Here picture coordinates <var>x1</var>, <var>x2</var>, <var>y1</var>, <var>y2</var> changes from 0 to 1. Use <code>zoom 0 0 1 1</code> to return default view.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cutting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Zooming" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cutting-1"></a>
+<h3 class="subsection">1.2.6 Cutting</h3>
+
+<p>These commands set the condition when the points are excluded (cutted) from the drawing. Note, that a point with <code>nan</code> value(s) of coordinate or amplitude will be automatically excluded from the drawing.
+</p>
+<a name="index-cut"></a>
+<p><a name="cut"></a>
+</p><dl>
+<dt><a name="index-cut-1"></a><u>MGL command:</u> <b>cut</b><i> <code>val</code></i></dt>
+<dd><p>Determines how points outside bounding box are drawn. If it is <code>on</code> then points are excluded from plot (it is default) otherwise the points are projected to edges of bounding box.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cut-2"></a><u>MGL command:</u> <b>cut</b><i> <code>x1 y1 z1 x2 y2 z2</code></i></dt>
+<dd><p>Lower and upper edge of the box in which never points are drawn. If both edges are the same (the variables are equal) then the cutting box is empty. See section <a href="mgl_en_3.html#CutMinMax-sample">CutMinMax sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cut-3"></a><u>MGL command:</u> <b>cut</b><i> 'cond'</i></dt>
+<dd><p>Command set the cutting off condition by formula <var>cond</var>. This condition determine will point be plotted or not. If value of formula is nonzero then point is omitted, otherwise it plotted. Set argument as <code>''</code> to disable cutting off condition. See section <a href="mgl_en_3.html#CutOff-sample">CutOff sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Other-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cutting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Other-settings-1"></a>
+<h3 class="subsection">1.2.7 Other settings</h3>
+
+<a name="index-font"></a>
+<p><a name="font"></a>
+</p><dl>
+<dt><a name="index-font-1"></a><u>MGL command:</u> <b>font</b><i> 'fnt' [<code>val=6</code>]</i></dt>
+<dd><p>Font style for text and labels (see text). Initial style is &rsquo;fnt&rsquo;=&rsquo;rC&rsquo; give Roman font with centering. Parameter <code>val</code> sets the size of font for tick and axis labels. Default font size of axis labels is 1.4 times large than for tick labels. For more detail, see section <a href="#Font-styles">Font styles</a>.
+</p></dd></dl>
+
+<a name="index-rotatetext"></a>
+<p><a name="rotatetext"></a>
+</p><dl>
+<dt><a name="index-rotatetext-1"></a><u>MGL command:</u> <b>rotatetext</b><i> <code>val</code></i></dt>
+<dd><p>Set to use or not text rotation along axis. Initial value is <code>on</code>.
+</p></dd></dl>
+
+<a name="index-palette"></a>
+<p><a name="palette"></a>
+</p><dl>
+<dt><a name="index-palette-1"></a><u>MGL command:</u> <b>palette</b><i> 'colors'</i></dt>
+<dd><p>Set the palette as selected colors. Default value is <code>'Hbgrcmyhlnqeup'</code>. The palette is used mostly in 1D plots for curves which styles are not specified.
+</p></dd></dl>
+
+<a name="index-meshnum"></a>
+<p><a name="meshnum"></a>
+</p><dl>
+<dt><a name="index-meshnum-1"></a><u>MGL command:</u> <b>meshnum</b><i> <code>num</code></i></dt>
+<dd><p>Sets approximate number of lines in <a href="#mesh">mesh</a>, <a href="#fall">fall</a>, <a href="#grid">grid</a> and also the number of hachures in <a href="#vect">vect</a>, <a href="#vectc">vectc</a>, <a href="#dew">dew</a> and the number of cells in <a href="#cloud">cloud</a>. By default (=0) it draws all lines/hachures/cells.
+</p></dd></dl>
+
+<a name="index-axialdir"></a>
+<p><a name="axialdir"></a>
+</p><dl>
+<dt><a name="index-axialdir-1"></a><u>MGL command:</u> <b>axialdir</b><i> 'dir'</i></dt>
+<dd><p>Set direction around which curve rotated in <a href="#axial">axial</a>, <a href="#torus">torus</a>. Default value is &rsquo;z&rsquo;.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axis-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transformation-matrix" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-settings-1"></a>
+<h2 class="section">1.3 Axis settings</h2>
+
+<p>These large set of commands control how the axis and ticks will be drawn. Note that there is 3-step transformation of data coordinates are performed. Firstly, coordinates are projected and cutting is applied (see section <a href="#Cutting">Cutting</a>), after it transformation formulas are applied, and finally the data was normalized in bounding box.
+</p>
+<a name="index-axis"></a>
+<p><a name="axis"></a>
+</p><dl>
+<dt><a name="index-axis-1"></a><u>MGL command:</u> <b>axis</b><i> <code>x1 y1 x2 y2</code></i></dt>
+<dt><a name="index-axis-2"></a><u>MGL command:</u> <b>axis</b><i> <code>x1 y1 z1 x2 y2 z2</code></i></dt>
+<dd><a name="index-ranges"></a>
+<p><a name="ranges"></a>
+</p></dd><dt><a name="index-ranges-1"></a><u>MGL command:</u> <b>ranges</b><i> <code>x1 x2 y1 y2 [z1=0 z2=0]</code></i></dt>
+<dd><p>Sets the ranges of coordinates changing. Also it sets the range for coloring (analogous to <code>caxis z1 z2</code>). Initial ranges are [-1, 1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axis-3"></a><u>MGL command:</u> <b>axis</b><i> 'fx' 'fy' ['fz'='' 'fa'='']</i></dt>
+<dd><p>Sets the transformation formulas for curvilinear coordinates. Each string should contain mathematical expression for real coordinate depending on internal coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; and &lsquo;<samp>a</samp>&rsquo; or &lsquo;<samp>c</samp>&rsquo; for colorbar. For example, the cylindrical coordinates are introduced as <code>axis 'x*cos(y)' 'x*sin(y)' 'z'</code>. For removing of formulas the corresponding parameter should be <code>''</code>. The using of transformation formulas will slightly slowing the program, i.e. <code>axis '' '' ''</code> is faster than <code>axis '1*x' '1*y' '1*z'</code>. Initially all formulas are absent (Cartesian coordinates are used). For more details about functions and formulas, see section <a href="#Textual-formulas">Textual formulas</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axis-4"></a><u>MGL command:</u> <b>axis</b><i> <code>how</code></i></dt>
+<dd><p>Sets one of the predefined transformation formulas for curvilinear coordinate. Paramater <var>how</var> define the coordinates: &lsquo;<samp>0</samp>&rsquo; &ndash; Cartesian coordinates (no transformation); &lsquo;<samp>1</samp>&rsquo; &ndash; Polar coordiantes <em>x_n=x*cos(y),y_n=x*sin(y), z_n=z</em>; &lsquo;<samp>2</samp>&rsquo; &ndash; Spherical coordinates <em>x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y)</em>; &lsquo;<samp>3</samp>&rsquo; &ndash; Parabolic coordinates <em>x_n=x*y, y_n=(x*x-y*y)/2, z_n=z</em>; &lsquo;<samp>4</samp>&rsquo; &ndash; Paraboloidal coordinates <em>x_n=(x*x-y*y)*cos(z)/2, y_n=(x*x-y*y)*sin(z)/2, z_n=x*y</em>; &lsquo;<samp>5</samp>&rsquo; &ndash; Oblate coordinates <em>x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z), z_n=sinh(x)*sin(y)</em>; &lsquo;<samp>6</samp>&rsquo; &ndash; Prolate coordinates <em>x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z), z_n=cosh(x)*cos(y)</em>; &lsquo;<samp>7</samp>&rsquo; &ndash; Elliptic coordinates <em>x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z</em>; &lsquo;<samp>8</samp>&rsquo; &ndash; Toroidal coordinates <em>x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)), y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y))</em>; &lsquo;<samp>9</samp>&rsquo; &ndash; Bispherical coordinates <em>x_n=sin(y)*cos(z)/(cosh(x)-cos(y)), y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y))</em>; &lsquo;<samp>10</samp>&rsquo; &ndash; Bipolar coordinates <em>x_n=sinh(x)/(cosh(x)-cos(y)), y_n=sin(y)/(cosh(x)-cos(y)), z_n=z</em>.
+</p></dd></dl>
+
+<a name="index-caxis"></a>
+<p><a name="caxis"></a>
+</p><dl>
+<dt><a name="index-caxis-1"></a><u>MGL command:</u> <b>caxis</b><i> <code>z1 z2</code></i></dt>
+<dd><p>Sets the range for surface coloring. Initial range is [-1, 1].
+</p></dd></dl>
+
+<a name="index-origin"></a>
+<p><a name="origin"></a>
+</p><dl>
+<dt><a name="index-origin-1"></a><u>MGL command:</u> <b>origin</b><i> <code>x0 y0 [z0=nan]</code></i></dt>
+<dd><p>Center of axis cross section. If one of values is <code>nan</code> then MathGL library try to select optimal axis position.
+</p></dd></dl>
+
+<a name="index-ternary"></a>
+<p><a name="ternary"></a>
+</p><dl>
+<dt><a name="index-ternary-1"></a><u>MGL command:</u> <b>ternary</b><i> <code>val</code></i></dt>
+<dd><p>The command sets to draws Ternary plot. This special plot is for 3 dependent coordinates (components) <var>a</var>, <var>b</var>, <var>c</var> so that <var>a</var>+<var>b</var>+<var>c</var>=1. MathGL uses only 2 independent coordinates <var>a</var>=x and <var>b</var>=y since it is enough to plot everything. At this third coordinate z act as another parameter to produce contour lines, surfaces and so on. See section <a href="mgl_en_3.html#Ternary-plot-sample">Ternary plot sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-xrange"></a>
+<p><a name="xrange"></a>
+</p><dl>
+<dt><a name="index-xrange-1"></a><u>MGL command:</u> <b>xrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-yrange"></a>
+<p><a name="yrange"></a>
+</p></dd><dt><a name="index-yrange-1"></a><u>MGL command:</u> <b>yrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-zrange"></a>
+<p><a name="zrange"></a>
+</p></dd><dt><a name="index-zrange-1"></a><u>MGL command:</u> <b>zrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-crange"></a>
+<p><a name="crange"></a>
+</p></dd><dt><a name="index-crange-1"></a><u>MGL command:</u> <b>crange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><p>Sets the range for x-,y-,z- coordinate or coloring as minimal and maximal values of data <var>dat</var>. Parameter <code>add=on</code> shows that the new range will be joined to existed one (nut will not replace it). Parameter <var>fact</var> add additional range increase on value (<var>Max</var>-<var>Min</var>)*<var>fact</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xrange-2"></a><u>MGL command:</u> <b>xrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-yrange-2"></a><u>MGL command:</u> <b>yrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-zrange-2"></a><u>MGL command:</u> <b>zrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-crange-2"></a><u>MGL command:</u> <b>crange</b><i> <code>x1 x2</code></i></dt>
+<dd><p>Sets the range for x-,y-,z- coordinate or coloring. See also <a href="#axis">axis</a>.
+</p></dd></dl>
+
+<a name="index-xtick"></a>
+<p><a name="xtick"></a>
+</p><dl>
+<dt><a name="index-xtick-1"></a><u>MGL command:</u> <b>xtick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ytick"></a>
+<p><a name="ytick"></a>
+</p></dd><dt><a name="index-ytick-1"></a><u>MGL command:</u> <b>ytick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ztick"></a>
+<p><a name="ztick"></a>
+</p></dd><dt><a name="index-ztick-1"></a><u>MGL command:</u> <b>ztick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ctick"></a>
+<p><a name="ctick"></a>
+</p></dd><dt><a name="index-ctick-1"></a><u>MGL command:</u> <b>ctick</b><i> <code>val</code></i></dt>
+<dd><p>Sets step for x-, y-, z-axis ticks or colorbar ticks (if <var>val</var>&gt;0) or it&rsquo;s number (if <var>val</var>&lt;0) in corresponding direction. Zero value <var>val</var>=0 sets logarithmic ticks. Parameter <var>sub</var> sets the number of sub-ticks. Parameter <var>org</var> set the starting points for ticks. If not <code>org=nan</code> then the value from <a href="#origin">origin</a> is used.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xtick-2"></a><u>MGL command:</u> <b>xtick</b><i> 'templ'</i></dt>
+<dt><a name="index-ytick-2"></a><u>MGL command:</u> <b>ytick</b><i> 'templ'</i></dt>
+<dt><a name="index-ztick-2"></a><u>MGL command:</u> <b>ztick</b><i> 'templ'</i></dt>
+<dt><a name="index-ctick-2"></a><u>MGL command:</u> <b>ctick</b><i> 'templ'</i></dt>
+<dd><p>Sets the template for x-, y-, z-axis ticks or colorbar ticks. It may contain TeX symbols also. If <var>templ</var>=<code>''</code> then default template is used (in simplest case it is &lsquo;<samp>%.2g</samp>&rsquo;) with automatic detaching of common multiplier or common component.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xtick-3"></a><u>MGL command:</u> <b>xtick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dt><a name="index-ytick-3"></a><u>MGL command:</u> <b>ytick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dt><a name="index-ztick-3"></a><u>MGL command:</u> <b>ztick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dd><p>Sets manual positions <var>val1</var>,<var>val2</var>,... and labels <var>lbl1</var>,<var>lbl2</var>,... for ticks along x-, y-, z-axis. Labels may contain TeX symbols also.
+</p></dd></dl>
+
+<a name="index-adjust"></a>
+<p><a name="adjust"></a>
+</p><dl>
+<dt><a name="index-adjust-1"></a><u>MGL command:</u> <b>adjust</b><i> ['dir'='xyzc']</i></dt>
+<dd><p>Set the ticks step, number of sub-ticks and initial ticks position to be the most human readable for the axis along direction(s) <var>dir</var>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Transformation-matrix"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Export-to-file" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transformation-matrix-1"></a>
+<h2 class="section">1.4 Transformation matrix</h2>
+
+<p>These commands control how and where further plotting will be placed. There is a curtain order of calling of these commands for the better plot view. First one should be <a href="#subplot">subplot</a> or <a href="#inplot">inplot</a> for specifying the place. After it a <a href="#rotate">rotate</a> and <a href="#aspect">aspect</a>. And finally any other plotting commands may be called. Alternatevely you can use <a href="#columnplot">columnplot</a> for position plots in the column one by another without gap between plot axis (bounding boxes).
+</p>
+<a name="index-subplot"></a>
+<p><a name="subplot"></a>
+</p><dl>
+<dt><a name="index-subplot-1"></a><u>MGL command:</u> <b>subplot</b><i> <code>nx ny m [dx=0 dy=0]</code></i></dt>
+<dd><p>Puts further plotting in a <var>m</var>-th cell of <var>nx</var>*<var>ny</var> grid of the whole frame area. This command set off any aspects or rotations. So it should be used first for creating the subplot. From the aesthetical point of view it is not recommended to use this command with different matrices in the same frame. The position of the cell can be shifted from its default position by relative size <var>dx</var>, <var>dy</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-subplot-2"></a><u>MGL command:</u> <b>subplot</b><i> <code>nx ny m</code> 'style'</i></dt>
+<dd><p>The same as previous but space reserved for axis/colorbar is saved only if <var>style</var> contain: &lsquo;<samp>L</samp>&rsquo; or &lsquo;<samp>&lt;</samp>&rsquo; &ndash; at left side, &lsquo;<samp>R</samp>&rsquo; or &lsquo;<samp>&gt;</samp>&rsquo; &ndash; at right side, &lsquo;<samp>A</samp>&rsquo; or &lsquo;<samp>^</samp>&rsquo; &ndash; at top side, &lsquo;<samp>U</samp>&rsquo; or &lsquo;<samp>_</samp>&rsquo; &ndash; at bottom side.
+</p></dd></dl>
+
+<a name="index-inplot"></a>
+<p><a name="inplot"></a>
+</p><dl>
+<dt><a name="index-inplot-1"></a><u>MGL command:</u> <b>inplot</b><i> <code>x1 x2 y1 y2 [rel=off]</code></i></dt>
+<dd><p>Puts further plotting in some region of the whole frame surface. This command allows one to create a plot in arbitrary place of the screen. The position is defined by rectangular coordinates [<var>x1</var>, <var>x2</var>]*[<var>y1</var>, <var>y2</var>]. The coordinates <var>x1</var>, <var>x2</var>, <var>y1</var>, <var>y2</var> are normalized to interval [0, 1]. If parameter <var>rel</var>=<code>on</code> then the relative position to current <a href="#subplot">subplot</a> is used. This command set off any aspects or rotations. So it should be used first for creating subplot.
+</p></dd></dl>
+
+<a name="index-columnplot"></a>
+<p><a name="columnplot"></a>
+</p><dl>
+<dt><a name="index-columnplot-1"></a><u>MGL command:</u> <b>columnplot</b><i> <code>num ind [d=0]</code></i></dt>
+<dd><p>Puts further plotting in <var>ind</var>-th cell of column with <var>num</var> cells. The position is relative to previous <a href="#subplot">subplot</a> call (or <a href="#inplot">inplot</a> with <code>rel=off</code>). Parameter <var>d</var> set extra gap between cells.
+</p></dd></dl>
+
+<a name="index-stickplot"></a>
+<p><a name="stickplot"></a>
+</p><dl>
+<dt><a name="index-stickplot-1"></a><u>MGL command:</u> <b>stickplot</b><i> <code>num ind tet phi</code></i></dt>
+<dd><p>Puts further plotting in <var>ind</var>-th cell of stick with <var>num</var> cells. At this, stick is rotated on angles <var>tet</var>, <var>phi</var>. The position is relative to previous <a href="#subplot">subplot</a> call (or <a href="#inplot">inplot</a> with <code>rel=off</code>).
+</p></dd></dl>
+
+<a name="index-rotate"></a>
+<p><a name="rotate"></a>
+</p><dl>
+<dt><a name="index-rotate-1"></a><u>MGL command:</u> <b>rotate</b><i> <code>tetz tetx [tety=0]</code></i></dt>
+<dd><p>Rotates a further plotting relative to each axis (x, z, y) consecutively on angles <var>tetx</var>, <var>tetz</var>, <var>tety</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-rotate-2"></a><u>MGL command:</u> <b>rotate</b><i> <code>tet x y z</code></i></dt>
+<dd><p>Rotates a further plotting around vector {x,y,z} on angle <var>tet</var>.
+</p></dd></dl>
+
+<a name="index-aspect"></a>
+<p><a name="aspect"></a>
+</p><dl>
+<dt><a name="index-aspect-1"></a><u>MGL command:</u> <b>aspect</b><i> <code>ax ay [az=1]</code></i></dt>
+<dd><p>Defines aspect ratio for the plot. The viewable axes will be related one to another as the ratio <var>ax:ay:az</var>. For the best effect it should be used after <a href="#rotate">rotate</a> command.
+</p></dd></dl>
+
+<a name="index-perspective"></a>
+<p><a name="perspective"></a>
+</p><dl>
+<dt><a name="index-perspective-1"></a><u>MGL command:</u> <b>perspective</b><i> <code>val</code></i></dt>
+<dd><p>Add (switch on) the perspective to plot. The parameter <em>val ~ 1/z_eff \in [0,1)</em>. By default (<code>val=0</code>) the perspective is off.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Export-to-file"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transformation-matrix" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Primitives-drawing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Export-to-file-1"></a>
+<h2 class="section">1.5 Export to file</h2>
+
+<a name="index-write"></a>
+<p><a name="write"></a>
+</p><dl>
+<dt><a name="index-write-1"></a><u>MGL command:</u> <b>write</b><i> 'fname' [<code>solid=off</code>]</i></dt>
+<dd><p>Exports current picture/frame to file &rsquo;fname&rsquo; (file type is determined by extension). Solid (usually white) background will be used if <code>solid=on</code>. If &rsquo;fname&rsquo;=&rdquo; then the file &lsquo;<samp>frameNNNN.jpg</samp>&rsquo; is used, where &lsquo;<samp>NNNN</samp>&rsquo; is current frame id.
+</p></dd></dl>
+
+<a name="index-setsize"></a>
+<p><a name="setsize"></a>
+</p><dl>
+<dt><a name="index-setsize-1"></a><u>MGL command:</u> <b>setsize</b><i> <code>w h</code></i></dt>
+<dd><p>Sets size of picture in pixels. This function call <strong>must be</strong> placed before any plotting command because it completely remove picture content. In some program the call of this function is forbidden.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Primitives-drawing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Export-to-file" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Primitives-drawing-1"></a>
+<h2 class="section">1.6 Primitives drawing</h2>
+
+<p>These commands draw some simple objects like line, point, sphere, drop, cone and so on.
+</p>
+<a name="index-clf"></a>
+<p><a name="clf"></a>
+</p><dl>
+<dt><a name="index-clf-1"></a><u>MGL command:</u> <b>clf</b></dt>
+<dd><p>Clear the picture by removes all drawing from it. Does not change transformation matrix. 
+</p></dd></dl>
+
+<a name="index-ball"></a>
+<p><a name="ball"></a>
+</p><dl>
+<dt><a name="index-ball-1"></a><u>MGL command:</u> <b>ball</b><i> <code>x y</code> ['col'='r']</i></dt>
+<dt><a name="index-ball-2"></a><u>MGL command:</u> <b>ball</b><i> <code>x y z</code> ['col'='r']</i></dt>
+<dd><p>Draws a point (ball) at position {<var>x</var>, <var>y</var>, <var>z</var>} with color defined by string <var>col</var>.
+</p></dd></dl>
+
+<a name="index-line"></a>
+<p><a name="line"></a>
+</p><dl>
+<dt><a name="index-line-1"></a><u>MGL command:</u> <b>line</b><i> <code>x1 y1 x2 y2</code> ['stl'='']</i></dt>
+<dt><a name="index-line-2"></a><u>MGL command:</u> <b>line</b><i> <code>x1 y1 z1 x2 y2 z2</code> ['stl'='']</i></dt>
+<dd><p>Draws a geodesic line (straight line in Cartesian coordinates) from point {<var>x1</var>,<var>y1</var>,<var>z1</var>} to {<var>x2</var>,<var>y2</var>,<var>z2</var>} using line style <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-curve"></a>
+<p><a name="curve"></a>
+</p><dl>
+<dt><a name="index-curve-1"></a><u>MGL command:</u> <b>curve</b><i> <code>x1 y1 dx1 dy1 x2 y2 dx2 dy2</code> ['stl'='']</i></dt>
+<dt><a name="index-curve-2"></a><u>MGL command:</u> <b>curve</b><i> <code>x1 y1 z1 dx1 dy1 dz1 x2 y2 z2 dx2 dy2 dz2</code> ['stl'='']</i></dt>
+<dd><p>Draws Bezier-like curve from point {<var>x1</var>,<var>y1</var>,<var>z1</var>} to {<var>x2</var>,<var>y2</var>,<var>z2</var>} using line style <var>stl</var>. At this tangent is co-directed with {<var>dx1</var>,<var>dy1</var>,<var>dz1</var>}, {<var>dx2</var>,<var>dy2</var>,<var>dz2</var>} and proportional to its amplitude.
+</p></dd></dl>
+
+<a name="index-facex"></a>
+<p><a name="facex"></a>
+</p><dl>
+<dt><a name="index-facex-1"></a><u>MGL command:</u> <b>facex</b><i> <code>x0 y0 z0 wy wz</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><a name="index-facey"></a>
+<p><a name="facey"></a>
+</p></dd><dt><a name="index-facey-1"></a><u>MGL command:</u> <b>facey</b><i> <code>x0 y0 z0 wx wz</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><a name="index-facez"></a>
+<p><a name="facez"></a>
+</p></dd><dt><a name="index-facez-1"></a><u>MGL command:</u> <b>facez</b><i> <code>x0 y0 z0 wx wy</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><p>Draws the solid rectangle (face) perpendicular to [x,y,z]-axis correspondingly at position {<var>x0</var>, <var>y0</var>, <var>z0</var>} with color <var>stl</var> and with widths <var>wx</var>, <var>wy</var>, <var>wz</var> along corresponding directions. At this colors can be the same for all vertexes or different if all 4 colors are specified for each vertex. Parameters <var>d1</var>!=0, <var>d2</var>!=0 set additional shift of the last vertex (i.e. to draw quadrangle).
+</p></dd></dl>
+
+<a name="index-sphere"></a>
+<p><a name="sphere"></a>
+</p><dl>
+<dt><a name="index-sphere-1"></a><u>MGL command:</u> <b>sphere</b><i> <code>x0 y0 r</code> ['col'='r']</i></dt>
+<dt><a name="index-sphere-2"></a><u>MGL command:</u> <b>sphere</b><i> <code>x0 y0 z0 r</code> ['col'='r']</i></dt>
+<dd><p>Draw the sphere with radius <var>r</var> and center at point {<var>x0</var>, <var>y0</var>, <var>z0</var>} and color <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-drop"></a>
+<p><a name="drop"></a>
+</p><dl>
+<dt><a name="index-drop-1"></a><u>MGL command:</u> <b>drop</b><i> <code>x0 y0 dx dy r</code> ['col'='b' <code>sh=1 asp=1</code>]</i></dt>
+<dt><a name="index-drop-2"></a><u>MGL command:</u> <b>drop</b><i> <code>x0 y0 z0 dx dy dz r</code> ['col'='b' <code>sh=1 asp=1</code>]</i></dt>
+<dd><p>Draw the drop with radius <var>r</var> at point {<var>x0</var>,<var>y0</var>,<var>z0</var>} elongated in direction {<var>dx</var>,<var>dy</var>,<var>dz</var>} and with color <var>col</var>. Parameter <var>sh</var> set the degree of drop oblongness: &lsquo;<samp>0</samp>&rsquo; is sphere, &lsquo;<samp>1</samp>&rsquo; is maximally oblongness drop. Parameter <var>asp</var> set relative width of the drop (this is analogue of &ldquo;ellipticity&rdquo; for the sphere). See section <a href="mgl_en_3.html#Drops-sample">Drops sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-cone"></a>
+<p><a name="cone"></a>
+</p><dl>
+<dt><a name="index-cone-1"></a><u>MGL command:</u> <b>cone</b><i> <code>x1 y1 z1 x2 y2 z2 r1</code> [<code>r2=-1</code> 'stl'='' <code>edge=off</code>]</i></dt>
+<dd><p>Draw tube (or truncated cone if <var>edge</var>=<code>off</code>) between points {<var>x1</var>,<var>y1</var>,<var>z1</var>}, {<var>x2</var>,<var>y2</var>,<var>z2</var>} with radiuses at the edges <var>r1</var>, <var>r2</var>. If <var>r2</var>&lt;0 then it is supposed that <var>r2</var>=<var>r1</var>. The cone color is defined by string <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-rect"></a>
+<p><a name="rect"></a>
+</p><dl>
+<dt><a name="index-rect-1"></a><u>MGL command:</u> <b>rect</b><i> <code>x1 y1 x2 y2</code> ['st'='']</i></dt>
+<dt><a name="index-rect-2"></a><u>MGL command:</u> <b>rect</b><i> <code>x1 y1 z1 x2 y2 z2</code> ['st'='']</i></dt>
+<dd><p>Draw rectangle from point {<var>x1</var>,<var>y1</var>,<var>z1</var>} to point {<var>x2</var>,<var>y2</var>,<var>z2</var>} using colors <var>stl</var>. If <var>stl</var> have 4 or more colors then it defines colors for each rectangle vertex (useful for making gradients, like &lsquo;<samp>wwrr</samp>&rsquo;) else first color is used for whole rectangle.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Text-printing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Primitives-drawing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-Colorbar" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-printing-1"></a>
+<h2 class="section">1.7 Text printing</h2>
+
+<p>These commands draw the text. There are commands for drawing text in arbitrary place, in arbitrary direction and along arbitrary curve. It is possible to use arbitrary font-faces and parse many TeX commands. The Unicode text is supported. So sometimes you need to specify locale. The <code>size</code> argument control the size of text: if positive it give the value, if negative it give the value relative to defined by <code>font</code> command. See section <a href="#Font-styles">Font styles</a>.
+</p>
+<a name="index-text"></a>
+<p><a name="text"></a>
+</p><dl>
+<dt><a name="index-text-1"></a><u>MGL command:</u> <b>text</b><i> <code>x y</code> 'text' ['fnt'='' <code>size=-1.4</code>]</i></dt>
+<dt><a name="index-text-2"></a><u>MGL command:</u> <b>text</b><i> <code>x y z</code> 'text' ['fnt'='' <code>size=-1.4</code>]</i></dt>
+<dd><p>Draws unrotated text string <var>text</var> at position {<var>x</var>,<var>y</var>,<var>z</var>} with specified style <var>fnt</var> and <var>size</var>. By default parameters from <code>font</code> command are used.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-text-3"></a><u>MGL command:</u> <b>text</b><i> <code>x y dx dy</code> 'text' [<code>size=-1.4</code>]</i></dt>
+<dt><a name="index-text-4"></a><u>MGL command:</u> <b>text</b><i> <code>x y z dx dy dz</code> 'text' [<code>size=-1.4</code>]</i></dt>
+<dd><p>The command plots the string <var>text</var> at position {<var>x</var>,<var>y</var>,<var>z</var>} along direction {<var>dx</var>,<var>dy</var>,<var>dz</var>} with specified style <var>fnt</var> and <var>size</var>. By default parameters from <code>font</code> command are used.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-text-5"></a><u>MGL command:</u> <b>text</b><i> ydat 'text' ['fnt'='' <code>size=-1 zval=nan</code>]</i></dt>
+<dt><a name="index-text-6"></a><u>MGL command:</u> <b>text</b><i> xdat ydat 'text' ['fnt'='' <code>size=-1 zval=nan</code>]</i></dt>
+<dt><a name="index-text-7"></a><u>MGL command:</u> <b>text</b><i> xdat ydat zdat 'text' ['fnt'='' <code>size=-1</code>]</i></dt>
+<dd><p>The command draws <var>text</var> along the curve between points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} by font style <var>fnt</var> and with size <var>size</var>. The string <var>fnt</var> may contain symbols &lsquo;<samp>t</samp>&rsquo; for printing the text under the curve (default), or &lsquo;<samp>T</samp>&rsquo; for printing the text above the curve. The sizes of 1st dimension must be equal for all arrays <var>xdat.nx=ydat.nx=zdat.nx</var>. If array <var>xdat</var> is not specified then its an automatic array is used with values equidistantly distributed along x. If array <var>zdat</var> is not specified then <var>z</var>[i] = <var>zval</var> is used. See section <a href="mgl_en_3.html#Text-sample">Text sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-title"></a>
+<p><a name="title"></a>
+</p><dl>
+<dt><a name="index-title-1"></a><u>MGL command:</u> <b>title</b><i> 'text' ['fnt'='' <code>size=-2</code>]</i></dt>
+<dd><p>Print string <var>text</var> as title of the picture (at the top of the picture). Can be used at any place (even inside <a href="#subplot">subplot</a>).
+</p></dd></dl>
+
+<a name="index-fgets"></a>
+<p><a name="fgets"></a>
+</p><dl>
+<dt><a name="index-fgets-1"></a><u>MGL command:</u> <b>fgets</b><i> <code>x y</code> 'fname' [<code>n=0</code> 'fnt'='' <code>size=-1.4</code>]</i></dt>
+<dt><a name="index-fgets-2"></a><u>MGL command:</u> <b>fgets</b><i> <code>x y z</code> 'fname' [<code>n=0</code> 'fnt'='' <code>size=-1.4</code>]</i></dt>
+<dd><p>Draws unrotated <var>n</var>-th line of file <var>fname</var> at position {<var>x</var>,<var>y</var>,<var>z</var>} with specified <var>size</var>. By default parameters from <a href="#font">font</a> command are used.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Axis-and-Colorbar"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-and-Colorbar-1"></a>
+<h2 class="section">1.8 Axis and Colorbar</h2>
+
+<p>These commands draw the &ldquo;things for measuring&rdquo;, like axis with ticks, colorbar with ticks, grid along axis, bounding box and labels for axis. For more information see section <a href="#Axis-settings">Axis settings</a>.
+</p>
+<a name="index-axis-5"></a>
+<dl>
+<dt><a name="index-axis-6"></a><u>MGL command:</u> <b>axis</b><i> ['dir'='xyz' <code>adjust=off</code>]</i></dt>
+<dd><p>Draws axes with ticks (see section <a href="#Axis-settings">Axis settings</a>) in directions determined by string parameter <var>dir</var>.If string contain the symbol &lsquo;<samp>_</samp>&rsquo; then tick labels are not printed. Font for ticks labels is determined by command <a href="#font">font</a>. Ticks will be automatically adjusted if <var>adjust</var>=<code>on</code> (by call of <code>adjust 'dir'</code>).
+</p></dd></dl>
+
+<a name="index-colorbar"></a>
+<p><a name="colorbar"></a>
+</p><dl>
+<dt><a name="index-colorbar-1"></a><u>MGL command:</u> <b>colorbar</b><i> ['sch'='' <code>pos=0</code>]</i></dt>
+<dd><p>Draws colorbar with color scheme <var>sch</var> (current scheme if <code>sch=''</code>) at edge of plot. Parameter <var>pos</var> specifies the position of colorbar: &lsquo;<samp>0</samp>&rsquo; - at right (default), &lsquo;<samp>1</samp>&rsquo; - at left, &lsquo;<samp>2</samp>&rsquo; - at top, &lsquo;<samp>3</samp>&rsquo; - at bottom. If string <var>sch</var> contains &lsquo;<samp>&lt;&gt;^_</samp>&rsquo; then the parameter <var>pos</var> is defined as: <code>pos=0</code> for &lsquo;<samp>&gt;</samp>&rsquo; (right), <code>pos=1</code> for &lsquo;<samp>&lt;</samp>&rsquo; (left), <code>pos=2</code> for &lsquo;<samp>^</samp>&rsquo; (top), <code>pos=3</code> for &lsquo;<samp>_</samp>&rsquo; (bottom). If string have &lsquo;<samp>A</samp>&rsquo; then absolute (relative to picture) coordinates is used. See section <a href="mgl_en_3.html#Dens-sample">Dens sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-colorbar-2"></a><u>MGL command:</u> <b>colorbar</b><i> vdat ['sch'='' <code>pos=0</code>]</i></dt>
+<dd><p>The same as previous but with sharp colors <var>sch</var> (current palette if <code>sch=&quot;&quot;</code>) for values <var>v</var>. See section <a href="mgl_en_3.html#ContD-sample">ContD sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-colorbar-3"></a><u>MGL command:</u> <b>colorbar</b><i> 'sch' <code>pos x y w h</code></i></dt>
+<dd><p>The same as first one but at arbitrary position of subplot {<var>x</var>, <var>y</var>} (supposed to be in range [0,1]). Parameters <var>w</var>, <var>h</var> set the relative width and height of the colorbar.
+</p></dd></dl>
+
+<a name="index-grid"></a>
+<p><a name="grid"></a>
+</p><dl>
+<dt><a name="index-grid-1"></a><u>MGL command:</u> <b>grid</b><i> ['dir'='xyz' 'pen'='B']</i></dt>
+<dd><p>Draws grid lines perpendicular to direction determined by string parameter <var>dir</var>. The step of grid lines is the same as tick step for an <code>axis</code>. The style of lines is determined by <var>pen</var> parameter.
+</p></dd></dl>
+
+<a name="index-box"></a>
+<p><a name="box"></a>
+</p><dl>
+<dt><a name="index-box-1"></a><u>MGL command:</u> <b>box</b><i> ['stl'='k' <code>ticks=on</code>]</i></dt>
+<dd><p>Draws bounding box outside the plotting volume with line style &rsquo;stl&rsquo;. If <code>ticks=on</code> then ticks are drawn with current axis setting.
+</p></dd></dl>
+
+<a name="index-xlabel"></a>
+<p><a name="xlabel"></a>
+</p><dl>
+<dt><a name="index-xlabel-1"></a><u>MGL command:</u> <b>xlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-ylabel"></a>
+<p><a name="ylabel"></a>
+</p></dd><dt><a name="index-ylabel-1"></a><u>MGL command:</u> <b>ylabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-zlabel"></a>
+<p><a name="zlabel"></a>
+</p></dd><dt><a name="index-zlabel-1"></a><u>MGL command:</u> <b>zlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-tlabel"></a>
+<p><a name="tlabel"></a>
+</p></dd><dt><a name="index-tlabel-1"></a><u>MGL command:</u> <b>tlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><p>Prints the label <var>text</var> for x-,y-,z-,t-axis (here &lsquo;<samp>t</samp>&rsquo; is &ldquo;ternary&rdquo; axis <em>t=1-x-y</em>). The position of label is determined by <var>pos</var> parameter. If <var>pos</var>=0 then label is printed at the center of axis. If <var>pos</var>&gt;0 then label is printed at the maximum of axis (default). If <var>pos</var>&lt;0 then label is printed at the minimum of axis. The font size is 1.4 times larger than the one for ticks <code>font</code>. Parameter <code>shift</code> specify additional shifting of the label. See section <a href="#Text-printing">Text printing</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Legend"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-Colorbar" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Legend-1"></a>
+<h2 class="section">1.9 Legend</h2>
+
+<p>These commands draw legend to the graph (useful for <a href="#g_t1D-plotting">1D plotting</a>). Legend entry is a pair of strings: one for style of the line, another one with description text (with included LaTeX parsing). The array of string are accumulated first to the internal arrays (by command <a href="#addlegend">addlegend</a>) and are plotted later. The position of the legend can be selected automatic or manually. Parameters <var>fnt</var> and <var>size</var> specify the font style and size. Parameter <var>llen</var> set the relative width of the line sample and the text indent (default value is 0.1). If line style string for entry is empty then the corresponding text is printed without indent. If string contains &lsquo;<samp>A</samp>&rsquo; then legend coordinates set position in the picture. See section <a href="mgl_en_3.html#Legend-sample">Legend sample</a>, for sample code and picture.
+</p>
+<a name="index-legend"></a>
+<p><a name="legend"></a>
+</p><dl>
+<dt><a name="index-legend-1"></a><u>MGL command:</u> <b>legend</b><i> [<code>pos=3</code> 'fnt'='rL' <code>size=-1 llen=0.1</code>]</i></dt>
+<dd><p>Draws legend of accumulated legend entries by font <var>fnt</var> with specified <var>size</var>. Parameter <var>pos</var> sets the position of the legend: &lsquo;<samp>0</samp>&rsquo; is bottom left corner, &lsquo;<samp>1</samp>&rsquo; is bottom right corner, &lsquo;<samp>2</samp>&rsquo; is top left corner, &lsquo;<samp>3</samp>&rsquo; is top right corner (is default).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-legend-2"></a><u>MGL command:</u> <b>legend</b><i> <code>x y</code> ['fnt'='rL' <code>size=-1 llen=0.1</code>]</i></dt>
+<dd><p>Draws legend of accumulated legend entries by font <var>fnt</var> with <var>size</var>. Position of legend in the current subplot is determined by parameter <var>x</var>, <var>y</var> which supposed to be normalized to interval [0,1].
+</p></dd></dl>
+
+<a name="index-addlegend"></a>
+<p><a name="addlegend"></a>
+</p><dl>
+<dt><a name="index-addlegend-1"></a><u>MGL command:</u> <b>addlegend</b><i> 'text' 'stl'</i></dt>
+<dd><p>Adds string <var>text</var> to internal legend accumulator. The style of described line and mark is specified in string <var>stl</var> (see section <a href="#Line-styles">Line styles</a>). Maximal number of entries is 100.
+</p></dd></dl>
+
+<a name="index-clearlegend"></a>
+<p><a name="clearlegend"></a>
+</p><dl>
+<dt><a name="index-clearlegend-1"></a><u>MGL command:</u> <b>clearlegend</b></dt>
+<dd><p>Clears saved legend strings.
+</p></dd></dl>
+
+<a name="index-legendbox"></a>
+<p><a name="legendbox"></a>
+</p><dl>
+<dt><a name="index-legendbox-1"></a><u>MGL command:</u> <b>legendbox</b><i> <code>val</code></i></dt>
+<dd><p>Switches on/off the drawing of a box near legend. By default, the box is drawn.
+</p></dd></dl>
+
+<a name="index-legendmarks"></a>
+<p><a name="legendmarks"></a>
+</p><dl>
+<dt><a name="index-legendmarks-1"></a><u>MGL command:</u> <b>legendmarks</b><i> <code>val</code></i></dt>
+<dd><p>Set the number of marks in the legend. By default 1 mark is used.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t1D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-plotting-1"></a>
+<h2 class="section">1.10 1D plotting</h2>
+
+<p>These commands perform plotting of 1D data. 1D means that data depended from only 1 parameter like parametric curve {x(i),y(i),z(i)}, i=1...n. There are 5 generally different types of data representations: simple line plot (<a href="#plot">plot</a>), line plot with filling under it (<a href="#area">area</a>), stairs plot (<a href="#step">step</a>), bar plot (<a href="#bars">bars</a>, <a href="#barh">barh</a>) and vertical lines (<a href="#stem">stem</a>). Each type of plotting has similar interface. Most of plotting type has similar interface. There are 3D version and two 2D versions. One of last requires single array. The parameters of line and marks are specified by the string argument. If the string parameter is NULL then solid line with color from palette is used (see section <a href="#Line-styles">Line styles</a>). Also there are some special 1d plots having slightly different interface: surface of curve rotation (<a href="#torus">torus</a>), chart (<a href="#chart">chart</a>) and error boxes (<a href="#error">error</a>), marks with variable size (<a href="#mark">mark</a>), tubes (<a href="#tube">tube</a>) and so on. See section <a href="mgl_en_3.html#g_t1D-plot-sample">1D plot sample</a>, for sample code and picture.
+</p>
+<p>The plots are drawn for each row if one of the data is the matrix. By any case the sizes of 1st dimension <strong>must be equal</strong> for all arrays <var>xdat.nx=ydat.nx=zdat.nx</var>. If array <var>xdat</var> is not specified then its an automatic array is used with values equidistantly distributed along x. If array <var>zdat</var> is not specified then <var>zdat</var>[i] = <var>zval</var> is used (the default is at the bottom of the bounding box). String <var>stl</var> specifies the color and style of line and marks (see section <a href="#Line-styles">Line styles</a>). By default (<code>stl=''</code>) solid line with color from palette is used (see section <a href="#Line-styles">Line styles</a>).
+</p>
+<a name="index-plot"></a>
+<p><a name="plot"></a>
+</p><dl>
+<dt><a name="index-plot-1"></a><u>MGL command:</u> <b>plot</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-plot-2"></a><u>MGL command:</u> <b>plot</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-plot-3"></a><u>MGL command:</u> <b>plot</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws continuous lines between points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. See also <a href="#area">area</a>, <a href="#step">step</a>, <a href="#stem">stem</a>, <a href="#tube">tube</a>, <a href="#mark">mark</a>, <a href="#error">error</a>, <a href="#belt">belt</a>, <a href="#tens">tens</a>. See section <a href="mgl_en_3.html#Plot-sample">Plot sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+<a name="index-radar"></a>
+<p><a name="radar"></a>
+</p><dl>
+<dt><a name="index-radar-1"></a><u>MGL command:</u> <b>radar</b><i> adat ['stl'='' <code>r=-1</code>]</i></dt>
+<dd><p>Draws radar chart which is continuous lines between points located on an radial lines (like plot in Polar coordinates). The plots are drawn for each row if one of the data is the matrix. Parameter <var>r</var> set the additional shift of data (i.e. the data <var>adat</var>+<var>r</var> is used instead of <var>adat</var>). If <code>r&lt;0</code> then <code>r=max(0, -min(adat)</code>. String <var>pen</var> specifies the color and style of line and marks (see section <a href="#Line-styles">Line styles</a>). By default (<code>stl=&quot;&quot;</code>) solid line with color from palette is used (see section <a href="#Line-styles">Line styles</a>). If <var>pen</var> containt &lsquo;<samp>#</samp>&rsquo; symbol then &quot;grid&quot; (radial lines and circle for <var>r</var>) is drawn See also <a href="#plot">plot</a>. See section <a href="mgl_en_3.html#Radar-sample">Radar sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-tens"></a>
+<p><a name="tens"></a>
+</p><dl>
+<dt><a name="index-tens-1"></a><u>MGL command:</u> <b>tens</b><i> ydat cdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tens-2"></a><u>MGL command:</u> <b>tens</b><i> xdat ydat cdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tens-3"></a><u>MGL command:</u> <b>tens</b><i> xdat ydat zdat cdat ['stl'='']</i></dt>
+<dd><p>Draws continuous lines between points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} with color defined by <var>cdat</var>[i] (look like tension plot). See also <a href="#plot">plot</a>, <a href="#mesh">mesh</a>, <a href="#fall">fall</a>. See section <a href="mgl_en_3.html#Tens-sample">Tens sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-area"></a>
+<p><a name="area"></a>
+</p><dl>
+<dt><a name="index-area-1"></a><u>MGL command:</u> <b>area</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-area-2"></a><u>MGL command:</u> <b>area</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-area-3"></a><u>MGL command:</u> <b>area</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws continuous lines between points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} and fills it down to axis (to axis plane in 3D). You can use gradient filling if number of specified colors is equal to 2*number of curves. If string contain symbol &lsquo;<samp>a</samp>&rsquo; then lines are drawn one above another (like summation). See also <a href="#plot">plot</a>, <a href="#bars">bars</a>, <a href="#stem">stem</a>, <a href="#region">region</a>. See section <a href="mgl_en_3.html#Area-sample">Area sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-region"></a>
+<p><a name="region"></a>
+</p><dl>
+<dt><a name="index-region-1"></a><u>MGL command:</u> <b>region</b><i> fdat gdat ['stl'='' <code>inside=off</code>]</i></dt>
+<dt><a name="index-region-2"></a><u>MGL command:</u> <b>region</b><i> xdat fdat gdat ['stl'='' <code>inside=off</code>]</i></dt>
+<dd><p>Fills area between curves {<var>xdat</var>[i], <var>fdat</var>[i]} and {<var>xdat</var>[i], <var>gdat</var>[i]}. Parameter  <code>inside=off</code> set to fill are with y1&lt;y&lt;y2 else the area with y2&lt;y&lt;y1 will be also filled. You can use gradient filling if number of specified colors is equal to 2*number of curves. See also <a href="#area">area</a>, <a href="#bars">bars</a>, <a href="#stem">stem</a>. See section <a href="mgl_en_3.html#Region-sample">Region sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-stem"></a>
+<p><a name="stem"></a>
+</p><dl>
+<dt><a name="index-stem-1"></a><u>MGL command:</u> <b>stem</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-stem-2"></a><u>MGL command:</u> <b>stem</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-stem-3"></a><u>MGL command:</u> <b>stem</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws vertical lines from points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} to axis (to axis plane in 3D). See also <a href="#area">area</a>, <a href="#bars">bars</a>, <a href="#plot">plot</a>, <a href="#mark">mark</a>. See section <a href="mgl_en_3.html#Stem-sample">Stem sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-bars"></a>
+<p><a name="bars"></a>
+</p><dl>
+<dt><a name="index-bars-1"></a><u>MGL command:</u> <b>bars</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-bars-2"></a><u>MGL command:</u> <b>bars</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-bars-3"></a><u>MGL command:</u> <b>bars</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws vertical bars from points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} to axis (to axis plane in 3D). If style contain symbol &lsquo;<samp>a</samp>&rsquo; then lines are drawn one above another. If string contain symbol &lsquo;<samp>f</samp>&rsquo; then waterfall chart is drawn for determining the cumulative effect of sequentially introduced positive or negative values. You can different colors for positive and negative values if number of specified colors is equal to 2*number of curves. See also <a href="#barh">barh</a>, <a href="#area">area</a>, <a href="#stem">stem</a>, <a href="#chart">chart</a>. See section <a href="mgl_en_3.html#Bars-sample">Bars sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-barh"></a>
+<p><a name="barh"></a>
+</p><dl>
+<dt><a name="index-barh-1"></a><u>MGL command:</u> <b>barh</b><i> vdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-barh-2"></a><u>MGL command:</u> <b>barh</b><i> ydat vdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws horizontal bars from points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} to y-axis. If array <var>ydat</var> is not specified then its an automatic array is used with values equidistantly distributed along y. Marks at data points are not drawn. If style contain symbol &lsquo;<samp>a</samp>&rsquo; then lines are drawn one above another. If string contain symbol &lsquo;<samp>f</samp>&rsquo; then waterfall chart is drawn for determining the cumulative effect of sequentially introduced positive or negative values. You can different colors for positive and negative values if number of specified colors is equal to 2*number of curves.
+See also <a href="#bars">bars</a>. See section <a href="mgl_en_3.html#Barh-sample">Barh sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-chart"></a>
+<p><a name="chart"></a>
+</p><dl>
+<dt><a name="index-chart-1"></a><u>MGL command:</u> <b>chart</b><i> adat ['col'='']</i></dt>
+<dd><p>The command draws colored stripes (boxes) for data in array <var>adat</var>. The number of stripes is equal to the number of rows in <var>adat</var> (equal to <var>a.ny</var>). The color of each next stripe is cyclically changed from colors specified in string <var>col</var> or in palette. Spaces in colors denote transparent &ldquo;color&rdquo;, i.e. if <var>col</var> contain space(s) then corresponding stripe(s) are not drawn. The stripe width is proportional to value of element in <var>a</var>. Chart is plotted only for data with non-negative elements. If string <var>col</var> have symbol &lsquo;<samp>#</samp>&rsquo; then black border lines are drawn. The most nice form the chart have in 3d (after rotation of coordinates) or in cylindrical coordinates (becomes so called Pie chart). See section <a href="mgl_en_3.html#Chart-sample">Chart sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-step"></a>
+<p><a name="step"></a>
+</p><dl>
+<dt><a name="index-step-1"></a><u>MGL command:</u> <b>step</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-step-2"></a><u>MGL command:</u> <b>step</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-step-3"></a><u>MGL command:</u> <b>step</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Draws continuous stairs for points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. See also <a href="#plot">plot</a>, <a href="#stem">stem</a>, <a href="#tile">tile</a>, <a href="#boxs">boxs</a>. See section <a href="mgl_en_3.html#Step-sample">Step sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-torus"></a>
+<p><a name="torus"></a>
+</p><dl>
+<dt><a name="index-torus-1"></a><u>MGL command:</u> <b>torus</b><i> zdat ['stl'='']</i></dt>
+<dt><a name="index-torus-2"></a><u>MGL command:</u> <b>torus</b><i> rdat zdat ['stl'='']</i></dt>
+<dd><p>Draws surface which is result of curve {<var>rdat</var>[i], <var>zdat</var>[i], <var>zdat</var>[i]} rotation around <a href="#axialdir">axialdir</a> axis. If array <var>rdat</var> is not specified then its an automatic array is used with values equidistantly distributed along x. See also <a href="#plot">plot</a>, <a href="#axial">axial</a>. See section <a href="mgl_en_3.html#Torus-sample">Torus sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-tube"></a>
+<p><a name="tube"></a>
+</p><dl>
+<dt><a name="index-tube-1"></a><u>MGL command:</u> <b>tube</b><i> ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-2"></a><u>MGL command:</u> <b>tube</b><i> ydat <code>rval</code> ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-3"></a><u>MGL command:</u> <b>tube</b><i> xdat ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-4"></a><u>MGL command:</u> <b>tube</b><i> xdat ydat <code>rval</code> ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-5"></a><u>MGL command:</u> <b>tube</b><i> xdat ydat zdat rdat ['stl'='']</i></dt>
+<dt><a name="index-tube-6"></a><u>MGL command:</u> <b>tube</b><i> xdat ydat zdat <code>rval</code> ['stl'='']</i></dt>
+<dd><p>Draws tube with variable radius <var>rdat</var>[i] (or <var>rval</var>) at points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. See also <a href="#plot">plot</a>. See section <a href="mgl_en_3.html#Tube-sample">Tube sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-mark"></a>
+<p><a name="mark"></a>
+</p><dl>
+<dt><a name="index-mark-1"></a><u>MGL command:</u> <b>mark</b><i> ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-mark-2"></a><u>MGL command:</u> <b>mark</b><i> xdat ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-mark-3"></a><u>MGL command:</u> <b>mark</b><i> xdat ydat zdat rdat ['stl'='']</i></dt>
+<dd><p>Draws  marks with size <var>rdat</var>[i]*<code>marksize</code> at points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. See also <a href="#plot">plot</a>, <a href="#textmark">textmark</a>, <a href="#stem">stem</a>, <a href="#error">error</a>. See section <a href="mgl_en_3.html#Mark-sample">Mark sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-textmark"></a>
+<p><a name="textmark"></a>
+</p><dl>
+<dt><a name="index-textmark-1"></a><u>MGL command:</u> <b>textmark</b><i> ydat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-2"></a><u>MGL command:</u> <b>textmark</b><i> ydat rdat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-3"></a><u>MGL command:</u> <b>textmark</b><i> xdat ydat rdat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-4"></a><u>MGL command:</u> <b>textmark</b><i> xdat ydat zdat rdat 'txt' ['stl'='']</i></dt>
+<dd><p>Draws string <var>txt</var> as marks with size <var>rdat</var>[i]*<code>marksize</code> at points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. If array <var>rdat</var> is not specified then <var>rdat</var>[i] = 1. See also <a href="#plot">plot</a>, <a href="#mark">mark</a>, <a href="#stem">stem</a>. See section <a href="mgl_en_3.html#Error-sample">Error sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-error"></a>
+<p><a name="error"></a>
+</p><dl>
+<dt><a name="index-error-1"></a><u>MGL command:</u> <b>error</b><i> ydat yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-error-2"></a><u>MGL command:</u> <b>error</b><i> xdat ydat yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-error-3"></a><u>MGL command:</u> <b>error</b><i> xdat ydat xerr yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws error boxes {<var>xerr</var>[i], <var>yerr</var>[i]} at points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zval</var>}. See also <a href="#plot">plot</a>. See section <a href="mgl_en_3.html#TextMark-sample">TextMark sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-boxplot"></a>
+<p><a name="boxplot"></a>
+</p><dl>
+<dt><a name="index-boxplot-1"></a><u>MGL command:</u> <b>boxplot</b><i> adat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-boxplot-2"></a><u>MGL command:</u> <b>boxplot</b><i> xdat adat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws boxplot (also known as a box-and-whisker diagram) at points <var>xdat</var> in plane z=<code>zval</code> (by default is at the bottom of the bounding box). This is five-number summaries of data &lt;em&gt;adat&lt;/em&gt; (minimum, lower quartile (Q1), median (Q2), upper quartile (Q3) and maximum) along second (j-th) direction. See also <a href="#plot">plot</a>, <a href="#error">error</a>, <a href="#bars">bars</a>. See section <a href="mgl_en_3.html#BoxPlot-sample">BoxPlot sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t2D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-plotting-1"></a>
+<h2 class="section">1.11 2D plotting</h2>
+
+<p>These commands perform plotting of 2D data. 2D means that data depend from 2 independent parameters like matrix <em>f(x_i,y_j), i=1...n, j=1...m</em>. There are 6 generally different types of data representations: simple mesh lines plot (<a href="#mesh">mesh</a>), surface plot (<a href="#surf">surf</a>), surface plot by boxes (<a href="#boxs">boxs</a>), surface plot by tiles (<a href="#tile">tile</a>), waterfall-like plot (<a href="#fall">fall</a>), belt plot (<a href="#belt">belt</a>), density plot (<a href="#dens">dens</a>), contour lines plot (<a href="#cont">cont</a>), solid contours plot (<a href="#contf">contf</a>) and its rotational figure (<a href="#axial">axial</a>). Commands <a href="#cont">cont</a>, <a href="#contf">contf</a> and <a href="#axial">axial</a> have variants for automatic and manual selection of level values for contours. Also there are commands for plotting data grid lines according to the data format (<a href="#grid">grid</a>) for enhancing density or contour plots. Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. See section <a href="mgl_en_3.html#g_t2D-plot-sample">2D plot sample</a>, for sample code and picture.
+</p>
+<p>String parameter <var>sch</var> sets the color scheme (see section <a href="#Color-scheme">Color scheme</a>). Previous color scheme is used by default. The minor dimensions of arrays <var>xdat</var>, <var>ydat</var>, <var>zdat</var> should be equal <code>xdat.nx=zdat.nx &amp;&amp; ydat.nx=zdat.ny</code> or <code>xdat.nx=ydat.nx=zdat.nx &amp;&amp; xdat.ny=ydat.ny=zdat.ny</code>. Arrays <var>xdat</var> and <var>ydat</var> can be vectors (not matrices as <var>zdat</var>). If array <var>xdat</var>, <var>ydat</var> is not specified then its an automatic arrays are used with values equidistantly distributed along x, y. Graphics are plotted for each z-slice of the data.
+</p>
+<a name="index-surf"></a>
+<p><a name="surf"></a>
+</p><dl>
+<dt><a name="index-surf-1"></a><u>MGL command:</u> <b>surf</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-surf-2"></a><u>MGL command:</u> <b>surf</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. See also <a href="#mesh">mesh</a>, <a href="#dens">dens</a>, <a href="#belt">belt</a>, <a href="#tile">tile</a>, <a href="#boxs">boxs</a>, <a href="#surfc">surfc</a>, <a href="#surfa">surfa</a>. See section <a href="mgl_en_3.html#Surf-sample">Surf sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-mesh"></a>
+<p><a name="mesh"></a>
+</p><dl>
+<dt><a name="index-mesh-1"></a><u>MGL command:</u> <b>mesh</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-mesh-2"></a><u>MGL command:</u> <b>mesh</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws mesh lines for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. See also <a href="#surf">surf</a>, <a href="#fall">fall</a>, <a href="#meshnum">meshnum</a>, <a href="#cont">cont</a>, <a href="#tens">tens</a>. See section <a href="mgl_en_3.html#Mesh-sample">Mesh sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-fall"></a>
+<p><a name="fall"></a>
+</p><dl>
+<dt><a name="index-fall-1"></a><u>MGL command:</u> <b>fall</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-fall-2"></a><u>MGL command:</u> <b>fall</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws fall lines for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. If <var>sch</var> contain &lsquo;<samp>x</samp>&rsquo; then lines are drawn along x-direction else (by default) lines are drawn along y-direction. See also <a href="#belt">belt</a>, <a href="#mesh">mesh</a>, <a href="#tens">tens</a>, <a href="#meshnum">meshnum</a>. See section <a href="mgl_en_3.html#Fall-sample">Fall sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-belt"></a>
+<p><a name="belt"></a>
+</p><dl>
+<dt><a name="index-belt-1"></a><u>MGL command:</u> <b>belt</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-belt-2"></a><u>MGL command:</u> <b>belt</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws belts for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. If <var>sch</var> contain &lsquo;<samp>x</samp>&rsquo; then belts are drawn along x-direction else (by default) lines are drawn along y-direction. See also <a href="#fall">fall</a>, <a href="#surf">surf</a>, <a href="#plot">plot</a>, <a href="#meshnum">meshnum</a>. See section <a href="mgl_en_3.html#Belt-sample">Belt sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-boxs"></a>
+<p><a name="boxs"></a>
+</p><dl>
+<dt><a name="index-boxs-1"></a><u>MGL command:</u> <b>boxs</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-boxs-2"></a><u>MGL command:</u> <b>boxs</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws vertical boxes for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. See also <a href="#surf">surf</a>, <a href="#dens">dens</a>, <a href="#tile">tile</a>, <a href="#step">step</a>. See section <a href="mgl_en_3.html#Boxs-sample">Boxs sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-tile"></a>
+<p><a name="tile"></a>
+</p><dl>
+<dt><a name="index-tile-1"></a><u>MGL command:</u> <b>tile</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-tile-2"></a><u>MGL command:</u> <b>tile</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws horizontal tiles for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Such plot can be used as 3d generalization of <a href="#step">step</a>. See also <a href="#surf">surf</a>, <a href="#boxs">boxs</a>, <a href="#step">step</a>, <a href="#tiles">tiles</a>. See section <a href="mgl_en_3.html#Tile-sample">Tile sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-dens"></a>
+<p><a name="dens"></a>
+</p><dl>
+<dt><a name="index-dens-1"></a><u>MGL command:</u> <b>dens</b><i> zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-dens-2"></a><u>MGL command:</u> <b>dens</b><i> xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws density plot for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var>. See also <a href="#surf">surf</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>, <a href="#boxs">boxs</a>, <a href="#tile">tile</a>, <code>dens[xyz]</code>. See section <a href="mgl_en_3.html#Dens-sample">Dens sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-cont"></a>
+<p><a name="cont"></a>
+</p><dl>
+<dt><a name="index-cont-1"></a><u>MGL command:</u> <b>cont</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-cont-2"></a><u>MGL command:</u> <b>cont</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws contour lines for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var> (or for <var>z</var>=<var>vdat</var>[k] if <code>zval=nan</code>). Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k. If string <var>stl</var> contain &rsquo;t&rsquo; (or &rsquo;T&rsquo;) symbol then contour labels will be drawn below (or above) the contours. See also <a href="#dens">dens</a>, <a href="#contf">contf</a>, <a href="#contd">contd</a>, <a href="#axial">axial</a>, <code>cont[xyz]</code>. See section <a href="mgl_en_3.html#Cont-sample">Cont sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cont-3"></a><u>MGL command:</u> <b>cont</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-cont-4"></a><u>MGL command:</u> <b>cont</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see, <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-contf"></a>
+<p><a name="contf"></a>
+</p><dl>
+<dt><a name="index-contf-1"></a><u>MGL command:</u> <b>contf</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-contf-2"></a><u>MGL command:</u> <b>contf</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws solid (or filled) contours for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var> (or for <var>z</var>=<var>vdat</var>[k] if <code>zval=nan</code>). Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k (must be <code>vdat.nx&gt;2</code>). See also <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contd">contd</a>, <code>contf[xyz]</code>. See section <a href="mgl_en_3.html#ContF-sample">ContF sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contf-3"></a><u>MGL command:</u> <b>contf</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-contf-4"></a><u>MGL command:</u> <b>contf</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see, <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-contd"></a>
+<p><a name="contd"></a>
+</p><dl>
+<dt><a name="index-contd-1"></a><u>MGL command:</u> <b>contd</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-contd-2"></a><u>MGL command:</u> <b>contd</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws solid (or filled) contours for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var> (or for <var>z</var>=<var>vdat</var>[k] if <code>zval=nan</code>) with manual colors. Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k (must be <code>vdat.nx&gt;2</code>). The color of k-th contour is <code>sch[k%strlen(sch)]</code>. See also <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>. See section <a href="mgl_en_3.html#ContD-sample">ContD sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contd-3"></a><u>MGL command:</u> <b>contd</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-contd-4"></a><u>MGL command:</u> <b>contd</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see, <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-axial"></a>
+<p><a name="axial"></a>
+</p><dl>
+<dt><a name="index-axial-1"></a><u>MGL command:</u> <b>axial</b><i> vdat zdat ['sch'='']</i></dt>
+<dt><a name="index-axial-2"></a><u>MGL command:</u> <b>axial</b><i> vdat xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Draws surface which is result of contour plot rotation surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. If string <var>sch</var> contain symbols &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo; then rotation axis <code>axialdir</code> will be set to specified direction. If string <var>sch</var> have symbol &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#cont">cont</a>, <a href="#contf">contf</a>, <a href="#torus">torus</a>, <a href="#surf3">surf3</a>. See section <a href="mgl_en_3.html#Axial-sample">Axial sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axial-3"></a><u>MGL command:</u> <b>axial</b><i> zdat ['sch'='' <code>num=3</code>]</i></dt>
+<dt><a name="index-axial-4"></a><u>MGL command:</u> <b>axial</b><i> xdat ydat zdat ['sch'='' <code>num=3</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see, <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-grad"></a>
+<p><a name="grad"></a>
+</p><dl>
+<dt><a name="index-grad-1"></a><u>MGL command:</u> <b>grad</b><i> pdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-grad-2"></a><u>MGL command:</u> <b>grad</b><i> xdat ydat pdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-grad-3"></a><u>MGL command:</u> <b>grad</b><i> xdat ydat zdat pdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Draws gradient lines for scalar field <var>pdat</var> specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j]} or {<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]}. String <var>sch</var> sets the color scheme. Previous color scheme is used by default. Number of lines is proportional to <var>num</var>. If <var>num</var>&lt;0 then lines start from borders only. See also <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#dens3">dens3</a>, <a href="#cont3">cont3</a>, <a href="#flow">flow</a>. See section <a href="mgl_en_3.html#Grad-sample">Grad sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+<a name="index-grid2"></a>
+<p><a name="grid2"></a>
+</p><dl>
+<dt><a name="index-grid2-1"></a><u>MGL command:</u> <b>grid2</b><i> zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-grid2-2"></a><u>MGL command:</u> <b>grid2</b><i> xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws grid lines for density plot of surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} at <var>z</var> = <var>zVal</var>. See also <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="g_t3D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-plotting-1"></a>
+<h2 class="section">1.12 3D plotting</h2>
+
+<p>These commands perform plotting of 3D data. 3D means that data depend from 3 independent parameters like matrix <em>f(x_i,y_j,z_k), i=1...n, j=1...m, k=1...l</em>. There are 4 generally different types of data representations: isosurface or surface of constant value (<a href="#surf3">surf3</a>), density plot at slices (Dens3), contour lines plot at slices (<a href="#cont3">cont3</a>), solid contours plot at slices (<a href="#contf3">contf3</a>) and cloud-like plot (<a href="#cloud">cloud</a>). Commands <a href="#surf3">surf3</a>, <a href="#cont3">cont3</a> and <a href="#contf3">contf3</a> have variants for automatic and manual selection of level values for surfaces/contours. Also there are commands for plotting data grid lines according to the data format (<a href="#grid3">grid3</a>) for enhancing density or contour plots. Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. See section <a href="mgl_en_3.html#g_t3D-plot-sample">3D plot sample</a>, for sample code and picture.
+</p>
+<p>String paramter <var>sch</var> sets the color scheme (see section <a href="#Color-scheme">Color scheme</a>). Previous color scheme is used by default. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). If array <var>xdat</var>, <var>ydat</var>, <var>zdat</var> is not specified then its an automatic arrays are used with values equidistantly distributed along x, y, z.
+</p>
+
+<a name="index-surf3"></a>
+<p><a name="surf3"></a>
+</p><dl>
+<dt><a name="index-surf3-1"></a><u>MGL command:</u> <b>surf3</b><i> adat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3-2"></a><u>MGL command:</u> <b>surf3</b><i> xdat ydat zdat adat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Draws isosurface plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) at <var>a</var>(x,y,z)=<var>val</var>. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#cloud">cloud</a>, <a href="#dens3">dens3</a>, <a href="#surf3c">surf3c</a>, <a href="#surf3a">surf3a</a>, <a href="#axial">axial</a>. See section <a href="mgl_en_3.html#Surf3-sample">Surf3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3-3"></a><u>MGL command:</u> <b>surf3</b><i> adat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3-4"></a><u>MGL command:</u> <b>surf3</b><i> xdat ydat zdat adat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in color range (see <a href="#caxis">caxis</a>) isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-dens3"></a>
+<p><a name="dens3"></a>
+</p><dl>
+<dt><a name="index-dens3-1"></a><u>MGL command:</u> <b>dens3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-dens3-2"></a><u>MGL command:</u> <b>dens3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Draws density plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Density is plotted at slice <var>sval</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. If string <var>stl</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. See also <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a>, <a href="#dens">dens</a>, <a href="#grid3">grid3</a>. See section <a href="mgl_en_3.html#Dens3-sample">Dens3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-densa"></a>
+<p><a name="densa"></a>
+</p><dl>
+<dt><a name="index-densa-1"></a><u>MGL command:</u> <b>densa</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-densa-2"></a><u>MGL command:</u> <b>densa</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Draws density plots at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-cont3"></a>
+<p><a name="cont3"></a>
+</p><dl>
+<dt><a name="index-cont3-1"></a><u>MGL command:</u> <b>cont3</b><i> vdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-cont3-2"></a><u>MGL command:</u> <b>cont3</b><i> vdat xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Draws contour plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Contours are plotted for values specified in array <var>vdat</var> at slice <var>sval</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. If string <var>stl</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. If string <var>stl</var> contain &rsquo;t&rsquo; (or &rsquo;T&rsquo;) symbol then contour labels will be drawn below (or above) the contours. See also <a href="#dens3">dens3</a>, <a href="#contf3">contf3</a>, <a href="#cont">cont</a>, <a href="#grid3">grid3</a>. See section <a href="mgl_en_3.html#Cont3-sample">Cont3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cont3-3"></a><u>MGL command:</u> <b>cont3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-cont3-4"></a><u>MGL command:</u> <b>cont3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see <code>caxis</code>).
+</p></dd></dl>
+
+<a name="index-conta"></a>
+<p><a name="conta"></a>
+</p><dl>
+<dt><a name="index-conta-1"></a><u>MGL command:</u> <b>conta</b><i> adat ['sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-conta-2"></a><u>MGL command:</u> <b>conta</b><i> xdat ydat zdat adat ['sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Draws contour plots at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-contf3"></a>
+<p><a name="contf3"></a>
+</p><dl>
+<dt><a name="index-contf3-1"></a><u>MGL command:</u> <b>contf3</b><i> vdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-contf3-2"></a><u>MGL command:</u> <b>contf3</b><i> vdat xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Draws solid contour plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Contours are plotted for values specified in array <var>vdat</var> at slice <var>sval</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. If string <var>stl</var> have symbol &lsquo;<samp>#</samp>&rsquo; then grid lines are drawn. See also <a href="#dens3">dens3</a>, <a href="#cont3">cont3</a>, <a href="#contf">contf</a>, <a href="#grid3">grid3</a>. See section <a href="mgl_en_3.html#ContF3-sample">ContF3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contf3-3"></a><u>MGL command:</u> <b>contf3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-contf3-4"></a><u>MGL command:</u> <b>contf3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dd><p>The same as previous one with vector <var>vdat</var> of <var>num</var>-th elements equidistantly distributed in color range (see <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-contfa"></a>
+<p><a name="contfa"></a>
+</p><dl>
+<dt><a name="index-contfa-1"></a><u>MGL command:</u> <b>contfa</b><i> adat ['sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-contfa-2"></a><u>MGL command:</u> <b>contfa</b><i> xdat ydat zdat adat ['sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Draws solid contour plots at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-grid3"></a>
+<p><a name="grid3"></a>
+</p><dl>
+<dt><a name="index-grid3-1"></a><u>MGL command:</u> <b>grid3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-grid3-2"></a><u>MGL command:</u> <b>grid3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Draws grid for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Grid is plotted at slice <var>sval</var> in <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;} direction. See also <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a>, <a href="#dens3">dens3</a>, <a href="#grid2">grid2</a>. See section <a href="mgl_en_3.html#Dens3-sample">Dens3 sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-grida"></a>
+<p><a name="grida"></a>
+</p><dl>
+<dt><a name="index-grida-1"></a><u>MGL command:</u> <b>grida</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-grida-2"></a><u>MGL command:</u> <b>grida</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Draws grids at all central slices of the 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-cloud"></a>
+<p><a name="cloud"></a>
+</p><dl>
+<dt><a name="index-cloud-1"></a><u>MGL command:</u> <b>cloud</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-cloud-2"></a><u>MGL command:</u> <b>cloud</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Draws cloud for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). This plot is a set of cubes with color and transparency proportional to value of <var>adat</var>. The resulting plot is like cloud &ndash; low value is transparent but higher ones are not. The number of plotting cells depend on <a href="#meshnum">meshnum</a>. Paramater <var>alpha</var> changes the overall transparency of plot. See also <a href="#surf3">surf3</a>. See section <a href="mgl_en_3.html#Cloud-sample">Cloud sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-beam"></a>
+<p><a name="beam"></a>
+</p><dl>
+<dt><a name="index-beam-1"></a><u>MGL command:</u> <b>beam</b><i> tr g1 g2 adat <code>rval</code> ['sch'='' <code>flag=0 num=3</code>]</i></dt>
+<dd><p>Draws  <var>num</var>-th uniformly distributed in color range (see <code>caxis</code>) isosurfaces for 3d array <var>adat</var>. This is special kind of plot for <var>adat</var> specified in accompanied coordinates along curve <var>tr</var> with orts <var>g1</var>, <var>g2</var> and with transverse scale <var>rval</var>. Variable <var>flag</var> is bitwise: &lsquo;<samp>0x1</samp>&rsquo; - draw in accompanied (not laboratory) coordinates; &lsquo;<samp>0x2</samp>&rsquo; - draw projection to <em>\rho-z</em> plane; &lsquo;<samp>0x4</samp>&rsquo; - draw normalized in each slice field. The x-size of data arrays <var>tr</var>, <var>g1</var>, <var>g2</var> must be nx&gt;2. The y-size of data arrays <var>tr</var>, <var>g1</var>, <var>g2</var> and z-size of the data array <var>a</var> must be equal. See also <a href="#surf3">surf3</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Dual-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dual-plotting-1"></a>
+<h2 class="section">1.13 Dual plotting</h2>
+
+<p>These plotting commands draw <em>two matrix</em> simultaneously. There are 5 generally different types of data representations: surface or isosurface colored by other data (<a href="#surfc">surfc</a>, <a href="#surf3c">surf3c</a>), surface or isosurface transpared by other data (<a href="#surfa">surfa</a>, <a href="#surf3a">surf3a</a>), tiles with variable size (<a href="#tiles">tiles</a>), mapping diagram (<a href="#map">map</a>), STFA diagram (<a href="#stfa">stfa</a>). Commands <a href="#surf3a">surf3a</a> and <a href="#surf3c">surf3c</a> have variants for automatic and manual selection of level values for isosurfaces. Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array.
+</p>
+<p>String paramter <var>sch</var> sets the color scheme (see section <a href="#Color-scheme">Color scheme</a>). Previous color scheme is used by default. Arrays <var>x</var>, <var>y</var>, <var>z</var> can be vectors (not 3d arrays as <var>a</var>). If array <var>xdat</var>, <var>ydat</var>, <var>zdat</var> is not specified then its an automatic arrays are used with values equidistantly distributed along x, y, z.
+</p>
+<a name="index-surfc"></a>
+<p><a name="surfc"></a>
+</p><dl>
+<dt><a name="index-surfc-1"></a><u>MGL command:</u> <b>surfc</b><i> zdat cdat ['sch'='']</i></dt>
+<dt><a name="index-surfc-2"></a><u>MGL command:</u> <b>surfc</b><i> xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Draws surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} and color it by matrix <var>cdat</var>[i,j]. See also <a href="#surf">surf</a>, <a href="#surfa">surfa</a>, <a href="#surf3c">surf3c</a>. See section <a href="mgl_en_3.html#SurfC-sample">SurfC sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-surf3c"></a>
+<p><a name="surf3c"></a>
+</p><dl>
+<dt><a name="index-surf3c-1"></a><u>MGL command:</u> <b>surf3c</b><i> adat cdat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3c-2"></a><u>MGL command:</u> <b>surf3c</b><i> xdat ydat zdat adat cdat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Draws isosurface plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) at <var>a</var>(x,y,z)=<var>val</var>. It is mostly the same as <a href="#surf3">surf3</a> command but the color of isosurface depends on values of array <var>cdat</var>. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#surf3">surf3</a>, <a href="#surfc">surfc</a>, <a href="#surf3a">surf3a</a>. See section <a href="mgl_en_3.html#Surf3C-sample">Surf3C sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3c-3"></a><u>MGL command:</u> <b>surf3c</b><i> adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3c-4"></a><u>MGL command:</u> <b>surf3c</b><i> xdat ydat zdat adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in color range (see <code>caxis</code>) isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-surfa"></a>
+<p><a name="surfa"></a>
+</p><dl>
+<dt><a name="index-surfa-1"></a><u>MGL command:</u> <b>surfa</b><i> zdat cdat ['sch'='']</i></dt>
+<dt><a name="index-surfa-2"></a><u>MGL command:</u> <b>surfa</b><i> xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Draws surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} and transparent it by matrix <var>cdat</var>[i,j]. See also <a href="#surf">surf</a>, <a href="#surfc">surfc</a>, <a href="#surf3a">surf3a</a>, <a href="#tiles">tiles</a>. See section <a href="mgl_en_3.html#SurfA-sample">SurfA sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-surf3a"></a>
+<p><a name="surf3a"></a>
+</p><dl>
+<dt><a name="index-surf3a-1"></a><u>MGL command:</u> <b>surf3a</b><i> adat cdat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3a-2"></a><u>MGL command:</u> <b>surf3a</b><i> xdat ydat zdat adat cdat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Draws isosurface plot for 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) at <var>a</var>(x,y,z)=<var>val</var>. It is mostly the same as <a href="#surf3">surf3</a> command but the transparency of isosurface depends on values of array <var>cdat</var>. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#surf3">surf3</a>, <a href="#surfa">surfa</a>, <a href="#surf3c">surf3c</a>. See section <a href="mgl_en_3.html#Surf3A-sample">Surf3A sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3a-3"></a><u>MGL command:</u> <b>surf3a</b><i> adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3a-4"></a><u>MGL command:</u> <b>surf3a</b><i> xdat ydat zdat adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Draws <var>num</var>-th uniformly distributed in color range (see <code>caxis</code>) isosurfaces for 3d data specified parametrically.
+</p></dd></dl>
+
+<a name="index-tiles"></a>
+<p><a name="tiles"></a>
+</p><dl>
+<dt><a name="index-tiles-1"></a><u>MGL command:</u> <b>tiles</b><i> zdat rdat ['sch'='']</i></dt>
+<dt><a name="index-tiles-2"></a><u>MGL command:</u> <b>tiles</b><i> xdat ydat zdat rdat ['sch'='']</i></dt>
+<dd><p>Draws horizontal tiles for surface specified parametrically {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. It is mostly the same as <a href="#tile">tile</a> but the size of tiles is determined by <var>rdat</var> array. See also <a href="#surfa">surfa</a>, <a href="#tile">tile</a>. See section <a href="mgl_en_3.html#TileS-sample">TileS sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-map"></a>
+<p><a name="map"></a>
+</p><dl>
+<dt><a name="index-map-1"></a><u>MGL command:</u> <b>map</b><i> udat vdat ['sch'='' <code>pnts=on</code>]</i></dt>
+<dt><a name="index-map-2"></a><u>MGL command:</u> <b>map</b><i> xdat ydat udat vdat ['sch'='' <code>pnts=on</code>]</i></dt>
+<dd><p>Draws mapping plot for matrixes {<var>udat</var>, <var>vdat</var> } which parametrically depend on coordinates <var>xdat</var>, <var>ydat</var>. The previous position of the cell (point) is marked by color. Height is proportional to Jacobian(udat,vdat). This plot is like Arnold diagram ???. If <code>pnts=off</code> then face is drawn otherwise the color ball at matrix knots are drawn. The size of <var>udat</var> and <var>vdat</var> must be the same. See section <a href="mgl_en_3.html#Map-sample">Map sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-stfa"></a>
+<p><a name="stfa"></a>
+</p><dl>
+<dt><a name="index-stfa-1"></a><u>MGL command:</u> <b>stfa</b><i> re im <code>dn</code> ['sch'='' <code>pnts=on</code>]</i></dt>
+<dt><a name="index-stfa-2"></a><u>MGL command:</u> <b>stfa</b><i> xdat ydat re im <code>dn</code> ['sch'='' <code>pnts=on</code>]</i></dt>
+<dd><p>Draws spectrogram of complex array <var>re</var>+i*<code>im</code> for Fourier size of <var>dn</var> points at plane <var>z=zVal</var>. Parameter <var>dn</var> is arbitrary even integer. For example in 1D case, result is density plot of data <em>res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn</em> with size {int(nx/dn), dn, ny}. See section <a href="mgl_en_3.html#STFA-sample">STFA sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+
+
+<hr size="6">
+<a name="Vector-fields"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vector-fields-1"></a>
+<h2 class="section">1.14 Vector fields</h2>
+
+<p>These commands perform plotting of 2D and 3D vector fields. There are 6 generally different types of vector fields representations: simple vector field (<a href="#vect">vect</a>), vector field by dew-drops (<a href="#dew">dew</a>), flow threads (<a href="#flow">flow</a>), flow pipes (<a href="#pipe">pipe</a>), vectors along a curve (<a href="#traj">traj</a>). Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. Parameters of color scheme are specified by the string argument. See section <a href="#Color-scheme">Color scheme</a>.
+</p>
+<p>The color is specified by the string argument <var>sch</var>. Previous color scheme is used by default. Parameter <var>flag</var> setup the hachures (arrows). It is combination of values: <code>1</code> for drawing bi-color arrow, <code>2</code> for drawing fixed length arrows, <code>4</code> for drawing arrows to the cell point, <code>8</code> for drawing arrows with center at cell point, <code>16</code> for drawing hachures with dots instead of arrows. 
+</p>
+<p>The size of <var>udat</var>, <var>vdat</var> and <var>wdat</var> must be equal. The minor dimensions of arrays <var>xdat</var>, <var>ydat</var>, <var>zdat</var> and <var>udat</var> must be equal too. Arrays <var>xdat</var>, <var>ydat</var> and <var>zdat</var> can be vectors (not matrices as <var>udat</var>). The graphics is plotted for each z slice of <var>udat</var>, <var>vdat</var> for 2D case.
+</p>
+<a name="index-traj"></a>
+<p><a name="traj"></a>
+</p><dl>
+<dt><a name="index-traj-1"></a><u>MGL command:</u> <b>traj</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan len=0</code>]</i></dt>
+<dt><a name="index-traj-2"></a><u>MGL command:</u> <b>traj</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>len=0</code>]</i></dt>
+<dd><p>Draws vectors {<var>udat</var>, <var>vdat</var>, <var>wdat</var>} along a curve <var>xdat</var>, <var>ydat</var>, <var>zdat</var>. The length and color of arrows are proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See also <code>vect</code>. See section <a href="mgl_en_3.html#Traj-sample">Traj sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-vect"></a>
+<p><a name="vect"></a>
+</p><dl>
+<dt><a name="index-vect-1"></a><u>MGL command:</u> <b>vect</b><i> udat vdat ['sch'='' <code>zval=nan flag=0</code>]</i></dt>
+<dt><a name="index-vect-2"></a><u>MGL command:</u> <b>vect</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan flag=0</code>]</i></dt>
+<dd><p>Draws plane vector field plot for the field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zval</var>. The length and color of arrows are proportional to <em>\sqrtudat^2+vdat^2</em>. The number of arrows depend on <a href="#meshnum">meshnum</a>. See also <a href="#flow">flow</a>, <a href="#dew">dew</a>, <a href="#vectc">vectc</a>. See section <a href="mgl_en_3.html#Vect-sample">Vect sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vect-3"></a><u>MGL command:</u> <b>vect</b><i> udat vdat wdat ['sch'='' <code>flag=0</code>]</i></dt>
+<dt><a name="index-vect-4"></a><u>MGL command:</u> <b>vect</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>flag=0</code>]</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the length and color of arrows are proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mgl_en_3.html#Vect-3D-sample">Vect 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-vectc"></a>
+<p><a name="vectc"></a>
+</p><dl>
+<dt><a name="index-vectc-1"></a><u>MGL command:</u> <b>vectc</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-vectc-2"></a><u>MGL command:</u> <b>vectc</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws plane vector field plot for the field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zVal</var>. The color of hachures is proportional to <em>\sqrtudat^2+vdat^2</em>. The number of hachures depend on <var>meshnum</var>. See also <code>vect, flow, pipe, dew</code>. See section <a href="mgl_en_3.html#VectC-sample">VectC sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vectc-3"></a><u>MGL command:</u> <b>vectc</b><i> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-vectc-4"></a><u>MGL command:</u> <b>vectc</b><i> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the color of hachures is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mgl_en_3.html#VectC-3D-sample">VectC 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-vectl"></a>
+<p><a name="vectl"></a>
+</p><dl>
+<dt><a name="index-vectl-1"></a><u>MGL command:</u> <b>vectl</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-vectl-2"></a><u>MGL command:</u> <b>vectl</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws plane vector field plot for the field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zVal</var>. The length of hachures is proportional to <em>\sqrtudat^2+vdat^2</em>. The number of hachures depend on <var>meshnum</var>. See also <code>vectc, flow, pipe, dew</code>. See section <a href="mgl_en_3.html#Vect-sample">Vect sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vectl-3"></a><u>MGL command:</u> <b>vectl</b><i> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-vectl-4"></a><u>MGL command:</u> <b>vectl</b><i> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the length of hachures is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mgl_en_3.html#VectL-3D-sample">VectL 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-dew"></a>
+<p><a name="dew"></a>
+</p><dl>
+<dt><a name="index-dew-1"></a><u>MGL command:</u> <b>dew</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-dew-2"></a><u>MGL command:</u> <b>dew</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws dew-drops for plane vector field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zval</var>. The color of drops is proportional to <em>\sqrtudat^2+vdat^2</em>. The number of drops depend on <a href="#meshnum">meshnum</a>. Note that this is very expensive plot in memory usage and creation time! See also <a href="#vect">vect</a>. See section <a href="mgl_en_3.html#Dew-sample">Dew sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-flow"></a>
+<p><a name="flow"></a>
+</p><dl>
+<dt><a name="index-flow-1"></a><u>MGL command:</u> <b>flow</b><i> udat vdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-flow-2"></a><u>MGL command:</u> <b>flow</b><i> xdat ydat udat vdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dd><p>Draws plane flow threads for the vector field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zVal</var>. Number of threads is proportional to <var>num</var>. The color of lines is proportional to <em>\sqrtudat^2+vdat^2</em>. Warm color corresponds to normal flow (like attractor). Cold one corresponds to inverse flow (like source). See also <code>vect, vectc, pipe</code>. See section <a href="mgl_en_3.html#Flow-sample">Flow sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-3"></a><u>MGL command:</u> <b>flow</b><i> udat vdat wdat ['sch'='' <code>num=3</code>]</i></dt>
+<dt><a name="index-flow-4"></a><u>MGL command:</u> <b>flow</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>num=3</code>]</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the color is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mgl_en_3.html#Flow-3D-sample">Flow 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-5"></a><u>MGL command:</u> <b>flow</b><i> <code>x0 y0</code> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-flow-6"></a><u>MGL command:</u> <b>flow</b><i> <code>x0 y0</code> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Draws plane flow threads for the vector field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> from point {<var>x0</var>, <var>y0</var>} at level <var>z=zVal</var>. The color of lines is proportional to <em>\sqrtudat^2+vdat^2</em>. Warm color corresponds to normal flow (like attractor). Cold one corresponds to inverse flow (like source). See also <code>vect, vectc, pipe</code>. See section <a href="mgl_en_3.html#Flow-sample">Flow sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-7"></a><u>MGL command:</u> <b>flow</b><i> <code>x0 y0 z0</code> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-flow-8"></a><u>MGL command:</u> <b>flow</b><i> <code>x0 y0 z0</code> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>Draws flow thread from point {<var>x0</var>, <var>y0</var>, <var>z0</var>}. Arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the color is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mgl_en_3.html#Flow-3D-sample">Flow 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+<a name="index-pipe"></a>
+<p><a name="pipe"></a>
+</p><dl>
+<dt><a name="index-pipe-1"></a><u>MGL command:</u> <b>pipe</b><i> udat vdat ['sch'='' <code>r0=0.05 num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-pipe-2"></a><u>MGL command:</u> <b>pipe</b><i> xdat ydat udat vdat ['sch'='' <code>r0=0.05 num=5 zval=nan</code>]</i></dt>
+<dd><p>Draws plane flow pipes for the vector field {<var>udat</var>, <var>vdat</var>} depending parametrically on coordinates <var>xdat</var>, <var>ydat</var> at level <var>z=zVal</var>. Number of pipes is proportional to <var>num</var>. The color of pipes is proportional to <em>\sqrtudat^2+vdat^2</em>. Warm color corresponds to normal flow (like attractor). Cold one corresponds to inverse flow (like source). Parameter <var>r0</var> set the base pipe radius. If <var>r0</var>&lt;0 then pipe radius is inverse proportional to amplitude. The size of <var>ax</var> and <var>ay</var> must be equal. See also <code>vect, vectc, pipe</code>. See section <a href="mgl_en_3.html#Pipe-sample">Pipe sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-pipe-3"></a><u>MGL command:</u> <b>pipe</b><i> udat vdat wdat ['sch'='' <code>r0=0.05 num=3</code>]</i></dt>
+<dt><a name="index-pipe-4"></a><u>MGL command:</u> <b>pipe</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>r0=0.05 num=3</code>]</i></dt>
+<dd><p>This is 3D version of the previous command. Here arrays <var>udat</var>, <var>vdat</var>, <var>wdat</var> must be 3-ranged tensors with equal sizes and the color is proportional to <em>\sqrtudat^2+vdat^2+wdat^2</em>. See section <a href="mgl_en_3.html#Pipe-3D-sample">Pipe 3D sample</a>, for sample code and picture.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Other-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-fields" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Other-plotting-1"></a>
+<h2 class="section">1.15 Other plotting</h2>
+
+<p>These commands perform miscelaneous plotting. There is unstructured data points plots (Dots), surface reconstruction (Crust), surfaces on the triangular mesh (TriPlot) or quadrangular mesh (QuadPlot), textual formula plotting (Plots by formula), data plots at edges (Dens[XYZ], Cont[XYZ], ContF[XYZ]), simple plot (SimplePlot). Each type of plotting has similar interface. There are 2 kind of versions which handle the arrays of data and coordinates or only single data array. Parameters of color scheme are specified by the string argument. See section <a href="#Color-scheme">Color scheme</a>.
+</p>
+<a name="index-densx"></a>
+<a name="index-densy"></a>
+<a name="index-densz"></a>
+<p><a name="densz"></a> <a name="densy"></a> <a name="densx"></a>
+</p><dl>
+<dt><a name="index-densx-1"></a><u>MGL command:</u> <b>densx</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dt><a name="index-densy-1"></a><u>MGL command:</u> <b>densy</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dt><a name="index-densz-1"></a><u>MGL command:</u> <b>densz</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dd><p>These plotting commands draw density plot in x, y or z plain. If <var>dat</var> is a tensor (3-dimensional data) then interpolation to a given <var>val</var> is performed. These commands are useful for creating projections of the 3D data array to the bounding box. See also <code>cont[xyz], contf[xyz]</code>, <a href="#dens">dens</a>. See section <a href="mgl_en_3.html#Dens-projection-sample">Dens projection sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-contx"></a>
+<a name="index-conty"></a>
+<a name="index-contz"></a>
+<p><a name="contz"></a> <a name="conty"></a> <a name="contx"></a>
+</p><dl>
+<dt><a name="index-contx-1"></a><u>MGL command:</u> <b>contx</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-conty-1"></a><u>MGL command:</u> <b>conty</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contz-1"></a><u>MGL command:</u> <b>contz</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dd><p>These plotting commands draw contour lines in x, y or z plain. If <var>dat</var> is a tensor (3-dimensional data) then interpolation to a given <var>val</var> is performed. These commands are useful for creating projections of the 3D data array to the bounding box. See also <code>dens[xyz], contf[xyz]</code>, <a href="#cont">cont</a>. See section <a href="mgl_en_3.html#Cont-projection-sample">Cont projection sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-contfx"></a>
+<a name="index-contfy"></a>
+<a name="index-contfz"></a>
+<p><a name="contfz"></a> <a name="contfy"></a> <a name="contfx"></a>
+</p><dl>
+<dt><a name="index-contfx-1"></a><u>MGL command:</u> <b>contfx</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contfy-1"></a><u>MGL command:</u> <b>contfy</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contfz-1"></a><u>MGL command:</u> <b>contfz</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dd><p>These plotting commands draw solid contours in x, y or z plain. If <var>dat</var> is a tensor (3-dimensional data) then interpolation to a given <var>val</var> is performed. These commands are useful for creating projections of the 3D data array to the bounding box. See also <code>dens[xyz], cont[xyz]</code>, <a href="#contf">contf</a>.
+</p></dd></dl>
+
+<a name="index-dots"></a>
+<p><a name="dots"></a>
+</p><dl>
+<dt><a name="index-dots-1"></a><u>MGL command:</u> <b>dots</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-dots-2"></a><u>MGL command:</u> <b>dots</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Draws the arbitrary placed points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Variable <var>adat</var>[i] set transparency for dots. See also <a href="#crust">crust</a>, <a href="#mark">mark</a>, <a href="#plot">plot</a>. See section <a href="mgl_en_3.html#Dots-sample">Dots sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-crust"></a>
+<p><a name="crust"></a>
+</p><dl>
+<dt><a name="index-crust-1"></a><u>MGL command:</u> <b>crust</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Reconstructs and draws the surface for arbitrary placed points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. See also <a href="#dots">dots</a>, <a href="#triplot">triplot</a>. See section <a href="mgl_en_3.html#Crust-sample">Crust sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-triplot"></a>
+<p><a name="triplot"></a>
+</p><dl>
+<dt><a name="index-triplot-1"></a><u>MGL command:</u> <b>triplot</b><i> idat xdat ydat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-triplot-2"></a><u>MGL command:</u> <b>triplot</b><i> idat xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-triplot-3"></a><u>MGL command:</u> <b>triplot</b><i> idat xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Draws the surface of triangles. Triangle vertexes are set by indexes <var>idat</var> of data points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. First dimensions of <var>idat</var> must be 3 or greater. See also <code>dots, crust, quadplot</code>. Parameter <var>cdat</var> set the colors of triangles (if <var>idat</var>.ny=<var>cdat</var>.nx) or colors of vertexes (if <var>xdat</var>.nx=<var>cdat</var>.nx). See also <a href="#dots">dots</a>, <a href="#crust">crust</a>, <a href="#quadplot">quadplot</a>, <a href="#tricont">tricont</a>.
+</p></dd></dl>
+
+<a name="index-tricont"></a>
+<p><a name="tricont"></a>
+</p><dl>
+<dt><a name="index-tricont-1"></a><u>MGL command:</u> <b>tricont</b><i> vdat idat xdat ydat zdat cdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tricont-2"></a><u>MGL command:</u> <b>tricont</b><i> vdat idat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tricont-3"></a><u>MGL command:</u> <b>tricont</b><i> idat xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Draws contour lines for surface of triangles at <var>z</var> = <var>zVal</var> (or for <var>z</var>=<var>vdat</var>[k] if <code>zval=nan</code>). Triangle vertexes are set by indexes <var>idat</var> of data points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Contours are plotted for <var>zdat</var>[i,j]=<var>vdat</var>[k] for all k (or <var>num</var> contours equidistantly distributed in range [<var>Cmin</var>, <var>Cmax</var>].). See also <a href="#triplot">triplot</a>, <a href="#cont">cont</a>.
+</p></dd></dl>
+
+<a name="index-quadplot"></a>
+<p><a name="quadplot"></a>
+</p><dl>
+<dt><a name="index-quadplot-1"></a><u>MGL command:</u> <b>quadplot</b><i> idat xdat ydat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-quadplot-2"></a><u>MGL command:</u> <b>quadplot</b><i> idat xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-quadplot-3"></a><u>MGL command:</u> <b>quadplot</b><i> idat xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Draws the surface of quadrangles. Quadrangle vertexes are set by indexes <var>idat</var> of data points {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. If string contain &lsquo;<samp>#</samp>&rsquo; then wire plot is produced. First dimensions of <var>idat</var> must be 4 or greater. See also <code>triplot, dots, crust</code>. Parameter <var>cdat</var> set the colors of triangles (if <var>idat</var>.ny=<var>cdat</var>.nx) or colors of vertexes (if <var>xdat</var>.nx=<var>cdat</var>.nx). See also <a href="#triplot">triplot</a>.
+</p></dd></dl>
+
+<a name="index-fplot"></a>
+<p><a name="fplot"></a>
+</p><dl>
+<dt><a name="index-fplot-1"></a><u>MGL command:</u> <b>fplot</b><i> 'y(x)' ['pen'='' <code>zval=nan num=100</code>]</i></dt>
+<dd><p>Draws command function &lsquo;<samp>y(x)</samp>&rsquo; at plane z=<var>zval</var> where &lsquo;<samp>x</samp>&rsquo; variable is changed in <code>xrange</code>. You do not need to create the data arrays to plot it. The parameter <var>num</var> set the minimal number of points along coordinate(s) for plots. See also <a href="#plot">plot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fplot-2"></a><u>MGL command:</u> <b>fplot</b><i> 'x(t)' 'y(t)' 'z(t)' ['pen'='' <code>num=100</code>]</i></dt>
+<dd><p>Draws command parametrical curve {&lsquo;<samp>x(t)</samp>&rsquo;, &lsquo;<samp>y(t)</samp>&rsquo;, &lsquo;<samp>z(t)</samp>&rsquo;} where &lsquo;<samp>t</samp>&rsquo; variable is changed in range [0, 1]. You do not need to create the data arrays to plot it. The parameter <var>num</var> set the minimal number of points along coordinate(s) for plots. See also <a href="#plot">plot</a>.
+</p></dd></dl>
+
+<a name="index-fsurf"></a>
+<p><a name="fsurf"></a>
+</p><dl>
+<dt><a name="index-fsurf-1"></a><u>MGL command:</u> <b>fsurf</b><i> 'z(x,y)' ['sch'='' <code>num=100</code>]</i></dt>
+<dd><p>Draws command surface for function &lsquo;<samp>z(x,y)</samp>&rsquo; where &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; variable are changed in <code>xrange, yrange</code>. You do not need to create the data arrays to plot it. The parameter <var>num</var> set the minimal number of points along coordinate(s) for plots. See also <a href="#surf">surf</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fsurf-2"></a><u>MGL command:</u> <b>fsurf</b><i> 'x(u,v)' 'y(u,v)' 'z(u,v)' ['sch'='' <code>num=100</code>]</i></dt>
+<dd><p>Draws command parametrical surface {&lsquo;<samp>x(u,v)</samp>&rsquo;, &lsquo;<samp>y(u,v)</samp>&rsquo;, &lsquo;<samp>z(u,v)</samp>&rsquo;} where &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo; variable are changed in range [0, 1]. You do not need to create the data arrays to plot it. The parameter <var>num</var> set the minimal number of points along coordinate(s) for plots. See also <a href="#surf">surf</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Nonlinear-fitting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-create" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-1"></a>
+<h2 class="section">1.16 Nonlinear fitting</h2>
+
+<p>These commands fit data to formula. Fitting goal is to find formula parameters for the best fit the data points, i.e. to minimize the sum <em>\sum_i (f(x_i, y_i, z_i) - a_i)^2/s_i^2</em>. At this, approximation function &lsquo;<samp>f</samp>&rsquo; can depend only on one argument &lsquo;<samp>x</samp>&rsquo; (1D case), on two arguments &lsquo;<samp>x,y</samp>&rsquo; (2D case) and on three arguments &lsquo;<samp>x,y,z</samp>&rsquo; (3D case). The command &lsquo;<samp>f</samp>&rsquo; also may depend on parameters. Normally the list of fitted parameters is specified by <var>var</var> string (like, &lsquo;<samp>abcd</samp>&rsquo;). Usually user should supply initial values for fitted parameters by <var>ini</var> variable. But if he/she don&rsquo;t supply it then the zeros are used.
+</p>
+<p>Commands <a href="#fit">fit</a> and <a href="#fits">fits</a> do not draw the obtained data themselves. They fill the data <var>out</var> by formula &lsquo;<samp>f</samp>&rsquo; with found coefficients. At this, the &lsquo;<samp>x,y,z</samp>&rsquo; coordinates are equidistantly distributed in the bounding box. Number of points in <var>out</var> is selected as maximal value of <var>out</var> size or 100. Also you may print the last formula with found coefficients by <code>putsfit</code> command. See section <a href="mgl_en_3.html#Fitting-sample">Fitting sample</a>, for sample code and picture.
+</p>
+<p>The dimensions of arrays must be at least the same as the number of specified arrays <var>xdat</var>, <var>ydat</var>, <var>zdat</var>. Also the fitting only along specified directions will be performed (for example, along x and y if only <var>xdat</var> and <var>ydat</var> are specified). If array <var>xdat</var> is not specified then its an automatic array is used with values equidistantly distributed along x.
+</p>
+
+<a name="index-fits"></a>
+<p><a name="fits"></a>
+</p><dl>
+<dt><a name="index-fits-1"></a><u>MGL command:</u> <b>fits</b><i> adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-2"></a><u>MGL command:</u> <b>fits</b><i> xdat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-3"></a><u>MGL command:</u> <b>fits</b><i> xdat ydat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-4"></a><u>MGL command:</u> <b>fits</b><i> xdat ydat zdat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dd><p>Fit data along x-, y- and z-directions for 1d-,2d- or 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) with weight factor <var>sdat</var>[i,j,k].
+</p></dd></dl>
+
+<a name="index-fit"></a>
+<p><a name="fit"></a>
+</p><dl>
+<dt><a name="index-fit-1"></a><u>MGL command:</u> <b>fit</b><i> adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-2"></a><u>MGL command:</u> <b>fit</b><i> xdat adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-3"></a><u>MGL command:</u> <b>fit</b><i> xdat ydat adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-4"></a><u>MGL command:</u> <b>fit</b><i> xdat ydat zdat adat 'func' 'var' [ini=0]</i></dt>
+<dd><p>Fit data along x-, y- and z-directions for 1d-,2d- or 3d array specified parametrically <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) with weight factor =1.
+</p></dd></dl>
+
+<a name="index-putsfit"></a>
+<p><a name="putsfit"></a>
+</p><dl>
+<dt><a name="index-putsfit-1"></a><u>MGL command:</u> <b>putsfit</b><i> <code>x y</code> ['pre'='' 'fnt'='' <code>size=-1</code>]</i></dt>
+<dd><p>Print last fitted formula with found coefficients (as numbers) at position {<var>x</var>, <var>y</var>}. The string <var>pre</var> will be printed before formula. All other parameters are the same as in <a href="#Text-printing">Text printing</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Data-create"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-filling" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-create-1"></a>
+<h2 class="section">1.17 Data create</h2>
+
+<a name="index-new"></a>
+<p><a name="new"></a>
+</p><dl>
+<dt><a name="index-new-1"></a><u>MGL command:</u> <b>new</b><i> dat [<code>nx=1 ny=1 nz=1</code>]</i></dt>
+<dd><p>Creates or recreates the array <var>dat</var> with specified size and fills it by zero. This command does nothing if one of parameters <var>nx</var>, <var>ny</var>, <var>nz</var> is zero or negative.
+</p></dd></dl>
+
+<a name="index-var"></a>
+<p><a name="var"></a>
+</p><dl>
+<dt><a name="index-var-1"></a><u>MGL command:</u> <b>var</b><i> dat <code>num v1 [v2=nan]</code></i></dt>
+<dd><p>Creates new variable with name <var>dat</var> for one-dimensional array of size <var>num</var>. Array elements are equidistantly distributed in range [<var>v1</var>, <var>v2</var>]. If <var>v2</var>=<code>nan</code> then <var>v2=v1</var> is used. 
+</p></dd></dl>
+
+<a name="index-list"></a>
+<p><a name="list"></a>
+</p><dl>
+<dt><a name="index-list-1"></a><u>MGL command:</u> <b>list</b><i> dat <code>v1 ...</code></i></dt>
+<dd><p>Creates new variable with name <var>dat</var> and fills it by numeric values of command arguments <code>v1 ...</code>. Command can create one-dimensional and two-dimensional arrays with arbitrary values. For creating 2d array the user should use delimiter &lsquo;<samp>|</samp>&rsquo; which means that the following values lie in next row. Array sizes are [maximal of row sizes * number of rows]. For example, command <code>list 1 | 2 3</code> creates the array [1 0; 2 3]. Note, that the maximal number of arguments is 1000. 
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-list-2"></a><u>MGL command:</u> <b>list</b><i> dat d1 ...</i></dt>
+<dd><p>Creates new variable with name <var>dat</var> and fills it by data values of arrays of command arguments <var>d1 ...</var>. Command can create two-dimensional or three-dimensional (if arrays in arguments are 2d arrays) arrays with arbitrary values. Minor dimensions of all arrays in arguments should be equal to dimensions of first array d1. In the opposite case the argument will be ignored. Note, that the maximal number of arguments is 1000. 
+</p></dd></dl>
+
+<a name="index-copy"></a>
+<p><a name="copy"></a>
+</p><dl>
+<dt><a name="index-copy-1"></a><u>MGL command:</u> <b>copy</b><i> dat1 dat2 ['eq'='' <code>on_axis=on</code>]</i></dt>
+<dt><a name="index-copy-2"></a><u>MGL command:</u> <b>copy</b><i> dat1 <code>val</code></i></dt>
+<dd><p>Creates new variable with name <var>dat1</var> and fills it by data values of array <var>dat2</var>. At this, if parameter <var>eq</var> is specified then the data will be modified by corresponding formula by the same way as in <a href="#fill">fill</a> command (for <code>on_axis=on</code>) or in <a href="#modify">modify</a> command (for <code>on_axis=off</code>).
+</p></dd></dl>
+
+<a name="index-idset"></a>
+<p><a name="idset"></a>
+</p><dl>
+<dt><a name="index-idset-1"></a><u>MGL command:</u> <b>idset</b><i> dat 'ids'</i></dt>
+<dd><p>Set the symbol id for data columns. The string must contain one symbol &rsquo;a&rsquo;...&rsquo;z&rsquo; per column (without spaces).
+</p></dd></dl>
+
+<a name="index-info"></a>
+<p><a name="info"></a>
+</p><dl>
+<dt><a name="index-info-1"></a><u>MGL command:</u> <b>info</b><i> dat [<code>detail=off</code>]</i></dt>
+<dd><p>Display information (sizes, maximum/minimum, momentums and so on) about the data dat. Show brief information by default (if <code>detail=off</code>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-info-2"></a><u>MGL command:</u> <b>info</b><i> 'text'</i></dt>
+<dd><p>Display <var>text</var> as information (warning).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Data-filling"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-create" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Rearrange-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-filling-1"></a>
+<h2 class="section">1.18 Data filling</h2>
+<a name="index-fill"></a>
+<a name="index-modify"></a>
+
+<a name="index-fill-1"></a>
+<p><a name="fill"></a>
+</p><dl>
+<dt><a name="index-fill-2"></a><u>MGL command:</u> <b>fill</b><i> dat v1 v2 ['dir'='x']</i></dt>
+<dd><p>Equidistantly fills the data values to range [<var>x1</var>, <var>x2</var>] in direction <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;,&lsquo;<samp>y</samp>&rsquo;,&lsquo;<samp>z</samp>&rsquo;}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fill-3"></a><u>MGL command:</u> <b>fill</b><i> dat 'eq'</i></dt>
+<dt><a name="index-fill-4"></a><u>MGL command:</u> <b>fill</b><i> dat 'eq' vdat</i></dt>
+<dt><a name="index-fill-5"></a><u>MGL command:</u> <b>fill</b><i> dat 'eq' vdat wdat</i></dt>
+<dd><p>Command fills the value of array according to the formula in string <var>eq</var>. Formula is an arbitrary expression depending  on variables &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; are supposed to be normalized in <em>bounding box</em> (in difference from <code>modify</code> commands). Variable &lsquo;<samp>u</samp>&rsquo; is the original value of the array. Variables &lsquo;<samp>v</samp>&rsquo; and &lsquo;<samp>w</samp>&rsquo; are values of <var>vdat</var>, <var>wdat</var>.
+</p></dd></dl>
+
+<a name="index-modify-1"></a>
+<p><a name="modify"></a>
+</p><dl>
+<dt><a name="index-modify-2"></a><u>MGL command:</u> <b>modify</b><i> dat 'eq' [<code>dim=0</code>]</i></dt>
+<dt><a name="index-modify-3"></a><u>MGL command:</u> <b>modify</b><i> dat 'eq' vdat</i></dt>
+<dt><a name="index-modify-4"></a><u>MGL command:</u> <b>modify</b><i> dat 'eq' vdat wdat</i></dt>
+<dd><p>Command fills the value of array according to the formula in string <var>eq</var>. Formula is an arbitrary expression depending  on variables &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;. Coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; are data indexes normalized in range [0,1]. Variable &lsquo;<samp>u</samp>&rsquo; is the original value of the array. If <var>dim</var>&gt;0 is specified then modification will be fulfilled only for slices &gt;=<var>dim</var>.
+</p></dd></dl>
+
+
+<a name="index-put"></a>
+<p><a name="put"></a>
+</p><dl>
+<dt><a name="index-put-1"></a><u>MGL command:</u> <b>put</b><i> dat <code>val [i=: j=: k=:]</code></i></dt>
+<dd><p>Function sets value(s) of array <var>dat</var>[<var>i</var>, <var>j</var>, <var>k</var>] = <var>val</var>. Negative indexes <var>i</var>, <var>j</var>, <var>k</var>=&lsquo;<samp>:</samp>&rsquo; set the value <var>val</var> to whole range in corresponding direction(s). For example, <code>put dat val : 0 :</code> sets <var>dat</var>[i,0,j]=<var>val</var> for i=0...(<var>dat</var>.nx-1), j=0...(<var>dat</var>.nz-1).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-put-2"></a><u>MGL command:</u> <b>put</b><i> dat vdat [<code>i=: j=: k=:</code>]</i></dt>
+<dd><p>Function copies value(s) from array <var>vdat</var> to the range of array <var>dat</var>. Negative indexes <var>i</var>, <var>j</var>, <var>k</var>=&lsquo;<samp>:</samp>&rsquo; set the range in corresponding direction(s). At this minor dimensions of array <var>vdat</var> should be large than corresponding dimensions of array <var>dat</var>. For example, <code>put dat v : 0 :</code> sets <var>dat</var>[i,0,j]=<var>vdat</var>.ny&gt;<var>dat</var>.nz ? <var>vdat</var>[i,j] : <var>vdat</var>[i], where i=0...(<var>dat</var>.nx-1), j=0...(<var>dat</var>.nz-1) and condition vdat.nx&gt;=dat.nx is true.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Rearrange-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-filling" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#File-I_002fO" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Rearrange-data-1"></a>
+<h2 class="section">1.19 Rearrange data</h2>
+
+<a name="index-rearrange"></a>
+<p><a name="rearrange"></a>
+</p><dl>
+<dt><a name="index-rearrange-1"></a><u>MGL command:</u> <b>rearrange</b><i> dat <code>mx [my=0 mz=0]</code></i></dt>
+<dd><p>Rearrange dimensions without changing data array so that resulting sizes should  be <var>mx</var>*<var>my</var>*<var>mz</var> &lt; nx*ny*nz. If some of parameter <var>my</var> or <var>mz</var> are zero then it will be selected to optimal fill of data array. For example, if <var>my</var>=0 then it will be change to <var>my</var>=nx*ny*nz/<var>mx</var> and <var>mz</var> will be 1.
+</p></dd></dl>
+
+<a name="index-extend"></a>
+<p><a name="extend"></a>
+</p><dl>
+<dt><a name="index-extend-1"></a><u>MGL command:</u> <b>extend</b><i> dat <code>n1 [n2=0]</code></i></dt>
+<dd><p>Increase the dimensions of the data by inserting new (|<var>n1</var>|+1)-th slices after (for <var>n1</var>&gt;0) or before (for <var>n1</var>&lt;0) of existed one. It is possible to insert 2 dimensions simultaneously for 1d data by using parameter <var>n2</var>. Data to new slices is copy from existed one. For example, for <var>n1</var>&gt;0 new array will be 
+a_ij^new = a_i^old where j=0...<var>n1</var>. Correspondingly, for <var>n1</var>&lt;0 new array will be a_ij^new = a_j^old where i=0...|<var>n1</var>|.
+</p></dd></dl>
+
+<a name="index-transpose"></a>
+<p><a name="transpose"></a>
+</p><dl>
+<dt><a name="index-transpose-1"></a><u>MGL command:</u> <b>transpose</b><i> dat ['dim'='yxz']</i></dt>
+<dd><p>Transposes (shift order of) dimensions of the data. New order of dimensions is specified int string <var>dim</var>. This command may be useful also for the reading of one-dimensional data.
+</p></dd></dl>
+
+<a name="index-squeeze"></a>
+<p><a name="squeeze"></a>
+</p><dl>
+<dt><a name="index-squeeze-1"></a><u>MGL command:</u> <b>squeeze</b><i> dat <code>rx [ry=1 rz=1 sm=off]</code></i></dt>
+<dd><p>Reduces the data size by excluding data elements which indexes are not divisible by <var>rx</var>, <var>ry</var>, <var>rz</var> correspondingly. Parameter <var>sm</var> set to use smoothing
+(i.e. out[i]=\sum_{j=i}^{i+r} a[j]/r) or not (i.e. out[i]=a[j*r]).
+</p></dd></dl>
+
+<a name="index-crop"></a>
+<p><a name="crop"></a>
+</p><dl>
+<dt><a name="index-crop-1"></a><u>MGL command:</u> <b>crop</b><i> dat <code>n1 n2</code> 'dir'</i></dt>
+<dd><p>Cuts off edges of the data <var>i</var>&lt;<var>n1</var> and <var>i</var>&gt;<var>n2</var> if <var>n2</var>&gt;0 or <var>i</var>&gt;<code>n[xyz]</code>-<var>n2</var> if <var>n2</var>&lt;=0 along direction <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-delete"></a>
+<p><a name="delete"></a>
+</p><dl>
+<dt><a name="index-delete-1"></a><u>MGL command:</u> <b>delete</b><i> dat</i></dt>
+<dd><p>Deletes variable <var>dat</var> and makes its memory free. Can be useful for huge data arrays.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-delete-2"></a><u>MGL command:</u> <b>delete</b><i> dat 'dir' <code>[pos=off num=0]</code></i></dt>
+<dd><p>Delete <var>num</var> slices along <var>dir</var>-direction at position <var>pos</var>.
+</p></dd></dl>
+
+<a name="index-insert"></a>
+<p><a name="insert"></a>
+</p><dl>
+<dt><a name="index-insert-1"></a><u>MGL command:</u> <b>insert</b><i> dat 'dir' <code>[pos=off num=0]</code></i></dt>
+<dd><p>Insert <var>num</var> slices along <var>dir</var>-direction at position <var>pos</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="File-I_002fO"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Rearrange-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Make-another-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="File-I_002fO-1"></a>
+<h2 class="section">1.20 File I/O</h2>
+
+<a name="index-read"></a>
+<p><a name="read"></a>
+</p><dl>
+<dt><a name="index-read-1"></a><u>MGL command:</u> <b>read</b><i> dat 'fname'</i></dt>
+<dd><p>Reads data from tab-separated text file with auto determining sizes of the data.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-read-2"></a><u>MGL command:</u> <b>read</b><i> dat 'fname' <code>mx [my=1 mz=1]</code></i></dt>
+<dd><p>Reads data from text file with specified data sizes. This command does nothing if one of parameters <var>mx</var>, <var>my</var> or <var>mz</var> is zero or negative.
+</p></dd></dl>
+
+<a name="index-readmat"></a>
+<p><a name="readmat"></a>
+</p><dl>
+<dt><a name="index-readmat-1"></a><u>MGL command:</u> <b>readmat</b><i> dat 'fname' [<code>dim=2</code>]</i></dt>
+<dd><p>Read data from text file with size specified at beginning of the file by first <var>dim</var> numbers. At this, variable <var>dim</var> set data dimensions.
+</p></dd></dl>
+
+<a name="index-readall"></a>
+<p><a name="readall"></a>
+</p><dl>
+<dt><a name="index-readall-1"></a><u>MGL command:</u> <b>readall</b><i> dat 'templ' <code>v1 v2 [dv=1 slice=off]</code></i></dt>
+<dd><p>Join data arrays from several text files. The file names are determined by function call <code>sprintf(fname,templ,val);</code>, where <var>val</var> changes from <var>v1</var> to <var>v2</var> with step <var>dv</var>. The data load one-by-one in the same slice if <var>slice</var>=<code>off</code> or as slice-by-slice if <var>slice</var>=<code>on</code>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-readall-2"></a><u>MGL command:</u> <b>readall</b><i> dat 'templ' <code>[slice=off]</code></i></dt>
+<dd><p>Join data arrays from several text files which filenames satisfied the template <var>templ</var> (for example, <var>templ</var>=<code>&quot;t_*.dat&quot;</code>). The data load one-by-one in the same slice if <var>slice</var>=<code>off</code> or as slice-by-slice if <var>slice</var>=<code>on</code>.
+</p></dd></dl>
+
+<a name="index-save"></a>
+<p><a name="save"></a>
+</p><dl>
+<dt><a name="index-save-1"></a><u>MGL command:</u> <b>save</b><i> dat 'fname'</i></dt>
+<dd><p>Saves the whole data array to tab-separated text file.
+</p></dd></dl>
+
+<a name="index-readhdf"></a>
+<p><a name="readhdf"></a>
+</p><dl>
+<dt><a name="index-readhdf-1"></a><u>MGL command:</u> <b>readhdf</b><i> dat 'fname' 'dname'</i></dt>
+<dd><p>Reads data array named <var>dname</var> from HDF5 or HDF4 file <var>fname</var>.
+</p></dd></dl>
+
+<a name="index-savehdf"></a>
+<p><a name="savehdf"></a>
+</p><dl>
+<dt><a name="index-savehdf-1"></a><u>MGL command:</u> <b>savehdf</b><i> dat 'fname' 'dname'</i></dt>
+<dd><p>Saves data array named <var>dname</var> from HDF5 or HDF4 file <var>fname</var>.
+</p></dd></dl>
+
+<a name="index-import"></a>
+<p><a name="import"></a>
+</p><dl>
+<dt><a name="index-import-1"></a><u>MGL command:</u> <b>import</b><i> dat 'fname' 'sch' [<code>v1=0 v2=1</code>]</i></dt>
+<dd><p>Reads data from bitmap file. The RGB values of bitmap pixels are transformed to float values in range [<var>v1</var>, <var>v2</var>] using color scheme <var>sch</var> (see section <a href="#Color-scheme">Color scheme</a>).
+</p></dd></dl>
+
+<a name="index-export"></a>
+<p><a name="export"></a>
+</p><dl>
+<dt><a name="index-export-1"></a><u>MGL command:</u> <b>export</b><i> dat 'fname' 'sch' [<code>v1=0 v2=0</code>]</i></dt>
+<dd><p>Saves data matrix to bitmap file. The data values are transformed from range [<var>v1</var>, <var>v2</var>] to RGB pixels of bitmap using color scheme <var>sch</var> (see section <a href="#Color-scheme">Color scheme</a>). If <var>v1</var>&gt;=<var>v2</var> then the values of <var>v1</var>, <var>v2</var> are automatically determined as minimal and maximal value of the data array.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Make-another-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#File-I_002fO" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Change-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Make-another-data-1"></a>
+<h2 class="section">1.21 Make another data</h2>
+
+<a name="index-combine"></a>
+<p><a name="combine"></a>
+</p><dl>
+<dt><a name="index-combine-1"></a><u>MGL command:</u> <b>combine</b><i> res adat bdat</i></dt>
+<dd><p>Returns direct multiplication of arrays (like, res[i,j] = adat[i]*bdat[j] and so on).
+</p></dd></dl>
+
+<a name="index-evaluate"></a>
+<p><a name="evaluate"></a>
+</p><dl>
+<dt><a name="index-evaluate-1"></a><u>MGL command:</u> <b>evaluate</b><i> res dat idat [<code>norm=on</code>]</i></dt>
+<dt><a name="index-evaluate-2"></a><u>MGL command:</u> <b>evaluate</b><i> res dat idat jdat [<code>norm=on</code>]</i></dt>
+<dt><a name="index-evaluate-3"></a><u>MGL command:</u> <b>evaluate</b><i> res dat idat jdat kdat [<code>norm=on</code>]</i></dt>
+<dd><p>Get array which values is result of interpolation of original array for coordinates from other arrays (for example, res[i,j]=dat[idat[i,j],jdat[i,j]]). All dimensions must be the same for data <var>idat</var>, <var>jdat</var>, <var>kdat</var>. Coordinates from <var>idat</var>, <var>jdat</var>, <var>kdat</var> are supposed to be normalized in range [0,1] (if <var>norm</var>=<code>true</code>) or in ranges [0,nx], [0,ny], [0,nz] correspondingly.
+</p></dd></dl>
+
+<a name="index-hist"></a>
+<p><a name="hist"></a>
+</p><dl>
+<dt><a name="index-hist-1"></a><u>MGL command:</u> <b>hist</b><i> res dat <code>num v1 v2 [nsub=0]</code></i></dt>
+<dt><a name="index-hist-2"></a><u>MGL command:</u> <b>hist</b><i> res dat wdat <code>num v1 v2 [nsub=0]</code></i></dt>
+<dd><p>Creates <var>num</var>-th points distribution <var>res</var> of the data values of <var>dat</var> in range [<var>v1</var>, <var>v2</var>]. Array <var>wdat</var> specifies weights of the data elements (all weight is 1 if <var>wdat</var> is not specified). Parameter <var>nsub</var> define the number of additional interpolated points (for smoothness of histogram).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-hist-3"></a><u>MGL command:</u> <b>hist</b><i> res xdat adat</i></dt>
+<dt><a name="index-hist-4"></a><u>MGL command:</u> <b>hist</b><i> res xdat ydat adat</i></dt>
+<dt><a name="index-hist-5"></a><u>MGL command:</u> <b>hist</b><i> res xdat ydat zdat adat</i></dt>
+<dd><p>Creates distribution <var>res</var> of the data values of <var>adat</var> in axis range [Min, Max]. Array <var>adat</var> look like weights of the data points.
+</p></dd></dl>
+
+
+<a name="index-momentum"></a>
+<p><a name="momentum"></a>
+</p><dl>
+<dt><a name="index-momentum-1"></a><u>MGL command:</u> <b>momentum</b><i> res dat 'how' ['dir'='z']</i></dt>
+<dd><p>Get momentum (1D-array) of the data along direction <var>dir</var>. String <var>how</var> contain kind of momentum. The momentum is defined like as
+res_k = \sum_ij how(x_i,y_j,z_k) a_ij/ \sum_ij a_ij
+if <var>var</var>=&lsquo;<samp>z</samp>&rsquo; and so on. Coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; are data indexes normalized in range [0,1].
+</p></dd></dl>
+
+<a name="index-sum"></a>
+<p><a name="sum"></a>
+</p><dl>
+<dt><a name="index-sum-1"></a><u>MGL command:</u> <b>sum</b><i> res dat 'dir'</i></dt>
+<dd><p>Gets array which is the result of summation in given direction or direction(s).
+</p></dd></dl>
+<a name="index-max"></a>
+<p><a name="max"></a>
+</p><dl>
+<dt><a name="index-max-1"></a><u>MGL command:</u> <b>max</b><i> res dat 'dir'</i></dt>
+<dd><p>Gets array which is the maximal data values in given direction or direction(s).
+</p></dd></dl>
+<a name="index-min"></a>
+<p><a name="min"></a>
+</p><dl>
+<dt><a name="index-min-1"></a><u>MGL command:</u> <b>min</b><i> res dat 'dir'</i></dt>
+<dd><p>Gets array which is the minimal data values in given direction or direction(s).
+</p></dd></dl>
+
+<a name="index-resize"></a>
+<p><a name="resize"></a>
+</p><dl>
+<dt><a name="index-resize-1"></a><u>MGL command:</u> <b>resize</b><i> res dat <code>mx [my=1 mz=1]</code></i></dt>
+<dd><p>Makes array <var>res</var> of sizes <var>mx</var>, <var>my</var>, <var>mz</var> with interpolated data of array <var>dat</var>. 
+</p></dd></dl>
+
+<a name="index-subdata"></a>
+<p><a name="subdata"></a>
+</p><dl>
+<dt><a name="index-subdata-1"></a><u>MGL command:</u> <b>subdata</b><i> res dat <code>xx [yy=: zz=:]</code></i></dt>
+<dd><p>Extracts sub-array data <var>res</var> from the original data <var>dat</var> array keeping fixed positive index. For example <code>subdata a b : 2</code> extracts 3d row (indexes are zero based), <code>subdata a b 4 :</code> extracts 5th column, <code>subdata a b : : 3</code> extracts 4th slice and so on. Note that symbol &lsquo;<samp>:</samp>&rsquo; is defined &lsquo;<samp>:</samp>&rsquo;=<code>-1</code> in MGL.
+</p></dd></dl>
+
+<a name="index-trace"></a>
+<p><a name="trace"></a>
+</p><dl>
+<dt><a name="index-trace-1"></a><u>MGL command:</u> <b>trace</b><i> res dat</i></dt>
+<dd><p>Gets array of diagonal elements <var>dat</var>[i,i] (for 2D case) or <var>dat</var>[i,i,i] (for 3D case) where i=0...nx-1. Function return copy of <var>dat</var> for 1D case. Data array must have dimensions <var>dat</var>.ny, <var>dat</var>.nz &gt;= <var>dat</var>.nx or <var>dat</var>.ny, <var>dat</var>.nz = 1.
+</p></dd></dl>
+
+<a name="index-transform"></a>
+<p><a name="transform"></a>
+</p><dl>
+<dt><a name="index-transform-1"></a><u>MGL command:</u> <b>transform</b><i> dat 'type' real imag</i></dt>
+<dd><p>Do integral transformation of complex data <var>real</var>, <var>imag</var> on specified direction. The order of transformations is specified in string <var>type</var>: first character for x-dimension, second one for y-dimension, third one for z-dimension. The possible character are: &lsquo;<samp>f</samp>&rsquo; is forward Fourier transformation, &lsquo;<samp>i</samp>&rsquo; is inverse Fourier transformation, &lsquo;<samp>s</samp>&rsquo; is Sine transform, &lsquo;<samp>c</samp>&rsquo; is Cosine transform, &lsquo;<samp>h</samp>&rsquo; is Hankel transform, &lsquo;<samp>n</samp>&rsquo; or &lsquo;<samp> </samp>&rsquo; is no transformation.
+</p></dd></dl>
+
+<a name="index-transforma"></a>
+<p><a name="transforma"></a>
+</p><dl>
+<dt><a name="index-transforma-1"></a><u>MGL command:</u> <b>transforma</b><i> dat 'type' ampl phase</i></dt>
+<dd><p>The same as previous but with specified amplitude <var>ampl</var> and phase <var>phase</var> of complex numbers.
+</p></dd></dl>
+
+<a name="index-stfad"></a>
+<p><a name="stfad"></a>
+</p><dl>
+<dt><a name="index-stfad-1"></a><u>MGL command:</u> <b>stfad</b><i> res real imag <code>dn</code> ['dir'='x']</i></dt>
+<dd><p>Short time Fourier transformation for real and imaginary parts. Output  is amplitude of partial Fourier of length <var>dn</var>. For example if <var>dir</var>=&lsquo;<samp>x</samp>&rsquo;, result will have size {int(nx/dn), dn, ny} and it will contain <em>res[i,j,k]=|\sum_d^dn exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn</em>.
+</p></dd></dl>
+
+<a name="index-pde"></a>
+<p><a name="pde"></a>
+</p><dl>
+<dt><a name="index-pde-1"></a><u>MGL command:</u> <b>pde</b><i> res 'ham' ini_re ini_im [<code>dz=0.1 k0=100</code>]</i></dt>
+<dd><p>Solves equation du/dz = i*k0*<var>ham</var>(p,q,x,y,z,|u|)[u], where p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators. Parameters <var>ini_re</var>, <var>ini_im</var> specify real and imaginary part of initial field distribution. Coordinates of the equation (and the solution) are supposed to be in the bounding box. Note, that really this ranges are increased by factor 3/2 for purpose of reducing reflection from boundaries. Parameter <var>dz</var> set the step along evolutionary coordinate z. At this moment, simplified form of function <var>ham</var> is supported &ndash; all &ldquo;mixed&rdquo; terms (like &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) are excluded. For example, in 2D case this function is effectively <em>ham = f(p,z) + g(x,z,u)</em>. However commutable combinations (like &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy) are allowed. Here variable &lsquo;<samp>u</samp>&rsquo; is used for field amplitude |u|. This allow one solve nonlinear problems &ndash; for example, for non-linear Shrodinger equation you may set <code>ham='p^2+q^2-u^2'</code>. You may specify imaginary part for wave absorption, like <code>ham = 'p^2+i*x*(x&gt;0)'</code>, but only if dependence on variable &lsquo;<samp>i</samp>&rsquo; is linear (i.e. <em>ham = hre+i*him</em>). See section <a href="mgl_en_3.html#PDE-sample">PDE sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-ray"></a>
+<p><a name="ray"></a>
+</p><dl>
+<dt><a name="index-ray-1"></a><u>MGL command:</u> <b>ray</b><i> res 'ham' <code>x0 y0 z0 p0 q0 v0 [dt=0.1 tmax=10]</code></i></dt>
+<dd><p>Solves GO ray equation like d<em>r</em>/dt = d <var>ham</var>/d<em>p</em>, d<em>p</em>/dt = -d <var>ham</var>/d<em>r</em>. This is Hamiltonian equations for particle trajectory in 3D case. Here <var>ham</var> is Hamiltonian which may depend on coordiantes &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, momentums &lsquo;<samp>p</samp>&rsquo;=px, &lsquo;<samp>q</samp>&rsquo;=py, &lsquo;<samp>v</samp>&rsquo;=pz and time &lsquo;<samp>t</samp>&rsquo;: <em>ham = H(x,y,z,p,q,v,t)</em>. The starting point (at <code>t=0</code>) is defined by variables {<var>x0</var>, <var>y0</var>, <var>z0</var>, <var>p0</var>, <var>q0</var>, <var>v0</var>}. Parameters <var>dt</var> and <var>tmax</var> specify the integration step and maximal time for ray tracing. Result is array of {x,y,z,p,q,v,t} with dimensions {7 * int(<var>tmax</var>/<var>dt</var>+1) }. See also <a href="#pde">pde</a>. See section <a href="mgl_en_3.html#Beam-tracing-sample">Beam tracing sample</a>, for sample code and picture.
+</p></dd></dl>
+
+<a name="index-qo2d"></a>
+<p><a name="qo2d"></a>
+</p><dl>
+<dt><a name="index-qo2d-1"></a><u>MGL command:</u> <b>qo2d</b><i> res 'ham' ini_re ini_im ray [<code>r=1 k0=100</code> xx=0 yy=0]</i></dt>
+<dd><p>Solves equation du/dt = i*k0*<var>ham</var>(p,q,x,y,|u|)[u], where p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators. Parameters <var>ini_re</var>, <var>ini_im</var> specify real and imaginary part of initial field distribution. Parameters <var>ray</var> set the reference ray, i.e. the ray around which the accompanied coordinate system will be maked. You may use, for example, the array created by <a href="#ray">ray</a> function. Note, that the reference ray <strong>must be</strong> smooth enough to make accompanied coodrinates unambiguity. Otherwise errors in the solution may appear. If <var>xx</var> and <var>yy</var> are non-zero then Cartesian coordinates for each point will be written into them. See section <a href="mgl_en_3.html#Beam-tracing-sample">Beam tracing sample</a>, for sample code and picture. 
+</p></dd></dl>
+
+<a name="index-jacobian"></a>
+<p><a name="jacobian"></a>
+</p><dl>
+<dt><a name="index-jacobian-1"></a><u>MGL command:</u> <b>jacobian</b><i> res xdat ydat [zdat=0]</i></dt>
+<dd><p>Computates the Jacobian for transformation {i,j,k} to {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} where initial coordinates  {i,j,k} are data indexes normalized in range [0,1]. The Jacobian is determined by formula det||<em>dr_\alpha/d\xi_\beta</em>|| where <em>r</em>={<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} and <em>\  xi</em>={i,j,k}. All dimensions must be the same for all data arrays. Data must be 3D if all 3 arrays {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} are specified or 2D if only 2 arrays {<var>xdat</var>,<var>ydat</var>} are specified.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Change-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Make-another-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Operators" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Change-data-1"></a>
+<h2 class="section">1.22 Change data</h2>
+
+<p>These commands change the data in some direction like differentiations, integrations and so on. The direction in which the change will applied is specified by the string parameter, which may contain &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo; characters for 1-st, 2-nd and 3-d dimension correspondingly.
+</p>
+<a name="index-cumsum"></a>
+<p><a name="cumsum"></a>
+</p><dl>
+<dt><a name="index-cumsum-1"></a><u>MGL command:</u> <b>cumsum</b><i> dat 'dir'</i></dt>
+<dd><p>Cumulative summation of the data in given direction or directions.
+</p></dd></dl>
+<a name="index-integrate"></a>
+<p><a name="integrate"></a>
+</p><dl>
+<dt><a name="index-integrate-1"></a><u>MGL command:</u> <b>integrate</b><i> dat 'dir'</i></dt>
+<dd><p>Integrates (like cumulative summation) the data in given direction or directions.
+</p></dd></dl>
+<a name="index-diff"></a>
+<p><a name="diff"></a>
+</p><dl>
+<dt><a name="index-diff-1"></a><u>MGL command:</u> <b>diff</b><i> dat 'dir'</i></dt>
+<dd><p>Differentiates the data in given direction or directions.
+</p></dd></dl>
+<dl>
+<dt><a name="index-diff-2"></a><u>MGL command:</u> <b>diff</b><i> dat xdat ydat [zdat=0]</i></dt>
+<dd><p>Differentiates the data <var>dat</var> specified parametrically in direction <var>xdat</var> with <var>ydat</var>, <var>zdat</var>=constant. Parameter <var>zdat</var> can be omitted that correspond to 2D case. Parametrical differentiation uses the formula (for 2D case): <em>da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j)</em> where <em>a_i=da/di, a_j=da/dj</em> denotes usual differentiation along 1st and 2nd dimensions. The similar formula is used for 3D case. Note, that you may change the order of arguments &ndash; for example, if you have 2D data a(i,j) which depend on coordinates {x(i,j), y(i,j)} then usual derivative along &lsquo;<samp>x</samp>&rsquo; will be <code>diff a x y</code> and usual derivative along &lsquo;<samp>y</samp>&rsquo; will be <code>diff a y x</code>.
+</p></dd></dl>
+
+<a name="index-diff2"></a>
+<p><a name="diff2"></a>
+</p><dl>
+<dt><a name="index-diff2-1"></a><u>MGL command:</u> <b>diff2</b><i> dat 'dir'</i></dt>
+<dd><p>Double-differentiates (like Laplace operator) the data in given direction.
+</p></dd></dl>
+
+<a name="index-sinfft"></a>
+<p><a name="sinfft"></a>
+</p><dl>
+<dt><a name="index-sinfft-1"></a><u>MGL command:</u> <b>sinfft</b><i> dat 'dir'</i></dt>
+<dd><p>Do Sine transform of the data in given direction or directions. The Sine transform is <em>\sum a_i \sin(k i)</em>.
+</p></dd></dl>
+<a name="index-cosfft"></a>
+<p><a name="cosfft"></a>
+</p><dl>
+<dt><a name="index-cosfft-1"></a><u>MGL command:</u> <b>cosfft</b><i> dat 'dir'</i></dt>
+<dd><p>Do Cosine transform of the data in given direction or directions. The Cosine transform is <em>\sum a_i \cos(k i)</em>.
+</p></dd></dl>
+<a name="index-hankel"></a>
+<p><a name="hankel"></a>
+</p><dl>
+<dt><a name="index-hankel-1"></a><u>MGL command:</u> <b>hankel</b><i> dat 'dir'</i></dt>
+<dd><p>Do Hankel transform of the data in given direction or directions. The Hankel transform is <em>\sum a_i J_0(k i)</em>.
+</p></dd></dl>
+
+
+<a name="index-swap"></a>
+<p><a name="swap"></a>
+</p><dl>
+<dt><a name="index-swap-1"></a><u>MGL command:</u> <b>swap</b><i> dat 'dir'</i></dt>
+<dd><p>Swaps the left and right part of the data in given direction (useful for Fourier spectrum).
+</p></dd></dl>
+<a name="index-roll"></a>
+<p><a name="roll"></a>
+</p><dl>
+<dt><a name="index-roll-1"></a><u>MGL command:</u> <b>roll</b><i> dat 'dir' num</i></dt>
+<dd><p>Rolls the data along direction &rsquo;dir&rsquo;. Resulting array will be out[i] = ini[(i+num)%nx] if <code>dir='x'</code>.
+</p></dd></dl>
+
+<a name="index-mirror"></a>
+<p><a name="mirror"></a>
+</p><dl>
+<dt><a name="index-mirror-1"></a><u>MGL command:</u> <b>mirror</b><i> dat 'dir'</i></dt>
+<dd><p>Mirror the left-to-right part of the data in given direction. Looks like change the value index <var>i</var>-&gt;<var>n-i</var>.
+</p></dd></dl>
+
+<a name="index-sew"></a>
+<p><a name="sew"></a>
+</p><dl>
+<dt><a name="index-sew-1"></a><u>MGL command:</u> <b>sew</b><i> dat ['dir'='xyz' <code>da=2*pi</code>]</i></dt>
+<dd><p>Remove value steps (like phase jumps after inverse trigonometric commands) with period <var>da</var> in given direction.
+</p></dd></dl>
+<a name="index-smooth"></a>
+<p><a name="smooth"></a>
+</p><dl>
+<dt><a name="index-smooth-1"></a><u>MGL command:</u> <b>smooth</b><i> data <code>type</code> ['dir'='xyz']</i></dt>
+<dd><p>Smooths the data on specified direction or directions by method <var>Type</var>. Now 4 methods are supported: &lsquo;<samp>0</samp>&rsquo; does nothing, &lsquo;<samp>1</samp>&rsquo; linear averaging by 3 points, &lsquo;<samp>2</samp>&rsquo; linear averaging by 5 points, &lsquo;<samp>3</samp>&rsquo; quadratic averaging by 5 points.
+</p></dd></dl>
+
+<a name="index-envelop"></a>
+<p><a name="envelop"></a>
+</p><dl>
+<dt><a name="index-envelop-1"></a><u>MGL command:</u> <b>envelop</b><i> dat ['dir'='x']</i></dt>
+<dd><p>Find envelop for data values along direction <var>dir</var>. Only one direction can be specified at once.
+</p></dd></dl>
+
+<a name="index-normsl"></a>
+<p><a name="normsl"></a>
+</p><dl>
+<dt><a name="index-normsl-1"></a><u>MGL command:</u> <b>normsl</b><i> dat <code>v1 v2</code> ['dir'='z' <code>keep=on sym=off</code>]</i></dt>
+<dd><p>Normalizes data slice-by-slice along direction <var>dir</var> the data in slices to range [<var>v1</var>,<var>v2</var>]. If flag <var>sym</var>=<code>on</code> then symmetrical interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used. If <var>keep</var> is set then maximal value of k-th slice will be limited by 
+<em>\sqrt\sum a_ij(k)/\sum a_ij(0)</em>.
+</p></dd></dl>
+
+<a name="index-norm"></a>
+<p><a name="norm"></a>
+</p><dl>
+<dt><a name="index-norm-1"></a><u>MGL command:</u> <b>norm</b><i> dat <code>v1 v2 [sym=off dim=0]</code></i></dt>
+<dd><p>Normalizes the data to range [<var>v1</var>,<var>v2</var>]. If flag <var>sym</var>=<code>on</code> then symmetrical interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used. Modification will be applied only for slices &gt;=<var>dim</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Operators"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Change-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Program-flow" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Operators-1"></a>
+<h2 class="section">1.23 Operators</h2>
+
+<a name="index-multo"></a>
+<p><a name="multo"></a>
+</p><dl>
+<dt><a name="index-multo-1"></a><u>MGL command:</u> <b>multo</b><i> dat dat2</i></dt>
+<dd><p>Multiplies the data by the other one for each element.
+</p></dd></dl>
+<dl>
+<dt><a name="index-multo-2"></a><u>MGL command:</u> <b>multo</b><i> dat <code>val</code></i></dt>
+<dd><p>Multiplies each element by the number.
+</p></dd></dl>
+
+<a name="index-divto"></a>
+<p><a name="divto"></a>
+</p><dl>
+<dt><a name="index-divto-1"></a><u>MGL command:</u> <b>divto</b><i> dat dat2</i></dt>
+<dd><p>Divides the data by the other one for each element.
+</p></dd></dl>
+<dl>
+<dt><a name="index-divto-2"></a><u>MGL command:</u> <b>divto</b><i> dat <code>val</code></i></dt>
+<dd><p>Divides each element by the number.
+</p></dd></dl>
+
+<a name="index-addto"></a>
+<p><a name="addto"></a>
+</p><dl>
+<dt><a name="index-addto-1"></a><u>MGL command:</u> <b>addto</b><i> dat dat2</i></dt>
+<dd><p>Adds the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-addto-2"></a><u>MGL command:</u> <b>addto</b><i> dat <code>val</code></i></dt>
+<dd><p>Adds the number to each element.
+</p></dd></dl>
+
+<a name="index-subto"></a>
+<p><a name="subto"></a>
+</p><dl>
+<dt><a name="index-subto-1"></a><u>MGL command:</u> <b>subto</b><i> dat dat2</i></dt>
+<dd><p>Subtracts the other data.
+</p></dd></dl>
+<dl>
+<dt><a name="index-subto-2"></a><u>MGL command:</u> <b>subto</b><i> dat <code>val</code></i></dt>
+<dd><p>Subtracts the number to each element.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Program-flow"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Operators" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Command-options" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Program-flow-1"></a>
+<h2 class="section">1.24 Program flow</h2>
+
+<p>These commands control program flow, like, conditions, cycles, define script arguments and so on.
+</p>
+<a name="index-chdir"></a>
+<p><a name="chdir"></a>
+</p><dl>
+<dt><a name="index-chdir-1"></a><u>MGL command:</u> <b>chdir</b><i> 'path'</i></dt>
+<dd><p>Changes the current directory to <var>path</var>.
+</p></dd></dl>
+
+<a name="index-define"></a>
+<p><a name="define"></a>
+</p><dl>
+<dt><a name="index-define-1"></a><u>MGL command:</u> <b>define</b><i> $N smth</i></dt>
+<dd><p>Sets <var>N</var>-th script argument to <var>smth</var>. Note, that <var>smth</var> is used as is (with &lsquo;<samp>'</samp>&rsquo; symbols if present). Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<dl>
+<dt><a name="index-define-2"></a><u>MGL command:</u> <b>define</b><i> name smth</i></dt>
+<dd><p>Create scalar variable <code>name</code> which have the numeric value of <code>smth</code>. Later you can use this variable as usual number. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<a name="index-defchr"></a>
+<p><a name="defchr"></a>
+</p><dl>
+<dt><a name="index-defchr-1"></a><u>MGL command:</u> <b>defchr</b><i> $N smth</i></dt>
+<dd><p>Sets <var>N</var>-th script argument to character with value evaluated from <var>smth</var>. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<a name="index-defnum"></a>
+<p><a name="defnum"></a>
+</p><dl>
+<dt><a name="index-defnum-1"></a><u>MGL command:</u> <b>defnum</b><i> $N smth</i></dt>
+<dd><p>Sets <var>N</var>-th script argument to number with value evaluated from <var>smth</var>. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<a name="index-defpal"></a>
+<p><a name="defpal"></a>
+</p><dl>
+<dt><a name="index-defpal-1"></a><u>MGL command:</u> <b>defpal</b><i> $N smth</i></dt>
+<dd><p>Sets <var>N</var>-th script argument to palette character at position evaluated from <var>smth</var>. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+
+<a name="index-call"></a>
+<p><a name="call"></a>
+</p><dl>
+<dt><a name="index-call-1"></a><u>MGL command:</u> <b>call</b><i> 'fname' [ARG1 ARG2 ... ARG9]</i></dt>
+<dd><p>Executes function <var>fname</var> (or script if function is not found). Optional arguments will be passed to functions. See also <a href="#func">func</a>.
+</p></dd></dl>
+<a name="index-func"></a>
+<p><a name="func"></a>
+</p><dl>
+<dt><a name="index-func-1"></a><u>MGL command:</u> <b>func</b><i> 'fname' [narg=0]</i></dt>
+<dd><p>Define the function <var>fname</var> and number of required arguments. The arguments will be placed in script parameters $1, $2, ... $9. Note, you should stop script execution before function definition(s) by command <a href="#stop">stop</a>. See also <a href="#return">return</a>.
+</p></dd></dl>
+<a name="index-return"></a>
+<p><a name="return"></a>
+</p><dl>
+<dt><a name="index-return-1"></a><u>MGL command:</u> <b>return</b></dt>
+<dd><p>Return from the function. See also <a href="#func">func</a>.
+</p></dd></dl>
+
+
+<a name="index-if"></a>
+<p><a name="if"></a>
+</p><dl>
+<dt><a name="index-if-1"></a><u>MGL command:</u> <b>if</b><i> dat 'cond'</i></dt>
+<dd><p>Starts block which will be executed if <var>dat</var> satisfy to <var>cond</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-if-2"></a><u>MGL command:</u> <b>if</b><i> <code>val</code></i></dt>
+<dd><p>Starts block which will be executed if <code>val</code> is nonzero.
+</p></dd></dl>
+<a name="index-elseif"></a>
+<p><a name="elseif"></a>
+</p><dl>
+<dt><a name="index-elseif-1"></a><u>MGL command:</u> <b>elseif</b><i> dat 'cond'</i></dt>
+<dd><p>Starts block which will be executed if previous <code>if</code> or <code>elseif</code> is false and <var>dat</var> satisfy to <var>cond</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-elseif-2"></a><u>MGL command:</u> <b>elseif</b><i> <code>val</code></i></dt>
+<dd><p>Starts block which will be executed if previous <code>if</code> or <code>elseif</code> is false and <code>val</code> is nonzero.
+</p></dd></dl>
+<a name="index-else"></a>
+<p><a name="else"></a>
+</p><dl>
+<dt><a name="index-else-1"></a><u>MGL command:</u> <b>else</b></dt>
+<dd><p>Starts block which will be executed if previous <code>if</code> or <code>elseif</code> is false.
+</p></dd></dl>
+<a name="index-endif"></a>
+<p><a name="endif"></a>
+</p><dl>
+<dt><a name="index-endif-1"></a><u>MGL command:</u> <b>endif</b></dt>
+<dd><p>Finishes <code>if/elseif/else</code> block.
+</p></dd></dl>
+
+<a name="index-for"></a>
+<p><a name="for"></a>
+</p><dl>
+<dt><a name="index-for-1"></a><u>MGL command:</u> <b>for</b><i> $N <code>v1 v2 [dv=1]</code></i></dt>
+<dd><p>Starts cycle with $<var>N</var>-th argument changing from <var>v1</var> to <var>v2</var> with the step <var>dv</var>. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<dl>
+<dt><a name="index-for-2"></a><u>MGL command:</u> <b>for</b><i> $N dat</i></dt>
+<dd><p>Starts cycle with $<var>N</var>-th argument changing for <var>dat</var> values. Here <var>N</var> is digit (0...9) or alpha (a...z).
+</p></dd></dl>
+<a name="index-next"></a>
+<p><a name="next"></a>
+</p><dl>
+<dt><a name="index-next-1"></a><u>MGL command:</u> <b>next</b></dt>
+<dd><p>Finishes <code>for</code> cycle.
+</p></dd></dl>
+
+<a name="index-once"></a>
+<p><a name="once"></a>
+</p><dl>
+<dt><a name="index-once-1"></a><u>MGL command:</u> <b>once</b><i> <code>val</code></i></dt>
+<dd><p>The code between <code>once on</code> and <code>once off</code> will be executed only once. Useful for large data manipulation in programs like UDAV.
+</p></dd></dl>
+<a name="index-stop"></a>
+<p><a name="stop"></a>
+</p><dl>
+<dt><a name="index-stop-1"></a><u>MGL command:</u> <b>stop</b></dt>
+<dd><p>Terminate execution.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Command-options"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Program-flow" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Suffixes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Command-options-1"></a>
+<h2 class="section">1.25 Command options</h2>
+
+<p>Command options allow the easy setup of the plot by changing of global settings only for this plot. Options are specified at the end of string. Each option is separated from the previous text by symbol &lsquo;<samp>;</samp>&rsquo;. Options work so that them remember the current settings, change settings as it being set in the option, execute command and return the original settings back. So, the options usage for data handling commands or for graphics setup commands is useless.
+</p>
+<p>The most useful options are <code>xrange, yrange, zrange</code>. They sets the boundaries for data change. This boundaries are used for automatically filled variables. So, these options allow one to change the position of some plots. For example, in command <code>plot y; xrange 0.1 0.9</code> the x coordinate will be equidistantly distributed in range 0.1 ... 0.9.
+</p>
+<p>The full list of options are:
+<a name="index-alpha-2"></a>
+<a name="index-alphadef-2"></a>
+</p><dl>
+<dt><a name="index-alpha-3"></a><u>MGL option:</u> <b>alpha</b><i> <code>val</code></i></dt>
+<dt><a name="index-alphadef-3"></a><u>MGL option:</u> <b>alphadef</b><i> <code>val</code></i></dt>
+<dd><p>Sets alpha value (transparency) of the plot. The value should be in range [0, 1]. See also <a href="#alphadef">alphadef</a>.
+</p></dd></dl>
+<a name="index-ambient-2"></a>
+<dl>
+<dt><a name="index-ambient-3"></a><u>MGL option:</u> <b>ambient</b><i> <code>val</code></i></dt>
+<dd><p>Sets brightness of ambient light for the plot. The value should be in range [0, 1]. See also <a href="#ambient">ambient</a>.
+</p></dd></dl>
+<a name="index-crange-3"></a>
+<dl>
+<dt><a name="index-crange-4"></a><u>MGL option:</u> <b>crange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Sets boundaries of color change for the plot. See also <a href="#crange">crange</a>.
+</p></dd></dl>
+<a name="index-xrange-3"></a>
+<dl>
+<dt><a name="index-xrange-4"></a><u>MGL option:</u> <b>xrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Sets boundaries of x coordinate change for the plot. See also <a href="#xrange">xrange</a>.
+</p></dd></dl>
+<a name="index-yrange-3"></a>
+<dl>
+<dt><a name="index-yrange-4"></a><u>MGL option:</u> <b>yrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Sets boundaries of y coordinate change for the plot. See also <a href="#yrange">yrange</a>.
+</p></dd></dl>
+<a name="index-zrange-3"></a>
+<dl>
+<dt><a name="index-zrange-4"></a><u>MGL option:</u> <b>zrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Sets boundaries of z coordinate change for the plot. See also <a href="#zrange">zrange</a>.
+</p></dd></dl>
+<a name="index-cut-4"></a>
+<dl>
+<dt><a name="index-cut-5"></a><u>MGL option:</u> <b>cut</b><i> <code>val</code></i></dt>
+<dd><p>Sets whether to cut or to project the plot points lying outside the bounding box. See also <a href="#cut">cut</a>.
+</p></dd></dl>
+<a name="index-fontsize"></a>
+<dl>
+<dt><a name="index-fontsize-1"></a><u>MGL option:</u> <b>fontsize</b><i> <code>val</code></i></dt>
+<dd><p>Sets the size of text. See also <a href="#font">font</a>.
+</p></dd></dl>
+<a name="index-marksize-2"></a>
+<dl>
+<dt><a name="index-marksize-3"></a><u>MGL option:</u> <b>marksize</b><i> <code>val</code></i></dt>
+<dd><p>Sets the size of marks. See also <a href="#marksize">marksize</a>.
+</p></dd></dl>
+<a name="index-meshnum-2"></a>
+<dl>
+<dt><a name="index-meshnum-3"></a><u>MGL option:</u> <b>meshnum</b><i> <code>val</code></i></dt>
+<dd><p>Work like <a href="#meshnum">meshnum</a> command.
+</p></dd></dl>
+<a name="index-legend-3"></a>
+<dl>
+<dt><a name="index-legend-4"></a><u>MGL option:</u> <b>legend</b><i> 'txt'</i></dt>
+<dd><p>Adds string &rsquo;txt&rsquo; to internal legend accumulator. The style of described line and mark is taken from arguments of the last <a href="#g_t1D-plotting">1D plotting</a> command. See also <a href="#legend">legend</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Suffixes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Command-options" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Utilities" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Suffixes-for-variable"></a>
+<h2 class="section">1.26 Suffixes for variable</h2>
+
+<p>Suffixes can get some numerical value (like its size, maximal or minimal value, the sum of elements and so on) of the data array in variable and use it later as usual number in command arguments. The suffixes start from point &lsquo;<samp>.</samp>&rsquo; right after (without spaces) variable name or its sub-array. For example, <code>a.nx</code> give the x-size of data <var>a</var>, <code>b(1).max</code> give maximal value of second row of variable <var>b</var>, <code>(c(:,0)^2).sum</code> give the sum of squares of elements in the first column of <var>c</var> and so on.
+</p>
+<p>The full list of suffixes are:
+</p><dl compact="compact">
+<dt> <strong>nx, ny, nz</strong></dt>
+<dd><p>Give the data size in x-, y-, z-direction correspondingly.
+</p></dd>
+<dt> <strong>max</strong></dt>
+<dd><p>Give maximal value of the data.
+</p></dd>
+<dt> <strong>min</strong></dt>
+<dd><p>Give minimal value of the data.
+</p></dd>
+<dt> <strong>sum</strong></dt>
+<dd><p>Give sum of data values.
+</p></dd>
+<dt> <strong>a</strong></dt>
+<dd><p>Give first value of data array.
+</p></dd>
+<dt> <strong>fst</strong></dt>
+<dd><p>Give first nonzero value of data array.
+</p></dd>
+<dt> <strong>lst</strong></dt>
+<dd><p>Give last nonzero value of data array.
+</p></dd>
+<dt> <strong>mx, my, mz</strong></dt>
+<dd><p>Give x-, y-, z-position of data maximum.
+</p></dd>
+<dt> <strong>ax, ay, az, aa</strong></dt>
+<dd><p>Give x-, y-, z-position of data mass center or average data value.
+</p></dd>
+<dt> <strong>wx, wy, wz, wa</strong></dt>
+<dd><p>Give width in x-, y-, z-direction or data dispersion value.
+</p></dd>
+<dt> <strong>sx, sy, sz, sa</strong></dt>
+<dd><p>Give skewness in x-, y-, z-direction or data skewness value.
+</p></dd>
+<dt> <strong>kx, ky, kz, ka</strong></dt>
+<dd><p>Give kurtosis in x-, y-, z-direction or data kurtosis value.
+</p></dd>
+</dl>
+
+<hr size="6">
+<a name="Utilities"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Suffixes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Utilities-for-parsing-MGL"></a>
+<h2 class="section">1.27 Utilities for parsing MGL</h2>
+
+<p>MathGL library provides several tools for parsing MGL scripts. There is tools saving it to bitmap (<code>mgl2png</code>, <code>mgl2gif</code>) or vectorial (<code>mgl2eps</code>, <code>mgl2svg</code>) images. Tool <code>mglview</code> show MGL script and allow to rotate and setup the image. Also you can translate MGL script to C++ file by help of <code>mgl2cpp</code> tool.
+</p>
+<p>All of this tools have similar set of arguments. First argument is name of script file, next argument is optional output file name, last arguments are options. There are options for setting script parameters (it is <code>$0, $1, ... $9</code>) and locale settings. The script parameters have format &lsquo;<samp>-Nval</samp>&rsquo;. Here N=0,1...9 is parameter ID and val is its value. For example, option &lsquo;<samp>-1test</samp>&rsquo; set to substitute &lsquo;<samp>test</samp>&rsquo; instead of <code>$1</code> in the script. Option -Lval set locale to val. For example, &lsquo;<samp>-Lutf8</samp>&rsquo; will set UTF-8 locale for script.
+</p>
+<p>Additionally you can create animated GIF file or a set of JPEG files with names &lsquo;<samp>frameNNNN.jpg</samp>&rsquo; (here &lsquo;<samp>NNNN</samp>&rsquo; is frame index). You should use <code>mgl2gif</code> tool and specify the values of <code>$0</code> parameter for making animation. Values of the parameter <code>$0</code> can be specified inside the script by comment <code>##a val</code> for each value <code>val</code> (one comment for one value) or by option(s) &lsquo;<samp>-Aval</samp>&rsquo;. Also you can specify a cycle for animation by comment <code>##c v1 v2 dv</code> or by option <code>-Cn1:n2</code>. Tool <code>mgl2gif</code> will execute script several times (once for each specified value of <code>$0</code>) and save result in animated GIF file. For saving each frame in JPEG just add command <code>write ''</code> at the end of the script.
+</p>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mgl_en.html/mgl_en_2.html b/texinfo/mgl_en.html/mgl_en_2.html
new file mode 100644
index 0000000..2e91670
--- /dev/null
+++ b/texinfo/mgl_en.html/mgl_en_2.html
@@ -0,0 +1,1298 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: 2. MathGL examples</title>
+
+<meta name="description" content="MGL script language for version 1.11: 2. MathGL examples">
+<meta name="keywords" content="MGL script language for version 1.11: 2. MathGL examples">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Examples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_1.html#Utilities" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en_1.html#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL-examples"></a>
+<h1 class="chapter">2. MathGL examples</h1>
+
+<p>This chapter contain information about basic and advanced MathGL, hints and samples for all types of graphics. I recommend you read first 2 sections one after another and at least look on &ldquo;Hints&rdquo; section. Also I recommend you to look at <a href="mgl_en_1.html#General-concepts">General concepts</a>. Sample code for some of these examples can be found in <a href="http://mathgl.sf.net/pictures.html">http://mathgl.sf.net/pictures.html</a> and in <a href="mgl_en_3.html#Samples">Samples</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Basic-usage">2.1 Basic usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Advanced-usage">2.2 Advanced usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-handling">2.3 Data handling</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-plotting">2.4 Data plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Hints">2.5 Hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Basic-usage"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Examples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Basic-usage-1"></a>
+<h2 class="section">2.1 Basic usage</h2>
+
+<p>MGL script can be used by several manners. Each has positive and negative sides:
+</p><ul>
+<li>
+<em>The using of MGL in UDAV.</em>
+
+<p>Positive side is the possibility to view the plot at once and to modify it, rotate, zoom or switch on transparency or lighting) by hand or by mouse. Negative sides are: the need of X-terminal.
+</p>
+</li><li>
+<em>Direct writing to file in bitmap or vector format without creation of graphical window.</em>
+
+<p>Positive aspects are: batch processing of similar data set, for example, a set of resulting data files for different calculation parameters), running from the console program, including the cluster calculation), fast and automated drawing, saving pictures for further analysis, or demonstration). Negative sides are: the usage of the external program for picture viewing. Also, the data plotting is non-visual. So, you have to imagine the picture, view angles, lighting and so on) before the plotting. I recommend to use graphical window for determining the optimal parameters of plotting on the base of some typical data set. And later use these parameters for batch processing in console program.
+</p>
+<p>In this case you can use a set of programs: <code>mgl2png</code>, <code>mgl2gif</code>, <code>mgl2eps</code>, <code>mgl2svg</code> or <code>mglview</code> for viewing.
+</p></li></ul>
+
+<p>The simplest script is
+</p><pre class="verbatim">box         # draw bounding box
+axis        # draw axis
+fplot 'x^3' # draw some function
+</pre>
+<p>Just type it in UDAV and press F5. Also you can save it in text file &lsquo;<samp>test.mgl</samp>&rsquo; and type in the console <code>mgl2png test.mgl</code> what produce file &lsquo;<samp>test.mgl.png</samp>&rsquo; with resulting picture.
+</p>
+<hr size="6">
+<a name="Advanced-usage"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Basic-usage" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Subplots" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Advanced-usage-1"></a>
+<h2 class="section">2.2 Advanced usage</h2>
+
+<p>Now I show several non-obvious features of MGL: several subplots in a single picture, curvilinear coordinates, text printing and so on. Generally you may miss this section at first reading, but I don&rsquo;t recommend it.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Subplots">2.2.1 Subplots</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-grids">2.2.2 Axis and grids</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Curvilinear-coordinates">2.2.3 Curvilinear coordinates</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing-example">2.2.4 Text printing example</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Subplots"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Advanced-usage" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-grids" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Subplots-1"></a>
+<h3 class="subsection">2.2.1 Subplots</h3>
+
+<p>Let me demonstrate possibilities of axes transformation. MathGL has the following functions: <code>SubPlot</code>, <code>InPlot</code>, <code>Aspect</code> and <code>Rotate</code>, see section <a href="mgl_en_1.html#Transformation-matrix">Transformation matrix</a>). The order of their calling is strictly determined. First, one changes the position of axes in image area, functions <code>SubPlot</code> and <code>InPlot</code>). After that one may rotate the plot, function <code>Rotate</code>). Finally, one may change aspects of axes, function <code>Aspect</code>). The following code illustrates the aforesaid it:
+</p><pre class="verbatim">subplot 2 2 0:box
+text -1 1.1 'Just box' 'L'
+inplot 0.2 0.5 0.7 1:box
+text 0 1.2 'Inplot example'
+
+subplot 2 2 1
+rotate 60 40:aspect 1 1 1
+box:text 1 1 1.5 'rotate only' 'R'
+
+subplot 2 2 2
+rotate 60 40:aspect 1 1 2
+box:text 0 0 2 'aspect and rotate'
+
+subplot 2 2 3
+rotate 60 40:aspect 1 2 2
+box:text 0 0 1.5 'Aspect in other direction'
+</pre><p>Here I used function <code>text</code> for printing the text in arbitrary position of picture, see section <a href="mgl_en_1.html#Text-printing">Text printing</a>). Text coordinates and size are connected with axes. However, text coordinates may be everywhere, including the outside the bounding box. I shall show its features later in See section <a href="#Text-printing-example">Text printing example</a>.
+</p>
+<p>Note that several commands can be placed in a string if they are separated by &lsquo;<samp>:</samp>&rsquo; symbol.
+</p>
+<div class="float">
+<img src="../png/sample1.png" alt="../png/sample1">
+
+</div><p><strong>Example of several subplots on the single picture.
+</strong>
+</p>
+<hr size="6">
+<a name="Axis-and-grids"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Subplots" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Curvilinear-coordinates" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-and-grids-1"></a>
+<h3 class="subsection">2.2.2 Axis and grids</h3>
+
+<p>MathGL library can draw not only the bounding box but also the axes, grids, labels and so on. The limits of axes and their origin (the point of intersection) are determined by function <code>axis</code>. Also you can use <code>xrange, yrange, zrange</code> functions (see section <a href="mgl_en_1.html#Axis-settings">Axis settings</a>). Ticks on axis are specified by functions <code>xtick, ytick, ztick, ttick</code>. First argument the direction for each change will be applied. Second argument gives the step between ticks (if positive) or gives the number of ticks on the axis (if negative) or set to use logarithmic ticks (if zero). Third argument gives numbers of sub-ticks between ticks (default is zero). Last argument define the initial ticks position.
+</p>
+<p>Function <code>Axis</code> draws axes. Its textual string shows in which directions the axis or axes will be drawn (by default <code>'xyz'</code>, function draws axes in all directions). Function <code>Grid</code> draws grid perpendicularly to specified directions. Example of axes and grid drawing is:
+</p><pre class="verbatim">subplot 2 2 0
+xtick 0.4 3     # sets tick step to 0.5
+ytick 0.4 3     # and draws 3 subticks
+box             # should be after the ticks change
+axis 'xy': grid
+text 0 1.3 1 'axis and grid'
+
+xtick -5: ytick -5  # restore back
+subplot 2 2 1:rotate 60 40
+origin 0 0 0
+axis
+xlabel 'x' 1
+ylabel 'y' 1
+zlabel 'z' 1
+text 0 0 1.5 'axis and labels'
+
+subplot 2 2 2:rotate 60 40
+xtick 0.2: ytick 0.2: ztick 0.2 # too low step of ticks
+origin -1 -1 -1
+axis:grid
+text 0 0 1.5 'shift origin and add grid'
+text 0 0 1.2 '(note, too many ticks)'
+
+subplot 2 2 3:rotate 60 40
+xtick -6: ytick -6  # decrease the number of ticks
+axis 'yz'
+ylabel 'y axis'
+zlabel 'z axis'
+text 0 0 1.5 'remove x axis, and'
+text 0 0 1.2 'decrease number of ticks'
+</pre>
+<p>This example shows the importance of the correct choosing of the number of ticks on axis. If tick step is too small then its text may overlap and becomes unreadable. This code has the example of <code>Label</code> function. It draws label for axis in specified direction. The text position on axis is specified by third argument of <code>Label</code> function. If it is positive then then text is drawn near the axis maximum, if negative then the same takes place near the minimum of axis, if zero - then at the center of axis.
+</p>
+<div class="float">
+<img src="../png/sample2.png" alt="../png/sample2">
+
+</div><p><strong>Example of setting up axis range and axis ticks.
+</strong>
+</p>
+<hr size="6">
+<a name="Curvilinear-coordinates"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-grids" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing-example" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Curvilinear-coordinates-1"></a>
+<h3 class="subsection">2.2.3 Curvilinear coordinates</h3>
+
+
+<p>Now let use curvilinear coordinates. In difference from other systems of plot creation, MathGL uses textual formulas for connection of the old (data) and new (output) coordinates. This allows one to plot in arbitrary coordinates. The following code plots the line <var>y</var>=0, <var>z</var>=0 in Cartesian, polar, parabolic and spiral coordinates:
+</p><pre class="verbatim">new x 50: new y 50: new z 50
+fill y 0.5 0.5: fill x -1 1 # creates data arrays
+origin -1 1 -1
+
+subplot 2 2 0:rotate 60 40
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'cartesian'
+
+subplot 2 2 1:rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'cylindrical'
+
+subplot 2 2 2:rotate 60 40
+axis '2*y*x' 'y*y - x*x' ''
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'parabolic'
+
+subplot 2 2 3:rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'spiral'
+</pre>
+<div class="float">
+<img src="../png/sample3.png" alt="../png/sample3">
+
+</div><p><strong>Example of curvilinear coordinates
+</strong>
+</p>
+
+<hr size="6">
+<a name="Text-printing-example"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Curvilinear-coordinates" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-printing-example-1"></a>
+<h3 class="subsection">2.2.4 Text printing example</h3>
+
+<p>MathGL prints text by vector font. There are functions for manual specifying of text position (like <code>Puts</code>) and for its automatic selection (like <code>Label</code>, <code>legend</code> and so on). MathGL prints text always in specified position even if it lies outside the bounding box. The default size of font is specified by command <var>fontsize</var>. However, the actual size of output string depends on position of axes (depends on functions <code>SubPlot</code>, <code>InPlot</code>). The switching of the font style (italic, bold, wire and so on) can be done for the whole string (by function parameter) or inside the string. By default MathGL parses TeX-like commands for symbols and indexes (see see section <a href="mgl_en_1.html#Font-styles">Font styles</a>). Example of MathGL font drawing is:
+</p><pre class="verbatim">text 0 1 'Text can be in ASCII and in Unicode'
+text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
+text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
+text 0 -0.2 'Easy to \a{overline} or \u{underline}'
+text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
+text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
+</pre>
+<div class="float">
+<img src="../png/sample4.png" alt="../png/sample4">
+
+</div><p><strong>Example of text printing with different font effects
+</strong>
+</p>
+<p>Another example demonstrate the features of TeX formula parsing.
+</p><pre class="verbatim">text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}', 0, -4
+</pre>
+<div class="float">
+<img src="../png/samplee.png" alt="../png/samplee">
+
+</div><p><strong>Example of TeX formula parsing
+</strong>
+</p>
+
+<hr size="6">
+<a name="Data-handling"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing-example" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Array-creation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-handling-1"></a>
+<h2 class="section">2.3 Data handling</h2>
+
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Array-creation">2.3.1 Array creation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-changing">2.3.2 Data changing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Array-creation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-handling" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-changing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Array-creation-1"></a>
+<h3 class="subsection">2.3.1 Array creation</h3>
+
+<p>One can put numbers into the data instance by several ways. Let us do it for sinus function:
+</p><ul>
+<li>
+one can create array by <code>list</code> command
+<pre class="verbatim">list a 0 0.04 0.16 0.36 0.64 1
+</pre>
+</li><li>
+another way is to copy from &ldquo;inline&rdquo; array
+<pre class="verbatim">copy a [0,0.04,0.16,0.36,0.64,1]
+</pre>
+</li><li>
+next way is to fill the data by textual formula with the help of <code>modify</code> function
+<pre class="verbatim">new a 6
+modify a 'x^2'
+</pre>
+</li><li>
+or one may fill the array in some interval and modify it later
+<pre class="verbatim">new a 6
+fill a 0 1
+modify a 'u^2'
+</pre>
+</li><li>
+or fill the array using current axis range
+<pre class="verbatim">new a 6
+fill a '(x+1)^2/4'
+</pre>
+</li><li>
+finally it can be loaded from file
+<pre class="verbatim">new s 6: modify s 'x^2'
+save s 'sqr.dat'    # create file first
+read a 'sqr.dat'    # load it
+</pre>
+</li><li>
+at this one can read only part of data
+<pre class="verbatim">new s 6: modify s 'x^2'
+save s 'sqr.dat'    # create file first
+read a 'sqr.dat' 5  # load it
+</pre></li></ul>
+
+<p>Creation of 2d- and 3d-arrays is mostly the same. One can use direct data filling by <code>list</code> command
+</p><pre class="verbatim">list a 11 12 13 | 21 22 23 | 31 32 33
+</pre><p>or by inline arrays
+</p><pre class="verbatim">copy a [[11,12,13],[21,22,23],[31,32,33]]
+</pre><p>Also data can be filled by formula
+</p><pre class="verbatim">new z 30 40
+fill z 'sin(pi*x)*cos(pi*y)'
+</pre><p>or loaded from file.
+</p>
+<p>The only non-obvious thing here is using multidimensional arrays in C/C++, i.e. arrays defined like <code>float dat[40][30];</code>. Since, formaly this arrays element <code>dat[i]</code> can address the memory in arbitrary place you should use the proper function to convert such arrays to <code>mglData</code> object. For C++ this is functions like <code>mglData::Set(float **dat, int N1, int N2</code>. For C this is functions like <code>mgl_data_set_float2(HMDT d, const float **dat, int N1, int N2</code>. At this, you should keep in mind that <code>nx=N2</code> and <code>ny=N1</code> after conversion.
+</p>
+<hr size="6">
+<a name="Data-changing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Array-creation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-changing-1"></a>
+<h3 class="subsection">2.3.2 Data changing</h3>
+
+<p>MathGL has functions for data processing: differentiating, integrating, smoothing and so on. Let us consider some examples. The simplest ones are integration and differentiation. The direction in which operation will be performed is specified by textual string, which may contain symbols &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo;. For example, the call of <code>diff a 'x'</code> will differentiate data along &lsquo;<samp>x</samp>&rsquo; direction; the call of <code>integrate a 'xy'</code> perform the double integration of data along &lsquo;<samp>x</samp>&rsquo; and &lsquo;<samp>y</samp>&rsquo; directions; the call of <code>diff2 a 'xyz'</code> will apply 3d Laplace operator to data and so on. Example of this operations on 2d array a=x*y is presented in code:
+</p><pre class="verbatim">new a 30 40: modify a 'x*y'
+axis 0 0 0 1 1 1
+subplot 2 2 0:rotate 60 40
+surf a: box
+text 0.7 1 1.2 'a(x,y)'
+subplot 2 2 1:rotate 60 40
+diff a 'x': surf a: box
+text 0.7 1 1.2 'da/dx'
+subplot 2 2 2:rotate 60 40
+integrate a 'xy': surf a: box
+text 0.7 1 1.2 '\int da/dx dxdy'
+subplot 2 2 3:rotate 60 40
+diff2 a 'y': surf a: box
+text 0.7 1 1.2 '\int {d^2}a/dxdy dx'
+</pre>
+<div class="float">
+<img src="../png/sample6.png" alt="../png/sample6">
+
+</div><p><strong>Example of data differentiation and integration
+</strong>
+</p>
+<p>Data smoothing (function <code>Smooth</code>) is more interesting and important. This function has 2 main arguments: type of smoothing and its direction. Now 4 methods are supported: <code>0</code> does nothing for delta=0 or approaches data to zero with the step delta, <code>1</code> linear averaging by 3 points, <code>2</code> linear averaging by 5 points, <code>3</code> quadratic averaging by 5 points. Let me demonstrate it for 1d case:
+</p><pre class="verbatim">new y0 30
+modify y0 '0.4*sin(2*pi*x)+0.3*cos(3*pi*x)-0.4*sin(4*pi*x)+0.2*rnd'
+copy y1 y0: smooth y1 1
+copy y2 y0: smooth y2 2
+copy y3 y0: smooth y3 3
+
+plot y0 'k': addlegend 'none' 'k'
+plot y1 'r': addlegend 'line 3' 'r'
+plot y2 'g': addlegend 'line 5' 'g'
+plot y3 'b': addlegend 'quad 5' 'b'
+legend: box
+</pre>
+<div class="float">
+<img src="../png/sample7.png" alt="../png/sample7">
+
+</div><p><strong>Example of data smoothing
+</strong>
+</p>
+<p>Finally one can create new data arrays on base of the existing one: extract slice, row or column of data (<code>SubData</code>), summarize along some of direction(s) (<code>Sum</code>), find distribution of data elements (<code>Hist</code>). Note, that all these functions are not thread-safe because they use static internal variable for output array. In particular, the using of several of them in arguments of the same function will lead to unpredictable result.
+</p>
+<hr size="6">
+<a name="Data-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-changing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-1D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-plotting-1"></a>
+<h2 class="section">2.4 Data plotting</h2>
+
+<p>Let me now show how to plot the data. MathGL generally has 2 types of plotting functions. Simple variant requires a single data array for plotting, other data (coordinates) are considered uniformly distributed in interval <var>Min</var>*<var>Max</var>. Second variant requires data arrays for all coordinates. It allows one to plot rather complex multivalent curves and surfaces (in case of parametric dependencies). Argument setting to default values allows one to plot data in standard form. Manual arguments setting gives possibility for fine tuning of colors, positions and view of graphics. Note, that the call of drawing function adds something to picture but does not clear the previous plots (as it does in Matlab). Another difference from Matlab is that all setup (like transparency, lightning, axis borders and so on) must be specified <strong>before</strong> plotting functions.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plots-for-1D-data">2.4.1 Plots for 1D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-for-2D-data">2.4.2 Plots for 2D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-for-3D-data">2.4.3 Plots for 3D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surface-transparency">2.4.4 Surface transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Plots-for-1D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-2D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-1D-data-1"></a>
+<h3 class="subsection">2.4.1 Plots for 1D data</h3>
+
+<p>Term &ldquo;1D data&rdquo; means that data depend on single index (parameter) like curve in parametric form {x(i),y(i),z(i)}, i=1...n. There are 5 generally different types of data representations: simple line plot, line plot with filling under it, stairs plot, bar plot and vertical lines (see section <a href="mgl_en_1.html#g_t1D-plotting">1D plotting</a>). Each type of plotting has similar interface. There are 3D version and two 2D versions. One of last requires single array. The parameters of line and marks (see section <a href="mgl_en_1.html#Line-styles">Line styles</a>) are specified by the string argument. If the string parameter is <code>NULL</code> then solid line with color from palette is used.
+</p>
+<p>Below I shall show the features of 1D plotting on base of <code>plot</code> function (see section <a href="mgl_en_1.html#g_t1D-plotting">1D plotting</a>). Let us start from sinus plot:
+</p><pre class="verbatim">new y0 50: modify y0 'sin(pi*(2*x-1))'
+subplot 2 2 0
+plot y0: box
+</pre><p>Style of line is not specified in <code>plot</code> function. So MathGL uses the solid line with first color of palette (this is blue). Next subplot shows array <var>y1</var> with 2 rows:
+</p><pre class="verbatim">subplot 2 2 1
+new y1 50 2
+modify y1 'sin(pi*2*x-pi)'
+modify y1 'cos(pi*2*x-pi)/2' 1
+plot y1: box
+</pre><p>As previously I did not specify the style of lines. As a result, MathGL again uses solid line with next colors in palette (there are green and red). Now let us plot a circle on the same subplot. The circle is parametric curve <em>x=cos(\pi t), y=sin(\pi t)</em>. I will set the color of the circle (dark yellow, &lsquo;<samp>Y</samp>&rsquo;) and put marks &lsquo;<samp>+</samp>&rsquo; at point position:
+</p><pre class="verbatim">new x 50: modify x 'cos(pi*2*x-pi)'
+plot x y0 'Y+'
+</pre><p>Note that solid line is used because I did not specify the type of line. The same picture can be achieved by <code>Plot2</code> function. Let us draw ellipse by orange dash line:
+</p><pre class="verbatim">plot y1(:,0) y(:,1) 'q|'
+</pre>
+<p>Drawing in 3D space is mostly the same. Let us draw spiral with default line style. Now its color is 4-th color from palette (this is cyan):
+</p><pre class="verbatim">subplot 2 2 2:rotate 60 40
+new z 50: modify z '2*x-1'
+plot x y0 z:box
+</pre><p>Function <code>Plot3</code> does 3D curve plot but for single array. Use it to put circle marks on the previous plot:
+</p><pre class="verbatim">new y2 10 3:modify y2 'cos(pi*(2*x-1+y))'
+modify y2 '2*x-1' 2
+plot y2(:,0) y2(:,1) y2(:,2) 'bo '
+</pre><p>Note that line style is empty &lsquo;<samp> </samp>&rsquo; here. Usage of other 1D plotting functions looks similar:
+</p><pre class="verbatim">subplot 2 2 3:rotate 60 40
+bars x y0 z 'r':box
+</pre>
+<div class="float">
+<img src="../png/sample8.png" alt="../png/sample8">
+
+</div><p><strong>Example of 1D data plot
+</strong>
+</p>
+<hr size="6">
+<a name="Plots-for-2D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-1D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-3D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-2D-data-1"></a>
+<h3 class="subsection">2.4.2 Plots for 2D data</h3>
+
+<p>Surfaces <code>Surf</code> and other 2D plots (see section <a href="mgl_en_1.html#g_t2D-plotting">2D plotting</a>) are drown the same simpler as 1D one. The difference is that the string parameter specifies not by line style but by the color scheme of the plot (see section <a href="mgl_en_1.html#Color-scheme">Color scheme</a>). Here I draw attention on 4 most interesting color schemes. There is gray scheme where color is changed from black to white (string &lsquo;<samp>kw</samp>&rsquo;) or from white to black (string &lsquo;<samp>wk</samp>&rsquo;). Another scheme is useful for accentuation of negative (by blue color) and positive (by red color) regions on plot (string &lsquo;<samp>'BbwrR'</samp>&rsquo;). Last one is the popular &ldquo;jet&rdquo; scheme (string &lsquo;<samp>'BbcyrR'</samp>&rsquo;).
+</p>
+<p>Now I shall show the example of a surface drawing. At first let us switch lightning on
+</p><pre class="verbatim">light on: light 0 0 0 1
+</pre><p>and draw the surface, considering coordinates x,y to be uniformly distributed in interval <var>Min</var>*<var>Max</var>
+</p><pre class="verbatim">new a0 50 40
+modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+subplot 2 2 0:rotate 60 40
+surf a0: box
+</pre><p>Color scheme was not specified. So previous color scheme is used. In this case it is default color scheme (&ldquo;jet&rdquo;) for the first plot. Next example is a sphere. The sphere is parametrically specified surface:
+</p><pre class="verbatim">new x 50 40: new y 50 40: new z 50 40
+modify x '0.8*sin(2*pi*x)*sin(pi*y)'
+modify y '0.8*cos(2*pi*x)*sin(pi*y)'
+modify z '0.8*cos(pi*y)'
+subplot 2 2 1:rotate 60 40
+surf x y z 'bbwrr': box
+</pre><p>I set color scheme to <code>'BbwrR'</code> that corresponds to red top and blue bottom of the sphere.
+</p>
+<p>Surfaces will be plotted for each of slice of the data if <var>nz</var>&gt;1. Next example draws surfaces for data arrays with <var>nz</var>=3:
+</p><pre class="verbatim">new a1 50 40 3
+modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
+subplot 2 2 2:rotate 60 40
+alpha on
+surf a1: box
+</pre><p>Note, that it may entail a confusion. However, if one will use density plot then the picture will look better:
+</p><pre class="verbatim">subplot 2 2 3: rotate 60 40
+dens a1: box
+</pre><p>Note, that the previous color scheme is used in last plots because there are no direct specification of the one.
+</p>
+<div class="float">
+<img src="../png/sample9.png" alt="../png/sample9">
+
+</div><p><strong>Example of surface plot for 2D data
+</strong>
+</p>
+<p>Drawing of other 2D plots is analogous. The only peculiarity is the usage of flag &lsquo;<samp>#</samp>&rsquo;. By default this flag switches on the drawing of a grid on plot (<code>grid</code> or <code>mesh</code> for plots in plain or in volume). However, for isosurfaces (including surfaces of rotation <code>axial</code>) this flag switches the  face drawing off. Figure becomes wired. The following code gives example of flag &lsquo;<samp>#</samp>&rsquo; using (compare with normal function drawing as in its description):
+</p><pre class="verbatim">alpha on: light on: light 0 0 0 1
+new a 30 20
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+subplot 2 2 0: rotate 40 60
+surf a 'bbcyrr#': box
+subplot 2 2 1: rotate 40 60
+dens a 'bbcyrr#': box
+subplot 2 2 2: rotate 40 60
+cont a 'bbcyrr#': box
+subplot 2 2 3: rotate 40 60
+axial a 'bbcyrr#': box
+</pre>
+<div class="float">
+<img src="../png/samplea.png" alt="../png/samplea">
+
+</div><p><strong>Example of 2D data plot with color scheme contained &lsquo;<samp>#</samp>&rsquo; symbol
+</strong>
+</p>
+<hr size="6">
+<a name="Plots-for-3D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-2D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surface-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-3D-data-1"></a>
+<h3 class="subsection">2.4.3 Plots for 3D data</h3>
+
+<p>Drawing procedures for 3D plot looks similarly to 1D and 2D plots described above. There are 3 general types of 3D plots (see section <a href="mgl_en_1.html#g_t3D-plotting">3D plotting</a>): (i) plots on slices or on projections, (ii) isosurfaces, (iii) cloud-like plots. Plots on slice are clear enough &ndash; one specifies a slice (as its index or as coordinate value) and MathGL draws contour lines or density plot on slice plane. Isosurface gives more information. Isosurface is 3D analogue of the contour line <code>cont</code>. It shows the region where data array values exceed specified isosurface level. Plot becomes more informative if one adds transparency, lightning or sets color scheme depending on coordinates. Generalization of isosurface is the cloud-like plot. For this plot the darker color and less transparent regions correspond to higher values of data. Contrary, the regions with low values are transparent. For plotting of the phase of fields (or beams or pulses) one can use isosurface which transparency depends on the other data array (see function <code>surf3a</code>). As example of 3D data plots let us draw the Gaussian beam diffraction in space. Beam propagates along <var>x</var> axis:
+</p><pre class="verbatim">alpha on: light on
+light 0 0 0 1
+new a 30 30 30: new b 30 30 30
+modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
+modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
+caxis 0 1
+
+subplot 2 2 0: rotate 40 60
+surf3 a 'wgk': box
+subplot 2 2 1: rotate 40 60
+densa a: box: axis
+subplot 2 2 2: rotate 40 60
+cloud a: box
+subplot 2 2 3: rotate 40 60
+surf3a b a 'q': box
+</pre>
+<div class="float">
+<img src="../png/sampleb.png" alt="../png/sampleb">
+
+</div><p><strong>Example of Gaussian beam diffraction (3D data)
+</strong>
+</p>
+
+<hr size="6">
+<a name="Surface-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-3D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surface-transparency-1"></a>
+<h3 class="subsection">2.4.4 Surface transparency</h3>
+
+<p>MathGL library has advanced features for setting and handling the surface transparency. The simplest way to add transparency is the using of function <code>Alpha</code>. As a result, all further surfaces (and isosurfaces, density plots and so on) become transparent. However, their  look can be additionally improved.
+</p>
+<p>First, the selected surface will be non-transparent if one sets the flag <code>transparent</code> before the surface drawing and sets it off after the drawing.
+</p>
+<p>Second, the value of transparency can be different from surface to surface. To do it just change the value of <code>alphadef</code> before the drawing of the selected surface. If its value is close to 0 then the surface becomes more and more transparent. Contrary, if its value is close to 1 then the surface becomes practically non-transparent. This is some analogue of <code>transparent on</code>.
+</p>
+<p>Third feature is the changing of the way how the light goes through overlapped surfaces. The variable <code>transptype</code> defines it. By default the usual transparency is used (<code>transptype 0</code>) &ndash; surfaces below is less visible than the upper ones. A &ldquo;glass-like&rdquo; transparency (<code>transptype 1</code>) has a different look when the surface just decreases the background light (the surfaces are commutable in this case).
+</p>
+<p>A &ldquo;neon-like&rdquo; transparency (<code>transptype 2</code>) has more interesting look. In this case a surface is the light source (like a lamp on the dark background) and just adds some intensity to the color. At this, the library sets automatically the black color for the background and changes the default line color to white.
+</p>
+<p>As example I shall show the variant of plot from <a href="#Plots-for-2D-data">Plots for 2D data</a> (grid drawing is disabled) for different types of transparency.
+</p><div class="float">
+<img src="../png/type0.png" alt="../png/type0">
+
+</div><p><strong>Example of <code>TranspType=0</code>.
+</strong>
+</p><div class="float">
+<img src="../png/type1.png" alt="../png/type1">
+
+</div><p><strong>Example of <code>TranspType=1</code>.
+</strong>
+</p><div class="float">
+<img src="../png/type2.png" alt="../png/type2">
+
+</div><p><strong>Example of <code>TranspType=2</code>.
+</strong>
+</p>
+
+
+<hr size="6">
+<a name="Hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surface-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t_0060_0060Compound_0027_0027-graphics" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Hints-1"></a>
+<h2 class="section">2.5 Hints</h2>
+
+<p>In this section I have included some small hints and advices for the improving of the quality of plots and for the demonstration of some non-trivial features of MathGL library. In contrast to previous examples I showed mostly the idea but not the whole drawing function. More examples with the source code can be find at <a href="http://mathgl.sf.net/">http://mathgl.sf.net/</a> or in section <a href="mgl_en_3.html#Samples">Samples</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t_0060_0060Compound_0027_0027-graphics">2.5.1 &ldquo;Compound&rdquo; graphics</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Two-axes-in-one-plot">2.5.2 Two axes in one plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Titles-for-the-plot">2.5.3 Titles for the plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Changing-of-the-color-range">2.5.4 Changing of the color range</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Management-of-a-point-cutting">2.5.5 Management of a point cutting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-field-visualization">2.5.6 Vector field visualization</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Several-light-sources">2.5.7 Several light sources</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutMin-and-CutMax-features">2.5.8 CutMin and CutMax features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mapping-visualization">2.5.9 Mapping visualization</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Log_002dscaled-plot">2.5.10 Log-scaled plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting-hints">2.5.11 Nonlinear fitting hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#PDE-solving-hints">2.5.12 PDE solving hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stereo-image">2.5.13 Stereo image</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="g_t_0060_0060Compound_0027_0027-graphics"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Two-axes-in-one-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Compound_0027_0027-graphics-1"></a>
+<h3 class="subsection">2.5.1 &ldquo;Compound&rdquo; graphics</h3>
+
+<p>As I noted above, MathGL functions (except the special one, like <code>clf</code>) do  not erase the previous plotting but just add the new one. It allows one to draw &ldquo;compound&rdquo; plots easily. For example, popular Matlab command <code>surfc</code> can be emulated in MathGL by 2 calls:
+</p><pre class="verbatim">surf a
+cont a 0 7 -1   # draw contours at z = -1
+</pre><p>Here <var>a</var> is 2-dimensional data for the plotting, <code>-1</code> is the value of z-coordinate at which the contour should be plotted (at the bottom in this example). Analogously, one can draw density plot instead of contour lines and so on.
+</p>
+<p>Another nice plot is contour lines plotted directly on the surface:
+</p><pre class="verbatim">light on        # switch on light for the surface
+surf a 'bbcyrr' # select 'jet' colormap for the surface
+cont a 'y'      # and yellow color for contours
+</pre><p>The possible difficulties arise in black&amp;white case, when the color of the surface can be close to the color of a contour line. In that case I may suggest the following code:
+</p><pre class="verbatim">light on        # switch on light for the surface
+surf a 'kw'     # select 'gray' colormap for the surface
+caxis -1 0      # first draw for darker surface colors
+conta 'w'       # white contours
+caxis 0 1       # now draw for brighter surface colors
+cont a 'k'      # black contours
+</pre><p>The idea is to divide the color range on 2 parts (dark and bright) and to select the contrasting color for contour lines for each of part.
+</p>
+<p>Similarly, one can plot flow thread over density plot of vector field amplitude (this is another amusing plot from Matlab) and so on. The list of compound graphics can be prolonged but I hope that the general idea is clear.
+</p>
+<hr size="6">
+<a name="Two-axes-in-one-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t_0060_0060Compound_0027_0027-graphics" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Titles-for-the-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Two-axes-in-one-plot-1"></a>
+<h3 class="subsection">2.5.2 Two axes in one plot</h3>
+
+<p>Developing the previous hint one can make a plot with 2 or more axes. The idea is that the change of settings does not influence on the already drawn graphics. So, for 2-axes plot let us set the first axis and draw everything concerning it. Then let us setup the second axis and draw things for the second axis. The corresponding code is (see section <a href="mgl_en_3.html#g_t2_002daxes-sample">2-axes sample</a>):
+</p><pre class="verbatim"># set up first axis
+axis -1 -1 1 1: origin -1 -1
+axis:fplot 'sin(pi*x)'      # draw something in first axis
+# set up second axis
+axis 0 0 1 1: origin 1 1
+axis: fplot 'cos(4*pi*x^2)' # draw something in second axis
+</pre><p>Note, that the first and the second axes look better if being placed in different corners. In the code presented above the first axis is placed in the left-bottom corner, and the second one is placed in the right-top corner.
+</p>
+<hr size="6">
+<a name="Titles-for-the-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Two-axes-in-one-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Changing-of-the-color-range" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Titles-for-the-plot-1"></a>
+<h3 class="subsection">2.5.3 Titles for the plot</h3>
+
+<p>The printing of nice titles for the plot is not so trivial task in general case. The problem is that the rotation and aspect change lead to different looks for titles of different subplots. So, the resulting look is not so good as it could be. The solution is simple &ndash; to print titles exactly after <code>subplot</code> call and before any rotation, aspect change and so on! Analogously, the title for the whole picture looks better if it is printed first (before any <code>subplot</code> calls). Alternatively you can use function <code>title</code> for plotting title for the picture at any time.
+</p>
+<hr size="6">
+<a name="Changing-of-the-color-range"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Titles-for-the-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Management-of-a-point-cutting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Changing-of-the-color-range-1"></a>
+<h3 class="subsection">2.5.4 Changing of the color range</h3>
+
+<p>By default (for the user comfort), the color range is set equal to z-range of the plot. However, there are different ranges. So, one can obtain amusing plot by the change of color range manually. For example, there are plots with one-color bottom (or top) or practically bi-color picture and so on.
+</p>
+<p>For example, compare 2 surfaces:
+</p><pre class="verbatim">subplot 2 1 0
+surf a          # usual coloring range
+subplot 2 1 1
+caxis 0 1
+surf a          # bottom of the surface have one-colour filling
+</pre>
+<hr size="6">
+<a name="Management-of-a-point-cutting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Changing-of-the-color-range" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-field-visualization" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Management-of-a-point-cutting-1"></a>
+<h3 class="subsection">2.5.5 Management of a point cutting</h3>
+
+<p>Sometimes an experimental or numerical surface has outstanding points. Visualization of such surface will lead to the hole(s) in place of such points. The standard method of &ldquo;fighting&rdquo; &ndash; to change data values &ndash; is not always good and is not so convenient. MathGL library has another method &ndash; to set variable <code>cut off</code>. As a consequence, all outstanding points will be projected on the bounding box.
+</p>
+<p>Such method is good not only for outstanding points but also for the case when one need to plane the bottom or the top of the plot. Exactly such case is demonstrated in the code:
+</p><pre class="verbatim">new a 20 30     # create some data
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+# set lower border above the data minimal value
+axis -1 -1 0 1 1 1:rotate 40 60
+cut off         # set off cutting flag
+surf a          # and draw the surface
+</pre><p>It is an interesting result, is not it?
+</p>
+<hr size="6">
+<a name="Vector-field-visualization"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Management-of-a-point-cutting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Several-light-sources" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vector-field-visualization-1"></a>
+<h3 class="subsection">2.5.6 Vector field visualization</h3>
+
+<p>Vector field visualization (especially in 3d case <code>vect3</code> or <code>vectc</code>) may look tangly &ndash; there are too many overlapping lines. I may suggest 2 ways to solve this problem. The first one is to change <code>meshnum</code> for decreasing the number of hachures. The second way is to use the flow thread chart <code>Flow</code>. Unfortunately, I don&rsquo;t know any other methods to visualize 3d vector field. If you know any, e-mail me and I shall add it to MatGL.
+</p>
+<hr size="6">
+<a name="Several-light-sources"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-field-visualization" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutMin-and-CutMax-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Several-light-sources-1"></a>
+<h3 class="subsection">2.5.7 Several light sources</h3>
+
+<p>In contrast to the most of other programs, MathGL supports several (up to 10) light sources. Moreover, the color each of them can be different: white (this is usual), yellow, red, cyan, green and so on. The use of several light sources may be interesting for the highlighting of some peculiarities of the plot or just to make an amusing picture. Note, each light source can be switched on/off individually (see section <a href="mgl_en_3.html#Several-light-sample">Several light sample</a>).
+</p>
+<hr size="6">
+<a name="CutMin-and-CutMax-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Several-light-sources" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mapping-visualization" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutMin-and-CutMax-features-1"></a>
+<h3 class="subsection">2.5.8 CutMin and CutMax features</h3>
+
+<p>MathGL library has a feature for cutting of points in some region <var>CutMin*CutMax</var>. Such an excision can be used to improve the look of the graphics. Moreover, this cutting may help to show an internal structure of an object (like <code>isocaps</code> plot in Matlab). For example, let us use the standard 3D data array and show its interior (see section <a href="mgl_en_3.html#CutMinMax-sample">CutMinMax sample</a>).
+</p>
+<pre class="verbatim">new c 61 51 40      # create the data
+new v 10: fill v -0.5 1
+modify c '(-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1))'
+cut 0 -1 -1 1 0 1.1
+rotate 40 60:       surf3 c -0.5 'bbcyrr'
+contf3 v c 'x' -1 'bbcyrr': contf3 v c 'y' -1 'bbcyrr'
+contf3 v c 'z' 0 'bbcyrr':  contf3 v c 'z' 39 'bbcyrr'
+</pre>
+<p>One can also exclude points from arbitrary area in space. This area defined by textual formula <code>cut</code> (see section <a href="mgl_en_1.html#Cutting">Cutting</a>). The algorithm is the same as shown for &ldquo;rectangular cutting&rdquo;.
+</p>
+<hr size="6">
+<a name="Mapping-visualization"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutMin-and-CutMax-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Log_002dscaled-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mapping-visualization-1"></a>
+<h3 class="subsection">2.5.9 Mapping visualization</h3>
+
+<p>Sometime ago I worked with mapping and have a question about its visualization. Let me remember you that mapping is some transformation rule for one set of number to another one. The 1d mapping is just an ordinary function &ndash; it takes a number and transforms it to another one. The 2d mapping (which I used) is a pair of functions which take 2 numbers and transform them to another 2 ones. Except general plots (like <code>surfc</code>, <code>surfa</code>) there is a special plot &ndash; Arnold diagram. It shows the area which is the result of mapping of some initial area (usually square).
+</p>
+<p>I tried to make such plot in <code>map</code>. It shows the set of points or set of faces, which final position is the result of mapping. At this, the color gives information about their initial position and the height describes Jacobian value of the transformation. Unfortunately, it looks good only for the simplest mapping but for the real multivalent quasi-chaotic mapping it produces a confusion. So, use it if you like :).
+</p>
+<hr size="6">
+<a name="Log_002dscaled-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mapping-visualization" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting-hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Log_002dscaled-plot-1"></a>
+<h3 class="subsection">2.5.10 Log-scaled plot</h3>
+
+<p>Log-scaled plot can be drawn by 2 steps. First, one should change the scale of axis by call <code>axis 'lg(x)' 'lg(y)'</code> (in this example, x- and y-axis will be log-scaled). Second, one should set logarithmic scale for axis ticks by changing variables: <code>xtick 0: yticks 0</code>. Finally, one should check (or change) the axis ranges and origin so that their values to be positive. For example of log-log plot see section <a href="mgl_en_3.html#Log_002dlog-sample">Log-log sample</a>.
+</p>
+<hr size="6">
+<a name="Nonlinear-fitting-hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Log_002dscaled-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#PDE-solving-hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-hints-1"></a>
+<h3 class="subsection">2.5.11 Nonlinear fitting hints</h3>
+
+<p>Nonlinear fitting is rather simple. All that you need is the data to fit, the approximation formula and the list of coefficients to fit (better with its initial guess values). Let me demonstrate it on the following simple example (see section <a href="mgl_en_3.html#Fitting-sample">Fitting sample</a>). First, let us use sin function with some random noise:
+</p><pre class="verbatim">new rnd 100: new idl 50 # data to be fitted and ideal data
+modify rnd '0.4*rnd+0.1+sin(4*pi*x)'
+modify idl '0.3+sin(4*pi*x)'
+</pre><p>and plot it to see that data we will fit
+</p><pre class="verbatim">axis -1 -2 1 2
+plot rnd '. ':plot idl 'b'
+box:text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
+</pre>
+<p>The next step is the fitting itself. For that let me specify an initial values <var>ini</var> for coefficients &lsquo;<samp>abc</samp>&rsquo; and do the fitting for approximation formula &lsquo;<samp>a+b*sin(c*x)</samp>&rsquo;
+</p><pre class="verbatim">new res     # The data for found formula
+fit res rnd 'a+b*sin(c*x)' 'abc' [1, 1, 3]
+</pre><p>Now display it
+</p><pre class="verbatim">plot res 'r'
+text -1 -1.3 'fitted:' 'L:r' -1
+putsfit 0 -1.8 'y = ' 'C:r' -1
+</pre>
+<p>NOTE! the fitting results may have strong dependence on initial values for coefficients due to algorithm features. The problem is that in general case there are several local &rsquo;optimums&rsquo; for coefficients and the program returns only first found one! There are no guaranties that it will be the best. Try for example to set <code>ini = [0, 0, 0]</code> in the code above.
+</p>
+<hr size="6">
+<a name="PDE-solving-hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting-hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stereo-image" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="PDE-solving-hints-1"></a>
+<h3 class="subsection">2.5.12 PDE solving hints</h3>
+
+<p>Solving of Partial Differential Equations (PDE, including beam tracing) and ray tracing (or finding particle trajectory) are more or less common task. So, MathGL have several functions for that. There are <code>ray</code> for ray tracing, <code>pde</code> for PDE solving, <code>qo2d</code> for beam tracing in 2D case. Note, that these functions take &ldquo;Hamiltonian&rdquo; or equations as string values. And I don&rsquo;t plan now to allow one to use user-defined functions. There are 2 reasons: the complexity of corresponding interface; and the basic nature of used methods which are good for samples but may not good for serious scientific calculations.
+</p>
+<p>The ray tracing can be done by <code>ray</code> function. Really ray tracing equation is Hamiltonian equation for 3D space. So, the function can be also used for finding a particle trajectory (i.e. solve Hamiltonian ODE) for 1D, 2D or 3D cases. The function have a set of arguments. First of all, it is Hamiltonian which defined the media (or the equation) you are planning to use. The Hamiltonian is defined by string which may depend on coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, time &lsquo;<samp>t</samp>&rsquo; (for particle dynamics) and momentums &lsquo;<samp>p</samp>&rsquo;=<em>p_x</em>, &lsquo;<samp>q</samp>&rsquo;=<em>p_y</em>, &lsquo;<samp>v</samp>&rsquo;=<em>p_z</em>. Next, you have to define the initial conditions for coordinates and momentums at &lsquo;<samp>t</samp>&rsquo;=0 and set the integrations step (default is 0.1) and its duration (default is 10). The Runge-Kutta method of 4-th order is used for integration.
+</p><pre class="verbatim">new re 128:new im 128
+ray r 'p^2+q^2-x-1' -0.7 -1 0 0 0.5 0
+plot r(0) r(1)
+</pre><p>This example calculate the reflection from linear layer (media with Hamiltonian &lsquo;<samp>p^2+q^2-x-1</samp>&rsquo;=<em>p_x^2+p_y^2-x-1</em>). This is parabolic curve. The resulting array have 7 columns which contain data for {x,y,z,p,q,v,t}.
+</p>
+<p>The solution of PDE is a bit more complicated. As previous you have to specify the equation as pseudo-differential operator <em>\hat H(x, \nabla)</em> which is called sometime as &ldquo;Hamiltonian&rdquo; (for example, in beam tracing). As previously, it is defined by string which may depend on coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; (but not time!), momentums &lsquo;<samp>p</samp>&rsquo;=<em>(d/dx)/i k_0</em>, &lsquo;<samp>q</samp>&rsquo;=<em>(d/dy)/i k_0</em> and field amplitude &lsquo;<samp>u</samp>&rsquo;=<em>|u|</em>. The evolutionary coordinate is &lsquo;<samp>z</samp>&rsquo; in all cases. So that, the equation look like <em>du/dz = ik_0 H(x,y,\hat p, \hat q, |u|)[u]</em>. Dependence on field amplitude &lsquo;<samp>u</samp>&rsquo;=<em>|u|</em> allows one to solve nonlinear problems too. For example, for nonlinear Shrodinger equation you may set <code>ham='p^2 + q^2 - u^2'</code>. Also you may specify imaginary part for wave absorption, like <code>ham = 'p^2 + i*x*(x&gt;0)'</code>, but only if dependence on variable &lsquo;<samp>i</samp>&rsquo; is linear (i.e. <em>H = Hre+i*Him</em>).
+</p>
+<p>Next step is specifing the initial conditions at &lsquo;<samp>z</samp>&rsquo;=<code>Min.z</code>. The function need 2 arrays for real and for imaginary part. Note, that coordinates x,y,z are supposed to be in specified range [Min, Max]. So, the data arrays should have corresponding scales. Finally, you may set the integration step and paramter k0=<em>k_0</em>. Also keep in mind, that internally the 2 times large box is used (for suppressing numerical reflection from boundaries) and the equation should well defined even in this extended range.
+</p>
+<p>Final comment is concerning the possible form of pseudo-differential operator <em>H</em>. At this moment, simplified form of operator <em>H</em> is supported &ndash; all &ldquo;mixed&rdquo; terms (like &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) are excluded. For example, in 2D case this operator is effectively <em>H = f(p,z) + g(x,z,u)</em>. However commutable combinations (like &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy) are allowed for 3D case. 
+</p>
+<p>So, for example let solve the equation for beam deflected from linear layer and absorbed later. The operator will have the form &lsquo;<samp>'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)'</samp>&rsquo; that correspond to equation <em>ik_0 \partial_z u + \Delta u + x \cdot u + i (x+z)/2 \cdot u = 0</em>. This is typical equation for Electron Cyclotron (EC) absorption in magnetized plasmas. For initial conditions let me select the beam with plane phase front <em>exp(-48*(x+0.7)^2)</em>. The corresponding code looks like this (see section <a href="mgl_en_3.html#PDE-sample">PDE sample</a>):
+</p><pre class="verbatim">new re 128: new im 128
+fill re 'exp(-48*(x+0.7)^2)'
+pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)' re im 0.01, 30
+transpose a 'yxz'
+caxis 0 1
+dens a 'wyrRk'
+</pre>
+<p>The last example is example of beam tracing. Beam tracing equation is special kind of PDE equation written in coordinates accompanied to a ray. Generally this is the same parameters and limitation as for PDE solving but the coordinates are defined by the ray and by parameter of grid width <var>w</var> in direction transverse the ray. So, you don&rsquo;t need to specify the range of coordinates. <strong>BUT</strong> there is limitation. The accompanied coordinates are well defined only for smooth enough rays, i.e. then the ray curvature <em>K</em> (which is defined as <em>1/K^2 = (|\ddot r|^2 |\dot r|^2 - (\ddot r, \dot r)^2)/|\dot r|^6</em>) is much large then the grid width: <em>K&gt;&gt;w</em>. So, you may receive incorrect results if this condition will be broken.
+</p>
+<p>You may use following code for obtaining the same solution as in previous example:
+</p><pre class="verbatim">new re 128: new im 128
+define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)'
+ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
+# now start beam tracing
+fill re 'exp(-48*x^2)'
+new xx: new yy
+qo2d a $1 re im r 1 30 xx yy
+caxis 0 1
+dens xx yy a 'wyrRk'
+</pre>
+
+<hr size="6">
+<a name="Stereo-image"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#PDE-solving-hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stereo-image-1"></a>
+<h3 class="subsection">2.5.13 Stereo image</h3>
+
+<p>One can easily create stereo image in MathGL. Stereo image can be produced by making two subplots with slightly different rotation angles. The corresponding code looks like this (see section <a href="mgl_en_3.html#Stereo-image-sample">Stereo image sample</a>):
+</p><pre class="verbatim">subplot 2 1 0   # left image
+rotate 40 60+3
+# draw something here
+subplot 2 1 1   # right image
+rotate 40 60-3
+# draw the same here
+</pre>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mgl_en.html/mgl_en_3.html b/texinfo/mgl_en.html/mgl_en_3.html
new file mode 100644
index 0000000..382de68
--- /dev/null
+++ b/texinfo/mgl_en.html/mgl_en_3.html
@@ -0,0 +1,4065 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: 3. Samples</title>
+
+<meta name="description" content="MGL script language for version 1.11: 3. Samples">
+<meta name="keywords" content="MGL script language for version 1.11: 3. Samples">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_2.html#Stereo-image" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en_2.html#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Samples-1"></a>
+<h1 class="chapter">3. Samples</h1>
+<p>This chapter contain a lot of sample codes for all types of plots and for most important examples and hints. The same sample (with pictures) you can find at <a href="http://mathgl.sf.net/pictures.html">http://mathgl.sf.net/pictures.html</a>. 
+</p><table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting-samples">3.1 1D plotting samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting-samples">3.2 2D plotting samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting-samples">3.3 3D plotting samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting-samples">3.4 Dual plotting samples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Basic-features">3.5 Basic features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Additional-features">3.6 Additional features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Advanced-features">3.7 Advanced features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+</table>
+<hr size="6">
+<a name="g_t1D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-plotting-samples-1"></a>
+<h2 class="section">3.1 1D plotting samples</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plot-sample">3.1.1 Plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Radar-sample">3.1.2 Radar sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tens-sample">3.1.3 Tens sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area-sample">3.1.4 Area sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area-gradient-sample">3.1.5 Area with gradient filling sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-sample">3.1.6 Bars sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-2-colors-sample">3.1.7 Bars 2 colors sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-above-sample">3.1.8 Bars above sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-fall-sample">3.1.9 Bars fall sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Barh-sample">3.1.10 Barh sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Step-sample">3.1.11 Step sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stem-sample">3.1.12 Stem sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region-sample">3.1.13 Region sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region-gradient-sample">3.1.14 Region gradient sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Error-sample">3.1.15 Error sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#BoxPlot-sample">3.1.16 BoxPlot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mark-sample">3.1.17 Mark sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TextMark-sample">3.1.18 TextMark sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tube-sample">3.1.19 Tube sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-sample">3.1.20 Text sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Torus-sample">3.1.21 Torus sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Chart-sample">3.1.22 Chart sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pie-chart-sample">3.1.23 Pie chart sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ring-chart-sample">3.1.24 Ring chart sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+<hr size="6">
+<a name="Plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Radar-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plot-sample-1"></a>
+<h3 class="subsection">3.1.1 Plot sample</h3>
+<a name="index-Plot"></a>
+<div class="float">
+<img src="../png/plot.png" alt="../png/plot">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y
+</pre><hr size="6">
+<a name="Radar-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Radar-sample-1"></a>
+<h3 class="subsection">3.1.2 Radar sample</h3>
+<a name="index-Radar"></a>
+<div class="float">
+<img src="../png/radar.png" alt="../png/radar">
+</div><pre class="verbatim">new y 10 3
+modify y '0.4*sin(pi*(2*x+y/2))+0.1*rnd'
+radar y '#'
+</pre><hr size="6">
+<a name="Tens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Radar-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tens-sample-1"></a>
+<h3 class="subsection">3.1.3 Tens sample</h3>
+<a name="index-Tens"></a>
+<div class="float">
+<img src="../png/tens.png" alt="../png/tens">
+</div><pre class="verbatim">new y 50
+new c 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify c 'sin(2*pi*x)'
+box
+tens y c
+</pre><hr size="6">
+<a name="Area-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area-gradient-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-sample-1"></a>
+<h3 class="subsection">3.1.4 Area sample</h3>
+<a name="index-Area"></a>
+<div class="float">
+<img src="../png/area.png" alt="../png/area">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y
+</pre><hr size="6">
+<a name="Area-gradient-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-with-gradient-filling-sample"></a>
+<h3 class="subsection">3.1.5 Area with gradient filling sample</h3>
+<a name="index-Area-1"></a>
+<div class="float">
+<img src="../png/area_2.png" alt="../png/area_2">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y 'cbgGyr'
+</pre><hr size="6">
+<a name="Bars-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area-gradient-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-2-colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-sample-1"></a>
+<h3 class="subsection">3.1.6 Bars sample</h3>
+<a name="index-Bars"></a>
+<div class="float">
+<img src="../png/bars.png" alt="../png/bars">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y
+</pre><hr size="6">
+<a name="Bars-2-colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-above-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-2-colors-sample-1"></a>
+<h3 class="subsection">3.1.7 Bars 2 colors sample</h3>
+<a name="index-Bars-1"></a>
+<div class="float">
+<img src="../png/bars_2.png" alt="../png/bars_2">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'cbgGyr'
+</pre><hr size="6">
+<a name="Bars-above-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-2-colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-fall-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-above-sample-1"></a>
+<h3 class="subsection">3.1.8 Bars above sample</h3>
+<a name="index-Bars-2"></a>
+<div class="float">
+<img src="../png/bars_a.png" alt="../png/bars_a">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'a'
+</pre><hr size="6">
+<a name="Bars-fall-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-above-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Barh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-fall-sample-1"></a>
+<h3 class="subsection">3.1.9 Bars fall sample</h3>
+<a name="index-Bars-3"></a>
+<div class="float">
+<img src="../png/bars_f.png" alt="../png/bars_f">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'f'
+</pre><hr size="6">
+<a name="Barh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-fall-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Step-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Barh-sample-1"></a>
+<h3 class="subsection">3.1.10 Barh sample</h3>
+<a name="index-Barh"></a>
+<div class="float">
+<img src="../png/barh.png" alt="../png/barh">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+barh y
+</pre><hr size="6">
+<a name="Step-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Barh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stem-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Step-sample-1"></a>
+<h3 class="subsection">3.1.11 Step sample</h3>
+<a name="index-Step"></a>
+<div class="float">
+<img src="../png/step.png" alt="../png/step">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+step y
+</pre><hr size="6">
+<a name="Stem-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Step-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stem-sample-1"></a>
+<h3 class="subsection">3.1.12 Stem sample</h3>
+<a name="index-Stem"></a>
+<div class="float">
+<img src="../png/stem.png" alt="../png/stem">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+stem y 'o'
+</pre><hr size="6">
+<a name="Region-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Stem-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region-gradient-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-sample-1"></a>
+<h3 class="subsection">3.1.13 Region sample</h3>
+<a name="index-Region"></a>
+<div class="float">
+<img src="../png/region.png" alt="../png/region">
+</div><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'r'
+plot y1 'k2'
+plot y2 'k2'
+</pre><hr size="6">
+<a name="Region-gradient-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Error-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-gradient-sample-1"></a>
+<h3 class="subsection">3.1.14 Region gradient sample</h3>
+<a name="index-Region-1"></a>
+<div class="float">
+<img src="../png/region_2.png" alt="../png/region_2">
+</div><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'yr'
+plot y1 'k2'
+plot y2 'k2'
+</pre><hr size="6">
+<a name="Error-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region-gradient-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#BoxPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Error-sample-1"></a>
+<h3 class="subsection">3.1.15 Error sample</h3>
+<a name="index-Error"></a>
+<div class="float">
+<img src="../png/error.png" alt="../png/error">
+</div><pre class="verbatim">new y 50
+new x0 10
+new y0 10
+new ex 10
+new ey 10
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify x0 '2*x-1 + 0.1*rnd-0.05'
+modify y0 '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1'
+modify ey '0.2'
+modify ex '0.1'
+box
+plot y
+error x0 y0 ex ey 'ko'
+</pre><hr size="6">
+<a name="BoxPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Error-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mark-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="BoxPlot-sample-1"></a>
+<h3 class="subsection">3.1.16 BoxPlot sample</h3>
+<a name="index-BoxPlot"></a>
+<div class="float">
+<img src="../png/boxplot.png" alt="../png/boxplot">
+</div><pre class="verbatim">new a 10 7
+modify a '(2*rnd-1)^3/2'
+boxplot a
+box:plot a ' ko'
+</pre><hr size="6">
+<a name="Mark-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#BoxPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TextMark-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mark-sample-1"></a>
+<h3 class="subsection">3.1.17 Mark sample</h3>
+<a name="index-Mark"></a>
+<div class="float">
+<img src="../png/mark.png" alt="../png/mark">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+mark y y1 'bs'
+</pre><hr size="6">
+<a name="TextMark-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mark-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tube-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TextMark-sample-1"></a>
+<h3 class="subsection">3.1.18 TextMark sample</h3>
+<a name="index-TextMark"></a>
+<div class="float">
+<img src="../png/textmark.png" alt="../png/textmark">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+textmark y y1 '\gamma'
+</pre><hr size="6">
+<a name="Tube-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TextMark-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tube-sample-1"></a>
+<h3 class="subsection">3.1.19 Tube sample</h3>
+<a name="index-Tube"></a>
+<div class="float">
+<img src="../png/tube.png" alt="../png/tube">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+rotate 40 60
+light on
+box
+tube y 0.05
+</pre><hr size="6">
+<a name="Text-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tube-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Torus-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-sample-1"></a>
+<h3 class="subsection">3.1.20 Text sample</h3>
+<a name="index-Text"></a>
+<div class="float">
+<img src="../png/text.png" alt="../png/text">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y(:,0)
+text y 'This is very long string drawn along a curve' ':k'
+text y 'Another string drawn above a curve' 'T:r'
+</pre><hr size="6">
+<a name="Torus-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Torus-sample-1"></a>
+<h3 class="subsection">3.1.21 Torus sample</h3>
+<a name="index-Torus"></a>
+<div class="float">
+<img src="../png/torus.png" alt="../png/torus">
+</div><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+rotate 40 60
+light on
+box
+torus y1 y2 'pz'
+</pre><hr size="6">
+<a name="Chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Torus-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pie-chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Chart-sample-1"></a>
+<h3 class="subsection">3.1.22 Chart sample</h3>
+<a name="index-Chart"></a>
+<div class="float">
+<img src="../png/chart.png" alt="../png/chart">
+</div><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+box
+chart ch
+</pre><hr size="6">
+<a name="Pie-chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ring-chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pie-chart-sample-1"></a>
+<h3 class="subsection">3.1.23 Pie chart sample</h3>
+<a name="index-Chart-1"></a>
+<a name="index-Axis"></a>
+<div class="float">
+<img src="../png/pie_chart.png" alt="../png/pie_chart">
+</div><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+1)/2*cos(pi*x)' '(y+1)/2*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+</pre><hr size="6">
+<a name="Ring-chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pie-chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ring-chart-sample-1"></a>
+<h3 class="subsection">3.1.24 Ring chart sample</h3>
+<a name="index-Chart-2"></a>
+<a name="index-Axis-1"></a>
+<div class="float">
+<img src="../png/ring_chart.png" alt="../png/ring_chart">
+</div><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+2)/3*cos(pi*x)' '(y+2)/3*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+</pre><hr size="6">
+<a name="g_t2D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ring-chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-plotting-samples-1"></a>
+<h2 class="section">3.2 2D plotting samples</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf-sample">3.2.1 Surf sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transparent-surface-sample">3.2.2 Transparent surface sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surface-in-fog-sample">3.2.3 Surface in fog sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Sharp-colors-sample">3.2.4 Sharp colors sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mesh-sample">3.2.5 Mesh sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fall-sample">3.2.6 Fall sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Belt-sample">3.2.7 Belt sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tile-sample">3.2.8 Tile sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Boxs-sample">3.2.9 Boxs sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens-sample">3.2.10 Dens sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-sample">3.2.11 Cont sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF-sample">3.2.12 ContF sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContD-sample">3.2.13 ContD sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axial-sample">3.2.14 Axial sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grad-sample">3.2.15 Grad sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+</table>
+<hr size="6">
+<a name="Surf-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparent-surface-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-sample-1"></a>
+<h3 class="subsection">3.2.1 Surf sample</h3>
+<a name="index-Surf"></a>
+<div class="float">
+<img src="../png/surf.png" alt="../png/surf">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+</pre><hr size="6">
+<a name="Transparent-surface-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surface-in-fog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transparent-surface-sample-1"></a>
+<h3 class="subsection">3.2.2 Transparent surface sample</h3>
+<a name="index-Surf-1"></a>
+<a name="index-Alpha"></a>
+<div class="float">
+<img src="../png/surf_alpha.png" alt="../png/surf_alpha">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surf a
+</pre><hr size="6">
+<a name="Surface-in-fog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparent-surface-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Sharp-colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surface-in-fog-sample-1"></a>
+<h3 class="subsection">3.2.3 Surface in fog sample</h3>
+<a name="index-Surf-2"></a>
+<a name="index-Fog"></a>
+<div class="float">
+<img src="../png/surf_fog.png" alt="../png/surf_fog">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+fog 1
+box
+surf a
+</pre><hr size="6">
+<a name="Sharp-colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surface-in-fog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mesh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Sharp-colors-sample-1"></a>
+<h3 class="subsection">3.2.4 Sharp colors sample</h3>
+<a name="index-Surf-3"></a>
+<div class="float">
+<img src="../png/surf_sl.png" alt="../png/surf_sl">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a 'BbcyrR|'
+</pre><hr size="6">
+<a name="Mesh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Sharp-colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fall-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mesh-sample-1"></a>
+<h3 class="subsection">3.2.5 Mesh sample</h3>
+<a name="index-Mesh"></a>
+<div class="float">
+<img src="../png/mesh.png" alt="../png/mesh">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+mesh a
+</pre><hr size="6">
+<a name="Fall-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mesh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Belt-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fall-sample-1"></a>
+<h3 class="subsection">3.2.6 Fall sample</h3>
+<a name="index-Fall"></a>
+<div class="float">
+<img src="../png/fall.png" alt="../png/fall">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+fall a
+</pre><hr size="6">
+<a name="Belt-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fall-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tile-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Belt-sample-1"></a>
+<h3 class="subsection">3.2.7 Belt sample</h3>
+<a name="index-Belt"></a>
+<div class="float">
+<img src="../png/belt.png" alt="../png/belt">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+belt a
+</pre><hr size="6">
+<a name="Tile-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Belt-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Boxs-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tile-sample-1"></a>
+<h3 class="subsection">3.2.8 Tile sample</h3>
+<a name="index-Tile"></a>
+<div class="float">
+<img src="../png/tile.png" alt="../png/tile">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+tile a
+</pre><hr size="6">
+<a name="Boxs-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tile-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Boxs-sample-1"></a>
+<h3 class="subsection">3.2.9 Boxs sample</h3>
+<a name="index-Boxs"></a>
+<div class="float">
+<img src="../png/boxs.png" alt="../png/boxs">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+origin 0 0 0
+box
+boxs a
+</pre><hr size="6">
+<a name="Dens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Boxs-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-sample-1"></a>
+<h3 class="subsection">3.2.10 Dens sample</h3>
+<a name="index-Dens"></a>
+<a name="index-Colorbar"></a>
+<div class="float">
+<img src="../png/dens.png" alt="../png/dens">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+dens a
+colorbar
+</pre><hr size="6">
+<a name="Cont-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-sample-1"></a>
+<h3 class="subsection">3.2.11 Cont sample</h3>
+<a name="index-Cont"></a>
+<div class="float">
+<img src="../png/cont.png" alt="../png/cont">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+cont a
+</pre><hr size="6">
+<a name="ContF-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContD-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF-sample-1"></a>
+<h3 class="subsection">3.2.12 ContF sample</h3>
+<a name="index-ContF"></a>
+<div class="float">
+<img src="../png/contf.png" alt="../png/contf">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+contf a
+</pre><hr size="6">
+<a name="ContD-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axial-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContD-sample-1"></a>
+<h3 class="subsection">3.2.13 ContD sample</h3>
+<a name="index-ContD"></a>
+<div class="float">
+<img src="../png/contd.png" alt="../png/contd">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+var v 9 -1 1
+box
+contd v a
+colorbar v
+</pre><hr size="6">
+<a name="Axial-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContD-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grad-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axial-sample-1"></a>
+<h3 class="subsection">3.2.14 Axial sample</h3>
+<a name="index-Axial"></a>
+<div class="float">
+<img src="../png/axial.png" alt="../png/axial">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+axial a
+</pre><hr size="6">
+<a name="Grad-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axial-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grad-sample-1"></a>
+<h3 class="subsection">3.2.15 Grad sample</h3>
+<a name="index-Grad"></a>
+<div class="float">
+<img src="../png/grad.png" alt="../png/grad">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box:alpha on:dens a
+grad a
+</pre><hr size="6">
+<a name="g_t3D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grad-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-plotting-samples-1"></a>
+<h2 class="section">3.3 3D plotting samples</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf3-sample">3.3.1 Surf3 sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cloud-sample">3.3.2 Cloud sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CloudP-sample">3.3.3 CloudP sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens3-sample">3.3.4 Dens3 sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont3-sample">3.3.5 Cont3 sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF3-sample">3.3.6 ContF3 sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-projection-sample">3.3.7 Cont projection sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens-projection-sample">3.3.8 Dens projection sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutMinMax-sample">3.3.9 CutMinMax sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutOff-sample">3.3.11 CutOff sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+<hr size="6">
+<a name="Surf3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cloud-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3-sample-1"></a>
+<h3 class="subsection">3.3.1 Surf3 sample</h3>
+<a name="index-Surf3"></a>
+<div class="float">
+<img src="../png/surf3.png" alt="../png/surf3">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+box
+surf3 a
+</pre><hr size="6">
+<a name="Cloud-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CloudP-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cloud-sample-1"></a>
+<h3 class="subsection">3.3.2 Cloud sample</h3>
+<a name="index-Cloud"></a>
+<div class="float">
+<img src="../png/cloud.png" alt="../png/cloud">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+box
+cloud a 'wyrRk'
+</pre><hr size="6">
+<a name="CloudP-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cloud-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CloudP-sample-1"></a>
+<h3 class="subsection">3.3.3 CloudP sample</h3>
+<a name="index-CloudP"></a>
+<div class="float">
+<img src="../png/cloudp.png" alt="../png/cloudp">
+</div><p>Not available.
+</p><hr size="6">
+<a name="Dens3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CloudP-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens3-sample-1"></a>
+<h3 class="subsection">3.3.4 Dens3 sample</h3>
+<a name="index-Dens3"></a>
+<a name="index-Axis-2"></a>
+<div class="float">
+<img src="../png/densa.png" alt="../png/densa">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+origin 0 0 0
+box
+densa a
+axis
+</pre><hr size="6">
+<a name="Cont3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont3-sample-1"></a>
+<h3 class="subsection">3.3.5 Cont3 sample</h3>
+<a name="index-Cont3"></a>
+<div class="float">
+<img src="../png/conta.png" alt="../png/conta">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+conta a
+</pre><hr size="6">
+<a name="ContF3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-projection-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF3-sample-1"></a>
+<h3 class="subsection">3.3.6 ContF3 sample</h3>
+<a name="index-ContF3"></a>
+<div class="float">
+<img src="../png/contfa.png" alt="../png/contfa">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+box
+contfa a
+</pre><hr size="6">
+<a name="Cont-projection-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens-projection-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-projection-sample-1"></a>
+<h3 class="subsection">3.3.7 Cont projection sample</h3>
+<a name="index-ContX"></a>
+<a name="index-ContY"></a>
+<a name="index-ContZ"></a>
+<div class="float">
+<img src="../png/cont_xyz.png" alt="../png/cont_xyz">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+contx s '' -1
+sum s a 'y'
+conty s '' 1
+sum s a 'z'
+contz s '' -1
+</pre><hr size="6">
+<a name="Dens-projection-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-projection-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutMinMax-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-projection-sample-1"></a>
+<h3 class="subsection">3.3.8 Dens projection sample</h3>
+<a name="index-DensX"></a>
+<a name="index-DensY"></a>
+<a name="index-DensZ"></a>
+<div class="float">
+<img src="../png/dens_xyz.png" alt="../png/dens_xyz">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+densx s '' -1
+sum s a 'y'
+densy s '' 1
+sum s a 'z'
+densz s '' -1
+</pre><hr size="6">
+<a name="CutMinMax-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens-projection-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Isocaps-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutMinMax-sample-1"></a>
+<h3 class="subsection">3.3.9 CutMinMax sample</h3>
+<a name="index-Surf3-1"></a>
+<a name="index-CutMin"></a>
+<a name="index-CutMax"></a>
+<div class="float">
+<img src="../png/cutminmax.png" alt="../png/cutminmax">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut 0 -1 -1 1 0 1
+box
+surf3 a
+</pre><hr size="6">
+<a name="Isocaps-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutMinMax-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutOff-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Isocaps_0027_0027-sample"></a>
+<h3 class="subsection">3.3.10 &ldquo;Isocaps&rdquo; sample</h3>
+<a name="index-Surf3-2"></a>
+<a name="index-ContF3-1"></a>
+<a name="index-CutMin-1"></a>
+<a name="index-CutMax-1"></a>
+<div class="float">
+<img src="../png/cutminmax2.png" alt="../png/cutminmax2">
+</div><pre class="verbatim">new a 61 51 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+cut 0 -1 -1 1 0 1.1
+box
+surf3 a -1
+contf3 a 'x' -1
+contf3 a 'y' -1
+contf3 a 'z' 0
+contf3 a 'z' 39
+</pre><hr size="6">
+<a name="CutOff-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Isocaps-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutOff-sample-1"></a>
+<h3 class="subsection">3.3.11 CutOff sample</h3>
+<a name="index-Surf3-3"></a>
+<a name="index-CutOff"></a>
+<div class="float">
+<img src="../png/surf3_cutoff.png" alt="../png/surf3_cutoff">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut '(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)'
+box
+surf3 a
+</pre><hr size="6">
+<a name="Dual-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutOff-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfC-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dual-plotting-samples-1"></a>
+<h2 class="section">3.4 Dual plotting samples</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#SurfC-sample">3.4.1 SurfC sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#SurfA-sample">3.4.2 SurfA sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TileS-sample">3.4.3 TileS sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Map-sample">3.4.4 Map sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Traj-sample">3.4.5 Traj sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect-sample">3.4.6 Vect sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectL-sample">3.4.7 VectL sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectC-sample">3.4.8 VectC sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-sample">3.4.9 Flow sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe-sample">3.4.10 Pipe sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dew-sample">3.4.11 Dew sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3C-sample">3.4.12 Surf3C sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3A-sample">3.4.13 Surf3A sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect-3D-sample">3.4.14 Vect 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectL-3D-sample">3.4.15 VectL 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectC-3D-sample">3.4.16 VectC 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-3D-sample">3.4.17 Flow 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe-3D-sample">3.4.18 Pipe 3D sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Crust-sample">3.4.19 Crust sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dots-sample">3.4.20 Dots sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+</table>
+<hr size="6">
+<a name="SurfC-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfA-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfC-sample-1"></a>
+<h3 class="subsection">3.4.1 SurfC sample</h3>
+<a name="index-SurfC"></a>
+<div class="float">
+<img src="../png/surfc.png" alt="../png/surfc">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surfc a b
+</pre><hr size="6">
+<a name="SurfA-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfC-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TileS-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfA-sample-1"></a>
+<h3 class="subsection">3.4.2 SurfA sample</h3>
+<a name="index-SurfA"></a>
+<div class="float">
+<img src="../png/surfa.png" alt="../png/surfa">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surfa a b
+</pre><hr size="6">
+<a name="TileS-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfA-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Map-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TileS-sample-1"></a>
+<h3 class="subsection">3.4.3 TileS sample</h3>
+<a name="index-TileS"></a>
+<div class="float">
+<img src="../png/tiles.png" alt="../png/tiles">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+tile a b
+</pre><hr size="6">
+<a name="Map-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TileS-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Traj-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Map-sample-1"></a>
+<h3 class="subsection">3.4.4 Map sample</h3>
+<a name="index-Map"></a>
+<div class="float">
+<img src="../png/map.png" alt="../png/map">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+text 0 0 '\to'
+zrange -2 2
+subplot 2 1 0
+text 0 1.1 '\{x, y\}' '' -2
+box
+fill a 'x'
+fill b 'y'
+map a b 'brgk' 0 0
+subplot 2 1 1
+text 0 1.1 '\{\frac{x^3+y^3}{2}, \frac{x-y}{2}\}' '' -2
+box
+fill a '(x^3+y^3)/2'
+fill b '(x-y)/2'
+map a b 'brgk' 0 0
+</pre><hr size="6">
+<a name="Traj-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Map-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Traj-sample-1"></a>
+<h3 class="subsection">3.4.5 Traj sample</h3>
+<a name="index-Traj"></a>
+<div class="float">
+<img src="../png/traj.png" alt="../png/traj">
+</div><pre class="verbatim">new y 50 3
+new x 50
+new y1 50
+new y2 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+fill x -1 1
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+box
+plot x y
+traj x y y1 y2
+</pre><hr size="6">
+<a name="Vect-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Traj-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectL-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-sample-1"></a>
+<h3 class="subsection">3.4.6 Vect sample</h3>
+<a name="index-Vect"></a>
+<div class="float">
+<img src="../png/vect.png" alt="../png/vect">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vect a b
+</pre><hr size="6">
+<a name="VectL-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectC-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectL-sample-1"></a>
+<h3 class="subsection">3.4.7 VectL sample</h3>
+<a name="index-VectL"></a>
+<div class="float">
+<img src="../png/vectl.png" alt="../png/vectl">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectl a b
+</pre><hr size="6">
+<a name="VectC-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectL-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectC-sample-1"></a>
+<h3 class="subsection">3.4.8 VectC sample</h3>
+<a name="index-VectC"></a>
+<div class="float">
+<img src="../png/vectc.png" alt="../png/vectc">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectc a b
+</pre><hr size="6">
+<a name="Flow-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectC-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-sample-1"></a>
+<h3 class="subsection">3.4.9 Flow sample</h3>
+<a name="index-Flow"></a>
+<div class="float">
+<img src="../png/flow.png" alt="../png/flow">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+flow a b
+</pre><hr size="6">
+<a name="Pipe-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dew-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-sample-1"></a>
+<h3 class="subsection">3.4.10 Pipe sample</h3>
+<a name="index-Pipe"></a>
+<div class="float">
+<img src="../png/pipe.png" alt="../png/pipe">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+box
+pipe a b
+</pre><hr size="6">
+<a name="Dew-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3C-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dew-sample-1"></a>
+<h3 class="subsection">3.4.11 Dew sample</h3>
+<a name="index-Dew"></a>
+<div class="float">
+<img src="../png/dew.png" alt="../png/dew">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+light on
+dew a b
+</pre><hr size="6">
+<a name="Surf3C-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dew-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3A-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3C-sample-1"></a>
+<h3 class="subsection">3.4.12 Surf3C sample</h3>
+<a name="index-Surf3C"></a>
+<div class="float">
+<img src="../png/surf3c.png" alt="../png/surf3c">
+</div><pre class="verbatim">new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3c a b
+</pre><hr size="6">
+<a name="Surf3A-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3C-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3A-sample-1"></a>
+<h3 class="subsection">3.4.13 Surf3A sample</h3>
+<a name="index-Surf3A"></a>
+<div class="float">
+<img src="../png/surf3a.png" alt="../png/surf3a">
+</div><pre class="verbatim">new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3a a b
+</pre><hr size="6">
+<a name="Vect-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3A-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectL-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-3D-sample-1"></a>
+<h3 class="subsection">3.4.14 Vect 3D sample</h3>
+<a name="index-Vect-1"></a>
+<div class="float">
+<img src="../png/vect3.png" alt="../png/vect3">
+</div><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vect ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="VectL-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectC-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectL-3D-sample-1"></a>
+<h3 class="subsection">3.4.15 VectL 3D sample</h3>
+<a name="index-VectL-1"></a>
+<div class="float">
+<img src="../png/vectl3.png" alt="../png/vectl3">
+</div><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectl ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="VectC-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectL-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectC-3D-sample-1"></a>
+<h3 class="subsection">3.4.16 VectC 3D sample</h3>
+<a name="index-VectC-1"></a>
+<div class="float">
+<img src="../png/vectc3.png" alt="../png/vectc3">
+</div><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectc ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="Flow-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectC-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-3D-sample-1"></a>
+<h3 class="subsection">3.4.17 Flow 3D sample</h3>
+<a name="index-Flow-1"></a>
+<div class="float">
+<img src="../png/flow3.png" alt="../png/flow3">
+</div><pre class="verbatim">new ex 30 30 30
+new ey 30 30 30
+new ez 30 30 30
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+flow ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="Pipe-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Crust-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-3D-sample-1"></a>
+<h3 class="subsection">3.4.18 Pipe 3D sample</h3>
+<a name="index-Pipe-1"></a>
+<div class="float">
+<img src="../png/pipe3.png" alt="../png/pipe3">
+</div><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+light on
+box
+pipe ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="Crust-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dots-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Crust-sample-1"></a>
+<h3 class="subsection">3.4.19 Crust sample</h3>
+<a name="index-Crust"></a>
+<div class="float">
+<img src="../png/crust.png" alt="../png/crust">
+</div><pre class="verbatim">read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+light on
+box
+crust a 'p'
+</pre><hr size="6">
+<a name="Dots-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Crust-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dots-sample-1"></a>
+<h3 class="subsection">3.4.20 Dots sample</h3>
+<a name="index-Dots"></a>
+<div class="float">
+<img src="../png/dots.png" alt="../png/dots">
+</div><pre class="verbatim">read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+box
+dots a 'p'
+</pre>
+<hr size="6">
+<a name="Basic-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dots-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Basic-features-1"></a>
+<h2 class="section">3.5 Basic features</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t1D-plot-sample">3.5.1 1D plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plot-sample">3.5.2 2D plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plot-sample">3.5.3 3D plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Line-styles-sample">3.5.4 Line styles sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Arrow-styles-sample">3.5.5 Arrow styles sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-styles-sample">3.5.6 Text styles sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TeX-parsing-sample">3.5.7 TeX parsing sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-faces-sample">3.5.8 Font faces sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Colors-sample">3.5.9 Colors sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Color-schemes-sample">3.5.10 Color schemes sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Normal-transparency">3.5.11 Normal transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Glass_002dlike-transparency">3.5.12 Glass-like transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lamp_002dlike-transparency">3.5.13 Lamp-like transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+</table>
+<hr size="6">
+<a name="g_t1D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Basic-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-plot-sample-1"></a>
+<h3 class="subsection">3.5.1 1D plot sample</h3>
+<a name="index-Plot-1"></a>
+<a name="index-Bars-4"></a>
+<a name="index-SubPlot"></a>
+<div class="float">
+<img src="../png/sample8.png" alt="../png/sample8">
+</div><pre class="verbatim">new y0 50: modify y0 'sin(pi*(2*x-1))'
+subplot 2 2 0
+plot y0: box
+
+subplot 2 2 1
+new y1 50 2
+modify y1 'sin(pi*2*x-pi)'
+modify y1 'cos(pi*2*x-pi)/2' 1
+plot y1: box
+
+new x 50: modify x 'cos(pi*2*x-pi)'
+plot x y0 'Y+'
+plot y1(:,0) y(:,1) 'q|'
+
+subplot 2 2 2:rotate 60 40
+new z 50:   modify z '2*x-1'
+plot x y0 z 'g':box
+new y2 10 3
+modify y2 'cos(pi*(2*x-1-y))'
+modify y2 '2*x-1' 2
+plot y2(:,0) y2(:,1) y2(:,2) 'bo '
+
+subplot 2 2 3:rotate 60 40
+bars x y0 z 'r':box
+</pre><hr size="6">
+<a name="g_t2D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-plot-sample-1"></a>
+<h3 class="subsection">3.5.2 2D plot sample</h3>
+<a name="index-Surf-4"></a>
+<a name="index-Dens-1"></a>
+<a name="index-Alpha-1"></a>
+<div class="float">
+<img src="../png/sample9.png" alt="../png/sample9">
+</div><pre class="verbatim">light on
+
+new a0 50 40
+modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+subplot 2 2 0:rotate 60 40
+surf a0: box
+
+new x 50 40: new y 50 40: new z 50 40
+modify x '0.8*sin(2*pi*x)*sin(pi*y)'
+modify y '0.8*cos(2*pi*x)*sin(pi*y)'
+modify z '0.8*cos(pi*y)'
+subplot 2 2 1:rotate 60 40
+surf x y z 'bbwrr': box
+
+new a1 50 40 3
+modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
+subplot 2 2 2:rotate 60 40
+alpha on
+surf a1: box
+
+subplot 2 2 3: rotate 60 40
+dens a1: box
+</pre><hr size="6">
+<a name="g_t3D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Line-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-plot-sample-1"></a>
+<h3 class="subsection">3.5.3 3D plot sample</h3>
+<a name="index-Surf-5"></a>
+<a name="index-Dens-2"></a>
+<a name="index-Alpha-2"></a>
+<div class="float">
+<img src="../png/sampleb.png" alt="../png/sampleb">
+</div><pre class="verbatim">alpha on: light on
+light 0 0 0 1
+new a 30 30 30: new b 30 30 30
+modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
+modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
+caxis 0 1
+
+subplot 2 2 0: rotate 40 60
+surf3 a 'wgk': box
+subplot 2 2 1: rotate 40 60
+densa a: box: axis
+subplot 2 2 2: rotate 40 60
+cloud a: box
+subplot 2 2 3: rotate 40 60
+surf3a b a 'q': box
+</pre><hr size="6">
+<a name="Line-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Arrow-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Line-styles-sample-1"></a>
+<h3 class="subsection">3.5.4 Line styles sample</h3>
+<a name="index-Mark-1"></a>
+<a name="index-Line"></a>
+<div class="float">
+<img src="../png/sample5.png" alt="../png/sample5">
+</div><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Arrow-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Line-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Arrow-styles-sample-1"></a>
+<h3 class="subsection">3.5.5 Arrow styles sample</h3>
+<a name="index-Line-1"></a>
+<div class="float">
+<img src="../png/sampled.png" alt="../png/sampled">
+</div><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Text-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Arrow-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TeX-parsing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-styles-sample-1"></a>
+<h3 class="subsection">3.5.6 Text styles sample</h3>
+<a name="index-Puts"></a>
+<div class="float">
+<img src="../png/sample4.png" alt="../png/sample4">
+</div><pre class="verbatim">text 0 1 'Text can be in ASCII and in Unicode'
+text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
+text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
+text 0 -0.2 'Easy to \a{overline} or \u{underline}'
+text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
+text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
+</pre><hr size="6">
+<a name="TeX-parsing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-faces-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TeX-parsing-sample-1"></a>
+<h3 class="subsection">3.5.7 TeX parsing sample</h3>
+<a name="index-Puts-1"></a>
+<div class="float">
+<img src="../png/samplee.png" alt="../png/samplee">
+</div><pre class="verbatim">text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}' '' -4
+</pre><hr size="6">
+<a name="Font-faces-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TeX-parsing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Font-faces-sample-1"></a>
+<h3 class="subsection">3.5.8 Font faces sample</h3>
+<a name="index-Puts-2"></a>
+<div class="float">
+<img src="../png/fonts.png" alt="../png/fonts">
+</div><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-faces-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Color-schemes-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Colors-sample-1"></a>
+<h3 class="subsection">3.5.9 Colors sample</h3>
+<div class="float">
+<img src="../png/colors.png" alt="../png/colors">
+</div><pre class="verbatim">#LENUQ
+facez -1   -1 0 0.4 0.3 'L#': text -0.8 -0.9 'L' 'C:w'
+facez -0.6 -1 0 0.4 0.3 'E#': text -0.4 -0.9 'E' 'C:w'
+facez -0.2 -1 0 0.4 0.3 'N#': text  0   -0.9 'N' 'C:w'
+facez  0.2 -1 0 0.4 0.3 'U#': text  0.4 -0.9 'U' 'C:w'
+facez  0.6 -1 0 0.4 0.3 'Q#': text  0.8 -0.9 'Q' 'C:w'
+#lenuq
+facez -1   -0.7 0 0.4 0.3 'l#': text -0.8 -0.6 'l' 'C:k'
+facez -0.6 -0.7 0 0.4 0.3 'e#': text -0.4 -0.6 'e' 'C:k'
+facez -0.2 -0.7 0 0.4 0.3 'n#': text  0   -0.6 'n' 'C:k'
+facez  0.2 -0.7 0 0.4 0.3 'u#': text  0.4 -0.6 'u' 'C:k'
+facez  0.6 -0.7 0 0.4 0.3 'q#': text  0.8 -0.6 'q' 'C:k'
+#CMYkP
+facez -1   -0.4 0 0.4 0.3 'C#': text -0.8 -0.3 'C' 'C:w'
+facez -0.6 -0.4 0 0.4 0.3 'M#': text -0.4 -0.3 'M' 'C:w'
+facez -0.2 -0.4 0 0.4 0.3 'Y#': text  0   -0.3 'Y' 'C:w'
+facez  0.2 -0.4 0 0.4 0.3 'k#': text  0.4 -0.3 'k' 'C:w'
+facez  0.6 -0.4 0 0.4 0.3 'P#': text  0.8 -0.3 'P' 'C:w'
+#lenuq
+facez -1   -0.1 0 0.4 0.3 'c#': text -0.8 0 'c' 'C:k'
+facez -0.6 -0.1 0 0.4 0.3 'm#': text -0.4 0 'm' 'C:k'
+facez -0.2 -0.1 0 0.4 0.3 'y#': text  0   0 'y' 'C:k'
+facez  0.2 -0.1 0 0.4 0.3 'w#': text  0.4 0 'w' 'C:k'
+facez  0.6 -0.1 0 0.4 0.3 'p#': text  0.8 0 'p' 'C:k'
+#BGRHW
+facez -1   0.2 0 0.4 0.3 'B#': text -0.8 0.3 'B' 'C:k'
+facez -0.6 0.2 0 0.4 0.3 'G#': text -0.4 0.3 'G' 'C:k'
+facez -0.2 0.2 0 0.4 0.3 'R#': text  0   0.3 'R' 'C:k'
+facez  0.2 0.2 0 0.4 0.3 'H#': text  0.4 0.3 'H' 'C:k'
+facez  0.6 0.2 0 0.4 0.3 'W#': text  0.8 0.3 'W' 'C:k'
+#bgrhw
+facez -1   0.5 0 0.4 0.3 'b#': text -0.8 0.6 'b' 'C:w'
+facez -0.6 0.5 0 0.4 0.3 'g#': text -0.4 0.6 'g' 'C:w'
+facez -0.2 0.5 0 0.4 0.3 'r#': text  0   0.6 'r' 'C:w'
+facez  0.2 0.5 0 0.4 0.3 'h#': text  0.4 0.6 'h' 'C:w'
+facez  0.6 0.5 0 0.4 0.3 'w#': text  0.8 0.6 'w' 'C:w'
+#brighted
+facez -1   0.8 0 0.4 0.3 'r1#': text -0.8 0.9 'r1' 'C:k'
+facez -0.6 0.8 0 0.4 0.3 'r3#': text -0.4 0.9 'r3' 'C:k'
+facez -0.2 0.8 0 0.4 0.3 'r5#': text  0   0.9 'r5' 'C:k'
+facez  0.2 0.8 0 0.4 0.3 'r7#': text  0.4 0.9 'r7' 'C:k'
+facez  0.6 0.8 0 0.4 0.3 'r9#': text  0.8 0.9 'r9' 'C:k'
+</pre><hr size="6">
+<a name="Color-schemes-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Normal-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Color-schemes-sample-1"></a>
+<h3 class="subsection">3.5.10 Color schemes sample</h3>
+<a name="index-Colorbar-1"></a>
+<div class="float">
+<img src="../png/color_schemes.png" alt="../png/color_schemes">
+</div><pre class="verbatim">new a 256 2: fill a 'x'
+subplot 2 10 0 0.2:dens a 'kw'
+text -1.4 -0.3 'kw' '' -8
+subplot 2 10 1 0.2:dens a 'wk'
+text -1.4 -0.3 'wk' '' -8
+subplot 2 10 2 0.2:dens a 'kHCcw'
+text -1.4 -0.3 'kHCcw' '' -8
+subplot 2 10 3 0.2:dens a 'kBbcw'
+text -1.4 -0.3 'kBbcw' '' -8
+subplot 2 10 4 0.2:dens a 'kRryw'
+text -1.4 -0.3 'kRryw' '' -8
+subplot 2 10 5 0.2:dens a 'kGgew'
+text -1.4 -0.3 'kGgew' '' -8
+subplot 2 10 6 0.2:dens a 'BbwrR'
+text -1.4 -0.3 'BbwrR' '' -8
+subplot 2 10 7 0.2:dens a 'BbwgG'
+text -1.4 -0.3 'BbwgG' '' -8
+subplot 2 10 8 0.2:dens a 'GgwmM'
+text -1.4 -0.3 'GgwmM' '' -8
+subplot 2 10 9 0.2:dens a 'UuwqR'
+text -1.4 -0.3 'UuwqR' '' -8
+subplot 2 10 10 0.2:dens a 'QqwcC'
+text -1.4 -0.3 'QqwcC' '' -8
+subplot 2 10 11 0.2:dens a 'CcwyY'
+text -1.4 -0.3 'CcwyY' '' -8
+subplot 2 10 12 0.2:dens a 'bcwyr'
+text -1.4 -0.3 'bcwyr' '' -8
+subplot 2 10 13 0.2:dens a 'bwr'
+text -1.4 -0.3 'bwr' '' -8
+subplot 2 10 14 0.2:dens a 'BbcyrR'
+text -1.4 -0.3 'BbcyrR' '' -8
+subplot 2 10 15 0.2:dens a 'UbcyqR'
+text -1.4 -0.3 'UbcyqR' '' -8
+subplot 2 10 16 0.2:dens a 'BbcwyrR'
+text -1.4 -0.3 'BbcwyrR' '' -8
+subplot 2 10 17 0.2:dens a 'bcyr'
+text -1.4 -0.3 'bcyr' '' -8
+subplot 2 10 18 0.2:dens a 'BbcyrR|'
+text -1.4 -0.3 'BbcyrR|' '' -8
+subplot 2 10 19 0.2:dens a 'bgr'
+text -1.4 -0.3 'bgr' '' -8
+</pre><hr size="6">
+<a name="Normal-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Color-schemes-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Glass_002dlike-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Normal-transparency-1"></a>
+<h3 class="subsection">3.5.11 Normal transparency</h3>
+<a name="index-TranspType"></a>
+<div class="float">
+<img src="../png/type0.png" alt="../png/type0">
+</div><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 0: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre><hr size="6">
+<a name="Glass_002dlike-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Normal-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lamp_002dlike-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Glass_002dlike-transparency-1"></a>
+<h3 class="subsection">3.5.12 Glass-like transparency</h3>
+<a name="index-TranspType-1"></a>
+<div class="float">
+<img src="../png/type1.png" alt="../png/type1">
+</div><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 1: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre><hr size="6">
+<a name="Lamp_002dlike-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Glass_002dlike-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Lamp_002dlike-transparency-1"></a>
+<h3 class="subsection">3.5.13 Lamp-like transparency</h3>
+<a name="index-TranspType-2"></a>
+<div class="float">
+<img src="../png/type2.png" alt="../png/type2">
+</div><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 2: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<hr size="6">
+<a name="Additional-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lamp_002dlike-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Additional-features-1"></a>
+<h2 class="section">3.6 Additional features</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Legend-sample">3.6.1 Legend sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Adding-mesh-sample">3.6.2 Adding mesh sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf-_0026-Cont-sample">3.6.3 Surf &amp; Cont sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-_0026-Dens-sample">3.6.4 Flow &amp; Dens sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Several-light-sample">3.6.5 Several light sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mirrored-surface-sample">3.6.6 Mirrored surface sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-with-labels-sample">3.6.7 Cont with labels sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ternary-plot-sample">3.6.8 Ternary plot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Coloring-by-coordinates-sample">3.6.9 Coloring by coordinates sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Drops-sample">3.6.10 Drops sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Molecules-drawing-sample">3.6.11 Molecules drawing sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">    
+</td></tr>
+</table>
+<hr size="6">
+<a name="Legend-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Additional-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Adding-mesh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Legend-sample-1"></a>
+<h3 class="subsection">3.6.1 Legend sample</h3>
+<a name="index-Plot-2"></a>
+<a name="index-Legend"></a>
+<a name="index-AddLegend"></a>
+<div class="float">
+<img src="../png/legend.png" alt="../png/legend">
+</div><pre class="verbatim">new f 50 3
+modify f 'sin(2*pi*x*x)'
+modify f 'sin(2*pi*x)' 1
+modify f 'sin(2*pi*sqrt(x))' 2
+axis 0 -1 1 1
+box
+plot f
+axis
+addlegend 'sin(\pi {x^2})' 'b'
+addlegend 'sin(\pi x)' 'g*'
+addlegend 'sin(\pi \sqrt{\a x})' 'r+'
+legend
+</pre><hr size="6">
+<a name="Adding-mesh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf-_0026-Cont-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Adding-mesh-sample-1"></a>
+<h3 class="subsection">3.6.2 Adding mesh sample</h3>
+<a name="index-SubPlot-1"></a>
+<a name="index-Surf-6"></a>
+<a name="index-Dens-3"></a>
+<a name="index-Cont-1"></a>
+<a name="index-Axial-1"></a>
+<div class="float">
+<img src="../png/samplea.png" alt="../png/samplea">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+alpha on
+light on
+subplot 2 2 0
+rotate 40 60
+surf a 'BbcyrR#'
+box
+subplot 2 2 1
+rotate 40 60
+dens a 'BbcyrR#'
+box
+subplot 2 2 2
+rotate 40 60
+cont a 'BbcyrR#'
+box
+subplot 2 2 3
+rotate 40 60
+axial a 'BbcyrR#'
+box
+</pre><hr size="6">
+<a name="Surf-_0026-Cont-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Adding-mesh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-_0026-Dens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-_0026-Cont-sample-1"></a>
+<h3 class="subsection">3.6.3 Surf &amp; Cont sample</h3>
+<a name="index-Surf-7"></a>
+<a name="index-Cont-2"></a>
+<div class="float">
+<img src="../png/surf_cont_y.png" alt="../png/surf_cont_y">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+cont a 'y'
+</pre><hr size="6">
+<a name="Flow-_0026-Dens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf-_0026-Cont-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Several-light-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-_0026-Dens-sample-1"></a>
+<h3 class="subsection">3.6.4 Flow &amp; Dens sample</h3>
+<a name="index-Flow-2"></a>
+<a name="index-Dens-4"></a>
+<div class="float">
+<img src="../png/flow_dens.png" alt="../png/flow_dens">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+copy d a
+modify d 'sqrt(v^2+w^2)' a b
+box
+flow a b 'br'
+dens d 'BbcyrR'
+</pre><hr size="6">
+<a name="Several-light-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-_0026-Dens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mirrored-surface-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Several-light-sample-1"></a>
+<h3 class="subsection">3.6.5 Several light sample</h3>
+<a name="index-Surf-8"></a>
+<a name="index-Light"></a>
+<div class="float">
+<img src="../png/several_light.png" alt="../png/several_light">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+light 1 0 1 0 'c'
+light 2 1 0 0 'y'
+light 3 0 -1 0 'm'
+box
+surf a 'h'
+</pre><hr size="6">
+<a name="Mirrored-surface-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Several-light-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-with-labels-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mirrored-surface-sample-1"></a>
+<h3 class="subsection">3.6.6 Mirrored surface sample</h3>
+<a name="index-Surf-9"></a>
+<div class="float">
+<img src="../png/mirror.png" alt="../png/mirror">
+</div><pre class="verbatim">new a 30 40
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf a 'r'; yrange 0 1
+surf a 'b'; yrange 0 -1
+box
+</pre><p>or
+</p><pre class="verbatim">new a 30 40
+var x 30 -1 1
+var y1 40 0 1
+var y2 40 0 -1
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf x y1 a 'r'
+surf x y2 a 'b'
+box
+</pre><hr size="6">
+<a name="Cont-with-labels-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mirrored-surface-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ternary-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-with-labels-sample-1"></a>
+<h3 class="subsection">3.6.7 Cont with labels sample</h3>
+<a name="index-Cont-3"></a>
+<div class="float">
+<img src="../png/contt.png" alt="../png/contt">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+cont a 'BbcyrRt'
+</pre><hr size="6">
+<a name="Ternary-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-with-labels-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Coloring-by-coordinates-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ternary-plot-sample-1"></a>
+<h3 class="subsection">3.6.8 Ternary plot sample</h3>
+<a name="index-Ternary"></a>
+<div class="float">
+<img src="../png/ternary.png" alt="../png/ternary">
+</div><pre class="verbatim">new rx 10
+new ry 10
+new x 50
+new y 50
+new a 20 30
+modify a '4*x*y'
+modify x '0.25*(1+cos(2*pi*x))'
+modify y '0.25*(1+sin(2*pi*x))'
+modify rx 'rnd'
+modify ry 'rnd*(1-v)' rx
+text -0.8 1.3 'Ternary plot (x+y+t=1)'
+ternary on
+plot x y 'r2'
+plot rx ry 'q^ '
+cont a
+line 0.5 0 0 0.75 'g2'
+axis
+grid 'xyz' 'B;'
+xlabel 'x comp.'
+ylabel 'y comp.'
+tlabel 't comp.'
+</pre><hr size="6">
+<a name="Coloring-by-coordinates-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ternary-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Drops-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Coloring-by-coordinates-sample-1"></a>
+<h3 class="subsection">3.6.9 Coloring by coordinates sample</h3>
+<a name="index-Surf3-4"></a>
+<div class="float">
+<img src="../png/surf3_rgbd.png" alt="../png/surf3_rgbd">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+surf3 a 'bgrd'
+</pre><hr size="6">
+<a name="Drops-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Coloring-by-coordinates-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Molecules-drawing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Drops-sample-1"></a>
+<h3 class="subsection">3.6.10 Drops sample</h3>
+<a name="index-Drop"></a>
+<div class="float">
+<img src="../png/drops.png" alt="../png/drops">
+</div><pre class="verbatim">light on
+text -1 1.2 'sh=0'
+drop -1 0 0 1 0.5 'r' 0
+text -0.33 1.2 'sh=0.33'
+drop -0.33 0 0 1 0.5 'r' 0.33
+text 0.33 1.2 'sh=0.67'
+drop 0.33 0 0 1 0.5 'r' 0.67
+text 1 1.2 'sh=1'
+drop 1 0 0 1 0.5 'r' 1
+ball -1 0 1 'k'
+ball -0.33 0 1 'k'
+ball 0.33 0 1 'k'
+ball 1 0 1 'k'
+line -1 0 1 1 0 1 'b'
+new h 100
+modify h '0.25*(1+x)^2'
+plot h 'k|'
+text -1 0.6 'h\sim(1+sh)^2' 'rL'
+</pre><hr size="6">
+<a name="Molecules-drawing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Drops-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Molecules-drawing-sample-1"></a>
+<h3 class="subsection">3.6.11 Molecules drawing sample</h3>
+<a name="index-Drop-1"></a>
+<a name="index-Sphere"></a>
+<div class="float">
+<img src="../png/molecule.png" alt="../png/molecule">
+</div><pre class="verbatim">alpha on
+light on
+subplot 2 2 0
+text 0 1.2 'Methane, CH_4' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'k'
+drop 0 0 0 0 0 1 0.35 'h' 1 2
+sphere 0 0 0.7 0.25 'g'
+drop 0 0 0 -0.94 0 -0.33 0.35 'h' 1 2
+sphere -0.66 0 -0.23 0.25 'g'
+drop 0 0 0 0.47 0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 0.57 -0.23 0.25 'g'
+drop 0 0 0 0.47 -0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 -0.57 -0.23 0.25 'g'
+subplot 2 2 1
+text 0 1.2 'Water, H{_2}O' '' -3
+rotate 60 100
+sphere 0 0 0 0.25 'r'
+drop 0 0 0 0.3 0.5 0 0.3 'm' 1 2
+sphere 0.3 0.5 0 0.25 'g'
+drop 0 0 0 0.3 -0.5 0 0.3 'm' 1 2
+sphere 0.3 -0.5 0 0.25 'g'
+subplot 2 2 2
+text 0 1.2 'Oxygen, O_2' '' -3
+rotate 60 120
+drop 0 0.5 0 0 -0.3 0 0.3 'm' 1 2
+sphere 0 0.5 0 0.25 'r'
+drop 0 -0.5 0 0 0.3 0 0.3 'm' 1 2
+sphere 0 -0.5 0 0.25 'r'
+subplot 2 2 3
+text 0 1.2 0 'Ammonia, NH_3' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'b'
+drop 0 0 0 0.33 0.57 0 0.32 'n' 1 2
+sphere 0.33 0.57 0 0.25 'g'
+drop 0 0 0 0.33 -0.57 0 0.32 'n' 1 2
+sphere 0.33 -0.57 0 0.25 'g'
+drop 0 0 0 -0.65 0 0 0.32 'n' 1 2
+sphere -0.65 0 0 0.25 'g'
+</pre><hr size="6">
+<a name="Advanced-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Molecules-drawing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Curvelinear-coorinates-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Advanced-features-1"></a>
+<h2 class="section">3.7 Advanced features</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Curvelinear-coorinates-sample">3.7.1 Curvelinear coorinates sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2_002daxes-sample">3.7.2 2-axes sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Semi_002dlog-sample">3.7.3 Semi-log sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Log_002dlog-sample">3.7.4 Log-log sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fitting-sample">3.7.5 Fitting sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Envelop-sample">3.7.6 Envelop sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Sew-sample">3.7.7 Sew sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#STFA-sample">3.7.8 STFA sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#PDE-sample">3.7.9 PDE sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Beam-tracing-sample">3.7.10 Beam tracing sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Parser-sample">3.7.11 Parser sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Manual-ticks-sample">3.7.12 Tick values sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ColumnPlot-sample">3.7.13 ColumnPlot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#StickPlot-sample">3.7.14 StickPlot sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stereo-image-sample">3.7.15 Stereo image sample</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+</table>
+<hr size="6">
+<a name="Curvelinear-coorinates-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Advanced-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2_002daxes-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Curvelinear-coorinates-sample-1"></a>
+<h3 class="subsection">3.7.1 Curvelinear coorinates sample</h3>
+<a name="index-Axis-3"></a>
+<div class="float">
+<img src="../png/sample3.png" alt="../png/sample3">
+</div><pre class="verbatim">origin -1 1 -1
+subplot 2 2 0
+rotate 60 40
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cartesian'
+subplot 2 2 1
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cylindrical'
+subplot 2 2 2
+rotate 60 40
+axis '2*y*x' 'y*y - x*x' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Parabolic'
+subplot 2 2 3
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Spiral'
+axis '' '' '' # set to default Cartesian
+</pre><hr size="6">
+<a name="g_t2_002daxes-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Curvelinear-coorinates-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Semi_002dlog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2_002daxes-sample-1"></a>
+<h3 class="subsection">3.7.2 2-axes sample</h3>
+<a name="index-Axis-4"></a>
+<div class="float">
+<img src="../png/2_axis.png" alt="../png/2_axis">
+</div><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+axis -1 -1 -1 1 1 1
+origin -1 -1 -1
+axis
+ylabel 'axis 1' 0
+plot y1 'b'
+axis 0 0 0 1 1 1
+origin 1 1 1
+axis
+ylabel 'axis 2' 0
+stem y2 'r'
+</pre><hr size="6">
+<a name="Semi_002dlog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2_002daxes-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Log_002dlog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Semi_002dlog-sample-1"></a>
+<h3 class="subsection">3.7.3 Semi-log sample</h3>
+<a name="index-Axis-5"></a>
+<a name="index-SetTicks"></a>
+<a name="index-Plot-3"></a>
+<div class="float">
+<img src="../png/semilog.png" alt="../png/semilog">
+</div><pre class="verbatim">new x 2000
+new y 2000
+modify x '0.01/(x+10^(-5))'
+modify y 'sin(1/v)' x
+xrange 0.01 1000
+origin 0.01 -1 0
+xtick 0
+axis 'lg(x)' '' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g'
+xlabel 'x' 0
+ylabel 'y = sin 1/x' 0
+box
+</pre><hr size="6">
+<a name="Log_002dlog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Semi_002dlog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fitting-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Log_002dlog-sample-1"></a>
+<h3 class="subsection">3.7.4 Log-log sample</h3>
+<a name="index-Axis-6"></a>
+<a name="index-SetTicks-1"></a>
+<a name="index-Plot-4"></a>
+<div class="float">
+<img src="../png/loglog.png" alt="../png/loglog">
+</div><pre class="verbatim">new x 100
+new y 100
+modify x 'pow(10,6*x-3)'
+modify y 'sqrt(1+v^2)' x
+axis 0.001 0.1 1000 1000
+xtick 0
+ytick 0
+axis 'lg(x)' 'lg(y)' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g;'
+xlabel 'x' 0
+ylabel 'y=\sqrt{1+x^2}' 0
+box
+</pre><hr size="6">
+<a name="Fitting-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Log_002dlog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Envelop-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fitting-sample-1"></a>
+<h3 class="subsection">3.7.5 Fitting sample</h3>
+<a name="index-Fit"></a>
+<a name="index-PutsFit"></a>
+<div class="float">
+<img src="../png/fit.png" alt="../png/fit">
+</div><pre class="verbatim">new rnd 100
+fill rnd '0.4*rnd+0.1+sin(2*pi*x)'
+new in 100
+fill in '0.3+sin(2*pi*x)'
+yrange -2 2
+plot rnd '. '
+box
+list ini 1 1 3
+fit res rnd 'a+b*sin(c*x)' 'abc' ini
+plot res 'r'
+plot in 'b'
+text -1 -1.3 'fitted:' 'L:r' -1
+putsfit 0 -1.8 'y = ' 'C:r'
+text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
+</pre><hr size="6">
+<a name="Envelop-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fitting-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Sew-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Envelop-sample-1"></a>
+<h3 class="subsection">3.7.6 Envelop sample</h3>
+<a name="index-Envelop"></a>
+<div class="float">
+<img src="../png/envelop.png" alt="../png/envelop">
+</div><pre class="verbatim">new a 1000
+fill a 'exp(-8*x^2)*sin(10*pi*x)'
+plot a 'b'
+envelop a
+plot a 'r'
+axis
+</pre><hr size="6">
+<a name="Sew-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Envelop-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#STFA-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Sew-sample-1"></a>
+<h3 class="subsection">3.7.7 Sew sample</h3>
+<a name="index-Sew"></a>
+<div class="float">
+<img src="../png/sew.png" alt="../png/sew">
+</div><pre class="verbatim">new a 100 100
+modify a 'mod((y^2-(1-x)^2)/2,0.1)'
+rotate 40 60
+light on
+alpha on
+surf a 'b'
+sew a 'xy' 0.1
+surf a 'r'
+box
+</pre><hr size="6">
+<a name="STFA-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Sew-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#PDE-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="STFA-sample-1"></a>
+<h3 class="subsection">3.7.8 STFA sample</h3>
+<a name="index-STFA"></a>
+<div class="float">
+<img src="../png/stfa.png" alt="../png/stfa">
+</div><pre class="verbatim">new a 2000
+new b 2000
+fill a 'cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)'
+subplot 1 2 0
+plot a
+axis
+xlabel '\i t'
+subplot 1 2 1
+stfa a b 64 ''
+axis
+ylabel '\omega' 0
+xlabel '\i t'
+</pre><hr size="6">
+<a name="PDE-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#STFA-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Beam-tracing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="PDE-sample-1"></a>
+<h3 class="subsection">3.7.9 PDE sample</h3>
+<a name="index-mglPDE"></a>
+<a name="index-mglRay"></a>
+<div class="float">
+<img src="../png/pde.png" alt="../png/pde">
+</div><pre class="verbatim">axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+fill re 'exp(-48*(x+0.7)^2)'
+pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)' re im 0.01 30
+transpose a
+crange 0 1
+dens a 'wyrRk'
+fplot '-x' 'k|'
+text 0 0.85 'absorption: (x+z)/2 for x+z&gt;0' '' -1
+title 'Equation: ik_0\partial_zu + \Delta u + x\cdot u + i \frac{x+z}{2}\cdot u = 0' 'iC' -1.5
+</pre><hr size="6">
+<a name="Beam-tracing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#PDE-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Parser-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Beam-tracing-sample-1"></a>
+<h3 class="subsection">3.7.10 Beam tracing sample</h3>
+<a name="index-mglQO2d"></a>
+<a name="index-mglRay-1"></a>
+<div class="float">
+<img src="../png/qo2d.png" alt="../png/qo2d">
+</div><pre class="verbatim">define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)'
+ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
+plot r(0) r(1) 'k'
+axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+new xx
+new yy
+fill re 'exp(-48*x^2)'
+qo2d a $1 re im r 1 30 xx yy 
+crange 0 1
+dens xx yy a 'wyrRk'
+fplot '-x' 'k|'
+text -0.8 0.85 'absorption: (x+y)/2 for x+y&gt;0' 'L' -1
+text 0.5 -0.05 'central ray' 'L' -1
+title 'Beam and ray tracing' 'C' -1.5
+</pre><hr size="6">
+<a name="Parser-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Beam-tracing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Manual-ticks-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Parser-sample-1"></a>
+<h3 class="subsection">3.7.11 Parser sample</h3>
+<a name="index-mglParse"></a>
+<hr size="6">
+<a name="Manual-ticks-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Parser-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ColumnPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tick-values-sample"></a>
+<h3 class="subsection">3.7.12 Tick values sample</h3>
+<a name="index-SetTicksVal"></a>
+<div class="float">
+<img src="../png/tval.png" alt="../png/tval">
+</div><pre class="verbatim">axis -pi 0 pi 2
+xtick -pi '-\pi' -1.571 '-\pi/2' 0 '0' 0.886 'x^*' 1.571 '\pi/2' pi '\pi'
+axis 
+grid
+fplot '2*cos(x^2)^2' 'r2' nan 300
+</pre><hr size="6">
+<a name="ColumnPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Manual-ticks-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#StickPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ColumnPlot-sample-1"></a>
+<h3 class="subsection">3.7.13 ColumnPlot sample</h3>
+<a name="index-ColumnPlot"></a>
+<div class="float">
+<img src="../png/column.png" alt="../png/column">
+</div><pre class="verbatim">for $1 0 3
+columnplot 4 $1
+box
+text -0.5 0.5 'Plot $1 of 4'
+fplot 'sin(pi*x+pi*$1/2)'
+next
+</pre><hr size="6">
+<a name="StickPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ColumnPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stereo-image-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="StickPlot-sample-1"></a>
+<h3 class="subsection">3.7.14 StickPlot sample</h3>
+<a name="index-StickPlot"></a>
+<div class="float">
+<img src="../png/stick.png" alt="../png/stick">
+</div><pre class="verbatim">ranges -1 1 -1 1 0 1:light on
+stickplot 3 0 40 30 : axis 'xyz_'
+fsurf 'exp(-10*y^2-6*x^2)'
+text 0.2 0 1.2 'z=0' '' -2
+stickplot 3 1 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/2-6*x^2)/sqrt(2)'
+text 0.2 0 1.2 'z=1' '' -2
+stickplot 3 2 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/5-6*x^2)/sqrt(5)'
+text 0.2 0 1.2 'z=2' '' -2
+xlabel '\tau' 0 : ylabel '\rho'
+</pre><hr size="6">
+<a name="Stereo-image-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#StickPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stereo-image-sample-1"></a>
+<h3 class="subsection">3.7.15 Stereo image sample</h3>
+<div class="float">
+<img src="../png/stereo.png" alt="../png/stereo">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+subplot 2 1 0
+rotate 40 60+3
+box:surf a
+subplot 2 1 1
+rotate 40 60-3
+box:surf a
+</pre>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mgl_en.html/mgl_en_4.html b/texinfo/mgl_en.html/mgl_en_4.html
new file mode 100644
index 0000000..e114376
--- /dev/null
+++ b/texinfo/mgl_en.html/mgl_en_4.html
@@ -0,0 +1,542 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: A. GNU Free Documentation License</title>
+
+<meta name="description" content="MGL script language for version 1.11: A. GNU Free Documentation License">
+<meta name="keywords" content="MGL script language for version 1.11: A. GNU Free Documentation License">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Copying-This-Manual"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_3.html#Stereo-image-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="GNU-Free-Documentation-License"></a>
+<h1 class="appendix">A. GNU Free Documentation License</h1>
+<p align="center"> Version 1.2, November 2002
+</p>
+
+<table><tr><td>&nbsp;</td><td><pre class="display">Copyright &copy; 2000,2001,2002 Free Software Foundation, Inc.
+51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+</pre></td></tr></table>
+
+<ol>
+<li>
+PREAMBLE
+
+<p>The purpose of this License is to make a manual, textbook, or other
+functional and useful document <em>free</em> in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+</p>
+<p>This License is a kind of &ldquo;copyleft&rdquo;, which means that derivative
+works of the document must themselves be free in the same sense.  It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+</p>
+<p>We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does.  But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book.  We recommend this License
+principally for works whose purpose is instruction or reference.
+</p>
+</li><li>
+APPLICABILITY AND DEFINITIONS
+
+<p>This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License.  Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein.  The &ldquo;Document&rdquo;, below,
+refers to any such manual or work.  Any member of the public is a
+licensee, and is addressed as &ldquo;you&rdquo;.  You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+</p>
+<p>A &ldquo;Modified Version&rdquo; of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+</p>
+<p>A &ldquo;Secondary Section&rdquo; is a named appendix or a front-matter section
+of the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document&rsquo;s overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject.  (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.)  The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+</p>
+<p>The &ldquo;Invariant Sections&rdquo; are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License.  If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant.  The Document may contain zero
+Invariant Sections.  If the Document does not identify any Invariant
+Sections then there are none.
+</p>
+<p>The &ldquo;Cover Texts&rdquo; are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.  A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+</p>
+<p>A &ldquo;Transparent&rdquo; copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters.  A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text.  A copy that is not &ldquo;Transparent&rdquo; is called &ldquo;Opaque&rdquo;.
+</p>
+<p>Examples of suitable formats for Transparent copies include plain
+<small>ASCII</small> without markup, Texinfo input format, LaTeX input
+format, <acronym>SGML</acronym> or <acronym>XML</acronym> using a publicly available
+<acronym>DTD</acronym>, and standard-conforming simple <acronym>HTML</acronym>,
+PostScript or <acronym>PDF</acronym> designed for human modification.  Examples
+of transparent image formats include <acronym>PNG</acronym>, <acronym>XCF</acronym> and
+<acronym>JPG</acronym>.  Opaque formats include proprietary formats that can be
+read and edited only by proprietary word processors, <acronym>SGML</acronym> or
+<acronym>XML</acronym> for which the <acronym>DTD</acronym> and/or processing tools are
+not generally available, and the machine-generated <acronym>HTML</acronym>,
+PostScript or <acronym>PDF</acronym> produced by some word processors for
+output purposes only.
+</p>
+<p>The &ldquo;Title Page&rdquo; means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page.  For works in
+formats which do not have any title page as such, &ldquo;Title Page&rdquo; means
+the text near the most prominent appearance of the work&rsquo;s title,
+preceding the beginning of the body of the text.
+</p>
+<p>A section &ldquo;Entitled XYZ&rdquo; means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language.  (Here XYZ stands for a
+specific section name mentioned below, such as &ldquo;Acknowledgements&rdquo;,
+&ldquo;Dedications&rdquo;, &ldquo;Endorsements&rdquo;, or &ldquo;History&rdquo;.)  To &ldquo;Preserve the Title&rdquo;
+of such a section when you modify the Document means that it remains a
+section &ldquo;Entitled XYZ&rdquo; according to this definition.
+</p>
+<p>The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document.  These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+</p>
+</li><li>
+VERBATIM COPYING
+
+<p>You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License.  You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute.  However, you may accept
+compensation in exchange for copies.  If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+</p>
+<p>You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+</p>
+</li><li>
+COPYING IN QUANTITY
+
+<p>If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document&rsquo;s license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover.  Both covers must also clearly and legibly identify
+you as the publisher of these copies.  The front cover must present
+the full title with all words of the title equally prominent and
+visible.  You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+</p>
+<p>If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+</p>
+<p>If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+</p>
+<p>It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+</p>
+</li><li>
+MODIFICATIONS
+
+<p>You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it.  In addition, you must do these things in the Modified Version:
+</p>
+<ol>
+<li>
+Use in the Title Page (and on the covers, if any) a title distinct
+from that of the Document, and from those of previous versions
+(which should, if there were any, be listed in the History section
+of the Document).  You may use the same title as a previous version
+if the original publisher of that version gives permission.
+
+</li><li>
+List on the Title Page, as authors, one or more persons or entities
+responsible for authorship of the modifications in the Modified
+Version, together with at least five of the principal authors of the
+Document (all of its principal authors, if it has fewer than five),
+unless they release you from this requirement.
+
+</li><li>
+State on the Title page the name of the publisher of the
+Modified Version, as the publisher.
+
+</li><li>
+Preserve all the copyright notices of the Document.
+
+</li><li>
+Add an appropriate copyright notice for your modifications
+adjacent to the other copyright notices.
+
+</li><li>
+Include, immediately after the copyright notices, a license notice
+giving the public permission to use the Modified Version under the
+terms of this License, in the form shown in the Addendum below.
+
+</li><li>
+Preserve in that license notice the full lists of Invariant Sections
+and required Cover Texts given in the Document&rsquo;s license notice.
+
+</li><li>
+Include an unaltered copy of this License.
+
+</li><li>
+Preserve the section Entitled &ldquo;History&rdquo;, Preserve its Title, and add
+to it an item stating at least the title, year, new authors, and
+publisher of the Modified Version as given on the Title Page.  If
+there is no section Entitled &ldquo;History&rdquo; in the Document, create one
+stating the title, year, authors, and publisher of the Document as
+given on its Title Page, then add an item describing the Modified
+Version as stated in the previous sentence.
+
+</li><li>
+Preserve the network location, if any, given in the Document for
+public access to a Transparent copy of the Document, and likewise
+the network locations given in the Document for previous versions
+it was based on.  These may be placed in the &ldquo;History&rdquo; section.
+You may omit a network location for a work that was published at
+least four years before the Document itself, or if the original
+publisher of the version it refers to gives permission.
+
+</li><li>
+For any section Entitled &ldquo;Acknowledgements&rdquo; or &ldquo;Dedications&rdquo;, Preserve
+the Title of the section, and preserve in the section all the
+substance and tone of each of the contributor acknowledgements and/or
+dedications given therein.
+
+</li><li>
+Preserve all the Invariant Sections of the Document,
+unaltered in their text and in their titles.  Section numbers
+or the equivalent are not considered part of the section titles.
+
+</li><li>
+Delete any section Entitled &ldquo;Endorsements&rdquo;.  Such a section
+may not be included in the Modified Version.
+
+</li><li>
+Do not retitle any existing section to be Entitled &ldquo;Endorsements&rdquo; or
+to conflict in title with any Invariant Section.
+
+</li><li>
+Preserve any Warranty Disclaimers.
+</li></ol>
+
+<p>If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant.  To do this, add their titles to the
+list of Invariant Sections in the Modified Version&rsquo;s license notice.
+These titles must be distinct from any other section titles.
+</p>
+<p>You may add a section Entitled &ldquo;Endorsements&rdquo;, provided it contains
+nothing but endorsements of your Modified Version by various
+parties&mdash;for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+</p>
+<p>You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version.  Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity.  If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+</p>
+<p>The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+</p>
+</li><li>
+COMBINING DOCUMENTS
+
+<p>You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+</p>
+<p>The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy.  If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+</p>
+<p>In the combination, you must combine any sections Entitled &ldquo;History&rdquo;
+in the various original documents, forming one section Entitled
+&ldquo;History&rdquo;; likewise combine any sections Entitled &ldquo;Acknowledgements&rdquo;,
+and any sections Entitled &ldquo;Dedications&rdquo;.  You must delete all
+sections Entitled &ldquo;Endorsements.&rdquo;
+</p>
+</li><li>
+COLLECTIONS OF DOCUMENTS
+
+<p>You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+</p>
+<p>You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+</p>
+</li><li>
+AGGREGATION WITH INDEPENDENT WORKS
+
+<p>A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an &ldquo;aggregate&rdquo; if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation&rsquo;s users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+</p>
+<p>If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document&rsquo;s Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+</p>
+</li><li>
+TRANSLATION
+
+<p>Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections.  You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers.  In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+</p>
+<p>If a section in the Document is Entitled &ldquo;Acknowledgements&rdquo;,
+&ldquo;Dedications&rdquo;, or &ldquo;History&rdquo;, the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+</p>
+</li><li>
+TERMINATION
+
+<p>You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License.  Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License.  However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+</p>
+</li><li>
+FUTURE REVISIONS OF THIS LICENSE
+
+<p>The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time.  Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.  See
+<a href="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</a>.
+</p>
+<p>Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License &ldquo;or any later version&rdquo; applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation.  If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+</p></li></ol>
+
+
+<a name="ADDENDUM_003a-How-to-use-this-License-for-your-documents"></a>
+<h2 class="heading">ADDENDUM: How to use this License for your documents</h2>
+
+<p>To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample">  Copyright (C)  <var>year</var>  <var>your name</var>.
+  Permission is granted to copy, distribute and/or modify this document
+  under the terms of the GNU Free Documentation License, Version 1.2
+  or any later version published by the Free Software Foundation;
+  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+  Texts.  A copy of the license is included in the section entitled ``GNU
+  Free Documentation License''.
+</pre></td></tr></table>
+
+<p>If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the &ldquo;with&hellip;Texts.&rdquo; line with this:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample">    with the Invariant Sections being <var>list their titles</var>, with
+    the Front-Cover Texts being <var>list</var>, and with the Back-Cover Texts
+    being <var>list</var>.
+</pre></td></tr></table>
+
+<p>If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+</p>
+<p>If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
+</p>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_3.html#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mgl_en.html/mgl_en_5.html b/texinfo/mgl_en.html/mgl_en_5.html
new file mode 100644
index 0000000..b13f39f
--- /dev/null
+++ b/texinfo/mgl_en.html/mgl_en_5.html
@@ -0,0 +1,323 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: Index</title>
+
+<meta name="description" content="MGL script language for version 1.11: Index">
+<meta name="keywords" content="MGL script language for version 1.11: Index">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Index"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_6.html#index_split-0" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Index-1"></a>
+<h1 class="unnumbered">Index</h1>
+
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Index-1_cp_letter-A">A</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-AddLegend">AddLegend</a></td><td valign="top"><a href="mgl_en_3.html#Legend-sample">3.6.1 Legend sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-addlegend">addlegend</a></td><td valign="top"><a href="mgl_en_1.html#Legend">1.9 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-addto">addto</a></td><td valign="top"><a href="mgl_en_1.html#Operators">1.23 Operators</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-adjust">adjust</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Alpha">Alpha</a></td><td valign="top"><a href="mgl_en_3.html#Transparent-surface-sample">3.2.2 Transparent surface sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-alpha">alpha</a></td><td valign="top"><a href="mgl_en_1.html#Transparency">1.2.1 Transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Alpha-1">Alpha</a></td><td valign="top"><a href="mgl_en_3.html#g_t2D-plot-sample">3.5.2 2D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-alpha-2">alpha</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Alpha-2">Alpha</a></td><td valign="top"><a href="mgl_en_3.html#g_t3D-plot-sample">3.5.3 3D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-alphadef">alphadef</a></td><td valign="top"><a href="mgl_en_1.html#Transparency">1.2.1 Transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-alphadef-2">alphadef</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ambient">ambient</a></td><td valign="top"><a href="mgl_en_1.html#Lighting">1.2.2 Lighting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ambient-2">ambient</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-area">area</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Area">Area</a></td><td valign="top"><a href="mgl_en_3.html#Area-sample">3.1.4 Area sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Area-1">Area</a></td><td valign="top"><a href="mgl_en_3.html#Area-gradient-sample">3.1.5 Area with gradient filling sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-Arrows">Arrows</a></td><td valign="top"><a href="mgl_en_1.html#Line-styles">1.1.2 Line styles</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-arrowsize">arrowsize</a></td><td valign="top"><a href="mgl_en_1.html#Default-sizes">1.2.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-aspect">aspect</a></td><td valign="top"><a href="mgl_en_1.html#Transformation-matrix">1.4 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Axial">Axial</a></td><td valign="top"><a href="mgl_en_3.html#Axial-sample">3.2.14 Axial sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-axial">axial</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Axial-1">Axial</a></td><td valign="top"><a href="mgl_en_3.html#Adding-mesh-sample">3.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-axialdir">axialdir</a></td><td valign="top"><a href="mgl_en_1.html#Other-settings">1.2.7 Other settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-axis">axis</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Axis">Axis</a></td><td valign="top"><a href="mgl_en_3.html#Pie-chart-sample">3.1.23 Pie chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Axis-1">Axis</a></td><td valign="top"><a href="mgl_en_3.html#Ring-chart-sample">3.1.24 Ring chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-axis-5">axis</a></td><td valign="top"><a href="mgl_en_1.html#Axis-and-Colorbar">1.8 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Axis-2">Axis</a></td><td valign="top"><a href="mgl_en_3.html#Dens3-sample">3.3.4 Dens3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Axis-3">Axis</a></td><td valign="top"><a href="mgl_en_3.html#Curvelinear-coorinates-sample">3.7.1 Curvelinear coorinates sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Axis-4">Axis</a></td><td valign="top"><a href="mgl_en_3.html#g_t2_002daxes-sample">3.7.2 2-axes sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Axis-5">Axis</a></td><td valign="top"><a href="mgl_en_3.html#Semi_002dlog-sample">3.7.3 Semi-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Axis-6">Axis</a></td><td valign="top"><a href="mgl_en_3.html#Log_002dlog-sample">3.7.4 Log-log sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Index-1_cp_letter-B">B</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ball">ball</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-barh">barh</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Barh">Barh</a></td><td valign="top"><a href="mgl_en_3.html#Barh-sample">3.1.10 Barh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-bars">bars</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Bars">Bars</a></td><td valign="top"><a href="mgl_en_3.html#Bars-sample">3.1.6 Bars sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Bars-1">Bars</a></td><td valign="top"><a href="mgl_en_3.html#Bars-2-colors-sample">3.1.7 Bars 2 colors sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Bars-2">Bars</a></td><td valign="top"><a href="mgl_en_3.html#Bars-above-sample">3.1.8 Bars above sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Bars-3">Bars</a></td><td valign="top"><a href="mgl_en_3.html#Bars-fall-sample">3.1.9 Bars fall sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Bars-4">Bars</a></td><td valign="top"><a href="mgl_en_3.html#g_t1D-plot-sample">3.5.1 1D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-barwidth">barwidth</a></td><td valign="top"><a href="mgl_en_1.html#Default-sizes">1.2.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-beam">beam</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Belt">Belt</a></td><td valign="top"><a href="mgl_en_3.html#Belt-sample">3.2.7 Belt sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-belt">belt</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-box">box</a></td><td valign="top"><a href="mgl_en_1.html#Axis-and-Colorbar">1.8 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-BoxPlot">BoxPlot</a></td><td valign="top"><a href="mgl_en_3.html#BoxPlot-sample">3.1.16 BoxPlot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-boxplot">boxplot</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-boxs">boxs</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Boxs">Boxs</a></td><td valign="top"><a href="mgl_en_3.html#Boxs-sample">3.2.9 Boxs sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="Index-1_cp_letter-C">C</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-call">call</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-caxis">caxis</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-chart">chart</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Chart">Chart</a></td><td valign="top"><a href="mgl_en_3.html#Chart-sample">3.1.22 Chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Chart-1">Chart</a></td><td valign="top"><a href="mgl_en_3.html#Pie-chart-sample">3.1.23 Pie chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Chart-2">Chart</a></td><td valign="top"><a href="mgl_en_3.html#Ring-chart-sample">3.1.24 Ring chart sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-chdir">chdir</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-clearlegend">clearlegend</a></td><td valign="top"><a href="mgl_en_1.html#Legend">1.9 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-clf">clf</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-cloud">cloud</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Cloud">Cloud</a></td><td valign="top"><a href="mgl_en_3.html#Cloud-sample">3.3.2 Cloud sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-CloudP">CloudP</a></td><td valign="top"><a href="mgl_en_3.html#CloudP-sample">3.3.3 CloudP sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-Color-scheme">Color scheme</a></td><td valign="top"><a href="mgl_en_1.html#Color-scheme">1.1.3 Color scheme</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-colorbar">colorbar</a></td><td valign="top"><a href="mgl_en_1.html#Axis-and-Colorbar">1.8 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Colorbar">Colorbar</a></td><td valign="top"><a href="mgl_en_3.html#Dens-sample">3.2.10 Dens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Colorbar-1">Colorbar</a></td><td valign="top"><a href="mgl_en_3.html#Color-schemes-sample">3.5.10 Color schemes sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-ColumnPlot">ColumnPlot</a></td><td valign="top"><a href="mgl_en_3.html#ColumnPlot-sample">3.7.13 ColumnPlot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-columnplot">columnplot</a></td><td valign="top"><a href="mgl_en_1.html#Transformation-matrix">1.4 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-combine">combine</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-cone">cone</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Cont">Cont</a></td><td valign="top"><a href="mgl_en_3.html#Cont-sample">3.2.11 Cont sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-cont">cont</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Cont-1">Cont</a></td><td valign="top"><a href="mgl_en_3.html#Adding-mesh-sample">3.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Cont-2">Cont</a></td><td valign="top"><a href="mgl_en_3.html#Surf-_0026-Cont-sample">3.6.3 Surf &amp; Cont sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Cont-3">Cont</a></td><td valign="top"><a href="mgl_en_3.html#Cont-with-labels-sample">3.6.7 Cont with labels sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Cont3">Cont3</a></td><td valign="top"><a href="mgl_en_3.html#Cont3-sample">3.3.5 Cont3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-cont3">cont3</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-conta">conta</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-contd">contd</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-ContD">ContD</a></td><td valign="top"><a href="mgl_en_3.html#ContD-sample">3.2.13 ContD sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-contf">contf</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-ContF">ContF</a></td><td valign="top"><a href="mgl_en_3.html#ContF-sample">3.2.12 ContF sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-ContF3">ContF3</a></td><td valign="top"><a href="mgl_en_3.html#ContF3-sample">3.3.6 ContF3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-contf3">contf3</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-ContF3-1">ContF3</a></td><td valign="top"><a href="mgl_en_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-contfa">contfa</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-contfx">contfx</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-contfy">contfy</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-contfz">contfz</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-ContX">ContX</a></td><td valign="top"><a href="mgl_en_3.html#Cont-projection-sample">3.3.7 Cont projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-contx">contx</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-ContY">ContY</a></td><td valign="top"><a href="mgl_en_3.html#Cont-projection-sample">3.3.7 Cont projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-conty">conty</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-contz">contz</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-ContZ">ContZ</a></td><td valign="top"><a href="mgl_en_3.html#Cont-projection-sample">3.3.7 Cont projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-copy">copy</a></td><td valign="top"><a href="mgl_en_1.html#Data-create">1.17 Data create</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-cosfft">cosfft</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-crange">crange</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-crange-3">crange</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-crop">crop</a></td><td valign="top"><a href="mgl_en_1.html#Rearrange-data">1.19 Rearrange data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-crust">crust</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Crust">Crust</a></td><td valign="top"><a href="mgl_en_3.html#Crust-sample">3.4.19 Crust sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ctick">ctick</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-cumsum">cumsum</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-curve">curve</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-cut">cut</a></td><td valign="top"><a href="mgl_en_1.html#Cutting">1.2.6 Cutting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-cut-4">cut</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-CutMax">CutMax</a></td><td valign="top"><a href="mgl_en_3.html#CutMinMax-sample">3.3.9 CutMinMax sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-CutMax-1">CutMax</a></td><td valign="top"><a href="mgl_en_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-CutMin">CutMin</a></td><td valign="top"><a href="mgl_en_3.html#CutMinMax-sample">3.3.9 CutMinMax sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-CutMin-1">CutMin</a></td><td valign="top"><a href="mgl_en_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-CutOff">CutOff</a></td><td valign="top"><a href="mgl_en_3.html#CutOff-sample">3.3.11 CutOff sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mgl_en.html/mgl_en_6.html b/texinfo/mgl_en.html/mgl_en_6.html
new file mode 100644
index 0000000..59b4d96
--- /dev/null
+++ b/texinfo/mgl_en.html/mgl_en_6.html
@@ -0,0 +1,338 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: Index: D &ndash; M</title>
+
+<meta name="description" content="MGL script language for version 1.11: Index: D &ndash; M">
+<meta name="keywords" content="MGL script language for version 1.11: Index: D &ndash; M">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-0"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_7.html#index_split-1" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Index: D &ndash; M</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_en_5.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-D">D</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-defchr">defchr</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-define">define</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-defnum">defnum</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-defpal">defpal</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-delete">delete</a></td><td valign="top"><a href="mgl_en_1.html#Rearrange-data">1.19 Rearrange data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-dens">dens</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Dens">Dens</a></td><td valign="top"><a href="mgl_en_3.html#Dens-sample">3.2.10 Dens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Dens-1">Dens</a></td><td valign="top"><a href="mgl_en_3.html#g_t2D-plot-sample">3.5.2 2D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Dens-2">Dens</a></td><td valign="top"><a href="mgl_en_3.html#g_t3D-plot-sample">3.5.3 3D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Dens-3">Dens</a></td><td valign="top"><a href="mgl_en_3.html#Adding-mesh-sample">3.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Dens-4">Dens</a></td><td valign="top"><a href="mgl_en_3.html#Flow-_0026-Dens-sample">3.6.4 Flow &amp; Dens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-dens3">dens3</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Dens3">Dens3</a></td><td valign="top"><a href="mgl_en_3.html#Dens3-sample">3.3.4 Dens3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-densa">densa</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-densx">densx</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-DensX">DensX</a></td><td valign="top"><a href="mgl_en_3.html#Dens-projection-sample">3.3.8 Dens projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-DensY">DensY</a></td><td valign="top"><a href="mgl_en_3.html#Dens-projection-sample">3.3.8 Dens projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-densy">densy</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-densz">densz</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-DensZ">DensZ</a></td><td valign="top"><a href="mgl_en_3.html#Dens-projection-sample">3.3.8 Dens projection sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Dew">Dew</a></td><td valign="top"><a href="mgl_en_3.html#Dew-sample">3.4.11 Dew sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-dew">dew</a></td><td valign="top"><a href="mgl_en_1.html#Vector-fields">1.14 Vector fields</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-diff">diff</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-diff2">diff2</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-divto">divto</a></td><td valign="top"><a href="mgl_en_1.html#Operators">1.23 Operators</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-dots">dots</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Dots">Dots</a></td><td valign="top"><a href="mgl_en_3.html#Dots-sample">3.4.20 Dots sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-drop">drop</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Drop">Drop</a></td><td valign="top"><a href="mgl_en_3.html#Drops-sample">3.6.10 Drops sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Drop-1">Drop</a></td><td valign="top"><a href="mgl_en_3.html#Molecules-drawing-sample">3.6.11 Molecules drawing sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-E">E</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-else">else</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-elseif">elseif</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-endif">endif</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-envelop">envelop</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Envelop">Envelop</a></td><td valign="top"><a href="mgl_en_3.html#Envelop-sample">3.7.6 Envelop sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Error">Error</a></td><td valign="top"><a href="mgl_en_3.html#Error-sample">3.1.15 Error sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-error">error</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-evaluate">evaluate</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-export">export</a></td><td valign="top"><a href="mgl_en_1.html#File-I_002fO">1.20 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-extend">extend</a></td><td valign="top"><a href="mgl_en_1.html#Rearrange-data">1.19 Rearrange data</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-F">F</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-facex">facex</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-facey">facey</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-facez">facez</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fall">fall</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Fall">Fall</a></td><td valign="top"><a href="mgl_en_3.html#Fall-sample">3.2.6 Fall sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fgets">fgets</a></td><td valign="top"><a href="mgl_en_1.html#Text-printing">1.7 Text printing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fill">fill</a></td><td valign="top"><a href="mgl_en_1.html#Data-filling">1.18 Data filling</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fill-1">fill</a></td><td valign="top"><a href="mgl_en_1.html#Data-filling">1.18 Data filling</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fit">fit</a></td><td valign="top"><a href="mgl_en_1.html#Nonlinear-fitting">1.16 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Fit">Fit</a></td><td valign="top"><a href="mgl_en_3.html#Fitting-sample">3.7.5 Fitting sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fits">fits</a></td><td valign="top"><a href="mgl_en_1.html#Nonlinear-fitting">1.16 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Flow">Flow</a></td><td valign="top"><a href="mgl_en_3.html#Flow-sample">3.4.9 Flow sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-flow">flow</a></td><td valign="top"><a href="mgl_en_1.html#Vector-fields">1.14 Vector fields</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Flow-1">Flow</a></td><td valign="top"><a href="mgl_en_3.html#Flow-3D-sample">3.4.17 Flow 3D sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Flow-2">Flow</a></td><td valign="top"><a href="mgl_en_3.html#Flow-_0026-Dens-sample">3.6.4 Flow &amp; Dens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fog">fog</a></td><td valign="top"><a href="mgl_en_1.html#Fog">1.2.3 Fog</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Fog">Fog</a></td><td valign="top"><a href="mgl_en_3.html#Surface-in-fog-sample">3.2.3 Surface in fog sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-font">font</a></td><td valign="top"><a href="mgl_en_1.html#Other-settings">1.2.7 Other settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-Font-styles">Font styles</a></td><td valign="top"><a href="mgl_en_1.html#Font-styles">1.1.4 Font styles</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fontsize">fontsize</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-for">for</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fplot">fplot</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-fsurf">fsurf</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-func">func</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-G">G</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-grad">grad</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Grad">Grad</a></td><td valign="top"><a href="mgl_en_3.html#Grad-sample">3.2.15 Grad sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-grid">grid</a></td><td valign="top"><a href="mgl_en_1.html#Axis-and-Colorbar">1.8 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-grid2">grid2</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-grid3">grid3</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-grida">grida</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-H">H</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-hankel">hankel</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-hist">hist</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-I">I</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-idset">idset</a></td><td valign="top"><a href="mgl_en_1.html#Data-create">1.17 Data create</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-if">if</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-import">import</a></td><td valign="top"><a href="mgl_en_1.html#File-I_002fO">1.20 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-info">info</a></td><td valign="top"><a href="mgl_en_1.html#Data-create">1.17 Data create</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-inplot">inplot</a></td><td valign="top"><a href="mgl_en_1.html#Transformation-matrix">1.4 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-insert">insert</a></td><td valign="top"><a href="mgl_en_1.html#Rearrange-data">1.19 Rearrange data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-integrate">integrate</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-J">J</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-jacobian">jacobian</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-L">L</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Legend">Legend</a></td><td valign="top"><a href="mgl_en_3.html#Legend-sample">3.6.1 Legend sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-legend">legend</a></td><td valign="top"><a href="mgl_en_1.html#Legend">1.9 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-legend-3">legend</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-legendbox">legendbox</a></td><td valign="top"><a href="mgl_en_1.html#Legend">1.9 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-legendmarks">legendmarks</a></td><td valign="top"><a href="mgl_en_1.html#Legend">1.9 Legend</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-light">light</a></td><td valign="top"><a href="mgl_en_1.html#Lighting">1.2.2 Lighting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Light">Light</a></td><td valign="top"><a href="mgl_en_3.html#Several-light-sample">3.6.5 Several light sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Line">Line</a></td><td valign="top"><a href="mgl_en_3.html#Line-styles-sample">3.5.4 Line styles sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-line">line</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Line-1">Line</a></td><td valign="top"><a href="mgl_en_3.html#Arrow-styles-sample">3.5.5 Arrow styles sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-Line-style">Line style</a></td><td valign="top"><a href="mgl_en_1.html#Line-styles">1.1.2 Line styles</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-linewidth">linewidth</a></td><td valign="top"><a href="mgl_en_1.html#Default-sizes">1.2.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-list">list</a></td><td valign="top"><a href="mgl_en_1.html#Data-create">1.17 Data create</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-M">M</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-map">map</a></td><td valign="top"><a href="mgl_en_1.html#Dual-plotting">1.13 Dual plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Map">Map</a></td><td valign="top"><a href="mgl_en_3.html#Map-sample">3.4.4 Map sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-mark">mark</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Mark">Mark</a></td><td valign="top"><a href="mgl_en_3.html#Mark-sample">3.1.17 Mark sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Mark-1">Mark</a></td><td valign="top"><a href="mgl_en_3.html#Line-styles-sample">3.5.4 Line styles sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-Mark-style">Mark style</a></td><td valign="top"><a href="mgl_en_1.html#Line-styles">1.1.2 Line styles</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-marksize">marksize</a></td><td valign="top"><a href="mgl_en_1.html#Default-sizes">1.2.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-marksize-2">marksize</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-max">max</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-mesh">mesh</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Mesh">Mesh</a></td><td valign="top"><a href="mgl_en_3.html#Mesh-sample">3.2.5 Mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-meshnum">meshnum</a></td><td valign="top"><a href="mgl_en_1.html#Other-settings">1.2.7 Other settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-meshnum-2">meshnum</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-mglParse">mglParse</a></td><td valign="top"><a href="mgl_en_3.html#Parser-sample">3.7.11 Parser sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-mglPDE">mglPDE</a></td><td valign="top"><a href="mgl_en_3.html#PDE-sample">3.7.9 PDE sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-mglQO2d">mglQO2d</a></td><td valign="top"><a href="mgl_en_3.html#Beam-tracing-sample">3.7.10 Beam tracing sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-mglRay">mglRay</a></td><td valign="top"><a href="mgl_en_3.html#PDE-sample">3.7.9 PDE sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-mglRay-1">mglRay</a></td><td valign="top"><a href="mgl_en_3.html#Beam-tracing-sample">3.7.10 Beam tracing sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-min">min</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-mirror">mirror</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-modify">modify</a></td><td valign="top"><a href="mgl_en_1.html#Data-filling">1.18 Data filling</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-modify-1">modify</a></td><td valign="top"><a href="mgl_en_1.html#Data-filling">1.18 Data filling</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-momentum">momentum</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-multo">multo</a></td><td valign="top"><a href="mgl_en_1.html#Operators">1.23 Operators</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_en_5.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mgl_en.html/mgl_en_7.html b/texinfo/mgl_en.html/mgl_en_7.html
new file mode 100644
index 0000000..8ef3996
--- /dev/null
+++ b/texinfo/mgl_en.html/mgl_en_7.html
@@ -0,0 +1,351 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: Index: N &ndash; T</title>
+
+<meta name="description" content="MGL script language for version 1.11: Index: N &ndash; T">
+<meta name="keywords" content="MGL script language for version 1.11: Index: N &ndash; T">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-1"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_6.html#index_split-0" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_8.html#index_split-2" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Index: N &ndash; T</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_en_5.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-N">N</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-new">new</a></td><td valign="top"><a href="mgl_en_1.html#Data-create">1.17 Data create</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-next">next</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-norm">norm</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-normsl">normsl</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-O">O</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-once">once</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-origin">origin</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-P">P</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-palette">palette</a></td><td valign="top"><a href="mgl_en_1.html#Other-settings">1.2.7 Other settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-pde">pde</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-perspective">perspective</a></td><td valign="top"><a href="mgl_en_1.html#Transformation-matrix">1.4 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-pipe">pipe</a></td><td valign="top"><a href="mgl_en_1.html#Vector-fields">1.14 Vector fields</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Pipe">Pipe</a></td><td valign="top"><a href="mgl_en_3.html#Pipe-sample">3.4.10 Pipe sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Pipe-1">Pipe</a></td><td valign="top"><a href="mgl_en_3.html#Pipe-3D-sample">3.4.18 Pipe 3D sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Plot">Plot</a></td><td valign="top"><a href="mgl_en_3.html#Plot-sample">3.1.1 Plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-plot">plot</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Plot-1">Plot</a></td><td valign="top"><a href="mgl_en_3.html#g_t1D-plot-sample">3.5.1 1D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Plot-2">Plot</a></td><td valign="top"><a href="mgl_en_3.html#Legend-sample">3.6.1 Legend sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Plot-3">Plot</a></td><td valign="top"><a href="mgl_en_3.html#Semi_002dlog-sample">3.7.3 Semi-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Plot-4">Plot</a></td><td valign="top"><a href="mgl_en_3.html#Log_002dlog-sample">3.7.4 Log-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-plotfactor">plotfactor</a></td><td valign="top"><a href="mgl_en_1.html#Zooming">1.2.5 Zooming</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-put">put</a></td><td valign="top"><a href="mgl_en_1.html#Data-filling">1.18 Data filling</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Puts">Puts</a></td><td valign="top"><a href="mgl_en_3.html#Text-styles-sample">3.5.6 Text styles sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Puts-1">Puts</a></td><td valign="top"><a href="mgl_en_3.html#TeX-parsing-sample">3.5.7 TeX parsing sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Puts-2">Puts</a></td><td valign="top"><a href="mgl_en_3.html#Font-faces-sample">3.5.8 Font faces sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-PutsFit">PutsFit</a></td><td valign="top"><a href="mgl_en_3.html#Fitting-sample">3.7.5 Fitting sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-putsfit">putsfit</a></td><td valign="top"><a href="mgl_en_1.html#Nonlinear-fitting">1.16 Nonlinear fitting</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-Q">Q</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-qo2d">qo2d</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-quadplot">quadplot</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-R">R</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Radar">Radar</a></td><td valign="top"><a href="mgl_en_3.html#Radar-sample">3.1.2 Radar sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-radar">radar</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ranges">ranges</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ray">ray</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-read">read</a></td><td valign="top"><a href="mgl_en_1.html#File-I_002fO">1.20 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-readall">readall</a></td><td valign="top"><a href="mgl_en_1.html#File-I_002fO">1.20 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-readhdf">readhdf</a></td><td valign="top"><a href="mgl_en_1.html#File-I_002fO">1.20 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-readmat">readmat</a></td><td valign="top"><a href="mgl_en_1.html#File-I_002fO">1.20 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-rearrange">rearrange</a></td><td valign="top"><a href="mgl_en_1.html#Rearrange-data">1.19 Rearrange data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-rect">rect</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Region">Region</a></td><td valign="top"><a href="mgl_en_3.html#Region-sample">3.1.13 Region sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-region">region</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Region-1">Region</a></td><td valign="top"><a href="mgl_en_3.html#Region-gradient-sample">3.1.14 Region gradient sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-resize">resize</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-return">return</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-roll">roll</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-rotate">rotate</a></td><td valign="top"><a href="mgl_en_1.html#Transformation-matrix">1.4 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-rotatetext">rotatetext</a></td><td valign="top"><a href="mgl_en_1.html#Other-settings">1.2.7 Other settings</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-S">S</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-save">save</a></td><td valign="top"><a href="mgl_en_1.html#File-I_002fO">1.20 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-savehdf">savehdf</a></td><td valign="top"><a href="mgl_en_1.html#File-I_002fO">1.20 File I/O</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-setsize">setsize</a></td><td valign="top"><a href="mgl_en_1.html#Export-to-file">1.5 Export to file</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-SetTicks">SetTicks</a></td><td valign="top"><a href="mgl_en_3.html#Semi_002dlog-sample">3.7.3 Semi-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-SetTicks-1">SetTicks</a></td><td valign="top"><a href="mgl_en_3.html#Log_002dlog-sample">3.7.4 Log-log sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-SetTicksVal">SetTicksVal</a></td><td valign="top"><a href="mgl_en_3.html#Manual-ticks-sample">3.7.12 Tick values sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Sew">Sew</a></td><td valign="top"><a href="mgl_en_3.html#Sew-sample">3.7.7 Sew sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-sew">sew</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-sinfft">sinfft</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-smooth">smooth</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Sphere">Sphere</a></td><td valign="top"><a href="mgl_en_3.html#Molecules-drawing-sample">3.6.11 Molecules drawing sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-sphere">sphere</a></td><td valign="top"><a href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-squeeze">squeeze</a></td><td valign="top"><a href="mgl_en_1.html#Rearrange-data">1.19 Rearrange data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-stem">stem</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Stem">Stem</a></td><td valign="top"><a href="mgl_en_3.html#Stem-sample">3.1.12 Stem sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-step">step</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Step">Step</a></td><td valign="top"><a href="mgl_en_3.html#Step-sample">3.1.11 Step sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-stfa">stfa</a></td><td valign="top"><a href="mgl_en_1.html#Dual-plotting">1.13 Dual plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-STFA">STFA</a></td><td valign="top"><a href="mgl_en_3.html#STFA-sample">3.7.8 STFA sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-stfad">stfad</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-StickPlot">StickPlot</a></td><td valign="top"><a href="mgl_en_3.html#StickPlot-sample">3.7.14 StickPlot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-stickplot">stickplot</a></td><td valign="top"><a href="mgl_en_1.html#Transformation-matrix">1.4 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-stop">stop</a></td><td valign="top"><a href="mgl_en_1.html#Program-flow">1.24 Program flow</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-subdata">subdata</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-SubPlot">SubPlot</a></td><td valign="top"><a href="mgl_en_3.html#g_t1D-plot-sample">3.5.1 1D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-subplot">subplot</a></td><td valign="top"><a href="mgl_en_1.html#Transformation-matrix">1.4 Transformation matrix</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-SubPlot-1">SubPlot</a></td><td valign="top"><a href="mgl_en_3.html#Adding-mesh-sample">3.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-subto">subto</a></td><td valign="top"><a href="mgl_en_1.html#Operators">1.23 Operators</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-sum">sum</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf">Surf</a></td><td valign="top"><a href="mgl_en_3.html#Surf-sample">3.2.1 Surf sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-surf">surf</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf-1">Surf</a></td><td valign="top"><a href="mgl_en_3.html#Transparent-surface-sample">3.2.2 Transparent surface sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf-2">Surf</a></td><td valign="top"><a href="mgl_en_3.html#Surface-in-fog-sample">3.2.3 Surface in fog sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf-3">Surf</a></td><td valign="top"><a href="mgl_en_3.html#Sharp-colors-sample">3.2.4 Sharp colors sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf-4">Surf</a></td><td valign="top"><a href="mgl_en_3.html#g_t2D-plot-sample">3.5.2 2D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf-5">Surf</a></td><td valign="top"><a href="mgl_en_3.html#g_t3D-plot-sample">3.5.3 3D plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf-6">Surf</a></td><td valign="top"><a href="mgl_en_3.html#Adding-mesh-sample">3.6.2 Adding mesh sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf-7">Surf</a></td><td valign="top"><a href="mgl_en_3.html#Surf-_0026-Cont-sample">3.6.3 Surf &amp; Cont sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf-8">Surf</a></td><td valign="top"><a href="mgl_en_3.html#Several-light-sample">3.6.5 Several light sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf-9">Surf</a></td><td valign="top"><a href="mgl_en_3.html#Mirrored-surface-sample">3.6.6 Mirrored surface sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-surf3">surf3</a></td><td valign="top"><a href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf3">Surf3</a></td><td valign="top"><a href="mgl_en_3.html#Surf3-sample">3.3.1 Surf3 sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf3-1">Surf3</a></td><td valign="top"><a href="mgl_en_3.html#CutMinMax-sample">3.3.9 CutMinMax sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf3-2">Surf3</a></td><td valign="top"><a href="mgl_en_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf3-3">Surf3</a></td><td valign="top"><a href="mgl_en_3.html#CutOff-sample">3.3.11 CutOff sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf3-4">Surf3</a></td><td valign="top"><a href="mgl_en_3.html#Coloring-by-coordinates-sample">3.6.9 Coloring by coordinates sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf3A">Surf3A</a></td><td valign="top"><a href="mgl_en_3.html#Surf3A-sample">3.4.13 Surf3A sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-surf3a">surf3a</a></td><td valign="top"><a href="mgl_en_1.html#Dual-plotting">1.13 Dual plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Surf3C">Surf3C</a></td><td valign="top"><a href="mgl_en_3.html#Surf3C-sample">3.4.12 Surf3C sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-surf3c">surf3c</a></td><td valign="top"><a href="mgl_en_1.html#Dual-plotting">1.13 Dual plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-surfa">surfa</a></td><td valign="top"><a href="mgl_en_1.html#Dual-plotting">1.13 Dual plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-SurfA">SurfA</a></td><td valign="top"><a href="mgl_en_3.html#SurfA-sample">3.4.2 SurfA sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-SurfC">SurfC</a></td><td valign="top"><a href="mgl_en_3.html#SurfC-sample">3.4.1 SurfC sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-surfc">surfc</a></td><td valign="top"><a href="mgl_en_1.html#Dual-plotting">1.13 Dual plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-swap">swap</a></td><td valign="top"><a href="mgl_en_1.html#Change-data">1.22 Change data</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-T">T</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Tens">Tens</a></td><td valign="top"><a href="mgl_en_3.html#Tens-sample">3.1.3 Tens sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-tens">tens</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Ternary">Ternary</a></td><td valign="top"><a href="mgl_en_3.html#Ternary-plot-sample">3.6.8 Ternary plot sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ternary">ternary</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Text">Text</a></td><td valign="top"><a href="mgl_en_3.html#Text-sample">3.1.20 Text sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-text">text</a></td><td valign="top"><a href="mgl_en_1.html#Text-printing">1.7 Text printing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-textmark">textmark</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-TextMark">TextMark</a></td><td valign="top"><a href="mgl_en_3.html#TextMark-sample">3.1.18 TextMark sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-Textual-formulas">Textual formulas</a></td><td valign="top"><a href="mgl_en_1.html#Textual-formulas">1.1.5 Textual formulas</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ticklen">ticklen</a></td><td valign="top"><a href="mgl_en_1.html#Default-sizes">1.2.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-tickstl">tickstl</a></td><td valign="top"><a href="mgl_en_1.html#Default-sizes">1.2.4 Default sizes</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-tile">tile</a></td><td valign="top"><a href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Tile">Tile</a></td><td valign="top"><a href="mgl_en_3.html#Tile-sample">3.2.8 Tile sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-tiles">tiles</a></td><td valign="top"><a href="mgl_en_1.html#Dual-plotting">1.13 Dual plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-TileS">TileS</a></td><td valign="top"><a href="mgl_en_3.html#TileS-sample">3.4.3 TileS sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-title">title</a></td><td valign="top"><a href="mgl_en_1.html#Text-printing">1.7 Text printing</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-tlabel">tlabel</a></td><td valign="top"><a href="mgl_en_1.html#Axis-and-Colorbar">1.8 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-torus">torus</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Torus">Torus</a></td><td valign="top"><a href="mgl_en_3.html#Torus-sample">3.1.21 Torus sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-trace">trace</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Traj">Traj</a></td><td valign="top"><a href="mgl_en_3.html#Traj-sample">3.4.5 Traj sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-traj">traj</a></td><td valign="top"><a href="mgl_en_1.html#Vector-fields">1.14 Vector fields</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-transform">transform</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-transforma">transforma</a></td><td valign="top"><a href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-transparent">transparent</a></td><td valign="top"><a href="mgl_en_1.html#Transparency">1.2.1 Transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-transpose">transpose</a></td><td valign="top"><a href="mgl_en_1.html#Rearrange-data">1.19 Rearrange data</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-TranspType">TranspType</a></td><td valign="top"><a href="mgl_en_3.html#Normal-transparency">3.5.11 Normal transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-transptype">transptype</a></td><td valign="top"><a href="mgl_en_1.html#Transparency">1.2.1 Transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-TranspType-1">TranspType</a></td><td valign="top"><a href="mgl_en_3.html#Glass_002dlike-transparency">3.5.12 Glass-like transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-TranspType-2">TranspType</a></td><td valign="top"><a href="mgl_en_3.html#Lamp_002dlike-transparency">3.5.13 Lamp-like transparency</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-tricont">tricont</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-triplot">triplot</a></td><td valign="top"><a href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Tube">Tube</a></td><td valign="top"><a href="mgl_en_3.html#Tube-sample">3.1.19 Tube sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-tube">tube</a></td><td valign="top"><a href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_en_5.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_en_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mgl_en.html/mgl_en_8.html b/texinfo/mgl_en.html/mgl_en_8.html
new file mode 100644
index 0000000..3c2a725
--- /dev/null
+++ b/texinfo/mgl_en.html/mgl_en_8.html
@@ -0,0 +1,238 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: Index: V &ndash; Z</title>
+
+<meta name="description" content="MGL script language for version 1.11: Index: V &ndash; Z">
+<meta name="keywords" content="MGL script language for version 1.11: Index: V &ndash; Z">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-2"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_7.html#index_split-1" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[ &gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Index: V &ndash; Z</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_en_5.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-V">V</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-var">var</a></td><td valign="top"><a href="mgl_en_1.html#Data-create">1.17 Data create</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-vect">vect</a></td><td valign="top"><a href="mgl_en_1.html#Vector-fields">1.14 Vector fields</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Vect">Vect</a></td><td valign="top"><a href="mgl_en_3.html#Vect-sample">3.4.6 Vect sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-Vect-1">Vect</a></td><td valign="top"><a href="mgl_en_3.html#Vect-3D-sample">3.4.14 Vect 3D sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-VectC">VectC</a></td><td valign="top"><a href="mgl_en_3.html#VectC-sample">3.4.8 VectC sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-vectc">vectc</a></td><td valign="top"><a href="mgl_en_1.html#Vector-fields">1.14 Vector fields</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-VectC-1">VectC</a></td><td valign="top"><a href="mgl_en_3.html#VectC-3D-sample">3.4.16 VectC 3D sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-vectl">vectl</a></td><td valign="top"><a href="mgl_en_1.html#Vector-fields">1.14 Vector fields</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-VectL">VectL</a></td><td valign="top"><a href="mgl_en_3.html#VectL-sample">3.4.7 VectL sample</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_3.html#index-VectL-1">VectL</a></td><td valign="top"><a href="mgl_en_3.html#VectL-3D-sample">3.4.15 VectL 3D sample</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-W">W</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-write">write</a></td><td valign="top"><a href="mgl_en_1.html#Export-to-file">1.5 Export to file</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-X">X</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-xlabel">xlabel</a></td><td valign="top"><a href="mgl_en_1.html#Axis-and-Colorbar">1.8 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-xrange">xrange</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-xrange-3">xrange</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-xtick">xtick</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-Y">Y</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ylabel">ylabel</a></td><td valign="top"><a href="mgl_en_1.html#Axis-and-Colorbar">1.8 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-yrange">yrange</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-yrange-3">yrange</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ytick">ytick</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-Z">Z</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-zlabel">zlabel</a></td><td valign="top"><a href="mgl_en_1.html#Axis-and-Colorbar">1.8 Axis and Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-zoom">zoom</a></td><td valign="top"><a href="mgl_en_1.html#Zooming">1.2.5 Zooming</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-zrange">zrange</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-zrange-3">zrange</a></td><td valign="top"><a href="mgl_en_1.html#Command-options">1.25 Command options</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_en_1.html#index-ztick">ztick</a></td><td valign="top"><a href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_en_5.html#Index-1_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_en_5.html#Index-1_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_en_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_en_7.html#index_split-1_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mgl_en.html/mgl_en_abt.html b/texinfo/mgl_en.html/mgl_en_abt.html
new file mode 100644
index 0000000..474dbc9
--- /dev/null
+++ b/texinfo/mgl_en.html/mgl_en_abt.html
@@ -0,0 +1,184 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: About This Document</title>
+
+<meta name="description" content="MGL script language for version 1.11: About This Document">
+<meta name="keywords" content="MGL script language for version 1.11: About This Document">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="SEC_About"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1>About This Document</h1>
+<p>
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+</p>
+<p>
+  The buttons in the navigation panels have the following meaning:
+</p>
+<table border="1">
+  <tr>
+    <th> Button </th>
+    <th> Name </th>
+    <th> Go to </th>
+    <th> From 1.2.3 go to</th>
+  </tr>
+  <tr>
+    <td align="center"> [ &lt; ] </td>
+    <td align="center">Back</td>
+    <td>Previous section in reading order</td>
+    <td>1.2.2</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &gt; ] </td>
+    <td align="center">Forward</td>
+    <td>Next section in reading order</td>
+    <td>1.2.4</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &lt;&lt; ] </td>
+    <td align="center">FastBack</td>
+    <td>Beginning of this chapter or previous chapter</td>
+    <td>1</td>
+  </tr>
+  <tr>
+    <td align="center"> [ Up ] </td>
+    <td align="center">Up</td>
+    <td>Up section</td>
+    <td>1.2</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &gt;&gt; ] </td>
+    <td align="center">FastForward</td>
+    <td>Next chapter</td>
+    <td>2</td>
+  </tr>
+  <tr>
+    <td align="center"> [Top] </td>
+    <td align="center">Top</td>
+    <td>Cover (top) of document</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [Contents] </td>
+    <td align="center">Contents</td>
+    <td>Table of contents</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [Index] </td>
+    <td align="center">Index</td>
+    <td>Index</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [ ? ] </td>
+    <td align="center">About</td>
+    <td>About (help)</td>
+    <td> &nbsp; </td>
+  </tr>
+</table>
+
+<p>
+  where the <strong> Example </strong> assumes that the current position is at <strong> Subsubsection One-Two-Three </strong> of a document of the following structure:
+</p>
+
+<ul>
+  <li> 1. Section One
+    <ul>
+      <li>1.1 Subsection One-One
+        <ul>
+          <li>...</li>
+        </ul>
+      </li>
+      <li>1.2 Subsection One-Two
+        <ul>
+          <li>1.2.1 Subsubsection One-Two-One</li>
+          <li>1.2.2 Subsubsection One-Two-Two</li>
+          <li>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp;
+            <strong>&lt;== Current Position </strong></li>
+          <li>1.2.4 Subsubsection One-Two-Four</li>
+        </ul>
+      </li>
+      <li>1.3 Subsection One-Three
+        <ul>
+          <li>...</li>
+        </ul>
+      </li>
+      <li>1.4 Subsection One-Four</li>
+    </ul>
+  </li>
+</ul>
+
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mgl_en.html/mgl_en_toc.html b/texinfo/mgl_en.html/mgl_en_toc.html
new file mode 100644
index 0000000..2566415
--- /dev/null
+++ b/texinfo/mgl_en.html/mgl_en_toc.html
@@ -0,0 +1,311 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<!-- This manual is for MathGL (version 1.11), a collection of classes and routines for scientific plotting. Please report any errors in this manual to mathgl.abalakin at gmail.org.
+
+Copyright C 2008 Alexey Balakin.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being "A GNU Manual,"
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled "GNU Free Documentation
+License."
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom."
+
+ -->
+<!-- Created on November 11, 2010 by texi2html 1.82
+texi2html was written by: 
+            Lionel Cons <Lionel.Cons at cern.ch> (original author)
+            Karl Berry  <karl at freefriends.org>
+            Olaf Bachmann <obachman at mathematik.uni-kl.de>
+            and many others.
+Maintained by: Many creative people.
+Send bugs and suggestions to <texi2html-bug at nongnu.org>
+-->
+<head>
+<title>MGL script language for version 1.11: Table of Contents</title>
+
+<meta name="description" content="MGL script language for version 1.11: Table of Contents">
+<meta name="keywords" content="MGL script language for version 1.11: Table of Contents">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2html 1.82">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="SEC_Contents"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1>Table of Contents</h1>
+<div class="contents">
+
+<ul class="toc">
+  <li><a name="toc-MGL-language" href="mgl_en_1.html#MGL-interface">1. MGL language</a>
+  <ul class="toc">
+    <li><a name="toc-General-concepts-1" href="mgl_en_1.html#General-concepts">1.1 General concepts</a>
+    <ul class="toc">
+      <li><a name="toc-Coordinate-axes-1" href="mgl_en_1.html#Coordinate-axes">1.1.1 Coordinate axes</a></li>
+      <li><a name="toc-Line-styles-1" href="mgl_en_1.html#Line-styles">1.1.2 Line styles</a></li>
+      <li><a name="toc-Color-scheme-1" href="mgl_en_1.html#Color-scheme">1.1.3 Color scheme</a></li>
+      <li><a name="toc-Font-styles-1" href="mgl_en_1.html#Font-styles">1.1.4 Font styles</a></li>
+      <li><a name="toc-Textual-formulas-1" href="mgl_en_1.html#Textual-formulas">1.1.5 Textual formulas</a></li>
+    </ul></li>
+    <li><a name="toc-Graphics-setup-1" href="mgl_en_1.html#Graphics-setup">1.2 Graphics setup</a>
+    <ul class="toc">
+      <li><a name="toc-Transparency-1" href="mgl_en_1.html#Transparency">1.2.1 Transparency</a></li>
+      <li><a name="toc-Lighting-1" href="mgl_en_1.html#Lighting">1.2.2 Lighting</a></li>
+      <li><a name="toc-Fog-1" href="mgl_en_1.html#Fog">1.2.3 Fog</a></li>
+      <li><a name="toc-Default-sizes-1" href="mgl_en_1.html#Default-sizes">1.2.4 Default sizes</a></li>
+      <li><a name="toc-Zooming-1" href="mgl_en_1.html#Zooming">1.2.5 Zooming</a></li>
+      <li><a name="toc-Cutting-1" href="mgl_en_1.html#Cutting">1.2.6 Cutting</a></li>
+      <li><a name="toc-Other-settings-1" href="mgl_en_1.html#Other-settings">1.2.7 Other settings</a></li>
+    </ul></li>
+    <li><a name="toc-Axis-settings-1" href="mgl_en_1.html#Axis-settings">1.3 Axis settings</a></li>
+    <li><a name="toc-Transformation-matrix-1" href="mgl_en_1.html#Transformation-matrix">1.4 Transformation matrix</a></li>
+    <li><a name="toc-Export-to-file-1" href="mgl_en_1.html#Export-to-file">1.5 Export to file</a></li>
+    <li><a name="toc-Primitives-drawing-1" href="mgl_en_1.html#Primitives-drawing">1.6 Primitives drawing</a></li>
+    <li><a name="toc-Text-printing-1" href="mgl_en_1.html#Text-printing">1.7 Text printing</a></li>
+    <li><a name="toc-Axis-and-Colorbar-1" href="mgl_en_1.html#Axis-and-Colorbar">1.8 Axis and Colorbar</a></li>
+    <li><a name="toc-Legend-1" href="mgl_en_1.html#Legend">1.9 Legend</a></li>
+    <li><a name="toc-1D-plotting-1" href="mgl_en_1.html#g_t1D-plotting">1.10 1D plotting</a></li>
+    <li><a name="toc-2D-plotting-1" href="mgl_en_1.html#g_t2D-plotting">1.11 2D plotting</a></li>
+    <li><a name="toc-3D-plotting-1" href="mgl_en_1.html#g_t3D-plotting">1.12 3D plotting</a></li>
+    <li><a name="toc-Dual-plotting-1" href="mgl_en_1.html#Dual-plotting">1.13 Dual plotting</a></li>
+    <li><a name="toc-Vector-fields-1" href="mgl_en_1.html#Vector-fields">1.14 Vector fields</a></li>
+    <li><a name="toc-Other-plotting-1" href="mgl_en_1.html#Other-plotting">1.15 Other plotting</a></li>
+    <li><a name="toc-Nonlinear-fitting-1" href="mgl_en_1.html#Nonlinear-fitting">1.16 Nonlinear fitting</a></li>
+    <li><a name="toc-Data-create-1" href="mgl_en_1.html#Data-create">1.17 Data create</a></li>
+    <li><a name="toc-Data-filling-1" href="mgl_en_1.html#Data-filling">1.18 Data filling</a></li>
+    <li><a name="toc-Rearrange-data-1" href="mgl_en_1.html#Rearrange-data">1.19 Rearrange data</a></li>
+    <li><a name="toc-File-I_002fO-1" href="mgl_en_1.html#File-I_002fO">1.20 File I/O</a></li>
+    <li><a name="toc-Make-another-data-1" href="mgl_en_1.html#Make-another-data">1.21 Make another data</a></li>
+    <li><a name="toc-Change-data-1" href="mgl_en_1.html#Change-data">1.22 Change data</a></li>
+    <li><a name="toc-Operators-1" href="mgl_en_1.html#Operators">1.23 Operators</a></li>
+    <li><a name="toc-Program-flow-1" href="mgl_en_1.html#Program-flow">1.24 Program flow</a></li>
+    <li><a name="toc-Command-options-1" href="mgl_en_1.html#Command-options">1.25 Command options</a></li>
+    <li><a name="toc-Suffixes-for-variable" href="mgl_en_1.html#Suffixes">1.26 Suffixes for variable</a></li>
+    <li><a name="toc-Utilities-for-parsing-MGL" href="mgl_en_1.html#Utilities">1.27 Utilities for parsing MGL</a></li>
+  </ul></li>
+  <li><a name="toc-MathGL-examples" href="mgl_en_2.html#Examples">2. MathGL examples</a>
+  <ul class="toc">
+    <li><a name="toc-Basic-usage-1" href="mgl_en_2.html#Basic-usage">2.1 Basic usage</a></li>
+    <li><a name="toc-Advanced-usage-1" href="mgl_en_2.html#Advanced-usage">2.2 Advanced usage</a>
+    <ul class="toc">
+      <li><a name="toc-Subplots-1" href="mgl_en_2.html#Subplots">2.2.1 Subplots</a></li>
+      <li><a name="toc-Axis-and-grids-1" href="mgl_en_2.html#Axis-and-grids">2.2.2 Axis and grids</a></li>
+      <li><a name="toc-Curvilinear-coordinates-1" href="mgl_en_2.html#Curvilinear-coordinates">2.2.3 Curvilinear coordinates</a></li>
+      <li><a name="toc-Text-printing-example-1" href="mgl_en_2.html#Text-printing-example">2.2.4 Text printing example</a></li>
+    </ul></li>
+    <li><a name="toc-Data-handling-1" href="mgl_en_2.html#Data-handling">2.3 Data handling</a>
+    <ul class="toc">
+      <li><a name="toc-Array-creation-1" href="mgl_en_2.html#Array-creation">2.3.1 Array creation</a></li>
+      <li><a name="toc-Data-changing-1" href="mgl_en_2.html#Data-changing">2.3.2 Data changing</a></li>
+    </ul></li>
+    <li><a name="toc-Data-plotting-1" href="mgl_en_2.html#Data-plotting">2.4 Data plotting</a>
+    <ul class="toc">
+      <li><a name="toc-Plots-for-1D-data-1" href="mgl_en_2.html#Plots-for-1D-data">2.4.1 Plots for 1D data</a></li>
+      <li><a name="toc-Plots-for-2D-data-1" href="mgl_en_2.html#Plots-for-2D-data">2.4.2 Plots for 2D data</a></li>
+      <li><a name="toc-Plots-for-3D-data-1" href="mgl_en_2.html#Plots-for-3D-data">2.4.3 Plots for 3D data</a></li>
+      <li><a name="toc-Surface-transparency-1" href="mgl_en_2.html#Surface-transparency">2.4.4 Surface transparency</a></li>
+    </ul></li>
+    <li><a name="toc-Hints-1" href="mgl_en_2.html#Hints">2.5 Hints</a>
+    <ul class="toc">
+      <li><a name="toc-_0060_0060Compound_0027_0027-graphics-1" href="mgl_en_2.html#g_t_0060_0060Compound_0027_0027-graphics">2.5.1 &ldquo;Compound&rdquo; graphics</a></li>
+      <li><a name="toc-Two-axes-in-one-plot-1" href="mgl_en_2.html#Two-axes-in-one-plot">2.5.2 Two axes in one plot</a></li>
+      <li><a name="toc-Titles-for-the-plot-1" href="mgl_en_2.html#Titles-for-the-plot">2.5.3 Titles for the plot</a></li>
+      <li><a name="toc-Changing-of-the-color-range-1" href="mgl_en_2.html#Changing-of-the-color-range">2.5.4 Changing of the color range</a></li>
+      <li><a name="toc-Management-of-a-point-cutting-1" href="mgl_en_2.html#Management-of-a-point-cutting">2.5.5 Management of a point cutting</a></li>
+      <li><a name="toc-Vector-field-visualization-1" href="mgl_en_2.html#Vector-field-visualization">2.5.6 Vector field visualization</a></li>
+      <li><a name="toc-Several-light-sources-1" href="mgl_en_2.html#Several-light-sources">2.5.7 Several light sources</a></li>
+      <li><a name="toc-CutMin-and-CutMax-features-1" href="mgl_en_2.html#CutMin-and-CutMax-features">2.5.8 CutMin and CutMax features</a></li>
+      <li><a name="toc-Mapping-visualization-1" href="mgl_en_2.html#Mapping-visualization">2.5.9 Mapping visualization</a></li>
+      <li><a name="toc-Log_002dscaled-plot-1" href="mgl_en_2.html#Log_002dscaled-plot">2.5.10 Log-scaled plot</a></li>
+      <li><a name="toc-Nonlinear-fitting-hints-1" href="mgl_en_2.html#Nonlinear-fitting-hints">2.5.11 Nonlinear fitting hints</a></li>
+      <li><a name="toc-PDE-solving-hints-1" href="mgl_en_2.html#PDE-solving-hints">2.5.12 PDE solving hints</a></li>
+      <li><a name="toc-Stereo-image-1" href="mgl_en_2.html#Stereo-image">2.5.13 Stereo image</a></li>
+    </ul>
+</li>
+  </ul></li>
+  <li><a name="toc-Samples-1" href="mgl_en_3.html#Samples">3. Samples</a>
+  <ul class="toc">
+    <li><a name="toc-1D-plotting-samples-1" href="mgl_en_3.html#g_t1D-plotting-samples">3.1 1D plotting samples</a>
+    <ul class="toc">
+      <li><a name="toc-Plot-sample-1" href="mgl_en_3.html#Plot-sample">3.1.1 Plot sample</a></li>
+      <li><a name="toc-Radar-sample-1" href="mgl_en_3.html#Radar-sample">3.1.2 Radar sample</a></li>
+      <li><a name="toc-Tens-sample-1" href="mgl_en_3.html#Tens-sample">3.1.3 Tens sample</a></li>
+      <li><a name="toc-Area-sample-1" href="mgl_en_3.html#Area-sample">3.1.4 Area sample</a></li>
+      <li><a name="toc-Area-with-gradient-filling-sample" href="mgl_en_3.html#Area-gradient-sample">3.1.5 Area with gradient filling sample</a></li>
+      <li><a name="toc-Bars-sample-1" href="mgl_en_3.html#Bars-sample">3.1.6 Bars sample</a></li>
+      <li><a name="toc-Bars-2-colors-sample-1" href="mgl_en_3.html#Bars-2-colors-sample">3.1.7 Bars 2 colors sample</a></li>
+      <li><a name="toc-Bars-above-sample-1" href="mgl_en_3.html#Bars-above-sample">3.1.8 Bars above sample</a></li>
+      <li><a name="toc-Bars-fall-sample-1" href="mgl_en_3.html#Bars-fall-sample">3.1.9 Bars fall sample</a></li>
+      <li><a name="toc-Barh-sample-1" href="mgl_en_3.html#Barh-sample">3.1.10 Barh sample</a></li>
+      <li><a name="toc-Step-sample-1" href="mgl_en_3.html#Step-sample">3.1.11 Step sample</a></li>
+      <li><a name="toc-Stem-sample-1" href="mgl_en_3.html#Stem-sample">3.1.12 Stem sample</a></li>
+      <li><a name="toc-Region-sample-1" href="mgl_en_3.html#Region-sample">3.1.13 Region sample</a></li>
+      <li><a name="toc-Region-gradient-sample-1" href="mgl_en_3.html#Region-gradient-sample">3.1.14 Region gradient sample</a></li>
+      <li><a name="toc-Error-sample-1" href="mgl_en_3.html#Error-sample">3.1.15 Error sample</a></li>
+      <li><a name="toc-BoxPlot-sample-1" href="mgl_en_3.html#BoxPlot-sample">3.1.16 BoxPlot sample</a></li>
+      <li><a name="toc-Mark-sample-1" href="mgl_en_3.html#Mark-sample">3.1.17 Mark sample</a></li>
+      <li><a name="toc-TextMark-sample-1" href="mgl_en_3.html#TextMark-sample">3.1.18 TextMark sample</a></li>
+      <li><a name="toc-Tube-sample-1" href="mgl_en_3.html#Tube-sample">3.1.19 Tube sample</a></li>
+      <li><a name="toc-Text-sample-1" href="mgl_en_3.html#Text-sample">3.1.20 Text sample</a></li>
+      <li><a name="toc-Torus-sample-1" href="mgl_en_3.html#Torus-sample">3.1.21 Torus sample</a></li>
+      <li><a name="toc-Chart-sample-1" href="mgl_en_3.html#Chart-sample">3.1.22 Chart sample</a></li>
+      <li><a name="toc-Pie-chart-sample-1" href="mgl_en_3.html#Pie-chart-sample">3.1.23 Pie chart sample</a></li>
+      <li><a name="toc-Ring-chart-sample-1" href="mgl_en_3.html#Ring-chart-sample">3.1.24 Ring chart sample</a></li>
+    </ul></li>
+    <li><a name="toc-2D-plotting-samples-1" href="mgl_en_3.html#g_t2D-plotting-samples">3.2 2D plotting samples</a>
+    <ul class="toc">
+      <li><a name="toc-Surf-sample-1" href="mgl_en_3.html#Surf-sample">3.2.1 Surf sample</a></li>
+      <li><a name="toc-Transparent-surface-sample-1" href="mgl_en_3.html#Transparent-surface-sample">3.2.2 Transparent surface sample</a></li>
+      <li><a name="toc-Surface-in-fog-sample-1" href="mgl_en_3.html#Surface-in-fog-sample">3.2.3 Surface in fog sample</a></li>
+      <li><a name="toc-Sharp-colors-sample-1" href="mgl_en_3.html#Sharp-colors-sample">3.2.4 Sharp colors sample</a></li>
+      <li><a name="toc-Mesh-sample-1" href="mgl_en_3.html#Mesh-sample">3.2.5 Mesh sample</a></li>
+      <li><a name="toc-Fall-sample-1" href="mgl_en_3.html#Fall-sample">3.2.6 Fall sample</a></li>
+      <li><a name="toc-Belt-sample-1" href="mgl_en_3.html#Belt-sample">3.2.7 Belt sample</a></li>
+      <li><a name="toc-Tile-sample-1" href="mgl_en_3.html#Tile-sample">3.2.8 Tile sample</a></li>
+      <li><a name="toc-Boxs-sample-1" href="mgl_en_3.html#Boxs-sample">3.2.9 Boxs sample</a></li>
+      <li><a name="toc-Dens-sample-1" href="mgl_en_3.html#Dens-sample">3.2.10 Dens sample</a></li>
+      <li><a name="toc-Cont-sample-1" href="mgl_en_3.html#Cont-sample">3.2.11 Cont sample</a></li>
+      <li><a name="toc-ContF-sample-1" href="mgl_en_3.html#ContF-sample">3.2.12 ContF sample</a></li>
+      <li><a name="toc-ContD-sample-1" href="mgl_en_3.html#ContD-sample">3.2.13 ContD sample</a></li>
+      <li><a name="toc-Axial-sample-1" href="mgl_en_3.html#Axial-sample">3.2.14 Axial sample</a></li>
+      <li><a name="toc-Grad-sample-1" href="mgl_en_3.html#Grad-sample">3.2.15 Grad sample</a></li>
+    </ul></li>
+    <li><a name="toc-3D-plotting-samples-1" href="mgl_en_3.html#g_t3D-plotting-samples">3.3 3D plotting samples</a>
+    <ul class="toc">
+      <li><a name="toc-Surf3-sample-1" href="mgl_en_3.html#Surf3-sample">3.3.1 Surf3 sample</a></li>
+      <li><a name="toc-Cloud-sample-1" href="mgl_en_3.html#Cloud-sample">3.3.2 Cloud sample</a></li>
+      <li><a name="toc-CloudP-sample-1" href="mgl_en_3.html#CloudP-sample">3.3.3 CloudP sample</a></li>
+      <li><a name="toc-Dens3-sample-1" href="mgl_en_3.html#Dens3-sample">3.3.4 Dens3 sample</a></li>
+      <li><a name="toc-Cont3-sample-1" href="mgl_en_3.html#Cont3-sample">3.3.5 Cont3 sample</a></li>
+      <li><a name="toc-ContF3-sample-1" href="mgl_en_3.html#ContF3-sample">3.3.6 ContF3 sample</a></li>
+      <li><a name="toc-Cont-projection-sample-1" href="mgl_en_3.html#Cont-projection-sample">3.3.7 Cont projection sample</a></li>
+      <li><a name="toc-Dens-projection-sample-1" href="mgl_en_3.html#Dens-projection-sample">3.3.8 Dens projection sample</a></li>
+      <li><a name="toc-CutMinMax-sample-1" href="mgl_en_3.html#CutMinMax-sample">3.3.9 CutMinMax sample</a></li>
+      <li><a name="toc-_0060_0060Isocaps_0027_0027-sample" href="mgl_en_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; sample</a></li>
+      <li><a name="toc-CutOff-sample-1" href="mgl_en_3.html#CutOff-sample">3.3.11 CutOff sample</a></li>
+    </ul></li>
+    <li><a name="toc-Dual-plotting-samples-1" href="mgl_en_3.html#Dual-plotting-samples">3.4 Dual plotting samples</a>
+    <ul class="toc">
+      <li><a name="toc-SurfC-sample-1" href="mgl_en_3.html#SurfC-sample">3.4.1 SurfC sample</a></li>
+      <li><a name="toc-SurfA-sample-1" href="mgl_en_3.html#SurfA-sample">3.4.2 SurfA sample</a></li>
+      <li><a name="toc-TileS-sample-1" href="mgl_en_3.html#TileS-sample">3.4.3 TileS sample</a></li>
+      <li><a name="toc-Map-sample-1" href="mgl_en_3.html#Map-sample">3.4.4 Map sample</a></li>
+      <li><a name="toc-Traj-sample-1" href="mgl_en_3.html#Traj-sample">3.4.5 Traj sample</a></li>
+      <li><a name="toc-Vect-sample-1" href="mgl_en_3.html#Vect-sample">3.4.6 Vect sample</a></li>
+      <li><a name="toc-VectL-sample-1" href="mgl_en_3.html#VectL-sample">3.4.7 VectL sample</a></li>
+      <li><a name="toc-VectC-sample-1" href="mgl_en_3.html#VectC-sample">3.4.8 VectC sample</a></li>
+      <li><a name="toc-Flow-sample-1" href="mgl_en_3.html#Flow-sample">3.4.9 Flow sample</a></li>
+      <li><a name="toc-Pipe-sample-1" href="mgl_en_3.html#Pipe-sample">3.4.10 Pipe sample</a></li>
+      <li><a name="toc-Dew-sample-1" href="mgl_en_3.html#Dew-sample">3.4.11 Dew sample</a></li>
+      <li><a name="toc-Surf3C-sample-1" href="mgl_en_3.html#Surf3C-sample">3.4.12 Surf3C sample</a></li>
+      <li><a name="toc-Surf3A-sample-1" href="mgl_en_3.html#Surf3A-sample">3.4.13 Surf3A sample</a></li>
+      <li><a name="toc-Vect-3D-sample-1" href="mgl_en_3.html#Vect-3D-sample">3.4.14 Vect 3D sample</a></li>
+      <li><a name="toc-VectL-3D-sample-1" href="mgl_en_3.html#VectL-3D-sample">3.4.15 VectL 3D sample</a></li>
+      <li><a name="toc-VectC-3D-sample-1" href="mgl_en_3.html#VectC-3D-sample">3.4.16 VectC 3D sample</a></li>
+      <li><a name="toc-Flow-3D-sample-1" href="mgl_en_3.html#Flow-3D-sample">3.4.17 Flow 3D sample</a></li>
+      <li><a name="toc-Pipe-3D-sample-1" href="mgl_en_3.html#Pipe-3D-sample">3.4.18 Pipe 3D sample</a></li>
+      <li><a name="toc-Crust-sample-1" href="mgl_en_3.html#Crust-sample">3.4.19 Crust sample</a></li>
+      <li><a name="toc-Dots-sample-1" href="mgl_en_3.html#Dots-sample">3.4.20 Dots sample</a></li>
+    </ul></li>
+    <li><a name="toc-Basic-features-1" href="mgl_en_3.html#Basic-features">3.5 Basic features</a>
+    <ul class="toc">
+      <li><a name="toc-1D-plot-sample-1" href="mgl_en_3.html#g_t1D-plot-sample">3.5.1 1D plot sample</a></li>
+      <li><a name="toc-2D-plot-sample-1" href="mgl_en_3.html#g_t2D-plot-sample">3.5.2 2D plot sample</a></li>
+      <li><a name="toc-3D-plot-sample-1" href="mgl_en_3.html#g_t3D-plot-sample">3.5.3 3D plot sample</a></li>
+      <li><a name="toc-Line-styles-sample-1" href="mgl_en_3.html#Line-styles-sample">3.5.4 Line styles sample</a></li>
+      <li><a name="toc-Arrow-styles-sample-1" href="mgl_en_3.html#Arrow-styles-sample">3.5.5 Arrow styles sample</a></li>
+      <li><a name="toc-Text-styles-sample-1" href="mgl_en_3.html#Text-styles-sample">3.5.6 Text styles sample</a></li>
+      <li><a name="toc-TeX-parsing-sample-1" href="mgl_en_3.html#TeX-parsing-sample">3.5.7 TeX parsing sample</a></li>
+      <li><a name="toc-Font-faces-sample-1" href="mgl_en_3.html#Font-faces-sample">3.5.8 Font faces sample</a></li>
+      <li><a name="toc-Colors-sample-1" href="mgl_en_3.html#Colors-sample">3.5.9 Colors sample</a></li>
+      <li><a name="toc-Color-schemes-sample-1" href="mgl_en_3.html#Color-schemes-sample">3.5.10 Color schemes sample</a></li>
+      <li><a name="toc-Normal-transparency-1" href="mgl_en_3.html#Normal-transparency">3.5.11 Normal transparency</a></li>
+      <li><a name="toc-Glass_002dlike-transparency-1" href="mgl_en_3.html#Glass_002dlike-transparency">3.5.12 Glass-like transparency</a></li>
+      <li><a name="toc-Lamp_002dlike-transparency-1" href="mgl_en_3.html#Lamp_002dlike-transparency">3.5.13 Lamp-like transparency</a></li>
+    </ul></li>
+    <li><a name="toc-Additional-features-1" href="mgl_en_3.html#Additional-features">3.6 Additional features</a>
+    <ul class="toc">
+      <li><a name="toc-Legend-sample-1" href="mgl_en_3.html#Legend-sample">3.6.1 Legend sample</a></li>
+      <li><a name="toc-Adding-mesh-sample-1" href="mgl_en_3.html#Adding-mesh-sample">3.6.2 Adding mesh sample</a></li>
+      <li><a name="toc-Surf-_0026-Cont-sample-1" href="mgl_en_3.html#Surf-_0026-Cont-sample">3.6.3 Surf &amp; Cont sample</a></li>
+      <li><a name="toc-Flow-_0026-Dens-sample-1" href="mgl_en_3.html#Flow-_0026-Dens-sample">3.6.4 Flow &amp; Dens sample</a></li>
+      <li><a name="toc-Several-light-sample-1" href="mgl_en_3.html#Several-light-sample">3.6.5 Several light sample</a></li>
+      <li><a name="toc-Mirrored-surface-sample-1" href="mgl_en_3.html#Mirrored-surface-sample">3.6.6 Mirrored surface sample</a></li>
+      <li><a name="toc-Cont-with-labels-sample-1" href="mgl_en_3.html#Cont-with-labels-sample">3.6.7 Cont with labels sample</a></li>
+      <li><a name="toc-Ternary-plot-sample-1" href="mgl_en_3.html#Ternary-plot-sample">3.6.8 Ternary plot sample</a></li>
+      <li><a name="toc-Coloring-by-coordinates-sample-1" href="mgl_en_3.html#Coloring-by-coordinates-sample">3.6.9 Coloring by coordinates sample</a></li>
+      <li><a name="toc-Drops-sample-1" href="mgl_en_3.html#Drops-sample">3.6.10 Drops sample</a></li>
+      <li><a name="toc-Molecules-drawing-sample-1" href="mgl_en_3.html#Molecules-drawing-sample">3.6.11 Molecules drawing sample</a></li>
+    </ul></li>
+    <li><a name="toc-Advanced-features-1" href="mgl_en_3.html#Advanced-features">3.7 Advanced features</a>
+    <ul class="toc">
+      <li><a name="toc-Curvelinear-coorinates-sample-1" href="mgl_en_3.html#Curvelinear-coorinates-sample">3.7.1 Curvelinear coorinates sample</a></li>
+      <li><a name="toc-2_002daxes-sample-1" href="mgl_en_3.html#g_t2_002daxes-sample">3.7.2 2-axes sample</a></li>
+      <li><a name="toc-Semi_002dlog-sample-1" href="mgl_en_3.html#Semi_002dlog-sample">3.7.3 Semi-log sample</a></li>
+      <li><a name="toc-Log_002dlog-sample-1" href="mgl_en_3.html#Log_002dlog-sample">3.7.4 Log-log sample</a></li>
+      <li><a name="toc-Fitting-sample-1" href="mgl_en_3.html#Fitting-sample">3.7.5 Fitting sample</a></li>
+      <li><a name="toc-Envelop-sample-1" href="mgl_en_3.html#Envelop-sample">3.7.6 Envelop sample</a></li>
+      <li><a name="toc-Sew-sample-1" href="mgl_en_3.html#Sew-sample">3.7.7 Sew sample</a></li>
+      <li><a name="toc-STFA-sample-1" href="mgl_en_3.html#STFA-sample">3.7.8 STFA sample</a></li>
+      <li><a name="toc-PDE-sample-1" href="mgl_en_3.html#PDE-sample">3.7.9 PDE sample</a></li>
+      <li><a name="toc-Beam-tracing-sample-1" href="mgl_en_3.html#Beam-tracing-sample">3.7.10 Beam tracing sample</a></li>
+      <li><a name="toc-Parser-sample-1" href="mgl_en_3.html#Parser-sample">3.7.11 Parser sample</a></li>
+      <li><a name="toc-Tick-values-sample" href="mgl_en_3.html#Manual-ticks-sample">3.7.12 Tick values sample</a></li>
+      <li><a name="toc-ColumnPlot-sample-1" href="mgl_en_3.html#ColumnPlot-sample">3.7.13 ColumnPlot sample</a></li>
+      <li><a name="toc-StickPlot-sample-1" href="mgl_en_3.html#StickPlot-sample">3.7.14 StickPlot sample</a></li>
+      <li><a name="toc-Stereo-image-sample-1" href="mgl_en_3.html#Stereo-image-sample">3.7.15 Stereo image sample</a></li>
+    </ul>
+</li>
+  </ul></li>
+  <li><a name="toc-GNU-Free-Documentation-License" href="mgl_en_4.html#Copying-This-Manual">A. GNU Free Documentation License</a></li>
+  <li><a name="toc-Index-1" href="mgl_en_5.html#Index">Index</a></li>
+</ul>
+</div>
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_en.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_en_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mgl_en.info b/texinfo/mgl_en.info
new file mode 100644
index 0000000..8c2df38
--- /dev/null
+++ b/texinfo/mgl_en.info
@@ -0,0 +1,7303 @@
+This is mgl_en.info, produced by makeinfo version 4.13 from mgl_en.texi.
+
+This manual is for MathGL (version 1.11), a collection of classes and
+routines for scientific plotting. Please report any errors in this
+manual to <mathgl.abalakin at gmail.org>.
+
+   Copyright (C) 2008 Alexey Balakin.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with the Front-Cover Texts
+     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+     below.  A copy of the license is included in the section entitled
+     "GNU Free Documentation License."
+
+     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+     and modify this GNU manual.  Buying copies from the FSF supports
+     it in developing GNU and promoting software freedom."
+
+
+File: mgl_en.info,  Node: Top,  Next: MGL interface,  Up: (dir)
+
+MGL script language
+*******************
+
+This file documents the MGL script language. It corresponds to release
+1.11 of the MathGL library. Please report any errors in this manual to
+<mathgl.abalakin at gmail.org>. More information about MGL and MathGL can
+be found at the project homepage, `http://mathgl.sourceforge.net/'.
+
+   Copyright (C) 2008 Alexey A. Balakin.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with the Front-Cover Texts
+     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+     below.  A copy of the license is included in the section entitled
+     "GNU Free Documentation License."
+
+     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+     and modify this GNU manual.  Buying copies from the FSF supports
+     it in developing GNU and promoting software freedom."
+
+* Menu:
+
+* MGL interface::
+* Examples::
+* Samples::
+* Copying This Manual::
+* Index::
+
+
+File: mgl_en.info,  Node: MGL interface,  Next: Examples,  Up: Top
+
+1 MGL language
+**************
+
+MathGL library supports the simplest scripts for data handling and
+plotting. These scripts can be used independently (with the help of
+UDAV, mgl2png, mgl2eps, mgl2svg programs and others, *note Utilities::)
+or in the frame of the library using.
+
+   MGL script language is rather simple. Each string is a command.
+First word of string is the name of command. Other words are command
+arguments. Command may have up to 1000 arguments (at least for now).
+Words are separated from each other by space or tabulation symbol. The
+upper or lower case of words is sufficient, i.e. variables A and A are
+different variables. Symbol `#' starts the comment (all characters
+after # will be ignored). The exception is situation when `#' is a part
+of some string. Also options can be specified after symbol `;' (*note
+Command options::). Symbol `:' starts new command (like new line
+character) if it is not placed inside a string or inside brackets.
+
+   If string contain references to external parameters (substrings
+`$0', `$1' ... `$9') or definitions (substrings `$a', `$b' ... `$z')
+then before execution the values of parameter/definition will be
+substituted instead of reference. It allows to use the same MGL script
+for different parameters (filenames, paths, condition and so on).
+
+   Argument can be a string, a variable name or a number.
+   * The string is any symbols between ordinary marks `''.
+
+   * Usually variable have a name which is arbitrary combination of
+     symbols (except spaces and `'') started from a letter and with
+     length less than 64. A temporary array can be used as variable:
+        * sub-arrays (like in *note subdata:: command) as command
+          argument. For example, `a(1)' or `a(1,:)' or `a(1,:,:)' is
+          second row, `a(:,2)' or `a(:,2,:)' is third column,
+          `a(:,:,0)' is first slice and so on. Also you can extract a
+          part of array from m-th to n-th element by code `a(m:n,:,:)'
+          or just `a(m:n)'.
+
+        * any column combinations defined by formulas, like
+          `a('n*w^2/exp(t)')' if names for data columns was specified
+          (by *note idset:: command or in the file at string started
+          with `##').
+
+        * any expression (without spaces) of existed variables produce
+          temporary variable. For example, `sqrt(dat(:,5)+1)' will
+          produce temporary variable with data values equal to
+          `tmp[i,j] = sqrt(dat[i,5,j]+1)'.
+
+        * temporary variable of higher dimensions by help of []. For
+          example, `[1,2,3]' will produce a temporary vector of 3
+          elements {1, 2, 3}; `[[11,12],[21,22]]' will produce matrix
+          2*2 and so on. Here you can join even an arrays of the same
+          dimensions by construction like `[v1,v2,...,vn]'.
+
+        * result of code for making new data (*note Make another
+          data::) inside {}. For example, `{sum dat 'x'}' produce
+          temporary variable which contain result of summation of DAT
+          along direction 'x'. This is the same array TMP as produced
+          by command `sum tmp dat 'x''. You can use nested
+          constructions, like `{sum {max dat 'z'} 'x'}'.
+     Temporary variables can not be used as 1st argument for commands
+     which create (return) the data (like `new', `read', `hist' and so
+     on).
+
+   * Special names `nan=#QNAN, pi=3.1415926..., on=1, off=0, :=-1' are
+     treated as number if they were not redefined by user. Variables
+     with suffixes are treated as numbers (*note Suffixes::). Names
+     defined by *note define:: command are treated as number. Also
+     results of formulas with sizes 1x1x1 are treated as number (for
+     example, `pi/dat.nx').
+   Before the first using all variables must be defined with the help
+of commands, like, *note new::, *note var::, *note list::, *note
+copy::, *note read::, *note hist::, *note sum:: and so on (*note Data
+create:: and *note Make another data::).
+
+   Command may have several set of possible arguments (for example,
+`plot ydat' and `plot xdat ydat'). All command arguments for a selected
+set must be specified. However, some arguments can have default values.
+These argument are printed in [], like `plot ydat ['stl'='' zval=nan]'.
+At this, the record `[arg1 arg2 arg3 ...]' means `[arg1 [arg2 [arg3
+...]]]', i.e. you can omit only tailing arguments if you agree with its
+default values. For example, `plot ydat '' 1' or `plot ydat ''' is
+correct, but `plot ydat 1' is incorrect (argument `'stl'' is missed).
+
+   All MGL commands can be divided on several groups. I will use the
+following notation for a command description: command names are bold,
+strings are denoted by commas, variable names are italic, numbers are
+typewriter. Optional arguments are placed in square brackets and
+default values for them are shown. Detailed description of color, line
+styles (*note Line styles::), color schemes (*note Color scheme::),
+font types, TeX-like symbols (*note Font styles::) and formulas (*note
+Textual formulas::) can be found in corresponding section.
+
+* Menu:
+
+
+* General concepts::
+* Graphics setup ::
+* Axis settings ::
+* Transformation matrix ::
+* Export to file ::
+* Primitives drawing ::
+* Text printing ::
+* Axis and Colorbar ::
+* Legend ::
+* 1D plotting ::
+* 2D plotting ::
+* 3D plotting ::
+* Dual plotting ::
+* Vector fields ::
+* Other plotting ::
+* Nonlinear fitting ::
+* Data create ::
+* Data filling ::
+* Rearrange data ::
+* File I/O ::
+* Make another data ::
+* Change data ::
+* Operators ::
+* Program flow ::
+* Command options ::
+* Suffixes::
+* Utilities::
+
+
+File: mgl_en.info,  Node: General concepts,  Prev: Utilities,  Up: MGL interface
+
+1.1 General concepts
+====================
+
+The set of MathGL features is rather rich - just the number of basic
+graphics types is larger than 40. Also there are functions for data
+handling, plot setup and so on. In spite of it I tried to keep a
+similar style in command names and in the order of arguments. Mostly it
+is used for different drawing functions.
+
+   There are 4 most general (base) concepts:
+  1. *Every plot settings (style of lines, font, color scheme) are
+     specified by a string.* It provides convenience for
+     user/programmer - short string with parameters is more
+     comprehensible than a large set of parameters. Also it provides
+     portability - the strings are the same in any OS so that it is not
+     necessary to think about argument types.
+
+  2. *All commands have "simplified" and "advanced" forms.* It is done
+     for user</samp>&rsquo;s convenience. One needs to specify only one
+     data array in the "simplified" form in order to see the result.
+     But one may set parametric dependence of coordinates and produce
+     rather complex curves and surfaces in the "advanced" form. In both
+     cases the order of function arguments is the same: first data
+     arrays, second the string with plot parameters, and later optional
+     arguments for plot tuning.
+
+  3. *All plots are vector plots.* The MathGL library is intended for
+     handling scientific data which have vector nature (lines, faces,
+     matrices and so on). As a result, vector representation is used in
+     all cases! In addition, the vector representation allows one to
+     scale the plot easily - change the canvas size by a factor of 2,
+     and the picture will be proportionally scaled.
+
+  4. *New drawing never clears things drawn already.* This, in some
+     sense, unexpected, idea allows to create a lot of "combined"
+     graphics. For example, to make a surface with contour lines one
+     needs to call the function for surface plotting and the function
+     for contour lines plotting (in any order). Thus the special
+     functions for making this "combined" plots (as it is done in
+     Matlab and some other plotting systems) are superfluous. Many more
+     examples of such plots can be found in section *note Hints:: and
+     in home site (`http://mathgl.sf.net/index.html').
+
+   In addition to the general concepts I want to comment on some
+non-trivial or less commonly used general ideas - plot positioning,
+axis specification and curvilinear coordinates, styles for lines, text
+and color scheme.
+
+* Menu:
+
+* Coordinate axes::
+* Line styles::
+* Color scheme::
+* Font styles::
+* Textual formulas::
+
+
+File: mgl_en.info,  Node: Coordinate axes,  Next: Line styles,  Up: General concepts
+
+1.1.1 Coordinate axes
+---------------------
+
+Two axis representations are used in MathGL. The first one consists of
+normalizing the data point coordinates in a box MINxMAX (*note Axis
+settings::). If CUT is `true' then the outlier points are omitted,
+otherwise they are projected to the bounding box (*note Cutting::).
+Also, the point will be omitted if it lies inside the box defined by
+CUTMIN x CUTMAX or if the value of formula `CutOff'() is nonzero for
+its coordinates. After that, transformation formulas are applied to the
+data point. Finally, the data point is plotted by one of the functions.
+
+   There is a possibility to set members MAX, MIN directly, but one
+should call `RecalcBorder()' function to setup plotting routines. A
+safer way is to set these values by calling the `Axis()' function,
+which calls `RecalcBorder()' automatically. Another way to specify the
+scaling of the axis is to set it as a minimal or maximal value of the
+data array. Functions `XRange(), YRange(), ZRange()' do it. The second
+(optional) argument is used to replace the axis range or to join with
+the existed range.
+
+   The axis origin is defined by the variable ORG and is applied to all
+consequent calls of axes or grid drawing. By default, if this point
+lies outside the bounding box then it is projected onto the one
+(variable AUTOORG controls it). If one of the values of ORG is equal to
+NAN then the corresponding value will be selected automatically.
+
+   There is 4-th axis _c_ (color axis or colorbar) in addition to the
+usual axes _x, y, z_. It sets the range of values for the surface
+coloring. Its borders are automatically set to values of Min.z, Max.z
+during the call of `Axis()' function. Also, one can directly change the
+color range by setting variables CMAX, CMAX, or calling functions
+`CAxis()' or `CRange()'. Use `Colorbar()' function for showing the
+colorbar.
+
+   The form (appearence) of tick labels is controlled by `SetTicks()'
+function (*note Axis settings::). It has 3 arguments: first one D sets
+the tick step (if positive) or tick number (if negative) or switches
+logarithmic ticks on (if zero); the second one, NS, sets the number of
+subticks; the last one is the starting point for ticks (default is axis
+origin). Function SETTUNETICKS switches on/off tick enhancing by
+factoring out acommon multiplier (for small coordinate values, like
+0.001 to 0.002, or large, like from 1000 to 2000) or common component
+(for narrow range, like from 0.999 to 1.000). Finally, you may use
+functions `SetXTT(), SetYTT(), SetZTT(), SetCTT()' for setting
+templates for tick labels (it supports TeX symbols). Also, there is a
+possibility to print arbitrary text as tick labels the by help of
+`SetTicksVal()' function.
+
+
+File: mgl_en.info,  Node: Line styles,  Next: Color scheme,  Prev: Coordinate axes,  Up: General concepts
+
+1.1.2 Line styles
+-----------------
+
+The line style is defined by the string which may contain
+specifications for color (`wkrgbcymhRGBCYMHWlenupqLENUPQ'), dashing
+style (`-|;:ji' or space), width (`0123456789') and marks (`o+xsd.^v'
+and `#' modifier). If one of the type of information is omitted then
+default values used with the previous color or one from palette (for
+*note 1D plotting::) are adopted.  The line style is defined by the
+string which may contain specifications for color
+(`wkrgbcymhRGBCYMHWlenupqLENUPQ'), dashing style (`-|;:ji' or space),
+width (`0123456789') and marks (`o+xsd.^v' and `#' modifier). If one of
+the type of information is omitted then default values used with the
+previous color or one from palette (for *note 1D plotting::) are
+adopted. By default palette contain following colors: dark gray `H',
+blue `b', green `g', red `r', cyan `c', magenta `m', yellow `y', gray
+`h', blue-green `l', sky-blue `n', orange `q', yellow-green `e',
+blue-violet `u', purple `p'.
+
+   The color types are: `k' - black, `r' - red, `R' - dark red, `g' -
+green, `G' - dark green, `b' - blue, `B' - dark blue, `c' - cyan, `C' -
+dark cyan, `m' - magenta, `M' - dark magenta, `y' - yellow, `Y' - dark
+yellow (gold), `h' - gray, `H' - dark gray, `w' - white, `W' - bright
+gray, `l' - green-blue, `L' - dark green-blue, `e' - green-yellow, `E'
+- dark green-yellow, `n' - sky-blue, `N' - dark sky-blue, `u' -
+blue-violet, `U' - dark blue-violet, `p' - purple, `P' - dark purple,
+`q' - orange, `Q' - dark orange (brown).
+
+   Dashing style has the following meaning: space - no line (usable for
+plotting only marks), `-' - solid line (################), `|' - long
+dashed line (########________), `;' - dashed line (####____####____),
+`=' - small dashed line (##__##__##__##__), `:' - dotted line
+(#___#___#___#___), `j' - dash-dotted line (#######____#____), `i' -
+small dash-dotted line (###__#__###__#__).
+
+   Marker types are: `o' - circle, `+' - cross, `x' - skew cross, `s' -
+square, `d' - rhomb (or diamond), `.' - dot (point), `^' - triangle up,
+`v' - triangle down, `<' - triangle left, `>' - triangle right, `#*' -
+Y sign, `#+' - squared cross, `#x' - squared skew cross, `#.' - circled
+dot. If string contain symbol `#' then the solid versions of markers
+are used.
+
+ [image src="../png/sample5.png" ]
+
+Styles of lines and marks.
+
+   One may specify to draw a special symbol (an arrow) at the beginning
+and at the end of line. This is done if the specification string
+contains one of the following symbols: `A' - outer arrow, `V' - inner
+arrow, `I' - transverse hatches, `K' - arrow with hatches, `T' -
+triangle, `S' - square, `D' - rhombus, `O' - circle, `_' - nothing (the
+default). The following rule applies: the first symbol specifies the
+arrow at the end of line, the second specifies the arrow at the
+beginning of the line. For example, `r-A' defines a red solid line with
+usual arrow at the end, `b|AI' defines a blue dash line with an arrow
+at the end and with hatches at the beginning, `_O' defines a line with
+the current style and with a circle at the beginning. These styles are
+applicable during the graphics plotting as well (for example, *note 1D
+plotting::).
+
+ [image src="../png/sampled.png" ]
+
+Arrow styles.
+
+
+File: mgl_en.info,  Node: Color scheme,  Next: Font styles,  Prev: Line styles,  Up: General concepts
+
+1.1.3 Color scheme
+------------------
+
+The color scheme is used for determining the color of surfaces,
+isolines, isosurfaces and so on. The color scheme is defined by the
+string, which may contain several characters that are color id (*note
+Line styles::) or characters `d#:|'. Symbol `d' denotes the
+interpolation by 3d position instead of the coloring by amplitude.
+Symbol `#' switches to mesh drawing or to a wire plot. Symbol `|'
+disables color interpolation in color scheme, which can be useful, for
+example, for sharp colors during matrix plotting. Symbol `:' finishes
+the color scheme parsing. Following it, the user may put styles for the
+text, rotation axis for curves/isocontours, and so on. Color scheme may
+contain up to 32 color values.
+
+   You may also use "lighted" colors in the color scheme specification
+(_not in line style!_). The "lighted" color contain 2 symbols: first
+one is the usual symbol for color specification, the second one is a
+digit for its brightness. The digit can be in range `1'...`9'.  Number
+`5' corresponds to a normal color, `1' is a very dark version of the
+color (practically black), and `9' is a very bright version of the
+color (practically white). For example, the color scheme can be
+`b2b7wr7r2'.
+
+ [image src="../png/colors.png" ]
+
+Colors and its ids.
+
+   For coloring by _amplitude_ (most common) the final color is a
+linear interpolation of color array. The color array is constructed
+from the string ids. The argument is the amplitude normalized between
+CMIN - CMAX (*note Axis settings::). For example, string containing 4
+characters `bcyr' corresponds to a colorbar from blue (lowest value)
+through cyan (next value) through yellow (next value) to the red
+(highest value). String `kw' corresponds to a colorbar from black
+(lowest value) to white (highest value). String `m' corresponds to a
+simple magenta color.
+
+   There are several useful combinations. String `kw' corresponds to
+the simplest gray color scheme where higher values are brighter. String
+`wk' presents the inverse gray color scheme where higher value is
+darker. Strings `kRryw', `kGgw', `kBbcw' present the well-known _hot_,
+_summer_ and _winter_ color schemes. Strings `BbwrR' and `bBkRr' allow
+to view bi-color figure on white or black background, where negative
+values are blue and positive values are red. String `BbcyrR' gives a
+color scheme similar to the well-known _jet_ color scheme.
+
+ [image src="../png/color_schemes.png" ]
+
+Most popular color schemes.
+
+   When coloring by _coordinate_, the final color is determined by the
+position of the point in 3d space and is calculated from formula
+c=x*c[1] + y*c[2] + z*c[3]. Here, c[1], c[2], c[3] are the first three
+elements of color array; x, y, z are normalized to MIN - MAX
+coordinates of the point. This type of coloring is useful for
+isosurface plot where color may show the exact position of a piece of
+surface.
+
+
+File: mgl_en.info,  Node: Font styles,  Next: Textual formulas,  Prev: Color scheme,  Up: General concepts
+
+1.1.4 Font styles
+-----------------
+
+Text style is specified by the string which may contain several
+characters of font (`ribwou') and/or alignment (`LRC') specifications.
+The string also may contain the color id characters `wkrgbcymhRGBCYMHW'
+(*note Line styles::) after the symbol `:'. For example, `biC:b' sets
+the bold italic font text aligned at the center and with blue color.
+
+   The font types are: `r' - roman font, `i' - italic style, `b' - bold
+style. By default roman roman font is used. The align types are: `L' -
+align left (default), `C' - align center, `R' - align right. Additional
+font effects are: `w' - wired, `o' - over-lined, `u' - underlined.
+
+   Also a parsing of the LaTeX-like syntax is provided. There are
+commands for the font style changing inside the string (for example,
+use \b for bold font): \a or \overline - over-lined, \b or \textbf -
+bold, \i or \textit - italic, \r or \textrm - roman (disable bold and
+italic attributes), \u or \underline - underlined, \w or \wire - wired,
+\big - bigger size, @ - smaller size. The lower and upper indexes are
+specified by `_' and `^' symbols. At this the changed font style is
+applied only on next symbol or symbols in braces {}. The text in braces
+{} are treated as single symbol that allow one to print the index of
+index. For example, compare the strings `sin (x^{2^3})' and `sin
+(x^2^3)'. You may also change text color inside string by command #? or
+by \color? where `?' is symbolic id of the color (*note Line styles::).
+For example, words `Blue' and `red' will be colored in the string
+`#b{Blue} and \colorr{red} text'. The most of functions understand the
+newline symbol `\n' and allows to print multi-line text. Finally, you
+can use arbitrary UTF codes by command `\utf0x????'. For example,
+`\utf0x3b1' will produce  \alpha symbol.
+
+   The most of commands for special TeX or AMSTeX symbols, the commands
+for font style changing (\textrm, \textbf, \textit, \textsc, \overline,
+\underline), accents (\hat, \tilde, \dot, \ddot, \acute, \check,
+\grave, \bar, \breve) and roots (\sqrt, \sqrt3, \sqrt4) are recognized.
+The full list contain approximately 2000 commands. Note that first
+space symbol after the command is ignored, but second one is printed as
+normal symbol (space). For example, the following strings produce the
+same result \tilde a: `\tilde{a}'; `\tilde a'; `\tilde{}a'.
+
+   In particular, the Greek letters are recognizable special symbols:
+\alpha - \alpha, \beta - \beta, \gamma - \gamma, \delta - \delta,
+\epsilon - \epsilon, \eta - \eta, \iota - \iota, \chi - \chi, \kappa -
+\kappa, \lambda - \lambda, \mu - \mu, \nu - \nu, o - \o, \omega -
+\omega, \phi - \phi, \pi - \pi, \psi - \psi, \rho - \rho, \sigma -
+\sigma, \theta - \theta, \tau - \tau, \upsilon - \upsilon, \xi - \xi,
+\zeta - \zeta, \varsigma - \varsigma, \varepsilon - \varepsilon,
+\vartheta - \vartheta, \varphi - \varphi, A - \Alpha, B - \Beta, \Gamma
+- \Gamma, \Delta - \Delta, E - \Epsilon, H - \Eta, I - \Iota, C - \Chi,
+K - \Kappa, \Lambda - \Lambda, M - \Mu, N - \Nu, O - \O, \Omega -
+\Omega, \Phi - \Phi, \Pi - \Pi, \Psi - \Psi, R - \Rho, \Sigma - \Sigma,
+\Theta - \Theta, T - \Tau, \Upsilon - \Upsilon, \Xi - \Xi, Z - \Zeta.
+
+   The small part of most common special TeX symbols are: \angle -
+\angle, \aleph - \aleph, \cdot - \cdot, \clubsuit - \clubsuit, \cup -
+\cup, \cap - \cap, \diamondsuit - \diamondsuit, \diamond - \diamond,
+\div - \div, \downarrow - \downarrow, \dag - \dag, \ddag - \ddag,
+\equiv - \equiv, \exists - \exists, \frown - \frown, \flat - \flat, \ge
+- \ge, \geq - \geq, \gets - \gets, \heartsuit - \heartsuit, \infty -
+\infty, \in - \in, \int - \int, \Im - \Im, \langle - \langle, \le -
+\le, \leq - \leq, \leftarrow - \leftarrow, \mp - \mp, \nabla - \nabla,
+\ne - \ne, \neq - \neq, \natural - \natural, \oint - \oint, \odot -
+\odot, \oplus - \oplus, \partial - \partial, \parallel - \parallel,
+\perp - \perp, \pm - \pm, \propto - \propto, \prod - \prod, \Re - \Re,
+\rightarrow - \rightarrow, \rangle - \rangle, \spadesuit - \spadesuit,
+\sim - \sim, \smile - \smile, \subset - \subset, \supset - \supset,
+\surd - \sqrt or \surd, \S - \S, \sharp - \sharp, \sum - \sum, \times -
+\times, \to - \to, \uparrow - \uparrow, \wp - \wp and so on.
+
+   The font size can be defined explicitly (if SIZE>0) or relative to a
+base font size as |SIZE|*FONTSIZE (if SIZE<0). The value SIZE=0
+specifies that the string will not be printed. The base font size is
+measured in internal "MathGL" units. Special functions
+`SetFontSizePT(), SetFontSizeCM(), SetFontSizeIN()' allow one to set it
+in more "common" variables for a given dpi value of the picture.
+
+
+File: mgl_en.info,  Node: Textual formulas,  Prev: Font styles,  Up: General concepts
+
+1.1.5 Textual formulas
+----------------------
+
+MathGL have the fast variant of textual formula evaluation . There are
+a lot of functions and operators available. The operators are: `+' -
+addition, `-' - subtraction, `*' - multiplication, `/' - division, `^'
+- integer power. Also there are logical "operators": `<' - true if x<y,
+`>' - true if x>y, `=' - true if x=y, `&' - true if x and y both
+nonzero, `|' - true if x or y nonzero. These logical operators have
+lowest priority and return 1 if true or 0 if false.
+
+   The basic functions are: `sqrt(x)' - square root of X, `pow(x,y)' -
+power X in Y, `ln(x)' - natural logarithm of X, `lg(x)' - decimal
+logarithm of X, `log(a,x)' - logarithm base A of X, `abs(x)' - absolute
+value of X, `sign(x)' - sign of X, `mod(x,y)' - x modulo y, `step(x)' -
+step function, `int(x)' - integer part of X, `rnd' - random number,
+`pi' - number \pi=3.1415926...
+
+   Trigonometric functions are: `sin(x)', `cos(x)', `tan(x)' (or
+`tg(x)'). Inverse trigonometric functions are: `asin(x)', `acos(x)',
+`atan(x)'. Hyperbolic functions are: `sinh(x)' (or `sh(x)'), `cosh(x)'
+(or `ch(x)'), `tanh(x)' (or `th(x)'). Inverse hyperbolic functions are:
+`asinh(x)', `acosh(x)', `atanh(x)'.
+
+   There are a set of special functions: `gamma(x)' - Gamma function
+\Gamma(x) = \int_0^\infty dt t^{x-1} \exp(-t) , `psi(x)' - digamma
+function \psi(x) = \Gamma</samp>&rsquo; (x)/ \Gamma(x) for x!=0,
+`ai(x)' - Airy function Ai(x), `bi(x)' - Airy function Bi(x), `cl(x)' -
+Clausen function, `li2(x)' (or `dilog(x)') - dilogarithm Li_2(x) = -
+\Re \int_0^x ds \log(1-s)/s, `sinc(x)' - compute sinc(x) = \sin(\pi x)
+/ (\pi x) for any value of x, `zeta(x)' - Riemann zeta function
+\zeta(s) = \sum_{k=1}^\infty k^{-s} for arbitrary s!=1, `eta(x)' - eta
+function \eta(s) = (1-2^{1-s}) \zeta(s) for arbitrary s, `lp(l,x)' -
+Legendre polynomial P_l(x), (|x|<=1, l>=0), `w0(x)', `w1(x)' -
+principal branch of the Lambert W functions. Function W(x) is defined
+to be solution of the equation W \exp(W) = x.
+
+   The exponent integrals are: `ci(x)' - Cosine integral Ci(x) =
+\int_0^x dt \cos(t)/t, `si(x)' - Sine integral Si(x) = \int_0^x dt
+\sin(t)/t, `erf(x)' - error function erf(x) = (2/\sqrt(\pi)) \int_0^x
+dt \exp(-t^2), `ei(x)' - exponential integral Ei(x) := -
+PV(\int_{-x}^\infty dt \exp(-t)/t) (where PV denotes the principal
+value of the integral), `e1(x)' - exponential integral E_1(x) := Re
+\int_1^\infty dt \exp(-xt)/t , `e2(x)' - exponential integral E_2(x) :=
+Re \int_1^\infty dt \exp(-xt)/t^2, `ei3(x)' - exponential integral
+Ei_3(x) = \int_0^x dt \exp(-t^3) for x>=0.
+
+   Bessel functions are: `j(nu,x)' - regular cylindrical Bessel
+function of fractional order NU, `y(nu,x)' - irregular cylindrical
+Bessel function of fractional order NU, `i(nu,x)' - regular modified
+Bessel function of fractional order NU, `k(nu,x)' - irregular modified
+Bessel function of fractional order NU.
+
+   Elliptic integrals are: `ee(k)' - complete elliptic integral is
+denoted by E(k) = E(\pi/2, k), `ek(k)' - complete elliptic integral is
+denoted by K(k) = F(\pi/2, k), `e(phi,k)' - elliptic integral E(\phi,k)
+= \int_0^\phi dt \sqrt((1 - k^2 \sin^2(t))), `f(phi,k)' - elliptic
+integral F(\phi,k) = \int_0^\phi dt 1/\sqrt((1 - k^2 \sin^2(t))).
+
+   Jacobi elliptic functions are: `sn(u,m)', `cn(u,m)', `dn(u,m)',
+`sc(u,m)', `sd(u,m)', `ns(u,m)', `cs(u,m)', `cd(u,m)', `nc(u,m)',
+`ds(u,m)', `dc(u,m)', `nd(u,m)'.
+
+   Note, some of these functions are unavailable if NO_GSL is defined
+during compilation of MathGL library.
+
+   There is no difference between lower or upper case in formulas. If
+argument value lie outside the range of function definition then
+function returns NaN.
+
+
+File: mgl_en.info,  Node: Graphics setup,  Next: Axis settings,  Prev: General concepts,  Up: MGL interface
+
+1.2 Graphics setup
+==================
+
+Coomands in this group influences on overall graphics appearance. So
+all of them should be placed _before_ any actual plotting commands.
+
+* Menu:
+
+* Transparency ::
+* Lighting ::
+* Fog ::
+* Default sizes ::
+* Zooming ::
+* Cutting ::
+* Other settings ::
+
+
+File: mgl_en.info,  Node: Transparency,  Next: Lighting,  Up: Graphics setup
+
+1.2.1 Transparency
+------------------
+
+There are several commands for setup transparency. The general command
+is *note alpha:: which switch on/off the transparency for overall plot.
+It influence only for graphics which created after *note alpha:: call.
+Command *note alphadef:: specify the default value of alpha-channel.
+You may switch off transparency of selected plot by command *note
+transparent::. Finally, command *note transptype:: set the kind of
+transparency. *Note Transparent surface sample::, for sample code and
+picture.
+
+ -- MGL command: alpha `[val=on]'
+     Sets the transparency on/off. It is recommended to call this
+     command before any plotting command. Default value is `off'. Use
+     `transparent off' in particular plot to disable its transparency.
+   
+ -- MGL command: alphadef `val'
+     Default value of alpha channel (transparency) for all plotting
+     commands. Initial value is 0.5.
+   
+ -- MGL command: transparent `val'
+     Temporary switches transparency on/off for the plot.
+   
+ -- MGL command: transptype `val'
+     This command set the transparency type. Normal transparency (`0')
+     - below things is less visible than upper ones. Glass-like
+     transparency (`1') - below and upper things are commutable and
+     just decrease intensity of light by RGB channel. Lamp-like
+     transparency (`2') - below and upper things are commutable and are
+     the source of some additional light. I recommend to set `alphadef
+     0.3' or less for lamp-like transparency. *Note Normal
+     transparency::, *note Glass-like transparency::, *note Lamp-like
+     transparency::.
+
+
+File: mgl_en.info,  Node: Lighting,  Next: Fog,  Prev: Transparency,  Up: Graphics setup
+
+1.2.2 Lighting
+--------------
+
+There are several commands for setup lighting. The general command is
+*note light:: which switch on/off the lighting for overall plot.
+Generally MathGL support up to 10 independent light sources. The
+position, color, brightness of each light source can be set separately.
+By default only one light source is active. It is source number `0'
+with white color, located at top of the plot.
+
+ -- MGL command: light `[val=on]'
+     Sets the using of light on/off for overall plot. It is recommended
+     to call this command before any plotting command. Default value is
+     lightning off.
+
+ -- MGL command: light `num val'
+     Switch on/off NUM-th light source separately.
+
+ -- MGL command: light `num xpos ypos zpos' ['col'='w' `br=0.5']
+     The command adds a light source with identification NUM at
+     position {XPOS, YPOS, ZPOS}. The color of light is COL (white by
+     default). The brightness of light is BR which must be in range
+     [0,1].
+
+ -- MGL command: ambient `val'
+     Sets the brightness of ambient light. The value should be in range
+     [0,1]. Initial value is 0.5.
+
+
+File: mgl_en.info,  Node: Fog,  Next: Default sizes,  Prev: Lighting,  Up: Graphics setup
+
+1.2.3 Fog
+---------
+
+ -- MGL command: fog `val [dz=0.25]'
+     Command imitate a fog in the plot. Fog start from relative
+     distance DZ from view point and its density growths exponentially
+     in depth. So that the fog influence is determined by law
+     ~1-exp(-d*z). Here _z_ is normalized to 1 depth of the plot. If
+     value VAL=`0' then the fog is absent. *Note Surface in fog
+     sample::, for sample code and picture.
+
+
+File: mgl_en.info,  Node: Default sizes,  Next: Zooming,  Prev: Fog,  Up: Graphics setup
+
+1.2.4 Default sizes
+-------------------
+
+These commands control the default (initial) values for most graphics
+parameters including sizes of markers, arrows, linewidth and so on. As
+any other settings these ones will influence only on plots created
+after the settings change.
+
+ -- MGL command: barwidth `val'
+     Sets relative width of rectangles in `bars, barh, boxplot'.
+     Default value is `0.7'.
+
+ -- MGL command: marksize `val'
+     The size of marks. Default value is `1'.
+
+ -- MGL command: arrowsize `val'
+     The size of arrows for lines and curves. Default value is `1'.
+
+ -- MGL command: linewidth `val'
+     The variable define the base width for all lines. The value <1 is
+     ignored. Increase of this variables is actual for large bitmap
+     pictures. Default value is `1'.
+
+ -- MGL command: ticklen `val' [`stt=1']
+     The relative length of axis ticks. Default value is `0.1'.
+     Parameter STT>0 set relative length of subticks which is in
+     `sqrt(1+stt)' times smaller.
+
+ -- MGL command: tickstl 'stl' ['sub'="]
+     The line style of axis ticks (STL) and subticks (SUB). If STL="
+     then default style is used (`k' or `w' depending on transparency
+     type). If SUB=" then ticks style is used (i.e. STL).
+
+
+File: mgl_en.info,  Node: Zooming,  Next: Cutting,  Prev: Default sizes,  Up: Graphics setup
+
+1.2.5 Zooming
+-------------
+
+These commands control the overall zooming of the picture or the
+sub-picture. Normally you can use these variables and commands for
+removing "white" spaces around a plot.
+
+ -- MGL command: plotfactor `val'
+     The factor of plot size. It is not recommended to set it lower
+     then 1.6. This is some analogue of command *note zoom:: but
+     applied not to overall image but for each *note inplot::. Use
+     negative value to enable automatic *note plotfactor:: selection.
+
+ -- MGL command: zoom `x1 y1 x2 y2'
+     The command changes the scale of graphics that correspond to zoom
+     in/out of the picture. After command call the current plot will be
+     cleared and further the picture will contain plotting from its
+     part [x1,x2]*[y1,y2]. Here picture coordinates X1, X2, Y1, Y2
+     changes from 0 to 1. Use `zoom 0 0 1 1' to return default view.
+
+
+File: mgl_en.info,  Node: Cutting,  Next: Other settings,  Prev: Zooming,  Up: Graphics setup
+
+1.2.6 Cutting
+-------------
+
+These commands set the condition when the points are excluded (cutted)
+from the drawing. Note, that a point with `nan' value(s) of coordinate
+or amplitude will be automatically excluded from the drawing.
+
+ -- MGL command: cut `val'
+     Determines how points outside bounding box are drawn. If it is
+     `on' then points are excluded from plot (it is default) otherwise
+     the points are projected to edges of bounding box.
+
+ -- MGL command: cut `x1 y1 z1 x2 y2 z2'
+     Lower and upper edge of the box in which never points are drawn.
+     If both edges are the same (the variables are equal) then the
+     cutting box is empty. *Note CutMinMax sample::, for sample code
+     and picture.
+
+ -- MGL command: cut 'cond'
+     Command set the cutting off condition by formula COND. This
+     condition determine will point be plotted or not. If value of
+     formula is nonzero then point is omitted, otherwise it plotted.
+     Set argument as `''' to disable cutting off condition. *Note
+     CutOff sample::, for sample code and picture.
+
+
+File: mgl_en.info,  Node: Other settings,  Prev: Cutting,  Up: Graphics setup
+
+1.2.7 Other settings
+--------------------
+
+ -- MGL command: font 'fnt' [`val=6']
+     Font style for text and labels (see text). Initial style is
+     'fnt'='rC' give Roman font with centering. Parameter `val' sets
+     the size of font for tick and axis labels. Default font size of
+     axis labels is 1.4 times large than for tick labels. For more
+     detail, *note Font styles::.
+
+ -- MGL command: rotatetext `val'
+     Set to use or not text rotation along axis. Initial value is `on'.
+
+ -- MGL command: palette 'colors'
+     Set the palette as selected colors. Default value is
+     `'Hbgrcmyhlnqeup''. The palette is used mostly in 1D plots for
+     curves which styles are not specified.
+
+ -- MGL command: meshnum `num'
+     Sets approximate number of lines in *note mesh::, *note fall::,
+     *note grid:: and also the number of hachures in *note vect::,
+     *note vectc::, *note dew:: and the number of cells in *note
+     cloud::. By default (=0) it draws all lines/hachures/cells.
+
+ -- MGL command: axialdir 'dir'
+     Set direction around which curve rotated in *note axial::, *note
+     torus::. Default value is 'z'.
+
+
+File: mgl_en.info,  Node: Axis settings,  Next: Transformation matrix,  Prev: Graphics setup,  Up: MGL interface
+
+1.3 Axis settings
+=================
+
+These large set of commands control how the axis and ticks will be
+drawn. Note that there is 3-step transformation of data coordinates are
+performed. Firstly, coordinates are projected and cutting is applied
+(*note Cutting::), after it transformation formulas are applied, and
+finally the data was normalized in bounding box.
+
+ -- MGL command: axis `x1 y1 x2 y2'
+ -- MGL command: axis `x1 y1 z1 x2 y2 z2'
+ -- MGL command: ranges `x1 x2 y1 y2 [z1=0 z2=0]'
+     Sets the ranges of coordinates changing. Also it sets the range
+     for coloring (analogous to `caxis z1 z2'). Initial ranges are [-1,
+     1].
+
+ -- MGL command: axis 'fx' 'fy' ['fz'=" 'fa'="]
+     Sets the transformation formulas for curvilinear coordinates. Each
+     string should contain mathematical expression for real coordinate
+     depending on internal coordinates `x', `y', `z' and `a' or `c' for
+     colorbar. For example, the cylindrical coordinates are introduced
+     as `axis 'x*cos(y)' 'x*sin(y)' 'z''. For removing of formulas the
+     corresponding parameter should be `'''. The using of
+     transformation formulas will slightly slowing the program, i.e.
+     `axis '' '' ''' is faster than `axis '1*x' '1*y' '1*z''. Initially
+     all formulas are absent (Cartesian coordinates are used). For more
+     details about functions and formulas, *note Textual formulas::.
+
+ -- MGL command: axis `how'
+     Sets one of the predefined transformation formulas for curvilinear
+     coordinate. Paramater HOW define the coordinates: `0' - Cartesian
+     coordinates (no transformation); `1' - Polar coordiantes
+     x_n=x*cos(y),y_n=x*sin(y), z_n=z; `2' - Spherical coordinates
+     x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y); `3' -
+     Parabolic coordinates x_n=x*y, y_n=(x*x-y*y)/2, z_n=z; `4' -
+     Paraboloidal coordinates x_n=(x*x-y*y)*cos(z)/2,
+     y_n=(x*x-y*y)*sin(z)/2, z_n=x*y; `5' - Oblate coordinates
+     x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z),
+     z_n=sinh(x)*sin(y); `6' - Prolate coordinates
+     x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z),
+     z_n=cosh(x)*cos(y); `7' - Elliptic coordinates x_n=cosh(x)*cos(y),
+     y_n=sinh(x)*sin(y), z_n=z; `8' - Toroidal coordinates
+     x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)),
+     y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y));
+     `9' - Bispherical coordinates x_n=sin(y)*cos(z)/(cosh(x)-cos(y)),
+     y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y));
+     `10' - Bipolar coordinates x_n=sinh(x)/(cosh(x)-cos(y)),
+     y_n=sin(y)/(cosh(x)-cos(y)), z_n=z.
+
+ -- MGL command: caxis `z1 z2'
+     Sets the range for surface coloring. Initial range is [-1, 1].
+
+ -- MGL command: origin `x0 y0 [z0=nan]'
+     Center of axis cross section. If one of values is `nan' then
+     MathGL library try to select optimal axis position.
+
+ -- MGL command: ternary `val'
+     The command sets to draws Ternary plot. This special plot is for 3
+     dependent coordinates (components) A, B, C so that A+B+C=1. MathGL
+     uses only 2 independent coordinates A=x and B=y since it is enough
+     to plot everything. At this third coordinate z act as another
+     parameter to produce contour lines, surfaces and so on. *Note
+     Ternary plot sample::, for sample code and picture.
+
+ -- MGL command: xrange dat [`add=off fact=0']
+ -- MGL command: yrange dat [`add=off fact=0']
+ -- MGL command: zrange dat [`add=off fact=0']
+ -- MGL command: crange dat [`add=off fact=0']
+     Sets the range for x-,y-,z- coordinate or coloring as minimal and
+     maximal values of data DAT. Parameter `add=on' shows that the new
+     range will be joined to existed one (nut will not replace it).
+     Parameter FACT add additional range increase on value
+     (MAX-MIN)*FACT.
+
+ -- MGL command: xrange `x1 x2'
+ -- MGL command: yrange `x1 x2'
+ -- MGL command: zrange `x1 x2'
+ -- MGL command: crange `x1 x2'
+     Sets the range for x-,y-,z- coordinate or coloring. See also *note
+     axis::.
+
+ -- MGL command: xtick `val [sub=0 org=nan]'
+ -- MGL command: ytick `val [sub=0 org=nan]'
+ -- MGL command: ztick `val [sub=0 org=nan]'
+ -- MGL command: ctick `val'
+     Sets step for x-, y-, z-axis ticks or colorbar ticks (if VAL>0) or
+     it's number (if VAL<0) in corresponding direction. Zero value
+     VAL=0 sets logarithmic ticks. Parameter SUB sets the number of
+     sub-ticks. Parameter ORG set the starting points for ticks. If not
+     `org=nan' then the value from *note origin:: is used.
+
+ -- MGL command: xtick 'templ'
+ -- MGL command: ytick 'templ'
+ -- MGL command: ztick 'templ'
+ -- MGL command: ctick 'templ'
+     Sets the template for x-, y-, z-axis ticks or colorbar ticks. It
+     may contain TeX symbols also. If TEMPL=`''' then default template
+     is used (in simplest case it is `%.2g') with automatic detaching
+     of common multiplier or common component.
+
+ -- MGL command: xtick `val1' 'lbl1' [`val2' 'lbl2' ...]
+ -- MGL command: ytick `val1' 'lbl1' [`val2' 'lbl2' ...]
+ -- MGL command: ztick `val1' 'lbl1' [`val2' 'lbl2' ...]
+     Sets manual positions VAL1,VAL2,... and labels LBL1,LBL2,... for
+     ticks along x-, y-, z-axis. Labels may contain TeX symbols also.
+
+ -- MGL command: adjust ['dir'='xyzc']
+     Set the ticks step, number of sub-ticks and initial ticks position
+     to be the most human readable for the axis along direction(s) DIR.
+
+
+File: mgl_en.info,  Node: Transformation matrix,  Next: Export to file,  Prev: Axis settings,  Up: MGL interface
+
+1.4 Transformation matrix
+=========================
+
+These commands control how and where further plotting will be placed.
+There is a curtain order of calling of these commands for the better
+plot view. First one should be *note subplot:: or *note inplot:: for
+specifying the place. After it a *note rotate:: and *note aspect::. And
+finally any other plotting commands may be called. Alternatevely you
+can use *note columnplot:: for position plots in the column one by
+another without gap between plot axis (bounding boxes).
+
+ -- MGL command: subplot `nx ny m [dx=0 dy=0]'
+     Puts further plotting in a M-th cell of NX*NY grid of the whole
+     frame area. This command set off any aspects or rotations. So it
+     should be used first for creating the subplot. From the
+     aesthetical point of view it is not recommended to use this
+     command with different matrices in the same frame. The position of
+     the cell can be shifted from its default position by relative size
+     DX, DY.
+
+ -- MGL command: subplot `nx ny m' 'style'
+     The same as previous but space reserved for axis/colorbar is saved
+     only if STYLE contain: `L' or `<' - at left side, `R' or `>' - at
+     right side, `A' or `^' - at top side, `U' or `_' - at bottom side.
+
+ -- MGL command: inplot `x1 x2 y1 y2 [rel=off]'
+     Puts further plotting in some region of the whole frame surface.
+     This command allows one to create a plot in arbitrary place of the
+     screen. The position is defined by rectangular coordinates [X1,
+     X2]*[Y1, Y2]. The coordinates X1, X2, Y1, Y2 are normalized to
+     interval [0, 1]. If parameter REL=`on' then the relative position
+     to current *note subplot:: is used. This command set off any
+     aspects or rotations. So it should be used first for creating
+     subplot.
+
+ -- MGL command: columnplot `num ind [d=0]'
+     Puts further plotting in IND-th cell of column with NUM cells. The
+     position is relative to previous *note subplot:: call (or *note
+     inplot:: with `rel=off'). Parameter D set extra gap between cells.
+
+ -- MGL command: stickplot `num ind tet phi'
+     Puts further plotting in IND-th cell of stick with NUM cells. At
+     this, stick is rotated on angles TET, PHI. The position is
+     relative to previous *note subplot:: call (or *note inplot:: with
+     `rel=off').
+
+ -- MGL command: rotate `tetz tetx [tety=0]'
+     Rotates a further plotting relative to each axis (x, z, y)
+     consecutively on angles TETX, TETZ, TETY.
+
+ -- MGL command: rotate `tet x y z'
+     Rotates a further plotting around vector {x,y,z} on angle TET.
+
+ -- MGL command: aspect `ax ay [az=1]'
+     Defines aspect ratio for the plot. The viewable axes will be
+     related one to another as the ratio AX:AY:AZ. For the best effect
+     it should be used after *note rotate:: command.
+
+ -- MGL command: perspective `val'
+     Add (switch on) the perspective to plot. The parameter val ~
+     1/z_{eff} \in [0,1). By default (`val=0') the perspective is off.
+
+
+File: mgl_en.info,  Node: Export to file,  Next: Primitives drawing,  Prev: Transformation matrix,  Up: MGL interface
+
+1.5 Export to file
+==================
+
+ -- MGL command: write 'fname' [`solid=off']
+     Exports current picture/frame to file 'fname' (file type is
+     determined by extension). Solid (usually white) background will be
+     used if `solid=on'. If 'fname'=" then the file `frameNNNN.jpg' is
+     used, where `NNNN' is current frame id.
+
+ -- MGL command: setsize `w h'
+     Sets size of picture in pixels. This function call *must be*
+     placed before any plotting command because it completely remove
+     picture content. In some program the call of this function is
+     forbidden.
+
+
+File: mgl_en.info,  Node: Primitives drawing,  Next: Text printing,  Prev: Export to file,  Up: MGL interface
+
+1.6 Primitives drawing
+======================
+
+These commands draw some simple objects like line, point, sphere, drop,
+cone and so on.
+
+ -- MGL command: clf
+     Clear the picture by removes all drawing from it. Does not change
+     transformation matrix.
+
+ -- MGL command: ball `x y' ['col'='r']
+ -- MGL command: ball `x y z' ['col'='r']
+     Draws a point (ball) at position {X, Y, Z} with color defined by
+     string COL.
+
+ -- MGL command: line `x1 y1 x2 y2' ['stl'="]
+ -- MGL command: line `x1 y1 z1 x2 y2 z2' ['stl'="]
+     Draws a geodesic line (straight line in Cartesian coordinates)
+     from point {X1,Y1,Z1} to {X2,Y2,Z2} using line style STL.
+
+ -- MGL command: curve `x1 y1 dx1 dy1 x2 y2 dx2 dy2' ['stl'="]
+ -- MGL command: curve `x1 y1 z1 dx1 dy1 dz1 x2 y2 z2 dx2 dy2 dz2'
+          ['stl'="]
+     Draws Bezier-like curve from point {X1,Y1,Z1} to {X2,Y2,Z2} using
+     line style STL. At this tangent is co-directed with {DX1,DY1,DZ1},
+     {DX2,DY2,DZ2} and proportional to its amplitude.
+
+ -- MGL command: facex `x0 y0 z0 wy wz' ['stl'=" `d1=0 d2=0']
+ -- MGL command: facey `x0 y0 z0 wx wz' ['stl'=" `d1=0 d2=0']
+ -- MGL command: facez `x0 y0 z0 wx wy' ['stl'=" `d1=0 d2=0']
+     Draws the solid rectangle (face) perpendicular to [x,y,z]-axis
+     correspondingly at position {X0, Y0, Z0} with color STL and with
+     widths WX, WY, WZ along corresponding directions. At this colors
+     can be the same for all vertexes or different if all 4 colors are
+     specified for each vertex. Parameters D1!=0, D2!=0 set additional
+     shift of the last vertex (i.e. to draw quadrangle).
+
+ -- MGL command: sphere `x0 y0 r' ['col'='r']
+ -- MGL command: sphere `x0 y0 z0 r' ['col'='r']
+     Draw the sphere with radius R and center at point {X0, Y0, Z0} and
+     color STL.
+
+ -- MGL command: drop `x0 y0 dx dy r' ['col'='b' `sh=1 asp=1']
+ -- MGL command: drop `x0 y0 z0 dx dy dz r' ['col'='b' `sh=1 asp=1']
+     Draw the drop with radius R at point {X0,Y0,Z0} elongated in
+     direction {DX,DY,DZ} and with color COL. Parameter SH set the
+     degree of drop oblongness: `0' is sphere, `1' is maximally
+     oblongness drop. Parameter ASP set relative width of the drop
+     (this is analogue of "ellipticity" for the sphere). *Note Drops
+     sample::, for sample code and picture.
+
+ -- MGL command: cone `x1 y1 z1 x2 y2 z2 r1' [`r2=-1' 'stl'="
+          `edge=off']
+     Draw tube (or truncated cone if EDGE=`off') between points
+     {X1,Y1,Z1}, {X2,Y2,Z2} with radiuses at the edges R1, R2. If R2<0
+     then it is supposed that R2=R1. The cone color is defined by
+     string STL.
+
+ -- MGL command: rect `x1 y1 x2 y2' ['st'="]
+ -- MGL command: rect `x1 y1 z1 x2 y2 z2' ['st'="]
+     Draw rectangle from point {X1,Y1,Z1} to point {X2,Y2,Z2} using
+     colors STL. If STL have 4 or more colors then it defines colors
+     for each rectangle vertex (useful for making gradients, like
+     `wwrr') else first color is used for whole rectangle.
+
+
+File: mgl_en.info,  Node: Text printing,  Next: Axis and Colorbar,  Prev: Primitives drawing,  Up: MGL interface
+
+1.7 Text printing
+=================
+
+These commands draw the text. There are commands for drawing text in
+arbitrary place, in arbitrary direction and along arbitrary curve. It
+is possible to use arbitrary font-faces and parse many TeX commands.
+The Unicode text is supported. So sometimes you need to specify locale.
+The `size' argument control the size of text: if positive it give the
+value, if negative it give the value relative to defined by `font'
+command. *Note Font styles::.
+
+ -- MGL command: text `x y' 'text' ['fnt'=" `size=-1.4']
+ -- MGL command: text `x y z' 'text' ['fnt'=" `size=-1.4']
+     Draws unrotated text string TEXT at position {X,Y,Z} with
+     specified style FNT and SIZE. By default parameters from `font'
+     command are used.
+
+ -- MGL command: text `x y dx dy' 'text' [`size=-1.4']
+ -- MGL command: text `x y z dx dy dz' 'text' [`size=-1.4']
+     The command plots the string TEXT at position {X,Y,Z} along
+     direction {DX,DY,DZ} with specified style FNT and SIZE. By default
+     parameters from `font' command are used.
+
+ -- MGL command: text ydat 'text' ['fnt'=" `size=-1 zval=nan']
+ -- MGL command: text xdat ydat 'text' ['fnt'=" `size=-1 zval=nan']
+ -- MGL command: text xdat ydat zdat 'text' ['fnt'=" `size=-1']
+     The command draws TEXT along the curve between points {XDAT[i],
+     YDAT[i], ZDAT[i]} by font style FNT and with size SIZE. The string
+     FNT may contain symbols `t' for printing the text under the curve
+     (default), or `T' for printing the text above the curve. The sizes
+     of 1st dimension must be equal for all arrays
+     XDAT.NX=YDAT.NX=ZDAT.NX. If array XDAT is not specified then its
+     an automatic array is used with values equidistantly distributed
+     along x. If array ZDAT is not specified then Z[i] = ZVAL is used.
+     *Note Text sample::, for sample code and picture.
+
+ -- MGL command: title 'text' ['fnt'=" `size=-2']
+     Print string TEXT as title of the picture (at the top of the
+     picture). Can be used at any place (even inside *note subplot::).
+
+ -- MGL command: fgets `x y' 'fname' [`n=0' 'fnt'=" `size=-1.4']
+ -- MGL command: fgets `x y z' 'fname' [`n=0' 'fnt'=" `size=-1.4']
+     Draws unrotated N-th line of file FNAME at position {X,Y,Z} with
+     specified SIZE. By default parameters from *note font:: command
+     are used.
+
+
+File: mgl_en.info,  Node: Axis and Colorbar,  Next: Legend,  Prev: Text printing,  Up: MGL interface
+
+1.8 Axis and Colorbar
+=====================
+
+These commands draw the "things for measuring", like axis with ticks,
+colorbar with ticks, grid along axis, bounding box and labels for axis.
+For more information *note Axis settings::.
+
+ -- MGL command: axis ['dir'='xyz' `adjust=off']
+     Draws axes with ticks (*note Axis settings::) in directions
+     determined by string parameter DIR.If string contain the symbol
+     `_' then tick labels are not printed. Font for ticks labels is
+     determined by command *note font::. Ticks will be automatically
+     adjusted if ADJUST=`on' (by call of `adjust 'dir'').
+
+ -- MGL command: colorbar ['sch'=" `pos=0']
+     Draws colorbar with color scheme SCH (current scheme if `sch=''')
+     at edge of plot. Parameter POS specifies the position of colorbar:
+     `0' - at right (default), `1' - at left, `2' - at top, `3' - at
+     bottom. If string SCH contains `<>^_' then the parameter POS is
+     defined as: `pos=0' for `>' (right), `pos=1' for `<' (left),
+     `pos=2' for `^' (top), `pos=3' for `_' (bottom). If string have
+     `A' then absolute (relative to picture) coordinates is used. *Note
+     Dens sample::, for sample code and picture.
+
+ -- MGL command: colorbar vdat ['sch'=" `pos=0']
+     The same as previous but with sharp colors SCH (current palette if
+     `sch=""') for values V. *Note ContD sample::, for sample code and
+     picture.
+
+ -- MGL command: colorbar 'sch' `pos x y w h'
+     The same as first one but at arbitrary position of subplot {X, Y}
+     (supposed to be in range [0,1]). Parameters W, H set the relative
+     width and height of the colorbar.
+
+ -- MGL command: grid ['dir'='xyz' 'pen'='B']
+     Draws grid lines perpendicular to direction determined by string
+     parameter DIR. The step of grid lines is the same as tick step for
+     an `axis'. The style of lines is determined by PEN parameter.
+
+ -- MGL command: box ['stl'='k' `ticks=on']
+     Draws bounding box outside the plotting volume with line style
+     'stl'. If `ticks=on' then ticks are drawn with current axis
+     setting.
+
+ -- MGL command: xlabel 'text' [`pos=0 size=-1.4 shift=0']
+ -- MGL command: ylabel 'text' [`pos=0 size=-1.4 shift=0']
+ -- MGL command: zlabel 'text' [`pos=0 size=-1.4 shift=0']
+ -- MGL command: tlabel 'text' [`pos=0 size=-1.4 shift=0']
+     Prints the label TEXT for x-,y-,z-,t-axis (here `t' is "ternary"
+     axis t=1-x-y). The position of label is determined by POS
+     parameter. If POS=0 then label is printed at the center of axis.
+     If POS>0 then label is printed at the maximum of axis (default).
+     If POS<0 then label is printed at the minimum of axis. The font
+     size is 1.4 times larger than the one for ticks `font'. Parameter
+     `shift' specify additional shifting of the label. *Note Text
+     printing::.
+
+
+File: mgl_en.info,  Node: Legend,  Next: 1D plotting,  Prev: Axis and Colorbar,  Up: MGL interface
+
+1.9 Legend
+==========
+
+These commands draw legend to the graph (useful for *note 1D
+plotting::). Legend entry is a pair of strings: one for style of the
+line, another one with description text (with included LaTeX parsing).
+The array of string are accumulated first to the internal arrays (by
+command *note addlegend::) and are plotted later. The position of the
+legend can be selected automatic or manually. Parameters FNT and SIZE
+specify the font style and size. Parameter LLEN set the relative width
+of the line sample and the text indent (default value is 0.1). If line
+style string for entry is empty then the corresponding text is printed
+without indent. If string contains `A' then legend coordinates set
+position in the picture. *Note Legend sample::, for sample code and
+picture.
+
+ -- MGL command: legend [`pos=3' 'fnt'='rL' `size=-1 llen=0.1']
+     Draws legend of accumulated legend entries by font FNT with
+     specified SIZE. Parameter POS sets the position of the legend: `0'
+     is bottom left corner, `1' is bottom right corner, `2' is top left
+     corner, `3' is top right corner (is default).
+
+ -- MGL command: legend `x y' ['fnt'='rL' `size=-1 llen=0.1']
+     Draws legend of accumulated legend entries by font FNT with SIZE.
+     Position of legend in the current subplot is determined by
+     parameter X, Y which supposed to be normalized to interval [0,1].
+
+ -- MGL command: addlegend 'text' 'stl'
+     Adds string TEXT to internal legend accumulator. The style of
+     described line and mark is specified in string STL (*note Line
+     styles::). Maximal number of entries is 100.
+
+ -- MGL command: clearlegend
+     Clears saved legend strings.
+
+ -- MGL command: legendbox `val'
+     Switches on/off the drawing of a box near legend. By default, the
+     box is drawn.
+
+ -- MGL command: legendmarks `val'
+     Set the number of marks in the legend. By default 1 mark is used.
+
+
+File: mgl_en.info,  Node: 1D plotting,  Next: 2D plotting,  Prev: Legend,  Up: MGL interface
+
+1.10 1D plotting
+================
+
+These commands perform plotting of 1D data. 1D means that data depended
+from only 1 parameter like parametric curve {x(i),y(i),z(i)}, i=1...n.
+There are 5 generally different types of data representations: simple
+line plot (*note plot::), line plot with filling under it (*note
+area::), stairs plot (*note step::), bar plot (*note bars::, *note
+barh::) and vertical lines (*note stem::). Each type of plotting has
+similar interface. Most of plotting type has similar interface. There
+are 3D version and two 2D versions. One of last requires single array.
+The parameters of line and marks are specified by the string argument.
+If the string parameter is NULL then solid line with color from palette
+is used (*note Line styles::). Also there are some special 1d plots
+having slightly different interface: surface of curve rotation (*note
+torus::), chart (*note chart::) and error boxes (*note error::), marks
+with variable size (*note mark::), tubes (*note tube::) and so on.
+*Note 1D plot sample::, for sample code and picture.
+
+   The plots are drawn for each row if one of the data is the matrix.
+By any case the sizes of 1st dimension *must be equal* for all arrays
+XDAT.NX=YDAT.NX=ZDAT.NX. If array XDAT is not specified then its an
+automatic array is used with values equidistantly distributed along x.
+If array ZDAT is not specified then ZDAT[i] = ZVAL is used (the default
+is at the bottom of the bounding box). String STL specifies the color
+and style of line and marks (*note Line styles::). By default
+(`stl=''') solid line with color from palette is used (*note Line
+styles::).
+
+ -- MGL command: plot ydat ['stl'=" `zval=nan']
+ -- MGL command: plot xdat ydat ['stl'=" `zval=nan']
+ -- MGL command: plot xdat ydat zdat ['stl'="]
+     Draws continuous lines between points {XDAT[i], YDAT[i], ZDAT[i]}.
+     See also *note area::, *note step::, *note stem::, *note tube::,
+     *note mark::, *note error::, *note belt::, *note tens::. *Note
+     Plot sample::, for sample code and picture.
+
+ -- MGL command: radar adat ['stl'=" `r=-1']
+     Draws radar chart which is continuous lines between points located
+     on an radial lines (like plot in Polar coordinates). The plots are
+     drawn for each row if one of the data is the matrix. Parameter R
+     set the additional shift of data (i.e. the data ADAT+R is used
+     instead of ADAT). If `r<0' then `r=max(0, -min(adat)'. String PEN
+     specifies the color and style of line and marks (*note Line
+     styles::). By default (`stl=""') solid line with color from
+     palette is used (*note Line styles::). If PEN containt `#' symbol
+     then "grid" (radial lines and circle for R) is drawn See also
+     *note plot::. *Note Radar sample::, for sample code and picture.
+
+ -- MGL command: tens ydat cdat ['stl'=" `zval=nan']
+ -- MGL command: tens xdat ydat cdat ['stl'=" `zval=nan']
+ -- MGL command: tens xdat ydat zdat cdat ['stl'="]
+     Draws continuous lines between points {XDAT[i], YDAT[i], ZDAT[i]}
+     with color defined by CDAT[i] (look like tension plot). See also
+     *note plot::, *note mesh::, *note fall::. *Note Tens sample::, for
+     sample code and picture.
+
+ -- MGL command: area ydat ['stl'=" `zval=nan']
+ -- MGL command: area xdat ydat ['stl'=" `zval=nan']
+ -- MGL command: area xdat ydat zdat ['stl'="]
+     Draws continuous lines between points {XDAT[i], YDAT[i], ZDAT[i]}
+     and fills it down to axis (to axis plane in 3D). You can use
+     gradient filling if number of specified colors is equal to
+     2*number of curves. If string contain symbol `a' then lines are
+     drawn one above another (like summation). See also *note plot::,
+     *note bars::, *note stem::, *note region::. *Note Area sample::,
+     for sample code and picture.
+
+ -- MGL command: region fdat gdat ['stl'=" `inside=off']
+ -- MGL command: region xdat fdat gdat ['stl'=" `inside=off']
+     Fills area between curves {XDAT[i], FDAT[i]} and {XDAT[i],
+     GDAT[i]}. Parameter  `inside=off' set to fill are with y1<y<y2
+     else the area with y2<y<y1 will be also filled. You can use
+     gradient filling if number of specified colors is equal to
+     2*number of curves. See also *note area::, *note bars::, *note
+     stem::. *Note Region sample::, for sample code and picture.
+
+ -- MGL command: stem ydat ['stl'=" `zval=nan']
+ -- MGL command: stem xdat ydat ['stl'=" `zval=nan']
+ -- MGL command: stem xdat ydat zdat ['stl'="]
+     Draws vertical lines from points {XDAT[i], YDAT[i], ZDAT[i]} to
+     axis (to axis plane in 3D). See also *note area::, *note bars::,
+     *note plot::, *note mark::. *Note Stem sample::, for sample code
+     and picture.
+
+ -- MGL command: bars ydat ['stl'=" `zval=nan']
+ -- MGL command: bars xdat ydat ['stl'=" `zval=nan']
+ -- MGL command: bars xdat ydat zdat ['stl'="]
+     Draws vertical bars from points {XDAT[i], YDAT[i], ZDAT[i]} to
+     axis (to axis plane in 3D). If style contain symbol `a' then lines
+     are drawn one above another. If string contain symbol `f' then
+     waterfall chart is drawn for determining the cumulative effect of
+     sequentially introduced positive or negative values. You can
+     different colors for positive and negative values if number of
+     specified colors is equal to 2*number of curves. See also *note
+     barh::, *note area::, *note stem::, *note chart::. *Note Bars
+     sample::, for sample code and picture.
+
+ -- MGL command: barh vdat ['stl'=" `zval=nan']
+ -- MGL command: barh ydat vdat ['stl'=" `zval=nan']
+     Draws horizontal bars from points {XDAT[i], YDAT[i], ZDAT[i]} to
+     y-axis. If array YDAT is not specified then its an automatic array
+     is used with values equidistantly distributed along y. Marks at
+     data points are not drawn. If style contain symbol `a' then lines
+     are drawn one above another. If string contain symbol `f' then
+     waterfall chart is drawn for determining the cumulative effect of
+     sequentially introduced positive or negative values. You can
+     different colors for positive and negative values if number of
+     specified colors is equal to 2*number of curves.  See also *note
+     bars::. *Note Barh sample::, for sample code and picture.
+
+ -- MGL command: chart adat ['col'="]
+     The command draws colored stripes (boxes) for data in array ADAT.
+     The number of stripes is equal to the number of rows in ADAT
+     (equal to A.NY). The color of each next stripe is cyclically
+     changed from colors specified in string COL or in palette. Spaces
+     in colors denote transparent "color", i.e. if COL contain space(s)
+     then corresponding stripe(s) are not drawn. The stripe width is
+     proportional to value of element in A. Chart is plotted only for
+     data with non-negative elements. If string COL have symbol `#'
+     then black border lines are drawn. The most nice form the chart
+     have in 3d (after rotation of coordinates) or in cylindrical
+     coordinates (becomes so called Pie chart). *Note Chart sample::,
+     for sample code and picture.
+
+ -- MGL command: step ydat ['stl'=" `zval=nan']
+ -- MGL command: step xdat ydat ['stl'=" `zval=nan']
+ -- MGL command: step xdat ydat zdat ['stl'="]
+     Draws continuous stairs for points {XDAT[i], YDAT[i], ZDAT[i]}.
+     See also *note plot::, *note stem::, *note tile::, *note boxs::.
+     *Note Step sample::, for sample code and picture.
+
+ -- MGL command: torus zdat ['stl'="]
+ -- MGL command: torus rdat zdat ['stl'="]
+     Draws surface which is result of curve {RDAT[i], ZDAT[i], ZDAT[i]}
+     rotation around *note axialdir:: axis. If array RDAT is not
+     specified then its an automatic array is used with values
+     equidistantly distributed along x. See also *note plot::, *note
+     axial::. *Note Torus sample::, for sample code and picture.
+
+ -- MGL command: tube ydat rdat ['stl'=" `zval=nan']
+ -- MGL command: tube ydat `rval' ['stl'=" `zval=nan']
+ -- MGL command: tube xdat ydat rdat ['stl'=" `zval=nan']
+ -- MGL command: tube xdat ydat `rval' ['stl'=" `zval=nan']
+ -- MGL command: tube xdat ydat zdat rdat ['stl'="]
+ -- MGL command: tube xdat ydat zdat `rval' ['stl'="]
+     Draws tube with variable radius RDAT[i] (or RVAL) at points
+     {XDAT[i], YDAT[i], ZDAT[i]}. See also *note plot::. *Note Tube
+     sample::, for sample code and picture.
+
+ -- MGL command: mark ydat rdat ['stl'=" `zval=nan']
+ -- MGL command: mark xdat ydat rdat ['stl'=" `zval=nan']
+ -- MGL command: mark xdat ydat zdat rdat ['stl'="]
+     Draws  marks with size RDAT[i]*`marksize' at points {XDAT[i],
+     YDAT[i], ZDAT[i]}. See also *note plot::, *note textmark::, *note
+     stem::, *note error::. *Note Mark sample::, for sample code and
+     picture.
+
+ -- MGL command: textmark ydat 'txt' ['stl'=" `zval=nan']
+ -- MGL command: textmark ydat rdat 'txt' ['stl'=" `zval=nan']
+ -- MGL command: textmark xdat ydat rdat 'txt' ['stl'=" `zval=nan']
+ -- MGL command: textmark xdat ydat zdat rdat 'txt' ['stl'="]
+     Draws string TXT as marks with size RDAT[i]*`marksize' at points
+     {XDAT[i], YDAT[i], ZDAT[i]}. If array RDAT is not specified then
+     RDAT[i] = 1. See also *note plot::, *note mark::, *note stem::.
+     *Note Error sample::, for sample code and picture.
+
+ -- MGL command: error ydat yerr ['stl'=" `zval=nan']
+ -- MGL command: error xdat ydat yerr ['stl'=" `zval=nan']
+ -- MGL command: error xdat ydat xerr yerr ['stl'=" `zval=nan']
+     Draws error boxes {XERR[i], YERR[i]} at points {XDAT[i], YDAT[i],
+     ZVAL}. See also *note plot::. *Note TextMark sample::, for sample
+     code and picture.
+
+ -- MGL command: boxplot adat ['stl'=" `zval=nan']
+ -- MGL command: boxplot xdat adat ['stl'=" `zval=nan']
+     Draws boxplot (also known as a box-and-whisker diagram) at points
+     XDAT in plane z=`zval' (by default is at the bottom of the
+     bounding box). This is five-number summaries of data <em>adat</em>
+     (minimum, lower quartile (Q1), median (Q2), upper quartile (Q3)
+     and maximum) along second (j-th) direction. See also *note plot::,
+     *note error::, *note bars::. *Note BoxPlot sample::, for sample
+     code and picture.
+
+
+File: mgl_en.info,  Node: 2D plotting,  Next: 3D plotting,  Prev: 1D plotting,  Up: MGL interface
+
+1.11 2D plotting
+================
+
+These commands perform plotting of 2D data. 2D means that data depend
+from 2 independent parameters like matrix f(x_i,y_j), i=1...n, j=1...m.
+There are 6 generally different types of data representations: simple
+mesh lines plot (*note mesh::), surface plot (*note surf::), surface
+plot by boxes (*note boxs::), surface plot by tiles (*note tile::),
+waterfall-like plot (*note fall::), belt plot (*note belt::), density
+plot (*note dens::), contour lines plot (*note cont::), solid contours
+plot (*note contf::) and its rotational figure (*note axial::).
+Commands *note cont::, *note contf:: and *note axial:: have variants
+for automatic and manual selection of level values for contours. Also
+there are commands for plotting data grid lines according to the data
+format (*note grid::) for enhancing density or contour plots. Each type
+of plotting has similar interface. There are 2 kind of versions which
+handle the arrays of data and coordinates or only single data array.
+*Note 2D plot sample::, for sample code and picture.
+
+   String parameter SCH sets the color scheme (*note Color scheme::).
+Previous color scheme is used by default. The minor dimensions of
+arrays XDAT, YDAT, ZDAT should be equal `xdat.nx=zdat.nx &&
+ydat.nx=zdat.ny' or `xdat.nx=ydat.nx=zdat.nx &&
+xdat.ny=ydat.ny=zdat.ny'. Arrays XDAT and YDAT can be vectors (not
+matrices as ZDAT). If array XDAT, YDAT is not specified then its an
+automatic arrays are used with values equidistantly distributed along
+x, y. Graphics are plotted for each z-slice of the data.
+
+ -- MGL command: surf zdat ['sch'="]
+ -- MGL command: surf xdat ydat zdat ['sch'="]
+     Draws surface specified parametrically {XDAT[i,j], YDAT[i,j],
+     ZDAT[i,j]}. See also *note mesh::, *note dens::, *note belt::,
+     *note tile::, *note boxs::, *note surfc::, *note surfa::. *Note
+     Surf sample::, for sample code and picture.
+
+ -- MGL command: mesh zdat ['sch'="]
+ -- MGL command: mesh xdat ydat zdat ['sch'="]
+     Draws mesh lines for surface specified parametrically {XDAT[i,j],
+     YDAT[i,j], ZDAT[i,j]}. See also *note surf::, *note fall::, *note
+     meshnum::, *note cont::, *note tens::. *Note Mesh sample::, for
+     sample code and picture.
+
+ -- MGL command: fall zdat ['sch'="]
+ -- MGL command: fall xdat ydat zdat ['sch'="]
+     Draws fall lines for surface specified parametrically {XDAT[i,j],
+     YDAT[i,j], ZDAT[i,j]}. If SCH contain `x' then lines are drawn
+     along x-direction else (by default) lines are drawn along
+     y-direction. See also *note belt::, *note mesh::, *note tens::,
+     *note meshnum::. *Note Fall sample::, for sample code and picture.
+
+ -- MGL command: belt zdat ['sch'="]
+ -- MGL command: belt xdat ydat zdat ['sch'="]
+     Draws belts for surface specified parametrically {XDAT[i,j],
+     YDAT[i,j], ZDAT[i,j]}. If SCH contain `x' then belts are drawn
+     along x-direction else (by default) lines are drawn along
+     y-direction. See also *note fall::, *note surf::, *note plot::,
+     *note meshnum::. *Note Belt sample::, for sample code and picture.
+
+ -- MGL command: boxs zdat ['sch'="]
+ -- MGL command: boxs xdat ydat zdat ['sch'="]
+     Draws vertical boxes for surface specified parametrically
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. See also *note surf::, *note
+     dens::, *note tile::, *note step::. *Note Boxs sample::, for
+     sample code and picture.
+
+ -- MGL command: tile zdat ['sch'="]
+ -- MGL command: tile xdat ydat zdat ['sch'="]
+     Draws horizontal tiles for surface specified parametrically
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. Such plot can be used as 3d
+     generalization of *note step::. See also *note surf::, *note
+     boxs::, *note step::, *note tiles::. *Note Tile sample::, for
+     sample code and picture.
+
+ -- MGL command: dens zdat ['sch'=" `zval=nan']
+ -- MGL command: dens xdat ydat zdat ['sch'=" `zval=nan']
+     Draws density plot for surface specified parametrically
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} at Z = ZVAL. See also *note
+     surf::, *note cont::, *note contf::, *note boxs::, *note tile::,
+     `dens[xyz]'. *Note Dens sample::, for sample code and picture.
+
+ -- MGL command: cont vdat zdat ['sch'=" `zval=nan']
+ -- MGL command: cont vdat xdat ydat zdat ['sch'=" `zval=nan']
+     Draws contour lines for surface specified parametrically
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} at Z = ZVAL (or for Z=VDAT[k] if
+     `zval=nan'). Contours are plotted for ZDAT[i,j]=VDAT[k] for all k.
+     If string STL contain 't' (or 'T') symbol then contour labels will
+     be drawn below (or above) the contours. See also *note dens::,
+     *note contf::, *note contd::, *note axial::, `cont[xyz]'. *Note
+     Cont sample::, for sample code and picture.
+
+ -- MGL command: cont zdat ['sch'=" `num=7 zval=nan']
+ -- MGL command: cont xdat ydat zdat ['sch'=" `num=7 zval=nan']
+     The same as previous one with vector VDAT of NUM-th elements
+     equidistantly distributed in color range (see, `caxis').
+
+ -- MGL command: contf vdat zdat ['sch'=" `zval=nan']
+ -- MGL command: contf vdat xdat ydat zdat ['sch'=" `zval=nan']
+     Draws solid (or filled) contours for surface specified
+     parametrically {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} at Z = ZVAL (or
+     for Z=VDAT[k] if `zval=nan'). Contours are plotted for
+     ZDAT[i,j]=VDAT[k] for all k (must be `vdat.nx>2'). See also *note
+     dens::, *note cont::, *note contd::, `contf[xyz]'. *Note ContF
+     sample::, for sample code and picture.
+
+ -- MGL command: contf zdat ['sch'=" `num=7 zval=nan']
+ -- MGL command: contf xdat ydat zdat ['sch'=" `num=7 zval=nan']
+     The same as previous one with vector VDAT of NUM-th elements
+     equidistantly distributed in color range (see, `caxis').
+
+ -- MGL command: contd vdat zdat ['sch'=" `zval=nan']
+ -- MGL command: contd vdat xdat ydat zdat ['sch'=" `zval=nan']
+     Draws solid (or filled) contours for surface specified
+     parametrically {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} at Z = ZVAL (or
+     for Z=VDAT[k] if `zval=nan') with manual colors. Contours are
+     plotted for ZDAT[i,j]=VDAT[k] for all k (must be `vdat.nx>2'). The
+     color of k-th contour is `sch[k%strlen(sch)]'. See also *note
+     dens::, *note cont::, *note contf::. *Note ContD sample::, for
+     sample code and picture.
+
+ -- MGL command: contd zdat ['sch'=" `num=7 zval=nan']
+ -- MGL command: contd xdat ydat zdat ['sch'=" `num=7 zval=nan']
+     The same as previous one with vector VDAT of NUM-th elements
+     equidistantly distributed in color range (see, `caxis').
+
+ -- MGL command: axial vdat zdat ['sch'="]
+ -- MGL command: axial vdat xdat ydat zdat ['sch'="]
+     Draws surface which is result of contour plot rotation surface
+     specified parametrically {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}.
+     Contours are plotted for ZDAT[i,j]=VDAT[k] for all k. If string
+     SCH have symbol `#' then wire plot is produced. If string SCH
+     contain symbols `x', `y' or `z' then rotation axis `axialdir' will
+     be set to specified direction. If string SCH have symbol `#' then
+     wire plot is produced. See also *note cont::, *note contf::, *note
+     torus::, *note surf3::. *Note Axial sample::, for sample code and
+     picture.
+
+ -- MGL command: axial zdat ['sch'=" `num=3']
+ -- MGL command: axial xdat ydat zdat ['sch'=" `num=3']
+     The same as previous one with vector VDAT of NUM-th elements
+     equidistantly distributed in color range (see, `caxis').
+
+ -- MGL command: grad pdat ['sch'=" `num=5 zval=nan']
+ -- MGL command: grad xdat ydat pdat ['sch'=" `num=5 zval=nan']
+ -- MGL command: grad xdat ydat zdat pdat ['sch'=" `num=5']
+     Draws gradient lines for scalar field PDAT specified
+     parametrically {XDAT[i,j], YDAT[i,j]} or {XDAT[i,j,k],
+     YDAT[i,j,k], ZDAT[i,j,k]}. String SCH sets the color scheme.
+     Previous color scheme is used by default. Number of lines is
+     proportional to NUM. If NUM<0 then lines start from borders only.
+     See also *note dens::, *note cont::, *note dens3::, *note cont3::,
+     *note flow::. *Note Grad sample::, for sample code and picture.
+
+ -- MGL command: grid2 zdat ['sch'=" `zval=nan']
+ -- MGL command: grid2 xdat ydat zdat ['sch'=" `zval=nan']
+     Draws grid lines for density plot of surface specified
+     parametrically {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} at Z = ZVAL. See
+     also *note dens::, *note cont::, *note contf::.
+
+
+File: mgl_en.info,  Node: 3D plotting,  Next: Dual plotting,  Prev: 2D plotting,  Up: MGL interface
+
+1.12 3D plotting
+================
+
+These commands perform plotting of 3D data. 3D means that data depend
+from 3 independent parameters like matrix f(x_i,y_j,z_k), i=1...n,
+j=1...m, k=1...l. There are 4 generally different types of data
+representations: isosurface or surface of constant value (*note
+surf3::), density plot at slices (Dens3), contour lines plot at slices
+(*note cont3::), solid contours plot at slices (*note contf3::) and
+cloud-like plot (*note cloud::). Commands *note surf3::, *note cont3::
+and *note contf3:: have variants for automatic and manual selection of
+level values for surfaces/contours. Also there are commands for
+plotting data grid lines according to the data format (*note grid3::)
+for enhancing density or contour plots. Each type of plotting has
+similar interface. There are 2 kind of versions which handle the arrays
+of data and coordinates or only single data array. *Note 3D plot
+sample::, for sample code and picture.
+
+   String paramter SCH sets the color scheme (*note Color scheme::).
+Previous color scheme is used by default. Arrays X, Y, Z can be vectors
+(not 3d arrays as A). If array XDAT, YDAT, ZDAT is not specified then
+its an automatic arrays are used with values equidistantly distributed
+along x, y, z.
+
+ -- MGL command: surf3 adat `val' ['sch'="]
+ -- MGL command: surf3 xdat ydat zdat adat `val' ['sch'="]
+     Draws isosurface plot for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) at
+     A(x,y,z)=VAL. If string contain `#' then wire plot is produced.
+     See also *note cloud::, *note dens3::, *note surf3c::, *note
+     surf3a::, *note axial::. *Note Surf3 sample::, for sample code and
+     picture.
+
+ -- MGL command: surf3 adat ['sch'=" `num=5']
+ -- MGL command: surf3 xdat ydat zdat adat ['sch'=" `num=5']
+     Draws NUM-th uniformly distributed in color range (see *note
+     caxis::) isosurfaces for 3d data specified parametrically.
+
+ -- MGL command: dens3 adat 'dir' [`sval=-1' 'sch'="]
+ -- MGL command: dens3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="]
+     Draws density plot for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). Density is
+     plotted at slice SVAL in DIR={`x', `y', `z'} direction. If string
+     STL have symbol `#' then grid lines are drawn. See also *note
+     cont3::, *note contf3::, *note dens::, *note grid3::. *Note Dens3
+     sample::, for sample code and picture.
+
+ -- MGL command: densa adat ['sch'="]
+ -- MGL command: densa xdat ydat zdat adat ['sch'="]
+     Draws density plots at all central slices of the 3d data specified
+     parametrically.
+
+ -- MGL command: cont3 vdat adat 'dir' [`sval=-1' 'sch'="]
+ -- MGL command: cont3 vdat xdat ydat zdat adat 'dir' [`sval=-1'
+          'sch'="]
+     Draws contour plot for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). Contours are
+     plotted for values specified in array VDAT at slice SVAL in
+     DIR={`x', `y', `z'} direction. If string STL have symbol `#' then
+     grid lines are drawn. If string STL contain 't' (or 'T') symbol
+     then contour labels will be drawn below (or above) the contours.
+     See also *note dens3::, *note contf3::, *note cont::, *note
+     grid3::. *Note Cont3 sample::, for sample code and picture.
+
+ -- MGL command: cont3 adat 'dir' [`sval=-1' 'sch'=" `num=7']
+ -- MGL command: cont3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="
+          `num=7']
+     The same as previous one with vector VDAT of NUM-th elements
+     equidistantly distributed in color range (see `caxis').
+
+ -- MGL command: conta adat ['sch'=" `num=7']
+ -- MGL command: conta xdat ydat zdat adat ['sch'=" `num=7']
+     Draws contour plots at all central slices of the 3d data specified
+     parametrically.
+
+ -- MGL command: contf3 vdat adat 'dir' [`sval=-1' 'sch'="]
+ -- MGL command: contf3 vdat xdat ydat zdat adat 'dir' [`sval=-1'
+          'sch'="]
+     Draws solid contour plot for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). Contours are
+     plotted for values specified in array VDAT at slice SVAL in
+     DIR={`x', `y', `z'} direction. If string STL have symbol `#' then
+     grid lines are drawn. See also *note dens3::, *note cont3::, *note
+     contf::, *note grid3::. *Note ContF3 sample::, for sample code and
+     picture.
+
+ -- MGL command: contf3 adat 'dir' [`sval=-1' 'sch'=" `num=7']
+ -- MGL command: contf3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="
+          `num=7']
+     The same as previous one with vector VDAT of NUM-th elements
+     equidistantly distributed in color range (see *note caxis::).
+
+ -- MGL command: contfa adat ['sch'=" `num=7']
+ -- MGL command: contfa xdat ydat zdat adat ['sch'=" `num=7']
+     Draws solid contour plots at all central slices of the 3d data
+     specified parametrically.
+
+ -- MGL command: grid3 adat 'dir' [`sval=-1' 'sch'="]
+ -- MGL command: grid3 xdat ydat zdat adat 'dir' [`sval=-1' 'sch'="]
+     Draws grid for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). Grid is
+     plotted at slice SVAL in DIR={`x', `y', `z'} direction. See also
+     *note cont3::, *note contf3::, *note dens3::, *note grid2::. *Note
+     Dens3 sample::, for sample code and picture.
+
+ -- MGL command: grida adat ['sch'="]
+ -- MGL command: grida xdat ydat zdat adat ['sch'="]
+     Draws grids at all central slices of the 3d data specified
+     parametrically.
+
+ -- MGL command: cloud adat ['sch'="]
+ -- MGL command: cloud xdat ydat zdat adat ['sch'="]
+     Draws cloud for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]). This plot is a
+     set of cubes with color and transparency proportional to value of
+     ADAT. The resulting plot is like cloud - low value is transparent
+     but higher ones are not. The number of plotting cells depend on
+     *note meshnum::. Paramater ALPHA changes the overall transparency
+     of plot. See also *note surf3::. *Note Cloud sample::, for sample
+     code and picture.
+
+ -- MGL command: beam tr g1 g2 adat `rval' ['sch'=" `flag=0 num=3']
+     Draws  NUM-th uniformly distributed in color range (see `caxis')
+     isosurfaces for 3d array ADAT. This is special kind of plot for
+     ADAT specified in accompanied coordinates along curve TR with orts
+     G1, G2 and with transverse scale RVAL. Variable FLAG is bitwise:
+     `0x1' - draw in accompanied (not laboratory) coordinates; `0x2' -
+     draw projection to \rho-z plane; `0x4' - draw normalized in each
+     slice field. The x-size of data arrays TR, G1, G2 must be nx>2.
+     The y-size of data arrays TR, G1, G2 and z-size of the data array
+     A must be equal. See also *note surf3::.
+
+
+File: mgl_en.info,  Node: Dual plotting,  Next: Vector fields,  Prev: 3D plotting,  Up: MGL interface
+
+1.13 Dual plotting
+==================
+
+These plotting commands draw _two matrix_ simultaneously. There are 5
+generally different types of data representations: surface or
+isosurface colored by other data (*note surfc::, *note surf3c::),
+surface or isosurface transpared by other data (*note surfa::, *note
+surf3a::), tiles with variable size (*note tiles::), mapping diagram
+(*note map::), STFA diagram (*note stfa::). Commands *note surf3a:: and
+*note surf3c:: have variants for automatic and manual selection of
+level values for isosurfaces. Each type of plotting has similar
+interface. There are 2 kind of versions which handle the arrays of data
+and coordinates or only single data array.
+
+   String paramter SCH sets the color scheme (*note Color scheme::).
+Previous color scheme is used by default. Arrays X, Y, Z can be vectors
+(not 3d arrays as A). If array XDAT, YDAT, ZDAT is not specified then
+its an automatic arrays are used with values equidistantly distributed
+along x, y, z.
+
+ -- MGL command: surfc zdat cdat ['sch'="]
+ -- MGL command: surfc xdat ydat zdat cdat ['sch'="]
+     Draws surface specified parametrically {XDAT[i,j], YDAT[i,j],
+     ZDAT[i,j]} and color it by matrix CDAT[i,j]. See also *note
+     surf::, *note surfa::, *note surf3c::. *Note SurfC sample::, for
+     sample code and picture.
+
+ -- MGL command: surf3c adat cdat `val' ['sch'="]
+ -- MGL command: surf3c xdat ydat zdat adat cdat `val' ['sch'="]
+     Draws isosurface plot for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) at
+     A(x,y,z)=VAL. It is mostly the same as *note surf3:: command but
+     the color of isosurface depends on values of array CDAT. If string
+     contain `#' then wire plot is produced. See also *note surf3::,
+     *note surfc::, *note surf3a::. *Note Surf3C sample::, for sample
+     code and picture.
+
+ -- MGL command: surf3c adat cdat ['sch'=" `num=5']
+ -- MGL command: surf3c xdat ydat zdat adat cdat ['sch'=" `num=5']
+     Draws NUM-th uniformly distributed in color range (see `caxis')
+     isosurfaces for 3d data specified parametrically.
+
+ -- MGL command: surfa zdat cdat ['sch'="]
+ -- MGL command: surfa xdat ydat zdat cdat ['sch'="]
+     Draws surface specified parametrically {XDAT[i,j], YDAT[i,j],
+     ZDAT[i,j]} and transparent it by matrix CDAT[i,j]. See also *note
+     surf::, *note surfc::, *note surf3a::, *note tiles::. *Note SurfA
+     sample::, for sample code and picture.
+
+ -- MGL command: surf3a adat cdat `val' ['sch'="]
+ -- MGL command: surf3a xdat ydat zdat adat cdat `val' ['sch'="]
+     Draws isosurface plot for 3d array specified parametrically
+     ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) at
+     A(x,y,z)=VAL. It is mostly the same as *note surf3:: command but
+     the transparency of isosurface depends on values of array CDAT. If
+     string contain `#' then wire plot is produced. See also *note
+     surf3::, *note surfa::, *note surf3c::. *Note Surf3A sample::, for
+     sample code and picture.
+
+ -- MGL command: surf3a adat cdat ['sch'=" `num=5']
+ -- MGL command: surf3a xdat ydat zdat adat cdat ['sch'=" `num=5']
+     Draws NUM-th uniformly distributed in color range (see `caxis')
+     isosurfaces for 3d data specified parametrically.
+
+ -- MGL command: tiles zdat rdat ['sch'="]
+ -- MGL command: tiles xdat ydat zdat rdat ['sch'="]
+     Draws horizontal tiles for surface specified parametrically
+     {XDAT[i,j], YDAT[i,j], ZDAT[i,j]}. It is mostly the same as *note
+     tile:: but the size of tiles is determined by RDAT array. See also
+     *note surfa::, *note tile::. *Note TileS sample::, for sample code
+     and picture.
+
+ -- MGL command: map udat vdat ['sch'=" `pnts=on']
+ -- MGL command: map xdat ydat udat vdat ['sch'=" `pnts=on']
+     Draws mapping plot for matrixes {UDAT, VDAT } which parametrically
+     depend on coordinates XDAT, YDAT. The previous position of the
+     cell (point) is marked by color. Height is proportional to
+     Jacobian(udat,vdat). This plot is like Arnold diagram ???. If
+     `pnts=off' then face is drawn otherwise the color ball at matrix
+     knots are drawn. The size of UDAT and VDAT must be the same. *Note
+     Map sample::, for sample code and picture.
+
+ -- MGL command: stfa re im `dn' ['sch'=" `pnts=on']
+ -- MGL command: stfa xdat ydat re im `dn' ['sch'=" `pnts=on']
+     Draws spectrogram of complex array RE+i*`im' for Fourier size of
+     DN points at plane Z=ZVAL. Parameter DN is arbitrary even integer.
+     For example in 1D case, result is density plot of data
+     res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn with
+     size {int(nx/dn), dn, ny}. *Note STFA sample::, for sample code
+     and picture.
+
+
+File: mgl_en.info,  Node: Vector fields,  Next: Other plotting,  Prev: Dual plotting,  Up: MGL interface
+
+1.14 Vector fields
+==================
+
+These commands perform plotting of 2D and 3D vector fields. There are 6
+generally different types of vector fields representations: simple
+vector field (*note vect::), vector field by dew-drops (*note dew::),
+flow threads (*note flow::), flow pipes (*note pipe::), vectors along a
+curve (*note traj::). Each type of plotting has similar interface.
+There are 2 kind of versions which handle the arrays of data and
+coordinates or only single data array. Parameters of color scheme are
+specified by the string argument. *Note Color scheme::.
+
+   The color is specified by the string argument SCH. Previous color
+scheme is used by default. Parameter FLAG setup the hachures (arrows).
+It is combination of values: `1' for drawing bi-color arrow, `2' for
+drawing fixed length arrows, `4' for drawing arrows to the cell point,
+`8' for drawing arrows with center at cell point, `16' for drawing
+hachures with dots instead of arrows.
+
+   The size of UDAT, VDAT and WDAT must be equal. The minor dimensions
+of arrays XDAT, YDAT, ZDAT and UDAT must be equal too. Arrays XDAT,
+YDAT and ZDAT can be vectors (not matrices as UDAT). The graphics is
+plotted for each z slice of UDAT, VDAT for 2D case.
+
+ -- MGL command: traj xdat ydat udat vdat ['sch'=" `zval=nan len=0']
+ -- MGL command: traj xdat ydat zdat udat vdat wdat ['sch'=" `len=0']
+     Draws vectors {UDAT, VDAT, WDAT} along a curve XDAT, YDAT, ZDAT.
+     The length and color of arrows are proportional to
+     \sqrt{udat^2+vdat^2+wdat^2}. See also `vect'. *Note Traj sample::,
+     for sample code and picture.
+
+ -- MGL command: vect udat vdat ['sch'=" `zval=nan flag=0']
+ -- MGL command: vect xdat ydat udat vdat ['sch'=" `zval=nan flag=0']
+     Draws plane vector field plot for the field {UDAT, VDAT} depending
+     parametrically on coordinates XDAT, YDAT at level Z=ZVAL. The
+     length and color of arrows are proportional to
+     \sqrt{udat^2+vdat^2}. The number of arrows depend on *note
+     meshnum::. See also *note flow::, *note dew::, *note vectc::.
+     *Note Vect sample::, for sample code and picture.
+
+ -- MGL command: vect udat vdat wdat ['sch'=" `flag=0']
+ -- MGL command: vect xdat ydat zdat udat vdat wdat ['sch'=" `flag=0']
+     This is 3D version of the previous command. Here arrays UDAT,
+     VDAT, WDAT must be 3-ranged tensors with equal sizes and the
+     length and color of arrows are proportional to
+     \sqrt{udat^2+vdat^2+wdat^2}. *Note Vect 3D sample::, for sample
+     code and picture.
+
+ -- MGL command: vectc udat vdat ['sch'=" `zval=nan']
+ -- MGL command: vectc xdat ydat udat vdat ['sch'=" `zval=nan']
+     Draws plane vector field plot for the field {UDAT, VDAT} depending
+     parametrically on coordinates XDAT, YDAT at level Z=ZVAL. The
+     color of hachures is proportional to \sqrt{udat^2+vdat^2}. The
+     number of hachures depend on MESHNUM. See also `vect, flow, pipe,
+     dew'. *Note VectC sample::, for sample code and picture.
+
+ -- MGL command: vectc udat vdat wdat ['sch'="]
+ -- MGL command: vectc xdat ydat zdat udat vdat wdat ['sch'="]
+     This is 3D version of the previous command. Here arrays UDAT,
+     VDAT, WDAT must be 3-ranged tensors with equal sizes and the color
+     of hachures is proportional to \sqrt{udat^2+vdat^2+wdat^2}. *Note
+     VectC 3D sample::, for sample code and picture.
+
+ -- MGL command: vectl udat vdat ['sch'=" `zval=nan']
+ -- MGL command: vectl xdat ydat udat vdat ['sch'=" `zval=nan']
+     Draws plane vector field plot for the field {UDAT, VDAT} depending
+     parametrically on coordinates XDAT, YDAT at level Z=ZVAL. The
+     length of hachures is proportional to \sqrt{udat^2+vdat^2}. The
+     number of hachures depend on MESHNUM. See also `vectc, flow, pipe,
+     dew'. *Note Vect sample::, for sample code and picture.
+
+ -- MGL command: vectl udat vdat wdat ['sch'="]
+ -- MGL command: vectl xdat ydat zdat udat vdat wdat ['sch'="]
+     This is 3D version of the previous command. Here arrays UDAT,
+     VDAT, WDAT must be 3-ranged tensors with equal sizes and the
+     length of hachures is proportional to \sqrt{udat^2+vdat^2+wdat^2}.
+     *Note VectL 3D sample::, for sample code and picture.
+
+ -- MGL command: dew udat vdat ['sch'=" `zval=nan']
+ -- MGL command: dew xdat ydat udat vdat ['sch'=" `zval=nan']
+     Draws dew-drops for plane vector field {UDAT, VDAT} depending
+     parametrically on coordinates XDAT, YDAT at level Z=ZVAL. The
+     color of drops is proportional to \sqrt{udat^2+vdat^2}. The number
+     of drops depend on *note meshnum::. Note that this is very
+     expensive plot in memory usage and creation time! See also *note
+     vect::. *Note Dew sample::, for sample code and picture.
+
+ -- MGL command: flow udat vdat ['sch'=" `num=5 zval=nan']
+ -- MGL command: flow xdat ydat udat vdat ['sch'=" `num=5 zval=nan']
+     Draws plane flow threads for the vector field {UDAT, VDAT}
+     depending parametrically on coordinates XDAT, YDAT at level
+     Z=ZVAL. Number of threads is proportional to NUM. The color of
+     lines is proportional to \sqrt{udat^2+vdat^2}. Warm color
+     corresponds to normal flow (like attractor). Cold one corresponds
+     to inverse flow (like source). See also `vect, vectc, pipe'. *Note
+     Flow sample::, for sample code and picture.
+
+ -- MGL command: flow udat vdat wdat ['sch'=" `num=3']
+ -- MGL command: flow xdat ydat zdat udat vdat wdat ['sch'=" `num=3']
+     This is 3D version of the previous command. Here arrays UDAT,
+     VDAT, WDAT must be 3-ranged tensors with equal sizes and the color
+     is proportional to \sqrt{udat^2+vdat^2+wdat^2}. *Note Flow 3D
+     sample::, for sample code and picture.
+
+ -- MGL command: flow `x0 y0' udat vdat ['sch'=" `zval=nan']
+ -- MGL command: flow `x0 y0' xdat ydat udat vdat ['sch'=" `zval=nan']
+     Draws plane flow threads for the vector field {UDAT, VDAT}
+     depending parametrically on coordinates XDAT, YDAT from point {X0,
+     Y0} at level Z=ZVAL. The color of lines is proportional to
+     \sqrt{udat^2+vdat^2}. Warm color corresponds to normal flow (like
+     attractor). Cold one corresponds to inverse flow (like source).
+     See also `vect, vectc, pipe'. *Note Flow sample::, for sample code
+     and picture.
+
+ -- MGL command: flow `x0 y0 z0' udat vdat wdat ['sch'="]
+ -- MGL command: flow `x0 y0 z0' xdat ydat zdat udat vdat wdat ['sch'="]
+     Draws flow thread from point {X0, Y0, Z0}. Arrays UDAT, VDAT, WDAT
+     must be 3-ranged tensors with equal sizes and the color is
+     proportional to \sqrt{udat^2+vdat^2+wdat^2}. *Note Flow 3D
+     sample::, for sample code and picture.
+
+ -- MGL command: pipe udat vdat ['sch'=" `r0=0.05 num=5 zval=nan']
+ -- MGL command: pipe xdat ydat udat vdat ['sch'=" `r0=0.05 num=5
+          zval=nan']
+     Draws plane flow pipes for the vector field {UDAT, VDAT} depending
+     parametrically on coordinates XDAT, YDAT at level Z=ZVAL. Number
+     of pipes is proportional to NUM. The color of pipes is
+     proportional to \sqrt{udat^2+vdat^2}. Warm color corresponds to
+     normal flow (like attractor). Cold one corresponds to inverse flow
+     (like source). Parameter R0 set the base pipe radius. If R0<0 then
+     pipe radius is inverse proportional to amplitude. The size of AX
+     and AY must be equal. See also `vect, vectc, pipe'. *Note Pipe
+     sample::, for sample code and picture.
+
+ -- MGL command: pipe udat vdat wdat ['sch'=" `r0=0.05 num=3']
+ -- MGL command: pipe xdat ydat zdat udat vdat wdat ['sch'=" `r0=0.05
+          num=3']
+     This is 3D version of the previous command. Here arrays UDAT,
+     VDAT, WDAT must be 3-ranged tensors with equal sizes and the color
+     is proportional to \sqrt{udat^2+vdat^2+wdat^2}. *Note Pipe 3D
+     sample::, for sample code and picture.
+
+
+File: mgl_en.info,  Node: Other plotting,  Next: Nonlinear fitting,  Prev: Vector fields,  Up: MGL interface
+
+1.15 Other plotting
+===================
+
+These commands perform miscelaneous plotting. There is unstructured
+data points plots (Dots), surface reconstruction (Crust), surfaces on
+the triangular mesh (TriPlot) or quadrangular mesh (QuadPlot), textual
+formula plotting (Plots by formula), data plots at edges (Dens[XYZ],
+Cont[XYZ], ContF[XYZ]), simple plot (SimplePlot). Each type of plotting
+has similar interface. There are 2 kind of versions which handle the
+arrays of data and coordinates or only single data array. Parameters of
+color scheme are specified by the string argument. *Note Color scheme::.
+
+ -- MGL command: densx dat ['sch'=" `val=nan']
+ -- MGL command: densy dat ['sch'=" `val=nan']
+ -- MGL command: densz dat ['sch'=" `val=nan']
+     These plotting commands draw density plot in x, y or z plain. If
+     DAT is a tensor (3-dimensional data) then interpolation to a given
+     VAL is performed. These commands are useful for creating
+     projections of the 3D data array to the bounding box. See also
+     `cont[xyz], contf[xyz]', *note dens::. *Note Dens projection
+     sample::, for sample code and picture.
+
+ -- MGL command: contx dat ['sch'=" `val=nan num=7']
+ -- MGL command: conty dat ['sch'=" `val=nan num=7']
+ -- MGL command: contz dat ['sch'=" `val=nan num=7']
+     These plotting commands draw contour lines in x, y or z plain. If
+     DAT is a tensor (3-dimensional data) then interpolation to a given
+     VAL is performed. These commands are useful for creating
+     projections of the 3D data array to the bounding box. See also
+     `dens[xyz], contf[xyz]', *note cont::. *Note Cont projection
+     sample::, for sample code and picture.
+
+ -- MGL command: contfx dat ['sch'=" `val=nan num=7']
+ -- MGL command: contfy dat ['sch'=" `val=nan num=7']
+ -- MGL command: contfz dat ['sch'=" `val=nan num=7']
+     These plotting commands draw solid contours in x, y or z plain. If
+     DAT is a tensor (3-dimensional data) then interpolation to a given
+     VAL is performed. These commands are useful for creating
+     projections of the 3D data array to the bounding box. See also
+     `dens[xyz], cont[xyz]', *note contf::.
+
+ -- MGL command: dots xdat ydat zdat ['sch'="]
+ -- MGL command: dots xdat ydat zdat adat ['sch'="]
+     Draws the arbitrary placed points {XDAT[i], YDAT[i], ZDAT[i]}.
+     Variable ADAT[i] set transparency for dots. See also *note
+     crust::, *note mark::, *note plot::. *Note Dots sample::, for
+     sample code and picture.
+
+ -- MGL command: crust xdat ydat zdat ['sch'="]
+     Reconstructs and draws the surface for arbitrary placed points
+     {XDAT[i], YDAT[i], ZDAT[i]}. If string contain `#' then wire plot
+     is produced. See also *note dots::, *note triplot::. *Note Crust
+     sample::, for sample code and picture.
+
+ -- MGL command: triplot idat xdat ydat ['sch'=" `zval=nan']
+ -- MGL command: triplot idat xdat ydat zdat ['sch'="]
+ -- MGL command: triplot idat xdat ydat zdat cdat ['sch'="]
+     Draws the surface of triangles. Triangle vertexes are set by
+     indexes IDAT of data points {XDAT[i], YDAT[i], ZDAT[i]}. If string
+     contain `#' then wire plot is produced. First dimensions of IDAT
+     must be 3 or greater. See also `dots, crust, quadplot'. Parameter
+     CDAT set the colors of triangles (if IDAT.ny=CDAT.nx) or colors of
+     vertexes (if XDAT.nx=CDAT.nx). See also *note dots::, *note
+     crust::, *note quadplot::, *note tricont::.
+
+ -- MGL command: tricont vdat idat xdat ydat zdat cdat ['sch'="
+          `zval=nan']
+ -- MGL command: tricont vdat idat xdat ydat zdat ['sch'=" `zval=nan']
+ -- MGL command: tricont idat xdat ydat zdat ['sch'=" `num=7 zval=nan']
+     Draws contour lines for surface of triangles at Z = ZVAL (or for
+     Z=VDAT[k] if `zval=nan'). Triangle vertexes are set by indexes
+     IDAT of data points {XDAT[i], YDAT[i], ZDAT[i]}. Contours are
+     plotted for ZDAT[i,j]=VDAT[k] for all k (or NUM contours
+     equidistantly distributed in range [CMIN, CMAX].). See also *note
+     triplot::, *note cont::.
+
+ -- MGL command: quadplot idat xdat ydat ['sch'=" `zval=nan']
+ -- MGL command: quadplot idat xdat ydat zdat ['sch'="]
+ -- MGL command: quadplot idat xdat ydat zdat cdat ['sch'="]
+     Draws the surface of quadrangles. Quadrangle vertexes are set by
+     indexes IDAT of data points {XDAT[i], YDAT[i], ZDAT[i]}. If string
+     contain `#' then wire plot is produced. First dimensions of IDAT
+     must be 4 or greater. See also `triplot, dots, crust'. Parameter
+     CDAT set the colors of triangles (if IDAT.ny=CDAT.nx) or colors of
+     vertexes (if XDAT.nx=CDAT.nx). See also *note triplot::.
+
+ -- MGL command: fplot 'y(x)' ['pen'=" `zval=nan num=100']
+     Draws command function `y(x)' at plane z=ZVAL where `x' variable
+     is changed in `xrange'. You do not need to create the data arrays
+     to plot it. The parameter NUM set the minimal number of points
+     along coordinate(s) for plots. See also *note plot::.
+
+ -- MGL command: fplot 'x(t)' 'y(t)' 'z(t)' ['pen'=" `num=100']
+     Draws command parametrical curve {`x(t)', `y(t)', `z(t)'} where
+     `t' variable is changed in range [0, 1]. You do not need to create
+     the data arrays to plot it. The parameter NUM set the minimal
+     number of points along coordinate(s) for plots. See also *note
+     plot::.
+
+ -- MGL command: fsurf 'z(x,y)' ['sch'=" `num=100']
+     Draws command surface for function `z(x,y)' where `x', `y'
+     variable are changed in `xrange, yrange'. You do not need to
+     create the data arrays to plot it. The parameter NUM set the
+     minimal number of points along coordinate(s) for plots. See also
+     *note surf::.
+
+ -- MGL command: fsurf 'x(u,v)' 'y(u,v)' 'z(u,v)' ['sch'=" `num=100']
+     Draws command parametrical surface {`x(u,v)', `y(u,v)', `z(u,v)'}
+     where `u', `v' variable are changed in range [0, 1]. You do not
+     need to create the data arrays to plot it. The parameter NUM set
+     the minimal number of points along coordinate(s) for plots. See
+     also *note surf::.
+
+
+File: mgl_en.info,  Node: Nonlinear fitting,  Next: Data create,  Prev: Other plotting,  Up: MGL interface
+
+1.16 Nonlinear fitting
+======================
+
+These commands fit data to formula. Fitting goal is to find formula
+parameters for the best fit the data points, i.e. to minimize the sum
+\sum_i (f(x_i, y_i, z_i) - a_i)^2/s_i^2. At this, approximation
+function `f' can depend only on one argument `x' (1D case), on two
+arguments `x,y' (2D case) and on three arguments `x,y,z' (3D case). The
+command `f' also may depend on parameters. Normally the list of fitted
+parameters is specified by VAR string (like, `abcd'). Usually user
+should supply initial values for fitted parameters by INI variable. But
+if he/she don't supply it then the zeros are used.
+
+   Commands *note fit:: and *note fits:: do not draw the obtained data
+themselves. They fill the data OUT by formula `f' with found
+coefficients. At this, the `x,y,z' coordinates are equidistantly
+distributed in the bounding box. Number of points in OUT is selected as
+maximal value of OUT size or 100. Also you may print the last formula
+with found coefficients by `putsfit' command. *Note Fitting sample::,
+for sample code and picture.
+
+   The dimensions of arrays must be at least the same as the number of
+specified arrays XDAT, YDAT, ZDAT. Also the fitting only along
+specified directions will be performed (for example, along x and y if
+only XDAT and YDAT are specified). If array XDAT is not specified then
+its an automatic array is used with values equidistantly distributed
+along x.
+
+ -- MGL command: fits adat sdat 'func' 'var' [ini=0]
+ -- MGL command: fits xdat adat sdat 'func' 'var' [ini=0]
+ -- MGL command: fits xdat ydat adat sdat 'func' 'var' [ini=0]
+ -- MGL command: fits xdat ydat zdat adat sdat 'func' 'var' [ini=0]
+     Fit data along x-, y- and z-directions for 1d-,2d- or 3d array
+     specified parametrically ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k],
+     ZDAT[i,j,k]) with weight factor SDAT[i,j,k].
+
+ -- MGL command: fit adat 'func' 'var' [ini=0]
+ -- MGL command: fit xdat adat 'func' 'var' [ini=0]
+ -- MGL command: fit xdat ydat adat 'func' 'var' [ini=0]
+ -- MGL command: fit xdat ydat zdat adat 'func' 'var' [ini=0]
+     Fit data along x-, y- and z-directions for 1d-,2d- or 3d array
+     specified parametrically ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k],
+     ZDAT[i,j,k]) with weight factor =1.
+
+ -- MGL command: putsfit `x y' ['pre'=" 'fnt'=" `size=-1']
+     Print last fitted formula with found coefficients (as numbers) at
+     position {X, Y}. The string PRE will be printed before formula.
+     All other parameters are the same as in *note Text printing::.
+
+
+File: mgl_en.info,  Node: Data create,  Next: Data filling,  Prev: Nonlinear fitting,  Up: MGL interface
+
+1.17 Data create
+================
+
+ -- MGL command: new dat [`nx=1 ny=1 nz=1']
+     Creates or recreates the array DAT with specified size and fills
+     it by zero. This command does nothing if one of parameters NX, NY,
+     NZ is zero or negative.
+
+ -- MGL command: var dat `num v1 [v2=nan]'
+     Creates new variable with name DAT for one-dimensional array of
+     size NUM. Array elements are equidistantly distributed in range
+     [V1, V2]. If V2=`nan' then V2=V1 is used.
+
+ -- MGL command: list dat `v1 ...'
+     Creates new variable with name DAT and fills it by numeric values
+     of command arguments `v1 ...'. Command can create one-dimensional
+     and two-dimensional arrays with arbitrary values. For creating 2d
+     array the user should use delimiter `|' which means that the
+     following values lie in next row. Array sizes are [maximal of row
+     sizes * number of rows]. For example, command `list 1 | 2 3'
+     creates the array [1 0; 2 3]. Note, that the maximal number of
+     arguments is 1000.
+
+ -- MGL command: list dat d1 ...
+     Creates new variable with name DAT and fills it by data values of
+     arrays of command arguments D1 .... Command can create
+     two-dimensional or three-dimensional (if arrays in arguments are
+     2d arrays) arrays with arbitrary values. Minor dimensions of all
+     arrays in arguments should be equal to dimensions of first array
+     d1. In the opposite case the argument will be ignored. Note, that
+     the maximal number of arguments is 1000.
+
+ -- MGL command: copy dat1 dat2 ['eq'=" `on_axis=on']
+ -- MGL command: copy dat1 `val'
+     Creates new variable with name DAT1 and fills it by data values of
+     array DAT2. At this, if parameter EQ is specified then the data
+     will be modified by corresponding formula by the same way as in
+     *note fill:: command (for `on_axis=on') or in *note modify::
+     command (for `on_axis=off').
+
+ -- MGL command: idset dat 'ids'
+     Set the symbol id for data columns. The string must contain one
+     symbol 'a'...'z' per column (without spaces).
+
+ -- MGL command: info dat [`detail=off']
+     Display information (sizes, maximum/minimum, momentums and so on)
+     about the data dat. Show brief information by default (if
+     `detail=off').
+
+ -- MGL command: info 'text'
+     Display TEXT as information (warning).
+
+
+File: mgl_en.info,  Node: Data filling,  Next: Rearrange data,  Prev: Data create,  Up: MGL interface
+
+1.18 Data filling
+=================
+
+ -- MGL command: fill dat v1 v2 ['dir'='x']
+     Equidistantly fills the data values to range [X1, X2] in direction
+     DIR={`x',`y',`z'}.
+
+ -- MGL command: fill dat 'eq'
+ -- MGL command: fill dat 'eq' vdat
+ -- MGL command: fill dat 'eq' vdat wdat
+     Command fills the value of array according to the formula in
+     string EQ. Formula is an arbitrary expression depending  on
+     variables `x', `y', `z', `u', `v', `w'. Coordinates `x', `y', `z'
+     are supposed to be normalized in _bounding box_ (in difference
+     from `modify' commands). Variable `u' is the original value of the
+     array. Variables `v' and `w' are values of VDAT, WDAT.
+
+ -- MGL command: modify dat 'eq' [`dim=0']
+ -- MGL command: modify dat 'eq' vdat
+ -- MGL command: modify dat 'eq' vdat wdat
+     Command fills the value of array according to the formula in
+     string EQ. Formula is an arbitrary expression depending  on
+     variables `x', `y', `z', `u'. Coordinates `x', `y', `z' are data
+     indexes normalized in range [0,1]. Variable `u' is the original
+     value of the array. If DIM>0 is specified then modification will
+     be fulfilled only for slices >=DIM.
+
+ -- MGL command: put dat `val [i=: j=: k=:]'
+     Function sets value(s) of array DAT[I, J, K] = VAL. Negative
+     indexes I, J, K=`:' set the value VAL to whole range in
+     corresponding direction(s). For example, `put dat val : 0 :' sets
+     DAT[i,0,j]=VAL for i=0...(DAT.nx-1), j=0...(DAT.nz-1).
+
+ -- MGL command: put dat vdat [`i=: j=: k=:']
+     Function copies value(s) from array VDAT to the range of array
+     DAT. Negative indexes I, J, K=`:' set the range in corresponding
+     direction(s). At this minor dimensions of array VDAT should be
+     large than corresponding dimensions of array DAT. For example,
+     `put dat v : 0 :' sets DAT[i,0,j]=VDAT.ny>DAT.nz ? VDAT[i,j] :
+     VDAT[i], where i=0...(DAT.nx-1), j=0...(DAT.nz-1) and condition
+     vdat.nx>=dat.nx is true.
+
+
+File: mgl_en.info,  Node: Rearrange data,  Next: File I/O,  Prev: Data filling,  Up: MGL interface
+
+1.19 Rearrange data
+===================
+
+ -- MGL command: rearrange dat `mx [my=0 mz=0]'
+     Rearrange dimensions without changing data array so that resulting
+     sizes should  be MX*MY*MZ < nx*ny*nz. If some of parameter MY or
+     MZ are zero then it will be selected to optimal fill of data
+     array. For example, if MY=0 then it will be change to
+     MY=nx*ny*nz/MX and MZ will be 1.
+
+ -- MGL command: extend dat `n1 [n2=0]'
+     Increase the dimensions of the data by inserting new (|N1|+1)-th
+     slices after (for N1>0) or before (for N1<0) of existed one. It is
+     possible to insert 2 dimensions simultaneously for 1d data by
+     using parameter N2. Data to new slices is copy from existed one.
+     For example, for N1>0 new array will be a_ij^new = a_i^old where
+     j=0...N1. Correspondingly, for N1<0 new array will be a_ij^new =
+     a_j^old where i=0...|N1|.
+
+ -- MGL command: transpose dat ['dim'='yxz']
+     Transposes (shift order of) dimensions of the data. New order of
+     dimensions is specified int string DIM. This command may be useful
+     also for the reading of one-dimensional data.
+
+ -- MGL command: squeeze dat `rx [ry=1 rz=1 sm=off]'
+     Reduces the data size by excluding data elements which indexes are
+     not divisible by RX, RY, RZ correspondingly. Parameter SM set to
+     use smoothing (i.e. out[i]=\sum_{j=i}^{i+r} a[j]/r) or not (i.e.
+     out[i]=a[j*r]).
+
+ -- MGL command: crop dat `n1 n2' 'dir'
+     Cuts off edges of the data I<N1 and I>N2 if N2>0 or I>`n[xyz]'-N2
+     if N2<=0 along direction DIR.
+
+ -- MGL command: delete dat
+     Deletes variable DAT and makes its memory free. Can be useful for
+     huge data arrays.
+
+ -- MGL command: delete dat 'dir' `[pos=off num=0]'
+     Delete NUM slices along DIR-direction at position POS.
+
+ -- MGL command: insert dat 'dir' `[pos=off num=0]'
+     Insert NUM slices along DIR-direction at position POS.
+
+
+File: mgl_en.info,  Node: File I/O,  Next: Make another data,  Prev: Rearrange data,  Up: MGL interface
+
+1.20 File I/O
+=============
+
+ -- MGL command: read dat 'fname'
+     Reads data from tab-separated text file with auto determining
+     sizes of the data.
+
+ -- MGL command: read dat 'fname' `mx [my=1 mz=1]'
+     Reads data from text file with specified data sizes. This command
+     does nothing if one of parameters MX, MY or MZ is zero or negative.
+
+ -- MGL command: readmat dat 'fname' [`dim=2']
+     Read data from text file with size specified at beginning of the
+     file by first DIM numbers. At this, variable DIM set data
+     dimensions.
+
+ -- MGL command: readall dat 'templ' `v1 v2 [dv=1 slice=off]'
+     Join data arrays from several text files. The file names are
+     determined by function call `sprintf(fname,templ,val);', where VAL
+     changes from V1 to V2 with step DV. The data load one-by-one in
+     the same slice if SLICE=`off' or as slice-by-slice if SLICE=`on'.
+
+ -- MGL command: readall dat 'templ' `[slice=off]'
+     Join data arrays from several text files which filenames satisfied
+     the template TEMPL (for example, TEMPL=`"t_*.dat"'). The data load
+     one-by-one in the same slice if SLICE=`off' or as slice-by-slice
+     if SLICE=`on'.
+
+ -- MGL command: save dat 'fname'
+     Saves the whole data array to tab-separated text file.
+
+ -- MGL command: readhdf dat 'fname' 'dname'
+     Reads data array named DNAME from HDF5 or HDF4 file FNAME.
+
+ -- MGL command: savehdf dat 'fname' 'dname'
+     Saves data array named DNAME from HDF5 or HDF4 file FNAME.
+
+ -- MGL command: import dat 'fname' 'sch' [`v1=0 v2=1']
+     Reads data from bitmap file. The RGB values of bitmap pixels are
+     transformed to float values in range [V1, V2] using color scheme
+     SCH (*note Color scheme::).
+
+ -- MGL command: export dat 'fname' 'sch' [`v1=0 v2=0']
+     Saves data matrix to bitmap file. The data values are transformed
+     from range [V1, V2] to RGB pixels of bitmap using color scheme SCH
+     (*note Color scheme::). If V1>=V2 then the values of V1, V2 are
+     automatically determined as minimal and maximal value of the data
+     array.
+
+
+File: mgl_en.info,  Node: Make another data,  Next: Change data,  Prev: File I/O,  Up: MGL interface
+
+1.21 Make another data
+======================
+
+ -- MGL command: combine res adat bdat
+     Returns direct multiplication of arrays (like, res[i,j] =
+     adat[i]*bdat[j] and so on).
+
+ -- MGL command: evaluate res dat idat [`norm=on']
+ -- MGL command: evaluate res dat idat jdat [`norm=on']
+ -- MGL command: evaluate res dat idat jdat kdat [`norm=on']
+     Get array which values is result of interpolation of original
+     array for coordinates from other arrays (for example,
+     res[i,j]=dat[idat[i,j],jdat[i,j]]). All dimensions must be the
+     same for data IDAT, JDAT, KDAT. Coordinates from IDAT, JDAT, KDAT
+     are supposed to be normalized in range [0,1] (if NORM=`true') or
+     in ranges [0,nx], [0,ny], [0,nz] correspondingly.
+
+ -- MGL command: hist res dat `num v1 v2 [nsub=0]'
+ -- MGL command: hist res dat wdat `num v1 v2 [nsub=0]'
+     Creates NUM-th points distribution RES of the data values of DAT
+     in range [V1, V2]. Array WDAT specifies weights of the data
+     elements (all weight is 1 if WDAT is not specified). Parameter
+     NSUB define the number of additional interpolated points (for
+     smoothness of histogram).
+
+ -- MGL command: hist res xdat adat
+ -- MGL command: hist res xdat ydat adat
+ -- MGL command: hist res xdat ydat zdat adat
+     Creates distribution RES of the data values of ADAT in axis range
+     [Min, Max]. Array ADAT look like weights of the data points.
+
+ -- MGL command: momentum res dat 'how' ['dir'='z']
+     Get momentum (1D-array) of the data along direction DIR. String
+     HOW contain kind of momentum. The momentum is defined like as
+     res_k = \sum_ij how(x_i,y_j,z_k) a_ij/ \sum_ij a_ij if VAR=`z' and
+     so on. Coordinates `x', `y', `z' are data indexes normalized in
+     range [0,1].
+
+ -- MGL command: sum res dat 'dir'
+     Gets array which is the result of summation in given direction or
+     direction(s).
+   
+ -- MGL command: max res dat 'dir'
+     Gets array which is the maximal data values in given direction or
+     direction(s).
+   
+ -- MGL command: min res dat 'dir'
+     Gets array which is the minimal data values in given direction or
+     direction(s).
+
+ -- MGL command: resize res dat `mx [my=1 mz=1]'
+     Makes array RES of sizes MX, MY, MZ with interpolated data of
+     array DAT.
+
+ -- MGL command: subdata res dat `xx [yy=: zz=:]'
+     Extracts sub-array data RES from the original data DAT array
+     keeping fixed positive index. For example `subdata a b : 2'
+     extracts 3d row (indexes are zero based), `subdata a b 4 :'
+     extracts 5th column, `subdata a b : : 3' extracts 4th slice and so
+     on. Note that symbol `:' is defined `:'=`-1' in MGL.
+
+ -- MGL command: trace res dat
+     Gets array of diagonal elements DAT[i,i] (for 2D case) or
+     DAT[i,i,i] (for 3D case) where i=0...nx-1. Function return copy of
+     DAT for 1D case. Data array must have dimensions DAT.ny, DAT.nz >=
+     DAT.nx or DAT.ny, DAT.nz = 1.
+
+ -- MGL command: transform dat 'type' real imag
+     Do integral transformation of complex data REAL, IMAG on specified
+     direction. The order of transformations is specified in string
+     TYPE: first character for x-dimension, second one for y-dimension,
+     third one for z-dimension. The possible character are: `f' is
+     forward Fourier transformation, `i' is inverse Fourier
+     transformation, `s' is Sine transform, `c' is Cosine transform,
+     `h' is Hankel transform, `n' or ` ' is no transformation.
+
+ -- MGL command: transforma dat 'type' ampl phase
+     The same as previous but with specified amplitude AMPL and phase
+     PHASE of complex numbers.
+
+ -- MGL command: stfad res real imag `dn' ['dir'='x']
+     Short time Fourier transformation for real and imaginary parts.
+     Output  is amplitude of partial Fourier of length DN. For example
+     if DIR=`x', result will have size {int(nx/dn), dn, ny} and it will
+     contain res[i,j,k]=|\sum_d^dn
+     exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn.
+
+ -- MGL command: pde res 'ham' ini_re ini_im [`dz=0.1 k0=100']
+     Solves equation du/dz = i*k0*HAM(p,q,x,y,z,|u|)[u], where
+     p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators.
+     Parameters INI_RE, INI_IM specify real and imaginary part of
+     initial field distribution. Coordinates of the equation (and the
+     solution) are supposed to be in the bounding box. Note, that
+     really this ranges are increased by factor 3/2 for purpose of
+     reducing reflection from boundaries. Parameter DZ set the step
+     along evolutionary coordinate z. At this moment, simplified form
+     of function HAM is supported - all "mixed" terms (like
+     `x*p'->x*d/dx) are excluded. For example, in 2D case this function
+     is effectively ham = f(p,z) + g(x,z,u). However commutable
+     combinations (like `x*q'->x*d/dy) are allowed. Here variable `u'
+     is used for field amplitude |u|. This allow one solve nonlinear
+     problems - for example, for non-linear Shrodinger equation you may
+     set `ham='p^2+q^2-u^2''. You may specify imaginary part for wave
+     absorption, like `ham = 'p^2+i*x*(x>0)'', but only if dependence
+     on variable `i' is linear (i.e. ham = hre+i*him). *Note PDE
+     sample::, for sample code and picture.
+
+ -- MGL command: ray res 'ham' `x0 y0 z0 p0 q0 v0 [dt=0.1 tmax=10]'
+     Solves GO ray equation like d_r_/dt = d HAM/d_p_, d_p_/dt = -d
+     HAM/d_r_. This is Hamiltonian equations for particle trajectory in
+     3D case. Here HAM is Hamiltonian which may depend on coordiantes
+     `x', `y', `z', momentums `p'=px, `q'=py, `v'=pz and time `t': ham
+     = H(x,y,z,p,q,v,t). The starting point (at `t=0') is defined by
+     variables {X0, Y0, Z0, P0, Q0, V0}. Parameters DT and TMAX specify
+     the integration step and maximal time for ray tracing. Result is
+     array of {x,y,z,p,q,v,t} with dimensions {7 * int(TMAX/DT+1) }.
+     See also *note pde::. *Note Beam tracing sample::, for sample code
+     and picture.
+
+ -- MGL command: qo2d res 'ham' ini_re ini_im ray [`r=1 k0=100' xx=0
+          yy=0]
+     Solves equation du/dt = i*k0*HAM(p,q,x,y,|u|)[u], where
+     p=-i/k0*d/dx, q=-i/k0*d/dy are pseudo-differential operators.
+     Parameters INI_RE, INI_IM specify real and imaginary part of
+     initial field distribution. Parameters RAY set the reference ray,
+     i.e. the ray around which the accompanied coordinate system will
+     be maked. You may use, for example, the array created by *note
+     ray:: function. Note, that the reference ray *must be* smooth
+     enough to make accompanied coodrinates unambiguity. Otherwise
+     errors in the solution may appear. If XX and YY are non-zero then
+     Cartesian coordinates for each point will be written into them.
+     *Note Beam tracing sample::, for sample code and picture.
+
+ -- MGL command: jacobian res xdat ydat [zdat=0]
+     Computates the Jacobian for transformation {i,j,k} to
+     {XDAT,YDAT,ZDAT} where initial coordinates  {i,j,k} are data
+     indexes normalized in range [0,1]. The Jacobian is determined by
+     formula det||dr_\alpha/d\xi_\beta|| where r={XDAT,YDAT,ZDAT} and \
+     xi={i,j,k}. All dimensions must be the same for all data arrays.
+     Data must be 3D if all 3 arrays {XDAT,YDAT,ZDAT} are specified or
+     2D if only 2 arrays {XDAT,YDAT} are specified.
+
+
+File: mgl_en.info,  Node: Change data,  Next: Operators,  Prev: Make another data,  Up: MGL interface
+
+1.22 Change data
+================
+
+These commands change the data in some direction like differentiations,
+integrations and so on. The direction in which the change will applied
+is specified by the string parameter, which may contain `x', `y' or `z'
+characters for 1-st, 2-nd and 3-d dimension correspondingly.
+
+ -- MGL command: cumsum dat 'dir'
+     Cumulative summation of the data in given direction or directions.
+   
+ -- MGL command: integrate dat 'dir'
+     Integrates (like cumulative summation) the data in given direction
+     or directions.
+   
+ -- MGL command: diff dat 'dir'
+     Differentiates the data in given direction or directions.
+
+ -- MGL command: diff dat xdat ydat [zdat=0]
+     Differentiates the data DAT specified parametrically in direction
+     XDAT with YDAT, ZDAT=constant. Parameter ZDAT can be omitted that
+     correspond to 2D case. Parametrical differentiation uses the
+     formula (for 2D case): da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j)
+     where a_i=da/di, a_j=da/dj denotes usual differentiation along 1st
+     and 2nd dimensions. The similar formula is used for 3D case. Note,
+     that you may change the order of arguments - for example, if you
+     have 2D data a(i,j) which depend on coordinates {x(i,j), y(i,j)}
+     then usual derivative along `x' will be `diff a x y' and usual
+     derivative along `y' will be `diff a y x'.
+
+ -- MGL command: diff2 dat 'dir'
+     Double-differentiates (like Laplace operator) the data in given
+     direction.
+
+ -- MGL command: sinfft dat 'dir'
+     Do Sine transform of the data in given direction or directions.
+     The Sine transform is \sum a_i \sin(k i).
+   
+ -- MGL command: cosfft dat 'dir'
+     Do Cosine transform of the data in given direction or directions.
+     The Cosine transform is \sum a_i \cos(k i).
+   
+ -- MGL command: hankel dat 'dir'
+     Do Hankel transform of the data in given direction or directions.
+     The Hankel transform is \sum a_i J_0(k i).
+
+ -- MGL command: swap dat 'dir'
+     Swaps the left and right part of the data in given direction
+     (useful for Fourier spectrum).
+   
+ -- MGL command: roll dat 'dir' num
+     Rolls the data along direction 'dir'. Resulting array will be
+     out[i] = ini[(i+num)%nx] if `dir='x''.
+
+ -- MGL command: mirror dat 'dir'
+     Mirror the left-to-right part of the data in given direction.
+     Looks like change the value index I->N-I.
+
+ -- MGL command: sew dat ['dir'='xyz' `da=2*pi']
+     Remove value steps (like phase jumps after inverse trigonometric
+     commands) with period DA in given direction.
+   
+ -- MGL command: smooth data `type' ['dir'='xyz']
+     Smooths the data on specified direction or directions by method
+     TYPE. Now 4 methods are supported: `0' does nothing, `1' linear
+     averaging by 3 points, `2' linear averaging by 5 points, `3'
+     quadratic averaging by 5 points.
+
+ -- MGL command: envelop dat ['dir'='x']
+     Find envelop for data values along direction DIR. Only one
+     direction can be specified at once.
+
+ -- MGL command: normsl dat `v1 v2' ['dir'='z' `keep=on sym=off']
+     Normalizes data slice-by-slice along direction DIR the data in
+     slices to range [V1,V2]. If flag SYM=`on' then symmetrical
+     interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used. If KEEP is set
+     then maximal value of k-th slice will be limited by \sqrt{\sum
+     a_ij(k)/\sum a_ij(0)}.
+
+ -- MGL command: norm dat `v1 v2 [sym=off dim=0]'
+     Normalizes the data to range [V1,V2]. If flag SYM=`on' then
+     symmetrical interval [-max(|v1|,|v2|), max(|v1|,|v2|)] is used.
+     Modification will be applied only for slices >=DIM.
+
+
+File: mgl_en.info,  Node: Operators,  Next: Program flow,  Prev: Change data,  Up: MGL interface
+
+1.23 Operators
+==============
+
+ -- MGL command: multo dat dat2
+     Multiplies the data by the other one for each element.
+
+ -- MGL command: multo dat `val'
+     Multiplies each element by the number.
+
+ -- MGL command: divto dat dat2
+     Divides the data by the other one for each element.
+
+ -- MGL command: divto dat `val'
+     Divides each element by the number.
+
+ -- MGL command: addto dat dat2
+     Adds the other data.
+
+ -- MGL command: addto dat `val'
+     Adds the number to each element.
+
+ -- MGL command: subto dat dat2
+     Subtracts the other data.
+
+ -- MGL command: subto dat `val'
+     Subtracts the number to each element.
+
+
+File: mgl_en.info,  Node: Program flow,  Next: Command options,  Prev: Operators,  Up: MGL interface
+
+1.24 Program flow
+=================
+
+These commands control program flow, like, conditions, cycles, define
+script arguments and so on.
+
+ -- MGL command: chdir 'path'
+     Changes the current directory to PATH.
+
+ -- MGL command: define $N smth
+     Sets N-th script argument to SMTH. Note, that SMTH is used as is
+     (with `'' symbols if present). Here N is digit (0...9) or alpha
+     (a...z).
+
+ -- MGL command: define name smth
+     Create scalar variable `name' which have the numeric value of
+     `smth'. Later you can use this variable as usual number. Here N is
+     digit (0...9) or alpha (a...z).
+   
+ -- MGL command: defchr $N smth
+     Sets N-th script argument to character with value evaluated from
+     SMTH. Here N is digit (0...9) or alpha (a...z).
+   
+ -- MGL command: defnum $N smth
+     Sets N-th script argument to number with value evaluated from
+     SMTH. Here N is digit (0...9) or alpha (a...z).
+   
+ -- MGL command: defpal $N smth
+     Sets N-th script argument to palette character at position
+     evaluated from SMTH. Here N is digit (0...9) or alpha (a...z).
+
+ -- MGL command: call 'fname' [ARG1 ARG2 ... ARG9]
+     Executes function FNAME (or script if function is not found).
+     Optional arguments will be passed to functions. See also *note
+     func::.
+   
+ -- MGL command: func 'fname' [narg=0]
+     Define the function FNAME and number of required arguments. The
+     arguments will be placed in script parameters $1, $2, ... $9.
+     Note, you should stop script execution before function
+     definition(s) by command *note stop::. See also *note return::.
+   
+ -- MGL command: return
+     Return from the function. See also *note func::.
+
+ -- MGL command: if dat 'cond'
+     Starts block which will be executed if DAT satisfy to COND.
+
+ -- MGL command: if `val'
+     Starts block which will be executed if `val' is nonzero.
+   
+ -- MGL command: elseif dat 'cond'
+     Starts block which will be executed if previous `if' or `elseif'
+     is false and DAT satisfy to COND.
+
+ -- MGL command: elseif `val'
+     Starts block which will be executed if previous `if' or `elseif'
+     is false and `val' is nonzero.
+   
+ -- MGL command: else
+     Starts block which will be executed if previous `if' or `elseif'
+     is false.
+   
+ -- MGL command: endif
+     Finishes `if/elseif/else' block.
+
+ -- MGL command: for $N `v1 v2 [dv=1]'
+     Starts cycle with $N-th argument changing from V1 to V2 with the
+     step DV. Here N is digit (0...9) or alpha (a...z).
+
+ -- MGL command: for $N dat
+     Starts cycle with $N-th argument changing for DAT values. Here N
+     is digit (0...9) or alpha (a...z).
+   
+ -- MGL command: next
+     Finishes `for' cycle.
+
+ -- MGL command: once `val'
+     The code between `once on' and `once off' will be executed only
+     once. Useful for large data manipulation in programs like UDAV.
+   
+ -- MGL command: stop
+     Terminate execution.
+
+
+File: mgl_en.info,  Node: Command options,  Next: Suffixes,  Prev: Program flow,  Up: MGL interface
+
+1.25 Command options
+====================
+
+Command options allow the easy setup of the plot by changing of global
+settings only for this plot. Options are specified at the end of
+string. Each option is separated from the previous text by symbol `;'.
+Options work so that them remember the current settings, change
+settings as it being set in the option, execute command and return the
+original settings back. So, the options usage for data handling
+commands or for graphics setup commands is useless.
+
+   The most useful options are `xrange, yrange, zrange'. They sets the
+boundaries for data change. This boundaries are used for automatically
+filled variables. So, these options allow one to change the position of
+some plots. For example, in command `plot y; xrange 0.1 0.9' the x
+coordinate will be equidistantly distributed in range 0.1 ... 0.9.
+
+   The full list of options are: 
+
+ -- MGL option: alpha `val'
+ -- MGL option: alphadef `val'
+     Sets alpha value (transparency) of the plot. The value should be
+     in range [0, 1]. See also *note alphadef::.
+   
+ -- MGL option: ambient `val'
+     Sets brightness of ambient light for the plot. The value should be
+     in range [0, 1]. See also *note ambient::.
+   
+ -- MGL option: crange `val1 val2'
+     Sets boundaries of color change for the plot. See also *note
+     crange::.
+   
+ -- MGL option: xrange `val1 val2'
+     Sets boundaries of x coordinate change for the plot. See also
+     *note xrange::.
+   
+ -- MGL option: yrange `val1 val2'
+     Sets boundaries of y coordinate change for the plot. See also
+     *note yrange::.
+   
+ -- MGL option: zrange `val1 val2'
+     Sets boundaries of z coordinate change for the plot. See also
+     *note zrange::.
+   
+ -- MGL option: cut `val'
+     Sets whether to cut or to project the plot points lying outside
+     the bounding box. See also *note cut::.
+   
+ -- MGL option: fontsize `val'
+     Sets the size of text. See also *note font::.
+   
+ -- MGL option: marksize `val'
+     Sets the size of marks. See also *note marksize::.
+   
+ -- MGL option: meshnum `val'
+     Work like *note meshnum:: command.
+   
+ -- MGL option: legend 'txt'
+     Adds string 'txt' to internal legend accumulator. The style of
+     described line and mark is taken from arguments of the last *note
+     1D plotting:: command. See also *note legend::.
+
+
+File: mgl_en.info,  Node: Suffixes,  Next: Utilities,  Prev: Command options,  Up: MGL interface
+
+1.26 Suffixes for variable
+==========================
+
+Suffixes can get some numerical value (like its size, maximal or
+minimal value, the sum of elements and so on) of the data array in
+variable and use it later as usual number in command arguments. The
+suffixes start from point `.' right after (without spaces) variable
+name or its sub-array. For example, `a.nx' give the x-size of data A,
+`b(1).max' give maximal value of second row of variable B,
+`(c(:,0)^2).sum' give the sum of squares of elements in the first
+column of C and so on.
+
+   The full list of suffixes are:
+*nx, ny, nz*
+     Give the data size in x-, y-, z-direction correspondingly.
+
+*max*
+     Give maximal value of the data.
+
+*min*
+     Give minimal value of the data.
+
+*sum*
+     Give sum of data values.
+
+*a*
+     Give first value of data array.
+
+*fst*
+     Give first nonzero value of data array.
+
+*lst*
+     Give last nonzero value of data array.
+
+*mx, my, mz*
+     Give x-, y-, z-position of data maximum.
+
+*ax, ay, az, aa*
+     Give x-, y-, z-position of data mass center or average data value.
+
+*wx, wy, wz, wa*
+     Give width in x-, y-, z-direction or data dispersion value.
+
+*sx, sy, sz, sa*
+     Give skewness in x-, y-, z-direction or data skewness value.
+
+*kx, ky, kz, ka*
+     Give kurtosis in x-, y-, z-direction or data kurtosis value.
+
+
+File: mgl_en.info,  Node: Utilities,  Prev: Suffixes,  Up: MGL interface
+
+1.27 Utilities for parsing MGL
+==============================
+
+MathGL library provides several tools for parsing MGL scripts. There is
+tools saving it to bitmap (`mgl2png', `mgl2gif') or vectorial
+(`mgl2eps', `mgl2svg') images. Tool `mglview' show MGL script and allow
+to rotate and setup the image. Also you can translate MGL script to C++
+file by help of `mgl2cpp' tool.
+
+   All of this tools have similar set of arguments. First argument is
+name of script file, next argument is optional output file name, last
+arguments are options. There are options for setting script parameters
+(it is `$0, $1, ... $9') and locale settings. The script parameters
+have format `-Nval'. Here N=0,1...9 is parameter ID and val is its
+value. For example, option `-1test' set to substitute `test' instead of
+`$1' in the script. Option -Lval set locale to val. For example,
+`-Lutf8' will set UTF-8 locale for script.
+
+   Additionally you can create animated GIF file or a set of JPEG files
+with names `frameNNNN.jpg' (here `NNNN' is frame index). You should use
+`mgl2gif' tool and specify the values of `$0' parameter for making
+animation. Values of the parameter `$0' can be specified inside the
+script by comment `##a val' for each value `val' (one comment for one
+value) or by option(s) `-Aval'. Also you can specify a cycle for
+animation by comment `##c v1 v2 dv' or by option `-Cn1:n2'. Tool
+`mgl2gif' will execute script several times (once for each specified
+value of `$0') and save result in animated GIF file. For saving each
+frame in JPEG just add command `write ''' at the end of the script.
+
+
+File: mgl_en.info,  Node: Examples,  Next: Samples,  Prev: MGL interface,  Up: Top
+
+2 MathGL examples
+*****************
+
+This chapter contain information about basic and advanced MathGL, hints
+and samples for all types of graphics. I recommend you read first 2
+sections one after another and at least look on "Hints" section. Also I
+recommend you to look at *note General concepts::. Sample code for some
+of these examples can be found in `http://mathgl.sf.net/pictures.html'
+and in *note Samples::.
+
+* Menu:
+
+* Basic usage::
+* Advanced usage::
+* Data handling::
+* Data plotting::
+* Hints::
+
+
+File: mgl_en.info,  Node: Basic usage,  Next: Advanced usage,  Up: Examples
+
+2.1 Basic usage
+===============
+
+MGL script can be used by several manners. Each has positive and
+negative sides:
+   * _The using of MGL in UDAV._
+
+     Positive side is the possibility to view the plot at once and to
+     modify it, rotate, zoom or switch on transparency or lighting) by
+     hand or by mouse. Negative sides are: the need of X-terminal.
+
+   * _Direct writing to file in bitmap or vector format without
+     creation of graphical window._
+
+     Positive aspects are: batch processing of similar data set, for
+     example, a set of resulting data files for different calculation
+     parameters), running from the console program, including the
+     cluster calculation), fast and automated drawing, saving pictures
+     for further analysis, or demonstration). Negative sides are: the
+     usage of the external program for picture viewing. Also, the data
+     plotting is non-visual. So, you have to imagine the picture, view
+     angles, lighting and so on) before the plotting. I recommend to
+     use graphical window for determining the optimal parameters of
+     plotting on the base of some typical data set. And later use these
+     parameters for batch processing in console program.
+
+     In this case you can use a set of programs: `mgl2png', `mgl2gif',
+     `mgl2eps', `mgl2svg' or `mglview' for viewing.
+
+   The simplest script is
+box         # draw bounding box
+axis        # draw axis
+fplot 'x^3' # draw some function
+
+   Just type it in UDAV and press F5. Also you can save it in text file
+`test.mgl' and type in the console `mgl2png test.mgl' what produce file
+`test.mgl.png' with resulting picture.
+
+
+File: mgl_en.info,  Node: Advanced usage,  Next: Data handling,  Prev: Basic usage,  Up: Examples
+
+2.2 Advanced usage
+==================
+
+Now I show several non-obvious features of MGL: several subplots in a
+single picture, curvilinear coordinates, text printing and so on.
+Generally you may miss this section at first reading, but I don't
+recommend it.
+
+* Menu:
+
+* Subplots::
+* Axis and grids::
+* Curvilinear coordinates::
+* Text printing example::
+
+
+File: mgl_en.info,  Node: Subplots,  Next: Axis and grids,  Up: Advanced usage
+
+2.2.1 Subplots
+--------------
+
+Let me demonstrate possibilities of axes transformation. MathGL has the
+following functions: `SubPlot', `InPlot', `Aspect' and `Rotate', *note
+Transformation matrix::). The order of their calling is strictly
+determined. First, one changes the position of axes in image area,
+functions `SubPlot' and `InPlot'). After that one may rotate the plot,
+function `Rotate'). Finally, one may change aspects of axes, function
+`Aspect'). The following code illustrates the aforesaid it:
+subplot 2 2 0:box
+text -1 1.1 'Just box' 'L'
+inplot 0.2 0.5 0.7 1:box
+text 0 1.2 'Inplot example'
+
+subplot 2 2 1
+rotate 60 40:aspect 1 1 1
+box:text 1 1 1.5 'rotate only' 'R'
+
+subplot 2 2 2
+rotate 60 40:aspect 1 1 2
+box:text 0 0 2 'aspect and rotate'
+
+subplot 2 2 3
+rotate 60 40:aspect 1 2 2
+box:text 0 0 1.5 'Aspect in other direction'
+ Here I used function `text' for printing the text in arbitrary
+position of picture, *note Text printing::). Text coordinates and size
+are connected with axes. However, text coordinates may be everywhere,
+including the outside the bounding box. I shall show its features later
+in *Note Text printing example::.
+
+   Note that several commands can be placed in a string if they are
+separated by `:' symbol.
+
+ [image src="../png/sample1.png" ]
+
+Example of several subplots on the single picture.
+
+
+File: mgl_en.info,  Node: Axis and grids,  Next: Curvilinear coordinates,  Prev: Subplots,  Up: Advanced usage
+
+2.2.2 Axis and grids
+--------------------
+
+MathGL library can draw not only the bounding box but also the axes,
+grids, labels and so on. The limits of axes and their origin (the point
+of intersection) are determined by function `axis'. Also you can use
+`xrange, yrange, zrange' functions (*note Axis settings::). Ticks on
+axis are specified by functions `xtick, ytick, ztick, ttick'. First
+argument the direction for each change will be applied. Second argument
+gives the step between ticks (if positive) or gives the number of ticks
+on the axis (if negative) or set to use logarithmic ticks (if zero).
+Third argument gives numbers of sub-ticks between ticks (default is
+zero). Last argument define the initial ticks position.
+
+   Function `Axis' draws axes. Its textual string shows in which
+directions the axis or axes will be drawn (by default `'xyz'', function
+draws axes in all directions). Function `Grid' draws grid
+perpendicularly to specified directions. Example of axes and grid
+drawing is:
+subplot 2 2 0
+xtick 0.4 3     # sets tick step to 0.5
+ytick 0.4 3     # and draws 3 subticks
+box             # should be after the ticks change
+axis 'xy': grid
+text 0 1.3 1 'axis and grid'
+
+xtick -5: ytick -5  # restore back
+subplot 2 2 1:rotate 60 40
+origin 0 0 0
+axis
+xlabel 'x' 1
+ylabel 'y' 1
+zlabel 'z' 1
+text 0 0 1.5 'axis and labels'
+
+subplot 2 2 2:rotate 60 40
+xtick 0.2: ytick 0.2: ztick 0.2 # too low step of ticks
+origin -1 -1 -1
+axis:grid
+text 0 0 1.5 'shift origin and add grid'
+text 0 0 1.2 '(note, too many ticks)'
+
+subplot 2 2 3:rotate 60 40
+xtick -6: ytick -6  # decrease the number of ticks
+axis 'yz'
+ylabel 'y axis'
+zlabel 'z axis'
+text 0 0 1.5 'remove x axis, and'
+text 0 0 1.2 'decrease number of ticks'
+
+   This example shows the importance of the correct choosing of the
+number of ticks on axis. If tick step is too small then its text may
+overlap and becomes unreadable. This code has the example of `Label'
+function. It draws label for axis in specified direction. The text
+position on axis is specified by third argument of `Label' function. If
+it is positive then then text is drawn near the axis maximum, if
+negative then the same takes place near the minimum of axis, if zero -
+then at the center of axis.
+
+ [image src="../png/sample2.png" ]
+
+Example of setting up axis range and axis ticks.
+
+
+File: mgl_en.info,  Node: Curvilinear coordinates,  Next: Text printing example,  Prev: Axis and grids,  Up: Advanced usage
+
+2.2.3 Curvilinear coordinates
+-----------------------------
+
+Now let use curvilinear coordinates. In difference from other systems
+of plot creation, MathGL uses textual formulas for connection of the
+old (data) and new (output) coordinates. This allows one to plot in
+arbitrary coordinates. The following code plots the line Y=0, Z=0 in
+Cartesian, polar, parabolic and spiral coordinates:
+new x 50: new y 50: new z 50
+fill y 0.5 0.5: fill x -1 1 # creates data arrays
+origin -1 1 -1
+
+subplot 2 2 0:rotate 60 40
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'cartesian'
+
+subplot 2 2 1:rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'cylindrical'
+
+subplot 2 2 2:rotate 60 40
+axis '2*y*x' 'y*y - x*x' ''
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'parabolic'
+
+subplot 2 2 3:rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'spiral'
+
+ [image src="../png/sample3.png" ]
+
+Example of curvilinear coordinates
+
+
+File: mgl_en.info,  Node: Text printing example,  Prev: Curvilinear coordinates,  Up: Advanced usage
+
+2.2.4 Text printing example
+---------------------------
+
+MathGL prints text by vector font. There are functions for manual
+specifying of text position (like `Puts') and for its automatic
+selection (like `Label', `legend' and so on). MathGL prints text always
+in specified position even if it lies outside the bounding box. The
+default size of font is specified by command FONTSIZE. However, the
+actual size of output string depends on position of axes (depends on
+functions `SubPlot', `InPlot'). The switching of the font style
+(italic, bold, wire and so on) can be done for the whole string (by
+function parameter) or inside the string. By default MathGL parses
+TeX-like commands for symbols and indexes (see *note Font styles::).
+Example of MathGL font drawing is:
+text 0 1 'Text can be in ASCII and in Unicode'
+text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
+text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
+text 0 -0.2 'Easy to \a{overline} or \u{underline}'
+text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
+text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
+
+ [image src="../png/sample4.png" ]
+
+Example of text printing with different font effects
+
+   Another example demonstrate the features of TeX formula parsing.
+text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}', 0, -4
+
+ [image src="../png/samplee.png" ]
+
+Example of TeX formula parsing
+
+
+File: mgl_en.info,  Node: Data handling,  Next: Data plotting,  Prev: Advanced usage,  Up: Examples
+
+2.3 Data handling
+=================
+
+* Menu:
+
+* Array creation::
+* Data changing::
+
+
+File: mgl_en.info,  Node: Array creation,  Next: Data changing,  Up: Data handling
+
+2.3.1 Array creation
+--------------------
+
+One can put numbers into the data instance by several ways. Let us do
+it for sinus function:
+   * one can create array by `list' command list a 0 0.04 0.16 0.36 0.64 1
+
+   * another way is to copy from "inline" array copy a [0,0.04,0.16,0.36,0.64,1]
+
+   * next way is to fill the data by textual formula with the help of
+     `modify' function new a 6
+     modify a 'x^2'
+
+   * or one may fill the array in some interval and modify it later new a 6
+     fill a 0 1
+     modify a 'u^2'
+
+   * or fill the array using current axis range new a 6
+     fill a '(x+1)^2/4'
+
+   * finally it can be loaded from file new s 6: modify s 'x^2'
+     save s 'sqr.dat'    # create file first
+     read a 'sqr.dat'    # load it
+
+   * at this one can read only part of data new s 6: modify s 'x^2'
+     save s 'sqr.dat'    # create file first
+     read a 'sqr.dat' 5  # load it
+
+   Creation of 2d- and 3d-arrays is mostly the same. One can use direct
+data filling by `list' command
+list a 11 12 13 | 21 22 23 | 31 32 33
+ or by inline arrays
+copy a [[11,12,13],[21,22,23],[31,32,33]]
+ Also data can be filled by formula
+new z 30 40
+fill z 'sin(pi*x)*cos(pi*y)'
+ or loaded from file.
+
+   The only non-obvious thing here is using multidimensional arrays in
+C/C++, i.e. arrays defined like `float dat[40][30];'. Since, formaly
+this arrays element `dat[i]' can address the memory in arbitrary place
+you should use the proper function to convert such arrays to `mglData'
+object. For C++ this is functions like `mglData::Set(float **dat, int
+N1, int N2'. For C this is functions like `mgl_data_set_float2(HMDT d,
+const float **dat, int N1, int N2'. At this, you should keep in mind
+that `nx=N2' and `ny=N1' after conversion.
+
+
+File: mgl_en.info,  Node: Data changing,  Prev: Array creation,  Up: Data handling
+
+2.3.2 Data changing
+-------------------
+
+MathGL has functions for data processing: differentiating, integrating,
+smoothing and so on. Let us consider some examples. The simplest ones
+are integration and differentiation. The direction in which operation
+will be performed is specified by textual string, which may contain
+symbols `x', `y' or `z'. For example, the call of `diff a 'x'' will
+differentiate data along `x' direction; the call of `integrate a 'xy''
+perform the double integration of data along `x' and `y' directions;
+the call of `diff2 a 'xyz'' will apply 3d Laplace operator to data and
+so on. Example of this operations on 2d array a=x*y is presented in
+code:
+new a 30 40: modify a 'x*y'
+axis 0 0 0 1 1 1
+subplot 2 2 0:rotate 60 40
+surf a: box
+text 0.7 1 1.2 'a(x,y)'
+subplot 2 2 1:rotate 60 40
+diff a 'x': surf a: box
+text 0.7 1 1.2 'da/dx'
+subplot 2 2 2:rotate 60 40
+integrate a 'xy': surf a: box
+text 0.7 1 1.2 '\int da/dx dxdy'
+subplot 2 2 3:rotate 60 40
+diff2 a 'y': surf a: box
+text 0.7 1 1.2 '\int {d^2}a/dxdy dx'
+
+ [image src="../png/sample6.png" ]
+
+Example of data differentiation and integration
+
+   Data smoothing (function `Smooth') is more interesting and
+important. This function has 2 main arguments: type of smoothing and
+its direction. Now 4 methods are supported: `0' does nothing for
+delta=0 or approaches data to zero with the step delta, `1' linear
+averaging by 3 points, `2' linear averaging by 5 points, `3' quadratic
+averaging by 5 points. Let me demonstrate it for 1d case:
+new y0 30
+modify y0 '0.4*sin(2*pi*x)+0.3*cos(3*pi*x)-0.4*sin(4*pi*x)+0.2*rnd'
+copy y1 y0: smooth y1 1
+copy y2 y0: smooth y2 2
+copy y3 y0: smooth y3 3
+
+plot y0 'k': addlegend 'none' 'k'
+plot y1 'r': addlegend 'line 3' 'r'
+plot y2 'g': addlegend 'line 5' 'g'
+plot y3 'b': addlegend 'quad 5' 'b'
+legend: box
+
+ [image src="../png/sample7.png" ]
+
+Example of data smoothing
+
+   Finally one can create new data arrays on base of the existing one:
+extract slice, row or column of data (`SubData'), summarize along some
+of direction(s) (`Sum'), find distribution of data elements (`Hist').
+Note, that all these functions are not thread-safe because they use
+static internal variable for output array. In particular, the using of
+several of them in arguments of the same function will lead to
+unpredictable result.
+
+
+File: mgl_en.info,  Node: Data plotting,  Next: Hints,  Prev: Data handling,  Up: Examples
+
+2.4 Data plotting
+=================
+
+Let me now show how to plot the data. MathGL generally has 2 types of
+plotting functions. Simple variant requires a single data array for
+plotting, other data (coordinates) are considered uniformly distributed
+in interval MIN*MAX. Second variant requires data arrays for all
+coordinates. It allows one to plot rather complex multivalent curves
+and surfaces (in case of parametric dependencies). Argument setting to
+default values allows one to plot data in standard form. Manual
+arguments setting gives possibility for fine tuning of colors,
+positions and view of graphics. Note, that the call of drawing function
+adds something to picture but does not clear the previous plots (as it
+does in Matlab). Another difference from Matlab is that all setup (like
+transparency, lightning, axis borders and so on) must be specified
+*before* plotting functions.
+
+* Menu:
+
+* Plots for 1D data::
+* Plots for 2D data::
+* Plots for 3D data::
+* Surface transparency::
+
+
+File: mgl_en.info,  Node: Plots for 1D data,  Next: Plots for 2D data,  Up: Data plotting
+
+2.4.1 Plots for 1D data
+-----------------------
+
+Term "1D data" means that data depend on single index (parameter) like
+curve in parametric form {x(i),y(i),z(i)}, i=1...n. There are 5
+generally different types of data representations: simple line plot,
+line plot with filling under it, stairs plot, bar plot and vertical
+lines (*note 1D plotting::). Each type of plotting has similar
+interface. There are 3D version and two 2D versions. One of last
+requires single array. The parameters of line and marks (*note Line
+styles::) are specified by the string argument. If the string parameter
+is `NULL' then solid line with color from palette is used.
+
+   Below I shall show the features of 1D plotting on base of `plot'
+function (*note 1D plotting::). Let us start from sinus plot:
+new y0 50: modify y0 'sin(pi*(2*x-1))'
+subplot 2 2 0
+plot y0: box
+ Style of line is not specified in `plot' function. So MathGL uses the
+solid line with first color of palette (this is blue). Next subplot
+shows array Y1 with 2 rows:
+subplot 2 2 1
+new y1 50 2
+modify y1 'sin(pi*2*x-pi)'
+modify y1 'cos(pi*2*x-pi)/2' 1
+plot y1: box
+ As previously I did not specify the style of lines. As a result,
+MathGL again uses solid line with next colors in palette (there are
+green and red). Now let us plot a circle on the same subplot. The
+circle is parametric curve x=cos(\pi t), y=sin(\pi t). I will set the
+color of the circle (dark yellow, `Y') and put marks `+' at point
+position:
+new x 50: modify x 'cos(pi*2*x-pi)'
+plot x y0 'Y+'
+ Note that solid line is used because I did not specify the type of
+line. The same picture can be achieved by `Plot2' function. Let us draw
+ellipse by orange dash line:
+plot y1(:,0) y(:,1) 'q|'
+
+   Drawing in 3D space is mostly the same. Let us draw spiral with
+default line style. Now its color is 4-th color from palette (this is
+cyan):
+subplot 2 2 2:rotate 60 40
+new z 50: modify z '2*x-1'
+plot x y0 z:box
+ Function `Plot3' does 3D curve plot but for single array. Use it to
+put circle marks on the previous plot:
+new y2 10 3:modify y2 'cos(pi*(2*x-1+y))'
+modify y2 '2*x-1' 2
+plot y2(:,0) y2(:,1) y2(:,2) 'bo '
+ Note that line style is empty ` ' here. Usage of other 1D plotting
+functions looks similar:
+subplot 2 2 3:rotate 60 40
+bars x y0 z 'r':box
+
+ [image src="../png/sample8.png" ]
+
+Example of 1D data plot
+
+
+File: mgl_en.info,  Node: Plots for 2D data,  Next: Plots for 3D data,  Prev: Plots for 1D data,  Up: Data plotting
+
+2.4.2 Plots for 2D data
+-----------------------
+
+Surfaces `Surf' and other 2D plots (*note 2D plotting::) are drown the
+same simpler as 1D one. The difference is that the string parameter
+specifies not by line style but by the color scheme of the plot (*note
+Color scheme::). Here I draw attention on 4 most interesting color
+schemes. There is gray scheme where color is changed from black to
+white (string `kw') or from white to black (string `wk'). Another
+scheme is useful for accentuation of negative (by blue color) and
+positive (by red color) regions on plot (string `'BbwrR''). Last one is
+the popular "jet" scheme (string `'BbcyrR'').
+
+   Now I shall show the example of a surface drawing. At first let us
+switch lightning on
+light on: light 0 0 0 1
+ and draw the surface, considering coordinates x,y to be uniformly
+distributed in interval MIN*MAX
+new a0 50 40
+modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+subplot 2 2 0:rotate 60 40
+surf a0: box
+ Color scheme was not specified. So previous color scheme is used. In
+this case it is default color scheme ("jet") for the first plot. Next
+example is a sphere. The sphere is parametrically specified surface:
+new x 50 40: new y 50 40: new z 50 40
+modify x '0.8*sin(2*pi*x)*sin(pi*y)'
+modify y '0.8*cos(2*pi*x)*sin(pi*y)'
+modify z '0.8*cos(pi*y)'
+subplot 2 2 1:rotate 60 40
+surf x y z 'bbwrr': box
+ I set color scheme to `'BbwrR'' that corresponds to red top and blue
+bottom of the sphere.
+
+   Surfaces will be plotted for each of slice of the data if NZ>1. Next
+example draws surfaces for data arrays with NZ=3:
+new a1 50 40 3
+modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
+subplot 2 2 2:rotate 60 40
+alpha on
+surf a1: box
+ Note, that it may entail a confusion. However, if one will use density
+plot then the picture will look better:
+subplot 2 2 3: rotate 60 40
+dens a1: box
+ Note, that the previous color scheme is used in last plots because
+there are no direct specification of the one.
+
+ [image src="../png/sample9.png" ]
+
+Example of surface plot for 2D data
+
+   Drawing of other 2D plots is analogous. The only peculiarity is the
+usage of flag `#'. By default this flag switches on the drawing of a
+grid on plot (`grid' or `mesh' for plots in plain or in volume).
+However, for isosurfaces (including surfaces of rotation `axial') this
+flag switches the  face drawing off. Figure becomes wired. The
+following code gives example of flag `#' using (compare with normal
+function drawing as in its description):
+alpha on: light on: light 0 0 0 1
+new a 30 20
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+subplot 2 2 0: rotate 40 60
+surf a 'bbcyrr#': box
+subplot 2 2 1: rotate 40 60
+dens a 'bbcyrr#': box
+subplot 2 2 2: rotate 40 60
+cont a 'bbcyrr#': box
+subplot 2 2 3: rotate 40 60
+axial a 'bbcyrr#': box
+
+ [image src="../png/samplea.png" ]
+
+Example of 2D data plot with color scheme contained `#' symbol
+
+
+File: mgl_en.info,  Node: Plots for 3D data,  Next: Surface transparency,  Prev: Plots for 2D data,  Up: Data plotting
+
+2.4.3 Plots for 3D data
+-----------------------
+
+Drawing procedures for 3D plot looks similarly to 1D and 2D plots
+described above. There are 3 general types of 3D plots (*note 3D
+plotting::): (i) plots on slices or on projections, (ii) isosurfaces,
+(iii) cloud-like plots. Plots on slice are clear enough - one specifies
+a slice (as its index or as coordinate value) and MathGL draws contour
+lines or density plot on slice plane. Isosurface gives more
+information. Isosurface is 3D analogue of the contour line `cont'. It
+shows the region where data array values exceed specified isosurface
+level. Plot becomes more informative if one adds transparency,
+lightning or sets color scheme depending on coordinates. Generalization
+of isosurface is the cloud-like plot. For this plot the darker color
+and less transparent regions correspond to higher values of data.
+Contrary, the regions with low values are transparent. For plotting of
+the phase of fields (or beams or pulses) one can use isosurface which
+transparency depends on the other data array (see function `surf3a').
+As example of 3D data plots let us draw the Gaussian beam diffraction
+in space. Beam propagates along X axis:
+alpha on: light on
+light 0 0 0 1
+new a 30 30 30: new b 30 30 30
+modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
+modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
+caxis 0 1
+
+subplot 2 2 0: rotate 40 60
+surf3 a 'wgk': box
+subplot 2 2 1: rotate 40 60
+densa a: box: axis
+subplot 2 2 2: rotate 40 60
+cloud a: box
+subplot 2 2 3: rotate 40 60
+surf3a b a 'q': box
+
+ [image src="../png/sampleb.png" ]
+
+Example of Gaussian beam diffraction (3D data)
+
+
+File: mgl_en.info,  Node: Surface transparency,  Prev: Plots for 3D data,  Up: Data plotting
+
+2.4.4 Surface transparency
+--------------------------
+
+MathGL library has advanced features for setting and handling the
+surface transparency. The simplest way to add transparency is the using
+of function `Alpha'. As a result, all further surfaces (and
+isosurfaces, density plots and so on) become transparent. However,
+their  look can be additionally improved.
+
+   First, the selected surface will be non-transparent if one sets the
+flag `transparent' before the surface drawing and sets it off after the
+drawing.
+
+   Second, the value of transparency can be different from surface to
+surface. To do it just change the value of `alphadef' before the
+drawing of the selected surface. If its value is close to 0 then the
+surface becomes more and more transparent. Contrary, if its value is
+close to 1 then the surface becomes practically non-transparent. This
+is some analogue of `transparent on'.
+
+   Third feature is the changing of the way how the light goes through
+overlapped surfaces. The variable `transptype' defines it. By default
+the usual transparency is used (`transptype 0') - surfaces below is
+less visible than the upper ones. A "glass-like" transparency
+(`transptype 1') has a different look when the surface just decreases
+the background light (the surfaces are commutable in this case).
+
+   A "neon-like" transparency (`transptype 2') has more interesting
+look. In this case a surface is the light source (like a lamp on the
+dark background) and just adds some intensity to the color. At this,
+the library sets automatically the black color for the background and
+changes the default line color to white.
+
+   As example I shall show the variant of plot from *note Plots for 2D
+data:: (grid drawing is disabled) for different types of transparency.
+ [image src="../png/type0.png" ]
+
+Example of `TranspType=0'.
+
+ [image src="../png/type1.png" ]
+
+Example of `TranspType=1'.
+
+ [image src="../png/type2.png" ]
+
+Example of `TranspType=2'.
+
+
+File: mgl_en.info,  Node: Hints,  Prev: Data plotting,  Up: Examples
+
+2.5 Hints
+=========
+
+In this section I have included some small hints and advices for the
+improving of the quality of plots and for the demonstration of some
+non-trivial features of MathGL library. In contrast to previous
+examples I showed mostly the idea but not the whole drawing function.
+More examples with the source code can be find at
+`http://mathgl.sf.net/' or in section *note Samples::.
+
+* Menu:
+
+* ``Compound'' graphics::
+* Two axes in one plot::
+* Titles for the plot::
+* Changing of the color range::
+* Management of a point cutting::
+* Vector field visualization::
+* Several light sources::
+* CutMin and CutMax features::
+* Mapping visualization::
+* Log-scaled plot::
+* Nonlinear fitting hints::
+* PDE solving hints::
+* Stereo image::
+
+
+File: mgl_en.info,  Node: ``Compound'' graphics,  Next: Two axes in one plot,  Up: Hints
+
+2.5.1 "Compound" graphics
+-------------------------
+
+As I noted above, MathGL functions (except the special one, like `clf')
+do  not erase the previous plotting but just add the new one. It allows
+one to draw "compound" plots easily. For example, popular Matlab
+command `surfc' can be emulated in MathGL by 2 calls:
+surf a
+cont a 0 7 -1   # draw contours at z = -1
+ Here A is 2-dimensional data for the plotting, `-1' is the value of
+z-coordinate at which the contour should be plotted (at the bottom in
+this example). Analogously, one can draw density plot instead of
+contour lines and so on.
+
+   Another nice plot is contour lines plotted directly on the surface:
+light on        # switch on light for the surface
+surf a 'bbcyrr' # select 'jet' colormap for the surface
+cont a 'y'      # and yellow color for contours
+ The possible difficulties arise in black&white case, when the color of
+the surface can be close to the color of a contour line. In that case I
+may suggest the following code:
+light on        # switch on light for the surface
+surf a 'kw'     # select 'gray' colormap for the surface
+caxis -1 0      # first draw for darker surface colors
+conta 'w'       # white contours
+caxis 0 1       # now draw for brighter surface colors
+cont a 'k'      # black contours
+ The idea is to divide the color range on 2 parts (dark and bright) and
+to select the contrasting color for contour lines for each of part.
+
+   Similarly, one can plot flow thread over density plot of vector
+field amplitude (this is another amusing plot from Matlab) and so on.
+The list of compound graphics can be prolonged but I hope that the
+general idea is clear.
+
+
+File: mgl_en.info,  Node: Two axes in one plot,  Next: Titles for the plot,  Prev: ``Compound'' graphics,  Up: Hints
+
+2.5.2 Two axes in one plot
+--------------------------
+
+Developing the previous hint one can make a plot with 2 or more axes.
+The idea is that the change of settings does not influence on the
+already drawn graphics. So, for 2-axes plot let us set the first axis
+and draw everything concerning it. Then let us setup the second axis
+and draw things for the second axis. The corresponding code is (*note
+2-axes sample::):
+# set up first axis
+axis -1 -1 1 1: origin -1 -1
+axis:fplot 'sin(pi*x)'      # draw something in first axis
+# set up second axis
+axis 0 0 1 1: origin 1 1
+axis: fplot 'cos(4*pi*x^2)' # draw something in second axis
+ Note, that the first and the second axes look better if being placed
+in different corners. In the code presented above the first axis is
+placed in the left-bottom corner, and the second one is placed in the
+right-top corner.
+
+
+File: mgl_en.info,  Node: Titles for the plot,  Next: Changing of the color range,  Prev: Two axes in one plot,  Up: Hints
+
+2.5.3 Titles for the plot
+-------------------------
+
+The printing of nice titles for the plot is not so trivial task in
+general case. The problem is that the rotation and aspect change lead
+to different looks for titles of different subplots. So, the resulting
+look is not so good as it could be. The solution is simple - to print
+titles exactly after `subplot' call and before any rotation, aspect
+change and so on! Analogously, the title for the whole picture looks
+better if it is printed first (before any `subplot' calls).
+Alternatively you can use function `title' for plotting title for the
+picture at any time.
+
+
+File: mgl_en.info,  Node: Changing of the color range,  Next: Management of a point cutting,  Prev: Titles for the plot,  Up: Hints
+
+2.5.4 Changing of the color range
+---------------------------------
+
+By default (for the user comfort), the color range is set equal to
+z-range of the plot. However, there are different ranges. So, one can
+obtain amusing plot by the change of color range manually. For example,
+there are plots with one-color bottom (or top) or practically bi-color
+picture and so on.
+
+   For example, compare 2 surfaces:
+subplot 2 1 0
+surf a          # usual coloring range
+subplot 2 1 1
+caxis 0 1
+surf a          # bottom of the surface have one-colour filling
+
+
+File: mgl_en.info,  Node: Management of a point cutting,  Next: Vector field visualization,  Prev: Changing of the color range,  Up: Hints
+
+2.5.5 Management of a point cutting
+-----------------------------------
+
+Sometimes an experimental or numerical surface has outstanding points.
+Visualization of such surface will lead to the hole(s) in place of such
+points. The standard method of "fighting" - to change data values - is
+not always good and is not so convenient. MathGL library has another
+method - to set variable `cut off'. As a consequence, all outstanding
+points will be projected on the bounding box.
+
+   Such method is good not only for outstanding points but also for the
+case when one need to plane the bottom or the top of the plot. Exactly
+such case is demonstrated in the code:
+new a 20 30     # create some data
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+# set lower border above the data minimal value
+axis -1 -1 0 1 1 1:rotate 40 60
+cut off         # set off cutting flag
+surf a          # and draw the surface
+ It is an interesting result, is not it?
+
+
+File: mgl_en.info,  Node: Vector field visualization,  Next: Several light sources,  Prev: Management of a point cutting,  Up: Hints
+
+2.5.6 Vector field visualization
+--------------------------------
+
+Vector field visualization (especially in 3d case `vect3' or `vectc')
+may look tangly - there are too many overlapping lines. I may suggest 2
+ways to solve this problem. The first one is to change `meshnum' for
+decreasing the number of hachures. The second way is to use the flow
+thread chart `Flow'. Unfortunately, I don't know any other methods to
+visualize 3d vector field. If you know any, e-mail me and I shall add
+it to MatGL.
+
+
+File: mgl_en.info,  Node: Several light sources,  Next: CutMin and CutMax features,  Prev: Vector field visualization,  Up: Hints
+
+2.5.7 Several light sources
+---------------------------
+
+In contrast to the most of other programs, MathGL supports several (up
+to 10) light sources. Moreover, the color each of them can be
+different: white (this is usual), yellow, red, cyan, green and so on.
+The use of several light sources may be interesting for the
+highlighting of some peculiarities of the plot or just to make an
+amusing picture. Note, each light source can be switched on/off
+individually (*note Several light sample::).
+
+
+File: mgl_en.info,  Node: CutMin and CutMax features,  Next: Mapping visualization,  Prev: Several light sources,  Up: Hints
+
+2.5.8 CutMin and CutMax features
+--------------------------------
+
+MathGL library has a feature for cutting of points in some region
+CUTMIN*CUTMAX. Such an excision can be used to improve the look of the
+graphics. Moreover, this cutting may help to show an internal structure
+of an object (like `isocaps' plot in Matlab). For example, let us use
+the standard 3D data array and show its interior (*note CutMinMax
+sample::).
+
+new c 61 51 40      # create the data
+new v 10: fill v -0.5 1
+modify c '(-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1))'
+cut 0 -1 -1 1 0 1.1
+rotate 40 60:       surf3 c -0.5 'bbcyrr'
+contf3 v c 'x' -1 'bbcyrr': contf3 v c 'y' -1 'bbcyrr'
+contf3 v c 'z' 0 'bbcyrr':  contf3 v c 'z' 39 'bbcyrr'
+
+   One can also exclude points from arbitrary area in space. This area
+defined by textual formula `cut' (*note Cutting::). The algorithm is
+the same as shown for "rectangular cutting".
+
+
+File: mgl_en.info,  Node: Mapping visualization,  Next: Log-scaled plot,  Prev: CutMin and CutMax features,  Up: Hints
+
+2.5.9 Mapping visualization
+---------------------------
+
+Sometime ago I worked with mapping and have a question about its
+visualization. Let me remember you that mapping is some transformation
+rule for one set of number to another one. The 1d mapping is just an
+ordinary function - it takes a number and transforms it to another one.
+The 2d mapping (which I used) is a pair of functions which take 2
+numbers and transform them to another 2 ones. Except general plots
+(like `surfc', `surfa') there is a special plot - Arnold diagram. It
+shows the area which is the result of mapping of some initial area
+(usually square).
+
+   I tried to make such plot in `map'. It shows the set of points or
+set of faces, which final position is the result of mapping. At this,
+the color gives information about their initial position and the height
+describes Jacobian value of the transformation. Unfortunately, it looks
+good only for the simplest mapping but for the real multivalent
+quasi-chaotic mapping it produces a confusion. So, use it if you like
+:).
+
+
+File: mgl_en.info,  Node: Log-scaled plot,  Next: Nonlinear fitting hints,  Prev: Mapping visualization,  Up: Hints
+
+2.5.10 Log-scaled plot
+----------------------
+
+Log-scaled plot can be drawn by 2 steps. First, one should change the
+scale of axis by call `axis 'lg(x)' 'lg(y)'' (in this example, x- and
+y-axis will be log-scaled). Second, one should set logarithmic scale
+for axis ticks by changing variables: `xtick 0: yticks 0'. Finally, one
+should check (or change) the axis ranges and origin so that their
+values to be positive. For example of log-log plot *note Log-log
+sample::.
+
+
+File: mgl_en.info,  Node: Nonlinear fitting hints,  Next: PDE solving hints,  Prev: Log-scaled plot,  Up: Hints
+
+2.5.11 Nonlinear fitting hints
+------------------------------
+
+Nonlinear fitting is rather simple. All that you need is the data to
+fit, the approximation formula and the list of coefficients to fit
+(better with its initial guess values). Let me demonstrate it on the
+following simple example (*note Fitting sample::). First, let us use
+sin function with some random noise:
+new rnd 100: new idl 50 # data to be fitted and ideal data
+modify rnd '0.4*rnd+0.1+sin(4*pi*x)'
+modify idl '0.3+sin(4*pi*x)'
+ and plot it to see that data we will fit
+axis -1 -2 1 2
+plot rnd '. ':plot idl 'b'
+box:text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
+
+   The next step is the fitting itself. For that let me specify an
+initial values INI for coefficients `abc' and do the fitting for
+approximation formula `a+b*sin(c*x)'
+new res     # The data for found formula
+fit res rnd 'a+b*sin(c*x)' 'abc' [1, 1, 3]
+ Now display it
+plot res 'r'
+text -1 -1.3 'fitted:' 'L:r' -1
+putsfit 0 -1.8 'y = ' 'C:r' -1
+
+   NOTE! the fitting results may have strong dependence on initial
+values for coefficients due to algorithm features. The problem is that
+in general case there are several local 'optimums' for coefficients and
+the program returns only first found one! There are no guaranties that
+it will be the best. Try for example to set `ini = [0, 0, 0]' in the
+code above.
+
+
+File: mgl_en.info,  Node: PDE solving hints,  Next: Stereo image,  Prev: Nonlinear fitting hints,  Up: Hints
+
+2.5.12 PDE solving hints
+------------------------
+
+Solving of Partial Differential Equations (PDE, including beam tracing)
+and ray tracing (or finding particle trajectory) are more or less
+common task. So, MathGL have several functions for that. There are
+`ray' for ray tracing, `pde' for PDE solving, `qo2d' for beam tracing
+in 2D case. Note, that these functions take "Hamiltonian" or equations
+as string values. And I don't plan now to allow one to use user-defined
+functions. There are 2 reasons: the complexity of corresponding
+interface; and the basic nature of used methods which are good for
+samples but may not good for serious scientific calculations.
+
+   The ray tracing can be done by `ray' function. Really ray tracing
+equation is Hamiltonian equation for 3D space. So, the function can be
+also used for finding a particle trajectory (i.e. solve Hamiltonian
+ODE) for 1D, 2D or 3D cases. The function have a set of arguments.
+First of all, it is Hamiltonian which defined the media (or the
+equation) you are planning to use. The Hamiltonian is defined by string
+which may depend on coordinates `x', `y', `z', time `t' (for particle
+dynamics) and momentums `p'=p_x, `q'=p_y, `v'=p_z. Next, you have to
+define the initial conditions for coordinates and momentums at `t'=0
+and set the integrations step (default is 0.1) and its duration
+(default is 10). The Runge-Kutta method of 4-th order is used for
+integration.
+new re 128:new im 128
+ray r 'p^2+q^2-x-1' -0.7 -1 0 0 0.5 0
+plot r(0) r(1)
+ This example calculate the reflection from linear layer (media with
+Hamiltonian `p^2+q^2-x-1'=p_x^2+p_y^2-x-1). This is parabolic curve.
+The resulting array have 7 columns which contain data for
+{x,y,z,p,q,v,t}.
+
+   The solution of PDE is a bit more complicated. As previous you have
+to specify the equation as pseudo-differential operator \hat H(x,
+\nabla) which is called sometime as "Hamiltonian" (for example, in beam
+tracing). As previously, it is defined by string which may depend on
+coordinates `x', `y', `z' (but not time!), momentums `p'=(d/dx)/i k_0,
+`q'=(d/dy)/i k_0 and field amplitude `u'=|u|. The evolutionary
+coordinate is `z' in all cases. So that, the equation look like du/dz =
+ik_0 H(x,y,\hat p, \hat q, |u|)[u]. Dependence on field amplitude
+`u'=|u| allows one to solve nonlinear problems too. For example, for
+nonlinear Shrodinger equation you may set `ham='p^2 + q^2 - u^2''. Also
+you may specify imaginary part for wave absorption, like `ham = 'p^2 +
+i*x*(x>0)'', but only if dependence on variable `i' is linear (i.e. H =
+Hre+i*Him).
+
+   Next step is specifing the initial conditions at `z'=`Min.z'. The
+function need 2 arrays for real and for imaginary part. Note, that
+coordinates x,y,z are supposed to be in specified range [Min, Max]. So,
+the data arrays should have corresponding scales. Finally, you may set
+the integration step and paramter k0=k_0. Also keep in mind, that
+internally the 2 times large box is used (for suppressing numerical
+reflection from boundaries) and the equation should well defined even
+in this extended range.
+
+   Final comment is concerning the possible form of pseudo-differential
+operator H. At this moment, simplified form of operator H is supported
+- all "mixed" terms (like `x*p'->x*d/dx) are excluded. For example, in
+2D case this operator is effectively H = f(p,z) + g(x,z,u). However
+commutable combinations (like `x*q'->x*d/dy) are allowed for 3D case.
+
+   So, for example let solve the equation for beam deflected from
+linear layer and absorbed later. The operator will have the form
+`'p^2+q^2-x-1+i*0.5*(z+x)*(z>-x)'' that correspond to equation ik_0
+\partial_z u + \Delta u + x \cdot u + i (x+z)/2 \cdot u = 0. This is
+typical equation for Electron Cyclotron (EC) absorption in magnetized
+plasmas. For initial conditions let me select the beam with plane phase
+front exp(-48*(x+0.7)^2). The corresponding code looks like this (*note
+PDE sample::):
+new re 128: new im 128
+fill re 'exp(-48*(x+0.7)^2)'
+pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z>-x)' re im 0.01, 30
+transpose a 'yxz'
+caxis 0 1
+dens a 'wyrRk'
+
+   The last example is example of beam tracing. Beam tracing equation
+is special kind of PDE equation written in coordinates accompanied to a
+ray. Generally this is the same parameters and limitation as for PDE
+solving but the coordinates are defined by the ray and by parameter of
+grid width W in direction transverse the ray. So, you don't need to
+specify the range of coordinates. *BUT* there is limitation. The
+accompanied coordinates are well defined only for smooth enough rays,
+i.e. then the ray curvature K (which is defined as 1/K^2 = (|\ddot r|^2
+|\dot r|^2 - (\ddot r, \dot r)^2)/|\dot r|^6) is much large then the
+grid width: K>>w. So, you may receive incorrect results if this
+condition will be broken.
+
+   You may use following code for obtaining the same solution as in
+previous example:
+new re 128: new im 128
+define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y>-x)'
+ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
+# now start beam tracing
+fill re 'exp(-48*x^2)'
+new xx: new yy
+qo2d a $1 re im r 1 30 xx yy
+caxis 0 1
+dens xx yy a 'wyrRk'
+
+
+File: mgl_en.info,  Node: Stereo image,  Prev: PDE solving hints,  Up: Hints
+
+2.5.13 Stereo image
+-------------------
+
+One can easily create stereo image in MathGL. Stereo image can be
+produced by making two subplots with slightly different rotation
+angles. The corresponding code looks like this (*note Stereo image
+sample::):
+subplot 2 1 0   # left image
+rotate 40 60+3
+# draw something here
+subplot 2 1 1   # right image
+rotate 40 60-3
+# draw the same here
+
+
+File: mgl_en.info,  Node: Samples,  Next: Copying This Manual,  Prev: Examples,  Up: Top
+
+3 Samples
+*********
+
+This chapter contain a lot of sample codes for all types of plots and
+for most important examples and hints. The same sample (with pictures)
+you can find at `http://mathgl.sf.net/pictures.html'.
+
+* Menu:
+
+* 1D plotting samples::
+* 2D plotting samples::
+* 3D plotting samples::
+* Dual plotting samples::
+* Basic features::
+* Additional features::
+* Advanced features::
+
+
+File: mgl_en.info,  Node: 1D plotting samples,  Next: 2D plotting samples,  Up: Samples
+
+3.1 1D plotting samples
+=======================
+
+* Menu:
+
+* Plot sample::
+* Radar sample::
+* Tens sample::
+* Area sample::
+* Area gradient sample::
+* Bars sample::
+* Bars 2 colors sample::
+* Bars above sample::
+* Bars fall sample::
+* Barh sample::
+* Step sample::
+* Stem sample::
+* Region sample::
+* Region gradient sample::
+* Error sample::
+* BoxPlot sample::
+* Mark sample::
+* TextMark sample::
+* Tube sample::
+* Text sample::
+* Torus sample::
+* Chart sample::
+* Pie chart sample::
+* Ring chart sample::
+
+
+File: mgl_en.info,  Node: Plot sample,  Next: Radar sample,  Up: 1D plotting samples
+
+3.1.1 Plot sample
+-----------------
+
+ [image src="../png/plot.png" ]
+
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y
+
+
+File: mgl_en.info,  Node: Radar sample,  Next: Tens sample,  Prev: Plot sample,  Up: 1D plotting samples
+
+3.1.2 Radar sample
+------------------
+
+ [image src="../png/radar.png" ]
+
+new y 10 3
+modify y '0.4*sin(pi*(2*x+y/2))+0.1*rnd'
+radar y '#'
+
+
+File: mgl_en.info,  Node: Tens sample,  Next: Area sample,  Prev: Radar sample,  Up: 1D plotting samples
+
+3.1.3 Tens sample
+-----------------
+
+ [image src="../png/tens.png" ]
+
+new y 50
+new c 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify c 'sin(2*pi*x)'
+box
+tens y c
+
+
+File: mgl_en.info,  Node: Area sample,  Next: Area gradient sample,  Prev: Tens sample,  Up: 1D plotting samples
+
+3.1.4 Area sample
+-----------------
+
+ [image src="../png/area.png" ]
+
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y
+
+
+File: mgl_en.info,  Node: Area gradient sample,  Next: Bars sample,  Prev: Area sample,  Up: 1D plotting samples
+
+3.1.5 Area with gradient filling sample
+---------------------------------------
+
+ [image src="../png/area_2.png" ]
+
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y 'cbgGyr'
+
+
+File: mgl_en.info,  Node: Bars sample,  Next: Bars 2 colors sample,  Prev: Area gradient sample,  Up: 1D plotting samples
+
+3.1.6 Bars sample
+-----------------
+
+ [image src="../png/bars.png" ]
+
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y
+
+
+File: mgl_en.info,  Node: Bars 2 colors sample,  Next: Bars above sample,  Prev: Bars sample,  Up: 1D plotting samples
+
+3.1.7 Bars 2 colors sample
+--------------------------
+
+ [image src="../png/bars_2.png" ]
+
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'cbgGyr'
+
+
+File: mgl_en.info,  Node: Bars above sample,  Next: Bars fall sample,  Prev: Bars 2 colors sample,  Up: 1D plotting samples
+
+3.1.8 Bars above sample
+-----------------------
+
+ [image src="../png/bars_a.png" ]
+
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'a'
+
+
+File: mgl_en.info,  Node: Bars fall sample,  Next: Barh sample,  Prev: Bars above sample,  Up: 1D plotting samples
+
+3.1.9 Bars fall sample
+----------------------
+
+ [image src="../png/bars_f.png" ]
+
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'f'
+
+
+File: mgl_en.info,  Node: Barh sample,  Next: Step sample,  Prev: Bars fall sample,  Up: 1D plotting samples
+
+3.1.10 Barh sample
+------------------
+
+ [image src="../png/barh.png" ]
+
+new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+barh y
+
+
+File: mgl_en.info,  Node: Step sample,  Next: Stem sample,  Prev: Barh sample,  Up: 1D plotting samples
+
+3.1.11 Step sample
+------------------
+
+ [image src="../png/step.png" ]
+
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+step y
+
+
+File: mgl_en.info,  Node: Stem sample,  Next: Region sample,  Prev: Step sample,  Up: 1D plotting samples
+
+3.1.12 Stem sample
+------------------
+
+ [image src="../png/stem.png" ]
+
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+stem y 'o'
+
+
+File: mgl_en.info,  Node: Region sample,  Next: Region gradient sample,  Prev: Stem sample,  Up: 1D plotting samples
+
+3.1.13 Region sample
+--------------------
+
+ [image src="../png/region.png" ]
+
+new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'r'
+plot y1 'k2'
+plot y2 'k2'
+
+
+File: mgl_en.info,  Node: Region gradient sample,  Next: Error sample,  Prev: Region sample,  Up: 1D plotting samples
+
+3.1.14 Region gradient sample
+-----------------------------
+
+ [image src="../png/region_2.png" ]
+
+new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'yr'
+plot y1 'k2'
+plot y2 'k2'
+
+
+File: mgl_en.info,  Node: Error sample,  Next: BoxPlot sample,  Prev: Region gradient sample,  Up: 1D plotting samples
+
+3.1.15 Error sample
+-------------------
+
+ [image src="../png/error.png" ]
+
+new y 50
+new x0 10
+new y0 10
+new ex 10
+new ey 10
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify x0 '2*x-1 + 0.1*rnd-0.05'
+modify y0 '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1'
+modify ey '0.2'
+modify ex '0.1'
+box
+plot y
+error x0 y0 ex ey 'ko'
+
+
+File: mgl_en.info,  Node: BoxPlot sample,  Next: Mark sample,  Prev: Error sample,  Up: 1D plotting samples
+
+3.1.16 BoxPlot sample
+---------------------
+
+ [image src="../png/boxplot.png" ]
+
+new a 10 7
+modify a '(2*rnd-1)^3/2'
+boxplot a
+box:plot a ' ko'
+
+
+File: mgl_en.info,  Node: Mark sample,  Next: TextMark sample,  Prev: BoxPlot sample,  Up: 1D plotting samples
+
+3.1.17 Mark sample
+------------------
+
+ [image src="../png/mark.png" ]
+
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+mark y y1 'bs'
+
+
+File: mgl_en.info,  Node: TextMark sample,  Next: Tube sample,  Prev: Mark sample,  Up: 1D plotting samples
+
+3.1.18 TextMark sample
+----------------------
+
+ [image src="../png/textmark.png" ]
+
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+textmark y y1 '\gamma'
+
+
+File: mgl_en.info,  Node: Tube sample,  Next: Text sample,  Prev: TextMark sample,  Up: 1D plotting samples
+
+3.1.19 Tube sample
+------------------
+
+ [image src="../png/tube.png" ]
+
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+rotate 40 60
+light on
+box
+tube y 0.05
+
+
+File: mgl_en.info,  Node: Text sample,  Next: Torus sample,  Prev: Tube sample,  Up: 1D plotting samples
+
+3.1.20 Text sample
+------------------
+
+ [image src="../png/text.png" ]
+
+new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y(:,0)
+text y 'This is very long string drawn along a curve' ':k'
+text y 'Another string drawn above a curve' 'T:r'
+
+
+File: mgl_en.info,  Node: Torus sample,  Next: Chart sample,  Prev: Text sample,  Up: 1D plotting samples
+
+3.1.21 Torus sample
+-------------------
+
+ [image src="../png/torus.png" ]
+
+new y1 50
+new y2 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+rotate 40 60
+light on
+box
+torus y1 y2 'pz'
+
+
+File: mgl_en.info,  Node: Chart sample,  Next: Pie chart sample,  Prev: Torus sample,  Up: 1D plotting samples
+
+3.1.22 Chart sample
+-------------------
+
+ [image src="../png/chart.png" ]
+
+new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+box
+chart ch
+
+
+File: mgl_en.info,  Node: Pie chart sample,  Next: Ring chart sample,  Prev: Chart sample,  Up: 1D plotting samples
+
+3.1.23 Pie chart sample
+-----------------------
+
+ [image src="../png/pie_chart.png" ]
+
+new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+1)/2*cos(pi*x)' '(y+1)/2*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+
+
+File: mgl_en.info,  Node: Ring chart sample,  Prev: Pie chart sample,  Up: 1D plotting samples
+
+3.1.24 Ring chart sample
+------------------------
+
+ [image src="../png/ring_chart.png" ]
+
+new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+2)/3*cos(pi*x)' '(y+2)/3*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+
+
+File: mgl_en.info,  Node: 2D plotting samples,  Next: 3D plotting samples,  Prev: 1D plotting samples,  Up: Samples
+
+3.2 2D plotting samples
+=======================
+
+* Menu:
+
+* Surf sample::
+* Transparent surface sample::
+* Surface in fog sample::
+* Sharp colors sample::
+* Mesh sample::
+* Fall sample::
+* Belt sample::
+* Tile sample::
+* Boxs sample::
+* Dens sample::
+* Cont sample::
+* ContF sample::
+* ContD sample::
+* Axial sample::
+* Grad sample::
+
+
+File: mgl_en.info,  Node: Surf sample,  Next: Transparent surface sample,  Up: 2D plotting samples
+
+3.2.1 Surf sample
+-----------------
+
+ [image src="../png/surf.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+
+
+File: mgl_en.info,  Node: Transparent surface sample,  Next: Surface in fog sample,  Prev: Surf sample,  Up: 2D plotting samples
+
+3.2.2 Transparent surface sample
+--------------------------------
+
+ [image src="../png/surf_alpha.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surf a
+
+
+File: mgl_en.info,  Node: Surface in fog sample,  Next: Sharp colors sample,  Prev: Transparent surface sample,  Up: 2D plotting samples
+
+3.2.3 Surface in fog sample
+---------------------------
+
+ [image src="../png/surf_fog.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+fog 1
+box
+surf a
+
+
+File: mgl_en.info,  Node: Sharp colors sample,  Next: Mesh sample,  Prev: Surface in fog sample,  Up: 2D plotting samples
+
+3.2.4 Sharp colors sample
+-------------------------
+
+ [image src="../png/surf_sl.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a 'BbcyrR|'
+
+
+File: mgl_en.info,  Node: Mesh sample,  Next: Fall sample,  Prev: Sharp colors sample,  Up: 2D plotting samples
+
+3.2.5 Mesh sample
+-----------------
+
+ [image src="../png/mesh.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+mesh a
+
+
+File: mgl_en.info,  Node: Fall sample,  Next: Belt sample,  Prev: Mesh sample,  Up: 2D plotting samples
+
+3.2.6 Fall sample
+-----------------
+
+ [image src="../png/fall.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+fall a
+
+
+File: mgl_en.info,  Node: Belt sample,  Next: Tile sample,  Prev: Fall sample,  Up: 2D plotting samples
+
+3.2.7 Belt sample
+-----------------
+
+ [image src="../png/belt.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+belt a
+
+
+File: mgl_en.info,  Node: Tile sample,  Next: Boxs sample,  Prev: Belt sample,  Up: 2D plotting samples
+
+3.2.8 Tile sample
+-----------------
+
+ [image src="../png/tile.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+tile a
+
+
+File: mgl_en.info,  Node: Boxs sample,  Next: Dens sample,  Prev: Tile sample,  Up: 2D plotting samples
+
+3.2.9 Boxs sample
+-----------------
+
+ [image src="../png/boxs.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+origin 0 0 0
+box
+boxs a
+
+
+File: mgl_en.info,  Node: Dens sample,  Next: Cont sample,  Prev: Boxs sample,  Up: 2D plotting samples
+
+3.2.10 Dens sample
+------------------
+
+ [image src="../png/dens.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+dens a
+colorbar
+
+
+File: mgl_en.info,  Node: Cont sample,  Next: ContF sample,  Prev: Dens sample,  Up: 2D plotting samples
+
+3.2.11 Cont sample
+------------------
+
+ [image src="../png/cont.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+cont a
+
+
+File: mgl_en.info,  Node: ContF sample,  Next: ContD sample,  Prev: Cont sample,  Up: 2D plotting samples
+
+3.2.12 ContF sample
+-------------------
+
+ [image src="../png/contf.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+contf a
+
+
+File: mgl_en.info,  Node: ContD sample,  Next: Axial sample,  Prev: ContF sample,  Up: 2D plotting samples
+
+3.2.13 ContD sample
+-------------------
+
+ [image src="../png/contd.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+var v 9 -1 1
+box
+contd v a
+colorbar v
+
+
+File: mgl_en.info,  Node: Axial sample,  Next: Grad sample,  Prev: ContD sample,  Up: 2D plotting samples
+
+3.2.14 Axial sample
+-------------------
+
+ [image src="../png/axial.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+axial a
+
+
+File: mgl_en.info,  Node: Grad sample,  Prev: Axial sample,  Up: 2D plotting samples
+
+3.2.15 Grad sample
+------------------
+
+ [image src="../png/grad.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box:alpha on:dens a
+grad a
+
+
+File: mgl_en.info,  Node: 3D plotting samples,  Next: Dual plotting samples,  Prev: 2D plotting samples,  Up: Samples
+
+3.3 3D plotting samples
+=======================
+
+* Menu:
+
+* Surf3 sample::
+* Cloud sample::
+* CloudP sample::
+* Dens3 sample::
+* Cont3 sample::
+* ContF3 sample::
+* Cont projection sample::
+* Dens projection sample::
+* CutMinMax sample::
+* Isocaps sample::
+* CutOff sample::
+
+
+File: mgl_en.info,  Node: Surf3 sample,  Next: Cloud sample,  Up: 3D plotting samples
+
+3.3.1 Surf3 sample
+------------------
+
+ [image src="../png/surf3.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+box
+surf3 a
+
+
+File: mgl_en.info,  Node: Cloud sample,  Next: CloudP sample,  Prev: Surf3 sample,  Up: 3D plotting samples
+
+3.3.2 Cloud sample
+------------------
+
+ [image src="../png/cloud.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+box
+cloud a 'wyrRk'
+
+
+File: mgl_en.info,  Node: CloudP sample,  Next: Dens3 sample,  Prev: Cloud sample,  Up: 3D plotting samples
+
+3.3.3 CloudP sample
+-------------------
+
+ [image src="../png/cloudp.png" ]
+
+Not available.
+
+
+File: mgl_en.info,  Node: Dens3 sample,  Next: Cont3 sample,  Prev: CloudP sample,  Up: 3D plotting samples
+
+3.3.4 Dens3 sample
+------------------
+
+ [image src="../png/densa.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+origin 0 0 0
+box
+densa a
+axis
+
+
+File: mgl_en.info,  Node: Cont3 sample,  Next: ContF3 sample,  Prev: Dens3 sample,  Up: 3D plotting samples
+
+3.3.5 Cont3 sample
+------------------
+
+ [image src="../png/conta.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+conta a
+
+
+File: mgl_en.info,  Node: ContF3 sample,  Next: Cont projection sample,  Prev: Cont3 sample,  Up: 3D plotting samples
+
+3.3.6 ContF3 sample
+-------------------
+
+ [image src="../png/contfa.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+box
+contfa a
+
+
+File: mgl_en.info,  Node: Cont projection sample,  Next: Dens projection sample,  Prev: ContF3 sample,  Up: 3D plotting samples
+
+3.3.7 Cont projection sample
+----------------------------
+
+ [image src="../png/cont_xyz.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+contx s '' -1
+sum s a 'y'
+conty s '' 1
+sum s a 'z'
+contz s '' -1
+
+
+File: mgl_en.info,  Node: Dens projection sample,  Next: CutMinMax sample,  Prev: Cont projection sample,  Up: 3D plotting samples
+
+3.3.8 Dens projection sample
+----------------------------
+
+ [image src="../png/dens_xyz.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+densx s '' -1
+sum s a 'y'
+densy s '' 1
+sum s a 'z'
+densz s '' -1
+
+
+File: mgl_en.info,  Node: CutMinMax sample,  Next: Isocaps sample,  Prev: Dens projection sample,  Up: 3D plotting samples
+
+3.3.9 CutMinMax sample
+----------------------
+
+ [image src="../png/cutminmax.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut 0 -1 -1 1 0 1
+box
+surf3 a
+
+
+File: mgl_en.info,  Node: Isocaps sample,  Next: CutOff sample,  Prev: CutMinMax sample,  Up: 3D plotting samples
+
+3.3.10 "Isocaps" sample
+-----------------------
+
+ [image src="../png/cutminmax2.png" ]
+
+new a 61 51 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+cut 0 -1 -1 1 0 1.1
+box
+surf3 a -1
+contf3 a 'x' -1
+contf3 a 'y' -1
+contf3 a 'z' 0
+contf3 a 'z' 39
+
+
+File: mgl_en.info,  Node: CutOff sample,  Prev: Isocaps sample,  Up: 3D plotting samples
+
+3.3.11 CutOff sample
+--------------------
+
+ [image src="../png/surf3_cutoff.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut '(z>(x+0.5*y-1)^2-1) & (z>(x-0.5*y-1)^2-1)'
+box
+surf3 a
+
+
+File: mgl_en.info,  Node: Dual plotting samples,  Next: Basic features,  Prev: 3D plotting samples,  Up: Samples
+
+3.4 Dual plotting samples
+=========================
+
+* Menu:
+
+* SurfC sample::
+* SurfA sample::
+* TileS sample::
+* Map sample::
+* Traj sample::
+* Vect sample::
+* VectL sample::
+* VectC sample::
+* Flow sample::
+* Pipe sample::
+* Dew sample::
+* Surf3C sample::
+* Surf3A sample::
+* Vect 3D sample::
+* VectL 3D sample::
+* VectC 3D sample::
+* Flow 3D sample::
+* Pipe 3D sample::
+* Crust sample::
+* Dots sample::
+
+
+File: mgl_en.info,  Node: SurfC sample,  Next: SurfA sample,  Up: Dual plotting samples
+
+3.4.1 SurfC sample
+------------------
+
+ [image src="../png/surfc.png" ]
+
+new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surfc a b
+
+
+File: mgl_en.info,  Node: SurfA sample,  Next: TileS sample,  Prev: SurfC sample,  Up: Dual plotting samples
+
+3.4.2 SurfA sample
+------------------
+
+ [image src="../png/surfa.png" ]
+
+new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surfa a b
+
+
+File: mgl_en.info,  Node: TileS sample,  Next: Map sample,  Prev: SurfA sample,  Up: Dual plotting samples
+
+3.4.3 TileS sample
+------------------
+
+ [image src="../png/tiles.png" ]
+
+new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+tile a b
+
+
+File: mgl_en.info,  Node: Map sample,  Next: Traj sample,  Prev: TileS sample,  Up: Dual plotting samples
+
+3.4.4 Map sample
+----------------
+
+ [image src="../png/map.png" ]
+
+new a 50 40
+new b 50 40
+text 0 0 '\to'
+zrange -2 2
+subplot 2 1 0
+text 0 1.1 '\{x, y\}' '' -2
+box
+fill a 'x'
+fill b 'y'
+map a b 'brgk' 0 0
+subplot 2 1 1
+text 0 1.1 '\{\frac{x^3+y^3}{2}, \frac{x-y}{2}\}' '' -2
+box
+fill a '(x^3+y^3)/2'
+fill b '(x-y)/2'
+map a b 'brgk' 0 0
+
+
+File: mgl_en.info,  Node: Traj sample,  Next: Vect sample,  Prev: Map sample,  Up: Dual plotting samples
+
+3.4.5 Traj sample
+-----------------
+
+ [image src="../png/traj.png" ]
+
+new y 50 3
+new x 50
+new y1 50
+new y2 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+fill x -1 1
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+box
+plot x y
+traj x y y1 y2
+
+
+File: mgl_en.info,  Node: Vect sample,  Next: VectL sample,  Prev: Traj sample,  Up: Dual plotting samples
+
+3.4.6 Vect sample
+-----------------
+
+ [image src="../png/vect.png" ]
+
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vect a b
+
+
+File: mgl_en.info,  Node: VectL sample,  Next: VectC sample,  Prev: Vect sample,  Up: Dual plotting samples
+
+3.4.7 VectL sample
+------------------
+
+ [image src="../png/vectl.png" ]
+
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectl a b
+
+
+File: mgl_en.info,  Node: VectC sample,  Next: Flow sample,  Prev: VectL sample,  Up: Dual plotting samples
+
+3.4.8 VectC sample
+------------------
+
+ [image src="../png/vectc.png" ]
+
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectc a b
+
+
+File: mgl_en.info,  Node: Flow sample,  Next: Pipe sample,  Prev: VectC sample,  Up: Dual plotting samples
+
+3.4.9 Flow sample
+-----------------
+
+ [image src="../png/flow.png" ]
+
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+flow a b
+
+
+File: mgl_en.info,  Node: Pipe sample,  Next: Dew sample,  Prev: Flow sample,  Up: Dual plotting samples
+
+3.4.10 Pipe sample
+------------------
+
+ [image src="../png/pipe.png" ]
+
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+box
+pipe a b
+
+
+File: mgl_en.info,  Node: Dew sample,  Next: Surf3C sample,  Prev: Pipe sample,  Up: Dual plotting samples
+
+3.4.11 Dew sample
+-----------------
+
+ [image src="../png/dew.png" ]
+
+new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+light on
+dew a b
+
+
+File: mgl_en.info,  Node: Surf3C sample,  Next: Surf3A sample,  Prev: Dew sample,  Up: Dual plotting samples
+
+3.4.12 Surf3C sample
+--------------------
+
+ [image src="../png/surf3c.png" ]
+
+new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3c a b
+
+
+File: mgl_en.info,  Node: Surf3A sample,  Next: Vect 3D sample,  Prev: Surf3C sample,  Up: Dual plotting samples
+
+3.4.13 Surf3A sample
+--------------------
+
+ [image src="../png/surf3a.png" ]
+
+new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3a a b
+
+
+File: mgl_en.info,  Node: Vect 3D sample,  Next: VectL 3D sample,  Prev: Surf3A sample,  Up: Dual plotting samples
+
+3.4.14 Vect 3D sample
+---------------------
+
+ [image src="../png/vect3.png" ]
+
+new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vect ex ey ez 'bwr'
+
+
+File: mgl_en.info,  Node: VectL 3D sample,  Next: VectC 3D sample,  Prev: Vect 3D sample,  Up: Dual plotting samples
+
+3.4.15 VectL 3D sample
+----------------------
+
+ [image src="../png/vectl3.png" ]
+
+new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectl ex ey ez 'bwr'
+
+
+File: mgl_en.info,  Node: VectC 3D sample,  Next: Flow 3D sample,  Prev: VectL 3D sample,  Up: Dual plotting samples
+
+3.4.16 VectC 3D sample
+----------------------
+
+ [image src="../png/vectc3.png" ]
+
+new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectc ex ey ez 'bwr'
+
+
+File: mgl_en.info,  Node: Flow 3D sample,  Next: Pipe 3D sample,  Prev: VectC 3D sample,  Up: Dual plotting samples
+
+3.4.17 Flow 3D sample
+---------------------
+
+ [image src="../png/flow3.png" ]
+
+new ex 30 30 30
+new ey 30 30 30
+new ez 30 30 30
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+flow ex ey ez 'bwr'
+
+
+File: mgl_en.info,  Node: Pipe 3D sample,  Next: Crust sample,  Prev: Flow 3D sample,  Up: Dual plotting samples
+
+3.4.18 Pipe 3D sample
+---------------------
+
+ [image src="../png/pipe3.png" ]
+
+new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+light on
+box
+pipe ex ey ez 'bwr'
+
+
+File: mgl_en.info,  Node: Crust sample,  Next: Dots sample,  Prev: Pipe 3D sample,  Up: Dual plotting samples
+
+3.4.19 Crust sample
+-------------------
+
+ [image src="../png/crust.png" ]
+
+read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+light on
+box
+crust a 'p'
+
+
+File: mgl_en.info,  Node: Dots sample,  Prev: Crust sample,  Up: Dual plotting samples
+
+3.4.20 Dots sample
+------------------
+
+ [image src="../png/dots.png" ]
+
+read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+box
+dots a 'p'
+
+
+File: mgl_en.info,  Node: Basic features,  Next: Additional features,  Prev: Dual plotting samples,  Up: Samples
+
+3.5 Basic features
+==================
+
+* Menu:
+
+* 1D plot sample::
+* 2D plot sample::
+* 3D plot sample::
+* Line styles sample::
+* Arrow styles sample::
+* Text styles sample::
+* TeX parsing sample::
+* Font faces sample::
+* Colors sample::
+* Color schemes sample::
+* Normal transparency::
+* Glass-like transparency::
+* Lamp-like transparency::
+
+
+File: mgl_en.info,  Node: 1D plot sample,  Next: 2D plot sample,  Up: Basic features
+
+3.5.1 1D plot sample
+--------------------
+
+ [image src="../png/sample8.png" ]
+
+new y0 50: modify y0 'sin(pi*(2*x-1))'
+subplot 2 2 0
+plot y0: box
+
+subplot 2 2 1
+new y1 50 2
+modify y1 'sin(pi*2*x-pi)'
+modify y1 'cos(pi*2*x-pi)/2' 1
+plot y1: box
+
+new x 50: modify x 'cos(pi*2*x-pi)'
+plot x y0 'Y+'
+plot y1(:,0) y(:,1) 'q|'
+
+subplot 2 2 2:rotate 60 40
+new z 50:   modify z '2*x-1'
+plot x y0 z 'g':box
+new y2 10 3
+modify y2 'cos(pi*(2*x-1-y))'
+modify y2 '2*x-1' 2
+plot y2(:,0) y2(:,1) y2(:,2) 'bo '
+
+subplot 2 2 3:rotate 60 40
+bars x y0 z 'r':box
+
+
+File: mgl_en.info,  Node: 2D plot sample,  Next: 3D plot sample,  Prev: 1D plot sample,  Up: Basic features
+
+3.5.2 2D plot sample
+--------------------
+
+ [image src="../png/sample9.png" ]
+
+light on
+
+new a0 50 40
+modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+subplot 2 2 0:rotate 60 40
+surf a0: box
+
+new x 50 40: new y 50 40: new z 50 40
+modify x '0.8*sin(2*pi*x)*sin(pi*y)'
+modify y '0.8*cos(2*pi*x)*sin(pi*y)'
+modify z '0.8*cos(pi*y)'
+subplot 2 2 1:rotate 60 40
+surf x y z 'bbwrr': box
+
+new a1 50 40 3
+modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
+subplot 2 2 2:rotate 60 40
+alpha on
+surf a1: box
+
+subplot 2 2 3: rotate 60 40
+dens a1: box
+
+
+File: mgl_en.info,  Node: 3D plot sample,  Next: Line styles sample,  Prev: 2D plot sample,  Up: Basic features
+
+3.5.3 3D plot sample
+--------------------
+
+ [image src="../png/sampleb.png" ]
+
+alpha on: light on
+light 0 0 0 1
+new a 30 30 30: new b 30 30 30
+modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
+modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
+caxis 0 1
+
+subplot 2 2 0: rotate 40 60
+surf3 a 'wgk': box
+subplot 2 2 1: rotate 40 60
+densa a: box: axis
+subplot 2 2 2: rotate 40 60
+cloud a: box
+subplot 2 2 3: rotate 40 60
+surf3a b a 'q': box
+
+
+File: mgl_en.info,  Node: Line styles sample,  Next: Arrow styles sample,  Prev: 3D plot sample,  Up: Basic features
+
+3.5.4 Line styles sample
+------------------------
+
+ [image src="../png/sample5.png" ]
+
+NOT AVAILABLE
+
+
+File: mgl_en.info,  Node: Arrow styles sample,  Next: Text styles sample,  Prev: Line styles sample,  Up: Basic features
+
+3.5.5 Arrow styles sample
+-------------------------
+
+ [image src="../png/sampled.png" ]
+
+NOT AVAILABLE
+
+
+File: mgl_en.info,  Node: Text styles sample,  Next: TeX parsing sample,  Prev: Arrow styles sample,  Up: Basic features
+
+3.5.6 Text styles sample
+------------------------
+
+ [image src="../png/sample4.png" ]
+
+text 0 1 'Text can be in ASCII and in Unicode'
+text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
+text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
+text 0 -0.2 'Easy to \a{overline} or \u{underline}'
+text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
+text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
+
+
+File: mgl_en.info,  Node: TeX parsing sample,  Next: Font faces sample,  Prev: Text styles sample,  Up: Basic features
+
+3.5.7 TeX parsing sample
+------------------------
+
+ [image src="../png/samplee.png" ]
+
+text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}' '' -4
+
+
+File: mgl_en.info,  Node: Font faces sample,  Next: Colors sample,  Prev: TeX parsing sample,  Up: Basic features
+
+3.5.8 Font faces sample
+-----------------------
+
+ [image src="../png/fonts.png" ]
+
+NOT AVAILABLE
+
+
+File: mgl_en.info,  Node: Colors sample,  Next: Color schemes sample,  Prev: Font faces sample,  Up: Basic features
+
+3.5.9 Colors sample
+-------------------
+
+ [image src="../png/colors.png" ]
+
+#LENUQ
+facez -1   -1 0 0.4 0.3 'L#': text -0.8 -0.9 'L' 'C:w'
+facez -0.6 -1 0 0.4 0.3 'E#': text -0.4 -0.9 'E' 'C:w'
+facez -0.2 -1 0 0.4 0.3 'N#': text  0   -0.9 'N' 'C:w'
+facez  0.2 -1 0 0.4 0.3 'U#': text  0.4 -0.9 'U' 'C:w'
+facez  0.6 -1 0 0.4 0.3 'Q#': text  0.8 -0.9 'Q' 'C:w'
+#lenuq
+facez -1   -0.7 0 0.4 0.3 'l#': text -0.8 -0.6 'l' 'C:k'
+facez -0.6 -0.7 0 0.4 0.3 'e#': text -0.4 -0.6 'e' 'C:k'
+facez -0.2 -0.7 0 0.4 0.3 'n#': text  0   -0.6 'n' 'C:k'
+facez  0.2 -0.7 0 0.4 0.3 'u#': text  0.4 -0.6 'u' 'C:k'
+facez  0.6 -0.7 0 0.4 0.3 'q#': text  0.8 -0.6 'q' 'C:k'
+#CMYkP
+facez -1   -0.4 0 0.4 0.3 'C#': text -0.8 -0.3 'C' 'C:w'
+facez -0.6 -0.4 0 0.4 0.3 'M#': text -0.4 -0.3 'M' 'C:w'
+facez -0.2 -0.4 0 0.4 0.3 'Y#': text  0   -0.3 'Y' 'C:w'
+facez  0.2 -0.4 0 0.4 0.3 'k#': text  0.4 -0.3 'k' 'C:w'
+facez  0.6 -0.4 0 0.4 0.3 'P#': text  0.8 -0.3 'P' 'C:w'
+#lenuq
+facez -1   -0.1 0 0.4 0.3 'c#': text -0.8 0 'c' 'C:k'
+facez -0.6 -0.1 0 0.4 0.3 'm#': text -0.4 0 'm' 'C:k'
+facez -0.2 -0.1 0 0.4 0.3 'y#': text  0   0 'y' 'C:k'
+facez  0.2 -0.1 0 0.4 0.3 'w#': text  0.4 0 'w' 'C:k'
+facez  0.6 -0.1 0 0.4 0.3 'p#': text  0.8 0 'p' 'C:k'
+#BGRHW
+facez -1   0.2 0 0.4 0.3 'B#': text -0.8 0.3 'B' 'C:k'
+facez -0.6 0.2 0 0.4 0.3 'G#': text -0.4 0.3 'G' 'C:k'
+facez -0.2 0.2 0 0.4 0.3 'R#': text  0   0.3 'R' 'C:k'
+facez  0.2 0.2 0 0.4 0.3 'H#': text  0.4 0.3 'H' 'C:k'
+facez  0.6 0.2 0 0.4 0.3 'W#': text  0.8 0.3 'W' 'C:k'
+#bgrhw
+facez -1   0.5 0 0.4 0.3 'b#': text -0.8 0.6 'b' 'C:w'
+facez -0.6 0.5 0 0.4 0.3 'g#': text -0.4 0.6 'g' 'C:w'
+facez -0.2 0.5 0 0.4 0.3 'r#': text  0   0.6 'r' 'C:w'
+facez  0.2 0.5 0 0.4 0.3 'h#': text  0.4 0.6 'h' 'C:w'
+facez  0.6 0.5 0 0.4 0.3 'w#': text  0.8 0.6 'w' 'C:w'
+#brighted
+facez -1   0.8 0 0.4 0.3 'r1#': text -0.8 0.9 'r1' 'C:k'
+facez -0.6 0.8 0 0.4 0.3 'r3#': text -0.4 0.9 'r3' 'C:k'
+facez -0.2 0.8 0 0.4 0.3 'r5#': text  0   0.9 'r5' 'C:k'
+facez  0.2 0.8 0 0.4 0.3 'r7#': text  0.4 0.9 'r7' 'C:k'
+facez  0.6 0.8 0 0.4 0.3 'r9#': text  0.8 0.9 'r9' 'C:k'
+
+
+File: mgl_en.info,  Node: Color schemes sample,  Next: Normal transparency,  Prev: Colors sample,  Up: Basic features
+
+3.5.10 Color schemes sample
+---------------------------
+
+ [image src="../png/color_schemes.png" ]
+
+new a 256 2: fill a 'x'
+subplot 2 10 0 0.2:dens a 'kw'
+text -1.4 -0.3 'kw' '' -8
+subplot 2 10 1 0.2:dens a 'wk'
+text -1.4 -0.3 'wk' '' -8
+subplot 2 10 2 0.2:dens a 'kHCcw'
+text -1.4 -0.3 'kHCcw' '' -8
+subplot 2 10 3 0.2:dens a 'kBbcw'
+text -1.4 -0.3 'kBbcw' '' -8
+subplot 2 10 4 0.2:dens a 'kRryw'
+text -1.4 -0.3 'kRryw' '' -8
+subplot 2 10 5 0.2:dens a 'kGgew'
+text -1.4 -0.3 'kGgew' '' -8
+subplot 2 10 6 0.2:dens a 'BbwrR'
+text -1.4 -0.3 'BbwrR' '' -8
+subplot 2 10 7 0.2:dens a 'BbwgG'
+text -1.4 -0.3 'BbwgG' '' -8
+subplot 2 10 8 0.2:dens a 'GgwmM'
+text -1.4 -0.3 'GgwmM' '' -8
+subplot 2 10 9 0.2:dens a 'UuwqR'
+text -1.4 -0.3 'UuwqR' '' -8
+subplot 2 10 10 0.2:dens a 'QqwcC'
+text -1.4 -0.3 'QqwcC' '' -8
+subplot 2 10 11 0.2:dens a 'CcwyY'
+text -1.4 -0.3 'CcwyY' '' -8
+subplot 2 10 12 0.2:dens a 'bcwyr'
+text -1.4 -0.3 'bcwyr' '' -8
+subplot 2 10 13 0.2:dens a 'bwr'
+text -1.4 -0.3 'bwr' '' -8
+subplot 2 10 14 0.2:dens a 'BbcyrR'
+text -1.4 -0.3 'BbcyrR' '' -8
+subplot 2 10 15 0.2:dens a 'UbcyqR'
+text -1.4 -0.3 'UbcyqR' '' -8
+subplot 2 10 16 0.2:dens a 'BbcwyrR'
+text -1.4 -0.3 'BbcwyrR' '' -8
+subplot 2 10 17 0.2:dens a 'bcyr'
+text -1.4 -0.3 'bcyr' '' -8
+subplot 2 10 18 0.2:dens a 'BbcyrR|'
+text -1.4 -0.3 'BbcyrR|' '' -8
+subplot 2 10 19 0.2:dens a 'bgr'
+text -1.4 -0.3 'bgr' '' -8
+
+
+File: mgl_en.info,  Node: Normal transparency,  Next: Glass-like transparency,  Prev: Color schemes sample,  Up: Basic features
+
+3.5.11 Normal transparency
+--------------------------
+
+ [image src="../png/type0.png" ]
+
+alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 0: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+
+
+File: mgl_en.info,  Node: Glass-like transparency,  Next: Lamp-like transparency,  Prev: Normal transparency,  Up: Basic features
+
+3.5.12 Glass-like transparency
+------------------------------
+
+ [image src="../png/type1.png" ]
+
+alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 1: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+
+
+File: mgl_en.info,  Node: Lamp-like transparency,  Prev: Glass-like transparency,  Up: Basic features
+
+3.5.13 Lamp-like transparency
+-----------------------------
+
+ [image src="../png/type2.png" ]
+
+alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 2: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+
+
+File: mgl_en.info,  Node: Additional features,  Next: Advanced features,  Prev: Dual plotting samples,  Up: Samples
+
+3.6 Additional features
+=======================
+
+* Menu:
+
+* Legend sample::
+* Adding mesh sample::
+* Surf & Cont sample::
+* Flow & Dens sample::
+* Several light sample::
+* Mirrored surface sample::
+* Cont with labels sample::
+* Ternary plot sample::
+* Coloring by coordinates sample::
+* Drops sample::
+* Molecules drawing sample::
+
+
+File: mgl_en.info,  Node: Legend sample,  Next: Adding mesh sample,  Up: Additional features
+
+3.6.1 Legend sample
+-------------------
+
+ [image src="../png/legend.png" ]
+
+new f 50 3
+modify f 'sin(2*pi*x*x)'
+modify f 'sin(2*pi*x)' 1
+modify f 'sin(2*pi*sqrt(x))' 2
+axis 0 -1 1 1
+box
+plot f
+axis
+addlegend 'sin(\pi {x^2})' 'b'
+addlegend 'sin(\pi x)' 'g*'
+addlegend 'sin(\pi \sqrt{\a x})' 'r+'
+legend
+
+
+File: mgl_en.info,  Node: Adding mesh sample,  Next: Surf & Cont sample,  Prev: Legend sample,  Up: Additional features
+
+3.6.2 Adding mesh sample
+------------------------
+
+ [image src="../png/samplea.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+alpha on
+light on
+subplot 2 2 0
+rotate 40 60
+surf a 'BbcyrR#'
+box
+subplot 2 2 1
+rotate 40 60
+dens a 'BbcyrR#'
+box
+subplot 2 2 2
+rotate 40 60
+cont a 'BbcyrR#'
+box
+subplot 2 2 3
+rotate 40 60
+axial a 'BbcyrR#'
+box
+
+
+File: mgl_en.info,  Node: Surf & Cont sample,  Next: Flow & Dens sample,  Prev: Adding mesh sample,  Up: Additional features
+
+3.6.3 Surf & Cont sample
+------------------------
+
+ [image src="../png/surf_cont_y.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+cont a 'y'
+
+
+File: mgl_en.info,  Node: Flow & Dens sample,  Next: Several light sample,  Prev: Surf & Cont sample,  Up: Additional features
+
+3.6.4 Flow & Dens sample
+------------------------
+
+ [image src="../png/flow_dens.png" ]
+
+new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+copy d a
+modify d 'sqrt(v^2+w^2)' a b
+box
+flow a b 'br'
+dens d 'BbcyrR'
+
+
+File: mgl_en.info,  Node: Several light sample,  Next: Mirrored surface sample,  Prev: Flow & Dens sample,  Up: Additional features
+
+3.6.5 Several light sample
+--------------------------
+
+ [image src="../png/several_light.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+light 1 0 1 0 'c'
+light 2 1 0 0 'y'
+light 3 0 -1 0 'm'
+box
+surf a 'h'
+
+
+File: mgl_en.info,  Node: Mirrored surface sample,  Next: Cont with labels sample,  Prev: Several light sample,  Up: Additional features
+
+3.6.6 Mirrored surface sample
+-----------------------------
+
+ [image src="../png/mirror.png" ]
+
+new a 30 40
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf a 'r'; yrange 0 1
+surf a 'b'; yrange 0 -1
+box
+ or
+new a 30 40
+var x 30 -1 1
+var y1 40 0 1
+var y2 40 0 -1
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf x y1 a 'r'
+surf x y2 a 'b'
+box
+
+
+File: mgl_en.info,  Node: Cont with labels sample,  Next: Ternary plot sample,  Prev: Mirrored surface sample,  Up: Additional features
+
+3.6.7 Cont with labels sample
+-----------------------------
+
+ [image src="../png/contt.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+cont a 'BbcyrRt'
+
+
+File: mgl_en.info,  Node: Ternary plot sample,  Next: Coloring by coordinates sample,  Prev: Cont with labels sample,  Up: Additional features
+
+3.6.8 Ternary plot sample
+-------------------------
+
+ [image src="../png/ternary.png" ]
+
+new rx 10
+new ry 10
+new x 50
+new y 50
+new a 20 30
+modify a '4*x*y'
+modify x '0.25*(1+cos(2*pi*x))'
+modify y '0.25*(1+sin(2*pi*x))'
+modify rx 'rnd'
+modify ry 'rnd*(1-v)' rx
+text -0.8 1.3 'Ternary plot (x+y+t=1)'
+ternary on
+plot x y 'r2'
+plot rx ry 'q^ '
+cont a
+line 0.5 0 0 0.75 'g2'
+axis
+grid 'xyz' 'B;'
+xlabel 'x comp.'
+ylabel 'y comp.'
+tlabel 't comp.'
+
+
+File: mgl_en.info,  Node: Coloring by coordinates sample,  Next: Drops sample,  Prev: Ternary plot sample,  Up: Additional features
+
+3.6.9 Coloring by coordinates sample
+------------------------------------
+
+ [image src="../png/surf3_rgbd.png" ]
+
+new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+surf3 a 'bgrd'
+
+
+File: mgl_en.info,  Node: Drops sample,  Next: Molecules drawing sample,  Prev: Coloring by coordinates sample,  Up: Additional features
+
+3.6.10 Drops sample
+-------------------
+
+ [image src="../png/drops.png" ]
+
+light on
+text -1 1.2 'sh=0'
+drop -1 0 0 1 0.5 'r' 0
+text -0.33 1.2 'sh=0.33'
+drop -0.33 0 0 1 0.5 'r' 0.33
+text 0.33 1.2 'sh=0.67'
+drop 0.33 0 0 1 0.5 'r' 0.67
+text 1 1.2 'sh=1'
+drop 1 0 0 1 0.5 'r' 1
+ball -1 0 1 'k'
+ball -0.33 0 1 'k'
+ball 0.33 0 1 'k'
+ball 1 0 1 'k'
+line -1 0 1 1 0 1 'b'
+new h 100
+modify h '0.25*(1+x)^2'
+plot h 'k|'
+text -1 0.6 'h\sim(1+sh)^2' 'rL'
+
+
+File: mgl_en.info,  Node: Molecules drawing sample,  Prev: Drops sample,  Up: Additional features
+
+3.6.11 Molecules drawing sample
+-------------------------------
+
+ [image src="../png/molecule.png" ]
+
+alpha on
+light on
+subplot 2 2 0
+text 0 1.2 'Methane, CH_4' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'k'
+drop 0 0 0 0 0 1 0.35 'h' 1 2
+sphere 0 0 0.7 0.25 'g'
+drop 0 0 0 -0.94 0 -0.33 0.35 'h' 1 2
+sphere -0.66 0 -0.23 0.25 'g'
+drop 0 0 0 0.47 0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 0.57 -0.23 0.25 'g'
+drop 0 0 0 0.47 -0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 -0.57 -0.23 0.25 'g'
+subplot 2 2 1
+text 0 1.2 'Water, H{_2}O' '' -3
+rotate 60 100
+sphere 0 0 0 0.25 'r'
+drop 0 0 0 0.3 0.5 0 0.3 'm' 1 2
+sphere 0.3 0.5 0 0.25 'g'
+drop 0 0 0 0.3 -0.5 0 0.3 'm' 1 2
+sphere 0.3 -0.5 0 0.25 'g'
+subplot 2 2 2
+text 0 1.2 'Oxygen, O_2' '' -3
+rotate 60 120
+drop 0 0.5 0 0 -0.3 0 0.3 'm' 1 2
+sphere 0 0.5 0 0.25 'r'
+drop 0 -0.5 0 0 0.3 0 0.3 'm' 1 2
+sphere 0 -0.5 0 0.25 'r'
+subplot 2 2 3
+text 0 1.2 0 'Ammonia, NH_3' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'b'
+drop 0 0 0 0.33 0.57 0 0.32 'n' 1 2
+sphere 0.33 0.57 0 0.25 'g'
+drop 0 0 0 0.33 -0.57 0 0.32 'n' 1 2
+sphere 0.33 -0.57 0 0.25 'g'
+drop 0 0 0 -0.65 0 0 0.32 'n' 1 2
+sphere -0.65 0 0 0.25 'g'
+
+
+File: mgl_en.info,  Node: Advanced features,  Prev: Additional features,  Up: Samples
+
+3.7 Advanced features
+=====================
+
+* Menu:
+
+* Curvelinear coorinates sample::
+* 2-axes sample::
+* Semi-log sample::
+* Log-log sample::
+* Fitting sample::
+* Envelop sample::
+* Sew sample::
+* STFA sample::
+* PDE sample::
+* Beam tracing sample::
+* Parser sample::
+* Manual ticks sample::
+* ColumnPlot sample::
+* StickPlot sample::
+* Stereo image sample::
+
+
+File: mgl_en.info,  Node: Curvelinear coorinates sample,  Next: 2-axes sample,  Up: Advanced features
+
+3.7.1 Curvelinear coorinates sample
+-----------------------------------
+
+ [image src="../png/sample3.png" ]
+
+origin -1 1 -1
+subplot 2 2 0
+rotate 60 40
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cartesian'
+subplot 2 2 1
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cylindrical'
+subplot 2 2 2
+rotate 60 40
+axis '2*y*x' 'y*y - x*x' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Parabolic'
+subplot 2 2 3
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Spiral'
+axis '' '' '' # set to default Cartesian
+
+
+File: mgl_en.info,  Node: 2-axes sample,  Next: Semi-log sample,  Prev: Curvelinear coorinates sample,  Up: Advanced features
+
+3.7.2 2-axes sample
+-------------------
+
+ [image src="../png/2_axis.png" ]
+
+new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+axis -1 -1 -1 1 1 1
+origin -1 -1 -1
+axis
+ylabel 'axis 1' 0
+plot y1 'b'
+axis 0 0 0 1 1 1
+origin 1 1 1
+axis
+ylabel 'axis 2' 0
+stem y2 'r'
+
+
+File: mgl_en.info,  Node: Semi-log sample,  Next: Log-log sample,  Prev: 2-axes sample,  Up: Advanced features
+
+3.7.3 Semi-log sample
+---------------------
+
+ [image src="../png/semilog.png" ]
+
+new x 2000
+new y 2000
+modify x '0.01/(x+10^(-5))'
+modify y 'sin(1/v)' x
+xrange 0.01 1000
+origin 0.01 -1 0
+xtick 0
+axis 'lg(x)' '' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g'
+xlabel 'x' 0
+ylabel 'y = sin 1/x' 0
+box
+
+
+File: mgl_en.info,  Node: Log-log sample,  Next: Fitting sample,  Prev: Semi-log sample,  Up: Advanced features
+
+3.7.4 Log-log sample
+--------------------
+
+ [image src="../png/loglog.png" ]
+
+new x 100
+new y 100
+modify x 'pow(10,6*x-3)'
+modify y 'sqrt(1+v^2)' x
+axis 0.001 0.1 1000 1000
+xtick 0
+ytick 0
+axis 'lg(x)' 'lg(y)' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g;'
+xlabel 'x' 0
+ylabel 'y=\sqrt{1+x^2}' 0
+box
+
+
+File: mgl_en.info,  Node: Fitting sample,  Next: Envelop sample,  Prev: Log-log sample,  Up: Advanced features
+
+3.7.5 Fitting sample
+--------------------
+
+ [image src="../png/fit.png" ]
+
+new rnd 100
+fill rnd '0.4*rnd+0.1+sin(2*pi*x)'
+new in 100
+fill in '0.3+sin(2*pi*x)'
+yrange -2 2
+plot rnd '. '
+box
+list ini 1 1 3
+fit res rnd 'a+b*sin(c*x)' 'abc' ini
+plot res 'r'
+plot in 'b'
+text -1 -1.3 'fitted:' 'L:r' -1
+putsfit 0 -1.8 'y = ' 'C:r'
+text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
+
+
+File: mgl_en.info,  Node: Envelop sample,  Next: Sew sample,  Prev: Fitting sample,  Up: Advanced features
+
+3.7.6 Envelop sample
+--------------------
+
+ [image src="../png/envelop.png" ]
+
+new a 1000
+fill a 'exp(-8*x^2)*sin(10*pi*x)'
+plot a 'b'
+envelop a
+plot a 'r'
+axis
+
+
+File: mgl_en.info,  Node: Sew sample,  Next: STFA sample,  Prev: Envelop sample,  Up: Advanced features
+
+3.7.7 Sew sample
+----------------
+
+ [image src="../png/sew.png" ]
+
+new a 100 100
+modify a 'mod((y^2-(1-x)^2)/2,0.1)'
+rotate 40 60
+light on
+alpha on
+surf a 'b'
+sew a 'xy' 0.1
+surf a 'r'
+box
+
+
+File: mgl_en.info,  Node: STFA sample,  Next: PDE sample,  Prev: Sew sample,  Up: Advanced features
+
+3.7.8 STFA sample
+-----------------
+
+ [image src="../png/stfa.png" ]
+
+new a 2000
+new b 2000
+fill a 'cos(50*pi*x)*(x<-.5)+cos(100*pi*x)*(x<0)*(x>-.5)+
+        cos(200*pi*x)*(x<.5)*(x>0)+cos(400*pi*x)*(x>.5)'
+subplot 1 2 0
+plot a
+axis
+xlabel '\i t'
+subplot 1 2 1
+stfa a b 64 ''
+axis
+ylabel '\omega' 0
+xlabel '\i t'
+
+
+File: mgl_en.info,  Node: PDE sample,  Next: Beam tracing sample,  Prev: STFA sample,  Up: Advanced features
+
+3.7.9 PDE sample
+----------------
+
+ [image src="../png/pde.png" ]
+
+axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+fill re 'exp(-48*(x+0.7)^2)'
+pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z>-x)' re im 0.01 30
+transpose a
+crange 0 1
+dens a 'wyrRk'
+fplot '-x' 'k|'
+text 0 0.85 'absorption: (x+z)/2 for x+z>0' '' -1
+title 'Equation: ik_0\partial_zu + \Delta u + x\cdot u + i \frac{x+z}{2}\cdot u = 0' 'iC' -1.5
+
+
+File: mgl_en.info,  Node: Beam tracing sample,  Next: Parser sample,  Prev: PDE sample,  Up: Advanced features
+
+3.7.10 Beam tracing sample
+--------------------------
+
+ [image src="../png/qo2d.png" ]
+
+define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y>-x)'
+ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
+plot r(0) r(1) 'k'
+axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+new xx
+new yy
+fill re 'exp(-48*x^2)'
+qo2d a $1 re im r 1 30 xx yy
+crange 0 1
+dens xx yy a 'wyrRk'
+fplot '-x' 'k|'
+text -0.8 0.85 'absorption: (x+y)/2 for x+y>0' 'L' -1
+text 0.5 -0.05 'central ray' 'L' -1
+title 'Beam and ray tracing' 'C' -1.5
+
+
+File: mgl_en.info,  Node: Parser sample,  Next: Manual ticks sample,  Prev: Beam tracing sample,  Up: Advanced features
+
+3.7.11 Parser sample
+--------------------
+
+
+File: mgl_en.info,  Node: Manual ticks sample,  Next: ColumnPlot sample,  Prev: Parser sample,  Up: Advanced features
+
+3.7.12 Tick values sample
+-------------------------
+
+ [image src="../png/tval.png" ]
+
+axis -pi 0 pi 2
+xtick -pi '-\pi' -1.571 '-\pi/2' 0 '0' 0.886 'x^*' 1.571 '\pi/2' pi '\pi'
+axis
+grid
+fplot '2*cos(x^2)^2' 'r2' nan 300
+
+
+File: mgl_en.info,  Node: ColumnPlot sample,  Next: StickPlot sample,  Prev: Manual ticks sample,  Up: Advanced features
+
+3.7.13 ColumnPlot sample
+------------------------
+
+ [image src="../png/column.png" ]
+
+for $1 0 3
+columnplot 4 $1
+box
+text -0.5 0.5 'Plot $1 of 4'
+fplot 'sin(pi*x+pi*$1/2)'
+next
+
+
+File: mgl_en.info,  Node: StickPlot sample,  Next: Stereo image sample,  Prev: ColumnPlot sample,  Up: Advanced features
+
+3.7.14 StickPlot sample
+-----------------------
+
+ [image src="../png/stick.png" ]
+
+ranges -1 1 -1 1 0 1:light on
+stickplot 3 0 40 30 : axis 'xyz_'
+fsurf 'exp(-10*y^2-6*x^2)'
+text 0.2 0 1.2 'z=0' '' -2
+stickplot 3 1 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/2-6*x^2)/sqrt(2)'
+text 0.2 0 1.2 'z=1' '' -2
+stickplot 3 2 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/5-6*x^2)/sqrt(5)'
+text 0.2 0 1.2 'z=2' '' -2
+xlabel '\tau' 0 : ylabel '\rho'
+
+
+File: mgl_en.info,  Node: Stereo image sample,  Prev: StickPlot sample,  Up: Advanced features
+
+3.7.15 Stereo image sample
+--------------------------
+
+ [image src="../png/stereo.png" ]
+
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+subplot 2 1 0
+rotate 40 60+3
+box:surf a
+subplot 2 1 1
+rotate 40 60-3
+box:surf a
+
+
+File: mgl_en.info,  Node: Copying This Manual,  Next: Index,  Prev: Samples,  Up: Top
+
+Appendix A GNU Free Documentation License
+*****************************************
+
+                      Version 1.2, November 2002
+
+     Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
+     51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
+
+     Everyone is permitted to copy and distribute verbatim copies
+     of this license document, but changing it is not allowed.
+
+  0. PREAMBLE
+
+     The purpose of this License is to make a manual, textbook, or other
+     functional and useful document "free" in the sense of freedom: to
+     assure everyone the effective freedom to copy and redistribute it,
+     with or without modifying it, either commercially or
+     noncommercially.  Secondarily, this License preserves for the
+     author and publisher a way to get credit for their work, while not
+     being considered responsible for modifications made by others.
+
+     This License is a kind of "copyleft", which means that derivative
+     works of the document must themselves be free in the same sense.
+     It complements the GNU General Public License, which is a copyleft
+     license designed for free software.
+
+     We have designed this License in order to use it for manuals for
+     free software, because free software needs free documentation: a
+     free program should come with manuals providing the same freedoms
+     that the software does.  But this License is not limited to
+     software manuals; it can be used for any textual work, regardless
+     of subject matter or whether it is published as a printed book.
+     We recommend this License principally for works whose purpose is
+     instruction or reference.
+
+  1. APPLICABILITY AND DEFINITIONS
+
+     This License applies to any manual or other work, in any medium,
+     that contains a notice placed by the copyright holder saying it
+     can be distributed under the terms of this License.  Such a notice
+     grants a world-wide, royalty-free license, unlimited in duration,
+     to use that work under the conditions stated herein.  The
+     "Document", below, refers to any such manual or work.  Any member
+     of the public is a licensee, and is addressed as "you".  You
+     accept the license if you copy, modify or distribute the work in a
+     way requiring permission under copyright law.
+
+     A "Modified Version" of the Document means any work containing the
+     Document or a portion of it, either copied verbatim, or with
+     modifications and/or translated into another language.
+
+     A "Secondary Section" is a named appendix or a front-matter section
+     of the Document that deals exclusively with the relationship of the
+     publishers or authors of the Document to the Document's overall
+     subject (or to related matters) and contains nothing that could
+     fall directly within that overall subject.  (Thus, if the Document
+     is in part a textbook of mathematics, a Secondary Section may not
+     explain any mathematics.)  The relationship could be a matter of
+     historical connection with the subject or with related matters, or
+     of legal, commercial, philosophical, ethical or political position
+     regarding them.
+
+     The "Invariant Sections" are certain Secondary Sections whose
+     titles are designated, as being those of Invariant Sections, in
+     the notice that says that the Document is released under this
+     License.  If a section does not fit the above definition of
+     Secondary then it is not allowed to be designated as Invariant.
+     The Document may contain zero Invariant Sections.  If the Document
+     does not identify any Invariant Sections then there are none.
+
+     The "Cover Texts" are certain short passages of text that are
+     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
+     that says that the Document is released under this License.  A
+     Front-Cover Text may be at most 5 words, and a Back-Cover Text may
+     be at most 25 words.
+
+     A "Transparent" copy of the Document means a machine-readable copy,
+     represented in a format whose specification is available to the
+     general public, that is suitable for revising the document
+     straightforwardly with generic text editors or (for images
+     composed of pixels) generic paint programs or (for drawings) some
+     widely available drawing editor, and that is suitable for input to
+     text formatters or for automatic translation to a variety of
+     formats suitable for input to text formatters.  A copy made in an
+     otherwise Transparent file format whose markup, or absence of
+     markup, has been arranged to thwart or discourage subsequent
+     modification by readers is not Transparent.  An image format is
+     not Transparent if used for any substantial amount of text.  A
+     copy that is not "Transparent" is called "Opaque".
+
+     Examples of suitable formats for Transparent copies include plain
+     ASCII without markup, Texinfo input format, LaTeX input format,
+     SGML or XML using a publicly available DTD, and
+     standard-conforming simple HTML, PostScript or PDF designed for
+     human modification.  Examples of transparent image formats include
+     PNG, XCF and JPG.  Opaque formats include proprietary formats that
+     can be read and edited only by proprietary word processors, SGML or
+     XML for which the DTD and/or processing tools are not generally
+     available, and the machine-generated HTML, PostScript or PDF
+     produced by some word processors for output purposes only.
+
+     The "Title Page" means, for a printed book, the title page itself,
+     plus such following pages as are needed to hold, legibly, the
+     material this License requires to appear in the title page.  For
+     works in formats which do not have any title page as such, "Title
+     Page" means the text near the most prominent appearance of the
+     work's title, preceding the beginning of the body of the text.
+
+     A section "Entitled XYZ" means a named subunit of the Document
+     whose title either is precisely XYZ or contains XYZ in parentheses
+     following text that translates XYZ in another language.  (Here XYZ
+     stands for a specific section name mentioned below, such as
+     "Acknowledgements", "Dedications", "Endorsements", or "History".)
+     To "Preserve the Title" of such a section when you modify the
+     Document means that it remains a section "Entitled XYZ" according
+     to this definition.
+
+     The Document may include Warranty Disclaimers next to the notice
+     which states that this License applies to the Document.  These
+     Warranty Disclaimers are considered to be included by reference in
+     this License, but only as regards disclaiming warranties: any other
+     implication that these Warranty Disclaimers may have is void and
+     has no effect on the meaning of this License.
+
+  2. VERBATIM COPYING
+
+     You may copy and distribute the Document in any medium, either
+     commercially or noncommercially, provided that this License, the
+     copyright notices, and the license notice saying this License
+     applies to the Document are reproduced in all copies, and that you
+     add no other conditions whatsoever to those of this License.  You
+     may not use technical measures to obstruct or control the reading
+     or further copying of the copies you make or distribute.  However,
+     you may accept compensation in exchange for copies.  If you
+     distribute a large enough number of copies you must also follow
+     the conditions in section 3.
+
+     You may also lend copies, under the same conditions stated above,
+     and you may publicly display copies.
+
+  3. COPYING IN QUANTITY
+
+     If you publish printed copies (or copies in media that commonly
+     have printed covers) of the Document, numbering more than 100, and
+     the Document's license notice requires Cover Texts, you must
+     enclose the copies in covers that carry, clearly and legibly, all
+     these Cover Texts: Front-Cover Texts on the front cover, and
+     Back-Cover Texts on the back cover.  Both covers must also clearly
+     and legibly identify you as the publisher of these copies.  The
+     front cover must present the full title with all words of the
+     title equally prominent and visible.  You may add other material
+     on the covers in addition.  Copying with changes limited to the
+     covers, as long as they preserve the title of the Document and
+     satisfy these conditions, can be treated as verbatim copying in
+     other respects.
+
+     If the required texts for either cover are too voluminous to fit
+     legibly, you should put the first ones listed (as many as fit
+     reasonably) on the actual cover, and continue the rest onto
+     adjacent pages.
+
+     If you publish or distribute Opaque copies of the Document
+     numbering more than 100, you must either include a
+     machine-readable Transparent copy along with each Opaque copy, or
+     state in or with each Opaque copy a computer-network location from
+     which the general network-using public has access to download
+     using public-standard network protocols a complete Transparent
+     copy of the Document, free of added material.  If you use the
+     latter option, you must take reasonably prudent steps, when you
+     begin distribution of Opaque copies in quantity, to ensure that
+     this Transparent copy will remain thus accessible at the stated
+     location until at least one year after the last time you
+     distribute an Opaque copy (directly or through your agents or
+     retailers) of that edition to the public.
+
+     It is requested, but not required, that you contact the authors of
+     the Document well before redistributing any large number of
+     copies, to give them a chance to provide you with an updated
+     version of the Document.
+
+  4. MODIFICATIONS
+
+     You may copy and distribute a Modified Version of the Document
+     under the conditions of sections 2 and 3 above, provided that you
+     release the Modified Version under precisely this License, with
+     the Modified Version filling the role of the Document, thus
+     licensing distribution and modification of the Modified Version to
+     whoever possesses a copy of it.  In addition, you must do these
+     things in the Modified Version:
+
+       A. Use in the Title Page (and on the covers, if any) a title
+          distinct from that of the Document, and from those of
+          previous versions (which should, if there were any, be listed
+          in the History section of the Document).  You may use the
+          same title as a previous version if the original publisher of
+          that version gives permission.
+
+       B. List on the Title Page, as authors, one or more persons or
+          entities responsible for authorship of the modifications in
+          the Modified Version, together with at least five of the
+          principal authors of the Document (all of its principal
+          authors, if it has fewer than five), unless they release you
+          from this requirement.
+
+       C. State on the Title page the name of the publisher of the
+          Modified Version, as the publisher.
+
+       D. Preserve all the copyright notices of the Document.
+
+       E. Add an appropriate copyright notice for your modifications
+          adjacent to the other copyright notices.
+
+       F. Include, immediately after the copyright notices, a license
+          notice giving the public permission to use the Modified
+          Version under the terms of this License, in the form shown in
+          the Addendum below.
+
+       G. Preserve in that license notice the full lists of Invariant
+          Sections and required Cover Texts given in the Document's
+          license notice.
+
+       H. Include an unaltered copy of this License.
+
+       I. Preserve the section Entitled "History", Preserve its Title,
+          and add to it an item stating at least the title, year, new
+          authors, and publisher of the Modified Version as given on
+          the Title Page.  If there is no section Entitled "History" in
+          the Document, create one stating the title, year, authors,
+          and publisher of the Document as given on its Title Page,
+          then add an item describing the Modified Version as stated in
+          the previous sentence.
+
+       J. Preserve the network location, if any, given in the Document
+          for public access to a Transparent copy of the Document, and
+          likewise the network locations given in the Document for
+          previous versions it was based on.  These may be placed in
+          the "History" section.  You may omit a network location for a
+          work that was published at least four years before the
+          Document itself, or if the original publisher of the version
+          it refers to gives permission.
+
+       K. For any section Entitled "Acknowledgements" or "Dedications",
+          Preserve the Title of the section, and preserve in the
+          section all the substance and tone of each of the contributor
+          acknowledgements and/or dedications given therein.
+
+       L. Preserve all the Invariant Sections of the Document,
+          unaltered in their text and in their titles.  Section numbers
+          or the equivalent are not considered part of the section
+          titles.
+
+       M. Delete any section Entitled "Endorsements".  Such a section
+          may not be included in the Modified Version.
+
+       N. Do not retitle any existing section to be Entitled
+          "Endorsements" or to conflict in title with any Invariant
+          Section.
+
+       O. Preserve any Warranty Disclaimers.
+
+     If the Modified Version includes new front-matter sections or
+     appendices that qualify as Secondary Sections and contain no
+     material copied from the Document, you may at your option
+     designate some or all of these sections as invariant.  To do this,
+     add their titles to the list of Invariant Sections in the Modified
+     Version's license notice.  These titles must be distinct from any
+     other section titles.
+
+     You may add a section Entitled "Endorsements", provided it contains
+     nothing but endorsements of your Modified Version by various
+     parties--for example, statements of peer review or that the text
+     has been approved by an organization as the authoritative
+     definition of a standard.
+
+     You may add a passage of up to five words as a Front-Cover Text,
+     and a passage of up to 25 words as a Back-Cover Text, to the end
+     of the list of Cover Texts in the Modified Version.  Only one
+     passage of Front-Cover Text and one of Back-Cover Text may be
+     added by (or through arrangements made by) any one entity.  If the
+     Document already includes a cover text for the same cover,
+     previously added by you or by arrangement made by the same entity
+     you are acting on behalf of, you may not add another; but you may
+     replace the old one, on explicit permission from the previous
+     publisher that added the old one.
+
+     The author(s) and publisher(s) of the Document do not by this
+     License give permission to use their names for publicity for or to
+     assert or imply endorsement of any Modified Version.
+
+  5. COMBINING DOCUMENTS
+
+     You may combine the Document with other documents released under
+     this License, under the terms defined in section 4 above for
+     modified versions, provided that you include in the combination
+     all of the Invariant Sections of all of the original documents,
+     unmodified, and list them all as Invariant Sections of your
+     combined work in its license notice, and that you preserve all
+     their Warranty Disclaimers.
+
+     The combined work need only contain one copy of this License, and
+     multiple identical Invariant Sections may be replaced with a single
+     copy.  If there are multiple Invariant Sections with the same name
+     but different contents, make the title of each such section unique
+     by adding at the end of it, in parentheses, the name of the
+     original author or publisher of that section if known, or else a
+     unique number.  Make the same adjustment to the section titles in
+     the list of Invariant Sections in the license notice of the
+     combined work.
+
+     In the combination, you must combine any sections Entitled
+     "History" in the various original documents, forming one section
+     Entitled "History"; likewise combine any sections Entitled
+     "Acknowledgements", and any sections Entitled "Dedications".  You
+     must delete all sections Entitled "Endorsements."
+
+  6. COLLECTIONS OF DOCUMENTS
+
+     You may make a collection consisting of the Document and other
+     documents released under this License, and replace the individual
+     copies of this License in the various documents with a single copy
+     that is included in the collection, provided that you follow the
+     rules of this License for verbatim copying of each of the
+     documents in all other respects.
+
+     You may extract a single document from such a collection, and
+     distribute it individually under this License, provided you insert
+     a copy of this License into the extracted document, and follow
+     this License in all other respects regarding verbatim copying of
+     that document.
+
+  7. AGGREGATION WITH INDEPENDENT WORKS
+
+     A compilation of the Document or its derivatives with other
+     separate and independent documents or works, in or on a volume of
+     a storage or distribution medium, is called an "aggregate" if the
+     copyright resulting from the compilation is not used to limit the
+     legal rights of the compilation's users beyond what the individual
+     works permit.  When the Document is included in an aggregate, this
+     License does not apply to the other works in the aggregate which
+     are not themselves derivative works of the Document.
+
+     If the Cover Text requirement of section 3 is applicable to these
+     copies of the Document, then if the Document is less than one half
+     of the entire aggregate, the Document's Cover Texts may be placed
+     on covers that bracket the Document within the aggregate, or the
+     electronic equivalent of covers if the Document is in electronic
+     form.  Otherwise they must appear on printed covers that bracket
+     the whole aggregate.
+
+  8. TRANSLATION
+
+     Translation is considered a kind of modification, so you may
+     distribute translations of the Document under the terms of section
+     4.  Replacing Invariant Sections with translations requires special
+     permission from their copyright holders, but you may include
+     translations of some or all Invariant Sections in addition to the
+     original versions of these Invariant Sections.  You may include a
+     translation of this License, and all the license notices in the
+     Document, and any Warranty Disclaimers, provided that you also
+     include the original English version of this License and the
+     original versions of those notices and disclaimers.  In case of a
+     disagreement between the translation and the original version of
+     this License or a notice or disclaimer, the original version will
+     prevail.
+
+     If a section in the Document is Entitled "Acknowledgements",
+     "Dedications", or "History", the requirement (section 4) to
+     Preserve its Title (section 1) will typically require changing the
+     actual title.
+
+  9. TERMINATION
+
+     You may not copy, modify, sublicense, or distribute the Document
+     except as expressly provided for under this License.  Any other
+     attempt to copy, modify, sublicense or distribute the Document is
+     void, and will automatically terminate your rights under this
+     License.  However, parties who have received copies, or rights,
+     from you under this License will not have their licenses
+     terminated so long as such parties remain in full compliance.
+
+ 10. FUTURE REVISIONS OF THIS LICENSE
+
+     The Free Software Foundation may publish new, revised versions of
+     the GNU Free Documentation License from time to time.  Such new
+     versions will be similar in spirit to the present version, but may
+     differ in detail to address new problems or concerns.  See
+     `http://www.gnu.org/copyleft/'.
+
+     Each version of the License is given a distinguishing version
+     number.  If the Document specifies that a particular numbered
+     version of this License "or any later version" applies to it, you
+     have the option of following the terms and conditions either of
+     that specified version or of any later version that has been
+     published (not as a draft) by the Free Software Foundation.  If
+     the Document does not specify a version number of this License,
+     you may choose any version ever published (not as a draft) by the
+     Free Software Foundation.
+
+ADDENDUM: How to use this License for your documents
+====================================================
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and license
+notices just after the title page:
+
+       Copyright (C)  YEAR  YOUR NAME.
+       Permission is granted to copy, distribute and/or modify this document
+       under the terms of the GNU Free Documentation License, Version 1.2
+       or any later version published by the Free Software Foundation;
+       with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+       Texts.  A copy of the license is included in the section entitled ``GNU
+       Free Documentation License''.
+
+   If you have Invariant Sections, Front-Cover Texts and Back-Cover
+Texts, replace the "with...Texts." line with this:
+
+         with the Invariant Sections being LIST THEIR TITLES, with
+         the Front-Cover Texts being LIST, and with the Back-Cover Texts
+         being LIST.
+
+   If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+   If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License, to
+permit their use in free software.
+
+
+File: mgl_en.info,  Node: Index,  Prev: Copying This Manual,  Up: Top
+
+Index
+*****
+
+ [index ]
+* Menu:
+
+* AddLegend:                             Legend sample.       (line   6)
+* addlegend:                             Legend.              (line  30)
+* addto:                                 Operators.           (line  18)
+* adjust:                                Axis settings.       (line 109)
+* Alpha <1>:                             3D plot sample.      (line   6)
+* Alpha <2>:                             2D plot sample.      (line   6)
+* Alpha:                                 Transparent surface sample.
+                                                              (line   6)
+* alpha <1>:                             Command options.     (line  20)
+* alpha:                                 Transparency.        (line  15)
+* alphadef <1>:                          Command options.     (line  20)
+* alphadef:                              Transparency.        (line  19)
+* ambient <1>:                           Command options.     (line  26)
+* ambient:                               Lighting.            (line  27)
+* Area <1>:                              Area gradient sample.
+                                                              (line   6)
+* Area:                                  Area sample.         (line   6)
+* area:                                  1D plotting.         (line  60)
+* Arrows:                                Line styles.         (line   6)
+* arrowsize:                             Default sizes.       (line  18)
+* aspect:                                Transformation matrix.
+                                                              (line  56)
+* Axial <1>:                             Adding mesh sample.  (line   6)
+* Axial:                                 Axial sample.        (line   6)
+* axial:                                 2D plotting.         (line 127)
+* axialdir:                              Other settings.      (line  27)
+* Axis <1>:                              Log-log sample.      (line   6)
+* Axis <2>:                              Semi-log sample.     (line   6)
+* Axis <3>:                              2-axes sample.       (line   6)
+* Axis <4>:                              Curvelinear coorinates sample.
+                                                              (line   6)
+* Axis <5>:                              Dens3 sample.        (line   6)
+* Axis <6>:                              Ring chart sample.   (line   6)
+* Axis:                                  Pie chart sample.    (line   6)
+* axis <1>:                              Axis and Colorbar.   (line  10)
+* axis:                                  Axis settings.       (line  12)
+* ball:                                  Primitives drawing.  (line  13)
+* Barh:                                  Barh sample.         (line   6)
+* barh:                                  1D plotting.         (line 101)
+* Bars <1>:                              1D plot sample.      (line   6)
+* Bars <2>:                              Bars fall sample.    (line   6)
+* Bars <3>:                              Bars above sample.   (line   6)
+* Bars <4>:                              Bars 2 colors sample.
+                                                              (line   6)
+* Bars:                                  Bars sample.         (line   6)
+* bars:                                  1D plotting.         (line  88)
+* barwidth:                              Default sizes.       (line  11)
+* beam:                                  3D plotting.         (line 124)
+* Belt:                                  Belt sample.         (line   6)
+* belt:                                  2D plotting.         (line  53)
+* box:                                   Axis and Colorbar.   (line  42)
+* BoxPlot:                               BoxPlot sample.      (line   6)
+* boxplot:                               1D plotting.         (line 177)
+* Boxs:                                  Boxs sample.         (line   6)
+* boxs:                                  2D plotting.         (line  61)
+* call:                                  Program flow.        (line  34)
+* caxis:                                 Axis settings.       (line  52)
+* Chart <1>:                             Ring chart sample.   (line   6)
+* Chart <2>:                             Pie chart sample.    (line   6)
+* Chart:                                 Chart sample.        (line   6)
+* chart:                                 1D plotting.         (line 114)
+* chdir:                                 Program flow.        (line   9)
+* clearlegend:                           Legend.              (line  35)
+* clf:                                   Primitives drawing.  (line   9)
+* Cloud:                                 Cloud sample.        (line   6)
+* cloud:                                 3D plotting.         (line 113)
+* CloudP:                                CloudP sample.       (line   6)
+* Color scheme:                          Color scheme.        (line   6)
+* Colorbar <1>:                          Color schemes sample.
+                                                              (line   6)
+* Colorbar:                              Dens sample.         (line   6)
+* colorbar:                              Axis and Colorbar.   (line  17)
+* ColumnPlot:                            ColumnPlot sample.   (line   6)
+* columnplot:                            Transformation matrix.
+                                                              (line  38)
+* combine:                               Make another data.   (line   6)
+* cone:                                  Primitives drawing.  (line  54)
+* Cont <1>:                              Cont with labels sample.
+                                                              (line   6)
+* Cont <2>:                              Surf & Cont sample.  (line   6)
+* Cont <3>:                              Adding mesh sample.  (line   6)
+* Cont:                                  Cont sample.         (line   6)
+* cont:                                  2D plotting.         (line  83)
+* Cont3:                                 Cont3 sample.        (line   6)
+* cont3:                                 3D plotting.         (line  55)
+* conta:                                 3D plotting.         (line  73)
+* ContD:                                 ContD sample.        (line   6)
+* contd:                                 2D plotting.         (line 112)
+* ContF:                                 ContF sample.        (line   6)
+* contf:                                 2D plotting.         (line  98)
+* ContF3 <1>:                            Isocaps sample.      (line   6)
+* ContF3:                                ContF3 sample.       (line   6)
+* contf3:                                3D plotting.         (line  78)
+* contfa:                                3D plotting.         (line  95)
+* contfx:                                Other plotting.      (line  35)
+* contfy:                                Other plotting.      (line  35)
+* contfz:                                Other plotting.      (line  35)
+* ContX:                                 Cont projection sample.
+                                                              (line   6)
+* contx:                                 Other plotting.      (line  25)
+* ContY:                                 Cont projection sample.
+                                                              (line   6)
+* conty:                                 Other plotting.      (line  25)
+* ContZ:                                 Cont projection sample.
+                                                              (line   6)
+* contz:                                 Other plotting.      (line  25)
+* copy:                                  Data create.         (line  35)
+* cosfft:                                Change data.         (line  40)
+* crange <1>:                            Command options.     (line  30)
+* crange:                                Axis settings.       (line  70)
+* crop:                                  Rearrange data.      (line  33)
+* Crust:                                 Crust sample.        (line   6)
+* crust:                                 Other plotting.      (line  51)
+* ctick:                                 Axis settings.       (line  87)
+* cumsum:                                Change data.         (line  11)
+* curve:                                 Primitives drawing.  (line  23)
+* cut <1>:                               Command options.     (line  46)
+* cut:                                   Cutting.             (line  10)
+* CutMax <1>:                            Isocaps sample.      (line   6)
+* CutMax:                                CutMinMax sample.    (line   6)
+* CutMin <1>:                            Isocaps sample.      (line   6)
+* CutMin:                                CutMinMax sample.    (line   6)
+* CutOff:                                CutOff sample.       (line   6)
+* defchr:                                Program flow.        (line  21)
+* define:                                Program flow.        (line  12)
+* defnum:                                Program flow.        (line  25)
+* defpal:                                Program flow.        (line  29)
+* delete:                                Rearrange data.      (line  37)
+* Dens <1>:                              Flow & Dens sample.  (line   6)
+* Dens <2>:                              Adding mesh sample.  (line   6)
+* Dens <3>:                              3D plot sample.      (line   6)
+* Dens <4>:                              2D plot sample.      (line   6)
+* Dens:                                  Dens sample.         (line   6)
+* dens:                                  2D plotting.         (line  76)
+* Dens3:                                 Dens3 sample.        (line   6)
+* dens3:                                 3D plotting.         (line  41)
+* densa:                                 3D plotting.         (line  50)
+* DensX:                                 Dens projection sample.
+                                                              (line   6)
+* densx:                                 Other plotting.      (line  15)
+* DensY:                                 Dens projection sample.
+                                                              (line   6)
+* densy:                                 Other plotting.      (line  15)
+* DensZ:                                 Dens projection sample.
+                                                              (line   6)
+* densz:                                 Other plotting.      (line  15)
+* Dew:                                   Dew sample.          (line   6)
+* dew:                                   Vector fields.       (line  81)
+* diff:                                  Change data.         (line  17)
+* diff2:                                 Change data.         (line  33)
+* divto:                                 Operators.           (line  12)
+* Dots:                                  Dots sample.         (line   6)
+* dots:                                  Other plotting.      (line  44)
+* Drop <1>:                              Molecules drawing sample.
+                                                              (line   6)
+* Drop:                                  Drops sample.        (line   6)
+* drop:                                  Primitives drawing.  (line  45)
+* else:                                  Program flow.        (line  61)
+* elseif:                                Program flow.        (line  53)
+* endif:                                 Program flow.        (line  65)
+* Envelop:                               Envelop sample.      (line   6)
+* envelop:                               Change data.         (line  71)
+* Error:                                 Error sample.        (line   6)
+* error:                                 1D plotting.         (line 170)
+* evaluate:                              Make another data.   (line  10)
+* export:                                File I/O.            (line  45)
+* extend:                                Rearrange data.      (line  13)
+* facex:                                 Primitives drawing.  (line  30)
+* facey:                                 Primitives drawing.  (line  31)
+* facez:                                 Primitives drawing.  (line  32)
+* Fall:                                  Fall sample.         (line   6)
+* fall:                                  2D plotting.         (line  45)
+* fgets:                                 Text printing.       (line  43)
+* fill:                                  Data filling.        (line   6)
+* Fit:                                   Fitting sample.      (line   6)
+* fit:                                   Nonlinear fitting.   (line  39)
+* fits:                                  Nonlinear fitting.   (line  31)
+* Flow <1>:                              Flow & Dens sample.  (line   6)
+* Flow <2>:                              Flow 3D sample.      (line   6)
+* Flow:                                  Flow sample.         (line   6)
+* flow:                                  Vector fields.       (line  90)
+* Fog:                                   Surface in fog sample.
+                                                              (line   6)
+* fog:                                   Fog.                 (line   6)
+* font:                                  Other settings.      (line   6)
+* Font styles:                           Font styles.         (line   6)
+* fontsize:                              Command options.     (line  50)
+* for:                                   Program flow.        (line  69)
+* fplot:                                 Other plotting.      (line  89)
+* fsurf:                                 Other plotting.      (line 102)
+* func:                                  Program flow.        (line  38)
+* Grad:                                  Grad sample.         (line   6)
+* grad:                                  2D plotting.         (line 144)
+* grid:                                  Axis and Colorbar.   (line  37)
+* grid2:                                 2D plotting.         (line 155)
+* grid3:                                 3D plotting.         (line 100)
+* grida:                                 3D plotting.         (line 108)
+* hankel:                                Change data.         (line  44)
+* hist:                                  Make another data.   (line  20)
+* idset:                                 Data create.         (line  43)
+* if:                                    Program flow.        (line  48)
+* import:                                File I/O.            (line  40)
+* info:                                  Data create.         (line  47)
+* inplot:                                Transformation matrix.
+                                                              (line  28)
+* insert:                                Rearrange data.      (line  44)
+* integrate:                             Change data.         (line  13)
+* jacobian:                              Make another data.   (line 136)
+* Legend:                                Legend sample.       (line   6)
+* legend <1>:                            Command options.     (line  59)
+* legend:                                Legend.              (line  19)
+* legendbox:                             Legend.              (line  38)
+* legendmarks:                           Legend.              (line  42)
+* Light:                                 Several light sample.
+                                                              (line   6)
+* light:                                 Lighting.            (line  13)
+* Line <1>:                              Arrow styles sample. (line   6)
+* Line:                                  Line styles sample.  (line   6)
+* line:                                  Primitives drawing.  (line  18)
+* Line style:                            Line styles.         (line   6)
+* linewidth:                             Default sizes.       (line  21)
+* list:                                  Data create.         (line  16)
+* Map:                                   Map sample.          (line   6)
+* map:                                   Dual plotting.       (line  75)
+* Mark <1>:                              Line styles sample.  (line   6)
+* Mark:                                  Mark sample.         (line   6)
+* mark:                                  1D plotting.         (line 153)
+* Mark style:                            Line styles.         (line   6)
+* marksize <1>:                          Command options.     (line  53)
+* marksize:                              Default sizes.       (line  15)
+* max:                                   Make another data.   (line  44)
+* Mesh:                                  Mesh sample.         (line   6)
+* mesh:                                  2D plotting.         (line  38)
+* meshnum <1>:                           Command options.     (line  56)
+* meshnum:                               Other settings.      (line  21)
+* mglParse:                              Parser sample.       (line   6)
+* mglPDE:                                PDE sample.          (line   6)
+* mglQO2d:                               Beam tracing sample. (line   6)
+* mglRay <1>:                            Beam tracing sample. (line   6)
+* mglRay:                                PDE sample.          (line   6)
+* min:                                   Make another data.   (line  48)
+* mirror:                                Change data.         (line  57)
+* modify:                                Data filling.        (line   6)
+* momentum:                              Make another data.   (line  34)
+* multo:                                 Operators.           (line   6)
+* new:                                   Data create.         (line   6)
+* next:                                  Program flow.        (line  76)
+* norm:                                  Change data.         (line  82)
+* normsl:                                Change data.         (line  75)
+* once:                                  Program flow.        (line  80)
+* origin:                                Axis settings.       (line  55)
+* palette:                               Other settings.      (line  16)
+* pde:                                   Make another data.   (line  90)
+* perspective:                           Transformation matrix.
+                                                              (line  61)
+* Pipe <1>:                              Pipe 3D sample.      (line   6)
+* Pipe:                                  Pipe sample.         (line   6)
+* pipe:                                  Vector fields.       (line 124)
+* Plot <1>:                              Log-log sample.      (line   6)
+* Plot <2>:                              Semi-log sample.     (line   6)
+* Plot <3>:                              Legend sample.       (line   6)
+* Plot <4>:                              1D plot sample.      (line   6)
+* Plot:                                  Plot sample.         (line   6)
+* plot:                                  1D plotting.         (line  32)
+* plotfactor:                            Zooming.             (line  10)
+* put:                                   Data filling.        (line  30)
+* Puts <1>:                              Font faces sample.   (line   6)
+* Puts <2>:                              TeX parsing sample.  (line   6)
+* Puts:                                  Text styles sample.  (line   6)
+* PutsFit:                               Fitting sample.      (line   6)
+* putsfit:                               Nonlinear fitting.   (line  47)
+* qo2d:                                  Make another data.   (line 122)
+* quadplot:                              Other plotting.      (line  79)
+* Radar:                                 Radar sample.        (line   6)
+* radar:                                 1D plotting.         (line  40)
+* ranges:                                Axis settings.       (line  14)
+* ray:                                   Make another data.   (line 110)
+* read:                                  File I/O.            (line   6)
+* readall:                               File I/O.            (line  19)
+* readhdf:                               File I/O.            (line  34)
+* readmat:                               File I/O.            (line  14)
+* rearrange:                             Rearrange data.      (line   6)
+* rect:                                  Primitives drawing.  (line  61)
+* Region <1>:                            Region gradient sample.
+                                                              (line   6)
+* Region:                                Region sample.       (line   6)
+* region:                                1D plotting.         (line  71)
+* resize:                                Make another data.   (line  53)
+* return:                                Program flow.        (line  44)
+* roll:                                  Change data.         (line  52)
+* rotate:                                Transformation matrix.
+                                                              (line  49)
+* rotatetext:                            Other settings.      (line  13)
+* save:                                  File I/O.            (line  31)
+* savehdf:                               File I/O.            (line  37)
+* setsize:                               Export to file.      (line  12)
+* SetTicks <1>:                          Log-log sample.      (line   6)
+* SetTicks:                              Semi-log sample.     (line   6)
+* SetTicksVal:                           Manual ticks sample. (line   6)
+* Sew:                                   Sew sample.          (line   6)
+* sew:                                   Change data.         (line  61)
+* sinfft:                                Change data.         (line  37)
+* smooth:                                Change data.         (line  64)
+* Sphere:                                Molecules drawing sample.
+                                                              (line   6)
+* sphere:                                Primitives drawing.  (line  40)
+* squeeze:                               Rearrange data.      (line  27)
+* Stem:                                  Stem sample.         (line   6)
+* stem:                                  1D plotting.         (line  80)
+* Step:                                  Step sample.         (line   6)
+* step:                                  1D plotting.         (line 128)
+* STFA:                                  STFA sample.         (line   6)
+* stfa:                                  Dual plotting.       (line  85)
+* stfad:                                 Make another data.   (line  83)
+* StickPlot:                             StickPlot sample.    (line   6)
+* stickplot:                             Transformation matrix.
+                                                              (line  43)
+* stop:                                  Program flow.        (line  83)
+* subdata:                               Make another data.   (line  57)
+* SubPlot <1>:                           Adding mesh sample.  (line   6)
+* SubPlot:                               1D plot sample.      (line   6)
+* subplot:                               Transformation matrix.
+                                                              (line  14)
+* subto:                                 Operators.           (line  24)
+* sum:                                   Make another data.   (line  41)
+* Surf <1>:                              Mirrored surface sample.
+                                                              (line   6)
+* Surf <2>:                              Several light sample.
+                                                              (line   6)
+* Surf <3>:                              Surf & Cont sample.  (line   6)
+* Surf <4>:                              Adding mesh sample.  (line   6)
+* Surf <5>:                              3D plot sample.      (line   6)
+* Surf <6>:                              2D plot sample.      (line   6)
+* Surf <7>:                              Sharp colors sample. (line   6)
+* Surf <8>:                              Surface in fog sample.
+                                                              (line   6)
+* Surf <9>:                              Transparent surface sample.
+                                                              (line   6)
+* Surf:                                  Surf sample.         (line   6)
+* surf:                                  2D plotting.         (line  31)
+* Surf3 <1>:                             Coloring by coordinates sample.
+                                                              (line   6)
+* Surf3 <2>:                             CutOff sample.       (line   6)
+* Surf3 <3>:                             Isocaps sample.      (line   6)
+* Surf3 <4>:                             CutMinMax sample.    (line   6)
+* Surf3:                                 Surf3 sample.        (line   6)
+* surf3:                                 3D plotting.         (line  27)
+* Surf3A:                                Surf3A sample.       (line   6)
+* surf3a:                                Dual plotting.       (line  52)
+* Surf3C:                                Surf3C sample.       (line   6)
+* surf3c:                                Dual plotting.       (line  30)
+* SurfA:                                 SurfA sample.        (line   6)
+* surfa:                                 Dual plotting.       (line  45)
+* SurfC:                                 SurfC sample.        (line   6)
+* surfc:                                 Dual plotting.       (line  23)
+* swap:                                  Change data.         (line  49)
+* Tens:                                  Tens sample.         (line   6)
+* tens:                                  1D plotting.         (line  52)
+* Ternary:                               Ternary plot sample. (line   6)
+* ternary:                               Axis settings.       (line  59)
+* Text:                                  Text sample.         (line   6)
+* text:                                  Text printing.       (line  14)
+* TextMark:                              TextMark sample.     (line   6)
+* textmark:                              1D plotting.         (line 161)
+* Textual formulas:                      Textual formulas.    (line   6)
+* ticklen:                               Default sizes.       (line  26)
+* tickstl:                               Default sizes.       (line  31)
+* Tile:                                  Tile sample.         (line   6)
+* tile:                                  2D plotting.         (line  68)
+* TileS:                                 TileS sample.        (line   6)
+* tiles:                                 Dual plotting.       (line  67)
+* title:                                 Text printing.       (line  39)
+* tlabel:                                Axis and Colorbar.   (line  50)
+* Torus:                                 Torus sample.        (line   6)
+* torus:                                 1D plotting.         (line 135)
+* trace:                                 Make another data.   (line  64)
+* Traj:                                  Traj sample.         (line   6)
+* traj:                                  Vector fields.       (line  27)
+* transform:                             Make another data.   (line  70)
+* transforma:                            Make another data.   (line  79)
+* transparent:                           Transparency.        (line  23)
+* transpose:                             Rearrange data.      (line  22)
+* TranspType <1>:                        Lamp-like transparency.
+                                                              (line   6)
+* TranspType <2>:                        Glass-like transparency.
+                                                              (line   6)
+* TranspType:                            Normal transparency. (line   6)
+* transptype:                            Transparency.        (line  26)
+* tricont:                               Other plotting.      (line  68)
+* triplot:                               Other plotting.      (line  57)
+* Tube:                                  Tube sample.         (line   6)
+* tube:                                  1D plotting.         (line 143)
+* var:                                   Data create.         (line  11)
+* Vect <1>:                              Vect 3D sample.      (line   6)
+* Vect:                                  Vect sample.         (line   6)
+* vect:                                  Vector fields.       (line  34)
+* VectC <1>:                             VectC 3D sample.     (line   6)
+* VectC:                                 VectC sample.        (line   6)
+* vectc:                                 Vector fields.       (line  51)
+* VectL <1>:                             VectL 3D sample.     (line   6)
+* VectL:                                 VectL sample.        (line   6)
+* vectl:                                 Vector fields.       (line  66)
+* write:                                 Export to file.      (line   6)
+* xlabel:                                Axis and Colorbar.   (line  47)
+* xrange <1>:                            Command options.     (line  34)
+* xrange:                                Axis settings.       (line  67)
+* xtick:                                 Axis settings.       (line  84)
+* ylabel:                                Axis and Colorbar.   (line  48)
+* yrange <1>:                            Command options.     (line  38)
+* yrange:                                Axis settings.       (line  68)
+* ytick:                                 Axis settings.       (line  85)
+* zlabel:                                Axis and Colorbar.   (line  49)
+* zoom:                                  Zooming.             (line  16)
+* zrange <1>:                            Command options.     (line  42)
+* zrange:                                Axis settings.       (line  69)
+* ztick:                                 Axis settings.       (line  86)
+
+
+
+Tag Table:
+Node: Top943
+Node: MGL interface2115
+Node: General concepts7765
+Node: Coordinate axes10480
+Node: Line styles13288
+Node: Color scheme16645
+Node: Font styles19649
+Node: Textual formulas24384
+Node: Graphics setup28148
+Node: Transparency28552
+Ref: alpha29167
+Ref: alphadef29411
+Ref: transparent29552
+Ref: transptype29649
+Node: Lighting30245
+Ref: light30755
+Ref: ambient31319
+Node: Fog31457
+Ref: fog31571
+Node: Default sizes31983
+Ref: barwidth32352
+Ref: marksize32479
+Ref: arrowsize32558
+Ref: linewidth32660
+Ref: ticklen32870
+Ref: tickstl33075
+Node: Zooming33314
+Ref: plotfactor33611
+Ref: zoom33916
+Node: Cutting34300
+Ref: cut34631
+Node: Other settings35467
+Ref: font35591
+Ref: rotatetext35934
+Ref: palette36041
+Ref: meshnum36246
+Ref: axialdir36544
+Node: Axis settings36683
+Ref: axis37163
+Ref: ranges37241
+Ref: caxis39397
+Ref: origin39497
+Ref: ternary39662
+Ref: xrange40101
+Ref: yrange40148
+Ref: zrange40195
+Ref: crange40242
+Ref: xtick40794
+Ref: ytick40839
+Ref: ztick40884
+Ref: ctick40929
+Ref: adjust41992
+Node: Transformation matrix42176
+Ref: subplot42818
+Ref: inplot43547
+Ref: columnplot44093
+Ref: stickplot44351
+Ref: rotate44619
+Ref: aspect44881
+Ref: perspective45111
+Node: Export to file45284
+Ref: write45444
+Ref: setsize45743
+Node: Primitives drawing45993
+Ref: clf46242
+Ref: ball46363
+Ref: line46533
+Ref: curve46763
+Ref: facex47111
+Ref: facey47173
+Ref: facez47235
+Ref: sphere47705
+Ref: drop47889
+Ref: cone48399
+Ref: rect48702
+Node: Text printing49061
+Ref: text49662
+Ref: title51030
+Ref: fgets51218
+Node: Axis and Colorbar51505
+Ref: colorbar52220
+Ref: grid53237
+Ref: box53493
+Ref: xlabel53685
+Ref: ylabel53744
+Ref: zlabel53803
+Ref: tlabel53862
+Node: Legend54418
+Ref: legend55311
+Ref: addlegend55905
+Ref: clearlegend56131
+Ref: legendbox56195
+Ref: legendmarks56319
+Node: 1D plotting56426
+Ref: plot58146
+Ref: radar58554
+Ref: tens59291
+Ref: area59698
+Ref: region60291
+Ref: stem60805
+Ref: bars61181
+Ref: barh61923
+Ref: chart62713
+Ref: step63544
+Ref: torus63887
+Ref: tube64303
+Ref: mark64813
+Ref: textmark65198
+Ref: error65715
+Ref: boxplot66058
+Node: 2D plotting66606
+Ref: surf68277
+Ref: mesh68615
+Ref: fall68941
+Ref: belt69369
+Ref: boxs69792
+Ref: tile70105
+Ref: dens70486
+Ref: cont70859
+Ref: contf71687
+Ref: contd72428
+Ref: axial73230
+Ref: grad74127
+Ref: grid274768
+Node: 3D plotting75061
+Ref: surf376420
+Ref: dens377107
+Ref: densa77614
+Ref: cont377799
+Ref: conta78757
+Ref: contf378958
+Ref: contfa79821
+Ref: grid380030
+Ref: grida80465
+Ref: cloud80642
+Ref: beam81237
+Node: Dual plotting81914
+Ref: surfc83011
+Ref: surf3c83340
+Ref: surfa84128
+Ref: surf3a84478
+Ref: tiles85273
+Ref: map85668
+Ref: stfa86242
+Node: Vector fields86719
+Ref: traj88053
+Ref: vect88425
+Ref: vectc89338
+Ref: vectl90172
+Ref: dew91008
+Ref: flow91525
+Ref: pipe93421
+Node: Other plotting94575
+Ref: densz95293
+Ref: densy95293
+Ref: densx95293
+Ref: contz95817
+Ref: conty95817
+Ref: contx95817
+Ref: contfz96360
+Ref: contfy96360
+Ref: contfx96360
+Ref: dots96841
+Ref: crust97170
+Ref: triplot97472
+Ref: tricont98114
+Ref: quadplot98712
+Ref: fplot99308
+Ref: fsurf99990
+Node: Nonlinear fitting100702
+Ref: fits102255
+Ref: fit102684
+Ref: putsfit103080
+Node: Data create103348
+Ref: new103491
+Ref: var103707
+Ref: list103936
+Ref: copy104972
+Ref: idset105370
+Ref: info105524
+Node: Data filling105794
+Ref: fill105936
+Ref: modify106588
+Ref: put107094
+Node: Rearrange data107886
+Ref: rearrange108029
+Ref: extend108383
+Ref: transpose108874
+Ref: squeeze109113
+Ref: crop109400
+Ref: delete109547
+Ref: insert109783
+Node: File I/O109896
+Ref: read110032
+Ref: readmat110354
+Ref: readall110552
+Ref: save111179
+Ref: readhdf111274
+Ref: savehdf111384
+Ref: import111494
+Ref: export111724
+Node: Make another data112076
+Ref: combine112227
+Ref: evaluate112363
+Ref: hist112922
+Ref: momentum113592
+Ref: sum113940
+Ref: max114068
+Ref: min114197
+Ref: resize114324
+Ref: subdata114457
+Ref: trace114834
+Ref: transform115108
+Ref: transforma115628
+Ref: stfad115780
+Ref: pde116137
+Ref: ray117394
+Ref: qo2d118114
+Ref: jacobian118940
+Node: Change data119450
+Ref: cumsum119867
+Ref: integrate119976
+Ref: diff120109
+Ref: diff2120932
+Ref: sinfft121051
+Ref: cosfft121204
+Ref: hankel121362
+Ref: swap121517
+Ref: roll121654
+Ref: mirror121803
+Ref: sew121952
+Ref: smooth122124
+Ref: envelop122418
+Ref: normsl122565
+Ref: norm122932
+Node: Operators123174
+Ref: multo123305
+Ref: divto123476
+Ref: addto123641
+Ref: subto123772
+Node: Program flow123913
+Ref: chdir124153
+Ref: define124228
+Ref: defchr124627
+Ref: defnum124786
+Ref: defpal124942
+Ref: call125108
+Ref: func125310
+Ref: return125618
+Ref: if125698
+Ref: elseif125886
+Ref: else126171
+Ref: endif126282
+Ref: for126345
+Ref: next126652
+Ref: once126703
+Ref: stop126872
+Node: Command options126922
+Node: Suffixes129365
+Node: Utilities130790
+Node: Examples132453
+Node: Basic usage133047
+Node: Advanced usage134763
+Node: Subplots135216
+Node: Axis and grids136637
+Node: Curvilinear coordinates139075
+Node: Text printing example140182
+Node: Data handling141751
+Node: Array creation141938
+Node: Data changing143768
+Node: Data plotting146177
+Node: Plots for 1D data147263
+Node: Plots for 2D data149680
+Node: Plots for 3D data152832
+Node: Surface transparency154584
+Node: Hints156637
+Node: ``Compound'' graphics157459
+Node: Two axes in one plot159199
+Node: Titles for the plot160178
+Node: Changing of the color range160924
+Node: Management of a point cutting161606
+Node: Vector field visualization162699
+Node: Several light sources163336
+Node: CutMin and CutMax features163965
+Node: Mapping visualization165008
+Node: Log-scaled plot166174
+Node: Nonlinear fitting hints166763
+Node: PDE solving hints168226
+Node: Stereo image173434
+Node: Samples173897
+Node: 1D plotting samples174379
+Node: Plot sample174977
+Node: Radar sample175271
+Node: Tens sample175519
+Node: Area sample175815
+Node: Area gradient sample176148
+Node: Bars sample176536
+Node: Bars 2 colors sample176808
+Node: Bars above sample177106
+Node: Bars fall sample177398
+Node: Barh sample177679
+Node: Step sample177940
+Node: Stem sample178255
+Node: Region sample178587
+Node: Region gradient sample178915
+Node: Error sample179265
+Node: BoxPlot sample179750
+Node: Mark sample180008
+Node: TextMark sample180380
+Node: Tube sample180769
+Node: Text sample181115
+Node: Torus sample181545
+Node: Chart sample181855
+Node: Pie chart sample182113
+Node: Ring chart sample182447
+Node: 2D plotting samples182763
+Node: Surf sample183217
+Node: Transparent surface sample183498
+Node: Surface in fog sample183854
+Node: Sharp colors sample184203
+Node: Mesh sample184536
+Node: Fall sample184821
+Node: Belt sample185098
+Node: Tile sample185384
+Node: Boxs sample185670
+Node: Dens sample185969
+Node: Cont sample186244
+Node: ContF sample186524
+Node: ContD sample186818
+Node: Axial sample187117
+Node: Grad sample187420
+Node: 3D plotting samples187683
+Node: Surf3 sample188079
+Node: Cloud sample188370
+Node: CloudP sample188682
+Node: Dens3 sample188887
+Node: Cont3 sample189209
+Node: ContF3 sample189504
+Node: Cont projection sample189822
+Node: Dens projection sample190229
+Node: CutMinMax sample190639
+Node: Isocaps sample190997
+Node: CutOff sample191408
+Node: Dual plotting samples191761
+Node: SurfC sample192285
+Node: SurfA sample192634
+Node: TileS sample193013
+Node: Map sample193358
+Node: Traj sample193806
+Node: Vect sample194238
+Node: VectL sample194580
+Node: VectC sample194927
+Node: Flow sample195274
+Node: Pipe sample195616
+Node: Dew sample195967
+Node: Surf3C sample196316
+Node: Surf3A sample196686
+Node: Vect 3D sample197060
+Node: VectL 3D sample197591
+Node: VectC 3D sample198128
+Node: Flow 3D sample198665
+Node: Pipe 3D sample199197
+Node: Crust sample199735
+Node: Dots sample200000
+Node: Basic features200229
+Node: 1D plot sample200688
+Node: 2D plot sample201321
+Node: 3D plot sample202117
+Node: Line styles sample202674
+Node: Arrow styles sample202898
+Node: Text styles sample203128
+Node: TeX parsing sample203722
+Node: Font faces sample204019
+Node: Colors sample204236
+Node: Color schemes sample206436
+Node: Normal transparency207943
+Node: Glass-like transparency208445
+Node: Lamp-like transparency208957
+Node: Additional features209439
+Node: Legend sample209890
+Node: Adding mesh sample210291
+Node: Surf & Cont sample210788
+Node: Flow & Dens sample211127
+Node: Several light sample211567
+Node: Mirrored surface sample211967
+Node: Cont with labels sample212500
+Node: Ternary plot sample212831
+Node: Coloring by coordinates sample213424
+Node: Drops sample213791
+Node: Molecules drawing sample214379
+Node: Advanced features215608
+Node: Curvelinear coorinates sample216060
+Node: 2-axes sample216791
+Node: Semi-log sample217215
+Node: Log-log sample217619
+Node: Fitting sample218027
+Node: Envelop sample218521
+Node: Sew sample218795
+Node: STFA sample219094
+Node: PDE sample219513
+Node: Beam tracing sample220031
+Node: Parser sample220629
+Node: Manual ticks sample220795
+Node: ColumnPlot sample221139
+Node: StickPlot sample221443
+Node: Stereo image sample221997
+Node: Copying This Manual222350
+Node: Index244765
+
+End Tag Table
diff --git a/texinfo/mgl_ru.html/mgl_ru.html b/texinfo/mgl_ru.html/mgl_ru.html
new file mode 100644
index 0000000..1096480
--- /dev/null
+++ b/texinfo/mgl_ru.html/mgl_ru.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: Язык MGL</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: Язык MGL">
+<meta name="keywords" content="Язык MGL для версии 1.11: Язык MGL">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Top"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="YA_0437_044b_043a-MGL"></a>
+<h1 class="settitle">Язык MGL</h1>
+
+<p>Это документация для языка MGL (версии 1.11). Пожалуйста сообщайте о любых ошибках в этом руководстве на <a href="mailto:mathgl.abalakin at gmail.org">mathgl.abalakin at gmail.org</a>. Дополнительную информацию о MGL и MathGL можно найти на домашней странице проекта <a href="http://mathgl.sourceforge.net/">http://mathgl.sourceforge.net/</a>.
+</p>
+<p>Copyright &copy; 2010 Алексей Балакин. 
+</p>
+<blockquote><p>Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being &ldquo;A GNU Manual,&rdquo;
+and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled &ldquo;GNU Free Documentation
+License.&rdquo;
+</p>
+<p>(a) The FSF&rsquo;s Back-Cover Text is: &ldquo;You have the freedom to
+copy and modify this GNU manual.  Buying copies from the FSF
+supports it in developing GNU and promoting software freedom.&rdquo;
+</p></blockquote>
+
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="mgl_ru_1.html#MGL-interface">1. Язык MGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mgl_ru_2.html#Examples">2. MathGL examples</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mgl_ru_3.html#Samples">3. Примеры использования MathGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mgl_ru_4.html#Copying-This-Manual">A. GNU Free Documentation License</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="mgl_ru_5.html#Index">Индекс</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mgl_ru.html/mgl_ru_1.html b/texinfo/mgl_ru.html/mgl_ru_1.html
new file mode 100644
index 0000000..94434cd
--- /dev/null
+++ b/texinfo/mgl_ru.html/mgl_ru_1.html
@@ -0,0 +1,3154 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: 1. Язык MGL</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: 1. Язык MGL">
+<meta name="keywords" content="Язык MGL для версии 1.11: 1. Язык MGL">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="MGL-interface"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="YA_0437_044b_043a-MGL-1"></a>
+<h1 class="chapter">1. Язык MGL</h1>
+
+<p>MathGL имеет встроенный скриптовый язык MGL для обработки и отображения данных. Скрипты MGL можно использовать как независимо (программами UDAV, mgl2png, mgl2eps, mgl2svg и пр., see section <a href="#Utilities">Утилиты для MGL</a>) так и вызовами библиотеки.
+</p>
+<p>Язык MGL достаточно простой. Каждая строка &ndash; отдельная команда. Первое слово &ndash; имя команды, а все остальные ее аргументы. Команда может иметь до 1000 аргументов (по крайней мере сейчас). Слова разделяются одно от другого пробелом или символом табуляции. Различий между верхним и нижним индексом нет, т.е. переменные <var>a</var> и <var>A</var> идентичны. Символ &lsquo;<samp>#</samp>&rsquo; начинает комментарий &ndash; все символы после него игнорируются до конца строки. Исключением является случай, когда &lsquo;<samp>#</samp>&rsquo; входит в строку. Опции команды указываются после символа &lsquo;<samp>;</samp>&rsquo; (see section <a href="#Command-options">Опции команд</a>). Символ &lsquo;<samp>:</samp>&rsquo; начинает новую команду (подобно переводу строки) если он расположен не внутри скобок или строки.
+</p>
+<p>Если строка содержит ссылки на внешние параметры (&lsquo;<samp>$0</samp>&rsquo;, &lsquo;<samp>$1</samp>&rsquo; ... &lsquo;<samp>$9</samp>&rsquo;) или макроопределения (&lsquo;<samp>$a</samp>&rsquo;, &lsquo;<samp>$b</samp>&rsquo; ... &lsquo;<samp>$z</samp>&rsquo;), то текущие значения параметров/макроопределений подставляются в строку вместо ссылки до выполнением команды. Это позволяет использовать один и тот же скрипт при различных входных параметрах командной строки или вводить макроопределения по ходу исполнения команд скрипта.
+</p>
+<p>Аргументы команды могут быть строками, переменными или числами. 
+</p><ul>
+<li> 
+Строка &ndash; произвольный набор символов между метками &lsquo;<samp>'</samp>&rsquo;.
+
+</li><li> 
+Обычно переменная имеет имя, состоящее из букв и чисел (должно начинаться с буквы и не быть длиннее 64 символов). В качестве переменной можно использовать временные массивы, включающие в себя:
+<ul>
+<li> 
+срезы (&ldquo;подмассивы&rdquo;) массивов данных (подобно команде <a href="#subdata">subdata</a>). Например, <code>a(1)</code> или <code>a(1,:)</code> или <code>a(1,:,:)</code> &ndash; вторая строка массива <var>a</var>, <code>a(:,2)</code> или <code>a(:,2,:)</code> &ndash; третий столбец, <code>a(:,:,0)</code> &ndash; первый срез и т.д. Также можно выделить часть массива с m-го по n-ый элемент <code>a(m:n,:,:)</code> или просто <code>a(m:n)</code>.
+
+</li><li> 
+произвольные комбинации столбцов данных (например, <code>a('n*w^2/exp(t)')</code>), если столбцы данных были именованы командой <a href="#idset">idset</a> или в файле данных (в строке начинающейся с <code>##</code>).
+
+</li><li> 
+произвольное выражение из существующих переменных и констант. Например, &lsquo;<samp>sqrt(dat(:,5)+1)</samp>&rsquo; даст временный массив данных с элементами равными <code>tmp[i,j] = sqrt(dat[i,5,j]+1)</code>.
+
+</li><li> 
+массивы с элементами заданными в квадратных скобках [], разделенные &lsquo;<samp>,</samp>&rsquo;. При этом внутри выражения не должно быть пробелов! Например, &lsquo;<samp>[1,2,3]</samp>&rsquo; даст временный массив из 3 элементов {1, 2, 3}; &lsquo;<samp>[[11,12],[21,22]]</samp>&rsquo; даст матрицу 2*2 и т.д. Элементами такой конструкции могут быть и массивы если их размерности одинаковые, например &lsquo;<samp>[v1,v2,...,vn]</samp>&rsquo;.
+
+</li><li> 
+результат команд построения новых данных (see section <a href="#Make-another-data">Создание новых данных</a>), если они заключены в фигурные скобки {}. Например, &lsquo;<samp>{sum dat 'x'}</samp>&rsquo; даст временный массив, который есть результат суммирования <var>dat</var> вдоль &rsquo;x&rsquo;. Это такой же массив как и <var>tmp</var>, полученный командой &lsquo;<samp>sum tmp dat 'x'</samp>&rsquo;. При этом можно использовать вложенные конструкции, например &lsquo;<samp>{sum {max dat 'z'} 'x'}</samp>&rsquo;.
+</li></ul>
+<p>Временные массивы не могут стоять в качестве первого аргумента команд, создающих массивы (например, &lsquo;<samp>new</samp>&rsquo;, &lsquo;<samp>read</samp>&rsquo;, &lsquo;<samp>hist</samp>&rsquo; и т.д.).
+</p>
+</li><li> 
+К скалярным переменным, кроме собственно чисел, относятся: специальные переменные <code>nan=#QNAN, pi=3.1415926..., on=1, off=0, :=-1</code>, переменные с суффиксами (see section <a href="#Suffixes">Суффиксы переменных</a>), переменные определенные командой <a href="#define">define</a>. Также массивы размером 1x1x1 считаются скалярами (например, &lsquo;<samp>pi/dat.nx</samp>&rsquo;).
+</li></ul>
+<p>Перед первым использованием все переменные должны быть определены с помощью команд, создающих массивы (<a href="#new">new</a>, <a href="#var">var</a>, <a href="#list">list</a>, <a href="#copy">copy</a>, <a href="#read">read</a>, <a href="#hist">hist</a>, <a href="#sum">sum</a> и др., see section <a href="#Data-create">Создание данных</a> и <a href="#Make-another-data">Создание новых данных</a>). 
+</p>
+<p>Команды могут иметь несколько наборов аргументов (например, <code>plot ydat</code> и <code>plot xdat ydat</code>). Все аргументы команды для выбранного набора должны быть указаны, однако часть из них могут иметь значения по умолчанию. Такие аргументы в описании команд будут помещены в квадратные скобки [], например <code>plot ydat ['stl'='' zval=nan]</code>. При этом запись <code>[arg1 arg2 arg3 ...]</code> подразумевает <code>[arg1 [arg2 [arg3 ...]]]</code>, т.е. опускать можно только аргументы с конца, если вы согласны с их значениями по умолчанию. Например, <code>plot ydat '' 1</code> или <code>plot ydat ''</code> правильно, а <code>plot ydat 1</code> не правильно (аргумент <code>'stl'</code> пропущен).
+</p>
+<p>Все команды MGL можно разделить на несколько групп. В дальнейшем будет использованы следующие обозначения при описании команд: имя команды выделено жирным, строки заключены в одинарные кавычки &rdquo;, переменные выделены курсивом, числа (скаляры) выделены моноширинным шрифтом. Необязательные аргументы будут помещены в квадратные скобки [] и показаны их значения по умолчанию. Подробную информацию о цвете и стиле линий (see section <a href="#Line-styles">Стиль линий</a>), цветовых схемах (see section <a href="#Color-scheme">Цветовая схема</a>), стиле текста и символах TeX (see section <a href="#Font-styles">Стиль текста</a>), текстовых формулах (see section <a href="#Textual-formulas">Текстовые формулы</a>) можно найти в соответствующих разделах.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#General-concepts">1.1 Основные принципы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Graphics-setup">1.2 Настройка графика</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-settings">1.3 Параметры осей координат</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transformation-matrix">1.4 Матрица преобразования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Export-to-file">1.5 Экспорт в файл</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Primitives-drawing">1.6 Рисование примитивов</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing">1.7 Вывод текста</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-Colorbar">1.8 Оси и Colorbar</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Legend">1.9 Легенда</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting">1.10 1D графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting">1.11 2D графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting">1.12 3D графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting">1.13 Парные графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-fields">1.14 Векторные поля</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-plotting">1.15 Прочие графики</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting">1.16 Nonlinear fitting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-create">1.17 Создание данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-filling">1.18 Заполнение данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Rearrange-data">1.19 Изменение размеров данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#File-I_002fO">1.20 Чтение/сохранение данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Make-another-data">1.21 Создание новых данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Change-data">1.22 Изменение данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Operators">1.23 Операторы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Program-flow">1.24 Программирование</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Command-options">1.25 Опции команд</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Suffixes">1.26 Суффиксы переменных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                    
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Utilities">1.27 Утилиты для MGL</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="General-concepts"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-interface" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Coordinate-axes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_043d_043e_0432_043d_044be-_043f_0440_0438_043dc_0438_043f_044b"></a>
+<h2 class="section">1.1 Основные принципы</h2>
+
+<p>Возможности библиотеки MathGL довольно богаты &ndash; число только основных типов графиков превышает 50 видов. Кроме того, есть функции для обработки данных, настройки вида графика и пр. и пр. Тем не менее, я старался придерживаться единого стиля в порядке аргументов функций и способе их &ldquo;настройки&rdquo;. В основном все ниже сказанное относится к функциям рисования различных графиков.
+</p>
+<p>Всего основных концепций (базисных идей) четыре:
+</p><ol>
+<li>
+<strong>Все настройки графиков (стиль линий, цветовые схемы поверхностей, стиль и цвет текста) задаются строками.</strong> Это обеспечивает: удобство для пользователя &ndash; короткую строку легче читать и здесь тяжелее ошибиться, чем в большом списке параметров; переносимость &ndash; строки выглядят одинаково на всех платформах и не надо заботиться о типе и числе аргументов.
+</li><li>
+<strong>Все функции имеют &ldquo;упрощенный&rdquo; и &ldquo;продвинутый&rdquo; варианты.</strong> Сделано опять из-за удобства. В &ldquo;упрощенном&rdquo; варианте для построения графика нужны только один-два массив(а) данных, которые автоматически равнораспределяются в заданном диапазоне осей координат. В &ldquo;продвинутой&rdquo; версии можно не только указать явно диапазон построения графика, но и задать его параметрически. Последнее позволяет легко строить довольно сложные кривые и поверхности. В обоих вариантах функций порядок аргументов стандартен: сначала идут массивы данных, потом необязательный строковый параметр стиля графика, а далее &ndash; второстепенные необязательные параметры для более точной настройки графика.
+</li><li>
+<strong>Все элементы рисунков векторные.</strong> Изначально библиотека MathGL была ориентированна на работу с научными данными, которые по своей природе векторные (линии, грани, матрицы и т.д.). Поэтому векторность используется во всех рисунках! Причем иногда даже в ущерб производительности (например, при выводе шрифтов). Помимо всего прочего, векторность позволяет легко масштабировать рисунок &ndash; измените размер картинки в 2 раза, и рисунок пропорционально растянется.
+</li><li>
+<strong>Новые графики не удаляют уже нарисованное.</strong> Этот, в чем-то неожиданный, подход позволяет создавать огромное количество &ldquo;комбинированных&rdquo; графиков. Например, поверхность с наложенными линиями уровня строится двумя последовательными вызовами функций рисования поверхности и линий уровня (в любом порядке). И совершенно не надо писать специальную функцию (как в Matlab и некоторых других программах) для рисования этого графика. Примеров таких графиков можно привести множество (см. раздел <a href="mgl_ru_2.html#Hints">Hints</a> и сайт программы <a href="http://mathgl.sf.net/index.html">http://mathgl.sf.net/index.html</a>).
+</li></ol>
+
+<p>Кроме основных концепций я хотел бы остановиться на нескольких, как оказалось, нетривиальных моментах &ndash; способе указания положения графика, осей координат и строковых параметров линий, поверхностей, текста.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Coordinate-axes">1.1.1 Оси координат</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Line-styles">1.1.2 Стиль линий</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Color-scheme">1.1.3 Цветовая схема</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-styles">1.1.4 Стиль текста</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Textual-formulas">1.1.5 Текстовые формулы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+
+
+
+<hr size="6">
+<a name="Coordinate-axes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#General-concepts" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Line-styles" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_0438-_043a_043e_043e_0440_0434_0438_043d_0430_0442"></a>
+<h3 class="subsection">1.1.1 Оси координат</h3>
+
+<p>Представление системы координат в MathGL состоит из двух частей. Вначале координаты нормируются в интервал <var>Min</var>x<var>Max</var> (see section <a href="#Axis-settings">Параметры осей координат</a>). Если флаг <var>Cut</var> установлен, то точки вне интервала отбрасываются, в противном случае, они проецируются на ограничивающий параллелепипед (see section <a href="#Cutting">Обрезание</a>). Кроме того, отбрасываются точки внутри границ, определенных переменными <var>CutMin</var>x<var>CutMax</var> и точки, для которых значение функции <code>CutOff</code>() не равно нулю. После этого формулы перехода в криволинейную систему координат <code>SetFunc()</code>применяются к каждой точке. Наконец, точка данных отображается с помощью одной из графических функций.
+</p>
+<p>Величины <var>Max</var>, <var>Min</var> можно изменять вручную. Однако, после этого необходимо вызвать функцию <code>RecalcBorder()</code> для настройки графика. Более удобный и безопасный путь состоит в вызове функций <code>Axis(), SetRanges()</code> и др. В последнем случае функция <code>RecalcBorder()</code> вызывается автоматически. Размеры осей можно задавать и автоматически по минимальному и максимальному значениям массива данных. Для этого предназначены функции <code>XRange(), YRange(), ZRange()</code>. Второй не обязательный аргумент указывает, заменять ли новые значения диапазона изменения оси координат (по умолчанию) или только расширить уже существующий диапазон.
+</p>
+<p>Точка пересечения осей координат задается переменной <var>Org</var> и действует на последующие вызовы функций рисования осей координат и сетки. По умолчанию, если точка пересечения осей координат попадает вне диапазона осей координат, то она проецируется на границу области. Изменить такое поведение можно, задав <var>AutoOrg</var>=<code>false</code>. В случае, если одно из значений <var>Org</var> равно NAN, то соответствующее значение будет выбрано автоматически.
+</p>
+<p>Кроме привычных осей <em>x, y, z</em> есть еще одна ось &ndash; цветовая шкала &ndash; ось <em>c</em>. Она используется при окрашивании поверхностей и задает границы изменения функции при окрашивании. При вызове <code>Axis()</code> ее границы автоматически устанавливаются равными Min.z и Max.z. Возможно и ручное изменение границ цветового интервала посредством вызова функции <code>CAxis()</code> или изменение границ по заданному массиву <code>CRange()</code>. Используйте <code>Colorbar()</code> для отображения цветовой шкалы.
+</p>
+<p>Вид меток по осям определяется функцией <code>SetTicks()</code> (see section <a href="#Axis-settings">Параметры осей координат</a>). Она имеет 3 аргумента: первый <var>d</var> задает шаг меток (если положительны) или их число (если отрицательны) или логарифмические метки (если равны нулю); второ <var>ns</var> задает число &quot;подметок&quot;; последний определяет начальную точку для меток (по умолчанию это точка пересечения осей). Функция <var>SetTuneTicks</var> включает/выключает выделение общего множителя (большого или малого факторов в диапазоне) для меток осей координат. Наконец, если стандартный вид меток не устраивает пользователя, то их шаблон можно задать явно (можно использовать и ТеХ символы), воспользовавшись функциями  <code>SetXTT(), SetYTT(). SetZTT(). SetCTT()</code>. Кроме того, в качестве меток можно вывести произвольный текст использовав функцию <code>SetTicksVal()</code>.
+</p>
+<hr size="6">
+<a name="Line-styles"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Coordinate-axes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Color-scheme" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_0442_0438_043bx-_043b_0438_043d_0438_0439"></a>
+<h3 class="subsection">1.1.2 Стиль линий</h3>
+
+<a name="index-_0421_0442_0438_043bx-_043b_0438_043d_0438_0439"></a>
+<a name="index-_0421_0442_0438_043bx-_043c_0430_0440_043ae_0440_043e_0432"></a>
+<a name="index-_0421_0442_0438_043bx-_0441_0442_0440e_043b_043e_043a"></a>
+
+<p>Стиль линии задается строкой, которая может содержать символ цвета (&lsquo;<samp>wkrgbcymhRGBCYMHWlenupqLENUPQ</samp>&rsquo;), тип пунктира (&lsquo;<samp>-|;:ji</samp>&rsquo; или пробел), ширину линии (&lsquo;<samp>0123456789</samp>&rsquo;) и тип маркера (&lsquo;<samp>o+xsd.^v</samp>&rsquo; и модификатор &lsquo;<samp>#</samp>&rsquo;). Если пропущен цвет или тип пунктира, то используется значение по умолчанию с последним указанным цветом или значение из палитры (для see section <a href="#g_t1D-plotting">1D графики</a>). 
+По умолчанию палитры содержит следующие цвета: <span style="color: rgb(76, 76, 76);">темно серый</span> &lsquo;<samp>H</samp>&rsquo;, <span style="color: rgb(0, 0, 255);">синий</span> &lsquo;<samp>b</samp>&rsquo;, <span style="color: rgb(0, 255, 0);">зеленый</span> &lsquo;<samp>g</samp>&rsquo;, <span style="color: rgb(255, 0, 0);">красный</span> &lsquo;<samp>r</samp>&rsquo;, <span style="color: rgb(0, 255, 255);">голубой</span> &lsquo;<samp>c</samp>&rsquo;, <span style="color: rgb(255, 0, 255);">пурпурный</span> &lsquo;<samp>m</samp>&rsquo;, <span style="color: rgb(255, 255, 0);">yellow</span> &lsquo;<samp>y</samp>&rsquo;, <span style="color: rgb(127, 127, 127);">серый</span> &lsquo;<samp>h</samp>&rsquo;, <span style="color: rgb(0, 255, 127);">сине-зеленый</span> &lsquo;<samp>l</samp>&rsquo;, <span style="color: rgb(0, 127, 255);">небесно-синий</span> &lsquo;<samp>n</samp>&rsquo;, <span style="color: rgb(255, 127, 0);">оранжевый</span> &lsquo;<samp>q</samp>&rsquo;, <span style="color: rgb(127, 255, 0);">желто-зеленый</span> &lsquo;<samp>e</samp>&rsquo;, <span style="color: rgb(127, 0, 255);">сине-фиолетовый</span> &lsquo;<samp>u</samp>&rsquo;, <span style="color: rgb(255, 0, 127);">фиолетовый</span> &lsquo;<samp>p</samp>&rsquo;.
+
+<p>Символы цвета: &lsquo;<samp>k</samp>&rsquo; -- черный, &lsquo;<samp>r</samp>&rsquo; -- <span style="color: rgb(255, 0, 0);">красный</span>, &lsquo;<samp>R</samp>&rsquo; -- <span style="color: rgb(127, 0, 0);">темно красный</span>, &lsquo;<samp>g</samp>&rsquo; -- <span style="color: rgb(0, 255, 0);">зеленый</span>, &lsquo;<samp>G</samp>&rsquo; -- <span style="color: rgb(0, 127, 0);">темно зеленый</span>, &lsquo;<samp>b</samp>&rsquo; -- <span style="color: rgb(0, 0, 255);">синий</span>, &lsquo;<samp>B</samp>&rsquo; -- <span style="color: rgb(0, 0, 127);">темно синий</span>, &lsquo;<samp>c</samp>&rsquo; -- <span style="color: rgb(0, 255, 255);">голубой</span>, &lsquo;<samp>C</samp>&rsquo; -- <span style="color: rgb(0, 127, 127);">темно голубой</span>, &lsquo;<samp>m</samp>&rsquo; -- <span style="color: rgb(255, 0, 255);">пурпурный</span>, &lsquo;<samp>M</samp>&rsquo; -- <span style="color: rgb(127, 0, 127);">темно пурпурный</span>, &lsquo;<samp>y</samp>&rsquo; -- <span style="color: rgb(255, 255, 0);">желтый</span>, &lsquo;<samp>Y</samp>&rsquo; -- <span style="color: rgb(127, 127, 0);">темно желтый (золотой)</span>, &lsquo;<samp>h</samp>&rsquo; -- <span style="color: rgb(127, 127, 127);">серый</span>, &lsquo;<samp>H</samp>&rsquo; -- <span style="color: rgb(76, 76, 76);">темно серый</span>, &lsquo;<samp>w</samp>&rsquo; -- белый, &lsquo;<samp>W</samp>&rsquo; -- <span style="color: rgb(178, 178, 178);">светло серый</span>, &lsquo;<samp>l</samp>&rsquo; -- <span style="color: rgb(0, 255, 127);">сине-зеленый</span>, &lsquo;<samp>L</samp>&rsquo; -- <span style="color: rgb(0, 127, 63);">темно сине-зеленый</span>, &lsquo;<samp>e</samp>&rsquo; -- <span style="color: rgb(127, 255, 0);">желто-зеленый</span>, &lsquo;<samp>E</samp>&rsquo; -- <span style="color: rgb(63, 127, 0);">темно желто-зеленый</span>, &lsquo;<samp>n</samp>&rsquo; -- <span style="color: rgb(0, 127, 255);">небесно-синий</span>, &lsquo;<samp>N</samp>&rsquo; -- <span style="color: rgb(0, 63, 127);">темно небесно-синий</span>, &lsquo;<samp>u</samp>&rsquo; -- <span style="color: rgb(127, 0, 255);">сине-фиолетовый</span>, &lsquo;<samp>U</samp>&rsquo; -- <span style="color: rgb(63, 0, 127);">темно сине-фиолетовый</span>, &lsquo;<samp>p</samp>&rsquo; -- <span style="color: rgb(255, 0, 127);">фиолетовый</span>, &lsquo;<samp>P</samp>&rsquo; -- <span style="color: rgb(127, 0, 63);">темно фиолетовый</span>, &lsquo;<samp>q</samp>&rsquo; -- <span style="color: rgb(255, 127, 0);">оранжевый</span>, &lsquo;<samp>Q</samp>&rsquo; -- <span style="color: rgb(127, 63, 0);">темно оранжевый (коричневый)</span>.</p>
+
+Тип пунктира: пробел -- нет линии (для рисования только маркеров), &lsquo;<samp>-</samp>&rsquo; -- сплошная линия (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;), &lsquo;<samp>|</samp>&rsquo; -- длинный пунктир (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>;</samp>&rsquo; -- пунктир (&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>=</samp>&rsquo; -- короткий пунктир (&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;&#9632;&#9632;&#9633;&#9633;), &lsquo;<samp>:</samp>&rsquo; -- точки (&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;), &lsquo;<samp>j</samp>&rsquo; -- пунктир с точками  (&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9632;&#9633;&#9633;&#9633;&#9633;&#9632;&#9633;&#9633;&#9633;&#9633;), &lsquo;<samp>i</samp>&rsquo; -- мелкий пунктир с точками (&#9632;&#9632;&#9632;&#9633;&#9633;&#9632;&#9633;&#9633;&#9632;&#9632;&#9632;&#9633;&#9633;&#9632;&#9633;&#9633;).</p>
+<p>Типы маркеров: &lsquo;<samp>o</samp>&rsquo; &ndash; окружность, &lsquo;<samp>+</samp>&rsquo; &ndash; крест, &lsquo;<samp>x</samp>&rsquo; &ndash; косой крест, &lsquo;<samp>s</samp>&rsquo; - квадрат, &lsquo;<samp>d</samp>&rsquo; - ромб, &lsquo;<samp>.</samp>&rsquo; &ndash; точка, &lsquo;<samp>^</samp>&rsquo; &ndash; треугольник вверх, &lsquo;<samp>v</samp>&rsquo; &ndash; треугольник вниз, &lsquo;<samp>&lt;</samp>&rsquo; &ndash; треугольник влево, &lsquo;<samp>&gt;</samp>&rsquo; &ndash; треугольник вправо, &lsquo;<samp>#*</samp>&rsquo; &ndash; знак Y, &lsquo;<samp>#+</samp>&rsquo; &ndash; крест в квадрате, &lsquo;<samp>#x</samp>&rsquo; &ndash; косой крест в квадрате, &lsquo;<samp>#.</samp>&rsquo; &ndash; точка в окружности. Если в строке присутствует символ &lsquo;<samp>#</samp>&rsquo;, то используются символы с заполнением.
+</p>
+<div class="float">
+<img src="../png/sample5.png" alt="../png/sample5">
+
+</div><p><strong>Стили линий и маркеров.
+</strong>
+</p>
+<p>На конце и в начале линии можно выводить специальный символ (стрелку), если в строке указать один из символов: &lsquo;<samp>A</samp>&rsquo; &ndash; стрелка наружу, &lsquo;<samp>V</samp>&rsquo; &ndash; стрелка внутрь, &lsquo;<samp>I</samp>&rsquo; &ndash; поперечная черта, &lsquo;<samp>K</samp>&rsquo; &ndash; стрелка с чертой, &lsquo;<samp>T</samp>&rsquo; &ndash; треугольник, &lsquo;<samp>S</samp>&rsquo; &ndash; квадрат, &lsquo;<samp>D</samp>&rsquo; &ndash; ромб, &lsquo;<samp>O</samp>&rsquo; &ndash; круг, &lsquo;<samp>_</samp>&rsquo; &ndash; нет стрелки (по умолчанию). При этом действует следующее правило: первый символ определяет стрелку на конце линии, второй символ &ndash; стрелку в начале линии. Например, &lsquo;<samp>r-A</samp>&rsquo; &ndash; красная сплошная линия со стрелкой на конце, &lsquo;<samp>b|AI</samp>&rsquo; &ndash; синий пунктир со стрелкой на конце и чертой вначале, &lsquo;<samp>_O</samp>&rsquo; &ndash; линия с текущим стилем и кружком вначале. Эти стили действуют и при построении графиков (например, <a href="#g_t1D-plotting">1D графики</a>).
+</p>
+<div class="float">
+<img src="../png/sampled.png" alt="../png/sampled">
+
+</div><p><strong>Стили стрелок.
+</strong>
+</p>
+<hr size="6">
+<a name="Color-scheme"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Line-styles" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-styles" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="C_0432e_0442_043e_0432_0430ya-_0441_0445e_043c_0430"></a>
+<h3 class="subsection">1.1.3 Цветовая схема</h3>
+
+<a name="index-C_0432e_0442_043e_0432_0430ya-_0441_0445e_043c_0430"></a>
+
+<p>Цветовая схема используется для определения цвета поверхностей, линий уровня и пр. Цветовая схема задается строкой <em>s</em>, которая содержит символы цвета (see section <a href="#Line-styles">Стиль линий</a>) или символы &lsquo;<samp>d#:|</samp>&rsquo;. Символ &lsquo;<samp>d</samp>&rsquo; указывает на определение цвета в зависимости от положения точки в пространстве, а не по амплитуде данных. Символ &lsquo;<samp>#</samp>&rsquo; переключает рисование поверхности на сетчатое (для трехмерных поверхностей) или включает рисование сетки на поверхности. Символ &lsquo;<samp>|</samp>&rsquo; отключает интерполяцию цвета в цветовой схеме. Это может быть полезно для &ldquo;резких&rdquo; цветов, например, при рисовании матриц. Если в строке встречается символ &lsquo;<samp>:</samp>&rsquo;, то он принудительно заканчивает разбор строки для стиля поверхности. После этого символа могут идти описание стиля текста или оси вращения кривой/линий уровня. Цветовая схема может содержать до 32 значений цвета.
+</p>
+<p>В цветовой схеме можно использовать тональные (&ldquo;подсвеченные&rdquo;) цвета (<em>не в стиле линий!</em>). Тональный цвет задается двумя символами: первый &ndash; обычный цвет, второй &ndash; его яркость цифрой. Цифра может быть в диапазоне &lsquo;<samp>1</samp>&rsquo;...&lsquo;<samp>9</samp>&rsquo;. При этом &lsquo;<samp>5</samp>&rsquo; соответствует нормальному цвету, &lsquo;<samp>1</samp>&rsquo; &ndash; очень темная версия цвета (почти черный), &lsquo;<samp>9</samp>&rsquo; &ndash; очень светлая версия цвета (почти белый). Например цветовая схема может быть &lsquo;<samp>b2b7wr7r2</samp>&rsquo;.
+</p>
+<div class="float">
+<img src="../png/colors.png" alt="../png/colors">
+
+</div><p><strong>Цвета и их идентификаторы.
+</strong>
+</p>
+<p>При определении цвета по <em>амплитуде</em> (наиболее часто используется) окончательный цвет определяется путем линейной интерполяции массива цветов. Массив цветов формируется из цветов, указанных в строке спецификации. Аргумент &ndash; амплитуда, нормированная между <var>Cmin</var> &ndash; <var>Cmax</var> (see section <a href="#Axis-settings">Параметры осей координат</a>). Например, строка из 4 символов &lsquo;<samp>bcyr</samp>&rsquo; соответствует изменению цвета от синего (минимальное значение) через голубой и желтый (промежуточные значения) к красному (максимальное значение). Строка &lsquo;<samp>kw</samp>&rsquo; соответствует изменению цвета от черного (минимальное значение) к белому (максимальное значение). Строка из одного символа (например, &lsquo;<samp>g</samp>&rsquo;) соответствует однотонному цвету (в данному случае зеленому).
+</p>
+<p>Есть несколько полезных цветовых схем. Строка &lsquo;<samp>kw</samp>&rsquo; дает обычную серую (черно-белую) схему, когда большие значения светлее. Строка &lsquo;<samp>wk</samp>&rsquo; представляет обратную серую схему, когда большие значения темнее. Строки &lsquo;<samp>kRryw</samp>&rsquo;, &lsquo;<samp>kGgw</samp>&rsquo;, &lsquo;<samp>kBbcw</samp>&rsquo; представляют собой хорошо известные схемы <em>hot</em>, <em>summer</em> и <em>winter</em>. Строки &lsquo;<samp>BbwrR</samp>&rsquo; и &lsquo;<samp>bBkRr</samp>&rsquo; позволяют рисовать двухцветные фигуры на белом или черном фоне, когда отрицательные значения показаны синим цветом, а положительные &ndash; красным. Строка &lsquo;<samp>BbcyrR</samp>&rsquo; дает цветовую схему, близкую к хорошо известной схеме <em>jet</em>.
+</p>
+
+<div class="float">
+<img src="../png/color_schemes.png" alt="../png/color_schemes">
+
+</div><p><strong>Наиболее популярные цветовые схемы.
+</strong>
+</p>
+<p>При определении цвета по <em>положению точки в пространстве</em> окончательный цвет определяется по формуле c=x*c[1] + y*c[2] + z*c[3]. Здесь c[1], c[2], c[3] &ndash; первые три цвета в цветовом массиве; x, y, z &ndash; координаты точки, нормированные на <var>Min</var>x<var>Max</var>. Такой тип определения цвета полезен, например, при построении поверхностей уровня, когда цвет дает представление о положении точки в пространстве.
+</p>
+<hr size="6">
+<a name="Font-styles"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Color-scheme" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Textual-formulas" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_0442_0438_043bx-_0442e_043a_0441_0442_0430"></a>
+<h3 class="subsection">1.1.4 Стиль текста</h3>
+
+<a name="index-_0421_0442_0438_043bx-_0442e_043a_0441_0442_0430"></a>
+
+<p>Стиль текста задается строкой, которая может содержать несколько символов: тип шрифта (&lsquo;<samp>ribwou</samp>&rsquo;) и/или выравнивания (&lsquo;<samp>LRC</samp>&rsquo;), а также цвет текста &lsquo;<samp>wkrgbcymhRGBCYMHW</samp>&rsquo; (see section <a href="#Line-styles">Стиль линий</a>) после символа &lsquo;<samp>:</samp>&rsquo;. Например, &lsquo;<samp>biC:b</samp>&rsquo; соответствует жирному курсиву с выравниванием по центру синего цвета.
+</p>
+<p>Начертания шрифта: &lsquo;<samp>r</samp>&rsquo; &ndash; прямой шрифт, &lsquo;<samp>i</samp>&rsquo; &ndash; курсив, &lsquo;<samp>b</samp>&rsquo; &ndash; жирный. По умолчанию используется прямой шрифт. Типы выравнивания текста: &lsquo;<samp>L</samp>&rsquo; &ndash; по левому краю (по умолчанию), &lsquo;<samp>C</samp>&rsquo; &ndash; по центру, &lsquo;<samp>R</samp>&rsquo; &ndash; по правому краю. Дополнительные эффекты шрифта: &lsquo;<samp>w</samp>&rsquo; &ndash; контурный, &lsquo;<samp>o</samp>&rsquo; &ndash; надчеркнутый, &lsquo;<samp>u</samp>&rsquo; &ndash; подчеркнутый. 
+</p>
+<p>Синтаксический разбор LaTeX-их команд по умолчанию включен. Это команды смены стиля текста (например, \b для жирного текста): \a или \overline &ndash; надчеркивание, \b или \textbf &ndash; жирный, \i или \textit &ndash; курсив, \r или \textrm &ndash; прямой (отменяет стили жирного и курсива), \u или \underline &ndash; подчеркнутый, \w или \wire &ndash; контурный, \big &ndash; большего размера, @ &ndash; меньшего размера. Нижний и верхний индексы задаются символами &lsquo;<samp>_</samp>&rsquo; и &lsquo;<samp>^</samp>&rsquo;. При этом изменение стиля применяется только к следующему символу или к символам в фигурных скобках {}, которые понимаются как единый блок. Например, сравните строки &lsquo;<samp>sin (x^{2^3})</samp>&rsquo; и &lsquo;<samp>sin (x^2^3)</samp>&rsquo;. Можно также менять цвет текста внутри строки с помощью команд #? или \color?, где &lsquo;<samp>?</samp>&rsquo; &ndash; символ цвета (see section <a href="#Line-styles">Стиль линий</a>). Например, слова &lsquo;<samp>Blue</samp>&rsquo; и &lsquo;<samp>red</samp>&rsquo; будут окрашены в соответствующий цвет в строке &lsquo;<samp>#b{Blue} and \colorr{red} text</samp>&rsquo;. Большинство функций понимает символ новой строки &lsquo;<samp>\n</samp>&rsquo; и позволяет выводить много строчный текст. Наконец, можно использовать символы с произвольным UTF кодом с помощью команды <code>\utf0x????</code>. Например, <code>\utf0x3b1</code> даст символ 
+&alpha;.</p>
+<p>Распознаются также большинство символов TeX и AMSTeX, команды смены стиля текста (\textrm, \textbf, \textit, \textsc, \overline, \underline), акценты (\hat, \tilde, \dot, \ddot, \acute, \check, \grave, \bar, \breve) и корни (\sqrt, \sqrt3, \sqrt4). Полный список содержит около 2000 символов. Отмечу, что первый пробел (пробел, табуляция и пр.) после команды игнорируется, а все остальные пробелы печатаются обычным образом. Например, следующие строки дают одинаковый результат <em>\tilde a</em>: &lsquo;<samp>\tilde{a}</samp>&rsquo;; &lsquo;<samp>\tilde a</samp>&rsquo;; &lsquo;<samp>\tilde{}a</samp>&rsquo;.
+</p>
+В частности, распознаются греческие буквы: &alpha; &ndash; \alpha, &beta; &ndash; \beta, &gamma; &ndash; \gamma, &delta; &ndash; \delta, &epsilon; &ndash; \epsilon, &eta; &ndash; \eta, &iota; &ndash; \iota, &chi; &ndash; \chi, &kappa; &ndash; \kappa, &lambda; &ndash; \lambda, &mu; &ndash; \mu, &nu; &ndash; \nu, o &ndash; \o, &omega; &ndash; \omega, &#981; &ndash; \phi, &pi; &ndash; \pi, &psi; &ndash; \psi, &rho; &ndash; \rho, &sigma; &ndash; \sigma, &theta; &ndash; \theta, &tau; &ndash; \tau, &upsilon; &ndash; \upsilon, &xi; &ndash; \xi, &zeta; &ndash; \zeta, &sigmaf; &ndash; \varsigma, &#603; &ndash; \varepsilon, &thetasym; &ndash; \vartheta, &phi; &ndash; \varphi, &#1008; &ndash; \varkappa; A &ndash; \Alpha, B &ndash; \Beta, &Gamma; &ndash; \Gamma, &Delta; &ndash; \Delta, E &ndash; \Epsilon, H &ndash; \Eta, I &ndash; \Iota, C &ndash; \Chi, K &ndash; \Kappa, &Lambda; &ndash; \Lambda, M &ndash; \Mu, N &ndash; \Nu, O &ndash; \O, &Omega; &ndash; \Omega, &Phi; &ndash; \Phi, &Pi; &ndash; \Pi, &Psi; &ndash; \Psi, R &ndash; \Rho, &Sigma; &ndash; \Sigma, &Theta; &ndash; \Theta, T &ndash; \Tau, &Upsilon; &ndash; \Upsilon, &Xi; &ndash; \Xi, Z &ndash; \Zeta.
+
+<p>Еще примеры наиболее общеупотребительных TeX-их символов: &ang; &ndash; \angle, &sdot; &ndash; \cdot, &clubs; &ndash; \clubsuit, &#10003; &ndash; \checkmark, &cup; &ndash; \cup, &cap; &ndash; \cap, &#9826; &ndash; \diamondsuit, &#9671; &ndash; \diamond, &divide;
+ &ndash; \div, 
+&darr; &ndash; \downarrow, &dagger; &ndash; \dag, &Dagger; &ndash; \ddag, &equiv; &ndash; \equiv, &exist; &ndash; \exists, &#8994; &ndash; \frown, &#9837; &ndash; \flat, &ge; &ndash; \ge, &ge; &ndash; \geq, &#8807; &ndash; \geqq, &larr; &ndash; \gets, &#9825; &ndash; \heartsuit, &infin; &ndash; \infty, &int; &ndash; \int, \Int, &image;  &ndash; \Im, &#9826; &ndash; \lozenge, &#10216; &ndash; \langle, &le; &ndash; \le, &le; &ndash; \leq, &#8806; &ndash; \leqq, &larr; &ndash; \leftarrow, &#8723; &ndash; \mp, &nabla; &ndash; \nabla, &ne; &ndash; \ne, &ne; &ndash; \neq, &#9838; &ndash; \natural, &#8750; &ndash; \oint, &#8857; &ndash; \odot, &oplus; &ndash; \oplus, &part; &ndash; \partial, &#8741; &ndash; \parallel, &perp; &ndash;\perp, &plusmn; &ndash; \pm, &prop; &ndash; \propto, &prod; &ndash; \prod, &real; &ndash; \Re, &rarr; &ndash; \rightarrow, &#10217; &ndash; \rangle, &spades; &ndash; \spadesuit, ~ &ndash; \sim, &#8995; &ndash; \smile, &sub;  &ndash; \subset, &sup; &ndash; \supset, &radic; &ndash; \sqrt or \surd, &sect; &ndash; \S, &#9839; &ndash; \sharp, &sum; &ndash; \sum, &times; &ndash; \times, &rarr; &ndash; \to, &there4; &ndash; \therefore, &uarr; &ndash; \uparrow, &weierp; &ndash; \wp. </p>
+<p>Размер текста может быть задан явно (если <var>size</var>&gt;0) или относительно базового размера шрифта для рисунка |<var>size</var>|*<var>FontSize</var> при <var>size</var>&lt;0. Значение <var>size</var>=0 указывает, что соответствующая строка выводиться не будет. Базовый размер шрифта измеряется во внутренних единицах. Специальные функции <code>SetFontSizePT(), SetFontSizeCM(), SetFontSizeIN()</code> позволяют задавать его в более &ldquo;привычных&rdquo; единицах.
+</p>
+<hr size="6">
+<a name="Textual-formulas"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-styles" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#General-concepts" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0422e_043a_0441_0442_043e_0432_044be-_0444_043e_0440_043c_0443_043b_044b"></a>
+<h3 class="subsection">1.1.5 Текстовые формулы</h3>
+
+<a name="index-_0422e_043a_0441_0442_043e_0432_044be-_0444_043e_0440_043c_0443_043b_044b"></a>
+
+<p>MathGL имеет быстрый парсер текстовых формул
+, понимающий большое число функций и операций. Базовые операции: &lsquo;<samp>+</samp>&rsquo; &ndash; сложение, &lsquo;<samp>-</samp>&rsquo; &ndash; вычитание, &lsquo;<samp>*</samp>&rsquo; &ndash; умножение, &lsquo;<samp>/</samp>&rsquo; &ndash; деление, &lsquo;<samp>^</samp>&rsquo; &ndash; возведение в целосичленную степень. Также есть логические операции: &lsquo;<samp>&lt;</samp>&rsquo; &ndash; истина если if x&lt;y, &lsquo;<samp>&gt;</samp>&rsquo; &ndash; истина если x&gt;y, &lsquo;<samp>=</samp>&rsquo; &ndash; истина если x=y, &lsquo;<samp>&amp;</samp>&rsquo; &ndash; истина если x и y оба не равны нулю, &lsquo;<samp>|</samp>&rsquo; &ndash; истина если x или y не нуль. Логические операции имеют наинизший приоритет и возвращают 1 если истина или 0 если ложно.
+</p>
+<p>Базовые функции: &lsquo;<samp>sqrt(x)</samp>&rsquo; &ndash; квадратный корень из <var>x</var>, &lsquo;<samp>pow(x,y)</samp>&rsquo; &ndash; <var>x</var> в степени <var>y</var>, &lsquo;<samp>ln(x)</samp>&rsquo; &ndash; натуральный логарифм <var>x</var>, &lsquo;<samp>lg(x)</samp>&rsquo; &ndash; десятичный логарифм <var>x</var>, &lsquo;<samp>log(a,x)</samp>&rsquo; &ndash; логарифм по основанию <var>a</var> от <var>x</var>, &lsquo;<samp>abs(x)</samp>&rsquo; &ndash; модуль <var>x</var>, &lsquo;<samp>sign(x)</samp>&rsquo; &ndash; знак <var>x</var>, &lsquo;<samp>mod(x,y)</samp>&rsquo; &ndash; остаток от деления x на y, &lsquo;<samp>step(x)</samp>&rsquo; &ndash; ступенчатая функция, &lsquo;<samp>int(x)</samp>&rsquo; &ndash; целая часть <var>x</var>, &lsquo;<samp>rnd</samp>&rsquo; &ndash; случайное число, &lsquo;<samp>pi</samp>&rsquo; &ndash; число 
+&pi; = 3.1415926&hellip;</p>
+<p>Тригонометрические функции: &lsquo;<samp>sin(x)</samp>&rsquo;, &lsquo;<samp>cos(x)</samp>&rsquo;, &lsquo;<samp>tan(x)</samp>&rsquo; (или &lsquo;<samp>tg(x)</samp>&rsquo;). Обратные тригонометрические функции: &lsquo;<samp>asin(x)</samp>&rsquo;, &lsquo;<samp>acos(x)</samp>&rsquo;, &lsquo;<samp>atan(x)</samp>&rsquo;. Гиперболические функции: &lsquo;<samp>sinh(x)</samp>&rsquo; (или &lsquo;<samp>sh(x)</samp>&rsquo;), &lsquo;<samp>cosh(x)</samp>&rsquo; (или &lsquo;<samp>ch(x)</samp>&rsquo;), &lsquo;<samp>tanh(x)</samp>&rsquo; (или &lsquo;<samp>th(x)</samp>&rsquo;). Обратные гиперболические функции: &lsquo;<samp>asinh(x)</samp>&rsquo;, &lsquo;<samp>acosh(x)</samp>&rsquo;, &lsquo;<samp>atanh(x)</samp>&rsquo;.
+</p>
+<p>Специальные функции: &lsquo;<samp>gamma(x)</samp>&rsquo; &ndash; гамма функция &Gamma;(x) = &int;<sub>0</sub><sup>&infin;</sup> t<sup>x-1</sup> exp(-t) dt, &lsquo;<samp>psi(x)</samp>&rsquo; &ndash; дигамма функция &psi;(x) = &Gamma;&prime;(x)/&Gamma;(x) для x&ne;0, &lsquo;<samp>ai(x)</samp>&rsquo; &ndash; Эйри функция Ai(x), &lsquo;<samp>bi(x)</samp>&rsquo; &ndash; Эйри функция Bi(x), &lsquo;<samp>cl(x)</samp>&rsquo; &ndash; функция Клаузена, &lsquo;<samp>li2(x)</samp>&rsquo; (или &lsquo;<samp>dilog(x)</samp>&rsquo;) &ndash; дилогарифм Li<sub>2</sub>(x) = -&real;&int;<sub>0</sub><sup>x</sup>ds log(1-s)/s, &lsquo;<samp>sinc(x)</samp>&rsquo; &ndash; функция sinc(x) = sin(&pi;x)/(&pi;x) для любых x, &lsquo;<samp>zeta(x)</samp>&rsquo; &ndash; зета функция Римана &zeta;(s) = &sum;<sub>k=1</sub><sup>&infin;</sup>k<sup>-s</sup> для s&ne;1, &lsquo;<samp>eta(x)</samp>&rsquo; &ndash; эта функция &eta;(s) = (1 - 2<sup>1-s</sup>)&zeta;(s) для произвольного s, &lsquo;<samp>lp(l,x)</samp>&rsquo; &ndash; полином Лежандра P<sub>l</sub>(x), (|x|&le;1, l&ge;0), &lsquo;<samp>w0(x)</samp>&rsquo;, &lsquo;<samp>w1(x)</samp>&rsquo; &ndash; функции Ламберта W. Функции W(x) определены как решение уравнения: W exp(W) = x. </p>
+
+<p>Экспоненциальные интегралы: &lsquo;<samp>ci(x)</samp>&rsquo; &ndash; cos-интеграл Ci(x) = &int;<sub>0</sub><sup>x</sup>dt cos(t)/t, &lsquo;<samp>si(x)</samp>&rsquo; &ndash; sin-интеграл Si(x) = &int;<sub>0</sub><sup>x</sup>dt sin(t)/t, &lsquo;<samp>erf(x)</samp>&rsquo; &ndash; функция ошибки erf(x) = (2/&radic;&pi;) &int;<sub>0</sub><sup>x</sup>dt exp(-t<sup>2</sup>) , &lsquo;<samp>ei(x)</samp>&rsquo; &ndash; интеграл Ei(x) = -PV(&int;<sub>-x</sub><sup>&infin;</sup>dt exp(-t)/t) (где PV обозначает главное значение), &lsquo;<samp>e1(x)</samp>&rsquo; &ndash; интеграл E<sub>1</sub>(x) = &real;&int;<sub>1</sub><sup>&infin;</sup>dt exp(-xt)/t, &lsquo;<samp>e2(x)</samp>&rsquo; &ndash; интеграл E<sub>2</sub>(x) = &real;&int;<sub>1</sub>&infin;</sup>dt exp(-xt)/t<sup>2</sup>, &lsquo;<samp>ei3(x)</samp>&rsquo; &ndash; интеграл Ei<sub>3</sub>(x) = &int;<sub>0</sub><sup>x</sup>dt exp(-t<sup>3</sup>) для x&ge;0. </p>
+
+<p>Функции Бесселя: &lsquo;<samp>j(nu,x)</samp>&rsquo; &ndash; функция Бесселя первого рода, &lsquo;<samp>y(nu,x)</samp>&rsquo; &ndash; функция Бесселя второго рода, &lsquo;<samp>i(nu,x)</samp>&rsquo; &ndash; модифицированная функция Бесселя первого рода, &lsquo;<samp>k(nu,x)</samp>&rsquo; &ndash; модифицированная функция Бесселя второго рода. </p>
+
+<p>Эллиптические интегралы: &lsquo;<samp>ee(k)</samp>&rsquo; &ndash; полный эллиптический интеграл E(k) = E(&pi;/2,k), &lsquo;<samp>ek(k)</samp>&rsquo; &ndash; полный эллиптический интеграл K(k) = F(&pi;/2,k), &lsquo;<samp>e(phi,k)</samp>&rsquo; &ndash; эллиптический интеграл E(&phi;,k) = &int;<sub>0</sub><sup>&phi;</sup>dt &radic;(1 - k<sup>2</sup>sin<sup>2</sup>(t)), &lsquo;<samp>f(phi,k)</samp>&rsquo; &ndash; эллиптический интеграл F(&phi;,k) = &int;<sub>0</sub><sup>&phi;</sup>dt 1/&radic;(1 - k<sup>2</sup>sin<sup>2</sup>(t))</p>
+<p>Функции Якоби: &lsquo;<samp>sn(u,m)</samp>&rsquo;, &lsquo;<samp>cn(u,m)</samp>&rsquo;, &lsquo;<samp>dn(u,m)</samp>&rsquo;, &lsquo;<samp>sc(u,m)</samp>&rsquo;, &lsquo;<samp>sd(u,m)</samp>&rsquo;, &lsquo;<samp>ns(u,m)</samp>&rsquo;, &lsquo;<samp>cs(u,m)</samp>&rsquo;, &lsquo;<samp>cd(u,m)</samp>&rsquo;, &lsquo;<samp>nc(u,m)</samp>&rsquo;, &lsquo;<samp>ds(u,m)</samp>&rsquo;, &lsquo;<samp>dc(u,m)</samp>&rsquo;, &lsquo;<samp>nd(u,m)</samp>&rsquo;.
+</p>
+<p>Некоторые из функций могут быть недоступны если флаг NO_GSL был определен при компиляции библиотеки MathGL. 
+</p>
+<p>При разборе формул нет различия между верхним и нижним регистром. Если аргумент лежит вне области определения функции, то возвращается NaN.
+</p>
+
+<hr size="6">
+<a name="Graphics-setup"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Textual-formulas" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041d_0430_0441_0442_0440_043e_0439_043a_0430-g_0440_0430_0444_0438_043a_0430"></a>
+<h2 class="section">1.2 Настройка графика</h2>
+
+<p>Команды в этой группе влияют на вид всего рисунка. Соответственно они должны располагаться <em>перед</em> вызовом функций непосредственно рисующих графики.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Transparency">1.2.1 Прозрачность</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lighting">1.2.2 Освещение</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fog">1.2.3 Туман</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Default-sizes">1.2.4 Базовые размеры</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Zooming">1.2.5 Масштабирование</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cutting">1.2.6 Обрезание</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Other-settings">1.2.7 Прочие настройки</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Graphics-setup" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lighting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x"></a>
+<h3 class="subsection">1.2.1 Прозрачность</h3>
+
+<p>Эти команды настраивают тип и степень прозрачности поверхностей. Главной является функция <a href="#alpha">alpha</a>, которая включает/выключает прозрачность для всех графиков, созданных после вызова <a href="#alpha">alpha</a>. Функция <a href="#alphadef">alphadef</a> устанавливает величину alpha-канала по умолчанию. Прозрачность можно выключить для отдельного графика с помощью <a href="#transparent">transparent</a>. Наконец, функция <a href="#transptype">transptype</a> задает тип прозрачности. См. раздел <a href="mgl_ru_3.html#Transparent-surface-sample">Transparent surface &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<a name="index-alpha"></a>
+<p><a name="alpha"></a>
+</p><dl>
+<dt><a name="index-alpha-1"></a><u>Команда MGL:</u> <b>alpha</b><i> <code>[val=on]</code></i></dt>
+<dd><p>Включает/выключает прозрачность для <em>всего</em> рисунка. По умолчанию прозрачность выключена. Используйте <code>transparent off</code> для конкретного графика для выключения прозрачности.
+</p></dd></dl>
+<a name="index-alphadef"></a>
+<p><a name="alphadef"></a>
+</p><dl>
+<dt><a name="index-alphadef-1"></a><u>Команда MGL:</u> <b>alphadef</b><i> <code>val</code></i></dt>
+<dd><p>Задает значение прозрачности по умолчанию для всех графиков. Начальное значение 0.5.
+</p></dd></dl>
+<a name="index-transparent"></a>
+<p><a name="transparent"></a>
+</p><dl>
+<dt><a name="index-transparent-1"></a><u>Команда MGL:</u> <b>transparent</b><i> <code>val</code></i></dt>
+<dd><p>Временно включает/возвращает прозрачность графиков.
+</p></dd></dl>
+<a name="index-transptype"></a>
+<p><a name="transptype"></a>
+</p><dl>
+<dt><a name="index-transptype-1"></a><u>Команда MGL:</u> <b>transptype</b><i> <code>val</code></i></dt>
+<dd><p>Задает тип прозрачности. Обычная прозрачность (&lsquo;<samp>0</samp>&rsquo;) &ndash; &quot;закрытые&quot; объекты видны меньше чем закрывающие. &quot;Стеклянная&quot; прозрачность (&lsquo;<samp>1</samp>&rsquo;) &ndash; закрытые и закрывающие объекты единообразно ослабляют интенсивность света (по RGB каналам). &quot;Ламповая&quot; прозрачность (&lsquo;<samp>2</samp>&rsquo;) &ndash; закрытые и закрывающие объекты являются источниками дополнительного освещения (рекомендую установить <code>alphadef 0.3</code> или меньше в этом случае). See section <a href="mgl_ru_3.html#Normal-transparency">Обычная прозрачность</a>, <a href="mgl_ru_3.html#Glass_002dlike-transparency">&quot;Стеклянная&quot; прозрачность</a>, <a href="mgl_ru_3.html#Lamp_002dlike-transparency">&quot;Ламповая&quot; прозрачность</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Lighting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fog" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_0432e_0449e_043d_0438e"></a>
+<h3 class="subsection">1.2.2 Освещение</h3>
+
+<p>Эти функции настраивают освещение графика. Главная функция <a href="#light">light</a> включает/выключает освещение графиков построенных после ее вызова. MathGL  поддерживает до 10 независимых источников света. Положение, цвет, яркость каждого источника света можно задавать по отдельности. По умолчанию включен только первый (с порядковым номером <code>0</code>) источник света белого цвета, расположенный сверху.
+</p>
+<a name="index-light"></a>
+<p><a name="light"></a>
+</p><dl>
+<dt><a name="index-light-1"></a><u>Команда MGL:</u> <b>light</b><i> <code>[val=on]</code></i></dt>
+<dd><p>Включает/выключает освещение графика. По умолчанию освещение выключено.
+</p></dd></dl>
+<dl>
+<dt><a name="index-light-2"></a><u>Команда MGL:</u> <b>light</b><i> <code>n val</code></i></dt>
+<dd><p>Включает/выключает <var>n</var>-ый источник света.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-light-3"></a><u>Команда MGL:</u> <b>light</b><i> <code>n xpos ypos zpos</code> ['col'='w' <code>br=0.5</code>]</i></dt>
+<dd><p>Добавляет источник света с номером <var>n</var> в положение {<var>xpos</var>, <var>ypos</var>, <var>zpos</var>} с цветом <var>col</var> и яркостью <var>br</var>, которая должна быть в диапазоне [0,1].
+</p></dd></dl>
+
+<a name="index-ambient"></a>
+<p><a name="ambient"></a>
+</p><dl>
+<dt><a name="index-ambient-1"></a><u>Команда MGL:</u> <b>ambient</b><i> <code>val</code></i></dt>
+<dd><p>Задает яркость рассеянного освещения. Значение должно быть в диапазоне [0,1].
+</p></dd></dl>
+
+<hr size="6">
+<a name="Fog"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lighting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Default-sizes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0422_0443_043c_0430_043d"></a>
+<h3 class="subsection">1.2.3 Туман</h3>
+
+<a name="index-fog"></a>
+<p><a name="fog"></a>
+</p><dl>
+<dt><a name="index-fog-1"></a><u>Команда MGL:</u> <b>fog</b><i> <code>val [dz=0.25]</code></i></dt>
+<dd><p>Имитирует туман на графике. Туман начинается на относительном расстоянии <var>dz</var> от точки обзора и его плотность растет экспоненциально вглубь по закону ~<em>1-exp(-d*z)</em>. Здесь <em>z</em> &ndash; нормализованная на 1 глубина графика. Если <var>d</var>=<code>0</code> то туман отсутствует. См. раздел <a href="mgl_ru_3.html#Surface-in-fog-sample">Surface in fog &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Default-sizes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fog" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Zooming" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0411_0430_0437_043e_0432_044be-_0440_0430_0437_043ce_0440_044b"></a>
+<h3 class="subsection">1.2.4 Базовые размеры</h3>
+
+<p>Эти команды задают величины большинства параметров графика, включая размеры маркеров, стрелок, толщину линий и т.д. Как и любые другие настройки, они подействуют только на графики созданные после изменения настроек.
+</p>
+<a name="index-barwidth"></a>
+<p><a name="barwidth"></a>
+</p><dl>
+<dt><a name="index-barwidth-1"></a><u>Команда MGL:</u> <b>barwidth</b><i> <code>val</code></i></dt>
+<dd><p>Относительный размер прямоугольников в <code>bars, barh, boxplot</code>. Значение по умолчанию <code>0.7</code>.
+</p></dd></dl>
+
+<a name="index-marksize"></a>
+<p><a name="marksize"></a>
+</p><dl>
+<dt><a name="index-marksize-1"></a><u>Команда MGL:</u> <b>marksize</b><i> <code>val</code></i></dt>
+<dd><p>Размер маркеров для <a href="#g_t1D-plotting">1D графики</a>. Значение по умолчанию <code>1</code>.
+</p></dd></dl>
+
+<a name="index-arrowsize"></a>
+<p><a name="arrowsize"></a>
+</p><dl>
+<dt><a name="index-arrowsize-1"></a><u>Команда MGL:</u> <b>arrowsize</b><i> <code>val</code></i></dt>
+<dd><p>Размер стрелок для <a href="#g_t1D-plotting">1D графики</a>, линий и кривых (see section <a href="#Primitives-drawing">Рисование примитивов</a>). Значение по умолчанию <code>1</code>.
+</p></dd></dl>
+
+<a name="index-linewidth"></a>
+<p><a name="linewidth"></a>
+</p><dl>
+<dt><a name="index-linewidth-1"></a><u>Команда MGL:</u> <b>linewidth</b><i> <code>val</code></i></dt>
+<dd><p>Базовая толщина линий. Значения &lt;1 игнорируются. Для значений &gt;1 реальная толщина получается перемножением указанной ширины линии на данное значение. Увеличение ширины линии актуально для больших растровых рисунков. Значение по умолчанию <code>1</code>.
+</p></dd></dl>
+
+<a name="index-ticklen"></a>
+<p><a name="ticklen"></a>
+</p><dl>
+<dt><a name="index-ticklen-1"></a><u>Команда MGL:</u> <b>ticklen</b><i> <code>val</code> [<code>stt=1</code>]</i></dt>
+<dd><p>Относительная длина меток осей координат. Значение по умолчанию <code>0.1</code>. Параметр <var>stt</var>&gt;0 задает относительную длину подметок, которые в <code>sqrt(1+stt)</code> раз меньше.
+</p></dd></dl>
+
+<a name="index-tickstl"></a>
+<p><a name="tickstl"></a>
+</p><dl>
+<dt><a name="index-tickstl-1"></a><u>Команда MGL:</u> <b>tickstl</b><i> 'stl' ['sub'='']</i></dt>
+<dd><p>Стиль меток (<var>stl</var>) и подметок (<var>sub</var>) осей координат. Если <code>stl=''</code>, то используется стиль по умолчанию (&lsquo;<samp>k</samp>&rsquo; или &lsquo;<samp>w</samp>&rsquo; в зависимости от типа прозрачности). Если <code>sub=''</code>, то используется стиль меток (т.е. <var>stl</var>).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Zooming"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Default-sizes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cutting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041c_0430_0441_0448_0442_0430_0431_0438_0440_043e_0432_0430_043d_0438e"></a>
+<h3 class="subsection">1.2.5 Масштабирование</h3>
+
+<p>Эти команды управляют масштабированием всего рисунка (<a href="#zoom">zoom</a>) или отдельной картинки (<a href="#plotfactor">plotfactor</a>). Обычно эти функции используются для удаления пустого места вокруг графиков.
+</p>
+<a name="index-plotfactor"></a>
+<p><a name="plotfactor"></a>
+</p><dl>
+<dt><a name="index-plotfactor-1"></a><u>Команда MGL:</u> <b>plotfactor</b><i> <code>val</code></i></dt>
+<dd><p>Масштаб картинки (значение должно быть больше 1). Не рекомендуется устанавливать значения меньше 1.5. Это аналог <a href="#zoom">zoom</a>, но применяется только к конкретной картинке, заданной <a href="#inplot">inplot</a>. Используйте ноль для включения автоматического масштабирования.
+</p></dd></dl>
+
+<a name="index-zoom"></a>
+<p><a name="zoom"></a>
+</p><dl>
+<dt><a name="index-zoom-1"></a><u>Команда MGL:</u> <b>zoom</b><i> <code>x1 y1 x2 y2</code></i></dt>
+<dd><p>Масштабирует весь рисунок. После вызова функции текущий график будет очищен и в дальнейшем рисунок будет содержать только область [x1,x2]*[y1,y2] от исходного рисунка. Координаты <var>x1</var>, <var>x2</var>, <var>y1</var>, <var>y2</var> меняются в диапазоне от 0 до 1. Внимание! эти настройки не могут быть переписаны никакими другими функциями. Используйте <code>zoom 0 0 1 1</code> для перехода в масштаб по умолчанию.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Cutting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Zooming" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0431_0440e_0437_0430_043d_0438e"></a>
+<h3 class="subsection">1.2.6 Обрезание</h3>
+
+<p>Эти команды задают условия когда точка будет исключена (вырезана) из рисования. Замечу, что все точки со значением(-ями) <code>nan</code> по одной из координат или амплитуде автоматически исключаются из рисования.
+</p>
+<a name="index-cut"></a>
+<p><a name="cut"></a>
+</p><dl>
+<dt><a name="index-cut-1"></a><u>Команда MGL:</u> <b>cut</b><i> <code>val</code></i></dt>
+<dd><p>Задает обрезание точек за пределами осей координат. Если <code>on</code> то такие точки исключаются из рисования (это по умолчанию) иначе они проецируются на ограничивающий прямоугольник.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cut-2"></a><u>Команда MGL:</u> <b>cut</b><i> <code>x1 y1 z1 x2 y2 z2</code></i></dt>
+<dd><p>Задает границы параллелепипеда внутри которого точки не рисуются. Если границы одинаковы (переменные равны), то параллелепипеда считается пустым. См. раздел <a href="mgl_ru_3.html#CutMinMax-sample">CutMinMax &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cut-3"></a><u>Команда MGL:</u> <b>cut</b><i> 'cond'</i></dt>
+<dd><p>Задает условие обрезания по формуле <var>cond</var>. Это условие исключает точки из рисования если результат вычисления формулы не равен нулю. Установите аргумент <code>''</code> для выключения условия обрезания. См. раздел <a href="mgl_ru_3.html#CutOff-sample">CutOff &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Other-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cutting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-settings" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Graphics-setup" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043e_0447_0438e-_043d_0430_0441_0442_0440_043e_0439_043a_0438"></a>
+<h3 class="subsection">1.2.7 Прочие настройки</h3>
+
+<a name="index-font"></a>
+<p><a name="font"></a>
+</p><dl>
+<dt><a name="index-font-1"></a><u>Команда MGL:</u> <b>font</b><i> 'fnt' [<code>val=6</code>]</i></dt>
+<dd><p>Задает стиль и размер шрифта (see section <a href="#Text-printing">Вывод текста</a>). Вначале используется &lsquo;<samp>rC</samp>&rsquo; &ndash; прямой шрифт с выравниванием по центру. По умолчанию размер подписей оси координат в 1.4 раза больше.
+</p></dd></dl>
+
+<a name="index-rotatetext"></a>
+<p><a name="rotatetext"></a>
+</p><dl>
+<dt><a name="index-rotatetext-1"></a><u>Команда MGL:</u> <b>rotatetext</b><i> <code>val</code></i></dt>
+<dd><p>Включает/выключает вращение меток и подписей осей координат вдоль оси. Начальное значение <code>on</code>.
+</p></dd></dl>
+
+<a name="index-palette"></a>
+<p><a name="palette"></a>
+</p><dl>
+<dt><a name="index-palette-1"></a><u>Команда MGL:</u> <b>palette</b><i> 'colors'</i></dt>
+<dd><p>Задает палитру как последовательность цветов. Значение по умолчанию <code>&quot;Hbgrcmyhlnqeup&quot;</code>, что соответствует цветам: темно серый &lsquo;<samp>H</samp>&rsquo;, синий &lsquo;<samp>b</samp>&rsquo;, зеленый &lsquo;<samp>g</samp>&rsquo;, красный &lsquo;<samp>r</samp>&rsquo;, голубой &lsquo;<samp>c</samp>&rsquo;, малиновый &lsquo;<samp>m</samp>&rsquo;, желтый &lsquo;<samp>y</samp>&rsquo;, серый &lsquo;<samp>h</samp>&rsquo;, сине-зеленый  &lsquo;<samp>l</samp>&rsquo;, небесно-голубой &lsquo;<samp>n</samp>&rsquo;, оранжевый &lsquo;<samp>q</samp>&rsquo;, желто-зеленый &lsquo;<samp>e</samp>&rsquo;, сине-фиолетовый &lsquo;<samp>u</samp>&rsquo;, фиолетовый &lsquo;<samp>p</samp>&rsquo;. Палитра в основном используется в 1D графиках (see section <a href="#g_t1D-plotting">1D графики</a>) для кривых с неопределенным стилем линии.
+</p></dd></dl>
+
+<a name="index-meshnum"></a>
+<p><a name="meshnum"></a>
+</p><dl>
+<dt><a name="index-meshnum-1"></a><u>Команда MGL:</u> <b>meshnum</b><i> <code>num</code></i></dt>
+<dd><p>Задает ориентировочное число линий в <a href="#mesh">mesh</a>, <a href="#fall">fall</a>, <a href="#grid">grid</a>, число стрелок (штрихов) в <a href="#vect">vect</a>, <a href="#dew">dew</a> и число ячеек в <a href="#cloud">cloud</a>. По умолчанию (=0) рисуются все линии, стрелки, ячейки.
+</p></dd></dl>
+
+<a name="index-axialdir"></a>
+<p><a name="axialdir"></a>
+</p><dl>
+<dt><a name="index-axialdir-1"></a><u>Команда MGL:</u> <b>axialdir</b><i> 'dir'</i></dt>
+<dd><p>Задает ось вращения для <a href="#axial">axial</a>, <a href="#torus">torus</a>. По умолчанию это &rsquo;z&rsquo;.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Axis-settings"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transformation-matrix" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0430_0440_0430_043ce_0442_0440_044b-_043e_0441e_0439-_043a_043e_043e_0440_0434_0438_043d_0430_0442"></a>
+<h2 class="section">1.3 Параметры осей координат</h2>
+
+<p>Этот большой набор команд определяет вид осей и меток координат. Перед построением для каждой точки выполняются 3 преобразования: сначала определяется возможность рисования точки (see section <a href="#Cutting">Обрезание</a>), далее применяются формулы перехода к криволинейным координатам и наконец точка отображается.
+</p>
+<a name="index-axis"></a>
+<p><a name="axis"></a>
+</p><dl>
+<dt><a name="index-axis-1"></a><u>Команда MGL:</u> <b>axis</b><i> <code>x1 y1 x2 y2</code></i></dt>
+<dt><a name="index-axis-2"></a><u>Команда MGL:</u> <b>axis</b><i> <code>x1 y1 z1 x2 y2 z2</code></i></dt>
+<dd><a name="index-ranges"></a>
+<p><a name="ranges"></a>
+</p></dd><dt><a name="index-ranges-1"></a><u>Команда MGL:</u> <b>ranges</b><i> <code>x1 x2 y1 y2 [z1=0 z2=0]</code></i></dt>
+<dd><p>Задает диапазон изменения координат. Если минимальное и максимальное значение координаты равны, то они игнорируются по данному направлению. Также устанавливает размер цветовой шкалы, аналогично команде  <code>caxis z1 z2</code>. Начальные диапазоны равны [-1, 1].
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axis-3"></a><u>Команда MGL:</u> <b>axis</b><i> 'fx' 'fy' ['fz'='' 'fa'='']</i></dt>
+<dd><p>Задает формулы перехода к криволинейным координатам. Каждая строка является математическим выражением, зависящим от старых координат &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; и &lsquo;<samp>a</samp>&rsquo; или &lsquo;<samp>c</samp>&rsquo; для цветовой шкалы. Например, для цилиндрических координат будет <code>axis 'x*cos(y)' 'x*sin(y)' 'z'</code>. Для удаления формул соответствующий параметр должен быть пустым <code>''</code>. Использование формул преобразования слегка замедляет программу, т.е.. <code>axis '' '' ''</code> быстрее чем <code>axis '1*x' '1*y' '1*z'</code>. Параметр <var>fa</var> задает аналогичную формулу для цветовой шкалы. See section <a href="#Textual-formulas">Текстовые формулы</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axis-4"></a><u>Команда MGL:</u> <b>axis</b><i> <code>how</code></i></dt>
+<dd><p>Устанавливает одну из предопределенных систем криволинейных координат в зависимости от параметра <var>how</var>: &lsquo;<samp>0</samp>&rsquo; &ndash; декартова система (нет преобразования координат, наиболее быстрая); &lsquo;<samp>1</samp>&rsquo; &ndash; полярные координаты <em>x_n=x*cos(y),y_n=x*sin(y), z_n=z</em>; &lsquo;<samp>2</samp>&rsquo; &ndash; сферические координаты <em>x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y)</em>; &lsquo;<samp>3</samp>&rsquo; &ndash; параболические координаты <em>x_n=x*y, y_n=(x*x-y*y)/2, z_n=z</em>; &lsquo;<samp>4</samp>&rsquo; &ndash; Paraboloidal coordinates <em>x_n=(x*x-y*y)*cos(z)/2, y_n=(x*x-y*y)*sin(z)/2, z_n=x*y</em>; &lsquo;<samp>5</samp>&rsquo; &ndash; Oblate coordinates <em>x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z), z_n=sinh(x)*sin(y)</em>; &lsquo;<samp>6</samp>&rsquo; &ndash; Prolate coordinates <em>x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z), z_n=cosh(x)*cos(y)</em>; &lsquo;<samp>7</samp>&rsquo; &ndash; эллиптические координаты <em>x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z</em>; &lsquo;<samp>8</samp>&rsquo; &ndash; тороидальные координаты <em>x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)), y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y))</em>; &lsquo;<samp>9</samp>&rsquo; &ndash; бисферические координаты <em>x_n=sin(y)*cos(z)/(cosh(x)-cos(y)), y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y))</em>; &lsquo;<samp>10</samp>&rsquo; &ndash; биполярные координаты <em>x_n=sinh(x)/(cosh(x)-cos(y)), y_n=sin(y)/(cosh(x)-cos(y)), z_n=z</em>.
+</p></dd></dl>
+
+<a name="index-caxis"></a>
+<p><a name="caxis"></a>
+</p><dl>
+<dt><a name="index-caxis-1"></a><u>Команда MGL:</u> <b>caxis</b><i> <code>z1 z2</code></i></dt>
+<dd><p>Задает масштаб цветовой шкалы (c-координаты). Эти значения используются для определения цвета поверхностей и прочих 2D и 3D графиков. Начальный диапазон равен [-1, 1].
+</p></dd></dl>
+
+<a name="index-origin"></a>
+<p><a name="origin"></a>
+</p><dl>
+<dt><a name="index-origin-1"></a><u>Команда MGL:</u> <b>origin</b><i> <code>x0 y0 [z0=nan]</code></i></dt>
+<dd><p>Задает центр пересечения осей координат. Если одно из значений равно <code>nan</code>, то выбрается оптимальное положение осей координат по этому направлению.
+</p></dd></dl>
+
+<a name="index-ternary"></a>
+<p><a name="ternary"></a>
+</p><dl>
+<dt><a name="index-ternary-1"></a><u>Команда MGL:</u> <b>ternary</b><i> <code>val</code></i></dt>
+<dd><p>Задает рисование треугольных (Ternary) осей координат. Это специальный тип графика для 3 зависимых координат (компонент) <var>a</var>, <var>b</var>, <var>c</var> таких, что <var>a</var>+<var>b</var>+<var>c</var>=1. MathGL использует только 2 независимые координаты <var>a</var>=x и <var>b</var>=y поскольку их достаточно для построения всех графиков. При этом третья координата z является независимым параметром для построения линий уровня, поверхностей и т.д. См. раздел <a href="mgl_ru_3.html#Ternary-plot-sample">Ternary plot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-xrange"></a>
+<p><a name="xrange"></a>
+</p><dl>
+<dt><a name="index-xrange-1"></a><u>Команда MGL:</u> <b>xrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-yrange"></a>
+<p><a name="yrange"></a>
+</p></dd><dt><a name="index-yrange-1"></a><u>Команда MGL:</u> <b>yrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-zrange"></a>
+<p><a name="zrange"></a>
+</p></dd><dt><a name="index-zrange-1"></a><u>Команда MGL:</u> <b>zrange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><a name="index-crange"></a>
+<p><a name="crange"></a>
+</p></dd><dt><a name="index-crange-1"></a><u>Команда MGL:</u> <b>crange</b><i> dat [<code>add=off fact=0</code>]</i></dt>
+<dd><p>Задает диапазон изменения x-,y-,z-,c- координат как минимальное и максимальное значение массива <var>dat</var>. Параметр <var>add</var> указывает добавлять новый диапазон к существующему или заменять его. Параметр <var>fact</var> дополнительно расширяет диапазон на величину (<var>Max</var>-<var>Min</var>)*<var>fact</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xrange-2"></a><u>Команда MGL:</u> <b>xrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-yrange-2"></a><u>Команда MGL:</u> <b>yrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-zrange-2"></a><u>Команда MGL:</u> <b>zrange</b><i> <code>x1 x2</code></i></dt>
+<dt><a name="index-crange-2"></a><u>Команда MGL:</u> <b>crange</b><i> <code>x1 x2</code></i></dt>
+<dd><p>Задает диапазон изменения x-,y-,z-,c- координат. См. также <a href="#axis">axis</a>.
+</p></dd></dl>
+
+<a name="index-xtick"></a>
+<p><a name="xtick"></a>
+</p><dl>
+<dt><a name="index-xtick-1"></a><u>Команда MGL:</u> <b>xtick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ytick"></a>
+<p><a name="ytick"></a>
+</p></dd><dt><a name="index-ytick-1"></a><u>Команда MGL:</u> <b>ytick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ztick"></a>
+<p><a name="ztick"></a>
+</p></dd><dt><a name="index-ztick-1"></a><u>Команда MGL:</u> <b>ztick</b><i> <code>val [sub=0 org=nan]</code></i></dt>
+<dd><a name="index-ctick"></a>
+<p><a name="ctick"></a>
+</p></dd><dt><a name="index-ctick-1"></a><u>Команда MGL:</u> <b>ctick</b><i> <code>val</code></i></dt>
+<dd><p>Задает шаг меток осей <var>val</var>, число подметок <var>ns</var> и начальное положение меток <var>org</var>. Переменная <var>val</var> задает шаг меток (если положительна) или их число на оси (если отрицательна). Нулевое значение задает логарифмические метки. Если <var>org</var>=<code>NAN</code>, то используется значение из <a href="#origin">origin</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xtick-2"></a><u>Команда MGL:</u> <b>xtick</b><i> 'templ'</i></dt>
+<dt><a name="index-ytick-2"></a><u>Команда MGL:</u> <b>ytick</b><i> 'templ'</i></dt>
+<dt><a name="index-ztick-2"></a><u>Команда MGL:</u> <b>ztick</b><i> 'templ'</i></dt>
+<dt><a name="index-ctick-2"></a><u>Команда MGL:</u> <b>ctick</b><i> 'templ'</i></dt>
+<dd><p>Задает шаблоны для меток вдоль x-,y-,z-оси или colorbar. Шаблон может содержать и символы TeX. Если <var>xtt</var>, <var>ytt</var>, <var>ztt</var>, <var>ctt</var>=<code>''</code>, то используется шаблон по умолчанию (в простейшем случае &lsquo;<samp>%.2g</samp>&rsquo;). Установка шаблона выключает автоматическое улучшение вида меток.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-xtick-3"></a><u>Команда MGL:</u> <b>xtick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dt><a name="index-ytick-3"></a><u>Команда MGL:</u> <b>ytick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dt><a name="index-ztick-3"></a><u>Команда MGL:</u> <b>ztick</b><i> <code>val1</code> 'lbl1' [<code>val2</code> 'lbl2' ...]</i></dt>
+<dd><p>Задает явное положение <var>val</var> и подписи <var>lbl</var> для меток вдоль оси. Метки могут содержать и символы TeX.
+</p></dd></dl>
+
+<a name="index-adjust"></a>
+<p><a name="adjust"></a>
+</p><dl>
+<dt><a name="index-adjust-1"></a><u>Команда MGL:</u> <b>adjust</b><i> ['dir'='xyzc']</i></dt>
+<dd><p>Автоматически задает шаг меток осей, число подметок и начальное положение меток для осей координат <var>dir</var> в виде наиболее удобном для человека.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Transformation-matrix"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-settings" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Export-to-file" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041c_0430_0442_0440_0438c_0430-_043f_0440e_043e_0431_0440_0430_0437_043e_0432_0430_043d_0438ya"></a>
+<h2 class="section">1.4 Матрица преобразования</h2>
+
+<p>Эти команды контролируют где и как график будет расположен. Существует определенный порядок вызова этих функций для лучшего вида графика. Вначале должны вызываться команды <a href="#subplot">subplot</a> или <a href="#inplot">inplot</a> для указания местоположения вывода. После них &ndash; команды вращения <a href="#rotate">rotate</a> и сжатия <a href="#aspect">aspect</a>. И наконец любые другие функции для рисования графика. Вместо вращения графика можно вызвать команды <a href="#columnplot">columnplot</a> для расположения графиков в столбец одного над другим или <a href="#stickplot">stickplot</a> для расположения в линейку.
+</p>
+<a name="index-subplot"></a>
+<p><a name="subplot"></a>
+</p><dl>
+<dt><a name="index-subplot-1"></a><u>Команда MGL:</u> <b>subplot</b><i> <code>nx ny m [dx=0 dy=0]</code></i></dt>
+<dd><p>Помещает последующий вывод в <var>m</var>-ую ячейку сетки размером <var>nx</var>*<var>ny</var> от всего рисунка. Функция сбрасывает матрицу трансформации (повороты и сжатие графика) и должна вызываться первой для создания &quot;подграфика&quot;. С эстетической точки зрения не рекомендуется вызывать эту функцию с различными (или не кратными) размерами сетки. Ячейка может быть дополнительно сдвинута относительно своего обычного положения на относительный размер <var>dx</var>, <var>dy</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-subplot-2"></a><u>Команда MGL:</u> <b>subplot</b><i> <code>nx ny m</code> 'style'</i></dt>
+<dd><p>Аналогично предыдущему, но место для осей/colorbar резервируется только если строка <var>style</var> содержит: &lsquo;<samp>L</samp>&rsquo; или &lsquo;<samp>&lt;</samp>&rsquo; &ndash; с левого края, &lsquo;<samp>R</samp>&rsquo; или &lsquo;<samp>&gt;</samp>&rsquo; &ndash; с правого края, &lsquo;<samp>A</samp>&rsquo; или &lsquo;<samp>^</samp>&rsquo; &ndash; с верхнего края, &lsquo;<samp>U</samp>&rsquo; или &lsquo;<samp>_</samp>&rsquo; &ndash; с нижнего края.
+</p></dd></dl>
+
+<a name="index-inplot"></a>
+<p><a name="inplot"></a>
+</p><dl>
+<dt><a name="index-inplot-1"></a><u>Команда MGL:</u> <b>inplot</b><i> <code>x1 x2 y1 y2 [rel=off]</code></i></dt>
+<dd><p>Помещает последующий вывод в прямоугольную область [<var>x1</var>, <var>x2</var>]*[<var>y1</var>, <var>y2</var>] (исходный размер [0,1]*[0,1]). Эта функция позволяет поместить график в произвольную область рисунка. Если параметр <var>rel</var>=<code>on</code>, то используется позиция относительно текщего <a href="#subplot">subplot</a> (или <a href="#inplot">inplot</a> с <var>rel</var>=<code>off</code>). Функция сбрасывает матрицу трансформации (повороты и сжатие графика) и должна вызываться первой для создания &quot;подграфика&quot;.
+</p></dd></dl>
+
+<a name="index-columnplot"></a>
+<p><a name="columnplot"></a>
+</p><dl>
+<dt><a name="index-columnplot-1"></a><u>Команда MGL:</u> <b>columnplot</b><i> <code>num ind [d=0]</code></i></dt>
+<dd><p>Помещает последующий вывод в <var>ind</var>-ую строку столбца из <var>num</var> строк. Положение столбца выбирается относительно последнего вызова <a href="#subplot">subplot</a> (или <a href="#inplot">inplot</a> с <var>rel</var>=<code>off</code>). Параметр <var>d</var> задает дополнительный зазор между строк. См. раздел <a href="mgl_ru_3.html#ColumnPlot-sample">ColumnPlot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-stickplot"></a>
+<p><a name="stickplot"></a>
+</p><dl>
+<dt><a name="index-stickplot-1"></a><u>Команда MGL:</u> <b>stickplot</b><i> <code>num ind tet phi</code></i></dt>
+<dd><p>Помещает последующий вывод в <var>ind</var>-ую ячейку &quot;бруска&quot; из <var>num</var> ячеек. При этом сам брусок повернут на углы <var>tet</var>, <var>phi</var>. Положение выбирается относительно последнего вызова <a href="#subplot">subplot</a> (или <a href="#inplot">inplot</a> с <var>rel</var>=<code>off</code>). См. раздел <a href="mgl_ru_3.html#StickPlot-sample">StickPlot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-rotate"></a>
+<p><a name="rotate"></a>
+</p><dl>
+<dt><a name="index-rotate-1"></a><u>Команда MGL:</u> <b>rotate</b><i> <code>tetz tetx [tety=0]</code></i></dt>
+<dd><p>Вращает систему координат относительно осей {x, z, y} последовательно на углы <var>tetx</var>, <var>tetz</var>, <var>tety</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-rotate-2"></a><u>Команда MGL:</u> <b>rotate</b><i> <code>tet x y z</code></i></dt>
+<dd><p>Вращает систему координат относительно вектора {<var>x</var>, <var>y</var>, <var>z</var>} на угол <var>tet</var>.
+</p></dd></dl>
+
+<a name="index-aspect"></a>
+<p><a name="aspect"></a>
+</p><dl>
+<dt><a name="index-aspect-1"></a><u>Команда MGL:</u> <b>aspect</b><i> <code>ax ay [az=1]</code></i></dt>
+<dd><p>Устанавливает соотношение размеров осей в отношении <var>ax:ay:az</var>. Для лучшего вида следует вызывать после функции <a href="#rotate">rotate</a>.
+</p></dd></dl>
+
+<a name="index-perspective"></a>
+<p><a name="perspective"></a>
+</p><dl>
+<dt><a name="index-perspective-1"></a><u>Команда MGL:</u> <b>perspective</b><i> <code>val</code></i></dt>
+<dd><p>Добавляет (включает) перспективу для графика. Параметр <em>val ~ 1/z_eff \in [0,1)</em>. По умолчанию (<code>val=0</code>) перспектива отключена.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Export-to-file"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transformation-matrix" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Primitives-drawing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_042d_043a_0441_043f_043e_0440_0442-_0432-_0444_0430_0439_043b"></a>
+<h2 class="section">1.5 Экспорт в файл</h2>
+
+<a name="index-write"></a>
+<p><a name="write"></a>
+</p><dl>
+<dt><a name="index-write-1"></a><u>Команда MGL:</u> <b>write</b><i> 'fname' [<code>solid=off</code>]</i></dt>
+<dd><p>Экспортирует текущий кадр в файл &rsquo;fname&rsquo; (тип определяется по расширению). Параметр <var>solid</var> задает вывод картинки на текущем фоне (обычно белом) или полупрозрачной. Если &rsquo;fname&rsquo;=&rdquo;, то используется имя &lsquo;<samp>frame####.jpg</samp>&rsquo;, где &lsquo;<samp>####</samp>&rsquo; &ndash; текущий номер кадра.
+</p></dd></dl>
+
+<a name="index-setsize"></a>
+<p><a name="setsize"></a>
+</p><dl>
+<dt><a name="index-setsize-1"></a><u>Команда MGL:</u> <b>setsize</b><i> <code>w h</code></i></dt>
+<dd><p>Изменяет размер картинки в пикселях. Функция должна вызываться <strong>перед</strong> любыми функциями построения потому что полностью очищает содержимое рисунка. В некоторых программах исполнение этой команды может запрещено.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Primitives-drawing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Export-to-file" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0420_0438_0441_043e_0432_0430_043d_0438e-_043f_0440_0438_043c_0438_0442_0438_0432_043e_0432"></a>
+<h2 class="section">1.6 Рисование примитивов</h2>
+
+<p>Эти команды рисуют рисуют простые объекты типа линий, точек, сфер, капель, конусов, и т.д.
+</p>
+<a name="index-clf"></a>
+<p><a name="clf"></a>
+</p><dl>
+<dt><a name="index-clf-1"></a><u>Команда MGL:</u> <b>clf</b></dt>
+<dd><p>Очищает рисунок и заполняет его цветом по умолчанию (обычно белым). 
+</p></dd></dl>
+
+<a name="index-ball"></a>
+<p><a name="ball"></a>
+</p><dl>
+<dt><a name="index-ball-1"></a><u>Команда MGL:</u> <b>ball</b><i> <code>x y</code> ['col'='r']</i></dt>
+<dt><a name="index-ball-2"></a><u>Команда MGL:</u> <b>ball</b><i> <code>x y z</code> ['col'='r']</i></dt>
+<dd><p>Рисует точку (шарик) с координатами {<var>x</var>, <var>y</var>, <var>z</var>} и цветом <var>col</var>.
+</p></dd></dl>
+
+<a name="index-line"></a>
+<p><a name="line"></a>
+</p><dl>
+<dt><a name="index-line-1"></a><u>Команда MGL:</u> <b>line</b><i> <code>x1 y1 x2 y2</code> ['stl'='']</i></dt>
+<dt><a name="index-line-2"></a><u>Команда MGL:</u> <b>line</b><i> <code>x1 y1 z1 x2 y2 z2</code> ['stl'='']</i></dt>
+<dd><p>Рисует геодезическую линию (декартовых координатах &ndash; прямую) из точки {<var>x1</var>,<var>y1</var>,<var>z1</var>} в {<var>x2</var>,<var>y2</var>,<var>z2</var>} использую стиль линии <var>stl</var>. Кривая рисуется даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<a name="index-curve"></a>
+<p><a name="curve"></a>
+</p><dl>
+<dt><a name="index-curve-1"></a><u>Команда MGL:</u> <b>curve</b><i> <code>x1 y1 dx1 dy1 x2 y2 dx2 dy2</code> ['stl'='']</i></dt>
+<dt><a name="index-curve-2"></a><u>Команда MGL:</u> <b>curve</b><i> <code>x1 y1 z1 dx1 dy1 dz1 x2 y2 z2 dx2 dy2 dz2</code> ['stl'='']</i></dt>
+<dd><p>Рисует кривую Безье из точки {<var>x1</var>,<var>y1</var>,<var>z1</var>} в {<var>x2</var>,<var>y2</var>,<var>z2</var>} использую стиль линии <var>stl</var>. Касательные в точках пропорциональны {<var>dx1</var>,<var>dy1</var>,<var>dz1</var>}, {<var>dx2</var>,<var>dy2</var>,<var>dz2</var>}. Кривая рисуется даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<a name="index-facex"></a>
+<p><a name="facex"></a>
+</p><dl>
+<dt><a name="index-facex-1"></a><u>Команда MGL:</u> <b>facex</b><i> <code>x0 y0 z0 wy wz</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><a name="index-facey"></a>
+<p><a name="facey"></a>
+</p></dd><dt><a name="index-facey-1"></a><u>Команда MGL:</u> <b>facey</b><i> <code>x0 y0 z0 wx wz</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><a name="index-facez"></a>
+<p><a name="facez"></a>
+</p></dd><dt><a name="index-facez-1"></a><u>Команда MGL:</u> <b>facez</b><i> <code>x0 y0 z0 wx wy</code> ['stl'='' <code>d1=0 d2=0</code>]</i></dt>
+<dd><p>Рисует закрашенный прямоугольник (грань) перпендикулярно оси [x,y,z] в точке {<var>x0</var>, <var>y0</var>, <var>z0</var>} цветом <var>stl</var> и шириной <var>wx</var>, <var>wy</var>, <var>wz</var> вдоль соответствующего направления. При этом цвет может быть один для всей грани, или различным для разных вершин если указаны все 4 цвета (полезно для градиента цвета, например &lsquo;<samp>wwrr</samp>&rsquo;). Параметры <var>d1</var>!=0, <var>d2</var>!=0 задают дополнительный сдвиг последней точки (т.е. рисуют четырехугольник). Грань будет нарисована даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<a name="index-sphere"></a>
+<p><a name="sphere"></a>
+</p><dl>
+<dt><a name="index-sphere-1"></a><u>Команда MGL:</u> <b>sphere</b><i> <code>x0 y0 r</code> ['col'='r']</i></dt>
+<dt><a name="index-sphere-2"></a><u>Команда MGL:</u> <b>sphere</b><i> <code>x0 y0 z0 r</code> ['col'='r']</i></dt>
+<dd><p>Рисует сферу радиуса <var>r</var> с центром в точке {<var>x</var>, <var>y</var>, <var>z</var>} цветом <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-drop"></a>
+<p><a name="drop"></a>
+</p><dl>
+<dt><a name="index-drop-1"></a><u>Команда MGL:</u> <b>drop</b><i> <code>x0 y0 dx dy r</code> ['col'='b' <code>sh=1 asp=1</code>]</i></dt>
+<dt><a name="index-drop-2"></a><u>Команда MGL:</u> <b>drop</b><i> <code>x0 y0 z0 dx dy dz r</code> ['col'='b' <code>sh=1 asp=1</code>]</i></dt>
+<dd><p>Рисует каплю радиуса <var>r</var> в точке {<var>x0</var>,<var>y0</var>,<var>z0</var>} вытянутую вдоль направления {<var>dx</var>,<var>dy</var>,<var>dz</var>} цветом <var>col</var>. Параметр <var>sh</var> определяет степень вытянутости: &lsquo;<samp>0</samp>&rsquo; &ndash; сфера, &lsquo;<samp>1</samp>&rsquo; &ndash; классическая капля. Параметр <var>asp</var> определяет относительную ширину капли (аналог &quot;эллиптичности&quot; для сферы). См. раздел <a href="mgl_ru_3.html#Drops-sample">Drops &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-cone"></a>
+<p><a name="cone"></a>
+</p><dl>
+<dt><a name="index-cone-1"></a><u>Команда MGL:</u> <b>cone</b><i> <code>x1 y1 z1 x2 y2 z2 r1</code> [<code>r2=-1</code> 'stl'='' <code>edge=off</code>]</i></dt>
+<dd><p>Рисует трубу (или усеченный конус если <var>edge</var>=<code>off</code>) между точками {<var>x1</var>,<var>y1</var>,<var>z1</var>}, {<var>x2</var>,<var>y2</var>,<var>z2</var>} с радиусами на концах <var>r1</var>, <var>r2</var>. Если <var>r2</var>&lt;0, то полагается <var>r2</var>=<var>r1</var>. Цвет конуса задается строкой <var>stl</var>.
+</p></dd></dl>
+
+<a name="index-rect"></a>
+<p><a name="rect"></a>
+</p><dl>
+<dt><a name="index-rect-1"></a><u>Команда MGL:</u> <b>rect</b><i> <code>x1 y1 x2 y2</code> ['st'='']</i></dt>
+<dt><a name="index-rect-2"></a><u>Команда MGL:</u> <b>rect</b><i> <code>x1 y1 z1 x2 y2 z2</code> ['st'='']</i></dt>
+<dd><p>Рисует закрашенный прямоугольник (грань) с противоположными вершинами в точках {<var>x1</var>,<var>y1</var>,<var>z1</var>}, {<var>x2</var>,<var>y2</var>,<var>z2</var>} цветом <var>stl</var>. При этом цвет может быть один для всей грани, или различным для разных вершин если указаны все 4 цвета (полезно для градиента цвета, например &lsquo;<samp>wwrr</samp>&rsquo;). Грань будет нарисована даже если часть ее лежит вне диапазона осей координат.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Text-printing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Primitives-drawing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-Colorbar" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0412_044b_0432_043e_0434-_0442e_043a_0441_0442_0430"></a>
+<h2 class="section">1.7 Вывод текста</h2>
+
+<p>Команды для вывода текста позволяют вывести строку текста в произвольном месте рисунка, в произвольном направлении и вдоль произвольной кривой. Можно использовать произвольное начертание шрифта и многие ТеХ-ие команды (детальнее see section <a href="#Font-styles">Стиль текста</a>). Аргумент <var>size</var> определяет размер текста: размер шрифта если положителен или относительный размер (=-<var>size</var>*<var>fontsize</var>) если отрицателен.
+</p>
+<p>Параметры шрифта задаются строкой, которая может содержать символы стиля (&lsquo;<samp>rbiwou</samp>&rsquo;) и/или выравнивания (&lsquo;<samp>LRC</samp>&rsquo;). Также строка может содержать символы цвета &lsquo;<samp>wkrgbcymhRGBCYMHW</samp>&rsquo; (see section <a href="#Line-styles">Стиль линий</a>) после символа &lsquo;<samp>:</samp>&rsquo;. Стили шрифта: &lsquo;<samp>r</samp>&rsquo; &ndash; прямой, &lsquo;<samp>i</samp>&rsquo; &ndash; курсив, &lsquo;<samp>b</samp>&rsquo; &ndash; жирный, &lsquo;<samp>w</samp>&rsquo; &ndash; контурный, &lsquo;<samp>o</samp>&rsquo; &ndash; надчеркнутый, &lsquo;<samp>u</samp>&rsquo; &ndash; подчеркнутый. По умолчанию используется прямой шрифт. Типы выравнивания: &lsquo;<samp>L</samp>&rsquo; &ndash; по левому краю (по умолчанию), &lsquo;<samp>C</samp>&rsquo; &ndash; по центру, &lsquo;<samp>R</samp>&rsquo; &ndash; по правому краю. Например, строка &lsquo;<samp>iC:b</samp>&rsquo; соответствует курсиву синего цвета с выравниванием по центру. По умолчанию используются параметры, определенные командой <a href="#font">font</a>.
+</p>
+<p>Если строка содержит символы &lsquo;<samp>aA</samp>&rsquo;, то текст выводится в абсолютных координатах (полагаются в диапазоне [0,1]). При этом используются координаты относительно рисунка (если указано &lsquo;<samp>A</samp>&rsquo;) или относительно последнего <a href="#subplot">subplot</a>/<a href="#inplot">inplot</a> (если указано &lsquo;<samp>a</samp>&rsquo;).
+</p>
+<a name="index-text"></a>
+<p><a name="text"></a>
+</p><dl>
+<dt><a name="index-text-1"></a><u>Команда MGL:</u> <b>text</b><i> <code>x y</code> 'text' ['fnt'='' <code>size=-1.4</code>]</i></dt>
+<dt><a name="index-text-2"></a><u>Команда MGL:</u> <b>text</b><i> <code>x y z</code> 'text' ['fnt'='' <code>size=-1.4</code>]</i></dt>
+<dd><p>Выводит строку <var>text</var> от точки {<var>x</var>,<var>y</var>,<var>z</var>} шрифтом <var>fnt</var> и размером <var>size</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-text-3"></a><u>Команда MGL:</u> <b>text</b><i> <code>x y dx dy</code> 'text' [<code>size=-1.4</code>]</i></dt>
+<dt><a name="index-text-4"></a><u>Команда MGL:</u> <b>text</b><i> <code>x y z dx dy dz</code> 'text' [<code>size=-1.4</code>]</i></dt>
+<dd><p>Выводит строку <var>text</var> от точки {<var>x</var>,<var>y</var>,<var>z</var>} вдоль направления {<var>dx</var>,<var>dy</var>,<var>dz</var>} шрифтом <var>fnt</var> и размером <var>size</var>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-text-5"></a><u>Команда MGL:</u> <b>text</b><i> ydat 'text' ['fnt'='' <code>size=-1 zval=nan</code>]</i></dt>
+<dt><a name="index-text-6"></a><u>Команда MGL:</u> <b>text</b><i> xdat ydat 'text' ['fnt'='' <code>size=-1 zval=nan</code>]</i></dt>
+<dt><a name="index-text-7"></a><u>Команда MGL:</u> <b>text</b><i> xdat ydat zdat 'text' ['fnt'='' <code>size=-1</code>]</i></dt>
+<dd><p>Выводит строку <var>text</var> вдоль кривой {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} шрифтом <var>font</var>. Строка <var>font</var> может содержать символы: &lsquo;<samp>t</samp>&rsquo; для вывода текста под кривой (по умолчанию), или &lsquo;<samp>T</samp>&rsquo; для вывода текста над кривой. Если массив <var>xdat</var> не указан, то используется массив со значениями равно распределенными вдоль оси x. Если массив <var>zdat</var> не указан, то используется <var>zdat</var>[i] = <var>zval</var>. См. раздел <a href="mgl_ru_3.html#Text-sample">Text &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-title"></a>
+<p><a name="title"></a>
+</p><dl>
+<dt><a name="index-title-1"></a><u>Команда MGL:</u> <b>title</b><i> 'text' ['fnt'='' <code>size=-2</code>]</i></dt>
+<dd><p>Выводит строку <var>text</var> как заголовок (сверху рисунка). Может использоваться в любом месте (даже внутри <a href="#subplot">subplot</a>).
+</p></dd></dl>
+
+<a name="index-fgets"></a>
+<p><a name="fgets"></a>
+</p><dl>
+<dt><a name="index-fgets-1"></a><u>Команда MGL:</u> <b>fgets</b><i> <code>x y</code> 'fname' [<code>n=0</code> 'fnt'='' <code>size=-1.4</code>]</i></dt>
+<dt><a name="index-fgets-2"></a><u>Команда MGL:</u> <b>fgets</b><i> <code>x y z</code> 'fname' [<code>n=0</code> 'fnt'='' <code>size=-1.4</code>]</i></dt>
+<dd><p>Выводит <var>n</var>-ую строку файла <var>fname</var> от точки {<var>x</var>,<var>y</var>,<var>z</var>} шрифтом <var>fnt</var> и размером <var>size</var>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Axis-and-Colorbar"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_0438-_0438-Colorbar"></a>
+<h2 class="section">1.8 Оси и Colorbar</h2>
+
+<p>Эти команды рисуют объекты для &quot;измерения&quot; типа осей координат, цветовой таблицы (colorbar), сетку по осям, обрамляющий параллелепипед и подписи по осям координат. См. также <a href="#Axis-settings">Параметры осей координат</a>.
+</p>
+<a name="index-axis-5"></a>
+<dl>
+<dt><a name="index-axis-6"></a><u>Команда MGL:</u> <b>axis</b><i> ['dir'='xyz' <code>adjust=off</code>]</i></dt>
+<dd><p>Рисует оси координат и метки на них (see section <a href="#Axis-settings">Параметры осей координат</a>) в направлениях, указанных строкой <var>dir</var>. Если строка содержит символ &lsquo;<samp>_</samp>&rsquo;, то подписи меток отображаться не будут. Шрифт подписей определяется командой <a href="#font">font</a>. Метки будут &quot;подогнаны&quot; если <var>adjust</var>=<code>on</code> (с помощью вызова <code>adjust 'dir'</code>). 
+</p></dd></dl>
+
+<a name="index-colorbar"></a>
+<p><a name="colorbar"></a>
+</p><dl>
+<dt><a name="index-colorbar-1"></a><u>Команда MGL:</u> <b>colorbar</b><i> ['sch'='' <code>pos=0</code>]</i></dt>
+<dd><p>Рисует полосу соответствия цвета и числовых значений (colorbar) для цветовой схемы <var>sch</var> (используется текущая для <code>sch=''</code>) с краю от графика. Параметр <var>pos</var> задает местоположение: &lsquo;<samp>0</samp>&rsquo; - справа (по умолчанию), &lsquo;<samp>1</samp>&rsquo; - слева, &lsquo;<samp>2</samp>&rsquo; - сверху, &lsquo;<samp>3</samp>&rsquo; - снизу. Если строка <var>sch</var> содержит &lsquo;<samp>&lt;&gt;^_</samp>&rsquo;, то параметр <var>pos</var> определяется как: <code>pos=0</code> для &lsquo;<samp>&gt;</samp>&rsquo; (справа), <code>pos=1</code> для &lsquo;<samp>&lt;</samp>&rsquo; (слева), <code>pos=2</code> для &lsquo;<samp>^</samp>&rsquo; (сверху), <code>pos=3</code> для &lsquo;<samp>_</samp>&rsquo; (снизу). Если строка содержит &lsquo;<samp>A</samp>&rsquo;, то используются абсолютные координаты (относительно рисунка). См. раздел <a href="mgl_ru_3.html#Dens-sample">Dens &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-colorbar-2"></a><u>Команда MGL:</u> <b>colorbar</b><i> vdat ['sch'='' <code>pos=0</code>]</i></dt>
+<dd><p>Аналогично предыдущему, но для цветовой схемы без сглаживания с заданными значениями <var>vdat</var>. См. раздел <a href="mgl_ru_3.html#ContD-sample">ContD &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-colorbar-3"></a><u>Команда MGL:</u> <b>colorbar</b><i> 'sch' <code>pos x y w h</code></i></dt>
+<dd><p>Аналогично первому, но в произвольном месте графика {<var>x</var>, <var>y</var>} (полагаются в диапазоне [0,1]). Параметры <var>w</var>, <var>h</var> задают относительную ширину и высоту colorbar.
+</p></dd></dl>
+
+<a name="index-grid"></a>
+<p><a name="grid"></a>
+</p><dl>
+<dt><a name="index-grid-1"></a><u>Команда MGL:</u> <b>grid</b><i> ['dir'='xyz' 'pen'='B']</i></dt>
+<dd><p>Рисует линии сетки в направлениях перпендикулярным <var>dir</var>. Шаг сетки такой же как у меток осей координат. Стиль линий задается параметром <var>pen</var> (по умолчанию &ndash; сплошная темно синяя линия &lsquo;<samp>B-</samp>&rsquo;).
+</p></dd></dl>
+
+<a name="index-box"></a>
+<p><a name="box"></a>
+</p><dl>
+<dt><a name="index-box-1"></a><u>Команда MGL:</u> <b>box</b><i> ['stl'='k' <code>ticks=on</code>]</i></dt>
+<dd><p>Рисует ограничивающий параллелепипед цветом &rsquo;stl&rsquo;. При <code>ticks=on</code> рисуются метки в соответствии с текущими настройками осей координат <a href="#axis">axis</a>.
+</p></dd></dl>
+
+<a name="index-xlabel"></a>
+<p><a name="xlabel"></a>
+</p><dl>
+<dt><a name="index-xlabel-1"></a><u>Команда MGL:</u> <b>xlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-ylabel"></a>
+<p><a name="ylabel"></a>
+</p></dd><dt><a name="index-ylabel-1"></a><u>Команда MGL:</u> <b>ylabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-zlabel"></a>
+<p><a name="zlabel"></a>
+</p></dd><dt><a name="index-zlabel-1"></a><u>Команда MGL:</u> <b>zlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><a name="index-tlabel"></a>
+<p><a name="tlabel"></a>
+</p></dd><dt><a name="index-tlabel-1"></a><u>Команда MGL:</u> <b>tlabel</b><i> 'text' [<code>pos=0 size=-1.4 shift=0</code>]</i></dt>
+<dd><p>Выводит подпись <var>text</var> для x-,y-,z-,t-оси (где &lsquo;<samp>t</samp>&rsquo; &ndash; &ldquo;тернарная&rdquo; ось <em>t=1-x-y</em>). Параметр <var>pos</var> задает положение подписи: при <var>pos</var>=0 &ndash; по центру оси, при <var>pos</var>&gt;0 &ndash; около максимальных значений, при <var>pos</var>&lt;0 &ndash; около минимальных значений. Параметр <var>size</var> задает размер шрифта (по умолчанию в 1.4 раза больше чем у меток). See section <a href="#Text-printing">Вывод текста</a>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Legend"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-Colorbar" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041bege_043d_0434_0430"></a>
+<h2 class="section">1.9 Легенда</h2>
+
+<p>Эти команды обеспечивают рисование легенды графика (полезно для <a href="#g_t1D-plotting">1D графики</a>). Запись в легенде состоит из двух строк: одна для стиля линии и маркеров, другая с текстом описания (с включенным разбором TeX-их команд), накапливаемые во внутренние массивы с помощью команды <a href="#addlegend">addlegend</a> или опции <a href="#legend">legend</a>. Положение легенды можно задать автоматически или вручную. Параметры <var>font</var> и <var>size</var> задают стиль и размер шрифта. Параметр <var>llen</var> задает относительную ширину примера линии. Ели стиль линии пустой, то соответствующий текст печатается без отступа. Если строка <var>font</var> содержит символ &lsquo;<samp>A</samp>&rsquo;, то координаты легенды считаются относительно картинки (а не текущего subplot). См. раздел <a href="mgl_ru_3.html#Legend-sample">Legend &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<a name="index-legend"></a>
+<p><a name="legend"></a>
+</p><dl>
+<dt><a name="index-legend-1"></a><u>Команда MGL:</u> <b>legend</b><i> [<code>pos=3</code> 'fnt'='rL' <code>size=-1 llen=0.1</code>]</i></dt>
+<dd><p>Рисует легенду из накопленных записей шрифтом <var>fnt</var> размером <var>size</var>. Параметр <var>pos</var> задает положение легенды: &lsquo;<samp>0</samp>&rsquo; &ndash; в нижнем левом углу, &lsquo;<samp>1</samp>&rsquo; &ndash; нижнем правом углу, &lsquo;<samp>2</samp>&rsquo; &ndash; верхнем левом углу, &lsquo;<samp>3</samp>&rsquo; &ndash; верхнем правом углу (по умолчанию).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-legend-2"></a><u>Команда MGL:</u> <b>legend</b><i> <code>x y</code> ['fnt'='rL' <code>size=-1 llen=0.1</code>]</i></dt>
+<dd><p>Рисует легенду из накопленных записей шрифтом <var>font</var> размером <var>size</var>. Положение легенды задается параметрами <var>x</var>, <var>y</var>, которые полагаются нормированными в диапазоне [0,1].
+</p></dd></dl>
+
+<a name="index-addlegend"></a>
+<p><a name="addlegend"></a>
+</p><dl>
+<dt><a name="index-addlegend-1"></a><u>Команда MGL:</u> <b>addlegend</b><i> 'text' 'stl'</i></dt>
+<dd><p>Добавляет описание <var>text</var> кривой со стилем <var>stl</var> (see section <a href="#Line-styles">Стиль линий</a>) во внутренний массив записей легенды. Максимальное число записей 100.
+</p></dd></dl>
+
+<a name="index-clearlegend"></a>
+<p><a name="clearlegend"></a>
+</p><dl>
+<dt><a name="index-clearlegend-1"></a><u>Команда MGL:</u> <b>clearlegend</b></dt>
+<dd><p>Очищает внутренний массив записей легенды.
+</p></dd></dl>
+
+<a name="index-legendbox"></a>
+<p><a name="legendbox"></a>
+</p><dl>
+<dt><a name="index-legendbox-1"></a><u>Команда MGL:</u> <b>legendbox</b><i> <code>val</code></i></dt>
+<dd><p>Включает/выключает рисование прямоугольника вокруг легенды. По умолчанию (=<code>on</code>) прямоугольник рисуется.
+</p></dd></dl>
+
+<a name="index-legendmarks"></a>
+<p><a name="legendmarks"></a>
+</p><dl>
+<dt><a name="index-legendmarks-1"></a><u>Команда MGL:</u> <b>legendmarks</b><i> <code>val</code></i></dt>
+<dd><p>Задает число маркеров в легенде. По умолчанию используется 1 маркер.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t1D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t1D-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">1.10 1D графики</h2>
+
+<p>Эти команды строят графики для одномерных (1D) массивов. Одномерными считаются массивы, зависящие только от одного параметра (индекса) подобно кривой в параметрической форме {x(i),y(i),z(i)}, i=1...n. Есть 5 основных типов 1D графиков: линия (<a href="#plot">plot</a>), линия с заполнением (<a href="#area">area</a>), ступеньки (<a href="#step">step</a>), прямоугольники (<a href="#bars">bars</a>, <a href="#barh">barh</a>) и вертикальные линии (<a href="#stem">stem</a>). Все эти типы графиков имеют похожий интерфейс. Есть версии для рисования в пространстве и на плоскости. В последнем случае имеется возможность использования только одного массива. Стиль линии и маркеров указывается строковой переменной. Если она равна <code>''</code>. Кроме того, есть еще несколько типов графиков для одномерных массивов, имеющих другой интерфейс и вид: поверхность вращения кривой (<a href="#torus">torus</a>), диаграмма (<a href="#chart">chart</a>), размер ошибки (<a href="#error">error</a>), маркеры переменного размера (<a href="#mark">mark</a>), трубками (<a href="#tube">tube</a>) и т.д. См. раздел <a href="mgl_ru_3.html#g_t1D-plot-sample">Пример графиков 1D данных</a>, для примеров кода и графика.
+</p>
+<p>График рисуется для каждой строки если один из массивов матрица. Размер по 1-ой координате <strong>должен быть одинаков</strong> для всех массивов <code>xdat.nx=ydat.nx=zdat.nx</code>. Если массив <var>xdat</var> не указан, то используется массив со значениями равно распределенными вдоль оси x. Если массив <var>zdat</var> не указан, то используется <var>zdat</var>[i] = <var>zval</var>. Строка <var>stl</var> задает цвет и стиль линии и маркеров (see section <a href="#Line-styles">Стиль линий</a>). По умолчанию (<code>stl=''</code>) рисуется сплошная линия с текущим цветом из палитры.
+</p>
+<a name="index-plot"></a>
+<p><a name="plot"></a>
+</p><dl>
+<dt><a name="index-plot-1"></a><u>Команда MGL:</u> <b>plot</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-plot-2"></a><u>Команда MGL:</u> <b>plot</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-plot-3"></a><u>Команда MGL:</u> <b>plot</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует ломанную линию между точками {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]}. См. также <a href="#area">area</a>, <a href="#step">step</a>, <a href="#stem">stem</a>, <a href="#tube">tube</a>, <a href="#mark">mark</a>, <a href="#error">error</a>, <a href="#belt">belt</a>, <a href="#tens">tens</a>. См. раздел <a href="mgl_ru_3.html#Plot-sample">Plot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+
+<a name="index-radar"></a>
+<p><a name="radar"></a>
+</p><dl>
+<dt><a name="index-radar-1"></a><u>Команда MGL:</u> <b>radar</b><i> adat ['stl'='' <code>r=-1</code>]</i></dt>
+<dd><p>Рисует radar chart, представляющий собой ломанную с вершинами на радиальных линиях (типа ломанной в полярных координатах). График рисуется для каждой строки если один из массивов матрица. Параметр <var>r</var> задает дополнительный сдвиг данных (т.е. используется <var>a</var>+<var>r</var> вместо <var>a</var>). Если <code>r&lt;0</code>, то <code>r=max(0, -min(a)</code>. Если <var>stl</var> содержит символ &lsquo;<samp>#</samp>&rsquo;, то также рисуется &quot;сетка&quot; (радиальные линии и круг для <var>r</var>). См. также <a href="#plot">plot</a>. См. раздел <a href="mgl_ru_3.html#Radar-sample">Radar &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-tens"></a>
+<p><a name="tens"></a>
+</p><dl>
+<dt><a name="index-tens-1"></a><u>Команда MGL:</u> <b>tens</b><i> ydat cdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tens-2"></a><u>Команда MGL:</u> <b>tens</b><i> xdat ydat cdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tens-3"></a><u>Команда MGL:</u> <b>tens</b><i> xdat ydat zdat cdat ['stl'='']</i></dt>
+<dd><p>Рисует ломанную линию по точкам {<var>x</var>[i], <var>y</var>[i], <var>z</var>[i]} с цветом, определяемым массивом <var>c</var>[i] (типа графика натяжений). См. также <a href="#plot">plot</a>, <a href="#mesh">mesh</a>, <a href="#fall">fall</a>. См. раздел <a href="mgl_ru_3.html#Tens-sample">Tens &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-area"></a>
+<p><a name="area"></a>
+</p><dl>
+<dt><a name="index-area-1"></a><u>Команда MGL:</u> <b>area</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-area-2"></a><u>Команда MGL:</u> <b>area</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-area-3"></a><u>Команда MGL:</u> <b>area</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует ломанную линию по точками {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} и закрашивает ее вниз до плоскости осей координат. Можно использовать градиентное закрашивание если число указанных цветов в <var>stl</var> равно удвоенному числу кривых для построения. Если строка содержит символ &lsquo;<samp>a</samp>&rsquo;, то линии рисуются одна поверх другой (с суммированием) &ndash; того же эффекта можно достичь вызовом <code>cumsum ydat 'y'</code> перед построением графика. См. также <a href="#plot">plot</a>, <a href="#bars">bars</a>, <a href="#stem">stem</a>, <a href="#region">region</a>. См. раздел <a href="mgl_ru_3.html#Area-sample">Area &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-region"></a>
+<p><a name="region"></a>
+</p><dl>
+<dt><a name="index-region-1"></a><u>Команда MGL:</u> <b>region</b><i> fdat gdat ['stl'='' <code>inside=off</code>]</i></dt>
+<dt><a name="index-region-2"></a><u>Команда MGL:</u> <b>region</b><i> xdat fdat gdat ['stl'='' <code>inside=off</code>]</i></dt>
+<dd><p>Закрашивает область между 2 кривыми {<var>xdat</var>[i], <var>fdat</var>[i]} и {<var>xdat</var>[i], <var>gdat</var>[i]}. При  <code>inside=off</code> закрашивается только область y1&lt;y&lt;y2, в противном случае также будет закращена область y2&lt;y&lt;y1. Можно использовать градиентное закрашивание если число указанных цветов <var>stl</var> равно удвоенному числу кривых для построения. См. также <a href="#area">area</a>, <a href="#bars">bars</a>, <a href="#stem">stem</a>. См. раздел <a href="mgl_ru_3.html#Region-sample">Region &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-stem"></a>
+<p><a name="stem"></a>
+</p><dl>
+<dt><a name="index-stem-1"></a><u>Команда MGL:</u> <b>stem</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-stem-2"></a><u>Команда MGL:</u> <b>stem</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-stem-3"></a><u>Команда MGL:</u> <b>stem</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует вертикальные линии из точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} до плоскости осей координат. См. также <a href="#area">area</a>, <a href="#bars">bars</a>, <a href="#plot">plot</a>, <a href="#mark">mark</a>. См. раздел <a href="mgl_ru_3.html#Stem-sample">Stem &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-bars"></a>
+<p><a name="bars"></a>
+</p><dl>
+<dt><a name="index-bars-1"></a><u>Команда MGL:</u> <b>bars</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-bars-2"></a><u>Команда MGL:</u> <b>bars</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-bars-3"></a><u>Команда MGL:</u> <b>bars</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует вертикальные полосы (прямоугольники) из точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]} до плоскости осей координат. Если строка <var>stl</var> содержит символ &lsquo;<samp>a</samp>&rsquo;, то линии рисуются одна поверх другой. Если строка содержит символ &lsquo;<samp>f</samp>&rsquo;, то рисуется график типа waterfall для определения кумулятивного эффекта последовательности положительных и отрицательных значений. Можно использовать разные цвета для положительных и отрицательных значений если число указанных цветов равно удвоенному числу кривых для построения. См. также <a href="#barh">barh</a>, <a href="#area">area</a>, <a href="#stem">stem</a>, <a href="#chart">chart</a>. См. раздел <a href="mgl_ru_3.html#Bars-sample">Bars &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-barh"></a>
+<p><a name="barh"></a>
+</p><dl>
+<dt><a name="index-barh-1"></a><u>Команда MGL:</u> <b>barh</b><i> xdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-barh-2"></a><u>Команда MGL:</u> <b>barh</b><i> ydat xdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует горизонтальные полосы (прямоугольники) из точек {<var>xdat</var>[i], <var>ydat</var>[i]} до плоскости оси y. Если массив <var>ydat</var> не указан, то используется массив со значениями равно распределенными вдоль оси y. Если строка <var>stl</var> содержит символ &lsquo;<samp>a</samp>&rsquo;, то линии рисуются одна поверх другой. Если строка содержит символ &lsquo;<samp>f</samp>&rsquo;, то рисуется график типа waterfall для определения кумулятивного эффекта последовательности положительных и отрицательных значений. Можно использовать разные цвета для положительных и отрицательных значений если число указанных цветов равно удвоенному числу кривых для построения. См. также <a href="#bars">bars</a>. См. раздел <a href="mgl_ru_3.html#Barh-sample">Barh &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-chart"></a>
+<p><a name="chart"></a>
+</p><dl>
+<dt><a name="index-chart-1"></a><u>Команда MGL:</u> <b>chart</b><i> adat ['col'='']</i></dt>
+<dd><p>Рисует цветные полосы (пояса) для массива данных <var>adat</var>. Число полос равно числу строк <var>adat</var> (равно <var>a.ny</var>). Цвет полос поочередно меняется из цветов указанных в <var>col</var> или в палитре (если <code>col=''</code>). Пробел в цветах соответствует прозрачному &quot;цвету&quot;, т.е. соответствующая полоса не рисуется. Ширина полосы пропорциональна значению элемента в <var>adat</var>. График строится только для массивов не содержащих отрицательных значений. Если строка <var>col</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется также черная граница полос. График выглядит лучше в 3d (после вращения системы координат) и/или в полярной системе координат (становится Pie chart). См. раздел <a href="mgl_ru_3.html#Chart-sample">Chart &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-step"></a>
+<p><a name="step"></a>
+</p><dl>
+<dt><a name="index-step-1"></a><u>Команда MGL:</u> <b>step</b><i> ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-step-2"></a><u>Команда MGL:</u> <b>step</b><i> xdat ydat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-step-3"></a><u>Команда MGL:</u> <b>step</b><i> xdat ydat zdat ['stl'='']</i></dt>
+<dd><p>Рисует ступеньки для точек массива {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. См. также <a href="#plot">plot</a>, <a href="#stem">stem</a>, <a href="#tile">tile</a>, <a href="#boxs">boxs</a>. См. раздел <a href="mgl_ru_3.html#Step-sample">Step &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-torus"></a>
+<p><a name="torus"></a>
+</p><dl>
+<dt><a name="index-torus-1"></a><u>Команда MGL:</u> <b>torus</b><i> zdat ['stl'='']</i></dt>
+<dt><a name="index-torus-2"></a><u>Команда MGL:</u> <b>torus</b><i> rdat zdat ['stl'='']</i></dt>
+<dd><p>Рисует поверхность вращения кривой {<var>rdat</var>[i], <var>zdat</var>[i], <var>zdat</var>[i]} относительно оси <a href="#axialdir">axialdir</a>. Если массив <var>rdat</var> не указан, то используется массив со значениями равно распределенными вдоль оси x. См. также <a href="#plot">plot</a>, <a href="#axial">axial</a>. См. раздел <a href="mgl_ru_3.html#Torus-sample">Torus &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-tube"></a>
+<p><a name="tube"></a>
+</p><dl>
+<dt><a name="index-tube-1"></a><u>Команда MGL:</u> <b>tube</b><i> ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-2"></a><u>Команда MGL:</u> <b>tube</b><i> ydat <code>rval</code> ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-3"></a><u>Команда MGL:</u> <b>tube</b><i> xdat ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-4"></a><u>Команда MGL:</u> <b>tube</b><i> xdat ydat <code>rval</code> ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tube-5"></a><u>Команда MGL:</u> <b>tube</b><i> xdat ydat zdat rdat ['stl'='']</i></dt>
+<dt><a name="index-tube-6"></a><u>Команда MGL:</u> <b>tube</b><i> xdat ydat zdat <code>rval</code> ['stl'='']</i></dt>
+<dd><p>Рисует трубу радиуса <var>rdat</var>[i] (or <var>rval</var>) вдоль кривой между точками {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. См. также <a href="#plot">plot</a>. См. раздел <a href="mgl_ru_3.html#Tube-sample">Tube &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-mark"></a>
+<p><a name="mark"></a>
+</p><dl>
+<dt><a name="index-mark-1"></a><u>Команда MGL:</u> <b>mark</b><i> ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-mark-2"></a><u>Команда MGL:</u> <b>mark</b><i> xdat ydat rdat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-mark-3"></a><u>Команда MGL:</u> <b>mark</b><i> xdat ydat zdat rdat ['stl'='']</i></dt>
+<dd><p>Рисует маркеры размером <var>rdat</var>[i]*<code>marksize</code> в точках {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Для рисования маркеров одинакового размера можно использовать функцию <code>plot</code> с невидимой линией (со стилем содержащим &lsquo;<samp> </samp>&rsquo;). См. также <a href="#plot">plot</a>, <a href="#textmark">textmark</a>, <a href="#stem">stem</a>, <a href="#error">error</a>. См. раздел <a href="mgl_ru_3.html#Mark-sample">Mark &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-textmark"></a>
+<p><a name="textmark"></a>
+</p><dl>
+<dt><a name="index-textmark-1"></a><u>Команда MGL:</u> <b>textmark</b><i> ydat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-2"></a><u>Команда MGL:</u> <b>textmark</b><i> ydat rdat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-3"></a><u>Команда MGL:</u> <b>textmark</b><i> xdat ydat rdat 'txt' ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-textmark-4"></a><u>Команда MGL:</u> <b>textmark</b><i> xdat ydat zdat rdat 'txt' ['stl'='']</i></dt>
+<dd><p>Рисует текст <var>txt</var> как маркер с размером пропорциональным <var>rdat</var>[i]*<code>marksize</code> в точках {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если массив <var>rdat</var> не указан, то полагается <var>rdat</var>[i] = 1. См. также <a href="#plot">plot</a>, <a href="#mark">mark</a>, <a href="#stem">stem</a>. См. раздел <a href="mgl_ru_3.html#TextMark-sample">TextMark &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-error"></a>
+<p><a name="error"></a>
+</p><dl>
+<dt><a name="index-error-1"></a><u>Команда MGL:</u> <b>error</b><i> ydat yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-error-2"></a><u>Команда MGL:</u> <b>error</b><i> xdat ydat yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-error-3"></a><u>Команда MGL:</u> <b>error</b><i> xdat ydat xerr yerr ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует размер ошибки {<var>xerr</var>[i], <var>yerr</var>[i]} в точках {<var>xdat</var>[i], <var>ydat</var>[i]} на плоскости <var>z</var> = <var>zval</var>. Такой график полезен для отображения ошибки эксперимента, вычислений и пр. См. также <a href="#plot">plot</a>. См. раздел <a href="mgl_ru_3.html#Error-sample">Error &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-boxplot"></a>
+<p><a name="boxplot"></a>
+</p><dl>
+<dt><a name="index-boxplot-1"></a><u>Команда MGL:</u> <b>boxplot</b><i> adat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-boxplot-2"></a><u>Команда MGL:</u> <b>boxplot</b><i> xdat adat ['stl'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует boxplot (называемый также как box-and-whisker diagram или как &quot;ящик с усами&quot;) в точках <var>xdat</var>[i] на плоскости <var>z</var> = <var>zval</var>. Это график, компактно изображающий распределение вероятностей <var>adat</var>[i,j] (минимум, нижний квартиль (Q1), медиана (Q2), верхний квартиль (Q3) и максимум) вдоль второго (j-го) направления. См. также <a href="#plot">plot</a>, <a href="#error">error</a>, <a href="#bars">bars</a>. См. раздел <a href="mgl_ru_3.html#BoxPlot-sample">BoxPlot &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<hr size="6">
+<a name="g_t2D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t2D-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">1.11 2D графики</h2>
+
+<p>Эти команды строят графики для двумерных (2D) массивов. Двумерными считаются массивы, зависящие только от двух параметров (индексов) подобно матрице <em>f(x_i,y_j), i=1...n, j=1...m</em>. Есть несколько основных типов 2D графиков: сплошная поверхность (<a href="#surf">surf</a>), сетчатая поверхность (<a href="#mesh">mesh</a>), поверхность из ящиков (<a href="#boxs">boxs</a>), поверхность из плиток (<a href="#tile">tile</a>), водопад (<a href="#fall">fall</a>), ленточки (<a href="#belt">belt</a>), график плотности (<a href="#dens">dens</a>), линии уровня (<a href="#cont">cont</a>), линии уровня с заполнением (<a href="#contf">contf</a>) и результат их вращения (<a href="#axial">axial</a>). В функциях <a href="#cont">cont</a>, <a href="#contf">contf</a> и <a href="#axial">axial</a> значения уровней можно задавать автоматически и вручную. Можно также нарисовать сетку (<a href="#grid">grid</a>) по массиву данных для улучшения вида графика плотности или линий уровня. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданной поверхности. См. раздел <a href="mgl_ru_3.html#g_t1D-plot-sample">Пример графиков 1D данных</a>, для примеров кода и графика.
+</p>
+<p>Строка <var>sch</var> задает цветовую схему (see section <a href="#Color-scheme">Цветовая схема</a>. Предыдущая цветовая схема используется по умолчанию. Младшие размерности массивов <var>xdat</var>, <var>ydat</var>, <var>zdat</var> должны быть одинаковы <code>xdat.nx=zdat.nx &amp;&amp; ydat.nx=zdat.ny</code> или <code>xdat.nx=ydat.nx=zdat.nx &amp;&amp; xdat.ny=ydat.ny=zdat.ny</code>. Массивы <var>xdat</var> и <var>ydat</var> могут быть векторами (не матрицами как <var>zdat</var>). Если массивы <var>xdat</var>, <var>ydat</var> не указаны, то используются массивы со значениями равно распределенными вдоль осей x, y. График строится для каждого z среза данных.
+</p>
+<a name="index-surf"></a>
+<p><a name="surf"></a>
+</p><dl>
+<dt><a name="index-surf-1"></a><u>Команда MGL:</u> <b>surf</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-surf-2"></a><u>Команда MGL:</u> <b>surf</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует параметрически заданную поверхность {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на поверхности рисуется сетка. См. также <a href="#mesh">mesh</a>, <a href="#dens">dens</a>, <a href="#belt">belt</a>, <a href="#tile">tile</a>, <a href="#boxs">boxs</a>, <a href="#surfc">surfc</a>, <a href="#surfa">surfa</a>. См. раздел <a href="mgl_ru_3.html#Surf-sample">Surf &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-mesh"></a>
+<p><a name="mesh"></a>
+</p><dl>
+<dt><a name="index-mesh-1"></a><u>Команда MGL:</u> <b>mesh</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-mesh-2"></a><u>Команда MGL:</u> <b>mesh</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует сетчатую поверхность, заданную параметрически {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. См. также <a href="#surf">surf</a>, <a href="#fall">fall</a>, <a href="#meshnum">meshnum</a>, <a href="#cont">cont</a>, <a href="#tens">tens</a>. См. раздел <a href="mgl_ru_3.html#Mesh-sample">Mesh &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-fall"></a>
+<p><a name="fall"></a>
+</p><dl>
+<dt><a name="index-fall-1"></a><u>Команда MGL:</u> <b>fall</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-fall-2"></a><u>Команда MGL:</u> <b>fall</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует водопад для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. График удобен для построения нескольких кривых, сдвинутых вглубь друг относительно друга. Если <var>sch</var> содержит &lsquo;<samp>x</samp>&rsquo;, то линии рисуются вдоль x-оси (по умолчанию линии рисуются вдоль y-оси). См. также <a href="#belt">belt</a>, <a href="#mesh">mesh</a>, <a href="#tens">tens</a>, <a href="#meshnum">meshnum</a>. См. раздел <a href="mgl_ru_3.html#Fall-sample">Fall &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-belt"></a>
+<p><a name="belt"></a>
+</p><dl>
+<dt><a name="index-belt-1"></a><u>Команда MGL:</u> <b>belt</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-belt-2"></a><u>Команда MGL:</u> <b>belt</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует ленточки для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Если <var>sch</var> содержит &lsquo;<samp>x</samp>&rsquo;, то линии рисуются вдоль x-оси (по умолчанию линии рисуются вдоль y-оси). См. также <a href="#fall">fall</a>, <a href="#surf">surf</a>, <a href="#plot">plot</a>, <a href="#meshnum">meshnum</a>. См. раздел <a href="mgl_ru_3.html#Belt-sample">Belt &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-boxs"></a>
+<p><a name="boxs"></a>
+</p><dl>
+<dt><a name="index-boxs-1"></a><u>Команда MGL:</u> <b>boxs</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-boxs-2"></a><u>Команда MGL:</u> <b>boxs</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует вертикальные ящики для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. См. также <a href="#surf">surf</a>, <a href="#dens">dens</a>, <a href="#tile">tile</a>, <a href="#step">step</a>. См. раздел <a href="mgl_ru_3.html#Boxs-sample">Boxs &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-tile"></a>
+<p><a name="tile"></a>
+</p><dl>
+<dt><a name="index-tile-1"></a><u>Команда MGL:</u> <b>tile</b><i> zdat ['sch'='']</i></dt>
+<dt><a name="index-tile-2"></a><u>Команда MGL:</u> <b>tile</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует плитки для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. График может использоваться как 3d обобщение <a href="#step">step</a>. См. также <a href="#surf">surf</a>, <a href="#boxs">boxs</a>, <a href="#step">step</a>, <a href="#tiles">tiles</a>. См. раздел <a href="mgl_ru_3.html#Tile-sample">Tile &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-dens"></a>
+<p><a name="dens"></a>
+</p><dl>
+<dt><a name="index-dens-1"></a><u>Команда MGL:</u> <b>dens</b><i> zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-dens-2"></a><u>Команда MGL:</u> <b>dens</b><i> xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует график плотности для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zVal</var>. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетка. См. также <a href="#surf">surf</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>, <a href="#boxs">boxs</a>, <a href="#tile">tile</a>, <code>dens[xyz]</code>. См. раздел <a href="mgl_ru_3.html#Dens-sample">Dens &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-cont"></a>
+<p><a name="cont"></a>
+</p><dl>
+<dt><a name="index-cont-1"></a><u>Команда MGL:</u> <b>cont</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-cont-2"></a><u>Команда MGL:</u> <b>cont</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует линии уровня для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zval</var> (или при <var>z=vdat</var>[k] если <code>zval==nan</code>). Линии уровня рисуются для <var>z</var>=<var>vdat</var>[k]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетка. Если <var>sch</var> содержит &lsquo;<samp>t</samp>&rsquo; или &lsquo;<samp>T</samp>&rsquo;, то значения <var>vdat</var>[k] будут выведены вдоль контуров над (или под) кривой. См. также <a href="#dens">dens</a>, <a href="#contf">contf</a>, <a href="#contd">contd</a>, <a href="#axial">axial</a>, <code>cont[xyz]</code>. См. раздел <a href="mgl_ru_3.html#Cont-sample">Cont &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cont-3"></a><u>Команда MGL:</u> <b>cont</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-cont-4"></a><u>Команда MGL:</u> <b>cont</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-contf"></a>
+<p><a name="contf"></a>
+</p><dl>
+<dt><a name="index-contf-1"></a><u>Команда MGL:</u> <b>contf</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-contf-2"></a><u>Команда MGL:</u> <b>contf</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zval</var> (или при <var>z=v</var>[k] если <code>zval=nan</code>). Линии уровня рисуются для <var>z</var>=<var>vdat</var>[k]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетка. См. также <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contd">contd</a>, <code>contf[xyz]</code>. См. раздел <a href="mgl_ru_3.html#ContF-sample">ContF &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contf-3"></a><u>Команда MGL:</u> <b>contf</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-contf-4"></a><u>Команда MGL:</u> <b>contf</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-contd"></a>
+<p><a name="contd"></a>
+</p><dl>
+<dt><a name="index-contd-1"></a><u>Команда MGL:</u> <b>contd</b><i> vdat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-contd-2"></a><u>Команда MGL:</u> <b>contd</b><i> vdat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zval</var> (или при <var>z=v</var>[k] если <code>zval==nan</code>) цветами заданными явно. Линии уровня рисуются для <var>z</var>=<var>vdat</var>[k]. Строка <var>sch</var> задает цвет контуров: цвет k-го контура определяется символом <code>sch[k%strlen(sch)]</code>. См. также <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>, <code>cont[xyz]</code>. См. раздел <a href="mgl_ru_3.html#ContD-sample">ContD &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contd-3"></a><u>Команда MGL:</u> <b>contd</b><i> zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dt><a name="index-contd-4"></a><u>Команда MGL:</u> <b>contd</b><i> xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-axial"></a>
+<p><a name="axial"></a>
+</p><dl>
+<dt><a name="index-axial-1"></a><u>Команда MGL:</u> <b>axial</b><i> vdat zdat ['sch'='']</i></dt>
+<dt><a name="index-axial-2"></a><u>Команда MGL:</u> <b>axial</b><i> vdat xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Рисует поверхность вращения линии уровня для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Линии уровня рисуются для <var>zdat</var>[i,j]=<var>vdat</var>[k]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Если строка содержит символы &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; или &lsquo;<samp>z</samp>&rsquo;, то ось вращения устанавливается в указанное направление (по умолчанию вдоль оси <a href="#axialdir">axialdir</a>). См. также <a href="#cont">cont</a>, <a href="#contf">contf</a>, <a href="#torus">torus</a>, <a href="#surf3">surf3</a>. См. раздел <a href="mgl_ru_3.html#Axial-sample">Axial &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-axial-3"></a><u>Команда MGL:</u> <b>axial</b><i> zdat ['sch'='' <code>num=3</code>]</i></dt>
+<dt><a name="index-axial-4"></a><u>Команда MGL:</u> <b>axial</b><i> xdat ydat zdat ['sch'='' <code>num=3</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-grad"></a>
+<p><a name="grad"></a>
+</p><dl>
+<dt><a name="index-grad-1"></a><u>Команда MGL:</u> <b>grad</b><i> pdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-grad-2"></a><u>Команда MGL:</u> <b>grad</b><i> xdat ydat pdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-grad-3"></a><u>Команда MGL:</u> <b>grad</b><i> xdat ydat zdat pdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Рисует линии градиента скалярного поля <var>pdat</var> заданного параметрически {<var>xdat</var>[i,j], <var>ydat</var>[i,j]} или {<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]}. Число линий пропорционально <var>num</var>. Линии рисуются только с границ интервала при <var>num</var>&lt;0. См. также <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#dens3">dens3</a>, <a href="#cont3">cont3</a>, <a href="#flow">flow</a>. См. раздел <a href="mgl_ru_3.html#Grad-sample">Grad &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+
+<a name="index-grid2"></a>
+<p><a name="grid2"></a>
+</p><dl>
+<dt><a name="index-grid2-1"></a><u>Команда MGL:</u> <b>grid2</b><i> zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-grid2-2"></a><u>Команда MGL:</u> <b>grid2</b><i> xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует плоскую сету для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} при <var>z</var> = <var>zval</var>. См. также <a href="#dens">dens</a>, <a href="#cont">cont</a>, <a href="#contf">contf</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="g_t3D-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t3D-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">1.12 3D графики</h2>
+
+<p>Эти функции строят графики для трехмерных (3D) массивов. Трехмерными считаются массивы, зависящие от трех параметров (индексов) подобно матрице <em>f(x_i,y_j,z_k), i=1...n, j=1...m, k=1...l</em>. Есть 5 основных типов 3D графиков: поверхность постоянного уровня (<a href="#surf3">surf3</a>), график плотности на срезе (<var>dens3</var>), линии уровня на срезе (<a href="#cont3">cont3</a>), закрашенные контуры уровня на срезе (<a href="#contf3">contf3</a>) и график объемной прозрачности типа облака (<a href="#cloud">cloud</a>). В функциях <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a> и <a href="#surf3">surf3</a> значения уровней можно задавать автоматически и вручную. Можно также нарисовать на срезе сетку (<a href="#grid3">grid3</a>) по массиву данных для улучшения вида графика плотности или линий уровня. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива. См. раздел <a href="mgl_ru_3.html#g_t3D-plot-sample">Пример графиков 3D данных</a>, для примеров кода и графика.
+</p>
+<p>Строка <var>sch</var> задает цветовую схему (see section <a href="#Color-scheme">Цветовая схема</a>). Предыдущая цветовая схема используется по умолчанию. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). Если массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> не указаны, то используются массивы со значениями равно распределенными вдоль осей x, y, z.
+</p>
+
+<a name="index-surf3"></a>
+<p><a name="surf3"></a>
+</p><dl>
+<dt><a name="index-surf3-1"></a><u>Команда MGL:</u> <b>surf3</b><i> adat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3-2"></a><u>Команда MGL:</u> <b>surf3</b><i> xdat ydat zdat adat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) при <var>adat</var>(x,y,z)=<var>val</var>. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. См. также <a href="#cloud">cloud</a>, <a href="#dens3">dens3</a>, <a href="#surf3c">surf3c</a>, <a href="#surf3a">surf3a</a>, <a href="#axial">axial</a>. См. раздел <a href="mgl_ru_3.html#Surf3-sample">Surf3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3-3"></a><u>Команда MGL:</u> <b>surf3</b><i> adat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3-4"></a><u>Команда MGL:</u> <b>surf3</b><i> xdat ydat zdat adat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Рисует <var>num</var> поверхностей уровня равномерно распределенных в интервале цветовой шкалы (см. <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-dens3"></a>
+<p><a name="dens3"></a>
+</p><dl>
+<dt><a name="index-dens3-1"></a><u>Команда MGL:</u> <b>dens3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-dens3-2"></a><u>Команда MGL:</u> <b>dens3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Рисует график плотности для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). График рисуется на срезе <var>sval</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Если <var>stl</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на срезе рисуется сетка. См. также <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a>, <a href="#dens">dens</a>, <a href="#grid3">grid3</a>. См. раздел <a href="mgl_ru_3.html#Dens3-sample">Dens3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-densa"></a>
+<p><a name="densa"></a>
+</p><dl>
+<dt><a name="index-densa-1"></a><u>Команда MGL:</u> <b>densa</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-densa-2"></a><u>Команда MGL:</u> <b>densa</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Рисует графики плотности на всех центральных срезах 3d данных.
+</p></dd></dl>
+
+<a name="index-cont3"></a>
+<p><a name="cont3"></a>
+</p><dl>
+<dt><a name="index-cont3-1"></a><u>Команда MGL:</u> <b>cont3</b><i> vdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-cont3-2"></a><u>Команда MGL:</u> <b>cont3</b><i> vdat xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Рисует линии уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Линии рисуются для значений из массива <var>v</var> на срезе <var>sval</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Если <var>stl</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на срезе рисуется сетка. Если <var>sch</var> содержит &lsquo;<samp>t</samp>&rsquo; или &lsquo;<samp>T</samp>&rsquo;, то значения <var>vdat</var>[k] будут выведены вдоль контуров над (или под) кривой. См. также <a href="#dens3">dens3</a>, <a href="#contf3">contf3</a>, <a href="#cont">cont</a>, <a href="#grid3">grid3</a>. См. раздел <a href="mgl_ru_3.html#Cont3-sample">Cont3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-cont3-3"></a><u>Команда MGL:</u> <b>cont3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-cont3-4"></a><u>Команда MGL:</u> <b>cont3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-conta"></a>
+<p><a name="conta"></a>
+</p><dl>
+<dt><a name="index-conta-1"></a><u>Команда MGL:</u> <b>conta</b><i> adat ['sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-conta-2"></a><u>Команда MGL:</u> <b>conta</b><i> xdat ydat zdat adat ['sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Рисует линии уровня на всех центральных срезах 3d данных.
+</p></dd></dl>
+
+<a name="index-contf3"></a>
+<p><a name="contf3"></a>
+</p><dl>
+<dt><a name="index-contf3-1"></a><u>Команда MGL:</u> <b>contf3</b><i> vdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-contf3-2"></a><u>Команда MGL:</u> <b>contf3</b><i> vdat xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). Линии рисуются для значений из массива <var>v</var> на срезе <var>sval</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. Если <var>stl</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на срезе рисуется сетка. См. также <a href="#dens3">dens3</a>, <a href="#cont3">cont3</a>, <a href="#contf">contf</a>, <a href="#grid3">grid3</a>. См. раздел <a href="mgl_ru_3.html#ContF3-sample">ContF3 &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-contf3-3"></a><u>Команда MGL:</u> <b>contf3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-contf3-4"></a><u>Команда MGL:</u> <b>contf3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Как предыдущий с вектором <var>v</var> из <var>num</var> элементов равно распределенных в интервале цветовой шкалы (см., <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-contfa"></a>
+<p><a name="contfa"></a>
+</p><dl>
+<dt><a name="index-contfa-1"></a><u>Команда MGL:</u> <b>contfa</b><i> adat ['sch'='' <code>num=7</code>]</i></dt>
+<dt><a name="index-contfa-2"></a><u>Команда MGL:</u> <b>contfa</b><i> xdat ydat zdat adat ['sch'='' <code>num=7</code>]</i></dt>
+<dd><p>Рисует закрашенные линии (контуры) уровня на всех центральных срезах 3d данных.
+</p></dd></dl>
+
+<a name="index-grid3"></a>
+<p><a name="grid3"></a>
+</p><dl>
+<dt><a name="index-grid3-1"></a><u>Команда MGL:</u> <b>grid3</b><i> adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dt><a name="index-grid3-2"></a><u>Команда MGL:</u> <b>grid3</b><i> xdat ydat zdat adat 'dir' [<code>sval=-1</code> 'sch'='']</i></dt>
+<dd><p>Рисует сетку для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). График рисуется на срезе <var>sval</var> в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;}. См. также <a href="#cont3">cont3</a>, <a href="#contf3">contf3</a>, <a href="#dens3">dens3</a>, <a href="#grid2">grid2</a>.
+</p></dd></dl>
+
+<a name="index-grida"></a>
+<p><a name="grida"></a>
+</p><dl>
+<dt><a name="index-grida-1"></a><u>Команда MGL:</u> <b>grida</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-grida-2"></a><u>Команда MGL:</u> <b>grida</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Рисует сетку на всех центральных срезах 3d данных.
+</p></dd></dl>
+
+<a name="index-cloud"></a>
+<p><a name="cloud"></a>
+</p><dl>
+<dt><a name="index-cloud-1"></a><u>Команда MGL:</u> <b>cloud</b><i> adat ['sch'='']</i></dt>
+<dt><a name="index-cloud-2"></a><u>Команда MGL:</u> <b>cloud</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Рисует облачный график для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]). График состоит из кубиков с цветом и прозрачностью пропорциональной значениям <var>adat</var>. Результат похож на облако &ndash; малые значения прозрачны, а большие нет. Число кубиков зависит от <a href="#meshnum">meshnum</a>. Параметр <var>alpha</var> меняет общую прозрачность графика. См. также <a href="#surf3">surf3</a>. См. раздел <a href="mgl_ru_3.html#Cloud-sample">Cloud &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-beam"></a>
+<p><a name="beam"></a>
+</p><dl>
+<dt><a name="index-beam-1"></a><u>Команда MGL:</u> <b>beam</b><i> tr g1 g2 adat <code>rval</code> ['sch'='' <code>flag=0 num=3</code>]</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива <var>adat</var> при постоянном значении <var>adat</var>=<var>val</var>. Это специальный тип графика для <var>adat</var> заданного в сопровождающей системе координат вдоль кривой <var>tr</var> с ортами <var>g1</var>, <var>g2</var> и с поперечным размером <var>rval</var>. Переменная <var>flag</var> &ndash; битовый флаг: &lsquo;<samp>0x1</samp>&rsquo; - рисовать в сопровождающих (не лабораторных) координатах; &lsquo;<samp>0x2</samp>&rsquo; - рисовать проекцию на плоскость <em>\rho-z</em>; &lsquo;<samp>0x4</samp>&rsquo; - рисовать нормированное в каждом сечении поле. Размеры массивов по 1-му индексу <var>tr</var>, <var>g1</var>, <var>g2</var> должны быть nx&gt;2. Размеры массивов по 2-му индексу <var>tr</var>, <var>g1</var>, <var>g2</var> и размер по 3-му индексу массива <var>adat</var> должны быть одинаковы. См. также <a href="#surf3">surf3</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Dual-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-fields" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0430_0440_043d_044be-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">1.13 Парные графики</h2>
+
+<p>Эти команды строят графики для двух связанных массивов. Есть несколько основных типов 3D графиков: поверхность и поверхность уровня с окраской по второму массиву (<a href="#surfc">surfc</a>, <a href="#surf3c">surf3c</a>), поверхность и поверхность уровня с прозрачностью по второму массиву (<a href="#surfa">surfa</a>, <a href="#surf3a">surf3a</a>), плитки переменного размера (<a href="#tiles">tiles</a>), диаграмма точечного отображения (<a href="#map">map</a>), STFA диаграмма (<a href="#stfa">stfa</a>). В командах <a href="#surf3a">surf3a</a> и <a href="#surf3c">surf3c</a> значения уровней можно задавать автоматически и вручную. Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива.
+</p>
+<p>Строка <var>sch</var> задает цветовую схему (see section <a href="#Color-scheme">Цветовая схема</a>). Предыдущая цветовая схема используется по умолчанию. Массивы <var>x</var>, <var>y</var>, <var>z</var> могут быть векторами (не 3d массивами как <var>a</var>). Если массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> не указаны, то используются массивы со значениями равно распределенными вдоль осей x, y, z.
+</p>
+<a name="index-surfc"></a>
+<p><a name="surfc"></a>
+</p><dl>
+<dt><a name="index-surfc-1"></a><u>Команда MGL:</u> <b>surfc</b><i> zdat cdat ['sch'='']</i></dt>
+<dt><a name="index-surfc-2"></a><u>Команда MGL:</u> <b>surfc</b><i> xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Рисует параметрически заданную поверхность {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} с цветом, заданным массивом <var>cdat</var>[i,j]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на поверхности рисуется сетка. См. также <a href="#surf">surf</a>, <a href="#surfa">surfa</a>, <a href="#surf3c">surf3c</a>. См. раздел <a href="mgl_ru_3.html#SurfC-sample">SurfC &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-surf3c"></a>
+<p><a name="surf3c"></a>
+</p><dl>
+<dt><a name="index-surf3c-1"></a><u>Команда MGL:</u> <b>surf3c</b><i> adat cdat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3c-2"></a><u>Команда MGL:</u> <b>surf3c</b><i> xdat ydat zdat adat cdat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) при <var>a</var>(x,y,z)=<var>val</var>. Аналогично <a href="#surf3">surf3</a>, но цвет задается массивом <var>cdat</var>. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. См. также <a href="#surf3">surf3</a>, <a href="#surfc">surfc</a>, <a href="#surf3a">surf3a</a>. См. раздел <a href="mgl_ru_3.html#Surf3C-sample">Surf3C &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3c-3"></a><u>Команда MGL:</u> <b>surf3c</b><i> adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3c-4"></a><u>Команда MGL:</u> <b>surf3c</b><i> xdat ydat zdat adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Рисует <var>num</var> поверхностей уровня равномерно распределенных в интервале цветовой шкалы (см. <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-surfa"></a>
+<p><a name="surfa"></a>
+</p><dl>
+<dt><a name="index-surfa-1"></a><u>Команда MGL:</u> <b>surfa</b><i> zdat cdat ['sch'='']</i></dt>
+<dt><a name="index-surfa-2"></a><u>Команда MGL:</u> <b>surfa</b><i> xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Рисует параметрически заданную поверхность {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]} с прозрачностью, заданным массивом <var>cdat</var>[i,j]. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то на поверхности рисуется сетка. См. также <a href="#surf">surf</a>, <a href="#surfc">surfc</a>, <a href="#surf3a">surf3a</a>. См. раздел <a href="mgl_ru_3.html#SurfA-sample">SurfA &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-surf3a"></a>
+<p><a name="surf3a"></a>
+</p><dl>
+<dt><a name="index-surf3a-1"></a><u>Команда MGL:</u> <b>surf3a</b><i> adat cdat <code>val</code> ['sch'='']</i></dt>
+<dt><a name="index-surf3a-2"></a><u>Команда MGL:</u> <b>surf3a</b><i> xdat ydat zdat adat cdat <code>val</code> ['sch'='']</i></dt>
+<dd><p>Рисует поверхность уровня для 3d массива, заданного параметрически <var>adat</var>[i,j,k](<var>xdat</var>[i,j,k], <var>ydat</var>[i,j,k], <var>zdat</var>[i,j,k]) при <var>a</var>(x,y,z)=<var>val</var>. Аналогично <a href="#surf3">surf3</a>, но прозрачность задается массивом <var>cdat</var>. Если <var>sch</var> содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. См. также <a href="#surf3">surf3</a>, <a href="#surfa">surfa</a>, <a href="#surf3c">surf3c</a>. См. раздел <a href="mgl_ru_3.html#Surf3A-sample">Surf3A &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-surf3a-3"></a><u>Команда MGL:</u> <b>surf3a</b><i> adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dt><a name="index-surf3a-4"></a><u>Команда MGL:</u> <b>surf3a</b><i> xdat ydat zdat adat cdat ['sch'='' <code>num=5</code>]</i></dt>
+<dd><p>Рисует <var>num</var> поверхностей уровня равномерно распределенных в интервале цветовой шкалы (см. <a href="#caxis">caxis</a>).
+</p></dd></dl>
+
+<a name="index-tiles"></a>
+<p><a name="tiles"></a>
+</p><dl>
+<dt><a name="index-tiles-1"></a><u>Команда MGL:</u> <b>tiles</b><i> zdat rdat ['sch'='']</i></dt>
+<dt><a name="index-tiles-2"></a><u>Команда MGL:</u> <b>tiles</b><i> xdat ydat zdat rdat ['sch'='']</i></dt>
+<dd><p>Рисует плитки для параметрически заданной поверхности {<var>xdat</var>[i,j], <var>ydat</var>[i,j], <var>zdat</var>[i,j]}. Аналогично <a href="#tile">tile</a>, но размер плиток задается массивов <var>rdat</var>. Это создает эффект &quot;прозрачности&quot; при экспорте в файлы EPS. См. также <a href="#surfa">surfa</a>, <a href="#tile">tile</a>. См. раздел <a href="mgl_ru_3.html#TileS-sample">TileS &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-map"></a>
+<p><a name="map"></a>
+</p><dl>
+<dt><a name="index-map-1"></a><u>Команда MGL:</u> <b>map</b><i> udat vdat ['sch'='' <code>pnts=on</code>]</i></dt>
+<dt><a name="index-map-2"></a><u>Команда MGL:</u> <b>map</b><i> xdat ydat udat vdat ['sch'='' <code>pnts=on</code>]</i></dt>
+<dd><p>Визуализирует точечное отображение для матриц {<var>udat</var>, <var>vdat</var> } параметрически зависящих от координат <var>xdat</var>, <var>ydat</var>. Исходное положение ячейки задает ее цвет. Высота пропорциональна якобиану Jacobian(udat,vdat). График является аналогом диаграммы Арнольда. Если <code>pnts=off</code>, то рисуются грани, иначе цветные точки рисуются в узлах матриц (полезно для &quot;запутанного&quot; отображения). См. раздел <a href="mgl_ru_3.html#Map-sample">Map &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-stfa"></a>
+<p><a name="stfa"></a>
+</p><dl>
+<dt><a name="index-stfa-1"></a><u>Команда MGL:</u> <b>stfa</b><i> re im <code>dn</code> ['sch'='' <code>pnts=on</code>]</i></dt>
+<dt><a name="index-stfa-2"></a><u>Команда MGL:</u> <b>stfa</b><i> xdat ydat re im <code>dn</code> ['sch'='' <code>pnts=on</code>]</i></dt>
+<dd><p>Рисует спектрограмму комплексного массива <var>re</var>+i*<code>im</code> для Фурье размером <var>dn</var> точек. Параметр <var>dn</var> &ndash; любое четное число. Например в 1D случае, результатом будет график плотности от массива <em>res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn</em> размером {int(nx/dn), dn, ny}. Массивы <var>re</var>, <var>im</var> параметрически зависят от координат <var>xdat</var>, <var>ydat</var>. См. раздел <a href="mgl_ru_3.html#STFA-sample">STFA &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+
+
+
+<hr size="6">
+<a name="Vector-fields"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Other-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0412e_043a_0442_043e_0440_043d_044be-_043f_043e_043bya"></a>
+<h2 class="section">1.14 Векторные поля</h2>
+
+<p>Эти функции рисуют графики для 2D и 3D векторных полей. Есть несколько типов графиков: просто векторное поле (<a href="#vect">vect</a>), вектора вдоль траектории (<a href="#traj">traj</a>), векторное поле каплями (<a href="#dew">dew</a>), нити тока (<a href="#flow">flow</a>), трубки тока (<a href="#pipe">pipe</a>). Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива.
+</p>
+<p>Строка <var>sch</var> задает цветовую схему (see section <a href="#Color-scheme">Цветовая схема</a>). Предыдущая цветовая схема используется по умолчанию. Все размеры массивов <var>ax</var> и <var>ay</var> должны быть одинаковы. Младшие размерности массивов <var>x</var>, <var>y</var> и <var>ax</var> должны быть одинаковы. Массивы <var>x</var> и <var>y</var> могут быть векторами (не матрицами как <var>ax</var>). График строится для каждого z среза <var>ax</var>, <var>ay</var> для 2D случаев.
+</p>
+<a name="index-traj"></a>
+<p><a name="traj"></a>
+</p><dl>
+<dt><a name="index-traj-1"></a><u>Команда MGL:</u> <b>traj</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan len=0</code>]</i></dt>
+<dt><a name="index-traj-2"></a><u>Команда MGL:</u> <b>traj</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>len=0</code>]</i></dt>
+<dd><p>Рисует вектора {<var>udat</var>, <var>vdat</var>, <var>wdat</var>} вдоль кривой {<var>xdat</var>, <var>ydat</var>, <var>zdat</var>}. Длина векторов пропорциональна <em>\sqrtudat^2+vdat^2+wdat^2</em>. Строка <var>pen</var> задает цвет (see section <a href="#Line-styles">Стиль линий</a>). По умолчанию (<code>pen=''</code>). Параметр <var>len</var> задает фактор длины векторов (если не нуль) или выбирать длину пропорционально расстоянию между точками кривой (если <var>len</var>=0). См. также <a href="#vect">vect</a>. См. раздел <a href="mgl_ru_3.html#Traj-sample">Traj &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-vect"></a>
+<p><a name="vect"></a>
+</p><dl>
+<dt><a name="index-vect-1"></a><u>Команда MGL:</u> <b>vect</b><i> udat vdat ['sch'='' <code>zval=nan flag=0</code>]</i></dt>
+<dt><a name="index-vect-2"></a><u>Команда MGL:</u> <b>vect</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan flag=0</code>]</i></dt>
+<dd><p>Рисует векторное поле {<var>udat</var>, <var>vdat</var>} параметрически зависящее от координат <var>xdat</var>, <var>ydat</var> на плоскости при <var>z</var>=<var>zval</var>. Длина и цвет векторов пропорциональна <em>\sqrtax^2+ay^2</em>. Число рисуемых векторов зависит от <a href="#meshnum">meshnum</a>. Параметр <var>flag</var> побитовый флаг для настройки вид векторов: <code>1</code> &ndash; двуцветный вектор, <code>2</code> &ndash; одинаковая длина векторов, <code>4</code> &ndash; рисует стрелку в точку сетки, <code>8</code> &ndash; рисует стрелку с серединой в точке сетки, <code>16</code> &ndash; рисует штрихи вместо стрелок. См. также <a href="#flow">flow</a>, <a href="#dew">dew</a>, <a href="#vectc">vectc</a>. См. раздел <a href="mgl_ru_3.html#Vect-sample">Vect &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vect-3"></a><u>Команда MGL:</u> <b>vect</b><i> udat vdat wdat ['sch'='' <code>flag=0</code>]</i></dt>
+<dt><a name="index-vect-4"></a><u>Команда MGL:</u> <b>vect</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>flag=0</code>]</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а длина и цвет пропорциональны <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mgl_ru_3.html#Vect-3D-sample">Vect 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-vectc"></a>
+<p><a name="vectc"></a>
+</p><dl>
+<dt><a name="index-vectc-1"></a><u>Команда MGL:</u> <b>vectc</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-vectc-2"></a><u>Команда MGL:</u> <b>vectc</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Аналогично <a href="#vect">vect</a> c <code>flag=2+16=18</code>. См. раздел <a href="mgl_ru_3.html#VectC-sample">VectC &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vectc-3"></a><u>Команда MGL:</u> <b>vectc</b><i> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-vectc-4"></a><u>Команда MGL:</u> <b>vectc</b><i> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а длина и цвет пропорциональны <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mgl_ru_3.html#VectC-3D-sample">VectC 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-vectl"></a>
+<p><a name="vectl"></a>
+</p><dl>
+<dt><a name="index-vectl-1"></a><u>Команда MGL:</u> <b>vectl</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-vectl-2"></a><u>Команда MGL:</u> <b>vectl</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Аналогично <a href="#vect">vect</a> c <code>flag=1+16=17</code>. См. раздел <a href="mgl_ru_3.html#VectL-sample">VectL &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-vectl-3"></a><u>Команда MGL:</u> <b>vectl</b><i> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-vectl-4"></a><u>Команда MGL:</u> <b>vectl</b><i> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а длина и цвет пропорциональны <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mgl_ru_3.html#VectL-3D-sample">VectL 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-dew"></a>
+<p><a name="dew"></a>
+</p><dl>
+<dt><a name="index-dew-1"></a><u>Команда MGL:</u> <b>dew</b><i> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-dew-2"></a><u>Команда MGL:</u> <b>dew</b><i> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует капли для векторного поля {<var>udat</var>, <var>vdat</var>}, параметрически зависящего от координат <var>xdat</var>, <var>ydat</var> при <var>z=zval</var>. Замечу, что график требует много памяти и процессорного времени для своего создания! Цвет капель пропорционален <em>\sqrtax^2+ay^2</em>. Число капель определяется <a href="#meshnum">meshnum</a>. См. также <a href="#vect">vect</a>. См. раздел <a href="mgl_ru_3.html#Dew-sample">Dew &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-flow"></a>
+<p><a name="flow"></a>
+</p><dl>
+<dt><a name="index-flow-1"></a><u>Команда MGL:</u> <b>flow</b><i> udat vdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-flow-2"></a><u>Команда MGL:</u> <b>flow</b><i> xdat ydat udat vdat ['sch'='' <code>num=5 zval=nan</code>]</i></dt>
+<dd><p>Рисует нити тока для векторного поля {<var>udat</var>, <var>vdat</var>}, параметрически зависящего от координат <var>xdat</var>, <var>ydat</var> на плоскости при z = <var>zval</var>. Число нитей пропорционально <var>num</var>. При <var>num</var>&gt;0 нитей могут стартовать и изнутри сетки, в противном случае только с краев. Цвет нитей пропорционален <em>\sqrtudat^2+vdat^2</em>. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника). См. также <a href="#pipe">pipe</a>, <a href="#vect">vect</a>. См. раздел <a href="mgl_ru_3.html#Flow-sample">Flow &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-3"></a><u>Команда MGL:</u> <b>flow</b><i> udat vdat wdat ['sch'='' <code>num=3</code>]</i></dt>
+<dt><a name="index-flow-4"></a><u>Команда MGL:</u> <b>flow</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>num=3</code>]</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а цвет пропорционален <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mgl_ru_3.html#Flow-3D-sample">Flow 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-5"></a><u>Команда MGL:</u> <b>flow</b><i> <code>x0 y0</code> udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-flow-6"></a><u>Команда MGL:</u> <b>flow</b><i> <code>x0 y0</code> xdat ydat udat vdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dd><p>Рисует нить тока из точки {<var>x0</var>, <var>y0</var>} для векторного поля {<var>udat</var>, <var>vdat</var>}, параметрически зависящего от координат <var>xdat</var>, <var>ydat</var> на плоскости при z = <var>zval</var>. Цвет нити пропорционален <em>\sqrtudat^2+vdat^2</em>. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-flow-7"></a><u>Команда MGL:</u> <b>flow</b><i> <code>x0 y0 z0</code> udat vdat wdat ['sch'='']</i></dt>
+<dt><a name="index-flow-8"></a><u>Команда MGL:</u> <b>flow</b><i> <code>x0 y0 z0</code> xdat ydat zdat udat vdat wdat ['sch'='']</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а цвет пропорционален <em>\sqrtudat^2+vdat^2+wdat^2</em>.
+</p></dd></dl>
+
+
+<a name="index-pipe"></a>
+<p><a name="pipe"></a>
+</p><dl>
+<dt><a name="index-pipe-1"></a><u>Команда MGL:</u> <b>pipe</b><i> udat vdat ['sch'='' <code>r0=0.05 num=5 zval=nan</code>]</i></dt>
+<dt><a name="index-pipe-2"></a><u>Команда MGL:</u> <b>pipe</b><i> xdat ydat udat vdat ['sch'='' <code>r0=0.05 num=5 zval=nan</code>]</i></dt>
+<dd><p>Рисует трубки тока для векторного поля {<var>udat</var>, <var>vdat</var>}, параметрически зависящего от координат <var>xdat</var>, <var>ydat</var> на плоскости при z = <var>zval</var>. Число трубок пропорционально <var>num</var>. При <var>num</var>&gt;0 нитей могут стартовать и изнутри сетки, в противном случае только с краев. Цвет и радиус трубок пропорционален <em>\sqrtudat^2+vdat^2</em>. Теплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника). Параметр <var>r0</var> задает радиус трубок. При <var>r0</var>&lt;0 радиус трубок обратно пропорционален их амплитуде. См. также <a href="#flow">flow</a>, <a href="#vect">vect</a>. См. раздел <a href="mgl_ru_3.html#Pipe-sample">Pipe &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-pipe-3"></a><u>Команда MGL:</u> <b>pipe</b><i> udat vdat wdat ['sch'='' <code>r0=0.05 num=3</code>]</i></dt>
+<dt><a name="index-pipe-4"></a><u>Команда MGL:</u> <b>pipe</b><i> xdat ydat zdat udat vdat wdat ['sch'='' <code>r0=0.05 num=3</code>]</i></dt>
+<dd><p>Это 3D версия графика. Здесь массивы <var>udat</var>, <var>vdat</var>, <var>wdat</var> должны быть 3d массивами, а цвет пропорционален <em>\sqrtudat^2+vdat^2+wdat^2</em>. См. раздел <a href="mgl_ru_3.html#Pipe-3D-sample">Pipe 3D &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Other-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-fields" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043e_0447_0438e-g_0440_0430_0444_0438_043a_0438"></a>
+<h2 class="section">1.15 Прочие графики</h2>
+
+<p>Это команды, не относящиеся к какой-то специальной категории. Сюда входят функции построения графиков по текстовым формулам (<a href="#fplot">fplot</a>, <a href="#fsurf">fsurf</a>), рисования поверхностей из треугольников (<a href="#triplot">triplot</a>), произвольных точек в пространстве (<a href="#dots">dots</a>) и реконструкции по ним поверхности (<a href="#crust">crust</a>), графики плотности и линии уровня на плоскостях, перпендикулярных осям x, y или z (dens[xyz], cont[xyz], contf[xyz]). Каждый тип графика имеет похожий интерфейс. Есть версия для рисования одного массива с автоматическими координатами и версия для параметрически заданного массива. Строка <var>sch</var> задает цветовую схему (see section <a href="#Color-scheme">Цветовая схема</a>). Предыдущая цветовая схема используется по умолчанию.
+</p>
+<a name="index-densx"></a>
+<a name="index-densy"></a>
+<a name="index-densz"></a>
+<p><a name="densx"></a> <a name="densy"></a> <a name="densz"></a>
+</p><dl>
+<dt><a name="index-densx-1"></a><u>Команда MGL:</u> <b>densx</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dt><a name="index-densy-1"></a><u>Команда MGL:</u> <b>densy</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dt><a name="index-densz-1"></a><u>Команда MGL:</u> <b>densz</b><i> dat ['sch'='' <code>val=nan</code>]</i></dt>
+<dd><p>Рисуют график плотности на x, y или z плоскостях. Если <var>dat</var> &ndash; 3d массив, то выполняется интерполяция к заданному срезу <var>val</var>. Функции полезны для создания проекций 3D массивов на оси координат. См. также <code>cont[xyz], contf[xyz]</code>, <a href="#dens">dens</a>. См. раздел <a href="mgl_ru_3.html#Dens-projection-sample">Dens projection &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-contx"></a>
+<a name="index-conty"></a>
+<a name="index-contz"></a>
+<p><a name="contz"></a> <a name="conty"></a> <a name="contx"></a>
+</p><dl>
+<dt><a name="index-contx-1"></a><u>Команда MGL:</u> <b>contx</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-conty-1"></a><u>Команда MGL:</u> <b>conty</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contz-1"></a><u>Команда MGL:</u> <b>contz</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dd><p>Рисуют линии уровня на x, y или z плоскостях. Если <var>dat</var> &ndash; 3d массив, то выполняется интерполяция к заданному срезу <var>val</var>. Функции полезны для создания проекций 3D массивов на оси координат. См. также <code>dens[xyz], contf[xyz]</code>, <a href="#cont">cont</a>. См. раздел <a href="mgl_ru_3.html#Cont-projection-sample">Cont projection &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-contfx"></a>
+<a name="index-contfy"></a>
+<a name="index-contfz"></a>
+<p><a name="contfz"></a> <a name="contfy"></a> <a name="contfx"></a>
+</p><dl>
+<dt><a name="index-contfx-1"></a><u>Команда MGL:</u> <b>contfx</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contfy-1"></a><u>Команда MGL:</u> <b>contfy</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dt><a name="index-contfz-1"></a><u>Команда MGL:</u> <b>contfz</b><i> dat ['sch'='' <code>val=nan num=7</code>]</i></dt>
+<dd><p>Рисуют закрашенные контуры уровня на x, y или z плоскостях. Если <var>dat</var> &ndash; 3d массив, то выполняется интерполяция к заданному срезу <var>val</var>. Функции полезны для создания проекций 3D массивов на оси координат. См. также <code>dens[xyz], cont[xyz]</code>, <a href="#contf">contf</a>.
+</p></dd></dl>
+
+<a name="index-dots"></a>
+<p><a name="dots"></a>
+</p><dl>
+<dt><a name="index-dots-1"></a><u>Команда MGL:</u> <b>dots</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-dots-2"></a><u>Команда MGL:</u> <b>dots</b><i> xdat ydat zdat adat ['sch'='']</i></dt>
+<dd><p>Рисует произвольно расположенные точки {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если определен массив <var>adat</var>[i], то он задает прозрачность точек. См. также <a href="#crust">crust</a>, <a href="#mark">mark</a>, <a href="#plot">plot</a>. См. раздел <a href="mgl_ru_3.html#Dots-sample">Dots &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-crust"></a>
+<p><a name="crust"></a>
+</p><dl>
+<dt><a name="index-crust-1"></a><u>Команда MGL:</u> <b>crust</b><i> xdat ydat zdat ['sch'='']</i></dt>
+<dd><p>Реконструирует и рисует поверхность по произвольно расположенным точкам {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если строка содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. См. также <a href="#dots">dots</a>, <a href="#triplot">triplot</a>. См. раздел <a href="mgl_ru_3.html#Crust-sample">Crust &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-triplot"></a>
+<p><a name="triplot"></a>
+</p><dl>
+<dt><a name="index-triplot-1"></a><u>Команда MGL:</u> <b>triplot</b><i> idat xdat ydat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-triplot-2"></a><u>Команда MGL:</u> <b>triplot</b><i> idat xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-triplot-3"></a><u>Команда MGL:</u> <b>triplot</b><i> idat xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Рисует поверхность из треугольников. Вершины треугольников задаются индексами <var>idat</var> в массиве точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если строка содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Размер по 1-му индексу массива <var>idat</var> должен быть 3 или больше. Массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> должны иметь одинаковые размеры. Массив <var>cdat</var> задает цвет треугольников (если <var>idat</var>.ny=<var>cdat</var>.nx) или цвет вершин (если <var>xdat</var>.nx=<var>cdat</var>.nx). См. также <a href="#dots">dots</a>, <a href="#crust">crust</a>, <a href="#quadplot">quadplot</a>, <a href="#tricont">tricont</a>.
+</p></dd></dl>
+
+<a name="index-tricont"></a>
+<p><a name="tricont"></a>
+</p><dl>
+<dt><a name="index-tricont-1"></a><u>Команда MGL:</u> <b>tricont</b><i> vdat idat xdat ydat zdat cdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tricont-2"></a><u>Команда MGL:</u> <b>tricont</b><i> vdat idat xdat ydat zdat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-tricont-3"></a><u>Команда MGL:</u> <b>tricont</b><i> idat xdat ydat zdat ['sch'='' <code>num=7 zval=nan</code>]</i></dt>
+<dd><p>Рисует линии уровня поверхности из треугольников при <var>z</var> = <var>zval</var> (или для z=<var>vdat</var>[k] если <code>zval==NAN</code>). Вершины треугольников задаются индексами <var>idat</var> в массиве точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Размер по 1-му индексу массива <var>idat</var> должен быть 3 или больше. Массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> должны иметь одинаковые размеры. Массив <var>cdat</var> (если указан) задает цвет треугольников (если <var>idat</var>.ny=<var>cdat</var>.nx) или цвет вершин (если <var>xdat</var>.nx=<var>cdat</var>.nx). См. также <a href="#triplot">triplot</a>, <a href="#cont">cont</a>.
+</p></dd></dl>
+
+<a name="index-quadplot"></a>
+<p><a name="quadplot"></a>
+</p><dl>
+<dt><a name="index-quadplot-1"></a><u>Команда MGL:</u> <b>quadplot</b><i> idat xdat ydat ['sch'='' <code>zval=nan</code>]</i></dt>
+<dt><a name="index-quadplot-2"></a><u>Команда MGL:</u> <b>quadplot</b><i> idat xdat ydat zdat ['sch'='']</i></dt>
+<dt><a name="index-quadplot-3"></a><u>Команда MGL:</u> <b>quadplot</b><i> idat xdat ydat zdat cdat ['sch'='']</i></dt>
+<dd><p>Рисует поверхность из четырехугольников. Вершины треугольников задаются индексами <var>idat</var> в массиве точек {<var>xdat</var>[i], <var>ydat</var>[i], <var>zdat</var>[i]}. Если строка содержит &lsquo;<samp>#</samp>&rsquo;, то рисуется сетчатая поверхность. Размер по 1-му индексу массива <var>idat</var> должен быть 4 или больше. Массивы <var>xdat</var>, <var>ydat</var>, <var>zdat</var> должны иметь одинаковые размеры. Массив <var>cdat</var> задает цвет четырехугольников (если <var>idat</var>.ny=<var>cdat</var>.nx) или цвет вершин (если <var>xdat</var>.nx=<var>cdat</var>.nx). См. также <a href="#triplot">triplot</a>.
+</p></dd></dl>
+
+<a name="index-fplot"></a>
+<p><a name="fplot"></a>
+</p><dl>
+<dt><a name="index-fplot-1"></a><u>Команда MGL:</u> <b>fplot</b><i> 'y(x)' ['pen'='' <code>zval=nan num=100</code>]</i></dt>
+<dd><p>Рисует функцию &lsquo;<samp>y(x)</samp>&rsquo; в плоскости z=<var>zval</var> с координатой &lsquo;<samp>x</samp>&rsquo; в диапазоне x-оси координат. Параметр <var>num</var> задает минимальное число точек по координате для графика. См. также <a href="#plot">plot</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fplot-2"></a><u>Команда MGL:</u> <b>fplot</b><i> 'x(t)' 'y(t)' 'z(t)' ['pen'='' <code>num=100</code>]</i></dt>
+<dd><p>Рисует параметрическую кривую {&lsquo;<samp>x(t)</samp>&rsquo;, &lsquo;<samp>y(t)</samp>&rsquo;, &lsquo;<samp>z(t)</samp>&rsquo;}, где координата &lsquo;<samp>t</samp>&rsquo; меняется в диапазоне [0, 1]. Параметр <var>num</var> задает минимальное число точек по координате для графика. См. также <a href="#plot">plot</a>.
+</p></dd></dl>
+
+<a name="index-fsurf"></a>
+<p><a name="fsurf"></a>
+</p><dl>
+<dt><a name="index-fsurf-1"></a><u>Команда MGL:</u> <b>fsurf</b><i> 'z(x,y)' ['sch'='' <code>num=100</code>]</i></dt>
+<dd><p>Рисует поверхность &lsquo;<samp>z(x,y)</samp>&rsquo; с координатами &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; в диапазоне x-,y-осей координат. Параметр <var>num</var> задает минимальное число точек по координатам для графика. См. также <a href="#surf">surf</a>.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fsurf-2"></a><u>Команда MGL:</u> <b>fsurf</b><i> 'x(u,v)' 'y(u,v)' 'z(u,v)' ['sch'='' <code>num=100</code>]</i></dt>
+<dd><p>Рисует параметрическую поверхность {&lsquo;<samp>x(u,v)</samp>&rsquo;, &lsquo;<samp>y(u,v)</samp>&rsquo;, &lsquo;<samp>z(u,v)</samp>&rsquo;}, где координаты &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo; меняются в диапазоне [0, 1]. Параметр <var>num</var> задает минимальное число точек по координатам для графика. См. также <a href="#surf">surf</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Nonlinear-fitting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Other-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-create" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-1"></a>
+<h2 class="section">1.16 Nonlinear fitting</h2>
+
+<p>Эти команды подбирают параметры функций для наилучшей аппроксимации данных, т.е. минимизируют сумму <em>\sum_i (f(x_i, y_i, z_i) - a_i)^2/s_i^2</em>. При этом аппроксимирующая функция &lsquo;<samp>f</samp>&rsquo; может зависеть от одного аргумента &lsquo;<samp>x</samp>&rsquo; (1D случай), от двух аргументов &lsquo;<samp>x,y</samp>&rsquo; (2D случай) или от трех аргументов &lsquo;<samp>x,y,z</samp>&rsquo; (3D случай). Функция &lsquo;<samp>f</samp>&rsquo; также может зависеть от параметров. Список параметров задается строкой <var>var</var> (например, &lsquo;<samp>abcd</samp>&rsquo;). Обычно пользователь должен предоставить начальные значения параметров в переменной <var>ini</var>. Однако, при его отсутствии используются нулевые значения.
+</p>
+<p>Команды <a href="#fit">fit</a> и <a href="#fits">fits</a> не рисуют полученные массивы. Они заполняют массив <var>fit</var> по формуле &lsquo;<samp>f</samp>&rsquo; с найденными коэффициентами. При этом, координаты &lsquo;<samp>x,y,z</samp>&rsquo; равно распределены в вдоль осей координат. Число точек в <var>fit</var> выбирается максимальным из размера массива <var>fit</var> и 100. Формулу с найденными коэффициентами можно вывести с помощью команды <a href="#putsfit">putsfit</a>. См. раздел <a href="mgl_ru_3.html#Fitting-sample">Fitting &ndash; пример использования</a>, для примеров кода и графика.
+</p>
+<p>Размерность массивов должны быть не меньше, чем число указанных массивов <var>xdat</var>, <var>ydat</var>, <var>zdat</var>. Также подбор коэффициентов будет осуществляться только вдоль указанных направлений (например, вдоль x и y если указаны только <var>xdat</var> и <var>ydat</var>). Если массив <var>xdat</var> не указан, то используется массив со значениями равно распределенными вдоль оси x.
+</p>
+<a name="index-fits"></a>
+<p><a name="fits"></a>
+</p><dl>
+<dt><a name="index-fits-1"></a><u>Команда MGL:</u> <b>fits</b><i> adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-2"></a><u>Команда MGL:</u> <b>fits</b><i> xdat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-3"></a><u>Команда MGL:</u> <b>fits</b><i> xdat ydat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fits-4"></a><u>Команда MGL:</u> <b>fits</b><i> xdat ydat zdat adat sdat 'func' 'var' [ini=0]</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-, y- и z-направлений для массива заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) с весовыми коэффициентами <var>sdat</var>[i,j,k].
+</p></dd></dl>
+
+<a name="index-fit"></a>
+<p><a name="fit"></a>
+</p><dl>
+<dt><a name="index-fit-1"></a><u>Команда MGL:</u> <b>fit</b><i> adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-2"></a><u>Команда MGL:</u> <b>fit</b><i> xdat adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-3"></a><u>Команда MGL:</u> <b>fit</b><i> xdat ydat adat 'func' 'var' [ini=0]</i></dt>
+<dt><a name="index-fit-4"></a><u>Команда MGL:</u> <b>fit</b><i> xdat ydat zdat adat 'func' 'var' [ini=0]</i></dt>
+<dd><p>&quot;Подгоняют&quot; формулу вдоль x-, y- и z-направлений для массива заданного параметрически <var>a</var>[i,j,k](<var>x</var>[i,j,k], <var>y</var>[i,j,k], <var>z</var>[i,j,k]) с весовыми коэффициентами равными 1.
+</p></dd></dl>
+
+<a name="index-putsfit"></a>
+<p><a name="putsfit"></a>
+</p><dl>
+<dt><a name="index-putsfit-1"></a><u>Команда MGL:</u> <b>putsfit</b><i> <code>x y</code> ['pre'='' 'fnt'='' <code>size=-1</code>]</i></dt>
+<dd><p>Печатает последнюю подобранную формулу с найденными коэффициентами в точке {<var>x</var>, <var>y</var>}. Строка <var>pre</var> будет напечатана перед формулой. Все другие параметры такие же как в <a href="#Text-printing">Вывод текста</a>.
+</p></dd></dl>
+
+
+<hr size="6">
+<a name="Data-create"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-filling" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_043e_0437_0434_0430_043d_0438e-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">1.17 Создание данных</h2>
+
+<a name="index-new"></a>
+<p><a name="new"></a>
+</p><dl>
+<dt><a name="index-new-1"></a><u>Команда MGL:</u> <b>new</b><i> dat [<code>nx=1 ny=1 nz=1</code>]</i></dt>
+<dd><p>Создает/пересоздает массив с именем <var>dat</var> данных указанного размера и заполняет его нулями. Ничего не делает при <var>nx</var>, <var>ny</var>, <var>nz</var> отрицательных или равных нулю.
+</p></dd></dl>
+
+<a name="index-var"></a>
+<p><a name="var"></a>
+</p><dl>
+<dt><a name="index-var-1"></a><u>Команда MGL:</u> <b>var</b><i> dat <code>num v1 [v2=nan]</code></i></dt>
+<dd><p>Создает одномерный массив с именем <var>dat</var> размером <code>num</code> и заполняет его равномерно в диапазоне [<var>v1</var>, <var>v2</var>]. Если <var>v2</var>=<code>nan</code>, то используется <var>v2=v1</var>. 
+</p></dd></dl>
+
+<a name="index-list"></a>
+<p><a name="list"></a>
+</p><dl>
+<dt><a name="index-list-1"></a><u>Команда MGL:</u> <b>list</b><i> dat <code>v1 ...</code></i></dt>
+<dd><p>Создает массив с именем <var>dat</var> и заполняет его числовыми значениями аргументов <code>v1 ...</code>. Команда может создавать 1d- и 2d-массивы. Для создания 2d-массивов требуется указать разделитель строк данных &lsquo;<samp>|</samp>&rsquo;. Размер массива будет [максимальное число чисел в строке * число строк]. Например, команда <code>list 1 | 2 3</code> создаст массив [1 0; 2 3]. Отмечу, что максимальное число аргументов 1000. 
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-list-2"></a><u>Команда MGL:</u> <b>list</b><i> dat d1 ...</i></dt>
+<dd><p>Создает массив с именем <var>dat</var> и заполняет его числами из массивов <code>d1 ...</code>. Команда может создавать 2d- и 3d-массивы (если аргументы 2d массивы). Младшие размерности всех массивов в аргументах должны быть равны размерности <var>d1</var>. Отмечу, что максимальное число аргументов 1000. 
+</p></dd></dl>
+
+<a name="index-copy"></a>
+<p><a name="copy"></a>
+</p><dl>
+<dt><a name="index-copy-1"></a><u>Команда MGL:</u> <b>copy</b><i> dat dat2 ['eq'='' <code>on_axis=on</code>]</i></dt>
+<dt><a name="index-copy-2"></a><u>Команда MGL:</u> <b>copy</b><i> dat <code>val</code></i></dt>
+<dd><p>Создает массив с именем <var>dat</var> и копирует в него данные из массива <var>dat2</var>. При этом, если указан параметр <var>eq</var>, то данные будут изменены по формуле аналогично команде <a href="#fill">fill</a> (для <code>on_axis=on</code>) или <a href="#modify">modify</a> (для <code>on_axis=off</code>).
+</p></dd></dl>
+
+<a name="index-idset"></a>
+<p><a name="idset"></a>
+</p><dl>
+<dt><a name="index-idset-1"></a><u>Команда MGL:</u> <b>idset</b><i> dat 'ids'</i></dt>
+<dd><p>Устанавливает символьные обозначения для колонок данных. Строка должна содержать символы &rsquo;a&rsquo;...&rsquo;z&rsquo; один на колонку (без пробелов).
+</p></dd></dl>
+
+<a name="index-info"></a>
+<p><a name="info"></a>
+</p><dl>
+<dt><a name="index-info-1"></a><u>Команда MGL:</u> <b>info</b><i> dat [<code>detail=off</code>]</i></dt>
+<dd><p>Выводит информацию о массиве (размер, максимальное/минимальное значение, моменты и пр.). При <code>detail=off</code> показывается только краткая информация.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-info-2"></a><u>Команда MGL:</u> <b>info</b><i> 'text'</i></dt>
+<dd><p>Выводит текст <var>text</var> как информацию (предупреждение).
+</p></dd></dl>
+
+<hr size="6">
+<a name="Data-filling"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-create" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Rearrange-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0417_0430_043f_043e_043b_043de_043d_0438e-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">1.18 Заполнение данных</h2>
+<a name="index-fill"></a>
+<a name="index-modify"></a>
+
+<a name="index-fill-1"></a>
+<p><a name="fill"></a>
+</p><dl>
+<dt><a name="index-fill-2"></a><u>Команда MGL:</u> <b>fill</b><i> dat v1 v2 ['dir'='x']</i></dt>
+<dd><p>Заполняет значениями равно распределенными в диапазоне [<var>v1</var>, <var>v2</var>] в направлении <var>dir</var>={&lsquo;<samp>x</samp>&rsquo;,&lsquo;<samp>y</samp>&rsquo;,&lsquo;<samp>z</samp>&rsquo;}.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-fill-3"></a><u>Команда MGL:</u> <b>fill</b><i> dat 'eq' [vdat=0 wdat=0]</i></dt>
+<dd><p>Заполняет значениями вычисленными по формуле <var>eq</var>. Формула представляет собой произвольное выражение, зависящее от переменных &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Координаты &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; полагаются меняющимися в диапазоне осей координат (в отличие от <a href="#modify">modify</a>). Переменная &lsquo;<samp>u</samp>&rsquo; &ndash; значения исходного массива, переменные &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo; &ndash; значения массивов <var>vdat</var>, <var>wdat</var>. Последние могут быть опущены.
+</p></dd></dl>
+
+<a name="index-modify-1"></a>
+<p><a name="modify"></a>
+</p><dl>
+<dt><a name="index-modify-2"></a><u>Команда MGL:</u> <b>modify</b><i> dat 'eq' [<code>dim=0</code>]</i></dt>
+<dt><a name="index-modify-3"></a><u>Команда MGL:</u> <b>modify</b><i> dat 'eq' vdat [wdat=0]</i></dt>
+<dd><p>Заполняет значениями вычисленными по формуле <var>eq</var>. Формула представляет собой произвольное выражение, зависящее от переменных &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, &lsquo;<samp>u</samp>&rsquo;, &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo;. Координаты &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; полагаются меняющимися в диапазоне [0,1] (в отличие от <a href="#fill">fill</a>). Переменная &lsquo;<samp>u</samp>&rsquo; &ndash; значения исходного массива, переменные &lsquo;<samp>v</samp>&rsquo;, &lsquo;<samp>w</samp>&rsquo; &ndash; значения массивов <var>vdat</var>, <var>wdat</var>. Последние могут быть опущены. Если указан <var>dim</var>&gt;0, то изменяются только слои &gt;=<var>dim</var>.
+</p></dd></dl>
+
+
+<a name="index-put"></a>
+<p><a name="put"></a>
+</p><dl>
+<dt><a name="index-put-1"></a><u>MGL command:</u> <b>put</b><i> dat <code>val [i=: j=: k=:]</code></i></dt>
+<dd><p>Присваивает значения (под-)массива <var>dat</var>[<var>i</var>, <var>j</var>, <var>k</var>] = <var>val</var>. Индексы <var>i</var>, <var>j</var>, <var>k</var> равные &lsquo;<samp>:</samp>&rsquo; задают значениия <var>val</var> для всего диапазона соответствующего направления(ий). Например, <code>put dat val : 0 :</code> задает <var>dat</var>[i,0,j]=<var>val</var> для i=0...(<var>dat</var>.nx-1), j=0...(<var>dat</var>.nz-1).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-put-2"></a><u>MGL command:</u> <b>put</b><i> dat vdat [<code>i=: j=: k=:</code>]</i></dt>
+<dd><p>Копирует значения из массива <var>vdat</var> в диапазон значений массива <var>dat</var>. Индексы <var>i</var>, <var>j</var>, <var>k</var> равные &lsquo;<samp>:</samp>&rsquo; задают диапазон изменения значений в соответствующих направление(ях). Младшие размерности массива <var>vdat</var> должны быть больше выбранного диапазона массива <var>dat</var>. Например, <code>put dat v : 0 :</code> присвоит <var>dat</var>[i,0,j]=<var>vdat</var>.ny&gt;<var>dat</var>.nz ? <var>vdat</var>[i,j] : <var>vdat</var>[i], где i=0...(<var>dat</var>.nx-1), j=0...(<var>dat</var>.nz-1) и условие vdat.nx&gt;=dat.nx выполнено.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Rearrange-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-filling" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#File-I_002fO" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_0437_043ce_043de_043d_0438e-_0440_0430_0437_043ce_0440_043e_0432-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">1.19 Изменение размеров данных</h2>
+
+<a name="index-rearrange"></a>
+<p><a name="rearrange"></a>
+</p><dl>
+<dt><a name="index-rearrange-1"></a><u>Команда MGL:</u> <b>rearrange</b><i> dat <code>mx [my=0 mz=0]</code></i></dt>
+<dd><p>Изменяет размерность данных без изменения самого массива данных, так что результирующий массив <var>mx</var>*<var>my</var>*<var>mz</var> &lt; nx*ny*nz. Если один из параметров <var>my</var> или <var>mz</var> ноль, то он будет выбран оптимальным образом. Например, если <var>my</var>=0, то будет <var>my</var>=nx*ny*nz/<var>mx</var> и <var>mz</var>=1.
+</p></dd></dl>
+
+<a name="index-extend"></a>
+<p><a name="extend"></a>
+</p><dl>
+<dt><a name="index-extend-1"></a><u>Команда MGL:</u> <b>extend</b><i> dat <code>n1 [n2=0]</code></i></dt>
+<dd><p>Увеличивает размер данных путем вставки (|<var>n1</var>|+1) новых срезов после (для <var>n1</var>&gt;0) или перед (для <var>n1</var>&lt;0) существующими данными. Можно добавить сразу 2 размерности для 1d массива, используя второй параметр <var>n2</var>. Данные в новые срезы будут скопированы из существующих. Например, для <var>n1</var>&gt;0 новый массив будет
+a_ij^new = a_i^old where j=0...<var>n1</var>. Соответственно, для <var>n1</var>&lt;0 новый массив будет a_ij^new = a_j^old, где i=0...|<var>n1</var>|.
+</p></dd></dl>
+
+<a name="index-transpose"></a>
+<p><a name="transpose"></a>
+</p><dl>
+<dt><a name="index-transpose-1"></a><u>Команда MGL:</u> <b>transpose</b><i> dat ['dim'='yxz']</i></dt>
+<dd><p>Транспонирует (меняет порядок размерностей) массив данных. Новый порядок размерностей задается строкой <var>dim</var>.
+</p></dd></dl>
+
+<a name="index-squeeze"></a>
+<p><a name="squeeze"></a>
+</p><dl>
+<dt><a name="index-squeeze-1"></a><u>Команда MGL:</u> <b>squeeze</b><i> dat <code>rx [ry=1 rz=1 sm=off]</code></i></dt>
+<dd><p>Уменьшает размер данных путем удаления элементов с индексами не кратными <var>rx</var>, <var>ry</var>, <var>rz</var> соответственно. Параметр <var>smooth</var> задает использовать сглаживания
+(т.е. out[i]=\sum_{j=i,i+r} a[j]/r) или нет (т.е. out[i]=a[j*r]).
+</p></dd></dl>
+
+<a name="index-crop"></a>
+<p><a name="crop"></a>
+</p><dl>
+<dt><a name="index-crop-1"></a><u>Команда MGL:</u> <b>crop</b><i> dat <code>n1 n2</code> 'dir'</i></dt>
+<dd><p>Обрезает границы данных при <var>i</var>&lt;<var>n1</var> и <var>i</var>&gt;<var>n2</var> (при <var>n2</var>&gt;0) или <var>i</var>&gt;<code>n[xyz]</code>-<var>n2</var> (при <var>n2</var>&lt;=0) вдоль направления <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-delete"></a>
+<p><a name="delete"></a>
+</p><dl>
+<dt><a name="index-delete-1"></a><u>Команда MGL:</u> <b>delete</b><i> dat</i></dt>
+<dd><p>Удаляет массив <var>dat</var> и освобождает использованную память. Может быть полезно для больших неиспользуемых массивов.
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-delete-2"></a><u>Команда MGL:</u> <b>delete</b><i> dat 'dir' <code>[pos=off num=0]</code></i></dt>
+<dd><p>Удаляет <var>num</var> срезов вдоль направления <var>dir</var> с позиции <var>pos</var>.
+</p></dd></dl>
+
+<a name="index-insert"></a>
+<p><a name="insert"></a>
+</p><dl>
+<dt><a name="index-insert-1"></a><u>Команда MGL:</u> <b>insert</b><i> dat 'dir' <code>[pos=off num=0]</code></i></dt>
+<dd><p>Вставляет <var>num</var> срезов вдоль направления <var>dir</var> с позиции <var>pos</var> и заполняет их нулями.
+</p></dd></dl>
+
+<hr size="6">
+<a name="File-I_002fO"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Rearrange-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Make-another-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0427_0442e_043d_0438e_002f_0441_043e_0445_0440_0430_043de_043d_0438e-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">1.20 Чтение/сохранение данных</h2>
+
+<a name="index-read"></a>
+<p><a name="read"></a>
+</p><dl>
+<dt><a name="index-read-1"></a><u>Команда MGL:</u> <b>read</b><i> dat 'fname'</i></dt>
+<dd><p>Читает данные из текстового файла с разделителями символом пробела/табуляции с автоматическим определением размера массива. Двойной перевод строки начинает новый срез данных (по направлению z).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-read-2"></a><u>Команда MGL:</u> <b>read</b><i> dat 'fname' <code>mx [my=1 mz=1]</code></i></dt>
+<dd><p>Читает данные из текстового файла с заданными размерами. Ничего не делается если параметры <var>mx</var>, <var>my</var> или <var>mz</var> равны нулю или отрицательны.
+</p></dd></dl>
+
+<a name="index-readmat"></a>
+<p><a name="readmat"></a>
+</p><dl>
+<dt><a name="index-readmat-1"></a><u>Команда MGL:</u> <b>readmat</b><i> dat 'fname' [<code>dim=2</code>]</i></dt>
+<dd><p>Читает данные из текстового файла с размерами, указанными в первых <var>dim</var> числах файла. При этом переменная <var>dim</var> задает размерность (1d, 2d, 3d) данных.
+</p></dd></dl>
+
+<a name="index-readall"></a>
+<p><a name="readall"></a>
+</p><dl>
+<dt><a name="index-readall-1"></a><u>Команда MGL:</u> <b>readall</b><i> dat 'templ' <code>v1 v2 [dv=1 slice=off]</code></i></dt>
+<dd><p>Объединяет данные из нескольких текстовых файлов. Имена файлов определяются вызовом функции <code>sprintf(fname,templ,val);</code>, где <var>val</var> меняется от <var>v1</var> до <var>v2</var> с шагом <var>dv</var>. Данные загружаются один за другим в один и тот же срез данных (при <var>slice</var>=<code>off</code>) или срез-за-срезом (при <var>slice</var>=<code>on</code>).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-readall-2"></a><u>Команда MGL:</u> <b>readall</b><i> dat 'templ' <code>[slice=off]</code></i></dt>
+<dd><p>Объединяет данные из нескольких текстовых файлов, чьи имена удовлетворяют шаблону <var>templ</var> (например, <var>templ</var>=<code>&quot;t_*.dat&quot;</code>). Данные загружаются один за другим в один и тот же срез данных (при <var>slice</var>=<code>off</code>) или срез-за-срезом (при <var>slice</var>=<code>on</code>).
+</p></dd></dl>
+
+<a name="index-save"></a>
+<p><a name="save"></a>
+</p><dl>
+<dt><a name="index-save-1"></a><u>Команда MGL:</u> <b>save</b><i> dat 'fname'</i></dt>
+<dd><p>Сохраняет массив данных в текстовый файл.
+</p></dd></dl>
+
+<a name="index-readhdf"></a>
+<p><a name="readhdf"></a>
+</p><dl>
+<dt><a name="index-readhdf-1"></a><u>Команда MGL:</u> <b>readhdf</b><i> dat 'fname' 'dname'</i></dt>
+<dd><p>Читает массив с именем <var>dname</var> из HDF5 или HDF4 файла <var>fname</var>.
+</p></dd></dl>
+
+<a name="index-savehdf"></a>
+<p><a name="savehdf"></a>
+</p><dl>
+<dt><a name="index-savehdf-1"></a><u>Команда MGL:</u> <b>savehdf</b><i> dat 'fname' 'dname'</i></dt>
+<dd><p>Сохраняет массив под именем <var>dname</var> в HDF5 или HDF4 файл <var>fname</var>.
+</p></dd></dl>
+
+<a name="index-import"></a>
+<p><a name="import"></a>
+</p><dl>
+<dt><a name="index-import-1"></a><u>Команда MGL:</u> <b>import</b><i> dat 'fname' 'sch' [<code>v1=0 v2=1</code>]</i></dt>
+<dd><p>Читает данные из растрового файла. RGB значения пикселов преобразуются в число в диапазоне [<var>v1</var>, <var>v2</var>] используя цветовую схему <var>sch</var> (see section <a href="#Color-scheme">Цветовая схема</a>).
+</p></dd></dl>
+
+<a name="index-export"></a>
+<p><a name="export"></a>
+</p><dl>
+<dt><a name="index-export-1"></a><u>Команда MGL:</u> <b>export</b><i> dat 'fname' 'sch' [<code>v1=0 v2=0</code>]</i></dt>
+<dd><p>Сохраняет данные в растровый файл. Числовые значения, нормированные в диапазон [<var>v1</var>, <var>v2</var>], преобразуются в RGB значения пикселов, используя цветовую схему <var>sch</var> (see section <a href="#Color-scheme">Цветовая схема</a>). Если <var>v1</var>&gt;=<var>v2</var>, то значения <var>v1</var>, <var>v2</var> определяются автоматически как минимальное и максимальное значение данных.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Make-another-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#File-I_002fO" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Change-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_043e_0437_0434_0430_043d_0438e-_043d_043e_0432_044b_0445-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">1.21 Создание новых данных</h2>
+
+<a name="index-combine"></a>
+<p><a name="combine"></a>
+</p><dl>
+<dt><a name="index-combine-1"></a><u>Команда MGL:</u> <b>combine</b><i> res adat bdat</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> прямое произведение массивов (наподобие, res[i,j] = adat[i]*bdat[j] и т.д.).
+</p></dd></dl>
+
+<a name="index-evaluate"></a>
+<p><a name="evaluate"></a>
+</p><dl>
+<dt><a name="index-evaluate-1"></a><u>Команда MGL:</u> <b>evaluate</b><i> res dat idat [<code>norm=on</code>]</i></dt>
+<dt><a name="index-evaluate-2"></a><u>Команда MGL:</u> <b>evaluate</b><i> res dat idat jdat [<code>norm=on</code>]</i></dt>
+<dt><a name="index-evaluate-3"></a><u>Команда MGL:</u> <b>evaluate</b><i> res dat idat jdat kdat [<code>norm=on</code>]</i></dt>
+<dd><p>Возвращает массив данных <var>res</var>, полученный в результате интерполяции исходного массива в точках других массивов (например, res[i,j]=dat[idat[i,j],jdat[i,j]]). Размеры массивов <var>idat</var>, <var>jdat</var>, <var>kdat</var> должны совпадать. Координаты в <var>idat</var>, <var>jdat</var>, <var>kdat</var> полагаются нормированными в диапазон [0,1] (при <var>norm</var>=<code>on</code>) или в диапазоны [0,nx], [0,ny], [0,nz] соответственно.
+</p></dd></dl>
+
+<a name="index-hist"></a>
+<p><a name="hist"></a>
+</p><dl>
+<dt><a name="index-hist-1"></a><u>Команда MGL:</u> <b>hist</b><i> res dat <code>num v1 v2 [nsub=0]</code></i></dt>
+<dt><a name="index-hist-2"></a><u>Команда MGL:</u> <b>hist</b><i> res dat wdat <code>num v1 v2 [nsub=0]</code></i></dt>
+<dd><p>Возвращает распределение (гистограмму) <var>res</var> из <var>num</var> точек от значений массива <var>dat</var> в диапазоне [<var>v1</var>, <var>v2</var>]. Массив <var>wdat</var> задает веса элементов (все веса равны 1 если <var>wdat</var> не указан). Параметр <var>nsub</var> задает число дополнительных точек интерполяции (для сглаживания получившейся гистограммы).
+</p></dd></dl>
+
+<dl>
+<dt><a name="index-hist-3"></a><u>Команда MGL:</u> <b>hist</b><i> res xdat adat</i></dt>
+<dt><a name="index-hist-4"></a><u>Команда MGL:</u> <b>hist</b><i> res xdat ydat adat</i></dt>
+<dt><a name="index-hist-5"></a><u>Команда MGL:</u> <b>hist</b><i> res xdat ydat zdat adat</i></dt>
+<dd><p>Возвращает распределение (гистограмму) <var>res</var> от значений массива <var>adat</var>, параметрически зависящего от координат {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} в диапазоне осей координат. Массив <var>adat</var> играет роль веса точки. Число точек в результате <var>res</var> &ndash; максимум из размера <var>res</var> и 100.
+</p></dd></dl>
+
+
+<a name="index-momentum"></a>
+<p><a name="momentum"></a>
+</p><dl>
+<dt><a name="index-momentum-1"></a><u>Команда MGL:</u> <b>momentum</b><i> res dat 'how' ['dir'='z']</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> момент (1d массив) данных <var>dat</var> вдоль направления <var>dir</var>. Строка <var>how</var> определяет тип момента. Момент определяется как
+res_k = \sum_ij how(x_i,y_j,z_k) dat_ij/ \sum_ij a_ij
+если <var>dir</var>=&lsquo;<samp>z</samp>&rsquo; и т.д. Координаты &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; &ndash; индексы массива в диапазоне [0,1].
+</p></dd></dl>
+
+<a name="index-sum"></a>
+<p><a name="sum"></a>
+</p><dl>
+<dt><a name="index-sum-1"></a><u>Команда MGL:</u> <b>sum</b><i> res dat 'dir'</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> результат суммирования <var>dat</var> вдоль направления(ий) <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-max"></a>
+<p><a name="max"></a>
+</p><dl>
+<dt><a name="index-max-1"></a><u>Команда MGL:</u> <b>max</b><i> res dat 'dir'</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> максимальное значение <var>dat</var> вдоль направления(ий) <var>dir</var>.
+Gets array which is the maximal data values in given direction or direction(s).
+</p></dd></dl>
+
+<a name="index-min"></a>
+<p><a name="min"></a>
+</p><dl>
+<dt><a name="index-min-1"></a><u>Команда MGL:</u> <b>min</b><i> res dat 'dir'</i></dt>
+<dd><p>Возвращает в массиве данных <var>res</var> минимальное значение <var>dat</var> вдоль направления(ий) <var>dir</var>.
+</p></dd></dl>
+
+<a name="index-resize"></a>
+<p><a name="resize"></a>
+</p><dl>
+<dt><a name="index-resize-1"></a><u>Команда MGL:</u> <b>resize</b><i> res dat <code>mx [my=1 mz=1]</code></i></dt>
+<dd><p>Возвращает массив данных <var>res</var> размером <var>mx</var>, <var>my</var>, <var>mz</var> со значениями полученными интерполяцией значений массива <var>dat</var>.
+</p></dd></dl>
+
+<a name="index-subdata"></a>
+<p><a name="subdata"></a>
+</p><dl>
+<dt><a name="index-subdata-1"></a><u>Команда MGL:</u> <b>subdata</b><i> res dat <code>xx [yy=: zz=:]</code></i></dt>
+<dd><p>Возвращает в <var>res</var> подмассив массива данных <var>dat</var> с фиксированными значениями индексов с положительными значениями. Например, <code>subdata a b : 2</code> выделяет третью строку (индексы начинаются с нуля), <code>subdata a b 4 :</code> выделяет 5-ую колонку, <code>subdata a b : : 3</code> выделяет 4-ый срез и т.д.
+</p></dd></dl>
+
+<a name="index-trace"></a>
+<p><a name="trace"></a>
+</p><dl>
+<dt><a name="index-trace-1"></a><u>Команда MGL:</u> <b>trace</b><i> res dat</i></dt>
+<dd><p>Возвращает массив <var>ref</var> диагональных элементов <var>dat</var>[i,i] (для 2D данных) или <var>dat</var>[i,i,i] (для 3D данных) где i=0...nx-1. В 1D случае возвращается сам массив данных <var>dat</var>. Размеры массива данных должен быть <var>dat</var>.ny, <var>dat</var>.nz &gt;= <var>dat</var>.nx или <var>dat</var>.ny, <var>dat</var>.nz = 1.
+</p></dd></dl>
+
+<a name="index-transform"></a>
+<p><a name="transform"></a>
+</p><dl>
+<dt><a name="index-transform-1"></a><u>Команда MGL:</u> <b>transform</b><i> dat 'type' real imag</i></dt>
+<dd><p>Выполняет интегральное преобразование комплексных данных <var>real</var>, <var>imag</var> в выбранном направлении и возвращает модуль результата в <var>res</var>. Порядок и тип преобразований задается строкой <var>type</var>: первый символ для x-направления, второй для y-направления, третий для z-направления. Возможные символы: &lsquo;<samp>f</samp>&rsquo; &ndash; прямое преобразование Фурье, &lsquo;<samp>i</samp>&rsquo; &ndash; обратное преобразование Фурье, &lsquo;<samp>s</samp>&rsquo; &ndash; синус преобразование, &lsquo;<samp>c</samp>&rsquo; &ndash; косинус преобразование, &lsquo;<samp>h</samp>&rsquo; &ndash; преобразование Ханкеля, &lsquo;<samp>n</samp>&rsquo; или &lsquo;<samp> </samp>&rsquo; &ndash; нет преобразования.
+</p></dd></dl>
+
+<a name="index-transforma"></a>
+<p><a name="transforma"></a>
+</p><dl>
+<dt><a name="index-transforma-1"></a><u>Команда MGL:</u> <b>transforma</b><i> dat 'type' ampl phase</i></dt>
+<dd><p>Аналогично предыдущему с заданными амплитудой <var>ampl</var> и фазой <var>phase</var> комплексных чисел.
+</p></dd></dl>
+
+<a name="index-stfad"></a>
+<p><a name="stfad"></a>
+</p><dl>
+<dt><a name="index-stfad-1"></a><u>Команда MGL:</u> <b>stfad</b><i> res real imag <code>dn</code> ['dir'='x']</i></dt>
+<dd><p>Выполняет оконное преобразование Фурье длиной <var>dn</var> для комплексных данных <var>real</var>, <var>imag</var> и возвращает модуль результата в <var>res</var>. Например, для <var>dir</var>=&lsquo;<samp>x</samp>&rsquo; результат будет иметь размер {int(nx/dn), dn, ny} и будет равен <em>res[i,j,k]=|\sum_d^dn exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn</em>.
+</p></dd></dl>
+
+<a name="index-pde"></a>
+<p><a name="pde"></a>
+</p><dl>
+<dt><a name="index-pde-1"></a><u>Команда MGL:</u> <b>pde</b><i> res 'ham' ini_re ini_im [<code>dz=0.1 k0=100</code>]</i></dt>
+<dd><p>Решает уравнение в частных производных du/dz = i*k0*<var>ham</var>(p,q,x,y,z,|u|)[u], где p=-i/k0*d/dx, q=-i/k0*d/dy &ndash; псевдо-дифференциальные операторы. Параметры <var>ini_re</var>, <var>ini_im</var> задают начальное распределение поля. Координаты в уравнении и в решении полагаются в диапазоне осей координат. Замечу, что внутри этот диапазон увеличивается в 3/2 раза для уменьшения отражения от границ расчетного интервала. Параметр <var>dz</var> задает шаг по эволюционной координате z. В данный момент использован упрощенный алгоритм, когда все &ldquo;смешанные&rdquo; члена (типа &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) исключаются. Например, в 2D случае это функции типа <em>ham = f(p,z) + g(x,z,u)</em>. При этом допускаются коммутирующие комбинации (типа &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy). Переменная &lsquo;<samp>u</samp>&rsquo; используется для обозначения амплитуды поля |u|. Это позволяет решать нелинейные задачи &ndash; например, нелинейное уравнение Шредингера <code>ham='p^2+q^2-u^2'</code>. Также можно указать мнимую часть для поглощения (типа <code>ham = 'p^2+i*x*(x&gt;0)'</code>), но только если зависимость от &lsquo;<samp>i</samp>&rsquo; линейная, т.е. <em>ham = hre+i*him</em>. См. раздел <a href="mgl_ru_3.html#PDE-sample">PDE &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-ray"></a>
+<p><a name="ray"></a>
+</p><dl>
+<dt><a name="index-ray-1"></a><u>Команда MGL:</u> <b>ray</b><i> res 'ham' <code>x0 y0 z0 p0 q0 v0 [dt=0.1 tmax=10]</code></i></dt>
+<dd><p>Решает систему геометрооптических уравнений d<em>r</em>/dt = d <var>ham</var>/d<em>p</em>, d<em>p</em>/dt = -d <var>ham</var>/d<em>r</em>. Это гамильтоновы уравнения для траектории частицы в 3D случае. Гамильтониан <var>ham</var> может зависеть от координат &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, импульсов &lsquo;<samp>p</samp>&rsquo;=px, &lsquo;<samp>q</samp>&rsquo;=py, &lsquo;<samp>v</samp>&rsquo;=pz и времени &lsquo;<samp>t</samp>&rsquo;: <em>ham = H(x,y,z,p,q,v,t)</em>. Начальная точка (при <code>t=0</code>) задается переменными {<var>x0</var>, <var>y0</var>, <var>z0</var>, <var>p0</var>, <var>q0</var>, <var>v0</var>}. Параметры <var>dt</var> и <var>tmax</var> задают шаг и максимальное время интегрирования. Результат <var>res</var> &ndash; массив {x,y,z,p,q,v,t} с размером {7 * int(<var>tmax</var>/<var>dt</var>+1) }. См. раздел <a href="mgl_ru_3.html#Beam-tracing-sample">Beam tracing &ndash; пример использования</a>, для примеров кода и графика.
+</p></dd></dl>
+
+<a name="index-qo2d"></a>
+<p><a name="qo2d"></a>
+</p><dl>
+<dt><a name="index-qo2d-1"></a><u>Команда MGL:</u> <b>qo2d</b><i> res 'ham' ini_re ini_im ray [<code>r=1 k0=100</code> xx=0 yy=0]</i></dt>
+<dd><p>Решает уравнение в частных производных du/dt = i*k0*<var>ham</var>(p,q,x,y,|u|)[u] в сопровождающей системе координат, где p=-i/k0*d/dx, q=-i/k0*d/dy &ndash; псевдо-дифференциальные операторы. Параметры <var>ini_re</var>, <var>ini_im</var> задают начальное распределение поля. Параметр <var>ray</var> задает опорный луч для сопровождающей системы координат. Можно использовать луч найденный с помощью <code>ray</code>. Опорный луч должен быть достаточно гладкий, чтобы система координат была однозначной и для исключения ошибок интегрирования. Если массивы <var>xx</var> и <var>yy</var> указаны, то в них записываются декартовы координаты для каждой точки найденного решения. См. также <a href="#pde">pde</a>. См. раздел <a href="mgl_ru_3.html#Beam-tracing-sample">Beam tracing &ndash; пример использования</a>, для примеров кода и графика. 
+</p></dd></dl>
+
+<a name="index-jacobian"></a>
+<p><a name="jacobian"></a>
+</p><dl>
+<dt><a name="index-jacobian-1"></a><u>Команда MGL:</u> <b>jacobian</b><i> res xdat ydat [zdat=0]</i></dt>
+<dd><p>Вычисляет якобиан преобразования {i,j,k} в {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>}, где координаты {i,j,k} полагаются нормированными в интервал [0,1]. Якобиан находится по формуле det||<em>dr_\alpha/d\xi_\beta</em>||, где <em>r</em>={<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} и <em>\xi</em>={i,j,k}. Все размерности всех массивов должны быть одинаковы. Данные должны быть трехмерными если указаны все 3 массива {<var>xdat</var>,<var>ydat</var>,<var>zdat</var>} или двумерными если только 2 массива {<var>xdat</var>,<var>ydat</var>}.
+</p></dd></dl>
+
+
+
+<hr size="6">
+<a name="Change-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Make-another-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Operators" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_0437_043ce_043de_043d_0438e-_0434_0430_043d_043d_044b_0445"></a>
+<h2 class="section">1.22 Изменение данных</h2>
+
+<p>Эти команды изменяют данные вдоль заданного направления(ий) типа например дифференцирования, интегрирования и т.д. Направление указывается строкой <var>dir</var>, которая может содержать символы &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; и/или &lsquo;<samp>z</samp>&rsquo;, вдоль которых изменения будут применены.
+</p>
+<a name="index-cumsum"></a>
+<p><a name="cumsum"></a>
+</p><dl>
+<dt><a name="index-cumsum-1"></a><u>Команда MGL:</u> <b>cumsum</b><i> dat 'dir'</i></dt>
+<dd><p>Суммирует с накоплением в выбранном направлении(ях).
+</p></dd></dl>
+<a name="index-integrate"></a>
+<p><a name="integrate"></a>
+</p><dl>
+<dt><a name="index-integrate-1"></a><u>Команда MGL:</u> <b>integrate</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет интегрирование (подобно суммированию с накоплением) в выбранном направлении(ях).
+</p></dd></dl>
+<a name="index-diff"></a>
+<p><a name="diff"></a>
+</p><dl>
+<dt><a name="index-diff-1"></a><u>Команда MGL:</u> <b>diff</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет дифференцирование в выбранном направлении(ях).
+</p></dd></dl>
+<dl>
+<dt><a name="index-diff-2"></a><u>Команда MGL:</u> <b>diff</b><i> dat xdat ydat [zdat=0]</i></dt>
+<dd><p>Выполняет дифференцирование данных <var>dat</var>, параметрически зависящих от координат, в направлении <var>xdat</var> с <var>ydat</var>, <var>zdat</var>=constant. Параметр <var>zdat</var> может быть опущен, что соответствует 2D случаю. Используются следующие формулы (2D случай): <em>da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j)</em>, где <em>a_i=da/di, a_j=da/dj</em> обозначает дифференцирование вдоль 1-ой и 2-ой размерности. Похожие формулы используются и в 3D случае. Порядок аргументов можно менять &ndash; например, если данные a(i,j) зависят от координат {x(i,j), y(i,j)}, то обычная производная по &lsquo;<samp>x</samp>&rsquo; будет равна <code>diff a x y</code>, а обычная производная по &lsquo;<samp>y</samp>&rsquo; будет равна <code>diff a y x</code>.
+</p></dd></dl>
+
+<a name="index-diff2"></a>
+<p><a name="diff2"></a>
+</p><dl>
+<dt><a name="index-diff2-1"></a><u>Команда MGL:</u> <b>diff2</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет двойное дифференцирование (как в операторе Лапласа) в выбранном направлении(ях).
+</p></dd></dl>
+
+<a name="index-sinfft"></a>
+<p><a name="sinfft"></a>
+</p><dl>
+<dt><a name="index-sinfft-1"></a><u>Команда MGL:</u> <b>sinfft</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет синус преобразование в выбранном направлении(ях). Синус преобразование есть <em>\sum a_i \sin(k i)</em>.
+</p></dd></dl>
+<a name="index-cosfft"></a>
+<p><a name="cosfft"></a>
+</p><dl>
+<dt><a name="index-cosfft-1"></a><u>Команда MGL:</u> <b>cosfft</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет косинус преобразование в выбранном направлении(ях). Синус преобразование есть <em>\sum a_i \cos(k i)</em>.
+</p></dd></dl>
+<a name="index-hankel"></a>
+<p><a name="hankel"></a>
+</p><dl>
+<dt><a name="index-hankel-1"></a><u>Команда MGL:</u> <b>hankel</b><i> dat 'dir'</i></dt>
+<dd><p>Выполняет преобразование Ханкеля в выбранном направлении(ях). Преобразование Ханкеля есть <em>\sum a_i J_0(k i)</em>.
+</p></dd></dl>
+
+
+<a name="index-swap"></a>
+<p><a name="swap"></a>
+</p><dl>
+<dt><a name="index-swap-1"></a><u>Команда MGL:</u> <b>swap</b><i> dat 'dir'</i></dt>
+<dd><p>Меняет местами левую и правую части данных в выбранном направлении(ях). Полезно для отображения результата FFT.
+</p></dd></dl>
+<a name="index-roll"></a>
+<p><a name="roll"></a>
+</p><dl>
+<dt><a name="index-roll-1"></a><u>Команда MGL:</u> <b>roll</b><i> dat 'dir' num</i></dt>
+<dd><p>Сдвигает данные на <var>num</var> ячеек в выбранном направлении(ях). Соответствует замене индекса на <var>i</var>-&gt;(<var>i</var>+<var>num</var>)%<var>n</var>.
+</p></dd></dl>
+
+<a name="index-mirror"></a>
+<p><a name="mirror"></a>
+</p><dl>
+<dt><a name="index-mirror-1"></a><u>Команда MGL:</u> <b>mirror</b><i> dat 'dir'</i></dt>
+<dd><p>Отражает данные в выбранном направлении(ях). Соответствует замене индекса на <var>i</var>-&gt;<var>n</var>-<var>i</var>.
+</p></dd></dl>
+
+<a name="index-sew"></a>
+<p><a name="sew"></a>
+</p><dl>
+<dt><a name="index-sew-1"></a><u>Команда MGL:</u> <b>sew</b><i> dat ['dir'='xyz' <code>da=2*pi</code>]</i></dt>
+<dd><p>Удаляет скачки данных (например, скачки фазы после обратных тригонометрических функций) с периодом <var>da</var> в выбранном направлении(ях).
+</p></dd></dl>
+
+<a name="index-smooth"></a>
+<p><a name="smooth"></a>
+</p><dl>
+<dt><a name="index-smooth-1"></a><u>Команда MGL:</u> <b>smooth</b><i> data <code>type</code> ['dir'='xyz']</i></dt>
+<dd><p>Сглаживает данные в выбранном направлении(ях) методом <var>type</var>. Сейчас поддерживаются 4 метода: <code>0</code> ничего не делает, <code>1</code> линейное усреднение по 3 точкам, <code>2</code> линейное усреднение по 5 точкам, <code>3</code> квадратичное усреднение по 5 точкам.
+</p></dd></dl>
+
+<a name="index-envelop"></a>
+<p><a name="envelop"></a>
+</p><dl>
+<dt><a name="index-envelop-1"></a><u>Команда MGL:</u> <b>envelop</b><i> dat ['dir'='x']</i></dt>
+<dd><p>Находит огибающую данных в выбранном направлении. Только одно направление может быть выбрано за раз.
+</p></dd></dl>
+
+<a name="index-normsl"></a>
+<p><a name="normsl"></a>
+</p><dl>
+<dt><a name="index-normsl-1"></a><u>Команда MGL:</u> <b>normsl</b><i> dat <code>v1 v2</code> ['dir'='z' <code>keep=on sym=off</code>]</i></dt>
+<dd><p>Нормирует данные срез-за-срезом в выбранном направлении <var>dir</var> в интервал [<var>v1</var>,<var>v2</var>]. Если <var>sym</var>=<code>on</code>, то используется симметричный интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Если <var>keep</var>=<code>on</code>, то максимальное значение k-го среза ограничено величиной
+<em>\sqrt\sum a_ij(k)/\sum a_ij(0)</em>.
+</p></dd></dl>
+
+<a name="index-norm"></a>
+<p><a name="norm"></a>
+</p><dl>
+<dt><a name="index-norm-1"></a><u>Команда MGL:</u> <b>norm</b><i> dat <code>v1 v2 [sym=off dim=0]</code></i></dt>
+<dd><p>Нормирует данные в интервал [<var>v1</var>,<var>v2</var>]. Если <var>sym</var>=<code>on</code>, то используется симметричный интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Изменения применяются только к срезам &gt;=<var>dim</var>.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Operators"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Change-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Program-flow" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_043fe_0440_0430_0442_043e_0440_044b"></a>
+<h2 class="section">1.23 Операторы</h2>
+
+<a name="index-multo"></a>
+<p><a name="multo"></a>
+</p><dl>
+<dt><a name="index-multo-1"></a><u>Команда MGL:</u> <b>multo</b><i> dat dat2</i></dt>
+<dd><p>Поэлементно умножает массив <var>dat</var> на <var>dat2</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-multo-2"></a><u>Команда MGL:</u> <b>multo</b><i> dat <code>val</code></i></dt>
+<dd><p>Умножает каждый элемент на число.
+</p></dd></dl>
+
+<a name="index-divto"></a>
+<p><a name="divto"></a>
+</p><dl>
+<dt><a name="index-divto-1"></a><u>Команда MGL:</u> <b>divto</b><i> dat dat2</i></dt>
+<dd><p>Поэлементно делит массив <var>dat</var> на <var>dat2</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-divto-2"></a><u>Команда MGL:</u> <b>divto</b><i> dat <code>val</code></i></dt>
+<dd><p>Делит каждый элемент на число.
+</p></dd></dl>
+
+<a name="index-addto"></a>
+<p><a name="addto"></a>
+</p><dl>
+<dt><a name="index-addto-1"></a><u>Команда MGL:</u> <b>addto</b><i> dat dat2</i></dt>
+<dd><p>Поэлементно прибавляет <var>dat2</var> к массиву <var>dat</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-addto-2"></a><u>Команда MGL:</u> <b>addto</b><i> dat <code>val</code></i></dt>
+<dd><p>Прибавляет число к каждому элементу.
+</p></dd></dl>
+
+<a name="index-subto"></a>
+<p><a name="subto"></a>
+</p><dl>
+<dt><a name="index-subto-1"></a><u>Команда MGL:</u> <b>subto</b><i> dat dat2</i></dt>
+<dd><p>Поэлементно вычитает <var>dat2</var> из массива <var>dat</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-subto-2"></a><u>Команда MGL:</u> <b>subto</b><i> dat <code>val</code></i></dt>
+<dd><p>Вычитает число из каждого элемента.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Program-flow"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Operators" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Command-options" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_043eg_0440_0430_043c_043c_0438_0440_043e_0432_0430_043d_0438e"></a>
+<h2 class="section">1.24 Программирование</h2>
+
+<p>Эти команды управляют порядком выполнения других команд (условия, циклы, подпрограммы), (пере-)определяют аргументы скрипта и пр.
+</p>
+<a name="index-chdir"></a>
+<p><a name="chdir"></a>
+</p><dl>
+<dt><a name="index-chdir-1"></a><u>Команда MGL:</u> <b>chdir</b><i> 'path'</i></dt>
+<dd><p>Переходит в папку <var>path</var>.
+</p></dd></dl>
+
+<a name="index-define"></a>
+<p><a name="define"></a>
+</p><dl>
+<dt><a name="index-define-1"></a><u>Команда MGL:</u> <b>define</b><i> $N smth</i></dt>
+<dd><p>Задает <var>N</var>-ый аргумент скрипта равным <var>smth</var>. Отмечу, что <var>smth</var> используется как есть (с символами &lsquo;<samp>'</samp>&rsquo; если присутствуют). Выполняется только подстановка других макроопределений $0...$9, $a...$z. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<dl>
+<dt><a name="index-define-2"></a><u>Команда MGL:</u> <b>define</b><i> name smth</i></dt>
+<dd><p>Определяет константу (скаляр) с именем <code>name</code> и числовым значением <code>smth</code>. Позднее она может быть использована как обычное число.
+</p></dd></dl>
+<a name="index-defchr"></a>
+<p><a name="defchr"></a>
+</p><dl>
+<dt><a name="index-defchr-1"></a><u>Команда MGL:</u> <b>defchr</b><i> $N smth</i></dt>
+<dd><p>Задает <var>N</var>-ый аргумент скрипта равным символу с UTF кодом <var>smth</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<a name="index-defnum"></a>
+<p><a name="defnum"></a>
+</p><dl>
+<dt><a name="index-defnum-1"></a><u>Команда MGL:</u> <b>defnum</b><i> $N smth</i></dt>
+<dd><p>Задает <var>N</var>-ый аргумент скрипта равным числовому значению <var>smth</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<a name="index-defpal"></a>
+<p><a name="defpal"></a>
+</p><dl>
+<dt><a name="index-defpal-1"></a><u>Команда MGL:</u> <b>defpal</b><i> $N smth</i></dt>
+<dd><p>Задает <var>N</var>-ый аргумент скрипта равным символу палитры с индексом, найденным из <var>smth</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+
+<a name="index-call"></a>
+<p><a name="call"></a>
+</p><dl>
+<dt><a name="index-call-1"></a><u>Команда MGL:</u> <b>call</b><i> 'fname' [ARG1 ARG2 ... ARG9]</i></dt>
+<dd><p>Переходит к выполнению (вызывает) подпрограммы <var>fname</var> (или внешнего скрипта, если функция не была найдена). Опциональные аргументы передаются в подпрограмму. См. также <a href="#func">func</a>.
+</p></dd></dl>
+<a name="index-func"></a>
+<p><a name="func"></a>
+</p><dl>
+<dt><a name="index-func-1"></a><u>Команда MGL:</u> <b>func</b><i> 'fname' [narg=0]</i></dt>
+<dd><p>Определяет подпрограмму с именем <var>fname</var> и задает число требуемых аргументов. Аргументы будут помещены в параметры скрипта $1, $2, ... $9. Отмечу, что выполнение основной программы должно быть остановлено до начала определений подпрограмм. См. также <a href="#stop">stop</a>,  <a href="#return">return</a>.
+</p></dd></dl>
+<a name="index-return"></a>
+<p><a name="return"></a>
+</p><dl>
+<dt><a name="index-return-1"></a><u>Команда MGL:</u> <b>return</b></dt>
+<dd><p>Возвращается из подпрограммы.
+</p></dd></dl>
+
+
+<a name="index-if"></a>
+<p><a name="if"></a>
+</p><dl>
+<dt><a name="index-if-1"></a><u>Команда MGL:</u> <b>if</b><i> dat 'cond'</i></dt>
+<dd><p>Начинает блок команд, выполняемый если каждый элемент <var>dat</var> удовлетворяет условию <var>cond</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-if-2"></a><u>Команда MGL:</u> <b>if</b><i> <code>val</code></i></dt>
+<dd><p>Начинает блок команд, выполняемый если <code>val</code> не ноль.
+</p></dd></dl>
+<a name="index-elseif"></a>
+<p><a name="elseif"></a>
+</p><dl>
+<dt><a name="index-elseif-1"></a><u>Команда MGL:</u> <b>elseif</b><i> dat 'cond'</i></dt>
+<dd><p>Начинает блок команд, выполняемый если предыдущий <code>if</code> или <code>elseif</code> не был выполнен и каждый элемент <var>dat</var> удовлетворяет условию <var>cond</var>.
+</p></dd></dl>
+<dl>
+<dt><a name="index-elseif-2"></a><u>Команда MGL:</u> <b>elseif</b><i> <code>val</code></i></dt>
+<dd><p>Начинает блок команд, выполняемый если предыдущий <code>if</code> или <code>elseif</code> не был выполнен и <code>val</code> не ноль.
+</p></dd></dl>
+<a name="index-else"></a>
+<p><a name="else"></a>
+</p><dl>
+<dt><a name="index-else-1"></a><u>Команда MGL:</u> <b>else</b></dt>
+<dd><p>Начинает блок команд, выполняемый если предыдущий <code>if</code> или <code>elseif</code> не был выполнен.
+</p></dd></dl>
+<a name="index-endif"></a>
+<p><a name="endif"></a>
+</p><dl>
+<dt><a name="index-endif-1"></a><u>Команда MGL:</u> <b>endif</b></dt>
+<dd><p>Заканчивает определение блока <code>if/elseif/else</code>.
+</p></dd></dl>
+
+<a name="index-for"></a>
+<p><a name="for"></a>
+</p><dl>
+<dt><a name="index-for-1"></a><u>Команда MGL:</u> <b>for</b><i> $N <code>v1 v2 [dv=1]</code></i></dt>
+<dd><p>Начинает блок команд, выполняемый в цикле с $<var>N</var>-ым аргументом изменяющимся от <var>v1</var> до <var>v2</var> с шагом <var>dv</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<dl>
+<dt><a name="index-for-2"></a><u>Команда MGL:</u> <b>for</b><i> $N dat</i></dt>
+<dd><p>Начинает блок команд, выполняемый в цикле с $<var>N</var>-ым аргументом пробегающим значения массива <var>dat</var>. Здесь <var>N</var> это цифра (0...9) или буква (a...z).
+</p></dd></dl>
+<a name="index-next"></a>
+<p><a name="next"></a>
+</p><dl>
+<dt><a name="index-next-1"></a><u>Команда MGL:</u> <b>next</b></dt>
+<dd><p>Заканчивает блок цикла <code>for</code>.
+</p></dd></dl>
+
+<a name="index-once"></a>
+<p><a name="once"></a>
+</p><dl>
+<dt><a name="index-once-1"></a><u>Команда MGL:</u> <b>once</b><i> <code>val</code></i></dt>
+<dd><p>Определяет код (между <code>once on</code> и <code>once off</code>) который будет выполнен только один раз. Полезно для работы с большими данными в программах типа UDAV.
+</p></dd></dl>
+<a name="index-stop"></a>
+<p><a name="stop"></a>
+</p><dl>
+<dt><a name="index-stop-1"></a><u>Команда MGL:</u> <b>stop</b></dt>
+<dd><p>Останавливает выполнение скрипта.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Command-options"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Program-flow" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Suffixes" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_043fc_0438_0438-_043a_043e_043c_0430_043d_0434"></a>
+<h2 class="section">1.25 Опции команд</h2>
+
+<p>Опции команд позволяют легко настроить вид отдельного графика не меняя глобальных настроек для все рисунка. Опции указываются после команды. Каждая опция отделяется от предыдущей символом &lsquo;<samp>;</samp>&rsquo;. Опции работают так, что запоминают текущие настройки рисунка, применяют собственные настройки, выполняют команду и возвращают глобальные настройки обратно. Поэтому использование опций для команд обработки данных или настройки графика бесполезно.
+</p>
+<p>Наиболее часто используемые опции &ndash; <code>xrange, yrange, zrange</code>, устанавливающие границы изменения осей координат (и тем самым автоматических массивов). Например, команда <code>plot y; xrange 0.1 0.9</code> построит кривую с x-координатой равно распределенной в интервале 0.1 ... 0.9, а не вдоль текущей оси x.
+</p>
+<p>Полный список опций:
+<a name="index-alpha-2"></a>
+<a name="index-alphadef-2"></a>
+</p><dl>
+<dt><a name="index-alpha-3"></a><u>Опция MGL:</u> <b>alpha</b><i> <code>val</code></i></dt>
+<dt><a name="index-alphadef-3"></a><u>Опция MGL:</u> <b>alphadef</b><i> <code>val</code></i></dt>
+<dd><p>Задает величину прозрачности поверхности. Значение должно быть в диапазоне [0, 1]. См. также <a href="#alphadef">alphadef</a>
+</p></dd></dl>
+<a name="index-ambient-2"></a>
+<dl>
+<dt><a name="index-ambient-3"></a><u>Опция MGL:</u> <b>ambient</b><i> <code>val</code></i></dt>
+<dd><p>Задает яркость фонового освещения. Значение должно быть в диапазоне [0, 1]. См. также <a href="#ambient">ambient</a>
+</p></dd></dl>
+<a name="index-crange-3"></a>
+<dl>
+<dt><a name="index-crange-4"></a><u>Опция MGL:</u> <b>crange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Задает границы цветовой шкалы. См. также <a href="#crange">crange</a>
+</p></dd></dl>
+<a name="index-xrange-3"></a>
+<dl>
+<dt><a name="index-xrange-4"></a><u>Опция MGL:</u> <b>xrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Задает границы изменения координаты x. См. также <a href="#xrange">xrange</a>
+</p></dd></dl>
+<a name="index-yrange-3"></a>
+<dl>
+<dt><a name="index-yrange-4"></a><u>Опция MGL:</u> <b>yrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Задает границы изменения координаты y. См. также <a href="#yrange">yrange</a>
+</p></dd></dl>
+<a name="index-zrange-3"></a>
+<dl>
+<dt><a name="index-zrange-4"></a><u>Опция MGL:</u> <b>zrange</b><i> <code>val1 val2</code></i></dt>
+<dd><p>Задает границы изменения координаты z. См. также <a href="#zrange">zrange</a>
+</p></dd></dl>
+<a name="index-cut-4"></a>
+<dl>
+<dt><a name="index-cut-5"></a><u>Опция MGL:</u> <b>cut</b><i> <code>val</code></i></dt>
+<dd><p>Задает обрезание точек за пределами осей координат. См. также <a href="#cut">cut</a>
+</p></dd></dl>
+<a name="index-fontsize"></a>
+<dl>
+<dt><a name="index-fontsize-1"></a><u>Опция MGL:</u> <b>fontsize</b><i> <code>val</code></i></dt>
+<dd><p>Задает размер текста. См. также <a href="#font">font</a>
+</p></dd></dl>
+<a name="index-marksize-2"></a>
+<dl>
+<dt><a name="index-marksize-3"></a><u>Опция MGL:</u> <b>marksize</b><i> <code>val</code></i></dt>
+<dd><p>Задает размер маркеров. См. также <a href="#marksize">marksize</a>
+</p></dd></dl>
+<a name="index-meshnum-2"></a>
+<dl>
+<dt><a name="index-meshnum-3"></a><u>Опция MGL:</u> <b>meshnum</b><i> <code>val</code></i></dt>
+<dd><p>Задает ориентировочное число линий, стрелок, ячеек и пр. См. также <a href="#meshnum">meshnum</a>
+</p></dd></dl>
+<a name="index-legend-3"></a>
+<dl>
+<dt><a name="index-legend-4"></a><u>Опция MGL:</u> <b>legend</b><i> 'txt'</i></dt>
+<dd><p>Добавляет строку &rsquo;txt&rsquo; во внутренний массив записей легенды. Стиль линии и маркера аргумента последней вызванной команды построения <a href="#g_t1D-plotting">1D графики</a>. См. также <a href="#legend">legend</a>
+</p></dd></dl>
+
+<hr size="6">
+<a name="Suffixes"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Command-options" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Utilities" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0421_0443_0444_0444_0438_043a_0441_044b-_043fe_0440e_043ce_043d_043d_044b_0445"></a>
+<h2 class="section">1.26 Суффиксы переменных</h2>
+
+<p>Суффиксы позволяют быстро получить числовую характеристику (размер, максимальное или минимальное значение, сумму элементов и т.д.) массива данных и использовать ее как число (скаляр) в аргументах. Суффиксы начинаются с точки &lsquo;<samp>.</samp>&rsquo; сразу после (без пробелов) имени переменной и временного массива. Например, <code>a.nx</code> даст размер массива <var>a</var> по оси х, <code>b(1).max</code> даст максимальное значение второй строки массива <var>b</var>, <code>(c(:,0)^2).sum</code> даст сумму квадратов элементов первой колонки массива <var>c</var> и т.д.
+</p>
+<p>Полный список суффиксов:
+</p><dl compact="compact">
+<dt> <strong>nx, ny, nz</strong></dt>
+<dd><p>Размер массива в направлении x, y, z соответственно.
+</p></dd>
+<dt> <strong>max</strong></dt>
+<dd><p>Максимальное значение массива.
+</p></dd>
+<dt> <strong>min</strong></dt>
+<dd><p>Минимальное значение массива.
+</p></dd>
+<dt> <strong>sum</strong></dt>
+<dd><p>Сумма элементов массива.
+</p></dd>
+<dt> <strong>a</strong></dt>
+<dd><p>Первый элемент массива (элемент с индексами 0,0,0).
+</p></dd>
+<dt> <strong>fst</strong></dt>
+<dd><p>Первое не нулевое значение массива.
+</p></dd>
+<dt> <strong>lst</strong></dt>
+<dd><p>Последнее не нулевое значение массива.
+</p></dd>
+<dt> <strong>mx, my, mz</strong></dt>
+<dd><p>Положение максимума в направлении x, y, z соответственно.
+</p></dd>
+<dt> <strong>ax, ay, az, aa</strong></dt>
+<dd><p>Положение центра масс в направлении x, y, z соответственно или среднее значение массива.
+</p></dd>
+<dt> <strong>wx, wy, wz, wa</strong></dt>
+<dd><p>Ширина в направлении x, y, z соответственно или дисперсия элементов массива.
+</p></dd>
+<dt> <strong>sx, sy, sz, sa</strong></dt>
+<dd><p>Асимметрия в направлении x, y, z соответственно или элементов массива.
+</p></dd>
+<dt> <strong>kx, ky, kz, ka</strong></dt>
+<dd><p>Эксцесс в направлении x, y, z соответственно или элементов массива.
+</p></dd>
+</dl>
+
+<hr size="6">
+<a name="Utilities"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Suffixes" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#MGL-interface" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0423_0442_0438_043b_0438_0442_044b-_0434_043bya-MGL"></a>
+<h2 class="section">1.27 Утилиты для MGL</h2>
+
+<p>MathGL содержит несколько программ для работы со скриптами MGL. Есть утилита для сохранения в растровое (<code>mgl2png</code>, <code>mgl2gif</code>) или векторное (<code>mgl2eps</code>, <code>mgl2svg</code>) изображения. Программа <code>mglview</code> показывает результат выполнения скрипта MGL и позволяет вращать и настраивать график. Также можно транслировать MGL скрипт в C++ файл с помощью программы <code>mgl2cpp</code>.
+</p>
+<p>Все эти программы имеют схожий набор аргументов. Первым идет имя скрипта, а вторым идет имя выходного файлы (может быть опущено), последние аргументы &ndash; опции скрипта и программы. К опциям относятся параметры скрипта (это <code>$0, $1, ... $9</code>) и настройки локали. Параметры скрипта имеют формат &lsquo;<samp>-Nval</samp>&rsquo;, где N=0,1...9 &ndash; номер параметра, val &ndash; его значние. Например, опция &lsquo;<samp>-1test</samp>&rsquo; заменит <code>$1</code> на &lsquo;<samp>test</samp>&rsquo; в скрипте. Опция -Lval устанавливает локаль в значение val. Например, &lsquo;<samp>-Lutf8</samp>&rsquo; будет использовать UTF-8 в скрипте.
+</p>
+<p>Также можно создавать анимированные изображения GIF или набор JPEG файлов с именами &lsquo;<samp>frameNNNN.jpg</samp>&rsquo; (где &lsquo;<samp>NNNN</samp>&rsquo; &ndash; номер кадра). Для этого в скрипте надо указать параметры анимации для каждого кадра (строками с коментариями <code>##a val</code> или опциями &lsquo;<samp>-Aval</samp>&rsquo;) или в цикле (строкой с комментарием <code>##с v1 v2 [dv]</code> или опцию &lsquo;<samp>-Cn1:n2</samp>&rsquo;), которые будут подставлены в качестве параметра <code>$0</code> при последовательном вызове скрипта. Для сохранения кадров в JPEG просто добавьте команду <code>write ''</code> в конце скрипта.
+</p>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mgl_ru.html/mgl_ru_2.html b/texinfo/mgl_ru.html/mgl_ru_2.html
new file mode 100644
index 0000000..efe2978
--- /dev/null
+++ b/texinfo/mgl_ru.html/mgl_ru_2.html
@@ -0,0 +1,1271 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: 2. MathGL examples</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: 2. MathGL examples">
+<meta name="keywords" content="Язык MGL для версии 1.11: 2. MathGL examples">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Examples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_1.html#Utilities" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-usage" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru_1.html#MGL-interface" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="MathGL-examples"></a>
+<h1 class="chapter">2. MathGL examples</h1>
+
+<p>This chapter contain information about basic and advanced MathGL, hints and samples for all types of graphics. I recommend you read first 2 sections one after another and at least look on &ldquo;Hints&rdquo; section. Also I recommend you to look at <a href="mgl_ru_1.html#General-concepts">Основные принципы</a>. Sample code for some of these examples can be found in <a href="http://mathgl.sf.net/pictures.html">http://mathgl.sf.net/pictures.html</a> and in <a href="mgl_ru_3.html#Samples">Примеры использования MathGL</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Basic-usage">2.1 Basic usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Advanced-usage">2.2 Advanced usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-handling">2.3 Data handling</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-plotting">2.4 Data plotting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Hints">2.5 Hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Basic-usage"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Examples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Basic-usage-1"></a>
+<h2 class="section">2.1 Basic usage</h2>
+
+<p>MGL script can be used by several manners. Each has positive and negative sides:
+</p><ul>
+<li>
+<em>The using of MGL in UDAV.</em>
+
+<p>Positive side is the possibility to view the plot at once and to modify it, rotate, zoom or switch on transparency or lighting) by hand or by mouse. Negative sides are: the need of X-terminal.
+</p>
+</li><li>
+<em>Direct writing to file in bitmap or vector format without creation of graphical window.</em>
+
+<p>Positive aspects are: batch processing of similar data set, for example, a set of resulting data files for different calculation parameters), running from the console program, including the cluster calculation), fast and automated drawing, saving pictures for further analysis, or demonstration). Negative sides are: the usage of the external program for picture viewing. Also, the data plotting is non-visual. So, you have to imagine the picture, view angles, lighting and so on) before the plotting. I recommend to use graphical window for determining the optimal parameters of plotting on the base of some typical data set. And later use these parameters for batch processing in console program.
+</p>
+<p>In this case you can use a set of programs: <code>mgl2png</code>, <code>mgl2gif</code>, <code>mgl2eps</code>, <code>mgl2svg</code> or <code>mglview</code> for viewing.
+</p></li></ul>
+
+<p>The simplest script is
+</p><pre class="verbatim">box         # draw bounding box
+axis        # draw axis
+fplot 'x^3' # draw some function
+</pre>
+<p>Just type it in UDAV and press F5. Also you can save it in text file &lsquo;<samp>test.mgl</samp>&rsquo; and type in the console <code>mgl2png test.mgl</code> what produce file &lsquo;<samp>test.mgl.png</samp>&rsquo; with resulting picture.
+</p>
+<hr size="6">
+<a name="Advanced-usage"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Basic-usage" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Subplots" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Advanced-usage-1"></a>
+<h2 class="section">2.2 Advanced usage</h2>
+
+<p>Now I show several non-obvious features of MGL: several subplots in a single picture, curvilinear coordinates, text printing and so on. Generally you may miss this section at first reading, but I don&rsquo;t recommend it.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Subplots">2.2.1 Subplots</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axis-and-grids">2.2.2 Axis and grids</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Curvilinear-coordinates">2.2.3 Curvilinear coordinates</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-printing-example">2.2.4 Text printing example</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Subplots"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Advanced-usage" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axis-and-grids" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Subplots-1"></a>
+<h3 class="subsection">2.2.1 Subplots</h3>
+
+<p>Let me demonstrate possibilities of axes transformation. MathGL has the following functions: <code>SubPlot</code>, <code>InPlot</code>, <code>Aspect</code> and <code>Rotate</code>, see section <a href="mgl_ru_1.html#Transformation-matrix">Матрица преобразования</a>). The order of their calling is strictly determined. First, one changes the position of axes in image area, functions <code>SubPlot</code> and <code>InPlot</code>). After that one may rotate the plot, function <code>Rotate</code>). Finally, one may change aspects of axes, function <code>Aspect</code>). The following code illustrates the aforesaid it:
+</p><pre class="verbatim">subplot 2 2 0:box
+text -1 1.1 'Just box' 'L'
+inplot 0.2 0.5 0.7 1:box
+text 0 1.2 'Inplot example'
+
+subplot 2 2 1
+rotate 60 40:aspect 1 1 1
+box:text 1 1 1.5 'rotate only' 'R'
+
+subplot 2 2 2
+rotate 60 40:aspect 1 1 2
+box:text 0 0 2 'aspect and rotate'
+
+subplot 2 2 3
+rotate 60 40:aspect 1 2 2
+box:text 0 0 1.5 'Aspect in other direction'
+</pre><p>Here I used function <code>text</code> for printing the text in arbitrary position of picture, see section <a href="mgl_ru_1.html#Text-printing">Вывод текста</a>). Text coordinates and size are connected with axes. However, text coordinates may be everywhere, including the outside the bounding box. I shall show its features later in See section <a href="#Text-printing-example">Text printing example</a>.
+</p>
+<p>Note that several commands can be placed in a string if they are separated by &lsquo;<samp>:</samp>&rsquo; symbol.
+</p>
+<div class="float">
+<img src="../png/sample1.png" alt="../png/sample1">
+
+</div><p><strong>Example of several subplots on the single picture.
+</strong>
+</p>
+<hr size="6">
+<a name="Axis-and-grids"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Subplots" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Curvilinear-coordinates" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axis-and-grids-1"></a>
+<h3 class="subsection">2.2.2 Axis and grids</h3>
+
+<p>MathGL library can draw not only the bounding box but also the axes, grids, labels and so on. The limits of axes and their origin (the point of intersection) are determined by function <code>axis</code>. Also you can use <code>xrange, yrange, zrange</code> functions (see section <a href="mgl_ru_1.html#Axis-settings">Параметры осей координат</a>). Ticks on axis are specified by functions <code>xtick, ytick, ztick, ttick</code>. First argument the direction for each change will be applied. Second argument gives the step between ticks (if positive) or gives the number of ticks on the axis (if negative) or set to use logarithmic ticks (if zero). Third argument gives numbers of sub-ticks between ticks (default is zero). Last argument define the initial ticks position.
+</p>
+<p>Function <code>Axis</code> draws axes. Its textual string shows in which directions the axis or axes will be drawn (by default <code>'xyz'</code>, function draws axes in all directions). Function <code>Grid</code> draws grid perpendicularly to specified directions. Example of axes and grid drawing is:
+</p><pre class="verbatim">subplot 2 2 0
+xtick 0.4 3     # sets tick step to 0.5
+ytick 0.4 3     # and draws 3 subticks
+box             # should be after the ticks change
+axis 'xy': grid
+text 0 1.3 1 'axis and grid'
+
+xtick -5: ytick -5  # restore back
+subplot 2 2 1:rotate 60 40
+origin 0 0 0
+axis
+xlabel 'x' 1
+ylabel 'y' 1
+zlabel 'z' 1
+text 0 0 1.5 'axis and labels'
+
+subplot 2 2 2:rotate 60 40
+xtick 0.2: ytick 0.2: ztick 0.2 # too low step of ticks
+origin -1 -1 -1
+axis:grid
+text 0 0 1.5 'shift origin and add grid'
+text 0 0 1.2 '(note, too many ticks)'
+
+subplot 2 2 3:rotate 60 40
+xtick -6: ytick -6  # decrease the number of ticks
+axis 'yz'
+ylabel 'y axis'
+zlabel 'z axis'
+text 0 0 1.5 'remove x axis, and'
+text 0 0 1.2 'decrease number of ticks'
+</pre>
+<p>This example shows the importance of the correct choosing of the number of ticks on axis. If tick step is too small then its text may overlap and becomes unreadable. This code has the example of <code>Label</code> function. It draws label for axis in specified direction. The text position on axis is specified by third argument of <code>Label</code> function. If it is positive then then text is drawn near the axis maximum, if negative then the same takes place near the minimum of axis, if zero - then at the center of axis.
+</p>
+<div class="float">
+<img src="../png/sample2.png" alt="../png/sample2">
+
+</div><p><strong>Example of setting up axis range and axis ticks.
+</strong>
+</p>
+<hr size="6">
+<a name="Curvilinear-coordinates"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axis-and-grids" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-printing-example" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Curvilinear-coordinates-1"></a>
+<h3 class="subsection">2.2.3 Curvilinear coordinates</h3>
+
+
+<p>Now let use curvilinear coordinates. In difference from other systems of plot creation, MathGL uses textual formulas for connection of the old (data) and new (output) coordinates. This allows one to plot in arbitrary coordinates. The following code plots the line <var>y</var>=0, <var>z</var>=0 in Cartesian, polar, parabolic and spiral coordinates:
+</p><pre class="verbatim">new x 50: new y 50: new z 50
+fill y 0.5 0.5: fill x -1 1 # creates data arrays
+origin -1 1 -1
+
+subplot 2 2 0:rotate 60 40
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'cartesian'
+
+subplot 2 2 1:rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'cylindrical'
+
+subplot 2 2 2:rotate 60 40
+axis '2*y*x' 'y*y - x*x' ''
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'parabolic'
+
+subplot 2 2 3:rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
+plot x y z 'r2'
+axis: grid
+text 0 1.3 1 'spiral'
+</pre>
+<div class="float">
+<img src="../png/sample3.png" alt="../png/sample3">
+
+</div><p><strong>Example of curvilinear coordinates
+</strong>
+</p>
+
+<hr size="6">
+<a name="Text-printing-example"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Curvilinear-coordinates" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-usage" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-printing-example-1"></a>
+<h3 class="subsection">2.2.4 Text printing example</h3>
+
+<p>MathGL prints text by vector font. There are functions for manual specifying of text position (like <code>Puts</code>) and for its automatic selection (like <code>Label</code>, <code>legend</code> and so on). MathGL prints text always in specified position even if it lies outside the bounding box. The default size of font is specified by command <var>fontsize</var>. However, the actual size of output string depends on position of axes (depends on functions <code>SubPlot</code>, <code>InPlot</code>). The switching of the font style (italic, bold, wire and so on) can be done for the whole string (by function parameter) or inside the string. By default MathGL parses TeX-like commands for symbols and indexes (see see section <a href="mgl_ru_1.html#Font-styles">Стиль текста</a>). Example of MathGL font drawing is:
+</p><pre class="verbatim">text 0 1 'Text can be in ASCII and in Unicode'
+text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
+text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
+text 0 -0.2 'Easy to \a{overline} or \u{underline}'
+text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
+text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
+</pre>
+<div class="float">
+<img src="../png/sample4.png" alt="../png/sample4">
+
+</div><p><strong>Example of text printing with different font effects
+</strong>
+</p>
+<p>Another example demonstrate the features of TeX formula parsing.
+</p><pre class="verbatim">text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}', 0, -4
+</pre>
+<div class="float">
+<img src="../png/samplee.png" alt="../png/samplee">
+
+</div><p><strong>Example of TeX formula parsing
+</strong>
+</p>
+
+<hr size="6">
+<a name="Data-handling"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-printing-example" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Array-creation" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-handling-1"></a>
+<h2 class="section">2.3 Data handling</h2>
+
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Array-creation">2.3.1 Array creation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Data-changing">2.3.2 Data changing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Array-creation"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-handling" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-changing" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Array-creation-1"></a>
+<h3 class="subsection">2.3.1 Array creation</h3>
+
+<p>One can put numbers into the data instance by several ways. Let us do it for sinus function:
+</p><ul>
+<li>
+one can create array by <code>list</code> command
+<pre class="verbatim">list a 0 0.04 0.16 0.36 0.64 1
+</pre>
+</li><li>
+another way is to copy from &ldquo;inline&rdquo; array
+<pre class="verbatim">copy a [0,0.04,0.16,0.36,0.64,1]
+</pre>
+</li><li>
+next way is to fill the data by textual formula with the help of <code>modify</code> function
+<pre class="verbatim">new a 6
+modify a 'x^2'
+</pre>
+</li><li>
+or one may fill the array in some interval and modify it later
+<pre class="verbatim">new a 6
+fill a 0 1
+modify a 'u^2'
+</pre>
+</li><li>
+or fill the array using current axis range
+<pre class="verbatim">new a 6
+fill a '(x+1)^2/4'
+</pre>
+</li><li>
+finally it can be loaded from file
+<pre class="verbatim">new s 6: modify s 'x^2'
+save s 'sqr.dat'    # create file first
+read a 'sqr.dat'    # load it
+</pre>
+</li><li>
+at this one can read only part of data
+<pre class="verbatim">new s 6: modify s 'x^2'
+save s 'sqr.dat'    # create file first
+read a 'sqr.dat' 5  # load it
+</pre></li></ul>
+
+<p>Creation of 2d- and 3d-arrays is mostly the same. One can use direct data filling by <code>list</code> command
+</p><pre class="verbatim">list a 11 12 13 | 21 22 23 | 31 32 33
+</pre><p>or by inline arrays
+</p><pre class="verbatim">copy a [[11,12,13],[21,22,23],[31,32,33]]
+</pre><p>Also data can be filled by formula
+</p><pre class="verbatim">new z 30 40
+fill z 'sin(pi*x)*cos(pi*y)'
+</pre><p>or loaded from file.
+</p>
+<p>The only non-obvious thing here is using multidimensional arrays in C/C++, i.e. arrays defined like <code>float dat[40][30];</code>. Since, formaly this arrays element <code>dat[i]</code> can address the memory in arbitrary place you should use the proper function to convert such arrays to <code>mglData</code> object. For C++ this is functions like <code>mglData::Set(float **dat, int N1, int N2</code>. For C this is functions like <code>mgl_data_set_float2(HMDT d, const float **dat, int N1, int N2</code>. At this, you should keep in mind that <code>nx=N2</code> and <code>ny=N1</code> after conversion.
+</p>
+<hr size="6">
+<a name="Data-changing"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Array-creation" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-handling" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-changing-1"></a>
+<h3 class="subsection">2.3.2 Data changing</h3>
+
+<p>MathGL has functions for data processing: differentiating, integrating, smoothing and so on. Let us consider some examples. The simplest ones are integration and differentiation. The direction in which operation will be performed is specified by textual string, which may contain symbols &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo; or &lsquo;<samp>z</samp>&rsquo;. For example, the call of <code>diff a 'x'</code> will differentiate data along &lsquo;<samp>x</samp>&rsquo; direction; the call of <code>integrate a 'xy'</code> perform the double integration of data along &lsquo;<samp>x</samp>&rsquo; and &lsquo;<samp>y</samp>&rsquo; directions; the call of <code>diff2 a 'xyz'</code> will apply 3d Laplace operator to data and so on. Example of this operations on 2d array a=x*y is presented in code:
+</p><pre class="verbatim">new a 30 40: modify a 'x*y'
+axis 0 0 0 1 1 1
+subplot 2 2 0:rotate 60 40
+surf a: box
+text 0.7 1 1.2 'a(x,y)'
+subplot 2 2 1:rotate 60 40
+diff a 'x': surf a: box
+text 0.7 1 1.2 'da/dx'
+subplot 2 2 2:rotate 60 40
+integrate a 'xy': surf a: box
+text 0.7 1 1.2 '\int da/dx dxdy'
+subplot 2 2 3:rotate 60 40
+diff2 a 'y': surf a: box
+text 0.7 1 1.2 '\int {d^2}a/dxdy dx'
+</pre>
+<div class="float">
+<img src="../png/sample6.png" alt="../png/sample6">
+
+</div><p><strong>Example of data differentiation and integration
+</strong>
+</p>
+<p>Data smoothing (function <code>Smooth</code>) is more interesting and important. This function has 2 main arguments: type of smoothing and its direction. Now 4 methods are supported: <code>0</code> does nothing for delta=0 or approaches data to zero with the step delta, <code>1</code> linear averaging by 3 points, <code>2</code> linear averaging by 5 points, <code>3</code> quadratic averaging by 5 points. Let me demonstrate it for 1d case:
+</p><pre class="verbatim">new y0 30
+modify y0 '0.4*sin(2*pi*x)+0.3*cos(3*pi*x)-0.4*sin(4*pi*x)+0.2*rnd'
+copy y1 y0: smooth y1 1
+copy y2 y0: smooth y2 2
+copy y3 y0: smooth y3 3
+
+plot y0 'k': addlegend 'none' 'k'
+plot y1 'r': addlegend 'line 3' 'r'
+plot y2 'g': addlegend 'line 5' 'g'
+plot y3 'b': addlegend 'quad 5' 'b'
+legend: box
+</pre>
+<div class="float">
+<img src="../png/sample7.png" alt="../png/sample7">
+
+</div><p><strong>Example of data smoothing
+</strong>
+</p>
+<p>Finally one can create new data arrays on base of the existing one: extract slice, row or column of data (<code>SubData</code>), summarize along some of direction(s) (<code>Sum</code>), find distribution of data elements (<code>Hist</code>). Note, that all these functions are not thread-safe because they use static internal variable for output array. In particular, the using of several of them in arguments of the same function will lead to unpredictable result.
+</p>
+<hr size="6">
+<a name="Data-plotting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-changing" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-1D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Data-plotting-1"></a>
+<h2 class="section">2.4 Data plotting</h2>
+
+<p>Let me now show how to plot the data. MathGL generally has 2 types of plotting functions. Simple variant requires a single data array for plotting, other data (coordinates) are considered uniformly distributed in interval <var>Min</var>*<var>Max</var>. Second variant requires data arrays for all coordinates. It allows one to plot rather complex multivalent curves and surfaces (in case of parametric dependencies). Argument setting to default values allows one to plot data in standard form. Manual arguments setting gives possibility for fine tuning of colors, positions and view of graphics. Note, that the call of drawing function adds something to picture but does not clear the previous plots (as it does in Matlab). Another difference from Matlab is that all setup (like transparency, lightning, axis borders and so on) must be specified <strong>before</strong> plotting functions.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plots-for-1D-data">2.4.1 Plots for 1D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-for-2D-data">2.4.2 Plots for 2D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Plots-for-3D-data">2.4.3 Plots for 3D data</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surface-transparency">2.4.4 Surface transparency</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="Plots-for-1D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Data-plotting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-2D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-1D-data-1"></a>
+<h3 class="subsection">2.4.1 Plots for 1D data</h3>
+
+<p>Term &ldquo;1D data&rdquo; means that data depend on single index (parameter) like curve in parametric form {x(i),y(i),z(i)}, i=1...n. There are 5 generally different types of data representations: simple line plot, line plot with filling under it, stairs plot, bar plot and vertical lines (see section <a href="mgl_ru_1.html#g_t1D-plotting">1D графики</a>). Each type of plotting has similar interface. There are 3D version and two 2D versions. One of last requires single array. The parameters of line and marks (see section <a href="mgl_ru_1.html#Line-styles">Стиль линий</a>) are specified by the string argument. If the string parameter is <code>NULL</code> then solid line with color from palette is used.
+</p>
+<p>Below I shall show the features of 1D plotting on base of <code>plot</code> function (see section <a href="mgl_ru_1.html#g_t1D-plotting">1D графики</a>). Let us start from sinus plot:
+</p><pre class="verbatim">new y0 50: modify y0 'sin(pi*(2*x-1))'
+subplot 2 2 0
+plot y0: box
+</pre><p>Style of line is not specified in <code>plot</code> function. So MathGL uses the solid line with first color of palette (this is blue). Next subplot shows array <var>y1</var> with 2 rows:
+</p><pre class="verbatim">subplot 2 2 1
+new y1 50 2
+modify y1 'sin(pi*2*x-pi)'
+modify y1 'cos(pi*2*x-pi)/2' 1
+plot y1: box
+</pre><p>As previously I did not specify the style of lines. As a result, MathGL again uses solid line with next colors in palette (there are green and red). Now let us plot a circle on the same subplot. The circle is parametric curve <em>x=cos(\pi t), y=sin(\pi t)</em>. I will set the color of the circle (dark yellow, &lsquo;<samp>Y</samp>&rsquo;) and put marks &lsquo;<samp>+</samp>&rsquo; at point position:
+</p><pre class="verbatim">new x 50: modify x 'cos(pi*2*x-pi)'
+plot x y0 'Y+'
+</pre><p>Note that solid line is used because I did not specify the type of line. The same picture can be achieved by <code>Plot2</code> function. Let us draw ellipse by orange dash line:
+</p><pre class="verbatim">plot y1(:,0) y(:,1) 'q|'
+</pre>
+<p>Drawing in 3D space is mostly the same. Let us draw spiral with default line style. Now its color is 4-th color from palette (this is cyan):
+</p><pre class="verbatim">subplot 2 2 2:rotate 60 40
+new z 50: modify z '2*x-1'
+plot x y0 z 'g':box
+</pre><p>Function <code>Plot3</code> does 3D curve plot but for single array. Use it to put circle marks on the previous plot:
+</p><pre class="verbatim">new y2 10 3
+modify y2 'cos(pi*(2*x-1-y))'
+modify y2 '2*x-1' 2
+plot y2(:,0) y2(:,1) y2(:,2) 'bo '
+</pre><p>Note that line style is empty &lsquo;<samp> </samp>&rsquo; here. Usage of other 1D plotting functions looks similar:
+</p><pre class="verbatim">subplot 2 2 3:rotate 60 40
+bars x y0 z 'r':box
+</pre>
+<div class="float">
+<img src="../png/sample8.png" alt="../png/sample8">
+
+</div><p><strong>Example of 1D data plot
+</strong>
+</p>
+<hr size="6">
+<a name="Plots-for-2D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-1D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plots-for-3D-data" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-2D-data-1"></a>
+<h3 class="subsection">2.4.2 Plots for 2D data</h3>
+
+<p>Surfaces <code>Surf</code> and other 2D plots (see section <a href="mgl_ru_1.html#g_t2D-plotting">2D графики</a>) are drown the same simpler as 1D one. The difference is that the string parameter specifies not by line style but by the color scheme of the plot (see section <a href="mgl_ru_1.html#Color-scheme">Цветовая схема</a>). Here I draw attention on 4 most interesting color schemes. There is gray scheme where color is changed from black to white (string &lsquo;<samp>kw</samp>&rsquo;) or from white to black (string &lsquo;<samp>wk</samp>&rsquo;). Another scheme is useful for accentuation of negative (by blue color) and positive (by red color) regions on plot (string &lsquo;<samp>'BbwrR'</samp>&rsquo;). Last one is the popular &ldquo;jet&rdquo; scheme (string &lsquo;<samp>'BbcyrR'</samp>&rsquo;).
+</p>
+<p>Now I shall show the example of a surface drawing. At first let us switch lightning on
+</p><pre class="verbatim">light on
+</pre><p>and draw the surface, considering coordinates x,y to be uniformly distributed in interval <var>Min</var>*<var>Max</var>
+</p><pre class="verbatim">new a0 50 40
+modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+subplot 2 2 0:rotate 60 40
+surf a0: box
+</pre><p>Color scheme was not specified. So previous color scheme is used. In this case it is default color scheme (&ldquo;jet&rdquo;) for the first plot. Next example is a sphere. The sphere is parametrically specified surface:
+</p><pre class="verbatim">new x 50 40: new y 50 40: new z 50 40
+modify x '0.8*sin(2*pi*x)*sin(pi*y)'
+modify y '0.8*cos(2*pi*x)*sin(pi*y)'
+modify z '0.8*cos(pi*y)'
+subplot 2 2 1:rotate 60 40
+surf x y z 'bbwrr': box
+</pre><p>I set color scheme to <code>'BbwrR'</code> that corresponds to red top and blue bottom of the sphere.
+</p>
+<p>Surfaces will be plotted for each of slice of the data if <var>nz</var>&gt;1. Next example draws surfaces for data arrays with <var>nz</var>=3:
+</p><pre class="verbatim">new a1 50 40 3
+modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
+subplot 2 2 2:rotate 60 40
+alpha on
+surf a1: box
+</pre><p>Note, that it may entail a confusion. However, if one will use density plot then the picture will look better:
+</p><pre class="verbatim">subplot 2 2 3: rotate 60 40
+dens a1: box
+</pre><p>Note, that the previous color scheme is used in last plots because there are no direct specification of the one.
+</p>
+<div class="float">
+<img src="../png/sample9.png" alt="../png/sample9">
+
+</div><p><strong>Example of surface plot for 2D data
+</strong>
+</p>
+<p>Drawing of other 2D plots is analogous. The only peculiarity is the usage of flag &lsquo;<samp>#</samp>&rsquo;. By default this flag switches on the drawing of a grid on plot (<code>grid</code> or <code>mesh</code> for plots in plain or in volume). However, for isosurfaces (including surfaces of rotation <code>axial</code>) this flag switches the  face drawing off. Figure becomes wired. The following code gives example of flag &lsquo;<samp>#</samp>&rsquo; using (compare with normal function drawing as in its description):
+</p><pre class="verbatim">alpha on: light on: light 0 0 0 1
+new a 30 20
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+subplot 2 2 0: rotate 40 60
+surf a 'bbcyrr#': box
+subplot 2 2 1: rotate 40 60
+dens a 'bbcyrr#': box
+subplot 2 2 2: rotate 40 60
+cont a 'bbcyrr#': box
+subplot 2 2 3: rotate 40 60
+axial a 'bbcyrr#': box
+</pre>
+<div class="float">
+<img src="../png/samplea.png" alt="../png/samplea">
+
+</div><p><strong>Example of 2D data plot with color scheme contained &lsquo;<samp>#</samp>&rsquo; symbol
+</strong>
+</p>
+<hr size="6">
+<a name="Plots-for-3D-data"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-2D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surface-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plots-for-3D-data-1"></a>
+<h3 class="subsection">2.4.3 Plots for 3D data</h3>
+
+<p>Drawing procedures for 3D plot looks similarly to 1D and 2D plots described above. There are 3 general types of 3D plots (see section <a href="mgl_ru_1.html#g_t3D-plotting">3D графики</a>): (i) plots on slices or on projections, (ii) isosurfaces, (iii) cloud-like plots. Plots on slice are clear enough &ndash; one specifies a slice (as its index or as coordinate value) and MathGL draws contour lines or density plot on slice plane. Isosurface gives more information. Isosurface is 3D analogue of the contour line <code>cont</code>. It shows the region where data array values exceed specified isosurface level. Plot becomes more informative if one adds transparency, lightning or sets color scheme depending on coordinates. Generalization of isosurface is the cloud-like plot. For this plot the darker color and less transparent regions correspond to higher values of data. Contrary, the regions with low values are transparent. For plotting of the phase of fields (or beams or pulses) one can use isosurface which transparency depends on the other data array (see function <code>surf3a</code>). As example of 3D data plots let us draw the Gaussian beam diffraction in space. Beam propagates along <var>x</var> axis:
+</p><pre class="verbatim">alpha on: light on
+light 0 0 0 1
+new a 30 30 30: new b 30 30 30
+modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
+modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
+caxis 0 1
+
+subplot 2 2 0: rotate 40 60
+surf3 a 'wgk': box
+subplot 2 2 1: rotate 40 60
+densa a: box: axis
+subplot 2 2 2: rotate 40 60
+cloud a: box
+subplot 2 2 3: rotate 40 60
+surf3a b a 'q': box
+</pre>
+<div class="float">
+<img src="../png/sampleb.png" alt="../png/sampleb">
+
+</div><p><strong>Example of Gaussian beam diffraction (3D data)
+</strong>
+</p>
+
+<hr size="6">
+<a name="Surface-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plots-for-3D-data" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Data-plotting" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surface-transparency-1"></a>
+<h3 class="subsection">2.4.4 Surface transparency</h3>
+
+<p>MathGL library has advanced features for setting and handling the surface transparency. The simplest way to add transparency is the using of function <code>Alpha</code>. As a result, all further surfaces (and isosurfaces, density plots and so on) become transparent. However, their  look can be additionally improved.
+</p>
+<p>First, the selected surface will be non-transparent if one sets the flag <code>transparent</code> before the surface drawing and sets it off after the drawing.
+</p>
+<p>Second, the value of transparency can be different from surface to surface. To do it just change the value of <code>alphadef</code> before the drawing of the selected surface. If its value is close to 0 then the surface becomes more and more transparent. Contrary, if its value is close to 1 then the surface becomes practically non-transparent. This is some analogue of <code>transparent on</code>.
+</p>
+<p>Third feature is the changing of the way how the light goes through overlapped surfaces. The variable <code>transptype</code> defines it. By default the usual transparency is used (<code>transptype 0</code>) &ndash; surfaces below is less visible than the upper ones. A &ldquo;glass-like&rdquo; transparency (<code>transptype 1</code>) has a different look when the surface just decreases the background light (the surfaces are commutable in this case).
+</p>
+<p>A &ldquo;neon-like&rdquo; transparency (<code>transptype 2</code>) has more interesting look. In this case a surface is the light source (like a lamp on the dark background) and just adds some intensity to the color. At this, the library sets automatically the black color for the background and changes the default line color to white.
+</p>
+<p>As example I shall show the variant of plot from <a href="#Plots-for-2D-data">Plots for 2D data</a> (grid drawing is disabled) for different types of transparency.
+</p><div class="float">
+<img src="../png/type0.png" alt="../png/type0">
+
+</div><p><strong>Example of <code>TranspType=0</code>.
+</strong>
+</p><div class="float">
+<img src="../png/type1.png" alt="../png/type1">
+
+</div><p><strong>Example of <code>TranspType=1</code>.
+</strong>
+</p><div class="float">
+<img src="../png/type2.png" alt="../png/type2">
+
+</div><p><strong>Example of <code>TranspType=2</code>.
+</strong>
+</p>
+
+
+<hr size="6">
+<a name="Hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surface-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t_0060_0060Compound_0027_0027-graphics" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Examples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Hints-1"></a>
+<h2 class="section">2.5 Hints</h2>
+
+<p>In this section I have included some small hints and advices for the improving of the quality of plots and for the demonstration of some non-trivial features of MathGL library. In contrast to previous examples I showed mostly the idea but not the whole drawing function. More examples with the source code can be find at <a href="http://mathgl.sf.net/">http://mathgl.sf.net/</a> or in section <a href="mgl_ru_3.html#Samples">Примеры использования MathGL</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t_0060_0060Compound_0027_0027-graphics">2.5.1 &ldquo;Compound&rdquo; graphics</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Two-axes-in-one-plot">2.5.2 Two axes in one plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Titles-for-the-plot">2.5.3 Titles for the plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Changing-of-the-color-range">2.5.4 Changing of the color range</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Management-of-a-point-cutting">2.5.5 Management of a point cutting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vector-field-visualization">2.5.6 Vector field visualization</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Several-light-sources">2.5.7 Several light sources</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutMin-and-CutMax-features">2.5.8 CutMin and CutMax features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mapping-visualization">2.5.9 Mapping visualization</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Log_002dscaled-plot">2.5.10 Log-scaled plot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Nonlinear-fitting-hints">2.5.11 Nonlinear fitting hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#PDE-solving-hints">2.5.12 PDE solving hints</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stereo-image">2.5.13 Stereo image</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+</table>
+
+<hr size="6">
+<a name="g_t_0060_0060Compound_0027_0027-graphics"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Two-axes-in-one-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Compound_0027_0027-graphics-1"></a>
+<h3 class="subsection">2.5.1 &ldquo;Compound&rdquo; graphics</h3>
+
+<p>As I noted above, MathGL functions (except the special one, like <code>clf</code>) do  not erase the previous plotting but just add the new one. It allows one to draw &ldquo;compound&rdquo; plots easily. For example, popular Matlab command <code>surfc</code> can be emulated in MathGL by 2 calls:
+</p><pre class="verbatim">surf a
+cont a 0 7 -1   # draw contours at z = -1
+</pre><p>Here <var>a</var> is 2-dimensional data for the plotting, <code>-1</code> is the value of z-coordinate at which the contour should be plotted (at the bottom in this example). Analogously, one can draw density plot instead of contour lines and so on.
+</p>
+<p>Another nice plot is contour lines plotted directly on the surface:
+</p><pre class="verbatim">light on        # switch on light for the surface
+surf a 'bbcyrr' # select 'jet' colormap for the surface
+cont a 'y'      # and yellow color for contours
+</pre><p>The possible difficulties arise in black&amp;white case, when the color of the surface can be close to the color of a contour line. In that case I may suggest the following code:
+</p><pre class="verbatim">light on        # switch on light for the surface
+surf a 'kw'     # select 'gray' colormap for the surface
+caxis -1 0      # first draw for darker surface colors
+conta 'w'       # white contours
+caxis 0 1       # now draw for brighter surface colors
+cont a 'k'      # black contours
+</pre><p>The idea is to divide the color range on 2 parts (dark and bright) and to select the contrasting color for contour lines for each of part.
+</p>
+<p>Similarly, one can plot flow thread over density plot of vector field amplitude (this is another amusing plot from Matlab) and so on. The list of compound graphics can be prolonged but I hope that the general idea is clear.
+</p>
+<hr size="6">
+<a name="Two-axes-in-one-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t_0060_0060Compound_0027_0027-graphics" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Titles-for-the-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Two-axes-in-one-plot-1"></a>
+<h3 class="subsection">2.5.2 Two axes in one plot</h3>
+
+<p>Developing the previous hint one can make a plot with 2 or more axes. The idea is that the change of settings does not influence on the already drawn graphics. So, for 2-axes plot let us set the first axis and draw everything concerning it. Then let us setup the second axis and draw things for the second axis. The corresponding code is (see section <a href="mgl_ru_3.html#g_t2_002daxes-sample">Несколько осей на одном графике</a>):
+</p><pre class="verbatim"># set up first axis
+axis -1 -1 1 1: origin -1 -1
+axis:fplot 'sin(pi*x)'      # draw something in first axis
+# set up second axis
+axis 0 0 1 1: origin 1 1
+axis: fplot 'cos(4*pi*x^2)' # draw something in second axis
+</pre><p>Note, that the first and the second axes look better if being placed in different corners. In the code presented above the first axis is placed in the left-bottom corner, and the second one is placed in the right-top corner.
+</p>
+<hr size="6">
+<a name="Titles-for-the-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Two-axes-in-one-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Changing-of-the-color-range" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Titles-for-the-plot-1"></a>
+<h3 class="subsection">2.5.3 Titles for the plot</h3>
+
+<p>The printing of nice titles for the plot is not so trivial task in general case. The problem is that the rotation and aspect change lead to different looks for titles of different subplots. So, the resulting look is not so good as it could be. The solution is simple &ndash; to print titles exactly after <code>subplot</code> call and before any rotation, aspect change and so on! Analogously, the title for the whole picture looks better if it is printed first (before any <code>subplot</code> calls). Alternatively you can use function <code>title</code> for plotting title for the picture at any time.
+</p>
+<hr size="6">
+<a name="Changing-of-the-color-range"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Titles-for-the-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Management-of-a-point-cutting" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Changing-of-the-color-range-1"></a>
+<h3 class="subsection">2.5.4 Changing of the color range</h3>
+
+<p>By default (for the user comfort), the color range is set equal to z-range of the plot. However, there are different ranges. So, one can obtain amusing plot by the change of color range manually. For example, there are plots with one-color bottom (or top) or practically bi-color picture and so on.
+</p>
+<p>For example, compare 2 surfaces:
+</p><pre class="verbatim">subplot 2 1 0
+surf a          # usual coloring range
+subplot 2 1 1
+caxis 0 1
+surf a          # bottom of the surface have one-colour filling
+</pre>
+<hr size="6">
+<a name="Management-of-a-point-cutting"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Changing-of-the-color-range" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vector-field-visualization" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Management-of-a-point-cutting-1"></a>
+<h3 class="subsection">2.5.5 Management of a point cutting</h3>
+
+<p>Sometimes an experimental or numerical surface has outstanding points. Visualization of such surface will lead to the hole(s) in place of such points. The standard method of &ldquo;fighting&rdquo; &ndash; to change data values &ndash; is not always good and is not so convenient. MathGL library has another method &ndash; to set variable <code>cut off</code>. As a consequence, all outstanding points will be projected on the bounding box.
+</p>
+<p>Such method is good not only for outstanding points but also for the case when one need to plane the bottom or the top of the plot. Exactly such case is demonstrated in the code:
+</p><pre class="verbatim">new a 20 30     # create some data
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+# set lower border above the data minimal value
+axis -1 -1 0 1 1 1:rotate 40 60
+cut off         # set off cutting flag
+surf a          # and draw the surface
+</pre><p>It is an interesting result, is not it?
+</p>
+<hr size="6">
+<a name="Vector-field-visualization"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Management-of-a-point-cutting" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Several-light-sources" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vector-field-visualization-1"></a>
+<h3 class="subsection">2.5.6 Vector field visualization</h3>
+
+<p>Vector field visualization (especially in 3d case <code>vect3</code> or <code>vectc</code>) may look tangly &ndash; there are too many overlapping lines. I may suggest 2 ways to solve this problem. The first one is to change <code>meshnum</code> for decreasing the number of hachures. The second way is to use the flow thread chart <code>Flow</code>. Unfortunately, I don&rsquo;t know any other methods to visualize 3d vector field. If you know any, e-mail me and I shall add it to MatGL.
+</p>
+<hr size="6">
+<a name="Several-light-sources"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vector-field-visualization" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutMin-and-CutMax-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Several-light-sources-1"></a>
+<h3 class="subsection">2.5.7 Several light sources</h3>
+
+<p>In contrast to the most of other programs, MathGL supports several (up to 10) light sources. Moreover, the color each of them can be different: white (this is usual), yellow, red, cyan, green and so on. The use of several light sources may be interesting for the highlighting of some peculiarities of the plot or just to make an amusing picture. Note, each light source can be switched on/off individually (see section <a href="mgl_ru_3.html#Several-light-sample">Несколько источников света</a>).
+</p>
+<hr size="6">
+<a name="CutMin-and-CutMax-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Several-light-sources" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mapping-visualization" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutMin-and-CutMax-features-1"></a>
+<h3 class="subsection">2.5.8 CutMin and CutMax features</h3>
+
+<p>MathGL library has a feature for cutting of points in some region <var>CutMin*CutMax</var>. Such an excision can be used to improve the look of the graphics. Moreover, this cutting may help to show an internal structure of an object (like <code>isocaps</code> plot in Matlab). For example, let us use the standard 3D data array and show its interior (see section <a href="mgl_ru_3.html#CutMinMax-sample">CutMinMax &ndash; пример использования</a>).
+</p>
+<pre class="verbatim">new c 61 51 40      # create the data
+new v 10: fill v -0.5 1
+modify c '(-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1))'
+cut 0 -1 -1 1 0 1.1
+rotate 40 60:       surf3 c -0.5 'bbcyrr'
+contf3 v c 'x' -1 'bbcyrr': contf3 v c 'y' -1 'bbcyrr'
+contf3 v c 'z' 0 'bbcyrr':  contf3 v c 'z' 39 'bbcyrr'
+</pre>
+<p>One can also exclude points from arbitrary area in space. This area defined by textual formula <code>cut</code> (see section <a href="mgl_ru_1.html#Cutting">Обрезание</a>). The algorithm is the same as shown for &ldquo;rectangular cutting&rdquo;.
+</p>
+<hr size="6">
+<a name="Mapping-visualization"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutMin-and-CutMax-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Log_002dscaled-plot" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mapping-visualization-1"></a>
+<h3 class="subsection">2.5.9 Mapping visualization</h3>
+
+<p>Sometime ago I worked with mapping and have a question about its visualization. Let me remember you that mapping is some transformation rule for one set of number to another one. The 1d mapping is just an ordinary function &ndash; it takes a number and transforms it to another one. The 2d mapping (which I used) is a pair of functions which take 2 numbers and transform them to another 2 ones. Except general plots (like <code>surfc</code>, <code>surfa</code>) there is a special plot &ndash; Arnold diagram. It shows the area which is the result of mapping of some initial area (usually square).
+</p>
+<p>I tried to make such plot in <code>map</code>. It shows the set of points or set of faces, which final position is the result of mapping. At this, the color gives information about their initial position and the height describes Jacobian value of the transformation. Unfortunately, it looks good only for the simplest mapping but for the real multivalent quasi-chaotic mapping it produces a confusion. So, use it if you like :).
+</p>
+<hr size="6">
+<a name="Log_002dscaled-plot"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mapping-visualization" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Nonlinear-fitting-hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Log_002dscaled-plot-1"></a>
+<h3 class="subsection">2.5.10 Log-scaled plot</h3>
+
+<p>Log-scaled plot can be drawn by 2 steps. First, one should change the scale of axis by call <code>axis 'lg(x)' 'lg(y)'</code> (in this example, x- and y-axis will be log-scaled). Second, one should set logarithmic scale for axis ticks by changing variables: <code>xtick 0: yticks 0</code>. Finally, one should check (or change) the axis ranges and origin so that their values to be positive. For example of log-log plot see section <a href="mgl_ru_3.html#Log_002dlog-sample">Log-log &ndash; пример использования</a>.
+</p>
+<hr size="6">
+<a name="Nonlinear-fitting-hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Log_002dscaled-plot" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#PDE-solving-hints" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Nonlinear-fitting-hints-1"></a>
+<h3 class="subsection">2.5.11 Nonlinear fitting hints</h3>
+
+<p>Nonlinear fitting is rather simple. All that you need is the data to fit, the approximation formula and the list of coefficients to fit (better with its initial guess values). Let me demonstrate it on the following simple example (see section <a href="mgl_ru_3.html#Fitting-sample">Fitting &ndash; пример использования</a>). First, let us use sin function with some random noise:
+</p><pre class="verbatim">new rnd 100: new idl 50 # data to be fitted and ideal data
+modify rnd '0.4*rnd+0.1+sin(4*pi*x)'
+modify idl '0.3+sin(4*pi*x)'
+</pre><p>and plot it to see that data we will fit
+</p><pre class="verbatim">axis -1 -2 1 2
+plot rnd '. ':plot idl 'b'
+box:text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
+</pre>
+<p>The next step is the fitting itself. For that let me specify an initial values <var>ini</var> for coefficients &lsquo;<samp>abc</samp>&rsquo; and do the fitting for approximation formula &lsquo;<samp>a+b*sin(c*x)</samp>&rsquo;
+</p><pre class="verbatim">new res     # The data for found formula
+fit res rnd 'a+b*sin(c*x)' 'abc' [1, 1, 3]
+</pre><p>Now display it
+</p><pre class="verbatim">plot res 'r'
+text -1 -1.3 'fitted:' 'L:r' -1
+putsfit 0 -1.8 'y = ' 'C:r' -1
+</pre>
+<p>NOTE! the fitting results may have strong dependence on initial values for coefficients due to algorithm features. The problem is that in general case there are several local &rsquo;optimums&rsquo; for coefficients and the program returns only first found one! There are no guaranties that it will be the best. Try for example to set <code>ini = [0, 0, 0]</code> in the code above.
+</p>
+<hr size="6">
+<a name="PDE-solving-hints"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Nonlinear-fitting-hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stereo-image" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="PDE-solving-hints-1"></a>
+<h3 class="subsection">2.5.12 PDE solving hints</h3>
+
+<p>Solving of Partial Differential Equations (PDE, including beam tracing) and ray tracing (or finding particle trajectory) are more or less common task. So, MathGL have several functions for that. There are <code>ray</code> for ray tracing, <code>pde</code> for PDE solving, <code>qo2d</code> for beam tracing in 2D case. Note, that these functions take &ldquo;Hamiltonian&rdquo; or equations as string values. And I don&rsquo;t plan now to allow one to use user-defined functions. There are 2 reasons: the complexity of corresponding interface; and the basic nature of used methods which are good for samples but may not good for serious scientific calculations.
+</p>
+<p>The ray tracing can be done by <code>ray</code> function. Really ray tracing equation is Hamiltonian equation for 3D space. So, the function can be also used for finding a particle trajectory (i.e. solve Hamiltonian ODE) for 1D, 2D or 3D cases. The function have a set of arguments. First of all, it is Hamiltonian which defined the media (or the equation) you are planning to use. The Hamiltonian is defined by string which may depend on coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo;, time &lsquo;<samp>t</samp>&rsquo; (for particle dynamics) and momentums &lsquo;<samp>p</samp>&rsquo;=<em>p_x</em>, &lsquo;<samp>q</samp>&rsquo;=<em>p_y</em>, &lsquo;<samp>v</samp>&rsquo;=<em>p_z</em>. Next, you have to define the initial conditions for coordinates and momentums at &lsquo;<samp>t</samp>&rsquo;=0 and set the integrations step (default is 0.1) and its duration (default is 10). The Runge-Kutta method of 4-th order is used for integration.
+</p><pre class="verbatim">new re 128:new im 128
+ray r 'p^2+q^2-x-1' -0.7 -1 0 0 0.5 0
+plot r(0) r(1)
+</pre><p>This example calculate the reflection from linear layer (media with Hamiltonian &lsquo;<samp>p^2+q^2-x-1</samp>&rsquo;=<em>p_x^2+p_y^2-x-1</em>). This is parabolic curve. The resulting array have 7 columns which contain data for {x,y,z,p,q,v,t}.
+</p>
+<p>The solution of PDE is a bit more complicated. As previous you have to specify the equation as pseudo-differential operator <em>\hat H(x, \nabla)</em> which is called sometime as &ldquo;Hamiltonian&rdquo; (for example, in beam tracing). As previously, it is defined by string which may depend on coordinates &lsquo;<samp>x</samp>&rsquo;, &lsquo;<samp>y</samp>&rsquo;, &lsquo;<samp>z</samp>&rsquo; (but not time!), momentums &lsquo;<samp>p</samp>&rsquo;=<em>(d/dx)/i k_0</em>, &lsquo;<samp>q</samp>&rsquo;=<em>(d/dy)/i k_0</em> and field amplitude &lsquo;<samp>u</samp>&rsquo;=<em>|u|</em>. The evolutionary coordinate is &lsquo;<samp>z</samp>&rsquo; in all cases. So that, the equation look like <em>du/dz = ik_0 H(x,y,\hat p, \hat q, |u|)[u]</em>. Dependence on field amplitude &lsquo;<samp>u</samp>&rsquo;=<em>|u|</em> allows one to solve nonlinear problems too. For example, for nonlinear Shrodinger equation you may set <code>ham='p^2 + q^2 - u^2'</code>. Also you may specify imaginary part for wave absorption, like <code>ham = 'p^2 + i*x*(x&gt;0)'</code>, but only if dependence on variable &lsquo;<samp>i</samp>&rsquo; is linear (i.e. <em>H = Hre+i*Him</em>).
+</p>
+<p>Next step is specifing the initial conditions at &lsquo;<samp>z</samp>&rsquo;=<code>Min.z</code>. The function need 2 arrays for real and for imaginary part. Note, that coordinates x,y,z are supposed to be in specified range [Min, Max]. So, the data arrays should have corresponding scales. Finally, you may set the integration step and paramter k0=<em>k_0</em>. Also keep in mind, that internally the 2 times large box is used (for suppressing numerical reflection from boundaries) and the equation should well defined even in this extended range.
+</p>
+<p>Final comment is concerning the possible form of pseudo-differential operator <em>H</em>. At this moment, simplified form of operator <em>H</em> is supported &ndash; all &ldquo;mixed&rdquo; terms (like &lsquo;<samp>x*p</samp>&rsquo;-&gt;x*d/dx) are excluded. For example, in 2D case this operator is effectively <em>H = f(p,z) + g(x,z,u)</em>. However commutable combinations (like &lsquo;<samp>x*q</samp>&rsquo;-&gt;x*d/dy) are allowed for 3D case. 
+</p>
+<p>So, for example let solve the equation for beam deflected from linear layer and absorbed later. The operator will have the form &lsquo;<samp>'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)'</samp>&rsquo; that correspond to equation <em>ik_0 \partial_z u + \Delta u + x \cdot u + i (x+z)/2 \cdot u = 0</em>. This is typical equation for Electron Cyclotron (EC) absorption in magnetized plasmas. For initial conditions let me select the beam with plane phase front <em>exp(-48*(x+0.7)^2)</em>. The corresponding code looks like this (see section <a href="mgl_ru_3.html#PDE-sample">PDE &ndash; пример использования</a>):
+</p><pre class="verbatim">new re 128: new im 128
+fill re 'exp(-48*(x+0.7)^2)'
+pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)' re im 0.01, 30
+transpose a 'yxz'
+caxis 0 1
+dens a 'wyrRk'
+</pre>
+<p>The last example is example of beam tracing. Beam tracing equation is special kind of PDE equation written in coordinates accompanied to a ray. Generally this is the same parameters and limitation as for PDE solving but the coordinates are defined by the ray and by parameter of grid width <var>w</var> in direction transverse the ray. So, you don&rsquo;t need to specify the range of coordinates. <strong>BUT</strong> there is limitation. The accompanied coordinates are well defined only for smooth enough rays, i.e. then the ray curvature <em>K</em> (which is defined as <em>1/K^2 = (|\ddot r|^2 |\dot r|^2 - (\ddot r, \dot r)^2)/|\dot r|^6</em>) is much large then the grid width: <em>K&gt;&gt;w</em>. So, you may receive incorrect results if this condition will be broken.
+</p>
+<p>You may use following code for obtaining the same solution as in previous example:
+</p><pre class="verbatim">new re 128: new im 128
+define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)'
+ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
+# now start beam tracing
+fill re 'exp(-48*x^2)'
+new xx: new yy
+qo2d a $1 re im r 1 30 xx yy
+caxis 0 1
+dens xx yy a 'wyrRk'
+</pre>
+
+<hr size="6">
+<a name="Stereo-image"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#PDE-solving-hints" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Hints" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stereo-image-1"></a>
+<h3 class="subsection">2.5.13 Stereo image</h3>
+
+<p>One can easily create stereo image in MathGL. Stereo image can be produced by making two subplots with slightly different rotation angles. The corresponding code looks like this (see section <a href="mgl_ru_3.html#Stereo-image-sample">Пример стерео изображения</a>):
+</p><pre class="verbatim">subplot 2 1 0   # left image
+rotate 40 60+3
+# draw something here
+subplot 2 1 1   # right image
+rotate 40 60-3
+# draw the same here
+</pre>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mgl_ru.html/mgl_ru_3.html b/texinfo/mgl_ru.html/mgl_ru_3.html
new file mode 100644
index 0000000..1a9f861
--- /dev/null
+++ b/texinfo/mgl_ru.html/mgl_ru_3.html
@@ -0,0 +1,4036 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: 3. Примеры использования MathGL</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: 3. Примеры использования MathGL">
+<meta name="keywords" content="Язык MGL для версии 1.11: 3. Примеры использования MathGL">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_2.html#Stereo-image" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru_2.html#Examples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya-MathGL"></a>
+<h1 class="chapter">3. Примеры использования MathGL</h1>
+<p>Эта глава содержит множество примеров кода для всех типов графиков, наиболее важных возможностей библиотеки и советов. Аналогичные примеры (с картинками) можно найти на <a href="http://mathgl.sf.net/pictures.html">http://mathgl.sf.net/pictures.html</a>. 
+</p><table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t1D-plotting-samples">3.1 Примеры 1D графиков</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plotting-samples">3.2 Примеры 2D графиков</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plotting-samples">3.3 Примеры 3D графиков</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dual-plotting-samples">3.4 Примеры парных/векторных графиков</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Basic-features">3.5 Базовые возможности</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Additional-features">3.6 Дополнительные возможности</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Advanced-features">3.7 &quot;Продвинутые&quot; возможности</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+</table>
+<hr size="6">
+<a name="g_t1D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-1D-g_0440_0430_0444_0438_043a_043e_0432"></a>
+<h2 class="section">3.1 Примеры 1D графиков</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Plot-sample">3.1.1 Plot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Radar-sample">3.1.2 Radar &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tens-sample">3.1.3 Tens &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area-sample">3.1.4 Area &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Area-gradient-sample">3.1.5 Area с градиентной заливкой &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">   
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-sample">3.1.6 Bars &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-2-colors-sample">3.1.7 Bars (2 цвета) &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-above-sample">3.1.8 Bars (один над другим) &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Bars-fall-sample">3.1.9 Bars &quot;водопад&quot; &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Barh-sample">3.1.10 Barh &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Step-sample">3.1.11 Step &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stem-sample">3.1.12 Stem &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region-sample">3.1.13 Region &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Region-gradient-sample">3.1.14 Region с градиентной заливкой &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Error-sample">3.1.15 Error &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#BoxPlot-sample">3.1.16 BoxPlot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mark-sample">3.1.17 Mark &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TextMark-sample">3.1.18 TextMark &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tube-sample">3.1.19 Tube &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-sample">3.1.20 Text &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Torus-sample">3.1.21 Torus &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Chart-sample">3.1.22 Chart &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pie-chart-sample">3.1.23 Pie chart &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ring-chart-sample">3.1.24 Ring chart &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+</table>
+<hr size="6">
+<a name="Plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Radar-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Plot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.1 Plot &ndash; пример использования</h3>
+<a name="index-Plot"></a>
+<div class="float">
+<img src="../png/plot.png" alt="../png/plot">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y
+</pre><hr size="6">
+<a name="Radar-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Radar-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.2 Radar &ndash; пример использования</h3>
+<a name="index-Radar"></a>
+<div class="float">
+<img src="../png/radar.png" alt="../png/radar">
+</div><pre class="verbatim">new y 10 3
+modify y '0.4*sin(pi*(2*x+y/2))+0.1*rnd'
+radar y '#'
+</pre><hr size="6">
+<a name="Tens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Radar-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.3 Tens &ndash; пример использования</h3>
+<a name="index-Tens"></a>
+<div class="float">
+<img src="../png/tens.png" alt="../png/tens">
+</div><pre class="verbatim">new y 50
+new c 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify c 'sin(2*pi*x)'
+box
+tens y c
+</pre><hr size="6">
+<a name="Area-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Area-gradient-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.4 Area &ndash; пример использования</h3>
+<a name="index-Area"></a>
+<div class="float">
+<img src="../png/area.png" alt="../png/area">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y
+</pre><hr size="6">
+<a name="Area-gradient-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Area-_0441-g_0440_0430_0434_0438e_043d_0442_043d_043e_0439-_0437_0430_043b_0438_0432_043a_043e_0439-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.5 Area с градиентной заливкой &ndash; пример использования</h3>
+<a name="index-Area-1"></a>
+<div class="float">
+<img src="../png/area_2.png" alt="../png/area_2">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+area y 'cbgGyr'
+</pre><hr size="6">
+<a name="Bars-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Area-gradient-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-2-colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.6 Bars &ndash; пример использования</h3>
+<a name="index-Bars"></a>
+<div class="float">
+<img src="../png/bars.png" alt="../png/bars">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y
+</pre>
+<hr size="6">
+<a name="Bars-2-colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-above-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-_00282-c_0432e_0442_0430_0029-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.7 Bars (2 цвета) &ndash; пример использования</h3>
+<a name="index-Bars-1"></a>
+<div class="float">
+<img src="../png/bars_2.png" alt="../png/bars_2">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'cbgGyr'
+</pre><hr size="6">
+<a name="Bars-above-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-2-colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Bars-fall-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-_0028_043e_0434_0438_043d-_043d_0430_0434-_0434_0440_0443g_0438_043c_0029-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.8 Bars (один над другим) &ndash; пример использования</h3>
+<a name="index-Bars-2"></a>
+<div class="float">
+<img src="../png/bars_a.png" alt="../png/bars_a">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'a'
+</pre><hr size="6">
+<a name="Bars-fall-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-above-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Barh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Bars-_0022_0432_043e_0434_043e_043f_0430_0434_0022-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.9 Bars &quot;водопад&quot; &ndash; пример использования</h3>
+<a name="index-Bars-3"></a>
+<div class="float">
+<img src="../png/bars_f.png" alt="../png/bars_f">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+bars y 'f'
+</pre>
+
+<hr size="6">
+<a name="Barh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Bars-fall-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Step-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Barh-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.10 Barh &ndash; пример использования</h3>
+<a name="index-Barh"></a>
+<div class="float">
+<img src="../png/barh.png" alt="../png/barh">
+</div><pre class="verbatim">new y 10 3
+modify y '0.8*sin(pi*(2*x+y/2))+0.2*rnd'
+origin 0 0
+box
+barh y
+</pre><hr size="6">
+<a name="Step-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Barh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stem-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Step-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.11 Step &ndash; пример использования</h3>
+<a name="index-Step"></a>
+<div class="float">
+<img src="../png/step.png" alt="../png/step">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+step y
+</pre><hr size="6">
+<a name="Stem-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Step-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Stem-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.12 Stem &ndash; пример использования</h3>
+<a name="index-Stem"></a>
+<div class="float">
+<img src="../png/stem.png" alt="../png/stem">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+origin 0 0
+box
+stem y 'o'
+</pre><hr size="6">
+<a name="Region-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Stem-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Region-gradient-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.13 Region &ndash; пример использования</h3>
+<a name="index-Region"></a>
+<div class="float">
+<img src="../png/region.png" alt="../png/region">
+</div><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'r'
+plot y1 'k2'
+plot y2 'k2'
+</pre><hr size="6">
+<a name="Region-gradient-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Error-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Region-_0441-g_0440_0430_0434_0438e_043d_0442_043d_043e_0439-_0437_0430_043b_0438_0432_043a_043e_0439-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.14 Region с градиентной заливкой &ndash; пример использования</h3>
+<a name="index-Region-1"></a>
+<div class="float">
+<img src="../png/region_2.png" alt="../png/region_2">
+</div><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+box
+region y1 y2 'yr'
+plot y1 'k2'
+plot y2 'k2'
+</pre><hr size="6">
+<a name="Error-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Region-gradient-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#BoxPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Error-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.15 Error &ndash; пример использования</h3>
+<a name="index-Error"></a>
+<div class="float">
+<img src="../png/error.png" alt="../png/error">
+</div><pre class="verbatim">new y 50
+new x0 10
+new y0 10
+new ex 10
+new ey 10
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify x0 '2*x-1 + 0.1*rnd-0.05'
+modify y0 '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x) + 0.2*rnd-0.1'
+modify ey '0.2'
+modify ex '0.1'
+box
+plot y
+error x0 y0 ex ey 'ko'
+</pre><hr size="6">
+<a name="BoxPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Error-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mark-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="BoxPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.16 BoxPlot &ndash; пример использования</h3>
+<a name="index-BoxPlot"></a>
+<div class="float">
+<img src="../png/boxplot.png" alt="../png/boxplot">
+</div><pre class="verbatim">new a 10 7
+modify a '(2*rnd-1)^3/2'
+box
+boxplot a
+plot a ' ko'
+</pre><hr size="6">
+<a name="Mark-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#BoxPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TextMark-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mark-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.17 Mark &ndash; пример использования</h3>
+<a name="index-Mark"></a>
+<div class="float">
+<img src="../png/mark.png" alt="../png/mark">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+mark y y1 'bs'
+</pre><hr size="6">
+<a name="TextMark-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mark-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tube-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TextMark-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.18 TextMark &ndash; пример использования</h3>
+<a name="index-TextMark"></a>
+<div class="float">
+<img src="../png/textmark.png" alt="../png/textmark">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+new y1 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+box
+textmark y y1 '\gamma'
+</pre><hr size="6">
+<a name="Tube-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TextMark-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tube-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.19 Tube &ndash; пример использования</h3>
+<a name="index-Tube"></a>
+<div class="float">
+<img src="../png/tube.png" alt="../png/tube">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+rotate 40 60
+light on
+box
+tube y 0.05
+</pre><hr size="6">
+<a name="Text-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tube-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Torus-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Text-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.20 Text &ndash; пример использования</h3>
+<a name="index-Text"></a>
+<div class="float">
+<img src="../png/text.png" alt="../png/text">
+</div><pre class="verbatim">new y 50 3
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+box
+plot y(:,0)
+text y 'This is very long string drawn along a curve' ':k'
+text y 'Another string drawn above a curve' 'T:r'
+</pre><hr size="6">
+<a name="Torus-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Torus-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.21 Torus &ndash; пример использования</h3>
+<a name="index-Torus"></a>
+<div class="float">
+<img src="../png/torus.png" alt="../png/torus">
+</div><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+rotate 40 60
+light on
+box
+torus y1 y2 'pz'
+</pre><hr size="6">
+<a name="Chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Torus-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pie-chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.22 Chart &ndash; пример использования</h3>
+<a name="index-Chart"></a>
+<div class="float">
+<img src="../png/chart.png" alt="../png/chart">
+</div><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+box
+chart ch
+</pre><hr size="6">
+<a name="Pie-chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ring-chart-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pie-chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.23 Pie chart &ndash; пример использования</h3>
+<a name="index-Chart-1"></a>
+<a name="index-Axis"></a>
+<div class="float">
+<img src="../png/pie_chart.png" alt="../png/pie_chart">
+</div><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+1)/2*cos(pi*x)' '(y+1)/2*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+</pre><hr size="6">
+<a name="Ring-chart-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pie-chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ring-chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.1.24 Ring chart &ndash; пример использования</h3>
+<a name="index-Chart-2"></a>
+<a name="index-Axis-1"></a>
+<div class="float">
+<img src="../png/ring_chart.png" alt="../png/ring_chart">
+</div><pre class="verbatim">new ch 7 2
+modify ch 'rnd+0.1'
+rotate 40 60
+light on
+axis '(y+2)/3*cos(pi*x)' '(y+2)/3*sin(pi*x)' ''
+box
+chart ch 'bgr cmy#'
+</pre><hr size="6">
+<a name="g_t2D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ring-chart-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-2D-g_0440_0430_0444_0438_043a_043e_0432"></a>
+<h2 class="section">3.2 Примеры 2D графиков</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf-sample">3.2.1 Surf &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Transparent-surface-sample">3.2.2 Transparent surface &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surface-in-fog-sample">3.2.3 Surface in fog &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">       
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Sharp-colors-sample">3.2.4 Sharp colors &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mesh-sample">3.2.5 Mesh &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fall-sample">3.2.6 Fall &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Belt-sample">3.2.7 Belt &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Tile-sample">3.2.8 Tile &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Boxs-sample">3.2.9 Boxs &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens-sample">3.2.10 Dens &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-sample">3.2.11 Cont &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF-sample">3.2.12 ContF &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContD-sample">3.2.13 ContD &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Axial-sample">3.2.14 Axial &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Grad-sample">3.2.15 Grad &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+</table>
+<hr size="6">
+<a name="Surf-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Transparent-surface-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.1 Surf &ndash; пример использования</h3>
+<a name="index-Surf"></a>
+<div class="float">
+<img src="../png/surf.png" alt="../png/surf">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+</pre><hr size="6">
+<a name="Transparent-surface-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surface-in-fog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Transparent-surface-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.2 Transparent surface &ndash; пример использования</h3>
+<a name="index-Surf-1"></a>
+<a name="index-Alpha"></a>
+<div class="float">
+<img src="../png/surf_alpha.png" alt="../png/surf_alpha">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surf a
+</pre><hr size="6">
+<a name="Surface-in-fog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Transparent-surface-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Sharp-colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surface-in-fog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.3 Surface in fog &ndash; пример использования</h3>
+<a name="index-Surf-2"></a>
+<a name="index-Fog"></a>
+<div class="float">
+<img src="../png/surf_fog.png" alt="../png/surf_fog">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+fog 1
+box
+surf a
+</pre><hr size="6">
+<a name="Sharp-colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surface-in-fog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mesh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Sharp-colors-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.4 Sharp colors &ndash; пример использования</h3>
+<a name="index-Surf-3"></a>
+<div class="float">
+<img src="../png/surf_sl.png" alt="../png/surf_sl">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a 'BbcyrR|'
+</pre><hr size="6">
+<a name="Mesh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Sharp-colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fall-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Mesh-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.5 Mesh &ndash; пример использования</h3>
+<a name="index-Mesh"></a>
+<div class="float">
+<img src="../png/mesh.png" alt="../png/mesh">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+mesh a
+</pre><hr size="6">
+<a name="Fall-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mesh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Belt-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fall-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.6 Fall &ndash; пример использования</h3>
+<a name="index-Fall"></a>
+<div class="float">
+<img src="../png/fall.png" alt="../png/fall">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+fall a
+</pre><hr size="6">
+<a name="Belt-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fall-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Tile-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Belt-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.7 Belt &ndash; пример использования</h3>
+<a name="index-Belt"></a>
+<div class="float">
+<img src="../png/belt.png" alt="../png/belt">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+belt a
+</pre><hr size="6">
+<a name="Tile-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Belt-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Boxs-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Tile-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.8 Tile &ndash; пример использования</h3>
+<a name="index-Tile"></a>
+<div class="float">
+<img src="../png/tile.png" alt="../png/tile">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+tile a
+</pre><hr size="6">
+<a name="Boxs-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Tile-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Boxs-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.9 Boxs &ndash; пример использования</h3>
+<a name="index-Boxs"></a>
+<div class="float">
+<img src="../png/boxs.png" alt="../png/boxs">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+origin 0 0 0
+box
+boxs a
+</pre><hr size="6">
+<a name="Dens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Boxs-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.10 Dens &ndash; пример использования</h3>
+<a name="index-Dens"></a>
+<a name="index-Colorbar"></a>
+<div class="float">
+<img src="../png/dens.png" alt="../png/dens">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+dens a
+colorbar
+</pre><hr size="6">
+<a name="Cont-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.11 Cont &ndash; пример использования</h3>
+<a name="index-Cont"></a>
+<div class="float">
+<img src="../png/cont.png" alt="../png/cont">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+box
+cont a
+</pre><hr size="6">
+<a name="ContF-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContD-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.12 ContF &ndash; пример использования</h3>
+<a name="index-ContF"></a>
+<div class="float">
+<img src="../png/contf.png" alt="../png/contf">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+contf a
+</pre><hr size="6">
+<a name="ContD-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Axial-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContD-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.13 ContD &ndash; пример использования</h3>
+<a name="index-ContD"></a>
+<div class="float">
+<img src="../png/contd.png" alt="../png/contd">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+var v 9 -1 1
+box
+contd v a
+colorbar v
+</pre><hr size="6">
+<a name="Axial-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContD-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Grad-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Axial-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.14 Axial &ndash; пример использования</h3>
+<a name="index-Axial"></a>
+<div class="float">
+<img src="../png/axial.png" alt="../png/axial">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+axial a
+</pre><hr size="6">
+<a name="Grad-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Axial-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Grad-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.2.15 Grad &ndash; пример использования</h3>
+<a name="index-Grad"></a>
+<div class="float">
+<img src="../png/grad.png" alt="../png/grad">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box:alpha on:dens a
+grad a
+</pre><hr size="6">
+<a name="g_t3D-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Grad-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-3D-g_0440_0430_0444_0438_043a_043e_0432"></a>
+<h2 class="section">3.3 Примеры 3D графиков</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Surf3-sample">3.3.1 Surf3 &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cloud-sample">3.3.2 Cloud &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CloudP-sample">3.3.3 CloudP &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens3-sample">3.3.4 Dens3 &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont3-sample">3.3.5 Cont3 &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ContF3-sample">3.3.6 ContF3 &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-projection-sample">3.3.7 Cont projection &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dens-projection-sample">3.3.8 Dens projection &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutMinMax-sample">3.3.9 CutMinMax &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#CutOff-sample">3.3.11 CutOff &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+</table>
+<hr size="6">
+<a name="Surf3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cloud-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.1 Surf3 &ndash; пример использования</h3>
+<a name="index-Surf3"></a>
+<div class="float">
+<img src="../png/surf3.png" alt="../png/surf3">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+box
+surf3 a
+</pre><hr size="6">
+<a name="Cloud-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CloudP-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cloud-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.2 Cloud &ndash; пример использования</h3>
+<a name="index-Cloud"></a>
+<div class="float">
+<img src="../png/cloud.png" alt="../png/cloud">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+box
+cloud a 'wyrRk'
+</pre><hr size="6">
+<a name="CloudP-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cloud-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CloudP-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.3 CloudP &ndash; пример использования</h3>
+<a name="index-CloudP"></a>
+<div class="float">
+<img src="../png/cloudp.png" alt="../png/cloudp">
+</div><p>Not available.
+</p><hr size="6">
+<a name="Dens3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CloudP-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.4 Dens3 &ndash; пример использования</h3>
+<a name="index-Dens3"></a>
+<a name="index-Axis-2"></a>
+<div class="float">
+<img src="../png/densa.png" alt="../png/densa">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+alpha on
+origin 0 0 0
+box
+densa a
+axis
+</pre><hr size="6">
+<a name="Cont3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ContF3-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.5 Cont3 &ndash; пример использования</h3>
+<a name="index-Cont3"></a>
+<div class="float">
+<img src="../png/conta.png" alt="../png/conta">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+conta a
+</pre><hr size="6">
+<a name="ContF3-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-projection-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ContF3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.6 ContF3 &ndash; пример использования</h3>
+<a name="index-ContF3"></a>
+<div class="float">
+<img src="../png/contfa.png" alt="../png/contfa">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+box
+contfa a
+</pre><hr size="6">
+<a name="Cont-projection-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ContF3-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dens-projection-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-projection-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.7 Cont projection &ndash; пример использования</h3>
+<a name="index-ContX"></a>
+<a name="index-ContY"></a>
+<a name="index-ContZ"></a>
+<div class="float">
+<img src="../png/cont_xyz.png" alt="../png/cont_xyz">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+contx s '' -1
+sum s a 'y'
+conty s '' 1
+sum s a 'z'
+contz s '' -1
+</pre><hr size="6">
+<a name="Dens-projection-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-projection-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutMinMax-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dens-projection-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.8 Dens projection &ndash; пример использования</h3>
+<a name="index-DensX"></a>
+<a name="index-DensY"></a>
+<a name="index-DensZ"></a>
+<div class="float">
+<img src="../png/dens_xyz.png" alt="../png/dens_xyz">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+sum s a 'x'
+densx s '' -1
+sum s a 'y'
+densy s '' 1
+sum s a 'z'
+densz s '' -1
+</pre><hr size="6">
+<a name="CutMinMax-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dens-projection-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Isocaps-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutMinMax-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.9 CutMinMax &ndash; пример использования</h3>
+<a name="index-Surf3-1"></a>
+<a name="index-CutMin"></a>
+<a name="index-CutMax"></a>
+<div class="float">
+<img src="../png/cutminmax.png" alt="../png/cutminmax">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut 0 -1 -1 1 0 1
+box
+surf3 a
+</pre><hr size="6">
+<a name="Isocaps-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutMinMax-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#CutOff-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0060_0060Isocaps_0027_0027-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</h3>
+<a name="index-Surf3-2"></a>
+<a name="index-ContF3-1"></a>
+<a name="index-CutMin-1"></a>
+<a name="index-CutMax-1"></a>
+<div class="float">
+<img src="../png/cutminmax2.png" alt="../png/cutminmax2">
+</div><pre class="verbatim">new a 61 51 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+cut 0 -1 -1 1 0 1.1
+box
+surf3 a -1
+contf3 a 'x' -1
+contf3 a 'y' -1
+contf3 a 'z' 0
+contf3 a 'z' 39
+</pre><hr size="6">
+<a name="CutOff-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Isocaps-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="CutOff-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.3.11 CutOff &ndash; пример использования</h3>
+<a name="index-Surf3-3"></a>
+<a name="index-CutOff"></a>
+<div class="float">
+<img src="../png/surf3_cutoff.png" alt="../png/surf3_cutoff">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+light on
+alpha on
+cut '(z&gt;(x+0.5*y-1)^2-1) &amp; (z&gt;(x-0.5*y-1)^2-1)'
+box
+surf3 a
+</pre><hr size="6">
+<a name="Dual-plotting-samples"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#CutOff-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfC-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-_043f_0430_0440_043d_044b_0445_002f_0432e_043a_0442_043e_0440_043d_044b_0445-g_0440_0430_0444_0438_043a_043e_0432"></a>
+<h2 class="section">3.4 Примеры парных/векторных графиков</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#SurfC-sample">3.4.1 SurfC &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#SurfA-sample">3.4.2 SurfA &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TileS-sample">3.4.3 TileS &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Map-sample">3.4.4 Map &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Traj-sample">3.4.5 Traj &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect-sample">3.4.6 Vect &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectL-sample">3.4.7 VectL &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectC-sample">3.4.8 VectC &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-sample">3.4.9 Flow &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe-sample">3.4.10 Pipe &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dew-sample">3.4.11 Dew &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3C-sample">3.4.12 Surf3C &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf3A-sample">3.4.13 Surf3A &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Vect-3D-sample">3.4.14 Vect 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectL-3D-sample">3.4.15 VectL 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#VectC-3D-sample">3.4.16 VectC 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-3D-sample">3.4.17 Flow 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Pipe-3D-sample">3.4.18 Pipe 3D &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Crust-sample">3.4.19 Crust &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Dots-sample">3.4.20 Dots &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+</table>
+<hr size="6">
+<a name="SurfC-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#SurfA-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfC-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.1 SurfC &ndash; пример использования</h3>
+<a name="index-SurfC"></a>
+<div class="float">
+<img src="../png/surfc.png" alt="../png/surfc">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surfc a b
+</pre><hr size="6">
+<a name="SurfA-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfC-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TileS-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="SurfA-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.2 SurfA &ndash; пример использования</h3>
+<a name="index-SurfA"></a>
+<div class="float">
+<img src="../png/surfa.png" alt="../png/surfa">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+alpha on
+box
+surfa a b
+</pre><hr size="6">
+<a name="TileS-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#SurfA-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Map-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="TileS-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.3 TileS &ndash; пример использования</h3>
+<a name="index-TileS"></a>
+<div class="float">
+<img src="../png/tiles.png" alt="../png/tiles">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+tile a b
+</pre><hr size="6">
+<a name="Map-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TileS-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Traj-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Map-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.4 Map &ndash; пример использования</h3>
+<a name="index-Map"></a>
+<div class="float">
+<img src="../png/map.png" alt="../png/map">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+text 0 0 '\to'
+zrange -2 2
+subplot 2 1 0
+text 0 1.1 '\{x, y\}' '' -2
+box
+fill a 'x'
+fill b 'y'
+map a b 'brgk' 0 0
+subplot 2 1 1
+text 0 1.1 '\{\frac{x^3+y^3}{2}, \frac{x-y}{2}\}' '' -2
+box
+fill a '(x^3+y^3)/2'
+fill b '(x-y)/2'
+map a b 'brgk' 0 0
+</pre><hr size="6">
+<a name="Traj-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Map-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Traj-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.5 Traj &ndash; пример использования</h3>
+<a name="index-Traj"></a>
+<div class="float">
+<img src="../png/traj.png" alt="../png/traj">
+</div><pre class="verbatim">new y 50 3
+new x 50
+new y1 50
+new y2 50
+modify y '0.7*sin(2*pi*x) + 0.5*cos(3*pi*x) + 0.2*sin(pi*x)'
+modify y 'sin(2*pi*x)' 1
+modify y 'cos(2*pi*x)' 2
+fill x -1 1
+modify y1 '0.5+0.3*cos(2*pi*x)'
+modify y2 '0.3*sin(2*pi*x)'
+box
+plot x y
+traj x y y1 y2
+</pre><hr size="6">
+<a name="Vect-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Traj-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectL-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.6 Vect &ndash; пример использования</h3>
+<a name="index-Vect"></a>
+<div class="float">
+<img src="../png/vect.png" alt="../png/vect">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vect a b
+</pre><hr size="6">
+<a name="VectL-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectC-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectL-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.7 VectL &ndash; пример использования</h3>
+<a name="index-VectL"></a>
+<div class="float">
+<img src="../png/vectl.png" alt="../png/vectl">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectl a b
+</pre><hr size="6">
+<a name="VectC-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectL-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectC-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.8 VectC &ndash; пример использования</h3>
+<a name="index-VectC"></a>
+<div class="float">
+<img src="../png/vectc.png" alt="../png/vectc">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+vectc a b
+</pre><hr size="6">
+<a name="Flow-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectC-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.9 Flow &ndash; пример использования</h3>
+<a name="index-Flow"></a>
+<div class="float">
+<img src="../png/flow.png" alt="../png/flow">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+flow a b
+</pre><hr size="6">
+<a name="Pipe-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dew-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.10 Pipe &ndash; пример использования</h3>
+<a name="index-Pipe"></a>
+<div class="float">
+<img src="../png/pipe.png" alt="../png/pipe">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+box
+pipe a b
+</pre><hr size="6">
+<a name="Dew-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3C-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dew-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.11 Dew &ndash; пример использования</h3>
+<a name="index-Dew"></a>
+<div class="float">
+<img src="../png/dew.png" alt="../png/dew">
+</div><pre class="verbatim">new a 20 30
+new b 20 30
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+light on
+dew a b
+</pre><hr size="6">
+<a name="Surf3C-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dew-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf3A-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3C-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.12 Surf3C &ndash; пример использования</h3>
+<a name="index-Surf3C"></a>
+<div class="float">
+<img src="../png/surf3c.png" alt="../png/surf3c">
+</div><pre class="verbatim">new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3c a b
+</pre><hr size="6">
+<a name="Surf3A-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3C-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Vect-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf3A-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.13 Surf3A &ndash; пример использования</h3>
+<a name="index-Surf3A"></a>
+<div class="float">
+<img src="../png/surf3a.png" alt="../png/surf3a">
+</div><pre class="verbatim">new a 60 50 40
+new b 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+modify b '1-2*tanh(4*(x+y-1)^2)'
+rotate 40 60
+light on
+alpha on
+box
+surf3a a b
+</pre><hr size="6">
+<a name="Vect-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf3A-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectL-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Vect-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.14 Vect 3D &ndash; пример использования</h3>
+<a name="index-Vect-1"></a>
+<div class="float">
+<img src="../png/vect3.png" alt="../png/vect3">
+</div><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vect ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="VectL-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Vect-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#VectC-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectL-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.15 VectL 3D &ndash; пример использования</h3>
+<a name="index-VectL-1"></a>
+<div class="float">
+<img src="../png/vectl3.png" alt="../png/vectl3">
+</div><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectl ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="VectC-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectL-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="VectC-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.16 VectC 3D &ndash; пример использования</h3>
+<a name="index-VectC-1"></a>
+<div class="float">
+<img src="../png/vectc3.png" alt="../png/vectc3">
+</div><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+vectc ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="Flow-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#VectC-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Pipe-3D-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.17 Flow 3D &ndash; пример использования</h3>
+<a name="index-Flow-1"></a>
+<div class="float">
+<img src="../png/flow3.png" alt="../png/flow3">
+</div><pre class="verbatim">new ex 30 30 30
+new ey 30 30 30
+new ez 30 30 30
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+box
+flow ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="Pipe-3D-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Crust-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Pipe-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.18 Pipe 3D &ndash; пример использования</h3>
+<a name="index-Pipe-1"></a>
+<div class="float">
+<img src="../png/pipe3.png" alt="../png/pipe3">
+</div><pre class="verbatim">new ex 10 10 10
+new ey 10 10 10
+new ez 10 10 10
+fill ex '0.2*x/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*x/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ey '0.2*y/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*y/pow(x^2+y^2+(z+0.3)^2,1.5)'
+fill ez '0.2*(z-0.3)/pow(x^2+y^2+(z-0.3)^2,1.5) - 0.2*(z+0.3)/pow(x^2+y^2+(z+0.3)^2,1.5)'
+rotate 40 60
+light on
+box
+pipe ex ey ez 'bwr'
+</pre><hr size="6">
+<a name="Crust-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Pipe-3D-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dots-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Crust-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.19 Crust &ndash; пример использования</h3>
+<a name="index-Crust"></a>
+<div class="float">
+<img src="../png/crust.png" alt="../png/crust">
+</div><pre class="verbatim">read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+light on
+box
+crust a 'p'
+</pre><hr size="6">
+<a name="Dots-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Crust-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Dual-plotting-samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Dots-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.4.20 Dots &ndash; пример использования</h3>
+<a name="index-Dots"></a>
+<div class="float">
+<img src="../png/dots.png" alt="../png/dots">
+</div><pre class="verbatim">read a 'hotdogs.pts'
+norm a -1 1 on
+rotate 40 60
+box
+dots a 'p'
+</pre>
+
+<hr size="6">
+<a name="Basic-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Dots-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t1D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0411_0430_0437_043e_0432_044be-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438"></a>
+<h2 class="section">3.5 Базовые возможности</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#g_t1D-plot-sample">3.5.1 Пример графиков 1D данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2D-plot-sample">3.5.2 Пример графиков 2D данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t3D-plot-sample">3.5.3 Пример графиков 3D данных</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Line-styles-sample">3.5.4 Пример стилей линий и маркеров</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Arrow-styles-sample">3.5.5 Пример стилей стрелок</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Text-styles-sample">3.5.6 Пример стилей текста</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#TeX-parsing-sample">3.5.7 Пример TeX формулы</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Font-faces-sample">3.5.8 Примеры начертаний шрифта</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Colors-sample">3.5.9 Примеры цветов</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Color-schemes-sample">3.5.10 Примеры цветовых схем</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Normal-transparency">3.5.11 Обычная прозрачность</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Glass_002dlike-transparency">3.5.12 &quot;Стеклянная&quot; прозрачность</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Lamp_002dlike-transparency">3.5.13 &quot;Ламповая&quot; прозрачность</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">      
+</td></tr>
+</table>
+<hr size="6">
+<a name="g_t1D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Basic-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-1D-_0434_0430_043d_043d_044b_0445"></a>
+<h3 class="subsection">3.5.1 Пример графиков 1D данных</h3>
+<a name="index-Plot-1"></a>
+<a name="index-Bars-4"></a>
+<a name="index-SubPlot"></a>
+<div class="float">
+<img src="../png/sample8.png" alt="../png/sample8">
+</div><pre class="verbatim">new y0 50: modify y0 'sin(pi*(2*x-1))'
+subplot 2 2 0
+plot y0: box
+
+subplot 2 2 1
+new y1 50 2
+modify y1 'sin(pi*2*x-pi)'
+modify y1 'cos(pi*2*x-pi)/2' 1
+plot y1: box
+
+new x 50: modify x 'cos(pi*2*x-pi)'
+plot x y0 'Y+'
+plot y1(:,0) y(:,1) 'q|'
+
+subplot 2 2 2:rotate 60 40
+new z 50:   modify z '2*x-1'
+plot x y0 z 'g':box
+new y2 10 3
+modify y2 'cos(pi*(2*x-1-y))'
+modify y2 '2*x-1' 2
+plot y2(:,0) y2(:,1) y2(:,2) 'bo '
+
+subplot 2 2 3:rotate 60 40
+bars x y0 z 'r':box
+</pre><hr size="6">
+<a name="g_t2D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t1D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t3D-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-2D-_0434_0430_043d_043d_044b_0445"></a>
+<h3 class="subsection">3.5.2 Пример графиков 2D данных</h3>
+<a name="index-Surf-4"></a>
+<a name="index-Dens-1"></a>
+<a name="index-Alpha-1"></a>
+<div class="float">
+<img src="../png/sample9.png" alt="../png/sample9">
+</div><pre class="verbatim">light on
+
+new a0 50 40
+modify a0 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+subplot 2 2 0:rotate 60 40
+surf a0: box
+
+new x 50 40: new y 50 40: new z 50 40
+modify x '0.8*sin(2*pi*x)*sin(pi*y)'
+modify y '0.8*cos(2*pi*x)*sin(pi*y)'
+modify z '0.8*cos(pi*y)'
+subplot 2 2 1:rotate 60 40
+surf x y z 'bbwrr': box
+
+new a1 50 40 3
+modify a1 '0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))'
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*sin(3*pi*(x*y))' 1
+modify a1 '0.6*cos(2*pi*x)*cos(3*pi*y)+0.4*cos(3*pi*(x*y))' 2
+subplot 2 2 2:rotate 60 40
+alpha on
+surf a1: box
+
+subplot 2 2 3: rotate 60 40
+dens a1: box
+</pre><hr size="6">
+<a name="g_t3D-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Line-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-3D-_0434_0430_043d_043d_044b_0445"></a>
+<h3 class="subsection">3.5.3 Пример графиков 3D данных</h3>
+<a name="index-Surf-5"></a>
+<a name="index-Dens-2"></a>
+<a name="index-Alpha-2"></a>
+<div class="float">
+<img src="../png/sampleb.png" alt="../png/sampleb">
+</div><pre class="verbatim">alpha on: light on
+light 0 0 0 1
+new a 30 30 30: new b 30 30 30
+modify a 'exp(-16*((z-0.5)^2+(y-0.5)^2)/(1+4*x^2))'
+modify b '16*((z-0.5)^2+(y-0.5)^2)*(x)/(1+4*x^2)'
+caxis 0 1
+
+subplot 2 2 0: rotate 40 60
+surf3 a 'wgk': box
+subplot 2 2 1: rotate 40 60
+densa a: box: axis
+subplot 2 2 2: rotate 40 60
+cloud a: box
+subplot 2 2 3: rotate 40 60
+surf3a b a 'q': box
+</pre><hr size="6">
+<a name="Line-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t3D-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Arrow-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_043b_0438_043d_0438_0439-_0438-_043c_0430_0440_043ae_0440_043e_0432"></a>
+<h3 class="subsection">3.5.4 Пример стилей линий и маркеров</h3>
+<a name="index-Mark-1"></a>
+<a name="index-Line"></a>
+<div class="float">
+<img src="../png/sample5.png" alt="../png/sample5">
+</div><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Arrow-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Line-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Text-styles-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_0441_0442_0440e_043b_043e_043a"></a>
+<h3 class="subsection">3.5.5 Пример стилей стрелок</h3>
+<a name="index-Line-1"></a>
+<div class="float">
+<img src="../png/sampled.png" alt="../png/sampled">
+</div><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Text-styles-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Arrow-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#TeX-parsing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_0442e_043a_0441_0442_0430"></a>
+<h3 class="subsection">3.5.6 Пример стилей текста</h3>
+<a name="index-Puts"></a>
+<div class="float">
+<img src="../png/sample4.png" alt="../png/sample4">
+</div><pre class="verbatim">text 0 1 'Text can be in ASCII and in Unicode'
+text 0 0.6 'It can be \wire{wire}, \big{big} or #r{colored}'
+text 0 0.2 'One can change style in string: \b{bold}, \i{italic, \b{both}}'
+text 0 -0.2 'Easy to \a{overline} or \u{underline}'
+text 0 -0.6 'Easy to change indexes ^{up} _{down} @{center}'
+text 0 -1 'It parse TeX: \int \alpha \cdot \sqrt3{sin(\pi x)^2 + \gamma_{i_k}} dx'
+</pre><hr size="6">
+<a name="TeX-parsing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Text-styles-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Font-faces-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-TeX-_0444_043e_0440_043c_0443_043b_044b"></a>
+<h3 class="subsection">3.5.7 Пример TeX формулы</h3>
+<a name="index-Puts-1"></a>
+<div class="float">
+<img src="../png/samplee.png" alt="../png/samplee">
+</div><pre class="verbatim">text 0 0 '\sqrt{\frac{\alpha^{\gamma^2}+\overset 1{\big\infty}}{\sqrt3{2+b}}}' '' -4
+</pre><hr size="6">
+<a name="Font-faces-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#TeX-parsing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Colors-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-_043d_0430_0447e_0440_0442_0430_043d_0438_0439-_0448_0440_0438_0444_0442_0430"></a>
+<h3 class="subsection">3.5.8 Примеры начертаний шрифта</h3>
+<a name="index-Puts-2"></a>
+<div class="float">
+<img src="../png/fonts.png" alt="../png/fonts">
+</div><pre class="verbatim">NOT AVAILABLE
+</pre><hr size="6">
+<a name="Colors-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Font-faces-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Color-schemes-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-c_0432e_0442_043e_0432"></a>
+<h3 class="subsection">3.5.9 Примеры цветов</h3>
+<div class="float">
+<img src="../png/colors.png" alt="../png/colors">
+</div><pre class="verbatim">#LENUQ
+facez -1   -1 0 0.4 0.3 'L#': text -0.8 -0.9 'L' 'C:w'
+facez -0.6 -1 0 0.4 0.3 'E#': text -0.4 -0.9 'E' 'C:w'
+facez -0.2 -1 0 0.4 0.3 'N#': text  0   -0.9 'N' 'C:w'
+facez  0.2 -1 0 0.4 0.3 'U#': text  0.4 -0.9 'U' 'C:w'
+facez  0.6 -1 0 0.4 0.3 'Q#': text  0.8 -0.9 'Q' 'C:w'
+#lenuq
+facez -1   -0.7 0 0.4 0.3 'l#': text -0.8 -0.6 'l' 'C:k'
+facez -0.6 -0.7 0 0.4 0.3 'e#': text -0.4 -0.6 'e' 'C:k'
+facez -0.2 -0.7 0 0.4 0.3 'n#': text  0   -0.6 'n' 'C:k'
+facez  0.2 -0.7 0 0.4 0.3 'u#': text  0.4 -0.6 'u' 'C:k'
+facez  0.6 -0.7 0 0.4 0.3 'q#': text  0.8 -0.6 'q' 'C:k'
+#CMYkP
+facez -1   -0.4 0 0.4 0.3 'C#': text -0.8 -0.3 'C' 'C:w'
+facez -0.6 -0.4 0 0.4 0.3 'M#': text -0.4 -0.3 'M' 'C:w'
+facez -0.2 -0.4 0 0.4 0.3 'Y#': text  0   -0.3 'Y' 'C:w'
+facez  0.2 -0.4 0 0.4 0.3 'k#': text  0.4 -0.3 'k' 'C:w'
+facez  0.6 -0.4 0 0.4 0.3 'P#': text  0.8 -0.3 'P' 'C:w'
+#lenuq
+facez -1   -0.1 0 0.4 0.3 'c#': text -0.8 0 'c' 'C:k'
+facez -0.6 -0.1 0 0.4 0.3 'm#': text -0.4 0 'm' 'C:k'
+facez -0.2 -0.1 0 0.4 0.3 'y#': text  0   0 'y' 'C:k'
+facez  0.2 -0.1 0 0.4 0.3 'w#': text  0.4 0 'w' 'C:k'
+facez  0.6 -0.1 0 0.4 0.3 'p#': text  0.8 0 'p' 'C:k'
+#BGRHW
+facez -1   0.2 0 0.4 0.3 'B#': text -0.8 0.3 'B' 'C:k'
+facez -0.6 0.2 0 0.4 0.3 'G#': text -0.4 0.3 'G' 'C:k'
+facez -0.2 0.2 0 0.4 0.3 'R#': text  0   0.3 'R' 'C:k'
+facez  0.2 0.2 0 0.4 0.3 'H#': text  0.4 0.3 'H' 'C:k'
+facez  0.6 0.2 0 0.4 0.3 'W#': text  0.8 0.3 'W' 'C:k'
+#bgrhw
+facez -1   0.5 0 0.4 0.3 'b#': text -0.8 0.6 'b' 'C:w'
+facez -0.6 0.5 0 0.4 0.3 'g#': text -0.4 0.6 'g' 'C:w'
+facez -0.2 0.5 0 0.4 0.3 'r#': text  0   0.6 'r' 'C:w'
+facez  0.2 0.5 0 0.4 0.3 'h#': text  0.4 0.6 'h' 'C:w'
+facez  0.6 0.5 0 0.4 0.3 'w#': text  0.8 0.6 'w' 'C:w'
+#brighted
+facez -1   0.8 0 0.4 0.3 'r1#': text -0.8 0.9 'r1' 'C:k'
+facez -0.6 0.8 0 0.4 0.3 'r3#': text -0.4 0.9 'r3' 'C:k'
+facez -0.2 0.8 0 0.4 0.3 'r5#': text  0   0.9 'r5' 'C:k'
+facez  0.2 0.8 0 0.4 0.3 'r7#': text  0.4 0.9 'r7' 'C:k'
+facez  0.6 0.8 0 0.4 0.3 'r9#': text  0.8 0.9 'r9' 'C:k'
+</pre><hr size="6">
+<a name="Color-schemes-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Colors-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Normal-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440_044b-c_0432e_0442_043e_0432_044b_0445-_0441_0445e_043c"></a>
+<h3 class="subsection">3.5.10 Примеры цветовых схем</h3>
+<a name="index-Colorbar-1"></a>
+<div class="float">
+<img src="../png/color_schemes.png" alt="../png/color_schemes">
+</div><pre class="verbatim">new a 256 2: fill a 'x'
+subplot 2 10 0 0.2:dens a 'kw'
+text -1.4 -0.3 'kw' '' -8
+subplot 2 10 1 0.2:dens a 'wk'
+text -1.4 -0.3 'wk' '' -8
+subplot 2 10 2 0.2:dens a 'kHCcw'
+text -1.4 -0.3 'kHCcw' '' -8
+subplot 2 10 3 0.2:dens a 'kBbcw'
+text -1.4 -0.3 'kBbcw' '' -8
+subplot 2 10 4 0.2:dens a 'kRryw'
+text -1.4 -0.3 'kRryw' '' -8
+subplot 2 10 5 0.2:dens a 'kGgew'
+text -1.4 -0.3 'kGgew' '' -8
+subplot 2 10 6 0.2:dens a 'BbwrR'
+text -1.4 -0.3 'BbwrR' '' -8
+subplot 2 10 7 0.2:dens a 'BbwgG'
+text -1.4 -0.3 'BbwgG' '' -8
+subplot 2 10 8 0.2:dens a 'GgwmM'
+text -1.4 -0.3 'GgwmM' '' -8
+subplot 2 10 9 0.2:dens a 'UuwqR'
+text -1.4 -0.3 'UuwqR' '' -8
+subplot 2 10 10 0.2:dens a 'QqwcC'
+text -1.4 -0.3 'QqwcC' '' -8
+subplot 2 10 11 0.2:dens a 'CcwyY'
+text -1.4 -0.3 'CcwyY' '' -8
+subplot 2 10 12 0.2:dens a 'bcwyr'
+text -1.4 -0.3 'bcwyr' '' -8
+subplot 2 10 13 0.2:dens a 'bwr'
+text -1.4 -0.3 'bwr' '' -8
+subplot 2 10 14 0.2:dens a 'BbcyrR'
+text -1.4 -0.3 'BbcyrR' '' -8
+subplot 2 10 15 0.2:dens a 'UbcyqR'
+text -1.4 -0.3 'UbcyqR' '' -8
+subplot 2 10 16 0.2:dens a 'BbcwyrR'
+text -1.4 -0.3 'BbcwyrR' '' -8
+subplot 2 10 17 0.2:dens a 'bcyr'
+text -1.4 -0.3 'bcyr' '' -8
+subplot 2 10 18 0.2:dens a 'BbcyrR|'
+text -1.4 -0.3 'BbcyrR|' '' -8
+subplot 2 10 19 0.2:dens a 'bgr'
+text -1.4 -0.3 'bgr' '' -8
+</pre><hr size="6">
+<a name="Normal-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Color-schemes-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Glass_002dlike-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0431_044b_0447_043d_0430ya-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x"></a>
+<h3 class="subsection">3.5.11 Обычная прозрачность</h3>
+<a name="index-TranspType"></a>
+<div class="float">
+<img src="../png/type0.png" alt="../png/type0">
+</div><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 0: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre><hr size="6">
+<a name="Glass_002dlike-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Normal-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Lamp_002dlike-transparency" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0022_0421_0442e_043a_043bya_043d_043d_0430ya_0022-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x"></a>
+<h3 class="subsection">3.5.12 &quot;Стеклянная&quot; прозрачность</h3>
+<a name="index-TranspType-1"></a>
+<div class="float">
+<img src="../png/type1.png" alt="../png/type1">
+</div><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 1: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre><hr size="6">
+<a name="Lamp_002dlike-transparency"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Glass_002dlike-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Basic-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0022_041b_0430_043c_043f_043e_0432_0430ya_0022-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x"></a>
+<h3 class="subsection">3.5.13 &quot;Ламповая&quot; прозрачность</h3>
+<a name="index-TranspType-2"></a>
+<div class="float">
+<img src="../png/type2.png" alt="../png/type2">
+</div><pre class="verbatim">alpha on: light on
+new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+
+transptype 2: clf
+subplot 2 2 0: rotate 40 60: surf a:  box
+subplot 2 2 1: rotate 40 60: dens a:  box
+subplot 2 2 2: rotate 40 60: cont a:  box
+subplot 2 2 3: rotate 40 60: axial a: box
+</pre>
+
+
+
+
+
+
+
+
+<hr size="6">
+<a name="Additional-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Lamp_002dlike-transparency" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Legend-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0414_043e_043f_043e_043b_043d_0438_0442e_043bx_043d_044be-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438"></a>
+<h2 class="section">3.6 Дополнительные возможности</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Legend-sample">3.6.1 Legend &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Adding-mesh-sample">3.6.2 Добавляем сетку</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Surf-_0026-Cont-sample">3.6.3 Surf &amp; Cont &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Flow-_0026-Dens-sample">3.6.4 Flow &amp; Dens &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">          
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Several-light-sample">3.6.5 Несколько источников света</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">        
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Mirrored-surface-sample">3.6.6 Отражение поверхности</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Cont-with-labels-sample">3.6.7 Cont и подписи &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">     
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Ternary-plot-sample">3.6.8 Ternary plot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Coloring-by-coordinates-sample">3.6.9 Окрашивание по положению грани</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Drops-sample">3.6.10 Drops &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Molecules-drawing-sample">3.6.11 Рисование молекул</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">    
+</td></tr>
+</table>
+<hr size="6">
+<a name="Legend-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Additional-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Adding-mesh-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Legend-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.6.1 Legend &ndash; пример использования</h3>
+<a name="index-Plot-2"></a>
+<a name="index-Legend"></a>
+<a name="index-AddLegend"></a>
+<div class="float">
+<img src="../png/legend.png" alt="../png/legend">
+</div><pre class="verbatim">new f 50 3
+modify f 'sin(2*pi*x*x)'
+modify f 'sin(2*pi*x)' 1
+modify f 'sin(2*pi*sqrt(x))' 2
+axis 0 -1 1 1
+box
+plot f
+axis
+addlegend 'sin(\pi {x^2})' 'b'
+addlegend 'sin(\pi x)' 'g*'
+addlegend 'sin(\pi \sqrt{\a x})' 'r+'
+legend
+</pre><hr size="6">
+<a name="Adding-mesh-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Legend-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Surf-_0026-Cont-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0414_043e_0431_0430_0432_043byae_043c-_0441e_0442_043a_0443"></a>
+<h3 class="subsection">3.6.2 Добавляем сетку</h3>
+<a name="index-SubPlot-1"></a>
+<a name="index-Surf-6"></a>
+<a name="index-Dens-3"></a>
+<a name="index-Cont-1"></a>
+<a name="index-Axial-1"></a>
+<div class="float">
+<img src="../png/samplea.png" alt="../png/samplea">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+alpha on
+light on
+subplot 2 2 0
+rotate 40 60
+surf a 'BbcyrR#'
+box
+subplot 2 2 1
+rotate 40 60
+dens a 'BbcyrR#'
+box
+subplot 2 2 2
+rotate 40 60
+cont a 'BbcyrR#'
+box
+subplot 2 2 3
+rotate 40 60
+axial a 'BbcyrR#'
+box
+</pre><hr size="6">
+<a name="Surf-_0026-Cont-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Adding-mesh-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Flow-_0026-Dens-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Surf-_0026-Cont-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.6.3 Surf &amp; Cont &ndash; пример использования</h3>
+<a name="index-Surf-7"></a>
+<a name="index-Cont-2"></a>
+<div class="float">
+<img src="../png/surf_cont_y.png" alt="../png/surf_cont_y">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+box
+surf a
+cont a 'y'
+</pre><hr size="6">
+<a name="Flow-_0026-Dens-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Surf-_0026-Cont-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Several-light-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Flow-_0026-Dens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.6.4 Flow &amp; Dens &ndash; пример использования</h3>
+<a name="index-Flow-2"></a>
+<a name="index-Dens-4"></a>
+<div class="float">
+<img src="../png/flow_dens.png" alt="../png/flow_dens">
+</div><pre class="verbatim">new a 50 40
+new b 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+modify b '0.6*cos(2*pi*x)*cos(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+copy d a
+modify d 'sqrt(v^2+w^2)' a b
+box
+flow a b 'br'
+dens d 'BbcyrR'
+</pre><hr size="6">
+<a name="Several-light-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Flow-_0026-Dens-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Mirrored-surface-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041de_0441_043a_043e_043bx_043a_043e-_0438_0441_0442_043e_0447_043d_0438_043a_043e_0432-_0441_0432e_0442_0430"></a>
+<h3 class="subsection">3.6.5 Несколько источников света</h3>
+<a name="index-Surf-8"></a>
+<a name="index-Light"></a>
+<div class="float">
+<img src="../png/several_light.png" alt="../png/several_light">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+rotate 40 60
+light on
+light 1 0 1 0 'c'
+light 2 1 0 0 'y'
+light 3 0 -1 0 'm'
+box
+surf a 'h'
+</pre><hr size="6">
+<a name="Mirrored-surface-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Several-light-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Cont-with-labels-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0442_0440_0430_0436e_043d_0438e-_043f_043e_0432e_0440_0445_043d_043e_0441_0442_0438"></a>
+<h3 class="subsection">3.6.6 Отражение поверхности</h3>
+<a name="index-Surf-9"></a>
+<div class="float">
+<img src="../png/mirror.png" alt="../png/mirror">
+</div><pre class="verbatim">new a 30 40
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf a 'r'; yrange 0 1
+surf a 'b'; yrange 0 -1
+box
+</pre><p>or
+</p><pre class="verbatim">new a 30 40
+var x 30 -1 1
+var y1 40 0 1
+var y2 40 0 -1
+modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
+rotate 40 60
+light on
+surf x y1 a 'r'
+surf x y2 a 'b'
+box
+</pre><hr size="6">
+<a name="Cont-with-labels-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Mirrored-surface-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Ternary-plot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Cont-_0438-_043f_043e_0434_043f_0438_0441_0438-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.6.7 Cont и подписи &ndash; пример использования</h3>
+<a name="index-Cont-3"></a>
+<div class="float">
+<img src="../png/contt.png" alt="../png/contt">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+box
+cont a 'BbcyrRt'
+</pre><hr size="6">
+<a name="Ternary-plot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Cont-with-labels-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Coloring-by-coordinates-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Ternary-plot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.6.8 Ternary plot &ndash; пример использования</h3>
+<a name="index-Ternary"></a>
+<div class="float">
+<img src="../png/ternary.png" alt="../png/ternary">
+</div><pre class="verbatim">new rx 10
+new ry 10
+new x 50
+new y 50
+new a 20 30
+modify a '4*x*y'
+modify x '0.25*(1+cos(2*pi*x))'
+modify y '0.25*(1+sin(2*pi*x))'
+modify rx 'rnd'
+modify ry 'rnd*(1-v)' rx
+text -0.8 1.3 'Ternary plot (x+y+t=1)'
+ternary on
+plot x y 'r2'
+plot rx ry 'q^ '
+cont a
+line 0.5 0 0 0.75 'g2'
+axis
+grid 'xyz' 'B;'
+xlabel 'x comp.'
+ylabel 'y comp.'
+tlabel 't comp.'
+</pre><hr size="6">
+<a name="Coloring-by-coordinates-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Ternary-plot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Drops-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_043a_0440_0430_0448_0438_0432_0430_043d_0438e-_043f_043e-_043f_043e_043b_043e_0436e_043d_0438_044e-g_0440_0430_043d_0438"></a>
+<h3 class="subsection">3.6.9 Окрашивание по положению грани</h3>
+<a name="index-Surf3-4"></a>
+<div class="float">
+<img src="../png/surf3_rgbd.png" alt="../png/surf3_rgbd">
+</div><pre class="verbatim">new a 60 50 40
+modify a '-2*((2*x-1)^2 + (2*y-1)^2 + (2*z-1)^4 - (2*z-1)^2 - 0.1)'
+rotate 40 60
+box
+surf3 a 'bgrd'
+</pre><hr size="6">
+<a name="Drops-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Coloring-by-coordinates-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Molecules-drawing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Drops-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.6.10 Drops &ndash; пример использования</h3>
+<a name="index-Drop"></a>
+<div class="float">
+<img src="../png/drops.png" alt="../png/drops">
+</div><pre class="verbatim">light on
+text -1 1.2 'sh=0'
+drop -1 0 0 1 0.5 'r' 0
+text -0.33 1.2 'sh=0.33'
+drop -0.33 0 0 1 0.5 'r' 0.33
+text 0.33 1.2 'sh=0.67'
+drop 0.33 0 0 1 0.5 'r' 0.67
+text 1 1.2 'sh=1'
+drop 1 0 0 1 0.5 'r' 1
+ball -1 0 1 'k'
+ball -0.33 0 1 'k'
+ball 0.33 0 1 'k'
+ball 1 0 1 'k'
+line -1 0 1 1 0 1 'b'
+new h 100
+modify h '0.25*(1+x)^2'
+plot h 'k|'
+text -1 0.6 'h\sim(1+sh)^2' 'rL'
+</pre><hr size="6">
+<a name="Molecules-drawing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Drops-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Additional-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0420_0438_0441_043e_0432_0430_043d_0438e-_043c_043e_043be_043a_0443_043b"></a>
+<h3 class="subsection">3.6.11 Рисование молекул</h3>
+<a name="index-Drop-1"></a>
+<a name="index-Sphere"></a>
+<div class="float">
+<img src="../png/molecule.png" alt="../png/molecule">
+</div><pre class="verbatim">alpha on
+light on
+subplot 2 2 0
+text 0 1.2 'Methane, CH_4' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'k'
+drop 0 0 0 0 0 1 0.35 'h' 1 2
+sphere 0 0 0.7 0.25 'g'
+drop 0 0 0 -0.94 0 -0.33 0.35 'h' 1 2
+sphere -0.66 0 -0.23 0.25 'g'
+drop 0 0 0 0.47 0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 0.57 -0.23 0.25 'g'
+drop 0 0 0 0.47 -0.82 -0.33 0.35 'h' 1 2
+sphere 0.33 -0.57 -0.23 0.25 'g'
+subplot 2 2 1
+text 0 1.2 'Water, H{_2}O' '' -3
+rotate 60 100
+sphere 0 0 0 0.25 'r'
+drop 0 0 0 0.3 0.5 0 0.3 'm' 1 2
+sphere 0.3 0.5 0 0.25 'g'
+drop 0 0 0 0.3 -0.5 0 0.3 'm' 1 2
+sphere 0.3 -0.5 0 0.25 'g'
+subplot 2 2 2
+text 0 1.2 'Oxygen, O_2' '' -3
+rotate 60 120
+drop 0 0.5 0 0 -0.3 0 0.3 'm' 1 2
+sphere 0 0.5 0 0.25 'r'
+drop 0 -0.5 0 0 0.3 0 0.3 'm' 1 2
+sphere 0 -0.5 0 0.25 'r'
+subplot 2 2 3
+text 0 1.2 0 'Ammonia, NH_3' '' -3
+rotate 60 120
+sphere 0 0 0 0.25 'b'
+drop 0 0 0 0.33 0.57 0 0.32 'n' 1 2
+sphere 0.33 0.57 0 0.25 'g'
+drop 0 0 0 0.33 -0.57 0 0.32 'n' 1 2
+sphere 0.33 -0.57 0 0.25 'g'
+drop 0 0 0 -0.65 0 0 0.32 'n' 1 2
+sphere -0.65 0 0 0.25 'g'
+</pre><hr size="6">
+<a name="Advanced-features"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Molecules-drawing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Curvelinear-coorinates-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Samples" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0022_041f_0440_043e_0434_0432_0438_043d_0443_0442_044be_0022-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438"></a>
+<h2 class="section">3.7 &quot;Продвинутые&quot; возможности</h2>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top"><a href="#Curvelinear-coorinates-sample">3.7.1 Криволинейные координаты</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#g_t2_002daxes-sample">3.7.2 Несколько осей на одном графике</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Semi_002dlog-sample">3.7.3 Semi-log &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">             
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Log_002dlog-sample">3.7.4 Log-log &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Fitting-sample">3.7.5 Fitting &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Envelop-sample">3.7.6 Envelop &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">              
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Sew-sample">3.7.7 Sew &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#STFA-sample">3.7.8 STFA &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                 
+</td></tr>
+<tr><td align="left" valign="top"><a href="#PDE-sample">3.7.9 PDE &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">                  
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Beam-tracing-sample">3.7.10 Beam tracing &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Parser-sample">3.7.11 Parser &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">               
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Manual-ticks-sample">3.7.12 Особые метки по осям</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+<tr><td align="left" valign="top"><a href="#ColumnPlot-sample">3.7.13 ColumnPlot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">           
+</td></tr>
+<tr><td align="left" valign="top"><a href="#StickPlot-sample">3.7.14 StickPlot &ndash; пример использования</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">            
+</td></tr>
+<tr><td align="left" valign="top"><a href="#Stereo-image-sample">3.7.15 Пример стерео изображения</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">         
+</td></tr>
+</table>
+<hr size="6">
+<a name="Curvelinear-coorinates-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Advanced-features" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#g_t2_002daxes-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041a_0440_0438_0432_043e_043b_0438_043de_0439_043d_044be-_043a_043e_043e_0440_0434_0438_043d_0430_0442_044b"></a>
+<h3 class="subsection">3.7.1 Криволинейные координаты</h3>
+<a name="index-Axis-3"></a>
+<div class="float">
+<img src="../png/sample3.png" alt="../png/sample3">
+</div><pre class="verbatim">origin -1 1 -1
+subplot 2 2 0
+rotate 60 40
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cartesian'
+subplot 2 2 1
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Cylindrical'
+subplot 2 2 2
+rotate 60 40
+axis '2*y*x' 'y*y - x*x' ''
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Parabolic'
+subplot 2 2 3
+rotate 60 40
+axis 'y*sin(pi*x)' 'y*cos(pi*x)' 'x+z'
+line -1 0.5 0 1 0.5 0 'r2'
+axis
+grid
+text 0 1.3 1 'Spiral'
+axis '' '' '' # set to default Cartesian
+</pre><hr size="6">
+<a name="g_t2_002daxes-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Curvelinear-coorinates-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Semi_002dlog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041de_0441_043a_043e_043bx_043a_043e-_043e_0441e_0439-_043d_0430-_043e_0434_043d_043e_043c-g_0440_0430_0444_0438_043ae"></a>
+<h3 class="subsection">3.7.2 Несколько осей на одном графике</h3>
+<a name="index-Axis-4"></a>
+<div class="float">
+<img src="../png/2_axis.png" alt="../png/2_axis">
+</div><pre class="verbatim">new y1 50
+new y2 50
+modify y1 '0.3*sin(2*pi*x)'
+modify y2 '0.5+0.3*cos(2*pi*x)'
+axis -1 -1 -1 1 1 1
+origin -1 -1 -1
+axis
+ylabel 'axis 1' 0
+plot y1 'b'
+axis 0 0 0 1 1 1
+origin 1 1 1
+axis
+ylabel 'axis 2' 0
+stem y2 'r'
+</pre><hr size="6">
+<a name="Semi_002dlog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#g_t2_002daxes-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Log_002dlog-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Semi_002dlog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.3 Semi-log &ndash; пример использования</h3>
+<a name="index-Axis-5"></a>
+<a name="index-SetTicks"></a>
+<a name="index-Plot-3"></a>
+<div class="float">
+<img src="../png/semilog.png" alt="../png/semilog">
+</div><pre class="verbatim">new x 2000
+new y 2000
+modify x '0.01/(x+10^(-5))'
+modify y 'sin(1/v)' x
+xrange 0.01 1000
+origin 0.01 -1 0
+xtick 0
+axis 'lg(x)' '' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g'
+xlabel 'x' 0
+ylabel 'y = sin 1/x' 0
+box
+</pre><hr size="6">
+<a name="Log_002dlog-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Semi_002dlog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Fitting-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Log_002dlog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.4 Log-log &ndash; пример использования</h3>
+<a name="index-Axis-6"></a>
+<a name="index-SetTicks-1"></a>
+<a name="index-Plot-4"></a>
+<div class="float">
+<img src="../png/loglog.png" alt="../png/loglog">
+</div><pre class="verbatim">new x 100
+new y 100
+modify x 'pow(10,6*x-3)'
+modify y 'sqrt(1+v^2)' x
+axis 0.001 0.1 1000 1000
+xtick 0
+ytick 0
+axis 'lg(x)' 'lg(y)' ''
+plot x y 'b2'
+axis
+grid 'xy' 'g;'
+xlabel 'x' 0
+ylabel 'y=\sqrt{1+x^2}' 0
+box
+</pre><hr size="6">
+<a name="Fitting-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Log_002dlog-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Envelop-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Fitting-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.5 Fitting &ndash; пример использования</h3>
+<a name="index-Fit"></a>
+<a name="index-PutsFit"></a>
+<div class="float">
+<img src="../png/fit.png" alt="../png/fit">
+</div><pre class="verbatim">new rnd 100
+fill rnd '0.4*rnd+0.1+sin(2*pi*x)'
+new in 100
+fill in '0.3+sin(2*pi*x)'
+yrange -2 2
+plot rnd '. '
+box
+list ini 1 1 3
+fit res rnd 'a+b*sin(c*x)' 'abc' ini
+plot res 'r'
+plot in 'b'
+text -1 -1.3 'fitted:' 'L:r' -1
+putsfit 0 -1.8 'y = ' 'C:r'
+text 0 2.2 'initial: y = 0.3+sin(2\pi x)' 'C:b' -1
+</pre><hr size="6">
+<a name="Envelop-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Fitting-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Sew-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Envelop-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.6 Envelop &ndash; пример использования</h3>
+<a name="index-Envelop"></a>
+<div class="float">
+<img src="../png/envelop.png" alt="../png/envelop">
+</div><pre class="verbatim">new a 1000
+fill a 'exp(-8*x^2)*sin(10*pi*x)'
+plot a 'b'
+envelop a
+plot a 'r'
+axis
+</pre><hr size="6">
+<a name="Sew-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Envelop-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#STFA-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Sew-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.7 Sew &ndash; пример использования</h3>
+<a name="index-Sew"></a>
+<div class="float">
+<img src="../png/sew.png" alt="../png/sew">
+</div><pre class="verbatim">new a 100 100
+modify a 'mod((y^2-(1-x)^2)/2,0.1)'
+rotate 40 60
+light on
+alpha on
+surf a 'b'
+sew a 'xy' 0.1
+surf a 'r'
+box
+</pre><hr size="6">
+<a name="STFA-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Sew-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#PDE-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="STFA-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.8 STFA &ndash; пример использования</h3>
+<a name="index-STFA"></a>
+<div class="float">
+<img src="../png/stfa.png" alt="../png/stfa">
+</div><pre class="verbatim">new a 2000
+new b 2000
+fill a 'cos(50*pi*x)*(x&lt;-.5)+cos(100*pi*x)*(x&lt;0)*(x&gt;-.5)+
+        cos(200*pi*x)*(x&lt;.5)*(x&gt;0)+cos(400*pi*x)*(x&gt;.5)'
+subplot 1 2 0
+plot a
+axis
+xlabel '\i t'
+subplot 1 2 1
+stfa a b 64 ''
+axis
+ylabel '\omega' 0
+xlabel '\i t'
+</pre><hr size="6">
+<a name="PDE-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#STFA-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Beam-tracing-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="PDE-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.9 PDE &ndash; пример использования</h3>
+<a name="index-mglPDE"></a>
+<a name="index-mglRay"></a>
+<div class="float">
+<img src="../png/pde.png" alt="../png/pde">
+</div><pre class="verbatim">axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+fill re 'exp(-48*(x+0.7)^2)'
+pde a 'p^2+q^2-x-1+i*0.5*(z+x)*(z&gt;-x)' re im 0.01 30
+transpose a
+crange 0 1
+dens a 'wyrRk'
+fplot '-x' 'k|'
+text 0 0.85 'absorption: (x+z)/2 for x+z&gt;0' '' -1
+title 'Equation: ik_0\partial_zu + \Delta u + x\cdot u + i \frac{x+z}{2}\cdot u = 0' 'iC' -1.5
+</pre><hr size="6">
+<a name="Beam-tracing-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#PDE-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Parser-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Beam-tracing-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.10 Beam tracing &ndash; пример использования</h3>
+<a name="index-mglQO2d"></a>
+<a name="index-mglRay-1"></a>
+<div class="float">
+<img src="../png/qo2d.png" alt="../png/qo2d">
+</div><pre class="verbatim">define $1 'p^2+q^2-x-1+i*0.5*(y+x)*(y&gt;-x)'
+ray r $1 -0.7 -1 0 0 0.5 0 0.02 2
+plot r(0) r(1) 'k'
+axis
+xlabel '\i x'
+ylabel '\i z'
+new re 128
+new im 128
+new xx
+new yy
+fill re 'exp(-48*x^2)'
+qo2d a $1 re im r 1 30 xx yy 
+crange 0 1
+dens xx yy a 'wyrRk'
+fplot '-x' 'k|'
+text -0.8 0.85 'absorption: (x+y)/2 for x+y&gt;0' 'L' -1
+text 0.5 -0.05 'central ray' 'L' -1
+title 'Beam and ray tracing' 'C' -1.5
+</pre><hr size="6">
+<a name="Parser-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Beam-tracing-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Manual-ticks-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="Parser-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.11 Parser &ndash; пример использования</h3>
+<a name="index-mglParse"></a>
+<hr size="6">
+<a name="Manual-ticks-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Parser-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#ColumnPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041e_0441_043e_0431_044be-_043ce_0442_043a_0438-_043f_043e-_043e_0441ya_043c"></a>
+<h3 class="subsection">3.7.12 Особые метки по осям</h3>
+<a name="index-SetTicksVal"></a>
+<div class="float">
+<img src="../png/tval.png" alt="../png/tval">
+</div><pre class="verbatim">axis -pi 0 pi 2
+xtick -pi '-\pi' -1.571 '-\pi/2' 0 '0' 0.886 'x^*' 1.571 '\pi/2' pi '\pi'
+axis 
+grid
+fplot '2*cos(x^2)^2' 'r2' nan 300
+</pre><hr size="6">
+<a name="ColumnPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Manual-ticks-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#StickPlot-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="ColumnPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.13 ColumnPlot &ndash; пример использования</h3>
+<a name="index-SetTicksVal-1"></a>
+<div class="float">
+<img src="../png/column.png" alt="../png/column">
+</div><pre class="verbatim">for $1 0 3
+columnplot 4 $1
+box
+text -0.5 0.5 'Plot $1 of 4'
+fplot 'sin(pi*x+pi*$1/2)'
+next
+</pre><hr size="6">
+<a name="StickPlot-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#ColumnPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Stereo-image-sample" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="StickPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya"></a>
+<h3 class="subsection">3.7.14 StickPlot &ndash; пример использования</h3>
+<a name="index-SetTicksVal-2"></a>
+<div class="float">
+<img src="../png/stick.png" alt="../png/stick">
+</div><pre class="verbatim">ranges -1 1 -1 1 0 1:light on
+stickplot 3 0 40 30 : axis 'xyz_'
+fsurf 'exp(-10*y^2-6*x^2)'
+text 0.2 0 1.2 'z=0' '' -2
+stickplot 3 1 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/2-6*x^2)/sqrt(2)'
+text 0.2 0 1.2 'z=1' '' -2
+stickplot 3 2 40 30 : axis 'xy_'
+fsurf 'exp(-10*y^2/5-6*x^2)/sqrt(5)'
+text 0.2 0 1.2 'z=2' '' -2
+xlabel '\tau' 0 : ylabel '\rho'
+</pre><hr size="6">
+<a name="Stereo-image-sample"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#StickPlot-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Advanced-features" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_041f_0440_0438_043ce_0440-_0441_0442e_0440e_043e-_0438_0437_043e_0431_0440_0430_0436e_043d_0438ya"></a>
+<h3 class="subsection">3.7.15 Пример стерео изображения</h3>
+<div class="float">
+<img src="../png/stereo.png" alt="../png/stereo">
+</div><pre class="verbatim">new a 50 40
+modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
+light on
+subplot 2 1 0
+rotate 40 60+3
+box:surf a
+subplot 2 1 1
+rotate 40 60-3
+box:surf a
+</pre>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mgl_ru.html/mgl_ru_4.html b/texinfo/mgl_ru.html/mgl_ru_4.html
new file mode 100644
index 0000000..4c76bcc
--- /dev/null
+++ b/texinfo/mgl_ru.html/mgl_ru_4.html
@@ -0,0 +1,514 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: A. GNU Free Documentation License</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: A. GNU Free Documentation License">
+<meta name="keywords" content="Язык MGL для версии 1.11: A. GNU Free Documentation License">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Copying-This-Manual"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_3.html#Stereo-image-sample" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="GNU-Free-Documentation-License"></a>
+<h1 class="appendix">A. GNU Free Documentation License</h1>
+<p align="center"> Version 1.2, November 2002
+</p>
+
+<table><tr><td>&nbsp;</td><td><pre class="display">Copyright &copy; 2000,2001,2002 Free Software Foundation, Inc.
+51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+</pre></td></tr></table>
+
+<ol>
+<li>
+PREAMBLE
+
+<p>The purpose of this License is to make a manual, textbook, or other
+functional and useful document <em>free</em> in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+</p>
+<p>This License is a kind of &ldquo;copyleft&rdquo;, which means that derivative
+works of the document must themselves be free in the same sense.  It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+</p>
+<p>We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does.  But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book.  We recommend this License
+principally for works whose purpose is instruction or reference.
+</p>
+</li><li>
+APPLICABILITY AND DEFINITIONS
+
+<p>This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License.  Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein.  The &ldquo;Document&rdquo;, below,
+refers to any such manual or work.  Any member of the public is a
+licensee, and is addressed as &ldquo;you&rdquo;.  You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+</p>
+<p>A &ldquo;Modified Version&rdquo; of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+</p>
+<p>A &ldquo;Secondary Section&rdquo; is a named appendix or a front-matter section
+of the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document&rsquo;s overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject.  (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.)  The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+</p>
+<p>The &ldquo;Invariant Sections&rdquo; are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License.  If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant.  The Document may contain zero
+Invariant Sections.  If the Document does not identify any Invariant
+Sections then there are none.
+</p>
+<p>The &ldquo;Cover Texts&rdquo; are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.  A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+</p>
+<p>A &ldquo;Transparent&rdquo; copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters.  A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text.  A copy that is not &ldquo;Transparent&rdquo; is called &ldquo;Opaque&rdquo;.
+</p>
+<p>Examples of suitable formats for Transparent copies include plain
+<small>ASCII</small> without markup, Texinfo input format, LaTeX input
+format, <acronym>SGML</acronym> or <acronym>XML</acronym> using a publicly available
+<acronym>DTD</acronym>, and standard-conforming simple <acronym>HTML</acronym>,
+PostScript or <acronym>PDF</acronym> designed for human modification.  Examples
+of transparent image formats include <acronym>PNG</acronym>, <acronym>XCF</acronym> and
+<acronym>JPG</acronym>.  Opaque formats include proprietary formats that can be
+read and edited only by proprietary word processors, <acronym>SGML</acronym> or
+<acronym>XML</acronym> for which the <acronym>DTD</acronym> and/or processing tools are
+not generally available, and the machine-generated <acronym>HTML</acronym>,
+PostScript or <acronym>PDF</acronym> produced by some word processors for
+output purposes only.
+</p>
+<p>The &ldquo;Title Page&rdquo; means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page.  For works in
+formats which do not have any title page as such, &ldquo;Title Page&rdquo; means
+the text near the most prominent appearance of the work&rsquo;s title,
+preceding the beginning of the body of the text.
+</p>
+<p>A section &ldquo;Entitled XYZ&rdquo; means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language.  (Here XYZ stands for a
+specific section name mentioned below, such as &ldquo;Acknowledgements&rdquo;,
+&ldquo;Dedications&rdquo;, &ldquo;Endorsements&rdquo;, or &ldquo;History&rdquo;.)  To &ldquo;Preserve the Title&rdquo;
+of such a section when you modify the Document means that it remains a
+section &ldquo;Entitled XYZ&rdquo; according to this definition.
+</p>
+<p>The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document.  These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+</p>
+</li><li>
+VERBATIM COPYING
+
+<p>You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License.  You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute.  However, you may accept
+compensation in exchange for copies.  If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+</p>
+<p>You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+</p>
+</li><li>
+COPYING IN QUANTITY
+
+<p>If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document&rsquo;s license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover.  Both covers must also clearly and legibly identify
+you as the publisher of these copies.  The front cover must present
+the full title with all words of the title equally prominent and
+visible.  You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+</p>
+<p>If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+</p>
+<p>If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+</p>
+<p>It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+</p>
+</li><li>
+MODIFICATIONS
+
+<p>You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it.  In addition, you must do these things in the Modified Version:
+</p>
+<ol>
+<li>
+Use in the Title Page (and on the covers, if any) a title distinct
+from that of the Document, and from those of previous versions
+(which should, if there were any, be listed in the History section
+of the Document).  You may use the same title as a previous version
+if the original publisher of that version gives permission.
+
+</li><li>
+List on the Title Page, as authors, one or more persons or entities
+responsible for authorship of the modifications in the Modified
+Version, together with at least five of the principal authors of the
+Document (all of its principal authors, if it has fewer than five),
+unless they release you from this requirement.
+
+</li><li>
+State on the Title page the name of the publisher of the
+Modified Version, as the publisher.
+
+</li><li>
+Preserve all the copyright notices of the Document.
+
+</li><li>
+Add an appropriate copyright notice for your modifications
+adjacent to the other copyright notices.
+
+</li><li>
+Include, immediately after the copyright notices, a license notice
+giving the public permission to use the Modified Version under the
+terms of this License, in the form shown in the Addendum below.
+
+</li><li>
+Preserve in that license notice the full lists of Invariant Sections
+and required Cover Texts given in the Document&rsquo;s license notice.
+
+</li><li>
+Include an unaltered copy of this License.
+
+</li><li>
+Preserve the section Entitled &ldquo;History&rdquo;, Preserve its Title, and add
+to it an item stating at least the title, year, new authors, and
+publisher of the Modified Version as given on the Title Page.  If
+there is no section Entitled &ldquo;History&rdquo; in the Document, create one
+stating the title, year, authors, and publisher of the Document as
+given on its Title Page, then add an item describing the Modified
+Version as stated in the previous sentence.
+
+</li><li>
+Preserve the network location, if any, given in the Document for
+public access to a Transparent copy of the Document, and likewise
+the network locations given in the Document for previous versions
+it was based on.  These may be placed in the &ldquo;History&rdquo; section.
+You may omit a network location for a work that was published at
+least four years before the Document itself, or if the original
+publisher of the version it refers to gives permission.
+
+</li><li>
+For any section Entitled &ldquo;Acknowledgements&rdquo; or &ldquo;Dedications&rdquo;, Preserve
+the Title of the section, and preserve in the section all the
+substance and tone of each of the contributor acknowledgements and/or
+dedications given therein.
+
+</li><li>
+Preserve all the Invariant Sections of the Document,
+unaltered in their text and in their titles.  Section numbers
+or the equivalent are not considered part of the section titles.
+
+</li><li>
+Delete any section Entitled &ldquo;Endorsements&rdquo;.  Such a section
+may not be included in the Modified Version.
+
+</li><li>
+Do not retitle any existing section to be Entitled &ldquo;Endorsements&rdquo; or
+to conflict in title with any Invariant Section.
+
+</li><li>
+Preserve any Warranty Disclaimers.
+</li></ol>
+
+<p>If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant.  To do this, add their titles to the
+list of Invariant Sections in the Modified Version&rsquo;s license notice.
+These titles must be distinct from any other section titles.
+</p>
+<p>You may add a section Entitled &ldquo;Endorsements&rdquo;, provided it contains
+nothing but endorsements of your Modified Version by various
+parties&mdash;for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+</p>
+<p>You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version.  Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity.  If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+</p>
+<p>The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+</p>
+</li><li>
+COMBINING DOCUMENTS
+
+<p>You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+</p>
+<p>The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy.  If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+</p>
+<p>In the combination, you must combine any sections Entitled &ldquo;History&rdquo;
+in the various original documents, forming one section Entitled
+&ldquo;History&rdquo;; likewise combine any sections Entitled &ldquo;Acknowledgements&rdquo;,
+and any sections Entitled &ldquo;Dedications&rdquo;.  You must delete all
+sections Entitled &ldquo;Endorsements.&rdquo;
+</p>
+</li><li>
+COLLECTIONS OF DOCUMENTS
+
+<p>You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+</p>
+<p>You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+</p>
+</li><li>
+AGGREGATION WITH INDEPENDENT WORKS
+
+<p>A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an &ldquo;aggregate&rdquo; if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation&rsquo;s users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+</p>
+<p>If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document&rsquo;s Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+</p>
+</li><li>
+TRANSLATION
+
+<p>Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections.  You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers.  In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+</p>
+<p>If a section in the Document is Entitled &ldquo;Acknowledgements&rdquo;,
+&ldquo;Dedications&rdquo;, or &ldquo;History&rdquo;, the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+</p>
+</li><li>
+TERMINATION
+
+<p>You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License.  Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License.  However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+</p>
+</li><li>
+FUTURE REVISIONS OF THIS LICENSE
+
+<p>The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time.  Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.  See
+<a href="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</a>.
+</p>
+<p>Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License &ldquo;or any later version&rdquo; applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation.  If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+</p></li></ol>
+
+
+<a name="ADDENDUM_003a-How-to-use-this-License-for-your-documents"></a>
+<h2 class="heading">ADDENDUM: How to use this License for your documents</h2>
+
+<p>To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample">  Copyright (C)  <var>year</var>  <var>your name</var>.
+  Permission is granted to copy, distribute and/or modify this document
+  under the terms of the GNU Free Documentation License, Version 1.2
+  or any later version published by the Free Software Foundation;
+  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+  Texts.  A copy of the license is included in the section entitled ``GNU
+  Free Documentation License''.
+</pre></td></tr></table>
+
+<p>If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the &ldquo;with&hellip;Texts.&rdquo; line with this:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample">    with the Invariant Sections being <var>list their titles</var>, with
+    the Front-Cover Texts being <var>list</var>, and with the Back-Cover Texts
+    being <var>list</var>.
+</pre></td></tr></table>
+
+<p>If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+</p>
+<p>If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
+</p>
+
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_3.html#Samples" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mgl_ru.html/mgl_ru_5.html b/texinfo/mgl_ru.html/mgl_ru_5.html
new file mode 100644
index 0000000..2c51cbe
--- /dev/null
+++ b/texinfo/mgl_ru.html/mgl_ru_5.html
@@ -0,0 +1,306 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: Индекс</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: Индекс">
+<meta name="keywords" content="Язык MGL для версии 1.11: Индекс">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="Index"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_6.html#index_split-0" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<a name="g_t_0418_043d_0434e_043a_0441"></a>
+<h1 class="unnumbered">Индекс</h1>
+
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_ru_8.html#index_split-2_cp_symbol-1" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-2" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-3" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="g_t_0418_043d_0434e_043a_0441_cp_letter-A">A</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-addlegend">addlegend</a></td><td valign="top"><a href="mgl_ru_1.html#Legend">1.9 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-AddLegend">AddLegend</a></td><td valign="top"><a href="mgl_ru_3.html#Legend-sample">3.6.1 Legend &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-addto">addto</a></td><td valign="top"><a href="mgl_ru_1.html#Operators">1.23 Операторы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-adjust">adjust</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-alpha">alpha</a></td><td valign="top"><a href="mgl_ru_1.html#Transparency">1.2.1 Прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Alpha">Alpha</a></td><td valign="top"><a href="mgl_ru_3.html#Transparent-surface-sample">3.2.2 Transparent surface &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Alpha-1">Alpha</a></td><td valign="top"><a href="mgl_ru_3.html#g_t2D-plot-sample">3.5.2 Пример графиков 2D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-alpha-2">alpha</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Alpha-2">Alpha</a></td><td valign="top"><a href="mgl_ru_3.html#g_t3D-plot-sample">3.5.3 Пример графиков 3D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-alphadef">alphadef</a></td><td valign="top"><a href="mgl_ru_1.html#Transparency">1.2.1 Прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-alphadef-2">alphadef</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ambient">ambient</a></td><td valign="top"><a href="mgl_ru_1.html#Lighting">1.2.2 Освещение</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ambient-2">ambient</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-area">area</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Area">Area</a></td><td valign="top"><a href="mgl_ru_3.html#Area-sample">3.1.4 Area &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Area-1">Area</a></td><td valign="top"><a href="mgl_ru_3.html#Area-gradient-sample">3.1.5 Area с градиентной заливкой &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-arrowsize">arrowsize</a></td><td valign="top"><a href="mgl_ru_1.html#Default-sizes">1.2.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-aspect">aspect</a></td><td valign="top"><a href="mgl_ru_1.html#Transformation-matrix">1.4 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Axial">Axial</a></td><td valign="top"><a href="mgl_ru_3.html#Axial-sample">3.2.14 Axial &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-axial">axial</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Axial-1">Axial</a></td><td valign="top"><a href="mgl_ru_3.html#Adding-mesh-sample">3.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-axialdir">axialdir</a></td><td valign="top"><a href="mgl_ru_1.html#Other-settings">1.2.7 Прочие настройки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-axis">axis</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Axis">Axis</a></td><td valign="top"><a href="mgl_ru_3.html#Pie-chart-sample">3.1.23 Pie chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-axis-5">axis</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-and-Colorbar">1.8 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Axis-1">Axis</a></td><td valign="top"><a href="mgl_ru_3.html#Ring-chart-sample">3.1.24 Ring chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Axis-2">Axis</a></td><td valign="top"><a href="mgl_ru_3.html#Dens3-sample">3.3.4 Dens3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Axis-3">Axis</a></td><td valign="top"><a href="mgl_ru_3.html#Curvelinear-coorinates-sample">3.7.1 Криволинейные координаты</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Axis-4">Axis</a></td><td valign="top"><a href="mgl_ru_3.html#g_t2_002daxes-sample">3.7.2 Несколько осей на одном графике</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Axis-5">Axis</a></td><td valign="top"><a href="mgl_ru_3.html#Semi_002dlog-sample">3.7.3 Semi-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Axis-6">Axis</a></td><td valign="top"><a href="mgl_ru_3.html#Log_002dlog-sample">3.7.4 Log-log &ndash; пример использования</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="g_t_0418_043d_0434e_043a_0441_cp_letter-B">B</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ball">ball</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-barh">barh</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Barh">Barh</a></td><td valign="top"><a href="mgl_ru_3.html#Barh-sample">3.1.10 Barh &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-bars">bars</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Bars">Bars</a></td><td valign="top"><a href="mgl_ru_3.html#Bars-sample">3.1.6 Bars &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Bars-1">Bars</a></td><td valign="top"><a href="mgl_ru_3.html#Bars-2-colors-sample">3.1.7 Bars (2 цвета) &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Bars-2">Bars</a></td><td valign="top"><a href="mgl_ru_3.html#Bars-above-sample">3.1.8 Bars (один над другим) &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Bars-3">Bars</a></td><td valign="top"><a href="mgl_ru_3.html#Bars-fall-sample">3.1.9 Bars &quot;водопад&quot; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Bars-4">Bars</a></td><td valign="top"><a href="mgl_ru_3.html#g_t1D-plot-sample">3.5.1 Пример графиков 1D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-barwidth">barwidth</a></td><td valign="top"><a href="mgl_ru_1.html#Default-sizes">1.2.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-beam">beam</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Belt">Belt</a></td><td valign="top"><a href="mgl_ru_3.html#Belt-sample">3.2.7 Belt &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-belt">belt</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-box">box</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-and-Colorbar">1.8 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-BoxPlot">BoxPlot</a></td><td valign="top"><a href="mgl_ru_3.html#BoxPlot-sample">3.1.16 BoxPlot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-boxplot">boxplot</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-boxs">boxs</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Boxs">Boxs</a></td><td valign="top"><a href="mgl_ru_3.html#Boxs-sample">3.2.9 Boxs &ndash; пример использования</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="g_t_0418_043d_0434e_043a_0441_cp_letter-C">C</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-call">call</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-caxis">caxis</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-chart">chart</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Chart">Chart</a></td><td valign="top"><a href="mgl_ru_3.html#Chart-sample">3.1.22 Chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Chart-1">Chart</a></td><td valign="top"><a href="mgl_ru_3.html#Pie-chart-sample">3.1.23 Pie chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Chart-2">Chart</a></td><td valign="top"><a href="mgl_ru_3.html#Ring-chart-sample">3.1.24 Ring chart &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-chdir">chdir</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-clearlegend">clearlegend</a></td><td valign="top"><a href="mgl_ru_1.html#Legend">1.9 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-clf">clf</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-cloud">cloud</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Cloud">Cloud</a></td><td valign="top"><a href="mgl_ru_3.html#Cloud-sample">3.3.2 Cloud &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-CloudP">CloudP</a></td><td valign="top"><a href="mgl_ru_3.html#CloudP-sample">3.3.3 CloudP &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-colorbar">colorbar</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-and-Colorbar">1.8 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Colorbar">Colorbar</a></td><td valign="top"><a href="mgl_ru_3.html#Dens-sample">3.2.10 Dens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Colorbar-1">Colorbar</a></td><td valign="top"><a href="mgl_ru_3.html#Color-schemes-sample">3.5.10 Примеры цветовых схем</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-columnplot">columnplot</a></td><td valign="top"><a href="mgl_ru_1.html#Transformation-matrix">1.4 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-combine">combine</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-cone">cone</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Cont">Cont</a></td><td valign="top"><a href="mgl_ru_3.html#Cont-sample">3.2.11 Cont &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-cont">cont</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Cont-1">Cont</a></td><td valign="top"><a href="mgl_ru_3.html#Adding-mesh-sample">3.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Cont-2">Cont</a></td><td valign="top"><a href="mgl_ru_3.html#Surf-_0026-Cont-sample">3.6.3 Surf &amp; Cont &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Cont-3">Cont</a></td><td valign="top"><a href="mgl_ru_3.html#Cont-with-labels-sample">3.6.7 Cont и подписи &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Cont3">Cont3</a></td><td valign="top"><a href="mgl_ru_3.html#Cont3-sample">3.3.5 Cont3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-cont3">cont3</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-conta">conta</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-contd">contd</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-ContD">ContD</a></td><td valign="top"><a href="mgl_ru_3.html#ContD-sample">3.2.13 ContD &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-contf">contf</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-ContF">ContF</a></td><td valign="top"><a href="mgl_ru_3.html#ContF-sample">3.2.12 ContF &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-ContF3">ContF3</a></td><td valign="top"><a href="mgl_ru_3.html#ContF3-sample">3.3.6 ContF3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-contf3">contf3</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-ContF3-1">ContF3</a></td><td valign="top"><a href="mgl_ru_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-contfa">contfa</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-contfx">contfx</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-contfy">contfy</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-contfz">contfz</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-ContX">ContX</a></td><td valign="top"><a href="mgl_ru_3.html#Cont-projection-sample">3.3.7 Cont projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-contx">contx</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-ContY">ContY</a></td><td valign="top"><a href="mgl_ru_3.html#Cont-projection-sample">3.3.7 Cont projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-conty">conty</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-contz">contz</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-ContZ">ContZ</a></td><td valign="top"><a href="mgl_ru_3.html#Cont-projection-sample">3.3.7 Cont projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-copy">copy</a></td><td valign="top"><a href="mgl_ru_1.html#Data-create">1.17 Создание данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-cosfft">cosfft</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-crange">crange</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-crange-3">crange</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-crop">crop</a></td><td valign="top"><a href="mgl_ru_1.html#Rearrange-data">1.19 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-crust">crust</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Crust">Crust</a></td><td valign="top"><a href="mgl_ru_3.html#Crust-sample">3.4.19 Crust &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ctick">ctick</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-cumsum">cumsum</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-curve">curve</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-cut">cut</a></td><td valign="top"><a href="mgl_ru_1.html#Cutting">1.2.6 Обрезание</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-cut-4">cut</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-CutMax">CutMax</a></td><td valign="top"><a href="mgl_ru_3.html#CutMinMax-sample">3.3.9 CutMinMax &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-CutMax-1">CutMax</a></td><td valign="top"><a href="mgl_ru_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-CutMin">CutMin</a></td><td valign="top"><a href="mgl_ru_3.html#CutMinMax-sample">3.3.9 CutMinMax &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-CutMin-1">CutMin</a></td><td valign="top"><a href="mgl_ru_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-CutOff">CutOff</a></td><td valign="top"><a href="mgl_ru_3.html#CutOff-sample">3.3.11 CutOff &ndash; пример использования</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_ru_8.html#index_split-2_cp_symbol-1" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-2" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-3" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mgl_ru.html/mgl_ru_6.html b/texinfo/mgl_ru.html/mgl_ru_6.html
new file mode 100644
index 0000000..63c02ec
--- /dev/null
+++ b/texinfo/mgl_ru.html/mgl_ru_6.html
@@ -0,0 +1,321 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: Индекс: D &ndash; M</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: Индекс: D &ndash; M">
+<meta name="keywords" content="Язык MGL для версии 1.11: Индекс: D &ndash; M">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-0"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_7.html#index_split-1" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Индекс: D &ndash; M</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_ru_8.html#index_split-2_cp_symbol-1" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-2" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-3" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-D">D</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-defchr">defchr</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-define">define</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-defnum">defnum</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-defpal">defpal</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-delete">delete</a></td><td valign="top"><a href="mgl_ru_1.html#Rearrange-data">1.19 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-dens">dens</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Dens">Dens</a></td><td valign="top"><a href="mgl_ru_3.html#Dens-sample">3.2.10 Dens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Dens-1">Dens</a></td><td valign="top"><a href="mgl_ru_3.html#g_t2D-plot-sample">3.5.2 Пример графиков 2D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Dens-2">Dens</a></td><td valign="top"><a href="mgl_ru_3.html#g_t3D-plot-sample">3.5.3 Пример графиков 3D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Dens-3">Dens</a></td><td valign="top"><a href="mgl_ru_3.html#Adding-mesh-sample">3.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Dens-4">Dens</a></td><td valign="top"><a href="mgl_ru_3.html#Flow-_0026-Dens-sample">3.6.4 Flow &amp; Dens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-dens3">dens3</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Dens3">Dens3</a></td><td valign="top"><a href="mgl_ru_3.html#Dens3-sample">3.3.4 Dens3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-densa">densa</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-densx">densx</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-DensX">DensX</a></td><td valign="top"><a href="mgl_ru_3.html#Dens-projection-sample">3.3.8 Dens projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-DensY">DensY</a></td><td valign="top"><a href="mgl_ru_3.html#Dens-projection-sample">3.3.8 Dens projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-densy">densy</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-densz">densz</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-DensZ">DensZ</a></td><td valign="top"><a href="mgl_ru_3.html#Dens-projection-sample">3.3.8 Dens projection &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Dew">Dew</a></td><td valign="top"><a href="mgl_ru_3.html#Dew-sample">3.4.11 Dew &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-dew">dew</a></td><td valign="top"><a href="mgl_ru_1.html#Vector-fields">1.14 Векторные поля</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-diff">diff</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-diff2">diff2</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-divto">divto</a></td><td valign="top"><a href="mgl_ru_1.html#Operators">1.23 Операторы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-dots">dots</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Dots">Dots</a></td><td valign="top"><a href="mgl_ru_3.html#Dots-sample">3.4.20 Dots &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-drop">drop</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Drop">Drop</a></td><td valign="top"><a href="mgl_ru_3.html#Drops-sample">3.6.10 Drops &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Drop-1">Drop</a></td><td valign="top"><a href="mgl_ru_3.html#Molecules-drawing-sample">3.6.11 Рисование молекул</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-E">E</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-else">else</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-elseif">elseif</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-endif">endif</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-envelop">envelop</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Envelop">Envelop</a></td><td valign="top"><a href="mgl_ru_3.html#Envelop-sample">3.7.6 Envelop &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Error">Error</a></td><td valign="top"><a href="mgl_ru_3.html#Error-sample">3.1.15 Error &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-error">error</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-evaluate">evaluate</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-export">export</a></td><td valign="top"><a href="mgl_ru_1.html#File-I_002fO">1.20 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-extend">extend</a></td><td valign="top"><a href="mgl_ru_1.html#Rearrange-data">1.19 Изменение размеров данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-F">F</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-facex">facex</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-facey">facey</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-facez">facez</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fall">fall</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Fall">Fall</a></td><td valign="top"><a href="mgl_ru_3.html#Fall-sample">3.2.6 Fall &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fgets">fgets</a></td><td valign="top"><a href="mgl_ru_1.html#Text-printing">1.7 Вывод текста</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fill">fill</a></td><td valign="top"><a href="mgl_ru_1.html#Data-filling">1.18 Заполнение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fill-1">fill</a></td><td valign="top"><a href="mgl_ru_1.html#Data-filling">1.18 Заполнение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fit">fit</a></td><td valign="top"><a href="mgl_ru_1.html#Nonlinear-fitting">1.16 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Fit">Fit</a></td><td valign="top"><a href="mgl_ru_3.html#Fitting-sample">3.7.5 Fitting &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fits">fits</a></td><td valign="top"><a href="mgl_ru_1.html#Nonlinear-fitting">1.16 Nonlinear fitting</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Flow">Flow</a></td><td valign="top"><a href="mgl_ru_3.html#Flow-sample">3.4.9 Flow &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-flow">flow</a></td><td valign="top"><a href="mgl_ru_1.html#Vector-fields">1.14 Векторные поля</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Flow-1">Flow</a></td><td valign="top"><a href="mgl_ru_3.html#Flow-3D-sample">3.4.17 Flow 3D &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Flow-2">Flow</a></td><td valign="top"><a href="mgl_ru_3.html#Flow-_0026-Dens-sample">3.6.4 Flow &amp; Dens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fog">fog</a></td><td valign="top"><a href="mgl_ru_1.html#Fog">1.2.3 Туман</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Fog">Fog</a></td><td valign="top"><a href="mgl_ru_3.html#Surface-in-fog-sample">3.2.3 Surface in fog &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-font">font</a></td><td valign="top"><a href="mgl_ru_1.html#Other-settings">1.2.7 Прочие настройки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fontsize">fontsize</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-for">for</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fplot">fplot</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-fsurf">fsurf</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-func">func</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-G">G</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-grad">grad</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Grad">Grad</a></td><td valign="top"><a href="mgl_ru_3.html#Grad-sample">3.2.15 Grad &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-grid">grid</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-and-Colorbar">1.8 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-grid2">grid2</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-grid3">grid3</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-grida">grida</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-H">H</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-hankel">hankel</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-hist">hist</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-I">I</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-idset">idset</a></td><td valign="top"><a href="mgl_ru_1.html#Data-create">1.17 Создание данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-if">if</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-import">import</a></td><td valign="top"><a href="mgl_ru_1.html#File-I_002fO">1.20 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-info">info</a></td><td valign="top"><a href="mgl_ru_1.html#Data-create">1.17 Создание данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-inplot">inplot</a></td><td valign="top"><a href="mgl_ru_1.html#Transformation-matrix">1.4 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-insert">insert</a></td><td valign="top"><a href="mgl_ru_1.html#Rearrange-data">1.19 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-integrate">integrate</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-J">J</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-jacobian">jacobian</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-L">L</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Legend">Legend</a></td><td valign="top"><a href="mgl_ru_3.html#Legend-sample">3.6.1 Legend &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-legend">legend</a></td><td valign="top"><a href="mgl_ru_1.html#Legend">1.9 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-legend-3">legend</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-legendbox">legendbox</a></td><td valign="top"><a href="mgl_ru_1.html#Legend">1.9 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-legendmarks">legendmarks</a></td><td valign="top"><a href="mgl_ru_1.html#Legend">1.9 Легенда</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-light">light</a></td><td valign="top"><a href="mgl_ru_1.html#Lighting">1.2.2 Освещение</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Light">Light</a></td><td valign="top"><a href="mgl_ru_3.html#Several-light-sample">3.6.5 Несколько источников света</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Line">Line</a></td><td valign="top"><a href="mgl_ru_3.html#Line-styles-sample">3.5.4 Пример стилей линий и маркеров</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-line">line</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Line-1">Line</a></td><td valign="top"><a href="mgl_ru_3.html#Arrow-styles-sample">3.5.5 Пример стилей стрелок</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-linewidth">linewidth</a></td><td valign="top"><a href="mgl_ru_1.html#Default-sizes">1.2.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-list">list</a></td><td valign="top"><a href="mgl_ru_1.html#Data-create">1.17 Создание данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-0_cp_letter-M">M</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-map">map</a></td><td valign="top"><a href="mgl_ru_1.html#Dual-plotting">1.13 Парные графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Map">Map</a></td><td valign="top"><a href="mgl_ru_3.html#Map-sample">3.4.4 Map &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-mark">mark</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Mark">Mark</a></td><td valign="top"><a href="mgl_ru_3.html#Mark-sample">3.1.17 Mark &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Mark-1">Mark</a></td><td valign="top"><a href="mgl_ru_3.html#Line-styles-sample">3.5.4 Пример стилей линий и маркеров</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-marksize">marksize</a></td><td valign="top"><a href="mgl_ru_1.html#Default-sizes">1.2.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-marksize-2">marksize</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-max">max</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-mesh">mesh</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Mesh">Mesh</a></td><td valign="top"><a href="mgl_ru_3.html#Mesh-sample">3.2.5 Mesh &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-meshnum">meshnum</a></td><td valign="top"><a href="mgl_ru_1.html#Other-settings">1.2.7 Прочие настройки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-meshnum-2">meshnum</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-mglParse">mglParse</a></td><td valign="top"><a href="mgl_ru_3.html#Parser-sample">3.7.11 Parser &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-mglPDE">mglPDE</a></td><td valign="top"><a href="mgl_ru_3.html#PDE-sample">3.7.9 PDE &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-mglQO2d">mglQO2d</a></td><td valign="top"><a href="mgl_ru_3.html#Beam-tracing-sample">3.7.10 Beam tracing &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-mglRay">mglRay</a></td><td valign="top"><a href="mgl_ru_3.html#PDE-sample">3.7.9 PDE &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-mglRay-1">mglRay</a></td><td valign="top"><a href="mgl_ru_3.html#Beam-tracing-sample">3.7.10 Beam tracing &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-min">min</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-mirror">mirror</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-modify">modify</a></td><td valign="top"><a href="mgl_ru_1.html#Data-filling">1.18 Заполнение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-modify-1">modify</a></td><td valign="top"><a href="mgl_ru_1.html#Data-filling">1.18 Заполнение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-momentum">momentum</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-multo">multo</a></td><td valign="top"><a href="mgl_ru_1.html#Operators">1.23 Операторы</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_ru_8.html#index_split-2_cp_symbol-1" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-2" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-3" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mgl_ru.html/mgl_ru_7.html b/texinfo/mgl_ru.html/mgl_ru_7.html
new file mode 100644
index 0000000..d197eb2
--- /dev/null
+++ b/texinfo/mgl_ru.html/mgl_ru_7.html
@@ -0,0 +1,302 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: Индекс: N &ndash; S</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: Индекс: N &ndash; S">
+<meta name="keywords" content="Язык MGL для версии 1.11: Индекс: N &ndash; S">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-1"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_6.html#index_split-0" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_8.html#index_split-2" title="Next section in reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Индекс: N &ndash; S</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_ru_8.html#index_split-2_cp_symbol-1" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-2" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-3" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-N">N</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-new">new</a></td><td valign="top"><a href="mgl_ru_1.html#Data-create">1.17 Создание данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-next">next</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-norm">norm</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-normsl">normsl</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-O">O</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-once">once</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-origin">origin</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-P">P</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-palette">palette</a></td><td valign="top"><a href="mgl_ru_1.html#Other-settings">1.2.7 Прочие настройки</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-pde">pde</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-perspective">perspective</a></td><td valign="top"><a href="mgl_ru_1.html#Transformation-matrix">1.4 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-pipe">pipe</a></td><td valign="top"><a href="mgl_ru_1.html#Vector-fields">1.14 Векторные поля</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Pipe">Pipe</a></td><td valign="top"><a href="mgl_ru_3.html#Pipe-sample">3.4.10 Pipe &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Pipe-1">Pipe</a></td><td valign="top"><a href="mgl_ru_3.html#Pipe-3D-sample">3.4.18 Pipe 3D &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Plot">Plot</a></td><td valign="top"><a href="mgl_ru_3.html#Plot-sample">3.1.1 Plot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-plot">plot</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Plot-1">Plot</a></td><td valign="top"><a href="mgl_ru_3.html#g_t1D-plot-sample">3.5.1 Пример графиков 1D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Plot-2">Plot</a></td><td valign="top"><a href="mgl_ru_3.html#Legend-sample">3.6.1 Legend &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Plot-3">Plot</a></td><td valign="top"><a href="mgl_ru_3.html#Semi_002dlog-sample">3.7.3 Semi-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Plot-4">Plot</a></td><td valign="top"><a href="mgl_ru_3.html#Log_002dlog-sample">3.7.4 Log-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-plotfactor">plotfactor</a></td><td valign="top"><a href="mgl_ru_1.html#Zooming">1.2.5 Масштабирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-put">put</a></td><td valign="top"><a href="mgl_ru_1.html#Data-filling">1.18 Заполнение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Puts">Puts</a></td><td valign="top"><a href="mgl_ru_3.html#Text-styles-sample">3.5.6 Пример стилей текста</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Puts-1">Puts</a></td><td valign="top"><a href="mgl_ru_3.html#TeX-parsing-sample">3.5.7 Пример TeX формулы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Puts-2">Puts</a></td><td valign="top"><a href="mgl_ru_3.html#Font-faces-sample">3.5.8 Примеры начертаний шрифта</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-PutsFit">PutsFit</a></td><td valign="top"><a href="mgl_ru_3.html#Fitting-sample">3.7.5 Fitting &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-putsfit">putsfit</a></td><td valign="top"><a href="mgl_ru_1.html#Nonlinear-fitting">1.16 Nonlinear fitting</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-Q">Q</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-qo2d">qo2d</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-quadplot">quadplot</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-R">R</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Radar">Radar</a></td><td valign="top"><a href="mgl_ru_3.html#Radar-sample">3.1.2 Radar &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-radar">radar</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ranges">ranges</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ray">ray</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-read">read</a></td><td valign="top"><a href="mgl_ru_1.html#File-I_002fO">1.20 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-readall">readall</a></td><td valign="top"><a href="mgl_ru_1.html#File-I_002fO">1.20 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-readhdf">readhdf</a></td><td valign="top"><a href="mgl_ru_1.html#File-I_002fO">1.20 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-readmat">readmat</a></td><td valign="top"><a href="mgl_ru_1.html#File-I_002fO">1.20 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-rearrange">rearrange</a></td><td valign="top"><a href="mgl_ru_1.html#Rearrange-data">1.19 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-rect">rect</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Region">Region</a></td><td valign="top"><a href="mgl_ru_3.html#Region-sample">3.1.13 Region &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-region">region</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Region-1">Region</a></td><td valign="top"><a href="mgl_ru_3.html#Region-gradient-sample">3.1.14 Region с градиентной заливкой &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-resize">resize</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-return">return</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-roll">roll</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-rotate">rotate</a></td><td valign="top"><a href="mgl_ru_1.html#Transformation-matrix">1.4 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-rotatetext">rotatetext</a></td><td valign="top"><a href="mgl_ru_1.html#Other-settings">1.2.7 Прочие настройки</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-1_cp_letter-S">S</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-save">save</a></td><td valign="top"><a href="mgl_ru_1.html#File-I_002fO">1.20 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-savehdf">savehdf</a></td><td valign="top"><a href="mgl_ru_1.html#File-I_002fO">1.20 Чтение/сохранение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-setsize">setsize</a></td><td valign="top"><a href="mgl_ru_1.html#Export-to-file">1.5 Экспорт в файл</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-SetTicks">SetTicks</a></td><td valign="top"><a href="mgl_ru_3.html#Semi_002dlog-sample">3.7.3 Semi-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-SetTicks-1">SetTicks</a></td><td valign="top"><a href="mgl_ru_3.html#Log_002dlog-sample">3.7.4 Log-log &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-SetTicksVal">SetTicksVal</a></td><td valign="top"><a href="mgl_ru_3.html#Manual-ticks-sample">3.7.12 Особые метки по осям</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-SetTicksVal-1">SetTicksVal</a></td><td valign="top"><a href="mgl_ru_3.html#ColumnPlot-sample">3.7.13 ColumnPlot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-SetTicksVal-2">SetTicksVal</a></td><td valign="top"><a href="mgl_ru_3.html#StickPlot-sample">3.7.14 StickPlot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Sew">Sew</a></td><td valign="top"><a href="mgl_ru_3.html#Sew-sample">3.7.7 Sew &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-sew">sew</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-sinfft">sinfft</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-smooth">smooth</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Sphere">Sphere</a></td><td valign="top"><a href="mgl_ru_3.html#Molecules-drawing-sample">3.6.11 Рисование молекул</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-sphere">sphere</a></td><td valign="top"><a href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-squeeze">squeeze</a></td><td valign="top"><a href="mgl_ru_1.html#Rearrange-data">1.19 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-stem">stem</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Stem">Stem</a></td><td valign="top"><a href="mgl_ru_3.html#Stem-sample">3.1.12 Stem &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-step">step</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Step">Step</a></td><td valign="top"><a href="mgl_ru_3.html#Step-sample">3.1.11 Step &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-stfa">stfa</a></td><td valign="top"><a href="mgl_ru_1.html#Dual-plotting">1.13 Парные графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-STFA">STFA</a></td><td valign="top"><a href="mgl_ru_3.html#STFA-sample">3.7.8 STFA &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-stfad">stfad</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-stickplot">stickplot</a></td><td valign="top"><a href="mgl_ru_1.html#Transformation-matrix">1.4 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-stop">stop</a></td><td valign="top"><a href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-subdata">subdata</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-SubPlot">SubPlot</a></td><td valign="top"><a href="mgl_ru_3.html#g_t1D-plot-sample">3.5.1 Пример графиков 1D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-subplot">subplot</a></td><td valign="top"><a href="mgl_ru_1.html#Transformation-matrix">1.4 Матрица преобразования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-SubPlot-1">SubPlot</a></td><td valign="top"><a href="mgl_ru_3.html#Adding-mesh-sample">3.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-subto">subto</a></td><td valign="top"><a href="mgl_ru_1.html#Operators">1.23 Операторы</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-sum">sum</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#Surf-sample">3.2.1 Surf &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-surf">surf</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf-1">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#Transparent-surface-sample">3.2.2 Transparent surface &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf-2">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#Surface-in-fog-sample">3.2.3 Surface in fog &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf-3">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#Sharp-colors-sample">3.2.4 Sharp colors &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf-4">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#g_t2D-plot-sample">3.5.2 Пример графиков 2D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf-5">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#g_t3D-plot-sample">3.5.3 Пример графиков 3D данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf-6">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#Adding-mesh-sample">3.6.2 Добавляем сетку</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf-7">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#Surf-_0026-Cont-sample">3.6.3 Surf &amp; Cont &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf-8">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#Several-light-sample">3.6.5 Несколько источников света</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf-9">Surf</a></td><td valign="top"><a href="mgl_ru_3.html#Mirrored-surface-sample">3.6.6 Отражение поверхности</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-surf3">surf3</a></td><td valign="top"><a href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf3">Surf3</a></td><td valign="top"><a href="mgl_ru_3.html#Surf3-sample">3.3.1 Surf3 &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf3-1">Surf3</a></td><td valign="top"><a href="mgl_ru_3.html#CutMinMax-sample">3.3.9 CutMinMax &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf3-2">Surf3</a></td><td valign="top"><a href="mgl_ru_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf3-3">Surf3</a></td><td valign="top"><a href="mgl_ru_3.html#CutOff-sample">3.3.11 CutOff &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf3-4">Surf3</a></td><td valign="top"><a href="mgl_ru_3.html#Coloring-by-coordinates-sample">3.6.9 Окрашивание по положению грани</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf3A">Surf3A</a></td><td valign="top"><a href="mgl_ru_3.html#Surf3A-sample">3.4.13 Surf3A &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-surf3a">surf3a</a></td><td valign="top"><a href="mgl_ru_1.html#Dual-plotting">1.13 Парные графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Surf3C">Surf3C</a></td><td valign="top"><a href="mgl_ru_3.html#Surf3C-sample">3.4.12 Surf3C &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-surf3c">surf3c</a></td><td valign="top"><a href="mgl_ru_1.html#Dual-plotting">1.13 Парные графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-surfa">surfa</a></td><td valign="top"><a href="mgl_ru_1.html#Dual-plotting">1.13 Парные графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-SurfA">SurfA</a></td><td valign="top"><a href="mgl_ru_3.html#SurfA-sample">3.4.2 SurfA &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-SurfC">SurfC</a></td><td valign="top"><a href="mgl_ru_3.html#SurfC-sample">3.4.1 SurfC &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-surfc">surfc</a></td><td valign="top"><a href="mgl_ru_1.html#Dual-plotting">1.13 Парные графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-swap">swap</a></td><td valign="top"><a href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="mgl_ru_8.html#index_split-2_cp_symbol-1" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-2" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_symbol-3" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="mgl_ru_8.html#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mgl_ru.html/mgl_ru_8.html b/texinfo/mgl_ru.html/mgl_ru_8.html
new file mode 100644
index 0000000..1f8da49
--- /dev/null
+++ b/texinfo/mgl_ru.html/mgl_ru_8.html
@@ -0,0 +1,271 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: Индекс: T &ndash; Ц</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: Индекс: T &ndash; Ц">
+<meta name="keywords" content="Язык MGL для версии 1.11: Индекс: T &ndash; Ц">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="index_split-2"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_7.html#index_split-1" title="Previous section in reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[ &gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Up section"> Up </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1 class="unnumbered">Индекс: T &ndash; Ц</h1>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#index_split-2_cp_symbol-1" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_symbol-2" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_symbol-3" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table border="0" class="index-cp">
+<tr><td></td><th align="left">Index Entry</th><th align="left"> Section</th></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-T">T</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Tens">Tens</a></td><td valign="top"><a href="mgl_ru_3.html#Tens-sample">3.1.3 Tens &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-tens">tens</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Ternary">Ternary</a></td><td valign="top"><a href="mgl_ru_3.html#Ternary-plot-sample">3.6.8 Ternary plot &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ternary">ternary</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Text">Text</a></td><td valign="top"><a href="mgl_ru_3.html#Text-sample">3.1.20 Text &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-text">text</a></td><td valign="top"><a href="mgl_ru_1.html#Text-printing">1.7 Вывод текста</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-textmark">textmark</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-TextMark">TextMark</a></td><td valign="top"><a href="mgl_ru_3.html#TextMark-sample">3.1.18 TextMark &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ticklen">ticklen</a></td><td valign="top"><a href="mgl_ru_1.html#Default-sizes">1.2.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-tickstl">tickstl</a></td><td valign="top"><a href="mgl_ru_1.html#Default-sizes">1.2.4 Базовые размеры</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-tile">tile</a></td><td valign="top"><a href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Tile">Tile</a></td><td valign="top"><a href="mgl_ru_3.html#Tile-sample">3.2.8 Tile &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-tiles">tiles</a></td><td valign="top"><a href="mgl_ru_1.html#Dual-plotting">1.13 Парные графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-TileS">TileS</a></td><td valign="top"><a href="mgl_ru_3.html#TileS-sample">3.4.3 TileS &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-title">title</a></td><td valign="top"><a href="mgl_ru_1.html#Text-printing">1.7 Вывод текста</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-tlabel">tlabel</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-and-Colorbar">1.8 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-torus">torus</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Torus">Torus</a></td><td valign="top"><a href="mgl_ru_3.html#Torus-sample">3.1.21 Torus &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-trace">trace</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Traj">Traj</a></td><td valign="top"><a href="mgl_ru_3.html#Traj-sample">3.4.5 Traj &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-traj">traj</a></td><td valign="top"><a href="mgl_ru_1.html#Vector-fields">1.14 Векторные поля</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-transform">transform</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-transforma">transforma</a></td><td valign="top"><a href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-transparent">transparent</a></td><td valign="top"><a href="mgl_ru_1.html#Transparency">1.2.1 Прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-transpose">transpose</a></td><td valign="top"><a href="mgl_ru_1.html#Rearrange-data">1.19 Изменение размеров данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-TranspType">TranspType</a></td><td valign="top"><a href="mgl_ru_3.html#Normal-transparency">3.5.11 Обычная прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-transptype">transptype</a></td><td valign="top"><a href="mgl_ru_1.html#Transparency">1.2.1 Прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-TranspType-1">TranspType</a></td><td valign="top"><a href="mgl_ru_3.html#Glass_002dlike-transparency">3.5.12 &quot;Стеклянная&quot; прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-TranspType-2">TranspType</a></td><td valign="top"><a href="mgl_ru_3.html#Lamp_002dlike-transparency">3.5.13 &quot;Ламповая&quot; прозрачность</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-tricont">tricont</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-triplot">triplot</a></td><td valign="top"><a href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Tube">Tube</a></td><td valign="top"><a href="mgl_ru_3.html#Tube-sample">3.1.19 Tube &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-tube">tube</a></td><td valign="top"><a href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-V">V</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-var">var</a></td><td valign="top"><a href="mgl_ru_1.html#Data-create">1.17 Создание данных</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-vect">vect</a></td><td valign="top"><a href="mgl_ru_1.html#Vector-fields">1.14 Векторные поля</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Vect">Vect</a></td><td valign="top"><a href="mgl_ru_3.html#Vect-sample">3.4.6 Vect &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-Vect-1">Vect</a></td><td valign="top"><a href="mgl_ru_3.html#Vect-3D-sample">3.4.14 Vect 3D &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-VectC">VectC</a></td><td valign="top"><a href="mgl_ru_3.html#VectC-sample">3.4.8 VectC &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-vectc">vectc</a></td><td valign="top"><a href="mgl_ru_1.html#Vector-fields">1.14 Векторные поля</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-VectC-1">VectC</a></td><td valign="top"><a href="mgl_ru_3.html#VectC-3D-sample">3.4.16 VectC 3D &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-vectl">vectl</a></td><td valign="top"><a href="mgl_ru_1.html#Vector-fields">1.14 Векторные поля</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-VectL">VectL</a></td><td valign="top"><a href="mgl_ru_3.html#VectL-sample">3.4.7 VectL &ndash; пример использования</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_3.html#index-VectL-1">VectL</a></td><td valign="top"><a href="mgl_ru_3.html#VectL-3D-sample">3.4.15 VectL 3D &ndash; пример использования</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-W">W</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-write">write</a></td><td valign="top"><a href="mgl_ru_1.html#Export-to-file">1.5 Экспорт в файл</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-X">X</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-xlabel">xlabel</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-and-Colorbar">1.8 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-xrange">xrange</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-xrange-3">xrange</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-xtick">xtick</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-Y">Y</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ylabel">ylabel</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-and-Colorbar">1.8 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-yrange">yrange</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-yrange-3">yrange</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ytick">ytick</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_letter-Z">Z</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-zlabel">zlabel</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-and-Colorbar">1.8 Оси и Colorbar</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-zoom">zoom</a></td><td valign="top"><a href="mgl_ru_1.html#Zooming">1.2.5 Масштабирование</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-zrange">zrange</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-zrange-3">zrange</a></td><td valign="top"><a href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-ztick">ztick</a></td><td valign="top"><a href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_symbol-1">С</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-_0421_0442_0438_043bx-_043b_0438_043d_0438_0439">Стиль линий</a></td><td valign="top"><a href="mgl_ru_1.html#Line-styles">1.1.2 Стиль линий</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-_0421_0442_0438_043bx-_043c_0430_0440_043ae_0440_043e_0432">Стиль маркеров</a></td><td valign="top"><a href="mgl_ru_1.html#Line-styles">1.1.2 Стиль линий</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-_0421_0442_0438_043bx-_0441_0442_0440e_043b_043e_043a">Стиль стрелок</a></td><td valign="top"><a href="mgl_ru_1.html#Line-styles">1.1.2 Стиль линий</a></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-_0421_0442_0438_043bx-_0442e_043a_0441_0442_0430">Стиль текста</a></td><td valign="top"><a href="mgl_ru_1.html#Font-styles">1.1.4 Стиль текста</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_symbol-2">Т</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-_0422e_043a_0441_0442_043e_0432_044be-_0444_043e_0440_043c_0443_043b_044b">Текстовые формулы</a></td><td valign="top"><a href="mgl_ru_1.html#Textual-formulas">1.1.5 Текстовые формулы</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="index_split-2_cp_symbol-3">Ц</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="mgl_ru_1.html#index-C_0432e_0442_043e_0432_0430ya-_0441_0445e_043c_0430">Цветовая схема</a></td><td valign="top"><a href="mgl_ru_1.html#Color-scheme">1.1.3 Цветовая схема</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#index_split-2_cp_symbol-1" class="summary-letter"><b>С</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_symbol-2" class="summary-letter"><b>Т</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_symbol-3" class="summary-letter"><b>Ц</b></a>
+ &nbsp; 
+<br>
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-A" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-B" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="mgl_ru_5.html#g_t_0418_043d_0434e_043a_0441_cp_letter-C" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-D" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-E" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-F" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-G" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-H" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-I" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-J" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-L" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="mgl_ru_6.html#index_split-0_cp_letter-M" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-N" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-O" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-P" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-Q" class="summary-letter"><b>Q</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-R" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="mgl_ru_7.html#index_split-1_cp_letter-S" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-T" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-V" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-W" class="summary-letter"><b>W</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-X" class="summary-letter"><b>X</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Y" class="summary-letter"><b>Y</b></a>
+ &nbsp; 
+<a href="#index_split-2_cp_letter-Z" class="summary-letter"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+
+<hr size="6">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru_4.html#Copying-This-Manual" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mgl_ru.html/mgl_ru_abt.html b/texinfo/mgl_ru.html/mgl_ru_abt.html
new file mode 100644
index 0000000..7a872c7
--- /dev/null
+++ b/texinfo/mgl_ru.html/mgl_ru_abt.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: About This Document</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: About This Document">
+<meta name="keywords" content="Язык MGL для версии 1.11: About This Document">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="SEC_About"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1>About This Document</h1>
+<p>
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+</p>
+<p>
+  The buttons in the navigation panels have the following meaning:
+</p>
+<table border="1">
+  <tr>
+    <th> Button </th>
+    <th> Name </th>
+    <th> Go to </th>
+    <th> From 1.2.3 go to</th>
+  </tr>
+  <tr>
+    <td align="center"> [ &lt; ] </td>
+    <td align="center">Back</td>
+    <td>Previous section in reading order</td>
+    <td>1.2.2</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &gt; ] </td>
+    <td align="center">Forward</td>
+    <td>Next section in reading order</td>
+    <td>1.2.4</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &lt;&lt; ] </td>
+    <td align="center">FastBack</td>
+    <td>Beginning of this chapter or previous chapter</td>
+    <td>1</td>
+  </tr>
+  <tr>
+    <td align="center"> [ Up ] </td>
+    <td align="center">Up</td>
+    <td>Up section</td>
+    <td>1.2</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &gt;&gt; ] </td>
+    <td align="center">FastForward</td>
+    <td>Next chapter</td>
+    <td>2</td>
+  </tr>
+  <tr>
+    <td align="center"> [Top] </td>
+    <td align="center">Top</td>
+    <td>Cover (top) of document</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [Contents] </td>
+    <td align="center">Contents</td>
+    <td>Table of contents</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [Index] </td>
+    <td align="center">Index</td>
+    <td>Index</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [ ? ] </td>
+    <td align="center">About</td>
+    <td>About (help)</td>
+    <td> &nbsp; </td>
+  </tr>
+</table>
+
+<p>
+  where the <strong> Example </strong> assumes that the current position is at <strong> Subsubsection One-Two-Three </strong> of a document of the following structure:
+</p>
+
+<ul>
+  <li> 1. Section One
+    <ul>
+      <li>1.1 Subsection One-One
+        <ul>
+          <li>...</li>
+        </ul>
+      </li>
+      <li>1.2 Subsection One-Two
+        <ul>
+          <li>1.2.1 Subsubsection One-Two-One</li>
+          <li>1.2.2 Subsubsection One-Two-Two</li>
+          <li>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp;
+            <strong>&lt;== Current Position </strong></li>
+          <li>1.2.4 Subsubsection One-Two-Four</li>
+        </ul>
+      </li>
+      <li>1.3 Subsection One-Three
+        <ul>
+          <li>...</li>
+        </ul>
+      </li>
+      <li>1.4 Subsection One-Four</li>
+    </ul>
+  </li>
+</ul>
+
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mgl_ru.html/mgl_ru_toc.html b/texinfo/mgl_ru.html/mgl_ru_toc.html
new file mode 100644
index 0000000..62d91e3
--- /dev/null
+++ b/texinfo/mgl_ru.html/mgl_ru_toc.html
@@ -0,0 +1,283 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
+<html>
+<head>
+<title>Язык MGL для версии 1.11: Table of Contents</title>
+
+<meta name="description" content="Язык MGL для версии 1.11: Table of Contents">
+<meta name="keywords" content="Язык MGL для версии 1.11: Table of Contents">
+<meta name="resource-type" content="document">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+pre.display {font-family: serif}
+pre.format {font-family: serif}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: serif; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: serif; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.roman {font-family:serif; font-weight:normal;}
+span.sansserif {font-family:sans-serif; font-weight:normal;}
+ul.toc {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+
+<a name="SEC_Contents"></a>
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<h1>Table of Contents</h1>
+<div class="contents">
+
+<ul class="toc">
+  <li><a name="toc-YA_0437_044b_043a-MGL-1" href="mgl_ru_1.html#MGL-interface">1. Язык MGL</a>
+  <ul class="toc">
+    <li><a name="toc-_041e_0441_043d_043e_0432_043d_044be-_043f_0440_0438_043dc_0438_043f_044b" href="mgl_ru_1.html#General-concepts">1.1 Основные принципы</a>
+    <ul class="toc">
+      <li><a name="toc-_041e_0441_0438-_043a_043e_043e_0440_0434_0438_043d_0430_0442" href="mgl_ru_1.html#Coordinate-axes">1.1.1 Оси координат</a></li>
+      <li><a name="toc-_0421_0442_0438_043bx-_043b_0438_043d_0438_0439" href="mgl_ru_1.html#Line-styles">1.1.2 Стиль линий</a></li>
+      <li><a name="toc-C_0432e_0442_043e_0432_0430ya-_0441_0445e_043c_0430" href="mgl_ru_1.html#Color-scheme">1.1.3 Цветовая схема</a></li>
+      <li><a name="toc-_0421_0442_0438_043bx-_0442e_043a_0441_0442_0430" href="mgl_ru_1.html#Font-styles">1.1.4 Стиль текста</a></li>
+      <li><a name="toc-_0422e_043a_0441_0442_043e_0432_044be-_0444_043e_0440_043c_0443_043b_044b" href="mgl_ru_1.html#Textual-formulas">1.1.5 Текстовые формулы</a></li>
+    </ul></li>
+    <li><a name="toc-_041d_0430_0441_0442_0440_043e_0439_043a_0430-g_0440_0430_0444_0438_043a_0430" href="mgl_ru_1.html#Graphics-setup">1.2 Настройка графика</a>
+    <ul class="toc">
+      <li><a name="toc-_041f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x" href="mgl_ru_1.html#Transparency">1.2.1 Прозрачность</a></li>
+      <li><a name="toc-_041e_0441_0432e_0449e_043d_0438e" href="mgl_ru_1.html#Lighting">1.2.2 Освещение</a></li>
+      <li><a name="toc-_0422_0443_043c_0430_043d" href="mgl_ru_1.html#Fog">1.2.3 Туман</a></li>
+      <li><a name="toc-_0411_0430_0437_043e_0432_044be-_0440_0430_0437_043ce_0440_044b" href="mgl_ru_1.html#Default-sizes">1.2.4 Базовые размеры</a></li>
+      <li><a name="toc-_041c_0430_0441_0448_0442_0430_0431_0438_0440_043e_0432_0430_043d_0438e" href="mgl_ru_1.html#Zooming">1.2.5 Масштабирование</a></li>
+      <li><a name="toc-_041e_0431_0440e_0437_0430_043d_0438e" href="mgl_ru_1.html#Cutting">1.2.6 Обрезание</a></li>
+      <li><a name="toc-_041f_0440_043e_0447_0438e-_043d_0430_0441_0442_0440_043e_0439_043a_0438" href="mgl_ru_1.html#Other-settings">1.2.7 Прочие настройки</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0430_0440_0430_043ce_0442_0440_044b-_043e_0441e_0439-_043a_043e_043e_0440_0434_0438_043d_0430_0442" href="mgl_ru_1.html#Axis-settings">1.3 Параметры осей координат</a></li>
+    <li><a name="toc-_041c_0430_0442_0440_0438c_0430-_043f_0440e_043e_0431_0440_0430_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_1.html#Transformation-matrix">1.4 Матрица преобразования</a></li>
+    <li><a name="toc-_042d_043a_0441_043f_043e_0440_0442-_0432-_0444_0430_0439_043b" href="mgl_ru_1.html#Export-to-file">1.5 Экспорт в файл</a></li>
+    <li><a name="toc-_0420_0438_0441_043e_0432_0430_043d_0438e-_043f_0440_0438_043c_0438_0442_0438_0432_043e_0432" href="mgl_ru_1.html#Primitives-drawing">1.6 Рисование примитивов</a></li>
+    <li><a name="toc-_0412_044b_0432_043e_0434-_0442e_043a_0441_0442_0430" href="mgl_ru_1.html#Text-printing">1.7 Вывод текста</a></li>
+    <li><a name="toc-_041e_0441_0438-_0438-Colorbar" href="mgl_ru_1.html#Axis-and-Colorbar">1.8 Оси и Colorbar</a></li>
+    <li><a name="toc-_041bege_043d_0434_0430" href="mgl_ru_1.html#Legend">1.9 Легенда</a></li>
+    <li><a name="toc-1D-g_0440_0430_0444_0438_043a_0438" href="mgl_ru_1.html#g_t1D-plotting">1.10 1D графики</a></li>
+    <li><a name="toc-2D-g_0440_0430_0444_0438_043a_0438" href="mgl_ru_1.html#g_t2D-plotting">1.11 2D графики</a></li>
+    <li><a name="toc-3D-g_0440_0430_0444_0438_043a_0438" href="mgl_ru_1.html#g_t3D-plotting">1.12 3D графики</a></li>
+    <li><a name="toc-_041f_0430_0440_043d_044be-g_0440_0430_0444_0438_043a_0438" href="mgl_ru_1.html#Dual-plotting">1.13 Парные графики</a></li>
+    <li><a name="toc-_0412e_043a_0442_043e_0440_043d_044be-_043f_043e_043bya" href="mgl_ru_1.html#Vector-fields">1.14 Векторные поля</a></li>
+    <li><a name="toc-_041f_0440_043e_0447_0438e-g_0440_0430_0444_0438_043a_0438" href="mgl_ru_1.html#Other-plotting">1.15 Прочие графики</a></li>
+    <li><a name="toc-Nonlinear-fitting-1" href="mgl_ru_1.html#Nonlinear-fitting">1.16 Nonlinear fitting</a></li>
+    <li><a name="toc-_0421_043e_0437_0434_0430_043d_0438e-_0434_0430_043d_043d_044b_0445" href="mgl_ru_1.html#Data-create">1.17 Создание данных</a></li>
+    <li><a name="toc-_0417_0430_043f_043e_043b_043de_043d_0438e-_0434_0430_043d_043d_044b_0445" href="mgl_ru_1.html#Data-filling">1.18 Заполнение данных</a></li>
+    <li><a name="toc-_0418_0437_043ce_043de_043d_0438e-_0440_0430_0437_043ce_0440_043e_0432-_0434_0430_043d_043d_044b_0445" href="mgl_ru_1.html#Rearrange-data">1.19 Изменение размеров данных</a></li>
+    <li><a name="toc-_0427_0442e_043d_0438e_002f_0441_043e_0445_0440_0430_043de_043d_0438e-_0434_0430_043d_043d_044b_0445" href="mgl_ru_1.html#File-I_002fO">1.20 Чтение/сохранение данных</a></li>
+    <li><a name="toc-_0421_043e_0437_0434_0430_043d_0438e-_043d_043e_0432_044b_0445-_0434_0430_043d_043d_044b_0445" href="mgl_ru_1.html#Make-another-data">1.21 Создание новых данных</a></li>
+    <li><a name="toc-_0418_0437_043ce_043de_043d_0438e-_0434_0430_043d_043d_044b_0445" href="mgl_ru_1.html#Change-data">1.22 Изменение данных</a></li>
+    <li><a name="toc-_041e_043fe_0440_0430_0442_043e_0440_044b" href="mgl_ru_1.html#Operators">1.23 Операторы</a></li>
+    <li><a name="toc-_041f_0440_043eg_0440_0430_043c_043c_0438_0440_043e_0432_0430_043d_0438e" href="mgl_ru_1.html#Program-flow">1.24 Программирование</a></li>
+    <li><a name="toc-_041e_043fc_0438_0438-_043a_043e_043c_0430_043d_0434" href="mgl_ru_1.html#Command-options">1.25 Опции команд</a></li>
+    <li><a name="toc-_0421_0443_0444_0444_0438_043a_0441_044b-_043fe_0440e_043ce_043d_043d_044b_0445" href="mgl_ru_1.html#Suffixes">1.26 Суффиксы переменных</a></li>
+    <li><a name="toc-_0423_0442_0438_043b_0438_0442_044b-_0434_043bya-MGL" href="mgl_ru_1.html#Utilities">1.27 Утилиты для MGL</a></li>
+  </ul></li>
+  <li><a name="toc-MathGL-examples" href="mgl_ru_2.html#Examples">2. MathGL examples</a>
+  <ul class="toc">
+    <li><a name="toc-Basic-usage-1" href="mgl_ru_2.html#Basic-usage">2.1 Basic usage</a></li>
+    <li><a name="toc-Advanced-usage-1" href="mgl_ru_2.html#Advanced-usage">2.2 Advanced usage</a>
+    <ul class="toc">
+      <li><a name="toc-Subplots-1" href="mgl_ru_2.html#Subplots">2.2.1 Subplots</a></li>
+      <li><a name="toc-Axis-and-grids-1" href="mgl_ru_2.html#Axis-and-grids">2.2.2 Axis and grids</a></li>
+      <li><a name="toc-Curvilinear-coordinates-1" href="mgl_ru_2.html#Curvilinear-coordinates">2.2.3 Curvilinear coordinates</a></li>
+      <li><a name="toc-Text-printing-example-1" href="mgl_ru_2.html#Text-printing-example">2.2.4 Text printing example</a></li>
+    </ul></li>
+    <li><a name="toc-Data-handling-1" href="mgl_ru_2.html#Data-handling">2.3 Data handling</a>
+    <ul class="toc">
+      <li><a name="toc-Array-creation-1" href="mgl_ru_2.html#Array-creation">2.3.1 Array creation</a></li>
+      <li><a name="toc-Data-changing-1" href="mgl_ru_2.html#Data-changing">2.3.2 Data changing</a></li>
+    </ul></li>
+    <li><a name="toc-Data-plotting-1" href="mgl_ru_2.html#Data-plotting">2.4 Data plotting</a>
+    <ul class="toc">
+      <li><a name="toc-Plots-for-1D-data-1" href="mgl_ru_2.html#Plots-for-1D-data">2.4.1 Plots for 1D data</a></li>
+      <li><a name="toc-Plots-for-2D-data-1" href="mgl_ru_2.html#Plots-for-2D-data">2.4.2 Plots for 2D data</a></li>
+      <li><a name="toc-Plots-for-3D-data-1" href="mgl_ru_2.html#Plots-for-3D-data">2.4.3 Plots for 3D data</a></li>
+      <li><a name="toc-Surface-transparency-1" href="mgl_ru_2.html#Surface-transparency">2.4.4 Surface transparency</a></li>
+    </ul></li>
+    <li><a name="toc-Hints-1" href="mgl_ru_2.html#Hints">2.5 Hints</a>
+    <ul class="toc">
+      <li><a name="toc-_0060_0060Compound_0027_0027-graphics-1" href="mgl_ru_2.html#g_t_0060_0060Compound_0027_0027-graphics">2.5.1 &ldquo;Compound&rdquo; graphics</a></li>
+      <li><a name="toc-Two-axes-in-one-plot-1" href="mgl_ru_2.html#Two-axes-in-one-plot">2.5.2 Two axes in one plot</a></li>
+      <li><a name="toc-Titles-for-the-plot-1" href="mgl_ru_2.html#Titles-for-the-plot">2.5.3 Titles for the plot</a></li>
+      <li><a name="toc-Changing-of-the-color-range-1" href="mgl_ru_2.html#Changing-of-the-color-range">2.5.4 Changing of the color range</a></li>
+      <li><a name="toc-Management-of-a-point-cutting-1" href="mgl_ru_2.html#Management-of-a-point-cutting">2.5.5 Management of a point cutting</a></li>
+      <li><a name="toc-Vector-field-visualization-1" href="mgl_ru_2.html#Vector-field-visualization">2.5.6 Vector field visualization</a></li>
+      <li><a name="toc-Several-light-sources-1" href="mgl_ru_2.html#Several-light-sources">2.5.7 Several light sources</a></li>
+      <li><a name="toc-CutMin-and-CutMax-features-1" href="mgl_ru_2.html#CutMin-and-CutMax-features">2.5.8 CutMin and CutMax features</a></li>
+      <li><a name="toc-Mapping-visualization-1" href="mgl_ru_2.html#Mapping-visualization">2.5.9 Mapping visualization</a></li>
+      <li><a name="toc-Log_002dscaled-plot-1" href="mgl_ru_2.html#Log_002dscaled-plot">2.5.10 Log-scaled plot</a></li>
+      <li><a name="toc-Nonlinear-fitting-hints-1" href="mgl_ru_2.html#Nonlinear-fitting-hints">2.5.11 Nonlinear fitting hints</a></li>
+      <li><a name="toc-PDE-solving-hints-1" href="mgl_ru_2.html#PDE-solving-hints">2.5.12 PDE solving hints</a></li>
+      <li><a name="toc-Stereo-image-1" href="mgl_ru_2.html#Stereo-image">2.5.13 Stereo image</a></li>
+    </ul>
+</li>
+  </ul></li>
+  <li><a name="toc-_041f_0440_0438_043ce_0440_044b-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya-MathGL" href="mgl_ru_3.html#Samples">3. Примеры использования MathGL</a>
+  <ul class="toc">
+    <li><a name="toc-_041f_0440_0438_043ce_0440_044b-1D-g_0440_0430_0444_0438_043a_043e_0432" href="mgl_ru_3.html#g_t1D-plotting-samples">3.1 Примеры 1D графиков</a>
+    <ul class="toc">
+      <li><a name="toc-Plot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Plot-sample">3.1.1 Plot &ndash; пример использования</a></li>
+      <li><a name="toc-Radar-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Radar-sample">3.1.2 Radar &ndash; пример использования</a></li>
+      <li><a name="toc-Tens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Tens-sample">3.1.3 Tens &ndash; пример использования</a></li>
+      <li><a name="toc-Area-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Area-sample">3.1.4 Area &ndash; пример использования</a></li>
+      <li><a name="toc-Area-_0441-g_0440_0430_0434_0438e_043d_0442_043d_043e_0439-_0437_0430_043b_0438_0432_043a_043e_0439-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Area-gradient-sample">3.1.5 Area с градиентной заливкой &ndash; пример использования</a></li>
+      <li><a name="toc-Bars-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Bars-sample">3.1.6 Bars &ndash; пример использования</a></li>
+      <li><a name="toc-Bars-_00282-c_0432e_0442_0430_0029-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Bars-2-colors-sample">3.1.7 Bars (2 цвета) &ndash; пример использования</a></li>
+      <li><a name="toc-Bars-_0028_043e_0434_0438_043d-_043d_0430_0434-_0434_0440_0443g_0438_043c_0029-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Bars-above-sample">3.1.8 Bars (один над другим) &ndash; пример использования</a></li>
+      <li><a name="toc-Bars-_0022_0432_043e_0434_043e_043f_0430_0434_0022-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Bars-fall-sample">3.1.9 Bars &quot;водопад&quot; &ndash; пример использования</a></li>
+      <li><a name="toc-Barh-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Barh-sample">3.1.10 Barh &ndash; пример использования</a></li>
+      <li><a name="toc-Step-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Step-sample">3.1.11 Step &ndash; пример использования</a></li>
+      <li><a name="toc-Stem-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Stem-sample">3.1.12 Stem &ndash; пример использования</a></li>
+      <li><a name="toc-Region-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Region-sample">3.1.13 Region &ndash; пример использования</a></li>
+      <li><a name="toc-Region-_0441-g_0440_0430_0434_0438e_043d_0442_043d_043e_0439-_0437_0430_043b_0438_0432_043a_043e_0439-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Region-gradient-sample">3.1.14 Region с градиентной заливкой &ndash; пример использования</a></li>
+      <li><a name="toc-Error-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Error-sample">3.1.15 Error &ndash; пример использования</a></li>
+      <li><a name="toc-BoxPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#BoxPlot-sample">3.1.16 BoxPlot &ndash; пример использования</a></li>
+      <li><a name="toc-Mark-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Mark-sample">3.1.17 Mark &ndash; пример использования</a></li>
+      <li><a name="toc-TextMark-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#TextMark-sample">3.1.18 TextMark &ndash; пример использования</a></li>
+      <li><a name="toc-Tube-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Tube-sample">3.1.19 Tube &ndash; пример использования</a></li>
+      <li><a name="toc-Text-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Text-sample">3.1.20 Text &ndash; пример использования</a></li>
+      <li><a name="toc-Torus-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Torus-sample">3.1.21 Torus &ndash; пример использования</a></li>
+      <li><a name="toc-Chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Chart-sample">3.1.22 Chart &ndash; пример использования</a></li>
+      <li><a name="toc-Pie-chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Pie-chart-sample">3.1.23 Pie chart &ndash; пример использования</a></li>
+      <li><a name="toc-Ring-chart-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Ring-chart-sample">3.1.24 Ring chart &ndash; пример использования</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0440_0438_043ce_0440_044b-2D-g_0440_0430_0444_0438_043a_043e_0432" href="mgl_ru_3.html#g_t2D-plotting-samples">3.2 Примеры 2D графиков</a>
+    <ul class="toc">
+      <li><a name="toc-Surf-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Surf-sample">3.2.1 Surf &ndash; пример использования</a></li>
+      <li><a name="toc-Transparent-surface-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Transparent-surface-sample">3.2.2 Transparent surface &ndash; пример использования</a></li>
+      <li><a name="toc-Surface-in-fog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Surface-in-fog-sample">3.2.3 Surface in fog &ndash; пример использования</a></li>
+      <li><a name="toc-Sharp-colors-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Sharp-colors-sample">3.2.4 Sharp colors &ndash; пример использования</a></li>
+      <li><a name="toc-Mesh-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Mesh-sample">3.2.5 Mesh &ndash; пример использования</a></li>
+      <li><a name="toc-Fall-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Fall-sample">3.2.6 Fall &ndash; пример использования</a></li>
+      <li><a name="toc-Belt-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Belt-sample">3.2.7 Belt &ndash; пример использования</a></li>
+      <li><a name="toc-Tile-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Tile-sample">3.2.8 Tile &ndash; пример использования</a></li>
+      <li><a name="toc-Boxs-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Boxs-sample">3.2.9 Boxs &ndash; пример использования</a></li>
+      <li><a name="toc-Dens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Dens-sample">3.2.10 Dens &ndash; пример использования</a></li>
+      <li><a name="toc-Cont-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Cont-sample">3.2.11 Cont &ndash; пример использования</a></li>
+      <li><a name="toc-ContF-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#ContF-sample">3.2.12 ContF &ndash; пример использования</a></li>
+      <li><a name="toc-ContD-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#ContD-sample">3.2.13 ContD &ndash; пример использования</a></li>
+      <li><a name="toc-Axial-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Axial-sample">3.2.14 Axial &ndash; пример использования</a></li>
+      <li><a name="toc-Grad-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Grad-sample">3.2.15 Grad &ndash; пример использования</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0440_0438_043ce_0440_044b-3D-g_0440_0430_0444_0438_043a_043e_0432" href="mgl_ru_3.html#g_t3D-plotting-samples">3.3 Примеры 3D графиков</a>
+    <ul class="toc">
+      <li><a name="toc-Surf3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Surf3-sample">3.3.1 Surf3 &ndash; пример использования</a></li>
+      <li><a name="toc-Cloud-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Cloud-sample">3.3.2 Cloud &ndash; пример использования</a></li>
+      <li><a name="toc-CloudP-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#CloudP-sample">3.3.3 CloudP &ndash; пример использования</a></li>
+      <li><a name="toc-Dens3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Dens3-sample">3.3.4 Dens3 &ndash; пример использования</a></li>
+      <li><a name="toc-Cont3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Cont3-sample">3.3.5 Cont3 &ndash; пример использования</a></li>
+      <li><a name="toc-ContF3-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#ContF3-sample">3.3.6 ContF3 &ndash; пример использования</a></li>
+      <li><a name="toc-Cont-projection-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Cont-projection-sample">3.3.7 Cont projection &ndash; пример использования</a></li>
+      <li><a name="toc-Dens-projection-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Dens-projection-sample">3.3.8 Dens projection &ndash; пример использования</a></li>
+      <li><a name="toc-CutMinMax-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#CutMinMax-sample">3.3.9 CutMinMax &ndash; пример использования</a></li>
+      <li><a name="toc-_0060_0060Isocaps_0027_0027-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Isocaps-sample">3.3.10 &ldquo;Isocaps&rdquo; &ndash; пример использования</a></li>
+      <li><a name="toc-CutOff-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#CutOff-sample">3.3.11 CutOff &ndash; пример использования</a></li>
+    </ul></li>
+    <li><a name="toc-_041f_0440_0438_043ce_0440_044b-_043f_0430_0440_043d_044b_0445_002f_0432e_043a_0442_043e_0440_043d_044b_0445-g_0440_0430_0444_0438_043a_043e_0432" href="mgl_ru_3.html#Dual-plotting-samples">3.4 Примеры парных/векторных графиков</a>
+    <ul class="toc">
+      <li><a name="toc-SurfC-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#SurfC-sample">3.4.1 SurfC &ndash; пример использования</a></li>
+      <li><a name="toc-SurfA-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#SurfA-sample">3.4.2 SurfA &ndash; пример использования</a></li>
+      <li><a name="toc-TileS-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#TileS-sample">3.4.3 TileS &ndash; пример использования</a></li>
+      <li><a name="toc-Map-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Map-sample">3.4.4 Map &ndash; пример использования</a></li>
+      <li><a name="toc-Traj-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Traj-sample">3.4.5 Traj &ndash; пример использования</a></li>
+      <li><a name="toc-Vect-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Vect-sample">3.4.6 Vect &ndash; пример использования</a></li>
+      <li><a name="toc-VectL-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#VectL-sample">3.4.7 VectL &ndash; пример использования</a></li>
+      <li><a name="toc-VectC-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#VectC-sample">3.4.8 VectC &ndash; пример использования</a></li>
+      <li><a name="toc-Flow-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Flow-sample">3.4.9 Flow &ndash; пример использования</a></li>
+      <li><a name="toc-Pipe-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Pipe-sample">3.4.10 Pipe &ndash; пример использования</a></li>
+      <li><a name="toc-Dew-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Dew-sample">3.4.11 Dew &ndash; пример использования</a></li>
+      <li><a name="toc-Surf3C-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Surf3C-sample">3.4.12 Surf3C &ndash; пример использования</a></li>
+      <li><a name="toc-Surf3A-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Surf3A-sample">3.4.13 Surf3A &ndash; пример использования</a></li>
+      <li><a name="toc-Vect-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Vect-3D-sample">3.4.14 Vect 3D &ndash; пример использования</a></li>
+      <li><a name="toc-VectL-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#VectL-3D-sample">3.4.15 VectL 3D &ndash; пример использования</a></li>
+      <li><a name="toc-VectC-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#VectC-3D-sample">3.4.16 VectC 3D &ndash; пример использования</a></li>
+      <li><a name="toc-Flow-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Flow-3D-sample">3.4.17 Flow 3D &ndash; пример использования</a></li>
+      <li><a name="toc-Pipe-3D-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Pipe-3D-sample">3.4.18 Pipe 3D &ndash; пример использования</a></li>
+      <li><a name="toc-Crust-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Crust-sample">3.4.19 Crust &ndash; пример использования</a></li>
+      <li><a name="toc-Dots-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Dots-sample">3.4.20 Dots &ndash; пример использования</a></li>
+    </ul></li>
+    <li><a name="toc-_0411_0430_0437_043e_0432_044be-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438" href="mgl_ru_3.html#Basic-features">3.5 Базовые возможности</a>
+    <ul class="toc">
+      <li><a name="toc-_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-1D-_0434_0430_043d_043d_044b_0445" href="mgl_ru_3.html#g_t1D-plot-sample">3.5.1 Пример графиков 1D данных</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-2D-_0434_0430_043d_043d_044b_0445" href="mgl_ru_3.html#g_t2D-plot-sample">3.5.2 Пример графиков 2D данных</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-g_0440_0430_0444_0438_043a_043e_0432-3D-_0434_0430_043d_043d_044b_0445" href="mgl_ru_3.html#g_t3D-plot-sample">3.5.3 Пример графиков 3D данных</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_043b_0438_043d_0438_0439-_0438-_043c_0430_0440_043ae_0440_043e_0432" href="mgl_ru_3.html#Line-styles-sample">3.5.4 Пример стилей линий и маркеров</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_0441_0442_0440e_043b_043e_043a" href="mgl_ru_3.html#Arrow-styles-sample">3.5.5 Пример стилей стрелок</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-_0441_0442_0438_043be_0439-_0442e_043a_0441_0442_0430" href="mgl_ru_3.html#Text-styles-sample">3.5.6 Пример стилей текста</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-TeX-_0444_043e_0440_043c_0443_043b_044b" href="mgl_ru_3.html#TeX-parsing-sample">3.5.7 Пример TeX формулы</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440_044b-_043d_0430_0447e_0440_0442_0430_043d_0438_0439-_0448_0440_0438_0444_0442_0430" href="mgl_ru_3.html#Font-faces-sample">3.5.8 Примеры начертаний шрифта</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440_044b-c_0432e_0442_043e_0432" href="mgl_ru_3.html#Colors-sample">3.5.9 Примеры цветов</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440_044b-c_0432e_0442_043e_0432_044b_0445-_0441_0445e_043c" href="mgl_ru_3.html#Color-schemes-sample">3.5.10 Примеры цветовых схем</a></li>
+      <li><a name="toc-_041e_0431_044b_0447_043d_0430ya-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x" href="mgl_ru_3.html#Normal-transparency">3.5.11 Обычная прозрачность</a></li>
+      <li><a name="toc-_0022_0421_0442e_043a_043bya_043d_043d_0430ya_0022-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x" href="mgl_ru_3.html#Glass_002dlike-transparency">3.5.12 &quot;Стеклянная&quot; прозрачность</a></li>
+      <li><a name="toc-_0022_041b_0430_043c_043f_043e_0432_0430ya_0022-_043f_0440_043e_0437_0440_0430_0447_043d_043e_0441_0442x" href="mgl_ru_3.html#Lamp_002dlike-transparency">3.5.13 &quot;Ламповая&quot; прозрачность</a></li>
+    </ul></li>
+    <li><a name="toc-_0414_043e_043f_043e_043b_043d_0438_0442e_043bx_043d_044be-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438" href="mgl_ru_3.html#Additional-features">3.6 Дополнительные возможности</a>
+    <ul class="toc">
+      <li><a name="toc-Legend-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Legend-sample">3.6.1 Legend &ndash; пример использования</a></li>
+      <li><a name="toc-_0414_043e_0431_0430_0432_043byae_043c-_0441e_0442_043a_0443" href="mgl_ru_3.html#Adding-mesh-sample">3.6.2 Добавляем сетку</a></li>
+      <li><a name="toc-Surf-_0026-Cont-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Surf-_0026-Cont-sample">3.6.3 Surf &amp; Cont &ndash; пример использования</a></li>
+      <li><a name="toc-Flow-_0026-Dens-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Flow-_0026-Dens-sample">3.6.4 Flow &amp; Dens &ndash; пример использования</a></li>
+      <li><a name="toc-_041de_0441_043a_043e_043bx_043a_043e-_0438_0441_0442_043e_0447_043d_0438_043a_043e_0432-_0441_0432e_0442_0430" href="mgl_ru_3.html#Several-light-sample">3.6.5 Несколько источников света</a></li>
+      <li><a name="toc-_041e_0442_0440_0430_0436e_043d_0438e-_043f_043e_0432e_0440_0445_043d_043e_0441_0442_0438" href="mgl_ru_3.html#Mirrored-surface-sample">3.6.6 Отражение поверхности</a></li>
+      <li><a name="toc-Cont-_0438-_043f_043e_0434_043f_0438_0441_0438-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Cont-with-labels-sample">3.6.7 Cont и подписи &ndash; пример использования</a></li>
+      <li><a name="toc-Ternary-plot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Ternary-plot-sample">3.6.8 Ternary plot &ndash; пример использования</a></li>
+      <li><a name="toc-_041e_043a_0440_0430_0448_0438_0432_0430_043d_0438e-_043f_043e-_043f_043e_043b_043e_0436e_043d_0438_044e-g_0440_0430_043d_0438" href="mgl_ru_3.html#Coloring-by-coordinates-sample">3.6.9 Окрашивание по положению грани</a></li>
+      <li><a name="toc-Drops-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Drops-sample">3.6.10 Drops &ndash; пример использования</a></li>
+      <li><a name="toc-_0420_0438_0441_043e_0432_0430_043d_0438e-_043c_043e_043be_043a_0443_043b" href="mgl_ru_3.html#Molecules-drawing-sample">3.6.11 Рисование молекул</a></li>
+    </ul></li>
+    <li><a name="toc-_0022_041f_0440_043e_0434_0432_0438_043d_0443_0442_044be_0022-_0432_043e_0437_043c_043e_0436_043d_043e_0441_0442_0438" href="mgl_ru_3.html#Advanced-features">3.7 &quot;Продвинутые&quot; возможности</a>
+    <ul class="toc">
+      <li><a name="toc-_041a_0440_0438_0432_043e_043b_0438_043de_0439_043d_044be-_043a_043e_043e_0440_0434_0438_043d_0430_0442_044b" href="mgl_ru_3.html#Curvelinear-coorinates-sample">3.7.1 Криволинейные координаты</a></li>
+      <li><a name="toc-_041de_0441_043a_043e_043bx_043a_043e-_043e_0441e_0439-_043d_0430-_043e_0434_043d_043e_043c-g_0440_0430_0444_0438_043ae" href="mgl_ru_3.html#g_t2_002daxes-sample">3.7.2 Несколько осей на одном графике</a></li>
+      <li><a name="toc-Semi_002dlog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Semi_002dlog-sample">3.7.3 Semi-log &ndash; пример использования</a></li>
+      <li><a name="toc-Log_002dlog-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Log_002dlog-sample">3.7.4 Log-log &ndash; пример использования</a></li>
+      <li><a name="toc-Fitting-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Fitting-sample">3.7.5 Fitting &ndash; пример использования</a></li>
+      <li><a name="toc-Envelop-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Envelop-sample">3.7.6 Envelop &ndash; пример использования</a></li>
+      <li><a name="toc-Sew-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Sew-sample">3.7.7 Sew &ndash; пример использования</a></li>
+      <li><a name="toc-STFA-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#STFA-sample">3.7.8 STFA &ndash; пример использования</a></li>
+      <li><a name="toc-PDE-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#PDE-sample">3.7.9 PDE &ndash; пример использования</a></li>
+      <li><a name="toc-Beam-tracing-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Beam-tracing-sample">3.7.10 Beam tracing &ndash; пример использования</a></li>
+      <li><a name="toc-Parser-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#Parser-sample">3.7.11 Parser &ndash; пример использования</a></li>
+      <li><a name="toc-_041e_0441_043e_0431_044be-_043ce_0442_043a_0438-_043f_043e-_043e_0441ya_043c" href="mgl_ru_3.html#Manual-ticks-sample">3.7.12 Особые метки по осям</a></li>
+      <li><a name="toc-ColumnPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#ColumnPlot-sample">3.7.13 ColumnPlot &ndash; пример использования</a></li>
+      <li><a name="toc-StickPlot-_002d_002d-_043f_0440_0438_043ce_0440-_0438_0441_043f_043e_043bx_0437_043e_0432_0430_043d_0438ya" href="mgl_ru_3.html#StickPlot-sample">3.7.14 StickPlot &ndash; пример использования</a></li>
+      <li><a name="toc-_041f_0440_0438_043ce_0440-_0441_0442e_0440e_043e-_0438_0437_043e_0431_0440_0430_0436e_043d_0438ya" href="mgl_ru_3.html#Stereo-image-sample">3.7.15 Пример стерео изображения</a></li>
+    </ul>
+</li>
+  </ul></li>
+  <li><a name="toc-GNU-Free-Documentation-License" href="mgl_ru_4.html#Copying-This-Manual">A. GNU Free Documentation License</a></li>
+  <li><a name="toc-_0418_043d_0434e_043a_0441" href="mgl_ru_5.html#Index">Индекс</a></li>
+</ul>
+</div>
+<hr size="1">
+<table cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="mgl_ru.html#Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_5.html#Index" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="mgl_ru_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
+</tr></table>
+<p>
+ <font size="-1">
+  This document was generated by <em>Dimitrios Eftaxiopoulos</em> on <em>November 11, 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
diff --git a/texinfo/mgl_ru.info b/texinfo/mgl_ru.info
new file mode 100644
index 0000000..4ea0a8b
--- /dev/null
+++ b/texinfo/mgl_ru.info
@@ -0,0 +1,442 @@
+This is mgl_ru.info, produced by makeinfo version 4.13 from mgl_ru.texi.
+
+Это документация для MathGL (версии 1.11) - библиотеки классов и
+функций для построения научной графики. Пожалуйста сообщайте о любых
+ошибках в этом руководстве на <mathgl.abalakin at gmail.org>.
+
+   Copyright (C) 2009 Алексей Балакин.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.2 or any later version published by the Free Software
+     Foundation; with no Invariant Sections, with the Front-Cover Texts
+     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+     below.  A copy of the license is included in the section entitled
+     "GNU Free Documentation License."
+
+     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+     and modify this GNU manual.  Buying copies from the FSF supports
+     it in developing GNU and promoting software freedom."
+
+
+Indirect:
+mgl_ru.info-1: 1101
+mgl_ru.info-2: 297890
+
+Tag Table:
+(Indirect)
+Node: Top1101
+Node: MGL interface2380
+Node: General concepts11361
+Node: Coordinate axes16623
+Node: Line styles21804
+Node: Color scheme26412
+Node: Font styles31810
+Node: Textual formulas38102
+Node: Graphics setup43090
+Node: Transparency43670
+Ref: alpha44625
+Ref: alphadef44990
+Ref: transparent45197
+Ref: transptype45346
+Node: Lighting46234
+Ref: light47075
+Ref: ambient47681
+Node: Fog47869
+Ref: fog47997
+Node: Default sizes48601
+Ref: barwidth49163
+Ref: marksize49358
+Ref: arrowsize49507
+Ref: linewidth49717
+Ref: ticklen50221
+Ref: tickstl50556
+Node: Zooming50960
+Ref: plotfactor51453
+Ref: zoom51969
+Node: Cutting52677
+Ref: cut53191
+Node: Other settings54494
+Ref: font54652
+Ref: rotatetext55021
+Ref: palette55246
+Ref: meshnum56047
+Ref: axialdir56427
+Node: Axis settings56587
+Ref: axis57332
+Ref: ranges57424
+Ref: caxis60482
+Ref: origin60832
+Ref: ternary61164
+Ref: xrange61987
+Ref: yrange62041
+Ref: zrange62095
+Ref: crange62149
+Ref: xtick62955
+Ref: ytick63007
+Ref: ztick63059
+Ref: ctick63111
+Ref: adjust64617
+Node: Transformation matrix64935
+Ref: subplot66052
+Ref: inplot67344
+Ref: columnplot68127
+Ref: stickplot68677
+Ref: rotate69194
+Ref: aspect69585
+Ref: perspective69855
+Node: Export to file70113
+Ref: write70297
+Ref: setsize70784
+Node: Primitives drawing71236
+Ref: clf71600
+Ref: ball71757
+Ref: line71955
+Ref: curve72412
+Ref: facex72951
+Ref: facey73020
+Ref: facez73089
+Ref: sphere74039
+Ref: drop74255
+Ref: cone74970
+Ref: rect75364
+Node: Text printing76101
+Ref: text78424
+Ref: title79882
+Ref: fgets80146
+Node: Axis and Colorbar80424
+Ref: colorbar81472
+Ref: grid83128
+Ref: box83530
+Ref: xlabel83847
+Ref: ylabel83913
+Ref: zlabel83979
+Ref: tlabel84045
+Node: Legend84656
+Ref: legend86061
+Ref: addlegend86905
+Ref: clearlegend87192
+Ref: legendbox87314
+Ref: legendmarks87555
+Node: 1D plotting87733
+Ref: plot90303
+Ref: radar90802
+Ref: tens91684
+Ref: area92228
+Ref: region93317
+Ref: stem94157
+Ref: bars94658
+Ref: barh95926
+Ref: chart97256
+Ref: step98507
+Ref: torus98951
+Ref: tube99533
+Ref: mark100182
+Ref: textmark100896
+Ref: error101606
+Ref: boxplot102219
+Node: 2D plotting103032
+Ref: surf105617
+Ref: mesh106164
+Ref: fall106600
+Ref: belt107371
+Ref: boxs107972
+Ref: tile108416
+Ref: dens108939
+Ref: cont109519
+Ref: contf110714
+Ref: contd111756
+Ref: axial112934
+Ref: grad114168
+Ref: grid2114924
+Node: 3D plotting115286
+Ref: surf3117454
+Ref: dens3118395
+Ref: densa119087
+Ref: cont3119312
+Ref: conta120605
+Ref: contf3120836
+Ref: contfa122000
+Ref: grid3122278
+Ref: grida122762
+Ref: cloud122964
+Ref: beam123826
+Node: Dual plotting124973
+Ref: surfc126772
+Ref: surf3c127338
+Ref: surfa128360
+Ref: surf3a128940
+Ref: tiles129983
+Ref: map130606
+Ref: stfa131496
+Node: Vector fields132277
+Ref: traj133739
+Ref: vect134572
+Ref: vectc136132
+Ref: vectl136875
+Ref: dew137618
+Ref: flow138365
+Ref: pipe140895
+Node: Other plotting142621
+Ref: densx143982
+Ref: densy143982
+Ref: densz143982
+Ref: contz144661
+Ref: conty144661
+Ref: contx144661
+Ref: contfz145350
+Ref: contfy145350
+Ref: contfx145350
+Ref: dots145961
+Ref: crust146460
+Ref: triplot146954
+Ref: tricont147939
+Ref: quadplot148948
+Ref: fplot149900
+Ref: fsurf150699
+Node: Nonlinear fitting151515
+Ref: fits153925
+Ref: fit154464
+Ref: putsfit154984
+Node: Data create155381
+Ref: new155560
+Ref: var155896
+Ref: list156192
+Ref: copy157456
+Ref: idset157938
+Ref: info158222
+Node: Data filling158675
+Ref: fill158859
+Ref: modify159811
+Ref: put160653
+Node: Rearrange data161807
+Ref: rearrange162018
+Ref: extend162505
+Ref: transpose163258
+Ref: squeeze163518
+Ref: crop163937
+Ref: delete164149
+Ref: insert164558
+Node: File I/O164765
+Ref: read164977
+Ref: readmat165704
+Ref: readall166030
+Ref: save167041
+Ref: readhdf167165
+Ref: savehdf167311
+Ref: import167463
+Ref: export167791
+Node: Make another data168367
+Ref: combine168564
+Ref: evaluate168792
+Ref: hist169569
+Ref: momentum170790
+Ref: sum171301
+Ref: max171503
+Ref: min171789
+Ref: resize171987
+Ref: subdata172246
+Ref: trace172783
+Ref: transform173219
+Ref: transforma174151
+Ref: stfad174366
+Ref: pde174868
+Ref: ray176783
+Ref: qo2d177759
+Ref: jacobian179063
+Node: Change data179786
+Ref: cumsum180405
+Ref: integrate180551
+Ref: diff180777
+Ref: diff2182016
+Ref: sinfft182234
+Ref: cosfft182468
+Ref: hankel182707
+Ref: swap182947
+Ref: roll183201
+Ref: mirror183432
+Ref: sew183634
+Ref: smooth183944
+Ref: envelop184419
+Ref: normsl184664
+Ref: norm185185
+Node: Operators185523
+Ref: multo185672
+Ref: divto185893
+Ref: addto186102
+Ref: subto186333
+Node: Program flow186560
+Ref: chdir186978
+Ref: define187060
+Ref: defchr187790
+Ref: defnum188013
+Ref: defpal188239
+Ref: call188502
+Ref: func188892
+Ref: return189439
+Ref: if189533
+Ref: elseif189868
+Ref: else190370
+Ref: endif190557
+Ref: for190669
+Ref: next191253
+Ref: once191339
+Ref: stop191639
+Node: Command options191739
+Node: Suffixes195251
+Node: Utilities197678
+Node: Examples200113
+Node: Basic usage200707
+Node: Advanced usage202423
+Node: Subplots202876
+Node: Axis and grids204297
+Node: Curvilinear coordinates206735
+Node: Text printing example207842
+Node: Data handling209411
+Node: Array creation209598
+Node: Data changing211428
+Node: Data plotting213837
+Node: Plots for 1D data214923
+Node: Plots for 2D data217344
+Node: Plots for 3D data220481
+Node: Surface transparency222233
+Node: Hints224286
+Node: ``Compound'' graphics225108
+Node: Two axes in one plot226848
+Node: Titles for the plot227827
+Node: Changing of the color range228573
+Node: Management of a point cutting229255
+Node: Vector field visualization230348
+Node: Several light sources230985
+Node: CutMin and CutMax features231614
+Node: Mapping visualization232657
+Node: Log-scaled plot233823
+Node: Nonlinear fitting hints234412
+Node: PDE solving hints235875
+Node: Stereo image241083
+Node: Samples241546
+Node: 1D plotting samples242264
+Node: Plot sample242892
+Node: Radar sample243256
+Node: Tens sample243574
+Node: Area sample243940
+Node: Area gradient sample244343
+Node: Bars sample244843
+Node: Bars 2 colors sample245185
+Node: Bars above sample245565
+Node: Bars fall sample245977
+Node: Barh sample246358
+Node: Step sample246689
+Node: Stem sample247074
+Node: Region sample247476
+Node: Region gradient sample247874
+Node: Error sample248362
+Node: BoxPlot sample248917
+Node: Mark sample249245
+Node: TextMark sample249687
+Node: Tube sample250146
+Node: Text sample250562
+Node: Torus sample251062
+Node: Chart sample251442
+Node: Pie chart sample251770
+Node: Ring chart sample252174
+Node: 2D plotting samples252560
+Node: Surf sample253044
+Node: Transparent surface sample253395
+Node: Surface in fog sample253821
+Node: Sharp colors sample254240
+Node: Mesh sample254643
+Node: Fall sample254998
+Node: Belt sample255345
+Node: Tile sample255701
+Node: Boxs sample256057
+Node: Dens sample256426
+Node: Cont sample256771
+Node: ContF sample257121
+Node: ContD sample257485
+Node: Axial sample257854
+Node: Grad sample258227
+Node: 3D plotting samples258560
+Node: Surf3 sample258986
+Node: Cloud sample259347
+Node: CloudP sample259729
+Node: Dens3 sample260004
+Node: Cont3 sample260396
+Node: ContF3 sample260761
+Node: Cont projection sample261149
+Node: Dens projection sample261626
+Node: CutMinMax sample262106
+Node: Isocaps sample262534
+Node: CutOff sample263015
+Node: Dual plotting samples263438
+Node: SurfC sample264046
+Node: SurfA sample264465
+Node: TileS sample264914
+Node: Map sample265329
+Node: Traj sample265847
+Node: Vect sample266349
+Node: VectL sample266761
+Node: VectC sample267178
+Node: Flow sample267595
+Node: Pipe sample268007
+Node: Dew sample268428
+Node: Surf3C sample268847
+Node: Surf3A sample269287
+Node: Vect 3D sample269731
+Node: VectL 3D sample270332
+Node: VectC 3D sample270939
+Node: Flow 3D sample271546
+Node: Pipe 3D sample272148
+Node: Crust sample272756
+Node: Dots sample273091
+Node: Basic features273390
+Node: 1D plot sample273895
+Node: 2D plot sample274590
+Node: 3D plot sample275448
+Node: Line styles sample276067
+Node: Arrow styles sample276367
+Node: Text styles sample276639
+Node: TeX parsing sample277273
+Node: Font faces sample277596
+Node: Colors sample277875
+Node: Color schemes sample280103
+Node: Normal transparency281650
+Node: Glass-like transparency282192
+Node: Lamp-like transparency282752
+Node: Additional features283276
+Node: Legend sample283784
+Node: Adding mesh sample284255
+Node: Surf & Cont sample284774
+Node: Flow & Dens sample285183
+Node: Several light sample285693
+Node: Mirrored surface sample286153
+Node: Cont with labels sample286722
+Node: Ternary plot sample287135
+Node: Coloring by coordinates sample287798
+Node: Drops sample288219
+Node: Molecules drawing sample288877
+Node: Advanced features290124
+Node: Curvelinear coorinates sample290636
+Node: 2-axes sample291403
+Node: Semi-log sample291917
+Node: Log-log sample292391
+Node: Fitting sample292869
+Node: Envelop sample293433
+Node: Sew sample293777
+Node: STFA sample294146
+Node: PDE sample294635
+Node: Beam tracing sample295223
+Node: Parser sample295891
+Node: Manual ticks sample296127
+Node: ColumnPlot sample296509
+Node: StickPlot sample296883
+Node: Stereo image sample297479
+Node: Copying This Manual297890
+Node: Index320305
+
+End Tag Table
+
+
+Local Variables:
+coding: utf-8
+End:
diff --git a/texinfo/png/Makefile b/texinfo/png/Makefile
new file mode 100644
index 0000000..759cf32
--- /dev/null
+++ b/texinfo/png/Makefile
@@ -0,0 +1,472 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# texinfo/png/Makefile.  Generated from Makefile.in by configure.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+
+pkgdatadir = $(datadir)/mathgl
+pkgincludedir = $(includedir)/mathgl
+pkglibdir = $(libdir)/mathgl
+pkglibexecdir = $(libexecdir)/mathgl
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-pc-linux-gnu
+host_triplet = x86_64-pc-linux-gnu
+subdir = texinfo/png
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
+	$(top_srcdir)/config/libtool.m4 \
+	$(top_srcdir)/config/ltoptions.m4 \
+	$(top_srcdir)/config/ltsugar.m4 \
+	$(top_srcdir)/config/ltversion.m4 \
+	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/include/mgl/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(pngdir)"
+DATA = $(png_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run aclocal-1.11
+AMTAR = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run tar
+AM_CXXFLAGS = -Wall -I/usr/include
+AR = ar
+AS = as
+AUTOCONF = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run automake-1.11
+AWK = gawk
+CC = x86_64-linux-gnu-gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -Wall -g -O2
+CPP = x86_64-linux-gnu-gcc -E
+CPPFLAGS = 
+CXX = x86_64-linux-gnu-g++
+CXXCPP = x86_64-linux-gnu-g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DLLTOOL = dlltool
+DSYMUTIL = 
+DUMPBIN = 
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /bin/grep -E
+EXEEXT = 
+FGREP = /bin/grep -F
+FLTK_FLAGS = -I/usr/include/freetype2 -g -O2 -D_THREAD_SAFE -D_REENTRANT
+FLTK_LIBS = -lfltk
+GIF_FLAGS = -DHAVE_GIF
+GIF_LIBS = -lgif
+GLUT_FLAGS = -DHAVE_GLUT
+GLUT_LIBS = -lglut
+GL_LIBS = -lGL
+GREP = /bin/grep
+GSL_FLAGS = -I/usr/include
+GSL_LIBS = -L/usr/lib -lgsl -lgslcblas -lm
+HAVE_SWIG = true
+HDF4_FLAGS = -DHAVE_HDF4
+HDF4_LIBS = -lmfhdf -ldf
+HDF5_FLAGS = -DHAVE_HDF5 -DH5_USE_16_API
+HDF5_LIBS = -lhdf5
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+JPEG_FLAGS = -DHAVE_JPEG
+JPEG_LIBS = -ljpeg
+LD = /usr/bin/ld -m elf_x86_64
+LDFLAGS = 
+LIBOBJS = 
+LIBS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIPO = 
+LN_S = ln -s
+LTLIBOBJS = 
+MAKEINFO = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run makeinfo
+MGL_AGE = 0
+MGL_CURRENT = 5
+MGL_RELEASE = 1.10
+MGL_REVISION = 0
+MKDIR_P = /bin/mkdir -p
+MOC = /usr/bin/moc-qt4
+NM = /usr/bin/nm -B
+NMEDIT = 
+OBJDUMP = objdump
+OBJEXT = o
+OCTAVE = octave-config
+OCTAVE_ARCH = x86_64-pc-linux-gnu-api-v37
+OCTAVE_INCFLAGS = -I/usr/include/octave-3.2.4
+OTOOL = 
+OTOOL64 = 
+PACKAGE = mathgl
+PACKAGE_BUGREPORT = mathgl.abalakin at gmail.com
+PACKAGE_NAME = mathgl
+PACKAGE_STRING = mathgl 1.10
+PACKAGE_TARNAME = mathgl
+PACKAGE_URL = 
+PACKAGE_VERSION = 1.10
+PATH_SEPARATOR = :
+PNG_LIBS = -lpng
+PTHREAD_FLAGS = -DHAVE_PTHREAD
+PTHREAD_LIBS = -lpthread
+PYTHON = /usr/bin/python
+PYTHON_EXEC_PREFIX = ${exec_prefix}
+PYTHON_HEADERS = -I/usr/include/python2.6 -I/usr/include/python2.6 -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes
+PYTHON_PLATFORM = linux2
+PYTHON_PREFIX = ${prefix}
+PYTHON_VERSION = 2.6
+QMAKE = /usr/bin/qmake-qt4
+QT_CFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(QT_DEFINES)
+QT_CPPFLAGS = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I.
+QT_CXXFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(QT_DEFINES)
+QT_DEFINES = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
+QT_INCPATH = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I.
+QT_LDFLAGS = 
+QT_LFLAGS = 
+QT_LIBS = -L/usr/lib -lQtGui -lQtCore -lpthread 
+QT_PATH = /usr/bin
+QT_VERSION = 4.6.3
+QT_VERSION_MAJOR = ok, looks like Qt 4
+RANLIB = ranlib
+RCC = /usr/bin/rcc
+SED = /bin/sed
+SET_MAKE = 
+SHELL = /bin/bash
+STRIP = strip
+TMPDIR = /tmp
+UIC = /usr/bin/uic-qt4
+VERSION = 1.10
+WX_FLAGS = -I/usr/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread
+WX_LIBS = -pthread   -lwx_gtk2u_richtext-2.8 -lwx_gtk2u_aui-2.8 -lwx_gtk2u_xrc-2.8 -lwx_gtk2u_qa-2.8 -lwx_gtk2u_html-2.8 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8 
+abs_builddir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/texinfo/png
+abs_srcdir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/texinfo/png
+abs_top_builddir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11
+abs_top_srcdir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11
+ac_ct_CC = 
+ac_ct_CXX = 
+ac_ct_DUMPBIN = 
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-pc-linux-gnu
+build_alias = x86_64-linux-gnu
+build_cpu = x86_64
+build_os = linux-gnu
+build_vendor = pc
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+host = x86_64-pc-linux-gnu
+host_alias = x86_64-linux-gnu
+host_cpu = x86_64
+host_os = linux-gnu
+host_vendor = pc
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${prefix}/share/info
+install_sh = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+lt_ECHO = echo
+mandir = ${prefix}/share/man
+mkdir_p = /bin/mkdir -p
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+pkgpyexecdir = ${pyexecdir}/mathgl
+pkgpythondir = ${pythondir}/mathgl
+prefix = /usr
+program_transform_name = s,x,x,
+psdir = ${docdir}
+pyexecdir = ${exec_prefix}/lib/python2.6/dist-packages
+pythondir = ${prefix}/lib/python2.6/dist-packages
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target_alias = 
+top_build_prefix = ../../
+top_builddir = ../..
+top_srcdir = ../..
+pngdir = $(docdir)/png
+images = ${shell $(top_builddir)/examples/mgl_example -list}
+png_images = ${images:=.png}
+png_DATA = $(png_images)
+CLEANFILES = $(png_images)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu texinfo/png/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu texinfo/png/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+install-pngDATA: $(png_DATA)
+	@$(NORMAL_INSTALL)
+	test -z "$(pngdir)" || $(MKDIR_P) "$(DESTDIR)$(pngdir)"
+	@list='$(png_DATA)'; test -n "$(pngdir)" || list=; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pngdir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(pngdir)" || exit $$?; \
+	done
+
+uninstall-pngDATA:
+	@$(NORMAL_UNINSTALL)
+	@list='$(png_DATA)'; test -n "$(pngdir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	test -n "$$files" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(pngdir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(pngdir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+	for dir in "$(DESTDIR)$(pngdir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-pngDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-pngDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-dvi install-dvi-am \
+	install-exec install-exec-am install-html install-html-am \
+	install-info install-info-am install-man install-pdf \
+	install-pdf-am install-pngDATA install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	uninstall uninstall-am uninstall-pngDATA
+
+
+$(png_images): hotdogs.pts # $(top_builddir)/examples/mgl_example
+	$(top_builddir)/examples/mgl_example -kind=${@:.png=}
+	touch $(srcdir)/../mathgl.texi
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/texinfo/png/Makefile.in b/texinfo/png/Makefile.in
index 8fe45dd..07439f3 100644
--- a/texinfo/png/Makefile.in
+++ b/texinfo/png/Makefile.in
@@ -38,11 +38,7 @@ subdir = texinfo/png
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
-	$(top_srcdir)/config/libtool.m4 \
-	$(top_srcdir)/config/ltoptions.m4 \
-	$(top_srcdir)/config/ltsugar.m4 \
-	$(top_srcdir)/config/ltversion.m4 \
-	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
diff --git a/utils/.deps/mgl2cpp.Po b/utils/.deps/mgl2cpp.Po
new file mode 100644
index 0000000..70ad4a4
--- /dev/null
+++ b/utils/.deps/mgl2cpp.Po
@@ -0,0 +1,361 @@
+mgl2cpp.o: mgl2cpp.cpp /usr/include/stdio.h /usr/include/features.h \
+ /usr/include/bits/predefs.h /usr/include/sys/cdefs.h \
+ /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/bits/wchar.h \
+ /usr/include/xlocale.h /usr/include/string.h /usr/include/locale.h \
+ /usr/include/bits/locale.h ../include/mgl/mgl_eps.h \
+ ../include/mgl/mgl_ab.h ../include/mgl/mgl.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/sys/types.h \
+ /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h ../include/mgl/mgl_data.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h ../include/mgl/mgl_parse.h
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/string.h:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+../include/mgl/mgl_eps.h:
+
+../include/mgl/mgl_ab.h:
+
+../include/mgl/mgl.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+../include/mgl/mgl_parse.h:
diff --git a/utils/.deps/mgl2eps.Po b/utils/.deps/mgl2eps.Po
new file mode 100644
index 0000000..1df1e73
--- /dev/null
+++ b/utils/.deps/mgl2eps.Po
@@ -0,0 +1,361 @@
+mgl2eps.o: mgl2eps.cpp /usr/include/stdio.h /usr/include/features.h \
+ /usr/include/bits/predefs.h /usr/include/sys/cdefs.h \
+ /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/string.h /usr/include/xlocale.h \
+ /usr/include/locale.h /usr/include/bits/locale.h \
+ ../include/mgl/mgl_eps.h ../include/mgl/mgl_ab.h ../include/mgl/mgl.h \
+ /usr/include/bits/wchar.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/sys/types.h \
+ /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h ../include/mgl/mgl_data.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h ../include/mgl/mgl_parse.h
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+../include/mgl/mgl_eps.h:
+
+../include/mgl/mgl_ab.h:
+
+../include/mgl/mgl.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+../include/mgl/mgl_parse.h:
diff --git a/utils/.deps/mgl2gif-mgl2gif.Po b/utils/.deps/mgl2gif-mgl2gif.Po
new file mode 100644
index 0000000..c627ac5
--- /dev/null
+++ b/utils/.deps/mgl2gif-mgl2gif.Po
@@ -0,0 +1,364 @@
+mgl2gif-mgl2gif.o: mgl2gif.cpp /usr/include/stdio.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/string.h /usr/include/xlocale.h \
+ /usr/include/locale.h /usr/include/bits/locale.h \
+ /usr/include/bits/wchar.h ../include/mgl/mgl_zb.h \
+ ../include/mgl/mgl_ab.h ../include/mgl/mgl.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/sys/types.h \
+ /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h ../include/mgl/mgl_data.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h /usr/include/gif_lib.h \
+ ../include/mgl/mgl_parse.h
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/bits/wchar.h:
+
+../include/mgl/mgl_zb.h:
+
+../include/mgl/mgl_ab.h:
+
+../include/mgl/mgl.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+/usr/include/gif_lib.h:
+
+../include/mgl/mgl_parse.h:
diff --git a/utils/.deps/mgl2png.Po b/utils/.deps/mgl2png.Po
new file mode 100644
index 0000000..2ee6b00
--- /dev/null
+++ b/utils/.deps/mgl2png.Po
@@ -0,0 +1,361 @@
+mgl2png.o: mgl2png.cpp /usr/include/stdio.h /usr/include/features.h \
+ /usr/include/bits/predefs.h /usr/include/sys/cdefs.h \
+ /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/string.h /usr/include/xlocale.h \
+ /usr/include/locale.h /usr/include/bits/locale.h ../include/mgl/mgl_zb.h \
+ ../include/mgl/mgl_ab.h ../include/mgl/mgl.h /usr/include/bits/wchar.h \
+ /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h /usr/include/endian.h \
+ /usr/include/bits/endian.h /usr/include/bits/byteswap.h \
+ /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/alloca.h \
+ ../include/mgl/mgl_data.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h ../include/mgl/mgl_parse.h
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+../include/mgl/mgl_zb.h:
+
+../include/mgl/mgl_ab.h:
+
+../include/mgl/mgl.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+../include/mgl/mgl_parse.h:
diff --git a/utils/.deps/mgl2svg.Po b/utils/.deps/mgl2svg.Po
new file mode 100644
index 0000000..0eca932
--- /dev/null
+++ b/utils/.deps/mgl2svg.Po
@@ -0,0 +1,361 @@
+mgl2svg.o: mgl2svg.cpp /usr/include/stdio.h /usr/include/features.h \
+ /usr/include/bits/predefs.h /usr/include/sys/cdefs.h \
+ /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/string.h /usr/include/xlocale.h \
+ /usr/include/locale.h /usr/include/bits/locale.h \
+ ../include/mgl/mgl_eps.h ../include/mgl/mgl_ab.h ../include/mgl/mgl.h \
+ /usr/include/bits/wchar.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/sys/types.h \
+ /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h ../include/mgl/mgl_data.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h ../include/mgl/mgl_parse.h
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+../include/mgl/mgl_eps.h:
+
+../include/mgl/mgl_ab.h:
+
+../include/mgl/mgl.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+../include/mgl/mgl_parse.h:
diff --git a/utils/.deps/mglview-mglview.Po b/utils/.deps/mglview-mglview.Po
new file mode 100644
index 0000000..507c525
--- /dev/null
+++ b/utils/.deps/mglview-mglview.Po
@@ -0,0 +1,406 @@
+mglview-mglview.o: mglview.cpp /usr/include/stdio.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/string.h /usr/include/xlocale.h \
+ /usr/include/locale.h /usr/include/bits/locale.h \
+ ../include/mgl/mgl_fltk.h /usr/include/FL/Fl.H \
+ /usr/include/FL/Enumerations.H /usr/include/FL/Fl_Export.H \
+ /usr/include/Fl/Fl_Scroll.H /usr/include/Fl/Fl_Group.H \
+ /usr/include/Fl/Fl_Widget.H /usr/include/Fl/Enumerations.H \
+ /usr/include/Fl/Fl_Scrollbar.H /usr/include/Fl/Fl_Slider.H \
+ /usr/include/Fl/Fl_Valuator.H /usr/include/FL/Fl_Button.H \
+ /usr/include/FL/Fl_Counter.H /usr/include/FL/Fl_Menu_Bar.H \
+ /usr/include/FL/Fl_Menu_.H /usr/include/FL/Fl_Menu_Item.H \
+ /usr/include/FL/Fl_Widget.H /usr/include/FL/Fl_Image.H \
+ ../include/mgl/mgl_zb.h ../include/mgl/mgl_ab.h ../include/mgl/mgl.h \
+ /usr/include/bits/wchar.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/sys/types.h \
+ /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h ../include/mgl/mgl_data.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h ../include/mgl/mgl_parse.h
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+../include/mgl/mgl_fltk.h:
+
+/usr/include/FL/Fl.H:
+
+/usr/include/FL/Enumerations.H:
+
+/usr/include/FL/Fl_Export.H:
+
+/usr/include/Fl/Fl_Scroll.H:
+
+/usr/include/Fl/Fl_Group.H:
+
+/usr/include/Fl/Fl_Widget.H:
+
+/usr/include/Fl/Enumerations.H:
+
+/usr/include/Fl/Fl_Scrollbar.H:
+
+/usr/include/Fl/Fl_Slider.H:
+
+/usr/include/Fl/Fl_Valuator.H:
+
+/usr/include/FL/Fl_Button.H:
+
+/usr/include/FL/Fl_Counter.H:
+
+/usr/include/FL/Fl_Menu_Bar.H:
+
+/usr/include/FL/Fl_Menu_.H:
+
+/usr/include/FL/Fl_Menu_Item.H:
+
+/usr/include/FL/Fl_Widget.H:
+
+/usr/include/FL/Fl_Image.H:
+
+../include/mgl/mgl_zb.h:
+
+../include/mgl/mgl_ab.h:
+
+../include/mgl/mgl.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+../include/mgl/mgl_parse.h:
diff --git a/utils/.libs/mgl2cpp b/utils/.libs/mgl2cpp
new file mode 100755
index 0000000..542dbb6
Binary files /dev/null and b/utils/.libs/mgl2cpp differ
diff --git a/utils/.libs/mgl2eps b/utils/.libs/mgl2eps
new file mode 100755
index 0000000..b318a1d
Binary files /dev/null and b/utils/.libs/mgl2eps differ
diff --git a/utils/.libs/mgl2gif b/utils/.libs/mgl2gif
new file mode 100755
index 0000000..cf45da9
Binary files /dev/null and b/utils/.libs/mgl2gif differ
diff --git a/utils/.libs/mgl2png b/utils/.libs/mgl2png
new file mode 100755
index 0000000..ea339da
Binary files /dev/null and b/utils/.libs/mgl2png differ
diff --git a/utils/.libs/mgl2svg b/utils/.libs/mgl2svg
new file mode 100755
index 0000000..4f0b5fa
Binary files /dev/null and b/utils/.libs/mgl2svg differ
diff --git a/utils/.libs/mglview b/utils/.libs/mglview
new file mode 100755
index 0000000..2168de0
Binary files /dev/null and b/utils/.libs/mglview differ
diff --git a/utils/Makefile b/utils/Makefile
new file mode 100644
index 0000000..517bda3
--- /dev/null
+++ b/utils/Makefile
@@ -0,0 +1,664 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# utils/Makefile.  Generated from Makefile.in by configure.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+
+pkgdatadir = $(datadir)/mathgl
+pkgincludedir = $(includedir)/mathgl
+pkglibdir = $(libdir)/mathgl
+pkglibexecdir = $(libexecdir)/mathgl
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-pc-linux-gnu
+host_triplet = x86_64-pc-linux-gnu
+bin_PROGRAMS = mgl2png$(EXEEXT) mgl2eps$(EXEEXT) mgl2svg$(EXEEXT) \
+	mgl2cpp$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2)
+am__append_1 = mglview
+am__append_2 = mgl2gif
+subdir = utils
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
+	$(top_srcdir)/config/libtool.m4 \
+	$(top_srcdir)/config/ltoptions.m4 \
+	$(top_srcdir)/config/ltsugar.m4 \
+	$(top_srcdir)/config/ltversion.m4 \
+	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/include/mgl/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__EXEEXT_1 = mglview$(EXEEXT)
+am__EXEEXT_2 = mgl2gif$(EXEEXT)
+am__installdirs = "$(DESTDIR)$(bindir)"
+PROGRAMS = $(bin_PROGRAMS)
+am_mgl2cpp_OBJECTS = mgl2cpp.$(OBJEXT)
+mgl2cpp_OBJECTS = $(am_mgl2cpp_OBJECTS)
+mgl2cpp_DEPENDENCIES = $(top_builddir)/mgl/libmgl.la
+am_mgl2eps_OBJECTS = mgl2eps.$(OBJEXT)
+mgl2eps_OBJECTS = $(am_mgl2eps_OBJECTS)
+mgl2eps_DEPENDENCIES = $(top_builddir)/mgl/libmgl.la
+am__mgl2gif_SOURCES_DIST = mgl2gif.cpp
+am_mgl2gif_OBJECTS = mgl2gif-mgl2gif.$(OBJEXT)
+mgl2gif_OBJECTS = $(am_mgl2gif_OBJECTS)
+mgl2gif_DEPENDENCIES = $(top_builddir)/mgl/libmgl.la
+mgl2gif_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CXXLD) $(mgl2gif_CXXFLAGS) $(CXXFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_mgl2png_OBJECTS = mgl2png.$(OBJEXT)
+mgl2png_OBJECTS = $(am_mgl2png_OBJECTS)
+mgl2png_DEPENDENCIES = $(top_builddir)/mgl/libmgl.la
+am_mgl2svg_OBJECTS = mgl2svg.$(OBJEXT)
+mgl2svg_OBJECTS = $(am_mgl2svg_OBJECTS)
+mgl2svg_DEPENDENCIES = $(top_builddir)/mgl/libmgl.la
+am__mglview_SOURCES_DIST = mglview.cpp
+am_mglview_OBJECTS = mglview-mglview.$(OBJEXT)
+mglview_OBJECTS = $(am_mglview_OBJECTS)
+mglview_DEPENDENCIES =  \
+	$(top_builddir)/widgets/libmgl-fltk.la \
+	$(top_builddir)/mgl/libmgl.la
+mglview_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CXXLD) $(mglview_CXXFLAGS) $(CXXFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/include/mgl
+depcomp = $(SHELL) $(top_srcdir)/config/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = $(mgl2cpp_SOURCES) $(mgl2eps_SOURCES) $(mgl2gif_SOURCES) \
+	$(mgl2png_SOURCES) $(mgl2svg_SOURCES) $(mglview_SOURCES)
+DIST_SOURCES = $(mgl2cpp_SOURCES) $(mgl2eps_SOURCES) \
+	$(am__mgl2gif_SOURCES_DIST) $(mgl2png_SOURCES) \
+	$(mgl2svg_SOURCES) $(am__mglview_SOURCES_DIST)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run aclocal-1.11
+AMTAR = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run tar
+AM_CXXFLAGS = -Wall -I/usr/include -I$(top_srcdir)/include \
+	-I$(top_builddir)/include
+AR = ar
+AS = as
+AUTOCONF = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run automake-1.11
+AWK = gawk
+CC = x86_64-linux-gnu-gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -Wall -g -O2
+CPP = x86_64-linux-gnu-gcc -E
+CPPFLAGS = 
+CXX = x86_64-linux-gnu-g++
+CXXCPP = x86_64-linux-gnu-g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DLLTOOL = dlltool
+DSYMUTIL = 
+DUMPBIN = 
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /bin/grep -E
+EXEEXT = 
+FGREP = /bin/grep -F
+FLTK_FLAGS = -I/usr/include/freetype2 -g -O2 -D_THREAD_SAFE -D_REENTRANT
+FLTK_LIBS = -lfltk
+GIF_FLAGS = -DHAVE_GIF
+GIF_LIBS = -lgif
+GLUT_FLAGS = -DHAVE_GLUT
+GLUT_LIBS = -lglut
+GL_LIBS = -lGL
+GREP = /bin/grep
+GSL_FLAGS = -I/usr/include
+GSL_LIBS = -L/usr/lib -lgsl -lgslcblas -lm
+HAVE_SWIG = true
+HDF4_FLAGS = -DHAVE_HDF4
+HDF4_LIBS = -lmfhdf -ldf
+HDF5_FLAGS = -DHAVE_HDF5 -DH5_USE_16_API
+HDF5_LIBS = -lhdf5
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+JPEG_FLAGS = -DHAVE_JPEG
+JPEG_LIBS = -ljpeg
+LD = /usr/bin/ld -m elf_x86_64
+LDFLAGS = 
+LIBOBJS = 
+LIBS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIPO = 
+LN_S = ln -s
+LTLIBOBJS = 
+MAKEINFO = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run makeinfo
+MGL_AGE = 0
+MGL_CURRENT = 5
+MGL_RELEASE = 1.10
+MGL_REVISION = 0
+MKDIR_P = /bin/mkdir -p
+MOC = /usr/bin/moc-qt4
+NM = /usr/bin/nm -B
+NMEDIT = 
+OBJDUMP = objdump
+OBJEXT = o
+OCTAVE = octave-config
+OCTAVE_ARCH = x86_64-pc-linux-gnu-api-v37
+OCTAVE_INCFLAGS = -I/usr/include/octave-3.2.4
+OTOOL = 
+OTOOL64 = 
+PACKAGE = mathgl
+PACKAGE_BUGREPORT = mathgl.abalakin at gmail.com
+PACKAGE_NAME = mathgl
+PACKAGE_STRING = mathgl 1.10
+PACKAGE_TARNAME = mathgl
+PACKAGE_URL = 
+PACKAGE_VERSION = 1.10
+PATH_SEPARATOR = :
+PNG_LIBS = -lpng
+PTHREAD_FLAGS = -DHAVE_PTHREAD
+PTHREAD_LIBS = -lpthread
+PYTHON = /usr/bin/python
+PYTHON_EXEC_PREFIX = ${exec_prefix}
+PYTHON_HEADERS = -I/usr/include/python2.6 -I/usr/include/python2.6 -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes
+PYTHON_PLATFORM = linux2
+PYTHON_PREFIX = ${prefix}
+PYTHON_VERSION = 2.6
+QMAKE = /usr/bin/qmake-qt4
+QT_CFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(QT_DEFINES)
+QT_CPPFLAGS = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I.
+QT_CXXFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(QT_DEFINES)
+QT_DEFINES = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
+QT_INCPATH = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I.
+QT_LDFLAGS = 
+QT_LFLAGS = 
+QT_LIBS = -L/usr/lib -lQtGui -lQtCore -lpthread 
+QT_PATH = /usr/bin
+QT_VERSION = 4.6.3
+QT_VERSION_MAJOR = ok, looks like Qt 4
+RANLIB = ranlib
+RCC = /usr/bin/rcc
+SED = /bin/sed
+SET_MAKE = 
+SHELL = /bin/bash
+STRIP = strip
+TMPDIR = /tmp
+UIC = /usr/bin/uic-qt4
+VERSION = 1.10
+WX_FLAGS = -I/usr/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread
+WX_LIBS = -pthread   -lwx_gtk2u_richtext-2.8 -lwx_gtk2u_aui-2.8 -lwx_gtk2u_xrc-2.8 -lwx_gtk2u_qa-2.8 -lwx_gtk2u_html-2.8 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8 
+abs_builddir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/utils
+abs_srcdir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/utils
+abs_top_builddir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11
+abs_top_srcdir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11
+ac_ct_CC = 
+ac_ct_CXX = 
+ac_ct_DUMPBIN = 
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-pc-linux-gnu
+build_alias = x86_64-linux-gnu
+build_cpu = x86_64
+build_os = linux-gnu
+build_vendor = pc
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+host = x86_64-pc-linux-gnu
+host_alias = x86_64-linux-gnu
+host_cpu = x86_64
+host_os = linux-gnu
+host_vendor = pc
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${prefix}/share/info
+install_sh = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+lt_ECHO = echo
+mandir = ${prefix}/share/man
+mkdir_p = /bin/mkdir -p
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+pkgpyexecdir = ${pyexecdir}/mathgl
+pkgpythondir = ${pythondir}/mathgl
+prefix = /usr
+program_transform_name = s,x,x,
+psdir = ${docdir}
+pyexecdir = ${exec_prefix}/lib/python2.6/dist-packages
+pythondir = ${prefix}/lib/python2.6/dist-packages
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target_alias = 
+top_build_prefix = ../
+top_builddir = ..
+top_srcdir = ..
+mgl2png_SOURCES = mgl2png.cpp
+mgl2png_LDADD = $(top_builddir)/mgl/libmgl.la
+mgl2cpp_SOURCES = mgl2cpp.cpp
+mgl2cpp_LDADD = $(top_builddir)/mgl/libmgl.la
+mgl2eps_SOURCES = mgl2eps.cpp
+mgl2eps_LDADD = $(top_builddir)/mgl/libmgl.la
+mgl2svg_SOURCES = mgl2svg.cpp
+mgl2svg_LDADD = $(top_builddir)/mgl/libmgl.la
+mglview_SOURCES = mglview.cpp
+mglview_LDADD = $(top_builddir)/widgets/libmgl-fltk.la $(top_builddir)/mgl/libmgl.la 
+mglview_CXXFLAGS = $(FLTK_FLAGS) $(AM_CXXFLAGS)
+mgl2gif_SOURCES = mgl2gif.cpp
+mgl2gif_LDADD = $(top_builddir)/mgl/libmgl.la
+mgl2gif_CXXFLAGS = $(GIF_FLAGS) $(AM_CXXFLAGS)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .cpp .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu utils/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu utils/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-binPROGRAMS: $(bin_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	for p in $$list; do echo "$$p $$p"; done | \
+	sed 's/$(EXEEXT)$$//' | \
+	while read p p1; do if test -f $$p || test -f $$p1; \
+	  then echo "$$p"; echo "$$p"; else :; fi; \
+	done | \
+	sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+	sed 'N;N;N;s,\n, ,g' | \
+	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
+	    else { print "f", $$3 "/" $$4, $$1; } } \
+	  END { for (d in files) print "f", d, files[d] }' | \
+	while read type dir files; do \
+	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+	    test -z "$$files" || { \
+	    echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+	    $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+	    } \
+	; done
+
+uninstall-binPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	files=`for p in $$list; do echo "$$p"; done | \
+	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+	      -e 's/$$/$(EXEEXT)/' `; \
+	test -n "$$list" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+	@list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+	echo " rm -f" $$list; \
+	rm -f $$list || exit $$?; \
+	test -n "$(EXEEXT)" || exit 0; \
+	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+	echo " rm -f" $$list; \
+	rm -f $$list
+mgl2cpp$(EXEEXT): $(mgl2cpp_OBJECTS) $(mgl2cpp_DEPENDENCIES) 
+	@rm -f mgl2cpp$(EXEEXT)
+	$(CXXLINK) $(mgl2cpp_OBJECTS) $(mgl2cpp_LDADD) $(LIBS)
+mgl2eps$(EXEEXT): $(mgl2eps_OBJECTS) $(mgl2eps_DEPENDENCIES) 
+	@rm -f mgl2eps$(EXEEXT)
+	$(CXXLINK) $(mgl2eps_OBJECTS) $(mgl2eps_LDADD) $(LIBS)
+mgl2gif$(EXEEXT): $(mgl2gif_OBJECTS) $(mgl2gif_DEPENDENCIES) 
+	@rm -f mgl2gif$(EXEEXT)
+	$(mgl2gif_LINK) $(mgl2gif_OBJECTS) $(mgl2gif_LDADD) $(LIBS)
+mgl2png$(EXEEXT): $(mgl2png_OBJECTS) $(mgl2png_DEPENDENCIES) 
+	@rm -f mgl2png$(EXEEXT)
+	$(CXXLINK) $(mgl2png_OBJECTS) $(mgl2png_LDADD) $(LIBS)
+mgl2svg$(EXEEXT): $(mgl2svg_OBJECTS) $(mgl2svg_DEPENDENCIES) 
+	@rm -f mgl2svg$(EXEEXT)
+	$(CXXLINK) $(mgl2svg_OBJECTS) $(mgl2svg_LDADD) $(LIBS)
+mglview$(EXEEXT): $(mglview_OBJECTS) $(mglview_DEPENDENCIES) 
+	@rm -f mglview$(EXEEXT)
+	$(mglview_LINK) $(mglview_OBJECTS) $(mglview_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+include ./$(DEPDIR)/mgl2cpp.Po
+include ./$(DEPDIR)/mgl2eps.Po
+include ./$(DEPDIR)/mgl2gif-mgl2gif.Po
+include ./$(DEPDIR)/mgl2png.Po
+include ./$(DEPDIR)/mgl2svg.Po
+include ./$(DEPDIR)/mglview-mglview.Po
+
+.cpp.o:
+	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+#	source='$<' object='$@' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+#	source='$<' object='$@' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+	$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+#	source='$<' object='$@' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LTCXXCOMPILE) -c -o $@ $<
+
+mgl2gif-mgl2gif.o: mgl2gif.cpp
+	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl2gif_CXXFLAGS) $(CXXFLAGS) -MT mgl2gif-mgl2gif.o -MD -MP -MF $(DEPDIR)/mgl2gif-mgl2gif.Tpo -c -o mgl2gif-mgl2gif.o `test -f 'mgl2gif.cpp' || echo '$(srcdir)/'`mgl2gif.cpp
+	$(am__mv) $(DEPDIR)/mgl2gif-mgl2gif.Tpo $(DEPDIR)/mgl2gif-mgl2gif.Po
+#	source='mgl2gif.cpp' object='mgl2gif-mgl2gif.o' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl2gif_CXXFLAGS) $(CXXFLAGS) -c -o mgl2gif-mgl2gif.o `test -f 'mgl2gif.cpp' || echo '$(srcdir)/'`mgl2gif.cpp
+
+mgl2gif-mgl2gif.obj: mgl2gif.cpp
+	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl2gif_CXXFLAGS) $(CXXFLAGS) -MT mgl2gif-mgl2gif.obj -MD -MP -MF $(DEPDIR)/mgl2gif-mgl2gif.Tpo -c -o mgl2gif-mgl2gif.obj `if test -f 'mgl2gif.cpp'; then $(CYGPATH_W) 'mgl2gif.cpp'; else $(CYGPATH_W) '$(srcdir)/mgl2gif.cpp'; fi`
+	$(am__mv) $(DEPDIR)/mgl2gif-mgl2gif.Tpo $(DEPDIR)/mgl2gif-mgl2gif.Po
+#	source='mgl2gif.cpp' object='mgl2gif-mgl2gif.obj' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mgl2gif_CXXFLAGS) $(CXXFLAGS) -c -o mgl2gif-mgl2gif.obj `if test -f 'mgl2gif.cpp'; then $(CYGPATH_W) 'mgl2gif.cpp'; else $(CYGPATH_W) '$(srcdir)/mgl2gif.cpp'; fi`
+
+mglview-mglview.o: mglview.cpp
+	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mglview_CXXFLAGS) $(CXXFLAGS) -MT mglview-mglview.o -MD -MP -MF $(DEPDIR)/mglview-mglview.Tpo -c -o mglview-mglview.o `test -f 'mglview.cpp' || echo '$(srcdir)/'`mglview.cpp
+	$(am__mv) $(DEPDIR)/mglview-mglview.Tpo $(DEPDIR)/mglview-mglview.Po
+#	source='mglview.cpp' object='mglview-mglview.o' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mglview_CXXFLAGS) $(CXXFLAGS) -c -o mglview-mglview.o `test -f 'mglview.cpp' || echo '$(srcdir)/'`mglview.cpp
+
+mglview-mglview.obj: mglview.cpp
+	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mglview_CXXFLAGS) $(CXXFLAGS) -MT mglview-mglview.obj -MD -MP -MF $(DEPDIR)/mglview-mglview.Tpo -c -o mglview-mglview.obj `if test -f 'mglview.cpp'; then $(CYGPATH_W) 'mglview.cpp'; else $(CYGPATH_W) '$(srcdir)/mglview.cpp'; fi`
+	$(am__mv) $(DEPDIR)/mglview-mglview.Tpo $(DEPDIR)/mglview-mglview.Po
+#	source='mglview.cpp' object='mglview-mglview.obj' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mglview_CXXFLAGS) $(CXXFLAGS) -c -o mglview-mglview.obj `if test -f 'mglview.cpp'; then $(CYGPATH_W) 'mglview.cpp'; else $(CYGPATH_W) '$(srcdir)/mglview.cpp'; fi`
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	set x; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+	for dir in "$(DESTDIR)$(bindir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+	clean-generic clean-libtool ctags distclean distclean-compile \
+	distclean-generic distclean-libtool distclean-tags distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-binPROGRAMS install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am \
+	uninstall-binPROGRAMS
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/utils/Makefile.in b/utils/Makefile.in
index 1cf4370..8057592 100644
--- a/utils/Makefile.in
+++ b/utils/Makefile.in
@@ -42,11 +42,7 @@ subdir = utils
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
-	$(top_srcdir)/config/libtool.m4 \
-	$(top_srcdir)/config/ltoptions.m4 \
-	$(top_srcdir)/config/ltsugar.m4 \
-	$(top_srcdir)/config/ltversion.m4 \
-	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
diff --git a/utils/mgl2cpp b/utils/mgl2cpp
new file mode 100755
index 0000000..1c34d6d
--- /dev/null
+++ b/utils/mgl2cpp
@@ -0,0 +1,148 @@
+#! /bin/bash
+
+# mgl2cpp - temporary wrapper script for .libs/mgl2cpp
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# The mgl2cpp program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='/bin/sed -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/utils; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11; export PATH; x86_64-linux-gnu-g++ -Wall -I/usr/include -I../include -I../include -g -O2 -o \$progdir/\$file mgl2cpp.o  ../mgl/.libs/libmgl.so -Wl,-rpath -Wl,/home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/mgl/.libs)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.2.6b'
+  notinst_deplibs=' ../mgl/libmgl.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    ECHO="echo"
+    file="$0"
+    # Make sure echo works.
+    if test "X$1" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
+      # Yippee, $ECHO works!
+      :
+    else
+      # Restart under the correct shell, and then maybe $ECHO will work.
+      exec /bin/bash "$0" --no-reexec ${1+"$@"}
+    fi
+  fi
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "X$file" | $Xsed -e 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
+  done
+
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "X$thisdir" | $Xsed -e 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'mgl2cpp'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	echo "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    echo "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/utils/mgl2cpp.o b/utils/mgl2cpp.o
new file mode 100644
index 0000000..22bfd6f
Binary files /dev/null and b/utils/mgl2cpp.o differ
diff --git a/utils/mgl2eps b/utils/mgl2eps
new file mode 100755
index 0000000..fd46c15
--- /dev/null
+++ b/utils/mgl2eps
@@ -0,0 +1,148 @@
+#! /bin/bash
+
+# mgl2eps - temporary wrapper script for .libs/mgl2eps
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# The mgl2eps program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='/bin/sed -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/utils; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11; export PATH; x86_64-linux-gnu-g++ -Wall -I/usr/include -I../include -I../include -g -O2 -o \$progdir/\$file mgl2eps.o  ../mgl/.libs/libmgl.so -Wl,-rpath -Wl,/home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/mgl/.libs)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.2.6b'
+  notinst_deplibs=' ../mgl/libmgl.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    ECHO="echo"
+    file="$0"
+    # Make sure echo works.
+    if test "X$1" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
+      # Yippee, $ECHO works!
+      :
+    else
+      # Restart under the correct shell, and then maybe $ECHO will work.
+      exec /bin/bash "$0" --no-reexec ${1+"$@"}
+    fi
+  fi
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "X$file" | $Xsed -e 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
+  done
+
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "X$thisdir" | $Xsed -e 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'mgl2eps'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	echo "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    echo "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/utils/mgl2eps.o b/utils/mgl2eps.o
new file mode 100644
index 0000000..d4957b0
Binary files /dev/null and b/utils/mgl2eps.o differ
diff --git a/utils/mgl2gif b/utils/mgl2gif
new file mode 100755
index 0000000..18f02d6
--- /dev/null
+++ b/utils/mgl2gif
@@ -0,0 +1,148 @@
+#! /bin/bash
+
+# mgl2gif - temporary wrapper script for .libs/mgl2gif
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# The mgl2gif program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='/bin/sed -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/utils; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11; export PATH; x86_64-linux-gnu-g++ -DHAVE_GIF -Wall -I/usr/include -I../include -I../include -g -O2 -o \$progdir/\$file mgl2gif-mgl2gif.o  ../mgl/.libs/libmgl.so -Wl,-rpath -Wl,/home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/mgl/.libs)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.2.6b'
+  notinst_deplibs=' ../mgl/libmgl.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    ECHO="echo"
+    file="$0"
+    # Make sure echo works.
+    if test "X$1" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
+      # Yippee, $ECHO works!
+      :
+    else
+      # Restart under the correct shell, and then maybe $ECHO will work.
+      exec /bin/bash "$0" --no-reexec ${1+"$@"}
+    fi
+  fi
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "X$file" | $Xsed -e 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
+  done
+
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "X$thisdir" | $Xsed -e 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'mgl2gif'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	echo "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    echo "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/utils/mgl2gif-mgl2gif.o b/utils/mgl2gif-mgl2gif.o
new file mode 100644
index 0000000..f02d161
Binary files /dev/null and b/utils/mgl2gif-mgl2gif.o differ
diff --git a/utils/mgl2png b/utils/mgl2png
new file mode 100755
index 0000000..67cd70e
--- /dev/null
+++ b/utils/mgl2png
@@ -0,0 +1,148 @@
+#! /bin/bash
+
+# mgl2png - temporary wrapper script for .libs/mgl2png
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# The mgl2png program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='/bin/sed -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/utils; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11; export PATH; x86_64-linux-gnu-g++ -Wall -I/usr/include -I../include -I../include -g -O2 -o \$progdir/\$file mgl2png.o  ../mgl/.libs/libmgl.so -Wl,-rpath -Wl,/home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/mgl/.libs)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.2.6b'
+  notinst_deplibs=' ../mgl/libmgl.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    ECHO="echo"
+    file="$0"
+    # Make sure echo works.
+    if test "X$1" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
+      # Yippee, $ECHO works!
+      :
+    else
+      # Restart under the correct shell, and then maybe $ECHO will work.
+      exec /bin/bash "$0" --no-reexec ${1+"$@"}
+    fi
+  fi
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "X$file" | $Xsed -e 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
+  done
+
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "X$thisdir" | $Xsed -e 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'mgl2png'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	echo "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    echo "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/utils/mgl2png.o b/utils/mgl2png.o
new file mode 100644
index 0000000..595727b
Binary files /dev/null and b/utils/mgl2png.o differ
diff --git a/utils/mgl2svg b/utils/mgl2svg
new file mode 100755
index 0000000..0d2cb66
--- /dev/null
+++ b/utils/mgl2svg
@@ -0,0 +1,148 @@
+#! /bin/bash
+
+# mgl2svg - temporary wrapper script for .libs/mgl2svg
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# The mgl2svg program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='/bin/sed -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/utils; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11; export PATH; x86_64-linux-gnu-g++ -Wall -I/usr/include -I../include -I../include -g -O2 -o \$progdir/\$file mgl2svg.o  ../mgl/.libs/libmgl.so -Wl,-rpath -Wl,/home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/mgl/.libs)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.2.6b'
+  notinst_deplibs=' ../mgl/libmgl.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    ECHO="echo"
+    file="$0"
+    # Make sure echo works.
+    if test "X$1" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
+      # Yippee, $ECHO works!
+      :
+    else
+      # Restart under the correct shell, and then maybe $ECHO will work.
+      exec /bin/bash "$0" --no-reexec ${1+"$@"}
+    fi
+  fi
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "X$file" | $Xsed -e 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
+  done
+
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "X$thisdir" | $Xsed -e 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'mgl2svg'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	echo "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    echo "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/utils/mgl2svg.o b/utils/mgl2svg.o
new file mode 100644
index 0000000..c35a1c2
Binary files /dev/null and b/utils/mgl2svg.o differ
diff --git a/utils/mglview b/utils/mglview
new file mode 100755
index 0000000..dee4c03
--- /dev/null
+++ b/utils/mglview
@@ -0,0 +1,148 @@
+#! /bin/bash
+
+# mglview - temporary wrapper script for .libs/mglview
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# The mglview program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='/bin/sed -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/utils; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11; export PATH; x86_64-linux-gnu-g++ -I/usr/include/freetype2 -g -O2 -D_THREAD_SAFE -D_REENTRANT -Wall -I/usr/include -I../include -I../include -g -O2 -o \$progdir/\$file mglview-mglview.o  ../widgets/.libs/libmgl-fltk.so ../mgl/.libs/libmgl.so -Wl,-rpath -Wl,/home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/widgets/.libs -Wl,-rpath -Wl,/home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/mgl/.libs)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='2.2.6b'
+  notinst_deplibs=' ../widgets/libmgl-fltk.la ../mgl/libmgl.la'
+else
+  # When we are sourced in execute mode, $file and $ECHO are already set.
+  if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+    ECHO="echo"
+    file="$0"
+    # Make sure echo works.
+    if test "X$1" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
+      # Yippee, $ECHO works!
+      :
+    else
+      # Restart under the correct shell, and then maybe $ECHO will work.
+      exec /bin/bash "$0" --no-reexec ${1+"$@"}
+    fi
+  fi
+
+  # Find the directory that this script lives in.
+  thisdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+  test "x$thisdir" = "x$file" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
+  while test -n "$file"; do
+    destdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+
+    # If there was a directory component, then change thisdir.
+    if test "x$destdir" != "x$file"; then
+      case "$destdir" in
+      [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+      *) thisdir="$thisdir/$destdir" ;;
+      esac
+    fi
+
+    file=`$ECHO "X$file" | $Xsed -e 's%^.*/%%'`
+    file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
+  done
+
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+  if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+    # special case for '.'
+    if test "$thisdir" = "."; then
+      thisdir=`pwd`
+    fi
+    # remove .libs from thisdir
+    case "$thisdir" in
+    *[\\/].libs ) thisdir=`$ECHO "X$thisdir" | $Xsed -e 's%[\\/][^\\/]*$%%'` ;;
+    .libs )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=`cd "$thisdir" && pwd`
+  test -n "$absdir" && thisdir="$absdir"
+
+  program=lt-'mglview'
+  progdir="$thisdir/.libs"
+
+  if test ! -f "$progdir/$program" ||
+     { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
+       test "X$file" != "X$progdir/$program"; }; then
+
+    file="$$-$program"
+
+    if test ! -d "$progdir"; then
+      mkdir "$progdir"
+    else
+      rm -f "$progdir/$file"
+    fi
+
+    # relink executable if necessary
+    if test -n "$relink_command"; then
+      if relink_command_output=`eval $relink_command 2>&1`; then :
+      else
+	echo "$relink_command_output" >&2
+	rm -f "$progdir/$file"
+	exit 1
+      fi
+    fi
+
+    mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+    { rm -f "$progdir/$program";
+      mv -f "$progdir/$file" "$progdir/$program"; }
+    rm -f "$progdir/$file"
+  fi
+
+  if test -f "$progdir/$program"; then
+    if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+      # Run the actual program with our arguments.
+
+      exec "$progdir/$program" ${1+"$@"}
+
+      $ECHO "$0: cannot exec $program $*" 1>&2
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+    $ECHO "This script is just a wrapper for $program." 1>&2
+    echo "See the libtool documentation for more information." 1>&2
+    exit 1
+  fi
+fi
diff --git a/utils/mglview-mglview.o b/utils/mglview-mglview.o
new file mode 100644
index 0000000..ac198f5
Binary files /dev/null and b/utils/mglview-mglview.o differ
diff --git a/widgets/.deps/libmgl_fltk_la-mgl_fltk.Plo b/widgets/.deps/libmgl_fltk_la-mgl_fltk.Plo
new file mode 100644
index 0000000..43c9670
--- /dev/null
+++ b/widgets/.deps/libmgl_fltk_la-mgl_fltk.Plo
@@ -0,0 +1,546 @@
+libmgl_fltk_la-mgl_fltk.lo: mgl_fltk.cpp /usr/include/FL/Fl_Pixmap.H \
+ /usr/include/FL/Fl_Image.H /usr/include/FL/Enumerations.H \
+ /usr/include/FL/Fl_Export.H /usr/include/FL/fl_ask.H \
+ /usr/include/FL/Fl_Double_Window.H /usr/include/FL/Fl_Window.H \
+ /usr/include/FL/Fl_Group.H /usr/include/FL/Fl_Widget.H \
+ /usr/include/FL/fl_draw.H /usr/include/FL/Fl_File_Chooser.H \
+ /usr/include/FL/Fl.H /usr/include/stdio.h /usr/include/features.h \
+ /usr/include/bits/predefs.h /usr/include/sys/cdefs.h \
+ /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/xlocale.h \
+ /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/string.h /usr/include/FL/Fl_Group.H \
+ /usr/include/FL/Fl_Choice.H /usr/include/FL/Fl_Menu_.H \
+ /usr/include/FL/Fl_Menu_Item.H /usr/include/FL/Fl_Menu_Button.H \
+ /usr/include/FL/Fl_Button.H /usr/include/FL/Fl_Preferences.H \
+ /usr/include/FL/Fl_Tile.H /usr/include/FL/Fl_File_Browser.H \
+ /usr/include/FL/Fl_Browser.H /usr/include/FL/Fl_Browser_.H \
+ /usr/include/FL/Fl_Scrollbar.H /usr/include/FL/Fl_Slider.H \
+ /usr/include/FL/Fl_Valuator.H /usr/include/FL/Fl_File_Icon.H \
+ /usr/include/FL/Fl.H /usr/include/FL/filename.H /usr/include/dirent.h \
+ /usr/include/bits/dirent.h /usr/include/bits/posix1_lim.h \
+ /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+ /usr/include/FL/Fl_Box.H /usr/include/FL/Fl_Check_Button.H \
+ /usr/include/FL/Fl_Light_Button.H /usr/include/FL/Fl_Button.H \
+ /usr/include/FL/Fl_File_Input.H /usr/include/FL/Fl_Input.H \
+ /usr/include/FL/Fl_Input_.H /usr/include/FL/Fl_Return_Button.H \
+ /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+ /usr/include/bits/environments.h /usr/include/bits/confname.h \
+ /usr/include/getopt.h ../include/mgl/mgl_fltk.h \
+ /usr/include/Fl/Fl_Scroll.H /usr/include/Fl/Fl_Group.H \
+ /usr/include/Fl/Fl_Scrollbar.H /usr/include/FL/Fl_Counter.H \
+ /usr/include/FL/Fl_Menu_Bar.H ../include/mgl/mgl_zb.h \
+ ../include/mgl/mgl_ab.h ../include/mgl/mgl.h /usr/include/bits/wchar.h \
+ ../include/mgl/mgl_data.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h ../include/mgl/mgl_eps.h \
+ ../include/mgl/mgl_c.h ../include/mgl/mgl_f.h /usr/include/stdint.h \
+ ../include/xpm/alpha_on.xpm ../include/xpm/light_on.xpm \
+ ../include/xpm/zoom_on.xpm ../include/xpm/show_on.xpm \
+ ../include/xpm/rotate_on.xpm ../include/xpm/show_sl.xpm \
+ ../include/xpm/next_sl.xpm ../include/xpm/prev_sl.xpm \
+ ../include/xpm/left_1.xpm ../include/xpm/right_1.xpm \
+ ../include/xpm/down_1.xpm ../include/xpm/norm_1.xpm \
+ ../include/xpm/zoom_1.xpm ../include/xpm/up_1.xpm \
+ ../include/xpm/alpha.xpm ../include/xpm/light.xpm \
+ ../include/xpm/zoom_in.xpm ../include/xpm/zoom_out.xpm \
+ ../include/xpm/rotate.xpm ../include/xpm/ok.xpm
+
+/usr/include/FL/Fl_Pixmap.H:
+
+/usr/include/FL/Fl_Image.H:
+
+/usr/include/FL/Enumerations.H:
+
+/usr/include/FL/Fl_Export.H:
+
+/usr/include/FL/fl_ask.H:
+
+/usr/include/FL/Fl_Double_Window.H:
+
+/usr/include/FL/Fl_Window.H:
+
+/usr/include/FL/Fl_Group.H:
+
+/usr/include/FL/Fl_Widget.H:
+
+/usr/include/FL/fl_draw.H:
+
+/usr/include/FL/Fl_File_Chooser.H:
+
+/usr/include/FL/Fl.H:
+
+/usr/include/stdio.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/string.h:
+
+/usr/include/FL/Fl_Group.H:
+
+/usr/include/FL/Fl_Choice.H:
+
+/usr/include/FL/Fl_Menu_.H:
+
+/usr/include/FL/Fl_Menu_Item.H:
+
+/usr/include/FL/Fl_Menu_Button.H:
+
+/usr/include/FL/Fl_Button.H:
+
+/usr/include/FL/Fl_Preferences.H:
+
+/usr/include/FL/Fl_Tile.H:
+
+/usr/include/FL/Fl_File_Browser.H:
+
+/usr/include/FL/Fl_Browser.H:
+
+/usr/include/FL/Fl_Browser_.H:
+
+/usr/include/FL/Fl_Scrollbar.H:
+
+/usr/include/FL/Fl_Slider.H:
+
+/usr/include/FL/Fl_Valuator.H:
+
+/usr/include/FL/Fl_File_Icon.H:
+
+/usr/include/FL/Fl.H:
+
+/usr/include/FL/filename.H:
+
+/usr/include/dirent.h:
+
+/usr/include/bits/dirent.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/FL/Fl_Box.H:
+
+/usr/include/FL/Fl_Check_Button.H:
+
+/usr/include/FL/Fl_Light_Button.H:
+
+/usr/include/FL/Fl_Button.H:
+
+/usr/include/FL/Fl_File_Input.H:
+
+/usr/include/FL/Fl_Input.H:
+
+/usr/include/FL/Fl_Input_.H:
+
+/usr/include/FL/Fl_Return_Button.H:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+../include/mgl/mgl_fltk.h:
+
+/usr/include/Fl/Fl_Scroll.H:
+
+/usr/include/Fl/Fl_Group.H:
+
+/usr/include/Fl/Fl_Scrollbar.H:
+
+/usr/include/FL/Fl_Counter.H:
+
+/usr/include/FL/Fl_Menu_Bar.H:
+
+../include/mgl/mgl_zb.h:
+
+../include/mgl/mgl_ab.h:
+
+../include/mgl/mgl.h:
+
+/usr/include/bits/wchar.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+../include/mgl/mgl_eps.h:
+
+../include/mgl/mgl_c.h:
+
+../include/mgl/mgl_f.h:
+
+/usr/include/stdint.h:
+
+../include/xpm/alpha_on.xpm:
+
+../include/xpm/light_on.xpm:
+
+../include/xpm/zoom_on.xpm:
+
+../include/xpm/show_on.xpm:
+
+../include/xpm/rotate_on.xpm:
+
+../include/xpm/show_sl.xpm:
+
+../include/xpm/next_sl.xpm:
+
+../include/xpm/prev_sl.xpm:
+
+../include/xpm/left_1.xpm:
+
+../include/xpm/right_1.xpm:
+
+../include/xpm/down_1.xpm:
+
+../include/xpm/norm_1.xpm:
+
+../include/xpm/zoom_1.xpm:
+
+../include/xpm/up_1.xpm:
+
+../include/xpm/alpha.xpm:
+
+../include/xpm/light.xpm:
+
+../include/xpm/zoom_in.xpm:
+
+../include/xpm/zoom_out.xpm:
+
+../include/xpm/rotate.xpm:
+
+../include/xpm/ok.xpm:
diff --git a/widgets/.deps/libmgl_glut_la-mgl_glut.Plo b/widgets/.deps/libmgl_glut_la-mgl_glut.Plo
new file mode 100644
index 0000000..0296bd6
--- /dev/null
+++ b/widgets/.deps/libmgl_glut_la-mgl_glut.Plo
@@ -0,0 +1,380 @@
+libmgl_glut_la-mgl_glut.lo: mgl_glut.cpp /usr/include/GL/gl.h \
+ /usr/include/GL/glext.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/inttypes.h /usr/include/features.h \
+ /usr/include/bits/predefs.h /usr/include/sys/cdefs.h \
+ /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-64.h /usr/include/stdint.h \
+ /usr/include/bits/wchar.h /usr/include/GL/glut.h \
+ /usr/include/GL/freeglut_std.h /usr/include/GL/glu.h \
+ /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h /usr/include/endian.h \
+ /usr/include/bits/endian.h /usr/include/bits/byteswap.h \
+ /usr/include/xlocale.h /usr/include/sys/types.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/math.h /usr/include/bits/huge_val.h \
+ /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
+ /usr/include/bits/inf.h /usr/include/bits/nan.h \
+ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
+ /usr/include/bits/mathinline.h /usr/include/string.h \
+ /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
+ /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h ../include/mgl/mgl_glut.h \
+ ../include/mgl/mgl_gl.h ../include/mgl/mgl_ab.h ../include/mgl/mgl.h \
+ ../include/mgl/mgl_data.h /usr/include/c++/4.4/vector \
+ /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h ../include/mgl/mgl_c.h ../include/mgl/mgl_f.h
+
+/usr/include/GL/gl.h:
+
+/usr/include/GL/glext.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/inttypes.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/stdint.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/GL/glut.h:
+
+/usr/include/GL/freeglut_std.h:
+
+/usr/include/GL/glu.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/string.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+../include/mgl/mgl_glut.h:
+
+../include/mgl/mgl_gl.h:
+
+../include/mgl/mgl_ab.h:
+
+../include/mgl/mgl.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+../include/mgl/mgl_c.h:
+
+../include/mgl/mgl_f.h:
diff --git a/widgets/.deps/libmgl_qt_la-mgl_qt.Plo b/widgets/.deps/libmgl_qt_la-mgl_qt.Plo
new file mode 100644
index 0000000..d4902ee
--- /dev/null
+++ b/widgets/.deps/libmgl_qt_la-mgl_qt.Plo
@@ -0,0 +1,917 @@
+libmgl_qt_la-mgl_qt.lo: mgl_qt.cpp /usr/include/qt4/QtCore/QTimer \
+ /usr/include/qt4/QtCore/qtimer.h /usr/include/qt4/QtCore/qbasictimer.h \
+ /usr/include/qt4/QtCore/qglobal.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/qt4/QtCore/qconfig.h /usr/include/qt4/QtCore/qfeatures.h \
+ /usr/include/qt4/QtCore/qobject.h /usr/include/qt4/QtCore/qobjectdefs.h \
+ /usr/include/qt4/QtCore/qnamespace.h /usr/include/qt4/QtCore/qstring.h \
+ /usr/include/qt4/QtCore/qchar.h /usr/include/qt4/QtCore/qbytearray.h \
+ /usr/include/qt4/QtCore/qatomic.h /usr/include/qt4/QtCore/qbasicatomic.h \
+ /usr/include/qt4/QtCore/qatomic_arch.h \
+ /usr/include/qt4/QtCore/qatomic_x86_64.h /usr/include/string.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/include/xlocale.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/c++/4.4/string \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/bits/stringfwd.h \
+ /usr/include/c++/4.4/bits/char_traits.h \
+ /usr/include/c++/4.4/bits/stl_algobase.h /usr/include/c++/4.4/cstddef \
+ /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/postypes.h \
+ /usr/include/c++/4.4/cwchar /usr/include/wchar.h /usr/include/stdio.h \
+ /usr/include/bits/wchar.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/localefwd.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++locale.h \
+ /usr/include/c++/4.4/clocale /usr/include/locale.h \
+ /usr/include/bits/locale.h /usr/include/c++/4.4/iosfwd \
+ /usr/include/c++/4.4/cctype /usr/include/ctype.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/c++/4.4/bits/ostream_insert.h \
+ /usr/include/c++/4.4/cxxabi-forced.h \
+ /usr/include/c++/4.4/bits/stl_function.h \
+ /usr/include/c++/4.4/backward/binders.h \
+ /usr/include/c++/4.4/bits/basic_string.h \
+ /usr/include/c++/4.4/ext/atomicity.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+ /usr/include/bits/sched.h /usr/include/bits/time.h /usr/include/signal.h \
+ /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/bits/setjmp.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/atomic_word.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/basic_string.tcc \
+ /usr/include/qt4/QtCore/qlist.h /usr/include/qt4/QtCore/qiterator.h \
+ /usr/include/qt4/QtCore/qalgorithms.h /usr/include/c++/4.4/iterator \
+ /usr/include/c++/4.4/ostream /usr/include/c++/4.4/ios \
+ /usr/include/c++/4.4/bits/ios_base.h \
+ /usr/include/c++/4.4/bits/locale_classes.h \
+ /usr/include/c++/4.4/bits/locale_classes.tcc \
+ /usr/include/c++/4.4/streambuf /usr/include/c++/4.4/bits/streambuf.tcc \
+ /usr/include/c++/4.4/bits/basic_ios.h \
+ /usr/include/c++/4.4/bits/locale_facets.h /usr/include/c++/4.4/cwctype \
+ /usr/include/wctype.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_base.h \
+ /usr/include/c++/4.4/bits/streambuf_iterator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_inline.h \
+ /usr/include/c++/4.4/bits/locale_facets.tcc \
+ /usr/include/c++/4.4/bits/basic_ios.tcc \
+ /usr/include/c++/4.4/bits/ostream.tcc /usr/include/c++/4.4/istream \
+ /usr/include/c++/4.4/bits/istream.tcc \
+ /usr/include/c++/4.4/bits/stream_iterator.h /usr/include/c++/4.4/list \
+ /usr/include/c++/4.4/bits/stl_list.h /usr/include/c++/4.4/bits/list.tcc \
+ /usr/include/qt4/QtCore/qscopedpointer.h \
+ /usr/include/qt4/QtGui/QApplication \
+ /usr/include/qt4/QtGui/qapplication.h \
+ /usr/include/qt4/QtCore/qcoreapplication.h \
+ /usr/include/qt4/QtCore/qcoreevent.h \
+ /usr/include/qt4/QtCore/qeventloop.h \
+ /usr/include/qt4/QtGui/qwindowdefs.h /usr/include/qt4/QtCore/qpoint.h \
+ /usr/include/qt4/QtCore/qsize.h /usr/include/qt4/QtGui/qcursor.h \
+ /usr/include/qt4/QtGui/QMouseEvent /usr/include/qt4/QtGui/qevent.h \
+ /usr/include/qt4/QtGui/qregion.h /usr/include/qt4/QtCore/qrect.h \
+ /usr/include/qt4/QtCore/qdatastream.h \
+ /usr/include/qt4/QtCore/qiodevice.h \
+ /usr/include/qt4/QtGui/qkeysequence.h /usr/include/qt4/QtGui/qmime.h \
+ /usr/include/qt4/QtCore/qmimedata.h /usr/include/qt4/QtCore/qvariant.h \
+ /usr/include/qt4/QtCore/qmetatype.h /usr/include/qt4/QtCore/qmap.h \
+ /usr/include/c++/4.4/map /usr/include/c++/4.4/bits/stl_tree.h \
+ /usr/include/c++/4.4/bits/stl_map.h \
+ /usr/include/c++/4.4/bits/stl_multimap.h /usr/include/qt4/QtCore/qhash.h \
+ /usr/include/qt4/QtCore/qpair.h /usr/include/qt4/QtGui/qdrag.h \
+ /usr/include/qt4/QtCore/qset.h /usr/include/qt4/QtGui/qmessagebox.h \
+ /usr/include/qt4/QtGui/qdialog.h /usr/include/qt4/QtGui/qwidget.h \
+ /usr/include/qt4/QtCore/qmargins.h /usr/include/qt4/QtGui/qpaintdevice.h \
+ /usr/include/qt4/QtGui/qpalette.h /usr/include/qt4/QtGui/qcolor.h \
+ /usr/include/qt4/QtGui/qrgb.h /usr/include/qt4/QtCore/qstringlist.h \
+ /usr/include/qt4/QtCore/qregexp.h \
+ /usr/include/qt4/QtCore/qstringmatcher.h /usr/include/qt4/QtGui/qbrush.h \
+ /usr/include/qt4/QtCore/qvector.h /usr/include/c++/4.4/vector \
+ /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/sys/types.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+ /usr/include/alloca.h /usr/include/qt4/QtGui/qmatrix.h \
+ /usr/include/qt4/QtGui/qpolygon.h /usr/include/qt4/QtCore/qline.h \
+ /usr/include/qt4/QtGui/qtransform.h \
+ /usr/include/qt4/QtGui/qpainterpath.h /usr/include/qt4/QtGui/qimage.h \
+ /usr/include/qt4/QtGui/qpixmap.h \
+ /usr/include/qt4/QtCore/qsharedpointer.h \
+ /usr/include/qt4/QtCore/qshareddata.h \
+ /usr/include/qt4/QtCore/qsharedpointer_impl.h \
+ /usr/include/qt4/QtGui/qfont.h /usr/include/qt4/QtGui/qfontmetrics.h \
+ /usr/include/qt4/QtGui/qfontinfo.h /usr/include/qt4/QtGui/qsizepolicy.h \
+ /usr/include/qt4/QtGui/qmenu.h /usr/include/qt4/QtGui/qicon.h \
+ /usr/include/qt4/QtGui/qaction.h /usr/include/qt4/QtGui/qactiongroup.h \
+ /usr/include/qt4/QtGui/qclipboard.h /usr/include/qt4/QtGui/qtextedit.h \
+ /usr/include/qt4/QtGui/qabstractscrollarea.h \
+ /usr/include/qt4/QtGui/qframe.h /usr/include/qt4/QtGui/qtextdocument.h \
+ /usr/include/qt4/QtGui/qtextoption.h \
+ /usr/include/qt4/QtGui/qtextcursor.h \
+ /usr/include/qt4/QtGui/qtextformat.h /usr/include/qt4/QtGui/qpen.h \
+ /usr/include/qt4/QtGui/qpainter.h /usr/include/qt4/QtGui/qdrawutil.h \
+ /usr/include/qt4/QtGui/qcursor.h /usr/include/qt4/QtGui/qimage.h \
+ /usr/include/qt4/QtGui/QScrollArea /usr/include/qt4/QtGui/qscrollarea.h \
+ /usr/include/qt4/QtGui/QMainWindow /usr/include/qt4/QtGui/qmainwindow.h \
+ /usr/include/qt4/QtGui/qtabwidget.h /usr/include/qt4/QtGui/QToolBar \
+ /usr/include/qt4/QtGui/qtoolbar.h /usr/include/qt4/QtGui/QMenuBar \
+ /usr/include/qt4/QtGui/qmenubar.h /usr/include/qt4/QtGui/qmenu.h \
+ /usr/include/qt4/QtGui/QSpinBox /usr/include/qt4/QtGui/qspinbox.h \
+ /usr/include/qt4/QtGui/qabstractspinbox.h \
+ /usr/include/qt4/QtGui/qvalidator.h /usr/include/qt4/QtCore/qlocale.h \
+ /usr/include/qt4/QtGui/QPrinter /usr/include/qt4/QtGui/qprinter.h \
+ /usr/include/qt4/QtGui/QPrintDialog \
+ /usr/include/qt4/QtGui/qprintdialog.h \
+ /usr/include/qt4/QtGui/qabstractprintdialog.h \
+ /usr/include/qt4/QtGui/QFileDialog /usr/include/qt4/QtGui/qfiledialog.h \
+ /usr/include/qt4/QtCore/qdir.h /usr/include/qt4/QtCore/qfileinfo.h \
+ /usr/include/qt4/QtCore/qfile.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+ ../include/mgl/mgl_idtf.h /usr/include/stdint.h \
+ /usr/include/c++/4.4/deque /usr/include/c++/4.4/bits/stl_deque.h \
+ /usr/include/c++/4.4/bits/deque.tcc /usr/include/c++/4.4/sstream \
+ /usr/include/c++/4.4/bits/sstream.tcc /usr/include/c++/4.4/iostream \
+ /usr/include/c++/4.4/fstream /usr/include/c++/4.4/bits/codecvt.h \
+ /usr/include/c++/4.4/cstdio \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/basic_file.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++io.h \
+ /usr/include/c++/4.4/bits/fstream.tcc ../include/mgl/mgl_ab.h \
+ ../include/mgl/mgl.h ../include/mgl/mgl_data.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h ../include/mgl/mgl_eps.h \
+ ../include/mgl/mgl_qt.h /usr/include/qt4/QtGui/QWidget \
+ /usr/include/qt4/QtGui/qwidget.h /usr/include/qt4/QtGui/QPixmap \
+ /usr/include/qt4/QtGui/qpixmap.h ../include/mgl/mgl_zb.h \
+ ../include/mgl/mgl_c.h ../include/mgl/mgl_f.h \
+ ../include/xpm/fileprint.xpm ../include/xpm/copy.xpm \
+ ../include/xpm/left_1.xpm ../include/xpm/right_1.xpm \
+ ../include/xpm/down_1.xpm ../include/xpm/norm_1.xpm \
+ ../include/xpm/zoom_1.xpm ../include/xpm/up_1.xpm \
+ ../include/xpm/alpha.xpm ../include/xpm/light.xpm \
+ ../include/xpm/zoom_in.xpm ../include/xpm/zoom_out.xpm \
+ ../include/xpm/rotate.xpm ../include/xpm/ok.xpm \
+ ../include/xpm/show_sl.xpm ../include/xpm/next_sl.xpm \
+ ../include/xpm/prev_sl.xpm
+
+/usr/include/qt4/QtCore/QTimer:
+
+/usr/include/qt4/QtCore/qtimer.h:
+
+/usr/include/qt4/QtCore/qbasictimer.h:
+
+/usr/include/qt4/QtCore/qglobal.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/qt4/QtCore/qconfig.h:
+
+/usr/include/qt4/QtCore/qfeatures.h:
+
+/usr/include/qt4/QtCore/qobject.h:
+
+/usr/include/qt4/QtCore/qobjectdefs.h:
+
+/usr/include/qt4/QtCore/qnamespace.h:
+
+/usr/include/qt4/QtCore/qstring.h:
+
+/usr/include/qt4/QtCore/qchar.h:
+
+/usr/include/qt4/QtCore/qbytearray.h:
+
+/usr/include/qt4/QtCore/qatomic.h:
+
+/usr/include/qt4/QtCore/qbasicatomic.h:
+
+/usr/include/qt4/QtCore/qatomic_arch.h:
+
+/usr/include/qt4/QtCore/qatomic_x86_64.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/xlocale.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/c++/4.4/string:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/bits/stringfwd.h:
+
+/usr/include/c++/4.4/bits/char_traits.h:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/postypes.h:
+
+/usr/include/c++/4.4/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/localefwd.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++locale.h:
+
+/usr/include/c++/4.4/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/c++/4.4/iosfwd:
+
+/usr/include/c++/4.4/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/c++/4.4/bits/ostream_insert.h:
+
+/usr/include/c++/4.4/cxxabi-forced.h:
+
+/usr/include/c++/4.4/bits/stl_function.h:
+
+/usr/include/c++/4.4/backward/binders.h:
+
+/usr/include/c++/4.4/bits/basic_string.h:
+
+/usr/include/c++/4.4/ext/atomicity.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/atomic_word.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/basic_string.tcc:
+
+/usr/include/qt4/QtCore/qlist.h:
+
+/usr/include/qt4/QtCore/qiterator.h:
+
+/usr/include/qt4/QtCore/qalgorithms.h:
+
+/usr/include/c++/4.4/iterator:
+
+/usr/include/c++/4.4/ostream:
+
+/usr/include/c++/4.4/ios:
+
+/usr/include/c++/4.4/bits/ios_base.h:
+
+/usr/include/c++/4.4/bits/locale_classes.h:
+
+/usr/include/c++/4.4/bits/locale_classes.tcc:
+
+/usr/include/c++/4.4/streambuf:
+
+/usr/include/c++/4.4/bits/streambuf.tcc:
+
+/usr/include/c++/4.4/bits/basic_ios.h:
+
+/usr/include/c++/4.4/bits/locale_facets.h:
+
+/usr/include/c++/4.4/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_base.h:
+
+/usr/include/c++/4.4/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_inline.h:
+
+/usr/include/c++/4.4/bits/locale_facets.tcc:
+
+/usr/include/c++/4.4/bits/basic_ios.tcc:
+
+/usr/include/c++/4.4/bits/ostream.tcc:
+
+/usr/include/c++/4.4/istream:
+
+/usr/include/c++/4.4/bits/istream.tcc:
+
+/usr/include/c++/4.4/bits/stream_iterator.h:
+
+/usr/include/c++/4.4/list:
+
+/usr/include/c++/4.4/bits/stl_list.h:
+
+/usr/include/c++/4.4/bits/list.tcc:
+
+/usr/include/qt4/QtCore/qscopedpointer.h:
+
+/usr/include/qt4/QtGui/QApplication:
+
+/usr/include/qt4/QtGui/qapplication.h:
+
+/usr/include/qt4/QtCore/qcoreapplication.h:
+
+/usr/include/qt4/QtCore/qcoreevent.h:
+
+/usr/include/qt4/QtCore/qeventloop.h:
+
+/usr/include/qt4/QtGui/qwindowdefs.h:
+
+/usr/include/qt4/QtCore/qpoint.h:
+
+/usr/include/qt4/QtCore/qsize.h:
+
+/usr/include/qt4/QtGui/qcursor.h:
+
+/usr/include/qt4/QtGui/QMouseEvent:
+
+/usr/include/qt4/QtGui/qevent.h:
+
+/usr/include/qt4/QtGui/qregion.h:
+
+/usr/include/qt4/QtCore/qrect.h:
+
+/usr/include/qt4/QtCore/qdatastream.h:
+
+/usr/include/qt4/QtCore/qiodevice.h:
+
+/usr/include/qt4/QtGui/qkeysequence.h:
+
+/usr/include/qt4/QtGui/qmime.h:
+
+/usr/include/qt4/QtCore/qmimedata.h:
+
+/usr/include/qt4/QtCore/qvariant.h:
+
+/usr/include/qt4/QtCore/qmetatype.h:
+
+/usr/include/qt4/QtCore/qmap.h:
+
+/usr/include/c++/4.4/map:
+
+/usr/include/c++/4.4/bits/stl_tree.h:
+
+/usr/include/c++/4.4/bits/stl_map.h:
+
+/usr/include/c++/4.4/bits/stl_multimap.h:
+
+/usr/include/qt4/QtCore/qhash.h:
+
+/usr/include/qt4/QtCore/qpair.h:
+
+/usr/include/qt4/QtGui/qdrag.h:
+
+/usr/include/qt4/QtCore/qset.h:
+
+/usr/include/qt4/QtGui/qmessagebox.h:
+
+/usr/include/qt4/QtGui/qdialog.h:
+
+/usr/include/qt4/QtGui/qwidget.h:
+
+/usr/include/qt4/QtCore/qmargins.h:
+
+/usr/include/qt4/QtGui/qpaintdevice.h:
+
+/usr/include/qt4/QtGui/qpalette.h:
+
+/usr/include/qt4/QtGui/qcolor.h:
+
+/usr/include/qt4/QtGui/qrgb.h:
+
+/usr/include/qt4/QtCore/qstringlist.h:
+
+/usr/include/qt4/QtCore/qregexp.h:
+
+/usr/include/qt4/QtCore/qstringmatcher.h:
+
+/usr/include/qt4/QtGui/qbrush.h:
+
+/usr/include/qt4/QtCore/qvector.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/qt4/QtGui/qmatrix.h:
+
+/usr/include/qt4/QtGui/qpolygon.h:
+
+/usr/include/qt4/QtCore/qline.h:
+
+/usr/include/qt4/QtGui/qtransform.h:
+
+/usr/include/qt4/QtGui/qpainterpath.h:
+
+/usr/include/qt4/QtGui/qimage.h:
+
+/usr/include/qt4/QtGui/qpixmap.h:
+
+/usr/include/qt4/QtCore/qsharedpointer.h:
+
+/usr/include/qt4/QtCore/qshareddata.h:
+
+/usr/include/qt4/QtCore/qsharedpointer_impl.h:
+
+/usr/include/qt4/QtGui/qfont.h:
+
+/usr/include/qt4/QtGui/qfontmetrics.h:
+
+/usr/include/qt4/QtGui/qfontinfo.h:
+
+/usr/include/qt4/QtGui/qsizepolicy.h:
+
+/usr/include/qt4/QtGui/qmenu.h:
+
+/usr/include/qt4/QtGui/qicon.h:
+
+/usr/include/qt4/QtGui/qaction.h:
+
+/usr/include/qt4/QtGui/qactiongroup.h:
+
+/usr/include/qt4/QtGui/qclipboard.h:
+
+/usr/include/qt4/QtGui/qtextedit.h:
+
+/usr/include/qt4/QtGui/qabstractscrollarea.h:
+
+/usr/include/qt4/QtGui/qframe.h:
+
+/usr/include/qt4/QtGui/qtextdocument.h:
+
+/usr/include/qt4/QtGui/qtextoption.h:
+
+/usr/include/qt4/QtGui/qtextcursor.h:
+
+/usr/include/qt4/QtGui/qtextformat.h:
+
+/usr/include/qt4/QtGui/qpen.h:
+
+/usr/include/qt4/QtGui/qpainter.h:
+
+/usr/include/qt4/QtGui/qdrawutil.h:
+
+/usr/include/qt4/QtGui/qcursor.h:
+
+/usr/include/qt4/QtGui/qimage.h:
+
+/usr/include/qt4/QtGui/QScrollArea:
+
+/usr/include/qt4/QtGui/qscrollarea.h:
+
+/usr/include/qt4/QtGui/QMainWindow:
+
+/usr/include/qt4/QtGui/qmainwindow.h:
+
+/usr/include/qt4/QtGui/qtabwidget.h:
+
+/usr/include/qt4/QtGui/QToolBar:
+
+/usr/include/qt4/QtGui/qtoolbar.h:
+
+/usr/include/qt4/QtGui/QMenuBar:
+
+/usr/include/qt4/QtGui/qmenubar.h:
+
+/usr/include/qt4/QtGui/qmenu.h:
+
+/usr/include/qt4/QtGui/QSpinBox:
+
+/usr/include/qt4/QtGui/qspinbox.h:
+
+/usr/include/qt4/QtGui/qabstractspinbox.h:
+
+/usr/include/qt4/QtGui/qvalidator.h:
+
+/usr/include/qt4/QtCore/qlocale.h:
+
+/usr/include/qt4/QtGui/QPrinter:
+
+/usr/include/qt4/QtGui/qprinter.h:
+
+/usr/include/qt4/QtGui/QPrintDialog:
+
+/usr/include/qt4/QtGui/qprintdialog.h:
+
+/usr/include/qt4/QtGui/qabstractprintdialog.h:
+
+/usr/include/qt4/QtGui/QFileDialog:
+
+/usr/include/qt4/QtGui/qfiledialog.h:
+
+/usr/include/qt4/QtCore/qdir.h:
+
+/usr/include/qt4/QtCore/qfileinfo.h:
+
+/usr/include/qt4/QtCore/qfile.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+../include/mgl/mgl_idtf.h:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.4/deque:
+
+/usr/include/c++/4.4/bits/stl_deque.h:
+
+/usr/include/c++/4.4/bits/deque.tcc:
+
+/usr/include/c++/4.4/sstream:
+
+/usr/include/c++/4.4/bits/sstream.tcc:
+
+/usr/include/c++/4.4/iostream:
+
+/usr/include/c++/4.4/fstream:
+
+/usr/include/c++/4.4/bits/codecvt.h:
+
+/usr/include/c++/4.4/cstdio:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/basic_file.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++io.h:
+
+/usr/include/c++/4.4/bits/fstream.tcc:
+
+../include/mgl/mgl_ab.h:
+
+../include/mgl/mgl.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+../include/mgl/mgl_eps.h:
+
+../include/mgl/mgl_qt.h:
+
+/usr/include/qt4/QtGui/QWidget:
+
+/usr/include/qt4/QtGui/qwidget.h:
+
+/usr/include/qt4/QtGui/QPixmap:
+
+/usr/include/qt4/QtGui/qpixmap.h:
+
+../include/mgl/mgl_zb.h:
+
+../include/mgl/mgl_c.h:
+
+../include/mgl/mgl_f.h:
+
+../include/xpm/fileprint.xpm:
+
+../include/xpm/copy.xpm:
+
+../include/xpm/left_1.xpm:
+
+../include/xpm/right_1.xpm:
+
+../include/xpm/down_1.xpm:
+
+../include/xpm/norm_1.xpm:
+
+../include/xpm/zoom_1.xpm:
+
+../include/xpm/up_1.xpm:
+
+../include/xpm/alpha.xpm:
+
+../include/xpm/light.xpm:
+
+../include/xpm/zoom_in.xpm:
+
+../include/xpm/zoom_out.xpm:
+
+../include/xpm/rotate.xpm:
+
+../include/xpm/ok.xpm:
+
+../include/xpm/show_sl.xpm:
+
+../include/xpm/next_sl.xpm:
+
+../include/xpm/prev_sl.xpm:
diff --git a/widgets/.deps/libmgl_qt_la-mgl_qt.moc.Plo b/widgets/.deps/libmgl_qt_la-mgl_qt.moc.Plo
new file mode 100644
index 0000000..c1f8d9f
--- /dev/null
+++ b/widgets/.deps/libmgl_qt_la-mgl_qt.moc.Plo
@@ -0,0 +1,655 @@
+libmgl_qt_la-mgl_qt.moc.lo: ../include/mgl/mgl_qt.moc.cpp \
+ ../include/mgl/mgl_qt.h /usr/include/qt4/QtGui/QWidget \
+ /usr/include/qt4/QtGui/qwidget.h /usr/include/qt4/QtGui/qwindowdefs.h \
+ /usr/include/qt4/QtCore/qobjectdefs.h \
+ /usr/include/qt4/QtCore/qnamespace.h /usr/include/qt4/QtCore/qglobal.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/qt4/QtCore/qconfig.h /usr/include/qt4/QtCore/qfeatures.h \
+ /usr/include/qt4/QtCore/qobject.h /usr/include/qt4/QtCore/qstring.h \
+ /usr/include/qt4/QtCore/qchar.h /usr/include/qt4/QtCore/qbytearray.h \
+ /usr/include/qt4/QtCore/qatomic.h /usr/include/qt4/QtCore/qbasicatomic.h \
+ /usr/include/qt4/QtCore/qatomic_arch.h \
+ /usr/include/qt4/QtCore/qatomic_x86_64.h /usr/include/string.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
+ /usr/include/xlocale.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/c++/4.4/string \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/bits/stringfwd.h \
+ /usr/include/c++/4.4/bits/char_traits.h \
+ /usr/include/c++/4.4/bits/stl_algobase.h /usr/include/c++/4.4/cstddef \
+ /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/postypes.h \
+ /usr/include/c++/4.4/cwchar /usr/include/wchar.h /usr/include/stdio.h \
+ /usr/include/bits/wchar.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/localefwd.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++locale.h \
+ /usr/include/c++/4.4/clocale /usr/include/locale.h \
+ /usr/include/bits/locale.h /usr/include/c++/4.4/iosfwd \
+ /usr/include/c++/4.4/cctype /usr/include/ctype.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/c++/4.4/bits/ostream_insert.h \
+ /usr/include/c++/4.4/cxxabi-forced.h \
+ /usr/include/c++/4.4/bits/stl_function.h \
+ /usr/include/c++/4.4/backward/binders.h \
+ /usr/include/c++/4.4/bits/basic_string.h \
+ /usr/include/c++/4.4/ext/atomicity.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+ /usr/include/bits/sched.h /usr/include/bits/time.h /usr/include/signal.h \
+ /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/bits/setjmp.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/atomic_word.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/basic_string.tcc \
+ /usr/include/qt4/QtCore/qlist.h /usr/include/qt4/QtCore/qiterator.h \
+ /usr/include/qt4/QtCore/qalgorithms.h /usr/include/c++/4.4/iterator \
+ /usr/include/c++/4.4/ostream /usr/include/c++/4.4/ios \
+ /usr/include/c++/4.4/bits/ios_base.h \
+ /usr/include/c++/4.4/bits/locale_classes.h \
+ /usr/include/c++/4.4/bits/locale_classes.tcc \
+ /usr/include/c++/4.4/streambuf /usr/include/c++/4.4/bits/streambuf.tcc \
+ /usr/include/c++/4.4/bits/basic_ios.h \
+ /usr/include/c++/4.4/bits/locale_facets.h /usr/include/c++/4.4/cwctype \
+ /usr/include/wctype.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_base.h \
+ /usr/include/c++/4.4/bits/streambuf_iterator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_inline.h \
+ /usr/include/c++/4.4/bits/locale_facets.tcc \
+ /usr/include/c++/4.4/bits/basic_ios.tcc \
+ /usr/include/c++/4.4/bits/ostream.tcc /usr/include/c++/4.4/istream \
+ /usr/include/c++/4.4/bits/istream.tcc \
+ /usr/include/c++/4.4/bits/stream_iterator.h /usr/include/c++/4.4/list \
+ /usr/include/c++/4.4/bits/stl_list.h /usr/include/c++/4.4/bits/list.tcc \
+ /usr/include/qt4/QtCore/qscopedpointer.h \
+ /usr/include/qt4/QtCore/qmargins.h /usr/include/qt4/QtGui/qpaintdevice.h \
+ /usr/include/qt4/QtCore/qrect.h /usr/include/qt4/QtCore/qsize.h \
+ /usr/include/qt4/QtCore/qpoint.h /usr/include/qt4/QtGui/qpalette.h \
+ /usr/include/qt4/QtGui/qcolor.h /usr/include/qt4/QtGui/qrgb.h \
+ /usr/include/qt4/QtCore/qstringlist.h \
+ /usr/include/qt4/QtCore/qdatastream.h \
+ /usr/include/qt4/QtCore/qiodevice.h /usr/include/qt4/QtCore/qregexp.h \
+ /usr/include/qt4/QtCore/qstringmatcher.h /usr/include/qt4/QtGui/qbrush.h \
+ /usr/include/qt4/QtCore/qpair.h /usr/include/qt4/QtCore/qvector.h \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/sys/types.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+ /usr/include/alloca.h /usr/include/qt4/QtGui/qmatrix.h \
+ /usr/include/qt4/QtGui/qpolygon.h /usr/include/qt4/QtGui/qregion.h \
+ /usr/include/qt4/QtCore/qline.h /usr/include/qt4/QtGui/qtransform.h \
+ /usr/include/qt4/QtGui/qpainterpath.h /usr/include/qt4/QtGui/qimage.h \
+ /usr/include/qt4/QtGui/qpixmap.h \
+ /usr/include/qt4/QtCore/qsharedpointer.h \
+ /usr/include/qt4/QtCore/qshareddata.h \
+ /usr/include/qt4/QtCore/qsharedpointer_impl.h \
+ /usr/include/qt4/QtGui/qfont.h /usr/include/qt4/QtGui/qfontmetrics.h \
+ /usr/include/qt4/QtGui/qfontinfo.h /usr/include/qt4/QtGui/qsizepolicy.h \
+ /usr/include/qt4/QtGui/qcursor.h /usr/include/qt4/QtGui/qkeysequence.h \
+ /usr/include/qt4/QtGui/QPixmap /usr/include/qt4/QtGui/qpixmap.h \
+ ../include/mgl/mgl_zb.h ../include/mgl/mgl_ab.h ../include/mgl/mgl.h \
+ ../include/mgl/mgl_data.h /usr/include/libio.h /usr/include/_G_config.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h
+
+../include/mgl/mgl_qt.h:
+
+/usr/include/qt4/QtGui/QWidget:
+
+/usr/include/qt4/QtGui/qwidget.h:
+
+/usr/include/qt4/QtGui/qwindowdefs.h:
+
+/usr/include/qt4/QtCore/qobjectdefs.h:
+
+/usr/include/qt4/QtCore/qnamespace.h:
+
+/usr/include/qt4/QtCore/qglobal.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/qt4/QtCore/qconfig.h:
+
+/usr/include/qt4/QtCore/qfeatures.h:
+
+/usr/include/qt4/QtCore/qobject.h:
+
+/usr/include/qt4/QtCore/qstring.h:
+
+/usr/include/qt4/QtCore/qchar.h:
+
+/usr/include/qt4/QtCore/qbytearray.h:
+
+/usr/include/qt4/QtCore/qatomic.h:
+
+/usr/include/qt4/QtCore/qbasicatomic.h:
+
+/usr/include/qt4/QtCore/qatomic_arch.h:
+
+/usr/include/qt4/QtCore/qatomic_x86_64.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/include/xlocale.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/c++/4.4/string:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/bits/stringfwd.h:
+
+/usr/include/c++/4.4/bits/char_traits.h:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/postypes.h:
+
+/usr/include/c++/4.4/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/localefwd.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++locale.h:
+
+/usr/include/c++/4.4/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/c++/4.4/iosfwd:
+
+/usr/include/c++/4.4/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/c++/4.4/bits/ostream_insert.h:
+
+/usr/include/c++/4.4/cxxabi-forced.h:
+
+/usr/include/c++/4.4/bits/stl_function.h:
+
+/usr/include/c++/4.4/backward/binders.h:
+
+/usr/include/c++/4.4/bits/basic_string.h:
+
+/usr/include/c++/4.4/ext/atomicity.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/atomic_word.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/basic_string.tcc:
+
+/usr/include/qt4/QtCore/qlist.h:
+
+/usr/include/qt4/QtCore/qiterator.h:
+
+/usr/include/qt4/QtCore/qalgorithms.h:
+
+/usr/include/c++/4.4/iterator:
+
+/usr/include/c++/4.4/ostream:
+
+/usr/include/c++/4.4/ios:
+
+/usr/include/c++/4.4/bits/ios_base.h:
+
+/usr/include/c++/4.4/bits/locale_classes.h:
+
+/usr/include/c++/4.4/bits/locale_classes.tcc:
+
+/usr/include/c++/4.4/streambuf:
+
+/usr/include/c++/4.4/bits/streambuf.tcc:
+
+/usr/include/c++/4.4/bits/basic_ios.h:
+
+/usr/include/c++/4.4/bits/locale_facets.h:
+
+/usr/include/c++/4.4/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_base.h:
+
+/usr/include/c++/4.4/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_inline.h:
+
+/usr/include/c++/4.4/bits/locale_facets.tcc:
+
+/usr/include/c++/4.4/bits/basic_ios.tcc:
+
+/usr/include/c++/4.4/bits/ostream.tcc:
+
+/usr/include/c++/4.4/istream:
+
+/usr/include/c++/4.4/bits/istream.tcc:
+
+/usr/include/c++/4.4/bits/stream_iterator.h:
+
+/usr/include/c++/4.4/list:
+
+/usr/include/c++/4.4/bits/stl_list.h:
+
+/usr/include/c++/4.4/bits/list.tcc:
+
+/usr/include/qt4/QtCore/qscopedpointer.h:
+
+/usr/include/qt4/QtCore/qmargins.h:
+
+/usr/include/qt4/QtGui/qpaintdevice.h:
+
+/usr/include/qt4/QtCore/qrect.h:
+
+/usr/include/qt4/QtCore/qsize.h:
+
+/usr/include/qt4/QtCore/qpoint.h:
+
+/usr/include/qt4/QtGui/qpalette.h:
+
+/usr/include/qt4/QtGui/qcolor.h:
+
+/usr/include/qt4/QtGui/qrgb.h:
+
+/usr/include/qt4/QtCore/qstringlist.h:
+
+/usr/include/qt4/QtCore/qdatastream.h:
+
+/usr/include/qt4/QtCore/qiodevice.h:
+
+/usr/include/qt4/QtCore/qregexp.h:
+
+/usr/include/qt4/QtCore/qstringmatcher.h:
+
+/usr/include/qt4/QtGui/qbrush.h:
+
+/usr/include/qt4/QtCore/qpair.h:
+
+/usr/include/qt4/QtCore/qvector.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/qt4/QtGui/qmatrix.h:
+
+/usr/include/qt4/QtGui/qpolygon.h:
+
+/usr/include/qt4/QtGui/qregion.h:
+
+/usr/include/qt4/QtCore/qline.h:
+
+/usr/include/qt4/QtGui/qtransform.h:
+
+/usr/include/qt4/QtGui/qpainterpath.h:
+
+/usr/include/qt4/QtGui/qimage.h:
+
+/usr/include/qt4/QtGui/qpixmap.h:
+
+/usr/include/qt4/QtCore/qsharedpointer.h:
+
+/usr/include/qt4/QtCore/qshareddata.h:
+
+/usr/include/qt4/QtCore/qsharedpointer_impl.h:
+
+/usr/include/qt4/QtGui/qfont.h:
+
+/usr/include/qt4/QtGui/qfontmetrics.h:
+
+/usr/include/qt4/QtGui/qfontinfo.h:
+
+/usr/include/qt4/QtGui/qsizepolicy.h:
+
+/usr/include/qt4/QtGui/qcursor.h:
+
+/usr/include/qt4/QtGui/qkeysequence.h:
+
+/usr/include/qt4/QtGui/QPixmap:
+
+/usr/include/qt4/QtGui/qpixmap.h:
+
+../include/mgl/mgl_zb.h:
+
+../include/mgl/mgl_ab.h:
+
+../include/mgl/mgl.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
diff --git a/widgets/.deps/libmgl_wx_la-mgl_wx.Plo b/widgets/.deps/libmgl_wx_la-mgl_wx.Plo
new file mode 100644
index 0000000..ca1b699
--- /dev/null
+++ b/widgets/.deps/libmgl_wx_la-mgl_wx.Plo
@@ -0,0 +1,846 @@
+libmgl_wx_la-mgl_wx.lo: mgl_wx.cpp /usr/include/wx-2.8/wx/dcclient.h \
+ /usr/include/wx-2.8/wx/defs.h /usr/include/wx-2.8/wx/platform.h \
+ /usr/lib/wx/include/gtk2-unicode-release-2.8/wx/setup.h \
+ /usr/include/wx-2.8/wx/chkconf.h /usr/include/wx-2.8/wx/features.h \
+ /usr/include/wx-2.8/wx/version.h /usr/include/wx-2.8/wx/cpp.h \
+ /usr/include/wx-2.8/wx/dlimpexp.h /usr/include/wx-2.8/wx/debug.h \
+ /usr/include/assert.h /usr/include/features.h \
+ /usr/include/bits/predefs.h /usr/include/sys/cdefs.h \
+ /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+ /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+ /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+ /usr/include/bits/stdio_lim.h /usr/include/wx-2.8/wx/wxchar.h \
+ /usr/include/stdio.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+ /usr/include/bits/wchar.h /usr/include/xlocale.h /usr/include/wctype.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/time.h \
+ /usr/include/bits/time.h /usr/include/string.h \
+ /usr/include/wx-2.8/wx/gtk/dcclient.h /usr/include/wx-2.8/wx/dc.h \
+ /usr/include/wx-2.8/wx/object.h /usr/include/wx-2.8/wx/memory.h \
+ /usr/include/wx-2.8/wx/string.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/sys/types.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/wx-2.8/wx/buffer.h \
+ /usr/include/wx-2.8/wx/strconv.h /usr/include/wx-2.8/wx/fontenc.h \
+ /usr/include/wx-2.8/wx/beforestd.h /usr/include/c++/4.4/string \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/bits/stringfwd.h \
+ /usr/include/c++/4.4/bits/char_traits.h \
+ /usr/include/c++/4.4/bits/stl_algobase.h /usr/include/c++/4.4/cstddef \
+ /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/postypes.h \
+ /usr/include/c++/4.4/cwchar /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/localefwd.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++locale.h \
+ /usr/include/c++/4.4/clocale /usr/include/locale.h \
+ /usr/include/bits/locale.h /usr/include/c++/4.4/iosfwd \
+ /usr/include/c++/4.4/cctype /usr/include/ctype.h \
+ /usr/include/c++/4.4/bits/ostream_insert.h \
+ /usr/include/c++/4.4/cxxabi-forced.h \
+ /usr/include/c++/4.4/bits/stl_function.h \
+ /usr/include/c++/4.4/backward/binders.h \
+ /usr/include/c++/4.4/bits/basic_string.h \
+ /usr/include/c++/4.4/ext/atomicity.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h /usr/include/bits/sched.h \
+ /usr/include/signal.h /usr/include/bits/setjmp.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/atomic_word.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/basic_string.tcc \
+ /usr/include/wx-2.8/wx/afterstd.h /usr/include/wx-2.8/wx/iosfwrap.h \
+ /usr/include/wx-2.8/wx/msgout.h /usr/include/wx-2.8/wx/intl.h \
+ /usr/include/wx-2.8/wx/cursor.h /usr/include/wx-2.8/wx/gtk/cursor.h \
+ /usr/include/wx-2.8/wx/utils.h /usr/include/wx-2.8/wx/list.h \
+ /usr/include/wx-2.8/wx/filefn.h /usr/include/wx-2.8/wx/arrstr.h \
+ /usr/include/sys/stat.h /usr/include/bits/stat.h /usr/include/dirent.h \
+ /usr/include/bits/dirent.h /usr/include/fcntl.h \
+ /usr/include/bits/fcntl.h /usr/include/bits/uio.h \
+ /usr/include/wx-2.8/wx/gdicmn.h /usr/include/wx-2.8/wx/hashmap.h \
+ /usr/include/wx-2.8/wx/math.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/wx-2.8/wx/longlong.h /usr/include/wx-2.8/wx/platinfo.h \
+ /usr/include/wx-2.8/wx/font.h /usr/include/wx-2.8/wx/gdiobj.h \
+ /usr/include/wx-2.8/wx/gtk/font.h /usr/include/wx-2.8/wx/colour.h \
+ /usr/include/wx-2.8/wx/variant.h /usr/include/wx-2.8/wx/datetime.h \
+ /usr/include/wx-2.8/wx/dynarray.h /usr/include/wx-2.8/wx/gtk/colour.h \
+ /usr/include/wx-2.8/wx/bitmap.h /usr/include/wx-2.8/wx/gtk/bitmap.h \
+ /usr/include/wx-2.8/wx/brush.h /usr/include/wx-2.8/wx/gtk/brush.h \
+ /usr/include/wx-2.8/wx/pen.h /usr/include/wx-2.8/wx/gtk/pen.h \
+ /usr/include/wx-2.8/wx/palette.h \
+ /usr/include/wx-2.8/wx/generic/paletteg.h \
+ /usr/include/wx-2.8/wx/gtk/dc.h /usr/include/wx-2.8/wx/dcgraph.h \
+ /usr/include/wx-2.8/wx/geometry.h /usr/include/wx-2.8/wx/graphics.h \
+ /usr/include/wx-2.8/wx/region.h /usr/include/wx-2.8/wx/gtk/region.h \
+ /usr/include/wx-2.8/wx/msgdlg.h /usr/include/wx-2.8/wx/gtk/msgdlg.h \
+ /usr/include/wx-2.8/wx/dialog.h /usr/include/wx-2.8/wx/containr.h \
+ /usr/include/wx-2.8/wx/toplevel.h /usr/include/wx-2.8/wx/window.h \
+ /usr/include/wx-2.8/wx/event.h /usr/include/wx-2.8/wx/clntdata.h \
+ /usr/include/wx-2.8/wx/vector.h /usr/include/wx-2.8/wx/thread.h \
+ /usr/include/wx-2.8/wx/validate.h /usr/include/wx-2.8/wx/accel.h \
+ /usr/include/wx-2.8/wx/gtk/accel.h \
+ /usr/include/wx-2.8/wx/generic/accel.h \
+ /usr/include/wx-2.8/wx/gtk/window.h /usr/include/wx-2.8/wx/iconbndl.h \
+ /usr/include/wx-2.8/wx/gtk/toplevel.h \
+ /usr/include/wx-2.8/wx/gtk/dialog.h /usr/include/wx-2.8/wx/clipbrd.h \
+ /usr/include/wx-2.8/wx/gtk/clipbrd.h /usr/include/wx-2.8/wx/dataobj.h \
+ /usr/include/wx-2.8/wx/gtk/dataform.h \
+ /usr/include/wx-2.8/wx/gtk/dataobj.h \
+ /usr/include/wx-2.8/wx/gtk/dataobj2.h /usr/include/wx-2.8/wx/menu.h \
+ /usr/include/wx-2.8/wx/menuitem.h /usr/include/wx-2.8/wx/gtk/menuitem.h \
+ /usr/include/wx-2.8/wx/gtk/menu.h ../include/mgl/mgl_idtf.h \
+ /usr/include/stdint.h /usr/include/c++/4.4/list \
+ /usr/include/c++/4.4/bits/stl_list.h /usr/include/c++/4.4/bits/list.tcc \
+ /usr/include/c++/4.4/vector /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/c++/4.4/deque \
+ /usr/include/c++/4.4/bits/stl_deque.h \
+ /usr/include/c++/4.4/bits/deque.tcc /usr/include/c++/4.4/sstream \
+ /usr/include/c++/4.4/istream /usr/include/c++/4.4/ios \
+ /usr/include/c++/4.4/bits/ios_base.h \
+ /usr/include/c++/4.4/bits/locale_classes.h \
+ /usr/include/c++/4.4/bits/locale_classes.tcc \
+ /usr/include/c++/4.4/streambuf /usr/include/c++/4.4/bits/streambuf.tcc \
+ /usr/include/c++/4.4/bits/basic_ios.h \
+ /usr/include/c++/4.4/bits/locale_facets.h /usr/include/c++/4.4/cwctype \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_base.h \
+ /usr/include/c++/4.4/bits/streambuf_iterator.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_inline.h \
+ /usr/include/c++/4.4/bits/locale_facets.tcc \
+ /usr/include/c++/4.4/bits/basic_ios.tcc /usr/include/c++/4.4/ostream \
+ /usr/include/c++/4.4/bits/ostream.tcc \
+ /usr/include/c++/4.4/bits/istream.tcc \
+ /usr/include/c++/4.4/bits/sstream.tcc /usr/include/c++/4.4/iostream \
+ /usr/include/c++/4.4/fstream /usr/include/c++/4.4/bits/codecvt.h \
+ /usr/include/c++/4.4/cstdio \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/basic_file.h \
+ /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++io.h \
+ /usr/include/c++/4.4/bits/fstream.tcc ../include/mgl/mgl_ab.h \
+ ../include/mgl/mgl.h ../include/mgl/mgl_data.h \
+ /usr/include/gsl/gsl_vector.h \
+ /usr/include/gsl/gsl_vector_complex_long_double.h \
+ /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_errno.h \
+ /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/gsl/gsl_complex.h /usr/include/gsl/gsl_check_range.h \
+ /usr/include/gsl/gsl_vector_long_double.h /usr/include/gsl/gsl_inline.h \
+ /usr/include/gsl/gsl_block_long_double.h \
+ /usr/include/gsl/gsl_vector_complex.h \
+ /usr/include/gsl/gsl_block_complex_long_double.h \
+ /usr/include/gsl/gsl_vector_complex_double.h \
+ /usr/include/gsl/gsl_vector_double.h /usr/include/gsl/gsl_block_double.h \
+ /usr/include/gsl/gsl_block_complex_double.h \
+ /usr/include/gsl/gsl_vector_complex_float.h \
+ /usr/include/gsl/gsl_vector_float.h /usr/include/gsl/gsl_block_float.h \
+ /usr/include/gsl/gsl_block_complex_float.h \
+ /usr/include/gsl/gsl_vector_ulong.h /usr/include/gsl/gsl_block_ulong.h \
+ /usr/include/gsl/gsl_vector_long.h /usr/include/gsl/gsl_block_long.h \
+ /usr/include/gsl/gsl_vector_uint.h /usr/include/gsl/gsl_block_uint.h \
+ /usr/include/gsl/gsl_vector_int.h /usr/include/gsl/gsl_block_int.h \
+ /usr/include/gsl/gsl_vector_ushort.h /usr/include/gsl/gsl_block_ushort.h \
+ /usr/include/gsl/gsl_vector_short.h /usr/include/gsl/gsl_block_short.h \
+ /usr/include/gsl/gsl_vector_uchar.h /usr/include/gsl/gsl_block_uchar.h \
+ /usr/include/gsl/gsl_vector_char.h /usr/include/gsl/gsl_block_char.h \
+ /usr/include/gsl/gsl_matrix.h \
+ /usr/include/gsl/gsl_matrix_complex_long_double.h \
+ /usr/include/gsl/gsl_matrix_complex_double.h \
+ /usr/include/gsl/gsl_matrix_complex_float.h \
+ /usr/include/gsl/gsl_matrix_long_double.h \
+ /usr/include/gsl/gsl_matrix_double.h /usr/include/gsl/gsl_matrix_float.h \
+ /usr/include/gsl/gsl_matrix_ulong.h /usr/include/gsl/gsl_matrix_long.h \
+ /usr/include/gsl/gsl_matrix_uint.h /usr/include/gsl/gsl_matrix_int.h \
+ /usr/include/gsl/gsl_matrix_ushort.h /usr/include/gsl/gsl_matrix_short.h \
+ /usr/include/gsl/gsl_matrix_uchar.h /usr/include/gsl/gsl_matrix_char.h \
+ ../include/mgl/mgl_define.h ../include/mgl/config.h \
+ ../include/mgl/mgl_font.h ../include/mgl/mgl_eps.h \
+ ../include/mgl/mgl_wx.h /usr/include/wx-2.8/wx/image.h \
+ /usr/include/wx-2.8/wx/stream.h /usr/include/wx-2.8/wx/imagbmp.h \
+ /usr/include/wx-2.8/wx/imagpng.h /usr/include/wx-2.8/wx/imaggif.h \
+ /usr/include/wx-2.8/wx/imagpcx.h /usr/include/wx-2.8/wx/imagjpeg.h \
+ /usr/include/wx-2.8/wx/imagtga.h /usr/include/wx-2.8/wx/imagtiff.h \
+ /usr/include/wx-2.8/wx/imagpnm.h /usr/include/wx-2.8/wx/imagxpm.h \
+ /usr/include/wx-2.8/wx/imagiff.h /usr/include/wx-2.8/wx/timer.h \
+ /usr/include/wx-2.8/wx/stopwatch.h /usr/include/wx-2.8/wx/gtk/timer.h \
+ ../include/mgl/mgl_zb.h ../include/mgl/mgl_c.h ../include/mgl/mgl_f.h
+
+/usr/include/wx-2.8/wx/dcclient.h:
+
+/usr/include/wx-2.8/wx/defs.h:
+
+/usr/include/wx-2.8/wx/platform.h:
+
+/usr/lib/wx/include/gtk2-unicode-release-2.8/wx/setup.h:
+
+/usr/include/wx-2.8/wx/chkconf.h:
+
+/usr/include/wx-2.8/wx/features.h:
+
+/usr/include/wx-2.8/wx/version.h:
+
+/usr/include/wx-2.8/wx/cpp.h:
+
+/usr/include/wx-2.8/wx/dlimpexp.h:
+
+/usr/include/wx-2.8/wx/debug.h:
+
+/usr/include/assert.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/wx-2.8/wx/wxchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stdarg.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/wctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/string.h:
+
+/usr/include/wx-2.8/wx/gtk/dcclient.h:
+
+/usr/include/wx-2.8/wx/dc.h:
+
+/usr/include/wx-2.8/wx/object.h:
+
+/usr/include/wx-2.8/wx/memory.h:
+
+/usr/include/wx-2.8/wx/string.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/wx-2.8/wx/buffer.h:
+
+/usr/include/wx-2.8/wx/strconv.h:
+
+/usr/include/wx-2.8/wx/fontenc.h:
+
+/usr/include/wx-2.8/wx/beforestd.h:
+
+/usr/include/c++/4.4/string:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/bits/stringfwd.h:
+
+/usr/include/c++/4.4/bits/char_traits.h:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/postypes.h:
+
+/usr/include/c++/4.4/cwchar:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/localefwd.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++locale.h:
+
+/usr/include/c++/4.4/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/c++/4.4/iosfwd:
+
+/usr/include/c++/4.4/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/4.4/bits/ostream_insert.h:
+
+/usr/include/c++/4.4/cxxabi-forced.h:
+
+/usr/include/c++/4.4/bits/stl_function.h:
+
+/usr/include/c++/4.4/backward/binders.h:
+
+/usr/include/c++/4.4/bits/basic_string.h:
+
+/usr/include/c++/4.4/ext/atomicity.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/atomic_word.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/basic_string.tcc:
+
+/usr/include/wx-2.8/wx/afterstd.h:
+
+/usr/include/wx-2.8/wx/iosfwrap.h:
+
+/usr/include/wx-2.8/wx/msgout.h:
+
+/usr/include/wx-2.8/wx/intl.h:
+
+/usr/include/wx-2.8/wx/cursor.h:
+
+/usr/include/wx-2.8/wx/gtk/cursor.h:
+
+/usr/include/wx-2.8/wx/utils.h:
+
+/usr/include/wx-2.8/wx/list.h:
+
+/usr/include/wx-2.8/wx/filefn.h:
+
+/usr/include/wx-2.8/wx/arrstr.h:
+
+/usr/include/sys/stat.h:
+
+/usr/include/bits/stat.h:
+
+/usr/include/dirent.h:
+
+/usr/include/bits/dirent.h:
+
+/usr/include/fcntl.h:
+
+/usr/include/bits/fcntl.h:
+
+/usr/include/bits/uio.h:
+
+/usr/include/wx-2.8/wx/gdicmn.h:
+
+/usr/include/wx-2.8/wx/hashmap.h:
+
+/usr/include/wx-2.8/wx/math.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/wx-2.8/wx/longlong.h:
+
+/usr/include/wx-2.8/wx/platinfo.h:
+
+/usr/include/wx-2.8/wx/font.h:
+
+/usr/include/wx-2.8/wx/gdiobj.h:
+
+/usr/include/wx-2.8/wx/gtk/font.h:
+
+/usr/include/wx-2.8/wx/colour.h:
+
+/usr/include/wx-2.8/wx/variant.h:
+
+/usr/include/wx-2.8/wx/datetime.h:
+
+/usr/include/wx-2.8/wx/dynarray.h:
+
+/usr/include/wx-2.8/wx/gtk/colour.h:
+
+/usr/include/wx-2.8/wx/bitmap.h:
+
+/usr/include/wx-2.8/wx/gtk/bitmap.h:
+
+/usr/include/wx-2.8/wx/brush.h:
+
+/usr/include/wx-2.8/wx/gtk/brush.h:
+
+/usr/include/wx-2.8/wx/pen.h:
+
+/usr/include/wx-2.8/wx/gtk/pen.h:
+
+/usr/include/wx-2.8/wx/palette.h:
+
+/usr/include/wx-2.8/wx/generic/paletteg.h:
+
+/usr/include/wx-2.8/wx/gtk/dc.h:
+
+/usr/include/wx-2.8/wx/dcgraph.h:
+
+/usr/include/wx-2.8/wx/geometry.h:
+
+/usr/include/wx-2.8/wx/graphics.h:
+
+/usr/include/wx-2.8/wx/region.h:
+
+/usr/include/wx-2.8/wx/gtk/region.h:
+
+/usr/include/wx-2.8/wx/msgdlg.h:
+
+/usr/include/wx-2.8/wx/gtk/msgdlg.h:
+
+/usr/include/wx-2.8/wx/dialog.h:
+
+/usr/include/wx-2.8/wx/containr.h:
+
+/usr/include/wx-2.8/wx/toplevel.h:
+
+/usr/include/wx-2.8/wx/window.h:
+
+/usr/include/wx-2.8/wx/event.h:
+
+/usr/include/wx-2.8/wx/clntdata.h:
+
+/usr/include/wx-2.8/wx/vector.h:
+
+/usr/include/wx-2.8/wx/thread.h:
+
+/usr/include/wx-2.8/wx/validate.h:
+
+/usr/include/wx-2.8/wx/accel.h:
+
+/usr/include/wx-2.8/wx/gtk/accel.h:
+
+/usr/include/wx-2.8/wx/generic/accel.h:
+
+/usr/include/wx-2.8/wx/gtk/window.h:
+
+/usr/include/wx-2.8/wx/iconbndl.h:
+
+/usr/include/wx-2.8/wx/gtk/toplevel.h:
+
+/usr/include/wx-2.8/wx/gtk/dialog.h:
+
+/usr/include/wx-2.8/wx/clipbrd.h:
+
+/usr/include/wx-2.8/wx/gtk/clipbrd.h:
+
+/usr/include/wx-2.8/wx/dataobj.h:
+
+/usr/include/wx-2.8/wx/gtk/dataform.h:
+
+/usr/include/wx-2.8/wx/gtk/dataobj.h:
+
+/usr/include/wx-2.8/wx/gtk/dataobj2.h:
+
+/usr/include/wx-2.8/wx/menu.h:
+
+/usr/include/wx-2.8/wx/menuitem.h:
+
+/usr/include/wx-2.8/wx/gtk/menuitem.h:
+
+/usr/include/wx-2.8/wx/gtk/menu.h:
+
+../include/mgl/mgl_idtf.h:
+
+/usr/include/stdint.h:
+
+/usr/include/c++/4.4/list:
+
+/usr/include/c++/4.4/bits/stl_list.h:
+
+/usr/include/c++/4.4/bits/list.tcc:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/c++/4.4/deque:
+
+/usr/include/c++/4.4/bits/stl_deque.h:
+
+/usr/include/c++/4.4/bits/deque.tcc:
+
+/usr/include/c++/4.4/sstream:
+
+/usr/include/c++/4.4/istream:
+
+/usr/include/c++/4.4/ios:
+
+/usr/include/c++/4.4/bits/ios_base.h:
+
+/usr/include/c++/4.4/bits/locale_classes.h:
+
+/usr/include/c++/4.4/bits/locale_classes.tcc:
+
+/usr/include/c++/4.4/streambuf:
+
+/usr/include/c++/4.4/bits/streambuf.tcc:
+
+/usr/include/c++/4.4/bits/basic_ios.h:
+
+/usr/include/c++/4.4/bits/locale_facets.h:
+
+/usr/include/c++/4.4/cwctype:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_base.h:
+
+/usr/include/c++/4.4/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/ctype_inline.h:
+
+/usr/include/c++/4.4/bits/locale_facets.tcc:
+
+/usr/include/c++/4.4/bits/basic_ios.tcc:
+
+/usr/include/c++/4.4/ostream:
+
+/usr/include/c++/4.4/bits/ostream.tcc:
+
+/usr/include/c++/4.4/bits/istream.tcc:
+
+/usr/include/c++/4.4/bits/sstream.tcc:
+
+/usr/include/c++/4.4/iostream:
+
+/usr/include/c++/4.4/fstream:
+
+/usr/include/c++/4.4/bits/codecvt.h:
+
+/usr/include/c++/4.4/cstdio:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/basic_file.h:
+
+/usr/include/c++/4.4/x86_64-linux-gnu/bits/c++io.h:
+
+/usr/include/c++/4.4/bits/fstream.tcc:
+
+../include/mgl/mgl_ab.h:
+
+../include/mgl/mgl.h:
+
+../include/mgl/mgl_data.h:
+
+/usr/include/gsl/gsl_vector.h:
+
+/usr/include/gsl/gsl_vector_complex_long_double.h:
+
+/usr/include/gsl/gsl_types.h:
+
+/usr/include/gsl/gsl_errno.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/gsl/gsl_complex.h:
+
+/usr/include/gsl/gsl_check_range.h:
+
+/usr/include/gsl/gsl_vector_long_double.h:
+
+/usr/include/gsl/gsl_inline.h:
+
+/usr/include/gsl/gsl_block_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex.h:
+
+/usr/include/gsl/gsl_block_complex_long_double.h:
+
+/usr/include/gsl/gsl_vector_complex_double.h:
+
+/usr/include/gsl/gsl_vector_double.h:
+
+/usr/include/gsl/gsl_block_double.h:
+
+/usr/include/gsl/gsl_block_complex_double.h:
+
+/usr/include/gsl/gsl_vector_complex_float.h:
+
+/usr/include/gsl/gsl_vector_float.h:
+
+/usr/include/gsl/gsl_block_float.h:
+
+/usr/include/gsl/gsl_block_complex_float.h:
+
+/usr/include/gsl/gsl_vector_ulong.h:
+
+/usr/include/gsl/gsl_block_ulong.h:
+
+/usr/include/gsl/gsl_vector_long.h:
+
+/usr/include/gsl/gsl_block_long.h:
+
+/usr/include/gsl/gsl_vector_uint.h:
+
+/usr/include/gsl/gsl_block_uint.h:
+
+/usr/include/gsl/gsl_vector_int.h:
+
+/usr/include/gsl/gsl_block_int.h:
+
+/usr/include/gsl/gsl_vector_ushort.h:
+
+/usr/include/gsl/gsl_block_ushort.h:
+
+/usr/include/gsl/gsl_vector_short.h:
+
+/usr/include/gsl/gsl_block_short.h:
+
+/usr/include/gsl/gsl_vector_uchar.h:
+
+/usr/include/gsl/gsl_block_uchar.h:
+
+/usr/include/gsl/gsl_vector_char.h:
+
+/usr/include/gsl/gsl_block_char.h:
+
+/usr/include/gsl/gsl_matrix.h:
+
+/usr/include/gsl/gsl_matrix_complex_long_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_double.h:
+
+/usr/include/gsl/gsl_matrix_complex_float.h:
+
+/usr/include/gsl/gsl_matrix_long_double.h:
+
+/usr/include/gsl/gsl_matrix_double.h:
+
+/usr/include/gsl/gsl_matrix_float.h:
+
+/usr/include/gsl/gsl_matrix_ulong.h:
+
+/usr/include/gsl/gsl_matrix_long.h:
+
+/usr/include/gsl/gsl_matrix_uint.h:
+
+/usr/include/gsl/gsl_matrix_int.h:
+
+/usr/include/gsl/gsl_matrix_ushort.h:
+
+/usr/include/gsl/gsl_matrix_short.h:
+
+/usr/include/gsl/gsl_matrix_uchar.h:
+
+/usr/include/gsl/gsl_matrix_char.h:
+
+../include/mgl/mgl_define.h:
+
+../include/mgl/config.h:
+
+../include/mgl/mgl_font.h:
+
+../include/mgl/mgl_eps.h:
+
+../include/mgl/mgl_wx.h:
+
+/usr/include/wx-2.8/wx/image.h:
+
+/usr/include/wx-2.8/wx/stream.h:
+
+/usr/include/wx-2.8/wx/imagbmp.h:
+
+/usr/include/wx-2.8/wx/imagpng.h:
+
+/usr/include/wx-2.8/wx/imaggif.h:
+
+/usr/include/wx-2.8/wx/imagpcx.h:
+
+/usr/include/wx-2.8/wx/imagjpeg.h:
+
+/usr/include/wx-2.8/wx/imagtga.h:
+
+/usr/include/wx-2.8/wx/imagtiff.h:
+
+/usr/include/wx-2.8/wx/imagpnm.h:
+
+/usr/include/wx-2.8/wx/imagxpm.h:
+
+/usr/include/wx-2.8/wx/imagiff.h:
+
+/usr/include/wx-2.8/wx/timer.h:
+
+/usr/include/wx-2.8/wx/stopwatch.h:
+
+/usr/include/wx-2.8/wx/gtk/timer.h:
+
+../include/mgl/mgl_zb.h:
+
+../include/mgl/mgl_c.h:
+
+../include/mgl/mgl_f.h:
diff --git a/widgets/.libs/libmgl-fltk.a b/widgets/.libs/libmgl-fltk.a
new file mode 100644
index 0000000..8b742f5
Binary files /dev/null and b/widgets/.libs/libmgl-fltk.a differ
diff --git a/widgets/.libs/libmgl-fltk.la b/widgets/.libs/libmgl-fltk.la
new file mode 120000
index 0000000..d46a138
--- /dev/null
+++ b/widgets/.libs/libmgl-fltk.la
@@ -0,0 +1 @@
+../libmgl-fltk.la
\ No newline at end of file
diff --git a/widgets/.libs/libmgl-fltk.lai b/widgets/.libs/libmgl-fltk.lai
new file mode 100644
index 0000000..c165b8f
--- /dev/null
+++ b/widgets/.libs/libmgl-fltk.lai
@@ -0,0 +1,41 @@
+# libmgl-fltk.la - a libtool library file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libmgl-fltk.so.5'
+
+# Names of this library.
+library_names='libmgl-fltk.so.5.0.0 libmgl-fltk.so.5 libmgl-fltk.so'
+
+# The name of the static archive.
+old_library='libmgl-fltk.a'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -R/tmp/buildd/libhdf4-4.2r4/HDF4/mfhdf/libsrc/.libs -R/tmp/buildd/libhdf4-4.2r4/HDF4/hdf/src/.libs -lfltk /usr/lib/libmgl.la -lpng -lGL -L/usr/lib -lgsl -lgslcblas /usr/lib/libmfhdf.la /usr/lib/libdf.la /usr/lib/libhdf5.la -lpthread -lz /usr/lib/libgif.la /usr/lib/libjpeg.la'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libmgl-fltk.
+current=5
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=yes
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/lib'
diff --git a/widgets/.libs/libmgl-fltk.so b/widgets/.libs/libmgl-fltk.so
new file mode 120000
index 0000000..59ab499
--- /dev/null
+++ b/widgets/.libs/libmgl-fltk.so
@@ -0,0 +1 @@
+libmgl-fltk.so.5.0.0
\ No newline at end of file
diff --git a/widgets/.libs/libmgl-fltk.so.5 b/widgets/.libs/libmgl-fltk.so.5
new file mode 120000
index 0000000..59ab499
--- /dev/null
+++ b/widgets/.libs/libmgl-fltk.so.5
@@ -0,0 +1 @@
+libmgl-fltk.so.5.0.0
\ No newline at end of file
diff --git a/widgets/.libs/libmgl-fltk.so.5.0.0 b/widgets/.libs/libmgl-fltk.so.5.0.0
new file mode 100755
index 0000000..f9ae4ac
Binary files /dev/null and b/widgets/.libs/libmgl-fltk.so.5.0.0 differ
diff --git a/widgets/.libs/libmgl-fltk.so.5.0.0T b/widgets/.libs/libmgl-fltk.so.5.0.0T
new file mode 100755
index 0000000..6629e1d
Binary files /dev/null and b/widgets/.libs/libmgl-fltk.so.5.0.0T differ
diff --git a/widgets/.libs/libmgl-glut.a b/widgets/.libs/libmgl-glut.a
new file mode 100644
index 0000000..a53877a
Binary files /dev/null and b/widgets/.libs/libmgl-glut.a differ
diff --git a/widgets/.libs/libmgl-glut.la b/widgets/.libs/libmgl-glut.la
new file mode 120000
index 0000000..73806ba
--- /dev/null
+++ b/widgets/.libs/libmgl-glut.la
@@ -0,0 +1 @@
+../libmgl-glut.la
\ No newline at end of file
diff --git a/widgets/.libs/libmgl-glut.lai b/widgets/.libs/libmgl-glut.lai
new file mode 100644
index 0000000..f2b0f7b
--- /dev/null
+++ b/widgets/.libs/libmgl-glut.lai
@@ -0,0 +1,41 @@
+# libmgl-glut.la - a libtool library file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libmgl-glut.so.5'
+
+# Names of this library.
+library_names='libmgl-glut.so.5.0.0 libmgl-glut.so.5 libmgl-glut.so'
+
+# The name of the static archive.
+old_library='libmgl-glut.a'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -R/tmp/buildd/libhdf4-4.2r4/HDF4/mfhdf/libsrc/.libs -R/tmp/buildd/libhdf4-4.2r4/HDF4/hdf/src/.libs -lglut /usr/lib/libmgl.la -lpng -lGL -L/usr/lib -lgsl -lgslcblas /usr/lib/libmfhdf.la /usr/lib/libdf.la /usr/lib/libhdf5.la -lpthread -lz /usr/lib/libgif.la /usr/lib/libjpeg.la'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libmgl-glut.
+current=5
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=yes
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/lib'
diff --git a/widgets/.libs/libmgl-glut.so b/widgets/.libs/libmgl-glut.so
new file mode 120000
index 0000000..c2e4f34
--- /dev/null
+++ b/widgets/.libs/libmgl-glut.so
@@ -0,0 +1 @@
+libmgl-glut.so.5.0.0
\ No newline at end of file
diff --git a/widgets/.libs/libmgl-glut.so.5 b/widgets/.libs/libmgl-glut.so.5
new file mode 120000
index 0000000..c2e4f34
--- /dev/null
+++ b/widgets/.libs/libmgl-glut.so.5
@@ -0,0 +1 @@
+libmgl-glut.so.5.0.0
\ No newline at end of file
diff --git a/widgets/.libs/libmgl-glut.so.5.0.0 b/widgets/.libs/libmgl-glut.so.5.0.0
new file mode 100755
index 0000000..29c1faa
Binary files /dev/null and b/widgets/.libs/libmgl-glut.so.5.0.0 differ
diff --git a/widgets/.libs/libmgl-glut.so.5.0.0T b/widgets/.libs/libmgl-glut.so.5.0.0T
new file mode 100755
index 0000000..bc22cfb
Binary files /dev/null and b/widgets/.libs/libmgl-glut.so.5.0.0T differ
diff --git a/widgets/.libs/libmgl-qt.a b/widgets/.libs/libmgl-qt.a
new file mode 100644
index 0000000..be1bc87
Binary files /dev/null and b/widgets/.libs/libmgl-qt.a differ
diff --git a/widgets/.libs/libmgl-qt.la b/widgets/.libs/libmgl-qt.la
new file mode 120000
index 0000000..b698d2f
--- /dev/null
+++ b/widgets/.libs/libmgl-qt.la
@@ -0,0 +1 @@
+../libmgl-qt.la
\ No newline at end of file
diff --git a/widgets/.libs/libmgl-qt.lai b/widgets/.libs/libmgl-qt.lai
new file mode 100644
index 0000000..7befe30
--- /dev/null
+++ b/widgets/.libs/libmgl-qt.lai
@@ -0,0 +1,41 @@
+# libmgl-qt.la - a libtool library file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libmgl-qt.so.5'
+
+# Names of this library.
+library_names='libmgl-qt.so.5.0.0 libmgl-qt.so.5 libmgl-qt.so'
+
+# The name of the static archive.
+old_library='libmgl-qt.a'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -R/tmp/buildd/libhdf4-4.2r4/HDF4/mfhdf/libsrc/.libs -R/tmp/buildd/libhdf4-4.2r4/HDF4/hdf/src/.libs -L/usr/lib -lQtGui -lQtCore /usr/lib/libmgl.la -lpng -lGL -lgsl -lgslcblas /usr/lib/libmfhdf.la /usr/lib/libdf.la /usr/lib/libhdf5.la -lpthread -lz /usr/lib/libgif.la /usr/lib/libjpeg.la'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libmgl-qt.
+current=5
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=yes
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/lib'
diff --git a/widgets/.libs/libmgl-qt.so b/widgets/.libs/libmgl-qt.so
new file mode 120000
index 0000000..68651a8
--- /dev/null
+++ b/widgets/.libs/libmgl-qt.so
@@ -0,0 +1 @@
+libmgl-qt.so.5.0.0
\ No newline at end of file
diff --git a/widgets/.libs/libmgl-qt.so.5 b/widgets/.libs/libmgl-qt.so.5
new file mode 120000
index 0000000..68651a8
--- /dev/null
+++ b/widgets/.libs/libmgl-qt.so.5
@@ -0,0 +1 @@
+libmgl-qt.so.5.0.0
\ No newline at end of file
diff --git a/widgets/.libs/libmgl-qt.so.5.0.0 b/widgets/.libs/libmgl-qt.so.5.0.0
new file mode 100755
index 0000000..5b1a754
Binary files /dev/null and b/widgets/.libs/libmgl-qt.so.5.0.0 differ
diff --git a/widgets/.libs/libmgl-qt.so.5.0.0T b/widgets/.libs/libmgl-qt.so.5.0.0T
new file mode 100755
index 0000000..287830e
Binary files /dev/null and b/widgets/.libs/libmgl-qt.so.5.0.0T differ
diff --git a/widgets/.libs/libmgl-wx.a b/widgets/.libs/libmgl-wx.a
new file mode 100644
index 0000000..09e86f5
Binary files /dev/null and b/widgets/.libs/libmgl-wx.a differ
diff --git a/widgets/.libs/libmgl-wx.la b/widgets/.libs/libmgl-wx.la
new file mode 120000
index 0000000..a0cbe72
--- /dev/null
+++ b/widgets/.libs/libmgl-wx.la
@@ -0,0 +1 @@
+../libmgl-wx.la
\ No newline at end of file
diff --git a/widgets/.libs/libmgl-wx.lai b/widgets/.libs/libmgl-wx.lai
new file mode 100644
index 0000000..45119fa
--- /dev/null
+++ b/widgets/.libs/libmgl-wx.lai
@@ -0,0 +1,41 @@
+# libmgl-wx.la - a libtool library file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libmgl-wx.so.5'
+
+# Names of this library.
+library_names='libmgl-wx.so.5.0.0 libmgl-wx.so.5 libmgl-wx.so'
+
+# The name of the static archive.
+old_library='libmgl-wx.a'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=' -pthread'
+
+# Libraries that this one depends upon.
+dependency_libs=' -R/tmp/buildd/libhdf4-4.2r4/HDF4/mfhdf/libsrc/.libs -R/tmp/buildd/libhdf4-4.2r4/HDF4/hdf/src/.libs -lwx_gtk2u_richtext-2.8 -lwx_gtk2u_aui-2.8 -lwx_gtk2u_xrc-2.8 -lwx_gtk2u_qa-2.8 -lwx_gtk2u_html-2.8 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8 /usr/lib/libmgl.la -lpng -lGL -L/usr/lib -lgsl -lgslcblas /usr/lib/libmfhdf.la /usr/lib/libdf.la /usr/lib/libhdf5.la -lpthread -lz /usr/lib/libgif.la /usr/lib/libjpeg.la'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libmgl-wx.
+current=5
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=yes
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/lib'
diff --git a/widgets/.libs/libmgl-wx.so b/widgets/.libs/libmgl-wx.so
new file mode 120000
index 0000000..37b70a5
--- /dev/null
+++ b/widgets/.libs/libmgl-wx.so
@@ -0,0 +1 @@
+libmgl-wx.so.5.0.0
\ No newline at end of file
diff --git a/widgets/.libs/libmgl-wx.so.5 b/widgets/.libs/libmgl-wx.so.5
new file mode 120000
index 0000000..37b70a5
--- /dev/null
+++ b/widgets/.libs/libmgl-wx.so.5
@@ -0,0 +1 @@
+libmgl-wx.so.5.0.0
\ No newline at end of file
diff --git a/widgets/.libs/libmgl-wx.so.5.0.0 b/widgets/.libs/libmgl-wx.so.5.0.0
new file mode 100755
index 0000000..48bf2be
Binary files /dev/null and b/widgets/.libs/libmgl-wx.so.5.0.0 differ
diff --git a/widgets/.libs/libmgl-wx.so.5.0.0T b/widgets/.libs/libmgl-wx.so.5.0.0T
new file mode 100755
index 0000000..747e4ce
Binary files /dev/null and b/widgets/.libs/libmgl-wx.so.5.0.0T differ
diff --git a/widgets/.libs/libmgl_fltk_la-mgl_fltk.o b/widgets/.libs/libmgl_fltk_la-mgl_fltk.o
new file mode 100644
index 0000000..9592804
Binary files /dev/null and b/widgets/.libs/libmgl_fltk_la-mgl_fltk.o differ
diff --git a/widgets/.libs/libmgl_glut_la-mgl_glut.o b/widgets/.libs/libmgl_glut_la-mgl_glut.o
new file mode 100644
index 0000000..644eabc
Binary files /dev/null and b/widgets/.libs/libmgl_glut_la-mgl_glut.o differ
diff --git a/widgets/.libs/libmgl_qt_la-mgl_qt.moc.o b/widgets/.libs/libmgl_qt_la-mgl_qt.moc.o
new file mode 100644
index 0000000..2e8d72a
Binary files /dev/null and b/widgets/.libs/libmgl_qt_la-mgl_qt.moc.o differ
diff --git a/widgets/.libs/libmgl_qt_la-mgl_qt.o b/widgets/.libs/libmgl_qt_la-mgl_qt.o
new file mode 100644
index 0000000..959cec1
Binary files /dev/null and b/widgets/.libs/libmgl_qt_la-mgl_qt.o differ
diff --git a/widgets/.libs/libmgl_wx_la-mgl_wx.o b/widgets/.libs/libmgl_wx_la-mgl_wx.o
new file mode 100644
index 0000000..e5cda37
Binary files /dev/null and b/widgets/.libs/libmgl_wx_la-mgl_wx.o differ
diff --git a/widgets/Makefile b/widgets/Makefile
new file mode 100644
index 0000000..ffa73ce
--- /dev/null
+++ b/widgets/Makefile
@@ -0,0 +1,788 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# widgets/Makefile.  Generated from Makefile.in by configure.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+# Makerules.
+# This file is part of AutoTroll.
+# Copyright (C) 2006  Benoit Sigoure.
+#
+# AutoTroll 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.
+#
+# This program 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 this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+# USA.
+
+
+pkgdatadir = $(datadir)/mathgl
+pkgincludedir = $(includedir)/mathgl
+pkglibdir = $(libdir)/mathgl
+pkglibexecdir = $(libexecdir)/mathgl
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-pc-linux-gnu
+host_triplet = x86_64-pc-linux-gnu
+am__append_1 = libmgl-fltk.la
+am__append_2 = libmgl-glut.la
+am__append_3 = libmgl-wx.la
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+	$(top_srcdir)/config/autotroll.mk
+am__append_4 = libmgl-qt.la
+subdir = widgets
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
+	$(top_srcdir)/config/libtool.m4 \
+	$(top_srcdir)/config/ltoptions.m4 \
+	$(top_srcdir)/config/ltsugar.m4 \
+	$(top_srcdir)/config/ltversion.m4 \
+	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/include/mgl/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(libdir)"
+LTLIBRARIES = $(lib_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+libmgl_fltk_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(top_builddir)/mgl/libmgl.la
+am__libmgl_fltk_la_SOURCES_DIST = mgl_fltk.cpp
+am_libmgl_fltk_la_OBJECTS = libmgl_fltk_la-mgl_fltk.lo
+libmgl_fltk_la_OBJECTS = $(am_libmgl_fltk_la_OBJECTS)
+libmgl_fltk_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CXXLD) \
+	$(libmgl_fltk_la_CXXFLAGS) $(CXXFLAGS) \
+	$(libmgl_fltk_la_LDFLAGS) $(LDFLAGS) -o $@
+am_libmgl_fltk_la_rpath = -rpath $(libdir)
+libmgl_glut_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) \
+	$(top_builddir)/mgl/libmgl.la
+am__libmgl_glut_la_SOURCES_DIST = mgl_glut.cpp
+am_libmgl_glut_la_OBJECTS = libmgl_glut_la-mgl_glut.lo
+libmgl_glut_la_OBJECTS = $(am_libmgl_glut_la_OBJECTS)
+libmgl_glut_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CXXLD) \
+	$(libmgl_glut_la_CXXFLAGS) $(CXXFLAGS) \
+	$(libmgl_glut_la_LDFLAGS) $(LDFLAGS) -o $@
+am_libmgl_glut_la_rpath = -rpath $(libdir)
+libmgl_qt_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(top_builddir)/mgl/libmgl.la
+am__libmgl_qt_la_SOURCES_DIST =  \
+	$(top_builddir)/include/mgl/mgl_qt.moc.cpp mgl_qt.cpp \
+	$(top_srcdir)/include/mgl/mgl_qt.h
+am_libmgl_qt_la_OBJECTS = libmgl_qt_la-mgl_qt.moc.lo \
+	libmgl_qt_la-mgl_qt.lo
+libmgl_qt_la_OBJECTS = $(am_libmgl_qt_la_OBJECTS)
+libmgl_qt_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(libmgl_qt_la_CXXFLAGS) \
+	$(CXXFLAGS) $(libmgl_qt_la_LDFLAGS) $(LDFLAGS) -o $@
+am_libmgl_qt_la_rpath = -rpath $(libdir)
+libmgl_wx_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(top_builddir)/mgl/libmgl.la
+am__libmgl_wx_la_SOURCES_DIST = mgl_wx.cpp
+am_libmgl_wx_la_OBJECTS = libmgl_wx_la-mgl_wx.lo
+libmgl_wx_la_OBJECTS = $(am_libmgl_wx_la_OBJECTS)
+libmgl_wx_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(libmgl_wx_la_CXXFLAGS) \
+	$(CXXFLAGS) $(libmgl_wx_la_LDFLAGS) $(LDFLAGS) -o $@
+am_libmgl_wx_la_rpath = -rpath $(libdir)
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/include/mgl
+depcomp = $(SHELL) $(top_srcdir)/config/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = $(libmgl_fltk_la_SOURCES) $(libmgl_glut_la_SOURCES) \
+	$(libmgl_qt_la_SOURCES) $(libmgl_wx_la_SOURCES)
+DIST_SOURCES = $(am__libmgl_fltk_la_SOURCES_DIST) \
+	$(am__libmgl_glut_la_SOURCES_DIST) \
+	$(am__libmgl_qt_la_SOURCES_DIST) \
+	$(am__libmgl_wx_la_SOURCES_DIST)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run aclocal-1.11
+AMTAR = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run tar
+AM_CXXFLAGS = -Wall -I/usr/include -I$(top_srcdir)/include \
+	-I$(top_builddir)/include
+AR = ar
+AS = as
+AUTOCONF = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run automake-1.11
+AWK = gawk
+CC = x86_64-linux-gnu-gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -Wall -g -O2
+CPP = x86_64-linux-gnu-gcc -E
+CPPFLAGS = 
+CXX = x86_64-linux-gnu-g++
+CXXCPP = x86_64-linux-gnu-g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DLLTOOL = dlltool
+DSYMUTIL = 
+DUMPBIN = 
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /bin/grep -E
+EXEEXT = 
+FGREP = /bin/grep -F
+FLTK_FLAGS = -I/usr/include/freetype2 -g -O2 -D_THREAD_SAFE -D_REENTRANT
+FLTK_LIBS = -lfltk
+GIF_FLAGS = -DHAVE_GIF
+GIF_LIBS = -lgif
+GLUT_FLAGS = -DHAVE_GLUT
+GLUT_LIBS = -lglut
+GL_LIBS = -lGL
+GREP = /bin/grep
+GSL_FLAGS = -I/usr/include
+GSL_LIBS = -L/usr/lib -lgsl -lgslcblas -lm
+HAVE_SWIG = true
+HDF4_FLAGS = -DHAVE_HDF4
+HDF4_LIBS = -lmfhdf -ldf
+HDF5_FLAGS = -DHAVE_HDF5 -DH5_USE_16_API
+HDF5_LIBS = -lhdf5
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+JPEG_FLAGS = -DHAVE_JPEG
+JPEG_LIBS = -ljpeg
+LD = /usr/bin/ld -m elf_x86_64
+LDFLAGS = 
+LIBOBJS = 
+LIBS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIPO = 
+LN_S = ln -s
+LTLIBOBJS = 
+MAKEINFO = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/missing --run makeinfo
+MGL_AGE = 0
+MGL_CURRENT = 5
+MGL_RELEASE = 1.10
+MGL_REVISION = 0
+MKDIR_P = /bin/mkdir -p
+MOC = /usr/bin/moc-qt4
+NM = /usr/bin/nm -B
+NMEDIT = 
+OBJDUMP = objdump
+OBJEXT = o
+OCTAVE = octave-config
+OCTAVE_ARCH = x86_64-pc-linux-gnu-api-v37
+OCTAVE_INCFLAGS = -I/usr/include/octave-3.2.4
+OTOOL = 
+OTOOL64 = 
+PACKAGE = mathgl
+PACKAGE_BUGREPORT = mathgl.abalakin at gmail.com
+PACKAGE_NAME = mathgl
+PACKAGE_STRING = mathgl 1.10
+PACKAGE_TARNAME = mathgl
+PACKAGE_URL = 
+PACKAGE_VERSION = 1.10
+PATH_SEPARATOR = :
+PNG_LIBS = -lpng
+PTHREAD_FLAGS = -DHAVE_PTHREAD
+PTHREAD_LIBS = -lpthread
+PYTHON = /usr/bin/python
+PYTHON_EXEC_PREFIX = ${exec_prefix}
+PYTHON_HEADERS = -I/usr/include/python2.6 -I/usr/include/python2.6 -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes
+PYTHON_PLATFORM = linux2
+PYTHON_PREFIX = ${prefix}
+PYTHON_VERSION = 2.6
+QMAKE = /usr/bin/qmake-qt4
+QT_CFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(QT_DEFINES)
+QT_CPPFLAGS = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I.
+QT_CXXFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(QT_DEFINES)
+QT_DEFINES = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
+QT_INCPATH = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I.
+QT_LDFLAGS = 
+QT_LFLAGS = 
+QT_LIBS = -L/usr/lib -lQtGui -lQtCore -lpthread 
+QT_PATH = /usr/bin
+QT_VERSION = 4.6.3
+QT_VERSION_MAJOR = ok, looks like Qt 4
+RANLIB = ranlib
+RCC = /usr/bin/rcc
+SED = /bin/sed
+SET_MAKE = 
+SHELL = /bin/bash
+STRIP = strip
+TMPDIR = /tmp
+UIC = /usr/bin/uic-qt4
+VERSION = 1.10
+WX_FLAGS = -I/usr/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread
+WX_LIBS = -pthread   -lwx_gtk2u_richtext-2.8 -lwx_gtk2u_aui-2.8 -lwx_gtk2u_xrc-2.8 -lwx_gtk2u_qa-2.8 -lwx_gtk2u_html-2.8 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8 
+abs_builddir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/widgets
+abs_srcdir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/widgets
+abs_top_builddir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11
+abs_top_srcdir = /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11
+ac_ct_CC = 
+ac_ct_CXX = 
+ac_ct_DUMPBIN = 
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-pc-linux-gnu
+build_alias = x86_64-linux-gnu
+build_cpu = x86_64
+build_os = linux-gnu
+build_vendor = pc
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+host = x86_64-pc-linux-gnu
+host_alias = x86_64-linux-gnu
+host_cpu = x86_64
+host_os = linux-gnu
+host_vendor = pc
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${prefix}/share/info
+install_sh = ${SHELL} /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/config/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+lt_ECHO = echo
+mandir = ${prefix}/share/man
+mkdir_p = /bin/mkdir -p
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+pkgpyexecdir = ${pyexecdir}/mathgl
+pkgpythondir = ${pythondir}/mathgl
+prefix = /usr
+program_transform_name = s,x,x,
+psdir = ${docdir}
+pyexecdir = ${exec_prefix}/lib/python2.6/dist-packages
+pythondir = ${prefix}/lib/python2.6/dist-packages
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target_alias = 
+top_build_prefix = ../
+top_builddir = ..
+top_srcdir = ..
+lib_LTLIBRARIES = $(am__append_1) $(am__append_2) $(am__append_3) \
+	$(am__append_4)
+libmgl_fltk_la_LDFLAGS = -no-undefined -version-info $(MGL_CURRENT):$(MGL_REVISION):$(MGL_AGE)
+libmgl_fltk_la_LIBADD = $(FLTK_LIBS) $(top_builddir)/mgl/libmgl.la
+libmgl_fltk_la_CXXFLAGS = $(FLTK_FLAGS) $(AM_CXXFLAGS)
+libmgl_fltk_la_SOURCES = mgl_fltk.cpp
+libmgl_glut_la_LDFLAGS = -no-undefined -version-info $(MGL_CURRENT):$(MGL_REVISION):$(MGL_AGE)
+libmgl_glut_la_LIBADD = $(GLUT_LIBS) $(GL_LIBS) $(top_builddir)/mgl/libmgl.la
+libmgl_glut_la_CXXFLAGS = $(GLUT_FLAGS) $(AM_CXXFLAGS)
+libmgl_glut_la_SOURCES = mgl_glut.cpp
+libmgl_wx_la_LDFLAGS = -no-undefined -version-info $(MGL_CURRENT):$(MGL_REVISION):$(MGL_AGE)
+libmgl_wx_la_LIBADD = $(WX_LIBS) $(top_builddir)/mgl/libmgl.la
+libmgl_wx_la_CXXFLAGS = $(WX_FLAGS) $(AM_CXXFLAGS)
+libmgl_wx_la_SOURCES = mgl_wx.cpp
+
+# See autotroll.m4 :)
+SUFFIXES = .moc.cpp .moc.cc .moc.cxx .moc.C .h .hh \
+           .ui .ui.h .ui.hh \
+           .qrc .qrc.cpp .qrc.cc .qrc.cxx .qrc.C
+
+DISTCLEANFILES = $(BUILT_SOURCES)
+ACLOCAL_AMFLAGS = -I $(top_srcdir)/config/
+libmgl_qt_la_LDFLAGS = $(QT_LDFLAGS) $(LDFLAGS) -no-undefined -version-info $(MGL_CURRENT):$(MGL_REVISION):$(MGL_AGE)
+libmgl_qt_la_LIBADD = $(QT_LIBS) $(top_builddir)/mgl/libmgl.la
+libmgl_qt_la_CPPFLAGS = $(QT_CPPFLAGS) $(AM_CPPFLAGS)
+libmgl_qt_la_CXXFLAGS = $(QT_CXXFLAGS) $(AM_CXXFLAGS)
+libmgl_qt_la_SOURCES = $(top_builddir)/include/mgl/mgl_qt.moc.cpp mgl_qt.cpp $(top_srcdir)/include/mgl/mgl_qt.h
+BUILT_SOURCES = $(top_builddir)/include/mgl/mgl_qt.moc.cpp
+CLEANFILES = $(BUILT_SOURCES)
+all: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .moc.cpp .moc.cc .moc.cxx .moc.C .h .hh .ui .ui.h .ui.hh .qrc .qrc.cpp .qrc.cc .qrc.cxx .qrc.C .cpp .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/config/autotroll.mk $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu widgets/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu widgets/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+	@$(NORMAL_INSTALL)
+	test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
+	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+	list2=; for p in $$list; do \
+	  if test -f $$p; then \
+	    list2="$$list2 $$p"; \
+	  else :; fi; \
+	done; \
+	test -z "$$list2" || { \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
+	}
+
+uninstall-libLTLIBRARIES:
+	@$(NORMAL_UNINSTALL)
+	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+	for p in $$list; do \
+	  $(am__strip_dir) \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
+	done
+
+clean-libLTLIBRARIES:
+	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libmgl-fltk.la: $(libmgl_fltk_la_OBJECTS) $(libmgl_fltk_la_DEPENDENCIES) 
+	$(libmgl_fltk_la_LINK) $(am_libmgl_fltk_la_rpath) $(libmgl_fltk_la_OBJECTS) $(libmgl_fltk_la_LIBADD) $(LIBS)
+libmgl-glut.la: $(libmgl_glut_la_OBJECTS) $(libmgl_glut_la_DEPENDENCIES) 
+	$(libmgl_glut_la_LINK) $(am_libmgl_glut_la_rpath) $(libmgl_glut_la_OBJECTS) $(libmgl_glut_la_LIBADD) $(LIBS)
+libmgl-qt.la: $(libmgl_qt_la_OBJECTS) $(libmgl_qt_la_DEPENDENCIES) 
+	$(libmgl_qt_la_LINK) $(am_libmgl_qt_la_rpath) $(libmgl_qt_la_OBJECTS) $(libmgl_qt_la_LIBADD) $(LIBS)
+libmgl-wx.la: $(libmgl_wx_la_OBJECTS) $(libmgl_wx_la_DEPENDENCIES) 
+	$(libmgl_wx_la_LINK) $(am_libmgl_wx_la_rpath) $(libmgl_wx_la_OBJECTS) $(libmgl_wx_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+include ./$(DEPDIR)/libmgl_fltk_la-mgl_fltk.Plo
+include ./$(DEPDIR)/libmgl_glut_la-mgl_glut.Plo
+include ./$(DEPDIR)/libmgl_qt_la-mgl_qt.Plo
+include ./$(DEPDIR)/libmgl_qt_la-mgl_qt.moc.Plo
+include ./$(DEPDIR)/libmgl_wx_la-mgl_wx.Plo
+
+.cpp.o:
+	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+#	source='$<' object='$@' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+#	source='$<' object='$@' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+	$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+#	source='$<' object='$@' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LTCXXCOMPILE) -c -o $@ $<
+
+libmgl_fltk_la-mgl_fltk.lo: mgl_fltk.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_fltk_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_fltk_la-mgl_fltk.lo -MD -MP -MF $(DEPDIR)/libmgl_fltk_la-mgl_fltk.Tpo -c -o libmgl_fltk_la-mgl_fltk.lo `test -f 'mgl_fltk.cpp' || echo '$(srcdir)/'`mgl_fltk.cpp
+	$(am__mv) $(DEPDIR)/libmgl_fltk_la-mgl_fltk.Tpo $(DEPDIR)/libmgl_fltk_la-mgl_fltk.Plo
+#	source='mgl_fltk.cpp' object='libmgl_fltk_la-mgl_fltk.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_fltk_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_fltk_la-mgl_fltk.lo `test -f 'mgl_fltk.cpp' || echo '$(srcdir)/'`mgl_fltk.cpp
+
+libmgl_glut_la-mgl_glut.lo: mgl_glut.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_glut_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_glut_la-mgl_glut.lo -MD -MP -MF $(DEPDIR)/libmgl_glut_la-mgl_glut.Tpo -c -o libmgl_glut_la-mgl_glut.lo `test -f 'mgl_glut.cpp' || echo '$(srcdir)/'`mgl_glut.cpp
+	$(am__mv) $(DEPDIR)/libmgl_glut_la-mgl_glut.Tpo $(DEPDIR)/libmgl_glut_la-mgl_glut.Plo
+#	source='mgl_glut.cpp' object='libmgl_glut_la-mgl_glut.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_glut_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_glut_la-mgl_glut.lo `test -f 'mgl_glut.cpp' || echo '$(srcdir)/'`mgl_glut.cpp
+
+libmgl_qt_la-mgl_qt.moc.lo: $(top_builddir)/include/mgl/mgl_qt.moc.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmgl_qt_la_CPPFLAGS) $(CPPFLAGS) $(libmgl_qt_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_qt_la-mgl_qt.moc.lo -MD -MP -MF $(DEPDIR)/libmgl_qt_la-mgl_qt.moc.Tpo -c -o libmgl_qt_la-mgl_qt.moc.lo `test -f '$(top_builddir)/include/mgl/mgl_qt.moc.cpp' || echo '$(srcdir)/'`$(top_builddir)/include/mgl/mgl_qt.moc.cpp
+	$(am__mv) $(DEPDIR)/libmgl_qt_la-mgl_qt.moc.Tpo $(DEPDIR)/libmgl_qt_la-mgl_qt.moc.Plo
+#	source='$(top_builddir)/include/mgl/mgl_qt.moc.cpp' object='libmgl_qt_la-mgl_qt.moc.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmgl_qt_la_CPPFLAGS) $(CPPFLAGS) $(libmgl_qt_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_qt_la-mgl_qt.moc.lo `test -f '$(top_builddir)/include/mgl/mgl_qt.moc.cpp' || echo '$(srcdir)/'`$(top_builddir)/include/mgl/mgl_qt.moc.cpp
+
+libmgl_qt_la-mgl_qt.lo: mgl_qt.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmgl_qt_la_CPPFLAGS) $(CPPFLAGS) $(libmgl_qt_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_qt_la-mgl_qt.lo -MD -MP -MF $(DEPDIR)/libmgl_qt_la-mgl_qt.Tpo -c -o libmgl_qt_la-mgl_qt.lo `test -f 'mgl_qt.cpp' || echo '$(srcdir)/'`mgl_qt.cpp
+	$(am__mv) $(DEPDIR)/libmgl_qt_la-mgl_qt.Tpo $(DEPDIR)/libmgl_qt_la-mgl_qt.Plo
+#	source='mgl_qt.cpp' object='libmgl_qt_la-mgl_qt.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmgl_qt_la_CPPFLAGS) $(CPPFLAGS) $(libmgl_qt_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_qt_la-mgl_qt.lo `test -f 'mgl_qt.cpp' || echo '$(srcdir)/'`mgl_qt.cpp
+
+libmgl_wx_la-mgl_wx.lo: mgl_wx.cpp
+	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_wx_la_CXXFLAGS) $(CXXFLAGS) -MT libmgl_wx_la-mgl_wx.lo -MD -MP -MF $(DEPDIR)/libmgl_wx_la-mgl_wx.Tpo -c -o libmgl_wx_la-mgl_wx.lo `test -f 'mgl_wx.cpp' || echo '$(srcdir)/'`mgl_wx.cpp
+	$(am__mv) $(DEPDIR)/libmgl_wx_la-mgl_wx.Tpo $(DEPDIR)/libmgl_wx_la-mgl_wx.Plo
+#	source='mgl_wx.cpp' object='libmgl_wx_la-mgl_wx.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmgl_wx_la_CXXFLAGS) $(CXXFLAGS) -c -o libmgl_wx_la-mgl_wx.lo `test -f 'mgl_wx.cpp' || echo '$(srcdir)/'`mgl_wx.cpp
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	set x; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+	for dir in "$(DESTDIR)$(libdir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+	-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-libLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-libLTLIBRARIES
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libLTLIBRARIES clean-libtool ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am \
+	install-libLTLIBRARIES install-man install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags uninstall uninstall-am uninstall-libLTLIBRARIES
+
+
+ # ------------- #
+ # DOCUMENTATION #
+ # ------------- #
+
+# --- #
+# MOC #
+# --- #
+
+.hh.moc.cpp:
+	$(MOC) $(QT_CPPFLAGS) $< -o $@
+.h.moc.cpp:
+	$(MOC) $(QT_CPPFLAGS) $< -o $@
+
+.hh.moc.cc:
+	$(MOC) $(QT_CPPFLAGS) $< -o $@
+.h.moc.cc:
+	$(MOC) $(QT_CPPFLAGS) $< -o $@
+
+.hh.moc.cxx:
+	$(MOC) $(QT_CPPFLAGS) $< -o $@
+.h.moc.cxx:
+	$(MOC) $(QT_CPPFLAGS) $< -o $@
+
+.hh.moc.C:
+	$(MOC) $(QT_CPPFLAGS) $< -o $@
+.h.moc.C:
+	$(MOC) $(QT_CPPFLAGS) $< -o $@
+
+# --- #
+# UIC #
+# --- #
+
+.ui.ui.hh:
+	$(UIC) $< -o $@
+
+.ui.ui.h:
+	$(UIC) $< -o $@
+
+# --- #
+# RCC #
+# --- #
+
+.qrc.qrc.cpp:
+	$(RCC) -name `echo "$<" | sed 's/\.qrc$$//'` $< -o $@
+
+.qrc.qrc.cc:
+	$(RCC) -name `echo "$<" | sed 's/\.qrc$$//'` $< -o $@
+
+.qrc.qrc.cxx:
+	$(RCC) -name `echo "$<" | sed 's/\.qrc$$//'` $< -o $@
+
+.qrc.qrc.C:
+	$(RCC) -name `echo "$<" | sed 's/\.qrc$$//'` $< -o $@
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/widgets/Makefile.in b/widgets/Makefile.in
index 31a9c75..250f511 100644
--- a/widgets/Makefile.in
+++ b/widgets/Makefile.in
@@ -62,11 +62,7 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 subdir = widgets
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/autotroll.m4 \
-	$(top_srcdir)/config/libtool.m4 \
-	$(top_srcdir)/config/ltoptions.m4 \
-	$(top_srcdir)/config/ltsugar.m4 \
-	$(top_srcdir)/config/ltversion.m4 \
-	$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
diff --git a/widgets/libmgl-fltk.la b/widgets/libmgl-fltk.la
new file mode 100644
index 0000000..c96a5e5
--- /dev/null
+++ b/widgets/libmgl-fltk.la
@@ -0,0 +1,42 @@
+# libmgl-fltk.la - a libtool library file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libmgl-fltk.so.5'
+
+# Names of this library.
+library_names='libmgl-fltk.so.5.0.0 libmgl-fltk.so.5 libmgl-fltk.so'
+
+# The name of the static archive.
+old_library='libmgl-fltk.a'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -R/tmp/buildd/libhdf4-4.2r4/HDF4/mfhdf/libsrc/.libs -R/tmp/buildd/libhdf4-4.2r4/HDF4/hdf/src/.libs  -lfltk /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/mgl/libmgl.la -lpng -lGL -L/usr/lib -lgsl -lgslcblas /usr/lib/libmfhdf.la /usr/lib/libdf.la /usr/lib/libhdf5.la -lpthread -lz /usr/lib/libgif.la /usr/lib/libjpeg.la'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libmgl-fltk.
+current=5
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=no
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/lib'
+relink_command="(cd /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/widgets; /bin/bash /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/libtool  --tag CXX --mode=relink x86_64-linux-gnu-g++ -I/usr/include/freetype2 -g -O2 -D_THREAD_SAFE -D_REENTRANT -Wall -I/usr/include -I../include -I../include -g -O2 -no-undefined -version-info 5:0:0 -o libmgl-fltk.la -rpath /usr/lib libmgl_fltk_la-mgl_fltk.lo -lfltk ../mgl/libmgl.la @inst_prefix_dir@)"
diff --git a/widgets/libmgl-glut.la b/widgets/libmgl-glut.la
new file mode 100644
index 0000000..c2708d9
--- /dev/null
+++ b/widgets/libmgl-glut.la
@@ -0,0 +1,42 @@
+# libmgl-glut.la - a libtool library file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libmgl-glut.so.5'
+
+# Names of this library.
+library_names='libmgl-glut.so.5.0.0 libmgl-glut.so.5 libmgl-glut.so'
+
+# The name of the static archive.
+old_library='libmgl-glut.a'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -R/tmp/buildd/libhdf4-4.2r4/HDF4/mfhdf/libsrc/.libs -R/tmp/buildd/libhdf4-4.2r4/HDF4/hdf/src/.libs  -lglut /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/mgl/libmgl.la -lpng -lGL -L/usr/lib -lgsl -lgslcblas /usr/lib/libmfhdf.la /usr/lib/libdf.la /usr/lib/libhdf5.la -lpthread -lz /usr/lib/libgif.la /usr/lib/libjpeg.la'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libmgl-glut.
+current=5
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=no
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/lib'
+relink_command="(cd /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/widgets; /bin/bash /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/libtool  --tag CXX --mode=relink x86_64-linux-gnu-g++ -DHAVE_GLUT -Wall -I/usr/include -I../include -I../include -g -O2 -no-undefined -version-info 5:0:0 -o libmgl-glut.la -rpath /usr/lib libmgl_glut_la-mgl_glut.lo -lglut -lGL ../mgl/libmgl.la @inst_prefix_dir@)"
diff --git a/widgets/libmgl-qt.la b/widgets/libmgl-qt.la
new file mode 100644
index 0000000..7eec1ba
--- /dev/null
+++ b/widgets/libmgl-qt.la
@@ -0,0 +1,42 @@
+# libmgl-qt.la - a libtool library file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libmgl-qt.so.5'
+
+# Names of this library.
+library_names='libmgl-qt.so.5.0.0 libmgl-qt.so.5 libmgl-qt.so'
+
+# The name of the static archive.
+old_library='libmgl-qt.a'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -R/tmp/buildd/libhdf4-4.2r4/HDF4/mfhdf/libsrc/.libs -R/tmp/buildd/libhdf4-4.2r4/HDF4/hdf/src/.libs  -L/usr/lib -lQtGui -lQtCore /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/mgl/libmgl.la -lpng -lGL -lgsl -lgslcblas /usr/lib/libmfhdf.la /usr/lib/libdf.la /usr/lib/libhdf5.la -lpthread -lz /usr/lib/libgif.la /usr/lib/libjpeg.la'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libmgl-qt.
+current=5
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=no
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/lib'
+relink_command="(cd /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/widgets; /bin/bash /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/libtool  --tag CXX --mode=relink x86_64-linux-gnu-g++ -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -Wall -I/usr/include -I../include -I../include -g -O2 -no-undefined -version-info 5:0:0 -o libmgl-qt.la -rpath /usr/lib libmgl_qt_la-mgl_qt.moc.lo libmgl_qt_la-mgl_qt.lo -L/usr/lib -lQtGui -lQtCore -lpthread ../mgl/libmgl.la @inst_prefix_dir@)"
diff --git a/widgets/libmgl-wx.la b/widgets/libmgl-wx.la
new file mode 100644
index 0000000..eba3bb2
--- /dev/null
+++ b/widgets/libmgl-wx.la
@@ -0,0 +1,42 @@
+# libmgl-wx.la - a libtool library file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libmgl-wx.so.5'
+
+# Names of this library.
+library_names='libmgl-wx.so.5.0.0 libmgl-wx.so.5 libmgl-wx.so'
+
+# The name of the static archive.
+old_library='libmgl-wx.a'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=' -pthread'
+
+# Libraries that this one depends upon.
+dependency_libs=' -R/tmp/buildd/libhdf4-4.2r4/HDF4/mfhdf/libsrc/.libs -R/tmp/buildd/libhdf4-4.2r4/HDF4/hdf/src/.libs  -lwx_gtk2u_richtext-2.8 -lwx_gtk2u_aui-2.8 -lwx_gtk2u_xrc-2.8 -lwx_gtk2u_qa-2.8 -lwx_gtk2u_html-2.8 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8 /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/mgl/libmgl.la -lpng -lGL -L/usr/lib -lgsl -lgslcblas /usr/lib/libmfhdf.la /usr/lib/libdf.la /usr/lib/libhdf5.la -lpthread -lz /usr/lib/libgif.la /usr/lib/libjpeg.la'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libmgl-wx.
+current=5
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=no
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/lib'
+relink_command="(cd /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/widgets; /bin/bash /home/eftaxiop/Αρχεία/Γενικά/Λογισμικό/mathgl/mathgl-1.11/libtool  --tag CXX --mode=relink x86_64-linux-gnu-g++ -I/usr/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread -Wall -I/usr/include -I../include -I../include -g -O2 -no-undefined -version-info 5:0:0 -o libmgl-wx.la -rpath /usr/lib libmgl_wx_la-mgl_wx.lo -pthread -lwx_gtk2u_richtext-2.8 -lwx_gtk2u_aui-2.8 -lwx_gtk2u_xrc-2.8 -lwx_gtk2u_qa-2.8 -lwx_gtk2u_html-2.8 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8 ../mgl/libmgl.la @inst_prefix_dir@)"
diff --git a/widgets/libmgl_fltk_la-mgl_fltk.lo b/widgets/libmgl_fltk_la-mgl_fltk.lo
new file mode 100644
index 0000000..839492d
--- /dev/null
+++ b/widgets/libmgl_fltk_la-mgl_fltk.lo
@@ -0,0 +1,12 @@
+# libmgl_fltk_la-mgl_fltk.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_fltk_la-mgl_fltk.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_fltk_la-mgl_fltk.o'
+
diff --git a/widgets/libmgl_fltk_la-mgl_fltk.o b/widgets/libmgl_fltk_la-mgl_fltk.o
new file mode 100644
index 0000000..a393b39
Binary files /dev/null and b/widgets/libmgl_fltk_la-mgl_fltk.o differ
diff --git a/widgets/libmgl_glut_la-mgl_glut.lo b/widgets/libmgl_glut_la-mgl_glut.lo
new file mode 100644
index 0000000..b07f6ed
--- /dev/null
+++ b/widgets/libmgl_glut_la-mgl_glut.lo
@@ -0,0 +1,12 @@
+# libmgl_glut_la-mgl_glut.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_glut_la-mgl_glut.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_glut_la-mgl_glut.o'
+
diff --git a/widgets/libmgl_glut_la-mgl_glut.o b/widgets/libmgl_glut_la-mgl_glut.o
new file mode 100644
index 0000000..b695e19
Binary files /dev/null and b/widgets/libmgl_glut_la-mgl_glut.o differ
diff --git a/widgets/libmgl_qt_la-mgl_qt.lo b/widgets/libmgl_qt_la-mgl_qt.lo
new file mode 100644
index 0000000..6c3d6f8
--- /dev/null
+++ b/widgets/libmgl_qt_la-mgl_qt.lo
@@ -0,0 +1,12 @@
+# libmgl_qt_la-mgl_qt.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_qt_la-mgl_qt.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_qt_la-mgl_qt.o'
+
diff --git a/widgets/libmgl_qt_la-mgl_qt.moc.lo b/widgets/libmgl_qt_la-mgl_qt.moc.lo
new file mode 100644
index 0000000..7b50a3d
--- /dev/null
+++ b/widgets/libmgl_qt_la-mgl_qt.moc.lo
@@ -0,0 +1,12 @@
+# libmgl_qt_la-mgl_qt.moc.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_qt_la-mgl_qt.moc.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_qt_la-mgl_qt.moc.o'
+
diff --git a/widgets/libmgl_qt_la-mgl_qt.moc.o b/widgets/libmgl_qt_la-mgl_qt.moc.o
new file mode 100644
index 0000000..94f9f01
Binary files /dev/null and b/widgets/libmgl_qt_la-mgl_qt.moc.o differ
diff --git a/widgets/libmgl_qt_la-mgl_qt.o b/widgets/libmgl_qt_la-mgl_qt.o
new file mode 100644
index 0000000..a33da4b
Binary files /dev/null and b/widgets/libmgl_qt_la-mgl_qt.o differ
diff --git a/widgets/libmgl_wx_la-mgl_wx.lo b/widgets/libmgl_wx_la-mgl_wx.lo
new file mode 100644
index 0000000..e79f636
--- /dev/null
+++ b/widgets/libmgl_wx_la-mgl_wx.lo
@@ -0,0 +1,12 @@
+# libmgl_wx_la-mgl_wx.lo - a libtool object file
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libmgl_wx_la-mgl_wx.o'
+
+# Name of the non-PIC object
+non_pic_object='libmgl_wx_la-mgl_wx.o'
+
diff --git a/widgets/libmgl_wx_la-mgl_wx.o b/widgets/libmgl_wx_la-mgl_wx.o
new file mode 100644
index 0000000..ce66c41
Binary files /dev/null and b/widgets/libmgl_wx_la-mgl_wx.o differ

-- 
Packaging for mathgl



More information about the debian-science-commits mailing list